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 1ne9xL-0003SI-8V for pgsql-hackers@arkaria.postgresql.org; Tue, 12 Apr 2022 06:24:51 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1ne9wK-0008VX-9D for pgsql-hackers@arkaria.postgresql.org; Tue, 12 Apr 2022 06:23:48 +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 1ne9wJ-0008VM-OQ for pgsql-hackers@lists.postgresql.org; Tue, 12 Apr 2022 06:23:47 +0000 Received: from mail-ej1-x636.google.com ([2a00:1450:4864:20::636]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1ne9wE-0001Zm-O8 for pgsql-hackers@lists.postgresql.org; Tue, 12 Apr 2022 06:23:47 +0000 Received: by mail-ej1-x636.google.com with SMTP id u15so16569876ejf.11 for ; Mon, 11 Apr 2022 23:23:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=pKFSCeLC13QV4TNaJTKShV59B96b9IGJ9UVgupJe7ak=; b=NidFhQKbx7nhjvoUhWspi1McpjyNEtPq1/OBHWHj/HRiokkMOXi5gryOQ8AiDhp7ZL ZpFttNgG/sySXszYtavmj5dTR2bcZiu4gUmhHl1CRqzdIvvFh/XKo2rZ0FZYV3hN7ZNT 6lHtKH8mEW1IZi48K+sDq5e56zrukb//78+X4Oa0K6x3pwv+aeMiBmoz80+DDsXMKl2J 7x4HewgeY/Yz1NtzUbwa7kXYjXJXazHVKXgwn4cltjdvy7Ixs+h17MlIM4cf1huLrscM ZBd/EihxjA9j3q4XXtbErQmtrD+UzQZj0JY9fDvj5/ZSlgJ2OBqhUmpaR0nkgtRc6ir/ 3voQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=pKFSCeLC13QV4TNaJTKShV59B96b9IGJ9UVgupJe7ak=; b=scujmRLCxUbgPjUuzSinYCmluF3tTwp0JXoUchEa0bfD8BuegRl4/Il9kaXdx63AQi zaCdavFdp0b9uicJyjvzZOJQHy2lt2qdb2b2Tyt3IlhOF4wQ8zVM0YxN8YcppGpY+Khm ZrrsgUWDHdZaVrvTXvUBEhVZsBuIc90tzTlEeC7lvmf1K+jgnsIx36DRM87wxp2WFIt/ Ak2qydO3Dt1y0Na0Rm2Rce0o8WP9UYqy4NOCmWbnwFh8YNqLylWEW9sxi7GPGoQk5eYA qqOvkHzJdLW6vtkThbF/28FiEtIhMF/Ng41wLvRIfpo8iuOCqQfDFQRZtFhuC5M5wN9V VkKw== X-Gm-Message-State: AOAM533NlNM8YZBYgD+a4vWnVthMVNWWOYzNIBMjh+Zefe/nzZz9lKvb 2fGhJT0RjWWbUr3XCqx2lX3tzTiaKdhCcBAVVdMZL2NnJ5oaPA== X-Google-Smtp-Source: ABdhPJyRjPZNUfUtO+Mm7ZkZSddmySlaYx84NgECfmQ0Y1AyhEEj/eQ+Kk/CRuQQOXOhEqBSimnXBJKGU9P5n/fy3BI= X-Received: by 2002:a17:907:1c96:b0:6db:57e5:3e2f with SMTP id nb22-20020a1709071c9600b006db57e53e2fmr32851301ejc.705.1649744620255; Mon, 11 Apr 2022 23:23:40 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: vignesh C Date: Tue, 12 Apr 2022 11:53:29 +0530 Message-ID: Subject: Re: Skipping schema changes in publication To: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="00000000000011224d05dc6f1a0a" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000011224d05dc6f1a0a Content-Type: text/plain; charset="UTF-8" On Sat, Mar 26, 2022 at 7:37 PM vignesh C wrote: > > On Tue, Mar 22, 2022 at 12:38 PM vignesh C wrote: > > > > Hi, > > > > This feature adds an option to skip changes of all tables in specified > > schema while creating publication. > > This feature is helpful for use cases where the user wants to > > subscribe to all the changes except for the changes present in a few > > schemas. > > Ex: > > CREATE PUBLICATION pub1 FOR ALL TABLES SKIP ALL TABLES IN SCHEMA s1,s2; > > OR > > ALTER PUBLICATION pub1 ADD SKIP ALL TABLES IN SCHEMA s1,s2; > > > > A new column pnskip is added to table "pg_publication_namespace", to > > maintain the schemas that the user wants to skip publishing through > > the publication. Modified the output plugin (pgoutput) to skip > > publishing the changes if the relation is part of skip schema > > publication. > > As a continuation to this, I will work on implementing skipping tables > > from all tables in schema and skipping tables from all tables > > publication. > > > > Attached patch has the implementation for this. > > The patch was not applying on top of HEAD because of the recent > commits, attached patch is rebased on top of HEAD. The patch does not apply on top of HEAD because of the recent commit, attached patch is rebased on top of HEAD. I have also included the implementation for skipping a few tables from all tables publication, the 0002 patch has the implementation for the same. This feature is helpful for use cases where the user wants to subscribe to all the changes except for the changes present in a few tables. Ex: CREATE PUBLICATION pub1 FOR ALL TABLES SKIP TABLE t1,t2; OR ALTER PUBLICATION pub1 ADD SKIP TABLE t1,t2; Regards, Vignesh --00000000000011224d05dc6f1a0a Content-Type: text/x-patch; charset="US-ASCII"; name="v1-0001-Skip-publishing-the-tables-of-schema.patch" Content-Disposition: attachment; filename="v1-0001-Skip-publishing-the-tables-of-schema.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l1vqzkyd0 RnJvbSBmZWNiZGU2NTU4ZTExOTM4NTM3ZmNmODk2MDk2ZWIzZTQ1NTk5N2M5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNod2FyYW4gQyA8dmlnbmVzaDIxQGdtYWlsLmNvbT4K RGF0ZTogVHVlLCAxMiBBcHIgMjAyMiAxMDo0MDoyOSArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjEg MS8yXSBTa2lwIHB1Ymxpc2hpbmcgdGhlIHRhYmxlcyBvZiBzY2hlbWEuCgpBIG5ldyBvcHRpb24g IlNLSVAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEiIGluIENyZWF0ZS9BbHRlciBQdWJsaWNhdGlvbiBh bGxvd3MKb25lIG9yIG1vcmUgc2tpcCBzY2hlbWFzIHRvIGJlIHNwZWNpZmllZCwgcHVibGlzaGVy IHdpbGwgc2tpcCBzZW5kaW5nIHRoZSBkYXRhCm9mIHRoZSB0YWJsZXMgcHJlc2VudCBpbiB0aGUg c2tpcCBzY2hlbWEgdG8gdGhlIHN1YnNjcmliZXIuCgpUaGUgbmV3IHN5bnRheCBhbGxvd3Mgc3Bl Y2lmeWluZyBzY2hlbWFzLiBGb3IgZXhhbXBsZToKQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjEgRk9S IEFMTCBUQUJMRVMgU0tJUCBBTEwgVEFCTEVTIElOIFNDSEVNQSBzMSxzMjsKT1IKQUxURVIgUFVC TElDQVRJT04gcHViMSBBREQgU0tJUCBBTEwgVEFCTEVTIElOIFNDSEVNQSBzMSxzMjsKCkEgbmV3 IGNvbHVtbiBwbnNraXAgaXMgYWRkZWQgdG8gdGFibGUgInBnX3B1YmxpY2F0aW9uX25hbWVzcGFj ZSIsIHRvIG1haW50YWluCnRoZSBzY2hlbWFzIHRoYXQgdGhlIHVzZXIgd2FudHMgdG8gc2tpcCBw dWJsaXNoaW5nIHRocm91Z2ggdGhlIHB1YmxpY2F0aW9uLgpNb2RpZmllZCB0aGUgb3V0cHV0IHBs dWdpbiAocGdvdXRwdXQpIHRvIHNraXAgcHVibGlzaGluZyB0aGUgY2hhbmdlcyBpZiB0aGUKcmVs YXRpb24gaXMgcGFydCBvZiBza2lwIHNjaGVtYSBwdWJsaWNhdGlvbi4KClVwZGF0ZXMgcGdfZHVt cCB0byBpZGVudGlmeSBhbmQgZHVtcCBza2lwIHNjaGVtYSBwdWJsaWNhdGlvbnMuIFVwZGF0ZXMg dGhlIFxkCmZhbWlseSBvZiBjb21tYW5kcyB0byBkaXNwbGF5IHNraXAgc2NoZW1hIHB1YmxpY2F0 aW9ucyBhbmQgXGRScCsgdmFyaWFudCB3aWxsCm5vdyBkaXNwbGF5IGFzc29jaWF0ZWQgc2tpcCBz Y2hlbWFzIGlmIGFueS4KCkJ1bXAgY2F0YWxvZyB2ZXJzaW9uLgotLS0KIGRvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAgOSArKwogZG9jL3NyYy9zZ21sL2xv Z2ljYWwtcmVwbGljYXRpb24uc2dtbCAgICAgICAgIHwgICA3ICstCiBkb2Mvc3JjL3NnbWwvcmVm L2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwgICAgICAgfCAgMjggKysrLQogZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCAgICAgIHwgIDI4ICsrKy0KIGRvYy9zcmMvc2dtbC9y ZWYvcHNxbC1yZWYuc2dtbCAgICAgICAgICAgICAgICB8ICAgNSArLQogc3JjL2JhY2tlbmQvY2F0 YWxvZy9wZ19wdWJsaWNhdGlvbi5jICAgICAgICAgIHwgIDY1ICsrKysrKy0tLQogc3JjL2JhY2tl bmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMgICAgICAgIHwgMTI4ICsrKysrKysrKysrLS0t LS0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgICAgIHwgICAy ICstCiBzcmMvYmFja2VuZC9ub2Rlcy9jb3B5ZnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgMTQg KysKIHNyYy9iYWNrZW5kL25vZGVzL2VxdWFsZnVuY3MuYyAgICAgICAgICAgICAgICB8ICAxNCAr Kwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgMTAxICsr KysrKysrKysrKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5j ICAgfCAgMjQgKy0tLQogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYyAgICAgICAg ICAgIHwgIDIwICsrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAg ICAgIHwgIDMwICsrKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggICAgICAgICAgICAgICAg ICAgICB8ICAgMSArCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMgICAgICAgICAgICAg ICAgfCAgIDcgKwogc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAg IHwgIDMwICsrKysKIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAg ICB8ICAyNiArKystCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAgICAgICAgICAgICAg ICAgfCAgMjQgKysrLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oICAgICAg ICAgIHwgIDIwICsrLQogLi4uL2NhdGFsb2cvcGdfcHVibGljYXRpb25fbmFtZXNwYWNlLmggICAg ICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oICAgICAg ICB8ICAgNiArLQogc3JjL2luY2x1ZGUvbm9kZXMvbm9kZXMuaCAgICAgICAgICAgICAgICAgICAg IHwgICAxICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8 ICAgMSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCAgICAgfCAg ODEgKysrKysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCAgICAg ICAgICB8ICA0MSArKysrKy0KIC4uLi90LzAzMl9yZXBfY2hhbmdlc19za2lwX3NjaGVtYS5wbCAg ICAgICAgICB8ICA5NiArKysrKysrKysrKysrCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMu bGlzdCAgICAgICAgICAgICAgfCAgIDEgKwogMjggZmlsZXMgY2hhbmdlZCwgNjg2IGluc2VydGlv bnMoKyksIDEyNSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9zdWJz Y3JpcHRpb24vdC8wMzJfcmVwX2NoYW5nZXNfc2tpcF9zY2hlbWEucGwKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmlu ZGV4IDZmMjg1ODcxYjYuLjFiMDJhZjFjMDMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRh bG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC02NDM4LDYgKzY0 MzgsMTUgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZn dDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgICBBIG51bGwgdmFsdWUgaW5k aWNhdGVzIHRoYXQgYWxsIGNvbHVtbnMgYXJlIHB1Ymxpc2hlZC4KICAgICAgIDwvcGFyYT48L2Vu dHJ5PgogICAgICA8L3Jvdz4KKworICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD5wbnNraXA8L3N0cnVjdGZpZWxkPiA8dHlwZT5ib29sPC90eXBlPgorICAgICAg PC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVHJ1ZSBpZiB0aGUgc2NoZW1hIGlzIHNraXAg c2NoZW1hCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CiAgICAgPC90Ym9keT4K ICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xvZ2lj YWwtcmVwbGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNn bWwKaW5kZXggNTU1ZmJkNzQ5Yy4uZTJhNGI4OTIyNiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBs aWNhdGlvbi5zZ21sCkBAIC01OTksOSArNTk5LDEwIEBAIENPTlRFWFQ6ICBwcm9jZXNzaW5nIHJl bW90ZSBkYXRhIGZvciByZXBsaWNhdGlvbiBvcmlnaW4gInBnXzE2Mzk1IiBkdXJpbmcgIklOU0VS CiAKICAgPHBhcmE+CiAgICBUbyBhZGQgdGFibGVzIHRvIGEgcHVibGljYXRpb24sIHRoZSB1c2Vy IG11c3QgaGF2ZSBvd25lcnNoaXAgcmlnaHRzIG9uIHRoZQotICAgdGFibGUuIFRvIGFkZCBhbGwg dGFibGVzIGluIHNjaGVtYSB0byBhIHB1YmxpY2F0aW9uLCB0aGUgdXNlciBtdXN0IGJlIGEKLSAg IHN1cGVydXNlci4gVG8gY3JlYXRlIGEgcHVibGljYXRpb24gdGhhdCBwdWJsaXNoZXMgYWxsIHRh YmxlcyBvciBhbGwgdGFibGVzIGluCi0gICBzY2hlbWEgYXV0b21hdGljYWxseSwgdGhlIHVzZXIg bXVzdCBiZSBhIHN1cGVydXNlci4KKyAgIHRhYmxlLiBUbyBhZGQgYWxsIHRhYmxlcyBpbiBzY2hl bWEgb3Igc2tpcCBhbGwgdGFibGVzIGluIHNjaGVtYSB0byBhCisgICBwdWJsaWNhdGlvbiwgdGhl IHVzZXIgbXVzdCBiZSBhIHN1cGVydXNlci4gVG8gY3JlYXRlIGEgcHVibGljYXRpb24gdGhhdAor ICAgcHVibGlzaGVzIGFsbCB0YWJsZXMgb3IgYWxsIHRhYmxlcyBpbiBzY2hlbWEgYXV0b21hdGlj YWxseSwgdGhlIHVzZXIgbXVzdCBiZQorICAgYSBzdXBlcnVzZXIuCiAgIDwvcGFyYT4KIAogICA8 cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAppbmRleCBlMmNjZTQ5 NDcxLi42ZjkxNWQ4YzVkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1Ymxp Y2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21s CkBAIC0zMSw3ICszMSw3IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyCiA8cGhyYXNlPndoZXJl IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9vYmplY3Q8L3JlcGxh Y2VhYmxlPiBpcyBvbmUgb2Y6PC9waHJhc2U+CiAKICAgICBUQUJMRSBbIE9OTFkgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsg KCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxl PiBbLCAuLi4gXSApIF0gWyBXSEVSRSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5l eHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gKSBdIFssIC4uLiBdCi0gICAgQUxMIFRBQkxFUyBJTiBT Q0hFTUEgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxh Y2VhYmxlPiB8IENVUlJFTlRfU0NIRU1BIH0gWywgLi4uIF0KKyAgICBbU0tJUF0gQUxMIFRBQkxF UyBJTiBTQ0hFTUEgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8 L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfU0NIRU1BIH0gWywgLi4uIF0KIDwvc3lub3BzaXM+CiAg PC9yZWZzeW5vcHNpc2Rpdj4KIApAQCAtNzEsMTIgKzcxLDEyIEBAIEFMVEVSIFBVQkxJQ0FUSU9O IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1F IFRPIDxyCiAgIDxwYXJhPgogICAgWW91IG11c3Qgb3duIHRoZSBwdWJsaWNhdGlvbiB0byB1c2Ug PGNvbW1hbmQ+QUxURVIgUFVCTElDQVRJT048L2NvbW1hbmQ+LgogICAgQWRkaW5nIGEgdGFibGUg dG8gYSBwdWJsaWNhdGlvbiBhZGRpdGlvbmFsbHkgcmVxdWlyZXMgb3duaW5nIHRoYXQgdGFibGUu Ci0gICBUaGUgPGxpdGVyYWw+QUREIEFMTCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiBhbmQK LSAgIDxsaXRlcmFsPlNFVCBBTEwgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gdG8gYSBwdWJs aWNhdGlvbiByZXF1aXJlcyB0aGUKLSAgIGludm9raW5nIHVzZXIgdG8gYmUgYSBzdXBlcnVzZXIu ICBUbyBhbHRlciB0aGUgb3duZXIsIHlvdSBtdXN0IGFsc28gYmUgYQorICAgVGhlIDxsaXRlcmFs PkFERCBbU0tJUF0gQUxMIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IGFuZAorICAgPGxpdGVy YWw+U0VUIFtTS0lQXSBBTEwgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gdG8gYSBwdWJsaWNh dGlvbiByZXF1aXJlcworICAgdGhlIGludm9raW5nIHVzZXIgdG8gYmUgYSBzdXBlcnVzZXIuICBU byBhbHRlciB0aGUgb3duZXIsIHlvdSBtdXN0IGFsc28gYmUgYQogICAgZGlyZWN0IG9yIGluZGly ZWN0IG1lbWJlciBvZiB0aGUgbmV3IG93bmluZyByb2xlLiBUaGUgbmV3IG93bmVyIG11c3QgaGF2 ZQogICAgPGxpdGVyYWw+Q1JFQVRFPC9saXRlcmFsPiBwcml2aWxlZ2Ugb24gdGhlIGRhdGFiYXNl LiAgQWxzbywgdGhlIG5ldyBvd25lcgotICAgb2YgYSA8bGl0ZXJhbD5GT1IgQUxMIFRBQkxFUzwv bGl0ZXJhbD4gb3IgPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVMgSU4KKyAgIG9mIGEgPGxpdGVyYWw+ Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPkZPUiBbU0tJUF0gQUxMIFRBQkxF UyBJTgogICAgU0NIRU1BPC9saXRlcmFsPiBwdWJsaWNhdGlvbiBtdXN0IGJlIGEgc3VwZXJ1c2Vy LiBIb3dldmVyLCBhIHN1cGVydXNlciBjYW4KICAgIGNoYW5nZSB0aGUgb3duZXJzaGlwIG9mIGEg cHVibGljYXRpb24gcmVnYXJkbGVzcyBvZiB0aGVzZSByZXN0cmljdGlvbnMuCiAgIDwvcGFyYT4K QEAgLTg4LDYgKzg4LDE0IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyCiAgICBhZGRpbmcvc2V0 dGluZyBhIHRhYmxlIHRvIGEgcHVibGljYXRpb24gdGhhdCBhbHJlYWR5IGhhcyBhIHRhYmxlJ3Mg c2NoZW1hIGFzCiAgICBwYXJ0IG9mIHRoZSBzcGVjaWZpZWQgc2NoZW1hIGlzIG5vdCBzdXBwb3J0 ZWQuCiAgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSA8bGl0ZXJhbD5BREQgU0tJUCBBTEwg VEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gYW5kCisgICA8bGl0ZXJhbD5TRVQgU0tJUCBBTEwg VEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gY2FuIGJlIHNwZWNpZmllZCBvbmx5IGZvcgorICAg PGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+IHB1YmxpY2F0aW9uLiBJdCBpcyBub3Qg c3VwcG9ydGVkIGZvcgorICAgPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BIDwvbGl0 ZXJhbD4gcHVibGljYXRpb24gYW5kCisgICA8bGl0ZXJhbD5GT1IgVEFCTEU8L2xpdGVyYWw+IHB1 YmxpY2F0aW9uLgorICA8L3BhcmE+CiAgPC9yZWZzZWN0MT4KIAogIDxyZWZzZWN0MT4KQEAgLTIx Nyw2ICsyMjUsMTYgQEAgQUxURVIgUFVCTElDQVRJT04gcHJvZHVjdGlvbl9wdWJsaWNhdGlvbiBB REQgVEFCTEUgdXNlcnMsIGRlcGFydG1lbnRzLCBBTEwgVEFCTEUKICAgIDxjb21tYW5kPkFMVEVS IFBVQkxJQ0FUSU9OPC9jb21tYW5kPiBpcyBhIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9k dWN0bmFtZT4KICAgIGV4dGVuc2lvbi4KICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgIEFkZCBz a2lwIHNjaGVtYXMgPHN0cnVjdG5hbWU+c2FsZXNfanVuZTwvc3RydWN0bmFtZT4gYW5kCisgICA8 c3RydWN0bmFtZT5zYWxlc19qdWx5PC9zdHJ1Y3RuYW1lPiB0byB0aGUgcHVibGljYXRpb24KKyAg IDxzdHJ1Y3RuYW1lPm15cHVibGljYXRpb248L3N0cnVjdG5hbWU+OgorPHByb2dyYW1saXN0aW5n PgorQUxURVIgUFVCTElDQVRJT04gbXlwdWJsaWNhdGlvbiBBREQgU0tJUCBBTEwgVEFCTEVTIElO IFNDSEVNQSBzYWxlc19qdW5lLCBzYWxlc19qdWx5OworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9w YXJhPgorCiAgPC9yZWZzZWN0MT4KIAogIDxyZWZzZWN0MT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV9wdWJsaWNhdGlvbi5zZ21sCmluZGV4IGZiMmQwMTMzOTMuLjVhY2Y4MDQ1MmEgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbApAQCAtMjIsNyArMjIsNyBAQCBQb3N0 Z3JlU1FMIGRvY3VtZW50YXRpb24KICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+CiBDUkVB VEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxh Y2VhYmxlPgotICAgIFsgRk9SIEFMTCBUQUJMRVMKKyAgICBbIEZPUiBBTEwgVEFCTEVTIFtTS0lQ IEFMTCBUQUJMRVMgSU4gU0NIRU1BIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNj aGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1NDSEVNQSB9XQogICAgICAgfCBGT1Ig PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFj ZWFibGU+IFssIC4uLiBdIF0KICAgICBbIFdJVEggKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cHVibGljYXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkgXQogCkBA IC0xMjQsNiArMTI0LDIzIEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFy bGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlNLSVAg QUxMIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAg ICAgPHBhcmE+CisgICAgICBNYXJrcyB0aGUgcHVibGljYXRpb24gYXMgb25lIHRoYXQgc2tpcHMg cmVwbGljYXRpbmcgY2hhbmdlcyBmb3IgYWxsCisgICAgICB0YWJsZXMgaW4gdGhlIHNwZWNpZmll ZCBsaXN0IG9mIHNjaGVtYXMuCisgICAgIDwvcGFyYT4KKworICAgICA8cGFyYT4KKyAgICAgIDxs aXRlcmFsPlNLSVAgQUxMIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IGNhbiBiZSBzcGVjaWZp ZWQgb25seSBmb3IKKyAgICAgIDxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTPC9saXRlcmFsPiBwdWJs aWNhdGlvbi4gSXQgaXMgbm90IHN1cHBvcnRlZCBmb3IKKyAgICAgIDxsaXRlcmFsPkZPUiBBTEwg VEFCTEVTIElOIFNDSEVNQSA8L2xpdGVyYWw+IHB1YmxpY2F0aW9uIGFuZAorICAgICAgPGxpdGVy YWw+Rk9SIFRBQkxFPC9saXRlcmFsPiBwdWJsaWNhdGlvbi4KKyAgICAgPC9wYXJhPgorICAgIDwv bGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeT4KICAgICA8 dGVybT48bGl0ZXJhbD5GT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+PC90ZXJtPgog ICAgIDxsaXN0aXRlbT4KQEAgLTMzNCw2ICszNTEsMTUgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIHBy b2R1Y3Rpb25fcHVibGljYXRpb24gRk9SIFRBQkxFIHVzZXJzLCBkZXBhcnRtZW50cywgQUxMIFRB QkwKICAgIDxzdHJ1Y3RuYW1lPnNhbGVzPC9zdHJ1Y3RuYW1lPjoKIDxwcm9ncmFtbGlzdGluZz4K IENSRUFURSBQVUJMSUNBVElPTiBzYWxlc19wdWJsaWNhdGlvbiBGT1IgQUxMIFRBQkxFUyBJTiBT Q0hFTUEgbWFya2V0aW5nLCBzYWxlczsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKwor ICA8cGFyYT4KKyAgIENyZWF0ZSBhIHB1YmxpY2F0aW9uIHRoYXQgcHVibGlzaGVzIGFsbCBjaGFu Z2VzIGluIGFsbCB0aGUgdGFibGVzIGV4Y2VwdCBmb3IKKyAgIHRoZSBjaGFuZ2VzIG9mIGFsbCB0 aGUgdGFibGVzIHByZXNlbnQgaW4gdGhlIHNjaGVtYQorICAgPHN0cnVjdG5hbWU+bWFya2V0aW5n PC9zdHJ1Y3RuYW1lPiBhbmQgPHN0cnVjdG5hbWU+c2FsZXM8L3N0cnVjdG5hbWU+OgorPHByb2dy YW1saXN0aW5nPgorQ1JFQVRFIFBVQkxJQ0FUSU9OIG15cHVibGljYXRpb24gRk9SIEFMTCBUQUJM RSBTS0lQIEFMTCBUQUJMRVMgSU4gU0NIRU1BIG1hcmtldGluZywgc2FsZXM7CiA8L3Byb2dyYW1s aXN0aW5nPjwvcGFyYT4KIAogICA8cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYv cHNxbC1yZWYuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbAppbmRleCA1OTIz NTYwMTliLi5iMDk3Yjg2M2NkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVm LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCkBAIC0xODY4LDggKzE4 NjgsOSBAQCB0ZXN0ZGI9Jmd0OwogICAgICAgICBJZiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cGF0dGVybjwvcmVwbGFjZWFibGU+IGlzCiAgICAgICAgIHNwZWNpZmllZCwgb25seSB0 aG9zZSBwdWJsaWNhdGlvbnMgd2hvc2UgbmFtZXMgbWF0Y2ggdGhlIHBhdHRlcm4gYXJlCiAgICAg ICAgIGxpc3RlZC4KLSAgICAgICAgSWYgPGxpdGVyYWw+KzwvbGl0ZXJhbD4gaXMgYXBwZW5kZWQg dG8gdGhlIGNvbW1hbmQgbmFtZSwgdGhlIHRhYmxlcyBhbmQKLSAgICAgICAgc2NoZW1hcyBhc3Nv Y2lhdGVkIHdpdGggZWFjaCBwdWJsaWNhdGlvbiBhcmUgc2hvd24gYXMgd2VsbC4KKyAgICAgICAg SWYgPGxpdGVyYWw+KzwvbGl0ZXJhbD4gaXMgYXBwZW5kZWQgdG8gdGhlIGNvbW1hbmQgbmFtZSwg dGhlIHRhYmxlcywKKyAgICAgICAgc2NoZW1hcyBhbmQgdGhlIHNraXAgc2NoZW1hIGFzc29jaWF0 ZWQgd2l0aCBlYWNoIHB1YmxpY2F0aW9uIGFyZSBzaG93bgorICAgICAgICBhcyB3ZWxsLgogICAg ICAgICA8L3BhcmE+CiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYwppbmRleCAyNjMxNTU4ZmYxLi4zZDJjYWI0 N2E2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKKysr IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCkBAIC0yOTAsNyArMjkwLDgg QEAgR2V0UHViUGFydGl0aW9uT3B0aW9uUmVsYXRpb25zKExpc3QgKnJlc3VsdCwgUHVibGljYXRp b25QYXJ0T3B0IHB1Yl9wYXJ0b3B0LAogICogYW5jZXN0b3IgaXMgYXQgdGhlIGVuZCBvZiB0aGUg bGlzdC4KICAqLwogT2lkCi1HZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJv aWQsIExpc3QgKmFuY2VzdG9ycywgaW50ICphbmNlc3Rvcl9sZXZlbCkKK0dldFRvcE1vc3RBbmNl c3RvckluUHVibGljYXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLAorCQkJCQkJCQlp bnQgKmFuY2VzdG9yX2xldmVsLCBib29sIHB1YmFsbHRhYmxlcykKIHsKIAlMaXN0Q2VsbCAgICps YzsKIAlPaWQJCQl0b3Btb3N0X3JlbGlkID0gSW52YWxpZE9pZDsKQEAgLTMwNCw2ICszMDUsNyBA QCBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExpc3QgKmFuY2Vz dG9ycywgaW50ICphbmNlc3Rvcl9sZXZlbAogCQlPaWQJCQlhbmNlc3RvciA9IGxmaXJzdF9vaWQo bGMpOwogCQlMaXN0CSAgICphcHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoYW5jZXN0 b3IpOwogCQlMaXN0CSAgICphc2NoZW1hUHViaWRzID0gTklMOworCQlMaXN0ICAgICAgICphc2tp cHNjaGVtYVB1YmlkcyA9IE5JTDsKIAogCQlsZXZlbCsrOwogCkBAIC0zMTYsOCArMzE4LDExIEBA IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAqYW5jZXN0 b3JzLCBpbnQgKmFuY2VzdG9yX2xldmVsCiAJCX0KIAkJZWxzZQogCQl7Ci0JCQlhc2NoZW1hUHVi aWRzID0gR2V0U2NoZW1hUHVibGljYXRpb25zKGdldF9yZWxfbmFtZXNwYWNlKGFuY2VzdG9yKSk7 Ci0JCQlpZiAobGlzdF9tZW1iZXJfb2lkKGFzY2hlbWFQdWJpZHMsIHB1Ym9pZCkpCisJCQlhc2No ZW1hUHViaWRzID0gR2V0U2NoZW1hUHVibGljYXRpb25zKGdldF9yZWxfbmFtZXNwYWNlKGFuY2Vz dG9yKSwgZmFsc2UpOworCQkJYXNraXBzY2hlbWFQdWJpZHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlv bnMoZ2V0X3JlbF9uYW1lc3BhY2UoYW5jZXN0b3IpLCB0cnVlKTsKKworCQkJaWYgKGxpc3RfbWVt YmVyX29pZChhc2NoZW1hUHViaWRzLCBwdWJvaWQpIHx8CisJCQkJKHB1YmFsbHRhYmxlcyAmJiAh bGlzdF9tZW1iZXJfb2lkKGFza2lwc2NoZW1hUHViaWRzLCBwdWJvaWQpKSkKIAkJCXsKIAkJCQl0 b3Btb3N0X3JlbGlkID0gYW5jZXN0b3I7CiAKQEAgLTU4NSwxMyArNTkwLDE0IEBAIHB1Yl9jb2xs aXN0X3RvX2JpdG1hcHNldChCaXRtYXBzZXQgKmNvbHVtbnMsIERhdHVtIHB1YmNvbHMsIE1lbW9y eUNvbnRleHQgbWN4dCkKICAqIEluc2VydCBuZXcgcHVibGljYXRpb24gLyBzY2hlbWEgbWFwcGlu Zy4KICAqLwogT2JqZWN0QWRkcmVzcwotcHVibGljYXRpb25fYWRkX3NjaGVtYShPaWQgcHViaWQs IE9pZCBzY2hlbWFpZCwgYm9vbCBpZl9ub3RfZXhpc3RzKQorcHVibGljYXRpb25fYWRkX3NjaGVt YShPaWQgcHViaWQsIFB1YmxpY2F0aW9uU2NoSW5mbyAqcHVic2NoLCBib29sIGlmX25vdF9leGlz dHMpCiB7CiAJUmVsYXRpb24JcmVsOwogCUhlYXBUdXBsZQl0dXA7CiAJRGF0dW0JCXZhbHVlc1tO YXR0c19wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2VdOwogCWJvb2wJCW51bGxzW05hdHRzX3BnX3B1 YmxpY2F0aW9uX25hbWVzcGFjZV07CiAJT2lkCQkJcHNzY2hpZDsKKwlPaWQgCQlzY2hlbWFpZCA9 IHB1YnNjaC0+b2lkOwogCVB1YmxpY2F0aW9uICpwdWIgPSBHZXRQdWJsaWNhdGlvbihwdWJpZCk7 CiAJTGlzdAkgICAqc2NoZW1hUmVscyA9IE5JTDsKIAlPYmplY3RBZGRyZXNzIG15c2VsZiwKQEAg LTYzMiw2ICs2MzgsOCBAQCBwdWJsaWNhdGlvbl9hZGRfc2NoZW1hKE9pZCBwdWJpZCwgT2lkIHNj aGVtYWlkLCBib29sIGlmX25vdF9leGlzdHMpCiAJCU9iamVjdElkR2V0RGF0dW0ocHViaWQpOwog CXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX25hbWVzcGFjZV9wbm5zcGlkIC0gMV0gPQogCQlP YmplY3RJZEdldERhdHVtKHNjaGVtYWlkKTsKKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9u YW1lc3BhY2VfcG5za2lwIC0gMV0gPQorCQlCb29sR2V0RGF0dW0ocHVic2NoLT5za2lwKTsKIAog CXR1cCA9IGhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2NyKHJlbCksIHZhbHVlcywgbnVs bHMpOwogCkBAIC03NzksMTMgKzc4NywyMyBAQCBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvbnModm9p ZCkKICAqIHJvb3QgcGFydGl0aW9uZWQgdGFibGVzLgogICovCiBMaXN0ICoKLUdldEFsbFRhYmxl c1B1YmxpY2F0aW9uUmVsYXRpb25zKGJvb2wgcHVidmlhcm9vdCkKK0dldEFsbFRhYmxlc1B1Ymxp Y2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgYm9vbCBwdWJ2aWFyb290KQogewogCVJlbGF0aW9u CWNsYXNzUmVsOwogCVNjYW5LZXlEYXRhIGtleVsxXTsKIAlUYWJsZVNjYW5EZXNjIHNjYW47CiAJ SGVhcFR1cGxlCXR1cGxlOwogCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKKwlMaXN0CSAgICpza2lw c2NoZW1haWRsaXN0ID0gTklMOworCUxpc3QJICAgKnB1YnNjaGVtYWxpc3QgPSBHZXRQdWJsaWNh dGlvblNjaGVtYXMocHViaWQpOworCUxpc3RDZWxsICAgKmNlbGw7CisKKwlmb3JlYWNoKGNlbGws IHB1YnNjaGVtYWxpc3QpCisJeworCQlQdWJsaWNhdGlvblNjaEluZm8gKnB1YnNjaCA9IChQdWJs aWNhdGlvblNjaEluZm8gKikgbGZpcnN0KGNlbGwpOworCisJCXNraXBzY2hlbWFpZGxpc3QgPSBs YXBwZW5kX29pZChyZXN1bHQsIHB1YnNjaC0+b2lkKTsKKwl9CiAKIAljbGFzc1JlbCA9IHRhYmxl X29wZW4oUmVsYXRpb25SZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOwogCkBAIC04MDAsOSAr ODE4LDExIEBAIEdldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKGJvb2wgcHVidmlhcm9v dCkKIAl7CiAJCUZvcm1fcGdfY2xhc3MgcmVsRm9ybSA9IChGb3JtX3BnX2NsYXNzKSBHRVRTVFJV Q1QodHVwbGUpOwogCQlPaWQJCQlyZWxpZCA9IHJlbEZvcm0tPm9pZDsKKwkJT2lkCQkJc2NoaWQg PSBnZXRfcmVsX25hbWVzcGFjZShyZWxpZCk7CiAKIAkJaWYgKGlzX3B1Ymxpc2hhYmxlX2NsYXNz KHJlbGlkLCByZWxGb3JtKSAmJgotCQkJIShyZWxGb3JtLT5yZWxpc3BhcnRpdGlvbiAmJiBwdWJ2 aWFyb290KSkKKwkJCSEocmVsRm9ybS0+cmVsaXNwYXJ0aXRpb24gJiYgcHVidmlhcm9vdCkgJiYK KwkJCSFsaXN0X21lbWJlcl9vaWQoc2tpcHNjaGVtYWlkbGlzdCwgc2NoaWQpKQogCQkJcmVzdWx0 ID0gbGFwcGVuZF9vaWQocmVzdWx0LCByZWxpZCk7CiAJfQogCkBAIC04MjEsOSArODQxLDExIEBA IEdldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKGJvb2wgcHVidmlhcm9vdCkKIAkJewog CQkJRm9ybV9wZ19jbGFzcyByZWxGb3JtID0gKEZvcm1fcGdfY2xhc3MpIEdFVFNUUlVDVCh0dXBs ZSk7CiAJCQlPaWQJCQlyZWxpZCA9IHJlbEZvcm0tPm9pZDsKKwkJCU9pZAkJCXNjaGlkID0gZ2V0 X3JlbF9uYW1lc3BhY2UocmVsaWQpOwogCiAJCQlpZiAoaXNfcHVibGlzaGFibGVfY2xhc3MocmVs aWQsIHJlbEZvcm0pICYmCi0JCQkJIXJlbEZvcm0tPnJlbGlzcGFydGl0aW9uKQorCQkJCSFyZWxG b3JtLT5yZWxpc3BhcnRpdGlvbiAmJgorCQkJCSFsaXN0X21lbWJlcl9vaWQoc2tpcHNjaGVtYWlk bGlzdCwgc2NoaWQpKQogCQkJCXJlc3VsdCA9IGxhcHBlbmRfb2lkKHJlc3VsdCwgcmVsaWQpOwog CQl9CiAKQEAgLTg2MiwxMCArODg0LDE0IEBAIEdldFB1YmxpY2F0aW9uU2NoZW1hcyhPaWQgcHVi aWQpCiAJd2hpbGUgKEhlYXBUdXBsZUlzVmFsaWQodHVwID0gc3lzdGFibGVfZ2V0bmV4dChzY2Fu KSkpCiAJewogCQlGb3JtX3BnX3B1YmxpY2F0aW9uX25hbWVzcGFjZSBwdWJzY2g7CisJCVB1Ymxp Y2F0aW9uU2NoSW5mbyAqc2NoaW5mbyA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uU2NoSW5mbyk7CisK IAogCQlwdWJzY2ggPSAoRm9ybV9wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UpIEdFVFNUUlVDVCh0 dXApOworCQlzY2hpbmZvLT5vaWQgPSBwdWJzY2gtPnBubnNwaWQ7CisJCXNjaGluZm8tPnNraXAg PSBwdWJzY2gtPnBuc2tpcDsKIAotCQlyZXN1bHQgPSBsYXBwZW5kX29pZChyZXN1bHQsIHB1YnNj aC0+cG5uc3BpZCk7CisJCXJlc3VsdCA9IGxhcHBlbmQocmVzdWx0LCBzY2hpbmZvKTsKIAl9CiAK IAlzeXN0YWJsZV9lbmRzY2FuKHNjYW4pOwpAQCAtODc4LDcgKzkwNCw3IEBAIEdldFB1YmxpY2F0 aW9uU2NoZW1hcyhPaWQgcHViaWQpCiAgKiBHZXRzIHRoZSBsaXN0IG9mIHB1YmxpY2F0aW9uIG9p ZHMgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWVkIHNjaGVtYS4KICAqLwogTGlzdCAqCi1HZXRT Y2hlbWFQdWJsaWNhdGlvbnMoT2lkIHNjaGVtYWlkKQorR2V0U2NoZW1hUHVibGljYXRpb25zKE9p ZCBzY2hlbWFpZCwgYm9vbCBza2lwcHViKQogewogCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKIAlD YXRDTGlzdCAgICpwdWJzY2hsaXN0OwpAQCAtODkyLDcgKzkxOCw4IEBAIEdldFNjaGVtYVB1Ymxp Y2F0aW9ucyhPaWQgc2NoZW1haWQpCiAJCUhlYXBUdXBsZQl0dXAgPSAmcHVic2NobGlzdC0+bWVt YmVyc1tpXS0+dHVwbGU7CiAJCU9pZAkJCXB1YmlkID0gKChGb3JtX3BnX3B1YmxpY2F0aW9uX25h bWVzcGFjZSkgR0VUU1RSVUNUKHR1cCkpLT5wbnB1YmlkOwogCi0JCXJlc3VsdCA9IGxhcHBlbmRf b2lkKHJlc3VsdCwgcHViaWQpOworCQlpZiAoc2tpcHB1YiA9PSAoKEZvcm1fcGdfcHVibGljYXRp b25fbmFtZXNwYWNlKSBHRVRTVFJVQ1QodHVwKSktPnBuc2tpcCkKKwkJCXJlc3VsdCA9IGxhcHBl bmRfb2lkKHJlc3VsdCwgcHViaWQpOwogCX0KIAogCVJlbGVhc2VTeXNDYWNoZUxpc3QocHVic2No bGlzdCk7CkBAIC05NjEsNyArOTg4LDcgQEAgR2V0U2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMo T2lkIHNjaGVtYWlkLCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQpCiAgKiBwdWJsaWNh dGlvbi4KICAqLwogTGlzdCAqCi1HZXRBbGxTY2hlbWFQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQg cHViaWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCkKK0dldEFsbFNjaGVtYVB1Ymxp Y2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0 LCBib29sIGJza2lwKQogewogCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKIAlMaXN0CSAgICpwdWJz Y2hlbWFsaXN0ID0gR2V0UHVibGljYXRpb25TY2hlbWFzKHB1YmlkKTsKQEAgLTk2OSwxMSArOTk2 LDE1IEBAIEdldEFsbFNjaGVtYVB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgUHVibGlj YXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0KQogCiAJZm9yZWFjaChjZWxsLCBwdWJzY2hlbWFsaXN0 KQogCXsKLQkJT2lkCQkJc2NoZW1haWQgPSBsZmlyc3Rfb2lkKGNlbGwpOworCQlQdWJsaWNhdGlv blNjaEluZm8gKnB1YnNjaCA9IChQdWJsaWNhdGlvblNjaEluZm8gKikgbGZpcnN0KGNlbGwpOwog CQlMaXN0CSAgICpzY2hlbWFSZWxzID0gTklMOwogCi0JCXNjaGVtYVJlbHMgPSBHZXRTY2hlbWFQ dWJsaWNhdGlvblJlbGF0aW9ucyhzY2hlbWFpZCwgcHViX3BhcnRvcHQpOwotCQlyZXN1bHQgPSBs aXN0X2NvbmNhdChyZXN1bHQsIHNjaGVtYVJlbHMpOworCQkvKiBTa2lwIHRoZSBza2lwIHNjaGVt YXMgaWYgYnNraXAgaXMgdHJ1ZSAqLworCQlpZiAoYnNraXAgJiYgIXB1YnNjaC0+c2tpcCkKKwkJ eworCQkJc2NoZW1hUmVscyA9IEdldFNjaGVtYVB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YnNjaC0+ b2lkLCBwdWJfcGFydG9wdCk7CisJCQlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQsIHNjaGVt YVJlbHMpOworCQl9CiAJfQogCiAJcmV0dXJuIHJlc3VsdDsKQEAgLTExMDcsNyArMTEzOCw4IEBA IHBnX2dldF9wdWJsaWNhdGlvbl90YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKIAkJICovCiAJCWlm IChwdWJsaWNhdGlvbi0+YWxsdGFibGVzKQogCQl7Ci0JCQl0YWJsZXMgPSBHZXRBbGxUYWJsZXNQ dWJsaWNhdGlvblJlbGF0aW9ucyhwdWJsaWNhdGlvbi0+cHVidmlhcm9vdCk7CisJCQl0YWJsZXMg PSBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJsaWNhdGlvbi0+b2lkLAorCQkJ CQkJCQkJCQkJCSAgcHVibGljYXRpb24tPnB1YnZpYXJvb3QpOwogCQl9CiAJCWVsc2UKIAkJewpA QCAtMTEyMSw3ICsxMTUzLDggQEAgcGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxlcyhQR19GVU5DVElP Tl9BUkdTKQogCQkJc2NoZW1hcmVsaWRzID0gR2V0QWxsU2NoZW1hUHVibGljYXRpb25SZWxhdGlv bnMocHVibGljYXRpb24tPm9pZCwKIAkJCQkJCQkJCQkJCQkJCXB1YmxpY2F0aW9uLT5wdWJ2aWFy b290ID8KIAkJCQkJCQkJCQkJCQkJCVBVQkxJQ0FUSU9OX1BBUlRfUk9PVCA6Ci0JCQkJCQkJCQkJ CQkJCQlQVUJMSUNBVElPTl9QQVJUX0xFQUYpOworCQkJCQkJCQkJCQkJCQkJUFVCTElDQVRJT05f UEFSVF9MRUFGLAorCQkJCQkJCQkJCQkJCQkJdHJ1ZSk7CiAJCQl0YWJsZXMgPSBsaXN0X2NvbmNh dF91bmlxdWVfb2lkKHJlbGlkcywgc2NoZW1hcmVsaWRzKTsKIAogCQkJLyoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvcHVibGljYXRpb25jbWRzLmMKaW5kZXggN2FhY2I2YjJmZS4uNjg2MzkwMGJkOSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKQEAgLTE3Nyw4ICsxNzcsOCBAQCBP YmplY3RzSW5QdWJsaWNhdGlvblRvT2lkcyhMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIFBhcnNlU3Rh dGUgKnBzdGF0ZSwKIAogCWZvcmVhY2goY2VsbCwgcHVib2Jqc3BlY19saXN0KQogCXsKLQkJT2lk CQkJc2NoZW1haWQ7CiAJCUxpc3QJICAgKnNlYXJjaF9wYXRoOworCQlQdWJsaWNhdGlvblNjaElu Zm8gKnB1YnNjaCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uU2NoSW5mbyk7CiAKIAkJcHVib2JqID0g KFB1YmxpY2F0aW9uT2JqU3BlYyAqKSBsZmlyc3QoY2VsbCk7CiAKQEAgLTE4OCwxMCArMTg4LDEx IEBAIE9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKExpc3QgKnB1Ym9ianNwZWNfbGlzdCwgUGFy c2VTdGF0ZSAqcHN0YXRlLAogCQkJCSpyZWxzID0gbGFwcGVuZCgqcmVscywgcHVib2JqLT5wdWJ0 YWJsZSk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIFBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9TQ0hF TUE6Ci0JCQkJc2NoZW1haWQgPSBnZXRfbmFtZXNwYWNlX29pZChwdWJvYmotPm5hbWUsIGZhbHNl KTsKKwkJCQlwdWJzY2gtPm9pZCA9IGdldF9uYW1lc3BhY2Vfb2lkKHB1Ym9iai0+bmFtZSwgZmFs c2UpOworCQkJCXB1YnNjaC0+c2tpcCA9IHB1Ym9iai0+c2tpcDsKIAogCQkJCS8qIEZpbHRlciBv dXQgZHVwbGljYXRlcyBpZiB1c2VyIHNwZWNpZmllcyAic2NoMSwgc2NoMSIgKi8KLQkJCQkqc2No ZW1hcyA9IGxpc3RfYXBwZW5kX3VuaXF1ZV9vaWQoKnNjaGVtYXMsIHNjaGVtYWlkKTsKKwkJCQkq c2NoZW1hcyA9IGxpc3RfYXBwZW5kX3VuaXF1ZSgqc2NoZW1hcywgcHVic2NoKTsKIAkJCQlicmVh azsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX0NVUl9TQ0hFTUE6CiAJCQkJc2Vh cmNoX3BhdGggPSBmZXRjaF9zZWFyY2hfcGF0aChmYWxzZSk7CkBAIC0yMDAsMTEgKzIwMSwxMiBA QCBPYmplY3RzSW5QdWJsaWNhdGlvblRvT2lkcyhMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIFBhcnNl U3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQllcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX1NDSEVNQSks CiAJCQkJCQkJZXJybXNnKCJubyBzY2hlbWEgaGFzIGJlZW4gc2VsZWN0ZWQgZm9yIENVUlJFTlRf U0NIRU1BIikpOwogCi0JCQkJc2NoZW1haWQgPSBsaW5pdGlhbF9vaWQoc2VhcmNoX3BhdGgpOwor CQkJCXB1YnNjaC0+b2lkID0gbGluaXRpYWxfb2lkKHNlYXJjaF9wYXRoKTsKIAkJCQlsaXN0X2Zy ZWUoc2VhcmNoX3BhdGgpOworCQkJCXB1YnNjaC0+c2tpcCA9IHB1Ym9iai0+c2tpcDsKIAogCQkJ CS8qIEZpbHRlciBvdXQgZHVwbGljYXRlcyBpZiB1c2VyIHNwZWNpZmllcyAic2NoMSwgc2NoMSIg Ki8KLQkJCQkqc2NoZW1hcyA9IGxpc3RfYXBwZW5kX3VuaXF1ZV9vaWQoKnNjaGVtYXMsIHNjaGVt YWlkKTsKKwkJCQkqc2NoZW1hcyA9IGxpc3RfYXBwZW5kX3VuaXF1ZSgqc2NoZW1hcywgcHVic2No KTsKIAkJCQlicmVhazsKIAkJCWRlZmF1bHQ6CiAJCQkJLyogc2hvdWxkbid0IGhhcHBlbiAqLwpA QCAtMjMwLDI0ICsyMzIsMjkgQEAgQ2hlY2tPYmpTY2hlbWFOb3RBbHJlYWR5SW5QdWJsaWNhdGlv bihMaXN0ICpyZWxzLCBMaXN0ICpzY2hlbWFpZGxpc3QsCiAJCVJlbGF0aW9uCXJlbCA9IHB1Yl9y ZWwtPnJlbGF0aW9uOwogCQlPaWQJCQlyZWxTY2hlbWFJZCA9IFJlbGF0aW9uR2V0TmFtZXNwYWNl KHJlbCk7CiAKLQkJaWYgKGxpc3RfbWVtYmVyX29pZChzY2hlbWFpZGxpc3QsIHJlbFNjaGVtYUlk KSkKKwkJZm9yZWFjaChsYywgc2NoZW1haWRsaXN0KQogCQl7Ci0JCQlpZiAoY2hlY2tvYmp0eXBl ID09IFBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9TQ0hFTUEpCi0JCQkJZXJlcG9ydChFUlJPUiwK LQkJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCi0JCQkJCQll cnJtc2coImNhbm5vdCBhZGQgc2NoZW1hIFwiJXNcIiB0byBwdWJsaWNhdGlvbiIsCi0JCQkJCQkJ ICAgZ2V0X25hbWVzcGFjZV9uYW1lKHJlbFNjaGVtYUlkKSksCi0JCQkJCQllcnJkZXRhaWwoIlRh YmxlIFwiJXNcIiBpbiBzY2hlbWEgXCIlc1wiIGlzIGFscmVhZHkgcGFydCBvZiB0aGUgcHVibGlj YXRpb24sIGFkZGluZyB0aGUgc2FtZSBzY2hlbWEgaXMgbm90IHN1cHBvcnRlZC4iLAotCQkJCQkJ CQkgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCksCi0JCQkJCQkJCSAgZ2V0X25hbWVzcGFj ZV9uYW1lKHJlbFNjaGVtYUlkKSkpOwotCQkJZWxzZSBpZiAoY2hlY2tvYmp0eXBlID09IFBVQkxJ Q0FUSU9OT0JKX1RBQkxFKQotCQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCQllcnJjb2RlKEVSUkNP REVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAotCQkJCQkJZXJybXNnKCJjYW5ub3QgYWRkIHJl bGF0aW9uIFwiJXMuJXNcIiB0byBwdWJsaWNhdGlvbiIsCi0JCQkJCQkJICAgZ2V0X25hbWVzcGFj ZV9uYW1lKHJlbFNjaGVtYUlkKSwKLQkJCQkJCQkgICBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShy ZWwpKSwKLQkJCQkJCWVycmRldGFpbCgiVGFibGUncyBzY2hlbWEgXCIlc1wiIGlzIGFscmVhZHkg cGFydCBvZiB0aGUgcHVibGljYXRpb24gb3IgcGFydCBvZiB0aGUgc3BlY2lmaWVkIHNjaGVtYSBs aXN0LiIsCi0JCQkJCQkJCSAgZ2V0X25hbWVzcGFjZV9uYW1lKHJlbFNjaGVtYUlkKSkpOworCQkJ UHVibGljYXRpb25TY2hJbmZvICpwdWJfc2NoID0gKFB1YmxpY2F0aW9uU2NoSW5mbyAqKSBsZmly c3QobGMpOworCisJCQlpZiAocHViX3NjaC0+b2lkID09IHJlbFNjaGVtYUlkKQorCQkJeworCQkJ CWlmIChjaGVja29ianR5cGUgPT0gUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX1NDSEVNQSkKKwkJ CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVU RVJfVkFMVUUpLAorCQkJCQkJCWVycm1zZygiY2Fubm90IGFkZCBzY2hlbWEgXCIlc1wiIHRvIHB1 YmxpY2F0aW9uIiwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKHJlbFNjaGVtYUlkKSksCisJ CQkJCQkJZXJyZGV0YWlsKCJUYWJsZSBcIiVzXCIgaW4gc2NoZW1hIFwiJXNcIiBpcyBhbHJlYWR5 IHBhcnQgb2YgdGhlIHB1YmxpY2F0aW9uLCBhZGRpbmcgdGhlIHNhbWUgc2NoZW1hIGlzIG5vdCBz dXBwb3J0ZWQuIiwKKwkJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCksCisJCQkJ CQkJCQlnZXRfbmFtZXNwYWNlX25hbWUocmVsU2NoZW1hSWQpKSk7CisJCQkJZWxzZSBpZiAoY2hl Y2tvYmp0eXBlID09IFBVQkxJQ0FUSU9OT0JKX1RBQkxFKQorCQkJCQllcmVwb3J0KEVSUk9SLAor CQkJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJCQkJ ZXJybXNnKCJjYW5ub3QgYWRkIHJlbGF0aW9uIFwiJXMuJXNcIiB0byBwdWJsaWNhdGlvbiIsCisJ CQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShyZWxTY2hlbWFJZCksCisJCQkJCQkJCVJlbGF0aW9u R2V0UmVsYXRpb25OYW1lKHJlbCkpLAorCQkJCQkJCWVycmRldGFpbCgiVGFibGUncyBzY2hlbWEg XCIlc1wiIGlzIGFscmVhZHkgcGFydCBvZiB0aGUgcHVibGljYXRpb24gb3IgcGFydCBvZiB0aGUg c3BlY2lmaWVkIHNjaGVtYSBsaXN0LiIsCisJCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUocmVs U2NoZW1hSWQpKSk7CisJCQl9CiAJCX0KIAl9CiB9CkBAIC0yOTcsNyArMzA0LDcgQEAgY29udGFp bl9pbnZhbGlkX3JmY29sdW1uX3dhbGtlcihOb2RlICpub2RlLCByZl9jb250ZXh0ICpjb250ZXh0 KQogICovCiBib29sCiBwdWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBS ZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAotCQkJCQkJIGJvb2wgcHVidmlhcm9v dCkKKwkJCQkJCSBib29sIHB1YnZpYXJvb3QsIGJvb2wgcHViYWxsdGFibGVzKQogewogCUhlYXBU dXBsZQlyZnR1cGxlOwogCU9pZAkJCXJlbGlkID0gUmVsYXRpb25HZXRSZWxpZChyZWxhdGlvbik7 CkBAIC0zMjQsNyArMzMxLDggQEAgcHViX3JmX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBw dWJpZCwgUmVsYXRpb24gcmVsYXRpb24sIExpc3QgKmFuY2VzdG9ycywKIAlpZiAocHVidmlhcm9v dCAmJiByZWxhdGlvbi0+cmRfcmVsLT5yZWxpc3BhcnRpdGlvbikKIAl7CiAJCXB1Ymxpc2hfYXNf cmVsaWQKLQkJCT0gR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihwdWJpZCwgYW5jZXN0 b3JzLCBOVUxMKTsKKwkJCT0gR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihwdWJpZCwg YW5jZXN0b3JzLCBOVUxMLAorCQkJCQkJCQkJCQkgIHB1YmFsbHRhYmxlcyk7CiAKIAkJaWYgKCFP aWRJc1ZhbGlkKHB1Ymxpc2hfYXNfcmVsaWQpKQogCQkJcHVibGlzaF9hc19yZWxpZCA9IHJlbGlk OwpAQCAtMzczLDcgKzM4MSw3IEBAIHB1Yl9yZl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQg cHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiAgKi8KIGJvb2wKIHB1 Yl9jb2xsaXN0X2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVs YXRpb24sIExpc3QgKmFuY2VzdG9ycywKLQkJCQkJCSBib29sIHB1YnZpYXJvb3QpCisJCQkJCQkg Ym9vbCBwdWJ2aWFyb290LCBib29sIHB1YmFsbHRhYmxlcykKIHsKIAlIZWFwVHVwbGUJdHVwbGU7 CiAJT2lkCQkJcmVsaWQgPSBSZWxhdGlvbkdldFJlbGlkKHJlbGF0aW9uKTsKQEAgLTM5Miw3ICs0 MDAsNyBAQCBwdWJfY29sbGlzdF9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJl bGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcgogCSAqLwogCWlmIChwdWJ2aWFyb290ICYm IHJlbGF0aW9uLT5yZF9yZWwtPnJlbGlzcGFydGl0aW9uKQogCXsKLQkJcHVibGlzaF9hc19yZWxp ZCA9IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViaWQsIGFuY2VzdG9ycywgTlVM TCk7CisJCXB1Ymxpc2hfYXNfcmVsaWQgPSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9u KHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwsIHB1YmFsbHRhYmxlcyk7CiAKIAkJaWYgKCFPaWRJc1Zh bGlkKHB1Ymxpc2hfYXNfcmVsaWQpKQogCQkJcHVibGlzaF9hc19yZWxpZCA9IHJlbGlkOwpAQCAt ODM1LDE4ICs4NDMsMjEgQEAgQ3JlYXRlUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBD cmVhdGVQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJLyogTWFrZSB0aGUgY2hhbmdlcyB2aXNpYmxl LiAqLwogCUNvbW1hbmRDb3VudGVySW5jcmVtZW50KCk7CiAKKwlPYmplY3RzSW5QdWJsaWNhdGlv blRvT2lkcyhzdG10LT5wdWJvYmplY3RzLCBwc3RhdGUsICZyZWxhdGlvbnMsCisJCQkJCQkJICAg JnNjaGVtYWlkbGlzdCk7CisKIAkvKiBBc3NvY2lhdGUgb2JqZWN0cyB3aXRoIHRoZSBwdWJsaWNh dGlvbi4gKi8KIAlpZiAoc3RtdC0+Zm9yX2FsbF90YWJsZXMpCiAJeworCQlBc3NlcnQoIXJlbGF0 aW9ucyk7CisKIAkJLyogSW52YWxpZGF0ZSByZWxjYWNoZSBzbyB0aGF0IHB1YmxpY2F0aW9uIGlu Zm8gaXMgcmVidWlsdC4gKi8KIAkJQ2FjaGVJbnZhbGlkYXRlUmVsY2FjaGVBbGwoKTsKIAl9CiAJ ZWxzZQogCXsKLQkJT2JqZWN0c0luUHVibGljYXRpb25Ub09pZHMoc3RtdC0+cHVib2JqZWN0cywg cHN0YXRlLCAmcmVsYXRpb25zLAotCQkJCQkJCQkgICAmc2NoZW1haWRsaXN0KTsKIAotCQkvKiBG T1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcmVxdWlyZXMgc3VwZXJ1c2VyICovCisJCS8qIEZPUiBb U0tJUF0gQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcmVxdWlyZXMgc3VwZXJ1c2VyICovCiAJCWlmIChs aXN0X2xlbmd0aChzY2hlbWFpZGxpc3QpID4gMCAmJiAhc3VwZXJ1c2VyKCkpCiAJCQllcmVwb3J0 KEVSUk9SLAogCQkJCQllcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCkBA IC04NjksMTYgKzg4MCwxNyBAQCBDcmVhdGVQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUs IENyZWF0ZVB1YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAkJCVB1YmxpY2F0aW9uQWRkVGFibGVzKHB1 Ym9pZCwgcmVscywgdHJ1ZSwgTlVMTCk7CiAJCQlDbG9zZVRhYmxlTGlzdChyZWxzKTsKIAkJfQor CX0KIAotCQlpZiAobGlzdF9sZW5ndGgoc2NoZW1haWRsaXN0KSA+IDApCi0JCXsKLQkJCS8qCi0J CQkgKiBTY2hlbWEgbG9jayBpcyBoZWxkIHVudGlsIHRoZSBwdWJsaWNhdGlvbiBpcyBjcmVhdGVk IHRvIHByZXZlbnQKLQkJCSAqIGNvbmN1cnJlbnQgc2NoZW1hIGRlbGV0aW9uLgotCQkJICovCi0J CQlMb2NrU2NoZW1hTGlzdChzY2hlbWFpZGxpc3QpOwotCQkJUHVibGljYXRpb25BZGRTY2hlbWFz KHB1Ym9pZCwgc2NoZW1haWRsaXN0LCB0cnVlLCBOVUxMKTsKLQkJfQorCS8qIHRhYmxlcyBhZGRl ZCB0aHJvdWdoIGEgc2NoZW1hICovCisJaWYgKGxpc3RfbGVuZ3RoKHNjaGVtYWlkbGlzdCkgPiAw KQorCXsKKwkJLyoKKwkJICogU2NoZW1hIGxvY2sgaXMgaGVsZCB1bnRpbCB0aGUgcHVibGljYXRp b24gaXMgY3JlYXRlZCB0byBwcmV2ZW50CisJCSAqIGNvbmN1cnJlbnQgc2NoZW1hIGRlbGV0aW9u LgorCQkgKi8KKwkJTG9ja1NjaGVtYUxpc3Qoc2NoZW1haWRsaXN0KTsKKwkJUHVibGljYXRpb25B ZGRTY2hlbWFzKHB1Ym9pZCwgc2NoZW1haWRsaXN0LCB0cnVlLCBOVUxMKTsKIAl9CiAKIAl0YWJs ZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOwpAQCAtMTA2OSw3ICsxMDgxLDggQEAgQWx0 ZXJQdWJsaWNhdGlvbk9wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9u U3RtdCAqc3RtdCwKIAkJfQogCiAJCXNjaGVtYXJlbGlkcyA9IEdldEFsbFNjaGVtYVB1YmxpY2F0 aW9uUmVsYXRpb25zKHB1YmZvcm0tPm9pZCwKLQkJCQkJCQkJCQkJCQkJUFVCTElDQVRJT05fUEFS VF9BTEwpOworCQkJCQkJCQkJCQkJCQlQVUJMSUNBVElPTl9QQVJUX0FMTCwKKwkJCQkJCQkJCQkJ CQkJZmFsc2UpOwogCQlyZWxpZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHJlbGlkcywgc2No ZW1hcmVsaWRzKTsKIAogCQlJbnZhbGlkYXRlUHVibGljYXRpb25SZWxzKHJlbGlkcyk7CkBAIC0x MTMzLDcgKzExNDYsNyBAQCBBbHRlclB1YmxpY2F0aW9uVGFibGVzKEFsdGVyUHVibGljYXRpb25T dG10ICpzdG10LCBIZWFwVHVwbGUgdHVwLAogCQkgKiBDaGVjayBpZiB0aGUgcmVsYXRpb24gaXMg bWVtYmVyIG9mIHRoZSBleGlzdGluZyBzY2hlbWEgaW4gdGhlCiAJCSAqIHB1YmxpY2F0aW9uIG9y IG1lbWJlciBvZiB0aGUgc2NoZW1hIGxpc3Qgc3BlY2lmaWVkLgogCQkgKi8KLQkJc2NoZW1hcyA9 IGxpc3RfY29uY2F0X2NvcHkoc2NoZW1haWRsaXN0LCBHZXRQdWJsaWNhdGlvblNjaGVtYXMocHVi aWQpKTsKKwkJc2NoZW1hcyA9IGxpc3RfY29uY2F0KHNjaGVtYWlkbGlzdCwgR2V0UHVibGljYXRp b25TY2hlbWFzKHB1YmlkKSk7CiAJCUNoZWNrT2JqU2NoZW1hTm90QWxyZWFkeUluUHVibGljYXRp b24ocmVscywgc2NoZW1hcywKIAkJCQkJCQkJCQkJICBQVUJMSUNBVElPTk9CSl9UQUJMRSk7CiAK QEAgLTEzMjYsNyArMTMzOSw3IEBAIEFsdGVyUHVibGljYXRpb25TY2hlbWFzKEFsdGVyUHVibGlj YXRpb25TdG10ICpzdG10LAogCQlMaXN0CSAgICpkZWxzY2hlbWFzID0gTklMOwogCiAJCS8qIElk ZW50aWZ5IHdoaWNoIHNjaGVtYXMgc2hvdWxkIGJlIGRyb3BwZWQgKi8KLQkJZGVsc2NoZW1hcyA9 IGxpc3RfZGlmZmVyZW5jZV9vaWQob2xkc2NoZW1haWRzLCBzY2hlbWFpZGxpc3QpOworCQlkZWxz Y2hlbWFzID0gbGlzdF9kaWZmZXJlbmNlKG9sZHNjaGVtYWlkcywgc2NoZW1haWRsaXN0KTsKIAog CQkvKgogCQkgKiBTY2hlbWEgbG9jayBpcyBoZWxkIHVudGlsIHRoZSBwdWJsaWNhdGlvbiBpcyBh bHRlcmVkIHRvIHByZXZlbnQKQEAgLTEzNTQsNiArMTM2NywyMCBAQCBDaGVja0FsdGVyUHVibGlj YXRpb24oQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAsCiAJCQkJCSAg TGlzdCAqdGFibGVzLCBMaXN0ICpzY2hlbWFpZGxpc3QpCiB7CiAJRm9ybV9wZ19wdWJsaWNhdGlv biBwdWJmb3JtID0gKEZvcm1fcGdfcHVibGljYXRpb24pIEdFVFNUUlVDVCh0dXApOworCUxpc3RD ZWxsICAgKmxjOworCisJYm9vbAkJbm9uc2tpcHNjaGVtYSA9IGZhbHNlOworCWJvb2wJCXNraXBz Y2hlbWEgPSBmYWxzZTsKKworCWZvcmVhY2gobGMsIHNjaGVtYWlkbGlzdCkKKwl7CisJCVB1Ymxp Y2F0aW9uU2NoSW5mbyAqcHViX3NjaCA9IChQdWJsaWNhdGlvblNjaEluZm8gKikgbGZpcnN0KGxj KTsKKworCQlpZiAoIXB1Yl9zY2gtPnNraXApCisJCQlub25za2lwc2NoZW1hID0gdHJ1ZTsKKwkJ ZWxzZQorCQkJc2tpcHNjaGVtYSA9IHRydWU7CisJfQogCiAJaWYgKChzdG10LT5hY3Rpb24gPT0g QVBfQWRkT2JqZWN0cyB8fCBzdG10LT5hY3Rpb24gPT0gQVBfU2V0T2JqZWN0cykgJiYKIAkJc2No ZW1haWRsaXN0ICYmICFzdXBlcnVzZXIoKSkKQEAgLTEzNjUsMTMgKzEzOTIsMjAgQEAgQ2hlY2tB bHRlclB1YmxpY2F0aW9uKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LCBIZWFwVHVwbGUgdHVw LAogCSAqIENoZWNrIHRoYXQgdXNlciBpcyBhbGxvd2VkIHRvIG1hbmlwdWxhdGUgdGhlIHB1Ymxp Y2F0aW9uIHRhYmxlcyBpbgogCSAqIHNjaGVtYQogCSAqLwotCWlmIChzY2hlbWFpZGxpc3QgJiYg cHViZm9ybS0+cHViYWxsdGFibGVzKQorCWlmIChub25za2lwc2NoZW1hICYmIHB1YmZvcm0tPnB1 YmFsbHRhYmxlcykKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVD VF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKIAkJCQkgZXJybXNnKCJwdWJsaWNhdGlvbiBc IiVzXCIgaXMgZGVmaW5lZCBhcyBGT1IgQUxMIFRBQkxFUyIsCiAJCQkJCQlOYW1lU3RyKHB1YmZv cm0tPnB1Ym5hbWUpKSwKIAkJCQkgZXJyZGV0YWlsKCJUYWJsZXMgZnJvbSBzY2hlbWEgY2Fubm90 IGJlIGFkZGVkIHRvLCBkcm9wcGVkIGZyb20sIG9yIHNldCBvbiBGT1IgQUxMIFRBQkxFUyBwdWJs aWNhdGlvbnMuIikpKTsKIAorCWlmIChza2lwc2NoZW1hICYmICFwdWJmb3JtLT5wdWJhbGx0YWJs ZXMpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lO X1BSRVJFUVVJU0lURV9TVEFURSksCisJCQkJIGVycm1zZygicHVibGljYXRpb24gXCIlc1wiIGlz IG5vdCBkZWZpbmVkIGFzIEZPUiBBTEwgVEFCTEVTIiwKKwkJCQkJCU5hbWVTdHIocHViZm9ybS0+ cHVibmFtZSkpLAorCQkJCWVycmRldGFpbCgiU2tpcCB0YWJsZXMgZnJvbSBzY2hlbWEgY2Fubm90 IGJlIGFkZGVkIHRvLCBkcm9wcGVkIGZyb20sIG9yIHNldCBvbiBOT04gQUxMIFRBQkxFUyBwdWJs aWNhdGlvbnMuIikpKTsKKwogCS8qIENoZWNrIHRoYXQgdXNlciBpcyBhbGxvd2VkIHRvIG1hbmlw dWxhdGUgdGhlIHB1YmxpY2F0aW9uIHRhYmxlcy4gKi8KIAlpZiAodGFibGVzICYmIHB1YmZvcm0t PnB1YmFsbHRhYmxlcykKIAkJZXJlcG9ydChFUlJPUiwKQEAgLTE3NzUsNyArMTgwOSw4IEBAIExv Y2tTY2hlbWFMaXN0KExpc3QgKnNjaGVtYWxpc3QpCiAKIAlmb3JlYWNoKGxjLCBzY2hlbWFsaXN0 KQogCXsKLQkJT2lkCQkJc2NoZW1haWQgPSBsZmlyc3Rfb2lkKGxjKTsKKwkJUHVibGljYXRpb25T Y2hJbmZvICpwdWJzY2ggPSAoUHVibGljYXRpb25TY2hJbmZvICopIGxmaXJzdChsYyk7CisJCU9p ZAkJCXNjaGVtYWlkID0gcHVic2NoLT5vaWQ7CiAKIAkJLyogQWxsb3cgcXVlcnkgY2FuY2VsIGlu IGNhc2UgdGhpcyB0YWtlcyBhIGxvbmcgdGltZSAqLwogCQlDSEVDS19GT1JfSU5URVJSVVBUUygp OwpAQCAtMTg4NSwxMCArMTkyMCwxMCBAQCBQdWJsaWNhdGlvbkFkZFNjaGVtYXMoT2lkIHB1Ymlk LCBMaXN0ICpzY2hlbWFzLCBib29sIGlmX25vdF9leGlzdHMsCiAKIAlmb3JlYWNoKGxjLCBzY2hl bWFzKQogCXsKLQkJT2lkCQkJc2NoZW1haWQgPSBsZmlyc3Rfb2lkKGxjKTsKKwkJUHVibGljYXRp b25TY2hJbmZvICpwdWJzY2ggPSAoUHVibGljYXRpb25TY2hJbmZvICopIGxmaXJzdChsYyk7CiAJ CU9iamVjdEFkZHJlc3Mgb2JqOwogCi0JCW9iaiA9IHB1YmxpY2F0aW9uX2FkZF9zY2hlbWEocHVi aWQsIHNjaGVtYWlkLCBpZl9ub3RfZXhpc3RzKTsKKwkJb2JqID0gcHVibGljYXRpb25fYWRkX3Nj aGVtYShwdWJpZCwgcHVic2NoLCBpZl9ub3RfZXhpc3RzKTsKIAkJaWYgKHN0bXQpCiAJCXsKIAkJ CUV2ZW50VHJpZ2dlckNvbGxlY3RTaW1wbGVDb21tYW5kKG9iaiwgSW52YWxpZE9iamVjdEFkZHJl c3MsCkBAIC0xOTEyLDcgKzE5NDcsOCBAQCBQdWJsaWNhdGlvbkRyb3BTY2hlbWFzKE9pZCBwdWJp ZCwgTGlzdCAqc2NoZW1hcywgYm9vbCBtaXNzaW5nX29rKQogCiAJZm9yZWFjaChsYywgc2NoZW1h cykKIAl7Ci0JCU9pZAkJCXNjaGVtYWlkID0gbGZpcnN0X29pZChsYyk7CisJCVB1YmxpY2F0aW9u U2NoSW5mbyAqcHVic2NoID0gKFB1YmxpY2F0aW9uU2NoSW5mbyAqKSBsZmlyc3QobGMpOworCQlP aWQJCQlzY2hlbWFpZCA9IHB1YnNjaC0+b2lkOwogCiAJCXBzaWQgPSBHZXRTeXNDYWNoZU9pZDIo UFVCTElDQVRJT05OQU1FU1BBQ0VNQVAsCiAJCQkJCQkJICAgQW51bV9wZ19wdWJsaWNhdGlvbl9u YW1lc3BhY2Vfb2lkLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRz LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCA5MGVkZDBiYjk3Li4x NDFhMmVhYmY4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMTY0MTIsNyArMTY0MTIs NyBAQCBBbHRlclRhYmxlTmFtZXNwYWNlKEFsdGVyT2JqZWN0U2NoZW1hU3RtdCAqc3RtdCwgT2lk ICpvbGRzY2hlbWEpCiAJaWYgKHN0bXQtPm9iamVjdFR5cGUgPT0gT0JKRUNUX1RBQkxFKQogCXsK IAkJTGlzdENlbGwgICAqbGM7Ci0JCUxpc3QJICAgKnNjaGVtYVB1YmlkcyA9IEdldFNjaGVtYVB1 YmxpY2F0aW9ucyhuc3BPaWQpOworCQlMaXN0CSAgICpzY2hlbWFQdWJpZHMgPSBHZXRTY2hlbWFQ dWJsaWNhdGlvbnMobnNwT2lkLCBmYWxzZSk7CiAJCUxpc3QJICAgKnJlbFB1YmlkcyA9IEdldFJl bGF0aW9uUHVibGljYXRpb25zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSk7CiAKIAkJZm9yZWFjaChs YywgcmVsUHViaWRzKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvY29weWZ1bmNzLmMg Yi9zcmMvYmFja2VuZC9ub2Rlcy9jb3B5ZnVuY3MuYwppbmRleCA4MzZmNDI3ZWE4Li5lMjM2OWJi MDU5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9jb3B5ZnVuY3MuYworKysgYi9zcmMv YmFja2VuZC9ub2Rlcy9jb3B5ZnVuY3MuYwpAQCAtNTM4Niw2ICs1Mzg2LDE3IEBAIF9jb3B5UHVi bGljYXRpb25UYWJsZShjb25zdCBQdWJsaWNhdGlvblRhYmxlICpmcm9tKQogCXJldHVybiBuZXdu b2RlOwogfQogCitzdGF0aWMgUHVibGljYXRpb25TY2hJbmZvICoKK19jb3B5UHVibGljYXRpb25T Y2hJbmZvKGNvbnN0IFB1YmxpY2F0aW9uU2NoSW5mbyAqZnJvbSkKK3sKKwlQdWJsaWNhdGlvblNj aEluZm8gKm5ld25vZGUgPSBtYWtlTm9kZShQdWJsaWNhdGlvblNjaEluZm8pOworCisJQ09QWV9T Q0FMQVJfRklFTEQob2lkKTsKKwlDT1BZX1NDQUxBUl9GSUVMRChza2lwKTsKKworCXJldHVybiBu ZXdub2RlOworfQorCiBzdGF0aWMgQ3JlYXRlUHVibGljYXRpb25TdG10ICoKIF9jb3B5Q3JlYXRl UHVibGljYXRpb25TdG10KGNvbnN0IENyZWF0ZVB1YmxpY2F0aW9uU3RtdCAqZnJvbSkKIHsKQEAg LTY1NjUsNiArNjU3Niw5IEBAIGNvcHlPYmplY3RJbXBsKGNvbnN0IHZvaWQgKmZyb20pCiAJCWNh c2UgVF9QdWJsaWNhdGlvbk9ialNwZWM6CiAJCQlyZXR2YWwgPSBfY29weVB1YmxpY2F0aW9uT2Jq ZWN0KGZyb20pOwogCQkJYnJlYWs7CisJCWNhc2UgVF9QdWJsaWNhdGlvblNjaEluZm86CisJCQly ZXR2YWwgPSBfY29weVB1YmxpY2F0aW9uU2NoSW5mbyhmcm9tKTsKKwkJCWJyZWFrOwogCQljYXNl IFRfUHVibGljYXRpb25UYWJsZToKIAkJCXJldHZhbCA9IF9jb3B5UHVibGljYXRpb25UYWJsZShm cm9tKTsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvZXF1YWxmdW5j cy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvZXF1YWxmdW5jcy5jCmluZGV4IGUwMTNjMWJiZmUuLmUx OWNlNjlhMjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL2VxdWFsZnVuY3MuYworKysg Yi9zcmMvYmFja2VuZC9ub2Rlcy9lcXVhbGZ1bmNzLmMKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNs dWRlICJub2Rlcy9leHRlbnNpYmxlLmgiCiAjaW5jbHVkZSAibm9kZXMvcGF0aG5vZGVzLmgiCiAj aW5jbHVkZSAidXRpbHMvZGF0dW0uaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3B1YmxpY2F0aW9u LmgiCiAKIAogLyoKQEAgLTI2ODEsNiArMjY4MiwxNiBAQCBfZXF1YWxQdWJsaWNhdGlvblRhYmxl KGNvbnN0IFB1YmxpY2F0aW9uVGFibGUgKmEsIGNvbnN0IFB1YmxpY2F0aW9uVGFibGUgKmIpCiAJ cmV0dXJuIHRydWU7CiB9CiAKK3N0YXRpYyBib29sCitfZXF1YWxQdWJsaWNhdGlvblNjaGVtYShj b25zdCBQdWJsaWNhdGlvblNjaEluZm8gKmEsCisJCQkJCQljb25zdCBQdWJsaWNhdGlvblNjaElu Zm8gKmIpCit7CisJQ09NUEFSRV9TQ0FMQVJfRklFTEQob2lkKTsKKwlDT01QQVJFX1NDQUxBUl9G SUVMRChza2lwKTsKKworCXJldHVybiB0cnVlOworfQorCiBzdGF0aWMgYm9vbAogX2VxdWFsQ3Jl YXRlUHVibGljYXRpb25TdG10KGNvbnN0IENyZWF0ZVB1YmxpY2F0aW9uU3RtdCAqYSwKIAkJCQkJ CQljb25zdCBDcmVhdGVQdWJsaWNhdGlvblN0bXQgKmIpCkBAIC00MzY4LDYgKzQzNzksOSBAQCBl cXVhbChjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiKQogCQljYXNlIFRfUHVibGljYXRpb25P YmpTcGVjOgogCQkJcmV0dmFsID0gX2VxdWFsUHVibGljYXRpb25PYmplY3QoYSwgYik7CiAJCQli cmVhazsKKwkJY2FzZSBUX1B1YmxpY2F0aW9uU2NoSW5mbzoKKwkJCXJldHZhbCA9IF9lcXVhbFB1 YmxpY2F0aW9uU2NoZW1hKGEsIGIpOworCQkJYnJlYWs7CiAJCWNhc2UgVF9QdWJsaWNhdGlvblRh YmxlOgogCQkJcmV0dmFsID0gX2VxdWFsUHVibGljYXRpb25UYWJsZShhLCBiKTsKIAkJCWJyZWFr OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKaW5kZXggYzk5NDFkOWNiNC4uN2ZkOGQxOTRjZSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBA IC0yMTksNiArMjE5LDExIEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NDQVNiaXRzKGludCBjYXNfYml0 cywgaW50IGxvY2F0aW9uLCBjb25zdCBjaGFyICpjb25zdHJUeXBlLAogCQkJICAgYm9vbCAqbm9f aW5oZXJpdCwgY29yZV95eXNjYW5fdCB5eXNjYW5uZXIpOwogc3RhdGljIHZvaWQgcHJlcHJvY2Vz c19wdWJvYmpfbGlzdChMaXN0ICpwdWJvYmpzcGVjX2xpc3QsCiAJCQkJCQkJCSAgIGNvcmVfeXlz Y2FuX3QgeXlzY2FubmVyKTsKK3N0YXRpYyB2b2lkIHByZXByb2Nlc3NfYWxsdGFibGVzX3B1Ym9i al9saXN0KExpc3QgKnB1Ym9ianNwZWNfbGlzdCwKKwkJCQkJCQkJCQkJIGludCBsb2NhdGlvbiwK KwkJCQkJCQkJCQkJIGNvcmVfeXlzY2FuX3QgeXlzY2FubmVyKTsKK3N0YXRpYyB2b2lkIGNoZWNr X3NraXBfaW5fcHVib2JqX2xpc3QoTGlzdCAqcHVib2Jqc3BlY19saXN0LAorCQkJCQkJCQkJCQkg Y29yZV95eXNjYW5fdCB5eXNjYW5uZXIpOwogc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3 U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAogJX0K QEAgLTQ1NSw3ICs0NjAsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3Qo Y2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQkJCXRyYW5zZm9y bV9lbGVtZW50X2xpc3QgdHJhbnNmb3JtX3R5cGVfbGlzdAogCQkJCVRyaWdnZXJUcmFuc2l0aW9u cyBUcmlnZ2VyUmVmZXJlbmNpbmcKIAkJCQl2YWN1dW1fcmVsYXRpb25fbGlzdCBvcHRfdmFjdXVt X3JlbGF0aW9uX2xpc3QKLQkJCQlkcm9wX29wdGlvbl9saXN0IHB1Yl9vYmpfbGlzdAorCQkJCWRy b3Bfb3B0aW9uX2xpc3QgcHViX29ial9saXN0IHNraXBfcHViX29ial9saXN0CiAKICV0eXBlIDxu b2RlPglvcHRfcm91dGluZV9ib2R5CiAldHlwZSA8Z3JvdXBjbGF1c2U+IGdyb3VwX2NsYXVzZQpA QCAtOTg3OSwxMiArOTg4NCwxNyBAQCBDcmVhdGVQdWJsaWNhdGlvblN0bXQ6CiAJCQkJCW4tPm9w dGlvbnMgPSAkNDsKIAkJCQkJJCQgPSAoTm9kZSAqKW47CiAJCQkJfQotCQkJfCBDUkVBVEUgUFVC TElDQVRJT04gbmFtZSBGT1IgQUxMIFRBQkxFUyBvcHRfZGVmaW5pdGlvbgorCQkJfCBDUkVBVEUg UFVCTElDQVRJT04gbmFtZSBGT1IgQUxMIFRBQkxFUyBza2lwX3B1Yl9vYmpfbGlzdCBvcHRfZGVm aW5pdGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRlUHVibGljYXRpb25TdG10ICpuID0gbWFrZU5vZGUo Q3JlYXRlUHVibGljYXRpb25TdG10KTsKIAkJCQkJbi0+cHVibmFtZSA9ICQzOwotCQkJCQluLT5v cHRpb25zID0gJDc7CisJCQkJCW4tPm9wdGlvbnMgPSAkODsKKwkJCQkJbi0+cHVib2JqZWN0cyA9 IChMaXN0ICopJDc7CiAJCQkJCW4tPmZvcl9hbGxfdGFibGVzID0gdHJ1ZTsKKwkJCQkJcHJlcHJv Y2Vzc19wdWJvYmpfbGlzdChuLT5wdWJvYmplY3RzLCB5eXNjYW5uZXIpOworCQkJCQlwcmVwcm9j ZXNzX2FsbHRhYmxlc19wdWJvYmpfbGlzdChuLT5wdWJvYmplY3RzLAorCQkJCQkJCQkJCQkJCSBA NiwKKwkJCQkJCQkJCQkJCQkgeXlzY2FubmVyKTsKIAkJCQkJJCQgPSAoTm9kZSAqKW47CiAJCQkJ fQogCQkJfCBDUkVBVEUgUFVCTElDQVRJT04gbmFtZSBGT1IgcHViX29ial9saXN0IG9wdF9kZWZp bml0aW9uCkBAIC05ODk0LDYgKzk5MDQsNyBAQCBDcmVhdGVQdWJsaWNhdGlvblN0bXQ6CiAJCQkJ CW4tPm9wdGlvbnMgPSAkNjsKIAkJCQkJbi0+cHVib2JqZWN0cyA9IChMaXN0ICopJDU7CiAJCQkJ CXByZXByb2Nlc3NfcHVib2JqX2xpc3Qobi0+cHVib2JqZWN0cywgeXlzY2FubmVyKTsKKwkJCQkJ Y2hlY2tfc2tpcF9pbl9wdWJvYmpfbGlzdChuLT5wdWJvYmplY3RzLCB5eXNjYW5uZXIpOwogCQkJ CQkkJCA9IChOb2RlICopbjsKIAkJCQl9CiAJCTsKQEAgLTk5MjUsNiArOTkzNiw3IEBAIFB1Ymxp Y2F0aW9uT2JqU3BlYzoKIAkJCQl7CiAJCQkJCSQkID0gbWFrZU5vZGUoUHVibGljYXRpb25PYmpT cGVjKTsKIAkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9CSl9UQUJMRVNfSU5fU0NI RU1BOworCQkJCQkkJC0+c2tpcCA9IGZhbHNlOwogCQkJCQkkJC0+bmFtZSA9ICQ1OwogCQkJCQkk JC0+bG9jYXRpb24gPSBANTsKIAkJCQl9CkBAIC05OTMyLDggKzk5NDQsMjUgQEAgUHVibGljYXRp b25PYmpTcGVjOgogCQkJCXsKIAkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNwZWMp OwogCQkJCQkkJC0+cHVib2JqdHlwZSA9IFBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9DVVJfU0NI RU1BOworCQkJCQkkJC0+c2tpcCA9IGZhbHNlOwogCQkJCQkkJC0+bG9jYXRpb24gPSBANTsKIAkJ CQl9CisJCQl8IFNLSVAgQUxMIFRBQkxFUyBJTl9QIFNDSEVNQSBDb2xJZAorCQkJCXsKKwkJCQkJ JCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNwZWMpOworCQkJCQkkJC0+cHVib2JqdHlwZSA9 IFBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9TQ0hFTUE7CisJCQkJCSQkLT5uYW1lID0gJDY7CisJ CQkJCSQkLT5za2lwID0gdHJ1ZTsKKwkJCQkJJCQtPmxvY2F0aW9uID0gQDY7CisJCQkJfQorCQkJ fCBTS0lQIEFMTCBUQUJMRVMgSU5fUCBTQ0hFTUEgQ1VSUkVOVF9TQ0hFTUEKKwkJCQl7CisJCQkJ CSQkID0gbWFrZU5vZGUoUHVibGljYXRpb25PYmpTcGVjKTsKKwkJCQkJJCQtPnB1Ym9ianR5cGUg PSBQVUJMSUNBVElPTk9CSl9UQUJMRVNfSU5fQ1VSX1NDSEVNQTsKKwkJCQkJJCQtPnNraXAgPSB0 cnVlOworCQkJCQkkJC0+bG9jYXRpb24gPSBANjsKKwkJCQl9CisKIAkJCXwgQ29sSWQgb3B0X2Nv bHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCiAJCQkJewogCQkJCQkkJCA9IG1ha2VOb2RlKFB1Ymxp Y2F0aW9uT2JqU3BlYyk7CkBAIC0xMDI1Nyw2ICsxMDI4NiwxMiBAQCBvcHRfaW5zdGVhZDoKIAkJ OwogCiAKKyBza2lwX3B1Yl9vYmpfbGlzdDoJcHViX29ial9saXN0CisJCQkJCQl7ICQkID0gJDE7 IH0KKwkJCQkJfCAvKkVNUFRZKi8KKwkJCQkJCXsgJCQgPSBOVUxMOyB9CisJOworCiAvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKICAqCiAgKgkJUVVFUlk6CkBAIC0xODcxMiw2ICsxODc0Nyw3IEBAIHBy ZXByb2Nlc3NfcHVib2JqX2xpc3QoTGlzdCAqcHVib2Jqc3BlY19saXN0LCBjb3JlX3l5c2Nhbl90 IHl5c2Nhbm5lcikKIAlMaXN0Q2VsbCAgICpjZWxsOwogCVB1YmxpY2F0aW9uT2JqU3BlYyAqcHVi b2JqOwogCVB1YmxpY2F0aW9uT2JqU3BlY1R5cGUgcHJldm9ianR5cGUgPSBQVUJMSUNBVElPTk9C Sl9DT05USU5VQVRJT047CisJYm9vbCBwcmV2c2tpcG9iaiA9IGZhbHNlOwogCiAJaWYgKCFwdWJv YmpzcGVjX2xpc3QpCiAJCXJldHVybjsKQEAgLTE4NzI5LDcgKzE4NzY1LDEwIEBAIHByZXByb2Nl c3NfcHVib2JqX2xpc3QoTGlzdCAqcHVib2Jqc3BlY19saXN0LCBjb3JlX3l5c2Nhbl90IHl5c2Nh bm5lcikKIAkJcHVib2JqID0gKFB1YmxpY2F0aW9uT2JqU3BlYyAqKSBsZmlyc3QoY2VsbCk7CiAK IAkJaWYgKHB1Ym9iai0+cHVib2JqdHlwZSA9PSBQVUJMSUNBVElPTk9CSl9DT05USU5VQVRJT04p CisJCXsKIAkJCXB1Ym9iai0+cHVib2JqdHlwZSA9IHByZXZvYmp0eXBlOworCQkJcHVib2JqLT5z a2lwID0gcHJldnNraXBvYmo7CisJCX0KIAogCQlpZiAocHVib2JqLT5wdWJvYmp0eXBlID09IFBV QkxJQ0FUSU9OT0JKX1RBQkxFKQogCQl7CkBAIC0xODc4NCw2ICsxODgyMyw2MiBAQCBwcmVwcm9j ZXNzX3B1Ym9ial9saXN0KExpc3QgKnB1Ym9ianNwZWNfbGlzdCwgY29yZV95eXNjYW5fdCB5eXNj YW5uZXIpCiAJCX0KIAogCQlwcmV2b2JqdHlwZSA9IHB1Ym9iai0+cHVib2JqdHlwZTsKKwkJcHJl dnNraXBvYmogPSBwdWJvYmotPnNraXA7CisJfQorfQorCisvKgorICogUHJvY2VzcyBwdWJvYmpz cGVjX2xpc3QgdG8gY2hlY2sgaWYgYW55IG90aGVyIG9wdGlvbiBvdGhlciB0aGF0CisgKiAiU0tJ UCBBTEwgVEFCTEVTIElOIFNDSEVNQSIgaXMgc3BlY2lmaWVkIHdpdGggIkFMTCBUQUJMRVMiIGFu ZCB0aHJvdyBhbgorICogZXJyb3IuCisgKi8KK3N0YXRpYyB2b2lkCitwcmVwcm9jZXNzX2FsbHRh Ymxlc19wdWJvYmpfbGlzdChMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIGludCBsb2NhdGlvbiwKKwkJ CQkJCQkJIGNvcmVfeXlzY2FuX3QgeXlzY2FubmVyKQoreworCUxpc3RDZWxsICAgKmNlbGw7CisK KwlpZiAoIXB1Ym9ianNwZWNfbGlzdCkKKwkJcmV0dXJuOworCisJZm9yZWFjaChjZWxsLCBwdWJv YmpzcGVjX2xpc3QpCisJeworCQlQdWJsaWNhdGlvbk9ialNwZWMgKnB1Ym9iaiA9IChQdWJsaWNh dGlvbk9ialNwZWMgKikgbGZpcnN0KGNlbGwpOworCisJCS8qIE9ubHkgU0tJUCBBTEwgVEFCTEVT IElOIFNDSEVNQSBvcHRpb24gc3VwcG9ydGVkIHdpdGggQUxMIFRBQkxFUyAqLworCQlpZiAocHVi b2JqLT5wdWJvYmp0eXBlICE9IFBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9TQ0hFTUEgfHwKKwkJ CSFwdWJvYmotPnNraXApCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVf U1lOVEFYX0VSUk9SKSwKKwkJCQkJZXJybXNnKCJvbmx5IFNLSVAgQUxMIFRBQkxFUyBJTiBTQ0hF TUEgY2FuIGJlIHNwZWNpZmllZCB3aXRoIEFMTCBUQUJMRVMgb3B0aW9uIiksCisJCQkJCXBhcnNl cl9lcnJwb3NpdGlvbihwdWJvYmotPmxvY2F0aW9uKSk7CisJfQorfQorCisvKgorICogUHJvY2Vz cyBwdWJvYmpzcGVjX2xpc3QgdG8gY2hlY2sgaWYgIlNLSVAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEi IGlzIHNwZWNpZmllZAorICogd2l0aCAiQUxMIFRBQkxFUyIgYW5kIHRocm93IGFuIGVycm9yLgor ICovCitzdGF0aWMgdm9pZAorY2hlY2tfc2tpcF9pbl9wdWJvYmpfbGlzdChMaXN0ICpwdWJvYmpz cGVjX2xpc3QsIGNvcmVfeXlzY2FuX3QgeXlzY2FubmVyKQoreworCUxpc3RDZWxsICAgKmNlbGw7 CisJUHVibGljYXRpb25PYmpTcGVjICpwdWJvYmo7CisKKwlpZiAoIXB1Ym9ianNwZWNfbGlzdCkK KwkJcmV0dXJuOworCisJZm9yZWFjaChjZWxsLCBwdWJvYmpzcGVjX2xpc3QpCisJeworCQlwdWJv YmogPSAoUHVibGljYXRpb25PYmpTcGVjICopIGxmaXJzdChjZWxsKTsKKworCQkvKiBPbmx5IFNL SVAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgb3B0aW9uIHN1cHBvcnRlZCB3aXRoIEFMTCBUQUJMRVMg Ki8KKwkJaWYgKHB1Ym9iai0+cHVib2JqdHlwZSA9PSBQVUJMSUNBVElPTk9CSl9UQUJMRVNfSU5f U0NIRU1BICYmCisJCQlwdWJvYmotPnNraXApCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJj b2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJZXJybXNnKCJTS0lQIEFMTCBUQUJMRVMg SU4gU0NIRU1BIGNhbiBiZSBzcGVjaWZpZWQgb25seSB3aXRoIEFMTCBUQUJMRVMgb3B0aW9uIiks CisJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwdWJvYmotPmxvY2F0aW9uKSk7CiAJfQogfQogCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYwppbmRleCBmZTVhY2Nj YTU3Li4xOTE4MTI5N2FmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291 dHB1dC9wZ291dHB1dC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bn b3V0cHV0LmMKQEAgLTE5OTYsNyArMTk5Niw4IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1 dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCQkgKiB0aGUgY2FjaGUgZW50cnkgdXNp bmcgYSBoaXN0b3JpYyBzbmFwc2hvdCBhbmQgYWxsIHRoZSBsYXRlciBjaGFuZ2VzCiAJCSAqIGFy ZSBhYnNvcmJlZCB3aGlsZSBkZWNvZGluZyBXQUwuCiAJCSAqLwotCQlMaXN0CSAgICpzY2hlbWFQ dWJpZHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoc2NoZW1hSWQpOworCQlMaXN0CSAgICpzY2hl bWFQdWJpZHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoc2NoZW1hSWQsIGZhbHNlKTsKKwkJTGlz dCAgICAgICAqc2tpcFNjaGVtYVB1YmlkcyA9IEdldFNjaGVtYVB1YmxpY2F0aW9ucyhzY2hlbWFJ ZCwgdHJ1ZSk7CiAJCUxpc3RDZWxsICAgKmxjOwogCQlPaWQJCQlwdWJsaXNoX2FzX3JlbGlkID0g cmVsaWQ7CiAJCWludAkJCXB1Ymxpc2hfYW5jZXN0b3JfbGV2ZWwgPSAwOwpAQCAtMjA3OCwyMiAr MjA3OSw2IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9u IHJlbGF0aW9uKQogCQkJT2lkCXB1Yl9yZWxpZCA9IHJlbGlkOwogCQkJaW50CWFuY2VzdG9yX2xl dmVsID0gMDsKIAotCQkJLyoKLQkJCSAqIElmIHRoaXMgaXMgYSBGT1IgQUxMIFRBQkxFUyBwdWJs aWNhdGlvbiwgcGljayB0aGUgcGFydGl0aW9uIHJvb3QKLQkJCSAqIGFuZCBzZXQgdGhlIGFuY2Vz dG9yIGxldmVsIGFjY29yZGluZ2x5LgotCQkJICovCi0JCQlpZiAocHViLT5hbGx0YWJsZXMpCi0J CQl7Ci0JCQkJcHVibGlzaCA9IHRydWU7Ci0JCQkJaWYgKHB1Yi0+cHVidmlhcm9vdCAmJiBhbV9w YXJ0aXRpb24pCi0JCQkJewotCQkJCQlMaXN0CSAgICphbmNlc3RvcnMgPSBnZXRfcGFydGl0aW9u X2FuY2VzdG9ycyhyZWxpZCk7Ci0KLQkJCQkJcHViX3JlbGlkID0gbGxhc3Rfb2lkKGFuY2VzdG9y cyk7Ci0JCQkJCWFuY2VzdG9yX2xldmVsID0gbGlzdF9sZW5ndGgoYW5jZXN0b3JzKTsKLQkJCQl9 Ci0JCQl9Ci0KIAkJCWlmICghcHVibGlzaCkKIAkJCXsKIAkJCQlib29sCQlhbmNlc3Rvcl9wdWJs aXNoZWQgPSBmYWxzZTsKQEAgLTIxMTIsNyArMjA5Nyw4IEBAIGdldF9yZWxfc3luY19lbnRyeShQ R091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCiAJCQkJCWFuY2VzdG9yID0g R2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihwdWItPm9pZCwKIAkJCQkJCQkJCQkJCQkJ CSAgIGFuY2VzdG9ycywKLQkJCQkJCQkJCQkJCQkJCSAgICZsZXZlbCk7CisJCQkJCQkJCQkJCQkJ CQkgICAmbGV2ZWwsCisJCQkJCQkJCQkJCQkJCQkgICBwdWItPmFsbHRhYmxlcyk7CiAKIAkJCQkJ aWYgKGFuY2VzdG9yICE9IEludmFsaWRPaWQpCiAJCQkJCXsKQEAgLTIxMjcsNiArMjExMyw3IEBA IGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9u KQogCiAJCQkJaWYgKGxpc3RfbWVtYmVyX29pZChwdWJpZHMsIHB1Yi0+b2lkKSB8fAogCQkJCQls aXN0X21lbWJlcl9vaWQoc2NoZW1hUHViaWRzLCBwdWItPm9pZCkgfHwKKwkJCQkJKHB1Yi0+YWxs dGFibGVzICYmICFsaXN0X21lbWJlcl9vaWQoc2tpcFNjaGVtYVB1YmlkcywgcHViLT5vaWQpKSB8 fAogCQkJCQlhbmNlc3Rvcl9wdWJsaXNoZWQpCiAJCQkJCXB1Ymxpc2ggPSB0cnVlOwogCQkJfQpA QCAtMjIwMiw2ICsyMTg5LDcgQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAqZGF0 YSwgUmVsYXRpb24gcmVsYXRpb24pCiAKIAkJbGlzdF9mcmVlKHB1Ymlkcyk7CiAJCWxpc3RfZnJl ZShzY2hlbWFQdWJpZHMpOworCQlsaXN0X2ZyZWUoc2tpcFNjaGVtYVB1Ymlkcyk7CiAJCWxpc3Rf ZnJlZShyZWxfcHVibGljYXRpb25zKTsKIAogCQllbnRyeS0+cmVwbGljYXRlX3ZhbGlkID0gdHJ1 ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMgYi9zcmMv YmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCmluZGV4IDQzZjE0YzIzM2QuLjAyYzBhNDdj YTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYwpAQCAtNTU2Miw2ICs1NTYyLDggQEAg dm9pZAogUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVi bGljYXRpb25EZXNjICpwdWJkZXNjKQogewogCUxpc3QJICAgKnB1Ym9pZHM7CisJTGlzdAkgICAq YWxsdGFibGVzcHVib2lkczsKKwlMaXN0CSAgICpza2lwc2NoZW1hcHVib2lkczsKIAlMaXN0Q2Vs bCAgICpsYzsKIAlNZW1vcnlDb250ZXh0IG9sZGN4dDsKIAlPaWQJCQlzY2hlbWFpZDsKQEAgLTU1 OTcsNyArNTU5OSw4IEBAIFJlbGF0aW9uQnVpbGRQdWJsaWNhdGlvbkRlc2MoUmVsYXRpb24gcmVs YXRpb24sIFB1YmxpY2F0aW9uRGVzYyAqcHViZGVzYykKIAkvKiBGZXRjaCB0aGUgcHVibGljYXRp b24gbWVtYmVyc2hpcCBpbmZvLiAqLwogCXB1Ym9pZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9u cyhyZWxpZCk7CiAJc2NoZW1haWQgPSBSZWxhdGlvbkdldE5hbWVzcGFjZShyZWxhdGlvbik7Ci0J cHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywgR2V0U2NoZW1hUHVibGlj YXRpb25zKHNjaGVtYWlkKSk7CisJcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVi b2lkcywgR2V0U2NoZW1hUHVibGljYXRpb25zKHNjaGVtYWlkLCBmYWxzZSkpOworCXNraXBzY2hl bWFwdWJvaWRzID0gR2V0U2NoZW1hUHVibGljYXRpb25zKHNjaGVtYWlkLCB0cnVlKTsKIAogCWlm IChyZWxhdGlvbi0+cmRfcmVsLT5yZWxpc3BhcnRpdGlvbikKIAl7CkBAIC01NjEyLDExICs1NjE1 LDE3IEBAIFJlbGF0aW9uQnVpbGRQdWJsaWNhdGlvbkRlc2MoUmVsYXRpb24gcmVsYXRpb24sIFB1 YmxpY2F0aW9uRGVzYyAqcHViZGVzYykKIAkJCQkJCQkJCQkJIEdldFJlbGF0aW9uUHVibGljYXRp b25zKGFuY2VzdG9yKSk7CiAJCQlzY2hlbWFpZCA9IGdldF9yZWxfbmFtZXNwYWNlKGFuY2VzdG9y KTsKIAkJCXB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsCi0JCQkJCQkJ CQkJCSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoc2NoZW1haWQpKTsKKwkJCQkJCQkJCQkJIEdldFNj aGVtYVB1YmxpY2F0aW9ucyhzY2hlbWFpZCwgZmFsc2UpKTsKKwkJCXNraXBzY2hlbWFwdWJvaWRz ID0gbGlzdF9jb25jYXRfdW5pcXVlX29pZChza2lwc2NoZW1hcHVib2lkcywKKwkJCQkJCQkJCQkJ CQkgICBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoc2NoZW1haWQsCisJCQkJCQkJCQkJCQkJCQkJCQkJ IHRydWUpKTsKIAkJfQogCX0KLQlwdWJvaWRzID0gbGlzdF9jb25jYXRfdW5pcXVlX29pZChwdWJv aWRzLCBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvbnMoKSk7CiAKKwlhbGx0YWJsZXNwdWJvaWRzID0g R2V0QWxsVGFibGVzUHVibGljYXRpb25zKCk7CisJcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1 ZV9vaWQocHVib2lkcywKKwkJCQkJCQkJCSBsaXN0X2RpZmZlcmVuY2Vfb2lkKGFsbHRhYmxlc3B1 Ym9pZHMsCisJCQkJCQkJCQkJCQkJCSBza2lwc2NoZW1hcHVib2lkcykpOwogCWZvcmVhY2gobGMs IHB1Ym9pZHMpCiAJewogCQlPaWQJCQlwdWJpZCA9IGxmaXJzdF9vaWQobGMpOwpAQCAtNTY0NSw3 ICs1NjU0LDggQEAgUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlv biwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogCQlpZiAoIXB1YmZvcm0tPnB1YmFsbHRhYmxl cyAmJgogCQkJKHB1YmZvcm0tPnB1YnVwZGF0ZSB8fCBwdWJmb3JtLT5wdWJkZWxldGUpICYmCiAJ CQlwdWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1bW4ocHViaWQsIHJlbGF0aW9uLCBhbmNlc3Rv cnMsCi0JCQkJCQkJCQkgcHViZm9ybS0+cHVidmlhcm9vdCkpCisJCQkJCQkJCQkgcHViZm9ybS0+ cHVidmlhcm9vdCwKKwkJCQkJCQkJCSBwdWJmb3JtLT5wdWJhbGx0YWJsZXMpKQogCQl7CiAJCQlp ZiAocHViZm9ybS0+cHVidXBkYXRlKQogCQkJCXB1YmRlc2MtPnJmX3ZhbGlkX2Zvcl91cGRhdGUg PSBmYWxzZTsKQEAgLTU2NjIsNyArNTY3Miw3IEBAIFJlbGF0aW9uQnVpbGRQdWJsaWNhdGlvbkRl c2MoUmVsYXRpb24gcmVsYXRpb24sIFB1YmxpY2F0aW9uRGVzYyAqcHViZGVzYykKIAkJaWYgKCFw dWJmb3JtLT5wdWJhbGx0YWJsZXMgJiYKIAkJCShwdWJmb3JtLT5wdWJ1cGRhdGUgfHwgcHViZm9y bS0+cHViZGVsZXRlKSAmJgogCQkJcHViX2NvbGxpc3RfY29udGFpbnNfaW52YWxpZF9jb2x1bW4o cHViaWQsIHJlbGF0aW9uLCBhbmNlc3RvcnMsCi0JCQkJCQkJCQkgcHViZm9ybS0+cHVidmlhcm9v dCkpCisJCQkJCQkJCQkgcHViZm9ybS0+cHVidmlhcm9vdCwgcHViZm9ybS0+cHViYWxsdGFibGVz KSkKIAkJewogCQkJaWYgKHB1YmZvcm0tPnB1YnVwZGF0ZSkKIAkJCQlwdWJkZXNjLT5jb2xzX3Zh bGlkX2Zvcl91cGRhdGUgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDk2OWUyYTdhNDYuLjI5NjUy N2JkZTUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNDAwNCw2ICs0MDA0LDcgQEAgZ2V0UHVibGljYXRpb25O YW1lc3BhY2VzKEFyY2hpdmUgKmZvdXQpCiAJaW50CQkJaV9vaWQ7CiAJaW50CQkJaV9wbnB1Ymlk OwogCWludAkJCWlfcG5uc3BpZDsKKwlpbnQJCQlpX3Buc2tpcDsKIAlpbnQJCQlpLAogCQkJCWos CiAJCQkJbnR1cHM7CkBAIC00MDE1LDcgKzQwMTYsNyBAQCBnZXRQdWJsaWNhdGlvbk5hbWVzcGFj ZXMoQXJjaGl2ZSAqZm91dCkKIAogCS8qIENvbGxlY3QgYWxsIHB1YmxpY2F0aW9uIG1lbWJlcnNo aXAgaW5mby4gKi8KIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKLQkJCQkJCSAiU0VMRUNU IHRhYmxlb2lkLCBvaWQsIHBucHViaWQsIHBubnNwaWQgIgorCQkJCQkJICJTRUxFQ1QgdGFibGVv aWQsIG9pZCwgcG5wdWJpZCwgcG5uc3BpZCwgcG5za2lwICIKIAkJCQkJCSAiRlJPTSBwZ19jYXRh bG9nLnBnX3B1YmxpY2F0aW9uX25hbWVzcGFjZSIpOwogCXJlcyA9IEV4ZWN1dGVTcWxRdWVyeShm b3V0LCBxdWVyeS0+ZGF0YSwgUEdSRVNfVFVQTEVTX09LKTsKIApAQCAtNDAyNSw2ICs0MDI2LDcg QEAgZ2V0UHVibGljYXRpb25OYW1lc3BhY2VzKEFyY2hpdmUgKmZvdXQpCiAJaV9vaWQgPSBQUWZu dW1iZXIocmVzLCAib2lkIik7CiAJaV9wbnB1YmlkID0gUFFmbnVtYmVyKHJlcywgInBucHViaWQi KTsKIAlpX3BubnNwaWQgPSBQUWZudW1iZXIocmVzLCAicG5uc3BpZCIpOworCWlfcG5za2lwID0g UFFmbnVtYmVyKHJlcywgInBuc2tpcCIpOwogCiAJLyogdGhpcyBhbGxvY2F0aW9uIG1heSBiZSBt b3JlIHRoYW4gd2UgbmVlZCAqLwogCXB1YnNpbmZvID0gcGdfbWFsbG9jKG50dXBzICogc2l6ZW9m KFB1YmxpY2F0aW9uU2NoZW1hSW5mbykpOwpAQCAtNDAzNCw2ICs0MDM2LDcgQEAgZ2V0UHVibGlj YXRpb25OYW1lc3BhY2VzKEFyY2hpdmUgKmZvdXQpCiAJewogCQlPaWQJCQlwbnB1YmlkID0gYXRv b2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3BucHViaWQpKTsKIAkJT2lkCQkJcG5uc3BpZCA9IGF0 b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV9wbm5zcGlkKSk7CisJCWNoYXIgICAgICAgKnBuc2tp cCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9wbnNraXApKTsKIAkJUHVibGljYXRp b25JbmZvICpwdWJpbmZvOwogCQlOYW1lc3BhY2VJbmZvICpuc3BpbmZvOwogCkBAIC00MDU2LDcg KzQwNTksMTAgQEAgZ2V0UHVibGljYXRpb25OYW1lc3BhY2VzKEFyY2hpdmUgKmZvdXQpCiAJCQlj b250aW51ZTsKIAogCQkvKiBPSywgbWFrZSBhIER1bXBhYmxlT2JqZWN0IGZvciB0aGlzIHJlbGF0 aW9uc2hpcCAqLwotCQlwdWJzaW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19QVUJMSUNBVElPTl9U QUJMRV9JTl9TQ0hFTUE7CisJCWlmIChzdHJjbXAocG5za2lwLCAidCIpID09IDApCisJCQlwdWJz aW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19QVUJMSUNBVElPTl9TS0lQX1RBQkxFX0lOX1NDSEVN QTsKKwkJZWxzZQorCQkJcHVic2luZm9bal0uZG9iai5vYmpUeXBlID0gRE9fUFVCTElDQVRJT05f VEFCTEVfSU5fU0NIRU1BOwogCQlwdWJzaW5mb1tqXS5kb2JqLmNhdElkLnRhYmxlb2lkID0KIAkJ CWF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV90YWJsZW9pZCkpOwogCQlwdWJzaW5mb1tqXS5k b2JqLmNhdElkLm9pZCA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV9vaWQpKTsKQEAgLTQy MTMsMTMgKzQyMTksMTUgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFi bGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKICAqCSAgZHVtcCB0aGUgZGVmaW5pdGlv biBvZiB0aGUgZ2l2ZW4gcHVibGljYXRpb24gc2NoZW1hIG1hcHBpbmcuCiAgKi8KIHN0YXRpYyB2 b2lkCi1kdW1wUHVibGljYXRpb25OYW1lc3BhY2UoQXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGlj YXRpb25TY2hlbWFJbmZvICpwdWJzaW5mbykKK2R1bXBQdWJsaWNhdGlvbk5hbWVzcGFjZShBcmNo aXZlICpmb3V0LCBjb25zdCBQdWJsaWNhdGlvblNjaGVtYUluZm8gKnB1YnNpbmZvLAorCQkJCQkJ IGJvb2wgYnNraXApCiB7CiAJRHVtcE9wdGlvbnMgKmRvcHQgPSBmb3V0LT5kb3B0OwogCU5hbWVz cGFjZUluZm8gKnNjaGVtYWluZm8gPSBwdWJzaW5mby0+cHVic2NoZW1hOwogCVB1YmxpY2F0aW9u SW5mbyAqcHViaW5mbyA9IHB1YnNpbmZvLT5wdWJsaWNhdGlvbjsKIAlQUUV4cEJ1ZmZlciBxdWVy eTsKIAljaGFyCSAgICp0YWc7CisJY2hhcgkgICAqZGVzY3JpcHRpb24gPSAoYnNraXApID8gIlBV QkxJQ0FUSU9OIFNLSVAgVEFCTEVTIElOIFNDSEVNQSIgOiAiUFVCTElDQVRJT04gVEFCTEVTIElO IFNDSEVNQSI7CiAKIAkvKiBEbyBub3RoaW5nIGluIGRhdGEtb25seSBkdW1wICovCiAJaWYgKGRv cHQtPmRhdGFPbmx5KQpAQCAtNDIzMCw4ICs0MjM4LDExIEBAIGR1bXBQdWJsaWNhdGlvbk5hbWVz cGFjZShBcmNoaXZlICpmb3V0LCBjb25zdCBQdWJsaWNhdGlvblNjaGVtYUluZm8gKnB1YnNpbmZv KQogCXF1ZXJ5ID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKIAogCWFwcGVuZFBRRXhwQnVmZmVyKHF1 ZXJ5LCAiQUxURVIgUFVCTElDQVRJT04gJXMgIiwgZm10SWQocHViaW5mby0+ZG9iai5uYW1lKSk7 Ci0JYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJBREQgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgJXM7 XG4iLCBmbXRJZChzY2hlbWFpbmZvLT5kb2JqLm5hbWUpKTsKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0 cihxdWVyeSwgIkFERCAiKTsKKwlpZiAoYnNraXApCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1 ZXJ5LCAiU0tJUCAiKTsKIAorCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQUxMIFRBQkxFUyBJ TiBTQ0hFTUEgJXM7XG4iLCBmbXRJZChzY2hlbWFpbmZvLT5kb2JqLm5hbWUpKTsKIAkvKgogCSAq IFRoZXJlIGlzIG5vIHBvaW50IGluIGNyZWF0aW5nIGRyb3AgcXVlcnkgYXMgdGhlIGRyb3AgaXMg ZG9uZSBieSBzY2hlbWEKIAkgKiBkcm9wLgpAQCAtNDI0MSw3ICs0MjUyLDcgQEAgZHVtcFB1Ymxp Y2F0aW9uTmFtZXNwYWNlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9uU2NoZW1hSW5m byAqcHVic2luZm8pCiAJCQkJCSBBUkNISVZFX09QVFMoLnRhZyA9IHRhZywKIAkJCQkJCQkJICAu bmFtZXNwYWNlID0gc2NoZW1haW5mby0+ZG9iai5uYW1lLAogCQkJCQkJCQkgIC5vd25lciA9IHB1 YmluZm8tPnJvbG5hbWUsCi0JCQkJCQkJCSAgLmRlc2NyaXB0aW9uID0gIlBVQkxJQ0FUSU9OIFRB QkxFUyBJTiBTQ0hFTUEiLAorCQkJCQkJCQkgIC5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uLAog CQkJCQkJCQkgIC5zZWN0aW9uID0gU0VDVElPTl9QT1NUX0RBVEEsCiAJCQkJCQkJCSAgLmNyZWF0 ZVN0bXQgPSBxdWVyeS0+ZGF0YSkpOwogCkBAIC05ODgwLDkgKzk4OTEsMTUgQEAgZHVtcER1bXBh YmxlT2JqZWN0KEFyY2hpdmUgKmZvdXQsIER1bXBhYmxlT2JqZWN0ICpkb2JqKQogCQljYXNlIERP X1BVQkxJQ0FUSU9OX1JFTDoKIAkJCWR1bXBQdWJsaWNhdGlvblRhYmxlKGZvdXQsIChjb25zdCBQ dWJsaWNhdGlvblJlbEluZm8gKikgZG9iaik7CiAJCQlicmVhazsKKwkJY2FzZSBET19QVUJMSUNB VElPTl9TS0lQX1RBQkxFX0lOX1NDSEVNQToKKwkJCWR1bXBQdWJsaWNhdGlvbk5hbWVzcGFjZShm b3V0LAorCQkJCQkJCQkJIChjb25zdCBQdWJsaWNhdGlvblNjaGVtYUluZm8gKikgZG9iaiwKKwkJ CQkJCQkJCSB0cnVlKTsKKwkJCWJyZWFrOwogCQljYXNlIERPX1BVQkxJQ0FUSU9OX1RBQkxFX0lO X1NDSEVNQToKIAkJCWR1bXBQdWJsaWNhdGlvbk5hbWVzcGFjZShmb3V0LAotCQkJCQkJCQkJIChj b25zdCBQdWJsaWNhdGlvblNjaGVtYUluZm8gKikgZG9iaik7CisJCQkJCQkJCQkgKGNvbnN0IFB1 YmxpY2F0aW9uU2NoZW1hSW5mbyAqKSBkb2JqLAorCQkJCQkJCQkJIGZhbHNlKTsKIAkJCWJyZWFr OwogCQljYXNlIERPX1NVQlNDUklQVElPTjoKIAkJCWR1bXBTdWJzY3JpcHRpb24oZm91dCwgKGNv bnN0IFN1YnNjcmlwdGlvbkluZm8gKikgZG9iaik7CkBAIC0xNzgxMSw2ICsxNzgyOCw3IEBAIGFk ZEJvdW5kYXJ5RGVwZW5kZW5jaWVzKER1bXBhYmxlT2JqZWN0ICoqZG9ianMsIGludCBudW1PYmpz LAogCQkJY2FzZSBET19QT0xJQ1k6CiAJCQljYXNlIERPX1BVQkxJQ0FUSU9OOgogCQkJY2FzZSBE T19QVUJMSUNBVElPTl9SRUw6CisJCQljYXNlIERPX1BVQkxJQ0FUSU9OX1NLSVBfVEFCTEVfSU5f U0NIRU1BOgogCQkJY2FzZSBET19QVUJMSUNBVElPTl9UQUJMRV9JTl9TQ0hFTUE6CiAJCQljYXNl IERPX1NVQlNDUklQVElPTjoKIAkJCQkvKiBQb3N0LWRhdGEgb2JqZWN0czogbXVzdCBjb21lIGFm dGVyIHRoZSBwb3N0LWRhdGEgYm91bmRhcnkgKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDFkMjFjMjkwNmYu LmNiOWU1ZTE2NGIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtODEsNiArODEsNyBAQCB0eXBlZGVmIGVudW0K IAlET19QT0xJQ1ksCiAJRE9fUFVCTElDQVRJT04sCiAJRE9fUFVCTElDQVRJT05fUkVMLAorCURP X1BVQkxJQ0FUSU9OX1NLSVBfVEFCTEVfSU5fU0NIRU1BLAogCURPX1BVQkxJQ0FUSU9OX1RBQkxF X0lOX1NDSEVNQSwKIAlET19TVUJTQ1JJUFRJT04KIH0gRHVtcGFibGVPYmplY3RUeXBlOwpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jIGIvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXBfc29ydC5jCmluZGV4IDVkZTMyNDFlYjQuLjQ3ZDRiYWVjYjMgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcF9zb3J0LmMKQEAgLTkxLDYgKzkxLDcgQEAgZW51bSBkYk9iamVjdFR5cGVQcmlvcml0aWVz CiAJUFJJT19QT0xJQ1ksCiAJUFJJT19QVUJMSUNBVElPTiwKIAlQUklPX1BVQkxJQ0FUSU9OX1JF TCwKKwlQUklPX1BVQkxJQ0FUSU9OX1NLSVBfVEFCTEVfSU5fU0NIRU1BLAogCVBSSU9fUFVCTElD QVRJT05fVEFCTEVfSU5fU0NIRU1BLAogCVBSSU9fU1VCU0NSSVBUSU9OLAogCVBSSU9fREVGQVVM VF9BQ0wsCQkJLyogZG9uZSBpbiBBQ0wgcGFzcyAqLwpAQCAtMTQ1LDYgKzE0Niw3IEBAIHN0YXRp YyBjb25zdCBpbnQgZGJPYmplY3RUeXBlUHJpb3JpdHlbXSA9CiAJUFJJT19QT0xJQ1ksCQkJCS8q IERPX1BPTElDWSAqLwogCVBSSU9fUFVCTElDQVRJT04sCQkJLyogRE9fUFVCTElDQVRJT04gKi8K IAlQUklPX1BVQkxJQ0FUSU9OX1JFTCwJCS8qIERPX1BVQkxJQ0FUSU9OX1JFTCAqLworCVBSSU9f UFVCTElDQVRJT05fU0tJUF9UQUJMRV9JTl9TQ0hFTUEsCS8qIERPX1BVQkxJQ0FUSU9OX1NLSVBf VEFCTEVfSU5fU0NIRU1BICovCiAJUFJJT19QVUJMSUNBVElPTl9UQUJMRV9JTl9TQ0hFTUEsCS8q IERPX1BVQkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVNQSAqLwogCVBSSU9fU1VCU0NSSVBUSU9OCQkJ LyogRE9fU1VCU0NSSVBUSU9OICovCiB9OwpAQCAtMTQ4OCw2ICsxNDkwLDExIEBAIGRlc2NyaWJl RHVtcGFibGVPYmplY3QoRHVtcGFibGVPYmplY3QgKm9iaiwgY2hhciAqYnVmLCBpbnQgYnVmc2l6 ZSkKIAkJCQkJICJQVUJMSUNBVElPTiBUQUJMRSAoSUQgJWQgT0lEICV1KSIsCiAJCQkJCSBvYmot PmR1bXBJZCwgb2JqLT5jYXRJZC5vaWQpOwogCQkJcmV0dXJuOworCQljYXNlIERPX1BVQkxJQ0FU SU9OX1NLSVBfVEFCTEVfSU5fU0NIRU1BOgorCQkJc25wcmludGYoYnVmLCBidWZzaXplLAorCQkJ CQkgIlBVQkxJQ0FUSU9OIFNLSVAgVEFCTEVTIElOIFNDSEVNQSAoSUQgJWQgT0lEICV1KSIsCisJ CQkJCSBvYmotPmR1bXBJZCwgb2JqLT5jYXRJZC5vaWQpOworCQkJcmV0dXJuOwogCQljYXNlIERP X1BVQkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVNQToKIAkJCXNucHJpbnRmKGJ1ZiwgYnVmc2l6ZSwK IAkJCQkJICJQVUJMSUNBVElPTiBUQUJMRVMgSU4gU0NIRU1BIChJRCAlZCBPSUQgJXUpIiwKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwKaW5kZXggYzY1YzkyYmZiMC4uMmRiYjQzYzMwZSAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTI0NTQsNiArMjQ1NCwxNSBAQCBteSAldGVzdHMgPSAo CiAJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAogCX0s CiAKKwknQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjUnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDUw LAorCQljcmVhdGVfc3FsICAgPT4gJ0NSRUFURSBQVUJMSUNBVElPTiBwdWI1IEZPUiBBTEwgVEFC TEVTOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBQVUJMSUNBVElPTiBwdWI1IEZP UiBBTEwgVEFCTEVTIFdJVEggKHB1Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1 bmNhdGUnKTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9wb3N0 X2RhdGEgPT4gMSwgfSwKKwl9LAorCiAJJ0NSRUFURSBTVUJTQ1JJUFRJT04gc3ViMScgPT4gewog CQljcmVhdGVfb3JkZXIgPT4gNTAsCiAJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFNVQlNDUklQ VElPTiBzdWIxCkBAIC0yNTU4LDYgKzI1NjcsMjcgQEAgbXkgJXRlc3RzID0gKAogCQl1bmxpa2Ug PT4geyBleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwgfSwKIAl9LAogCisJJ0FMVEVSIFBV QkxJQ0FUSU9OIHB1YjUgQUREIFNLSVAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgZHVtcF90ZXN0JyA9 PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA1MSwKKwkJY3JlYXRlX3NxbCA9PgorCQkgICdBTFRFUiBQ VUJMSUNBVElPTiBwdWI1IEFERCBTS0lQIEFMTCBUQUJMRVMgSU4gU0NIRU1BIGR1bXBfdGVzdDsn LAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFBTFRFUiBQVUJMSUNBVElPTiBwdWI1IEFERCBTS0lQ IEFMTCBUQUJMRVMgSU4gU0NIRU1BIGR1bXBfdGVzdDtcRQorCQkJL3htLAorCQlsaWtlICAgPT4g eyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAorCQl1bmxpa2UgPT4geyBl eGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwgfSwKKwl9LAorCisJJ0FMVEVSIFBVQkxJQ0FU SU9OIHB1YjUgQUREIFNLSVAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljJyA9PiB7CisJCWNy ZWF0ZV9vcmRlciA9PiA1MiwKKwkJY3JlYXRlX3NxbCA9PgorCQkgICdBTFRFUiBQVUJMSUNBVElP TiBwdWI1IEFERCBTS0lQIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsnLAorCQlyZWdleHAg PT4gcXIvXgorCQkJXFFBTFRFUiBQVUJMSUNBVElPTiBwdWI1IEFERCBTS0lQIEFMTCBUQUJMRVMg SU4gU0NIRU1BIHB1YmxpYztcRQorCQkJL3htLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywgc2Vj dGlvbl9wb3N0X2RhdGEgPT4gMSwgfSwKKwl9LAorCiAJJ0NSRUFURSBTQ0hFTUEgcHVibGljJyA9 PiB7CiAJCXJlZ2V4cCA9PiBxci9eQ1JFQVRFIFNDSEVNQSBwdWJsaWM7L20sCiAKZGlmZiAtLWdp dCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5k ZXggZTczNzdkNDU4My4uZGQ2YjYzZTdlMiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTI4OTgsNyArMjg5OCw3IEBA IGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCQkJCQkJ CSAgIkZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbiBwXG4iCiAJCQkJCQkJCSAgIgkJSk9J TiBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX25hbWVzcGFjZSBwbiBPTiBwLm9pZCA9IHBuLnBu cHViaWRcbiIKIAkJCQkJCQkJICAiCQlKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgcGMgT04gcGMu cmVsbmFtZXNwYWNlID0gcG4ucG5uc3BpZFxuIgotCQkJCQkJCQkgICJXSEVSRSBwYy5vaWQgPScl cycgYW5kIHBnX2NhdGFsb2cucGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoJyVzJylcbiIKKwkJ CQkJCQkJICAiV0hFUkUgcGMub2lkID0nJXMnIEFORCBwbi5wbnNraXAgPSAnZicgYW5kIHBnX2Nh dGFsb2cucGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoJyVzJylcbiIKIAkJCQkJCQkJICAiVU5J T05cbiIKIAkJCQkJCQkJICAiU0VMRUNUIHB1Ym5hbWVcbiIKIAkJCQkJCQkJICAiCQksIHBnX2dl dF9leHByKHByLnBycXVhbCwgYy5vaWQpXG4iCkBAIC0yOTE4LDggKzI5MTgsMTMgQEAgZGVzY3Jp YmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJCQkJCQkJICAiCQks IE5VTExcbiIKIAkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIK IAkJCQkJCQkJICAiV0hFUkUgcC5wdWJhbGx0YWJsZXMgQU5EIHBnX2NhdGFsb2cucGdfcmVsYXRp b25faXNfcHVibGlzaGFibGUoJyVzJylcbiIKKwkJCQkJCQkJICAiCQlBTkQgTk9UIEVYSVNUUyAo U0VMRUNUIDFcbiIKKwkJCQkJCQkJICAiCQkJCQkJCUZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNh dGlvbl9uYW1lc3BhY2UgcG5cbiIKKwkJCQkJCQkJICAiCQkJCQkJCQlKT0lOIHBnX2NhdGFsb2cu cGdfY2xhc3MgcGNcbiIKKwkJCQkJCQkJICAiCSAgCSAJCQkJCQlPTiBwYy5yZWxuYW1lc3BhY2Ug PSBwbi5wbm5zcGlkXG4iCisJCQkJCQkJCSAgIgkJCQkJCQlXSEVSRSBwYy5vaWQgPSclcycgQU5E IHBuLnBucHViaWQgPSBwLm9pZClcbiIKIAkJCQkJCQkJICAiT1JERVIgQlkgMTsiLAotCQkJCQkJ CQkgIG9pZCwgb2lkLCBvaWQsIG9pZCk7CisJCQkJCQkJCSAgb2lkLCBvaWQsIG9pZCwgb2lkLCBv aWQpOwogCQkJfQogCQkJZWxzZQogCQkJewpAQCAtNjE2NSw3ICs2MTcwLDcgQEAgZGVzY3JpYmVQ dWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikKIAkJCQkJCQkJICAiU0VMRUNUIG4ubnNw bmFtZVxuIgogCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfbmFtZXNwYWNlIG5cbiIKIAkJ CQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fbmFtZXNwYWNlIHBu IE9OIG4ub2lkID0gcG4ucG5uc3BpZFxuIgotCQkJCQkJCQkgICJXSEVSRSBwbi5wbnB1YmlkID0g JyVzJ1xuIgorCQkJCQkJCQkgICJXSEVSRSBwbi5wbnB1YmlkID0gJyVzJyBBTkQgcG4ucG5za2lw ID0gJ2YnXG4iCiAJCQkJCQkJCSAgIk9SREVSIEJZIDEiLCBwdWJpZCk7CiAJCQkJaWYgKCFhZGRG b290ZXJUb1B1YmxpY2F0aW9uRGVzYygmYnVmLCBfKCJUYWJsZXMgZnJvbSBzY2hlbWFzOiIpLAog CQkJCQkJCQkJCQkJdHJ1ZSwgJmNvbnQpKQpAQCAtNjE3Myw2ICs2MTc4LDIxIEBAIGRlc2NyaWJl UHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJCQl9CiAJCX0KIAorCQlpZiAocHNl dC5zdmVyc2lvbiA+PSAxNTAwMDApCisJCXsKKwkJCS8qIEdldCB0aGUgc2tpcCBzY2hlbWFzIGZv ciB0aGUgc3BlY2lmaWVkIHB1YmxpY2F0aW9uICovCisJCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVm LAorCQkJCQkJCSAgIlNFTEVDVCBuLm5zcG5hbWVcbiIKKwkJCQkJCQkgICJGUk9NIHBnX2NhdGFs b2cucGdfbmFtZXNwYWNlIG5cbiIKKwkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19w dWJsaWNhdGlvbl9uYW1lc3BhY2UgcG4gT04gbi5vaWQgPSBwbi5wbm5zcGlkXG4iCisJCQkJCQkJ ICAiV0hFUkUgcG4ucG5wdWJpZCA9ICclcydcbiIKKwkJCQkJCQkgICIgIEFORCBwbi5wbnNraXAg PSAndCdcbiIKKwkJCQkJCQkgICJPUkRFUiBCWSAxIiwgcHViaWQpOworCQkJaWYgKCFhZGRGb290 ZXJUb1B1YmxpY2F0aW9uRGVzYygmYnVmLCAiU2tpcCB0YWJsZXMgZnJvbSBzY2hlbWFzOiIsCisJ CQkJCQkJCQkJCXRydWUsICZjb250KSkKKwkJCQlnb3RvIGVycm9yX3JldHVybjsKKwkJfQorCiAJ CXByaW50VGFibGUoJmNvbnQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwgcHNldC5sb2dmaWxlKTsK IAkJcHJpbnRUYWJsZUNsZWFudXAoJmNvbnQpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKaW5kZXggMTBlOGRi YzliMS4uNDAyYWI5MGI1OCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5j CisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwpAQCAtMTgyOCw3ICsxODI4LDkgQEAg cHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJ Q09NUExFVEVfV0lUSCgiQUREIiwgIkRST1AiLCAiT1dORVIgVE8iLCAiUkVOQU1FIFRPIiwgIlNF VCIpOwogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxuYW1lPiBBREQgKi8KIAllbHNlIGlmIChNYXRj aGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREIikpCi0JCUNPTVBMRVRF X1dJVEgoIkFMTCBUQUJMRVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7CisJCUNPTVBMRVRFX1dJVEgo IkFMTCBUQUJMRVMgSU4gU0NIRU1BIiwgIlNLSVAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEiLCAiVEFC TEUiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55 LCAiQUREIiwgIlNLSVAiKSkKKwkJQ09NUExFVEVfV0lUSCgiQUxMIFRBQkxFUyBJTiBTQ0hFTUEi KTsKIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAi QUREfFNFVCIsICJUQUJMRSIpIHx8CiAJCQkgKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNB VElPTiIsIE1hdGNoQW55LCAiQUREfFNFVCIsICJUQUJMRSIpICYmCiAJCQkgIGVuZHNfd2l0aChw cmV2X3dkLCAnLCcpKSkKQEAgLTE4NTEsMTEgKzE4NTMsMTYgQEAgcHNxbF9jb21wbGV0aW9uKGNv bnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJQ09NUExFVEVfV0lUSCgiLCIp OwogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxuYW1lPiBEUk9QICovCiAJZWxzZSBpZiAoTWF0Y2hl cygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkRST1AiKSkKLQkJQ09NUExFVEVf V0lUSCgiQUxMIFRBQkxFUyBJTiBTQ0hFTUEiLCAiVEFCTEUiKTsKKwkJQ09NUExFVEVfV0lUSCgi QUxMIFRBQkxFUyBJTiBTQ0hFTUEiLCAiU0tJUCBBTEwgVEFCTEVTIElOIFNDSEVNQSIsICJUQUJM RSIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnks ICJEUk9QIiwgIlNLSVAiKSkKKwkJQ09NUExFVEVfV0lUSCgiQUxMIFRBQkxFUyBJTiBTQ0hFTUEi KTsKIAkvKiBBTFRFUiBQVUJMSUNBVElPTiA8bmFtZT4gU0VUICovCiAJZWxzZSBpZiAoTWF0Y2hl cygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIlNFVCIpKQotCQlDT01QTEVURV9X SVRIKCIoIiwgIkFMTCBUQUJMRVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7Ci0JZWxzZSBpZiAoTWF0 Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERHxEUk9QfFNFVCIsICJB TEwiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIpKQorCQlDT01QTEVURV9XSVRIKCIoIiwgIkFM TCBUQUJMRVMgSU4gU0NIRU1BIiwgIlNLSVAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEiLCAiVEFCTEUi KTsKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAi U0VUIiwgIlNLSVAiKSkKKwkJQ09NUExFVEVfV0lUSCgiQUxMIFRBQkxFUyBJTiBTQ0hFTUEiKTsK KwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQURE fERST1B8U0VUIiwgIkFMTCIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIikgfHwKKwkJCSBNYXRj aGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREfERST1B8U0VUIiwgIlNL SVAiLCAiQUxMIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiKSkKIAkJQ09NUExFVEVfV0lUSF9R VUVSWV9QTFVTKFF1ZXJ5X2Zvcl9saXN0X29mX3NjaGVtYXMKIAkJCQkJCQkJICIgQU5EIG5zcG5h bWUgTk9UIExJS0UgRSdwZ1xcXFxfJSUnIiwKIAkJCQkJCQkJICJDVVJSRU5UX1NDSEVNQSIpOwpA QCAtMjk5MSw3ICsyOTk4LDcgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGlu dCBzdGFydCwgaW50IGVuZCkKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJ T04iLCBNYXRjaEFueSwgIkZPUiIsICJBTEwiKSkKIAkJQ09NUExFVEVfV0lUSCgiVEFCTEVTIiwg IlRBQkxFUyBJTiBTQ0hFTUEiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElD QVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJBTEwiLCAiVEFCTEVTIikpCi0JCUNPTVBMRVRFX1dJ VEgoIklOIFNDSEVNQSIsICJXSVRIICgiKTsKKwkJQ09NUExFVEVfV0lUSCgiSU4gU0NIRU1BIiwg IldJVEggKCIsICJTS0lQIEFMTCBUQUJMRVMgSU4gU0NIRU1BIik7CiAJZWxzZSBpZiAoTWF0Y2hl cygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiVEFCTEUiLCBNYXRj aEFueSkgJiYgIWVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQogCQlDT01QTEVURV9XSVRIKCJXSEVS RSAoIiwgIldJVEggKCIpOwogCS8qIENvbXBsZXRlICJDUkVBVEUgUFVCTElDQVRJT04gPG5hbWU+ IEZPUiBUQUJMRSIgd2l0aCAiPHRhYmxlPiwgLi4uIiAqLwpAQCAtMzAxMywxMSArMzAyMCwxNCBA QCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQog CSAqIENvbXBsZXRlICJDUkVBVEUgUFVCTElDQVRJT04gPG5hbWU+IEZPUiBBTEwgVEFCTEVTIElO IFNDSEVNQSA8c2NoZW1hPiwKIAkgKiAuLi4iCiAJICovCi0JZWxzZSBpZiAoTWF0Y2hlcygiQ1JF QVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiQUxMIiwgIlRBQkxFUyIsICJJ TiIsICJTQ0hFTUEiKSkKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04i LCBNYXRjaEFueSwgIkZPUiIsICJBTEwiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIpIHx8CisJ CQkgTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiU0tJ UCIsICJBTEwiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIpKQogCQlDT01QTEVURV9XSVRIX1FV RVJZX1BMVVMoUXVlcnlfZm9yX2xpc3Rfb2Zfc2NoZW1hcwogCQkJCQkJCQkgIiBBTkQgbnNwbmFt ZSBOT1QgTElLRSBFJ3BnXFxcXF8lJSciLAogCQkJCQkJCQkgIkNVUlJFTlRfU0NIRU1BIik7Ci0J ZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1Ii LCAiQUxMIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSkgJiYgKCFlbmRzX3dp dGgocHJldl93ZCwgJywnKSkpCisJZWxzZSBpZiAoKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNB VElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIkFMTCIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIiwg TWF0Y2hBbnkpIHx8CisJCQkgIE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNo QW55LCAiU0tJUCIsICJGT1IiLCAiQUxMIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCBNYXRj aEFueSkpICYmCisJCQkgKCFlbmRzX3dpdGgocHJldl93ZCwgJywnKSkpCiAJCUNPTVBMRVRFX1dJ VEgoIldJVEggKCIpOwogCS8qIENvbXBsZXRlICJDUkVBVEUgUFVCTElDQVRJT04gPG5hbWU+IFsu Li5dIFdJVEgiICovCiAJZWxzZSBpZiAoSGVhZE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElP TiIpICYmIFRhaWxNYXRjaGVzKCJXSVRIIiwgIigiKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHVibGljYXRpb24uaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGlj YXRpb24uaAppbmRleCAyOWIxODU2NjY1Li4zMGEyZmNiOTc0IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wdWJsaWNhdGlvbi5oCkBAIC0xMTAsNiArMTEwLDEzIEBAIHR5cGVkZWYgc3RydWN0IFB1Ymxp Y2F0aW9uUmVsSW5mbwogCUxpc3QJICAgKmNvbHVtbnM7CiB9IFB1YmxpY2F0aW9uUmVsSW5mbzsK IAordHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25TY2hJbmZvCit7CisJTm9kZVRhZwkJdHlwZTsK KwlPaWQJCQlvaWQ7CisJYm9vbAkJc2tpcDsKK30gUHVibGljYXRpb25TY2hJbmZvOworCiBleHRl cm4gUHVibGljYXRpb24gKkdldFB1YmxpY2F0aW9uKE9pZCBwdWJpZCk7CiBleHRlcm4gUHVibGlj YXRpb24gKkdldFB1YmxpY2F0aW9uQnlOYW1lKGNvbnN0IGNoYXIgKnB1Ym5hbWUsIGJvb2wgbWlz c2luZ19vayk7CiBleHRlcm4gTGlzdCAqR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJlbGlk KTsKQEAgLTEzMiwyNCArMTM5LDI3IEBAIHR5cGVkZWYgZW51bSBQdWJsaWNhdGlvblBhcnRPcHQK IAogZXh0ZXJuIExpc3QgKkdldFB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgUHVibGlj YXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0KTsKIGV4dGVybiBMaXN0ICpHZXRBbGxUYWJsZXNQdWJs aWNhdGlvbnModm9pZCk7Ci1leHRlcm4gTGlzdCAqR2V0QWxsVGFibGVzUHVibGljYXRpb25SZWxh dGlvbnMoYm9vbCBwdWJ2aWFyb290KTsKK2V4dGVybiBMaXN0ICpHZXRBbGxUYWJsZXNQdWJsaWNh dGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIGJvb2wgcHVidmlhcm9vdCk7CiBleHRlcm4gTGlzdCAq R2V0UHVibGljYXRpb25TY2hlbWFzKE9pZCBwdWJpZCk7Ci1leHRlcm4gTGlzdCAqR2V0U2NoZW1h UHVibGljYXRpb25zKE9pZCBzY2hlbWFpZCk7CitleHRlcm4gTGlzdCAqR2V0U2NoZW1hUHVibGlj YXRpb25zKE9pZCBzY2hlbWFpZCwgYm9vbCBza2lwcHViKTsKIGV4dGVybiBMaXN0ICpHZXRTY2hl bWFQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgc2NoZW1haWQsCiAJCQkJCQkJCQkJICAgUHVibGlj YXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0KTsKIGV4dGVybiBMaXN0ICpHZXRBbGxTY2hlbWFQdWJs aWNhdGlvblJlbGF0aW9ucyhPaWQgcHVib2lkLAotCQkJCQkJCQkJCQkgIFB1YmxpY2F0aW9uUGFy dE9wdCBwdWJfcGFydG9wdCk7CisJCQkJCQkJCQkJCSAgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9w YXJ0b3B0LAorCQkJCQkJCQkJCQkgIGJvb2wgYnNraXApOwogZXh0ZXJuIExpc3QgKkdldFB1YlBh cnRpdGlvbk9wdGlvblJlbGF0aW9ucyhMaXN0ICpyZXN1bHQsCiAJCQkJCQkJCQkJCVB1YmxpY2F0 aW9uUGFydE9wdCBwdWJfcGFydG9wdCwKIAkJCQkJCQkJCQkJT2lkIHJlbGlkKTsKIGV4dGVybiBP aWQJR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihPaWQgcHVib2lkLCBMaXN0ICphbmNl c3RvcnMsCi0JCQkJCQkJCQkJCWludCAqYW5jZXN0b3JfbGV2ZWwpOworCQkJCQkJCQkJCQlpbnQg KmFuY2VzdG9yX2xldmVsLAorCQkJCQkJCQkJCQlib29sIHB1YmFsbHRhYmxlcyk7CiAKIGV4dGVy biBib29sIGlzX3B1Ymxpc2hhYmxlX3JlbGF0aW9uKFJlbGF0aW9uIHJlbCk7CiBleHRlcm4gYm9v bCBpc19zY2hlbWFfcHVibGljYXRpb24oT2lkIHB1YmlkKTsKIGV4dGVybiBPYmplY3RBZGRyZXNz IHB1YmxpY2F0aW9uX2FkZF9yZWxhdGlvbihPaWQgcHViaWQsIFB1YmxpY2F0aW9uUmVsSW5mbyAq cHJpLAogCQkJCQkJCQkJCQkgIGJvb2wgaWZfbm90X2V4aXN0cyk7Ci1leHRlcm4gT2JqZWN0QWRk cmVzcyBwdWJsaWNhdGlvbl9hZGRfc2NoZW1hKE9pZCBwdWJpZCwgT2lkIHNjaGVtYWlkLAorZXh0 ZXJuIE9iamVjdEFkZHJlc3MgcHVibGljYXRpb25fYWRkX3NjaGVtYShPaWQgcHViaWQsCisJCQkJ CQkJCQkJCVB1YmxpY2F0aW9uU2NoSW5mbyAqcHVic2NoLAogCQkJCQkJCQkJCQlib29sIGlmX25v dF9leGlzdHMpOwogCiBleHRlcm4gQml0bWFwc2V0ICpwdWJfY29sbGlzdF90b19iaXRtYXBzZXQo Qml0bWFwc2V0ICpjb2x1bW5zLCBEYXR1bSBwdWJjb2xzLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UuaCBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHVibGljYXRpb25fbmFtZXNwYWNlLmgKaW5kZXggZTQzMDZkYTAyZS4uOTljMWI3ZTA5 NSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9uYW1lc3Bh Y2UuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX25hbWVzcGFjZS5o CkBAIC0zMiw2ICszMiw3IEBAIENBVEFMT0cocGdfcHVibGljYXRpb25fbmFtZXNwYWNlLDg5MDEs UHVibGljYXRpb25OYW1lc3BhY2VSZWxhdGlvbklkKQogCU9pZAkJCW9pZDsJCQkvKiBvaWQgKi8K IAlPaWQJCQlwbnB1YmlkIEJLSV9MT09LVVAocGdfcHVibGljYXRpb24pOyAvKiBPaWQgb2YgdGhl IHB1YmxpY2F0aW9uICovCiAJT2lkCQkJcG5uc3BpZCBCS0lfTE9PS1VQKHBnX25hbWVzcGFjZSk7 CS8qIE9pZCBvZiB0aGUgc2NoZW1hICovCisJYm9vbAkJcG5za2lwIEJLSV9ERUZBVUxUKGYpOwkJ CQkvKiBza2lwIG9iamVjdHMgKi8KIH0gRm9ybURhdGFfcGdfcHVibGljYXRpb25fbmFtZXNwYWNl OwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5k cy9wdWJsaWNhdGlvbmNtZHMuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21k cy5oCmluZGV4IGFlODdjYWYwODkuLjBjOGFkMjQ5MzkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3B1 YmxpY2F0aW9uY21kcy5oCkBAIC0zMiw4ICszMiwxMCBAQCBleHRlcm4gT2JqZWN0QWRkcmVzcyBB bHRlclB1YmxpY2F0aW9uT3duZXIoY29uc3QgY2hhciAqbmFtZSwgT2lkIG5ld093bmVySWQpOwog ZXh0ZXJuIHZvaWQgQWx0ZXJQdWJsaWNhdGlvbk93bmVyX29pZChPaWQgcHViaWQsIE9pZCBuZXdP d25lcklkKTsKIGV4dGVybiB2b2lkIEludmFsaWRhdGVQdWJsaWNhdGlvblJlbHMoTGlzdCAqcmVs aWRzKTsKIGV4dGVybiBib29sIHB1Yl9yZl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHVi aWQsIFJlbGF0aW9uIHJlbGF0aW9uLAotCQkJCQkJCQkJIExpc3QgKmFuY2VzdG9ycywgYm9vbCBw dWJ2aWFyb290KTsKKwkJCQkJCQkJCSBMaXN0ICphbmNlc3RvcnMsIGJvb2wgcHVidmlhcm9vdCwK KwkJCQkJCQkJCSBib29sIHB1YmFsbHRhYmxlcyk7CiBleHRlcm4gYm9vbCBwdWJfY29sbGlzdF9j b250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLAotCQkJ CQkJCQkJIExpc3QgKmFuY2VzdG9ycywgYm9vbCBwdWJ2aWFyb290KTsKKwkJCQkJCQkJCSBMaXN0 ICphbmNlc3RvcnMsIGJvb2wgcHVidmlhcm9vdCwKKwkJCQkJCQkJCSBib29sIHB1YmFsbHRhYmxl cyk7CiAKICNlbmRpZgkJCQkJCQkvKiBQVUJMSUNBVElPTkNNRFNfSCAqLwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvbm9kZXMvbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL25vZGVzLmgKaW5k ZXggMzQwZDI4ZjRlMS4uOTUzODM4OWQ1MyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMv bm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9ub2Rlcy5oCkBAIC01MDcsNiArNTA3LDcg QEAgdHlwZWRlZiBlbnVtIE5vZGVUYWcKIAlUX1BhcnRpdGlvbkNtZCwKIAlUX1ZhY3V1bVJlbGF0 aW9uLAogCVRfUHVibGljYXRpb25PYmpTcGVjLAorCVRfUHVibGljYXRpb25TY2hJbmZvLAogCVRf UHVibGljYXRpb25UYWJsZSwKIAlUX0pzb25PYmplY3RDb25zdHJ1Y3RvciwKIAlUX0pzb25BcnJh eUNvbnN0cnVjdG9yLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o IGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGRhMDI2NThjODEuLjE4ODI4 NWM5OWQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9z cmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTQwMjMsNiArNDAyMyw3IEBAIHR5cGVk ZWYgc3RydWN0IFB1YmxpY2F0aW9uT2JqU3BlYwogCVB1YmxpY2F0aW9uT2JqU3BlY1R5cGUgcHVi b2JqdHlwZTsJLyogdHlwZSBvZiB0aGlzIHB1YmxpY2F0aW9uIG9iamVjdCAqLwogCWNoYXIJICAg Km5hbWU7CiAJUHVibGljYXRpb25UYWJsZSAqcHVidGFibGU7CisJYm9vbAkJc2tpcDsKIAlpbnQJ CQlsb2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiB9IFB1 YmxpY2F0aW9uT2JqU3BlYzsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9wdWJsaWNhdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9u Lm91dAppbmRleCA4MjA4ZjlmYTBlLi5lN2U0NmQwODQxIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3B1YmxpY2F0aW9uLm91dApAQCAtODEsNiArODEsMzUgQEAgREVUQUlMOiAgVGFibGVz IGZyb20gc2NoZW1hIGNhbm5vdCBiZSBhZGRlZCB0bywgZHJvcHBlZCBmcm9tLCBvciBzZXQgb24g Rk9SIEFMTAogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMgU0VUIEFMTCBU QUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OwogRVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1Yl9m b3JhbGx0YWJsZXMiIGlzIGRlZmluZWQgYXMgRk9SIEFMTCBUQUJMRVMKIERFVEFJTDogIFRhYmxl cyBmcm9tIHNjaGVtYSBjYW5ub3QgYmUgYWRkZWQgdG8sIGRyb3BwZWQgZnJvbSwgb3Igc2V0IG9u IEZPUiBBTEwgVEFCTEVTIHB1YmxpY2F0aW9ucy4KKy0tIHNob3VsZCBiZSBhYmxlIHRvIGFkZCBz a2lwIHNjaGVtYSB0byAnRk9SIEFMTCBUQUJMRVMnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcyBBREQgU0tJUCBBTEwgVEFCTEVTIElOIFNDSEVNQSBw dWJfdGVzdDsKK1xkUnArIHRlc3RwdWJfZm9yYWxsdGFibGVzCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcmFsbHRhYmxlcworICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMg fCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgICB8IGYKK1NraXAgdGFibGVzIGZyb20gc2NoZW1h czoKKyAgICAicHViX3Rlc3QiCisKKy0tIHNob3VsZCBiZSBhYmxlIHRvIHNldCBza2lwIHNjaGVt YSB0byAnRk9SIEFMTCBUQUJMRVMnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX2ZvcmFsbHRhYmxlcyBTRVQgU0tJUCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWM7Citc ZFJwKyB0ZXN0cHViX2ZvcmFsbHRhYmxlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UHVibGljYXRpb24gdGVzdHB1Yl9mb3JhbGx0YWJsZXMKKyAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVz IHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jl c3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IGYg ICAgICAgfCBmICAgICAgICAgfCBmCitTa2lwIHRhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1 YmxpYyIKKworLS0gc2hvdWxkIGJlIGFibGUgdG8gZHJvcCBza2lwIHNjaGVtYSBmcm9tICdGT1Ig QUxMIFRBQkxFUycgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxs dGFibGVzIERST1AgU0tJUCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWM7CitcZFJwKyB0ZXN0 cHViX2ZvcmFsbHRhYmxlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRp b24gdGVzdHB1Yl9mb3JhbGx0YWJsZXMKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwg dGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJv b3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGlj YXRpb25fdXNlciB8IHQgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBm ICAgICAgICAgfCBmCisoMSByb3cpCisKIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9S JzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnRhYmxlIEZPUiBUQUJMRSB0ZXN0cHVi X3RibDE7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwpAQCAtMTE2LDYgKzE0NSwxOCBAQCBB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnRhYmxlIFNFVCBBTEwgVEFCTEVTIElOIFNDSEVN QSBwdWJfdGVzdDsKIFRhYmxlcyBmcm9tIHNjaGVtYXM6CiAgICAgInB1Yl90ZXN0IgogCistLSBm YWlsIC0gY2FuJ3QgYWRkIHNraXAgc2NoZW1hIHRvICdGT1IgVEFCTEUnIHB1YmxpY2F0aW9uCitB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnRhYmxlIEFERCBTS0lQIEFMTCBUQUJMRVMgSU4g U0NIRU1BIHB1Yl90ZXN0OworRVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1Yl9mb3J0YWJsZSIg aXMgbm90IGRlZmluZWQgYXMgRk9SIEFMTCBUQUJMRVMKK0RFVEFJTDogIFNraXAgdGFibGVzIGZy b20gc2NoZW1hIGNhbm5vdCBiZSBhZGRlZCB0bywgZHJvcHBlZCBmcm9tLCBvciBzZXQgb24gTk9O IEFMTCBUQUJMRVMgcHVibGljYXRpb25zLgorLS0gZmFpbCAtIGNhbid0IGRyb3Agc2tpcCBzY2hl bWEgZnJvbSAnRk9SIFRBQkxFJyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9mb3J0YWJsZSBEUk9QIFNLSVAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CitFUlJP UjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViX2ZvcnRhYmxlIiBpcyBub3QgZGVmaW5lZCBhcyBGT1Ig QUxMIFRBQkxFUworREVUQUlMOiAgU2tpcCB0YWJsZXMgZnJvbSBzY2hlbWEgY2Fubm90IGJlIGFk ZGVkIHRvLCBkcm9wcGVkIGZyb20sIG9yIHNldCBvbiBOT04gQUxMIFRBQkxFUyBwdWJsaWNhdGlv bnMuCistLSBmYWlsIC0gY2FuJ3Qgc2V0IHNraXAgc2NoZW1hIHRvICdGT1IgVEFCTEUnIHB1Ymxp Y2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnRhYmxlIFNFVCBTS0lQIEFMTCBU QUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OworRVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1Yl9m b3J0YWJsZSIgaXMgbm90IGRlZmluZWQgYXMgRk9SIEFMTCBUQUJMRVMKK0RFVEFJTDogIFNraXAg dGFibGVzIGZyb20gc2NoZW1hIGNhbm5vdCBiZSBhZGRlZCB0bywgZHJvcHBlZCBmcm9tLCBvciBz ZXQgb24gTk9OIEFMTCBUQUJMRVMgcHVibGljYXRpb25zLgogU0VUIGNsaWVudF9taW5fbWVzc2Fn ZXMgPSAnRVJST1InOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yc2NoZW1hIEZPUiBB TEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7 CkBAIC0xNDEsNiArMTgyLDE4IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yc2NoZW1h IFNFVCBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX25vcGs7CiBUYWJsZXM6CiAgICAgInB1Yl90ZXN0 LnRlc3RwdWJfbm9wayIKIAorLS0gZmFpbCAtIGNhbid0IGFkZCBza2lwIHNjaGVtYSB0byBzY2hl bWEgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yc2NoZW1hIEFERCBT S0lQIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OworRVJST1I6ICBwdWJsaWNhdGlvbiAi dGVzdHB1Yl9mb3JzY2hlbWEiIGlzIG5vdCBkZWZpbmVkIGFzIEZPUiBBTEwgVEFCTEVTCitERVRB SUw6ICBTa2lwIHRhYmxlcyBmcm9tIHNjaGVtYSBjYW5ub3QgYmUgYWRkZWQgdG8sIGRyb3BwZWQg ZnJvbSwgb3Igc2V0IG9uIE5PTiBBTEwgVEFCTEVTIHB1YmxpY2F0aW9ucy4KKy0tIGZhaWwgLSBj YW4ndCBkcm9wIHNraXAgc2NoZW1hIGZyb20gc2NoZW1hIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX2ZvcnNjaGVtYSBEUk9QIFNLSVAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEg cHViX3Rlc3Q7CitFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViX2ZvcnNjaGVtYSIgaXMgbm90 IGRlZmluZWQgYXMgRk9SIEFMTCBUQUJMRVMKK0RFVEFJTDogIFNraXAgdGFibGVzIGZyb20gc2No ZW1hIGNhbm5vdCBiZSBhZGRlZCB0bywgZHJvcHBlZCBmcm9tLCBvciBzZXQgb24gTk9OIEFMTCBU QUJMRVMgcHVibGljYXRpb25zLgorLS0gZmFpbCAtIGNhbid0IHNldCBza2lwIHNjaGVtYSB0byBz Y2hlbWEgIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnNjaGVtYSBT RVQgU0tJUCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDsKK0VSUk9SOiAgcHVibGljYXRp b24gInRlc3RwdWJfZm9yc2NoZW1hIiBpcyBub3QgZGVmaW5lZCBhcyBGT1IgQUxMIFRBQkxFUwor REVUQUlMOiAgU2tpcCB0YWJsZXMgZnJvbSBzY2hlbWEgY2Fubm90IGJlIGFkZGVkIHRvLCBkcm9w cGVkIGZyb20sIG9yIHNldCBvbiBOT04gQUxMIFRBQkxFUyBwdWJsaWNhdGlvbnMuCiBTRUxFQ1Qg cHVibmFtZSwgcHViYWxsdGFibGVzIEZST00gcGdfcHVibGljYXRpb24gV0hFUkUgcHVibmFtZSA9 ICd0ZXN0cHViX2ZvcmFsbHRhYmxlcyc7CiAgICAgICAgcHVibmFtZSAgICAgICAgfCBwdWJhbGx0 YWJsZXMgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCkBAIC0xNjUsOCAr MjE4LDM0IEBAIFB1YmxpY2F0aW9uczoKICByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAg ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCBmICAgICAgIHwgZiAgICAgICAgIHwgZgogKDEg cm93KQogCitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXNfc2tpcHNjaGVtYSBGT1IgQUxMIFRBQkxFUyBTS0lQ IEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OworUkVTRVQgY2xpZW50X21pbl9tZXNzYWdl czsKK1xkUnArIHRlc3RwdWJfZm9yYWxsdGFibGVzX3NraXBzY2hlbWEKKyAgICAgICAgICAgICAg ICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZm9yYWxsdGFibGVzX3NraXBzY2hlbWEKKyAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMg fCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCitTa2lwIHRhYmxlcyBm cm9tIHNjaGVtYXM6CisgICAgInB1Yl90ZXN0IgorCistLSBmYWlsIC0gY2FuJ3Qgc3BlY2lmeSBz a2lwIHNjaGVtYSBhbG9uZyB3aXRoIHRhYmxlIHB1YmxpY2F0aW9uCitDUkVBVEUgUFVCTElDQVRJ T04gdGVzdHB1Yl9mb3J0YWJsZV9za2lwc2NoZW1hIEZPUiBUQUJMRSBwdWJfdGVzdC50ZXN0cHVi X25vcGssIFNLSVAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CitFUlJPUjogIFNLSVAg QUxMIFRBQkxFUyBJTiBTQ0hFTUEgY2FuIGJlIHNwZWNpZmllZCBvbmx5IHdpdGggQUxMIFRBQkxF UyBvcHRpb24KK0xJTkUgMTogLi4uRSBwdWJfdGVzdC50ZXN0cHViX25vcGssIFNLSVAgQUxMIFRB QkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIGZhaWwgLSBjYW4ndCBzcGVjaWZ5 IHNraXAgc2NoZW1hIGFsb25nIHdpdGggc2NoZW1hIHB1YmxpY2F0aW9uCitDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1Yl9mb3JzY2hlbWFfc2tpcHNjaGVtYSBGT1IgQUxMIFRBQkxFUyBJTiBTQ0hF TUEgcHViX3Rlc3QsIFNLSVAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CitFUlJPUjog IFNLSVAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgY2FuIGJlIHNwZWNpZmllZCBvbmx5IHdpdGggQUxM IFRBQkxFUyBvcHRpb24KK0xJTkUgMTogLi4uQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QsIFNLSVAg QUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIGZhaWwgLSBjYW4ndCBz cGVjaWZ5IG9ubHkgc2tpcCBzY2hlbWEgd2hpbGUgY3JlYXRlIHB1YmxpY2F0aW9uCitDUkVBVEUg UFVCTElDQVRJT04gdGVzdHB1Yl9za2lwc2NoZW1hIEZPUiBTS0lQIEFMTCBUQUJMRVMgSU4gU0NI RU1BIHB1Yl90ZXN0OworRVJST1I6ICBTS0lQIEFMTCBUQUJMRVMgSU4gU0NIRU1BIGNhbiBiZSBz cGVjaWZpZWQgb25seSB3aXRoIEFMTCBUQUJMRVMgb3B0aW9uCitMSU5FIDE6IC4uLk4gdGVzdHB1 Yl9za2lwc2NoZW1hIEZPUiBTS0lQIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCiBEUk9QIFRBQkxFIHRlc3RwdWJfdGJsMjsKLURST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9m b3JhbGx0YWJsZXMsIHRlc3RwdWJfZm9ydGFibGUsIHRlc3RwdWJfZm9yc2NoZW1hOworRFJPUCBQ VUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcywgdGVzdHB1Yl9mb3J0YWJsZSwgdGVzdHB1 Yl9mb3JzY2hlbWEsIHRlc3RwdWJfZm9yYWxsdGFibGVzX3NraXBzY2hlbWE7CiBDUkVBVEUgVEFC TEUgdGVzdHB1Yl90YmwzIChhIGludCk7CiBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwzYSAoYiB0 ZXh0KSBJTkhFUklUUyAodGVzdHB1Yl90YmwzKTsKIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0g J0VSUk9SJzsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAppbmRleCA4NTM5MTEwMDI1 Li44ZDhhNTIyYzc2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlv bi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCkBAIC01OCw2 ICs1OCwxNiBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcyBEUk9QIEFM TCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OwogLS0gZmFpbCAtIGNhbid0IHNldCBzY2hlbWEg dG8gJ0ZPUiBBTEwgVEFCTEVTJyBwdWJsaWNhdGlvbgogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9mb3JhbGx0YWJsZXMgU0VUIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OwogCistLSBz aG91bGQgYmUgYWJsZSB0byBhZGQgc2tpcCBzY2hlbWEgdG8gJ0ZPUiBBTEwgVEFCTEVTJyBwdWJs aWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMgQUREIFNLSVAg QUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CitcZFJwKyB0ZXN0cHViX2ZvcmFsbHRhYmxl cworLS0gc2hvdWxkIGJlIGFibGUgdG8gc2V0IHNraXAgc2NoZW1hIHRvICdGT1IgQUxMIFRBQkxF UycgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzIFNF VCBTS0lQIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKK1xkUnArIHRlc3RwdWJfZm9yYWxs dGFibGVzCistLSBzaG91bGQgYmUgYWJsZSB0byBkcm9wIHNraXAgc2NoZW1hIGZyb20gJ0ZPUiBB TEwgVEFCTEVTJyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0 YWJsZXMgRFJPUCBTS0lQIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKK1xkUnArIHRlc3Rw dWJfZm9yYWxsdGFibGVzCisKIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKIENS RUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnRhYmxlIEZPUiBUQUJMRSB0ZXN0cHViX3RibDE7 CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwpAQCAtNzEsNiArODEsMTMgQEAgQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9mb3J0YWJsZSBEUk9QIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90 ZXN0OwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3J0YWJsZSBTRVQgQUxMIFRBQkxFUyBJ TiBTQ0hFTUEgcHViX3Rlc3Q7CiBcZFJwKyB0ZXN0cHViX2ZvcnRhYmxlCiAKKy0tIGZhaWwgLSBj YW4ndCBhZGQgc2tpcCBzY2hlbWEgdG8gJ0ZPUiBUQUJMRScgcHVibGljYXRpb24KK0FMVEVSIFBV QkxJQ0FUSU9OIHRlc3RwdWJfZm9ydGFibGUgQUREIFNLSVAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEg cHViX3Rlc3Q7CistLSBmYWlsIC0gY2FuJ3QgZHJvcCBza2lwIHNjaGVtYSBmcm9tICdGT1IgVEFC TEUnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnRhYmxlIERST1Ag U0tJUCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDsKKy0tIGZhaWwgLSBjYW4ndCBzZXQg c2tpcCBzY2hlbWEgdG8gJ0ZPUiBUQUJMRScgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfZm9ydGFibGUgU0VUIFNLSVAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7 CisKIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElP TiB0ZXN0cHViX2ZvcnNjaGVtYSBGT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CiBS RVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwpAQCAtODUsMTIgKzEwMiwzNCBAQCBBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX2ZvcnNjaGVtYSBEUk9QIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfbm9w azsKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yc2NoZW1hIFNFVCBUQUJMRSBwdWJfdGVz dC50ZXN0cHViX25vcGs7CiBcZFJwKyB0ZXN0cHViX2ZvcnNjaGVtYQogCistLSBmYWlsIC0gY2Fu J3QgYWRkIHNraXAgc2NoZW1hIHRvIHNjaGVtYSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJ T04gdGVzdHB1Yl9mb3JzY2hlbWEgQUREIFNLSVAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rl c3Q7CistLSBmYWlsIC0gY2FuJ3QgZHJvcCBza2lwIHNjaGVtYSBmcm9tIHNjaGVtYSBwdWJsaWNh dGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JzY2hlbWEgRFJPUCBTS0lQIEFMTCBU QUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OworLS0gZmFpbCAtIGNhbid0IHNldCBza2lwIHNjaGVt YSB0byBzY2hlbWEgIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnNj aGVtYSBTRVQgU0tJUCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDsKKwogU0VMRUNUIHB1 Ym5hbWUsIHB1YmFsbHRhYmxlcyBGUk9NIHBnX3B1YmxpY2F0aW9uIFdIRVJFIHB1Ym5hbWUgPSAn dGVzdHB1Yl9mb3JhbGx0YWJsZXMnOwogXGQrIHRlc3RwdWJfdGJsMgogXGRScCsgdGVzdHB1Yl9m b3JhbGx0YWJsZXMKIAorU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOworQ1JFQVRF IFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzX3NraXBzY2hlbWEgRk9SIEFMTCBUQUJM RVMgU0tJUCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDsKK1JFU0VUIGNsaWVudF9taW5f bWVzc2FnZXM7CisKK1xkUnArIHRlc3RwdWJfZm9yYWxsdGFibGVzX3NraXBzY2hlbWEKKworLS0g ZmFpbCAtIGNhbid0IHNwZWNpZnkgc2tpcCBzY2hlbWEgYWxvbmcgd2l0aCB0YWJsZSBwdWJsaWNh dGlvbgorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9ydGFibGVfc2tpcHNjaGVtYSBGT1Ig VEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9ub3BrLCBTS0lQIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1 Yl90ZXN0OworCistLSBmYWlsIC0gY2FuJ3Qgc3BlY2lmeSBza2lwIHNjaGVtYSBhbG9uZyB3aXRo IHNjaGVtYSBwdWJsaWNhdGlvbgorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yc2NoZW1h X3NraXBzY2hlbWEgRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0LCBTS0lQIEFMTCBU QUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OworCistLSBmYWlsIC0gY2FuJ3Qgc3BlY2lmeSBvbmx5 IHNraXAgc2NoZW1hIHdoaWxlIGNyZWF0ZSBwdWJsaWNhdGlvbgorQ1JFQVRFIFBVQkxJQ0FUSU9O IHRlc3RwdWJfc2tpcHNjaGVtYSBGT1IgU0tJUCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVz dDsKKwogRFJPUCBUQUJMRSB0ZXN0cHViX3RibDI7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJf Zm9yYWxsdGFibGVzLCB0ZXN0cHViX2ZvcnRhYmxlLCB0ZXN0cHViX2ZvcnNjaGVtYTsKK0RST1Ag UFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMsIHRlc3RwdWJfZm9ydGFibGUsIHRlc3Rw dWJfZm9yc2NoZW1hLCB0ZXN0cHViX2ZvcmFsbHRhYmxlc19za2lwc2NoZW1hOwogCiBDUkVBVEUg VEFCTEUgdGVzdHB1Yl90YmwzIChhIGludCk7CiBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwzYSAo YiB0ZXh0KSBJTkhFUklUUyAodGVzdHB1Yl90YmwzKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1 YnNjcmlwdGlvbi90LzAzMl9yZXBfY2hhbmdlc19za2lwX3NjaGVtYS5wbCBiL3NyYy90ZXN0L3N1 YnNjcmlwdGlvbi90LzAzMl9yZXBfY2hhbmdlc19za2lwX3NjaGVtYS5wbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi43YTE2YWQzNTBjCi0tLSAvZGV2L251bGwKKysrIGIv c3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMyX3JlcF9jaGFuZ2VzX3NraXBfc2NoZW1hLnBsCkBA IC0wLDAgKzEsOTYgQEAKKworIyBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMiwgUG9zdGdyZVNRTCBH bG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIyBMb2dpY2FsIHJlcGxpY2F0aW9uIHRlc3RzIGZv ciBza2lwIHNjaGVtYSBwdWJsaWNhdGlvbnMKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3M7Cit1 c2UgUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3RlcjsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGls czsKK3VzZSBUZXN0OjpNb3JlOworCisjIEluaXRpYWxpemUgcHVibGlzaGVyIG5vZGUKK215ICRu b2RlX3B1Ymxpc2hlciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygncHVibGlzaGVy Jyk7Ciskbm9kZV9wdWJsaXNoZXItPmluaXQoYWxsb3dzX3N0cmVhbWluZyA9PiAnbG9naWNhbCcp OworJG5vZGVfcHVibGlzaGVyLT5zdGFydDsKKworIyBDcmVhdGUgc3Vic2NyaWJlciBub2RlCitt eSAkbm9kZV9zdWJzY3JpYmVyID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdzdWJz Y3JpYmVyJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5pbml0KGFsbG93c19zdHJlYW1pbmcgPT4gJ2xv Z2ljYWwnKTsKKyRub2RlX3N1YnNjcmliZXItPnN0YXJ0OworCisjIFRlc3QgcmVwbGljYXRpb24g d2l0aCBwdWJsaWNhdGlvbnMgY3JlYXRlZCB1c2luZyBGT1IgQUxMIFRBQkxFUyBTS0lQIEFMTCBU QUJMRVMgSU4gU0NIRU1BCisjIG9wdGlvbi4KKyMgQ3JlYXRlIHNjaGVtYXMgYW5kIHRhYmxlcyBv biBwdWJsaXNoZXIKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJDUkVB VEUgU0NIRU1BIHNjaDEiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs CisJIkNSRUFURSBUQUJMRSBzY2gxLnRhYjEgQVMgU0VMRUNUIGdlbmVyYXRlX3NlcmllcygxLDEw KSBBUyBhIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVB VEUgVEFCTEUgcHVibGljLnRhYjEoYSBpbnQpIik7CisKKyMgQ3JlYXRlIHNjaGVtYXMgYW5kIHRh YmxlcyBvbiBzdWJzY3JpYmVyCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgIkNSRUFURSBTQ0hFTUEgc2NoMSIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICJDUkVBVEUgVEFCTEUgc2NoMS50YWIxIChhIGludCkiKTsKKyRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFRBQkxFIHB1YmxpYy50YWIxIChh IGludCkiKTsKKworIyBTZXR1cCBsb2dpY2FsIHJlcGxpY2F0aW9uCitteSAkcHVibGlzaGVyX2Nv bm5zdHIgPSAkbm9kZV9wdWJsaXNoZXItPmNvbm5zdHIgLiAnIGRibmFtZT1wb3N0Z3Jlcyc7Cisk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgUFVCTElDQVRJ T04gdGFwX3B1Yl9zY2hlbWEgRk9SIEFMTCBUQUJMRVMgU0tJUCBBTEwgVEFCTEVTIElOIFNDSEVN QSBzY2gxIik7CisKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJD UkVBVEUgU1VCU0NSSVBUSU9OIHRhcF9zdWJfc2NoZW1hIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJf Y29ubnN0cicgUFVCTElDQVRJT04gdGFwX3B1Yl9zY2hlbWEiCispOworCiskbm9kZV9wdWJsaXNo ZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfc2NoZW1hJyk7CisKKyMgQWxzbyB3YWl0IGZv ciBpbml0aWFsIHRhYmxlIHN5bmMgdG8gZmluaXNoCitteSAkc3luY2VkX3F1ZXJ5ID0KKyAgIlNF TEVDVCBjb3VudCgxKSA9IDAgRlJPTSBwZ19zdWJzY3JpcHRpb25fcmVsIFdIRVJFIHNyc3Vic3Rh dGUgTk9UIElOICgncicsICdzJyk7IjsKKyRub2RlX3N1YnNjcmliZXItPnBvbGxfcXVlcnlfdW50 aWwoJ3Bvc3RncmVzJywgJHN5bmNlZF9xdWVyeSkKKyAgb3IgZGllICJUaW1lZCBvdXQgd2hpbGUg d2FpdGluZyBmb3Igc3Vic2NyaWJlciB0byBzeW5jaHJvbml6ZSBkYXRhIjsKKworIyBDaGVjayB0 aGUgc2NoZW1hIHRhYmxlIGRhdGEgZG9lcyBub3Qgc3luYyBmb3Igc2tpcCBzY2hlbWFzCitteSAk cmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVD VCBjb3VudCgqKSwgbWluKGEpLCBtYXgoYSkgRlJPTSBzY2gxLnRhYjEiKTsKK2lzKCRyZXN1bHQs IHFxKDB8fCksICdjaGVjayB0YWJsZXN5bmMgaXMgc2tpcHBlZCBmb3Igc2tpcCBzY2hlbWFzJyk7 CisKKyMgSW5zZXJ0IHNvbWUgZGF0YSBpbnRvIGZldyB0YWJsZXMgYW5kIHZlcmlmeSB0aGF0IGlu c2VydGVkIGRhdGEgaXMgbm90IHJlcGxpY2F0ZWQKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHNjaDEudGFiMSBWQUxVRVMoZ2VuZXJhdGVfc2Vy aWVzKDExLDIwKSkiKTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBf c3ViX3NjaGVtYScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSwgbWluKGEpLCBtYXgoYSkgRlJPTSBzY2gxLnRh YjEiKTsKK2lzKCRyZXN1bHQsIHFxKDB8fCksICdjaGVjayByZXBsaWNhdGVkIGluc2VydHMgb24g c3Vic2NyaWJlcicpOworCisjIEFsdGVyIHB1YmxpY2F0aW9uIHRvIHNraXAgZGF0YSBjaGFuZ2Vz IGluIHB1YmxpYyBhbmQgdmVyaWZ5IHRoYXQgc3Vic2NyaWJlciBkb2VzIG5vdCBnZXQKKyMgdGhl IG5ldyB0YWJsZSBkYXRhLgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KyAgICAgICAgIkFMVEVSIFBVQkxJQ0FUSU9OIHRhcF9wdWJfc2NoZW1hIGFkZCBTS0lQIEFMTCBU QUJMRVMgSU4gU0NIRU1BIHB1YmxpYyIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKKyAgICAgICAgIklOU0VSVCBJTlRPIHB1YmxpYy50YWIxIFZBTFVFUyhnZW5lcmF0 ZV9zZXJpZXMoMSwxMCkpIik7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgn dGFwX3N1Yl9zY2hlbWEnKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKiksIG1pbihhKSwgbWF4KGEpIEZST00gcHVi bGljLnRhYjEiKTsKK2lzKCRyZXN1bHQsIHFxKDB8fCksICdjaGVjayByb3dzIG9uIHN1YnNjcmli ZXIgY2F0Y2h1cCcpOworCisjIEFsdGVyIHB1YmxpY2F0aW9uIHRvIGRyb3Agc2tpcCBzY2hlbWEg cHVibGljIGFuZCB2ZXJpZnkgdGhhdCBzdWJzY3JpYmVyIGdldHMKKyMgdGhlIG5ldyB0YWJsZSBk YXRhLgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKyAgICAgICAgIkFM VEVSIFBVQkxJQ0FUSU9OIHRhcF9wdWJfc2NoZW1hIGRyb3AgU0tJUCBBTEwgVEFCTEVTIElOIFND SEVNQSBwdWJsaWMiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisg ICAgICAgICJJTlNFUlQgSU5UTyBwdWJsaWMudGFiMSBWQUxVRVMoZ2VuZXJhdGVfc2VyaWVzKDEs MTApKSIpOworCiskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfc2No ZW1hJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKyAgICAgICAgIlNFTEVDVCBjb3VudCgqKSwgbWluKGEpLCBtYXgoYSkgRlJPTSBwdWJsaWMu dGFiMSIpOworaXMoJHJlc3VsdCwgcXEoMTB8MXwxMCksICdjaGVjayByb3dzIG9uIHN1YnNjcmli ZXIgY2F0Y2h1cCcpOworCiskbm9kZV9zdWJzY3JpYmVyLT5zdG9wKCdmYXN0Jyk7Ciskbm9kZV9w dWJsaXNoZXItPnN0b3AoJ2Zhc3QnKTsKKworZG9uZV90ZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9z cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0CmluZGV4IDg3ZWU3YmY4NjYuLmIyM2YyMWJmOTYgMTAwNjQ0Ci0tLSBhL3NyYy90 b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0CkBAIC0yMDczLDYgKzIwNzMsNyBAQCBQdWJsaWNhdGlvbk9ialNwZWNUeXBlCiBQ dWJsaWNhdGlvblBhcnRPcHQKIFB1YmxpY2F0aW9uUmVsSW5mbwogUHVibGljYXRpb25TY2hlbWFJ bmZvCitQdWJsaWNhdGlvblNjaEluZm8KIFB1YmxpY2F0aW9uVGFibGUKIFB1bGxGaWx0ZXIKIFB1 bGxGaWx0ZXJPcHMKLS0gCjIuMzIuMAoK --00000000000011224d05dc6f1a0a Content-Type: text/x-patch; charset="US-ASCII"; name="v1-0002-Skip-publishing-the-tables.patch" Content-Disposition: attachment; filename="v1-0002-Skip-publishing-the-tables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l1vqzkz21 RnJvbSA2MDRkYjhhYzVjZTA2ZGE5OGFiNmFlYjE5OTE1YjIzOWE3NTQxYTgzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNod2FyYW4gQyA8dmlnbmVzaDIxQGdtYWlsLmNvbT4K RGF0ZTogVHVlLCAxMiBBcHIgMjAyMiAxMDo1NTozNCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjEg Mi8yXSBTa2lwIHB1Ymxpc2hpbmcgdGhlIHRhYmxlcy4KCkEgbmV3IG9wdGlvbiAiU0tJUCBUQUJM RSIgaW4gQ3JlYXRlL0FsdGVyIFB1YmxpY2F0aW9uIGFsbG93cwpvbmUgb3IgbW9yZSBza2lwIHRh YmxlcyB0byBiZSBzcGVjaWZpZWQsIHB1Ymxpc2hlciB3aWxsIHNraXAgc2VuZGluZyB0aGUgZGF0 YQpvZiB0aGUgdGFibGVzIHByZXNlbnQgaW4gdGhlIHNraXAgdGFibGUgdG8gdGhlIHN1YnNjcmli ZXIuCgpUaGUgbmV3IHN5bnRheCBhbGxvd3Mgc3BlY2lmeWluZyBzY2hlbWFzLiBGb3IgZXhhbXBs ZToKQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjEgRk9SIEFMTCBUQUJMRVMgU0tJUCBUQUJMRSB0MSx0 MjsKT1IKQUxURVIgUFVCTElDQVRJT04gcHViMSBBREQgU0tJUCBUQUJMRSB0MSx0MjsKCkEgbmV3 IGNvbHVtbiBwbnNraXAgaXMgYWRkZWQgdG8gdGFibGUgInBnX3B1YmxpY2F0aW9uX3JlbCIsIHRv IG1haW50YWluCnRoZSByZWxhdGlvbnMgdGhhdCB0aGUgdXNlciB3YW50cyB0byBza2lwIHB1Ymxp c2hpbmcgdGhyb3VnaCB0aGUgcHVibGljYXRpb24uCk1vZGlmaWVkIHRoZSBvdXRwdXQgcGx1Z2lu IChwZ291dHB1dCkgdG8gc2tpcCBwdWJsaXNoaW5nIHRoZSBjaGFuZ2VzIGlmIHRoZQpyZWxhdGlv biBpcyBwYXJ0IG9mIHNraXAgdGFibGUgcHVibGljYXRpb24uCgpVcGRhdGVzIHBnX2R1bXAgdG8g aWRlbnRpZnkgYW5kIGR1bXAgc2tpcCB0YWJsZSBwdWJsaWNhdGlvbnMuIFVwZGF0ZXMgdGhlIFxk CmZhbWlseSBvZiBjb21tYW5kcyB0byBkaXNwbGF5IHNraXAgdGFibGUgcHVibGljYXRpb25zIGFu ZCBcZFJwKyB2YXJpYW50IHdpbGwKbm93IGRpc3BsYXkgYXNzb2NpYXRlZCBza2lwIHRhYmxlcyBp ZiBhbnkuCgpCdW1wIGNhdGFsb2cgdmVyc2lvbi4KLS0tCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbCAgICAgICAgICAgICAgICAgICAgfCAxMyArKy0KIGRvYy9zcmMvc2dtbC9sb2dpY2FsLXJl cGxpY2F0aW9uLnNnbWwgICAgICAgICB8IDEwICstCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1 YmxpY2F0aW9uLnNnbWwgICAgICAgfCAyMiArKystLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf cHVibGljYXRpb24uc2dtbCAgICAgIHwgMjkgKysrKystCiBkb2Mvc3JjL3NnbWwvcmVmL3BzcWwt cmVmLnNnbWwgICAgICAgICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19w dWJsaWNhdGlvbi5jICAgICAgICAgIHwgMzEgKysrKy0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9w dWJsaWNhdGlvbmNtZHMuYyAgICAgICAgfCA2MiArKysrKysrLS0tLS0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3RhYmxlY21kcy5jICAgICAgICAgICAgICB8ICA0ICstCiBzcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCA0NSArKysrKy0tLS0KIHNyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMgICB8ICA4ICstCiBzcmMvYmFja2VuZC91 dGlscy9jYWNoZS9yZWxjYWNoZS5jICAgICAgICAgICAgfCAxOCArKy0tCiBzcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgICAgfCAzNSArKysrKy0tCiBzcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvYmluL3BnX2R1 bXAvcGdfZHVtcF9zb3J0LmMgICAgICAgICAgICAgICAgfCAgNyArKwogc3JjL2Jpbi9wZ19kdW1w L3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgMjMgKysrKysKIHNyYy9iaW4vcHNxbC9k ZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8IDIyICsrKystCiBzcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmMgICAgICAgICAgICAgICAgICAgfCAxNyArKy0tCiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3B1YmxpY2F0aW9uLmggICAgICAgICAgfCAgMyArLQogc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaCAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wdWJsaWNhdGlvbi5vdXQgICAgIHwgODcgKysrKysrKysrKysrKysrKy0KIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCAgICAgICAgICB8IDQxICsrKysrKystCiAuLi4v dC8wMzNfcmVwX2NoYW5nZXNfc2tpcF90YWJsZS5wbCAgICAgICAgICAgfCA5NiArKysrKysrKysr KysrKysrKysrCiAyMyBmaWxlcyBjaGFuZ2VkLCA0ODEgaW5zZXJ0aW9ucygrKSwgOTkgZGVsZXRp b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMzX3Jl cF9jaGFuZ2VzX3NraXBfdGFibGUucGwKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxv Z3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IDFiMDJhZjFjMDMuLmZi MTQ0NmNiMDcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC02MzU0LDYgKzYzNTQsMTUgQEAgU0NSQU0tU0hB LTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8 cmVwbGFjZWFibGU+JmwKICAgICAgICBSZWZlcmVuY2UgdG8gc2NoZW1hCiAgICAgICA8L3BhcmE+ PC9lbnRyeT4KICAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPnBuc2tpcDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2w8L3R5cGU+Cisg ICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUcnVlIGlmIHRoZSBzY2hlbWEgaXMg c2tpcCBzY2hlbWEKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KICAgICA8L3Ri b2R5PgogICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+CkBAIC02NDQxLDEwICs2NDUwLDEwIEBAIFND UkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNl YWJsZT46PHJlcGxhY2VhYmxlPiZsCiAKICAgICA8cm93PgogICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KLSAgICAg ICA8c3RydWN0ZmllbGQ+cG5za2lwPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4KKyAg ICAgICA8c3RydWN0ZmllbGQ+cHJza2lwPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4K ICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgotICAgICAgIFRydWUgaWYgdGhlIHNjaGVtYSBp cyBza2lwIHNjaGVtYQorICAgICAgIFRydWUgaWYgdGhlIHRhYmxlIGlzIHNraXAgdGFibGUKICAg ICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KICAgICA8L3Rib2R5PgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9s b2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKaW5kZXggZTJhNGI4OTIyNi4uZTE2ZDRiMmY4NiAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCkBAIC01OTgsMTEgKzU5OCwxMSBAQCBD T05URVhUOiAgcHJvY2Vzc2luZyByZW1vdGUgZGF0YSBmb3IgcmVwbGljYXRpb24gb3JpZ2luICJw Z18xNjM5NSIgZHVyaW5nICJJTlNFUgogICA8L3BhcmE+CiAKICAgPHBhcmE+Ci0gICBUbyBhZGQg dGFibGVzIHRvIGEgcHVibGljYXRpb24sIHRoZSB1c2VyIG11c3QgaGF2ZSBvd25lcnNoaXAgcmln aHRzIG9uIHRoZQotICAgdGFibGUuIFRvIGFkZCBhbGwgdGFibGVzIGluIHNjaGVtYSBvciBza2lw IGFsbCB0YWJsZXMgaW4gc2NoZW1hIHRvIGEKLSAgIHB1YmxpY2F0aW9uLCB0aGUgdXNlciBtdXN0 IGJlIGEgc3VwZXJ1c2VyLiBUbyBjcmVhdGUgYSBwdWJsaWNhdGlvbiB0aGF0Ci0gICBwdWJsaXNo ZXMgYWxsIHRhYmxlcyBvciBhbGwgdGFibGVzIGluIHNjaGVtYSBhdXRvbWF0aWNhbGx5LCB0aGUg dXNlciBtdXN0IGJlCi0gICBhIHN1cGVydXNlci4KKyAgIFRvIGFkZCB0YWJsZXMgb3Igc2tpcCB0 YWJsZXMgdG8gYSBwdWJsaWNhdGlvbiwgdGhlIHVzZXIgbXVzdCBoYXZlIG93bmVyc2hpcAorICAg cmlnaHRzIG9uIHRoZSB0YWJsZS4gVG8gYWRkIGFsbCB0YWJsZXMgaW4gc2NoZW1hIG9yIHNraXAg YWxsIHRhYmxlcyBpbgorICAgc2NoZW1hIHRvIGEgcHVibGljYXRpb24sIHRoZSB1c2VyIG11c3Qg YmUgYSBzdXBlcnVzZXIuIFRvIGNyZWF0ZSBhCisgICBwdWJsaWNhdGlvbiB0aGF0IHB1Ymxpc2hl cyBhbGwgdGFibGVzIG9yIGFsbCB0YWJsZXMgaW4gc2NoZW1hIGF1dG9tYXRpY2FsbHksCisgICB0 aGUgdXNlciBtdXN0IGJlIGEgc3VwZXJ1c2VyLgogICA8L3BhcmE+CiAKICAgPHBhcmE+CmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKaW5kZXggNmY5MTVkOGM1ZC4uZjg3YTQ2 ZDFlNiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbApAQCAtMzAsNyAr MzAsNyBAQCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cgogCiA8cGhyYXNlPndoZXJlIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBp cyBvbmUgb2Y6PC9waHJhc2U+CiAKLSAgICBUQUJMRSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsgKCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4g XSApIF0gWyBXSEVSRSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9u PC9yZXBsYWNlYWJsZT4gKSBdIFssIC4uLiBdCisgICAgW1NLSVBdIFRBQkxFIFsgT05MWSBdIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAq IF0gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFj ZWFibGU+IFssIC4uLiBdICkgXSBbIFdIRVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIF0gWywgLi4uIF0KICAgICBbU0tJUF0gQUxM IFRBQkxFUyBJTiBTQ0hFTUEgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1h X25hbWU8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfU0NIRU1BIH0gWywgLi4uIF0KIDwvc3lub3Bz aXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KQEAgLTcwLDggKzcwLDggQEAgQUxURVIgUFVCTElDQVRJ T04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5B TUUgVE8gPHIKIAogICA8cGFyYT4KICAgIFlvdSBtdXN0IG93biB0aGUgcHVibGljYXRpb24gdG8g dXNlIDxjb21tYW5kPkFMVEVSIFBVQkxJQ0FUSU9OPC9jb21tYW5kPi4KLSAgIEFkZGluZyBhIHRh YmxlIHRvIGEgcHVibGljYXRpb24gYWRkaXRpb25hbGx5IHJlcXVpcmVzIG93bmluZyB0aGF0IHRh YmxlLgotICAgVGhlIDxsaXRlcmFsPkFERCBbU0tJUF0gQUxMIFRBQkxFUyBJTiBTQ0hFTUE8L2xp dGVyYWw+IGFuZAorICAgQWRkaW5nIGEgdGFibGUgb3IgYSBza2lwIHRhYmxlIHRvIGEgcHVibGlj YXRpb24gYWRkaXRpb25hbGx5IHJlcXVpcmVzIG93bmluZworICAgdGhhdCB0YWJsZS4gVGhlIDxs aXRlcmFsPkFERCBbU0tJUF0gQUxMIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IGFuZAogICAg PGxpdGVyYWw+U0VUIFtTS0lQXSBBTEwgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gdG8gYSBw dWJsaWNhdGlvbiByZXF1aXJlcwogICAgdGhlIGludm9raW5nIHVzZXIgdG8gYmUgYSBzdXBlcnVz ZXIuICBUbyBhbHRlciB0aGUgb3duZXIsIHlvdSBtdXN0IGFsc28gYmUgYQogICAgZGlyZWN0IG9y IGluZGlyZWN0IG1lbWJlciBvZiB0aGUgbmV3IG93bmluZyByb2xlLiBUaGUgbmV3IG93bmVyIG11 c3QgaGF2ZQpAQCAtOTAsMTAgKzkwLDExIEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyCiAgIDwv cGFyYT4KIAogICA8cGFyYT4KLSAgIFRoZSA8bGl0ZXJhbD5BREQgU0tJUCBBTEwgVEFCTEVTIElO IFNDSEVNQTwvbGl0ZXJhbD4gYW5kCi0gICA8bGl0ZXJhbD5TRVQgU0tJUCBBTEwgVEFCTEVTIElO IFNDSEVNQTwvbGl0ZXJhbD4gY2FuIGJlIHNwZWNpZmllZCBvbmx5IGZvcgorICAgQWRkaW5nL0Ry b3BwaW5nL1NldHRpbmcgPGxpdGVyYWw+U0tJUCBBTEwgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJh bD4sIGFuZAorICAgPGxpdGVyYWw+U0tJUCBUQUJMRTwvbGl0ZXJhbD4gY2FuIGJlIHNwZWNpZmll ZCBvbmx5IGZvcgogICAgPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+IHB1YmxpY2F0 aW9uLiBJdCBpcyBub3Qgc3VwcG9ydGVkIGZvcgotICAgPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVMg SU4gU0NIRU1BIDwvbGl0ZXJhbD4gcHVibGljYXRpb24gYW5kCisgICA8bGl0ZXJhbD5GT1IgQUxM IFRBQkxFUyBJTiBTQ0hFTUEgPC9saXRlcmFsPiBwdWJsaWNhdGlvbiwKKyAgIDxsaXRlcmFsPkZP UiBBTEwgU0VRVUVOQ0VTIElOIFNDSEVNQSA8L2xpdGVyYWw+IHB1YmxpY2F0aW9uIGFuZAogICAg PGxpdGVyYWw+Rk9SIFRBQkxFPC9saXRlcmFsPiBwdWJsaWNhdGlvbi4KICAgPC9wYXJhPgogIDwv cmVmc2VjdDE+CkBAIC0yMzIsNiArMjMzLDE1IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHByb2R1Y3Rp b25fcHVibGljYXRpb24gQUREIFRBQkxFIHVzZXJzLCBkZXBhcnRtZW50cywgQUxMIFRBQkxFCiAg ICA8c3RydWN0bmFtZT5teXB1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPjoKIDxwcm9ncmFtbGlzdGlu Zz4KIEFMVEVSIFBVQkxJQ0FUSU9OIG15cHVibGljYXRpb24gQUREIFNLSVAgQUxMIFRBQkxFUyBJ TiBTQ0hFTUEgc2FsZXNfanVuZSwgc2FsZXNfanVseTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwv cGFyYT4KKworICAgPHBhcmE+CisgICBBZGQgc2tpcCB0YWJsZXMgPHN0cnVjdG5hbWU+dXNlcnM8 L3N0cnVjdG5hbWU+IGFuZAorICAgPHN0cnVjdG5hbWU+ZGVwYXJ0bWVudHM8L3N0cnVjdG5hbWU+ IHRvIHRoZSBwdWJsaWNhdGlvbgorICAgPHN0cnVjdG5hbWU+bXlwdWJsaWNhdGlvbjwvc3RydWN0 bmFtZT46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBQVUJMSUNBVElPTiBteXB1YmxpY2F0aW9u IEFERCBTS0lQIFRBQkxFIHVzZXJzLCBkZXBhcnRtZW50czsKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAg IDwvcGFyYT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRp b24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwKaW5kZXgg NWFjZjgwNDUyYS4uNDNhMWExZDcxOCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVfcHVibGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNh dGlvbi5zZ21sCkBAIC0yMiw3ICsyMiw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogIDxy ZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNpcz4KIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+Ci0gICAgWyBGT1IgQUxMIFRB QkxFUyBbU0tJUCBBTEwgVEFCTEVTIElOIFNDSEVNQSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9TQ0hFTUEgfV0KKyAg ICBbIEZPUiBBTEwgVEFCTEVTIFtTS0lQIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHsgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5U X1NDSEVNQSB9XSBbU0tJUCBUQUJMRSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdXQogICAgICAgfCBGT1IgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+ IFssIC4uLiBdIF0KICAgICBbIFdJVEggKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cHVibGljYXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkgXQogCkBAIC0xMjQs NiArMTI0LDcgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50 cnk+CiAKKwogICAgPHZhcmxpc3RlbnRyeT4KICAgICA8dGVybT48bGl0ZXJhbD5TS0lQIEFMTCBU QUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC0xNDEs NiArMTQyLDI0IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVu dHJ5PgogCisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+U0tJUCBUQUJM RTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIE1h cmtzIHRoZSBwdWJsaWNhdGlvbiBhcyBvbmUgdGhhdCBza2lwcyByZXBsaWNhdGluZyBjaGFuZ2Vz IGZvciB0aGUKKyAgICAgIHNwZWNpZmllZCB0YWJsZXMuCisgICAgIDwvcGFyYT4KKworICAgICA8 cGFyYT4KKyAgICAgIDxsaXRlcmFsPlNLSVAgVEFCTEU8L2xpdGVyYWw+IGNhbiBiZSBzcGVjaWZp ZWQgb25seSBmb3IKKyAgICAgIDxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTPC9saXRlcmFsPiBwdWJs aWNhdGlvbi4gSXQgaXMgbm90IHN1cHBvcnRlZCBmb3IKKyAgICAgIDxsaXRlcmFsPkZPUiBBTEwg VEFCTEVTIElOIFNDSEVNQSA8L2xpdGVyYWw+IHB1YmxpY2F0aW9uIGFuZAorICAgICAgPGxpdGVy YWw+Rk9SIFRBQkxFPC9saXRlcmFsPiBwdWJsaWNhdGlvbi4KKyAgICAgPC9wYXJhPgorICAgIDwv bGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeT4KICAgICA8 dGVybT48bGl0ZXJhbD5GT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+PC90ZXJtPgog ICAgIDxsaXN0aXRlbT4KQEAgLTM2MCw2ICszNzksMTQgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIHNh bGVzX3B1YmxpY2F0aW9uIEZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQSBtYXJrZXRpbmcsIHNhbGVz OwogICAgPHN0cnVjdG5hbWU+bWFya2V0aW5nPC9zdHJ1Y3RuYW1lPiBhbmQgPHN0cnVjdG5hbWU+ c2FsZXM8L3N0cnVjdG5hbWU+OgogPHByb2dyYW1saXN0aW5nPgogQ1JFQVRFIFBVQkxJQ0FUSU9O IG15cHVibGljYXRpb24gRk9SIEFMTCBUQUJMRSBTS0lQIEFMTCBUQUJMRVMgSU4gU0NIRU1BIG1h cmtldGluZywgc2FsZXM7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKworICA8cGFyYT4KKyAg IENyZWF0ZSBhIHB1YmxpY2F0aW9uIHRoYXQgcHVibGlzaGVzIGFsbCBjaGFuZ2VzIGluIGFsbCB0 aGUgdGFibGVzIGV4Y2VwdCBmb3IKKyAgIHRoZSBjaGFuZ2VzIG9mIDxzdHJ1Y3RuYW1lPnVzZXJz PC9zdHJ1Y3RuYW1lPiBhbmQKKyAgIDxzdHJ1Y3RuYW1lPmRlcGFydG1lbnRzPC9zdHJ1Y3RuYW1l PiB0YWJsZTsKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBQVUJMSUNBVElPTiBteXB1YmxpY2F0 aW9uIEZPUiBBTEwgVEFCTEUgU0tJUCBUQUJMRSB1c2VycywgZGVwYXJ0bWVudHM7CiA8L3Byb2dy YW1saXN0aW5nPjwvcGFyYT4KIAogICA8cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9y ZWYvcHNxbC1yZWYuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbAppbmRleCBi MDk3Yjg2M2NkLi5kMmFlMmY3NTdmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwt cmVmLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCkBAIC0xODY5LDgg KzE4NjksOCBAQCB0ZXN0ZGI9Jmd0OwogICAgICAgICBzcGVjaWZpZWQsIG9ubHkgdGhvc2UgcHVi bGljYXRpb25zIHdob3NlIG5hbWVzIG1hdGNoIHRoZSBwYXR0ZXJuIGFyZQogICAgICAgICBsaXN0 ZWQuCiAgICAgICAgIElmIDxsaXRlcmFsPis8L2xpdGVyYWw+IGlzIGFwcGVuZGVkIHRvIHRoZSBj b21tYW5kIG5hbWUsIHRoZSB0YWJsZXMsCi0gICAgICAgIHNjaGVtYXMgYW5kIHRoZSBza2lwIHNj aGVtYSBhc3NvY2lhdGVkIHdpdGggZWFjaCBwdWJsaWNhdGlvbiBhcmUgc2hvd24KLSAgICAgICAg YXMgd2VsbC4KKyAgICAgICAgdGhlIHNraXAgdGFibGVzLCBzY2hlbWFzIGFuZCB0aGUgc2tpcCBz Y2hlbWEgYXNzb2NpYXRlZCB3aXRoIGVhY2gKKyAgICAgICAgcHVibGljYXRpb24gYXJlIHNob3du IGFzIHdlbGwuCiAgICAgICAgIDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgIDwv dmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNh dGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCmluZGV4IDNkMmNh YjQ3YTYuLjI5MWU5NzQ2YzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVi bGljYXRpb24uYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKQEAg LTMwMyw5ICszMDMsMTAgQEAgR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihPaWQgcHVi b2lkLCBMaXN0ICphbmNlc3RvcnMsCiAJZm9yZWFjaChsYywgYW5jZXN0b3JzKQogCXsKIAkJT2lk CQkJYW5jZXN0b3IgPSBsZmlyc3Rfb2lkKGxjKTsKLQkJTGlzdAkgICAqYXB1YmlkcyA9IEdldFJl bGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yKTsKKwkJTGlzdAkgICAqYXB1YmlkcyA9IEdldFJl bGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yLCBmYWxzZSk7CiAJCUxpc3QJICAgKmFzY2hlbWFQ dWJpZHMgPSBOSUw7CiAJCUxpc3QgICAgICAgKmFza2lwc2NoZW1hUHViaWRzID0gTklMOworCQlM aXN0CSAgICphc2tpcHB1YmlkczsKIAogCQlsZXZlbCsrOwogCkBAIC0zMjAsOSArMzIxLDExIEBA IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAqYW5jZXN0 b3JzLAogCQl7CiAJCQlhc2NoZW1hUHViaWRzID0gR2V0U2NoZW1hUHVibGljYXRpb25zKGdldF9y ZWxfbmFtZXNwYWNlKGFuY2VzdG9yKSwgZmFsc2UpOwogCQkJYXNraXBzY2hlbWFQdWJpZHMgPSBH ZXRTY2hlbWFQdWJsaWNhdGlvbnMoZ2V0X3JlbF9uYW1lc3BhY2UoYW5jZXN0b3IpLCB0cnVlKTsK KwkJCWFza2lwcHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoYW5jZXN0b3IsIHRydWUp OwogCiAJCQlpZiAobGlzdF9tZW1iZXJfb2lkKGFzY2hlbWFQdWJpZHMsIHB1Ym9pZCkgfHwKLQkJ CQkocHViYWxsdGFibGVzICYmICFsaXN0X21lbWJlcl9vaWQoYXNraXBzY2hlbWFQdWJpZHMsIHB1 Ym9pZCkpKQorCQkJCShwdWJhbGx0YWJsZXMgJiYgIWxpc3RfbWVtYmVyX29pZChhc2tpcHNjaGVt YVB1YmlkcywgcHVib2lkKSAmJgorCQkJCSAhbGlzdF9tZW1iZXJfb2lkKGFza2lwcHViaWRzLCBw dWJvaWQpKSkKIAkJCXsKIAkJCQl0b3Btb3N0X3JlbGlkID0gYW5jZXN0b3I7CiAKQEAgLTQwMSw2 ICs0MDQsOSBAQCBwdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24oT2lkIHB1YmlkLCBQdWJsaWNhdGlv blJlbEluZm8gKnByaSwKIAkJT2JqZWN0SWRHZXREYXR1bShwdWJpZCk7CiAJdmFsdWVzW0FudW1f cGdfcHVibGljYXRpb25fcmVsX3BycmVsaWQgLSAxXSA9CiAJCU9iamVjdElkR2V0RGF0dW0ocmVs aWQpOworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcnNraXAgLSAxXSA9CisJCUJv b2xHZXREYXR1bShwcmktPnNraXApOworCiAKIAkvKiBBZGQgcXVhbGlmaWNhdGlvbnMsIGlmIGF2 YWlsYWJsZSAqLwogCWlmIChwcmktPndoZXJlQ2xhdXNlICE9IE5VTEwpCkBAIC02NzQsNyArNjgw LDcgQEAgcHVibGljYXRpb25fYWRkX3NjaGVtYShPaWQgcHViaWQsIFB1YmxpY2F0aW9uU2NoSW5m byAqcHVic2NoLCBib29sIGlmX25vdF9leGlzdHMKIAogLyogR2V0cyBsaXN0IG9mIHB1YmxpY2F0 aW9uIG9pZHMgZm9yIGEgcmVsYXRpb24gKi8KIExpc3QgKgotR2V0UmVsYXRpb25QdWJsaWNhdGlv bnMoT2lkIHJlbGlkKQorR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJlbGlkLCBib29sIGJz a2lwKQogewogCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKIAlDYXRDTGlzdCAgICpwdWJyZWxsaXN0 OwpAQCAtNjg4LDcgKzY5NCw4IEBAIEdldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCkK IAkJSGVhcFR1cGxlCXR1cCA9ICZwdWJyZWxsaXN0LT5tZW1iZXJzW2ldLT50dXBsZTsKIAkJT2lk CQkJcHViaWQgPSAoKEZvcm1fcGdfcHVibGljYXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKSktPnBy cHViaWQ7CiAKLQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCBwdWJpZCk7CisJCWlmIChi c2tpcCA9PSAoKEZvcm1fcGdfcHVibGljYXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKSktPnByc2tp cCkKKwkJCXJlc3VsdCA9IGxhcHBlbmRfb2lkKHJlc3VsdCwgcHViaWQpOwogCX0KIAogCVJlbGVh c2VTeXNDYWNoZUxpc3QocHVicmVsbGlzdCk7CkBAIC03MjgsNiArNzM1LDcgQEAgR2V0UHVibGlj YXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQp CiAJCUZvcm1fcGdfcHVibGljYXRpb25fcmVsIHB1YnJlbDsKIAogCQlwdWJyZWwgPSAoRm9ybV9w Z19wdWJsaWNhdGlvbl9yZWwpIEdFVFNUUlVDVCh0dXApOworCiAJCXJlc3VsdCA9IEdldFB1YlBh cnRpdGlvbk9wdGlvblJlbGF0aW9ucyhyZXN1bHQsIHB1Yl9wYXJ0b3B0LAogCQkJCQkJCQkJCQkJ cHVicmVsLT5wcnJlbGlkKTsKIAl9CkBAIC03OTQsOCArODAyLDE1IEBAIEdldEFsbFRhYmxlc1B1 YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgYm9vbCBwdWJ2aWFyb290KQogCVRhYmxlU2Nh bkRlc2Mgc2NhbjsKIAlIZWFwVHVwbGUJdHVwbGU7CiAJTGlzdAkgICAqcmVzdWx0ID0gTklMOwot CUxpc3QJICAgKnNraXBzY2hlbWFpZGxpc3QgPSBOSUw7CisKKwkvKgorCSAqIHBnX3B1YmxpY2F0 aW9uX3JlbCBhbmQgcGdfcHVibGljYXRpb25fbmFtZXNwYWNlICB3aWxsIG9ubHkgaGF2ZSBza2lw CisJICogdGFibGVzIGFuZCBza2lwIG5hbWVzcGFjZXMgaW4gY2FzZSBvZiBhbGwgdGFibGVzIHB1 YmxpY2F0aW9uLCBubyBuZWVkCisJICogdG8gcGFzcyBza2lwIGZsYWcgdG8gZ2V0IHRoZSByZWxh dGlvbnMuCisJICovCiAJTGlzdAkgICAqcHVic2NoZW1hbGlzdCA9IEdldFB1YmxpY2F0aW9uU2No ZW1hcyhwdWJpZCk7CisJTGlzdAkgICAqc2tpcHB1YnRhYmxlbGlzdCA9IEdldFB1YmxpY2F0aW9u UmVsYXRpb25zKHB1YmlkLCBQVUJMSUNBVElPTl9QQVJUX0FMTCk7CisJTGlzdAkgICAqc2tpcHNj aGVtYWlkbGlzdCA9IE5JTDsKIAlMaXN0Q2VsbCAgICpjZWxsOwogCiAJZm9yZWFjaChjZWxsLCBw dWJzY2hlbWFsaXN0KQpAQCAtODIyLDcgKzgzNyw4IEBAIEdldEFsbFRhYmxlc1B1YmxpY2F0aW9u UmVsYXRpb25zKE9pZCBwdWJpZCwgYm9vbCBwdWJ2aWFyb290KQogCiAJCWlmIChpc19wdWJsaXNo YWJsZV9jbGFzcyhyZWxpZCwgcmVsRm9ybSkgJiYKIAkJCSEocmVsRm9ybS0+cmVsaXNwYXJ0aXRp b24gJiYgcHVidmlhcm9vdCkgJiYKLQkJCSFsaXN0X21lbWJlcl9vaWQoc2tpcHNjaGVtYWlkbGlz dCwgc2NoaWQpKQorCQkJIWxpc3RfbWVtYmVyX29pZChza2lwc2NoZW1haWRsaXN0LCBzY2hpZCkg JiYKKwkJCSFsaXN0X21lbWJlcl9vaWQoc2tpcHB1YnRhYmxlbGlzdCwgcmVsaWQpKQogCQkJcmVz dWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCByZWxpZCk7CiAJfQogCkBAIC04NDUsNyArODYxLDgg QEAgR2V0QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBib29sIHB1YnZp YXJvb3QpCiAKIAkJCWlmIChpc19wdWJsaXNoYWJsZV9jbGFzcyhyZWxpZCwgcmVsRm9ybSkgJiYK IAkJCQkhcmVsRm9ybS0+cmVsaXNwYXJ0aXRpb24gJiYKLQkJCQkhbGlzdF9tZW1iZXJfb2lkKHNr aXBzY2hlbWFpZGxpc3QsIHNjaGlkKSkKKwkJCQkhbGlzdF9tZW1iZXJfb2lkKHNraXBzY2hlbWFp ZGxpc3QsIHNjaGlkKSAmJgorCQkJCSFsaXN0X21lbWJlcl9vaWQoc2tpcHB1YnRhYmxlbGlzdCwg cmVsaWQpKQogCQkJCXJlc3VsdCA9IGxhcHBlbmRfb2lkKHJlc3VsdCwgcmVsaWQpOwogCQl9CiAK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKaW5kZXggNjg2MzkwMGJkOS4uYjI2 ZTYwNmM3ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRz LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKQEAgLTg0OSwz NyArODQ5LDMyIEBAIENyZWF0ZVB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRl UHVibGljYXRpb25TdG10ICpzdG10KQogCS8qIEFzc29jaWF0ZSBvYmplY3RzIHdpdGggdGhlIHB1 YmxpY2F0aW9uLiAqLwogCWlmIChzdG10LT5mb3JfYWxsX3RhYmxlcykKIAl7Ci0JCUFzc2VydCgh cmVsYXRpb25zKTsKLQogCQkvKiBJbnZhbGlkYXRlIHJlbGNhY2hlIHNvIHRoYXQgcHVibGljYXRp b24gaW5mbyBpcyByZWJ1aWx0LiAqLwogCQlDYWNoZUludmFsaWRhdGVSZWxjYWNoZUFsbCgpOwog CX0KLQllbHNlCi0JewogCi0JCS8qIEZPUiBbU0tJUF0gQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcmVx dWlyZXMgc3VwZXJ1c2VyICovCi0JCWlmIChsaXN0X2xlbmd0aChzY2hlbWFpZGxpc3QpID4gMCAm JiAhc3VwZXJ1c2VyKCkpCi0JCQllcmVwb3J0KEVSUk9SLAotCQkJCQllcnJjb2RlKEVSUkNPREVf SU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCi0JCQkJCWVycm1zZygibXVzdCBiZSBzdXBlcnVzZXIg dG8gY3JlYXRlIEZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWNhdGlvbiIpKTsKKwkvKiBG T1IgW1NLSVBdIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHJlcXVpcmVzIHN1cGVydXNlciAqLworCWlm IChsaXN0X2xlbmd0aChzY2hlbWFpZGxpc3QpID4gMCAmJiAhc3VwZXJ1c2VyKCkpCisJCWVyZXBv cnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAor CQkJCWVycm1zZygibXVzdCBiZSBzdXBlcnVzZXIgdG8gY3JlYXRlIEZPUiBBTEwgVEFCTEVTIElO IFNDSEVNQSBwdWJsaWNhdGlvbiIpKTsKIAotCQlpZiAobGlzdF9sZW5ndGgocmVsYXRpb25zKSA+ IDApCi0JCXsKLQkJCUxpc3QJICAgKnJlbHM7CisJaWYgKGxpc3RfbGVuZ3RoKHJlbGF0aW9ucykg PiAwKQorCXsKKwkJTGlzdAkgICAqcmVsczsKIAotCQkJcmVscyA9IE9wZW5UYWJsZUxpc3QocmVs YXRpb25zKTsKLQkJCUNoZWNrT2JqU2NoZW1hTm90QWxyZWFkeUluUHVibGljYXRpb24ocmVscywg c2NoZW1haWRsaXN0LAotCQkJCQkJCQkJCQkJICBQVUJMSUNBVElPTk9CSl9UQUJMRSk7CisJCXJl bHMgPSBPcGVuVGFibGVMaXN0KHJlbGF0aW9ucyk7CisJCUNoZWNrT2JqU2NoZW1hTm90QWxyZWFk eUluUHVibGljYXRpb24ocmVscywgc2NoZW1haWRsaXN0LAorCQkJCQkJCQkJCQkJUFVCTElDQVRJ T05PQkpfVEFCTEUpOwogCi0JCQlUcmFuc2Zvcm1QdWJXaGVyZUNsYXVzZXMocmVscywgcHN0YXRl LT5wX3NvdXJjZXRleHQsCi0JCQkJCQkJCQkgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QpOwor CQlUcmFuc2Zvcm1QdWJXaGVyZUNsYXVzZXMocmVscywgcHN0YXRlLT5wX3NvdXJjZXRleHQsCisJ CQkJCQkJCQlwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCk7CiAKLQkJCUNoZWNrUHViUmVsYXRp b25Db2x1bW5MaXN0KHJlbHMsIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAotCQkJCQkJCQkgICBwdWJs aXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCk7CisJCUNoZWNrUHViUmVsYXRpb25Db2x1bW5MaXN0KHJl bHMsIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAorCQkJCQkJCQlwdWJsaXNoX3ZpYV9wYXJ0aXRpb25f cm9vdCk7CiAKLQkJCVB1YmxpY2F0aW9uQWRkVGFibGVzKHB1Ym9pZCwgcmVscywgdHJ1ZSwgTlVM TCk7Ci0JCQlDbG9zZVRhYmxlTGlzdChyZWxzKTsKLQkJfQorCQlQdWJsaWNhdGlvbkFkZFRhYmxl cyhwdWJvaWQsIHJlbHMsIHRydWUsIE5VTEwpOworCQlDbG9zZVRhYmxlTGlzdChyZWxzKTsKIAl9 CiAKIAkvKiB0YWJsZXMgYWRkZWQgdGhyb3VnaCBhIHNjaGVtYSAqLwpAQCAtMTM3MSw2ICsxMzY2 LDggQEAgQ2hlY2tBbHRlclB1YmxpY2F0aW9uKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LCBI ZWFwVHVwbGUgdHVwLAogCiAJYm9vbAkJbm9uc2tpcHNjaGVtYSA9IGZhbHNlOwogCWJvb2wJCXNr aXBzY2hlbWEgPSBmYWxzZTsKKwlib29sCQlub25za2lwdGFibGUgPSBmYWxzZTsKKwlib29sCQlz a2lwdGFibGUgPSBmYWxzZTsKIAogCWZvcmVhY2gobGMsIHNjaGVtYWlkbGlzdCkKIAl7CkBAIC0x MzgyLDYgKzEzNzksMTYgQEAgQ2hlY2tBbHRlclB1YmxpY2F0aW9uKEFsdGVyUHVibGljYXRpb25T dG10ICpzdG10LCBIZWFwVHVwbGUgdHVwLAogCQkJc2tpcHNjaGVtYSA9IHRydWU7CiAJfQogCisJ Zm9yZWFjaChsYywgdGFibGVzKQorCXsKKwkJUHVibGljYXRpb25UYWJsZSAqcHViX3RhYmxlID0g bGZpcnN0X25vZGUoUHVibGljYXRpb25UYWJsZSwgbGMpOworCisJCWlmICghcHViX3RhYmxlLT5z a2lwKQorCQkJbm9uc2tpcHRhYmxlID0gdHJ1ZTsKKwkJZWxzZQorCQkJc2tpcHRhYmxlID0gdHJ1 ZTsKKwl9CisKIAlpZiAoKHN0bXQtPmFjdGlvbiA9PSBBUF9BZGRPYmplY3RzIHx8IHN0bXQtPmFj dGlvbiA9PSBBUF9TZXRPYmplY3RzKSAmJgogCQlzY2hlbWFpZGxpc3QgJiYgIXN1cGVydXNlcigp KQogCQllcmVwb3J0KEVSUk9SLApAQCAtMTQwNywxMiArMTQxNCwxOSBAQCBDaGVja0FsdGVyUHVi bGljYXRpb24oQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAsCiAJCQkJ ZXJyZGV0YWlsKCJTa2lwIHRhYmxlcyBmcm9tIHNjaGVtYSBjYW5ub3QgYmUgYWRkZWQgdG8sIGRy b3BwZWQgZnJvbSwgb3Igc2V0IG9uIE5PTiBBTEwgVEFCTEVTIHB1YmxpY2F0aW9ucy4iKSkpOwog CiAJLyogQ2hlY2sgdGhhdCB1c2VyIGlzIGFsbG93ZWQgdG8gbWFuaXB1bGF0ZSB0aGUgcHVibGlj YXRpb24gdGFibGVzLiAqLwotCWlmICh0YWJsZXMgJiYgcHViZm9ybS0+cHViYWxsdGFibGVzKQor CWlmIChub25za2lwdGFibGUgJiYgdGFibGVzICYmIHB1YmZvcm0tPnB1YmFsbHRhYmxlcykKIAkJ ZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVR VUlTSVRFX1NUQVRFKSwKIAkJCQkgZXJybXNnKCJwdWJsaWNhdGlvbiBcIiVzXCIgaXMgZGVmaW5l ZCBhcyBGT1IgQUxMIFRBQkxFUyIsCiAJCQkJCQlOYW1lU3RyKHB1YmZvcm0tPnB1Ym5hbWUpKSwK IAkJCQkgZXJyZGV0YWlsKCJUYWJsZXMgY2Fubm90IGJlIGFkZGVkIHRvIG9yIGRyb3BwZWQgZnJv bSBGT1IgQUxMIFRBQkxFUyBwdWJsaWNhdGlvbnMuIikpKTsKKworCWlmIChza2lwdGFibGUgJiYg IXB1YmZvcm0tPnB1YmFsbHRhYmxlcykKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShF UlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQllcnJtc2coInB1 YmxpY2F0aW9uIFwiJXNcIiBpcyBub3QgZGVmaW5lZCBhcyBGT1IgQUxMIFRBQkxFUyIsCisJCQkJ CSAgIE5hbWVTdHIocHViZm9ybS0+cHVibmFtZSkpLAorCQkJCWVycmRldGFpbCgiU2tpcCB0YWJs ZSBjYW5ub3QgYmUgYWRkZWQgdG8sIGRyb3BwZWQgZnJvbSwgb3Igc2V0IG9uIE5PTiBBTEwgVEFC TEVTIHB1YmxpY2F0aW9ucy4iKSkpOwogfQogCiAvKgpAQCAtMTY4OSw2ICsxNzAzLDcgQEAgT3Bl blRhYmxlTGlzdChMaXN0ICp0YWJsZXMpCiAJCXB1Yl9yZWwtPnJlbGF0aW9uID0gcmVsOwogCQlw dWJfcmVsLT53aGVyZUNsYXVzZSA9IHQtPndoZXJlQ2xhdXNlOwogCQlwdWJfcmVsLT5jb2x1bW5z ID0gdC0+Y29sdW1uczsKKwkJcHViX3JlbC0+c2tpcCA9IHQtPnNraXA7CiAJCXJlbHMgPSBsYXBw ZW5kKHJlbHMsIHB1Yl9yZWwpOwogCQlyZWxpZHMgPSBsYXBwZW5kX29pZChyZWxpZHMsIG15cmVs aWQpOwogCkBAIC0xNzYxLDYgKzE3NzYsNyBAQCBPcGVuVGFibGVMaXN0KExpc3QgKnRhYmxlcykK IAogCQkJCS8qIGNoaWxkIGluaGVyaXRzIGNvbHVtbiBsaXN0IGZyb20gcGFyZW50ICovCiAJCQkJ cHViX3JlbC0+Y29sdW1ucyA9IHQtPmNvbHVtbnM7CisJCQkJcHViX3JlbC0+c2tpcCA9IHQtPnNr aXA7CiAJCQkJcmVscyA9IGxhcHBlbmQocmVscywgcHViX3JlbCk7CiAJCQkJcmVsaWRzID0gbGFw cGVuZF9vaWQocmVsaWRzLCBjaGlsZHJlbGlkKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpp bmRleCAxNDFhMmVhYmY4Li5mOTY1NWMxNDBmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21t YW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpA QCAtMTYyNzYsNyArMTYyNzYsNyBAQCBBVFByZXBDaGFuZ2VQZXJzaXN0ZW5jZShSZWxhdGlvbiBy ZWwsIGJvb2wgdG9Mb2dnZWQpCiAJICogVU5MT0dHRUQgYXMgVU5MT0dHRUQgdGFibGVzIGNhbid0 IGJlIHB1Ymxpc2hlZC4KIAkgKi8KIAlpZiAoIXRvTG9nZ2VkICYmCi0JCWxpc3RfbGVuZ3RoKEdl dFJlbGF0aW9uUHVibGljYXRpb25zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSkpID4gMCkKKwkJbGlz dF9sZW5ndGgoR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoUmVsYXRpb25HZXRSZWxpZChyZWwpLCBm YWxzZSkpID4gMCkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVD VF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKIAkJCQkgZXJybXNnKCJjYW5ub3QgY2hhbmdl IHRhYmxlIFwiJXNcIiB0byB1bmxvZ2dlZCBiZWNhdXNlIGl0IGlzIHBhcnQgb2YgYSBwdWJsaWNh dGlvbiIsCkBAIC0xNjQxMyw3ICsxNjQxMyw3IEBAIEFsdGVyVGFibGVOYW1lc3BhY2UoQWx0ZXJP YmplY3RTY2hlbWFTdG10ICpzdG10LCBPaWQgKm9sZHNjaGVtYSkKIAl7CiAJCUxpc3RDZWxsICAg KmxjOwogCQlMaXN0CSAgICpzY2hlbWFQdWJpZHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMobnNw T2lkLCBmYWxzZSk7Ci0JCUxpc3QJICAgKnJlbFB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRp b25zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSk7CisJCUxpc3QJICAgKnJlbFB1YmlkcyA9IEdldFJl bGF0aW9uUHVibGljYXRpb25zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgZmFsc2UpOwogCiAJCWZv cmVhY2gobGMsIHJlbFB1YmlkcykKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggN2ZkOGQxOTRjZS4uYmUz ZDQ5ZjYwNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC00OTgsNyArNDk4LDcgQEAgc3RhdGljIE5vZGUgKm1h a2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUg KnF1ZXJ5KTsKICV0eXBlIDxsaXN0PglvcHRfaW50ZXJ2YWwgaW50ZXJ2YWxfc2Vjb25kCiAldHlw ZSA8c3RyPgkJdW5pY29kZV9ub3JtYWxfZm9ybQogCi0ldHlwZSA8Ym9vbGVhbj4gb3B0X2luc3Rl YWQKKyV0eXBlIDxib29sZWFuPiBvcHRfaW5zdGVhZCBvcHRfc2tpcAogJXR5cGUgPGJvb2xlYW4+ IG9wdF91bmlxdWUgb3B0X2NvbmN1cnJlbnRseSBvcHRfdmVyYm9zZSBvcHRfZnVsbAogJXR5cGUg PGJvb2xlYW4+IG9wdF9mcmVlemUgb3B0X2FuYWx5emUgb3B0X2RlZmF1bHQgb3B0X3JlY2hlY2sK ICV0eXBlIDxkZWZlbHQ+CW9wdF9iaW5hcnkgY29weV9kZWxpbWl0ZXIKQEAgLTk5MjMsMTQgKzk5 MjMsMTYgQEAgQ3JlYXRlUHVibGljYXRpb25TdG10OgogICogcmVsYXRpb25fZXhwciBoZXJlLgog ICovCiBQdWJsaWNhdGlvbk9ialNwZWM6Ci0JCQlUQUJMRSByZWxhdGlvbl9leHByIG9wdF9jb2x1 bW5fbGlzdCBPcHRXaGVyZUNsYXVzZQorCQkJb3B0X3NraXAgVEFCTEUgcmVsYXRpb25fZXhwciBv cHRfY29sdW1uX2xpc3QgT3B0V2hlcmVDbGF1c2UKIAkJCQl7CiAJCQkJCSQkID0gbWFrZU5vZGUo UHVibGljYXRpb25PYmpTcGVjKTsKIAkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9C Sl9UQUJMRTsKIAkJCQkJJCQtPnB1YnRhYmxlID0gbWFrZU5vZGUoUHVibGljYXRpb25UYWJsZSk7 Ci0JCQkJCSQkLT5wdWJ0YWJsZS0+cmVsYXRpb24gPSAkMjsKLQkJCQkJJCQtPnB1YnRhYmxlLT5j b2x1bW5zID0gJDM7Ci0JCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkNDsKKwkJCQkJ JCQtPnNraXAgPSAkMTsKKwkJCQkJJCQtPnB1YnRhYmxlLT5za2lwID0gJDE7CisJCQkJCSQkLT5w dWJ0YWJsZS0+cmVsYXRpb24gPSAkMzsKKwkJCQkJJCQtPnB1YnRhYmxlLT5jb2x1bW5zID0gJDQ7 CisJCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkNTsKIAkJCQl9CiAJCQl8IEFMTCBU QUJMRVMgSU5fUCBTQ0hFTUEgQ29sSWQKIAkJCQl7CkBAIC0xMDAyNCw2ICsxMDAyNiwxNyBAQCBw dWJfb2JqX2xpc3Q6IAlQdWJsaWNhdGlvbk9ialNwZWMKIAkJCQkJeyAkJCA9IGxhcHBlbmQoJDEs ICQzKTsgfQogCTsKIAorIHNraXBfcHViX29ial9saXN0OglwdWJfb2JqX2xpc3QKKwkJCQkJeyAk JCA9ICQxOyB9CisJCQl8IC8qRU1QVFkqLworCQkJCQl7ICQkID0gTlVMTDsgfQorCTsKKworb3B0 X3NraXA6CisJCQlTS0lQCQkJCQkJCQkJeyAkJCA9IHRydWU7IH0KKwkJCXwgLypFTVBUWSovCQkJ CQkJCQl7ICQkID0gZmFsc2U7IH0KKwkJOworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAg KiBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIFNFVCAoIG9wdGlvbnMgKQpAQCAtMTAyODUsMTMgKzEw Mjk4LDYgQEAgb3B0X2luc3RlYWQ6CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IGZhbHNl OyB9CiAJCTsKIAotCi0gc2tpcF9wdWJfb2JqX2xpc3Q6CXB1Yl9vYmpfbGlzdAotCQkJCQkJeyAk JCA9ICQxOyB9Ci0JCQkJCXwgLypFTVBUWSovCi0JCQkJCQl7ICQkID0gTlVMTDsgfQotCTsKLQog LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCiAgKgogICoJCVFVRVJZOgpAQCAtMTg3ODksNiArMTg3OTUs OCBAQCBwcmVwcm9jZXNzX3B1Ym9ial9saXN0KExpc3QgKnB1Ym9ianNwZWNfbGlzdCwgY29yZV95 eXNjYW5fdCB5eXNjYW5uZXIpCiAJCQkJcHVib2JqLT5wdWJ0YWJsZSA9IHB1YnRhYmxlOwogCQkJ CXB1Ym9iai0+bmFtZSA9IE5VTEw7CiAJCQl9CisKKwkJCXB1Ym9iai0+cHVidGFibGUtPnNraXAg PSBwdWJvYmotPnNraXA7CiAJCX0KIAkJZWxzZSBpZiAocHVib2JqLT5wdWJvYmp0eXBlID09IFBV QkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9TQ0hFTUEgfHwKIAkJCQkgcHVib2JqLT5wdWJvYmp0eXBl ID09IFBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9DVVJfU0NIRU1BKQpAQCAtMTg4NDYsMTEgKzE4 ODU0LDEwIEBAIHByZXByb2Nlc3NfYWxsdGFibGVzX3B1Ym9ial9saXN0KExpc3QgKnB1Ym9ianNw ZWNfbGlzdCwgaW50IGxvY2F0aW9uLAogCQlQdWJsaWNhdGlvbk9ialNwZWMgKnB1Ym9iaiA9IChQ dWJsaWNhdGlvbk9ialNwZWMgKikgbGZpcnN0KGNlbGwpOwogCiAJCS8qIE9ubHkgU0tJUCBBTEwg VEFCTEVTIElOIFNDSEVNQSBvcHRpb24gc3VwcG9ydGVkIHdpdGggQUxMIFRBQkxFUyAqLwotCQlp ZiAocHVib2JqLT5wdWJvYmp0eXBlICE9IFBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9TQ0hFTUEg fHwKLQkJCSFwdWJvYmotPnNraXApCisJCWlmICghcHVib2JqLT5za2lwKQogCQkJZXJlcG9ydChF UlJPUiwKIAkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCi0JCQkJCWVycm1zZygi b25seSBTS0lQIEFMTCBUQUJMRVMgSU4gU0NIRU1BIGNhbiBiZSBzcGVjaWZpZWQgd2l0aCBBTEwg VEFCTEVTIG9wdGlvbiIpLAorCQkJCQllcnJtc2coIm9ubHkgU0tJUCBBTEwgVEFCTEVTIElOIFND SEVNQSBvciBTS0lQIFRBQkxFIGNhbiBiZSBzcGVjaWZpZWQgd2l0aCBBTEwgVEFCTEVTIG9wdGlv biIpLAogCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHVib2JqLT5sb2NhdGlvbikpOwogCX0KIH0K QEAgLTE4ODcyLDEyICsxODg3OSwxMiBAQCBjaGVja19za2lwX2luX3B1Ym9ial9saXN0KExpc3Qg KnB1Ym9ianNwZWNfbGlzdCwgY29yZV95eXNjYW5fdCB5eXNjYW5uZXIpCiAJewogCQlwdWJvYmog PSAoUHVibGljYXRpb25PYmpTcGVjICopIGxmaXJzdChjZWxsKTsKIAotCQkvKiBPbmx5IFNLSVAg QUxMIFRBQkxFUyBJTiBTQ0hFTUEgb3B0aW9uIHN1cHBvcnRlZCB3aXRoIEFMTCBUQUJMRVMgKi8K LQkJaWYgKHB1Ym9iai0+cHVib2JqdHlwZSA9PSBQVUJMSUNBVElPTk9CSl9UQUJMRVNfSU5fU0NI RU1BICYmCi0JCQlwdWJvYmotPnNraXApCisJCS8qIFNLSVAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEv U0tJUCBUQUJMRSBvcHRpb24gc3VwcG9ydGVkIG9ubHkgd2l0aCBBTEwgVEFCTEVTICovCisJCWlm ICgocHVib2JqLT5wdWJvYmp0eXBlID09IFBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9TQ0hFTUEg fHwKKwkJCSBwdWJvYmotPnB1Ym9ianR5cGUgPT0gUFVCTElDQVRJT05PQkpfVEFCTEUpICYmIHB1 Ym9iai0+c2tpcCkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5U QVhfRVJST1IpLAotCQkJCQllcnJtc2coIlNLSVAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgY2FuIGJl IHNwZWNpZmllZCBvbmx5IHdpdGggQUxMIFRBQkxFUyBvcHRpb24iKSwKKwkJCQkJZXJybXNnKCJT S0lQIEFMTCBUQUJMRVMgSU4gU0NIRU1BL1NLSVAgVEFCTEUgY2FuIGJlIHNwZWNpZmllZCBvbmx5 IHdpdGggQUxMIFRBQkxFUyBvcHRpb24iKSwKIAkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHB1Ym9i ai0+bG9jYXRpb24pKTsKIAl9CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9wZ291dHB1dC9wZ291dHB1dC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQv cGdvdXRwdXQuYwppbmRleCAxOTE4MTI5N2FmLi5iODFhYzc5N2I4IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCisrKyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKQEAgLTE5ODksNyArMTk4OSw3IEBAIGdl dF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQog CWlmICghZW50cnktPnJlcGxpY2F0ZV92YWxpZCkKIAl7CiAJCU9pZAkJCXNjaGVtYUlkID0gZ2V0 X3JlbF9uYW1lc3BhY2UocmVsaWQpOwotCQlMaXN0CSAgICpwdWJpZHMgPSBHZXRSZWxhdGlvblB1 YmxpY2F0aW9ucyhyZWxpZCk7CisJCUxpc3QJICAgKnB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGlj YXRpb25zKHJlbGlkLCBmYWxzZSk7CiAKIAkJLyoKIAkJICogV2UgZG9uJ3QgYWNxdWlyZSBhIGxv Y2sgb24gdGhlIG5hbWVzcGFjZSBzeXN0ZW0gdGFibGUgYXMgd2UgYnVpbGQKQEAgLTE5OTgsNiAr MTk5OCw3IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9u IHJlbGF0aW9uKQogCQkgKi8KIAkJTGlzdAkgICAqc2NoZW1hUHViaWRzID0gR2V0U2NoZW1hUHVi bGljYXRpb25zKHNjaGVtYUlkLCBmYWxzZSk7CiAJCUxpc3QgICAgICAgKnNraXBTY2hlbWFQdWJp ZHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoc2NoZW1hSWQsIHRydWUpOworCQlMaXN0CSAgICpz a2lwVGFibGVQdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCwgdHJ1ZSk7CiAJ CUxpc3RDZWxsICAgKmxjOwogCQlPaWQJCQlwdWJsaXNoX2FzX3JlbGlkID0gcmVsaWQ7CiAJCWlu dAkJCXB1Ymxpc2hfYW5jZXN0b3JfbGV2ZWwgPSAwOwpAQCAtMjExMyw3ICsyMTE0LDkgQEAgZ2V0 X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAK IAkJCQlpZiAobGlzdF9tZW1iZXJfb2lkKHB1YmlkcywgcHViLT5vaWQpIHx8CiAJCQkJCWxpc3Rf bWVtYmVyX29pZChzY2hlbWFQdWJpZHMsIHB1Yi0+b2lkKSB8fAotCQkJCQkocHViLT5hbGx0YWJs ZXMgJiYgIWxpc3RfbWVtYmVyX29pZChza2lwU2NoZW1hUHViaWRzLCBwdWItPm9pZCkpIHx8CisJ CQkJCShwdWItPmFsbHRhYmxlcyAmJgorCQkJCQkgIWxpc3RfbWVtYmVyX29pZChza2lwU2NoZW1h UHViaWRzLCBwdWItPm9pZCkgJiYKKwkJCQkJICFsaXN0X21lbWJlcl9vaWQoc2tpcFRhYmxlUHVi aWRzLCBwdWItPm9pZCkpIHx8CiAJCQkJCWFuY2VzdG9yX3B1Ymxpc2hlZCkKIAkJCQkJcHVibGlz aCA9IHRydWU7CiAJCQl9CkBAIC0yMTkwLDYgKzIxOTMsNyBAQCBnZXRfcmVsX3N5bmNfZW50cnko UEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAkJbGlzdF9mcmVlKHB1Ymlk cyk7CiAJCWxpc3RfZnJlZShzY2hlbWFQdWJpZHMpOwogCQlsaXN0X2ZyZWUoc2tpcFNjaGVtYVB1 Ymlkcyk7CisJCWxpc3RfZnJlZShza2lwVGFibGVQdWJpZHMpOwogCQlsaXN0X2ZyZWUocmVsX3B1 YmxpY2F0aW9ucyk7CiAKIAkJZW50cnktPnJlcGxpY2F0ZV92YWxpZCA9IHRydWU7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRp bHMvY2FjaGUvcmVsY2FjaGUuYwppbmRleCAwMmMwYTQ3Y2ExLi41YjUxMTg1NjU2IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMKQEAgLTU1NjMsNyArNTU2Myw3IEBAIFJlbGF0aW9uQnVp bGRQdWJsaWNhdGlvbkRlc2MoUmVsYXRpb24gcmVsYXRpb24sIFB1YmxpY2F0aW9uRGVzYyAqcHVi ZGVzYykKIHsKIAlMaXN0CSAgICpwdWJvaWRzOwogCUxpc3QJICAgKmFsbHRhYmxlc3B1Ym9pZHM7 Ci0JTGlzdAkgICAqc2tpcHNjaGVtYXB1Ym9pZHM7CisJTGlzdAkgICAqc2tpcHB1Ym9pZHM7CiAJ TGlzdENlbGwgICAqbGM7CiAJTWVtb3J5Q29udGV4dCBvbGRjeHQ7CiAJT2lkCQkJc2NoZW1haWQ7 CkBAIC01NTk3LDEwICs1NTk3LDEwIEBAIFJlbGF0aW9uQnVpbGRQdWJsaWNhdGlvbkRlc2MoUmVs YXRpb24gcmVsYXRpb24sIFB1YmxpY2F0aW9uRGVzYyAqcHViZGVzYykKIAlwdWJkZXNjLT5jb2xz X3ZhbGlkX2Zvcl9kZWxldGUgPSB0cnVlOwogCiAJLyogRmV0Y2ggdGhlIHB1YmxpY2F0aW9uIG1l bWJlcnNoaXAgaW5mby4gKi8KLQlwdWJvaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMocmVs aWQpOworCXB1Ym9pZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCwgZmFsc2UpOwog CXNjaGVtYWlkID0gUmVsYXRpb25HZXROYW1lc3BhY2UocmVsYXRpb24pOwogCXB1Ym9pZHMgPSBs aXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsIEdldFNjaGVtYVB1YmxpY2F0aW9ucyhzY2hl bWFpZCwgZmFsc2UpKTsKLQlza2lwc2NoZW1hcHVib2lkcyA9IEdldFNjaGVtYVB1YmxpY2F0aW9u cyhzY2hlbWFpZCwgdHJ1ZSk7CisJc2tpcHB1Ym9pZHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMo c2NoZW1haWQsIHRydWUpOwogCiAJaWYgKHJlbGF0aW9uLT5yZF9yZWwtPnJlbGlzcGFydGl0aW9u KQogCXsKQEAgLTU2MTIsMjAgKzU2MTIsMjIgQEAgUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVz YyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogCQkJT2lkCQkJ YW5jZXN0b3IgPSBsZmlyc3Rfb2lkKGxjKTsKIAogCQkJcHVib2lkcyA9IGxpc3RfY29uY2F0X3Vu aXF1ZV9vaWQocHVib2lkcywKLQkJCQkJCQkJCQkJIEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFu Y2VzdG9yKSk7CisJCQkJCQkJCQkJCSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhhbmNlc3Rvciwg ZmFsc2UpKTsKIAkJCXNjaGVtYWlkID0gZ2V0X3JlbF9uYW1lc3BhY2UoYW5jZXN0b3IpOwogCQkJ cHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywKIAkJCQkJCQkJCQkJIEdl dFNjaGVtYVB1YmxpY2F0aW9ucyhzY2hlbWFpZCwgZmFsc2UpKTsKLQkJCXNraXBzY2hlbWFwdWJv aWRzID0gbGlzdF9jb25jYXRfdW5pcXVlX29pZChza2lwc2NoZW1hcHVib2lkcywKLQkJCQkJCQkJ CQkJCQkgICBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoc2NoZW1haWQsCi0JCQkJCQkJCQkJCQkJCQkJ CQkJIHRydWUpKTsKKwkJCXNraXBwdWJvaWRzID0gbGlzdF9jb25jYXRfdW5pcXVlX29pZChza2lw cHVib2lkcywKKwkJCQkJCQkJCQkJCSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoc2NoZW1haWQsCisJ CQkJCQkJCQkJCQkJCQkJCSAgIHRydWUpKTsKKwkJCXNraXBwdWJvaWRzID0gbGlzdF9jb25jYXRf dW5pcXVlX29pZChza2lwcHVib2lkcywKKwkJCQkJCQkJCQkJCSBHZXRSZWxhdGlvblB1YmxpY2F0 aW9ucyhhbmNlc3RvciwgdHJ1ZSkpOwogCQl9CiAJfQogCiAJYWxsdGFibGVzcHVib2lkcyA9IEdl dEFsbFRhYmxlc1B1YmxpY2F0aW9ucygpOwogCXB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVf b2lkKHB1Ym9pZHMsCiAJCQkJCQkJCQkgbGlzdF9kaWZmZXJlbmNlX29pZChhbGx0YWJsZXNwdWJv aWRzLAotCQkJCQkJCQkJCQkJCQkgc2tpcHNjaGVtYXB1Ym9pZHMpKTsKKwkJCQkJCQkJCQkJCQkJ IHNraXBwdWJvaWRzKSk7CiAJZm9yZWFjaChsYywgcHVib2lkcykKIAl7CiAJCU9pZAkJCXB1Ymlk ID0gbGZpcnN0X29pZChsYyk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5j IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCAyOTY1MjdiZGU1Li5lZTU3ZGU5ODkw IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMKQEAgLTI4Miw3ICsyODIsOCBAQCBzdGF0aWMgdm9pZCBkdW1wQmxvYihB cmNoaXZlICpmb3V0LCBjb25zdCBCbG9iSW5mbyAqYmluZm8pOwogc3RhdGljIGludAlkdW1wQmxv YnMoQXJjaGl2ZSAqZm91dCwgY29uc3Qgdm9pZCAqYXJnKTsKIHN0YXRpYyB2b2lkIGR1bXBQb2xp Y3koQXJjaGl2ZSAqZm91dCwgY29uc3QgUG9saWN5SW5mbyAqcG9saW5mbyk7CiBzdGF0aWMgdm9p ZCBkdW1wUHVibGljYXRpb24oQXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGljYXRpb25JbmZvICpw dWJpbmZvKTsKLXN0YXRpYyB2b2lkIGR1bXBQdWJsaWNhdGlvblRhYmxlKEFyY2hpdmUgKmZvdXQs IGNvbnN0IFB1YmxpY2F0aW9uUmVsSW5mbyAqcHVicmluZm8pOworc3RhdGljIHZvaWQgZHVtcFB1 YmxpY2F0aW9uVGFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGljYXRpb25SZWxJbmZvICpw dWJyaW5mbywKKwkJCQkJCQkJIGJvb2wgYnNraXApOwogc3RhdGljIHZvaWQgZHVtcFN1YnNjcmlw dGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBTdWJzY3JpcHRpb25JbmZvICpzdWJpbmZvKTsKIHN0 YXRpYyB2b2lkIGR1bXBEYXRhYmFzZShBcmNoaXZlICpBSCk7CiBzdGF0aWMgdm9pZCBkdW1wRGF0 YWJhc2VDb25maWcoQXJjaGl2ZSAqQUgsIFBRRXhwQnVmZmVyIG91dGJ1ZiwKQEAgLTQwOTksNiAr NDEwMCw3IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0 YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJaW50CQkJaV9wcnJlbGlkOwogCWludAkJCWlfcHJy ZWxxdWFsOwogCWludAkJCWlfcHJhdHRyczsKKwlpbnQJCQlpX3Byc2tpcDsKIAlpbnQJCQlpLAog CQkJCWosCiAJCQkJbnR1cHM7CkBAIC00MTExLDcgKzQxMTMsNyBAQCBnZXRQdWJsaWNhdGlvblRh YmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQog CS8qIENvbGxlY3QgYWxsIHB1YmxpY2F0aW9uIG1lbWJlcnNoaXAgaW5mby4gKi8KIAlpZiAoZm91 dC0+cmVtb3RlVmVyc2lvbiA+PSAxNTAwMDApCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5 LAotCQkJCQkJCSAiU0VMRUNUIHRhYmxlb2lkLCBvaWQsIHBycHViaWQsIHBycmVsaWQsICIKKwkJ CQkJCQkgIlNFTEVDVCB0YWJsZW9pZCwgb2lkLCBwcnB1YmlkLCBwcnJlbGlkLCBwcnNraXAsIgog CQkJCQkJCSAicGdfY2F0YWxvZy5wZ19nZXRfZXhwcihwcnF1YWwsIHBycmVsaWQpIEFTIHBycmVs cXVhbCwgIgogCQkJCQkJCSAiKENBU0VcbiIKIAkJCQkJCQkgIiAgV0hFTiBwci5wcmF0dHJzIElT IE5PVCBOVUxMIFRIRU5cbiIKQEAgLTQxMzcsNiArNDEzOSw3IEBAIGdldFB1YmxpY2F0aW9uVGFi bGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJ aV9wcnJlbGlkID0gUFFmbnVtYmVyKHJlcywgInBycmVsaWQiKTsKIAlpX3BycmVscXVhbCA9IFBR Zm51bWJlcihyZXMsICJwcnJlbHF1YWwiKTsKIAlpX3ByYXR0cnMgPSBQUWZudW1iZXIocmVzLCAi cHJhdHRycyIpOworCWlfcHJza2lwID0gUFFmbnVtYmVyKHJlcywgInByc2tpcCIpOwogCiAJLyog dGhpcyBhbGxvY2F0aW9uIG1heSBiZSBtb3JlIHRoYW4gd2UgbmVlZCAqLwogCXB1YnJpbmZvID0g cGdfbWFsbG9jKG50dXBzICogc2l6ZW9mKFB1YmxpY2F0aW9uUmVsSW5mbykpOwpAQCAtNDE0OCw2 ICs0MTUxLDcgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZv IHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAkJT2lkCQkJcHJyZWxpZCA9IGF0b29pZChQUWdl dHZhbHVlKHJlcywgaSwgaV9wcnJlbGlkKSk7CiAJCVB1YmxpY2F0aW9uSW5mbyAqcHViaW5mbzsK IAkJVGFibGVJbmZvICAqdGJpbmZvOworCQljaGFyICAgICAgICpwcnNraXAgPSBwZ19zdHJkdXAo UFFnZXR2YWx1ZShyZXMsIGksIGlfcHJza2lwKSk7CiAKIAkJLyoKIAkJICogSWdub3JlIGFueSBl bnRyaWVzIGZvciB3aGljaCB3ZSBhcmVuJ3QgaW50ZXJlc3RlZCBpbiBlaXRoZXIgdGhlCkBAIC00 MTY4LDcgKzQxNzIsMTEgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFi bGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAkJCWNvbnRpbnVlOwogCiAJCS8qIE9L LCBtYWtlIGEgRHVtcGFibGVPYmplY3QgZm9yIHRoaXMgcmVsYXRpb25zaGlwICovCi0JCXB1YnJp bmZvW2pdLmRvYmoub2JqVHlwZSA9IERPX1BVQkxJQ0FUSU9OX1JFTDsKKwkJaWYgKHN0cmNtcChw cnNraXAsICJmIikgPT0gMCkKKwkJCXB1YnJpbmZvW2pdLmRvYmoub2JqVHlwZSA9IERPX1BVQkxJ Q0FUSU9OX1JFTDsKKwkJZWxzZQorCQkJcHVicmluZm9bal0uZG9iai5vYmpUeXBlID0gRE9fUFVC TElDQVRJT05fU0tJUF9SRUw7CisKIAkJcHVicmluZm9bal0uZG9iai5jYXRJZC50YWJsZW9pZCA9 CiAJCQlhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdGFibGVvaWQpKTsKIAkJcHVicmluZm9b al0uZG9iai5jYXRJZC5vaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfb2lkKSk7CkBA IC00MjY3LDEzICs0Mjc1LDE1IEBAIGR1bXBQdWJsaWNhdGlvbk5hbWVzcGFjZShBcmNoaXZlICpm b3V0LCBjb25zdCBQdWJsaWNhdGlvblNjaGVtYUluZm8gKnB1YnNpbmZvLAogICoJICBkdW1wIHRo ZSBkZWZpbml0aW9uIG9mIHRoZSBnaXZlbiBwdWJsaWNhdGlvbiB0YWJsZSBtYXBwaW5nCiAgKi8K IHN0YXRpYyB2b2lkCi1kdW1wUHVibGljYXRpb25UYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBQ dWJsaWNhdGlvblJlbEluZm8gKnB1YnJpbmZvKQorZHVtcFB1YmxpY2F0aW9uVGFibGUoQXJjaGl2 ZSAqZm91dCwgY29uc3QgUHVibGljYXRpb25SZWxJbmZvICpwdWJyaW5mbywKKwkJCQkJIGJvb2wg YnNraXApCiB7CiAJRHVtcE9wdGlvbnMgKmRvcHQgPSBmb3V0LT5kb3B0OwogCVB1YmxpY2F0aW9u SW5mbyAqcHViaW5mbyA9IHB1YnJpbmZvLT5wdWJsaWNhdGlvbjsKIAlUYWJsZUluZm8gICp0Ymlu Zm8gPSBwdWJyaW5mby0+cHVidGFibGU7CiAJUFFFeHBCdWZmZXIgcXVlcnk7CiAJY2hhcgkgICAq dGFnOworCWNoYXIJICAgKmRlc2NyaXB0aW9uOwogCiAJLyogRG8gbm90aGluZyBpbiBkYXRhLW9u bHkgZHVtcCAqLwogCWlmIChkb3B0LT5kYXRhT25seSkKQEAgLTQyODMsOCArNDI5MywxNSBAQCBk dW1wUHVibGljYXRpb25UYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBQdWJsaWNhdGlvblJlbElu Zm8gKnB1YnJpbmZvKQogCiAJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOwogCi0JYXBwZW5k UFFFeHBCdWZmZXIocXVlcnksICJBTFRFUiBQVUJMSUNBVElPTiAlcyBBREQgVEFCTEUgT05MWSIs CisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJBTFRFUiBQVUJMSUNBVElPTiAlcyBBREQgIiwK IAkJCQkJICBmbXRJZChwdWJpbmZvLT5kb2JqLm5hbWUpKTsKKworCWlmIChic2tpcCkKKwkJYXBw ZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICJTS0lQICIpOworCisJYXBwZW5kUFFFeHBCdWZmZXJT dHIocXVlcnksICJUQUJMRSBPTkxZIik7CisJZGVzY3JpcHRpb24gPSAoYnNraXApID8gIlNLSVAg UFVCTElDQVRJT04gVEFCTEUiIDogIlBVQkxJQ0FUSU9OIFRBQkxFIjsKKwogCWFwcGVuZFBRRXhw QnVmZmVyKHF1ZXJ5LCAiICVzIiwKIAkJCQkJICBmbXRRdWFsaWZpZWREdW1wYWJsZSh0YmluZm8p KTsKIApAQCAtNDMxMyw3ICs0MzMwLDcgQEAgZHVtcFB1YmxpY2F0aW9uVGFibGUoQXJjaGl2ZSAq Zm91dCwgY29uc3QgUHVibGljYXRpb25SZWxJbmZvICpwdWJyaW5mbykKIAkJCQkJIEFSQ0hJVkVf T1BUUygudGFnID0gdGFnLAogCQkJCQkJCQkgIC5uYW1lc3BhY2UgPSB0YmluZm8tPmRvYmoubmFt ZXNwYWNlLT5kb2JqLm5hbWUsCiAJCQkJCQkJCSAgLm93bmVyID0gcHViaW5mby0+cm9sbmFtZSwK LQkJCQkJCQkJICAuZGVzY3JpcHRpb24gPSAiUFVCTElDQVRJT04gVEFCTEUiLAorCQkJCQkJCQkg IC5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uLAogCQkJCQkJCQkgIC5zZWN0aW9uID0gU0VDVElP Tl9QT1NUX0RBVEEsCiAJCQkJCQkJCSAgLmNyZWF0ZVN0bXQgPSBxdWVyeS0+ZGF0YSkpOwogCkBA IC05ODg5LDcgKzk5MDYsMTAgQEAgZHVtcER1bXBhYmxlT2JqZWN0KEFyY2hpdmUgKmZvdXQsIER1 bXBhYmxlT2JqZWN0ICpkb2JqKQogCQkJZHVtcFB1YmxpY2F0aW9uKGZvdXQsIChjb25zdCBQdWJs aWNhdGlvbkluZm8gKikgZG9iaik7CiAJCQlicmVhazsKIAkJY2FzZSBET19QVUJMSUNBVElPTl9S RUw6Ci0JCQlkdW1wUHVibGljYXRpb25UYWJsZShmb3V0LCAoY29uc3QgUHVibGljYXRpb25SZWxJ bmZvICopIGRvYmopOworCQkJZHVtcFB1YmxpY2F0aW9uVGFibGUoZm91dCwgKGNvbnN0IFB1Ymxp Y2F0aW9uUmVsSW5mbyAqKSBkb2JqLCBmYWxzZSk7CisJCQlicmVhazsKKwkJY2FzZSBET19QVUJM SUNBVElPTl9TS0lQX1JFTDoKKwkJCWR1bXBQdWJsaWNhdGlvblRhYmxlKGZvdXQsIChjb25zdCBQ dWJsaWNhdGlvblJlbEluZm8gKikgZG9iaiwgdHJ1ZSk7CiAJCQlicmVhazsKIAkJY2FzZSBET19Q VUJMSUNBVElPTl9TS0lQX1RBQkxFX0lOX1NDSEVNQToKIAkJCWR1bXBQdWJsaWNhdGlvbk5hbWVz cGFjZShmb3V0LApAQCAtMTc4MjgsNiArMTc4NDgsNyBAQCBhZGRCb3VuZGFyeURlcGVuZGVuY2ll cyhEdW1wYWJsZU9iamVjdCAqKmRvYmpzLCBpbnQgbnVtT2JqcywKIAkJCWNhc2UgRE9fUE9MSUNZ OgogCQkJY2FzZSBET19QVUJMSUNBVElPTjoKIAkJCWNhc2UgRE9fUFVCTElDQVRJT05fUkVMOgor CQkJY2FzZSBET19QVUJMSUNBVElPTl9TS0lQX1JFTDoKIAkJCWNhc2UgRE9fUFVCTElDQVRJT05f U0tJUF9UQUJMRV9JTl9TQ0hFTUE6CiAJCQljYXNlIERPX1BVQkxJQ0FUSU9OX1RBQkxFX0lOX1ND SEVNQToKIAkJCWNhc2UgRE9fU1VCU0NSSVBUSU9OOgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggY2I5ZTVlMTY0 Yi4uN2RiZDBmNjUzOCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysg Yi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC04MSw2ICs4MSw3IEBAIHR5cGVkZWYgZW51 bQogCURPX1BPTElDWSwKIAlET19QVUJMSUNBVElPTiwKIAlET19QVUJMSUNBVElPTl9SRUwsCisJ RE9fUFVCTElDQVRJT05fU0tJUF9SRUwsCiAJRE9fUFVCTElDQVRJT05fU0tJUF9UQUJMRV9JTl9T Q0hFTUEsCiAJRE9fUFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BLAogCURPX1NVQlNDUklQVElP TgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jIGIvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXBfc29ydC5jCmluZGV4IDQ3ZDRiYWVjYjMuLjQzMzZmNGY2NzQgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYworKysgYi9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcF9zb3J0LmMKQEAgLTkxLDYgKzkxLDcgQEAgZW51bSBkYk9iamVjdFR5cGVQcmlv cml0aWVzCiAJUFJJT19QT0xJQ1ksCiAJUFJJT19QVUJMSUNBVElPTiwKIAlQUklPX1BVQkxJQ0FU SU9OX1JFTCwKKwlQUklPX1BVQkxJQ0FUSU9OX1NLSVBfUkVMLAogCVBSSU9fUFVCTElDQVRJT05f U0tJUF9UQUJMRV9JTl9TQ0hFTUEsCiAJUFJJT19QVUJMSUNBVElPTl9UQUJMRV9JTl9TQ0hFTUEs CiAJUFJJT19TVUJTQ1JJUFRJT04sCkBAIC0xNDYsNiArMTQ3LDcgQEAgc3RhdGljIGNvbnN0IGlu dCBkYk9iamVjdFR5cGVQcmlvcml0eVtdID0KIAlQUklPX1BPTElDWSwJCQkJLyogRE9fUE9MSUNZ ICovCiAJUFJJT19QVUJMSUNBVElPTiwJCQkvKiBET19QVUJMSUNBVElPTiAqLwogCVBSSU9fUFVC TElDQVRJT05fUkVMLAkJLyogRE9fUFVCTElDQVRJT05fUkVMICovCisJUFJJT19QVUJMSUNBVElP Tl9TS0lQX1JFTCwJLyogRE9fUFVCTElDQVRJT05fU0tJUF9SRUwgKi8KIAlQUklPX1BVQkxJQ0FU SU9OX1NLSVBfVEFCTEVfSU5fU0NIRU1BLAkvKiBET19QVUJMSUNBVElPTl9TS0lQX1RBQkxFX0lO X1NDSEVNQSAqLwogCVBSSU9fUFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BLAkvKiBET19QVUJM SUNBVElPTl9UQUJMRV9JTl9TQ0hFTUEgKi8KIAlQUklPX1NVQlNDUklQVElPTgkJCS8qIERPX1NV QlNDUklQVElPTiAqLwpAQCAtMTQ5MCw2ICsxNDkyLDExIEBAIGRlc2NyaWJlRHVtcGFibGVPYmpl Y3QoRHVtcGFibGVPYmplY3QgKm9iaiwgY2hhciAqYnVmLCBpbnQgYnVmc2l6ZSkKIAkJCQkJICJQ VUJMSUNBVElPTiBUQUJMRSAoSUQgJWQgT0lEICV1KSIsCiAJCQkJCSBvYmotPmR1bXBJZCwgb2Jq LT5jYXRJZC5vaWQpOwogCQkJcmV0dXJuOworCQljYXNlIERPX1BVQkxJQ0FUSU9OX1NLSVBfUkVM OgorCQkJc25wcmludGYoYnVmLCBidWZzaXplLAorCQkJCQkgIlBVQkxJQ0FUSU9OIFNLSVAgVEFC TEUgKElEICVkIE9JRCAldSkiLAorCQkJCQkgb2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQub2lkKTsK KwkJCXJldHVybjsKIAkJY2FzZSBET19QVUJMSUNBVElPTl9TS0lQX1RBQkxFX0lOX1NDSEVNQToK IAkJCXNucHJpbnRmKGJ1ZiwgYnVmc2l6ZSwKIAkJCQkJICJQVUJMSUNBVElPTiBTS0lQIFRBQkxF UyBJTiBTQ0hFTUEgKElEICVkIE9JRCAldSkiLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1w L3QvMDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRl eCAyZGJiNDNjMzBlLi5iOTAyY2NhNDRkIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvdC8w MDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAt MjQ2Myw2ICsyNDYzLDE1IEBAIG15ICV0ZXN0cyA9ICgKIAkJbGlrZSA9PiB7ICVmdWxsX3J1bnMs IHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCiAJfSwKIAorCSdDUkVBVEUgUFVCTElDQVRJT04g cHViNicgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNTAsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JF QVRFIFBVQkxJQ0FUSU9OIHB1YjYgRk9SIEFMTCBUQUJMRVM7JywKKwkJcmVnZXhwID0+IHFyL14K KwkJCVxRQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjYgRk9SIEFMTCBUQUJMRVMgV0lUSCAocHVibGlz aCA9ICdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0ZScpO1xFCisJCQkveG0sCisJCWxp a2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAorCX0sCisKIAkn Q1JFQVRFIFNVQlNDUklQVElPTiBzdWIxJyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA1MCwKIAkJ Y3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgU1VCU0NSSVBUSU9OIHN1YjEKQEAgLTI1ODgsNiArMjU5 NywyMCBAQCBteSAldGVzdHMgPSAoCiAJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bv c3RfZGF0YSA9PiAxLCB9LAogCX0sCiAKKwknQUxURVIgUFVCTElDQVRJT04gcHViNiBBREQgU0tJ UCBUQUJMRSB0ZXN0X3RhYmxlJyA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA1MiwKKwkJY3JlYXRl X3NxbCA9PgorCQkgICdBTFRFUiBQVUJMSUNBVElPTiBwdWI2IEFERCBTS0lQIFRBQkxFIGR1bXBf dGVzdC50ZXN0X3RhYmxlOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUFMVEVSIFBVQkxJQ0FU SU9OIHB1YjYgQUREIFNLSVAgVEFCTEUgT05MWSBkdW1wX3Rlc3QudGVzdF90YWJsZTtcRQorCQkJ L3htLAorCQlsaWtlICAgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9 LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQll eGNsdWRlX3Rlc3RfdGFibGUgICAgICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NSRUFURSBTQ0hF TUEgcHVibGljJyA9PiB7CiAJCXJlZ2V4cCA9PiBxci9eQ1JFQVRFIFNDSEVNQSBwdWJsaWM7L20s CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmMKaW5kZXggZGQ2YjYzZTdlMi4uM2Q2MTMxN2U5YSAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTI5MTEs NyArMjkxMSw3IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5h bWUsCiAJCQkJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbiBwXG4iCiAJCQkJ CQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwciBPTiBwLm9pZCA9 IHByLnBycHViaWRcbiIKIAkJCQkJCQkJICAiCQlKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgYyBP TiBjLm9pZCA9IHByLnBycmVsaWRcbiIKLQkJCQkJCQkJICAiV0hFUkUgcHIucHJyZWxpZCA9ICcl cydcbiIKKwkJCQkJCQkJICAiV0hFUkUgcHIucHJyZWxpZCA9ICclcycgQU5EIHByLnByc2tpcCA9 ICdmJ1xuIgogCQkJCQkJCQkgICJVTklPTlxuIgogCQkJCQkJCQkgICJTRUxFQ1QgcHVibmFtZVxu IgogCQkJCQkJCQkgICIJCSwgTlVMTFxuIgpAQCAtMjkyMyw4ICsyOTIzLDEzIEBAIGRlc2NyaWJl T25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCQkJCQkJCSAgIgkJCQkJ CQkJSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNzIHBjXG4iCiAJCQkJCQkJCSAgIgkgIAkgCQkJCQkJ T04gcGMucmVsbmFtZXNwYWNlID0gcG4ucG5uc3BpZFxuIgogCQkJCQkJCQkgICIJCQkJCQkJV0hF UkUgcGMub2lkID0nJXMnIEFORCBwbi5wbnB1YmlkID0gcC5vaWQpXG4iCisJCQkJCQkJCSAgIgkJ QU5EIE5PVCBFWElTVFMgKFNFTEVDVCAxXG4iCisJCQkJCQkJCSAgIgkJCQkJCQlGUk9NIHBnX2Nh dGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByXG4iCisJCQkJCQkJCSAgIgkJCQkJCQkJSk9JTiBw Z19jYXRhbG9nLnBnX2NsYXNzIHBjXG4iCisJCQkJCQkJCSAgIgkgIAkgCQkJCQkJT04gcHIucHJy ZWxpZCA9IHBjLm9pZFxuIgorCQkJCQkJCQkgICIJCQkJCQkJV0hFUkUgcHIucHJyZWxpZCA9ICcl cycgQU5EIHByLnBycHViaWQgPSBwLm9pZClcbiIKIAkJCQkJCQkJICAiT1JERVIgQlkgMTsiLAot CQkJCQkJCQkgIG9pZCwgb2lkLCBvaWQsIG9pZCwgb2lkKTsKKwkJCQkJCQkJICBvaWQsIG9pZCwg b2lkLCBvaWQsIG9pZCwgb2lkKTsKIAkJCX0KIAkJCWVsc2UKIAkJCXsKQEAgLTYxNTksNiArNjE2 NCw3IEBAIGRlc2NyaWJlUHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJCQkJCQkJ ICAiV0hFUkUgYy5yZWxuYW1lc3BhY2UgPSBuLm9pZFxuIgogCQkJCQkJCSAgIiAgQU5EIGMub2lk ID0gcHIucHJyZWxpZFxuIgogCQkJCQkJCSAgIiAgQU5EIHByLnBycHViaWQgPSAnJXMnXG4iCisJ CQkJCQkJICAiICBBTkQgcHIucHJza2lwID0gJ2YnXG4iCiAJCQkJCQkJICAiT1JERVIgQlkgMSwy IiwgcHViaWQpOwogCQkJaWYgKCFhZGRGb290ZXJUb1B1YmxpY2F0aW9uRGVzYygmYnVmLCBfKCJU YWJsZXM6IiksIGZhbHNlLCAmY29udCkpCiAJCQkJZ290byBlcnJvcl9yZXR1cm47CkBAIC02MTkx LDYgKzYxOTcsMTggQEAgZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikK IAkJCWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlvbkRlc2MoJmJ1ZiwgIlNraXAgdGFibGVzIGZy b20gc2NoZW1hczoiLAogCQkJCQkJCQkJCQl0cnVlLCAmY29udCkpCiAJCQkJZ290byBlcnJvcl9y ZXR1cm47CisKKwkJCS8qIEdldCB0aGUgc2tpcCB0YWJsZXMgZm9yIHRoZSBzcGVjaWZpZWQgcHVi bGljYXRpb24gKi8KKwkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkJICAiU0VMRUNU IGNvbmNhdChjLnJlbG5hbWVzcGFjZTo6cmVnbmFtZXNwYWNlLCAnLicsIGMucmVsbmFtZSlcbiIK KwkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgY1xuIgorCQkJCQkJCSAgIiAgICAg Sk9JTiBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwciBPTiBjLm9pZCA9IHByLnBycmVs aWRcbiIKKwkJCQkJCQkgICJXSEVSRSBwci5wcnB1YmlkID0gJyVzJ1xuIgorCQkJCQkJCSAgIiAg QU5EIHByLnByc2tpcCA9ICd0J1xuIgorCQkJCQkJCSAgIk9SREVSIEJZIDEiLCBwdWJpZCk7CisJ CQlpZiAoIWFkZEZvb3RlclRvUHVibGljYXRpb25EZXNjKCZidWYsICJTa2lwIHRhYmxlczoiLAor CQkJCQkJCQkJCQl0cnVlLCAmY29udCkpCisJCQkJZ290byBlcnJvcl9yZXR1cm47CiAJCX0KIAog CQlwcmludFRhYmxlKCZjb250LCBwc2V0LnF1ZXJ5Rm91dCwgZmFsc2UsIHBzZXQubG9nZmlsZSk7 CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgYi9zcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmMKaW5kZXggNDAyYWI5MGI1OC4uN2Q0YzNlZjQwNSAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxl dGUuYwpAQCAtMTgyOCwxMCArMTgyOCwxMSBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAq dGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQlDT01QTEVURV9XSVRIKCJBREQiLCAiRFJPUCIs ICJPV05FUiBUTyIsICJSRU5BTUUgVE8iLCAiU0VUIik7CiAJLyogQUxURVIgUFVCTElDQVRJT04g PG5hbWU+IEFERCAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwg TWF0Y2hBbnksICJBREQiKSkKLQkJQ09NUExFVEVfV0lUSCgiQUxMIFRBQkxFUyBJTiBTQ0hFTUEi LCAiU0tJUCBBTEwgVEFCTEVTIElOIFNDSEVNQSIsICJUQUJMRSIpOworCQlDT01QTEVURV9XSVRI KCJBTEwgVEFCTEVTIElOIFNDSEVNQSIsICJTS0lQIEFMTCBUQUJMRVMgSU4gU0NIRU1BIiwgIlNL SVAgVEFCTEUiLCAiVEFCTEUiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNB VElPTiIsIE1hdGNoQW55LCAiQUREIiwgIlNLSVAiKSkKLQkJQ09NUExFVEVfV0lUSCgiQUxMIFRB QkxFUyBJTiBTQ0hFTUEiKTsKKwkJQ09NUExFVEVfV0lUSCgiQUxMIFRBQkxFUyBJTiBTQ0hFTUEi LCAiVEFCTEUiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1h dGNoQW55LCAiQUREfFNFVCIsICJUQUJMRSIpIHx8CisJCQkgTWF0Y2hlcygiQUxURVIiLCAiUFVC TElDQVRJT04iLCBNYXRjaEFueSwgIkFERHxTRVQiLCAiU0tJUCIsICJUQUJMRSIpIHx8CiAJCQkg KEhlYWRNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREfFNFVCIs ICJUQUJMRSIpICYmCiAJCQkgIGVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKSkKIAkJQ09NUExFVEVf V0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzKTsKQEAgLTE4NTMsMTQg KzE4NTQsMTQgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwg aW50IGVuZCkKIAkJQ09NUExFVEVfV0lUSCgiLCIpOwogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxu YW1lPiBEUk9QICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBN YXRjaEFueSwgIkRST1AiKSkKLQkJQ09NUExFVEVfV0lUSCgiQUxMIFRBQkxFUyBJTiBTQ0hFTUEi LCAiU0tJUCBBTEwgVEFCTEVTIElOIFNDSEVNQSIsICJUQUJMRSIpOworCQlDT01QTEVURV9XSVRI KCJBTEwgVEFCTEVTIElOIFNDSEVNQSIsICJTS0lQIEFMTCBUQUJMRVMgSU4gU0NIRU1BIiwgIlNL SVAgVEFCTEUiLCAiVEFCTEUiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNB VElPTiIsIE1hdGNoQW55LCAiRFJPUCIsICJTS0lQIikpCi0JCUNPTVBMRVRFX1dJVEgoIkFMTCBU QUJMRVMgSU4gU0NIRU1BIik7CisJCUNPTVBMRVRFX1dJVEgoIkFMTCBUQUJMRVMgSU4gU0NIRU1B IiwgIlRBQkxFIik7CiAJLyogQUxURVIgUFVCTElDQVRJT04gPG5hbWU+IFNFVCAqLwogCWVsc2Ug aWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJTRVQiKSkKLQkJ Q09NUExFVEVfV0lUSCgiKCIsICJBTEwgVEFCTEVTIElOIFNDSEVNQSIsICJTS0lQIEFMTCBUQUJM RVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7CisJCUNPTVBMRVRFX1dJVEgoIigiLCAiQUxMIFRBQkxF UyBJTiBTQ0hFTUEiLCAiU0tJUCBBTEwgVEFCTEVTIElOIFNDSEVNQSIsICJTS0lQIFRBQkxFIiwg IlRBQkxFIik7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRj aEFueSwgIlNFVCIsICJTS0lQIikpCi0JCUNPTVBMRVRFX1dJVEgoIkFMTCBUQUJMRVMgSU4gU0NI RU1BIik7CisJCUNPTVBMRVRFX1dJVEgoIkFMTCBUQUJMRVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7 CiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFE RHxEUk9QfFNFVCIsICJBTEwiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIpIHx8CiAJCQkgTWF0 Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERHxEUk9QfFNFVCIsICJT S0lQIiwgIkFMTCIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIikpCiAJCUNPTVBMRVRFX1dJVEhf UVVFUllfUExVUyhRdWVyeV9mb3JfbGlzdF9vZl9zY2hlbWFzCkBAIC0yOTk4LDcgKzI5OTksOSBA QCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQog CWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9S IiwgIkFMTCIpKQogCQlDT01QTEVURV9XSVRIKCJUQUJMRVMiLCAiVEFCTEVTIElOIFNDSEVNQSIp OwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAi Rk9SIiwgIkFMTCIsICJUQUJMRVMiKSkKLQkJQ09NUExFVEVfV0lUSCgiSU4gU0NIRU1BIiwgIldJ VEggKCIsICJTS0lQIEFMTCBUQUJMRVMgSU4gU0NIRU1BIik7CisJCUNPTVBMRVRFX1dJVEgoIklO IFNDSEVNQSIsICJXSVRIICgiLCAiU0tJUCBBTEwgVEFCTEVTIElOIFNDSEVNQSIsICJTS0lQIFRB QkxFIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hB bnksICJGT1IiLCAiQUxMIiwgIlRBQkxFUyIsICJTS0lQIikpCisJCUNPTVBMRVRFX1dJVEgoIkFM TCBUQUJMRVMgSU4gU0NIRU1BIiwgICJUQUJMRSIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFU RSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIlRBQkxFIiwgTWF0Y2hBbnkpICYm ICFlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKIAkJQ09NUExFVEVfV0lUSCgiV0hFUkUgKCIsICJX SVRIICgiKTsKIAkvKiBDb21wbGV0ZSAiQ1JFQVRFIFBVQkxJQ0FUSU9OIDxuYW1lPiBGT1IgVEFC TEUiIHdpdGggIjx0YWJsZT4sIC4uLiIgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHVibGljYXRpb24uaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24u aAppbmRleCAzMGEyZmNiOTc0Li4xMmZjYThlYTJiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJs aWNhdGlvbi5oCkBAIC0xMDgsNiArMTA4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25S ZWxJbmZvCiAJUmVsYXRpb24JcmVsYXRpb247CiAJTm9kZQkgICAqd2hlcmVDbGF1c2U7CiAJTGlz dAkgICAqY29sdW1uczsKKwlib29sCQlza2lwOwogfSBQdWJsaWNhdGlvblJlbEluZm87CiAKIHR5 cGVkZWYgc3RydWN0IFB1YmxpY2F0aW9uU2NoSW5mbwpAQCAtMTE5LDcgKzEyMCw3IEBAIHR5cGVk ZWYgc3RydWN0IFB1YmxpY2F0aW9uU2NoSW5mbwogCiBleHRlcm4gUHVibGljYXRpb24gKkdldFB1 YmxpY2F0aW9uKE9pZCBwdWJpZCk7CiBleHRlcm4gUHVibGljYXRpb24gKkdldFB1YmxpY2F0aW9u QnlOYW1lKGNvbnN0IGNoYXIgKnB1Ym5hbWUsIGJvb2wgbWlzc2luZ19vayk7Ci1leHRlcm4gTGlz dCAqR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJlbGlkKTsKK2V4dGVybiBMaXN0ICpHZXRS ZWxhdGlvblB1YmxpY2F0aW9ucyhPaWQgcmVsaWQsIGJvb2wgYnNraXApOwogCiAvKi0tLS0tLS0t LQogICogRXhwZWN0ZWQgdmFsdWVzIGZvciBwdWJfcGFydG9wdCBwYXJhbWV0ZXIgb2YgR2V0UmVs YXRpb25QdWJsaWNhdGlvbnMoKSwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHVibGljYXRpb25fcmVsLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3Jl bC5oCmluZGV4IDRmZWI1ODE4OTkuLmFiNmVmYzViMzAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wdWJsaWNhdGlvbl9yZWwuaApAQCAtMzEsNiArMzEsNyBAQCBDQVRBTE9HKHBnX3B1YmxpY2F0 aW9uX3JlbCw2MTA2LFB1YmxpY2F0aW9uUmVsUmVsYXRpb25JZCkKIAlPaWQJCQlvaWQ7CQkJLyog b2lkICovCiAJT2lkCQkJcHJwdWJpZCBCS0lfTE9PS1VQKHBnX3B1YmxpY2F0aW9uKTsgLyogT2lk IG9mIHRoZSBwdWJsaWNhdGlvbiAqLwogCU9pZAkJCXBycmVsaWQgQktJX0xPT0tVUChwZ19jbGFz cyk7CS8qIE9pZCBvZiB0aGUgcmVsYXRpb24gKi8KKwlib29sCQlwcnNraXAJQktJX0RFRkFVTFQo Zik7CQkJCS8qIHNraXAgdGhlIHJlbGF0aW9uICovCiAKICNpZmRlZglDQVRBTE9HX1ZBUkxFTgkJ CS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwogCXBnX25vZGVfdHJlZSBw cnF1YWw7CQkvKiBxdWFsaWZpY2F0aW9ucyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDE4 ODI4NWM5OWQuLjg2MzcyYTE1MzEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTQwMDMsNiAr NDAwMyw3IEBAIHR5cGVkZWYgc3RydWN0IFB1YmxpY2F0aW9uVGFibGUKIAlSYW5nZVZhciAgICpy ZWxhdGlvbjsJCS8qIHJlbGF0aW9uIHRvIGJlIHB1Ymxpc2hlZCAqLwogCU5vZGUJICAgKndoZXJl Q2xhdXNlOwkvKiBxdWFsaWZpY2F0aW9ucyAqLwogCUxpc3QJICAgKmNvbHVtbnM7CQkvKiBMaXN0 IG9mIGNvbHVtbnMgaW4gYSBwdWJsaWNhdGlvbiB0YWJsZSAqLworCWJvb2wJCXNraXA7CQkJLyog c2tpcCByZWxhdGlvbiAqLwogfSBQdWJsaWNhdGlvblRhYmxlOwogCiAvKgpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAppbmRleCBlN2U0NmQwODQxLi4wYTM2ZWMwNmI5 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dApAQCAtMTEwLDYg KzExMCwzNSBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcyBEUk9QIFNL SVAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljOwogIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl ciB8IHQgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAg fCBmCiAoMSByb3cpCiAKKy0tIHNob3VsZCBiZSBhYmxlIHRvIGFkZCBza2lwIHRhYmxlIHRvICdG T1IgQUxMIFRBQkxFUycgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9y YWxsdGFibGVzIEFERCBTS0lQIFRBQkxFIHRlc3RwdWJfdGJsMTsKK1xkUnArIHRlc3RwdWJfZm9y YWxsdGFibGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0 cHViX2ZvcmFsbHRhYmxlcworICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMg fCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91 c2VyIHwgdCAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICB8IGYgICAgICAg ICB8IGYKK1NraXAgdGFibGVzOgorICAgICJwdWJsaWMudGVzdHB1Yl90YmwxIgorCistLSBzaG91 bGQgYmUgYWJsZSB0byBzZXQgc2tpcCB0YWJsZSB0byAnRk9SIEFMTCBUQUJMRVMnIHB1YmxpY2F0 aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcyBTRVQgU0tJUCBUQUJM RSB0ZXN0cHViX3RibDI7CitcZFJwKyB0ZXN0cHViX2ZvcmFsbHRhYmxlcworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9mb3JhbGx0YWJsZXMKKyAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBE ZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBmCitTa2lwIHRhYmxlczoKKyAg ICAicHVibGljLnRlc3RwdWJfdGJsMiIKKworLS0gc2hvdWxkIGJlIGFibGUgdG8gZHJvcCBza2lw IHRhYmxlIGZyb20gJ0ZPUiBBTEwgVEFCTEVTJyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJ T04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMgRFJPUCBTS0lQIFRBQkxFIHRlc3RwdWJfdGJsMjsKK1xk UnArIHRlc3RwdWJfZm9yYWxsdGFibGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ dWJsaWNhdGlvbiB0ZXN0cHViX2ZvcmFsbHRhYmxlcworICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMg fCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVz c19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgZiAg ICAgICB8IGYgICAgICAgICB8IGYKKygxIHJvdykKKwogU0VUIGNsaWVudF9taW5fbWVzc2FnZXMg PSAnRVJST1InOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9ydGFibGUgRk9SIFRBQkxF IHRlc3RwdWJfdGJsMTsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CkBAIC0xNTcsNiArMTg2 LDE4IEBAIERFVEFJTDogIFNraXAgdGFibGVzIGZyb20gc2NoZW1hIGNhbm5vdCBiZSBhZGRlZCB0 bywgZHJvcHBlZCBmcm9tLCBvciBzZXQgb24gTk9OCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi X2ZvcnRhYmxlIFNFVCBTS0lQIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OwogRVJST1I6 ICBwdWJsaWNhdGlvbiAidGVzdHB1Yl9mb3J0YWJsZSIgaXMgbm90IGRlZmluZWQgYXMgRk9SIEFM TCBUQUJMRVMKIERFVEFJTDogIFNraXAgdGFibGVzIGZyb20gc2NoZW1hIGNhbm5vdCBiZSBhZGRl ZCB0bywgZHJvcHBlZCBmcm9tLCBvciBzZXQgb24gTk9OIEFMTCBUQUJMRVMgcHVibGljYXRpb25z LgorLS0gZmFpbCAtIGNhbid0IGFkZCBza2lwIHRhYmxlIHRvICdGT1IgVEFCTEUnIHB1YmxpY2F0 aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnRhYmxlIEFERCBTS0lQIFRBQkxFIHRl c3RwdWJfdGJsMTsKK0VSUk9SOiAgcHVibGljYXRpb24gInRlc3RwdWJfZm9ydGFibGUiIGlzIG5v dCBkZWZpbmVkIGFzIEZPUiBBTEwgVEFCTEVTCitERVRBSUw6ICBTa2lwIHRhYmxlIGNhbm5vdCBi ZSBhZGRlZCB0bywgZHJvcHBlZCBmcm9tLCBvciBzZXQgb24gTk9OIEFMTCBUQUJMRVMgcHVibGlj YXRpb25zLgorLS0gZmFpbCAtIGNhbid0IGRyb3Agc2tpcCB0YWJsZSBmcm9tICdGT1IgVEFCTEUn IHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnRhYmxlIERST1AgU0tJ UCBUQUJMRSB0ZXN0cHViX3RibDE7CitFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViX2ZvcnRh YmxlIiBpcyBub3QgZGVmaW5lZCBhcyBGT1IgQUxMIFRBQkxFUworREVUQUlMOiAgU2tpcCB0YWJs ZSBjYW5ub3QgYmUgYWRkZWQgdG8sIGRyb3BwZWQgZnJvbSwgb3Igc2V0IG9uIE5PTiBBTEwgVEFC TEVTIHB1YmxpY2F0aW9ucy4KKy0tIGZhaWwgLSBjYW4ndCBzZXQgc2tpcCB0YWJsZSB0byAnRk9S IFRBQkxFJyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3J0YWJsZSBT RVQgU0tJUCBUQUJMRSB0ZXN0cHViX3RibDE7CitFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHVi X2ZvcnRhYmxlIiBpcyBub3QgZGVmaW5lZCBhcyBGT1IgQUxMIFRBQkxFUworREVUQUlMOiAgU2tp cCB0YWJsZSBjYW5ub3QgYmUgYWRkZWQgdG8sIGRyb3BwZWQgZnJvbSwgb3Igc2V0IG9uIE5PTiBB TEwgVEFCTEVTIHB1YmxpY2F0aW9ucy4KIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9S JzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnNjaGVtYSBGT1IgQUxMIFRBQkxFUyBJ TiBTQ0hFTUEgcHViX3Rlc3Q7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwpAQCAtMTk0LDYg KzIzNSwxOCBAQCBERVRBSUw6ICBTa2lwIHRhYmxlcyBmcm9tIHNjaGVtYSBjYW5ub3QgYmUgYWRk ZWQgdG8sIGRyb3BwZWQgZnJvbSwgb3Igc2V0IG9uIE5PTgogQUxURVIgUFVCTElDQVRJT04gdGVz dHB1Yl9mb3JzY2hlbWEgU0VUIFNLSVAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CiBF UlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViX2ZvcnNjaGVtYSIgaXMgbm90IGRlZmluZWQgYXMg Rk9SIEFMTCBUQUJMRVMKIERFVEFJTDogIFNraXAgdGFibGVzIGZyb20gc2NoZW1hIGNhbm5vdCBi ZSBhZGRlZCB0bywgZHJvcHBlZCBmcm9tLCBvciBzZXQgb24gTk9OIEFMTCBUQUJMRVMgcHVibGlj YXRpb25zLgorLS0gZmFpbCAtIGNhbid0IGFkZCBza2lwIHRhYmxlIHRvIHNjaGVtYSBwdWJsaWNh dGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JzY2hlbWEgQUREIFNLSVAgVEFCTEUg dGVzdHB1Yl90YmwxOworRVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1Yl9mb3JzY2hlbWEiIGlz IG5vdCBkZWZpbmVkIGFzIEZPUiBBTEwgVEFCTEVTCitERVRBSUw6ICBTa2lwIHRhYmxlIGNhbm5v dCBiZSBhZGRlZCB0bywgZHJvcHBlZCBmcm9tLCBvciBzZXQgb24gTk9OIEFMTCBUQUJMRVMgcHVi bGljYXRpb25zLgorLS0gZmFpbCAtIGNhbid0IGRyb3Agc2tpcCB0YWJsZSBmcm9tIHNjaGVtYSBw dWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JzY2hlbWEgRFJPUCBTS0lQ IFRBQkxFIHRlc3RwdWJfdGJsMTsKK0VSUk9SOiAgcHVibGljYXRpb24gInRlc3RwdWJfZm9yc2No ZW1hIiBpcyBub3QgZGVmaW5lZCBhcyBGT1IgQUxMIFRBQkxFUworREVUQUlMOiAgU2tpcCB0YWJs ZSBjYW5ub3QgYmUgYWRkZWQgdG8sIGRyb3BwZWQgZnJvbSwgb3Igc2V0IG9uIE5PTiBBTEwgVEFC TEVTIHB1YmxpY2F0aW9ucy4KKy0tIGZhaWwgLSBjYW4ndCBzZXQgc2tpcCB0YWJsZSB0byBzY2hl bWEgIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnNjaGVtYSBTRVQg U0tJUCBUQUJMRSB0ZXN0cHViX3RibDE7CitFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViX2Zv cnNjaGVtYSIgaXMgbm90IGRlZmluZWQgYXMgRk9SIEFMTCBUQUJMRVMKK0RFVEFJTDogIFNraXAg dGFibGUgY2Fubm90IGJlIGFkZGVkIHRvLCBkcm9wcGVkIGZyb20sIG9yIHNldCBvbiBOT04gQUxM IFRBQkxFUyBwdWJsaWNhdGlvbnMuCiBTRUxFQ1QgcHVibmFtZSwgcHViYWxsdGFibGVzIEZST00g cGdfcHVibGljYXRpb24gV0hFUkUgcHVibmFtZSA9ICd0ZXN0cHViX2ZvcmFsbHRhYmxlcyc7CiAg ICAgICAgcHVibmFtZSAgICAgICAgfCBwdWJhbGx0YWJsZXMgCiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tCkBAIC0yMzEsMjEgKzI4NCw0NyBAQCBTa2lwIHRhYmxlcyBmcm9t IHNjaGVtYXM6CiAKIC0tIGZhaWwgLSBjYW4ndCBzcGVjaWZ5IHNraXAgc2NoZW1hIGFsb25nIHdp dGggdGFibGUgcHVibGljYXRpb24KIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnRhYmxl X3NraXBzY2hlbWEgRk9SIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfbm9waywgU0tJUCBBTEwgVEFC TEVTIElOIFNDSEVNQSBwdWJfdGVzdDsKLUVSUk9SOiAgU0tJUCBBTEwgVEFCTEVTIElOIFNDSEVN QSBjYW4gYmUgc3BlY2lmaWVkIG9ubHkgd2l0aCBBTEwgVEFCTEVTIG9wdGlvbgorRVJST1I6ICBT S0lQIEFMTCBUQUJMRVMgSU4gU0NIRU1BL1NLSVAgVEFCTEUgY2FuIGJlIHNwZWNpZmllZCBvbmx5 IHdpdGggQUxMIFRBQkxFUyBvcHRpb24KIExJTkUgMTogLi4uRSBwdWJfdGVzdC50ZXN0cHViX25v cGssIFNLSVAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIGZhaWwg LSBjYW4ndCBzcGVjaWZ5IHNraXAgc2NoZW1hIGFsb25nIHdpdGggc2NoZW1hIHB1YmxpY2F0aW9u CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JzY2hlbWFfc2tpcHNjaGVtYSBGT1IgQUxM IFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QsIFNLSVAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHVi X3Rlc3Q7Ci1FUlJPUjogIFNLSVAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgY2FuIGJlIHNwZWNpZmll ZCBvbmx5IHdpdGggQUxMIFRBQkxFUyBvcHRpb24KK0VSUk9SOiAgU0tJUCBBTEwgVEFCTEVTIElO IFNDSEVNQS9TS0lQIFRBQkxFIGNhbiBiZSBzcGVjaWZpZWQgb25seSB3aXRoIEFMTCBUQUJMRVMg b3B0aW9uCiBMSU5FIDE6IC4uLkJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0LCBTS0lQIEFMTCBUQUJM RVMgSU4gU0NIRU1BIHB1Yl90ZXN0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBmYWlsIC0gY2FuJ3Qgc3BlY2lmeSBv bmx5IHNraXAgc2NoZW1hIHdoaWxlIGNyZWF0ZSBwdWJsaWNhdGlvbgogQ1JFQVRFIFBVQkxJQ0FU SU9OIHRlc3RwdWJfc2tpcHNjaGVtYSBGT1IgU0tJUCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJf dGVzdDsKLUVSUk9SOiAgU0tJUCBBTEwgVEFCTEVTIElOIFNDSEVNQSBjYW4gYmUgc3BlY2lmaWVk IG9ubHkgd2l0aCBBTEwgVEFCTEVTIG9wdGlvbgorRVJST1I6ICBTS0lQIEFMTCBUQUJMRVMgSU4g U0NIRU1BL1NLSVAgVEFCTEUgY2FuIGJlIHNwZWNpZmllZCBvbmx5IHdpdGggQUxMIFRBQkxFUyBv cHRpb24KIExJTkUgMTogLi4uTiB0ZXN0cHViX3NraXBzY2hlbWEgRk9SIFNLSVAgQUxMIFRBQkxF UyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0g J0VSUk9SJzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19za2lwdGFi bGUgRk9SIEFMTCBUQUJMRVMgU0tJUCBUQUJMRSB0ZXN0cHViX3RibDE7CitSRVNFVCBjbGllbnRf bWluX21lc3NhZ2VzOworXGRScCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfc2tpcHRhYmxlCisgICAg ICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9mb3JhbGx0YWJsZXNfc2tp cHRhYmxlCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMg fCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAg ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZgorU2tp cCB0YWJsZXM6CisgICAgInB1YmxpYy50ZXN0cHViX3RibDEiCisKKy0tIGZhaWwgLSBjYW4ndCBz cGVjaWZ5IHNraXAgdGFibGUgYWxvbmcgd2l0aCB0YWJsZSBwdWJsaWNhdGlvbgorQ1JFQVRFIFBV QkxJQ0FUSU9OIHRlc3RwdWJfZm9ydGFibGVfc2tpcHRhYmxlIEZPUiBUQUJMRSBwdWJfdGVzdC50 ZXN0cHViX25vcGssIFNLSVAgVEFCTEUgdGVzdHB1Yl90YmwxOworRVJST1I6ICBTS0lQIEFMTCBU QUJMRVMgSU4gU0NIRU1BL1NLSVAgVEFCTEUgY2FuIGJlIHNwZWNpZmllZCBvbmx5IHdpdGggQUxM IFRBQkxFUyBvcHRpb24KK0xJTkUgMTogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9ydGFi bGVfc2tpcHRhYmxlIEZPUiBUQUJMRSBwdWJfLi4uCisgICAgICAgIF4KKy0tIGZhaWwgLSBjYW4n dCBzcGVjaWZ5IHNraXAgdGFibGUgYWxvbmcgd2l0aCBzY2hlbWEgcHVibGljYXRpb24KK0NSRUFU RSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnRhYmxlX3NraXB0YWJsZSBGT1IgQUxMIFRBQkxFUyBJ TiBTQ0hFTUEgcHViX3Rlc3QsIFNLSVAgVEFCTEUgdGVzdHB1Yl90YmwxOworRVJST1I6ICBTS0lQ IEFMTCBUQUJMRVMgSU4gU0NIRU1BL1NLSVAgVEFCTEUgY2FuIGJlIHNwZWNpZmllZCBvbmx5IHdp dGggQUxMIFRBQkxFUyBvcHRpb24KK0xJTkUgMTogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJf Zm9ydGFibGVfc2tpcHRhYmxlIEZPUiBBTEwgVEFCTEVTLi4uCisgICAgICAgIF4KKy0tIGZhaWwg LSBjYW4ndCBzcGVjaWZ5IG9ubHkgc2tpcCB0YWJsZSB3aGlsZSBjcmVhdGUgcHVibGljYXRpb24K K0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnRhYmxlX3NraXB0YWJsZSBGT1IgU0tJUCBU QUJMRSB0ZXN0cHViX3RibDE7CitFUlJPUjogIFNLSVAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEvU0tJ UCBUQUJMRSBjYW4gYmUgc3BlY2lmaWVkIG9ubHkgd2l0aCBBTEwgVEFCTEVTIG9wdGlvbgorTElO RSAxOiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3J0YWJsZV9za2lwdGFibGUgRk9SIFNL SVAgVEFCTEUuLi4KKyAgICAgICAgXgogRFJPUCBUQUJMRSB0ZXN0cHViX3RibDI7Ci1EUk9QIFBV QkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzLCB0ZXN0cHViX2ZvcnRhYmxlLCB0ZXN0cHVi X2ZvcnNjaGVtYSwgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfc2tpcHNjaGVtYTsKK0RST1AgUFVCTElD QVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMsIHRlc3RwdWJfZm9ydGFibGUsIHRlc3RwdWJfZm9y c2NoZW1hLCB0ZXN0cHViX2ZvcmFsbHRhYmxlc19za2lwc2NoZW1hLCB0ZXN0cHViX2ZvcmFsbHRh Ymxlc19za2lwdGFibGU7CiBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwzIChhIGludCk7CiBDUkVB VEUgVEFCTEUgdGVzdHB1Yl90YmwzYSAoYiB0ZXh0KSBJTkhFUklUUyAodGVzdHB1Yl90YmwzKTsK IFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1Ymxp Y2F0aW9uLnNxbAppbmRleCA4ZDhhNTIyYzc2Li40YTFkMmY3MDEzIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvcHVibGljYXRpb24uc3FsCkBAIC02OCw2ICs2OCwxNiBAQCBBTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViX2ZvcmFsbHRhYmxlcyBTRVQgU0tJUCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWM7 CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcyBEUk9QIFNLSVAgQUxMIFRB QkxFUyBJTiBTQ0hFTUEgcHVibGljOwogXGRScCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXMKIAorLS0g c2hvdWxkIGJlIGFibGUgdG8gYWRkIHNraXAgdGFibGUgdG8gJ0ZPUiBBTEwgVEFCTEVTJyBwdWJs aWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMgQUREIFNLSVAg VEFCTEUgdGVzdHB1Yl90YmwxOworXGRScCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXMKKy0tIHNob3Vs ZCBiZSBhYmxlIHRvIHNldCBza2lwIHRhYmxlIHRvICdGT1IgQUxMIFRBQkxFUycgcHVibGljYXRp b24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzIFNFVCBTS0lQIFRBQkxF IHRlc3RwdWJfdGJsMjsKK1xkUnArIHRlc3RwdWJfZm9yYWxsdGFibGVzCistLSBzaG91bGQgYmUg YWJsZSB0byBkcm9wIHNraXAgdGFibGUgZnJvbSAnRk9SIEFMTCBUQUJMRVMnIHB1YmxpY2F0aW9u CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcyBEUk9QIFNLSVAgVEFCTEUg dGVzdHB1Yl90YmwyOworXGRScCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXMKKwogU0VUIGNsaWVudF9t aW5fbWVzc2FnZXMgPSAnRVJST1InOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9ydGFi bGUgRk9SIFRBQkxFIHRlc3RwdWJfdGJsMTsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CkBA IC04OCw2ICs5OCwxMyBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnRhYmxlIERST1Ag U0tJUCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDsKIC0tIGZhaWwgLSBjYW4ndCBzZXQg c2tpcCBzY2hlbWEgdG8gJ0ZPUiBUQUJMRScgcHVibGljYXRpb24KIEFMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfZm9ydGFibGUgU0VUIFNLSVAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7 CiAKKy0tIGZhaWwgLSBjYW4ndCBhZGQgc2tpcCB0YWJsZSB0byAnRk9SIFRBQkxFJyBwdWJsaWNh dGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3J0YWJsZSBBREQgU0tJUCBUQUJMRSB0 ZXN0cHViX3RibDE7CistLSBmYWlsIC0gY2FuJ3QgZHJvcCBza2lwIHRhYmxlIGZyb20gJ0ZPUiBU QUJMRScgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9ydGFibGUgRFJP UCBTS0lQIFRBQkxFIHRlc3RwdWJfdGJsMTsKKy0tIGZhaWwgLSBjYW4ndCBzZXQgc2tpcCB0YWJs ZSB0byAnRk9SIFRBQkxFJyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9m b3J0YWJsZSBTRVQgU0tJUCBUQUJMRSB0ZXN0cHViX3RibDE7CisKIFNFVCBjbGllbnRfbWluX21l c3NhZ2VzID0gJ0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnNjaGVtYSBG T1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CiBSRVNFVCBjbGllbnRfbWluX21lc3Nh Z2VzOwpAQCAtMTA5LDYgKzEyNiwxMyBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnNj aGVtYSBEUk9QIFNLSVAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CiAtLSBmYWlsIC0g Y2FuJ3Qgc2V0IHNraXAgc2NoZW1hIHRvIHNjaGVtYSAgcHVibGljYXRpb24KIEFMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfZm9yc2NoZW1hIFNFVCBTS0lQIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1 Yl90ZXN0OwogCistLSBmYWlsIC0gY2FuJ3QgYWRkIHNraXAgdGFibGUgdG8gc2NoZW1hIHB1Ymxp Y2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnNjaGVtYSBBREQgU0tJUCBUQUJM RSB0ZXN0cHViX3RibDE7CistLSBmYWlsIC0gY2FuJ3QgZHJvcCBza2lwIHRhYmxlIGZyb20gc2No ZW1hIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnNjaGVtYSBEUk9Q IFNLSVAgVEFCTEUgdGVzdHB1Yl90YmwxOworLS0gZmFpbCAtIGNhbid0IHNldCBza2lwIHRhYmxl IHRvIHNjaGVtYSAgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yc2No ZW1hIFNFVCBTS0lQIFRBQkxFIHRlc3RwdWJfdGJsMTsKKwogU0VMRUNUIHB1Ym5hbWUsIHB1YmFs bHRhYmxlcyBGUk9NIHBnX3B1YmxpY2F0aW9uIFdIRVJFIHB1Ym5hbWUgPSAndGVzdHB1Yl9mb3Jh bGx0YWJsZXMnOwogXGQrIHRlc3RwdWJfdGJsMgogXGRScCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXMK QEAgLTEyOCw4ICsxNTIsMjMgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yc2NoZW1h X3NraXBzY2hlbWEgRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXMKIC0tIGZhaWwgLSBj YW4ndCBzcGVjaWZ5IG9ubHkgc2tpcCBzY2hlbWEgd2hpbGUgY3JlYXRlIHB1YmxpY2F0aW9uCiBD UkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9za2lwc2NoZW1hIEZPUiBTS0lQIEFMTCBUQUJMRVMg SU4gU0NIRU1BIHB1Yl90ZXN0OwogCitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7 CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXNfc2tpcHRhYmxlIEZPUiBB TEwgVEFCTEVTIFNLSVAgVEFCTEUgdGVzdHB1Yl90YmwxOworUkVTRVQgY2xpZW50X21pbl9tZXNz YWdlczsKKworXGRScCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfc2tpcHRhYmxlCisKKy0tIGZhaWwg LSBjYW4ndCBzcGVjaWZ5IHNraXAgdGFibGUgYWxvbmcgd2l0aCB0YWJsZSBwdWJsaWNhdGlvbgor Q1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9ydGFibGVfc2tpcHRhYmxlIEZPUiBUQUJMRSBw dWJfdGVzdC50ZXN0cHViX25vcGssIFNLSVAgVEFCTEUgdGVzdHB1Yl90YmwxOworCistLSBmYWls IC0gY2FuJ3Qgc3BlY2lmeSBza2lwIHRhYmxlIGFsb25nIHdpdGggc2NoZW1hIHB1YmxpY2F0aW9u CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3J0YWJsZV9za2lwdGFibGUgRk9SIEFMTCBU QUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0LCBTS0lQIFRBQkxFIHRlc3RwdWJfdGJsMTsKKworLS0g ZmFpbCAtIGNhbid0IHNwZWNpZnkgb25seSBza2lwIHRhYmxlIHdoaWxlIGNyZWF0ZSBwdWJsaWNh dGlvbgorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9ydGFibGVfc2tpcHRhYmxlIEZPUiBT S0lQIFRBQkxFIHRlc3RwdWJfdGJsMTsKKwogRFJPUCBUQUJMRSB0ZXN0cHViX3RibDI7Ci1EUk9Q IFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzLCB0ZXN0cHViX2ZvcnRhYmxlLCB0ZXN0 cHViX2ZvcnNjaGVtYSwgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfc2tpcHNjaGVtYTsKK0RST1AgUFVC TElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMsIHRlc3RwdWJfZm9ydGFibGUsIHRlc3RwdWJf Zm9yc2NoZW1hLCB0ZXN0cHViX2ZvcmFsbHRhYmxlc19za2lwc2NoZW1hLCB0ZXN0cHViX2ZvcmFs bHRhYmxlc19za2lwdGFibGU7CiAKIENSRUFURSBUQUJMRSB0ZXN0cHViX3RibDMgKGEgaW50KTsK IENSRUFURSBUQUJMRSB0ZXN0cHViX3RibDNhIChiIHRleHQpIElOSEVSSVRTICh0ZXN0cHViX3Ri bDMpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMzX3JlcF9jaGFuZ2Vz X3NraXBfdGFibGUucGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzNfcmVwX2NoYW5nZXNf c2tpcF90YWJsZS5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi42YzFk YzZmMzgyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMzX3Jl cF9jaGFuZ2VzX3NraXBfdGFibGUucGwKQEAgLTAsMCArMSw5NiBAQAorCisjIENvcHlyaWdodCAo YykgMjAyMS0yMDIyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCisjIExv Z2ljYWwgcmVwbGljYXRpb24gdGVzdHMgZm9yIHNraXAgdGFibGUgcHVibGljYXRpb25zCit1c2Ug c3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1 c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworIyBJbml0aWFs aXplIHB1Ymxpc2hlciBub2RlCitteSAkbm9kZV9wdWJsaXNoZXIgPSBQb3N0Z3JlU1FMOjpUZXN0 OjpDbHVzdGVyLT5uZXcoJ3B1Ymxpc2hlcicpOworJG5vZGVfcHVibGlzaGVyLT5pbml0KGFsbG93 c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwnKTsKKyRub2RlX3B1Ymxpc2hlci0+c3RhcnQ7CisKKyMg Q3JlYXRlIHN1YnNjcmliZXIgbm9kZQorbXkgJG5vZGVfc3Vic2NyaWJlciA9IFBvc3RncmVTUUw6 OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vic2NyaWJlcicpOworJG5vZGVfc3Vic2NyaWJlci0+aW5p dChhbGxvd3Nfc3RyZWFtaW5nID0+ICdsb2dpY2FsJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zdGFy dDsKKworIyBUZXN0IHJlcGxpY2F0aW9uIHdpdGggcHVibGljYXRpb25zIGNyZWF0ZWQgdXNpbmcg Rk9SIEFMTCBUQUJMRVMgU0tJUCBUQUJMRQorIyBvcHRpb24uCisjIENyZWF0ZSBzY2hlbWFzIGFu ZCB0YWJsZXMgb24gcHVibGlzaGVyCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiQ1JFQVRFIFNDSEVNQSBzY2gxIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgc2NoMS50YWIxIEFTIFNFTEVDVCBnZW5lcmF0ZV9z ZXJpZXMoMSwxMCkgQVMgYSIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiQ1JFQVRFIFRBQkxFIHB1YmxpYy50YWIxKGEgaW50KSIpOworCisjIENyZWF0ZSBzY2hl bWFzIGFuZCB0YWJsZXMgb24gc3Vic2NyaWJlcgorJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsICJDUkVBVEUgU0NIRU1BIHNjaDEiKTsKKyRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFRBQkxFIHNjaDEudGFiMSAoYSBpbnQpIik7Cisk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBUQUJMRSBwdWJs aWMudGFiMSAoYSBpbnQpIik7CisKKyMgU2V0dXAgbG9naWNhbCByZXBsaWNhdGlvbgorbXkgJHB1 Ymxpc2hlcl9jb25uc3RyID0gJG5vZGVfcHVibGlzaGVyLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9z dGdyZXMnOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRF IFBVQkxJQ0FUSU9OIHRhcF9wdWJfc2NoZW1hIEZPUiBBTEwgVEFCTEVTIFNLSVAgVEFCTEUgc2No MS50YWIxIik7CisKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJD UkVBVEUgU1VCU0NSSVBUSU9OIHRhcF9zdWJfc2NoZW1hIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJf Y29ubnN0cicgUFVCTElDQVRJT04gdGFwX3B1Yl9zY2hlbWEiCispOworCiskbm9kZV9wdWJsaXNo ZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfc2NoZW1hJyk7CisKKyMgQWxzbyB3YWl0IGZv ciBpbml0aWFsIHRhYmxlIHN5bmMgdG8gZmluaXNoCitteSAkc3luY2VkX3F1ZXJ5ID0KKyAgIlNF TEVDVCBjb3VudCgxKSA9IDAgRlJPTSBwZ19zdWJzY3JpcHRpb25fcmVsIFdIRVJFIHNyc3Vic3Rh dGUgTk9UIElOICgncicsICdzJyk7IjsKKyRub2RlX3N1YnNjcmliZXItPnBvbGxfcXVlcnlfdW50 aWwoJ3Bvc3RncmVzJywgJHN5bmNlZF9xdWVyeSkKKyAgb3IgZGllICJUaW1lZCBvdXQgd2hpbGUg d2FpdGluZyBmb3Igc3Vic2NyaWJlciB0byBzeW5jaHJvbml6ZSBkYXRhIjsKKworIyBDaGVjayB0 aGUgc2NoZW1hIHRhYmxlIGRhdGEgZG9lcyBub3Qgc3luYyBmb3Igc2tpcCBzY2hlbWFzCitteSAk cmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVD VCBjb3VudCgqKSwgbWluKGEpLCBtYXgoYSkgRlJPTSBzY2gxLnRhYjEiKTsKK2lzKCRyZXN1bHQs IHFxKDB8fCksICdjaGVjayB0YWJsZXN5bmMgaXMgc2tpcHBlZCBmb3Igc2tpcCBzY2hlbWFzJyk7 CisKKyMgSW5zZXJ0IHNvbWUgZGF0YSBpbnRvIGZldyB0YWJsZXMgYW5kIHZlcmlmeSB0aGF0IGlu c2VydGVkIGRhdGEgaXMgbm90IHJlcGxpY2F0ZWQKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHNjaDEudGFiMSBWQUxVRVMoZ2VuZXJhdGVfc2Vy aWVzKDExLDIwKSkiKTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBf c3ViX3NjaGVtYScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSwgbWluKGEpLCBtYXgoYSkgRlJPTSBzY2gxLnRh YjEiKTsKK2lzKCRyZXN1bHQsIHFxKDB8fCksICdjaGVjayByZXBsaWNhdGVkIGluc2VydHMgb24g c3Vic2NyaWJlcicpOworCisjIEFsdGVyIHB1YmxpY2F0aW9uIHRvIHNraXAgZGF0YSBjaGFuZ2Vz IGluIHB1YmxpYy50YWIxIGFuZCB2ZXJpZnkgdGhhdCBzdWJzY3JpYmVyIGRvZXMgbm90IGdldAor IyB0aGUgbmV3IHRhYmxlIGRhdGEuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLAorICAgICAgICAiQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9zY2hlbWEgYWRkIFNLSVAg VEFCTEUgcHVibGljLnRhYjEiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsCisgICAgICAgICJJTlNFUlQgSU5UTyBwdWJsaWMudGFiMSBWQUxVRVMoZ2VuZXJhdGVfc2Vy aWVzKDEsMTApKSIpOworCiskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9z dWJfc2NoZW1hJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopLCBtaW4oYSksIG1heChhKSBGUk9NIHB1YmxpYy50 YWIxIik7CitpcygkcmVzdWx0LCBxcSgwfHwpLCAnY2hlY2sgcm93cyBvbiBzdWJzY3JpYmVyIGNh dGNodXAnKTsKKworIyBBbHRlciBwdWJsaWNhdGlvbiB0byBkcm9wIHNraXAgdGFibGUgcHVibGlj LnRhYjEgYW5kIHZlcmlmeSB0aGF0IHN1YnNjcmliZXIgZ2V0cworIyB0aGUgbmV3IHRhYmxlIGRh dGEuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorICAgICAgICAiQUxU RVIgUFVCTElDQVRJT04gdGFwX3B1Yl9zY2hlbWEgZHJvcCBTS0lQIFRBQkxFIHB1YmxpYy50YWIx Iik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorICAgICAgICAiSU5T RVJUIElOVE8gcHVibGljLnRhYjEgVkFMVUVTKGdlbmVyYXRlX3NlcmllcygxLDEwKSkiKTsKKwor JG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX3NjaGVtYScpOworCisk cmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisgICAgICAg ICJTRUxFQ1QgY291bnQoKiksIG1pbihhKSwgbWF4KGEpIEZST00gcHVibGljLnRhYjEiKTsKK2lz KCRyZXN1bHQsIHFxKDEwfDF8MTApLCAnY2hlY2sgcm93cyBvbiBzdWJzY3JpYmVyIGNhdGNodXAn KTsKKworJG5vZGVfc3Vic2NyaWJlci0+c3RvcCgnZmFzdCcpOworJG5vZGVfcHVibGlzaGVyLT5z dG9wKCdmYXN0Jyk7CisKK2RvbmVfdGVzdGluZygpOwotLSAKMi4zMi4wCgo= --00000000000011224d05dc6f1a0a--