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 1nW4So-0004ub-Rb for pgsql-hackers@arkaria.postgresql.org; Sun, 20 Mar 2022 22:55:55 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nW4Sm-00089U-Kg for pgsql-hackers@arkaria.postgresql.org; Sun, 20 Mar 2022 22:55:52 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nW4Sl-00089H-N5 for pgsql-hackers@lists.postgresql.org; Sun, 20 Mar 2022 22:55:52 +0000 Received: from mail-lf1-x12e.google.com ([2a00:1450:4864:20::12e]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1nW4Sc-0008Ed-F0 for pgsql-hackers@lists.postgresql.org; Sun, 20 Mar 2022 22:55:50 +0000 Received: by mail-lf1-x12e.google.com with SMTP id bu29so22159748lfb.0 for ; Sun, 20 Mar 2022 15:55:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb.com; s=google; h=message-id:date:mime-version:user-agent:subject:content-language :from:to:cc:references:in-reply-to; bh=txxU0OIsrDFjzkINeK5nb9BqrIyvi9El2+ToMBkdxu4=; b=NyXOEqgM0xia2HNrHqyQ8IBYlH+YcNT1YuXUKaCYlFrng0PokB0M2dEyrUqYJVBkxu WpcPjGi3jIVZyxlDwHMEZfMdmK9/vtW9pfIHOmmT+M/zK31flO0c90qfoty5guqKgYwo Asxcho3CiYHcBt3mdvzpDL8ZKkm6rSRH1b39AusNf4ouiYbJrvgAz4UwnjzTJ9g16MZr 11doWUMNyxiRzDrrFiKVadgSbgbQYDJLxP3LbNTRFRG5zd2FZvfJseFBoZjHsTjqWJis udFIS0LUNHdq2q0WAk1a0PSd1dkQ13NZU/uyGjiQOUpkBa5nXi5B5JW0okIlsSgoKJb7 W61Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:from:to:cc:references:in-reply-to; bh=txxU0OIsrDFjzkINeK5nb9BqrIyvi9El2+ToMBkdxu4=; b=c0AulnartrIbW5jiOTJ4f6+dyZ9CLFFAMSoa2WK+wfT2rXFI0E9BC0jiiiH5ilfjTA 2A9IKP1rS6ipMwItcBbSqXkuHQO43TL4E8c3Wjyk0SdEsaPtXtMwKZ+3vZKY3Bow9oWQ 91MQw7DhbvtCWOfC/tOQkKOJ1yTpoTKZFYmKnYris7hAUTeaQ20Cimv5LJyiBfI4LRYa 0rhL7aQukYILSZK9fPYqz/QxaRJstlBQURp5RCVoiNq7/MctMqhxgxP1Iqz3T30T3zdm d5aFvGvn1mOxubIH+XrBCcxkT72keg9HddzYBILRBMHnM2wlON7xP9HMzQPn1pH9qGCF Pk9w== X-Gm-Message-State: AOAM531QLjCU5LD4BWhKfjEZiPMkWpKnqBUcE8+x13SnVjbxhzb0DcAJ wAuvST+1oA0fCnXhmJwGZKxQdFXRrEijMh/FP6wN0bOR3tDeVcOn9e8mBsdw217repZN2IFdY13 4dTusWNd/0Znr0xAokrv2SGNqrHZame1nEpMHfXzFpEIi9dm47ft65mKtB+voIReI84OiRzxW0D Zm/49k7w4vZpErA/p5x7Z4PcPsw7MmBYzgGbXzOdodTQp6RFeMP5Sq X-Google-Smtp-Source: ABdhPJxXNuL+jN2NwKFKhusHMnzboc/2rWD6OKQ0PE51sLVE5lIpV3l6yOdATqanQrsJbTlomgME+A== X-Received: by 2002:a05:6512:b11:b0:44a:2ead:daf2 with SMTP id w17-20020a0565120b1100b0044a2eaddaf2mr799838lfu.642.1647816940021; Sun, 20 Mar 2022 15:55:40 -0700 (PDT) Received: from [10.137.0.17] (37-247-27-82.customers.ownit.se. [37.247.27.82]) by smtp.gmail.com with ESMTPSA id h28-20020a19ca5c000000b0044a1be3d9d4sm638975lfj.225.2022.03.20.15.55.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 20 Mar 2022 15:55:39 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------VRacwSoeax7T734A0xJoDRvz" Message-ID: <9da788c7-01eb-f11d-aa08-c5f61fe9f33a@enterprisedb.com> Date: Sun, 20 Mar 2022 23:55:37 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.6.2 Subject: Re: logical decoding and replication of sequences Content-Language: en-US From: Tomas Vondra To: Peter Eisentraut Cc: Amit Kapila , PostgreSQL Hackers , Petr Jelinek References: <32540e16-fab6-f790-b99b-5a8fca8bde52@enterprisedb.com> <3B014BE4-EE61-4834-8FF6-937B43C46BC7@enterprisedb.com> <3d68b45a-ceb5-6824-3a39-f53411fd0c88@enterprisedb.com> <802f8b1b-a798-be52-c829-7f0fb9faafd5@enterprisedb.com> <983bf0c7-9757-fd13-3896-8452cf4c4c52@enterprisedb.com> <9211312a-6501-1caf-ee7b-c0d4814b6091@enterprisedb.com> <41ada110-bc7c-32a3-08bd-fb5023dd74ba@enterprisedb.com> <2eed0f76-3a1a-8b8b-ac1b-e0f9a0d98287@enterprisedb.com> <9defb937-20a9-1d9f-6972-f1c4b4da4f73@enterprisedb.com> <8e766e0f-ed3e-fd68-4b0f-10dd2db60c88@enterprisedb.com> <6b21233e-c880-e4ad-5df2-7832f769296c@enterprisedb.com> In-Reply-To: <6b21233e-c880-e4ad-5df2-7832f769296c@enterprisedb.com> X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------VRacwSoeax7T734A0xJoDRvz Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Hi, Attached is a rebased patch, addressing most of the remaining issues. The main improvements are: 1) pg_publication_namespace.pntype and type checks Originally, the patch used pnsequences flag to distinguish which entries added by FOR ALL TABLES IN SCHEMA and FOR ALL SEQUENCES IN SCHEMA. I've decided to replace this with a simple char column, called pntype, where 't' means tables and 's' sequences. As explained before, relkind doesn't work well because of partitioned tables. A char, with a function to match it to relkind values works fairly well. I've revisited the question how to represent publications publishing the same schema twice - once for tables, once for sequences. There were proposals to represent this with a single row, i.e. turn pntype into an array of char values. So it'd be either ['t'], ['s'] or ['s', 't']. I spent some time working on that, but I've decided to keep the current approach with two separate rows - it's easier to manage, lookup etc. 2) pg_get_object_address I've updated the objectaddress code to consider pntype when looking-up the pntype value, so each row in pg_publication_namespace gets the correct ObjectAddress. 3) for all [tables | sequences] The original patch did not allow creating publication for all tables and all sequences at the same time. I've tweaked the grammar to allow this: CREATE PUBLICATION p FOR ALL list_of_types; where list_of_types is arbitrary combination of TABLES and SEQUENCES. It's implemented in a slightly awkward way - partially in the grammar, partially in the publicationcmds.c. I suspect there's a (cleaner) way to do this entirely in the grammar but I haven't succeeded yet. 4) prevent 'ADD TABLE sequence' and 'ADD SEQUENCE table' It was possible to do "ADD TABLE" and pass it a sequence, which would fail to notice if the publication already includes all sequences from the schema. I've added a check preventing that (and a similar one for ADD SEQUENCE). 5) missing block in AlterTableNamespace to cross-check moving published sequence to already published schema A block of code was missing from AlterTableNamespace, checking that we're not moving a sequence into a schema that is already published (all the sequences from it). 6) a couple comment fixes Various comment improvements and fixes. At this point there's a couple trivial FIXME/XXX comments remaining. regards -- Tomas Vondra EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company --------------VRacwSoeax7T734A0xJoDRvz Content-Type: text/x-patch; charset=UTF-8; name="0001-Add-support-for-decoding-sequences-to-built-20220320.patch" Content-Disposition: attachment; filename*0="0001-Add-support-for-decoding-sequences-to-built-20220320.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBkNTEwZTI2YjhhYWI2OTg2NzA2MjdiMTkyNjA3YzZhMWVjOWQ2YzhlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzLnZvbmRyYUBwb3N0 Z3Jlc3FsLm9yZz4KRGF0ZTogU2F0LCAxOSBNYXIgMjAyMiAyMDoxNTowNiArMDEwMApTdWJq ZWN0OiBbUEFUQ0hdIEFkZCBzdXBwb3J0IGZvciBkZWNvZGluZyBzZXF1ZW5jZXMgdG8gYnVp bHQtaW4gcmVwbGljYXRpb24KCi0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAg ICAgICAgICAgICAgICAgIHwgICA4MSArKwogZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwg ICAgICAgICAgICAgICAgICAgIHwgIDExOSArKwogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9w dWJsaWNhdGlvbi5zZ21sICAgICAgIHwgICAyNCArLQogZG9jL3NyYy9zZ21sL3JlZi9hbHRl cl9zdWJzY3JpcHRpb24uc2dtbCAgICAgIHwgICAgMyArLQogZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfcHVibGljYXRpb24uc2dtbCAgICAgIHwgICA0NSArLQogc3JjL2JhY2tlbmQvY2F0 YWxvZy9vYmplY3RhZGRyZXNzLmMgICAgICAgICAgIHwgICA0NCArLQogc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jICAgICAgICAgIHwgIDMyMSArKysrKy0KIHNyYy9i YWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCAgICAgICAgICB8ICAgMTAgKwogc3Jj L2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMgICAgICAgIHwgIDQyNiArKysr Ky0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXF1ZW5jZS5jICAgICAgICAgICAgICAgfCAg IDc5ICsrCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMgICAgICAg fCAgMTAxICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAg ICAgfCAgIDI3ICstCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjUmVwbGljYXRpb24uYyAg ICAgICAgfCAgICA0ICstCiBzcmMvYmFja2VuZC9ub2Rlcy9jb3B5ZnVuY3MuYyAgICAgICAg ICAgICAgICAgfCAgICA0ICstCiBzcmMvYmFja2VuZC9ub2Rlcy9lcXVhbGZ1bmNzLmMgICAg ICAgICAgICAgICAgfCAgICA0ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAg ICAgICAgICAgICAgICAgfCAgIDUyICstCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dp Y2FsL3Byb3RvLmMgICAgICAgfCAgIDUyICsKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xv Z2ljYWwvdGFibGVzeW5jLmMgICB8ICAxMTAgKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvd29ya2VyLmMgICAgICB8ICAgNTYgKwogc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vcGdvdXRwdXQvcGdvdXRwdXQuYyAgIHwgICA3OSArLQogc3JjL2JhY2tlbmQvdXRpbHMv Y2FjaGUvcmVsY2FjaGUuYyAgICAgICAgICAgIHwgICAyOCArLQogc3JjL2JhY2tlbmQvdXRp bHMvY2FjaGUvc3lzY2FjaGUuYyAgICAgICAgICAgIHwgICAgNiArLQogc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgICA2NSArLQogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgICAgMyArCiBzcmMvYmlu L3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAgICAgfCAgIDQwICstCiBzcmMv YmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMjg3ICsrKy0t CiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAgICAgICAgICAgICAgICAgfCAgIDEy ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgICAgICAgfCAg ICA1ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaCAgICAgICAgICB8 ICAgMjYgKy0KIC4uLi9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX25hbWVzcGFjZS5oICAgICAg ICB8ICAgMTAgKy0KIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3NlcXVlbmNlLmggICAgICAgICAg ICAgICB8ICAgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAg ICAgICAgIHwgICAgOCArLQogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vbG9naWNhbHByb3Rv LmggICAgICAgIHwgICAxOSArCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9wZ291dHB1dC5o ICAgICAgICAgICAgfCAgICAxICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2JqZWN0 X2FkZHJlc3Mub3V0ICB8ICAgMTAgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVi bGljYXRpb24ub3V0ICAgICB8IDEwMDkgKysrKysrKysrKysrKystLS0KIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAgICAgICB8ICAgIDggKwogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvb2JqZWN0X2FkZHJlc3Muc3FsICAgICAgIHwgICAgNSArLQogc3JjL3Rl c3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsICAgICAgICAgIHwgIDIyNiArKystCiBz cmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzBfc2VxdWVuY2VzLnBsICAgICAgfCAgMjAyICsr KysKIDQwIGZpbGVzIGNoYW5nZWQsIDMxNTUgaW5zZXJ0aW9ucygrKSwgNDU3IGRlbGV0aW9u cygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzMF9z ZXF1ZW5jZXMucGwKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBi L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IDRkYzViMzRkMjFjLi42OWM5Nzg5 NDA2NiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTYyODEsNiArNjI4MSwxNiBAQCBTQ1JBTS1T SEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFi bGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgIFJlZmVyZW5jZSB0byBzY2hlbWEKICAgICAg IDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cG50eXBlPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+Y2hhcjwvdHlwZT4KKyAgICAgICBEZXRlcm1pbmVzIHdoaWNoIG9iamVjdCB0eXBlIGlz IGluY2x1ZGVkIGZyb20gdGhpcyBzY2hlbWEuCisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBSZWZlcmVuY2UgdG8gc2NoZW1hCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CiAgICAgPC90Ym9keT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpA QCAtOTU4OCw2ICs5NTk4LDExIEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtp dGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAg ICA8ZW50cnk+cHJlcGFyZWQgdHJhbnNhY3Rpb25zPC9lbnRyeT4KICAgICAgPC9yb3c+CiAK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJ2aWV3LXBnLXB1Ymxp Y2F0aW9uLXNlcXVlbmNlcyI+PHN0cnVjdG5hbWU+cGdfcHVibGljYXRpb25fc2VxdWVuY2Vz PC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgorICAgICAgPGVudHJ5PnB1YmxpY2F0aW9u cyBhbmQgdGhlaXIgYXNzb2NpYXRlZCBzZXF1ZW5jZXM8L2VudHJ5PgorICAgICA8L3Jvdz4K KwogICAgICA8cm93PgogICAgICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9InZpZXctcGctcHVi bGljYXRpb24tdGFibGVzIj48c3RydWN0bmFtZT5wZ19wdWJsaWNhdGlvbl90YWJsZXM8L3N0 cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+CiAgICAgICA8ZW50cnk+cHVibGljYXRpb25zIGFu ZCB0aGVpciBhc3NvY2lhdGVkIHRhYmxlczwvZW50cnk+CkBAIC0xMTQyMyw2ICsxMTQzOCw3 MiBAQCBTRUxFQ1QgKiBGUk9NIHBnX2xvY2tzIHBsIExFRlQgSk9JTiBwZ19wcmVwYXJlZF94 YWN0cyBwcHgKIAogIDwvc2VjdDE+CiAKKyA8c2VjdDEgaWQ9InZpZXctcGctcHVibGljYXRp b24tc2VxdWVuY2VzIj4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3B1YmxpY2F0aW9uX3Nl cXVlbmNlczwvc3RydWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRleHRlcm0gem9uZT0idmll dy1wZy1wdWJsaWNhdGlvbi1zZXF1ZW5jZXMiPgorICAgPHByaW1hcnk+cGdfcHVibGljYXRp b25fc2VxdWVuY2VzPC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8cGFyYT4KKyAg IFRoZSB2aWV3IDxzdHJ1Y3RuYW1lPnBnX3B1YmxpY2F0aW9uX3NlcXVlbmNlczwvc3RydWN0 bmFtZT4gcHJvdmlkZXMKKyAgIGluZm9ybWF0aW9uIGFib3V0IHRoZSBtYXBwaW5nIGJldHdl ZW4gcHVibGljYXRpb25zIGFuZCB0aGUgc2VxdWVuY2VzIHRoZXkKKyAgIGNvbnRhaW4uICBV bmxpa2UgdGhlIHVuZGVybHlpbmcgY2F0YWxvZworICAgPGxpbmsgbGlua2VuZD0iY2F0YWxv Zy1wZy1wdWJsaWNhdGlvbi1yZWwiPjxzdHJ1Y3RuYW1lPnBnX3B1YmxpY2F0aW9uX3JlbDwv c3RydWN0bmFtZT48L2xpbms+LAorICAgdGhpcyB2aWV3IGV4cGFuZHMKKyAgIHB1YmxpY2F0 aW9ucyBkZWZpbmVkIGFzIDxsaXRlcmFsPkZPUiBBTEwgU0VRVUVOQ0VTPC9saXRlcmFsPiwg c28gZm9yIHN1Y2gKKyAgIHB1YmxpY2F0aW9ucyB0aGVyZSB3aWxsIGJlIGEgcm93IGZvciBl YWNoIGVsaWdpYmxlIHNlcXVlbmNlLgorICA8L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRp dGxlPjxzdHJ1Y3RuYW1lPnBnX3B1YmxpY2F0aW9uX3NlcXVlbmNlczwvc3RydWN0bmFtZT4g Q29sdW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4K KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnB1 Ym5hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5uYW1lPC90eXBlPgorICAgICAgIChyZWZlcmVu Y2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctcHVibGljYXRpb24iPjxzdHJ1Y3RuYW1l PnBnX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPnB1Ym5h bWU8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg IE5hbWUgb2YgcHVibGljYXRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+c2NoZW1hbmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICAg KHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1uYW1lc3BhY2UiPjxzdHJ1 Y3RuYW1lPnBnX25hbWVzcGFjZTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5u c3BuYW1lPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICBOYW1lIG9mIHNjaGVtYSBjb250YWluaW5nIHNlcXVlbmNlCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPnNlcXVlbmNlbmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBl Pm5hbWU8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxv Zy1wZy1jbGFzcyI+PHN0cnVjdG5hbWU+cGdfY2xhc3M8L3N0cnVjdG5hbWU+PC9saW5rPi48 c3RydWN0ZmllbGQ+cmVsbmFtZTwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiBzZXF1ZW5jZQorICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJs ZT4KKyA8L3NlY3QxPgorCiAgPHNlY3QxIGlkPSJ2aWV3LXBnLXB1YmxpY2F0aW9uLXRhYmxl cyI+CiAgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19wdWJsaWNhdGlvbl90YWJsZXM8L3N0cnVj dG5hbWU+PC90aXRsZT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNn bWwgYi9kb2Mvc3JjL3NnbWwvcHJvdG9jb2wuc2dtbAppbmRleCA5MTc4Yzc3OWJhOS4uNDUw N2M0Y2I3OTEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sCkBAIC03MDU1LDYgKzcwNTUsMTI1IEBAIFJl bGF0aW9uCiA8L2xpc3RpdGVtPgogPC92YXJsaXN0ZW50cnk+CiAKKzx2YXJsaXN0ZW50cnkg aWQ9InByb3RvY29sLWxvZ2ljYWxyZXAtbWVzc2FnZS1mb3JtYXRzLVNlcXVlbmNlIj4KKzx0 ZXJtPgorU2VxdWVuY2UKKzwvdGVybT4KKzxsaXN0aXRlbT4KKzxwYXJhPgorCis8dmFyaWFi bGVsaXN0PgorPHZhcmxpc3RlbnRyeT4KKzx0ZXJtPgorICAgICAgICBCeXRlMSgnWCcpCis8 L3Rlcm0+Cis8bGlzdGl0ZW0+Cis8cGFyYT4KKyAgICAgICAgICAgICAgICBJZGVudGlmaWVz IHRoZSBtZXNzYWdlIGFzIGEgc2VxdWVuY2UgbWVzc2FnZS4KKzwvcGFyYT4KKzwvbGlzdGl0 ZW0+Cis8L3Zhcmxpc3RlbnRyeT4KKzx2YXJsaXN0ZW50cnk+Cis8dGVybT4KKyAgICAgICAg SW50MzIgKFRyYW5zYWN0aW9uSWQpCis8L3Rlcm0+Cis8bGlzdGl0ZW0+Cis8cGFyYT4KKyAg ICAgICAgICAgICAgIFhpZCBvZiB0aGUgdHJhbnNhY3Rpb24gKG9ubHkgcHJlc2VudCBmb3Ig c3RyZWFtZWQgdHJhbnNhY3Rpb25zKS4KKyAgICAgICAgICAgICAgIFRoaXMgZmllbGQgaXMg YXZhaWxhYmxlIHNpbmNlIHByb3RvY29sIHZlcnNpb24gMi4KKzwvcGFyYT4KKzwvbGlzdGl0 ZW0+Cis8L3Zhcmxpc3RlbnRyeT4KKzx2YXJsaXN0ZW50cnk+Cis8dGVybT4KKyAgICAgICAg SW50OCgwKQorPC90ZXJtPgorPGxpc3RpdGVtPgorPHBhcmE+CisgICAgICAgICAgICAgICAg RmxhZ3M7IGN1cnJlbnRseSB1bnVzZWQuCis8L3BhcmE+Cis8L2xpc3RpdGVtPgorPC92YXJs aXN0ZW50cnk+Cis8dmFybGlzdGVudHJ5PgorPHRlcm0+CisgICAgICAgIEludDY0IChYTG9n UmVjUHRyKQorPC90ZXJtPgorPGxpc3RpdGVtPgorPHBhcmE+CisgICAgICAgICAgICAgICAg VGhlIExTTiBvZiB0aGUgc2VxdWVuY2UgaW5jcmVtZW50LgorPC9wYXJhPgorPC9saXN0aXRl bT4KKzwvdmFybGlzdGVudHJ5PgorPHZhcmxpc3RlbnRyeT4KKzx0ZXJtPgorICAgICAgICBT dHJpbmcKKzwvdGVybT4KKzxsaXN0aXRlbT4KKzxwYXJhPgorICAgICAgICAgICAgICAgIE5h bWVzcGFjZSAoZW1wdHkgc3RyaW5nIGZvciA8bGl0ZXJhbD5wZ19jYXRhbG9nPC9saXRlcmFs PikuCis8L3BhcmE+Cis8L2xpc3RpdGVtPgorPC92YXJsaXN0ZW50cnk+Cis8dmFybGlzdGVu dHJ5PgorPHRlcm0+CisgICAgICAgIFN0cmluZworPC90ZXJtPgorPGxpc3RpdGVtPgorPHBh cmE+CisgICAgICAgICAgICAgICAgUmVsYXRpb24gbmFtZS4KKzwvcGFyYT4KKzwvbGlzdGl0 ZW0+Cis8L3Zhcmxpc3RlbnRyeT4KKworPHZhcmxpc3RlbnRyeT4KKzx0ZXJtPgorICAgICAg ICBJbnQ4Cis8L3Rlcm0+Cis8bGlzdGl0ZW0+Cis8cGFyYT4KKyAgICAgICAgICAgICAgICAx IGlmIHRoZSBzZXF1ZW5jZSB1cGRhdGUgaXMgdHJhbnNhY3Rpb25zLCAwIG90aGVyd2lzZS4K KzwvcGFyYT4KKzwvbGlzdGl0ZW0+Cis8L3Zhcmxpc3RlbnRyeT4KKworPHZhcmxpc3RlbnRy eT4KKzx0ZXJtPgorICAgICAgICBJbnQ2NAorPC90ZXJtPgorPGxpc3RpdGVtPgorPHBhcmE+ CisgICAgICAgICAgICAgICAgPHN0cnVjdGZpZWxkPmxhc3RfdmFsdWU8L3N0cnVjdGZpZWxk PiB2YWx1ZSBvZiB0aGUgc2VxdWVuY2UuCis8L3BhcmE+Cis8L2xpc3RpdGVtPgorPC92YXJs aXN0ZW50cnk+CisKKzx2YXJsaXN0ZW50cnk+Cis8dGVybT4KKyAgICAgICAgSW50NjQKKzwv dGVybT4KKzxsaXN0aXRlbT4KKzxwYXJhPgorICAgICAgICAgICAgICAgIDxzdHJ1Y3RmaWVs ZD5sb2dfY250PC9zdHJ1Y3RmaWVsZD4gdmFsdWUgb2YgdGhlIHNlcXVlbmNlLgorPC9wYXJh PgorPC9saXN0aXRlbT4KKzwvdmFybGlzdGVudHJ5PgorCis8dmFybGlzdGVudHJ5PgorPHRl cm0+CisgICAgICAgIEludDgKKzwvdGVybT4KKzxsaXN0aXRlbT4KKzxwYXJhPgorICAgICAg ICAgICAgICAgIDxzdHJ1Y3RmaWVsZD5pc19jYWxsZWQ8L3N0cnVjdGZpZWxkPiB2YWx1ZSBv ZiB0aGUgc2VxdWVuY2UuCis8L3BhcmE+Cis8L2xpc3RpdGVtPgorPC92YXJsaXN0ZW50cnk+ CisKKzwvdmFyaWFibGVsaXN0PgorPC9wYXJhPgorPC9saXN0aXRlbT4KKzwvdmFybGlzdGVu dHJ5PgorCiA8dmFybGlzdGVudHJ5IGlkPSJwcm90b2NvbC1sb2dpY2FscmVwLW1lc3NhZ2Ut Zm9ybWF0cy1UeXBlIj4KIDx0ZXJtPgogVHlwZQpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9w dWJsaWNhdGlvbi5zZ21sCmluZGV4IDMyYjc1ZjZjNzhlLi41ZGFjYjczMmI2OSAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbApAQCAtMzEsNyArMzEsOSBA QCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFt ZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cgogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4g aXMgb25lIG9mOjwvcGhyYXNlPgogCiAgICAgVEFCTEUgWyBPTkxZIF0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICogXSBbIFdI RVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxh Y2VhYmxlPiApIF0gWywgLi4uIF0KKyAgICBTRVFVRU5DRSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+c2VxdWVuY2VfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdCiAgICAg QUxMIFRBQkxFUyBJTiBTQ0hFTUEgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfU0NIRU1BIH0gWywgLi4uIF0K KyAgICBBTEwgU0VRVUVOQ0VTIElOIFNDSEVNQSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9TQ0hFTUEgfSBb LCAuLi4gXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgogCkBAIC01OCw3ICs2 MCwxOCBAQCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cgogICA8L3BhcmE+CiAKICAgPHBh cmE+Ci0gICBUaGUgZm91cnRoIHZhcmlhbnQgb2YgdGhpcyBjb21tYW5kIGxpc3RlZCBpbiB0 aGUgc3lub3BzaXMgY2FuIGNoYW5nZQorICAgVGhlIG5leHQgdGhyZWUgdmFyaWFudHMgY2hh bmdlIHdoaWNoIHNlcXVlbmNlcyBhcmUgcGFydCBvZiB0aGUgcHVibGljYXRpb24uCisgICBU aGUgPGxpdGVyYWw+U0VUIFNFUVVFTkNFPC9saXRlcmFsPiBjbGF1c2Ugd2lsbCByZXBsYWNl IHRoZSBsaXN0IG9mIHNlcXVlbmNlcworICAgaW4gdGhlIHB1YmxpY2F0aW9uIHdpdGggdGhl IHNwZWNpZmllZCBvbmUuICBUaGUgPGxpdGVyYWw+QUREIFNFUVVFTkNFPC9saXRlcmFsPgor ICAgYW5kIDxsaXRlcmFsPkRST1AgU0VRVUVOQ0U8L2xpdGVyYWw+IGNsYXVzZXMgd2lsbCBh ZGQgYW5kIHJlbW92ZSBvbmUgb3IgbW9yZQorICAgc2VxdWVuY2VzIGZyb20gdGhlIHB1Ymxp Y2F0aW9uLiAgTm90ZSB0aGF0IGFkZGluZyBzZXF1ZW5jZXMgdG8gYSBwdWJsaWNhdGlvbgor ICAgdGhhdCBpcyBhbHJlYWR5IHN1YnNjcmliZWQgdG8gd2lsbCByZXF1aXJlIGEgPGxpdGVy YWw+QUxURVIgU1VCU0NSSVBUSU9OCisgICAuLi4gUkVGUkVTSCBQVUJMSUNBVElPTjwvbGl0 ZXJhbD4gYWN0aW9uIG9uIHRoZSBzdWJzY3JpYmluZyBzaWRlIGluIG9yZGVyCisgICB0byBi ZWNvbWUgZWZmZWN0aXZlLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUgc2V2ZW50 aCB2YXJpYW50IG9mIHRoaXMgY29tbWFuZCBsaXN0ZWQgaW4gdGhlIHN5bm9wc2lzIGNhbiBj aGFuZ2UKICAgIGFsbCBvZiB0aGUgcHVibGljYXRpb24gcHJvcGVydGllcyBzcGVjaWZpZWQg aW4KICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbiIvPi4gIFByb3Bl cnRpZXMgbm90IG1lbnRpb25lZCBpbiB0aGUKICAgIGNvbW1hbmQgcmV0YWluIHRoZWlyIHBy ZXZpb3VzIHNldHRpbmdzLgpAQCAtMTIyLDYgKzEzNSwxNSBAQCBBTFRFUiBQVUJMSUNBVElP TiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJF TkFNRSBUTyA8cgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAg PHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+c2VxdWVuY2VfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4K KyAgICAgPHBhcmE+CisgICAgICBOYW1lIG9mIGFuIGV4aXN0aW5nIHNlcXVlbmNlLgorICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8 dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwgYi9k b2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCmluZGV4IDU4Yjc4YTk0 ZWFiLi43MWU5MThlOGU1OSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9z dWJzY3JpcHRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlw dGlvbi5zZ21sCkBAIC0xNDcsNyArMTQ3LDcgQEAgQUxURVIgU1VCU0NSSVBUSU9OIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRP IDwKICAgICA8bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgogICAgICAgRmV0Y2ggbWlzc2luZyB0 YWJsZSBpbmZvcm1hdGlvbiBmcm9tIHB1Ymxpc2hlci4gIFRoaXMgd2lsbCBzdGFydAotICAg ICAgcmVwbGljYXRpb24gb2YgdGFibGVzIHRoYXQgd2VyZSBhZGRlZCB0byB0aGUgc3Vic2Ny aWJlZC10byBwdWJsaWNhdGlvbnMKKyAgICAgIHJlcGxpY2F0aW9uIG9mIHRhYmxlcyBhbmQg c2VxdWVuY2VzIHRoYXQgd2VyZSBhZGRlZCB0byB0aGUgc3Vic2NyaWJlZC10byBwdWJsaWNh dGlvbnMKICAgICAgIHNpbmNlIDxjb21tYW5kPkNSRUFURSBTVUJTQ1JJUFRJT048L2NvbW1h bmQ+IG9yCiAgICAgICB0aGUgbGFzdCBpbnZvY2F0aW9uIG9mIDxjb21tYW5kPlJFRlJFU0gg UFVCTElDQVRJT048L2NvbW1hbmQ+LgogICAgICA8L3BhcmE+CkBAIC0xNjgsNiArMTY4LDcg QEAgQUxURVIgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5u YW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDwKICAgICAgICAgIDxwYXJhPgogICAgICAg ICAgIFByZXZpb3VzbHkgc3Vic2NyaWJlZCB0YWJsZXMgYXJlIG5vdCBjb3BpZWQsIGV2ZW4g aWYgYSB0YWJsZSdzIHJvdwogICAgICAgICAgIGZpbHRlciA8bGl0ZXJhbD5XSEVSRTwvbGl0 ZXJhbD4gY2xhdXNlIGhhcyBzaW5jZSBiZWVuIG1vZGlmaWVkLgorICAgICAgICAgIFByZXZp b3VzbHktc3Vic2NyaWJlZCBzZXF1ZW5jZXMgYXJlIG5vdCBjb3BpZWQgZWl0aGVyLgogICAg ICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgIDwvdmFybGlzdGVu dHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24u c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwKaW5kZXgg NDk3OWI5YjY0NmQuLmYzNTU1NDk5NjZkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X3B1YmxpY2F0aW9uLnNnbWwKQEAgLTIzLDEzICsyMywxNiBAQCBQb3N0Z3JlU1FMIGRvY3Vt ZW50YXRpb24KIDxzeW5vcHNpcz4KIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgWyBGT1IgQUxMIFRB QkxFUworICAgICAgfCBGT1IgQUxMIFNFUVVFTkNFUwogICAgICAgfCBGT1IgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+ IFssIC4uLiBdIF0KICAgICBbIFdJVEggKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cHVibGljYXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkgXQog CiA8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNh dGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpcyBvbmUgb2Y6PC9waHJhc2U+CiAKICAgICBU QUJMRSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFt ZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgXSBbLCAuLi4gXQorICAgIFNF UVVFTkNFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXF1ZW5jZV9uYW1lPC9y ZXBsYWNlYWJsZT4gWyAqIF0gWywgLi4uIF0KICAgICBBTEwgVEFCTEVTIElOIFNDSEVNQSB7 IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFi bGU+IHwgQ1VSUkVOVF9TQ0hFTUEgfSBbLCAuLi4gXQorICAgIEFMTCBTRVFVRU5DRVMgSU4g U0NIRU1BIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9y ZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1NDSEVNQSB9IFssIC4uLiBdCiA8L3N5bm9wc2lzPgog IDwvcmVmc3lub3BzaXNkaXY+CiAKQEAgLTEwNywyNyArMTEwLDQzIEBAIENSRUFURSBQVUJM SUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFi bGU+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlz dGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPkZPUiBTRVFVRU5DRTwvbGl0ZXJhbD48L3Rl cm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFNwZWNpZmllcyBhIGxp c3Qgb2Ygc2VxdWVuY2VzIHRvIGFkZCB0byB0aGUgcHVibGljYXRpb24uCisgICAgIDwvcGFy YT4KKworICAgICA8cGFyYT4KKyAgICAgIFNwZWNpZnlpbmcgYSBzZXF1ZW5jZSB0aGF0IGlz IHBhcnQgb2YgYSBzY2hlbWEgc3BlY2lmaWVkIGJ5IDxsaXRlcmFsPkZPUgorICAgICAgQUxM IFNFUVVFTkNFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IGlzIG5vdCBzdXBwb3J0ZWQuCisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2 YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVy YWw+PC90ZXJtPgorICAgIDx0ZXJtPjxsaXRlcmFsPkZPUiBBTEwgU0VRVUVOQ0VTPC9saXRl cmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgotICAgICAgTWFya3Mg dGhlIHB1YmxpY2F0aW9uIGFzIG9uZSB0aGF0IHJlcGxpY2F0ZXMgY2hhbmdlcyBmb3IgYWxs IHRhYmxlcyBpbgotICAgICAgdGhlIGRhdGFiYXNlLCBpbmNsdWRpbmcgdGFibGVzIGNyZWF0 ZWQgaW4gdGhlIGZ1dHVyZS4KKyAgICAgIE1hcmtzIHRoZSBwdWJsaWNhdGlvbiBhcyBvbmUg dGhhdCByZXBsaWNhdGVzIGNoYW5nZXMgZm9yIGFsbCB0YWJsZXMvc2VxdWVuY2VzIGluCisg ICAgICB0aGUgZGF0YWJhc2UsIGluY2x1ZGluZyB0YWJsZXMvc2VxdWVuY2VzIGNyZWF0ZWQg aW4gdGhlIGZ1dHVyZS4KICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zh cmxpc3RlbnRyeT4KIAogICAgPHZhcmxpc3RlbnRyeT4KICAgICA8dGVybT48bGl0ZXJhbD5G T1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+PC90ZXJtPgorICAgIDx0ZXJtPjxs aXRlcmFsPkZPUiBBTEwgU0VRVUVOQ0VTIElOIFNDSEVNQTwvbGl0ZXJhbD48L3Rlcm0+CiAg ICAgPGxpc3RpdGVtPgogICAgICA8cGFyYT4KLSAgICAgIE1hcmtzIHRoZSBwdWJsaWNhdGlv biBhcyBvbmUgdGhhdCByZXBsaWNhdGVzIGNoYW5nZXMgZm9yIGFsbCB0YWJsZXMgaW4KLSAg ICAgIHRoZSBzcGVjaWZpZWQgbGlzdCBvZiBzY2hlbWFzLCBpbmNsdWRpbmcgdGFibGVzIGNy ZWF0ZWQgaW4gdGhlIGZ1dHVyZS4KKyAgICAgIE1hcmtzIHRoZSBwdWJsaWNhdGlvbiBhcyBv bmUgdGhhdCByZXBsaWNhdGVzIGNoYW5nZXMgZm9yIGFsbCBzZXF1ZW5jZXMvdGFibGVzIGlu CisgICAgICB0aGUgc3BlY2lmaWVkIGxpc3Qgb2Ygc2NoZW1hcywgaW5jbHVkaW5nIHNlcXVl bmNlcy90YWJsZXMgY3JlYXRlZCBpbiB0aGUgZnV0dXJlLgogICAgICA8L3BhcmE+CiAKICAg ICAgPHBhcmE+Ci0gICAgICBTcGVjaWZ5aW5nIGEgc2NoZW1hIGFsb25nIHdpdGggYSB0YWJs ZSB3aGljaCBiZWxvbmdzIHRvIHRoZSBzcGVjaWZpZWQKLSAgICAgIHNjaGVtYSB1c2luZyA8 bGl0ZXJhbD5GT1IgVEFCTEU8L2xpdGVyYWw+IGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICBT cGVjaWZ5aW5nIGEgc2NoZW1hIGFsb25nIHdpdGggYSBzZXF1ZW5jZS90YWJsZSB3aGljaCBi ZWxvbmdzIHRvIHRoZSBzcGVjaWZpZWQKKyAgICAgIHNjaGVtYSB1c2luZyA8bGl0ZXJhbD5G T1IgU0VRVUVOQ0U8L2xpdGVyYWw+LzxsaXRlcmFsPkZPUiBUQUJMRTwvbGl0ZXJhbD4gaXMg bm90IHN1cHBvcnRlZC4KICAgICAgPC9wYXJhPgogCiAgICAgIDxwYXJhPgpAQCAtMjAyLDEw ICsyMjEsOSBAQCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogICA8dGl0bGU+Tm90ZXM8L3RpdGxlPgogCiAg IDxwYXJhPgotICAgSWYgPGxpdGVyYWw+Rk9SIFRBQkxFPC9saXRlcmFsPiwgPGxpdGVyYWw+ Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+IG9yCi0gICA8bGl0ZXJhbD5GT1IgQUxMIFRBQkxF UyBJTiBTQ0hFTUE8L2xpdGVyYWw+IGFyZSBub3Qgc3BlY2lmaWVkLCB0aGVuIHRoZQotICAg cHVibGljYXRpb24gc3RhcnRzIG91dCB3aXRoIGFuIGVtcHR5IHNldCBvZiB0YWJsZXMuICBU aGF0IGlzIHVzZWZ1bCBpZgotICAgdGFibGVzIG9yIHNjaGVtYXMgYXJlIHRvIGJlIGFkZGVk IGxhdGVyLgorICAgSWYgPGxpdGVyYWw+Rk9SIFRBQkxFPC9saXRlcmFsPiwgPGxpdGVyYWw+ Rk9SIFNFUVVFTkNFPC9saXRlcmFsPiwgZXRjLiBpcworICAgbm90IHNwZWNpZmllZCwgdGhl biB0aGUgcHVibGljYXRpb24gc3RhcnRzIG91dCB3aXRoIGFuIGVtcHR5IHNldCBvZiB0YWJs ZXMKKyAgIGFuZCBzZXF1ZW5jZXMuICBUaGF0IGlzIHVzZWZ1bCBpZiBvYmplY3RzIGFyZSB0 byBiZSBhZGRlZCBsYXRlci4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpAQCAtMjIwLDEwICsy MzgsOSBAQCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogICA8L3BhcmE+CiAKICAgPHBhcmE+Ci0gICBUbyBh ZGQgYSB0YWJsZSB0byBhIHB1YmxpY2F0aW9uLCB0aGUgaW52b2tpbmcgdXNlciBtdXN0IGhh dmUgb3duZXJzaGlwCi0gICByaWdodHMgb24gdGhlIHRhYmxlLiAgVGhlIDxjb21tYW5kPkZP UiBBTEwgVEFCTEVTPC9jb21tYW5kPiBhbmQKLSAgIDxjb21tYW5kPkZPUiBBTEwgVEFCTEVT IElOIFNDSEVNQTwvY29tbWFuZD4gY2xhdXNlcyByZXF1aXJlIHRoZSBpbnZva2luZwotICAg dXNlciB0byBiZSBhIHN1cGVydXNlci4KKyAgIFRvIGFkZCBhIHRhYmxlIG9yIGEgc2VxdWVu Y2UgdG8gYSBwdWJsaWNhdGlvbiwgdGhlIGludm9raW5nIHVzZXIgbXVzdAorICAgaGF2ZSBv d25lcnNoaXAgcmlnaHRzIG9uIHRoZSBvYmplY3QuICBUaGUgPGNvbW1hbmQ+Rk9SIEFMTCAu Li48L2NvbW1hbmQ+CisgICBjbGF1c2VzIHJlcXVpcmUgdGhlIGludm9raW5nIHVzZXIgdG8g YmUgYSBzdXBlcnVzZXIuCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9vYmplY3RhZGRyZXNzLmMKaW5kZXggZjMwYzc0MmQ0OGYuLjFhMjUxMmM4YWE4IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYworKysgYi9zcmMv YmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwpAQCAtMTk1OCwxMiArMTk1OCwxNCBA QCBnZXRfb2JqZWN0X2FkZHJlc3NfcHVibGljYXRpb25fc2NoZW1hKExpc3QgKm9iamVjdCwg Ym9vbCBtaXNzaW5nX29rKQogCWNoYXIJICAgKnB1Ym5hbWU7CiAJY2hhcgkgICAqc2NoZW1h bmFtZTsKIAlPaWQJCQlzY2hlbWFpZDsKKwljaGFyCSAgICpvYmp0eXBlOwogCiAJT2JqZWN0 QWRkcmVzc1NldChhZGRyZXNzLCBQdWJsaWNhdGlvbk5hbWVzcGFjZVJlbGF0aW9uSWQsIElu dmFsaWRPaWQpOwogCiAJLyogRmV0Y2ggc2NoZW1hIG5hbWUgYW5kIHB1YmxpY2F0aW9uIG5h bWUgZnJvbSBpbnB1dCBsaXN0ICovCiAJc2NoZW1hbmFtZSA9IHN0clZhbChsaW5pdGlhbChv YmplY3QpKTsKIAlwdWJuYW1lID0gc3RyVmFsKGxzZWNvbmQob2JqZWN0KSk7CisJb2JqdHlw ZSA9IHN0clZhbChsdGhpcmQob2JqZWN0KSk7CiAKIAlzY2hlbWFpZCA9IGdldF9uYW1lc3Bh Y2Vfb2lkKHNjaGVtYW5hbWUsIG1pc3Npbmdfb2spOwogCWlmICghT2lkSXNWYWxpZChzY2hl bWFpZCkpCkBAIC0xOTc2LDEwICsxOTc4LDEyIEBAIGdldF9vYmplY3RfYWRkcmVzc19wdWJs aWNhdGlvbl9zY2hlbWEoTGlzdCAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAKIAkvKiBG aW5kIHRoZSBwdWJsaWNhdGlvbiBzY2hlbWEgbWFwcGluZyBpbiBzeXNjYWNoZSAqLwogCWFk ZHJlc3Mub2JqZWN0SWQgPQotCQlHZXRTeXNDYWNoZU9pZDIoUFVCTElDQVRJT05OQU1FU1BB Q0VNQVAsCisJCUdldFN5c0NhY2hlT2lkMyhQVUJMSUNBVElPTk5BTUVTUEFDRU1BUCwKIAkJ CQkJCUFudW1fcGdfcHVibGljYXRpb25fbmFtZXNwYWNlX29pZCwKIAkJCQkJCU9iamVjdElk R2V0RGF0dW0oc2NoZW1haWQpLAotCQkJCQkJT2JqZWN0SWRHZXREYXR1bShwdWItPm9pZCkp OworCQkJCQkJT2JqZWN0SWRHZXREYXR1bShwdWItPm9pZCksCisJCQkJCQlDaGFyR2V0RGF0 dW0ob2JqdHlwZVswXSkpOworCiAJaWYgKCFPaWRJc1ZhbGlkKGFkZHJlc3Mub2JqZWN0SWQp ICYmICFtaXNzaW5nX29rKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNP REVfVU5ERUZJTkVEX09CSkVDVCksCkBAIC0yMjYwLDcgKzIyNjQsNiBAQCBwZ19nZXRfb2Jq ZWN0X2FkZHJlc3MoUEdfRlVOQ1RJT05fQVJHUykKIAkJY2FzZSBPQkpFQ1RfRE9NQ09OU1RS QUlOVDoKIAkJY2FzZSBPQkpFQ1RfQ0FTVDoKIAkJY2FzZSBPQkpFQ1RfVVNFUl9NQVBQSU5H OgotCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9OQU1FU1BBQ0U6CiAJCWNhc2UgT0JKRUNU X1BVQkxJQ0FUSU9OX1JFTDoKIAkJY2FzZSBPQkpFQ1RfREVGQUNMOgogCQljYXNlIE9CSkVD VF9UUkFOU0ZPUk06CkBAIC0yMjg1LDYgKzIyODgsNyBAQCBwZ19nZXRfb2JqZWN0X2FkZHJl c3MoUEdfRlVOQ1RJT05fQVJHUykKIAkJCS8qIGZhbGwgdGhyb3VnaCB0byBjaGVjayBhcmdz IGxlbmd0aCAqLwogCQkJLyogRkFMTFRIUk9VR0ggKi8KIAkJY2FzZSBPQkpFQ1RfT1BFUkFU T1I6CisJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OX05BTUVTUEFDRToKIAkJCWlmIChsaXN0 X2xlbmd0aChhcmdzKSAhPSAyKQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJyY29k ZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKQEAgLTIzNTUsNiArMjM1OSw4 IEBAIHBnX2dldF9vYmplY3RfYWRkcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCQkJb2Jqbm9k ZSA9IChOb2RlICopIGxpc3RfbWFrZTIobmFtZSwgbGluaXRpYWwoYXJncykpOwogCQkJYnJl YWs7CiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OX05BTUVTUEFDRToKKwkJCW9iam5vZGUg PSAoTm9kZSAqKSBsaXN0X21ha2UzKGxpbml0aWFsKG5hbWUpLCBsaW5pdGlhbChhcmdzKSwg bHNlY29uZChhcmdzKSk7CisJCQlicmVhazsKIAkJY2FzZSBPQkpFQ1RfVVNFUl9NQVBQSU5H OgogCQkJb2Jqbm9kZSA9IChOb2RlICopIGxpc3RfbWFrZTIobGluaXRpYWwobmFtZSksIGxp bml0aWFsKGFyZ3MpKTsKIAkJCWJyZWFrOwpAQCAtMjkwOSwxMSArMjkxNSwxMiBAQCBnZXRf Y2F0YWxvZ19vYmplY3RfYnlfb2lkKFJlbGF0aW9uIGNhdGFsb2csIEF0dHJOdW1iZXIgb2lk Y29sLCBPaWQgb2JqZWN0SWQpCiAgKgogICogR2V0IHB1YmxpY2F0aW9uIG5hbWUgYW5kIHNj aGVtYSBuYW1lIGZyb20gdGhlIG9iamVjdCBhZGRyZXNzIGludG8gcHVibmFtZSBhbmQKICAq IG5zcG5hbWUuIEJvdGggcHVibmFtZSBhbmQgbnNwbmFtZSBhcmUgcGFsbG9jJ2Qgc3RyaW5n cyB3aGljaCB3aWxsIGJlIGZyZWVkIGJ5Ci0gKiB0aGUgY2FsbGVyLgorICogdGhlIGNhbGxl ci4gVGhlIGxhc3QgcGFyYW1ldGVyIHNwZWNpZmllcyB3aGljaCBvYmplY3QgdHlwZSBpcyBp bmNsdWRlZCBmcm9tCisgKiB0aGUgc2NoZW1hLgogICovCiBzdGF0aWMgYm9vbAogZ2V0UHVi bGljYXRpb25TY2hlbWFJbmZvKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBt aXNzaW5nX29rLAotCQkJCQkJIGNoYXIgKipwdWJuYW1lLCBjaGFyICoqbnNwbmFtZSkKKwkJ CQkJCSBjaGFyICoqcHVibmFtZSwgY2hhciAqKm5zcG5hbWUsIGNoYXIgKipvYmp0eXBlKQog ewogCUhlYXBUdXBsZQl0dXA7CiAJRm9ybV9wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UgcG5m b3JtOwpAQCAtMjk0OSw2ICsyOTU2LDEzIEBAIGdldFB1YmxpY2F0aW9uU2NoZW1hSW5mbyhj b25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaywKIAkJcmV0dXJu IGZhbHNlOwogCX0KIAorCS8qCisJICogVGhlIHR5cGUgaXMgYWx3YXlzIGEgc2luZ2xlIGNo YXJhY3RlciwgYnV0IHdlIG5lZWQgdG8gcGFzcyBpdCBhcyBhIHN0cmluZywKKwkgKiBzbyBh bGxvY2F0ZSB0d28gY2hhcmF0ZXJzIGFuZCBzZXQgdGhlIGZpcnN0IG9uZS4gVGhlIHNlY29u ZCBvbmUgaXMgXDAuCisJICovCisJKm9ianR5cGUgPSBwYWxsb2MwKDIpOworCSpvYmp0eXBl WzBdID0gcG5mb3JtLT5wbnR5cGU7CisKIAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKIAlyZXR1 cm4gdHJ1ZTsKIH0KQEAgLTM5ODEsMTUgKzM5OTUsMTcgQEAgZ2V0T2JqZWN0RGVzY3JpcHRp b24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQl7 CiAJCQkJY2hhcgkgICAqcHVibmFtZTsKIAkJCQljaGFyCSAgICpuc3BuYW1lOworCQkJCWNo YXIJICAgKm9ianR5cGU7CiAKIAkJCQlpZiAoIWdldFB1YmxpY2F0aW9uU2NoZW1hSW5mbyhv YmplY3QsIG1pc3Npbmdfb2ssCi0JCQkJCQkJCQkJCSAgJnB1Ym5hbWUsICZuc3BuYW1lKSkK KwkJCQkJCQkJCQkJICAmcHVibmFtZSwgJm5zcG5hbWUsICZvYmp0eXBlKSkKIAkJCQkJYnJl YWs7CiAKLQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsIF8oInB1YmxpY2F0aW9uIG9m IHNjaGVtYSAlcyBpbiBwdWJsaWNhdGlvbiAlcyIpLAotCQkJCQkJCQkgbnNwbmFtZSwgcHVi bmFtZSk7CisJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCBfKCJwdWJsaWNhdGlvbiBv ZiBzY2hlbWEgJXMgaW4gcHVibGljYXRpb24gJXMgdHlwZSAlcyIpLAorCQkJCQkJCQkgbnNw bmFtZSwgcHVibmFtZSwgb2JqdHlwZSk7CiAJCQkJcGZyZWUocHVibmFtZSk7CiAJCQkJcGZy ZWUobnNwbmFtZSk7CisJCQkJcGZyZWUob2JqdHlwZSk7CiAJCQkJYnJlYWs7CiAJCQl9CiAK QEAgLTU4MTIsMTggKzU4MjgsMjQgQEAgZ2V0T2JqZWN0SWRlbnRpdHlQYXJ0cyhjb25zdCBP YmplY3RBZGRyZXNzICpvYmplY3QsCiAJCQl7CiAJCQkJY2hhcgkgICAqcHVibmFtZTsKIAkJ CQljaGFyCSAgICpuc3BuYW1lOworCQkJCWNoYXIJICAgKm9ianR5cGU7CiAKIAkJCQlpZiAo IWdldFB1YmxpY2F0aW9uU2NoZW1hSW5mbyhvYmplY3QsIG1pc3Npbmdfb2ssICZwdWJuYW1l LAotCQkJCQkJCQkJCQkgICZuc3BuYW1lKSkKKwkJCQkJCQkJCQkJICAmbnNwbmFtZSwgJm9i anR5cGUpKQogCQkJCQlicmVhazsKLQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsICIl cyBpbiBwdWJsaWNhdGlvbiAlcyIsCi0JCQkJCQkJCSBuc3BuYW1lLCBwdWJuYW1lKTsKKwkJ CQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsICIlcyBpbiBwdWJsaWNhdGlvbiAlcyB0eXBl ICVzIiwKKwkJCQkJCQkJIG5zcG5hbWUsIHB1Ym5hbWUsIG9ianR5cGUpOwogCiAJCQkJaWYg KG9iamFyZ3MpCiAJCQkJCSpvYmphcmdzID0gbGlzdF9tYWtlMShwdWJuYW1lKTsKIAkJCQll bHNlCiAJCQkJCXBmcmVlKHB1Ym5hbWUpOwogCisJCQkJaWYgKG9iamFyZ3MpCisJCQkJCSpv YmphcmdzID0gbGFwcGVuZCgqb2JqYXJncywgb2JqdHlwZSk7CisJCQkJZWxzZQorCQkJCQlw ZnJlZShvYmp0eXBlKTsKKwogCQkJCWlmIChvYmpuYW1lKQogCQkJCQkqb2JqbmFtZSA9IGxp c3RfbWFrZTEobnNwbmFtZSk7CiAJCQkJZWxzZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJs aWNhdGlvbi5jCmluZGV4IDc4OWI4OTVkYjg5Li4xNDRkMWFkYTllMiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvcGdfcHVibGljYXRpb24uYwpAQCAtNTQsNyArNTQsOCBAQCBjaGVja19wdWJs aWNhdGlvbl9hZGRfcmVsYXRpb24oUmVsYXRpb24gdGFyZ2V0cmVsKQogewogCS8qIE11c3Qg YmUgYSByZWd1bGFyIG9yIHBhcnRpdGlvbmVkIHRhYmxlICovCiAJaWYgKFJlbGF0aW9uR2V0 Rm9ybSh0YXJnZXRyZWwpLT5yZWxraW5kICE9IFJFTEtJTkRfUkVMQVRJT04gJiYKLQkJUmVs YXRpb25HZXRGb3JtKHRhcmdldHJlbCktPnJlbGtpbmQgIT0gUkVMS0lORF9QQVJUSVRJT05F RF9UQUJMRSkKKwkJUmVsYXRpb25HZXRGb3JtKHRhcmdldHJlbCktPnJlbGtpbmQgIT0gUkVM S0lORF9QQVJUSVRJT05FRF9UQUJMRSAmJgorCQlSZWxhdGlvbkdldEZvcm0odGFyZ2V0cmVs KS0+cmVsa2luZCAhPSBSRUxLSU5EX1NFUVVFTkNFKQogCQllcmVwb3J0KEVSUk9SLAogCQkJ CShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAogCQkJCSBlcnJt c2coImNhbm5vdCBhZGQgcmVsYXRpb24gXCIlc1wiIHRvIHB1YmxpY2F0aW9uIiwKQEAgLTEz MSw3ICsxMzIsOCBAQCBzdGF0aWMgYm9vbAogaXNfcHVibGlzaGFibGVfY2xhc3MoT2lkIHJl bGlkLCBGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKQogewogCXJldHVybiAocmVsdHVwbGUtPnJl bGtpbmQgPT0gUkVMS0lORF9SRUxBVElPTiB8fAotCQkJcmVsdHVwbGUtPnJlbGtpbmQgPT0g UkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkgJiYKKwkJCXJlbHR1cGxlLT5yZWxraW5kID09 IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUgfHwKKwkJCXJlbHR1cGxlLT5yZWxraW5kID09 IFJFTEtJTkRfU0VRVUVOQ0UpICYmCiAJCSFJc0NhdGFsb2dSZWxhdGlvbk9pZChyZWxpZCkg JiYKIAkJcmVsdHVwbGUtPnJlbHBlcnNpc3RlbmNlID09IFJFTFBFUlNJU1RFTkNFX1BFUk1B TkVOVCAmJgogCQlyZWxpZCA+PSBGaXJzdE5vcm1hbE9iamVjdElkOwpAQCAtMTc2LDYgKzE3 OCw0NyBAQCBmaWx0ZXJfcGFydGl0aW9ucyhMaXN0ICpyZWxpZHMpCiAJcmV0dXJuIHJlc3Vs dDsKIH0KIAorLyogQ2hlY2sgdGhlIGNoYXJhY3RlciBpcyBhIHZhbGlkIG9iamVjdCB0eXBl IGZvciBzY2hlbWEgcHVibGljYXRpb24uICovCitzdGF0aWMgdm9pZAorQXNzZXJ0T2JqZWN0 VHlwZVZhbGlkKGNoYXIgb2JqZWN0VHlwZSkKK3sKKyNpZmRlZiBVU0VfQVNTRVJUX0NIRUNL SU5HCisJQXNzZXJ0KG9iamVjdFR5cGUgPT0gUFVCX09CSlRZUEVfU0VRVUVOQ0UgfHwgb2Jq ZWN0VHlwZSA9PSBQVUJfT0JKVFlQRV9UQUJMRSk7CisjZW5kaWYKK30KKworLyoKKyAqIERl dGVybWluZSBvYmplY3QgdHlwZSBnaXZlbiB0aGUgb2JqZWN0IHR5cGUgc2V0IGZvciBhIHNj aGVtYS4KKyAqLworY2hhcgorcHViX2dldF9vYmplY3RfdHlwZV9mb3JfcmVsa2luZChjaGFy IHJlbGtpbmQpCit7CisJLyogc2VxdWVuY2UgbWFwcyBkaXJlY3RseSB0byBzZXF1ZW5jZSBy ZWxraW5kICovCisJaWYgKHJlbGtpbmQgPT0gUkVMS0lORF9TRVFVRU5DRSkKKwkJcmV0dXJu IFBVQl9PQkpUWVBFX1NFUVVFTkNFOworCisJLyogZm9yIHRhYmxlLCB3ZSBtYXRjaCBlaXRo ZXIgcmVndWxhciBvciBwYXJ0aXRpb25lZCB0YWJsZSAqLworCWlmIChyZWxraW5kID09IFJF TEtJTkRfUkVMQVRJT04gfHwKKwkJcmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RB QkxFKQorCQlyZXR1cm4gUFVCX09CSlRZUEVfVEFCTEU7CisKKwlyZXR1cm4gUFVCX09CSlRZ UEVfVU5TVVBQT1JURUQ7Cit9CisKKy8qCisgKiBEZXRlcm1pbmUgaWYgcHVibGljYXRpb24g b2JqZWN0IHR5cGUgbWF0Y2hlcyB0aGUgcmVsa2luZC4KKyAqCisgKiBSZXR1cm5zIHRydWUg aWYgdGhlIHJlbGF0aW9uIG1hdGNoZXMgb2JqZWN0IHR5cGUgcmVwbGljYXRlZCBieSB0aGlz IHNjaGVtYSwKKyAqIGZhbHNlIG90aGVyd2lzZS4KKyAqLworc3RhdGljIGJvb2wKK3B1Yl9v YmplY3RfdHlwZV9tYXRjaGVzX3JlbGtpbmQoY2hhciBvYmplY3RUeXBlLCBjaGFyIHJlbGtp bmQpCit7CisJQXNzZXJ0T2JqZWN0VHlwZVZhbGlkKG9iamVjdFR5cGUpOworCisJcmV0dXJu IChwdWJfZ2V0X29iamVjdF90eXBlX2Zvcl9yZWxraW5kKHJlbGtpbmQpID09IG9iamVjdFR5 cGUpOworfQorCiAvKgogICogQW5vdGhlciB2YXJpYW50IG9mIHRoaXMsIHRha2luZyBhIFJl bGF0aW9uLgogICovCkBAIC0yMDUsNyArMjQ4LDcgQEAgaXNfc2NoZW1hX3B1YmxpY2F0aW9u KE9pZCBwdWJpZCkKIAkJCQlPYmplY3RJZEdldERhdHVtKHB1YmlkKSk7CiAKIAlzY2FuID0g c3lzdGFibGVfYmVnaW5zY2FuKHB1YnNjaHNyZWwsCi0JCQkJCQkJICBQdWJsaWNhdGlvbk5h bWVzcGFjZVBubnNwaWRQbnB1YmlkSW5kZXhJZCwKKwkJCQkJCQkgIFB1YmxpY2F0aW9uTmFt ZXNwYWNlUG5uc3BpZFBucHViaWRQbnR5cGVJbmRleElkLAogCQkJCQkJCSAgdHJ1ZSwgTlVM TCwgMSwgJnNjYW5rZXkpOwogCXR1cCA9IHN5c3RhYmxlX2dldG5leHQoc2Nhbik7CiAJcmVz dWx0ID0gSGVhcFR1cGxlSXNWYWxpZCh0dXApOwpAQCAtMzEzLDcgKzM1Niw5IEBAIEdldFRv cE1vc3RBbmNlc3RvckluUHVibGljYXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAqYW5jZXN0b3Jz LCBpbnQgKmFuY2VzdG9yX2xldmVsCiAJCX0KIAkJZWxzZQogCQl7Ci0JCQlhc2NoZW1hUHVi aWRzID0gR2V0U2NoZW1hUHVibGljYXRpb25zKGdldF9yZWxfbmFtZXNwYWNlKGFuY2VzdG9y KSk7CisJCQkvKiB3ZSBvbmx5IHNlYXJjaCBmb3IgYW5jZXN0b3JzIG9mIHRhYmxlcywgc28g UFVCX09CSlRZUEVfVEFCTEUgKi8KKwkJCWFzY2hlbWFQdWJpZHMgPSBHZXRTY2hlbWFQdWJs aWNhdGlvbnMoZ2V0X3JlbF9uYW1lc3BhY2UoYW5jZXN0b3IpLAorCQkJCQkJCQkJCQkJICBQ VUJfT0JKVFlQRV9UQUJMRSk7CiAJCQlpZiAobGlzdF9tZW1iZXJfb2lkKGFzY2hlbWFQdWJp ZHMsIHB1Ym9pZCkpCiAJCQl7CiAJCQkJdG9wbW9zdF9yZWxpZCA9IGFuY2VzdG9yOwpAQCAt NDM2LDcgKzQ4MSw3IEBAIHB1YmxpY2F0aW9uX2FkZF9yZWxhdGlvbihPaWQgcHViaWQsIFB1 YmxpY2F0aW9uUmVsSW5mbyAqcHJpLAogICogSW5zZXJ0IG5ldyBwdWJsaWNhdGlvbiAvIHNj aGVtYSBtYXBwaW5nLgogICovCiBPYmplY3RBZGRyZXNzCi1wdWJsaWNhdGlvbl9hZGRfc2No ZW1hKE9pZCBwdWJpZCwgT2lkIHNjaGVtYWlkLCBib29sIGlmX25vdF9leGlzdHMpCitwdWJs aWNhdGlvbl9hZGRfc2NoZW1hKE9pZCBwdWJpZCwgT2lkIHNjaGVtYWlkLCBjaGFyIG9iamVj dFR5cGUsIGJvb2wgaWZfbm90X2V4aXN0cykKIHsKIAlSZWxhdGlvbglyZWw7CiAJSGVhcFR1 cGxlCXR1cDsKQEAgLTQ0OCw2ICs0OTMsOCBAQCBwdWJsaWNhdGlvbl9hZGRfc2NoZW1hKE9p ZCBwdWJpZCwgT2lkIHNjaGVtYWlkLCBib29sIGlmX25vdF9leGlzdHMpCiAJT2JqZWN0QWRk cmVzcyBteXNlbGYsCiAJCQkJcmVmZXJlbmNlZDsKIAorCUFzc2VydE9iamVjdFR5cGVWYWxp ZChvYmplY3RUeXBlKTsKKwogCXJlbCA9IHRhYmxlX29wZW4oUHVibGljYXRpb25OYW1lc3Bh Y2VSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKIAogCS8qCkBAIC00NTUsOSArNTAy LDEwIEBAIHB1YmxpY2F0aW9uX2FkZF9zY2hlbWEoT2lkIHB1YmlkLCBPaWQgc2NoZW1haWQs IGJvb2wgaWZfbm90X2V4aXN0cykKIAkgKiBkdXBsaWNhdGVzLCBpdCdzIGhlcmUganVzdCB0 byBwcm92aWRlIG5pY2VyIGVycm9yIG1lc3NhZ2UgaW4gY29tbW9uCiAJICogY2FzZS4gVGhl IHJlYWwgcHJvdGVjdGlvbiBpcyB0aGUgdW5pcXVlIGtleSBvbiB0aGUgY2F0YWxvZy4KIAkg Ki8KLQlpZiAoU2VhcmNoU3lzQ2FjaGVFeGlzdHMyKFBVQkxJQ0FUSU9OTkFNRVNQQUNFTUFQ LAorCWlmIChTZWFyY2hTeXNDYWNoZUV4aXN0czMoUFVCTElDQVRJT05OQU1FU1BBQ0VNQVAs CiAJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKHNjaGVtYWlkKSwKLQkJCQkJCQkgIE9iamVj dElkR2V0RGF0dW0ocHViaWQpKSkKKwkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0ocHViaWQp LAorCQkJCQkJCSAgQ2hhckdldERhdHVtKG9iamVjdFR5cGUpKSkKIAl7CiAJCXRhYmxlX2Ns b3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CiAKQEAgLTQ4Myw2ICs1MzEsOCBAQCBwdWJs aWNhdGlvbl9hZGRfc2NoZW1hKE9pZCBwdWJpZCwgT2lkIHNjaGVtYWlkLCBib29sIGlmX25v dF9leGlzdHMpCiAJCU9iamVjdElkR2V0RGF0dW0ocHViaWQpOwogCXZhbHVlc1tBbnVtX3Bn X3B1YmxpY2F0aW9uX25hbWVzcGFjZV9wbm5zcGlkIC0gMV0gPQogCQlPYmplY3RJZEdldERh dHVtKHNjaGVtYWlkKTsKKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2Vf cG50eXBlIC0gMV0gPQorCQlDaGFyR2V0RGF0dW0ob2JqZWN0VHlwZSk7CiAKIAl0dXAgPSBo ZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNjcihyZWwpLCB2YWx1ZXMsIG51bGxzKTsK IApAQCAtNTA4LDcgKzU1OCw3IEBAIHB1YmxpY2F0aW9uX2FkZF9zY2hlbWEoT2lkIHB1Ymlk LCBPaWQgc2NoZW1haWQsIGJvb2wgaWZfbm90X2V4aXN0cykKIAkgKiBwdWJsaWNhdGlvbl9h ZGRfcmVsYXRpb24gZm9yIHdoeSB3ZSBuZWVkIHRvIGNvbnNpZGVyIGFsbCB0aGUKIAkgKiBw YXJ0aXRpb25zLgogCSAqLwotCXNjaGVtYVJlbHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlvblJl bGF0aW9ucyhzY2hlbWFpZCwKKwlzY2hlbWFSZWxzID0gR2V0U2NoZW1hUHVibGljYXRpb25S ZWxhdGlvbnMoc2NoZW1haWQsIG9iamVjdFR5cGUsCiAJCQkJCQkJCQkJCSAgIFBVQkxJQ0FU SU9OX1BBUlRfQUxMKTsKIAlJbnZhbGlkYXRlUHVibGljYXRpb25SZWxzKHNjaGVtYVJlbHMp OwogCkBAIC01NDIsMTEgKzU5MiwxNCBAQCBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhPaWQg cmVsaWQpCiAvKgogICogR2V0cyBsaXN0IG9mIHJlbGF0aW9uIG9pZHMgZm9yIGEgcHVibGlj YXRpb24uCiAgKgotICogVGhpcyBzaG91bGQgb25seSBiZSB1c2VkIEZPUiBUQUJMRSBwdWJs aWNhdGlvbnMsIHRoZSBGT1IgQUxMIFRBQkxFUwotICogc2hvdWxkIHVzZSBHZXRBbGxUYWJs ZXNQdWJsaWNhdGlvblJlbGF0aW9ucygpLgorICogVGhpcyBzaG91bGQgb25seSBiZSB1c2Vk IEZPUiBUQUJMRSAvIEZPUiBTRVFVRU5DRSBwdWJsaWNhdGlvbnMsIHRoZSBGT1IKKyAqIEFM TCBUQUJMRVMgLyBTRVFVRU5DRVMgc2hvdWxkIHVzZSBHZXRBbGxUYWJsZXNQdWJsaWNhdGlv blJlbGF0aW9ucygpCisgKiBhbmQgR2V0QWxsU2VxdWVuY2VzUHVibGljYXRpb25SZWxhdGlv bnMoKS4KKyAqCisgKiBYWFggcHViX3BhcnRvcHQgb25seSBtYXR0ZXJzIGZvciB0YWJsZXMs IG5vdCBzZXF1ZW5jZXMuCiAgKi8KIExpc3QgKgotR2V0UHVibGljYXRpb25SZWxhdGlvbnMo T2lkIHB1YmlkLCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQpCitHZXRQdWJsaWNh dGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIGNoYXIgb2JqZWN0VHlwZSwgUHVibGljYXRpb25Q YXJ0T3B0IHB1Yl9wYXJ0b3B0KQogewogCUxpc3QJICAgKnJlc3VsdDsKIAlSZWxhdGlvbglw dWJyZWxzcmVsOwpAQCAtNTU0LDYgKzYwNyw4IEBAIEdldFB1YmxpY2F0aW9uUmVsYXRpb25z KE9pZCBwdWJpZCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0KQogCVN5c1NjYW5E ZXNjIHNjYW47CiAJSGVhcFR1cGxlCXR1cDsKIAorCUFzc2VydE9iamVjdFR5cGVWYWxpZChv YmplY3RUeXBlKTsKKwogCS8qIEZpbmQgYWxsIHB1YmxpY2F0aW9ucyBhc3NvY2lhdGVkIHdp dGggdGhlIHJlbGF0aW9uLiAqLwogCXB1YnJlbHNyZWwgPSB0YWJsZV9vcGVuKFB1YmxpY2F0 aW9uUmVsUmVsYXRpb25JZCwgQWNjZXNzU2hhcmVMb2NrKTsKIApAQCAtNTY4LDExICs2MjMs MjkgQEAgR2V0UHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBQdWJsaWNhdGlvblBh cnRPcHQgcHViX3BhcnRvcHQpCiAJcmVzdWx0ID0gTklMOwogCXdoaWxlIChIZWFwVHVwbGVJ c1ZhbGlkKHR1cCA9IHN5c3RhYmxlX2dldG5leHQoc2NhbikpKQogCXsKKwkJY2hhcglyZWxr aW5kOwogCQlGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCBwdWJyZWw7CiAKIAkJcHVicmVsID0g KEZvcm1fcGdfcHVibGljYXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKTsKLQkJcmVzdWx0ID0g R2V0UHViUGFydGl0aW9uT3B0aW9uUmVsYXRpb25zKHJlc3VsdCwgcHViX3BhcnRvcHQsCi0J CQkJCQkJCQkJCQlwdWJyZWwtPnBycmVsaWQpOworCQlyZWxraW5kID0gZ2V0X3JlbF9yZWxr aW5kKHB1YnJlbC0+cHJyZWxpZCk7CisKKwkJLyoKKwkJICogSWYgdGhlIHJlbGtpbmQgZG9l cyBub3QgbWF0Y2ggdGhlIHJlcXVlc3RlZCBvYmplY3QgdHlwZSwgaWdub3JlIHRoZQorCQkg KiByZWxhdGlvbi4gRm9yIGV4YW1wbGUgd2UgbWlnaHQgYmUgaW50ZXJlc3RlZCBvbmx5IGlu IHNlcXVlbmNlcywgc28KKwkJICogd2UgaWdub3JlIHRhYmxlcy4KKwkJICovCisJCWlmICgh cHViX29iamVjdF90eXBlX21hdGNoZXNfcmVsa2luZChvYmplY3RUeXBlLCByZWxraW5kKSkK KwkJCWNvbnRpbnVlOworCisJCS8qCisJCSAqIFdlIGRvbid0IGhhdmUgcGFydGl0aW9uZWQg c2VxdWVuY2VzLCBzbyBqdXN0IGFkZCB0aGVtIHRvIHRoZSBsaXN0LgorCQkgKiBPdGhlcndp c2UgY29uc2lkZXIgYWRkaW5nIGFsbCBjaGlsZCByZWxhdGlvbnMsIGlmIHJlcXVlc3RlZC4K KwkJICovCisJCWlmIChyZWxraW5kID09IFJFTEtJTkRfU0VRVUVOQ0UpCisJCQlyZXN1bHQg PSBsYXBwZW5kX29pZChyZXN1bHQsIHB1YnJlbC0+cHJyZWxpZCk7CisJCWVsc2UKKwkJCXJl c3VsdCA9IEdldFB1YlBhcnRpdGlvbk9wdGlvblJlbGF0aW9ucyhyZXN1bHQsIHB1Yl9wYXJ0 b3B0LAorCQkJCQkJCQkJCQkJCXB1YnJlbC0+cHJyZWxpZCk7CiAJfQogCiAJc3lzdGFibGVf ZW5kc2NhbihzY2FuKTsKQEAgLTYyMiw2ICs2OTUsNDMgQEAgR2V0QWxsVGFibGVzUHVibGlj YXRpb25zKHZvaWQpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyoKKyAqIEdldHMgbGlzdCBv ZiBwdWJsaWNhdGlvbiBvaWRzIGZvciBwdWJsaWNhdGlvbnMgbWFya2VkIGFzIEZPUiBBTEwg U0VRVUVOQ0VTLgorICovCitMaXN0ICoKK0dldEFsbFNlcXVlbmNlc1B1YmxpY2F0aW9ucyh2 b2lkKQoreworCUxpc3QJICAgKnJlc3VsdDsKKwlSZWxhdGlvbglyZWw7CisJU2NhbktleURh dGEgc2NhbmtleTsKKwlTeXNTY2FuRGVzYyBzY2FuOworCUhlYXBUdXBsZQl0dXA7CisKKwkv KiBGaW5kIGFsbCBwdWJsaWNhdGlvbnMgdGhhdCBhcmUgbWFya2VkIGFzIGZvciBhbGwgc2Vx dWVuY2VzLiAqLworCXJlbCA9IHRhYmxlX29wZW4oUHVibGljYXRpb25SZWxhdGlvbklkLCBB Y2Nlc3NTaGFyZUxvY2spOworCisJU2NhbktleUluaXQoJnNjYW5rZXksCisJCQkJQW51bV9w Z19wdWJsaWNhdGlvbl9wdWJhbGxzZXF1ZW5jZXMsCisJCQkJQlRFcXVhbFN0cmF0ZWd5TnVt YmVyLCBGX0JPT0xFUSwKKwkJCQlCb29sR2V0RGF0dW0odHJ1ZSkpOworCisJc2NhbiA9IHN5 c3RhYmxlX2JlZ2luc2NhbihyZWwsIEludmFsaWRPaWQsIGZhbHNlLAorCQkJCQkJCSAgTlVM TCwgMSwgJnNjYW5rZXkpOworCisJcmVzdWx0ID0gTklMOworCXdoaWxlIChIZWFwVHVwbGVJ c1ZhbGlkKHR1cCA9IHN5c3RhYmxlX2dldG5leHQoc2NhbikpKQorCXsKKwkJT2lkCQkJb2lk ID0gKChGb3JtX3BnX3B1YmxpY2F0aW9uKSBHRVRTVFJVQ1QodHVwKSktPm9pZDsKKworCQly ZXN1bHQgPSBsYXBwZW5kX29pZChyZXN1bHQsIG9pZCk7CisJfQorCisJc3lzdGFibGVfZW5k c2NhbihzY2FuKTsKKwl0YWJsZV9jbG9zZShyZWwsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwly ZXR1cm4gcmVzdWx0OworfQorCiAvKgogICogR2V0cyBsaXN0IG9mIGFsbCByZWxhdGlvbiBw dWJsaXNoZWQgYnkgRk9SIEFMTCBUQUJMRVMgcHVibGljYXRpb24ocykuCiAgKgpAQCAtNjg4 LDI4ICs3OTgsMzggQEAgR2V0QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlvbnMoYm9vbCBw dWJ2aWFyb290KQogLyoKICAqIEdldHMgdGhlIGxpc3Qgb2Ygc2NoZW1hIG9pZHMgZm9yIGEg cHVibGljYXRpb24uCiAgKgotICogVGhpcyBzaG91bGQgb25seSBiZSB1c2VkIEZPUiBBTEwg VEFCTEVTIElOIFNDSEVNQSBwdWJsaWNhdGlvbnMuCisgKiBUaGlzIHNob3VsZCBvbmx5IGJl IHVzZWQgRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BIGFuZCBGT1IgQUxMIFNFUVVFTkNFUwor ICogcHVibGljYXRpb25zLgorICoKKyAqICdvYmplY3RUeXBlJyBkZXRlcm1pbmVzIHdoZXRo ZXIgdG8gZ2V0IEZPUiBUQUJMRSBvciBGT1IgU0VRVUVOQ0VTIHNjaGVtYXMKICAqLwogTGlz dCAqCi1HZXRQdWJsaWNhdGlvblNjaGVtYXMoT2lkIHB1YmlkKQorR2V0UHVibGljYXRpb25T Y2hlbWFzKE9pZCBwdWJpZCwgY2hhciBvYmplY3RUeXBlKQogewogCUxpc3QJICAgKnJlc3Vs dCA9IE5JTDsKIAlSZWxhdGlvbglwdWJzY2hzcmVsOwotCVNjYW5LZXlEYXRhIHNjYW5rZXk7 CisJU2NhbktleURhdGEgc2NhbmtleVsyXTsKIAlTeXNTY2FuRGVzYyBzY2FuOwogCUhlYXBU dXBsZQl0dXA7CiAKKwlBc3NlcnRPYmplY3RUeXBlVmFsaWQob2JqZWN0VHlwZSk7CisKIAkv KiBGaW5kIGFsbCBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24gKi8K IAlwdWJzY2hzcmVsID0gdGFibGVfb3BlbihQdWJsaWNhdGlvbk5hbWVzcGFjZVJlbGF0aW9u SWQsIEFjY2Vzc1NoYXJlTG9jayk7CiAKLQlTY2FuS2V5SW5pdCgmc2NhbmtleSwKKwlTY2Fu S2V5SW5pdCgmc2NhbmtleVswXSwKIAkJCQlBbnVtX3BnX3B1YmxpY2F0aW9uX25hbWVzcGFj ZV9wbnB1YmlkLAogCQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwgRl9PSURFUSwKIAkJCQlP YmplY3RJZEdldERhdHVtKHB1YmlkKSk7CiAKKwlTY2FuS2V5SW5pdCgmc2NhbmtleVsxXSwK KwkJCQlBbnVtX3BnX3B1YmxpY2F0aW9uX25hbWVzcGFjZV9wbnR5cGUsCisJCQkJQlRFcXVh bFN0cmF0ZWd5TnVtYmVyLCBGX0NIQVJFUSwKKwkJCQlDaGFyR2V0RGF0dW0ob2JqZWN0VHlw ZSkpOworCiAJc2NhbiA9IHN5c3RhYmxlX2JlZ2luc2NhbihwdWJzY2hzcmVsLAotCQkJCQkJ CSAgUHVibGljYXRpb25OYW1lc3BhY2VQbm5zcGlkUG5wdWJpZEluZGV4SWQsCi0JCQkJCQkJ ICB0cnVlLCBOVUxMLCAxLCAmc2NhbmtleSk7CisJCQkJCQkJICBQdWJsaWNhdGlvbk5hbWVz cGFjZVBubnNwaWRQbnB1YmlkUG50eXBlSW5kZXhJZCwKKwkJCQkJCQkgIHRydWUsIE5VTEws IDIsIHNjYW5rZXkpOwogCXdoaWxlIChIZWFwVHVwbGVJc1ZhbGlkKHR1cCA9IHN5c3RhYmxl X2dldG5leHQoc2NhbikpKQogCXsKIAkJRm9ybV9wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2Ug cHVic2NoOwpAQCAtNzI3LDE0ICs4NDcsMjYgQEAgR2V0UHVibGljYXRpb25TY2hlbWFzKE9p ZCBwdWJpZCkKIAogLyoKICAqIEdldHMgdGhlIGxpc3Qgb2YgcHVibGljYXRpb24gb2lkcyBh c3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpZWQgc2NoZW1hLgorICoKKyAqIG9iamVjdFR5cGUg c3BlY2lmaWVzIHdoZXRoZXIgd2UncmUgbG9va2luZyBmb3Igc2NoZW1hcyBpbmNsdWRpbmcg dGFibGVzIG9yCisgKiBzZXF1ZW5jZXMuCisgKgorICogTm90ZTogcmVsY2FjaGUgY2FsbHMg dGhpcyBmb3IgYWxsIG9iamVjdCB0eXBlcywgbm90IGp1c3QgdGFibGVzIGFuZCBzZXF1ZW5j ZXMuCisgKiBXaGljaCBpcyB3aHkgd2UgaGFuZGxlIHRoZSBQVUJfT0JKVFlQRV9VTlNVUFBP UlRFRCBvYmplY3QgdHlwZSB0b28uCiAgKi8KIExpc3QgKgotR2V0U2NoZW1hUHVibGljYXRp b25zKE9pZCBzY2hlbWFpZCkKK0dldFNjaGVtYVB1YmxpY2F0aW9ucyhPaWQgc2NoZW1haWQs IGNoYXIgb2JqZWN0VHlwZSkKIHsKIAlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CiAJQ2F0Q0xp c3QgICAqcHVic2NobGlzdDsKIAlpbnQJCQlpOwogCisJLyogdW5zdXBwb3J0ZWQgb2JqZWN0 IHR5cGUgKi8KKwlpZiAob2JqZWN0VHlwZSA9PSBQVUJfT0JKVFlQRV9VTlNVUFBPUlRFRCkK KwkJcmV0dXJuIHJlc3VsdDsKKworCUFzc2VydE9iamVjdFR5cGVWYWxpZChvYmplY3RUeXBl KTsKKwogCS8qIEZpbmQgYWxsIHB1YmxpY2F0aW9ucyBhc3NvY2lhdGVkIHdpdGggdGhlIHNj aGVtYSAqLwogCXB1YnNjaGxpc3QgPSBTZWFyY2hTeXNDYWNoZUxpc3QxKFBVQkxJQ0FUSU9O TkFNRVNQQUNFTUFQLAogCQkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0oc2NoZW1haWQpKTsK QEAgLTc0Miw2ICs4NzQsMTEgQEAgR2V0U2NoZW1hUHVibGljYXRpb25zKE9pZCBzY2hlbWFp ZCkKIAl7CiAJCUhlYXBUdXBsZQl0dXAgPSAmcHVic2NobGlzdC0+bWVtYmVyc1tpXS0+dHVw bGU7CiAJCU9pZAkJCXB1YmlkID0gKChGb3JtX3BnX3B1YmxpY2F0aW9uX25hbWVzcGFjZSkg R0VUU1RSVUNUKHR1cCkpLT5wbnB1YmlkOworCQljaGFyCQlwbnR5cGUgPSAoKEZvcm1fcGdf cHVibGljYXRpb25fbmFtZXNwYWNlKSBHRVRTVFJVQ1QodHVwKSktPnBudHlwZTsKKworCQkv KiBTa2lwIHNjaGVtYXMgcHVibGlzaGluZyBhIGRpZmZlcmVudCBvYmplY3QgdHlwZS4gKi8K KwkJaWYgKHBudHlwZSAhPSBvYmplY3RUeXBlKQorCQkJY29udGludWU7CiAKIAkJcmVzdWx0 ID0gbGFwcGVuZF9vaWQocmVzdWx0LCBwdWJpZCk7CiAJfQpAQCAtNzUzLDkgKzg5MCwxMyBA QCBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoT2lkIHNjaGVtYWlkKQogCiAvKgogICogR2V0IHRo ZSBsaXN0IG9mIHB1Ymxpc2hhYmxlIHJlbGF0aW9uIG9pZHMgZm9yIGEgc3BlY2lmaWVkIHNj aGVtYS4KKyAqCisgKiBvYmplY3RUeXBlIHNwZWNpZmllcyB3aGV0aGVyIHRoaXMgaXMgRk9S IEFMTCBUQUJMRVMgSU4gU0NIRU1BIG9yIEZPUiBBTEwKKyAqIFNFUVVFTkNFUyBJTiBTQ0hF TUEKICAqLwogTGlzdCAqCi1HZXRTY2hlbWFQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgc2No ZW1haWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCkKK0dldFNjaGVtYVB1Ymxp Y2F0aW9uUmVsYXRpb25zKE9pZCBzY2hlbWFpZCwgY2hhciBvYmplY3RUeXBlLAorCQkJCQkJ CSAgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0KQogewogCVJlbGF0aW9uCWNsYXNz UmVsOwogCVNjYW5LZXlEYXRhIGtleVsxXTsKQEAgLTc2NCw2ICs5MDUsNyBAQCBHZXRTY2hl bWFQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgc2NoZW1haWQsIFB1YmxpY2F0aW9uUGFydE9w dCBwdWJfcGFydG9wdCkKIAlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CiAKIAlBc3NlcnQoT2lk SXNWYWxpZChzY2hlbWFpZCkpOworCUFzc2VydE9iamVjdFR5cGVWYWxpZChvYmplY3RUeXBl KTsKIAogCWNsYXNzUmVsID0gdGFibGVfb3BlbihSZWxhdGlvblJlbGF0aW9uSWQsIEFjY2Vz c1NoYXJlTG9jayk7CiAKQEAgLTc4NCw5ICs5MjYsMTYgQEAgR2V0U2NoZW1hUHVibGljYXRp b25SZWxhdGlvbnMoT2lkIHNjaGVtYWlkLCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRv cHQpCiAJCQljb250aW51ZTsKIAogCQlyZWxraW5kID0gZ2V0X3JlbF9yZWxraW5kKHJlbGlk KTsKLQkJaWYgKHJlbGtpbmQgPT0gUkVMS0lORF9SRUxBVElPTikKLQkJCXJlc3VsdCA9IGxh cHBlbmRfb2lkKHJlc3VsdCwgcmVsaWQpOwotCQllbHNlIGlmIChyZWxraW5kID09IFJFTEtJ TkRfUEFSVElUSU9ORURfVEFCTEUpCisKKwkJLyogU2tpcCBpZiB0aGUgcmVsa2luZCBkb2Vz IG5vdCBtYXRjaCBGT1IgQUxMIFRBQkxFUyAvIFNFUVVFTkNFUy4gKi8KKwkJaWYgKCFwdWJf b2JqZWN0X3R5cGVfbWF0Y2hlc19yZWxraW5kKG9iamVjdFR5cGUsIHJlbGtpbmQpKQorCQkJ Y29udGludWU7CisKKwkJLyoKKwkJICogSWYgdGhlIG9iamVjdCBpcyBhIHBhcnRpdGlvbmVk IHRhYmxlLCBsb29rdXAgYWxsIHRoZSBjaGlsZCByZWxhdGlvbnMKKwkJICogKGlmIHJlcXVl c3RlZCkuIE90aGVyd2lzZSBqdXN0IGFkZCB0aGUgb2JqZWN0IHRvIHRoZSBsaXN0LgorCQkg Ki8KKwkJaWYgKHJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkKIAkJewog CQkJTGlzdAkgICAqcGFydGl0aW9ucmVscyA9IE5JTDsKIApAQCAtNzk5LDcgKzk0OCwxMSBA QCBHZXRTY2hlbWFQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgc2NoZW1haWQsIFB1YmxpY2F0 aW9uUGFydE9wdCBwdWJfcGFydG9wdCkKIAkJCQkJCQkJCQkJCQkJICAgcHViX3BhcnRvcHQs CiAJCQkJCQkJCQkJCQkJCSAgIHJlbEZvcm0tPm9pZCk7CiAJCQlyZXN1bHQgPSBsaXN0X2Nv bmNhdF91bmlxdWVfb2lkKHJlc3VsdCwgcGFydGl0aW9ucmVscyk7CisJCQljb250aW51ZTsK IAkJfQorCisJCS8qIG5vbi1wYXJ0aXRpb25lZCB0YWJsZXMgYW5kIHNlcXVlbmNlcyAqLwor CQlyZXN1bHQgPSBsYXBwZW5kX29pZChyZXN1bHQsIHJlbGlkKTsKIAl9CiAKIAl0YWJsZV9l bmRzY2FuKHNjYW4pOwpAQCAtODA5LDI3ICs5NjIsNjcgQEAgR2V0U2NoZW1hUHVibGljYXRp b25SZWxhdGlvbnMoT2lkIHNjaGVtYWlkLCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRv cHQpCiAKIC8qCiAgKiBHZXRzIHRoZSBsaXN0IG9mIGFsbCByZWxhdGlvbnMgcHVibGlzaGVk IGJ5IEZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQQotICogcHVibGljYXRpb24uCisgKiBvciBG T1IgQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEgcHVibGljYXRpb24uCiAgKi8KIExpc3QgKgot R2V0QWxsU2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBQdWJsaWNhdGlv blBhcnRPcHQgcHViX3BhcnRvcHQpCitHZXRBbGxTY2hlbWFQdWJsaWNhdGlvblJlbGF0aW9u cyhPaWQgcHViaWQsIGNoYXIgb2JqZWN0VHlwZSwKKwkJCQkJCQkJIFB1YmxpY2F0aW9uUGFy dE9wdCBwdWJfcGFydG9wdCkKIHsKIAlMaXN0CSAgICpyZXN1bHQgPSBOSUw7Ci0JTGlzdAkg ICAqcHVic2NoZW1hbGlzdCA9IEdldFB1YmxpY2F0aW9uU2NoZW1hcyhwdWJpZCk7CisJTGlz dAkgICAqcHVic2NoZW1hbGlzdCA9IEdldFB1YmxpY2F0aW9uU2NoZW1hcyhwdWJpZCwgb2Jq ZWN0VHlwZSk7CiAJTGlzdENlbGwgICAqY2VsbDsKIAorCUFzc2VydE9iamVjdFR5cGVWYWxp ZChvYmplY3RUeXBlKTsKKwogCWZvcmVhY2goY2VsbCwgcHVic2NoZW1hbGlzdCkKIAl7CiAJ CU9pZAkJCXNjaGVtYWlkID0gbGZpcnN0X29pZChjZWxsKTsKIAkJTGlzdAkgICAqc2NoZW1h UmVscyA9IE5JTDsKIAotCQlzY2hlbWFSZWxzID0gR2V0U2NoZW1hUHVibGljYXRpb25SZWxh dGlvbnMoc2NoZW1haWQsIHB1Yl9wYXJ0b3B0KTsKKwkJc2NoZW1hUmVscyA9IEdldFNjaGVt YVB1YmxpY2F0aW9uUmVsYXRpb25zKHNjaGVtYWlkLCBvYmplY3RUeXBlLAorCQkJCQkJCQkJ CQkJICAgcHViX3BhcnRvcHQpOwogCQlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQsIHNj aGVtYVJlbHMpOwogCX0KIAogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qCisgKiBHZXRzIGxp c3Qgb2YgYWxsIHJlbGF0aW9uIHB1Ymxpc2hlZCBieSBGT1IgQUxMIFNFUVVFTkNFUyBwdWJs aWNhdGlvbihzKS4KKyAqLworTGlzdCAqCitHZXRBbGxTZXF1ZW5jZXNQdWJsaWNhdGlvblJl bGF0aW9ucyh2b2lkKQoreworCVJlbGF0aW9uCWNsYXNzUmVsOworCVNjYW5LZXlEYXRhIGtl eVsxXTsKKwlUYWJsZVNjYW5EZXNjIHNjYW47CisJSGVhcFR1cGxlCXR1cGxlOworCUxpc3QJ ICAgKnJlc3VsdCA9IE5JTDsKKworCWNsYXNzUmVsID0gdGFibGVfb3BlbihSZWxhdGlvblJl bGF0aW9uSWQsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwlTY2FuS2V5SW5pdCgma2V5WzBdLAor CQkJCUFudW1fcGdfY2xhc3NfcmVsa2luZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIs IEZfQ0hBUkVRLAorCQkJCUNoYXJHZXREYXR1bShSRUxLSU5EX1NFUVVFTkNFKSk7CisKKwlz Y2FuID0gdGFibGVfYmVnaW5zY2FuX2NhdGFsb2coY2xhc3NSZWwsIDEsIGtleSk7CisKKwl3 aGlsZSAoKHR1cGxlID0gaGVhcF9nZXRuZXh0KHNjYW4sIEZvcndhcmRTY2FuRGlyZWN0aW9u KSkgIT0gTlVMTCkKKwl7CisJCUZvcm1fcGdfY2xhc3MgcmVsRm9ybSA9IChGb3JtX3BnX2Ns YXNzKSBHRVRTVFJVQ1QodHVwbGUpOworCQlPaWQJCQlyZWxpZCA9IHJlbEZvcm0tPm9pZDsK KworCQlpZiAoaXNfcHVibGlzaGFibGVfY2xhc3MocmVsaWQsIHJlbEZvcm0pKQorCQkJcmVz dWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCByZWxpZCk7CisJfQorCisJdGFibGVfZW5kc2Nh bihzY2FuKTsKKworCXRhYmxlX2Nsb3NlKGNsYXNzUmVsLCBBY2Nlc3NTaGFyZUxvY2spOwor CXJldHVybiByZXN1bHQ7Cit9CisKIC8qCiAgKiBHZXQgcHVibGljYXRpb24gdXNpbmcgb2lk CiAgKgpAQCAtODUyLDEwICsxMDQ1LDEyIEBAIEdldFB1YmxpY2F0aW9uKE9pZCBwdWJpZCkK IAlwdWItPm9pZCA9IHB1YmlkOwogCXB1Yi0+bmFtZSA9IHBzdHJkdXAoTmFtZVN0cihwdWJm b3JtLT5wdWJuYW1lKSk7CiAJcHViLT5hbGx0YWJsZXMgPSBwdWJmb3JtLT5wdWJhbGx0YWJs ZXM7CisJcHViLT5hbGxzZXF1ZW5jZXMgPSBwdWJmb3JtLT5wdWJhbGxzZXF1ZW5jZXM7CiAJ cHViLT5wdWJhY3Rpb25zLnB1Ymluc2VydCA9IHB1YmZvcm0tPnB1Ymluc2VydDsKIAlwdWIt PnB1YmFjdGlvbnMucHVidXBkYXRlID0gcHViZm9ybS0+cHVidXBkYXRlOwogCXB1Yi0+cHVi YWN0aW9ucy5wdWJkZWxldGUgPSBwdWJmb3JtLT5wdWJkZWxldGU7CiAJcHViLT5wdWJhY3Rp b25zLnB1YnRydW5jYXRlID0gcHViZm9ybS0+cHVidHJ1bmNhdGU7CisJcHViLT5wdWJhY3Rp b25zLnB1YnNlcXVlbmNlID0gcHViZm9ybS0+cHVic2VxdWVuY2U7CiAJcHViLT5wdWJ2aWFy b290ID0gcHViZm9ybS0+cHVidmlhcm9vdDsKIAogCVJlbGVhc2VTeXNDYWNoZSh0dXApOwpA QCAtOTY2LDEwICsxMTYxLDEyIEBAIHBnX2dldF9wdWJsaWNhdGlvbl90YWJsZXMoUEdfRlVO Q1RJT05fQVJHUykKIAkJCQkJICAgKnNjaGVtYXJlbGlkczsKIAogCQkJcmVsaWRzID0gR2V0 UHVibGljYXRpb25SZWxhdGlvbnMocHVibGljYXRpb24tPm9pZCwKKwkJCQkJCQkJCQkJIFBV Ql9PQkpUWVBFX1RBQkxFLAogCQkJCQkJCQkJCQkgcHVibGljYXRpb24tPnB1YnZpYXJvb3Qg PwogCQkJCQkJCQkJCQkgUFVCTElDQVRJT05fUEFSVF9ST09UIDoKIAkJCQkJCQkJCQkJIFBV QkxJQ0FUSU9OX1BBUlRfTEVBRik7CiAJCQlzY2hlbWFyZWxpZHMgPSBHZXRBbGxTY2hlbWFQ dWJsaWNhdGlvblJlbGF0aW9ucyhwdWJsaWNhdGlvbi0+b2lkLAorCQkJCQkJCQkJCQkJCQkJ UFVCX09CSlRZUEVfVEFCTEUsCiAJCQkJCQkJCQkJCQkJCQlwdWJsaWNhdGlvbi0+cHVidmlh cm9vdCA/CiAJCQkJCQkJCQkJCQkJCQlQVUJMSUNBVElPTl9QQVJUX1JPT1QgOgogCQkJCQkJ CQkJCQkJCQkJUFVCTElDQVRJT05fUEFSVF9MRUFGKTsKQEAgLTEwMDUsMyArMTIwMiw3MSBA QCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlTUkZf UkVUVVJOX0RPTkUoZnVuY2N0eCk7CiB9CisKKy8qCisgKiBSZXR1cm5zIE9pZHMgb2Ygc2Vx dWVuY2VzIGluIGEgcHVibGljYXRpb24uCisgKi8KK0RhdHVtCitwZ19nZXRfcHVibGljYXRp b25fc2VxdWVuY2VzKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJRnVuY0NhbGxDb250ZXh0ICpm dW5jY3R4OworCWNoYXIJICAgKnB1Ym5hbWUgPSB0ZXh0X3RvX2NzdHJpbmcoUEdfR0VUQVJH X1RFWFRfUFAoMCkpOworCVB1YmxpY2F0aW9uICpwdWJsaWNhdGlvbjsKKwlMaXN0CSAgICpz ZXF1ZW5jZXM7CisKKwkvKiBzdHVmZiBkb25lIG9ubHkgb24gdGhlIGZpcnN0IGNhbGwgb2Yg dGhlIGZ1bmN0aW9uICovCisJaWYgKFNSRl9JU19GSVJTVENBTEwoKSkKKwl7CisJCU1lbW9y eUNvbnRleHQgb2xkY29udGV4dDsKKworCQkvKiBjcmVhdGUgYSBmdW5jdGlvbiBjb250ZXh0 IGZvciBjcm9zcy1jYWxsIHBlcnNpc3RlbmNlICovCisJCWZ1bmNjdHggPSBTUkZfRklSU1RD QUxMX0lOSVQoKTsKKworCQkvKiBzd2l0Y2ggdG8gbWVtb3J5IGNvbnRleHQgYXBwcm9wcmlh dGUgZm9yIG11bHRpcGxlIGZ1bmN0aW9uIGNhbGxzICovCisJCW9sZGNvbnRleHQgPSBNZW1v cnlDb250ZXh0U3dpdGNoVG8oZnVuY2N0eC0+bXVsdGlfY2FsbF9tZW1vcnlfY3R4KTsKKwor CQlwdWJsaWNhdGlvbiA9IEdldFB1YmxpY2F0aW9uQnlOYW1lKHB1Ym5hbWUsIGZhbHNlKTsK KworCQkvKgorCQkgKiBQdWJsaWNhdGlvbnMgc3VwcG9ydCBwYXJ0aXRpb25lZCB0YWJsZXMs IGFsdGhvdWdoIGFsbCBjaGFuZ2VzIGFyZQorCQkgKiByZXBsaWNhdGVkIHVzaW5nIGxlYWYg cGFydGl0aW9uIGlkZW50aXR5IGFuZCBzY2hlbWEsIHNvIHdlIG9ubHkKKwkJICogbmVlZCB0 aG9zZS4KKwkJICovCisJCWlmIChwdWJsaWNhdGlvbi0+YWxsc2VxdWVuY2VzKQorCQkJc2Vx dWVuY2VzID0gR2V0QWxsU2VxdWVuY2VzUHVibGljYXRpb25SZWxhdGlvbnMoKTsKKwkJZWxz ZQorCQl7CisJCQlMaXN0CSAgICpyZWxpZHMsCisJCQkJCSAgICpzY2hlbWFyZWxpZHM7CisK KwkJCXJlbGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmxpY2F0aW9uLT5vaWQs CisJCQkJCQkJCQkJCSBQVUJfT0JKVFlQRV9TRVFVRU5DRSwKKwkJCQkJCQkJCQkJIHB1Ymxp Y2F0aW9uLT5wdWJ2aWFyb290ID8KKwkJCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRfUk9P VCA6CisJCQkJCQkJCQkJCSBQVUJMSUNBVElPTl9QQVJUX0xFQUYpOworCQkJc2NoZW1hcmVs aWRzID0gR2V0QWxsU2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMocHVibGljYXRpb24tPm9p ZCwKKwkJCQkJCQkJCQkJCQkJCVBVQl9PQkpUWVBFX1NFUVVFTkNFLAorCQkJCQkJCQkJCQkJ CQkJcHVibGljYXRpb24tPnB1YnZpYXJvb3QgPworCQkJCQkJCQkJCQkJCQkJUFVCTElDQVRJ T05fUEFSVF9ST09UIDoKKwkJCQkJCQkJCQkJCQkJCVBVQkxJQ0FUSU9OX1BBUlRfTEVBRik7 CisJCQlzZXF1ZW5jZXMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHJlbGlkcywgc2NoZW1h cmVsaWRzKTsKKwkJfQorCisJCWZ1bmNjdHgtPnVzZXJfZmN0eCA9ICh2b2lkICopIHNlcXVl bmNlczsKKworCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CisJfQorCisJ Lyogc3R1ZmYgZG9uZSBvbiBldmVyeSBjYWxsIG9mIHRoZSBmdW5jdGlvbiAqLworCWZ1bmNj dHggPSBTUkZfUEVSQ0FMTF9TRVRVUCgpOworCXNlcXVlbmNlcyA9IChMaXN0ICopIGZ1bmNj dHgtPnVzZXJfZmN0eDsKKworCWlmIChmdW5jY3R4LT5jYWxsX2NudHIgPCBsaXN0X2xlbmd0 aChzZXF1ZW5jZXMpKQorCXsKKwkJT2lkCQkJcmVsaWQgPSBsaXN0X250aF9vaWQoc2VxdWVu Y2VzLCBmdW5jY3R4LT5jYWxsX2NudHIpOworCisJCVNSRl9SRVRVUk5fTkVYVChmdW5jY3R4 LCBPYmplY3RJZEdldERhdHVtKHJlbGlkKSk7CisJfQorCisJU1JGX1JFVFVSTl9ET05FKGZ1 bmNjdHgpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmll d3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IGJi MWFjMzBjZDE5Li5lMmZjNzBlYTg4NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxv Zy9zeXN0ZW1fdmlld3Muc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3Zp ZXdzLnNxbApAQCAtMzc0LDYgKzM3NCwxNiBAQCBDUkVBVEUgVklFVyBwZ19wdWJsaWNhdGlv bl90YWJsZXMgQVMKICAgICAgICAgIHBnX2NsYXNzIEMgSk9JTiBwZ19uYW1lc3BhY2UgTiBP TiAoTi5vaWQgPSBDLnJlbG5hbWVzcGFjZSkKICAgICBXSEVSRSBDLm9pZCA9IEdQVC5yZWxp ZDsKIAorQ1JFQVRFIFZJRVcgcGdfcHVibGljYXRpb25fc2VxdWVuY2VzIEFTCisgICAgU0VM RUNUCisgICAgICAgIFAucHVibmFtZSBBUyBwdWJuYW1lLAorICAgICAgICBOLm5zcG5hbWUg QVMgc2NoZW1hbmFtZSwKKyAgICAgICAgQy5yZWxuYW1lIEFTIHNlcXVlbmNlbmFtZQorICAg IEZST00gcGdfcHVibGljYXRpb24gUCwKKyAgICAgICAgIExBVEVSQUwgcGdfZ2V0X3B1Ymxp Y2F0aW9uX3NlcXVlbmNlcyhQLnB1Ym5hbWUpIEdQUywKKyAgICAgICAgIHBnX2NsYXNzIEMg Sk9JTiBwZ19uYW1lc3BhY2UgTiBPTiAoTi5vaWQgPSBDLnJlbG5hbWVzcGFjZSkKKyAgICBX SEVSRSBDLm9pZCA9IEdQUy5yZWxpZDsKKwogQ1JFQVRFIFZJRVcgcGdfbG9ja3MgQVMKICAg ICBTRUxFQ1QgKiBGUk9NIHBnX2xvY2tfc3RhdHVzKCkgQVMgTDsKIApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwppbmRleCAxYWFkMmU3NjljYi4uOTI1MDVmNDY5 OWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5j CisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCkBAIC0xNiw2 ICsxNiw3IEBACiAKICNpbmNsdWRlICJhY2Nlc3MvZ2VuYW0uaCIKICNpbmNsdWRlICJhY2Nl c3MvaHR1cF9kZXRhaWxzLmgiCisjaW5jbHVkZSAiYWNjZXNzL3JlbGF0aW9uLmgiCiAjaW5j bHVkZSAiYWNjZXNzL3RhYmxlLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKICNpbmNs dWRlICJjYXRhbG9nL2NhdGFsb2cuaCIKQEAgLTY3LDE1ICs2OCwxNyBAQCB0eXBlZGVmIHN0 cnVjdCByZl9jb250ZXh0CiB9IHJmX2NvbnRleHQ7CiAKIHN0YXRpYyBMaXN0ICpPcGVuUmVs SWRMaXN0KExpc3QgKnJlbGlkcyk7Ci1zdGF0aWMgTGlzdCAqT3BlblRhYmxlTGlzdChMaXN0 ICp0YWJsZXMpOwotc3RhdGljIHZvaWQgQ2xvc2VUYWJsZUxpc3QoTGlzdCAqcmVscyk7Citz dGF0aWMgTGlzdCAqT3BlblJlbGF0aW9uTGlzdChMaXN0ICpyZWxzLCBjaGFyIG9iamVjdFR5 cGUpOworc3RhdGljIHZvaWQgQ2xvc2VSZWxhdGlvbkxpc3QoTGlzdCAqcmVscyk7CiBzdGF0 aWMgdm9pZCBMb2NrU2NoZW1hTGlzdChMaXN0ICpzY2hlbWFsaXN0KTsKLXN0YXRpYyB2b2lk IFB1YmxpY2F0aW9uQWRkVGFibGVzKE9pZCBwdWJpZCwgTGlzdCAqcmVscywgYm9vbCBpZl9u b3RfZXhpc3RzLAorc3RhdGljIHZvaWQgUHVibGljYXRpb25BZGRSZWxhdGlvbnMoT2lkIHB1 YmlkLCBMaXN0ICpyZWxzLCBib29sIGlmX25vdF9leGlzdHMsCiAJCQkJCQkJCSBBbHRlclB1 YmxpY2F0aW9uU3RtdCAqc3RtdCk7Ci1zdGF0aWMgdm9pZCBQdWJsaWNhdGlvbkRyb3BUYWJs ZXMoT2lkIHB1YmlkLCBMaXN0ICpyZWxzLCBib29sIG1pc3Npbmdfb2spOwotc3RhdGljIHZv aWQgUHVibGljYXRpb25BZGRTY2hlbWFzKE9pZCBwdWJpZCwgTGlzdCAqc2NoZW1hcywgYm9v bCBpZl9ub3RfZXhpc3RzLAotCQkJCQkJCQkgIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10 KTsKLXN0YXRpYyB2b2lkIFB1YmxpY2F0aW9uRHJvcFNjaGVtYXMoT2lkIHB1YmlkLCBMaXN0 ICpzY2hlbWFzLCBib29sIG1pc3Npbmdfb2spOworc3RhdGljIHZvaWQgUHVibGljYXRpb25E cm9wUmVsYXRpb25zKE9pZCBwdWJpZCwgTGlzdCAqcmVscywgYm9vbCBtaXNzaW5nX29rKTsK K3N0YXRpYyB2b2lkIFB1YmxpY2F0aW9uQWRkU2NoZW1hcyhPaWQgcHViaWQsIExpc3QgKnNj aGVtYXMsIGNoYXIgb2JqZWN0VHlwZSwKKwkJCQkJCQkJICBib29sIGlmX25vdF9leGlzdHMs IEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10KTsKK3N0YXRpYyB2b2lkIFB1YmxpY2F0aW9u RHJvcFNjaGVtYXMoT2lkIHB1YmlkLCBMaXN0ICpzY2hlbWFzLCBjaGFyIG9iamVjdFR5cGUs CisJCQkJCQkJCSAgIGJvb2wgbWlzc2luZ19vayk7CisKIAogc3RhdGljIHZvaWQKIHBhcnNl X3B1YmxpY2F0aW9uX29wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLApAQCAtOTUsNiArOTgs NyBAQCBwYXJzZV9wdWJsaWNhdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAlw dWJhY3Rpb25zLT5wdWJ1cGRhdGUgPSB0cnVlOwogCXB1YmFjdGlvbnMtPnB1YmRlbGV0ZSA9 IHRydWU7CiAJcHViYWN0aW9ucy0+cHVidHJ1bmNhdGUgPSB0cnVlOworCXB1YmFjdGlvbnMt PnB1YnNlcXVlbmNlID0gdHJ1ZTsKIAkqcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSBm YWxzZTsKIAogCS8qIFBhcnNlIG9wdGlvbnMgKi8KQEAgLTExOSw2ICsxMjMsNyBAQCBwYXJz ZV9wdWJsaWNhdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCXB1YmFjdGlv bnMtPnB1YnVwZGF0ZSA9IGZhbHNlOwogCQkJcHViYWN0aW9ucy0+cHViZGVsZXRlID0gZmFs c2U7CiAJCQlwdWJhY3Rpb25zLT5wdWJ0cnVuY2F0ZSA9IGZhbHNlOworCQkJcHViYWN0aW9u cy0+cHVic2VxdWVuY2UgPSBmYWxzZTsKIAogCQkJKnB1Ymxpc2hfZ2l2ZW4gPSB0cnVlOwog CQkJcHVibGlzaCA9IGRlZkdldFN0cmluZyhkZWZlbCk7CkBAIC0xNDEsNiArMTQ2LDggQEAg cGFyc2VfcHVibGljYXRpb25fb3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCXB1 YmFjdGlvbnMtPnB1YmRlbGV0ZSA9IHRydWU7CiAJCQkJZWxzZSBpZiAoc3RyY21wKHB1Ymxp c2hfb3B0LCAidHJ1bmNhdGUiKSA9PSAwKQogCQkJCQlwdWJhY3Rpb25zLT5wdWJ0cnVuY2F0 ZSA9IHRydWU7CisJCQkJZWxzZSBpZiAoc3RyY21wKHB1Ymxpc2hfb3B0LCAic2VxdWVuY2Ui KSA9PSAwKQorCQkJCQlwdWJhY3Rpb25zLT5wdWJzZXF1ZW5jZSA9IHRydWU7CiAJCQkJZWxz ZQogCQkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFY X0VSUk9SKSwKQEAgLTE2Nyw3ICsxNzQsOSBAQCBwYXJzZV9wdWJsaWNhdGlvbl9vcHRpb25z KFBhcnNlU3RhdGUgKnBzdGF0ZSwKICAqLwogc3RhdGljIHZvaWQKIE9iamVjdHNJblB1Ymxp Y2F0aW9uVG9PaWRzKExpc3QgKnB1Ym9ianNwZWNfbGlzdCwgUGFyc2VTdGF0ZSAqcHN0YXRl LAotCQkJCQkJICAgTGlzdCAqKnJlbHMsIExpc3QgKipzY2hlbWFzKQorCQkJCQkJICAgTGlz dCAqKnRhYmxlcywgTGlzdCAqKnNlcXVlbmNlcywKKwkJCQkJCSAgIExpc3QgKip0YWJsZXNf c2NoZW1hcywgTGlzdCAqKnNlcXVlbmNlc19zY2hlbWFzLAorCQkJCQkJICAgTGlzdCAqKnNj aGVtYXMpCiB7CiAJTGlzdENlbGwgICAqY2VsbDsKIAlQdWJsaWNhdGlvbk9ialNwZWMgKnB1 Ym9iajsKQEAgLTE4NSwxMiArMTk0LDIzIEBAIE9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRz KExpc3QgKnB1Ym9ianNwZWNfbGlzdCwgUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQlzd2l0Y2gg KHB1Ym9iai0+cHVib2JqdHlwZSkKIAkJewogCQkJY2FzZSBQVUJMSUNBVElPTk9CSl9UQUJM RToKLQkJCQkqcmVscyA9IGxhcHBlbmQoKnJlbHMsIHB1Ym9iai0+cHVidGFibGUpOworCQkJ CSp0YWJsZXMgPSBsYXBwZW5kKCp0YWJsZXMsIHB1Ym9iai0+cHVidGFibGUpOworCQkJCWJy ZWFrOworCQkJY2FzZSBQVUJMSUNBVElPTk9CSl9TRVFVRU5DRToKKwkJCQkqc2VxdWVuY2Vz ID0gbGFwcGVuZCgqc2VxdWVuY2VzLCBwdWJvYmotPnB1YnRhYmxlKTsKIAkJCQlicmVhazsK IAkJCWNhc2UgUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX1NDSEVNQToKIAkJCQlzY2hlbWFp ZCA9IGdldF9uYW1lc3BhY2Vfb2lkKHB1Ym9iai0+bmFtZSwgZmFsc2UpOwogCiAJCQkJLyog RmlsdGVyIG91dCBkdXBsaWNhdGVzIGlmIHVzZXIgc3BlY2lmaWVzICJzY2gxLCBzY2gxIiAq LworCQkJCSp0YWJsZXNfc2NoZW1hcyA9IGxpc3RfYXBwZW5kX3VuaXF1ZV9vaWQoKnRhYmxl c19zY2hlbWFzLCBzY2hlbWFpZCk7CisJCQkJKnNjaGVtYXMgPSBsaXN0X2FwcGVuZF91bmlx dWVfb2lkKCpzY2hlbWFzLCBzY2hlbWFpZCk7CisJCQkJYnJlYWs7CisJCQljYXNlIFBVQkxJ Q0FUSU9OT0JKX1NFUVVFTkNFU19JTl9TQ0hFTUE6CisJCQkJc2NoZW1haWQgPSBnZXRfbmFt ZXNwYWNlX29pZChwdWJvYmotPm5hbWUsIGZhbHNlKTsKKworCQkJCS8qIEZpbHRlciBvdXQg ZHVwbGljYXRlcyBpZiB1c2VyIHNwZWNpZmllcyAic2NoMSwgc2NoMSIgKi8KKwkJCQkqc2Vx dWVuY2VzX3NjaGVtYXMgPSBsaXN0X2FwcGVuZF91bmlxdWVfb2lkKCpzZXF1ZW5jZXNfc2No ZW1hcywgc2NoZW1haWQpOwogCQkJCSpzY2hlbWFzID0gbGlzdF9hcHBlbmRfdW5pcXVlX29p ZCgqc2NoZW1hcywgc2NoZW1haWQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBQVUJMSUNBVElP Tk9CSl9UQUJMRVNfSU5fQ1VSX1NDSEVNQToKQEAgLTIwNCw2ICsyMjQsMjEgQEAgT2JqZWN0 c0luUHVibGljYXRpb25Ub09pZHMoTGlzdCAqcHVib2Jqc3BlY19saXN0LCBQYXJzZVN0YXRl ICpwc3RhdGUsCiAJCQkJbGlzdF9mcmVlKHNlYXJjaF9wYXRoKTsKIAogCQkJCS8qIEZpbHRl ciBvdXQgZHVwbGljYXRlcyBpZiB1c2VyIHNwZWNpZmllcyAic2NoMSwgc2NoMSIgKi8KKwkJ CQkqdGFibGVzX3NjaGVtYXMgPSBsaXN0X2FwcGVuZF91bmlxdWVfb2lkKCp0YWJsZXNfc2No ZW1hcywgc2NoZW1haWQpOworCQkJCSpzY2hlbWFzID0gbGlzdF9hcHBlbmRfdW5pcXVlX29p ZCgqc2NoZW1hcywgc2NoZW1haWQpOworCQkJCWJyZWFrOworCQkJY2FzZSBQVUJMSUNBVElP Tk9CSl9TRVFVRU5DRVNfSU5fQ1VSX1NDSEVNQToKKwkJCQlzZWFyY2hfcGF0aCA9IGZldGNo X3NlYXJjaF9wYXRoKGZhbHNlKTsKKwkJCQlpZiAoc2VhcmNoX3BhdGggPT0gTklMKSAvKiBu b3RoaW5nIHZhbGlkIGluIHNlYXJjaF9wYXRoPyAqLworCQkJCQllcmVwb3J0KEVSUk9SLAor CQkJCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfU0NIRU1BKSwKKwkJCQkJCQllcnJt c2coIm5vIHNjaGVtYSBoYXMgYmVlbiBzZWxlY3RlZCBmb3IgQ1VSUkVOVF9TQ0hFTUEiKSk7 CisKKwkJCQlzY2hlbWFpZCA9IGxpbml0aWFsX29pZChzZWFyY2hfcGF0aCk7CisJCQkJbGlz dF9mcmVlKHNlYXJjaF9wYXRoKTsKKworCQkJCS8qIEZpbHRlciBvdXQgZHVwbGljYXRlcyBp ZiB1c2VyIHNwZWNpZmllcyAic2NoMSwgc2NoMSIgKi8KKwkJCQkqc2VxdWVuY2VzX3NjaGVt YXMgPSBsaXN0X2FwcGVuZF91bmlxdWVfb2lkKCpzZXF1ZW5jZXNfc2NoZW1hcywgc2NoZW1h aWQpOwogCQkJCSpzY2hlbWFzID0gbGlzdF9hcHBlbmRfdW5pcXVlX29pZCgqc2NoZW1hcywg c2NoZW1haWQpOwogCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKQEAgLTI0MCw2ICsyNzUsMTQg QEAgQ2hlY2tPYmpTY2hlbWFOb3RBbHJlYWR5SW5QdWJsaWNhdGlvbihMaXN0ICpyZWxzLCBM aXN0ICpzY2hlbWFpZGxpc3QsCiAJCQkJCQllcnJkZXRhaWwoIlRhYmxlIFwiJXNcIiBpbiBz Y2hlbWEgXCIlc1wiIGlzIGFscmVhZHkgcGFydCBvZiB0aGUgcHVibGljYXRpb24sIGFkZGlu ZyB0aGUgc2FtZSBzY2hlbWEgaXMgbm90IHN1cHBvcnRlZC4iLAogCQkJCQkJCQkgIFJlbGF0 aW9uR2V0UmVsYXRpb25OYW1lKHJlbCksCiAJCQkJCQkJCSAgZ2V0X25hbWVzcGFjZV9uYW1l KHJlbFNjaGVtYUlkKSkpOworCQkJZWxzZSBpZiAoY2hlY2tvYmp0eXBlID09IFBVQkxJQ0FU SU9OT0JKX1NFUVVFTkNFU19JTl9TQ0hFTUEpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ CWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJCQllcnJt c2coImNhbm5vdCBhZGQgc2NoZW1hIFwiJXNcIiB0byBwdWJsaWNhdGlvbiIsCisJCQkJCQkJ ICAgZ2V0X25hbWVzcGFjZV9uYW1lKHJlbFNjaGVtYUlkKSksCisJCQkJCQllcnJkZXRhaWwo IlNFcXVlbmNlIFwiJXNcIiBpbiBzY2hlbWEgXCIlc1wiIGlzIGFscmVhZHkgcGFydCBvZiB0 aGUgcHVibGljYXRpb24sIGFkZGluZyB0aGUgc2FtZSBzY2hlbWEgaXMgbm90IHN1cHBvcnRl ZC4iLAorCQkJCQkJCQkgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCksCisJCQkJCQkJ CSAgZ2V0X25hbWVzcGFjZV9uYW1lKHJlbFNjaGVtYUlkKSkpOwogCQkJZWxzZSBpZiAoY2hl Y2tvYmp0eXBlID09IFBVQkxJQ0FUSU9OT0JKX1RBQkxFKQogCQkJCWVyZXBvcnQoRVJST1Is CiAJCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLApAQCAt MjQ4LDYgKzI5MSwxNCBAQCBDaGVja09ialNjaGVtYU5vdEFscmVhZHlJblB1YmxpY2F0aW9u KExpc3QgKnJlbHMsIExpc3QgKnNjaGVtYWlkbGlzdCwKIAkJCQkJCQkgICBSZWxhdGlvbkdl dFJlbGF0aW9uTmFtZShyZWwpKSwKIAkJCQkJCWVycmRldGFpbCgiVGFibGUncyBzY2hlbWEg XCIlc1wiIGlzIGFscmVhZHkgcGFydCBvZiB0aGUgcHVibGljYXRpb24gb3IgcGFydCBvZiB0 aGUgc3BlY2lmaWVkIHNjaGVtYSBsaXN0LiIsCiAJCQkJCQkJCSAgZ2V0X25hbWVzcGFjZV9u YW1lKHJlbFNjaGVtYUlkKSkpOworCQkJZWxzZSBpZiAoY2hlY2tvYmp0eXBlID09IFBVQkxJ Q0FUSU9OT0JKX1NFUVVFTkNFKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJjb2Rl KEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkJZXJybXNnKCJjYW5u b3QgYWRkIHJlbGF0aW9uIFwiJXMuJXNcIiB0byBwdWJsaWNhdGlvbiIsCisJCQkJCQkJICAg Z2V0X25hbWVzcGFjZV9uYW1lKHJlbFNjaGVtYUlkKSwKKwkJCQkJCQkgICBSZWxhdGlvbkdl dFJlbGF0aW9uTmFtZShyZWwpKSwKKwkJCQkJCWVycmRldGFpbCgiU2VxdWVuY2UncyBzY2hl bWEgXCIlc1wiIGlzIGFscmVhZHkgcGFydCBvZiB0aGUgcHVibGljYXRpb24gb3IgcGFydCBv ZiB0aGUgc3BlY2lmaWVkIHNjaGVtYSBsaXN0LiIsCisJCQkJCQkJCSAgZ2V0X25hbWVzcGFj ZV9uYW1lKHJlbFNjaGVtYUlkKSkpOwogCQl9CiAJfQogfQpAQCAtNjE1LDYgKzY2Niw3IEBA IFRyYW5zZm9ybVB1YldoZXJlQ2xhdXNlcyhMaXN0ICp0YWJsZXMsIGNvbnN0IGNoYXIgKnF1 ZXJ5U3RyaW5nLAogT2JqZWN0QWRkcmVzcwogQ3JlYXRlUHVibGljYXRpb24oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBDcmVhdGVQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiB7CisJTGlzdENlbGwg ICAqbGM7CiAJUmVsYXRpb24JcmVsOwogCU9iamVjdEFkZHJlc3MgbXlzZWxmOwogCU9pZAkJ CXB1Ym9pZDsKQEAgLTYyNiw5ICs2NzgsMzEgQEAgQ3JlYXRlUHVibGljYXRpb24oUGFyc2VT dGF0ZSAqcHN0YXRlLCBDcmVhdGVQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJYm9vbAkJcHVi bGlzaF92aWFfcGFydGl0aW9uX3Jvb3RfZ2l2ZW47CiAJYm9vbAkJcHVibGlzaF92aWFfcGFy dGl0aW9uX3Jvb3Q7CiAJQWNsUmVzdWx0CWFjbHJlc3VsdDsKLQlMaXN0CSAgICpyZWxhdGlv bnMgPSBOSUw7CisJTGlzdAkgICAqdGFibGVzID0gTklMOworCUxpc3QJICAgKnNlcXVlbmNl cyA9IE5JTDsKKwlMaXN0CSAgICp0YWJsZXNfc2NoZW1haWRsaXN0ID0gTklMOworCUxpc3QJ ICAgKnNlcXVlbmNlc19zY2hlbWFpZGxpc3QgPSBOSUw7CiAJTGlzdAkgICAqc2NoZW1haWRs aXN0ID0gTklMOwogCisJYm9vbAkJZm9yX2FsbF90YWJsZXMgPSBmYWxzZTsKKwlib29sCQlm b3JfYWxsX3NlcXVlbmNlcyA9IGZhbHNlOworCisJLyoKKwkgKiBYWFggVHJhbnNsYXRlIHRo ZSBsaXN0IG9mIG9iamVjdCB0eXBlcyAocmVwcmVzZW50ZWQgYnkgc3RyaW5ncykgdG8gYm9v bAorCSAqIGZsYWdzLiBOb3Qgc3VyZSB0aGlzIGlzIHRoZSBiZXN0IHdheSwgbWF5YmUgaXQg c2hvdWxkIGJlIGRvbmUgaW4gdGhlCisJICogZ3JhbW1hciBkaXJlY3RseSwgc29tZWhvdy4K KwkgKgorCSAqIFhYWCBTaG91bGQgcHJldmVudCBkdXBsaWNhdGVzLCBsaWtlIEZPUiBBTEwg VEFCTEVTLCBUQUJMRVMsIFRBQkxFUz8KKwkgKi8KKwlmb3JlYWNoIChsYywgc3RtdC0+Zm9y X2FsbF9vYmplY3RzKQorCXsKKwkJY2hhciAgICp2YWwgPSBzdHJWYWwobGZpcnN0KGxjKSk7 CisJCWlmIChzdHJjbXAodmFsLCAidGFibGVzIikgPT0gMCkKKwkJCWZvcl9hbGxfdGFibGVz ID0gdHJ1ZTsKKwkJZWxzZSBpZiAoc3RyY21wKHZhbCwgInNlcXVlbmNlcyIpID09IDApCisJ CQlmb3JfYWxsX3NlcXVlbmNlcyA9IHRydWU7CisJfQorCiAJLyogbXVzdCBoYXZlIENSRUFU RSBwcml2aWxlZ2Ugb24gZGF0YWJhc2UgKi8KIAlhY2xyZXN1bHQgPSBwZ19kYXRhYmFzZV9h Y2xjaGVjayhNeURhdGFiYXNlSWQsIEdldFVzZXJJZCgpLCBBQ0xfQ1JFQVRFKTsKIAlpZiAo YWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQpAQCAtNjM2LDcgKzcxMCw3IEBAIENyZWF0ZVB1 YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlUHVibGljYXRpb25TdG10ICpz dG10KQogCQkJCQkgICBnZXRfZGF0YWJhc2VfbmFtZShNeURhdGFiYXNlSWQpKTsKIAogCS8q IEZPUiBBTEwgVEFCTEVTIHJlcXVpcmVzIHN1cGVydXNlciAqLwotCWlmIChzdG10LT5mb3Jf YWxsX3RhYmxlcyAmJiAhc3VwZXJ1c2VyKCkpCisJaWYgKGZvcl9hbGxfdGFibGVzICYmICFz dXBlcnVzZXIoKSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lO U1VGRklDSUVOVF9QUklWSUxFR0UpLAogCQkJCSBlcnJtc2coIm11c3QgYmUgc3VwZXJ1c2Vy IHRvIGNyZWF0ZSBGT1IgQUxMIFRBQkxFUyBwdWJsaWNhdGlvbiIpKSk7CkBAIC02NzIsNyAr NzQ2LDkgQEAgQ3JlYXRlUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVQ dWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJCQkJCQkJCUFudW1fcGdfcHVibGljYXRpb25fb2lk KTsKIAl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9vaWQgLSAxXSA9IE9iamVjdElkR2V0 RGF0dW0ocHVib2lkKTsKIAl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJhbGx0YWJs ZXMgLSAxXSA9Ci0JCUJvb2xHZXREYXR1bShzdG10LT5mb3JfYWxsX3RhYmxlcyk7CisJCUJv b2xHZXREYXR1bShmb3JfYWxsX3RhYmxlcyk7CisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRp b25fcHViYWxsc2VxdWVuY2VzIC0gMV0gPQorCQlCb29sR2V0RGF0dW0oZm9yX2FsbF9zZXF1 ZW5jZXMpOwogCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1Ymluc2VydCAtIDFdID0K IAkJQm9vbEdldERhdHVtKHB1YmFjdGlvbnMucHViaW5zZXJ0KTsKIAl2YWx1ZXNbQW51bV9w Z19wdWJsaWNhdGlvbl9wdWJ1cGRhdGUgLSAxXSA9CkBAIC02ODEsNiArNzU3LDggQEAgQ3Jl YXRlUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVQdWJsaWNhdGlvblN0 bXQgKnN0bXQpCiAJCUJvb2xHZXREYXR1bShwdWJhY3Rpb25zLnB1YmRlbGV0ZSk7CiAJdmFs dWVzW0FudW1fcGdfcHVibGljYXRpb25fcHVidHJ1bmNhdGUgLSAxXSA9CiAJCUJvb2xHZXRE YXR1bShwdWJhY3Rpb25zLnB1YnRydW5jYXRlKTsKKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNh dGlvbl9wdWJzZXF1ZW5jZSAtIDFdID0KKwkJQm9vbEdldERhdHVtKHB1YmFjdGlvbnMucHVi c2VxdWVuY2UpOwogCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnZpYXJvb3QgLSAx XSA9CiAJCUJvb2xHZXREYXR1bShwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCk7CiAKQEAg LTY5OCw0NSArNzc2LDg0IEBAIENyZWF0ZVB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgQ3JlYXRlUHVibGljYXRpb25TdG10ICpzdG10KQogCUNvbW1hbmRDb3VudGVySW5jcmVt ZW50KCk7CiAKIAkvKiBBc3NvY2lhdGUgb2JqZWN0cyB3aXRoIHRoZSBwdWJsaWNhdGlvbi4g Ki8KLQlpZiAoc3RtdC0+Zm9yX2FsbF90YWJsZXMpCisJaWYgKGZvcl9hbGxfdGFibGVzIHx8 IGZvcl9hbGxfc2VxdWVuY2VzKQogCXsKIAkJLyogSW52YWxpZGF0ZSByZWxjYWNoZSBzbyB0 aGF0IHB1YmxpY2F0aW9uIGluZm8gaXMgcmVidWlsdC4gKi8KIAkJQ2FjaGVJbnZhbGlkYXRl UmVsY2FjaGVBbGwoKTsKIAl9Ci0JZWxzZQorCisJaWYgKCFmb3JfYWxsX3RhYmxlcyB8fCAh Zm9yX2FsbF9zZXF1ZW5jZXMpCiAJewotCQlPYmplY3RzSW5QdWJsaWNhdGlvblRvT2lkcyhz dG10LT5wdWJvYmplY3RzLCBwc3RhdGUsICZyZWxhdGlvbnMsCisJCU9iamVjdHNJblB1Ymxp Y2F0aW9uVG9PaWRzKHN0bXQtPnB1Ym9iamVjdHMsIHBzdGF0ZSwKKwkJCQkJCQkJICAgJnRh YmxlcywgJnNlcXVlbmNlcywKKwkJCQkJCQkJICAgJnRhYmxlc19zY2hlbWFpZGxpc3QsCisJ CQkJCQkJCSAgICZzZXF1ZW5jZXNfc2NoZW1haWRsaXN0LAogCQkJCQkJCQkgICAmc2NoZW1h aWRsaXN0KTsKIAogCQkvKiBGT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcmVxdWlyZXMgc3Vw ZXJ1c2VyICovCi0JCWlmIChsaXN0X2xlbmd0aChzY2hlbWFpZGxpc3QpID4gMCAmJiAhc3Vw ZXJ1c2VyKCkpCisJCWlmIChsaXN0X2xlbmd0aCh0YWJsZXNfc2NoZW1haWRsaXN0KSA+IDAg JiYgIXN1cGVydXNlcigpKQogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJZXJyY29kZShFUlJD T0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAogCQkJCQllcnJtc2coIm11c3QgYmUgc3Vw ZXJ1c2VyIHRvIGNyZWF0ZSBGT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljYXRpb24i KSk7CiAKLQkJaWYgKGxpc3RfbGVuZ3RoKHJlbGF0aW9ucykgPiAwKQorCQkvKiBGT1IgQUxM IFNFUVVFTkNFUyBJTiBTQ0hFTUEgcmVxdWlyZXMgc3VwZXJ1c2VyICovCisJCWlmIChsaXN0 X2xlbmd0aChzZXF1ZW5jZXNfc2NoZW1haWRsaXN0KSA+IDAgJiYgIXN1cGVydXNlcigpKQor CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9Q UklWSUxFR0UpLAorCQkJCQllcnJtc2coIm11c3QgYmUgc3VwZXJ1c2VyIHRvIGNyZWF0ZSBG T1IgQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEgcHVibGljYXRpb24iKSk7CisKKwkJLyogdGFi bGVzIGFkZGVkIGRpcmVjdGx5ICovCisJCWlmIChsaXN0X2xlbmd0aCh0YWJsZXMpID4gMCkK IAkJewogCQkJTGlzdAkgICAqcmVsczsKIAotCQkJcmVscyA9IE9wZW5UYWJsZUxpc3QocmVs YXRpb25zKTsKLQkJCUNoZWNrT2JqU2NoZW1hTm90QWxyZWFkeUluUHVibGljYXRpb24ocmVs cywgc2NoZW1haWRsaXN0LAorCQkJcmVscyA9IE9wZW5SZWxhdGlvbkxpc3QodGFibGVzLCBQ VUJfT0JKVFlQRV9UQUJMRSk7CisJCQlDaGVja09ialNjaGVtYU5vdEFscmVhZHlJblB1Ymxp Y2F0aW9uKHJlbHMsIHRhYmxlc19zY2hlbWFpZGxpc3QsCiAJCQkJCQkJCQkJCQkgIFBVQkxJ Q0FUSU9OT0JKX1RBQkxFKTsKIAogCQkJVHJhbnNmb3JtUHViV2hlcmVDbGF1c2VzKHJlbHMs IHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAogCQkJCQkJCQkJIHB1Ymxpc2hfdmlhX3BhcnRpdGlv bl9yb290KTsKIAotCQkJUHVibGljYXRpb25BZGRUYWJsZXMocHVib2lkLCByZWxzLCB0cnVl LCBOVUxMKTsKLQkJCUNsb3NlVGFibGVMaXN0KHJlbHMpOworCQkJUHVibGljYXRpb25BZGRS ZWxhdGlvbnMocHVib2lkLCByZWxzLCB0cnVlLCBOVUxMKTsKKwkJCUNsb3NlUmVsYXRpb25M aXN0KHJlbHMpOwogCQl9CiAKLQkJaWYgKGxpc3RfbGVuZ3RoKHNjaGVtYWlkbGlzdCkgPiAw KQorCQkvKiBzZXF1ZW5jZXMgYWRkZWQgZGlyZWN0bHkgKi8KKwkJaWYgKGxpc3RfbGVuZ3Ro KHNlcXVlbmNlcykgPiAwKQorCQl7CisJCQlMaXN0CSAgICpyZWxzOworCisJCQlyZWxzID0g T3BlblJlbGF0aW9uTGlzdChzZXF1ZW5jZXMsIFBVQl9PQkpUWVBFX1NFUVVFTkNFKTsKKwkJ CUNoZWNrT2JqU2NoZW1hTm90QWxyZWFkeUluUHVibGljYXRpb24ocmVscywgc2VxdWVuY2Vz X3NjaGVtYWlkbGlzdCwKKwkJCQkJCQkJCQkJCSAgUFVCTElDQVRJT05PQkpfU0VRVUVOQ0Up OworCQkJUHVibGljYXRpb25BZGRSZWxhdGlvbnMocHVib2lkLCByZWxzLCB0cnVlLCBOVUxM KTsKKwkJCUNsb3NlUmVsYXRpb25MaXN0KHJlbHMpOworCQl9CisKKwkJLyogdGFibGVzIGFk ZGVkIHRocm91Z2ggYSBzY2hlbWEgKi8KKwkJaWYgKGxpc3RfbGVuZ3RoKHRhYmxlc19zY2hl bWFpZGxpc3QpID4gMCkKIAkJewogCQkJLyoKIAkJCSAqIFNjaGVtYSBsb2NrIGlzIGhlbGQg dW50aWwgdGhlIHB1YmxpY2F0aW9uIGlzIGNyZWF0ZWQgdG8gcHJldmVudAogCQkJICogY29u Y3VycmVudCBzY2hlbWEgZGVsZXRpb24uCiAJCQkgKi8KLQkJCUxvY2tTY2hlbWFMaXN0KHNj aGVtYWlkbGlzdCk7Ci0JCQlQdWJsaWNhdGlvbkFkZFNjaGVtYXMocHVib2lkLCBzY2hlbWFp ZGxpc3QsIHRydWUsIE5VTEwpOworCQkJTG9ja1NjaGVtYUxpc3QodGFibGVzX3NjaGVtYWlk bGlzdCk7CisJCQlQdWJsaWNhdGlvbkFkZFNjaGVtYXMocHVib2lkLAorCQkJCQkJCQkgIHRh Ymxlc19zY2hlbWFpZGxpc3QsIFBVQl9PQkpUWVBFX1RBQkxFLAorCQkJCQkJCQkgIHRydWUs IE5VTEwpOworCQl9CisKKwkJLyogc2VxdWVuY2VzIGFkZGVkIHRocm91Z2ggYSBzY2hlbWEg Ki8KKwkJaWYgKGxpc3RfbGVuZ3RoKHNlcXVlbmNlc19zY2hlbWFpZGxpc3QpID4gMCkKKwkJ eworCQkJLyoKKwkJCSAqIFNjaGVtYSBsb2NrIGlzIGhlbGQgdW50aWwgdGhlIHB1YmxpY2F0 aW9uIGlzIGNyZWF0ZWQgdG8gcHJldmVudAorCQkJICogY29uY3VycmVudCBzY2hlbWEgZGVs ZXRpb24uCisJCQkgKi8KKwkJCUxvY2tTY2hlbWFMaXN0KHNlcXVlbmNlc19zY2hlbWFpZGxp c3QpOworCQkJUHVibGljYXRpb25BZGRTY2hlbWFzKHB1Ym9pZCwKKwkJCQkJCQkJICBzZXF1 ZW5jZXNfc2NoZW1haWRsaXN0LCBQVUJfT0JKVFlQRV9TRVFVRU5DRSwKKwkJCQkJCQkJICB0 cnVlLCBOVUxMKTsKIAkJfQogCX0KIApAQCAtNzk5LDYgKzkxNiw3IEBAIEFsdGVyUHVibGlj YXRpb25PcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQg KnN0bXQsCiAJCQkJCQkgICBBY2Nlc3NTaGFyZUxvY2spOwogCiAJCXJvb3RfcmVsaWRzID0g R2V0UHVibGljYXRpb25SZWxhdGlvbnMocHViZm9ybS0+b2lkLAorCQkJCQkJCQkJCQkgIFBV Ql9PQkpUWVBFX1RBQkxFLAogCQkJCQkJCQkJCQkgIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7 CiAKIAkJZm9yZWFjaChsYywgcm9vdF9yZWxpZHMpCkBAIC04NTcsNiArOTc1LDkgQEAgQWx0 ZXJQdWJsaWNhdGlvbk9wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0 aW9uU3RtdCAqc3RtdCwKIAogCQl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ0cnVu Y2F0ZSAtIDFdID0gQm9vbEdldERhdHVtKHB1YmFjdGlvbnMucHVidHJ1bmNhdGUpOwogCQly ZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnRydW5jYXRlIC0gMV0gPSB0cnVlOwor CisJCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnNlcXVlbmNlIC0gMV0gPSBCb29s R2V0RGF0dW0ocHViYWN0aW9ucy5wdWJzZXF1ZW5jZSk7CisJCXJlcGxhY2VzW0FudW1fcGdf cHVibGljYXRpb25fcHVic2VxdWVuY2UgLSAxXSA9IHRydWU7CiAJfQogCiAJaWYgKHB1Ymxp c2hfdmlhX3BhcnRpdGlvbl9yb290X2dpdmVuKQpAQCAtODc2LDcgKzk5Nyw3IEBAIEFsdGVy UHVibGljYXRpb25PcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlv blN0bXQgKnN0bXQsCiAJcHViZm9ybSA9IChGb3JtX3BnX3B1YmxpY2F0aW9uKSBHRVRTVFJV Q1QodHVwKTsKIAogCS8qIEludmFsaWRhdGUgdGhlIHJlbGNhY2hlLiAqLwotCWlmIChwdWJm b3JtLT5wdWJhbGx0YWJsZXMpCisJaWYgKHB1YmZvcm0tPnB1YmFsbHRhYmxlcyB8fCBwdWJm b3JtLT5wdWJhbGxzZXF1ZW5jZXMpCiAJewogCQlDYWNoZUludmFsaWRhdGVSZWxjYWNoZUFs bCgpOwogCX0KQEAgLTg5Miw2ICsxMDEzLDcgQEAgQWx0ZXJQdWJsaWNhdGlvbk9wdGlvbnMo UGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAkJICov CiAJCWlmIChyb290X3JlbGlkcyA9PSBOSUwpCiAJCQlyZWxpZHMgPSBHZXRQdWJsaWNhdGlv blJlbGF0aW9ucyhwdWJmb3JtLT5vaWQsCisJCQkJCQkJCQkJCSBQVUJfT0JKVFlQRV9UQUJM RSwKIAkJCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRfQUxMKTsKIAkJZWxzZQogCQl7CkBA IC05MDUsNyArMTAyNywyMCBAQCBBbHRlclB1YmxpY2F0aW9uT3B0aW9ucyhQYXJzZVN0YXRl ICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAogCQkJCQkJCQkJCQkJCQls Zmlyc3Rfb2lkKGxjKSk7CiAJCX0KIAorCQkvKiB0YWJsZXMgKi8KKwkJc2NoZW1hcmVsaWRz ID0gR2V0QWxsU2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMocHViZm9ybS0+b2lkLAorCQkJ CQkJCQkJCQkJCQlQVUJfT0JKVFlQRV9UQUJMRSwKKwkJCQkJCQkJCQkJCQkJUFVCTElDQVRJ T05fUEFSVF9BTEwpOworCQlyZWxpZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHJlbGlk cywgc2NoZW1hcmVsaWRzKTsKKworCQkvKiBzZXF1ZW5jZXMgKi8KKwkJcmVsaWRzID0gbGlz dF9jb25jYXRfdW5pcXVlX29pZChyZWxpZHMsCisJCQkJCQkJCQkJR2V0UHVibGljYXRpb25S ZWxhdGlvbnMocHViZm9ybS0+b2lkLAorCQkJCQkJCQkJCQlQVUJfT0JKVFlQRV9TRVFVRU5D RSwKKwkJCQkJCQkJCQkJUFVCTElDQVRJT05fUEFSVF9BTEwpKTsKKwogCQlzY2hlbWFyZWxp ZHMgPSBHZXRBbGxTY2hlbWFQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJmb3JtLT5vaWQsCisJ CQkJCQkJCQkJCQkJCVBVQl9PQkpUWVBFX1NFUVVFTkNFLAogCQkJCQkJCQkJCQkJCQlQVUJM SUNBVElPTl9QQVJUX0FMTCk7CiAJCXJlbGlkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQo cmVsaWRzLCBzY2hlbWFyZWxpZHMpOwogCkBAIC05NjAsNyArMTA5NSw3IEBAIEFsdGVyUHVi bGljYXRpb25UYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0 dXAsCiAJaWYgKCF0YWJsZXMgJiYgc3RtdC0+YWN0aW9uICE9IEFQX1NldE9iamVjdHMpCiAJ CXJldHVybjsKIAotCXJlbHMgPSBPcGVuVGFibGVMaXN0KHRhYmxlcyk7CisJcmVscyA9IE9w ZW5SZWxhdGlvbkxpc3QodGFibGVzLCBQVUJfT0JKVFlQRV9UQUJMRSk7CiAKIAlpZiAoc3Rt dC0+YWN0aW9uID09IEFQX0FkZE9iamVjdHMpCiAJewpAQCAtOTcwLDE5ICsxMTA1LDIyIEBA IEFsdGVyUHVibGljYXRpb25UYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsIEhl YXBUdXBsZSB0dXAsCiAJCSAqIENoZWNrIGlmIHRoZSByZWxhdGlvbiBpcyBtZW1iZXIgb2Yg dGhlIGV4aXN0aW5nIHNjaGVtYSBpbiB0aGUKIAkJICogcHVibGljYXRpb24gb3IgbWVtYmVy IG9mIHRoZSBzY2hlbWEgbGlzdCBzcGVjaWZpZWQuCiAJCSAqLwotCQlzY2hlbWFzID0gbGlz dF9jb25jYXRfY29weShzY2hlbWFpZGxpc3QsIEdldFB1YmxpY2F0aW9uU2NoZW1hcyhwdWJp ZCkpOworCQlzY2hlbWFzID0gbGlzdF9jb25jYXRfY29weShzY2hlbWFpZGxpc3QsCisJCQkJ CQkJCSAgIEdldFB1YmxpY2F0aW9uU2NoZW1hcyhwdWJpZCwKKwkJCQkJCQkJCQkJCQkJIFBV Ql9PQkpUWVBFX1RBQkxFKSk7CiAJCUNoZWNrT2JqU2NoZW1hTm90QWxyZWFkeUluUHVibGlj YXRpb24ocmVscywgc2NoZW1hcywKIAkJCQkJCQkJCQkJICBQVUJMSUNBVElPTk9CSl9UQUJM RSk7CiAKIAkJVHJhbnNmb3JtUHViV2hlcmVDbGF1c2VzKHJlbHMsIHF1ZXJ5U3RyaW5nLCBw dWJmb3JtLT5wdWJ2aWFyb290KTsKIAotCQlQdWJsaWNhdGlvbkFkZFRhYmxlcyhwdWJpZCwg cmVscywgZmFsc2UsIHN0bXQpOworCQlQdWJsaWNhdGlvbkFkZFJlbGF0aW9ucyhwdWJpZCwg cmVscywgZmFsc2UsIHN0bXQpOwogCX0KIAllbHNlIGlmIChzdG10LT5hY3Rpb24gPT0gQVBf RHJvcE9iamVjdHMpCi0JCVB1YmxpY2F0aW9uRHJvcFRhYmxlcyhwdWJpZCwgcmVscywgZmFs c2UpOworCQlQdWJsaWNhdGlvbkRyb3BSZWxhdGlvbnMocHViaWQsIHJlbHMsIGZhbHNlKTsK IAllbHNlCQkJCQkJLyogQVBfU2V0T2JqZWN0cyAqLwogCXsKIAkJTGlzdAkgICAqb2xkcmVs aWRzID0gR2V0UHVibGljYXRpb25SZWxhdGlvbnMocHViaWQsCisJCQkJCQkJCQkJCQkJCVBV Ql9PQkpUWVBFX1RBQkxFLAogCQkJCQkJCQkJCQkJCQlQVUJMSUNBVElPTl9QQVJUX1JPT1Qp OwogCQlMaXN0CSAgICpkZWxyZWxzID0gTklMOwogCQlMaXN0Q2VsbCAgICpvbGRsYzsKQEAg LTEwNjQsMTggKzEyMDIsMTggQEAgQWx0ZXJQdWJsaWNhdGlvblRhYmxlcyhBbHRlclB1Ymxp Y2F0aW9uU3RtdCAqc3RtdCwgSGVhcFR1cGxlIHR1cCwKIAkJfQogCiAJCS8qIEFuZCBkcm9w IHRoZW0uICovCi0JCVB1YmxpY2F0aW9uRHJvcFRhYmxlcyhwdWJpZCwgZGVscmVscywgdHJ1 ZSk7CisJCVB1YmxpY2F0aW9uRHJvcFJlbGF0aW9ucyhwdWJpZCwgZGVscmVscywgdHJ1ZSk7 CiAKIAkJLyoKIAkJICogRG9uJ3QgYm90aGVyIGNhbGN1bGF0aW5nIHRoZSBkaWZmZXJlbmNl IGZvciBhZGRpbmcsIHdlJ2xsIGNhdGNoIGFuZAogCQkgKiBza2lwIGV4aXN0aW5nIG9uZXMg d2hlbiBkb2luZyBjYXRhbG9nIHVwZGF0ZS4KIAkJICovCi0JCVB1YmxpY2F0aW9uQWRkVGFi bGVzKHB1YmlkLCByZWxzLCB0cnVlLCBzdG10KTsKKwkJUHVibGljYXRpb25BZGRSZWxhdGlv bnMocHViaWQsIHJlbHMsIHRydWUsIHN0bXQpOwogCi0JCUNsb3NlVGFibGVMaXN0KGRlbHJl bHMpOworCQlDbG9zZVJlbGF0aW9uTGlzdChkZWxyZWxzKTsKIAl9CiAKLQlDbG9zZVRhYmxl TGlzdChyZWxzKTsKKwlDbG9zZVJlbGF0aW9uTGlzdChyZWxzKTsKIH0KIAogLyoKQEAgLTEw ODUsNyArMTIyMyw4IEBAIEFsdGVyUHVibGljYXRpb25UYWJsZXMoQWx0ZXJQdWJsaWNhdGlv blN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAsCiAgKi8KIHN0YXRpYyB2b2lkCiBBbHRlclB1 YmxpY2F0aW9uU2NoZW1hcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKLQkJCQkJCUhl YXBUdXBsZSB0dXAsIExpc3QgKnNjaGVtYWlkbGlzdCkKKwkJCQkJCUhlYXBUdXBsZSB0dXAs IExpc3QgKnNjaGVtYWlkbGlzdCwKKwkJCQkJCWNoYXIgb2JqZWN0VHlwZSkKIHsKIAlGb3Jt X3BnX3B1YmxpY2F0aW9uIHB1YmZvcm0gPSAoRm9ybV9wZ19wdWJsaWNhdGlvbikgR0VUU1RS VUNUKHR1cCk7CiAKQEAgLTExMDcsMjAgKzEyNDYsMjAgQEAgQWx0ZXJQdWJsaWNhdGlvblNj aGVtYXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCiAJCUxpc3QJICAgKnJlbHM7CiAJ CUxpc3QJICAgKnJlbG9pZHM7CiAKLQkJcmVsb2lkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRp b25zKHB1YmZvcm0tPm9pZCwgUFVCTElDQVRJT05fUEFSVF9ST09UKTsKKwkJcmVsb2lkcyA9 IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmZvcm0tPm9pZCwgb2JqZWN0VHlwZSwgUFVC TElDQVRJT05fUEFSVF9ST09UKTsKIAkJcmVscyA9IE9wZW5SZWxJZExpc3QocmVsb2lkcyk7 CiAKIAkJQ2hlY2tPYmpTY2hlbWFOb3RBbHJlYWR5SW5QdWJsaWNhdGlvbihyZWxzLCBzY2hl bWFpZGxpc3QsCiAJCQkJCQkJCQkJCSAgUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX1NDSEVN QSk7CiAKLQkJQ2xvc2VUYWJsZUxpc3QocmVscyk7Ci0JCVB1YmxpY2F0aW9uQWRkU2NoZW1h cyhwdWJmb3JtLT5vaWQsIHNjaGVtYWlkbGlzdCwgZmFsc2UsIHN0bXQpOworCQlDbG9zZVJl bGF0aW9uTGlzdChyZWxzKTsKKwkJUHVibGljYXRpb25BZGRTY2hlbWFzKHB1YmZvcm0tPm9p ZCwgc2NoZW1haWRsaXN0LCBvYmplY3RUeXBlLCBmYWxzZSwgc3RtdCk7CiAJfQogCWVsc2Ug aWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9Ecm9wT2JqZWN0cykKLQkJUHVibGljYXRpb25Ecm9w U2NoZW1hcyhwdWJmb3JtLT5vaWQsIHNjaGVtYWlkbGlzdCwgZmFsc2UpOworCQlQdWJsaWNh dGlvbkRyb3BTY2hlbWFzKHB1YmZvcm0tPm9pZCwgc2NoZW1haWRsaXN0LCBvYmplY3RUeXBl LCBmYWxzZSk7CiAJZWxzZQkJCQkJCS8qIEFQX1NldE9iamVjdHMgKi8KIAl7Ci0JCUxpc3QJ ICAgKm9sZHNjaGVtYWlkcyA9IEdldFB1YmxpY2F0aW9uU2NoZW1hcyhwdWJmb3JtLT5vaWQp OworCQlMaXN0CSAgICpvbGRzY2hlbWFpZHMgPSBHZXRQdWJsaWNhdGlvblNjaGVtYXMocHVi Zm9ybS0+b2lkLCBvYmplY3RUeXBlKTsKIAkJTGlzdAkgICAqZGVsc2NoZW1hcyA9IE5JTDsK IAogCQkvKiBJZGVudGlmeSB3aGljaCBzY2hlbWFzIHNob3VsZCBiZSBkcm9wcGVkICovCkBA IC0xMTMzLDEzICsxMjcyLDEzIEBAIEFsdGVyUHVibGljYXRpb25TY2hlbWFzKEFsdGVyUHVi bGljYXRpb25TdG10ICpzdG10LAogCQlMb2NrU2NoZW1hTGlzdChkZWxzY2hlbWFzKTsKIAog CQkvKiBBbmQgZHJvcCB0aGVtICovCi0JCVB1YmxpY2F0aW9uRHJvcFNjaGVtYXMocHViZm9y bS0+b2lkLCBkZWxzY2hlbWFzLCB0cnVlKTsKKwkJUHVibGljYXRpb25Ecm9wU2NoZW1hcyhw dWJmb3JtLT5vaWQsIGRlbHNjaGVtYXMsIG9iamVjdFR5cGUsIHRydWUpOwogCiAJCS8qCiAJ CSAqIERvbid0IGJvdGhlciBjYWxjdWxhdGluZyB0aGUgZGlmZmVyZW5jZSBmb3IgYWRkaW5n LCB3ZSdsbCBjYXRjaCBhbmQKIAkJICogc2tpcCBleGlzdGluZyBvbmVzIHdoZW4gZG9pbmcg Y2F0YWxvZyB1cGRhdGUuCiAJCSAqLwotCQlQdWJsaWNhdGlvbkFkZFNjaGVtYXMocHViZm9y bS0+b2lkLCBzY2hlbWFpZGxpc3QsIHRydWUsIHN0bXQpOworCQlQdWJsaWNhdGlvbkFkZFNj aGVtYXMocHViZm9ybS0+b2lkLCBzY2hlbWFpZGxpc3QsIG9iamVjdFR5cGUsIHRydWUsIHN0 bXQpOwogCX0KIH0KIApAQCAtMTE0OSwxMiArMTI4OCwxMyBAQCBBbHRlclB1YmxpY2F0aW9u U2NoZW1hcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKICAqLwogc3RhdGljIHZvaWQK IENoZWNrQWx0ZXJQdWJsaWNhdGlvbihBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwgSGVh cFR1cGxlIHR1cCwKLQkJCQkJICBMaXN0ICp0YWJsZXMsIExpc3QgKnNjaGVtYWlkbGlzdCkK KwkJCQkJICBMaXN0ICp0YWJsZXMsIExpc3QgKnRhYmxlc19zY2hlbWFpZGxpc3QsCisJCQkJ CSAgTGlzdCAqc2VxdWVuY2VzLCBMaXN0ICpzZXF1ZW5jZXNfc2NoZW1haWRsaXN0KQogewog CUZvcm1fcGdfcHVibGljYXRpb24gcHViZm9ybSA9IChGb3JtX3BnX3B1YmxpY2F0aW9uKSBH RVRTVFJVQ1QodHVwKTsKIAogCWlmICgoc3RtdC0+YWN0aW9uID09IEFQX0FkZE9iamVjdHMg fHwgc3RtdC0+YWN0aW9uID09IEFQX1NldE9iamVjdHMpICYmCi0JCXNjaGVtYWlkbGlzdCAm JiAhc3VwZXJ1c2VyKCkpCisJCSh0YWJsZXNfc2NoZW1haWRsaXN0IHx8IHNlcXVlbmNlc19z Y2hlbWFpZGxpc3QpICYmICFzdXBlcnVzZXIoKSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQko ZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAogCQkJCSBlcnJtc2co Im11c3QgYmUgc3VwZXJ1c2VyIHRvIGFkZCBvciBzZXQgc2NoZW1hcyIpKSk7CkBAIC0xMTYz LDEzICsxMzAzLDI0IEBAIENoZWNrQWx0ZXJQdWJsaWNhdGlvbihBbHRlclB1YmxpY2F0aW9u U3RtdCAqc3RtdCwgSGVhcFR1cGxlIHR1cCwKIAkgKiBDaGVjayB0aGF0IHVzZXIgaXMgYWxs b3dlZCB0byBtYW5pcHVsYXRlIHRoZSBwdWJsaWNhdGlvbiB0YWJsZXMgaW4KIAkgKiBzY2hl bWEKIAkgKi8KLQlpZiAoc2NoZW1haWRsaXN0ICYmIHB1YmZvcm0tPnB1YmFsbHRhYmxlcykK KwlpZiAodGFibGVzX3NjaGVtYWlkbGlzdCAmJiBwdWJmb3JtLT5wdWJhbGx0YWJsZXMpCiAJ CWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BS RVJFUVVJU0lURV9TVEFURSksCiAJCQkJIGVycm1zZygicHVibGljYXRpb24gXCIlc1wiIGlz IGRlZmluZWQgYXMgRk9SIEFMTCBUQUJMRVMiLAogCQkJCQkJTmFtZVN0cihwdWJmb3JtLT5w dWJuYW1lKSksCiAJCQkJIGVycmRldGFpbCgiVGFibGVzIGZyb20gc2NoZW1hIGNhbm5vdCBi ZSBhZGRlZCB0bywgZHJvcHBlZCBmcm9tLCBvciBzZXQgb24gRk9SIEFMTCBUQUJMRVMgcHVi bGljYXRpb25zLiIpKSk7CiAKKwkvKgorCSAqIENoZWNrIHRoYXQgdXNlciBpcyBhbGxvd2Vk IHRvIG1hbmlwdWxhdGUgdGhlIHB1YmxpY2F0aW9uIHNlcXVlbmNlcyBpbgorCSAqIHNjaGVt YQorCSAqLworCWlmIChzZXF1ZW5jZXNfc2NoZW1haWRsaXN0ICYmIHB1YmZvcm0tPnB1YmFs bHNlcXVlbmNlcykKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX09C SkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQkgZXJybXNnKCJwdWJsaWNh dGlvbiBcIiVzXCIgaXMgZGVmaW5lZCBhcyBGT1IgQUxMIFNFUVVFTkNFUyIsCisJCQkJCQlO YW1lU3RyKHB1YmZvcm0tPnB1Ym5hbWUpKSwKKwkJCQkgZXJyZGV0YWlsKCJTZXF1ZW5jZXMg ZnJvbSBzY2hlbWEgY2Fubm90IGJlIGFkZGVkIHRvLCBkcm9wcGVkIGZyb20sIG9yIHNldCBv biBGT1IgQUxMIFNFUVVFTkNFUyBwdWJsaWNhdGlvbnMuIikpKTsKKwogCS8qIENoZWNrIHRo YXQgdXNlciBpcyBhbGxvd2VkIHRvIG1hbmlwdWxhdGUgdGhlIHB1YmxpY2F0aW9uIHRhYmxl cy4gKi8KIAlpZiAodGFibGVzICYmIHB1YmZvcm0tPnB1YmFsbHRhYmxlcykKIAkJZXJlcG9y dChFUlJPUiwKQEAgLTExNzcsNiArMTMyOCwxMDcgQEAgQ2hlY2tBbHRlclB1YmxpY2F0aW9u KEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LCBIZWFwVHVwbGUgdHVwLAogCQkJCSBlcnJt c2coInB1YmxpY2F0aW9uIFwiJXNcIiBpcyBkZWZpbmVkIGFzIEZPUiBBTEwgVEFCTEVTIiwK IAkJCQkJCU5hbWVTdHIocHViZm9ybS0+cHVibmFtZSkpLAogCQkJCSBlcnJkZXRhaWwoIlRh YmxlcyBjYW5ub3QgYmUgYWRkZWQgdG8gb3IgZHJvcHBlZCBmcm9tIEZPUiBBTEwgVEFCTEVT IHB1YmxpY2F0aW9ucy4iKSkpOworCisJLyogQ2hlY2sgdGhhdCB1c2VyIGlzIGFsbG93ZWQg dG8gbWFuaXB1bGF0ZSB0aGUgcHVibGljYXRpb24gdGFibGVzLiAqLworCWlmIChzZXF1ZW5j ZXMgJiYgcHViZm9ybS0+cHViYWxsc2VxdWVuY2VzKQorCQllcmVwb3J0KEVSUk9SLAorCQkJ CShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAor CQkJCSBlcnJtc2coInB1YmxpY2F0aW9uIFwiJXNcIiBpcyBkZWZpbmVkIGFzIEZPUiBBTEwg U0VRVUVOQ0VTIiwKKwkJCQkJCU5hbWVTdHIocHViZm9ybS0+cHVibmFtZSkpLAorCQkJCSBl cnJkZXRhaWwoIlNlcXVlbmNlcyBjYW5ub3QgYmUgYWRkZWQgdG8gb3IgZHJvcHBlZCBmcm9t IEZPUiBBTEwgU0VRVUVOQ0VTIHB1YmxpY2F0aW9ucy4iKSkpOworfQorCisvKgorICogQWRk IG9yIHJlbW92ZSBzZXF1ZW5jZSB0by9mcm9tIHB1YmxpY2F0aW9uLgorICovCitzdGF0aWMg dm9pZAorQWx0ZXJQdWJsaWNhdGlvblNlcXVlbmNlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAq c3RtdCwgSGVhcFR1cGxlIHR1cCwKKwkJCQkJCSAgTGlzdCAqc2VxdWVuY2VzLCBMaXN0ICpz Y2hlbWFpZGxpc3QpCit7CisJTGlzdAkgICAqcmVscyA9IE5JTDsKKwlGb3JtX3BnX3B1Ymxp Y2F0aW9uIHB1YmZvcm0gPSAoRm9ybV9wZ19wdWJsaWNhdGlvbikgR0VUU1RSVUNUKHR1cCk7 CisJT2lkCQkJcHViaWQgPSBwdWJmb3JtLT5vaWQ7CisKKwkvKgorCSAqIEl0IGlzIHF1aXRl IHBvc3NpYmxlIHRoYXQgZm9yIHRoZSBTRVQgY2FzZSB1c2VyIGhhcyBub3Qgc3BlY2lmaWVk IGFueQorCSAqIHRhYmxlcyBpbiB3aGljaCBjYXNlIHdlIG5lZWQgdG8gcmVtb3ZlIGFsbCB0 aGUgZXhpc3RpbmcgdGFibGVzLgorCSAqLworCWlmICghc2VxdWVuY2VzICYmIHN0bXQtPmFj dGlvbiAhPSBBUF9TZXRPYmplY3RzKQorCQlyZXR1cm47CisKKwlyZWxzID0gT3BlblJlbGF0 aW9uTGlzdChzZXF1ZW5jZXMsIFBVQl9PQkpUWVBFX1NFUVVFTkNFKTsKKworCWlmIChzdG10 LT5hY3Rpb24gPT0gQVBfQWRkT2JqZWN0cykKKwl7CisJCUxpc3QJICAgKnNjaGVtYXMgPSBO SUw7CisKKwkJLyoKKwkJICogQ2hlY2sgaWYgdGhlIHJlbGF0aW9uIGlzIG1lbWJlciBvZiB0 aGUgZXhpc3Rpbmcgc2NoZW1hIGluIHRoZQorCQkgKiBwdWJsaWNhdGlvbiBvciBtZW1iZXIg b2YgdGhlIHNjaGVtYSBsaXN0IHNwZWNpZmllZC4KKwkJICovCisJCXNjaGVtYXMgPSBsaXN0 X2NvbmNhdF9jb3B5KHNjaGVtYWlkbGlzdCwKKwkJCQkJCQkJICAgR2V0UHVibGljYXRpb25T Y2hlbWFzKHB1YmlkLAorCQkJCQkJCQkJCQkJCQkgUFVCX09CSlRZUEVfU0VRVUVOQ0UpKTsK KwkJQ2hlY2tPYmpTY2hlbWFOb3RBbHJlYWR5SW5QdWJsaWNhdGlvbihyZWxzLCBzY2hlbWFz LAorCQkJCQkJCQkJCQkgIFBVQkxJQ0FUSU9OT0JKX1NFUVVFTkNFKTsKKwkJUHVibGljYXRp b25BZGRSZWxhdGlvbnMocHViaWQsIHJlbHMsIGZhbHNlLCBzdG10KTsKKwl9CisJZWxzZSBp ZiAoc3RtdC0+YWN0aW9uID09IEFQX0Ryb3BPYmplY3RzKQorCQlQdWJsaWNhdGlvbkRyb3BS ZWxhdGlvbnMocHViaWQsIHJlbHMsIGZhbHNlKTsKKwllbHNlCQkJCQkJLyogREVGRUxFTV9T RVQgKi8KKwl7CisJCUxpc3QJICAgKm9sZHJlbGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRp b25zKHB1YmlkLAorCQkJCQkJCQkJCQkJCQlQVUJfT0JKVFlQRV9TRVFVRU5DRSwKKwkJCQkJ CQkJCQkJCQkJUFVCTElDQVRJT05fUEFSVF9ST09UKTsKKwkJTGlzdAkgICAqZGVscmVscyA9 IE5JTDsKKwkJTGlzdENlbGwgICAqb2xkbGM7CisKKwkJQ2hlY2tPYmpTY2hlbWFOb3RBbHJl YWR5SW5QdWJsaWNhdGlvbihyZWxzLCBzY2hlbWFpZGxpc3QsCisJCQkJCQkJCQkJCSAgUFVC TElDQVRJT05PQkpfU0VRVUVOQ0UpOworCisJCS8qIENhbGN1bGF0ZSB3aGljaCByZWxhdGlv bnMgdG8gZHJvcC4gKi8KKwkJZm9yZWFjaChvbGRsYywgb2xkcmVsaWRzKQorCQl7CisJCQlP aWQJCQlvbGRyZWxpZCA9IGxmaXJzdF9vaWQob2xkbGMpOworCQkJTGlzdENlbGwgICAqbmV3 bGM7CisJCQlQdWJsaWNhdGlvblJlbEluZm8gKm9sZHJlbDsKKwkJCWJvb2wJCWZvdW5kID0g ZmFsc2U7CisKKwkJCWZvcmVhY2gobmV3bGMsIHJlbHMpCisJCQl7CisJCQkJUHVibGljYXRp b25SZWxJbmZvICpuZXdwdWJyZWw7CisKKwkJCQluZXdwdWJyZWwgPSAoUHVibGljYXRpb25S ZWxJbmZvICopIGxmaXJzdChuZXdsYyk7CisJCQkJaWYgKFJlbGF0aW9uR2V0UmVsaWQobmV3 cHVicmVsLT5yZWxhdGlvbikgPT0gb2xkcmVsaWQpCisJCQkJeworCQkJCQlmb3VuZCA9IHRy dWU7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCX0KKwkJCS8qIE5vdCB5ZXQgaW4gdGhlIGxp c3QsIG9wZW4gaXQgYW5kIGFkZCB0byB0aGUgbGlzdCAqLworCQkJaWYgKCFmb3VuZCkKKwkJ CXsKKwkJCQlvbGRyZWwgPSBwYWxsb2Moc2l6ZW9mKFB1YmxpY2F0aW9uUmVsSW5mbykpOwor CQkJCW9sZHJlbC0+d2hlcmVDbGF1c2UgPSBOVUxMOworCQkJCW9sZHJlbC0+cmVsYXRpb24g PSB0YWJsZV9vcGVuKG9sZHJlbGlkLAorCQkJCQkJCQkJCQkgIFNoYXJlVXBkYXRlRXhjbHVz aXZlTG9jayk7CisJCQkJZGVscmVscyA9IGxhcHBlbmQoZGVscmVscywgb2xkcmVsKTsKKwkJ CX0KKwkJfQorCisJCS8qIEFuZCBkcm9wIHRoZW0uICovCisJCVB1YmxpY2F0aW9uRHJvcFJl bGF0aW9ucyhwdWJpZCwgZGVscmVscywgdHJ1ZSk7CisKKwkJLyoKKwkJICogRG9uJ3QgYm90 aGVyIGNhbGN1bGF0aW5nIHRoZSBkaWZmZXJlbmNlIGZvciBhZGRpbmcsIHdlJ2xsIGNhdGNo IGFuZAorCQkgKiBza2lwIGV4aXN0aW5nIG9uZXMgd2hlbiBkb2luZyBjYXRhbG9nIHVwZGF0 ZS4KKwkJICovCisJCVB1YmxpY2F0aW9uQWRkUmVsYXRpb25zKHB1YmlkLCByZWxzLCB0cnVl LCBzdG10KTsKKworCQlDbG9zZVJlbGF0aW9uTGlzdChkZWxyZWxzKTsKKwl9CisKKwlDbG9z ZVJlbGF0aW9uTGlzdChyZWxzKTsKIH0KIAogLyoKQEAgLTEyMTQsMTQgKzE0NjYsMjIgQEAg QWx0ZXJQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25T dG10ICpzdG10KQogCQlBbHRlclB1YmxpY2F0aW9uT3B0aW9ucyhwc3RhdGUsIHN0bXQsIHJl bCwgdHVwKTsKIAllbHNlCiAJewotCQlMaXN0CSAgICpyZWxhdGlvbnMgPSBOSUw7CisJCUxp c3QJICAgKnRhYmxlcyA9IE5JTDsKKwkJTGlzdAkgICAqc2VxdWVuY2VzID0gTklMOworCQlM aXN0CSAgICp0YWJsZXNfc2NoZW1haWRsaXN0ID0gTklMOworCQlMaXN0CSAgICpzZXF1ZW5j ZXNfc2NoZW1haWRsaXN0ID0gTklMOwogCQlMaXN0CSAgICpzY2hlbWFpZGxpc3QgPSBOSUw7 CiAJCU9pZAkJCXB1YmlkID0gcHViZm9ybS0+b2lkOwogCi0JCU9iamVjdHNJblB1YmxpY2F0 aW9uVG9PaWRzKHN0bXQtPnB1Ym9iamVjdHMsIHBzdGF0ZSwgJnJlbGF0aW9ucywKKwkJT2Jq ZWN0c0luUHVibGljYXRpb25Ub09pZHMoc3RtdC0+cHVib2JqZWN0cywgcHN0YXRlLAorCQkJ CQkJCQkgICAmdGFibGVzLCAmc2VxdWVuY2VzLAorCQkJCQkJCQkgICAmdGFibGVzX3NjaGVt YWlkbGlzdCwKKwkJCQkJCQkJICAgJnNlcXVlbmNlc19zY2hlbWFpZGxpc3QsCiAJCQkJCQkJ CSAgICZzY2hlbWFpZGxpc3QpOwogCi0JCUNoZWNrQWx0ZXJQdWJsaWNhdGlvbihzdG10LCB0 dXAsIHJlbGF0aW9ucywgc2NoZW1haWRsaXN0KTsKKwkJQ2hlY2tBbHRlclB1YmxpY2F0aW9u KHN0bXQsIHR1cCwKKwkJCQkJCQkgIHRhYmxlcywgdGFibGVzX3NjaGVtYWlkbGlzdCwKKwkJ CQkJCQkgIHNlcXVlbmNlcywgc2VxdWVuY2VzX3NjaGVtYWlkbGlzdCk7CiAKIAkJaGVhcF9m cmVldHVwbGUodHVwKTsKIApAQCAtMTI0OSw5ICsxNTA5LDE2IEBAIEFsdGVyUHVibGljYXRp b24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAkJ CQkJZXJybXNnKCJwdWJsaWNhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAogCQkJCQkJ ICAgc3RtdC0+cHVibmFtZSkpOwogCi0JCUFsdGVyUHVibGljYXRpb25UYWJsZXMoc3RtdCwg dHVwLCByZWxhdGlvbnMsIHNjaGVtYWlkbGlzdCwKKwkJQWx0ZXJQdWJsaWNhdGlvblRhYmxl cyhzdG10LCB0dXAsIHRhYmxlcywgdGFibGVzX3NjaGVtYWlkbGlzdCwKIAkJCQkJCQkgICBw c3RhdGUtPnBfc291cmNldGV4dCk7Ci0JCUFsdGVyUHVibGljYXRpb25TY2hlbWFzKHN0bXQs IHR1cCwgc2NoZW1haWRsaXN0KTsKKworCQlBbHRlclB1YmxpY2F0aW9uU2VxdWVuY2VzKHN0 bXQsIHR1cCwgc2VxdWVuY2VzLCBzZXF1ZW5jZXNfc2NoZW1haWRsaXN0KTsKKworCQlBbHRl clB1YmxpY2F0aW9uU2NoZW1hcyhzdG10LCB0dXAsIHRhYmxlc19zY2hlbWFpZGxpc3QsCisJ CQkJCQkJCVBVQl9PQkpUWVBFX1RBQkxFKTsKKworCQlBbHRlclB1YmxpY2F0aW9uU2NoZW1h cyhzdG10LCB0dXAsIHNlcXVlbmNlc19zY2hlbWFpZGxpc3QsCisJCQkJCQkJCVBVQl9PQkpU WVBFX1NFUVVFTkNFKTsKIAl9CiAKIAkvKiBDbGVhbnVwLiAqLwpAQCAtMTMxOSw3ICsxNTg2 LDcgQEAgUmVtb3ZlUHVibGljYXRpb25CeUlkKE9pZCBwdWJpZCkKIAlwdWJmb3JtID0gKEZv cm1fcGdfcHVibGljYXRpb24pIEdFVFNUUlVDVCh0dXApOwogCiAJLyogSW52YWxpZGF0ZSBy ZWxjYWNoZSBzbyB0aGF0IHB1YmxpY2F0aW9uIGluZm8gaXMgcmVidWlsdC4gKi8KLQlpZiAo cHViZm9ybS0+cHViYWxsdGFibGVzKQorCWlmIChwdWJmb3JtLT5wdWJhbGx0YWJsZXMgfHwg cHViZm9ybS0+cHViYWxsc2VxdWVuY2VzKQogCQlDYWNoZUludmFsaWRhdGVSZWxjYWNoZUFs bCgpOwogCiAJQ2F0YWxvZ1R1cGxlRGVsZXRlKHJlbCwgJnR1cC0+dF9zZWxmKTsKQEAgLTEz NTUsNiArMTYyMiw3IEBAIFJlbW92ZVB1YmxpY2F0aW9uU2NoZW1hQnlJZChPaWQgcHNvaWQp CiAJICogcGFydGl0aW9ucy4KIAkgKi8KIAlzY2hlbWFSZWxzID0gR2V0U2NoZW1hUHVibGlj YXRpb25SZWxhdGlvbnMocHVic2NoLT5wbm5zcGlkLAorCQkJCQkJCQkJCQkgICBwdWJzY2gt PnBudHlwZSwKIAkJCQkJCQkJCQkJICAgUFVCTElDQVRJT05fUEFSVF9BTEwpOwogCUludmFs aWRhdGVQdWJsaWNhdGlvblJlbHMoc2NoZW1hUmVscyk7CiAKQEAgLTEzOTcsMjkgKzE2NjUs NDUgQEAgT3BlblJlbElkTGlzdChMaXN0ICpyZWxpZHMpCiAgKiBhZGQgdGhlbSB0byBhIHB1 YmxpY2F0aW9uLgogICovCiBzdGF0aWMgTGlzdCAqCi1PcGVuVGFibGVMaXN0KExpc3QgKnRh YmxlcykKK09wZW5SZWxhdGlvbkxpc3QoTGlzdCAqcmVscywgY2hhciBvYmplY3RUeXBlKQog ewogCUxpc3QJICAgKnJlbGlkcyA9IE5JTDsKLQlMaXN0CSAgICpyZWxzID0gTklMOworCUxp c3QJICAgKnJlc3VsdCA9IE5JTDsKIAlMaXN0Q2VsbCAgICpsYzsKIAlMaXN0CSAgICpyZWxp ZHNfd2l0aF9yZiA9IE5JTDsKIAogCS8qCiAJICogT3Blbiwgc2hhcmUtbG9jaywgYW5kIGNo ZWNrIGFsbCB0aGUgZXhwbGljaXRseS1zcGVjaWZpZWQgcmVsYXRpb25zCiAJICovCi0JZm9y ZWFjaChsYywgdGFibGVzKQorCWZvcmVhY2gobGMsIHJlbHMpCiAJewogCQlQdWJsaWNhdGlv blRhYmxlICp0ID0gbGZpcnN0X25vZGUoUHVibGljYXRpb25UYWJsZSwgbGMpOwogCQlib29s CQlyZWN1cnNlID0gdC0+cmVsYXRpb24tPmluaDsKIAkJUmVsYXRpb24JcmVsOwogCQlPaWQJ CQlteXJlbGlkOwogCQlQdWJsaWNhdGlvblJlbEluZm8gKnB1Yl9yZWw7CisJCWNoYXIJCW15 cmVsa2luZDsKIAogCQkvKiBBbGxvdyBxdWVyeSBjYW5jZWwgaW4gY2FzZSB0aGlzIHRha2Vz IGEgbG9uZyB0aW1lICovCiAJCUNIRUNLX0ZPUl9JTlRFUlJVUFRTKCk7CiAKIAkJcmVsID0g dGFibGVfb3BlbnJ2KHQtPnJlbGF0aW9uLCBTaGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2spOwog CQlteXJlbGlkID0gUmVsYXRpb25HZXRSZWxpZChyZWwpOworCQlteXJlbGtpbmQgPSBnZXRf cmVsX3JlbGtpbmQobXlyZWxpZCk7CisKKwkJLyoKKwkJICogTWFrZSBzdXJlIHRoZSByZWxr aW5kIG1hdGNoZXMgdGhlIGV4cGVjdGVkIG9iamVjdCB0eXBlLiBUaGlzIGhhcHBlbnMKKwkJ ICogZS5nLiB3aGVuIGFkZGluZyBhIHNlcXVlbmNlIHVzaW5nIEFERCBUQUJMRSBvciBhIHRh YmxlIHVzaW5nIEFERAorCQkgKiBTRVFVRU5DRSkuCisJCSAqCisJCSAqIFhYWCBXZSBsZXQg dGhyb3VnaCB1bnN1cHBvcnRlZCBvYmplY3QgdHlwZXMgKHZpZXdzIGV0Yy4pLiBUaG9zZSBh cmUKKwkJICogY2F1Z2h0IGxhdGVyIGluIGNoZWNrX3B1YmxpY2F0aW9uX2FkZF9yZWxhdGlv bi4gQSBiaXQgd2VpcmQuCisJCSAqCisJCSAqIEZJWE1FIFVzZSBhIGJldHRlciBlcnJvciBt ZXNzYWdlLgorCQkgKi8KKwkJaWYgKHB1Yl9nZXRfb2JqZWN0X3R5cGVfZm9yX3JlbGtpbmQo bXlyZWxraW5kKSAhPSBQVUJfT0JKVFlQRV9VTlNVUFBPUlRFRCAmJgorCQkJcHViX2dldF9v YmplY3RfdHlwZV9mb3JfcmVsa2luZChteXJlbGtpbmQpICE9IG9iamVjdFR5cGUpCisJCQll bG9nKEVSUk9SLCAib2JqZWN0IHR5cGUgbWlzbWF0Y2giKTsKIAogCQkvKgogCQkgKiBGaWx0 ZXIgb3V0IGR1cGxpY2F0ZXMgaWYgdXNlciBzcGVjaWZpZXMgImZvbywgZm9vIi4KQEAgLTE0 NDQsNyArMTcyOCw3IEBAIE9wZW5UYWJsZUxpc3QoTGlzdCAqdGFibGVzKQogCQlwdWJfcmVs ID0gcGFsbG9jKHNpemVvZihQdWJsaWNhdGlvblJlbEluZm8pKTsKIAkJcHViX3JlbC0+cmVs YXRpb24gPSByZWw7CiAJCXB1Yl9yZWwtPndoZXJlQ2xhdXNlID0gdC0+d2hlcmVDbGF1c2U7 Ci0JCXJlbHMgPSBsYXBwZW5kKHJlbHMsIHB1Yl9yZWwpOworCQlyZXN1bHQgPSBsYXBwZW5k KHJlc3VsdCwgcHViX3JlbCk7CiAJCXJlbGlkcyA9IGxhcHBlbmRfb2lkKHJlbGlkcywgbXly ZWxpZCk7CiAKIAkJaWYgKHQtPndoZXJlQ2xhdXNlKQpAQCAtMTQ5OCw3ICsxNzgyLDcgQEAg T3BlblRhYmxlTGlzdChMaXN0ICp0YWJsZXMpCiAJCQkJcHViX3JlbC0+cmVsYXRpb24gPSBy ZWw7CiAJCQkJLyogY2hpbGQgaW5oZXJpdHMgV0hFUkUgY2xhdXNlIGZyb20gcGFyZW50ICov CiAJCQkJcHViX3JlbC0+d2hlcmVDbGF1c2UgPSB0LT53aGVyZUNsYXVzZTsKLQkJCQlyZWxz ID0gbGFwcGVuZChyZWxzLCBwdWJfcmVsKTsKKwkJCQlyZXN1bHQgPSBsYXBwZW5kKHJlc3Vs dCwgcHViX3JlbCk7CiAJCQkJcmVsaWRzID0gbGFwcGVuZF9vaWQocmVsaWRzLCBjaGlsZHJl bGlkKTsKIAogCQkJCWlmICh0LT53aGVyZUNsYXVzZSkKQEAgLTE1MTAsMTQgKzE3OTQsMTQg QEAgT3BlblRhYmxlTGlzdChMaXN0ICp0YWJsZXMpCiAJbGlzdF9mcmVlKHJlbGlkcyk7CiAJ bGlzdF9mcmVlKHJlbGlkc193aXRoX3JmKTsKIAotCXJldHVybiByZWxzOworCXJldHVybiBy ZXN1bHQ7CiB9CiAKIC8qCiAgKiBDbG9zZSBhbGwgcmVsYXRpb25zIGluIHRoZSBsaXN0Lgog ICovCiBzdGF0aWMgdm9pZAotQ2xvc2VUYWJsZUxpc3QoTGlzdCAqcmVscykKK0Nsb3NlUmVs YXRpb25MaXN0KExpc3QgKnJlbHMpCiB7CiAJTGlzdENlbGwgICAqbGM7CiAKQEAgLTE1NjUs MTIgKzE4NDksMTIgQEAgTG9ja1NjaGVtYUxpc3QoTGlzdCAqc2NoZW1hbGlzdCkKICAqIEFk ZCBsaXN0ZWQgdGFibGVzIHRvIHRoZSBwdWJsaWNhdGlvbi4KICAqLwogc3RhdGljIHZvaWQK LVB1YmxpY2F0aW9uQWRkVGFibGVzKE9pZCBwdWJpZCwgTGlzdCAqcmVscywgYm9vbCBpZl9u b3RfZXhpc3RzLAorUHVibGljYXRpb25BZGRSZWxhdGlvbnMoT2lkIHB1YmlkLCBMaXN0ICpy ZWxzLCBib29sIGlmX25vdF9leGlzdHMsCiAJCQkJCSBBbHRlclB1YmxpY2F0aW9uU3RtdCAq c3RtdCkKIHsKIAlMaXN0Q2VsbCAgICpsYzsKIAotCUFzc2VydCghc3RtdCB8fCAhc3RtdC0+ Zm9yX2FsbF90YWJsZXMpOworCUFzc2VydCghc3RtdCB8fCAhc3RtdC0+Zm9yX2FsbF9vYmpl Y3RzKTsKIAogCWZvcmVhY2gobGMsIHJlbHMpCiAJewpAQCAtMTU5OSw3ICsxODgzLDcgQEAg UHVibGljYXRpb25BZGRUYWJsZXMoT2lkIHB1YmlkLCBMaXN0ICpyZWxzLCBib29sIGlmX25v dF9leGlzdHMsCiAgKiBSZW1vdmUgbGlzdGVkIHRhYmxlcyBmcm9tIHRoZSBwdWJsaWNhdGlv bi4KICAqLwogc3RhdGljIHZvaWQKLVB1YmxpY2F0aW9uRHJvcFRhYmxlcyhPaWQgcHViaWQs IExpc3QgKnJlbHMsIGJvb2wgbWlzc2luZ19vaykKK1B1YmxpY2F0aW9uRHJvcFJlbGF0aW9u cyhPaWQgcHViaWQsIExpc3QgKnJlbHMsIGJvb2wgbWlzc2luZ19vaykKIHsKIAlPYmplY3RB ZGRyZXNzIG9iajsKIAlMaXN0Q2VsbCAgICpsYzsKQEAgLTE2MzksMTkgKzE5MjMsMTkgQEAg UHVibGljYXRpb25Ecm9wVGFibGVzKE9pZCBwdWJpZCwgTGlzdCAqcmVscywgYm9vbCBtaXNz aW5nX29rKQogICogQWRkIGxpc3RlZCBzY2hlbWFzIHRvIHRoZSBwdWJsaWNhdGlvbi4KICAq Lwogc3RhdGljIHZvaWQKLVB1YmxpY2F0aW9uQWRkU2NoZW1hcyhPaWQgcHViaWQsIExpc3Qg KnNjaGVtYXMsIGJvb2wgaWZfbm90X2V4aXN0cywKLQkJCQkJICBBbHRlclB1YmxpY2F0aW9u U3RtdCAqc3RtdCkKK1B1YmxpY2F0aW9uQWRkU2NoZW1hcyhPaWQgcHViaWQsIExpc3QgKnNj aGVtYXMsIGNoYXIgb2JqZWN0VHlwZSwKKwkJCQkJICBib29sIGlmX25vdF9leGlzdHMsIEFs dGVyUHVibGljYXRpb25TdG10ICpzdG10KQogewogCUxpc3RDZWxsICAgKmxjOwogCi0JQXNz ZXJ0KCFzdG10IHx8ICFzdG10LT5mb3JfYWxsX3RhYmxlcyk7CisJQXNzZXJ0KCFzdG10IHx8 ICFzdG10LT5mb3JfYWxsX29iamVjdHMpOwogCiAJZm9yZWFjaChsYywgc2NoZW1hcykKIAl7 CiAJCU9pZAkJCXNjaGVtYWlkID0gbGZpcnN0X29pZChsYyk7CiAJCU9iamVjdEFkZHJlc3Mg b2JqOwogCi0JCW9iaiA9IHB1YmxpY2F0aW9uX2FkZF9zY2hlbWEocHViaWQsIHNjaGVtYWlk LCBpZl9ub3RfZXhpc3RzKTsKKwkJb2JqID0gcHVibGljYXRpb25fYWRkX3NjaGVtYShwdWJp ZCwgc2NoZW1haWQsIG9iamVjdFR5cGUsIGlmX25vdF9leGlzdHMpOwogCQlpZiAoc3RtdCkK IAkJewogCQkJRXZlbnRUcmlnZ2VyQ29sbGVjdFNpbXBsZUNvbW1hbmQob2JqLCBJbnZhbGlk T2JqZWN0QWRkcmVzcywKQEAgLTE2NjcsNyArMTk1MSw3IEBAIFB1YmxpY2F0aW9uQWRkU2No ZW1hcyhPaWQgcHViaWQsIExpc3QgKnNjaGVtYXMsIGJvb2wgaWZfbm90X2V4aXN0cywKICAq IFJlbW92ZSBsaXN0ZWQgc2NoZW1hcyBmcm9tIHRoZSBwdWJsaWNhdGlvbi4KICAqLwogc3Rh dGljIHZvaWQKLVB1YmxpY2F0aW9uRHJvcFNjaGVtYXMoT2lkIHB1YmlkLCBMaXN0ICpzY2hl bWFzLCBib29sIG1pc3Npbmdfb2spCitQdWJsaWNhdGlvbkRyb3BTY2hlbWFzKE9pZCBwdWJp ZCwgTGlzdCAqc2NoZW1hcywgY2hhciBvYmplY3RUeXBlLCBib29sIG1pc3Npbmdfb2spCiB7 CiAJT2JqZWN0QWRkcmVzcyBvYmo7CiAJTGlzdENlbGwgICAqbGM7CkBAIC0xNjc3LDEwICsx OTYxLDExIEBAIFB1YmxpY2F0aW9uRHJvcFNjaGVtYXMoT2lkIHB1YmlkLCBMaXN0ICpzY2hl bWFzLCBib29sIG1pc3Npbmdfb2spCiAJewogCQlPaWQJCQlzY2hlbWFpZCA9IGxmaXJzdF9v aWQobGMpOwogCi0JCXBzaWQgPSBHZXRTeXNDYWNoZU9pZDIoUFVCTElDQVRJT05OQU1FU1BB Q0VNQVAsCisJCXBzaWQgPSBHZXRTeXNDYWNoZU9pZDMoUFVCTElDQVRJT05OQU1FU1BBQ0VN QVAsCiAJCQkJCQkJICAgQW51bV9wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2Vfb2lkLAogCQkJ CQkJCSAgIE9iamVjdElkR2V0RGF0dW0oc2NoZW1haWQpLAotCQkJCQkJCSAgIE9iamVjdElk R2V0RGF0dW0ocHViaWQpKTsKKwkJCQkJCQkgICBPYmplY3RJZEdldERhdHVtKHB1YmlkKSwK KwkJCQkJCQkgICBDaGFyR2V0RGF0dW0ob2JqZWN0VHlwZSkpOwogCQlpZiAoIU9pZElzVmFs aWQocHNpZCkpCiAJCXsKIAkJCWlmIChtaXNzaW5nX29rKQpAQCAtMTczNSw2ICsyMDIwLDEz IEBAIEFsdGVyUHVibGljYXRpb25Pd25lcl9pbnRlcm5hbChSZWxhdGlvbiByZWwsIEhlYXBU dXBsZSB0dXAsIE9pZCBuZXdPd25lcklkKQogCQkJCQkJCU5hbWVTdHIoZm9ybS0+cHVibmFt ZSkpLAogCQkJCQkgZXJyaGludCgiVGhlIG93bmVyIG9mIGEgRk9SIEFMTCBUQUJMRVMgcHVi bGljYXRpb24gbXVzdCBiZSBhIHN1cGVydXNlci4iKSkpOwogCisJCWlmIChmb3JtLT5wdWJh bGxzZXF1ZW5jZXMgJiYgIXN1cGVydXNlcl9hcmcobmV3T3duZXJJZCkpCisJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0Up LAorCQkJCQkgZXJybXNnKCJwZXJtaXNzaW9uIGRlbmllZCB0byBjaGFuZ2Ugb3duZXIgb2Yg cHVibGljYXRpb24gXCIlc1wiIiwKKwkJCQkJCQlOYW1lU3RyKGZvcm0tPnB1Ym5hbWUpKSwK KwkJCQkJIGVycmhpbnQoIlRoZSBvd25lciBvZiBhIEZPUiBBTEwgU0VRVUVOQ0VTIHB1Ymxp Y2F0aW9uIG11c3QgYmUgYSBzdXBlcnVzZXIuIikpKTsKKwogCQlpZiAoIXN1cGVydXNlcl9h cmcobmV3T3duZXJJZCkgJiYgaXNfc2NoZW1hX3B1YmxpY2F0aW9uKGZvcm0tPm9pZCkpCiAJ CQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9Q UklWSUxFR0UpLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VxdWVuY2Uu YyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlcXVlbmNlLmMKaW5kZXggYWI1OTJjZTJmMTUu LmYzNjQxMzQ1YjMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXF1ZW5j ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlcXVlbmNlLmMKQEAgLTMzNiw2ICsz MzYsODUgQEAgUmVzZXRTZXF1ZW5jZShPaWQgc2VxX3JlbGlkKQogCXJlbGF0aW9uX2Nsb3Nl KHNlcV9yZWwsIE5vTG9jayk7CiB9CiAKKy8qCisgKiBTZXQgYSBzZXF1ZW5jZSB0byBhIHNw ZWNpZmllZCBpbnRlcm5hbCBzdGF0ZS4KKyAqCisgKiBUaGUgY2hhbmdlIGlzIG1hZGUgdHJh bnNhY3Rpb25hbGx5LCBzbyB0aGF0IG9uIGZhaWx1cmUgb2YgdGhlIGN1cnJlbnQKKyAqIHRy YW5zYWN0aW9uLCB0aGUgc2VxdWVuY2Ugd2lsbCBiZSByZXN0b3JlZCB0byBpdHMgcHJldmlv dXMgc3RhdGUuCisgKiBXZSBkbyB0aGF0IGJ5IGNyZWF0aW5nIGEgd2hvbGUgbmV3IHJlbGZp bGVub2RlIGZvciB0aGUgc2VxdWVuY2U7IHNvIHRoaXMKKyAqIHdvcmtzIG11Y2ggbGlrZSB0 aGUgcmV3cml0aW5nIGZvcm1zIG9mIEFMVEVSIFRBQkxFLgorICoKKyAqIENhbGxlciBpcyBh c3N1bWVkIHRvIGhhdmUgYWNxdWlyZWQgQWNjZXNzRXhjbHVzaXZlTG9jayBvbiB0aGUgc2Vx dWVuY2UsCisgKiB3aGljaCBtdXN0IG5vdCBiZSByZWxlYXNlZCB1bnRpbCBlbmQgb2YgdHJh bnNhY3Rpb24uICBDYWxsZXIgaXMgYWxzbworICogcmVzcG9uc2libGUgZm9yIHBlcm1pc3Np b25zIGNoZWNraW5nLgorICovCit2b2lkCitTZXRTZXF1ZW5jZShPaWQgc2VxX3JlbGlkLCBp bnQ2NCBsYXN0X3ZhbHVlLCBpbnQ2NCBsb2dfY250LCBib29sIGlzX2NhbGxlZCkKK3sKKwlS ZWxhdGlvbglzZXFfcmVsOworCVNlcVRhYmxlCWVsbTsKKwlGb3JtX3BnX3NlcXVlbmNlX2Rh dGEgc2VxOworCUJ1ZmZlcgkJYnVmOworCUhlYXBUdXBsZURhdGEgc2VxZGF0YXR1cGxlOwor CUhlYXBUdXBsZQl0dXBsZTsKKworCS8qCisJICogUmVhZCB0aGUgb2xkIHNlcXVlbmNlLiAg VGhpcyBkb2VzIGEgYml0IG1vcmUgd29yayB0aGFuIHJlYWxseQorCSAqIG5lY2Vzc2FyeSwg YnV0IGl0J3Mgc2ltcGxlLCBhbmQgd2UgZG8gd2FudCB0byBkb3VibGUtY2hlY2sgdGhhdCBp dCdzCisJICogaW5kZWVkIGEgc2VxdWVuY2UuCisJICovCisJaW5pdF9zZXF1ZW5jZShzZXFf cmVsaWQsICZlbG0sICZzZXFfcmVsKTsKKwkodm9pZCkgcmVhZF9zZXFfdHVwbGUoc2VxX3Jl bCwgJmJ1ZiwgJnNlcWRhdGF0dXBsZSk7CisKKwkvKgorCSAqIENvcHkgdGhlIGV4aXN0aW5n IHNlcXVlbmNlIHR1cGxlLgorCSAqLworCXR1cGxlID0gaGVhcF9jb3B5dHVwbGUoJnNlcWRh dGF0dXBsZSk7CisKKwkvKiBOb3cgd2UncmUgZG9uZSB3aXRoIHRoZSBvbGQgcGFnZSAqLwor CVVubG9ja1JlbGVhc2VCdWZmZXIoYnVmKTsKKworCS8qCisJICogTW9kaWZ5IHRoZSBjb3Bp ZWQgdHVwbGUgdG8gZXhlY3V0ZSB0aGUgcmVzdGFydCAoY29tcGFyZSB0aGUgUkVTVEFSVAor CSAqIGFjdGlvbiBpbiBBbHRlclNlcXVlbmNlKQorCSAqLworCXNlcSA9IChGb3JtX3BnX3Nl cXVlbmNlX2RhdGEpIEdFVFNUUlVDVCh0dXBsZSk7CisJc2VxLT5sYXN0X3ZhbHVlID0gbGFz dF92YWx1ZTsKKwlzZXEtPmlzX2NhbGxlZCA9IGlzX2NhbGxlZDsKKwlzZXEtPmxvZ19jbnQg PSBsb2dfY250OworCisJLyoKKwkgKiBDcmVhdGUgYSBuZXcgc3RvcmFnZSBmaWxlIGZvciB0 aGUgc2VxdWVuY2UuCisJICovCisJUmVsYXRpb25TZXROZXdSZWxmaWxlbm9kZShzZXFfcmVs LCBzZXFfcmVsLT5yZF9yZWwtPnJlbHBlcnNpc3RlbmNlKTsKKworCS8qCisJICogRW5zdXJl IHNlcXVlbmNlJ3MgcmVsZnJvemVueGlkIGlzIGF0IDAsIHNpbmNlIGl0IHdvbid0IGNvbnRh aW4gYW55CisJICogdW5mcm96ZW4gWElEcy4gIFNhbWUgd2l0aCByZWxtaW5teGlkLCBzaW5j ZSBhIHNlcXVlbmNlIHdpbGwgbmV2ZXIKKwkgKiBjb250YWluIG11bHRpeGFjdHMuCisJICov CisJQXNzZXJ0KHNlcV9yZWwtPnJkX3JlbC0+cmVsZnJvemVueGlkID09IEludmFsaWRUcmFu c2FjdGlvbklkKTsKKwlBc3NlcnQoc2VxX3JlbC0+cmRfcmVsLT5yZWxtaW5teGlkID09IElu dmFsaWRNdWx0aVhhY3RJZCk7CisKKwkvKgorCSAqIEluc2VydCB0aGUgbW9kaWZpZWQgdHVw bGUgaW50byB0aGUgbmV3IHN0b3JhZ2UgZmlsZS4KKwkgKgorCSAqIFhYWCBNYXliZSB0aGlz IHNob3VsZCBhbHNvIHVzZSBjcmVhdGVkPXRydWUsIGp1c3QgbGlrZSB0aGUgb3RoZXIgcGxh Y2VzCisJICogY2FsbGluZyBmaWxsX3NlcV93aXRoX2RhdGEuIFRoYXQncyBwcm9iYWJseSBu ZWVkZWQgZm9yIGNvcnJlY3QgY2FzY2FkaW5nCisJICogcmVwbGljYXRpb24uCisJICoKKwkg KiBYWFggVGhhdCdkIG1lYW4gYWxsIGZpbGxfc2VxX3dpdGhfZGF0YSBjYWxsZXJzIHVzZSBj cmVhdGVkPXRydWUsIG1ha2luZworCSAqIHRoZSBwYXJhbWV0ZXIgdW5uZWNlc3NhcnkuCisJ ICovCisJZmlsbF9zZXFfd2l0aF9kYXRhKHNlcV9yZWwsIHR1cGxlKTsKKworCS8qIENsZWFy IGxvY2FsIGNhY2hlIHNvIHRoYXQgd2UgZG9uJ3QgdGhpbmsgd2UgaGF2ZSBjYWNoZWQgbnVt YmVycyAqLworCS8qIE5vdGUgdGhhdCB3ZSBkbyBub3QgY2hhbmdlIHRoZSBjdXJydmFsKCkg c3RhdGUgKi8KKwllbG0tPmNhY2hlZCA9IGVsbS0+bGFzdDsKKworCXJlbGF0aW9uX2Nsb3Nl KHNlcV9yZWwsIE5vTG9jayk7Cit9CisKIC8qCiAgKiBJbml0aWFsaXplIGEgc2VxdWVuY2Un cyByZWxhdGlvbiB3aXRoIHRoZSBzcGVjaWZpZWQgdHVwbGUgYXMgY29udGVudAogICovCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKaW5kZXggMzkyMjY1OGJi Y2EuLjA4MjRjNzliZjhjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJz Y3JpcHRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9u Y21kcy5jCkBAIC04Nyw2ICs4Nyw3IEBAIHR5cGVkZWYgc3RydWN0IFN1Yk9wdHMKIH0gU3Vi T3B0czsKIAogc3RhdGljIExpc3QgKmZldGNoX3RhYmxlX2xpc3QoV2FsUmVjZWl2ZXJDb25u ICp3cmNvbm4sIExpc3QgKnB1YmxpY2F0aW9ucyk7CitzdGF0aWMgTGlzdCAqZmV0Y2hfc2Vx dWVuY2VfbGlzdChXYWxSZWNlaXZlckNvbm4gKndyY29ubiwgTGlzdCAqcHVibGljYXRpb25z KTsKIHN0YXRpYyB2b2lkIGNoZWNrX2R1cGxpY2F0ZXNfaW5fcHVibGlzdChMaXN0ICpwdWJs aXN0LCBEYXR1bSAqZGF0dW1zKTsKIHN0YXRpYyBMaXN0ICptZXJnZV9wdWJsaWNhdGlvbnMo TGlzdCAqb2xkcHVibGlzdCwgTGlzdCAqbmV3cHVibGlzdCwgYm9vbCBhZGRwdWIsIGNvbnN0 IGNoYXIgKnN1Ym5hbWUpOwogc3RhdGljIHZvaWQgUmVwb3J0U2xvdENvbm5lY3Rpb25FcnJv cihMaXN0ICpyc3RhdGVzLCBPaWQgc3ViaWQsIGNoYXIgKnNsb3RuYW1lLCBjaGFyICplcnIp OwpAQCAtNTEwLDkgKzUxMSw5IEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpw c3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJewogCQljaGFyCSAgICpl cnI7CiAJCVdhbFJlY2VpdmVyQ29ubiAqd3Jjb25uOwotCQlMaXN0CSAgICp0YWJsZXM7CisJ CUxpc3QJICAgKnJlbGF0aW9uczsKIAkJTGlzdENlbGwgICAqbGM7Ci0JCWNoYXIJCXRhYmxl X3N0YXRlOworCQljaGFyCQlzeW5jX3N0YXRlOwogCiAJCS8qIFRyeSB0byBjb25uZWN0IHRv IHRoZSBwdWJsaXNoZXIuICovCiAJCXdyY29ubiA9IHdhbHJjdl9jb25uZWN0KGNvbm5pbmZv LCB0cnVlLCBzdG10LT5zdWJuYW1lLCAmZXJyKTsKQEAgLTUyNywxNCArNTI4LDE3IEBAIENy ZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlv blN0bXQgKnN0bXQsCiAJCQkgKiBTZXQgc3luYyBzdGF0ZSBiYXNlZCBvbiBpZiB3ZSB3ZXJl IGFza2VkIHRvIGRvIGRhdGEgY29weSBvcgogCQkJICogbm90LgogCQkJICovCi0JCQl0YWJs ZV9zdGF0ZSA9IG9wdHMuY29weV9kYXRhID8gU1VCUkVMX1NUQVRFX0lOSVQgOiBTVUJSRUxf U1RBVEVfUkVBRFk7CisJCQlzeW5jX3N0YXRlID0gb3B0cy5jb3B5X2RhdGEgPyBTVUJSRUxf U1RBVEVfSU5JVCA6IFNVQlJFTF9TVEFURV9SRUFEWTsKIAogCQkJLyoKLQkJCSAqIEdldCB0 aGUgdGFibGUgbGlzdCBmcm9tIHB1Ymxpc2hlciBhbmQgYnVpbGQgbG9jYWwgdGFibGUgc3Rh dHVzCi0JCQkgKiBpbmZvLgorCQkJICogR2V0IHRoZSB0YWJsZSBhbmQgc2VxdWVuY2UgbGlz dCBmcm9tIHB1Ymxpc2hlciBhbmQgYnVpbGQKKwkJCSAqIGxvY2FsIHJlbGF0aW9uIHN5bmMg c3RhdHVzIGluZm8uCiAJCQkgKi8KLQkJCXRhYmxlcyA9IGZldGNoX3RhYmxlX2xpc3Qod3Jj b25uLCBwdWJsaWNhdGlvbnMpOwotCQkJZm9yZWFjaChsYywgdGFibGVzKQorCQkJcmVsYXRp b25zID0gZmV0Y2hfdGFibGVfbGlzdCh3cmNvbm4sIHB1YmxpY2F0aW9ucyk7CisJCQlyZWxh dGlvbnMgPSBsaXN0X2NvbmNhdChyZWxhdGlvbnMsCisJCQkJCQkJCQlmZXRjaF9zZXF1ZW5j ZV9saXN0KHdyY29ubiwgcHVibGljYXRpb25zKSk7CisKKwkJCWZvcmVhY2gobGMsIHJlbGF0 aW9ucykKIAkJCXsKIAkJCQlSYW5nZVZhciAgICpydiA9IChSYW5nZVZhciAqKSBsZmlyc3Qo bGMpOwogCQkJCU9pZAkJCXJlbGlkOwpAQCAtNTQ1LDcgKzU0OSw3IEBAIENyZWF0ZVN1YnNj cmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0 bXQsCiAJCQkJQ2hlY2tTdWJzY3JpcHRpb25SZWxraW5kKGdldF9yZWxfcmVsa2luZChyZWxp ZCksCiAJCQkJCQkJCQkJIHJ2LT5zY2hlbWFuYW1lLCBydi0+cmVsbmFtZSk7CiAKLQkJCQlB ZGRTdWJzY3JpcHRpb25SZWxTdGF0ZShzdWJpZCwgcmVsaWQsIHRhYmxlX3N0YXRlLAorCQkJ CUFkZFN1YnNjcmlwdGlvblJlbFN0YXRlKHN1YmlkLCByZWxpZCwgc3luY19zdGF0ZSwKIAkJ CQkJCQkJCQlJbnZhbGlkWExvZ1JlY1B0cik7CiAJCQl9CiAKQEAgLTU3MSwxMiArNTc1LDEy IEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNj cmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJICoKIAkJCQkgKiBOb3RlIHRoYXQgaWYgdGFibGVz IHdlcmUgc3BlY2lmaWVkIGJ1dCBjb3B5X2RhdGEgaXMgZmFsc2UKIAkJCQkgKiB0aGVuIGl0 IGlzIHNhZmUgdG8gZW5hYmxlIHR3b19waGFzZSB1cC1mcm9udCBiZWNhdXNlIHRob3NlCi0J CQkJICogdGFibGVzIGFyZSBhbHJlYWR5IGluaXRpYWxseSBpbiBSRUFEWSBzdGF0ZS4gV2hl biB0aGUKLQkJCQkgKiBzdWJzY3JpcHRpb24gaGFzIG5vIHRhYmxlcywgd2UgbGVhdmUgdGhl IHR3b3BoYXNlIHN0YXRlIGFzCi0JCQkJICogUEVORElORywgdG8gYWxsb3cgQUxURVIgU1VC U0NSSVBUSU9OIC4uLiBSRUZSRVNICisJCQkJICogcmVsYXRpb25zIGFyZSBhbHJlYWR5IGlu aXRpYWxseSBpbiBSRUFEWSBzdGF0ZS4gV2hlbiB0aGUKKwkJCQkgKiBzdWJzY3JpcHRpb24g aGFzIG5vIHJlbGF0aW9ucywgd2UgbGVhdmUgdGhlIHR3b3BoYXNlIHN0YXRlCisJCQkJICog YXMgUEVORElORywgdG8gYWxsb3cgQUxURVIgU1VCU0NSSVBUSU9OIC4uLiBSRUZSRVNICiAJ CQkJICogUFVCTElDQVRJT04gdG8gd29yay4KIAkJCQkgKi8KLQkJCQlpZiAob3B0cy50d29w aGFzZSAmJiAhb3B0cy5jb3B5X2RhdGEgJiYgdGFibGVzICE9IE5JTCkKKwkJCQlpZiAob3B0 cy50d29waGFzZSAmJiAhb3B0cy5jb3B5X2RhdGEgJiYgcmVsYXRpb25zICE9IE5JTCkKIAkJ CQkJdHdvcGhhc2VfZW5hYmxlZCA9IHRydWU7CiAKIAkJCQl3YWxyY3ZfY3JlYXRlX3Nsb3Qo d3Jjb25uLCBvcHRzLnNsb3RfbmFtZSwgZmFsc2UsIHR3b3BoYXNlX2VuYWJsZWQsCkBAIC02 NDYsOCArNjUwLDEwIEBAIEFsdGVyU3Vic2NyaXB0aW9uX3JlZnJlc2goU3Vic2NyaXB0aW9u ICpzdWIsIGJvb2wgY29weV9kYXRhKQogCiAJUEdfVFJZKCk7CiAJewotCQkvKiBHZXQgdGhl IHRhYmxlIGxpc3QgZnJvbSBwdWJsaXNoZXIuICovCisJCS8qIEdldCB0aGUgbGlzdCBvZiBy ZWxhdGlvbnMgZnJvbSBwdWJsaXNoZXIuICovCiAJCXB1YnJlbF9uYW1lcyA9IGZldGNoX3Rh YmxlX2xpc3Qod3Jjb25uLCBzdWItPnB1YmxpY2F0aW9ucyk7CisJCXB1YnJlbF9uYW1lcyA9 IGxpc3RfY29uY2F0KHB1YnJlbF9uYW1lcywKKwkJCQkJCQkJICAgZmV0Y2hfc2VxdWVuY2Vf bGlzdCh3cmNvbm4sIHN1Yi0+cHVibGljYXRpb25zKSk7CiAKIAkJLyogR2V0IGxvY2FsIHRh YmxlIGxpc3QuICovCiAJCXN1YnJlbF9zdGF0ZXMgPSBHZXRTdWJzY3JpcHRpb25SZWxhdGlv bnMoc3ViLT5vaWQpOwpAQCAtMTYzOSw2ICsxNjQ1LDc1IEBAIGZldGNoX3RhYmxlX2xpc3Qo V2FsUmVjZWl2ZXJDb25uICp3cmNvbm4sIExpc3QgKnB1YmxpY2F0aW9ucykKIAlyZXR1cm4g dGFibGVsaXN0OwogfQogCisvKgorICogR2V0IHRoZSBsaXN0IG9mIHNlcXVlbmNlcyB3aGlj aCBiZWxvbmcgdG8gc3BlY2lmaWVkIHB1YmxpY2F0aW9ucyBvbiB0aGUKKyAqIHB1Ymxpc2hl ciBjb25uZWN0aW9uLgorICovCitzdGF0aWMgTGlzdCAqCitmZXRjaF9zZXF1ZW5jZV9saXN0 KFdhbFJlY2VpdmVyQ29ubiAqd3Jjb25uLCBMaXN0ICpwdWJsaWNhdGlvbnMpCit7CisJV2Fs UmN2RXhlY1Jlc3VsdCAqcmVzOworCVN0cmluZ0luZm9EYXRhIGNtZDsKKwlUdXBsZVRhYmxl U2xvdCAqc2xvdDsKKwlPaWQJCQl0YWJsZVJvd1syXSA9IHtURVhUT0lELCBURVhUT0lEfTsK KwlMaXN0Q2VsbCAgICpsYzsKKwlib29sCQlmaXJzdDsKKwlMaXN0CSAgICp0YWJsZWxpc3Qg PSBOSUw7CisKKwlBc3NlcnQobGlzdF9sZW5ndGgocHVibGljYXRpb25zKSA+IDApOworCisJ aW5pdFN0cmluZ0luZm8oJmNtZCk7CisJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmY21kLCAi U0VMRUNUIERJU1RJTkNUIHMuc2NoZW1hbmFtZSwgcy5zZXF1ZW5jZW5hbWVcbiIKKwkJCQkJ CSAgICIgIEZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9zZXF1ZW5jZXMgc1xuIgor CQkJCQkJICAgIiBXSEVSRSBzLnB1Ym5hbWUgSU4gKCIpOworCWZpcnN0ID0gdHJ1ZTsKKwlm b3JlYWNoKGxjLCBwdWJsaWNhdGlvbnMpCisJeworCQljaGFyCSAgICpwdWJuYW1lID0gc3Ry VmFsKGxmaXJzdChsYykpOworCisJCWlmIChmaXJzdCkKKwkJCWZpcnN0ID0gZmFsc2U7CisJ CWVsc2UKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmNtZCwgIiwgIik7CisKKwkJYXBw ZW5kU3RyaW5nSW5mb1N0cmluZygmY21kLCBxdW90ZV9saXRlcmFsX2NzdHIocHVibmFtZSkp OworCX0KKwlhcHBlbmRTdHJpbmdJbmZvQ2hhcigmY21kLCAnKScpOworCisJcmVzID0gd2Fs cmN2X2V4ZWMod3Jjb25uLCBjbWQuZGF0YSwgMiwgdGFibGVSb3cpOworCXBmcmVlKGNtZC5k YXRhKTsKKworCWlmIChyZXMtPnN0YXR1cyAhPSBXQUxSQ1ZfT0tfVFVQTEVTKQorCQllcmVw b3J0KEVSUk9SLAorCQkJCShlcnJtc2coImNvdWxkIG5vdCByZWNlaXZlIGxpc3Qgb2YgcmVw bGljYXRlZCBzZXF1ZW5jZXMgZnJvbSB0aGUgcHVibGlzaGVyOiAlcyIsCisJCQkJCQlyZXMt PmVycikpKTsKKworCS8qIFByb2Nlc3MgdGFibGVzLiAqLworCXNsb3QgPSBNYWtlU2luZ2xl VHVwbGVUYWJsZVNsb3QocmVzLT50dXBsZWRlc2MsICZUVFNPcHNNaW5pbWFsVHVwbGUpOwor CXdoaWxlICh0dXBsZXN0b3JlX2dldHR1cGxlc2xvdChyZXMtPnR1cGxlc3RvcmUsIHRydWUs IGZhbHNlLCBzbG90KSkKKwl7CisJCWNoYXIJICAgKm5zcG5hbWU7CisJCWNoYXIJICAgKnJl bG5hbWU7CisJCWJvb2wJCWlzbnVsbDsKKwkJUmFuZ2VWYXIgICAqcnY7CisKKwkJbnNwbmFt ZSA9IFRleHREYXR1bUdldENTdHJpbmcoc2xvdF9nZXRhdHRyKHNsb3QsIDEsICZpc251bGwp KTsKKwkJQXNzZXJ0KCFpc251bGwpOworCQlyZWxuYW1lID0gVGV4dERhdHVtR2V0Q1N0cmlu ZyhzbG90X2dldGF0dHIoc2xvdCwgMiwgJmlzbnVsbCkpOworCQlBc3NlcnQoIWlzbnVsbCk7 CisKKwkJcnYgPSBtYWtlUmFuZ2VWYXIobnNwbmFtZSwgcmVsbmFtZSwgLTEpOworCQl0YWJs ZWxpc3QgPSBsYXBwZW5kKHRhYmxlbGlzdCwgcnYpOworCisJCUV4ZWNDbGVhclR1cGxlKHNs b3QpOworCX0KKwlFeGVjRHJvcFNpbmdsZVR1cGxlVGFibGVTbG90KHNsb3QpOworCisJd2Fs cmN2X2NsZWFyX3Jlc3VsdChyZXMpOworCisJcmV0dXJuIHRhYmxlbGlzdDsKK30KKwogLyoK ICAqIFRoaXMgaXMgdG8gcmVwb3J0IHRoZSBjb25uZWN0aW9uIGZhaWx1cmUgd2hpbGUgZHJv cHBpbmcgcmVwbGljYXRpb24gc2xvdHMuCiAgKiBIZXJlLCB3ZSByZXBvcnQgdGhlIFdBUk5J TkcgZm9yIGFsbCB0YWJsZXN5bmMgc2xvdHMgc28gdGhhdCB1c2VyIGNhbiBkcm9wCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IGRjNTg3MmY5ODhjLi5kNzRiZTFhNmE3NCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNs dWRlICJjYXRhbG9nL3BnX2luaGVyaXRzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1l c3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX29wY2xhc3MuaCIKKyNpbmNsdWRlICJj YXRhbG9nL3BnX3B1YmxpY2F0aW9uX25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfc3RhdGlzdGljX2V4dC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFjZS5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHJpZ2dlci5oIgpAQCAtMTYzNTgsMTEgKzE2MzU5 LDE0IEBAIEFsdGVyVGFibGVOYW1lc3BhY2UoQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpzdG10 LCBPaWQgKm9sZHNjaGVtYSkKIAkgKiBDaGVjayB0aGF0IHNldHRpbmcgdGhlIHJlbGF0aW9u IHRvIGEgZGlmZmVyZW50IHNjaGVtYSB3b24ndCByZXN1bHQgaW4gYQogCSAqIHB1YmxpY2F0 aW9uIGhhdmluZyBib3RoIGEgc2NoZW1hIGFuZCB0aGUgc2FtZSBzY2hlbWEncyB0YWJsZSwg YXMgdGhpcwogCSAqIGlzIG5vdCBzdXBwb3J0ZWQuCisJICoKKwkgKiBYWFggVGhlIGJsb2Nr cyBhcmUgYWxtb3N0IGV4YWN0bHkgdGhlIHNhbWUsIHNvIG1heWJlIGNvbWJpbmUgdGhlbSBp bnRvCisJICogYSBzaW5nbGUgYmxvY2suCiAJICovCiAJaWYgKHN0bXQtPm9iamVjdFR5cGUg PT0gT0JKRUNUX1RBQkxFKQogCXsKIAkJTGlzdENlbGwgICAqbGM7Ci0JCUxpc3QJICAgKnNj aGVtYVB1YmlkcyA9IEdldFNjaGVtYVB1YmxpY2F0aW9ucyhuc3BPaWQpOworCQlMaXN0CSAg ICpzY2hlbWFQdWJpZHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMobnNwT2lkLCBQVUJfT0JK VFlQRV9UQUJMRSk7CiAJCUxpc3QJICAgKnJlbFB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGlj YXRpb25zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSk7CiAKIAkJZm9yZWFjaChsYywgcmVsUHVi aWRzKQpAQCAtMTYzODAsNiArMTYzODQsMjcgQEAgQWx0ZXJUYWJsZU5hbWVzcGFjZShBbHRl ck9iamVjdFNjaGVtYVN0bXQgKnN0bXQsIE9pZCAqb2xkc2NoZW1hKQogCQkJCQkJCQkgIGdl dF9wdWJsaWNhdGlvbl9uYW1lKHB1YmlkLCBmYWxzZSkpKTsKIAkJfQogCX0KKwllbHNlIGlm IChzdG10LT5vYmplY3RUeXBlID09IE9CSkVDVF9TRVFVRU5DRSkKKwl7CisJCUxpc3RDZWxs ICAgKmxjOworCQlMaXN0CSAgICpzY2hlbWFQdWJpZHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlv bnMobnNwT2lkLCBQVUJfT0JKVFlQRV9TRVFVRU5DRSk7CisJCUxpc3QJICAgKnJlbFB1Ymlk cyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSk7CisK KwkJZm9yZWFjaChsYywgcmVsUHViaWRzKQorCQl7CisJCQlPaWQJCQlwdWJpZCA9IGxmaXJz dF9vaWQobGMpOworCisJCQlpZiAobGlzdF9tZW1iZXJfb2lkKHNjaGVtYVB1YmlkcywgcHVi aWQpKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVS RV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCWVycm1zZygiY2Fubm90IG1vdmUgc2VxdWVuY2Ug XCIlc1wiIHRvIHNjaGVtYSBcIiVzXCIiLAorCQkJCQkJCSAgIFJlbGF0aW9uR2V0UmVsYXRp b25OYW1lKHJlbCksIHN0bXQtPm5ld3NjaGVtYSksCisJCQkJCQllcnJkZXRhaWwoIlRoZSBz Y2hlbWEgXCIlc1wiIGFuZCBzYW1lIHNjaGVtYSdzIHNlcXVlbmNlIFwiJXNcIiBjYW5ub3Qg YmUgcGFydCBvZiB0aGUgc2FtZSBwdWJsaWNhdGlvbiBcIiVzXCIuIiwKKwkJCQkJCQkJICBz dG10LT5uZXdzY2hlbWEsCisJCQkJCQkJCSAgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVs KSwKKwkJCQkJCQkJICBnZXRfcHVibGljYXRpb25fbmFtZShwdWJpZCwgZmFsc2UpKSk7CisJ CX0KKwl9CiAKIAkvKiBjb21tb24gY2hlY2tzIG9uIHN3aXRjaGluZyBuYW1lc3BhY2VzICov CiAJQ2hlY2tTZXROYW1lc3BhY2Uob2xkTnNwT2lkLCBuc3BPaWQpOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JlcGxpY2F0aW9uLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjUmVwbGljYXRpb24uYwppbmRleCAxMzMyODE0MWUyMy4uMGRmN2NmNTg3 NDcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNhdGlvbi5j CisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNhdGlvbi5jCkBAIC02MzYs NyArNjM2LDkgQEAgdm9pZAogQ2hlY2tTdWJzY3JpcHRpb25SZWxraW5kKGNoYXIgcmVsa2lu ZCwgY29uc3QgY2hhciAqbnNwbmFtZSwKIAkJCQkJCSBjb25zdCBjaGFyICpyZWxuYW1lKQog ewotCWlmIChyZWxraW5kICE9IFJFTEtJTkRfUkVMQVRJT04gJiYgcmVsa2luZCAhPSBSRUxL SU5EX1BBUlRJVElPTkVEX1RBQkxFKQorCWlmIChyZWxraW5kICE9IFJFTEtJTkRfUkVMQVRJ T04gJiYKKwkJcmVsa2luZCAhPSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFICYmCisJCXJl bGtpbmQgIT0gUkVMS0lORF9TRVFVRU5DRSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJy Y29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKIAkJCQkgZXJybXNnKCJjYW5ub3Qg dXNlIHJlbGF0aW9uIFwiJXMuJXNcIiBhcyBsb2dpY2FsIHJlcGxpY2F0aW9uIHRhcmdldCIs CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9jb3B5ZnVuY3MuYyBiL3NyYy9iYWNr ZW5kL25vZGVzL2NvcHlmdW5jcy5jCmluZGV4IGQ0Zjg0NTVhMmJkLi41NWY3MjBhODhmNCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvY29weWZ1bmNzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvbm9kZXMvY29weWZ1bmNzLmMKQEAgLTQ4NjIsNyArNDg2Miw3IEBAIF9jb3B5Q3Jl YXRlUHVibGljYXRpb25TdG10KGNvbnN0IENyZWF0ZVB1YmxpY2F0aW9uU3RtdCAqZnJvbSkK IAlDT1BZX1NUUklOR19GSUVMRChwdWJuYW1lKTsKIAlDT1BZX05PREVfRklFTEQob3B0aW9u cyk7CiAJQ09QWV9OT0RFX0ZJRUxEKHB1Ym9iamVjdHMpOwotCUNPUFlfU0NBTEFSX0ZJRUxE KGZvcl9hbGxfdGFibGVzKTsKKwlDT1BZX05PREVfRklFTEQoZm9yX2FsbF9vYmplY3RzKTsK IAogCXJldHVybiBuZXdub2RlOwogfQpAQCAtNDg3NSw3ICs0ODc1LDcgQEAgX2NvcHlBbHRl clB1YmxpY2F0aW9uU3RtdChjb25zdCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqZnJvbSkKIAlD T1BZX1NUUklOR19GSUVMRChwdWJuYW1lKTsKIAlDT1BZX05PREVfRklFTEQob3B0aW9ucyk7 CiAJQ09QWV9OT0RFX0ZJRUxEKHB1Ym9iamVjdHMpOwotCUNPUFlfU0NBTEFSX0ZJRUxEKGZv cl9hbGxfdGFibGVzKTsKKwlDT1BZX05PREVfRklFTEQoZm9yX2FsbF9vYmplY3RzKTsKIAlD T1BZX1NDQUxBUl9GSUVMRChhY3Rpb24pOwogCiAJcmV0dXJuIG5ld25vZGU7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9lcXVhbGZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rl cy9lcXVhbGZ1bmNzLmMKaW5kZXggZjEwMDJhZmU3YTAuLjgyNTYyZWI5Yjg3IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9lcXVhbGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQv bm9kZXMvZXF1YWxmdW5jcy5jCkBAIC0yMzMzLDcgKzIzMzMsNyBAQCBfZXF1YWxDcmVhdGVQ dWJsaWNhdGlvblN0bXQoY29uc3QgQ3JlYXRlUHVibGljYXRpb25TdG10ICphLAogCUNPTVBB UkVfU1RSSU5HX0ZJRUxEKHB1Ym5hbWUpOwogCUNPTVBBUkVfTk9ERV9GSUVMRChvcHRpb25z KTsKIAlDT01QQVJFX05PREVfRklFTEQocHVib2JqZWN0cyk7Ci0JQ09NUEFSRV9TQ0FMQVJf RklFTEQoZm9yX2FsbF90YWJsZXMpOworCUNPTVBBUkVfTk9ERV9GSUVMRChmb3JfYWxsX29i amVjdHMpOwogCiAJcmV0dXJuIHRydWU7CiB9CkBAIC0yMzQ1LDcgKzIzNDUsNyBAQCBfZXF1 YWxBbHRlclB1YmxpY2F0aW9uU3RtdChjb25zdCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqYSwK IAlDT01QQVJFX1NUUklOR19GSUVMRChwdWJuYW1lKTsKIAlDT01QQVJFX05PREVfRklFTEQo b3B0aW9ucyk7CiAJQ09NUEFSRV9OT0RFX0ZJRUxEKHB1Ym9iamVjdHMpOwotCUNPTVBBUkVf U0NBTEFSX0ZJRUxEKGZvcl9hbGxfdGFibGVzKTsKKwlDT01QQVJFX05PREVfRklFTEQoZm9y X2FsbF9vYmplY3RzKTsKIAlDT01QQVJFX1NDQUxBUl9GSUVMRChhY3Rpb24pOwogCiAJcmV0 dXJuIHRydWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBhMDNiMzNiNTNiZC4uNTE1MzYxY2JkYTkg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQpAQCAtNDQ2LDcgKzQ0Niw3IEBAIHN0YXRpYyBOb2RlICptYWtl UmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2Rl ICpxdWVyeSk7CiAJCQkJdHJhbnNmb3JtX2VsZW1lbnRfbGlzdCB0cmFuc2Zvcm1fdHlwZV9s aXN0CiAJCQkJVHJpZ2dlclRyYW5zaXRpb25zIFRyaWdnZXJSZWZlcmVuY2luZwogCQkJCXZh Y3V1bV9yZWxhdGlvbl9saXN0IG9wdF92YWN1dW1fcmVsYXRpb25fbGlzdAotCQkJCWRyb3Bf b3B0aW9uX2xpc3QgcHViX29ial9saXN0CisJCQkJZHJvcF9vcHRpb25fbGlzdCBwdWJfb2Jq X2xpc3QgcHViX29ial90eXBlX2xpc3QKIAogJXR5cGUgPG5vZGU+CW9wdF9yb3V0aW5lX2Jv ZHkKICV0eXBlIDxncm91cGNsYXVzZT4gZ3JvdXBfY2xhdXNlCkBAIC01NzUsNiArNTc1LDcg QEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUs IExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxub2RlPgl2YXJfdmFsdWUg em9uZV92YWx1ZQogJXR5cGUgPHJvbGVzcGVjPiBhdXRoX2lkZW50IFJvbGVTcGVjIG9wdF9n cmFudGVkX2J5CiAldHlwZSA8cHVibGljYXRpb25vYmplY3RzcGVjPiBQdWJsaWNhdGlvbk9i alNwZWMKKyV0eXBlIDxub2RlPglwdWJfb2JqX3R5cGUKIAogJXR5cGUgPGtleXdvcmQ+IHVu cmVzZXJ2ZWRfa2V5d29yZCB0eXBlX2Z1bmNfbmFtZV9rZXl3b3JkCiAldHlwZSA8a2V5d29y ZD4gY29sX25hbWVfa2V5d29yZCByZXNlcnZlZF9rZXl3b3JkCkBAIC05NzAxLDEyICs5NzAy LDkgQEAgQWx0ZXJPd25lclN0bXQ6IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9h cmd0eXBlcyBPV05FUiBUTyBSb2xlU3BlYwogICoKICAqIENSRUFURSBQVUJMSUNBVElPTiBG T1IgQUxMIFRBQkxFUyBbV0lUSCBvcHRpb25zXQogICoKLSAqIENSRUFURSBQVUJMSUNBVElP TiBGT1IgcHViX29iaiBbLCAuLi5dIFtXSVRIIG9wdGlvbnNdCi0gKgotICogcHViX29iaiBp cyBvbmUgb2Y6CisgKiBDUkVBVEUgUFVCTElDQVRJT04gRk9SIEFMTCBTRVFVRU5DRVMgW1dJ VEggb3B0aW9uc10KICAqCi0gKgkJVEFCTEUgdGFibGUgWywgLi4uXQotICoJCUFMTCBUQUJM RVMgSU4gU0NIRU1BIHNjaGVtYSBbLCAuLi5dCisgKiBDUkVBVEUgUFVCTElDQVRJT04gRk9S IHB1Yl9vYmogWywgLi4uXSBbV0lUSCBvcHRpb25zXQogICoKICAqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8KIApAQCAtOTcxOCwxMiArOTcxNiwxMiBAQCBDcmVhdGVQdWJsaWNhdGlvblN0 bXQ6CiAJCQkJCW4tPm9wdGlvbnMgPSAkNDsKIAkJCQkJJCQgPSAoTm9kZSAqKW47CiAJCQkJ fQotCQkJfCBDUkVBVEUgUFVCTElDQVRJT04gbmFtZSBGT1IgQUxMIFRBQkxFUyBvcHRfZGVm aW5pdGlvbgorCQkJfCBDUkVBVEUgUFVCTElDQVRJT04gbmFtZSBGT1IgQUxMIHB1Yl9vYmpf dHlwZV9saXN0IG9wdF9kZWZpbml0aW9uCiAJCQkJewogCQkJCQlDcmVhdGVQdWJsaWNhdGlv blN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVQdWJsaWNhdGlvblN0bXQpOwogCQkJCQluLT5w dWJuYW1lID0gJDM7CiAJCQkJCW4tPm9wdGlvbnMgPSAkNzsKLQkJCQkJbi0+Zm9yX2FsbF90 YWJsZXMgPSB0cnVlOworCQkJCQluLT5mb3JfYWxsX29iamVjdHMgPSAkNjsKIAkJCQkJJCQg PSAoTm9kZSAqKW47CiAJCQkJfQogCQkJfCBDUkVBVEUgUFVCTElDQVRJT04gbmFtZSBGT1Ig cHViX29ial9saXN0IG9wdF9kZWZpbml0aW9uCkBAIC05NzcyLDYgKzk3NzAsMjYgQEAgUHVi bGljYXRpb25PYmpTcGVjOgogCQkJCQkkJC0+cHVib2JqdHlwZSA9IFBVQkxJQ0FUSU9OT0JK X1RBQkxFU19JTl9DVVJfU0NIRU1BOwogCQkJCQkkJC0+bG9jYXRpb24gPSBANTsKIAkJCQl9 CisJCQl8IFNFUVVFTkNFIHJlbGF0aW9uX2V4cHIKKwkJCQl7CisJCQkJCSQkID0gbWFrZU5v ZGUoUHVibGljYXRpb25PYmpTcGVjKTsKKwkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNB VElPTk9CSl9TRVFVRU5DRTsKKwkJCQkJJCQtPnB1YnRhYmxlID0gbWFrZU5vZGUoUHVibGlj YXRpb25UYWJsZSk7CisJCQkJCSQkLT5wdWJ0YWJsZS0+cmVsYXRpb24gPSAkMjsKKwkJCQl9 CisJCQl8IEFMTCBTRVFVRU5DRVMgSU5fUCBTQ0hFTUEgQ29sSWQKKwkJCQl7CisJCQkJCSQk ID0gbWFrZU5vZGUoUHVibGljYXRpb25PYmpTcGVjKTsKKwkJCQkJJCQtPnB1Ym9ianR5cGUg PSBQVUJMSUNBVElPTk9CSl9TRVFVRU5DRVNfSU5fU0NIRU1BOworCQkJCQkkJC0+bmFtZSA9 ICQ1OworCQkJCQkkJC0+bG9jYXRpb24gPSBANTsKKwkJCQl9CisJCQl8IEFMTCBTRVFVRU5D RVMgSU5fUCBTQ0hFTUEgQ1VSUkVOVF9TQ0hFTUEKKwkJCQl7CisJCQkJCSQkID0gbWFrZU5v ZGUoUHVibGljYXRpb25PYmpTcGVjKTsKKwkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNB VElPTk9CSl9TRVFVRU5DRVNfSU5fQ1VSX1NDSEVNQTsKKwkJCQkJJCQtPmxvY2F0aW9uID0g QDU7CisJCQkJfQogCQkJfCBDb2xJZCBPcHRXaGVyZUNsYXVzZQogCQkJCXsKIAkJCQkJJCQg PSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNwZWMpOwpAQCAtOTgyNiw2ICs5ODQ0LDE5IEBA IHB1Yl9vYmpfbGlzdDogCVB1YmxpY2F0aW9uT2JqU3BlYwogCQkJCQl7ICQkID0gbGFwcGVu ZCgkMSwgJDMpOyB9CiAJOwogCitwdWJfb2JqX3R5cGU6CVRBQkxFUworCQkJCQl7ICQkID0g KE5vZGUgKikgbWFrZVN0cmluZygidGFibGVzIik7IH0KKwkJCQl8IFNFUVVFTkNFUworCQkJ CQl7ICQkID0gKE5vZGUgKikgbWFrZVN0cmluZygic2VxdWVuY2VzIik7IH0KKwk7CisKK3B1 Yl9vYmpfdHlwZV9saXN0OglwdWJfb2JqX3R5cGUKKwkJCQkJeyAkJCA9IGxpc3RfbWFrZTEo JDEpOyB9CisJCQkJfCBwdWJfb2JqX3R5cGVfbGlzdCAnLCcgcHViX29ial90eXBlCisJCQkJ CXsgJCQgPSBsYXBwZW5kKCQxLCAkMyk7IH0KKwk7CisKKwogLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCiAgKgogICogQUxURVIgUFVCTElDQVRJT04gbmFtZSBTRVQgKCBvcHRpb25zICkK QEAgLTk4MzYsMTEgKzk4NjcsNiBAQCBwdWJfb2JqX2xpc3Q6IAlQdWJsaWNhdGlvbk9ialNw ZWMKICAqCiAgKiBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIFNFVCBwdWJfb2JqIFssIC4uLl0K ICAqCi0gKiBwdWJfb2JqIGlzIG9uZSBvZjoKLSAqCi0gKgkJVEFCTEUgdGFibGVfbmFtZSBb LCAuLi5dCi0gKgkJQUxMIFRBQkxFUyBJTiBTQ0hFTUEgc2NoZW1hX25hbWUgWywgLi4uXQot ICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogQWx0ZXJQdWJsaWNhdGlvblN0bXQ6 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Byb3RvLmMg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Byb3RvLmMKaW5kZXggYzliMGVl ZWZkN2UuLjNkYmU4NWQ2MWEyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL3Byb3RvLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC9wcm90by5jCkBAIC02NDgsNiArNjQ4LDU2IEBAIGxvZ2ljYWxyZXBfd3JpdGVfbWVzc2Fn ZShTdHJpbmdJbmZvIG91dCwgVHJhbnNhY3Rpb25JZCB4aWQsIFhMb2dSZWNQdHIgbHNuLAog CXBxX3NlbmRieXRlcyhvdXQsIG1lc3NhZ2UsIHN6KTsKIH0KIAorLyoKKyAqIFdyaXRlIFNF UVVFTkNFIHRvIHN0cmVhbQorICovCit2b2lkCitsb2dpY2FscmVwX3dyaXRlX3NlcXVlbmNl KFN0cmluZ0luZm8gb3V0LCBSZWxhdGlvbiByZWwsIFRyYW5zYWN0aW9uSWQgeGlkLAorCQkJ CQkJICBYTG9nUmVjUHRyIGxzbiwgYm9vbCB0cmFuc2FjdGlvbmFsLAorCQkJCQkJICBpbnQ2 NCBsYXN0X3ZhbHVlLCBpbnQ2NCBsb2dfY250LCBib29sIGlzX2NhbGxlZCkKK3sKKwl1aW50 OAkJZmxhZ3MgPSAwOworCWNoYXIJICAgKnJlbG5hbWU7CisKKwlwcV9zZW5kYnl0ZShvdXQs IExPR0lDQUxfUkVQX01TR19TRVFVRU5DRSk7CisKKwkvKiB0cmFuc2FjdGlvbiBJRCAoaWYg bm90IHZhbGlkLCB3ZSdyZSBub3Qgc3RyZWFtaW5nKSAqLworCWlmIChUcmFuc2FjdGlvbklk SXNWYWxpZCh4aWQpKQorCQlwcV9zZW5kaW50MzIob3V0LCB4aWQpOworCisJcHFfc2VuZGlu dDgob3V0LCBmbGFncyk7CisJcHFfc2VuZGludDY0KG91dCwgbHNuKTsKKworCWxvZ2ljYWxy ZXBfd3JpdGVfbmFtZXNwYWNlKG91dCwgUmVsYXRpb25HZXROYW1lc3BhY2UocmVsKSk7CisJ cmVsbmFtZSA9IFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCk7CisJcHFfc2VuZHN0cmlu ZyhvdXQsIHJlbG5hbWUpOworCisJcHFfc2VuZGludDgob3V0LCB0cmFuc2FjdGlvbmFsKTsK KwlwcV9zZW5kaW50NjQob3V0LCBsYXN0X3ZhbHVlKTsKKwlwcV9zZW5kaW50NjQob3V0LCBs b2dfY250KTsKKwlwcV9zZW5kaW50OChvdXQsIGlzX2NhbGxlZCk7Cit9CisKKy8qCisgKiBS ZWFkIFNFUVVFTkNFIGZyb20gdGhlIHN0cmVhbS4KKyAqLwordm9pZAorbG9naWNhbHJlcF9y ZWFkX3NlcXVlbmNlKFN0cmluZ0luZm8gaW4sIExvZ2ljYWxSZXBTZXF1ZW5jZSAqc2VxZGF0 YSkKK3sKKwkvKiBYWFggc2tpcHBpbmcgZmxhZ3MgYW5kIGxzbiAqLworCXBxX2dldG1zZ2lu dChpbiwgMSk7CisJcHFfZ2V0bXNnaW50NjQoaW4pOworCisJLyogUmVhZCByZWxhdGlvbiBu YW1lIGZyb20gc3RyZWFtICovCisJc2VxZGF0YS0+bnNwbmFtZSA9IHBzdHJkdXAobG9naWNh bHJlcF9yZWFkX25hbWVzcGFjZShpbikpOworCXNlcWRhdGEtPnNlcW5hbWUgPSBwc3RyZHVw KHBxX2dldG1zZ3N0cmluZyhpbikpOworCisJc2VxZGF0YS0+dHJhbnNhY3Rpb25hbCA9IHBx X2dldG1zZ2ludChpbiwgMSk7CisJc2VxZGF0YS0+bGFzdF92YWx1ZSA9IHBxX2dldG1zZ2lu dDY0KGluKTsKKwlzZXFkYXRhLT5sb2dfY250ID0gcHFfZ2V0bXNnaW50NjQoaW4pOworCXNl cWRhdGEtPmlzX2NhbGxlZCA9IHBxX2dldG1zZ2ludChpbiwgMSk7Cit9CisKIC8qCiAgKiBX cml0ZSByZWxhdGlvbiBkZXNjcmlwdGlvbiB0byB0aGUgb3V0cHV0IHN0cmVhbS4KICAqLwpA QCAtMTIwMyw2ICsxMjUzLDggQEAgbG9naWNhbHJlcF9tZXNzYWdlX3R5cGUoTG9naWNhbFJl cE1zZ1R5cGUgYWN0aW9uKQogCQkJcmV0dXJuICJTVFJFQU0gQUJPUlQiOwogCQljYXNlIExP R0lDQUxfUkVQX01TR19TVFJFQU1fUFJFUEFSRToKIAkJCXJldHVybiAiU1RSRUFNIFBSRVBB UkUiOworCQljYXNlIExPR0lDQUxfUkVQX01TR19TRVFVRU5DRToKKwkJCXJldHVybiAiU0VR VUVOQ0UiOwogCX0KIAogCWVsb2coRVJST1IsICJpbnZhbGlkIGxvZ2ljYWwgcmVwbGljYXRp b24gbWVzc2FnZSB0eXBlIFwiJWNcIiIsIGFjdGlvbik7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3RhYmxlc3luYy5jIGIvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYwppbmRleCAxNjU5OTY0NTcxYy4uMDMzY2U2 NDJkZTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvdGFi bGVzeW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5 bmMuYwpAQCAtMTAwLDYgKzEwMCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19zdWJzY3Jp cHRpb25fcmVsLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAi Y29tbWFuZHMvY29weS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNlLmgiCiAjaW5j bHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgi CiAjaW5jbHVkZSAicGdzdGF0LmgiCkBAIC0zNTksNiArMzYwLDggQEAgcHJvY2Vzc19zeW5j aW5nX3RhYmxlc19mb3Jfc3luYyhYTG9nUmVjUHRyIGN1cnJlbnRfbHNuKQogICoKICAqIElm IHRoZSBzeW5jaHJvbml6YXRpb24gcG9zaXRpb24gaXMgcmVhY2hlZCAoU1lOQ0RPTkUpLCB0 aGVuIHRoZSB0YWJsZSBjYW4KICAqIGJlIG1hcmtlZCBhcyBSRUFEWSBhbmQgaXMgbm8gbG9u Z2VyIHRyYWNrZWQuCisgKgorICogWFhYIE1heWJlIHJlbmFtZSB0aGlzIHRvICJfcmVsYXRp b25zXyIgdG8gY292ZXIgYm90aCB0YWJsZXMgYW5kIHNlcXVlbmNlcy4KICAqLwogc3RhdGlj IHZvaWQKIHByb2Nlc3Nfc3luY2luZ190YWJsZXNfZm9yX2FwcGx5KFhMb2dSZWNQdHIgY3Vy cmVudF9sc24pCkBAIC05OTksNiArMTAwMiw5NCBAQCBjb3B5X3RhYmxlKFJlbGF0aW9uIHJl bCkKIAlsb2dpY2FscmVwX3JlbF9jbG9zZShyZWxtYXBlbnRyeSwgTm9Mb2NrKTsKIH0KIAor LyoKKyAqIEZldGNoIHNlcXVlbmNlIGRhdGEgKGN1cnJlbnQgc3RhdGUpIGZyb20gdGhlIHJl bW90ZSBub2RlLgorICovCitzdGF0aWMgdm9pZAorZmV0Y2hfc2VxdWVuY2VfZGF0YShjaGFy ICpuc3BuYW1lLCBjaGFyICpyZWxuYW1lLAorCQkJCQlpbnQ2NCAqbGFzdF92YWx1ZSwgaW50 NjQgKmxvZ19jbnQsIGJvb2wgKmlzX2NhbGxlZCkKK3sKKwlXYWxSY3ZFeGVjUmVzdWx0ICpy ZXM7CisJU3RyaW5nSW5mb0RhdGEgY21kOworCVR1cGxlVGFibGVTbG90ICpzbG90OworCU9p ZAkJCXRhYmxlUm93WzNdID0ge0lOVDhPSUQsIElOVDhPSUQsIEJPT0xPSUR9OworCisJaW5p dFN0cmluZ0luZm8oJmNtZCk7CisJYXBwZW5kU3RyaW5nSW5mbygmY21kLCAiU0VMRUNUIGxh c3RfdmFsdWUsIGxvZ19jbnQsIGlzX2NhbGxlZFxuIgorCQkJCQkgICAiICBGUk9NICVzIiwg cXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIobnNwbmFtZSwgcmVsbmFtZSkpOworCisJcmVz ID0gd2FscmN2X2V4ZWMoTG9nUmVwV29ya2VyV2FsUmN2Q29ubiwgY21kLmRhdGEsIDMsIHRh YmxlUm93KTsKKwlwZnJlZShjbWQuZGF0YSk7CisKKwlpZiAocmVzLT5zdGF0dXMgIT0gV0FM UkNWX09LX1RVUExFUykKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJybXNnKCJjb3VsZCBu b3QgcmVjZWl2ZSBsaXN0IG9mIHJlcGxpY2F0ZWQgdGFibGVzIGZyb20gdGhlIHB1Ymxpc2hl cjogJXMiLAorCQkJCQkJcmVzLT5lcnIpKSk7CisKKwkvKiBQcm9jZXNzIHRoZSBzZXF1ZW5j ZS4gKi8KKwlzbG90ID0gTWFrZVNpbmdsZVR1cGxlVGFibGVTbG90KHJlcy0+dHVwbGVkZXNj LCAmVFRTT3BzTWluaW1hbFR1cGxlKTsKKwl3aGlsZSAodHVwbGVzdG9yZV9nZXR0dXBsZXNs b3QocmVzLT50dXBsZXN0b3JlLCB0cnVlLCBmYWxzZSwgc2xvdCkpCisJeworCQlib29sCQlp c251bGw7CisKKwkJKmxhc3RfdmFsdWUgPSBEYXR1bUdldEludDY0KHNsb3RfZ2V0YXR0cihz bG90LCAxLCAmaXNudWxsKSk7CisJCUFzc2VydCghaXNudWxsKTsKKworCQkqbG9nX2NudCA9 IERhdHVtR2V0SW50NjQoc2xvdF9nZXRhdHRyKHNsb3QsIDIsICZpc251bGwpKTsKKwkJQXNz ZXJ0KCFpc251bGwpOworCisJCSppc19jYWxsZWQgPSBEYXR1bUdldEJvb2woc2xvdF9nZXRh dHRyKHNsb3QsIDMsICZpc251bGwpKTsKKwkJQXNzZXJ0KCFpc251bGwpOworCisJCUV4ZWND bGVhclR1cGxlKHNsb3QpOworCX0KKwlFeGVjRHJvcFNpbmdsZVR1cGxlVGFibGVTbG90KHNs b3QpOworCisJd2FscmN2X2NsZWFyX3Jlc3VsdChyZXMpOworfQorCisvKgorICogQ29weSBl eGlzdGluZyBkYXRhIG9mIGEgc2VxdWVuY2UgZnJvbSBwdWJsaXNoZXIuCisgKgorICogQ2Fs bGVyIGlzIHJlc3BvbnNpYmxlIGZvciBsb2NraW5nIHRoZSBsb2NhbCByZWxhdGlvbi4KKyAq Lworc3RhdGljIHZvaWQKK2NvcHlfc2VxdWVuY2UoUmVsYXRpb24gcmVsKQoreworCUxvZ2lj YWxSZXBSZWxNYXBFbnRyeSAqcmVsbWFwZW50cnk7CisJTG9naWNhbFJlcFJlbGF0aW9uIGxy ZWw7CisJTGlzdAkgICAqcXVhbCA9IE5JTDsKKwlTdHJpbmdJbmZvRGF0YSBjbWQ7CisJaW50 NjQJCWxhc3RfdmFsdWUgPSAwLAorCQkJCWxvZ19jbnQgPSAwOworCWJvb2wJCWlzX2NhbGxl ZCA9IDA7CisKKwkvKiBHZXQgdGhlIHB1Ymxpc2hlciByZWxhdGlvbiBpbmZvLiAqLworCWZl dGNoX3JlbW90ZV90YWJsZV9pbmZvKGdldF9uYW1lc3BhY2VfbmFtZShSZWxhdGlvbkdldE5h bWVzcGFjZShyZWwpKSwKKwkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpLCAm bHJlbCwgJnF1YWwpOworCisJLyogc2VxdWVuY2VzIGRvbid0IGhhdmUgcm93IGZpbHRlcnMg Ki8KKwlBc3NlcnQoIXF1YWwpOworCisJLyogUHV0IHRoZSByZWxhdGlvbiBpbnRvIHJlbG1h cC4gKi8KKwlsb2dpY2FscmVwX3JlbG1hcF91cGRhdGUoJmxyZWwpOworCisJLyogTWFwIHRo ZSBwdWJsaXNoZXIgcmVsYXRpb24gdG8gbG9jYWwgb25lLiAqLworCXJlbG1hcGVudHJ5ID0g bG9naWNhbHJlcF9yZWxfb3BlbihscmVsLnJlbW90ZWlkLCBOb0xvY2spOworCUFzc2VydChy ZWwgPT0gcmVsbWFwZW50cnktPmxvY2FscmVsKTsKKworCS8qIFN0YXJ0IGNvcHkgb24gdGhl IHB1Ymxpc2hlci4gKi8KKwlpbml0U3RyaW5nSW5mbygmY21kKTsKKworCUFzc2VydChscmVs LnJlbGtpbmQgPT0gUkVMS0lORF9TRVFVRU5DRSk7CisKKwlmZXRjaF9zZXF1ZW5jZV9kYXRh KGxyZWwubnNwbmFtZSwgbHJlbC5yZWxuYW1lLCAmbGFzdF92YWx1ZSwgJmxvZ19jbnQsICZp c19jYWxsZWQpOworCisJU2V0U2VxdWVuY2UoUmVsYXRpb25HZXRSZWxpZChyZWwpLCBsYXN0 X3ZhbHVlLCBsb2dfY250LCBpc19jYWxsZWQpOworCisJbG9naWNhbHJlcF9yZWxfY2xvc2Uo cmVsbWFwZW50cnksIE5vTG9jayk7Cit9CisKIC8qCiAgKiBEZXRlcm1pbmUgdGhlIHRhYmxl c3luYyBzbG90IG5hbWUuCiAgKgpAQCAtMTI2MCwxMCArMTM1MSwyMSBAQCBMb2dpY2FsUmVw U3luY1RhYmxlU3RhcnQoWExvZ1JlY1B0ciAqb3JpZ2luX3N0YXJ0cG9zKQogCQkJCQkJb3Jp Z2lubmFtZSkpKTsKIAl9CiAKLQkvKiBOb3cgZG8gdGhlIGluaXRpYWwgZGF0YSBjb3B5ICov Ci0JUHVzaEFjdGl2ZVNuYXBzaG90KEdldFRyYW5zYWN0aW9uU25hcHNob3QoKSk7Ci0JY29w eV90YWJsZShyZWwpOwotCVBvcEFjdGl2ZVNuYXBzaG90KCk7CisJLyogRG8gdGhlIHJpZ2h0 IGFjdGlvbiBkZXBlbmRpbmcgb24gdGhlIHJlbGF0aW9uIGtpbmQuICovCisJaWYgKGdldF9y ZWxfcmVsa2luZChSZWxhdGlvbkdldFJlbGlkKHJlbCkpID09IFJFTEtJTkRfU0VRVUVOQ0Up CisJeworCQkvKiBOb3cgZG8gdGhlIGluaXRpYWwgc2VxdWVuY2UgY29weSAqLworCQlQdXNo QWN0aXZlU25hcHNob3QoR2V0VHJhbnNhY3Rpb25TbmFwc2hvdCgpKTsKKwkJY29weV9zZXF1 ZW5jZShyZWwpOworCQlQb3BBY3RpdmVTbmFwc2hvdCgpOworCX0KKwllbHNlCisJeworCQkv KiBOb3cgZG8gdGhlIGluaXRpYWwgZGF0YSBjb3B5ICovCisJCVB1c2hBY3RpdmVTbmFwc2hv dChHZXRUcmFuc2FjdGlvblNuYXBzaG90KCkpOworCQljb3B5X3RhYmxlKHJlbCk7CisJCVBv cEFjdGl2ZVNuYXBzaG90KCk7CisJfQogCiAJcmVzID0gd2FscmN2X2V4ZWMoTG9nUmVwV29y a2VyV2FsUmN2Q29ubiwgIkNPTU1JVCIsIDAsIE5VTEwpOwogCWlmIChyZXMtPnN0YXR1cyAh PSBXQUxSQ1ZfT0tfQ09NTUFORCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvd29ya2VyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L3dvcmtlci5jCmluZGV4IDAzZTA2OWM3Y2RkLi5hNjdlNjE2OTdlZCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYworKysgYi9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCkBAIC0xNDIsNiArMTQyLDcgQEAK ICNpbmNsdWRlICJjYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfc3Vic2NyaXB0aW9uX3JlbC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFibGVz cGFjZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNlLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvdGFibGVjbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdGFibGVzcGFjZS5oIgog I2luY2x1ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKQEAgLTEwOTcsNiArMTA5OCw1NyBAQCBh cHBseV9oYW5kbGVfb3JpZ2luKFN0cmluZ0luZm8gcykKIAkJCQkgZXJybXNnX2ludGVybmFs KCJPUklHSU4gbWVzc2FnZSBzZW50IG91dCBvZiBvcmRlciIpKSk7CiB9CiAKKy8qCisgKiBI YW5kbGUgU0VRVUVOQ0UgbWVzc2FnZS4KKyAqLworc3RhdGljIHZvaWQKK2FwcGx5X2hhbmRs ZV9zZXF1ZW5jZShTdHJpbmdJbmZvIHMpCit7CisJTG9naWNhbFJlcFNlcXVlbmNlCXNlcTsK KwlPaWQJCQkJCXJlbGlkOworCisJaWYgKGhhbmRsZV9zdHJlYW1lZF90cmFuc2FjdGlvbihM T0dJQ0FMX1JFUF9NU0dfU0VRVUVOQ0UsIHMpKQorCQlyZXR1cm47CisKKwlsb2dpY2FscmVw X3JlYWRfc2VxdWVuY2UocywgJnNlcSk7CisKKwkvKgorCSAqIE5vbi10cmFuc2FjdGlvbmFs IHNlcXVlbmNlIHVwZGF0ZXMgc2hvdWxkIG5vdCBiZSBwYXJ0IG9mIGEgcmVtb3RlCisJICog dHJhbnNhY3Rpb24uIFRoZXJlIHNob3VsZCBub3QgYmUgYW55IHJ1bm5pbmcgdHJhbnNhY3Rp b24uCisJICovCisJQXNzZXJ0KCghc2VxLnRyYW5zYWN0aW9uYWwpIHx8IGluX3JlbW90ZV90 cmFuc2FjdGlvbik7CisJQXNzZXJ0KCEoIXNlcS50cmFuc2FjdGlvbmFsICYmIGluX3JlbW90 ZV90cmFuc2FjdGlvbikpOworCUFzc2VydCghKCFzZXEudHJhbnNhY3Rpb25hbCAmJiBJc1Ry YW5zYWN0aW9uU3RhdGUoKSkpOworCisJLyoKKwkgKiBNYWtlIHN1cmUgd2UncmUgaW4gYSB0 cmFuc2FjdGlvbiAobmVlZGVkIGJ5IFNldFNlcXVlbmNlKS4gRm9yCisJICogbm9uLXRyYW5z YWN0aW9uYWwgdXBkYXRlcyB3ZSdyZSBndWFyYW50ZWVkIHRvIHN0YXJ0IGEgbmV3IG9uZSwK KwkgKiBhbmQgd2UnbGwgY29tbWl0IGl0IGF0IHRoZSBlbmQuCisJICovCisJaWYgKCFJc1Ry YW5zYWN0aW9uU3RhdGUoKSkKKwl7CisJCVN0YXJ0VHJhbnNhY3Rpb25Db21tYW5kKCk7CisJ CW1heWJlX3JlcmVhZF9zdWJzY3JpcHRpb24oKTsKKwl9CisKKwlyZWxpZCA9IFJhbmdlVmFy R2V0UmVsaWQobWFrZVJhbmdlVmFyKHNlcS5uc3BuYW1lLAorCQkJCQkJCQkJCSAgc2VxLnNl cW5hbWUsIC0xKSwKKwkJCQkJCQkgUm93RXhjbHVzaXZlTG9jaywgZmFsc2UpOworCisJLyog bG9jayB0aGUgc2VxdWVuY2UgaW4gQWNjZXNzRXhjbHVzaXZlTG9jaywgYXMgZXhwZWN0ZWQg YnkgU2V0U2VxdWVuY2UgKi8KKwlMb2NrUmVsYXRpb25PaWQocmVsaWQsIEFjY2Vzc0V4Y2x1 c2l2ZUxvY2spOworCisJLyogYXBwbHkgdGhlIHNlcXVlbmNlIGNoYW5nZSAqLworCVNldFNl cXVlbmNlKHJlbGlkLCBzZXEubGFzdF92YWx1ZSwgc2VxLmxvZ19jbnQsIHNlcS5pc19jYWxs ZWQpOworCisJLyoKKwkgKiBDb21taXQgdGhlIHBlci1zdHJlYW0gdHJhbnNhY3Rpb24gKHdl IG9ubHkgZG8gdGhpcyB3aGVuIG5vdCBpbgorCSAqIHJlbW90ZSB0cmFuc2FjdGlvbiwgaS5l LiBmb3Igbm9uLXRyYW5zYWN0aW9uYWwgc2VxdWVuY2UgdXBkYXRlcy4KKwkgKi8KKwlpZiAo IWluX3JlbW90ZV90cmFuc2FjdGlvbikKKwkJQ29tbWl0VHJhbnNhY3Rpb25Db21tYW5kKCk7 Cit9CisKIC8qCiAgKiBIYW5kbGUgU1RSRUFNIFNUQVJUIG1lc3NhZ2UuCiAgKi8KQEAgLTI0 MjUsNiArMjQ3NywxMCBAQCBhcHBseV9kaXNwYXRjaChTdHJpbmdJbmZvIHMpCiAJCQkgKi8K IAkJCWJyZWFrOwogCisJCWNhc2UgTE9HSUNBTF9SRVBfTVNHX1NFUVVFTkNFOgorCQkJYXBw bHlfaGFuZGxlX3NlcXVlbmNlKHMpOworCQkJcmV0dXJuOworCiAJCWNhc2UgTE9HSUNBTF9S RVBfTVNHX1NUUkVBTV9TVEFSVDoKIAkJCWFwcGx5X2hhbmRsZV9zdHJlYW1fc3RhcnQocyk7 CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0 cHV0L3Bnb3V0cHV0LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291 dHB1dC5jCmluZGV4IDVmZGRhYjNhM2Q0Li40Y2RjNjk4Y2JiMyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYworKysgYi9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCkBAIC0xNSw2ICsxNSw3IEBA CiAjaW5jbHVkZSAiYWNjZXNzL3R1cGNvbnZlcnQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bh cnRpdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHVibGljYXRpb24uaCIKKyNpbmNs dWRlICJjYXRhbG9nL3BnX3B1YmxpY2F0aW9uX25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVt LmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKQEAgLTUzLDYgKzU0LDEwIEBA IHN0YXRpYyB2b2lkIHBnb3V0cHV0X21lc3NhZ2UoTG9naWNhbERlY29kaW5nQ29udGV4dCAq Y3R4LAogCQkJCQkJCSBSZW9yZGVyQnVmZmVyVFhOICp0eG4sIFhMb2dSZWNQdHIgbWVzc2Fn ZV9sc24sCiAJCQkJCQkJIGJvb2wgdHJhbnNhY3Rpb25hbCwgY29uc3QgY2hhciAqcHJlZml4 LAogCQkJCQkJCSBTaXplIHN6LCBjb25zdCBjaGFyICptZXNzYWdlKTsKK3N0YXRpYyB2b2lk IHBnb3V0cHV0X3NlcXVlbmNlKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwKKwkJCQkJ CQkgIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwgWExvZ1JlY1B0ciBzZXF1ZW5jZV9sc24sCisJ CQkJCQkJICBSZWxhdGlvbiByZWxhdGlvbiwgYm9vbCB0cmFuc2FjdGlvbmFsLAorCQkJCQkJ CSAgaW50NjQgbGFzdF92YWx1ZSwgaW50NjQgbG9nX2NudCwgYm9vbCBpc19jYWxsZWQpOwog c3RhdGljIGJvb2wgcGdvdXRwdXRfb3JpZ2luX2ZpbHRlcihMb2dpY2FsRGVjb2RpbmdDb250 ZXh0ICpjdHgsCiAJCQkJCQkJCSAgIFJlcE9yaWdpbklkIG9yaWdpbl9pZCk7CiBzdGF0aWMg dm9pZCBwZ291dHB1dF9iZWdpbl9wcmVwYXJlX3R4bihMb2dpY2FsRGVjb2RpbmdDb250ZXh0 ICpjdHgsCkBAIC0yMDgsNiArMjEzLDcgQEAgX1BHX291dHB1dF9wbHVnaW5faW5pdChPdXRw dXRQbHVnaW5DYWxsYmFja3MgKmNiKQogCWNiLT5jaGFuZ2VfY2IgPSBwZ291dHB1dF9jaGFu Z2U7CiAJY2ItPnRydW5jYXRlX2NiID0gcGdvdXRwdXRfdHJ1bmNhdGU7CiAJY2ItPm1lc3Nh Z2VfY2IgPSBwZ291dHB1dF9tZXNzYWdlOworCWNiLT5zZXF1ZW5jZV9jYiA9IHBnb3V0cHV0 X3NlcXVlbmNlOwogCWNiLT5jb21taXRfY2IgPSBwZ291dHB1dF9jb21taXRfdHhuOwogCiAJ Y2ItPmJlZ2luX3ByZXBhcmVfY2IgPSBwZ291dHB1dF9iZWdpbl9wcmVwYXJlX3R4bjsKQEAg LTIyNCw2ICsyMzAsNyBAQCBfUEdfb3V0cHV0X3BsdWdpbl9pbml0KE91dHB1dFBsdWdpbkNh bGxiYWNrcyAqY2IpCiAJY2ItPnN0cmVhbV9jb21taXRfY2IgPSBwZ291dHB1dF9zdHJlYW1f Y29tbWl0OwogCWNiLT5zdHJlYW1fY2hhbmdlX2NiID0gcGdvdXRwdXRfY2hhbmdlOwogCWNi LT5zdHJlYW1fbWVzc2FnZV9jYiA9IHBnb3V0cHV0X21lc3NhZ2U7CisJY2ItPnN0cmVhbV9z ZXF1ZW5jZV9jYiA9IHBnb3V0cHV0X3NlcXVlbmNlOwogCWNiLT5zdHJlYW1fdHJ1bmNhdGVf Y2IgPSBwZ291dHB1dF90cnVuY2F0ZTsKIAkvKiB0cmFuc2FjdGlvbiBzdHJlYW1pbmcgLSB0 d28tcGhhc2UgY29tbWl0ICovCiAJY2ItPnN0cmVhbV9wcmVwYXJlX2NiID0gcGdvdXRwdXRf c3RyZWFtX3ByZXBhcmVfdHhuOwpAQCAtMjM3LDYgKzI0NCw3IEBAIHBhcnNlX291dHB1dF9w YXJhbWV0ZXJzKExpc3QgKm9wdGlvbnMsIFBHT3V0cHV0RGF0YSAqZGF0YSkKIAlib29sCQlw dWJsaWNhdGlvbl9uYW1lc19naXZlbiA9IGZhbHNlOwogCWJvb2wJCWJpbmFyeV9vcHRpb25f Z2l2ZW4gPSBmYWxzZTsKIAlib29sCQltZXNzYWdlc19vcHRpb25fZ2l2ZW4gPSBmYWxzZTsK Kwlib29sCQlzZXF1ZW5jZXNfb3B0aW9uX2dpdmVuID0gZmFsc2U7CiAJYm9vbAkJc3RyZWFt aW5nX2dpdmVuID0gZmFsc2U7CiAJYm9vbAkJdHdvX3BoYXNlX29wdGlvbl9naXZlbiA9IGZh bHNlOwogCkBAIC0yNDQsNiArMjUyLDcgQEAgcGFyc2Vfb3V0cHV0X3BhcmFtZXRlcnMoTGlz dCAqb3B0aW9ucywgUEdPdXRwdXREYXRhICpkYXRhKQogCWRhdGEtPnN0cmVhbWluZyA9IGZh bHNlOwogCWRhdGEtPm1lc3NhZ2VzID0gZmFsc2U7CiAJZGF0YS0+dHdvX3BoYXNlID0gZmFs c2U7CisJZGF0YS0+c2VxdWVuY2VzID0gdHJ1ZTsKIAogCWZvcmVhY2gobGMsIG9wdGlvbnMp CiAJewpAQCAtMzEyLDYgKzMyMSwxNiBAQCBwYXJzZV9vdXRwdXRfcGFyYW1ldGVycyhMaXN0 ICpvcHRpb25zLCBQR091dHB1dERhdGEgKmRhdGEpCiAKIAkJCWRhdGEtPm1lc3NhZ2VzID0g ZGVmR2V0Qm9vbGVhbihkZWZlbCk7CiAJCX0KKwkJZWxzZSBpZiAoc3RyY21wKGRlZmVsLT5k ZWZuYW1lLCAic2VxdWVuY2VzIikgPT0gMCkKKwkJeworCQkJaWYgKHNlcXVlbmNlc19vcHRp b25fZ2l2ZW4pCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVf U1lOVEFYX0VSUk9SKSwKKwkJCQkJCSBlcnJtc2coImNvbmZsaWN0aW5nIG9yIHJlZHVuZGFu dCBvcHRpb25zIikpKTsKKwkJCXNlcXVlbmNlc19vcHRpb25fZ2l2ZW4gPSB0cnVlOworCisJ CQlkYXRhLT5zZXF1ZW5jZXMgPSBkZWZHZXRCb29sZWFuKGRlZmVsKTsKKwkJfQogCQllbHNl IGlmIChzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJzdHJlYW1pbmciKSA9PSAwKQogCQl7CiAJ CQlpZiAoc3RyZWFtaW5nX2dpdmVuKQpAQCAtMTQ0MCw2ICsxNDU5LDUxIEBAIHBnb3V0cHV0 X21lc3NhZ2UoTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4LCBSZW9yZGVyQnVmZmVyVFhO ICp0eG4sCiAJT3V0cHV0UGx1Z2luV3JpdGUoY3R4LCB0cnVlKTsKIH0KIAorc3RhdGljIHZv aWQKK3Bnb3V0cHV0X3NlcXVlbmNlKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwKKwkJ CQkgIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwgWExvZ1JlY1B0ciBzZXF1ZW5jZV9sc24sCisJ CQkJICBSZWxhdGlvbiByZWxhdGlvbiwgYm9vbCB0cmFuc2FjdGlvbmFsLAorCQkJCSAgaW50 NjQgbGFzdF92YWx1ZSwgaW50NjQgbG9nX2NudCwgYm9vbCBpc19jYWxsZWQpCit7CisJUEdP dXRwdXREYXRhICpkYXRhID0gKFBHT3V0cHV0RGF0YSAqKSBjdHgtPm91dHB1dF9wbHVnaW5f cHJpdmF0ZTsKKwlUcmFuc2FjdGlvbklkIHhpZCA9IEludmFsaWRUcmFuc2FjdGlvbklkOwor CVJlbGF0aW9uU3luY0VudHJ5ICpyZWxlbnRyeTsKKworCWlmICghZGF0YS0+c2VxdWVuY2Vz KQorCQlyZXR1cm47CisKKwlpZiAoIWlzX3B1Ymxpc2hhYmxlX3JlbGF0aW9uKHJlbGF0aW9u KSkKKwkJcmV0dXJuOworCisJLyoKKwkgKiBSZW1lbWJlciB0aGUgeGlkIGZvciB0aGUgbWVz c2FnZSBpbiBzdHJlYW1pbmcgbW9kZS4gU2VlCisJICogcGdvdXRwdXRfY2hhbmdlLgorCSAq LworCWlmIChpbl9zdHJlYW1pbmcpCisJCXhpZCA9IHR4bi0+eGlkOworCisJcmVsZW50cnkg PSBnZXRfcmVsX3N5bmNfZW50cnkoZGF0YSwgcmVsYXRpb24pOworCisJLyoKKwkgKiBGaXJz dCBjaGVjayB0aGUgc2VxdWVuY2UgZmlsdGVyLgorCSAqCisJICogV2UgaGFuZGxlIGp1c3Qg UkVPUkRFUl9CVUZGRVJfQ0hBTkdFX1NFUVVFTkNFIGhlcmUuCisJICovCisJaWYgKCFyZWxl bnRyeS0+cHViYWN0aW9ucy5wdWJzZXF1ZW5jZSkKKwkJcmV0dXJuOworCisJT3V0cHV0UGx1 Z2luUHJlcGFyZVdyaXRlKGN0eCwgdHJ1ZSk7CisJbG9naWNhbHJlcF93cml0ZV9zZXF1ZW5j ZShjdHgtPm91dCwKKwkJCQkJCQkgIHJlbGF0aW9uLAorCQkJCQkJCSAgeGlkLAorCQkJCQkJ CSAgc2VxdWVuY2VfbHNuLAorCQkJCQkJCSAgdHJhbnNhY3Rpb25hbCwKKwkJCQkJCQkgIGxh c3RfdmFsdWUsCisJCQkJCQkJICBsb2dfY250LAorCQkJCQkJCSAgaXNfY2FsbGVkKTsKKwlP dXRwdXRQbHVnaW5Xcml0ZShjdHgsIHRydWUpOworfQorCiAvKgogICogQ3VycmVudGx5IHdl IGFsd2F5cyBmb3J3YXJkLgogICovCkBAIC0xNzI1LDcgKzE3ODksOCBAQCBnZXRfcmVsX3N5 bmNfZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAkJZW50 cnktPnNjaGVtYV9zZW50ID0gZmFsc2U7CiAJCWVudHJ5LT5zdHJlYW1lZF90eG5zID0gTklM OwogCQllbnRyeS0+cHViYWN0aW9ucy5wdWJpbnNlcnQgPSBlbnRyeS0+cHViYWN0aW9ucy5w dWJ1cGRhdGUgPQotCQkJZW50cnktPnB1YmFjdGlvbnMucHViZGVsZXRlID0gZW50cnktPnB1 YmFjdGlvbnMucHVidHJ1bmNhdGUgPSBmYWxzZTsKKwkJCWVudHJ5LT5wdWJhY3Rpb25zLnB1 YmRlbGV0ZSA9IGVudHJ5LT5wdWJhY3Rpb25zLnB1YnRydW5jYXRlID0KKwkJCWVudHJ5LT5w dWJhY3Rpb25zLnB1YnNlcXVlbmNlID0gZmFsc2U7CiAJCWVudHJ5LT5uZXdfc2xvdCA9IE5V TEw7CiAJCWVudHJ5LT5vbGRfc2xvdCA9IE5VTEw7CiAJCW1lbXNldChlbnRyeS0+ZXhwcnN0 YXRlLCAwLCBzaXplb2YoZW50cnktPmV4cHJzdGF0ZSkpOwpAQCAtMTczOSwxMyArMTgwNCwx MyBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiBy ZWxhdGlvbikKIAl7CiAJCU9pZAkJCXNjaGVtYUlkID0gZ2V0X3JlbF9uYW1lc3BhY2UocmVs aWQpOwogCQlMaXN0CSAgICpwdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxp ZCk7Ci0KKwkJY2hhcgkJb2JqZWN0VHlwZSA9IHB1Yl9nZXRfb2JqZWN0X3R5cGVfZm9yX3Jl bGtpbmQoZ2V0X3JlbF9yZWxraW5kKHJlbGlkKSk7CiAJCS8qCiAJCSAqIFdlIGRvbid0IGFj cXVpcmUgYSBsb2NrIG9uIHRoZSBuYW1lc3BhY2Ugc3lzdGVtIHRhYmxlIGFzIHdlIGJ1aWxk CiAJCSAqIHRoZSBjYWNoZSBlbnRyeSB1c2luZyBhIGhpc3RvcmljIHNuYXBzaG90IGFuZCBh bGwgdGhlIGxhdGVyIGNoYW5nZXMKIAkJICogYXJlIGFic29yYmVkIHdoaWxlIGRlY29kaW5n IFdBTC4KIAkJICovCi0JCUxpc3QJICAgKnNjaGVtYVB1YmlkcyA9IEdldFNjaGVtYVB1Ymxp Y2F0aW9ucyhzY2hlbWFJZCk7CisJCUxpc3QJICAgKnNjaGVtYVB1YmlkcyA9IEdldFNjaGVt YVB1YmxpY2F0aW9ucyhzY2hlbWFJZCwgb2JqZWN0VHlwZSk7CiAJCUxpc3RDZWxsICAgKmxj OwogCQlPaWQJCQlwdWJsaXNoX2FzX3JlbGlkID0gcmVsaWQ7CiAJCWludAkJCXB1Ymxpc2hf YW5jZXN0b3JfbGV2ZWwgPSAwOwpAQCAtMTc4MCw2ICsxODQ1LDcgQEAgZ2V0X3JlbF9zeW5j X2VudHJ5KFBHT3V0cHV0RGF0YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAJCWVudHJ5 LT5wdWJhY3Rpb25zLnB1YnVwZGF0ZSA9IGZhbHNlOwogCQllbnRyeS0+cHViYWN0aW9ucy5w dWJkZWxldGUgPSBmYWxzZTsKIAkJZW50cnktPnB1YmFjdGlvbnMucHVidHJ1bmNhdGUgPSBm YWxzZTsKKwkJZW50cnktPnB1YmFjdGlvbnMucHVic2VxdWVuY2UgPSBmYWxzZTsKIAogCQkv KgogCQkgKiBUdXBsZSBzbG90cyBjbGVhbnVwcy4gKFdpbGwgYmUgcmVidWlsdCBsYXRlciBp ZiBuZWVkZWQpLgpAQCAtMTgyNiw5ICsxODkyLDExIEBAIGdldF9yZWxfc3luY19lbnRyeShQ R091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCiAJCQkvKgogCQkJICog SWYgdGhpcyBpcyBhIEZPUiBBTEwgVEFCTEVTIHB1YmxpY2F0aW9uLCBwaWNrIHRoZSBwYXJ0 aXRpb24gcm9vdAotCQkJICogYW5kIHNldCB0aGUgYW5jZXN0b3IgbGV2ZWwgYWNjb3JkaW5n bHkuCisJCQkgKiBhbmQgc2V0IHRoZSBhbmNlc3RvciBsZXZlbCBhY2NvcmRpbmdseS4gSWYg dGhpcyBpcyBhIEZPUiBBTEwKKwkJCSAqIFNFUVVFTkNFUyBwdWJsaWNhdGlvbiwgd2UgcHVi bGlzaCBpdCB0b28gYnV0IHdlIGRvbid0IG5lZWQgdG8KKwkJCSAqIHBpY2sgdGhlIHBhcnRp dGlvbiByb290IGV0Yy4KIAkJCSAqLwotCQkJaWYgKHB1Yi0+YWxsdGFibGVzKQorCQkJaWYg KHB1Yi0+YWxsdGFibGVzIHx8IHB1Yi0+YWxsc2VxdWVuY2VzKQogCQkJewogCQkJCXB1Ymxp c2ggPSB0cnVlOwogCQkJCWlmIChwdWItPnB1YnZpYXJvb3QgJiYgYW1fcGFydGl0aW9uKQpA QCAtMTg4OSw2ICsxOTU3LDcgQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAq ZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAJCQkJZW50cnktPnB1YmFjdGlvbnMucHVidXBk YXRlIHw9IHB1Yi0+cHViYWN0aW9ucy5wdWJ1cGRhdGU7CiAJCQkJZW50cnktPnB1YmFjdGlv bnMucHViZGVsZXRlIHw9IHB1Yi0+cHViYWN0aW9ucy5wdWJkZWxldGU7CiAJCQkJZW50cnkt PnB1YmFjdGlvbnMucHVidHJ1bmNhdGUgfD0gcHViLT5wdWJhY3Rpb25zLnB1YnRydW5jYXRl OworCQkJCWVudHJ5LT5wdWJhY3Rpb25zLnB1YnNlcXVlbmNlIHw9IHB1Yi0+cHViYWN0aW9u cy5wdWJzZXF1ZW5jZTsKIAogCQkJCS8qCiAJCQkJICogV2Ugd2FudCB0byBwdWJsaXNoIHRo ZSBjaGFuZ2VzIGFzIHRoZSB0b3AtbW9zdCBhbmNlc3RvcgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hl L3JlbGNhY2hlLmMKaW5kZXggZmNjZmZjZTU3MjkuLmI5ZjQzMDU3NTRlIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJj YXRhbG9nL3BnX29wY2xhc3MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9w Z19wdWJsaWNhdGlvbl9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Jld3Jp dGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Noc2VjbGFiZWwuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX3N0YXRpc3RpY19leHQuaCIKQEAgLTU1NDMsNiArNTU0NCw4IEBAIFJlbGF0 aW9uQnVpbGRQdWJsaWNhdGlvbkRlc2MoUmVsYXRpb24gcmVsYXRpb24sIFB1YmxpY2F0aW9u RGVzYyAqcHViZGVzYykKIAlPaWQJCQlzY2hlbWFpZDsKIAlMaXN0CSAgICphbmNlc3RvcnMg PSBOSUw7CiAJT2lkCQkJcmVsaWQgPSBSZWxhdGlvbkdldFJlbGlkKHJlbGF0aW9uKTsKKwlj aGFyCQlyZWxraW5kID0gcmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZDsKKwljaGFyCQlvYmpU eXBlOwogCiAJLyoKIAkgKiBJZiBub3QgcHVibGlzaGFibGUsIGl0IHB1Ymxpc2hlcyBubyBh Y3Rpb25zLiAgKHBnb3V0cHV0X2NoYW5nZSgpIHdpbGwKQEAgLTU1NjksOCArNTU3MiwxNSBA QCBSZWxhdGlvbkJ1aWxkUHVibGljYXRpb25EZXNjKFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJs aWNhdGlvbkRlc2MgKnB1YmRlc2MpCiAJLyogRmV0Y2ggdGhlIHB1YmxpY2F0aW9uIG1lbWJl cnNoaXAgaW5mby4gKi8KIAlwdWJvaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMocmVs aWQpOwogCXNjaGVtYWlkID0gUmVsYXRpb25HZXROYW1lc3BhY2UocmVsYXRpb24pOwotCXB1 Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsIEdldFNjaGVtYVB1Ymxp Y2F0aW9ucyhzY2hlbWFpZCkpOworCW9ialR5cGUgPSBwdWJfZ2V0X29iamVjdF90eXBlX2Zv cl9yZWxraW5kKHJlbGtpbmQpOwogCisJcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9v aWQocHVib2lkcywKKwkJCQkJCQkJCSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoc2NoZW1haWQs IG9ialR5cGUpKTsKKworCS8qCisJICogSWYgdGhpcyBpcyBhIHBhcnRpb24gKGFuZCB0aHVz IGEgdGFibGUpLCBsb29rdXAgYWxsIGFuY2VzdG9ycyBhbmQgdHJhY2sKKwkgKiBhbGwgcHVi bGljYXRpb25zIHRoZW0gdG9vLgorCSAqLwogCWlmIChyZWxhdGlvbi0+cmRfcmVsLT5yZWxp c3BhcnRpdGlvbikKIAl7CiAJCS8qIEFkZCBwdWJsaWNhdGlvbnMgdGhhdCB0aGUgYW5jZXN0 b3JzIGFyZSBpbiB0b28uICovCkBAIC01NTgyLDEyICs1NTkyLDIzIEBAIFJlbGF0aW9uQnVp bGRQdWJsaWNhdGlvbkRlc2MoUmVsYXRpb24gcmVsYXRpb24sIFB1YmxpY2F0aW9uRGVzYyAq cHViZGVzYykKIAogCQkJcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lk cywKIAkJCQkJCQkJCQkJIEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yKSk7CisK KwkJCS8qIGluY2x1ZGUgYWxsIHB1YmxpY2F0aW9ucyBwdWJsaXNoaW5nIHNjaGVtYSBvZiBh bGwgYW5jZXN0b3JzICovCiAJCQlzY2hlbWFpZCA9IGdldF9yZWxfbmFtZXNwYWNlKGFuY2Vz dG9yKTsKIAkJCXB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsCi0J CQkJCQkJCQkJCSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoc2NoZW1haWQpKTsKKwkJCQkJCQkJ CQkJIEdldFNjaGVtYVB1YmxpY2F0aW9ucyhzY2hlbWFpZCwKKwkJCQkJCQkJCQkJCQkJCQkg ICBQVUJfT0JKVFlQRV9UQUJMRSkpOwogCQl9CiAJfQotCXB1Ym9pZHMgPSBsaXN0X2NvbmNh dF91bmlxdWVfb2lkKHB1Ym9pZHMsIEdldEFsbFRhYmxlc1B1YmxpY2F0aW9ucygpKTsKKwor CS8qCisJICogQ29uc2lkZXIgYWxzbyBGT1IgQUxMIFRBQkxFUyBhbmQgRk9SIEFMTCBTRVFV RU5DRVMgcHVibGljYXRpb25zLAorCSAqIGRlcGVuZGluZyBvbiB0aGUgcmVsa2luZCBvZiB0 aGUgcmVsYXRpb24uCisJICovCisJaWYgKHJlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgPT0g UkVMS0lORF9TRVFVRU5DRSkKKwkJcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQo cHVib2lkcywgR2V0QWxsU2VxdWVuY2VzUHVibGljYXRpb25zKCkpOworCWVsc2UKKwkJcHVi b2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywgR2V0QWxsVGFibGVzUHVi bGljYXRpb25zKCkpOwogCiAJZm9yZWFjaChsYywgcHVib2lkcykKIAl7CkBAIC01NjA2LDYg KzU2MjcsNyBAQCBSZWxhdGlvbkJ1aWxkUHVibGljYXRpb25EZXNjKFJlbGF0aW9uIHJlbGF0 aW9uLCBQdWJsaWNhdGlvbkRlc2MgKnB1YmRlc2MpCiAJCXB1YmRlc2MtPnB1YmFjdGlvbnMu cHVidXBkYXRlIHw9IHB1YmZvcm0tPnB1YnVwZGF0ZTsKIAkJcHViZGVzYy0+cHViYWN0aW9u cy5wdWJkZWxldGUgfD0gcHViZm9ybS0+cHViZGVsZXRlOwogCQlwdWJkZXNjLT5wdWJhY3Rp b25zLnB1YnRydW5jYXRlIHw9IHB1YmZvcm0tPnB1YnRydW5jYXRlOworCQlwdWJkZXNjLT5w dWJhY3Rpb25zLnB1YnNlcXVlbmNlIHw9IHB1YmZvcm0tPnB1YnNlcXVlbmNlOwogCiAJCS8q CiAJCSAqIENoZWNrIGlmIGFsbCBjb2x1bW5zIHJlZmVyZW5jZWQgaW4gdGhlIGZpbHRlciBl eHByZXNzaW9uIGFyZSBwYXJ0IG9mCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9j YWNoZS9zeXNjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvc3lzY2FjaGUuYwpp bmRleCBmNGU3ODE5ZjFlMi4uYTY3NTg3N2QxOTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2NhY2hlL3N5c2NhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv c3lzY2FjaGUuYwpAQCAtNjMwLDEyICs2MzAsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBj YWNoZWRlc2MgY2FjaGVpbmZvW10gPSB7CiAJCTY0CiAJfSwKIAl7UHVibGljYXRpb25OYW1l c3BhY2VSZWxhdGlvbklkLAkvKiBQVUJMSUNBVElPTk5BTUVTUEFDRU1BUCAqLwotCQlQdWJs aWNhdGlvbk5hbWVzcGFjZVBubnNwaWRQbnB1YmlkSW5kZXhJZCwKLQkJMiwKKwkJUHVibGlj YXRpb25OYW1lc3BhY2VQbm5zcGlkUG5wdWJpZFBudHlwZUluZGV4SWQsCisJCTMsCiAJCXsK IAkJCUFudW1fcGdfcHVibGljYXRpb25fbmFtZXNwYWNlX3BubnNwaWQsCiAJCQlBbnVtX3Bn X3B1YmxpY2F0aW9uX25hbWVzcGFjZV9wbnB1YmlkLAotCQkJMCwKKwkJCUFudW1fcGdfcHVi bGljYXRpb25fbmFtZXNwYWNlX3BudHlwZSwKIAkJCTAKIAkJfSwKIAkJNjQKZGlmZiAtLWdp dCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5jCmluZGV4IDcyNWNkMmU0ZWJjLi5kZGM4NTY3Nzc5ZiAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBA IC0zODE0LDEwICszODE0LDEyIEBAIGdldFB1YmxpY2F0aW9ucyhBcmNoaXZlICpmb3V0LCBp bnQgKm51bVB1YmxpY2F0aW9ucykKIAlpbnQJCQlpX3B1Ym5hbWU7CiAJaW50CQkJaV9wdWJv d25lcjsKIAlpbnQJCQlpX3B1YmFsbHRhYmxlczsKKwlpbnQJCQlpX3B1YmFsbHNlcXVlbmNl czsKIAlpbnQJCQlpX3B1Ymluc2VydDsKIAlpbnQJCQlpX3B1YnVwZGF0ZTsKIAlpbnQJCQlp X3B1YmRlbGV0ZTsKIAlpbnQJCQlpX3B1YnRydW5jYXRlOworCWludAkJCWlfcHVic2VxdWVu Y2U7CiAJaW50CQkJaV9wdWJ2aWFyb290OwogCWludAkJCWksCiAJCQkJbnR1cHM7CkBAIC0z ODMzLDIzICszODM1LDI5IEBAIGdldFB1YmxpY2F0aW9ucyhBcmNoaXZlICpmb3V0LCBpbnQg Km51bVB1YmxpY2F0aW9ucykKIAlyZXNldFBRRXhwQnVmZmVyKHF1ZXJ5KTsKIAogCS8qIEdl dCB0aGUgcHVibGljYXRpb25zLiAqLwotCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uID49IDEz MDAwMCkKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxNTAwMDApCisJCWFwcGVuZFBR RXhwQnVmZmVyKHF1ZXJ5LAorCQkJCQkJICAiU0VMRUNUIHAudGFibGVvaWQsIHAub2lkLCBw LnB1Ym5hbWUsICIKKwkJCQkJCSAgInAucHVib3duZXIsICIKKwkJCQkJCSAgInAucHViYWxs dGFibGVzLCBwLnB1YmFsbHNlcXVlbmNlcywgcC5wdWJpbnNlcnQsIHAucHVidXBkYXRlLCBw LnB1YmRlbGV0ZSwgcC5wdWJ0cnVuY2F0ZSwgcC5wdWJzZXF1ZW5jZSwgcC5wdWJ2aWFyb290 ICIKKwkJCQkJCSAgIkZST00gcGdfcHVibGljYXRpb24gcCIpOworCWVsc2UgaWYgKGZvdXQt PnJlbW90ZVZlcnNpb24gPj0gMTMwMDAwKQogCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwK IAkJCQkJCSAgIlNFTEVDVCBwLnRhYmxlb2lkLCBwLm9pZCwgcC5wdWJuYW1lLCAiCiAJCQkJ CQkgICJwLnB1Ym93bmVyLCAiCi0JCQkJCQkgICJwLnB1YmFsbHRhYmxlcywgcC5wdWJpbnNl cnQsIHAucHVidXBkYXRlLCBwLnB1YmRlbGV0ZSwgcC5wdWJ0cnVuY2F0ZSwgcC5wdWJ2aWFy b290ICIKKwkJCQkJCSAgInAucHViYWxsdGFibGVzLCBmYWxzZSBBUyBwdWJhbGxzZXF1ZW5j ZXMsIHAucHViaW5zZXJ0LCBwLnB1YnVwZGF0ZSwgcC5wdWJkZWxldGUsIHAucHVidHJ1bmNh dGUsIGZhbHNlIEFTIHB1YnNlcXVlbmNlLCBwLnB1YnZpYXJvb3QgIgogCQkJCQkJICAiRlJP TSBwZ19wdWJsaWNhdGlvbiBwIik7CiAJZWxzZSBpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+ PSAxMTAwMDApCiAJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LAogCQkJCQkJICAiU0VMRUNU IHAudGFibGVvaWQsIHAub2lkLCBwLnB1Ym5hbWUsICIKIAkJCQkJCSAgInAucHVib3duZXIs ICIKLQkJCQkJCSAgInAucHViYWxsdGFibGVzLCBwLnB1Ymluc2VydCwgcC5wdWJ1cGRhdGUs IHAucHViZGVsZXRlLCBwLnB1YnRydW5jYXRlLCBmYWxzZSBBUyBwdWJ2aWFyb290ICIKKwkJ CQkJCSAgInAucHViYWxsdGFibGVzLCBmYWxzZSBBUyBwdWJhbGxzZXF1ZW5jZXMsIHAucHVi aW5zZXJ0LCBwLnB1YnVwZGF0ZSwgcC5wdWJkZWxldGUsIHAucHVidHJ1bmNhdGUsIGZhbHNl IEFTIHB1YnNlcXVlbmNlLCBmYWxzZSBBUyBwdWJ2aWFyb290ICIKIAkJCQkJCSAgIkZST00g cGdfcHVibGljYXRpb24gcCIpOwogCWVsc2UKIAkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnks CiAJCQkJCQkgICJTRUxFQ1QgcC50YWJsZW9pZCwgcC5vaWQsIHAucHVibmFtZSwgIgogCQkJ CQkJICAicC5wdWJvd25lciwgIgotCQkJCQkJICAicC5wdWJhbGx0YWJsZXMsIHAucHViaW5z ZXJ0LCBwLnB1YnVwZGF0ZSwgcC5wdWJkZWxldGUsIGZhbHNlIEFTIHB1YnRydW5jYXRlLCBm YWxzZSBBUyBwdWJ2aWFyb290ICIKKwkJCQkJCSAgInAucHViYWxsdGFibGVzLCBmYWxzZSBB UyBwdWJhbGxzZXF1ZW5jZXMsIHAucHViaW5zZXJ0LCBwLnB1YnVwZGF0ZSwgcC5wdWJkZWxl dGUsIGZhbHNlIEFTIHB1YnRydW5jYXRlLCBmYWxzZSBBUyBwdWJzZXF1ZW5jZSwgZmFsc2Ug QVMgcHVidmlhcm9vdCAiCiAJCQkJCQkgICJGUk9NIHBnX3B1YmxpY2F0aW9uIHAiKTsKIAog CXJlcyA9IEV4ZWN1dGVTcWxRdWVyeShmb3V0LCBxdWVyeS0+ZGF0YSwgUEdSRVNfVFVQTEVT X09LKTsKQEAgLTM4NjEsMTAgKzM4NjksMTIgQEAgZ2V0UHVibGljYXRpb25zKEFyY2hpdmUg KmZvdXQsIGludCAqbnVtUHVibGljYXRpb25zKQogCWlfcHVibmFtZSA9IFBRZm51bWJlcihy ZXMsICJwdWJuYW1lIik7CiAJaV9wdWJvd25lciA9IFBRZm51bWJlcihyZXMsICJwdWJvd25l ciIpOwogCWlfcHViYWxsdGFibGVzID0gUFFmbnVtYmVyKHJlcywgInB1YmFsbHRhYmxlcyIp OworCWlfcHViYWxsc2VxdWVuY2VzID0gUFFmbnVtYmVyKHJlcywgInB1YmFsbHNlcXVlbmNl cyIpOwogCWlfcHViaW5zZXJ0ID0gUFFmbnVtYmVyKHJlcywgInB1Ymluc2VydCIpOwogCWlf cHVidXBkYXRlID0gUFFmbnVtYmVyKHJlcywgInB1YnVwZGF0ZSIpOwogCWlfcHViZGVsZXRl ID0gUFFmbnVtYmVyKHJlcywgInB1YmRlbGV0ZSIpOwogCWlfcHVidHJ1bmNhdGUgPSBQUWZu dW1iZXIocmVzLCAicHVidHJ1bmNhdGUiKTsKKwlpX3B1YnNlcXVlbmNlID0gUFFmbnVtYmVy KHJlcywgInB1YnNlcXVlbmNlIik7CiAJaV9wdWJ2aWFyb290ID0gUFFmbnVtYmVyKHJlcywg InB1YnZpYXJvb3QiKTsKIAogCXB1YmluZm8gPSBwZ19tYWxsb2MobnR1cHMgKiBzaXplb2Yo UHVibGljYXRpb25JbmZvKSk7CkBAIC0zODgwLDYgKzM4OTAsOCBAQCBnZXRQdWJsaWNhdGlv bnMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1QdWJsaWNhdGlvbnMpCiAJCXB1YmluZm9baV0u cm9sbmFtZSA9IGdldFJvbGVOYW1lKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3B1Ym93bmVyKSk7 CiAJCXB1YmluZm9baV0ucHViYWxsdGFibGVzID0KIAkJCShzdHJjbXAoUFFnZXR2YWx1ZShy ZXMsIGksIGlfcHViYWxsdGFibGVzKSwgInQiKSA9PSAwKTsKKwkJcHViaW5mb1tpXS5wdWJh bGxzZXF1ZW5jZXMgPQorCQkJKHN0cmNtcChQUWdldHZhbHVlKHJlcywgaSwgaV9wdWJhbGxz ZXF1ZW5jZXMpLCAidCIpID09IDApOwogCQlwdWJpbmZvW2ldLnB1Ymluc2VydCA9CiAJCQko c3RyY21wKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3B1Ymluc2VydCksICJ0IikgPT0gMCk7CiAJ CXB1YmluZm9baV0ucHVidXBkYXRlID0KQEAgLTM4ODgsNiArMzkwMCw4IEBAIGdldFB1Ymxp Y2F0aW9ucyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVB1YmxpY2F0aW9ucykKIAkJCShzdHJj bXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfcHViZGVsZXRlKSwgInQiKSA9PSAwKTsKIAkJcHVi aW5mb1tpXS5wdWJ0cnVuY2F0ZSA9CiAJCQkoc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBpLCBp X3B1YnRydW5jYXRlKSwgInQiKSA9PSAwKTsKKwkJcHViaW5mb1tpXS5wdWJzZXF1ZW5jZSA9 CisJCQkoc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3B1YnNlcXVlbmNlKSwgInQiKSA9 PSAwKTsKIAkJcHViaW5mb1tpXS5wdWJ2aWFyb290ID0KIAkJCShzdHJjbXAoUFFnZXR2YWx1 ZShyZXMsIGksIGlfcHVidmlhcm9vdCksICJ0IikgPT0gMCk7CiAKQEAgLTM5MzMsNiArMzk0 Nyw5IEBAIGR1bXBQdWJsaWNhdGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBQdWJsaWNhdGlv bkluZm8gKnB1YmluZm8pCiAJaWYgKHB1YmluZm8tPnB1YmFsbHRhYmxlcykKIAkJYXBwZW5k UFFFeHBCdWZmZXJTdHIocXVlcnksICIgRk9SIEFMTCBUQUJMRVMiKTsKIAorCWlmIChwdWJp bmZvLT5wdWJhbGxzZXF1ZW5jZXMpCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAi IEZPUiBBTEwgU0VRVUVOQ0VTIik7CisKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwg IiBXSVRIIChwdWJsaXNoID0gJyIpOwogCWlmIChwdWJpbmZvLT5wdWJpbnNlcnQpCiAJewpA QCAtMzk2Nyw2ICszOTg0LDE1IEBAIGR1bXBQdWJsaWNhdGlvbihBcmNoaXZlICpmb3V0LCBj b25zdCBQdWJsaWNhdGlvbkluZm8gKnB1YmluZm8pCiAJCWZpcnN0ID0gZmFsc2U7CiAJfQog CisJaWYgKHB1YmluZm8tPnB1YnNlcXVlbmNlKQorCXsKKwkJaWYgKCFmaXJzdCkKKwkJCWFw cGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiLCAiKTsKKworCQlhcHBlbmRQUUV4cEJ1ZmZl clN0cihxdWVyeSwgInNlcXVlbmNlIik7CisJCWZpcnN0ID0gZmFsc2U7CisJfQorCiAJYXBw ZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICInIik7CiAKIAlpZiAocHViaW5mby0+cHVidmlh cm9vdCkKQEAgLTQwMTMsNiArNDAzOSw3IEBAIGdldFB1YmxpY2F0aW9uTmFtZXNwYWNlcyhB cmNoaXZlICpmb3V0KQogCWludAkJCWlfb2lkOwogCWludAkJCWlfcG5wdWJpZDsKIAlpbnQJ CQlpX3BubnNwaWQ7CisJaW50CQkJaV9wbnR5cGU7CiAJaW50CQkJaSwKIAkJCQlqLAogCQkJ CW50dXBzOwpAQCAtNDAyNCw3ICs0MDUxLDcgQEAgZ2V0UHVibGljYXRpb25OYW1lc3BhY2Vz KEFyY2hpdmUgKmZvdXQpCiAKIAkvKiBDb2xsZWN0IGFsbCBwdWJsaWNhdGlvbiBtZW1iZXJz aGlwIGluZm8uICovCiAJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCi0JCQkJCQkgIlNF TEVDVCB0YWJsZW9pZCwgb2lkLCBwbnB1YmlkLCBwbm5zcGlkICIKKwkJCQkJCSAiU0VMRUNU IHRhYmxlb2lkLCBvaWQsIHBucHViaWQsIHBubnNwaWQsIHBudHlwZSAiCiAJCQkJCQkgIkZS T00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UiKTsKIAlyZXMgPSBFeGVj dXRlU3FsUXVlcnkoZm91dCwgcXVlcnktPmRhdGEsIFBHUkVTX1RVUExFU19PSyk7CiAKQEAg LTQwMzQsNiArNDA2MSw3IEBAIGdldFB1YmxpY2F0aW9uTmFtZXNwYWNlcyhBcmNoaXZlICpm b3V0KQogCWlfb2lkID0gUFFmbnVtYmVyKHJlcywgIm9pZCIpOwogCWlfcG5wdWJpZCA9IFBR Zm51bWJlcihyZXMsICJwbnB1YmlkIik7CiAJaV9wbm5zcGlkID0gUFFmbnVtYmVyKHJlcywg InBubnNwaWQiKTsKKwlpX3BudHlwZSA9IFBRZm51bWJlcihyZXMsICJwbnR5cGUiKTsKIAog CS8qIHRoaXMgYWxsb2NhdGlvbiBtYXkgYmUgbW9yZSB0aGFuIHdlIG5lZWQgKi8KIAlwdWJz aW5mbyA9IHBnX21hbGxvYyhudHVwcyAqIHNpemVvZihQdWJsaWNhdGlvblNjaGVtYUluZm8p KTsKQEAgLTQwNDMsNiArNDA3MSw3IEBAIGdldFB1YmxpY2F0aW9uTmFtZXNwYWNlcyhBcmNo aXZlICpmb3V0KQogCXsKIAkJT2lkCQkJcG5wdWJpZCA9IGF0b29pZChQUWdldHZhbHVlKHJl cywgaSwgaV9wbnB1YmlkKSk7CiAJCU9pZAkJCXBubnNwaWQgPSBhdG9vaWQoUFFnZXR2YWx1 ZShyZXMsIGksIGlfcG5uc3BpZCkpOworCQljaGFyCQlwbnR5cGUgPSBQUWdldHZhbHVlKHJl cywgaSwgaV9wbnR5cGUpWzBdOwogCQlQdWJsaWNhdGlvbkluZm8gKnB1YmluZm87CiAJCU5h bWVzcGFjZUluZm8gKm5zcGluZm87CiAKQEAgLTQwNzQsNiArNDEwMyw3IEBAIGdldFB1Ymxp Y2F0aW9uTmFtZXNwYWNlcyhBcmNoaXZlICpmb3V0KQogCQlwdWJzaW5mb1tqXS5kb2JqLm5h bWUgPSBuc3BpbmZvLT5kb2JqLm5hbWU7CiAJCXB1YnNpbmZvW2pdLnB1YmxpY2F0aW9uID0g cHViaW5mbzsKIAkJcHVic2luZm9bal0ucHVic2NoZW1hID0gbnNwaW5mbzsKKwkJcHVic2lu Zm9bal0ucHVidHlwZSA9IHBudHlwZTsKIAogCQkvKiBEZWNpZGUgd2hldGhlciB3ZSB3YW50 IHRvIGR1bXAgaXQgKi8KIAkJc2VsZWN0RHVtcGFibGVQdWJsaWNhdGlvbk9iamVjdCgmKHB1 YnNpbmZvW2pdLmRvYmopLCBmb3V0KTsKQEAgLTQyMDcsNyArNDIzNywxMSBAQCBkdW1wUHVi bGljYXRpb25OYW1lc3BhY2UoQXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGljYXRpb25TY2hl bWFJbmZvICpwdWJzaW5mbykKIAlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CiAKIAlh cHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkFMVEVSIFBVQkxJQ0FUSU9OICVzICIsIGZtdElk KHB1YmluZm8tPmRvYmoubmFtZSkpOwotCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQURE IEFMTCBUQUJMRVMgSU4gU0NIRU1BICVzO1xuIiwgZm10SWQoc2NoZW1haW5mby0+ZG9iai5u YW1lKSk7CisKKwlpZiAocHVic2luZm8tPnB1YnR5cGUgPT0gJ3QnKQorCQlhcHBlbmRQUUV4 cEJ1ZmZlcihxdWVyeSwgIkFERCBBTEwgVEFCTEVTIElOIFNDSEVNQSAlcztcbiIsIGZtdElk KHNjaGVtYWluZm8tPmRvYmoubmFtZSkpOworCWVsc2UKKwkJYXBwZW5kUFFFeHBCdWZmZXIo cXVlcnksICJBREQgQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEgJXM7XG4iLCBmbXRJZChzY2hl bWFpbmZvLT5kb2JqLm5hbWUpKTsKIAogCS8qCiAJICogVGhlcmUgaXMgbm8gcG9pbnQgaW4g Y3JlYXRpbmcgZHJvcCBxdWVyeSBhcyB0aGUgZHJvcCBpcyBkb25lIGJ5IHNjaGVtYQpAQCAt NDI0MCw2ICs0Mjc0LDcgQEAgZHVtcFB1YmxpY2F0aW9uVGFibGUoQXJjaGl2ZSAqZm91dCwg Y29uc3QgUHVibGljYXRpb25SZWxJbmZvICpwdWJyaW5mbykKIAlUYWJsZUluZm8gICp0Ymlu Zm8gPSBwdWJyaW5mby0+cHVidGFibGU7CiAJUFFFeHBCdWZmZXIgcXVlcnk7CiAJY2hhcgkg ICAqdGFnOworCWNoYXIJICAgKmRlc2NyaXB0aW9uOwogCiAJLyogRG8gbm90aGluZyBpbiBk YXRhLW9ubHkgZHVtcCAqLwogCWlmIChkb3B0LT5kYXRhT25seSkKQEAgLTQyNDksMTAgKzQy ODQsMjIgQEAgZHVtcFB1YmxpY2F0aW9uVGFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgUHVi bGljYXRpb25SZWxJbmZvICpwdWJyaW5mbykKIAogCXF1ZXJ5ID0gY3JlYXRlUFFFeHBCdWZm ZXIoKTsKIAotCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQUxURVIgUFVCTElDQVRJT04g JXMgQUREIFRBQkxFIE9OTFkiLAotCQkJCQkgIGZtdElkKHB1YmluZm8tPmRvYmoubmFtZSkp OworCWlmICh0YmluZm8tPnJlbGtpbmQgPT0gUkVMS0lORF9TRVFVRU5DRSkKKwl7CisJCWFw cGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQUxURVIgUFVCTElDQVRJT04gJXMgQUREIFNFUVVF TkNFIiwKKwkJCQkJCSAgZm10SWQocHViaW5mby0+ZG9iai5uYW1lKSk7CisJCWRlc2NyaXB0 aW9uID0gIlBVQkxJQ0FUSU9OIFNFUVVFTkNFIjsKKwl9CisJZWxzZQorCXsKKwkJYXBwZW5k UFFFeHBCdWZmZXIocXVlcnksICJBTFRFUiBQVUJMSUNBVElPTiAlcyBBREQgVEFCTEUgT05M WSIsCisJCQkJCQkgIGZtdElkKHB1YmluZm8tPmRvYmoubmFtZSkpOworCQlkZXNjcmlwdGlv biA9ICJQVUJMSUNBVElPTiBUQUJMRSI7CisJfQorCiAJYXBwZW5kUFFFeHBCdWZmZXIocXVl cnksICIgJXMiLAogCQkJCQkgIGZtdFF1YWxpZmllZER1bXBhYmxlKHRiaW5mbykpOworCiAJ aWYgKHB1YnJpbmZvLT5wdWJyZWxxdWFsKQogCXsKIAkJLyoKQEAgLTQyNzUsNyArNDMyMiw3 IEBAIGR1bXBQdWJsaWNhdGlvblRhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0 aW9uUmVsSW5mbyAqcHVicmluZm8pCiAJCQkJCSBBUkNISVZFX09QVFMoLnRhZyA9IHRhZywK IAkJCQkJCQkJICAubmFtZXNwYWNlID0gdGJpbmZvLT5kb2JqLm5hbWVzcGFjZS0+ZG9iai5u YW1lLAogCQkJCQkJCQkgIC5vd25lciA9IHB1YmluZm8tPnJvbG5hbWUsCi0JCQkJCQkJCSAg LmRlc2NyaXB0aW9uID0gIlBVQkxJQ0FUSU9OIFRBQkxFIiwKKwkJCQkJCQkJICAuZGVzY3Jp cHRpb24gPSBkZXNjcmlwdGlvbiwKIAkJCQkJCQkJICAuc2VjdGlvbiA9IFNFQ1RJT05fUE9T VF9EQVRBLAogCQkJCQkJCQkgIC5jcmVhdGVTdG10ID0gcXVlcnktPmRhdGEpKTsKIApkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmgKaW5kZXggNzcyZGMwY2Y3YTIuLjg5MzcyNWQxMjFmIDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmgKQEAgLTYxNSwxMCArNjE1LDEyIEBAIHR5cGVkZWYgc3RydWN0IF9QdWJsaWNhdGlvbklu Zm8KIAlEdW1wYWJsZU9iamVjdCBkb2JqOwogCWNvbnN0IGNoYXIgKnJvbG5hbWU7CiAJYm9v bAkJcHViYWxsdGFibGVzOworCWJvb2wJCXB1YmFsbHNlcXVlbmNlczsKIAlib29sCQlwdWJp bnNlcnQ7CiAJYm9vbAkJcHVidXBkYXRlOwogCWJvb2wJCXB1YmRlbGV0ZTsKIAlib29sCQlw dWJ0cnVuY2F0ZTsKKwlib29sCQlwdWJzZXF1ZW5jZTsKIAlib29sCQlwdWJ2aWFyb290Owog fSBQdWJsaWNhdGlvbkluZm87CiAKQEAgLTY0Myw2ICs2NDUsNyBAQCB0eXBlZGVmIHN0cnVj dCBfUHVibGljYXRpb25TY2hlbWFJbmZvCiAJRHVtcGFibGVPYmplY3QgZG9iajsKIAlQdWJs aWNhdGlvbkluZm8gKnB1YmxpY2F0aW9uOwogCU5hbWVzcGFjZUluZm8gKnB1YnNjaGVtYTsK KwljaGFyIHB1YnR5cGU7CiB9IFB1YmxpY2F0aW9uU2NoZW1hSW5mbzsKIAogLyoKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwKaW5kZXggZmQxMDUyZTVkYjguLjE5ZjkwOGY2MDA2IDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMv YmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtMjM1OCw3ICsyMzU4LDcgQEAgbXkg JXRlc3RzID0gKAogCQljcmVhdGVfb3JkZXIgPT4gNTAsCiAJCWNyZWF0ZV9zcWwgICA9PiAn Q1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjE7JywKIAkJcmVnZXhwICAgICAgID0+IHFyL14KLQkJ CVxRQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjEgV0lUSCAocHVibGlzaCA9ICdpbnNlcnQsIHVw ZGF0ZSwgZGVsZXRlLCB0cnVuY2F0ZScpO1xFCisJCQlcUUNSRUFURSBQVUJMSUNBVElPTiBw dWIxIFdJVEggKHB1Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUs IHNlcXVlbmNlJyk7XEUKIAkJCS94bSwKIAkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rp b25fcG9zdF9kYXRhID0+IDEsIH0sCiAJfSwKQEAgLTIzNzgsMTYgKzIzNzgsMjcgQEAgbXkg JXRlc3RzID0gKAogCQljcmVhdGVfb3JkZXIgPT4gNTAsCiAJCWNyZWF0ZV9zcWwgICA9PiAn Q1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjM7JywKIAkJcmVnZXhwID0+IHFyL14KLQkJCVxRQ1JF QVRFIFBVQkxJQ0FUSU9OIHB1YjMgV0lUSCAocHVibGlzaCA9ICdpbnNlcnQsIHVwZGF0ZSwg ZGVsZXRlLCB0cnVuY2F0ZScpO1xFCisJCQlcUUNSRUFURSBQVUJMSUNBVElPTiBwdWIzIFdJ VEggKHB1Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUsIHNlcXVl bmNlJyk7XEUKIAkJCS94bSwKIAkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9z dF9kYXRhID0+IDEsIH0sCiAJfSwKIAogCSdDUkVBVEUgUFVCTElDQVRJT04gcHViNCcgPT4g ewogCQljcmVhdGVfb3JkZXIgPT4gNTAsCi0JCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFBV QkxJQ0FUSU9OIHB1YjQ7JywKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgUFVCTElDQVRJ T04gcHViNAorCQkJCQkJIEZPUiBBTEwgU0VRVUVOQ0VTCisJCQkJCQkgV0lUSCAocHVibGlz aCA9IFwnXCcpOycsCiAJCXJlZ2V4cCA9PiBxci9eCi0JCQlcUUNSRUFURSBQVUJMSUNBVElP TiBwdWI0IFdJVEggKHB1Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNh dGUnKTtcRQorCQkJXFFDUkVBVEUgUFVCTElDQVRJT04gcHViNCBGT1IgQUxMIFNFUVVFTkNF UyBXSVRIIChwdWJsaXNoID0gJycpO1xFCisJCQkveG0sCisJCWxpa2UgPT4geyAlZnVsbF9y dW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAorCX0sCisKKwknQ1JFQVRFIFBVQkxJ Q0FUSU9OIHB1YjUnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDUwLAorCQljcmVhdGVfc3Fs ICAgPT4gJ0NSRUFURSBQVUJMSUNBVElPTiBwdWI1OycsCisJCXJlZ2V4cCA9PiBxci9eCisJ CQlcUUNSRUFURSBQVUJMSUNBVElPTiBwdWI1IFdJVEggKHB1Ymxpc2ggPSAnaW5zZXJ0LCB1 cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUsIHNlcXVlbmNlJyk7XEUKIAkJCS94bSwKIAkJbGlr ZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCiAJfSwKQEAg LTI0NzQsNiArMjQ4NSwyNyBAQCBteSAldGVzdHMgPSAoCiAJCXVubGlrZSA9PiB7IGV4Y2x1 ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLCB9LAogCX0sCiAKKwknQUxURVIgUFVCTElDQVRJ T04gcHViMyBBREQgQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEgZHVtcF90ZXN0JyA9PiB7CisJ CWNyZWF0ZV9vcmRlciA9PiA1MSwKKwkJY3JlYXRlX3NxbCA9PgorCQkgICdBTFRFUiBQVUJM SUNBVElPTiBwdWIzIEFERCBBTEwgU0VRVUVOQ0VTIElOIFNDSEVNQSBkdW1wX3Rlc3Q7JywK KwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQUxURVIgUFVCTElDQVRJT04gcHViMyBBREQgQUxM IFNFUVVFTkNFUyBJTiBTQ0hFTUEgZHVtcF90ZXN0O1xFCisJCQkveG0sCisJCWxpa2UgICA9 PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCisJCXVubGlrZSA9 PiB7IGV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLCB9LAorCX0sCisKKwknQUxURVIg UFVCTElDQVRJT04gcHViMyBBREQgQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEgcHVibGljJyA9 PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA1MiwKKwkJY3JlYXRlX3NxbCA9PgorCQkgICdBTFRF UiBQVUJMSUNBVElPTiBwdWIzIEFERCBBTEwgU0VRVUVOQ0VTIElOIFNDSEVNQSBwdWJsaWM7 JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQUxURVIgUFVCTElDQVRJT04gcHViMyBBREQg QUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEgcHVibGljO1xFCisJCQkveG0sCisJCWxpa2UgPT4g eyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAorCX0sCisKIAknQ1JF QVRFIFNDSEVNQSBwdWJsaWMnID0+IHsKIAkJcmVnZXhwID0+IHFyL15DUkVBVEUgU0NIRU1B IHB1YmxpYzsvbSwKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9z cmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCA5OTFiZmMxNTQ2Yi4uYTBlZDUzN2Y4ZWIg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNx bC9kZXNjcmliZS5jCkBAIC0xNjMzLDI4ICsxNjMzLDE5IEBAIGRlc2NyaWJlT25lVGFibGVE ZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJaWYgKHRhYmxlaW5mby5yZWxraW5k ID09IFJFTEtJTkRfU0VRVUVOQ0UpCiAJewogCQlQR3Jlc3VsdCAgICpyZXN1bHQgPSBOVUxM OwotCQlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OwotCQljaGFyCSAgICpmb290 ZXJzWzJdID0ge05VTEwsIE5VTEx9OwogCiAJCWlmIChwc2V0LnN2ZXJzaW9uID49IDEwMDAw MCkKIAkJewogCQkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKLQkJCQkJCQkgICJTRUxFQ1Qg cGdfY2F0YWxvZy5mb3JtYXRfdHlwZShzZXF0eXBpZCwgTlVMTCkgQVMgXCIlc1wiLFxuIgot CQkJCQkJCSAgIiAgICAgICBzZXFzdGFydCBBUyBcIiVzXCIsXG4iCi0JCQkJCQkJICAiICAg ICAgIHNlcW1pbiBBUyBcIiVzXCIsXG4iCi0JCQkJCQkJICAiICAgICAgIHNlcW1heCBBUyBc IiVzXCIsXG4iCi0JCQkJCQkJICAiICAgICAgIHNlcWluY3JlbWVudCBBUyBcIiVzXCIsXG4i Ci0JCQkJCQkJICAiICAgICAgIENBU0UgV0hFTiBzZXFjeWNsZSBUSEVOICclcycgRUxTRSAn JXMnIEVORCBBUyBcIiVzXCIsXG4iCi0JCQkJCQkJICAiICAgICAgIHNlcWNhY2hlIEFTIFwi JXNcIlxuIiwKLQkJCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIpLAotCQkJCQkJCSAgZ2V0 dGV4dF9ub29wKCJTdGFydCIpLAotCQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJNaW5pbXVtIiks Ci0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIk1heGltdW0iKSwKLQkJCQkJCQkgIGdldHRleHRf bm9vcCgiSW5jcmVtZW50IiksCisJCQkJCQkJICAiU0VMRUNUIHBnX2NhdGFsb2cuZm9ybWF0 X3R5cGUoc2VxdHlwaWQsIE5VTEwpLFxuIgorCQkJCQkJCSAgIiAgICAgICBzZXFzdGFydCxc biIKKwkJCQkJCQkgICIgICAgICAgc2VxbWluLFxuIgorCQkJCQkJCSAgIiAgICAgICBzZXFt YXgsXG4iCisJCQkJCQkJICAiICAgICAgIHNlcWluY3JlbWVudCxcbiIKKwkJCQkJCQkgICIg ICAgICAgQ0FTRSBXSEVOIHNlcWN5Y2xlIFRIRU4gJyVzJyBFTFNFICclcycgRU5ELFxuIgor CQkJCQkJCSAgIiAgICAgICBzZXFjYWNoZVxuIiwKIAkJCQkJCQkgIGdldHRleHRfbm9vcCgi eWVzIiksCi0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIm5vIiksCi0JCQkJCQkJICBnZXR0ZXh0 X25vb3AoIkN5Y2xlcz8iKSwKLQkJCQkJCQkgIGdldHRleHRfbm9vcCgiQ2FjaGUiKSk7CisJ CQkJCQkJICBnZXR0ZXh0X25vb3AoIm5vIikpOwogCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1 ZiwKIAkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfc2VxdWVuY2VcbiIKIAkJCQkJCQkg ICJXSEVSRSBzZXFyZWxpZCA9ICclcyc7IiwKQEAgLTE2NjMsMjIgKzE2NTQsMTUgQEAgZGVz Y3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJZWxzZQog CQl7CiAJCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJCSAgIlNFTEVDVCAnYmln aW50JyBBUyBcIiVzXCIsXG4iCi0JCQkJCQkJICAiICAgICAgIHN0YXJ0X3ZhbHVlIEFTIFwi JXNcIixcbiIKLQkJCQkJCQkgICIgICAgICAgbWluX3ZhbHVlIEFTIFwiJXNcIixcbiIKLQkJ CQkJCQkgICIgICAgICAgbWF4X3ZhbHVlIEFTIFwiJXNcIixcbiIKLQkJCQkJCQkgICIgICAg ICAgaW5jcmVtZW50X2J5IEFTIFwiJXNcIixcbiIKLQkJCQkJCQkgICIgICAgICAgQ0FTRSBX SEVOIGlzX2N5Y2xlZCBUSEVOICclcycgRUxTRSAnJXMnIEVORCBBUyBcIiVzXCIsXG4iCi0J CQkJCQkJICAiICAgICAgIGNhY2hlX3ZhbHVlIEFTIFwiJXNcIlxuIiwKLQkJCQkJCQkgIGdl dHRleHRfbm9vcCgiVHlwZSIpLAotCQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJTdGFydCIpLAot CQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJNaW5pbXVtIiksCi0JCQkJCQkJICBnZXR0ZXh0X25v b3AoIk1heGltdW0iKSwKLQkJCQkJCQkgIGdldHRleHRfbm9vcCgiSW5jcmVtZW50IiksCisJ CQkJCQkJICAiU0VMRUNUICdiaWdpbnQnLFxuIgorCQkJCQkJCSAgIiAgICAgICBzdGFydF92 YWx1ZSxcbiIKKwkJCQkJCQkgICIgICAgICAgbWluX3ZhbHVlLFxuIgorCQkJCQkJCSAgIiAg ICAgICBtYXhfdmFsdWUsXG4iCisJCQkJCQkJICAiICAgICAgIGluY3JlbWVudF9ieSxcbiIK KwkJCQkJCQkgICIgICAgICAgQ0FTRSBXSEVOIGlzX2N5Y2xlZCBUSEVOICclcycgRUxTRSAn JXMnIEVORCxcbiIKKwkJCQkJCQkgICIgICAgICAgY2FjaGVfdmFsdWVcbiIsCiAJCQkJCQkJ ICBnZXR0ZXh0X25vb3AoInllcyIpLAotCQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJubyIpLAot CQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJDeWNsZXM/IiksCi0JCQkJCQkJICBnZXR0ZXh0X25v b3AoIkNhY2hlIikpOworCQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJubyIpKTsKIAkJCWFwcGVu ZFBRRXhwQnVmZmVyKCZidWYsICJGUk9NICVzIiwgZm10SWQoc2NoZW1hbmFtZSkpOwogCQkJ LyogbXVzdCBiZSBzZXBhcmF0ZSBiZWNhdXNlIGZtdElkIGlzbid0IHJlZW50cmFudCAqLwog CQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwgIi4lczsiLCBmbXRJZChyZWxhdGlvbm5hbWUp KTsKQEAgLTE2ODgsNiArMTY3Miw1MSBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25z dCBjaGFyICpzY2hlbWFuYW1lLAogCQlpZiAoIXJlcykKIAkJCWdvdG8gZXJyb3JfcmV0dXJu OwogCisJCW51bXJvd3MgPSBQUW50dXBsZXMocmVzKTsKKworCQkvKiBYWFggcmVzZXQgdG8g dXNlIGV4cGFuZGVkIG91dHB1dCBmb3Igc2VxdWVuY2VzIChtYXliZSB3ZSBzaG91bGQKKwkJ ICoga2VlcCB0aGlzIGRpc2FibGVkLCBqdXN0IGxpa2UgZm9yIHRhYmxlcz8pICovCisJCW15 b3B0LmV4cGFuZGVkID0gcHNldC5wb3B0LnRvcHQuZXhwYW5kZWQ7CisKKwkJcHJpbnRUYWJs ZUluaXQoJmNvbnQsICZteW9wdCwgdGl0bGUuZGF0YSwgNywgbnVtcm93cyk7CisJCXByaW50 VGFibGVJbml0aWFsaXplZCA9IHRydWU7CisKKwkJcHJpbnRmUFFFeHBCdWZmZXIoJnRpdGxl LCBfKCJTZXF1ZW5jZSBcIiVzLiVzXCIiKSwKKwkJCQkJCSAgc2NoZW1hbmFtZSwgcmVsYXRp b25uYW1lKTsKKworCQlwcmludFRhYmxlQWRkSGVhZGVyKCZjb250LCBnZXR0ZXh0X25vb3Ao IlR5cGUiKSwgdHJ1ZSwgJ2wnKTsKKwkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0 dGV4dF9ub29wKCJTdGFydCIpLCB0cnVlLCAncicpOworCQlwcmludFRhYmxlQWRkSGVhZGVy KCZjb250LCBnZXR0ZXh0X25vb3AoIk1pbmltdW0iKSwgdHJ1ZSwgJ3InKTsKKwkJcHJpbnRU YWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJNYXhpbXVtIiksIHRydWUsICdy Jyk7CisJCXByaW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiSW5jcmVt ZW50IiksIHRydWUsICdyJyk7CisJCXByaW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRl eHRfbm9vcCgiQ3ljbGVzPyIpLCB0cnVlLCAnbCcpOworCQlwcmludFRhYmxlQWRkSGVhZGVy KCZjb250LCBnZXR0ZXh0X25vb3AoIkNhY2hlIiksIHRydWUsICdyJyk7CisKKwkJLyogR2Vu ZXJhdGUgdGFibGUgY2VsbHMgdG8gYmUgcHJpbnRlZCAqLworCQlmb3IgKGkgPSAwOyBpIDwg bnVtcm93czsgaSsrKQorCQl7CisJCQkvKiBUeXBlICovCisJCQlwcmludFRhYmxlQWRkQ2Vs bCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIDApLCBmYWxzZSwgZmFsc2UpOworCisJCQkv KiBTdGFydCAqLworCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVz LCBpLCAxKSwgZmFsc2UsIGZhbHNlKTsKKworCQkJLyogTWluaW11bSAqLworCQkJcHJpbnRU YWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCAyKSwgZmFsc2UsIGZhbHNl KTsKKworCQkJLyogTWF4aW11bSAqLworCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBR Z2V0dmFsdWUocmVzLCBpLCAzKSwgZmFsc2UsIGZhbHNlKTsKKworCQkJLyogSW5jcmVtZW50 ICovCisJCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIDQp LCBmYWxzZSwgZmFsc2UpOworCisJCQkvKiBDeWNsZXM/ICovCisJCQlwcmludFRhYmxlQWRk Q2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIDUpLCBmYWxzZSwgZmFsc2UpOworCisJ CQkvKiBDYWNoZSAqLworCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUo cmVzLCBpLCA2KSwgZmFsc2UsIGZhbHNlKTsKKwkJfQorCiAJCS8qIEZvb3RlciBpbmZvcm1h dGlvbiBhYm91dCBhIHNlcXVlbmNlICovCiAKIAkJLyogR2V0IHRoZSBjb2x1bW4gdGhhdCBv d25zIHRoaXMgc2VxdWVuY2UgKi8KQEAgLTE3MjEsMjkgKzE3NTAsNjMgQEAgZGVzY3JpYmVP bmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJCXN3aXRjaCAoUFFn ZXR2YWx1ZShyZXN1bHQsIDAsIDEpWzBdKQogCQkJewogCQkJCWNhc2UgJ2EnOgotCQkJCQlm b290ZXJzWzBdID0gcHNwcmludGYoXygiT3duZWQgYnk6ICVzIiksCi0JCQkJCQkJCQkJICBQ UWdldHZhbHVlKHJlc3VsdCwgMCwgMCkpOworCQkJCQlwcmludFRhYmxlQWRkRm9vdGVyKCZj b250LAorCQkJCQkJCQkJCXBzcHJpbnRmKF8oIk93bmVkIGJ5OiAlcyIpLAorCQkJCQkJCQkJ CQkJIFBRZ2V0dmFsdWUocmVzdWx0LCAwLCAwKSkpOwogCQkJCQlicmVhazsKIAkJCQljYXNl ICdpJzoKLQkJCQkJZm9vdGVyc1swXSA9IHBzcHJpbnRmKF8oIlNlcXVlbmNlIGZvciBpZGVu dGl0eSBjb2x1bW46ICVzIiksCi0JCQkJCQkJCQkJICBQUWdldHZhbHVlKHJlc3VsdCwgMCwg MCkpOworCQkJCQlwcmludFRhYmxlQWRkRm9vdGVyKCZjb250LAorCQkJCQkJCQkJCXBzcHJp bnRmKF8oIlNlcXVlbmNlIGZvciBpZGVudGl0eSBjb2x1bW46ICVzIiksCisJCQkJCQkJCQkJ CQkgUFFnZXR2YWx1ZShyZXN1bHQsIDAsIDApKSk7CiAJCQkJCWJyZWFrOwogCQkJfQogCQl9 CiAJCVBRY2xlYXIocmVzdWx0KTsKIAotCQlwcmludGZQUUV4cEJ1ZmZlcigmdGl0bGUsIF8o IlNlcXVlbmNlIFwiJXMuJXNcIiIpLAotCQkJCQkJICBzY2hlbWFuYW1lLCByZWxhdGlvbm5h bWUpOworCQkvKiBwcmludCBhbnkgcHVibGljYXRpb25zICovCisJCWlmIChwc2V0LnN2ZXJz aW9uID49IDE1MDAwMCkKKwkJeworCQkJaW50CQkJdHVwbGVzID0gMDsKIAotCQlteW9wdC5m b290ZXJzID0gZm9vdGVyczsKLQkJbXlvcHQudG9wdC5kZWZhdWx0X2Zvb3RlciA9IGZhbHNl OwotCQlteW9wdC50aXRsZSA9IHRpdGxlLmRhdGE7Ci0JCW15b3B0LnRyYW5zbGF0ZV9oZWFk ZXIgPSB0cnVlOworCQkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkgICJTRUxF Q1QgcHVibmFtZVxuIgorCQkJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlv biBwXG4iCisJCQkJCQkJICAiCQlKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fbmFt ZXNwYWNlIHBuIE9OIHAub2lkID0gcG4ucG5wdWJpZFxuIgorCQkJCQkJCSAgIgkJSk9JTiBw Z19jYXRhbG9nLnBnX2NsYXNzIHBjIE9OIHBjLnJlbG5hbWVzcGFjZSA9IHBuLnBubnNwaWRc biIKKwkJCQkJCQkgICJXSEVSRSBwYy5vaWQgPSclcycgYW5kIHBuLnBudHlwZSA9ICdzJyBh bmQgcGdfY2F0YWxvZy5wZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZSgnJXMnKVxuIgorCQkJ CQkJCSAgIlVOSU9OXG4iCisJCQkJCQkJICAiU0VMRUNUIHB1Ym5hbWVcbiIKKwkJCQkJCQkg ICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24gcFxuIgorCQkJCQkJCSAgIgkJSk9J TiBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwciBPTiBwLm9pZCA9IHByLnBycHVi aWRcbiIKKwkJCQkJCQkgICJXSEVSRSBwci5wcnJlbGlkID0gJyVzJ1xuIgorCQkJCQkJCSAg IlVOSU9OXG4iCisJCQkJCQkJICAiU0VMRUNUIHB1Ym5hbWVcbiIKKwkJCQkJCQkgICJGUk9N IHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24gcFxuIgorCQkJCQkJCSAgIldIRVJFIHAucHVi YWxsc2VxdWVuY2VzIEFORCBwZ19jYXRhbG9nLnBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxl KCclcycpXG4iCisJCQkJCQkJICAiT1JERVIgQlkgMTsiLAorCQkJCQkJCSAgb2lkLCBvaWQs IG9pZCwgb2lkKTsKIAotCQlwcmludFF1ZXJ5KHJlcywgJm15b3B0LCBwc2V0LnF1ZXJ5Rm91 dCwgZmFsc2UsIHBzZXQubG9nZmlsZSk7CisJCQlyZXN1bHQgPSBQU1FMZXhlYyhidWYuZGF0 YSk7CisJCQlpZiAoIXJlc3VsdCkKKwkJCQlnb3RvIGVycm9yX3JldHVybjsKKwkJCWVsc2UK KwkJCQl0dXBsZXMgPSBQUW50dXBsZXMocmVzdWx0KTsKKworCQkJaWYgKHR1cGxlcyA+IDAp CisJCQkJcHJpbnRUYWJsZUFkZEZvb3RlcigmY29udCwgXygiUHVibGljYXRpb25zOiIpKTsK KworCQkJLyogTWlnaHQgYmUgYW4gZW1wdHkgc2V0IC0gdGhhdCdzIG9rICovCisJCQlmb3Ig KGkgPSAwOyBpIDwgdHVwbGVzOyBpKyspCisJCQl7CisJCQkJcHJpbnRmUFFFeHBCdWZmZXIo JmJ1ZiwgIiAgICBcIiVzXCIiLAorCQkJCQkJCQkgIFBRZ2V0dmFsdWUocmVzdWx0LCBpLCAw KSk7CisKKwkJCQlwcmludFRhYmxlQWRkRm9vdGVyKCZjb250LCBidWYuZGF0YSk7CisJCQl9 CisJCQlQUWNsZWFyKHJlc3VsdCk7CisJCX0KIAotCQlpZiAoZm9vdGVyc1swXSkKLQkJCWZy ZWUoZm9vdGVyc1swXSk7CisJCXByaW50VGFibGUoJmNvbnQsIHBzZXQucXVlcnlGb3V0LCBm YWxzZSwgcHNldC5sb2dmaWxlKTsKIAogCQlyZXR2YWwgPSB0cnVlOwogCQlnb3RvIGVycm9y X3JldHVybjsJCS8qIG5vdCBhbiBlcnJvciwganVzdCByZXR1cm4gZWFybHkgKi8KQEAgLTE5 NzAsNiArMjAzMywxMSBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpz Y2hlbWFuYW1lLAogCWZvciAoaSA9IDA7IGkgPCBjb2xzOyBpKyspCiAJCXByaW50VGFibGVB ZGRIZWFkZXIoJmNvbnQsIGhlYWRlcnNbaV0sIHRydWUsICdsJyk7CiAKKwlyZXMgPSBQU1FM ZXhlYyhidWYuZGF0YSk7CisJaWYgKCFyZXMpCisJCWdvdG8gZXJyb3JfcmV0dXJuOworCW51 bXJvd3MgPSBQUW50dXBsZXMocmVzKTsKKwogCS8qIEdlbmVyYXRlIHRhYmxlIGNlbGxzIHRv IGJlIHByaW50ZWQgKi8KIAlmb3IgKGkgPSAwOyBpIDwgbnVtcm93czsgaSsrKQogCXsKQEAg LTI4OTUsNyArMjk2Myw3IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIg KnNjaGVtYW5hbWUsCiAJCQkJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlv biBwXG4iCiAJCQkJCQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX25h bWVzcGFjZSBwbiBPTiBwLm9pZCA9IHBuLnBucHViaWRcbiIKIAkJCQkJCQkJICAiCQlKT0lO IHBnX2NhdGFsb2cucGdfY2xhc3MgcGMgT04gcGMucmVsbmFtZXNwYWNlID0gcG4ucG5uc3Bp ZFxuIgotCQkJCQkJCQkgICJXSEVSRSBwYy5vaWQgPSclcycgYW5kIHBnX2NhdGFsb2cucGdf cmVsYXRpb25faXNfcHVibGlzaGFibGUoJyVzJylcbiIKKwkJCQkJCQkJICAiV0hFUkUgcGMu b2lkID0nJXMnIGFuZCBwbi5wbnR5cGUgPSAndCcgYW5kIHBnX2NhdGFsb2cucGdfcmVsYXRp b25faXNfcHVibGlzaGFibGUoJyVzJylcbiIKIAkJCQkJCQkJICAiVU5JT05cbiIKIAkJCQkJ CQkJICAiU0VMRUNUIHB1Ym5hbWVcbiIKIAkJCQkJCQkJICAiCQksIHBnX2dldF9leHByKHBy LnBycXVhbCwgYy5vaWQpXG4iCkBAIC00Nzg1LDcgKzQ4NTMsNyBAQCBsaXN0U2NoZW1hcyhj b25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UsIGJvb2wgc2hvd1N5c3RlbSkKIAkJ aW50CQkJaTsKIAogCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJICAiU0VMRUNU IHB1Ym5hbWUgXG4iCisJCQkJCQkgICJTRUxFQ1QgcHVibmFtZSwgKENBU0UgV0hFTiBwbnR5 cGUgPSAndCcgVEhFTiAndGFibGVzJyBFTFNFICdzZXF1ZW5jZXMnIEVORCkgQVMgcHVidHlw ZVxuIgogCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKIAkJ CQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX25hbWVzcGFjZSBwbiBP TiBwLm9pZCA9IHBuLnBucHViaWRcbiIKIAkJCQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9nLnBn X25hbWVzcGFjZSBuIE9OIG4ub2lkID0gcG4ucG5uc3BpZCBcbiIKQEAgLTQ4MTQsOCArNDg4 Miw5IEBAIGxpc3RTY2hlbWFzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSwg Ym9vbCBzaG93U3lzdGVtKQogCQkJLyogTWlnaHQgYmUgYW4gZW1wdHkgc2V0IC0gdGhhdCdz IG9rICovCiAJCQlmb3IgKGkgPSAwOyBpIDwgcHViX3NjaGVtYV90dXBsZXM7IGkrKykKIAkJ CXsKLQkJCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLCAiICAgIFwiJXNcIiIsCi0JCQkJCQkJ CSAgUFFnZXR2YWx1ZShyZXN1bHQsIGksIDApKTsKKwkJCQlwcmludGZQUUV4cEJ1ZmZlcigm YnVmLCAiICAgIFwiJXNcIiAoJXMpIiwKKwkJCQkJCQkJICBQUWdldHZhbHVlKHJlc3VsdCwg aSwgMCksCisJCQkJCQkJCSAgUFFnZXR2YWx1ZShyZXN1bHQsIGksIDEpKTsKIAogCQkJCWZv b3RlcnNbaSArIDFdID0gcGdfc3RyZHVwKGJ1Zi5kYXRhKTsKIAkJCX0KQEAgLTU4MjAsNyAr NTg4OSw3IEBAIGxpc3RQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikKIAlQUUV4 cEJ1ZmZlckRhdGEgYnVmOwogCVBHcmVzdWx0ICAgKnJlczsKIAlwcmludFF1ZXJ5T3B0IG15 b3B0ID0gcHNldC5wb3B0OwotCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5z W10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us IGZhbHNlfTsKKwlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2Zh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlfTsKIAogCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTAwMDAwKQogCXsKQEAg LTU4MzQsMjMgKzU5MDMsNDUgQEAgbGlzdFB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpwYXR0 ZXJuKQogCiAJaW5pdFBRRXhwQnVmZmVyKCZidWYpOwogCi0JcHJpbnRmUFFFeHBCdWZmZXIo JmJ1ZiwKLQkJCQkJICAiU0VMRUNUIHB1Ym5hbWUgQVMgXCIlc1wiLFxuIgotCQkJCQkgICIg IHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHB1Ym93bmVyKSBBUyBcIiVzXCIsXG4iCi0J CQkJCSAgIiAgcHViYWxsdGFibGVzIEFTIFwiJXNcIixcbiIKLQkJCQkJICAiICBwdWJpbnNl cnQgQVMgXCIlc1wiLFxuIgotCQkJCQkgICIgIHB1YnVwZGF0ZSBBUyBcIiVzXCIsXG4iCi0J CQkJCSAgIiAgcHViZGVsZXRlIEFTIFwiJXNcIiIsCi0JCQkJCSAgZ2V0dGV4dF9ub29wKCJO YW1lIiksCi0JCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpLAotCQkJCQkgIGdldHRleHRf bm9vcCgiQWxsIHRhYmxlcyIpLAotCQkJCQkgIGdldHRleHRfbm9vcCgiSW5zZXJ0cyIpLAot CQkJCQkgIGdldHRleHRfbm9vcCgiVXBkYXRlcyIpLAotCQkJCQkgIGdldHRleHRfbm9vcCgi RGVsZXRlcyIpKTsKKwlpZiAocHNldC5zdmVyc2lvbiA+PSAxNTAwMDApCisJCXByaW50ZlBR RXhwQnVmZmVyKCZidWYsCisJCQkJCQkgICJTRUxFQ1QgcHVibmFtZSBBUyBcIiVzXCIsXG4i CisJCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHB1Ym93bmVyKSBBUyBc IiVzXCIsXG4iCisJCQkJCQkgICIgIHB1YmFsbHRhYmxlcyBBUyBcIiVzXCIsXG4iCisJCQkJ CQkgICIgIHB1YmFsbHNlcXVlbmNlcyBBUyBcIiVzXCIsXG4iCisJCQkJCQkgICIgIHB1Ymlu c2VydCBBUyBcIiVzXCIsXG4iCisJCQkJCQkgICIgIHB1YnVwZGF0ZSBBUyBcIiVzXCIsXG4i CisJCQkJCQkgICIgIHB1YmRlbGV0ZSBBUyBcIiVzXCIiLAorCQkJCQkJICBnZXR0ZXh0X25v b3AoIk5hbWUiKSwKKwkJCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpLAorCQkJCQkJICBn ZXR0ZXh0X25vb3AoIkFsbCB0YWJsZXMiKSwKKwkJCQkJCSAgZ2V0dGV4dF9ub29wKCJBbGwg c2VxdWVuY2VzIiksCisJCQkJCQkgIGdldHRleHRfbm9vcCgiSW5zZXJ0cyIpLAorCQkJCQkJ ICBnZXR0ZXh0X25vb3AoIlVwZGF0ZXMiKSwKKwkJCQkJCSAgZ2V0dGV4dF9ub29wKCJEZWxl dGVzIikpOworCWVsc2UKKwkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCSAgIlNF TEVDVCBwdWJuYW1lIEFTIFwiJXNcIixcbiIKKwkJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19n ZXRfdXNlcmJ5aWQocHVib3duZXIpIEFTIFwiJXNcIixcbiIKKwkJCQkJCSAgIiAgcHViYWxs dGFibGVzIEFTIFwiJXNcIixcbiIKKwkJCQkJCSAgIiAgcHViaW5zZXJ0IEFTIFwiJXNcIixc biIKKwkJCQkJCSAgIiAgcHVidXBkYXRlIEFTIFwiJXNcIixcbiIKKwkJCQkJCSAgIiAgcHVi ZGVsZXRlIEFTIFwiJXNcIiIsCisJCQkJCQkgIGdldHRleHRfbm9vcCgiTmFtZSIpLAorCQkJ CQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIiksCisJCQkJCQkgIGdldHRleHRfbm9vcCgiQWxs IHRhYmxlcyIpLAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIkluc2VydHMiKSwKKwkJCQkJCSAg Z2V0dGV4dF9ub29wKCJVcGRhdGVzIiksCisJCQkJCQkgIGdldHRleHRfbm9vcCgiRGVsZXRl cyIpKTsKKwogCWlmIChwc2V0LnN2ZXJzaW9uID49IDExMDAwMCkKIAkJYXBwZW5kUFFFeHBC dWZmZXIoJmJ1ZiwKIAkJCQkJCSAgIixcbiAgcHVidHJ1bmNhdGUgQVMgXCIlc1wiIiwKIAkJ CQkJCSAgZ2V0dGV4dF9ub29wKCJUcnVuY2F0ZXMiKSk7CisJaWYgKHBzZXQuc3ZlcnNpb24g Pj0gMTUwMDAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAiLFxuICBw dWJzZXF1ZW5jZSBBUyBcIiVzXCIiLAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIlNlcXVlbmNl cyIpKTsKIAlpZiAocHNldC5zdmVyc2lvbiA+PSAxMzAwMDApCiAJCWFwcGVuZFBRRXhwQnVm ZmVyKCZidWYsCiAJCQkJCQkgICIsXG4gIHB1YnZpYXJvb3QgQVMgXCIlc1wiIiwKQEAgLTU5 MzYsNiArNjAyNyw3IEBAIGRlc2NyaWJlUHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRl cm4pCiAJUEdyZXN1bHQgICAqcmVzOwogCWJvb2wJCWhhc19wdWJ0cnVuY2F0ZTsKIAlib29s CQloYXNfcHVidmlhcm9vdDsKKwlib29sCQloYXNfcHVic2VxdWVuY2U7CiAKIAlQUUV4cEJ1 ZmZlckRhdGEgdGl0bGU7CiAJcHJpbnRUYWJsZUNvbnRlbnQgY29udDsKQEAgLTU5NTIsNiAr NjA0NCw3IEBAIGRlc2NyaWJlUHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAK IAloYXNfcHVidHJ1bmNhdGUgPSAocHNldC5zdmVyc2lvbiA+PSAxMTAwMDApOwogCWhhc19w dWJ2aWFyb290ID0gKHBzZXQuc3ZlcnNpb24gPj0gMTMwMDAwKTsKKwloYXNfcHVic2VxdWVu Y2UgPSAocHNldC5zdmVyc2lvbiA+PSAxNTAwMDApOwogCiAJaW5pdFBRRXhwQnVmZmVyKCZi dWYpOwogCkBAIC01OTU5LDEyICs2MDUyLDE3IEBAIGRlc2NyaWJlUHVibGljYXRpb25zKGNv bnN0IGNoYXIgKnBhdHRlcm4pCiAJCQkJCSAgIlNFTEVDVCBvaWQsIHB1Ym5hbWUsXG4iCiAJ CQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQocHVib3duZXIpIEFTIG93bmVy LFxuIgogCQkJCQkgICIgIHB1YmFsbHRhYmxlcywgcHViaW5zZXJ0LCBwdWJ1cGRhdGUsIHB1 YmRlbGV0ZSIpOworCiAJaWYgKGhhc19wdWJ0cnVuY2F0ZSkKIAkJYXBwZW5kUFFFeHBCdWZm ZXJTdHIoJmJ1ZiwKIAkJCQkJCQkgIiwgcHVidHJ1bmNhdGUiKTsKIAlpZiAoaGFzX3B1YnZp YXJvb3QpCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsCiAJCQkJCQkJICIsIHB1YnZp YXJvb3QiKTsKKwlpZiAoaGFzX3B1YnNlcXVlbmNlKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0 cigmYnVmLAorCQkJCQkJCSAiLCBwdWJhbGxzZXF1ZW5jZXMsIHB1YnNlcXVlbmNlIik7CisK IAlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLAogCQkJCQkJICJcbkZST00gcGdfY2F0YWxv Zy5wZ19wdWJsaWNhdGlvblxuIik7CiAKQEAgLTYwMDUsNiArNjEwMyw3IEBAIGRlc2NyaWJl UHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJCWNoYXIJICAgKnB1YmlkID0g UFFnZXR2YWx1ZShyZXMsIGksIDApOwogCQljaGFyCSAgICpwdWJuYW1lID0gUFFnZXR2YWx1 ZShyZXMsIGksIDEpOwogCQlib29sCQlwdWJhbGx0YWJsZXMgPSBzdHJjbXAoUFFnZXR2YWx1 ZShyZXMsIGksIDMpLCAidCIpID09IDA7CisJCWJvb2wJCXB1YmFsbHNlcXVlbmNlcyA9IHN0 cmNtcChQUWdldHZhbHVlKHJlcywgaSwgOSksICJ0IikgPT0gMDsKIAkJcHJpbnRUYWJsZU9w dCBteW9wdCA9IHBzZXQucG9wdC50b3B0OwogCiAJCWlmIChoYXNfcHVidHJ1bmNhdGUpCkBA IC02MDEyLDI5ICs2MTExLDQzIEBAIGRlc2NyaWJlUHVibGljYXRpb25zKGNvbnN0IGNoYXIg KnBhdHRlcm4pCiAJCWlmIChoYXNfcHVidmlhcm9vdCkKIAkJCW5jb2xzKys7CiAKKwkJLyog c2VxdWVuY2VzIGhhdmUgdHdvIGV4dHJhIGNvbHVtbnMgKHB1YmFsbHNlcXVlbmNlcywgcHVi c2VxdWVuY2VzKSAqLworCQlpZiAoaGFzX3B1YnNlcXVlbmNlKQorCQkJbmNvbHMgKz0gMjsK KwogCQlpbml0UFFFeHBCdWZmZXIoJnRpdGxlKTsKIAkJcHJpbnRmUFFFeHBCdWZmZXIoJnRp dGxlLCBfKCJQdWJsaWNhdGlvbiAlcyIpLCBwdWJuYW1lKTsKIAkJcHJpbnRUYWJsZUluaXQo JmNvbnQsICZteW9wdCwgdGl0bGUuZGF0YSwgbmNvbHMsIG5yb3dzKTsKIAogCQlwcmludFRh YmxlQWRkSGVhZGVyKCZjb250LCBnZXR0ZXh0X25vb3AoIk93bmVyIiksIHRydWUsIGFsaWdu KTsKIAkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJBbGwgdGFi bGVzIiksIHRydWUsIGFsaWduKTsKKwkJaWYgKGhhc19wdWJzZXF1ZW5jZSkKKwkJCXByaW50 VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiQWxsIHNlcXVlbmNlcyIpLCB0 cnVlLCBhbGlnbik7CiAJCXByaW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9v cCgiSW5zZXJ0cyIpLCB0cnVlLCBhbGlnbik7CiAJCXByaW50VGFibGVBZGRIZWFkZXIoJmNv bnQsIGdldHRleHRfbm9vcCgiVXBkYXRlcyIpLCB0cnVlLCBhbGlnbik7CiAJCXByaW50VGFi bGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiRGVsZXRlcyIpLCB0cnVlLCBhbGln bik7CiAJCWlmIChoYXNfcHVidHJ1bmNhdGUpCiAJCQlwcmludFRhYmxlQWRkSGVhZGVyKCZj b250LCBnZXR0ZXh0X25vb3AoIlRydW5jYXRlcyIpLCB0cnVlLCBhbGlnbik7CisJCWlmICho YXNfcHVic2VxdWVuY2UpCisJCQlwcmludFRhYmxlQWRkSGVhZGVyKCZjb250LCBnZXR0ZXh0 X25vb3AoIlNlcXVlbmNlcyIpLCB0cnVlLCBhbGlnbik7CiAJCWlmIChoYXNfcHVidmlhcm9v dCkKIAkJCXByaW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiVmlhIHJv b3QiKSwgdHJ1ZSwgYWxpZ24pOwogCi0JCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdl dHZhbHVlKHJlcywgaSwgMiksIGZhbHNlLCBmYWxzZSk7Ci0JCXByaW50VGFibGVBZGRDZWxs KCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgMyksIGZhbHNlLCBmYWxzZSk7Ci0JCXByaW50 VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgNCksIGZhbHNlLCBmYWxz ZSk7Ci0JCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgNSks IGZhbHNlLCBmYWxzZSk7Ci0JCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVl KHJlcywgaSwgNiksIGZhbHNlLCBmYWxzZSk7CisJCXByaW50VGFibGVBZGRDZWxsKCZjb250 LCBQUWdldHZhbHVlKHJlcywgaSwgMiksIGZhbHNlLCBmYWxzZSk7IC8qIG93bmVyICovCisJ CXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgMyksIGZhbHNl LCBmYWxzZSk7IC8qIGFsbCB0YWJsZXMgKi8KKworCQlpZiAoaGFzX3B1YnNlcXVlbmNlKQor CQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCA5KSwgZmFs c2UsIGZhbHNlKTsgLyogYWxsIHNlcXVlbmNlcyAqLworCisJCXByaW50VGFibGVBZGRDZWxs KCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgNCksIGZhbHNlLCBmYWxzZSk7IC8qIGluc2Vy dCAqLworCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIDUp LCBmYWxzZSwgZmFsc2UpOyAvKiB1cGRhdGUgKi8KKwkJcHJpbnRUYWJsZUFkZENlbGwoJmNv bnQsIFBRZ2V0dmFsdWUocmVzLCBpLCA2KSwgZmFsc2UsIGZhbHNlKTsgLyogZGVsZXRlICov CiAJCWlmIChoYXNfcHVidHJ1bmNhdGUpCi0JCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwg UFFnZXR2YWx1ZShyZXMsIGksIDcpLCBmYWxzZSwgZmFsc2UpOworCQkJcHJpbnRUYWJsZUFk ZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCA3KSwgZmFsc2UsIGZhbHNlKTsgLyog dHJ1bmNhdGUgKi8KKwkJaWYgKGhhc19wdWJzZXF1ZW5jZSkKKwkJCXByaW50VGFibGVBZGRD ZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgMTApLCBmYWxzZSwgZmFsc2UpOyAvKiBz ZXF1ZW5jZSAqLwogCQlpZiAoaGFzX3B1YnZpYXJvb3QpCi0JCQlwcmludFRhYmxlQWRkQ2Vs bCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIDgpLCBmYWxzZSwgZmFsc2UpOworCQkJcHJp bnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCA4KSwgZmFsc2UsIGZh bHNlKTsgLyogdmlhIHJvb3QgKi8KIAogCQlpZiAoIXB1YmFsbHRhYmxlcykKIAkJewpAQCAt NjA1NCw2ICs2MTY3LDcgQEAgZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0 dGVybikKIAkJCQkJCQkgICJXSEVSRSBjLnJlbG5hbWVzcGFjZSA9IG4ub2lkXG4iCiAJCQkJ CQkJICAiICBBTkQgYy5vaWQgPSBwci5wcnJlbGlkXG4iCiAJCQkJCQkJICAiICBBTkQgcHIu cHJwdWJpZCA9ICclcydcbiIKKwkJCQkJCQkgICIgIEFORCBjLnJlbGtpbmQgIT0gJ1MnXG4i IC8qIGV4Y2x1ZGUgc2VxdWVuY2VzICovCiAJCQkJCQkJICAiT1JERVIgQlkgMSwyIiwgcHVi aWQpOwogCQkJaWYgKCFhZGRGb290ZXJUb1B1YmxpY2F0aW9uRGVzYygmYnVmLCAiVGFibGVz OiIsIGZhbHNlLCAmY29udCkpCiAJCQkJZ290byBlcnJvcl9yZXR1cm47CkBAIC02MDY1LDcg KzYxNzksNyBAQCBkZXNjcmliZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQog CQkJCQkJCQkgICJTRUxFQ1Qgbi5uc3BuYW1lXG4iCiAJCQkJCQkJCSAgIkZST00gcGdfY2F0 YWxvZy5wZ19uYW1lc3BhY2UgblxuIgogCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxv Zy5wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UgcG4gT04gbi5vaWQgPSBwbi5wbm5zcGlkXG4i Ci0JCQkJCQkJCSAgIldIRVJFIHBuLnBucHViaWQgPSAnJXMnXG4iCisJCQkJCQkJCSAgIldI RVJFIHBuLnBucHViaWQgPSAnJXMnIEFORCBwbi5wbnR5cGUgPSAndCdcbiIKIAkJCQkJCQkJ ICAiT1JERVIgQlkgMSIsIHB1YmlkKTsKIAkJCQlpZiAoIWFkZEZvb3RlclRvUHVibGljYXRp b25EZXNjKCZidWYsICJUYWJsZXMgZnJvbSBzY2hlbWFzOiIsCiAJCQkJCQkJCQkJCQl0cnVl LCAmY29udCkpCkBAIC02MDczLDYgKzYxODcsMzcgQEAgZGVzY3JpYmVQdWJsaWNhdGlvbnMo Y29uc3QgY2hhciAqcGF0dGVybikKIAkJCX0KIAkJfQogCisJCWlmICghcHViYWxsc2VxdWVu Y2VzKQorCQl7CisJCQkvKiBHZXQgdGhlIHRhYmxlcyBmb3IgdGhlIHNwZWNpZmllZCBwdWJs aWNhdGlvbiAqLworCQkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkgICJTRUxF Q1Qgbi5uc3BuYW1lLCBjLnJlbG5hbWUsIE5VTExcbiIKKwkJCQkJCQkgICJGUk9NIHBnX2Nh dGFsb2cucGdfY2xhc3MgYyxcbiIKKwkJCQkJCQkgICIgICAgIHBnX2NhdGFsb2cucGdfbmFt ZXNwYWNlIG4sXG4iCisJCQkJCQkJICAiICAgICBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9u X3JlbCBwclxuIgorCQkJCQkJCSAgIldIRVJFIGMucmVsbmFtZXNwYWNlID0gbi5vaWRcbiIK KwkJCQkJCQkgICIgIEFORCBjLm9pZCA9IHByLnBycmVsaWRcbiIKKwkJCQkJCQkgICIgIEFO RCBwci5wcnB1YmlkID0gJyVzJ1xuIgorCQkJCQkJCSAgIiAgQU5EIGMucmVsa2luZCA9ICdT J1xuIiAvKiBvbmx5IHNlcXVlbmNlcyAqLworCQkJCQkJCSAgIk9SREVSIEJZIDEsMiIsIHB1 YmlkKTsKKwkJCWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlvbkRlc2MoJmJ1ZiwgIlNlcXVl bmNlczoiLCBmYWxzZSwgJmNvbnQpKQorCQkJCWdvdG8gZXJyb3JfcmV0dXJuOworCisJCQlp ZiAocHNldC5zdmVyc2lvbiA+PSAxNTAwMDApCisJCQl7CisJCQkJLyogR2V0IHRoZSBzY2hl bWFzIGZvciB0aGUgc3BlY2lmaWVkIHB1YmxpY2F0aW9uICovCisJCQkJcHJpbnRmUFFFeHBC dWZmZXIoJmJ1ZiwKKwkJCQkJCQkJICAiU0VMRUNUIG4ubnNwbmFtZVxuIgorCQkJCQkJCQkg ICJGUk9NIHBnX2NhdGFsb2cucGdfbmFtZXNwYWNlIG5cbiIKKwkJCQkJCQkJICAiICAgICBK T0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fbmFtZXNwYWNlIHBuIE9OIG4ub2lkID0g cG4ucG5uc3BpZFxuIgorCQkJCQkJCQkgICJXSEVSRSBwbi5wbnB1YmlkID0gJyVzJyBBTkQg cG4ucG50eXBlID0gJ3MnXG4iCisJCQkJCQkJCSAgIk9SREVSIEJZIDEiLCBwdWJpZCk7CisJ CQkJaWYgKCFhZGRGb290ZXJUb1B1YmxpY2F0aW9uRGVzYygmYnVmLCAiU2VxdWVuY2VzIGZy b20gc2NoZW1hczoiLAorCQkJCQkJCQkJCQkJdHJ1ZSwgJmNvbnQpKQorCQkJCQlnb3RvIGVy cm9yX3JldHVybjsKKwkJCX0KKwkJfQorCiAJCXByaW50VGFibGUoJmNvbnQsIHBzZXQucXVl cnlGb3V0LCBmYWxzZSwgcHNldC5sb2dmaWxlKTsKIAkJcHJpbnRUYWJsZUNsZWFudXAoJmNv bnQpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgYi9zcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKaW5kZXggMTgzYWJjYzI3NTMuLmJlOWNmZTBmYmI3 IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC0xODE1LDExICsxODE1LDE1IEBAIHBzcWxfY29t cGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCUNPTVBM RVRFX1dJVEgoIkFERCIsICJEUk9QIiwgIk9XTkVSIFRPIiwgIlJFTkFNRSBUTyIsICJTRVQi KTsKIAkvKiBBTFRFUiBQVUJMSUNBVElPTiA8bmFtZT4gQUREICovCiAJZWxzZSBpZiAoTWF0 Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIpKQotCQlDT01Q TEVURV9XSVRIKCJBTEwgVEFCTEVTIElOIFNDSEVNQSIsICJUQUJMRSIpOworCQlDT01QTEVU RV9XSVRIKCJBTEwgVEFCTEVTIElOIFNDSEVNQSIsICJBTEwgU0VRVUVOQ0VTIElOIFNDSEVN QSIsICJUQUJMRSIsICJTRVFVRU5DRSIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwg IlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIikgfHwKIAkJCSAo SGVhZE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VU IiwgIlRBQkxFIikgJiYKIAkJCSAgZW5kc193aXRoKHByZXZfd2QsICcsJykpKQogCQlDT01Q TEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZXMpOworCWVs c2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8 U0VUIiwgIlNFUVVFTkNFIikgfHwKKwkJCSAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJ Q0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlNFUVVFTkNFIikgJiYKKwkJCSAgZW5k c193aXRoKHByZXZfd2QsICcsJykpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShR dWVyeV9mb3JfbGlzdF9vZl9zZXF1ZW5jZXMpOwogCS8qCiAJICogIkFMVEVSIFBVQkxJQ0FU SU9OIDxuYW1lPiBTRVQgVEFCTEUgPG5hbWU+IFdIRVJFICgiIC0gY29tcGxldGUgd2l0aAog CSAqIHRhYmxlIGF0dHJpYnV0ZXMKQEAgLTE4MzgsMTEgKzE4NDIsMTEgQEAgcHNxbF9jb21w bGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJQ09NUExF VEVfV0lUSCgiLCIpOwogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxuYW1lPiBEUk9QICovCiAJ ZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkRS T1AiKSkKLQkJQ09NUExFVEVfV0lUSCgiQUxMIFRBQkxFUyBJTiBTQ0hFTUEiLCAiVEFCTEUi KTsKKwkJQ09NUExFVEVfV0lUSCgiQUxMIFRBQkxFUyBJTiBTQ0hFTUEiLCAiQUxMIFNFUVVF TkNFUyBJTiBTQ0hFTUEiLCAiVEFCTEUiLCAiU0VRVUVOQ0UiKTsKIAkvKiBBTFRFUiBQVUJM SUNBVElPTiA8bmFtZT4gU0VUICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVC TElDQVRJT04iLCBNYXRjaEFueSwgIlNFVCIpKQotCQlDT01QTEVURV9XSVRIKCIoIiwgIkFM TCBUQUJMRVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7Ci0JZWxzZSBpZiAoTWF0Y2hlcygiQUxU RVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERHxEUk9QfFNFVCIsICJBTEwiLCAi VEFCTEVTIiwgIklOIiwgIlNDSEVNQSIpKQorCQlDT01QTEVURV9XSVRIKCIoIiwgIkFMTCBU QUJMRVMgSU4gU0NIRU1BIiwgIkFMTCBTRVFVRU5DRVMgSU4gU0NIRU1BIiwgIlRBQkxFIiwg IlNFUVVFTkNFIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04i LCBNYXRjaEFueSwgIkFERHxEUk9QfFNFVCIsICJBTEwiLCAiVEFCTEVTfFNFUVVFTkNFUyIs ICJJTiIsICJTQ0hFTUEiKSkKIAkJQ09NUExFVEVfV0lUSF9RVUVSWV9QTFVTKFF1ZXJ5X2Zv cl9saXN0X29mX3NjaGVtYXMKIAkJCQkJCQkJICIgQU5EIG5zcG5hbWUgTk9UIExJS0UgRSdw Z1xcXFxfJSUnIiwKIAkJCQkJCQkJICJDVVJSRU5UX1NDSEVNQSIpOwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKaW5kZXggZDhlODcxNWVkMWMuLjY5OWJkMGFhM2UzIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcHJvYy5kYXQKQEAgLTExNTQwLDYgKzExNTQwLDExIEBACiAgIHByb3ZvbGF0 aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAnb2lkJywgcHJvYXJndHlwZXMgPT4gJ3RleHQn LAogICBwcm9hbGxhcmd0eXBlcyA9PiAne3RleHQsb2lkfScsIHByb2FyZ21vZGVzID0+ICd7 aSxvfScsCiAgIHByb2FyZ25hbWVzID0+ICd7cHVibmFtZSxyZWxpZH0nLCBwcm9zcmMgPT4g J3BnX2dldF9wdWJsaWNhdGlvbl90YWJsZXMnIH0sCit7IG9pZCA9PiAnODAwMCcsIGRlc2Ny ID0+ICdnZXQgT0lEcyBvZiBzZXF1ZW5jZXMgaW4gYSBwdWJsaWNhdGlvbicsCisgIHByb25h bWUgPT4gJ3BnX2dldF9wdWJsaWNhdGlvbl9zZXF1ZW5jZXMnLCBwcm9yb3dzID0+ICcxMDAw JywgcHJvcmV0c2V0ID0+ICd0JywKKyAgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBl ID0+ICdvaWQnLCBwcm9hcmd0eXBlcyA9PiAndGV4dCcsCisgIHByb2FsbGFyZ3R5cGVzID0+ ICd7dGV4dCxvaWR9JywgcHJvYXJnbW9kZXMgPT4gJ3tpLG99JywKKyAgcHJvYXJnbmFtZXMg PT4gJ3twdWJuYW1lLHJlbGlkfScsIHByb3NyYyA9PiAncGdfZ2V0X3B1YmxpY2F0aW9uX3Nl cXVlbmNlcycgfSwKIHsgb2lkID0+ICc2MTIxJywKICAgZGVzY3IgPT4gJ3JldHVybnMgd2hl dGhlciBhIHJlbGF0aW9uIGNhbiBiZSBwYXJ0IG9mIGEgcHVibGljYXRpb24nLAogICBwcm9u YW1lID0+ICdwZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZScsIHByb3ZvbGF0aWxlID0+ICdz JywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaCBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaAppbmRleCBmZTc3M2NmOWI3 ZC4uOTdmMjYyMDhlMWQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVi bGljYXRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgK QEAgLTQwLDYgKzQwLDEyIEBAIENBVEFMT0cocGdfcHVibGljYXRpb24sNjEwNCxQdWJsaWNh dGlvblJlbGF0aW9uSWQpCiAJICovCiAJYm9vbAkJcHViYWxsdGFibGVzOwogCisJLyoKKwkg KiBpbmRpY2F0ZXMgdGhhdCB0aGlzIGlzIHNwZWNpYWwgcHVibGljYXRpb24gd2hpY2ggc2hv dWxkIGVuY29tcGFzcyBhbGwKKwkgKiBzZXF1ZW5jZXMgaW4gdGhlIGRhdGFiYXNlIChleGNl cHQgZm9yIHRoZSB1bmxvZ2dlZCBhbmQgdGVtcCBvbmVzKQorCSAqLworCWJvb2wJCXB1YmFs bHNlcXVlbmNlczsKKwogCS8qIHRydWUgaWYgaW5zZXJ0cyBhcmUgcHVibGlzaGVkICovCiAJ Ym9vbAkJcHViaW5zZXJ0OwogCkBAIC01Miw2ICs1OCw5IEBAIENBVEFMT0cocGdfcHVibGlj YXRpb24sNjEwNCxQdWJsaWNhdGlvblJlbGF0aW9uSWQpCiAJLyogdHJ1ZSBpZiB0cnVuY2F0 ZXMgYXJlIHB1Ymxpc2hlZCAqLwogCWJvb2wJCXB1YnRydW5jYXRlOwogCisJLyogdHJ1ZSBp ZiBzZXF1ZW5jZXMgYXJlIHB1Ymxpc2hlZCAqLworCWJvb2wJCXB1YnNlcXVlbmNlOworCiAJ LyogdHJ1ZSBpZiBwYXJ0aXRpb24gY2hhbmdlcyBhcmUgcHVibGlzaGVkIHVzaW5nIHJvb3Qg c2NoZW1hICovCiAJYm9vbAkJcHVidmlhcm9vdDsKIH0gRm9ybURhdGFfcGdfcHVibGljYXRp b247CkBAIC03Miw2ICs4MSw3IEBAIHR5cGVkZWYgc3RydWN0IFB1YmxpY2F0aW9uQWN0aW9u cwogCWJvb2wJCXB1YnVwZGF0ZTsKIAlib29sCQlwdWJkZWxldGU7CiAJYm9vbAkJcHVidHJ1 bmNhdGU7CisJYm9vbAkJcHVic2VxdWVuY2U7CiB9IFB1YmxpY2F0aW9uQWN0aW9uczsKIAog dHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25EZXNjCkBAIC05Miw2ICsxMDIsNyBAQCB0eXBl ZGVmIHN0cnVjdCBQdWJsaWNhdGlvbgogCU9pZAkJCW9pZDsKIAljaGFyCSAgICpuYW1lOwog CWJvb2wJCWFsbHRhYmxlczsKKwlib29sCQlhbGxzZXF1ZW5jZXM7CiAJYm9vbAkJcHVidmlh cm9vdDsKIAlQdWJsaWNhdGlvbkFjdGlvbnMgcHViYWN0aW9uczsKIH0gUHVibGljYXRpb247 CkBAIC0xMjIsMTQgKzEzMywxNSBAQCB0eXBlZGVmIGVudW0gUHVibGljYXRpb25QYXJ0T3B0 CiAJUFVCTElDQVRJT05fUEFSVF9BTEwsCiB9IFB1YmxpY2F0aW9uUGFydE9wdDsKIAotZXh0 ZXJuIExpc3QgKkdldFB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgUHVibGljYXRp b25QYXJ0T3B0IHB1Yl9wYXJ0b3B0KTsKK2V4dGVybiBMaXN0ICpHZXRQdWJsaWNhdGlvblJl bGF0aW9ucyhPaWQgcHViaWQsIGNoYXIgb2JqZWN0VHlwZSwKKwkJCQkJCQkJCSBQdWJsaWNh dGlvblBhcnRPcHQgcHViX3BhcnRvcHQpOwogZXh0ZXJuIExpc3QgKkdldEFsbFRhYmxlc1B1 YmxpY2F0aW9ucyh2b2lkKTsKIGV4dGVybiBMaXN0ICpHZXRBbGxUYWJsZXNQdWJsaWNhdGlv blJlbGF0aW9ucyhib29sIHB1YnZpYXJvb3QpOwotZXh0ZXJuIExpc3QgKkdldFB1YmxpY2F0 aW9uU2NoZW1hcyhPaWQgcHViaWQpOwotZXh0ZXJuIExpc3QgKkdldFNjaGVtYVB1YmxpY2F0 aW9ucyhPaWQgc2NoZW1haWQpOwotZXh0ZXJuIExpc3QgKkdldFNjaGVtYVB1YmxpY2F0aW9u UmVsYXRpb25zKE9pZCBzY2hlbWFpZCwKK2V4dGVybiBMaXN0ICpHZXRQdWJsaWNhdGlvblNj aGVtYXMoT2lkIHB1YmlkLCBjaGFyIG9iamVjdFR5cGUpOworZXh0ZXJuIExpc3QgKkdldFNj aGVtYVB1YmxpY2F0aW9ucyhPaWQgc2NoZW1haWQsIGNoYXIgb2JqZWN0VHlwZSk7CitleHRl cm4gTGlzdCAqR2V0U2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHNjaGVtYWlkLCBj aGFyIG9iamVjdFR5cGUsCiAJCQkJCQkJCQkJICAgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9w YXJ0b3B0KTsKLWV4dGVybiBMaXN0ICpHZXRBbGxTY2hlbWFQdWJsaWNhdGlvblJlbGF0aW9u cyhPaWQgcHVib2lkLAorZXh0ZXJuIExpc3QgKkdldEFsbFNjaGVtYVB1YmxpY2F0aW9uUmVs YXRpb25zKE9pZCBwdWJvaWQsIGNoYXIgb2JqZWN0VHlwZSwKIAkJCQkJCQkJCQkJICBQdWJs aWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQpOwogZXh0ZXJuIExpc3QgKkdldFB1YlBhcnRp dGlvbk9wdGlvblJlbGF0aW9ucyhMaXN0ICpyZXN1bHQsCiAJCQkJCQkJCQkJCVB1YmxpY2F0 aW9uUGFydE9wdCBwdWJfcGFydG9wdCwKQEAgLTEzNywxMSArMTQ5LDE1IEBAIGV4dGVybiBM aXN0ICpHZXRQdWJQYXJ0aXRpb25PcHRpb25SZWxhdGlvbnMoTGlzdCAqcmVzdWx0LAogZXh0 ZXJuIE9pZAlHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExp c3QgKmFuY2VzdG9ycywKIAkJCQkJCQkJCQkJaW50ICphbmNlc3Rvcl9sZXZlbCk7CiAKK2V4 dGVybiBMaXN0ICpHZXRBbGxTZXF1ZW5jZXNQdWJsaWNhdGlvbnModm9pZCk7CitleHRlcm4g TGlzdCAqR2V0QWxsU2VxdWVuY2VzUHVibGljYXRpb25SZWxhdGlvbnModm9pZCk7CisKIGV4 dGVybiBib29sIGlzX3B1Ymxpc2hhYmxlX3JlbGF0aW9uKFJlbGF0aW9uIHJlbCk7CiBleHRl cm4gYm9vbCBpc19zY2hlbWFfcHVibGljYXRpb24oT2lkIHB1YmlkKTsKIGV4dGVybiBPYmpl Y3RBZGRyZXNzIHB1YmxpY2F0aW9uX2FkZF9yZWxhdGlvbihPaWQgcHViaWQsIFB1YmxpY2F0 aW9uUmVsSW5mbyAqcHJpLAogCQkJCQkJCQkJCQkgIGJvb2wgaWZfbm90X2V4aXN0cyk7CiBl eHRlcm4gT2JqZWN0QWRkcmVzcyBwdWJsaWNhdGlvbl9hZGRfc2NoZW1hKE9pZCBwdWJpZCwg T2lkIHNjaGVtYWlkLAorCQkJCQkJCQkJCQljaGFyIG9iamVjdFR5cGUsCiAJCQkJCQkJCQkJ CWJvb2wgaWZfbm90X2V4aXN0cyk7CiAKIGV4dGVybiBPaWQJZ2V0X3B1YmxpY2F0aW9uX29p ZChjb25zdCBjaGFyICpwdWJuYW1lLCBib29sIG1pc3Npbmdfb2spOwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UuaCBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fbmFtZXNwYWNlLmgKaW5kZXggZTQzMDZk YTAyZTcuLjczNDBhMWVjNjQ2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3B1YmxpY2F0aW9uX25hbWVzcGFjZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHVibGljYXRpb25fbmFtZXNwYWNlLmgKQEAgLTMyLDYgKzMyLDcgQEAgQ0FUQUxPRyhwZ19w dWJsaWNhdGlvbl9uYW1lc3BhY2UsODkwMSxQdWJsaWNhdGlvbk5hbWVzcGFjZVJlbGF0aW9u SWQpCiAJT2lkCQkJb2lkOwkJCS8qIG9pZCAqLwogCU9pZAkJCXBucHViaWQgQktJX0xPT0tV UChwZ19wdWJsaWNhdGlvbik7IC8qIE9pZCBvZiB0aGUgcHVibGljYXRpb24gKi8KIAlPaWQJ CQlwbm5zcGlkIEJLSV9MT09LVVAocGdfbmFtZXNwYWNlKTsJLyogT2lkIG9mIHRoZSBzY2hl bWEgKi8KKwljaGFyCQlwbnR5cGU7CQkJCQkJCQkvKiBvYmplY3QgdHlwZSB0byBpbmNsdWRl ICovCiB9IEZvcm1EYXRhX3BnX3B1YmxpY2F0aW9uX25hbWVzcGFjZTsKIAogLyogLS0tLS0t LS0tLS0tLS0tLQpAQCAtNDIsNiArNDMsMTMgQEAgQ0FUQUxPRyhwZ19wdWJsaWNhdGlvbl9u YW1lc3BhY2UsODkwMSxQdWJsaWNhdGlvbk5hbWVzcGFjZVJlbGF0aW9uSWQpCiB0eXBlZGVm IEZvcm1EYXRhX3BnX3B1YmxpY2F0aW9uX25hbWVzcGFjZSAqRm9ybV9wZ19wdWJsaWNhdGlv bl9uYW1lc3BhY2U7CiAKIERFQ0xBUkVfVU5JUVVFX0lOREVYX1BLRVkocGdfcHVibGljYXRp b25fbmFtZXNwYWNlX29pZF9pbmRleCwgODkwMiwgUHVibGljYXRpb25OYW1lc3BhY2VPYmpl Y3RJbmRleElkLCBvbiBwZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UgdXNpbmcgYnRyZWUob2lk IG9pZF9vcHMpKTsKLURFQ0xBUkVfVU5JUVVFX0lOREVYKHBnX3B1YmxpY2F0aW9uX25hbWVz cGFjZV9wbm5zcGlkX3BucHViaWRfaW5kZXgsIDg5MDMsIFB1YmxpY2F0aW9uTmFtZXNwYWNl UG5uc3BpZFBucHViaWRJbmRleElkLCBvbiBwZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UgdXNp bmcgYnRyZWUocG5uc3BpZCBvaWRfb3BzLCBwbnB1YmlkIG9pZF9vcHMpKTsKK0RFQ0xBUkVf VU5JUVVFX0lOREVYKHBnX3B1YmxpY2F0aW9uX25hbWVzcGFjZV9wbm5zcGlkX3BucHViaWRf cG50eXBlX2luZGV4LCA4OTAzLCBQdWJsaWNhdGlvbk5hbWVzcGFjZVBubnNwaWRQbnB1Ymlk UG50eXBlSW5kZXhJZCwgb24gcGdfcHVibGljYXRpb25fbmFtZXNwYWNlIHVzaW5nIGJ0cmVl KHBubnNwaWQgb2lkX29wcywgcG5wdWJpZCBvaWRfb3BzLCBwbnR5cGUgY2hhcl9vcHMpKTsK KworLyogb2JqZWN0IHR5cGUgdG8gaW5jbHVkZSBmcm9tIGEgc2NoZW1hLCBtYXBzIHRvIHJl bGtpbmQgKi8KKyNkZWZpbmUJCVBVQl9PQkpUWVBFX1RBQkxFCQkJJ3QnCS8qIHRhYmxlIChy ZWd1bGFyIG9yIHBhcnRpdGlvbmVkKSAqLworI2RlZmluZQkJUFVCX09CSlRZUEVfU0VRVUVO Q0UJCSdzJwkvKiBzZXF1ZW5jZSBvYmplY3QgKi8KKyNkZWZpbmUJCVBVQl9PQkpUWVBFX1VO U1VQUE9SVEVECQkndScJLyogdXNlZCBmb3Igbm9uLXJlcGxpY2F0ZWQgdHlwZXMgKi8KKwor ZXh0ZXJuIGNoYXIJcHViX2dldF9vYmplY3RfdHlwZV9mb3JfcmVsa2luZChjaGFyIHJlbGtp bmQpOwogCiAjZW5kaWYJCQkJCQkJLyogUEdfUFVCTElDQVRJT05fTkFNRVNQQUNFX0ggKi8K ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3NlcXVlbmNlLmggYi9zcmMvaW5j bHVkZS9jb21tYW5kcy9zZXF1ZW5jZS5oCmluZGV4IDlmZWNjNDE5NTRlLi5jZDQwMDJiZTI5 MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2VxdWVuY2UuaAorKysgYi9z cmMvaW5jbHVkZS9jb21tYW5kcy9zZXF1ZW5jZS5oCkBAIC02MCw2ICs2MCw3IEBAIGV4dGVy biBPYmplY3RBZGRyZXNzIERlZmluZVNlcXVlbmNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3Jl YXRlU2VxU3RtdCAqc3RtdCk7CiBleHRlcm4gT2JqZWN0QWRkcmVzcyBBbHRlclNlcXVlbmNl KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTZXFTdG10ICpzdG10KTsKIGV4dGVybiB2b2lk IERlbGV0ZVNlcXVlbmNlVHVwbGUoT2lkIHJlbGlkKTsKIGV4dGVybiB2b2lkIFJlc2V0U2Vx dWVuY2UoT2lkIHNlcV9yZWxpZCk7CitleHRlcm4gdm9pZCBTZXRTZXF1ZW5jZShPaWQgc2Vx X3JlbGlkLCBpbnQ2NCBsYXN0X3ZhbHVlLCBpbnQ2NCBsb2dfY250LCBib29sIGlzX2NhbGxl ZCk7CiBleHRlcm4gdm9pZCBSZXNldFNlcXVlbmNlQ2FjaGVzKHZvaWQpOwogCiBleHRlcm4g dm9pZCBzZXFfcmVkbyhYTG9nUmVhZGVyU3RhdGUgKnJwdHIpOwpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oCmluZGV4IDE2MTc3MDJkOWQ2Li4xMmRhMjg3OTA4ZiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaApAQCAtMzY2Myw2ICszNjYzLDEwIEBAIHR5cGVkZWYgZW51bSBQdWJsaWNh dGlvbk9ialNwZWNUeXBlCiAJUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX1NDSEVNQSwJLyog QWxsIHRhYmxlcyBpbiBzY2hlbWEgKi8KIAlQVUJMSUNBVElPTk9CSl9UQUJMRVNfSU5fQ1VS X1NDSEVNQSwJLyogQWxsIHRhYmxlcyBpbiBmaXJzdCBlbGVtZW50IG9mCiAJCQkJCQkJCQkJ CSAqIHNlYXJjaF9wYXRoICovCisJUFVCTElDQVRJT05PQkpfU0VRVUVOQ0UsCQkvKiBTZXF1 ZW5jZSB0eXBlICovCisJUFVCTElDQVRJT05PQkpfU0VRVUVOQ0VTX0lOX1NDSEVNQSwgLyog U2VxdWVuY2VzIGluIHNjaGVtYSB0eXBlICovCisJUFVCTElDQVRJT05PQkpfU0VRVUVOQ0VT X0lOX0NVUl9TQ0hFTUEsIC8qIEdldCB0aGUgZmlyc3QgZWxlbWVudCBvZgorCQkJCQkJCQkJ CQkgKiBzZWFyY2hfcGF0aCAqLwogCVBVQkxJQ0FUSU9OT0JKX0NPTlRJTlVBVElPTiAvKiBD b250aW51YXRpb24gb2YgcHJldmlvdXMgdHlwZSAqLwogfSBQdWJsaWNhdGlvbk9ialNwZWNU eXBlOwogCkBAIC0zNjgxLDcgKzM2ODUsNyBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVQdWJs aWNhdGlvblN0bXQKIAljaGFyCSAgICpwdWJuYW1lOwkJLyogTmFtZSBvZiB0aGUgcHVibGlj YXRpb24gKi8KIAlMaXN0CSAgICpvcHRpb25zOwkJLyogTGlzdCBvZiBEZWZFbGVtIG5vZGVz ICovCiAJTGlzdAkgICAqcHVib2JqZWN0czsJCS8qIE9wdGlvbmFsIGxpc3Qgb2YgcHVibGlj YXRpb24gb2JqZWN0cyAqLwotCWJvb2wJCWZvcl9hbGxfdGFibGVzOyAvKiBTcGVjaWFsIHB1 YmxpY2F0aW9uIGZvciBhbGwgdGFibGVzIGluIGRiICovCisJTGlzdAkgICAqZm9yX2FsbF9v YmplY3RzOyAvKiBTcGVjaWFsIHB1YmxpY2F0aW9uIGZvciBhbGwgb2JqZWN0cyBpbiBkYiAq LwogfSBDcmVhdGVQdWJsaWNhdGlvblN0bXQ7CiAKIHR5cGVkZWYgZW51bSBBbHRlclB1Ymxp Y2F0aW9uQWN0aW9uCkBAIC0zNzA0LDcgKzM3MDgsNyBAQCB0eXBlZGVmIHN0cnVjdCBBbHRl clB1YmxpY2F0aW9uU3RtdAogCSAqIG9iamVjdHMuCiAJICovCiAJTGlzdAkgICAqcHVib2Jq ZWN0czsJCS8qIE9wdGlvbmFsIGxpc3Qgb2YgcHVibGljYXRpb24gb2JqZWN0cyAqLwotCWJv b2wJCWZvcl9hbGxfdGFibGVzOyAvKiBTcGVjaWFsIHB1YmxpY2F0aW9uIGZvciBhbGwgdGFi bGVzIGluIGRiICovCisJTGlzdAkgICAqZm9yX2FsbF9vYmplY3RzOyAvKiBTcGVjaWFsIHB1 YmxpY2F0aW9uIGZvciBhbGwgb2JqZWN0cyBpbiBkYiAqLwogCUFsdGVyUHVibGljYXRpb25B Y3Rpb24gYWN0aW9uOwkvKiBXaGF0IGFjdGlvbiB0byBwZXJmb3JtIHdpdGggdGhlIGdpdmVu CiAJCQkJCQkJCQkgKiBvYmplY3RzICovCiB9IEFsdGVyUHVibGljYXRpb25TdG10OwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vbG9naWNhbHByb3RvLmggYi9zcmMv aW5jbHVkZS9yZXBsaWNhdGlvbi9sb2dpY2FscHJvdG8uaAppbmRleCA0ZDJjODgxNjQ0YS4u NDE1NzU3ZDhhMmQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2xvZ2lj YWxwcm90by5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2xvZ2ljYWxwcm90by5o CkBAIC02MSw2ICs2MSw3IEBAIHR5cGVkZWYgZW51bSBMb2dpY2FsUmVwTXNnVHlwZQogCUxP R0lDQUxfUkVQX01TR19SRUxBVElPTiA9ICdSJywKIAlMT0dJQ0FMX1JFUF9NU0dfVFlQRSA9 ICdZJywKIAlMT0dJQ0FMX1JFUF9NU0dfTUVTU0FHRSA9ICdNJywKKwlMT0dJQ0FMX1JFUF9N U0dfU0VRVUVOQ0UgPSAnWCcsCS8qIEZJWE1FIGNoYW5nZSAqLwogCUxPR0lDQUxfUkVQX01T R19CRUdJTl9QUkVQQVJFID0gJ2InLAogCUxPR0lDQUxfUkVQX01TR19QUkVQQVJFID0gJ1An LAogCUxPR0lDQUxfUkVQX01TR19DT01NSVRfUFJFUEFSRUQgPSAnSycsCkBAIC0xMTgsNiAr MTE5LDE4IEBAIHR5cGVkZWYgc3RydWN0IExvZ2ljYWxSZXBUeXAKIAljaGFyCSAgICp0eXBu YW1lOwkJLyogbmFtZSBvZiB0aGUgcmVtb3RlIHR5cGUgKi8KIH0gTG9naWNhbFJlcFR5cDsK IAorLyogU2VxdWVuY2UgaW5mbyAqLwordHlwZWRlZiBzdHJ1Y3QgTG9naWNhbFJlcFNlcXVl bmNlCit7CisJT2lkCQkJcmVtb3RlaWQ7CQkvKiB1bmlxdWUgaWQgb2YgdGhlIHJlbW90ZSBz ZXF1ZW5jZSAqLworCWNoYXIJICAgKm5zcG5hbWU7CQkvKiBzY2hlbWEgbmFtZSBvZiByZW1v dGUgc2VxdWVuY2UgKi8KKwljaGFyCSAgICpzZXFuYW1lOwkJLyogbmFtZSBvZiB0aGUgcmVt b3RlIHNlcXVlbmNlICovCisJYm9vbAkJdHJhbnNhY3Rpb25hbDsKKwlpbnQ2NAkJbGFzdF92 YWx1ZTsKKwlpbnQ2NAkJbG9nX2NudDsKKwlib29sCQlpc19jYWxsZWQ7Cit9IExvZ2ljYWxS ZXBTZXF1ZW5jZTsKKwogLyogVHJhbnNhY3Rpb24gaW5mbyAqLwogdHlwZWRlZiBzdHJ1Y3Qg TG9naWNhbFJlcEJlZ2luRGF0YQogewpAQCAtMjMwLDYgKzI0MywxMiBAQCBleHRlcm4gTGlz dCAqbG9naWNhbHJlcF9yZWFkX3RydW5jYXRlKFN0cmluZ0luZm8gaW4sCiAJCQkJCQkJCQkg IGJvb2wgKmNhc2NhZGUsIGJvb2wgKnJlc3RhcnRfc2Vxcyk7CiBleHRlcm4gdm9pZCBsb2dp Y2FscmVwX3dyaXRlX21lc3NhZ2UoU3RyaW5nSW5mbyBvdXQsIFRyYW5zYWN0aW9uSWQgeGlk LCBYTG9nUmVjUHRyIGxzbiwKIAkJCQkJCQkJCSBib29sIHRyYW5zYWN0aW9uYWwsIGNvbnN0 IGNoYXIgKnByZWZpeCwgU2l6ZSBzeiwgY29uc3QgY2hhciAqbWVzc2FnZSk7CitleHRlcm4g dm9pZCBsb2dpY2FscmVwX3dyaXRlX3NlcXVlbmNlKFN0cmluZ0luZm8gb3V0LCBSZWxhdGlv biByZWwsCisJCQkJCQkJCQkgIFRyYW5zYWN0aW9uSWQgeGlkLCBYTG9nUmVjUHRyIGxzbiwK KwkJCQkJCQkJCSAgYm9vbCB0cmFuc2FjdGlvbmFsLAorCQkJCQkJCQkJICBpbnQ2NCBsYXN0 X3ZhbHVlLCBpbnQ2NCBsb2dfY250LAorCQkJCQkJCQkJICBib29sIGlzX2NhbGxlZCk7Citl eHRlcm4gdm9pZCBsb2dpY2FscmVwX3JlYWRfc2VxdWVuY2UoU3RyaW5nSW5mbyBpbiwgTG9n aWNhbFJlcFNlcXVlbmNlICpzZXFkYXRhKTsKIGV4dGVybiB2b2lkIGxvZ2ljYWxyZXBfd3Jp dGVfcmVsKFN0cmluZ0luZm8gb3V0LCBUcmFuc2FjdGlvbklkIHhpZCwKIAkJCQkJCQkJIFJl bGF0aW9uIHJlbCk7CiBleHRlcm4gTG9naWNhbFJlcFJlbGF0aW9uICpsb2dpY2FscmVwX3Jl YWRfcmVsKFN0cmluZ0luZm8gaW4pOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGlj YXRpb24vcGdvdXRwdXQuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Bnb3V0cHV0LmgK aW5kZXggZWFmZWRkNjEwYTUuLmY0ZTlmMzVkMDlkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9yZXBsaWNhdGlvbi9wZ291dHB1dC5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9u L3Bnb3V0cHV0LmgKQEAgLTI5LDYgKzI5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUEdPdXRwdXRE YXRhCiAJYm9vbAkJc3RyZWFtaW5nOwogCWJvb2wJCW1lc3NhZ2VzOwogCWJvb2wJCXR3b19w aGFzZTsKKwlib29sCQlzZXF1ZW5jZXM7CiB9IFBHT3V0cHV0RGF0YTsKIAogI2VuZGlmCQkJ CQkJCS8qIFBHT1VUUFVUX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvb2JqZWN0X2FkZHJlc3Mub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9v YmplY3RfYWRkcmVzcy5vdXQKaW5kZXggNDExN2ZjMjdjOWEuLmM5NWQ0NGIzZGI5IDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29iamVjdF9hZGRyZXNzLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29iamVjdF9hZGRyZXNzLm91dApAQCAt NDYsNiArNDYsNyBAQCBDUkVBVEUgVFJBTlNGT1JNIEZPUiBpbnQgTEFOR1VBR0UgU1FMICgK IFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElP TiBhZGRyX3B1YiBGT1IgVEFCTEUgYWRkcl9uc3AuZ2VudGFibGU7CiBDUkVBVEUgUFVCTElD QVRJT04gYWRkcl9wdWJfc2NoZW1hIEZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQSBhZGRyX25z cDsKK0NSRUFURSBQVUJMSUNBVElPTiBhZGRyX3B1Yl9zY2hlbWEyIEZPUiBBTEwgU0VRVUVO Q0VTIElOIFNDSEVNQSBhZGRyX25zcDsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBD UkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfYWRkcl9zdWIgQ09OTkVDVElPTiAnJyBQVUJM SUNBVElPTiBiYXIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBzbG90X25hbWUgPSBOT05FKTsK IFdBUk5JTkc6ICB0YWJsZXMgd2VyZSBub3Qgc3Vic2NyaWJlZCwgeW91IHdpbGwgaGF2ZSB0 byBydW4gQUxURVIgU1VCU0NSSVBUSU9OIC4uLiBSRUZSRVNIIFBVQkxJQ0FUSU9OIHRvIHN1 YnNjcmliZSB0aGUgdGFibGVzCkBAIC00MjgsNyArNDI5LDggQEAgV0lUSCBvYmplY3RzICh0 eXBlLCBuYW1lLCBhcmdzKSBBUyAoVkFMVUVTCiAJCQkJKCd0cmFuc2Zvcm0nLCAne2ludH0n LCAne3NxbH0nKSwKIAkJCQkoJ2FjY2VzcyBtZXRob2QnLCAne2J0cmVlfScsICd7fScpLAog CQkJCSgncHVibGljYXRpb24nLCAne2FkZHJfcHVifScsICd7fScpLAotCQkJCSgncHVibGlj YXRpb24gbmFtZXNwYWNlJywgJ3thZGRyX25zcH0nLCAne2FkZHJfcHViX3NjaGVtYX0nKSwK KwkJCQkoJ3B1YmxpY2F0aW9uIG5hbWVzcGFjZScsICd7YWRkcl9uc3B9JywgJ3thZGRyX3B1 Yl9zY2hlbWEsdH0nKSwKKwkJCQkoJ3B1YmxpY2F0aW9uIG5hbWVzcGFjZScsICd7YWRkcl9u c3B9JywgJ3thZGRyX3B1Yl9zY2hlbWEyLHN9JyksCiAJCQkJKCdwdWJsaWNhdGlvbiByZWxh dGlvbicsICd7YWRkcl9uc3AsIGdlbnRhYmxlfScsICd7YWRkcl9wdWJ9JyksCiAJCQkJKCdz dWJzY3JpcHRpb24nLCAne3JlZ3Jlc3NfYWRkcl9zdWJ9JywgJ3t9JyksCiAJCQkJKCdzdGF0 aXN0aWNzIG9iamVjdCcsICd7YWRkcl9uc3AsIGdlbnRhYmxlX3N0YXR9JywgJ3t9JykKQEAg LTQ5Miw4ICs0OTQsOSBAQCBTRUxFQ1QgKHBnX2lkZW50aWZ5X29iamVjdChhZGRyMS5jbGFz c2lkLCBhZGRyMS5vYmppZCwgYWRkcjEub2Jqc3ViaWQpKS4qLAogIHN1YnNjcmlwdGlvbiAg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgcmVncmVzc19hZGRyX3N1YiAgfCByZWdyZXNz X2FkZHJfc3ViICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IHQKICBwdWJsaWNhdGlvbiAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8 IGFkZHJfcHViICAgICAgICAgIHwgYWRkcl9wdWIgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0CiAgcHVibGljYXRpb24g cmVsYXRpb24gICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IGFkZHJf bnNwLmdlbnRhYmxlIGluIHB1YmxpY2F0aW9uIGFkZHJfcHViICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgdAotIHB1YmxpY2F0aW9uIG5hbWVzcGFjZSAgICAgfCAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgfCBhZGRyX25zcCBpbiBwdWJsaWNhdGlvbiBhZGRyX3B1 Yl9zY2hlbWEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKLSg1MCByb3dzKQor IHB1YmxpY2F0aW9uIG5hbWVzcGFjZSAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCBhZGRyX25zcCBpbiBwdWJsaWNhdGlvbiBhZGRyX3B1Yl9zY2hlbWEgdHlwZSB0 ICAgICAgICAgICAgICAgICAgICAgICB8IHQKKyBwdWJsaWNhdGlvbiBuYW1lc3BhY2UgICAg IHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgYWRkcl9uc3AgaW4gcHVibGlj YXRpb24gYWRkcl9wdWJfc2NoZW1hMiB0eXBlIHMgICAgICAgICAgICAgICAgICAgICAgfCB0 CisoNTEgcm93cykKIAogLS0tCiAtLS0gQ2xlYW51cCByZXNvdXJjZXMKQEAgLTUwNiw2ICs1 MDksNyBAQCBkcm9wIGNhc2NhZGVzIHRvIHNlcnZlciBpbnRlZ2VyCiBkcm9wIGNhc2NhZGVz IHRvIHVzZXIgbWFwcGluZyBmb3IgcmVncmVzc19hZGRyX3VzZXIgb24gc2VydmVyIGludGVn ZXIKIERST1AgUFVCTElDQVRJT04gYWRkcl9wdWI7CiBEUk9QIFBVQkxJQ0FUSU9OIGFkZHJf cHViX3NjaGVtYTsKK0RST1AgUFVCTElDQVRJT04gYWRkcl9wdWJfc2NoZW1hMjsKIERST1Ag U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfYWRkcl9zdWI7CiBEUk9QIFNDSEVNQSBhZGRyX25zcCBD QVNDQURFOwogTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAxNCBvdGhlciBvYmplY3RzCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CmluZGV4IDRlMTkx YzEyMGFjLi41ODIxNGVlNzQyZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wdWJsaWNhdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9w dWJsaWNhdGlvbi5vdXQKQEAgLTMwLDIwICszMCwyMCBAQCBFUlJPUjogIGNvbmZsaWN0aW5n IG9yIHJlZHVuZGFudCBvcHRpb25zCiBMSU5FIDE6IC4uLnViX3h4eCBXSVRIIChwdWJsaXNo X3ZpYV9wYXJ0aXRpb25fcm9vdCA9ICd0cnVlJywgcHVibGlzaF92aS4uLgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K IFxkUnAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHB1YmxpY2F0aW9ucwotICAgICAgICBOYW1lICAgICAgICB8ICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0 ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gdGVzdHBpYl9pbnNfdHJ1bmN0 IHwgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCBm ICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgICB8IGYKLSB0ZXN0cHViX2RlZmF1bHQgICAg fCByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICB8IHQg ICAgICAgfCBmICAgICAgIHwgZiAgICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBwdWJsaWNh dGlvbnMKKyAgICAgICAgTmFtZSAgICAgICAgfCAgICAgICAgICBPd25lciAgICAgICAgICAg fCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVs ZXRlcyB8IFRydW5jYXRlcyB8IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tCisgdGVzdHBpYl9pbnNfdHJ1bmN0IHwgcmVncmVzc19w dWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAg IHwgZiAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBmICAgICAgICAgfCBmCisgdGVz dHB1Yl9kZWZhdWx0ICAgIHwgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAg ICB8IGYgICAgICAgICAgICAgfCBmICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBmICAg ICAgICAgfCBmICAgICAgICAgfCBmCiAoMiByb3dzKQogCi1BTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViX2RlZmF1bHQgU0VUIChwdWJsaXNoID0gJ2luc2VydCwgdXBkYXRlLCBkZWxldGUn KTsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGVmYXVsdCBTRVQgKHB1Ymxpc2ggPSAn aW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgc2VxdWVuY2UnKTsKIFxkUnAKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHB1YmxpY2F0aW9u cwotICAgICAgICBOYW1lICAgICAgICB8ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFs bCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBW aWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tCi0gdGVzdHBpYl9pbnNfdHJ1bmN0IHwgcmVncmVzc19wdWJsaWNh dGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8 IGYgICAgICAgICB8IGYKLSB0ZXN0cHViX2RlZmF1bHQgICAgfCByZWdyZXNzX3B1YmxpY2F0 aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwg ZiAgICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBwdWJsaWNhdGlvbnMKKyAgICAgICAgTmFt ZSAgICAgICAgfCAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxs IHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8 IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tCisgdGVzdHBpYl9pbnNfdHJ1bmN0IHwgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwg ZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICB8IGYgICAg ICAgfCBmICAgICAgICAgfCBmICAgICAgICAgfCBmCisgdGVzdHB1Yl9kZWZhdWx0ICAgIHwg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCBmICAgICAgICAgfCB0ICAgICAgICAg fCBmCiAoMiByb3dzKQogCiAtLS0gYWRkaW5nIHRhYmxlcwpAQCAtNjEsNiArNjEsOSBAQCBD UkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwyIChpZCBzZXJpYWwgcHJpbWFyeSBrZXksIGRhdGEg dGV4dCk7CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcyBBREQgVEFC TEUgdGVzdHB1Yl90YmwyOwogRVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1Yl9mb3JhbGx0 YWJsZXMiIGlzIGRlZmluZWQgYXMgRk9SIEFMTCBUQUJMRVMKIERFVEFJTDogIFRhYmxlcyBj YW5ub3QgYmUgYWRkZWQgdG8gb3IgZHJvcHBlZCBmcm9tIEZPUiBBTEwgVEFCTEVTIHB1Ymxp Y2F0aW9ucy4KKy0tIGZhaWwgLSBjYW4ndCBhZGQgYSB0YWJsZSB1c2luZyBBREQgU0VRVUVO Q0UgY29tbWFuZAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMgQURE IFNFUVVFTkNFIHRlc3RwdWJfdGJsMjsKK0VSUk9SOiAgb2JqZWN0IHR5cGUgbWlzbWF0Y2gK IC0tIGZhaWwgLSBjYW4ndCBkcm9wIGZyb20gYWxsIHRhYmxlcyBwdWJsaWNhdGlvbgogQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMgRFJPUCBUQUJMRSB0ZXN0cHVi X3RibDI7CiBFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViX2ZvcmFsbHRhYmxlcyIgaXMg ZGVmaW5lZCBhcyBGT1IgQUxMIFRBQkxFUwpAQCAtODcsMTAgKzkwLDEwIEBAIFJFU0VUIGNs aWVudF9taW5fbWVzc2FnZXM7CiAtLSBzaG91bGQgYmUgYWJsZSB0byBhZGQgc2NoZW1hIHRv ICdGT1IgVEFCTEUnIHB1YmxpY2F0aW9uCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2Zv cnRhYmxlIEFERCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDsKIFxkUnArIHRlc3Rw dWJfZm9ydGFibGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRp b24gdGVzdHB1Yl9mb3J0YWJsZQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0 YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEg cm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVz c19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnRhYmxlCisgICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNl cnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBTZXF1ZW5jZXMgfCBWaWEg cm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAg ICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICAgIHwgdCAgICAgICAgIHwgZgogVGFibGVzOgogICAgICJwdWJsaWMudGVzdHB1 Yl90YmwxIgogVGFibGVzIGZyb20gc2NoZW1hczoKQEAgLTk5LDIwICsxMDIsMjAgQEAgVGFi bGVzIGZyb20gc2NoZW1hczoKIC0tIHNob3VsZCBiZSBhYmxlIHRvIGRyb3Agc2NoZW1hIGZy b20gJ0ZPUiBUQUJMRScgcHVibGljYXRpb24KIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf Zm9ydGFibGUgRFJPUCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDsKIFxkUnArIHRl c3RwdWJfZm9ydGFibGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGlj YXRpb24gdGVzdHB1Yl9mb3J0YWJsZQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFs bCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBW aWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVn cmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnRhYmxlCisgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJ bnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBTZXF1ZW5jZXMgfCBW aWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICAgIHwgdCAgICAgICAgIHwgZgogVGFibGVzOgogICAgICJwdWJsaWMudGVz dHB1Yl90YmwxIgogCiAtLSBzaG91bGQgYmUgYWJsZSB0byBzZXQgc2NoZW1hIHRvICdGT1Ig VEFCTEUnIHB1YmxpY2F0aW9uCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnRhYmxl IFNFVCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDsKIFxkUnArIHRlc3RwdWJfZm9y dGFibGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVz dHB1Yl9mb3J0YWJsZQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMg fCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJs aWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnRhYmxlCisgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwg VXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBTZXF1ZW5jZXMgfCBWaWEgcm9vdCAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAg fCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICAgIHwgdCAgICAgICAgIHwgZgogVGFibGVzIGZyb20gc2NoZW1hczoKICAgICAicHViX3Rl c3QiCiAKQEAgLTEzNCwxMCArMTM3LDEwIEBAIEVSUk9SOiAgcmVsYXRpb24gInRlc3RwdWJf bm9wayIgaXMgbm90IHBhcnQgb2YgdGhlIHB1YmxpY2F0aW9uCiAtLSBzaG91bGQgYmUgYWJs ZSB0byBzZXQgdGFibGUgdG8gc2NoZW1hIHB1YmxpY2F0aW9uCiBBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX2ZvcnNjaGVtYSBTRVQgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9ub3BrOwog XGRScCsgdGVzdHB1Yl9mb3JzY2hlbWEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnNjaGVtYQotICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVu Y2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZm9yc2No ZW1hCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1 ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBTZXF1 ZW5jZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25f dXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICAgIHwgdCAgICAgICAgIHwgZgogVGFibGVzOgogICAgICJw dWJfdGVzdC50ZXN0cHViX25vcGsiCiAKQEAgLTE1OSwxMCArMTYyLDEwIEBAIFB1YmxpY2F0 aW9uczoKICAgICAidGVzdHB1Yl9mb3JhbGx0YWJsZXMiCiAKIFxkUnArIHRlc3RwdWJfZm9y YWxsdGFibGVzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0 ZXN0cHViX2ZvcmFsbHRhYmxlcwotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0 YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEg cm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVz c19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwg ZiAgICAgICB8IGYgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9mb3JhbGx0YWJsZXMKKyAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IElu c2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFNlcXVlbmNlcyB8IFZp YSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAg ICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IGYgICAgICAg fCBmICAgICAgICAgfCBmICAgICAgICAgfCBmCiAoMSByb3cpCiAKIERST1AgVEFCTEUgdGVz dHB1Yl90YmwyOwpAQCAtMTc0LDI0ICsxNzcsNTI3IEBAIENSRUFURSBQVUJMSUNBVElPTiB0 ZXN0cHViMyBGT1IgVEFCTEUgdGVzdHB1Yl90YmwzOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRl c3RwdWI0IEZPUiBUQUJMRSBPTkxZIHRlc3RwdWJfdGJsMzsKIFJFU0VUIGNsaWVudF9taW5f bWVzc2FnZXM7CiBcZFJwKyB0ZXN0cHViMwotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjMKLSAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNh dGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIzCisg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMg fCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBTZXF1ZW5jZXMg fCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8 IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICAgIHwgdCAgICAgICAgIHwgZgogVGFibGVzOgogICAgICJwdWJsaWMu dGVzdHB1Yl90YmwzIgogICAgICJwdWJsaWMudGVzdHB1Yl90YmwzYSIKIAogXGRScCsgdGVz dHB1YjQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9u IHRlc3RwdWI0Ci0gICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IElu c2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3B1YmxpY2F0 aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViNAorICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMg fCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlhIHJvb3QgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAg ICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IHQg ICAgICAgICB8IGYKIFRhYmxlczoKICAgICAicHVibGljLnRlc3RwdWJfdGJsMyIKIAogRFJP UCBUQUJMRSB0ZXN0cHViX3RibDMsIHRlc3RwdWJfdGJsM2E7CiBEUk9QIFBVQkxJQ0FUSU9O IHRlc3RwdWIzLCB0ZXN0cHViNDsKKy0tLSBhZGRpbmcgc2VxdWVuY2VzCitDUkVBVEUgU0VR VUVOQ0UgdGVzdHB1Yl9zZXEwOworQ1JFQVRFIFNFUVVFTkNFIHB1Yl90ZXN0LnRlc3RwdWJf c2VxMTsKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFURSBQVUJM SUNBVElPTiB0ZXN0cHViX2ZvcmFsbHNlcXVlbmNlcyBGT1IgQUxMIFNFUVVFTkNFUyBXSVRI IChwdWJsaXNoID0gJ3NlcXVlbmNlJyk7CitSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwor QUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGxzZXF1ZW5jZXMgU0VUIChwdWJsaXNo ID0gJ2luc2VydCwgc2VxdWVuY2UnKTsKK0NSRUFURSBTRVFVRU5DRSB0ZXN0cHViX3NlcTI7 CistLSBmYWlsIC0gY2FuJ3QgYWRkIHRvIGZvciBhbGwgc2VxdWVuY2VzIHB1YmxpY2F0aW9u CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHNlcXVlbmNlcyBBREQgU0VRVUVO Q0UgdGVzdHB1Yl9zZXEyOworRVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1Yl9mb3JhbGxz ZXF1ZW5jZXMiIGlzIGRlZmluZWQgYXMgRk9SIEFMTCBTRVFVRU5DRVMKK0RFVEFJTDogIFNl cXVlbmNlcyBjYW5ub3QgYmUgYWRkZWQgdG8gb3IgZHJvcHBlZCBmcm9tIEZPUiBBTEwgU0VR VUVOQ0VTIHB1YmxpY2F0aW9ucy4KKy0tIGZhaWwgLSBjYW4ndCBkcm9wIGZyb20gYWxsIHNl cXVlbmNlcyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGxz ZXF1ZW5jZXMgRFJPUCBTRVFVRU5DRSB0ZXN0cHViX3NlcTI7CitFUlJPUjogIHB1YmxpY2F0 aW9uICJ0ZXN0cHViX2ZvcmFsbHNlcXVlbmNlcyIgaXMgZGVmaW5lZCBhcyBGT1IgQUxMIFNF UVVFTkNFUworREVUQUlMOiAgU2VxdWVuY2VzIGNhbm5vdCBiZSBhZGRlZCB0byBvciBkcm9w cGVkIGZyb20gRk9SIEFMTCBTRVFVRU5DRVMgcHVibGljYXRpb25zLgorLS0gZmFpbCAtIGNh bid0IGFkZCB0byBmb3IgYWxsIHNlcXVlbmNlcyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9mb3JhbGxzZXF1ZW5jZXMgU0VUIFNFUVVFTkNFIHB1Yl90ZXN0LnRl c3RwdWJfc2VxMTsKK0VSUk9SOiAgcHVibGljYXRpb24gInRlc3RwdWJfZm9yYWxsc2VxdWVu Y2VzIiBpcyBkZWZpbmVkIGFzIEZPUiBBTEwgU0VRVUVOQ0VTCitERVRBSUw6ICBTZXF1ZW5j ZXMgY2Fubm90IGJlIGFkZGVkIHRvIG9yIGRyb3BwZWQgZnJvbSBGT1IgQUxMIFNFUVVFTkNF UyBwdWJsaWNhdGlvbnMuCistLSBmYWlsIC0gY2FuJ3QgYWRkIHNjaGVtYSB0byAnRk9SIEFM TCBTRVFVRU5DRVMnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2Zv cmFsbHNlcXVlbmNlcyBBREQgQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CitF UlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViX2ZvcmFsbHNlcXVlbmNlcyIgaXMgZGVmaW5l ZCBhcyBGT1IgQUxMIFNFUVVFTkNFUworREVUQUlMOiAgU2VxdWVuY2VzIGZyb20gc2NoZW1h IGNhbm5vdCBiZSBhZGRlZCB0bywgZHJvcHBlZCBmcm9tLCBvciBzZXQgb24gRk9SIEFMTCBT RVFVRU5DRVMgcHVibGljYXRpb25zLgorLS0gZmFpbCAtIGNhbid0IGRyb3Agc2NoZW1hIGZy b20gJ0ZPUiBBTEwgU0VRVUVOQ0VTJyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9mb3JhbGxzZXF1ZW5jZXMgRFJPUCBBTEwgU0VRVUVOQ0VTIElOIFNDSEVNQSBw dWJfdGVzdDsKK0VSUk9SOiAgcHVibGljYXRpb24gInRlc3RwdWJfZm9yYWxsc2VxdWVuY2Vz IiBpcyBkZWZpbmVkIGFzIEZPUiBBTEwgU0VRVUVOQ0VTCitERVRBSUw6ICBTZXF1ZW5jZXMg ZnJvbSBzY2hlbWEgY2Fubm90IGJlIGFkZGVkIHRvLCBkcm9wcGVkIGZyb20sIG9yIHNldCBv biBGT1IgQUxMIFNFUVVFTkNFUyBwdWJsaWNhdGlvbnMuCistLSBmYWlsIC0gY2FuJ3Qgc2V0 IHNjaGVtYSB0byAnRk9SIEFMTCBTRVFVRU5DRVMnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX2ZvcmFsbHNlcXVlbmNlcyBTRVQgQUxMIFNFUVVFTkNFUyBJTiBT Q0hFTUEgcHViX3Rlc3Q7CitFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViX2ZvcmFsbHNl cXVlbmNlcyIgaXMgZGVmaW5lZCBhcyBGT1IgQUxMIFNFUVVFTkNFUworREVUQUlMOiAgU2Vx dWVuY2VzIGZyb20gc2NoZW1hIGNhbm5vdCBiZSBhZGRlZCB0bywgZHJvcHBlZCBmcm9tLCBv ciBzZXQgb24gRk9SIEFMTCBTRVFVRU5DRVMgcHVibGljYXRpb25zLgorU0VUIGNsaWVudF9t aW5fbWVzc2FnZXMgPSAnRVJST1InOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9y c2VxdWVuY2UgRk9SIFNFUVVFTkNFIHRlc3RwdWJfc2VxMDsKK1JFU0VUIGNsaWVudF9taW5f bWVzc2FnZXM7CistLSBzaG91bGQgYmUgYWJsZSB0byBhZGQgc2NoZW1hIHRvICdGT1IgU0VR VUVOQ0UnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnNlcXVl bmNlIEFERCBBTEwgU0VRVUVOQ0VTIElOIFNDSEVNQSBwdWJfdGVzdDsKK1xkUnArIHRlc3Rw dWJfZm9yc2VxdWVuY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9mb3JzZXF1ZW5jZQorICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVw ZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlhIHJvb3QgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwg ZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg ICB8IHQgICAgICAgICB8IGYKK1NlcXVlbmNlczoKKyAgICAicHVibGljLnRlc3RwdWJfc2Vx MCIKK1NlcXVlbmNlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1Yl90ZXN0IgorCistLSBmYWls IC0gY2FuJ3QgYWRkIHNlcXVlbmNlIGZyb20gdGhlIHNjaGVtYSB3ZSBhbHJlYWR5IGFkZGVk CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnNlcXVlbmNlIEFERCBTRVFVRU5DRSBw dWJfdGVzdC50ZXN0cHViX3NlcTE7CitFUlJPUjogIGNhbm5vdCBhZGQgcmVsYXRpb24gInB1 Yl90ZXN0LnRlc3RwdWJfc2VxMSIgdG8gcHVibGljYXRpb24KK0RFVEFJTDogIFNlcXVlbmNl J3Mgc2NoZW1hICJwdWJfdGVzdCIgaXMgYWxyZWFkeSBwYXJ0IG9mIHRoZSBwdWJsaWNhdGlv biBvciBwYXJ0IG9mIHRoZSBzcGVjaWZpZWQgc2NoZW1hIGxpc3QuCistLSBmYWlsIC0gY2Fu J3QgYWRkIHNlcXVlbmNlIHVzaW5nIEFERCBUQUJMRSBjb21tYW5kCitBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViX2ZvcnNlcXVlbmNlIEFERCBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3Nl cTE7CitFUlJPUjogIG9iamVjdCB0eXBlIG1pc21hdGNoCistLSBzaG91bGQgYmUgYWJsZSB0 byBkcm9wIHNjaGVtYSBmcm9tICdGT1IgU0VRVUVOQ0UnIHB1YmxpY2F0aW9uCitBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX2ZvcnNlcXVlbmNlIERST1AgQUxMIFNFUVVFTkNFUyBJTiBT Q0hFTUEgcHViX3Rlc3Q7CitcZFJwKyB0ZXN0cHViX2ZvcnNlcXVlbmNlCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJf Zm9yc2VxdWVuY2UKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwg QWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRl cyB8IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJs aWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCB0ICAgICAgICAgfCBmCitTZXF1ZW5j ZXM6CisgICAgInB1YmxpYy50ZXN0cHViX3NlcTAiCisKKy0tIHNob3VsZCBiZSBhYmxlIHRv IHNldCBzY2hlbWEgdG8gJ0ZPUiBTRVFVRU5DRScgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfZm9yc2VxdWVuY2UgU0VUIEFMTCBTRVFVRU5DRVMgSU4gU0NIRU1B IHB1Yl90ZXN0OworXGRScCsgdGVzdHB1Yl9mb3JzZXF1ZW5jZQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnNl cXVlbmNlCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBz ZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBT ZXF1ZW5jZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRp b25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgdCAgICAgICAgIHwgZgorU2VxdWVuY2VzIGZy b20gc2NoZW1hczoKKyAgICAicHViX3Rlc3QiCisKK1NFVCBjbGllbnRfbWluX21lc3NhZ2Vz ID0gJ0VSUk9SJzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnNjaGVtYSBGT1Ig QUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CitSRVNFVCBjbGllbnRfbWluX21l c3NhZ2VzOworLS0gZmFpbCAtIGNhbid0IGNyZWF0ZSBwdWJsaWNhdGlvbiB3aXRoIHNjaGVt YSBhbmQgc2VxdWVuY2Ugb2YgdGhlIHNhbWUgc2NoZW1hCitDUkVBVEUgUFVCTElDQVRJT04g dGVzdHB1Yl9mb3Jfc2VxX3NjaGVtYSBGT1IgQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEgcHVi X3Rlc3QsIFNFUVVFTkNFIHB1Yl90ZXN0LnRlc3RwdWJfc2VxMTsKK0VSUk9SOiAgY2Fubm90 IGFkZCByZWxhdGlvbiAicHViX3Rlc3QudGVzdHB1Yl9zZXExIiB0byBwdWJsaWNhdGlvbgor REVUQUlMOiAgU2VxdWVuY2UncyBzY2hlbWEgInB1Yl90ZXN0IiBpcyBhbHJlYWR5IHBhcnQg b2YgdGhlIHB1YmxpY2F0aW9uIG9yIHBhcnQgb2YgdGhlIHNwZWNpZmllZCBzY2hlbWEgbGlz dC4KKy0tIGZhaWwgLSBjYW4ndCBhZGQgYSBzZXF1ZW5jZSBvZiB0aGUgc2FtZSBzY2hlbWEg dG8gdGhlIHNjaGVtYSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9m b3JzY2hlbWEgQUREIFNFUVVFTkNFIHB1Yl90ZXN0LnRlc3RwdWJfc2VxMTsKK0VSUk9SOiAg Y2Fubm90IGFkZCByZWxhdGlvbiAicHViX3Rlc3QudGVzdHB1Yl9zZXExIiB0byBwdWJsaWNh dGlvbgorREVUQUlMOiAgU2VxdWVuY2UncyBzY2hlbWEgInB1Yl90ZXN0IiBpcyBhbHJlYWR5 IHBhcnQgb2YgdGhlIHB1YmxpY2F0aW9uIG9yIHBhcnQgb2YgdGhlIHNwZWNpZmllZCBzY2hl bWEgbGlzdC4KKy0tIGZhaWwgLSBjYW4ndCBkcm9wIGEgc2VxdWVuY2UgZnJvbSB0aGUgc2No ZW1hIHB1YmxpY2F0aW9uIHdoaWNoIGlzbid0IGluIHRoZQorLS0gcHVibGljYXRpb24KK0FM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yc2NoZW1hIERST1AgU0VRVUVOQ0UgcHViX3Rl c3QudGVzdHB1Yl9zZXExOworRVJST1I6ICByZWxhdGlvbiAidGVzdHB1Yl9zZXExIiBpcyBu b3QgcGFydCBvZiB0aGUgcHVibGljYXRpb24KKy0tIHNob3VsZCBiZSBhYmxlIHRvIHNldCBz ZXF1ZW5jZSB0byBzY2hlbWEgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfZm9yc2NoZW1hIFNFVCBTRVFVRU5DRSBwdWJfdGVzdC50ZXN0cHViX3NlcTE7CitcZFJw KyB0ZXN0cHViX2ZvcnNjaGVtYQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9mb3JzY2hlbWEKKyAgICAgICAgICBP d25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMg fCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFNlcXVlbmNlcyB8IFZpYSByb290 IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAg ICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgICAgfCB0ICAgICAgICAgfCBmCitTZXF1ZW5jZXM6CisgICAgInB1Yl90ZXN0LnRlc3Rw dWJfc2VxMSIKKworU0VMRUNUIHB1Ym5hbWUsIHB1YmFsbHRhYmxlcywgcHViYWxsc2VxdWVu Y2VzIEZST00gcGdfcHVibGljYXRpb24gV0hFUkUgcHVibmFtZSA9ICd0ZXN0cHViX2ZvcmFs bHNlcXVlbmNlcyc7CisgICAgICAgICBwdWJuYW1lICAgICAgICAgfCBwdWJhbGx0YWJsZXMg fCBwdWJhbGxzZXF1ZW5jZXMgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgdGVzdHB1Yl9mb3JhbGxzZXF1ZW5jZXMgfCBm ICAgICAgICAgICAgfCB0CisoMSByb3cpCisKK1xkKyBwdWJfdGVzdC50ZXN0cHViX3NlcTEK KyAgICAgICAgICAgICAgICAgICAgICAgU2VxdWVuY2UgInB1Yl90ZXN0LnRlc3RwdWJfc2Vx MSIKKyAgVHlwZSAgfCBTdGFydCB8IE1pbmltdW0gfCAgICAgICBNYXhpbXVtICAgICAgIHwg SW5jcmVtZW50IHwgQ3ljbGVzPyB8IENhY2hlIAorLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t CisgYmlnaW50IHwgICAgIDEgfCAgICAgICAxIHwgOTIyMzM3MjAzNjg1NDc3NTgwNyB8ICAg ICAgICAgMSB8IG5vICAgICAgfCAgICAgMQorUHVibGljYXRpb25zOgorICAgICJ0ZXN0cHVi X2ZvcmFsbHNlcXVlbmNlcyIKKyAgICAidGVzdHB1Yl9mb3JzY2hlbWEiCisgICAgInRlc3Rw dWJfZm9yc2VxdWVuY2UiCisKK1xkUnArIHRlc3RwdWJfZm9yYWxsc2VxdWVuY2VzCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0 cHViX2ZvcmFsbHNlcXVlbmNlcworICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0 YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwg VHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdy ZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICAgICAgICB8IHQg ICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgICB8IHQgICAgICAgICB8IGYK KygxIHJvdykKKworRFJPUCBTRVFVRU5DRSB0ZXN0cHViX3NlcTAsIHB1Yl90ZXN0LnRlc3Rw dWJfc2VxMSwgdGVzdHB1Yl9zZXEyOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFs bHNlcXVlbmNlcywgdGVzdHB1Yl9mb3JzZXF1ZW5jZSwgdGVzdHB1Yl9mb3JzY2hlbWE7Cist LSBQdWJsaWNhdGlvbiBtaXhpbmcgdGFibGVzIGFuZCBzZXF1ZW5jZXMKK1NFVCBjbGllbnRf bWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX21p eDsKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CitDUkVBVEUgU0VRVUVOQ0UgdGVzdHB1 Yl9zZXExOworQ1JFQVRFIFNFUVVFTkNFIHB1Yl90ZXN0LnRlc3RwdWJfc2VxMjsKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfbWl4IEFERCBTRVFVRU5DRSB0ZXN0cHViX3NlcTEsIFRB QkxFIHRlc3RwdWJfdGJsMTsKK1xkUnArIHRlc3RwdWJfbWl4CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX21p eAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVu Y2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVu Y2VzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3Vz ZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgICB8IHQgICAgICAgICB8IGYKK1RhYmxlczoKKyAgICAicHVi bGljLnRlc3RwdWJfdGJsMSIKK1NlcXVlbmNlczoKKyAgICAicHVibGljLnRlc3RwdWJfc2Vx MSIKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9taXggQUREIEFMTCBTRVFVRU5DRVMg SU4gU0NIRU1BIHB1Yl90ZXN0LCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDsKK1xk UnArIHRlc3RwdWJfbWl4CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX21peAorICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0 ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlhIHJvb3QgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAg ICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8 IHQgICAgICAgICB8IGYKK1RhYmxlczoKKyAgICAicHVibGljLnRlc3RwdWJfdGJsMSIKK1Rh YmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1Yl90ZXN0IgorU2VxdWVuY2VzOgorICAgICJw dWJsaWMudGVzdHB1Yl9zZXExIgorU2VxdWVuY2VzIGZyb20gc2NoZW1hczoKKyAgICAicHVi X3Rlc3QiCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfbWl4IERST1AgQUxMIFNFUVVF TkNFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CitcZFJwKyB0ZXN0cHViX21peAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVz dHB1Yl9taXgKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxs IHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8 IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNh dGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCB0ICAgICAgICAgfCBmCitUYWJsZXM6Cisg ICAgInB1YmxpYy50ZXN0cHViX3RibDEiCitUYWJsZXMgZnJvbSBzY2hlbWFzOgorICAgICJw dWJfdGVzdCIKK1NlcXVlbmNlczoKKyAgICAicHVibGljLnRlc3RwdWJfc2VxMSIKKworQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9taXggRFJPUCBBTEwgVEFCTEVTIElOIFNDSEVNQSBw dWJfdGVzdDsKK1xkUnArIHRlc3RwdWJfbWl4CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX21peAorICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5z ZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlh IHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgICB8IHQgICAgICAgICB8IGYKK1RhYmxlczoKKyAgICAicHVibGljLnRlc3Rw dWJfdGJsMSIKK1NlcXVlbmNlczoKKyAgICAicHVibGljLnRlc3RwdWJfc2VxMSIKKworRFJP UCBQVUJMSUNBVElPTiB0ZXN0cHViX21peDsKK0RST1AgU0VRVUVOQ0UgdGVzdHB1Yl9zZXEx OworRFJPUCBTRVFVRU5DRSBwdWJfdGVzdC50ZXN0cHViX3NlcTI7CistLSBtYWtlIHN1cmUg d2UgcmVwbGljYXRlIG9ubHkgdGhlIGNvcnJlY3QgcmVsYXRpb24gdHlwZQorQ1JFQVRFIFND SEVNQSBwdWJfdGVzdDE7CitDUkVBVEUgU0VRVUVOQ0UgcHViX3Rlc3QxLnRlc3Rfc2VxMTsK K0NSRUFURSBUQUJMRSBwdWJfdGVzdDEudGVzdF90YmwxIChhIGludCBwcmltYXJ5IGtleSwg YiBpbnQpOworQ1JFQVRFIFNDSEVNQSBwdWJfdGVzdDI7CitDUkVBVEUgU0VRVUVOQ0UgcHVi X3Rlc3QyLnRlc3Rfc2VxMjsKK0NSRUFURSBUQUJMRSBwdWJfdGVzdDIudGVzdF90YmwyIChh IGludCBwcmltYXJ5IGtleSwgYiBpbnQpOworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAn RVJST1InOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hczsKK1JFU0VUIGNs aWVudF9taW5fbWVzc2FnZXM7CistLSBhZGQgdGFibGVzIGZyb20gb25lIHNjaGVtYSwgc2Vx dWVuY2VzIGZyb20gdGhlIG90aGVyCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVt YXMgQUREIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0MjsKK0FMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfc2NoZW1hcyBBREQgQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEgcHViX3Rl c3QxOworXGRScCsgdGVzdHB1Yl9zY2hlbWFzCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9zY2hlbWFzCisgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJ bnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBTZXF1ZW5jZXMgfCBW aWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICAgIHwgdCAgICAgICAgIHwgZgorVGFibGVzIGZyb20gc2NoZW1hczoKKyAg ICAicHViX3Rlc3QyIgorU2VxdWVuY2VzIGZyb20gc2NoZW1hczoKKyAgICAicHViX3Rlc3Qx IgorCitcZG4rIHB1Yl90ZXN0MQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2Ygc2NoZW1hcworICAgTmFtZSAgICB8ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFj Y2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBw dWJfdGVzdDEgfCByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCAgICAgICAgICAgICAgICAg ICB8IAorUHVibGljYXRpb25zOgorICAgICJ0ZXN0cHViX3NjaGVtYXMiIChzZXF1ZW5jZXMp CisKK1xkbisgcHViX3Rlc3QyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiBzY2hlbWFzCisgICBOYW1lICAgIHwgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWNj ZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHB1 Yl90ZXN0MiB8IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8ICAgICAgICAgICAgICAgICAg IHwgCitQdWJsaWNhdGlvbnM6CisgICAgInRlc3RwdWJfc2NoZW1hcyIgKHRhYmxlcykKKwor XGQrIHB1Yl90ZXN0MS50ZXN0X3NlcTE7CisgICAgICAgICAgICAgICAgICAgICAgICBTZXF1 ZW5jZSAicHViX3Rlc3QxLnRlc3Rfc2VxMSIKKyAgVHlwZSAgfCBTdGFydCB8IE1pbmltdW0g fCAgICAgICBNYXhpbXVtICAgICAgIHwgSW5jcmVtZW50IHwgQ3ljbGVzPyB8IENhY2hlIAor LS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tCisgYmlnaW50IHwgICAgIDEgfCAgICAgICAxIHwg OTIyMzM3MjAzNjg1NDc3NTgwNyB8ICAgICAgICAgMSB8IG5vICAgICAgfCAgICAgMQorUHVi bGljYXRpb25zOgorICAgICJ0ZXN0cHViX3NjaGVtYXMiCisKK1xkKyBwdWJfdGVzdDEudGVz dF90YmwxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJfdGVz dDEudGVzdF90YmwxIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJs ZSB8IERlZmF1bHQgfCBTdG9yYWdlIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCist LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2Vy IHwgICAgICAgICAgIHwgbm90IG51bGwgfCAgICAgICAgIHwgcGxhaW4gICB8ICAgICAgICAg ICAgICB8IAorIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAg ICAgICAgfCBwbGFpbiAgIHwgICAgICAgICAgICAgIHwgCitJbmRleGVzOgorICAgICJ0ZXN0 X3RibDFfcGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChhKQorCitcZCsgcHViX3Rlc3QyLnRl c3Rfc2VxMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIFNlcXVlbmNlICJwdWJfdGVzdDIu dGVzdF9zZXEyIgorICBUeXBlICB8IFN0YXJ0IHwgTWluaW11bSB8ICAgICAgIE1heGltdW0g ICAgICAgfCBJbmNyZW1lbnQgfCBDeWNsZXM/IHwgQ2FjaGUgCistLS0tLS0tLSstLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0KKyBiaWdpbnQgfCAgICAgMSB8ICAgICAgIDEgfCA5MjIzMzcyMDM2ODU0Nzc1 ODA3IHwgICAgICAgICAxIHwgbm8gICAgICB8ICAgICAxCisKK1xkKyBwdWJfdGVzdDIudGVz dF90YmwyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJfdGVz dDIudGVzdF90YmwyIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJs ZSB8IERlZmF1bHQgfCBTdG9yYWdlIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCist LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2Vy IHwgICAgICAgICAgIHwgbm90IG51bGwgfCAgICAgICAgIHwgcGxhaW4gICB8ICAgICAgICAg ICAgICB8IAorIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAg ICAgICAgfCBwbGFpbiAgIHwgICAgICAgICAgICAgIHwgCitJbmRleGVzOgorICAgICJ0ZXN0 X3RibDJfcGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChhKQorUHVibGljYXRpb25zOgorICAg ICJ0ZXN0cHViX3NjaGVtYXMiCisKKy0tIGFkZCB0aGUgb3RoZXIgb2JqZWN0IHR5cGUgZnJv bSBlYWNoIHNjaGVtYQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9zY2hlbWFzIEFERCBB TEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDE7CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3NjaGVtYXMgQUREIEFMTCBTRVFVRU5DRVMgSU4gU0NIRU1BIHB1Yl90ZXN0MjsKK1xk UnArIHRlc3RwdWJfc2NoZW1hcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfc2NoZW1hcworICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8 IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlhIHJvb3Qg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgICB8IHQgICAgICAgICB8IGYKK1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1Yl90 ZXN0MSIKKyAgICAicHViX3Rlc3QyIgorU2VxdWVuY2VzIGZyb20gc2NoZW1hczoKKyAgICAi cHViX3Rlc3QxIgorICAgICJwdWJfdGVzdDIiCisKK1xkbisgcHViX3Rlc3QxCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzY2hlbWFzCisgICBOYW1lICAgIHwgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlv biAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHB1Yl90ZXN0MSB8IHJlZ3Jlc3NfcHVibGljYXRp b25fdXNlciB8ICAgICAgICAgICAgICAgICAgIHwgCitQdWJsaWNhdGlvbnM6CisgICAgInRl c3RwdWJfc2NoZW1hcyIgKHNlcXVlbmNlcykKKyAgICAidGVzdHB1Yl9zY2hlbWFzIiAodGFi bGVzKQorCitcZG4rIHB1Yl90ZXN0MgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2Ygc2NoZW1hcworICAgTmFtZSAgICB8ICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0K KyBwdWJfdGVzdDIgfCByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCAgICAgICAgICAgICAg ICAgICB8IAorUHVibGljYXRpb25zOgorICAgICJ0ZXN0cHViX3NjaGVtYXMiICh0YWJsZXMp CisgICAgInRlc3RwdWJfc2NoZW1hcyIgKHNlcXVlbmNlcykKKworXGQrIHB1Yl90ZXN0MS50 ZXN0X3NlcTE7CisgICAgICAgICAgICAgICAgICAgICAgICBTZXF1ZW5jZSAicHViX3Rlc3Qx LnRlc3Rfc2VxMSIKKyAgVHlwZSAgfCBTdGFydCB8IE1pbmltdW0gfCAgICAgICBNYXhpbXVt ICAgICAgIHwgSW5jcmVtZW50IHwgQ3ljbGVzPyB8IENhY2hlIAorLS0tLS0tLS0rLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tCisgYmlnaW50IHwgICAgIDEgfCAgICAgICAxIHwgOTIyMzM3MjAzNjg1NDc3 NTgwNyB8ICAgICAgICAgMSB8IG5vICAgICAgfCAgICAgMQorUHVibGljYXRpb25zOgorICAg ICJ0ZXN0cHViX3NjaGVtYXMiCisKK1xkKyBwdWJfdGVzdDEudGVzdF90YmwxOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJfdGVzdDEudGVzdF90YmwxIgor IENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgfCBT dG9yYWdlIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwg bm90IG51bGwgfCAgICAgICAgIHwgcGxhaW4gICB8ICAgICAgICAgICAgICB8IAorIGIgICAg ICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBwbGFpbiAg IHwgICAgICAgICAgICAgIHwgCitJbmRleGVzOgorICAgICJ0ZXN0X3RibDFfcGtleSIgUFJJ TUFSWSBLRVksIGJ0cmVlIChhKQorUHVibGljYXRpb25zOgorICAgICJ0ZXN0cHViX3NjaGVt YXMiCisKK1xkKyBwdWJfdGVzdDIudGVzdF9zZXEyOworICAgICAgICAgICAgICAgICAgICAg ICAgU2VxdWVuY2UgInB1Yl90ZXN0Mi50ZXN0X3NlcTIiCisgIFR5cGUgIHwgU3RhcnQgfCBN aW5pbXVtIHwgICAgICAgTWF4aW11bSAgICAgICB8IEluY3JlbWVudCB8IEN5Y2xlcz8gfCBD YWNoZSAKKy0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLQorIGJpZ2ludCB8ICAgICAxIHwgICAg ICAgMSB8IDkyMjMzNzIwMzY4NTQ3NzU4MDcgfCAgICAgICAgIDEgfCBubyAgICAgIHwgICAg IDEKK1B1YmxpY2F0aW9uczoKKyAgICAidGVzdHB1Yl9zY2hlbWFzIgorCitcZCsgcHViX3Rl c3QyLnRlc3RfdGJsMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAi cHViX3Rlc3QyLnRlc3RfdGJsMiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwg TnVsbGFibGUgfCBEZWZhdWx0IHwgU3RvcmFnZSB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0 aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgYSAgICAgIHwg aW50ZWdlciB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgICAgICAgICB8IHBsYWluICAgfCAg ICAgICAgICAgICAgfCAKKyBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAg ICAgfCAgICAgICAgIHwgcGxhaW4gICB8ICAgICAgICAgICAgICB8IAorSW5kZXhlczoKKyAg ICAidGVzdF90YmwyX3BrZXkiIFBSSU1BUlkgS0VZLCBidHJlZSAoYSkKK1B1YmxpY2F0aW9u czoKKyAgICAidGVzdHB1Yl9zY2hlbWFzIgorCistLSBub3cgZHJvcCB0aGUgb2JqZWN0IHR5 cGUgYWRkZWQgZmlyc3QKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hcyBEUk9Q IEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0MjsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfc2NoZW1hcyBEUk9QIEFMTCBTRVFVRU5DRVMgSU4gU0NIRU1BIHB1Yl90ZXN0MTsK K1xkUnArIHRlc3RwdWJfc2NoZW1hcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfc2NoZW1hcworICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0 cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlhIHJv b3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgICB8IHQgICAgICAgICB8IGYKK1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1 Yl90ZXN0MSIKK1NlcXVlbmNlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1Yl90ZXN0MiIKKwor XGRuKyBwdWJfdGVzdDEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHNj aGVtYXMKKyAgIE5hbWUgICAgfCAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBY2Nlc3Mg cHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcHViX3Rl c3QxIHwgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgICAgICAgICAgICAgICAgICAgfCAK K1B1YmxpY2F0aW9uczoKKyAgICAidGVzdHB1Yl9zY2hlbWFzIiAodGFibGVzKQorCitcZG4r IHB1Yl90ZXN0MgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc2NoZW1h cworICAgTmFtZSAgICB8ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFjY2VzcyBwcml2 aWxlZ2VzIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBwdWJfdGVzdDIg fCByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCAgICAgICAgICAgICAgICAgICB8IAorUHVi bGljYXRpb25zOgorICAgICJ0ZXN0cHViX3NjaGVtYXMiIChzZXF1ZW5jZXMpCisKK1xkKyBw dWJfdGVzdDEudGVzdF9zZXExOworICAgICAgICAgICAgICAgICAgICAgICAgU2VxdWVuY2Ug InB1Yl90ZXN0MS50ZXN0X3NlcTEiCisgIFR5cGUgIHwgU3RhcnQgfCBNaW5pbXVtIHwgICAg ICAgTWF4aW11bSAgICAgICB8IEluY3JlbWVudCB8IEN5Y2xlcz8gfCBDYWNoZSAKKy0tLS0t LS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLQorIGJpZ2ludCB8ICAgICAxIHwgICAgICAgMSB8IDkyMjMz NzIwMzY4NTQ3NzU4MDcgfCAgICAgICAgIDEgfCBubyAgICAgIHwgICAgIDEKKworXGQrIHB1 Yl90ZXN0MS50ZXN0X3RibDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFi bGUgInB1Yl90ZXN0MS50ZXN0X3RibDEiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlv biB8IE51bGxhYmxlIHwgRGVmYXVsdCB8IFN0b3JhZ2UgfCBTdGF0cyB0YXJnZXQgfCBEZXNj cmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGEgICAg ICB8IGludGVnZXIgfCAgICAgICAgICAgfCBub3QgbnVsbCB8ICAgICAgICAgfCBwbGFpbiAg IHwgICAgICAgICAgICAgIHwgCisgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgICAgICAgICB8IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKK0luZGV4ZXM6 CisgICAgInRlc3RfdGJsMV9wa2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGEpCitQdWJsaWNh dGlvbnM6CisgICAgInRlc3RwdWJfc2NoZW1hcyIKKworXGQrIHB1Yl90ZXN0Mi50ZXN0X3Nl cTI7CisgICAgICAgICAgICAgICAgICAgICAgICBTZXF1ZW5jZSAicHViX3Rlc3QyLnRlc3Rf c2VxMiIKKyAgVHlwZSAgfCBTdGFydCB8IE1pbmltdW0gfCAgICAgICBNYXhpbXVtICAgICAg IHwgSW5jcmVtZW50IHwgQ3ljbGVzPyB8IENhY2hlIAorLS0tLS0tLS0rLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tCisgYmlnaW50IHwgICAgIDEgfCAgICAgICAxIHwgOTIyMzM3MjAzNjg1NDc3NTgwNyB8 ICAgICAgICAgMSB8IG5vICAgICAgfCAgICAgMQorUHVibGljYXRpb25zOgorICAgICJ0ZXN0 cHViX3NjaGVtYXMiCisKK1xkKyBwdWJfdGVzdDIudGVzdF90YmwyOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJfdGVzdDIudGVzdF90YmwyIgorIENvbHVt biB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgfCBTdG9yYWdl IHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgbm90IG51 bGwgfCAgICAgICAgIHwgcGxhaW4gICB8ICAgICAgICAgICAgICB8IAorIGIgICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBwbGFpbiAgIHwgICAg ICAgICAgICAgIHwgCitJbmRleGVzOgorICAgICJ0ZXN0X3RibDJfcGtleSIgUFJJTUFSWSBL RVksIGJ0cmVlIChhKQorCistLSBzaG91bGQgZmFpbCAocHVibGljYXRpb24gY29udGFpbnMg dGhlIHdob2xlIHNjaGVtYSkKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hcyBB REQgVEFCTEUgcHViX3Rlc3QxLnRlc3RfdGJsMTsKK0VSUk9SOiAgY2Fubm90IGFkZCByZWxh dGlvbiAicHViX3Rlc3QxLnRlc3RfdGJsMSIgdG8gcHVibGljYXRpb24KK0RFVEFJTDogIFRh YmxlJ3Mgc2NoZW1hICJwdWJfdGVzdDEiIGlzIGFscmVhZHkgcGFydCBvZiB0aGUgcHVibGlj YXRpb24gb3IgcGFydCBvZiB0aGUgc3BlY2lmaWVkIHNjaGVtYSBsaXN0LgorQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9zY2hlbWFzIEFERCBTRVFVRU5DRSBwdWJfdGVzdDIudGVzdF9z ZXEyOworRVJST1I6ICBjYW5ub3QgYWRkIHJlbGF0aW9uICJwdWJfdGVzdDIudGVzdF9zZXEy IiB0byBwdWJsaWNhdGlvbgorREVUQUlMOiAgU2VxdWVuY2UncyBzY2hlbWEgInB1Yl90ZXN0 MiIgaXMgYWxyZWFkeSBwYXJ0IG9mIHRoZSBwdWJsaWNhdGlvbiBvciBwYXJ0IG9mIHRoZSBz cGVjaWZpZWQgc2NoZW1hIGxpc3QuCistLSBzaG91bGQgd29yayAoZGlmZmVyZW50IHNjaGVt YSkKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hcyBBREQgVEFCTEUgcHViX3Rl c3QyLnRlc3RfdGJsMjsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hcyBBREQg U0VRVUVOQ0UgcHViX3Rlc3QxLnRlc3Rfc2VxMTsKK1xkUnArIHRlc3RwdWJfc2NoZW1hcwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0 aW9uIHRlc3RwdWJfc2NoZW1hcworICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0 YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwg VHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdy ZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IHQgICAgICAgICB8IGYK K1RhYmxlczoKKyAgICAicHViX3Rlc3QyLnRlc3RfdGJsMiIKK1RhYmxlcyBmcm9tIHNjaGVt YXM6CisgICAgInB1Yl90ZXN0MSIKK1NlcXVlbmNlczoKKyAgICAicHViX3Rlc3QxLnRlc3Rf c2VxMSIKK1NlcXVlbmNlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1Yl90ZXN0MiIKKworXGQr IHB1Yl90ZXN0MS50ZXN0X3NlcTE7CisgICAgICAgICAgICAgICAgICAgICAgICBTZXF1ZW5j ZSAicHViX3Rlc3QxLnRlc3Rfc2VxMSIKKyAgVHlwZSAgfCBTdGFydCB8IE1pbmltdW0gfCAg ICAgICBNYXhpbXVtICAgICAgIHwgSW5jcmVtZW50IHwgQ3ljbGVzPyB8IENhY2hlIAorLS0t LS0tLS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tCisgYmlnaW50IHwgICAgIDEgfCAgICAgICAxIHwgOTIy MzM3MjAzNjg1NDc3NTgwNyB8ICAgICAgICAgMSB8IG5vICAgICAgfCAgICAgMQorUHVibGlj YXRpb25zOgorICAgICJ0ZXN0cHViX3NjaGVtYXMiCisKK1xkKyBwdWJfdGVzdDEudGVzdF90 YmwxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJfdGVzdDEu dGVzdF90YmwxIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8 IERlZmF1bHQgfCBTdG9yYWdlIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCistLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyIHwg ICAgICAgICAgIHwgbm90IG51bGwgfCAgICAgICAgIHwgcGxhaW4gICB8ICAgICAgICAgICAg ICB8IAorIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAg ICAgfCBwbGFpbiAgIHwgICAgICAgICAgICAgIHwgCitJbmRleGVzOgorICAgICJ0ZXN0X3Ri bDFfcGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChhKQorUHVibGljYXRpb25zOgorICAgICJ0 ZXN0cHViX3NjaGVtYXMiCisKK1xkKyBwdWJfdGVzdDIudGVzdF9zZXEyOworICAgICAgICAg ICAgICAgICAgICAgICAgU2VxdWVuY2UgInB1Yl90ZXN0Mi50ZXN0X3NlcTIiCisgIFR5cGUg IHwgU3RhcnQgfCBNaW5pbXVtIHwgICAgICAgTWF4aW11bSAgICAgICB8IEluY3JlbWVudCB8 IEN5Y2xlcz8gfCBDYWNoZSAKKy0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLQorIGJpZ2ludCB8 ICAgICAxIHwgICAgICAgMSB8IDkyMjMzNzIwMzY4NTQ3NzU4MDcgfCAgICAgICAgIDEgfCBu byAgICAgIHwgICAgIDEKK1B1YmxpY2F0aW9uczoKKyAgICAidGVzdHB1Yl9zY2hlbWFzIgor CitcZCsgcHViX3Rlc3QyLnRlc3RfdGJsMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUYWJsZSAicHViX3Rlc3QyLnRlc3RfdGJsMiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwg Q29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgU3RvcmFnZSB8IFN0YXRzIHRhcmdl dCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t CisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgICAgICAgICB8 IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKKyBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAg ICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgcGxhaW4gICB8ICAgICAgICAgICAgICB8IAor SW5kZXhlczoKKyAgICAidGVzdF90YmwyX3BrZXkiIFBSSU1BUlkgS0VZLCBidHJlZSAoYSkK K1B1YmxpY2F0aW9uczoKKyAgICAidGVzdHB1Yl9zY2hlbWFzIgorCistLSBub3cgZHJvcCB0 aGUgZXhwbGljaXRseSBhZGRlZCBvYmplY3RzIGFnYWluCitBTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViX3NjaGVtYXMgRFJPUCBUQUJMRSBwdWJfdGVzdDIudGVzdF90YmwyOworQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9zY2hlbWFzIERST1AgU0VRVUVOQ0UgcHViX3Rlc3QxLnRl c3Rfc2VxMTsKK1xkUnArIHRlc3RwdWJfc2NoZW1hcworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfc2NoZW1hcwor ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2Vz IHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2Vz IHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIg fCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgICB8IHQgICAgICAgICB8IGYKK1RhYmxlcyBmcm9tIHNjaGVtYXM6 CisgICAgInB1Yl90ZXN0MSIKK1NlcXVlbmNlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1Yl90 ZXN0MiIKKworXGQrIHB1Yl90ZXN0MS50ZXN0X3NlcTE7CisgICAgICAgICAgICAgICAgICAg ICAgICBTZXF1ZW5jZSAicHViX3Rlc3QxLnRlc3Rfc2VxMSIKKyAgVHlwZSAgfCBTdGFydCB8 IE1pbmltdW0gfCAgICAgICBNYXhpbXVtICAgICAgIHwgSW5jcmVtZW50IHwgQ3ljbGVzPyB8 IENhY2hlIAorLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tCisgYmlnaW50IHwgICAgIDEgfCAg ICAgICAxIHwgOTIyMzM3MjAzNjg1NDc3NTgwNyB8ICAgICAgICAgMSB8IG5vICAgICAgfCAg ICAgMQorCitcZCsgcHViX3Rlc3QxLnRlc3RfdGJsMTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBUYWJsZSAicHViX3Rlc3QxLnRlc3RfdGJsMSIKKyBDb2x1bW4gfCAgVHlw ZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgU3RvcmFnZSB8IFN0YXRz IHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgICAg ICAgICB8IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKKyBiICAgICAgfCBpbnRlZ2VyIHwg ICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgcGxhaW4gICB8ICAgICAgICAgICAg ICB8IAorSW5kZXhlczoKKyAgICAidGVzdF90YmwxX3BrZXkiIFBSSU1BUlkgS0VZLCBidHJl ZSAoYSkKK1B1YmxpY2F0aW9uczoKKyAgICAidGVzdHB1Yl9zY2hlbWFzIgorCitcZCsgcHVi X3Rlc3QyLnRlc3Rfc2VxMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIFNlcXVlbmNlICJw dWJfdGVzdDIudGVzdF9zZXEyIgorICBUeXBlICB8IFN0YXJ0IHwgTWluaW11bSB8ICAgICAg IE1heGltdW0gICAgICAgfCBJbmNyZW1lbnQgfCBDeWNsZXM/IHwgQ2FjaGUgCistLS0tLS0t LSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0KKyBiaWdpbnQgfCAgICAgMSB8ICAgICAgIDEgfCA5MjIzMzcy MDM2ODU0Nzc1ODA3IHwgICAgICAgICAxIHwgbm8gICAgICB8ICAgICAxCitQdWJsaWNhdGlv bnM6CisgICAgInRlc3RwdWJfc2NoZW1hcyIKKworXGQrIHB1Yl90ZXN0Mi50ZXN0X3RibDI7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1Yl90ZXN0Mi50ZXN0 X3RibDIiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVm YXVsdCB8IFN0b3JhZ2UgfCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIgfCAgICAg ICAgICAgfCBub3QgbnVsbCB8ICAgICAgICAgfCBwbGFpbiAgIHwgICAgICAgICAgICAgIHwg CisgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8 IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKK0luZGV4ZXM6CisgICAgInRlc3RfdGJsMl9w a2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGEpCisKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1 Yl9zY2hlbWFzOworRFJPUCBUQUJMRSBwdWJfdGVzdDEudGVzdF90YmwxLCBwdWJfdGVzdDIu dGVzdF90YmwyOworRFJPUCBTRVFVRU5DRSBwdWJfdGVzdDEudGVzdF9zZXExLCBwdWJfdGVz dDIudGVzdF9zZXEyOworRFJPUCBTQ0hFTUEgcHViX3Rlc3QxLCBwdWJfdGVzdDI7CiAtLSBU ZXN0cyBmb3IgcGFydGl0aW9uZWQgdGFibGVzCiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9 ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JwYXJ0ZWQ7CkBAIC0y MDcsMTAgKzcxMywxMCBAQCBVUERBVEUgdGVzdHB1Yl9wYXJ0ZWQxIFNFVCBhID0gMTsKIC0t IG9ubHkgcGFyZW50IGlzIGxpc3RlZCBhcyBiZWluZyBpbiBwdWJsaWNhdGlvbiwgbm90IHRo ZSBwYXJ0aXRpb24KIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9ycGFydGVkIEFERCBU QUJMRSB0ZXN0cHViX3BhcnRlZDsKIFxkUnArIHRlc3RwdWJfZm9ycGFydGVkCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9mb3JwYXJ0ZWQK LSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVw ZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8 IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAg fCBmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJs aWNhdGlvbiB0ZXN0cHViX2ZvcnBhcnRlZAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxl dGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K KyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IHQgICAgICAg ICB8IGYKIFRhYmxlczoKICAgICAicHVibGljLnRlc3RwdWJfcGFydGVkIgogCkBAIC0yMjMs MTAgKzcyOSwxMCBAQCBBTFRFUiBUQUJMRSB0ZXN0cHViX3BhcnRlZCBERVRBQ0ggUEFSVElU SU9OIHRlc3RwdWJfcGFydGVkMTsKIFVQREFURSB0ZXN0cHViX3BhcnRlZDEgU0VUIGEgPSAx OwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JwYXJ0ZWQgU0VUIChwdWJsaXNoX3Zp YV9wYXJ0aXRpb25fcm9vdCA9IHRydWUpOwogXGRScCsgdGVzdHB1Yl9mb3JwYXJ0ZWQKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnBh cnRlZAotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRz IHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91 c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgICB8IHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFB1YmxpY2F0aW9uIHRlc3RwdWJfZm9ycGFydGVkCisgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8 IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBTZXF1ZW5jZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAg ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgdCAg ICAgICAgIHwgdAogVGFibGVzOgogICAgICJwdWJsaWMudGVzdHB1Yl9wYXJ0ZWQiCiAKQEAg LTI1NSwxMCArNzYxLDEwIEBAIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsK IENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNSBGT1IgVEFCTEUgdGVzdHB1Yl9yZl90Ymwx LCB0ZXN0cHViX3JmX3RibDIgV0hFUkUgKGMgPD4gJ3Rlc3QnIEFORCBkIDwgNSkgV0lUSCAo cHVibGlzaCA9ICdpbnNlcnQnKTsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBcZFJw KyB0ZXN0cHViNQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGlj YXRpb24gdGVzdHB1YjUKLSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVz IHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3Qg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVi bGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICB8IGYgICAg ICAgfCBmICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWI1CisgICAgICAgICAgT3duZXIg ICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBk YXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBTZXF1ZW5jZXMgfCBWaWEgcm9vdCAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBm ICAgICAgICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBmICAgICAgIHwgZiAgICAgICAg IHwgZiAgICAgICAgIHwgZgogVGFibGVzOgogICAgICJwdWJsaWMudGVzdHB1Yl9yZl90Ymwx IgogICAgICJwdWJsaWMudGVzdHB1Yl9yZl90YmwyIiBXSEVSRSAoKGMgPD4gJ3Rlc3QnOjp0 ZXh0KSBBTkQgKGQgPCA1KSkKQEAgLTI3MSwxMCArNzc3LDEwIEBAIFRhYmxlczoKIAogQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1YjUgQUREIFRBQkxFIHRlc3RwdWJfcmZfdGJsMyBXSEVS RSAoZSA+IDEwMDAgQU5EIGUgPCAyMDAwKTsKIFxkUnArIHRlc3RwdWI1Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViNQotICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8 IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAg ICAgICB8IHQgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgICB8IGYKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGlj YXRpb24gdGVzdHB1YjUKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVz IHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5j YXRlcyB8IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19w dWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAg IHwgZiAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBmICAgICAgICAgfCBmCiBUYWJs ZXM6CiAgICAgInB1YmxpYy50ZXN0cHViX3JmX3RibDEiCiAgICAgInB1YmxpYy50ZXN0cHVi X3JmX3RibDIiIFdIRVJFICgoYyA8PiAndGVzdCc6OnRleHQpIEFORCAoZCA8IDUpKQpAQCAt MjkwLDEwICs3OTYsMTAgQEAgUHVibGljYXRpb25zOgogCiBBTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViNSBEUk9QIFRBQkxFIHRlc3RwdWJfcmZfdGJsMjsKIFxkUnArIHRlc3RwdWI1Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHVi NQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwg VXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2Vy IHwgZiAgICAgICAgICB8IHQgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAgICAg ICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUHVibGljYXRpb24gdGVzdHB1YjUKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBB bGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRl cyB8IFRydW5jYXRlcyB8IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAg fCB0ICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBmICAgICAgICAg fCBmCiBUYWJsZXM6CiAgICAgInB1YmxpYy50ZXN0cHViX3JmX3RibDEiCiAgICAgInB1Ymxp Yy50ZXN0cHViX3JmX3RibDMiIFdIRVJFICgoZSA+IDEwMDApIEFORCAoZSA8IDIwMDApKQpA QCAtMzAxLDEwICs4MDcsMTAgQEAgVGFibGVzOgogLS0gcmVtb3ZlIHRlc3RwdWJfcmZfdGJs MSBhbmQgYWRkIHRlc3RwdWJfcmZfdGJsMyBhZ2FpbiAoYW5vdGhlciBXSEVSRSBleHByZXNz aW9uKQogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1YjUgU0VUIFRBQkxFIHRlc3RwdWJfcmZf dGJsMyBXSEVSRSAoZSA+IDMwMCBBTkQgZSA8IDUwMCk7CiBcZFJwKyB0ZXN0cHViNQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjUK LSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVw ZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8 IGYgICAgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAg fCBmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFB1YmxpY2F0aW9uIHRlc3RwdWI1CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxs IHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMg fCBUcnVuY2F0ZXMgfCBTZXF1ZW5jZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJl Z3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg dCAgICAgICB8IGYgICAgICAgfCBmICAgICAgIHwgZiAgICAgICAgIHwgZiAgICAgICAgIHwg ZgogVGFibGVzOgogICAgICJwdWJsaWMudGVzdHB1Yl9yZl90YmwzIiBXSEVSRSAoKGUgPiAz MDApIEFORCAoZSA8IDUwMCkpCiAKQEAgLTMzNywxMCArODQzLDEwIEBAIFNFVCBjbGllbnRf bWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3N5 bnRheDEgRk9SIFRBQkxFIHRlc3RwdWJfcmZfdGJsMSwgT05MWSB0ZXN0cHViX3JmX3RibDMg V0hFUkUgKGUgPCA5OTkpIFdJVEggKHB1Ymxpc2ggPSAnaW5zZXJ0Jyk7CiBSRVNFVCBjbGll bnRfbWluX21lc3NhZ2VzOwogXGRScCsgdGVzdHB1Yl9zeW50YXgxCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfc3ludGF4MQotICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8 IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAg ICAgICB8IHQgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgICB8IGYKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlv biB0ZXN0cHViX3N5bnRheDEKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFi bGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRy dW5jYXRlcyB8IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVz c19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAg ICAgIHwgZiAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBmICAgICAgICAgfCBmCiBU YWJsZXM6CiAgICAgInB1YmxpYy50ZXN0cHViX3JmX3RibDEiCiAgICAgInB1YmxpYy50ZXN0 cHViX3JmX3RibDMiIFdIRVJFIChlIDwgOTk5KQpAQCAtMzUwLDEwICs4NTYsMTAgQEAgU0VU IGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRl c3RwdWJfc3ludGF4MiBGT1IgVEFCTEUgdGVzdHB1Yl9yZl90YmwxLCB0ZXN0cHViX3JmX3Nj aGVtYTEudGVzdHB1Yl9yZl90Ymw1IFdIRVJFIChoIDwgOTk5KSBXSVRIIChwdWJsaXNoID0g J2luc2VydCcpOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIFxkUnArIHRlc3RwdWJf c3ludGF4MgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0 ZXN0cHViX3N5bnRheDIKLSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVz IHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3Qg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVi bGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICB8IGYgICAg ICAgfCBmICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9zeW50YXgyCisgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwg VXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBTZXF1ZW5jZXMgfCBWaWEgcm9vdCAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAg fCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBmICAgICAgIHwgZiAgICAg ICAgIHwgZiAgICAgICAgIHwgZgogVGFibGVzOgogICAgICJwdWJsaWMudGVzdHB1Yl9yZl90 YmwxIgogICAgICJ0ZXN0cHViX3JmX3NjaGVtYTEudGVzdHB1Yl9yZl90Ymw1IiBXSEVSRSAo aCA8IDk5OSkKQEAgLTY1OCwxMCArMTE2NCwxMCBAQCBFUlJPUjogIHJlbGF0aW9uICJ0ZXN0 cHViX3RibDEiIGlzIGFscmVhZHkgbWVtYmVyIG9mIHB1YmxpY2F0aW9uICJ0ZXN0cHViX2Zv cnRibAogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9ydGJsIEZPUiBUQUJMRSB0ZXN0 cHViX3RibDE7CiBFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViX2ZvcnRibCIgYWxyZWFk eSBleGlzdHMKIFxkUnArIHRlc3RwdWJfZm9ydGJsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnRibAotICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMg fCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1 Yl9mb3J0YmwKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxs IHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8 IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNh dGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCB0ICAgICAgICAgfCBmCiBUYWJsZXM6CiAg ICAgInB1Yl90ZXN0LnRlc3RwdWJfbm9wayIKICAgICAicHVibGljLnRlc3RwdWJfdGJsMSIK QEAgLTY5OSwxMCArMTIwNSwxMCBAQCBQdWJsaWNhdGlvbnM6CiAgICAgInRlc3RwdWJfZm9y dGJsIgogCiBcZFJwKyB0ZXN0cHViX2RlZmF1bHQKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9kZWZhdWx0Ci0gICAgICAgICAgT3duZXIg ICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8 IFRydW5jYXRlcyB8IFZpYSByb290IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0KLSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICAgIHwgZgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJf ZGVmYXVsdAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwg c2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwg U2VxdWVuY2VzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0 aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IGYgICAgICAgICB8IHQgICAgICAgICB8IGYKIFRhYmxlczoKICAg ICAicHViX3Rlc3QudGVzdHB1Yl9ub3BrIgogICAgICJwdWJsaWMudGVzdHB1Yl90YmwxIgpA QCAtNzgwLDEwICsxMjg2LDEwIEBAIFJFVk9LRSBDUkVBVEUgT04gREFUQUJBU0UgcmVncmVz c2lvbiBGUk9NIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7CiBEUk9QIFRBQkxFIHRlc3Rw dWJfcGFydGVkOwogRFJPUCBUQUJMRSB0ZXN0cHViX3RibDE7CiBcZFJwKyB0ZXN0cHViX2Rl ZmF1bHQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVz dHB1Yl9kZWZhdWx0Ci0gICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8 IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3B1Ymxp Y2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgZiAgICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZGVmYXVsdAorICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVw ZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlhIHJvb3QgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwg ZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IGYgICAgICAg ICB8IHQgICAgICAgICB8IGYKICgxIHJvdykKIAogLS0gZmFpbCAtIG11c3QgYmUgb3duZXIg b2YgcHVibGljYXRpb24KQEAgLTc5MywyMCArMTI5OSwyMCBAQCBFUlJPUjogIG11c3QgYmUg b3duZXIgb2YgcHVibGljYXRpb24gdGVzdHB1Yl9kZWZhdWx0CiBSRVNFVCBST0xFOwogQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9kZWZhdWx0IFJFTkFNRSBUTyB0ZXN0cHViX2ZvbzsK IFxkUnAgdGVzdHB1Yl9mb28KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHB1YmxpY2F0aW9ucwotICAgIE5hbWUgICAgIHwgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVs ZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAotLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHRlc3RwdWJfZm9vIHwgcmVncmVzc19w dWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IGYgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgcHVibGljYXRpb25zCisgICAgTmFt ZSAgICAgfCAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNl cXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFNl cXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyB0ZXN0 cHViX2ZvbyB8IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAg ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICAgIHwg dCAgICAgICAgIHwgZgogKDEgcm93KQogCiAtLSByZW5hbWUgYmFjayB0byBrZWVwIHRoZSBy ZXN0IHNpbXBsZQogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb28gUkVOQU1FIFRPIHRl c3RwdWJfZGVmYXVsdDsKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGVmYXVsdCBPV05F UiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwogXGRScCB0ZXN0cHViX2RlZmF1bHQK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg cHVibGljYXRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVu Y2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHRlc3RwdWJfZGVmYXVsdCB8IHJlZ3Jlc3NfcHVi bGljYXRpb25fdXNlcjIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgZiAgICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHB1YmxpY2F0aW9ucworICAgICAg TmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwg QWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRl cyB8IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLQorIHRlc3RwdWJfZGVmYXVsdCB8IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjIgfCBm ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IGYgICAgICAgICB8IHQgICAgICAgICB8IGYKICgxIHJvdykKIAogLS0gYWRkaW5nIHNj aGVtYXMgYW5kIHRhYmxlcwpAQCAtODIyLDE5ICsxMzI4LDE5IEBAIENSRUFURSBUQUJMRSAi Q1VSUkVOVF9TQ0hFTUEiLiJDVVJSRU5UX1NDSEVNQSIoaWQgaW50KTsKIFNFVCBjbGllbnRf bWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViMV9m b3JzY2hlbWEgRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0MTsKIFxkUnArIHRl c3RwdWIxX2ZvcnNjaGVtYQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1Ymxp Y2F0aW9uIHRlc3RwdWIxX2ZvcnNjaGVtYQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMg fCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0g cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIxX2ZvcnNjaGVtYQor ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2Vz IHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2Vz IHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIg fCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgICB8IHQgICAgICAgICB8IGYKIFRhYmxlcyBmcm9tIHNjaGVtYXM6 CiAgICAgInB1Yl90ZXN0MSIKIAogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWIyX2ZvcnNj aGVtYSBGT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QxLCBwdWJfdGVzdDIsIHB1 Yl90ZXN0MzsKIFxkUnArIHRlc3RwdWIyX2ZvcnNjaGVtYQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIyX2ZvcnNjaGVtYQotICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERl bGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRl c3RwdWIyX2ZvcnNjaGVtYQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJs ZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1 bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IHQgICAgICAgICB8IGYKIFRh YmxlcyBmcm9tIHNjaGVtYXM6CiAgICAgInB1Yl90ZXN0MSIKICAgICAicHViX3Rlc3QyIgpA QCAtODQ4LDQ0ICsxMzU0LDQ0IEBAIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNl9mb3Jz Y2hlbWEgRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BICJDVVJSRU5UX1NDSEVNQSIsCiBDUkVB VEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3J0YWJsZSBGT1IgVEFCTEUgIkNVUlJFTlRfU0NI RU1BIi4iQ1VSUkVOVF9TQ0hFTUEiOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIFxk UnArIHRlc3RwdWIzX2ZvcnNjaGVtYQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFB1YmxpY2F0aW9uIHRlc3RwdWIzX2ZvcnNjaGVtYQotICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVu Y2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIzX2ZvcnNj aGVtYQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2Vx dWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2Vx dWVuY2VzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9u X3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgICB8IHQgICAgICAgICB8IGYKIFRhYmxlcyBmcm9tIHNj aGVtYXM6CiAgICAgInB1YmxpYyIKIAogXGRScCsgdGVzdHB1YjRfZm9yc2NoZW1hCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjRfZm9yc2No ZW1hCi0gICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMg fCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3B1YmxpY2F0aW9uX3Vz ZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UHVibGljYXRpb24gdGVzdHB1YjRfZm9yc2NoZW1hCisgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8 IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBTZXF1ZW5jZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAg ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgdCAg ICAgICAgIHwgZgogVGFibGVzIGZyb20gc2NoZW1hczoKICAgICAiQ1VSUkVOVF9TQ0hFTUEi CiAKIFxkUnArIHRlc3RwdWI1X2ZvcnNjaGVtYQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWI1X2ZvcnNjaGVtYQotICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMg fCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWI1 X2ZvcnNjaGVtYQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBB bGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVz IHwgU2VxdWVuY2VzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1Ymxp Y2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IHQgICAgICAgICB8IGYKIFRhYmxlcyBm cm9tIHNjaGVtYXM6CiAgICAgIkNVUlJFTlRfU0NIRU1BIgogICAgICJwdWJsaWMiCiAKIFxk UnArIHRlc3RwdWI2X2ZvcnNjaGVtYQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFB1YmxpY2F0aW9uIHRlc3RwdWI2X2ZvcnNjaGVtYQotICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVu Y2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWI2X2ZvcnNj aGVtYQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2Vx dWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2Vx dWVuY2VzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9u X3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgICB8IHQgICAgICAgICB8IGYKIFRhYmxlcyBmcm9tIHNj aGVtYXM6CiAgICAgIkNVUlJFTlRfU0NIRU1BIgogICAgICJwdWJsaWMiCiAKIFxkUnArIHRl c3RwdWJfZm9ydGFibGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGlj YXRpb24gdGVzdHB1Yl9mb3J0YWJsZQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFs bCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBW aWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVn cmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnRhYmxlCisgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJ bnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBTZXF1ZW5jZXMgfCBW aWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICAgIHwgdCAgICAgICAgIHwgZgogVGFibGVzOgogICAgICJDVVJSRU5UX1ND SEVNQS5DVVJSRU5UX1NDSEVNQSIKIApAQCAtOTE5LDEwICsxNDI1LDEwIEBAIEVSUk9SOiAg c2NoZW1hICJ0ZXN0cHViX3ZpZXciIGRvZXMgbm90IGV4aXN0CiAtLSBkcm9wcGluZyB0aGUg c2NoZW1hIHNob3VsZCByZWZsZWN0IHRoZSBjaGFuZ2UgaW4gcHVibGljYXRpb24KIERST1Ag U0NIRU1BIHB1Yl90ZXN0MzsKIFxkUnArIHRlc3RwdWIyX2ZvcnNjaGVtYQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIyX2ZvcnNjaGVtYQot ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBk YXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwg ZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8 IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1Ymxp Y2F0aW9uIHRlc3RwdWIyX2ZvcnNjaGVtYQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxl dGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K KyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IHQgICAgICAg ICB8IGYKIFRhYmxlcyBmcm9tIHNjaGVtYXM6CiAgICAgInB1Yl90ZXN0MSIKICAgICAicHVi X3Rlc3QyIgpAQCAtOTMwLDIwICsxNDM2LDIwIEBAIFRhYmxlcyBmcm9tIHNjaGVtYXM6CiAt LSByZW5hbWluZyB0aGUgc2NoZW1hIHNob3VsZCByZWZsZWN0IHRoZSBjaGFuZ2UgaW4gcHVi bGljYXRpb24KIEFMVEVSIFNDSEVNQSBwdWJfdGVzdDEgUkVOQU1FIHRvIHB1Yl90ZXN0MV9y ZW5hbWVkOwogXGRScCsgdGVzdHB1YjJfZm9yc2NoZW1hCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjJfZm9yc2NoZW1hCi0gICAgICAgICAg T3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVs ZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVz dHB1YjJfZm9yc2NoZW1hCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxl cyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVu Y2F0ZXMgfCBTZXF1ZW5jZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf cHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgdCAgICAgICAgIHwgZgogVGFi bGVzIGZyb20gc2NoZW1hczoKICAgICAicHViX3Rlc3QxX3JlbmFtZWQiCiAgICAgInB1Yl90 ZXN0MiIKIAogQUxURVIgU0NIRU1BIHB1Yl90ZXN0MV9yZW5hbWVkIFJFTkFNRSB0byBwdWJf dGVzdDE7CiBcZFJwKyB0ZXN0cHViMl9mb3JzY2hlbWEKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMl9mb3JzY2hlbWEKLSAgICAgICAgICBP d25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxl dGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0 cHViMl9mb3JzY2hlbWEKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVz IHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5j YXRlcyB8IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19w dWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCB0ICAgICAgICAgfCBmCiBUYWJs ZXMgZnJvbSBzY2hlbWFzOgogICAgICJwdWJfdGVzdDEiCiAgICAgInB1Yl90ZXN0MiIKQEAg LTk1MSwxMCArMTQ1NywxMCBAQCBUYWJsZXMgZnJvbSBzY2hlbWFzOgogLS0gYWx0ZXIgcHVi bGljYXRpb24gYWRkIHNjaGVtYQogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1YjFfZm9yc2No ZW1hIEFERCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDI7CiBcZFJwKyB0ZXN0cHVi MV9mb3JzY2hlbWEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlv biB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwg dGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlh IHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jl c3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMV9mb3JzY2hlbWEKKyAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IElu c2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFNlcXVlbmNlcyB8IFZp YSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAg ICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg fCB0ICAgICAgICAgfCB0ICAgICAgICAgfCBmCiBUYWJsZXMgZnJvbSBzY2hlbWFzOgogICAg ICJwdWJfdGVzdDEiCiAgICAgInB1Yl90ZXN0MiIKQEAgLTk2MywxMCArMTQ2OSwxMCBAQCBU YWJsZXMgZnJvbSBzY2hlbWFzOgogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1YjFfZm9yc2No ZW1hIEFERCBBTEwgVEFCTEVTIElOIFNDSEVNQSBub25fZXhpc3RlbnRfc2NoZW1hOwogRVJS T1I6ICBzY2hlbWEgIm5vbl9leGlzdGVudF9zY2hlbWEiIGRvZXMgbm90IGV4aXN0CiBcZFJw KyB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ dWJsaWNhdGlvbiB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNh dGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMV9mb3JzY2hl bWEKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVl bmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFNlcXVl bmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91 c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgICAgfCB0ICAgICAgICAgfCBmCiBUYWJsZXMgZnJvbSBzY2hl bWFzOgogICAgICJwdWJfdGVzdDEiCiAgICAgInB1Yl90ZXN0MiIKQEAgLTk3NSwxMCArMTQ4 MSwxMCBAQCBUYWJsZXMgZnJvbSBzY2hlbWFzOgogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 YjFfZm9yc2NoZW1hIEFERCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDE7CiBFUlJP UjogIHNjaGVtYSAicHViX3Rlc3QxIiBpcyBhbHJlYWR5IG1lbWJlciBvZiBwdWJsaWNhdGlv biAidGVzdHB1YjFfZm9yc2NoZW1hIgogXGRScCsgdGVzdHB1YjFfZm9yc2NoZW1hCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjFfZm9yc2No ZW1hCi0gICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMg fCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3B1YmxpY2F0aW9uX3Vz ZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UHVibGljYXRpb24gdGVzdHB1YjFfZm9yc2NoZW1hCisgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8 IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBTZXF1ZW5jZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAg ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgdCAg ICAgICAgIHwgZgogVGFibGVzIGZyb20gc2NoZW1hczoKICAgICAicHViX3Rlc3QxIgogICAg ICJwdWJfdGVzdDIiCkBAIC05ODYsMTAgKzE0OTIsMTAgQEAgVGFibGVzIGZyb20gc2NoZW1h czoKIC0tIGFsdGVyIHB1YmxpY2F0aW9uIGRyb3Agc2NoZW1hCiBBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViMV9mb3JzY2hlbWEgRFJPUCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVz dDI7CiBcZFJwKyB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAgICAgICBPd25l ciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVz IHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHVi MV9mb3JzY2hlbWEKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwg QWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRl cyB8IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJs aWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCB0ICAgICAgICAgfCBmCiBUYWJsZXMg ZnJvbSBzY2hlbWFzOgogICAgICJwdWJfdGVzdDEiCiAKQEAgLTk5NywxMCArMTUwMywxMCBA QCBUYWJsZXMgZnJvbSBzY2hlbWFzOgogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1YjFfZm9y c2NoZW1hIERST1AgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QyOwogRVJST1I6ICB0 YWJsZXMgZnJvbSBzY2hlbWEgInB1Yl90ZXN0MiIgYXJlIG5vdCBwYXJ0IG9mIHRoZSBwdWJs aWNhdGlvbgogXGRScCsgdGVzdHB1YjFfZm9yc2NoZW1hCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjFfZm9yc2NoZW1hCi0gICAgICAgICAg T3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVs ZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVz dHB1YjFfZm9yc2NoZW1hCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxl cyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVu Y2F0ZXMgfCBTZXF1ZW5jZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf cHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgdCAgICAgICAgIHwgZgogVGFi bGVzIGZyb20gc2NoZW1hczoKICAgICAicHViX3Rlc3QxIgogCkBAIC0xMDA4LDI5ICsxNTE0 LDI5IEBAIFRhYmxlcyBmcm9tIHNjaGVtYXM6CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi MV9mb3JzY2hlbWEgRFJPUCBBTEwgVEFCTEVTIElOIFNDSEVNQSBub25fZXhpc3RlbnRfc2No ZW1hOwogRVJST1I6ICBzY2hlbWEgIm5vbl9leGlzdGVudF9zY2hlbWEiIGRvZXMgbm90IGV4 aXN0CiBcZFJwKyB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAgICAgICBPd25l ciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVz IHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHVi MV9mb3JzY2hlbWEKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwg QWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRl cyB8IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJs aWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCB0ICAgICAgICAgfCBmCiBUYWJsZXMg ZnJvbSBzY2hlbWFzOgogICAgICJwdWJfdGVzdDEiCiAKIC0tIGRyb3AgYWxsIHNjaGVtYXMK IEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWIxX2ZvcnNjaGVtYSBEUk9QIEFMTCBUQUJMRVMg SU4gU0NIRU1BIHB1Yl90ZXN0MTsKIFxkUnArIHRlc3RwdWIxX2ZvcnNjaGVtYQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIxX2ZvcnNjaGVt YQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwg VXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2Vy IHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg ICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1 YmxpY2F0aW9uIHRlc3RwdWIxX2ZvcnNjaGVtYQorICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBE ZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IHQgICAg ICAgICB8IGYKICgxIHJvdykKIAogLS0gYWx0ZXIgcHVibGljYXRpb24gc2V0IG11bHRpcGxl IHNjaGVtYQogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1YjFfZm9yc2NoZW1hIFNFVCBBTEwg VEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDEsIHB1Yl90ZXN0MjsKIFxkUnArIHRlc3RwdWIx X2ZvcnNjaGVtYQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9u IHRlc3RwdWIxX2ZvcnNjaGVtYQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0 YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEg cm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVz c19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIxX2ZvcnNjaGVtYQorICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5z ZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlh IHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgICB8IHQgICAgICAgICB8IGYKIFRhYmxlcyBmcm9tIHNjaGVtYXM6CiAgICAg InB1Yl90ZXN0MSIKICAgICAicHViX3Rlc3QyIgpAQCAtMTAzOSwxMCArMTU0NSwxMCBAQCBU YWJsZXMgZnJvbSBzY2hlbWFzOgogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1YjFfZm9yc2No ZW1hIFNFVCBBTEwgVEFCTEVTIElOIFNDSEVNQSBub25fZXhpc3RlbnRfc2NoZW1hOwogRVJS T1I6ICBzY2hlbWEgIm5vbl9leGlzdGVudF9zY2hlbWEiIGRvZXMgbm90IGV4aXN0CiBcZFJw KyB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ dWJsaWNhdGlvbiB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNh dGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMV9mb3JzY2hl bWEKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVl bmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFNlcXVl bmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91 c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgICAgfCB0ICAgICAgICAgfCBmCiBUYWJsZXMgZnJvbSBzY2hl bWFzOgogICAgICJwdWJfdGVzdDEiCiAgICAgInB1Yl90ZXN0MiIKQEAgLTEwNTEsMTAgKzE1 NTcsMTAgQEAgVGFibGVzIGZyb20gc2NoZW1hczoKIC0tIHJlbW92aW5nIHRoZSBkdXBsaWNh dGUgc2NoZW1hcwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1YjFfZm9yc2NoZW1hIFNFVCBB TEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDEsIHB1Yl90ZXN0MTsKIFxkUnArIHRlc3Rw dWIxX2ZvcnNjaGVtYQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0 aW9uIHRlc3RwdWIxX2ZvcnNjaGVtYQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFs bCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBW aWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVn cmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIxX2ZvcnNjaGVtYQorICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwg SW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwg VmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBm ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgICB8IHQgICAgICAgICB8IGYKIFRhYmxlcyBmcm9tIHNjaGVtYXM6CiAg ICAgInB1Yl90ZXN0MSIKIApAQCAtMTEyNCwxOCArMTYzMCwxOCBAQCBTRVQgY2xpZW50X21p bl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1YjNfZm9y c2NoZW1hOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIFxkUnArIHRlc3RwdWIzX2Zv cnNjaGVtYQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRl c3RwdWIzX2ZvcnNjaGVtYQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJs ZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9v dCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19w dWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIzX2ZvcnNjaGVtYQorICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0 cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlhIHJv b3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgICB8IHQgICAgICAgICB8IGYKICgxIHJvdykKIAogQUxURVIgUFVCTElDQVRJT04g dGVzdHB1YjNfZm9yc2NoZW1hIFNFVCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDE7 CiBcZFJwKyB0ZXN0cHViM19mb3JzY2hlbWEKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViM19mb3JzY2hlbWEKLSAgICAgICAgICBPd25lciAg ICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwg VHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViM19m b3JzY2hlbWEKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxs IHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8 IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNh dGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCB0ICAgICAgICAgfCBmCiBUYWJsZXMgZnJv bSBzY2hlbWFzOgogICAgICJwdWJfdGVzdDEiCiAKQEAgLTExNDUsMjAgKzE2NTEsMjAgQEAg Q1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yc2NoZW1hX2ZvcnRhYmxlIEZPUiBBTEwg VEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDEKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHVi X2ZvcnRhYmxlX2ZvcnNjaGVtYSBGT1IgVEFCTEUgcHViX3Rlc3QyLnRibDEsIEFMTCBUQUJM RVMgSU4gU0NIRU1BIHB1Yl90ZXN0MTsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBc ZFJwKyB0ZXN0cHViX2ZvcnNjaGVtYV9mb3J0YWJsZQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9mb3JzY2hlbWFfZm9ydGFibGUKLSAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBE ZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3Rw dWJfZm9yc2NoZW1hX2ZvcnRhYmxlCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxs IHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMg fCBUcnVuY2F0ZXMgfCBTZXF1ZW5jZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJl Z3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgdCAgICAgICAgIHwg ZgogVGFibGVzOgogICAgICJwdWJfdGVzdDIudGJsMSIKIFRhYmxlcyBmcm9tIHNjaGVtYXM6 CiAgICAgInB1Yl90ZXN0MSIKIAogXGRScCsgdGVzdHB1Yl9mb3J0YWJsZV9mb3JzY2hlbWEK LSAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZm9ydGFi bGVfZm9yc2NoZW1hCi0gICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8 IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3B1Ymxp Y2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnRhYmxlX2ZvcnNjaGVtYQorICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0 cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlhIHJv b3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgICB8IHQgICAgICAgICB8IGYKIFRhYmxlczoKICAgICAicHViX3Rlc3QyLnRibDEi CiBUYWJsZXMgZnJvbSBzY2hlbWFzOgpAQCAtMTIwMiw0MCArMTcwOCw4NSBAQCBDUkVBVEUg U0NIRU1BIHNjaDE7CiBDUkVBVEUgU0NIRU1BIHNjaDI7CiBDUkVBVEUgVEFCTEUgc2NoMS50 YmwxIChhIGludCkgUEFSVElUSU9OIEJZIFJBTkdFKGEpOwogQ1JFQVRFIFRBQkxFIHNjaDIu dGJsMV9wYXJ0MSBQQVJUSVRJT04gT0Ygc2NoMS50YmwxIEZPUiBWQUxVRVMgRlJPTSAoMSkg dG8gKDEwKTsKK0NSRUFURSBTRVFVRU5DRSBzY2gxLnNlcTE7CitDUkVBVEUgU0VRVUVOQ0Ug c2NoMi5zZXEyOwogLS0gU2NoZW1hIHB1YmxpY2F0aW9uIHRoYXQgZG9lcyBub3QgaW5jbHVk ZSB0aGUgc2NoZW1hIHRoYXQgaGFzIHRoZSBwYXJlbnQgdGFibGUKIENSRUFURSBQVUJMSUNB VElPTiBwdWIgRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHNjaDIgV0lUSCAoUFVCTElTSF9W SUFfUEFSVElUSU9OX1JPT1Q9MSk7CitBTFRFUiBQVUJMSUNBVElPTiBwdWIgQUREIEFMTCBT RVFVRU5DRVMgSU4gU0NIRU1BIHNjaDI7CiBTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9u X3RhYmxlczsKICBwdWJuYW1lIHwgc2NoZW1hbmFtZSB8IHRhYmxlbmFtZSAgCiAtLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQogIHB1YiAgICAgfCBzY2gyICAgICAgIHwg dGJsMV9wYXJ0MQogKDEgcm93KQogCitTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3Nl cXVlbmNlczsKKyBwdWJuYW1lIHwgc2NoZW1hbmFtZSB8IHNlcXVlbmNlbmFtZSAKKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KKyBwdWIgICAgIHwgc2NoMiAgICAg ICB8IHNlcTIKKygxIHJvdykKKwogRFJPUCBQVUJMSUNBVElPTiBwdWI7CiAtLSBUYWJsZSBw dWJsaWNhdGlvbiB0aGF0IGRvZXMgbm90IGluY2x1ZGUgdGhlIHBhcmVudCB0YWJsZQogQ1JF QVRFIFBVQkxJQ0FUSU9OIHB1YiBGT1IgVEFCTEUgc2NoMi50YmwxX3BhcnQxIFdJVEggKFBV QkxJU0hfVklBX1BBUlRJVElPTl9ST09UPTEpOworQUxURVIgUFVCTElDQVRJT04gcHViIEFE RCBTRVFVRU5DRSBzY2gyLnNlcTI7CiBTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3Rh YmxlczsKICBwdWJuYW1lIHwgc2NoZW1hbmFtZSB8IHRhYmxlbmFtZSAgCiAtLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQogIHB1YiAgICAgfCBzY2gyICAgICAgIHwgdGJs MV9wYXJ0MQogKDEgcm93KQogCitTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3NlcXVl bmNlczsKKyBwdWJuYW1lIHwgc2NoZW1hbmFtZSB8IHNlcXVlbmNlbmFtZSAKKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KKyBwdWIgICAgIHwgc2NoMiAgICAgICB8 IHNlcTIKKygxIHJvdykKKwogLS0gVGFibGUgcHVibGljYXRpb24gdGhhdCBpbmNsdWRlcyBi b3RoIHRoZSBwYXJlbnQgdGFibGUgYW5kIHRoZSBjaGlsZCB0YWJsZQogQUxURVIgUFVCTElD QVRJT04gcHViIEFERCBUQUJMRSBzY2gxLnRibDE7CitBTFRFUiBQVUJMSUNBVElPTiBwdWIg QUREIFNFUVVFTkNFIHNjaDEuc2VxMTsKIFNFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25f dGFibGVzOwogIHB1Ym5hbWUgfCBzY2hlbWFuYW1lIHwgdGFibGVuYW1lIAogLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQogIHB1YiAgICAgfCBzY2gxICAgICAgIHwgdGJs MQogKDEgcm93KQogCitTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3NlcXVlbmNlczsK KyBwdWJuYW1lIHwgc2NoZW1hbmFtZSB8IHNlcXVlbmNlbmFtZSAKKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KKyBwdWIgICAgIHwgc2NoMSAgICAgICB8IHNlcTEK KyBwdWIgICAgIHwgc2NoMiAgICAgICB8IHNlcTIKKygyIHJvd3MpCisKIERST1AgUFVCTElD QVRJT04gcHViOwogLS0gU2NoZW1hIHB1YmxpY2F0aW9uIHRoYXQgZG9lcyBub3QgaW5jbHVk ZSB0aGUgc2NoZW1hIHRoYXQgaGFzIHRoZSBwYXJlbnQgdGFibGUKIENSRUFURSBQVUJMSUNB VElPTiBwdWIgRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHNjaDIgV0lUSCAoUFVCTElTSF9W SUFfUEFSVElUSU9OX1JPT1Q9MCk7CitBTFRFUiBQVUJMSUNBVElPTiBwdWIgQUREIFNFUVVF TkNFIHNjaDEuc2VxMTsKIFNFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25fdGFibGVzOwog IHB1Ym5hbWUgfCBzY2hlbWFuYW1lIHwgdGFibGVuYW1lICAKIC0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tCiAgcHViICAgICB8IHNjaDIgICAgICAgfCB0YmwxX3BhcnQx CiAoMSByb3cpCiAKK1NFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25fc2VxdWVuY2VzOwor IHB1Ym5hbWUgfCBzY2hlbWFuYW1lIHwgc2VxdWVuY2VuYW1lIAorLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLQorIHB1YiAgICAgfCBzY2gxICAgICAgIHwgc2VxMQor KDEgcm93KQorCitEUk9QIFBVQkxJQ0FUSU9OIHB1YjsKKy0tIFNlcXVlbmNlIHB1YmxpY2F0 aW9uCitDUkVBVEUgUFVCTElDQVRJT04gcHViIEZPUiBTRVFVRU5DRSBzY2gyLnNlcTI7CitT RUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3RhYmxlczsKKyBwdWJuYW1lIHwgc2NoZW1h bmFtZSB8IHRhYmxlbmFtZSAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0K KygwIHJvd3MpCisKK1NFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25fc2VxdWVuY2VzOwor IHB1Ym5hbWUgfCBzY2hlbWFuYW1lIHwgc2VxdWVuY2VuYW1lIAorLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLQorIHB1YiAgICAgfCBzY2gyICAgICAgIHwgc2VxMgor KDEgcm93KQorCiBEUk9QIFBVQkxJQ0FUSU9OIHB1YjsKIC0tIFRhYmxlIHB1YmxpY2F0aW9u IHRoYXQgZG9lcyBub3QgaW5jbHVkZSB0aGUgcGFyZW50IHRhYmxlCiBDUkVBVEUgUFVCTElD QVRJT04gcHViIEZPUiBUQUJMRSBzY2gyLnRibDFfcGFydDEgV0lUSCAoUFVCTElTSF9WSUFf UEFSVElUSU9OX1JPT1Q9MCk7CkBAIC0xMjQ1LDE0ICsxNzk2LDI2IEBAIFNFTEVDVCAqIEZS T00gcGdfcHVibGljYXRpb25fdGFibGVzOwogIHB1YiAgICAgfCBzY2gyICAgICAgIHwgdGJs MV9wYXJ0MQogKDEgcm93KQogCitTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3NlcXVl bmNlczsKKyBwdWJuYW1lIHwgc2NoZW1hbmFtZSB8IHNlcXVlbmNlbmFtZSAKKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKIC0tIFRhYmxlIHB1 YmxpY2F0aW9uIHRoYXQgaW5jbHVkZXMgYm90aCB0aGUgcGFyZW50IHRhYmxlIGFuZCB0aGUg Y2hpbGQgdGFibGUKIEFMVEVSIFBVQkxJQ0FUSU9OIHB1YiBBREQgVEFCTEUgc2NoMS50Ymwx OworQUxURVIgUFVCTElDQVRJT04gcHViIEFERCBBTEwgU0VRVUVOQ0VTIElOIFNDSEVNQSBz Y2gyOwogU0VMRUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl90YWJsZXM7CiAgcHVibmFtZSB8 IHNjaGVtYW5hbWUgfCB0YWJsZW5hbWUgIAogLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0KICBwdWIgICAgIHwgc2NoMiAgICAgICB8IHRibDFfcGFydDEKICgxIHJvdykK IAorU0VMRUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl9zZXF1ZW5jZXM7CisgcHVibmFtZSB8 IHNjaGVtYW5hbWUgfCBzZXF1ZW5jZW5hbWUgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tCisgcHViICAgICB8IHNjaDIgICAgICAgfCBzZXEyCisoMSByb3cpCisK IERST1AgUFVCTElDQVRJT04gcHViOwogRFJPUCBUQUJMRSBzY2gyLnRibDFfcGFydDE7CiBE Uk9QIFRBQkxFIHNjaDEudGJsMTsKQEAgLTEyNjgsOSArMTgzMSw4MSBAQCBTRUxFQ1QgKiBG Uk9NIHBnX3B1YmxpY2F0aW9uX3RhYmxlczsKICBwdWIgICAgIHwgc2NoMSAgICAgICB8IHRi bDEKICgxIHJvdykKIAorU0VMRUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl9zZXF1ZW5jZXM7 CisgcHVibmFtZSB8IHNjaGVtYW5hbWUgfCBzZXF1ZW5jZW5hbWUgCistLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCisoMCByb3dzKQorCitEUk9QIFBVQkxJQ0FUSU9O IHB1YjsKKy0tIFNjaGVtYSBwdWJsaWNhdGlvbgorQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YiBG T1IgU0VRVUVOQ0Ugc2NoMi5zZXEyOworU0VMRUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl90 YWJsZXM7CisgcHVibmFtZSB8IHNjaGVtYW5hbWUgfCB0YWJsZW5hbWUgCistLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisoMCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHBn X3B1YmxpY2F0aW9uX3NlcXVlbmNlczsKKyBwdWJuYW1lIHwgc2NoZW1hbmFtZSB8IHNlcXVl bmNlbmFtZSAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KKyBwdWIg ICAgIHwgc2NoMiAgICAgICB8IHNlcTIKKygxIHJvdykKKworRFJPUCBQVUJMSUNBVElPTiBw dWI7CistLSBTZXF1ZW5jZSBwdWJsaWNhdGlvbgorQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YiBG T1IgQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEgc2NoMjsKK1NFTEVDVCAqIEZST00gcGdfcHVi bGljYXRpb25fdGFibGVzOworIHB1Ym5hbWUgfCBzY2hlbWFuYW1lIHwgdGFibGVuYW1lIAor LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorKDAgcm93cykKKworU0VMRUNU ICogRlJPTSBwZ19wdWJsaWNhdGlvbl9zZXF1ZW5jZXM7CisgcHVibmFtZSB8IHNjaGVtYW5h bWUgfCBzZXF1ZW5jZW5hbWUgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tCisgcHViICAgICB8IHNjaDIgICAgICAgfCBzZXEyCisoMSByb3cpCisKK0FMVEVSIFBV QkxJQ0FUSU9OIHB1YiBBREQgU0VRVUVOQ0Ugc2NoMS5zZXExOworU0VMRUNUICogRlJPTSBw Z19wdWJsaWNhdGlvbl90YWJsZXM7CisgcHVibmFtZSB8IHNjaGVtYW5hbWUgfCB0YWJsZW5h bWUgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisoMCByb3dzKQorCitT RUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3NlcXVlbmNlczsKKyBwdWJuYW1lIHwgc2No ZW1hbmFtZSB8IHNlcXVlbmNlbmFtZSAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0KKyBwdWIgICAgIHwgc2NoMSAgICAgICB8IHNlcTEKKyBwdWIgICAgIHwgc2No MiAgICAgICB8IHNlcTIKKygyIHJvd3MpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHB1YiBEUk9Q IFNFUVVFTkNFIHNjaDEuc2VxMTsKK1NFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25fdGFi bGVzOworIHB1Ym5hbWUgfCBzY2hlbWFuYW1lIHwgdGFibGVuYW1lIAorLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLQorKDAgcm93cykKKworU0VMRUNUICogRlJPTSBwZ19w dWJsaWNhdGlvbl9zZXF1ZW5jZXM7CisgcHVibmFtZSB8IHNjaGVtYW5hbWUgfCBzZXF1ZW5j ZW5hbWUgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCisgcHViICAg ICB8IHNjaDIgICAgICAgfCBzZXEyCisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHB1 YiBBREQgQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEgc2NoMTsKK1NFTEVDVCAqIEZST00gcGdf cHVibGljYXRpb25fdGFibGVzOworIHB1Ym5hbWUgfCBzY2hlbWFuYW1lIHwgdGFibGVuYW1l IAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorKDAgcm93cykKKworU0VM RUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl9zZXF1ZW5jZXM7CisgcHVibmFtZSB8IHNjaGVt YW5hbWUgfCBzZXF1ZW5jZW5hbWUgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tCisgcHViICAgICB8IHNjaDEgICAgICAgfCBzZXExCisgcHViICAgICB8IHNjaDIg ICAgICAgfCBzZXEyCisoMiByb3dzKQorCiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwog RFJPUCBQVUJMSUNBVElPTiBwdWI7CiBEUk9QIFRBQkxFIHNjaDEudGJsMTsKK0RST1AgU0VR VUVOQ0Ugc2NoMS5zZXExLCBzY2gyLnNlcTI7CiBEUk9QIFNDSEVNQSBzY2gxIGNhc2NhZGU7 CiBEUk9QIFNDSEVNQSBzY2gyIGNhc2NhZGU7CiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJ T047CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CmluZGV4IGFjNDY4NTY4YTFh Li5lZjMyOGQzNTZiYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y dWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAg LTE0MjksNiArMTQyOSwxNCBAQCBwZ19wcmVwYXJlZF94YWN0c3wgU0VMRUNUIHAudHJhbnNh Y3Rpb24sCiAgICBGUk9NICgocGdfcHJlcGFyZWRfeGFjdCgpIHAodHJhbnNhY3Rpb24sIGdp ZCwgcHJlcGFyZWQsIG93bmVyaWQsIGRiaWQpCiAgICAgIExFRlQgSk9JTiBwZ19hdXRoaWQg dSBPTiAoKHAub3duZXJpZCA9IHUub2lkKSkpCiAgICAgIExFRlQgSk9JTiBwZ19kYXRhYmFz ZSBkIE9OICgocC5kYmlkID0gZC5vaWQpKSk7CitwZ19wdWJsaWNhdGlvbl9zZXF1ZW5jZXN8 IFNFTEVDVCBwLnB1Ym5hbWUsCisgICAgbi5uc3BuYW1lIEFTIHNjaGVtYW5hbWUsCisgICAg Yy5yZWxuYW1lIEFTIHNlcXVlbmNlbmFtZQorICAgRlJPTSBwZ19wdWJsaWNhdGlvbiBwLAor ICAgIExBVEVSQUwgcGdfZ2V0X3B1YmxpY2F0aW9uX3NlcXVlbmNlcygocC5wdWJuYW1lKTo6 dGV4dCkgZ3BzKHJlbGlkKSwKKyAgICAocGdfY2xhc3MgYworICAgICBKT0lOIHBnX25hbWVz cGFjZSBuIE9OICgobi5vaWQgPSBjLnJlbG5hbWVzcGFjZSkpKQorICBXSEVSRSAoYy5vaWQg PSBncHMucmVsaWQpOwogcGdfcHVibGljYXRpb25fdGFibGVzfCBTRUxFQ1QgcC5wdWJuYW1l LAogICAgIG4ubnNwbmFtZSBBUyBzY2hlbWFuYW1lLAogICAgIGMucmVsbmFtZSBBUyB0YWJs ZW5hbWUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29iamVjdF9hZGRyZXNz LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29iamVjdF9hZGRyZXNzLnNxbAppbmRleCBh Y2QwNDY4YTlkOS4uOWQ4MzIzNDY4ZDYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL29iamVjdF9hZGRyZXNzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9vYmpl Y3RfYWRkcmVzcy5zcWwKQEAgLTQ5LDYgKzQ5LDcgQEAgQ1JFQVRFIFRSQU5TRk9STSBGT1Ig aW50IExBTkdVQUdFIFNRTCAoCiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7 CiBDUkVBVEUgUFVCTElDQVRJT04gYWRkcl9wdWIgRk9SIFRBQkxFIGFkZHJfbnNwLmdlbnRh YmxlOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIGFkZHJfcHViX3NjaGVtYSBGT1IgQUxMIFRBQkxF UyBJTiBTQ0hFTUEgYWRkcl9uc3A7CitDUkVBVEUgUFVCTElDQVRJT04gYWRkcl9wdWJfc2No ZW1hMiBGT1IgQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEgYWRkcl9uc3A7CiBSRVNFVCBjbGll bnRfbWluX21lc3NhZ2VzOwogQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2FkZHJfc3Vi IENPTk5FQ1RJT04gJycgUFVCTElDQVRJT04gYmFyIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwg c2xvdF9uYW1lID0gTk9ORSk7CiBDUkVBVEUgU1RBVElTVElDUyBhZGRyX25zcC5nZW50YWJs ZV9zdGF0IE9OIGEsIGIgRlJPTSBhZGRyX25zcC5nZW50YWJsZTsKQEAgLTE5OCw3ICsxOTks OCBAQCBXSVRIIG9iamVjdHMgKHR5cGUsIG5hbWUsIGFyZ3MpIEFTIChWQUxVRVMKIAkJCQko J3RyYW5zZm9ybScsICd7aW50fScsICd7c3FsfScpLAogCQkJCSgnYWNjZXNzIG1ldGhvZCcs ICd7YnRyZWV9JywgJ3t9JyksCiAJCQkJKCdwdWJsaWNhdGlvbicsICd7YWRkcl9wdWJ9Jywg J3t9JyksCi0JCQkJKCdwdWJsaWNhdGlvbiBuYW1lc3BhY2UnLCAne2FkZHJfbnNwfScsICd7 YWRkcl9wdWJfc2NoZW1hfScpLAorCQkJCSgncHVibGljYXRpb24gbmFtZXNwYWNlJywgJ3th ZGRyX25zcH0nLCAne2FkZHJfcHViX3NjaGVtYSx0fScpLAorCQkJCSgncHVibGljYXRpb24g bmFtZXNwYWNlJywgJ3thZGRyX25zcH0nLCAne2FkZHJfcHViX3NjaGVtYTIsc30nKSwKIAkJ CQkoJ3B1YmxpY2F0aW9uIHJlbGF0aW9uJywgJ3thZGRyX25zcCwgZ2VudGFibGV9JywgJ3th ZGRyX3B1Yn0nKSwKIAkJCQkoJ3N1YnNjcmlwdGlvbicsICd7cmVncmVzc19hZGRyX3N1Yn0n LCAne30nKSwKIAkJCQkoJ3N0YXRpc3RpY3Mgb2JqZWN0JywgJ3thZGRyX25zcCwgZ2VudGFi bGVfc3RhdH0nLCAne30nKQpAQCAtMjE4LDYgKzIyMCw3IEBAIFNFTEVDVCAocGdfaWRlbnRp Znlfb2JqZWN0KGFkZHIxLmNsYXNzaWQsIGFkZHIxLm9iamlkLCBhZGRyMS5vYmpzdWJpZCkp LiosCiBEUk9QIEZPUkVJR04gREFUQSBXUkFQUEVSIGFkZHJfZmR3IENBU0NBREU7CiBEUk9Q IFBVQkxJQ0FUSU9OIGFkZHJfcHViOwogRFJPUCBQVUJMSUNBVElPTiBhZGRyX3B1Yl9zY2hl bWE7CitEUk9QIFBVQkxJQ0FUSU9OIGFkZHJfcHViX3NjaGVtYTI7CiBEUk9QIFNVQlNDUklQ VElPTiByZWdyZXNzX2FkZHJfc3ViOwogCiBEUk9QIFNDSEVNQSBhZGRyX25zcCBDQVNDQURF OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IDU0NTdjNTZiMzNm Li5jMTk1ZTc1YzZmMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGlj YXRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbApA QCAtMjcsNyArMjcsNyBAQCBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl94eHggV0lUSCAo cHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSAndHJ1ZScsIHB1YmxpcwogCiBcZFJwCiAK LUFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGVmYXVsdCBTRVQgKHB1Ymxpc2ggPSAnaW5z ZXJ0LCB1cGRhdGUsIGRlbGV0ZScpOworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9kZWZh dWx0IFNFVCAocHVibGlzaCA9ICdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCBzZXF1ZW5jZScp OwogCiBcZFJwCiAKQEAgLTQ2LDYgKzQ2LDggQEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9mb3JhbGx0YWJsZXMgU0VUIChwdWJsaXNoID0gJ2luc2VydCwgdXBkYXRlJyk7CiBDUkVB VEUgVEFCTEUgdGVzdHB1Yl90YmwyIChpZCBzZXJpYWwgcHJpbWFyeSBrZXksIGRhdGEgdGV4 dCk7CiAtLSBmYWlsIC0gY2FuJ3QgYWRkIHRvIGZvciBhbGwgdGFibGVzIHB1YmxpY2F0aW9u CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcyBBREQgVEFCTEUgdGVz dHB1Yl90YmwyOworLS0gZmFpbCAtIGNhbid0IGFkZCBhIHRhYmxlIHVzaW5nIEFERCBTRVFV RU5DRSBjb21tYW5kCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcyBB REQgU0VRVUVOQ0UgdGVzdHB1Yl90YmwyOwogLS0gZmFpbCAtIGNhbid0IGRyb3AgZnJvbSBh bGwgdGFibGVzIHB1YmxpY2F0aW9uCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFs bHRhYmxlcyBEUk9QIFRBQkxFIHRlc3RwdWJfdGJsMjsKIC0tIGZhaWwgLSBjYW4ndCBhZGQg dG8gZm9yIGFsbCB0YWJsZXMgcHVibGljYXRpb24KQEAgLTEwNCw2ICsxMDYsMTgzIEBAIFJF U0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBEUk9QIFRBQkxFIHRlc3RwdWJfdGJsMywgdGVz dHB1Yl90YmwzYTsKIERST1AgUFVCTElDQVRJT04gdGVzdHB1YjMsIHRlc3RwdWI0OwogCist LS0gYWRkaW5nIHNlcXVlbmNlcworQ1JFQVRFIFNFUVVFTkNFIHRlc3RwdWJfc2VxMDsKK0NS RUFURSBTRVFVRU5DRSBwdWJfdGVzdC50ZXN0cHViX3NlcTE7CisKK1NFVCBjbGllbnRfbWlu X21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFs bHNlcXVlbmNlcyBGT1IgQUxMIFNFUVVFTkNFUyBXSVRIIChwdWJsaXNoID0gJ3NlcXVlbmNl Jyk7CitSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOworQUxURVIgUFVCTElDQVRJT04gdGVz dHB1Yl9mb3JhbGxzZXF1ZW5jZXMgU0VUIChwdWJsaXNoID0gJ2luc2VydCwgc2VxdWVuY2Un KTsKKworQ1JFQVRFIFNFUVVFTkNFIHRlc3RwdWJfc2VxMjsKKy0tIGZhaWwgLSBjYW4ndCBh ZGQgdG8gZm9yIGFsbCBzZXF1ZW5jZXMgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfZm9yYWxsc2VxdWVuY2VzIEFERCBTRVFVRU5DRSB0ZXN0cHViX3NlcTI7Cist LSBmYWlsIC0gY2FuJ3QgZHJvcCBmcm9tIGFsbCBzZXF1ZW5jZXMgcHVibGljYXRpb24KK0FM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsc2VxdWVuY2VzIERST1AgU0VRVUVOQ0Ug dGVzdHB1Yl9zZXEyOworLS0gZmFpbCAtIGNhbid0IGFkZCB0byBmb3IgYWxsIHNlcXVlbmNl cyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGxzZXF1ZW5j ZXMgU0VUIFNFUVVFTkNFIHB1Yl90ZXN0LnRlc3RwdWJfc2VxMTsKKworLS0gZmFpbCAtIGNh bid0IGFkZCBzY2hlbWEgdG8gJ0ZPUiBBTEwgU0VRVUVOQ0VTJyBwdWJsaWNhdGlvbgorQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGxzZXF1ZW5jZXMgQUREIEFMTCBTRVFVRU5D RVMgSU4gU0NIRU1BIHB1Yl90ZXN0OworLS0gZmFpbCAtIGNhbid0IGRyb3Agc2NoZW1hIGZy b20gJ0ZPUiBBTEwgU0VRVUVOQ0VTJyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9mb3JhbGxzZXF1ZW5jZXMgRFJPUCBBTEwgU0VRVUVOQ0VTIElOIFNDSEVNQSBw dWJfdGVzdDsKKy0tIGZhaWwgLSBjYW4ndCBzZXQgc2NoZW1hIHRvICdGT1IgQUxMIFNFUVVF TkNFUycgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsc2Vx dWVuY2VzIFNFVCBBTEwgU0VRVUVOQ0VTIElOIFNDSEVNQSBwdWJfdGVzdDsKKworU0VUIGNs aWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfZm9yc2VxdWVuY2UgRk9SIFNFUVVFTkNFIHRlc3RwdWJfc2VxMDsKK1JFU0VUIGNsaWVu dF9taW5fbWVzc2FnZXM7CistLSBzaG91bGQgYmUgYWJsZSB0byBhZGQgc2NoZW1hIHRvICdG T1IgU0VRVUVOQ0UnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2Zv cnNlcXVlbmNlIEFERCBBTEwgU0VRVUVOQ0VTIElOIFNDSEVNQSBwdWJfdGVzdDsKK1xkUnAr IHRlc3RwdWJfZm9yc2VxdWVuY2UKKy0tIGZhaWwgLSBjYW4ndCBhZGQgc2VxdWVuY2UgZnJv bSB0aGUgc2NoZW1hIHdlIGFscmVhZHkgYWRkZWQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfZm9yc2VxdWVuY2UgQUREIFNFUVVFTkNFIHB1Yl90ZXN0LnRlc3RwdWJfc2VxMTsKKy0t IGZhaWwgLSBjYW4ndCBhZGQgc2VxdWVuY2UgdXNpbmcgQUREIFRBQkxFIGNvbW1hbmQKK0FM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yc2VxdWVuY2UgQUREIFRBQkxFIHB1Yl90ZXN0 LnRlc3RwdWJfc2VxMTsKKy0tIHNob3VsZCBiZSBhYmxlIHRvIGRyb3Agc2NoZW1hIGZyb20g J0ZPUiBTRVFVRU5DRScgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf Zm9yc2VxdWVuY2UgRFJPUCBBTEwgU0VRVUVOQ0VTIElOIFNDSEVNQSBwdWJfdGVzdDsKK1xk UnArIHRlc3RwdWJfZm9yc2VxdWVuY2UKKy0tIHNob3VsZCBiZSBhYmxlIHRvIHNldCBzY2hl bWEgdG8gJ0ZPUiBTRVFVRU5DRScgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfZm9yc2VxdWVuY2UgU0VUIEFMTCBTRVFVRU5DRVMgSU4gU0NIRU1BIHB1Yl90ZXN0 OworXGRScCsgdGVzdHB1Yl9mb3JzZXF1ZW5jZQorCitTRVQgY2xpZW50X21pbl9tZXNzYWdl cyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JzY2hlbWEgRk9S IEFMTCBTRVFVRU5DRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OworUkVTRVQgY2xpZW50X21pbl9t ZXNzYWdlczsKKy0tIGZhaWwgLSBjYW4ndCBjcmVhdGUgcHVibGljYXRpb24gd2l0aCBzY2hl bWEgYW5kIHNlcXVlbmNlIG9mIHRoZSBzYW1lIHNjaGVtYQorQ1JFQVRFIFBVQkxJQ0FUSU9O IHRlc3RwdWJfZm9yX3NlcV9zY2hlbWEgRk9SIEFMTCBTRVFVRU5DRVMgSU4gU0NIRU1BIHB1 Yl90ZXN0LCBTRVFVRU5DRSBwdWJfdGVzdC50ZXN0cHViX3NlcTE7CistLSBmYWlsIC0gY2Fu J3QgYWRkIGEgc2VxdWVuY2Ugb2YgdGhlIHNhbWUgc2NoZW1hIHRvIHRoZSBzY2hlbWEgcHVi bGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yc2NoZW1hIEFERCBTRVFV RU5DRSBwdWJfdGVzdC50ZXN0cHViX3NlcTE7CistLSBmYWlsIC0gY2FuJ3QgZHJvcCBhIHNl cXVlbmNlIGZyb20gdGhlIHNjaGVtYSBwdWJsaWNhdGlvbiB3aGljaCBpc24ndCBpbiB0aGUK Ky0tIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnNjaGVtYSBE Uk9QIFNFUVVFTkNFIHB1Yl90ZXN0LnRlc3RwdWJfc2VxMTsKKy0tIHNob3VsZCBiZSBhYmxl IHRvIHNldCBzZXF1ZW5jZSB0byBzY2hlbWEgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfZm9yc2NoZW1hIFNFVCBTRVFVRU5DRSBwdWJfdGVzdC50ZXN0cHViX3Nl cTE7CitcZFJwKyB0ZXN0cHViX2ZvcnNjaGVtYQorCitTRUxFQ1QgcHVibmFtZSwgcHViYWxs dGFibGVzLCBwdWJhbGxzZXF1ZW5jZXMgRlJPTSBwZ19wdWJsaWNhdGlvbiBXSEVSRSBwdWJu YW1lID0gJ3Rlc3RwdWJfZm9yYWxsc2VxdWVuY2VzJzsKK1xkKyBwdWJfdGVzdC50ZXN0cHVi X3NlcTEKK1xkUnArIHRlc3RwdWJfZm9yYWxsc2VxdWVuY2VzCitEUk9QIFNFUVVFTkNFIHRl c3RwdWJfc2VxMCwgcHViX3Rlc3QudGVzdHB1Yl9zZXExLCB0ZXN0cHViX3NlcTI7CitEUk9Q IFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsc2VxdWVuY2VzLCB0ZXN0cHViX2ZvcnNlcXVl bmNlLCB0ZXN0cHViX2ZvcnNjaGVtYTsKKworLS0gUHVibGljYXRpb24gbWl4aW5nIHRhYmxl cyBhbmQgc2VxdWVuY2VzCitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitD UkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9taXg7CitSRVNFVCBjbGllbnRfbWluX21lc3Nh Z2VzOworCitDUkVBVEUgU0VRVUVOQ0UgdGVzdHB1Yl9zZXExOworQ1JFQVRFIFNFUVVFTkNF IHB1Yl90ZXN0LnRlc3RwdWJfc2VxMjsKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9t aXggQUREIFNFUVVFTkNFIHRlc3RwdWJfc2VxMSwgVEFCTEUgdGVzdHB1Yl90YmwxOworXGRS cCsgdGVzdHB1Yl9taXgKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9taXggQUREIEFM TCBTRVFVRU5DRVMgSU4gU0NIRU1BIHB1Yl90ZXN0LCBBTEwgVEFCTEVTIElOIFNDSEVNQSBw dWJfdGVzdDsKK1xkUnArIHRlc3RwdWJfbWl4CisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfbWl4IERST1AgQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CitcZFJwKyB0 ZXN0cHViX21peAorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX21peCBEUk9QIEFMTCBU QUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OworXGRScCsgdGVzdHB1Yl9taXgKKworRFJPUCBQ VUJMSUNBVElPTiB0ZXN0cHViX21peDsKK0RST1AgU0VRVUVOQ0UgdGVzdHB1Yl9zZXExOwor RFJPUCBTRVFVRU5DRSBwdWJfdGVzdC50ZXN0cHViX3NlcTI7CisKKworLS0gbWFrZSBzdXJl IHdlIHJlcGxpY2F0ZSBvbmx5IHRoZSBjb3JyZWN0IHJlbGF0aW9uIHR5cGUKK0NSRUFURSBT Q0hFTUEgcHViX3Rlc3QxOworQ1JFQVRFIFNFUVVFTkNFIHB1Yl90ZXN0MS50ZXN0X3NlcTE7 CitDUkVBVEUgVEFCTEUgcHViX3Rlc3QxLnRlc3RfdGJsMSAoYSBpbnQgcHJpbWFyeSBrZXks IGIgaW50KTsKKworQ1JFQVRFIFNDSEVNQSBwdWJfdGVzdDI7CitDUkVBVEUgU0VRVUVOQ0Ug cHViX3Rlc3QyLnRlc3Rfc2VxMjsKK0NSRUFURSBUQUJMRSBwdWJfdGVzdDIudGVzdF90Ymwy IChhIGludCBwcmltYXJ5IGtleSwgYiBpbnQpOworCitTRVQgY2xpZW50X21pbl9tZXNzYWdl cyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9zY2hlbWFzOworUkVT RVQgY2xpZW50X21pbl9tZXNzYWdlczsKKworLS0gYWRkIHRhYmxlcyBmcm9tIG9uZSBzY2hl bWEsIHNlcXVlbmNlcyBmcm9tIHRoZSBvdGhlcgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9zY2hlbWFzIEFERCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDI7CitBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYXMgQUREIEFMTCBTRVFVRU5DRVMgSU4gU0NIRU1B IHB1Yl90ZXN0MTsKKworXGRScCsgdGVzdHB1Yl9zY2hlbWFzCisKK1xkbisgcHViX3Rlc3Qx CitcZG4rIHB1Yl90ZXN0MgorCitcZCsgcHViX3Rlc3QxLnRlc3Rfc2VxMTsKK1xkKyBwdWJf dGVzdDEudGVzdF90YmwxOworCitcZCsgcHViX3Rlc3QyLnRlc3Rfc2VxMjsKK1xkKyBwdWJf dGVzdDIudGVzdF90YmwyOworCistLSBhZGQgdGhlIG90aGVyIG9iamVjdCB0eXBlIGZyb20g ZWFjaCBzY2hlbWEKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hcyBBREQgQUxM IFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QxOworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9zY2hlbWFzIEFERCBBTEwgU0VRVUVOQ0VTIElOIFNDSEVNQSBwdWJfdGVzdDI7CisKK1xk UnArIHRlc3RwdWJfc2NoZW1hcworCitcZG4rIHB1Yl90ZXN0MQorXGRuKyBwdWJfdGVzdDIK KworXGQrIHB1Yl90ZXN0MS50ZXN0X3NlcTE7CitcZCsgcHViX3Rlc3QxLnRlc3RfdGJsMTsK KworXGQrIHB1Yl90ZXN0Mi50ZXN0X3NlcTI7CitcZCsgcHViX3Rlc3QyLnRlc3RfdGJsMjsK KworLS0gbm93IGRyb3AgdGhlIG9iamVjdCB0eXBlIGFkZGVkIGZpcnN0CitBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX3NjaGVtYXMgRFJPUCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJf dGVzdDI7CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYXMgRFJPUCBBTEwgU0VR VUVOQ0VTIElOIFNDSEVNQSBwdWJfdGVzdDE7CisKK1xkUnArIHRlc3RwdWJfc2NoZW1hcwor CitcZG4rIHB1Yl90ZXN0MQorXGRuKyBwdWJfdGVzdDIKKworXGQrIHB1Yl90ZXN0MS50ZXN0 X3NlcTE7CitcZCsgcHViX3Rlc3QxLnRlc3RfdGJsMTsKKworXGQrIHB1Yl90ZXN0Mi50ZXN0 X3NlcTI7CitcZCsgcHViX3Rlc3QyLnRlc3RfdGJsMjsKKworLS0gc2hvdWxkIGZhaWwgKHB1 YmxpY2F0aW9uIGNvbnRhaW5zIHRoZSB3aG9sZSBzY2hlbWEpCitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX3NjaGVtYXMgQUREIFRBQkxFIHB1Yl90ZXN0MS50ZXN0X3RibDE7CitBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYXMgQUREIFNFUVVFTkNFIHB1Yl90ZXN0Mi50 ZXN0X3NlcTI7CisKKy0tIHNob3VsZCB3b3JrIChkaWZmZXJlbnQgc2NoZW1hKQorQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9zY2hlbWFzIEFERCBUQUJMRSBwdWJfdGVzdDIudGVzdF90 YmwyOworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9zY2hlbWFzIEFERCBTRVFVRU5DRSBw dWJfdGVzdDEudGVzdF9zZXExOworCitcZFJwKyB0ZXN0cHViX3NjaGVtYXMKKworXGQrIHB1 Yl90ZXN0MS50ZXN0X3NlcTE7CitcZCsgcHViX3Rlc3QxLnRlc3RfdGJsMTsKKworXGQrIHB1 Yl90ZXN0Mi50ZXN0X3NlcTI7CitcZCsgcHViX3Rlc3QyLnRlc3RfdGJsMjsKKworLS0gbm93 IGRyb3AgdGhlIGV4cGxpY2l0bHkgYWRkZWQgb2JqZWN0cyBhZ2FpbgorQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9zY2hlbWFzIERST1AgVEFCTEUgcHViX3Rlc3QyLnRlc3RfdGJsMjsK K0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hcyBEUk9QIFNFUVVFTkNFIHB1Yl90 ZXN0MS50ZXN0X3NlcTE7CisKK1xkUnArIHRlc3RwdWJfc2NoZW1hcworCitcZCsgcHViX3Rl c3QxLnRlc3Rfc2VxMTsKK1xkKyBwdWJfdGVzdDEudGVzdF90YmwxOworCitcZCsgcHViX3Rl c3QyLnRlc3Rfc2VxMjsKK1xkKyBwdWJfdGVzdDIudGVzdF90YmwyOworCitEUk9QIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfc2NoZW1hczsKK0RST1AgVEFCTEUgcHViX3Rlc3QxLnRlc3RfdGJs MSwgcHViX3Rlc3QyLnRlc3RfdGJsMjsKK0RST1AgU0VRVUVOQ0UgcHViX3Rlc3QxLnRlc3Rf c2VxMSwgcHViX3Rlc3QyLnRlc3Rfc2VxMjsKK0RST1AgU0NIRU1BIHB1Yl90ZXN0MSwgcHVi X3Rlc3QyOworCiAtLSBUZXN0cyBmb3IgcGFydGl0aW9uZWQgdGFibGVzCiBTRVQgY2xpZW50 X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9m b3JwYXJ0ZWQ7CkBAIC03MTcsMzIgKzg5Niw1MSBAQCBDUkVBVEUgU0NIRU1BIHNjaDE7CiBD UkVBVEUgU0NIRU1BIHNjaDI7CiBDUkVBVEUgVEFCTEUgc2NoMS50YmwxIChhIGludCkgUEFS VElUSU9OIEJZIFJBTkdFKGEpOwogQ1JFQVRFIFRBQkxFIHNjaDIudGJsMV9wYXJ0MSBQQVJU SVRJT04gT0Ygc2NoMS50YmwxIEZPUiBWQUxVRVMgRlJPTSAoMSkgdG8gKDEwKTsKK0NSRUFU RSBTRVFVRU5DRSBzY2gxLnNlcTE7CitDUkVBVEUgU0VRVUVOQ0Ugc2NoMi5zZXEyOwogLS0g U2NoZW1hIHB1YmxpY2F0aW9uIHRoYXQgZG9lcyBub3QgaW5jbHVkZSB0aGUgc2NoZW1hIHRo YXQgaGFzIHRoZSBwYXJlbnQgdGFibGUKIENSRUFURSBQVUJMSUNBVElPTiBwdWIgRk9SIEFM TCBUQUJMRVMgSU4gU0NIRU1BIHNjaDIgV0lUSCAoUFVCTElTSF9WSUFfUEFSVElUSU9OX1JP T1Q9MSk7CitBTFRFUiBQVUJMSUNBVElPTiBwdWIgQUREIEFMTCBTRVFVRU5DRVMgSU4gU0NI RU1BIHNjaDI7CiBTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3RhYmxlczsKK1NFTEVD VCAqIEZST00gcGdfcHVibGljYXRpb25fc2VxdWVuY2VzOwogCiBEUk9QIFBVQkxJQ0FUSU9O IHB1YjsKIC0tIFRhYmxlIHB1YmxpY2F0aW9uIHRoYXQgZG9lcyBub3QgaW5jbHVkZSB0aGUg cGFyZW50IHRhYmxlCiBDUkVBVEUgUFVCTElDQVRJT04gcHViIEZPUiBUQUJMRSBzY2gyLnRi bDFfcGFydDEgV0lUSCAoUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1Q9MSk7CitBTFRFUiBQ VUJMSUNBVElPTiBwdWIgQUREIFNFUVVFTkNFIHNjaDIuc2VxMjsKIFNFTEVDVCAqIEZST00g cGdfcHVibGljYXRpb25fdGFibGVzOworU0VMRUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl9z ZXF1ZW5jZXM7CiAKIC0tIFRhYmxlIHB1YmxpY2F0aW9uIHRoYXQgaW5jbHVkZXMgYm90aCB0 aGUgcGFyZW50IHRhYmxlIGFuZCB0aGUgY2hpbGQgdGFibGUKIEFMVEVSIFBVQkxJQ0FUSU9O IHB1YiBBREQgVEFCTEUgc2NoMS50YmwxOworQUxURVIgUFVCTElDQVRJT04gcHViIEFERCBT RVFVRU5DRSBzY2gxLnNlcTE7CiBTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3RhYmxl czsKK1NFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25fc2VxdWVuY2VzOwogCiBEUk9QIFBV QkxJQ0FUSU9OIHB1YjsKIC0tIFNjaGVtYSBwdWJsaWNhdGlvbiB0aGF0IGRvZXMgbm90IGlu Y2x1ZGUgdGhlIHNjaGVtYSB0aGF0IGhhcyB0aGUgcGFyZW50IHRhYmxlCiBDUkVBVEUgUFVC TElDQVRJT04gcHViIEZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQSBzY2gyIFdJVEggKFBVQkxJ U0hfVklBX1BBUlRJVElPTl9ST09UPTApOworQUxURVIgUFVCTElDQVRJT04gcHViIEFERCBT RVFVRU5DRSBzY2gxLnNlcTE7CitTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3RhYmxl czsKK1NFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25fc2VxdWVuY2VzOworCitEUk9QIFBV QkxJQ0FUSU9OIHB1YjsKKy0tIFNlcXVlbmNlIHB1YmxpY2F0aW9uCitDUkVBVEUgUFVCTElD QVRJT04gcHViIEZPUiBTRVFVRU5DRSBzY2gyLnNlcTI7CiBTRUxFQ1QgKiBGUk9NIHBnX3B1 YmxpY2F0aW9uX3RhYmxlczsKK1NFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25fc2VxdWVu Y2VzOwogCiBEUk9QIFBVQkxJQ0FUSU9OIHB1YjsKIC0tIFRhYmxlIHB1YmxpY2F0aW9uIHRo YXQgZG9lcyBub3QgaW5jbHVkZSB0aGUgcGFyZW50IHRhYmxlCiBDUkVBVEUgUFVCTElDQVRJ T04gcHViIEZPUiBUQUJMRSBzY2gyLnRibDFfcGFydDEgV0lUSCAoUFVCTElTSF9WSUFfUEFS VElUSU9OX1JPT1Q9MCk7CiBTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3RhYmxlczsK K1NFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25fc2VxdWVuY2VzOwogCiAtLSBUYWJsZSBw dWJsaWNhdGlvbiB0aGF0IGluY2x1ZGVzIGJvdGggdGhlIHBhcmVudCB0YWJsZSBhbmQgdGhl IGNoaWxkIHRhYmxlCiBBTFRFUiBQVUJMSUNBVElPTiBwdWIgQUREIFRBQkxFIHNjaDEudGJs MTsKK0FMVEVSIFBVQkxJQ0FUSU9OIHB1YiBBREQgQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEg c2NoMjsKIFNFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25fdGFibGVzOworU0VMRUNUICog RlJPTSBwZ19wdWJsaWNhdGlvbl9zZXF1ZW5jZXM7CiAKIERST1AgUFVCTElDQVRJT04gcHVi OwogRFJPUCBUQUJMRSBzY2gyLnRibDFfcGFydDE7CkBAIC03NTUsMTAgKzk1MywzNiBAQCBD UkVBVEUgVEFCTEUgc2NoMS50YmwxX3BhcnQzIChhIGludCkgUEFSVElUSU9OIEJZIFJBTkdF KGEpOwogQUxURVIgVEFCTEUgc2NoMS50YmwxIEFUVEFDSCBQQVJUSVRJT04gc2NoMS50Ymwx X3BhcnQzIEZPUiBWQUxVRVMgRlJPTSAoMjApIHRvICgzMCk7CiBDUkVBVEUgUFVCTElDQVRJ T04gcHViIEZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQSBzY2gxIFdJVEggKFBVQkxJU0hfVklB X1BBUlRJVElPTl9ST09UPTEpOwogU0VMRUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl90YWJs ZXM7CitTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3NlcXVlbmNlczsKKworRFJPUCBQ VUJMSUNBVElPTiBwdWI7CistLSBTY2hlbWEgcHVibGljYXRpb24KK0NSRUFURSBQVUJMSUNB VElPTiBwdWIgRk9SIFNFUVVFTkNFIHNjaDIuc2VxMjsKK1NFTEVDVCAqIEZST00gcGdfcHVi bGljYXRpb25fdGFibGVzOworU0VMRUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl9zZXF1ZW5j ZXM7CisKK0RST1AgUFVCTElDQVRJT04gcHViOworLS0gU2VxdWVuY2UgcHVibGljYXRpb24K K0NSRUFURSBQVUJMSUNBVElPTiBwdWIgRk9SIEFMTCBTRVFVRU5DRVMgSU4gU0NIRU1BIHNj aDI7CitTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3RhYmxlczsKK1NFTEVDVCAqIEZS T00gcGdfcHVibGljYXRpb25fc2VxdWVuY2VzOworCitBTFRFUiBQVUJMSUNBVElPTiBwdWIg QUREIFNFUVVFTkNFIHNjaDEuc2VxMTsKK1NFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25f dGFibGVzOworU0VMRUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl9zZXF1ZW5jZXM7CisKK0FM VEVSIFBVQkxJQ0FUSU9OIHB1YiBEUk9QIFNFUVVFTkNFIHNjaDEuc2VxMTsKK1NFTEVDVCAq IEZST00gcGdfcHVibGljYXRpb25fdGFibGVzOworU0VMRUNUICogRlJPTSBwZ19wdWJsaWNh dGlvbl9zZXF1ZW5jZXM7CisKK0FMVEVSIFBVQkxJQ0FUSU9OIHB1YiBBREQgQUxMIFNFUVVF TkNFUyBJTiBTQ0hFTUEgc2NoMTsKK1NFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25fdGFi bGVzOworU0VMRUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl9zZXF1ZW5jZXM7CiAKIFJFU0VU IGNsaWVudF9taW5fbWVzc2FnZXM7CiBEUk9QIFBVQkxJQ0FUSU9OIHB1YjsKIERST1AgVEFC TEUgc2NoMS50YmwxOworRFJPUCBTRVFVRU5DRSBzY2gxLnNlcTEsIHNjaDIuc2VxMjsKIERS T1AgU0NIRU1BIHNjaDEgY2FzY2FkZTsKIERST1AgU0NIRU1BIHNjaDIgY2FzY2FkZTsKIApk aWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMwX3NlcXVlbmNlcy5wbCBi L3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzMF9zZXF1ZW5jZXMucGwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjlhZTNjMDNkN2QxCi0tLSAvZGV2L251bGwK KysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMwX3NlcXVlbmNlcy5wbApAQCAtMCww ICsxLDIwMiBAQAorCisjIENvcHlyaWdodCAoYykgMjAyMSwgUG9zdGdyZVNRTCBHbG9iYWwg RGV2ZWxvcG1lbnQgR3JvdXAKKworIyBUaGlzIHRlc3RzIHRoYXQgc2VxdWVuY2VzIGFyZSBy ZXBsaWNhdGVkIGNvcnJlY3RseSBieSBsb2dpY2FsIHJlcGxpY2F0aW9uCit1c2Ugc3RyaWN0 OwordXNlIHdhcm5pbmdzOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2Ug UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworIyBJbml0aWFs aXplIHB1Ymxpc2hlciBub2RlCitteSAkbm9kZV9wdWJsaXNoZXIgPSBQb3N0Z3JlU1FMOjpU ZXN0OjpDbHVzdGVyLT5uZXcoJ3B1Ymxpc2hlcicpOworJG5vZGVfcHVibGlzaGVyLT5pbml0 KGFsbG93c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwnKTsKKyRub2RlX3B1Ymxpc2hlci0+c3Rh cnQ7CisKKyMgQ3JlYXRlIHN1YnNjcmliZXIgbm9kZQorbXkgJG5vZGVfc3Vic2NyaWJlciA9 IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vic2NyaWJlcicpOworJG5vZGVf c3Vic2NyaWJlci0+aW5pdChhbGxvd3Nfc3RyZWFtaW5nID0+ICdsb2dpY2FsJyk7Ciskbm9k ZV9zdWJzY3JpYmVyLT5zdGFydDsKKworIyBDcmVhdGUgc29tZSBwcmVleGlzdGluZyBjb250 ZW50IG9uIHB1Ymxpc2hlcgorbXkgJGRkbCA9IHFxKAorCUNSRUFURSBUQUJMRSBzZXFfdGVz dCAodiBCSUdJTlQpOworCUNSRUFURSBTRVFVRU5DRSBzOworKTsKKworIyBTZXR1cCBzdHJ1 Y3R1cmUgb24gdGhlIHB1Ymxpc2hlcgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgJGRkbCk7CisKKyMgQ3JlYXRlIHNvbWUgdGhlIHNhbWUgc3RydWN0dXJlIG9u IHN1YnNjcmliZXIsIGFuZCBhbiBleHRyYSBzZXF1ZW5jZSB0aGF0CisjIHdlJ2xsIGNyZWF0 ZSBvbiB0aGUgcHVibGlzaGVyIGxhdGVyCiskZGRsID0gcXEoCisJQ1JFQVRFIFRBQkxFIHNl cV90ZXN0ICh2IEJJR0lOVCk7CisJQ1JFQVRFIFNFUVVFTkNFIHM7CisJQ1JFQVRFIFNFUVVF TkNFIHMyOworKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICRkZGwpOworCisjIFNldHVwIGxvZ2ljYWwgcmVwbGljYXRpb24KK215ICRwdWJsaXNoZXJf Y29ubnN0ciA9ICRub2RlX3B1Ymxpc2hlci0+Y29ubnN0ciAuICcgZGJuYW1lPXBvc3RncmVz JzsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBQ VUJMSUNBVElPTiBzZXFfcHViIik7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIkFMVEVSIFBVQkxJQ0FUSU9OIHNlcV9wdWIgQUREIFNFUVVFTkNFIHMi KTsKKworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFU RSBTVUJTQ1JJUFRJT04gc2VxX3N1YiBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHIn IFBVQkxJQ0FUSU9OIHNlcV9wdWIiCispOworCiskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9y X2NhdGNodXAoJ3NlcV9zdWInKTsKKworIyBXYWl0IGZvciBpbml0aWFsIHN5bmMgdG8gZmlu aXNoIGFzIHdlbGwKK215ICRzeW5jZWRfcXVlcnkgPQorICAiU0VMRUNUIGNvdW50KDEpID0g MCBGUk9NIHBnX3N1YnNjcmlwdGlvbl9yZWwgV0hFUkUgc3JzdWJzdGF0ZSBOT1QgSU4gKCdz JywgJ3InKTsiOworJG5vZGVfc3Vic2NyaWJlci0+cG9sbF9xdWVyeV91bnRpbCgncG9zdGdy ZXMnLCAkc3luY2VkX3F1ZXJ5KQorICBvciBkaWUgIlRpbWVkIG91dCB3aGlsZSB3YWl0aW5n IGZvciBzdWJzY3JpYmVyIHRvIHN5bmNocm9uaXplIGRhdGEiOworCisjIEluc2VydCBpbml0 aWFsIHRlc3QgZGF0YQorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVz JywgcXEoCisJLS0gZ2VuZXJhdGUgYSBudW1iZXIgb2YgdmFsdWVzIHVzaW5nIHRoZSBzZXF1 ZW5jZQorCUlOU0VSVCBJTlRPIHNlcV90ZXN0IFNFTEVDVCBuZXh0dmFsKCdzJykgRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwxMDApOworKSk7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9m b3JfY2F0Y2h1cCgnc2VxX3N1YicpOworCisjIENoZWNrIHRoZSBkYXRhIG9uIHN1YnNjcmli ZXIKK215ICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoCisJJ3Bvc3Rn cmVzJywgcXEoCisJU0VMRUNUICogRlJPTSBzOworKSk7CisKK2lzKCAkcmVzdWx0LCAnMTMy fDB8dCcsCisJJ2luaXRpYWwgdGVzdCBkYXRhIHJlcGxpY2F0ZWQnKTsKKworCisjIGFkdmFu Y2UgdGhlIHNlcXVlbmNlIGluIGEgcm9sbGVkLWJhY2sgdHJhbnNhY3Rpb24gLSB0aGUgcm9s bGJhY2sKKyMgZG9lcyBub3Qgd2FpdCBmb3IgdGhlIHJlcGxpY2F0aW9uLCBzbyB3ZSBjb3Vs ZCBzZWUgYW55IGludGVybWVkaWF0ZSBzdGF0ZQorIyBzbyBkbyBzb21ldGhpbmcgZWxzZSBh ZnRlciB0aGUgdGVzdCwgdG8gZW5zdXJlIHdlIHdhaXQgZm9yIGV2ZXJ5dGhpbmcKKyRub2Rl X3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUJFR0lOOworCUlO U0VSVCBJTlRPIHNlcV90ZXN0IFNFTEVDVCBuZXh0dmFsKCdzJykgRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwxMDApOworCVJPTExCQUNLOworCUlOU0VSVCBJTlRPIHNlcV90ZXN0IFZBTFVF UyAoLTEpOworKSk7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc2Vx X3N1YicpOworCisjIENoZWNrIHRoZSBkYXRhIG9uIHN1YnNjcmliZXIKKyRyZXN1bHQgPSAk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJU0VMRUNU ICogRlJPTSBzOworKSk7CisKK2lzKCAkcmVzdWx0LCAnMjMxfDB8dCcsCisJJ2FkdmFuY2Ug c2VxdWVuY2UgaW4gcm9sbGVkLWJhY2sgdHJhbnNhY3Rpb24nKTsKKworCisjIGNyZWF0ZSBh IG5ldyBzZXF1ZW5jZSBhbmQgcm9sbCBpdCBiYWNrIC0gc2hvdWxkIG5vdCBiZSByZXBsaWNh dGVkLCBkdWUgdG8KKyMgdGhlIHRyYW5zYWN0aW9uYWwgYmVoYXZpb3IKKyRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUJFR0lOOworCUNSRUFURSBT RVFVRU5DRSBzMjsKKwlBTFRFUiBQVUJMSUNBVElPTiBzZXFfcHViIEFERCBTRVFVRU5DRSBz MjsKKwlJTlNFUlQgSU5UTyBzZXFfdGVzdCBTRUxFQ1QgbmV4dHZhbCgnczInKSBGUk9NIGdl bmVyYXRlX3NlcmllcygxLDEwMCk7CisJUk9MTEJBQ0s7CispKTsKKworJG5vZGVfcHVibGlz aGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdzZXFfc3ViJyk7CisKKyMgQ2hlY2sgdGhlIGRhdGEg b24gc3Vic2NyaWJlcgorJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgK KwkncG9zdGdyZXMnLCBxcSgKKwlTRUxFQ1QgKiBGUk9NIHMyOworKSk7CisKK2lzKCAkcmVz dWx0LCAnMXwwfGYnLAorCSdjcmVhdGUgbmV3IHNlcXVlbmNlIGFuZCByb2xsIGl0IGJhY2sn KTsKKworCisjIGNyZWF0ZSBhIG5ldyBzZXF1ZW5jZSwgYWR2YW5jZSBpdCBpbiBhIHJvbGxl ZC1iYWNrIHRyYW5zYWN0aW9uLCBidXQgY29tbWl0CisjIHRoZSBjcmVhdGUgLSB0aGUgYWR2 YW5jZSBzaG91bGQgYmUgcmVwbGljYXRlZCBuZXZlcnRoZWxlc3MKKyRub2RlX3B1Ymxpc2hl ci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUJFR0lOOworCUNSRUFURSBTRVFV RU5DRSBzMjsKKwlBTFRFUiBQVUJMSUNBVElPTiBzZXFfcHViIEFERCBTRVFVRU5DRSBzMjsK KwlTQVZFUE9JTlQgc3AxOworCUlOU0VSVCBJTlRPIHNlcV90ZXN0IFNFTEVDVCBuZXh0dmFs KCdzMicpIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAwKTsKKwlST0xMQkFDSyBUTyBzcDE7 CisJQ09NTUlUOworKSk7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgn c2VxX3N1YicpOworCisjIFdhaXQgZm9yIHN5bmMgb2YgdGhlIHNlY29uZCBzZXF1ZW5jZSB3 ZSBqdXN0IGFkZGVkIHRvIGZpbmlzaAorJHN5bmNlZF9xdWVyeSA9CisgICJTRUxFQ1QgY291 bnQoMSkgPSAwIEZST00gcGdfc3Vic2NyaXB0aW9uX3JlbCBXSEVSRSBzcnN1YnN0YXRlIE5P VCBJTiAoJ3MnLCAncicpOyI7Ciskbm9kZV9zdWJzY3JpYmVyLT5wb2xsX3F1ZXJ5X3VudGls KCdwb3N0Z3JlcycsICRzeW5jZWRfcXVlcnkpCisgIG9yIGRpZSAiVGltZWQgb3V0IHdoaWxl IHdhaXRpbmcgZm9yIHN1YnNjcmliZXIgdG8gc3luY2hyb25pemUgZGF0YSI7CisKKyMgQ2hl Y2sgdGhlIGRhdGEgb24gc3Vic2NyaWJlcgorJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlTRUxFQ1QgKiBGUk9NIHMyOworKSk7 CisKK2lzKCAkcmVzdWx0LCAnMTMyfDB8dCcsCisJJ2NyZWF0ZSBzZXF1ZW5jZSwgYWR2YW5j ZSBpdCBpbiByb2xsZWQtYmFjayB0cmFuc2FjdGlvbiwgYnV0IGNvbW1pdCB0aGUgY3JlYXRl Jyk7CisKKworIyBhZHZhbmNlIHRoZSBuZXcgc2VxdWVuY2UgaW4gYSB0cmFuc2FjdGlvbiwg YW5kIHJvbGwgaXQgYmFjayAtIHRoZSByb2xsYmFjaworIyBkb2VzIG5vdCB3YWl0IGZvciB0 aGUgcmVwbGljYXRpb24sIHNvIHdlIGNvdWxkIHNlZSBhbnkgaW50ZXJtZWRpYXRlIHN0YXRl CisjIHNvIGRvIHNvbWV0aGluZyBlbHNlIGFmdGVyIHRoZSB0ZXN0LCB0byBlbnN1cmUgd2Ug d2FpdCBmb3IgZXZlcnl0aGluZworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bv c3RncmVzJywgcXEoCisJQkVHSU47CisJSU5TRVJUIElOVE8gc2VxX3Rlc3QgU0VMRUNUIG5l eHR2YWwoJ3MyJykgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDApOworCVJPTExCQUNLOwor CUlOU0VSVCBJTlRPIHNlcV90ZXN0IFZBTFVFUyAoLTEpOworKSk7CisKKyRub2RlX3B1Ymxp c2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc2VxX3N1YicpOworCisjIENoZWNrIHRoZSBkYXRh IG9uIHN1YnNjcmliZXIKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo CisJJ3Bvc3RncmVzJywgcXEoCisJU0VMRUNUICogRlJPTSBzMjsKKykpOworCitpcyggJHJl c3VsdCwgJzIzMXwwfHQnLAorCSdhZHZhbmNlIHRoZSBuZXcgc2VxdWVuY2UgaW4gYSB0cmFu c2FjdGlvbiBhbmQgcm9sbCBpdCBiYWNrJyk7CisKKworIyBhZHZhbmNlIHRoZSBzZXF1ZW5j ZSBpbiBhIHN1YnRyYW5zYWN0aW9uIC0gdGhlIHN1YnRyYW5zYWN0aW9uIGdldHMgcm9sbGVk CisjIGJhY2ssIGJ1dCBjb21taXQgdGhlIG1haW4gb25lIC0gdGhlIGNoYW5nZXMgc2hvdWxk IHN0aWxsIGJlIHJlcGxpY2F0ZWQKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdw b3N0Z3JlcycsIHFxKAorCUJFR0lOOworCVNBVkVQT0lOVCBzMTsKKwlJTlNFUlQgSU5UTyBz ZXFfdGVzdCBTRUxFQ1QgbmV4dHZhbCgnczInKSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEw MCk7CisJUk9MTEJBQ0sgVE8gczE7CisJQ09NTUlUOworKSk7CisKKyRub2RlX3B1Ymxpc2hl ci0+d2FpdF9mb3JfY2F0Y2h1cCgnc2VxX3N1YicpOworCisjIENoZWNrIHRoZSBkYXRhIG9u IHN1YnNjcmliZXIKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoCisJ J3Bvc3RncmVzJywgcXEoCisJU0VMRUNUICogRlJPTSBzMjsKKykpOworCitpcyggJHJlc3Vs dCwgJzMzMHwwfHQnLAorCSdhZHZhbmNlIHNlcXVlbmNlIGluIGEgc3VidHJhbnNhY3Rpb24n KTsKKworCitkb25lX3Rlc3RpbmcoKTsKLS0gCjIuMzQuMQoK --------------VRacwSoeax7T734A0xJoDRvz--