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 1nsHhs-0005g0-Jg for pgsql-hackers@arkaria.postgresql.org; Sat, 21 May 2022 05:31:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nsHhp-0002bn-Rp for pgsql-hackers@arkaria.postgresql.org; Sat, 21 May 2022 05:31:13 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nsHho-0002be-PF for pgsql-hackers@lists.postgresql.org; Sat, 21 May 2022 05:31:13 +0000 Received: from mail-ej1-x632.google.com ([2a00:1450:4864:20::632]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1nsHhi-0001ow-LZ for pgsql-hackers@lists.postgresql.org; Sat, 21 May 2022 05:31:11 +0000 Received: by mail-ej1-x632.google.com with SMTP id f21so5283308ejh.11 for ; Fri, 20 May 2022 22:31:06 -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=hp90z4WzWlKfZbXQlSJAnRppiZHUQnkdTRSia7Ibv/c=; b=WiJ0vNx2PqA13eLWJdaJUmJtRZoC2WGgAKWTTdAG9tdtTz7RCN/+40g+gQ7XZifJCD wOxwYA46tAuafSLGMqDJwTPk1cwKZd4S6W94lVfUkBIrjV7ETuuH/Kph/kdgKeXXaZbJ 8B5mdBfuRupN1/G2ydw3U1zwehQpaEpMTeBDER8MUb0YxnIammSwctUafhIQry1gbGXO XQfDPsxa0rSq/fkvc3hQ/FgZ0bDkn0x6ztWXwpf19L4NQL/mhDmZ8W0lqmy9nZXirYjN O62HgY0UP6msaRhLuB8FqSKQGSkGcX/fOHe0YV3TeIMCYm7yv5UhQd5Q/j5eq52ra4E5 Hy4g== 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=hp90z4WzWlKfZbXQlSJAnRppiZHUQnkdTRSia7Ibv/c=; b=0BfRt5IG7F/CVQGiEocuwsATbXClJ9+RqTHg4ckgGiakRf/qnsChxtZ16QzWiNnp1I +sgYQAtvfcCP3F1E8s7kPXnCV4zqISureTDp8nkrq2iY+Xa2GF16B/z57lWCy24ecFA+ vwaGvEB4xibVGx/zT6LrtlxAJhxbVOSoznoBPx6obHeC+3VkCJ3Eye9qPn6cvtwfgfuc B+D3oml40KqaYufhEwNolmiiDz9NRJBs80eHNkEoXfO9zrFNdNOoWnSV1cg/eWZbXOkw gyDZPWfn7Oau2+KroVcw/+YCOoCwHrKrWdLi73p8TgDeh82gW1hv46c1fdFAsaMfuqWD a+xg== X-Gm-Message-State: AOAM530BdqbtHlQHAhh714zchLz077hgB5eFAJhMp/mdLZvW+ZGKZKkq z9ol+uuyJwkPeVWldUiQmVi5HrW2JGTgWadRiAA= X-Google-Smtp-Source: ABdhPJzwduh52lWLX5wHEEqUstDAZoJYePBwXuRipCFcxkZZNYic9gNo/EjtmoDKyht2H83n7V//N5klR7EetB7Vkwc= X-Received: by 2002:a17:906:d97b:b0:6fe:af2e:2966 with SMTP id rp27-20020a170906d97b00b006feaf2e2966mr5098747ejb.705.1653111064067; Fri, 20 May 2022 22:31:04 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: vignesh C Date: Sat, 21 May 2022 11:00:52 +0530 Message-ID: Subject: Re: Skipping schema changes in publication To: Peter Smith Cc: "osumi.takamichi@fujitsu.com" , Amit Kapila , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000bfa24e05df7ee91a" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000bfa24e05df7ee91a Content-Type: text/plain; charset="UTF-8" On Thu, May 19, 2022 at 1:49 PM Peter Smith wrote: > > Below are my review comments for v6-0001. > > ====== > > 1. General. > > The patch failed 'publication' tests in the make check phase. > > Please add this work to the commit-fest so that the 'cfbot' can report > such errors sooner. Added commitfest entry > ~~~ > > 2. src/backend/commands/publicationcmds.c - AlterPublicationReset > > +/* > + * Reset the publication. > + * > + * Reset the publication options, publication relations and > publication schemas. > + */ > +static void > +AlterPublicationReset(ParseState *pstate, AlterPublicationStmt *stmt, > + Relation rel, HeapTuple tup) > > SUGGESTION (Make the comment similar to the sgml text instead of > repeating "publication" 4x !) > /* > * Reset the publication options, set the ALL TABLES flag to false, and > * drop all relations and schemas that are associated with the publication. > */ Modified > ~~~ > > 3. src/test/regress/expected/publication.out > > make check failed. The diff is below: > > @@ -1716,7 +1716,7 @@ > -- Verify that only superuser can reset a publication > ALTER PUBLICATION testpub_reset OWNER TO regress_publication_user2; > SET ROLE regress_publication_user2; > -ALTER PUBLICATION testpub_reset RESET; -- fail > +ALTER PUBLICATION testpub_reset RESET; -- fail - must be superuser > ERROR: must be superuser to RESET publication > SET ROLE regress_publication_user; > DROP PUBLICATION testpub_reset; It passed for me locally because the change was present in the 002 patch. I have moved the change to 001. The attached v7 patch has the changes for the same. [1] - https://commitfest.postgresql.org/38/3646/ Regards, Vignesh --000000000000bfa24e05df7ee91a Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0001-Add-RESET-clause-to-Alter-Publication-which-will-.patch" Content-Disposition: attachment; filename="v7-0001-Add-RESET-clause-to-Alter-Publication-which-will-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l3ffmiss0 RnJvbSAxODU1ZTAwZjJkNmNjMTk0MjdjNTVlZWMyZjFlNDBlY2M4ZjhjMWNjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNod2FyYW4gQyA8dmlnbmVzaDIxQGdtYWlsLmNvbT4K RGF0ZTogU2F0LCAxNCBNYXkgMjAyMiAxMzoxMzo0NiArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjcg MS8yXSBBZGQgUkVTRVQgY2xhdXNlIHRvIEFsdGVyIFB1YmxpY2F0aW9uIHdoaWNoIHdpbGwgcmVz ZXQKIHRoZSBwdWJsaWNhdGlvbiB3aXRoIGRlZmF1bHQgdmFsdWVzLgoKVGhpcyBwYXRjaCBhZGRz IGEgbmV3IFJFU0VUIGNsYXVzZSB0byBBTFRFUiBQVUJMSUNBVElPTiB3aGljaCB3aWxsIHJlc2V0 CnRoZSBwdWJsaWNhdGlvbiB0byB0aGUgZGVmYXVsdCBzdGF0ZSB3aGljaCBpbmNsdWRlcyByZXNl dHRpbmcgdGhlIHB1YmxpY2F0aW9uCm9wdGlvbnMsIHNldHRpbmcgQUxMIFRBQkxFUyBmbGFnIHRv IGZhbHNlIGFuZCBkcm9wcGluZyB0aGUgcmVsYXRpb25zIGFuZApzY2hlbWFzIHRoYXQgYXJlIGFz c29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24uClVzYWdlOgpBTFRFUiBQVUJMSUNBVElPTiBw dWIxIFJFU0VUOwotLS0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCAg IHwgIDM4ICsrKysrKy0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyAg ICB8IDEwMCArKysrKysrKysrKysrKysrKysrKy0tCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 ICAgICAgICAgICAgICAgICB8ICAgOSArKwogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jICAg ICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAg ICAgICAgIHwgICAzICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91 dCB8ICA2OSArKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9u LnNxbCAgICAgIHwgIDM3ICsrKysrKysrCiA3IGZpbGVzIGNoYW5nZWQsIDI0MiBpbnNlcnRpb25z KCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVy X3B1YmxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNn bWwKaW5kZXggZTJjY2U0OTQ3MS4uNDdiZDE1ZjFmYSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf cHVibGljYXRpb24uc2dtbApAQCAtMjcsNiArMjcsNyBAQCBBTFRFUiBQVUJMSUNBVElPTiA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IERST1AgPHJlcGxh YwogQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8 L3JlcGxhY2VhYmxlPiBTRVQgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGlj YXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkKIEFMVEVSIFBVQkxJQ0FUSU9O IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gT1dORVIg VE8geyA8cmVwbGFjZWFibGU+bmV3X293bmVyPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1JPTEUg fCBDVVJSRU5UX1VTRVIgfCBTRVNTSU9OX1VTRVIgfQogQUxURVIgUFVCTElDQVRJT04gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHJl cGxhY2VhYmxlPm5ld19uYW1lPC9yZXBsYWNlYWJsZT4KK0FMVEVSIFBVQkxJQ0FUSU9OIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVTRVQKIAogPHBo cmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fb2Jq ZWN0PC9yZXBsYWNlYWJsZT4gaXMgb25lIG9mOjwvcGhyYXNlPgogCkBAIC02NSwyMCArNjYsMzMg QEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8 L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHIKICAgPC9wYXJhPgogCiAgIDxwYXJhPgotICAgVGhl IHJlbWFpbmluZyB2YXJpYW50cyBjaGFuZ2UgdGhlIG93bmVyIGFuZCB0aGUgbmFtZSBvZiB0aGUg cHVibGljYXRpb24uCisgICBUaGUgPGxpdGVyYWw+T1dORVI8L2xpdGVyYWw+IGNsYXVzZSB3aWxs IGNoYW5nZSB0aGUgb3duZXIgb2YgdGhlIHB1YmxpY2F0aW9uLgorICA8L3BhcmE+CisKKyAgPHBh cmE+CisgICBUaGUgPGxpdGVyYWw+UkVOQU1FPC9saXRlcmFsPiBjbGF1c2Ugd2lsbCBjaGFuZ2Ug dGhlIG5hbWUgb2YgdGhlIHB1YmxpY2F0aW9uLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBU aGUgPGxpdGVyYWw+UkVTRVQ8L2xpdGVyYWw+IGNsYXVzZSB3aWxsIHJlc2V0IHRoZSBwdWJsaWNh dGlvbiB0byB0aGUKKyAgIGRlZmF1bHQgc3RhdGUgd2hpY2ggaW5jbHVkZXMgcmVzZXR0aW5nIHRo ZSBwdWJsaWNhdGlvbiBvcHRpb25zLCBzZXR0aW5nCisgICA8bGl0ZXJhbD5BTEwgVEFCTEVTPC9s aXRlcmFsPiBmbGFnIHRvIDxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPiBhbmQKKyAgIGRyb3BwaW5n IGFsbCByZWxhdGlvbnMgYW5kIHNjaGVtYXMgdGhhdCBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBw dWJsaWNhdGlvbi4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgogICAgWW91IG11c3Qgb3duIHRoZSBw dWJsaWNhdGlvbiB0byB1c2UgPGNvbW1hbmQ+QUxURVIgUFVCTElDQVRJT048L2NvbW1hbmQ+Lgog ICAgQWRkaW5nIGEgdGFibGUgdG8gYSBwdWJsaWNhdGlvbiBhZGRpdGlvbmFsbHkgcmVxdWlyZXMg b3duaW5nIHRoYXQgdGFibGUuCi0gICBUaGUgPGxpdGVyYWw+QUREIEFMTCBUQUJMRVMgSU4gU0NI RU1BPC9saXRlcmFsPiBhbmQKLSAgIDxsaXRlcmFsPlNFVCBBTEwgVEFCTEVTIElOIFNDSEVNQTwv bGl0ZXJhbD4gdG8gYSBwdWJsaWNhdGlvbiByZXF1aXJlcyB0aGUKLSAgIGludm9raW5nIHVzZXIg dG8gYmUgYSBzdXBlcnVzZXIuICBUbyBhbHRlciB0aGUgb3duZXIsIHlvdSBtdXN0IGFsc28gYmUg YQotICAgZGlyZWN0IG9yIGluZGlyZWN0IG1lbWJlciBvZiB0aGUgbmV3IG93bmluZyByb2xlLiBU aGUgbmV3IG93bmVyIG11c3QgaGF2ZQotICAgPGxpdGVyYWw+Q1JFQVRFPC9saXRlcmFsPiBwcml2 aWxlZ2Ugb24gdGhlIGRhdGFiYXNlLiAgQWxzbywgdGhlIG5ldyBvd25lcgotICAgb2YgYSA8bGl0 ZXJhbD5GT1IgQUxMIFRBQkxFUzwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVMg SU4KLSAgIFNDSEVNQTwvbGl0ZXJhbD4gcHVibGljYXRpb24gbXVzdCBiZSBhIHN1cGVydXNlci4g SG93ZXZlciwgYSBzdXBlcnVzZXIgY2FuCi0gICBjaGFuZ2UgdGhlIG93bmVyc2hpcCBvZiBhIHB1 YmxpY2F0aW9uIHJlZ2FyZGxlc3Mgb2YgdGhlc2UgcmVzdHJpY3Rpb25zLgorICAgVGhlIDxsaXRl cmFsPkFERCBBTEwgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sCisgICA8bGl0ZXJhbD5TRVQg QUxMIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IHRvIGEgcHVibGljYXRpb24gYW5kCisgICA8 bGl0ZXJhbD5SRVNFVDwvbGl0ZXJhbD4gb2YgcHVibGljYXRpb24gcmVxdWlyZXMgdGhlIGludm9r aW5nIHVzZXIgdG8gYmUgYQorICAgc3VwZXJ1c2VyLiBUbyBhbHRlciB0aGUgb3duZXIsIHlvdSBt dXN0IGFsc28gYmUgYSBkaXJlY3Qgb3IgaW5kaXJlY3QgbWVtYmVyCisgICBvZiB0aGUgbmV3IG93 bmluZyByb2xlLiBUaGUgbmV3IG93bmVyIG11c3QgaGF2ZSA8bGl0ZXJhbD5DUkVBVEU8L2xpdGVy YWw+CisgICBwcml2aWxlZ2Ugb24gdGhlIGRhdGFiYXNlLiAgQWxzbywgdGhlIG5ldyBvd25lciBv ZiBhCisgICA8bGl0ZXJhbD5GT1IgQUxMIFRBQkxFUzwvbGl0ZXJhbD4gb3IKKyAgIDxsaXRlcmFs PkZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gcHVibGljYXRpb24gbXVzdCBiZSBh IHN1cGVydXNlci4KKyAgIEhvd2V2ZXIsIGEgc3VwZXJ1c2VyIGNhbiBjaGFuZ2UgdGhlIG93bmVy c2hpcCBvZiBhIHB1YmxpY2F0aW9uIHJlZ2FyZGxlc3Mgb2YKKyAgIHRoZXNlIHJlc3RyaWN0aW9u cy4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpAQCAtMjA3LDYgKzIyMSwxMiBAQCBBTFRFUiBQVUJM SUNBVElPTiBzYWxlc19wdWJsaWNhdGlvbiBBREQgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgbWFya2V0 aW5nLCBzYWxlczsKICAgIDxzdHJ1Y3RuYW1lPnByb2R1Y3Rpb25fcHVibGljYXRpb248L3N0cnVj dG5hbWU+OgogPHByb2dyYW1saXN0aW5nPgogQUxURVIgUFVCTElDQVRJT04gcHJvZHVjdGlvbl9w dWJsaWNhdGlvbiBBREQgVEFCTEUgdXNlcnMsIGRlcGFydG1lbnRzLCBBTEwgVEFCTEVTIElOIFND SEVNQSBwcm9kdWN0aW9uOworPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisKKyAgPHBhcmE+Cisg ICBSZXNldCB0aGUgcHVibGljYXRpb24gPHN0cnVjdG5hbWU+cHJvZHVjdGlvbl9wdWJsaWNhdGlv bjwvc3RydWN0bmFtZT46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBQVUJMSUNBVElPTiBwcm9k dWN0aW9uX3B1YmxpY2F0aW9uIFJFU0VUOwogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAgPC9y ZWZzZWN0MT4KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25j bWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwppbmRleCA4ZTY0 NTc0MWU0Li45ZWQ4Y2RlZGJjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJs aWNhdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMu YwpAQCAtNTMsNiArNTMsMTQgQEAKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogI2luY2x1 ZGUgInV0aWxzL3ZhcmxlbmEuaCIKIAorLyogQ1JFQVRFIFBVQkxJQ0FUSU9OIGRlZmF1bHQgdmFs dWVzIGZvciBmbGFncyBhbmQgb3B0aW9ucyAqLworI2RlZmluZSBQVUJfREVGQVVMVF9BQ1RJT05f SU5TRVJUIHRydWUKKyNkZWZpbmUgUFVCX0RFRkFVTFRfQUNUSU9OX1VQREFURSB0cnVlCisjZGVm aW5lIFBVQl9ERUZBVUxUX0FDVElPTl9ERUxFVEUgdHJ1ZQorI2RlZmluZSBQVUJfREVGQVVMVF9B Q1RJT05fVFJVTkNBVEUgdHJ1ZQorI2RlZmluZSBQVUJfREVGQVVMVF9WSUFfUk9PVCBmYWxzZQor I2RlZmluZSBQVUJfREVGQVVMVF9BTExfVEFCTEVTIGZhbHNlCisKIC8qCiAgKiBJbmZvcm1hdGlv biB1c2VkIHRvIHZhbGlkYXRlIHRoZSBjb2x1bW5zIGluIHRoZSByb3cgZmlsdGVyIGV4cHJlc3Np b24uIFNlZQogICogY29udGFpbl9pbnZhbGlkX3JmY29sdW1uX3dhbGtlciBmb3IgZGV0YWlscy4K QEAgLTkxLDExICs5OSwxMSBAQCBwYXJzZV9wdWJsaWNhdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUg KnBzdGF0ZSwKIAkqcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3RfZ2l2ZW4gPSBmYWxzZTsKIAog CS8qIGRlZmF1bHRzICovCi0JcHViYWN0aW9ucy0+cHViaW5zZXJ0ID0gdHJ1ZTsKLQlwdWJhY3Rp b25zLT5wdWJ1cGRhdGUgPSB0cnVlOwotCXB1YmFjdGlvbnMtPnB1YmRlbGV0ZSA9IHRydWU7Ci0J cHViYWN0aW9ucy0+cHVidHJ1bmNhdGUgPSB0cnVlOwotCSpwdWJsaXNoX3ZpYV9wYXJ0aXRpb25f cm9vdCA9IGZhbHNlOworCXB1YmFjdGlvbnMtPnB1Ymluc2VydCA9IFBVQl9ERUZBVUxUX0FDVElP Tl9JTlNFUlQ7CisJcHViYWN0aW9ucy0+cHVidXBkYXRlID0gUFVCX0RFRkFVTFRfQUNUSU9OX1VQ REFURTsKKwlwdWJhY3Rpb25zLT5wdWJkZWxldGUgPSBQVUJfREVGQVVMVF9BQ1RJT05fREVMRVRF OworCXB1YmFjdGlvbnMtPnB1YnRydW5jYXRlID0gUFVCX0RFRkFVTFRfQUNUSU9OX1RSVU5DQVRF OworCSpwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9IFBVQl9ERUZBVUxUX1ZJQV9ST09UOwog CiAJLyogUGFyc2Ugb3B0aW9ucyAqLwogCWZvcmVhY2gobGMsIG9wdGlvbnMpCkBAIC0xMTA1LDYg KzExMTMsODYgQEAgSW52YWxpZGF0ZVB1YmxpY2F0aW9uUmVscyhMaXN0ICpyZWxpZHMpCiAJCUNh Y2hlSW52YWxpZGF0ZVJlbGNhY2hlQWxsKCk7CiB9CiAKKy8qCisgKiBSZXNldCB0aGUgcHVibGlj YXRpb24uCisgKgorICogUmVzZXQgdGhlIHB1YmxpY2F0aW9uIG9wdGlvbnMsIHNldHRpbmcgQUxM IFRBQkxFUyBmbGFnIHRvIGZhbHNlIGFuZCBkcm9wCisgKiBhbGwgcmVsYXRpb25zIGFuZCBzY2hl bWFzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24uCisgKi8KK3N0YXRp YyB2b2lkCitBbHRlclB1YmxpY2F0aW9uUmVzZXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1 YmxpY2F0aW9uU3RtdCAqc3RtdCwKKwkJCQkJICBSZWxhdGlvbiByZWwsIEhlYXBUdXBsZSB0dXAp Cit7CisJRm9ybV9wZ19wdWJsaWNhdGlvbiBwdWJmb3JtID0gKEZvcm1fcGdfcHVibGljYXRpb24p IEdFVFNUUlVDVCh0dXApOworCU9pZAkJCXB1YmlkID0gcHViZm9ybS0+b2lkOworCUxpc3QJICAg KnNjaGVtYXMgPSBOSUw7CisJTGlzdAkgICAqcmVscyA9IE5JTDsKKwlib29sCQludWxsc1tOYXR0 c19wZ19wdWJsaWNhdGlvbl07CisJYm9vbAkJcmVwbGFjZXNbTmF0dHNfcGdfcHVibGljYXRpb25d OworCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfcHVibGljYXRpb25dOworCU9iamVjdEFkZHJlc3Mg b2JqOworCUxpc3RDZWxsICAgKmxjOworCU9pZAkJCXByaWQ7CisKKwkvKiBSRVNFVCBwdWJsaWNh dGlvbiByZXF1aXJlcyBzdXBlcnVzZXIgKi8KKwlpZiAoIXN1cGVydXNlcigpKQorCQllcmVwb3J0 KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJ CQllcnJtc2coIm11c3QgYmUgc3VwZXJ1c2VyIHRvIFJFU0VUIHB1YmxpY2F0aW9uIikpOworCisJ bWVtc2V0KHZhbHVlcywgMCwgc2l6ZW9mKHZhbHVlcykpOworCW1lbXNldChudWxscywgZmFsc2Us IHNpemVvZihudWxscykpOworCW1lbXNldChyZXBsYWNlcywgZmFsc2UsIHNpemVvZihyZXBsYWNl cykpOworCisJLyogUmVzZXQgdGhlIHB1YmxpY2F0aW9uIG9wdGlvbnMgKi8KKwl2YWx1ZXNbQW51 bV9wZ19wdWJsaWNhdGlvbl9wdWJpbnNlcnQgLSAxXSA9IEJvb2xHZXREYXR1bShQVUJfREVGQVVM VF9BQ1RJT05fSU5TRVJUKTsKKwlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1Ymluc2Vy dCAtIDFdID0gdHJ1ZTsKKworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnVwZGF0ZSAt IDFdID0gQm9vbEdldERhdHVtKFBVQl9ERUZBVUxUX0FDVElPTl9VUERBVEUpOworCXJlcGxhY2Vz W0FudW1fcGdfcHVibGljYXRpb25fcHVidXBkYXRlIC0gMV0gPSB0cnVlOworCisJdmFsdWVzW0Fu dW1fcGdfcHVibGljYXRpb25fcHViZGVsZXRlIC0gMV0gPSBCb29sR2V0RGF0dW0oUFVCX0RFRkFV TFRfQUNUSU9OX0RFTEVURSk7CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJkZWxl dGUgLSAxXSA9IHRydWU7CisKKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ0cnVuY2F0 ZSAtIDFdID0gQm9vbEdldERhdHVtKFBVQl9ERUZBVUxUX0FDVElPTl9UUlVOQ0FURSk7CisJcmVw bGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ0cnVuY2F0ZSAtIDFdID0gdHJ1ZTsKKworCXZh bHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnZpYXJvb3QgLSAxXSA9IEJvb2xHZXREYXR1bShQ VUJfREVGQVVMVF9WSUFfUk9PVCk7CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ2 aWFyb290IC0gMV0gPSB0cnVlOworCisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHViYWxs dGFibGVzIC0gMV0gPSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfQUxMX1RBQkxFUyk7CisJcmVw bGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJhbGx0YWJsZXMgLSAxXSA9IHRydWU7CisKKwl0 dXAgPSBoZWFwX21vZGlmeV90dXBsZSh0dXAsIFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVz LCBudWxscywKKwkJCQkJCQlyZXBsYWNlcyk7CisKKwkvKiBVcGRhdGUgdGhlIGNhdGFsb2cuICov CisJQ2F0YWxvZ1R1cGxlVXBkYXRlKHJlbCwgJnR1cC0+dF9zZWxmLCB0dXApOworCisJLyogRHJv cCB0aGUgc2NoZW1hcyBhc3NvY2lhdGVkIHdpdGggdGhlIHB1YmxpY2F0aW9uICovCisJc2NoZW1h cyA9IEdldFB1YmxpY2F0aW9uU2NoZW1hcyhwdWJpZCk7CisJUHVibGljYXRpb25Ecm9wU2NoZW1h cyhwdWJpZCwgc2NoZW1hcywgZmFsc2UpOworCisJLyogRHJvcCB0aGUgcmVsYXRpb25zIGFzc29j aWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24gKi8KKwlyZWxzID0gR2V0UHVibGljYXRpb25SZWxh dGlvbnMocHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7CisJZm9yZWFjaChsYywgcmVscykK Kwl7CisJCU9pZAkJCXJlbGlkID0gbGZpcnN0X29pZChsYyk7CisKKwkJcHJpZCA9IEdldFN5c0Nh Y2hlT2lkMihQVUJMSUNBVElPTlJFTE1BUCwgQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfb2lkLAor CQkJCQkJCSAgIE9iamVjdElkR2V0RGF0dW0ocmVsaWQpLAorCQkJCQkJCSAgIE9iamVjdElkR2V0 RGF0dW0ocHViaWQpKTsKKwkJaWYgKCFPaWRJc1ZhbGlkKHByaWQpKQorCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJIGVycm1z ZygicmVsYXRpb24gXCIlc1wiIGlzIG5vdCBwYXJ0IG9mIHRoZSBwdWJsaWNhdGlvbiIsCisJCQkJ CQkJZ2V0X3JlbF9uYW1lKHJlbGlkKSkpKTsKKworCQlPYmplY3RBZGRyZXNzU2V0KG9iaiwgUHVi bGljYXRpb25SZWxSZWxhdGlvbklkLCBwcmlkKTsKKwkJcGVyZm9ybURlbGV0aW9uKCZvYmosIERS T1BfQ0FTQ0FERSwgMCk7CisJfQorfQorCiAvKgogICogQWRkIG9yIHJlbW92ZSB0YWJsZSB0by9m cm9tIHB1YmxpY2F0aW9uLgogICovCkBAIC0xNDE2LDYgKzE1MDQsOCBAQCBBbHRlclB1YmxpY2F0 aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAKIAlp ZiAoc3RtdC0+b3B0aW9ucykKIAkJQWx0ZXJQdWJsaWNhdGlvbk9wdGlvbnMocHN0YXRlLCBzdG10 LCByZWwsIHR1cCk7CisJZWxzZSBpZiAoc3RtdC0+YWN0aW9uID09IEFQX1Jlc2V0UHVibGljYXRp b24pCisJCUFsdGVyUHVibGljYXRpb25SZXNldChwc3RhdGUsIHN0bXQsIHJlbCwgdHVwKTsKIAll bHNlCiAJewogCQlMaXN0CSAgICpyZWxhdGlvbnMgPSBOSUw7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA5ODlk YjBkYmVjLi5kN2UxMzY2NmEyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTEwNTU4LDYgKzEwNTU4LDggQEAg cHViX29ial9saXN0OglQdWJsaWNhdGlvbk9ialNwZWMKICAqCiAgKiBBTFRFUiBQVUJMSUNBVElP TiBuYW1lIFNFVCBwdWJfb2JqIFssIC4uLl0KICAqCisgKiBBTFRFUiBQVUJMSUNBVElPTiBuYW1l IFJFU0VUCisgKgogICogcHViX29iaiBpcyBvbmUgb2Y6CiAgKgogICoJCVRBQkxFIHRhYmxlX25h bWUgWywgLi4uXQpAQCAtMTA2MDQsNiArMTA2MDYsMTMgQEAgQWx0ZXJQdWJsaWNhdGlvblN0bXQ6 CiAJCQkJCW4tPmFjdGlvbiA9IEFQX0Ryb3BPYmplY3RzOwogCQkJCQkkJCA9IChOb2RlICopIG47 CiAJCQkJfQorCQkJfCBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIFJFU0VUCisJCQkJeworCQkJCQlB bHRlclB1YmxpY2F0aW9uU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyUHVibGljYXRpb25TdG10KTsK KwkJCQkJbi0+cHVibmFtZSA9ICQzOworCQkJCQluLT5hY3Rpb24gPSBBUF9SZXNldFB1YmxpY2F0 aW9uOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CiAJCTsKIAogLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgYi9zcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmMKaW5kZXggNTVhZjllYjA0ZS4uNjJlY2MzY2RhYiAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuYwpAQCAtMTgxOSw3ICsxODE5LDcgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNo YXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxu YW1lPiAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hB bnkpKQotCQlDT01QTEVURV9XSVRIKCJBREQiLCAiRFJPUCIsICJPV05FUiBUTyIsICJSRU5BTUUg VE8iLCAiU0VUIik7CisJCUNPTVBMRVRFX1dJVEgoIkFERCIsICJEUk9QIiwgIk9XTkVSIFRPIiwg IlJFTkFNRSBUTyIsICJSRVNFVCIsICJTRVQiKTsKIAkvKiBBTFRFUiBQVUJMSUNBVElPTiA8bmFt ZT4gQUREICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRj aEFueSwgIkFERCIpKQogCQlDT01QTEVURV9XSVRIKCJBTEwgVEFCTEVTIElOIFNDSEVNQSIsICJU QUJMRSIpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDczZjYzNWI0NTUuLjk3MjZmZGFlNTgg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTQwMzUsNyArNDAzNSw4IEBAIHR5cGVkZWYgZW51 bSBBbHRlclB1YmxpY2F0aW9uQWN0aW9uCiB7CiAJQVBfQWRkT2JqZWN0cywJCQkJLyogYWRkIG9i amVjdHMgdG8gcHVibGljYXRpb24gKi8KIAlBUF9Ecm9wT2JqZWN0cywJCQkJLyogcmVtb3ZlIG9i amVjdHMgZnJvbSBwdWJsaWNhdGlvbiAqLwotCUFQX1NldE9iamVjdHMJCQkJLyogc2V0IGxpc3Qg b2Ygb2JqZWN0cyAqLworCUFQX1NldE9iamVjdHMsCQkJCS8qIHNldCBsaXN0IG9mIG9iamVjdHMg Ki8KKwlBUF9SZXNldFB1YmxpY2F0aW9uCQkJLyogcmVzZXQgdGhlIHB1YmxpY2F0aW9uICovCiB9 IEFsdGVyUHVibGljYXRpb25BY3Rpb247CiAKIHR5cGVkZWYgc3RydWN0IEFsdGVyUHVibGljYXRp b25TdG10CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9u Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CmluZGV4IDI3 NGIzN2RmZTUuLjc5OWEzZjE1ZjUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcHVibGljYXRpb24ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGlj YXRpb24ub3V0CkBAIC0xNjUzLDYgKzE2NTMsNzUgQEAgRFJPUCBQVUJMSUNBVElPTiBwdWI7CiBE Uk9QIFRBQkxFIHNjaDEudGJsMTsKIERST1AgU0NIRU1BIHNjaDEgY2FzY2FkZTsKIERST1AgU0NI RU1BIHNjaDIgY2FzY2FkZTsKKy0tIFRlc3RzIGZvciBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVT RVQKK0NSRUFURSBTQ0hFTUEgcHViX3NjaDE7CitDUkVBVEUgVEFCTEUgcHViX3NjaDEudGJsMSAo YSBpbnQpOworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOworQ1JFQVRFIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQgRk9SIEFMTCBUQUJMRVM7CitSRVNFVCBjbGllbnRfbWluX21l c3NhZ2VzOworLS0gVmVyaWZ5IHRoYXQgJ0FMTCBUQUJMRVMnIGZsYWcgaXMgcmVzZXQKK1xkUnAr IHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0 aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVz IHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25f dXNlciB8IHQgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg ICAgfCBmCisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7 CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ dWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxs IHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSBy b290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1Ymxp Y2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICAgIHwgZgorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0 IEFERCBUQUJMRSBwdWJfc2NoMS50YmwxLCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWM7Cist LSBWZXJpZnkgdGhhdCB0YWJsZXMgYW5kIHNjaGVtYXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJs aWNhdGlvbiBhcmUgZHJvcHBlZAorLS0gYWZ0ZXIgUkVTRVQKK1xkUnArIHRlc3RwdWJfcmVzZXQK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVz ZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVw ZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCitUYWJsZXM6 CisgICAgInB1Yl9zY2gxLnRibDEiCitUYWJsZXMgZnJvbSBzY2hlbWFzOgorICAgICJwdWJsaWMi CisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHVi X3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0 cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2Vy dHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBm ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZgor KDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSCA9 ICcnLCBQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9PVCA9ICd0cnVlJyk7CistLSBWZXJpZnkgdGhh dCBwdWJsaXNoIG9wdGlvbnMgYW5kIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290IG9wdGlvbiBh cmUgcmVzZXQKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVz IHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jl c3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYg ICAgICAgfCBmICAgICAgICAgfCB0CisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIg ICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRy dW5jYXRlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K KyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZgorKDEgcm93KQorCistLSBWZXJpZnkgdGhhdCBv bmx5IHN1cGVydXNlciBjYW4gcmVzZXQgYSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9yZXNldCBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworU0VUIFJP TEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyMjsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf cmVzZXQgUkVTRVQ7IC0tIGZhaWwgLSBtdXN0IGJlIHN1cGVydXNlcgorRVJST1I6ICBtdXN0IGJl IHN1cGVydXNlciB0byBSRVNFVCBwdWJsaWNhdGlvbgorU0VUIFJPTEUgcmVncmVzc19wdWJsaWNh dGlvbl91c2VyOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0OworRFJPUCBUQUJMRSBw dWJfc2NoMS50YmwxOworRFJPUCBTQ0hFTUEgcHViX3NjaDE7CiBSRVNFVCBTRVNTSU9OIEFVVEhP UklaQVRJT047CiBEUk9QIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyLCByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXIyOwogRFJPUCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcl9kdW1t eTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAppbmRleCA5ZWI4NmZkNTRmLi44Njhm MWM1MWIxIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCkBAIC0xMDU3LDYgKzEw NTcsNDMgQEAgRFJPUCBUQUJMRSBzY2gxLnRibDE7CiBEUk9QIFNDSEVNQSBzY2gxIGNhc2NhZGU7 CiBEUk9QIFNDSEVNQSBzY2gyIGNhc2NhZGU7CiAKKy0tIFRlc3RzIGZvciBBTFRFUiBQVUJMSUNB VElPTiAuLi4gUkVTRVQKK0NSRUFURSBTQ0hFTUEgcHViX3NjaDE7CitDUkVBVEUgVEFCTEUgcHVi X3NjaDEudGJsMSAoYSBpbnQpOworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOwor Q1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgRk9SIEFMTCBUQUJMRVM7CitSRVNFVCBj bGllbnRfbWluX21lc3NhZ2VzOworCistLSBWZXJpZnkgdGhhdCAnQUxMIFRBQkxFUycgZmxhZyBp cyByZXNldAorXGRScCsgdGVzdHB1Yl9yZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9y ZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKworQUxURVIgUFVCTElDQVRJT04gdGVz dHB1Yl9yZXNldCBBREQgVEFCTEUgcHViX3NjaDEudGJsMSwgQUxMIFRBQkxFUyBJTiBTQ0hFTUEg cHVibGljOworCistLSBWZXJpZnkgdGhhdCB0YWJsZXMgYW5kIHNjaGVtYXMgYXNzb2NpYXRlZCB3 aXRoIHRoZSBwdWJsaWNhdGlvbiBhcmUgZHJvcHBlZAorLS0gYWZ0ZXIgUkVTRVQKK1xkUnArIHRl c3RwdWJfcmVzZXQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJw KyB0ZXN0cHViX3Jlc2V0CisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQ VUJMSVNIID0gJycsIFBVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UID0gJ3RydWUnKTsKKworLS0g VmVyaWZ5IHRoYXQgcHVibGlzaCBvcHRpb25zIGFuZCBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9v dCBvcHRpb24gYXJlIHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0CitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorCistLSBWZXJpZnkg dGhhdCBvbmx5IHN1cGVydXNlciBjYW4gcmVzZXQgYSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwor U0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyMjsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgUkVTRVQ7IC0tIGZhaWwgLSBtdXN0IGJlIHN1cGVydXNlcgorU0VUIFJPTEUg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyOworCitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVz ZXQ7CitEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDE7CitEUk9QIFNDSEVNQSBwdWJfc2NoMTsKKwog UkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwogRFJPUCBST0xFIHJlZ3Jlc3NfcHVibGljYXRp b25fdXNlciwgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyMjsKIERST1AgUk9MRSByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXJfZHVtbXk7Ci0tIAoyLjMyLjAKCg== --000000000000bfa24e05df7ee91a Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0002-Skip-publishing-the-tables-specified-in-EXCEPT-TA.patch" Content-Disposition: attachment; filename="v7-0002-Skip-publishing-the-tables-specified-in-EXCEPT-TA.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l3ffmtbp1 RnJvbSBkMTUwYjdhY2YwZWU4NmRjMzBlNzIyNjYyMzFlM2RiYWEyYjFiNTFiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNod2FyYW4gQyA8dmlnbmVzaDIxQGdtYWlsLmNvbT4K RGF0ZTogVHVlLCAxNyBNYXkgMjAyMiAxMTo1MDowMCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjcg Mi8yXSBTa2lwIHB1Ymxpc2hpbmcgdGhlIHRhYmxlcyBzcGVjaWZpZWQgaW4gRVhDRVBUIFRBQkxF LgoKQSBuZXcgIkVYQ0VQVCBUQUJMRSIgY2xhdXNlIGZvciBDUkVBVEUvQUxURVIgUFVCTElDQVRJ T04gYWxsb3dzIG9uZSBvcgptb3JlIHRhYmxlcyB0byBiZSBleGNsdWRlZC4gVGhlIHB1Ymxpc2hl ciB3aWxsIG5vdCBzZW5kIHRoZSBkYXRhIG9mCmV4Y2x1ZGVkIHRhYmxlcyB0byB0aGUgc3Vic2Ny aWJlci4KClRoZSBuZXcgc3ludGF4IGFsbG93cyBzcGVjaWZ5aW5nIGV4Y2x1ZGVkIHJlbGF0aW9u cyB3aGVuIGNyZWF0aW5nIG9yIGFsdGVyaW5nCmEgcHVibGljYXRpb24uIEZvciBleGFtcGxlOgpD UkVBVEUgUFVCTElDQVRJT04gcHViMSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgdDEsdDI7 Cm9yCkFMVEVSIFBVQkxJQ0FUSU9OIHB1YjEgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHQx LHQyOwoKQSBuZXcgY29sdW1uICJwcmV4Y2VwdCIgaXMgYWRkZWQgdG8gdGFibGUgInBnX3B1Ymxp Y2F0aW9uX3JlbCIsIHRvIG1haW50YWluCnRoZSByZWxhdGlvbnMgdGhhdCB0aGUgdXNlciB3YW50 cyB0byBleGNsdWRlIGZyb20gdGhlIHB1YmxpY2F0aW9ucy4KCnBnX2R1bXAgaXMgdXBkYXRlZCB0 byBpZGVudGlmeSBhbmQgZHVtcCB0aGUgZXhjbHVkZWQgdGFibGVzIG9mIHRoZSBwdWJsaWNhdGlv bnMuCgpUaGUgcHNxbCBcZCBmYW1pbHkgb2YgY29tbWFuZHMgY2FuIG5vdyBkaXNwbGF5IGV4Y2x1 ZGVkIHRhYmxlcy4gZS5nLiBwc3FsClxkUnArIHZhcmlhbnQgd2lsbCBub3cgZGlzcGxheSBhc3Nv Y2lhdGVkICJleGNlcHQgdGFibGVzIiBpZiBhbnkuCgpCdW1wIGNhdGFsb2cgdmVyc2lvbi4KLS0t CiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgIDkgKwog ZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbCAgICAgICAgIHwgICA1ICstCiBk b2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwgICAgICAgfCAgMTggKy0KIGRv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwgICAgICB8ICAyOSArKy0KIGRv Yy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCAgICAgICAgICAgICAgICB8ICAgNSArLQogc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jICAgICAgICAgIHwgIDcxICsrKystLS0K IHNyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jICAgICAgICB8IDE3NSArKysr KysrKysrKysrLS0tLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jICAgICAgICAg ICAgICB8ICAgNCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAg ICAgIHwgIDM5ICsrKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0 LmMgICB8ICAyNSArLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMgICAgICAg ICAgICB8ICAxNyArLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAg ICAgIHwgIDU3ICsrKysrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAg ICAgICAgIHwgICAxICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyAgICAgICAgICAg ICAgICB8ICAgNyArCiBzcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAg ICAgfCAgMTIgKysKIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAg ICB8ICA2MiArKysrKystCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAgICAgICAgICAg ICAgICAgfCAgMTAgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaCAgICAg ICAgICB8ICAgNyArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaCAg ICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oICAgICAg ICB8ICAgNyArLQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAg IHwgICAyICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0ICAgICB8 IDEyNSArKysrKysrKysrKystCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwg ICAgICAgICAgfCAgNjUgKysrKysrLQogLi4uL3QvMDMyX3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJs ZS5wbCAgICAgICAgIHwgIDg1ICsrKysrKysrKwogMjQgZmlsZXMgY2hhbmdlZCwgNjk4IGluc2Vy dGlvbnMoKyksIDE0MCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9z dWJzY3JpcHRpb24vdC8wMzJfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsCgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bAppbmRleCBkOTZjNzJlNTMxLi45ODVlZGExNmE3IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtNjQyNiw2 ICs2NDI2LDE1IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291 bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICBpZiB0aGVyZSBpcyBu byBwdWJsaWNhdGlvbiBxdWFsaWZ5aW5nIGNvbmRpdGlvbi48L3BhcmE+PC9lbnRyeT4KICAgICAg PC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICA8c3RydWN0ZmllbGQ+ cHJleGNlcHQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5ib29sPC90eXBlPgorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgVHJ1ZSBpZiB0aGUgcmVsYXRpb24gbXVzdCBiZSBleGNsdWRl ZAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD5wcmF0dHJzPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+aW50MnZlY3RvcjwvdHlwZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJl cGxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCmlu ZGV4IDE0NWVhNzFkNjEuLmQ3ZDZiYTA1MjkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9sb2dp Y2FsLXJlcGxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRp b24uc2dtbApAQCAtMTE2Nyw4ICsxMTY3LDkgQEAgQ09OVEVYVDogIHByb2Nlc3NpbmcgcmVtb3Rl IGRhdGEgZm9yIHJlcGxpY2F0aW9uIG9yaWdpbiAicGdfMTYzOTUiIGR1cmluZyAiSU5TRVIKICAg PHBhcmE+CiAgICBUbyBhZGQgdGFibGVzIHRvIGEgcHVibGljYXRpb24sIHRoZSB1c2VyIG11c3Qg aGF2ZSBvd25lcnNoaXAgcmlnaHRzIG9uIHRoZQogICAgdGFibGUuIFRvIGFkZCBhbGwgdGFibGVz IGluIHNjaGVtYSB0byBhIHB1YmxpY2F0aW9uLCB0aGUgdXNlciBtdXN0IGJlIGEKLSAgIHN1cGVy dXNlci4gVG8gY3JlYXRlIGEgcHVibGljYXRpb24gdGhhdCBwdWJsaXNoZXMgYWxsIHRhYmxlcyBv ciBhbGwgdGFibGVzIGluCi0gICBzY2hlbWEgYXV0b21hdGljYWxseSwgdGhlIHVzZXIgbXVzdCBi ZSBhIHN1cGVydXNlci4KKyAgIHN1cGVydXNlci4gVG8gYWRkIGFsbCB0YWJsZXMgdG8gYSBwdWJs aWNhdGlvbiwgdGhlIHVzZXIgbXVzdCBiZSBhIHN1cGVydXNlci4KKyAgIFRvIGNyZWF0ZSBhIHB1 YmxpY2F0aW9uIHRoYXQgcHVibGlzaGVzIGFsbCB0YWJsZXMgb3IgYWxsIHRhYmxlcyBpbiBzY2hl bWEKKyAgIGF1dG9tYXRpY2FsbHksIHRoZSB1c2VyIG11c3QgYmUgYSBzdXBlcnVzZXIuCiAgIDwv cGFyYT4KIAogICA8cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVi bGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbApp bmRleCA0N2JkMTVmMWZhLi44MmE0ZWE0ZWMxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVm L2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJs aWNhdGlvbi5zZ21sCkBAIC0yMiw2ICsyMiw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgog IDxyZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNpcz4KIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gQUREIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAu Li5dCitBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFt ZTwvcmVwbGFjZWFibGU+IEFERCBBTEwgVEFCTEVTIFsgRVhDRVBUIFsgVEFCTEUgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IFss IC4uLiBdIF0KIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT4gU0VUIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5w dWJsaWNhdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCiBBTFRFUiBQVUJMSUNBVElP TiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IERST1Ag PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFj ZWFibGU+IFssIC4uLl0KIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gU0VUICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnB1YmxpY2F0aW9uX3BhcmFtZXRlcjwvcmVwbGFjZWFibGU+IFs9IDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+XSBbLCAuLi4gXSApCkBAIC0z Myw2ICszNCwxMSBAQCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFU0VUCiAKICAgICBUQUJMRSBbIE9OTFkgXSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBd IFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2Vh YmxlPiBbLCAuLi4gXSApIF0gWyBXSEVSRSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gKSBdIFssIC4uLiBdCiAgICAgQUxMIFRBQkxFUyBJ TiBTQ0hFTUEgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3Jl cGxhY2VhYmxlPiB8IENVUlJFTlRfU0NIRU1BIH0gWywgLi4uIF0KKworPHBocmFzZT53aGVyZSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0aW9uX29iamVjdDwvcmVwbGFjZWFi bGU+IGlzOjwvcGhyYXNlPgorCisgICAgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICogXQorCiA8L3N5bm9wc2lzPgogIDwv cmVmc3lub3BzaXNkaXY+CiAKQEAgLTgyLDggKzg4LDggQEAgQUxURVIgUFVCTElDQVRJT04gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRVNFVAogCiAg IDxwYXJhPgogICAgWW91IG11c3Qgb3duIHRoZSBwdWJsaWNhdGlvbiB0byB1c2UgPGNvbW1hbmQ+ QUxURVIgUFVCTElDQVRJT048L2NvbW1hbmQ+LgotICAgQWRkaW5nIGEgdGFibGUgdG8gYSBwdWJs aWNhdGlvbiBhZGRpdGlvbmFsbHkgcmVxdWlyZXMgb3duaW5nIHRoYXQgdGFibGUuCi0gICBUaGUg PGxpdGVyYWw+QUREIEFMTCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiwKKyAgIEFkZGluZyBh IHRhYmxlIHRvIG9yIGV4Y2x1ZGluZyBhIHRhYmxlIGZyb20gYSBwdWJsaWNhdGlvbiBhZGRpdGlv bmFsbHkKKyAgIHJlcXVpcmVzIG93bmluZyB0aGF0IHRhYmxlLiBUaGUgPGxpdGVyYWw+QUREIEFM TCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiwKICAgIDxsaXRlcmFsPlNFVCBBTEwgVEFCTEVT IElOIFNDSEVNQTwvbGl0ZXJhbD4gdG8gYSBwdWJsaWNhdGlvbiBhbmQKICAgIDxsaXRlcmFsPlJF U0VUPC9saXRlcmFsPiBvZiBwdWJsaWNhdGlvbiByZXF1aXJlcyB0aGUgaW52b2tpbmcgdXNlciB0 byBiZSBhCiAgICBzdXBlcnVzZXIuIFRvIGFsdGVyIHRoZSBvd25lciwgeW91IG11c3QgYWxzbyBi ZSBhIGRpcmVjdCBvciBpbmRpcmVjdCBtZW1iZXIKQEAgLTIxNCw2ICsyMjAsMTQgQEAgQUxURVIg UFVCTElDQVRJT04gc2FsZXNfcHVibGljYXRpb24gQUREIEFMTCBUQUJMRVMgSU4gU0NIRU1BIG1h cmtldGluZywgc2FsZXM7CiA8L3Byb2dyYW1saXN0aW5nPgogICA8L3BhcmE+CiAKKyAgPHBhcmE+ CisgICBBbHRlciBwdWJsaWNhdGlvbiA8c3RydWN0bmFtZT5wcm9kdWN0aW9uX3B1YmxpY2F0aW9u PC9zdHJ1Y3RuYW1lPiB0byBwdWJsaXNoCisgICBhbGwgdGFibGVzIGV4Y2VwdCA8c3RydWN0bmFt ZT51c2Vyczwvc3RydWN0bmFtZT4gYW5kCisgICA8c3RydWN0bmFtZT5kZXBhcnRtZW50czwvc3Ry dWN0bmFtZT4gdGFibGVzOgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgUFVCTElDQVRJT04gcHJv ZHVjdGlvbl9wdWJsaWNhdGlvbiBBREQgQUxMIFRBQkxFUyBFWENFUFQgdXNlcnMsIGRlcGFydG1l bnRzOworPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisKICAgPHBhcmE+CiAgICBBZGQgdGFibGVz IDxzdHJ1Y3RuYW1lPnVzZXJzPC9zdHJ1Y3RuYW1lPiwKICAgIDxzdHJ1Y3RuYW1lPmRlcGFydG1l bnRzPC9zdHJ1Y3RuYW1lPiBhbmQgc2NoZW1hCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGlj YXRpb24uc2dtbAppbmRleCAxYTgyOGU4ZDJmLi45MjkxNmJmNzJjIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTIyLDcgKzIyLDcgQEAgUG9zdGdyZVNRTCBk b2N1bWVudGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgogQ1JFQVRFIFBVQkxJ Q0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4K LSAgICBbIEZPUiBBTEwgVEFCTEVTCisgICAgWyBGT1IgQUxMIFRBQkxFUyBbIEVYQ0VQVCBbIFRB QkxFIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2VwdGlvbl9vYmplY3Q8L3Jl cGxhY2VhYmxlPiBbLCAuLi4gXSBdCiAgICAgICB8IEZPUiA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+cHVibGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gXQogICAg IFsgV0lUSCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9wYXJh bWV0ZXI8L3JlcGxhY2VhYmxlPiBbPSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFs dWU8L3JlcGxhY2VhYmxlPl0gWywgLi4uIF0gKSBdCiAKQEAgLTMwLDYgKzMwLDEwIEBAIENSRUFU RSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFj ZWFibGU+CiAKICAgICBUQUJMRSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0gWyBXSEVS RSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJs ZT4gKSBdIFssIC4uLiBdCiAgICAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgeyA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfU0NI RU1BIH0gWywgLi4uIF0KKworPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+ZXhjZXB0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgorCisgICAg WyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxh Y2VhYmxlPiBbICogXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgogCkBAIC0xMjAs NyArMTI0LDkgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgICA8bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgogICAg ICAgTWFya3MgdGhlIHB1YmxpY2F0aW9uIGFzIG9uZSB0aGF0IHJlcGxpY2F0ZXMgY2hhbmdlcyBm b3IgYWxsIHRhYmxlcyBpbgotICAgICAgdGhlIGRhdGFiYXNlLCBpbmNsdWRpbmcgdGFibGVzIGNy ZWF0ZWQgaW4gdGhlIGZ1dHVyZS4KKyAgICAgIHRoZSBkYXRhYmFzZSwgaW5jbHVkaW5nIHRhYmxl cyBjcmVhdGVkIGluIHRoZSBmdXR1cmUuIElmCisgICAgICA8bGl0ZXJhbD5FWENFUFQgVEFCTEU8 L2xpdGVyYWw+IGlzIHNwZWNpZmllZCwgdGhlbiBleGNsdWRlIHJlcGxpY2F0aW5nCisgICAgICB0 aGUgY2hhbmdlcyBmb3IgdGhlIHNwZWNpZmllZCB0YWJsZXMuCiAgICAgIDwvcGFyYT4KICAgICA8 L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CkBAIC0xNTYsNiArMTYyLDE2IEBAIENSRUFU RSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFj ZWFibGU+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlz dGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPkVYQ0VQVCBUQUJMRTwvbGl0ZXJhbD48L3Rlcm0+ CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgY2xhdXNlIHNwZWNpZmll cyBhIGxpc3Qgb2YgdGFibGVzIHRvIGV4Y2x1ZGUgZnJvbSB0aGUgcHVibGljYXRpb24uCisgICAg ICBJdCBjYW4gb25seSBiZSB1c2VkIHdpdGggPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVy YWw+LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5Pgor CiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxsaXRlcmFsPldJVEggKCA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4g Wz0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFss IC4uLiBdICk8L2xpdGVyYWw+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KQEAgLTM1MSw2ICszNjcs MTUgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIHByb2R1Y3Rpb25fcHVibGljYXRpb24gRk9SIFRBQkxF IHVzZXJzLCBkZXBhcnRtZW50cywgQUxMIFRBQkwKIENSRUFURSBQVUJMSUNBVElPTiBzYWxlc19w dWJsaWNhdGlvbiBGT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgbWFya2V0aW5nLCBzYWxlczsKIDwv cHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCisgIDxwYXJhPgorICAgQ3JlYXRlIGEgcHVibGljYXRp b24gdGhhdCBwdWJsaXNoZXMgYWxsIGNoYW5nZXMgaW4gYWxsIHRoZSB0YWJsZXMgZXhjZXB0IGZv cgorICAgdGhlIGNoYW5nZXMgb2YgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+IGFuZAor ICAgPHN0cnVjdG5hbWU+ZGVwYXJ0bWVudHM8L3N0cnVjdG5hbWU+IHRhYmxlczoKKzxwcm9ncmFt bGlzdGluZz4KK0NSRUFURSBQVUJMSUNBVElPTiBteXB1YmxpY2F0aW9uIEZPUiBBTEwgVEFCTEVT IEVYQ0VQVCB1c2VycywgZGVwYXJ0bWVudHM7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+ CisKICAgPHBhcmE+CiAgICBDcmVhdGUgYSBwdWJsaWNhdGlvbiB0aGF0IHB1Ymxpc2hlcyBhbGwg Y2hhbmdlcyBmb3IgdGFibGUgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+LAogICAgYnV0 IHJlcGxpY2F0ZXMgb25seSBjb2x1bW5zIDxzdHJ1Y3RuYW1lPnVzZXJfaWQ8L3N0cnVjdG5hbWU+ IGFuZApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sIGIvZG9jL3Ny Yy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCmluZGV4IDVmYzZiMTAzNGEuLjM4ODk3OTZiM2YgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL3BzcWwtcmVmLnNnbWwKQEAgLTE4NjgsOCArMTg2OCw5IEBAIHRlc3RkYj0mZ3Q7CiAg ICAgICAgIElmIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNl YWJsZT4gaXMKICAgICAgICAgc3BlY2lmaWVkLCBvbmx5IHRob3NlIHB1YmxpY2F0aW9ucyB3aG9z ZSBuYW1lcyBtYXRjaCB0aGUgcGF0dGVybiBhcmUKICAgICAgICAgbGlzdGVkLgotICAgICAgICBJ ZiA8bGl0ZXJhbD4rPC9saXRlcmFsPiBpcyBhcHBlbmRlZCB0byB0aGUgY29tbWFuZCBuYW1lLCB0 aGUgdGFibGVzIGFuZAotICAgICAgICBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHB1Ymxp Y2F0aW9uIGFyZSBzaG93biBhcyB3ZWxsLgorICAgICAgICBJZiA8bGl0ZXJhbD4rPC9saXRlcmFs PiBpcyBhcHBlbmRlZCB0byB0aGUgY29tbWFuZCBuYW1lLCB0aGUgdGFibGVzLAorICAgICAgICBl eGNsdWRlZCB0YWJsZXMgYW5kIHNjaGVtYXMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggcHVibGljYXRp b24gYXJlIHNob3duIGFzCisgICAgICAgIHdlbGwuCiAgICAgICAgIDwvcGFyYT4KICAgICAgICAg PC9saXN0aXRlbT4KICAgICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJs aWNhdGlvbi5jCmluZGV4IDhjN2ZjYTYyZGUuLmJlODI4MmEzYzMgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9n L3BnX3B1YmxpY2F0aW9uLmMKQEAgLTI5MCw3ICsyOTAsOCBAQCBHZXRQdWJQYXJ0aXRpb25PcHRp b25SZWxhdGlvbnMoTGlzdCAqcmVzdWx0LCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQs CiAgKiBhbmNlc3RvciBpcyBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0LgogICovCiBPaWQKLUdldFRv cE1vc3RBbmNlc3RvckluUHVibGljYXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLCBp bnQgKmFuY2VzdG9yX2xldmVsKQorR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihPaWQg cHVib2lkLCBMaXN0ICphbmNlc3RvcnMsCisJCQkJCQkJCWludCAqYW5jZXN0b3JfbGV2ZWwsIGJv b2wgcHViYWxsdGFibGVzKQogewogCUxpc3RDZWxsICAgKmxjOwogCU9pZAkJCXRvcG1vc3RfcmVs aWQgPSBJbnZhbGlkT2lkOwpAQCAtMzAyLDMyICszMDMsNDMgQEAgR2V0VG9wTW9zdEFuY2VzdG9y SW5QdWJsaWNhdGlvbihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsIGludCAqYW5jZXN0b3Jf bGV2ZWwKIAlmb3JlYWNoKGxjLCBhbmNlc3RvcnMpCiAJewogCQlPaWQJCQlhbmNlc3RvciA9IGxm aXJzdF9vaWQobGMpOwotCQlMaXN0CSAgICphcHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlv bnMoYW5jZXN0b3IpOwotCQlMaXN0CSAgICphc2NoZW1hUHViaWRzID0gTklMOworCQlMaXN0CSAg ICphcHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoYW5jZXN0b3IsIGZhbHNlKTsKKwkJ TGlzdAkgICAqYXNjaGVtYXB1YmlkcyA9IE5JTDsKKwkJTGlzdAkgICAqYWV4Y2VwdHB1YmlkcyA9 IE5JTDsKIAogCQlsZXZlbCsrOwogCi0JCWlmIChsaXN0X21lbWJlcl9vaWQoYXB1YmlkcywgcHVi b2lkKSkKKwkJLyogY2hlY2sgaWYgbWVtYmVyIG9mIHRhYmxlIHB1YmxpY2F0aW9ucyAqLworCQlp ZiAoIWxpc3RfbWVtYmVyX29pZChhcHViaWRzLCBwdWJvaWQpKQogCQl7Ci0JCQl0b3Btb3N0X3Jl bGlkID0gYW5jZXN0b3I7Ci0KLQkJCWlmIChhbmNlc3Rvcl9sZXZlbCkKLQkJCQkqYW5jZXN0b3Jf bGV2ZWwgPSBsZXZlbDsKLQkJfQotCQllbHNlCi0JCXsKLQkJCWFzY2hlbWFQdWJpZHMgPSBHZXRT Y2hlbWFQdWJsaWNhdGlvbnMoZ2V0X3JlbF9uYW1lc3BhY2UoYW5jZXN0b3IpKTsKLQkJCWlmIChs aXN0X21lbWJlcl9vaWQoYXNjaGVtYVB1YmlkcywgcHVib2lkKSkKKwkJCS8qIGNoZWNrIGlmIG1l bWJlciBvZiBzY2hlbWEgcHVibGljYXRpb25zICovCisJCQlhc2NoZW1hcHViaWRzID0gR2V0U2No ZW1hUHVibGljYXRpb25zKGdldF9yZWxfbmFtZXNwYWNlKGFuY2VzdG9yKSk7CisJCQlpZiAoIWxp c3RfbWVtYmVyX29pZChhc2NoZW1hcHViaWRzLCBwdWJvaWQpKQogCQkJewotCQkJCXRvcG1vc3Rf cmVsaWQgPSBhbmNlc3RvcjsKLQotCQkJCWlmIChhbmNlc3Rvcl9sZXZlbCkKLQkJCQkJKmFuY2Vz dG9yX2xldmVsID0gbGV2ZWw7CisJCQkJLyoKKwkJCQkgKiBJZiB0aGUgcHVibGljYXRpb24gaXMg YWxsIHRhYmxlcyBwdWJsaWNhdGlvbiBhbmQgdGhlIHRhYmxlCisJCQkJICogaXMgbm90IHBhcnQg b2YgZXhjZXB0aW9uIHRhYmxlcy4KKwkJCQkgKi8KKwkJCQlpZiAocHViYWxsdGFibGVzKQorCQkJ CXsKKwkJCQkJYWV4Y2VwdHB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9y LCB0cnVlKTsKKwkJCQkJaWYgKGxpc3RfbWVtYmVyX29pZChhZXhjZXB0cHViaWRzLCBwdWJvaWQp KQorCQkJCQkJZ290byBuZXh0OworCQkJCX0KKwkJCQllbHNlCisJCQkJCWdvdG8gbmV4dDsKIAkJ CX0KIAkJfQogCisJCXRvcG1vc3RfcmVsaWQgPSBhbmNlc3RvcjsKKworCQlpZiAoYW5jZXN0b3Jf bGV2ZWwpCisJCQkqYW5jZXN0b3JfbGV2ZWwgPSBsZXZlbDsKKworbmV4dDoKIAkJbGlzdF9mcmVl KGFwdWJpZHMpOwotCQlsaXN0X2ZyZWUoYXNjaGVtYVB1Ymlkcyk7CisJCWxpc3RfZnJlZShhc2No ZW1hcHViaWRzKTsKKwkJbGlzdF9mcmVlKGFleGNlcHRwdWJpZHMpOwogCX0KIAogCXJldHVybiB0 b3Btb3N0X3JlbGlkOwpAQCAtMzk2LDYgKzQwOCw4IEBAIHB1YmxpY2F0aW9uX2FkZF9yZWxhdGlv bihPaWQgcHViaWQsIFB1YmxpY2F0aW9uUmVsSW5mbyAqcHJpLAogCQlPYmplY3RJZEdldERhdHVt KHB1YmlkKTsKIAl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfcHJyZWxpZCAtIDFdID0K IAkJT2JqZWN0SWRHZXREYXR1bShyZWxpZCk7CisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25f cmVsX3ByZXhjZXB0IC0gMV0gPQorCQlCb29sR2V0RGF0dW0ocHJpLT5leGNlcHQpOwogCiAJLyog QWRkIHF1YWxpZmljYXRpb25zLCBpZiBhdmFpbGFibGUgKi8KIAlpZiAocHJpLT53aGVyZUNsYXVz ZSAhPSBOVUxMKQpAQCAtNjY0LDkgKzY3OCw5IEBAIHB1YmxpY2F0aW9uX2FkZF9zY2hlbWEoT2lk IHB1YmlkLCBPaWQgc2NoZW1haWQsIGJvb2wgaWZfbm90X2V4aXN0cykKIAlyZXR1cm4gbXlzZWxm OwogfQogCi0vKiBHZXRzIGxpc3Qgb2YgcHVibGljYXRpb24gb2lkcyBmb3IgYSByZWxhdGlvbiAq LworLyogR2V0cyBsaXN0IG9mIHB1YmxpY2F0aW9uIG9pZHMgZm9yIGEgcmVsYXRpb24gdGhhdCBt YXRjaGVzIHRoZSBleGNlcHRfZmxhZyAqLwogTGlzdCAqCi1HZXRSZWxhdGlvblB1YmxpY2F0aW9u cyhPaWQgcmVsaWQpCitHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhPaWQgcmVsaWQsIGJvb2wgZXhj ZXB0X2ZsYWcpCiB7CiAJTGlzdAkgICAqcmVzdWx0ID0gTklMOwogCUNhdENMaXN0ICAgKnB1YnJl bGxpc3Q7CkBAIC02ODAsNyArNjk0LDggQEAgR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJl bGlkKQogCQlIZWFwVHVwbGUJdHVwID0gJnB1YnJlbGxpc3QtPm1lbWJlcnNbaV0tPnR1cGxlOwog CQlPaWQJCQlwdWJpZCA9ICgoRm9ybV9wZ19wdWJsaWNhdGlvbl9yZWwpIEdFVFNUUlVDVCh0dXAp KS0+cHJwdWJpZDsKIAotCQlyZXN1bHQgPSBsYXBwZW5kX29pZChyZXN1bHQsIHB1YmlkKTsKKwkJ aWYgKGV4Y2VwdF9mbGFnID09ICgoRm9ybV9wZ19wdWJsaWNhdGlvbl9yZWwpIEdFVFNUUlVDVCh0 dXApKS0+cHJleGNlcHQpCisJCQlyZXN1bHQgPSBsYXBwZW5kX29pZChyZXN1bHQsIHB1YmlkKTsK IAl9CiAKIAlSZWxlYXNlU3lzQ2FjaGVMaXN0KHB1YnJlbGxpc3QpOwpAQCAtNzc5LDEzICs3OTQs MTYgQEAgR2V0QWxsVGFibGVzUHVibGljYXRpb25zKHZvaWQpCiAgKiByb290IHBhcnRpdGlvbmVk IHRhYmxlcy4KICAqLwogTGlzdCAqCi1HZXRBbGxUYWJsZXNQdWJsaWNhdGlvblJlbGF0aW9ucyhi b29sIHB1YnZpYXJvb3QpCitHZXRBbGxUYWJsZXNQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHVi aWQsIGJvb2wgcHVidmlhcm9vdCkKIHsKIAlSZWxhdGlvbgljbGFzc1JlbDsKIAlTY2FuS2V5RGF0 YSBrZXlbMV07CiAJVGFibGVTY2FuRGVzYyBzY2FuOwogCUhlYXBUdXBsZQl0dXBsZTsKIAlMaXN0 CSAgICpyZXN1bHQgPSBOSUw7CisJTGlzdAkgICAqZXhjZXB0bGlzdDsKKworCWV4Y2VwdGxpc3Qg PSBHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJpZCwgUFVCTElDQVRJT05fUEFSVF9BTEwpOwog CiAJY2xhc3NSZWwgPSB0YWJsZV9vcGVuKFJlbGF0aW9uUmVsYXRpb25JZCwgQWNjZXNzU2hhcmVM b2NrKTsKIApAQCAtODAyLDcgKzgyMCw4IEBAIEdldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRp b25zKGJvb2wgcHVidmlhcm9vdCkKIAkJT2lkCQkJcmVsaWQgPSByZWxGb3JtLT5vaWQ7CiAKIAkJ aWYgKGlzX3B1Ymxpc2hhYmxlX2NsYXNzKHJlbGlkLCByZWxGb3JtKSAmJgotCQkJIShyZWxGb3Jt LT5yZWxpc3BhcnRpdGlvbiAmJiBwdWJ2aWFyb290KSkKKwkJCSEocmVsRm9ybS0+cmVsaXNwYXJ0 aXRpb24gJiYgcHVidmlhcm9vdCkgJiYKKwkJCSFsaXN0X21lbWJlcl9vaWQoZXhjZXB0bGlzdCwg cmVsaWQpKQogCQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCByZWxpZCk7CiAJfQogCkBA IC04MjMsNyArODQyLDggQEAgR2V0QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlvbnMoYm9vbCBw dWJ2aWFyb290KQogCQkJT2lkCQkJcmVsaWQgPSByZWxGb3JtLT5vaWQ7CiAKIAkJCWlmIChpc19w dWJsaXNoYWJsZV9jbGFzcyhyZWxpZCwgcmVsRm9ybSkgJiYKLQkJCQkhcmVsRm9ybS0+cmVsaXNw YXJ0aXRpb24pCisJCQkJIXJlbEZvcm0tPnJlbGlzcGFydGl0aW9uICYmCisJCQkJIWxpc3RfbWVt YmVyX29pZChleGNlcHRsaXN0LCByZWxpZCkpCiAJCQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVz dWx0LCByZWxpZCk7CiAJCX0KIApAQCAtMTEwOSw3ICsxMTI5LDggQEAgcGdfZ2V0X3B1YmxpY2F0 aW9uX3RhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCQkgKi8KIAkJaWYgKHB1YmxpY2F0aW9uLT5h bGx0YWJsZXMpCiAJCXsKLQkJCXRhYmxlcyA9IEdldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRp b25zKHB1YmxpY2F0aW9uLT5wdWJ2aWFyb290KTsKKwkJCXRhYmxlcyA9IEdldEFsbFRhYmxlc1B1 YmxpY2F0aW9uUmVsYXRpb25zKHB1YmxpY2F0aW9uLT5vaWQsCisJCQkJCQkJCQkJCQkJICBwdWJs aWNhdGlvbi0+cHVidmlhcm9vdCk7CiAJCX0KIAkJZWxzZQogCQl7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3B1YmxpY2F0aW9uY21kcy5jCmluZGV4IDllZDhjZGVkYmMuLmZlYmE4MjFmYjcgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCkBAIC0xOTMsNiArMTkzLDExIEBAIE9iamVj dHNJblB1YmxpY2F0aW9uVG9PaWRzKExpc3QgKnB1Ym9ianNwZWNfbGlzdCwgUGFyc2VTdGF0ZSAq cHN0YXRlLAogCQlzd2l0Y2ggKHB1Ym9iai0+cHVib2JqdHlwZSkKIAkJewogCQkJY2FzZSBQVUJM SUNBVElPTk9CSl9UQUJMRToKKwkJCQlwdWJvYmotPnB1YnRhYmxlLT5leGNlcHQgPSBmYWxzZTsK KwkJCQkqcmVscyA9IGxhcHBlbmQoKnJlbHMsIHB1Ym9iai0+cHVidGFibGUpOworCQkJCWJyZWFr OworCQkJY2FzZSBQVUJMSUNBVElPTk9CSl9FWENFUFRfVEFCTEU6CisJCQkJcHVib2JqLT5wdWJ0 YWJsZS0+ZXhjZXB0ID0gdHJ1ZTsKIAkJCQkqcmVscyA9IGxhcHBlbmQoKnJlbHMsIHB1Ym9iai0+ cHVidGFibGUpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBQVUJMSUNBVElPTk9CSl9UQUJMRVNfSU5f U0NIRU1BOgpAQCAtMzA1LDcgKzMxMCw3IEBAIGNvbnRhaW5faW52YWxpZF9yZmNvbHVtbl93YWxr ZXIoTm9kZSAqbm9kZSwgcmZfY29udGV4dCAqY29udGV4dCkKICAqLwogYm9vbAogcHViX3JmX2Nv bnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sIExpc3Qg KmFuY2VzdG9ycywKLQkJCQkJCQkgICBib29sIHB1YnZpYXJvb3QpCisJCQkJCQkJICAgYm9vbCBw dWJ2aWFyb290LCBib29sIHB1YmFsbHRhYmxlcykKIHsKIAlIZWFwVHVwbGUJcmZ0dXBsZTsKIAlP aWQJCQlyZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQocmVsYXRpb24pOwpAQCAtMzMyLDcgKzMzNyw4 IEBAIHB1Yl9yZl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJl bGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiAJaWYgKHB1YnZpYXJvb3QgJiYgcmVsYXRpb24tPnJk X3JlbC0+cmVsaXNwYXJ0aXRpb24pCiAJewogCQlwdWJsaXNoX2FzX3JlbGlkCi0JCQk9IEdldFRv cE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViaWQsIGFuY2VzdG9ycywgTlVMTCk7CisJCQk9 IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViaWQsIGFuY2VzdG9ycywgTlVMTCwK KwkJCQkJCQkJCQkJICBwdWJhbGx0YWJsZXMpOwogCiAJCWlmICghT2lkSXNWYWxpZChwdWJsaXNo X2FzX3JlbGlkKSkKIAkJCXB1Ymxpc2hfYXNfcmVsaWQgPSByZWxpZDsKQEAgLTM4MSw3ICszODcs NyBAQCBwdWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiBy ZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAogICovCiBib29sCiBwdWJfY29sbGlzdF9jb250YWlu c19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNl c3RvcnMsCi0JCQkJCQkJCQlib29sIHB1YnZpYXJvb3QpCisJCQkJCQkJCQlib29sIHB1YnZpYXJv b3QsIGJvb2wgcHViYWxsdGFibGVzKQogewogCUhlYXBUdXBsZQl0dXBsZTsKIAlPaWQJCQlyZWxp ZCA9IFJlbGF0aW9uR2V0UmVsaWQocmVsYXRpb24pOwpAQCAtNDAwLDcgKzQwNiw4IEBAIHB1Yl9j b2xsaXN0X2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRp b24sIExpc3QgKmFuY2VzdG9yCiAJICovCiAJaWYgKHB1YnZpYXJvb3QgJiYgcmVsYXRpb24tPnJk X3JlbC0+cmVsaXNwYXJ0aXRpb24pCiAJewotCQlwdWJsaXNoX2FzX3JlbGlkID0gR2V0VG9wTW9z dEFuY2VzdG9ySW5QdWJsaWNhdGlvbihwdWJpZCwgYW5jZXN0b3JzLCBOVUxMKTsKKwkJcHVibGlz aF9hc19yZWxpZCA9IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViaWQsIGFuY2Vz dG9ycywKKwkJCQkJCQkJCQkJCQkJICAgTlVMTCwgcHViYWxsdGFibGVzKTsKIAogCQlpZiAoIU9p ZElzVmFsaWQocHVibGlzaF9hc19yZWxpZCkpCiAJCQlwdWJsaXNoX2FzX3JlbGlkID0gcmVsaWQ7 CkBAIC04NDQsNTQgKzg1MSw1MiBAQCBDcmVhdGVQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3Rh dGUsIENyZWF0ZVB1YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAkvKiBNYWtlIHRoZSBjaGFuZ2VzIHZp c2libGUuICovCiAJQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKIAotCS8qIEFzc29jaWF0ZSBv YmplY3RzIHdpdGggdGhlIHB1YmxpY2F0aW9uLiAqLwotCWlmIChzdG10LT5mb3JfYWxsX3RhYmxl cykKLQl7Ci0JCS8qIEludmFsaWRhdGUgcmVsY2FjaGUgc28gdGhhdCBwdWJsaWNhdGlvbiBpbmZv IGlzIHJlYnVpbHQuICovCi0JCUNhY2hlSW52YWxpZGF0ZVJlbGNhY2hlQWxsKCk7Ci0JfQotCWVs c2UKLQl7Ci0JCU9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKHN0bXQtPnB1Ym9iamVjdHMsIHBz dGF0ZSwgJnJlbGF0aW9ucywKLQkJCQkJCQkJICAgJnNjaGVtYWlkbGlzdCk7CisJT2JqZWN0c0lu UHVibGljYXRpb25Ub09pZHMoc3RtdC0+cHVib2JqZWN0cywgcHN0YXRlLCAmcmVsYXRpb25zLAor CQkJCQkJCSAgICZzY2hlbWFpZGxpc3QpOwogCi0JCS8qIEZPUiBBTEwgVEFCTEVTIElOIFNDSEVN QSByZXF1aXJlcyBzdXBlcnVzZXIgKi8KLQkJaWYgKGxpc3RfbGVuZ3RoKHNjaGVtYWlkbGlzdCkg PiAwICYmICFzdXBlcnVzZXIoKSkKLQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCWVycmNvZGUoRVJS Q09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKLQkJCQkJZXJybXNnKCJtdXN0IGJlIHN1cGVy dXNlciB0byBjcmVhdGUgRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpY2F0aW9uIikpOwor CS8qIEZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQSByZXF1aXJlcyBzdXBlcnVzZXIgKi8KKwlpZiAo bGlzdF9sZW5ndGgoc2NoZW1haWRsaXN0KSA+IDAgJiYgIXN1cGVydXNlcigpKQorCQllcmVwb3J0 KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJ CQllcnJtc2coIm11c3QgYmUgc3VwZXJ1c2VyIHRvIGNyZWF0ZSBGT1IgQUxMIFRBQkxFUyBJTiBT Q0hFTUEgcHVibGljYXRpb24iKSk7CiAKLQkJaWYgKGxpc3RfbGVuZ3RoKHJlbGF0aW9ucykgPiAw KQotCQl7Ci0JCQlMaXN0CSAgICpyZWxzOworCWlmIChsaXN0X2xlbmd0aChyZWxhdGlvbnMpID4g MCkKKwl7CisJCUxpc3QJICAgKnJlbHM7CiAKLQkJCXJlbHMgPSBPcGVuVGFibGVMaXN0KHJlbGF0 aW9ucyk7Ci0JCQlDaGVja09ialNjaGVtYU5vdEFscmVhZHlJblB1YmxpY2F0aW9uKHJlbHMsIHNj aGVtYWlkbGlzdCwKLQkJCQkJCQkJCQkJCSAgUFVCTElDQVRJT05PQkpfVEFCTEUpOworCQlyZWxz ID0gT3BlblRhYmxlTGlzdChyZWxhdGlvbnMpOworCQlDaGVja09ialNjaGVtYU5vdEFscmVhZHlJ blB1YmxpY2F0aW9uKHJlbHMsIHNjaGVtYWlkbGlzdCwKKwkJCQkJCQkJCQkJICBQVUJMSUNBVElP Tk9CSl9UQUJMRSk7CiAKLQkJCVRyYW5zZm9ybVB1YldoZXJlQ2xhdXNlcyhyZWxzLCBwc3RhdGUt PnBfc291cmNldGV4dCwKLQkJCQkJCQkJCSBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCk7CisJ CVRyYW5zZm9ybVB1YldoZXJlQ2xhdXNlcyhyZWxzLCBwc3RhdGUtPnBfc291cmNldGV4dCwKKwkJ CQkJCQkJIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290KTsKIAotCQkJQ2hlY2tQdWJSZWxhdGlv bkNvbHVtbkxpc3QocmVscywgcHN0YXRlLT5wX3NvdXJjZXRleHQsCi0JCQkJCQkJCQkgICBwdWJs aXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCk7CisJCUNoZWNrUHViUmVsYXRpb25Db2x1bW5MaXN0KHJl bHMsIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAorCQkJCQkJCQkgICBwdWJsaXNoX3ZpYV9wYXJ0aXRp b25fcm9vdCk7CiAKLQkJCVB1YmxpY2F0aW9uQWRkVGFibGVzKHB1Ym9pZCwgcmVscywgdHJ1ZSwg TlVMTCk7Ci0JCQlDbG9zZVRhYmxlTGlzdChyZWxzKTsKLQkJfQorCQlQdWJsaWNhdGlvbkFkZFRh YmxlcyhwdWJvaWQsIHJlbHMsIHRydWUsIE5VTEwpOworCQlDbG9zZVRhYmxlTGlzdChyZWxzKTsK Kwl9CiAKLQkJaWYgKGxpc3RfbGVuZ3RoKHNjaGVtYWlkbGlzdCkgPiAwKQotCQl7Ci0JCQkvKgot CQkJICogU2NoZW1hIGxvY2sgaXMgaGVsZCB1bnRpbCB0aGUgcHVibGljYXRpb24gaXMgY3JlYXRl ZCB0byBwcmV2ZW50Ci0JCQkgKiBjb25jdXJyZW50IHNjaGVtYSBkZWxldGlvbi4KLQkJCSAqLwot CQkJTG9ja1NjaGVtYUxpc3Qoc2NoZW1haWRsaXN0KTsKLQkJCVB1YmxpY2F0aW9uQWRkU2NoZW1h cyhwdWJvaWQsIHNjaGVtYWlkbGlzdCwgdHJ1ZSwgTlVMTCk7Ci0JCX0KKwlpZiAobGlzdF9sZW5n dGgoc2NoZW1haWRsaXN0KSA+IDApCisJeworCQkvKgorCQkgKiBTY2hlbWEgbG9jayBpcyBoZWxk IHVudGlsIHRoZSBwdWJsaWNhdGlvbiBpcyBjcmVhdGVkIHRvIHByZXZlbnQKKwkJICogY29uY3Vy cmVudCBzY2hlbWEgZGVsZXRpb24uCisJCSAqLworCQlMb2NrU2NoZW1hTGlzdChzY2hlbWFpZGxp c3QpOworCQlQdWJsaWNhdGlvbkFkZFNjaGVtYXMocHVib2lkLCBzY2hlbWFpZGxpc3QsIHRydWUs IE5VTEwpOwogCX0KIAogCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CiAKKwkv KiBBc3NvY2lhdGUgb2JqZWN0cyB3aXRoIHRoZSBwdWJsaWNhdGlvbi4gKi8KKwlpZiAoc3RtdC0+ Zm9yX2FsbF90YWJsZXMpCisJeworCQkvKiBJbnZhbGlkYXRlIHJlbGNhY2hlIHNvIHRoYXQgcHVi bGljYXRpb24gaW5mbyBpcyByZWJ1aWx0LiAqLworCQlDYWNoZUludmFsaWRhdGVSZWxjYWNoZUFs bCgpOworCX0KKwogCUludm9rZU9iamVjdFBvc3RDcmVhdGVIb29rKFB1YmxpY2F0aW9uUmVsYXRp b25JZCwgcHVib2lkLCAwKTsKIAogCWlmICh3YWxfbGV2ZWwgIT0gV0FMX0xFVkVMX0xPR0lDQUwp CkBAIC0xMTkzLDYgKzExOTgsNzcgQEAgQWx0ZXJQdWJsaWNhdGlvblJlc2V0KFBhcnNlU3RhdGUg KnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCiAJfQogfQogCisvKgorICogQ2hl Y2sgaWYgdGhlIHB1YmxpY2F0aW9uIGhhcyBkZWZhdWx0IHZhbHVlcworICoKKyAqIENoZWNrIHRo ZSBmb2xsb3dpbmc6CisgKiBhKSBQdWJsaWNhdGlvbiBpcyBub3Qgc2V0IHdpdGggIkZPUiBBTEwg VEFCTEVTIgorICogYikgUHVibGljYXRpb24gaXMgaGF2aW5nIGRlZmF1bHQgb3B0aW9ucworICog YykgUHVibGljYXRpb24gaXMgbm90IGFzc29jaWF0ZWQgd2l0aCBzY2hlbWFzCisgKiBkKSBQdWJs aWNhdGlvbiBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIHJlbGF0aW9ucworICovCitzdGF0aWMgYm9v bAorQ2hlY2tQdWJsaWNhdGlvbkRlZlZhbHVlcyhIZWFwVHVwbGUgdHVwKQoreworCUZvcm1fcGdf cHVibGljYXRpb24gcHViZm9ybSA9IChGb3JtX3BnX3B1YmxpY2F0aW9uKSBHRVRTVFJVQ1QodHVw KTsKKwlPaWQJCQlwdWJpZCA9IHB1YmZvcm0tPm9pZDsKKwlMaXN0CSAgICpwdWJvYmpzID0gTklM OworCisJaWYgKHB1YmZvcm0tPnB1YmFsbHRhYmxlcyAhPSBQVUJfREVGQVVMVF9BTExfVEFCTEVT KQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAocHViZm9ybS0+cHViaW5zZXJ0ICE9IFBVQl9ERUZB VUxUX0FDVElPTl9JTlNFUlQgfHwKKwkJcHViZm9ybS0+cHVidXBkYXRlICE9IFBVQl9ERUZBVUxU X0FDVElPTl9VUERBVEUgfHwKKwkJcHViZm9ybS0+cHViZGVsZXRlICE9IFBVQl9ERUZBVUxUX0FD VElPTl9ERUxFVEUgfHwKKwkJcHViZm9ybS0+cHVidHJ1bmNhdGUgIT0gUFVCX0RFRkFVTFRfQUNU SU9OX1RSVU5DQVRFIHx8CisJCXB1YmZvcm0tPnB1YnZpYXJvb3QgIT0gUFVCX0RFRkFVTFRfVklB X1JPT1QpCisJCXJldHVybiBmYWxzZTsKKworCXB1Ym9ianMgPSBHZXRQdWJsaWNhdGlvblNjaGVt YXMocHViaWQpOworCWlmIChsaXN0X2xlbmd0aChwdWJvYmpzKSkKKwkJcmV0dXJuIGZhbHNlOwor CisJcHVib2JqcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLCBQVUJMSUNBVElPTl9Q QVJUX1JPT1QpOworCWlmIChsaXN0X2xlbmd0aChwdWJvYmpzKSkKKwkJcmV0dXJuIGZhbHNlOwor CisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBTZXQgcHVibGljYXRpb24gdG8gcHVibGlzaCBh bGwgdGFibGVzLgorICovCitzdGF0aWMgdm9pZAorQWx0ZXJQdWJsaWNhdGlvblNldEFsbFRhYmxl cyhSZWxhdGlvbiByZWwsIEhlYXBUdXBsZSB0dXApCit7CisJRm9ybV9wZ19wdWJsaWNhdGlvbiBw dWJmb3JtID0gKEZvcm1fcGdfcHVibGljYXRpb24pIEdFVFNUUlVDVCh0dXApOworCWJvb2wJCW51 bGxzW05hdHRzX3BnX3B1YmxpY2F0aW9uXTsKKwlib29sCQlyZXBsYWNlc1tOYXR0c19wZ19wdWJs aWNhdGlvbl07CisJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19wdWJsaWNhdGlvbl07CisKKwlBc3Nl cnQoIXB1YmZvcm0tPnB1YmFsbHRhYmxlcyk7CisKKwkvKiBSRVNFVCBwdWJsaWNhdGlvbiByZXF1 aXJlcyBzdXBlcnVzZXIgKi8KKwlpZiAoIXN1cGVydXNlcigpKQorCQllcmVwb3J0KEVSUk9SLAor CQkJCWVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQllcnJtc2co Im11c3QgYmUgc3VwZXJ1c2VyIHRvIFJFU0VUIHB1YmxpY2F0aW9uIikpOworCisJbWVtc2V0KHZh bHVlcywgMCwgc2l6ZW9mKHZhbHVlcykpOworCW1lbXNldChudWxscywgZmFsc2UsIHNpemVvZihu dWxscykpOworCW1lbXNldChyZXBsYWNlcywgZmFsc2UsIHNpemVvZihyZXBsYWNlcykpOworCisJ Lyogc2V0IEFMTCBUQUJMRVMgZmxhZyAqLworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1 YmFsbHRhYmxlcyAtIDFdID0gQm9vbEdldERhdHVtKHRydWUpOworCXJlcGxhY2VzW0FudW1fcGdf cHVibGljYXRpb25fcHViYWxsdGFibGVzIC0gMV0gPSB0cnVlOworCisJdHVwID0gaGVhcF9tb2Rp ZnlfdHVwbGUodHVwLCBSZWxhdGlvbkdldERlc2NyKHJlbCksIHZhbHVlcywgbnVsbHMsCisJCQkJ CQkJcmVwbGFjZXMpOworCisJLyogVXBkYXRlIHRoZSBjYXRhbG9nLiAqLworCUNhdGFsb2dUdXBs ZVVwZGF0ZShyZWwsICZ0dXAtPnRfc2VsZiwgdHVwKTsKK30KKwogLyoKICAqIEFkZCBvciByZW1v dmUgdGFibGUgdG8vZnJvbSBwdWJsaWNhdGlvbi4KICAqLwpAQCAtMTUwMiw2ICsxNTc4LDE5IEBA IEFsdGVyUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3Rt dCAqc3RtdCkKIAkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBPQkpFQ1RfUFVC TElDQVRJT04sCiAJCQkJCSAgIHN0bXQtPnB1Ym5hbWUpOwogCisJaWYgKHN0bXQtPmZvcl9hbGxf dGFibGVzKQorCXsKKwkJYm9vbAkJaXNkZWZhdWx0ID0gQ2hlY2tQdWJsaWNhdGlvbkRlZlZhbHVl cyh0dXApOworCisJCWlmICghaXNkZWZhdWx0KQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJy Y29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCQllcnJtc2coImFk ZGluZyBBTEwgVEFCTEVTIHJlcXVpcmVzIHRoZSBwdWJsaWNhdGlvbiB0byBoYXZlIGRlZmF1bHQg cHVibGljYXRpb24gb3B0aW9ucywgbm8gdGFibGVzL3NjaGVtYXMgYXNzb2NpYXRlZCBhbmQgQUxM IFRBQkxFUyBmbGFnIHNob3VsZCBub3QgYmUgc2V0IiksCisJCQkJCWVycmhpbnQoIlVzZSBBTFRF UiBQVUJMSUNBVElPTiAuLi4gUkVTRVQgdG8gcmVzZXQgdGhlIHB1YmxpY2F0aW9uIikpOworCisJ CUFsdGVyUHVibGljYXRpb25TZXRBbGxUYWJsZXMocmVsLCB0dXApOworCX0KKwogCWlmIChzdG10 LT5vcHRpb25zKQogCQlBbHRlclB1YmxpY2F0aW9uT3B0aW9ucyhwc3RhdGUsIHN0bXQsIHJlbCwg dHVwKTsKIAllbHNlIGlmIChzdG10LT5hY3Rpb24gPT0gQVBfUmVzZXRQdWJsaWNhdGlvbikKQEAg LTE3NDcsNiArMTgzNiw3IEBAIE9wZW5UYWJsZUxpc3QoTGlzdCAqdGFibGVzKQogCQlwdWJfcmVs LT5yZWxhdGlvbiA9IHJlbDsKIAkJcHViX3JlbC0+d2hlcmVDbGF1c2UgPSB0LT53aGVyZUNsYXVz ZTsKIAkJcHViX3JlbC0+Y29sdW1ucyA9IHQtPmNvbHVtbnM7CisJCXB1Yl9yZWwtPmV4Y2VwdCA9 IHQtPmV4Y2VwdDsKIAkJcmVscyA9IGxhcHBlbmQocmVscywgcHViX3JlbCk7CiAJCXJlbGlkcyA9 IGxhcHBlbmRfb2lkKHJlbGlkcywgbXlyZWxpZCk7CiAKQEAgLTE4MTksNiArMTkwOSw3IEBAIE9w ZW5UYWJsZUxpc3QoTGlzdCAqdGFibGVzKQogCiAJCQkJLyogY2hpbGQgaW5oZXJpdHMgY29sdW1u IGxpc3QgZnJvbSBwYXJlbnQgKi8KIAkJCQlwdWJfcmVsLT5jb2x1bW5zID0gdC0+Y29sdW1uczsK KwkJCQlwdWJfcmVsLT5leGNlcHQgPSB0LT5leGNlcHQ7CiAJCQkJcmVscyA9IGxhcHBlbmQocmVs cywgcHViX3JlbCk7CiAJCQkJcmVsaWRzID0gbGFwcGVuZF9vaWQocmVsaWRzLCBjaGlsZHJlbGlk KTsKIApAQCAtMTg5NCw4ICsxOTg1LDYgQEAgUHVibGljYXRpb25BZGRUYWJsZXMoT2lkIHB1Ymlk LCBMaXN0ICpyZWxzLCBib29sIGlmX25vdF9leGlzdHMsCiB7CiAJTGlzdENlbGwgICAqbGM7CiAK LQlBc3NlcnQoIXN0bXQgfHwgIXN0bXQtPmZvcl9hbGxfdGFibGVzKTsKLQogCWZvcmVhY2gobGMs IHJlbHMpCiAJewogCQlQdWJsaWNhdGlvblJlbEluZm8gKnB1Yl9yZWwgPSAoUHVibGljYXRpb25S ZWxJbmZvICopIGxmaXJzdChsYyk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IDJkZTBl YmFjZWMuLjVkOTdlYWRmNTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl Y21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0xNjI3Niw3 ICsxNjI3Niw3IEBAIEFUUHJlcENoYW5nZVBlcnNpc3RlbmNlKFJlbGF0aW9uIHJlbCwgYm9vbCB0 b0xvZ2dlZCkKIAkgKiBVTkxPR0dFRCBhcyBVTkxPR0dFRCB0YWJsZXMgY2FuJ3QgYmUgcHVibGlz aGVkLgogCSAqLwogCWlmICghdG9Mb2dnZWQgJiYKLQkJbGlzdF9sZW5ndGgoR2V0UmVsYXRpb25Q dWJsaWNhdGlvbnMoUmVsYXRpb25HZXRSZWxpZChyZWwpKSkgPiAwKQorCQlsaXN0X2xlbmd0aChH ZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhSZWxhdGlvbkdldFJlbGlkKHJlbCksIGZhbHNlKSkgPiAw KQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9Q UkVSRVFVSVNJVEVfU1RBVEUpLAogCQkJCSBlcnJtc2coImNhbm5vdCBjaGFuZ2UgdGFibGUgXCIl c1wiIHRvIHVubG9nZ2VkIGJlY2F1c2UgaXQgaXMgcGFydCBvZiBhIHB1YmxpY2F0aW9uIiwKQEAg LTE2NDEzLDcgKzE2NDEzLDcgQEAgQWx0ZXJUYWJsZU5hbWVzcGFjZShBbHRlck9iamVjdFNjaGVt YVN0bXQgKnN0bXQsIE9pZCAqb2xkc2NoZW1hKQogCXsKIAkJTGlzdENlbGwgICAqbGM7CiAJCUxp c3QJICAgKnNjaGVtYVB1YmlkcyA9IEdldFNjaGVtYVB1YmxpY2F0aW9ucyhuc3BPaWQpOwotCQlM aXN0CSAgICpyZWxQdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhSZWxhdGlvbkdldFJl bGlkKHJlbCkpOworCQlMaXN0CSAgICpyZWxQdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9u cyhSZWxhdGlvbkdldFJlbGlkKHJlbCksIGZhbHNlKTsKIAogCQlmb3JlYWNoKGxjLCByZWxQdWJp ZHMpCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFj a2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGQ3ZTEzNjY2YTIuLjBjNzVkMTQ1ZjEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQpAQCAtNDU1LDcgKzQ1NSw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1Nl bGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCQkJdHJh bnNmb3JtX2VsZW1lbnRfbGlzdCB0cmFuc2Zvcm1fdHlwZV9saXN0CiAJCQkJVHJpZ2dlclRyYW5z aXRpb25zIFRyaWdnZXJSZWZlcmVuY2luZwogCQkJCXZhY3V1bV9yZWxhdGlvbl9saXN0IG9wdF92 YWN1dW1fcmVsYXRpb25fbGlzdAotCQkJCWRyb3Bfb3B0aW9uX2xpc3QgcHViX29ial9saXN0CisJ CQkJZHJvcF9vcHRpb25fbGlzdCBwdWJfb2JqX2xpc3QgZXhjZXB0X3B1Yl9vYmpfbGlzdAogCiAl dHlwZSA8bm9kZT4Jb3B0X3JvdXRpbmVfYm9keQogJXR5cGUgPGdyb3VwY2xhdXNlPiBncm91cF9j bGF1c2UKQEAgLTU4OCw2ICs1ODgsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdT ZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogJXR5cGUg PG5vZGU+CXZhcl92YWx1ZSB6b25lX3ZhbHVlCiAldHlwZSA8cm9sZXNwZWM+IGF1dGhfaWRlbnQg Um9sZVNwZWMgb3B0X2dyYW50ZWRfYnkKICV0eXBlIDxwdWJsaWNhdGlvbm9iamVjdHNwZWM+IFB1 YmxpY2F0aW9uT2JqU3BlYworJXR5cGUgPHB1YmxpY2F0aW9ub2JqZWN0c3BlYz4gRXhjZXB0UHVi bGljYXRpb25PYmpTcGVjCiAKICV0eXBlIDxrZXl3b3JkPiB1bnJlc2VydmVkX2tleXdvcmQgdHlw ZV9mdW5jX25hbWVfa2V5d29yZAogJXR5cGUgPGtleXdvcmQ+IGNvbF9uYW1lX2tleXdvcmQgcmVz ZXJ2ZWRfa2V5d29yZApAQCAtMTA0MTAsNyArMTA0MTEsNyBAQCBBbHRlck93bmVyU3RtdDogQUxU RVIgQUdHUkVHQVRFIGFnZ3JlZ2F0ZV93aXRoX2FyZ3R5cGVzIE9XTkVSIFRPIFJvbGVTcGVjCiAg KgogICogQ1JFQVRFIFBVQkxJQ0FUSU9OIG5hbWUgW1dJVEggb3B0aW9uc10KICAqCi0gKiBDUkVB VEUgUFVCTElDQVRJT04gRk9SIEFMTCBUQUJMRVMgW1dJVEggb3B0aW9uc10KKyAqIENSRUFURSBQ VUJMSUNBVElPTiBGT1IgQUxMIFRBQkxFUyBbRVhDRVBUIFtUQUJMRV0gdGFibGUgWywgLi4uXV0g W1dJVEggb3B0aW9uc10KICAqCiAgKiBDUkVBVEUgUFVCTElDQVRJT04gRk9SIHB1Yl9vYmogWywg Li4uXSBbV0lUSCBvcHRpb25zXQogICoKQEAgLTEwNDMwLDEyICsxMDQzMSwxMyBAQCBDcmVhdGVQ dWJsaWNhdGlvblN0bXQ6CiAJCQkJCW4tPm9wdGlvbnMgPSAkNDsKIAkJCQkJJCQgPSAoTm9kZSAq KSBuOwogCQkJCX0KLQkJCXwgQ1JFQVRFIFBVQkxJQ0FUSU9OIG5hbWUgRk9SIEFMTCBUQUJMRVMg b3B0X2RlZmluaXRpb24KKwkJCXwgQ1JFQVRFIFBVQkxJQ0FUSU9OIG5hbWUgRk9SIEFMTCBUQUJM RVMgZXhjZXB0X3B1Yl9vYmpfbGlzdCBvcHRfZGVmaW5pdGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRl UHVibGljYXRpb25TdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlUHVibGljYXRpb25TdG10KTsKIAog CQkJCQluLT5wdWJuYW1lID0gJDM7Ci0JCQkJCW4tPm9wdGlvbnMgPSAkNzsKKwkJCQkJbi0+b3B0 aW9ucyA9ICQ4OworCQkJCQluLT5wdWJvYmplY3RzID0gKExpc3QgKikkNzsKIAkJCQkJbi0+Zm9y X2FsbF90YWJsZXMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQpAQCAtMTA0 NzMsNiArMTA0NzUsNyBAQCBQdWJsaWNhdGlvbk9ialNwZWM6CiAJCQkJCSQkLT5wdWJ0YWJsZS0+ cmVsYXRpb24gPSAkMjsKIAkJCQkJJCQtPnB1YnRhYmxlLT5jb2x1bW5zID0gJDM7CiAJCQkJCSQk LT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkNDsKKwkJCQkJJCQtPmxvY2F0aW9uID0gQDE7CiAJ CQkJfQogCQkJfCBBTEwgVEFCTEVTIElOX1AgU0NIRU1BIENvbElkCiAJCQkJewpAQCAtMTA1NDgs NiArMTA1NTEsMjUgQEAgcHViX29ial9saXN0OglQdWJsaWNhdGlvbk9ialNwZWMKIAkJCQkJeyAk JCA9IGxhcHBlbmQoJDEsICQzKTsgfQogCTsKIAorRXhjZXB0UHVibGljYXRpb25PYmpTcGVjOgor CQkJIHJlbGF0aW9uX2V4cHIKKwkJCQl7CisJCQkJCSQkID0gbWFrZU5vZGUoUHVibGljYXRpb25P YmpTcGVjKTsKKwkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9CSl9FWENFUFRfVEFC TEU7CisJCQkJCSQkLT5wdWJ0YWJsZSA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uVGFibGUpOworCQkJ CQkkJC0+cHVidGFibGUtPmV4Y2VwdCA9IHRydWU7CisJCQkJCSQkLT5wdWJ0YWJsZS0+cmVsYXRp b24gPSAkMTsKKwkJCQkJJCQtPmxvY2F0aW9uID0gQDE7CisJCQkJfQorCTsKKworZXhjZXB0X3B1 Yl9vYmpfbGlzdDoJRVhDRVBUIG9wdF90YWJsZSBFeGNlcHRQdWJsaWNhdGlvbk9ialNwZWMKKwkJ CQkJeyAkJCA9IGxpc3RfbWFrZTEoJDMpOyB9CisJCQl8IGV4Y2VwdF9wdWJfb2JqX2xpc3QgJywn IEV4Y2VwdFB1YmxpY2F0aW9uT2JqU3BlYworCQkJCQl7ICQkID0gbGFwcGVuZCgkMSwgJDMpOyB9 CisJCQl8ICAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBOVUxMOyB9CisJOworCiAvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKICAqCiAgKiBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIFNFVCAoIG9wdGlvbnMg KQpAQCAtMTA1ODYsNiArMTA2MDgsMTUgQEAgQWx0ZXJQdWJsaWNhdGlvblN0bXQ6CiAJCQkJCW4t PmFjdGlvbiA9IEFQX0FkZE9iamVjdHM7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJ CQl8IEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUgQUREX1AgQUxMIFRBQkxFUyBleGNlcHRfcHViX29i al9saXN0CisJCQkJeworCQkJCQlBbHRlclB1YmxpY2F0aW9uU3RtdCAqbiA9IG1ha2VOb2RlKEFs dGVyUHVibGljYXRpb25TdG10KTsKKwkJCQkJbi0+cHVibmFtZSA9ICQzOworCQkJCQluLT5wdWJv YmplY3RzID0gJDc7CisJCQkJCW4tPmZvcl9hbGxfdGFibGVzID0gdHJ1ZTsKKwkJCQkJbi0+YWN0 aW9uID0gQVBfQWRkT2JqZWN0czsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQogCQkJfCBB TFRFUiBQVUJMSUNBVElPTiBuYW1lIFNFVCBwdWJfb2JqX2xpc3QKIAkJCQl7CiAJCQkJCUFsdGVy UHVibGljYXRpb25TdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJQdWJsaWNhdGlvblN0bXQpOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYyBiL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKaW5kZXggNDJjMDZhZjIz OS4uNjM5NDQ2NmRhYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRw dXQvcGdvdXRwdXQuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291 dHB1dC5jCkBAIC0xOTk2LDcgKzE5OTYsOCBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXRE YXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAlpZiAoIWVudHJ5LT5yZXBsaWNhdGVfdmFs aWQpCiAJewogCQlPaWQJCQlzY2hlbWFJZCA9IGdldF9yZWxfbmFtZXNwYWNlKHJlbGlkKTsKLQkJ TGlzdAkgICAqcHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMocmVsaWQpOworCQlMaXN0 CSAgICpwdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCwgZmFsc2UpOworCQlM aXN0CSAgICpleGNlcHRUYWJsZVB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKHJlbGlk LCB0cnVlKTsKIAogCQkvKgogCQkgKiBXZSBkb24ndCBhY3F1aXJlIGEgbG9jayBvbiB0aGUgbmFt ZXNwYWNlIHN5c3RlbSB0YWJsZSBhcyB3ZSBidWlsZApAQCAtMjA4NSwyMiArMjA4Niw2IEBAIGdl dF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQog CQkJT2lkCQkJcHViX3JlbGlkID0gcmVsaWQ7CiAJCQlpbnQJCQlhbmNlc3Rvcl9sZXZlbCA9IDA7 CiAKLQkJCS8qCi0JCQkgKiBJZiB0aGlzIGlzIGEgRk9SIEFMTCBUQUJMRVMgcHVibGljYXRpb24s IHBpY2sgdGhlIHBhcnRpdGlvbgotCQkJICogcm9vdCBhbmQgc2V0IHRoZSBhbmNlc3RvciBsZXZl bCBhY2NvcmRpbmdseS4KLQkJCSAqLwotCQkJaWYgKHB1Yi0+YWxsdGFibGVzKQotCQkJewotCQkJ CXB1Ymxpc2ggPSB0cnVlOwotCQkJCWlmIChwdWItPnB1YnZpYXJvb3QgJiYgYW1fcGFydGl0aW9u KQotCQkJCXsKLQkJCQkJTGlzdAkgICAqYW5jZXN0b3JzID0gZ2V0X3BhcnRpdGlvbl9hbmNlc3Rv cnMocmVsaWQpOwotCi0JCQkJCXB1Yl9yZWxpZCA9IGxsYXN0X29pZChhbmNlc3RvcnMpOwotCQkJ CQlhbmNlc3Rvcl9sZXZlbCA9IGxpc3RfbGVuZ3RoKGFuY2VzdG9ycyk7Ci0JCQkJfQotCQkJfQot CiAJCQlpZiAoIXB1Ymxpc2gpCiAJCQl7CiAJCQkJYm9vbAkJYW5jZXN0b3JfcHVibGlzaGVkID0g ZmFsc2U7CkBAIC0yMTE5LDcgKzIxMDQsOCBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXRE YXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAogCQkJCQlhbmNlc3RvciA9IEdldFRvcE1v c3RBbmNlc3RvckluUHVibGljYXRpb24ocHViLT5vaWQsCiAJCQkJCQkJCQkJCQkJCQkgICBhbmNl c3RvcnMsCi0JCQkJCQkJCQkJCQkJCQkgICAmbGV2ZWwpOworCQkJCQkJCQkJCQkJCQkJICAgJmxl dmVsLAorCQkJCQkJCQkJCQkJCQkJICAgcHViLT5hbGx0YWJsZXMpOwogCiAJCQkJCWlmIChhbmNl c3RvciAhPSBJbnZhbGlkT2lkKQogCQkJCQl7CkBAIC0yMTM0LDYgKzIxMjAsOCBAQCBnZXRfcmVs X3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAogCQkJ CWlmIChsaXN0X21lbWJlcl9vaWQocHViaWRzLCBwdWItPm9pZCkgfHwKIAkJCQkJbGlzdF9tZW1i ZXJfb2lkKHNjaGVtYVB1YmlkcywgcHViLT5vaWQpIHx8CisJCQkJCShwdWItPmFsbHRhYmxlcyAm JgorCQkJCQkgIWxpc3RfbWVtYmVyX29pZChleGNlcHRUYWJsZVB1YmlkcywgcHViLT5vaWQpKSB8 fAogCQkJCQlhbmNlc3Rvcl9wdWJsaXNoZWQpCiAJCQkJCXB1Ymxpc2ggPSB0cnVlOwogCQkJfQpA QCAtMjIwOSw2ICsyMTk3LDcgQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAqZGF0 YSwgUmVsYXRpb24gcmVsYXRpb24pCiAKIAkJbGlzdF9mcmVlKHB1Ymlkcyk7CiAJCWxpc3RfZnJl ZShzY2hlbWFQdWJpZHMpOworCQlsaXN0X2ZyZWUoZXhjZXB0VGFibGVQdWJpZHMpOwogCQlsaXN0 X2ZyZWUocmVsX3B1YmxpY2F0aW9ucyk7CiAKIAkJZW50cnktPnJlcGxpY2F0ZV92YWxpZCA9IHRy dWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYwppbmRleCA2MGU3MmY5ZThiLi40NjU5Yzc2 NmRjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMKQEAgLTU1NjEsNiArNTU2MSw4IEBA IHZvaWQKIFJlbGF0aW9uQnVpbGRQdWJsaWNhdGlvbkRlc2MoUmVsYXRpb24gcmVsYXRpb24sIFB1 YmxpY2F0aW9uRGVzYyAqcHViZGVzYykKIHsKIAlMaXN0CSAgICpwdWJvaWRzOworCUxpc3QJICAg KmFsbHRhYmxlc3B1Ym9pZHM7CisJTGlzdAkgICAqZXhjZXB0cHVib2lkcyA9IE5JTDsKIAlMaXN0 Q2VsbCAgICpsYzsKIAlNZW1vcnlDb250ZXh0IG9sZGN4dDsKIAlPaWQJCQlzY2hlbWFpZDsKQEAg LTU1OTQsNyArNTU5Niw3IEBAIFJlbGF0aW9uQnVpbGRQdWJsaWNhdGlvbkRlc2MoUmVsYXRpb24g cmVsYXRpb24sIFB1YmxpY2F0aW9uRGVzYyAqcHViZGVzYykKIAlwdWJkZXNjLT5jb2xzX3ZhbGlk X2Zvcl9kZWxldGUgPSB0cnVlOwogCiAJLyogRmV0Y2ggdGhlIHB1YmxpY2F0aW9uIG1lbWJlcnNo aXAgaW5mby4gKi8KLQlwdWJvaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMocmVsaWQpOwor CXB1Ym9pZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCwgZmFsc2UpOwogCXNjaGVt YWlkID0gUmVsYXRpb25HZXROYW1lc3BhY2UocmVsYXRpb24pOwogCXB1Ym9pZHMgPSBsaXN0X2Nv bmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsIEdldFNjaGVtYVB1YmxpY2F0aW9ucyhzY2hlbWFpZCkp OwogCkBAIC01NjA4LDE0ICs1NjEwLDE5IEBAIFJlbGF0aW9uQnVpbGRQdWJsaWNhdGlvbkRlc2Mo UmVsYXRpb24gcmVsYXRpb24sIFB1YmxpY2F0aW9uRGVzYyAqcHViZGVzYykKIAkJCU9pZAkJCWFu Y2VzdG9yID0gbGZpcnN0X29pZChsYyk7CiAKIAkJCXB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlx dWVfb2lkKHB1Ym9pZHMsCi0JCQkJCQkJCQkJCSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhhbmNl c3RvcikpOworCQkJCQkJCQkJCQkgR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoYW5jZXN0b3IsIGZh bHNlKSk7CiAJCQlzY2hlbWFpZCA9IGdldF9yZWxfbmFtZXNwYWNlKGFuY2VzdG9yKTsKIAkJCXB1 Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsCiAJCQkJCQkJCQkJCSBHZXRT Y2hlbWFQdWJsaWNhdGlvbnMoc2NoZW1haWQpKTsKKwkJCWV4Y2VwdHB1Ym9pZHMgPSBsaXN0X2Nv bmNhdF91bmlxdWVfb2lkKGV4Y2VwdHB1Ym9pZHMsCisJCQkJCQkJCQkJCQkgICBHZXRSZWxhdGlv blB1YmxpY2F0aW9ucyhhbmNlc3RvciwgdHJ1ZSkpOwogCQl9CiAJfQotCXB1Ym9pZHMgPSBsaXN0 X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsIEdldEFsbFRhYmxlc1B1YmxpY2F0aW9ucygpKTsK IAorCWFsbHRhYmxlc3B1Ym9pZHMgPSBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvbnMoKTsKKwlwdWJv aWRzID0gbGlzdF9jb25jYXRfdW5pcXVlX29pZChwdWJvaWRzLAorCQkJCQkJCQkJIGxpc3RfZGlm ZmVyZW5jZV9vaWQoYWxsdGFibGVzcHVib2lkcywKKwkJCQkJCQkJCQkJCQkJIGV4Y2VwdHB1Ym9p ZHMpKTsKIAlmb3JlYWNoKGxjLCBwdWJvaWRzKQogCXsKIAkJT2lkCQkJcHViaWQgPSBsZmlyc3Rf b2lkKGxjKTsKQEAgLTU2NDQsNyArNTY1MSw3IEBAIFJlbGF0aW9uQnVpbGRQdWJsaWNhdGlvbkRl c2MoUmVsYXRpb24gcmVsYXRpb24sIFB1YmxpY2F0aW9uRGVzYyAqcHViZGVzYykKIAkJaWYgKCFw dWJmb3JtLT5wdWJhbGx0YWJsZXMgJiYKIAkJCShwdWJmb3JtLT5wdWJ1cGRhdGUgfHwgcHViZm9y bS0+cHViZGVsZXRlKSAmJgogCQkJcHViX3JmX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKHB1Ymlk LCByZWxhdGlvbiwgYW5jZXN0b3JzLAotCQkJCQkJCQkJCSAgIHB1YmZvcm0tPnB1YnZpYXJvb3Qp KQorCQkJCQkJCQkJCSAgIHB1YmZvcm0tPnB1YnZpYXJvb3QsIHB1YmZvcm0tPnB1YmFsbHRhYmxl cykpCiAJCXsKIAkJCWlmIChwdWJmb3JtLT5wdWJ1cGRhdGUpCiAJCQkJcHViZGVzYy0+cmZfdmFs aWRfZm9yX3VwZGF0ZSA9IGZhbHNlOwpAQCAtNTY2MSw3ICs1NjY4LDcgQEAgUmVsYXRpb25CdWls ZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJk ZXNjKQogCQlpZiAoIXB1YmZvcm0tPnB1YmFsbHRhYmxlcyAmJgogCQkJKHB1YmZvcm0tPnB1YnVw ZGF0ZSB8fCBwdWJmb3JtLT5wdWJkZWxldGUpICYmCiAJCQlwdWJfY29sbGlzdF9jb250YWluc19p bnZhbGlkX2NvbHVtbihwdWJpZCwgcmVsYXRpb24sIGFuY2VzdG9ycywKLQkJCQkJCQkJCQkJCXB1 YmZvcm0tPnB1YnZpYXJvb3QpKQorCQkJCQkJCQkJCQkJcHViZm9ybS0+cHVidmlhcm9vdCwgcHVi Zm9ybS0+cHViYWxsdGFibGVzKSkKIAkJewogCQkJaWYgKHB1YmZvcm0tPnB1YnVwZGF0ZSkKIAkJ CQlwdWJkZXNjLT5jb2xzX3ZhbGlkX2Zvcl91cGRhdGUgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4 IDdjYzljNzJlNDkuLjI5MjVkMGYyN2EgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtMTI3LDYgKzEyNyw4IEBA IHN0YXRpYyBTaW1wbGVPaWRMaXN0IGZvcmVpZ25fc2VydmVyc19pbmNsdWRlX29pZHMgPSB7TlVM TCwgTlVMTH07CiBzdGF0aWMgU2ltcGxlU3RyaW5nTGlzdCBleHRlbnNpb25faW5jbHVkZV9wYXR0 ZXJucyA9IHtOVUxMLCBOVUxMfTsKIHN0YXRpYyBTaW1wbGVPaWRMaXN0IGV4dGVuc2lvbl9pbmNs dWRlX29pZHMgPSB7TlVMTCwgTlVMTH07CiAKK3N0YXRpYyBTaW1wbGVQdHJMaXN0IGV4Y2VwdGlu Zm8gPSB7TlVMTCwgTlVMTH07CisKIHN0YXRpYyBjb25zdCBDYXRhbG9nSWQgbmlsQ2F0YWxvZ0lk ID0gezAsIDB9OwogCiAvKiBvdmVycmlkZSBmb3Igc3RhbmRhcmQgZXh0cmFfZmxvYXRfZGlnaXRz IHNldHRpbmcgKi8KQEAgLTM5ODAsOCArMzk4MiwzNSBAQCBkdW1wUHVibGljYXRpb24oQXJjaGl2 ZSAqZm91dCwgY29uc3QgUHVibGljYXRpb25JbmZvICpwdWJpbmZvKQogCQkJCQkgIHFwdWJuYW1l KTsKIAogCWlmIChwdWJpbmZvLT5wdWJhbGx0YWJsZXMpCisJeworCQlTaW1wbGVQdHJMaXN0Q2Vs bCAqY2VsbDsKKwkJYm9vbAkJZmlyc3QgPSB0cnVlOworCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KHF1ZXJ5LCAiIEZPUiBBTEwgVEFCTEVTIik7CiAKKwkJLyogSW5jbHVkZSBleGNlcHRpb24gdGFi bGVzIGlmIHRoZSBwdWJsaWNhdGlvbiBoYXMgZXhjZXB0IHRhYmxlcyAqLworCQlmb3IgKGNlbGwg PSBleGNlcHRpbmZvLmhlYWQ7IGNlbGw7IGNlbGwgPSBjZWxsLT5uZXh0KQorCQl7CisJCQlQdWJs aWNhdGlvblJlbEluZm8gKnB1YnJpbmZvID0gKFB1YmxpY2F0aW9uUmVsSW5mbyAqKSBjZWxsLT5w dHI7CisJCQlQdWJsaWNhdGlvbkluZm8gKnJlbHB1YmluZm8gPSBwdWJyaW5mby0+cHVibGljYXRp b247CisJCQlUYWJsZUluZm8gICp0YmluZm87CisKKwkJCWlmIChwdWJpbmZvID09IHJlbHB1Ymlu Zm8pCisJCQl7CisJCQkJdGJpbmZvID0gcHVicmluZm8tPnB1YnRhYmxlOworCisJCQkJaWYgKGZp cnN0KQorCQkJCXsKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgRVhDRVBUIFRB QkxFIik7CisJCQkJCWZpcnN0ID0gZmFsc2U7CisJCQkJfQorCQkJCWVsc2UKKwkJCQkJYXBwZW5k UFFFeHBCdWZmZXJTdHIocXVlcnksICIsICIpOworCQkJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5 LCAiIE9OTFkgJXMiLCBmbXRRdWFsaWZpZWREdW1wYWJsZSh0YmluZm8pKTsKKwkJCX0KKwkJfQor CX0KKwogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIFdJVEggKHB1Ymxpc2ggPSAnIik7 CiAJaWYgKHB1YmluZm8tPnB1Ymluc2VydCkKIAl7CkBAIC00MTUxLDYgKzQxODAsNyBAQCBnZXRQ dWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQg bnVtVGFibGVzKQogCWludAkJCWlfcHJyZWxpZDsKIAlpbnQJCQlpX3BycmVscXVhbDsKIAlpbnQJ CQlpX3ByYXR0cnM7CisJaW50CQkJaV9wcmV4Y2VwdDsKIAlpbnQJCQlpLAogCQkJCWosCiAJCQkJ bnR1cHM7CkBAIC00MTYyLDggKzQxOTIsMTcgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2 ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAogCS8qIENvbGxl Y3QgYWxsIHB1YmxpY2F0aW9uIG1lbWJlcnNoaXAgaW5mby4gKi8KIAlpZiAoZm91dC0+cmVtb3Rl VmVyc2lvbiA+PSAxNTAwMDApCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKKwkJ CQkJCQkgIlNFTEVDVCB0YWJsZW9pZCwgb2lkLCBwcnB1YmlkLCBwcnJlbGlkLFxuIik7CisKKwkJ LyogRklYTUU6IDE1MDAwMCBzaG91bGQgYmUgY2hhbmdlZCB0byAxNjAwMDAgbGF0ZXIgZm9yIFBH MTYuICovCisJCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE1MDAwMCkKKwkJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIHByZXhjZXB0LFxuIik7CisJCWVsc2UKKwkJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIGZhbHNlIEFTIHByZXhjZXB0LFxuIik7CisKIAkJYXBwZW5k UFFFeHBCdWZmZXJTdHIocXVlcnksCi0JCQkJCQkJICJTRUxFQ1QgdGFibGVvaWQsIG9pZCwgcHJw dWJpZCwgcHJyZWxpZCwgIgogCQkJCQkJCSAicGdfY2F0YWxvZy5wZ19nZXRfZXhwcihwcnF1YWws IHBycmVsaWQpIEFTIHBycmVscXVhbCwgIgogCQkJCQkJCSAiKENBU0VcbiIKIAkJCQkJCQkgIiAg V0hFTiBwci5wcmF0dHJzIElTIE5PVCBOVUxMIFRIRU5cbiIKQEAgLTQxNzQsNiArNDIxMyw3IEBA IGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10s IGludCBudW1UYWJsZXMpCiAJCQkJCQkJICIgICAgICBXSEVSRSBhdHRyZWxpZCA9IHByLnBycmVs aWQgQU5EIGF0dG51bSA9IHByYXR0cnNbc10pXG4iCiAJCQkJCQkJICIgIEVMU0UgTlVMTCBFTkQp IHByYXR0cnMgIgogCQkJCQkJCSAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBw ciIpOworCX0KIAllbHNlCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAogCQkJCQkJCSAi U0VMRUNUIHRhYmxlb2lkLCBvaWQsIHBycHViaWQsIHBycmVsaWQsICIKQEAgLTQxODksNiArNDIy OSw3IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0Ymxp bmZvW10sIGludCBudW1UYWJsZXMpCiAJaV9wcnJlbGlkID0gUFFmbnVtYmVyKHJlcywgInBycmVs aWQiKTsKIAlpX3BycmVscXVhbCA9IFBRZm51bWJlcihyZXMsICJwcnJlbHF1YWwiKTsKIAlpX3By YXR0cnMgPSBQUWZudW1iZXIocmVzLCAicHJhdHRycyIpOworCWlfcHJleGNlcHQgPSBQUWZudW1i ZXIocmVzLCAicHJleGNlcHQiKTsKIAogCS8qIHRoaXMgYWxsb2NhdGlvbiBtYXkgYmUgbW9yZSB0 aGFuIHdlIG5lZWQgKi8KIAlwdWJyaW5mbyA9IHBnX21hbGxvYyhudHVwcyAqIHNpemVvZihQdWJs aWNhdGlvblJlbEluZm8pKTsKQEAgLTQyMDAsNiArNDI0MSw3IEBAIGdldFB1YmxpY2F0aW9uVGFi bGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJ CU9pZAkJCXBycmVsaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfcHJyZWxpZCkpOwog CQlQdWJsaWNhdGlvbkluZm8gKnB1YmluZm87CiAJCVRhYmxlSW5mbyAgKnRiaW5mbzsKKwkJY2hh cgkgICAqcHJleGNlcHQgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfcHJleGNlcHQp KTsKIAogCQkvKgogCQkgKiBJZ25vcmUgYW55IGVudHJpZXMgZm9yIHdoaWNoIHdlIGFyZW4ndCBp bnRlcmVzdGVkIGluIGVpdGhlciB0aGUKQEAgLTQyMjAsNyArNDI2MiwxMSBAQCBnZXRQdWJsaWNh dGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFi bGVzKQogCQkJY29udGludWU7CiAKIAkJLyogT0ssIG1ha2UgYSBEdW1wYWJsZU9iamVjdCBmb3Ig dGhpcyByZWxhdGlvbnNoaXAgKi8KLQkJcHVicmluZm9bal0uZG9iai5vYmpUeXBlID0gRE9fUFVC TElDQVRJT05fUkVMOworCQlpZiAoc3RyY21wKHByZXhjZXB0LCAiZiIpID09IDApCisJCQlwdWJy aW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19QVUJMSUNBVElPTl9SRUw7CisJCWVsc2UKKwkJCXB1 YnJpbmZvW2pdLmRvYmoub2JqVHlwZSA9IERPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUw7CisKIAkJ cHVicmluZm9bal0uZG9iai5jYXRJZC50YWJsZW9pZCA9CiAJCQlhdG9vaWQoUFFnZXR2YWx1ZShy ZXMsIGksIGlfdGFibGVvaWQpKTsKIAkJcHVicmluZm9bal0uZG9iai5jYXRJZC5vaWQgPSBhdG9v aWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfb2lkKSk7CkBAIC00MjU5LDYgKzQzMDUsOSBAQCBnZXRQ dWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQg bnVtVGFibGVzKQogCQkvKiBEZWNpZGUgd2hldGhlciB3ZSB3YW50IHRvIGR1bXAgaXQgKi8KIAkJ c2VsZWN0RHVtcGFibGVQdWJsaWNhdGlvbk9iamVjdCgmKHB1YnJpbmZvW2pdLmRvYmopLCBmb3V0 KTsKIAorCQlpZiAoc3RyY21wKHByZXhjZXB0LCAidCIpID09IDApCisJCQlzaW1wbGVfcHRyX2xp c3RfYXBwZW5kKCZleGNlcHRpbmZvLCAmcHVicmluZm9bal0pOworCiAJCWorKzsKIAl9CiAKQEAg LTk5MzYsNiArOTk4NSw5IEBAIGR1bXBEdW1wYWJsZU9iamVjdChBcmNoaXZlICpmb3V0LCBEdW1w YWJsZU9iamVjdCAqZG9iaikKIAkJY2FzZSBET19QVUJMSUNBVElPTjoKIAkJCWR1bXBQdWJsaWNh dGlvbihmb3V0LCAoY29uc3QgUHVibGljYXRpb25JbmZvICopIGRvYmopOwogCQkJYnJlYWs7CisJ CWNhc2UgRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTDoKKwkJCS8qIHdpbGwgYmUgZHVtcGVkIGlu IGR1bXBQdWJsaWNhdGlvbiAqLworCQkJYnJlYWs7CiAJCWNhc2UgRE9fUFVCTElDQVRJT05fUkVM OgogCQkJZHVtcFB1YmxpY2F0aW9uVGFibGUoZm91dCwgKGNvbnN0IFB1YmxpY2F0aW9uUmVsSW5m byAqKSBkb2JqKTsKIAkJCWJyZWFrOwpAQCAtMTc4NjksNiArMTc5MjEsNyBAQCBhZGRCb3VuZGFy eURlcGVuZGVuY2llcyhEdW1wYWJsZU9iamVjdCAqKmRvYmpzLCBpbnQgbnVtT2JqcywKIAkJCWNh c2UgRE9fREVGQVVMVF9BQ0w6CiAJCQljYXNlIERPX1BPTElDWToKIAkJCWNhc2UgRE9fUFVCTElD QVRJT046CisJCQljYXNlIERPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUw6CiAJCQljYXNlIERPX1BV QkxJQ0FUSU9OX1JFTDoKIAkJCWNhc2UgRE9fUFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BOgog CQkJY2FzZSBET19TVUJTQ1JJUFRJT046CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCAxZDIxYzI5MDZmLi4wN2E1 MGVjZTY4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTgwLDYgKzgwLDcgQEAgdHlwZWRlZiBlbnVtCiAJRE9f UkVGUkVTSF9NQVRWSUVXLAogCURPX1BPTElDWSwKIAlET19QVUJMSUNBVElPTiwKKwlET19QVUJM SUNBVElPTl9FWENFUFRfUkVMLAogCURPX1BVQkxJQ0FUSU9OX1JFTCwKIAlET19QVUJMSUNBVElP Tl9UQUJMRV9JTl9TQ0hFTUEsCiAJRE9fU1VCU0NSSVBUSU9OCmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMK aW5kZXggNWRlMzI0MWViNC4uYTY1OTVmMjVhNiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXBfc29ydC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwpAQCAt OTAsNiArOTAsNyBAQCBlbnVtIGRiT2JqZWN0VHlwZVByaW9yaXRpZXMKIAlQUklPX0ZLX0NPTlNU UkFJTlQsCiAJUFJJT19QT0xJQ1ksCiAJUFJJT19QVUJMSUNBVElPTiwKKwlQUklPX1BVQkxJQ0FU SU9OX0VYQ0VQVF9SRUwsCiAJUFJJT19QVUJMSUNBVElPTl9SRUwsCiAJUFJJT19QVUJMSUNBVElP Tl9UQUJMRV9JTl9TQ0hFTUEsCiAJUFJJT19TVUJTQ1JJUFRJT04sCkBAIC0xNDQsNiArMTQ1LDcg QEAgc3RhdGljIGNvbnN0IGludCBkYk9iamVjdFR5cGVQcmlvcml0eVtdID0KIAlQUklPX1JFRlJF U0hfTUFUVklFVywJCS8qIERPX1JFRlJFU0hfTUFUVklFVyAqLwogCVBSSU9fUE9MSUNZLAkJCQkv KiBET19QT0xJQ1kgKi8KIAlQUklPX1BVQkxJQ0FUSU9OLAkJCS8qIERPX1BVQkxJQ0FUSU9OICov CisJUFJJT19QVUJMSUNBVElPTl9FWENFUFRfUkVMLAkvKiBET19QVUJMSUNBVElPTl9FWENFUFRf UkVMICovCiAJUFJJT19QVUJMSUNBVElPTl9SRUwsCQkvKiBET19QVUJMSUNBVElPTl9SRUwgKi8K IAlQUklPX1BVQkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVNQSwJLyogRE9fUFVCTElDQVRJT05fVEFC TEVfSU5fU0NIRU1BICovCiAJUFJJT19TVUJTQ1JJUFRJT04JCQkvKiBET19TVUJTQ1JJUFRJT04g Ki8KQEAgLTE0ODMsNiArMTQ4NSwxMSBAQCBkZXNjcmliZUR1bXBhYmxlT2JqZWN0KER1bXBhYmxl T2JqZWN0ICpvYmosIGNoYXIgKmJ1ZiwgaW50IGJ1ZnNpemUpCiAJCQkJCSAiUFVCTElDQVRJT04g KElEICVkIE9JRCAldSkiLAogCQkJCQkgb2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQub2lkKTsKIAkJ CXJldHVybjsKKwkJY2FzZSBET19QVUJMSUNBVElPTl9FWENFUFRfUkVMOgorCQkJc25wcmludGYo YnVmLCBidWZzaXplLAorCQkJCQkgIlBVQkxJQ0FUSU9OIEVYQ0VQVCBUQUJMRSAoSUQgJWQgT0lE ICV1KSIsCisJCQkJCSBvYmotPmR1bXBJZCwgb2JqLT5jYXRJZC5vaWQpOworCQkJcmV0dXJuOwog CQljYXNlIERPX1BVQkxJQ0FUSU9OX1JFTDoKIAkJCXNucHJpbnRmKGJ1ZiwgYnVmc2l6ZSwKIAkJ CQkJICJQVUJMSUNBVElPTiBUQUJMRSAoSUQgJWQgT0lEICV1KSIsCmRpZmYgLS1naXQgYS9zcmMv YmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19k dW1wLnBsCmluZGV4IDFmMDg3MTZmNjkuLjEzYTNiM2Y4NzUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19k dW1wLnBsCkBAIC0yNDU0LDYgKzI0NTQsMTggQEAgbXkgJXRlc3RzID0gKAogCQlsaWtlID0+IHsg JWZ1bGxfcnVucywgc2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwgfSwKIAl9LAogCisJJ0NSRUFURSBQ VUJMSUNBVElPTiBwdWI1JyA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA1MCwKKwkJY3JlYXRlX3Nx bCAgID0+ICdDUkVBVEUgUFVCTElDQVRJT04gcHViNSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFC TEUgZHVtcF90ZXN0LnRlc3RfdGFibGU7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRF IFBVQkxJQ0FUSU9OIHB1YjUgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIE9OTFkgZHVtcF90 ZXN0LnRlc3RfdGFibGUgV0lUSCAocHVibGlzaCA9ICdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0 cnVuY2F0ZScpO1xFCisJCQkveG0sCisJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bv c3RfZGF0YSA9PiAxLCB9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2No ZW1hID0+IDEsCisJCQlleGNsdWRlX3Rlc3RfdGFibGUgICAgICAgPT4gMSwKKwkJfSwKKwl9LAog CSdDUkVBVEUgU1VCU0NSSVBUSU9OIHN1YjEnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDUwLAog CQljcmVhdGVfc3FsICAgPT4gJ0NSRUFURSBTVUJTQ1JJUFRJT04gc3ViMQpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCAx YTVkOTI0YTIzLi43OGFhNDA5ZjQwIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUu YworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtMjk1MCwxNyArMjk1MCwzNiBAQCBk ZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkJCQkJCQkg ICIgICAgICAgICAgV0hFUkUgYXR0cmVsaWQgPSBwci5wcnJlbGlkIEFORCBhdHRudW0gPSBwcmF0 dHJzW3NdKVxuIgogCQkJCQkJCQkgICIgICAgICAgIEVMU0UgTlVMTCBFTkQpICIKIAkJCQkJCQkJ ICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKLQkJCQkJCQkJICAiICAgICBK T0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByIE9OIHAub2lkID0gcHIucHJwdWJp ZFxuIgotCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBjIE9OIGMub2lk ID0gcHIucHJyZWxpZFxuIgotCQkJCQkJCQkgICJXSEVSRSBwci5wcnJlbGlkID0gJyVzJ1xuIgor CQkJCQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIgT04gcC5v aWQgPSBwci5wcnB1YmlkXG4iCisJCQkJCQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNz IGMgT04gYy5vaWQgPSBwci5wcnJlbGlkXG4iCisJCQkJCQkJCSAgIldIRVJFIHByLnBycmVsaWQg PSAnJXMnXG4iLAorCQkJCQkJCQkgIG9pZCwgb2lkLCBvaWQpOworCisJCQkJLyogRklYTUU6IDE1 MDAwMCBzaG91bGQgYmUgY2hhbmdlZCB0byAxNjAwMDAgbGF0ZXIgZm9yIFBHMTYuICovCisJCQkJ aWYgKHBzZXQuc3ZlcnNpb24gPj0gMTUwMDAwKQorCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigm YnVmLCAiIEFORCBwci5wcmV4Y2VwdCA9ICdmJ1xuIik7CisKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZl cigmYnVmLAogCQkJCQkJCQkgICJVTklPTlxuIgogCQkJCQkJCQkgICJTRUxFQ1QgcHVibmFtZVxu IgotCQkJCQkJCQkgICIgICAgICwgTlVMTFxuIgotCQkJCQkJCQkgICIgICAgICwgTlVMTFxuIgor CQkJCQkJCQkgICIJCSwgTlVMTFxuIgorCQkJCQkJCQkgICIJCSwgTlVMTFxuIgogCQkJCQkJCQkg ICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24gcFxuIgotCQkJCQkJCQkgICJXSEVSRSBw LnB1YmFsbHRhYmxlcyBBTkQgcGdfY2F0YWxvZy5wZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZSgn JXMnKVxuIgotCQkJCQkJCQkgICJPUkRFUiBCWSAxOyIsCi0JCQkJCQkJCSAgb2lkLCBvaWQsIG9p ZCwgb2lkKTsKKwkJCQkJCQkJICAiV0hFUkUgcC5wdWJhbGx0YWJsZXMgQU5EIHBnX2NhdGFsb2cu cGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoJyVzJylcbiIsCisJCQkJCQkJCSAgb2lkKTsKKwor CQkJCS8qIEZJWE1FOiAxNTAwMDAgc2hvdWxkIGJlIGNoYW5nZWQgdG8gMTYwMDAwIGxhdGVyIGZv ciBQRzE2LiAqLworCQkJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE1MDAwMCkKKwkJCQkJYXBwZW5k UFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkJCSAgIiAgICAgQU5EIE5PVCBFWElTVFMgKFxuIgor CQkJCQkJCQkJICAiCQlTRUxFQ1QgMVxuIgorCQkJCQkJCQkJICAiCQlGUk9NIHBnX2NhdGFsb2cu cGdfcHVibGljYXRpb25fcmVsIHByXG4iCisJCQkJCQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5w Z19jbGFzcyBwY1xuIgorCQkJCQkJCQkJICAiCQlPTiBwci5wcnJlbGlkID0gcGMub2lkXG4iCisJ CQkJCQkJCQkgICIJCVdIRVJFIHByLnBycmVsaWQgPSAnJXMnIEFORCBwci5wcnB1YmlkID0gcC5v aWQpXG4iLAorCQkJCQkJCQkJICBvaWQpOworCisJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1 ZiwgIk9SREVSIEJZIDE7Iik7CiAJCQl9CiAJCQllbHNlCiAJCQl7CkBAIC02MzAyLDggKzYzMjEs MTMgQEAgZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikKIAkJCQkJCQkg ICIgICAgIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByXG4iCiAJCQkJCQkJICAiV0hF UkUgYy5yZWxuYW1lc3BhY2UgPSBuLm9pZFxuIgogCQkJCQkJCSAgIiAgQU5EIGMub2lkID0gcHIu cHJyZWxpZFxuIgotCQkJCQkJCSAgIiAgQU5EIHByLnBycHViaWQgPSAnJXMnXG4iCi0JCQkJCQkJ ICAiT1JERVIgQlkgMSwyIiwgcHViaWQpOworCQkJCQkJCSAgIiAgQU5EIHByLnBycHViaWQgPSAn JXMnXG4iLCBwdWJpZCk7CisKKwkJCS8qIEZJWE1FOiAxNTAwMDAgc2hvdWxkIGJlIGNoYW5nZWQg dG8gMTYwMDAwIGxhdGVyIGZvciBQRzE2LiAqLworCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTUw MDAwKQorCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICIgIEFORCBwci5wcmV4Y2VwdCA9ICdm J1xuIik7CisKKwkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICJPUkRFUiBCWSAxLDIiKTsKIAkJ CWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlvbkRlc2MoJmJ1ZiwgXygiVGFibGVzOiIpLCBmYWxz ZSwgJmNvbnQpKQogCQkJCWdvdG8gZXJyb3JfcmV0dXJuOwogCkBAIC02MzIxLDYgKzYzNDUsMjQg QEAgZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikKIAkJCQkJZ290byBl cnJvcl9yZXR1cm47CiAJCQl9CiAJCX0KKwkJZWxzZQorCQl7CisJCQkvKiBGSVhNRTogMTUwMDAw IHNob3VsZCBiZSBjaGFuZ2VkIHRvIDE2MDAwMCBsYXRlciBmb3IgUEcxNi4gKi8KKwkJCWlmIChw c2V0LnN2ZXJzaW9uID49IDE1MDAwMCkKKwkJCXsKKwkJCQkvKiBHZXQgdGhlIGV4Y2x1ZGVkIHRh YmxlcyBmb3IgdGhlIHNwZWNpZmllZCBwdWJsaWNhdGlvbiAqLworCQkJCXByaW50ZlBRRXhwQnVm ZmVyKCZidWYsCisJCQkJCQkJCSAgIlNFTEVDVCBjb25jYXQoYy5yZWxuYW1lc3BhY2U6OnJlZ25h bWVzcGFjZSwgJy4nLCBjLnJlbG5hbWUpXG4iCisJCQkJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5w Z19jbGFzcyBjXG4iCisJCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0 aW9uX3JlbCBwciBPTiBjLm9pZCA9IHByLnBycmVsaWRcbiIKKwkJCQkJCQkJICAiV0hFUkUgcHIu cHJwdWJpZCA9ICclcydcbiIKKwkJCQkJCQkJICAiICBBTkQgcHIucHJleGNlcHQgPSAndCdcbiIK KwkJCQkJCQkJICAiT1JERVIgQlkgMSIsIHB1YmlkKTsKKwkJCQlpZiAoIWFkZEZvb3RlclRvUHVi bGljYXRpb25EZXNjKCZidWYsIF8oIkV4Y2VwdCB0YWJsZXM6IiksCisJCQkJCQkJCQkJCQl0cnVl LCAmY29udCkpCisJCQkJCWdvdG8gZXJyb3JfcmV0dXJuOworCQkJfQorCQl9CiAKIAkJcHJpbnRU YWJsZSgmY29udCwgcHNldC5xdWVyeUZvdXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUpOwogCQlwcmlu dFRhYmxlQ2xlYW51cCgmY29udCk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKaW5kZXggNjJlY2MzY2RhYi4uMzA5 YzRiNTNiZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCisrKyBiL3Ny Yy9iaW4vcHNxbC90YWItY29tcGxldGUuYwpAQCAtMTgyMiw5ICsxODIyLDEzIEBAIHBzcWxfY29t cGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCUNPTVBMRVRF X1dJVEgoIkFERCIsICJEUk9QIiwgIk9XTkVSIFRPIiwgIlJFTkFNRSBUTyIsICJSRVNFVCIsICJT RVQiKTsKIAkvKiBBTFRFUiBQVUJMSUNBVElPTiA8bmFtZT4gQUREICovCiAJZWxzZSBpZiAoTWF0 Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIpKQotCQlDT01QTEVU RV9XSVRIKCJBTEwgVEFCTEVTIElOIFNDSEVNQSIsICJUQUJMRSIpOworCQlDT01QTEVURV9XSVRI KCJBTEwgVEFCTEVTIElOIFNDSEVNQSIsICJBTEwgVEFCTEVTIiwgIlRBQkxFIik7CisJZWxzZSBp ZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJBTEwi LCAiVEFCTEVTIikpCisJCUNPTVBMRVRFX1dJVEgoIkVYQ0VQVCBUQUJMRSIpOwogCWVsc2UgaWYg KE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRB QkxFIikgfHwKLQkJCSAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hB bnksICJBRER8U0VUIiwgIlRBQkxFIikgJiYKKwkJCSBNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNB VElPTiIsIE1hdGNoQW55LCAiQUREIiwgIkFMTCIsICJUQUJMRVMiLCAiRVhDRVBUIiwgIlRBQkxF IikgfHwKKwkJCSAoKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55 LCAiQUREfFNFVCIsICJUQUJMRSIpIHx8CisJCQkgICBIZWFkTWF0Y2hlcygiQUxURVIiLCAiUFVC TElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJBTEwiLCAiVEFCTEVTIiwgIkVYQ0VQVCIsICJU QUJMRSIpKSAmJgogCQkJICBlbmRzX3dpdGgocHJldl93ZCwgJywnKSkpCiAJCUNPTVBMRVRFX1dJ VEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CiAKQEAgLTI5ODYsNyAr Mjk5MCw3IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGlu dCBlbmQpCiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hB bnksICJGT1IiLCAiQUxMIikpCiAJCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyIsICJUQUJMRVMgSU4g U0NIRU1BIik7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0 Y2hBbnksICJGT1IiLCAiQUxMIiwgIlRBQkxFUyIpKQotCQlDT01QTEVURV9XSVRIKCJJTiBTQ0hF TUEiLCAiV0lUSCAoIik7CisJCUNPTVBMRVRFX1dJVEgoIklOIFNDSEVNQSIsICJXSVRIICgiLCAi RVhDRVBUIFRBQkxFIik7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9O IiwgTWF0Y2hBbnksICJGT1IiLCAiVEFCTEUiLCBNYXRjaEFueSkgJiYgIWVuZHNfd2l0aChwcmV2 X3dkLCAnLCcpKQogCQlDT01QTEVURV9XSVRIKCJXSEVSRSAoIiwgIldJVEggKCIpOwogCS8qIENv bXBsZXRlICJDUkVBVEUgUFVCTElDQVRJT04gPG5hbWU+IEZPUiBUQUJMRSIgd2l0aCAiPHRhYmxl PiwgLi4uIiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlv bi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCmluZGV4IDQ4MjA1YmE0 MjkuLmM5MmRkNDBhMTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGlj YXRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKQEAgLTEw OCwxMSArMTA4LDEyIEBAIHR5cGVkZWYgc3RydWN0IFB1YmxpY2F0aW9uUmVsSW5mbwogCVJlbGF0 aW9uCXJlbGF0aW9uOwogCU5vZGUJICAgKndoZXJlQ2xhdXNlOwogCUxpc3QJICAgKmNvbHVtbnM7 CisJYm9vbAkJZXhjZXB0OwogfSBQdWJsaWNhdGlvblJlbEluZm87CiAKIGV4dGVybiBQdWJsaWNh dGlvbiAqR2V0UHVibGljYXRpb24oT2lkIHB1YmlkKTsKIGV4dGVybiBQdWJsaWNhdGlvbiAqR2V0 UHVibGljYXRpb25CeU5hbWUoY29uc3QgY2hhciAqcHVibmFtZSwgYm9vbCBtaXNzaW5nX29rKTsK LWV4dGVybiBMaXN0ICpHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhPaWQgcmVsaWQpOworZXh0ZXJu IExpc3QgKkdldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCwgYm9vbCBleGNlcHRfZmxh Zyk7CiAKIC8qLS0tLS0tLS0tCiAgKiBFeHBlY3RlZCB2YWx1ZXMgZm9yIHB1Yl9wYXJ0b3B0IHBh cmFtZXRlciBvZiBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucygpLApAQCAtMTMyLDcgKzEzMyw3IEBA IHR5cGVkZWYgZW51bSBQdWJsaWNhdGlvblBhcnRPcHQKIAogZXh0ZXJuIExpc3QgKkdldFB1Ymxp Y2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0 KTsKIGV4dGVybiBMaXN0ICpHZXRBbGxUYWJsZXNQdWJsaWNhdGlvbnModm9pZCk7Ci1leHRlcm4g TGlzdCAqR2V0QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlvbnMoYm9vbCBwdWJ2aWFyb290KTsK K2V4dGVybiBMaXN0ICpHZXRBbGxUYWJsZXNQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQs IGJvb2wgcHVidmlhcm9vdCk7CiBleHRlcm4gTGlzdCAqR2V0UHVibGljYXRpb25TY2hlbWFzKE9p ZCBwdWJpZCk7CiBleHRlcm4gTGlzdCAqR2V0U2NoZW1hUHVibGljYXRpb25zKE9pZCBzY2hlbWFp ZCk7CiBleHRlcm4gTGlzdCAqR2V0U2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHNjaGVt YWlkLApAQCAtMTQzLDcgKzE0NCw3IEBAIGV4dGVybiBMaXN0ICpHZXRQdWJQYXJ0aXRpb25PcHRp b25SZWxhdGlvbnMoTGlzdCAqcmVzdWx0LAogCQkJCQkJCQkJCQlQdWJsaWNhdGlvblBhcnRPcHQg cHViX3BhcnRvcHQsCiAJCQkJCQkJCQkJCU9pZCByZWxpZCk7CiBleHRlcm4gT2lkCUdldFRvcE1v c3RBbmNlc3RvckluUHVibGljYXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLAotCQkJ CQkJCQkJCQlpbnQgKmFuY2VzdG9yX2xldmVsKTsKKwkJCQkJCQkJCQkJaW50ICphbmNlc3Rvcl9s ZXZlbCwgYm9vbCBwdWJhbGx0YWJsZXMpOwogCiBleHRlcm4gYm9vbCBpc19wdWJsaXNoYWJsZV9y ZWxhdGlvbihSZWxhdGlvbiByZWwpOwogZXh0ZXJuIGJvb2wgaXNfc2NoZW1hX3B1YmxpY2F0aW9u KE9pZCBwdWJpZCk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0 aW9uX3JlbC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaAppbmRl eCBlY2QzNzM5ZjFhLi4yOGEzM2ZmMTdhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3B1YmxpY2F0aW9uX3JlbC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGlj YXRpb25fcmVsLmgKQEAgLTMxLDYgKzMxLDcgQEAgQ0FUQUxPRyhwZ19wdWJsaWNhdGlvbl9yZWws NjEwNixQdWJsaWNhdGlvblJlbFJlbGF0aW9uSWQpCiAJT2lkCQkJb2lkOwkJCS8qIG9pZCAqLwog CU9pZAkJCXBycHViaWQgQktJX0xPT0tVUChwZ19wdWJsaWNhdGlvbik7IC8qIE9pZCBvZiB0aGUg cHVibGljYXRpb24gKi8KIAlPaWQJCQlwcnJlbGlkIEJLSV9MT09LVVAocGdfY2xhc3MpOwkvKiBP aWQgb2YgdGhlIHJlbGF0aW9uICovCisJYm9vbAkJcHJleGNlcHQgQktJX0RFRkFVTFQoZik7CS8q IGV4Y2x1ZGUgdGhlIHJlbGF0aW9uICovCiAKICNpZmRlZglDQVRBTE9HX1ZBUkxFTgkJCS8qIHZh cmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwogCXBnX25vZGVfdHJlZSBwcnF1YWw7 CQkvKiBxdWFsaWZpY2F0aW9ucyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMv cHVibGljYXRpb25jbWRzLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMu aAppbmRleCA1N2RmM2ZjMWUzLi5lNGU0ZWQxN2FiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9j b21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJs aWNhdGlvbmNtZHMuaApAQCAtMzIsOCArMzIsMTEgQEAgZXh0ZXJuIE9iamVjdEFkZHJlc3MgQWx0 ZXJQdWJsaWNhdGlvbk93bmVyKGNvbnN0IGNoYXIgKm5hbWUsIE9pZCBuZXdPd25lcklkKTsKIGV4 dGVybiB2b2lkIEFsdGVyUHVibGljYXRpb25Pd25lcl9vaWQoT2lkIHB1YmlkLCBPaWQgbmV3T3du ZXJJZCk7CiBleHRlcm4gdm9pZCBJbnZhbGlkYXRlUHVibGljYXRpb25SZWxzKExpc3QgKnJlbGlk cyk7CiBleHRlcm4gYm9vbCBwdWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1Ymlk LCBSZWxhdGlvbiByZWxhdGlvbiwKLQkJCQkJCQkJCQkgICBMaXN0ICphbmNlc3RvcnMsIGJvb2wg cHVidmlhcm9vdCk7CisJCQkJCQkJCQkJICAgTGlzdCAqYW5jZXN0b3JzLCBib29sIHB1YnZpYXJv b3QsCisJCQkJCQkJCQkJICAgYm9vbCBwdWJhbGx0YWJsZXMpOwogZXh0ZXJuIGJvb2wgcHViX2Nv bGxpc3RfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlv biwKLQkJCQkJCQkJCQkJCUxpc3QgKmFuY2VzdG9ycywgYm9vbCBwdWJ2aWFyb290KTsKKwkJCQkJ CQkJCQkJCUxpc3QgKmFuY2VzdG9ycywKKwkJCQkJCQkJCQkJCWJvb2wgcHVidmlhcm9vdCwKKwkJ CQkJCQkJCQkJCWJvb2wgcHViYWxsdGFibGVzKTsKIAogI2VuZGlmCQkJCQkJCS8qIFBVQkxJQ0FU SU9OQ01EU19IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggOTcyNmZkYWU1OC4uNmRlMTVj MzkxYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMzk5OSw2ICszOTk5LDcgQEAgdHlwZWRl ZiBzdHJ1Y3QgUHVibGljYXRpb25UYWJsZQogCVJhbmdlVmFyICAgKnJlbGF0aW9uOwkJLyogcmVs YXRpb24gdG8gYmUgcHVibGlzaGVkICovCiAJTm9kZQkgICAqd2hlcmVDbGF1c2U7CS8qIHF1YWxp ZmljYXRpb25zICovCiAJTGlzdAkgICAqY29sdW1uczsJCS8qIExpc3Qgb2YgY29sdW1ucyBpbiBh IHB1YmxpY2F0aW9uIHRhYmxlICovCisJYm9vbAkJZXhjZXB0OwkJCS8qIGV4Y2x1ZGUgdGhlIHJl bGF0aW9uICovCiB9IFB1YmxpY2F0aW9uVGFibGU7CiAKIC8qCkBAIC00MDA3LDYgKzQwMDgsNyBA QCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNhdGlvblRhYmxlCiB0eXBlZGVmIGVudW0gUHVibGljYXRp b25PYmpTcGVjVHlwZQogewogCVBVQkxJQ0FUSU9OT0JKX1RBQkxFLAkJLyogQSB0YWJsZSAqLwor CVBVQkxJQ0FUSU9OT0JKX0VYQ0VQVF9UQUJMRSwJCS8qIEEgdGFibGUgdG8gYmUgZXhjbHVkZWQg Ki8KIAlQVUJMSUNBVElPTk9CSl9UQUJMRVNfSU5fU0NIRU1BLAkvKiBBbGwgdGFibGVzIGluIHNj aGVtYSAqLwogCVBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9DVVJfU0NIRU1BLAkvKiBBbGwgdGFi bGVzIGluIGZpcnN0IGVsZW1lbnQgb2YKIAkJCQkJCQkJCQkJICogc2VhcmNoX3BhdGggKi8KZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKaW5kZXggNzk5YTNmMTVmNS4u MjY5NmY5YzFkYyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNh dGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQK QEAgLTE2NSwxMyArMTY1LDM3IEBAIFB1YmxpY2F0aW9uczoKICByZWdyZXNzX3B1YmxpY2F0aW9u X3VzZXIgfCB0ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCBmICAgICAgIHwgZiAgICAg ICAgIHwgZgogKDEgcm93KQogCitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitD UkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUgRk9SIEFM TCBUQUJMRVMgRVhDRVBUIFRBQkxFIHRlc3RwdWJfdGJsMSwgdGVzdHB1Yl90YmwyOworLS0gc3Bl Y2lmeSBFWENFUFQgd2l0aG91dCBUQUJMRQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9y YWxsdGFibGVzX2V4Y2VwdHRhYmxlMSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgdGVzdHB1Yl90Ymwx OworUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKK1xkUnArIHRlc3RwdWJfZm9yYWxsdGFibGVz X2V4Y2VwdHRhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHVi X2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFs bCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEg cm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJs aWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgICB8IGYKK0V4Y2VwdCB0YWJsZXM6CisgICAgInB1YmxpYy50ZXN0cHViX3RibDEi CisgICAgInB1YmxpYy50ZXN0cHViX3RibDIiCisKK1xkUnArIHRlc3RwdWJfZm9yYWxsdGFibGVz X2V4Y2VwdHRhYmxlMQorICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHVi X2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTEKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBB bGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlh IHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVi bGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg fCB0ICAgICAgICAgfCBmCitFeGNlcHQgdGFibGVzOgorICAgICJwdWJsaWMudGVzdHB1Yl90Ymwx IgorCiBEUk9QIFRBQkxFIHRlc3RwdWJfdGJsMjsKLURST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9m b3JhbGx0YWJsZXMsIHRlc3RwdWJfZm9ydGFibGUsIHRlc3RwdWJfZm9yc2NoZW1hOworRFJPUCBQ VUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcywgdGVzdHB1Yl9mb3J0YWJsZSwgdGVzdHB1 Yl9mb3JzY2hlbWEsIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlLCB0ZXN0cHViX2Zv cmFsbHRhYmxlc19leGNlcHR0YWJsZTE7CiBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwzIChhIGlu dCk7CiBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwzYSAoYiB0ZXh0KSBJTkhFUklUUyAodGVzdHB1 Yl90YmwzKTsKIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKIENSRUFURSBQVUJM SUNBVElPTiB0ZXN0cHViMyBGT1IgVEFCTEUgdGVzdHB1Yl90YmwzOwogQ1JFQVRFIFBVQkxJQ0FU SU9OIHRlc3RwdWI0IEZPUiBUQUJMRSBPTkxZIHRlc3RwdWJfdGJsMzsKK0NSRUFURSBQVUJMSUNB VElPTiB0ZXN0cHViNSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgdGVzdHB1Yl90YmwzOwor Q1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI2IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBP TkxZIHRlc3RwdWJfdGJsMzsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBcZFJwKyB0ZXN0 cHViMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVz dHB1YjMKQEAgLTE5MCw4ICsyMTQsMjUgQEAgVGFibGVzOgogVGFibGVzOgogICAgICJwdWJsaWMu dGVzdHB1Yl90YmwzIgogCitcZFJwKyB0ZXN0cHViNQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjUKKyAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVz IHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jl c3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgfCB0ICAgICAgICAgfCBmCitFeGNlcHQgdGFibGVzOgorICAgICJwdWJsaWMudGVzdHB1 Yl90YmwzIgorICAgICJwdWJsaWMudGVzdHB1Yl90YmwzYSIKKworXGRScCsgdGVzdHB1YjYKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWI2Cisg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVz IHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAgICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZgorRXhjZXB0IHRhYmxl czoKKyAgICAicHVibGljLnRlc3RwdWJfdGJsMyIKKwogRFJPUCBUQUJMRSB0ZXN0cHViX3RibDMs IHRlc3RwdWJfdGJsM2E7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWIzLCB0ZXN0cHViNDsKK0RS T1AgUFVCTElDQVRJT04gdGVzdHB1YjMsIHRlc3RwdWI0LCB0ZXN0cHViNSwgdGVzdHB1YjY7CiAt LSBUZXN0cyBmb3IgcGFydGl0aW9uZWQgdGFibGVzCiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9 ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JwYXJ0ZWQ7CkBAIC0xNjU2 LDkgKzE2OTcsMTQgQEAgRFJPUCBTQ0hFTUEgc2NoMiBjYXNjYWRlOwogLS0gVGVzdHMgZm9yIEFM VEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVAogQ1JFQVRFIFNDSEVNQSBwdWJfc2NoMTsKIENSRUFU RSBUQUJMRSBwdWJfc2NoMS50YmwxIChhIGludCk7CitDUkVBVEUgVEFCTEUgcHViX3NjaDEudGJs MiAoYSBpbnQpOwogU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOwogQ1JFQVRFIFBV QkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgRk9SIEFMTCBUQUJMRVM7CiBSRVNFVCBjbGllbnRfbWlu X21lc3NhZ2VzOworLS0gY2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB0byAnRk9SIEFMTCBUQUJMRVMn IHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFC TEVTIEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50YmwxOworRVJST1I6ICBhZGRpbmcgQUxMIFRBQkxF UyByZXF1aXJlcyB0aGUgcHVibGljYXRpb24gdG8gaGF2ZSBkZWZhdWx0IHB1YmxpY2F0aW9uIG9w dGlvbnMsIG5vIHRhYmxlcy9zY2hlbWFzIGFzc29jaWF0ZWQgYW5kIEFMTCBUQUJMRVMgZmxhZyBz aG91bGQgbm90IGJlIHNldAorSElOVDogIFVzZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQg dG8gcmVzZXQgdGhlIHB1YmxpY2F0aW9uCiAtLSBWZXJpZnkgdGhhdCAnQUxMIFRBQkxFUycgZmxh ZyBpcyByZXNldAogXGRScCsgdGVzdHB1Yl9yZXNldAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldApAQCAtMTY3NSw5ICsxNzIxLDI0IEBA IEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiAgcmVncmVzc19wdWJsaWNh dGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgICB8IGYKICgxIHJvdykKIAotQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBB REQgVEFCTEUgcHViX3NjaDEudGJsMSwgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljOwotLS0g VmVyaWZ5IHRoYXQgdGFibGVzIGFuZCBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGlj YXRpb24gYXJlIGRyb3BwZWQKLS0tIGFmdGVyIFJFU0VUCistLSBzaG91bGQgd29yayBub3cgYWZ0 ZXIgcmVzZXR0aW5nIHRoZSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9y ZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMSwgcHViX3NjaDEu dGJsMjsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAg fCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwg VmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf cHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgICAgfCBmCitFeGNlcHQgdGFibGVzOgorICAgICJwdWJfc2NoMS50YmwxIgor ICAgICJwdWJfc2NoMS50YmwyIgorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJF U0VUOworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgVEFCTEUgcHViX3NjaDEu dGJsMTsKKy0tIGNhbid0IGFkZCBFWENFUFQgVEFCTEUgdG8gJ0ZPUiBUQUJMRScgcHVibGljYXRp b24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBU IFRBQkxFIHB1Yl9zY2gxLnRibDE7CitFUlJPUjogIGFkZGluZyBBTEwgVEFCTEVTIHJlcXVpcmVz IHRoZSBwdWJsaWNhdGlvbiB0byBoYXZlIGRlZmF1bHQgcHVibGljYXRpb24gb3B0aW9ucywgbm8g dGFibGVzL3NjaGVtYXMgYXNzb2NpYXRlZCBhbmQgQUxMIFRBQkxFUyBmbGFnIHNob3VsZCBub3Qg YmUgc2V0CitISU5UOiAgVXNlIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVCB0byByZXNldCB0 aGUgcHVibGljYXRpb24KKy0tIFZlcmlmeSB0aGF0IHRhYmxlcyBhc3NvY2lhdGVkIHdpdGggdGhl IHB1YmxpY2F0aW9uIGFyZSBkcm9wcGVkIGFmdGVyIFJFU0VUCiBcZFJwKyB0ZXN0cHViX3Jlc2V0 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jl c2V0CiAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBV cGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IApAQCAtMTY4NSw2ICsxNzQ2 LDI2IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIFRBQkxFIHB1Yl9zY2gx LnRibDEsIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1CiAgcmVncmVzc19wdWJsaWNhdGlvbl91c2Vy IHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8 IGYKIFRhYmxlczoKICAgICAicHViX3NjaDEudGJsMSIKKworQUxURVIgUFVCTElDQVRJT04gdGVz dHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25l ciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwg VHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKKy0tIGNh bid0IGFkZCBFWENFUFQgVEFCTEUgdG8gJ0ZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQScgcHVibGlj YXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhD RVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7CitFUlJPUjogIGFkZGluZyBBTEwgVEFCTEVTIHJlcXVp cmVzIHRoZSBwdWJsaWNhdGlvbiB0byBoYXZlIGRlZmF1bHQgcHVibGljYXRpb24gb3B0aW9ucywg bm8gdGFibGVzL3NjaGVtYXMgYXNzb2NpYXRlZCBhbmQgQUxMIFRBQkxFUyBmbGFnIHNob3VsZCBu b3QgYmUgc2V0CitISU5UOiAgVXNlIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVCB0byByZXNl dCB0aGUgcHVibGljYXRpb24KKy0tIFZlcmlmeSB0aGF0IHNjaGVtYXMgYXNzb2NpYXRlZCB3aXRo IHRoZSBwdWJsaWNhdGlvbiBhcmUgZHJvcHBlZCBhZnRlciBSRVNFVAorXGRScCsgdGVzdHB1Yl9y ZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1 Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRz IHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAg ICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKIFRh YmxlcyBmcm9tIHNjaGVtYXM6CiAgICAgInB1YmxpYyIKIApAQCAtMTY5NiwxMyArMTc3Nyw0MCBA QCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogIHJlZ3Jlc3NfcHVibGlj YXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgICAgfCBmCiAoMSByb3cpCiAKLUFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQg U0VUIChQVUJMSVNIID0gJycsIFBVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UID0gJ3RydWUnKTsK LS0tIFZlcmlmeSB0aGF0IHB1Ymxpc2ggb3B0aW9ucyBhbmQgcHVibGlzaF92aWFfcGFydGl0aW9u X3Jvb3Qgb3B0aW9uIGFyZSByZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBT RVQgKFBVQkxJU0ggPSAnJyk7CistLSBjYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHdoZW4gdGhlIHB1 YmxpY2F0aW9uIG9wdGlvbnMgYXJlIG5vdCB0aGUgZGVmYXVsdAorLS0gdmFsdWVzCitBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBwdWJf c2NoMS50YmwxOworRVJST1I6ICBhZGRpbmcgQUxMIFRBQkxFUyByZXF1aXJlcyB0aGUgcHVibGlj YXRpb24gdG8gaGF2ZSBkZWZhdWx0IHB1YmxpY2F0aW9uIG9wdGlvbnMsIG5vIHRhYmxlcy9zY2hl bWFzIGFzc29jaWF0ZWQgYW5kIEFMTCBUQUJMRVMgZmxhZyBzaG91bGQgbm90IGJlIHNldAorSElO VDogIFVzZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQgdG8gcmVzZXQgdGhlIHB1YmxpY2F0 aW9uCistLSBWZXJpZnkgdGhhdCBwdWJsaXNoIG9wdGlvbiBpcyByZXNldAogXGRScCsgdGVzdHB1 Yl9yZXNldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVz dHB1Yl9yZXNldAogICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNl cnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwg ZiAgICAgICAgICB8IGYgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgICB8IHQK KyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICB8IGYgICAg ICAgfCBmICAgICAgIHwgZiAgICAgICAgIHwgZgorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0 ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UID0g J3RydWUnKTsKKy0tIGNhbid0IGFkZCBFWENFUFQgVEFCTEUgd2hlbiBwdWJsaXNoX3ZpYV9wYXJ0 aXRpb25fcm9vdCBvcHRpb24gZG9lcyBub3QKKy0tIGhhdmUgZGVmYXVsdCB2YWx1ZQorQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHVi X3NjaDEudGJsMTsKK0VSUk9SOiAgYWRkaW5nIEFMTCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1Ymxp Y2F0aW9uIHRvIGhhdmUgZGVmYXVsdCBwdWJsaWNhdGlvbiBvcHRpb25zLCBubyB0YWJsZXMvc2No ZW1hcyBhc3NvY2lhdGVkIGFuZCBBTEwgVEFCTEVTIGZsYWcgc2hvdWxkIG5vdCBiZSBzZXQKK0hJ TlQ6ICBVc2UgQUxURVIgUFVCTElDQVRJT04gLi4uIFJFU0VUIHRvIHJlc2V0IHRoZSBwdWJsaWNh dGlvbgorLS0gVmVyaWZ5IHRoYXQgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Qgb3B0aW9uIGlz IHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAg IHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8 IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICAgIHwgdAogKDEgcm93KQogCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi X3Jlc2V0IFJFU0VUOwpAQCAtMTcyMSw2ICsxODI5LDcgQEAgRVJST1I6ICBtdXN0IGJlIHN1cGVy dXNlciB0byBSRVNFVCBwdWJsaWNhdGlvbgogU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91 c2VyOwogRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0OwogRFJPUCBUQUJMRSBwdWJfc2No MS50YmwxOworRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwyOwogRFJPUCBTQ0hFTUEgcHViX3NjaDE7 CiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiBEUk9QIFJPTEUgcmVncmVzc19wdWJsaWNh dGlvbl91c2VyLCByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVi bGljYXRpb24uc3FsCmluZGV4IDg2OGYxYzUxYjEuLjExNDU3NDQ0NjUgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9wdWJsaWNhdGlvbi5zcWwKQEAgLTg5LDIwICs4OSwzMyBAQCBTRUxFQ1QgcHVibmFtZSwg cHViYWxsdGFibGVzIEZST00gcGdfcHVibGljYXRpb24gV0hFUkUgcHVibmFtZSA9ICd0ZXN0cHVi X2ZvcmFsbAogXGQrIHRlc3RwdWJfdGJsMgogXGRScCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXMKIAor U0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRl c3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJM RSB0ZXN0cHViX3RibDEsIHRlc3RwdWJfdGJsMjsKKy0tIHNwZWNpZnkgRVhDRVBUIHdpdGhvdXQg VEFCTEUKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJs ZTEgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIHRlc3RwdWJfdGJsMTsKK1JFU0VUIGNsaWVudF9taW5f bWVzc2FnZXM7CisKK1xkUnArIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlCitcZFJw KyB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTEKKwogRFJPUCBUQUJMRSB0ZXN0cHVi X3RibDI7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzLCB0ZXN0cHViX2Zv cnRhYmxlLCB0ZXN0cHViX2ZvcnNjaGVtYTsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3Jh bGx0YWJsZXMsIHRlc3RwdWJfZm9ydGFibGUsIHRlc3RwdWJfZm9yc2NoZW1hLCB0ZXN0cHViX2Zv cmFsbHRhYmxlc19leGNlcHR0YWJsZSwgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUx OwogCiBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwzIChhIGludCk7CiBDUkVBVEUgVEFCTEUgdGVz dHB1Yl90YmwzYSAoYiB0ZXh0KSBJTkhFUklUUyAodGVzdHB1Yl90YmwzKTsKIFNFVCBjbGllbnRf bWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViMyBGT1Ig VEFCTEUgdGVzdHB1Yl90YmwzOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI0IEZPUiBUQUJM RSBPTkxZIHRlc3RwdWJfdGJsMzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNSBGT1IgQUxM IFRBQkxFUyBFWENFUFQgVEFCTEUgdGVzdHB1Yl90YmwzOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRl c3RwdWI2IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBPTkxZIHRlc3RwdWJfdGJsMzsKIFJF U0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBcZFJwKyB0ZXN0cHViMwogXGRScCsgdGVzdHB1YjQK K1xkUnArIHRlc3RwdWI1CitcZFJwKyB0ZXN0cHViNgogCiBEUk9QIFRBQkxFIHRlc3RwdWJfdGJs MywgdGVzdHB1Yl90YmwzYTsKLURST1AgUFVCTElDQVRJT04gdGVzdHB1YjMsIHRlc3RwdWI0Owor RFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViMywgdGVzdHB1YjQsIHRlc3RwdWI1LCB0ZXN0cHViNjsK IAogLS0gVGVzdHMgZm9yIHBhcnRpdGlvbmVkIHRhYmxlcwogU0VUIGNsaWVudF9taW5fbWVzc2Fn ZXMgPSAnRVJST1InOwpAQCAtMTA2MCwyNiArMTA3Myw2MyBAQCBEUk9QIFNDSEVNQSBzY2gyIGNh c2NhZGU7CiAtLSBUZXN0cyBmb3IgQUxURVIgUFVCTElDQVRJT04gLi4uIFJFU0VUCiBDUkVBVEUg U0NIRU1BIHB1Yl9zY2gxOwogQ1JFQVRFIFRBQkxFIHB1Yl9zY2gxLnRibDEgKGEgaW50KTsKK0NS RUFURSBUQUJMRSBwdWJfc2NoMS50YmwyIChhIGludCk7CiBTRVQgY2xpZW50X21pbl9tZXNzYWdl cyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBGT1IgQUxMIFRB QkxFUzsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiAKKy0tIGNhbid0IGFkZCBFWENFUFQg VEFCTEUgdG8gJ0ZPUiBBTEwgVEFCTEVTJyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsK KwogLS0gVmVyaWZ5IHRoYXQgJ0FMTCBUQUJMRVMnIGZsYWcgaXMgcmVzZXQKIFxkUnArIHRlc3Rw dWJfcmVzZXQKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiBcZFJwKyB0 ZXN0cHViX3Jlc2V0CiAKLUFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIFRBQkxF IHB1Yl9zY2gxLnRibDEsIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKKy0tIHNob3VsZCB3 b3JrIG5vdyBhZnRlciByZXNldHRpbmcgdGhlIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50Ymwx LCBwdWJfc2NoMS50YmwyOworXGRScCsgdGVzdHB1Yl9yZXNldAorCitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0 IEFERCBUQUJMRSBwdWJfc2NoMS50YmwxOworCistLSBjYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHRv ICdGT1IgVEFCTEUnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0 IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50YmwxOworCistLSBWZXJpZnkg dGhhdCB0YWJsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiBhcmUgZHJvcHBlZCBh ZnRlciBSRVNFVAorXGRScCsgdGVzdHB1Yl9yZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKworQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljOworCistLSBjYW4n dCBhZGQgRVhDRVBUIFRBQkxFIHRvICdGT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEnIHB1YmxpY2F0 aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQ VCBUQUJMRSBwdWJfc2NoMS50YmwxOworCistLSBWZXJpZnkgdGhhdCBzY2hlbWFzIGFzc29jaWF0 ZWQgd2l0aCB0aGUgcHVibGljYXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKK1xkUnArIHRl c3RwdWJfcmVzZXQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJw KyB0ZXN0cHViX3Jlc2V0CisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQ VUJMSVNIID0gJycpOworCistLSBjYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHdoZW4gdGhlIHB1Ymxp Y2F0aW9uIG9wdGlvbnMgYXJlIG5vdCB0aGUgZGVmYXVsdAorLS0gdmFsdWVzCitBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBwdWJfc2No MS50YmwxOwogCi0tLSBWZXJpZnkgdGhhdCB0YWJsZXMgYW5kIHNjaGVtYXMgYXNzb2NpYXRlZCB3 aXRoIHRoZSBwdWJsaWNhdGlvbiBhcmUgZHJvcHBlZAotLS0gYWZ0ZXIgUkVTRVQKKy0tIFZlcmlm eSB0aGF0IHB1Ymxpc2ggb3B0aW9uIGlzIHJlc2V0CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiBBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogXGRScCsgdGVzdHB1Yl9yZXNldAog Ci1BTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSCA9ICcnLCBQVUJM SVNIX1ZJQV9QQVJUSVRJT05fUk9PVCA9ICd0cnVlJyk7CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IFNFVCAoUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1QgPSAndHJ1ZScpOworCist LSBjYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHdoZW4gcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Qg b3B0aW9uIGRvZXMgbm90CistLSBoYXZlIGRlZmF1bHQgdmFsdWUKK0FMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7 CiAKLS0tIFZlcmlmeSB0aGF0IHB1Ymxpc2ggb3B0aW9ucyBhbmQgcHVibGlzaF92aWFfcGFydGl0 aW9uX3Jvb3Qgb3B0aW9uIGFyZSByZXNldAorLS0gVmVyaWZ5IHRoYXQgcHVibGlzaF92aWFfcGFy dGl0aW9uX3Jvb3Qgb3B0aW9uIGlzIHJlc2V0CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiBBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogXGRScCsgdGVzdHB1Yl9yZXNldApAQCAt MTA5Miw2ICsxMTQyLDcgQEAgU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyOwogCiBE Uk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQ7CiBEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDE7 CitEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDI7CiBEUk9QIFNDSEVNQSBwdWJfc2NoMTsKIAogUkVT RVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0 aW9uL3QvMDMyX3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbCBiL3NyYy90ZXN0L3N1YnNjcmlw dGlvbi90LzAzMl9yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMC4uY2Q3NmY1YmMzZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90 ZXN0L3N1YnNjcmlwdGlvbi90LzAzMl9yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwKQEAgLTAs MCArMSw4NSBAQAorCisjIENvcHlyaWdodCAoYykgMjAyMS0yMDIyLCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAorCisjIExvZ2ljYWwgcmVwbGljYXRpb24gdGVzdHMgZm9yIGV4 Y2VwdCB0YWJsZSBwdWJsaWNhdGlvbnMKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3M7Cit1c2Ug UG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3RlcjsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczsK K3VzZSBUZXN0OjpNb3JlOworCisjIEluaXRpYWxpemUgcHVibGlzaGVyIG5vZGUKK215ICRub2Rl X3B1Ymxpc2hlciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygncHVibGlzaGVyJyk7 Ciskbm9kZV9wdWJsaXNoZXItPmluaXQoYWxsb3dzX3N0cmVhbWluZyA9PiAnbG9naWNhbCcpOwor JG5vZGVfcHVibGlzaGVyLT5zdGFydDsKKworIyBDcmVhdGUgc3Vic2NyaWJlciBub2RlCitteSAk bm9kZV9zdWJzY3JpYmVyID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdzdWJzY3Jp YmVyJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5pbml0KGFsbG93c19zdHJlYW1pbmcgPT4gJ2xvZ2lj YWwnKTsKKyRub2RlX3N1YnNjcmliZXItPnN0YXJ0OworCisjIFRlc3QgcmVwbGljYXRpb24gd2l0 aCBwdWJsaWNhdGlvbnMgY3JlYXRlZCB1c2luZyBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUK KyMgb3B0aW9uLgorIyBDcmVhdGUgc2NoZW1hcyBhbmQgdGFibGVzIG9uIHB1Ymxpc2hlcgorJG5v ZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBTQ0hFTUEgc2NoMSIp OworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFRBQkxF IHNjaDEudGFiMSBBUyBTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDEsMTApIEFTIGEiKTsKKyRub2Rl X3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSBwdWJsaWMu dGFiMShhIGludCkiKTsKKworIyBDcmVhdGUgc2NoZW1hcyBhbmQgdGFibGVzIG9uIHN1YnNjcmli ZXIKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFNDSEVN QSBzY2gxIik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFU RSBUQUJMRSBzY2gxLnRhYjEgKGEgaW50KSIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsICJDUkVBVEUgVEFCTEUgcHVibGljLnRhYjEgKGEgaW50KSIpOworCisjIFNl dHVwIGxvZ2ljYWwgcmVwbGljYXRpb24KK215ICRwdWJsaXNoZXJfY29ubnN0ciA9ICRub2RlX3B1 Ymxpc2hlci0+Y29ubnN0ciAuICcgZGJuYW1lPXBvc3RncmVzJzsKKyRub2RlX3B1Ymxpc2hlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViX3NjaGVt YSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgc2NoMS50YWIxIik7CisKKyRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgU1VCU0NSSVBUSU9OIHRhcF9z dWJfc2NoZW1hIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0cicgUFVCTElDQVRJT04gdGFw X3B1Yl9zY2hlbWEiCispOworCiskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3Rh cF9zdWJfc2NoZW1hJyk7CisKKyMgQWxzbyB3YWl0IGZvciBpbml0aWFsIHRhYmxlIHN5bmMgdG8g ZmluaXNoCitteSAkc3luY2VkX3F1ZXJ5ID0KKyAgIlNFTEVDVCBjb3VudCgxKSA9IDAgRlJPTSBw Z19zdWJzY3JpcHRpb25fcmVsIFdIRVJFIHNyc3Vic3RhdGUgTk9UIElOICgncicsICdzJyk7IjsK KyRub2RlX3N1YnNjcmliZXItPnBvbGxfcXVlcnlfdW50aWwoJ3Bvc3RncmVzJywgJHN5bmNlZF9x dWVyeSkKKyAgb3IgZGllICJUaW1lZCBvdXQgd2hpbGUgd2FpdGluZyBmb3Igc3Vic2NyaWJlciB0 byBzeW5jaHJvbml6ZSBkYXRhIjsKKworIyBDaGVjayB0aGUgdGFibGUgZGF0YSBkb2VzIG5vdCBz eW5jIGZvciBleGNsdWRlZCB0YWJsZQorbXkgJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKiksIG1pbihhKSwgbWF4KGEpIEZS T00gc2NoMS50YWIxIik7CitpcygkcmVzdWx0LCBxcSgwfHwpLCAnY2hlY2sgdGhlcmUgaXMgbm8g aW5pdGlhbCBkYXRhIGNvcGllZCBmb3IgdGhlIGV4Y2x1ZGVkIHRhYmxlJyk7CisKKyMgSW5zZXJ0 IHNvbWUgZGF0YSBhbmQgdmVyaWZ5IHRoYXQgaW5zZXJ0ZWQgZGF0YSBpcyBub3QgcmVwbGljYXRl ZAorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8g c2NoMS50YWIxIFZBTFVFUyhnZW5lcmF0ZV9zZXJpZXMoMTEsMjApKSIpOworCiskbm9kZV9wdWJs aXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfc2NoZW1hJyk7CisKKyRyZXN1bHQgPSAk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCop LCBtaW4oYSksIG1heChhKSBGUk9NIHNjaDEudGFiMSIpOworaXMoJHJlc3VsdCwgcXEoMHx8KSwg J2NoZWNrIHJlcGxpY2F0ZWQgaW5zZXJ0cyBvbiBzdWJzY3JpYmVyJyk7CisKKyMgQWx0ZXIgcHVi bGljYXRpb24gdG8gZXhjbHVkZSBkYXRhIGNoYW5nZXMgaW4gcHVibGljLnRhYjEgYW5kIHZlcmlm eSB0aGF0CisjIHN1YnNjcmliZXIgZG9lcyBub3QgZ2V0IHRoZSBjaGFuZ2VkIGRhdGEgZm9yIHRo aXMgdGFibGUuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorICAgICAg ICAiQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9zY2hlbWEgUkVTRVQiKTsKKyRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisgICAgICAgICJBTFRFUiBQVUJMSUNBVElPTiB0 YXBfcHViX3NjaGVtYSBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgc2NoMS50YWIxLCBwdWJs aWMudGFiMSIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKyAgICAg ICAgIklOU0VSVCBJTlRPIHB1YmxpYy50YWIxIFZBTFVFUyhnZW5lcmF0ZV9zZXJpZXMoMSwxMCkp Iik7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9zY2hlbWEn KTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAor CSJTRUxFQ1QgY291bnQoKiksIG1pbihhKSwgbWF4KGEpIEZST00gcHVibGljLnRhYjEiKTsKK2lz KCRyZXN1bHQsIHFxKDB8fCksICdjaGVjayByb3dzIG9uIHN1YnNjcmliZXIgY2F0Y2h1cCcpOwor Ciskbm9kZV9zdWJzY3JpYmVyLT5zdG9wKCdmYXN0Jyk7Ciskbm9kZV9wdWJsaXNoZXItPnN0b3Ao J2Zhc3QnKTsKKworZG9uZV90ZXN0aW5nKCk7Ci0tIAoyLjMyLjAKCg== --000000000000bfa24e05df7ee91a--