Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uRQx6-00BhXD-F5 for pgsql-hackers@arkaria.postgresql.org; Tue, 17 Jun 2025 07:41:53 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uRQx4-0077rY-Bz for pgsql-hackers@arkaria.postgresql.org; Tue, 17 Jun 2025 07:41:51 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uRQx3-0077qn-OV for pgsql-hackers@lists.postgresql.org; Tue, 17 Jun 2025 07:41:50 +0000 Received: from mail-yw1-x1132.google.com ([2607:f8b0:4864:20::1132]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uRQx1-002VWA-1d for pgsql-hackers@lists.postgresql.org; Tue, 17 Jun 2025 07:41:50 +0000 Received: by mail-yw1-x1132.google.com with SMTP id 00721157ae682-710ffc7a051so48250387b3.0 for ; Tue, 17 Jun 2025 00:41:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750146105; x=1750750905; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=fIJA1oTK0UqpDsN9MsqOzz0Sm2cOTWdWafZoNoY63Fc=; b=kEb5cyyXMFIpfdnqb8BBe/oA54iKgiPIIcMhaYZLwwEH+Q7JIr7eN5oZG6EN5W9kVS A0bM2DAYeNBSIyuXy+TA0yaq15PmE3MSM6aRehQzrvBD8EpMP5pATk1TXHLFmIK2d76x QxOE+lAYRMLPSQTFYPQG4J3jKYNZCGcVhySs/m92sDfmyA7ukOybPTeTQYVbPq0T/m0v hZCXX3MOyU9B+Pg2MxWCWSTMVMXLcz5scrY5d1Z7NGjxUNPw8IXxpVUJb5fyMFe7f9k8 fPYgvHzHTmy0j5rnTHQmCRgCL27vdCv0jc5mNZnYlVRnMALD0ejNhh1hbF/OYMTpAviL S4vw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750146105; x=1750750905; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=fIJA1oTK0UqpDsN9MsqOzz0Sm2cOTWdWafZoNoY63Fc=; b=jwZH4thhzHAV/c2S4AKlzWF13rmbsGJCQAoydVeJdqt7fTM4Kvb1uTmk8oII/TczfN DZkz8yqQuI4iEATF3eT2LAWmaV0SWnvlI+DzxPZAbYtwFpGUebU5ijI5kTCYKUFy9VCx Tb9K+hXe8jbp3V1MoR6xMiBX+coVl19Zj7e5eeBFtGacjsucJP2E8eqSIjDj2+/NWZEq froLH1C8zXxNK3OonXlFHPt5FGVqSrCi/6ZvO+ESnteTrjdeTakRKcWQykNmI6ZSw5fp x9CCt3WHf93Sm0uAYUV4ONVYO+VzfTjymKqzaFbSliGGFbfdjEBZj8Ib2Gxjjs6VRuSo n/oQ== X-Forwarded-Encrypted: i=1; AJvYcCXHjgBlUZeAadSy6JsSWCTtlNQ29W5GjsZ2Yz5HkMKOIjndBxeBcYIMu4ksqviByP4nNIUOFyf9gSMApH+a@lists.postgresql.org X-Gm-Message-State: AOJu0YyJxLmQqQju9i0JjL1kG3X0UzcXiQmtoyv+29LvokoRo0Gi+BYX riHZEh5eOzlbJO+BsUFFtHP+cIZ9adVLl8E28QIWQcgPipZwF1FC1b5rvM36XA8v0apWaK7hpcZ 9ioDwLRHrROy5RRLLN/8EoIN0rZ7kekU= X-Gm-Gg: ASbGncutgNvt7t9BzPhD35hqzZ2m8aunpUafgVi1XBHtN3ZqH/z0eg3MMImXtxtQJ6Y v+EB+9KkCRe3olU6E7wlKWhqqjBCw2MRAuGUtW0ovBPh5lzvOGgwlPvRlHjYM172TSho6hRMZrH qvlMt1qrviTs/xhVKtLx3TR0gHjkitS315CWwoBG8rswDpug== X-Google-Smtp-Source: AGHT+IF4W26gyW/p881nZovTdj9Lqn+a9FNAUEE6aKIob3XdPb0QzFvR7Poe2aGyh2Y+UHF14J3c8lL4F+Ovz50M6rg= X-Received: by 2002:a05:690c:6085:b0:70e:326:6ae8 with SMTP id 00721157ae682-71175463148mr191744277b3.2.1750146105303; Tue, 17 Jun 2025 00:41:45 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Shlok Kyal Date: Tue, 17 Jun 2025 13:11:34 +0530 X-Gm-Features: AX0GCFtweIhpki5xmE5SABCmVEBx9rUi0oUEFhULV1sBZF-YU2KTVjvOEaMsIaY Message-ID: Subject: Re: Skipping schema changes in publication To: Amit Kapila Cc: "Zhijie Hou (Fujitsu)" , vignesh C , YeXiu <1518981153@qq.com>, Ian Lawrence Barwick , Peter Smith , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000e99f730637bfa40a" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000e99f730637bfa40a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, 11 Jun 2025 at 19:37, Shlok Kyal wrote: > > On Thu, 17 Apr 2025 at 09:12, Amit Kapila wrote= : > > > > On Wed, Apr 16, 2025 at 8:22=E2=80=AFAM Zhijie Hou (Fujitsu) > > wrote: > > > > > > On Thu, Apr 10, 2025 at 7:25 PM Amit Kapila wrote: > > > > > > > > On Tue, Jan 9, 2024 at 12:02=E2=80=AFPM vignesh C wrote: > > > > > > > > > > As I did not see much interest from others, I'm withdrawing this = patch > > > > > for now. But if there is any interest others in future, I would b= e > > > > > more than happy to work on this feature. > > > > > > > > > > > > > Just FYI, I noticed a use case for this patch in email [1]. Users w= ould like to > > > > replicate all except a few columns having sensitive information. Th= e challenge > > > > with current column list features is that adding new tables to colu= mns would > > > > lead users to change the respective publications as well. > > > > > > > > [1] - > > > > https://www.postgresql.org/message-id/tencent_DCDF626FCD4A556C51BE > > > > 270FDC3047540208%40qq.com > > > > > > BTW, I noticed that debezium, an open source distributed platform for= change > > > data capture that replies on logical decoding, also support specifyin= g the > > > column exclusion list[1]. So, this indicates that there could be some= use cases > > > for this feature. > > > > > > > Thanks for sharing the link. I see that they support both the include > > and exclude lists for columns and tables. > > > > Hi Hackers, > > I see there is some interest in the functionality added by this patch. > I have rebased the patches in [1]. I saw a new column 'pubgencols' was > added in pg_publication in PG 18. So, I have modified v11-0001 to > RESET this as well. > I am also working on creating a patch to exclude columns in > publication as per suggestion in [2]. > > [1]: https://www.postgresql.org/message-id/CALDaNm3dWZCYDih55qTNAYsjCvYXM= Fv%3D46UsDWmfCnXMt3kPCg%40mail.gmail.com > [2]: https://www.postgresql.org/message-id/CAA4eK1KRdAPC%3D5%3D7tQ1GW0cRw= D%3DzaDMi%2BT4u_k4GxPhPY6e8BQ%40mail.gmail.com > I have attached a patch support excluding columns for publication. I have added a syntax: "FOR TABLE table_name EXCEPT (c1, c2, ..)" It can be used with CREATE or ALTER PUBLICATION. v12-0003 patch contains the changes for the same. Thanks and Regards, Shlok Kyal --000000000000e99f730637bfa40a Content-Type: application/octet-stream; name="v12-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Disposition: attachment; filename="v12-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mc07rl5y0 RnJvbSA5YmU4NWY4ZmZhMTQ0MGE1ZDVjMzlmY2QzZGYyNjcyY2E4ZTZkM2RjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTEgSnVuIDIwMjUgMTE6NDE6MTggKzA1MzAKU3ViamVjdDogW1BBVENIIHYx MiAxLzNdIEFkZCBSRVNFVCBjbGF1c2UgdG8gQWx0ZXIgUHVibGljYXRpb24gd2hpY2ggd2lsbAog cmVzZXQgdGhlIHB1YmxpY2F0aW9uIHdpdGggZGVmYXVsdCB2YWx1ZXMuCgpUaGlzIHBhdGNoIGFk ZHMgYSBuZXcgUkVTRVQgY2xhdXNlIHRvIEFMVEVSIFBVQkxJQ0FUSU9OIHdoaWNoIHdpbGwgcmVz ZXQKdGhlIHB1YmxpY2F0aW9uIHRvIHRoZSBkZWZhdWx0IHN0YXRlIHdoaWNoIGluY2x1ZGVzIHJl c2V0dGluZyB0aGUgcHVibGljYXRpb24KcGFyYW1ldGVycywgc2V0dGluZyBBTEwgVEFCTEVTIGZs YWcgdG8gZmFsc2UgYW5kIGRyb3BwaW5nIHRoZSByZWxhdGlvbnMgYW5kCnNjaGVtYXMgdGhhdCBh cmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbi4KVXNhZ2U6CkFMVEVSIFBVQkxJQ0FU SU9OIHB1YjEgUkVTRVQ7Ci0tLQogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5z Z21sICAgfCAgMzUgKysrKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRz LmMgICAgfCAxMTEgKysrKysrKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkgICAgICAgICAgICAgICAgIHwgICA5ICsrCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmlu LmMgICAgICAgICAgICB8ICAgMiArLQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAg ICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5v dXQgfCAxMjAgKysrKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVi bGljYXRpb24uc3FsICAgICAgfCAgNTcgKysrKysrKysrKwogNyBmaWxlcyBjaGFuZ2VkLCAzMjEg aW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJs aWNhdGlvbi5zZ21sCmluZGV4IGQ1ZWEzODNlOGJjLi4wNjQ1MmFmOTIxNCAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbApAQCAtMjcsNiArMjcsNyBAQCBBTFRFUiBQVUJM SUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ IERST1AgPHJlcGxhYwogQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cHVibGljYXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkKIEFMVEVS IFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWJsZT4gT1dORVIgVE8geyA8cmVwbGFjZWFibGU+bmV3X293bmVyPC9yZXBsYWNlYWJsZT4gfCBD VVJSRU5UX1JPTEUgfCBDVVJSRU5UX1VTRVIgfCBTRVNTSU9OX1VTRVIgfQogQUxURVIgUFVCTElD QVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBS RU5BTUUgVE8gPHJlcGxhY2VhYmxlPm5ld19uYW1lPC9yZXBsYWNlYWJsZT4KK0FMVEVSIFBVQkxJ Q0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4g UkVTRVQKIAogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVi bGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXMgb25lIG9mOjwvcGhyYXNlPgogCkBAIC02 OSwxOCArNzAsMzIgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHIKICAgPC9wYXJhPgogCiAgIDxw YXJhPgotICAgVGhlIHJlbWFpbmluZyB2YXJpYW50cyBjaGFuZ2UgdGhlIG93bmVyIGFuZCB0aGUg bmFtZSBvZiB0aGUgcHVibGljYXRpb24uCisgICBUaGUgPGxpdGVyYWw+T1dORVI8L2xpdGVyYWw+ IGNsYXVzZSB3aWxsIGNoYW5nZSB0aGUgb3duZXIgb2YgdGhlCisgICBwdWJsaWNhdGlvbi4KKyAg PC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIDxsaXRlcmFsPlJFTkFNRTwvbGl0ZXJhbD4gY2xh dXNlIHdpbGwgY2hhbmdlIHRoZSBuYW1lIG9mIHRoZQorICAgcHVibGljYXRpb24uCisgIDwvcGFy YT4KKworICA8cGFyYT4KKyAgIFRoZSA8bGl0ZXJhbD5SRVNFVDwvbGl0ZXJhbD4gY2xhdXNlIHdp bGwgcmVzZXQgdGhlIHB1YmxpY2F0aW9uIHRvIHRoZQorICAgZGVmYXVsdCBzdGF0ZSB3aGljaCBp bmNsdWRlcyByZXNldHRpbmcgdGhlIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMsIHNldHRpbmcKKyAg IDxsaXRlcmFsPkFMTCBUQUJMRVM8L2xpdGVyYWw+IGZsYWcgdG8gPGxpdGVyYWw+ZmFsc2U8L2xp dGVyYWw+IGFuZAorICAgZHJvcHBpbmcgYWxsIHJlbGF0aW9ucyBhbmQgc2NoZW1hcyB0aGF0IGFy ZSBhc3NvY2lhdGVkIHdpdGggdGhlCisgICBwdWJsaWNhdGlvbi4KICAgPC9wYXJhPgogCiAgIDxw YXJhPgogICAgWW91IG11c3Qgb3duIHRoZSBwdWJsaWNhdGlvbiB0byB1c2UgPGNvbW1hbmQ+QUxU RVIgUFVCTElDQVRJT048L2NvbW1hbmQ+LgogICAgQWRkaW5nIGEgdGFibGUgdG8gYSBwdWJsaWNh dGlvbiBhZGRpdGlvbmFsbHkgcmVxdWlyZXMgb3duaW5nIHRoYXQgdGFibGUuCi0gICBUaGUgPGxp dGVyYWw+QUREIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IGFuZAotICAgPGxpdGVyYWw+U0VU IFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IHRvIGEgcHVibGljYXRpb24gcmVxdWlyZXMgdGhl Ci0gICBpbnZva2luZyB1c2VyIHRvIGJlIGEgc3VwZXJ1c2VyLgotICAgVG8gYWx0ZXIgdGhlIG93 bmVyLCB5b3UgbXVzdCBiZSBhYmxlIHRvIDxsaXRlcmFsPlNFVCBST0xFPC9saXRlcmFsPiB0byB0 aGUKLSAgIG5ldyBvd25pbmcgcm9sZSwgYW5kIHRoYXQgcm9sZSBtdXN0IGhhdmUgPGxpdGVyYWw+ Q1JFQVRFPC9saXRlcmFsPgotICAgcHJpdmlsZWdlIG9uIHRoZSBkYXRhYmFzZS4KKyAgIFRoZSA8 bGl0ZXJhbD5BREQgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sCisgICA8bGl0ZXJhbD5TRVQg VEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gdG8gYSBwdWJsaWNhdGlvbiBhbmQKKyAgIDxsaXRl cmFsPlJFU0VUPC9saXRlcmFsPiBvZiBwdWJsaWNhdGlvbiByZXF1aXJlcyB0aGUgaW52b2tpbmcg dXNlciB0byBiZSBhCisgICBzdXBlcnVzZXIuIFRvIGFsdGVyIHRoZSBvd25lciwgeW91IG11c3Qg YmUgYWJsZSB0bworICAgPGxpdGVyYWw+U0VUIFJPTEU8L2xpdGVyYWw+IHRvIHRoZSBuZXcgb3du aW5nIHJvbGUsIGFuZCB0aGF0IHJvbGUgbXVzdCBoYXZlCisgICA8bGl0ZXJhbD5DUkVBVEU8L2xp dGVyYWw+IHByaXZpbGVnZSBvbiB0aGUgZGF0YWJhc2UuCiAgICBBbHNvLCB0aGUgbmV3IG93bmVy IG9mIGEKICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9y LWFsbC10YWJsZXMiPjxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTPC9saXRlcmFsPjwvbGluaz4KICAg IG9yIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9yLXRhYmxl cy1pbi1zY2hlbWEiPjxsaXRlcmFsPkZPUiBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPjwvbGlu az4KQEAgLTIzMCw2ICsyNDUsMTIgQEAgQUxURVIgUFVCTElDQVRJT04gc2FsZXNfcHVibGljYXRp b24gQUREIFRBQkxFUyBJTiBTQ0hFTUEgbWFya2V0aW5nLCBzYWxlczsKICAgIDxzdHJ1Y3RuYW1l PnByb2R1Y3Rpb25fcHVibGljYXRpb248L3N0cnVjdG5hbWU+OgogPHByb2dyYW1saXN0aW5nPgog QUxURVIgUFVCTElDQVRJT04gcHJvZHVjdGlvbl9wdWJsaWNhdGlvbiBBREQgVEFCTEUgdXNlcnMs IGRlcGFydG1lbnRzLCBUQUJMRVMgSU4gU0NIRU1BIHByb2R1Y3Rpb247Cis8L3Byb2dyYW1saXN0 aW5nPjwvcGFyYT4KKworICA8cGFyYT4KKyAgIFJlc2V0IHRoZSBwdWJsaWNhdGlvbiA8c3RydWN0 bmFtZT5wcm9kdWN0aW9uX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGlu Zz4KK0FMVEVSIFBVQkxJQ0FUSU9OIHByb2R1Y3Rpb25fcHVibGljYXRpb24gUkVTRVQ7CiA8L3By b2dyYW1saXN0aW5nPjwvcGFyYT4KICA8L3JlZnNlY3QxPgogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1 YmxpY2F0aW9uY21kcy5jCmluZGV4IDBiMjNkOTRjMzhlLi4xNTlkYzM3ODFkMCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKQEAgLTQ5LDYgKzQ5LDE1IEBACiAjaW5jbHVk ZSAidXRpbHMvdmFybGVuYS5oIgogCiAKKy8qIENSRUFURSBQVUJMSUNBVElPTiBkZWZhdWx0IHZh bHVlcyBmb3IgZmxhZ3MgYW5kIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMgKi8KKyNkZWZpbmUgUFVC X0RFRkFVTFRfQUNUSU9OX0lOU0VSVCB0cnVlCisjZGVmaW5lIFBVQl9ERUZBVUxUX0FDVElPTl9V UERBVEUgdHJ1ZQorI2RlZmluZSBQVUJfREVGQVVMVF9BQ1RJT05fREVMRVRFIHRydWUKKyNkZWZp bmUgUFVCX0RFRkFVTFRfQUNUSU9OX1RSVU5DQVRFIHRydWUKKyNkZWZpbmUgUFVCX0RFRkFVTFRf VklBX1JPT1QgZmFsc2UKKyNkZWZpbmUgUFVCX0RFRkFVTFRfQUxMX1RBQkxFUyBmYWxzZQorI2Rl ZmluZSBQVUJfREVGQVVMVF9HRU5DT0xTIFBVQkxJU0hfR0VOQ09MU19OT05FCisKIC8qCiAgKiBJ bmZvcm1hdGlvbiB1c2VkIHRvIHZhbGlkYXRlIHRoZSBjb2x1bW5zIGluIHRoZSByb3cgZmlsdGVy IGV4cHJlc3Npb24uIFNlZQogICogY29udGFpbl9pbnZhbGlkX3JmY29sdW1uX3dhbGtlciBmb3Ig ZGV0YWlscy4KQEAgLTkxLDEyICsxMDAsMTIgQEAgcGFyc2VfcHVibGljYXRpb25fb3B0aW9ucyhQ YXJzZVN0YXRlICpwc3RhdGUsCiAJKnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnNfZ2l2ZW4gPSBm YWxzZTsKIAogCS8qIGRlZmF1bHRzICovCi0JcHViYWN0aW9ucy0+cHViaW5zZXJ0ID0gdHJ1ZTsK LQlwdWJhY3Rpb25zLT5wdWJ1cGRhdGUgPSB0cnVlOwotCXB1YmFjdGlvbnMtPnB1YmRlbGV0ZSA9 IHRydWU7Ci0JcHViYWN0aW9ucy0+cHVidHJ1bmNhdGUgPSB0cnVlOwotCSpwdWJsaXNoX3ZpYV9w YXJ0aXRpb25fcm9vdCA9IGZhbHNlOwotCSpwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zID0gUFVC TElTSF9HRU5DT0xTX05PTkU7CisJcHViYWN0aW9ucy0+cHViaW5zZXJ0ID0gUFVCX0RFRkFVTFRf QUNUSU9OX0lOU0VSVDsKKwlwdWJhY3Rpb25zLT5wdWJ1cGRhdGUgPSBQVUJfREVGQVVMVF9BQ1RJ T05fVVBEQVRFOworCXB1YmFjdGlvbnMtPnB1YmRlbGV0ZSA9IFBVQl9ERUZBVUxUX0FDVElPTl9E RUxFVEU7CisJcHViYWN0aW9ucy0+cHVidHJ1bmNhdGUgPSBQVUJfREVGQVVMVF9BQ1RJT05fVFJV TkNBVEU7CisJKnB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gUFVCX0RFRkFVTFRfVklBX1JP T1Q7CisJKnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMgPSBQVUJfREVGQVVMVF9HRU5DT0xTOwog CiAJLyogUGFyc2Ugb3B0aW9ucyAqLwogCWZvcmVhY2gobGMsIG9wdGlvbnMpCkBAIC0xMTg3LDYg KzExOTYsOTQgQEAgSW52YWxpZGF0ZVB1YmxpY2F0aW9uUmVscyhMaXN0ICpyZWxpZHMpCiAJCUNh Y2hlSW52YWxpZGF0ZVJlbGNhY2hlQWxsKCk7CiB9CiAKKy8qCisgKiBSZXNldCB0aGUgcHVibGlj YXRpb24uCisgKgorICogUmVzZXQgdGhlIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMsIHNldHRpbmcg QUxMIFRBQkxFUyBmbGFnIHRvIGZhbHNlIGFuZCBkcm9wCisgKiBhbGwgcmVsYXRpb25zIGFuZCBz Y2hlbWFzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24uCisgKi8KK3N0 YXRpYyB2b2lkCitBbHRlclB1YmxpY2F0aW9uUmVzZXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRl clB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKKwkJCQkJICBSZWxhdGlvbiByZWwsIEhlYXBUdXBsZSB0 dXApCit7CisJRm9ybV9wZ19wdWJsaWNhdGlvbiBwdWJmb3JtID0gKEZvcm1fcGdfcHVibGljYXRp b24pIEdFVFNUUlVDVCh0dXApOworCU9pZAkJCXB1YmlkID0gcHViZm9ybS0+b2lkOworCUxpc3QJ ICAgKnNjaGVtYXMgPSBOSUw7CisJTGlzdAkgICAqcmVscyA9IE5JTDsKKwlib29sCQludWxsc1tO YXR0c19wZ19wdWJsaWNhdGlvbl07CisJYm9vbAkJcmVwbGFjZXNbTmF0dHNfcGdfcHVibGljYXRp b25dOworCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfcHVibGljYXRpb25dOworCU9iamVjdEFkZHJl c3Mgb2JqOworCUxpc3RDZWxsICAgKmxjOworCU9pZAkJCXByaWQ7CisKKwkvKiBSRVNFVCBwdWJs aWNhdGlvbiByZXF1aXJlcyBzdXBlcnVzZXIgKi8KKwlpZiAoIXN1cGVydXNlcigpKQorCQllcmVw b3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwK KwkJCQllcnJtc2coIm11c3QgYmUgc3VwZXJ1c2VyIHRvIFJFU0VUIHB1YmxpY2F0aW9uIikpOwor CisJbWVtc2V0KHZhbHVlcywgMCwgc2l6ZW9mKHZhbHVlcykpOworCW1lbXNldChudWxscywgZmFs c2UsIHNpemVvZihudWxscykpOworCW1lbXNldChyZXBsYWNlcywgZmFsc2UsIHNpemVvZihyZXBs YWNlcykpOworCisJLyogUmVzZXQgdGhlIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMgKi8KKwl2YWx1 ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJpbnNlcnQgLSAxXSA9IEJvb2xHZXREYXR1bShQVUJf REVGQVVMVF9BQ1RJT05fSU5TRVJUKTsKKwlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1 Ymluc2VydCAtIDFdID0gdHJ1ZTsKKworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnVw ZGF0ZSAtIDFdID0gQm9vbEdldERhdHVtKFBVQl9ERUZBVUxUX0FDVElPTl9VUERBVEUpOworCXJl cGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHVidXBkYXRlIC0gMV0gPSB0cnVlOworCisJdmFs dWVzW0FudW1fcGdfcHVibGljYXRpb25fcHViZGVsZXRlIC0gMV0gPSBCb29sR2V0RGF0dW0oUFVC X0RFRkFVTFRfQUNUSU9OX0RFTEVURSk7CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9w dWJkZWxldGUgLSAxXSA9IHRydWU7CisKKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ0 cnVuY2F0ZSAtIDFdID0gQm9vbEdldERhdHVtKFBVQl9ERUZBVUxUX0FDVElPTl9UUlVOQ0FURSk7 CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ0cnVuY2F0ZSAtIDFdID0gdHJ1ZTsK KworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnZpYXJvb3QgLSAxXSA9IEJvb2xHZXRE YXR1bShQVUJfREVGQVVMVF9WSUFfUk9PVCk7CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlv bl9wdWJ2aWFyb290IC0gMV0gPSB0cnVlOworCisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25f cHViZ2VuY29scyAtIDFdID0gQ2hhckdldERhdHVtKFBVQl9ERUZBVUxUX0dFTkNPTFMpOworCXJl cGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHViZ2VuY29scyAtIDFdID0gdHJ1ZTsKKworCS8q IFNldCBBTEwgVEFCTEVTIGZsYWcgdG8gZmFsc2UgKi8KKwlpZiAocHViZm9ybS0+cHViYWxsdGFi bGVzKQorCXsKKwkJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHViYWxsdGFibGVzIC0gMV0g PSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfQUxMX1RBQkxFUyk7CisJCXJlcGxhY2VzW0FudW1f cGdfcHVibGljYXRpb25fcHViYWxsdGFibGVzIC0gMV0gPSB0cnVlOworCQlDYWNoZUludmFsaWRh dGVSZWxjYWNoZUFsbCgpOworCX0KKworCXR1cCA9IGhlYXBfbW9kaWZ5X3R1cGxlKHR1cCwgUmVs YXRpb25HZXREZXNjcihyZWwpLCB2YWx1ZXMsIG51bGxzLAorCQkJCQkJCXJlcGxhY2VzKTsKKwor CS8qIFVwZGF0ZSB0aGUgY2F0YWxvZy4gKi8KKwlDYXRhbG9nVHVwbGVVcGRhdGUocmVsLCAmdHVw LT50X3NlbGYsIHR1cCk7CisKKwkvKiBEcm9wIHRoZSBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCB0 aGUgcHVibGljYXRpb24gKi8KKwlzY2hlbWFzID0gR2V0UHVibGljYXRpb25TY2hlbWFzKHB1Ymlk KTsKKwlQdWJsaWNhdGlvbkRyb3BTY2hlbWFzKHB1YmlkLCBzY2hlbWFzLCBmYWxzZSk7CisKKwkv KiBEcm9wIHRoZSByZWxhdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiAqLwor CXJlbHMgPSBHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJpZCwgUFVCTElDQVRJT05fUEFSVF9S T09UKTsKKwlmb3JlYWNoKGxjLCByZWxzKQorCXsKKwkJT2lkCQkJcmVsaWQgPSBsZmlyc3Rfb2lk KGxjKTsKKworCQlwcmlkID0gR2V0U3lzQ2FjaGVPaWQyKFBVQkxJQ0FUSU9OUkVMTUFQLCBBbnVt X3BnX3B1YmxpY2F0aW9uX3JlbF9vaWQsCisJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShyZWxp ZCksCisJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShwdWJpZCkpOworCQlpZiAoIU9pZElzVmFs aWQocHJpZCkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVG SU5FRF9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJyZWxhdGlvbiBcIiVzXCIgaXMgbm90IHBhcnQg b2YgdGhlIHB1YmxpY2F0aW9uIiwKKwkJCQkJCQlnZXRfcmVsX25hbWUocmVsaWQpKSkpOworCisJ CU9iamVjdEFkZHJlc3NTZXQob2JqLCBQdWJsaWNhdGlvblJlbFJlbGF0aW9uSWQsIHByaWQpOwor CQlwZXJmb3JtRGVsZXRpb24oJm9iaiwgRFJPUF9DQVNDQURFLCAwKTsKKwl9Cit9CisKIC8qCiAg KiBBZGQgb3IgcmVtb3ZlIHRhYmxlIHRvL2Zyb20gcHVibGljYXRpb24uCiAgKi8KQEAgLTE1MDEs NiArMTU5OCw4IEBAIEFsdGVyUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1 YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAogCWlmIChzdG10LT5vcHRpb25zKQogCQlBbHRlclB1Ymxp Y2F0aW9uT3B0aW9ucyhwc3RhdGUsIHN0bXQsIHJlbCwgdHVwKTsKKwllbHNlIGlmIChzdG10LT5h Y3Rpb24gPT0gQVBfUmVzZXRQdWJsaWNhdGlvbikKKwkJQWx0ZXJQdWJsaWNhdGlvblJlc2V0KHBz dGF0ZSwgc3RtdCwgcmVsLCB0dXApOwogCWVsc2UKIAl7CiAJCUxpc3QJICAgKnJlbGF0aW9ucyA9 IE5JTDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CmluZGV4IDBiNTY1MjA3MWQxLi45NTJlOGUxMDNjZiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CkBAIC0xMDc2Miw2ICsxMDc2Miw4IEBAIHB1Yl9vYmpfbGlzdDoJUHVibGljYXRpb25PYmpT cGVjCiAgKgogICogQUxURVIgUFVCTElDQVRJT04gbmFtZSBTRVQgcHViX29iaiBbLCAuLi5dCiAg KgorICogQUxURVIgUFVCTElDQVRJT04gbmFtZSBSRVNFVAorICoKICAqIHB1Yl9vYmogaXMgb25l IG9mOgogICoKICAqCQlUQUJMRSB0YWJsZV9uYW1lIFssIC4uLl0KQEAgLTEwODA4LDYgKzEwODEw LDEzIEBAIEFsdGVyUHVibGljYXRpb25TdG10OgogCQkJCQluLT5hY3Rpb24gPSBBUF9Ecm9wT2Jq ZWN0czsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgUFVCTElDQVRJ T04gbmFtZSBSRVNFVAorCQkJCXsKKwkJCQkJQWx0ZXJQdWJsaWNhdGlvblN0bXQgKm4gPSBtYWtl Tm9kZShBbHRlclB1YmxpY2F0aW9uU3RtdCk7CisJCQkJCW4tPnB1Ym5hbWUgPSAkMzsKKwkJCQkJ bi0+YWN0aW9uID0gQVBfUmVzZXRQdWJsaWNhdGlvbjsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJ CQkJfQogCQk7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w c3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmlu ZGV4IDYyMDgzMGZlYjlkLi5kNTllZDVmM2ZkMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAt MjI0Miw3ICsyMjQyLDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAK IAkvKiBBTFRFUiBQVUJMSUNBVElPTiA8bmFtZT4gKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRF UiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55KSkKLQkJQ09NUExFVEVfV0lUSCgiQUREIiwgIkRS T1AiLCAiT1dORVIgVE8iLCAiUkVOQU1FIFRPIiwgIlNFVCIpOworCQlDT01QTEVURV9XSVRIKCJB REQiLCAiRFJPUCIsICJPV05FUiBUTyIsICJSRU5BTUUgVE8iLCAiUkVTRVQiLCAiU0VUIik7CiAJ LyogQUxURVIgUFVCTElDQVRJT04gPG5hbWU+IEFERCAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFM VEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiKSkKIAkJQ09NUExFVEVfV0lUSCgi VEFCTEVTIElOIFNDSEVNQSIsICJUQUJMRSIpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGRk MDBhYjQyMGI4Li43MjgwZTk4MzZjZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDI3Miw2 ICs0MjcyLDcgQEAgdHlwZWRlZiBlbnVtIEFsdGVyUHVibGljYXRpb25BY3Rpb24KIAlBUF9BZGRP YmplY3RzLAkJCQkvKiBhZGQgb2JqZWN0cyB0byBwdWJsaWNhdGlvbiAqLwogCUFQX0Ryb3BPYmpl Y3RzLAkJCQkvKiByZW1vdmUgb2JqZWN0cyBmcm9tIHB1YmxpY2F0aW9uICovCiAJQVBfU2V0T2Jq ZWN0cywJCQkJLyogc2V0IGxpc3Qgb2Ygb2JqZWN0cyAqLworCUFQX1Jlc2V0UHVibGljYXRpb24s CQkvKiByZXNldCB0aGUgcHVibGljYXRpb24gKi8KIH0gQWx0ZXJQdWJsaWNhdGlvbkFjdGlvbjsK IAogdHlwZWRlZiBzdHJ1Y3QgQWx0ZXJQdWJsaWNhdGlvblN0bXQKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKaW5kZXggNGRlOTZjMDRmOWQuLmIyZmZlMGE4YzIwIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dApAQCAtMTkyMyw2ICsx OTIzLDEyNiBAQCBUYWJsZXM6CiBEUk9QIFBVQkxJQ0FUSU9OIHB1YjE7CiBEUk9QIFBVQkxJQ0FU SU9OIHB1YjI7CiBEUk9QIFRBQkxFIGdlbmNvbHM7CistLSBUZXN0cyBmb3IgQUxURVIgUFVCTElD QVRJT04gLi4uIFJFU0VUCitDUkVBVEUgU0NIRU1BIHB1Yl9zY2gxOworQ1JFQVRFIFRBQkxFIHB1 Yl9zY2gxLnRibDEgKGEgaW50KTsKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsK K0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEZPUiBBTEwgVEFCTEVTOworUkVTRVQg Y2xpZW50X21pbl9tZXNzYWdlczsKKy0tIFZlcmlmeSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlz IHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBU cnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGlj YXRpb25fdXNlciB8IHQgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jl c2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBV cGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJv b3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorKDEg cm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBUQUJMRSBwdWJfc2No MS50YmwxOworLS0gVmVyaWZ5IHRoYXQgdGFibGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGlj YXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHVi X3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMg fCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlh IHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgor VGFibGVzOgorICAgICJwdWJfc2NoMS50YmwxIgorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi X3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxl dGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Ymxp YzsKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIkFMTCIKK0xJTkUgMTogQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViLi4u CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIFZlcmlm eSB0aGF0IHNjaGVtYXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiBhcmUgZHJvcHBl ZCBhZnRlciBSRVNFVAorXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxl dGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVz dHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNl cnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8 IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8 IGYKKygxIHJvdykKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJ U0ggPSAnJyk7CistLSBWZXJpZnkgdGhhdCAnUFVCTElTSCcgcGFyYW1ldGVyIGlzIHJlc2V0Citc ZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMg fCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl ciB8IGYgICAgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAg fCBub25lICAgICAgICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVCTElDQVRJT04gdGVz dHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwg RGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVn cmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorKDEgcm93KQorCitB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSF9WSUFfUEFSVElUSU9O X1JPT1QgPSAndHJ1ZScpOworLS0gVmVyaWZ5IHRoYXQgJ1BVQkxJU0hfVklBX1BBUlRJVElPTl9S T09UJyBwYXJhbWV0ZXIgaXMgcmVzZXQKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0 CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRh dGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3Qg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t CisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgdAorKDEgcm93 KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1 Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1Ymxp Y2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFi bGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVk IGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAg ICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQg U0VUIChQVUJMSVNIX0dFTkVSQVRFRF9DT0xVTU5TID0gc3RvcmVkKTsKKy0tIFZlcmlmeSB0aGF0 ICdQVUJMSVNIX0dFTkVSQVRFRF9DT0xVTU5TJyBwYXJhbWV0ZXIgaXMgcmVzZXQKK1xkUnArIHRl c3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ dWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxs IHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVy YXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAg ICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IHN0b3Jl ZCAgICAgICAgICAgIHwgZgorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jl c2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBP d25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVz IHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCisoMSByb3cpCisKKy0tIFZlcmlm eSB0aGF0IG9ubHkgc3VwZXJ1c2VyIGNhbiByZXNldCBhIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7 CitTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9yZXNldCBSRVNFVDsgLS0gZmFpbCAtIG11c3QgYmUgc3VwZXJ1c2VyCitFUlJPUjog IG11c3QgYmUgc3VwZXJ1c2VyIHRvIFJFU0VUIHB1YmxpY2F0aW9uCitTRVQgUk9MRSByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXI7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQ7CitEUk9Q IFRBQkxFIHB1Yl9zY2gxLnRibDE7CitEUk9QIFNDSEVNQSBwdWJfc2NoMTsKIFJFU0VUIGNsaWVu dF9taW5fbWVzc2FnZXM7CiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiBEUk9QIFJPTEUg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyLCByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IDY4MDAxZGU0MDAwLi4xNWIyYjFjZmQy OCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbApAQCAtMTIyMiw2ICsxMjIyLDYz IEBAIERST1AgUFVCTElDQVRJT04gcHViMTsKIERST1AgUFVCTElDQVRJT04gcHViMjsKIERST1Ag VEFCTEUgZ2VuY29sczsKIAorLS0gVGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNF VAorQ1JFQVRFIFNDSEVNQSBwdWJfc2NoMTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwxIChh IGludCk7CitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBGT1IgQUxMIFRBQkxFUzsKK1JFU0VUIGNsaWVudF9taW5fbWVz c2FnZXM7CisKKy0tIFZlcmlmeSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlzIHJlc2V0CitcZFJw KyB0ZXN0cHViX3Jlc2V0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwor XGRScCsgdGVzdHB1Yl9yZXNldAorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFE RCBUQUJMRSBwdWJfc2NoMS50YmwxOworCistLSBWZXJpZnkgdGhhdCB0YWJsZXMgYXNzb2NpYXRl ZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiBhcmUgZHJvcHBlZCBhZnRlciBSRVNFVAorXGRScCsgdGVz dHB1Yl9yZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnAr IHRlc3RwdWJfcmVzZXQKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxM IFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljOworCistLSBWZXJpZnkgdGhhdCBzY2hlbWFzIGFzc29j aWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKK1xkUnAr IHRlc3RwdWJfcmVzZXQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7Citc ZFJwKyB0ZXN0cHViX3Jlc2V0CisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VU IChQVUJMSVNIID0gJycpOworCistLSBWZXJpZnkgdGhhdCAnUFVCTElTSCcgcGFyYW1ldGVyIGlz IHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jl c2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IFNFVCAoUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1QgPSAndHJ1ZScpOworCist LSBWZXJpZnkgdGhhdCAnUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1QnIHBhcmFtZXRlciBpcyBy ZXNldAorXGRScCsgdGVzdHB1Yl9yZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9yZXNldCBTRVQgKFBVQkxJU0hfR0VORVJBVEVEX0NPTFVNTlMgPSBzdG9yZWQpOworCistLSBW ZXJpZnkgdGhhdCAnUFVCTElTSF9HRU5FUkFURURfQ09MVU1OUycgcGFyYW1ldGVyIGlzIHJlc2V0 CitcZFJwKyB0ZXN0cHViX3Jlc2V0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJF U0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorCistLSBWZXJpZnkgdGhhdCBvbmx5IHN1cGVydXNl ciBjYW4gcmVzZXQgYSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworU0VUIFJPTEUgcmVncmVzc19w dWJsaWNhdGlvbl91c2VyMjsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7 IC0tIGZhaWwgLSBtdXN0IGJlIHN1cGVydXNlcgorU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlv bl91c2VyOworCitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQ7CitEUk9QIFRBQkxFIHB1 Yl9zY2gxLnRibDE7CitEUk9QIFNDSEVNQSBwdWJfc2NoMTsKKwogUkVTRVQgY2xpZW50X21pbl9t ZXNzYWdlczsKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKIERST1AgUk9MRSByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIsIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7Ci0tIAoyLjM0LjEK Cg== --000000000000e99f730637bfa40a Content-Type: application/octet-stream; name="v12-0002-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Disposition: attachment; filename="v12-0002-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mc07rl671 RnJvbSBhNTFhZWUzNTliZGU2YzJmOGY4M2JlZTNmNDJjNDBhNjE5ODRmNzZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTEgSnVuIDIwMjUgMTk6MDg6MzUgKzA1MzAKU3ViamVjdDogW1BBVENIIHYx MiAyLzNdIFNraXAgcHVibGlzaGluZyB0aGUgdGFibGVzIHNwZWNpZmllZCBpbiBFWENFUFQgVEFC TEUuCgpBIG5ldyAiRVhDRVBUIFRBQkxFIiBjbGF1c2UgZm9yIENSRUFURS9BTFRFUiBQVUJMSUNB VElPTiBhbGxvd3Mgb25lIG9yCm1vcmUgdGFibGVzIHRvIGJlIGV4Y2x1ZGVkLiBUaGUgcHVibGlz aGVyIHdpbGwgbm90IHNlbmQgdGhlIGRhdGEgb2YKZXhjbHVkZWQgdGFibGVzIHRvIHRoZSBzdWJz Y3JpYmVyLgoKVGhlIG5ldyBzeW50YXggYWxsb3dzIHNwZWNpZnlpbmcgZXhjbHVkZWQgcmVsYXRp b25zIHdoZW4gY3JlYXRpbmcgb3IgYWx0ZXJpbmcKYSBwdWJsaWNhdGlvbi4gRm9yIGV4YW1wbGU6 CkNSRUFURSBQVUJMSUNBVElPTiBwdWIxIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSB0MSx0 MjsKb3IKQUxURVIgUFVCTElDQVRJT04gcHViMSBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUg dDEsdDI7CgpBIG5ldyBjb2x1bW4gInByZXhjZXB0IiBpcyBhZGRlZCB0byB0YWJsZSAicGdfcHVi bGljYXRpb25fcmVsIiwgdG8gbWFpbnRhaW4KdGhlIHJlbGF0aW9ucyB0aGF0IHRoZSB1c2VyIHdh bnRzIHRvIGV4Y2x1ZGUgZnJvbSB0aGUgcHVibGljYXRpb25zLgoKcGdfZHVtcCBpcyB1cGRhdGVk IHRvIGlkZW50aWZ5IGFuZCBkdW1wIHRoZSBleGNsdWRlZCB0YWJsZXMgb2YgdGhlIHB1YmxpY2F0 aW9ucy4KClRoZSBwc3FsIFxkIGZhbWlseSBvZiBjb21tYW5kcyBjYW4gbm93IGRpc3BsYXkgZXhj bHVkZWQgdGFibGVzLiBlLmcuIHBzcWwKXGRScCsgdmFyaWFudCB3aWxsIG5vdyBkaXNwbGF5IGFz c29jaWF0ZWQgImV4Y2VwdCB0YWJsZXMiIGlmIGFueS4KCkJ1bXAgY2F0YWxvZyB2ZXJzaW9uLgot LS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAgOSAr CiBkb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sICAgICAgICAgfCAgIDggKy0K IGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCAgICAgICB8ICAxOSArLQog ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCAgICAgIHwgIDI5ICsrLQog ZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sICAgICAgICAgICAgICAgIHwgICA1ICstCiBz cmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMgICAgICAgICAgfCAgNjggKysrKy0t CiBzcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyAgICAgICAgfCAxOTcgKysr KysrKysrKysrKystLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAg ICAgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAg ICAgICB8ICA0MSArKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1 dC5jICAgfCAgMjUgKy0tCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jICAgICAg ICAgICAgfCAgMTYgKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAg ICAgICB8ICA1NiArKysrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAg ICAgICAgIHwgICAxICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyAgICAgICAgICAg ICAgICB8ICAgNyArCiBzcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAg ICAgfCAgMjAgKysKIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAg ICB8ICA2MiArKysrKy0KIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAg ICAgICB8ICAxMyArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oICAgICAg ICAgIHwgICA3ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oICAg ICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmggICAgICAg IHwgICA1ICstCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAg fCAgIDIgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgICAgIHwg IDk3ICsrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsICAgICAg ICAgIHwgIDQ3ICsrKystCiBzcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQgICAgICAg ICAgICAgfCAgIDEgKwogLi4uL3QvMDM2X3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbCAgICAg ICAgIHwgIDgzICsrKysrKysrCiAyNSBmaWxlcyBjaGFuZ2VkLCA2ODkgaW5zZXJ0aW9ucygrKSwg MTM0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3N1YnNjcmlwdGlv bi90LzAzNl9yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwKCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IGZh ODZjNTY5ZGM0Li40ZTM3YzkyOGI0NCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dz LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTY1NjgsNiArNjU2OCwx NSBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0Ozwv cmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgaWYgdGhlcmUgaXMgbm8gcHVibGlj YXRpb24gcXVhbGlmeWluZyBjb25kaXRpb24uPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93Pgog CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgPHN0cnVjdGZpZWxkPnByZXhjZXB0 PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgIFRydWUgaWYgdGhlIHJlbGF0aW9uIG11c3QgYmUgZXhjbHVkZWQKKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KICAgICAgICA8c3RydWN0ZmllbGQ+cHJhdHRyczwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDJ2 ZWN0b3I8L3R5cGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlv bi5zZ21sIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbAppbmRleCA2ODZk ZDQ0MWQwMi4uMDIyYzRmZDRlMmMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJl cGxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dt bApAQCAtMjI1MSwxMCArMjI1MSwxMCBAQCBDT05URVhUOiAgcHJvY2Vzc2luZyByZW1vdGUgZGF0 YSBmb3IgcmVwbGljYXRpb24gb3JpZ2luICJwZ18xNjM5NSIgZHVyaW5nICJJTlNFUgogICA8L3Bh cmE+CiAKICAgPHBhcmE+Ci0gICBUbyBhZGQgdGFibGVzIHRvIGEgcHVibGljYXRpb24sIHRoZSB1 c2VyIG11c3QgaGF2ZSBvd25lcnNoaXAgcmlnaHRzIG9uIHRoZQotICAgdGFibGUuIFRvIGFkZCBh bGwgdGFibGVzIGluIHNjaGVtYSB0byBhIHB1YmxpY2F0aW9uLCB0aGUgdXNlciBtdXN0IGJlIGEK LSAgIHN1cGVydXNlci4gVG8gY3JlYXRlIGEgcHVibGljYXRpb24gdGhhdCBwdWJsaXNoZXMgYWxs IHRhYmxlcyBvciBhbGwgdGFibGVzIGluCi0gICBzY2hlbWEgYXV0b21hdGljYWxseSwgdGhlIHVz ZXIgbXVzdCBiZSBhIHN1cGVydXNlci4KKyAgIFRvIGNyZWF0ZSBhIHB1YmxpY2F0aW9uIHVzaW5n IEZPUiBBTEwgVEFCTEVTIG9yIEZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQSwKKyAgIHRoZSB1c2Vy IG11c3QgYmUgYSBzdXBlcnVzZXIuIFRvIGFkZCBBTEwgVEFCTEVTIG9yIEFMTCBUQUJMRVMgSU4g U0NIRU1BIHRvIGEKKyAgIHB1YmxpY2F0aW9uLCB0aGUgdXNlciBtdXN0IGJlIGEgc3VwZXJ1c2Vy LiBUbyBhZGQgdGFibGVzIHRvIGEgcHVibGljYXRpb24sCisgICB0aGUgdXNlciBtdXN0IGhhdmUg b3duZXJzaGlwIHJpZ2h0cyBvbiB0aGUgdGFibGUuCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAppbmRleCAwNjQ1MmFmOTIxNC4uMzdl MmM4NGJjMTAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24u c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTIy LDYgKzIyLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2Pgog PHN5bm9wc2lzPgogQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBBREQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4uLl0KK0FMVEVSIFBVQkxJQ0FU SU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gQURE IEFMTCBUQUJMRVMgWyBFWENFUFQgWyBUQUJMRSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5leGNlcHRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gXQogQUxURVIgUFVC TElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxl PiBTRVQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwv cmVwbGFjZWFibGU+IFssIC4uLl0KIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gRFJPUCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+cHVibGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uXQogQUxU RVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxh Y2VhYmxlPiBTRVQgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25f cGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkKQEAgLTMzLDYgKzM0LDExIEBAIEFMVEVS IFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWJsZT4gUkVTRVQKIAogICAgIFRBQkxFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWyAoIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXSBb IFdIRVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxh Y2VhYmxlPiApIF0gWywgLi4uIF0KICAgICBUQUJMRVMgSU4gU0NIRU1BIHsgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1ND SEVNQSB9IFssIC4uLiBdCisKKzxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmV4Y2VwdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4KKworICAg IFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBs YWNlYWJsZT4gWyAqIF0KKwogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgogCkBAIC04 OSw4ICs5NSw5IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVTRVQKIAogICA8cGFyYT4KICAgIFlvdSBtdXN0IG93 biB0aGUgcHVibGljYXRpb24gdG8gdXNlIDxjb21tYW5kPkFMVEVSIFBVQkxJQ0FUSU9OPC9jb21t YW5kPi4KLSAgIEFkZGluZyBhIHRhYmxlIHRvIGEgcHVibGljYXRpb24gYWRkaXRpb25hbGx5IHJl cXVpcmVzIG93bmluZyB0aGF0IHRhYmxlLgotICAgVGhlIDxsaXRlcmFsPkFERCBUQUJMRVMgSU4g U0NIRU1BPC9saXRlcmFsPiwKKyAgIEFkZGluZyBhIHRhYmxlIHRvIG9yIGV4Y2x1ZGluZyBhIHRh YmxlIGZyb20gYSBwdWJsaWNhdGlvbiBhZGRpdGlvbmFsbHkKKyAgIHJlcXVpcmVzIG93bmluZyB0 aGF0IHRhYmxlLiBUaGUgPGxpdGVyYWw+QUREIEFMTCBUQUJMRVM8L2xpdGVyYWw+LAorICAgPGxp dGVyYWw+QUREIEFMTCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiwKICAgIDxsaXRlcmFsPlNF VCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiB0byBhIHB1YmxpY2F0aW9uIGFuZAogICAgPGxp dGVyYWw+UkVTRVQ8L2xpdGVyYWw+IG9mIHB1YmxpY2F0aW9uIHJlcXVpcmVzIHRoZSBpbnZva2lu ZyB1c2VyIHRvIGJlIGEKICAgIHN1cGVydXNlci4gVG8gYWx0ZXIgdGhlIG93bmVyLCB5b3UgbXVz dCBiZSBhYmxlIHRvCkBAIC0yMzgsNiArMjQ1LDE0IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHNhbGVz X3B1YmxpY2F0aW9uIEFERCBUQUJMRVMgSU4gU0NIRU1BIG1hcmtldGluZywgc2FsZXM7CiA8L3By b2dyYW1saXN0aW5nPgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBBbHRlciBwdWJsaWNhdGlv biA8c3RydWN0bmFtZT5wcm9kdWN0aW9uX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPiB0byBwdWJs aXNoCisgICBhbGwgdGFibGVzIGV4Y2VwdCA8c3RydWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4g YW5kCisgICA8c3RydWN0bmFtZT5kZXBhcnRtZW50czwvc3RydWN0bmFtZT46Cis8cHJvZ3JhbWxp c3Rpbmc+CitBTFRFUiBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEFERCBBTEwg VEFCTEVTIEVYQ0VQVCB1c2VycywgZGVwYXJ0bWVudHM7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFy YT4KKwogICA8cGFyYT4KICAgIEFkZCB0YWJsZXMgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5h bWU+LAogICAgPHN0cnVjdG5hbWU+ZGVwYXJ0bWVudHM8L3N0cnVjdG5hbWU+IGFuZCBzY2hlbWEK ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwgYi9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCmluZGV4IDgwMjYzMGYyZGYx Li43ZmQ4ODcyZGI1ZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGlj YXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21s CkBAIC0yMiw3ICsyMiw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogIDxyZWZzeW5vcHNp c2Rpdj4KIDxzeW5vcHNpcz4KIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+Ci0gICAgWyBGT1IgQUxMIFRBQkxFUworICAg IFsgRk9SIEFMTCBUQUJMRVMgWyBFWENFUFQgWyBUQUJMRSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5leGNlcHRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gXQogICAg ICAgfCBGT1IgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVj dDwvcmVwbGFjZWFibGU+IFssIC4uLiBdIF0KICAgICBbIFdJVEggKCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBd ICkgXQogCkBAIC0zMCw2ICszMCwxMCBAQCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogCiAgICAgVEFCTEUgWyBPTkxZ IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxl PiBbICogXSBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9y ZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdIFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgXSBbLCAuLi4gXQogICAgIFRBQkxF UyBJTiBTQ0hFTUEgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8 L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfU0NIRU1BIH0gWywgLi4uIF0KKworPHBocmFzZT53aGVy ZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0aW9uX29iamVjdDwvcmVwbGFj ZWFibGU+IGlzOjwvcGhyYXNlPgorCisgICAgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICogXQogPC9zeW5vcHNpcz4KICA8 L3JlZnN5bm9wc2lzZGl2PgogCkBAIC0xMjUsNyArMTI5LDkgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9O IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgICA8 bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgogICAgICAgTWFya3MgdGhlIHB1YmxpY2F0aW9uIGFzIG9u ZSB0aGF0IHJlcGxpY2F0ZXMgY2hhbmdlcyBmb3IgYWxsIHRhYmxlcyBpbgotICAgICAgdGhlIGRh dGFiYXNlLCBpbmNsdWRpbmcgdGFibGVzIGNyZWF0ZWQgaW4gdGhlIGZ1dHVyZS4KKyAgICAgIHRo ZSBkYXRhYmFzZSwgaW5jbHVkaW5nIHRhYmxlcyBjcmVhdGVkIGluIHRoZSBmdXR1cmUuIElmCisg ICAgICA8bGl0ZXJhbD5FWENFUFQgVEFCTEU8L2xpdGVyYWw+IGlzIHNwZWNpZmllZCwgdGhlbiBl eGNsdWRlIHJlcGxpY2F0aW5nCisgICAgICB0aGUgY2hhbmdlcyBmb3IgdGhlIHNwZWNpZmllZCB0 YWJsZXMuCiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+ CkBAIC0xNjEsNiArMTY3LDE2IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgPC9saXN0aXRlbT4KICAgIDwv dmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRlcHVibGljYXRp b24tcGFyYW1zLWZvci1leGNlcHQtdGFibGUiPgorICAgIDx0ZXJtPjxsaXRlcmFsPkVYQ0VQVCBU QUJMRTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IFRoaXMgY2xhdXNlIHNwZWNpZmllcyBhIGxpc3Qgb2YgdGFibGVzIHRvIGJlIGV4Y2x1ZGVkIGZy b20gdGhlCisgICAgICBwdWJsaWNhdGlvbi4gSXQgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIDxsaXRl cmFsPkZPUiBBTEwgVEFCTEVTPC9saXRlcmFsPi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0 ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0 ZXB1YmxpY2F0aW9uLXBhcmFtcy13aXRoIj4KICAgICA8dGVybT48bGl0ZXJhbD5XSVRIICggPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX3BhcmFtZXRlcjwvcmVwbGFj ZWFibGU+IFs9IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFi bGU+XSBbLCAuLi4gXSApPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC00NDIs NiArNDU4LDE1IEBAIENSRUFURSBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEZP UiBUQUJMRSB1c2VycywgZGVwYXJ0bWVudHMsIFRBQkxFUyBJCiBDUkVBVEUgUFVCTElDQVRJT04g c2FsZXNfcHVibGljYXRpb24gRk9SIFRBQkxFUyBJTiBTQ0hFTUEgbWFya2V0aW5nLCBzYWxlczsK IDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCisgIDxwYXJhPgorICAgQ3JlYXRlIGEgcHVibGlj YXRpb24gdGhhdCBwdWJsaXNoZXMgYWxsIGNoYW5nZXMgaW4gYWxsIHRoZSB0YWJsZXMgZXhjZXB0 IGZvcgorICAgdGhlIGNoYW5nZXMgb2YgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+IGFu ZAorICAgPHN0cnVjdG5hbWU+ZGVwYXJ0bWVudHM8L3N0cnVjdG5hbWU+OgorPHByb2dyYW1saXN0 aW5nPgorQ1JFQVRFIFBVQkxJQ0FUSU9OIG15cHVibGljYXRpb24gRk9SIEFMTCBUQUJMRVMgRVhD RVBUIHVzZXJzLCBkZXBhcnRtZW50czsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKwog ICA8cGFyYT4KICAgIENyZWF0ZSBhIHB1YmxpY2F0aW9uIHRoYXQgcHVibGlzaGVzIGFsbCBjaGFu Z2VzIGZvciB0YWJsZSA8c3RydWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4sCiAgICBidXQgcmVw bGljYXRlcyBvbmx5IGNvbHVtbnMgPHN0cnVjdG5hbWU+dXNlcl9pZDwvc3RydWN0bmFtZT4gYW5k CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL3BzcWwtcmVmLnNnbWwKaW5kZXggOGY3ZDg3NThjYTAuLjNjY2U3NjJmYTk3IDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L3JlZi9wc3FsLXJlZi5zZ21sCkBAIC0yMDk0LDggKzIwOTQsOSBAQCBTRUxFQ1QgJDEgXHBhcnNl IHN0bXQxCiAgICAgICAgIGxpc3RlZC4KICAgICAgICAgSWYgPGxpdGVyYWw+eDwvbGl0ZXJhbD4g aXMgYXBwZW5kZWQgdG8gdGhlIGNvbW1hbmQgbmFtZSwgdGhlIHJlc3VsdHMKICAgICAgICAgYXJl IGRpc3BsYXllZCBpbiBleHBhbmRlZCBtb2RlLgotICAgICAgICBJZiA8bGl0ZXJhbD4rPC9saXRl cmFsPiBpcyBhcHBlbmRlZCB0byB0aGUgY29tbWFuZCBuYW1lLCB0aGUgdGFibGVzIGFuZAotICAg ICAgICBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHB1YmxpY2F0aW9uIGFyZSBzaG93biBh cyB3ZWxsLgorICAgICAgICBJZiA8bGl0ZXJhbD4rPC9saXRlcmFsPiBpcyBhcHBlbmRlZCB0byB0 aGUgY29tbWFuZCBuYW1lLCB0aGUgdGFibGVzLAorICAgICAgICBleGNsdWRlZCB0YWJsZXMgYW5k IHNjaGVtYXMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggcHVibGljYXRpb24gYXJlIHNob3duIGFzCisg ICAgICAgIHdlbGwuCiAgICAgICAgIDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAg IDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJs aWNhdGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCmluZGV4IGQ2 Zjk0ZGI1ZDk5Li5lYzU4MGUzYjA1MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z19wdWJsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24u YwpAQCAtMzUxLDcgKzM1MSw4IEBAIEdldFB1YlBhcnRpdGlvbk9wdGlvblJlbGF0aW9ucyhMaXN0 ICpyZXN1bHQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCwKICAqIGFuY2VzdG9yIGlz IGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuCiAgKi8KIE9pZAotR2V0VG9wTW9zdEFuY2VzdG9ySW5Q dWJsaWNhdGlvbihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsIGludCAqYW5jZXN0b3JfbGV2 ZWwpCitHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExpc3QgKmFu Y2VzdG9ycywKKwkJCQkJCQkJaW50ICphbmNlc3Rvcl9sZXZlbCwgYm9vbCBwdWJhbGx0YWJsZXMp CiB7CiAJTGlzdENlbGwgICAqbGM7CiAJT2lkCQkJdG9wbW9zdF9yZWxpZCA9IEludmFsaWRPaWQ7 CkBAIC0zNjMsMzIgKzM2NCw0NCBAQCBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9p ZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9ycywgaW50ICphbmNlc3Rvcl9sZXZlbAogCWZvcmVhY2go bGMsIGFuY2VzdG9ycykKIAl7CiAJCU9pZAkJCWFuY2VzdG9yID0gbGZpcnN0X29pZChsYyk7Ci0J CUxpc3QJICAgKmFwdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhhbmNlc3Rvcik7Ci0J CUxpc3QJICAgKmFzY2hlbWFQdWJpZHMgPSBOSUw7CisJCUxpc3QJICAgKmFwdWJpZHMgPSBHZXRS ZWxhdGlvblB1YmxpY2F0aW9ucyhhbmNlc3RvciwgZmFsc2UpOworCQlMaXN0CSAgICphc2NoZW1h cHViaWRzID0gTklMOworCQlMaXN0CSAgICphZXhjZXB0cHViaWRzID0gTklMOworCQlib29sCQlz ZXRfdG9wID0gZmFsc2U7CiAKIAkJbGV2ZWwrKzsKIAotCQlpZiAobGlzdF9tZW1iZXJfb2lkKGFw dWJpZHMsIHB1Ym9pZCkpCisJCS8qIGNoZWNrIGlmIG1lbWJlciBvZiB0YWJsZSBwdWJsaWNhdGlv bnMgKi8KKwkJc2V0X3RvcCA9IGxpc3RfbWVtYmVyX29pZChhcHViaWRzLCBwdWJvaWQpOworCQlp ZiAoIXNldF90b3ApCiAJCXsKLQkJCXRvcG1vc3RfcmVsaWQgPSBhbmNlc3RvcjsKKwkJCWFzY2hl bWFwdWJpZHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoZ2V0X3JlbF9uYW1lc3BhY2UoYW5jZXN0 b3IpKTsKIAotCQkJaWYgKGFuY2VzdG9yX2xldmVsKQotCQkJCSphbmNlc3Rvcl9sZXZlbCA9IGxl dmVsOworCQkJLyogY2hlY2sgaWYgbWVtYmVyIG9mIHNjaGVtYSBwdWJsaWNhdGlvbnMgKi8KKwkJ CXNldF90b3AgPSBsaXN0X21lbWJlcl9vaWQoYXNjaGVtYXB1YmlkcywgcHVib2lkKTsKKworCQkJ LyoKKwkJCSAqIElmIHRoZSBwdWJsaWNhdGlvbiBpcyBhbGwgdGFibGVzIHB1YmxpY2F0aW9uIGFu ZCB0aGUgdGFibGUgaXMKKwkJCSAqIG5vdCBwYXJ0IG9mIGV4Y2VwdGlvbiB0YWJsZXMuCisJCQkg Ki8KKwkJCWlmICghc2V0X3RvcCAmJiBwdWJhbGx0YWJsZXMpCisJCQl7CisJCQkJYWV4Y2VwdHB1 YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yLCB0cnVlKTsKKwkJCQlzZXRf dG9wID0gIWxpc3RfbWVtYmVyX29pZChhZXhjZXB0cHViaWRzLCBwdWJvaWQpOworCQkJfQogCQl9 Ci0JCWVsc2UKKworCQlpZiAoc2V0X3RvcCkKIAkJewotCQkJYXNjaGVtYVB1YmlkcyA9IEdldFNj aGVtYVB1YmxpY2F0aW9ucyhnZXRfcmVsX25hbWVzcGFjZShhbmNlc3RvcikpOwotCQkJaWYgKGxp c3RfbWVtYmVyX29pZChhc2NoZW1hUHViaWRzLCBwdWJvaWQpKQotCQkJewotCQkJCXRvcG1vc3Rf cmVsaWQgPSBhbmNlc3RvcjsKKwkJCXRvcG1vc3RfcmVsaWQgPSBhbmNlc3RvcjsKIAotCQkJCWlm IChhbmNlc3Rvcl9sZXZlbCkKLQkJCQkJKmFuY2VzdG9yX2xldmVsID0gbGV2ZWw7Ci0JCQl9CisJ CQlpZiAoYW5jZXN0b3JfbGV2ZWwpCisJCQkJKmFuY2VzdG9yX2xldmVsID0gbGV2ZWw7CiAJCX0K IAogCQlsaXN0X2ZyZWUoYXB1Ymlkcyk7Ci0JCWxpc3RfZnJlZShhc2NoZW1hUHViaWRzKTsKKwkJ bGlzdF9mcmVlKGFzY2hlbWFwdWJpZHMpOworCQlsaXN0X2ZyZWUoYWV4Y2VwdHB1Ymlkcyk7CiAJ fQogCiAJcmV0dXJuIHRvcG1vc3RfcmVsaWQ7CkBAIC00NzksNiArNDkyLDggQEAgcHVibGljYXRp b25fYWRkX3JlbGF0aW9uKE9pZCBwdWJpZCwgUHVibGljYXRpb25SZWxJbmZvICpwcmksCiAJCU9i amVjdElkR2V0RGF0dW0ocHViaWQpOwogCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9w cnJlbGlkIC0gMV0gPQogCQlPYmplY3RJZEdldERhdHVtKHJlbGlkKTsKKwl2YWx1ZXNbQW51bV9w Z19wdWJsaWNhdGlvbl9yZWxfcHJleGNlcHQgLSAxXSA9CisJCUJvb2xHZXREYXR1bShwcmktPmV4 Y2VwdCk7CiAKIAkvKiBBZGQgcXVhbGlmaWNhdGlvbnMsIGlmIGF2YWlsYWJsZSAqLwogCWlmIChw cmktPndoZXJlQ2xhdXNlICE9IE5VTEwpCkBAIC03NDYsOSArNzYxLDkgQEAgcHVibGljYXRpb25f YWRkX3NjaGVtYShPaWQgcHViaWQsIE9pZCBzY2hlbWFpZCwgYm9vbCBpZl9ub3RfZXhpc3RzKQog CXJldHVybiBteXNlbGY7CiB9CiAKLS8qIEdldHMgbGlzdCBvZiBwdWJsaWNhdGlvbiBvaWRzIGZv ciBhIHJlbGF0aW9uICovCisvKiBHZXRzIGxpc3Qgb2YgcHVibGljYXRpb24gb2lkcyBmb3IgYSBy ZWxhdGlvbiB0aGF0IG1hdGNoZXMgdGhlIGV4Y2VwdF9mbGFnICovCiBMaXN0ICoKLUdldFJlbGF0 aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCkKK0dldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCBy ZWxpZCwgYm9vbCBleGNlcHRfZmxhZykKIHsKIAlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CiAJQ2F0 Q0xpc3QgICAqcHVicmVsbGlzdDsKQEAgLTc2Miw3ICs3NzcsOCBAQCBHZXRSZWxhdGlvblB1Ymxp Y2F0aW9ucyhPaWQgcmVsaWQpCiAJCUhlYXBUdXBsZQl0dXAgPSAmcHVicmVsbGlzdC0+bWVtYmVy c1tpXS0+dHVwbGU7CiAJCU9pZAkJCXB1YmlkID0gKChGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCkg R0VUU1RSVUNUKHR1cCkpLT5wcnB1YmlkOwogCi0JCXJlc3VsdCA9IGxhcHBlbmRfb2lkKHJlc3Vs dCwgcHViaWQpOworCQlpZiAoZXhjZXB0X2ZsYWcgPT0gKChGb3JtX3BnX3B1YmxpY2F0aW9uX3Jl bCkgR0VUU1RSVUNUKHR1cCkpLT5wcmV4Y2VwdCkKKwkJCXJlc3VsdCA9IGxhcHBlbmRfb2lkKHJl c3VsdCwgcHViaWQpOwogCX0KIAogCVJlbGVhc2VTeXNDYWNoZUxpc3QocHVicmVsbGlzdCk7CkBA IC04NjEsMTMgKzg3NywxNiBAQCBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvbnModm9pZCkKICAqIHJv b3QgcGFydGl0aW9uZWQgdGFibGVzLgogICovCiBMaXN0ICoKLUdldEFsbFRhYmxlc1B1YmxpY2F0 aW9uUmVsYXRpb25zKGJvb2wgcHVidmlhcm9vdCkKK0dldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVs YXRpb25zKE9pZCBwdWJpZCwgYm9vbCBwdWJ2aWFyb290KQogewogCVJlbGF0aW9uCWNsYXNzUmVs OwogCVNjYW5LZXlEYXRhIGtleVsxXTsKIAlUYWJsZVNjYW5EZXNjIHNjYW47CiAJSGVhcFR1cGxl CXR1cGxlOwogCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKKwlMaXN0CSAgICpleGNlcHRsaXN0Owor CisJZXhjZXB0bGlzdCA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLCBQVUJMSUNBVElP Tl9QQVJUX0FMTCk7CiAKIAljbGFzc1JlbCA9IHRhYmxlX29wZW4oUmVsYXRpb25SZWxhdGlvbklk LCBBY2Nlc3NTaGFyZUxvY2spOwogCkBAIC04ODQsNyArOTAzLDggQEAgR2V0QWxsVGFibGVzUHVi bGljYXRpb25SZWxhdGlvbnMoYm9vbCBwdWJ2aWFyb290KQogCQlPaWQJCQlyZWxpZCA9IHJlbEZv cm0tPm9pZDsKIAogCQlpZiAoaXNfcHVibGlzaGFibGVfY2xhc3MocmVsaWQsIHJlbEZvcm0pICYm Ci0JCQkhKHJlbEZvcm0tPnJlbGlzcGFydGl0aW9uICYmIHB1YnZpYXJvb3QpKQorCQkJIShyZWxG b3JtLT5yZWxpc3BhcnRpdGlvbiAmJiBwdWJ2aWFyb290KSAmJgorCQkJIWxpc3RfbWVtYmVyX29p ZChleGNlcHRsaXN0LCByZWxpZCkpCiAJCQlyZXN1bHQgPSBsYXBwZW5kX29pZChyZXN1bHQsIHJl bGlkKTsKIAl9CiAKQEAgLTkwNSw3ICs5MjUsOCBAQCBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvblJl bGF0aW9ucyhib29sIHB1YnZpYXJvb3QpCiAJCQlPaWQJCQlyZWxpZCA9IHJlbEZvcm0tPm9pZDsK IAogCQkJaWYgKGlzX3B1Ymxpc2hhYmxlX2NsYXNzKHJlbGlkLCByZWxGb3JtKSAmJgotCQkJCSFy ZWxGb3JtLT5yZWxpc3BhcnRpdGlvbikKKwkJCQkhcmVsRm9ybS0+cmVsaXNwYXJ0aXRpb24gJiYK KwkJCQkhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdGxpc3QsIHJlbGlkKSkKIAkJCQlyZXN1bHQgPSBs YXBwZW5kX29pZChyZXN1bHQsIHJlbGlkKTsKIAkJfQogCkBAIC0xMTYwLDcgKzExODEsOCBAQCBw Z19nZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkgKiB0aG9zZS4g T3RoZXJ3aXNlLCBnZXQgdGhlIHBhcnRpdGlvbmVkIHRhYmxlIGl0c2VsZi4KIAkJCSAqLwogCQkJ aWYgKHB1Yl9lbGVtLT5hbGx0YWJsZXMpCi0JCQkJcHViX2VsZW1fdGFibGVzID0gR2V0QWxsVGFi bGVzUHVibGljYXRpb25SZWxhdGlvbnMocHViX2VsZW0tPnB1YnZpYXJvb3QpOworCQkJCXB1Yl9l bGVtX3RhYmxlcyA9IEdldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKHB1Yl9lbGVtLT5v aWQsCisJCQkJCQkJCQkJCQkJCQkJICAgcHViX2VsZW0tPnB1YnZpYXJvb3QpOwogCQkJZWxzZQog CQkJewogCQkJCUxpc3QJICAgKnJlbGlkcywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3B1YmxpY2F0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25j bWRzLmMKaW5kZXggMTU5ZGMzNzgxZDAuLjUxOTRiMmZiNmUyIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9wdWJsaWNhdGlvbmNtZHMuYwpAQCAtMjA0LDYgKzIwNCwxMSBAQCBPYmplY3RzSW5QdWJsaWNh dGlvblRvT2lkcyhMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJ c3dpdGNoIChwdWJvYmotPnB1Ym9ianR5cGUpCiAJCXsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpf VEFCTEU6CisJCQkJcHVib2JqLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gZmFsc2U7CisJCQkJKnJlbHMg PSBsYXBwZW5kKCpyZWxzLCBwdWJvYmotPnB1YnRhYmxlKTsKKwkJCQlicmVhazsKKwkJCWNhc2Ug UFVCTElDQVRJT05PQkpfRVhDRVBUX1RBQkxFOgorCQkJCXB1Ym9iai0+cHVidGFibGUtPmV4Y2Vw dCA9IHRydWU7CiAJCQkJKnJlbHMgPSBsYXBwZW5kKCpyZWxzLCBwdWJvYmotPnB1YnRhYmxlKTsK IAkJCQlicmVhazsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX1NDSEVNQToKQEAg LTI3OCw3ICsyODMsNyBAQCBjb250YWluX2ludmFsaWRfcmZjb2x1bW5fd2Fsa2VyKE5vZGUgKm5v ZGUsIHJmX2NvbnRleHQgKmNvbnRleHQpCiAgKi8KIGJvb2wKIHB1Yl9yZl9jb250YWluc19pbnZh bGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMs Ci0JCQkJCQkJICAgYm9vbCBwdWJ2aWFyb290KQorCQkJCQkJCSAgIGJvb2wgcHVidmlhcm9vdCwg Ym9vbCBwdWJhbGx0YWJsZXMpCiB7CiAJSGVhcFR1cGxlCXJmdHVwbGU7CiAJT2lkCQkJcmVsaWQg PSBSZWxhdGlvbkdldFJlbGlkKHJlbGF0aW9uKTsKQEAgLTMwNSw3ICszMTAsOCBAQCBwdWJfcmZf Y29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlz dCAqYW5jZXN0b3JzLAogCWlmIChwdWJ2aWFyb290ICYmIHJlbGF0aW9uLT5yZF9yZWwtPnJlbGlz cGFydGl0aW9uKQogCXsKIAkJcHVibGlzaF9hc19yZWxpZAotCQkJPSBHZXRUb3BNb3N0QW5jZXN0 b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwpOworCQkJPSBHZXRUb3BNb3N0 QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwsCisJCQkJCQkJCQkJ CSAgcHViYWxsdGFibGVzKTsKIAogCQlpZiAoIU9pZElzVmFsaWQocHVibGlzaF9hc19yZWxpZCkp CiAJCQlwdWJsaXNoX2FzX3JlbGlkID0gcmVsaWQ7CkBAIC0zNjUsNyArMzcxLDcgQEAgcHViX3Jm X2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sIExp c3QgKmFuY2VzdG9ycywKIGJvb2wKIHB1Yl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHVi aWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiAJCQkJCQkJYm9vbCBwdWJ2 aWFyb290LCBjaGFyIHB1YmdlbmNvbHNfdHlwZSwKLQkJCQkJCQlib29sICppbnZhbGlkX2NvbHVt bl9saXN0LAorCQkJCQkJCWJvb2wgcHViYWxsdGFibGVzLCBib29sICppbnZhbGlkX2NvbHVtbl9s aXN0LAogCQkJCQkJCWJvb2wgKmludmFsaWRfZ2VuX2NvbCkKIHsKIAlPaWQJCQlyZWxpZCA9IFJl bGF0aW9uR2V0UmVsaWQocmVsYXRpb24pOwpAQCAtMzg5LDcgKzM5NSw4IEBAIHB1Yl9jb250YWlu c19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNl c3RvcnMsCiAJICovCiAJaWYgKHB1YnZpYXJvb3QgJiYgcmVsYXRpb24tPnJkX3JlbC0+cmVsaXNw YXJ0aXRpb24pCiAJewotCQlwdWJsaXNoX2FzX3JlbGlkID0gR2V0VG9wTW9zdEFuY2VzdG9ySW5Q dWJsaWNhdGlvbihwdWJpZCwgYW5jZXN0b3JzLCBOVUxMKTsKKwkJcHVibGlzaF9hc19yZWxpZCA9 IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViaWQsIGFuY2VzdG9ycywKKwkJCQkJ CQkJCQkJCQkJICAgTlVMTCwgcHViYWxsdGFibGVzKTsKIAogCQlpZiAoIU9pZElzVmFsaWQocHVi bGlzaF9hc19yZWxpZCkpCiAJCQlwdWJsaXNoX2FzX3JlbGlkID0gcmVsaWQ7CkBAIC05MjEsNTIg KzkyOCw1MCBAQCBDcmVhdGVQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVB1 YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAkvKiBNYWtlIHRoZSBjaGFuZ2VzIHZpc2libGUuICovCiAJ Q29tbWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKIAotCS8qIEFzc29jaWF0ZSBvYmplY3RzIHdpdGgg dGhlIHB1YmxpY2F0aW9uLiAqLwotCWlmIChzdG10LT5mb3JfYWxsX3RhYmxlcykKLQl7Ci0JCS8q IEludmFsaWRhdGUgcmVsY2FjaGUgc28gdGhhdCBwdWJsaWNhdGlvbiBpbmZvIGlzIHJlYnVpbHQu ICovCi0JCUNhY2hlSW52YWxpZGF0ZVJlbGNhY2hlQWxsKCk7Ci0JfQotCWVsc2UKLQl7Ci0JCU9i amVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKHN0bXQtPnB1Ym9iamVjdHMsIHBzdGF0ZSwgJnJlbGF0 aW9ucywKLQkJCQkJCQkJICAgJnNjaGVtYWlkbGlzdCk7CisJT2JqZWN0c0luUHVibGljYXRpb25U b09pZHMoc3RtdC0+cHVib2JqZWN0cywgcHN0YXRlLCAmcmVsYXRpb25zLAorCQkJCQkJCSAgICZz Y2hlbWFpZGxpc3QpOwogCi0JCS8qIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHJlcXVpcmVzIHN1cGVy dXNlciAqLwotCQlpZiAoc2NoZW1haWRsaXN0ICE9IE5JTCAmJiAhc3VwZXJ1c2VyKCkpCi0JCQll cmVwb3J0KEVSUk9SLAotCQkJCQllcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVH RSksCi0JCQkJCWVycm1zZygibXVzdCBiZSBzdXBlcnVzZXIgdG8gY3JlYXRlIEZPUiBUQUJMRVMg SU4gU0NIRU1BIHB1YmxpY2F0aW9uIikpOworCS8qIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHJlcXVp cmVzIHN1cGVydXNlciAqLworCWlmIChzY2hlbWFpZGxpc3QgIT0gTklMICYmICFzdXBlcnVzZXIo KSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BS SVZJTEVHRSksCisJCQkJZXJybXNnKCJtdXN0IGJlIHN1cGVydXNlciB0byBjcmVhdGUgRk9SIFRB QkxFUyBJTiBTQ0hFTUEgcHVibGljYXRpb24iKSk7CiAKLQkJaWYgKHJlbGF0aW9ucyAhPSBOSUwp Ci0JCXsKLQkJCUxpc3QJICAgKnJlbHM7CisJaWYgKHJlbGF0aW9ucyAhPSBOSUwpCisJeworCQlM aXN0CSAgICpyZWxzOwogCi0JCQlyZWxzID0gT3BlblRhYmxlTGlzdChyZWxhdGlvbnMpOwotCQkJ VHJhbnNmb3JtUHViV2hlcmVDbGF1c2VzKHJlbHMsIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAotCQkJ CQkJCQkJIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290KTsKKwkJcmVscyA9IE9wZW5UYWJsZUxp c3QocmVsYXRpb25zKTsKKwkJVHJhbnNmb3JtUHViV2hlcmVDbGF1c2VzKHJlbHMsIHBzdGF0ZS0+ cF9zb3VyY2V0ZXh0LAorCQkJCQkJCQkgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QpOwogCi0J CQlDaGVja1B1YlJlbGF0aW9uQ29sdW1uTGlzdChzdG10LT5wdWJuYW1lLCByZWxzLAotCQkJCQkJ CQkJICAgc2NoZW1haWRsaXN0ICE9IE5JTCwKLQkJCQkJCQkJCSAgIHB1Ymxpc2hfdmlhX3BhcnRp dGlvbl9yb290KTsKKwkJQ2hlY2tQdWJSZWxhdGlvbkNvbHVtbkxpc3Qoc3RtdC0+cHVibmFtZSwg cmVscywKKwkJCQkJCQkJICAgc2NoZW1haWRsaXN0ICE9IE5JTCwKKwkJCQkJCQkJICAgcHVibGlz aF92aWFfcGFydGl0aW9uX3Jvb3QpOwogCi0JCQlQdWJsaWNhdGlvbkFkZFRhYmxlcyhwdWJvaWQs IHJlbHMsIHRydWUsIE5VTEwpOwotCQkJQ2xvc2VUYWJsZUxpc3QocmVscyk7Ci0JCX0KKwkJUHVi bGljYXRpb25BZGRUYWJsZXMocHVib2lkLCByZWxzLCB0cnVlLCBOVUxMKTsKKwkJQ2xvc2VUYWJs ZUxpc3QocmVscyk7CisJfQogCi0JCWlmIChzY2hlbWFpZGxpc3QgIT0gTklMKQotCQl7Ci0JCQkv KgotCQkJICogU2NoZW1hIGxvY2sgaXMgaGVsZCB1bnRpbCB0aGUgcHVibGljYXRpb24gaXMgY3Jl YXRlZCB0byBwcmV2ZW50Ci0JCQkgKiBjb25jdXJyZW50IHNjaGVtYSBkZWxldGlvbi4KLQkJCSAq LwotCQkJTG9ja1NjaGVtYUxpc3Qoc2NoZW1haWRsaXN0KTsKLQkJCVB1YmxpY2F0aW9uQWRkU2No ZW1hcyhwdWJvaWQsIHNjaGVtYWlkbGlzdCwgdHJ1ZSwgTlVMTCk7Ci0JCX0KKwlpZiAoc2NoZW1h aWRsaXN0ICE9IE5JTCkKKwl7CisJCS8qCisJCSAqIFNjaGVtYSBsb2NrIGlzIGhlbGQgdW50aWwg dGhlIHB1YmxpY2F0aW9uIGlzIGNyZWF0ZWQgdG8gcHJldmVudAorCQkgKiBjb25jdXJyZW50IHNj aGVtYSBkZWxldGlvbi4KKwkJICovCisJCUxvY2tTY2hlbWFMaXN0KHNjaGVtYWlkbGlzdCk7CisJ CVB1YmxpY2F0aW9uQWRkU2NoZW1hcyhwdWJvaWQsIHNjaGVtYWlkbGlzdCwgdHJ1ZSwgTlVMTCk7 CiAJfQogCiAJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKIAorCS8qIEFzc29j aWF0ZSBvYmplY3RzIHdpdGggdGhlIHB1YmxpY2F0aW9uLiAqLworCWlmIChzdG10LT5mb3JfYWxs X3RhYmxlcykKKwl7CisJCS8qIEludmFsaWRhdGUgcmVsY2FjaGUgc28gdGhhdCBwdWJsaWNhdGlv biBpbmZvIGlzIHJlYnVpbHQuICovCisJCUNhY2hlSW52YWxpZGF0ZVJlbGNhY2hlQWxsKCk7CisJ fQorCiAJSW52b2tlT2JqZWN0UG9zdENyZWF0ZUhvb2soUHVibGljYXRpb25SZWxhdGlvbklkLCBw dWJvaWQsIDApOwogCiAJaWYgKHdhbF9sZXZlbCAhPSBXQUxfTEVWRUxfTE9HSUNBTCkKQEAgLTEy NDYsNiArMTI1MSwyNyBAQCBBbHRlclB1YmxpY2F0aW9uUmVzZXQoUGFyc2VTdGF0ZSAqcHN0YXRl LCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlv bl9wdWJnZW5jb2xzIC0gMV0gPSBDaGFyR2V0RGF0dW0oUFVCX0RFRkFVTFRfR0VOQ09MUyk7CiAJ cmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJnZW5jb2xzIC0gMV0gPSB0cnVlOwogCisJ LyoKKwkgKiBMb2NrIHRoZSBwdWJsaWNhdGlvbiBzbyBub2JvZHkgZWxzZSBjYW4gZG8gYW55dGhp bmcgd2l0aCBpdC4gVGhpcworCSAqIHByZXZlbnRzIGNvbmN1cnJlbnQgcHVibGljYXRpb24gcGFy YW1ldGVyIGNoYW5nZXMsIGFkZC9kcm9wIHRhYmxlcyhzKQorCSAqIHRvIHRoZSBwdWJsaWNhdGlv biBhbmQgYWRkL2Ryb3Agc2NoZW1hKHMpIHRvIHRoZSBwdWJsaWNhdGlvbi4KKwkgKi8KKwlMb2Nr RGF0YWJhc2VPYmplY3QoUHVibGljYXRpb25SZWxhdGlvbklkLCBwdWJpZCwgMCwKKwkJCQkJICAg QWNjZXNzRXhjbHVzaXZlTG9jayk7CisKKwkvKgorCSAqIEl0IGlzIHBvc3NpYmxlIHRoYXQgYnkg dGhlIHRpbWUgd2UgYWNxdWlyZSB0aGUgbG9jayBvbiBwdWJsaWNhdGlvbiwKKwkgKiBjb25jdXJy ZW50IERETCBoYXMgcmVtb3ZlZCBpdC4gV2UgY2FuIHRlc3QgdGhpcyBieSBjaGVja2luZyB0aGUK KwkgKiBleGlzdGVuY2Ugb2YgcHVibGljYXRpb24uIFdlIGdldCB0aGUgdHVwbGUgYWdhaW4gdG8g YXZvaWQgdGhlIHJpc2sgb2YKKwkgKiBhbnkgcHVibGljYXRpb24gb3B0aW9uIGdldHRpbmcgY2hh bmdlZC4KKwkgKi8KKwl0dXAgPSBTZWFyY2hTeXNDYWNoZUNvcHkxKFBVQkxJQ0FUSU9OT0lELCBP YmplY3RJZEdldERhdHVtKHB1YmlkKSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJ CWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAor CQkJCWVycm1zZygicHVibGljYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJICAg c3RtdC0+cHVibmFtZSkpOworCiAJLyogU2V0IEFMTCBUQUJMRVMgZmxhZyB0byBmYWxzZSAqLwog CWlmIChwdWJmb3JtLT5wdWJhbGx0YWJsZXMpCiAJewpAQCAtMTI4NCw2ICsxMzEwLDc5IEBAIEFs dGVyUHVibGljYXRpb25SZXNldChQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25T dG10ICpzdG10LAogCX0KIH0KIAorLyoKKyAqIENoZWNrIGlmIHRoZSBwdWJsaWNhdGlvbiBoYXMg ZGVmYXVsdCB2YWx1ZXMuCisgKgorICogUmV0dXJucyB0cnVlIGlmIHRoZSBwdWJsaWNhdGlvbiBz YXRpc2ZpZXMgYWxsIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqIGEpIFB1YmxpY2F0aW9u IGlzIG5vdCBzZXQgd2l0aCAiRk9SIEFMTCBUQUJMRVMiCisgKiBiKSBQdWJsaWNhdGlvbiBpcyBo YXZpbmcgZGVmYXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzCisgKiBjKSBQdWJsaWNh dGlvbiBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIHNjaGVtYXMKKyAqIGQpIFB1YmxpY2F0aW9uIGlz IG5vdCBhc3NvY2lhdGVkIHdpdGggcmVsYXRpb25zCisgKi8KK3N0YXRpYyBib29sCitDaGVja1B1 YmxpY2F0aW9uRGVmVmFsdWVzKEhlYXBUdXBsZSB0dXApCit7CisJRm9ybV9wZ19wdWJsaWNhdGlv biBwdWJmb3JtID0gKEZvcm1fcGdfcHVibGljYXRpb24pIEdFVFNUUlVDVCh0dXApOworCU9pZAkJ CXB1YmlkID0gcHViZm9ybS0+b2lkOworCUxpc3QJICAgKnB1Ym9ianMgPSBOSUw7CisKKwlpZiAo cHViZm9ybS0+cHViYWxsdGFibGVzICE9IFBVQl9ERUZBVUxUX0FMTF9UQUJMRVMpCisJCXJldHVy biBmYWxzZTsKKworCWlmIChwdWJmb3JtLT5wdWJpbnNlcnQgIT0gUFVCX0RFRkFVTFRfQUNUSU9O X0lOU0VSVCB8fAorCQlwdWJmb3JtLT5wdWJ1cGRhdGUgIT0gUFVCX0RFRkFVTFRfQUNUSU9OX1VQ REFURSB8fAorCQlwdWJmb3JtLT5wdWJkZWxldGUgIT0gUFVCX0RFRkFVTFRfQUNUSU9OX0RFTEVU RSB8fAorCQlwdWJmb3JtLT5wdWJ0cnVuY2F0ZSAhPSBQVUJfREVGQVVMVF9BQ1RJT05fVFJVTkNB VEUgfHwKKwkJcHViZm9ybS0+cHVidmlhcm9vdCAhPSBQVUJfREVGQVVMVF9WSUFfUk9PVCkKKwkJ cmV0dXJuIGZhbHNlOworCisJcHVib2JqcyA9IEdldFB1YmxpY2F0aW9uU2NoZW1hcyhwdWJpZCk7 CisJaWYgKGxpc3RfbGVuZ3RoKHB1Ym9ianMpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlwdWJvYmpz ID0gR2V0UHVibGljYXRpb25SZWxhdGlvbnMocHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7 CisJaWYgKGxpc3RfbGVuZ3RoKHB1Ym9ianMpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlyZXR1cm4g dHJ1ZTsKK30KKworLyoKKyAqIFNldCBwdWJsaWNhdGlvbiB0byBwdWJsaXNoIGFsbCB0YWJsZXMu CisgKi8KK3N0YXRpYyB2b2lkCitBbHRlclB1YmxpY2F0aW9uU2V0QWxsVGFibGVzKFJlbGF0aW9u IHJlbCwgSGVhcFR1cGxlIHR1cCkKK3sKKwlGb3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZvcm0gUEdf VVNFRF9GT1JfQVNTRVJUU19PTkxZID0gKEZvcm1fcGdfcHVibGljYXRpb24pIEdFVFNUUlVDVCh0 dXApOworCWJvb2wJCW51bGxzW05hdHRzX3BnX3B1YmxpY2F0aW9uXTsKKwlib29sCQlyZXBsYWNl c1tOYXR0c19wZ19wdWJsaWNhdGlvbl07CisJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19wdWJsaWNh dGlvbl07CisKKyNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCisJQXNzZXJ0KCFwdWJmb3JtLT5w dWJhbGx0YWJsZXMpOworI2VuZGlmCisKKwkvKiBBZGQgQUxMIFRBQkxFUyB0byB0aGUgcHVibGlj YXRpb24gcmVxdWlyZXMgc3VwZXJ1c2VyICovCisJaWYgKCFzdXBlcnVzZXIoKSkKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJ CQkJZXJybXNnKCJtdXN0IGJlIHN1cGVydXNlciB0byBBREQgQUxMIFRBQkxFUyB0byB0aGUgcHVi bGljYXRpb24iKSk7CisKKwltZW1zZXQodmFsdWVzLCAwLCBzaXplb2YodmFsdWVzKSk7CisJbWVt c2V0KG51bGxzLCBmYWxzZSwgc2l6ZW9mKG51bGxzKSk7CisJbWVtc2V0KHJlcGxhY2VzLCBmYWxz ZSwgc2l6ZW9mKHJlcGxhY2VzKSk7CisKKwkvKiBTZXQgQUxMIFRBQkxFUyBmbGFnICovCisJdmFs dWVzW0FudW1fcGdfcHVibGljYXRpb25fcHViYWxsdGFibGVzIC0gMV0gPSBCb29sR2V0RGF0dW0o dHJ1ZSk7CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJhbGx0YWJsZXMgLSAxXSA9 IHRydWU7CisKKwl0dXAgPSBoZWFwX21vZGlmeV90dXBsZSh0dXAsIFJlbGF0aW9uR2V0RGVzY3Io cmVsKSwgdmFsdWVzLCBudWxscywKKwkJCQkJCQlyZXBsYWNlcyk7CisKKwkvKiBVcGRhdGUgdGhl IGNhdGFsb2cuICovCisJQ2F0YWxvZ1R1cGxlVXBkYXRlKHJlbCwgJnR1cC0+dF9zZWxmLCB0dXAp OworfQorCiAvKgogICogQWRkIG9yIHJlbW92ZSB0YWJsZSB0by9mcm9tIHB1YmxpY2F0aW9uLgog ICovCkBAIC0xNTk2LDYgKzE2OTUsMjAgQEAgQWx0ZXJQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpw c3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10KQogCQlhY2xjaGVja19lcnJvcihBQ0xD SEVDS19OT1RfT1dORVIsIE9CSkVDVF9QVUJMSUNBVElPTiwKIAkJCQkJICAgc3RtdC0+cHVibmFt ZSk7CiAKKwlpZiAoc3RtdC0+Zm9yX2FsbF90YWJsZXMpCisJeworCQlib29sCQlpc2RlZmF1bHQg PSBDaGVja1B1YmxpY2F0aW9uRGVmVmFsdWVzKHR1cCk7CisKKwkJaWYgKCFpc2RlZmF1bHQpCisJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVG SU5JVElPTiksCisJCQkJCWVycm1zZygiYWRkaW5nIEFMTCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1 YmxpY2F0aW9uIHRvIGhhdmUgZGVmYXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzIiks CisJCQkJCWVycmRldGFpbCgiQUxMIFRBQkxFUyBmbGFnIHNob3VsZCBub3QgYmUgc2V0IGFuZCBu byB0YWJsZXMvc2NoZW1hcyBzaG91bGQgYmUgYXNzb2NpYXRlZC4iKSwKKwkJCQkJZXJyaGludCgi VXNlIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVCB0byByZXNldCB0aGUgcHVibGljYXRpb24i KSk7CisKKwkJQWx0ZXJQdWJsaWNhdGlvblNldEFsbFRhYmxlcyhyZWwsIHR1cCk7CisJfQorCiAJ aWYgKHN0bXQtPm9wdGlvbnMpCiAJCUFsdGVyUHVibGljYXRpb25PcHRpb25zKHBzdGF0ZSwgc3Rt dCwgcmVsLCB0dXApOwogCWVsc2UgaWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9SZXNldFB1YmxpY2F0 aW9uKQpAQCAtMTgwOCw2ICsxOTIxLDcgQEAgT3BlblRhYmxlTGlzdChMaXN0ICp0YWJsZXMpCiAJ CXB1Yl9yZWwtPnJlbGF0aW9uID0gcmVsOwogCQlwdWJfcmVsLT53aGVyZUNsYXVzZSA9IHQtPndo ZXJlQ2xhdXNlOwogCQlwdWJfcmVsLT5jb2x1bW5zID0gdC0+Y29sdW1uczsKKwkJcHViX3JlbC0+ ZXhjZXB0ID0gdC0+ZXhjZXB0OwogCQlyZWxzID0gbGFwcGVuZChyZWxzLCBwdWJfcmVsKTsKIAkJ cmVsaWRzID0gbGFwcGVuZF9vaWQocmVsaWRzLCBteXJlbGlkKTsKIApAQCAtMTg4MCw2ICsxOTk0 LDcgQEAgT3BlblRhYmxlTGlzdChMaXN0ICp0YWJsZXMpCiAKIAkJCQkvKiBjaGlsZCBpbmhlcml0 cyBjb2x1bW4gbGlzdCBmcm9tIHBhcmVudCAqLwogCQkJCXB1Yl9yZWwtPmNvbHVtbnMgPSB0LT5j b2x1bW5zOworCQkJCXB1Yl9yZWwtPmV4Y2VwdCA9IHQtPmV4Y2VwdDsKIAkJCQlyZWxzID0gbGFw cGVuZChyZWxzLCBwdWJfcmVsKTsKIAkJCQlyZWxpZHMgPSBsYXBwZW5kX29pZChyZWxpZHMsIGNo aWxkcmVsaWQpOwogCkBAIC0xOTU1LDggKzIwNzAsNiBAQCBQdWJsaWNhdGlvbkFkZFRhYmxlcyhP aWQgcHViaWQsIExpc3QgKnJlbHMsIGJvb2wgaWZfbm90X2V4aXN0cywKIHsKIAlMaXN0Q2VsbCAg ICpsYzsKIAotCUFzc2VydCghc3RtdCB8fCAhc3RtdC0+Zm9yX2FsbF90YWJsZXMpOwotCiAJZm9y ZWFjaChsYywgcmVscykKIAl7CiAJCVB1YmxpY2F0aW9uUmVsSW5mbyAqcHViX3JlbCA9IChQdWJs aWNhdGlvblJlbEluZm8gKikgbGZpcnN0KGxjKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5k ZXggZWE5Njk0N2Q4MTMuLjhhODI2OGEwNWQyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21t YW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpA QCAtODYyNCw3ICs4NjI0LDcgQEAgQVRFeGVjU2V0RXhwcmVzc2lvbihBbHRlcmVkVGFibGVJbmZv ICp0YWIsIFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAqY29sTmFtZSwKIAkgKiBleHByZXNzaW9u cy4KIAkgKi8KIAlpZiAoYXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVB TCAmJgotCQlHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhSZWxhdGlvbkdldFJlbGlkKHJlbCkpICE9 IE5JTCkKKwkJR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoUmVsYXRpb25HZXRSZWxpZChyZWwpLCBm YWxzZSkgIT0gTklMKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfRkVB VFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkgZXJybXNnKCJBTFRFUiBUQUJMRSAvIFNFVCBFWFBS RVNTSU9OIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgb24g dGFibGVzIHRoYXQgYXJlIHBhcnQgb2YgYSBwdWJsaWNhdGlvbiIpLApAQCAtMTg3OTQsNyArMTg3 OTQsNyBAQCBBVFByZXBDaGFuZ2VQZXJzaXN0ZW5jZShBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJl bGF0aW9uIHJlbCwgYm9vbCB0b0xvZ2dlZCkKIAkgKiBVTkxPR0dFRCwgYXMgVU5MT0dHRUQgdGFi bGVzIGNhbid0IGJlIHB1Ymxpc2hlZC4KIAkgKi8KIAlpZiAoIXRvTG9nZ2VkICYmCi0JCUdldFJl bGF0aW9uUHVibGljYXRpb25zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSkgIT0gTklMKQorCQlsaXN0 X2xlbmd0aChHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhSZWxhdGlvbkdldFJlbGlkKHJlbCksIGZh bHNlKSkgPiAwKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNU X05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAogCQkJCSBlcnJtc2coImNhbm5vdCBjaGFuZ2Ug dGFibGUgXCIlc1wiIHRvIHVubG9nZ2VkIGJlY2F1c2UgaXQgaXMgcGFydCBvZiBhIHB1YmxpY2F0 aW9uIiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CmluZGV4IDk1MmU4ZTEwM2NmLi44OWFjMDQ5NWNlOCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CkBAIC00NDYsNyArNDQ2LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2Vs ZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJCQl0cmFu c2Zvcm1fZWxlbWVudF9saXN0IHRyYW5zZm9ybV90eXBlX2xpc3QKIAkJCQlUcmlnZ2VyVHJhbnNp dGlvbnMgVHJpZ2dlclJlZmVyZW5jaW5nCiAJCQkJdmFjdXVtX3JlbGF0aW9uX2xpc3Qgb3B0X3Zh Y3V1bV9yZWxhdGlvbl9saXN0Ci0JCQkJZHJvcF9vcHRpb25fbGlzdCBwdWJfb2JqX2xpc3QKKwkJ CQlkcm9wX29wdGlvbl9saXN0IHB1Yl9vYmpfbGlzdCBleGNlcHRfcHViX29ial9saXN0CiAKICV0 eXBlIDxyZXRjbGF1c2U+IHJldHVybmluZ19jbGF1c2UKICV0eXBlIDxub2RlPglyZXR1cm5pbmdf b3B0aW9uCkBAIC01ODUsNiArNTg1LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3 U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBl IDxub2RlPgl2YXJfdmFsdWUgem9uZV92YWx1ZQogJXR5cGUgPHJvbGVzcGVjPiBhdXRoX2lkZW50 IFJvbGVTcGVjIG9wdF9ncmFudGVkX2J5CiAldHlwZSA8cHVibGljYXRpb25vYmplY3RzcGVjPiBQ dWJsaWNhdGlvbk9ialNwZWMKKyV0eXBlIDxwdWJsaWNhdGlvbm9iamVjdHNwZWM+IEV4Y2VwdFB1 YmxpY2F0aW9uT2JqU3BlYwogCiAldHlwZSA8a2V5d29yZD4gdW5yZXNlcnZlZF9rZXl3b3JkIHR5 cGVfZnVuY19uYW1lX2tleXdvcmQKICV0eXBlIDxrZXl3b3JkPiBjb2xfbmFtZV9rZXl3b3JkIHJl c2VydmVkX2tleXdvcmQKQEAgLTEwNjE0LDcgKzEwNjE1LDcgQEAgQWx0ZXJPd25lclN0bXQ6IEFM VEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0eXBlcyBPV05FUiBUTyBSb2xlU3BlYwog ICoKICAqIENSRUFURSBQVUJMSUNBVElPTiBuYW1lIFtXSVRIIG9wdGlvbnNdCiAgKgotICogQ1JF QVRFIFBVQkxJQ0FUSU9OIEZPUiBBTEwgVEFCTEVTIFtXSVRIIG9wdGlvbnNdCisgKiBDUkVBVEUg UFVCTElDQVRJT04gRk9SIEFMTCBUQUJMRVMgW0VYQ0VQVCBbVEFCTEVdIHRhYmxlIFssIC4uLl1d IFtXSVRIIG9wdGlvbnNdCiAgKgogICogQ1JFQVRFIFBVQkxJQ0FUSU9OIEZPUiBwdWJfb2JqIFss IC4uLl0gW1dJVEggb3B0aW9uc10KICAqCkBAIC0xMDYzNCwxMiArMTA2MzUsMTMgQEAgQ3JlYXRl UHVibGljYXRpb25TdG10OgogCQkJCQluLT5vcHRpb25zID0gJDQ7CiAJCQkJCSQkID0gKE5vZGUg KikgbjsKIAkJCQl9Ci0JCQl8IENSRUFURSBQVUJMSUNBVElPTiBuYW1lIEZPUiBBTEwgVEFCTEVT IG9wdF9kZWZpbml0aW9uCisJCQl8IENSRUFURSBQVUJMSUNBVElPTiBuYW1lIEZPUiBBTEwgVEFC TEVTIGV4Y2VwdF9wdWJfb2JqX2xpc3Qgb3B0X2RlZmluaXRpb24KIAkJCQl7CiAJCQkJCUNyZWF0 ZVB1YmxpY2F0aW9uU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVB1YmxpY2F0aW9uU3RtdCk7CiAK IAkJCQkJbi0+cHVibmFtZSA9ICQzOwotCQkJCQluLT5vcHRpb25zID0gJDc7CisJCQkJCW4tPm9w dGlvbnMgPSAkODsKKwkJCQkJbi0+cHVib2JqZWN0cyA9IChMaXN0ICopJDc7CiAJCQkJCW4tPmZv cl9hbGxfdGFibGVzID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KQEAgLTEw Njc3LDYgKzEwNjc5LDcgQEAgUHVibGljYXRpb25PYmpTcGVjOgogCQkJCQkkJC0+cHVidGFibGUt PnJlbGF0aW9uID0gJDI7CiAJCQkJCSQkLT5wdWJ0YWJsZS0+Y29sdW1ucyA9ICQzOwogCQkJCQkk JC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDQ7CisJCQkJCSQkLT5sb2NhdGlvbiA9IEAxOwog CQkJCX0KIAkJCXwgVEFCTEVTIElOX1AgU0NIRU1BIENvbElkCiAJCQkJewpAQCAtMTA3NTIsNiAr MTA3NTUsMjUgQEAgcHViX29ial9saXN0OglQdWJsaWNhdGlvbk9ialNwZWMKIAkJCQkJeyAkJCA9 IGxhcHBlbmQoJDEsICQzKTsgfQogCTsKIAorRXhjZXB0UHVibGljYXRpb25PYmpTcGVjOgorCQkJ IHJlbGF0aW9uX2V4cHIKKwkJCQl7CisJCQkJCSQkID0gbWFrZU5vZGUoUHVibGljYXRpb25PYmpT cGVjKTsKKwkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9CSl9FWENFUFRfVEFCTEU7 CisJCQkJCSQkLT5wdWJ0YWJsZSA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uVGFibGUpOworCQkJCQkk JC0+cHVidGFibGUtPmV4Y2VwdCA9IHRydWU7CisJCQkJCSQkLT5wdWJ0YWJsZS0+cmVsYXRpb24g PSAkMTsKKwkJCQkJJCQtPmxvY2F0aW9uID0gQDE7CisJCQkJfQorCTsKKworZXhjZXB0X3B1Yl9v YmpfbGlzdDoJRVhDRVBUIG9wdF90YWJsZSBFeGNlcHRQdWJsaWNhdGlvbk9ialNwZWMKKwkJCQkJ eyAkJCA9IGxpc3RfbWFrZTEoJDMpOyB9CisJCQl8IGV4Y2VwdF9wdWJfb2JqX2xpc3QgJywnIEV4 Y2VwdFB1YmxpY2F0aW9uT2JqU3BlYworCQkJCQl7ICQkID0gbGFwcGVuZCgkMSwgJDMpOyB9CisJ CQl8ICAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBOVUxMOyB9CisJOworCiAvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKICAqCiAgKiBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIFNFVCAoIG9wdGlvbnMgKQpA QCAtMTA3NjQsNiArMTA3ODYsOCBAQCBwdWJfb2JqX2xpc3Q6CVB1YmxpY2F0aW9uT2JqU3BlYwog ICoKICAqIEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUgUkVTRVQKICAqCisgKiBBTFRFUiBQVUJMSUNB VElPTiBuYW1lIEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBbVEFCTEVdIHRhYmxlX25hbWUgWywgLi4u XQorICoKICAqIHB1Yl9vYmogaXMgb25lIG9mOgogICoKICAqCQlUQUJMRSB0YWJsZV9uYW1lIFss IC4uLl0KQEAgLTEwNzkwLDYgKzEwODE0LDE1IEBAIEFsdGVyUHVibGljYXRpb25TdG10OgogCQkJ CQluLT5hY3Rpb24gPSBBUF9BZGRPYmplY3RzOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJ fQorCQkJfCBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIEFERF9QIEFMTCBUQUJMRVMgZXhjZXB0X3B1 Yl9vYmpfbGlzdAorCQkJCXsKKwkJCQkJQWx0ZXJQdWJsaWNhdGlvblN0bXQgKm4gPSBtYWtlTm9k ZShBbHRlclB1YmxpY2F0aW9uU3RtdCk7CisJCQkJCW4tPnB1Ym5hbWUgPSAkMzsKKwkJCQkJbi0+ cHVib2JqZWN0cyA9ICQ3OworCQkJCQluLT5mb3JfYWxsX3RhYmxlcyA9IHRydWU7CisJCQkJCW4t PmFjdGlvbiA9IEFQX0FkZE9iamVjdHM7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KIAkJ CXwgQUxURVIgUFVCTElDQVRJT04gbmFtZSBTRVQgcHViX29ial9saXN0CiAJCQkJewogCQkJCQlB bHRlclB1YmxpY2F0aW9uU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyUHVibGljYXRpb25TdG10KTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCmluZGV4IDY5M2E3 NjZlNmQ3Li41NTEyYjRjYmE3ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v cGdvdXRwdXQvcGdvdXRwdXQuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1 dC9wZ291dHB1dC5jCkBAIC0yMDYzLDcgKzIwNjMsOCBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdP dXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAlpZiAoIWVudHJ5LT5yZXBsaWNh dGVfdmFsaWQpCiAJewogCQlPaWQJCQlzY2hlbWFJZCA9IGdldF9yZWxfbmFtZXNwYWNlKHJlbGlk KTsKLQkJTGlzdAkgICAqcHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMocmVsaWQpOwor CQlMaXN0CSAgICpwdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCwgZmFsc2Up OworCQlMaXN0CSAgICpleGNlcHRUYWJsZVB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25z KHJlbGlkLCB0cnVlKTsKIAogCQkvKgogCQkgKiBXZSBkb24ndCBhY3F1aXJlIGEgbG9jayBvbiB0 aGUgbmFtZXNwYWNlIHN5c3RlbSB0YWJsZSBhcyB3ZSBidWlsZApAQCAtMjE3NCwyMiArMjE3NSw2 IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0 aW9uKQogCQkJT2lkCQkJcHViX3JlbGlkID0gcmVsaWQ7CiAJCQlpbnQJCQlhbmNlc3Rvcl9sZXZl bCA9IDA7CiAKLQkJCS8qCi0JCQkgKiBJZiB0aGlzIGlzIGEgRk9SIEFMTCBUQUJMRVMgcHVibGlj YXRpb24sIHBpY2sgdGhlIHBhcnRpdGlvbgotCQkJICogcm9vdCBhbmQgc2V0IHRoZSBhbmNlc3Rv ciBsZXZlbCBhY2NvcmRpbmdseS4KLQkJCSAqLwotCQkJaWYgKHB1Yi0+YWxsdGFibGVzKQotCQkJ ewotCQkJCXB1Ymxpc2ggPSB0cnVlOwotCQkJCWlmIChwdWItPnB1YnZpYXJvb3QgJiYgYW1fcGFy dGl0aW9uKQotCQkJCXsKLQkJCQkJTGlzdAkgICAqYW5jZXN0b3JzID0gZ2V0X3BhcnRpdGlvbl9h bmNlc3RvcnMocmVsaWQpOwotCi0JCQkJCXB1Yl9yZWxpZCA9IGxsYXN0X29pZChhbmNlc3RvcnMp OwotCQkJCQlhbmNlc3Rvcl9sZXZlbCA9IGxpc3RfbGVuZ3RoKGFuY2VzdG9ycyk7Ci0JCQkJfQot CQkJfQotCiAJCQlpZiAoIXB1Ymxpc2gpCiAJCQl7CiAJCQkJYm9vbAkJYW5jZXN0b3JfcHVibGlz aGVkID0gZmFsc2U7CkBAIC0yMjA4LDcgKzIxOTMsOCBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdP dXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAogCQkJCQlhbmNlc3RvciA9IEdl dFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViLT5vaWQsCiAJCQkJCQkJCQkJCQkJCQkg ICBhbmNlc3RvcnMsCi0JCQkJCQkJCQkJCQkJCQkgICAmbGV2ZWwpOworCQkJCQkJCQkJCQkJCQkJ ICAgJmxldmVsLAorCQkJCQkJCQkJCQkJCQkJICAgcHViLT5hbGx0YWJsZXMpOwogCiAJCQkJCWlm IChhbmNlc3RvciAhPSBJbnZhbGlkT2lkKQogCQkJCQl7CkBAIC0yMjIzLDYgKzIyMDksOCBAQCBn ZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikK IAogCQkJCWlmIChsaXN0X21lbWJlcl9vaWQocHViaWRzLCBwdWItPm9pZCkgfHwKIAkJCQkJbGlz dF9tZW1iZXJfb2lkKHNjaGVtYVB1YmlkcywgcHViLT5vaWQpIHx8CisJCQkJCShwdWItPmFsbHRh YmxlcyAmJgorCQkJCQkgIWxpc3RfbWVtYmVyX29pZChleGNlcHRUYWJsZVB1YmlkcywgcHViLT5v aWQpKSB8fAogCQkJCQlhbmNlc3Rvcl9wdWJsaXNoZWQpCiAJCQkJCXB1Ymxpc2ggPSB0cnVlOwog CQkJfQpAQCAtMjMwMSw2ICsyMjg5LDcgQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0 YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAKIAkJbGlzdF9mcmVlKHB1Ymlkcyk7CiAJCWxp c3RfZnJlZShzY2hlbWFQdWJpZHMpOworCQlsaXN0X2ZyZWUoZXhjZXB0VGFibGVQdWJpZHMpOwog CQlsaXN0X2ZyZWUocmVsX3B1YmxpY2F0aW9ucyk7CiAKIAkJZW50cnktPnJlcGxpY2F0ZV92YWxp ZCA9IHRydWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYwppbmRleCA1NTliYTljZGIyYy4u YmZmZGFiMmFiNjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hl LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYwpAQCAtNTc5NCw2ICs1 Nzk0LDggQEAgdm9pZAogUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxh dGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogewogCUxpc3QJICAgKnB1Ym9pZHM7CisJ TGlzdAkgICAqYWxsdGFibGVzcHVib2lkczsKKwlMaXN0CSAgICpleGNlcHRwdWJvaWRzID0gTklM OwogCUxpc3RDZWxsICAgKmxjOwogCU1lbW9yeUNvbnRleHQgb2xkY3h0OwogCU9pZAkJCXNjaGVt YWlkOwpAQCAtNTgzMSw3ICs1ODMzLDcgQEAgUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhS ZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogCXB1YmRlc2MtPmdl bmNvbHNfdmFsaWRfZm9yX2RlbGV0ZSA9IHRydWU7CiAKIAkvKiBGZXRjaCB0aGUgcHVibGljYXRp b24gbWVtYmVyc2hpcCBpbmZvLiAqLwotCXB1Ym9pZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9u cyhyZWxpZCk7CisJcHVib2lkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKHJlbGlkLCBmYWxz ZSk7CiAJc2NoZW1haWQgPSBSZWxhdGlvbkdldE5hbWVzcGFjZShyZWxhdGlvbik7CiAJcHVib2lk cyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywgR2V0U2NoZW1hUHVibGljYXRpb25z KHNjaGVtYWlkKSk7CiAKQEAgLTU4NDUsMTQgKzU4NDcsMTkgQEAgUmVsYXRpb25CdWlsZFB1Ymxp Y2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQog CQkJT2lkCQkJYW5jZXN0b3IgPSBsZmlyc3Rfb2lkKGxjKTsKIAogCQkJcHVib2lkcyA9IGxpc3Rf Y29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywKLQkJCQkJCQkJCQkJIEdldFJlbGF0aW9uUHVibGlj YXRpb25zKGFuY2VzdG9yKSk7CisJCQkJCQkJCQkJCSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhh bmNlc3RvciwgZmFsc2UpKTsKIAkJCXNjaGVtYWlkID0gZ2V0X3JlbF9uYW1lc3BhY2UoYW5jZXN0 b3IpOwogCQkJcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywKIAkJCQkJ CQkJCQkJIEdldFNjaGVtYVB1YmxpY2F0aW9ucyhzY2hlbWFpZCkpOworCQkJZXhjZXB0cHVib2lk cyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQoZXhjZXB0cHVib2lkcywKKwkJCQkJCQkJCQkJCSAg IEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yLCB0cnVlKSk7CiAJCX0KIAl9Ci0JcHVi b2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywgR2V0QWxsVGFibGVzUHVibGlj YXRpb25zKCkpOwogCisJYWxsdGFibGVzcHVib2lkcyA9IEdldEFsbFRhYmxlc1B1YmxpY2F0aW9u cygpOworCXB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsCisJCQkJCQkJ CQkgbGlzdF9kaWZmZXJlbmNlX29pZChhbGx0YWJsZXNwdWJvaWRzLAorCQkJCQkJCQkJCQkJCQkg ZXhjZXB0cHVib2lkcykpOwogCWZvcmVhY2gobGMsIHB1Ym9pZHMpCiAJewogCQlPaWQJCQlwdWJp ZCA9IGxmaXJzdF9vaWQobGMpOwpAQCAtNTg4Myw3ICs1ODkwLDcgQEAgUmVsYXRpb25CdWlsZFB1 YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNj KQogCQlpZiAoIXB1YmZvcm0tPnB1YmFsbHRhYmxlcyAmJgogCQkJKHB1YmZvcm0tPnB1YnVwZGF0 ZSB8fCBwdWJmb3JtLT5wdWJkZWxldGUpICYmCiAJCQlwdWJfcmZfY29udGFpbnNfaW52YWxpZF9j b2x1bW4ocHViaWQsIHJlbGF0aW9uLCBhbmNlc3RvcnMsCi0JCQkJCQkJCQkJICAgcHViZm9ybS0+ cHVidmlhcm9vdCkpCisJCQkJCQkJCQkJICAgcHViZm9ybS0+cHVidmlhcm9vdCwgcHViZm9ybS0+ cHViYWxsdGFibGVzKSkKIAkJewogCQkJaWYgKHB1YmZvcm0tPnB1YnVwZGF0ZSkKIAkJCQlwdWJk ZXNjLT5yZl92YWxpZF9mb3JfdXBkYXRlID0gZmFsc2U7CkBAIC01OTAxLDYgKzU5MDgsNyBAQCBS ZWxhdGlvbkJ1aWxkUHVibGljYXRpb25EZXNjKFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJsaWNhdGlv bkRlc2MgKnB1YmRlc2MpCiAJCQlwdWJfY29udGFpbnNfaW52YWxpZF9jb2x1bW4ocHViaWQsIHJl bGF0aW9uLCBhbmNlc3RvcnMsCiAJCQkJCQkJCQkJcHViZm9ybS0+cHVidmlhcm9vdCwKIAkJCQkJ CQkJCQlwdWJmb3JtLT5wdWJnZW5jb2xzLAorCQkJCQkJCQkJCXB1YmZvcm0tPnB1YmFsbHRhYmxl cywKIAkJCQkJCQkJCQkmaW52YWxpZF9jb2x1bW5fbGlzdCwKIAkJCQkJCQkJCQkmaW52YWxpZF9n ZW5fY29sKSkKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggMzc0MzJlNjZlZmQuLjkyZGI1Y2E4ZDk3IDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmMKQEAgLTE4Myw2ICsxODMsOCBAQCBzdGF0aWMgU2ltcGxlT2lkTGlzdCBleHRl bnNpb25faW5jbHVkZV9vaWRzID0ge05VTEwsIE5VTEx9Owogc3RhdGljIFNpbXBsZVN0cmluZ0xp c3QgZXh0ZW5zaW9uX2V4Y2x1ZGVfcGF0dGVybnMgPSB7TlVMTCwgTlVMTH07CiBzdGF0aWMgU2lt cGxlT2lkTGlzdCBleHRlbnNpb25fZXhjbHVkZV9vaWRzID0ge05VTEwsIE5VTEx9OwogCitzdGF0 aWMgU2ltcGxlUHRyTGlzdCBleGNlcHRpbmZvID0ge05VTEwsIE5VTEx9OworCiBzdGF0aWMgY29u c3QgQ2F0YWxvZ0lkIG5pbENhdGFsb2dJZCA9IHswLCAwfTsKIAogLyogb3ZlcnJpZGUgZm9yIHN0 YW5kYXJkIGV4dHJhX2Zsb2F0X2RpZ2l0cyBzZXR0aW5nICovCkBAIC00NTEwLDggKzQ1MTIsMzQg QEAgZHVtcFB1YmxpY2F0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9uSW5mbyAq cHViaW5mbykKIAkJCQkJICBxcHVibmFtZSk7CiAKIAlpZiAocHViaW5mby0+cHViYWxsdGFibGVz KQorCXsKKwkJU2ltcGxlUHRyTGlzdENlbGwgKmNlbGw7CisKIAkJYXBwZW5kUFFFeHBCdWZmZXJT dHIocXVlcnksICIgRk9SIEFMTCBUQUJMRVMiKTsKIAorCQkvKiBJbmNsdWRlIGV4Y2VwdGlvbiB0 YWJsZXMgaWYgdGhlIHB1YmxpY2F0aW9uIGhhcyBleGNlcHQgdGFibGVzICovCisJCWZvciAoY2Vs bCA9IGV4Y2VwdGluZm8uaGVhZDsgY2VsbDsgY2VsbCA9IGNlbGwtPm5leHQpCisJCXsKKwkJCVB1 YmxpY2F0aW9uUmVsSW5mbyAqcHVicmluZm8gPSAoUHVibGljYXRpb25SZWxJbmZvICopIGNlbGwt PnB0cjsKKwkJCVRhYmxlSW5mbyAgKnRiaW5mbzsKKworCQkJaWYgKHB1YmluZm8gPT0gcHVicmlu Zm8tPnB1YmxpY2F0aW9uKQorCQkJeworCQkJCXRiaW5mbyA9IHB1YnJpbmZvLT5wdWJ0YWJsZTsK KworCQkJCWlmIChmaXJzdCkKKwkJCQl7CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5 LCAiIEVYQ0VQVCBUQUJMRSIpOworCQkJCQlmaXJzdCA9IGZhbHNlOworCQkJCX0KKwkJCQllbHNl CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiLCIpOworCQkJCWFwcGVuZFBRRXhw QnVmZmVyKHF1ZXJ5LCAiIE9OTFkgJXMiLCBmbXRRdWFsaWZpZWREdW1wYWJsZSh0YmluZm8pKTsK KwkJCX0KKwkJfQorCX0KKworCWZpcnN0ID0gdHJ1ZTsKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cihx dWVyeSwgIiBXSVRIIChwdWJsaXNoID0gJyIpOwogCWlmIChwdWJpbmZvLT5wdWJpbnNlcnQpCiAJ ewpAQCAtNDY3Nyw2ICs0NzA1LDcgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91 dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAlpbnQJCQlpX3BycmVsaWQ7 CiAJaW50CQkJaV9wcnJlbHF1YWw7CiAJaW50CQkJaV9wcmF0dHJzOworCWludAkJCWlfcHJleGNl cHQ7CiAJaW50CQkJaSwKIAkJCQlqLAogCQkJCW50dXBzOwpAQCAtNDY4OCw4ICs0NzE3LDE3IEBA IGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10s IGludCBudW1UYWJsZXMpCiAKIAkvKiBDb2xsZWN0IGFsbCBwdWJsaWNhdGlvbiBtZW1iZXJzaGlw IGluZm8uICovCiAJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTUwMDAwKQorCXsKKwkJYXBw ZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCisJCQkJCQkJICJTRUxFQ1QgdGFibGVvaWQsIG9pZCwg cHJwdWJpZCwgcHJyZWxpZCxcbiIpOworCisJCS8qIEZJWE1FOiAxODAwMDAgc2hvdWxkIGJlIGNo YW5nZWQgdG8gMTkwMDAwIGxhdGVyIGZvciBQRzE5LiAqLworCQlpZiAoZm91dC0+cmVtb3RlVmVy c2lvbiA+PSAxODAwMDApCisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBwcmV4Y2Vw dCxcbiIpOworCQllbHNlCisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBmYWxzZSBB UyBwcmV4Y2VwdCxcbiIpOworCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAotCQkJCQkJ CSAiU0VMRUNUIHRhYmxlb2lkLCBvaWQsIHBycHViaWQsIHBycmVsaWQsICIKIAkJCQkJCQkgInBn X2NhdGFsb2cucGdfZ2V0X2V4cHIocHJxdWFsLCBwcnJlbGlkKSBBUyBwcnJlbHF1YWwsICIKIAkJ CQkJCQkgIihDQVNFXG4iCiAJCQkJCQkJICIgIFdIRU4gcHIucHJhdHRycyBJUyBOT1QgTlVMTCBU SEVOXG4iCkBAIC00NzAwLDYgKzQ3MzgsNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZl ICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCQkJCQkJCSAiICAg ICAgV0hFUkUgYXR0cmVsaWQgPSBwci5wcnJlbGlkIEFORCBhdHRudW0gPSBwcmF0dHJzW3NdKVxu IgogCQkJCQkJCSAiICBFTFNFIE5VTEwgRU5EKSBwcmF0dHJzICIKIAkJCQkJCQkgIkZST00gcGdf Y2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIiKTsKKwl9CiAJZWxzZQogCQlhcHBlbmRQUUV4 cEJ1ZmZlclN0cihxdWVyeSwKIAkJCQkJCQkgIlNFTEVDVCB0YWJsZW9pZCwgb2lkLCBwcnB1Ymlk LCBwcnJlbGlkLCAiCkBAIC00NzE1LDYgKzQ3NTQsNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhB cmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCWlfcHJy ZWxpZCA9IFBRZm51bWJlcihyZXMsICJwcnJlbGlkIik7CiAJaV9wcnJlbHF1YWwgPSBQUWZudW1i ZXIocmVzLCAicHJyZWxxdWFsIik7CiAJaV9wcmF0dHJzID0gUFFmbnVtYmVyKHJlcywgInByYXR0 cnMiKTsKKwlpX3ByZXhjZXB0ID0gUFFmbnVtYmVyKHJlcywgInByZXhjZXB0Iik7CiAKIAkvKiB0 aGlzIGFsbG9jYXRpb24gbWF5IGJlIG1vcmUgdGhhbiB3ZSBuZWVkICovCiAJcHVicmluZm8gPSBw Z19tYWxsb2MobnR1cHMgKiBzaXplb2YoUHVibGljYXRpb25SZWxJbmZvKSk7CkBAIC00NzI2LDYg KzQ3NjYsNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8g dGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCQlPaWQJCQlwcnJlbGlkID0gYXRvb2lkKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX3BycmVsaWQpKTsKIAkJUHVibGljYXRpb25JbmZvICpwdWJpbmZvOwog CQlUYWJsZUluZm8gICp0YmluZm87CisJCWNoYXIJICAgKnByZXhjZXB0ID0gcGdfc3RyZHVwKFBR Z2V0dmFsdWUocmVzLCBpLCBpX3ByZXhjZXB0KSk7CiAKIAkJLyoKIAkJICogSWdub3JlIGFueSBl bnRyaWVzIGZvciB3aGljaCB3ZSBhcmVuJ3QgaW50ZXJlc3RlZCBpbiBlaXRoZXIgdGhlCkBAIC00 NzM5LDcgKzQ3ODAsMTEgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFi bGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAkJCWNvbnRpbnVlOwogCiAJCS8qIE9L LCBtYWtlIGEgRHVtcGFibGVPYmplY3QgZm9yIHRoaXMgcmVsYXRpb25zaGlwICovCi0JCXB1YnJp bmZvW2pdLmRvYmoub2JqVHlwZSA9IERPX1BVQkxJQ0FUSU9OX1JFTDsKKwkJaWYgKHN0cmNtcChw cmV4Y2VwdCwgImYiKSA9PSAwKQorCQkJcHVicmluZm9bal0uZG9iai5vYmpUeXBlID0gRE9fUFVC TElDQVRJT05fUkVMOworCQllbHNlCisJCQlwdWJyaW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19Q VUJMSUNBVElPTl9FWENFUFRfUkVMOworCiAJCXB1YnJpbmZvW2pdLmRvYmouY2F0SWQudGFibGVv aWQgPQogCQkJYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3RhYmxlb2lkKSk7CiAJCXB1YnJp bmZvW2pdLmRvYmouY2F0SWQub2lkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX29pZCkp OwpAQCAtNDc4MCw2ICs0ODI1LDkgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91 dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAkJLyogRGVjaWRlIHdoZXRo ZXIgd2Ugd2FudCB0byBkdW1wIGl0ICovCiAJCXNlbGVjdER1bXBhYmxlUHVibGljYXRpb25PYmpl Y3QoJihwdWJyaW5mb1tqXS5kb2JqKSwgZm91dCk7CiAKKwkJaWYgKHN0cmNtcChwcmV4Y2VwdCwg InQiKSA9PSAwKQorCQkJc2ltcGxlX3B0cl9saXN0X2FwcGVuZCgmZXhjZXB0aW5mbywgJnB1YnJp bmZvW2pdKTsKKwogCQlqKys7CiAJfQogCkBAIC0xMTU0Miw2ICsxMTU5MCw5IEBAIGR1bXBEdW1w YWJsZU9iamVjdChBcmNoaXZlICpmb3V0LCBEdW1wYWJsZU9iamVjdCAqZG9iaikKIAkJY2FzZSBE T19QVUJMSUNBVElPTjoKIAkJCWR1bXBQdWJsaWNhdGlvbihmb3V0LCAoY29uc3QgUHVibGljYXRp b25JbmZvICopIGRvYmopOwogCQkJYnJlYWs7CisJCWNhc2UgRE9fUFVCTElDQVRJT05fRVhDRVBU X1JFTDoKKwkJCS8qIHdpbGwgYmUgZHVtcGVkIGluIGR1bXBQdWJsaWNhdGlvbiAqLworCQkJYnJl YWs7CiAJCWNhc2UgRE9fUFVCTElDQVRJT05fUkVMOgogCQkJZHVtcFB1YmxpY2F0aW9uVGFibGUo Zm91dCwgKGNvbnN0IFB1YmxpY2F0aW9uUmVsSW5mbyAqKSBkb2JqKTsKIAkJCWJyZWFrOwpAQCAt MTk3ODEsNiArMTk4MzIsNyBAQCBhZGRCb3VuZGFyeURlcGVuZGVuY2llcyhEdW1wYWJsZU9iamVj dCAqKmRvYmpzLCBpbnQgbnVtT2JqcywKIAkJCWNhc2UgRE9fREVGQVVMVF9BQ0w6CiAJCQljYXNl IERPX1BPTElDWToKIAkJCWNhc2UgRE9fUFVCTElDQVRJT046CisJCQljYXNlIERPX1BVQkxJQ0FU SU9OX0VYQ0VQVF9SRUw6CiAJCQljYXNlIERPX1BVQkxJQ0FUSU9OX1JFTDoKIAkJCWNhc2UgRE9f UFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BOgogCQkJY2FzZSBET19TVUJTQ1JJUFRJT046CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuaAppbmRleCA3NDE3ZWFiNmFlZi4uMDk2ZjI5MzQ2ZDggMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAt ODEsNiArODEsNyBAQCB0eXBlZGVmIGVudW0KIAlET19SRUZSRVNIX01BVFZJRVcsCiAJRE9fUE9M SUNZLAogCURPX1BVQkxJQ0FUSU9OLAorCURPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUwsCiAJRE9f UFVCTElDQVRJT05fUkVMLAogCURPX1BVQkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVNQSwKIAlET19S RUxfU1RBVFMsCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMgYi9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKaW5kZXggMGIwOTc3Nzg4ZjEuLjU2ZDY3NDBi OWVhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKKysrIGIvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCkBAIC05Miw2ICs5Miw3IEBAIGVudW0gZGJPYmpl Y3RUeXBlUHJpb3JpdGllcwogCVBSSU9fRktfQ09OU1RSQUlOVCwKIAlQUklPX1BPTElDWSwKIAlQ UklPX1BVQkxJQ0FUSU9OLAorCVBSSU9fUFVCTElDQVRJT05fRVhDRVBUX1JFTCwKIAlQUklPX1BV QkxJQ0FUSU9OX1JFTCwKIAlQUklPX1BVQkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVNQSwKIAlQUklP X1NVQlNDUklQVElPTiwKQEAgLTE0Nyw2ICsxNDgsNyBAQCBzdGF0aWMgY29uc3QgaW50IGRiT2Jq ZWN0VHlwZVByaW9yaXR5W10gPQogCVtET19SRUZSRVNIX01BVFZJRVddID0gUFJJT19SRUZSRVNI X01BVFZJRVcsCiAJW0RPX1BPTElDWV0gPSBQUklPX1BPTElDWSwKIAlbRE9fUFVCTElDQVRJT05d ID0gUFJJT19QVUJMSUNBVElPTiwKKwlbRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTF0gPSBQUklP X1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUwsCiAJW0RPX1BVQkxJQ0FUSU9OX1JFTF0gPSBQUklPX1BV QkxJQ0FUSU9OX1JFTCwKIAlbRE9fUFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BXSA9IFBSSU9f UFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BLAogCVtET19SRUxfU1RBVFNdID0gUFJJT19TVEFU SVNUSUNTX0RBVEFfREFUQSwKQEAgLTE0OTgsNiArMTUwMCwxMSBAQCBkZXNjcmliZUR1bXBhYmxl T2JqZWN0KER1bXBhYmxlT2JqZWN0ICpvYmosIGNoYXIgKmJ1ZiwgaW50IGJ1ZnNpemUpCiAJCQkJ CSAiUFVCTElDQVRJT04gKElEICVkIE9JRCAldSkiLAogCQkJCQkgb2JqLT5kdW1wSWQsIG9iai0+ Y2F0SWQub2lkKTsKIAkJCXJldHVybjsKKwkJY2FzZSBET19QVUJMSUNBVElPTl9FWENFUFRfUkVM OgorCQkJc25wcmludGYoYnVmLCBidWZzaXplLAorCQkJCQkgIlBVQkxJQ0FUSU9OIEVYQ0VQVCBU QUJMRSAoSUQgJWQgT0lEICV1KSIsCisJCQkJCSBvYmotPmR1bXBJZCwgb2JqLT5jYXRJZC5vaWQp OworCQkJcmV0dXJuOwogCQljYXNlIERPX1BVQkxJQ0FUSU9OX1JFTDoKIAkJCXNucHJpbnRmKGJ1 ZiwgYnVmc2l6ZSwKIAkJCQkJICJQVUJMSUNBVElPTiBUQUJMRSAoSUQgJWQgT0lEICV1KSIsCmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdf ZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IDM4NmUyMWUwYzU5Li4xNTJmZDdmZjA4NiAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9w Z19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTMyNzMsNiArMzI3MywyNiBAQCBteSAldGVzdHMg PSAoCiAJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAog CX0sCiAKKwknQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjYnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+ IDUwLAorCQljcmVhdGVfc3FsID0+CisJCSAgJ0NSRUFURSBQVUJMSUNBVElPTiBwdWI2IEZPUiBB TEwgVEFCTEVTIEVYQ0VQVCBkdW1wX3Rlc3QudGVzdF90YWJsZTsnLAorCQlyZWdleHAgPT4gcXIv XgorCQkJXFFDUkVBVEUgUFVCTElDQVRJT04gcHViNiBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFC TEUgT05MWSBkdW1wX3Rlc3QudGVzdF90YWJsZSBXSVRIIChwdWJsaXNoID0gJ2luc2VydCwgdXBk YXRlLCBkZWxldGUsIHRydW5jYXRlJyk7XEUKKwkJCS94bSwKKwkJbGlrZSA9PiB7ICVmdWxsX3J1 bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCisJfSwKKworCSdDUkVBVEUgUFVCTElDQVRJ T04gcHViNycgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNTAsCisJCWNyZWF0ZV9zcWwgPT4KKwkJ ICAnQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjcgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIGR1 bXBfdGVzdC50ZXN0X3RhYmxlLCBkdW1wX3Rlc3QudGVzdF9zZWNvbmRfdGFibGU7JywKKwkJcmVn ZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjcgRk9SIEFMTCBUQUJMRVMg RVhDRVBUIFRBQkxFIE9OTFkgZHVtcF90ZXN0LnRlc3RfdGFibGUsIE9OTFkgZHVtcF90ZXN0LnRl c3Rfc2Vjb25kX3RhYmxlIFdJVEggKHB1Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwg dHJ1bmNhdGUnKTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9w b3N0X2RhdGEgPT4gMSwgfSwKKwl9LAorCiAJJ0NSRUFURSBTVUJTQ1JJUFRJT04gc3ViMScgPT4g ewogCQljcmVhdGVfb3JkZXIgPT4gNTAsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBTVUJTQ1JJ UFRJT04gc3ViMQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmlu L3BzcWwvZGVzY3JpYmUuYwppbmRleCAyNGUwMTAwYzlmMC4uMmY2MWJlOWMxN2UgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5j CkBAIC0zMDM4LDE3ICszMDM4LDM2IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNo YXIgKnNjaGVtYW5hbWUsCiAJCQkJCQkJCSAgIiAgICAgICAgICBXSEVSRSBhdHRyZWxpZCA9IHBy LnBycmVsaWQgQU5EIGF0dG51bSA9IHByYXR0cnNbc10pXG4iCiAJCQkJCQkJCSAgIiAgICAgICAg RUxTRSBOVUxMIEVORCkgIgogCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRp b24gcFxuIgotCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9y ZWwgcHIgT04gcC5vaWQgPSBwci5wcnB1YmlkXG4iCi0JCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19j YXRhbG9nLnBnX2NsYXNzIGMgT04gYy5vaWQgPSBwci5wcnJlbGlkXG4iCi0JCQkJCQkJCSAgIldI RVJFIHByLnBycmVsaWQgPSAnJXMnXG4iCisJCQkJCQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9nLnBn X3B1YmxpY2F0aW9uX3JlbCBwciBPTiBwLm9pZCA9IHByLnBycHViaWRcbiIKKwkJCQkJCQkJICAi CQlKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgYyBPTiBjLm9pZCA9IHByLnBycmVsaWRcbiIKKwkJ CQkJCQkJICAiV0hFUkUgcHIucHJyZWxpZCA9ICclcydcbiIsCisJCQkJCQkJCSAgb2lkLCBvaWQs IG9pZCk7CisKKwkJCQkvKiBGSVhNRTogMTgwMDAwIHNob3VsZCBiZSBjaGFuZ2VkIHRvIDE5MDAw MCBsYXRlciBmb3IgUEcxOS4gKi8KKwkJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxODAwMDApCisJ CQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIgQU5EIE5PVCBwci5wcmV4Y2VwdFxuIik7 CisKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAogCQkJCQkJCQkgICJVTklPTlxuIgogCQkJ CQkJCQkgICJTRUxFQ1QgcHVibmFtZVxuIgotCQkJCQkJCQkgICIgICAgICwgTlVMTFxuIgotCQkJ CQkJCQkgICIgICAgICwgTlVMTFxuIgorCQkJCQkJCQkgICIJCSwgTlVMTFxuIgorCQkJCQkJCQkg ICIJCSwgTlVMTFxuIgogCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24g cFxuIgotCQkJCQkJCQkgICJXSEVSRSBwLnB1YmFsbHRhYmxlcyBBTkQgcGdfY2F0YWxvZy5wZ19y ZWxhdGlvbl9pc19wdWJsaXNoYWJsZSgnJXMnKVxuIgotCQkJCQkJCQkgICJPUkRFUiBCWSAxOyIs Ci0JCQkJCQkJCSAgb2lkLCBvaWQsIG9pZCwgb2lkKTsKKwkJCQkJCQkJICAiV0hFUkUgcC5wdWJh bGx0YWJsZXMgQU5EIHBnX2NhdGFsb2cucGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoJyVzJylc biIsCisJCQkJCQkJCSAgb2lkKTsKKworCQkJCS8qIEZJWE1FOiAxODAwMDAgc2hvdWxkIGJlIGNo YW5nZWQgdG8gMTkwMDAwIGxhdGVyIGZvciBQRzE5LiAqLworCQkJCWlmIChwc2V0LnN2ZXJzaW9u ID49IDE4MDAwMCkKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkJCSAgIiAg ICAgQU5EIE5PVCBFWElTVFMgKFxuIgorCQkJCQkJCQkJICAiCQlTRUxFQ1QgMVxuIgorCQkJCQkJ CQkJICAiCQlGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByXG4iCisJCQkJCQkJ CQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBwY1xuIgorCQkJCQkJCQkJICAiCQlPTiBw ci5wcnJlbGlkID0gcGMub2lkXG4iCisJCQkJCQkJCQkgICIJCVdIRVJFIHByLnBycmVsaWQgPSAn JXMnIEFORCBwci5wcnB1YmlkID0gcC5vaWQpXG4iLAorCQkJCQkJCQkJICBvaWQpOworCisJCQkJ YXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIk9SREVSIEJZIDE7Iik7CiAJCQl9CiAJCQllbHNl CiAJCQl7CkBAIC02NjkyLDggKzY3MTEsMTMgQEAgZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29uc3Qg Y2hhciAqcGF0dGVybikKIAkJCQkJCQkgICIgICAgIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25f cmVsIHByXG4iCiAJCQkJCQkJICAiV0hFUkUgYy5yZWxuYW1lc3BhY2UgPSBuLm9pZFxuIgogCQkJ CQkJCSAgIiAgQU5EIGMub2lkID0gcHIucHJyZWxpZFxuIgotCQkJCQkJCSAgIiAgQU5EIHByLnBy cHViaWQgPSAnJXMnXG4iCi0JCQkJCQkJICAiT1JERVIgQlkgMSwyIiwgcHViaWQpOworCQkJCQkJ CSAgIiAgQU5EIHByLnBycHViaWQgPSAnJXMnXG4iLCBwdWJpZCk7CisKKwkJCS8qIEZJWE1FOiAx ODAwMDAgc2hvdWxkIGJlIGNoYW5nZWQgdG8gMTkwMDAwIGxhdGVyIGZvciBQRzE5LiAqLworCQkJ aWYgKHBzZXQuc3ZlcnNpb24gPj0gMTgwMDAwKQorCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYs ICIgIEFORCBOT1QgcHIucHJleGNlcHRcbiIpOworCisJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVm LCAiT1JERVIgQlkgMSwyIik7CiAJCQlpZiAoIWFkZEZvb3RlclRvUHVibGljYXRpb25EZXNjKCZi dWYsIF8oIlRhYmxlczoiKSwgZmFsc2UsICZjb250KSkKIAkJCQlnb3RvIGVycm9yX3JldHVybjsK IApAQCAtNjcxMSw2ICs2NzM1LDI0IEBAIGRlc2NyaWJlUHVibGljYXRpb25zKGNvbnN0IGNoYXIg KnBhdHRlcm4pCiAJCQkJCWdvdG8gZXJyb3JfcmV0dXJuOwogCQkJfQogCQl9CisJCWVsc2UKKwkJ eworCQkJLyogRklYTUU6IDE4MDAwMCBzaG91bGQgYmUgY2hhbmdlZCB0byAxOTAwMDAgbGF0ZXIg Zm9yIFBHMTkuICovCisJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxODAwMDApCisJCQl7CisJCQkJ LyogR2V0IHRoZSBleGNsdWRlZCB0YWJsZXMgZm9yIHRoZSBzcGVjaWZpZWQgcHVibGljYXRpb24g Ki8KKwkJCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJCQkgICJTRUxFQ1QgY29uY2F0 KGMucmVsbmFtZXNwYWNlOjpyZWduYW1lc3BhY2UsICcuJywgYy5yZWxuYW1lKVxuIgorCQkJCQkJ CQkgICJGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgY1xuIgorCQkJCQkJCQkgICIgICAgIEpPSU4g cGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIgT04gYy5vaWQgPSBwci5wcnJlbGlkXG4i CisJCQkJCQkJCSAgIldIRVJFIHByLnBycHViaWQgPSAnJXMnXG4iCisJCQkJCQkJCSAgIiAgQU5E IHByLnByZXhjZXB0XG4iCisJCQkJCQkJCSAgIk9SREVSIEJZIDEiLCBwdWJpZCk7CisJCQkJaWYg KCFhZGRGb290ZXJUb1B1YmxpY2F0aW9uRGVzYygmYnVmLCBfKCJFeGNlcHQgdGFibGVzOiIpLAor CQkJCQkJCQkJCQkJdHJ1ZSwgJmNvbnQpKQorCQkJCQlnb3RvIGVycm9yX3JldHVybjsKKwkJCX0K KwkJfQogCiAJCXByaW50VGFibGUoJmNvbnQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwgcHNldC5s b2dmaWxlKTsKIAkJcHJpbnRUYWJsZUNsZWFudXAoJmNvbnQpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5j CmluZGV4IGQ1OWVkNWYzZmQwLi5iZjNiMGViMzFjMSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpA QCAtMjI0NSwxMSArMjI0NSwxNiBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9p ZCwKIAkJQ09NUExFVEVfV0lUSCgiQUREIiwgIkRST1AiLCAiT1dORVIgVE8iLCAiUkVOQU1FIFRP IiwgIlJFU0VUIiwgIlNFVCIpOwogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxuYW1lPiBBREQgKi8K IAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQURE IikpCi0JCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyBJTiBTQ0hFTUEiLCAiVEFCTEUiKTsKKwkJQ09N UExFVEVfV0lUSCgiQUxMIFRBQkxFUyIsICJUQUJMRVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7CisJ ZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIs ICJBTEwiLCAiVEFCTEVTIikpCisJCUNPTVBMRVRFX1dJVEgoIkVYQ0VQVCBUQUJMRSIpOwogCWVs c2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VU IiwgIlRBQkxFIikpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0 X29mX3RhYmxlcyk7Ci0JZWxzZSBpZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9O IiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIikgJiYKLQkJCSBlbmRzX3dpdGgocHJldl93 ZCwgJywnKSkKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNo QW55LCAiQUREIiwgIkFMTCIsICJUQUJMRVMiLCAiRVhDRVBUIiwgIlRBQkxFIikpCisJCUNPTVBM RVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CisJZWxzZSBp ZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VU IiwgIlRBQkxFIikgJiYgZW5kc193aXRoKHByZXZfd2QsICcsJykpCisJCUNPTVBMRVRFX1dJVEhf U0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CisJZWxzZSBpZiAoSGVhZE1h dGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiLCAiQUxMIiwgIlRB QkxFUyIsICJFWENFUFQiLCAiVEFCTEUiKSAmJiBlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKIAkJ Q09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzKTsKIAog CS8qCkBAIC0zNTM2LDcgKzM1NDEsNyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVy bl9pZCwKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFu eSwgIkZPUiIsICJBTEwiKSkKIAkJQ09NUExFVEVfV0lUSCgiVEFCTEVTIik7CiAJZWxzZSBpZiAo TWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiQUxMIiwg IlRBQkxFUyIpKQotCQlDT01QTEVURV9XSVRIKCJXSVRIICgiKTsKKwkJQ09NUExFVEVfV0lUSCgi RVhDRVBUIFRBQkxFIiwgIldJVEggKCIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQ VUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIlRBQkxFUyIpKQogCQlDT01QTEVURV9XSVRI KCJJTiBTQ0hFTUEiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04i LCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRSIsIE1hdGNoQW55KSAmJiAhZW5kc193aXRoKHByZXZf d2QsICcsJykpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9u LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKaW5kZXggNDhjN2QxYTg2 MTUuLjMzYjc3MTk5MGJkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1Ymxp Y2F0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCkBAIC0x MzksMTEgKzEzOSwxMiBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNhdGlvblJlbEluZm8KIAlSZWxh dGlvbglyZWxhdGlvbjsKIAlOb2RlCSAgICp3aGVyZUNsYXVzZTsKIAlMaXN0CSAgICpjb2x1bW5z OworCWJvb2wJCWV4Y2VwdDsKIH0gUHVibGljYXRpb25SZWxJbmZvOwogCiBleHRlcm4gUHVibGlj YXRpb24gKkdldFB1YmxpY2F0aW9uKE9pZCBwdWJpZCk7CiBleHRlcm4gUHVibGljYXRpb24gKkdl dFB1YmxpY2F0aW9uQnlOYW1lKGNvbnN0IGNoYXIgKnB1Ym5hbWUsIGJvb2wgbWlzc2luZ19vayk7 Ci1leHRlcm4gTGlzdCAqR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJlbGlkKTsKK2V4dGVy biBMaXN0ICpHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhPaWQgcmVsaWQsIGJvb2wgZXhjZXB0X2Zs YWcpOwogCiAvKi0tLS0tLS0tLQogICogRXhwZWN0ZWQgdmFsdWVzIGZvciBwdWJfcGFydG9wdCBw YXJhbWV0ZXIgb2YgR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoKSwKQEAgLTE2Myw3ICsxNjQsNyBA QCB0eXBlZGVmIGVudW0gUHVibGljYXRpb25QYXJ0T3B0CiAKIGV4dGVybiBMaXN0ICpHZXRQdWJs aWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9w dCk7CiBleHRlcm4gTGlzdCAqR2V0QWxsVGFibGVzUHVibGljYXRpb25zKHZvaWQpOwotZXh0ZXJu IExpc3QgKkdldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKGJvb2wgcHVidmlhcm9vdCk7 CitleHRlcm4gTGlzdCAqR2V0QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1Ymlk LCBib29sIHB1YnZpYXJvb3QpOwogZXh0ZXJuIExpc3QgKkdldFB1YmxpY2F0aW9uU2NoZW1hcyhP aWQgcHViaWQpOwogZXh0ZXJuIExpc3QgKkdldFNjaGVtYVB1YmxpY2F0aW9ucyhPaWQgc2NoZW1h aWQpOwogZXh0ZXJuIExpc3QgKkdldFNjaGVtYVB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBzY2hl bWFpZCwKQEAgLTE3NCw3ICsxNzUsNyBAQCBleHRlcm4gTGlzdCAqR2V0UHViUGFydGl0aW9uT3B0 aW9uUmVsYXRpb25zKExpc3QgKnJlc3VsdCwKIAkJCQkJCQkJCQkJUHVibGljYXRpb25QYXJ0T3B0 IHB1Yl9wYXJ0b3B0LAogCQkJCQkJCQkJCQlPaWQgcmVsaWQpOwogZXh0ZXJuIE9pZAlHZXRUb3BN b3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9ycywKLQkJ CQkJCQkJCQkJaW50ICphbmNlc3Rvcl9sZXZlbCk7CisJCQkJCQkJCQkJCWludCAqYW5jZXN0b3Jf bGV2ZWwsIGJvb2wgcHViYWxsdGFibGVzKTsKIAogZXh0ZXJuIGJvb2wgaXNfcHVibGlzaGFibGVf cmVsYXRpb24oUmVsYXRpb24gcmVsKTsKIGV4dGVybiBib29sIGlzX3NjaGVtYV9wdWJsaWNhdGlv bihPaWQgcHViaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNh dGlvbl9yZWwuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmgKaW5k ZXggOTJjYzM2ZGZkZjYuLmU3ZDdmM2JhODVjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVi bGljYXRpb25fcmVsLmgKQEAgLTMxLDYgKzMxLDcgQEAgQ0FUQUxPRyhwZ19wdWJsaWNhdGlvbl9y ZWwsNjEwNixQdWJsaWNhdGlvblJlbFJlbGF0aW9uSWQpCiAJT2lkCQkJb2lkOwkJCS8qIG9pZCAq LwogCU9pZAkJCXBycHViaWQgQktJX0xPT0tVUChwZ19wdWJsaWNhdGlvbik7IC8qIE9pZCBvZiB0 aGUgcHVibGljYXRpb24gKi8KIAlPaWQJCQlwcnJlbGlkIEJLSV9MT09LVVAocGdfY2xhc3MpOwkv KiBPaWQgb2YgdGhlIHJlbGF0aW9uICovCisJYm9vbAkJcHJleGNlcHQgQktJX0RFRkFVTFQoZik7 CS8qIGV4Y2x1ZGUgdGhlIHJlbGF0aW9uICovCiAKICNpZmRlZglDQVRBTE9HX1ZBUkxFTgkJCS8q IHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwogCXBnX25vZGVfdHJlZSBwcnF1 YWw7CQkvKiBxdWFsaWZpY2F0aW9ucyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFu ZHMvcHVibGljYXRpb25jbWRzLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNt ZHMuaAppbmRleCBmOTBjZjFlZjg5Ni4uMGFkNWQyODc1NGQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRz L3B1YmxpY2F0aW9uY21kcy5oCkBAIC0zMiwxMCArMzIsMTEgQEAgZXh0ZXJuIE9iamVjdEFkZHJl c3MgQWx0ZXJQdWJsaWNhdGlvbk93bmVyKGNvbnN0IGNoYXIgKm5hbWUsIE9pZCBuZXdPd25lcklk KTsKIGV4dGVybiB2b2lkIEFsdGVyUHVibGljYXRpb25Pd25lcl9vaWQoT2lkIHB1YmlkLCBPaWQg bmV3T3duZXJJZCk7CiBleHRlcm4gdm9pZCBJbnZhbGlkYXRlUHVibGljYXRpb25SZWxzKExpc3Qg KnJlbGlkcyk7CiBleHRlcm4gYm9vbCBwdWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lk IHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwKLQkJCQkJCQkJCQkgICBMaXN0ICphbmNlc3RvcnMs IGJvb2wgcHVidmlhcm9vdCk7CisJCQkJCQkJCQkJICAgTGlzdCAqYW5jZXN0b3JzLCBib29sIHB1 YnZpYXJvb3QsCisJCQkJCQkJCQkJICAgYm9vbCBwdWJhbGx0YWJsZXMpOwogZXh0ZXJuIGJvb2wg cHViX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24s CiAJCQkJCQkJCQkJTGlzdCAqYW5jZXN0b3JzLCBib29sIHB1YnZpYXJvb3QsCi0JCQkJCQkJCQkJ Y2hhciBwdWJnZW5jb2xzX3R5cGUsCisJCQkJCQkJCQkJY2hhciBwdWJnZW5jb2xzX3R5cGUsIGJv b2wgcHViYWxsdGFibGVzLAogCQkJCQkJCQkJCWJvb2wgKmludmFsaWRfY29sdW1uX2xpc3QsCiAJ CQkJCQkJCQkJYm9vbCAqaW52YWxpZF9nZW5fY29sKTsKIGV4dGVybiB2b2lkIEludmFsaWRhdGVQ dWJSZWxTeW5jQ2FjaGUoT2lkIHB1YmlkLCBib29sIHB1YmFsbHRhYmxlcyk7CmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmgKaW5kZXggNzI4MGU5ODM2Y2YuLjYxYTBiMmNjZjM4IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oCkBAIC00MjM1LDYgKzQyMzUsNyBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNhdGlvblRh YmxlCiAJUmFuZ2VWYXIgICAqcmVsYXRpb247CQkvKiByZWxhdGlvbiB0byBiZSBwdWJsaXNoZWQg Ki8KIAlOb2RlCSAgICp3aGVyZUNsYXVzZTsJLyogcXVhbGlmaWNhdGlvbnMgKi8KIAlMaXN0CSAg ICpjb2x1bW5zOwkJLyogTGlzdCBvZiBjb2x1bW5zIGluIGEgcHVibGljYXRpb24gdGFibGUgKi8K Kwlib29sCQlleGNlcHQ7CQkJLyogZXhjbHVkZSB0aGUgcmVsYXRpb24gKi8KIH0gUHVibGljYXRp b25UYWJsZTsKIAogLyoKQEAgLTQyNDMsNiArNDI0NCw3IEBAIHR5cGVkZWYgc3RydWN0IFB1Ymxp Y2F0aW9uVGFibGUKIHR5cGVkZWYgZW51bSBQdWJsaWNhdGlvbk9ialNwZWNUeXBlCiB7CiAJUFVC TElDQVRJT05PQkpfVEFCTEUsCQkvKiBBIHRhYmxlICovCisJUFVCTElDQVRJT05PQkpfRVhDRVBU X1RBQkxFLAkvKiBBIHRhYmxlIHRvIGJlIGV4Y2x1ZGVkICovCiAJUFVCTElDQVRJT05PQkpfVEFC TEVTX0lOX1NDSEVNQSwJLyogQWxsIHRhYmxlcyBpbiBzY2hlbWEgKi8KIAlQVUJMSUNBVElPTk9C Sl9UQUJMRVNfSU5fQ1VSX1NDSEVNQSwJLyogQWxsIHRhYmxlcyBpbiBmaXJzdCBlbGVtZW50IG9m CiAJCQkJCQkJCQkJCSAqIHNlYXJjaF9wYXRoICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cHVibGljYXRpb24ub3V0CmluZGV4IGIyZmZlMGE4YzIwLi41ZDAyNTMyODcwNCAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTIwOSwxMyArMjA5LDM3IEBA IE5vdC1udWxsIGNvbnN0cmFpbnRzOgogIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBub25lICAg ICAgICAgICAgICB8IGYKICgxIHJvdykKIAorU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJS T1InOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxl IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSB0ZXN0cHViX3RibDEsIHRlc3RwdWJfdGJsMjsK Ky0tIHNwZWNpZnkgRVhDRVBUIHdpdGhvdXQgVEFCTEUKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0 cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTEgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIHRlc3Rw dWJfdGJsMTsKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CitcZFJwKyB0ZXN0cHViX2ZvcmFs bHRhYmxlc19leGNlcHR0YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1 YmxpY2F0aW9uIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlCisgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8 IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJs aWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorRXhjZXB0IHRhYmxlczoKKyAgICAi cHVibGljLnRlc3RwdWJfdGJsMSIKKyAgICAicHVibGljLnRlc3RwdWJfdGJsMiIKKworXGRScCsg dGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUxCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTEK KyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0 ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K KyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCitFeGNlcHQg dGFibGVzOgorICAgICJwdWJsaWMudGVzdHB1Yl90YmwxIgorCiBEUk9QIFRBQkxFIHRlc3RwdWJf dGJsMjsKLURST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMsIHRlc3RwdWJfZm9y dGFibGUsIHRlc3RwdWJfZm9yc2NoZW1hLCB0ZXN0cHViX2Zvcl90Ymxfc2NoZW1hOworRFJPUCBQ VUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcywgdGVzdHB1Yl9mb3J0YWJsZSwgdGVzdHB1 Yl9mb3JzY2hlbWEsIHRlc3RwdWJfZm9yX3RibF9zY2hlbWEsIHRlc3RwdWJfZm9yYWxsdGFibGVz X2V4Y2VwdHRhYmxlLCB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTE7CiBDUkVBVEUg VEFCTEUgdGVzdHB1Yl90YmwzIChhIGludCk7CiBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwzYSAo YiB0ZXh0KSBJTkhFUklUUyAodGVzdHB1Yl90YmwzKTsKIFNFVCBjbGllbnRfbWluX21lc3NhZ2Vz ID0gJ0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViMyBGT1IgVEFCTEUgdGVzdHB1 Yl90YmwzOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI0IEZPUiBUQUJMRSBPTkxZIHRlc3Rw dWJfdGJsMzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNSBGT1IgQUxMIFRBQkxFUyBFWENF UFQgVEFCTEUgdGVzdHB1Yl90YmwzOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI2IEZPUiBB TEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBPTkxZIHRlc3RwdWJfdGJsMzsKIFJFU0VUIGNsaWVudF9t aW5fbWVzc2FnZXM7CiBcZFJwKyB0ZXN0cHViMwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIzCkBAIC0yMzQsOCArMjU4LDI1 IEBAIFRhYmxlczoKIFRhYmxlczoKICAgICAicHVibGljLnRlc3RwdWJfdGJsMyIKIAorXGRScCsg dGVzdHB1YjUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ dWJsaWNhdGlvbiB0ZXN0cHViNQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJs ZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQg Y29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAg ICAgICAgICB8IGYKK0V4Y2VwdCB0YWJsZXM6CisgICAgInB1YmxpYy50ZXN0cHViX3RibDMiCisg ICAgInB1YmxpYy50ZXN0cHViX3RibDNhIgorCitcZFJwKyB0ZXN0cHViNgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWI2Cisg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVz IHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorRXhjZXB0IHRh YmxlczoKKyAgICAicHVibGljLnRlc3RwdWJfdGJsMyIKKwogRFJPUCBUQUJMRSB0ZXN0cHViX3Ri bDMsIHRlc3RwdWJfdGJsM2E7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWIzLCB0ZXN0cHViNDsK K0RST1AgUFVCTElDQVRJT04gdGVzdHB1YjMsIHRlc3RwdWI0LCB0ZXN0cHViNSwgdGVzdHB1YjY7 CiAtLSBUZXN0cyBmb3IgcGFydGl0aW9uZWQgdGFibGVzCiBTRVQgY2xpZW50X21pbl9tZXNzYWdl cyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JwYXJ0ZWQ7CkBAIC0x OTI2LDkgKzE5NjcsMTUgQEAgRFJPUCBUQUJMRSBnZW5jb2xzOwogLS0gVGVzdHMgZm9yIEFMVEVS IFBVQkxJQ0FUSU9OIC4uLiBSRVNFVAogQ1JFQVRFIFNDSEVNQSBwdWJfc2NoMTsKIENSRUFURSBU QUJMRSBwdWJfc2NoMS50YmwxIChhIGludCk7CitDUkVBVEUgVEFCTEUgcHViX3NjaDEudGJsMiAo YSBpbnQpOwogU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOwogQ1JFQVRFIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQgRk9SIEFMTCBUQUJMRVM7CiBSRVNFVCBjbGllbnRfbWluX21l c3NhZ2VzOworLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB0byAnRk9SIEFMTCBUQUJMRVMnIHB1 YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVT IEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50YmwxOworRVJST1I6ICBhZGRpbmcgQUxMIFRBQkxFUyBy ZXF1aXJlcyB0aGUgcHVibGljYXRpb24gdG8gaGF2ZSBkZWZhdWx0IHB1YmxpY2F0aW9uIHBhcmFt ZXRlciB2YWx1ZXMKK0RFVEFJTDogIEFMTCBUQUJMRVMgZmxhZyBzaG91bGQgbm90IGJlIHNldCBh bmQgbm8gdGFibGVzL3NjaGVtYXMgc2hvdWxkIGJlIGFzc29jaWF0ZWQuCitISU5UOiAgVXNlIEFM VEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVCB0byByZXNldCB0aGUgcHVibGljYXRpb24KIC0tIFZl cmlmeSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlzIHJlc2V0CiBcZFJwKyB0ZXN0cHViX3Jlc2V0 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24g dGVzdHB1Yl9yZXNldApAQCAtMTk0NSw3ICsxOTkyLDI0IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgUkVTRVQ7CiAgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAg ICAgICAgIHwgZgogKDEgcm93KQogCistLSBTaG91bGQgd29yayBub3cgYWZ0ZXIgcmVzZXR0aW5n IHRoZSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxM IFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMSwgcHViX3NjaDEudGJsMjsKK1xkUnAr IHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg QWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdl bmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwg dCAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5v bmUgICAgICAgICAgICAgIHwgZgorRXhjZXB0IHRhYmxlczoKKyAgICAicHViX3NjaDEudGJsMSIK KyAgICAicHViX3NjaDEudGJsMiIKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBS RVNFVDsKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIFRBQkxFIHB1Yl9zY2gx LnRibDE7CistLSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHRvICdGT1IgVEFCTEUnIHB1YmxpY2F0 aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQ VCBUQUJMRSBwdWJfc2NoMS50YmwxOworRVJST1I6ICBhZGRpbmcgQUxMIFRBQkxFUyByZXF1aXJl cyB0aGUgcHVibGljYXRpb24gdG8gaGF2ZSBkZWZhdWx0IHB1YmxpY2F0aW9uIHBhcmFtZXRlciB2 YWx1ZXMKK0RFVEFJTDogIEFMTCBUQUJMRVMgZmxhZyBzaG91bGQgbm90IGJlIHNldCBhbmQgbm8g dGFibGVzL3NjaGVtYXMgc2hvdWxkIGJlIGFzc29jaWF0ZWQuCitISU5UOiAgVXNlIEFMVEVSIFBV QkxJQ0FUSU9OIC4uLiBSRVNFVCB0byByZXNldCB0aGUgcHVibGljYXRpb24KIC0tIFZlcmlmeSB0 aGF0IHRhYmxlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHB1YmxpY2F0aW9uIGFyZSBkcm9wcGVkIGFm dGVyIFJFU0VUCiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldApAQCAtMTk2MywxNyAr MjAyNywyMCBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogIHJlZ3Jl c3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKICgxIHJvdykKIAotQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHVi bGljOwotRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiQUxMIgotTElORSAxOiBBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWIu Li4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWM7Cist LSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHRvICdGT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEnIHB1 YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVT IEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50YmwxOworRVJST1I6ICBhZGRpbmcgQUxMIFRBQkxFUyBy ZXF1aXJlcyB0aGUgcHVibGljYXRpb24gdG8gaGF2ZSBkZWZhdWx0IHB1YmxpY2F0aW9uIHBhcmFt ZXRlciB2YWx1ZXMKK0RFVEFJTDogIEFMTCBUQUJMRVMgZmxhZyBzaG91bGQgbm90IGJlIHNldCBh bmQgbm8gdGFibGVzL3NjaGVtYXMgc2hvdWxkIGJlIGFzc29jaWF0ZWQuCitISU5UOiAgVXNlIEFM VEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVCB0byByZXNldCB0aGUgcHVibGljYXRpb24KIC0tIFZl cmlmeSB0aGF0IHNjaGVtYXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiBhcmUgZHJv cHBlZCBhZnRlciBSRVNFVAogXGRScCsgdGVzdHB1Yl9yZXNldAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKICAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBE ZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KICByZWdy ZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCi0oMSByb3cpCitUYWJs ZXMgZnJvbSBzY2hlbWFzOgorICAgICJwdWJsaWMiCiAKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfcmVzZXQgUkVTRVQ7CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CkBAIC0xOTg0LDYgKzIwNTEsMTIg QEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKICgxIHJvdykKIAogQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJU0ggPSAnJyk7CistLSBDYW4n dCBhZGQgRVhDRVBUIFRBQkxFIHdoZW4gdGhlICdQVUJMSVNIJyBwYXJhbWV0ZXIgZG9lcyBub3Qg aGF2ZSBkZWZhdWx0CistLSB2YWx1ZQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBB REQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsKK0VSUk9SOiAgYWRkaW5n IEFMTCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1YmxpY2F0aW9uIHRvIGhhdmUgZGVmYXVsdCBwdWJs aWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzCitERVRBSUw6ICBBTEwgVEFCTEVTIGZsYWcgc2hvdWxk IG5vdCBiZSBzZXQgYW5kIG5vIHRhYmxlcy9zY2hlbWFzIHNob3VsZCBiZSBhc3NvY2lhdGVkLgor SElOVDogIFVzZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQgdG8gcmVzZXQgdGhlIHB1Ymxp Y2F0aW9uCiAtLSBWZXJpZnkgdGhhdCAnUFVCTElTSCcgcGFyYW1ldGVyIGlzIHJlc2V0CiBcZFJw KyB0ZXN0cHViX3Jlc2V0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldApAQCAtMjAwMSw2ICsyMDc0LDEyIEBAIEFMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiAoMSByb3cpCiAKIEFMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9PVCA9ICd0 cnVlJyk7CistLSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHdoZW4gJ1BVQkxJU0hfVklBX1BBUlRJ VElPTl9ST09UJyBwYXJhbWV0ZXIgZG9lcyBub3QKKy0tIGhhdmUgZGVmYXVsdCB2YWx1ZQorQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUg cHViX3NjaDEudGJsMTsKK0VSUk9SOiAgYWRkaW5nIEFMTCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1 YmxpY2F0aW9uIHRvIGhhdmUgZGVmYXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzCitE RVRBSUw6ICBBTEwgVEFCTEVTIGZsYWcgc2hvdWxkIG5vdCBiZSBzZXQgYW5kIG5vIHRhYmxlcy9z Y2hlbWFzIHNob3VsZCBiZSBhc3NvY2lhdGVkLgorSElOVDogIFVzZSBBTFRFUiBQVUJMSUNBVElP TiAuLi4gUkVTRVQgdG8gcmVzZXQgdGhlIHB1YmxpY2F0aW9uCiAtLSBWZXJpZnkgdGhhdCAnUFVC TElTSF9WSUFfUEFSVElUSU9OX1JPT1QnIHBhcmFtZXRlciBpcyByZXNldAogXGRScCsgdGVzdHB1 Yl9yZXNldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1Ymxp Y2F0aW9uIHRlc3RwdWJfcmVzZXQKQEAgLTIwMzksOSArMjExOCwxMyBAQCBBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7CiBT RVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwogQUxURVIgUFVCTElDQVRJT04gdGVz dHB1Yl9yZXNldCBSRVNFVDsgLS0gZmFpbCAtIG11c3QgYmUgc3VwZXJ1c2VyCiBFUlJPUjogIG11 c3QgYmUgc3VwZXJ1c2VyIHRvIFJFU0VUIHB1YmxpY2F0aW9uCistLSBWZXJpZnkgdGhhdCBvbmx5 IHN1cGVydXNlciBjYW4gQUREIEFMTCBUQUJMRVMKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf cmVzZXQgQUREIEFMTCBUQUJMRVM7CitFUlJPUjogIG11c3QgYmUgc3VwZXJ1c2VyIHRvIEFERCBB TEwgVEFCTEVTIHRvIHRoZSBwdWJsaWNhdGlvbgogU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlv bl91c2VyOwogRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0OwogRFJPUCBUQUJMRSBwdWJf c2NoMS50YmwxOworRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwyOwogRFJPUCBTQ0hFTUEgcHViX3Nj aDE7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFU SU9OOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IDE1YjJiMWNmZDI4Li5h ZjMxYTIyMTRjYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24u c3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbApAQCAtMTA0LDIw ICsxMDQsMzMgQEAgU0VMRUNUIHB1Ym5hbWUsIHB1YmFsbHRhYmxlcyBGUk9NIHBnX3B1YmxpY2F0 aW9uIFdIRVJFIHB1Ym5hbWUgPSAndGVzdHB1Yl9mb3JhbGwKIFxkKyB0ZXN0cHViX3RibDIKIFxk UnArIHRlc3RwdWJfZm9yYWxsdGFibGVzCiAKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VS Uk9SJzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJs ZSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgdGVzdHB1Yl90YmwxLCB0ZXN0cHViX3RibDI7 CistLSBzcGVjaWZ5IEVYQ0VQVCB3aXRob3V0IFRBQkxFCitDUkVBVEUgUFVCTElDQVRJT04gdGVz dHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUxIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCB0ZXN0 cHViX3RibDE7CitSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOworCitcZFJwKyB0ZXN0cHViX2Zv cmFsbHRhYmxlc19leGNlcHR0YWJsZQorXGRScCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0 dGFibGUxCisKIERST1AgVEFCTEUgdGVzdHB1Yl90YmwyOwotRFJPUCBQVUJMSUNBVElPTiB0ZXN0 cHViX2ZvcmFsbHRhYmxlcywgdGVzdHB1Yl9mb3J0YWJsZSwgdGVzdHB1Yl9mb3JzY2hlbWEsIHRl c3RwdWJfZm9yX3RibF9zY2hlbWE7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFi bGVzLCB0ZXN0cHViX2ZvcnRhYmxlLCB0ZXN0cHViX2ZvcnNjaGVtYSwgdGVzdHB1Yl9mb3JfdGJs X3NjaGVtYSwgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUsIHRlc3RwdWJfZm9yYWxs dGFibGVzX2V4Y2VwdHRhYmxlMTsKIAogQ1JFQVRFIFRBQkxFIHRlc3RwdWJfdGJsMyAoYSBpbnQp OwogQ1JFQVRFIFRBQkxFIHRlc3RwdWJfdGJsM2EgKGIgdGV4dCkgSU5IRVJJVFMgKHRlc3RwdWJf dGJsMyk7CiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1YjMgRk9SIFRBQkxFIHRlc3RwdWJfdGJsMzsKIENSRUFURSBQVUJMSUNBVElP TiB0ZXN0cHViNCBGT1IgVEFCTEUgT05MWSB0ZXN0cHViX3RibDM7CitDUkVBVEUgUFVCTElDQVRJ T04gdGVzdHB1YjUgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHRlc3RwdWJfdGJsMzsKK0NS RUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNiBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgT05M WSB0ZXN0cHViX3RibDM7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogXGRScCsgdGVzdHB1 YjMKIFxkUnArIHRlc3RwdWI0CitcZFJwKyB0ZXN0cHViNQorXGRScCsgdGVzdHB1YjYKIAogRFJP UCBUQUJMRSB0ZXN0cHViX3RibDMsIHRlc3RwdWJfdGJsM2E7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRl c3RwdWIzLCB0ZXN0cHViNDsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1YjMsIHRlc3RwdWI0LCB0 ZXN0cHViNSwgdGVzdHB1YjY7CiAKIC0tIFRlc3RzIGZvciBwYXJ0aXRpb25lZCB0YWJsZXMKIFNF VCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKQEAgLTEyMjUsMjMgKzEyMzgsMzkgQEAg RFJPUCBUQUJMRSBnZW5jb2xzOwogLS0gVGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBS RVNFVAogQ1JFQVRFIFNDSEVNQSBwdWJfc2NoMTsKIENSRUFURSBUQUJMRSBwdWJfc2NoMS50Ymwx IChhIGludCk7CitDUkVBVEUgVEFCTEUgcHViX3NjaDEudGJsMiAoYSBpbnQpOwogU0VUIGNsaWVu dF9taW5fbWVzc2FnZXMgPSAnRVJST1InOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVz ZXQgRk9SIEFMTCBUQUJMRVM7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogCistLSBDYW4n dCBhZGQgRVhDRVBUIFRBQkxFIHRvICdGT1IgQUxMIFRBQkxFUycgcHVibGljYXRpb24KK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1 Yl9zY2gxLnRibDE7CisKIC0tIFZlcmlmeSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlzIHJlc2V0 CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJF U0VUOwogXGRScCsgdGVzdHB1Yl9yZXNldAogCistLSBTaG91bGQgd29yayBub3cgYWZ0ZXIgcmVz ZXR0aW5nIHRoZSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBB REQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMSwgcHViX3NjaDEudGJsMjsK K1xkUnArIHRlc3RwdWJfcmVzZXQKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBS RVNFVDsKKwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgVEFCTEUgcHViX3Nj aDEudGJsMTsKIAorLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB0byAnRk9SIFRBQkxFJyBwdWJs aWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBF WENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsKKwogLS0gVmVyaWZ5IHRoYXQgdGFibGVzIGFzc29j aWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKIFxkUnAr IHRlc3RwdWJfcmVzZXQKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiBc ZFJwKyB0ZXN0cHViX3Jlc2V0CiAKLUFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQURE IEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf cmVzZXQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljOworCistLSBDYW4ndCBhZGQgRVhDRVBU IFRBQkxFIHRvICdGT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEnIHB1YmxpY2F0aW9uCitBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBwdWJf c2NoMS50YmwxOwogCiAtLSBWZXJpZnkgdGhhdCBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCB0aGUg cHVibGljYXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKIFxkUnArIHRlc3RwdWJfcmVzZXQK QEAgLTEyNTAsNiArMTI3OSwxMCBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJF U0VUOwogCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSCA9ICcn KTsKIAorLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB3aGVuIHRoZSAnUFVCTElTSCcgcGFyYW1l dGVyIGRvZXMgbm90IGhhdmUgZGVmYXVsdAorLS0gdmFsdWUKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7CisK IC0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIJyBwYXJhbWV0ZXIgaXMgcmVzZXQKIFxkUnArIHRlc3Rw dWJfcmVzZXQKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CkBAIC0xMjU3 LDYgKzEyOTAsMTAgQEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKIAog QUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJU0hfVklBX1BBUlRJVElP Tl9ST09UID0gJ3RydWUnKTsKIAorLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB3aGVuICdQVUJM SVNIX1ZJQV9QQVJUSVRJT05fUk9PVCcgcGFyYW1ldGVyIGRvZXMgbm90CistLSBoYXZlIGRlZmF1 bHQgdmFsdWUKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMg RVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7CisKIC0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIX1ZJ QV9QQVJUSVRJT05fUk9PVCcgcGFyYW1ldGVyIGlzIHJlc2V0CiBcZFJwKyB0ZXN0cHViX3Jlc2V0 CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwpAQCAtMTI3MywxMCArMTMx MCwxNCBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIy OwogU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyMjsKIEFMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfcmVzZXQgUkVTRVQ7IC0tIGZhaWwgLSBtdXN0IGJlIHN1cGVydXNlcgorCistLSBW ZXJpZnkgdGhhdCBvbmx5IHN1cGVydXNlciBjYW4gQUREIEFMTCBUQUJMRVMKK0FMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVM7CiBTRVQgUk9MRSByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXI7CiAKIERST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldDsKIERST1Ag VEFCTEUgcHViX3NjaDEudGJsMTsKK0RST1AgVEFCTEUgcHViX3NjaDEudGJsMjsKIERST1AgU0NI RU1BIHB1Yl9zY2gxOwogCiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9u L21lc29uLmJ1aWxkCmluZGV4IDU4NmZmYmE0MzRlLi5lOGExMTdmMzQyMSAxMDA2NDQKLS0tIGEv c3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlw dGlvbi9tZXNvbi5idWlsZApAQCAtNDIsNiArNDIsNyBAQCB0ZXN0cyArPSB7CiAgICAgICAndC8w MzNfcnVuX2FzX3RhYmxlX293bmVyLnBsJywKICAgICAgICd0LzAzNF90ZW1wb3JhbC5wbCcsCiAg ICAgICAndC8wMzVfY29uZmxpY3RzLnBsJywKKyAgICAgICd0LzAzNl9yZXBfY2hhbmdlc19leGNl cHRfdGFibGUucGwnLAogICAgICAgJ3QvMTAwX2J1Z3MucGwnLAogICAgIF0sCiAgIH0sCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzZfcmVwX2NoYW5nZXNfZXhjZXB0X3Rh YmxlLnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM2X3JlcF9jaGFuZ2VzX2V4Y2VwdF90 YWJsZS5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMWQxMTUyODM4 MDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzZfcmVwX2No YW5nZXNfZXhjZXB0X3RhYmxlLnBsCkBAIC0wLDAgKzEsODMgQEAKKworIyBDb3B5cmlnaHQgKGMp IDIwMjEtMjAyMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIyBMb2dp Y2FsIHJlcGxpY2F0aW9uIHRlc3RzIGZvciBleGNlcHQgdGFibGUgcHVibGljYXRpb25zCit1c2Ug c3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1 c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworIyBJbml0aWFs aXplIHB1Ymxpc2hlciBub2RlCitteSAkbm9kZV9wdWJsaXNoZXIgPSBQb3N0Z3JlU1FMOjpUZXN0 OjpDbHVzdGVyLT5uZXcoJ3B1Ymxpc2hlcicpOworJG5vZGVfcHVibGlzaGVyLT5pbml0KGFsbG93 c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwnKTsKKyRub2RlX3B1Ymxpc2hlci0+c3RhcnQ7CisKKyMg Q3JlYXRlIHN1YnNjcmliZXIgbm9kZQorbXkgJG5vZGVfc3Vic2NyaWJlciA9IFBvc3RncmVTUUw6 OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vic2NyaWJlcicpOworJG5vZGVfc3Vic2NyaWJlci0+aW5p dChhbGxvd3Nfc3RyZWFtaW5nID0+ICdsb2dpY2FsJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zdGFy dDsKKworIyBUZXN0IHJlcGxpY2F0aW9uIHdpdGggcHVibGljYXRpb25zIGNyZWF0ZWQgdXNpbmcg Rk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFCisjIGNsYXVzZS4KKyMgQ3JlYXRlIHNjaGVtYXMg YW5kIHRhYmxlcyBvbiBwdWJsaXNoZXIKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICJDUkVBVEUgU0NIRU1BIHNjaDEiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSBzY2gxLnRhYjEgQVMgU0VMRUNUIGdlbmVyYXRl X3NlcmllcygxLDEwKSBBUyBhIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiQ1JFQVRFIFRBQkxFIHB1YmxpYy50YWIxKGEgaW50KSIpOworCisjIENyZWF0ZSBzY2hl bWFzIGFuZCB0YWJsZXMgb24gc3Vic2NyaWJlcgorJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsICJDUkVBVEUgU0NIRU1BIHNjaDEiKTsKKyRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFRBQkxFIHNjaDEudGFiMSAoYSBpbnQpIik7Cisk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBUQUJMRSBwdWJs aWMudGFiMSAoYSBpbnQpIik7CisKKyMgU2V0dXAgbG9naWNhbCByZXBsaWNhdGlvbgorbXkgJHB1 Ymxpc2hlcl9jb25uc3RyID0gJG5vZGVfcHVibGlzaGVyLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9z dGdyZXMnOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRF IFBVQkxJQ0FUSU9OIHRhcF9wdWJfc2NoZW1hIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBz Y2gxLnRhYjEiCispOworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KwkiQ1JFQVRFIFNVQlNDUklQVElPTiB0YXBfc3ViX3NjaGVtYSBDT05ORUNUSU9OICckcHVibGlz aGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHRhcF9wdWJfc2NoZW1hIgorKTsKKworIyBXYWl0IGZv ciBpbml0aWFsIHRhYmxlIHN5bmMgdG8gZmluaXNoCiskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zv cl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsCisJJ3RhcF9zdWJfc2NoZW1hJyk7 CisKKyMgQ2hlY2sgdGhlIHRhYmxlIGRhdGEgZG9lcyBub3Qgc3luYyBmb3IgZXhjbHVkZWQgdGFi bGUKK215ICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KwkiU0VMRUNUIGNvdW50KCopLCBtaW4oYSksIG1heChhKSBGUk9NIHNjaDEudGFiMSIpOworaXMo JHJlc3VsdCwgcXEoMHx8KSwKKwknY2hlY2sgdGhlcmUgaXMgbm8gaW5pdGlhbCBkYXRhIGNvcGll ZCBmb3IgdGhlIGV4Y2x1ZGVkIHRhYmxlJyk7CisKKyMgSW5zZXJ0IHNvbWUgZGF0YSBhbmQgdmVy aWZ5IHRoYXQgaW5zZXJ0ZWQgZGF0YSBpcyBub3QgcmVwbGljYXRlZAorJG5vZGVfcHVibGlzaGVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gc2NoMS50YWIxIFZBTFVFUyhn ZW5lcmF0ZV9zZXJpZXMoMTEsMjApKSIpOworCiskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2Nh dGNodXAoJ3RhcF9zdWJfc2NoZW1hJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopLCBtaW4oYSksIG1heChhKSBG Uk9NIHNjaDEudGFiMSIpOworaXMoJHJlc3VsdCwgcXEoMHx8KSwgJ2NoZWNrIHJlcGxpY2F0ZWQg aW5zZXJ0cyBvbiBzdWJzY3JpYmVyJyk7CisKKyMgQWx0ZXIgcHVibGljYXRpb24gdG8gZXhjbHVk ZSBkYXRhIGNoYW5nZXMgaW4gcHVibGljLnRhYjEgYW5kIHZlcmlmeSB0aGF0CisjIHN1YnNjcmli ZXIgZG9lcyBub3QgZ2V0IHRoZSBjaGFuZ2VkIGRhdGEgZm9yIHRoaXMgdGFibGUuCiskbm9kZV9w dWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBQVUJMSUNBVElPTiB0YXBf cHViX3NjaGVtYSBSRVNFVCIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9zY2hlbWEgQUREIEFMTCBUQUJMRVMgRVhD RVBUIFRBQkxFIHNjaDEudGFiMSwgcHVibGljLnRhYjEiCispOworJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gcHVibGljLnRhYjEgVkFMVUVTKGdl bmVyYXRlX3NlcmllcygxLDEwKSkiKTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRj aHVwKCd0YXBfc3ViX3NjaGVtYScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSwgbWluKGEpLCBtYXgoYSkgRlJP TSBwdWJsaWMudGFiMSIpOworaXMoJHJlc3VsdCwgcXEoMHx8KSwgJ2NoZWNrIHJvd3Mgb24gc3Vi c2NyaWJlciBjYXRjaHVwJyk7CisKKyRub2RlX3N1YnNjcmliZXItPnN0b3AoJ2Zhc3QnKTsKKyRu b2RlX3B1Ymxpc2hlci0+c3RvcCgnZmFzdCcpOworCitkb25lX3Rlc3RpbmcoKTsKLS0gCjIuMzQu MQoK --000000000000e99f730637bfa40a Content-Type: application/octet-stream; name="v12-0003-Skip-publishing-the-columns-specified-in-FOR-TAB.patch" Content-Disposition: attachment; filename="v12-0003-Skip-publishing-the-columns-specified-in-FOR-TAB.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mc07rl682 RnJvbSA2ODQwMzU3ODUyM2M5Njk0M2MzNjE2ZGJiZGIyYTgyYWQ4ODYzMjQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMTcgSnVuIDIwMjUgMTI6MTI6MjQgKzA1MzAKU3ViamVjdDogW1BBVENIIHYx MiAzLzNdIFNraXAgcHVibGlzaGluZyB0aGUgY29sdW1ucyBzcGVjaWZpZWQgaW4gRk9SIFRBQkxF CiBFWENFUFQKClRoaXMgcGF0Y2ggaW50cm9kdWNlcyBzeW50YXggdG8gZXhjbHVkZSBjb2x1bW5z IG9mIHRhYmxlcyBmcm9tCnB1YmxpY2F0aW9uLiBTeW50YXg6IEZPUiBUQUJMRSB0YWJuYW1lIEVY Q0VQVCAoY29sdW1uX2xpc3QpCkl0IGNhbiBiZSB1c2VkIHdpdGggQ1JFQVRFLyBBTFRFUiBQVUJM SUNBVElPTi4gRWc6CkNSRUFURSBQVUJMSUNBVElPTiBwdWJuYW1lIEZPUiBUQUJMRSB0YWJuYW1l IEVYQ0VQVCAoZXhjbHVkZV9jb2x1bW5fbGlzdCkKQUxURVIgUFVCTElDQVRJT04gcHVibmFtZSBB REQgVEFCTEUgdGFibmFtZSBFWENFUFQgKGV4Y2x1ZGVfY29sdW1uX2xpc3QpCi0tLQogZG9jL3Ny Yy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDE0ICsrCiBkb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwgICAgICAgfCAgMTAgKy0KIGRvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwgICAgICB8ICAxOCArKy0KIHNyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYyAgICAgICAgICB8IDEzNSArKysrKysrKysrKysr KysrKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jICAgICAgICB8ICA3 MyArKysrKysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAg ICAgfCAgNjAgKysrKysrKysKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0 cHV0LmMgICB8ICA0NyArKysrKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAg ICAgICAgICAgICB8ICAzOSArKysrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAg ICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24u aCAgICAgICAgICB8ICAgOSArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9y ZWwuaCAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAg ICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91 dCAgICAgfCAgNjUgKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5z cWwgICAgICAgICAgfCAgNDUgKysrKysrCiAuLi4vdC8wMzZfcmVwX2NoYW5nZXNfZXhjZXB0X3Rh YmxlLnBsICAgICAgICAgfCAgNjAgKysrKysrKy0KIDE1IGZpbGVzIGNoYW5nZWQsIDU2MCBpbnNl cnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IDRlMzdjOTI4YjQ0 Li41NDQ5OThhMTcyNSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTY1ODksNiArNjU4OSwyMCBAQCBTQ1JB TS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFi bGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgIEEgbnVsbCB2YWx1ZSBpbmRpY2F0ZXMgdGhhdCBh bGwgY29sdW1ucyBhcmUgcHVibGlzaGVkLgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwv cm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5w cmV4Y2x1ZGVhdHRyczwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDJ2ZWN0b3I8L3R5cGU+CisgICAg ICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1hdHRyaWJ1dGUiPjxzdHJ1 Y3RuYW1lPnBnX2F0dHJpYnV0ZTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5hdHRu dW08L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRo aXMgaXMgYW4gYXJyYXkgb2YgdmFsdWVzIHRoYXQgaW5kaWNhdGVzIHdoaWNoIHRhYmxlIGNvbHVt bnMgYXJlCisgICAgICAgZXhjbHVkZWQgZnJvbSB0aGUgcHVibGljYXRpb24uICBGb3IgZXhhbXBs ZSwgYSB2YWx1ZSBvZgorICAgICAgIDxsaXRlcmFsPjEgMzwvbGl0ZXJhbD4gd291bGQgbWVhbiB0 aGF0IHRoZSBjb2x1bW5zIGV4Y2VwdCB0aGUgZmlyc3QgYW5kCisgICAgICAgdGhlIHRoaXJkIGNv bHVtbnMgYXJlIHB1Ymxpc2hlZC4KKyAgICAgICBBIG51bGwgdmFsdWUgaW5kaWNhdGVzIHRoYXQg bm8gY29sdW1ucyBhcmUgZXhjbHVkZWQgZnJvbSBiZWluZyBwdWJsaXNoZWQuCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CiAgICAgPC90Ym9keT4KICAgIDwvdGdyb3VwPgogICA8 L3RhYmxlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5z Z21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCmluZGV4IDM3ZTJj ODRiYzEwLi43MGIwNGZjNzMyMCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9w dWJsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24u c2dtbApAQCAtMzIsNyArMzIsNyBAQCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFU0VUCiAKIDxwaHJhc2U+d2hlcmUg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFj ZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KIAotICAgIFRBQkxFIFsgT05MWSBdIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWyAo IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+ IFssIC4uLiBdICkgXSBbIFdIRVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4 cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIF0gWywgLi4uIF0KKyAgICBUQUJMRSBbIE9OTFkgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsg KiBdIHsgWyBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9y ZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdIHwgWyBFWENFUFQgKCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0gXSB9IFsg V0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFj ZWFibGU+ICkgXSBbLCAuLi4gXQogICAgIFRBQkxFUyBJTiBTQ0hFTUEgeyA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfU0NI RU1BIH0gWywgLi4uIF0KIAogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+ZXhjZXB0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgpAQCAtMjYw LDYgKzI2MCwxNCBAQCBBTFRFUiBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEFE RCBBTEwgVEFCTEVTIEVYQ0VQVCB1c2VycywgZGVwYXJ0bWVudAogICAgPHN0cnVjdG5hbWU+cHJv ZHVjdGlvbl9wdWJsaWNhdGlvbjwvc3RydWN0bmFtZT46CiA8cHJvZ3JhbWxpc3Rpbmc+CiBBTFRF UiBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEFERCBUQUJMRSB1c2VycywgZGVw YXJ0bWVudHMsIFRBQkxFUyBJTiBTQ0hFTUEgcHJvZHVjdGlvbjsKKzwvcHJvZ3JhbWxpc3Rpbmc+ PC9wYXJhPgorCisgIDxwYXJhPgorICAgQWx0ZXIgcHVibGljYXRpb24gPHN0cnVjdG5hbWU+bXlw dWJsaWNhdGlvbjwvc3RydWN0bmFtZT4gdG8gYWRkIHRhYmxlCisgICA8c3RydWN0bmFtZT51c2Vy czwvc3RydWN0bmFtZT4gZXhjZXB0IGNvbHVtbgorICAgPHN0cnVjdG5hbWU+c2VjdXJpdHlfcGlu PC9zdHJ1Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIFBVQkxJQ0FUSU9OIHByb2R1 Y3Rpb25fcHVibGljYXRpb24gQUREIFRBQkxFIHVzZXJzIEVYQ0VQVCAoc2VjdXJpdHlfcGluKTsK IDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCiAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3B1YmxpY2F0aW9uLnNnbWwKaW5kZXggN2ZkODg3MmRiNWYuLmJiNDRhMjBiMjhkIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTI4LDcgKzI4LDcgQEAg Q1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9y ZXBsYWNlYWJsZT4KIAogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cHVibGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXMgb25lIG9mOjwvcGhyYXNlPgog Ci0gICAgVEFCTEUgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxl X25hbWU8L3JlcGxhY2VhYmxlPiBbICogXSBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdIFsgV0hFUkUgKCA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgXSBb LCAuLi4gXQorICAgIFRBQkxFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0geyBbIFsgKCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0gfCBb IEVYQ0VQVCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVw bGFjZWFibGU+IFssIC4uLiBdICkgXSBdIH0gWyBXSEVSRSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gKSBdIFssIC4uLiBdCiAgICAgVEFC TEVTIElOIFNDSEVNQSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFt ZTwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9TQ0hFTUEgfSBbLCAuLi4gXQogCiA8cGhyYXNlPndo ZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leGNlcHRpb25fb2JqZWN0PC9yZXBs YWNlYWJsZT4gaXM6PC9waHJhc2U+CkBAIC0xMDMsNiArMTAzLDE0IEBAIENSRUFURSBQVUJMSUNB VElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAg ICAgICBsaXN0cy4KICAgICAgPC9wYXJhPgogCisgICAgIDxwYXJhPgorICAgICAgV2hlbiBhIGNv bHVtbiBsaXN0IGlzIHNwZWNpZmllZCB3aXRoIEVYQ0VQVCwgdGhlIG5hbWVkIGNvbHVtbnMgYXJl IG5vdAorICAgICAgcmVwbGljYXRlZC4gVGhlIGV4Y2x1ZGVkIGNvbHVtbiBsaXN0IGNhbm5vdCBj b250YWluIGdlbmVyYXRlZCBjb2x1bW5zLiBUaGUKKyAgICAgIGNvbHVtbiBsaXN0IGFuZCBleGNs dWRlZCBjb2x1bW4gbGlzdCBjYW5ub3QgYmUgc3BlY2lmaWVkIHRvZ2V0aGVyLgorICAgICAgU3Bl Y2lmeWluZyBhIGNvbHVtbiBsaXN0IGhhcyBubyBlZmZlY3Qgb24gPGxpdGVyYWw+VFJVTkNBVEU8 L2xpdGVyYWw+CisgICAgICBjb21tYW5kcy4KKyAgICAgPC9wYXJhPgorCiAgICAgIDxwYXJhPgog ICAgICAgT25seSBwZXJzaXN0ZW50IGJhc2UgdGFibGVzIGFuZCBwYXJ0aXRpb25lZCB0YWJsZXMg Y2FuIGJlIHBhcnQgb2YgYQogICAgICAgcHVibGljYXRpb24uICBUZW1wb3JhcnkgdGFibGVzLCB1 bmxvZ2dlZCB0YWJsZXMsIGZvcmVpZ24gdGFibGVzLApAQCAtNDc0LDYgKzQ4MiwxNCBAQCBDUkVB VEUgUFVCTElDQVRJT04gbXlwdWJsaWNhdGlvbiBGT1IgQUxMIFRBQkxFUyBFWENFUFQgdXNlcnMs IGRlcGFydG1lbnRzOwogPHByb2dyYW1saXN0aW5nPgogQ1JFQVRFIFBVQkxJQ0FUSU9OIHVzZXJz X2ZpbHRlcmVkIEZPUiBUQUJMRSB1c2VycyAodXNlcl9pZCwgZmlyc3RuYW1lKTsKIDwvcHJvZ3Jh bWxpc3Rpbmc+PC9wYXJhPgorCisgIDxwYXJhPgorICAgQ3JlYXRlIGEgcHVibGljYXRpb24gdGhh dCBwdWJsaXNoZXMgYWxsIGNoYW5nZXMgZm9yIHRhYmxlIDxzdHJ1Y3RuYW1lPnVzZXJzPC9zdHJ1 Y3RuYW1lPgorICAgZXhjZXB0IGNoYW5nZXMgZm9yIGNvbHVtbnMgPHN0cnVjdG5hbWU+c2VjdXJp dHlfcGluPC9zdHJ1Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBQVUJMSUNBVElP TiB1c2Vyc19zYWZlIEZPUiBUQUJMRSB1c2VycyBFWENFUFQgKHNlY3VyaXR5X3Bpbik7Cis8L3By b2dyYW1saXN0aW5nPgorICA8L3BhcmE+CiAgPC9yZWZzZWN0MT4KIAogIDxyZWZzZWN0MT4KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYwppbmRleCBlYzU4MGUzYjA1MC4uOGZkOWFjODQ0 NTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYworKysg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKQEAgLTMwMiw2ICszMDIsNTMg QEAgY2hlY2tfYW5kX2ZldGNoX2NvbHVtbl9saXN0KFB1YmxpY2F0aW9uICpwdWIsIE9pZCByZWxp ZCwgTWVtb3J5Q29udGV4dCBtY3h0LAogCXJldHVybiBmb3VuZDsKIH0KIAorLyoKKyAqIFJldHVy bnMgdHJ1ZSBpZiB0aGUgcmVsYXRpb24gaGFzIGV4bHVkZWQgY29sdW1uIGxpc3QgYXNzb2NpYXRl ZCB3aXRoIHRoZQorICogcHVibGljYXRpb24sIGZhbHNlIG90aGVyd2lzZS4KKyAqCisgKiBJZiBh IGV4Y2x1ZGUgY29sdW1uIGxpc3QgaXMgZm91bmQsIHRoZSBjb3JyZXNwb25kaW5nIGJpdG1hcCBp cyByZXR1cm5lZAorICogdGhyb3VnaCB0aGUgY29scyBwYXJhbWV0ZXIsIGlmIHByb3ZpZGVkLiBU aGUgYml0bWFwIGlzIGNvbnN0cnVjdGVkIHdpdGhpbiB0aGUKKyAqIGdpdmVuIG1lbW9yeSBjb250 ZXh0IChtY3h0KS4KKyAqLworCitib29sCitjaGVja19hbmRfZmV0Y2hfZXhjbHVkZV9jb2x1bW5f bGlzdChQdWJsaWNhdGlvbiAqcHViLCBPaWQgcmVsaWQsIE1lbW9yeUNvbnRleHQgbWN4dCwKKwkJ CQkJCQkJCUJpdG1hcHNldCAqKmNvbHMpCit7CisJSGVhcFR1cGxlCWNmdHVwbGU7CisJYm9vbAkJ Zm91bmQgPSBmYWxzZTsKKworCWlmIChwdWItPmFsbHRhYmxlcykKKwkJcmV0dXJuIGZhbHNlOwor CisJY2Z0dXBsZSA9IFNlYXJjaFN5c0NhY2hlMihQVUJMSUNBVElPTlJFTE1BUCwKKwkJCQkJCQkg IE9iamVjdElkR2V0RGF0dW0ocmVsaWQpLAorCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bShwdWIt Pm9pZCkpOworCWlmIChIZWFwVHVwbGVJc1ZhbGlkKGNmdHVwbGUpKQorCXsKKwkJRGF0dW0JCWNm ZGF0dW07CisJCWJvb2wJCWlzbnVsbDsKKworCQkvKiBMb29rdXAgdGhlIGNvbHVtbiBsaXN0IGF0 dHJpYnV0ZS4gKi8KKwkJY2ZkYXR1bSA9IFN5c0NhY2hlR2V0QXR0cihQVUJMSUNBVElPTlJFTE1B UCwgY2Z0dXBsZSwKKwkJCQkJCQkJICBBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcmV4Y2x1ZGVh dHRycywgJmlzbnVsbCk7CisKKwkJLyogV2FzIGEgY29sdW1uIGxpc3QgZm91bmQ/ICovCisJCWlm ICghaXNudWxsKQorCQl7CisJCQkvKiBCdWlsZCB0aGUgY29sdW1uIGxpc3QgYml0bWFwIGluIHRo ZSBnaXZlbiBtZW1vcnkgY29udGV4dC4gKi8KKwkJCWlmIChjb2xzKQorCQkJCSpjb2xzID0gcHVi X2NvbGxpc3RfdG9fYml0bWFwc2V0KCpjb2xzLCBjZmRhdHVtLCBtY3h0KTsKKworCQkJZm91bmQg PSB0cnVlOworCQl9CisKKwkJUmVsZWFzZVN5c0NhY2hlKGNmdHVwbGUpOworCX0KKworCXJldHVy biBmb3VuZDsKK30KKwogLyoKICAqIEdldHMgdGhlIHJlbGF0aW9ucyBiYXNlZCBvbiB0aGUgcHVi bGljYXRpb24gcGFydGl0aW9uIG9wdGlvbiBmb3IgYSBzcGVjaWZpZWQKICAqIHJlbGF0aW9uLgpA QCAtNDQ5LDYgKzQ5Niw3IEBAIHB1YmxpY2F0aW9uX2FkZF9yZWxhdGlvbihPaWQgcHViaWQsIFB1 YmxpY2F0aW9uUmVsSW5mbyAqcHJpLAogCU9pZAkJCXJlbGlkID0gUmVsYXRpb25HZXRSZWxpZCh0 YXJnZXRyZWwpOwogCU9pZAkJCXB1YnJlbG9pZDsKIAlCaXRtYXBzZXQgICphdHRudW1zOworCUJp dG1hcHNldCAgKmV4Y2x1ZGVhdHRudW1zOwogCVB1YmxpY2F0aW9uICpwdWIgPSBHZXRQdWJsaWNh dGlvbihwdWJpZCk7CiAJT2JqZWN0QWRkcmVzcyBteXNlbGYsCiAJCQkJcmVmZXJlbmNlZDsKQEAg LTQ4MSw2ICs1MjksMTMgQEAgcHVibGljYXRpb25fYWRkX3JlbGF0aW9uKE9pZCBwdWJpZCwgUHVi bGljYXRpb25SZWxJbmZvICpwcmksCiAJLyogVmFsaWRhdGUgYW5kIHRyYW5zbGF0ZSBjb2x1bW4g bmFtZXMgaW50byBhIEJpdG1hcHNldCBvZiBhdHRudW1zLiAqLwogCWF0dG51bXMgPSBwdWJfY29s bGlzdF92YWxpZGF0ZShwcmktPnJlbGF0aW9uLCBwcmktPmNvbHVtbnMpOwogCisJLyoKKwkgKiBW YWxpZGF0ZSBhbmQgdHJhbnNsYXRlIGV4Y2x1ZGVkIGNvbHVtbiBuYW1lcyBpbnRvIGEgQml0bWFw c2V0IG9mCisJICogYXR0bnVtcy4KKwkgKi8KKwlleGNsdWRlYXR0bnVtcyA9IHB1Yl9leGNsdWRl X2NvbGxpc3RfdmFsaWRhdGUocHJpLT5yZWxhdGlvbiwKKwkJCQkJCQkJCQkJCSAgcHJpLT5leGNs dWRlX2NvbHVtbnMpOworCiAJLyogRm9ybSBhIHR1cGxlLiAqLwogCW1lbXNldCh2YWx1ZXMsIDAs IHNpemVvZih2YWx1ZXMpKTsKIAltZW1zZXQobnVsbHMsIGZhbHNlLCBzaXplb2YobnVsbHMpKTsK QEAgLTUwNyw2ICs1NjIsMTEgQEAgcHVibGljYXRpb25fYWRkX3JlbGF0aW9uKE9pZCBwdWJpZCwg UHVibGljYXRpb25SZWxJbmZvICpwcmksCiAJZWxzZQogCQludWxsc1tBbnVtX3BnX3B1YmxpY2F0 aW9uX3JlbF9wcmF0dHJzIC0gMV0gPSB0cnVlOwogCisJaWYgKHByaS0+ZXhjbHVkZV9jb2x1bW5z KQorCQl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfcHJleGNsdWRlYXR0cnMgLSAxXSA9 IFBvaW50ZXJHZXREYXR1bShhdHRudW1zdG9pbnQydmVjdG9yKGV4Y2x1ZGVhdHRudW1zKSk7CisJ ZWxzZQorCQludWxsc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcmV4Y2x1ZGVhdHRycyAtIDFd ID0gdHJ1ZTsKKwogCXR1cCA9IGhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2NyKHJlbCks IHZhbHVlcywgbnVsbHMpOwogCiAJLyogSW5zZXJ0IHR1cGxlIGludG8gY2F0YWxvZy4gKi8KQEAg LTYwOSw2ICs2NjksNTggQEAgcHViX2NvbGxpc3RfdmFsaWRhdGUoUmVsYXRpb24gdGFyZ2V0cmVs LCBMaXN0ICpjb2x1bW5zKQogCXJldHVybiBzZXQ7CiB9CiAKKy8qCisgKiBwdWJfZXhjbHVkZV9j b2xsaXN0X3ZhbGlkYXRlCisgKgkJUHJvY2VzcyBhbmQgdmFsaWRhdGUgdGhlICdleGNsdWRlZCBj b2x1bW5zJyBsaXN0IGFuZCBlbnN1cmUgdGhlIGNvbHVtbnMKKyAqCQlhcmUgYWxsIHZhbGlkIHRv IGV4Y2x1ZGUgZnJvbSBwdWJsaWNhdGlvbi4gIENoZWNrcyBmb3IgYW5kIHJhaXNlcyBhbgorICog CQlFUlJPUiBmb3IgYW55IHVua25vd24gY29sdW1ucywgc3lzdGVtIGNvbHVtbnMsIGR1cGxpY2F0 ZSBjb2x1bW5zLCBvcgorICoJCWdlbmVyYXRlZCBjb2x1bW5zLgorICoKKyAqIExvb2tzIHVwIGVh Y2ggY29sdW1uJ3MgYXR0bnVtIGFuZCByZXR1cm5zIGEgMC1iYXNlZCBCaXRtYXBzZXQgb2YgdGhl CisgKiBjb3JyZXNwb25kaW5nIGF0dG51bXMuCisgKi8KK0JpdG1hcHNldCAqCitwdWJfZXhjbHVk ZV9jb2xsaXN0X3ZhbGlkYXRlKFJlbGF0aW9uIHRhcmdldHJlbCwgTGlzdCAqZXhjbHVkZV9jb2x1 bW5zKQoreworCUJpdG1hcHNldCAgKnNldCA9IE5VTEw7CisJTGlzdENlbGwgICAqbGM7CisJVHVw bGVEZXNjCXR1cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHRhcmdldHJlbCk7CisKKwlmb3JlYWNo KGxjLCBleGNsdWRlX2NvbHVtbnMpCisJeworCQljaGFyCSAgICpjb2xuYW1lID0gc3RyVmFsKGxm aXJzdChsYykpOworCQlBdHRyTnVtYmVyCWF0dG51bSA9IGdldF9hdHRudW0oUmVsYXRpb25HZXRS ZWxpZCh0YXJnZXRyZWwpLCBjb2xuYW1lKTsKKworCQlpZiAoYXR0bnVtID09IEludmFsaWRBdHRy TnVtYmVyKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX1VOREVGSU5F RF9DT0xVTU4pLAorCQkJCQllcnJtc2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wi IGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCSAgIGNvbG5hbWUsIFJlbGF0aW9uR2V0UmVsYXRpb25O YW1lKHRhcmdldHJlbCkpKTsKKworCQlpZiAoIUF0dHJOdW1iZXJJc0ZvclVzZXJEZWZpbmVkQXR0 cihhdHRudW0pKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFM SURfQ09MVU1OX1JFRkVSRU5DRSksCisJCQkJCWVycm1zZygiY2Fubm90IHVzZSBzeXN0ZW0gY29s dW1uIFwiJXNcIiBpbiBwdWJsaWNhdGlvbiBleGNlcHQgY29sdW1uIGxpc3QiLAorCQkJCQkJICAg Y29sbmFtZSkpOworCisJCWlmIChUdXBsZURlc2NBdHRyKHR1cGRlc2MsIGF0dG51bSAtIDEpLT5h dHRnZW5lcmF0ZWQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5W QUxJRF9DT0xVTU5fUkVGRVJFTkNFKSwKKwkJCQkJZXJybXNnKCJjYW5ub3QgdXNlIGdlbmVyYXRl ZCBjb2x1bW4gXCIlc1wiIGluIHB1YmxpY2F0aW9uIGV4Y2VwdCBjb2x1bW4gbGlzdCIsCisJCQkJ CQkgICBjb2xuYW1lKSk7CisKKwkJaWYgKGJtc19pc19tZW1iZXIoYXR0bnVtLCBzZXQpKQorCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAor CQkJCQllcnJtc2coImR1cGxpY2F0ZSBjb2x1bW4gXCIlc1wiIGluIHB1YmxpY2F0aW9uIGV4Y2Vw dCBjb2x1bW4gbGlzdCIsCisJCQkJCQkgICBjb2xuYW1lKSk7CisKKwkJc2V0ID0gYm1zX2FkZF9t ZW1iZXIoc2V0LCBhdHRudW0pOworCX0KKworCXJldHVybiBzZXQ7Cit9CisKIC8qCiAgKiBUcmFu c2Zvcm0gYSBjb2x1bW4gbGlzdCAocmVwcmVzZW50ZWQgYnkgYW4gYXJyYXkgRGF0dW0pIHRvIGEg Yml0bWFwc2V0LgogICoKQEAgLTY0NiwxMCArNzU4LDEyIEBAIHB1Yl9jb2xsaXN0X3RvX2JpdG1h cHNldChCaXRtYXBzZXQgKmNvbHVtbnMsIERhdHVtIHB1YmNvbHMsIE1lbW9yeUNvbnRleHQgbWN4 dCkKICAqIFJldHVybnMgYSBiaXRtYXAgcmVwcmVzZW50aW5nIHRoZSBjb2x1bW5zIG9mIHRoZSBz cGVjaWZpZWQgdGFibGUuCiAgKgogICogR2VuZXJhdGVkIGNvbHVtbnMgYXJlIGluY2x1ZGVkIGlm IGluY2x1ZGVfZ2VuY29sc190eXBlIGlzCi0gKiBQVUJMSVNIX0dFTkNPTFNfU1RPUkVELgorICog UFVCTElTSF9HRU5DT0xTX1NUT1JFRC4gQ29sdW1ucyB0aGF0IGFyZSBpbiB0aGUgZXhjbHVkZWNv bHMgYXJlIGV4Y2x1ZGVkIGZyb20KKyAqIHRoZSBjb2x1bW4gbGlzdC4KICAqLwogQml0bWFwc2V0 ICoKLXB1Yl9mb3JtX2NvbHNfbWFwKFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJsaXNoR2VuY29sc1R5 cGUgaW5jbHVkZV9nZW5jb2xzX3R5cGUpCitwdWJfZm9ybV9jb2xzX21hcChSZWxhdGlvbiByZWxh dGlvbiwgUHVibGlzaEdlbmNvbHNUeXBlIGluY2x1ZGVfZ2VuY29sc190eXBlLAorCQkJCSAgQml0 bWFwc2V0ICpleGNsdWRlY29scykKIHsKIAlCaXRtYXBzZXQgICpyZXN1bHQgPSBOVUxMOwogCVR1 cGxlRGVzYwlkZXNjID0gUmVsYXRpb25HZXREZXNjcihyZWxhdGlvbik7CkBAIC02NzIsNiArNzg2 LDkgQEAgcHViX2Zvcm1fY29sc19tYXAoUmVsYXRpb24gcmVsYXRpb24sIFB1Ymxpc2hHZW5jb2xz VHlwZSBpbmNsdWRlX2dlbmNvbHNfdHlwZSkKIAkJCQljb250aW51ZTsKIAkJfQogCisJCWlmIChl eGNsdWRlY29scyAmJiBibXNfaXNfbWVtYmVyKGF0dC0+YXR0bnVtLCBleGNsdWRlY29scykpCisJ CQljb250aW51ZTsKKwogCQlyZXN1bHQgPSBibXNfYWRkX21lbWJlcihyZXN1bHQsIGF0dC0+YXR0 bnVtKTsKIAl9CiAKQEAgLTEyNjMsNiArMTM4MCw5IEBAIHBnX2dldF9wdWJsaWNhdGlvbl90YWJs ZXMoUEdfRlVOQ1RJT05fQVJHUykKIAkJT2lkCQkJc2NoZW1haWQgPSBnZXRfcmVsX25hbWVzcGFj ZShyZWxpZCk7CiAJCURhdHVtCQl2YWx1ZXNbTlVNX1BVQkxJQ0FUSU9OX1RBQkxFU19FTEVNXSA9 IHswfTsKIAkJYm9vbAkJbnVsbHNbTlVNX1BVQkxJQ0FUSU9OX1RBQkxFU19FTEVNXSA9IHswfTsK KwkJRGF0dW0JCWV4Y2x1ZGVhdHRudW1zX2RhdHVtOworCQlCaXRtYXBzZXQgICpleGNsdWRlYXR0 bnVtcyA9IE5VTEw7CisJCWJvb2wJCWlzbnVsbDsKIAogCQkvKgogCQkgKiBGb3JtIHR1cGxlIHdp dGggYXBwcm9wcmlhdGUgZGF0YS4KQEAgLTEyOTYsNiArMTQxNiwxMyBAQCBwZ19nZXRfcHVibGlj YXRpb25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQl2YWx1ZXNbM10gPSBTeXNDYWNoZUdl dEF0dHIoUFVCTElDQVRJT05SRUxNQVAsIHB1YnR1cGxlLAogCQkJCQkJCQkJCUFudW1fcGdfcHVi bGljYXRpb25fcmVsX3BycXVhbCwKIAkJCQkJCQkJCQkmKG51bGxzWzNdKSk7CisKKwkJCS8qIGdl dCB0aGUgZXhjbHVkZWQgY29sdW1uIGxpc3QgKi8KKwkJCWV4Y2x1ZGVhdHRudW1zX2RhdHVtID0g U3lzQ2FjaGVHZXRBdHRyKFBVQkxJQ0FUSU9OUkVMTUFQLCBwdWJ0dXBsZSwKKwkJCQkJCQkJCQkJ CSAgIEFudW1fcGdfcHVibGljYXRpb25fcmVsX3ByZXhjbHVkZWF0dHJzLAorCQkJCQkJCQkJCQkJ ICAgJmlzbnVsbCk7CisJCQlpZiAoIWlzbnVsbCkKKwkJCQlleGNsdWRlYXR0bnVtcyA9IHB1Yl9j b2xsaXN0X3RvX2JpdG1hcHNldChOVUxMLCBleGNsdWRlYXR0bnVtc19kYXR1bSwgTlVMTCk7CiAJ CX0KIAkJZWxzZQogCQl7CkBAIC0xMzM1LDYgKzE0NjIsMTAgQEAgcGdfZ2V0X3B1YmxpY2F0aW9u X3RhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCQkJCQkJY29udGludWU7CiAJCQkJfQogCisJCQkJ LyogU2tpcCBjb2x1bW5zIHRoYXQgYXJlIHBhcnQgb2YgZXhjbHVkZWQgY29sdW1uIGxpc3QgKi8K KwkJCQlpZiAoZXhjbHVkZWF0dG51bXMgJiYgYm1zX2lzX21lbWJlcihhdHQtPmF0dG51bSwgZXhj bHVkZWF0dG51bXMpKQorCQkJCQljb250aW51ZTsKKwogCQkJCWF0dG51bXNbbmF0dG51bXMrK10g PSBhdHQtPmF0dG51bTsKIAkJCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv cHVibGljYXRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMu YwppbmRleCA1MTk0YjJmYjZlMi4uZTg1MGMyMzQ1ZWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1 YmxpY2F0aW9uY21kcy5jCkBAIC0zNTgsNyArMzU4LDggQEAgcHViX3JmX2NvbnRhaW5zX2ludmFs aWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sIExpc3QgKmFuY2VzdG9ycywK ICAqIFRoaXMgZnVuY3Rpb24gZXZhbHVhdGVzIHR3byBjb25kaXRpb25zOgogICoKICAqIDEuIEVu c3VyZXMgdGhhdCBhbGwgY29sdW1ucyByZWZlcmVuY2VkIGluIHRoZSBSRVBMSUNBIElERU5USVRZ IGFyZSBjb3ZlcmVkCi0gKiAgICBieSB0aGUgY29sdW1uIGxpc3QuIElmIGFueSBjb2x1bW4gaXMg bWlzc2luZywgKmludmFsaWRfY29sdW1uX2xpc3QgaXMgc2V0CisgKiAgICBieSB0aGUgY29sdW1u IGxpc3QgYW5kIG5vdCBwYXJ0IG9mIGV4Y2x1ZGVkIGNvbHVtbiBsaXN0LiBJZiBhbnkgY29sdW1u IGlzCisgKiAJICBtaXNzaW5nIG9yIGlzIHBhcnQgb2YgZXhjbHVkZSBjb2x1bW4gbGlzdCwgKmlu dmFsaWRfY29sdW1uX2xpc3QgaXMgc2V0CiAgKiAgICB0byB0cnVlLgogICogMi4gRW5zdXJlcyB0 aGF0IGFsbCB0aGUgZ2VuZXJhdGVkIGNvbHVtbnMgcmVmZXJlbmNlZCBpbiB0aGUgUkVQTElDQSBJ REVOVElUWQogICogICAgYXJlIHB1Ymxpc2hlZCwgZWl0aGVyIGJ5IGJlaW5nIGV4cGxpY2l0bHkg bmFtZWQgaW4gdGhlIGNvbHVtbiBsaXN0IG9yLCBpZgpAQCAtMzc4LDYgKzM3OSw3IEBAIHB1Yl9j b250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0 ICphbmNlc3RvcnMsCiAJT2lkCQkJcHVibGlzaF9hc19yZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQo cmVsYXRpb24pOwogCUJpdG1hcHNldCAgKmlkYXR0cnM7CiAJQml0bWFwc2V0ICAqY29sdW1ucyA9 IE5VTEw7CisJQml0bWFwc2V0ICAqZXhjbHVkZV9jb2x1bW5zID0gTlVMTDsKIAlUdXBsZURlc2MJ ZGVzYyA9IFJlbGF0aW9uR2V0RGVzY3IocmVsYXRpb24pOwogCVB1YmxpY2F0aW9uICpwdWI7CiAJ aW50CQkJeDsKQEAgLTQwNSwxMSArNDA3LDE1IEBAIHB1Yl9jb250YWluc19pbnZhbGlkX2NvbHVt bihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiAJLyogRmV0 Y2ggdGhlIGNvbHVtbiBsaXN0ICovCiAJcHViID0gR2V0UHVibGljYXRpb24ocHViaWQpOwogCWNo ZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlzdChwdWIsIHB1Ymxpc2hfYXNfcmVsaWQsIE5VTEwsICZj b2x1bW5zKTsKKwljaGVja19hbmRfZmV0Y2hfZXhjbHVkZV9jb2x1bW5fbGlzdChwdWIsIHB1Ymxp c2hfYXNfcmVsaWQsIE5VTEwsICZleGNsdWRlX2NvbHVtbnMpOwogCiAJaWYgKHJlbGF0aW9uLT5y ZF9yZWwtPnJlbHJlcGxpZGVudCA9PSBSRVBMSUNBX0lERU5USVRZX0ZVTEwpCiAJewotCQkvKiBX aXRoIFJFUExJQ0EgSURFTlRJVFkgRlVMTCwgbm8gY29sdW1uIGxpc3QgaXMgYWxsb3dlZC4gKi8K LQkJKmludmFsaWRfY29sdW1uX2xpc3QgPSAoY29sdW1ucyAhPSBOVUxMKTsKKwkJLyoKKwkJICog V2l0aCBSRVBMSUNBIElERU5USVRZIEZVTEwsIG5vIGNvbHVtbiBsaXN0IGFuZCBubyBleGNsdWRl ZCBjb2x1bW4KKwkJICogbGlzdCBpcyBhbGxvd2VkLgorCQkgKi8KKwkJKmludmFsaWRfY29sdW1u X2xpc3QgPSAoY29sdW1ucyAhPSBOVUxMIHx8IGV4Y2x1ZGVfY29sdW1ucyAhPSBOVUxMKTsKIAog CQkvKgogCQkgKiBBcyB3ZSBkb24ndCBhbGxvdyBhIGNvbHVtbiBsaXN0IHdpdGggUkVQTElDQSBJ REVOVElUWSBGVUxMLCB0aGUKQEAgLTQ3MSw2ICs0NzcsMTYgQEAgcHViX2NvbnRhaW5zX2ludmFs aWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sIExpc3QgKmFuY2VzdG9ycywK IAkJCQlicmVhazsKIAkJCX0KIAorCQkJLyoKKwkJCSAqIElmIFJFUExJQ0EgSURFTlRJVFkgc2hv dWxkIG5vdCBjb250YWluIGNvbHVtbnMgd2hpY2ggYXJlCisJCQkgKiBleGNsdWRlZCBmcm9tIHRo ZSBwdWJsaWNhdGlvbi4KKwkJCSAqLworCQkJaWYgKGV4Y2x1ZGVfY29sdW1ucyAmJiBibXNfaXNf bWVtYmVyKGF0dC0+YXR0bnVtLCBleGNsdWRlX2NvbHVtbnMpKQorCQkJeworCQkJCSppbnZhbGlk X2NvbHVtbl9saXN0ID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJCX0KKwogCQkJLyogU2tpcCB2YWxp ZGF0aW5nIHRoZSBjb2x1bW4gbGlzdCBzaW5jZSBpdCBpcyBub3QgZGVmaW5lZCAqLwogCQkJY29u dGludWU7CiAJCX0KQEAgLTc5OCw3ICs4MTQsNyBAQCBDaGVja1B1YlJlbGF0aW9uQ29sdW1uTGlz dChjaGFyICpwdWJuYW1lLCBMaXN0ICp0YWJsZXMsCiAJewogCQlQdWJsaWNhdGlvblJlbEluZm8g KnByaSA9IChQdWJsaWNhdGlvblJlbEluZm8gKikgbGZpcnN0KGxjKTsKIAotCQlpZiAocHJpLT5j b2x1bW5zID09IE5JTCkKKwkJaWYgKHByaS0+Y29sdW1ucyA9PSBOSUwgJiYgcHJpLT5leGNsdWRl X2NvbHVtbnMgPT0gTklMKQogCQkJY29udGludWU7CiAKIAkJLyoKQEAgLTEwNDMsNiArMTA1OSw3 IEBAIEFsdGVyUHVibGljYXRpb25PcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJs aWNhdGlvblN0bXQgKnN0bXQsCiAJCQljaGFyCSAgICpyZWxuYW1lOwogCQkJYm9vbAkJaGFzX3Jv d2ZpbHRlcjsKIAkJCWJvb2wJCWhhc19jb2xsaXN0OworCQkJYm9vbAkJaGFzX2V4Y2x1ZGVfY29s bGlzdDsKIAogCQkJLyoKIAkJCSAqIEJld2FyZTogd2UgZG9uJ3QgaGF2ZSBsb2NrIG9uIHRoZSBy ZWxhdGlvbnMsIHNvIGNvcGUgc2lsZW50bHkKQEAgLTEwNTYsNyArMTA3Myw5IEBAIEFsdGVyUHVi bGljYXRpb25PcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQg KnN0bXQsCiAJCQkJY29udGludWU7CiAJCQloYXNfcm93ZmlsdGVyID0gIWhlYXBfYXR0aXNudWxs KHJmdHVwbGUsIEFudW1fcGdfcHVibGljYXRpb25fcmVsX3BycXVhbCwgTlVMTCk7CiAJCQloYXNf Y29sbGlzdCA9ICFoZWFwX2F0dGlzbnVsbChyZnR1cGxlLCBBbnVtX3BnX3B1YmxpY2F0aW9uX3Jl bF9wcmF0dHJzLCBOVUxMKTsKLQkJCWlmICghaGFzX3Jvd2ZpbHRlciAmJiAhaGFzX2NvbGxpc3Qp CisJCQloYXNfZXhjbHVkZV9jb2xsaXN0ID0gIWhlYXBfYXR0aXNudWxsKHJmdHVwbGUsIEFudW1f cGdfcHVibGljYXRpb25fcmVsX3ByZXhjbHVkZWF0dHJzLCBOVUxMKTsKKworCQkJaWYgKCFoYXNf cm93ZmlsdGVyICYmICFoYXNfY29sbGlzdCAmJiAhaGFzX2V4Y2x1ZGVfY29sbGlzdCkKIAkJCXsK IAkJCQlSZWxlYXNlU3lzQ2FjaGUocmZ0dXBsZSk7CiAJCQkJY29udGludWU7CkBAIC0xMDgzLDYg KzExMDIsMTQgQEAgQWx0ZXJQdWJsaWNhdGlvbk9wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBB bHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAkJCQkJCQkJc3RtdC0+cHVibmFtZSksCiAJCQkJ CQkgZXJyZGV0YWlsKCJUaGUgcHVibGljYXRpb24gY29udGFpbnMgYSBXSEVSRSBjbGF1c2UgZm9y IHBhcnRpdGlvbmVkIHRhYmxlIFwiJXNcIiwgd2hpY2ggaXMgbm90IGFsbG93ZWQgd2hlbiBcIiVz XCIgaXMgZmFsc2UuIiwKIAkJCQkJCQkJICAgcmVsbmFtZSwgInB1Ymxpc2hfdmlhX3BhcnRpdGlv bl9yb290IikpKTsKKwkJCWlmIChoYXNfZXhjbHVkZV9jb2xsaXN0KQorCQkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJ CQkJCSBlcnJtc2coImNhbm5vdCBzZXQgcGFyYW1ldGVyIFwiJXNcIiB0byBmYWxzZSBmb3IgcHVi bGljYXRpb24gXCIlc1wiIiwKKwkJCQkJCQkJInB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290IiwK KwkJCQkJCQkJc3RtdC0+cHVibmFtZSksCisJCQkJCQkgZXJyZGV0YWlsKCJUaGUgcHVibGljYXRp b24gY29udGFpbnMgYSBleGNlcHQgY29sdW1uIGxpc3QgZm9yIHBhcnRpdGlvbmVkIHRhYmxlIFwi JXNcIiwgd2hpY2ggaXMgbm90IGFsbG93ZWQgd2hlbiBcIiVzXCIgaXMgZmFsc2UuIiwKKwkJCQkJ CQkJICAgcmVsbmFtZSwgInB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290IikpKTsKIAkJCUFzc2Vy dChoYXNfY29sbGlzdCk7CiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RF X0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKQEAgLTE0NDMsNiArMTQ3MCw3IEBAIEFsdGVyUHVi bGljYXRpb25UYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAs CiAJCQlIZWFwVHVwbGUJcmZ0dXBsZTsKIAkJCU5vZGUJICAgKm9sZHJlbHdoZXJlY2xhdXNlID0g TlVMTDsKIAkJCUJpdG1hcHNldCAgKm9sZGNvbHVtbnMgPSBOVUxMOworCQkJQml0bWFwc2V0ICAq b2xkZXhjbHVkZWNvbHVtbnMgPSBOVUxMOwogCiAJCQkvKiBsb29rIHVwIHRoZSBjYWNoZSBmb3Ig dGhlIG9sZCByZWxtYXAgKi8KIAkJCXJmdHVwbGUgPSBTZWFyY2hTeXNDYWNoZTIoUFVCTElDQVRJ T05SRUxNQVAsCkBAIC0xNDU4LDYgKzE0ODYsNyBAQCBBbHRlclB1YmxpY2F0aW9uVGFibGVzKEFs dGVyUHVibGljYXRpb25TdG10ICpzdG10LCBIZWFwVHVwbGUgdHVwLAogCQkJCWJvb2wJCWlzbnVs bCA9IHRydWU7CiAJCQkJRGF0dW0JCXdoZXJlQ2xhdXNlRGF0dW07CiAJCQkJRGF0dW0JCWNvbHVt bkxpc3REYXR1bTsKKwkJCQlEYXR1bQkJZXhjbHVkZUNvbHVtbkxpc3REYXR1bTsKIAogCQkJCS8q IExvYWQgdGhlIFdIRVJFIGNsYXVzZSBmb3IgdGhpcyB0YWJsZS4gKi8KIAkJCQl3aGVyZUNsYXVz ZURhdHVtID0gU3lzQ2FjaGVHZXRBdHRyKFBVQkxJQ0FUSU9OUkVMTUFQLCByZnR1cGxlLApAQCAt MTQ3NCw2ICsxNTAzLDE0IEBAIEFsdGVyUHVibGljYXRpb25UYWJsZXMoQWx0ZXJQdWJsaWNhdGlv blN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAsCiAJCQkJaWYgKCFpc251bGwpCiAJCQkJCW9sZGNv bHVtbnMgPSBwdWJfY29sbGlzdF90b19iaXRtYXBzZXQoTlVMTCwgY29sdW1uTGlzdERhdHVtLCBO VUxMKTsKIAorCQkJCS8qIFRyYW5zZm9ybSB0aGUgaW50MnZlY3RvciBleGNsdWRlIGNvbHVtbiBs aXN0IHRvIGEgYml0bWFwLiAqLworCQkJCWV4Y2x1ZGVDb2x1bW5MaXN0RGF0dW0gPSBTeXNDYWNo ZUdldEF0dHIoUFVCTElDQVRJT05SRUxNQVAsIHJmdHVwbGUsCisJCQkJCQkJCQkJCQkJCSBBbnVt X3BnX3B1YmxpY2F0aW9uX3JlbF9wcmV4Y2x1ZGVhdHRycywKKwkJCQkJCQkJCQkJCQkJICZpc251 bGwpOworCisJCQkJaWYgKCFpc251bGwpCisJCQkJCW9sZGV4Y2x1ZGVjb2x1bW5zID0gcHViX2Nv bGxpc3RfdG9fYml0bWFwc2V0KE5VTEwsIGV4Y2x1ZGVDb2x1bW5MaXN0RGF0dW0sIE5VTEwpOwor CiAJCQkJUmVsZWFzZVN5c0NhY2hlKHJmdHVwbGUpOwogCQkJfQogCkBAIC0xNDgyLDYgKzE1MTks NyBAQCBBbHRlclB1YmxpY2F0aW9uVGFibGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LCBI ZWFwVHVwbGUgdHVwLAogCQkJCVB1YmxpY2F0aW9uUmVsSW5mbyAqbmV3cHVicmVsOwogCQkJCU9p ZAkJCW5ld3JlbGlkOwogCQkJCUJpdG1hcHNldCAgKm5ld2NvbHVtbnMgPSBOVUxMOworCQkJCUJp dG1hcHNldCAgKm5ld2V4Y2x1ZGVjb2x1bW5zID0gTlVMTDsKIAogCQkJCW5ld3B1YnJlbCA9IChQ dWJsaWNhdGlvblJlbEluZm8gKikgbGZpcnN0KG5ld2xjKTsKIAkJCQluZXdyZWxpZCA9IFJlbGF0 aW9uR2V0UmVsaWQobmV3cHVicmVsLT5yZWxhdGlvbik7CkBAIC0xNDk1LDYgKzE1MzMsOSBAQCBB bHRlclB1YmxpY2F0aW9uVGFibGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LCBIZWFwVHVw bGUgdHVwLAogCQkJCW5ld2NvbHVtbnMgPSBwdWJfY29sbGlzdF92YWxpZGF0ZShuZXdwdWJyZWwt PnJlbGF0aW9uLAogCQkJCQkJCQkJCQkJICBuZXdwdWJyZWwtPmNvbHVtbnMpOwogCisJCQkJbmV3 ZXhjbHVkZWNvbHVtbnMgPSBwdWJfY29sbGlzdF92YWxpZGF0ZShuZXdwdWJyZWwtPnJlbGF0aW9u LAorCQkJCQkJCQkJCQkJCQkgbmV3cHVicmVsLT5leGNsdWRlX2NvbHVtbnMpOworCiAJCQkJLyoK IAkJCQkgKiBDaGVjayBpZiBhbnkgb2YgdGhlIG5ldyBzZXQgb2YgcmVsYXRpb25zIG1hdGNoZXMg d2l0aCB0aGUKIAkJCQkgKiBleGlzdGluZyByZWxhdGlvbnMgaW4gdGhlIHB1YmxpY2F0aW9uLiBB ZGRpdGlvbmFsbHksIGlmIHRoZQpAQCAtMTUwNSw3ICsxNTQ2LDggQEAgQWx0ZXJQdWJsaWNhdGlv blRhYmxlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwgSGVhcFR1cGxlIHR1cCwKIAkJCQlp ZiAobmV3cmVsaWQgPT0gb2xkcmVsaWQpCiAJCQkJewogCQkJCQlpZiAoZXF1YWwob2xkcmVsd2hl cmVjbGF1c2UsIG5ld3B1YnJlbC0+d2hlcmVDbGF1c2UpICYmCi0JCQkJCQlibXNfZXF1YWwob2xk Y29sdW1ucywgbmV3Y29sdW1ucykpCisJCQkJCQlibXNfZXF1YWwob2xkY29sdW1ucywgbmV3Y29s dW1ucykgJiYKKwkJCQkJCWJtc19lcXVhbChvbGRleGNsdWRlY29sdW1ucywgbmV3ZXhjbHVkZWNv bHVtbnMpKQogCQkJCQl7CiAJCQkJCQlmb3VuZCA9IHRydWU7CiAJCQkJCQlicmVhazsKQEAgLTE1 MjIsNiArMTU2NCw3IEBAIEFsdGVyUHVibGljYXRpb25UYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0 bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAsCiAJCQkJb2xkcmVsID0gcGFsbG9jKHNpemVvZihQdWJs aWNhdGlvblJlbEluZm8pKTsKIAkJCQlvbGRyZWwtPndoZXJlQ2xhdXNlID0gTlVMTDsKIAkJCQlv bGRyZWwtPmNvbHVtbnMgPSBOSUw7CisJCQkJb2xkcmVsLT5leGNsdWRlX2NvbHVtbnMgPSBOSUw7 CiAJCQkJb2xkcmVsLT5yZWxhdGlvbiA9IHRhYmxlX29wZW4ob2xkcmVsaWQsCiAJCQkJCQkJCQkJ CSAgU2hhcmVVcGRhdGVFeGNsdXNpdmVMb2NrKTsKIAkJCQlkZWxyZWxzID0gbGFwcGVuZChkZWxy ZWxzLCBvbGRyZWwpOwpAQCAtMTU5Niw2ICsxNjM5LDE3IEBAIEFsdGVyUHVibGljYXRpb25TY2hl bWFzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAogCQkJCQkJCSAgIHN0bXQtPnB1Ym5hbWUp LAogCQkJCQkJZXJyZGV0YWlsKCJTY2hlbWFzIGNhbm5vdCBiZSBhZGRlZCBpZiBhbnkgdGFibGVz IHRoYXQgc3BlY2lmeSBhIGNvbHVtbiBsaXN0IGFyZSBhbHJlYWR5IHBhcnQgb2YgdGhlIHB1Ymxp Y2F0aW9uLiIpKTsKIAorCQkJLyoKKwkJCSAqIERpc2FsbG93IGFkZGluZyBzY2hlbWEgaWYgZXhj bHVkZSBjb2x1bW4gbGlzdCBpcyBhbHJlYWR5IHBhcnQKKwkJCSAqIG9mIHRoZSBwdWJsaWNhdGlv bi4gU2VlIENoZWNrUHViUmVsYXRpb25Db2x1bW5MaXN0LgorCQkJICovCisJCQlpZiAoIWhlYXBf YXR0aXNudWxsKGNvbHR1cGxlLCBBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcmV4Y2x1ZGVhdHRy cywgTlVMTCkpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZB TElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJCQllcnJtc2coImNhbm5vdCBhZGQgc2NoZW1hIHRv IHB1YmxpY2F0aW9uIFwiJXNcIiIsCisJCQkJCQkJICAgc3RtdC0+cHVibmFtZSksCisJCQkJCQll cnJkZXRhaWwoIlNjaGVtYXMgY2Fubm90IGJlIGFkZGVkIGlmIGFueSB0YWJsZXMgdGhhdCBzcGVj aWZ5IGFuIGV4Y2VwdCBjb2x1bW4gbGlzdCBhcmUgYWxyZWFkeSBwYXJ0IG9mIHRoZSBwdWJsaWNh dGlvbi4iKSk7CisKIAkJCVJlbGVhc2VTeXNDYWNoZShjb2x0dXBsZSk7CiAJCX0KIApAQCAtMTky Miw2ICsxOTc2LDcgQEAgT3BlblRhYmxlTGlzdChMaXN0ICp0YWJsZXMpCiAJCXB1Yl9yZWwtPndo ZXJlQ2xhdXNlID0gdC0+d2hlcmVDbGF1c2U7CiAJCXB1Yl9yZWwtPmNvbHVtbnMgPSB0LT5jb2x1 bW5zOwogCQlwdWJfcmVsLT5leGNlcHQgPSB0LT5leGNlcHQ7CisJCXB1Yl9yZWwtPmV4Y2x1ZGVf Y29sdW1ucyA9IHQtPmV4Y2x1ZGVfY29sdW1uczsKIAkJcmVscyA9IGxhcHBlbmQocmVscywgcHVi X3JlbCk7CiAJCXJlbGlkcyA9IGxhcHBlbmRfb2lkKHJlbGlkcywgbXlyZWxpZCk7CiAKQEAgLTE5 OTUsNiArMjA1MCw3IEBAIE9wZW5UYWJsZUxpc3QoTGlzdCAqdGFibGVzKQogCQkJCS8qIGNoaWxk IGluaGVyaXRzIGNvbHVtbiBsaXN0IGZyb20gcGFyZW50ICovCiAJCQkJcHViX3JlbC0+Y29sdW1u cyA9IHQtPmNvbHVtbnM7CiAJCQkJcHViX3JlbC0+ZXhjZXB0ID0gdC0+ZXhjZXB0OworCQkJCXB1 Yl9yZWwtPmV4Y2x1ZGVfY29sdW1ucyA9IHQtPmV4Y2x1ZGVfY29sdW1uczsKIAkJCQlyZWxzID0g bGFwcGVuZChyZWxzLCBwdWJfcmVsKTsKIAkJCQlyZWxpZHMgPSBsYXBwZW5kX29pZChyZWxpZHMs IGNoaWxkcmVsaWQpOwogCkBAIC0yMTE0LDYgKzIxNzAsMTEgQEAgUHVibGljYXRpb25Ecm9wVGFi bGVzKE9pZCBwdWJpZCwgTGlzdCAqcmVscywgYm9vbCBtaXNzaW5nX29rKQogCQkJCQllcnJjb2Rl KEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKIAkJCQkJZXJybXNnKCJjb2x1bW4gbGlzdCBtdXN0IG5v dCBiZSBzcGVjaWZpZWQgaW4gQUxURVIgUFVCTElDQVRJT04gLi4uIERST1AiKSk7CiAKKwkJaWYg KHB1YnJlbC0+ZXhjbHVkZV9jb2x1bW5zKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29k ZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCWVycm1zZygiZXhjZXB0IGNvbHVtbiBsaXN0 IG11c3Qgbm90IGJlIHNwZWNpZmllZCBpbiBBTFRFUiBQVUJMSUNBVElPTiAuLi4gRFJPUCIpKTsK KwogCQlwcmlkID0gR2V0U3lzQ2FjaGVPaWQyKFBVQkxJQ0FUSU9OUkVMTUFQLCBBbnVtX3BnX3B1 YmxpY2F0aW9uX3JlbF9vaWQsCiAJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShyZWxpZCksCiAJ CQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShwdWJpZCkpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggODlhYzA0 OTVjZTguLjFiZTQyOThiY2U3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTQ0Nyw2ICs0NDcsNyBAQCBzdGF0 aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxp YXNlcywgTm9kZSAqcXVlcnkpOwogCQkJCVRyaWdnZXJUcmFuc2l0aW9ucyBUcmlnZ2VyUmVmZXJl bmNpbmcKIAkJCQl2YWN1dW1fcmVsYXRpb25fbGlzdCBvcHRfdmFjdXVtX3JlbGF0aW9uX2xpc3QK IAkJCQlkcm9wX29wdGlvbl9saXN0IHB1Yl9vYmpfbGlzdCBleGNlcHRfcHViX29ial9saXN0CisJ CQkJb3B0X2V4Y2x1ZGVfY29sdW1uX2xpc3QKIAogJXR5cGUgPHJldGNsYXVzZT4gcmV0dXJuaW5n X2NsYXVzZQogJXR5cGUgPG5vZGU+CXJldHVybmluZ19vcHRpb24KQEAgLTQ0MTUsNiArNDQxNiwx MCBAQCBvcHRfY29sdW1uX2xpc3Q6CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IE5JTDsg fQogCQk7CiAKK29wdF9leGNsdWRlX2NvbHVtbl9saXN0OgorCQkJJygnIGNvbHVtbkxpc3QgJykn CQkJCQkJeyAkJCA9ICQyOyB9CisJCTsKKwogY29sdW1uTGlzdDoKIAkJCWNvbHVtbkVsZW0JCQkJ CQkJCXsgJCQgPSBsaXN0X21ha2UxKCQxKTsgfQogCQkJfCBjb2x1bW5MaXN0ICcsJyBjb2x1bW5F bGVtCQkJCXsgJCQgPSBsYXBwZW5kKCQxLCAkMyk7IH0KQEAgLTEwNjgxLDYgKzEwNjg2LDE1IEBA IFB1YmxpY2F0aW9uT2JqU3BlYzoKIAkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNsYXVzZSA9ICQ0 OwogCQkJCQkkJC0+bG9jYXRpb24gPSBAMTsKIAkJCQl9CisJCQl8IFRBQkxFIHJlbGF0aW9uX2V4 cHIgRVhDRVBUIG9wdF9leGNsdWRlX2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCisJCQkJewor CQkJCQkkJCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CisJCQkJCSQkLT5wdWJvYmp0 eXBlID0gUFVCTElDQVRJT05PQkpfVEFCTEU7CisJCQkJCSQkLT5wdWJ0YWJsZSA9IG1ha2VOb2Rl KFB1YmxpY2F0aW9uVGFibGUpOworCQkJCQkkJC0+cHVidGFibGUtPnJlbGF0aW9uID0gJDI7CisJ CQkJCSQkLT5wdWJ0YWJsZS0+ZXhjbHVkZV9jb2x1bW5zID0gJDQ7CisJCQkJCSQkLT5wdWJ0YWJs ZS0+d2hlcmVDbGF1c2UgPSAkNTsKKwkJCQl9CiAJCQl8IFRBQkxFUyBJTl9QIFNDSEVNQSBDb2xJ ZAogCQkJCXsKIAkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNwZWMpOwpAQCAtMTA3 MjEsNiArMTA3MzUsMzMgQEAgUHVibGljYXRpb25PYmpTcGVjOgogCQkJCQl9CiAJCQkJCSQkLT5s b2NhdGlvbiA9IEAxOwogCQkJCX0KKwkJCXwgQ29sSWQgRVhDRVBUIG9wdF9leGNsdWRlX2NvbHVt bl9saXN0IE9wdFdoZXJlQ2xhdXNlCisJCQkJeworCQkJCQkkJCA9IG1ha2VOb2RlKFB1YmxpY2F0 aW9uT2JqU3BlYyk7CisJCQkJCSQkLT5wdWJvYmp0eXBlID0gUFVCTElDQVRJT05PQkpfQ09OVElO VUFUSU9OOworCQkJCQkvKgorCQkJCQkgKiBJZiBlaXRoZXIgYSByb3cgZmlsdGVyIG9yIGV4Y2x1 ZGUgY29sdW1uIGxpc3QgaXMKKwkJCQkJICogc3BlY2lmaWVkLCBjcmVhdGUgYSBQdWJsaWNhdGlv blRhYmxlIG9iamVjdC4KKwkJCQkJICovCisJCQkJCWlmICgkMyB8fCAkNCkKKwkJCQkJeworCQkJ CQkJLyoKKwkJCQkJCSAqIFRoZSBPcHRXaGVyZUNsYXVzZSBtdXN0IGJlIHN0b3JlZCBoZXJlIGJ1 dCBpdCBpcworCQkJCQkJICogdmFsaWQgb25seSBmb3IgdGFibGVzLiBGb3Igbm9uLXRhYmxlIG9i amVjdHMsIGFuCisJCQkJCQkgKiBlcnJvciB3aWxsIGJlIHRocm93biBsYXRlciB2aWEKKwkJCQkJ CSAqIHByZXByb2Nlc3NfcHVib2JqX2xpc3QoKS4KKwkJCQkJCSAqLworCQkJCQkJJCQtPnB1YnRh YmxlID0gbWFrZU5vZGUoUHVibGljYXRpb25UYWJsZSk7CisJCQkJCQkkJC0+cHVidGFibGUtPnJl bGF0aW9uID0gbWFrZVJhbmdlVmFyKE5VTEwsICQxLCBAMSk7CisJCQkJCQkkJC0+cHVidGFibGUt PmV4Y2x1ZGVfY29sdW1ucyA9ICQzOworCQkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNsYXVzZSA9 ICQ0OworCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJeworCQkJCQkJJCQtPm5hbWUgPSAkMTsKKwkJ CQkJfQorCQkJCQkkJC0+bG9jYXRpb24gPSBAMTsKKwkJCQl9CiAJCQl8IENvbElkIGluZGlyZWN0 aW9uIG9wdF9jb2x1bW5fbGlzdCBPcHRXaGVyZUNsYXVzZQogCQkJCXsKIAkJCQkJJCQgPSBtYWtl Tm9kZShQdWJsaWNhdGlvbk9ialNwZWMpOwpAQCAtMTA3MzEsNiArMTA3NzIsMTYgQEAgUHVibGlj YXRpb25PYmpTcGVjOgogCQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDQ7CiAJCQkJ CSQkLT5sb2NhdGlvbiA9IEAxOwogCQkJCX0KKwkJCXwgQ29sSWQgaW5kaXJlY3Rpb24gRVhDRVBU IG9wdF9leGNsdWRlX2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCisJCQkJeworCQkJCQkkJCA9 IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CisJCQkJCSQkLT5wdWJvYmp0eXBlID0gUFVC TElDQVRJT05PQkpfQ09OVElOVUFUSU9OOworCQkJCQkkJC0+cHVidGFibGUgPSBtYWtlTm9kZShQ dWJsaWNhdGlvblRhYmxlKTsKKwkJCQkJJCQtPnB1YnRhYmxlLT5yZWxhdGlvbiA9IG1ha2VSYW5n ZVZhckZyb21RdWFsaWZpZWROYW1lKCQxLCAkMiwgQDEsIHl5c2Nhbm5lcik7CisJCQkJCSQkLT5w dWJ0YWJsZS0+ZXhjbHVkZV9jb2x1bW5zID0gJDQ7CisJCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVD bGF1c2UgPSAkNTsKKwkJCQkJJCQtPmxvY2F0aW9uID0gQDE7CisJCQkJfQogCQkJLyogZ3JhbW1h ciBsaWtlIHRhYmxlbmFtZSAqICwgT05MWSB0YWJsZW5hbWUsIE9OTFkgKCB0YWJsZW5hbWUgKSAq LwogCQkJfCBleHRlbmRlZF9yZWxhdGlvbl9leHByIG9wdF9jb2x1bW5fbGlzdCBPcHRXaGVyZUNs YXVzZQogCQkJCXsKQEAgLTEwNzQxLDYgKzEwNzkyLDE1IEBAIFB1YmxpY2F0aW9uT2JqU3BlYzoK IAkJCQkJJCQtPnB1YnRhYmxlLT5jb2x1bW5zID0gJDI7CiAJCQkJCSQkLT5wdWJ0YWJsZS0+d2hl cmVDbGF1c2UgPSAkMzsKIAkJCQl9CisJCQl8IGV4dGVuZGVkX3JlbGF0aW9uX2V4cHIgRVhDRVBU IG9wdF9leGNsdWRlX2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCisJCQkJeworCQkJCQkkJCA9 IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CisJCQkJCSQkLT5wdWJvYmp0eXBlID0gUFVC TElDQVRJT05PQkpfQ09OVElOVUFUSU9OOworCQkJCQkkJC0+cHVidGFibGUgPSBtYWtlTm9kZShQ dWJsaWNhdGlvblRhYmxlKTsKKwkJCQkJJCQtPnB1YnRhYmxlLT5yZWxhdGlvbiA9ICQxOworCQkJ CQkkJC0+cHVidGFibGUtPmV4Y2x1ZGVfY29sdW1ucyA9ICQzOworCQkJCQkkJC0+cHVidGFibGUt PndoZXJlQ2xhdXNlID0gJDQ7CisJCQkJfQogCQkJfCBDVVJSRU5UX1NDSEVNQQogCQkJCXsKIAkJ CQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNwZWMpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYyBiL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKaW5kZXggNTUxMmI0Y2JhN2YuLmYzNmMzNjFhYmQ1 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5j CisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKQEAgLTE4 NSw2ICsxODUsOSBAQCB0eXBlZGVmIHN0cnVjdCBSZWxhdGlvblN5bmNFbnRyeQogCSAqIHJvdyBm aWx0ZXIgZXhwcmVzc2lvbnMsIGNvbHVtbiBsaXN0LCBldGMuCiAJICovCiAJTWVtb3J5Q29udGV4 dCBlbnRyeV9jeHQ7CisKKwkvKiBJbmRpY2F0ZSBpZiBubyBjb2x1bW4gaXMgaW5jbHVkZWQgaW4g dGhlIHB1YmxpY2F0aW9uICovCisJYm9vbAkJbm9fY29sc19wdWJsaXNoZWQ7CiB9IFJlbGF0aW9u U3luY0VudHJ5OwogCiAvKgpAQCAtMTA5OSw2ICsxMTAyLDcgQEAgcGdvdXRwdXRfY29sdW1uX2xp c3RfaW5pdChQR091dHB1dERhdGEgKmRhdGEsIExpc3QgKnB1YmxpY2F0aW9ucywKIAlib29sCQlm aXJzdCA9IHRydWU7CiAJUmVsYXRpb24JcmVsYXRpb24gPSBSZWxhdGlvbklkR2V0UmVsYXRpb24o ZW50cnktPnB1Ymxpc2hfYXNfcmVsaWQpOwogCWJvb2wJCWZvdW5kX3B1Yl9jb2xsaXN0ID0gZmFs c2U7CisJYm9vbAkJZm91bmRfcHViX2V4Y2x1ZGVfY29sbGlzdCA9IGZhbHNlOwogCUJpdG1hcHNl dCAgKnJlbGNvbHMgPSBOVUxMOwogCiAJcGdvdXRwdXRfZW5zdXJlX2VudHJ5X2N4dChkYXRhLCBl bnRyeSk7CkBAIC0xMTIwLDEyICsxMTI0LDMyIEBAIHBnb3V0cHV0X2NvbHVtbl9saXN0X2luaXQo UEdPdXRwdXREYXRhICpkYXRhLCBMaXN0ICpwdWJsaWNhdGlvbnMsCiAJewogCQlQdWJsaWNhdGlv biAqcHViID0gbGZpcnN0KGxjKTsKIAkJQml0bWFwc2V0ICAqY29scyA9IE5VTEw7CisJCUJpdG1h cHNldCAgKmV4Y2x1ZGVjb2xzID0gTlVMTDsKIAogCQkvKiBSZXRyaWV2ZSB0aGUgYml0bWFwIG9m IGNvbHVtbnMgZm9yIGEgY29sdW1uIGxpc3QgcHVibGljYXRpb24uICovCiAJCWZvdW5kX3B1Yl9j b2xsaXN0IHw9IGNoZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlzdChwdWIsCiAJCQkJCQkJCQkJCQkJ CSBlbnRyeS0+cHVibGlzaF9hc19yZWxpZCwKIAkJCQkJCQkJCQkJCQkJIGVudHJ5LT5lbnRyeV9j eHQsICZjb2xzKTsKIAorCQkvKiBSZXRyaWV2ZSB0aGUgYml0bWFwIG9mIGV4Y2x1ZGUgY29sdW1u cyBmb3IgdGhlIHB1YmxpY2F0aW9uLiAqLworCQlmb3VuZF9wdWJfZXhjbHVkZV9jb2xsaXN0IHw9 IGNoZWNrX2FuZF9mZXRjaF9leGNsdWRlX2NvbHVtbl9saXN0KHB1YiwKKwkJCQkJCQkJCQkJCQkJ CQkJCSBlbnRyeS0+cHVibGlzaF9hc19yZWxpZCwKKwkJCQkJCQkJCQkJCQkJCQkJCSBlbnRyeS0+ ZW50cnlfY3h0LCAmZXhjbHVkZWNvbHMpOworCisJCS8qCisJCSAqIGNvbHMgYW5kIGV4Y2x1ZGUg Y29scyBjYW4ndCBhcHBlYXIgdG9nZXRoZXIuIFN5bnRheCBmb3IgaXQgaXMgbm90CisJCSAqIHN1 cHBvcnRlZC4gSWYgY29sdW1uIGxpc3QgaXMgbm90IHByZXNlbnQgY2hlY2sgZm9yIGV4Y2x1ZGVk IGNvbHVtbgorCQkgKiBsaXN0IGFuZCBjb25zdHJ1Y3QgYSBjb3JyZXNwb25kaW5nIGNvbHVtbiBs aXN0LgorCQkgKi8KKwkJaWYgKCFjb2xzICYmIGZvdW5kX3B1Yl9leGNsdWRlX2NvbGxpc3QpCisJ CXsKKwkJCU1lbW9yeUNvbnRleHQgb2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGVudHJ5 LT5lbnRyeV9jeHQpOworCisJCQljb2xzID0gcHViX2Zvcm1fY29sc19tYXAocmVsYXRpb24sCisJ CQkJCQkJCQkgZW50cnktPmluY2x1ZGVfZ2VuY29sc190eXBlLCBleGNsdWRlY29scyk7CisJCQlN ZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3h0KTsKKwkJfQorCiAJCS8qCiAJCSAqIEZvciBub24t Y29sdW1uIGxpc3QgcHVibGljYXRpb25zIOKAlCBlLmcuIFRBQkxFICh3aXRob3V0IGEgY29sdW1u CiAJCSAqIGxpc3QpLCBBTEwgVEFCTEVTLCBvciBBTEwgVEFCTEVTIElOIFNDSEVNQSwgd2UgY29u c2lkZXIgYWxsIGNvbHVtbnMKQEAgLTExNDQsNyArMTE2OCw3IEBAIHBnb3V0cHV0X2NvbHVtbl9s aXN0X2luaXQoUEdPdXRwdXREYXRhICpkYXRhLCBMaXN0ICpwdWJsaWNhdGlvbnMsCiAJCQkJTWVt b3J5Q29udGV4dCBvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oZW50cnktPmVudHJ5X2N4 dCk7CiAKIAkJCQlyZWxjb2xzID0gcHViX2Zvcm1fY29sc19tYXAocmVsYXRpb24sCi0JCQkJCQkJ CQkJCWVudHJ5LT5pbmNsdWRlX2dlbmNvbHNfdHlwZSk7CisJCQkJCQkJCQkJCWVudHJ5LT5pbmNs dWRlX2dlbmNvbHNfdHlwZSwgTlVMTCk7CiAJCQkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4 dCk7CiAJCQl9CiAKQEAgLTExNTUsOCArMTE3OSwxMSBAQCBwZ291dHB1dF9jb2x1bW5fbGlzdF9p bml0KFBHT3V0cHV0RGF0YSAqZGF0YSwgTGlzdCAqcHVibGljYXRpb25zLAogCQl7CiAJCQllbnRy eS0+Y29sdW1ucyA9IGNvbHM7CiAJCQlmaXJzdCA9IGZhbHNlOworCisJCQlpZiAoZXhjbHVkZWNv bHMgJiYgIWNvbHMpCisJCQkJZW50cnktPm5vX2NvbHNfcHVibGlzaGVkID0gdHJ1ZTsKIAkJfQot CQllbHNlIGlmICghYm1zX2VxdWFsKGVudHJ5LT5jb2x1bW5zLCBjb2xzKSkKKwkJZWxzZSBpZiAo KGVudHJ5LT5ub19jb2xzX3B1Ymxpc2hlZCAmJiBjb2xzKSB8fCAhYm1zX2VxdWFsKGVudHJ5LT5j b2x1bW5zLCBjb2xzKSkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCWVycmNvZGUoRVJSQ09ERV9G RUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQllcnJtc2coImNhbm5vdCB1c2UgZGlmZmVyZW50 IGNvbHVtbiBsaXN0cyBmb3IgdGFibGUgXCIlcy4lc1wiIGluIGRpZmZlcmVudCBwdWJsaWNhdGlv bnMiLApAQCAtMTE2NSwxMCArMTE5MiwxMSBAQCBwZ291dHB1dF9jb2x1bW5fbGlzdF9pbml0KFBH T3V0cHV0RGF0YSAqZGF0YSwgTGlzdCAqcHVibGljYXRpb25zLAogCX0JCQkJCQkJLyogbG9vcCBh bGwgc3Vic2NyaWJlZCBwdWJsaWNhdGlvbnMgKi8KIAogCS8qCi0JICogSWYgbm8gY29sdW1uIGxp c3QgcHVibGljYXRpb25zIGV4aXN0LCBjb2x1bW5zIHRvIGJlIHB1Ymxpc2hlZCB3aWxsIGJlCi0J ICogY29tcHV0ZWQgbGF0ZXIgYWNjb3JkaW5nIHRvIHRoZSAncHVibGlzaF9nZW5lcmF0ZWRfY29s dW1ucycgcGFyYW1ldGVyLgorCSAqIElmIG5vIGNvbHVtbiBsaXN0IG9yIGV4Y2x1ZGVkIGNvbHVt biBsaXN0IHB1YmxpY2F0aW9ucyBleGlzdCwgY29sdW1ucworCSAqIHRvIGJlIHB1Ymxpc2hlZCB3 aWxsIGJlIGNvbXB1dGVkIGxhdGVyIGFjY29yZGluZyB0byB0aGUKKwkgKiAncHVibGlzaF9nZW5l cmF0ZWRfY29sdW1ucycgcGFyYW1ldGVyLgogCSAqLwotCWlmICghZm91bmRfcHViX2NvbGxpc3Qp CisJaWYgKCFmb3VuZF9wdWJfY29sbGlzdCAmJiAhZm91bmRfcHViX2V4Y2x1ZGVfY29sbGlzdCkK IAkJZW50cnktPmNvbHVtbnMgPSBOVUxMOwogCiAJUmVsYXRpb25DbG9zZShyZWxhdGlvbik7CkBA IC0xNDgwLDYgKzE1MDgsMTMgQEAgcGdvdXRwdXRfY2hhbmdlKExvZ2ljYWxEZWNvZGluZ0NvbnRl eHQgKmN0eCwgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLAogCiAJcmVsZW50cnkgPSBnZXRfcmVsX3N5 bmNfZW50cnkoZGF0YSwgcmVsYXRpb24pOwogCisJLyoKKwkgKiBJZiBhbGwgY29sdW1ucyBvZiBh IHRhYmxlIGlzIHByZXNlbnQgaW4gdGhlIGV4Y2x1ZGUgY29sdW1uIGxpc3QuIFNraXAKKwkgKiBw dWJsaXNoaW5nIHRoZSBjaGFuZ2VzLgorCSAqLworCWlmIChyZWxlbnRyeS0+bm9fY29sc19wdWJs aXNoZWQpCisJCXJldHVybjsKKwogCS8qIEZpcnN0IGNoZWNrIHRoZSB0YWJsZSBmaWx0ZXIgKi8K IAlzd2l0Y2ggKGFjdGlvbikKIAl7CkBAIC0yMDU3LDYgKzIwOTIsNyBAQCBnZXRfcmVsX3N5bmNf ZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAkJZW50cnktPnB1 Ymxpc2hfYXNfcmVsaWQgPSBJbnZhbGlkT2lkOwogCQllbnRyeS0+Y29sdW1ucyA9IE5VTEw7CiAJ CWVudHJ5LT5hdHRybWFwID0gTlVMTDsKKwkJZW50cnktPm5vX2NvbHNfcHVibGlzaGVkID0gZmFs c2U7CiAJfQogCiAJLyogVmFsaWRhdGUgdGhlIGVudHJ5ICovCkBAIC0yMTA2LDYgKzIxNDIsNyBA QCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlv bikKIAkJZW50cnktPnB1YmFjdGlvbnMucHVidXBkYXRlID0gZmFsc2U7CiAJCWVudHJ5LT5wdWJh Y3Rpb25zLnB1YmRlbGV0ZSA9IGZhbHNlOwogCQllbnRyeS0+cHViYWN0aW9ucy5wdWJ0cnVuY2F0 ZSA9IGZhbHNlOworCQllbnRyeS0+bm9fY29sc19wdWJsaXNoZWQgPSBmYWxzZTsKIAogCQkvKgog CQkgKiBUdXBsZSBzbG90cyBjbGVhbnVwcy4gKFdpbGwgYmUgcmVidWlsdCBsYXRlciBpZiBuZWVk ZWQpLgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMKaW5kZXggOTJkYjVjYThkOTcuLjI5MzY0NjAzMTMwIDEwMDY0NAotLS0g YS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmMKQEAgLTQ3MDYsNiArNDcwNiw3IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZv dXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJaW50CQkJaV9wcnJlbHF1 YWw7CiAJaW50CQkJaV9wcmF0dHJzOwogCWludAkJCWlfcHJleGNlcHQ7CisJaW50CQkJaV9wcmV4 Y2x1ZGVhdHRyczsKIAlpbnQJCQlpLAogCQkJCWosCiAJCQkJbnR1cHM7CkBAIC00NzIzLDcgKzQ3 MjQsMTUgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRi bGluZm9bXSwgaW50IG51bVRhYmxlcykKIAogCQkvKiBGSVhNRTogMTgwMDAwIHNob3VsZCBiZSBj aGFuZ2VkIHRvIDE5MDAwMCBsYXRlciBmb3IgUEcxOS4gKi8KIAkJaWYgKGZvdXQtPnJlbW90ZVZl cnNpb24gPj0gMTgwMDAwKQotCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgcHJleGNl cHQsXG4iKTsKKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIHByZXhjZXB0LCAiCisJ CQkJCQkJCSAiKENBU0VcbiIKKwkJCQkJCQkJICIgIFdIRU4gcHIucHJleGNsdWRlYXR0cnMgSVMg Tk9UIE5VTEwgVEhFTlxuIgorCQkJCQkJCQkgIiAgICAoU0VMRUNUIGFycmF5X2FnZyhhdHRuYW1l KVxuIgorCQkJCQkJCQkgIiAgICAgICBGUk9NXG4iCisJCQkJCQkJCSAiICAgICAgICAgcGdfY2F0 YWxvZy5nZW5lcmF0ZV9zZXJpZXMoMCwgcGdfY2F0YWxvZy5hcnJheV91cHBlcihwci5wcmV4Y2x1 ZGVhdHRyczo6cGdfY2F0YWxvZy5pbnQyW10sIDEpKSBzLFxuIgorCQkJCQkJCQkgIiAgICAgICAg IHBnX2NhdGFsb2cucGdfYXR0cmlidXRlXG4iCisJCQkJCQkJCSAiICAgICAgV0hFUkUgYXR0cmVs aWQgPSBwci5wcnJlbGlkIEFORCBhdHRudW0gPSBwcmV4Y2x1ZGVhdHRyc1tzXSlcbiIKKwkJCQkJ CQkJICIgIEVMU0UgTlVMTCBFTkQpIHByZXhjbHVkZWF0dHJzLCBcbiIpOwogCQllbHNlCiAJCQlh cHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBmYWxzZSBBUyBwcmV4Y2VwdCxcbiIpOwogCkBA IC00NzU1LDYgKzQ3NjQsNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBU YWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCWlfcHJyZWxxdWFsID0gUFFmbnVt YmVyKHJlcywgInBycmVscXVhbCIpOwogCWlfcHJhdHRycyA9IFBRZm51bWJlcihyZXMsICJwcmF0 dHJzIik7CiAJaV9wcmV4Y2VwdCA9IFBRZm51bWJlcihyZXMsICJwcmV4Y2VwdCIpOworCWlfcHJl eGNsdWRlYXR0cnMgPSBQUWZudW1iZXIocmVzLCAicHJleGNsdWRlYXR0cnMiKTsKIAogCS8qIHRo aXMgYWxsb2NhdGlvbiBtYXkgYmUgbW9yZSB0aGFuIHdlIG5lZWQgKi8KIAlwdWJyaW5mbyA9IHBn X21hbGxvYyhudHVwcyAqIHNpemVvZihQdWJsaWNhdGlvblJlbEluZm8pKTsKQEAgLTQ4MjIsNiAr NDgzMiwzMCBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8g dGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCQllbHNlCiAJCQlwdWJyaW5mb1tqXS5wdWJyYXR0 cnMgPSBOVUxMOwogCisJCWlmICghUFFnZXRpc251bGwocmVzLCBpLCBpX3ByZXhjbHVkZWF0dHJz KSkKKwkJeworCQkJY2hhcgkgICoqYXR0bmFtZXM7CisJCQlpbnQJCQluYXR0bmFtZXM7CisJCQlQ UUV4cEJ1ZmZlciBleGNsdWRlYXR0cmliczsKKworCQkJaWYgKCFwYXJzZVBHQXJyYXkoUFFnZXR2 YWx1ZShyZXMsIGksIGlfcHJleGNsdWRlYXR0cnMpLAorCQkJCQkJCSAgJmF0dG5hbWVzLCAmbmF0 dG5hbWVzKSkKKwkJCQlwZ19mYXRhbCgiY291bGQgbm90IHBhcnNlICVzIGFycmF5IiwgInByYXR0 cnMiKTsKKwkJCWV4Y2x1ZGVhdHRyaWJzID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKwkJCWZvciAo aW50IGsgPSAwOyBrIDwgbmF0dG5hbWVzOyBrKyspCisJCQl7CisJCQkJaWYgKGsgPiAwKQorCQkJ CQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihleGNsdWRlYXR0cmlicywgIiwgIik7CisKKwkJCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cihleGNsdWRlYXR0cmlicywgZm10SWQoYXR0bmFtZXNba10pKTsKKwkJ CX0KKwkJCXB1YnJpbmZvW2pdLnB1YnJleGNsdWRlYXR0cnMgPSBleGNsdWRlYXR0cmlicy0+ZGF0 YTsKKwkJCWZyZWUoZXhjbHVkZWF0dHJpYnMpOwkvKiBidXQgbm90IGV4Y2x1ZGVhdHRyaWJzLT5k YXRhICovCisJCQlmcmVlKGF0dG5hbWVzKTsKKwkJfQorCQllbHNlCisJCQlwdWJyaW5mb1tqXS5w dWJyZXhjbHVkZWF0dHJzID0gTlVMTDsKKwogCQkvKiBEZWNpZGUgd2hldGhlciB3ZSB3YW50IHRv IGR1bXAgaXQgKi8KIAkJc2VsZWN0RHVtcGFibGVQdWJsaWNhdGlvbk9iamVjdCgmKHB1YnJpbmZv W2pdLmRvYmopLCBmb3V0KTsKIApAQCAtNDkwNyw2ICs0OTQxLDkgQEAgZHVtcFB1YmxpY2F0aW9u VGFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGljYXRpb25SZWxJbmZvICpwdWJyaW5mbykK IAlpZiAocHVicmluZm8tPnB1YnJhdHRycykKIAkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIg KCVzKSIsIHB1YnJpbmZvLT5wdWJyYXR0cnMpOwogCisJaWYgKHB1YnJpbmZvLT5wdWJyZXhjbHVk ZWF0dHJzKQorCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiBFWENFUFQgKCVzKSIsIHB1YnJp bmZvLT5wdWJyZXhjbHVkZWF0dHJzKTsKKwogCWlmIChwdWJyaW5mby0+cHVicmVscXVhbCkKIAl7 CiAJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuaAppbmRleCAwOTZmMjkzNDZkOC4uZTAxYzJkMWFmYmQgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuaApAQCAtNjgxLDYgKzY4MSw3IEBAIHR5cGVkZWYgc3RydWN0IF9QdWJsaWNhdGlvblJlbElu Zm8KIAlUYWJsZUluZm8gICpwdWJ0YWJsZTsKIAljaGFyCSAgICpwdWJyZWxxdWFsOwogCWNoYXIJ ICAgKnB1YnJhdHRyczsKKwljaGFyCSAgICpwdWJyZXhjbHVkZWF0dHJzOwogfSBQdWJsaWNhdGlv blJlbEluZm87CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1Ymxp Y2F0aW9uLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKaW5kZXggMzNi NzcxOTkwYmQuLjUzNDQ1NTljODhlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3B1YmxpY2F0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5o CkBAIC0xNDAsNiArMTQwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25SZWxJbmZvCiAJ Tm9kZQkgICAqd2hlcmVDbGF1c2U7CiAJTGlzdAkgICAqY29sdW1uczsKIAlib29sCQlleGNlcHQ7 CisJTGlzdAkgICAqZXhjbHVkZV9jb2x1bW5zOwogfSBQdWJsaWNhdGlvblJlbEluZm87CiAKIGV4 dGVybiBQdWJsaWNhdGlvbiAqR2V0UHVibGljYXRpb24oT2lkIHB1YmlkKTsKQEAgLTE4MSwxNSAr MTgyLDIxIEBAIGV4dGVybiBib29sIGlzX3B1Ymxpc2hhYmxlX3JlbGF0aW9uKFJlbGF0aW9uIHJl bCk7CiBleHRlcm4gYm9vbCBpc19zY2hlbWFfcHVibGljYXRpb24oT2lkIHB1YmlkKTsKIGV4dGVy biBib29sIGNoZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlzdChQdWJsaWNhdGlvbiAqcHViLCBPaWQg cmVsaWQsCiAJCQkJCQkJCQkJTWVtb3J5Q29udGV4dCBtY3h0LCBCaXRtYXBzZXQgKipjb2xzKTsK K2V4dGVybiBib29sIGNoZWNrX2FuZF9mZXRjaF9leGNsdWRlX2NvbHVtbl9saXN0KFB1YmxpY2F0 aW9uICpwdWIsIE9pZCByZWxpZCwKKwkJCQkJCQkJCQkJCU1lbW9yeUNvbnRleHQgbWN4dCwKKwkJ CQkJCQkJCQkJCUJpdG1hcHNldCAqKmNvbHMpOwogZXh0ZXJuIE9iamVjdEFkZHJlc3MgcHVibGlj YXRpb25fYWRkX3JlbGF0aW9uKE9pZCBwdWJpZCwgUHVibGljYXRpb25SZWxJbmZvICpwcmksCiAJ CQkJCQkJCQkJCSAgYm9vbCBpZl9ub3RfZXhpc3RzKTsKIGV4dGVybiBCaXRtYXBzZXQgKnB1Yl9j b2xsaXN0X3ZhbGlkYXRlKFJlbGF0aW9uIHRhcmdldHJlbCwgTGlzdCAqY29sdW1ucyk7CitleHRl cm4gQml0bWFwc2V0ICpwdWJfZXhjbHVkZV9jb2xsaXN0X3ZhbGlkYXRlKFJlbGF0aW9uIHRhcmdl dHJlbCwKKwkJCQkJCQkJCQkJICAgTGlzdCAqZXhjbHVkZV9jb2x1bW5zKTsKIGV4dGVybiBPYmpl Y3RBZGRyZXNzIHB1YmxpY2F0aW9uX2FkZF9zY2hlbWEoT2lkIHB1YmlkLCBPaWQgc2NoZW1haWQs CiAJCQkJCQkJCQkJCWJvb2wgaWZfbm90X2V4aXN0cyk7CiAKIGV4dGVybiBCaXRtYXBzZXQgKnB1 Yl9jb2xsaXN0X3RvX2JpdG1hcHNldChCaXRtYXBzZXQgKmNvbHVtbnMsIERhdHVtIHB1YmNvbHMs CiAJCQkJCQkJCQkJICAgTWVtb3J5Q29udGV4dCBtY3h0KTsKIGV4dGVybiBCaXRtYXBzZXQgKnB1 Yl9mb3JtX2NvbHNfbWFwKFJlbGF0aW9uIHJlbGF0aW9uLAotCQkJCQkJCQkJUHVibGlzaEdlbmNv bHNUeXBlIGluY2x1ZGVfZ2VuY29sc190eXBlKTsKKwkJCQkJCQkJCVB1Ymxpc2hHZW5jb2xzVHlw ZSBpbmNsdWRlX2dlbmNvbHNfdHlwZSwKKwkJCQkJCQkJCUJpdG1hcHNldCAqZXhjbHVkZWNvbHMp OwogCiAjZW5kaWYJCQkJCQkJLyogUEdfUFVCTElDQVRJT05fSCAqLwpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaCBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHVibGljYXRpb25fcmVsLmgKaW5kZXggZTdkN2YzYmE4NWMuLjRjMWI0ZGRiZGRjIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oCisrKyBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmgKQEAgLTM2LDYgKzM2LDcg QEAgQ0FUQUxPRyhwZ19wdWJsaWNhdGlvbl9yZWwsNjEwNixQdWJsaWNhdGlvblJlbFJlbGF0aW9u SWQpCiAjaWZkZWYJQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0 YXJ0IGhlcmUgKi8KIAlwZ19ub2RlX3RyZWUgcHJxdWFsOwkJLyogcXVhbGlmaWNhdGlvbnMgKi8K IAlpbnQydmVjdG9yCXByYXR0cnM7CQkvKiBjb2x1bW5zIHRvIHJlcGxpY2F0ZSAqLworCWludDJ2 ZWN0b3IJcHJleGNsdWRlYXR0cnM7IC8qIGNvbHVtbnMgdG8gZXhjbHVkZSAqLwogI2VuZGlmCiB9 IEZvcm1EYXRhX3BnX3B1YmxpY2F0aW9uX3JlbDsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4 IDYxYTBiMmNjZjM4Li5mMTQ4YzhlMjMyMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDIz Niw2ICs0MjM2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25UYWJsZQogCU5vZGUJICAg KndoZXJlQ2xhdXNlOwkvKiBxdWFsaWZpY2F0aW9ucyAqLwogCUxpc3QJICAgKmNvbHVtbnM7CQkv KiBMaXN0IG9mIGNvbHVtbnMgaW4gYSBwdWJsaWNhdGlvbiB0YWJsZSAqLwogCWJvb2wJCWV4Y2Vw dDsJCQkvKiBleGNsdWRlIHRoZSByZWxhdGlvbiAqLworCUxpc3QJICAgKmV4Y2x1ZGVfY29sdW1u czsJLyogTGlzdCBvZiBjb2x1bW5zIHRvIGJlIGV4Y2x1ZGVkICovCiB9IFB1YmxpY2F0aW9uVGFi bGU7CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0 aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CmluZGV4 IDVkMDI1MzI4NzA0Li5hMjc0YjNjZmYzMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9w dWJsaWNhdGlvbi5vdXQKQEAgLTIxMjUsNiArMjEyNSw3MSBAQCBTRVQgUk9MRSByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXI7CiBEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQ7CiBEUk9QIFRB QkxFIHB1Yl9zY2gxLnRibDE7CiBEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDI7CistLSA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFRlc3Qg RVhDRVBUIGNvbHVtbnMgZm9yIENSRUFURSBQVUJMSUNBVElPTgorU0VUIGNsaWVudF9taW5fbWVz c2FnZXMgPSAnRVJST1InOworQ1JFQVRFIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgKGEgaW50IE5P VCBOVUxMLCBiIGludCwgYyBpbnQgTk9UIE5VTEwsIGQgaW50KTsKK0NSRUFURSBUQUJMRSBwdWJf c2NoMS5wdWJfdGVzdF9leGNlcHQyIChhIGludCwgYiBpbnQsIGMgaW50LCBkIGludCk7CitDUkVB VEUgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MyAoYSBpbnQsIGdlbjEgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSBTVE9SRUQpOworLS0gVmVyaWZ5IHRoYXQgcHVibGljYXRpb24gaXMgY3Jl YXRlZCB3aXRoIEVYQ0VQVAorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0IEZPUiBU QUJMRSBwdWJfdGVzdF9leGNlcHQxLCBwdWJfc2NoMS5wdWJfdGVzdF9leGNlcHQyIEVYQ0VQVCAo YiwgYyk7CitTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3RhYmxlcyBXSEVSRSBwdWJuYW1l ID0gJ3Rlc3RwdWJfZXhjZXB0JzsKKyAgICBwdWJuYW1lICAgICB8IHNjaGVtYW5hbWUgfCAgICB0 YWJsZW5hbWUgICAgIHwgYXR0bmFtZXMgIHwgcm93ZmlsdGVyIAorLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisg dGVzdHB1Yl9leGNlcHQgfCBwdWJsaWMgICAgIHwgcHViX3Rlc3RfZXhjZXB0MSB8IHthLGIsYyxk fSB8IAorIHRlc3RwdWJfZXhjZXB0IHwgcHViX3NjaDEgICB8IHB1Yl90ZXN0X2V4Y2VwdDIgfCB7 YSxkfSAgICAgfCAKKygyIHJvd3MpCisKKy0tIENoZWNrIGZvciBpbnZhbGlkIGNhc2VzCitDUkVB VEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQyIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl9z Y2gxLCBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIEVYQ0VQVCAoYiwgYyk7CitFUlJPUjogIGNhbm5v dCB1c2UgY29sdW1uIGxpc3QgZm9yIHJlbGF0aW9uICJwdWJsaWMucHViX3Rlc3RfZXhjZXB0MSIg aW4gcHVibGljYXRpb24gInRlc3RwdWJfZXhjZXB0MiIKK0RFVEFJTDogIENvbHVtbiBsaXN0cyBj YW5ub3QgYmUgc3BlY2lmaWVkIGluIHB1YmxpY2F0aW9ucyBjb250YWluaW5nIEZPUiBUQUJMRVMg SU4gU0NIRU1BIGVsZW1lbnRzLgorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0MiBG T1IgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBFWENFUFQ7CitFUlJPUjogIHN5bnRheCBlcnJvciBh dCBvciBuZWFyICI7IgorTElORSAxOiAuLi5CTElDQVRJT04gdGVzdHB1Yl9leGNlcHQyIEZPUiBU QUJMRSBwdWJfdGVzdF9leGNlcHQxIEVYQ0VQVDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitDUkVBVEUgUFVC TElDQVRJT04gdGVzdHB1Yl9leGNlcHQyIEZPUiBUQUJMRSBwdWJfdGVzdF9leGNlcHQzIEVYQ0VQ VCAoZ2VuMSk7CitFUlJPUjogIGNhbm5vdCB1c2UgZ2VuZXJhdGVkIGNvbHVtbiAiZ2VuMSIgaW4g cHVibGljYXRpb24gZXhjZXB0IGNvbHVtbiBsaXN0CistLSBWZXJpZnkgdGhhdCBwdWJsaWNhdGlv biBjYW4gYmUgYWx0ZXJlZCB3aXRoIEVYQ0VQVAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9l eGNlcHQgU0VUIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUIChhLCBiKSwgcHViX3NjaDEu cHViX3Rlc3RfZXhjZXB0MjsKK1NFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25fdGFibGVzIFdI RVJFIHB1Ym5hbWUgPSAndGVzdHB1Yl9leGNlcHQnOworICAgIHB1Ym5hbWUgICAgIHwgc2NoZW1h bmFtZSB8ICAgIHRhYmxlbmFtZSAgICAgfCBhdHRuYW1lcyAgfCByb3dmaWx0ZXIgCistLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0KKyB0ZXN0cHViX2V4Y2VwdCB8IHB1YmxpYyAgICAgfCBwdWJfdGVzdF9leGNlcHQx IHwge2MsZH0gICAgIHwgCisgdGVzdHB1Yl9leGNlcHQgfCBwdWJfc2NoMSAgIHwgcHViX3Rlc3Rf ZXhjZXB0MiB8IHthLGIsYyxkfSB8IAorKDIgcm93cykKKworLS0gVmVyaWZ5IEFMVEVSIFBVQkxJ Q0FUSU9OIC4uLiBEUk9QCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBEUk9QIFRB QkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUIChhLCBiKTsKK0VSUk9SOiAgZXhjZXB0IGNvbHVt biBsaXN0IG11c3Qgbm90IGJlIHNwZWNpZmllZCBpbiBBTFRFUiBQVUJMSUNBVElPTiAuLi4gRFJP UAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQgRFJPUCBUQUJMRSBwdWJfdGVzdF9l eGNlcHQxOworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQgQUREIFRBQkxFIHB1Yl90 ZXN0X2V4Y2VwdDEgRVhDRVBUIChjLCBkKTsKK1NFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25f dGFibGVzIFdIRVJFIHB1Ym5hbWUgPSAndGVzdHB1Yl9leGNlcHQnOworICAgIHB1Ym5hbWUgICAg IHwgc2NoZW1hbmFtZSB8ICAgIHRhYmxlbmFtZSAgICAgfCBhdHRuYW1lcyAgfCByb3dmaWx0ZXIg CistLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0KKyB0ZXN0cHViX2V4Y2VwdCB8IHB1YmxpYyAgICAgfCBwdWJfdGVz dF9leGNlcHQxIHwge2EsYn0gICAgIHwgCisgdGVzdHB1Yl9leGNlcHQgfCBwdWJfc2NoMSAgIHwg cHViX3Rlc3RfZXhjZXB0MiB8IHthLGIsYyxkfSB8IAorKDIgcm93cykKKworLS0gVmVyaWZ5IGV4 Y2x1ZGVkIGNvbHVtbnMgY2Fubm90IGJlIHBhcnQgb2YgUkVQTElDQSBJREVOVElUWQorQUxURVIg VEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBSRVBMSUNBIElERU5USVRZIEZVTEw7CitVUERBVEUgcHVi X3Rlc3RfZXhjZXB0MSBTRVQgYSA9IDMgV0hFUkUgYSA9IDE7CitFUlJPUjogIGNhbm5vdCB1cGRh dGUgdGFibGUgInB1Yl90ZXN0X2V4Y2VwdDEiCitERVRBSUw6ICBDb2x1bW4gbGlzdCB1c2VkIGJ5 IHRoZSBwdWJsaWNhdGlvbiBkb2VzIG5vdCBjb3ZlciB0aGUgcmVwbGljYSBpZGVudGl0eS4KK0NS RUFURSBVTklRVUUgSU5ERVggcHViX3Rlc3RfZXhjZXB0MV9hX2lkeCBPTiBwdWJfdGVzdF9leGNl cHQxIChhLCBjKTsKK0FMVEVSIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgUkVQTElDQSBJREVOVElU WSBVU0lORyBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FfaWR4OworVVBEQVRFIHB1Yl90ZXN0X2V4 Y2VwdDEgU0VUIGEgPSAzIFdIRVJFIGEgPSAxOworRVJST1I6ICBjYW5ub3QgdXBkYXRlIHRhYmxl ICJwdWJfdGVzdF9leGNlcHQxIgorREVUQUlMOiAgQ29sdW1uIGxpc3QgdXNlZCBieSB0aGUgcHVi bGljYXRpb24gZG9lcyBub3QgY292ZXIgdGhlIHJlcGxpY2EgaWRlbnRpdHkuCitEUk9QIElOREVY IHB1Yl90ZXN0X2V4Y2VwdDFfYV9pZHg7CitDUkVBVEUgVU5JUVVFIElOREVYIHB1Yl90ZXN0X2V4 Y2VwdDFfYV9pZHggT04gcHViX3Rlc3RfZXhjZXB0MSAoYSk7CitBTFRFUiBUQUJMRSBwdWJfdGVz dF9leGNlcHQxIFJFUExJQ0EgSURFTlRJVFkgVVNJTkcgSU5ERVggcHViX3Rlc3RfZXhjZXB0MV9h X2lkeDsKK1VQREFURSBwdWJfdGVzdF9leGNlcHQxIFNFVCBhID0gMyBXSEVSRSBhID0gMTsKK0RS T1AgSU5ERVggcHViX3Rlc3RfZXhjZXB0MV9hX2lkeDsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1 Yl9leGNlcHQ7CitEUk9QIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDE7CitEUk9QIFRBQkxFIHB1Yl9z Y2gxLnB1Yl90ZXN0X2V4Y2VwdDI7CitEUk9QIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDM7CiBEUk9Q IFNDSEVNQSBwdWJfc2NoMTsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBSRVNFVCBTRVNT SU9OIEFVVEhPUklaQVRJT047CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJs aWNhdGlvbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKaW5kZXgg YWYzMWEyMjE0Y2EuLjZiMjNmMjE1NzM5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9wdWJsaWNhdGlvbi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24u c3FsCkBAIC0xMzE4LDYgKzEzMTgsNTEgQEAgU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91 c2VyOwogRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0OwogRFJPUCBUQUJMRSBwdWJfc2No MS50YmwxOwogRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwyOworCistLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFRlc3QgRVhDRVBUIGNv bHVtbnMgZm9yIENSRUFURSBQVUJMSUNBVElPTgorCitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9 ICdFUlJPUic7CitDUkVBVEUgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSAoYSBpbnQgTk9UIE5VTEws IGIgaW50LCBjIGludCBOT1QgTlVMTCwgZCBpbnQpOworQ1JFQVRFIFRBQkxFIHB1Yl9zY2gxLnB1 Yl90ZXN0X2V4Y2VwdDIgKGEgaW50LCBiIGludCwgYyBpbnQsIGQgaW50KTsKK0NSRUFURSBUQUJM RSBwdWJfdGVzdF9leGNlcHQzIChhIGludCwgZ2VuMSBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YSAqIDIpIFNUT1JFRCk7CisKKy0tIFZlcmlmeSB0aGF0IHB1YmxpY2F0aW9uIGlzIGNyZWF0ZWQg d2l0aCBFWENFUFQKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBGT1IgVEFCTEUg cHViX3Rlc3RfZXhjZXB0MSwgcHViX3NjaDEucHViX3Rlc3RfZXhjZXB0MiBFWENFUFQgKGIsIGMp OworU0VMRUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl90YWJsZXMgV0hFUkUgcHVibmFtZSA9ICd0 ZXN0cHViX2V4Y2VwdCc7CisKKy0tIENoZWNrIGZvciBpbnZhbGlkIGNhc2VzCitDUkVBVEUgUFVC TElDQVRJT04gdGVzdHB1Yl9leGNlcHQyIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl9zY2gxLCBU QUJMRSBwdWJfdGVzdF9leGNlcHQxIEVYQ0VQVCAoYiwgYyk7CitDUkVBVEUgUFVCTElDQVRJT04g dGVzdHB1Yl9leGNlcHQyIEZPUiBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIEVYQ0VQVDsKK0NSRUFU RSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdDIgRk9SIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDMg RVhDRVBUIChnZW4xKTsKKworLS0gVmVyaWZ5IHRoYXQgcHVibGljYXRpb24gY2FuIGJlIGFsdGVy ZWQgd2l0aCBFWENFUFQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0IFNFVCBUQUJM RSBwdWJfdGVzdF9leGNlcHQxIEVYQ0VQVCAoYSwgYiksIHB1Yl9zY2gxLnB1Yl90ZXN0X2V4Y2Vw dDI7CitTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3RhYmxlcyBXSEVSRSBwdWJuYW1lID0g J3Rlc3RwdWJfZXhjZXB0JzsKKworLS0gVmVyaWZ5IEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBEUk9Q CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBEUk9QIFRBQkxFIHB1Yl90ZXN0X2V4 Y2VwdDEgRVhDRVBUIChhLCBiKTsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0IERS T1AgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MTsKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9l eGNlcHQgQUREIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUIChjLCBkKTsKK1NFTEVDVCAq IEZST00gcGdfcHVibGljYXRpb25fdGFibGVzIFdIRVJFIHB1Ym5hbWUgPSAndGVzdHB1Yl9leGNl cHQnOworCistLSBWZXJpZnkgZXhjbHVkZWQgY29sdW1ucyBjYW5ub3QgYmUgcGFydCBvZiBSRVBM SUNBIElERU5USVRZCitBTFRFUiBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIFJFUExJQ0EgSURFTlRJ VFkgRlVMTDsKK1VQREFURSBwdWJfdGVzdF9leGNlcHQxIFNFVCBhID0gMyBXSEVSRSBhID0gMTsK K0NSRUFURSBVTklRVUUgSU5ERVggcHViX3Rlc3RfZXhjZXB0MV9hX2lkeCBPTiBwdWJfdGVzdF9l eGNlcHQxIChhLCBjKTsKK0FMVEVSIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgUkVQTElDQSBJREVO VElUWSBVU0lORyBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FfaWR4OworVVBEQVRFIHB1Yl90ZXN0 X2V4Y2VwdDEgU0VUIGEgPSAzIFdIRVJFIGEgPSAxOworRFJPUCBJTkRFWCBwdWJfdGVzdF9leGNl cHQxX2FfaWR4OworQ1JFQVRFIFVOSVFVRSBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FfaWR4IE9O IHB1Yl90ZXN0X2V4Y2VwdDEgKGEpOworQUxURVIgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBSRVBM SUNBIElERU5USVRZIFVTSU5HIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYV9pZHg7CitVUERBVEUg cHViX3Rlc3RfZXhjZXB0MSBTRVQgYSA9IDMgV0hFUkUgYSA9IDE7CisKK0RST1AgSU5ERVggcHVi X3Rlc3RfZXhjZXB0MV9hX2lkeDsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQ7CitE Uk9QIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDE7CitEUk9QIFRBQkxFIHB1Yl9zY2gxLnB1Yl90ZXN0 X2V4Y2VwdDI7CitEUk9QIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDM7CiBEUk9QIFNDSEVNQSBwdWJf c2NoMTsKIAogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3N1YnNjcmlwdGlvbi90LzAzNl9yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwgYi9zcmMvdGVz dC9zdWJzY3JpcHRpb24vdC8wMzZfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsCmluZGV4IDFk MTE1MjgzODA5Li5lYzc3ZjJlOGQwNCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9u L3QvMDM2X3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbAorKysgYi9zcmMvdGVzdC9zdWJzY3Jp cHRpb24vdC8wMzZfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsCkBAIC0xLDcgKzEsNyBAQAog CiAjIENvcHlyaWdodCAoYykgMjAyMS0yMDIyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVu dCBHcm91cAogCi0jIExvZ2ljYWwgcmVwbGljYXRpb24gdGVzdHMgZm9yIGV4Y2VwdCB0YWJsZSBw dWJsaWNhdGlvbnMKKyMgTG9naWNhbCByZXBsaWNhdGlvbiB0ZXN0cyBmb3IgZXhjZXB0IHRhYmxl IGFuZCBleGNlcHQgY29sdW1uIHB1YmxpY2F0aW9ucwogdXNlIHN0cmljdDsKIHVzZSB3YXJuaW5n czsKIHVzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwpAQCAtNzcsNiArNzcsNjQgQEAgJHJl c3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJTRUxFQ1Qg Y291bnQoKiksIG1pbihhKSwgbWF4KGEpIEZST00gcHVibGljLnRhYjEiKTsKIGlzKCRyZXN1bHQs IHFxKDB8fCksICdjaGVjayByb3dzIG9uIHN1YnNjcmliZXIgY2F0Y2h1cCcpOwogCisjIFRlc3Qg Zm9yIGV4Y2VwdCBjb2x1bW4gcHVibGljYXRpb25zCisjIEluaXRpYWwgc2V0dXAKKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0YWIyIChhIGlu dCwgYiBpbnQgTk9UIE5VTEwsIGMgaW50KSIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywKKwkiQ1JFQVRFIFRBQkxFIHNjaDEudGFiMiAoYSBpbnQsIGIgaW50LCBjIGlu dCkiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJJTlNFUlQgSU5U TyB0YWIyIFZBTFVFUyAoMSwgMiwgMykiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHNjaDEudGFiMiBWQUxVRVMgKDEsIDIsIDMpIik7Cisk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgUFVCTElDQVRJ T04gdGFwX3B1Yl9jb2wgRk9SIFRBQkxFIHRhYjIgRVhDRVBUIChhKSwgc2NoMS50YWIyIEVYQ0VQ VCAoYiwgYykiCispOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IkNSRUFURSBUQUJMRSB0YWIyIChhIGludCwgYiBpbnQgTk9UIE5VTEwsIGMgaW50KSIpOworJG5v ZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSBzY2gx LnRhYjIgKGEgaW50LCBiIGludCwgYyBpbnQpIik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiB0YXBfc3ViX2NvbCBDT05ORUNU SU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHRhcF9wdWJfY29sIgorKTsKKyRu b2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hl ciwgJ3RhcF9zdWJfY29sJyk7CisKKyMgVGVzdCBpbml0aWFsIHN5bmMKKyRyZXN1bHQgPSAkbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gdGFiMiIp OworaXMoJHJlc3VsdCwgcXEofDJ8MyksCisJJ2NoZWNrIHRoYXQgaW5pdGlhbCBzeW5jIGZvciBl eGNlcHQgY29sdW1uIHB1YmxpY2F0aW9uJyk7CiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHNjaDEudGFiMiIpOworaXMoJHJl c3VsdCwgcXEoMXx8KSwgJ2NoZWNrIHRoYXQgaW5pdGlhbCBzeW5jIGZvciBleGNlcHQgY29sdW1u IHB1YmxpY2F0aW9uJyk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAi SU5TRVJUIElOVE8gdGFiMiBWQUxVRVMgKDQsIDUsIDYpIik7Ciskbm9kZV9wdWJsaXNoZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyBzY2gxLnRhYjIgVkFMVUVTICg0LCA1 LCA2KSIpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX2NvbCcp OworCisjIFRlc3QgaW5jcmVtZW50YWwgY2hhbmdlcworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmli ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSB0YWIyIik7CitpcyggJHJl c3VsdCwgcXEofDJ8MworfDV8NiksCisJJ2NoZWNrIGluY3JlbWVudGFsIGluc2VydCBmb3IgZXhj ZXB0IGNvbHVtbiBwdWJsaWNhdGlvbicpOworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSBzY2gxLnRhYjIiKTsKK2lzKCAkcmVz dWx0LCBxcSgxfHwKKzR8fCksICdjaGVjayBpbmNyZW1lbnRhbCBpbnNlcnQgZm9yIGV4Y2VwdCBj b2x1bW4gcHVibGljYXRpb24nKTsKKworIyBUZXN0IGZvciB1cGRhdGUKKyRub2RlX3B1Ymxpc2hl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBVTklRVUUgSU5ERVggYl9pZHggT04g dGFiMiAoYikiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFM VEVSIFRBQkxFIHRhYjIgUkVQTElDQSBJREVOVElUWSBVU0lORyBJTkRFWCBiX2lkeCIpOworJG5v ZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBVTklRVUUgSU5E RVggYl9pZHggT04gdGFiMiAoYikiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLAorCSJBTFRFUiBUQUJMRSB0YWIyIFJFUExJQ0EgSURFTlRJVFkgVVNJTkcgSU5ERVgg Yl9pZHgiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlVQREFU RSB0YWIyIFNFVCBhID0gMywgYiA9IDQsIGMgPSA1IFdIRVJFIGEgPSAxIik7Ciskbm9kZV9wdWJs aXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfY29sJyk7CiskcmVzdWx0ID0gJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHRhYjIiKTsK K2lzKCAkcmVzdWx0LCBxcSh8NXw2Cit8NHw1KSwKKwknY2hlY2sgdXBkYXRlIGZvciBleGNlcHQg Y29sdW1uIHB1YmxpY2F0aW9uJyk7CisKICRub2RlX3N1YnNjcmliZXItPnN0b3AoJ2Zhc3QnKTsK ICRub2RlX3B1Ymxpc2hlci0+c3RvcCgnZmFzdCcpOwogCi0tIAoyLjM0LjEKCg== --000000000000e99f730637bfa40a--