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 1tU6Td-00E8vE-8t for pgsql-hackers@arkaria.postgresql.org; Sat, 04 Jan 2025 15:54:14 +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 1tU6Tc-00BQgR-LY for pgsql-hackers@arkaria.postgresql.org; Sat, 04 Jan 2025 15:54:12 +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 1tSuTG-007mkL-MH for pgsql-hackers@lists.postgresql.org; Wed, 01 Jan 2025 08:52:54 +0000 Received: from mail-vs1-xe2a.google.com ([2607:f8b0:4864:20::e2a]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1tSuT4-002dlO-SP for pgsql-hackers@postgresql.org; Wed, 01 Jan 2025 08:52:53 +0000 Received: by mail-vs1-xe2a.google.com with SMTP id ada2fe7eead31-4afeb79b52fso2883977137.0 for ; Wed, 01 Jan 2025 00:52:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1735721561; x=1736326361; darn=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=nbIBDviWQBUWIBRZo9ikuVe39Mzf+juQfha0XoNOGI0=; b=FFHMP0WBidF5XaYh6ISlmu89BbgRmRHm3rePw8H3N/IBxl0YKyl/NKueuz9JZsogZe UNvdVNkE7pVFxG6FwiyTaGSMZ+0oZrwm35gYblH1a9GM/rn8Ie3i02IOoGDzRmqRJGDa L47zc/AJ1k6X9vO/83iU95ua4E1HZrYV7s4wDacnRMXwRN8G09y7IfSFa2NK8xUos7S6 fr3dbGlZxidQAhETemsQ15eqU3X3IwAwWGw0un5EoSlCssBnluUXtnZdTPMtobBvol7B 2y3PuJ9JwbXDeKBr6ut75ABoQtRKI682g0KE84LfhcIYwqmu2q4AyGGvuRBOWR4XLh9G XV2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735721561; x=1736326361; 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=nbIBDviWQBUWIBRZo9ikuVe39Mzf+juQfha0XoNOGI0=; b=tuZEvDgPbckx9PeDHL2QAxOjQztA7H6GDtcsewGO4wD9ZoprXnD1NCER9OgbsZQkSa lCagZ+NPyWuRo85KN+TkCCAhy+Vhtts9FJxmXS/CZUJM3XQvIz66U36hPZU6mA0FK9Qk Bk3VTZG1zP//AEakc4p1rI+O18dyA6tguhWJBj8knGVjJDp0/nv2dgzX4le1r473KKz/ zBcDpmhZxl5Ppytz7EJc1nodEpo+wYZQ6n0tz2ShP3670C3NPq+tB6jnOc8IY4E/iBqO Dd27SzcnygYnnlzEjjYMmCNQTlIBf3GowAwlB92lisuig0sS7KCcGH81jE+0qIkkJLpS qR1g== X-Forwarded-Encrypted: i=1; AJvYcCW79yC/b1ObxZ9xxBrHL6qbg8HyLiDUrf/spdJoQwcSbuGtye98gdpQVgXKEDllWTEozSo5K3oeSSZPsprv@postgresql.org X-Gm-Message-State: AOJu0Yz3nhhpkQOAokF/Bo76iCyKqKrBu0trKF5keJp/gOi0iO4q9zJk qQ+IIKkPNSKERkkHaDz6ayy2DVab4UtAXFPHq7afQE7hdLLyhtxEj/xmitJHtMeOonsu8PYFG9l vhLhyRblxr150D02DMWQf/v6Q1Cc= X-Gm-Gg: ASbGncvxZxSTuSn/q+BKM37Sv4g3xcgSLWGp0dgq2YLB5hhCP+RSrIzaGPvxhnDmFyR +Gk8I4wdAuOwDBpEVNq+xXDaapRDnlUTWJwJR/Jc= X-Google-Smtp-Source: AGHT+IFq3z7GdD7BGtu0ZIt0JXSy8o8g+6t6huJVDPwe/1hhTbjUewoojKCAIAIFGkTwDJlOT7u7MkkQJf5N8D+QUEY= X-Received: by 2002:a05:6102:4187:b0:4b1:130f:9fd5 with SMTP id ada2fe7eead31-4b2cc464e35mr30683915137.19.1735721561185; Wed, 01 Jan 2025 00:52:41 -0800 (PST) MIME-Version: 1.0 References: <04c0abe2-e9c5-4ffc-97b2-bedc1e3cd178@eisentraut.org> <3b190de8-910a-4091-82f9-e98cf562d832@postgresfriends.org> In-Reply-To: From: Ashutosh Bapat Date: Wed, 1 Jan 2025 14:22:29 +0530 Message-ID: Subject: Re: SQL Property Graph Queries (SQL/PGQ) To: Junwang Zhao Cc: Vik Fearing , Ajay Pal , Imran Zaheer , Peter Eisentraut , pgsql-hackers Content-Type: multipart/mixed; boundary="00000000000015b3be062aa12bab" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000015b3be062aa12bab Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, Dec 21, 2024 at 6:21=E2=80=AFPM Junwang Zhao wr= ote: Thanks Junwang for your review. > Here are some review opinions for 0001, I haven't seen the other > patches, forgive me if some of the opinions have already been > addressed. > > 1. In propgraph_edge_get_ref_keys, when finding a matching foreign key, > the fk pointer will always point to last ForeignKeyCacheInfo of > the edge relation, which is wrong. We should add another pointer > that remembers the matched ForeignKeyCacheInfo to ref_rel. See > attached 0001. Nice catch. I fixed it in a slightly different way reducing overall code by using foreach_node(). I have merged this as part of 0004 which has fixes for several other issues. Interestingly there was a SQL that had revealed the problem in create_property_graph.sql. But we had accepted a wrong output. Corrected that as well. > > 2. Some of the TODOs seem easy to address, attached 0002 does this. From a cursory glance those changes look useful and mostly correct. It will be good if you can provide a SQL test for those, covering that part of the code. Please post the whole patch-set with your changes as a separate commit/patch. > > 3. Since property name and label name are unique in property graph > scope, some of the wording are not accurate. See attached 0003. - For each property graph element, all properties with the same name m= ust - have the same expression for each label. For example, this would be + For each property graph, all properties with the same name must + have the same expression. For example, this would be Each property graph element may have a property with the same name associated with multiple labels. But each of those properties should have the same expression. You may see that as the same property being defined multiple times once in each label it is associated with OR multiple properties with the same name. Current wording uses the latter notion, so it looks fine to me. The changes made to error messages are not needed with this notion. -- Best Wishes, Ashutosh Bapat --00000000000015b3be062aa12bab Content-Type: text/x-patch; charset="US-ASCII"; name="0002-support-WHERE-clause-in-graph-pattern-20250101.patch" Content-Disposition: attachment; filename="0002-support-WHERE-clause-in-graph-pattern-20250101.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5dnsexq1 RnJvbSA0Zjg5NmYzZTg3NTYwM2M5ZDI4NGU1NmY4YjgzNTJkNWFhNjRiZGMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBc2h1dG9zaCBCYXBhdCA8YXNodXRvc2guYmFwYXRAZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogTW9uLCA4IEp1bCAyMDI0IDExOjUzOjI1ICswNTMwClN1YmplY3Q6 IFtQQVRDSCAyLzldIHN1cHBvcnQgV0hFUkUgY2xhdXNlIGluIGdyYXBoIHBhdHRlcm4KCi0tLQog c3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlR3JhcGhUYWJsZS5jICAgfCAgOSArKysrKysrCiBz cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91dCB8IDMzICsrKysrKysrKysr KysrKysrKystLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ncmFwaF90YWJsZS5zcWwgICAgICB8 IDE0ICsrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwgNSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRh YmxlLmMgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMKaW5kZXggZWUx MTU5NGQyY2YuLjRiNzg3YTJlODhmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jl d3JpdGVHcmFwaFRhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlR3JhcGhU YWJsZS5jCkBAIC0zMTAsNiArMzEwLDE1IEBAIGdlbmVyYXRlX3F1ZXJ5X2Zvcl9ncmFwaF9wYXRo KFJhbmdlVGJsRW50cnkgKnJ0ZSwgTGlzdCAqZ3JhcGhfcGF0aCkKIAkJcXVhbF9leHBycyA9IGxp c3RfY29uY2F0KHF1YWxfZXhwcnMsIGdwZS0+cXVhbF9leHBycyk7CiAJfQogCisJaWYgKHJ0ZS0+ Z3JhcGhfcGF0dGVybi0+d2hlcmVDbGF1c2UpCisJeworCQlOb2RlCSAgICpwYXRoX3F1YWxzID0g cmVwbGFjZV9wcm9wZXJ0eV9yZWZzKHJ0ZS0+cmVsaWQsCisJCQkJCQkJCQkJCQkJICAgKE5vZGUg KikgcnRlLT5ncmFwaF9wYXR0ZXJuLT53aGVyZUNsYXVzZSwKKwkJCQkJCQkJCQkJCQkgICBncmFw aF9wYXRoKTsKKworCQlxdWFsX2V4cHJzID0gbGFwcGVuZChxdWFsX2V4cHJzLCBwYXRoX3F1YWxz KTsKKwl9CisKIAlwYXRoX3F1ZXJ5LT5qb2ludHJlZSA9IG1ha2VGcm9tRXhwcihmcm9tbGlzdCwK IAkJCQkJCQkJCQkoTm9kZSAqKSBtYWtlQm9vbEV4cHIoQU5EX0VYUFIsIHF1YWxfZXhwcnMsIC0x KSk7CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3JhcGhfdGFibGUu b3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ncmFwaF90YWJsZS5vdXQKaW5kZXggODEz ZmM5YWEyNTUuLmRlMGQxNjNlODMwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2dyYXBoX3RhYmxlLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyYXBo X3RhYmxlLm91dApAQCAtMjM3LDYgKzIzNywxMiBAQCBjcmVhdGUgdGFibGUgZTFfMiAoaWRfMSBp bnQsCiAJCQkJCWlkXzJfMiBpbnQsCiAJCQkJCWVuYW1lIHZhcmNoYXIoMTApLAogCQkJCQllcHJv cDEgaW50KTsKKy0tIGVkZ2UgY29ubmVjdGluZyB2MiBhbmQgdjEKK2NyZWF0ZSB0YWJsZSBlMl8x IChpZF8yXzEgaW50LAorCQkJCQlpZF8yXzIgaW50LAorICAgICAgICAgICAgICAgICAgICBpZF8x IGludCwKKwkJCQkJZW5hbWUgdmFyY2hhcigxMCksCisJCQkJCWVwcm9wMSBpbnQpOwogLS0gZWRn ZSBjb25uZWN0aW5nIHYxIGFuZCB2MwogY3JlYXRlIHRhYmxlIGUxXzMgKGlkXzEgaW50LAogCQkJ CQlpZF8zIGludCwKQEAgLTI2OCw2ICsyNzQsMTEgQEAgZWRnZSB0YWJsZXMgKAogCQlkZXN0aW5h dGlvbiBrZXkgKGlkXzJfMSwgaWRfMl8yKSByZWZlcmVuY2VzIHYyIChpZDEsIGlkMikKIAkJbGFi ZWwgZWwxIHByb3BlcnRpZXMgKGVwcm9wMSwgZW5hbWUpCiAgICAgICAgIGxhYmVsIGwxIHByb3Bl cnRpZXMgKGVuYW1lIGFzIGVsbmFtZSksCisJZTJfMSBrZXkgKGlkXzJfMSwgaWRfMl8yLCBpZF8x KQorCQlzb3VyY2Uga2V5IChpZF8yXzEsIGlkXzJfMikgcmVmZXJlbmNlcyB2MiAoaWQxLCBpZDIp CisJCWRlc3RpbmF0aW9uIGtleSAoaWRfMSkgcmVmZXJlbmNlcyB2MSAoaWQpCisJCWxhYmVsIGVs MSBwcm9wZXJ0aWVzIChlcHJvcDEsIGVuYW1lKQorICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVz IChlbmFtZSBhcyBlbG5hbWUpLAogCWUxXzMKIAkJc291cmNlIGtleSAoaWRfMSkgcmVmZXJlbmNl cyB2MSAoaWQpCiAJCWRlc3RpbmF0aW9uIGtleSAoaWRfMykgcmVmZXJlbmNlcyB2MyAoaWQpCkBA IC0yOTYsMTcgKzMwNywxOCBAQCBpbnNlcnQgaW50byBlMV8yIHZhbHVlcyAoMSwgMTAwMCwgMiwg J2UxMjEnLCAxMDAwMSksCiBpbnNlcnQgaW50byBlMV8zIHZhbHVlcyAoMSwgMjAwMywgJ2UxMzEn LCAxMDAwMyksCiAgICAgICAgICAgICAgICAgICAgICAgICAoMSwgMjAwMSwgJ2UxMzInLCAxMDAw NCk7CiBpbnNlcnQgaW50byBlMl8zIHZhbHVlcyAoMTAwMCwgMiwgMjAwMiwgJ2UyMzEnLCAxMDAw NSk7CitpbnNlcnQgaW50byBlMl8xIHZhbHVlcyAoMTAwMCwgMSwgMiwgJ2UyMTEnLCAxMDAwNik7 CiAtLSBlbXB0eSBlbGVtZW50IHBhdGggcGF0dGVybiwgY291bnRzIG51bWJlciBvZiBlZGdlcyBp biB0aGUgZ3JhcGgKIFNFTEVDVCBjb3VudCgqKSBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAo KS1bXS0+KCkgQ09MVU1OUyAoMSBhcyBvbmUpKTsKICBjb3VudCAKIC0tLS0tLS0KLSAgICAgNQor ICAgICA2CiAoMSByb3cpCiAKIFNFTEVDVCBjb3VudCgqKSBGUk9NIEdSQVBIX1RBQkxFIChnMSBN QVRDSCAoKS0+KCkgQ09MVU1OUyAoMSBhcyBvbmUpKTsKICBjb3VudCAKIC0tLS0tLS0KLSAgICAg NQorICAgICA2CiAoMSByb3cpCiAKIC0tIFZlcnRleCBlbGVtZW50IHYyIGhhcyBsYWJlbCB2bDMg d2hpY2ggZXhwb3NlcyBwcm9wZXJ0eSB2cHJvcDEuIEJ1dCB2bDMgaXMKQEAgLTMzNyw2ICszNDks MTQgQEAgc2VsZWN0IHNyYywgY29ubiwgZGVzdCwgbHByb3AxLCB2cHJvcDIsIHZwcm9wMSBmcm9t IGdyYXBoX3RhYmxlIChnMSBtYXRjaCAoYSBpcwogIHYxMSB8IGUxMzIgfCB2MzEgIHwgdmwzX3By b3AgfCAgICAgICAgfCAgIDIwMTAKICg0IHJvd3MpCiAKKy0tIFdIRVJFIGNsYXVzZSBpbiBncmFw aCBwYXR0ZXJuCitTRUxFQ1Qgc2VsZiwgdGhyb3VnaCBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRD SCAoYSktPihiKS0+KGMpIFdIRVJFIGEudm5hbWUgPSBjLnZuYW1lIGFuZCBhLnZuYW1lIDw+IGIu dm5hbWUgQ09MVU1OUyAoYS52bmFtZSBhcyBzZWxmLCBiLnZuYW1lIGFzIHRocm91Z2gpKTsKKyBz ZWxmIHwgdGhyb3VnaCAKKy0tLS0tLSstLS0tLS0tLS0KKyB2MTIgIHwgdjIxCisgdjIxICB8IHYx MgorKDIgcm93cykKKwogLS0gRXJyb3JzCiAtLSB2bDEgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCBw cm9wZXJ0eSB2cHJvcDIKIHNlbGVjdCBzcmMsIHNyY192cHJvcDIsIGNvbm4sIGRlc3QgZnJvbSBn cmFwaF90YWJsZSAoZzEgbWF0Y2ggKGEgaXMgdmwxKS1bYiBpcyBlbDFdLT4oYyBpcyB2bDIgfCB2 bDMpIGNvbHVtbnMgKGEudm5hbWUgYXMgc3JjLCBhLnZwcm9wMiBhcyBzcmNfdnByb3AyLCBiLmVu YW1lIGFzIGNvbm4sIGMudm5hbWUgYXMgZGVzdCkpOwpAQCAtMzYyLDggKzM4Miw5IEBAIHNlbGVj dCAqIGZyb20gZ3JhcGhfdGFibGUgKGcxIG1hdGNoIChzcmMpLVtjb25uXS0+KGRlc3QpIGNvbHVt bnMgKHNyYy52bmFtZSBhcyBzCiAgdjExICAgIHwgZTEyMSAgIHwgdjIyICAgIHwgICAxMCB8ICAg ICAgfCAgICAgICAgICB8IDEwMjAgfCAxMjAwIHwgdmwyX3Byb3AgfCAxMDAwMSB8ICAgICAgIAog IHYxMSAgICB8IGUxMzEgICB8IHYzMyAgICB8ICAgMTAgfCAgICAgIHwgICAgICAgICAgfCAyMDMw IHwgICAgICB8IHZsM19wcm9wIHwgMTAwMDMgfCAgICAgICAKICB2MTEgICAgfCBlMTMyICAgfCB2 MzEgICAgfCAgIDEwIHwgICAgICB8ICAgICAgICAgIHwgMjAxMCB8ICAgICAgfCB2bDNfcHJvcCB8 IDEwMDA0IHwgICAgICAgCisgdjIxICAgIHwgZTIxMSAgIHwgdjEyICAgIHwgMTAxMCB8IDExMDAg fCB2bDJfcHJvcCB8ICAgMjAgfCAgICAgIHwgICAgICAgICAgfCAxMDAwNiB8ICAgICAgIAogIHYy MiAgICB8IGUyMzEgICB8IHYzMiAgICB8IDEwMjAgfCAxMjAwIHwgdmwyX3Byb3AgfCAyMDIwIHwg ICAgICB8IHZsM19wcm9wIHwgICAgICAgfCAxMDAwNTAKLSg1IHJvd3MpCisoNiByb3dzKQogCiAt LSB0aHJlZSBsYWJlbCBkaXNqdW5jdGlvbgogc2VsZWN0ICogZnJvbSBncmFwaF90YWJsZSAoZzEg bWF0Y2ggKHNyYyBJUyB2bDEgfCB2bDIgfCB2bDMpLVtjb25uXS0+KGRlc3QpIGNvbHVtbnMgKHNy Yy52bmFtZSBhcyBzdm5hbWUsIGNvbm4uZW5hbWUgYXMgY2VuYW1lLCBkZXN0LnZuYW1lIGFzIGR2 bmFtZSkpOwpAQCAtMzczLDggKzM5NCw5IEBAIHNlbGVjdCAqIGZyb20gZ3JhcGhfdGFibGUgKGcx IG1hdGNoIChzcmMgSVMgdmwxIHwgdmwyIHwgdmwzKS1bY29ubl0tPihkZXN0KSBjb2x1CiAgdjEx ICAgIHwgZTEyMSAgIHwgdjIyCiAgdjExICAgIHwgZTEzMSAgIHwgdjMzCiAgdjExICAgIHwgZTEz MiAgIHwgdjMxCisgdjIxICAgIHwgZTIxMSAgIHwgdjEyCiAgdjIyICAgIHwgZTIzMSAgIHwgdjMy Ci0oNSByb3dzKQorKDYgcm93cykKIAogLS0gZ3JhcGgnaWNhbCBxdWVyeTogZmluZCBhIHZlcnRl eCB3aGljaCBpcyBub3QgY29ubmVjdGVkIHRvIGFueSBvdGhlciB2ZXJ0ZXggYXMgYSBzb3VyY2Ug b3IgYSBkZXN0aW5hdGlvbi4KIHdpdGggYWxsX2Nvbm5lY3RlZF92ZXJ0aWNlcyBhcyAoc2VsZWN0 IHN2biwgZHZuIGZyb20gZ3JhcGhfdGFibGUgKGcxIG1hdGNoIChzcmMpLVtjb25uXS0+KGRlc3Qp IGNvbHVtbnMgKHNyYy52bmFtZSBhcyBzdm4sIGRlc3Qudm5hbWUgYXMgZHZuKSkpLApAQCAtMzk0 LDggKzQxNiw5IEBAIHNlbGVjdCBzbiwgY24sIGRuIGZyb20gZ3JhcGhfdGFibGUgKGcxIG1hdGNo IChzcmMgOiBsMSktW2Nvbm4gOiBsMV0tPihkZXN0IDogbDEpCiAgdjExIHwgZTEyMSB8IHYyMgog IHYxMSB8IGUxMzEgfCB2MzMKICB2MTEgfCBlMTMyIHwgdjMxCisgdjIxIHwgZTIxMSB8IHYxMgog IHYyMiB8IGUyMzEgfCB2MzIKLSg1IHJvd3MpCisoNiByb3dzKQogCiAtLSBwcm9wZXJ0eSBncmFw aCB3aXRoIHNvbWUgb2YgdGhlIGVsZW1lbnRzLCBsYWJlbHMgYW5kIHByb3BlcnRpZXMgc2FtZSBh cyB0aGUKIC0tIHByZXZpb3VzIG9uZS4gVGVzdCB3aGV0aGVyIGNvbXBvbmVudHMgZnJvbSB0aGUg c3BlY2lmaWVkIHByb3BlcnR5IGdyYXBoIGFyZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvZ3JhcGhfdGFibGUuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3JhcGhfdGFibGUu c3FsCmluZGV4IDJiNDNiMTM2ZWFjLi40ODY1OTRhOTkzNCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvZ3JhcGhfdGFibGUuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dy YXBoX3RhYmxlLnNxbApAQCAtMTY5LDYgKzE2OSwxMiBAQCBjcmVhdGUgdGFibGUgZTFfMiAoaWRf MSBpbnQsCiAJCQkJCWlkXzJfMiBpbnQsCiAJCQkJCWVuYW1lIHZhcmNoYXIoMTApLAogCQkJCQll cHJvcDEgaW50KTsKKy0tIGVkZ2UgY29ubmVjdGluZyB2MiBhbmQgdjEKK2NyZWF0ZSB0YWJsZSBl Ml8xIChpZF8yXzEgaW50LAorCQkJCQlpZF8yXzIgaW50LAorICAgICAgICAgICAgICAgICAgICBp ZF8xIGludCwKKwkJCQkJZW5hbWUgdmFyY2hhcigxMCksCisJCQkJCWVwcm9wMSBpbnQpOwogCiAt LSBlZGdlIGNvbm5lY3RpbmcgdjEgYW5kIHYzCiBjcmVhdGUgdGFibGUgZTFfMyAoaWRfMSBpbnQs CkBAIC0yMDMsNiArMjA5LDExIEBAIGVkZ2UgdGFibGVzICgKIAkJZGVzdGluYXRpb24ga2V5IChp ZF8yXzEsIGlkXzJfMikgcmVmZXJlbmNlcyB2MiAoaWQxLCBpZDIpCiAJCWxhYmVsIGVsMSBwcm9w ZXJ0aWVzIChlcHJvcDEsIGVuYW1lKQogICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzIChlbmFt ZSBhcyBlbG5hbWUpLAorCWUyXzEga2V5IChpZF8yXzEsIGlkXzJfMiwgaWRfMSkKKwkJc291cmNl IGtleSAoaWRfMl8xLCBpZF8yXzIpIHJlZmVyZW5jZXMgdjIgKGlkMSwgaWQyKQorCQlkZXN0aW5h dGlvbiBrZXkgKGlkXzEpIHJlZmVyZW5jZXMgdjEgKGlkKQorCQlsYWJlbCBlbDEgcHJvcGVydGll cyAoZXByb3AxLCBlbmFtZSkKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAoZW5hbWUgYXMg ZWxuYW1lKSwKIAllMV8zCiAJCXNvdXJjZSBrZXkgKGlkXzEpIHJlZmVyZW5jZXMgdjEgKGlkKQog CQlkZXN0aW5hdGlvbiBrZXkgKGlkXzMpIHJlZmVyZW5jZXMgdjMgKGlkKQpAQCAtMjM2LDYgKzI0 Nyw3IEBAIGluc2VydCBpbnRvIGUxXzIgdmFsdWVzICgxLCAxMDAwLCAyLCAnZTEyMScsIDEwMDAx KSwKIGluc2VydCBpbnRvIGUxXzMgdmFsdWVzICgxLCAyMDAzLCAnZTEzMScsIDEwMDAzKSwKICAg ICAgICAgICAgICAgICAgICAgICAgICgxLCAyMDAxLCAnZTEzMicsIDEwMDA0KTsKIGluc2VydCBp bnRvIGUyXzMgdmFsdWVzICgxMDAwLCAyLCAyMDAyLCAnZTIzMScsIDEwMDA1KTsKK2luc2VydCBp bnRvIGUyXzEgdmFsdWVzICgxMDAwLCAxLCAyLCAnZTIxMScsIDEwMDA2KTsKIAogLS0gZW1wdHkg ZWxlbWVudCBwYXRoIHBhdHRlcm4sIGNvdW50cyBudW1iZXIgb2YgZWRnZXMgaW4gdGhlIGdyYXBo CiBTRUxFQ1QgY291bnQoKikgRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKCktW10tPigpIENP TFVNTlMgKDEgYXMgb25lKSk7CkBAIC0yNTAsNiArMjYyLDggQEAgU0VMRUNUICogRlJPTSBHUkFQ SF9UQUJMRSAoZzEgTUFUQ0ggKGEgSVMgdmwxIHwgdmwyKSBDT0xVTU5TIChhLnZuYW1lLAogYS52 cHJvcDEpKTsKIC0tIHZwcm9wMiBpcyBhc3NvY2lhdGVkIHdpdGggdmwyIGJ1dCBub3QgdmwzCiBz ZWxlY3Qgc3JjLCBjb25uLCBkZXN0LCBscHJvcDEsIHZwcm9wMiwgdnByb3AxIGZyb20gZ3JhcGhf dGFibGUgKGcxIG1hdGNoIChhIGlzIHZsMSktW2IgaXMgZWwxXS0+KGMgaXMgdmwyIHwgdmwzKSBj b2x1bW5zIChhLnZuYW1lIGFzIHNyYywgYi5lbmFtZSBhcyBjb25uLCBjLnZuYW1lIGFzIGRlc3Qs IGMubHByb3AxLCBjLnZwcm9wMiwgYy52cHJvcDEpKTsKKy0tIFdIRVJFIGNsYXVzZSBpbiBncmFw aCBwYXR0ZXJuCitTRUxFQ1Qgc2VsZiwgdGhyb3VnaCBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRD SCAoYSktPihiKS0+KGMpIFdIRVJFIGEudm5hbWUgPSBjLnZuYW1lIGFuZCBhLnZuYW1lIDw+IGIu dm5hbWUgQ09MVU1OUyAoYS52bmFtZSBhcyBzZWxmLCBiLnZuYW1lIGFzIHRocm91Z2gpKTsKIAog LS0gRXJyb3JzCiAtLSB2bDEgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCBwcm9wZXJ0eSB2cHJvcDIK LS0gCjIuMzQuMQoK --00000000000015b3be062aa12bab Content-Type: text/x-patch; charset="US-ASCII"; name="0005-Access-permissions-on-property-graph-20250101.patch" Content-Disposition: attachment; filename="0005-Access-permissions-on-property-graph-20250101.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5dnsexv4 RnJvbSA5NDhmOWU4YzY4YjI2MGY5Y2FmZWFiNTE2NjU2NjY4ODMwODU3ZmFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBc2h1dG9zaCBCYXBhdCA8YXNodXRvc2guYmFwYXQub3NzQGdt YWlsLmNvbT4KRGF0ZTogVGh1LCAxNyBPY3QgMjAyNCAxNDo1OToyNiArMDUzMApTdWJqZWN0OiBb UEFUQ0ggNS85XSBBY2Nlc3MgcGVybWlzc2lvbnMgb24gcHJvcGVydHkgZ3JhcGgKCkFjY2VzcyB0 byB0aGUgcHJvcGVydHkgZ3JhcGggcmVmZXJlbmNlZCBpbiBHUkFQSF9UQUJMRSBjbGF1c2UgYW5k IHRoZQpiYXNlIHJlbGF0aW9ucyB1bmRlcmx5aW5nIHRoZSBncmFwaCBwYXR0ZXJuIHNwZWNpZmll ZCBpbiB0aGF0IGNsYXVzZSBhcmUKZ292ZXJuZWQgYnkgdGhlIGZvbGxvd2luZyBydWxlcy4KCjEu IEEgdXNlciBuZWVkcyBTRUxFQ1QgcHJpdmlsZWdlIHRvIGFjY2VzcyBhIHByb3BlcnR5IGdyYXBo IGluIHRoZSBxdWVyeS4KCjIuIFRoZSBwcm9wZXJ0eSBncmFwaCBpdHNlbGYgYWN0cyBzaW1pbGFy IHRvIGEgc2VjdXJpdHkgaW52b2tlciB2aWV3IGluCiAgIHRoZSBzZW5zZSB0aGF0IHRoZSBjdXJy ZW50X3VzZXIgc2hvdWxkIGhhdmUgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhlCiAgIHRhYmxlcyBh bmQgY29sdW1ucywgdW5kZXJseWluZyB0aGUgZ3JhcGggcGF0dGVybi4gRm9yIGV4YW1wbGUsIGEK ICAgcHJvcGVydHkgZ3JhcGggZzEgY29udGFpbnMgZ3JhcGggZWxlbWVudCB0YWJsZXMgZTEgYW5k IGUyLiBBc3N1bWUgdHdvCiAgIHVzZXJzIHUxIGFuZCB1MiB3aXRoIHByaXZpbGVnZXMgdG8gYWNj ZXNzIGUxIGFuZCBlMiByZXNwZWN0aXZlbHkuCiAgIExldCdzIGFsc28gYXNzdW1lIHRoYXQgdGhl eSBoYXZlIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoZSBwcm9wZXJ0eQogICBncmFwaCBnMS4gdTEs IGFzIHRoZSBjdXJyZW50IHVzZXIsIHdvdWxkIGJlIGFibGUgdG8gcnVuIHF1ZXJ5CiAgIGludm9s dmluZyBnMSBzdWNjZXNzZnVsbHkgYXMgbG9uZyBhcyBpdCBkb2VzICpub3QqIHJlcXVpcmUgYWNj ZXNzIHRvCiAgIGUyLiAgU2ltaWxhcmx5IHUyIHdvdWxkIGJlIGFibGUgdG8gcnVuIHF1ZXJ5IGlu dm9sdmluZyBnMQogICBzdWNjZXNzZnVsbHkgYXMgbG9uZyBhcyBpdCBkb2VzICpub3QqIHJlcXVp cmUgYWNjZXNzIHRvIGUxLgoKMy4gSWYgYSBwcm9wZXJ0eSBncmFwaCBpcyByZWZlcmVuY2VkIGlu IGEgc2VjdXJpdHkgZGVmaW5lciB2aWV3LCBhY2Nlc3MKICAgdG8gdGhlIHByb3BlcnR5IGdyYXBo IGlzIGdvdmVybmVkIGJ5IHRoZSBwcml2aWxlZ2VzIG9mIHRoZSBvd25lciBvZgogICB0aGUgdmll dyBidXQgdGhlIGFjY2VzcyB0byB0aGUgYmFzZSByZWxhdGlvbnMgdW5kZXJseWluZyB0aGUgZ3Jh cGgKICAgcGF0dGVybiBhcmUgZ292ZXJuZWQgYnkgdGhlIHByaXZpbGVnZXMgb2YgdGhlIHVzZXIg ZXhlY3V0aW5nIHRoZQogICBxdWVyeS4gVGhpcyBpcyBzaW1pbGFyIHRvIGhvdyBhY2Nlc3MgdG8g dGhlIGJhc2UgcmVsYXRpb25zCiAgIHVuZGVybHlpbmcgYSBzZWN1cml0eSBpbnZva2VyIHZpZXcg cmVmZXJlbmNlZCBmcm9tIGEgc2VjdXJpdHkgZGVmaW5lcgogICB2aWV3IGlzIGhhbmRsZWQuCiAg IGFjY2VzcwoKNC4gV2UgaGF2ZSBub3QgaW1wbGVtZW50ZWQgc2VjdXJpdHkgZGVmaW5lciBwcm9w ZXJ0eSBncmFwaHMgc2luY2UKICAgU1FML1BHUSBzdGFuZGFyZCBkb2VzIG5vdCBtZW50aW9uIHRo b3NlLgoKTm90ZToKClRoZSBwcml2aWxlZ2VzIHRlc3RzIGRlZmluZWQgdmlld3Mgd2hpY2ggYXJl IG93bmVkIGJ5IHVzZXJzIG90aGVyIHRoYW4KdGhlIHRhYmxlIG93bmVycy4gUmlnaHQgbm93LCBw cm9wZXJ0eSBncmFwaCBjYW4gbm90IGNvbnRhaW4gcmVsYXRpb25zCndoaWNoIGFyZSBub3Qgb3du ZWQgYnkgaXRzIG93bmVyLiBIZW5jZSBJIGhhdmUgbm90IGFkZGVkIHRlc3RzIGZvcgp0ZXN0aW5n IHZpZXcgYWNjZXNzIHRocm91Z2ggcHJvcGVydHkgZ3JhcGhzLiBQZXIgU1FML1BHUSBzdGFuZGFy ZCwgYQpwcm9wZXJ0eSBncmFwaCBjYW4gY29udGFpbiBhbnkgcmVsYXRpb24gYXMgbG9uZyBhcyBp dCBoYXMgU0VMRUNUCnByaXZpbGVnZSBvbiB0aGF0IHJlbGF0aW9uLiBPbmNlIHdlIGltcGxlbWVu dCB3aGF0IHN0YW5kYXJkIHNheXMsIHdlIGNhbgphZGQgdGhlIHRlc3RzIHdpdGggdmlld3MgYW5k IHByZWZlcnJhYmx5IGFkZCB0aGUgdmlld3MgYXMgZWRnZSB0YWJsZXMuCgpBdXRob3I6IEFzaHV0 b3NoIEJhcGF0IDxhc2h1dG9zaC5iYXBhdC5vc3NAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRw czovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL2ZsYXQvYTg1NTc5NWQtZTY5Ny00ZmE1 LTg2OTgtZDIwMTIyMTI2NTY3QGVpc2VudHJhdXQub3JnCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfcHJvcGVydHlfZ3JhcGguc2dtbCB8ICA4ICsrCiBzcmMvYmFja2VuZC9yZXdyaXRlL3Jl d3JpdGVHcmFwaFRhYmxlLmMgICAgIHwgMTggKysrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9wcml2aWxlZ2VzLm91dCAgICB8IDkxICsrKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcHJpdmlsZWdlcy5zcWwgICAgICAgICB8IDU4ICsrKysrKysrKysrKysKIDQg ZmlsZXMgY2hhbmdlZCwgMTc1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVfcHJvcGVydHlfZ3JhcGguc2dtbAppbmRleCBmODhkMTE5NGNiYy4uYWUzMDFiNTJlMGEgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHJvcGVydHlfZ3JhcGguc2dtbApAQCAtMjc2LDYg KzI3NiwxNCBAQCBDUkVBVEUgUFJPUEVSVFkgR1JBUEggZzEKICAgIFByb3BlcnR5IGdyYXBocyBh cmUgcXVlcmllZCB1c2luZyB0aGUgPGxpdGVyYWw+R1JBUEhfVEFCTEU8L2xpdGVyYWw+IGNsYXVz ZQogICAgb2YgPHhyZWYgbGlua2VuZD0ic3FsLXNlbGVjdCIvPi4KICAgPC9wYXJhPgorCisgIDxw YXJhPgorICAgQWNjZXNzIHRvIHRoZSBiYXNlIHJlbGF0aW9ucyB1bmRlcmx5aW5nIHRoZSA8bGl0 ZXJhbD5HUkFQSF9UQUJMRTwvbGl0ZXJhbD4KKyAgIGNsYXVzZSBpcyBkZXRlcm1pbmVkIGJ5IHRo ZSBwZXJtaXNzaW9ucyBvZiB0aGUgdXNlciBleGVjdXRpbmcgdGhlIHF1ZXJ5LAorICAgcmF0aGVy IHRoYW4gdGhlIHByb3BlcnR5IGdyYXBoIG93bmVyLiBUaHVzLCB0aGUgdXNlciBvZiBhIHByb3Bl cnR5IGdyYXBoIG11c3QKKyAgIGhhdmUgdGhlIHJlbGV2YW50IHBlcm1pc3Npb25zIG9uIHRoZSBw cm9wZXJ0eSBncmFwaCBhbmQgYmFzZSByZWxhdGlvbnMKKyAgIHVuZGVybHlpbmcgdGhlIDxsaXRl cmFsPkdSQVBIX1RBQkxFPC9saXRlcmFsPiBjbGF1c2UuCisgIDwvcGFyYT4KICA8L3JlZnNlY3Qx PgogCiAgPHJlZnNlY3QxPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRl R3JhcGhUYWJsZS5jIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlR3JhcGhUYWJsZS5jCmlu ZGV4IDFlYTVhNWNhZWIxLi45YzE0ZmEzYjFiNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmV3 cml0ZS9yZXdyaXRlR3JhcGhUYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0 ZUdyYXBoVGFibGUuYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJv cGdyYXBoX3Byb3BlcnR5LmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVk ZSAibm9kZXMvbm9kZUZ1bmNzLmgiCisjaW5jbHVkZSAib3B0aW1pemVyL29wdGltaXplci5oIgog I2luY2x1ZGUgInBhcnNlci9hbmFseXplLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX25vZGUu aCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfcmVsYXRpb24uaCIKQEAgLTM4MCw2ICszODEsNyBA QCBnZW5lcmF0ZV9xdWVyeV9mb3JfZ3JhcGhfcGF0aChSYW5nZVRibEVudHJ5ICpydGUsIExpc3Qg KmdyYXBoX3BhdGgpCiAJUXVlcnkJICAgKnBhdGhfcXVlcnkgPSBtYWtlTm9kZShRdWVyeSk7CiAJ TGlzdAkgICAqZnJvbWxpc3QgPSBOSUw7CiAJTGlzdAkgICAqcXVhbF9leHBycyA9IE5JTDsKKwlM aXN0CSAgICp2YXJzOwogCiAJcGF0aF9xdWVyeS0+Y29tbWFuZFR5cGUgPSBDTURfU0VMRUNUOwog CkBAIC00OTMsNiArNDk1LDIyIEBAIGdlbmVyYXRlX3F1ZXJ5X2Zvcl9ncmFwaF9wYXRoKFJhbmdl VGJsRW50cnkgKnJ0ZSwgTGlzdCAqZ3JhcGhfcGF0aCkKIAkJCQkJCQkJCSAgcmVwbGFjZV9wcm9w ZXJ0eV9yZWZzKHJ0ZS0+cmVsaWQsCiAJCQkJCQkJCQkJCQkJCQkoTm9kZSAqKSBydGUtPmdyYXBo X3RhYmxlX2NvbHVtbnMsCiAJCQkJCQkJCQkJCQkJCQlncmFwaF9wYXRoKSk7CisKKwkvKgorCSAq IE1hcmsgdGhlIGNvbHVtbnMgYmVpbmcgYWNjZXNzZWQgaW4gdGhlIHBhdGggcXVlcnkgYXMgcmVx dWlyaW5nIFNFTEVDVAorCSAqIHByaXZpbGVnZS4gQW55IGxhdGVyYWwgY29sdW1ucyBzaG91bGQg aGF2ZSBiZWVuIGhhbmRsZWQgd2hlbiB0aGUKKwkgKiBjb3JyZXNwb25kaW5nIENvbHVtblJlZnMg d2VyZSB0cmFuc2Zvcm1lZC4gSWdub3JlIHRob3NlIGhlcmUuCisJICovCisJdmFycyA9IHB1bGxf dmFyc19vZl9sZXZlbCgoTm9kZSAqKSBsaXN0X21ha2UyKHF1YWxfZXhwcnMsIHBhdGhfcXVlcnkt PnRhcmdldExpc3QpLCAwKTsKKwlmb3JlYWNoX25vZGUoVmFyLCB2YXIsIHZhcnMpCisJeworCQlS VEVQZXJtaXNzaW9uSW5mbyAqcGVybWluZm8gPSBnZXRSVEVQZXJtaXNzaW9uSW5mbyhwYXRoX3F1 ZXJ5LT5ydGVwZXJtaW5mb3MsCisJCQkJCQkJCQkJCQkJCSAgIHJ0X2ZldGNoKHZhci0+dmFybm8s IHBhdGhfcXVlcnktPnJ0YWJsZSkpOworCisJCS8qIE11c3Qgb2Zmc2V0IHRoZSBhdHRudW0gdG8g Zml0IGluIGEgYml0bWFwc2V0ICovCisJCXBlcm1pbmZvLT5zZWxlY3RlZENvbHMgPSBibXNfYWRk X21lbWJlcihwZXJtaW5mby0+c2VsZWN0ZWRDb2xzLAorCQkJCQkJCQkJCQkJdmFyLT52YXJhdHRu byAtIEZpcnN0TG93SW52YWxpZEhlYXBBdHRyaWJ1dGVOdW1iZXIpOworCX0KIAlyZXR1cm4gcGF0 aF9xdWVyeTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wcml2 aWxlZ2VzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJpdmlsZWdlcy5vdXQKaW5k ZXggNzU5MTJmNjkwYzIuLmFkMTExYzM2MWVjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3ByaXZpbGVnZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cHJpdmlsZWdlcy5vdXQKQEAgLTI5NDgsOSArMjk0OCwxMDAgQEAgcmV2b2tlIHNlbGVjdCBvbiBk ZXBfcHJpdl90ZXN0IGZyb20gcmVncmVzc19wcml2X3VzZXI0IGNhc2NhZGU7CiAKIHNldCBzZXNz aW9uIHJvbGUgcmVncmVzc19wcml2X3VzZXIxOwogZHJvcCB0YWJsZSBkZXBfcHJpdl90ZXN0Owor LS0KKy0tIFByb3BlcnR5IGdyYXBocworLS0KK3NldCBzZXNzaW9uIHJvbGUgcmVncmVzc19wcml2 X3VzZXIxOworY3JlYXRlIHByb3BlcnR5IGdyYXBoIHB0ZzEKKwl2ZXJ0ZXggdGFibGVzICgKKwkJ YXRlc3Q1IGtleSAoZm91cikKKwkJCWRlZmF1bHQgbGFiZWwgcHJvcGVydGllcyAoZm91cikKKwkJ CWxhYmVsIGx0dGMgcHJvcGVydGllcyAodGhyZWUgYXMgbHR0Y2spLAorCQlhdGVzdDEga2V5IChh KQorCQkJZGVmYXVsdCBsYWJlbAorCQkJbGFiZWwgbHR0YyBwcm9wZXJ0aWVzIChhIGFzIGx0dGNr KSwKKwkJYXRlc3QyIGtleSAoY29sMSkKKwkJCWRlZmF1bHQgbGFiZWwKKwkJCWxhYmVsIGx0diBw cm9wZXJ0aWVzIChjb2wxIGFzIGx0dmspKTsKKy0tIHNlbGVjdCBwcml2aWxlZ2VzIG9uIHByb3Bl cnR5IGdyYXBoIGFzIHdlbGwgYXMgdGFibGUKK3NlbGVjdCAqIGZyb20gZ3JhcGhfdGFibGUgKHB0 ZzEgbWF0Y2ggKCA6IGF0ZXN0NSkgQ09MVU1OUyAoMSBhcyB2YWx1ZSkpIGxpbWl0IDA7IC0tIG9r CisgdmFsdWUgCistLS0tLS0tCisoMCByb3dzKQorCitncmFudCBzZWxlY3Qgb24gcHRnMSB0byBy ZWdyZXNzX3ByaXZfdXNlcjI7CitzZXQgc2Vzc2lvbiByb2xlIHJlZ3Jlc3NfcHJpdl91c2VyMjsK K3NlbGVjdCAqIGZyb20gZ3JhcGhfdGFibGUgKHB0ZzEgbWF0Y2ggKCA6IGF0ZXN0MSkgQ09MVU1O UyAoMSBhcyB2YWx1ZSkpIGxpbWl0IDA7IC0tIG9rCisgdmFsdWUgCistLS0tLS0tCisoMCByb3dz KQorCistLSBzZWxlY3QgcHJpdmlsZWdlcyBvbiBwcm9wZXJ0eSBncmFwaCBidXQgbm90IHRhYmxl CitzZWxlY3QgKiBmcm9tIGdyYXBoX3RhYmxlIChwdGcxIG1hdGNoICggOiBhdGVzdDUpIENPTFVN TlMgKDEgYXMgdmFsdWUpKSBsaW1pdCAwOyAtLSBmYWlscworRVJST1I6ICBwZXJtaXNzaW9uIGRl bmllZCBmb3IgdGFibGUgYXRlc3Q1CitzZWxlY3QgKiBmcm9tIGdyYXBoX3RhYmxlIChwdGcxIG1h dGNoICggOiBsdHRjKSBDT0xVTU5TICgxIGFzIHZhbHVlKSkgbGltaXQgMDsgLS0gZmFpbHMKK0VS Uk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIGF0ZXN0NQorc2V0IHNlc3Npb24gcm9s ZSByZWdyZXNzX3ByaXZfdXNlcjM7CistLSBzZWxlY3QgcHJpdmlsZWdlcyBvbiB0YWJsZSBidXQg bm90IHByb3BlcnR5IGdyYXBoCitzZWxlY3QgKiBmcm9tIGdyYXBoX3RhYmxlIChwdGcxIG1hdGNo ICggOiBhdGVzdDEpIENPTFVNTlMgKDEgYXMgdmFsdWUpKSBsaW1pdCAwOyAtLSBmYWlscworRVJS T1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgcHJvcGVydHkgZ3JhcGggcHRnMQorLS0gc2VsZWN0 IHByaXZpbGVnZXMgb24gbmVpdGhlcgorc2VsZWN0ICogZnJvbSBncmFwaF90YWJsZSAocHRnMSBt YXRjaCAoIDogYXRlc3Q1KSBDT0xVTU5TICgxIGFzIHZhbHVlKSkgbGltaXQgMDsgLS0gZmFpbHMK K0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHByb3BlcnR5IGdyYXBoIHB0ZzEKKy0tIGNv bHVtbiBwcml2aWxlZ2VzCitzZXQgc2Vzc2lvbiByb2xlIHJlZ3Jlc3NfcHJpdl91c2VyMTsKK3Nl bGVjdCAqIGZyb20gZ3JhcGhfdGFibGUgKHB0ZzEgbWF0Y2ggKHYgOiBsdHRjKSBDT0xVTU5TICh2 Lmx0dGNrKSkgbGltaXQgMDsgLS0gb2sKKyBsdHRjayAKKy0tLS0tLS0KKygwIHJvd3MpCisKK2dy YW50IHNlbGVjdCBvbiBwdGcxIHRvIHJlZ3Jlc3NfcHJpdl91c2VyNDsKK3NldCBzZXNzaW9uIHJv bGUgcmVncmVzc19wcml2X3VzZXI0Oworc2VsZWN0ICogZnJvbSBncmFwaF90YWJsZSAocHRnMSBt YXRjaCAoYSA6IGF0ZXN0NSkgQ09MVU1OUyAoYS5mb3VyKSkgbGltaXQgMDsgLS0gb2sKKyBmb3Vy IAorLS0tLS0tCisoMCByb3dzKQorCitzZWxlY3QgKiBmcm9tIGdyYXBoX3RhYmxlIChwdGcxIG1h dGNoICh2IDogbHR0YykgQ09MVU1OUyAodi5sdHRjaykpIGxpbWl0IDA7IC0tIGZhaWwKK0VSUk9S OiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIGF0ZXN0NQorLS0gYWNjZXNzIHByb3BlcnR5 IGdyYXBoIHRocm91Z2ggc2VjdXJpdHkgZGVmaW5lciB2aWV3CitzZXQgc2Vzc2lvbiByb2xlIHJl Z3Jlc3NfcHJpdl91c2VyNDsKK2NyZWF0ZSB2aWV3IGF0cGd2MSBhcyBzZWxlY3QgKiBmcm9tIGdy YXBoX3RhYmxlIChwdGcxIG1hdGNoICggOiBhdGVzdDEpIENPTFVNTlMgKDEgYXMgdmFsdWUpKSBs aW1pdCAwOworZ3JhbnQgc2VsZWN0IG9uIGF0cGd2MSB0byByZWdyZXNzX3ByaXZfdXNlcjM7Citz ZWxlY3QgKiBmcm9tIGF0cGd2MTsgLS0gb2sKKyB2YWx1ZSAKKy0tLS0tLS0KKygwIHJvd3MpCisK K3NldCBzZXNzaW9uIHJvbGUgcmVncmVzc19wcml2X3VzZXIzOworc2VsZWN0ICogZnJvbSBhdHBn djE7IC0tIG9rCisgdmFsdWUgCistLS0tLS0tCisoMCByb3dzKQorCitzZXQgc2Vzc2lvbiByb2xl IHJlZ3Jlc3NfcHJpdl91c2VyNDsKK2NyZWF0ZSB2aWV3IGF0cGd2MiBhcyBzZWxlY3QgKiBmcm9t IGdyYXBoX3RhYmxlIChwdGcxIG1hdGNoICh2IDogbHR2KSBDT0xVTU5TICh2Lmx0dmspKSBsaW1p dCAwOworLS0gdGhvdWdoIHRoZSBzZXNzaW9uIHVzZXIgaXMgdGhlIG93bmVyIG9mIHRoZSB2aWV3 IGFuZCBhbHNvIGhhcyBhY2Nlc3MgdG8gdGhlCistLSBwcm9wZXJ0eSBncmFwaCwgaXQgZG9lcyBu b3QgaGF2ZSBhY2Nlc3MgdG8gYSB0YWJsZSByZWZlcmVuY2VkIGluIHRoZSBncmFwaAorLS0gcGF0 dGVybgorc2VsZWN0ICogZnJvbSBhdHBndjI7IC0tIGZhaWwKK0VSUk9SOiAgcGVybWlzc2lvbiBk ZW5pZWQgZm9yIHRhYmxlIGF0ZXN0MgorZ3JhbnQgc2VsZWN0IG9uIGF0cGd2MiB0byByZWdyZXNz X3ByaXZfdXNlcjI7CistLSBUaGUgdXNlciB3aG8gb3RoZXJ3aXNlIGRvZXMgbm90IGhhdmUgYWNj ZXNzIHRvIHRoZSBwcm9wZXJ0eSBncmFwaCwgZ2V0cworLS0gYWNjZXNzIHRvIGl0IHRocm91Z2gg YSBzZWN1cml0eSBkZWZpbmVyIHZpZXcgYW5kIHVzZXMgaXQgc3VjY2Vzc2Z1bGx5IHNpbmNlCist LSBpdCBoYXMgYWNjZXNzIHRvIHRoZSB0YWJsZXMgcmVmZXJlbmNlZCBpbiB0aGUgZ3JhcGggcGF0 dGVybi4KK3NldCBzZXNzaW9uIHJvbGUgcmVncmVzc19wcml2X3VzZXIyOworc2VsZWN0ICogZnJv bSBhdHBndjI7IC0tIG9rCisgbHR2ayAKKy0tLS0tLQorKDAgcm93cykKKwogLS0gY2xlYW4gdXAK IFxjCiBkcm9wIHNlcXVlbmNlIHhfc2VxOworZHJvcCB2aWV3IGF0cGd2MTsKK2Ryb3AgdmlldyBh dHBndjI7Citkcm9wIHByb3BlcnR5IGdyYXBoIHB0ZzE7CiBEUk9QIEFHR1JFR0FURSBwcml2X3Rl c3RhZ2cxKGludCk7CiBEUk9QIEZVTkNUSU9OIHByaXZfdGVzdGZ1bmMyKGludCk7CiBEUk9QIEZV TkNUSU9OIHByaXZfdGVzdGZ1bmM0KGJvb2xlYW4pOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvcHJpdmlsZWdlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wcml2aWxlZ2Vz LnNxbAppbmRleCBkODg2Y2MwODhjOS4uZDU3MTA4MmI3MWEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3ByaXZpbGVnZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3By aXZpbGVnZXMuc3FsCkBAIC0xNzQ2LDYgKzE3NDYsNjAgQEAgcmV2b2tlIHNlbGVjdCBvbiBkZXBf cHJpdl90ZXN0IGZyb20gcmVncmVzc19wcml2X3VzZXI0IGNhc2NhZGU7CiBzZXQgc2Vzc2lvbiBy b2xlIHJlZ3Jlc3NfcHJpdl91c2VyMTsKIGRyb3AgdGFibGUgZGVwX3ByaXZfdGVzdDsKIAorLS0K Ky0tIFByb3BlcnR5IGdyYXBocworLS0KK3NldCBzZXNzaW9uIHJvbGUgcmVncmVzc19wcml2X3Vz ZXIxOworY3JlYXRlIHByb3BlcnR5IGdyYXBoIHB0ZzEKKwl2ZXJ0ZXggdGFibGVzICgKKwkJYXRl c3Q1IGtleSAoZm91cikKKwkJCWRlZmF1bHQgbGFiZWwgcHJvcGVydGllcyAoZm91cikKKwkJCWxh YmVsIGx0dGMgcHJvcGVydGllcyAodGhyZWUgYXMgbHR0Y2spLAorCQlhdGVzdDEga2V5IChhKQor CQkJZGVmYXVsdCBsYWJlbAorCQkJbGFiZWwgbHR0YyBwcm9wZXJ0aWVzIChhIGFzIGx0dGNrKSwK KwkJYXRlc3QyIGtleSAoY29sMSkKKwkJCWRlZmF1bHQgbGFiZWwKKwkJCWxhYmVsIGx0diBwcm9w ZXJ0aWVzIChjb2wxIGFzIGx0dmspKTsKKy0tIHNlbGVjdCBwcml2aWxlZ2VzIG9uIHByb3BlcnR5 IGdyYXBoIGFzIHdlbGwgYXMgdGFibGUKK3NlbGVjdCAqIGZyb20gZ3JhcGhfdGFibGUgKHB0ZzEg bWF0Y2ggKCA6IGF0ZXN0NSkgQ09MVU1OUyAoMSBhcyB2YWx1ZSkpIGxpbWl0IDA7IC0tIG9rCitn cmFudCBzZWxlY3Qgb24gcHRnMSB0byByZWdyZXNzX3ByaXZfdXNlcjI7CitzZXQgc2Vzc2lvbiBy b2xlIHJlZ3Jlc3NfcHJpdl91c2VyMjsKK3NlbGVjdCAqIGZyb20gZ3JhcGhfdGFibGUgKHB0ZzEg bWF0Y2ggKCA6IGF0ZXN0MSkgQ09MVU1OUyAoMSBhcyB2YWx1ZSkpIGxpbWl0IDA7IC0tIG9rCist LSBzZWxlY3QgcHJpdmlsZWdlcyBvbiBwcm9wZXJ0eSBncmFwaCBidXQgbm90IHRhYmxlCitzZWxl Y3QgKiBmcm9tIGdyYXBoX3RhYmxlIChwdGcxIG1hdGNoICggOiBhdGVzdDUpIENPTFVNTlMgKDEg YXMgdmFsdWUpKSBsaW1pdCAwOyAtLSBmYWlscworc2VsZWN0ICogZnJvbSBncmFwaF90YWJsZSAo cHRnMSBtYXRjaCAoIDogbHR0YykgQ09MVU1OUyAoMSBhcyB2YWx1ZSkpIGxpbWl0IDA7IC0tIGZh aWxzCitzZXQgc2Vzc2lvbiByb2xlIHJlZ3Jlc3NfcHJpdl91c2VyMzsKKy0tIHNlbGVjdCBwcml2 aWxlZ2VzIG9uIHRhYmxlIGJ1dCBub3QgcHJvcGVydHkgZ3JhcGgKK3NlbGVjdCAqIGZyb20gZ3Jh cGhfdGFibGUgKHB0ZzEgbWF0Y2ggKCA6IGF0ZXN0MSkgQ09MVU1OUyAoMSBhcyB2YWx1ZSkpIGxp bWl0IDA7IC0tIGZhaWxzCistLSBzZWxlY3QgcHJpdmlsZWdlcyBvbiBuZWl0aGVyCitzZWxlY3Qg KiBmcm9tIGdyYXBoX3RhYmxlIChwdGcxIG1hdGNoICggOiBhdGVzdDUpIENPTFVNTlMgKDEgYXMg dmFsdWUpKSBsaW1pdCAwOyAtLSBmYWlscworLS0gY29sdW1uIHByaXZpbGVnZXMKK3NldCBzZXNz aW9uIHJvbGUgcmVncmVzc19wcml2X3VzZXIxOworc2VsZWN0ICogZnJvbSBncmFwaF90YWJsZSAo cHRnMSBtYXRjaCAodiA6IGx0dGMpIENPTFVNTlMgKHYubHR0Y2spKSBsaW1pdCAwOyAtLSBvawor Z3JhbnQgc2VsZWN0IG9uIHB0ZzEgdG8gcmVncmVzc19wcml2X3VzZXI0Oworc2V0IHNlc3Npb24g cm9sZSByZWdyZXNzX3ByaXZfdXNlcjQ7CitzZWxlY3QgKiBmcm9tIGdyYXBoX3RhYmxlIChwdGcx IG1hdGNoIChhIDogYXRlc3Q1KSBDT0xVTU5TIChhLmZvdXIpKSBsaW1pdCAwOyAtLSBvaworc2Vs ZWN0ICogZnJvbSBncmFwaF90YWJsZSAocHRnMSBtYXRjaCAodiA6IGx0dGMpIENPTFVNTlMgKHYu bHR0Y2spKSBsaW1pdCAwOyAtLSBmYWlsCistLSBhY2Nlc3MgcHJvcGVydHkgZ3JhcGggdGhyb3Vn aCBzZWN1cml0eSBkZWZpbmVyIHZpZXcKK3NldCBzZXNzaW9uIHJvbGUgcmVncmVzc19wcml2X3Vz ZXI0OworY3JlYXRlIHZpZXcgYXRwZ3YxIGFzIHNlbGVjdCAqIGZyb20gZ3JhcGhfdGFibGUgKHB0 ZzEgbWF0Y2ggKCA6IGF0ZXN0MSkgQ09MVU1OUyAoMSBhcyB2YWx1ZSkpIGxpbWl0IDA7CitncmFu dCBzZWxlY3Qgb24gYXRwZ3YxIHRvIHJlZ3Jlc3NfcHJpdl91c2VyMzsKK3NlbGVjdCAqIGZyb20g YXRwZ3YxOyAtLSBvaworc2V0IHNlc3Npb24gcm9sZSByZWdyZXNzX3ByaXZfdXNlcjM7CitzZWxl Y3QgKiBmcm9tIGF0cGd2MTsgLS0gb2sKK3NldCBzZXNzaW9uIHJvbGUgcmVncmVzc19wcml2X3Vz ZXI0OworY3JlYXRlIHZpZXcgYXRwZ3YyIGFzIHNlbGVjdCAqIGZyb20gZ3JhcGhfdGFibGUgKHB0 ZzEgbWF0Y2ggKHYgOiBsdHYpIENPTFVNTlMgKHYubHR2aykpIGxpbWl0IDA7CistLSB0aG91Z2gg dGhlIHNlc3Npb24gdXNlciBpcyB0aGUgb3duZXIgb2YgdGhlIHZpZXcgYW5kIGFsc28gaGFzIGFj Y2VzcyB0byB0aGUKKy0tIHByb3BlcnR5IGdyYXBoLCBpdCBkb2VzIG5vdCBoYXZlIGFjY2VzcyB0 byBhIHRhYmxlIHJlZmVyZW5jZWQgaW4gdGhlIGdyYXBoCistLSBwYXR0ZXJuCitzZWxlY3QgKiBm cm9tIGF0cGd2MjsgLS0gZmFpbAorZ3JhbnQgc2VsZWN0IG9uIGF0cGd2MiB0byByZWdyZXNzX3By aXZfdXNlcjI7CistLSBUaGUgdXNlciB3aG8gb3RoZXJ3aXNlIGRvZXMgbm90IGhhdmUgYWNjZXNz IHRvIHRoZSBwcm9wZXJ0eSBncmFwaCwgZ2V0cworLS0gYWNjZXNzIHRvIGl0IHRocm91Z2ggYSBz ZWN1cml0eSBkZWZpbmVyIHZpZXcgYW5kIHVzZXMgaXQgc3VjY2Vzc2Z1bGx5IHNpbmNlCistLSBp dCBoYXMgYWNjZXNzIHRvIHRoZSB0YWJsZXMgcmVmZXJlbmNlZCBpbiB0aGUgZ3JhcGggcGF0dGVy bi4KK3NldCBzZXNzaW9uIHJvbGUgcmVncmVzc19wcml2X3VzZXIyOworc2VsZWN0ICogZnJvbSBh dHBndjI7IC0tIG9rCiAKIC0tIGNsZWFuIHVwCiAKQEAgLTE3NTMsNiArMTgwNywxMCBAQCBkcm9w IHRhYmxlIGRlcF9wcml2X3Rlc3Q7CiAKIGRyb3Agc2VxdWVuY2UgeF9zZXE7CiAKK2Ryb3Agdmll dyBhdHBndjE7Citkcm9wIHZpZXcgYXRwZ3YyOworZHJvcCBwcm9wZXJ0eSBncmFwaCBwdGcxOwor CiBEUk9QIEFHR1JFR0FURSBwcml2X3Rlc3RhZ2cxKGludCk7CiBEUk9QIEZVTkNUSU9OIHByaXZf dGVzdGZ1bmMyKGludCk7CiBEUk9QIEZVTkNUSU9OIHByaXZfdGVzdGZ1bmM0KGJvb2xlYW4pOwot LSAKMi4zNC4xCgo= --00000000000015b3be062aa12bab Content-Type: text/x-patch; charset="US-ASCII"; name="0003-Support-cyclic-path-pattern-20250101.patch" Content-Disposition: attachment; filename="0003-Support-cyclic-path-pattern-20250101.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5dnsexs2 RnJvbSA2NDc5ZTNiMjAxNTlkOWVlYTljZTM4OGU5OTE2NWMxMGNmNTljNDMxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBc2h1dG9zaCBCYXBhdCA8YXNodXRvc2guYmFwYXRAZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogVGh1LCAxIEF1ZyAyMDI0IDEwOjUyOjM1ICswNTMwClN1YmplY3Q6 IFtQQVRDSCAzLzldIFN1cHBvcnQgY3ljbGljIHBhdGggcGF0dGVybi4KCkEgY3ljbGljIHBhdGgg cGF0dGVybiBpcyBhIHBhdGggcGF0dGVybnMgd2hlcmUgYW4gZWxlbWVudCBwYXR0ZXJuIHZhcmlh YmxlCnJlcGVhdHMgaW4gbXVsdGlwbGUgZWxlbWVudCBwYXRoIHBhdHRlcm5zLiBJbiBzdWNoIGEg cGF0aCBwYXR0ZXJuIHRoZSBlbGVtZW50CnBhdHRlcm5zIHdpdGggdGhlIHNhbWUgdmFyaWFibGUg aW5kaWNhdGUgdGhlIHNhbWUgZWxlbWVudCBpbiB0aGUgcGF0aC4KCkVsZW1lbnRzIHdoaWNoIHNo YXJlIHRoZSB2YXJpYWJsZSBuYW1lIHNob3VsZCBoYXZlIHRoZSBzYW1lIGVsZW1lbnQgdHlwZS4g VGhlCmVsZW1lbnQgcGF0dGVybnMgc2hhcmluZyB0aGUgc2FtZSB2YXJpYWJsZSBuYW1lIHNob3Vs ZCBoYXZlIHNhbWUgbGFiZWwKZXhwcmVzc2lvbi4gVGhlIHBhdHRlcm5zIG1heSBiZSBoYXZlIGRp ZmZlcmVudCBjb25kaXRpb25zIHdoaWNoIGFyZSBmaW5hbGx5CkFORGVkIHNpbmNlIHRoZXkgYWxs IHJlcHJlc2VudCB0aGUgc2FtZSBlbGVtZW50LgoKV2hpbGUgaXQncyBlYXN5IHRvIGltYWdpbmUg YSByZXBlYXRlZCB2ZXJ0ZXggcGF0dGVybiwgYSByZXBlYXRlZCBlZGdlIHBhdHRlcm4KaXMgc2xp Z2h0bHkgY29tcGxleC4gQW4gZWRnZSBjb25uZWN0cyBvbmx5IHR3byB2ZXJ0aWNlcywgYW5kIHRo dXMgYSByZXBlYXRlZAplZGdlIHBhdHRlcm4gY29uc3RyYWlucyB0aGUgYWRqYWNlbnQgdmVydGV4 IHBhdHRlcm5zIGV2ZW4gaWYgdGhleSBoYXZlCmRpZmZlcmVudCB2YXJpYWJsZSBuYW1lcy4gU3Vj aCBwYXR0ZXJucyBhcmUgbm90IHN1cHBvcnRlZC4KCkF1dGhvcjogQXNodXRvc2ggQmFwYXQKLS0t CiBzcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMgICB8IDM5MCArKysrKysr KysrKysrKy0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91 dCB8IDExOSArKysrKystCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ncmFwaF90YWJsZS5zcWwgICAg ICB8ICA1MiArKy0KIDMgZmlsZXMgY2hhbmdlZCwgNDA3IGluc2VydGlvbnMoKyksIDE1NCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRh YmxlLmMgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMKaW5kZXggNGI3 ODdhMmU4OGYuLjZlMmU2ZWQzOGI4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jl d3JpdGVHcmFwaFRhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlR3JhcGhU YWJsZS5jCkBAIC0zOCwyNCArMzgsNDUgQEAKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgog CiAKKy8qCisgKiBSZXByZXNlbnRzIG9uZSBwYXRoIGZhY3RvciBpbiBhIHBhdGguCisgKgorICog T25lIHBhdGggZmFjdG9yIGNvcnJlc3BvbmRzIHRvIG9uZSBlbGVtZW50IHBhdHRlcm4gaW4gYSBz aW1wbGUgcGF0aC4KKyAqCisgKiBJbiBhIGN5Y2xpYyBwYXRoLCBvbmUgcGF0aCBmYWN0b3IgbWF5 IGNvcnJlc3BvbmQgdG8gb25lIG9yIG1vcmUgZWxlbWVudAorICogcGF0dGVybnMgYWxsIHBvaW50 aW5nIHRvIHRoZSBzYW1lIGdyYXBoIGVsZW1lbnQuIFRoZSBtZW1iZXJzIG9mIHN1Y2ggYSBwYXRo CisgKiBmYWN0b3IgYXJlIGEgY29tYmluYXRpb24gb2YgY29ycmVzcG9uZGluZyBzcGVjaWZpY2F0 aW9ucyBpbiB0aGUgZWxlbWVudAorICogcGF0dGVybnMuCisgKi8KK3N0cnVjdCBwYXRoX2ZhY3Rv cgoreworCUdyYXBoRWxlbWVudFBhdHRlcm5LaW5kIGtpbmQ7CisJY29uc3QgY2hhciAqdmFyaWFi bGU7CisJTm9kZQkgICAqbGFiZWxleHByOworCU5vZGUJICAgKndoZXJlQ2xhdXNlOworCWludAkJ CWZhY3RvcnBvczsJCS8qIFBvc2l0aW9uIG9mIHRoaXMgcGF0aCBmYWN0b3IgaW4gYSBwYXRoLiAq LworCUxpc3QJICAgKmxhYmVsb2lkczsJCS8qIE9JRHMgb2YgYWxsIHRoZSBsYWJlbHMgcmVmZXJl bmNlZCBpbgorCQkJCQkJCQkgKiBsYWJlbGV4cHIuICovCisJLyogTGlua3MgdG8gdmVydGV4IHBh dGggZmFjdG9ycyBjb25uZWN0ZWQgYnkgdGhpcyBlZGdlIHBhdGggZmFjdG9yLiAqLworCXN0cnVj dCBwYXRoX2ZhY3RvciAqc3JjX3BmOworCXN0cnVjdCBwYXRoX2ZhY3RvciAqZGVzdF9wZjsKK307 CisKIC8qCiAgKiBSZXByZXNlbnRzIG9uZSBwcm9wZXJ0eSBncmFwaCBlbGVtZW50ICh2ZXJ0ZXgg b3IgZWRnZSkgaW4gdGhlIHBhdGguCiAgKgogICogTGFiZWwgZXhwcmVzc2lvbiBpbiBhbiBlbGVt ZW50IHBhdHRlcm4gcmVzb2x2ZXMgaW50byBhIHNldCBvZiBlbGVtZW50cy4gRm9yCiAgKiBlYWNo IG9mIHRob3NlIGVsZW1lbnRzIHdlIGNyZWF0ZSBvbmUgZ3JhcGhfcGF0aF9lbGVtZW50IG9iamVj dC4KICAqLwotc3RydWN0IGdyYXBoX3BhdGhfZWxlbWVudAorc3RydWN0IHBhdGhfZWxlbWVudAog ewogCU9pZAkJCWVsZW1vaWQ7CiAJT2lkCQkJcmVsb2lkOwotCWludAkJCXJ0aW5kZXg7Ci0JTGlz dAkgICAqbGFiZWxvaWRzOwogCU9pZAkJCXNyY3ZlcnRleGlkOwotCWludAkJCXNyY2VsZW1fcG9z OwogCU9pZAkJCWRlc3R2ZXJ0ZXhpZDsKLQlpbnQJCQlkZXN0ZWxlbV9wb3M7CiAJTGlzdAkgICAq cXVhbF9leHByczsKLQlHcmFwaEVsZW1lbnRQYXR0ZXJuICpwYXJlbnRfZ2VwOworCS8qIFBhdGgg ZmFjdG9yIGZyb20gd2hpY2ggdGhpcyBlbGVtZW50IGlzIGRlcml2ZWQuICovCisJc3RydWN0IHBh dGhfZmFjdG9yICpwYXRoX2ZhY3RvcjsKIH07CiAKIHN0YXRpYyBOb2RlICpyZXBsYWNlX3Byb3Bl cnR5X3JlZnMoT2lkIHByb3BncmFwaGlkLCBOb2RlICpub2RlLCBjb25zdCBMaXN0ICptYXBwaW5n cyk7CkBAIC02Nyw3ICs4OCw3IEBAIHN0YXRpYyBMaXN0ICpnZW5lcmF0ZV9xdWVyaWVzX2Zvcl9w YXRoX3BhdHRlcm5fcmVjdXJzZShSYW5nZVRibEVudHJ5ICpydGUsIExpc3QKIHN0YXRpYyBRdWVy eSAqZ2VuZXJhdGVfcXVlcnlfZm9yX2VtcHR5X3BhdGhfcGF0dGVybihSYW5nZVRibEVudHJ5ICpy dGUpOwogc3RhdGljIFF1ZXJ5ICpnZW5lcmF0ZV91bmlvbl9mcm9tX3BhdGhxdWVyaWVzKExpc3Qg KipwYXRocXVlcmllcyk7CiBzdGF0aWMgY29uc3QgY2hhciAqZ2V0X2dlcF9raW5kX25hbWUoR3Jh cGhFbGVtZW50UGF0dGVybktpbmQgZ2Vwa2luZCk7Ci1zdGF0aWMgTGlzdCAqZ2V0X2VsZW1lbnRz X2Zvcl9nZXAoT2lkIHByb3BncmFwaGlkLCBHcmFwaEVsZW1lbnRQYXR0ZXJuICpnZXAsIGludCBl bGVtcG9zKTsKK3N0YXRpYyBMaXN0ICpnZXRfcGF0aF9lbGVtZW50c19mb3JfcGF0aF9mYWN0b3Io T2lkIHByb3BncmFwaGlkLCBzdHJ1Y3QgcGF0aF9mYWN0b3IgKnBmKTsKIHN0YXRpYyBib29sIGlz X3Byb3BlcnR5X2Fzc29jaWF0ZWRfd2l0aF9sYWJlbChPaWQgbGFiZWxvaWQsIE9pZCBwcm9wb2lk KTsKIHN0YXRpYyBjb25zdCBjaGFyICpnZXRfZ3JhcGhfZWxlbV9raW5kX25hbWUoR3JhcGhFbGVt ZW50UGF0dGVybktpbmQgZ2Vwa2luZCk7CiBzdGF0aWMgTm9kZSAqZ2V0X2VsZW1lbnRfcHJvcGVy dHlfZXhwcihPaWQgZWxlbW9pZCwgT2lkIHByb3BvaWQsIGludCBydGluZGV4KTsKQEAgLTE1Nyw4 ICsxNzgsOSBAQCBnZW5lcmF0ZV9xdWVyaWVzX2Zvcl9wYXRoX3BhdHRlcm4oUmFuZ2VUYmxFbnRy eSAqcnRlLCBMaXN0ICpwYXRoX3BhdHRlcm4pCiB7CiAJTGlzdAkgICAqcGF0aHF1ZXJpZXMgPSBO SUw7CiAJTGlzdAkgICAqcGF0aF9lbGVtX2xpc3RzID0gTklMOwotCUxpc3RDZWxsICAgKmxjOwot CWludAkJCWVsZW1wb3MgPSAwOworCWludAkJCWZhY3RvcnBvcyA9IDA7CisJTGlzdAkgICAqcGF0 aF9mYWN0b3JzID0gTklMOworCXN0cnVjdCBwYXRoX2ZhY3RvciAqcHJldl9wZiA9IE5VTEw7CiAK IAlBc3NlcnQobGlzdF9sZW5ndGgocGF0aF9wYXR0ZXJuKSA+IDApOwogCkBAIC0xNjYsOSArMTg4 LDkgQEAgZ2VuZXJhdGVfcXVlcmllc19mb3JfcGF0aF9wYXR0ZXJuKFJhbmdlVGJsRW50cnkgKnJ0 ZSwgTGlzdCAqcGF0aF9wYXR0ZXJuKQogCSAqIEZvciBldmVyeSBlbGVtZW50IHBhdHRlcm4gaW4g dGhlIGdpdmVuIHBhdGggcGF0dGVybiBjb2xsZWN0IGFsbCB0aGUKIAkgKiBncmFwaCBlbGVtZW50 cyB0aGF0IHNhdGlzZnkgdGhlIGVsZW1lbnQgcGF0dGVybi4KIAkgKi8KLQlmb3JlYWNoKGxjLCBw YXRoX3BhdHRlcm4pCisJZm9yZWFjaF9ub2RlKEdyYXBoRWxlbWVudFBhdHRlcm4sIGdlcCwgcGF0 aF9wYXR0ZXJuKQogCXsKLQkJR3JhcGhFbGVtZW50UGF0dGVybiAqZ2VwID0gbGZpcnN0X25vZGUo R3JhcGhFbGVtZW50UGF0dGVybiwgbGMpOworCQlzdHJ1Y3QgcGF0aF9mYWN0b3IgKnBmID0gTlVM TDsKIAogCQlpZiAoZ2VwLT5raW5kICE9IFZFUlRFWF9QQVRURVJOICYmCiAJCQlnZXAtPmtpbmQg IT0gRURHRV9QQVRURVJOX0xFRlQgJiYgZ2VwLT5raW5kICE9IEVER0VfUEFUVEVSTl9SSUdIVCkK QEAgLTE3NywxMyArMTk5LDEzMiBAQCBnZW5lcmF0ZV9xdWVyaWVzX2Zvcl9wYXRoX3BhdHRlcm4o UmFuZ2VUYmxFbnRyeSAqcnRlLCBMaXN0ICpwYXRoX3BhdHRlcm4pCiAJCWlmIChnZXAtPnF1YW50 aWZpZXIpCiAJCQllbG9nKEVSUk9SLCAiZWxlbWVudCBwYXR0ZXJuIHF1YW50aWZpZXIgbm90IHN1 cHBvcnRlZCB5ZXQiKTsKIAotCQlwYXRoX2VsZW1fbGlzdHMgPSBsYXBwZW5kKHBhdGhfZWxlbV9s aXN0cywKLQkJCQkJCQkJICBnZXRfZWxlbWVudHNfZm9yX2dlcChydGUtPnJlbGlkLCBnZXAsIGVs ZW1wb3MrKykpOworCQkvKgorCQkgKiBFbGVtZW50IHBhdHRlcm5zIHdpdGggdGhlIHNhbWUgbmFt ZSByZXByZXNlbnQgdGhlIHNhbWUgZWxlbWVudCBhbmQKKwkJICogaGVuY2Ugc2FtZSBwYXRoIGZh Y3Rvci4gVGhleSBkbyBub3QgYWRkIGEgbmV3IGdyYXBoIGVsZW1lbnQgdG8gdGhlCisJCSAqIHF1 ZXJ5IGJ1dCBhZmZlY3QgdGhlIGxpbmtzIG9mIGFkamFjZW50IGVsZW1lbnRzLgorCQkgKi8KKwkJ Zm9yZWFjaF9wdHIoc3RydWN0IHBhdGhfZmFjdG9yLCBvdGhlciwgcGF0aF9mYWN0b3JzKQorCQl7 CisJCQlpZiAoZ2VwLT52YXJpYWJsZSAmJiBvdGhlci0+dmFyaWFibGUgJiYKKwkJCQlzdHJjbXAo Z2VwLT52YXJpYWJsZSwgb3RoZXItPnZhcmlhYmxlKSA9PSAwKQorCQkJeworCQkJCWlmIChvdGhl ci0+a2luZCAhPSBnZXAtPmtpbmQpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCS8qIFhYWDog dXNlIGNvcnJlY3QgZXJyb3IgY29kZS4gKi8KKwkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFM SURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJCQkgZXJybXNnKCJlbGVtZW50IHBhdHRlcm5zIHdp dGggc2FtZSB2YXJpYWJsZSBuYW1lIFwiJXNcIiBidXQgZGlmZmVyZW50IGVsZW1lbnQgcGF0dGVy biB0eXBlcyIsCisJCQkJCQkJCQlnZXAtPnZhcmlhYmxlKSkpOworCisJCQkJLyoKKwkJCQkgKiBJ ZiBvbmx5IG9uZSBvZiB0aGUgdHdvIGVsZW1lbnQgcGF0dGVybnMgaGFzIGEgbGFiZWwKKwkJCQkg KiBleHByZXNzaW9uIHVzZSBpdC4gT3RoZXJ3aXNlIG1ha2Ugc3VyZSB0aGF0IGJvdGggb2YgdGhl bQorCQkJCSAqIGhhdmUgdGhlIHNhbWUgbGFiZWwgZXhwcmVzc2lvbi4gSWYgdGhleSBoYXZlIGRp ZmZlcmVudAorCQkJCSAqIGxhYmVsIGV4cHJlc3Npb25zIHRoZXkgbmVlZCB0byBiZSBjb25qdW5j dGVkLiBMYWJlbAorCQkJCSAqIGNvbmp1Y3Rpb24gaXMgbm90IHN1cHBvcnRlZCByaWdodCBub3cu CisJCQkJICovCisJCQkJaWYgKCFvdGhlci0+bGFiZWxleHByKQorCQkJCQlvdGhlci0+bGFiZWxl eHByID0gZ2VwLT5sYWJlbGV4cHI7CisJCQkJZWxzZSBpZiAoZ2VwLT5sYWJlbGV4cHIgJiYgIWVx dWFsKG90aGVyLT5sYWJlbGV4cHIsIGdlcC0+bGFiZWxleHByKSkKKwkJCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJLyogWFhYOiBVc2UgY29ycmVjdCBlcnJvciBjb2RlLiAqLworCQkJCQkJCShlcnJj b2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkJCSBlcnJtc2coImVs ZW1lbnQgcGF0dGVybnMgd2l0aCBzYW1lIHZhcmlhYmxlIG5hbWUgXCIlc1wiIGJ1dCBkaWZmZXJl bnQgbGFiZWwgZXhwcmVzc2lvbnMiLAorCQkJCQkJCQkJZ2VwLT52YXJpYWJsZSkpKTsKKworCQkJ CS8qIEJvdGggc2V0cyBvZiBjb25kaXRpb25zIGFwcGx5IHRvIHRoZSBlbGVtZW50IHBhdHRlcm4u ICovCisJCQkJaWYgKCFvdGhlci0+d2hlcmVDbGF1c2UpCisJCQkJCW90aGVyLT53aGVyZUNsYXVz ZSA9IGdlcC0+d2hlcmVDbGF1c2U7CisJCQkJZWxzZSBpZiAoZ2VwLT53aGVyZUNsYXVzZSkKKwkJ CQkJb3RoZXItPndoZXJlQ2xhdXNlID0gKE5vZGUgKikgbWFrZUJvb2xFeHByKEFORF9FWFBSLAor CQkJCQkJCQkJCQkJCQkJICAgbGlzdF9tYWtlMihvdGhlci0+d2hlcmVDbGF1c2UsIGdlcC0+d2hl cmVDbGF1c2UpLAorCQkJCQkJCQkJCQkJCQkJICAgLTEpOworCQkJCXBmID0gb3RoZXI7CisJCQkJ YnJlYWs7CisJCQl9CisJCX0KKworCQlpZiAoIXBmKQorCQl7CisJCQl7CisJCQkJcGYgPSBwYWxs b2MwX29iamVjdChzdHJ1Y3QgcGF0aF9mYWN0b3IpOworCQkJCXBmLT5mYWN0b3Jwb3MgPSBmYWN0 b3Jwb3MrKzsKKwkJCQlwZi0+a2luZCA9IGdlcC0+a2luZDsKKwkJCQlwZi0+bGFiZWxleHByID0g Z2VwLT5sYWJlbGV4cHI7CisJCQkJcGYtPnZhcmlhYmxlID0gZ2VwLT52YXJpYWJsZTsKKwkJCQlw Zi0+d2hlcmVDbGF1c2UgPSBnZXAtPndoZXJlQ2xhdXNlOworCisJCQkJcGF0aF9mYWN0b3JzID0g bGFwcGVuZChwYXRoX2ZhY3RvcnMsIHBmKTsKKwkJCX0KKwkJfQorCisJCS8qCisJCSAqIFNldHVw IGFkamFjZW50IHBhdGggZmFjdG9ycy4gSWYgbXVsdGlwbGUgZWRnZSBwYXR0ZXJucyBzaGFyZSB0 aGUKKwkJICogc2FtZSB2YXJpYWJsZSBuYW1lLCB0aGV5IGNvbnN0YWluIHRoZSBhZGphY2VudCB2 ZXJ0ZXggcGF0dGVybnMKKwkJICogc2luY2UgYW4gZWRnZSBjYW4gY29ubmVjdCBvbmx5IG9uZSBw YWlyIG9mIHZlcnRleGVzIGFuZCB0aG9zZQorCQkgKiB2ZXJ0ZXhlcyBhbHNvIG5lZWQgdG8gcmVw ZWF0ZWQgYWxvbmcgd2l0aCB0aGUgZWRnZSAoYSB3YWxrKS4gVGhpcworCQkgKiBtZWFucyB0aGF0 IHdlIGhhdmUgdG8gY29hbGVzY2UgdGhlIHZlcnRleCBwYXR0ZXJucyBhZGphY2VudCB0byBhCisJ CSAqIHJlcGVhdGVkIGVkZ2UgZXZlbiB0aG91Z2ggdGhleSBoYXZlIGRpZmZlcmVudCB2YXJpYWJs ZXMuICBFLmcuCisJCSAqIChhKS1bYl0tPihjKS1bYl08LShkKSBpbXBsaWVzIHRoYXQgKGEpIGFu ZCAoZCkgcmVwcmVzZW50IHRoZSBzYW1lCisJCSAqIHZlcnRleCBlbGVtZW50IHBhdHRlcm4uIFRo aXMgaXMgc2xpZ2hseSBoYXJkZXIgdG8gaW1wbGVtZW50IGFuZAorCQkgKiBwcm9iYWJseSBsZXNz IHVzZWZ1bC4gSGVuY2Ugbm90IHN1cHBvcnRlZCBmb3Igbm93LgorCQkgKi8KKwkJaWYgKHByZXZf cGYpCisJCXsKKwkJCWlmIChwcmV2X3BmLT5raW5kID09IEVER0VfUEFUVEVSTl9SSUdIVCkKKwkJ CXsKKwkJCQlBc3NlcnQoIUlTX0VER0VfUEFUVEVSTihwZi0+a2luZCkpOworCQkJCWlmIChwcmV2 X3BmLT5kZXN0X3BmICYmIHByZXZfcGYtPmRlc3RfcGYgIT0gcGYpCisJCQkJCWVsb2coRVJST1Is ICJBbiBlZGdlIGNhbiBub3QgY29ubmVjdCBtb3JlIHRoYW4gdHdvIHZlcnRleGVzIGV2ZW4gaW4g YSBjeWNsaWMgcGF0dGVybi4iKTsKKwkJCQlwcmV2X3BmLT5kZXN0X3BmID0gcGY7CisJCQl9CisJ CQllbHNlIGlmIChwcmV2X3BmLT5raW5kID09IEVER0VfUEFUVEVSTl9MRUZUKQorCQkJeworCQkJ CUFzc2VydCghSVNfRURHRV9QQVRURVJOKHBmLT5raW5kKSk7CisJCQkJaWYgKHByZXZfcGYtPnNy Y19wZiAmJiBwcmV2X3BmLT5zcmNfcGYgIT0gcGYpCisJCQkJCWVsb2coRVJST1IsICJBbiBlZGdl IGNhbiBub3QgY29ubmVjdCBtb3JlIHRoYW4gdHdvIHZlcnRleGVzIGV2ZW4gaW4gYSBjeWNsaWMg cGF0dGVybi4iKTsKKwkJCQlwcmV2X3BmLT5zcmNfcGYgPSBwZjsKKwkJCX0KKwkJCWVsc2UgaWYg KHByZXZfcGYtPmtpbmQgPT0gRURHRV9QQVRURVJOX0FOWSkKKwkJCXsKKwkJCQkvKiBXZSBkb24n dCBzdXBwb3J0IHVuZGlyZWN0ZWQgZWRnZXMgeWV0LiAqLworCQkJCUFzc2VydChmYWxzZSk7CisJ CQl9CisKKwkJCWlmIChwZi0+a2luZCA9PSBFREdFX1BBVFRFUk5fUklHSFQpCisJCQl7CisJCQkJ QXNzZXJ0KCFJU19FREdFX1BBVFRFUk4ocHJldl9wZi0+a2luZCkpOworCQkJCWlmIChwZi0+c3Jj X3BmICYmIHBmLT5zcmNfcGYgIT0gcHJldl9wZikKKwkJCQkJZWxvZyhFUlJPUiwgIkFuIGVkZ2Ug Y2FuIG5vdCBjb25uZWN0IG1vcmUgdGhhbiB0d28gdmVydGV4ZXMgZXZlbiBpbiBhIGN5Y2xpYyBw YXR0ZXJuLiIpOworCQkJCXBmLT5zcmNfcGYgPSBwcmV2X3BmOworCQkJfQorCQkJZWxzZSBpZiAo cGYtPmtpbmQgPT0gRURHRV9QQVRURVJOX0xFRlQpCisJCQl7CisJCQkJQXNzZXJ0KCFJU19FREdF X1BBVFRFUk4ocHJldl9wZi0+a2luZCkpOworCQkJCWlmIChwZi0+ZGVzdF9wZiAmJiBwZi0+ZGVz dF9wZiAhPSBwcmV2X3BmKQorCQkJCQllbG9nKEVSUk9SLCAiQW4gZWRnZSBjYW4gbm90IGNvbm5l Y3QgbW9yZSB0aGFuIHR3byB2ZXJ0ZXhlcyBldmVuIGluIGEgY3ljbGljIHBhdHRlcm4uIik7CisJ CQkJcGYtPmRlc3RfcGYgPSBwcmV2X3BmOworCQkJfQorCQkJZWxzZSBpZiAocGYtPmtpbmQgPT0g RURHRV9QQVRURVJOX0FOWSkKKwkJCXsKKwkJCQkvKiBXZSBkb24ndCBzdXBwb3J0IHVuZGlyZWN0 ZWQgZWRnZXMgeWV0LiAqLworCQkJCUFzc2VydChmYWxzZSk7CisJCQl9CisJCX0KKworCQlwcmV2 X3BmID0gcGY7CiAJfQogCisJLyoKKwkgKiBDb2xsZWN0IGxpc3Qgb2YgZWxlbWVudHMgZm9yIGVh Y2ggcGF0aCBmYWN0b3IuIERvIHRoaXMgYWZ0ZXIgYWxsIHRoZQorCSAqIGVkZ2UgbGlua3MgYXJl IHNldHVwIGNvcnJlY3RseS4KKwkgKi8KKwlmb3JlYWNoX3B0cihzdHJ1Y3QgcGF0aF9mYWN0b3Is IHBmLCBwYXRoX2ZhY3RvcnMpCisJCXBhdGhfZWxlbV9saXN0cyA9IGxhcHBlbmQocGF0aF9lbGVt X2xpc3RzLAorCQkJCQkJCQkgIGdldF9wYXRoX2VsZW1lbnRzX2Zvcl9wYXRoX2ZhY3RvcihydGUt PnJlbGlkLCBwZikpOworCiAJcGF0aHF1ZXJpZXMgPSBnZW5lcmF0ZV9xdWVyaWVzX2Zvcl9wYXRo X3BhdHRlcm5fcmVjdXJzZShydGUsIHBhdGhxdWVyaWVzLAogCQkJCQkJCQkJCQkJCQkJTklMLCBw YXRoX2VsZW1fbGlzdHMsIDApOwotCiAJaWYgKCFwYXRocXVlcmllcykKIAkJcGF0aHF1ZXJpZXMg PSBsaXN0X21ha2UxKGdlbmVyYXRlX3F1ZXJ5X2Zvcl9lbXB0eV9wYXRoX3BhdHRlcm4ocnRlKSk7 CiAKQEAgLTE5NiwxNSArMzM3LDEyIEBAIGdlbmVyYXRlX3F1ZXJpZXNfZm9yX3BhdGhfcGF0dGVy bihSYW5nZVRibEVudHJ5ICpydGUsIExpc3QgKnBhdGhfcGF0dGVybikKIHN0YXRpYyBMaXN0ICoK IGdlbmVyYXRlX3F1ZXJpZXNfZm9yX3BhdGhfcGF0dGVybl9yZWN1cnNlKFJhbmdlVGJsRW50cnkg KnJ0ZSwgTGlzdCAqcGF0aHF1ZXJpZXMsIExpc3QgKmN1cl9wYXRoLCBMaXN0ICpwYXRoX2VsZW1f bGlzdHMsIGludCBlbGVtcG9zKQogewotCUxpc3QJICAgKmdlcF9lbGVtcyA9IGxpc3RfbnRoX25v ZGUoTGlzdCwgcGF0aF9lbGVtX2xpc3RzLCBlbGVtcG9zKTsKLQlMaXN0Q2VsbCAgICpsYzsKKwlM aXN0CSAgICpwYXRoX2VsZW1zID0gbGlzdF9udGhfbm9kZShMaXN0LCBwYXRoX2VsZW1fbGlzdHMs IGVsZW1wb3MpOwogCi0JZm9yZWFjaChsYywgZ2VwX2VsZW1zKQorCWZvcmVhY2hfcHRyKHN0cnVj dCBwYXRoX2VsZW1lbnQsIHBlLCBwYXRoX2VsZW1zKQogCXsKLQkJc3RydWN0IGdyYXBoX3BhdGhf ZWxlbWVudCAqZWxlbSA9IGxmaXJzdChsYyk7Ci0KIAkJLyogVXBkYXRlIGN1cnJlbnQgcGF0aCBi ZWluZyBidWlsdCB3aXRoIGN1cnJlbnQgZWxlbWVudC4gKi8KLQkJY3VyX3BhdGggPSBsYXBwZW5k KGN1cl9wYXRoLCBlbGVtKTsKKwkJY3VyX3BhdGggPSBsYXBwZW5kKGN1cl9wYXRoLCBwZSk7CiAK IAkJLyoKIAkJICogSWYgdGhpcyBpcyB0aGUgbGFzdCBlbGVtZW50IGluIHRoZSBwYXRoLCBnZW5l cmF0ZSBxdWVyeSBmb3IgdGhlCkBAIC0yMzgsNTAgKzM3Niw0NyBAQCBnZW5lcmF0ZV9xdWVyaWVz X2Zvcl9wYXRoX3BhdHRlcm5fcmVjdXJzZShSYW5nZVRibEVudHJ5ICpydGUsIExpc3QgKnBhdGhx dWVyaWVzLAogc3RhdGljIFF1ZXJ5ICoKIGdlbmVyYXRlX3F1ZXJ5X2Zvcl9ncmFwaF9wYXRoKFJh bmdlVGJsRW50cnkgKnJ0ZSwgTGlzdCAqZ3JhcGhfcGF0aCkKIHsKLQlMaXN0Q2VsbCAgICpsYzsK IAlRdWVyeQkgICAqcGF0aF9xdWVyeSA9IG1ha2VOb2RlKFF1ZXJ5KTsKIAlMaXN0CSAgICpmcm9t bGlzdCA9IE5JTDsKIAlMaXN0CSAgICpxdWFsX2V4cHJzID0gTklMOwogCiAJcGF0aF9xdWVyeS0+ Y29tbWFuZFR5cGUgPSBDTURfU0VMRUNUOwogCi0JZm9yZWFjaChsYywgZ3JhcGhfcGF0aCkKKwlm b3JlYWNoX3B0cihzdHJ1Y3QgcGF0aF9lbGVtZW50LCBwZSwgZ3JhcGhfcGF0aCkKIAl7Ci0JCXN0 cnVjdCBncmFwaF9wYXRoX2VsZW1lbnQgKmdwZSA9IChzdHJ1Y3QgZ3JhcGhfcGF0aF9lbGVtZW50 ICopIGxmaXJzdChsYyk7Ci0JCUdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCA9IGdwZS0+cGFyZW50 X2dlcDsKKwkJc3RydWN0IHBhdGhfZmFjdG9yICpwZiA9IHBlLT5wYXRoX2ZhY3RvcjsKIAkJUmFu Z2VUYmxSZWYgKnJ0cjsKIAkJUmVsYXRpb24JcmVsOwogCQlQYXJzZU5hbWVzcGFjZUl0ZW0gKnBu aTsKIAotCQlBc3NlcnQoZ2VwLT5raW5kID09IFZFUlRFWF9QQVRURVJOIHx8Ci0JCQkgICBnZXAt PmtpbmQgPT0gRURHRV9QQVRURVJOX0xFRlQgfHwgZ2VwLT5raW5kID09IEVER0VfUEFUVEVSTl9S SUdIVCk7Ci0JCUFzc2VydCghZ2VwLT5xdWFudGlmaWVyKTsKKwkJQXNzZXJ0KHBmLT5raW5kID09 IFZFUlRFWF9QQVRURVJOIHx8CisJCQkgICBwZi0+a2luZCA9PSBFREdFX1BBVFRFUk5fTEVGVCB8 fCBwZi0+a2luZCA9PSBFREdFX1BBVFRFUk5fUklHSFQpOwogCi0JCWlmIChnZXAtPmtpbmQgPT0g RURHRV9QQVRURVJOX0xFRlQgfHwgZ2VwLT5raW5kID09IEVER0VfUEFUVEVSTl9SSUdIVCkKKwkJ aWYgKHBmLT5raW5kID09IEVER0VfUEFUVEVSTl9MRUZUIHx8IHBmLT5raW5kID09IEVER0VfUEFU VEVSTl9SSUdIVCkKIAkJewotCQkJc3RydWN0IGdyYXBoX3BhdGhfZWxlbWVudCAqc3JjX2dwZSA9 IGxpc3RfbnRoKGdyYXBoX3BhdGgsIGdwZS0+c3JjZWxlbV9wb3MpOwotCQkJc3RydWN0IGdyYXBo X3BhdGhfZWxlbWVudCAqZGVzdF9ncGUgPSBsaXN0X250aChncmFwaF9wYXRoLCBncGUtPmRlc3Rl bGVtX3Bvcyk7CisJCQlzdHJ1Y3QgcGF0aF9lbGVtZW50ICpzcmNfcGU7CisJCQlzdHJ1Y3QgcGF0 aF9lbGVtZW50ICpkZXN0X2dlOwogCi0JCQkvKgotCQkJICogTWFrZSBzdXJlIHRoYXQgdGhlIHNv dXJjZSBhbmQgZGVzdGluYXRpb24gZWxlbWVudHMgb2YgdGhpcyBlZGdlCi0JCQkgKiBhcmUgcGxh Y2VkIGF0IHRoZSBleHBlY3RlZCBwb3NpdGlvbiBhbmQgaGF2ZSB0aGUgY29ycmV0Ci0JCQkgKiBS YW5nZVRibEVudHJ5IGluZGV4ZXMgYXMgc2V0dXAgYnkgY3JlYXRlX2dwZV9mb3JfZWxlbWVudCgp LgotCQkJICovCi0JCQlBc3NlcnQoZ3BlLT5zcmNlbGVtX3BvcyA9PSBzcmNfZ3BlLT5ydGluZGV4 IC0gMSAmJgotCQkJCSAgIGdwZS0+ZGVzdGVsZW1fcG9zID09IGRlc3RfZ3BlLT5ydGluZGV4IC0g MSk7CisJCQlBc3NlcnQocGYtPnNyY19wZiAmJiBwZi0+ZGVzdF9wZik7CisJCQlzcmNfcGUgPSBs aXN0X250aChncmFwaF9wYXRoLCBwZi0+c3JjX3BmLT5mYWN0b3Jwb3MpOworCQkJZGVzdF9nZSA9 IGxpc3RfbnRoKGdyYXBoX3BhdGgsIHBmLT5kZXN0X3BmLT5mYWN0b3Jwb3MpOworCisJCQkvKiBN YWtlIHN1cmUgdGhhdCB0aGUgbGlua3Mgb2YgYWRqYWNlbnQgdmVydGljZXMgYXJlIGNvcnJlY3Qu ICovCisJCQlBc3NlcnQocGYtPnNyY19wZiA9PSBzcmNfcGUtPnBhdGhfZmFjdG9yICYmCisJCQkJ ICAgcGYtPmRlc3RfcGYgPT0gZGVzdF9nZS0+cGF0aF9mYWN0b3IpOwogCiAJCQkvKgogCQkJICog SWYgdGhlIGdpdmVuIGVkZ2UgZWxlbWVudCBkb2VzIG5vdCBjb25uZWN0IHRoZSBhZGphY2VudCB2 ZXJ0ZXgKIAkJCSAqIGVsZW1lbnRzIGluIHRoaXMgcGF0aCwgdGhlIHBhdGggaXMgYnJva2VuLiBB YmFuZG9uIHRoaXMgcGF0aCBhcwogCQkJICogaXQgd29uJ3QgcmV0dXJuIGFueSByb3dzLgogCQkJ ICovCi0JCQlpZiAoc3JjX2dwZS0+ZWxlbW9pZCAhPSBncGUtPnNyY3ZlcnRleGlkIHx8Ci0JCQkJ ZGVzdF9ncGUtPmVsZW1vaWQgIT0gZ3BlLT5kZXN0dmVydGV4aWQpCisJCQlpZiAoc3JjX3BlLT5l bGVtb2lkICE9IHBlLT5zcmN2ZXJ0ZXhpZCB8fAorCQkJCWRlc3RfZ2UtPmVsZW1vaWQgIT0gcGUt PmRlc3R2ZXJ0ZXhpZCkKIAkJCQlyZXR1cm4gTlVMTDsKIAkJfQogCiAJCS8qIENyZWF0ZSBSYW5n ZVRibEVudHJ5IGZvciB0aGlzIGVsZW1lbnQgdGFibGUuICovCi0JCXJlbCA9IHRhYmxlX29wZW4o Z3BlLT5yZWxvaWQsIEFjY2Vzc1NoYXJlTG9jayk7CisJCXJlbCA9IHRhYmxlX29wZW4ocGUtPnJl bG9pZCwgQWNjZXNzU2hhcmVMb2NrKTsKIAkJcG5pID0gYWRkUmFuZ2VUYWJsZUVudHJ5Rm9yUmVs YXRpb24obWFrZV9wYXJzZXN0YXRlKE5VTEwpLCByZWwsIEFjY2Vzc1NoYXJlTG9jaywKIAkJCQkJ CQkJCQkJTlVMTCwgdHJ1ZSwgZmFsc2UpOwogCQl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CkBA IC0yOTcsMTcgKzQzMiwxNyBAQCBnZW5lcmF0ZV9xdWVyeV9mb3JfZ3JhcGhfcGF0aChSYW5nZVRi bEVudHJ5ICpydGUsIExpc3QgKmdyYXBoX3BhdGgpCiAJCSAqIGhvbGRzIHRydWUuIFRoYXQgdGhl IGVsZW1lbnRzJyBSYW5nZVRibEVudHJ5cyBhcmUgYWRkZWQgaW4gdGhlCiAJCSAqIG9yZGVyIGlu IHdoaWNoIHRoZXkgYXBwZWFyIGluIHRoZSBwYXRoLgogCQkgKi8KLQkJQXNzZXJ0KGdwZS0+cnRp bmRleCA9PSBydHItPnJ0aW5kZXgpOworCQlBc3NlcnQocGYtPmZhY3RvcnBvcyArIDEgPT0gcnRy LT5ydGluZGV4KTsKIAotCQlpZiAoZ2VwLT53aGVyZUNsYXVzZSkKKwkJaWYgKHBmLT53aGVyZUNs YXVzZSkKIAkJewogCQkJTm9kZQkgICAqdHI7CiAKLQkJCXRyID0gcmVwbGFjZV9wcm9wZXJ0eV9y ZWZzKHJ0ZS0+cmVsaWQsIGdlcC0+d2hlcmVDbGF1c2UsIGxpc3RfbWFrZTEoZ3BlKSk7CisJCQl0 ciA9IHJlcGxhY2VfcHJvcGVydHlfcmVmcyhydGUtPnJlbGlkLCBwZi0+d2hlcmVDbGF1c2UsIGxp c3RfbWFrZTEocGUpKTsKIAogCQkJcXVhbF9leHBycyA9IGxhcHBlbmQocXVhbF9leHBycywgdHIp OwogCQl9Ci0JCXF1YWxfZXhwcnMgPSBsaXN0X2NvbmNhdChxdWFsX2V4cHJzLCBncGUtPnF1YWxf ZXhwcnMpOworCQlxdWFsX2V4cHJzID0gbGlzdF9jb25jYXQocXVhbF9leHBycywgcGUtPnF1YWxf ZXhwcnMpOwogCX0KIAogCWlmIChydGUtPmdyYXBoX3BhdHRlcm4tPndoZXJlQ2xhdXNlKQpAQCAt MzM5LDcgKzQ3NCw2IEBAIHN0YXRpYyBRdWVyeSAqCiBnZW5lcmF0ZV9xdWVyeV9mb3JfZW1wdHlf cGF0aF9wYXR0ZXJuKFJhbmdlVGJsRW50cnkgKnJ0ZSkKIHsKIAlRdWVyeQkgICAqcXVlcnkgPSBt YWtlTm9kZShRdWVyeSk7Ci0JTGlzdENlbGwgICAqbGM7CiAKIAlxdWVyeS0+Y29tbWFuZFR5cGUg PSBDTURfU0VMRUNUOwogCkBAIC0zNTUsOSArNDg5LDggQEAgZ2VuZXJhdGVfcXVlcnlfZm9yX2Vt cHR5X3BhdGhfcGF0dGVybihSYW5nZVRibEVudHJ5ICpydGUpCiAJICogY29sdW1ucyBhcyBwcm9q ZWN0ZWQgYnkgR1JBUEhfVEFCTEUgY2xhdXNlLiBEbyB0aGlzIGJ5IGNvbnN0cnVjdGluZyBhCiAJ ICogdGFyZ2V0IGxpc3QgZnVsbCBvZiBOVUxMIHZhbHVlcy4KIAkgKi8KLQlmb3JlYWNoKGxjLCBy dGUtPmdyYXBoX3RhYmxlX2NvbHVtbnMpCisJZm9yZWFjaF9ub2RlKFRhcmdldEVudHJ5LCB0ZSwg cnRlLT5ncmFwaF90YWJsZV9jb2x1bW5zKQogCXsKLQkJVGFyZ2V0RW50cnkgKnRlID0gY29weU9i amVjdChsZmlyc3Rfbm9kZShUYXJnZXRFbnRyeSwgbGMpKTsKIAkJTm9kZQkgICAqbnRlID0gKE5v ZGUgKikgdGUtPmV4cHI7CiAKIAkJdGUtPmV4cHIgPSAoRXhwciAqKSBtYWtlTnVsbENvbnN0KGV4 cHJUeXBlKG50ZSksIGV4cHJUeXBtb2QobnRlKSwgZXhwckNvbGxhdGlvbihudGUpKTsKQEAgLTQ4 MywxMyArNjE2LDkgQEAgZ2VuZXJhdGVfc2V0b3BfZnJvbV9wYXRocXVlcmllcyhMaXN0ICpwYXRo cXVlcmllcywgTGlzdCAqKnJ0YWJsZSwgTGlzdCAqKnRhcmdldGwKIAkJICovCiAJCWlmICh0YXJn ZXRsaXN0KQogCQl7Ci0JCQlMaXN0Q2VsbCAgICp0bDsKLQogCQkJKnRhcmdldGxpc3QgPSBOSUw7 Ci0JCQlmb3JlYWNoKHRsLCBscXVlcnktPnRhcmdldExpc3QpCisJCQlmb3JlYWNoX25vZGUoVGFy Z2V0RW50cnksIHRsZSwgbHF1ZXJ5LT50YXJnZXRMaXN0KQogCQkJewotCQkJCVRhcmdldEVudHJ5 ICp0bGUgPSAoVGFyZ2V0RW50cnkgKikgbGZpcnN0KHRsKTsKLQogCQkJCWlmICghdGxlLT5yZXNq dW5rKQogCQkJCQkqdGFyZ2V0bGlzdCA9IGxhcHBlbmQoKnRhcmdldGxpc3QsIHRsZSk7CiAJCQl9 CkBAIC01MTYsMjkgKzY0NSwyOSBAQCBnZW5lcmF0ZV9zZXRvcF9mcm9tX3BhdGhxdWVyaWVzKExp c3QgKnBhdGhxdWVyaWVzLCBMaXN0ICoqcnRhYmxlLCBMaXN0ICoqdGFyZ2V0bAogICogSWYgdGhl IHR5cGUgb2YgZ3JhcGggZWxlbWVudCBkb2VzIG5vdCBmaXQgdGhlIGVsZW1lbnQgcGF0dGVybiBr aW5kLCB0aGUKICAqIGZ1bmN0aW9uIHJldHVybnMgTlVMTC4KICAqLwotc3RhdGljIHN0cnVjdCBn cmFwaF9wYXRoX2VsZW1lbnQgKgotY3JlYXRlX2dwZV9mb3JfZWxlbWVudChHcmFwaEVsZW1lbnRQ YXR0ZXJuICpnZXAsIE9pZCBlbGVtb2lkLCBpbnQgZWxlbXBvcykKK3N0YXRpYyBzdHJ1Y3QgcGF0 aF9lbGVtZW50ICoKK2NyZWF0ZV9ncGVfZm9yX2VsZW1lbnQoc3RydWN0IHBhdGhfZmFjdG9yICpw ZiwgT2lkIGVsZW1vaWQpCiB7CiAJSGVhcFR1cGxlCWVsZXR1cCA9IFNlYXJjaFN5c0NhY2hlMShQ Uk9QR1JBUEhFTE9JRCwgT2JqZWN0SWRHZXREYXR1bShlbGVtb2lkKSk7CiAJRm9ybV9wZ19wcm9w Z3JhcGhfZWxlbWVudCBwZ2Vmb3JtOwotCXN0cnVjdCBncmFwaF9wYXRoX2VsZW1lbnQgKmdwZTsK KwlzdHJ1Y3QgcGF0aF9lbGVtZW50ICpwZTsKIAogCWlmICghZWxldHVwKQogCQllbG9nKEVSUk9S LCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgcHJvcGVydHkgZ3JhcGggZWxlbWVudCAldSIsIGVs ZW1vaWQpOwogCXBnZWZvcm0gPSAoKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQpIEdFVFNUUlVD VChlbGV0dXApKTsKIAotCWlmICgocGdlZm9ybS0+cGdla2luZCA9PSBQR0VLSU5EX1ZFUlRFWCAm JiBnZXAtPmtpbmQgIT0gVkVSVEVYX1BBVFRFUk4pIHx8Ci0JCShwZ2Vmb3JtLT5wZ2VraW5kID09 IFBHRUtJTkRfRURHRSAmJiAhSVNfRURHRV9QQVRURVJOKGdlcC0+a2luZCkpKQorCWlmICgocGdl Zm9ybS0+cGdla2luZCA9PSBQR0VLSU5EX1ZFUlRFWCAmJiBwZi0+a2luZCAhPSBWRVJURVhfUEFU VEVSTikgfHwKKwkJKHBnZWZvcm0tPnBnZWtpbmQgPT0gUEdFS0lORF9FREdFICYmICFJU19FREdF X1BBVFRFUk4ocGYtPmtpbmQpKSkKIAl7CiAJCVJlbGVhc2VTeXNDYWNoZShlbGV0dXApOwogCQly ZXR1cm4gTlVMTDsKIAl9CiAKLQlncGUgPSBwYWxsb2MwX29iamVjdChzdHJ1Y3QgZ3JhcGhfcGF0 aF9lbGVtZW50KTsKLQlncGUtPnBhcmVudF9nZXAgPSBnZXA7Ci0JZ3BlLT5lbGVtb2lkID0gZWxl bW9pZDsKLQlncGUtPnJlbG9pZCA9IHBnZWZvcm0tPnBnZXJlbGlkOwotCWdwZS0+cXVhbF9leHBy cyA9IE5JTDsKKwlwZSA9IHBhbGxvYzBfb2JqZWN0KHN0cnVjdCBwYXRoX2VsZW1lbnQpOworCXBl LT5wYXRoX2ZhY3RvciA9IHBmOworCXBlLT5lbGVtb2lkID0gZWxlbW9pZDsKKwlwZS0+cmVsb2lk ID0gcGdlZm9ybS0+cGdlcmVsaWQ7CisJcGUtPnF1YWxfZXhwcnMgPSBOSUw7CiAKIAkvKgogCSAq IFdoZW4gdGhlIHBhdGggY29udGFpbmluZyB0aGlzIGVsZW1lbnQgd2lsbCBiZSBjb252ZXJ0ZWQg aW50byBhIHF1ZXJ5CkBAIC01NTAsNTQgKzY3OSw0MCBAQCBjcmVhdGVfZ3BlX2Zvcl9lbGVtZW50 KEdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCwgT2lkIGVsZW1vaWQsIGludCBlbGVtcG9zKQogCSAq IGFzIHRoZSBudW1iZXIgb2YgcGF0aHMgdGhpcyBlbGVtZW50IGFwcGVhcnMgaW4uIEhlbmNlIHNh dmUgdGhlIGFzc3VtZWQKIAkgKiBydGluZGV4IHNvIHRoYXQgaXQgY2FuIGJlIHZlcmlmaWVkIGxh dGVyLgogCSAqLwotCWdwZS0+cnRpbmRleCA9IGVsZW1wb3MgKyAxOwotCi0JaWYgKElTX0VER0Vf UEFUVEVSTihnZXAtPmtpbmQpKQorCWlmIChJU19FREdFX1BBVFRFUk4ocGYtPmtpbmQpKQogCXsK LQkJaW50CQkJc3JjX3J0aW5kZXg7Ci0JCWludAkJCWRlc3RfcnRpbmRleDsKIAkJTGlzdAkgICAq ZWRnZV9xdWFsOwogCi0JCWdwZS0+c3JjdmVydGV4aWQgPSBwZ2Vmb3JtLT5wZ2VzcmN2ZXJ0ZXhp ZDsKLQkJZ3BlLT5kZXN0dmVydGV4aWQgPSBwZ2Vmb3JtLT5wZ2VkZXN0dmVydGV4aWQ7CisJCXBl LT5zcmN2ZXJ0ZXhpZCA9IHBnZWZvcm0tPnBnZXNyY3ZlcnRleGlkOworCQlwZS0+ZGVzdHZlcnRl eGlkID0gcGdlZm9ybS0+cGdlZGVzdHZlcnRleGlkOworCQlBc3NlcnQocGYtPnNyY19wZiAmJiBw Zi0+ZGVzdF9wZik7CiAKLQkJaWYgKGdlcC0+a2luZCA9PSBFREdFX1BBVFRFUk5fUklHSFQpCi0J CXsKLQkJCWdwZS0+c3JjZWxlbV9wb3MgPSBlbGVtcG9zIC0gMTsKLQkJCWdwZS0+ZGVzdGVsZW1f cG9zID0gZWxlbXBvcyArIDE7Ci0JCQlzcmNfcnRpbmRleCA9IGdwZS0+cnRpbmRleCAtIDE7Ci0J CQlkZXN0X3J0aW5kZXggPSBncGUtPnJ0aW5kZXggKyAxOwotCQl9Ci0JCWVsc2UgaWYgKGdlcC0+ a2luZCA9PSBFREdFX1BBVFRFUk5fTEVGVCkKLQkJewotCQkJZ3BlLT5zcmNlbGVtX3BvcyA9IGVs ZW1wb3MgKyAxOwotCQkJZ3BlLT5kZXN0ZWxlbV9wb3MgPSBlbGVtcG9zIC0gMTsKLQkJCXNyY19y dGluZGV4ID0gZ3BlLT5ydGluZGV4ICsgMTsKLQkJCWRlc3RfcnRpbmRleCA9IGdwZS0+cnRpbmRl eCAtIDE7Ci0JCX0KLQkJZWxzZQotCQl7Ci0JCQkvKiBXZSBkb24ndCBzdXBwb3J0IHVuZGlyZWN0 ZWQgZWRnZXMgeWV0LiAqLwotCQkJQXNzZXJ0KGZhbHNlKTsKLQkJCWdwZS0+c3JjZWxlbV9wb3Mg PSBlbGVtcG9zOwotCQkJZ3BlLT5kZXN0ZWxlbV9wb3MgPSBlbGVtcG9zOwotCQkJc3JjX3J0aW5k ZXggPSBncGUtPnJ0aW5kZXg7Ci0JCQlkZXN0X3J0aW5kZXggPSBncGUtPnJ0aW5kZXg7Ci0JCX0K LQotCQllZGdlX3F1YWwgPSBidWlsZF9lZGdlX3ZlcnRleF9saW5rX3F1YWxzKGVsZXR1cCwgZ3Bl LT5ydGluZGV4LCBzcmNfcnRpbmRleCwKKwkJLyoKKwkJICogV2hlbiB0aGUgcGF0aCBjb250YWlu aW5nIHRoaXMgZWxlbWVudCB3aWxsIGJlIGNvbnZlcnRlZCBpbnRvIGEKKwkJICogcXVlcnkgKGdl bmVyYXRlX3F1ZXJ5X2Zvcl9ncmFwaF9wYXRoKCkpIHRoaXMgZWxlbWVudCB3aWxsIGJlCisJCSAq IGNvbnZlcnRlZCBpbnRvIGEgUmFuZ2VUYmxFbnRyeS4gVGhlIFJhbmdlVGJsRW50cnlzIGFyZSBj cmVhdGVkIGluCisJCSAqIHRoZSBzYW1lIG9yZGVyIGluIHdoaWNoIGVsZW1lbnRzIGFwcGVhciBp biB0aGUgcGF0aCBhbmQgdGh1cyBnZXQKKwkJICogY29uc2VjdXRpdmUgUmFuZ2VUYWJsZSBpbmRl eGVzLiBTbyB3ZSBjYW4gc2FmZWx5IGFzc2lnbiB0aGUKKwkJICogUmFuZ2VUYWJsZSBpbmRleCBv ZiB0aGlzIGVsZW1lbnQgYmVmb3JlIGNyZWF0aW5nIFJhbmdlVGJsRW50cnkgZm9yCisJCSAqIGl0 LiBUaGlzIGhlbHBzIGNyYWZ0aW5nIHRoZSBxdWFscyBsaW5raW5nIGFuIGVkZ2UgdG8gdGhlIGFk amFjZW50CisJCSAqIHZlcnRleGVzIG9ubHkgb25jZSB3aGlsZSB3ZSBoYXZlIGFjY2VzcyB0byB0 aGUgY2F0YWxvZyBlbnRyeSBvZiB0aGUKKwkJICogZWxlbWVudC4gT3RoZXJ3aXNlLCB3ZSBuZWVk IHRvIGNyYWZ0IHRoZSBxdWFscyBhcyBtYW55IHRpbWVzIGFzIHRoZQorCQkgKiBudW1iZXIgb2Yg cGF0aHMgdGhpcyBlbGVtZW50IGFwcGVhcnMgaW4sIGZldGNoaW5nIHRoZSBjYXRhbG9nIGVudHJ5 CisJCSAqIGVhY2ggdGltZS4KKwkJICovCisJCWVkZ2VfcXVhbCA9IGJ1aWxkX2VkZ2VfdmVydGV4 X2xpbmtfcXVhbHMoZWxldHVwLCBwZi0+ZmFjdG9ycG9zICsgMSwgcGYtPnNyY19wZi0+ZmFjdG9y cG9zICsgMSwKIAkJCQkJCQkJCQkJCSBBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXNyY2tl eSwKIAkJCQkJCQkJCQkJCSBBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXNyY3JlZik7Ci0J CWdwZS0+cXVhbF9leHBycyA9IGxpc3RfY29uY2F0KGdwZS0+cXVhbF9leHBycywgZWRnZV9xdWFs KTsKLQkJZWRnZV9xdWFsID0gYnVpbGRfZWRnZV92ZXJ0ZXhfbGlua19xdWFscyhlbGV0dXAsIGdw ZS0+cnRpbmRleCwgZGVzdF9ydGluZGV4LAorCQlwZS0+cXVhbF9leHBycyA9IGxpc3RfY29uY2F0 KHBlLT5xdWFsX2V4cHJzLCBlZGdlX3F1YWwpOworCQllZGdlX3F1YWwgPSBidWlsZF9lZGdlX3Zl cnRleF9saW5rX3F1YWxzKGVsZXR1cCwgcGYtPmZhY3RvcnBvcyArIDEsIHBmLT5kZXN0X3BmLT5m YWN0b3Jwb3MgKyAxLAogCQkJCQkJCQkJCQkJIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdl ZGVzdGtleSwKIAkJCQkJCQkJCQkJCSBBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZWRlc3Ry ZWYpOwotCQlncGUtPnF1YWxfZXhwcnMgPSBsaXN0X2NvbmNhdChncGUtPnF1YWxfZXhwcnMsIGVk Z2VfcXVhbCk7CisJCXBlLT5xdWFsX2V4cHJzID0gbGlzdF9jb25jYXQocGUtPnF1YWxfZXhwcnMs IGVkZ2VfcXVhbCk7CiAJfQogCiAJUmVsZWFzZVN5c0NhY2hlKGVsZXR1cCk7CiAKLQlyZXR1cm4g Z3BlOworCXJldHVybiBwZTsKIH0KIAogc3RhdGljIGNvbnN0IGNoYXIgKgpAQCAtNjY5LDE1ICs3 ODQsMTAgQEAgZ2V0X2xhYmVsc19mb3JfZXhwcihPaWQgcHJvcGdyYXBoaWQsIE5vZGUgKmxhYmVs ZXhwcikKIAl7CiAJCUJvb2xFeHByICAgKmJlID0gY2FzdE5vZGUoQm9vbEV4cHIsIGxhYmVsZXhw cik7CiAJCUxpc3QJICAgKmxhYmVsX2V4cHJzID0gYmUtPmFyZ3M7Ci0JCUxpc3RDZWxsICAgKmxs YzsKIAogCQlsYWJlbF9vaWRzID0gTklMOwotCQlmb3JlYWNoKGxsYywgbGFiZWxfZXhwcnMpCi0J CXsKLQkJCUdyYXBoTGFiZWxSZWYgKmdsciA9IGxmaXJzdF9ub2RlKEdyYXBoTGFiZWxSZWYsIGxs Yyk7Ci0KKwkJZm9yZWFjaF9ub2RlKEdyYXBoTGFiZWxSZWYsIGdsciwgbGFiZWxfZXhwcnMpCiAJ CQlsYWJlbF9vaWRzID0gbGFwcGVuZF9vaWQobGFiZWxfb2lkcywgZ2xyLT5sYWJlbGlkKTsKLQkJ fQogCX0KIAllbHNlCiAJCWVsb2coRVJST1IsICJ1bnN1cHBvcnRlZCBsYWJlbCBleHByZXNzaW9u IHR5cGU6ICVkIiwgKGludCkgbm9kZVRhZyhsYWJlbGV4cHIpKTsKQEAgLTY5OCwyMiArODA4LDIx IEBAIGdldF9sYWJlbHNfZm9yX2V4cHIoT2lkIHByb3BncmFwaGlkLCBOb2RlICpsYWJlbGV4cHIp CiAgKiBgZWxlbXBvc2AgaXMgcG9zaXRpb24gb2YgdGhlIGVsZW1lbnQgcGF0dGVybiBpbiB0aGUg cGF0aCBwYXR0ZXJuLgogICovCiBzdGF0aWMgTGlzdCAqCi1nZXRfZWxlbWVudHNfZm9yX2dlcChP aWQgcHJvcGdyYXBoaWQsIEdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCwgaW50IGVsZW1wb3MpCitn ZXRfcGF0aF9lbGVtZW50c19mb3JfcGF0aF9mYWN0b3IoT2lkIHByb3BncmFwaGlkLCBzdHJ1Y3Qg cGF0aF9mYWN0b3IgKnBmKQogewotCUxpc3QJICAgKmxhYmVsX29pZHMgPSBnZXRfbGFiZWxzX2Zv cl9leHByKHByb3BncmFwaGlkLCBnZXAtPmxhYmVsZXhwcik7CisJTGlzdAkgICAqbGFiZWxfb2lk cyA9IGdldF9sYWJlbHNfZm9yX2V4cHIocHJvcGdyYXBoaWQsIHBmLT5sYWJlbGV4cHIpOwogCUxp c3QJICAgKmVsZW1fb2lkc19zZWVuID0gTklMOwotCUxpc3QJICAgKmVsZW1fZ3BlX29pZHMgPSBO SUw7Ci0JTGlzdAkgICAqZWxlbV9ncGVzID0gTklMOwotCUxpc3RDZWxsICAgKmxjOworCUxpc3QJ ICAgKnBmX2VsZW1fb2lkcyA9IE5JTDsKKwlMaXN0CSAgICpwYXRoX2VsZW1lbnRzID0gTklMOwor CUxpc3QJICAgKnVucmVzb2x2ZWRfbGFiZWxzID0gTklMOwogCVJlbGF0aW9uCXJlbDsKIAlTeXNT Y2FuRGVzYyBzY2FuOwogCVNjYW5LZXlEYXRhIGtleVsxXTsKIAlIZWFwVHVwbGUJdHVwOwogCiAJ cmVsID0gdGFibGVfb3BlbihQcm9wZ3JhcGhFbGVtZW50TGFiZWxSZWxhdGlvbklkLCBBY2Nlc3NT aGFyZUxvY2spOwotCWZvcmVhY2gobGMsIGxhYmVsX29pZHMpCisJZm9yZWFjaF9vaWQobGFiZWxv aWQsIGxhYmVsX29pZHMpCiAJewotCQlPaWQJCQlsYWJlbG9pZCA9IGxmaXJzdF9vaWQobGMpOwog CQlib29sCQlmb3VuZCA9IGZhbHNlOwogCiAJCVNjYW5LZXlJbml0KCZrZXlbMF0sCkBAIC03MzYs MTIgKzg0NSwxMiBAQCBnZXRfZWxlbWVudHNfZm9yX2dlcChPaWQgcHJvcGdyYXBoaWQsIEdyYXBo RWxlbWVudFBhdHRlcm4gKmdlcCwgaW50IGVsZW1wb3MpCiAJCQkJICogdGhlIGN1cnJlbnQgbGFi ZWwgaGFzIGF0IGxlYXN0IG9uZSBlbGVtZW50LCB0aGF0IHNhdGlzZmllcwogCQkJCSAqIHRoZSBn aXZlbiBlbGVtZW50IHBhdHRlcm4sIGFzc29jaWF0ZWQgd2l0aCBpdC4KIAkJCQkgKi8KLQkJCQlz dHJ1Y3QgZ3JhcGhfcGF0aF9lbGVtZW50ICpncGUgPSBjcmVhdGVfZ3BlX2Zvcl9lbGVtZW50KGdl cCwgZWxlbV9vaWQsIGVsZW1wb3MpOworCQkJCXN0cnVjdCBwYXRoX2VsZW1lbnQgKnBlID0gY3Jl YXRlX2dwZV9mb3JfZWxlbWVudChwZiwgZWxlbV9vaWQpOwogCi0JCQkJaWYgKGdwZSkKKwkJCQlp ZiAocGUpCiAJCQkJewotCQkJCQllbGVtX2dwZXMgPSBsYXBwZW5kKGVsZW1fZ3BlcywgZ3BlKTsK LQkJCQkJZWxlbV9ncGVfb2lkcyA9IGxhcHBlbmRfb2lkKGVsZW1fZ3BlX29pZHMsIGVsZW1fb2lk KTsKKwkJCQkJcGF0aF9lbGVtZW50cyA9IGxhcHBlbmQocGF0aF9lbGVtZW50cywgcGUpOworCQkJ CQlwZl9lbGVtX29pZHMgPSBsYXBwZW5kX29pZChwZl9lbGVtX29pZHMsIGVsZW1fb2lkKTsKIAkJ CQkJZm91bmQgPSB0cnVlOwogCQkJCX0KIApAQCAtNzQ5LDExICs4NTgsMTEgQEAgZ2V0X2VsZW1l bnRzX2Zvcl9nZXAoT2lkIHByb3BncmFwaGlkLCBHcmFwaEVsZW1lbnRQYXR0ZXJuICpnZXAsIGlu dCBlbGVtcG9zKQogCQkJCSAqIEFkZCB0aGUgZ3JhcGggZWxlbWVudCB0byB0aGUgZWxlbWVudHMg Y29uc2lkZXJlZCBzbyBmYXIgdG8KIAkJCQkgKiBhdm9pZCBwcm9jZXNzaW5nIHNhbWUgZWxlbWVu dCBhc3NvY2lhdGVkIHdpdGggbXVsdGlwbGUKIAkJCQkgKiBsYWJlbHMgbXVsdGlwbGUgdGltZXMu IEFsc28gYXZvaWRzIGNyZWF0aW5nIGR1cGxpY2F0ZQotCQkJCSAqIEdyYXBoUGF0aEVsZW1lbnRz LgorCQkJCSAqIHBhdGhfZWxlbWVudCBzdHJ1Y3R1cmVzLgogCQkJCSAqLwogCQkJCWVsZW1fb2lk c19zZWVuID0gbGFwcGVuZF9vaWQoZWxlbV9vaWRzX3NlZW4sIGxhYmVsX2VsZW0tPnBnZWxlbGlk KTsKIAkJCX0KLQkJCWVsc2UgaWYgKGxpc3RfbWVtYmVyX29pZChlbGVtX2dwZV9vaWRzLCBlbGVt X29pZCkpCisJCQllbHNlIGlmIChsaXN0X21lbWJlcl9vaWQocGZfZWxlbV9vaWRzLCBlbGVtX29p ZCkpCiAJCQl7CiAJCQkJLyoKIAkJCQkgKiBUaGUgZ3JhcGggZWxlbWVudCBpcyBrbm93biB0byBx dWFsaWZ5IHRoZSBnaXZlbiBlbGVtZW50CkBAIC03NzQsMzAgKzg4MywyNyBAQCBnZXRfZWxlbWVu dHNfZm9yX2dlcChPaWQgcHJvcGdyYXBoaWQsIEdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCwgaW50 IGVsZW1wb3MpCiAJCQkgKiBlcnJvciBpZiB0aGUgbGFiZWwgd2FzIGV4cGxpY2l0bHkgc3BlY2lm aWVkIGluIHRoZSBlbGVtZW50CiAJCQkgKiBwYXR0ZXJuLiBPdGhlcndpc2UganVzdCBSZW1vdmUg aXQgZnJvbSB0aGUgbGlzdC4KIAkJCSAqLwotCQkJaWYgKCFnZXAtPmxhYmVsZXhwcikKLQkJCQlm b3JlYWNoX2RlbGV0ZV9jdXJyZW50KGxhYmVsX29pZHMsIGxjKTsKKwkJCWlmICghcGYtPmxhYmVs ZXhwcikKKwkJCQl1bnJlc29sdmVkX2xhYmVscyA9IGxhcHBlbmRfb2lkKHVucmVzb2x2ZWRfbGFi ZWxzLCBsYWJlbG9pZCk7CiAJCQllbHNlCiAJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCShlcnJj b2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCiAJCQkJCQkgZXJybXNnKCJjYW4gbm90IGZp bmQgbGFiZWwgXCIlc1wiIGluIHByb3BlcnR5IGdyYXBoIFwiJXNcIiBmb3IgZWxlbWVudCB0eXBl IFwiJXNcIiIsCiAJCQkJCQkJCWdldF9wcm9wZ3JhcGhfbGFiZWxfbmFtZShsYWJlbG9pZCksCiAJ CQkJCQkJCWdldF9yZWxfbmFtZShwcm9wZ3JhcGhpZCksCi0JCQkJCQkJCWdldF9ncmFwaF9lbGVt X2tpbmRfbmFtZShnZXAtPmtpbmQpKSkpOworCQkJCQkJCQlnZXRfZ3JhcGhfZWxlbV9raW5kX25h bWUocGYtPmtpbmQpKSkpOwogCQl9CiAKIAkJc3lzdGFibGVfZW5kc2NhbihzY2FuKTsKIAl9CiAJ dGFibGVfY2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOwogCi0JLyogVXBkYXRlIHRoZSBmaWx0 ZXJlZCBsYWJlbCBsaXN0IGluIGVhY2ggZ3JhcGhfcGF0aF9lbGVtZW50LiAqLwotCWZvcmVhY2go bGMsIGVsZW1fZ3BlcykKLQl7Ci0JCXN0cnVjdCBncmFwaF9wYXRoX2VsZW1lbnQgKmdwZSA9IGxm aXJzdChsYyk7Ci0KLQkJZ3BlLT5sYWJlbG9pZHMgPSBsYWJlbF9vaWRzOwotCX0KLQotCXJldHVy biBlbGVtX2dwZXM7CisJLyoKKwkgKiBSZW1lbWJlciB0aGUgT0lEcyBvZiByZXNvbHZlZCBsYWJl bHMgZm9yIHRoZSBnaXZlbiBwYXRoIGZhY3RvciBmb3IKKwkgKiBsYXRlciB1c2UgLgorCSAqLwor CXBmLT5sYWJlbG9pZHMgPSBsaXN0X2RpZmZlcmVuY2Vfb2lkKGxhYmVsX29pZHMsIHVucmVzb2x2 ZWRfbGFiZWxzKTsKKwlyZXR1cm4gcGF0aF9lbGVtZW50czsKIH0KIAogc3RhdGljIGNvbnN0IGNo YXIgKgpAQCAtODQ2LDE1ICs5NTIsMTMgQEAgcmVwbGFjZV9wcm9wZXJ0eV9yZWZzX211dGF0b3Io Tm9kZSAqbm9kZSwgc3RydWN0IHJlcGxhY2VfcHJvcGVydHlfcmVmc19jb250ZXh0ICoKIAl7CiAJ CUdyYXBoUHJvcGVydHlSZWYgKmdwciA9IChHcmFwaFByb3BlcnR5UmVmICopIG5vZGU7CiAJCU5v ZGUJICAgKm4gPSBOVUxMOwotCQlMaXN0Q2VsbCAgICpsYzsKLQkJc3RydWN0IGdyYXBoX3BhdGhf ZWxlbWVudCAqZm91bmRfbWFwcGluZyA9IE5VTEw7CisJCXN0cnVjdCBwYXRoX2VsZW1lbnQgKmZv dW5kX21hcHBpbmcgPSBOVUxMOworCQlzdHJ1Y3QgcGF0aF9mYWN0b3IgKm1hcHBpbmdfZmFjdG9y ID0gTlVMTDsKIAkJTGlzdAkgICAqdW5yZWxhdGVkX2xhYmVscyA9IE5JTDsKIAotCQlmb3JlYWNo KGxjLCBjb250ZXh0LT5tYXBwaW5ncykKKwkJZm9yZWFjaF9wdHIoc3RydWN0IHBhdGhfZWxlbWVu dCwgbSwgY29udGV4dC0+bWFwcGluZ3MpCiAJCXsKLQkJCXN0cnVjdCBncmFwaF9wYXRoX2VsZW1l bnQgKm0gPSBsZmlyc3QobGMpOwotCi0JCQlpZiAobS0+cGFyZW50X2dlcC0+dmFyaWFibGUgJiYg c3RyY21wKGdwci0+ZWx2YXJuYW1lLCBtLT5wYXJlbnRfZ2VwLT52YXJpYWJsZSkgPT0gMCkKKwkJ CWlmIChtLT5wYXRoX2ZhY3Rvci0+dmFyaWFibGUgJiYgc3RyY21wKGdwci0+ZWx2YXJuYW1lLCBt LT5wYXRoX2ZhY3Rvci0+dmFyaWFibGUpID09IDApCiAJCQl7CiAJCQkJZm91bmRfbWFwcGluZyA9 IG07CiAJCQkJYnJlYWs7CkBAIC04NjMsMTMgKzk2NywxNCBAQCByZXBsYWNlX3Byb3BlcnR5X3Jl ZnNfbXV0YXRvcihOb2RlICpub2RlLCBzdHJ1Y3QgcmVwbGFjZV9wcm9wZXJ0eV9yZWZzX2NvbnRl eHQgKgogCQlpZiAoIWZvdW5kX21hcHBpbmcpCiAJCQllbG9nKEVSUk9SLCAidW5kZWZpbmVkIGVs ZW1lbnQgdmFyaWFibGUgXCIlc1wiIiwgZ3ByLT5lbHZhcm5hbWUpOwogCisJCW1hcHBpbmdfZmFj dG9yID0gZm91bmRfbWFwcGluZy0+cGF0aF9mYWN0b3I7CisKIAkJLyoKIAkJICogRmluZCBwcm9w ZXJ0eSBkZWZpbml0aW9uIGZvciBnaXZlbiBlbGVtZW50IHRocm91Z2ggYW55IG9mIHRoZQogCQkg KiBhc3NvY2lhdGVkIGxhYmVscy4KIAkJICovCi0JCWZvcmVhY2gobGMsIGZvdW5kX21hcHBpbmct PmxhYmVsb2lkcykKKwkJZm9yZWFjaF9vaWQobGFiZWxvaWQsIG1hcHBpbmdfZmFjdG9yLT5sYWJl bG9pZHMpCiAJCXsKLQkJCU9pZAkJCWxhYmVsb2lkID0gbGZpcnN0X29pZChsYyk7CiAJCQlPaWQJ CQllbGVtX2xhYmVsaWQgPSBHZXRTeXNDYWNoZU9pZDIoUFJPUEdSQVBIRUxFTUVOVExBQkVMRUxF TUVOVExBQkVMLAogCQkJCQkJCQkJCQkJCSAgIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFi ZWxfb2lkLAogCQkJCQkJCQkJCQkJCSAgIE9iamVjdElkR2V0RGF0dW0oZm91bmRfbWFwcGluZy0+ ZWxlbW9pZCksCkBAIC04OTIsNyArOTk3LDcgQEAgcmVwbGFjZV9wcm9wZXJ0eV9yZWZzX211dGF0 b3IoTm9kZSAqbm9kZSwgc3RydWN0IHJlcGxhY2VfcHJvcGVydHlfcmVmc19jb250ZXh0ICoKIAog CQkJCW4gPSBzdHJpbmdUb05vZGUoVGV4dERhdHVtR2V0Q1N0cmluZyhTeXNDYWNoZUdldEF0dHJO b3ROdWxsKFBST1BHUkFQSExBQkVMUFJPUCwKIAkJCQkJCQkJCQkJCQkJCQkJCQl0dXAsIEFudW1f cGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5X3BscGV4cHIpKSk7Ci0JCQkJQ2hhbmdlVmFyTm9k ZXMobiwgMSwgZm91bmRfbWFwcGluZy0+cnRpbmRleCwgMCk7CisJCQkJQ2hhbmdlVmFyTm9kZXMo biwgMSwgbWFwcGluZ19mYWN0b3ItPmZhY3RvcnBvcyArIDEsIDApOwogCiAJCQkJUmVsZWFzZVN5 c0NhY2hlKHR1cCk7CiAJCQl9CkBAIC05MTAsMTIgKzEwMTUsMTEgQEAgcmVwbGFjZV9wcm9wZXJ0 eV9yZWZzX211dGF0b3IoTm9kZSAqbm9kZSwgc3RydWN0IHJlcGxhY2VfcHJvcGVydHlfcmVmc19j b250ZXh0ICoKIAkJLyogU2VlIGlmIHdlIGNhbiByZXNvbHZlIHRoZSBwcm9wZXJ0eSBpbiBzb21l IG90aGVyIHdheS4gKi8KIAkJaWYgKCFuKQogCQl7Ci0JCQlMaXN0Q2VsbCAgICpsY3U7CiAJCQli b29sCQlwcm9wX2Fzc29jaWF0ZWQgPSBmYWxzZTsKIAotCQkJZm9yZWFjaChsY3UsIHVucmVsYXRl ZF9sYWJlbHMpCisJCQlmb3JlYWNoX29pZChsb2lkLCB1bnJlbGF0ZWRfbGFiZWxzKQogCQkJewot CQkJCWlmIChpc19wcm9wZXJ0eV9hc3NvY2lhdGVkX3dpdGhfbGFiZWwobGZpcnN0X29pZChsY3Up LCBncHItPnByb3BpZCkpCisJCQkJaWYgKGlzX3Byb3BlcnR5X2Fzc29jaWF0ZWRfd2l0aF9sYWJl bChsb2lkLCBncHItPnByb3BpZCkpCiAJCQkJewogCQkJCQlwcm9wX2Fzc29jaWF0ZWQgPSB0cnVl OwogCQkJCQlicmVhazsKQEAgLTk0MSw3ICsxMDQ1LDcgQEAgcmVwbGFjZV9wcm9wZXJ0eV9yZWZz X211dGF0b3IoTm9kZSAqbm9kZSwgc3RydWN0IHJlcGxhY2VfcHJvcGVydHlfcmVmc19jb250ZXh0 ICoKIAkJCQkgKiByb3dzIHRvIHRoZSBHUkFQSF9UQUJMRS4KIAkJCQkgKi8KIAkJCQluID0gZ2V0 X2VsZW1lbnRfcHJvcGVydHlfZXhwcihmb3VuZF9tYXBwaW5nLT5lbGVtb2lkLCBncHItPnByb3Bp ZCwKLQkJCQkJCQkJCQkJICBmb3VuZF9tYXBwaW5nLT5ydGluZGV4KTsKKwkJCQkJCQkJCQkJICBt YXBwaW5nX2ZhY3Rvci0+ZmFjdG9ycG9zICsgMSk7CiAKIAkJCQlpZiAoIW4pCiAJCQkJewpAQCAt OTU0LDcgKzEwNTgsNyBAQCByZXBsYWNlX3Byb3BlcnR5X3JlZnNfbXV0YXRvcihOb2RlICpub2Rl LCBzdHJ1Y3QgcmVwbGFjZV9wcm9wZXJ0eV9yZWZzX2NvbnRleHQgKgogCiAJCWlmICghbikKIAkJ CWVsb2coRVJST1IsICJwcm9wZXJ0eSBcIiVzXCIgb2YgZWxlbWVudCB2YXJpYWJsZSBcIiVzXCIg bm90IGZvdW5kIiwKLQkJCQkgZ2V0X3Byb3BncmFwaF9wcm9wZXJ0eV9uYW1lKGdwci0+cHJvcGlk KSwgZm91bmRfbWFwcGluZy0+cGFyZW50X2dlcC0+dmFyaWFibGUpOworCQkJCSBnZXRfcHJvcGdy YXBoX3Byb3BlcnR5X25hbWUoZ3ByLT5wcm9waWQpLCBtYXBwaW5nX2ZhY3Rvci0+dmFyaWFibGUp OwogCiAJCXJldHVybiBuOwogCX0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvZ3JhcGhfdGFibGUub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ncmFwaF90YWJs ZS5vdXQKaW5kZXggZGUwZDE2M2U4MzAuLjg3YWIzZTMxYWY4IDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91dApAQCAtMzQ5LDE0ICszNDksNiBAQCBzZWxlY3Qgc3Jj LCBjb25uLCBkZXN0LCBscHJvcDEsIHZwcm9wMiwgdnByb3AxIGZyb20gZ3JhcGhfdGFibGUgKGcx IG1hdGNoIChhIGlzCiAgdjExIHwgZTEzMiB8IHYzMSAgfCB2bDNfcHJvcCB8ICAgICAgICB8ICAg MjAxMAogKDQgcm93cykKIAotLS0gV0hFUkUgY2xhdXNlIGluIGdyYXBoIHBhdHRlcm4KLVNFTEVD VCBzZWxmLCB0aHJvdWdoIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS0+KGIpLT4oYykg V0hFUkUgYS52bmFtZSA9IGMudm5hbWUgYW5kIGEudm5hbWUgPD4gYi52bmFtZSBDT0xVTU5TIChh LnZuYW1lIGFzIHNlbGYsIGIudm5hbWUgYXMgdGhyb3VnaCkpOwotIHNlbGYgfCB0aHJvdWdoIAot LS0tLS0tKy0tLS0tLS0tLQotIHYxMiAgfCB2MjEKLSB2MjEgIHwgdjEyCi0oMiByb3dzKQotCiAt LSBFcnJvcnMKIC0tIHZsMSBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIHByb3BlcnR5IHZwcm9wMgog c2VsZWN0IHNyYywgc3JjX3Zwcm9wMiwgY29ubiwgZGVzdCBmcm9tIGdyYXBoX3RhYmxlIChnMSBt YXRjaCAoYSBpcyB2bDEpLVtiIGlzIGVsMV0tPihjIGlzIHZsMiB8IHZsMykgY29sdW1ucyAoYS52 bmFtZSBhcyBzcmMsIGEudnByb3AyIGFzIHNyY192cHJvcDIsIGIuZW5hbWUgYXMgY29ubiwgYy52 bmFtZSBhcyBkZXN0KSk7CkBAIC00MjAsNiArNDEyLDExNCBAQCBzZWxlY3Qgc24sIGNuLCBkbiBm cm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAoc3JjIDogbDEpLVtjb25uIDogbDFdLT4oZGVzdCA6 IGwxKQogIHYyMiB8IGUyMzEgfCB2MzIKICg2IHJvd3MpCiAKKy0tIFRlc3RzIGZvciBjeWNsaWMg Z3JhcGggcGF0dGVybnMKKy0tIEFkZCBzb21lIG1vcmUgY3ljbGVzIGluIGdyYXBoCitDUkVBVEUg VEFCTEUgZTNfMiAoaWRfMyBpbnQsCisgICAgICAgICAgICAgICAgICAgIGlkXzJfMSBpbnQsCisg ICAgICAgICAgICAgICAgICAgIGlkXzJfMiBpbnQsCisgICAgICAgICAgICAgICAgICAgIGVuYW1l IHZhcmNoYXIoMTApLAorICAgICAgICAgICAgICAgICAgICBlcHJvcDEgaW50KTsKK0FMVEVSIFBS T1BFUlRZIEdSQVBIIGcxIEFERCBFREdFIFRBQkxFUyAoCisgICAgZTNfMiBLRVkgKGlkXzMsIGlk XzJfMSwgaWRfMl8yKQorICAgICAgICBTT1VSQ0UgS0VZIChpZF8zKSBSRUZFUkVOQ0VTIHYzIChp ZCkKKyAgICAgICAgREVTVElOQVRJT04gS0VZIChpZF8yXzEsIGlkXzJfMikgUkVGRVJFTkNFUyB2 MiAoaWQxLCBpZDIpCisgICAgICAgIExBQkVMIGVsMiBQUk9QRVJUSUVTIChlbmFtZSwgZXByb3Ax ICogMTAgQVMgbHByb3AyKQorICAgICAgICBMQUJFTCBsMSBQUk9QRVJUSUVTIChlbmFtZSBBUyBl bG5hbWUpCispOworSU5TRVJUIElOVE8gZTFfMiBWQUxVRVMgKDMsIDEwMDAsIDMsICdlMTIzJywg MTAwMDcpOworSU5TRVJUIElOVE8gZTJfMSBWQUxVRVMgKDEwMDAsIDMsIDMsICdlMjEyJywgMTAw MDgpOworSU5TRVJUIElOVE8gZTNfMiBWQUxVRVMgKDIwMDIsIDEwMDAsIDIsICdlMzIxJywgMTAw MDkpOworLS0gY3ljbGljIHBhdHRlcm4gdXNpbmcgV0hFUkUgY2xhdXNlIGluIGdyYXBoIHBhdHRl cm4sCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSktPihiKS0+KGMpIFdI RVJFIGEudm5hbWUgPSBjLnZuYW1lIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi52bmFtZSBB UyB0aHJvdWdoLCBhLnZwcm9wMSBBUyBzZWxmX3AxLCBiLnZwcm9wMSBBUyB0aHJvdWdoX3AxKSkg T1JERVIgQlkgc2VsZiwgdGhyb3VnaDsKKyBzZWxmIHwgdGhyb3VnaCB8IHNlbGZfcDEgfCB0aHJv dWdoX3AxIAorLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgdjEyICB8 IHYyMSAgICAgfCAgICAgIDIwIHwgICAgICAgMTAxMAorIHYxMyAgfCB2MjMgICAgIHwgICAgICAz MCB8ICAgICAgIDEwMzAKKyB2MjEgIHwgdjEyICAgICB8ICAgIDEwMTAgfCAgICAgICAgIDIwCisg djIyICB8IHYzMiAgICAgfCAgICAxMDIwIHwgICAgICAgMjAyMAorIHYyMyAgfCB2MTMgICAgIHwg ICAgMTAzMCB8ICAgICAgICAgMzAKKyB2MzIgIHwgdjIyICAgICB8ICAgIDIwMjAgfCAgICAgICAx MDIwCisoNiByb3dzKQorCistLSBjeWNsaWMgcGF0dGVybiB1c2luZyBlbGVtZW50cyB3aXRoIHNh bWUgdmFyaWFibGUgbmFtZQorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEp LT4oYiktPihhKSBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYsIGIudm5hbWUgQVMgdGhyb3VnaCwg YS52cHJvcDEgQVMgc2VsZl9wMSwgYi52cHJvcDEgQVMgdGhyb3VnaF9wMSkpIE9SREVSIEJZIHNl bGYsIHRocm91Z2g7Cisgc2VsZiB8IHRocm91Z2ggfCBzZWxmX3AxIHwgdGhyb3VnaF9wMSAKKy0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIHYxMiAgfCB2MjEgICAgIHwg ICAgICAyMCB8ICAgICAgIDEwMTAKKyB2MTMgIHwgdjIzICAgICB8ICAgICAgMzAgfCAgICAgICAx MDMwCisgdjIxICB8IHYxMiAgICAgfCAgICAxMDEwIHwgICAgICAgICAyMAorIHYyMiAgfCB2MzIg ICAgIHwgICAgMTAyMCB8ICAgICAgIDIwMjAKKyB2MjMgIHwgdjEzICAgICB8ICAgIDEwMzAgfCAg ICAgICAgIDMwCisgdjMyICB8IHYyMiAgICAgfCAgICAyMDIwIHwgICAgICAgMTAyMAorKDYgcm93 cykKKworLS0gY3ljbGljIHBhdHRlcm4gd2l0aCBXSEVSRSBjbGF1c2UKK1NFTEVDVCAqIEZST00g R1JBUEhfVEFCTEUgKGcxIE1BVENIIChhIHdoZXJlIGEudnByb3AxIDwgMjAwMCktPihiIHdoZXJl IGIudnByb3AxID4gMjApLT4oYSB3aGVyZSBhLnZwcm9wMSA+IDIwKSBDT0xVTU5TIChhLnZuYW1l IEFTIHNlbGYsIGIudm5hbWUgQVMgdGhyb3VnaCwgYS52cHJvcDEgQVMgc2VsZl9wMSwgYi52cHJv cDEgQVMgdGhyb3VnaF9wMSkpIE9SREVSIEJZIHNlbGYsIHRocm91Z2g7Cisgc2VsZiB8IHRocm91 Z2ggfCBzZWxmX3AxIHwgdGhyb3VnaF9wMSAKKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQorIHYxMyAgfCB2MjMgICAgIHwgICAgICAzMCB8ICAgICAgIDEwMzAKKyB2MjIg IHwgdjMyICAgICB8ICAgIDEwMjAgfCAgICAgICAyMDIwCisgdjIzICB8IHYxMyAgICAgfCAgICAx MDMwIHwgICAgICAgICAzMAorKDMgcm93cykKKworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAo ZzEgTUFUQ0ggKGEpLT4oYiB3aGVyZSBiLnZwcm9wMSA+IDIwKS0+KGEgd2hlcmUgYS52cHJvcDEg YmV0d2VlbiAyMCBhbmQgMjAwMCkgQ09MVU1OUyAoYS52bmFtZSBBUyBzZWxmLCBiLnZuYW1lIEFT IHRocm91Z2gsIGEudnByb3AxIEFTIHNlbGZfcDEsIGIudnByb3AxIEFTIHRocm91Z2hfcDEpKSBP UkRFUiBCWSBzZWxmLCB0aHJvdWdoOworIHNlbGYgfCB0aHJvdWdoIHwgc2VsZl9wMSB8IHRocm91 Z2hfcDEgCistLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2MTIgIHwg djIxICAgICB8ICAgICAgMjAgfCAgICAgICAxMDEwCisgdjEzICB8IHYyMyAgICAgfCAgICAgIDMw IHwgICAgICAgMTAzMAorIHYyMiAgfCB2MzIgICAgIHwgICAgMTAyMCB8ICAgICAgIDIwMjAKKyB2 MjMgIHwgdjEzICAgICB8ICAgIDEwMzAgfCAgICAgICAgIDMwCisoNCByb3dzKQorCitTRUxFQ1Qg KiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSB3aGVyZSBhLnZwcm9wMSBiZXR3ZWVuIDIw IGFuZCAyMDAwKS0+KGIgd2hlcmUgYi52cHJvcDEgPiAyMCktPihhIHdoZXJlIGEudnByb3AxIGJl dHdlZW4gMjAgYW5kIDIwMDApIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi52bmFtZSBBUyB0 aHJvdWdoLCBhLnZwcm9wMSBBUyBzZWxmX3AxLCBiLnZwcm9wMSBBUyB0aHJvdWdoX3AxKSkgT1JE RVIgQlkgc2VsZiwgdGhyb3VnaDsKKyBzZWxmIHwgdGhyb3VnaCB8IHNlbGZfcDEgfCB0aHJvdWdo X3AxIAorLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgdjEyICB8IHYy MSAgICAgfCAgICAgIDIwIHwgICAgICAgMTAxMAorIHYxMyAgfCB2MjMgICAgIHwgICAgICAzMCB8 ICAgICAgIDEwMzAKKyB2MjIgIHwgdjMyICAgICB8ICAgIDEwMjAgfCAgICAgICAyMDIwCisgdjIz ICB8IHYxMyAgICAgfCAgICAxMDMwIHwgICAgICAgICAzMAorKDQgcm93cykKKworU0VMRUNUICog RlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEgaXMgbDEpLVthIGlzIGwxXS0+KGIgaXMgbDEp IGNvbHVtbnMgKGEuZW5hbWUgQVMgYWVuYW1lLCBiLmVuYW1lIEFTIGJlbmFtZSkpIE9SREVSIEJZ IDEsIDI7IC0tIGVycm9yCitFUlJPUjogIGVsZW1lbnQgcGF0dGVybnMgd2l0aCBzYW1lIHZhcmlh YmxlIG5hbWUgImEiIGJ1dCBkaWZmZXJlbnQgZWxlbWVudCBwYXR0ZXJuIHR5cGVzCitTRUxFQ1Qg KiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSBpcyB2bDEpLT4oYiktPihhIGlzIHZsMikg V0hFUkUgYS52bmFtZSA8PiBiLnZuYW1lIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi52bmFt ZSBBUyB0aHJvdWdoLCBhLnZwcm9wMSBBUyBzZWxmX3AxLCBiLnZwcm9wMSBBUyB0aHJvdWdoX3Ax KSkgT1JERVIgQlkgc2VsZiwgdGhyb3VnaDsgIC0tIGVycm9yCitFUlJPUjogIGVsZW1lbnQgcGF0 dGVybnMgd2l0aCBzYW1lIHZhcmlhYmxlIG5hbWUgImEiIGJ1dCBkaWZmZXJlbnQgbGFiZWwgZXhw cmVzc2lvbnMKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhIGlzIHZsMSkt PihiKS0+KGEpIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi52bmFtZSBBUyB0aHJvdWdoLCBh LnZwcm9wMSBBUyBzZWxmX3AxLCBiLnZwcm9wMSBBUyB0aHJvdWdoX3AxKSkgT1JERVIgQlkgc2Vs ZiwgdGhyb3VnaDsKKyBzZWxmIHwgdGhyb3VnaCB8IHNlbGZfcDEgfCB0aHJvdWdoX3AxIAorLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgdjEyICB8IHYyMSAgICAgfCAg ICAgIDIwIHwgICAgICAgMTAxMAorIHYxMyAgfCB2MjMgICAgIHwgICAgICAzMCB8ICAgICAgIDEw MzAKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS0+ KGIpLT4oYSBpcyB2bDEpIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi52bmFtZSBBUyB0aHJv dWdoLCBhLnZwcm9wMSBBUyBzZWxmX3AxLCBiLnZwcm9wMSBBUyB0aHJvdWdoX3AxKSkgT1JERVIg Qlkgc2VsZiwgdGhyb3VnaDsKKyBzZWxmIHwgdGhyb3VnaCB8IHNlbGZfcDEgfCB0aHJvdWdoX3Ax IAorLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgdjEyICB8IHYyMSAg ICAgfCAgICAgIDIwIHwgICAgICAgMTAxMAorIHYxMyAgfCB2MjMgICAgIHwgICAgICAzMCB8ICAg ICAgIDEwMzAKKygyIHJvd3MpCisKKy0tIGFkZCBhbiBlZGdlIHdpdGggc2FtZSB2ZXJ0ZXggYXMg c291cmNlIGFuZCBkZXN0aW5hdGlvbiB0byB0ZXN0IGxvb3BzCitDUkVBVEUgVEFCTEUgZTNfMyAo c3JjX2lkIGludCwKKyAgICAgICAgICAgICAgICAgICAgZGVzdF9pZCBpbnQsCisgICAgICAgICAg ICAgICAgICAgIGVuYW1lIHZhcmNoYXIoMTApLAorICAgICAgICAgICAgICAgICAgICBlcHJvcDEg aW50KTsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGcxIEFERCBFREdFIFRBQkxFUyAoCisgICAgZTNf MyBLRVkgKHNyY19pZCwgZGVzdF9pZCkKKyAgICAgICAgU09VUkNFIEtFWSAoc3JjX2lkKSBSRUZF UkVOQ0VTIHYzIChpZCkKKyAgICAgICAgREVTVElOQVRJT04gS0VZIChzcmNfaWQpIFJFRkVSRU5D RVMgdjMgKGlkKQorICAgICAgICBMQUJFTCBlbDIgUFJPUEVSVElFUyAoZW5hbWUsIGVwcm9wMSAq IDEwIEFTIGxwcm9wMikKKyAgICAgICAgTEFCRUwgbDEgUFJPUEVSVElFUyAoZW5hbWUgQVMgZWxu YW1lKQorKTsKK0lOU0VSVCBJTlRPIGUzXzMgVkFMVUVTICgyMDAzLCAyMDAzLCAnZTMzMScsIDEw MDEwKTsKKy0tIGN5Y2xpYyBwYXR0ZXJuIHdpdGggZWRnZSBwYXR0ZXJucyB3aXRoIHNhbWUgdmFy aWFibGUgbmFtZQorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEpLVtiXS0+ KGEpLVtiXS0+KGEpIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi5lbmFtZSBBUyBsb29wX25h bWUpKTsKKyBzZWxmIHwgbG9vcF9uYW1lIAorLS0tLS0tKy0tLS0tLS0tLS0tCisgdjMzICB8IGUz MzEKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEpLVti XS0+KGMpLVtiXS0+KGQpIENPTFVNTlMgKGEudm5hbWUgQVMgYW5hbWUsIGIuZW5hbWUgQVMgYm5h bWUsIGMudm5hbWUgQVMgY25hbWUsIGQudm5hbWUgQVMgZG5hbWUpKTsgLS1lcnJvcgorRVJST1I6 ICBBbiBlZGdlIGNhbiBub3QgY29ubmVjdCBtb3JlIHRoYW4gdHdvIHZlcnRleGVzIGV2ZW4gaW4g YSBjeWNsaWMgcGF0dGVybi4KIC0tIHByb3BlcnR5IGdyYXBoIHdpdGggc29tZSBvZiB0aGUgZWxl bWVudHMsIGxhYmVscyBhbmQgcHJvcGVydGllcyBzYW1lIGFzIHRoZQogLS0gcHJldmlvdXMgb25l LiBUZXN0IHdoZXRoZXIgY29tcG9uZW50cyBmcm9tIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgZ3Jh cGggYXJlCiAtLSB1c2VkLgpAQCAtNDUxLDEwICs1NTEsMTEgQEAgc2VsZWN0IHNuLCBjbiwgZG4g ZnJvbSBncmFwaF90YWJsZSAoZzIgbWF0Y2ggKHNyYyA6IGwxKS1bY29ubiA6IGwxXS0+KGRlc3Qg OiBsMSkKIC0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLQogIGcyLnYxMiB8IGcyLmUxMjIgfCBn Mi52MjEKICBnMi52MTEgfCBnMi5lMTIxIHwgZzIudjIyCisgZzIudjEzIHwgZzIuZTEyMyB8IGcy LnYyMwogIGcyLnYxMSB8IGcyLmUxMzEgfCBnMi52MzMKICBnMi52MTEgfCBnMi5lMTMyIHwgZzIu djMxCiAgZzIudjIyIHwgZzIuZTIzMSB8IGcyLnYzMgotKDUgcm93cykKKyg2IHJvd3MpCiAKIENS RUFURSBWSUVXIGN1c3RvbWVyc191cyBBUyBTRUxFQ1QgY3VzdG9tZXJfbmFtZSBGUk9NIEdSQVBI X1RBQkxFIChteXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdV UycpLVtJUyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZSBB UyBjdXN0b21lcl9uYW1lKSk7CiBTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ2N1c3RvbWVyc191cyc6 OnJlZ2NsYXNzKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dyYXBoX3RhYmxl LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dyYXBoX3RhYmxlLnNxbAppbmRleCA0ODY1OTRh OTkzNC4uZjM0NjE2MTYzYWEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dyYXBo X3RhYmxlLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ncmFwaF90YWJsZS5zcWwKQEAg LTI2Miw4ICsyNjIsNiBAQCBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSBJ UyB2bDEgfCB2bDIpIENPTFVNTlMgKGEudm5hbWUsCiBhLnZwcm9wMSkpOwogLS0gdnByb3AyIGlz IGFzc29jaWF0ZWQgd2l0aCB2bDIgYnV0IG5vdCB2bDMKIHNlbGVjdCBzcmMsIGNvbm4sIGRlc3Qs IGxwcm9wMSwgdnByb3AyLCB2cHJvcDEgZnJvbSBncmFwaF90YWJsZSAoZzEgbWF0Y2ggKGEgaXMg dmwxKS1bYiBpcyBlbDFdLT4oYyBpcyB2bDIgfCB2bDMpIGNvbHVtbnMgKGEudm5hbWUgYXMgc3Jj LCBiLmVuYW1lIGFzIGNvbm4sIGMudm5hbWUgYXMgZGVzdCwgYy5scHJvcDEsIGMudnByb3AyLCBj LnZwcm9wMSkpOwotLS0gV0hFUkUgY2xhdXNlIGluIGdyYXBoIHBhdHRlcm4KLVNFTEVDVCBzZWxm LCB0aHJvdWdoIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS0+KGIpLT4oYykgV0hFUkUg YS52bmFtZSA9IGMudm5hbWUgYW5kIGEudm5hbWUgPD4gYi52bmFtZSBDT0xVTU5TIChhLnZuYW1l IGFzIHNlbGYsIGIudm5hbWUgYXMgdGhyb3VnaCkpOwogCiAtLSBFcnJvcnMKIC0tIHZsMSBpcyBu b3QgYXNzb2NpYXRlZCB3aXRoIHByb3BlcnR5IHZwcm9wMgpAQCAtMjg5LDYgKzI4Nyw1NiBAQCBz ZWxlY3Qgdm4gZnJvbSBhbGxfdmVydGljZXMgZXhjZXB0IChzZWxlY3Qgc3ZuIGZyb20gYWxsX2Nv bm5lY3RlZF92ZXJ0aWNlcyB1bmlvbgogLS0gcXVlcnkgYWxsIGNvbm5lY3Rpb25zIHVzaW5nIGEg bGFiZWwgc2hhcmVkIGJ5IHZlcnRpY2VzIGFuZCBlZGdlcwogc2VsZWN0IHNuLCBjbiwgZG4gZnJv bSBncmFwaF90YWJsZSAoZzEgbWF0Y2ggKHNyYyA6IGwxKS1bY29ubiA6IGwxXS0+KGRlc3QgOiBs MSkgY29sdW1ucyAoc3JjLmVsbmFtZSBhcyBzbiwgY29ubi5lbG5hbWUgYXMgY24sIGRlc3QuZWxu YW1lIGFzIGRuKSk7CiAKKy0tIFRlc3RzIGZvciBjeWNsaWMgZ3JhcGggcGF0dGVybnMKKy0tIEFk ZCBzb21lIG1vcmUgY3ljbGVzIGluIGdyYXBoCitDUkVBVEUgVEFCTEUgZTNfMiAoaWRfMyBpbnQs CisgICAgICAgICAgICAgICAgICAgIGlkXzJfMSBpbnQsCisgICAgICAgICAgICAgICAgICAgIGlk XzJfMiBpbnQsCisgICAgICAgICAgICAgICAgICAgIGVuYW1lIHZhcmNoYXIoMTApLAorICAgICAg ICAgICAgICAgICAgICBlcHJvcDEgaW50KTsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGcxIEFERCBF REdFIFRBQkxFUyAoCisgICAgZTNfMiBLRVkgKGlkXzMsIGlkXzJfMSwgaWRfMl8yKQorICAgICAg ICBTT1VSQ0UgS0VZIChpZF8zKSBSRUZFUkVOQ0VTIHYzIChpZCkKKyAgICAgICAgREVTVElOQVRJ T04gS0VZIChpZF8yXzEsIGlkXzJfMikgUkVGRVJFTkNFUyB2MiAoaWQxLCBpZDIpCisgICAgICAg IExBQkVMIGVsMiBQUk9QRVJUSUVTIChlbmFtZSwgZXByb3AxICogMTAgQVMgbHByb3AyKQorICAg ICAgICBMQUJFTCBsMSBQUk9QRVJUSUVTIChlbmFtZSBBUyBlbG5hbWUpCispOworCitJTlNFUlQg SU5UTyBlMV8yIFZBTFVFUyAoMywgMTAwMCwgMywgJ2UxMjMnLCAxMDAwNyk7CitJTlNFUlQgSU5U TyBlMl8xIFZBTFVFUyAoMTAwMCwgMywgMywgJ2UyMTInLCAxMDAwOCk7CitJTlNFUlQgSU5UTyBl M18yIFZBTFVFUyAoMjAwMiwgMTAwMCwgMiwgJ2UzMjEnLCAxMDAwOSk7CisKKy0tIGN5Y2xpYyBw YXR0ZXJuIHVzaW5nIFdIRVJFIGNsYXVzZSBpbiBncmFwaCBwYXR0ZXJuLAorU0VMRUNUICogRlJP TSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEpLT4oYiktPihjKSBXSEVSRSBhLnZuYW1lID0gYy52 bmFtZSBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYsIGIudm5hbWUgQVMgdGhyb3VnaCwgYS52cHJv cDEgQVMgc2VsZl9wMSwgYi52cHJvcDEgQVMgdGhyb3VnaF9wMSkpIE9SREVSIEJZIHNlbGYsIHRo cm91Z2g7CistLSBjeWNsaWMgcGF0dGVybiB1c2luZyBlbGVtZW50cyB3aXRoIHNhbWUgdmFyaWFi bGUgbmFtZQorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEpLT4oYiktPihh KSBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYsIGIudm5hbWUgQVMgdGhyb3VnaCwgYS52cHJvcDEg QVMgc2VsZl9wMSwgYi52cHJvcDEgQVMgdGhyb3VnaF9wMSkpIE9SREVSIEJZIHNlbGYsIHRocm91 Z2g7CistLSBjeWNsaWMgcGF0dGVybiB3aXRoIFdIRVJFIGNsYXVzZQorU0VMRUNUICogRlJPTSBH UkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEgd2hlcmUgYS52cHJvcDEgPCAyMDAwKS0+KGIgd2hlcmUg Yi52cHJvcDEgPiAyMCktPihhIHdoZXJlIGEudnByb3AxID4gMjApIENPTFVNTlMgKGEudm5hbWUg QVMgc2VsZiwgYi52bmFtZSBBUyB0aHJvdWdoLCBhLnZwcm9wMSBBUyBzZWxmX3AxLCBiLnZwcm9w MSBBUyB0aHJvdWdoX3AxKSkgT1JERVIgQlkgc2VsZiwgdGhyb3VnaDsKK1NFTEVDVCAqIEZST00g R1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS0+KGIgd2hlcmUgYi52cHJvcDEgPiAyMCktPihhIHdo ZXJlIGEudnByb3AxIGJldHdlZW4gMjAgYW5kIDIwMDApIENPTFVNTlMgKGEudm5hbWUgQVMgc2Vs ZiwgYi52bmFtZSBBUyB0aHJvdWdoLCBhLnZwcm9wMSBBUyBzZWxmX3AxLCBiLnZwcm9wMSBBUyB0 aHJvdWdoX3AxKSkgT1JERVIgQlkgc2VsZiwgdGhyb3VnaDsKK1NFTEVDVCAqIEZST00gR1JBUEhf VEFCTEUgKGcxIE1BVENIIChhIHdoZXJlIGEudnByb3AxIGJldHdlZW4gMjAgYW5kIDIwMDApLT4o YiB3aGVyZSBiLnZwcm9wMSA+IDIwKS0+KGEgd2hlcmUgYS52cHJvcDEgYmV0d2VlbiAyMCBhbmQg MjAwMCkgQ09MVU1OUyAoYS52bmFtZSBBUyBzZWxmLCBiLnZuYW1lIEFTIHRocm91Z2gsIGEudnBy b3AxIEFTIHNlbGZfcDEsIGIudnByb3AxIEFTIHRocm91Z2hfcDEpKSBPUkRFUiBCWSBzZWxmLCB0 aHJvdWdoOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEgaXMgbDEpLVth IGlzIGwxXS0+KGIgaXMgbDEpIGNvbHVtbnMgKGEuZW5hbWUgQVMgYWVuYW1lLCBiLmVuYW1lIEFT IGJlbmFtZSkpIE9SREVSIEJZIDEsIDI7IC0tIGVycm9yCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RB QkxFIChnMSBNQVRDSCAoYSBpcyB2bDEpLT4oYiktPihhIGlzIHZsMikgV0hFUkUgYS52bmFtZSA8 PiBiLnZuYW1lIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi52bmFtZSBBUyB0aHJvdWdoLCBh LnZwcm9wMSBBUyBzZWxmX3AxLCBiLnZwcm9wMSBBUyB0aHJvdWdoX3AxKSkgT1JERVIgQlkgc2Vs ZiwgdGhyb3VnaDsgIC0tIGVycm9yCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRD SCAoYSBpcyB2bDEpLT4oYiktPihhKSBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYsIGIudm5hbWUg QVMgdGhyb3VnaCwgYS52cHJvcDEgQVMgc2VsZl9wMSwgYi52cHJvcDEgQVMgdGhyb3VnaF9wMSkp IE9SREVSIEJZIHNlbGYsIHRocm91Z2g7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBN QVRDSCAoYSktPihiKS0+KGEgaXMgdmwxKSBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYsIGIudm5h bWUgQVMgdGhyb3VnaCwgYS52cHJvcDEgQVMgc2VsZl9wMSwgYi52cHJvcDEgQVMgdGhyb3VnaF9w MSkpIE9SREVSIEJZIHNlbGYsIHRocm91Z2g7CisKKy0tIGFkZCBhbiBlZGdlIHdpdGggc2FtZSB2 ZXJ0ZXggYXMgc291cmNlIGFuZCBkZXN0aW5hdGlvbiB0byB0ZXN0IGxvb3BzCitDUkVBVEUgVEFC TEUgZTNfMyAoc3JjX2lkIGludCwKKyAgICAgICAgICAgICAgICAgICAgZGVzdF9pZCBpbnQsCisg ICAgICAgICAgICAgICAgICAgIGVuYW1lIHZhcmNoYXIoMTApLAorICAgICAgICAgICAgICAgICAg ICBlcHJvcDEgaW50KTsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGcxIEFERCBFREdFIFRBQkxFUyAo CisgICAgZTNfMyBLRVkgKHNyY19pZCwgZGVzdF9pZCkKKyAgICAgICAgU09VUkNFIEtFWSAoc3Jj X2lkKSBSRUZFUkVOQ0VTIHYzIChpZCkKKyAgICAgICAgREVTVElOQVRJT04gS0VZIChzcmNfaWQp IFJFRkVSRU5DRVMgdjMgKGlkKQorICAgICAgICBMQUJFTCBlbDIgUFJPUEVSVElFUyAoZW5hbWUs IGVwcm9wMSAqIDEwIEFTIGxwcm9wMikKKyAgICAgICAgTEFCRUwgbDEgUFJPUEVSVElFUyAoZW5h bWUgQVMgZWxuYW1lKQorKTsKKworSU5TRVJUIElOVE8gZTNfMyBWQUxVRVMgKDIwMDMsIDIwMDMs ICdlMzMxJywgMTAwMTApOworLS0gY3ljbGljIHBhdHRlcm4gd2l0aCBlZGdlIHBhdHRlcm5zIHdp dGggc2FtZSB2YXJpYWJsZSBuYW1lCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRD SCAoYSktW2JdLT4oYSktW2JdLT4oYSkgQ09MVU1OUyAoYS52bmFtZSBBUyBzZWxmLCBiLmVuYW1l IEFTIGxvb3BfbmFtZSkpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEp LVtiXS0+KGMpLVtiXS0+KGQpIENPTFVNTlMgKGEudm5hbWUgQVMgYW5hbWUsIGIuZW5hbWUgQVMg Ym5hbWUsIGMudm5hbWUgQVMgY25hbWUsIGQudm5hbWUgQVMgZG5hbWUpKTsgLS1lcnJvcgorCiAt LSBwcm9wZXJ0eSBncmFwaCB3aXRoIHNvbWUgb2YgdGhlIGVsZW1lbnRzLCBsYWJlbHMgYW5kIHBy b3BlcnRpZXMgc2FtZSBhcyB0aGUKIC0tIHByZXZpb3VzIG9uZS4gVGVzdCB3aGV0aGVyIGNvbXBv bmVudHMgZnJvbSB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IGdyYXBoIGFyZQogLS0gdXNlZC4KLS0g CjIuMzQuMQoK --00000000000015b3be062aa12bab Content-Type: text/x-patch; charset="US-ASCII"; name="0004-Fixes-following-issues-20250101.patch" Content-Disposition: attachment; filename="0004-Fixes-following-issues-20250101.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5dnsext3 RnJvbSBhMDMwMDFmMjk1MmRiOTc0ZGJkMzk3NjM1Mjg1ZGY4ZTQ0OGYzMGE0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBc2h1dG9zaCBCYXBhdCA8YXNodXRvc2guYmFwYXRAZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogV2VkLCAyMSBBdWcgMjAyNCAxOTo0MTo0OCArMDUzMApTdWJqZWN0 OiBbUEFUQ0ggNC85XSBGaXhlcyBmb2xsb3dpbmcgaXNzdWVzCgoxLiBBIHF1ZXJ5IGNvbnRhaW5p bmcgR1JBUEhfVEFCTEUgcmVmZXJlbmNlIHVzZWQgaW4gYSBVREYgY2F1c2VzIHNlZ21lbnRhdGlv bgpmYXVsdDogRWFybGllciB2ZXJzaW9uIG9mIHBhdGNoZXMgdXNlZCBwX3Bvc3RfY29sdW1ucmVm X2hvb2sgdG8gdHJhbnNmb3JtIGEKcHJvcGVydHkgcmVmZXJlbmNlIGluIGEgR1JBUEhfVEFCTEUg cmVmZXJlbmNlLiBCdXQgcmVsYXRlZCBob29rcyBhbmQgbWVtYmVycyBpbgpQYXJzZVN0YXRlIGFy ZSB1c2VkIGJ5IG90aGVyIG5vbi1jb3JlIG1vZHVsZXMgbGlrZSBwbHBnc3FsLiBJZiBhIHF1ZXJ5 IGluc2lkZSBhCnBscGdzcWwgZnVuY3Rpb24gaGFzIEdSQVBIX1RBQkxFIHJlZmVyZW5jZSBpbiBp dCB0aGUgdXNhZ2Ugb2YgdGhlc2UgaG9va3MKY29uZmxpY3RzLiBTaW5jZSBHUkFQSF9UQUJMRSBp cyBhIGNvcmUgZmVhdHVyZSwgaXQncyBiZXR0ZXIgdG8gaW50cm9kdWNlIGEgbmV3Cm1lbWJlciBQ YXJzZVN0YXRlOjpwX2dyYXBoX3RhYmxlX3BzdGF0ZSwgb2YgdHlwZSBHcmFwaFRhYmxlUGFyc2VT dGF0ZSwgdG8gaG9sZAp0aGUgbmFtZXNwYWNlIGZvciB0aGUgR1JBUEhfVEFCTEUgcmVmZXJlbmNl IGJlaW5nIHRyYW5zZm9ybWVkLiBJdCBpcyBpbmxpbmUKd2l0aCBQYXJzZVN0YXRlOjpwX3BhcmVu dF9jdGUgb3IgUGFyc2VTdGF0ZTo6cF9xdWVyeUVudiB3aGljaCBoYXZlIHNpbWlsYXIKcHVycG9z ZXMuIFdpdGggdGhhdCBjaGFuZ2UgZGVmaW5pdGlvbiBvZiBHcmFwaFRhYmxlUGFyc2VTdGF0ZSBp cyBtb3ZlZCB0bwpwYXJzZW5vZGVzLmggd2hlcmUgQ29tbW9uVGFibGVFeHByIGFuZCBRdWVyeUVu dmlyb25tZW50IGFyZSBhbHNvIGRlZmluZWQuIFRoZQpmdW5jdGlvbiB1c2luZyB0aGUgUGFyc2VT dGF0ZTo6cF9ncmFwaF90YWJsZV9wc3RhdGUgaXMgcmVuYW1lZCB0bwp0cmFuc2Zvcm1HcmFwaFRh YmxlUHJvcGVydHlSZWYoKSB0byBiZSBpbmxpbmUgd2l0aCBuYW1lcyBvZiBvdGhlciBzaW1pbGFy CmZ1bmN0aW9ucy4gVGhpcyBjaGFuZ2UgYWxzbyBhbGxvd3MgR3JhcGhUYWJsZVBhcnNlU3RhdGUg YXJndW1lbnQgdG8gYmUgcmVtb3ZlZApmcm9tIGEgZmV3IGZ1bmN0aW9ucy4KCjIuIEVSUk9SOiAg dW5yZWNvZ25pemVkIGxvY2sgbW9kZTogMCB2aWEgU2NhblF1ZXJ5Rm9yTG9ja3MoKTogQWZ0ZXIg Zml4aW5nIHRoZQpmaXJzdCBidWcsIEkgcmFuIGludG8gYWJvdmUgZXJyb3IuIEFuIFJURV9HUkFQ SF9UQUJMRSBpcyBjb252ZXJ0ZWQgdG8KUlRFX1NVQlFVRVJZIGFmdGVyIHRyYW5zZm9ybWF0aW9u IHdpdGggcmVsaWQgPSBPSUQgb2YgdGhlIHByb3BlcnR5IGdyYXBoIGJlaW5nCnJlZmVyZW5jZWQg aW4gR1JBUEhfVEFCTEUgY2xhdXNlLiBGdW5jdGlvbnMgY2FsbGVkIGZyb20gU2NhblF1ZXJ5Rm9y TG9ja3MoKQp0YWtlIGxvY2tzIHdoZW4gUmFuZ2VUYmxSZWY6OnJlbGlkIGlzIHZhbGlkOyB3aGlj aCBpcyBkZXNpcmFibGUgc2luY2Ugd2Ugd2FudAp0byBsb2NrIHRoZSBwcm9wZXJ0eSBncmFwaCB3 aGlsZSBpdCdzIGJlaW5nIHVzZWQuIFNvIHNldApSYW5nZVRibFJlZjo6cmVsbG9ja21vZGUgdG8g QWNjZXNzU2hhcmVMb2NrLgoKMy4gUHJvaGliaXRzIHN1YnF1ZXJ5IHdpdGhpbiBHUkFQSF9UQUJM RSByZWZlcmVuY2U6IEluIG9yZGVyIHRvIHN1cHBvcnQgaXQgdGhlCmhhc1N1YmxpbmtzIGZsYWcg bmVlZHMgdG8gYmUgdHJhbnNmZXJyZWQgdG8gdGhlIHF1ZXJpZXMgcHJvZHVjZWQgYXMgYSByZXN1 bHQgb2YKcmV3cml0aW5nIGdyYXBoIHRhYmxlIFJURS4gSXQgbmVlZHMgYSBiaXQgb2YgY29kZSBh bmQgc29tZSBub24tdHJpdmlhbCB0ZXN0aW5nLgpTbyBub3QgZG9uZSByaWdodCBub3cuCgo0LiBT dXBwb3J0IGVkZ2UgcGF0dGVybnMgaW4gYW55IGRpcmVjdGlvbjogU3VjaCBlZGdlIHBhdHRlcm5z IHNhdGlzZnkgZWRnZXMgaW4KZWl0aGVyIGRpcmVjdGlvbi4KCjUuIElmIHRoZXJlIGFyZSBtdWx0 aXBsZSBmb3JlaWduIGtleXMgb24gYW4gZWRnZSB0YWJsZSwgdGhlIGxhc3Qgb25lIHRoYXQgYXBw ZWFycwppbiB0aGUgbGlzdCByZXR1cm5lZCBieSBSZWxhdGlvbkdldEZLZXlMaXN0KCkgaXMgdXNl ZCB0byBjcmVhdGUgYSB2ZXJ0ZXgKcmVmZXJlbmNlIGZyb20gdGhhdCBlZGdlLiBUaGlzIG1heSBs ZWFkIHRvIHdyb25nIGVkZ2UtdmVydGV4IGxpbmthZ2UuIFJlbWVtYmVyCnRoZSBjb3JyZWN0IG9u ZSBpbnN0ZWFkLgoKQWRkaXRpb25hbCBjaGFuZ2VzCjEuIFRlc3QgZm9yIGEgam9pbiBiZXR3ZWVu IEdSQVBIX1RBQkxFIGFuZCBhIHJlZ3VsYXIgdGFibGUuCjIuIENoYW5nZWQgYSBmZXcgbG9vcHMg b3ZlciBsaXN0cyB0byB1c2UgZm9yZWFjaF9ub2RlIHJlZHVjaW5nIGFuZCBzaW1wbGlmeWluZwpj b2RlIGEgYml0LgozLiBJbXByb3ZlZCBjb21tZW50cy4KCkF1dGhvcjogQXNodXRvc2ggQmFwYXQK UmVwb3J0ZWQgQnk6IEFqYXkgUGFsLCBKdW53YW5nIFpob3UKLS0tCiBzcmMvYmFja2VuZC9jb21t YW5kcy9wcm9wZ3JhcGhjbWRzLmMgICAgICAgICAgfCAgMTIgKy0KIHNyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9jbGF1c2UuYyAgICAgICAgICAgICB8ICAzMCArKystCiBzcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCAgIDUgKwogc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX2dyYXBodGFibGUuYyAgICAgICAgIHwgIDQzICsrKy0tCiBzcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfcmVsYXRpb24uYyAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvcmV3cml0 ZS9yZXdyaXRlR3JhcGhUYWJsZS5jICAgICAgIHwgMTQ4ICsrKysrKysrKystLS0tLS0tLQogc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9p bmNsdWRlL3BhcnNlci9wYXJzZV9ncmFwaHRhYmxlLmggICAgICAgICB8ICAxMSArLQogc3JjL2lu Y2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCAgICAgICAgICAgICAgIHwgICA1ICsKIC4uLi9leHBl Y3RlZC9jcmVhdGVfcHJvcGVydHlfZ3JhcGgub3V0ICAgICAgICB8ICAgNCArLQogc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ncmFwaF90YWJsZS5vdXQgICAgIHwgIDgxICsrKysrKysrKy0KIHNy Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2dyYXBoX3RhYmxlLnNxbCAgICAgICAgICB8ICA0NSArKysrKysK IDEyIGZpbGVzIGNoYW5nZWQsIDI4NCBpbnNlcnRpb25zKCspLCAxMDcgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJvcGdyYXBoY21kcy5jIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvcHJvcGdyYXBoY21kcy5jCmluZGV4IDg0MzBiZmRhN2I3Li5iZjMzM2Rk MmRjMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJvcGdyYXBoY21kcy5jCisr KyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Byb3BncmFwaGNtZHMuYwpAQCAtMzc3LDE4ICszNzcs MTYgQEAgcHJvcGdyYXBoX2VkZ2VfZ2V0X3JlZl9rZXlzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29u c3QgTGlzdCAqa2V5Y29scywgY29uc3QgTGlzdAogCX0KIAllbHNlCiAJewotCQlMaXN0CSAgICpm a2V5czsKLQkJTGlzdENlbGwgICAqbGM7CiAJCWludAkJCWNvdW50ID0gMDsKIAkJRm9yZWlnbktl eUNhY2hlSW5mbyAqZmsgPSBOVUxMOwogCi0JCWZrZXlzID0gUmVsYXRpb25HZXRGS2V5TGlzdChl ZGdlX3JlbCk7Ci0JCWZvcmVhY2gobGMsIGZrZXlzKQorCQlmb3JlYWNoX25vZGUoRm9yZWlnbktl eUNhY2hlSW5mbywgdG1wLCBSZWxhdGlvbkdldEZLZXlMaXN0KGVkZ2VfcmVsKSkKIAkJewotCQkJ ZmsgPSBsZmlyc3Rfbm9kZShGb3JlaWduS2V5Q2FjaGVJbmZvLCBsYyk7Ci0KLQkJCWlmIChmay0+ Y29uZnJlbGlkID09IFJlbGF0aW9uR2V0UmVsaWQocmVmX3JlbCkpCisJCQlpZiAodG1wLT5jb25m cmVsaWQgPT0gUmVsYXRpb25HZXRSZWxpZChyZWZfcmVsKSkKKwkJCXsKKwkJCQlmayA9IHRtcDsK IAkJCQljb3VudCsrOworCQkJfQogCQl9CiAKIAkJaWYgKGNvdW50ID09IDApCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfY2xhdXNlLmMKaW5kZXggMDRiZjU2NDdmOTAuLjBhZTBlODFmMDgxIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNlLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2NsYXVzZS5jCkBAIC05MTUsNiArOTE1LDcgQEAgdHJhbnNmb3JtUmFuZ2VHcmFw aFRhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmFuZ2VHcmFwaFRhYmxlICpyZ3QpCiAJTGlzdAkg ICAqY29sbmFtZXMgPSBOSUw7CiAJTGlzdENlbGwgICAqbGM7CiAJaW50CQkJcmVzbm8gPSAwOwor CWJvb2wJCXNhdmVkX2hhc1N1YmxpbmtzOwogCiAJcmVsID0gcGFyc2VyT3BlblRhYmxlKHBzdGF0 ZSwgcmd0LT5ncmFwaF9uYW1lLCBBY2Nlc3NTaGFyZUxvY2spOwogCWlmIChyZWwtPnJkX3JlbC0+ cmVsa2luZCAhPSBSRUxLSU5EX1BST1BHUkFQSCkKQEAgLTkyOCwxMiArOTI5LDIxIEBAIHRyYW5z Zm9ybVJhbmdlR3JhcGhUYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIFJhbmdlR3JhcGhUYWJsZSAq cmd0KQogCiAJZ3BzdGF0ZS0+Z3JhcGhpZCA9IGdyYXBoaWQ7CiAKLQlwc3RhdGUtPnBfcG9zdF9j b2x1bW5yZWZfaG9vayA9IGdyYXBoX3RhYmxlX3Byb3BlcnR5X3JlZmVyZW5jZTsKLQlwc3RhdGUt PnBfcmVmX2hvb2tfc3RhdGUgPSBncHN0YXRlOworCS8qCisJICogVGhlIHN5bnRheCBkb2VzIG5v dCBhbGxvdyBuZXN0ZWQgR1JBUEhfVEFCTEUgYW5kIHRoaXMgZnVuY3Rpb24KKwkgKiBwcm9oaWJp dHMgc3VicXVlcnkgd2l0aGluIEdSQVBIX1RBQkxFLiBUaGVyZSBzaG91bGQgYmUgb25seSBvbmUK KwkgKiBHUkFQSF9UQUJMRSBiZWluZyB0cmFuc2Zvcm1lZCBhdCBhIHRpbWUuCisJICovCisJQXNz ZXJ0KCFwc3RhdGUtPnBfZ3JhcGhfdGFibGVfcHN0YXRlKTsKKwlwc3RhdGUtPnBfZ3JhcGhfdGFi bGVfcHN0YXRlID0gZ3BzdGF0ZTsKKwogCUFzc2VydCghcHN0YXRlLT5wX2xhdGVyYWxfYWN0aXZl KTsKIAlwc3RhdGUtPnBfbGF0ZXJhbF9hY3RpdmUgPSB0cnVlOwogCi0JZ3AgPSB0cmFuc2Zvcm1H cmFwaFBhdHRlcm4ocHN0YXRlLCBncHN0YXRlLCByZ3QtPmdyYXBoX3BhdHRlcm4pOworCXNhdmVk X2hhc1N1YmxpbmtzID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOworCXBzdGF0ZS0+cF9oYXNTdWJM aW5rcyA9IGZhbHNlOworCisJZ3AgPSB0cmFuc2Zvcm1HcmFwaFBhdHRlcm4ocHN0YXRlLCByZ3Qt PmdyYXBoX3BhdHRlcm4pOwogCiAJZm9yZWFjaChsYywgcmd0LT5jb2x1bW5zKQogCXsKQEAgLTk2 OCwxMCArOTc4LDIwIEBAIHRyYW5zZm9ybVJhbmdlR3JhcGhUYWJsZShQYXJzZVN0YXRlICpwc3Rh dGUsIFJhbmdlR3JhcGhUYWJsZSAqcmd0KQogCiAJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOwog Ci0JcHN0YXRlLT5wX3ByZV9jb2x1bW5yZWZfaG9vayA9IE5VTEw7Ci0JcHN0YXRlLT5wX3JlZl9o b29rX3N0YXRlID0gTlVMTDsKKwlwc3RhdGUtPnBfZ3JhcGhfdGFibGVfcHN0YXRlID0gTlVMTDsK IAlwc3RhdGUtPnBfbGF0ZXJhbF9hY3RpdmUgPSBmYWxzZTsKIAorCS8qCisJICogSWYgd2Ugc3Vw cG9ydCBzdWJxdWVyaWVzIHdpdGhpbiBHUkFQSF9UQUJMRSwgdGhvc2UgbmVlZCB0byBiZQorCSAq IHByb3BhZ2F0ZWQgdG8gdGhlIHF1ZXJpZXMgcmVzdWx0aW5nIGZyb20gcmV3cml0aW5nIGdyYXBo IHRhYmxlIFJURS4gV2UKKwkgKiBkb24ndCBkbyB0aGF0IHJpZ2h0IG5vdywgaGVuY2UgcHJvaGli aXQgaXQgZm9yIG5vdy4KKwkgKi8KKwlpZiAocHN0YXRlLT5wX2hhc1N1YkxpbmtzKQorCQllcmVw b3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwK KwkJCQkgZXJybXNnKCJzdWJxdWVyaWVzIHdpdGhpbiBHUkFQSF9UQUJMRSByZWZlcmVuY2UgYXJl IG5vdCBzdXBwb3J0ZWQiKSkpOworCXBzdGF0ZS0+cF9oYXNTdWJMaW5rcyA9IHNhdmVkX2hhc1N1 YmxpbmtzOworCiAJcmV0dXJuIGFkZFJhbmdlVGFibGVFbnRyeUZvckdyYXBoVGFibGUocHN0YXRl LCBncmFwaGlkLCBjYXN0Tm9kZShHcmFwaFBhdHRlcm4sIGdwKSwgY29sdW1ucywgY29sbmFtZXMs IHJndC0+YWxpYXMsIGZhbHNlLCB0cnVlKTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5k ZXggODQxNWQ2MzI0ODMuLjQwNDE1ZWEyZGI4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAg LTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfY29sbGF0ZS5oIgogI2luY2x1 ZGUgInBhcnNlci9wYXJzZV9leHByLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2Z1bmMuaCIK KyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5oIgogI2luY2x1ZGUgInBhcnNlci9w YXJzZV9vcGVyLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAjaW5jbHVk ZSAicGFyc2VyL3BhcnNlX3RhcmdldC5oIgpAQCAtODIzLDYgKzgyNCwxMCBAQCB0cmFuc2Zvcm1D b2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJCQlicmVhazsK IAl9CiAKKwkvKiBUcnkgaXQgYXMgYSBncmFwaCB0YWJsZSBwcm9wZXJ0eSByZWZlcmVuY2UuICov CisJaWYgKG5vZGUgPT0gTlVMTCkKKwkJbm9kZSA9IHRyYW5zZm9ybUdyYXBoVGFibGVQcm9wZXJ0 eVJlZihwc3RhdGUsIGNyZWYpOworCiAJLyoKIAkgKiBOb3cgZ2l2ZSB0aGUgUG9zdFBhcnNlQ29s dW1uUmVmSG9vaywgaWYgYW55LCBhIGNoYW5jZS4gIFdlIHBhc3MgdGhlCiAJICogdHJhbnNsYXRp b24tc28tZmFyIHNvIHRoYXQgaXQgY2FuIHRocm93IGFuIGVycm9yIGlmIGl0IHdpc2hlcyBpbiB0 aGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ncmFwaHRhYmxlLmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5jCmluZGV4IDFhOTcxNjg3MDI0Li5i MDg4MzA2YjViMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2dyYXBodGFi bGUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5jCkBAIC0zMywx MiArMzMsMTUgQEAKIAogCiAvKgotICogUmVzb2x2ZSBhIHByb3BlcnR5IHJlZmVyZW5jZS4KKyAq IFRyYW5zZm9ybSBhIHByb3BlcnR5IHJlZmVyZW5jZS4KICAqLwogTm9kZSAqCi1ncmFwaF90YWJs ZV9wcm9wZXJ0eV9yZWZlcmVuY2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYs IE5vZGUgKnZhcikKK3RyYW5zZm9ybUdyYXBoVGFibGVQcm9wZXJ0eVJlZihQYXJzZVN0YXRlICpw c3RhdGUsIENvbHVtblJlZiAqY3JlZikKIHsKLQlHcmFwaFRhYmxlUGFyc2VTdGF0ZSAqZ3BzdGF0 ZSA9IHBzdGF0ZS0+cF9yZWZfaG9va19zdGF0ZTsKKwlHcmFwaFRhYmxlUGFyc2VTdGF0ZSAqZ3Bz dGF0ZSA9IHBzdGF0ZS0+cF9ncmFwaF90YWJsZV9wc3RhdGU7CisKKwlpZiAoIWdwc3RhdGUpCisJ CXJldHVybiBOVUxMOwogCiAJaWYgKGxpc3RfbGVuZ3RoKGNyZWYtPmZpZWxkcykgPT0gMikKIAl7 CkBAIC0xNDQsOCArMTQ3LDEwIEBAIHRyYW5zZm9ybUxhYmVsRXhwcihHcmFwaFRhYmxlUGFyc2VT dGF0ZSAqZ3BzdGF0ZSwgTm9kZSAqbGFiZWxleHByKQogICogVHJhbnNmb3JtIGEgR3JhcGhFbGVt ZW50UGF0dGVybi4KICAqLwogc3RhdGljIE5vZGUgKgotdHJhbnNmb3JtR3JhcGhFbGVtZW50UGF0 dGVybihQYXJzZVN0YXRlICpwc3RhdGUsIEdyYXBoVGFibGVQYXJzZVN0YXRlICpncHN0YXRlLCBH cmFwaEVsZW1lbnRQYXR0ZXJuICpnZXApCit0cmFuc2Zvcm1HcmFwaEVsZW1lbnRQYXR0ZXJuKFBh cnNlU3RhdGUgKnBzdGF0ZSwgR3JhcGhFbGVtZW50UGF0dGVybiAqZ2VwKQogeworCUdyYXBoVGFi bGVQYXJzZVN0YXRlICpncHN0YXRlID0gcHN0YXRlLT5wX2dyYXBoX3RhYmxlX3BzdGF0ZTsKKwog CWlmIChnZXAtPnZhcmlhYmxlKQogCQlncHN0YXRlLT52YXJpYWJsZXMgPSBsYXBwZW5kKGdwc3Rh dGUtPnZhcmlhYmxlcywgbWFrZVN0cmluZyhwc3RyZHVwKGdlcC0+dmFyaWFibGUpKSk7CiAKQEAg LTE2MSwxNyArMTY2LDEzIEBAIHRyYW5zZm9ybUdyYXBoRWxlbWVudFBhdHRlcm4oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBHcmFwaFRhYmxlUGFyc2VTdGF0ZSAqZ3BzdGF0ZSwKICAqIFRyYW5zZm9ybSBh IHBhdGggdGVybSAobGlzdCBvZiBHcmFwaEVsZW1lbnRQYXR0ZXJuJ3MpLgogICovCiBzdGF0aWMg Tm9kZSAqCi10cmFuc2Zvcm1QYXRoVGVybShQYXJzZVN0YXRlICpwc3RhdGUsIEdyYXBoVGFibGVQ YXJzZVN0YXRlICpncHN0YXRlLCBMaXN0ICpwYXRoX3Rlcm0pCit0cmFuc2Zvcm1QYXRoVGVybShQ YXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnBhdGhfdGVybSkKIHsKIAlMaXN0CSAgICpyZXN1bHQg PSBOSUw7Ci0JTGlzdENlbGwgICAqbGM7Ci0KLQlmb3JlYWNoKGxjLCBwYXRoX3Rlcm0pCi0Jewot CQlOb2RlCSAgICpuID0gdHJhbnNmb3JtR3JhcGhFbGVtZW50UGF0dGVybihwc3RhdGUsIGdwc3Rh dGUsIGxmaXJzdF9ub2RlKEdyYXBoRWxlbWVudFBhdHRlcm4sIGxjKSk7CiAKLQkJcmVzdWx0ID0g bGFwcGVuZChyZXN1bHQsIG4pOwotCX0KKwlmb3JlYWNoX25vZGUoR3JhcGhFbGVtZW50UGF0dGVy biwgZ2VwLCBwYXRoX3Rlcm0pCisJCXJlc3VsdCA9IGxhcHBlbmQocmVzdWx0LAorCQkJCQkJIHRy YW5zZm9ybUdyYXBoRWxlbWVudFBhdHRlcm4ocHN0YXRlLCBnZXApKTsKIAogCXJldHVybiAoTm9k ZSAqKSByZXN1bHQ7CiB9CkBAIC0xODAsMTcgKzE4MSwxMiBAQCB0cmFuc2Zvcm1QYXRoVGVybShQ YXJzZVN0YXRlICpwc3RhdGUsIEdyYXBoVGFibGVQYXJzZVN0YXRlICpncHN0YXRlLCBMaXN0ICpw YXRoXwogICogVHJhbnNmb3JtIGEgcGF0aCBwYXR0ZXJuIGxpc3QgKGxpc3Qgb2YgcGF0aCB0ZXJt cykuCiAgKi8KIHN0YXRpYyBOb2RlICoKLXRyYW5zZm9ybVBhdGhQYXR0ZXJuTGlzdChQYXJzZVN0 YXRlICpwc3RhdGUsIEdyYXBoVGFibGVQYXJzZVN0YXRlICpncHN0YXRlLCBMaXN0ICpwYXRoX3Bh dHRlcm4pCit0cmFuc2Zvcm1QYXRoUGF0dGVybkxpc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0 ICpwYXRoX3BhdHRlcm4pCiB7CiAJTGlzdAkgICAqcmVzdWx0ID0gTklMOwotCUxpc3RDZWxsICAg KmxjOwogCi0JZm9yZWFjaChsYywgcGF0aF9wYXR0ZXJuKQotCXsKLQkJTm9kZQkgICAqbiA9IHRy YW5zZm9ybVBhdGhUZXJtKHBzdGF0ZSwgZ3BzdGF0ZSwgbGZpcnN0KGxjKSk7Ci0KLQkJcmVzdWx0 ID0gbGFwcGVuZChyZXN1bHQsIG4pOwotCX0KKwlmb3JlYWNoX25vZGUoTGlzdCwgcGF0aF90ZXJt LCBwYXRoX3BhdHRlcm4pCisJCXJlc3VsdCA9IGxhcHBlbmQocmVzdWx0LCB0cmFuc2Zvcm1QYXRo VGVybShwc3RhdGUsIHBhdGhfdGVybSkpOwogCiAJcmV0dXJuIChOb2RlICopIHJlc3VsdDsKIH0K QEAgLTE5OSw5ICsxOTUsMTIgQEAgdHJhbnNmb3JtUGF0aFBhdHRlcm5MaXN0KFBhcnNlU3RhdGUg KnBzdGF0ZSwgR3JhcGhUYWJsZVBhcnNlU3RhdGUgKmdwc3RhdGUsIExpc3QKICAqIFRyYW5zZm9y bSBhIEdyYXBoUGF0dGVybi4KICAqLwogTm9kZSAqCi10cmFuc2Zvcm1HcmFwaFBhdHRlcm4oUGFy c2VTdGF0ZSAqcHN0YXRlLCBHcmFwaFRhYmxlUGFyc2VTdGF0ZSAqZ3BzdGF0ZSwgR3JhcGhQYXR0 ZXJuICpncmFwaF9wYXR0ZXJuKQordHJhbnNmb3JtR3JhcGhQYXR0ZXJuKFBhcnNlU3RhdGUgKnBz dGF0ZSwgR3JhcGhQYXR0ZXJuICpncmFwaF9wYXR0ZXJuKQogewotCWdyYXBoX3BhdHRlcm4tPnBh dGhfcGF0dGVybl9saXN0ID0gKExpc3QgKikgdHJhbnNmb3JtUGF0aFBhdHRlcm5MaXN0KHBzdGF0 ZSwgZ3BzdGF0ZSwgZ3JhcGhfcGF0dGVybi0+cGF0aF9wYXR0ZXJuX2xpc3QpOworCUxpc3QJICAg KnBhdGhfcGF0dGVybl9saXN0ID0gY2FzdE5vZGUoTGlzdCwKKwkJCQkJCQkJCQkJIHRyYW5zZm9y bVBhdGhQYXR0ZXJuTGlzdChwc3RhdGUsIGdyYXBoX3BhdHRlcm4tPnBhdGhfcGF0dGVybl9saXN0 KSk7CisKKwlncmFwaF9wYXR0ZXJuLT5wYXRoX3BhdHRlcm5fbGlzdCA9IHBhdGhfcGF0dGVybl9s aXN0OwogCWdyYXBoX3BhdHRlcm4tPndoZXJlQ2xhdXNlID0gdHJhbnNmb3JtRXhwcihwc3RhdGUs IGdyYXBoX3BhdHRlcm4tPndoZXJlQ2xhdXNlLCBFWFBSX0tJTkRfV0hFUkUpOwogCWFzc2lnbl9l eHByX2NvbGxhdGlvbnMocHN0YXRlLCBncmFwaF9wYXR0ZXJuLT53aGVyZUNsYXVzZSk7CiAKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKaW5kZXggODZmMjlhMWU1YzEuLjUyYjEyZDIyMjhl IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYworKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwpAQCAtMjE1NCw2ICsyMTU0LDcgQEAg YWRkUmFuZ2VUYWJsZUVudHJ5Rm9yR3JhcGhUYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsCiAJcnRl LT5ncmFwaF9wYXR0ZXJuID0gZ3JhcGhfcGF0dGVybjsKIAlydGUtPmdyYXBoX3RhYmxlX2NvbHVt bnMgPSBjb2x1bW5zOwogCXJ0ZS0+YWxpYXMgPSBhbGlhczsKKwlydGUtPnJlbGxvY2ttb2RlID0g QWNjZXNzU2hhcmVMb2NrOwogCiAJZXJlZiA9IGFsaWFzID8gY29weU9iamVjdChhbGlhcykgOiBt YWtlQWxpYXMocmVmbmFtZSwgTklMKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmV3cml0 ZS9yZXdyaXRlR3JhcGhUYWJsZS5jIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlR3JhcGhU YWJsZS5jCmluZGV4IDZlMmU2ZWQzOGI4Li4xZWE1YTVjYWViMSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcmV3cml0ZS9yZXdyaXRlR3JhcGhUYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL3Jld3Jp dGUvcmV3cml0ZUdyYXBoVGFibGUuYwpAQCAtNDEsMTIgKzQxLDExIEBACiAvKgogICogUmVwcmVz ZW50cyBvbmUgcGF0aCBmYWN0b3IgaW4gYSBwYXRoLgogICoKLSAqIE9uZSBwYXRoIGZhY3RvciBj b3JyZXNwb25kcyB0byBvbmUgZWxlbWVudCBwYXR0ZXJuIGluIGEgc2ltcGxlIHBhdGguCisgKiBJ biBhIG5vbi1jeWNsaWMgcGF0aCwgb25lIHBhdGggZmFjdG9yIGNvcnJlc3BvbmRzIHRvIG9uZSBl bGVtZW50IHBhdHRlcm4uCiAgKgogICogSW4gYSBjeWNsaWMgcGF0aCwgb25lIHBhdGggZmFjdG9y IG1heSBjb3JyZXNwb25kIHRvIG9uZSBvciBtb3JlIGVsZW1lbnQKLSAqIHBhdHRlcm5zIGFsbCBw b2ludGluZyB0byB0aGUgc2FtZSBncmFwaCBlbGVtZW50LiBUaGUgbWVtYmVycyBvZiBzdWNoIGEg cGF0aAotICogZmFjdG9yIGFyZSBhIGNvbWJpbmF0aW9uIG9mIGNvcnJlc3BvbmRpbmcgc3BlY2lm aWNhdGlvbnMgaW4gdGhlIGVsZW1lbnQKLSAqIHBhdHRlcm5zLgorICogcGF0dGVybnMgc2hhcmlu ZyB0aGUgc2FtZSB2YXJpYWJsZSBuYW1lLCB0aHVzIHBvaW50aW5nIHRvIHRoZSBzYW1lIGdyYXBo CisgKiBlbGVtZW50LgogICovCiBzdHJ1Y3QgcGF0aF9mYWN0b3IKIHsKQEAgLTY2LDE3ICs2NSwy MCBAQCBzdHJ1Y3QgcGF0aF9mYWN0b3IKICAqIFJlcHJlc2VudHMgb25lIHByb3BlcnR5IGdyYXBo IGVsZW1lbnQgKHZlcnRleCBvciBlZGdlKSBpbiB0aGUgcGF0aC4KICAqCiAgKiBMYWJlbCBleHBy ZXNzaW9uIGluIGFuIGVsZW1lbnQgcGF0dGVybiByZXNvbHZlcyBpbnRvIGEgc2V0IG9mIGVsZW1l bnRzLiBGb3IKLSAqIGVhY2ggb2YgdGhvc2UgZWxlbWVudHMgd2UgY3JlYXRlIG9uZSBncmFwaF9w YXRoX2VsZW1lbnQgb2JqZWN0LgorICogZWFjaCBvZiB0aG9zZSBlbGVtZW50cyB3ZSBjcmVhdGUg b25lIHBhdGhfZWxlbWVudCBvYmplY3QuCiAgKi8KIHN0cnVjdCBwYXRoX2VsZW1lbnQKIHsKKwkv KiBQYXRoIGZhY3RvciBmcm9tIHdoaWNoIHRoaXMgZWxlbWVudCBpcyBkZXJpdmVkLiAqLworCXN0 cnVjdCBwYXRoX2ZhY3RvciAqcGF0aF9mYWN0b3I7CiAJT2lkCQkJZWxlbW9pZDsKIAlPaWQJCQly ZWxvaWQ7CisJLyogU291cmNlIGFuZCBkZXN0aW5hdGlvbiB2ZXJ0ZXggZWxlbWVudHMgZm9yIGFu IGVkZ2UgZWxlbWVudC4gKi8KIAlPaWQJCQlzcmN2ZXJ0ZXhpZDsKIAlPaWQJCQlkZXN0dmVydGV4 aWQ7Ci0JTGlzdAkgICAqcXVhbF9leHByczsKLQkvKiBQYXRoIGZhY3RvciBmcm9tIHdoaWNoIHRo aXMgZWxlbWVudCBpcyBkZXJpdmVkLiAqLwotCXN0cnVjdCBwYXRoX2ZhY3RvciAqcGF0aF9mYWN0 b3I7CisJLyogU291cmNlIGFuZCBkZXN0aW5hdGlvbiBjb25kaXRpb25zIGZvciBhbiBlZGdlIGVs ZW1lbnQuICovCisJTGlzdAkgICAqc3JjX3F1YWxzOworCUxpc3QJICAgKmRlc3RfcXVhbHM7CiB9 OwogCiBzdGF0aWMgTm9kZSAqcmVwbGFjZV9wcm9wZXJ0eV9yZWZzKE9pZCBwcm9wZ3JhcGhpZCwg Tm9kZSAqbm9kZSwgY29uc3QgTGlzdCAqbWFwcGluZ3MpOwpAQCAtMTg3LDIzICsxODksMjIgQEAg Z2VuZXJhdGVfcXVlcmllc19mb3JfcGF0aF9wYXR0ZXJuKFJhbmdlVGJsRW50cnkgKnJ0ZSwgTGlz dCAqcGF0aF9wYXR0ZXJuKQogCS8qCiAJICogRm9yIGV2ZXJ5IGVsZW1lbnQgcGF0dGVybiBpbiB0 aGUgZ2l2ZW4gcGF0aCBwYXR0ZXJuIGNvbGxlY3QgYWxsIHRoZQogCSAqIGdyYXBoIGVsZW1lbnRz IHRoYXQgc2F0aXNmeSB0aGUgZWxlbWVudCBwYXR0ZXJuLgorCSAqCisJICogRWxlbWVudCBwYXR0 ZXJucyB3aXRoIHRoZSBzYW1lIG5hbWUgcmVwcmVzZW50IHRoZSBzYW1lIGVsZW1lbnQgYW5kCisJ ICogaGVuY2Ugc2FtZSBwYXRoIGZhY3Rvci4gVGhleSBkbyBub3QgYWRkIGEgbmV3IGdyYXBoIGVs ZW1lbnQgdG8gdGhlCisJICogcXVlcnkgYnV0IGFmZmVjdCB0aGUgbGlua3Mgb2YgYWRqYWNlbnQg ZWxlbWVudHMuIE1lcmdlIHN1Y2ggZWxlbWVudHMKKwkgKiBwYXR0ZXJucyBpbnRvIGEgc2luZ2xl IHBhdGggZmFjdG9yLgogCSAqLwogCWZvcmVhY2hfbm9kZShHcmFwaEVsZW1lbnRQYXR0ZXJuLCBn ZXAsIHBhdGhfcGF0dGVybikKIAl7CiAJCXN0cnVjdCBwYXRoX2ZhY3RvciAqcGYgPSBOVUxMOwog Ci0JCWlmIChnZXAtPmtpbmQgIT0gVkVSVEVYX1BBVFRFUk4gJiYKLQkJCWdlcC0+a2luZCAhPSBF REdFX1BBVFRFUk5fTEVGVCAmJiBnZXAtPmtpbmQgIT0gRURHRV9QQVRURVJOX1JJR0hUKQotCQkJ ZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIGVsZW1lbnQgcGF0dGVybiBraW5kOiAlcyIsIGdldF9n ZXBfa2luZF9uYW1lKGdlcC0+a2luZCkpOworCQlpZiAoZ2VwLT5raW5kICE9IFZFUlRFWF9QQVRU RVJOICYmICFJU19FREdFX1BBVFRFUk4oZ2VwLT5raW5kKSkKKwkJCWVsb2coRVJST1IsICJ1bnN1 cHBvcnRlZCBlbGVtZW50IHBhdHRlcm4ga2luZDogXCIlc1wiIiwgZ2V0X2dlcF9raW5kX25hbWUo Z2VwLT5raW5kKSk7CiAKIAkJaWYgKGdlcC0+cXVhbnRpZmllcikKIAkJCWVsb2coRVJST1IsICJl bGVtZW50IHBhdHRlcm4gcXVhbnRpZmllciBub3Qgc3VwcG9ydGVkIHlldCIpOwogCi0JCS8qCi0J CSAqIEVsZW1lbnQgcGF0dGVybnMgd2l0aCB0aGUgc2FtZSBuYW1lIHJlcHJlc2VudCB0aGUgc2Ft ZSBlbGVtZW50IGFuZAotCQkgKiBoZW5jZSBzYW1lIHBhdGggZmFjdG9yLiBUaGV5IGRvIG5vdCBh ZGQgYSBuZXcgZ3JhcGggZWxlbWVudCB0byB0aGUKLQkJICogcXVlcnkgYnV0IGFmZmVjdCB0aGUg bGlua3Mgb2YgYWRqYWNlbnQgZWxlbWVudHMuCi0JCSAqLwogCQlmb3JlYWNoX3B0cihzdHJ1Y3Qg cGF0aF9mYWN0b3IsIG90aGVyLCBwYXRoX2ZhY3RvcnMpCiAJCXsKIAkJCWlmIChnZXAtPnZhcmlh YmxlICYmIG90aGVyLT52YXJpYWJsZSAmJgpAQCAtMjI3LDEyICsyMjgsMTQgQEAgZ2VuZXJhdGVf cXVlcmllc19mb3JfcGF0aF9wYXR0ZXJuKFJhbmdlVGJsRW50cnkgKnJ0ZSwgTGlzdCAqcGF0aF9w YXR0ZXJuKQogCQkJCQlvdGhlci0+bGFiZWxleHByID0gZ2VwLT5sYWJlbGV4cHI7CiAJCQkJZWxz ZSBpZiAoZ2VwLT5sYWJlbGV4cHIgJiYgIWVxdWFsKG90aGVyLT5sYWJlbGV4cHIsIGdlcC0+bGFi ZWxleHByKSkKIAkJCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJLyogWFhYOiBVc2UgY29ycmVjdCBl cnJvciBjb2RlLiAqLwotCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJf VkFMVUUpLAotCQkJCQkJCSBlcnJtc2coImVsZW1lbnQgcGF0dGVybnMgd2l0aCBzYW1lIHZhcmlh YmxlIG5hbWUgXCIlc1wiIGJ1dCBkaWZmZXJlbnQgbGFiZWwgZXhwcmVzc2lvbnMiLAorCQkJCQkJ CShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCQkgZXJybXNn KCJlbGVtZW50IHBhdHRlcm5zIHdpdGggc2FtZSB2YXJpYWJsZSBuYW1lIFwiJXNcIiBidXQgZGlm ZmVyZW50IGxhYmVsIGV4cHJlc3Npb25zIGFyZSBub3Qgc3VwcG9ydGVkIiwKIAkJCQkJCQkJCWdl cC0+dmFyaWFibGUpKSk7CiAKLQkJCQkvKiBCb3RoIHNldHMgb2YgY29uZGl0aW9ucyBhcHBseSB0 byB0aGUgZWxlbWVudCBwYXR0ZXJuLiAqLworCQkJCS8qCisJCQkJICogQ29uZGl0aW9ucyBmcm9t IGJvdGggZWxlbWVudHMgcGF0dGVybnMgY29uc3RyYWluIHRoZSBncmFwaAorCQkJCSAqIGVsZW1l bnQuIENvbWJpbmUgYnkgQU5EaW5nIHRoZW0uCisJCQkJICovCiAJCQkJaWYgKCFvdGhlci0+d2hl cmVDbGF1c2UpCiAJCQkJCW90aGVyLT53aGVyZUNsYXVzZSA9IGdlcC0+d2hlcmVDbGF1c2U7CiAJ CQkJZWxzZSBpZiAoZ2VwLT53aGVyZUNsYXVzZSkKQEAgLTI1OSwxOSArMjYyLDI3IEBAIGdlbmVy YXRlX3F1ZXJpZXNfZm9yX3BhdGhfcGF0dGVybihSYW5nZVRibEVudHJ5ICpydGUsIExpc3QgKnBh dGhfcGF0dGVybikKIAkJfQogCiAJCS8qCi0JCSAqIFNldHVwIGFkamFjZW50IHBhdGggZmFjdG9y cy4gSWYgbXVsdGlwbGUgZWRnZSBwYXR0ZXJucyBzaGFyZSB0aGUKLQkJICogc2FtZSB2YXJpYWJs ZSBuYW1lLCB0aGV5IGNvbnN0YWluIHRoZSBhZGphY2VudCB2ZXJ0ZXggcGF0dGVybnMKLQkJICog c2luY2UgYW4gZWRnZSBjYW4gY29ubmVjdCBvbmx5IG9uZSBwYWlyIG9mIHZlcnRleGVzIGFuZCB0 aG9zZQotCQkgKiB2ZXJ0ZXhlcyBhbHNvIG5lZWQgdG8gcmVwZWF0ZWQgYWxvbmcgd2l0aCB0aGUg ZWRnZSAoYSB3YWxrKS4gVGhpcwotCQkgKiBtZWFucyB0aGF0IHdlIGhhdmUgdG8gY29hbGVzY2Ug dGhlIHZlcnRleCBwYXR0ZXJucyBhZGphY2VudCB0byBhCi0JCSAqIHJlcGVhdGVkIGVkZ2UgZXZl biB0aG91Z2ggdGhleSBoYXZlIGRpZmZlcmVudCB2YXJpYWJsZXMuICBFLmcuCi0JCSAqIChhKS1b Yl0tPihjKS1bYl08LShkKSBpbXBsaWVzIHRoYXQgKGEpIGFuZCAoZCkgcmVwcmVzZW50IHRoZSBz YW1lCisJCSAqIFNldHVwIGxpbmtzIHRvIHRoZSBwcmV2aW91cyBwYXRoIGZhY3Rvci4gSWYgdGhl IHByZXZpb3VzIHBhdGgKKwkJICogZmFjdG9yIGlzIGFuIGVkZ2UsIHRoaXMgcGF0aCBmYWN0b3Ig cmVwcmVzZW50cyBhbiBhZGphY2VudCB2ZXJ0ZXg7CisJCSAqIHNvdXJjZSB2ZXJ0ZXggZm9yIGFu IGVkZ2UgcG9pbnRpbmcgbGVmdCBvciBkZXN0aW5hdGlvbiB2ZXJ0ZXggZm9yCisJCSAqIGFuIGVk Z2UgcG9pbnRpbmcgcmlnaHQuIEVkZ2UgcG9pbnRpbmcgaW4gYW55IGRpcmVjdGlvbiBpcyB0cmVh dGVkCisJCSAqIHNpbWlsYXIgdG8gdGhhdCBwb2ludGluZyBpbiByaWdodCBkaXJlY3Rpb24gaGVy ZS4gV2hlbiBjb25zdHJ1Y3RpbmcKKwkJICogYSBxdWVyeSwgaW4gZ2VuZXJhdGVfcXVlcnlfZm9y X2dyYXBoX3BhdGgoKSB3ZSB3aWxsIHN3YXAgc291cmNlIGFuZAorCQkgKiBkZXN0aW5hdGlvbiBl bGVtZW50cyBpZiB0aGUgZWRnZSBlbGVtZW50IHR1cm5zIG91dCB0byBiZSBhbmQgZWRnZQorCQkg KiBwb2ludGluZyBpbiBsZWZ0IGRpcmVjdGlvbi4KKwkJICoKKwkJICogSWYgbXVsdGlwbGUgZWRn ZSBwYXR0ZXJucyBzaGFyZSB0aGUgc2FtZSB2YXJpYWJsZSBuYW1lLCB0aGV5CisJCSAqIGNvbnN0 YWluIHRoZSBhZGphY2VudCB2ZXJ0ZXggcGF0dGVybnMgc2luY2UgYW4gZWRnZSBjYW4gY29ubmVj dAorCQkgKiBvbmx5IG9uZSBwYWlyIG9mIHZlcnRleGVzLiBUaG9zZSB2ZXJ0ZXggcGF0dGVybnMg YWxzbyBuZWVkIHRvCisJCSAqIHJlcGVhdGVkIGFuZCBtZXJnZWQgYWxvbmcgd2l0aCB0aGUgcmVw ZWF0ZWQgZWRnZSAoYSB3YWxrIG9mIGdyYXBoKQorCQkgKiBldmVuIHRob3VnaCB0aGV5IGhhdmUg ZGlmZmVyZW50IHZhcmlhYmxlcy4gIEUuZy4KKwkJICogKGEpLVtiXS0+KGMpPC1bYl0tKGQpIGlt cGxpZXMgdGhhdCAoYSkgYW5kIChkKSByZXByZXNlbnQgdGhlIHNhbWUKIAkJICogdmVydGV4IGVs ZW1lbnQgcGF0dGVybi4gVGhpcyBpcyBzbGlnaGx5IGhhcmRlciB0byBpbXBsZW1lbnQgYW5kCiAJ CSAqIHByb2JhYmx5IGxlc3MgdXNlZnVsLiBIZW5jZSBub3Qgc3VwcG9ydGVkIGZvciBub3cuCiAJ CSAqLwogCQlpZiAocHJldl9wZikKIAkJewotCQkJaWYgKHByZXZfcGYtPmtpbmQgPT0gRURHRV9Q QVRURVJOX1JJR0hUKQorCQkJaWYgKHByZXZfcGYtPmtpbmQgPT0gRURHRV9QQVRURVJOX1JJR0hU IHx8IHByZXZfcGYtPmtpbmQgPT0gRURHRV9QQVRURVJOX0FOWSkKIAkJCXsKIAkJCQlBc3NlcnQo IUlTX0VER0VfUEFUVEVSTihwZi0+a2luZCkpOwogCQkJCWlmIChwcmV2X3BmLT5kZXN0X3BmICYm IHByZXZfcGYtPmRlc3RfcGYgIT0gcGYpCkBAIC0yODUsMTMgKzI5Niw4IEBAIGdlbmVyYXRlX3F1 ZXJpZXNfZm9yX3BhdGhfcGF0dGVybihSYW5nZVRibEVudHJ5ICpydGUsIExpc3QgKnBhdGhfcGF0 dGVybikKIAkJCQkJZWxvZyhFUlJPUiwgIkFuIGVkZ2UgY2FuIG5vdCBjb25uZWN0IG1vcmUgdGhh biB0d28gdmVydGV4ZXMgZXZlbiBpbiBhIGN5Y2xpYyBwYXR0ZXJuLiIpOwogCQkJCXByZXZfcGYt PnNyY19wZiA9IHBmOwogCQkJfQotCQkJZWxzZSBpZiAocHJldl9wZi0+a2luZCA9PSBFREdFX1BB VFRFUk5fQU5ZKQotCQkJewotCQkJCS8qIFdlIGRvbid0IHN1cHBvcnQgdW5kaXJlY3RlZCBlZGdl cyB5ZXQuICovCi0JCQkJQXNzZXJ0KGZhbHNlKTsKLQkJCX0KIAotCQkJaWYgKHBmLT5raW5kID09 IEVER0VfUEFUVEVSTl9SSUdIVCkKKwkJCWlmIChwZi0+a2luZCA9PSBFREdFX1BBVFRFUk5fUklH SFQgfHwgcGYtPmtpbmQgPT0gRURHRV9QQVRURVJOX0FOWSkKIAkJCXsKIAkJCQlBc3NlcnQoIUlT X0VER0VfUEFUVEVSTihwcmV2X3BmLT5raW5kKSk7CiAJCQkJaWYgKHBmLT5zcmNfcGYgJiYgcGYt PnNyY19wZiAhPSBwcmV2X3BmKQpAQCAtMzA1LDExICszMTEsNiBAQCBnZW5lcmF0ZV9xdWVyaWVz X2Zvcl9wYXRoX3BhdHRlcm4oUmFuZ2VUYmxFbnRyeSAqcnRlLCBMaXN0ICpwYXRoX3BhdHRlcm4p CiAJCQkJCWVsb2coRVJST1IsICJBbiBlZGdlIGNhbiBub3QgY29ubmVjdCBtb3JlIHRoYW4gdHdv IHZlcnRleGVzIGV2ZW4gaW4gYSBjeWNsaWMgcGF0dGVybi4iKTsKIAkJCQlwZi0+ZGVzdF9wZiA9 IHByZXZfcGY7CiAJCQl9Ci0JCQllbHNlIGlmIChwZi0+a2luZCA9PSBFREdFX1BBVFRFUk5fQU5Z KQotCQkJewotCQkJCS8qIFdlIGRvbid0IHN1cHBvcnQgdW5kaXJlY3RlZCBlZGdlcyB5ZXQuICov Ci0JCQkJQXNzZXJ0KGZhbHNlKTsKLQkJCX0KIAkJfQogCiAJCXByZXZfcGYgPSBwZjsKQEAgLTM4 OSwzMSArMzkwLDYyIEBAIGdlbmVyYXRlX3F1ZXJ5X2Zvcl9ncmFwaF9wYXRoKFJhbmdlVGJsRW50 cnkgKnJ0ZSwgTGlzdCAqZ3JhcGhfcGF0aCkKIAkJUmVsYXRpb24JcmVsOwogCQlQYXJzZU5hbWVz cGFjZUl0ZW0gKnBuaTsKIAotCQlBc3NlcnQocGYtPmtpbmQgPT0gVkVSVEVYX1BBVFRFUk4gfHwK LQkJCSAgIHBmLT5raW5kID09IEVER0VfUEFUVEVSTl9MRUZUIHx8IHBmLT5raW5kID09IEVER0Vf UEFUVEVSTl9SSUdIVCk7CisJCUFzc2VydChwZi0+a2luZCA9PSBWRVJURVhfUEFUVEVSTiB8fCBJ U19FREdFX1BBVFRFUk4ocGYtPmtpbmQpKTsKIAotCQlpZiAocGYtPmtpbmQgPT0gRURHRV9QQVRU RVJOX0xFRlQgfHwgcGYtPmtpbmQgPT0gRURHRV9QQVRURVJOX1JJR0hUKQorCQkvKiBBZGQgY29u ZGl0aW9ucyByZXByZXNlbnRpbmcgZWRnZSBjb25ubmVjdGlvbnMuICovCisJCWlmIChJU19FREdF X1BBVFRFUk4ocGYtPmtpbmQpKQogCQl7CiAJCQlzdHJ1Y3QgcGF0aF9lbGVtZW50ICpzcmNfcGU7 Ci0JCQlzdHJ1Y3QgcGF0aF9lbGVtZW50ICpkZXN0X2dlOworCQkJc3RydWN0IHBhdGhfZWxlbWVu dCAqZGVzdF9wZTsKKwkJCUxpc3QJICAgKnNyY19xdWFsczsKKwkJCUxpc3QJICAgKmRlc3RfcXVh bHM7CiAKIAkJCUFzc2VydChwZi0+c3JjX3BmICYmIHBmLT5kZXN0X3BmKTsKIAkJCXNyY19wZSA9 IGxpc3RfbnRoKGdyYXBoX3BhdGgsIHBmLT5zcmNfcGYtPmZhY3RvcnBvcyk7Ci0JCQlkZXN0X2dl ID0gbGlzdF9udGgoZ3JhcGhfcGF0aCwgcGYtPmRlc3RfcGYtPmZhY3RvcnBvcyk7CisJCQlkZXN0 X3BlID0gbGlzdF9udGgoZ3JhcGhfcGF0aCwgcGYtPmRlc3RfcGYtPmZhY3RvcnBvcyk7CiAKIAkJ CS8qIE1ha2Ugc3VyZSB0aGF0IHRoZSBsaW5rcyBvZiBhZGphY2VudCB2ZXJ0aWNlcyBhcmUgY29y cmVjdC4gKi8KIAkJCUFzc2VydChwZi0+c3JjX3BmID09IHNyY19wZS0+cGF0aF9mYWN0b3IgJiYK LQkJCQkgICBwZi0+ZGVzdF9wZiA9PSBkZXN0X2dlLT5wYXRoX2ZhY3Rvcik7CisJCQkJICAgcGYt PmRlc3RfcGYgPT0gZGVzdF9wZS0+cGF0aF9mYWN0b3IpOwogCiAJCQkvKgogCQkJICogSWYgdGhl IGdpdmVuIGVkZ2UgZWxlbWVudCBkb2VzIG5vdCBjb25uZWN0IHRoZSBhZGphY2VudCB2ZXJ0ZXgK IAkJCSAqIGVsZW1lbnRzIGluIHRoaXMgcGF0aCwgdGhlIHBhdGggaXMgYnJva2VuLiBBYmFuZG9u IHRoaXMgcGF0aCBhcwogCQkJICogaXQgd29uJ3QgcmV0dXJuIGFueSByb3dzLgorCQkJICoKKwkJ CSAqIEZvciBhbiBlZGdlIGVsZW1lbnQgcGF0dGVybiBwb2ludGluZyBpbiBhbnkgZGlyZWN0aW9u LCB0cnkKKwkJCSAqIHN3YXBwaW5nIHRoZSBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIHZlcnRleCBl bGVtZW50cy4KIAkJCSAqLwogCQkJaWYgKHNyY19wZS0+ZWxlbW9pZCAhPSBwZS0+c3JjdmVydGV4 aWQgfHwKLQkJCQlkZXN0X2dlLT5lbGVtb2lkICE9IHBlLT5kZXN0dmVydGV4aWQpCi0JCQkJcmV0 dXJuIE5VTEw7CisJCQkJZGVzdF9wZS0+ZWxlbW9pZCAhPSBwZS0+ZGVzdHZlcnRleGlkKQorCQkJ eworCQkJCWlmIChwZi0+a2luZCA9PSBFREdFX1BBVFRFUk5fQU5ZICYmCisJCQkJCWRlc3RfcGUt PmVsZW1vaWQgPT0gcGUtPnNyY3ZlcnRleGlkICYmCisJCQkJCXNyY19wZS0+ZWxlbW9pZCA9PSBw ZS0+ZGVzdHZlcnRleGlkKQorCQkJCXsKKwkJCQkJZGVzdF9xdWFscyA9IGNvcHlPYmplY3QocGUt PnNyY19xdWFscyk7CisJCQkJCXNyY19xdWFscyA9IGNvcHlPYmplY3QocGUtPmRlc3RfcXVhbHMp OworCisJCQkJCS8qIFN3YXAgdGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gdmFybm9zIGluIHRo ZSBxdWFscy4gKi8KKwkJCQkJQ2hhbmdlVmFyTm9kZXMoKE5vZGUgKikgZGVzdF9xdWFscywgcGUt PnBhdGhfZmFjdG9yLT5zcmNfcGYtPmZhY3RvcnBvcyArIDEsCisJCQkJCQkJCSAgIHBlLT5wYXRo X2ZhY3Rvci0+ZGVzdF9wZi0+ZmFjdG9ycG9zICsgMSwgMCk7CisJCQkJCUNoYW5nZVZhck5vZGVz KChOb2RlICopIHNyY19xdWFscywgcGUtPnBhdGhfZmFjdG9yLT5kZXN0X3BmLT5mYWN0b3Jwb3Mg KyAxLAorCQkJCQkJCQkgICBwZS0+cGF0aF9mYWN0b3ItPnNyY19wZi0+ZmFjdG9ycG9zICsgMSwg MCk7CisJCQkJfQorCQkJCWVsc2UKKwkJCQkJcmV0dXJuIE5VTEw7CisJCQl9CisJCQllbHNlCisJ CQl7CisJCQkJc3JjX3F1YWxzID0gY29weU9iamVjdChwZS0+c3JjX3F1YWxzKTsKKwkJCQlkZXN0 X3F1YWxzID0gY29weU9iamVjdChwZS0+ZGVzdF9xdWFscyk7CisJCQl9CisKKwkJCXF1YWxfZXhw cnMgPSBsaXN0X2NvbmNhdChxdWFsX2V4cHJzLCBzcmNfcXVhbHMpOworCQkJcXVhbF9leHBycyA9 IGxpc3RfY29uY2F0KHF1YWxfZXhwcnMsIGRlc3RfcXVhbHMpOwogCQl9CisJCWVsc2UKKwkJCUFz c2VydCghcGUtPnNyY19xdWFscyAmJiAhcGUtPmRlc3RfcXVhbHMpOwogCiAJCS8qIENyZWF0ZSBS YW5nZVRibEVudHJ5IGZvciB0aGlzIGVsZW1lbnQgdGFibGUuICovCiAJCXJlbCA9IHRhYmxlX29w ZW4ocGUtPnJlbG9pZCwgQWNjZXNzU2hhcmVMb2NrKTsKQEAgLTQ0Miw3ICs0NzQsNiBAQCBnZW5l cmF0ZV9xdWVyeV9mb3JfZ3JhcGhfcGF0aChSYW5nZVRibEVudHJ5ICpydGUsIExpc3QgKmdyYXBo X3BhdGgpCiAKIAkJCXF1YWxfZXhwcnMgPSBsYXBwZW5kKHF1YWxfZXhwcnMsIHRyKTsKIAkJfQot CQlxdWFsX2V4cHJzID0gbGlzdF9jb25jYXQocXVhbF9leHBycywgcGUtPnF1YWxfZXhwcnMpOwog CX0KIAogCWlmIChydGUtPmdyYXBoX3BhdHRlcm4tPndoZXJlQ2xhdXNlKQpAQCAtNDU3LDcgKzQ4 OCw3IEBAIGdlbmVyYXRlX3F1ZXJ5X2Zvcl9ncmFwaF9wYXRoKFJhbmdlVGJsRW50cnkgKnJ0ZSwg TGlzdCAqZ3JhcGhfcGF0aCkKIAlwYXRoX3F1ZXJ5LT5qb2ludHJlZSA9IG1ha2VGcm9tRXhwcihm cm9tbGlzdCwKIAkJCQkJCQkJCQkoTm9kZSAqKSBtYWtlQm9vbEV4cHIoQU5EX0VYUFIsIHF1YWxf ZXhwcnMsIC0xKSk7CiAKLQkvKiBFYWNoIHBhdGggcXVlcnkgcHJvamVjdHMgdGhlIGNvbHVtbnMg c3BlY2lmaWVkIGluIHRoZSBHUkFIX1RBQkxFIGNsYXVzZSAqLworCS8qIEVhY2ggcGF0aCBxdWVy eSBwcm9qZWN0cyB0aGUgQ09MVU1OUyBzcGVjaWZpZWQgaW4gdGhlIEdSQUhfVEFCTEUuICovCiAJ cGF0aF9xdWVyeS0+dGFyZ2V0TGlzdCA9IGNhc3ROb2RlKExpc3QsCiAJCQkJCQkJCQkgIHJlcGxh Y2VfcHJvcGVydHlfcmVmcyhydGUtPnJlbGlkLAogCQkJCQkJCQkJCQkJCQkJKE5vZGUgKikgcnRl LT5ncmFwaF90YWJsZV9jb2x1bW5zLApAQCAtNjY3LDcgKzY5OCw2IEBAIGNyZWF0ZV9ncGVfZm9y X2VsZW1lbnQoc3RydWN0IHBhdGhfZmFjdG9yICpwZiwgT2lkIGVsZW1vaWQpCiAJcGUtPnBhdGhf ZmFjdG9yID0gcGY7CiAJcGUtPmVsZW1vaWQgPSBlbGVtb2lkOwogCXBlLT5yZWxvaWQgPSBwZ2Vm b3JtLT5wZ2VyZWxpZDsKLQlwZS0+cXVhbF9leHBycyA9IE5JTDsKIAogCS8qCiAJICogV2hlbiB0 aGUgcGF0aCBjb250YWluaW5nIHRoaXMgZWxlbWVudCB3aWxsIGJlIGNvbnZlcnRlZCBpbnRvIGEg cXVlcnkKQEAgLTY4MSw4ICs3MTEsNiBAQCBjcmVhdGVfZ3BlX2Zvcl9lbGVtZW50KHN0cnVjdCBw YXRoX2ZhY3RvciAqcGYsIE9pZCBlbGVtb2lkKQogCSAqLwogCWlmIChJU19FREdFX1BBVFRFUk4o cGYtPmtpbmQpKQogCXsKLQkJTGlzdAkgICAqZWRnZV9xdWFsOwotCiAJCXBlLT5zcmN2ZXJ0ZXhp ZCA9IHBnZWZvcm0tPnBnZXNyY3ZlcnRleGlkOwogCQlwZS0+ZGVzdHZlcnRleGlkID0gcGdlZm9y bS0+cGdlZGVzdHZlcnRleGlkOwogCQlBc3NlcnQocGYtPnNyY19wZiAmJiBwZi0+ZGVzdF9wZik7 CkBAIC03MDAsMTQgKzcyOCwxMiBAQCBjcmVhdGVfZ3BlX2Zvcl9lbGVtZW50KHN0cnVjdCBwYXRo X2ZhY3RvciAqcGYsIE9pZCBlbGVtb2lkKQogCQkgKiBudW1iZXIgb2YgcGF0aHMgdGhpcyBlbGVt ZW50IGFwcGVhcnMgaW4sIGZldGNoaW5nIHRoZSBjYXRhbG9nIGVudHJ5CiAJCSAqIGVhY2ggdGlt ZS4KIAkJICovCi0JCWVkZ2VfcXVhbCA9IGJ1aWxkX2VkZ2VfdmVydGV4X2xpbmtfcXVhbHMoZWxl dHVwLCBwZi0+ZmFjdG9ycG9zICsgMSwgcGYtPnNyY19wZi0+ZmFjdG9ycG9zICsgMSwKLQkJCQkJ CQkJCQkJCSBBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXNyY2tleSwKLQkJCQkJCQkJCQkJ CSBBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXNyY3JlZik7Ci0JCXBlLT5xdWFsX2V4cHJz ID0gbGlzdF9jb25jYXQocGUtPnF1YWxfZXhwcnMsIGVkZ2VfcXVhbCk7Ci0JCWVkZ2VfcXVhbCA9 IGJ1aWxkX2VkZ2VfdmVydGV4X2xpbmtfcXVhbHMoZWxldHVwLCBwZi0+ZmFjdG9ycG9zICsgMSwg cGYtPmRlc3RfcGYtPmZhY3RvcnBvcyArIDEsCi0JCQkJCQkJCQkJCQkgQW51bV9wZ19wcm9wZ3Jh cGhfZWxlbWVudF9wZ2VkZXN0a2V5LAotCQkJCQkJCQkJCQkJIEFudW1fcGdfcHJvcGdyYXBoX2Vs ZW1lbnRfcGdlZGVzdHJlZik7Ci0JCXBlLT5xdWFsX2V4cHJzID0gbGlzdF9jb25jYXQocGUtPnF1 YWxfZXhwcnMsIGVkZ2VfcXVhbCk7CisJCXBlLT5zcmNfcXVhbHMgPSBidWlsZF9lZGdlX3ZlcnRl eF9saW5rX3F1YWxzKGVsZXR1cCwgcGYtPmZhY3RvcnBvcyArIDEsIHBmLT5zcmNfcGYtPmZhY3Rv cnBvcyArIDEsCisJCQkJCQkJCQkJCQkJIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlc3Jj a2V5LAorCQkJCQkJCQkJCQkJCSBBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXNyY3JlZik7 CisJCXBlLT5kZXN0X3F1YWxzID0gYnVpbGRfZWRnZV92ZXJ0ZXhfbGlua19xdWFscyhlbGV0dXAs IHBmLT5mYWN0b3Jwb3MgKyAxLCBwZi0+ZGVzdF9wZi0+ZmFjdG9ycG9zICsgMSwKKwkJCQkJCQkJ CQkJCQkgIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlZGVzdGtleSwKKwkJCQkJCQkJCQkJ CQkgIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlZGVzdHJlZik7CiAJfQogCiAJUmVsZWFz ZVN5c0NhY2hlKGVsZXR1cCk7CkBAIC03MjcsNyArNzUzLDcgQEAgZ2V0X2dlcF9raW5kX25hbWUo R3JhcGhFbGVtZW50UGF0dGVybktpbmQgZ2Vwa2luZCkKIAkJY2FzZSBFREdFX1BBVFRFUk5fUklH SFQ6CiAJCQlyZXR1cm4gImVkZ2UgcG9pbnRpbmcgcmlnaHQiOwogCQljYXNlIEVER0VfUEFUVEVS Tl9BTlk6Ci0JCQlyZXR1cm4gInVuZGlyZWN0ZWQgZWRnZSI7CisJCQlyZXR1cm4gImVkZ2UgcG9p bnRpbmcgYW55IGRpcmVjdGlvbiI7CiAJCWNhc2UgUEFSRU5fRVhQUjoKIAkJCXJldHVybiAibmVz dGVkIHBhdGggcGF0dGVybiI7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGM1MTYyZmVk Y2QxLi4wYWUxZDE1YTFjZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDM5Nyw0ICs0Mzk3 LDEwIEBAIHR5cGVkZWYgc3RydWN0IERyb3BTdWJzY3JpcHRpb25TdG10CiAJRHJvcEJlaGF2aW9y IGJlaGF2aW9yOwkJLyogUkVTVFJJQ1Qgb3IgQ0FTQ0FERSBiZWhhdmlvciAqLwogfSBEcm9wU3Vi c2NyaXB0aW9uU3RtdDsKIAordHlwZWRlZiBzdHJ1Y3QgR3JhcGhUYWJsZVBhcnNlU3RhdGUKK3sK KwlPaWQJCQlncmFwaGlkOworCUxpc3QJICAgKnZhcmlhYmxlczsKK30gR3JhcGhUYWJsZVBhcnNl U3RhdGU7CisKICNlbmRpZgkJCQkJCQkvKiBQQVJTRU5PREVTX0ggKi8KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ncmFwaHRhYmxlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2VfZ3JhcGh0YWJsZS5oCmluZGV4IGFmMGY1NTBjZDJjLi40Y2VmZDVhY2Y5ZCAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2dyYXBodGFibGUuaAorKysgYi9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5oCkBAIC0xNCwxOCArMTQsMTEgQEAKICNpZm5k ZWYgUEFSU0VfR1JBUEhUQUJMRV9ICiAjZGVmaW5lIFBBUlNFX0dSQVBIVEFCTEVfSAogCi0jaW5j bHVkZSAibm9kZXMvcGFyc2Vub2Rlcy5oIgogI2luY2x1ZGUgIm5vZGVzL3BnX2xpc3QuaCIKICNp bmNsdWRlICJwYXJzZXIvcGFyc2Vfbm9kZS5oIgogCi10eXBlZGVmIHN0cnVjdCBHcmFwaFRhYmxl UGFyc2VTdGF0ZQotewotCU9pZAkJCWdyYXBoaWQ7Ci0JTGlzdAkgICAqdmFyaWFibGVzOwotfSBH cmFwaFRhYmxlUGFyc2VTdGF0ZTsKK2V4dGVybiBOb2RlICp0cmFuc2Zvcm1HcmFwaFRhYmxlUHJv cGVydHlSZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpOwogCi1leHRlcm4g Tm9kZSAqZ3JhcGhfdGFibGVfcHJvcGVydHlfcmVmZXJlbmNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwg Q29sdW1uUmVmICpjcmVmLCBOb2RlICp2YXIpOwotCi1leHRlcm4gTm9kZSAqdHJhbnNmb3JtR3Jh cGhQYXR0ZXJuKFBhcnNlU3RhdGUgKnBzdGF0ZSwgR3JhcGhUYWJsZVBhcnNlU3RhdGUgKmdwc3Rh dGUsIEdyYXBoUGF0dGVybiAqZ3JhcGhfcGF0dGVybik7CitleHRlcm4gTm9kZSAqdHJhbnNmb3Jt R3JhcGhQYXR0ZXJuKFBhcnNlU3RhdGUgKnBzdGF0ZSwgR3JhcGhQYXR0ZXJuICpncmFwaF9wYXR0 ZXJuKTsKIAogI2VuZGlmCQkJCQkJCS8qIFBBUlNFX0dSQVBIVEFCTEVfSCAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9w YXJzZV9ub2RlLmgKaW5kZXggZjFlNmYwMzVjZTYuLjM0ZTI3NTcxNmMwIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9w YXJzZV9ub2RlLmgKQEAgLTE5Myw2ICsxOTMsOSBAQCB0eXBlZGVmIE5vZGUgKigqQ29lcmNlUGFy YW1Ib29rKSAoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbSAqcGFyYW0sCiAgKiBwX3Jlc29sdmVf dW5rbm93bnM6IHJlc29sdmUgdW5rbm93bi10eXBlIFNFTEVDVCBvdXRwdXQgY29sdW1ucyBhcyB0 eXBlIFRFWFQKICAqICh0aGlzIGlzIHRydWUgYnkgZGVmYXVsdCkuCiAgKgorICogcF9ncmFwaF90 YWJsZV9wc3RhdGU6IE5hbWVzcGFjZSBmb3IgdGhlIEdSQVBIX1RBQkxFIHJlZmVyZW5jZSBiZWlu ZworICogdHJhbnNmb3JtZWQsIGlmIGFueS4KKyAqCiAgKiBwX2hhc0FnZ3MsIHBfaGFzV2luZG93 RnVuY3MsIGV0YzogdHJ1ZSBpZiB3ZSd2ZSBmb3VuZCBhbnkgb2YgdGhlIGluZGljYXRlZAogICog Y29uc3RydWN0cyBpbiB0aGUgcXVlcnkuCiAgKgpAQCAtMjM4LDYgKzI0MSw4IEBAIHN0cnVjdCBQ YXJzZVN0YXRlCiAJCQkJCQkJCQkgKiB0eXBlIHRleHQgKi8KIAogCVF1ZXJ5RW52aXJvbm1lbnQg KnBfcXVlcnlFbnY7CS8qIGN1cnIgZW52LCBpbmNsIHJlZnMgdG8gZW5jbG9zaW5nIGVudiAqLwor CUdyYXBoVGFibGVQYXJzZVN0YXRlICpwX2dyYXBoX3RhYmxlX3BzdGF0ZTsgLyogQ3VycmVudCBn cmFwaCB0YWJsZQorCQkJCQkJCQkJCQkJICogbmFtZXNwYWNlLCBpZiBhbnkgKi8KIAogCS8qIEZs YWdzIHRlbGxpbmcgYWJvdXQgdGhpbmdzIGZvdW5kIGluIHRoZSBxdWVyeTogKi8KIAlib29sCQlw X2hhc0FnZ3M7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9w cm9wZXJ0eV9ncmFwaC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9wcm9w ZXJ0eV9ncmFwaC5vdXQKaW5kZXggNDMzMTZmYmMwMjkuLjcwYzRhZmRhNTJjIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfcHJvcGVydHlfZ3JhcGgub3V0CkBA IC05Niw3ICs5Niw3IEBAIFNFTEVDVCBwZ19nZXRfcHJvcGdyYXBoZGVmKCdnNSc6OnJlZ2NsYXNz KTsKICAgICAgICAgIHQxMiBLRVkgKGIpIFBST1BFUlRJRVMgKGIpICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKICAgICAgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKICAgICAgRURHRSBUQUJMRVMgKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKLSAgICAgICAgIHQxMyBLRVkgKGMpIFNPVVJDRSBLRVkgKGUpIFJFRkVSRU5D RVMgdDExIChhKSBERVNUSU5BVElPTiBLRVkgKGUpIFJFRkVSRU5DRVMgdDEyIChiKSBQUk9QRVJU SUVTIChjLCBkLCBlKSsKKyAgICAgICAgIHQxMyBLRVkgKGMpIFNPVVJDRSBLRVkgKGQpIFJFRkVS RU5DRVMgdDExIChhKSBERVNUSU5BVElPTiBLRVkgKGUpIFJFRkVSRU5DRVMgdDEyIChiKSBQUk9Q RVJUSUVTIChjLCBkLCBlKSsKICAgICAgKQogKDEgcm93KQogCkBAIC0yNTUsNyArMjU1LDcgQEAg U0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfZWRnZV90YWJsZV9jb21wb25lbnRz IE9SREVSIEJZIHByb3BlcnR5X2dyYXAKICByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUyICAgICAgICAg ICAgICAgfCB0MSAgICAgICAgICAgICAgICAgfCBTT1VSQ0UgICAgICB8IGEgICAgICAgICAgICAg ICAgICAgICAgfCBhICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAxCiAg cmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0 ICAgICAgICAgICAgICAgICAgfCBlMiAgICAgICAgICAgICAgIHwgdDMgICAgICAgICAgICAgICAg IHwgREVTVElOQVRJT04gfCB4ICAgICAgICAgICAgICAgICAgICAgIHwgeCAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgMQogIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgZTIgICAg ICAgICAgICAgICB8IHQzICAgICAgICAgICAgICAgICB8IERFU1RJTkFUSU9OIHwgdCAgICAgICAg ICAgICAgICAgICAgICB8IHkgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg IDIKLSByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3Rz IHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMyAgICAgICAgICAgICAgfCB0MTEgICAgICAgICAg ICAgICAgfCBTT1VSQ0UgICAgICB8IGUgICAgICAgICAgICAgICAgICAgICAgfCBhICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAgICAgICAg ICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0 MTMgICAgICAgICAgICAgIHwgdDExICAgICAgICAgICAgICAgIHwgU09VUkNFICAgICAgfCBkICAg ICAgICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgMQogIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDEzICAgICAgICAgICAgICB8IHQxMiAgICAg ICAgICAgICAgICB8IERFU1RJTkFUSU9OIHwgZSAgICAgICAgICAgICAgICAgICAgICB8IGIgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKICgxMiByb3dzKQogCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3JhcGhfdGFibGUub3V0CmluZGV4IDg3YWIzZTMxYWY4Li4z Nzk2Mjk3Y2IwNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ncmFwaF90 YWJsZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ncmFwaF90YWJsZS5vdXQK QEAgLTM0OSw2ICszNDksMjUgQEAgc2VsZWN0IHNyYywgY29ubiwgZGVzdCwgbHByb3AxLCB2cHJv cDIsIHZwcm9wMSBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAoYSBpcwogIHYxMSB8IGUxMzIg fCB2MzEgIHwgdmwzX3Byb3AgfCAgICAgICAgfCAgIDIwMTAKICg0IHJvd3MpCiAKKy0tIGVkZ2Vz IGRpcmVjdGVkIGluIGJvdGggd2F5cyAtIHRvIGFuZCBmcm9tIHYyCitTRUxFQ1QgKiBGUk9NIEdS QVBIX1RBQkxFIChnMSBNQVRDSCAoc3JjIElTIHZsMiktW2Nvbm5dLShkZXN0KSBDT0xVTU5TIChz cmMudm5hbWUgQVMgc25hbWUsIGNvbm4uZW5hbWUgQVMgY25hbWUsIGRlc3Qudm5hbWUgQVMgZG5h bWUpKTsKKyBzbmFtZSB8IGNuYW1lIHwgZG5hbWUgCistLS0tLS0tKy0tLS0tLS0rLS0tLS0tLQor IHYyMSAgIHwgZTEyMiAgfCB2MTIKKyB2MjIgICB8IGUxMjEgIHwgdjExCisgdjIxICAgfCBlMjEx ICB8IHYxMgorIHYyMiAgIHwgZTIzMSAgfCB2MzIKKyg0IHJvd3MpCisKK1NFTEVDVCAqIEZST00g R1JBUEhfVEFCTEUgKGcxIE1BVENIIChzcmMgSVMgdmwyKS0oZGVzdCkgQ09MVU1OUyAoc3JjLnZu YW1lIEFTIHNuYW1lLCBkZXN0LnZuYW1lIEFTIGRuYW1lKSk7Cisgc25hbWUgfCBkbmFtZSAKKy0t LS0tLS0rLS0tLS0tLQorIHYyMSAgIHwgdjEyCisgdjIyICAgfCB2MTEKKyB2MjEgICB8IHYxMgor IHYyMiAgIHwgdjMyCisoNCByb3dzKQorCiAtLSBFcnJvcnMKIC0tIHZsMSBpcyBub3QgYXNzb2Np YXRlZCB3aXRoIHByb3BlcnR5IHZwcm9wMgogc2VsZWN0IHNyYywgc3JjX3Zwcm9wMiwgY29ubiwg ZGVzdCBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAoYSBpcyB2bDEpLVtiIGlzIGVsMV0tPihj IGlzIHZsMiB8IHZsMykgY29sdW1ucyAoYS52bmFtZSBhcyBzcmMsIGEudnByb3AyIGFzIHNyY192 cHJvcDIsIGIuZW5hbWUgYXMgY29ubiwgYy52bmFtZSBhcyBkZXN0KSk7CkBAIC00ODMsNyArNTAy LDcgQEAgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEgd2hlcmUgYS52cHJv cDEgYmV0d2VlbiAyMCBhbmQgMjAwMCktPihiIHcKIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUg KGcxIE1BVENIIChhIGlzIGwxKS1bYSBpcyBsMV0tPihiIGlzIGwxKSBjb2x1bW5zIChhLmVuYW1l IEFTIGFlbmFtZSwgYi5lbmFtZSBBUyBiZW5hbWUpKSBPUkRFUiBCWSAxLCAyOyAtLSBlcnJvcgog RVJST1I6ICBlbGVtZW50IHBhdHRlcm5zIHdpdGggc2FtZSB2YXJpYWJsZSBuYW1lICJhIiBidXQg ZGlmZmVyZW50IGVsZW1lbnQgcGF0dGVybiB0eXBlcwogU0VMRUNUICogRlJPTSBHUkFQSF9UQUJM RSAoZzEgTUFUQ0ggKGEgaXMgdmwxKS0+KGIpLT4oYSBpcyB2bDIpIFdIRVJFIGEudm5hbWUgPD4g Yi52bmFtZSBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYsIGIudm5hbWUgQVMgdGhyb3VnaCwgYS52 cHJvcDEgQVMgc2VsZl9wMSwgYi52cHJvcDEgQVMgdGhyb3VnaF9wMSkpIE9SREVSIEJZIHNlbGYs IHRocm91Z2g7ICAtLSBlcnJvcgotRVJST1I6ICBlbGVtZW50IHBhdHRlcm5zIHdpdGggc2FtZSB2 YXJpYWJsZSBuYW1lICJhIiBidXQgZGlmZmVyZW50IGxhYmVsIGV4cHJlc3Npb25zCitFUlJPUjog IGVsZW1lbnQgcGF0dGVybnMgd2l0aCBzYW1lIHZhcmlhYmxlIG5hbWUgImEiIGJ1dCBkaWZmZXJl bnQgbGFiZWwgZXhwcmVzc2lvbnMgYXJlIG5vdCBzdXBwb3J0ZWQKIFNFTEVDVCAqIEZST00gR1JB UEhfVEFCTEUgKGcxIE1BVENIIChhIGlzIHZsMSktPihiKS0+KGEpIENPTFVNTlMgKGEudm5hbWUg QVMgc2VsZiwgYi52bmFtZSBBUyB0aHJvdWdoLCBhLnZwcm9wMSBBUyBzZWxmX3AxLCBiLnZwcm9w MSBBUyB0aHJvdWdoX3AxKSkgT1JERVIgQlkgc2VsZiwgdGhyb3VnaDsKICBzZWxmIHwgdGhyb3Vn aCB8IHNlbGZfcDEgfCB0aHJvdWdoX3AxIAogLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tCkBAIC02MDQsNSArNjIzLDY1IEBAIFNFTEVDVCAqIEZST00gY3VzdG9tZXJzX3Vz X3JlZGFjdGVkOwogIHJlZGFjdGVkMQogKDEgcm93KQogCistLSBHUkFQSF9UQUJMRSBpbiBVREZz CitDUkVBVEUgRlVOQ1RJT04gb3V0X2RlZ3JlZShzbmFtZSB2YXJjaGFyKSBSRVRVUk5TIHZhcmNo YXIgQVMgJCQKK0RFQ0xBUkUKKyAgICBvdXRfZGVncmVlIGludDsKK0JFR0lOCisgICAgU0VMRUNU IGNvdW50KCopIElOVE8gb3V0X2RlZ3JlZQorICAgICAgICBGUk9NIEdSQVBIX1RBQkxFIChnMSBN QVRDSCAoc3JjIFdIRVJFIHNyYy52bmFtZSA9IHNuYW1lKS0+KCkgQ09MVU1OUyAoc3JjLnZuYW1l KSk7CisgICAgUkVUVVJOIG91dF9kZWdyZWU7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOwor Q1JFQVRFIEZVTkNUSU9OIGRpcmVjdF9jb25uZWN0aW9ucyhzbmFtZSB2YXJjaGFyKQorUkVUVVJO UyBUQUJMRSAoY25hbWUgdmFyY2hhciwgZG5hbWUgdmFyY2hhcikKK0FTICQkCisgICAgU0VMRUNU IGNuYW1lLCBkbmFtZQorICAgICAgICBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoc3JjIFdI RVJFIHNyYy52bmFtZSA9IHNuYW1lKS1bY29ubl0tPihkc3QpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIENPTFVNTlMgKGNvbm4uZW5hbWUgQVMgY25hbWUsIGRzdC52bmFtZSBBUyBkbmFt ZSkpOworJCQgTEFOR1VBR0UgU1FMOworU0VMRUNUIHNuYW1lLCBvdXRfZGVncmVlKHNuYW1lKSBG Uk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoc3JjIElTIHZsMSkgQ09MVU1OUyAoc3JjLnZuYW1l IEFTIHNuYW1lKSk7Cisgc25hbWUgfCBvdXRfZGVncmVlIAorLS0tLS0tLSstLS0tLS0tLS0tLS0K KyB2MTEgICB8IDMKKyB2MTIgICB8IDEKKyB2MTMgICB8IDEKKygzIHJvd3MpCisKK1NFTEVDVCBz bmFtZSwgY25hbWUsIGRuYW1lCisgICAgRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKHNyYyBJ UyB2bDEpIENPTFVNTlMgKHNyYy52bmFtZSBBUyBzbmFtZSkpLAorICAgICAgICAgTEFURVJBTCBk aXJlY3RfY29ubmVjdGlvbnMoc25hbWUpOworIHNuYW1lIHwgY25hbWUgfCBkbmFtZSAKKy0tLS0t LS0rLS0tLS0tLSstLS0tLS0tCisgdjExICAgfCBlMTIxICB8IHYyMgorIHYxMSAgIHwgZTEzMSAg fCB2MzMKKyB2MTEgICB8IGUxMzIgIHwgdjMxCisgdjEyICAgfCBlMTIyICB8IHYyMQorIHYxMyAg IHwgZTEyMyAgfCB2MjMKKyg1IHJvd3MpCisKKy0tIEdSQVBIX1RBQkxFIGpvaW5lZCB0byBhIHJl Z3VsYXIgdGFibGUKK1NFTEVDVCAqCisgICAgRlJPTSBjdXN0b21lcnMgY28sCisgICAgICAgICBH UkFQSF9UQUJMRSAobXlzaG9wMiBNQVRDSCAoY2cgSVMgY3VzdG9tZXJzIFdIRVJFIGNnLmFkZHJl c3MgPSBjby5hZGRyZXNzKS1bSVMgY3VzdG9tZXJfb3JkZXJzXS0+KG8gSVMgb3JkZXJzKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyAoY2cubmFtZV9yZWRhY3RlZCBBUyBj dXN0b21lcl9uYW1lX3JlZGFjdGVkKSkKKyAgICBXSEVSRSBjby5jdXN0b21lcl9pZCA9IDE7Cisg Y3VzdG9tZXJfaWQgfCAgIG5hbWUgICAgfCBhZGRyZXNzIHwgY3VzdG9tZXJfbmFtZV9yZWRhY3Rl ZCAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAxIHwgY3VzdG9tZXIxIHwgVVMgICAgICB8IHJlZGFjdGVkMQor KDEgcm93KQorCistLSBxdWVyeSB3aXRoaW4gZ3JhcGggdGFibGUKK1NFTEVDVCBzbmFtZSwgZG5h bWUKKyAgICBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoc3JjKS0+KGRlc3QpCisgICAgICAg ICAgICAgICAgICAgICAgICAgV0hFUkUgc3JjLnZwcm9wMSA+IChTRUxFQ1QgbWF4KHYxLnZwcm9w MSkgRlJPTSB2MSkKKyAgICAgICAgICAgICAgICAgICAgICAgICBDT0xVTU5TKHNyYy52bmFtZSBh cyBzbmFtZSwgZGVzdC52bmFtZSBhcyBkbmFtZSkpOworRVJST1I6ICBzdWJxdWVyaWVzIHdpdGhp biBHUkFQSF9UQUJMRSByZWZlcmVuY2UgYXJlIG5vdCBzdXBwb3J0ZWQKK1NFTEVDVCBzbmFtZSwg ZG5hbWUKKyAgICBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoc3JjKS0+KGRlc3QpCisgICAg ICAgICAgICAgICAgICAgICAgICAgV0hFUkUgb3V0X2RlZ3JlZShzcmMudm5hbWUpID4gKFNFTEVD VCBtYXgob3V0X2RlZ3JlZShubmFtZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAo bm9kZSkgQ09MVU1OUyAobm9kZS52bmFtZSBBUyBubmFtZSkpKQorICAgICAgICAgICAgICAgICAg ICAgICAgIENPTFVNTlMoc3JjLnZuYW1lIGFzIHNuYW1lLCBkZXN0LnZuYW1lIGFzIGRuYW1lKSk7 CitFUlJPUjogIHN1YnF1ZXJpZXMgd2l0aGluIEdSQVBIX1RBQkxFIHJlZmVyZW5jZSBhcmUgbm90 IHN1cHBvcnRlZAogLS0gbGVhdmUgZm9yIHBnX3VwZ3JhZGUvcGdfZHVtcCB0ZXN0cwogLS1EUk9Q IFNDSEVNQSBncmFwaF90YWJsZV90ZXN0cyBDQVNDQURFOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvZ3JhcGhfdGFibGUuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3JhcGhf dGFibGUuc3FsCmluZGV4IGYzNDYxNjE2M2FhLi45MDViZTlkZjAxYiAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvZ3JhcGhfdGFibGUuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2dyYXBoX3RhYmxlLnNxbApAQCAtMjYyLDYgKzI2Miw5IEBAIFNFTEVDVCAqIEZST00gR1JB UEhfVEFCTEUgKGcxIE1BVENIIChhIElTIHZsMSB8IHZsMikgQ09MVU1OUyAoYS52bmFtZSwKIGEu dnByb3AxKSk7CiAtLSB2cHJvcDIgaXMgYXNzb2NpYXRlZCB3aXRoIHZsMiBidXQgbm90IHZsMwog c2VsZWN0IHNyYywgY29ubiwgZGVzdCwgbHByb3AxLCB2cHJvcDIsIHZwcm9wMSBmcm9tIGdyYXBo X3RhYmxlIChnMSBtYXRjaCAoYSBpcyB2bDEpLVtiIGlzIGVsMV0tPihjIGlzIHZsMiB8IHZsMykg Y29sdW1ucyAoYS52bmFtZSBhcyBzcmMsIGIuZW5hbWUgYXMgY29ubiwgYy52bmFtZSBhcyBkZXN0 LCBjLmxwcm9wMSwgYy52cHJvcDIsIGMudnByb3AxKSk7CistLSBlZGdlcyBkaXJlY3RlZCBpbiBi b3RoIHdheXMgLSB0byBhbmQgZnJvbSB2MgorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEg TUFUQ0ggKHNyYyBJUyB2bDIpLVtjb25uXS0oZGVzdCkgQ09MVU1OUyAoc3JjLnZuYW1lIEFTIHNu YW1lLCBjb25uLmVuYW1lIEFTIGNuYW1lLCBkZXN0LnZuYW1lIEFTIGRuYW1lKSk7CitTRUxFQ1Qg KiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoc3JjIElTIHZsMiktKGRlc3QpIENPTFVNTlMg KHNyYy52bmFtZSBBUyBzbmFtZSwgZGVzdC52bmFtZSBBUyBkbmFtZSkpOwogCiAtLSBFcnJvcnMK IC0tIHZsMSBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIHByb3BlcnR5IHZwcm9wMgpAQCAtMzk0LDUg KzM5Nyw0NyBAQCBDUkVBVEUgVklFVyBjdXN0b21lcnNfdXNfcmVkYWN0ZWQgQVMgU0VMRUNUICog RlJPTSBHUkFQSF9UQUJMRSAobXlzaG9wMiBNQVRDSCAoYwogCiBTRUxFQ1QgKiBGUk9NIGN1c3Rv bWVyc191c19yZWRhY3RlZDsKIAorLS0gR1JBUEhfVEFCTEUgaW4gVURGcworQ1JFQVRFIEZVTkNU SU9OIG91dF9kZWdyZWUoc25hbWUgdmFyY2hhcikgUkVUVVJOUyB2YXJjaGFyIEFTICQkCitERUNM QVJFCisgICAgb3V0X2RlZ3JlZSBpbnQ7CitCRUdJTgorICAgIFNFTEVDVCBjb3VudCgqKSBJTlRP IG91dF9kZWdyZWUKKyAgICAgICAgRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKHNyYyBXSEVS RSBzcmMudm5hbWUgPSBzbmFtZSktPigpIENPTFVNTlMgKHNyYy52bmFtZSkpOworICAgIFJFVFVS TiBvdXRfZGVncmVlOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIEZVTkNU SU9OIGRpcmVjdF9jb25uZWN0aW9ucyhzbmFtZSB2YXJjaGFyKQorUkVUVVJOUyBUQUJMRSAoY25h bWUgdmFyY2hhciwgZG5hbWUgdmFyY2hhcikKK0FTICQkCisgICAgU0VMRUNUIGNuYW1lLCBkbmFt ZQorICAgICAgICBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoc3JjIFdIRVJFIHNyYy52bmFt ZSA9IHNuYW1lKS1bY29ubl0tPihkc3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENP TFVNTlMgKGNvbm4uZW5hbWUgQVMgY25hbWUsIGRzdC52bmFtZSBBUyBkbmFtZSkpOworJCQgTEFO R1VBR0UgU1FMOworCitTRUxFQ1Qgc25hbWUsIG91dF9kZWdyZWUoc25hbWUpIEZST00gR1JBUEhf VEFCTEUgKGcxIE1BVENIIChzcmMgSVMgdmwxKSBDT0xVTU5TIChzcmMudm5hbWUgQVMgc25hbWUp KTsKK1NFTEVDVCBzbmFtZSwgY25hbWUsIGRuYW1lCisgICAgRlJPTSBHUkFQSF9UQUJMRSAoZzEg TUFUQ0ggKHNyYyBJUyB2bDEpIENPTFVNTlMgKHNyYy52bmFtZSBBUyBzbmFtZSkpLAorICAgICAg ICAgTEFURVJBTCBkaXJlY3RfY29ubmVjdGlvbnMoc25hbWUpOworCistLSBHUkFQSF9UQUJMRSBq b2luZWQgdG8gYSByZWd1bGFyIHRhYmxlCitTRUxFQ1QgKgorICAgIEZST00gY3VzdG9tZXJzIGNv LAorICAgICAgICAgR1JBUEhfVEFCTEUgKG15c2hvcDIgTUFUQ0ggKGNnIElTIGN1c3RvbWVycyBX SEVSRSBjZy5hZGRyZXNzID0gY28uYWRkcmVzcyktW0lTIGN1c3RvbWVyX29yZGVyc10tPihvIElT IG9yZGVycykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMgKGNnLm5hbWVf cmVkYWN0ZWQgQVMgY3VzdG9tZXJfbmFtZV9yZWRhY3RlZCkpCisgICAgV0hFUkUgY28uY3VzdG9t ZXJfaWQgPSAxOworCistLSBxdWVyeSB3aXRoaW4gZ3JhcGggdGFibGUKK1NFTEVDVCBzbmFtZSwg ZG5hbWUKKyAgICBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoc3JjKS0+KGRlc3QpCisgICAg ICAgICAgICAgICAgICAgICAgICAgV0hFUkUgc3JjLnZwcm9wMSA+IChTRUxFQ1QgbWF4KHYxLnZw cm9wMSkgRlJPTSB2MSkKKyAgICAgICAgICAgICAgICAgICAgICAgICBDT0xVTU5TKHNyYy52bmFt ZSBhcyBzbmFtZSwgZGVzdC52bmFtZSBhcyBkbmFtZSkpOworU0VMRUNUIHNuYW1lLCBkbmFtZQor ICAgIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChzcmMpLT4oZGVzdCkKKyAgICAgICAgICAg ICAgICAgICAgICAgICBXSEVSRSBvdXRfZGVncmVlKHNyYy52bmFtZSkgPiAoU0VMRUNUIG1heChv dXRfZGVncmVlKG5uYW1lKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChub2RlKSBD T0xVTU5TIChub2RlLnZuYW1lIEFTIG5uYW1lKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg Q09MVU1OUyhzcmMudm5hbWUgYXMgc25hbWUsIGRlc3Qudm5hbWUgYXMgZG5hbWUpKTsKKwogLS0g bGVhdmUgZm9yIHBnX3VwZ3JhZGUvcGdfZHVtcCB0ZXN0cwogLS1EUk9QIFNDSEVNQSBncmFwaF90 YWJsZV90ZXN0cyBDQVNDQURFOwotLSAKMi4zNC4xCgo= --00000000000015b3be062aa12bab Content-Type: text/x-patch; charset="US-ASCII"; name="0001-WIP-SQL-Property-Graph-Queries-SQL-PGQ-20250101.patch" Content-Disposition: attachment; filename="0001-WIP-SQL-Property-Graph-Queries-SQL-PGQ-20250101.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5dnsexm0 RnJvbSA0MGYzZmFhYTYyNTMxNTM2NmRlOTlhYzI0OTIyZDQyMzBmYzk4Mjg0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRyYXV0Lm9y Zz4KRGF0ZTogVGh1LCAyNyBKdW4gMjAyNCAxNDoxMDo0NCArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MS85XSBXSVA6IFNRTCBQcm9wZXJ0eSBHcmFwaCBRdWVyaWVzIChTUUwvUEdRKQoKSW1wbGVtZW50 YXRpb24gb2YgU1FMIHByb3BlcnR5IGdyYXBoIHF1ZXJpZXMsIGFjY29yZGluZyB0byBTUUwvUEdR CnN0YW5kYXJkIChJU08gOTA3NS0xNjoyMDIzKS4KCkF1dGhvcjogUGV0ZXIgRWlzZW50cmF1dCA8 cGV0ZXJAZWlzZW50cmF1dC5vcmc+CkF1dGhvcjogQXNodXRvc2ggQmFwYXQgPGFzaHV0b3NoLmJh cGF0Lm9zc0BnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3Jn L21lc3NhZ2UtaWQvZmxhdC9hODU1Nzk1ZC1lNjk3LTRmYTUtODY5OC1kMjAxMjIxMjY1NjdAZWlz ZW50cmF1dC5vcmcKCkRlc2NyaXB0aW9uIG9mIGZpeGVzIGFkZGVkIHRvIHRoZSBvcmlnaW5hbCBw YXRjaAoKMS4gRml4ZXMgc3VnZ2VzdGVkIGJ5IHBncGVybHRpZHkuCgoyLiBiaW5hcnlfdXBncmFk ZV9zZXRfcGdfY2xhc3Nfb2lkKCkgY2FsbCBmaXg6IEFmdGVyCiAgIDZlMWM0YTAzYTk3OGVkMzU3 NDEyNGQ4ZjJiZTIyYmEyZTVhNGIxZTkKICAgYmluYXJ5X3VwZ3JhZGVfc2V0X3BnX2NsYXNzX29p ZCgpIGRvZXNuJ3QgbmVlZCB0aGUgKG5vdyBub24tZXhpc3RlbnQpCiAgIGxhc3QgYXJndW1lbnQu CgozLiBkZWNvbXBpbGVfY29sdW1uX2luZGV4X2FycmF5KCkgY2FsbCBmaXg6CiAgIDg5ZjkwOGE2 ZDBhYzEzMzdjODY4NjI1MDA4Yzk1OTg0ODdkMTg0ZTcgYWRkZWQgYSBuZXcgcGFyYW1ldGVyCiAg IHdpdGhQZXJpb2QgdG8gZGVjb21waWxlX2NvbHVtbl9pbmRleF9hcnJheSgpLiBUaGlzIGZ1bmN0 aW9uIGlzIHVzZWQKICAgdG8gZGVjb21waWxlIGtleXMgaW4gcHJvcGVydHkgZ3JhcGggZGVmaW5p dGlvbi4gS0VZcyBpbiBwcm9wZXJ0eQogICBncmFwaCBkZWZpbml0aW9uIGFyZSBub3QgdGVtcG9y YWwgYW5kIHRodXMgZG8gbm90IG5lZWQgdG8gc3BlY2lmeQogICBQRVJJT0QgaW4gdGhlaXIgZGVm aW5pdGlvbi4gSGVuY2UgcGFzcyBgZmFsc2VgIHRvCiAgIGRlY29tcGlsZV9jb2x1bW5faW5kZXhf YXJyYXkoKSB3aGVuIGNhbGxlZCBmb3Igd2hpbGUgZGVjb21waWxpbmcgYQogICBwcm9wZXJ0eSBn cmFwaCBkZWZpbml0aW9uLgoKNC4gU3B1cmlvdXMgY29sdW1uIG5vdCBmb3VuZCBlcnJvcjogQXR0 cmlidXRlIG5hbWUgZnJvbSBhIGhlYXAgdHVwbGUKICAgbmVlZHMgdG8gYmUgY29waWVkIGJlZm9y ZSByZWxlYXNpbmcgdGhlIHJlc291cmNlcyBoZWxkIGJ5IHRoZSB0dXBsZQogICBhbmQgdGhlIHRh YmxlIHNjYW4uCgo1LiBNZXJnZSBjb25mbGljdCBmaXhlcyBpbiBwYXJzZXIucGw6IGFmdGVyIEVD UEcgcmVsYXRlZCByZWZhY3RvcmluZwogICBmcm9tIGNvbW1pdHMgYXJvdW5kIDZiMDA1NDk5NDQ3 NTEyYWJmYTFlNGFkZDg3ZGNmM2UyODU5YzRmOWUuCgo2LiBNZXJnZSBjb25mbGljdCBpbiBhbHRl ci5jIGFuZCBhY2xjaGsuYyB3aGVuIG1lcmdpbmcgd2l0aCBIRUFEID0KICAgYWFjODMxY2FmYTZm MzEwNmRmY2JkMzI5ODc1NzgwMWMyOTkzNTFmYwoKNy4gRml4IGNvbXBpbGF0aW9uIGVycm9yIGlu IHByb3BncmFwaF9lbGVtZW50X2dldF9rZXkoKToKUmVsYXRpb25HZXRQcmltYXJ5S2V5SW5kZXgo KSwgY2FsbGVkIGJ5IHByb3BncmFwaF9lbGVtZW50X2dldF9rZXkoKSByZXF1aXJlcyBhCnNlY29u ZCBhcmd1bWVudCBzcGVjaWZ5aW5nIHdoZXRoZXIgREVGRVJSRUQgcHJpbWFyeSBrZXkgY29uc3Ry YWludHMgYXJlCmFjY2VwdGFibGUuIFNRTC9QR1Egc3RhbmRhcmQgc2VjdGlvbiA5LjEyLCBTeW50 YXggUnVsZSA0IG1lbnRpb25zIG9ubHkgcHJpbWFyeQprZXkgYW5kIGRvZXMgbm90IGRpc2N1c3Mg REVGRVJSRURuZXNzLiBGaXggY29tcGlsYXRpb24gZmFpbHVyZSBieSBwYXNzaW5nICJ0cnVlIgp0 byBSZWxhdGlvbkdldFByaW1hcnlLZXlJbmRleCgpIGFzIHNlY29uZCBhcmd1bWVudC4gTm8gYWRq dXN0bWVudCB0byB0aGUKZG9jdW1lbnRhdGlvbiBpcyBuZWVkZWQgc2luY2UgaXQgbWVudGlvbmVk IHByaW1hcnkga2V5IHdpdGhvdXQgREVGRVJSRURuZXNzLgotLS0KIGRvYy9zcmMvc2dtbC9jYXRh bG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICA0NzEgKysrKy0KIGRvYy9zcmMvc2dtbC9k ZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyMjUgKystCiBkb2Mvc3JjL3NnbWwv ZmVhdHVyZXMuc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgICA0ICstCiBkb2Mvc3JjL3NnbWwv ZnVuYy5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICsKIGRvYy9zcmMvc2dtbC9p bmZvcm1hdGlvbl9zY2hlbWEuc2dtbCAgICAgICAgICB8IDEwOTIgKysrKysrKysrKysKIC4uLi9z Z21sL2tleXdvcmRzL3NxbDIwMjMtMTYtbm9ucmVzZXJ2ZWQudHh0ICB8ICAgMjcgKwogZG9jL3Ny Yy9zZ21sL2tleXdvcmRzL3NxbDIwMjMtMTYtcmVzZXJ2ZWQudHh0IHwgICAxMiArCiBkb2Mvc3Jj L3NnbWwvcXVlcmllcy5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgMTY4ICsrCiBkb2Mvc3Jj L3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwgICAgICAgICAgICAgICAgfCAgICAzICsKIGRvYy9zcmMv c2dtbC9yZWYvYWx0ZXJfZXh0ZW5zaW9uLnNnbWwgICAgICAgICB8ICAgIDMgKy0KIGRvYy9zcmMv c2dtbC9yZWYvYWx0ZXJfcHJvcGVydHlfZ3JhcGguc2dtbCAgICB8ICAyOTkgKysrCiBkb2Mvc3Jj L3NnbWwvcmVmL2NvbW1lbnQuc2dtbCAgICAgICAgICAgICAgICAgfCAgICAxICsKIGRvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNnbWwgICB8ICAzMTAgKysrCiBkb2Mvc3Jj L3NnbWwvcmVmL2Ryb3BfcHJvcGVydHlfZ3JhcGguc2dtbCAgICAgfCAgMTExICsrCiBkb2Mvc3Jj L3NnbWwvcmVmL2dyYW50LnNnbWwgICAgICAgICAgICAgICAgICAgfCAgICA3ICstCiBkb2Mvc3Jj L3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwgICAgICAgICAgICAgICAgfCAgIDEzICstCiBkb2Mvc3Jj L3NnbWwvcmVmL3Jldm9rZS5zZ21sICAgICAgICAgICAgICAgICAgfCAgICA3ICsKIGRvYy9zcmMv c2dtbC9yZWYvc2VjdXJpdHlfbGFiZWwuc2dtbCAgICAgICAgICB8ICAgIDEgKwogZG9jL3NyYy9z Z21sL3JlZi9zZWxlY3Quc2dtbCAgICAgICAgICAgICAgICAgIHwgICA0MyArCiBkb2Mvc3JjL3Nn bWwvcmVmZXJlbmNlLnNnbWwgICAgICAgICAgICAgICAgICAgfCAgICAzICsKIHNyYy9iYWNrZW5k L2NhdGFsb2cvYWNsY2hrLmMgICAgICAgICAgICAgICAgICB8ICAgMjQgKwogc3JjL2JhY2tlbmQv Y2F0YWxvZy9kZXBlbmRlbmN5LmMgICAgICAgICAgICAgIHwgICAxMSArCiBzcmMvYmFja2VuZC9j YXRhbG9nL2luZm9ybWF0aW9uX3NjaGVtYS5zcWwgICAgfCAgMzY0ICsrKysKIHNyYy9iYWNrZW5k L2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jICAgICAgICAgICB8ICAzMDYgKysrCiBzcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX2NsYXNzLmMgICAgICAgICAgICAgICAgfCAgICAyICsKIHNyYy9iYWNrZW5k L2NhdGFsb2cvc3FsX2ZlYXR1cmVzLnR4dCAgICAgICAgICB8ICAxMDAgKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvTWFrZWZpbGUgICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9j b21tYW5kcy9hbHRlci5jICAgICAgICAgICAgICAgICAgfCAgIDI4ICstCiBzcmMvYmFja2VuZC9j b21tYW5kcy9kcm9wY21kcy5jICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL2V2ZW50X3RyaWdnZXIuYyAgICAgICAgICB8ICAgIDIgKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvbWVzb24uYnVpbGQgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9jb21t YW5kcy9wcm9wZ3JhcGhjbWRzLmMgICAgICAgICAgfCAxNzA2ICsrKysrKysrKysrKysrKysrCiBz cmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jICAgICAgICAgICAgICAgfCAgICAxICsKIHNy Yy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jICAgICAgICAgICAgICB8ICAgMTYgKwogc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyAgICAgICAgICAgICAgIHwgICAxNSArLQogc3Jj L2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgICAgICAgICAgICAgICAgIHwgICA3MiArCiBzcmMv YmFja2VuZC9ub2Rlcy9vdXRmdW5jcy5jICAgICAgICAgICAgICAgICAgfCAgICA1ICsKIHNyYy9i YWNrZW5kL25vZGVzL3JlYWRmdW5jcy5jICAgICAgICAgICAgICAgICB8ICAgIDUgKwogc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYyAgICAgICAgIHwgICAgNCArCiBzcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYyAgICAgfCAgICA4ICsKIHNyYy9iYWNr ZW5kL3BhcnNlci9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tl bmQvcGFyc2VyL2FuYWx5emUuYyAgICAgICAgICAgICAgICAgIHwgIDI5OCArLS0KIHNyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICA3MDQgKysrKysrLQogc3Jj L2JhY2tlbmQvcGFyc2VyL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMgICAgICAgICAgICAgICAgfCAgIDExICsKIHNyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYyAgICAgICAgICAgICB8ICAgODkgKwogc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2NvbGxhdGUuYyAgICAgICAgICAgIHwgICAgNyArCiBzcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCAgICA2ICsKIHNyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgICAgICAgICAgICAgICB8ICAgIDMgKwogc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2dyYXBodGFibGUuYyAgICAgICAgIHwgIDIwOSArKwogc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgICAgICAgICAgIHwgICA5OCArLQogc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jICAgICAgICAgICAgIHwgICAgNSArCiBzcmMvYmFja2Vu ZC9wYXJzZXIvc2Nhbi5sICAgICAgICAgICAgICAgICAgICAgfCAgIDEzICstCiBzcmMvYmFja2Vu ZC9yZXdyaXRlL01ha2VmaWxlICAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5k L3Jld3JpdGUvbWVzb24uYnVpbGQgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQv cmV3cml0ZS9yZXdyaXRlR3JhcGhUYWJsZS5jICAgICAgIHwgMTA5OCArKysrKysrKysrKwogc3Jj L2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jICAgICAgICAgIHwgICAxMSArCiBzcmMv YmFja2VuZC90Y29wL3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAgIDM0ICsKIHNyYy9i YWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyAgICAgICAgICAgICB8ICA1MzcgKysrKysrCiBz cmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYyAgICAgICAgICAgfCAgIDM4ICsKIHNy Yy9iaW4vcGdfZHVtcC9jb21tb24uYyAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKy0KIHNy Yy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyAgICAgICAgICB8ICAgIDEgKwogc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgICA2NyArLQogc3Jj L2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgICAxMiArCiBzcmMv YmluL3BzcWwvY29tbWFuZC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAzICstCiBzcmMv YmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQzICstCiBzcmMv YmluL3BzcWwvaGVscC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9i aW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAgNjcgKy0KIHNyYy9m ZV91dGlscy9wc3Fsc2Nhbi5sICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDggKy0KIHNyYy9p bmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAgIDcgKy0KIHNyYy9p bmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQgICAgICAgICAgICAgICB8ICAgIDUgKwogc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19jbGFzcy5oICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgICAgICAgfCAgICAzICsKIHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnQuaCAgICB8ICAxMDMgKwogLi4uL2NhdGFs b2cvcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwuaCAgICAgIHwgICA1MSArCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb3BncmFwaF9sYWJlbC5oICAgICAgfCAgIDUxICsKIC4uLi9jYXRhbG9n L3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eS5oICAgICB8ICAgNTkgKwogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9wZ3JhcGhfcHJvcGVydHkuaCAgIHwgICA1NCArCiBzcmMvaW5jbHVkZS9j b21tYW5kcy9wcm9wZ3JhcGhjbWRzLmggICAgICAgICAgfCAgIDIzICsKIHNyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxMzkgKysKIHNyYy9pbmNsdWRlL25v ZGVzL3ByaW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgMjIgKwogc3JjL2luY2x1ZGUvcGFy c2VyL2FuYWx5emUuaCAgICAgICAgICAgICAgICAgIHwgICAgMyArCiBzcmMvaW5jbHVkZS9wYXJz ZXIva3dsaXN0LmggICAgICAgICAgICAgICAgICAgfCAgICA5ICsKIHNyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZV9ncmFwaHRhYmxlLmggICAgICAgICB8ICAgMzEgKwogc3JjL2luY2x1ZGUvcGFyc2Vy L3BhcnNlX25vZGUuaCAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2VfcmVsYXRpb24uaCAgICAgICAgICAgfCAgICA4ICsKIHNyYy9pbmNsdWRlL3Jld3JpdGUv cmV3cml0ZUdyYXBoVGFibGUuaCAgICAgICB8ICAgMjEgKwogc3JjL2luY2x1ZGUvdGNvcC9jbWR0 YWdsaXN0LmggICAgICAgICAgICAgICAgIHwgICAgMyArCiBzcmMvaW5jbHVkZS91dGlscy9hY2wu aCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL3V0aWxzL2xzeXNj YWNoZS5oICAgICAgICAgICAgICAgICB8ICAgIDMgKwogc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVw cm9jL3BhcnNlLnBsICAgICAgICAgIHwgICAgNiArLQogc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVw cm9jL3BnYy5sICAgICAgICAgICAgIHwgICAxMiArLQogc3JjL3BsL3BscGdzcWwvc3JjL3BsX2dy YW0ueSAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2FsdGVyX2dlbmVyaWMub3V0ICAgfCAgIDUxICstCiAuLi4vZXhwZWN0ZWQvY3JlYXRlX3Byb3Bl cnR5X2dyYXBoLm91dCAgICAgICAgfCAgNDk2ICsrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2dyYXBoX3RhYmxlLm91dCAgICAgfCAgNDg0ICsrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL29iamVjdF9hZGRyZXNzLm91dCAgfCAgIDE0ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL29pZGpvaW5zLm91dCAgICAgICAgfCAgIDExICsKIHNyYy90ZXN0L3JlZ3Jlc3MvcGFy YWxsZWxfc2NoZWR1bGUgICAgICAgICAgICB8ICAgIDQgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2FsdGVyX2dlbmVyaWMuc3FsICAgICAgICB8ICAgMzQgKwogLi4uL3JlZ3Jlc3Mvc3FsL2NyZWF0 ZV9wcm9wZXJ0eV9ncmFwaC5zcWwgICAgIHwgIDE5MCArKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwv Z3JhcGhfdGFibGUuc3FsICAgICAgICAgIHwgIDMzNiArKysrCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC9vYmplY3RfYWRkcmVzcy5zcWwgICAgICAgfCAgICA0ICstCiBzcmMvdG9vbHMvcGdpbmRlbnQv dHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgIDIxICsKIDEwNCBmaWxlcyBjaGFuZ2VkLCAx MDkxNyBpbnNlcnRpb25zKCspLCAyMDIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg ZG9jL3NyYy9zZ21sL2tleXdvcmRzL3NxbDIwMjMtMTYtbm9ucmVzZXJ2ZWQudHh0CiBjcmVhdGUg bW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL2tleXdvcmRzL3NxbDIwMjMtMTYtcmVzZXJ2ZWQudHh0 CiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wcm9wZXJ0eV9ncmFw aC5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHJvcGVy dHlfZ3JhcGguc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvZHJvcF9w cm9wZXJ0eV9ncmFwaC5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvY29tbWFu ZHMvcHJvcGdyYXBoY21kcy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX2dyYXBodGFibGUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL3Jld3Jp dGUvcmV3cml0ZUdyYXBoVGFibGUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwuaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX2xhYmVsLmgKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eS5o CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9wZ3JhcGhfcHJv cGVydHkuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Byb3BncmFw aGNtZHMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ncmFw aHRhYmxlLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9yZXdyaXRlL3Jld3JpdGVH cmFwaFRhYmxlLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5zcWwKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ncmFwaF90YWJsZS5zcWwKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmlu ZGV4IGNjNmNmOWJlZjA5Li4zMzUxNTdmZDc1OCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Nh dGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTI0MCw2ICsy NDAsMzEgQEAKICAgICAgIDxlbnRyeT5mdW5jdGlvbnMgYW5kIHByb2NlZHVyZXM8L2VudHJ5Pgog ICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNh dGFsb2ctcGctcHJvcGdyYXBoLWVsZW1lbnQiPjxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFwaF9lbGVt ZW50PC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgorICAgICAgPGVudHJ5PnByb3BlcnR5IGdy YXBoIGVsZW1lbnRzICh2ZXJ0aWNlcyBhbmQgZWRnZXMpPC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXByb3Bn cmFwaC1lbGVtZW50LWxhYmVsIj48c3RydWN0bmFtZT5wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJl bDwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5wcm9wZXJ0eSBncmFw aCBsaW5rcyBiZXR3ZWVuIGVsZW1lbnRzIGFuZCBsYWJlbHM8L2VudHJ5PgorICAgICA8L3Jvdz4K KworICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctcHJv cGdyYXBoLWxhYmVsIj48c3RydWN0bmFtZT5wZ19wcm9wZ3JhcGhfbGFiZWw8L3N0cnVjdG5hbWU+ PC9saW5rPjwvZW50cnk+CisgICAgICA8ZW50cnk+cHJvcGVydHkgZ3JhcGggbGFiZWxzPC9lbnRy eT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGluayBsaW5rZW5k PSJjYXRhbG9nLXBnLXByb3BncmFwaC1sYWJlbC1wcm9wZXJ0eSI+PHN0cnVjdG5hbWU+cGdfcHJv cGdyYXBoX2xhYmVsX3Byb3BlcnR5PC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgorICAgICAg PGVudHJ5PnByb3BlcnR5IGdyYXBoIGxhYmVsLXNwZWNpZmljIHByb3BlcnR5IGRlZmluaXRpb25z PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGluayBs aW5rZW5kPSJjYXRhbG9nLXBnLXByb3BncmFwaC1wcm9wZXJ0eSI+PHN0cnVjdG5hbWU+cGdfcHJv cGdyYXBoX3Byb3BlcnR5PC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgorICAgICAgPGVudHJ5 PnByb3BlcnR5IGdyYXBoIHByb3BlcnRpZXM8L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8 cm93PgogICAgICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctcHVibGljYXRpb24i PjxzdHJ1Y3RuYW1lPnBnX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5Pgog ICAgICAgPGVudHJ5PnB1YmxpY2F0aW9ucyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbjwvZW50cnk+ CkBAIC0yMTIwLDcgKzIxNDUsOCBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRl cmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgIDxs aXRlcmFsPmM8L2xpdGVyYWw+ID0gY29tcG9zaXRlIHR5cGUsCiAgICAgICAgPGxpdGVyYWw+Zjwv bGl0ZXJhbD4gPSBmb3JlaWduIHRhYmxlLAogICAgICAgIDxsaXRlcmFsPnA8L2xpdGVyYWw+ID0g cGFydGl0aW9uZWQgdGFibGUsCi0gICAgICAgPGxpdGVyYWw+STwvbGl0ZXJhbD4gPSBwYXJ0aXRp b25lZCBpbmRleAorICAgICAgIDxsaXRlcmFsPkk8L2xpdGVyYWw+ID0gcGFydGl0aW9uZWQgaW5k ZXgsCisgICAgICAgPGxpdGVyYWw+ZzwvbGl0ZXJhbD4gPSBwcm9wZXJ0eSBncmFwaAogICAgICAg PC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCkBAIC02Mjc4LDYgKzYzMDQsNDQ5IEBAIFND UkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNl YWJsZT46PHJlcGxhY2VhYmxlPiZsCiAKICA8L3NlY3QxPgogCisgPHNlY3QxIGlkPSJjYXRhbG9n LXBnLXByb3BncmFwaC1lbGVtZW50Ij4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFw aF9lbGVtZW50PC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6b25lPSJjYXRh bG9nLXBnLXByb3BncmFwaC1lbGVtZW50Ij4KKyAgIDxwcmltYXJ5PnBnX3Byb3BncmFwaF9lbGVt ZW50PC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8cGFyYT4KKyAgIFRoZSBjYXRhbG9n IDxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFwaF9lbGVtZW50PC9zdHJ1Y3RuYW1lPiBzdG9yZXMKKyAg IGluZm9ybWF0aW9uIGFib3V0IHRoZSB2ZXJ0aWNlcyBhbmQgZWRnZXMgb2YgYSBwcm9wZXJ0eSBn cmFwaCwgY29sbGVjdGl2ZWx5CisgICBjYWxsZWQgdGhlIGVsZW1lbnRzIG9mIHRoZSBwcm9wZXJ0 eSBncmFwaC4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFtZT5w Z19wcm9wZ3JhcGhfZWxlbWVudDwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CisgICA8dGdy b3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERl c2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVh ZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0 cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJvdyBpZGVudGlmaWVyCisgICAgICA8L3BhcmE+PC9l bnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPnBnZXBnaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAg ICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jbGFzcyI+PHN0cnVjdG5h bWU+cGdfY2xhc3M8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3Rm aWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSZWZlcmVuY2UgdG8g dGhlIHByb3BlcnR5IGdyYXBoIHRoYXQgdGhpcyBlbGVtZW50IGJlbG9uZ3MgdG8KKyAgICAgIDwv cGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+cGdlcmVsaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5 cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jbGFzcyI+ PHN0cnVjdG5hbWU+cGdfY2xhc3M8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lk PC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSZWZl cmVuY2UgdG8gdGhlIHRhYmxlIHRvIGNvbnRhaW5zIHRoZSBkYXRhIGZvciB0aGlzIHByb3BlcnR5 IGdyYXBoIGVsZW1lbnQKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGdlYWxpYXM8L3N0 cnVjdGZpZWxkPiA8dHlwZT5uYW1lPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgVGhlIGFsaWFzIG9mIHRoZSBlbGVtZW50LiAgVGhpcyBpcyBhIHVuaXF1ZSBpZGVu dGlmaWVyIGZvciB0aGUgZWxlbWVudAorICAgICAgIHdpdGhpbiB0aGUgZ3JhcGguICBJdCBpcyBz ZXQgd2hlbiB0aGUgcHJvcGVydHkgZ3JhcGggaXMgZGVmaW5lZCBhbmQKKyAgICAgICBkZWZhdWx0 cyB0byB0aGUgbmFtZSBvZiB0aGUgdW5kZXJseWluZyBlbGVtZW50IHRhYmxlLgorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD5wZ2VraW5kPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2hhcjwvdHlw ZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIDxsaXRlcmFsPnY8L2xpdGVy YWw+IGZvciBhIHZlcnRleCwgPGxpdGVyYWw+ZTwvbGl0ZXJhbD4gZm9yIGFuIGVkZ2UKKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGdlc3JjdmVydGV4aWQ8L3N0cnVjdGZpZWxkPiA8dHlw ZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1w Zy1wcm9wZ3JhcGgtZWxlbWVudCI+PHN0cnVjdG5hbWU+cGdfcHJvcGdyYXBoX2VsZW1lbnQ8L3N0 cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBGb3IgYW4gZWRnZSwgYSBsaW5rIHRvIHRoZSBz b3VyY2UgdmVydGV4LiAgKFplcm8gZm9yIGEgdmVydGV4LikKKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+cGdlZGVzdHZlcnRleGlkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgor ICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctcHJvcGdyYXBoLWVs ZW1lbnQiPjxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFwaF9lbGVtZW50PC9zdHJ1Y3RuYW1lPjwvbGlu az4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgRm9yIGFuIGVkZ2UsIGEgbGluayB0byB0aGUgZGVzdGluYXRpb24gdmVy dGV4LiAgKFplcm8gZm9yIGEgdmVydGV4LikKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ cGdla2V5PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50MltdPC90eXBlPgorICAgICAgIChyZWZlcmVu Y2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctYXR0cmlidXRlIj48c3RydWN0bmFtZT5wZ19h dHRyaWJ1dGU8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+YXR0bnVtPC9zdHJ1Y3Rm aWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBBbiBhcnJheSBvZiBj b2x1bW4gbnVtYmVycyBpbiB0aGUgdGFibGUgcmVmZXJlbmNlZCBieQorICAgICAgIDxzdHJ1Y3Ru YW1lPnBnZXJlbGlkPC9zdHJ1Y3RuYW1lPiB0aGF0IGRlZmluZXMgdGhlIGtleSB0byB1c2UgZm9y IHRoaXMKKyAgICAgICBlbGVtZW50IHRhYmxlLiAgKFRoaXMgZGVmYXVsdHMgdG8gdGhlIHByaW1h cnkga2V5IHdoZW4gdGhlIHByb3BlcnR5CisgICAgICAgZ3JhcGggaXMgY3JlYXRlZC4pCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBnZXNyY2tleTwvc3RydWN0ZmllbGQ+IDx0eXBlPmlu dDJbXTwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBn LWF0dHJpYnV0ZSI+PHN0cnVjdG5hbWU+cGdfYXR0cmlidXRlPC9zdHJ1Y3RuYW1lPjwvbGluaz4u PHN0cnVjdGZpZWxkPmF0dG51bTwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgRm9yIGFuIGVkZ2UsIGFuIGFycmF5IG9mIGNvbHVtbiBudW1iZXJzIGlu IHRoZSB0YWJsZSByZWZlcmVuY2VkIGJ5CisgICAgICAgPHN0cnVjdG5hbWU+cGdlcmVsaWQ8L3N0 cnVjdG5hbWU+IHRoYXQgZGVmaW5lcyB0aGUgc291cmNlIGtleSB0byB1c2UKKyAgICAgICBmb3Ig dGhpcyBlbGVtZW50IHRhYmxlLiAgKE51bGwgZm9yIGEgdmVydGV4LikgIFRoZSBjb21iaW5hdGlv biBvZgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wZ2VzcmNrZXk8L3N0cnVjdGZpZWxkPiBhbmQKKyAg ICAgICA8c3RydWN0ZmllbGQ+cGdlc3JjcmVmPC9zdHJ1Y3RmaWVsZD4gY3JlYXRlcyB0aGUgbGlu ayBiZXR3ZWVuIHRoZSBlZGdlCisgICAgICAgYW5kIHRoZSBzb3VyY2UgdmVydGV4LgorICAgICAg PC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wZ2VzcmNyZWY8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQy W108L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1h dHRyaWJ1dGUiPjxzdHJ1Y3RuYW1lPnBnX2F0dHJpYnV0ZTwvc3RydWN0bmFtZT48L2xpbms+Ljxz dHJ1Y3RmaWVsZD5hdHRudW08L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgIEZvciBhbiBlZGdlLCBhbiBhcnJheSBvZiBjb2x1bW4gbnVtYmVycyBpbiB0 aGUgdGFibGUgcmVhY2hlZCB2aWEKKyAgICAgICA8c3RydWN0bmFtZT5wZ2VzcmN2ZXJ0ZXhpZDwv c3RydWN0bmFtZT4uICAoTnVsbCBmb3IgYSB2ZXJ0ZXguKSAgVGhlCisgICAgICAgY29tYmluYXRp b24gb2YgPHN0cnVjdGZpZWxkPnBnZXNyY2tleTwvc3RydWN0ZmllbGQ+IGFuZAorICAgICAgIDxz dHJ1Y3RmaWVsZD5wZ2VzcmNyZWY8L3N0cnVjdGZpZWxkPiBjcmVhdGVzIHRoZSBsaW5rIGJldHdl ZW4gdGhlIGVkZ2UKKyAgICAgICBhbmQgdGhlIHNvdXJjZSB2ZXJ0ZXguCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPnBnZWRlc3RrZXk8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQyW108L3R5 cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1hdHRyaWJ1 dGUiPjxzdHJ1Y3RuYW1lPnBnX2F0dHJpYnV0ZTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3Rm aWVsZD5hdHRudW08L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgIEZvciBhbiBlZGdlLCBhbiBhcnJheSBvZiBjb2x1bW4gbnVtYmVycyBpbiB0aGUgdGFi bGUgcmVmZXJlbmNlZCBieQorICAgICAgIDxzdHJ1Y3RuYW1lPnBnZXJlbGlkPC9zdHJ1Y3RuYW1l PiB0aGF0IGRlZmluZXMgdGhlIGRlc3RpbmF0aW9uIGtleSB0byB1c2UKKyAgICAgICBmb3IgdGhp cyBlbGVtZW50IHRhYmxlLiAgKE51bGwgZm9yIGEgdmVydGV4LikgIFRoZSBjb21iaW5hdGlvbiBv ZgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wZ2VkZXN0a2V5PC9zdHJ1Y3RmaWVsZD4gYW5kCisgICAg ICAgPHN0cnVjdGZpZWxkPnBnZWRlc3RyZWY8L3N0cnVjdGZpZWxkPiBjcmVhdGVzIHRoZSBsaW5r IGJldHdlZW4gdGhlIGVkZ2UKKyAgICAgICBhbmQgdGhlIGRlc3RpbmF0aW9uIHZlcnRleC4KKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGdlZGVzdHJlZjwvc3RydWN0ZmllbGQ+IDx0eXBl PmludDJbXTwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9n LXBnLWF0dHJpYnV0ZSI+PHN0cnVjdG5hbWU+cGdfYXR0cmlidXRlPC9zdHJ1Y3RuYW1lPjwvbGlu az4uPHN0cnVjdGZpZWxkPmF0dG51bTwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgRm9yIGFuIGVkZ2UsIGFuIGFycmF5IG9mIGNvbHVtbiBudW1iZXJz IGluIHRoZSB0YWJsZSByZWFjaGVkIHZpYQorICAgICAgIDxzdHJ1Y3RuYW1lPnBnZWRlc3R2ZXJ0 ZXhpZDwvc3RydWN0bmFtZT4uICAoTnVsbCBmb3IgYSB2ZXJ0ZXguKSAgVGhlCisgICAgICAgY29t YmluYXRpb24gb2YgPHN0cnVjdGZpZWxkPnBnZWRlc3RrZXk8L3N0cnVjdGZpZWxkPiBhbmQKKyAg ICAgICA8c3RydWN0ZmllbGQ+cGdlZGVzdHJlZjwvc3RydWN0ZmllbGQ+IGNyZWF0ZXMgdGhlIGxp bmsgYmV0d2VlbiB0aGUgZWRnZQorICAgICAgIGFuZCB0aGUgZGVzdGluYXRpb24gdmVydGV4Lgor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rn cm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJjYXRhbG9nLXBnLXBy b3BncmFwaC1lbGVtZW50LWxhYmVsIj4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFw aF9lbGVtZW50X2xhYmVsPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6b25l PSJjYXRhbG9nLXBnLXByb3BncmFwaC1lbGVtZW50LWxhYmVsIj4KKyAgIDxwcmltYXJ5PnBnX3By b3BncmFwaF9lbGVtZW50X2xhYmVsPC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8cGFy YT4KKyAgIFRoZSBjYXRhbG9nIDxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVs PC9zdHJ1Y3RuYW1lPiBzdG9yZXMKKyAgIGluZm9ybWF0aW9uIGFib3V0IHdoaWNoIGxhYmVscyBh cHBseSB0byB3aGljaCBlbGVtZW50cy4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRs ZT48c3RydWN0bmFtZT5wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbDwvc3RydWN0bmFtZT4gQ29s dW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJv dz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9p ZDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJvdyBpZGVudGlm aWVyCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBnZWxsYWJlbGlkPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNh dGFsb2ctcGctcHJvcGdyYXBoLWxhYmVsIj48c3RydWN0bmFtZT5wZ19wcm9wZ3JhcGhfbGFiZWw8 L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSZWZlcmVuY2UgdG8gdGhlIGxhYmVsCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBnZWxlbGlkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGct cHJvcGdyYXBoLWVsZW1lbnQiPjxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFwaF9lbGVtZW50PC9zdHJ1 Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgUmVmZXJlbmNlIHRvIHRoZSBlbGVtZW50CisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3Vw PgorICA8L3RhYmxlPgorIDwvc2VjdDE+CisKKyA8c2VjdDEgaWQ9ImNhdGFsb2ctcGctcHJvcGdy YXBoLWxhYmVsIj4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFwaF9sYWJlbDwvc3Ry dWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRleHRlcm0gem9uZT0iY2F0YWxvZy1wZy1wcm9wZ3Jh cGgtbGFiZWwiPgorICAgPHByaW1hcnk+cGdfcHJvcGdyYXBoX2xhYmVsPC9wcmltYXJ5PgorICA8 L2luZGV4dGVybT4KKworICA8cGFyYT4KKyAgIFRoZSBjYXRhbG9nIDxzdHJ1Y3RuYW1lPnBnX3By b3BncmFwaF9sYWJlbDwvc3RydWN0bmFtZT4gc3RvcmVzCisgICBpbmZvcm1hdGlvbiBhYm91dCB0 aGUgbGFiZWxzIGluIGEgcHJvcGVydHkgZ3JhcGguCisgIDwvcGFyYT4KKworICA8dGFibGU+Cisg ICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfcHJvcGdyYXBoX2xhYmVsPC9zdHJ1Y3RuYW1lPiBDb2x1 bW5zPC90aXRsZT4KKyAgIDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lk PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgUm93IGlkZW50aWZp ZXIKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGdscGdpZDwvc3RydWN0ZmllbGQ+IDx0 eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9n LXBnLWNsYXNzIj48c3RydWN0bmFtZT5wZ19jbGFzczwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1 Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgIFJlZmVyZW5jZSB0byB0aGUgcHJvcGVydHkgZ3JhcGggdGhhdCB0aGlzIGxhYmVsIGJl bG9uZ3MgdG8KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGdsbGFiZWw8L3N0cnVjdGZp ZWxkPiA8dHlwZT5uYW1lPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgVGhlIG5hbWUgb2YgdGhlIGxhYmVsLiAgVGhpcyBpcyB1bmlxdWUgYW1vbmcgdGhlIGxhYmVs cyBpbiBhIGdyYXBoLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwv dGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlk PSJjYXRhbG9nLXBnLXByb3BncmFwaC1sYWJlbC1wcm9wZXJ0eSI+CisgIDx0aXRsZT48c3RydWN0 bmFtZT5wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHk8L3N0cnVjdG5hbWU+PC90aXRsZT4KKwor ICA8aW5kZXh0ZXJtIHpvbmU9ImNhdGFsb2ctcGctcHJvcGdyYXBoLWxhYmVsLXByb3BlcnR5Ij4K KyAgIDxwcmltYXJ5PnBnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eTwvcHJpbWFyeT4KKyAgPC9p bmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgY2F0YWxvZyA8c3RydWN0bmFtZT5wZ19wcm9w Z3JhcGhfbGFiZWxfcHJvcGVydHk8L3N0cnVjdG5hbWU+IHN0b3JlcworICAgaW5mb3JtYXRpb24g YWJvdXQgdGhlIHByb3BlcnRpZXMgaW4gYSBwcm9wZXJ0eSBncmFwaCB0aGF0IGFyZSBzcGVjaWZp YyB0byBhCisgICBsYWJlbC4gIEluIHBhcnRpY3VsYXIsIHRoaXMgc3RvcmVzIHRoZSBleHByZXNz aW9uIHRoYXQgZGVmaW5lcyB0aGUKKyAgIHByb3BlcnR5LgorICA8L3BhcmE+CisKKyAgPHRhYmxl PgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eTwvc3Ry dWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVh ZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xl PSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0Zmll bGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg IFJvdyBpZGVudGlmaWVyCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBscHByb3BpZDwv c3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBs aW5rZW5kPSJjYXRhbG9nLXBnLXByb3BncmFwaC1wcm9wZXJ0eSI+PHN0cnVjdG5hbWU+cGdfcHJv cGdyYXBoX3Byb3BlcnR5PC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3Ry dWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgUmVmZXJlbmNl IHRvIHRoZSBwcm9wZXJ0eQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisg ICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEg cm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wbHBlbGxhYmVs aWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxp bmsgbGlua2VuZD0iY2F0YWxvZy1wZy1wcm9wZ3JhcGgtZWxlbWVudC1sYWJlbCI+PHN0cnVjdG5h bWU+cGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWw8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0 ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICBSZWZlcmVuY2UgdG8gdGhlIGxhYmVsIChpbmRpcmVjdGx5IHZpYQorICAgICAgIDxzdHJ1 Y3RuYW1lPnBnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsPC9zdHJ1Y3RuYW1lPiwgd2hpY2ggdGhl biBsaW5rcworICAgICAgIHRvIDxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFwaF9sYWJlbDwvc3RydWN0 bmFtZT4pCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBscGV4cHI8L3N0cnVjdGZpZWxk PiA8dHlwZT5wZ19ub2RlX3RyZWU8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICBFeHByZXNzaW9uIHRyZWUgKGluIDxmdW5jdGlvbj5ub2RlVG9TdHJpbmcoKTwvZnVu Y3Rpb24+IHJlcHJlc2VudGF0aW9uKQorICAgICAgIGZvciB0aGUgcHJvcGVydHkncyBkZWZpbml0 aW9uLiAgVGhlIGV4cHJlc3Npb24gcmVmZXJlbmNlcyB0aGUgdGFibGUKKyAgICAgICByZWFjaGVk IHZpYSA8c3RydWN0bmFtZT5wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbDwvc3RydWN0bmFtZT4g YW5kCisgICAgICAgPHN0cnVjdG5hbWU+cGdfcHJvcGdyYXBoX2VsZW1lbnQ8L3N0cnVjdG5hbWU+ LgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8 L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJjYXRhbG9nLXBn LXByb3BncmFwaC1wcm9wZXJ0eSI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19wcm9wZ3JhcGhf cHJvcGVydHk8L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJtIHpvbmU9ImNhdGFs b2ctcGctcHJvcGdyYXBoLXByb3BlcnR5Ij4KKyAgIDxwcmltYXJ5PnBnX3Byb3BncmFwaF9wcm9w ZXJ0eTwvcHJpbWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgY2F0YWxv ZyA8c3RydWN0bmFtZT5wZ19wcm9wZ3JhcGhfcHJvcGVydHk8L3N0cnVjdG5hbWU+IHN0b3Jlcwor ICAgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHByb3BlcnRpZXMgaW4gYSBwcm9wZXJ0eSBncmFwaC4g IFRoaXMgb25seSBzdG9yZXMKKyAgIGluZm9ybWF0aW9uIHRoYXQgYXBwbGllcyB0byBhIHByb3Bl cnR5IHRocm91Z2hvdXQgdGhlIGdyYXBoLCBpbmRlcGVuZGVudCBvZgorICAgd2hhdCBsYWJlbCBv ciBlbGVtZW50IGl0IGlzIG9uLiAgQWRkaXRpb25hbCBpbmZvcm1hdGlvbiwgaW5jbHVkaW5nIHRo ZQorICAgYWN0dWFsIGV4cHJlc3Npb25zIHRoYXQgZGVmaW5lIHRoZSBwcm9wZXJ0aWVzIGFyZSBp biB0aGUgY2F0YWxvZyA8bGluaworICAgbGlua2VuZD0iY2F0YWxvZy1wZy1wcm9wZ3JhcGgtbGFi ZWwtcHJvcGVydHkiPjxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eTwvc3Ry dWN0bmFtZT48L2xpbms+LgorICA8L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1 Y3RuYW1lPnBnX3Byb3BncmFwaF9wcm9wZXJ0eTwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+ CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+Cisg ICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJvdyBpZGVudGlmaWVyCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPnBncHBnaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5 cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jbGFzcyI+ PHN0cnVjdG5hbWU+cGdfY2xhc3M8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lk PC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSZWZl cmVuY2UgdG8gdGhlIHByb3BlcnR5IGdyYXBoIHRoYXQgdGhpcyBwcm9wZXJ0eSBiZWxvbmdzIHRv CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBncG5hbWU8L3N0cnVjdGZpZWxkPiA8dHlw ZT5uYW1lPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIG5h bWUgb2YgdGhlIHByb3BlcnR5LiAgVGhpcyBpcyB1bmlxdWUgYW1vbmcgdGhlIHByb3BlcnRpZXMg aW4gYQorICAgICAgIGdyYXBoLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wZ3B0eXBp ZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGlu ayBsaW5rZW5kPSJjYXRhbG9nLXBnLXR5cGUiPjxzdHJ1Y3RuYW1lPnBnX3R5cGU8L3N0cnVjdG5h bWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgZGF0YSB0eXBlIG9mIHRoaXMgcHJvcGVydHkuICAo VGhpcyBpcyByZXF1aXJlZCB0byBiZSBmaXhlZCBmb3IgYQorICAgICAgIGdpdmVuIHByb3BlcnR5 IGluIGEgcHJvcGVydHkgZ3JhcGgsIGV2ZW4gaWYgdGhlIHByb3BlcnR5IGlzIGRlZmluZWQKKyAg ICAgICBtdWx0aXBsZSB0aW1lcyBpbiBkaWZmZXJlbnQgZWxlbWVudHMgYW5kIGxhYmVscy4pCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90Ym9keT4KKyAgIDwvdGdy b3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CisKICA8c2VjdDEgaWQ9ImNhdGFsb2ctcGctcHVi bGljYXRpb24iPgogICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfcHVibGljYXRpb248L3N0cnVjdG5h bWU+PC90aXRsZT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9jL3Ny Yy9zZ21sL2RkbC5zZ21sCmluZGV4IGRlYTA0ZDY0ZGI2Li5mODljNmRhMGE3NCAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAt MTk4NSw3ICsxOTg1LDcgQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50cyBGUk9NIFBVQkxJQzsKICAg ICAgIDxwYXJhPgogICAgICAgIEFsbG93cyA8Y29tbWFuZD5TRUxFQ1Q8L2NvbW1hbmQ+IGZyb20K ICAgICAgICBhbnkgY29sdW1uLCBvciBzcGVjaWZpYyBjb2x1bW4ocyksIG9mIGEgdGFibGUsIHZp ZXcsIG1hdGVyaWFsaXplZAotICAgICAgIHZpZXcsIG9yIG90aGVyIHRhYmxlLWxpa2Ugb2JqZWN0 LgorICAgICAgIHZpZXcsIHByb3BlcnR5IGdyYXBoLCBvciBvdGhlciB0YWJsZS1saWtlIG9iamVj dC4KICAgICAgICBBbHNvIGFsbG93cyB1c2Ugb2YgPGNvbW1hbmQ+Q09QWSBUTzwvY29tbWFuZD4u CiAgICAgICAgVGhpcyBwcml2aWxlZ2UgaXMgYWxzbyBuZWVkZWQgdG8gcmVmZXJlbmNlIGV4aXN0 aW5nIGNvbHVtbiB2YWx1ZXMgaW4KICAgICAgICA8Y29tbWFuZD5VUERBVEU8L2NvbW1hbmQ+LCA8 Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+LApAQCAtNTMyMyw2ICs1MzIzLDIyOSBAQCBFWFBMQUlO IFNFTEVDVCBjb3VudCgqKSBGUk9NIG1lYXN1cmVtZW50IFdIRVJFIGxvZ2RhdGUgJmd0Oz0gREFU RSAnMjAwOC0wMS0wMSc7CiAgICA8L3BhcmE+CiAgPC9zZWN0MT4KIAorIDxzZWN0MSBpZD0iZGRs LXByb3BlcnR5LWdyYXBocyI+CisgIDx0aXRsZT5Qcm9wZXJ0eSBHcmFwaHM8L3RpdGxlPgorCisg IDxpbmRleHRlcm0gem9uZT0iZGRsLXByb3BlcnR5LWdyYXBocyI+CisgICA8cHJpbWFyeT5wcm9w ZXJ0eSBncmFwaDwvcHJpbWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBBIHBy b3BlcnR5IGdyYXBoIGlzIGEgd2F5IHRvIHJlcHJlc2VudCBkYXRhYmFzZSBjb250ZW50cywgaW5z dGVhZCBvZiB1c2luZworICAgcmVsYXRpb25hbCBzdHJ1Y3R1cmVzIHN1Y2ggYXMgdGFibGVzLiAg QSBwcm9wZXJ0eSBncmFwaCBjYW4gdGhlbiBiZSBxdWVyaWVkCisgICB1c2luZyBncmFwaCBwYXR0 ZXJuIG1hdGNoaW5nIHN5bnRheCwgaW5zdGVhZCBvZiBqb2luIHF1ZXJpZXMgdHlwaWNhbCBvZgor ICAgcmVsYXRpb25hbCBkYXRhYmFzZXMuICBQb3N0Z3JlU1FMIGltcGxlbWVudHMgU1FML1BHUTxm b290bm90ZT48cGFyYT5IZXJlLAorICAgUEdRIHN0YW5kcyBmb3IgPHF1b3RlPnByb3BlcnR5IGdy YXBoIHF1ZXJ5PC9xdW90ZT4uICBJbiB0aGUgamFyZ29uIG9mIGdyYXBoCisgICBkYXRhYmFzZXMs IDxxdW90ZT5wcm9wZXJ0eSBncmFwaDwvcXVvdGU+IGlzIG5vcm1hbGx5IGFiYnJldmlhdGVkIGFz IFBHLAorICAgd2hpY2ggaXMgY2xlYXJseSBjb25mdXNpbmcgZm9yIHByYWN0aW9uZXJzIG9mIFBv c3RncmVTUUwsIGFsc28gdXN1YWxseQorICAgYWJicmV2aWF0ZWQgYXMgUEcuPC9wYXJhPjwvZm9v dG5vdGU+LCB3aGljaCBpcyBwYXJ0IG9mIHRoZSBTUUwgc3RhbmRhcmQsCisgICB3aGVyZSBhIHBy b3BlcnR5IGdyYXBoIGlzIGRlZmluZWQgYXMgYSBraW5kIG9mIHJlYWQtb25seSB2aWV3IG92ZXIK KyAgIHJlbGF0aW9uYWwgdGFibGVzLiAgU28gdGhlIGFjdHVhbCBkYXRhIGlzIHN0aWxsIGluIHRh YmxlcyBvciB0YWJsZS1saWtlCisgICBvYmplY3RzLCBidXQgaXMgZXhwb3NlZCBhcyBhIGdyYXBo IGZvciBncmFwaCBxdWVyeWluZyBvcGVyYXRpb25zLiAgKFRoaXMgaXMKKyAgIGluIGNvbnRyYXN0 IHRvIG5hdGl2ZSBncmFwaCBkYXRhYmFzZXMsIHdoZXJlIHRoZSBkYXRhIGlzIHN0b3JlZCBkaXJl Y3RseSBpbgorICAgYSBncmFwaCBzdHJ1Y3R1cmUuKSAgVW5kZXJuZWF0aCwgYm90aCByZWxhdGlv bmFsIHF1ZXJpZXMgYW5kIGdyYXBoIHF1ZXJpZXMKKyAgIHVzZSB0aGUgc2FtZSBxdWVyeSBwbGFu bmluZyBhbmQgZXhlY3V0aW9uIGluZnJhc3R1Y3R1cmUsIGFuZCBpbiBmYWN0CisgICByZWxhdGlv bmFsIGFuZCBncmFwaCBxdWVyaWVzIGNhbiBiZSBjb21iaW5lZCBhbmQgbWl4ZWQgaW4gc2luZ2xl IHF1ZXJpZXMuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIEEgZ3JhcGggaXMgYSBzZXQgb2Yg dmVydGljZXMgYW5kIGVkZ2VzLiAgRWFjaCBlZGdlIGhhcyB0d28gZGlzdGluZ3Vpc2hhYmxlCisg ICBhc3NvY2lhdGVkIHZlcnRpY2VzIGNhbGxlZCB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiB2 ZXJ0aWNlcy4gIChTbyBpbgorICAgdGhpcyBtb2RlbCwgYWxsIGVkZ2VzIGFyZSBkaXJlY3RlZC4p ICBWZXJ0aWNlcyBhbmQgZWRnZXMgdG9nZXRoZXIgYXJlCisgICBjYWxsZWQgdGhlIGVsZW1lbnRz IG9mIHRoZSBncmFwaC4gIEEgcHJvcGVydHkgZ3JhcGggZXh0ZW5kcyB0aGlzIHdlbGwta25vd24K KyAgIG1hdGhlbWF0aWNhbCBzdHJ1Y3R1cmUgd2l0aCBhIHdheSB0byByZXByZXNlbnQgdXNlciBk YXRhLiAgSW4gYSBwcm9wZXJ0eQorICAgZ3JhcGgsIGVhY2ggdmVydGV4IG9yIGVkZ2UgaGFzIG9u ZSBvciBtb3JlIGFzc29jaWF0ZWQgbGFiZWxzLCBhbmQgZWFjaAorICAgbGFiZWwgaGFzIHplcm8g b3IgbW9yZSBwcm9wZXJ0aWVzLiAgVGhlIGxhYmVscyBhcmUgc2ltaWxhciB0byB0YWJsZSByb3cK KyAgIHR5cGVzIGluIHRoYXQgdGhleSBkZWZpbmUgdGhlIGtpbmQgb2YgdGhlIGNvbnRhaW5lZCBk YXRhIGFuZCBpdHMgc3RydWN0dXJlLgorICAgVGhlIHByb3BlcnRpZXMgYXJlIHNpbWlsYXIgdG8g Y29sdW1ucyBpbiB0aGF0IHRoZXkgY29udGFpbiB0aGUgYWN0dWFsIGRhdGEuCisgICBJbiBmYWN0 LCBieSBkZWZhdWx0LCBhIHByb3BlcnR5IGdyYXBoIGRlZmluaXRpb24gZXhwb3NlcyB0aGUgdW5k ZXJseWluZworICAgdGFibGVzIGFuZCBjb2x1bW5zIGFzIGxhYmVscyBhbmQgcHJvcGVydGllcywg YnV0IG1vcmUgY29tcGxpY2F0ZWQKKyAgIGRlZmluaXRpb25zIGFyZSBwb3NzaWJsZS4KKyAgPC9w YXJhPgorCisgIDxwYXJhPgorICAgQ29uc2lkZXIgdGhlIGZvbGxvd2luZyB0YWJsZSBkZWZpbml0 aW9uczoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBUQUJMRSBwcm9kdWN0cyAoCisgICAgcHJv ZHVjdF9ubyBpbnRlZ2VyIFBSSU1BUlkgS0VZLAorICAgIG5hbWUgdmFyY2hhciwKKyAgICBwcmlj ZSBudW1lcmljCispOworCitDUkVBVEUgVEFCTEUgY3VzdG9tZXJzICgKKyAgICBjdXN0b21lcl9p ZCBpbnRlZ2VyIFBSSU1BUlkgS0VZLAorICAgIG5hbWUgdmFyY2hhciwKKyAgICBhZGRyZXNzIHZh cmNoYXIKKyk7CisKK0NSRUFURSBUQUJMRSBvcmRlcnMgKAorICAgIG9yZGVyX2lkIGludGVnZXIg UFJJTUFSWSBLRVksCisgICAgb3JkZXJlZF93aGVuIGRhdGUKKyk7CisKK0NSRUFURSBUQUJMRSBv cmRlcl9pdGVtcyAoCisgICAgb3JkZXJfaXRlbXNfaWQgaW50ZWdlciBQUklNQVJZIEtFWSwKKyAg ICBvcmRlcl9pZCBpbnRlZ2VyIFJFRkVSRU5DRVMgb3JkZXJzIChvcmRlcl9pZCksCisgICAgcHJv ZHVjdF9ubyBpbnRlZ2VyIFJFRkVSRU5DRVMgcHJvZHVjdHMgKHByb2R1Y3Rfbm8pLAorICAgIHF1 YW50aXR5IGludGVnZXIKKyk7CisKK0NSRUFURSBUQUJMRSBjdXN0b21lcl9vcmRlcnMgKAorICAg IGN1c3RvbWVyX29yZGVyc19pZCBpbnRlZ2VyIFBSSU1BUlkgS0VZLAorICAgIGN1c3RvbWVyX2lk IGludGVnZXIgUkVGRVJFTkNFUyBjdXN0b21lcnMgKGN1c3RvbWVyX2lkKSwKKyAgICBvcmRlcl9p ZCBpbnRlZ2VyIFJFRkVSRU5DRVMgb3JkZXJzIChvcmRlcl9pZCkKKyk7Cis8L3Byb2dyYW1saXN0 aW5nPgorICAgV2hlbiBtYXBwaW5nIHRoaXMgdG8gYSBncmFwaCwgdGhlIGZpcnN0IHRocmVlIHRh YmxlcyB3b3VsZCBiZSB0aGUgdmVydGljZXMKKyAgIGFuZCB0aGUgbGFzdCB0d28gdGFibGVzIHdv dWxkIGJlIHRoZSBlZGdlcy4gIFRoZSBmb3JlaWduLWtleSBkZWZpbml0aW9ucworICAgY29ycmVz cG9uZCB0byB0aGUgZmFjdCB0aGF0IGVkZ2VzIGxpbmsgdHdvIHZlcnRpY2VzLiAgKEdyYXBoIGRl ZmluaXRpb25zCisgICB3b3JrIG1vcmUgbmF0dXJhbGx5IHdpdGggbWFueS10by1tYW55IHJlbGF0 aW9uc2hpcHMsIHNvIHRoaXMgZXhhbXBsZSBpcworICAgb3JnYW5pemVkIGxpa2UgdGhhdCwgZXZl biB0aG91Z2ggb25lLXRvLW1hbnkgcmVsYXRpb25zaGlwcyBtaWdodCBiZSB1c2VkCisgICBoZXJl IGluIGEgcHVyZSByZWxhdGlvbmFsIGFwcHJvYWNoLikKKyAgPC9wYXJhPgorCisgIDxwYXJhPgor ICAgSGVyZSBpcyBhbiBleGFtcGxlIGhvdyBhIHByb3BlcnR5IGdyYXBoIGNvdWxkIGJlIGRlZmlu ZWQgb24gdG9wIG9mIHRoZXNlCisgICB0YWJsZXM6Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUg UFJPUEVSVFkgR1JBUEggbXlzaG9wCisgICAgVkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHByb2R1 Y3RzLAorICAgICAgICBjdXN0b21lcnMsCisgICAgICAgIG9yZGVycworICAgICkKKyAgICBFREdF IFRBQkxFUyAoCisgICAgICAgIG9yZGVyX2l0ZW1zIFNPVVJDRSBvcmRlcnMgREVTVElOQVRJT04g cHJvZHVjdHMsCisgICAgICAgIGN1c3RvbWVyX29yZGVycyBTT1VSQ0UgY3VzdG9tZXJzIERFU1RJ TkFUSU9OIG9yZGVycworICAgICk7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyAg PHBhcmE+CisgICBUaGlzIGdyYXBoIGNvdWxkIHRoZW4gYmUgcXVlcmllZCBsaWtlIHRoaXM6Cis8 cHJvZ3JhbWxpc3Rpbmc+CistLSBnZXQgbGlzdCBvZiBjdXN0b21lcnMgYWN0aXZlIHRvZGF5CitT RUxFQ1QgY3VzdG9tZXJfbmFtZSBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMgSVMg Y3VzdG9tZXJzKS1bSVMgY3VzdG9tZXJfb3JkZXJzXS0+KG8gSVMgb3JkZXJzIFdIRVJFIG9yZGVy ZWRfd2hlbiA9IGN1cnJlbnRfZGF0ZSkgQ09MVU1OUyAoYy5uYW1lIEFTIGN1c3RvbWVyX25hbWUp KTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICBjb3JyZXNwb25kaW5nIGFwcHJveGltYXRlbHkgdG8g dGhpcyByZWxhdGlvbmFsIHF1ZXJ5OgorPHByb2dyYW1saXN0aW5nPgorLS0gZ2V0IGxpc3Qgb2Yg Y3VzdG9tZXJzIGFjdGl2ZSB0b2RheQorU0VMRUNUIGN1c3RvbWVycy5uYW1lIEZST00gY3VzdG9t ZXJzIEpPSU4gY3VzdG9tZXJfb3JkZXJzIFVTSU5HIChjdXN0b21lcl9pZCkgSk9JTiBvcmRlcnMg VVNJTkcgKG9yZGVyX2lkKSBXSEVSRSBvcmRlcnMub3JkZXJlZF93aGVuID0gY3VycmVudF9kYXRl OworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIGFib3Zl IGRlZmluaXRpb24gcmVxdWlyZXMgdGhhdCBhbGwgdGFibGVzIGhhdmUgcHJpbWFyeSBrZXlzIGFu ZCB0aGF0CisgICBmb3IgZWFjaCBlZGdlIHRoZXJlIGlzIGFuIGFwcHJvcHJpYXRlIGZvcmVpZ24g a2V5LiAgT3RoZXJ3aXNlLCBhZGRpdGlvbmFsCisgICBjbGF1c2VzIGhhdmUgdG8gYmUgc3BlY2lm aWVkIHRvIGlkZW50aWZ5IHRoZSBrZXkgY29sdW1ucy4gIEZvciBleGFtcGxlLAorICAgdGhpcyB3 b3VsZCBiZSB0aGUgZnVsbHkgdmVyYm9zZSBkZWZpbml0aW9uIHRoYXQgZG9lcyBub3QgcmVseSBv biBwcmltYXJ5CisgICBhbmQgZm9yZWlnbiBrZXlzOgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRF IFBST1BFUlRZIEdSQVBIIG15c2hvcAorICAgIFZFUlRFWCBUQUJMRVMgKAorICAgICAgICBwcm9k dWN0cyBLRVkgKHByb2R1Y3Rfbm8pLAorICAgICAgICBjdXN0b21lcnMgS0VZIChjdXN0b21lcl9p ZCksCisgICAgICAgIG9yZGVycyBLRVkgKG9yZGVyX2lkKQorICAgICkKKyAgICBFREdFIFRBQkxF UyAoCisgICAgICAgIG9yZGVyX2l0ZW1zIEtFWSAob3JkZXJfaXRlbXNfaWQpCisgICAgICAgICAg ICBTT1VSQ0UgS0VZIChvcmRlcl9pZCkgUkVGRVJFTkNFUyBvcmRlcnMgKG9yZGVyX2lkKQorICAg ICAgICAgICAgREVTVElOQVRJT04gS0VZIChwcm9kdWN0X25vKSBSRUZFUkVOQ0VTIHByb2R1Y3Rz IChwcm9kdWN0X25vKSwKKyAgICAgICAgY3VzdG9tZXJfb3JkZXJzIEtFWSAoY3VzdG9tZXJfb3Jk ZXJzX2lkKQorICAgICAgICAgICAgU09VUkNFIEtFWSAoY3VzdG9tZXJfaWQpIFJFRkVSRU5DRVMg Y3VzdG9tZXJzIChjdXN0b21lcl9pZCkKKyAgICAgICAgICAgIERFU1RJTkFUSU9OIEtFWSAob3Jk ZXJfaWQpIFJFRkVSRU5DRVMgb3JkZXJzIChvcmRlcl9pZCkKKyAgICApOworPC9wcm9ncmFtbGlz dGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgQXMgbWVudGlvbmVkIGFib3ZlLCBieSBk ZWZhdWx0LCB0aGUgbmFtZXMgb2YgdGhlIHRhYmxlcyBhbmQgY29sdW1ucyBhcmUKKyAgIGV4cG9z ZWQgYXMgbGFiZWxzIGFuZCBwcm9wZXJ0aWVzLCByZXNwZWN0aXZlbHkuICBUaGUgY2xhdXNlcyA8 bGl0ZXJhbD5JUworICAgY3VzdG9tZXI8L2xpdGVyYWw+LCA8bGl0ZXJhbD5JUyBvcmRlcjwvbGl0 ZXJhbD4sIGV0Yy4gaW4gdGhlCisgICA8bGl0ZXJhbD5NQVRDSDwvbGl0ZXJhbD4gY2xhdXNlIGlu IGZhY3QgcmVmZXIgdG8gbGFiZWxzLCBub3QgdGFibGUgbmFtZXMuCisgIDwvcGFyYT4KKworICA8 cGFyYT4KKyAgIE9uZSB1c2Ugb2YgbGFiZWxzIGlzIHRvIGV4cG9zZSBhIHRhYmxlIHRocm91Z2gg YSBkaWZmZXJlbnQgbmFtZSBpbiB0aGUKKyAgIGdyYXBoLiAgRm9yIGV4YW1wbGUsIGluIGdyYXBo cywgdmVydGljZXMgdHlwaWNhbGx5IGhhdmUgc2luZ3VsYXIgbm91bnMgYXMKKyAgIGxhYmVscyBh bmQgZWRnZXMgdHlwaWNhbGx5IGhhdmUgdmVyYnMgYXMgbGFiZWxzLCBzdWNoIGFzIDxxdW90ZT5p czwvcXVvdGU+LAorICAgPHF1b3RlPmhhczwvcXVvdGU+LCA8cXVvdGU+Y29udGFpbnM8L3F1b3Rl Piwgb3Igc29tZXRoaW5nIHNwZWNpZmljIGxpa2UKKyAgIDxxdW90ZT5hcHByb3ZlczwvcXVvdGU+ LiAgV2UgY2FuIGludHJvZHVjZSBzdWNoIGxhYmVscyBpbnRvIG91ciBleGFtcGxlCisgICBsaWtl IHRoaXM6Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggbXlzaG9wCisg ICAgVkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHByb2R1Y3RzIExBQkVMIHByb2R1Y3QsCisgICAg ICAgIGN1c3RvbWVycyBMQUJFTCBjdXN0b21lciwKKyAgICAgICAgb3JkZXJzIExBQkVMIG9yZGVy CisgICAgKQorICAgIEVER0UgVEFCTEVTICgKKyAgICAgICAgb3JkZXJfaXRlbXMgU09VUkNFIG9y ZGVycyBERVNUSU5BVElPTiBwcm9kdWN0cyBMQUJFTCBjb250YWlucywKKyAgICAgICAgY3VzdG9t ZXJfb3JkZXJzIFNPVVJDRSBjdXN0b21lcnMgREVTVElOQVRJT04gb3JkZXJzIExBQkVMIGhhcwor ICAgICk7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBXaXRo IHRoaXMgZGVmaW5pdGlvbiwgd2UgY2FuIHdyaXRlIGEgcXVlcnkgbGlrZSB0aGlzOgorPHByb2dy YW1saXN0aW5nPgorU0VMRUNUIGN1c3RvbWVyX25hbWUgRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9w IE1BVENIIChjOmN1c3RvbWVyKS1bOmhhc10tPihvOm9yZGVyIFdIRVJFIG9yZGVyZWRfd2hlbiA9 IGN1cnJlbnRfZGF0ZSkgQ09MVU1OUyAoYy5uYW1lIEFTIGN1c3RvbWVyX25hbWUpKTsKKzwvcHJv Z3JhbWxpc3Rpbmc+CisgICBXaXRoIHRoZSBuZXcgbGFiZWxzIGFuZCB1c2luZyB0aGUgY29sb24g aW5zdGVhZCBvZiA8bGl0ZXJhbD5JUzwvbGl0ZXJhbD4sCisgICB3aGljaCBhcmUgZXF1aXZhbGVu dCwgdGhlIDxsaXRlcmFsPk1BVENIPC9saXRlcmFsPiBjbGF1c2UgaXMgbm93IG1vcmUKKyAgIGNv bXBhY3QgYW5kIGludHVpdGl2ZS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgQW5vdGhlciB1 c2UgaXMgdG8gYXBwbHkgdGhlIHNhbWUgbGFiZWwgdG8gbXVsdGlwbGUgZWxlbWVudCB0YWJsZXMu ICBGb3IKKyAgIGV4YW1wbGUsIGNvbnNpZGVyIHRoaXMgYWRkaXRpb25hbCB0YWJsZToKKzxwcm9n cmFtbGlzdGluZz4KK0NSRUFURSBUQUJMRSBlbXBsb3llZXMgKAorICAgIGVtcGxveWVlX2lkIGlu dGVnZXIgUFJJTUFSWSBLRVksCisgICAgZW1wbG95ZWVfbmFtZSB2YXJjaGFyLAorICAgIC4uLgor KTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CithbmQgdGhlIGZvbGxvd2luZyBncmFwaCBkZWZpbml0aW9u OgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFBST1BFUlRZIEdSQVBIIG15c2hvcAorICAgIFZF UlRFWCBUQUJMRVMgKAorICAgICAgICBwcm9kdWN0cyBMQUJFTCBwcm9kdWN0LAorICAgICAgICBj dXN0b21lcnMgTEFCRUwgY3VzdG9tZXIgTEFCRUwgcGVyc29uIFBST1BFUlRJRVMgKG5hbWUpLAor ICAgICAgICBvcmRlcnMgTEFCRUwgb3JkZXIsCisgICAgICAgIGVtcGxveWVlcyBMQUJFTCBlbXBs b3llZSBMQUJFTCBwZXJzb24gUFJPUEVSVElFUyAoZW1wbG95ZWVfbmFtZSBBUyBuYW1lKQorICAg ICkKKyAgICBFREdFIFRBQkxFUyAoCisgICAgICAgIG9yZGVyX2l0ZW1zIFNPVVJDRSBvcmRlcnMg REVTVElOQVRJT04gcHJvZHVjdHMgTEFCRUwgY29udGFpbnMsCisgICAgICAgIGN1c3RvbWVyX29y ZGVycyBTT1VSQ0UgY3VzdG9tZXJzIERFU1RJTkFUSU9OIG9yZGVycyBMQUJFTCBoYXMKKyAgICAp OworPC9wcm9ncmFtbGlzdGluZz4KKyAgIChJbiBwcmFjdGljZSwgdGhlcmUgb3VnaHQgdG8gYmUg YW4gZWRnZSBsaW5raW5nIHRoZQorICAgPGxpdGVyYWw+ZW1wbG95ZWVzPC9saXRlcmFsPiB0YWJs ZSB0byBzb21ldGhpbmcsIGJ1dCBpdCBpcyBhbGxvd2VkIGxpa2UKKyAgIHRoaXMuKSAgVGhlbiB3 ZSBjYW4gcnVuIGEgcXVlcnkgbGlrZSB0aGlzIChpbmNvbXBsZXRlKToKKzxwcm9ncmFtbGlzdGlu Zz4KK1NFTEVDVCAuLi4gRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENIICg6cGVyc29uIFdI RVJFIG5hbWUgPSAnLi4uJyktW10tPi4uLiBDT0xVTU5TICguLi4pKTsKKzwvcHJvZ3JhbWxpc3Rp bmc+CisgICBUaGlzIHdvdWxkIGF1dG9tYXRpY2FsbHkgY29uc2lkZXIgYm90aCB0aGUgPGxpdGVy YWw+Y3VzdG9tZXJzPC9saXRlcmFsPiBhbmQKKyAgIHRoZSA8bGl0ZXJhbD5lbXBsb3llZXM8L2xp dGVyYWw+IHRhYmxlcyB3aGVuIGxvb2tpbmcgZm9yIGFuIGVkZ2Ugd2l0aCB0aGUKKyAgIDxsaXRl cmFsPnBlcnNvbjwvbGl0ZXJhbD4gbGFiZWwuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFdo ZW4gbW9yZSB0aGFuIG9uZSBlbGVtZW50IHRhYmxlIGhhcyB0aGUgc2FtZSBsYWJlbCwgaXQgaXMg cmVxdWlyZWQgdGhhdAorICAgdGhlIHByb3BlcnRpZXMgbWF0Y2ggaW4gbnVtYmVyLCBuYW1lLCBh bmQgdHlwZS4gIEluIHRoZSBleGFtcGxlLCB3ZSBzcGVjaWZ5CisgICBhbiBleHBsaWNpdCBwcm9w ZXJ0eSBsaXN0IGFuZCBpbiBvbmUgY2FzZSBvdmVycmlkZSB0aGUgbmFtZSBvZiB0aGUgY29sdW1u CisgICB0byBhY2hpZXZlIHRoaXMuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIEZvciBtb3Jl IGRldGFpbHMgb24gdGhlIHN5bnRheCBmb3IgY3JlYXRpbmcgcHJvcGVydHkgZ3JhcGhzLCBzZWUg PGxpbmsKKyAgIGxpbmtlbmQ9InNxbC1jcmVhdGUtcHJvcGVydHktZ3JhcGgiPjxjb21tYW5kPkNS RUFURSBQUk9QRVJUWQorICAgR1JBUEg8L2NvbW1hbmQ+PC9saW5rPi4gIE1vcmUgZGV0YWlscyBh Ym91dCB0aGUgZ3JhcGggcXVlcnkgc3ludGF4IGlzIGluCisgICA8eHJlZiBsaW5rZW5kPSJxdWVy aWVzLWdyYXBoIi8+LgorICA8L3BhcmE+CisgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0iZGRsLW90 aGVycyI+CiAgIDx0aXRsZT5PdGhlciBEYXRhYmFzZSBPYmplY3RzPC90aXRsZT4KIApkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2ZlYXR1cmVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZmVhdHVyZXMu c2dtbAppbmRleCA5NjZmZDM5ODgyNy4uMWFiZTZjY2QzZDUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9mZWF0dXJlcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9mZWF0dXJlcy5zZ21sCkBAIC03 MCwxMCArNzAsMTAgQEAKIAogIDxwYXJhPgogICBUaGUgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8 L3Byb2R1Y3RuYW1lPiBjb3JlIGNvdmVycyBwYXJ0cyAxLCAyLCA5LAotICAxMSwgYW5kIDE0LiAg UGFydCAzIGlzIGNvdmVyZWQgYnkgdGhlIE9EQkMgZHJpdmVyLCBhbmQgcGFydCAxMyBpcworICAx MSwgMTQsIGFuZCAxNi4gIFBhcnQgMyBpcyBjb3ZlcmVkIGJ5IHRoZSBPREJDIGRyaXZlciwgYW5k IHBhcnQgMTMgaXMKICAgY292ZXJlZCBieSB0aGUgUEwvSmF2YSBwbHVnLWluLCBidXQgZXhhY3Qg Y29uZm9ybWFuY2UgaXMgY3VycmVudGx5CiAgIG5vdCBiZWluZyB2ZXJpZmllZCBmb3IgdGhlc2Ug Y29tcG9uZW50cy4gIFRoZXJlIGFyZSBjdXJyZW50bHkgbm8KLSAgaW1wbGVtZW50YXRpb25zIG9m IHBhcnRzIDQsIDEwLCAxNSwgYW5kIDE2CisgIGltcGxlbWVudGF0aW9ucyBvZiBwYXJ0cyA0LCAx MCwgYW5kIDE1CiAgIGZvciA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+Lgog IDwvcGFyYT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbCBiL2RvYy9zcmMv c2dtbC9mdW5jLnNnbWwKaW5kZXggNDczNzBlNTgxYWUuLjQ0OWU2OWMwN2U1IDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwKQEAg LTI2MDk4LDYgKzI2MDk4LDIxIEBAIFNFTEVDVCBwZ190eXBlX2lzX3Zpc2libGUoJ215c2NoZW1h LndpZGdldCc6OnJlZ3R5cGUpOwogICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICAgPC9yb3c+ CiAKKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImZ1bmNfc2lnbmF0dXJlIj4KKyAgICAgICAgPGluZGV4dGVybT4KKyAgICAgICAg IDxwcmltYXJ5PnBnX2dldF9wcm9wZ3JhcGhkZWY8L3ByaW1hcnk+CisgICAgICAgIDwvaW5kZXh0 ZXJtPgorICAgICAgICA8ZnVuY3Rpb24+cGdfZ2V0X3Byb3BncmFwaGRlZjwvZnVuY3Rpb24+ICgg PHBhcmFtZXRlcj5wcm9wZ3JhcGg8L3BhcmFtZXRlcj4gPHR5cGU+b2lkPC90eXBlPiApCisgICAg ICAgIDxyZXR1cm52YWx1ZT50ZXh0PC9yZXR1cm52YWx1ZT4KKyAgICAgICA8L3BhcmE+CisgICAg ICAgPHBhcmE+CisgICAgICAgIFJlY29uc3RydWN0cyB0aGUgY3JlYXRpbmcgY29tbWFuZCBmb3Ig YSBwcm9wZXJ0eSBncmFwaC4KKyAgICAgICAgKFRoaXMgaXMgYSBkZWNvbXBpbGVkIHJlY29uc3Ry dWN0aW9uLCBub3QgdGhlIG9yaWdpbmFsIHRleHQKKyAgICAgICAgb2YgdGhlIGNvbW1hbmQuKQor ICAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICAgPC9yb3c+CisKICAgICAgIDxyb3c+CiAgICAg ICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImZ1bmNfc2lnbmF0 dXJlIj4KICAgICAgICAgPGluZGV4dGVybT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9pbmZv cm1hdGlvbl9zY2hlbWEuc2dtbCBiL2RvYy9zcmMvc2dtbC9pbmZvcm1hdGlvbl9zY2hlbWEuc2dt bAppbmRleCA5NDQyYjA3MThjMC4uYzkyYjY1YjAzYTUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9pbmZvcm1hdGlvbl9zY2hlbWEuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvaW5mb3JtYXRpb25f c2NoZW1hLnNnbWwKQEAgLTQxNzEsNiArNDE3MSwxMDk4IEBAIE9SREVSIEJZIGMub3JkaW5hbF9w b3NpdGlvbjsKICAgPC90YWJsZT4KICA8L3NlY3QxPgogCisgPHNlY3QxIGlkPSJpbmZvc2NoZW1h LXBnLWVkZ2UtdGFibGUtY29tcG9uZW50cyI+CisgIDx0aXRsZT48bGl0ZXJhbD5wZ19lZGdlX3Rh YmxlX2NvbXBvbmVudHM8L2xpdGVyYWw+PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSB2aWV3 IDxsaXRlcmFsPnBnX2VkZ2VfdGFibGVfY29tcG9uZW50czwvbGl0ZXJhbD4gaWRlbnRpZmllcyB3 aGljaAorICAgY29sdW1ucyBhcmUgcGFydCBvZiB0aGUgc291cmNlIG9yIGRlc3RpbmF0aW9uIHZl cnRleCBrZXlzLCBhcyB3ZWxsIGFzIHRoZWlyCisgICBjb3JyZXNwb25kaW5nIGNvbHVtbnMgaW4g dGhlIHZlcnRleCB0YWJsZXMgYmVpbmcgbGlua2VkIHRvLCBpbiB0aGUgZWRnZQorICAgdGFibGVz IG9mIHByb3BlcnR5IGdyYXBocyBkZWZpbmVkIGluIHRoZSBjdXJyZW50IGRhdGFiYXNlLiAgT25s eSB0aG9zZQorICAgcHJvcGVydHkgZ3JhcGhzIGFyZSBzaG93biB0aGF0IHRoZSBjdXJyZW50IHVz ZXIgaGFzIGFjY2VzcyB0byAoYnkgd2F5IG9mCisgICBiZWluZyB0aGUgb3duZXIgb3IgaGF2aW5n IHNvbWUgcHJpdmlsZWdlKS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIHNvdXJjZSBh bmQgZGVzdGluYXRpb24gdmVydGV4IGxpbmtzIG9mIGVkZ2UgdGFibGVzIGFyZSBzcGVjaWZpZWQg aW4KKyAgIDxjb21tYW5kPkNSRUFURSBQUk9QRVJUWSBHUkFQSDwvY29tbWFuZD4gYW5kIGRlZmF1 bHQgdG8gZm9yZWlnbiBrZXlzIGluCisgICBjZXJ0YWluIGNhc2VzLgorICA8L3BhcmE+CisKKyAg PHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2VkZ2VfdGFibGVfY29tcG9uZW50czwv c3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0 aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnByb3BlcnR5X2dy YXBoX2NhdGFsb2c8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIGRhdGFiYXNlIHRo YXQgY29udGFpbnMgdGhlIHByb3BlcnR5IGdyYXBoIChhbHdheXMgdGhlIGN1cnJlbnQgZGF0YWJh c2UpCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnByb3BlcnR5X2dyYXBoX3NjaGVtYTwv c3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgc2NoZW1hIHRoYXQgY29udGFpbnMgdGhl IHByb3BlcnR5IGdyYXBoCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnByb3BlcnR5X2dy YXBoX25hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIHByb3BlcnR5X2dyYXBo CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmVkZ2VfdGFibGVfYWxpYXM8L3N0cnVjdGZp ZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgIFRoZSBlbGVtZW50IHRhYmxlIGFsaWFzIG9mIHRoZSBlZGdlIHRhYmxlIGJl aW5nIGRlc2NyaWJlZAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52ZXJ0ZXhfdGFibGVf YWxpYXM8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBlbGVtZW50IHRhYmxlIGFsaWFzIG9mIHRo ZSBzb3VyY2Ugb3IgZGVzdGluYXRpb24gdmVydGV4IHRhYmxlIGJlaW5nIGxpbmtlZCB0bworICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5lZGdlX2VuZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmNo YXJhY3Rlcl9kYXRhPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAg RWl0aGVyIDxsaXRlcmFsPlNPVVJDRTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+REVTVElOQVRJT048 L2xpdGVyYWw+OworICAgICAgIHNwZWNpZmllcyB3aGljaCBlZGdlIGxpbmsgaXMgYmVpbmcgZGVz Y3JpYmVkLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5lZGdlX3RhYmxlX2NvbHVtbl9u YW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBjb2x1bW4gdGhhdCBpcyBwYXJ0 IG9mIHRoZSBzb3VyY2Ugb3IgZGVzdGluYXRpb24gdmVydGV4IGtleSBpbiB0aGlzIGVkZ2UgdGFi bGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmVydGV4X3RhYmxlX2NvbHVtbl9uYW1l PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBjb2x1bW4gdGhhdCBpcyBwYXJ0IG9m IHRoZSBrZXkgaW4gdGhlIHNvdXJjZSBvciBkZXN0aW5hdGlvbgorICAgICAgIHZlcnRleCB0YWJs ZSBiZWluZyBsaW5rZWQgdG8KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+b3JkaW5hbF9w b3NpdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNhcmRpbmFsX251bWJlcjwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE9yZGluYWwgcG9zaXRpb24gb2YgdGhlIGNv bHVtbnMgd2l0aGluIHRoZSBrZXkgKGNvdW50IHN0YXJ0cyBhdCAxKQorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJs ZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJpbmZvc2NoZW1hLXBnLWVsZW1lbnQtdGFibGUt a2V5LWNvbHVtbnMiPgorICA8dGl0bGU+PGxpdGVyYWw+cGdfZWxlbWVudF90YWJsZV9rZXlfY29s dW1uczwvbGl0ZXJhbD48L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIHZpZXcgPGxpdGVyYWw+ cGdfZWxlbWVudF9rZXlfY29sdW1uczwvbGl0ZXJhbD4gaWRlbnRpZmllcyB3aGljaCBjb2x1bW5z CisgICBhcmUgcGFydCBvZiB0aGUga2V5cyBvZiB0aGUgZWxlbWVudCB0YWJsZXMgb2YgcHJvcGVy dHkgZ3JhcGhzIGRlZmluZWQgaW4KKyAgIHRoZSBjdXJyZW50IGRhdGFiYXNlLiAgT25seSB0aG9z ZSBwcm9wZXJ0eSBncmFwaHMgYXJlIHNob3duIHRoYXQgdGhlCisgICBjdXJyZW50IHVzZXIgaGFz IGFjY2VzcyB0byAoYnkgd2F5IG9mIGJlaW5nIHRoZSBvd25lciBvciBoYXZpbmcgc29tZQorICAg cHJpdmlsZWdlKS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIGtleSBvZiBhbiBlbGVt ZW50IHRhYmxlIHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIHJvd3MgaW4gaXQuICBJdCBpcworICAg ZWl0aGVyIHNwZWNpZmllZCB1c2luZyB0aGUgPGxpdGVyYWw+S0VZPC9saXRlcmFsPiBjbGF1c2Ug aW4gPGNvbW1hbmQ+Q1JFQVRFCisgICBQUk9QRVJUWSBHUkFQSDwvY29tbWFuZD4gb3IgZGVmYXVs dHMgdG8gdGhlIHByaW1hcnkga2V5LgorICA8L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxl PjxzdHJ1Y3RuYW1lPnBnX2VsZW1lbnRfdGFibGVfa2V5X2NvbHVtbnM8L3N0cnVjdG5hbWU+IENv bHVtbnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9jYXRhbG9nPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBkYXRhYmFzZSB0aGF0IGNvbnRhaW5zIHRo ZSBwcm9wZXJ0eSBncmFwaCAoYWx3YXlzIHRoZSBjdXJyZW50IGRhdGFiYXNlKQorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9zY2hlbWE8L3N0cnVjdGZpZWxkPiA8 dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgIE5hbWUgb2YgdGhlIHNjaGVtYSB0aGF0IGNvbnRhaW5zIHRoZSBwcm9wZXJ0eSBncmFw aAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9uYW1lPC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBwcm9wZXJ0eV9ncmFwaAorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD5lbGVtZW50X3RhYmxlX2FsaWFzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICBFbGVtZW50IHRhYmxlIGFsaWFzICh1bmlxdWUgaWRlbnRpZmllciBvZiBhbiBlbGVtZW50IHRh YmxlIHdpdGhpbiBhCisgICAgICAgcHJvcGVydHkgZ3JhcGgpCisgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0 cnVjdGZpZWxkPmNvbHVtbl9uYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8 L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBj b2x1bW4gdGhhdCBpcyBwYXJ0IG9mIHRoZSBrZXkKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+b3JkaW5hbF9wb3NpdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNhcmRpbmFsX251bWJlcjwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE9yZGluYWwgcG9zaXRp b24gb2YgdGhlIGNvbHVtbiB3aXRoaW4gdGhlIGtleSAoY291bnQgc3RhcnRzIGF0IDEpCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3Vw PgorICA8L3RhYmxlPgorIDwvc2VjdDE+CisKKyA8c2VjdDEgaWQ9ImluZm9zY2hlbWEtcGctZWxl bWVudC10YWJsZS1sYWJlbHMiPgorICA8dGl0bGU+PGxpdGVyYWw+cGdfZWxlbWVudF90YWJsZV9s YWJlbHM8L2xpdGVyYWw+PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSB2aWV3IDxsaXRlcmFs PnBnX2VsZW1lbnRfdGFibGVfbGFiZWxzPC9saXRlcmFsPiBzaG93cyB3aGljaCBsYWJlbHMgYXJl CisgICBkZWZpbmVkIG9uIHRoZSBlbGVtZW50IHRhYmxlcyBvZiBwcm9wZXJ0eSBncmFwaHMgZGVm aW5lZCBpbiB0aGUgY3VycmVudAorICAgZGF0YWJhc2UuICBPbmx5IHRob3NlIHByb3BlcnR5IGdy YXBocyBhcmUgc2hvd24gdGhhdCB0aGUgY3VycmVudCB1c2VyIGhhcworICAgYWNjZXNzIHRvIChi eSB3YXkgb2YgYmVpbmcgdGhlIG93bmVyIG9yIGhhdmluZyBzb21lIHByaXZpbGVnZSkuCisgIDwv cGFyYT4KKworICA8dGFibGU+CisgICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfZWxlbWVudF90YWJs ZV9sYWJlbHM8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xzPSIx Ij4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIENvbHVt biBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBEZXNjcmlwdGlvbgor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisKKyAgICA8 dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5w cm9wZXJ0eV9ncmFwaF9jYXRhbG9nPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8 L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBk YXRhYmFzZSB0aGF0IGNvbnRhaW5zIHRoZSBwcm9wZXJ0eSBncmFwaCAoYWx3YXlzIHRoZSBjdXJy ZW50IGRhdGFiYXNlKQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFw aF9zY2hlbWE8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIHNjaGVtYSB0aGF0IGNv bnRhaW5zIHRoZSBwcm9wZXJ0eSBncmFwaAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5w cm9wZXJ0eV9ncmFwaF9uYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBwcm9w ZXJ0eV9ncmFwaAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5lbGVtZW50X3RhYmxlX2Fs aWFzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICBFbGVtZW50IHRhYmxlIGFsaWFzICh1bmlxdWUgaWRl bnRpZmllciBvZiBhbiBlbGVtZW50IHRhYmxlIHdpdGhpbiBhCisgICAgICAgcHJvcGVydHkgZ3Jh cGgpCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmxhYmVsX25hbWU8L3N0cnVjdGZpZWxk PiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJh PgorICAgICAgIE5hbWUgb2YgdGhlIGxhYmVsCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+ CisKKyA8c2VjdDEgaWQ9ImluZm9zY2hlbWEtcGctZWxlbWVudC10YWJsZS1wcm9wZXJ0aWVzIj4K KyAgPHRpdGxlPjxsaXRlcmFsPnBnX2VsZW1lbnRfdGFibGVfcHJvcGVydGllczwvbGl0ZXJhbD48 L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIHZpZXcgPGxpdGVyYWw+cGdfZWxlbWVudF90YWJs ZV9sYWJlbHM8L2xpdGVyYWw+IHNob3dzIHRoZSBkZWZpbml0aW9ucworICAgb2YgdGhlIHByb3Bl cnRpZXMgZm9yIHRoZSBlbGVtZW50IHRhYmxlcyBvZiBwcm9wZXJ0eSBncmFwaHMgZGVmaW5lZCBp biB0aGUKKyAgIGN1cnJlbnQgZGF0YWJhc2UuICBPbmx5IHRob3NlIHByb3BlcnR5IGdyYXBocyBh cmUgc2hvd24gdGhhdCB0aGUgY3VycmVudAorICAgdXNlciBoYXMgYWNjZXNzIHRvIChieSB3YXkg b2YgYmVpbmcgdGhlIG93bmVyIG9yIGhhdmluZyBzb21lIHByaXZpbGVnZSkuCisgIDwvcGFyYT4K KworICA8dGFibGU+CisgICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfZWxlbWVudF90YWJsZV9wcm9w ZXJ0aWVzPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KKyAgIDx0Z3JvdXAgY29scz0iMSI+ CisgICAgPHRoZWFkPgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICBDb2x1bW4g VHlwZQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRi b2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cHJv cGVydHlfZ3JhcGhfY2F0YWxvZzwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgZGF0 YWJhc2UgdGhhdCBjb250YWlucyB0aGUgcHJvcGVydHkgZ3JhcGggKGFsd2F5cyB0aGUgY3VycmVu dCBkYXRhYmFzZSkKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cHJvcGVydHlfZ3JhcGhf c2NoZW1hPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBzY2hlbWEgdGhhdCBjb250 YWlucyB0aGUgcHJvcGVydHkgZ3JhcGgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cHJv cGVydHlfZ3JhcGhfbmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBl PgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgcHJvcGVy dHlfZ3JhcGgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ZWxlbWVudF90YWJsZV9hbGlh czwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgRWxlbWVudCB0YWJsZSBhbGlhcyAodW5pcXVlIGlkZW50 aWZpZXIgb2YgYW4gZWxlbWVudCB0YWJsZSB3aXRoaW4gYQorICAgICAgIHByb3BlcnR5IGdyYXBo KQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9uYW1lPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBOYW1lIG9mIHRoZSBwcm9wZXJ0eQorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD5wcm9wZXJ0eV9leHByZXNzaW9uPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2hhcmFjdGVyX2Rh dGE8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBFeHByZXNzaW9u IG9mIHRoZSBwcm9wZXJ0eSBkZWZpbml0aW9uIGZvciB0aGlzIGVsZW1lbnQgdGFibGUKKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+ CisgIDwvdGFibGU+CisgPC9zZWN0MT4KKworIDxzZWN0MSBpZD0iaW5mb3NjaGVtYS1wZy1lbGVt ZW50LXRhYmxlcyI+CisgIDx0aXRsZT48bGl0ZXJhbD5wZ19lbGVtZW50X3RhYmxlczwvbGl0ZXJh bD48L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIHZpZXcgPGxpdGVyYWw+cGdfZWxlbWVudF90 YWJsZXM8L2xpdGVyYWw+IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0CisgICB0aGUgZWxlbWVu dCB0YWJsZXMgb2YgcHJvcGVydHkgZ3JhcGhzIGRlZmluZWQgaW4gdGhlIGN1cnJlbnQgZGF0YWJh c2UuCisgICBPbmx5IHRob3NlIHByb3BlcnR5IGdyYXBocyBhcmUgc2hvd24gdGhhdCB0aGUgY3Vy cmVudCB1c2VyIGhhcyBhY2Nlc3MgdG8KKyAgIChieSB3YXkgb2YgYmVpbmcgdGhlIG93bmVyIG9y IGhhdmluZyBzb21lIHByaXZpbGVnZSkuCisgIDwvcGFyYT4KKworICA8dGFibGU+CisgICA8dGl0 bGU+PHN0cnVjdG5hbWU+cGdfZWxlbWVudF90YWJsZXM8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3Rp dGxlPgorICAgPHRncm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorICAgIDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9jYXRhbG9nPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBOYW1lIG9mIHRoZSBkYXRhYmFzZSB0aGF0IGNvbnRhaW5zIHRoZSBwcm9wZXJ0 eSBncmFwaCAoYWx3YXlzIHRoZSBjdXJyZW50IGRhdGFiYXNlKQorICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9zY2hlbWE8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxf aWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5h bWUgb2YgdGhlIHNjaGVtYSB0aGF0IGNvbnRhaW5zIHRoZSBwcm9wZXJ0eSBncmFwaAorICAgICAg PC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9uYW1lPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICBOYW1lIG9mIHRoZSBwcm9wZXJ0eV9ncmFwaAorICAgICAgPC9wYXJhPjwvZW50cnk+ CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1 Y3RmaWVsZD5lbGVtZW50X3RhYmxlX2FsaWFzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50 aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBFbGVtZW50 IHRhYmxlIGFsaWFzICh1bmlxdWUgaWRlbnRpZmllciBvZiBhbiBlbGVtZW50IHRhYmxlIHdpdGhp biBhCisgICAgICAgcHJvcGVydHkgZ3JhcGgpCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk PmVsZW1lbnRfdGFibGVfa2luZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXJhY3Rlcl9kYXRhPC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIGtpbmQgb2YgdGhl IGVsZW1lbnQgdGFibGU6IDxsaXRlcmFsPkVER0U8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPlZFUlRF WDwvbGl0ZXJhbD4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dGFibGVfY2F0YWxvZzwv c3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgZGF0YWJhc2UgdGhhdCBjb250YWlucyB0 aGUgcmVmZXJlbmNlZCB0YWJsZSAoYWx3YXlzIHRoZSBjdXJyZW50IGRhdGFiYXNlKQorICAgICAg PC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD50YWJsZV9zY2hlbWE8L3N0cnVjdGZpZWxkPiA8dHlwZT5z cWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg IE5hbWUgb2YgdGhlIHNjaGVtYSB0aGF0IGNvbnRhaW5zIHRoZSByZWZlcmVuY2VkIHRhYmxlCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnRhYmxlX25hbWU8L3N0cnVjdGZpZWxkPiA8dHlw ZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgIE5hbWUgb2YgdGhlIHRhYmxlIGJlaW5nIHJlZmVyZW5jZWQgYnkgdGhlIGVsZW1lbnQgdGFi bGUgZGVmaW5pdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5lbGVtZW50X3RhYmxl X2RlZmluaXRpb248L3N0cnVjdGZpZWxkPiA8dHlwZT5jaGFyYWN0ZXJfZGF0YTwvdHlwZT4KKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIEFwcGxpZXMgdG8gYSBmZWF0dXJlIG5v dCBhdmFpbGFibGUgaW4gPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPgorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rncm91 cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJpbmZvc2NoZW1hLXBnLWxh YmVsLXByb3BlcnRpZXMiPgorICA8dGl0bGU+PGxpdGVyYWw+cGdfbGFiZWxfcHJvcGVydGllczwv bGl0ZXJhbD48L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIHZpZXcgPGxpdGVyYWw+cGdfbGFi ZWxfcHJvcGVydGllczwvbGl0ZXJhbD4gc2hvd3Mgd2hpY2ggcHJvcGVydGllcyBhcmUKKyAgIGRl ZmluZWQgb24gbGFiZWxzIGRlZmluZWQgaW4gcHJvcGVydHkgZ3JhcGhzIGRlZmluZWQgaW4gdGhl IGN1cnJlbnQKKyAgIGRhdGFiYXNlLiAgT25seSB0aG9zZSBwcm9wZXJ0eSBncmFwaHMgYXJlIHNo b3duIHRoYXQgdGhlIGN1cnJlbnQgdXNlciBoYXMKKyAgIGFjY2VzcyB0byAoYnkgd2F5IG9mIGJl aW5nIHRoZSBvd25lciBvciBoYXZpbmcgc29tZSBwcml2aWxlZ2UpLgorICA8L3BhcmE+CisKKyAg PHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2xhYmVsX3Byb3BlcnRpZXM8L3N0cnVj dG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+ CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9j YXRhbG9nPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBkYXRhYmFzZSB0aGF0IGNv bnRhaW5zIHRoZSBwcm9wZXJ0eSBncmFwaCAoYWx3YXlzIHRoZSBjdXJyZW50IGRhdGFiYXNlKQor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9zY2hlbWE8L3N0cnVj dGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIHNjaGVtYSB0aGF0IGNvbnRhaW5zIHRoZSBwcm9w ZXJ0eSBncmFwaAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9u YW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBwcm9wZXJ0eV9ncmFwaAorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5sYWJlbF9uYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICBOYW1lIG9mIHRoZSBsYWJlbAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0 eV9uYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBwcm9wZXJ0eQorICAgICAg PC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4K KyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJpbmZvc2NoZW1hLXBnLWxhYmVs cyI+CisgIDx0aXRsZT48bGl0ZXJhbD5wZ19sYWJlbHM8L2xpdGVyYWw+PC90aXRsZT4KKworICA8 cGFyYT4KKyAgIFRoZSB2aWV3IDxsaXRlcmFsPnBnX2xhYmVsczwvbGl0ZXJhbD4gY29udGFpbnMg YWxsIHRoZSBsYWJlbHMgZGVmaW5lZCBpbgorICAgcHJvcGVydHkgZ3JhcGhzIGRlZmluZWQgaW4g dGhlIGN1cnJlbnQgZGF0YWJhc2UuICBPbmx5IHRob3NlIHByb3BlcnR5CisgICBncmFwaHMgYXJl IHNob3duIHRoYXQgdGhlIGN1cnJlbnQgdXNlciBoYXMgYWNjZXNzIHRvIChieSB3YXkgb2YgYmVp bmcgdGhlCisgICBvd25lciBvciBoYXZpbmcgc29tZSBwcml2aWxlZ2UpLgorICA8L3BhcmE+CisK KyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2xhYmVsczwvc3RydWN0bmFtZT4g Q29sdW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xl PSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4K KyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnByb3BlcnR5X2dyYXBoX2NhdGFsb2c8 L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4K KyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIGRhdGFiYXNlIHRoYXQgY29udGFpbnMg dGhlIHByb3BlcnR5IGdyYXBoIChhbHdheXMgdGhlIGN1cnJlbnQgZGF0YWJhc2UpCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPnByb3BlcnR5X2dyYXBoX3NjaGVtYTwvc3RydWN0ZmllbGQ+ IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgTmFtZSBvZiB0aGUgc2NoZW1hIHRoYXQgY29udGFpbnMgdGhlIHByb3BlcnR5IGdy YXBoCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnByb3BlcnR5X2dyYXBoX25hbWU8L3N0 cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIHByb3BlcnR5X2dyYXBoCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgPHN0cnVjdGZpZWxkPmxhYmVsX25hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRl bnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUg b2YgdGhlIGxhYmVsCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90 Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CisKKyA8c2VjdDEgaWQ9 ImluZm9zY2hlbWEtcGctcHJvcGVydHktZGF0YS10eXBlcyI+CisgIDx0aXRsZT48bGl0ZXJhbD5w Z19wcm9wZXJ0eV9kYXRhX3R5cGVzPC9saXRlcmFsPjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBU aGUgdmlldyA8bGl0ZXJhbD5wZ19wcm9wZXJ0eV9kYXRhX3R5cGVzPC9saXRlcmFsPiBzaG93cyB0 aGUgZGF0YSB0eXBlcyBvZgorICAgdGhlIHByb3BlcnRpZXMgaW4gcHJvcGVydHkgZ3JhcGhzIGRl ZmluZWQgaW4gdGhlIGN1cnJlbnQgZGF0YWJhc2UuICBPbmx5CisgICB0aG9zZSBwcm9wZXJ0eSBn cmFwaHMgYXJlIHNob3duIHRoYXQgdGhlIGN1cnJlbnQgdXNlciBoYXMgYWNjZXNzIHRvIChieSB3 YXkKKyAgIG9mIGJlaW5nIHRoZSBvd25lciBvciBoYXZpbmcgc29tZSBwcml2aWxlZ2UpLgorICA8 L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3Byb3BlcnR5X2Rh dGFfdHlwZXM8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xzPSIx Ij4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIENvbHVt biBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBEZXNjcmlwdGlvbgor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisKKyAgICA8 dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5w cm9wZXJ0eV9ncmFwaF9jYXRhbG9nPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8 L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBk YXRhYmFzZSB0aGF0IGNvbnRhaW5zIHRoZSBwcm9wZXJ0eSBncmFwaCAoYWx3YXlzIHRoZSBjdXJy ZW50IGRhdGFiYXNlKQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFw aF9zY2hlbWE8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIHNjaGVtYSB0aGF0IGNv bnRhaW5zIHRoZSBwcm9wZXJ0eSBncmFwaAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5w cm9wZXJ0eV9ncmFwaF9uYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBwcm9w ZXJ0eV9ncmFwaAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9uYW1lPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBwcm9wZXJ0eQorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD5kYXRhX3R5cGU8L3N0cnVjdGZpZWxkPiA8dHlwZT5jaGFyYWN0ZXJfZGF0 YTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERhdGEgdHlwZSBv ZiB0aGUgcHJvcGVydHksIGlmIGl0IGlzIGEgYnVpbHQtaW4gdHlwZSwgb3IKKyAgICAgICA8bGl0 ZXJhbD5BUlJBWTwvbGl0ZXJhbD4gaWYgaXQgaXMgc29tZSBhcnJheSAoaW4gdGhhdCBjYXNlLCBz ZWUgdGhlCisgICAgICAgdmlldyA8bGl0ZXJhbD5lbGVtZW50X3R5cGVzPC9saXRlcmFsPiksIGVs c2UKKyAgICAgICA8bGl0ZXJhbD5VU0VSLURFRklORUQ8L2xpdGVyYWw+IChpbiB0aGF0IGNhc2Us IHRoZSB0eXBlIGlzIGlkZW50aWZpZWQKKyAgICAgICBpbiA8bGl0ZXJhbD5hdHRyaWJ1dGVfdWR0 X25hbWU8L2xpdGVyYWw+IGFuZCBhc3NvY2lhdGVkIGNvbHVtbnMpLgorICAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+Y2hhcmFjdGVyX21heGltdW1fbGVuZ3RoPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+Y2FyZGluYWxfbnVtYmVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgSWYgPGxpdGVyYWw+ZGF0YV90eXBlPC9saXRlcmFsPiBpZGVudGlmaWVzIGEgY2hhcmFj dGVyIG9yIGJpdAorICAgICAgIHN0cmluZyB0eXBlLCB0aGUgZGVjbGFyZWQgbWF4aW11bSBsZW5n dGg7IG51bGwgZm9yIGFsbCBvdGhlcgorICAgICAgIGRhdGEgdHlwZXMgb3IgaWYgbm8gbWF4aW11 bSBsZW5ndGggd2FzIGRlY2xhcmVkLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+ PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jaGFy YWN0ZXJfb2N0ZXRfbGVuZ3RoPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2FyZGluYWxfbnVtYmVyPC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgSWYgPGxpdGVyYWw+ZGF0 YV90eXBlPC9saXRlcmFsPiBpZGVudGlmaWVzIGEgY2hhcmFjdGVyIHR5cGUsCisgICAgICAgdGhl IG1heGltdW0gcG9zc2libGUgbGVuZ3RoIGluIG9jdGV0cyAoYnl0ZXMpIG9mIGEgZGF0dW07IG51 bGwKKyAgICAgICBmb3IgYWxsIG90aGVyIGRhdGEgdHlwZXMuICBUaGUgbWF4aW11bSBvY3RldCBs ZW5ndGggZGVwZW5kcyBvbgorICAgICAgIHRoZSBkZWNsYXJlZCBjaGFyYWN0ZXIgbWF4aW11bSBs ZW5ndGggKHNlZSBhYm92ZSkgYW5kIHRoZQorICAgICAgIHNlcnZlciBlbmNvZGluZy4KKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y2hhcmFjdGVyX3NldF9jYXRhbG9nPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBBcHBsaWVzIHRvIGEgZmVhdHVyZSBub3QgYXZhaWxhYmxlIGluIDxwcm9kdWN0 bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+Y2hhcmFjdGVyX3NldF9zY2hlbWE8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmll cjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIEFwcGxpZXMgdG8g YSBmZWF0dXJlIG5vdCBhdmFpbGFibGUgaW4gPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1 Y3RuYW1lPgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jaGFyYWN0ZXJfc2V0X25hbWU8 L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4K KyAgICAgIDxwYXJhPgorICAgICAgIEFwcGxpZXMgdG8gYSBmZWF0dXJlIG5vdCBhdmFpbGFibGUg aW4gPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPgorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD5jb2xsYXRpb25fY2F0YWxvZzwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9p ZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTmFt ZSBvZiB0aGUgZGF0YWJhc2UgY29udGFpbmluZyB0aGUgY29sbGF0aW9uIG9mIHRoZSBwcm9wZXJ0 eSAoYWx3YXlzCisgICAgICAgdGhlIGN1cnJlbnQgZGF0YWJhc2UpLCBudWxsIGlmIGRlZmF1bHQg b3IgdGhlIGRhdGEgdHlwZSBvZiB0aGUKKyAgICAgICBwcm9wZXJ0eSBpcyBub3QgY29sbGF0YWJs ZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jb2xsYXRpb25fc2NoZW1hPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBzY2hlbWEgY29udGFpbmluZyB0aGUgY29sbGF0aW9u IG9mIHRoZSBwcm9wZXJ0eSwgbnVsbCBpZgorICAgICAgIGRlZmF1bHQgb3IgdGhlIGRhdGEgdHlw ZSBvZiB0aGUgcHJvcGVydHkgaXMgbm90IGNvbGxhdGFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+Y29sbGF0aW9uX25hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmll cjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhl IGNvbGxhdGlvbiBvZiB0aGUgcHJvcGVydHksIG51bGwgaWYgZGVmYXVsdCBvciB0aGUgZGF0YSB0 eXBlCisgICAgICAgb2YgdGhlIHByb3BlcnR5IGlzIG5vdCBjb2xsYXRhYmxlCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgPHN0cnVjdGZpZWxkPm51bWVyaWNfcHJlY2lzaW9uPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ Y2FyZGluYWxfbnVtYmVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgSWYgPGxpdGVyYWw+ZGF0YV90eXBlPC9saXRlcmFsPiBpZGVudGlmaWVzIGEgbnVtZXJpYyB0 eXBlLCB0aGlzCisgICAgICAgY29sdW1uIGNvbnRhaW5zIHRoZSAoZGVjbGFyZWQgb3IgaW1wbGlj aXQpIHByZWNpc2lvbiBvZiB0aGUKKyAgICAgICB0eXBlIGZvciB0aGlzIGF0dHJpYnV0ZS4gIFRo ZSBwcmVjaXNpb24gaW5kaWNhdGVzIHRoZSBudW1iZXIgb2YKKyAgICAgICBzaWduaWZpY2FudCBk aWdpdHMuICBJdCBjYW4gYmUgZXhwcmVzc2VkIGluIGRlY2ltYWwgKGJhc2UgMTApCisgICAgICAg b3IgYmluYXJ5IChiYXNlIDIpIHRlcm1zLCBhcyBzcGVjaWZpZWQgaW4gdGhlIGNvbHVtbgorICAg ICAgIDxsaXRlcmFsPm51bWVyaWNfcHJlY2lzaW9uX3JhZGl4PC9saXRlcmFsPi4gIEZvciBhbGwg b3RoZXIgZGF0YQorICAgICAgIHR5cGVzLCB0aGlzIGNvbHVtbiBpcyBudWxsLgorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD5udW1lcmljX3ByZWNpc2lvbl9yYWRpeDwvc3RydWN0ZmllbGQ+ IDx0eXBlPmNhcmRpbmFsX251bWJlcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJh PgorICAgICAgIElmIDxsaXRlcmFsPmRhdGFfdHlwZTwvbGl0ZXJhbD4gaWRlbnRpZmllcyBhIG51 bWVyaWMgdHlwZSwgdGhpcworICAgICAgIGNvbHVtbiBpbmRpY2F0ZXMgaW4gd2hpY2ggYmFzZSB0 aGUgdmFsdWVzIGluIHRoZSBjb2x1bW5zCisgICAgICAgPGxpdGVyYWw+bnVtZXJpY19wcmVjaXNp b248L2xpdGVyYWw+IGFuZAorICAgICAgIDxsaXRlcmFsPm51bWVyaWNfc2NhbGU8L2xpdGVyYWw+ IGFyZSBleHByZXNzZWQuICBUaGUgdmFsdWUgaXMKKyAgICAgICBlaXRoZXIgMiBvciAxMC4gIEZv ciBhbGwgb3RoZXIgZGF0YSB0eXBlcywgdGhpcyBjb2x1bW4gaXMgbnVsbC4KKyAgICAgIDwvcGFy YT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAg ICAgICA8c3RydWN0ZmllbGQ+bnVtZXJpY19zY2FsZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmNhcmRp bmFsX251bWJlcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIElm IDxsaXRlcmFsPmRhdGFfdHlwZTwvbGl0ZXJhbD4gaWRlbnRpZmllcyBhbiBleGFjdCBudW1lcmlj CisgICAgICAgdHlwZSwgdGhpcyBjb2x1bW4gY29udGFpbnMgdGhlIChkZWNsYXJlZCBvciBpbXBs aWNpdCkgc2NhbGUgb2YKKyAgICAgICB0aGUgdHlwZSBmb3IgdGhpcyBhdHRyaWJ1dGUuICBUaGUg c2NhbGUgaW5kaWNhdGVzIHRoZSBudW1iZXIgb2YKKyAgICAgICBzaWduaWZpY2FudCBkaWdpdHMg dG8gdGhlIHJpZ2h0IG9mIHRoZSBkZWNpbWFsIHBvaW50LiAgSXQgY2FuCisgICAgICAgYmUgZXhw cmVzc2VkIGluIGRlY2ltYWwgKGJhc2UgMTApIG9yIGJpbmFyeSAoYmFzZSAyKSB0ZXJtcywgYXMK KyAgICAgICBzcGVjaWZpZWQgaW4gdGhlIGNvbHVtbgorICAgICAgIDxsaXRlcmFsPm51bWVyaWNf cHJlY2lzaW9uX3JhZGl4PC9saXRlcmFsPi4gIEZvciBhbGwgb3RoZXIgZGF0YQorICAgICAgIHR5 cGVzLCB0aGlzIGNvbHVtbiBpcyBudWxsLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5k YXRldGltZV9wcmVjaXNpb248L3N0cnVjdGZpZWxkPiA8dHlwZT5jYXJkaW5hbF9udW1iZXI8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBJZiA8bGl0ZXJhbD5kYXRh X3R5cGU8L2xpdGVyYWw+IGlkZW50aWZpZXMgYSBkYXRlLCB0aW1lLAorICAgICAgIHRpbWVzdGFt cCwgb3IgaW50ZXJ2YWwgdHlwZSwgdGhpcyBjb2x1bW4gY29udGFpbnMgdGhlIChkZWNsYXJlZAor ICAgICAgIG9yIGltcGxpY2l0KSBmcmFjdGlvbmFsIHNlY29uZHMgcHJlY2lzaW9uIG9mIHRoZSB0 eXBlIGZvciB0aGlzCisgICAgICAgYXR0cmlidXRlLCB0aGF0IGlzLCB0aGUgbnVtYmVyIG9mIGRl Y2ltYWwgZGlnaXRzIG1haW50YWluZWQKKyAgICAgICBmb2xsb3dpbmcgdGhlIGRlY2ltYWwgcG9p bnQgaW4gdGhlIHNlY29uZHMgdmFsdWUuICBGb3IgYWxsCisgICAgICAgb3RoZXIgZGF0YSB0eXBl cywgdGhpcyBjb2x1bW4gaXMgbnVsbC4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+aW50 ZXJ2YWxfdHlwZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXJhY3Rlcl9kYXRhPC90eXBlPgorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgSWYgPGxpdGVyYWw+ZGF0YV90eXBlPC9s aXRlcmFsPiBpZGVudGlmaWVzIGFuIGludGVydmFsIHR5cGUsCisgICAgICAgdGhpcyBjb2x1bW4g Y29udGFpbnMgdGhlIHNwZWNpZmljYXRpb24gd2hpY2ggZmllbGRzIHRoZQorICAgICAgIGludGVy dmFscyBpbmNsdWRlIGZvciB0aGlzIGF0dHJpYnV0ZSwgZS5nLiwgPGxpdGVyYWw+WUVBUiBUTwor ICAgICAgIE1PTlRIPC9saXRlcmFsPiwgPGxpdGVyYWw+REFZIFRPIFNFQ09ORDwvbGl0ZXJhbD4s IGV0Yy4gIElmIG5vCisgICAgICAgZmllbGQgcmVzdHJpY3Rpb25zIHdlcmUgc3BlY2lmaWVkICh0 aGF0IGlzLCB0aGUgaW50ZXJ2YWwKKyAgICAgICBhY2NlcHRzIGFsbCBmaWVsZHMpLCBhbmQgZm9y IGFsbCBvdGhlciBkYXRhIHR5cGVzLCB0aGlzIGZpZWxkCisgICAgICAgaXMgbnVsbC4KKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICA8c3RydWN0ZmllbGQ+aW50ZXJ2YWxfcHJlY2lzaW9uPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+Y2FyZGluYWxfbnVtYmVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgQXBwbGllcyB0byBhIGZlYXR1cmUgbm90IGF2YWlsYWJsZQorICAgICAgIGluIDxw cm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4KKyAgICAgICAoc2VlIDxsaXRlcmFs PmRhdGV0aW1lX3ByZWNpc2lvbjwvbGl0ZXJhbD4gZm9yIHRoZSBmcmFjdGlvbmFsCisgICAgICAg c2Vjb25kcyBwcmVjaXNpb24gb2YgaW50ZXJ2YWwgdHlwZSBwcm9wZXJ0aWVzKQorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD51c2VyX2RlZmluZWRfdHlwZV9jYXRhbG9nPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBOYW1lIG9mIHRoZSBkYXRhYmFzZSB0aGF0IHRoZSBwcm9wZXJ0eSBkYXRhIHR5 cGUgaXMgZGVmaW5lZCBpbgorICAgICAgIChhbHdheXMgdGhlIGN1cnJlbnQgZGF0YWJhc2UpCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnVzZXJfZGVmaW5lZF90eXBlX3NjaGVtYTwvc3Ry dWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgc2NoZW1hIHRoYXQgdGhlIHByb3BlcnR5IGRh dGEgdHlwZSBpcyBkZWZpbmVkIGluCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnVzZXJf ZGVmaW5lZF90eXBlX25hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlw ZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIHByb3Bl cnR5IGRhdGEgdHlwZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5zY29wZV9jYXRhbG9n PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBBcHBsaWVzIHRvIGEgZmVhdHVyZSBub3QgYXZhaWxhYmxl IGluIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4KKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+c2NvcGVfc2NoZW1hPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50 aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBBcHBsaWVz IHRvIGEgZmVhdHVyZSBub3QgYXZhaWxhYmxlIGluIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9w cm9kdWN0bmFtZT4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+c2NvcGVfbmFtZTwvc3Ry dWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgQXBwbGllcyB0byBhIGZlYXR1cmUgbm90IGF2YWlsYWJsZSBpbiA8 cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+CisgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0 cnVjdGZpZWxkPm1heGltdW1fY2FyZGluYWxpdHk8L3N0cnVjdGZpZWxkPiA8dHlwZT5jYXJkaW5h bF9udW1iZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBBbHdh eXMgbnVsbCwgYmVjYXVzZSBhcnJheXMgYWx3YXlzIGhhdmUgdW5saW1pdGVkIG1heGltdW0gY2Fy ZGluYWxpdHkgaW4gPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPgorICAgICAg PC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD5kdGRfaWRlbnRpZmllcjwvc3RydWN0ZmllbGQ+IDx0eXBl PnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgQW4gaWRlbnRpZmllciBvZiB0aGUgZGF0YSB0eXBlIGRlc2NyaXB0b3Igb2YgdGhlIHByb3Bl cnR5LCB1bmlxdWUKKyAgICAgICBhbW9uZyB0aGUgZGF0YSB0eXBlIGRlc2NyaXB0b3JzIHBlcnRh aW5pbmcgdG8gdGhlIHByb3BlcnR5IGdyYXBoLiAgVGhpcworICAgICAgIGlzIG1haW5seSB1c2Vm dWwgZm9yIGpvaW5pbmcgd2l0aCBvdGhlciBpbnN0YW5jZXMgb2Ygc3VjaAorICAgICAgIGlkZW50 aWZpZXJzLiAgKFRoZSBzcGVjaWZpYyBmb3JtYXQgb2YgdGhlIGlkZW50aWZpZXIgaXMgbm90Cisg ICAgICAgZGVmaW5lZCBhbmQgbm90IGd1YXJhbnRlZWQgdG8gcmVtYWluIHRoZSBzYW1lIGluIGZ1 dHVyZQorICAgICAgIHZlcnNpb25zLikKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+CisgPC9zZWN0MT4KKwor IDxzZWN0MSBpZD0iaW5mb3NjaGVtYS1wZy1wcm9wZXJ0eS1ncmFwaC1wcml2aWxlZ2VzIj4KKyAg PHRpdGxlPjxsaXRlcmFsPnBnX3Byb3BlcnR5X2dyYXBoX3ByaXZpbGVnZXM8L2xpdGVyYWw+PC90 aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSB2aWV3IDxsaXRlcmFsPnByb3BlcnR5X2dyYXBoX3By aXZpbGVnZXM8L2xpdGVyYWw+IGlkZW50aWZpZXMgYWxsCisgICBwcml2aWxlZ2VzIGdyYW50ZWQg b24gcHJvcGVydHkgZ3JhcGhzIHRvIGEgY3VycmVudGx5IGVuYWJsZWQgcm9sZSBvciBieSBhCisg ICBjdXJyZW50bHkgZW5hYmxlZCByb2xlLiAgVGhlcmUgaXMgb25lIHJvdyBmb3IgZWFjaCBjb21i aW5hdGlvbiBvZiBwcm9wZXJ0eQorICAgZ3JhcGgsIGdyYW50b3IsIGFuZCBncmFudGVlLgorICA8 L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnByb3BlcnR5X2dyYXBo X3ByaXZpbGVnZXM8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xz PSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIENv bHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBEZXNjcmlwdGlv bgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisKKyAg ICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD5ncmFudG9yPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSByb2xlIHRoYXQgZ3Jh bnRlZCB0aGUgcHJpdmlsZWdlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmdyYW50ZWU8 L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4K KyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIHJvbGUgdGhhdCB0aGUgcHJpdmlsZWdl IHdhcyBncmFudGVkIHRvCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnByb3BlcnR5X2dy YXBoX2NhdGFsb2c8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIGRhdGFiYXNlIHRo YXQgY29udGFpbnMgdGhlIHByb3BlcnR5IGdyYXBoIChhbHdheXMgdGhlIGN1cnJlbnQgZGF0YWJh c2UpCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnByb3BlcnR5X2dyYXBoX3NjaGVtYTwv c3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgc2NoZW1hIHRoYXQgY29udGFpbnMgdGhl IHByb3BlcnR5IGdyYXBoCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnByb3BlcnR5X2dy YXBoX25hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIHByb3BlcnR5IGdyYXBo CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnByaXZpbGVnZV90eXBlPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+Y2hhcmFjdGVyX2RhdGE8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBUeXBlIG9mIHRoZSBwcml2aWxlZ2U6IDxsaXRlcmFsPlNFTEVDVDwvbGl0ZXJh bD4gaXMgdGhlIG9ubHkgcHJpdmlsZWdlCisgICAgICAgdHlwZSBhcHBsaWNhYmxlIHRvIHByb3Bl cnR5IGdyYXBocy4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+aXNfZ3JhbnRhYmxlPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+eWVzX29yX25vPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgPGxpdGVyYWw+WUVTPC9saXRlcmFsPiBpZiB0aGUgcHJpdmlsZWdlIGlz IGdyYW50YWJsZSwgPGxpdGVyYWw+Tk88L2xpdGVyYWw+IGlmIG5vdAorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJs ZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJpbmZvc2NoZW1hLXByb3BlcnR5LWdyYXBocyI+ CisgIDx0aXRsZT48bGl0ZXJhbD5wcm9wZXJ0eV9ncmFwaHM8L2xpdGVyYWw+PC90aXRsZT4KKwor ICA8cGFyYT4KKyAgIFRoZSB2aWV3IDxsaXRlcmFsPnByb3BlcnR5X2dyYXBoczwvbGl0ZXJhbD4g Y29udGFpbnMgYWxsIHByb3BlcnR5IGdyYXBocworICAgZGVmaW5lZCBpbiB0aGUgY3VycmVudCBk YXRhYmFzZS4gIE9ubHkgdGhvc2UgcHJvcGVydHkgZ3JhcGhzIGFyZSBzaG93biB0aGF0CisgICB0 aGUgY3VycmVudCB1c2VyIGhhcyBhY2Nlc3MgdG8gKGJ5IHdheSBvZiBiZWluZyB0aGUgb3duZXIg b3IgaGF2aW5nIHNvbWUKKyAgIHByaXZpbGVnZSkuCisgIDwvcGFyYT4KKworICA8dGFibGU+Cisg ICA8dGl0bGU+PHN0cnVjdG5hbWU+cHJvcGVydHlfZ3JhcGhzPC9zdHJ1Y3RuYW1lPiBDb2x1bW5z PC90aXRsZT4KKyAgIDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cHJvcGVydHlfZ3JhcGhfY2F0YWxvZzwvc3RydWN0 ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgZGF0YWJhc2UgdGhhdCBjb250YWlucyB0aGUgcHJv cGVydHkgZ3JhcGggKGFsd2F5cyB0aGUgY3VycmVudCBkYXRhYmFzZSkKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+cHJvcGVydHlfZ3JhcGhfc2NoZW1hPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICBOYW1lIG9mIHRoZSBzY2hlbWEgdGhhdCBjb250YWlucyB0aGUgcHJvcGVydHkgZ3JhcGgKKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cHJvcGVydHlfZ3JhcGhfbmFtZTwvc3RydWN0Zmll bGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgTmFtZSBvZiB0aGUgcHJvcGVydHlfZ3JhcGgKKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+ CisgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0iaW5mb3NjaGVtYS1yZWZlcmVudGlhbC1jb25zdHJh aW50cyI+CiAgIDx0aXRsZT48bGl0ZXJhbD5yZWZlcmVudGlhbF9jb25zdHJhaW50czwvbGl0ZXJh bD48L3RpdGxlPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwva2V5d29yZHMvc3FsMjAyMy0x Ni1ub25yZXNlcnZlZC50eHQgYi9kb2Mvc3JjL3NnbWwva2V5d29yZHMvc3FsMjAyMy0xNi1ub25y ZXNlcnZlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjM5NzU2 YzYwNjdkCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL2tleXdvcmRzL3NxbDIwMjMt MTYtbm9ucmVzZXJ2ZWQudHh0CkBAIC0wLDAgKzEsMjcgQEAKK0FDWUNMSUMKK0JJTkRJTkdTCitC T1VORAorREVTVElOQVRJT04KK0RJRkZFUkVOVAorRElSRUNURUQKK0VER0UKK0VER0VTCitFTEVN RU5UUworTEFCRUwKK0xBQkVMRUQKK05PREUKK1BBVEhTCitQUk9QRVJUSUVTCitQUk9QRVJUWQor UFJPUEVSVFlfR1JBUEhfQ0FUQUxPRworUFJPUEVSVFlfR1JBUEhfTkFNRQorUFJPUEVSVFlfR1JB UEhfU0NIRU1BCitSRUxBVElPTlNISVAKK1JFTEFUSU9OU0hJUFMKK1NIT1JURVNUCitTSU5HTEVU T05TCitTVEVQCitUQUJMRVMKK1RSQUlMCitWRVJURVgKK1dBTEsKZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9rZXl3b3Jkcy9zcWwyMDIzLTE2LXJlc2VydmVkLnR4dCBiL2RvYy9zcmMvc2dtbC9r ZXl3b3Jkcy9zcWwyMDIzLTE2LXJlc2VydmVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uM2JkZDdlMmIyNzIKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3Nn bWwva2V5d29yZHMvc3FsMjAyMy0xNi1yZXNlcnZlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorQUxM X0RJRkZFUkVOVAorQklORElOR19DT1VOVAorRUxFTUVOVF9JRAorRUxFTUVOVF9OVU1CRVIKK0VY UE9SVAorR1JBUEgKK0dSQVBIX1RBQkxFCitNQVRDSE5VTQorUEFUSF9MRU5HVEgKK1BBVEhfTkFN RQorUFJPUEVSVFlfRVhJU1RTCitTQU1FCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcXVlcmll cy5zZ21sIGIvZG9jL3NyYy9zZ21sL3F1ZXJpZXMuc2dtbAppbmRleCAzNzJjY2UxYTQ4Ny4uNDFh NmY0MjNjNjQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9xdWVyaWVzLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL3F1ZXJpZXMuc2dtbApAQCAtODYzLDYgKzg2MywxMSBAQCBPUkRFUiBCWSBwOwog ICAgICB0byBjb2x1bW5zIHByb3ZpZGVkIGJ5IHByZWNlZGluZyA8bGl0ZXJhbD5GUk9NPC9saXRl cmFsPiBpdGVtcyBpbiBhbnkgY2FzZS4KICAgICA8L3BhcmE+CiAKKyAgICA8cGFyYT4KKyAgICAg QSA8bGl0ZXJhbD5HUkFQSF9UQUJMRTwvbGl0ZXJhbD4gPGxpdGVyYWw+RlJPTTwvbGl0ZXJhbD4g aXRlbSBjYW4gYWxzbworICAgICBhbHdheXMgY29udGFpbiBsYXRlcmFsIHJlZmVyZW5jZXMuCisg ICAgPC9wYXJhPgorCiAgICAgPHBhcmE+CiAgICAgIEEgPGxpdGVyYWw+TEFURVJBTDwvbGl0ZXJh bD4gaXRlbSBjYW4gYXBwZWFyIGF0IHRoZSB0b3AgbGV2ZWwgaW4gdGhlCiAgICAgIDxsaXRlcmFs PkZST008L2xpdGVyYWw+IGxpc3QsIG9yIHdpdGhpbiBhIDxsaXRlcmFsPkpPSU48L2xpdGVyYWw+ IHRyZWUuICBJbiB0aGUgbGF0dGVyCkBAIC0yNzQ1LDQgKzI3NTAsMTY3IEBAIFNFTEVDVCAqIEZS T00gdDsKIAogIDwvc2VjdDE+CiAKKyA8c2VjdDEgaWQ9InF1ZXJpZXMtZ3JhcGgiPgorICA8dGl0 bGU+R3JhcGggUXVlcmllczwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGlzIHNlY3Rpb24gZGVz Y3JpYmVzIHRoZSBzdWJsYW5ndWFnZSBmb3IgcXVlcnlpbmcgcHJvcGVydHkgZ3JhcGhzLAorICAg ZGVmaW5lZCBhcyBkZXNjcmliZWQgaW4gPHhyZWYgbGlua2VuZD0iZGRsLXByb3BlcnR5LWdyYXBo cyIvPi4KKyAgPC9wYXJhPgorCisgIDxzZWN0MiBpZD0icXVlcmllcy1ncmFwaC1vdmVydmlldyI+ CisgICA8dGl0bGU+T3ZlcnZpZXc8L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICBDb25zaWRlciB0 aGlzIGV4YW1wbGUgZnJvbSA8eHJlZiBsaW5rZW5kPSJkZGwtcHJvcGVydHktZ3JhcGhzIi8+Ogor PHByb2dyYW1saXN0aW5nPgorLS0gZ2V0IGxpc3Qgb2YgY3VzdG9tZXJzIGFjdGl2ZSB0b2RheQor U0VMRUNUIGN1c3RvbWVyX25hbWUgRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENIIChjIElT IGN1c3RvbWVycyktW0lTIGN1c3RvbWVyX29yZGVyc10tPihvIElTIG9yZGVycyBXSEVSRSBvLm9y ZGVyZWRfd2hlbiA9IGN1cnJlbnRfZGF0ZSkgQ09MVU1OUyAoYy5uYW1lIEFTIGN1c3RvbWVyX25h bWUpKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgVGhlIGdyYXBoIHF1ZXJ5IHBhcnQgaGFwcGVu cyBpbnNpZGUgdGhlIDxsaXRlcmFsPkdSQVBIX1RBQkxFPC9saXRlcmFsPgorICAgIGNvbnN0cnVj dC4gIEFzIGZhciBhcyB0aGUgcmVzdCBvZiB0aGUgcXVlcnkgaXMgY29uY2VybmVkLCB0aGlzIGFj dHMgbGlrZSBhCisgICAgdGFibGUgZnVuY3Rpb24gaW4gdGhhdCBpdCBwcm9kdWNlcyBhIGNvbXB1 dGVkIHRhYmxlIGFzIG91dHB1dC4gIExpa2Ugb3RoZXIKKyAgICA8bGl0ZXJhbD5GUk9NPC9saXRl cmFsPiBjbGF1c2UgZWxlbWVudHMsIHRhYmxlIGFsaWFzIGFuZCBjb2x1bW4gYWxpYXMKKyAgICBu YW1lcyBjYW4gYmUgYXNzaWduZWQgdG8gdGhlIHJlc3VsdCwgYW5kIHRoZSByZXN1bHQgY2FuIGJl IGpvaW5lZCB3aXRoCisgICAgb3RoZXIgdGFibGVzLCBzdWJzZXF1ZW50bHkgZmlsdGVyZWQsIGFu ZCBzbyBvbiwgZm9yIGV4YW1wbGU6Cis8cHJvZ3JhbWxpc3Rpbmc+CitTRUxFQ1QgLi4uIEZST00g R1JBUEhfVEFCTEUgKG15Z3JhcGggTUFUQ0ggLi4uIENPTFVNTlMgKC4uLikpIEFTIG15cmVzdWx0 IChhLCBiLCBjKSBKT0lOIG90aGVydGFibGUgVVNJTkcgKGEpIFdIRVJFIGIgPiAwIE9SREVSIEJZ IGM7Cis8L3Byb2dyYW1saXN0aW5nPgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUg PGxpdGVyYWw+R1JBUEhfVEFCTEU8L2xpdGVyYWw+IGNsYXVzZSBjb25zaXN0cyBvZiB0aGUgZ3Jh cGggbmFtZSwKKyAgICBmb2xsb3dlZCBieSB0aGUga2V5d29yZCA8bGl0ZXJhbD5NQVRDSDwvbGl0 ZXJhbD4sIGZvbGxvd2VkIGJ5IGEgZ3JhcGgKKyAgICBwYXR0ZXJuIGV4cHJlc3Npb24gKHNlZSBi ZWxvdyksIGZvbGxvd2VkIGJ5IHRoZSBrZXl3b3JkCisgICAgPGxpdGVyYWw+Q09MVU1OUzwvbGl0 ZXJhbD4gYW5kIGEgY29sdW1uIGxpc3QuCisgICA8L3BhcmE+CisgIDwvc2VjdDI+CisKKyAgPHNl Y3QyIGlkPSJxdWVyaWVzLWdyYXBoLXBhdHRlcm5zIj4KKyAgIDx0aXRsZT5HcmFwaCBQYXR0ZXJu czwvdGl0bGU+CisKKyAgIDxwYXJhPgorICAgIFRoZSBjb3JlIG9mIHRoZSBncmFwaCBxdWVyeWlu ZyBmdW5jdGlvbmFsaXR5IGlzIHRoZSBncmFwaCBwYXR0ZXJuLCB3aGljaAorICAgIGFwcGVhcnMg YWZ0ZXIgdGhlIGtleXdvcmQgPGxpdGVyYWw+TUFUQ0g8L2xpdGVyYWw+LiAgRm9ybWFsbHksIGEg Z3JhcGgKKyAgICBwYXR0ZXJuIGNvbnNpc3RzIG9mIG9uZSBvciBtb3JlIHBhdGggcGF0dGVybnMu ICBBIHBhdGggaXMgYSBzZXF1ZW5jZSBvZgorICAgIGdyYXBoIGVsZW1lbnRzLCBzdGFydGluZyBh bmQgZW5kaW5nIHdpdGggYSB2ZXJ0ZXggYW5kIGFsdGVybmF0aW5nIGJldHdlZW4KKyAgICB2ZXJ0 aWNlcyBhbmQgZWRnZXMuICBBIHBhdGggcGF0dGVybiBpcyBhIHN5bnRhY3RpYyBleHByZXNzaW9u cyB0aGF0CisgICAgbWF0Y2hlcyBwYXRocy4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAg QSBwYXRoIHBhdHRlcm4gdGh1cyBtYXRjaGVzIGEgc2VxdWVuY2Ugb2YgdmVydGljZXMgYW5kIGVk Z2VzLiAgVGhlCisgICAgc2ltcGxlc3QgcG9zc2libGUgcGF0aCBwYXR0ZXJuIGlzCis8cHJvZ3Jh bWxpc3Rpbmc+CisoKQorPC9wcm9ncmFtbGlzdGluZz4KKyAgICB3aGljaCBtYXRjaGVzIGEgc2lu Z2xlIHZlcnRleC4gIFRoZSBuZXh0IHNpbXBsZXN0IHBhdHRlcm4gd291bGQgYmUKKzxwcm9ncmFt bGlzdGluZz4KKygpLVtdLT4oKQorPC9wcm9ncmFtbGlzdGluZz4KKyAgICB3aGljaCBtYXRjaGVz IGEgdmVydGV4IGZvbGxvd2VkIGJ5IGFuIGVkZ2UgZm9sbG93ZWQgYnkgYSB2ZXJ0ZXguICBUaGUK KyAgICBjaGFyYWN0ZXJzIDxsaXRlcmFsPigpPC9saXRlcmFsPiBhcmUgYSB2ZXJ0ZXggcGF0dGVy biBhbmQgdGhlIGNoYXJhY3RlcnMKKyAgICA8bGl0ZXJhbD4tW10tPjwvbGl0ZXJhbD4gYXJlIGFu IGVkZ2UgcGF0dGVybi4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgVGhlc2UgY2hhcmFj dGVycyBjYW4gYWxzbyBiZSBzZXBhcmF0ZWQgYnkgd2hpdGVzcGFjZSwgZm9yIGV4YW1wbGU6Cis8 cHJvZ3JhbWxpc3Rpbmc+CisoICkgLSBbIF0gLSA+ICggKQorPC9wcm9ncmFtbGlzdGluZz4KKyAg IDwvcGFyYT4KKworICAgPHRpcD4KKyAgICA8cGFyYT4KKyAgICAgQSB3YXkgdG8gcmVtZW1iZXIg dGhlc2Ugc3ltYm9scyBpcyB0aGF0IGluIHZpc3VhbCByZXByZXNlbnRhdGlvbnMgb2YKKyAgICAg cHJvcGVydHkgZ3JhcGhzLCB2ZXJ0aWNlcyBhcmUgdXN1YWxseSBjaXJjbGVzIChsaWtlCisgICAg IDxsaXRlcmFsPigpPC9saXRlcmFsPikgYW5kIGVkZ2VzIGhhdmUgcmVjdGFuZ3VsYXIgbGFiZWxz IChsaWtlCisgICAgIDxsaXRlcmFsPltdPC9saXRlcmFsPikuCisgICAgPC9wYXJhPgorICAgPC90 aXA+CisKKyAgIDxwYXJhPgorICAgIFRoZSBhYm92ZSBwYXR0ZXJucyB3b3VsZCBtYXRjaCBhbnkg dmVydGV4LCBvciBhbnkgdHdvIHZlcnRpY2VzIGNvbm5lY3RlZAorICAgIGJ5IGFueSBlZGdlLCB3 aGljaCBpc24ndCB2ZXJ5IGludGVyZXN0aW5nLiAgTm9ybWFsbHksIHdlIHdhbnQgdG8gc2VhcmNo CisgICAgZm9yIGVsZW1lbnRzICh2ZXJ0aWNlcyBhbmQgZWRnZXMpIHRoYXQgaGF2ZSBjZXJ0YWlu IGNoYXJhY3RlcmlzdGljcy4KKyAgICBUaGVzZSBjaGFyYWN0ZXJpc3RpY3MgYXJlIHdyaXR0ZW4g aW4gYmV0d2VlbiB0aGUgcGFyZW50aGVzZXMgb3IgYnJhY2tldHMuCisgICAgKFRoaXMgaXMgYWxz byBjYWxsZWQgYW4gZWxlbWVudCBwYXR0ZXJuIGZpbGxlci4pICBUeXBpY2FsbHksIHdlIHdvdWxk CisgICAgc2VhcmNoIGZvciBlbGVtZW50cyB3aXRoIGEgY2VydGFpbiBsYWJlbC4gIFRoaXMgaXMg d3JpdHRlbiBlaXRoZXIgYnkKKyAgICA8bGl0ZXJhbD5JUyA8cmVwbGFjZWFibGU+bGFiZWxuYW1l PC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+IG9yIGVxdWl2YWxlbnRseQorICAgIDxsaXRlcmFsPjo8 cmVwbGFjZWFibGU+bGFiZWxuYW1lPC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+LiAgRm9yIGV4YW1w bGUsCisgICAgdGhpcyB3b3VsZCBtYXRjaCBhbGwgdmVydGljZXMgd2l0aCB0aGUgbGFiZWwgPGxp dGVyYWw+cGVyc29uPC9saXRlcmFsPjoKKzxwcm9ncmFtbGlzdGluZz4KKyhJUyBwZXJzb24pCis8 L3Byb2dyYW1saXN0aW5nPgorICAgIG9yCis8cHJvZ3JhbWxpc3Rpbmc+CisoOnBlcnNvbikKKzwv cHJvZ3JhbWxpc3Rpbmc+CisgICAgKEZyb20gbm93IG9uLCB3ZSB3aWxsIGp1c3QgdXNlIHRoZSBj b2xvbiBzeW50YXgsIGZvciBzaW1wbGljaXR5LiAgQnV0IGl0CisgICAgaGVscHMgdG8gcmVhZCBp dCBhcyA8cXVvdGU+aXM8L3F1b3RlPiBmb3IgdW5kZXJzdGFuZGluZy4pICBUaGUgbmV4dAorICAg IGV4YW1wbGUgd291bGQgbWF0Y2ggYSB2ZXJ0ZXggd2l0aCB0aGUgbGFiZWwgPGxpdGVyYWw+cGVy c29uPC9saXRlcmFsPgorICAgIGNvbm5lY3RlZCB0byBhIHZlcnRleCB3aXRoIHRoZSBsYWJlbCA8 bGl0ZXJhbD5hY2NvdW50PC9saXRlcmFsPiBjb25uZWN0ZWQKKyAgICBieSBhbiBlZGdlIHdpdGgg dGhlIGxhYmVsIDxsaXRlcmFsPmhhczwvbGl0ZXJhbD4uCis8cHJvZ3JhbWxpc3Rpbmc+CisoOnBl cnNvbiktWzpoYXNdLT4oOmFjY291bnQpCis8L3Byb2dyYW1saXN0aW5nPgorICAgIE11bHRpcGxl IGxhYmVscyBjYW4gYWxzbyBiZSBtYXRjaGVkLCB1c2luZyA8cXVvdGU+b3I8L3F1b3RlPiBzZW1h bnRpY3M6Cis8cHJvZ3JhbWxpc3Rpbmc+CisoOnBlcnNvbiktWzpoYXNdLT4oOmFjY291bnR8Y3Jl ZGl0Y2FyZCkKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAg IFJlY2FsbCB0aGF0IGVkZ2VzIGFyZSBkaXJlY3RlZC4gIFRoZSBvdGhlciBkaXJlY3Rpb24gaXMg YWxzbyBwb3NzaWJsZSBpbiBhCisgICAgcGF0aCBwYXR0ZXJuLCBmb3IgZXhhbXBsZToKKzxwcm9n cmFtbGlzdGluZz4KKyg6YWNjb3VudCkmbHQ7LVs6aGFzXS0oOnBlcnNvbikKKzwvcHJvZ3JhbWxp c3Rpbmc+CisgICAgSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBtYXRjaCBib3RoIGRpcmVjdGlvbnM6 Cis8cHJvZ3JhbWxpc3Rpbmc+CisoOnBlcnNvbiktWzppc19mcmllbmRfb2ZdLSg6cGVyc29uKQor PC9wcm9ncmFtbGlzdGluZz4KKyAgICBUaGlzIGhhcyBhIG1lYW5pbmcgb2YgPHF1b3RlPm9yPC9x dW90ZT46IEFuIGVkZ2UgaW4gZWl0aGVyIGRpcmVjdGlvbiB3b3VsZAorICAgIG1hdGNoLgorICAg PC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBJbiBtYW55IGNhc2VzLCB0aGUgZWRnZSBwYXR0ZXJu cyBkb24ndCBuZWVkIGEgZmlsbGVyLiAgKEFsbCB0aGUgZmlsdGVyaW5nCisgICAgdGhlbiBoYXBw ZW5zIG9uIHRoZSB2ZXJ0aWNlcy4pICBGb3IgdGhlc2UgY2FzZXMsIGFuIGFiYnJldmlhdGVkIGVk Z2UKKyAgICBwYXR0ZXJuIHN5bnRheCBpcyBhdmFpbGFibGUgdGhhdCBvbWl0cyB0aGUgYnJhY2tl dHMsIGZvciBleGFtcGxlOgorPHByb2dyYW1saXN0aW5nPgorKDpwZXJzb24pLT4oOmFjY291bnQp CisoOmFjb3VudCkmbHQ7LSg6cGVyc29uKQorKDpwZXJzb24pLSg6cGVyc29uKQorPC9wcm9ncmFt bGlzdGluZz4KKyAgICBBcyBpcyBvZnRlbiB0aGUgY2FzZSwgYWJicmV2aWF0ZWQgc3ludGF4IGNh biBtYWtlIGV4cHJlc3Npb25zIG1vcmUgY29tcGFjdAorICAgIGJ1dCBhbHNvIHNvbWV0aW1lcyBo YXJkZXIgdG8gdW5kZXJzdGFuZC4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgRnVydGhl cm1vcmUsIGl0IGlzIHBvc3NpYmxlIHRvIGRlZmluZSBncmFwaCBwYXR0ZXJuIHZhcmlhYmxlcyBp biB0aGUgcGF0aAorICAgIHBhdHRlcm4gZXhwcmVzc2lvbnMuICBUaGVzZSBhcmUgYm91bmQgdG8g dGhlIG1hdGNoZWQgZWxlbWVudHMgYW5kIGNhbiBiZQorICAgIHVzZWQgdG8gcmVmZXIgdG8gdGhl IHByb3BlcnR5IHZhbHVlcyBmcm9tIHRob3NlIGVsZW1lbnRzLiAgVGhlIG1vc3QKKyAgICBpbXBv cnRhbnQgdXNlIGlzIHRvIHVzZSB0aGVtIGluIHRoZSA8bGl0ZXJhbD5DT0xVTU5TPC9saXRlcmFs PiBjbGF1c2UgdG8KKyAgICBkZWZpbmUgdGhlIHRhYnVsYXIgcmVzdWx0IG9mIHRoZSA8bGl0ZXJh bD5HUkFQSF9UQUJMRTwvbGl0ZXJhbD4gY2xhdXNlLgorICAgIEZvciBleGFtcGxlIChhc3N1bWlu ZyBhcHByb3ByaWF0ZSBkZWZpbml0aW9ucyBvZiB0aGUgcHJvcGVydHkgZ3JhcGggYXMKKyAgICB3 ZWxsIGFzIHRoZSB1bmRlcmx5aW5nIHRhYmxlcyk6Cis8cHJvZ3JhbWxpc3Rpbmc+CitHUkFQSF9U QUJMRSAobXlncmFwaCBNQVRDSCAocDpwZXJzb24pLVtoOmhhc10tPihhOmFjY291bnQpCisgICAg ICAgICAgICAgQ09MVU1OUyAocC5uYW1lIEFTIHBlcnNvbl9uYW1lLCBoLnNpbmNlIEFTIGhhc19h Y2NvdW50X3NpbmNlLCBhLm51bSBBUyBhY2NvdW50X251bWJlcikKKzwvcHJvZ3JhbWxpc3Rpbmc+ CisgICAgPGxpdGVyYWw+V0hFUkU8L2xpdGVyYWw+IGNsYXVzZXMgY2FuIGJlIHVzZWQgaW5zaWRl IGVsZW1lbnQgcGF0dGVybnMgdG8KKyAgICBmaWx0ZXIgbWF0Y2hlczoKKzxwcm9ncmFtbGlzdGlu Zz4KKyg6cGVyc29uKS1bOmhhc10tPihhOmFjY291bnQgV0hFUkUgYS50eXBlID0gJ3NhdmluZ3Mn KQorPC9wcm9ncmFtbGlzdGluZz4KKyAgIDwvcGFyYT4KKworICAgPCEtLSBUT0RPOiBtdWx0aXBs ZSBwYXRoIHBhdHRlcm5zIGluIGEgZ3JhcGggcGF0dGVybiAoY29tbWEtc2VwYXJhdGVkKSAtLT4K KworICAgPCEtLSBUT0RPOiBxdWFudGlmaWVycyAtLT4KKworICA8L3NlY3QyPgorIDwvc2VjdDE+ CisKIDwvY2hhcHRlcj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAppbmRleCBmNWJlNjM4ODY3YS4uZWZi YmYyODNjNDkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKQEAgLTI3LDYgKzI3LDcgQEAgQ29tcGxl dGUgbGlzdCBvZiB1c2FibGUgc2dtbCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8 IUVOVElUWSBhbHRlck9wZXJhdG9yRmFtaWx5IFNZU1RFTSAiYWx0ZXJfb3BmYW1pbHkuc2dtbCI+ CiA8IUVOVElUWSBhbHRlclBvbGljeSAgICAgICAgU1lTVEVNICJhbHRlcl9wb2xpY3kuc2dtbCI+ CiA8IUVOVElUWSBhbHRlclByb2NlZHVyZSAgICAgU1lTVEVNICJhbHRlcl9wcm9jZWR1cmUuc2dt bCI+Cis8IUVOVElUWSBhbHRlclByb3BlcnR5R3JhcGggU1lTVEVNICJhbHRlcl9wcm9wZXJ0eV9n cmFwaC5zZ21sIj4KIDwhRU5USVRZIGFsdGVyUHVibGljYXRpb24gICBTWVNURU0gImFsdGVyX3B1 YmxpY2F0aW9uLnNnbWwiPgogPCFFTlRJVFkgYWx0ZXJSb2xlICAgICAgICAgIFNZU1RFTSAiYWx0 ZXJfcm9sZS5zZ21sIj4KIDwhRU5USVRZIGFsdGVyUm91dGluZSAgICAgICBTWVNURU0gImFsdGVy X3JvdXRpbmUuc2dtbCI+CkBAIC03OSw2ICs4MCw3IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxl IHNnbWwgc291cmNlIGZpbGVzIGluIHRoaXMgZGlyZWN0b3J5LgogPCFFTlRJVFkgY3JlYXRlT3Bl cmF0b3JGYW1pbHkgU1lTVEVNICJjcmVhdGVfb3BmYW1pbHkuc2dtbCI+CiA8IUVOVElUWSBjcmVh dGVQb2xpY3kgICAgICAgU1lTVEVNICJjcmVhdGVfcG9saWN5LnNnbWwiPgogPCFFTlRJVFkgY3Jl YXRlUHJvY2VkdXJlICAgIFNZU1RFTSAiY3JlYXRlX3Byb2NlZHVyZS5zZ21sIj4KKzwhRU5USVRZ IGNyZWF0ZVByb3BlcnR5R3JhcGggU1lTVEVNICJjcmVhdGVfcHJvcGVydHlfZ3JhcGguc2dtbCI+ CiA8IUVOVElUWSBjcmVhdGVQdWJsaWNhdGlvbiAgU1lTVEVNICJjcmVhdGVfcHVibGljYXRpb24u c2dtbCI+CiA8IUVOVElUWSBjcmVhdGVSb2xlICAgICAgICAgU1lTVEVNICJjcmVhdGVfcm9sZS5z Z21sIj4KIDwhRU5USVRZIGNyZWF0ZVJ1bGUgICAgICAgICBTWVNURU0gImNyZWF0ZV9ydWxlLnNn bWwiPgpAQCAtMTI3LDYgKzEyOSw3IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxlIHNnbWwgc291 cmNlIGZpbGVzIGluIHRoaXMgZGlyZWN0b3J5LgogPCFFTlRJVFkgZHJvcE93bmVkICAgICAgICAg IFNZU1RFTSAiZHJvcF9vd25lZC5zZ21sIj4KIDwhRU5USVRZIGRyb3BQb2xpY3kgICAgICAgICBT WVNURU0gImRyb3BfcG9saWN5LnNnbWwiPgogPCFFTlRJVFkgZHJvcFByb2NlZHVyZSAgICAgIFNZ U1RFTSAiZHJvcF9wcm9jZWR1cmUuc2dtbCI+Cis8IUVOVElUWSBkcm9wUHJvcGVydHlHcmFwaCAg U1lTVEVNICJkcm9wX3Byb3BlcnR5X2dyYXBoLnNnbWwiPgogPCFFTlRJVFkgZHJvcFB1YmxpY2F0 aW9uICAgIFNZU1RFTSAiZHJvcF9wdWJsaWNhdGlvbi5zZ21sIj4KIDwhRU5USVRZIGRyb3BSb2xl ICAgICAgICAgICBTWVNURU0gImRyb3Bfcm9sZS5zZ21sIj4KIDwhRU5USVRZIGRyb3BSb3V0aW5l ICAgICAgICBTWVNURU0gImRyb3Bfcm91dGluZS5zZ21sIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9yZWYvYWx0ZXJfZXh0ZW5zaW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2V4 dGVuc2lvbi5zZ21sCmluZGV4IGM4MTljN2JiNGUzLi42MDIxOGZjZDAxYyAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9leHRlbnNpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv cmVmL2FsdGVyX2V4dGVuc2lvbi5zZ21sCkBAIC00Niw2ICs0Niw3IEBAIEFMVEVSIEVYVEVOU0lP TiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IERST1Ag PHJlcGxhY2VhCiAgIE9QRVJBVE9SIEZBTUlMWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiBVU0lORyA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+aW5kZXhfbWV0aG9kPC9yZXBsYWNlYWJsZT4gfAogICBbIFBST0NFRFVSQUwgXSBM QU5HVUFHRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxh Y2VhYmxlPiB8CiAgIFBST0NFRFVSRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHJv Y2VkdXJlX25hbWU8L3JlcGxhY2VhYmxlPiBbICggWyBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5hcmdtb2RlPC9yZXBsYWNlYWJsZT4gXSBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5hcmduYW1lPC9yZXBsYWNlYWJsZT4gXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+YXJndHlwZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gXSApIF0gfAorICBQUk9QRVJUWSBH UkFQSCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2Vh YmxlPiB8CiAgIFJPVVRJTkUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvdXRpbmVf bmFtZTwvcmVwbGFjZWFibGU+IFsgKCBbIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmFyZ21vZGU8L3JlcGxhY2VhYmxlPiBdIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmFyZ25hbWU8L3JlcGxhY2VhYmxlPiBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5h cmd0eXBlPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBdICkgXSB8CiAgIFNDSEVNQSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFNFUVVF TkNFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3RfbmFtZTwvcmVwbGFjZWFi bGU+IHwKQEAgLTE3OSw3ICsxODAsNyBAQCBBTFRFUiBFWFRFTlNJT04gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBEUk9QIDxyZXBsYWNlYQogICAgICAg IFRoZSBuYW1lIG9mIGFuIG9iamVjdCB0byBiZSBhZGRlZCB0byBvciByZW1vdmVkIGZyb20gdGhl IGV4dGVuc2lvbi4KICAgICAgICBOYW1lcyBvZiB0YWJsZXMsCiAgICAgICAgYWdncmVnYXRlcywg ZG9tYWlucywgZm9yZWlnbiB0YWJsZXMsIGZ1bmN0aW9ucywgb3BlcmF0b3JzLAotICAgICAgIG9w ZXJhdG9yIGNsYXNzZXMsIG9wZXJhdG9yIGZhbWlsaWVzLCBwcm9jZWR1cmVzLCByb3V0aW5lcywg c2VxdWVuY2VzLCB0ZXh0IHNlYXJjaCBvYmplY3RzLAorICAgICAgIG9wZXJhdG9yIGNsYXNzZXMs IG9wZXJhdG9yIGZhbWlsaWVzLCBwcm9jZWR1cmVzLCBwcm9wZXJ0eSBncmFwaHMsIHJvdXRpbmVz LCBzZXF1ZW5jZXMsIHRleHQgc2VhcmNoIG9iamVjdHMsCiAgICAgICAgdHlwZXMsIGFuZCB2aWV3 cyBjYW4gYmUgc2NoZW1hLXF1YWxpZmllZC4KICAgICAgIDwvcGFyYT4KICAgICAgPC9saXN0aXRl bT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHJvcGVydHlfZ3JhcGguc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHJvcGVydHlfZ3JhcGguc2dtbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjA0YzUxODAxMTcKLS0tIC9kZXYvbnVsbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3Byb3BlcnR5X2dyYXBoLnNnbWwKQEAgLTAsMCAr MSwyOTkgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHJvcGVydHlfZ3JhcGguc2dt bAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtYWx0 ZXItcHJvcGVydHktZ3JhcGgiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWFsdGVyLXByb3BlcnR5 LWdyYXBoIj4KKyAgPHByaW1hcnk+QUxURVIgUFJPUEVSVFkgR1JBUEg8L3ByaW1hcnk+CisgPC9p bmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+QUxURVIgUFJPUEVSVFkg R1JBUEg8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVm bWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZt ZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkFMVEVSIFBST1BFUlRZIEdSQVBIPC9y ZWZuYW1lPgorICA8cmVmcHVycG9zZT5jaGFuZ2UgdGhlIGRlZmluaXRpb24gb2YgYW4gU1FMLXBy b3BlcnR5IGdyYXBoPC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNp c2Rpdj4KKzxzeW5vcHNpcz4KK0FMVEVSIFBST1BFUlRZIEdSQVBIIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gQURECisgICAgWyB7VkVSVEVYfE5PREV9 IFRBQkxFUyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52ZXJ0ZXhfdGFibGVfZGVm aW5pdGlvbjwvcmVwbGFjZWFibGU+IFssIC4uLl0gKSBdCisgICAgWyB7RURHRXxSRUxBVElPTlNI SVB9IFRBQkxFUyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lZGdlX3RhYmxlX2Rl ZmluaXRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgXQorCitBTFRFUiBQUk9QRVJUWSBHUkFQ SCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IERST1AK KyAgICB7VkVSVEVYfE5PREV9IFRBQkxFUyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij52ZXJ0ZXhfdGFibGVfYWxpYXM8L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgWyBDQVNDQURFIHwg UkVTVFJJQ1QgXQorCitBTFRFUiBQUk9QRVJUWSBHUkFQSCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IERST1AKKyAgICB7RURHRXxSRUxBVElPTlNISVB9 IFRBQkxFUyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lZGdlX3RhYmxlX2FsaWFz PC9yZXBsYWNlYWJsZT4gWywgLi4uXSApIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKworQUxURVIg UFJPUEVSVFkgR1JBUEggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxh Y2VhYmxlPiBBTFRFUgorICAgIHtWRVJURVh8Tk9ERXxFREdFfFJFTEFUSU9OU0hJUH0gVEFCTEUg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVsZW1lbnRfdGFibGVfYWxpYXM8L3JlcGxh Y2VhYmxlPgorICAgIHsgQUREIExBQkVMIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5s YWJlbF9uYW1lPC9yZXBsYWNlYWJsZT4gWyBOTyBQUk9QRVJUSUVTIHwgUFJPUEVSVElFUyBBTEwg Q09MVU1OUyB8IFBST1BFUlRJRVMgKCB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5l eHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gWyBBUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cHJvcGVydHlfbmFtZTwvcmVwbGFjZWFibGU+IF0gfSBbLCAuLi5dICkgXSB9IFsgLi4uIF0K KworQUxURVIgUFJPUEVSVFkgR1JBUEggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5h bWU8L3JlcGxhY2VhYmxlPiBBTFRFUgorICAgIHtWRVJURVh8Tk9ERXxFREdFfFJFTEFUSU9OU0hJ UH0gVEFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVsZW1lbnRfdGFibGVfYWxp YXM8L3JlcGxhY2VhYmxlPgorICAgIERST1AgTEFCRUwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmxhYmVsX25hbWU8L3JlcGxhY2VhYmxlPiBbIENBU0NBREUgfCBSRVNUUklDVCBdCisK K0FMVEVSIFBST1BFUlRZIEdSQVBIIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1l PC9yZXBsYWNlYWJsZT4gQUxURVIKKyAgICB7VkVSVEVYfE5PREV8RURHRXxSRUxBVElPTlNISVB9 IFRBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lbGVtZW50X3RhYmxlX2FsaWFz PC9yZXBsYWNlYWJsZT4KKyAgICBBTFRFUiBMQUJFTCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bGFiZWxfbmFtZTwvcmVwbGFjZWFibGU+IEFERCBQUk9QRVJUSUVTICggeyA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IFsgQVMgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnByb3BlcnR5X25hbWU8L3JlcGxhY2VhYmxlPiBd IH0gWywgLi4uXSApCisKK0FMVEVSIFBST1BFUlRZIEdSQVBIIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gQUxURVIKKyAgICB7VkVSVEVYfE5PREV8RURH RXxSRUxBVElPTlNISVB9IFRBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lbGVt ZW50X3RhYmxlX2FsaWFzPC9yZXBsYWNlYWJsZT4KKyAgICBBTFRFUiBMQUJFTCA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+bGFiZWxfbmFtZTwvcmVwbGFjZWFibGU+IERST1AgUFJPUEVS VElFUyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wcm9wZXJ0eV9uYW1lPC9yZXBs YWNlYWJsZT4gWywgLi4uXSApIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKworQUxURVIgUFJPUEVS VFkgR1JBUEggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxl PiBPV05FUiBUTyB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfb3duZXI8L3Jl cGxhY2VhYmxlPiB8IENVUlJFTlRfVVNFUiB8IFNFU1NJT05fVVNFUiB9CitBTFRFUiBQUk9QRVJU WSBHUkFQSCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ IFJFTkFNRSBUTyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X25hbWU8L3JlcGxh Y2VhYmxlPgorQUxURVIgUFJPUEVSVFkgR1JBUEggWyBJRiBFWElTVFMgXSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFNFVCBTQ0hFTUEgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19zY2hlbWE8L3JlcGxhY2VhYmxlPgorPC9zeW5vcHNp cz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRp b248L3RpdGxlPgorCisgIDxwYXJhPgorICAgPGNvbW1hbmQ+QUxURVIgUFJPUEVSVFkgR1JBUEg8 L2NvbW1hbmQ+IGNoYW5nZXMgdGhlIGRlZmluaXRpb24gb2YgYW4KKyAgIGV4aXN0aW5nIHByb3Bl cnR5IGdyYXBoLiAgVGhlcmUgYXJlIHNldmVyYWwgc3ViZm9ybXM6CisKKyAgIDx2YXJpYWJsZWxp c3Q+CisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+QUREIHtWRVJURVh8 Tk9ERXxFREdFfFJFTEFUSU9OU0hJUH0gVEFCTEVTPC9saXRlcmFsPjwvdGVybT4KKyAgICAgPGxp c3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgVGhpcyBmb3JtIGFkZHMgbmV3IHZlcnRleCBv ciBlZGdlIHRhYmxlcywgdXNpbmcgdGhlIHNhbWUgc3ludGF4IGFzCisgICAgICAgPGxpbmsgbGlu a2VuZD0ic3FsLWNyZWF0ZS1wcm9wZXJ0eS1ncmFwaCI+PGNvbW1hbmQ+Q1JFQVRFIFBST1BFUlRZ CisgICAgICAgR1JBUEg8L2NvbW1hbmQ+PC9saW5rPi4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9s aXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2YXJsaXN0ZW50cnk+CisgICAg IDx0ZXJtPjxsaXRlcmFsPkRST1Age1ZFUlRFWHxOT0RFfEVER0V8UkVMQVRJT05TSElQfSBUQUJM RVM8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAg ICBUaGlzIGZvcm0gcmVtb3ZlcyBhIHZlcnRleCBvciBlZGdlIHRhYmxlIGZyb20gdGhlIHByb3Bl cnR5IGdyYXBoLgorICAgICAgIChPbmx5IHRoZSBhc3NvY2lhdGlvbiBvZiB0aGUgdGFibGUgd2l0 aCB0aGUgZ3JhcGggcmVtb3ZlZC4gIFRoZSB0YWJsZQorICAgICAgIGl0c2VsZiBpcyBub3QgZHJv cHBlZC4pCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50 cnk+CisKKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48bGl0ZXJhbD5BTFRFUiB7VkVS VEVYfE5PREV8RURHRXxSRUxBVElPTlNISVB9IFRBQkxFIC4uLiBBREQgTEFCRUw8L2xpdGVyYWw+ PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGlzIGZvcm0g YWRkcyBhIG5ldyBsYWJlbCB0byBhbiBleGlzdGluZyB2ZXJ0ZXggb3IgZWRnZSB0YWJsZSwgdXNp bmcKKyAgICAgICB0aGUgc2FtZSBzeW50YXggYXMgPGxpbmsKKyAgICAgICBsaW5rZW5kPSJzcWwt Y3JlYXRlLXByb3BlcnR5LWdyYXBoIj48Y29tbWFuZD5DUkVBVEUgUFJPUEVSVFkKKyAgICAgICBH UkFQSDwvY29tbWFuZD48L2xpbms+LgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgor ICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxp dGVyYWw+QUxURVIge1ZFUlRFWHxOT0RFfEVER0V8UkVMQVRJT05TSElQfSBUQUJMRSAuLi4gRFJP UCBMQUJFTDwvbGl0ZXJhbD48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgor ICAgICAgIFRoaXMgZm9ybSByZW1vdmVzIGEgbmV3IGxhYmVsIGZyb20gYW4gZXhpc3RpbmcgdmVy dGV4IG9yIGVkZ2UgdGFibGUuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAg PC92YXJsaXN0ZW50cnk+CisKKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48bGl0ZXJh bD5BTFRFUiB7VkVSVEVYfE5PREV8RURHRXxSRUxBVElPTlNISVB9IFRBQkxFIC4uLiBBTFRFUiBM QUJFTCAuLi4gQUREIFBST1BFUlRJRVM8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+ CisgICAgICA8cGFyYT4KKyAgICAgICBUaGlzIGZvcm0gYWRkcyBuZXcgcHJvcGVydGllcyB0byBh biBleGlzdGluZyBsYWJlbCBvbiBhbiBleGlzdGluZworICAgICAgIHZlcnRleCBvciBlZGdlIHRh YmxlLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5 PgorCisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+QUxURVIge1ZFUlRF WHxOT0RFfEVER0V8UkVMQVRJT05TSElQfSBUQUJMRSAuLi4gQUxURVIgTEFCRUwgLi4uIERST1Ag UFJPUEVSVElFUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJh PgorICAgICAgIFRoaXMgZm9ybSByZW1vdmVzIHByb3BlcnRpZXMgZnJvbSBhbiBleGlzdGluZyBs YWJlbCBvbiBhbiBleGlzdGluZworICAgICAgIHZlcnRleCBvciBlZGdlIHRhYmxlLgorICAgICAg PC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZh cmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+T1dORVI8L2xpdGVyYWw+PC90ZXJtPgor ICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGlzIGZvcm0gY2hhbmdlcyB0 aGUgb3duZXIgb2YgdGhlIHByb3BlcnR5IGdyYXBoIHRvIHRoZSBzcGVjaWZpZWQgdXNlci4KKyAg ICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAg IDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxsaXRlcmFsPlJFTkFNRTwvbGl0ZXJhbD48L3Rl cm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoaXMgZm9ybSBjaGFu Z2VzIHRoZSBuYW1lIG9mIGEgcHJvcGVydHkgZ3JhcGguCisgICAgICA8L3BhcmE+CisgICAgIDwv bGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICA8dmFybGlzdGVudHJ5PgorICAg ICA8dGVybT48bGl0ZXJhbD5TRVQgU0NIRU1BPC9saXRlcmFsPjwvdGVybT4KKyAgICAgPGxpc3Rp dGVtPgorICAgICAgPHBhcmE+CisgICAgICAgVGhpcyBmb3JtIG1vdmVzIHRoZSBwcm9wZXJ0eSBn cmFwaCBpbnRvIGFub3RoZXIgc2NoZW1hLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVt PgorICAgIDwvdmFybGlzdGVudHJ5PgorICAgPC92YXJpYWJsZWxpc3Q+CisgIDwvcGFyYT4KKwor ICA8cGFyYT4KKyAgIFlvdSBtdXN0IG93biB0aGUgcHJvcGVydHkgZ3JhcGggdG8gdXNlIDxjb21t YW5kPkFMVEVSIFBST1BFUlRZCisgICBHUkFQSDwvY29tbWFuZD4uICBUbyBjaGFuZ2UgYSBwcm9w ZXJ0eSBncmFwaCdzIHNjaGVtYSwgeW91IG11c3QgYWxzbyBoYXZlCisgICA8bGl0ZXJhbD5DUkVB VEU8L2xpdGVyYWw+IHByaXZpbGVnZSBvbiB0aGUgbmV3IHNjaGVtYS4gIFRvIGFsdGVyIHRoZSBv d25lciwKKyAgIHlvdSBtdXN0IGJlIGFibGUgdG8gPGxpdGVyYWw+U0VUIFJPTEU8L2xpdGVyYWw+ IHRvIHRoZSBuZXcgb3duaW5nIHJvbGUsIGFuZAorICAgdGhhdCByb2xlIG11c3QgaGF2ZSA8bGl0 ZXJhbD5DUkVBVEU8L2xpdGVyYWw+IHByaXZpbGVnZSBvbiB0aGUgcHJvcGVydHkKKyAgIGdyYXBo J3Mgc2NoZW1hLiAgKFRoZXNlIHJlc3RyaWN0aW9ucyBlbmZvcmNlIHRoYXQgYWx0ZXJpbmcgdGhl IG93bmVyCisgICBkb2Vzbid0IGRvIGFueXRoaW5nIHlvdSBjb3VsZG4ndCBkbyBieSBkcm9wcGlu ZyBhbmQgcmVjcmVhdGluZyB0aGUgcHJvcGVydHkKKyAgIGdyYXBoLiAgSG93ZXZlciwgYSBzdXBl cnVzZXIgY2FuIGFsdGVyIG93bmVyc2hpcCBvZiBhbnkgcHJvcGVydHkgZ3JhcGgKKyAgIGFueXdh eS4pCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFy YW1ldGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+Cisg ICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxl PjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUgKG9w dGlvbmFsbHkgc2NoZW1hLXF1YWxpZmllZCkgb2YgYSBwcm9wZXJ0eSBncmFwaCB0byBiZSBhbHRl cmVkLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5Pgor CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPklGIEVYSVNUUzwvbGl0ZXJh bD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIERvIG5vdCB0aHJv dyBhbiBlcnJvciBpZiB0aGUgcHJvcGVydHkgZ3JhcGggZG9lcyBub3QgZXhpc3QuICBBIG5vdGlj ZSBpcworICAgICAgaXNzdWVkIGluIHRoaXMgY2FzZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlz dGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVy bT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmVydGV4X3RhYmxlX2RlZmluaXRpb248 L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+ZWRnZV90YWJsZV9kZWZpbml0aW9uPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFNlZSA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRl LXByb3BlcnR5LWdyYXBoIj48Y29tbWFuZD5DUkVBVEUgUFJPUEVSVFkKKyAgICAgIEdSQVBIPC9j b21tYW5kPjwvbGluaz4uCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnZlcnRleF90YWJsZV9hbGlhczwvcmVwbGFjZWFibGU+PC90ZXJtPgor ICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lZGdlX3RhYmxlX2FsaWFz PC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IFRoZSBhbGlhcyBvZiBhbiBleGlzdGluZyB2ZXJ0ZXggb3IgZWRnZSB0YWJsZSB0byBvcGVyYXRl IG9uLiAgKE5vdGUgdGhhdAorICAgICAgdGhlIGFsaWFzIGlzIHBvdGVudGlhbGx5IGRpZmZlcmVu dCBmcm9tIHRoZSBuYW1lIG9mIHRoZSB1bmRlcmx5aW5nCisgICAgICB0YWJsZSwgaWYgdGhlIHZl cnRleCBvciBlZGdlIHRhYmxlIHdhcyBjcmVhdGVkIHdpdGggPGxpdGVyYWw+QVMKKyAgICAgIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hbGlhczwvcmVwbGFjZWFibGU+PC9saXRlcmFs Pi4pCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisK KyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmxhYmVsX25hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8dGVybT48cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+cHJvcGVydHlfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgor ICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBs YWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFNlZSA8 bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlLXByb3BlcnR5LWdyYXBoIj48Y29tbWFuZD5DUkVBVEUg UFJPUEVSVFkKKyAgICAgIEdSQVBIPC9jb21tYW5kPjwvbGluaz4uCisgICAgIDwvcGFyYT4KKyAg ICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+Cisg ICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19vd25lcjwvcmVwbGFj ZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgdXNl ciBuYW1lIG9mIHRoZSBuZXcgb3duZXIgb2YgdGhlIHByb3BlcnR5IGdyYXBoLgorICAgICA8L3Bh cmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVu dHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfbmFtZTwv cmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBU aGUgbmV3IG5hbWUgZm9yIHRoZSBwcm9wZXJ0eSBncmFwaC4KKyAgICAgPC9wYXJhPgorICAgIDwv bGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8 dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X3NjaGVtYTwvcmVwbGFjZWFi bGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmV3IHNj aGVtYSBmb3IgdGhlIHByb3BlcnR5IGdyYXBoLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KKyAgIDwvdmFybGlzdGVudHJ5PgorICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgor CisgPHJlZnNlY3QxPgorICA8dGl0bGU+Tm90ZXM8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhl IGNvbnNpc3RlbmN5IGNoZWNrcyBvbiBhIHByb3BlcnR5IGdyYXBoIGRlc2NyaWJlZCBhdCA8eHJl ZgorICAgbGlua2VuZD0ic3FsLWNyZWF0ZS1wcm9wZXJ0eS1ncmFwaC1ub3RlcyIvPiBtdXN0IGJl IG1haW50YWluZWQgYnkKKyAgIDxjb21tYW5kPkFMVEVSIFBST1BFUlRZIEdSQVBIPC9jb21tYW5k PiBvcGVyYXRpb25zLiAgSW4gc29tZSBjYXNlcywgaXQKKyAgIG1pZ2h0IGJlIG5lY2Vzc2FyeSB0 byBtYWtlIG11bHRpcGxlIGFsdGVyYXRpb25zIGluIGEgc2luZ2xlIGNvbW1hbmQgdG8KKyAgIHNh dGlzZnkgdGhlIGNoZWNrcy4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+ CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+Cis8cHJvZ3JhbWxpc3Rpbmc+ CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnMSBBREQgVkVSVEVYIFRBQkxFUyAodjIpOworCitBTFRF UiBQUk9QRVJUWSBHUkFQSCBnMSBBTFRFUiBWRVJURVggVEFCTEUgdjEgRFJPUCBMQUJFTCBmb287 CisKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGcxIFJFTkFNRSBUTyBnMjsKKzwvcHJvZ3JhbWxpc3Rp bmc+PC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRp YmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5kPkNSRUFURSBQUk9QRVJUWSBH UkFQSDwvY29tbWFuZD4gY29uZm9ybXMgdG8gSVNPL0lFQyA5MDc1LTE2CisgICAoU1FML1BHUSku CisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2VlIEFs c288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4 cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUtcHJvcGVydHktZ3JhcGgiLz48L21lbWJlcj4KKyAgIDxt ZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3AtcHJvcGVydHktZ3JhcGgiLz48L21lbWJlcj4K KyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+Cis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQu c2dtbAppbmRleCA1YjQzYzU2YjEzMy4uN2IyNTE0NzZlMjQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9yZWYvY29tbWVudC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21s CkBAIC00Nyw2ICs0Nyw3IEBAIENPTU1FTlQgT04KICAgUE9MSUNZIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5wb2xpY3lfbmFtZTwvcmVwbGFjZWFibGU+IE9OIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBbIFBST0NFRFVS QUwgXSBMQU5HVUFHRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8 L3JlcGxhY2VhYmxlPiB8CiAgIFBST0NFRFVSRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cHJvY2VkdXJlX25hbWU8L3JlcGxhY2VhYmxlPiBbICggWyBbIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5hcmdtb2RlPC9yZXBsYWNlYWJsZT4gXSBbIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5hcmduYW1lPC9yZXBsYWNlYWJsZT4gXSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+YXJndHlwZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gXSApIF0gfAorICBQUk9Q RVJUWSBHUkFQSCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3Jl cGxhY2VhYmxlPgogICBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFJPTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBST1VUSU5FIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb3V0aW5lX25hbWU8L3JlcGxhY2VhYmxlPiBbICggWyBb IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hcmdtb2RlPC9yZXBsYWNlYWJsZT4gXSBb IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hcmduYW1lPC9yZXBsYWNlYWJsZT4gXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YXJndHlwZTwvcmVwbGFjZWFibGU+IFssIC4u Ll0gXSApIF0gfApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHJvcGVydHlf Z3JhcGguc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNnbWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmY4OGQxMTk0Y2JjCi0tLSAv ZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHJvcGVydHlfZ3JhcGguc2dt bApAQCAtMCwwICsxLDMxMCBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHJvcGVy dHlfZ3JhcGguc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5 IGlkPSJzcWwtY3JlYXRlLXByb3BlcnR5LWdyYXBoIj4KKyA8aW5kZXh0ZXJtIHpvbmU9InNxbC1j cmVhdGUtcHJvcGVydHktZ3JhcGgiPgorICA8cHJpbWFyeT5DUkVBVEUgUFJPUEVSVFkgR1JBUEg8 L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+ Q1JFQVRFIFBST1BFUlRZIEdSQVBIPC9yZWZlbnRyeXRpdGxlPgorICA8bWFudm9sbnVtPjc8L21h bnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0YXRlbWVudHM8L3JlZm1p c2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZuYW1lZGl2PgorICA8cmVmbmFtZT5DUkVBVEUg UFJPUEVSVFkgR1JBUEg8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPmRlZmluZSBhbiBTUUwtcHJv cGVydHkgZ3JhcGg8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lz ZGl2PgorPHN5bm9wc2lzPgorQ1JFQVRFIFsgVEVNUCB8IFRFTVBPUkFSWSBdIFBST1BFUlRZIEdS QVBIIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KKyAg ICBbIHtWRVJURVh8Tk9ERX0gVEFCTEVTICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnZlcnRleF90YWJsZV9kZWZpbml0aW9uPC9yZXBsYWNlYWJsZT4gWywgLi4uXSApIF0KKyAgICBb IHtFREdFfFJFTEFUSU9OU0hJUH0gVEFCTEVTICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmVkZ2VfdGFibGVfZGVmaW5pdGlvbjwvcmVwbGFjZWFibGU+IFssIC4uLl0gKSBdCisKKzxw aHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZlcnRleF90YWJsZV9k ZWZpbml0aW9uPC9yZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+CisKKyAgICA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+dmVydGV4X3RhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbIEFTIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hbGlhczwvcmVwbGFjZWFibGU+IF0gWyBLRVkg KCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxl PiBbLCAuLi5dICkgXSBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lbGVtZW50X3Rh YmxlX2xhYmVsX2FuZF9wcm9wZXJ0aWVzPC9yZXBsYWNlYWJsZT4gXQorCis8cGhyYXNlPmFuZCA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZWRnZV90YWJsZV9kZWZpbml0aW9uPC9yZXBs YWNlYWJsZT4gaXM6PC9waHJhc2U+CisKKyAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+ZWRnZV90YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+YWxpYXM8L3JlcGxhY2VhYmxlPiBdIFsgS0VZICggPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSApIF0KKyAg ICAgICAgU09VUkNFIFsgS0VZICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVt bl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSApIFJFRkVSRU5DRVMgXSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+c291cmNlX3RhYmxlPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0g KSBdCisgICAgICAgIERFU1RJTkFUSU9OIFsgS0VZICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSApIFJFRkVSRU5DRVMgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGVzdF90YWJsZTwvcmVwbGFjZWFibGU+IFsg KCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxl PiBbLCAuLi5dICkgXQorICAgICAgICBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5l bGVtZW50X3RhYmxlX2xhYmVsX2FuZF9wcm9wZXJ0aWVzPC9yZXBsYWNlYWJsZT4gXQorCis8cGhy YXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZWxlbWVudF90YWJsZV9sYWJl bF9hbmRfcHJvcGVydGllczwvcmVwbGFjZWFibGU+IGlzIGVpdGhlcjo8L3BocmFzZT4KKworICAg IE5PIFBST1BFUlRJRVMgfCBQUk9QRVJUSUVTIEFMTCBDT0xVTU5TIHwgUFJPUEVSVElFUyAoIHsg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiBb IEFTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wcm9wZXJ0eV9uYW1lPC9yZXBsYWNl YWJsZT4gXSB9IFssIC4uLl0gKQorCis8cGhyYXNlPm9yOjwvcGhyYXNlPgorCisgICB7IHsgTEFC RUwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmxhYmVsX25hbWU8L3JlcGxhY2VhYmxl PiB8IERFRkFVTFQgTEFCRUwgfSBbIE5PIFBST1BFUlRJRVMgfCBQUk9QRVJUSUVTIEFMTCBDT0xV TU5TIHwgUFJPUEVSVElFUyAoIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJl c3Npb248L3JlcGxhY2VhYmxlPiBbIEFTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5w cm9wZXJ0eV9uYW1lPC9yZXBsYWNlYWJsZT4gXSB9IFssIC4uLl0gKSBdIH0gWy4uLl0KKzwvc3lu b3BzaXM+Cis8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3Jp cHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgPGNvbW1hbmQ+Q1JFQVRFIFBST1BFUlRZIEdS QVBIPC9jb21tYW5kPiBkZWZpbmVzIGEgcHJvcGVydHkgZ3JhcGguICBBCisgICBwcm9wZXJ0eSBn cmFwaCBjb25zaXN0cyBvZiB2ZXJ0aWNlcyBhbmQgZWRnZXMsIHRvZ2V0aGVyIGNhbGxlZCBlbGVt ZW50cywKKyAgIGVhY2ggd2l0aCBhc3NvY2lhdGVkIGxhYmVscyBhbmQgcHJvcGVydGllcywgYW5k IGNhbiBiZSBxdWVyaWVkIHVzaW5nIHRoZQorICAgPGxpdGVyYWw+R1JBUEhfVEFCTEU8L2xpdGVy YWw+IGNsYXVzZSBvZiA8eHJlZiBsaW5rZW5kPSJzcWwtc2VsZWN0Ii8+IHdpdGgKKyAgIGEgc3Bl Y2lhbCBwYXRoIG1hdGNoaW5nIHN5bnRheC4gIFRoZSBkYXRhIGluIHRoZSBncmFwaCBpcyBzdG9y ZWQgaW4gcmVndWxhcgorICAgdGFibGVzIChvciB2aWV3cywgZm9yZWlnbiB0YWJsZXMsIGV0Yy4p LiAgRWFjaCB2ZXJ0ZXggb3IgZWRnZSBjb3JyZXNwb25kcworICAgdG8gYSB0YWJsZS4gIFRoZSBw cm9wZXJ0eSBncmFwaCBkZWZpbml0aW9uIGxpbmtzIHRoZXNlIHRhYmxlcyB0b2dldGhlciBpbnRv CisgICBhIGdyYXBoIHN0cnVjdHVyZSB0aGF0IGNhbiBiZSBxdWVyaWVkIHVzaW5nIGdyYXBoIHF1 ZXJ5IHRlY2huaXF1ZXMuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5kPkNSRUFU RSBQUk9QRVJUWSBHUkFQSDwvY29tbWFuZD4gZG9lcyBub3QgcGh5c2ljYWxseSBtYXRlcmlhbGl6 ZSBhCisgICBncmFwaC4gIEl0IGlzIHRodXMgc2ltaWxhciB0byA8Y29tbWFuZD5DUkVBVEUgVklF VzwvY29tbWFuZD4gaW4gdGhhdCBpdAorICAgcmVjb3JkcyBhIHN0cnVjdHVyZSB0aGF0IGlzIHVz ZWQgb25seSB3aGVuIHRoZSBkZWZpbmVkIG9iamVjdCBpcyBxdWVyaWVkLgorICA8L3BhcmE+CisK KyAgPHBhcmE+CisgICBJZiBhIHNjaGVtYSBuYW1lIGlzIGdpdmVuIChmb3IgZXhhbXBsZSwgPGxp dGVyYWw+Q1JFQVRFIFBST1BFUlRZIEdSQVBICisgICBteXNjaGVtYS5teWdyYXBoIC4uLjwvbGl0 ZXJhbD4pIHRoZW4gdGhlIHByb3BlcnR5IGdyYXBoIGlzIGNyZWF0ZWQgaW4gdGhlCisgICBzcGVj aWZpZWQgc2NoZW1hLiAgT3RoZXJ3aXNlIGl0IGlzIGNyZWF0ZWQgaW4gdGhlIGN1cnJlbnQgc2No ZW1hLgorICAgVGVtcG9yYXJ5IHByb3BlcnR5IGdyYXBocyBleGlzdCBpbiBhIHNwZWNpYWwgc2No ZW1hLCBzbyBhIHNjaGVtYSBuYW1lCisgICBjYW5ub3QgYmUgZ2l2ZW4gd2hlbiBjcmVhdGluZyBh IHRlbXBvcmFyeSBwcm9wZXJ0eSBncmFwaC4gIFByb3BlcnR5IGdyYXBocworICAgc2hhcmUgYSBu YW1lc3BhY2Ugd2l0aCB0YWJsZXMgYW5kIG90aGVyIHJlbGF0aW9uIHR5cGVzLCBzbyB0aGUgbmFt ZSBvZiB0aGUKKyAgIHByb3BlcnR5IGdyYXBoIG11c3QgYmUgZGlzdGluY3QgZnJvbSB0aGUgbmFt ZSBvZiBhbnkgb3RoZXIgcmVsYXRpb24gKHRhYmxlLAorICAgc2VxdWVuY2UsIGluZGV4LCB2aWV3 LCBtYXRlcmlhbGl6ZWQgdmlldywgb3IgZm9yZWlnbiB0YWJsZSkgaW4gdGhlIHNhbWUKKyAgIHNj aGVtYS4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Q YXJhbWV0ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4K KyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFi bGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmFtZSAo b3B0aW9uYWxseSBzY2hlbWEtcXVhbGlmaWVkKSBvZiB0aGUgbmV3IHByb3BlcnR5IGdyYXBoLgor ICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8 dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlZFUlRFWDwvbGl0ZXJhbD4vPGxpdGVy YWw+Tk9ERTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPHRlcm0+PGxpdGVyYWw+RURHRTwvbGl0ZXJh bD4vPGxpdGVyYWw+UkVMQVRJT05TSElQPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgVGhlc2Uga2V5d29yZHMgYXJlIHN5bm9ueW1zLCByZXNwZWN0 aXZlbHkuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnZlcnRleF90YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3Rp dGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lIG9mIGEgdGFibGUgdGhhdCB3aWxsIGNv bnRhaW4gdmVydGljZXMgaW4gdGhlIG5ldyBwcm9wZXJ0eQorICAgICAgZ3JhcGguCisgICAgIDwv cGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0 ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVkZ2VfdGFi bGVfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBUaGUgbmFtZSBvZiBhIHRhYmxlIHRoYXQgd2lsbCBjb250YWluIGVkZ2VzIGluIHRo ZSBuZXcgcHJvcGVydHkgZ3JhcGguCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAg PC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFsaWFzPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSB2 ZXJ0ZXggb3IgZWRnZSB0YWJsZS4gIFRoaXMgZGVmYXVsdHMgdG8gdGhlCisgICAgICBuYW1lIG9m IHRoZSB0YWJsZS4gIEFsaWFzZXMgbXVzdCBiZSB1bmlxdWUgaW4gYSBwcm9wZXJ0eSBncmFwaAor ICAgICAgZGVmaW5pdGlvbiAoYWNyb3NzIGFsbCB2ZXJ0ZXggdGFibGUgYW5kIGVkZ2UgdGFibGUg ZGVmaW5pdGlvbnMpLgorICAgICAgKFRoZXJlZm9yZSwgaWYgYSB0YWJsZSBpcyB1c2VkIG1vcmUg dGhhbiBvbmNlIGFzIGEgdmVydGV4IG9yIGVkZ2UgdGFibGUsCisgICAgICB0aGVuIGFuIGV4cGxp Y2l0IGFsaWFzIG11c3QgYmUgc3BlY2lmaWVkIGZvciBhdCBsZWFzdCBvbmUgb2YgdGhlbSB0bwor ICAgICAgZGlzdGluZ3Vpc2ggdGhlbS4pCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgor ICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVy YWw+S0VZICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBs YWNlYWJsZT4gWywgLi4uXSApPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAg IDxwYXJhPgorICAgICAgQSBzZXQgb2YgY29sdW1ucyB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMg YSByb3cgaW4gdGhlIHZlcnRleCBvciBlZGdlCisgICAgICB0YWJsZS4gIERlZmF1bHRzIHRvIHRo ZSBwcmltYXJ5IGtleS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxp c3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+c291cmNlX3RhYmxlPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPHRl cm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRlc3RfdGFibGU8L3JlcGxhY2VhYmxl PjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIHZlcnRleCB0 YWJsZXMgdGhhdCB0aGUgZWRnZSB0YWJsZSBpcyBsaW5rZWQgdG8uICBUaGVzZSByZWZlciB0byB0 aGUKKyAgICAgIGFsaWFzZXMgb2YgYSB0aGUgdmVydGV4IHRhYmxlLgorICAgICA8L3BhcmE+Cisg ICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5Pgor ICAgIDx0ZXJtPjxsaXRlcmFsPktFWSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5j b2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gKSBSRUZFUkVOQ0VTIC4uLiAoIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4u Ll0gKTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IFR3byBzZXRzIG9mIGNvbHVtbnMgdGhhdCBjb25uZWN0IHRoZSBlZGdlIHRhYmxlIGFuZCB0aGUg c291cmNlIG9yCisgICAgICBkZXN0aW5hdGlvbiB2ZXJ0ZXggdGFibGUsIGxpa2UgaW4gYSBmb3Jl aWduLWtleSByZWxhdGlvbnNoaXAuICBJZiBhCisgICAgICBmb3JlaWduLWtleSBjb25zdHJhaW50 IGJldHdlZW4gdGhlIHR3byB0YWJsZXMgZXhpc3RzLCBpdCBpcyB1c2VkIGJ5CisgICAgICBkZWZh dWx0LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5Pgor CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5lbGVtZW50X3RhYmxlX2xhYmVsX2FuZF9wcm9wZXJ0aWVzPC9yZXBsYWNlYWJsZT48L3Rl cm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIERlZmluZXMgdGhlIGxhYmVs cyBhbmQgcHJvcGVydGllcyBmb3IgdGhlIGVsZW1lbnQgKHZlcnRleCBvciBlZGdlKQorICAgICAg dGFibGUuICBFYWNoIGVsZW1lbnQgaGFzIGF0IGxlYXN0IG9uZSBsYWJlbC4gIEJ5IGRlZmF1bHQs IHRoZSBsYWJlbCBpcworICAgICAgdGhlIHNhbWUgYXMgdGhlIGVsZW1lbnQgdGFibGUgYWxpYXMu ICBUaGlzIGNhbiBiZSBzcGVjaWZpZWQgZXhwbGljaXRseQorICAgICAgYXMgPGxpdGVyYWw+REVG QVVMVCBMQUJFTDwvbGl0ZXJhbD4uICBBbHRlcm5hdGl2ZWx5LCBvbmUgb3IgbW9yZSBmcmVlbHkK KyAgICAgIGNob3NlbiBsYWJlbCBuYW1lcyBjYW4gYmUgc3BlY2lmaWVkLiAgKExhYmVsIG5hbWVz IGRvIG5vdCBoYXZlIHRvIGJlCisgICAgICB1bmlxdWUgYWNyb3NzIGEgcHJvcGVydHkgZ3JhcGgu ICBJdCBpcyBjYW4gYmUgdXNlZnVsIHRvIGFzc2lnbiB0aGUgc2FtZQorICAgICAgbGFiZWwgdG8g ZGlmZmVyZW50IGVsZW1lbnRzLikgIEVhY2ggbGFiZWwgaGFzIGEgbGlzdCAocG9zc2libHkgZW1w dHkpIG9mCisgICAgICBwcm9wZXJ0aWVzLiAgQnkgZGVmYXVsdCwgYWxsIGNvbHVtbnMgb2YgYSB0 YWJsZSBhcmUgYXV0b21hdGljYWxseQorICAgICAgZXhwb3NlZCBhcyBwcm9wZXJ0aWVzLiAgVGhp cyBjYW4gYmUgc3BlY2lmaWVkIGV4cGxpY2l0bHkgYXMKKyAgICAgIDxsaXRlcmFsPlBST1BFUlRJ RVMgQUxMIENPTFVNTlM8L2xpdGVyYWw+LiAgQWx0ZXJuYXRpdmVseSwgYSBsaXN0IG9mCisgICAg ICBleHByZXNzaW9ucywgd2hpY2ggY2FuIHJlZmVyIHRvIHRoZSBjb2x1bW5zIG9mIHRoZSB1bmRl cmx5aW5nIHRhYmxlLCBjYW4KKyAgICAgIGJlIHNwZWNpZmllZCBhcyBwcm9wZXJ0aWVzLiAgSWYg dGhlIGV4cHJlc3Npb25zIGFyZSBub3QgYSBwbGFpbiBjb2x1bW4KKyAgICAgIHJlZmVyZW5jZSwg dGhlbiBhbiBleHBsaWNpdCBwcm9wZXJ0eSBuYW1lIG11c3QgYWxzbyBiZSBzcGVjaWZpZWQuCisg ICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisgIDwvdmFy aWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDEgaWQ9InNxbC1jcmVhdGUtcHJv cGVydHktZ3JhcGgtbm90ZXMiPgorICA8dGl0bGU+Tm90ZXM8L3RpdGxlPgorCisgIDxwYXJhPgor ICAgVGhlIGZvbGxvd2luZyBjb25zaXN0ZW5jeSBjaGVja3MgbXVzdCBiZSBzYXRpc2ZpZWQgYnkg YSBwcm9wZXJ0eSBncmFwaCBkZWZpbml0aW9uOgorCisgICA8aXRlbWl6ZWRsaXN0PgorICAgIDxs aXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBJbiBhIHByb3BlcnR5IGdyYXBoLCBsYWJlbHMg d2l0aCB0aGUgc2FtZSBuYW1lIGFwcGxpZWQgdG8gZGlmZmVyZW50CisgICAgICBwcm9wZXJ0eSBn cmFwaCBlbGVtZW50cyBtdXN0IGhhdmUgdGhlIHNhbWUgbnVtYmVyIG9mIHByb3BlcnRpZXMgYW5k CisgICAgICB0aG9zZSBwcm9wZXJ0aWVzIG11c3QgaGF2ZSB0aGUgc2FtZSBuYW1lcy4gIEZvciBl eGFtcGxlLCB0aGUgZm9sbG93aW5nCisgICAgICB3b3VsZCBiZSBhbGxvd2VkOgorPHByb2dyYW1s aXN0aW5nPgorQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGcxCisgICAgVkVSVEVYIFRBQkxFUyAoCisg ICAgICAgIHYxIExBQkVMIGZvbyBQUk9QRVJUSUVTICh4LCB5KSwKKyAgICAgICAgdjIgTEFCRUwg Zm9vIFBST1BFUlRJRVMgKHgsIHkpCisgICAgKSAuLi4KKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAg ICBidXQgdGhpcyB3b3VsZCBub3Q6Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgUFJPUEVSVFkg R1JBUEggZzEKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgdjEgTEFCRUwgZm9vIFBST1BF UlRJRVMgKHgsIHkpLAorICAgICAgICB2MiBMQUJFTCBmb28gUFJPUEVSVElFUyAoeikKKyAgICAp IC4uLgorPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxs aXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBJbiBhIHByb3BlcnR5IGdyYXBoLCBhbGwgcHJv cGVydGllcyB3aXRoIHRoZSBzYW1lIG5hbWUgbXVzdCBoYXZlIHRoZQorICAgICAgc2FtZSBkYXRh IHR5cGUsIGluZGVwZW5kZW50IG9mIHdoaWNoIGxhYmVsIHRoZXkgYXJlIG9uLiAgRm9yIGV4YW1w bGUsCisgICAgICB0aGlzIHdvdWxkIGJlIGFsbG93ZWQ6Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVB VEUgVEFCTEUgdjEgKGEgaW50LCBiIGludCk7CitDUkVBVEUgVEFCTEUgdjIgKGEgaW50LCBiIGlu dCk7CisKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBnMQorICAgIFZFUlRFWCBUQUJMRVMgKAorICAg ICAgICB2MSBMQUJFTCBmb28gUFJPUEVSVElFUyAoYSwgYiksCisgICAgICAgIHYyIExBQkVMIGJh ciBQUk9QRVJUSUVTIChhLCBiKQorICAgICkgLi4uCis8L3Byb2dyYW1saXN0aW5nPgorICAgICAg YnV0IHRoaXMgd291bGQgbm90OgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFRBQkxFIHYxIChh IGludCwgYiBpbnQpOworQ1JFQVRFIFRBQkxFIHYyIChhIGludCwgYiB2YXJjaGFyKTsKKworQ1JF QVRFIFBST1BFUlRZIEdSQVBIIGcxCisgICAgVkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHYxIExB QkVMIGZvbyBQUk9QRVJUSUVTIChhLCBiKSwKKyAgICAgICAgdjIgTEFCRUwgYmFyIFBST1BFUlRJ RVMgKGEsIGIpCisgICAgKSAuLi4KKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorICAgIDwvbGlz dGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgRm9yIGVhY2ggcHJv cGVydHkgZ3JhcGggZWxlbWVudCwgYWxsIHByb3BlcnRpZXMgd2l0aCB0aGUgc2FtZSBuYW1lIG11 c3QKKyAgICAgIGhhdmUgdGhlIHNhbWUgZXhwcmVzc2lvbiBmb3IgZWFjaCBsYWJlbC4gIEZvciBl eGFtcGxlLCB0aGlzIHdvdWxkIGJlCisgICAgICBhbGxvd2VkOgorPHByb2dyYW1saXN0aW5nPgor Q1JFQVRFIFBST1BFUlRZIEdSQVBIIGcxCisgICAgVkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHYx IExBQkVMIGZvbyBQUk9QRVJUSUVTICh4IEFTIGEgKiAyKSBMQUJFTCBiYXIgUFJPUEVSVElFUyAo eCBBUyBhICogMikKKyAgICApIC4uLgorPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgIGJ1dCB0aGlz IHdvdWxkIG5vdDoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBnMQor ICAgIFZFUlRFWCBUQUJMRVMgKAorICAgICAgICB2MSBMQUJFTCBmb28gUFJPUEVSVElFUyAoeCBB UyBhICogMikgTEFCRUwgYmFyIFBST1BFUlRJRVMgKHggQVMgYSAqIDEwKQorICAgICkgLi4uCis8 L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICA8L2l0ZW1pemVk bGlzdD4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgUHJvcGVydHkgZ3JhcGhzIGFyZSBxdWVy aWVkIHVzaW5nIHRoZSA8bGl0ZXJhbD5HUkFQSF9UQUJMRTwvbGl0ZXJhbD4gY2xhdXNlCisgICBv ZiA8eHJlZiBsaW5rZW5kPSJzcWwtc2VsZWN0Ii8+LgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4K KworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4KKzxw cm9ncmFtbGlzdGluZz4KK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBnMQorICAgIFZFUlRFWCBUQUJM RVMgKHYxLCB2MiwgdjMpCisgICAgRURHRSBUQUJMRVMgKGUxIFNPVVJDRSB2MSBERVNUSU5BVElP TiB2MiwKKyAgICAgICAgICAgICAgICAgZTIgU09VUkNFIHYxIERFU1RJTkFUSU9OIHYzKTsKKzwv cHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0 aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5kPkNSRUFU RSBQUk9QRVJUWSBHUkFQSDwvY29tbWFuZD4gY29uZm9ybXMgdG8gSVNPL0lFQyA5MDc1LTE2Cisg ICAoU1FML1BHUSkuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8 dGl0bGU+U2VlIEFsc288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+Cisg ICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlci1wcm9wZXJ0eS1ncmFwaCIvPjwvbWVt YmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcC1wcm9wZXJ0eS1ncmFwaCIv PjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKzwvcmVmZW50cnk+CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfcHJvcGVydHlfZ3JhcGguc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvZHJvcF9wcm9wZXJ0eV9ncmFwaC5zZ21sCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zMWNiNzdhMmFmMQotLS0gL2Rldi9udWxsCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvZHJvcF9wcm9wZXJ0eV9ncmFwaC5zZ21sCkBAIC0wLDAgKzEsMTExIEBA Cis8IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfcHJvcGVydHlfZ3JhcGguc2dtbAorUG9zdGdy ZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtZHJvcC1wcm9wZXJ0 eS1ncmFwaCI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtZHJvcC1wcm9wZXJ0eS1ncmFwaCI+Cisg IDxwcmltYXJ5PkRST1AgUFJPUEVSVFkgR1JBUEg8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisK KyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+RFJPUCBQUk9QRVJUWSBHUkFQSDwvcmVmZW50 cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwg LSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVm bmFtZWRpdj4KKyAgPHJlZm5hbWU+RFJPUCBQUk9QRVJUWSBHUkFQSDwvcmVmbmFtZT4KKyAgPHJl ZnB1cnBvc2U+cmVtb3ZlIGFuIFNRTC1wcm9wZXJ0eSBncmFwaDwvcmVmcHVycG9zZT4KKyA8L3Jl Zm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitEUk9QIFBST1BFUlRZ IEdSQVBIIFsgSUYgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8 L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKzwvc3lub3BzaXM+ CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9u PC90aXRsZT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5kPkRST1AgUFJPUEVSVFkgR1JBUEg8L2Nv bW1hbmQ+IGRyb3BzIGFuIGV4aXN0aW5nIHByb3BlcnR5IGdyYXBoLgorICAgVG8gZXhlY3V0ZSB0 aGlzIGNvbW1hbmQgeW91IG11c3QgYmUgdGhlIG93bmVyIG9mIHRoZSBwcm9wZXJ0eSBncmFwaC4K KyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0 ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8 dGVybT48bGl0ZXJhbD5JRiBFWElTVFM8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4K KyAgICAgPHBhcmE+CisgICAgICBEbyBub3QgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIHByb3BlcnR5 IGdyYXBoIGRvZXMgbm90IGV4aXN0LiAgQSBub3RpY2UgaXMKKyAgICAgIGlzc3VlZCBpbiB0aGlz IGNhc2UuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxw YXJhPgorICAgICAgVGhlIG5hbWUgKG9wdGlvbmFsbHkgc2NoZW1hLXF1YWxpZmllZCkgb2YgdGhl IHByb3BlcnR5IGdyYXBoIHRvIHJlbW92ZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+ CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0 ZXJhbD5DQVNDQURFPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJh PgorICAgICAgQXV0b21hdGljYWxseSBkcm9wIG9iamVjdHMgdGhhdCBkZXBlbmQgb24gdGhlIHBy b3BlcnR5IGdyYXBoLCBhbmQgaW4KKyAgICAgIHR1cm4gYWxsIG9iamVjdHMgdGhhdCBkZXBlbmQg b24gdGhvc2Ugb2JqZWN0cyAoc2VlIDx4cmVmCisgICAgICBsaW5rZW5kPSJkZGwtZGVwZW5kIi8+ KS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5SRVNUUklDVDwvbGl0ZXJhbD48 L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFJlZnVzZSB0byBkcm9w IHRoZSBwcm9wZXJ0eSBncmFwaCBpZiBhbnkgb2JqZWN0cyBkZXBlbmQgb24gaXQuICBUaGlzIGlz CisgICAgICB0aGUgZGVmYXVsdC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8 L3Zhcmxpc3RlbnRyeT4KKyAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxyZWZz ZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4KKzxwcm9ncmFtbGlz dGluZz4KK0RST1AgUFJPUEVSVFkgR1JBUEggZzE7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4K KyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0 bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5EUk9QIFBST1BFUlRZIEdSQVBIPC9jb21tYW5k PiBjb25mb3JtcyB0byBJU08vSUVDIDkwNzUtMTYKKyAgIChTUUwvUEdRKSwgZXhjZXB0IHRoYXQg dGhlIHN0YW5kYXJkIG9ubHkgYWxsb3dzIG9uZSBwcm9wZXJ0eSBncmFwaCB0byBiZQorICAgZHJv cHBlZCBwZXIgY29tbWFuZCwgYW5kIGFwYXJ0IGZyb20gdGhlIDxsaXRlcmFsPklGIEVYSVNUUzwv bGl0ZXJhbD4KKyAgIG9wdGlvbiwgd2hpY2ggaXMgYSA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwv cHJvZHVjdG5hbWU+IGV4dGVuc2lvbi4uCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJl ZnNlY3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5cGU9 ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUtcHJvcGVydHkt Z3JhcGgiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVyLXBy b3BlcnR5LWdyYXBoIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgor PC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbAppbmRleCA5OTlmNjU3ZDVjMC4uMTEzMmMxNjA4Y2Ug MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2dyYW50LnNnbWwKQEAgLTgyLDYgKzgyLDExIEBAIEdSQU5UIHsgeyBTRVQgfCBBTFRF UiBTWVNURU0gfSBbLCAuLi4gXSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CiAgICAgVE8gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+ IFssIC4uLl0gWyBXSVRIIEdSQU5UIE9QVElPTiBdCiAgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBd CiAKK0dSQU5UIHsgU0VMRUNUIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KKyAgICBPTiBQUk9QRVJU WSBHUkFQSCA8cmVwbGFjZWFibGU+Z3JhcGhfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0KKyAg ICBUTyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9y ZXBsYWNlYWJsZT4gWywgLi4uXSBbIFdJVEggR1JBTlQgT1BUSU9OIF0KKyAgICBbIEdSQU5URUQg QlkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVw bGFjZWFibGU+IF0KKwogR1JBTlQgeyB7IENSRUFURSB8IFVTQUdFIH0gWywgLi4uXSB8IEFMTCBb IFBSSVZJTEVHRVMgXSB9CiAgICAgT04gU0NIRU1BIDxyZXBsYWNlYWJsZT5zY2hlbWFfbmFtZTwv cmVwbGFjZWFibGU+IFssIC4uLl0KICAgICBUTyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBbIFdJVEggR1JBTlQg T1BUSU9OIF0KQEAgLTExOSw3ICsxMjQsNyBAQCBHUkFOVCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBUTyA8cmVwbGFjZQogICAg dGhhdCBncmFudHMgcHJpdmlsZWdlcyBvbiBhIGRhdGFiYXNlIG9iamVjdCAodGFibGUsIGNvbHVt biwgdmlldywKICAgIGZvcmVpZ24gdGFibGUsIHNlcXVlbmNlLCBkYXRhYmFzZSwgZm9yZWlnbi1k YXRhIHdyYXBwZXIsIGZvcmVpZ24gc2VydmVyLAogICAgZnVuY3Rpb24sIHByb2NlZHVyZSwgcHJv Y2VkdXJhbCBsYW5ndWFnZSwgbGFyZ2Ugb2JqZWN0LCBjb25maWd1cmF0aW9uCi0gICBwYXJhbWV0 ZXIsIHNjaGVtYSwgdGFibGVzcGFjZSwgb3IgdHlwZSksIGFuZCBvbmUgdGhhdCBncmFudHMKKyAg IHBhcmFtZXRlciwgcHJvcGVydHkgZ3JhcGgsIHNjaGVtYSwgdGFibGVzcGFjZSwgb3IgdHlwZSks IGFuZCBvbmUgdGhhdCBncmFudHMKICAgIG1lbWJlcnNoaXAgaW4gYSByb2xlLiAgVGhlc2UgdmFy aWFudHMgYXJlIHNpbWlsYXIgaW4gbWFueSB3YXlzLCBidXQKICAgIHRoZXkgYXJlIGRpZmZlcmVu dCBlbm91Z2ggdG8gYmUgZGVzY3JpYmVkIHNlcGFyYXRlbHkuCiAgIDwvcGFyYT4KZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcHNx bC1yZWYuc2dtbAppbmRleCA3MmYzMzQ3ZTUzZC4uMTU2MzQxMzZhZWUgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwt cmVmLnNnbWwKQEAgLTEyNzYsNyArMTI3Niw3IEBAIFNFTEVDVCAkMSBccGFyc2Ugc3RtdDEKIAog ICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgIDxwYXJhPgotICAgICAgICBGb3IgZWFjaCByZWxh dGlvbiAodGFibGUsIHZpZXcsIG1hdGVyaWFsaXplZCB2aWV3LCBpbmRleCwgc2VxdWVuY2UsCisg ICAgICAgIEZvciBlYWNoIHJlbGF0aW9uICh0YWJsZSwgdmlldywgbWF0ZXJpYWxpemVkIHZpZXcs IGluZGV4LCBwcm9wZXJ0eSBncmFwaCwgc2VxdWVuY2UsCiAgICAgICAgIG9yIGZvcmVpZ24gdGFi bGUpCiAgICAgICAgIG9yIGNvbXBvc2l0ZSB0eXBlIG1hdGNoaW5nIHRoZQogICAgICAgICA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwvcmVwbGFjZWFibGU+LCBzaG93IGFs bApAQCAtMTMxNiw5ICsxMzE2LDkgQEAgU0VMRUNUICQxIFxwYXJzZSBzdG10MQogICAgICAgICA8 cGFyYT4KICAgICAgICAgSWYgPGNvbW1hbmQ+XGQ8L2NvbW1hbmQ+IGlzIHVzZWQgd2l0aG91dCBh CiAgICAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNl YWJsZT4gYXJndW1lbnQsIGl0IGlzCi0gICAgICAgIGVxdWl2YWxlbnQgdG8gPGNvbW1hbmQ+XGR0 dm1zRTwvY29tbWFuZD4gd2hpY2ggd2lsbCBzaG93IGEgbGlzdCBvZgotICAgICAgICBhbGwgdmlz aWJsZSB0YWJsZXMsIHZpZXdzLCBtYXRlcmlhbGl6ZWQgdmlld3MsIHNlcXVlbmNlcyBhbmQKLSAg ICAgICAgZm9yZWlnbiB0YWJsZXMuCisgICAgICAgIGVxdWl2YWxlbnQgdG8gPGNvbW1hbmQ+XGR0 dm1zRUc8L2NvbW1hbmQ+IHdoaWNoIHdpbGwgc2hvdyBhIGxpc3Qgb2YKKyAgICAgICAgYWxsIHZp c2libGUgdGFibGVzLCB2aWV3cywgbWF0ZXJpYWxpemVkIHZpZXdzLCBzZXF1ZW5jZXMsCisgICAg ICAgIGZvcmVpZ24gdGFibGVzLCBhbmQgcHJvcGVydHkgZ3JhcGhzLgogICAgICAgICBUaGlzIGlz IHB1cmVseSBhIGNvbnZlbmllbmNlIG1lYXN1cmUuCiAgICAgICAgIDwvcGFyYT4KICAgICAgICAg PC9ub3RlPgpAQCAtMTU4Niw2ICsxNTg2LDcgQEAgU0VMRUNUICQxIFxwYXJzZSBzdG10MQogCiAg ICAgICA8dmFybGlzdGVudHJ5IGlkPSJhcHAtcHNxbC1tZXRhLWNvbW1hbmQtZGUiPgogICAgICAg ICA8dGVybT48bGl0ZXJhbD5cZEVbUytdIFsgPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0dGVy bnMiPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT48 L2xpbms+IF08L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICA8dGVybT48bGl0ZXJhbD5cZEdbUytd IFsgPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0dGVybnMiPjxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT48L2xpbms+IF08L2xpdGVyYWw+PC90ZXJt PgogICAgICAgICA8dGVybT48bGl0ZXJhbD5cZGlbUytdIFsgPGxpbmsgbGlua2VuZD0iYXBwLXBz cWwtcGF0dGVybnMiPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBs YWNlYWJsZT48L2xpbms+IF08L2xpdGVyYWw+PC90ZXJtPgogICAgICAgICA8dGVybT48bGl0ZXJh bD5cZG1bUytdIFsgPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0dGVybnMiPjxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT48L2xpbms+IF08L2xpdGVy YWw+PC90ZXJtPgogICAgICAgICA8dGVybT48bGl0ZXJhbD5cZHNbUytdIFsgPGxpbmsgbGlua2Vu ZD0iYXBwLXBzcWwtcGF0dGVybnMiPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0 ZXJuPC9yZXBsYWNlYWJsZT48L2xpbms+IF08L2xpdGVyYWw+PC90ZXJtPgpAQCAtMTU5NCwxMCAr MTU5NSwxMCBAQCBTRUxFQ1QgJDEgXHBhcnNlIHN0bXQxCiAKICAgICAgICAgPGxpc3RpdGVtPgog ICAgICAgICA8cGFyYT4KLSAgICAgICAgSW4gdGhpcyBncm91cCBvZiBjb21tYW5kcywgdGhlIGxl dHRlcnMgPGxpdGVyYWw+RTwvbGl0ZXJhbD4sCisgICAgICAgIEluIHRoaXMgZ3JvdXAgb2YgY29t bWFuZHMsIHRoZSBsZXR0ZXJzIDxsaXRlcmFsPkU8L2xpdGVyYWw+LCA8bGl0ZXJhbD5HPC9saXRl cmFsPiwKICAgICAgICAgPGxpdGVyYWw+aTwvbGl0ZXJhbD4sIDxsaXRlcmFsPm08L2xpdGVyYWw+ LCA8bGl0ZXJhbD5zPC9saXRlcmFsPiwKICAgICAgICAgPGxpdGVyYWw+dDwvbGl0ZXJhbD4sIGFu ZCA8bGl0ZXJhbD52PC9saXRlcmFsPgotICAgICAgICBzdGFuZCBmb3IgZm9yZWlnbiB0YWJsZSwg aW5kZXgsIG1hdGVyaWFsaXplZCB2aWV3LAorICAgICAgICBzdGFuZCBmb3IgZm9yZWlnbiB0YWJs ZSwgaW5kZXgsIHByb3BlcnR5IGdyYXBoLCBtYXRlcmlhbGl6ZWQgdmlldywKICAgICAgICAgc2Vx dWVuY2UsIHRhYmxlLCBhbmQgdmlldywKICAgICAgICAgcmVzcGVjdGl2ZWx5LgogICAgICAgICBZ b3UgY2FuIHNwZWNpZnkgYW55IG9yIGFsbCBvZgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl Zi9yZXZva2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwKaW5kZXggOGRmNDky MjgxYTEuLjk0OGFjNTM0NDQ2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3Jldm9rZS5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwKQEAgLTEwNCw2ICsxMDQsMTMg QEAgUkVWT0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCiAgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBd CiAgICAgWyBDQVNDQURFIHwgUkVTVFJJQ1QgXQogCitSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9S IF0KKyAgICB7IFNFTEVDVCB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CisgICAgT04gUFJPUEVSVFkg R1JBUEggPHJlcGxhY2VhYmxlPmdyYXBoX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCisgICAg RlJPTSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9y ZXBsYWNlYWJsZT4gWywgLi4uXQorICAgIFsgR1JBTlRFRCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gXQorICAgIFsgQ0FT Q0FERSB8IFJFU1RSSUNUIF0KKwogUkVWT0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCiAgICAgeyB7 IENSRUFURSB8IFVTQUdFIH0gWywgLi4uXSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CiAgICAgT04g U0NIRU1BIDxyZXBsYWNlYWJsZT5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvc2VjdXJpdHlfbGFiZWwuc2dtbCBiL2RvYy9zcmMv c2dtbC9yZWYvc2VjdXJpdHlfbGFiZWwuc2dtbAppbmRleCBlNWU1ZmI0ODNlOS4uOWI5NzA4NWEz ZmQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvc2VjdXJpdHlfbGFiZWwuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL3NlY3VyaXR5X2xhYmVsLnNnbWwKQEAgLTM1LDYgKzM1LDcgQEAg U0VDVVJJVFkgTEFCRUwgWyBGT1IgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnByb3Zp ZGVyPC9yZXBsYWNlYWJsZT4gXSBPTgogICBNQVRFUklBTElaRUQgVklFVyA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFsgUFJPQ0VE VVJBTCBdIExBTkdVQUdFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3RfbmFt ZTwvcmVwbGFjZWFibGU+IHwKICAgUFJPQ0VEVVJFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5wcm9jZWR1cmVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKCBbIFsgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmFyZ21vZGU8L3JlcGxhY2VhYmxlPiBdIFsgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmFyZ25hbWU8L3JlcGxhY2VhYmxlPiBdIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5hcmd0eXBlPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBdICkgXSB8CisgIFBS T1BFUlRZIEdSQVBIIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3RfbmFtZTwv cmVwbGFjZWFibGU+CiAgIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5vYmplY3RfbmFtZTwvcmVwbGFjZWFibGU+IHwKICAgUk9MRSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFJPVVRJTkUgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvdXRpbmVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKCBb IFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFyZ21vZGU8L3JlcGxhY2VhYmxlPiBd IFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFyZ25hbWU8L3JlcGxhY2VhYmxlPiBd IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hcmd0eXBlPC9yZXBsYWNlYWJsZT4gWywg Li4uXSBdICkgXSB8CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3NlbGVjdC5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9zZWxlY3Quc2dtbAppbmRleCBkNzA4OWVhYzBiZS4uMWM2ZWU5OTg0 MTQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvc2VsZWN0LnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9zZWxlY3Quc2dtbApAQCAtNTksNiArNTksNyBAQCBTRUxFQ1QgWyBBTEwgfCBE SVNUSU5DVCBbIE9OICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248 L3JlcGxhYwogICAgIFsgTEFURVJBTCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5m dW5jdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT4gKCBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5hcmd1bWVudDwvcmVwbGFjZWFibGU+IFssIC4uLl0gXSApIEFTICggPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9kZWZpbml0aW9uPC9yZXBsYWNlYWJsZT4gWywgLi4u XSApCiAgICAgWyBMQVRFUkFMIF0gUk9XUyBGUk9NKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+ZnVuY3Rpb25fbmFtZTwvcmVwbGFjZWFibGU+ICggWyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+YXJndW1lbnQ8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIF0gKSBbIEFTICggPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9kZWZpbml0aW9uPC9yZXBsYWNlYWJs ZT4gWywgLi4uXSApIF0gWywgLi4uXSApCiAgICAgICAgICAgICAgICAgWyBXSVRIIE9SRElOQUxJ VFkgXSBbIFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YWxpYXM8L3JlcGxh Y2VhYmxlPiBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9hbGlhczwv cmVwbGFjZWFibGU+IFssIC4uLl0gKSBdIF0KKyAgICBHUkFQSF9UQUJMRSAoIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5ncmFwaF9uYW1lPC9yZXBsYWNlYWJsZT4gTUFUQ0ggPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmdyYXBoX3BhdHRlcm48L3JlcGxhY2VhYmxlPiBDT0xV TU5TICggeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFj ZWFibGU+IFsgQVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPiBdIH0gWywgLi4uXSApICkgWyBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmFsaWFzPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5jb2x1bW5fYWxpYXM8L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgXSBdCiAgICAgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmZyb21faXRlbTwvcmVwbGFjZWFibGU+IDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5qb2luX3R5cGU8L3JlcGxhY2VhYmxlPiA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+ZnJvbV9pdGVtPC9yZXBsYWNlYWJsZT4geyBPTiA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+am9pbl9jb25kaXRpb248L3JlcGxhY2VhYmxlPiB8IFVTSU5H ICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmpvaW5fY29sdW1uPC9yZXBsYWNlYWJs ZT4gWywgLi4uXSApIFsgQVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmpvaW5fdXNp bmdfYWxpYXM8L3JlcGxhY2VhYmxlPiBdIH0KICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+ZnJvbV9pdGVtPC9yZXBsYWNlYWJsZT4gTkFUVVJBTCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+am9pbl90eXBlPC9yZXBsYWNlYWJsZT4gPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmZyb21faXRlbTwvcmVwbGFjZWFibGU+CiAgICAgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmZyb21faXRlbTwvcmVwbGFjZWFibGU+IENST1NTIEpPSU4gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmZyb21faXRlbTwvcmVwbGFjZWFibGU+CkBAIC01ODcsNiAr NTg4LDQ4IEBAIFRBQkxFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50 YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwv dmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48bGl0ZXJh bD5HUkFQSF9UQUJMRSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5ncmFwaF9uYW1l PC9yZXBsYWNlYWJsZT4gTUFUQ0ggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmdyYXBo X3BhdHRlcm48L3JlcGxhY2VhYmxlPiBDT0xVTU5TICggeyA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IFsgQVMgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBdIH0gWywgLi4uXSApICk8L2xpdGVyYWw+ PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGlzIGNs YXVzZSBwcm9kdWNlcyBvdXRwdXQgZnJvbSBtYXRjaGluZyB0aGUgc3BlY2lmeWluZyBncmFwaCBw YXR0ZXJuCisgICAgICAgIGFnYWluc3QgYSBwcm9wZXJ0eSBncmFwaC4gIFNlZSA8eHJlZiBsaW5r ZW5kPSJkZGwtcHJvcGVydHktZ3JhcGhzIi8+CisgICAgICAgIGFuZCA8eHJlZiBsaW5rZW5kPSJx dWVyaWVzLWdyYXBoIi8+IGZvciBtb3JlIGluZm9ybWF0aW9uLgorICAgICAgIDwvcGFyYT4KKwor ICAgICAgIDxwYXJhPgorICAgICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Z3Jh cGhfbmFtZTwvcmVwbGFjZWFibGU+IGlzIHRoZSBuYW1lCisgICAgICAgIChvcHRpb25hbGx5IHNj aGVtYS1xdWFsaWZpZWQpIG9mIGFuIGV4aXN0aW5nIHByb3BlcnR5IGdyYXBoIChkZWZpbmVkCisg ICAgICAgIHdpdGggPHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZS1wcm9wZXJ0eS1ncmFwaCIvPiku CisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5ncmFwaF9wYXR0ZXJuPC9yZXBsYWNlYWJsZT4gaXMgYSBncmFwaAor ICAgICAgICBwYXR0ZXJuIGluIGEgc3BlY2lhbCBncmFwaCBwYXR0ZXJuIHN1Ymxhbmd1YWdlLiAg U2VlIDx4cmVmCisgICAgICAgIGxpbmtlbmQ9InF1ZXJpZXMtZ3JhcGgtcGF0dGVybnMiLz4uCisg ICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSA8bGl0ZXJhbD5DT0xV TU5TPC9saXRlcmFsPiBjbGF1c2UgZGVmaW5lcyB0aGUgb3V0cHV0IGNvbHVtbnMgb2YKKyAgICAg ICAgdGhlIDxsaXRlcmFsPkdSQVBIX1RBQkxFPC9saXRlcmFsPiBjbGF1c2UuICA8cmVwbGFjZWFi bGUKKyAgICAgICAgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IGlz IGEgc2NhbGFyIGV4cHJlc3Npb24KKyAgICAgICAgdXNpbmcgdGhlIGdyYXBoIHBhdHRlcm4gdmFy aWFibGVzIGRlZmluZWQgaW4gdGhlIDxyZXBsYWNlYWJsZQorICAgICAgICBjbGFzcz0icGFyYW1l dGVyIj5ncmFwaF9wYXR0ZXJuPC9yZXBsYWNlYWJsZT4uICBUaGUgbmFtZSBvZiB0aGUgb3V0cHV0 CisgICAgICAgIGNvbHVtbnMgYXJlIHNwZWNpZmllZCB1c2luZyB0aGUgPGxpdGVyYWw+QVM8L2xp dGVyYWw+IGNsYXVzZXMuICBJZiB0aGUKKyAgICAgICAgZXhwcmVzc2lvbnMgYXJlIHNpbXBsZSBw cm9wZXJ0eSByZWZlcmVuY2VzLCB0aGUgcHJvcGVydHkgbmFtZXMgYXJlCisgICAgICAgIHVzZWQg YXMgdGhlIG91dHB1dCBuYW1lcywgb3RoZXJ3aXNlIGFuIGV4cGxpY2l0IG5hbWUgbXVzdCBiZQor ICAgICAgICBzcGVjaWZpZWQuCisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAg ICAgIExpa2UgZm9yIG90aGVyIDxsaXRlcmFsPkZST008L2xpdGVyYWw+IGNsYXVzZSBpdGVtcywg YSB0YWJsZSBhbGlhcworICAgICAgICBuYW1lIGFuZCBjb2x1bW4gYWxpYXMgbmFtZXMgbWF5IGZv bGxvdyB0aGUgPGxpdGVyYWw+R1JBUEhfVEFCTEUKKyAgICAgICAgKC4uLik8L2xpdGVyYWw+IGNs YXVzZS4gIChBIGNvbHVtbiBhbGlhcyBsaXN0IHdvdWxkIGJlIHJlZHVuZGFudCB3aXRoCisgICAg ICAgIHRoZSA8bGl0ZXJhbD5DT0xVTU5TPC9saXRlcmFsPiBjbGF1c2UuKQorICAgICAgIDwvcGFy YT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJs aXN0ZW50cnk+CiAgICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+am9p bl90eXBlPC9yZXBsYWNlYWJsZT48L3Rlcm0+CiAgICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQg YS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNn bWwKaW5kZXggZmY4NWFjZTgzZmMuLjZkZTNhZmE3YjE2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcmVmZXJlbmNlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCkBAIC01 NSw2ICs1NSw3IEBACiAgICAmYWx0ZXJPcGVyYXRvckZhbWlseTsKICAgICZhbHRlclBvbGljeTsK ICAgICZhbHRlclByb2NlZHVyZTsKKyAgICZhbHRlclByb3BlcnR5R3JhcGg7CiAgICAmYWx0ZXJQ dWJsaWNhdGlvbjsKICAgICZhbHRlclJvbGU7CiAgICAmYWx0ZXJSb3V0aW5lOwpAQCAtMTA3LDYg KzEwOCw3IEBACiAgICAmY3JlYXRlT3BlcmF0b3JGYW1pbHk7CiAgICAmY3JlYXRlUG9saWN5Owog ICAgJmNyZWF0ZVByb2NlZHVyZTsKKyAgICZjcmVhdGVQcm9wZXJ0eUdyYXBoOwogICAgJmNyZWF0 ZVB1YmxpY2F0aW9uOwogICAgJmNyZWF0ZVJvbGU7CiAgICAmY3JlYXRlUnVsZTsKQEAgLTE1NSw2 ICsxNTcsNyBAQAogICAgJmRyb3BPd25lZDsKICAgICZkcm9wUG9saWN5OwogICAgJmRyb3BQcm9j ZWR1cmU7CisgICAmZHJvcFByb3BlcnR5R3JhcGg7CiAgICAmZHJvcFB1YmxpY2F0aW9uOwogICAg JmRyb3BSb2xlOwogICAgJmRyb3BSb3V0aW5lOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9hY2xjaGsuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKaW5kZXggYWFmOTZh OTY1ZTQuLjAyMDE5MTYyY2Q1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNo ay5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKQEAgLTI5MSw2ICsyOTEsOSBA QCByZXN0cmljdF9hbmRfY2hlY2tfZ3JhbnQoYm9vbCBpc19ncmFudCwgQWNsTW9kZSBhdmFpbF9n b3B0aW9ucywgYm9vbCBhbGxfcHJpdnMsCiAJCWNhc2UgT0JKRUNUX1BBUkFNRVRFUl9BQ0w6CiAJ CQl3aG9sZV9tYXNrID0gQUNMX0FMTF9SSUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJCWJyZWFrOwor CQljYXNlIE9CSkVDVF9QUk9QR1JBUEg6CisJCQl3aG9sZV9tYXNrID0gQUNMX0FMTF9SSUdIVFNf UFJPUEdSQVBIOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNv Z25pemVkIG9iamVjdCB0eXBlOiAlZCIsIG9ianR5cGUpOwogCQkJLyogbm90IHJlYWNoZWQsIGJ1 dCBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCkBAIC01MzUsNiArNTM4LDEwIEBAIEV4ZWN1dGVHcmFu dFN0bXQoR3JhbnRTdG10ICpzdG10KQogCQkJYWxsX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hU U19QQVJBTUVURVJfQUNMOwogCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJp dmlsZWdlIHR5cGUgJXMgZm9yIHBhcmFtZXRlciIpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNU X1BST1BHUkFQSDoKKwkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfUFJPUEdSQVBI OworCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5cGUgJXMg Zm9yIHByb3BlcnR5IGdyYXBoIik7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJS T1IsICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGludCkgc3Rt dC0+b2JqdHlwZSk7CkBAIC02MDUsNiArNjEyLDcgQEAgRXhlY0dyYW50U3RtdF9vaWRzKEludGVy bmFsR3JhbnQgKmlzdG10KQogCXsKIAkJY2FzZSBPQkpFQ1RfVEFCTEU6CiAJCWNhc2UgT0JKRUNU X1NFUVVFTkNFOgorCQljYXNlIE9CSkVDVF9QUk9QR1JBUEg6CiAJCQlFeGVjR3JhbnRfUmVsYXRp b24oaXN0bXQpOwogCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNUX0RBVEFCQVNFOgpAQCAtNjg3LDYg KzY5NSw3IEBAIG9iamVjdE5hbWVzVG9PaWRzKE9iamVjdFR5cGUgb2JqdHlwZSwgTGlzdCAqb2Jq bmFtZXMsIGJvb2wgaXNfZ3JhbnQpCiAKIAkJY2FzZSBPQkpFQ1RfVEFCTEU6CiAJCWNhc2UgT0JK RUNUX1NFUVVFTkNFOgorCQljYXNlIE9CSkVDVF9QUk9QR1JBUEg6CiAKIAkJCS8qCiAJCQkgKiBI ZXJlLCB3ZSBkb24ndCB1c2UgZ2V0X29iamVjdF9hZGRyZXNzKCkuICBJdCByZXF1aXJlcyB0aGF0 IHRoZQpAQCAtODA0LDYgKzgxMywxMCBAQCBvYmplY3RzSW5TY2hlbWFUb09pZHMoT2JqZWN0VHlw ZSBvYmp0eXBlLCBMaXN0ICpuc3BuYW1lcykKIAkJCQlvYmpzID0gZ2V0UmVsYXRpb25zSW5OYW1l c3BhY2UobmFtZXNwYWNlSWQsIFJFTEtJTkRfU0VRVUVOQ0UpOwogCQkJCW9iamVjdHMgPSBsaXN0 X2NvbmNhdChvYmplY3RzLCBvYmpzKTsKIAkJCQlicmVhazsKKwkJCWNhc2UgT0JKRUNUX1BST1BH UkFQSDoKKwkJCQlvYmpzID0gZ2V0UmVsYXRpb25zSW5OYW1lc3BhY2UobmFtZXNwYWNlSWQsIFJF TEtJTkRfUFJPUEdSQVBIKTsKKwkJCQlvYmplY3RzID0gbGlzdF9jb25jYXQob2JqZWN0cywgb2Jq cyk7CisJCQkJYnJlYWs7CiAJCQljYXNlIE9CSkVDVF9GVU5DVElPTjoKIAkJCWNhc2UgT0JKRUNU X1BST0NFRFVSRToKIAkJCWNhc2UgT0JKRUNUX1JPVVRJTkU6CkBAIC0xMDA1LDYgKzEwMTgsMTAg QEAgRXhlY0FsdGVyRGVmYXVsdFByaXZpbGVnZXNTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0 ZXJEZWZhdWx0UHJpdmlsZWdlc1N0bXQgKnMKIAkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9S SUdIVFNfU0NIRU1BOwogCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmls ZWdlIHR5cGUgJXMgZm9yIHNjaGVtYSIpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1BST1BH UkFQSDoKKwkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfUFJPUEdSQVBIOworCQkJ ZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5cGUgJXMgZm9yIHBy b3BlcnR5IGdyYXBoIik7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1 bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGludCkgYWN0aW9uLT5v Ymp0eXBlKTsKQEAgLTI2OTksNiArMjcxNiw5IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBh Y2xlcnIsIE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJY2FzZSBPQkpFQ1RfUFJPQ0VEVVJFOgog CQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJwZXJtaXNzaW9uIGRlbmllZCBmb3IgcHJvY2VkdXJl ICVzIik7CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBPQkpFQ1RfUFJPUEdSQVBIOgorCQkJCQkJ bXNnID0gZ2V0dGV4dF9ub29wKCJwZXJtaXNzaW9uIGRlbmllZCBmb3IgcHJvcGVydHkgZ3JhcGgg JXMiKTsKKwkJCQkJCWJyZWFrOwogCQkJCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTjoKIAkJCQkJ CW1zZyA9IGdldHRleHRfbm9vcCgicGVybWlzc2lvbiBkZW5pZWQgZm9yIHB1YmxpY2F0aW9uICVz Iik7CiAJCQkJCQlicmVhazsKQEAgLTI4MjUsNiArMjg0NSw5IEBAIGFjbGNoZWNrX2Vycm9yKEFj bFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJY2FzZSBPQkpFQ1RfUFJP Q0VEVVJFOgogCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIHByb2Nl ZHVyZSAlcyIpOwogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgT0JKRUNUX1BST1BHUkFQSDoKKwkJ CQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBiZSBvd25lciBvZiBwcm9wZXJ0eSBncmFwaCAl cyIpOworCQkJCQkJYnJlYWs7CiAJCQkJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OOgogCQkJCQkJ bXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIHB1YmxpY2F0aW9uICVzIik7CiAJ CQkJCQlicmVhazsKQEAgLTI5NjEsNiArMjk4NCw3IEBAIHBnX2FjbG1hc2soT2JqZWN0VHlwZSBv Ymp0eXBlLCBPaWQgb2JqZWN0X29pZCwgQXR0ck51bWJlciBhdHRudW0sIE9pZCByb2xlaWQsCiAJ CQkJcGdfYXR0cmlidXRlX2FjbG1hc2sob2JqZWN0X29pZCwgYXR0bnVtLCByb2xlaWQsIG1hc2ss IGhvdyk7CiAJCWNhc2UgT0JKRUNUX1RBQkxFOgogCQljYXNlIE9CSkVDVF9TRVFVRU5DRToKKwkJ Y2FzZSBPQkpFQ1RfUFJPUEdSQVBIOgogCQkJcmV0dXJuIHBnX2NsYXNzX2FjbG1hc2sob2JqZWN0 X29pZCwgcm9sZWlkLCBtYXNrLCBob3cpOwogCQljYXNlIE9CSkVDVF9EQVRBQkFTRToKIAkJCXJl dHVybiBvYmplY3RfYWNsbWFzayhEYXRhYmFzZVJlbGF0aW9uSWQsIG9iamVjdF9vaWQsIHJvbGVp ZCwgbWFzaywgaG93KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5j eS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKaW5kZXggMmFmYzU1MDU0MGMu LjQxZGU4NmU2YmZiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3ku YworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwpAQCAtNTAsNiArNTAsMTEg QEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3BhcmFtZXRlcl9hY2wuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX3BvbGljeS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgorI2luY2x1ZGUg ImNhdGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnQuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3By b3BncmFwaF9lbGVtZW50X2xhYmVsLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhf bGFiZWwuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eS5o IgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX3Byb3BlcnR5LmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHVibGljYXRp b25fbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaCIK QEAgLTE0NTMsNiArMTQ1OCwxMSBAQCBkb0RlbGV0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9i amVjdCwgaW50IGZsYWdzKQogCQljYXNlIEFjY2Vzc01ldGhvZFJlbGF0aW9uSWQ6CiAJCWNhc2Ug QWNjZXNzTWV0aG9kT3BlcmF0b3JSZWxhdGlvbklkOgogCQljYXNlIEFjY2Vzc01ldGhvZFByb2Nl ZHVyZVJlbGF0aW9uSWQ6CisJCWNhc2UgUHJvcGdyYXBoRWxlbWVudFJlbGF0aW9uSWQ6CisJCWNh c2UgUHJvcGdyYXBoRWxlbWVudExhYmVsUmVsYXRpb25JZDoKKwkJY2FzZSBQcm9wZ3JhcGhMYWJl bFJlbGF0aW9uSWQ6CisJCWNhc2UgUHJvcGdyYXBoTGFiZWxQcm9wZXJ0eVJlbGF0aW9uSWQ6CisJ CWNhc2UgUHJvcGdyYXBoUHJvcGVydHlSZWxhdGlvbklkOgogCQljYXNlIE5hbWVzcGFjZVJlbGF0 aW9uSWQ6CiAJCWNhc2UgVFNQYXJzZXJSZWxhdGlvbklkOgogCQljYXNlIFRTRGljdGlvbmFyeVJl bGF0aW9uSWQ6CkBAIC0yMTYzLDYgKzIxNzMsNyBAQCBmaW5kX2V4cHJfcmVmZXJlbmNlc193YWxr ZXIoTm9kZSAqbm9kZSwKIAkJCXN3aXRjaCAocnRlLT5ydGVraW5kKQogCQkJewogCQkJCWNhc2Ug UlRFX1JFTEFUSU9OOgorCQkJCWNhc2UgUlRFX0dSQVBIX1RBQkxFOgogCQkJCQlhZGRfb2JqZWN0 X2FkZHJlc3MoUmVsYXRpb25SZWxhdGlvbklkLCBydGUtPnJlbGlkLCAwLAogCQkJCQkJCQkJICAg Y29udGV4dC0+YWRkcnMpOwogCQkJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nh dGFsb2cvaW5mb3JtYXRpb25fc2NoZW1hLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5mb3Jt YXRpb25fc2NoZW1hLnNxbAppbmRleCA3NmM3OGMwZDE4NC4uZDZiMDhmOTkxMzcgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5mb3JtYXRpb25fc2NoZW1hLnNxbAorKysgYi9zcmMv YmFja2VuZC9jYXRhbG9nL2luZm9ybWF0aW9uX3NjaGVtYS5zcWwKQEAgLTMwMDksMyArMzAwOSwz NjcgQEAgQ1JFQVRFIFZJRVcgdXNlcl9tYXBwaW5ncyBBUwogICAgIEZST00gX3BnX3VzZXJfbWFw cGluZ3M7CiAKIEdSQU5UIFNFTEVDVCBPTiB1c2VyX21hcHBpbmdzIFRPIFBVQkxJQzsKKworCist LSBTUUwvUEdRIHZpZXdzOyB0aGVzZSB1c2Ugc2VjdGlvbiBudW1iZXJzIGZyb20gcGFydCAxNiBv ZiB0aGUgc3RhbmRhcmQuCisKKy8qCisgKiAxNS4yCisgKiBQR19ERUZJTkVEX0xBQkVMX1NFVFMg dmlldworICovCisKKy0tIFRPRE8KKworCisvKgorICogMTUuMworICogUEdfREVGSU5FRF9MQUJF TF9TRVRfTEFCRUxTIHZpZXcKKyAqLworCistLSBUT0RPCisKKworLyoKKyAqIDE1LjQKKyAqIFBH X0VER0VfREVGSU5FRF9MQUJFTF9TRVRTIHZpZXcKKyAqLworCistLSBUT0RPCisKKworLyoKKyAq IDE1LjUKKyAqIFBHX0VER0VfVEFCTEVfQ09NUE9ORU5UUyB2aWV3CisgKi8KKworQ1JFQVRFIFZJ RVcgcGdfZWRnZV90YWJsZV9jb21wb25lbnRzIEFTCisgICAgU0VMRUNUIENBU1QoY3VycmVudF9k YXRhYmFzZSgpIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nLAor ICAgICAgICAgICBDQVNUKG5wZy5uc3BuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0 eV9ncmFwaF9zY2hlbWEsCisgICAgICAgICAgIENBU1QocGcucmVsbmFtZSBBUyBzcWxfaWRlbnRp ZmllcikgQVMgcHJvcGVydHlfZ3JhcGhfbmFtZSwKKyAgICAgICAgICAgQ0FTVChlZy5wZ2VhbGlh cyBBUyBzcWxfaWRlbnRpZmllcikgQVMgZWRnZV90YWJsZV9hbGlhcywKKyAgICAgICAgICAgQ0FT VCh2LnBnZWFsaWFzIEFTIHNxbF9pZGVudGlmaWVyKSBBUyB2ZXJ0ZXhfdGFibGVfYWxpYXMsCisg ICAgICAgICAgIENBU1QoQ0FTRSBlZy5lbmQgV0hFTiAnc3JjJyBUSEVOICdTT1VSQ0UnIFdIRU4g J2Rlc3QnIFRIRU4gJ0RFU1RJTkFUSU9OJyBFTkQgQVMgY2hhcmFjdGVyX2RhdGEpIEFTIGVkZ2Vf ZW5kLAorICAgICAgICAgICBDQVNUKGFlLmF0dG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFTIGVk Z2VfdGFibGVfY29sdW1uX25hbWUsCisgICAgICAgICAgIENBU1QoYXYuYXR0bmFtZSBBUyBzcWxf aWRlbnRpZmllcikgQVMgdmVydGV4X3RhYmxlX2NvbHVtbl9uYW1lLAorICAgICAgICAgICBDQVNU KChlZy5lZ2tleSkubiBBUyBjYXJkaW5hbF9udW1iZXIpIEFTIG9yZGluYWxfcG9zaXRpb24KKyAg ICBGUk9NIHBnX25hbWVzcGFjZSBucGcKKyAgICAgICAgIEpPSU4KKyAgICAgICAgIChTRUxFQ1Qg KiBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbGtpbmQgPSAnZycpIEFTIHBnCisgICAgICAgICAgIE9O IG5wZy5vaWQgPSBwZy5yZWxuYW1lc3BhY2UKKyAgICAgICAgIEpPSU4KKyAgICAgICAgIChTRUxF Q1QgcGdlcGdpZCwgcGdlYWxpYXMsIHBnZXJlbGlkLCAnc3JjJyBBUyBlbmQsIHBnZXNyY3ZlcnRl eGlkIEFTIHZlcnRleGlkLCBfcGdfZXhwYW5kYXJyYXkocGdlc3Jja2V5KSBBUyBlZ2tleSwgX3Bn X2V4cGFuZGFycmF5KHBnZXNyY3JlZikgQVMgZWdyZWYgRlJPTSBwZ19wcm9wZ3JhcGhfZWxlbWVu dCBXSEVSRSBwZ2VraW5kID0gJ2UnCisgICAgICAgICAgVU5JT04gQUxMCisgICAgICAgICAgU0VM RUNUIHBnZXBnaWQsIHBnZWFsaWFzLCBwZ2VyZWxpZCwgJ2Rlc3QnIEFTIGVuZCwgcGdlZGVzdHZl cnRleGlkIEFTIHZlcnRleGlkLCBfcGdfZXhwYW5kYXJyYXkocGdlZGVzdGtleSkgQVMgZWdrZXks IF9wZ19leHBhbmRhcnJheShwZ2VkZXN0cmVmKSBBUyBlZ3JlZiBGUk9NIHBnX3Byb3BncmFwaF9l bGVtZW50IFdIRVJFIHBnZWtpbmQgPSAnZScKKyAgICAgICAgICkgQVMgZWcKKyAgICAgICAgICAg T04gcGcub2lkID0gZWcucGdlcGdpZAorICAgICAgICAgSk9JTgorICAgICAgICAgKFNFTEVDVCAq IEZST00gcGdfcHJvcGdyYXBoX2VsZW1lbnQgV0hFUkUgcGdla2luZCA9ICd2JykgQVMgdgorICAg ICAgICAgICBPTiBlZy52ZXJ0ZXhpZCA9IHYub2lkCisgICAgICAgICBKT0lOCisgICAgICAgICAo U0VMRUNUICogRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgTk9UIGF0dGlzZHJvcHBlZCkgQVMgYWUK KyAgICAgICAgICAgT04gZWcucGdlcmVsaWQgPSBhZS5hdHRyZWxpZCBBTkQgKGVnLmVna2V5KS54 ID0gYWUuYXR0bnVtCisgICAgICAgICBKT0lOCisgICAgICAgICAoU0VMRUNUICogRlJPTSBwZ19h dHRyaWJ1dGUgV0hFUkUgTk9UIGF0dGlzZHJvcHBlZCkgQVMgYXYKKyAgICAgICAgICAgT04gdi5w Z2VyZWxpZCA9IGF2LmF0dHJlbGlkIEFORCAoZWcuZWdyZWYpLnggPSBhdi5hdHRudW0KKyAgICBX SEVSRSBOT1QgcGdfaXNfb3RoZXJfdGVtcF9zY2hlbWEobnBnLm9pZCkKKyAgICAgICAgICBBTkQg KHBnX2hhc19yb2xlKHBnLnJlbG93bmVyLCAnVVNBR0UnKQorICAgICAgICAgICAgICAgT1IgaGFz X3RhYmxlX3ByaXZpbGVnZShwZy5vaWQsICdTRUxFQ1QnKSk7CisKK0dSQU5UIFNFTEVDVCBPTiBw Z19lZGdlX3RhYmxlX2NvbXBvbmVudHMgVE8gUFVCTElDOworCisKKy8qCisgKiAxNS42CisgKiBQ R19FREdFX1RSSVBMRVRTIHZpZXcKKyAqLworCistLSBUT0RPCisKKworLyoKKyAqIDE1LjcKKyAq IFBHX0VMRU1FTlRfVEFCTEVfS0VZX0NPTFVNTlMgdmlldworICovCisKK0NSRUFURSBWSUVXIHBn X2VsZW1lbnRfdGFibGVfa2V5X2NvbHVtbnMgQVMKKyAgICBTRUxFQ1QgQ0FTVChjdXJyZW50X2Rh dGFiYXNlKCkgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHByb3BlcnR5X2dyYXBoX2NhdGFsb2csCisg ICAgICAgICAgIENBU1QobnBnLm5zcG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHByb3BlcnR5 X2dyYXBoX3NjaGVtYSwKKyAgICAgICAgICAgQ0FTVChwZy5yZWxuYW1lIEFTIHNxbF9pZGVudGlm aWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9uYW1lLAorICAgICAgICAgICBDQVNUKHBnZWFsaWFzIEFT IHNxbF9pZGVudGlmaWVyKSBBUyBlbGVtZW50X3RhYmxlX2FsaWFzLAorICAgICAgICAgICBDQVNU KGEuYXR0bmFtZSBBUyBzcWxfaWRlbnRpZmllcikgQVMgY29sdW1uX25hbWUsCisgICAgICAgICAg IENBU1QoKGVsLmVrZXkpLm4gQVMgY2FyZGluYWxfbnVtYmVyKSBBUyBvcmRpbmFsX3Bvc2l0aW9u CisgICAgRlJPTSBwZ19uYW1lc3BhY2UgbnBnCisgICAgICAgICBKT0lOCisgICAgICAgICAoU0VM RUNUICogRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxraW5kID0gJ2cnKSBBUyBwZworICAgICAgICAg ICBPTiBucGcub2lkID0gcGcucmVsbmFtZXNwYWNlCisgICAgICAgICBKT0lOCisgICAgICAgICAo U0VMRUNUIHBnZXBnaWQsIHBnZWFsaWFzLCBwZ2VyZWxpZCwgX3BnX2V4cGFuZGFycmF5KHBnZWtl eSkgQVMgZWtleSBGUk9NIHBnX3Byb3BncmFwaF9lbGVtZW50KSBBUyBlbAorICAgICAgICAgICBP TiBwZy5vaWQgPSBlbC5wZ2VwZ2lkCisgICAgICAgICBKT0lOCisgICAgICAgICAoU0VMRUNUICog RlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgTk9UIGF0dGlzZHJvcHBlZCkgQVMgYQorICAgICAgICAg ICBPTiBlbC5wZ2VyZWxpZCA9IGEuYXR0cmVsaWQgQU5EIChlbC5la2V5KS54ID0gYS5hdHRudW0K KyAgICBXSEVSRSBOT1QgcGdfaXNfb3RoZXJfdGVtcF9zY2hlbWEobnBnLm9pZCkKKyAgICAgICAg ICBBTkQgKHBnX2hhc19yb2xlKHBnLnJlbG93bmVyLCAnVVNBR0UnKQorICAgICAgICAgICAgICAg T1IgaGFzX3RhYmxlX3ByaXZpbGVnZShwZy5vaWQsICdTRUxFQ1QnKSk7CisKK0dSQU5UIFNFTEVD VCBPTiBwZ19lbGVtZW50X3RhYmxlX2tleV9jb2x1bW5zIFRPIFBVQkxJQzsKKworCisvKgorICog MTUuOAorICogUEdfRUxFTUVOVF9UQUJMRV9MQUJFTFMgdmlldworICovCisKK0NSRUFURSBWSUVX IHBnX2VsZW1lbnRfdGFibGVfbGFiZWxzIEFTCisgICAgU0VMRUNUIENBU1QoY3VycmVudF9kYXRh YmFzZSgpIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nLAorICAg ICAgICAgICBDQVNUKG5wZy5uc3BuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9n cmFwaF9zY2hlbWEsCisgICAgICAgICAgIENBU1QocGcucmVsbmFtZSBBUyBzcWxfaWRlbnRpZmll cikgQVMgcHJvcGVydHlfZ3JhcGhfbmFtZSwKKyAgICAgICAgICAgQ0FTVChlLnBnZWFsaWFzIEFT IHNxbF9pZGVudGlmaWVyKSBBUyBlbGVtZW50X3RhYmxlX2FsaWFzLAorICAgICAgICAgICBDQVNU KGwucGdsbGFiZWwgQVMgc3FsX2lkZW50aWZpZXIpIEFTIGxhYmVsX25hbWUKKyAgICBGUk9NIHBn X25hbWVzcGFjZSBucGcsIHBnX2NsYXNzIHBnLCBwZ19wcm9wZ3JhcGhfZWxlbWVudCBlLCBwZ19w cm9wZ3JhcGhfZWxlbWVudF9sYWJlbCBlbCwgcGdfcHJvcGdyYXBoX2xhYmVsIGwKKyAgICBXSEVS RSBwZy5yZWxuYW1lc3BhY2UgPSBucGcub2lkCisgICAgICAgICAgQU5EIGUucGdlcGdpZCA9IHBn Lm9pZAorICAgICAgICAgIEFORCBlbC5wZ2VsZWxpZCA9IGUub2lkCisgICAgICAgICAgQU5EIGVs LnBnZWxsYWJlbGlkID0gbC5vaWQKKyAgICAgICAgICBBTkQgcGcucmVsa2luZCA9ICdnJworICAg ICAgICAgIEFORCAoTk9UIHBnX2lzX290aGVyX3RlbXBfc2NoZW1hKG5wZy5vaWQpKQorICAgICAg ICAgIEFORCAocGdfaGFzX3JvbGUocGcucmVsb3duZXIsICdVU0FHRScpCisgICAgICAgICAgICAg ICBPUiBoYXNfdGFibGVfcHJpdmlsZWdlKHBnLm9pZCwgJ1NFTEVDVCcpKTsKKworR1JBTlQgU0VM RUNUIE9OIHBnX2VsZW1lbnRfdGFibGVfbGFiZWxzIFRPIFBVQkxJQzsKKworCisvKgorICogMTUu OQorICogUEdfRUxFTUVOVF9UQUJMRV9QUk9QRVJUSUVTIHZpZXcKKyAqLworCitDUkVBVEUgVklF VyBwZ19lbGVtZW50X3RhYmxlX3Byb3BlcnRpZXMgQVMKKyAgICBTRUxFQ1QgRElTVElOQ1QKKyAg ICAgICAgICAgQ0FTVChjdXJyZW50X2RhdGFiYXNlKCkgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHBy b3BlcnR5X2dyYXBoX2NhdGFsb2csCisgICAgICAgICAgIENBU1QobnBnLm5zcG5hbWUgQVMgc3Fs X2lkZW50aWZpZXIpIEFTIHByb3BlcnR5X2dyYXBoX3NjaGVtYSwKKyAgICAgICAgICAgQ0FTVChw Zy5yZWxuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9uYW1lLAorICAg ICAgICAgICBDQVNUKGUucGdlYWxpYXMgQVMgc3FsX2lkZW50aWZpZXIpIEFTIGVsZW1lbnRfdGFi bGVfYWxpYXMsCisgICAgICAgICAgIENBU1QocHIucGdwbmFtZSBBUyBzcWxfaWRlbnRpZmllcikg QVMgcHJvcGVydHlfbmFtZSwKKyAgICAgICAgICAgQ0FTVChwZ19nZXRfZXhwcihwbHAucGxwZXhw ciwgZS5wZ2VyZWxpZCkgQVMgY2hhcmFjdGVyX2RhdGEpIEFTIHByb3BlcnR5X2V4cHJlc3Npb24K KyAgICBGUk9NIHBnX25hbWVzcGFjZSBucGcsIHBnX2NsYXNzIHBnLCBwZ19wcm9wZ3JhcGhfZWxl bWVudCBlLCBwZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbCBlbCwgcGdfcHJvcGdyYXBoX2xhYmVs X3Byb3BlcnR5IHBscCwgcGdfcHJvcGdyYXBoX3Byb3BlcnR5IHByCisgICAgV0hFUkUgcGcucmVs bmFtZXNwYWNlID0gbnBnLm9pZAorICAgICAgICAgIEFORCBlLnBnZXBnaWQgPSBwZy5vaWQKKyAg ICAgICAgICBBTkQgZWwucGdlbGVsaWQgPSBlLm9pZAorICAgICAgICAgIEFORCBwbHAucGxwZWxs YWJlbGlkID0gZWwub2lkCisgICAgICAgICAgQU5EIHByLm9pZCA9IHBscC5wbHBwcm9waWQKKyAg ICAgICAgICBBTkQgcGcucmVsa2luZCA9ICdnJworICAgICAgICAgIEFORCAoTk9UIHBnX2lzX290 aGVyX3RlbXBfc2NoZW1hKG5wZy5vaWQpKQorICAgICAgICAgIEFORCAocGdfaGFzX3JvbGUocGcu cmVsb3duZXIsICdVU0FHRScpCisgICAgICAgICAgICAgICBPUiBoYXNfdGFibGVfcHJpdmlsZWdl KHBnLm9pZCwgJ1NFTEVDVCcpKTsKKworR1JBTlQgU0VMRUNUIE9OIHBnX2VsZW1lbnRfdGFibGVf cHJvcGVydGllcyBUTyBQVUJMSUM7CisKKworLyoKKyAqIDE1LjEwCisgKiBQR19FTEVNRU5UX1RB QkxFUyB2aWV3CisgKi8KKworQ1JFQVRFIFZJRVcgcGdfZWxlbWVudF90YWJsZXMgQVMKKyAgICBT RUxFQ1QgQ0FTVChjdXJyZW50X2RhdGFiYXNlKCkgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHByb3Bl cnR5X2dyYXBoX2NhdGFsb2csCisgICAgICAgICAgIENBU1QobnBnLm5zcG5hbWUgQVMgc3FsX2lk ZW50aWZpZXIpIEFTIHByb3BlcnR5X2dyYXBoX3NjaGVtYSwKKyAgICAgICAgICAgQ0FTVChwZy5y ZWxuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9uYW1lLAorICAgICAg ICAgICBDQVNUKGUucGdlYWxpYXMgQVMgc3FsX2lkZW50aWZpZXIpIEFTIGVsZW1lbnRfdGFibGVf YWxpYXMsCisgICAgICAgICAgIENBU1QoQ0FTRSBlLnBnZWtpbmQgV0hFTiAnZScgVEhFTiAnRURH RScgV0hFTiAndicgVEhFTiAnVkVSVEVYJyBFTkQgQVMgY2hhcmFjdGVyX2RhdGEpIEFTIGVsZW1l bnRfdGFibGVfa2luZCwKKyAgICAgICAgICAgQ0FTVChjdXJyZW50X2RhdGFiYXNlKCkgQVMgc3Fs X2lkZW50aWZpZXIpIEFTIHRhYmxlX2NhdGFsb2csCisgICAgICAgICAgIENBU1QobnQubnNwbmFt ZSBBUyBzcWxfaWRlbnRpZmllcikgQVMgdGFibGVfc2NoZW1hLAorICAgICAgICAgICBDQVNUKHQu cmVsbmFtZSBBUyBzcWxfaWRlbnRpZmllcikgQVMgdGFibGVfbmFtZSwKKyAgICAgICAgICAgQ0FT VChOVUxMIEFTIGNoYXJhY3Rlcl9kYXRhKSBBUyBlbGVtZW50X3RhYmxlX2RlZmluaXRpb24KKyAg ICBGUk9NIHBnX25hbWVzcGFjZSBucGcsIHBnX2NsYXNzIHBnLCBwZ19wcm9wZ3JhcGhfZWxlbWVu dCBlLCBwZ19jbGFzcyB0LCBwZ19uYW1lc3BhY2UgbnQKKyAgICBXSEVSRSBwZy5yZWxuYW1lc3Bh Y2UgPSBucGcub2lkCisgICAgICAgICAgQU5EIGUucGdlcGdpZCA9IHBnLm9pZAorICAgICAgICAg IEFORCBlLnBnZXJlbGlkID0gdC5vaWQKKyAgICAgICAgICBBTkQgdC5yZWxuYW1lc3BhY2UgPSBu dC5vaWQKKyAgICAgICAgICBBTkQgcGcucmVsa2luZCA9ICdnJworICAgICAgICAgIEFORCAoTk9U IHBnX2lzX290aGVyX3RlbXBfc2NoZW1hKG5wZy5vaWQpKQorICAgICAgICAgIEFORCAocGdfaGFz X3JvbGUocGcucmVsb3duZXIsICdVU0FHRScpCisgICAgICAgICAgICAgICBPUiBoYXNfdGFibGVf cHJpdmlsZWdlKHBnLm9pZCwgJ1NFTEVDVCcpKTsKKworR1JBTlQgU0VMRUNUIE9OIHBnX2VsZW1l bnRfdGFibGVzIFRPIFBVQkxJQzsKKworCisvKgorICogMTUuMTEKKyAqIFBHX0xBQkVMX1BST1BF UlRJRVMgdmlldworICovCisKK0NSRUFURSBWSUVXIHBnX2xhYmVsX3Byb3BlcnRpZXMgQVMKKyAg ICBTRUxFQ1QgRElTVElOQ1QKKyAgICAgICAgICAgQ0FTVChjdXJyZW50X2RhdGFiYXNlKCkgQVMg c3FsX2lkZW50aWZpZXIpIEFTIHByb3BlcnR5X2dyYXBoX2NhdGFsb2csCisgICAgICAgICAgIENB U1QobnBnLm5zcG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHByb3BlcnR5X2dyYXBoX3NjaGVt YSwKKyAgICAgICAgICAgQ0FTVChwZy5yZWxuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9w ZXJ0eV9ncmFwaF9uYW1lLAorICAgICAgICAgICBDQVNUKGwucGdsbGFiZWwgQVMgc3FsX2lkZW50 aWZpZXIpIEFTIGxhYmVsX25hbWUsCisgICAgICAgICAgIENBU1QocHIucGdwbmFtZSBBUyBzcWxf aWRlbnRpZmllcikgQVMgcHJvcGVydHlfbmFtZQorICAgIEZST00gcGdfbmFtZXNwYWNlIG5wZywg cGdfY2xhc3MgcGcsIHBnX3Byb3BncmFwaF9lbGVtZW50IGUsIHBnX3Byb3BncmFwaF9sYWJlbCBs LCBwZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbCBlbCwgcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3Bl cnR5IHBscCwgcGdfcHJvcGdyYXBoX3Byb3BlcnR5IHByCisgICAgV0hFUkUgcGcucmVsbmFtZXNw YWNlID0gbnBnLm9pZAorICAgICAgICAgIEFORCBlLnBnZXBnaWQgPSBwZy5vaWQKKyAgICAgICAg ICBBTkQgZWwucGdlbGVsaWQgPSBlLm9pZAorICAgICAgICAgIEFORCBwbHAucGxwZWxsYWJlbGlk ID0gZWwub2lkCisgICAgICAgICAgQU5EIHByLm9pZCA9IHBscC5wbHBwcm9waWQKKyAgICAgICAg ICBBTkQgZWwucGdlbGxhYmVsaWQgPSBsLm9pZAorICAgICAgICAgIEFORCBwZy5yZWxraW5kID0g J2cnCisgICAgICAgICAgQU5EIChOT1QgcGdfaXNfb3RoZXJfdGVtcF9zY2hlbWEobnBnLm9pZCkp CisgICAgICAgICAgQU5EIChwZ19oYXNfcm9sZShwZy5yZWxvd25lciwgJ1VTQUdFJykKKyAgICAg ICAgICAgICAgIE9SIGhhc190YWJsZV9wcml2aWxlZ2UocGcub2lkLCAnU0VMRUNUJykpOworCitH UkFOVCBTRUxFQ1QgT04gcGdfbGFiZWxfcHJvcGVydGllcyBUTyBQVUJMSUM7CisKKworLyoKKyAq IDE1LjEyCisgKiBQR19MQUJFTFMgdmlldworICovCisKK0NSRUFURSBWSUVXIHBnX2xhYmVscyBB UworICAgIFNFTEVDVCBDQVNUKGN1cnJlbnRfZGF0YWJhc2UoKSBBUyBzcWxfaWRlbnRpZmllcikg QVMgcHJvcGVydHlfZ3JhcGhfY2F0YWxvZywKKyAgICAgICAgICAgQ0FTVChucGcubnNwbmFtZSBB UyBzcWxfaWRlbnRpZmllcikgQVMgcHJvcGVydHlfZ3JhcGhfc2NoZW1hLAorICAgICAgICAgICBD QVNUKHBnLnJlbG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHByb3BlcnR5X2dyYXBoX25hbWUs CisgICAgICAgICAgIENBU1QobC5wZ2xsYWJlbCBBUyBzcWxfaWRlbnRpZmllcikgQVMgbGFiZWxf bmFtZQorICAgIEZST00gcGdfbmFtZXNwYWNlIG5wZywgcGdfY2xhc3MgcGcsIHBnX3Byb3BncmFw aF9sYWJlbCBsCisgICAgV0hFUkUgcGcucmVsbmFtZXNwYWNlID0gbnBnLm9pZAorICAgICAgICAg IEFORCBsLnBnbHBnaWQgPSBwZy5vaWQKKyAgICAgICAgICBBTkQgcGcucmVsa2luZCA9ICdnJwor ICAgICAgICAgIEFORCAoTk9UIHBnX2lzX290aGVyX3RlbXBfc2NoZW1hKG5wZy5vaWQpKQorICAg ICAgICAgIEFORCAocGdfaGFzX3JvbGUocGcucmVsb3duZXIsICdVU0FHRScpCisgICAgICAgICAg ICAgICBPUiBoYXNfdGFibGVfcHJpdmlsZWdlKHBnLm9pZCwgJ1NFTEVDVCcpKTsKKworR1JBTlQg U0VMRUNUIE9OIHBnX2xhYmVscyBUTyBQVUJMSUM7CisKKworLyoKKyAqIDE1LjEzCisgKiBQR19Q Uk9QRVJUWV9EQVRBX1RZUEVTIHZpZXcKKyAqLworCitDUkVBVEUgVklFVyBwZ19wcm9wZXJ0eV9k YXRhX3R5cGVzIEFTCisgICAgU0VMRUNUIENBU1QoY3VycmVudF9kYXRhYmFzZSgpIEFTIHNxbF9p ZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nLAorICAgICAgICAgICBDQVNUKG5w Zy5uc3BuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9zY2hlbWEsCisg ICAgICAgICAgIENBU1QocGcucmVsbmFtZSBBUyBzcWxfaWRlbnRpZmllcikgQVMgcHJvcGVydHlf Z3JhcGhfbmFtZSwKKyAgICAgICAgICAgQ0FTVChwZ3AucGdwbmFtZSBBUyBzcWxfaWRlbnRpZmll cikgQVMgcHJvcGVydHlfbmFtZSwKKworICAgICAgICAgICBDQVNUKAorICAgICAgICAgICAgIENB U0UgV0hFTiB0LnR5cHR5cGUgPSAnZCcgVEhFTgorICAgICAgICAgICAgICAgQ0FTRSBXSEVOIGJ0 LnR5cGVsZW0gPD4gMCBBTkQgYnQudHlwbGVuID0gLTEgVEhFTiAnQVJSQVknCisgICAgICAgICAg ICAgICAgICAgIFdIRU4gbmJ0Lm5zcG5hbWUgPSAncGdfY2F0YWxvZycgVEhFTiBmb3JtYXRfdHlw ZSh0LnR5cGJhc2V0eXBlLCBudWxsKQorICAgICAgICAgICAgICAgICAgICBFTFNFICdVU0VSLURF RklORUQnIEVORAorICAgICAgICAgICAgIEVMU0UKKyAgICAgICAgICAgICAgIENBU0UgV0hFTiB0 LnR5cGVsZW0gPD4gMCBBTkQgdC50eXBsZW4gPSAtMSBUSEVOICdBUlJBWScKKyAgICAgICAgICAg ICAgICAgICAgV0hFTiBudC5uc3BuYW1lID0gJ3BnX2NhdGFsb2cnIFRIRU4gZm9ybWF0X3R5cGUo cGdwLnBncHR5cGlkLCBudWxsKQorICAgICAgICAgICAgICAgICAgICBFTFNFICdVU0VSLURFRklO RUQnIEVORAorICAgICAgICAgICAgIEVORAorICAgICAgICAgICAgIEFTIGNoYXJhY3Rlcl9kYXRh KQorICAgICAgICAgICAgIEFTIGRhdGFfdHlwZSwKKworICAgICAgICAgICBDQVNUKG51bGwgQVMg Y2FyZGluYWxfbnVtYmVyKSBBUyBjaGFyYWN0ZXJfbWF4aW11bV9sZW5ndGgsCisgICAgICAgICAg IENBU1QobnVsbCBBUyBjYXJkaW5hbF9udW1iZXIpIEFTIGNoYXJhY3Rlcl9vY3RldF9sZW5ndGgs CisgICAgICAgICAgIENBU1QobnVsbCBBUyBzcWxfaWRlbnRpZmllcikgQVMgY2hhcmFjdGVyX3Nl dF9jYXRhbG9nLAorICAgICAgICAgICBDQVNUKG51bGwgQVMgc3FsX2lkZW50aWZpZXIpIEFTIGNo YXJhY3Rlcl9zZXRfc2NoZW1hLAorICAgICAgICAgICBDQVNUKG51bGwgQVMgc3FsX2lkZW50aWZp ZXIpIEFTIGNoYXJhY3Rlcl9zZXRfbmFtZSwKKyAgICAgICAgICAgQ0FTVChudWxsIEFTIHNxbF9p ZGVudGlmaWVyKSBBUyBjb2xsYXRpb25fY2F0YWxvZywgLS0gRklYTUUKKyAgICAgICAgICAgQ0FT VChudWxsIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBjb2xsYXRpb25fc2NoZW1hLCAtLSBGSVhNRQor ICAgICAgICAgICBDQVNUKG51bGwgQVMgc3FsX2lkZW50aWZpZXIpIEFTIGNvbGxhdGlvbl9uYW1l LCAtLSBGSVhNRQorICAgICAgICAgICBDQVNUKG51bGwgQVMgY2FyZGluYWxfbnVtYmVyKSBBUyBu dW1lcmljX3ByZWNpc2lvbiwKKyAgICAgICAgICAgQ0FTVChudWxsIEFTIGNhcmRpbmFsX251bWJl cikgQVMgbnVtZXJpY19wcmVjaXNpb25fcmFkaXgsCisgICAgICAgICAgIENBU1QobnVsbCBBUyBj YXJkaW5hbF9udW1iZXIpIEFTIG51bWVyaWNfc2NhbGUsCisgICAgICAgICAgIENBU1QobnVsbCBB UyBjYXJkaW5hbF9udW1iZXIpIEFTIGRhdGV0aW1lX3ByZWNpc2lvbiwKKyAgICAgICAgICAgQ0FT VChudWxsIEFTIGNoYXJhY3Rlcl9kYXRhKSBBUyBpbnRlcnZhbF90eXBlLAorICAgICAgICAgICBD QVNUKG51bGwgQVMgY2FyZGluYWxfbnVtYmVyKSBBUyBpbnRlcnZhbF9wcmVjaXNpb24sCisKKyAg ICAgICAgICAgQ0FTVChjdXJyZW50X2RhdGFiYXNlKCkgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHVz ZXJfZGVmaW5lZF90eXBlX2NhdGFsb2csCisgICAgICAgICAgIENBU1QoY29hbGVzY2UobmJ0Lm5z cG5hbWUsIG50Lm5zcG5hbWUpIEFTIHNxbF9pZGVudGlmaWVyKSBBUyB1c2VyX2RlZmluZWRfdHlw ZV9zY2hlbWEsCisgICAgICAgICAgIENBU1QoY29hbGVzY2UoYnQudHlwbmFtZSwgdC50eXBuYW1l KSBBUyBzcWxfaWRlbnRpZmllcikgQVMgdXNlcl9kZWZpbmVkX3R5cGVfbmFtZSwKKworICAgICAg ICAgICBDQVNUKG51bGwgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHNjb3BlX2NhdGFsb2csCisgICAg ICAgICAgIENBU1QobnVsbCBBUyBzcWxfaWRlbnRpZmllcikgQVMgc2NvcGVfc2NoZW1hLAorICAg ICAgICAgICBDQVNUKG51bGwgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHNjb3BlX25hbWUsCisKKyAg ICAgICAgICAgQ0FTVChudWxsIEFTIGNhcmRpbmFsX251bWJlcikgQVMgbWF4aW11bV9jYXJkaW5h bGl0eSwKKyAgICAgICAgICAgQ0FTVChwZ3AucGdwbmFtZSBBUyBzcWxfaWRlbnRpZmllcikgQVMg ZHRkX2lkZW50aWZpZXIKKworICAgIEZST00gcGdfcHJvcGdyYXBoX3Byb3BlcnR5IHBncAorICAg ICAgICAgSk9JTiAocGdfY2xhc3MgcGcgSk9JTiBwZ19uYW1lc3BhY2UgbnBnIE9OIChwZy5yZWxu YW1lc3BhY2UgPSBucGcub2lkKSkgT04gcGdwLnBncHBnaWQgPSBwZy5vaWQKKyAgICAgICAgIEpP SU4gKHBnX3R5cGUgdCBKT0lOIHBnX25hbWVzcGFjZSBudCBPTiAodC50eXBuYW1lc3BhY2UgPSBu dC5vaWQpKSBPTiBwZ3AucGdwdHlwaWQgPSB0Lm9pZAorICAgICAgICAgTEVGVCBKT0lOIChwZ190 eXBlIGJ0IEpPSU4gcGdfbmFtZXNwYWNlIG5idCBPTiAoYnQudHlwbmFtZXNwYWNlID0gbmJ0Lm9p ZCkpCisgICAgICAgICAgIE9OICh0LnR5cHR5cGUgPSAnZCcgQU5EIHQudHlwYmFzZXR5cGUgPSBi dC5vaWQpCisKKyAgICBXSEVSRSBwZy5yZWxraW5kID0gJ2cnCisgICAgICAgICAgQU5EIChOT1Qg cGdfaXNfb3RoZXJfdGVtcF9zY2hlbWEobnBnLm9pZCkpCisgICAgICAgICAgQU5EIChwZ19oYXNf cm9sZShwZy5yZWxvd25lciwgJ1VTQUdFJykKKyAgICAgICAgICAgICAgIE9SIGhhc190YWJsZV9w cml2aWxlZ2UocGcub2lkLCAnU0VMRUNUJykpOworCitHUkFOVCBTRUxFQ1QgT04gcGdfcHJvcGVy dHlfZGF0YV90eXBlcyBUTyBQVUJMSUM7CisKKworLyoKKyAqIDE1LjE0CisgKiBQR19QUk9QRVJU WV9HUkFQSF9QUklWSUxFR0VTIHZpZXcKKyAqLworCitDUkVBVEUgVklFVyBwZ19wcm9wZXJ0eV9n cmFwaF9wcml2aWxlZ2VzIEFTCisgICAgU0VMRUNUIENBU1QodV9ncmFudG9yLnJvbG5hbWUgQVMg c3FsX2lkZW50aWZpZXIpIEFTIGdyYW50b3IsCisgICAgICAgICAgIENBU1QoZ3JhbnRlZS5yb2xu YW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBncmFudGVlLAorICAgICAgICAgICBDQVNUKGN1cnJl bnRfZGF0YWJhc2UoKSBBUyBzcWxfaWRlbnRpZmllcikgQVMgcHJvcGVydHlfZ3JhcGhfY2F0YWxv ZywKKyAgICAgICAgICAgQ0FTVChuYy5uc3BuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9w ZXJ0eV9ncmFwaF9zY2hlbWEsCisgICAgICAgICAgIENBU1QoYy5yZWxuYW1lIEFTIHNxbF9pZGVu dGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9uYW1lLAorICAgICAgICAgICBDQVNUKGMucHJ0eXBl IEFTIGNoYXJhY3Rlcl9kYXRhKSBBUyBwcml2aWxlZ2VfdHlwZSwKKyAgICAgICAgICAgQ0FTVCgK KyAgICAgICAgICAgICBDQVNFIFdIRU4KKyAgICAgICAgICAgICAgICAgIC0tIG9iamVjdCBvd25l ciBhbHdheXMgaGFzIGdyYW50IG9wdGlvbnMKKyAgICAgICAgICAgICAgICAgIHBnX2hhc19yb2xl KGdyYW50ZWUub2lkLCBjLnJlbG93bmVyLCAnVVNBR0UnKQorICAgICAgICAgICAgICAgICAgT1Ig Yy5ncmFudGFibGUKKyAgICAgICAgICAgICAgICAgIFRIRU4gJ1lFUycgRUxTRSAnTk8nIEVORCBB UyB5ZXNfb3Jfbm8pIEFTIGlzX2dyYW50YWJsZQorCisgICAgRlJPTSAoCisgICAgICAgICAgICBT RUxFQ1Qgb2lkLCByZWxuYW1lLCByZWxuYW1lc3BhY2UsIHJlbGtpbmQsIHJlbG93bmVyLCAoYWNs ZXhwbG9kZShjb2FsZXNjZShyZWxhY2wsIGFjbGRlZmF1bHQoJ3InLCByZWxvd25lcikpKSkuKiBG Uk9NIHBnX2NsYXNzCisgICAgICAgICApIEFTIGMgKG9pZCwgcmVsbmFtZSwgcmVsbmFtZXNwYWNl LCByZWxraW5kLCByZWxvd25lciwgZ3JhbnRvciwgZ3JhbnRlZSwgcHJ0eXBlLCBncmFudGFibGUp LAorICAgICAgICAgcGdfbmFtZXNwYWNlIG5jLAorICAgICAgICAgcGdfYXV0aGlkIHVfZ3JhbnRv ciwKKyAgICAgICAgICgKKyAgICAgICAgICAgU0VMRUNUIG9pZCwgcm9sbmFtZSBGUk9NIHBnX2F1 dGhpZAorICAgICAgICAgICBVTklPTiBBTEwKKyAgICAgICAgICAgU0VMRUNUIDA6Om9pZCwgJ1BV QkxJQycKKyAgICAgICAgICkgQVMgZ3JhbnRlZSAob2lkLCByb2xuYW1lKQorCisgICAgV0hFUkUg Yy5yZWxuYW1lc3BhY2UgPSBuYy5vaWQKKyAgICAgICAgICBBTkQgYy5yZWxraW5kIElOICgnZycp CisgICAgICAgICAgQU5EIGMuZ3JhbnRlZSA9IGdyYW50ZWUub2lkCisgICAgICAgICAgQU5EIGMu Z3JhbnRvciA9IHVfZ3JhbnRvci5vaWQKKyAgICAgICAgICBBTkQgYy5wcnR5cGUgSU4gKCdTRUxF Q1QnKQorICAgICAgICAgIEFORCAocGdfaGFzX3JvbGUodV9ncmFudG9yLm9pZCwgJ1VTQUdFJykK KyAgICAgICAgICAgICAgIE9SIHBnX2hhc19yb2xlKGdyYW50ZWUub2lkLCAnVVNBR0UnKQorICAg ICAgICAgICAgICAgT1IgZ3JhbnRlZS5yb2xuYW1lID0gJ1BVQkxJQycpOworCitHUkFOVCBTRUxF Q1QgT04gcGdfcHJvcGVydHlfZ3JhcGhfcHJpdmlsZWdlcyBUTyBQVUJMSUM7CisKKworLyoKKyAq IDE1LjE1CisgKiBQR19WRVJURVhfREVGSU5FRF9MQUJFTF9TRVRTIHZpZXcKKyAqLworCistLSBU T0RPCisKKworLyoKKyAqIDE1LjE2CisgKiBQUk9QRVJUWV9HUkFQSFMgdmlldworICovCisKK0NS RUFURSBWSUVXIHByb3BlcnR5X2dyYXBocyBBUworICAgIFNFTEVDVCBDQVNUKGN1cnJlbnRfZGF0 YWJhc2UoKSBBUyBzcWxfaWRlbnRpZmllcikgQVMgcHJvcGVydHlfZ3JhcGhfY2F0YWxvZywKKyAg ICAgICAgICAgQ0FTVChuYy5uc3BuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9n cmFwaF9zY2hlbWEsCisgICAgICAgICAgIENBU1QoYy5yZWxuYW1lIEFTIHNxbF9pZGVudGlmaWVy KSBBUyBwcm9wZXJ0eV9ncmFwaF9uYW1lCisgICAgRlJPTSBwZ19uYW1lc3BhY2UgbmMsIHBnX2Ns YXNzIGMKKyAgICBXSEVSRSBjLnJlbG5hbWVzcGFjZSA9IG5jLm9pZAorICAgICAgICAgIEFORCBj LnJlbGtpbmQgPSAnZycKKyAgICAgICAgICBBTkQgKE5PVCBwZ19pc19vdGhlcl90ZW1wX3NjaGVt YShuYy5vaWQpKQorICAgICAgICAgIEFORCAocGdfaGFzX3JvbGUoYy5yZWxvd25lciwgJ1VTQUdF JykKKyAgICAgICAgICAgICAgIE9SIGhhc190YWJsZV9wcml2aWxlZ2UoYy5vaWQsICdTRUxFQ1Qn KSk7CisKK0dSQU5UIFNFTEVDVCBPTiBwcm9wZXJ0eV9ncmFwaHMgVE8gUFVCTElDOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgYi9zcmMvYmFja2VuZC9j YXRhbG9nL29iamVjdGFkZHJlc3MuYwppbmRleCA4N2FmNThmYWMzYS4uMGY2YzdmOTIwMGUgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCkBAIC00Nyw2ICs0NywxMSBAQAogI2luY2x1 ZGUgImNhdGFsb2cvcGdfcGFyYW1ldGVyX2FjbC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcG9s aWN5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9w Z19wcm9wZ3JhcGhfZWxlbWVudC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX2Vs ZW1lbnRfbGFiZWwuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9sYWJlbC5oIgor I2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5LmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhfcHJvcGVydHkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3B1YmxpY2F0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9uYW1lc3Bh Y2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oIgpAQCAtMzcwLDYg KzM3NSw3NiBAQCBzdGF0aWMgY29uc3QgT2JqZWN0UHJvcGVydHlUeXBlIE9iamVjdFByb3BlcnR5 W10gPQogCQlPQkpFQ1RfT1BGQU1JTFksCiAJCXRydWUKIAl9LAorCXsKKwkJInByb3BlcnR5IGdy YXBoIGVsZW1lbnQiLAorCQlQcm9wZ3JhcGhFbGVtZW50UmVsYXRpb25JZCwKKwkJUHJvcGdyYXBo RWxlbWVudE9iamVjdEluZGV4SWQsCisJCVBST1BHUkFQSEVMT0lELAorCQlQUk9QR1JBUEhFTEFM SUFTLAorCQlBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X29pZCwKKwkJQW51bV9wZ19wcm9wZ3Jh cGhfZWxlbWVudF9wZ2VhbGlhcywKKwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCUludmFsaWRBdHRy TnVtYmVyLAorCQlJbnZhbGlkQXR0ck51bWJlciwKKwkJLTEsCisJCWZhbHNlCisJfSwKKwl7CisJ CSJwcm9wZXJ0eSBncmFwaCBlbGVtZW50IGxhYmVsIiwKKwkJUHJvcGdyYXBoRWxlbWVudExhYmVs UmVsYXRpb25JZCwKKwkJUHJvcGdyYXBoRWxlbWVudExhYmVsT2JqZWN0SW5kZXhJZCwKKwkJLTEs CisJCS0xLAorCQlBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsX29pZCwKKwkJSW52YWxp ZEF0dHJOdW1iZXIsCisJCUludmFsaWRBdHRyTnVtYmVyLAorCQlJbnZhbGlkQXR0ck51bWJlciwK KwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCS0xLAorCQlmYWxzZQorCX0sCisJeworCQkicHJvcGVy dHkgZ3JhcGggbGFiZWwiLAorCQlQcm9wZ3JhcGhMYWJlbFJlbGF0aW9uSWQsCisJCVByb3BncmFw aExhYmVsT2JqZWN0SW5kZXhJZCwKKwkJUFJPUEdSQVBITEFCRUxPSUQsCisJCVBST1BHUkFQSExB QkVMTkFNRSwKKwkJQW51bV9wZ19wcm9wZ3JhcGhfbGFiZWxfb2lkLAorCQlBbnVtX3BnX3Byb3Bn cmFwaF9sYWJlbF9wZ2xsYWJlbCwKKwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCUludmFsaWRBdHRy TnVtYmVyLAorCQlJbnZhbGlkQXR0ck51bWJlciwKKwkJLTEsCisJCWZhbHNlCisJfSwKKwl7CisJ CSJwcm9wZXJ0eSBncmFwaCBsYWJlbCBwcm9wZXJ0eSIsCisJCVByb3BncmFwaExhYmVsUHJvcGVy dHlSZWxhdGlvbklkLAorCQlQcm9wZ3JhcGhMYWJlbFByb3BlcnR5T2JqZWN0SW5kZXhJZCwKKwkJ LTEsCisJCS0xLAorCQlBbnVtX3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eV9vaWQsCisJCUlu dmFsaWRBdHRyTnVtYmVyLAorCQlJbnZhbGlkQXR0ck51bWJlciwKKwkJSW52YWxpZEF0dHJOdW1i ZXIsCisJCUludmFsaWRBdHRyTnVtYmVyLAorCQktMSwKKwkJZmFsc2UKKwl9LAorCXsKKwkJInBy b3BlcnR5IGdyYXBoIHByb3BlcnR5IiwKKwkJUHJvcGdyYXBoUHJvcGVydHlSZWxhdGlvbklkLAor CQlQcm9wZ3JhcGhQcm9wZXJ0eU9iamVjdEluZGV4SWQsCisJCS0xLAorCQlQUk9QR1JBUEhQUk9Q TkFNRSwKKwkJQW51bV9wZ19wcm9wZ3JhcGhfcHJvcGVydHlfb2lkLAorCQlBbnVtX3BnX3Byb3Bn cmFwaF9wcm9wZXJ0eV9wZ3BuYW1lLAorCQlJbnZhbGlkQXR0ck51bWJlciwKKwkJSW52YWxpZEF0 dHJOdW1iZXIsCisJCUludmFsaWRBdHRyTnVtYmVyLAorCQktMSwKKwkJZmFsc2UKKwl9LAogCXsK IAkJInJvbGUiLAogCQlBdXRoSWRSZWxhdGlvbklkLApAQCAtNjc5LDYgKzc1NCw5IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3Qgb2JqZWN0X3R5cGVfbWFwCiAJewogCQkiZm9yZWlnbiB0YWJsZSIsIE9C SkVDVF9GT1JFSUdOX1RBQkxFCiAJfSwKKwl7CisJCSJwcm9wZXJ0eSBncmFwaCIsIE9CSkVDVF9Q Uk9QR1JBUEgKKwl9LAogCXsKIAkJInRhYmxlIGNvbHVtbiIsIE9CSkVDVF9DT0xVTU4KIAl9LApA QCAtODE0LDYgKzg5MiwxNSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9iamVjdF90eXBlX21hcAog CXsKIAkJInBvbGljeSIsIE9CSkVDVF9QT0xJQ1kKIAl9LAorCXsKKwkJInByb3BlcnR5IGdyYXBo IGVsZW1lbnQiLCAtMQorCX0sCisJeworCQkicHJvcGVydHkgZ3JhcGggbGFiZWwiLCAtMQorCX0s CisJeworCQkicHJvcGVydHkgZ3JhcGggcHJvcGVydHkiLCAtMQorCX0sCiAJewogCQkicHVibGlj YXRpb24iLCBPQkpFQ1RfUFVCTElDQVRJT04KIAl9LApAQCAtOTQ5LDYgKzEwMzYsNyBAQCBnZXRf b2JqZWN0X2FkZHJlc3MoT2JqZWN0VHlwZSBvYmp0eXBlLCBOb2RlICpvYmplY3QsCiAJCQljYXNl IE9CSkVDVF9WSUVXOgogCQkJY2FzZSBPQkpFQ1RfTUFUVklFVzoKIAkJCWNhc2UgT0JKRUNUX0ZP UkVJR05fVEFCTEU6CisJCQljYXNlIE9CSkVDVF9QUk9QR1JBUEg6CiAJCQkJYWRkcmVzcyA9CiAJ CQkJCWdldF9yZWxhdGlvbl9ieV9xdWFsaWZpZWRfbmFtZShvYmp0eXBlLCBjYXN0Tm9kZShMaXN0 LCBvYmplY3QpLAogCQkJCQkJCQkJCQkJICAgJnJlbGF0aW9uLCBsb2NrbW9kZSwKQEAgLTEzNjEs NiArMTQ0OSwxMyBAQCBnZXRfcmVsYXRpb25fYnlfcXVhbGlmaWVkX25hbWUoT2JqZWN0VHlwZSBv Ymp0eXBlLCBMaXN0ICpvYmplY3QsCiAJCQkJCQkgZXJybXNnKCJcIiVzXCIgaXMgbm90IGFuIGlu ZGV4IiwKIAkJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsYXRpb24pKSkpOwogCQkJ YnJlYWs7CisJCWNhc2UgT0JKRUNUX1BST1BHUkFQSDoKKwkJCWlmIChyZWxhdGlvbi0+cmRfcmVs LT5yZWxraW5kICE9IFJFTEtJTkRfUFJPUEdSQVBIKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkJCSBlcnJtc2coIlwi JXNcIiBpcyBub3QgYSBwcm9wZXJ0eSBncmFwaCIsCisJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRp b25OYW1lKHJlbGF0aW9uKSkpKTsKKwkJCWJyZWFrOwogCQljYXNlIE9CSkVDVF9TRVFVRU5DRToK IAkJCWlmIChyZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kICE9IFJFTEtJTkRfU0VRVUVOQ0UpCiAJ CQkJZXJlcG9ydChFUlJPUiwKQEAgLTIyNzYsNiArMjM3MSw3IEBAIHBnX2dldF9vYmplY3RfYWRk cmVzcyhQR19GVU5DVElPTl9BUkdTKQogCQljYXNlIE9CSkVDVF9NQVRWSUVXOgogCQljYXNlIE9C SkVDVF9JTkRFWDoKIAkJY2FzZSBPQkpFQ1RfRk9SRUlHTl9UQUJMRToKKwkJY2FzZSBPQkpFQ1Rf UFJPUEdSQVBIOgogCQljYXNlIE9CSkVDVF9DT0xVTU46CiAJCWNhc2UgT0JKRUNUX0FUVFJJQlVU RToKIAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgpAQCAtMjM5NSw2ICsyNDkxLDcgQEAgY2hlY2tf b2JqZWN0X293bmVyc2hpcChPaWQgcm9sZWlkLCBPYmplY3RUeXBlIG9ianR5cGUsIE9iamVjdEFk ZHJlc3MgYWRkcmVzcywKIAkJY2FzZSBPQkpFQ1RfVklFVzoKIAkJY2FzZSBPQkpFQ1RfTUFUVklF VzoKIAkJY2FzZSBPQkpFQ1RfRk9SRUlHTl9UQUJMRToKKwkJY2FzZSBPQkpFQ1RfUFJPUEdSQVBI OgogCQljYXNlIE9CSkVDVF9DT0xVTU46CiAJCWNhc2UgT0JKRUNUX1JVTEU6CiAJCWNhc2UgT0JK RUNUX1RSSUdHRVI6CkBAIC0zOTY2LDYgKzQwNjMsMTgyIEBAIGdldE9iamVjdERlc2NyaXB0aW9u KGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQkJCWJyZWFr OwogCQkJfQogCisJCWNhc2UgUHJvcGdyYXBoRWxlbWVudFJlbGF0aW9uSWQ6CisJCQl7CisJCQkJ SGVhcFR1cGxlCXR1cDsKKwkJCQlGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50IHBnZWZvcm07CisK KwkJCQl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoUFJPUEdSQVBIRUxPSUQsIE9iamVjdElkR2V0RGF0 dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQor CQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgcHJvcGVydHkgZ3JhcGgg ZWxlbWVudCAldSIsCisJCQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisKKwkJCQlwZ2Vmb3JtID0g KEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQpIEdFVFNUUlVDVCh0dXApOworCisJCQkJaWYgKHBn ZWZvcm0tPnBnZWtpbmQgPT0gUEdFS0lORF9WRVJURVgpCisJCQkJCS8qIHRyYW5zbGF0b3I6IGZv bGxvd2VkIGJ5LCBlLmcuLCAicHJvcGVydHkgZ3JhcGggJXMiICovCisJCQkJCWFwcGVuZFN0cmlu Z0luZm8oJmJ1ZmZlciwgXygidmVydGV4ICVzIG9mICIpLCBOYW1lU3RyKHBnZWZvcm0tPnBnZWFs aWFzKSk7CisJCQkJZWxzZSBpZiAocGdlZm9ybS0+cGdla2luZCA9PSBQR0VLSU5EX0VER0UpCisJ CQkJCS8qIHRyYW5zbGF0b3I6IGZvbGxvd2VkIGJ5LCBlLmcuLCAicHJvcGVydHkgZ3JhcGggJXMi ICovCisJCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgXygiZWRnZSAlcyBvZiAiKSwgTmFt ZVN0cihwZ2Vmb3JtLT5wZ2VhbGlhcykpOworCQkJCWVsc2UKKwkJCQkJYXBwZW5kU3RyaW5nSW5m bygmYnVmZmVyLCAiPz8/IGVsZW1lbnQgJXMgb2YgIiwgTmFtZVN0cihwZ2Vmb3JtLT5wZ2VhbGlh cykpOworCQkJCWdldFJlbGF0aW9uRGVzY3JpcHRpb24oJmJ1ZmZlciwgcGdlZm9ybS0+cGdlcGdp ZCwgZmFsc2UpOworCisJCQkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJlYWs7CisJCQl9 CisKKwkJY2FzZSBQcm9wZ3JhcGhFbGVtZW50TGFiZWxSZWxhdGlvbklkOgorCQkJeworCQkJCVJl bGF0aW9uCXJlbDsKKwkJCQlTeXNTY2FuRGVzYyBzY2FuOworCQkJCVNjYW5LZXlEYXRhIGtleVsx XTsKKwkJCQlIZWFwVHVwbGUJdHVwbGU7CisJCQkJRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9s YWJlbCBwZ2VsZm9ybTsKKwkJCQlPYmplY3RBZGRyZXNzIG9hOworCisJCQkJcmVsID0gdGFibGVf b3BlbihQcm9wZ3JhcGhFbGVtZW50TGFiZWxSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOwor CQkJCVNjYW5LZXlJbml0KCZrZXlbMF0sCisJCQkJCQkJQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVu dF9sYWJlbF9vaWQsCisJCQkJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJ CQkJCU9iamVjdElkR2V0RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCisJCQkJc2NhbiA9IHN5 c3RhYmxlX2JlZ2luc2NhbihyZWwsIFByb3BncmFwaEVsZW1lbnRMYWJlbE9iamVjdEluZGV4SWQs IHRydWUsIE5VTEwsIDEsIGtleSk7CisJCQkJdHVwbGUgPSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4p OworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSkpCisJCQkJeworCQkJCQlpZiAoIW1p c3Npbmdfb2spCisJCQkJCQllbG9nKEVSUk9SLCAiY291bGQgbm90IGZpbmQgdHVwbGUgZm9yIGVs ZW1lbnQgbGFiZWwgJXUiLCBvYmplY3QtPm9iamVjdElkKTsKKworCQkJCQlzeXN0YWJsZV9lbmRz Y2FuKHNjYW4pOworCQkJCQl0YWJsZV9jbG9zZShyZWwsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJ CWJyZWFrOworCQkJCX0KKworCQkJCXBnZWxmb3JtID0gKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1l bnRfbGFiZWwpIEdFVFNUUlVDVCh0dXBsZSk7CisKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZm ZXIsIF8oImxhYmVsICVzIG9mICIpLCBnZXRfcHJvcGdyYXBoX2xhYmVsX25hbWUocGdlbGZvcm0t PnBnZWxsYWJlbGlkKSk7CisJCQkJT2JqZWN0QWRkcmVzc1NldChvYSwgUHJvcGdyYXBoRWxlbWVu dFJlbGF0aW9uSWQsIHBnZWxmb3JtLT5wZ2VsZWxpZCk7CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0 cmluZygmYnVmZmVyLCBnZXRPYmplY3REZXNjcmlwdGlvbigmb2EsIGZhbHNlKSk7CisKKwkJCQlz eXN0YWJsZV9lbmRzY2FuKHNjYW4pOworCQkJCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVM b2NrKTsKKwkJCQlicmVhazsKKwkJCX0KKworCQljYXNlIFByb3BncmFwaExhYmVsUmVsYXRpb25J ZDoKKwkJCXsKKwkJCQlSZWxhdGlvbglyZWw7CisJCQkJU3lzU2NhbkRlc2Mgc2NhbjsKKwkJCQlT Y2FuS2V5RGF0YSBrZXlbMV07CisJCQkJSGVhcFR1cGxlCXR1cGxlOworCQkJCUZvcm1fcGdfcHJv cGdyYXBoX2xhYmVsIHBnbGZvcm07CisKKwkJCQlyZWwgPSB0YWJsZV9vcGVuKFByb3BncmFwaExh YmVsUmVsYXRpb25JZCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJCQlTY2FuS2V5SW5pdCgma2V5WzBd LAorCQkJCQkJCUFudW1fcGdfcHJvcGdyYXBoX2xhYmVsX29pZCwKKwkJCQkJCQlCVEVxdWFsU3Ry YXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9i amVjdElkKSk7CisKKwkJCQlzY2FuID0gc3lzdGFibGVfYmVnaW5zY2FuKHJlbCwgUHJvcGdyYXBo TGFiZWxPYmplY3RJbmRleElkLCB0cnVlLCBOVUxMLCAxLCBrZXkpOworCQkJCXR1cGxlID0gc3lz dGFibGVfZ2V0bmV4dChzY2FuKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwbGUpKQor CQkJCXsKKwkJCQkJaWYgKCFtaXNzaW5nX29rKQorCQkJCQkJZWxvZyhFUlJPUiwgImNvdWxkIG5v dCBmaW5kIHR1cGxlIGZvciBsYWJlbCAldSIsIG9iamVjdC0+b2JqZWN0SWQpOworCisJCQkJCXN5 c3RhYmxlX2VuZHNjYW4oc2Nhbik7CisJCQkJCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVM b2NrKTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCisJCQkJcGdsZm9ybSA9IChGb3JtX3BnX3Byb3Bn cmFwaF9sYWJlbCkgR0VUU1RSVUNUKHR1cGxlKTsKKworCQkJCS8qIHRyYW5zbGF0b3I6IGZvbGxv d2VkIGJ5LCBlLmcuLCAicHJvcGVydHkgZ3JhcGggJXMiICovCisJCQkJYXBwZW5kU3RyaW5nSW5m bygmYnVmZmVyLCBfKCJsYWJlbCAlcyBvZiAiKSwgTmFtZVN0cihwZ2xmb3JtLT5wZ2xsYWJlbCkp OworCQkJCWdldFJlbGF0aW9uRGVzY3JpcHRpb24oJmJ1ZmZlciwgcGdsZm9ybS0+cGdscGdpZCwg ZmFsc2UpOworCisJCQkJc3lzdGFibGVfZW5kc2NhbihzY2FuKTsKKwkJCQl0YWJsZV9jbG9zZShy ZWwsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJYnJlYWs7CisJCQl9CisKKwkJY2FzZSBQcm9wZ3Jh cGhMYWJlbFByb3BlcnR5UmVsYXRpb25JZDoKKwkJCXsKKwkJCQlSZWxhdGlvbglyZWw7CisJCQkJ U3lzU2NhbkRlc2Mgc2NhbjsKKwkJCQlTY2FuS2V5RGF0YSBrZXlbMV07CisJCQkJSGVhcFR1cGxl CXR1cGxlOworCQkJCUZvcm1fcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5IHBscGZvcm07CisJ CQkJT2JqZWN0QWRkcmVzcyBvYTsKKworCQkJCXJlbCA9IHRhYmxlX29wZW4oUHJvcGdyYXBoTGFi ZWxQcm9wZXJ0eVJlbGF0aW9uSWQsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJU2NhbktleUluaXQo JmtleVswXSwKKwkJCQkJCQlBbnVtX3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eV9vaWQsCisJ CQkJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJCQkJCU9iamVjdElkR2V0 RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCisJCQkJc2NhbiA9IHN5c3RhYmxlX2JlZ2luc2Nh bihyZWwsIFByb3BncmFwaExhYmVsUHJvcGVydHlPYmplY3RJbmRleElkLCB0cnVlLCBOVUxMLCAx LCBrZXkpOworCQkJCXR1cGxlID0gc3lzdGFibGVfZ2V0bmV4dChzY2FuKTsKKwkJCQlpZiAoIUhl YXBUdXBsZUlzVmFsaWQodHVwbGUpKQorCQkJCXsKKwkJCQkJaWYgKCFtaXNzaW5nX29rKQorCQkJ CQkJZWxvZyhFUlJPUiwgImNvdWxkIG5vdCBmaW5kIHR1cGxlIGZvciBsYWJlbCBwcm9wZXJ0eSAl dSIsIG9iamVjdC0+b2JqZWN0SWQpOworCisJCQkJCXN5c3RhYmxlX2VuZHNjYW4oc2Nhbik7CisJ CQkJCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJCQkJYnJlYWs7CisJCQkJ fQorCisJCQkJcGxwZm9ybSA9IChGb3JtX3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eSkgR0VU U1RSVUNUKHR1cGxlKTsKKworCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgXygicHJvcGVy dHkgJXMgb2YgIiksIGdldF9wcm9wZ3JhcGhfcHJvcGVydHlfbmFtZShwbHBmb3JtLT5wbHBwcm9w aWQpKTsKKwkJCQlPYmplY3RBZGRyZXNzU2V0KG9hLCBQcm9wZ3JhcGhFbGVtZW50TGFiZWxSZWxh dGlvbklkLCBwbHBmb3JtLT5wbHBlbGxhYmVsaWQpOworCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJp bmcoJmJ1ZmZlciwgZ2V0T2JqZWN0RGVzY3JpcHRpb24oJm9hLCBmYWxzZSkpOworCisJCQkJc3lz dGFibGVfZW5kc2NhbihzY2FuKTsKKwkJCQl0YWJsZV9jbG9zZShyZWwsIEFjY2Vzc1NoYXJlTG9j ayk7CisJCQkJYnJlYWs7CisJCQl9CisKKwkJY2FzZSBQcm9wZ3JhcGhQcm9wZXJ0eVJlbGF0aW9u SWQ6CisJCQl7CisJCQkJUmVsYXRpb24JcmVsOworCQkJCVN5c1NjYW5EZXNjIHNjYW47CisJCQkJ U2NhbktleURhdGEga2V5WzFdOworCQkJCUhlYXBUdXBsZQl0dXBsZTsKKwkJCQlGb3JtX3BnX3By b3BncmFwaF9wcm9wZXJ0eSBwZ3Bmb3JtOworCisJCQkJcmVsID0gdGFibGVfb3BlbihQcm9wZ3Jh cGhQcm9wZXJ0eVJlbGF0aW9uSWQsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJU2NhbktleUluaXQo JmtleVswXSwKKwkJCQkJCQlBbnVtX3BnX3Byb3BncmFwaF9wcm9wZXJ0eV9vaWQsCisJCQkJCQkJ QlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJCQkJCU9iamVjdElkR2V0RGF0dW0o b2JqZWN0LT5vYmplY3RJZCkpOworCisJCQkJc2NhbiA9IHN5c3RhYmxlX2JlZ2luc2NhbihyZWws IFByb3BncmFwaFByb3BlcnR5T2JqZWN0SW5kZXhJZCwgdHJ1ZSwgTlVMTCwgMSwga2V5KTsKKwkJ CQl0dXBsZSA9IHN5c3RhYmxlX2dldG5leHQoc2Nhbik7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1Zh bGlkKHR1cGxlKSkKKwkJCQl7CisJCQkJCWlmICghbWlzc2luZ19vaykKKwkJCQkJCWVsb2coRVJS T1IsICJjb3VsZCBub3QgZmluZCB0dXBsZSBmb3IgcHJvcGVydHkgJXUiLCBvYmplY3QtPm9iamVj dElkKTsKKworCQkJCQlzeXN0YWJsZV9lbmRzY2FuKHNjYW4pOworCQkJCQl0YWJsZV9jbG9zZShy ZWwsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJCWJyZWFrOworCQkJCX0KKworCQkJCXBncGZvcm0g PSAoRm9ybV9wZ19wcm9wZ3JhcGhfcHJvcGVydHkpIEdFVFNUUlVDVCh0dXBsZSk7CisKKwkJCQkv KiB0cmFuc2xhdG9yOiBmb2xsb3dlZCBieSwgZS5nLiwgInByb3BlcnR5IGdyYXBoICVzIiAqLwor CQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgXygicHJvcGVydHkgJXMgb2YgIiksIE5hbWVT dHIocGdwZm9ybS0+cGdwbmFtZSkpOworCQkJCWdldFJlbGF0aW9uRGVzY3JpcHRpb24oJmJ1ZmZl ciwgcGdwZm9ybS0+cGdwcGdpZCwgZmFsc2UpOworCisJCQkJc3lzdGFibGVfZW5kc2NhbihzY2Fu KTsKKwkJCQl0YWJsZV9jbG9zZShyZWwsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJYnJlYWs7CisJ CQl9CisKIAkJY2FzZSBQdWJsaWNhdGlvblJlbGF0aW9uSWQ6CiAJCQl7CiAJCQkJY2hhcgkgICAq cHVibmFtZSA9IGdldF9wdWJsaWNhdGlvbl9uYW1lKG9iamVjdC0+b2JqZWN0SWQsCkBAIC00MTUx LDYgKzQ0MjQsMTAgQEAgZ2V0UmVsYXRpb25EZXNjcmlwdGlvbihTdHJpbmdJbmZvIGJ1ZmZlciwg T2lkIHJlbGlkLCBib29sIG1pc3Npbmdfb2spCiAJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZmZlciwg XygiZm9yZWlnbiB0YWJsZSAlcyIpLAogCQkJCQkJCSByZWxuYW1lKTsKIAkJCWJyZWFrOworCQlj YXNlIFJFTEtJTkRfUFJPUEdSQVBIOgorCQkJYXBwZW5kU3RyaW5nSW5mbyhidWZmZXIsIF8oInBy b3BlcnR5IGdyYXBoICVzIiksCisJCQkJCQkJIHJlbG5hbWUpOworCQkJYnJlYWs7CiAJCWRlZmF1 bHQ6CiAJCQkvKiBzaG91bGRuJ3QgZ2V0IGhlcmUgKi8KIAkJCWFwcGVuZFN0cmluZ0luZm8oYnVm ZmVyLCBfKCJyZWxhdGlvbiAlcyIpLApAQCAtNDY0MCw2ICs0OTE3LDE4IEBAIGdldE9iamVjdFR5 cGVEZXNjcmlwdGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wgbWlzc2luZ19v aykKIAkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgInBvbGljeSIpOwogCQkJYnJl YWs7CiAKKwkJY2FzZSBQcm9wZ3JhcGhFbGVtZW50UmVsYXRpb25JZDoKKwkJCWFwcGVuZFN0cmlu Z0luZm9TdHJpbmcoJmJ1ZmZlciwgInByb3BlcnR5IGdyYXBoIGVsZW1lbnQiKTsKKwkJCWJyZWFr OworCisJCWNhc2UgUHJvcGdyYXBoTGFiZWxSZWxhdGlvbklkOgorCQkJYXBwZW5kU3RyaW5nSW5m b1N0cmluZygmYnVmZmVyLCAicHJvcGVydHkgZ3JhcGggbGFiZWwiKTsKKwkJCWJyZWFrOworCisJ CWNhc2UgUHJvcGdyYXBoUHJvcGVydHlSZWxhdGlvbklkOgorCQkJYXBwZW5kU3RyaW5nSW5mb1N0 cmluZygmYnVmZmVyLCAicHJvcGVydHkgZ3JhcGggcHJvcGVydHkiKTsKKwkJCWJyZWFrOworCiAJ CWNhc2UgUHVibGljYXRpb25SZWxhdGlvbklkOgogCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygm YnVmZmVyLCAicHVibGljYXRpb24iKTsKIAkJCWJyZWFrOwpAQCAtNDcyMSw2ICs1MDEwLDkgQEAg Z2V0UmVsYXRpb25UeXBlRGVzY3JpcHRpb24oU3RyaW5nSW5mbyBidWZmZXIsIE9pZCByZWxpZCwg aW50MzIgb2JqZWN0U3ViSWQsCiAJCWNhc2UgUkVMS0lORF9GT1JFSUdOX1RBQkxFOgogCQkJYXBw ZW5kU3RyaW5nSW5mb1N0cmluZyhidWZmZXIsICJmb3JlaWduIHRhYmxlIik7CiAJCQlicmVhazsK KwkJY2FzZSBSRUxLSU5EX1BST1BHUkFQSDoKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVm ZmVyLCAicHJvcGVydHkgZ3JhcGgiKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJLyogc2hv dWxkbid0IGdldCBoZXJlICovCiAJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZmZlciwgInJl bGF0aW9uIik7CkBAIC01ODgxLDYgKzYxNzMsMTggQEAgZ2V0T2JqZWN0SWRlbnRpdHlQYXJ0cyhj b25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBQ cm9wZ3JhcGhFbGVtZW50UmVsYXRpb25JZDoKKwkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwg IiV1IFRPRE8iLCBvYmplY3QtPm9iamVjdElkKTsKKwkJCWJyZWFrOworCisJCWNhc2UgUHJvcGdy YXBoTGFiZWxSZWxhdGlvbklkOgorCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCAiJXUgVE9E TyIsIG9iamVjdC0+b2JqZWN0SWQpOworCQkJYnJlYWs7CisKKwkJY2FzZSBQcm9wZ3JhcGhQcm9w ZXJ0eVJlbGF0aW9uSWQ6CisJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsICIldSBUT0RPIiwg b2JqZWN0LT5vYmplY3RJZCk7CisJCQlicmVhazsKKwogCQljYXNlIFB1YmxpY2F0aW9uUmVsYXRp b25JZDoKIAkJCXsKIAkJCQljaGFyCSAgICpwdWJuYW1lOwpAQCAtNjE4Nyw2ICs2NDkxLDggQEAg Z2V0X3JlbGtpbmRfb2JqdHlwZShjaGFyIHJlbGtpbmQpCiAJCQlyZXR1cm4gT0JKRUNUX01BVFZJ RVc7CiAJCWNhc2UgUkVMS0lORF9GT1JFSUdOX1RBQkxFOgogCQkJcmV0dXJuIE9CSkVDVF9GT1JF SUdOX1RBQkxFOworCQljYXNlIFJFTEtJTkRfUFJPUEdSQVBIOgorCQkJcmV0dXJuIE9CSkVDVF9Q Uk9QR1JBUEg7CiAJCWNhc2UgUkVMS0lORF9UT0FTVFZBTFVFOgogCQkJcmV0dXJuIE9CSkVDVF9U QUJMRTsKIAkJZGVmYXVsdDoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY2xh c3MuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY2xhc3MuYwppbmRleCBlMDViMGJiYjJlMC4u NzQ4ZjA2YjNmZjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY2xhc3MuYwor KysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2NsYXNzLmMKQEAgLTQ1LDYgKzQ1LDggQEAgZXJy ZGV0YWlsX3JlbGtpbmRfbm90X3N1cHBvcnRlZChjaGFyIHJlbGtpbmQpCiAJCQlyZXR1cm4gZXJy ZGV0YWlsKCJUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciBwYXJ0aXRpb25lZCB0 YWJsZXMuIik7CiAJCWNhc2UgUkVMS0lORF9QQVJUSVRJT05FRF9JTkRFWDoKIAkJCXJldHVybiBl cnJkZXRhaWwoIlRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHBhcnRpdGlvbmVk IGluZGV4ZXMuIik7CisJCWNhc2UgUkVMS0lORF9QUk9QR1JBUEg6CisJCQlyZXR1cm4gZXJyZGV0 YWlsKCJUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciBwcm9wZXJ0eSBncmFwaHMu Iik7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIHJlbGtpbmQ6ICcl YyciLCByZWxraW5kKTsKIAkJCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9zcWxfZmVhdHVyZXMudHh0IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zcWxfZmVhdHVyZXMu dHh0CmluZGV4IGMwMDJmMzcyMDJmLi5iNDlhYWQ1NDFhMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9zcWxfZmVhdHVyZXMudHh0CisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3Fs X2ZlYXR1cmVzLnR4dApAQCAtMzQ4LDYgKzM0OCwxMDYgQEAgRjg2NglGRVRDSCBGSVJTVCBjbGF1 c2U6IFBFUkNFTlQgb3B0aW9uCQkJTk8KIEY4NjcJRkVUQ0ggRklSU1QgY2xhdXNlOiBXSVRIIFRJ RVMgb3B0aW9uCQkJWUVTCQogRjg2OAlPUkRFUiBCWSBpbiBncm91cGVkIHRhYmxlCQkJWUVTCQog Rjg2OQlTUUwgaW1wbGVtZW50YXRpb24gaW5mbyBwb3B1bGF0aW9uCQkJWUVTCQorRzAwMAlHcmFw aCBwYXR0ZXJuCQkJWUVTCVNRTC9QR1EgcmVxdWlyZWQKK0cwMDEJUmVwZWF0YWJsZS1lbGVtZW50 cyBtYXRjaCBtb2RlCQkJWUVTCVNRTC9QR1EgcmVxdWlyZWQKK0cwMDIJRGlmZmVyZW50LWVkZ2Vz IG1hdGNoIG1vZGUJCQlOTwkKK0cwMDMJRXhwbGljaXQgUkVQRUFUQUJMRSBFTEVNRU5UUyBrZXl3 b3JkCQkJTk8JCitHMDA0CVBhdGggdmFyaWFibGVzCQkJTk8JCitHMDA1CVBhdGggc2VhcmNoIHBy ZWZpeCBpbiBhIHBhdGggcGF0dGVybgkJCU5PCQorRzAwNglHcmFwaCBwYXR0ZXJuIEtFRVAgY2xh dXNlOiBwYXRoIG1vZGUgcHJlZml4CQkJTk8JCitHMDA3CUdyYXBoIHBhdHRlcm4gS0VFUCBjbGF1 c2U6IHBhdGggc2VhcmNoIHByZWZpeAkJCU5PCQorRzAwOAlHcmFwaCBwYXR0ZXJuIFdIRVJFIGNs YXVzZQkJCVlFUwlTUUwvUEdRIHJlcXVpcmVkCitHMDEwCUV4cGxpY2l0IFdBTEsga2V5d29yZAkJ CU5PCQorRzAxMQlBZHZhbmNlZCBwYXRoIG1vZGVzOiBUUkFJTAkJCU5PCQorRzAxMglBZHZhbmNl ZCBwYXRoIG1vZGVzOiBTSU1QTEUJCQlOTwkKK0cwMTMJQWR2YW5jZWQgcGF0aCBtb2RlczogQUNZ Q0xJQwkJCU5PCQorRzAxNAlFeHBsaWNpdCBQQVRIL1BBVEhTIGtleXdvcmRzCQkJTk8JCitHMDE1 CUFsbCBwYXRoIHNlYXJjaDogZXhwbGljaXQgQUxMIGtleXdvcmQJCQlOTwkKK0cwMTYJQW55IHBh dGggc2VhcmNoCQkJTk8JCitHMDE3CUFsbCBzaG9ydGVzdCBwYXRoIHNlYXJjaAkJCU5PCQorRzAx OAlBbnkgc2hvcnRlc3QgcGF0aCBzZWFyY2gJCQlOTwkKK0cwMTkJQ291bnRlZCBzaG9ydGVzdCBw YXRoIHNlYXJjaAkJCU5PCQorRzAyMAlDb3VudGVkIHNob3J0ZXN0IGdyb3VwIHNlYXJjaAkJCU5P CQorRzAzMAlQYXRoIG11bHRpc2V0IGFsdGVybmF0aW9uCQkJTk8JCitHMDMxCVBhdGggbXVsdGlz ZXQgYWx0ZXJuYXRpb246IHZhcmlhYmxlIGxlbmd0aCBwYXRoIG9wZXJhbmRzCQkJTk8JCitHMDMy CVBhdGggcGF0dGVybiB1bmlvbgkJCU5PCQorRzAzMwlQYXRoIHBhdHRlcm4gdW5pb246IHZhcmlh YmxlIGxlbmd0aCBwYXRoIG9wZXJhbmRzCQkJTk8JCitHMDM0CVBhdGggY29uY2F0ZW5hdGlvbgkJ CVlFUwlTUUwvUEdRIHJlcXVpcmVkCitHMDM1CVF1YW50aWZpZWQgcGF0aHMJCQlOTwkKK0cwMzYJ UXVhbnRpZmllZCBlZGdlcwkJCU5PCQorRzAzNwlRdWVzdGlvbmVkIHBhdGhzCQkJTk8JCitHMDM4 CVBhcmVudGhlc2l6ZWQgcGF0aCBwYXR0ZXJuIGV4cHJlc3Npb24JCQlOTwkKK0cwMzkJU2ltcGxp ZmllZCBwYXRoIHBhdHRlcm4gZXhwcmVzc2lvbjogZnVsbCBkZWZhdWx0aW5nCQkJTk8JCitHMDQw CVZlcnRleCBwYXR0ZXJuCQkJWUVTCVNRTC9QR1EgcmVxdWlyZWQKK0cwNDEJTm9uLWxvY2FsIGVs ZW1lbnQgcGF0dGVybiBwcmVkaWNhdGVzCQkJTk8JCitHMDQyCUJhc2ljIGZ1bGwgZWRnZSBwYXR0 ZXJucwkJCVlFUwlTUUwvUEdRIHJlcXVpcmVkCitHMDQzCUNvbXBsZXRlIGZ1bGwgZWRnZSBwYXR0 ZXJucwkJCU5PCQorRzA0NAlCYXNpYyBhYmJyZXZpYXRlZCBlZGdlIHBhdHRlcm5zCQkJWUVTCQor RzA0NQlDb21wbGV0ZSBhYmJyZXZpYXRlZCBlZGdlIHBhdHRlcm5zCQkJTk8JCitHMDQ2CVJlbGF4 ZWQgdG9wb2xvZ2ljYWwgY29uc2lzdGVuY3k6IGFkamFjZW50IHZlcnRleCBwYXR0ZXJucwkJCU5P CQorRzA0NwlSZWxheGVkIHRvcG9sb2dpY2FsIGNvbnNpc3RlbmN5OiBjb25jaXNlIGVkZ2UgcGF0 dGVybnMJCQlOTwkKK0cwNDgJUGFyZW50aGVzaXplZCBwYXRoIHBhdHRlcm46IHN1YnBhdGggdmFy aWFibGUgZGVjbGFyYXRpb24JCQlOTwkKK0cwNDkJUGFyZW50aGVzaXplZCBwYXRoIHBhdHRlcm46 IHBhdGggbW9kZSBwcmVmaXgJCQlOTwkKK0cwNTAJUGFyZW50aGVzaXplZCBwYXRoIHBhdHRlcm46 IFdIRVJFIGNsYXVzZQkJCU5PCQorRzA1MQlQYXJlbnRoZXNpemVkIHBhdGggcGF0dGVybjogbm9u LWxvY2FsIHByZWRpY2F0ZXMJCQlOTwkKK0cwNjAJQm91bmRlZCBncmFwaCBwYXR0ZXJuIHF1YW50 aWZpZXJzCQkJTk8JCitHMDYxCVVuYm91bmRlZCBncmFwaCBwYXR0ZXJuIHF1YW50aWZpZXJzCQkJ Tk8JCitHMDcwCUxhYmVsIGV4cHJlc3Npb246IGxhYmVsIGRpc2p1bmN0aW9uCQkJTk8JU1FML1BH USByZXF1aXJlZAorRzA3MQlMYWJlbCBleHByZXNzaW9uOiBsYWJlbCBjb25qdW5jdGlvbgkJCU5P CQorRzA3MglMYWJlbCBleHByZXNzaW9uOiBsYWJlbCBuZWdhdGlvbgkJCU5PCQorRzA3MwlMYWJl bCBleHByZXNzaW9uOiBpbmRpdmlkdWFsIGxhYmVsIG5hbWUJCQlZRVMJU1FML1BHUSByZXF1aXJl ZAorRzA3NAlMYWJlbCBleHByZXNzaW9uOiB3aWxkY2FyZCBsYWJlbAkJCU5PCQorRzA3NQlQYXJl bnRoZXNpemVkIGxhYmVsIGV4cHJlc3Npb24JCQlOTwkKK0cwODAJU2ltcGxpZmllZCBwYXRoIHBh dHRlcm4gZXhwcmVzc2lvbjogYmFzaWMgZGVmYXVsdGluZwkJCU5PCQorRzA4MQlTaW1wbGlmaWVk IHBhdGggcGF0dGVybiBleHByZXNzaW9uOiBmdWxsIG92ZXJyaWRlcwkJCU5PCQorRzA4MglTaW1w bGlmaWVkIHBhdGggcGF0dGVybiBleHByZXNzaW9uOiBiYXNpYyBvdmVycmlkZXMJCQlOTwkKK0cw OTAJUHJvcGVydHkgcmVmZXJlbmNlCQkJWUVTCVNRTC9QR1EgcmVxdWlyZWQKK0cxMDAJRUxFTUVO VF9JRCBmdW5jdGlvbgkJCU5PCQorRzExMAlJUyBESVJFQ1RFRCBwcmVkaWNhdGUJCQlOTwkKK0cx MTEJSVMgTEFCRUxFRCBwcmVkaWNhdGUJCQlOTwkKK0cxMTIJSVMgU09VUkNFIGFuZCBJUyBERVNU SU5BVElPTiBwcmVkaWNhdGUJCQlOTwkKK0cxMTMJQUxMX0RJRkZFUkVOVCBwcmVkaWNhdGUJCQlO TwkKK0cxMTQJU0FNRSBwcmVkaWNhdGUJCQlOTwkKK0cxMTUJUFJPUEVSVFlfRVhJU1RTIHByZWRp Y2F0ZQkJCU5PCQorRzEyMAlXaXRoaW4tbWF0Y2ggYWdncmVnYXRlcwkJCU5PCQorRzgwMAlQQVRI X05BTUUgZnVuY3Rpb24JCQlOTwkKK0c4MDEJRUxFTUVOVF9OVU1CRVIgZnVuY3Rpb24JCQlOTwkK K0c4MDIJUEFUSF9MRU5HVEggZnVuY3Rpb24JCQlOTwkKK0c4MDMJTUFUQ0hOVU0gZnVuY3Rpb24J CQlOTwkKK0c4MTAJSVMgQk9VTkQgcHJlZGljYXRlCQkJTk8JCitHODExCUlTIEJPVU5EIHByZWRp Y2F0ZTogQVMgb3B0aW9uCQkJTk8JCitHODIwCUJJTkRJTkdfQ09VTlQJCQlOTwkKK0c4MzAJQ29s b24gaW4gJ2lzIGxhYmVsJyBleHByZXNzaW9uCQkJWUVTCQorRzg0MAlQYXRoLW9yZGVyZWQgYWdn cmVnYXRlcwkJCU5PCQorRzg1MAlTUUwvUEdRIEluZm9ybWF0aW9uIFNjaGVtYSB2aWV3cwkJCVlF UwkKK0c4NjAJR0VUIERJQUdOT1NUSUNTIGVuaGFuY2VtZW50cyBmb3IgU1FMLXByb3BlcnR5IGdy YXBocwkJCU5PCQorRzkwMAlHUkFQSF9UQUJMRQkJCVlFUwlTUUwvUEdRIHJlcXVpcmVkCitHOTAx CUdSQVBIX1RBQkxFOiBPTkUgUk9XIFBFUiBWRVJURVgJCQlOTwkKK0c5MDIJR1JBUEhfVEFCTEU6 IE9ORSBST1cgUEVSIFNURVAJCQlOTwkKK0c5MDMJR1JBUEhfVEFCTEU6IGV4cGxpY2l0IE9ORSBS T1cgUEVSIE1BVENIIGtleXdvcmRzCQkJTk8JCitHOTA0CUFsbCBwcm9wZXJ0aWVzIHJlZmVyZW5j ZQkJCU5PCQorRzkwNQlHUkFQSF9UQUJMRTogb3B0aW9uYWwgQ09MVU1OUyBjbGF1c2UJCQlOTwkK K0c5MDYJR1JBUEhfVEFCTEU6IGV4cGxpY2l0IEVYUE9SVCBBTEwJCQlOTwkKK0c5MDcJR1JBUEhf VEFCTEU6IEVYUE9SVCBBTEwgRVhDRVBUCQkJTk8JCitHOTA4CUdSQVBIX1RBQkxFOiBFWFBPUlQg U0lOR0xFVE9OUyBsaXN0CQkJTk8JCitHOTA5CUdSQVBIX1RBQkxFOiBleHBsaWNpdCBFWFBPUlQg Tk8gU0lOR0xFVE9OUwkJCU5PCQorRzkxMAlHUkFQSF9UQUJMRTogJ2luIHBhdGhzIGNsYXVzZScJ CQlOTwkKK0c5MjAJRERMLWJhc2VkIFNRTC1wcm9wZXJ0eSBncmFwaHMJCQlZRVMJU1FML1BHUSBy ZXF1aXJlZAorRzkyMQlFbXB0eSBTUUwtcHJvcGVydHkgZ3JhcGgJCQlZRVMJCitHOTIyCVZpZXdz IGFzIGVsZW1lbnQgdGFibGVzCQkJWUVTCQorRzkyMwlJbi1saW5lIHZpZXdzIGFzIGVsZW1lbnQg dGFibGVzCQkJTk8JCitHOTI0CUV4cGxpY2l0IGtleSBjbGF1c2UgZm9yIGVsZW1lbnQgdGFibGVz CQkJWUVTCVNRTC9QR1EgcmVxdWlyZWQKK0c5MjUJRXhwbGljaXQgbGFiZWwgYW5kIHByb3BlcnRp ZXMgY2xhdXNlIGZvciBlbGVtZW50IHRhYmxlcwkJCVlFUwlTUUwvUEdRIHJlcXVpcmVkCitHOTI2 CU1vcmUgdGhhbiBvbmUgbGFiZWwgZm9yIHZlcnRleCB0YWJsZXMJCQlZRVMJCitHOTI3CU1vcmUg dGhhbiBvbmUgbGFiZWwgZm9yIGVkZ2UgdGFibGVzCQkJWUVTCQorRzkyOAlWYWx1ZSBleHByZXNz aW9ucyBhcyBwcm9wZXJ0aWVzIGFuZCByZW5hbWluZyBvZiBwcm9wZXJ0aWVzCQkJWUVTCQorRzky OQlMYWJlbHMgYW5kIHByb3BlcnRpZXM6IEVYQ0VQVCBsaXN0CQkJTk8JCitHOTQwCU11bHRpLXNv dXJjZWQvZGVzdGluZWQgZWRnZXMJCQlZRVMJCitHOTQxCUltcGxpY2l0IHJlbW92YWwgb2YgaW5j b21wbGV0ZSBlZGdlcwkJCVlFUwkKK0c5NTAJQWx0ZXIgcHJvcGVydHkgZ3JhcGggc3RhdGVtZW50 OiBBREQvRFJPUCBlbGVtZW50IHRhYmxlCQkJWUVTCQorRzk2MAlBbHRlciBlbGVtZW50IHRhYmxl IGRlZmluaXRpb246IEFERC9EUk9QIExBQkVMCQkJWUVTCQorRzk3MAlBbHRlciBlbGVtZW50IHRh YmxlIGRlZmluaXRpb246IEFMVEVSIExBQkVMCQkJWUVTCQorRzk4MAlEUk9QIFBST1BFUlRZIEdS QVBIOiBDQVNDQURFIGRyb3AgYmVoYXZpb3IJCQlZRVMJCiBSMDEwCVJvdyBwYXR0ZXJuIHJlY29n bml0aW9uOiBGUk9NIGNsYXVzZQkJCU5PCQogUjAyMAlSb3cgcGF0dGVybiByZWNvZ25pdGlvbjog V0lORE9XIGNsYXVzZQkJCU5PCQogUjAzMAlSb3cgcGF0dGVybiByZWNvZ25pdGlvbjogZnVsbCBh Z2dyZWdhdGUgc3VwcG9ydAkJCU5PCQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv TWFrZWZpbGUgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQppbmRleCA0OGY3MzQ4Zjkx Yy4uNjI2MGQ2Yjc5ZWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxl CisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCkBAIC00Niw2ICs0Niw3IEBAIE9C SlMgPSBcCiAJcG9ydGFsY21kcy5vIFwKIAlwcmVwYXJlLm8gXAogCXByb2NsYW5nLm8gXAorCXBy b3BncmFwaGNtZHMubyBcCiAJcHVibGljYXRpb25jbWRzLm8gXAogCXNjaGVtYWNtZHMubyBcCiAJ c2VjbGFiZWwubyBcCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYwppbmRleCBhYmI4MGZkMTIyNC4uYjgzZjY5NmYw NDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvYWx0ZXIuYwpAQCAtMzgwLDYgKzM4MCw3IEBAIEV4ZWNSZW5hbWVTdG10 KFJlbmFtZVN0bXQgKnN0bXQpCiAJCWNhc2UgT0JKRUNUX01BVFZJRVc6CiAJCWNhc2UgT0JKRUNU X0lOREVYOgogCQljYXNlIE9CSkVDVF9GT1JFSUdOX1RBQkxFOgorCQljYXNlIE9CSkVDVF9QUk9Q R1JBUEg6CiAJCQlyZXR1cm4gUmVuYW1lUmVsYXRpb24oc3RtdCk7CiAKIAkJY2FzZSBPQkpFQ1Rf Q09MVU1OOgpAQCAtNTMzLDYgKzUzNCw3IEBAIEV4ZWNBbHRlck9iamVjdFNjaGVtYVN0bXQoQWx0 ZXJPYmplY3RTY2hlbWFTdG10ICpzdG10LAogCQljYXNlIE9CSkVDVF9UQUJMRToKIAkJY2FzZSBP QkpFQ1RfVklFVzoKIAkJY2FzZSBPQkpFQ1RfTUFUVklFVzoKKwkJY2FzZSBPQkpFQ1RfUFJPUEdS QVBIOgogCQkJYWRkcmVzcyA9IEFsdGVyVGFibGVOYW1lc3BhY2Uoc3RtdCwKIAkJCQkJCQkJCQkg IG9sZFNjaGVtYUFkZHIgPyAmb2xkTnNwT2lkIDogTlVMTCk7CiAJCQlicmVhazsKQEAgLTg2Niw2 ICs4NjgsNyBAQCBFeGVjQWx0ZXJPd25lclN0bXQoQWx0ZXJPd25lclN0bXQgKnN0bXQpCiAJCWNh c2UgT0JKRUNUX09QQ0xBU1M6CiAJCWNhc2UgT0JKRUNUX09QRkFNSUxZOgogCQljYXNlIE9CSkVD VF9QUk9DRURVUkU6CisJCWNhc2UgT0JKRUNUX1BST1BHUkFQSDoKIAkJY2FzZSBPQkpFQ1RfUk9V VElORToKIAkJY2FzZSBPQkpFQ1RfU1RBVElTVElDX0VYVDoKIAkJY2FzZSBPQkpFQ1RfVEFCTEVT UEFDRToKQEAgLTg3NCwxMSArODc3LDI2IEBAIEV4ZWNBbHRlck93bmVyU3RtdChBbHRlck93bmVy U3RtdCAqc3RtdCkKIAkJCXsKIAkJCQlPYmplY3RBZGRyZXNzIGFkZHJlc3M7CiAKLQkJCQlhZGRy ZXNzID0gZ2V0X29iamVjdF9hZGRyZXNzKHN0bXQtPm9iamVjdFR5cGUsCi0JCQkJCQkJCQkJCSBz dG10LT5vYmplY3QsCi0JCQkJCQkJCQkJCSBOVUxMLAotCQkJCQkJCQkJCQkgQWNjZXNzRXhjbHVz aXZlTG9jaywKLQkJCQkJCQkJCQkJIGZhbHNlKTsKKwkJCQlpZiAoc3RtdC0+cmVsYXRpb24pCisJ CQkJeworCQkJCQlSZWxhdGlvbglyZWxhdGlvbjsKKworCQkJCQlhZGRyZXNzID0gZ2V0X29iamVj dF9hZGRyZXNzX3J2KHN0bXQtPm9iamVjdFR5cGUsCisJCQkJCQkJCQkJCQkJc3RtdC0+cmVsYXRp b24sCisJCQkJCQkJCQkJCQkJTklMLAorCQkJCQkJCQkJCQkJCSZyZWxhdGlvbiwKKwkJCQkJCQkJ CQkJCQlBY2Nlc3NFeGNsdXNpdmVMb2NrLAorCQkJCQkJCQkJCQkJCWZhbHNlKTsKKwkJCQkJcmVs YXRpb25fY2xvc2UocmVsYXRpb24sIE5vTG9jayk7CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7CisJ CQkJCWFkZHJlc3MgPSBnZXRfb2JqZWN0X2FkZHJlc3Moc3RtdC0+b2JqZWN0VHlwZSwKKwkJCQkJ CQkJCQkJCSBzdG10LT5vYmplY3QsCisJCQkJCQkJCQkJCQkgTlVMTCwKKwkJCQkJCQkJCQkJCSBB Y2Nlc3NFeGNsdXNpdmVMb2NrLAorCQkJCQkJCQkJCQkJIGZhbHNlKTsKKwkJCQl9CiAKIAkJCQlB bHRlck9iamVjdE93bmVyX2ludGVybmFsKGFkZHJlc3MuY2xhc3NJZCwgYWRkcmVzcy5vYmplY3RJ ZCwKIAkJCQkJCQkJCQkgIG5ld293bmVyKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2Ryb3BjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCmluZGV4IDg1 ZWVjN2UzOTQ3Li44ZDZmYWYxZWRkNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv ZHJvcGNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCkBAIC00ODIs NiArNDgyLDcgQEAgZG9lc19ub3RfZXhpc3Rfc2tpcHBpbmcoT2JqZWN0VHlwZSBvYmp0eXBlLCBO b2RlICpvYmplY3QpCiAJCWNhc2UgT0JKRUNUX0ZPUkVJR05fVEFCTEU6CiAJCWNhc2UgT0JKRUNU X0lOREVYOgogCQljYXNlIE9CSkVDVF9NQVRWSUVXOgorCQljYXNlIE9CSkVDVF9QUk9QR1JBUEg6 CiAJCWNhc2UgT0JKRUNUX1JPTEU6CiAJCWNhc2UgT0JKRUNUX1NFUVVFTkNFOgogCQljYXNlIE9C SkVDVF9TVUJTQ1JJUFRJT046CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVu dF90cmlnZ2VyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKaW5kZXgg MWY1ODcyNTU0ZDQuLmY0MTUzN2RiY2M2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy9ldmVudF90cmlnZ2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dl ci5jCkBAIC0yMTcwLDYgKzIxNzAsNyBAQCBzdHJpbmdpZnlfZ3JhbnRfb2JqdHlwZShPYmplY3RU eXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX09QRVJBVE9SOgogCQljYXNlIE9CSkVDVF9PUEZB TUlMWToKIAkJY2FzZSBPQkpFQ1RfUE9MSUNZOgorCQljYXNlIE9CSkVDVF9QUk9QR1JBUEg6CiAJ CWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9OQU1F U1BBQ0U6CiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OX1JFTDoKQEAgLTIyNTQsNiArMjI1NSw3 IEBAIHN0cmluZ2lmeV9hZGVmcHJpdnNfb2JqdHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNh c2UgT0JKRUNUX09QRkFNSUxZOgogCQljYXNlIE9CSkVDVF9QQVJBTUVURVJfQUNMOgogCQljYXNl IE9CSkVDVF9QT0xJQ1k6CisJCWNhc2UgT0JKRUNUX1BST1BHUkFQSDoKIAkJY2FzZSBPQkpFQ1Rf UFVCTElDQVRJT046CiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OX05BTUVTUEFDRToKIAkJY2Fz ZSBPQkpFQ1RfUFVCTElDQVRJT05fUkVMOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZAppbmRleCA2 ZGQwMGE0YWJkZS4uMzRkZDEyZDdkNTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L21lc29uLmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCkBAIC0z NCw2ICszNCw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ3BvcnRhbGNtZHMuYycs CiAgICdwcmVwYXJlLmMnLAogICAncHJvY2xhbmcuYycsCisgICdwcm9wZ3JhcGhjbWRzLmMnLAog ICAncHVibGljYXRpb25jbWRzLmMnLAogICAnc2NoZW1hY21kcy5jJywKICAgJ3NlY2xhYmVsLmMn LApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJvcGdyYXBoY21kcy5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvcHJvcGdyYXBoY21kcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi44NDMwYmZkYTdiNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3Byb3BncmFwaGNtZHMuYwpAQCAtMCwwICsxLDE3MDYgQEAKKy8qLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICoKKyAqIHByb3BncmFwaGNtZHMuYworICoJICBwcm9wZXJ0eSBncmFwaCBt YW5pcHVsYXRpb24KKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwgUG9z dGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAo YykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICog c3JjL2JhY2tlbmQvY29tbWFuZHMvcHJvcGdyYXBoY21kcy5jCisgKgorICotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgKi8KKyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAiYWNjZXNzL2dlbmFt LmgiCisjaW5jbHVkZSAiYWNjZXNzL2h0dXBfZGV0YWlscy5oIgorI2luY2x1ZGUgImFjY2Vzcy90 YWJsZS5oIgorI2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9jYXRh bG9nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9pbmRleGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cv bmFtZXNwYWNlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jbGFzcy5oIgorI2luY2x1ZGUgImNh dGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnQuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3Bn cmFwaF9lbGVtZW50X2xhYmVsLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhfbGFi ZWwuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eS5oIgor I2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX3Byb3BlcnR5LmgiCisjaW5jbHVkZSAiY29t bWFuZHMvcHJvcGdyYXBoY21kcy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlY21kcy5oIgor I2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9yZWxh dGlvbi5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV90YXJnZXQuaCIKKyNpbmNsdWRlICJ1dGls cy9hcnJheS5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMv Zm1ncm9pZHMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGls cy9yZWwuaCIKKyNpbmNsdWRlICJ1dGlscy9ydWxldXRpbHMuaCIKKyNpbmNsdWRlICJ1dGlscy9z eXNjYWNoZS5oIgorCisKK3N0cnVjdCBlbGVtZW50X2luZm8KK3sKKwlPaWQJCQllbGVtZW50aWQ7 CisJY2hhcgkJa2luZDsKKwlPaWQJCQlyZWxpZDsKKwljaGFyCSAgICphbGlhc25hbWU7CisJQXJy YXlUeXBlICAqa2V5OworCisJY2hhcgkgICAqc3JjdmVydGV4OworCU9pZAkJCXNyY3ZlcnRleGlk OworCU9pZAkJCXNyY3JlbGlkOworCUFycmF5VHlwZSAgKnNyY2tleTsKKwlBcnJheVR5cGUgICpz cmNyZWY7CisKKwljaGFyCSAgICpkZXN0dmVydGV4OworCU9pZAkJCWRlc3R2ZXJ0ZXhpZDsKKwlP aWQJCQlkZXN0cmVsaWQ7CisJQXJyYXlUeXBlICAqZGVzdGtleTsKKwlBcnJheVR5cGUgICpkZXN0 cmVmOworCisJTGlzdAkgICAqbGFiZWxzOworfTsKKworCitzdGF0aWMgQXJyYXlUeXBlICpwcm9w Z3JhcGhfZWxlbWVudF9nZXRfa2V5KFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgTGlzdCAqa2V5 Y29scywgUmVsYXRpb24gZWxlbWVudF9yZWwsCisJCQkJCQkJCQkJCWNvbnN0IGNoYXIgKmFsaWFz bmFtZSwgaW50IGxvY2F0aW9uKTsKK3N0YXRpYyB2b2lkIHByb3BncmFwaF9lZGdlX2dldF9yZWZf a2V5cyhQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0IExpc3QgKmtleWNvbHMsIGNvbnN0IExpc3Qg KnJlZmNvbHMsCisJCQkJCQkJCQkJUmVsYXRpb24gZWRnZV9yZWwsIFJlbGF0aW9uIHJlZl9yZWws CisJCQkJCQkJCQkJY29uc3QgY2hhciAqYWxpYXNuYW1lLCBpbnQgbG9jYXRpb24sIGNvbnN0IGNo YXIgKnR5cGUsCisJCQkJCQkJCQkJQXJyYXlUeXBlICoqb3V0a2V5LCBBcnJheVR5cGUgKipvdXRy ZWYpOworc3RhdGljIEFycmF5VHlwZSAqYXJyYXlfZnJvbV9jb2x1bW5fbGlzdChQYXJzZVN0YXRl ICpwc3RhdGUsIGNvbnN0IExpc3QgKmNvbG5hbWVzLCBpbnQgbG9jYXRpb24sIFJlbGF0aW9uIGVs ZW1lbnRfcmVsKTsKK3N0YXRpYyBBcnJheVR5cGUgKmFycmF5X2Zyb21fYXR0bnVtcyhpbnQgbnVt YXR0cnMsIGNvbnN0IEF0dHJOdW1iZXIgKmF0dG51bXMpOworc3RhdGljIE9pZAlpbnNlcnRfZWxl bWVudF9yZWNvcmQoT2JqZWN0QWRkcmVzcyBwZ2FkZHJlc3MsIHN0cnVjdCBlbGVtZW50X2luZm8g KmVpbmZvKTsKK3N0YXRpYyBPaWQJaW5zZXJ0X2xhYmVsX3JlY29yZChPaWQgZ3JhcGhpZCwgT2lk IHBlb2lkLCBjb25zdCBjaGFyICpsYWJlbCk7CitzdGF0aWMgdm9pZCBpbnNlcnRfcHJvcGVydHlf cmVjb3JkcyhPaWQgZ3JhcGhpZCwgT2lkIGVsbGFiZWxvaWQsIE9pZCBwZ2VyZWxpZCwgY29uc3Qg UHJvcEdyYXBoUHJvcGVydGllcyAqcHJvcGVydGllcyk7CitzdGF0aWMgdm9pZCBpbnNlcnRfcHJv cGVydHlfcmVjb3JkKE9pZCBncmFwaGlkLCBPaWQgZWxsYWJlbG9pZCwgT2lkIHBnZXJlbGlkLCBj b25zdCBjaGFyICpwcm9wbmFtZSwgY29uc3QgRXhwciAqZXhwcik7CitzdGF0aWMgdm9pZCBjaGVj a19lbGVtZW50X3Byb3BlcnRpZXMoT2lkIHBlb2lkKTsKK3N0YXRpYyB2b2lkIGNoZWNrX2VsZW1l bnRfbGFiZWxfcHJvcGVydGllcyhPaWQgZWxsYWJlbG9pZCk7CitzdGF0aWMgdm9pZCBjaGVja19h bGxfbGFiZWxzX3Byb3BlcnRpZXMoT2lkIHBncmVsaWQpOworc3RhdGljIE9pZAlnZXRfdmVydGV4 X29pZChQYXJzZVN0YXRlICpwc3RhdGUsIE9pZCBwZ3JlbGlkLCBjb25zdCBjaGFyICphbGlhcywg aW50IGxvY2F0aW9uKTsKK3N0YXRpYyBPaWQJZ2V0X2VkZ2Vfb2lkKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgT2lkIHBncmVsaWQsIGNvbnN0IGNoYXIgKmFsaWFzLCBpbnQgbG9jYXRpb24pOworc3RhdGlj IE9pZAlnZXRfZWxlbWVudF9yZWxpZChPaWQgcGVpZCk7CitzdGF0aWMgTGlzdCAqZ2V0X2dyYXBo X2xhYmVsX2lkcyhPaWQgZ3JhcGhpZCk7CitzdGF0aWMgTGlzdCAqZ2V0X2xhYmVsX2VsZW1lbnRf bGFiZWxfaWRzKE9pZCBsYWJlbGlkKTsKK3N0YXRpYyBMaXN0ICpnZXRfZWxlbWVudF9sYWJlbF9w cm9wZXJ0eV9uYW1lcyhPaWQgZWxsYWJlbG9pZCk7CitzdGF0aWMgTGlzdCAqZ2V0X2dyYXBoX3By b3BlcnR5X2lkcyhPaWQgZ3JhcGhpZCk7CisKKworLyoKKyAqIENSRUFURSBQUk9QRVJUWSBHUkFQ SAorICovCitPYmplY3RBZGRyZXNzCitDcmVhdGVQcm9wR3JhcGgoUGFyc2VTdGF0ZSAqcHN0YXRl LCBjb25zdCBDcmVhdGVQcm9wR3JhcGhTdG10ICpzdG10KQoreworCUNyZWF0ZVN0bXQgKmNzdG10 ID0gbWFrZU5vZGUoQ3JlYXRlU3RtdCk7CisJY2hhcgkJY29tcG9uZW50c19wZXJzaXN0ZW5jZTsK KwlMaXN0Q2VsbCAgICpsYzsKKwlPYmplY3RBZGRyZXNzIHBnYWRkcmVzczsKKwlMaXN0CSAgICp2 ZXJ0ZXhfaW5mb3MgPSBOSUw7CisJTGlzdAkgICAqZWRnZV9pbmZvcyA9IE5JTDsKKwlMaXN0CSAg ICplbGVtZW50X2FsaWFzZXMgPSBOSUw7CisJTGlzdAkgICAqZWxlbWVudF9vaWRzID0gTklMOwor CisJaWYgKHN0bXQtPnBnbmFtZS0+cmVscGVyc2lzdGVuY2UgPT0gUkVMUEVSU0lTVEVOQ0VfVU5M T0dHRUQpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJS T1IpLAorCQkJCSBlcnJtc2coInByb3BlcnR5IGdyYXBocyBjYW5ub3QgYmUgdW5sb2dnZWQgYmVj YXVzZSB0aGV5IGRvIG5vdCBoYXZlIHN0b3JhZ2UiKSkpOworCisJY29tcG9uZW50c19wZXJzaXN0 ZW5jZSA9IFJFTFBFUlNJU1RFTkNFX1BFUk1BTkVOVDsKKworCWZvcmVhY2gobGMsIHN0bXQtPnZl cnRleF90YWJsZXMpCisJeworCQlQcm9wR3JhcGhWZXJ0ZXggKnZlcnRleCA9IGxmaXJzdF9ub2Rl KFByb3BHcmFwaFZlcnRleCwgbGMpOworCQlzdHJ1Y3QgZWxlbWVudF9pbmZvICp2aW5mbzsKKwkJ UmVsYXRpb24JcmVsOworCisJCXZpbmZvID0gcGFsbG9jMF9vYmplY3Qoc3RydWN0IGVsZW1lbnRf aW5mbyk7CisJCXZpbmZvLT5raW5kID0gUEdFS0lORF9WRVJURVg7CisKKwkJdmluZm8tPnJlbGlk ID0gUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKHZlcnRleC0+dnRhYmxlLCBBY2Nlc3NTaGFyZUxv Y2ssIDAsIFJhbmdlVmFyQ2FsbGJhY2tPd25zUmVsYXRpb24sIE5VTEwpOworCisJCXJlbCA9IHRh YmxlX29wZW4odmluZm8tPnJlbGlkLCBOb0xvY2spOworCisJCWlmIChyZWwtPnJkX3JlbC0+cmVs cGVyc2lzdGVuY2UgPT0gUkVMUEVSU0lTVEVOQ0VfVEVNUCkKKwkJCWNvbXBvbmVudHNfcGVyc2lz dGVuY2UgPSBSRUxQRVJTSVNURU5DRV9URU1QOworCisJCWlmICh2ZXJ0ZXgtPnZ0YWJsZS0+YWxp YXMpCisJCQl2aW5mby0+YWxpYXNuYW1lID0gdmVydGV4LT52dGFibGUtPmFsaWFzLT5hbGlhc25h bWU7CisJCWVsc2UKKwkJCXZpbmZvLT5hbGlhc25hbWUgPSB2ZXJ0ZXgtPnZ0YWJsZS0+cmVsbmFt ZTsKKworCQlpZiAobGlzdF9tZW1iZXIoZWxlbWVudF9hbGlhc2VzLCBtYWtlU3RyaW5nKHZpbmZv LT5hbGlhc25hbWUpKSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVf RFVQTElDQVRFX1RBQkxFKSwKKwkJCQkJIGVycm1zZygiYWxpYXMgXCIlc1wiIHVzZWQgbW9yZSB0 aGFuIG9uY2UgYXMgZWxlbWVudCB0YWJsZSIsIHZpbmZvLT5hbGlhc25hbWUpLAorCQkJCQkgcGFy c2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgdmVydGV4LT5sb2NhdGlvbikpKTsKKworCQl2aW5mby0+ a2V5ID0gcHJvcGdyYXBoX2VsZW1lbnRfZ2V0X2tleShwc3RhdGUsIHZlcnRleC0+dmtleSwgcmVs LCB2aW5mby0+YWxpYXNuYW1lLCB2ZXJ0ZXgtPmxvY2F0aW9uKTsKKworCQl2aW5mby0+bGFiZWxz ID0gdmVydGV4LT5sYWJlbHM7CisKKwkJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOworCisJCXZl cnRleF9pbmZvcyA9IGxhcHBlbmQodmVydGV4X2luZm9zLCB2aW5mbyk7CisKKwkJZWxlbWVudF9h bGlhc2VzID0gbGFwcGVuZChlbGVtZW50X2FsaWFzZXMsIG1ha2VTdHJpbmcodmluZm8tPmFsaWFz bmFtZSkpOworCX0KKworCWZvcmVhY2gobGMsIHN0bXQtPmVkZ2VfdGFibGVzKQorCXsKKwkJUHJv cEdyYXBoRWRnZSAqZWRnZSA9IGxmaXJzdF9ub2RlKFByb3BHcmFwaEVkZ2UsIGxjKTsKKwkJc3Ry dWN0IGVsZW1lbnRfaW5mbyAqZWluZm87CisJCVJlbGF0aW9uCXJlbDsKKwkJTGlzdENlbGwgICAq bGMyOworCQlPaWQJCQlzcmNyZWxpZDsKKwkJT2lkCQkJZGVzdHJlbGlkOworCQlSZWxhdGlvbglz cmNyZWw7CisJCVJlbGF0aW9uCWRlc3RyZWw7CisKKwkJZWluZm8gPSBwYWxsb2MwX29iamVjdChz dHJ1Y3QgZWxlbWVudF9pbmZvKTsKKwkJZWluZm8tPmtpbmQgPSBQR0VLSU5EX0VER0U7CisKKwkJ ZWluZm8tPnJlbGlkID0gUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKGVkZ2UtPmV0YWJsZSwgQWNj ZXNzU2hhcmVMb2NrLCAwLCBSYW5nZVZhckNhbGxiYWNrT3duc1JlbGF0aW9uLCBOVUxMKTsKKwor CQlyZWwgPSB0YWJsZV9vcGVuKGVpbmZvLT5yZWxpZCwgTm9Mb2NrKTsKKworCQlpZiAocmVsLT5y ZF9yZWwtPnJlbHBlcnNpc3RlbmNlID09IFJFTFBFUlNJU1RFTkNFX1RFTVApCisJCQljb21wb25l bnRzX3BlcnNpc3RlbmNlID0gUkVMUEVSU0lTVEVOQ0VfVEVNUDsKKworCQlpZiAoZWRnZS0+ZXRh YmxlLT5hbGlhcykKKwkJCWVpbmZvLT5hbGlhc25hbWUgPSBlZGdlLT5ldGFibGUtPmFsaWFzLT5h bGlhc25hbWU7CisJCWVsc2UKKwkJCWVpbmZvLT5hbGlhc25hbWUgPSBlZGdlLT5ldGFibGUtPnJl bG5hbWU7CisKKwkJaWYgKGxpc3RfbWVtYmVyKGVsZW1lbnRfYWxpYXNlcywgbWFrZVN0cmluZyhl aW5mby0+YWxpYXNuYW1lKSkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJD T0RFX0RVUExJQ0FURV9UQUJMRSksCisJCQkJCSBlcnJtc2coImFsaWFzIFwiJXNcIiB1c2VkIG1v cmUgdGhhbiBvbmNlIGFzIGVsZW1lbnQgdGFibGUiLCBlaW5mby0+YWxpYXNuYW1lKSwKKwkJCQkJ IHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGVkZ2UtPmxvY2F0aW9uKSkpOworCisJCWVpbmZv LT5rZXkgPSBwcm9wZ3JhcGhfZWxlbWVudF9nZXRfa2V5KHBzdGF0ZSwgZWRnZS0+ZWtleSwgcmVs LCBlaW5mby0+YWxpYXNuYW1lLCBlZGdlLT5sb2NhdGlvbik7CisKKwkJZWluZm8tPnNyY3ZlcnRl eCA9IGVkZ2UtPmVzcmN2ZXJ0ZXg7CisJCWVpbmZvLT5kZXN0dmVydGV4ID0gZWRnZS0+ZWRlc3R2 ZXJ0ZXg7CisKKwkJc3JjcmVsaWQgPSAwOworCQlkZXN0cmVsaWQgPSAwOworCQlmb3JlYWNoKGxj MiwgdmVydGV4X2luZm9zKQorCQl7CisJCQlzdHJ1Y3QgZWxlbWVudF9pbmZvICp2aW5mbyA9IGxm aXJzdChsYzIpOworCisJCQlpZiAoc3RyY21wKHZpbmZvLT5hbGlhc25hbWUsIGVkZ2UtPmVzcmN2 ZXJ0ZXgpID09IDApCisJCQkJc3JjcmVsaWQgPSB2aW5mby0+cmVsaWQ7CisKKwkJCWlmIChzdHJj bXAodmluZm8tPmFsaWFzbmFtZSwgZWRnZS0+ZWRlc3R2ZXJ0ZXgpID09IDApCisJCQkJZGVzdHJl bGlkID0gdmluZm8tPnJlbGlkOworCisJCQlpZiAoc3JjcmVsaWQgJiYgZGVzdHJlbGlkKQorCQkJ CWJyZWFrOworCQl9CisJCWlmICghc3JjcmVsaWQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQko ZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCQkgZXJybXNn KCJzb3VyY2UgdmVydGV4IFwiJXNcIiBvZiBlZGdlIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJ CQkJCQkJZWRnZS0+ZXNyY3ZlcnRleCwgZWluZm8tPmFsaWFzbmFtZSksCisJCQkJCSBwYXJzZXJf ZXJycG9zaXRpb24ocHN0YXRlLCBlZGdlLT5sb2NhdGlvbikpKTsKKwkJaWYgKCFkZXN0cmVsaWQp CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNU X0RFRklOSVRJT04pLAorCQkJCQkgZXJybXNnKCJkZXN0aW5hdGlvbiB2ZXJ0ZXggXCIlc1wiIG9m IGVkZ2UgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCQllZGdlLT5lZGVzdHZlcnRleCwg ZWluZm8tPmFsaWFzbmFtZSksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBlZGdl LT5sb2NhdGlvbikpKTsKKworCQlzcmNyZWwgPSB0YWJsZV9vcGVuKHNyY3JlbGlkLCBOb0xvY2sp OworCQlkZXN0cmVsID0gdGFibGVfb3BlbihkZXN0cmVsaWQsIE5vTG9jayk7CisKKwkJcHJvcGdy YXBoX2VkZ2VfZ2V0X3JlZl9rZXlzKHBzdGF0ZSwgZWRnZS0+ZXNyY2tleSwgZWRnZS0+ZXNyY3Zl cnRleGNvbHMsIHJlbCwgc3JjcmVsLAorCQkJCQkJCQkJZWluZm8tPmFsaWFzbmFtZSwgZWRnZS0+ bG9jYXRpb24sICJTT1VSQ0UiLAorCQkJCQkJCQkJJmVpbmZvLT5zcmNrZXksICZlaW5mby0+c3Jj cmVmKTsKKwkJcHJvcGdyYXBoX2VkZ2VfZ2V0X3JlZl9rZXlzKHBzdGF0ZSwgZWRnZS0+ZWRlc3Rr ZXksIGVkZ2UtPmVkZXN0dmVydGV4Y29scywgcmVsLCBkZXN0cmVsLAorCQkJCQkJCQkJZWluZm8t PmFsaWFzbmFtZSwgZWRnZS0+bG9jYXRpb24sICJERVNUSU5BVElPTiIsCisJCQkJCQkJCQkmZWlu Zm8tPmRlc3RrZXksICZlaW5mby0+ZGVzdHJlZik7CisKKwkJZWluZm8tPmxhYmVscyA9IGVkZ2Ut PmxhYmVsczsKKworCQl0YWJsZV9jbG9zZShkZXN0cmVsLCBOb0xvY2spOworCQl0YWJsZV9jbG9z ZShzcmNyZWwsIE5vTG9jayk7CisKKwkJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOworCisJCWVk Z2VfaW5mb3MgPSBsYXBwZW5kKGVkZ2VfaW5mb3MsIGVpbmZvKTsKKworCQllbGVtZW50X2FsaWFz ZXMgPSBsYXBwZW5kKGVsZW1lbnRfYWxpYXNlcywgbWFrZVN0cmluZyhlaW5mby0+YWxpYXNuYW1l KSk7CisJfQorCisJY3N0bXQtPnJlbGF0aW9uID0gc3RtdC0+cGduYW1lOworCWNzdG10LT5vbmNv bW1pdCA9IE9OQ09NTUlUX05PT1A7CisKKwkvKgorCSAqIEF1dG9tYXRpY2FsbHkgbWFrZSBpdCB0 ZW1wb3JhcnkgaWYgYW55IGNvbXBvbmVudCB0YWJsZXMgYXJlIHRlbXBvcmFyeQorCSAqIChzZWUg YWxzbyBEZWZpbmVWaWV3KCkpLgorCSAqLworCWlmIChzdG10LT5wZ25hbWUtPnJlbHBlcnNpc3Rl bmNlID09IFJFTFBFUlNJU1RFTkNFX1BFUk1BTkVOVAorCQkmJiBjb21wb25lbnRzX3BlcnNpc3Rl bmNlID09IFJFTFBFUlNJU1RFTkNFX1RFTVApCisJeworCQljc3RtdC0+cmVsYXRpb24gPSBjb3B5 T2JqZWN0KGNzdG10LT5yZWxhdGlvbik7CisJCWNzdG10LT5yZWxhdGlvbi0+cmVscGVyc2lzdGVu Y2UgPSBSRUxQRVJTSVNURU5DRV9URU1QOworCQllcmVwb3J0KE5PVElDRSwKKwkJCQkoZXJybXNn KCJwcm9wZXJ0eSBncmFwaCBcIiVzXCIgd2lsbCBiZSB0ZW1wb3JhcnkiLAorCQkJCQkJc3RtdC0+ cGduYW1lLT5yZWxuYW1lKSkpOworCX0KKworCXBnYWRkcmVzcyA9IERlZmluZVJlbGF0aW9uKGNz dG10LCBSRUxLSU5EX1BST1BHUkFQSCwgSW52YWxpZE9pZCwgTlVMTCwgTlVMTCk7CisKKwlmb3Jl YWNoKGxjLCB2ZXJ0ZXhfaW5mb3MpCisJeworCQlzdHJ1Y3QgZWxlbWVudF9pbmZvICp2aW5mbyA9 IGxmaXJzdChsYyk7CisJCU9pZAkJCXBlb2lkOworCisJCXBlb2lkID0gaW5zZXJ0X2VsZW1lbnRf cmVjb3JkKHBnYWRkcmVzcywgdmluZm8pOworCQllbGVtZW50X29pZHMgPSBsYXBwZW5kX29pZChl bGVtZW50X29pZHMsIHBlb2lkKTsKKwl9CisKKwlmb3JlYWNoKGxjLCBlZGdlX2luZm9zKQorCXsK KwkJc3RydWN0IGVsZW1lbnRfaW5mbyAqZWluZm8gPSBsZmlyc3QobGMpOworCQlPaWQJCQlwZW9p ZDsKKwkJTGlzdENlbGwgICAqbGMyOworCisJCS8qCisJCSAqIExvb2sgdXAgdGhlIHZlcnRpY2Vz IGFnYWluLiAgTm93IHRoZSB2ZXJ0aWNlcyBoYXZlIE9JRHMgYXNzaWduZWQsCisJCSAqIHdoaWNo IHdlIG5lZWQuCisJCSAqLworCQlmb3JlYWNoKGxjMiwgdmVydGV4X2luZm9zKQorCQl7CisJCQlz dHJ1Y3QgZWxlbWVudF9pbmZvICp2aW5mbyA9IGxmaXJzdChsYzIpOworCisJCQlpZiAoc3RyY21w KHZpbmZvLT5hbGlhc25hbWUsIGVpbmZvLT5zcmN2ZXJ0ZXgpID09IDApCisJCQl7CisJCQkJZWlu Zm8tPnNyY3ZlcnRleGlkID0gdmluZm8tPmVsZW1lbnRpZDsKKwkJCQllaW5mby0+c3JjcmVsaWQg PSB2aW5mby0+cmVsaWQ7CisJCQl9CisJCQlpZiAoc3RyY21wKHZpbmZvLT5hbGlhc25hbWUsIGVp bmZvLT5kZXN0dmVydGV4KSA9PSAwKQorCQkJeworCQkJCWVpbmZvLT5kZXN0dmVydGV4aWQgPSB2 aW5mby0+ZWxlbWVudGlkOworCQkJCWVpbmZvLT5kZXN0cmVsaWQgPSB2aW5mby0+cmVsaWQ7CisJ CQl9CisJCQlpZiAoZWluZm8tPnNyY3ZlcnRleGlkICYmIGVpbmZvLT5kZXN0dmVydGV4aWQpCisJ CQkJYnJlYWs7CisJCX0KKwkJQXNzZXJ0KGVpbmZvLT5zcmN2ZXJ0ZXhpZCk7CisJCUFzc2VydChl aW5mby0+ZGVzdHZlcnRleGlkKTsKKwkJQXNzZXJ0KGVpbmZvLT5zcmNyZWxpZCk7CisJCUFzc2Vy dChlaW5mby0+ZGVzdHJlbGlkKTsKKwkJcGVvaWQgPSBpbnNlcnRfZWxlbWVudF9yZWNvcmQocGdh ZGRyZXNzLCBlaW5mbyk7CisJCWVsZW1lbnRfb2lkcyA9IGxhcHBlbmRfb2lkKGVsZW1lbnRfb2lk cywgcGVvaWQpOworCX0KKworCUNvbW1hbmRDb3VudGVySW5jcmVtZW50KCk7CisKKwlmb3JlYWNo X29pZChwZW9pZCwgZWxlbWVudF9vaWRzKQorCQljaGVja19lbGVtZW50X3Byb3BlcnRpZXMocGVv aWQpOworCWNoZWNrX2FsbF9sYWJlbHNfcHJvcGVydGllcyhwZ2FkZHJlc3Mub2JqZWN0SWQpOwor CisJcmV0dXJuIHBnYWRkcmVzczsKK30KKworLyoKKyAqIFByb2Nlc3MgdGhlIGtleSBjbGF1c2Ug c3BlY2lmaWVkIGZvciBhbiBlbGVtZW50LiAgSWYga2V5X2NsYXVzZSBpcyBub24tTklMLAorICog dGhlbiBpdCBpcyBhIGxpc3Qgb2YgY29sdW1uIG5hbWVzLiAgT3RoZXJ3aXNlLCB0aGUgcHJpbWFy eSBrZXkgb2YgdGhlCisgKiByZWxhdGlvbiBpcyB1c2VkLiAgVGhlIHJldHVybiB2YWx1ZSBpcyBh biBhcnJheSBvZiBjb2x1bW4gbnVtYmVycy4KKyAqLworc3RhdGljIEFycmF5VHlwZSAqCitwcm9w Z3JhcGhfZWxlbWVudF9nZXRfa2V5KFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgTGlzdCAqa2V5 X2NsYXVzZSwgUmVsYXRpb24gZWxlbWVudF9yZWwsIGNvbnN0IGNoYXIgKmFsaWFzbmFtZSwgaW50 IGxvY2F0aW9uKQoreworCUFycmF5VHlwZSAgKmE7CisKKwlpZiAoa2V5X2NsYXVzZSA9PSBOSUwp CisJeworCQlPaWQJCQlwa2lkeCA9IFJlbGF0aW9uR2V0UHJpbWFyeUtleUluZGV4KGVsZW1lbnRf cmVsLCBmYWxzZSk7CisKKwkJaWYgKCFwa2lkeCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVy cmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkJZXJybXNnKCJu byBrZXkgc3BlY2lmaWVkIGFuZCBubyBzdWl0YWJsZSBwcmltYXJ5IGtleSBleGlzdHMgZm9yIGRl ZmluaXRpb24gb2YgZWxlbWVudCBcIiVzXCIiLCBhbGlhc25hbWUpLAorCQkJCQlwYXJzZXJfZXJy cG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpOworCQllbHNlCisJCXsKKwkJCVJlbGF0aW9uCWlu ZGV4RGVzYzsKKworCQkJaW5kZXhEZXNjID0gaW5kZXhfb3Blbihwa2lkeCwgQWNjZXNzU2hhcmVM b2NrKTsKKwkJCWEgPSBhcnJheV9mcm9tX2F0dG51bXMoaW5kZXhEZXNjLT5yZF9pbmRleC0+aW5k a2V5LmRpbTEsIGluZGV4RGVzYy0+cmRfaW5kZXgtPmluZGtleS52YWx1ZXMpOworCQkJaW5kZXhf Y2xvc2UoaW5kZXhEZXNjLCBOb0xvY2spOworCQl9CisJfQorCWVsc2UKKwl7CisJCWEgPSBhcnJh eV9mcm9tX2NvbHVtbl9saXN0KHBzdGF0ZSwga2V5X2NsYXVzZSwgbG9jYXRpb24sIGVsZW1lbnRf cmVsKTsKKwl9CisKKwlyZXR1cm4gYTsKK30KKworLyoKKyAqIFByb2Nlc3MgdGhlIHNvdXJjZSBv ciBkZXN0aW5hdGlvbiBsaW5rIG9mIGFuIGVkZ2UuCisgKgorICoga2V5Y29scyBhbmQgcmVmY29s cyBhcmUgY29sdW1uIG5hbWVzIHJlcHJlc2VudGluZyB0aGUgbG9jYWwgYW5kIHJlZmVyZW5jZWQK KyAqICh2ZXJ0ZXgpIGNvbHVtbnMuICBJZiB0aGV5IGFyZSBib3RoIE5JTCwgYSBtYXRjaGluZyBm b3JlaWduIGtleSBpcyBsb29rZWQKKyAqIHVwLgorICoKKyAqIGVkZ2VfcmVsIGFuZCByZWZfcmVs IGFyZSB0aGUgbG9jYWwgYW5kIHJlZmVyZW5jZWQgZWxlbWVudCB0YWJsZXMuCisgKgorICogYWxp YXNuYW1lLCBsb2NhdGlvbiwgYW5kIHR5cGUgYXJlIGZvciBlcnJvciBtZXNzYWdlcy4gIHR5cGUg aXMgZWl0aGVyCisgKiAiU09VUkNFIiBvciAiREVTVElOQVRJT04iLgorICoKKyAqIFRoZSBvdXRw dXRzIGFyZSBhcnJheXMgb2YgY29sdW1uIG51bWJlcnMgaW4gb3V0a2V5IGFuZCBvdXRyZWYuCisg Ki8KK3N0YXRpYyB2b2lkCitwcm9wZ3JhcGhfZWRnZV9nZXRfcmVmX2tleXMoUGFyc2VTdGF0ZSAq cHN0YXRlLCBjb25zdCBMaXN0ICprZXljb2xzLCBjb25zdCBMaXN0ICpyZWZjb2xzLAorCQkJCQkJ CVJlbGF0aW9uIGVkZ2VfcmVsLCBSZWxhdGlvbiByZWZfcmVsLAorCQkJCQkJCWNvbnN0IGNoYXIg KmFsaWFzbmFtZSwgaW50IGxvY2F0aW9uLCBjb25zdCBjaGFyICp0eXBlLAorCQkJCQkJCUFycmF5 VHlwZSAqKm91dGtleSwgQXJyYXlUeXBlICoqb3V0cmVmKQoreworCUFzc2VydCgoa2V5Y29scyAm JiByZWZjb2xzKSB8fCAoIWtleWNvbHMgJiYgIXJlZmNvbHMpKTsKKworCWlmIChrZXljb2xzKQor CXsKKwkJaWYgKGxpc3RfbGVuZ3RoKGtleWNvbHMpICE9IGxpc3RfbGVuZ3RoKHJlZmNvbHMpKQor CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RF RklOSVRJT04pLAorCQkJCQllcnJtc2coIm1pc21hdGNoaW5nIG51bWJlciBvZiBjb2x1bW5zIGlu ICVzIHZlcnRleCBkZWZpbml0aW9uIG9mIGVkZ2UgXCIlc1wiIiwgdHlwZSwgYWxpYXNuYW1lKSwK KwkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKTsKKworCQkqb3V0a2V5 ID0gYXJyYXlfZnJvbV9jb2x1bW5fbGlzdChwc3RhdGUsIGtleWNvbHMsIGxvY2F0aW9uLCBlZGdl X3JlbCk7CisJCSpvdXRyZWYgPSBhcnJheV9mcm9tX2NvbHVtbl9saXN0KHBzdGF0ZSwgcmVmY29s cywgbG9jYXRpb24sIHJlZl9yZWwpOworCX0KKwllbHNlCisJeworCQlMaXN0CSAgICpma2V5czsK KwkJTGlzdENlbGwgICAqbGM7CisJCWludAkJCWNvdW50ID0gMDsKKwkJRm9yZWlnbktleUNhY2hl SW5mbyAqZmsgPSBOVUxMOworCisJCWZrZXlzID0gUmVsYXRpb25HZXRGS2V5TGlzdChlZGdlX3Jl bCk7CisJCWZvcmVhY2gobGMsIGZrZXlzKQorCQl7CisJCQlmayA9IGxmaXJzdF9ub2RlKEZvcmVp Z25LZXlDYWNoZUluZm8sIGxjKTsKKworCQkJaWYgKGZrLT5jb25mcmVsaWQgPT0gUmVsYXRpb25H ZXRSZWxpZChyZWZfcmVsKSkKKwkJCQljb3VudCsrOworCQl9CisKKwkJaWYgKGNvdW50ID09IDAp CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwK KwkJCQkJZXJybXNnKCJubyAlcyBrZXkgc3BlY2lmaWVkIGFuZCBubyBzdWl0YWJsZSBmb3JlaWdu IGtleSBleGlzdHMgZm9yIGRlZmluaXRpb24gb2YgZWRnZSBcIiVzXCIiLCB0eXBlLCBhbGlhc25h bWUpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpOworCQllbHNl IGlmIChjb3VudCA+IDEpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVf U1lOVEFYX0VSUk9SKSwKKwkJCQkJZXJybXNnKCJtb3JlIHRoYW4gb25lIHN1aXRhYmxlIGZvcmVp Z24ga2V5IGV4aXN0cyBmb3IgJXMga2V5IG9mIGVkZ2UgXCIlc1wiIiwgdHlwZSwgYWxpYXNuYW1l KSwKKwkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKTsKKworCQlBc3Nl cnQoZmspOworCisJCSpvdXRrZXkgPSBhcnJheV9mcm9tX2F0dG51bXMoZmstPm5rZXlzLCBmay0+ Y29ua2V5KTsKKwkJKm91dHJlZiA9IGFycmF5X2Zyb21fYXR0bnVtcyhmay0+bmtleXMsIGZrLT5j b25ma2V5KTsKKwl9Cit9CisKKy8qCisgKiBDb252ZXJ0IGxpc3Qgb2YgY29sdW1uIG5hbWVzIGlu IHRoZSBzcGVjaWZpZWQgcmVsYXRpb24gaW50byBhbiBhcnJheSBvZgorICogY29sdW1uIG51bWJl cnMuCisgKi8KK3N0YXRpYyBBcnJheVR5cGUgKgorYXJyYXlfZnJvbV9jb2x1bW5fbGlzdChQYXJz ZVN0YXRlICpwc3RhdGUsIGNvbnN0IExpc3QgKmNvbG5hbWVzLCBpbnQgbG9jYXRpb24sIFJlbGF0 aW9uIGVsZW1lbnRfcmVsKQoreworCWludAkJCW51bWF0dHJzOworCURhdHVtCSAgICphdHRudW1z ZDsKKwlpbnQJCQlpOworCUxpc3RDZWxsICAgKmxjOworCisJbnVtYXR0cnMgPSBsaXN0X2xlbmd0 aChjb2xuYW1lcyk7CisJYXR0bnVtc2QgPSBwYWxsb2NfYXJyYXkoRGF0dW0sIG51bWF0dHJzKTsK KworCWkgPSAwOworCWZvcmVhY2gobGMsIGNvbG5hbWVzKQorCXsKKwkJY2hhcgkgICAqY29sbmFt ZSA9IHN0clZhbChsZmlyc3QobGMpKTsKKwkJT2lkCQkJcmVsaWQgPSBSZWxhdGlvbkdldFJlbGlk KGVsZW1lbnRfcmVsKTsKKwkJQXR0ck51bWJlcglhdHRudW07CisKKwkJYXR0bnVtID0gZ2V0X2F0 dG51bShyZWxpZCwgY29sbmFtZSk7CisJCWlmICghYXR0bnVtKQorCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09MVU1OKSwKKwkJCQkJIGVycm1zZygi Y29sdW1uIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJ CWNvbG5hbWUsIGdldF9yZWxfbmFtZShyZWxpZCkpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9u KHBzdGF0ZSwgbG9jYXRpb24pKSk7CisJCWF0dG51bXNkW2krK10gPSBJbnQxNkdldERhdHVtKGF0 dG51bSk7CisJfQorCisJZm9yIChpbnQgaiA9IDA7IGogPCBudW1hdHRyczsgaisrKQorCXsKKwkJ Zm9yIChpbnQgayA9IGogKyAxOyBrIDwgbnVtYXR0cnM7IGsrKykKKwkJeworCQkJaWYgKERhdHVt R2V0SW50MTYoYXR0bnVtc2Rbal0pID09IERhdHVtR2V0SW50MTYoYXR0bnVtc2Rba10pKQorCQkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RF RklOSVRJT04pLAorCQkJCQkJIGVycm1zZygiZ3JhcGgga2V5IGNvbHVtbnMgbGlzdCBtdXN0IG5v dCBjb250YWluIGR1cGxpY2F0ZXMiKSwKKwkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRl LCBsb2NhdGlvbikpKTsKKwkJfQorCX0KKworCXJldHVybiBjb25zdHJ1Y3RfYXJyYXlfYnVpbHRp bihhdHRudW1zZCwgbnVtYXR0cnMsIElOVDJPSUQpOworfQorCitzdGF0aWMgQXJyYXlUeXBlICoK K2FycmF5X2Zyb21fYXR0bnVtcyhpbnQgbnVtYXR0cnMsIGNvbnN0IEF0dHJOdW1iZXIgKmF0dG51 bXMpCit7CisJRGF0dW0JICAgKmF0dG51bXNkOworCisJYXR0bnVtc2QgPSBwYWxsb2NfYXJyYXko RGF0dW0sIG51bWF0dHJzKTsKKworCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtYXR0cnM7IGkrKykK KwkJYXR0bnVtc2RbaV0gPSBJbnQxNkdldERhdHVtKGF0dG51bXNbaV0pOworCisJcmV0dXJuIGNv bnN0cnVjdF9hcnJheV9idWlsdGluKGF0dG51bXNkLCBudW1hdHRycywgSU5UMk9JRCk7Cit9CisK K3N0YXRpYyB2b2lkCithcnJheV9vZl9hdHRudW1zX3RvX29iamVjdGFkZHJzKE9pZCByZWxpZCwg QXJyYXlUeXBlICphcnIsIE9iamVjdEFkZHJlc3NlcyAqYWRkcnMpCit7CisJRGF0dW0JICAgKmF0 dG51bXNkOworCWludAkJCW51bWF0dHJzOworCisJZGVjb25zdHJ1Y3RfYXJyYXlfYnVpbHRpbihh cnIsIElOVDJPSUQsICZhdHRudW1zZCwgTlVMTCwgJm51bWF0dHJzKTsKKworCWZvciAoaW50IGkg PSAwOyBpIDwgbnVtYXR0cnM7IGkrKykKKwl7CisJCU9iamVjdEFkZHJlc3MgcmVmZXJlbmNlZDsK KworCQlPYmplY3RBZGRyZXNzU3ViU2V0KHJlZmVyZW5jZWQsIFJlbGF0aW9uUmVsYXRpb25JZCwg cmVsaWQsIERhdHVtR2V0SW50MTYoYXR0bnVtc2RbaV0pKTsKKwkJYWRkX2V4YWN0X29iamVjdF9h ZGRyZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7CisJfQorfQorCisvKgorICogSW5zZXJ0IGEgcmVj b3JkIGZvciBhbiBlbGVtZW50IGludG8gdGhlIHBnX3Byb3BncmFwaF9lbGVtZW50IGNhdGFsb2cu ICBBbHNvCisgKiBpbnNlcnRzIGxhYmVscyBhbmQgcHJvcGVydGllcyBpbnRvIHRoZWlyIHJlc3Bl Y3RpdmUgY2F0YWxvZ3MuCisgKi8KK3N0YXRpYyBPaWQKK2luc2VydF9lbGVtZW50X3JlY29yZChP YmplY3RBZGRyZXNzIHBnYWRkcmVzcywgc3RydWN0IGVsZW1lbnRfaW5mbyAqZWluZm8pCit7CisJ T2lkCQkJZ3JhcGhpZCA9IHBnYWRkcmVzcy5vYmplY3RJZDsKKwlSZWxhdGlvbglyZWw7CisJTmFt ZURhdGEJYWxpYXNuYW1lOworCU9pZAkJCXBlb2lkOworCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdf cHJvcGdyYXBoX2VsZW1lbnRdID0gezB9OworCWJvb2wJCW51bGxzW05hdHRzX3BnX3Byb3BncmFw aF9lbGVtZW50XSA9IHswfTsKKwlIZWFwVHVwbGUJdHVwOworCU9iamVjdEFkZHJlc3MgbXlzZWxm OworCU9iamVjdEFkZHJlc3MgcmVmZXJlbmNlZDsKKwlPYmplY3RBZGRyZXNzZXMgKmFkZHJzOwor CisJcmVsID0gdGFibGVfb3BlbihQcm9wZ3JhcGhFbGVtZW50UmVsYXRpb25JZCwgUm93RXhjbHVz aXZlTG9jayk7CisKKwlwZW9pZCA9IEdldE5ld09pZFdpdGhJbmRleChyZWwsIFByb3BncmFwaEVs ZW1lbnRPYmplY3RJbmRleElkLCBBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X29pZCk7CisJZWlu Zm8tPmVsZW1lbnRpZCA9IHBlb2lkOworCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50 X29pZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShwZW9pZCk7CisJdmFsdWVzW0FudW1fcGdfcHJv cGdyYXBoX2VsZW1lbnRfcGdlcGdpZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShncmFwaGlkKTsK Kwl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VyZWxpZCAtIDFdID0gT2JqZWN0 SWRHZXREYXR1bShlaW5mby0+cmVsaWQpOworCW5hbWVzdHJjcHkoJmFsaWFzbmFtZSwgZWluZm8t PmFsaWFzbmFtZSk7CisJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlYWxpYXMg LSAxXSA9IE5hbWVHZXREYXR1bSgmYWxpYXNuYW1lKTsKKwl2YWx1ZXNbQW51bV9wZ19wcm9wZ3Jh cGhfZWxlbWVudF9wZ2VraW5kIC0gMV0gPSBDaGFyR2V0RGF0dW0oZWluZm8tPmtpbmQpOworCXZh bHVlc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXNyY3ZlcnRleGlkIC0gMV0gPSBPYmpl Y3RJZEdldERhdHVtKGVpbmZvLT5zcmN2ZXJ0ZXhpZCk7CisJdmFsdWVzW0FudW1fcGdfcHJvcGdy YXBoX2VsZW1lbnRfcGdlZGVzdHZlcnRleGlkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGVpbmZv LT5kZXN0dmVydGV4aWQpOworCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZWtl eSAtIDFdID0gUG9pbnRlckdldERhdHVtKGVpbmZvLT5rZXkpOworCisJaWYgKGVpbmZvLT5zcmNr ZXkpCisJCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXNyY2tleSAtIDFdID0g UG9pbnRlckdldERhdHVtKGVpbmZvLT5zcmNrZXkpOworCWVsc2UKKwkJbnVsbHNbQW51bV9wZ19w cm9wZ3JhcGhfZWxlbWVudF9wZ2VzcmNrZXkgLSAxXSA9IHRydWU7CisJaWYgKGVpbmZvLT5zcmNy ZWYpCisJCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXNyY3JlZiAtIDFdID0g UG9pbnRlckdldERhdHVtKGVpbmZvLT5zcmNyZWYpOworCWVsc2UKKwkJbnVsbHNbQW51bV9wZ19w cm9wZ3JhcGhfZWxlbWVudF9wZ2VzcmNyZWYgLSAxXSA9IHRydWU7CisJaWYgKGVpbmZvLT5kZXN0 a2V5KQorCQl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VkZXN0a2V5IC0gMV0g PSBQb2ludGVyR2V0RGF0dW0oZWluZm8tPmRlc3RrZXkpOworCWVsc2UKKwkJbnVsbHNbQW51bV9w Z19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VkZXN0a2V5IC0gMV0gPSB0cnVlOworCWlmIChlaW5mby0+ ZGVzdHJlZikKKwkJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlZGVzdHJlZiAt IDFdID0gUG9pbnRlckdldERhdHVtKGVpbmZvLT5kZXN0cmVmKTsKKwllbHNlCisJCW51bGxzW0Fu dW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlZGVzdHJlZiAtIDFdID0gdHJ1ZTsKKworCXR1cCA9 IGhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2NyKHJlbCksIHZhbHVlcywgbnVsbHMpOwor CUNhdGFsb2dUdXBsZUluc2VydChyZWwsIHR1cCk7CisJaGVhcF9mcmVldHVwbGUodHVwKTsKKwor CU9iamVjdEFkZHJlc3NTZXQobXlzZWxmLCBQcm9wZ3JhcGhFbGVtZW50UmVsYXRpb25JZCwgcGVv aWQpOworCisJLyogQWRkIGRlcGVuZGVuY3kgb24gdGhlIHByb3BlcnR5IGdyYXBoICovCisJcmVj b3JkRGVwZW5kZW5jeU9uKCZteXNlbGYsICZwZ2FkZHJlc3MsIERFUEVOREVOQ1lfQVVUTyk7CisK KwlhZGRycyA9IG5ld19vYmplY3RfYWRkcmVzc2VzKCk7CisKKwkvKiBBZGQgZGVwZW5kZW5jeSBv biB0aGUgcmVsYXRpb24gKi8KKwlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIFJlbGF0aW9u UmVsYXRpb25JZCwgZWluZm8tPnJlbGlkKTsKKwlhZGRfZXhhY3Rfb2JqZWN0X2FkZHJlc3MoJnJl ZmVyZW5jZWQsIGFkZHJzKTsKKwlhcnJheV9vZl9hdHRudW1zX3RvX29iamVjdGFkZHJzKGVpbmZv LT5yZWxpZCwgZWluZm8tPmtleSwgYWRkcnMpOworCisJLyogQWRkIGRlcGVuZGVuY2llcyBvbiB2 ZXJ0aWNlcyAqLworCWlmIChlaW5mby0+c3JjdmVydGV4aWQpCisJeworCQlPYmplY3RBZGRyZXNz U2V0KHJlZmVyZW5jZWQsIFByb3BncmFwaEVsZW1lbnRSZWxhdGlvbklkLCBlaW5mby0+c3JjdmVy dGV4aWQpOworCQlhZGRfZXhhY3Rfb2JqZWN0X2FkZHJlc3MoJnJlZmVyZW5jZWQsIGFkZHJzKTsK KwkJYXJyYXlfb2ZfYXR0bnVtc190b19vYmplY3RhZGRycyhlaW5mby0+cmVsaWQsIGVpbmZvLT5z cmNrZXksIGFkZHJzKTsKKwkJYXJyYXlfb2ZfYXR0bnVtc190b19vYmplY3RhZGRycyhlaW5mby0+ c3JjcmVsaWQsIGVpbmZvLT5zcmNyZWYsIGFkZHJzKTsKKwl9CisJaWYgKGVpbmZvLT5kZXN0dmVy dGV4aWQpCisJeworCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIFByb3BncmFwaEVsZW1l bnRSZWxhdGlvbklkLCBlaW5mby0+ZGVzdHZlcnRleGlkKTsKKwkJYWRkX2V4YWN0X29iamVjdF9h ZGRyZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7CisJCWFycmF5X29mX2F0dG51bXNfdG9fb2JqZWN0 YWRkcnMoZWluZm8tPnJlbGlkLCBlaW5mby0+ZGVzdGtleSwgYWRkcnMpOworCQlhcnJheV9vZl9h dHRudW1zX3RvX29iamVjdGFkZHJzKGVpbmZvLT5kZXN0cmVsaWQsIGVpbmZvLT5kZXN0cmVmLCBh ZGRycyk7CisJfQorCisJLyogVE9ETzogZGVwZW5kZW5jaWVzIG9uIGVxdWFsaXR5IG9wZXJhdG9y cywgbGlrZSBmb3IgZm9yZWlnbiBrZXlzICovCisKKwlyZWNvcmRfb2JqZWN0X2FkZHJlc3NfZGVw ZW5kZW5jaWVzKCZteXNlbGYsIGFkZHJzLCBERVBFTkRFTkNZX05PUk1BTCk7CisKKwl0YWJsZV9j bG9zZShyZWwsIE5vTG9jayk7CisKKwlpZiAoZWluZm8tPmxhYmVscykKKwl7CisJCUxpc3RDZWxs ICAgKmxjOworCisJCWZvcmVhY2gobGMsIGVpbmZvLT5sYWJlbHMpCisJCXsKKwkJCVByb3BHcmFw aExhYmVsQW5kUHJvcGVydGllcyAqbHAgPSBsZmlyc3Rfbm9kZShQcm9wR3JhcGhMYWJlbEFuZFBy b3BlcnRpZXMsIGxjKTsKKwkJCU9pZAkJCWVsbGFiZWxvaWQ7CisKKwkJCWlmIChscC0+bGFiZWwp CisJCQkJZWxsYWJlbG9pZCA9IGluc2VydF9sYWJlbF9yZWNvcmQoZ3JhcGhpZCwgcGVvaWQsIGxw LT5sYWJlbCk7CisJCQllbHNlCisJCQkJZWxsYWJlbG9pZCA9IGluc2VydF9sYWJlbF9yZWNvcmQo Z3JhcGhpZCwgcGVvaWQsIGVpbmZvLT5hbGlhc25hbWUpOworCQkJaW5zZXJ0X3Byb3BlcnR5X3Jl Y29yZHMoZ3JhcGhpZCwgZWxsYWJlbG9pZCwgZWluZm8tPnJlbGlkLCBscC0+cHJvcGVydGllcyk7 CisKKwkJCUNvbW1hbmRDb3VudGVySW5jcmVtZW50KCk7CisJCX0KKwl9CisJZWxzZQorCXsKKwkJ T2lkCQkJZWxsYWJlbG9pZDsKKwkJUHJvcEdyYXBoUHJvcGVydGllcyAqcHIgPSBtYWtlTm9kZShQ cm9wR3JhcGhQcm9wZXJ0aWVzKTsKKworCQlwci0+YWxsID0gdHJ1ZTsKKwkJcHItPmxvY2F0aW9u ID0gLTE7CisKKwkJZWxsYWJlbG9pZCA9IGluc2VydF9sYWJlbF9yZWNvcmQoZ3JhcGhpZCwgcGVv aWQsIGVpbmZvLT5hbGlhc25hbWUpOworCQlpbnNlcnRfcHJvcGVydHlfcmVjb3JkcyhncmFwaGlk LCBlbGxhYmVsb2lkLCBlaW5mby0+cmVsaWQsIHByKTsKKwl9CisKKwlyZXR1cm4gcGVvaWQ7Cit9 CisKKy8qCisgKiBJbnNlcnQgcmVjb3JkcyBmb3IgYSBsYWJlbCBpbnRvIHRoZSBwZ19wcm9wZ3Jh cGhfbGFiZWwgYW5kCisgKiBwZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbCBjYXRhbG9ncywgYW5k IHJlZ2lzdGVyIGRlcGVuZGVuY2llcy4KKyAqCisgKiBSZXR1cm5zIHRoZSBPSUQgb2YgdGhlIG5l dyBwZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbCByZWNvcmQuCisgKi8KK3N0YXRpYyBPaWQKK2lu c2VydF9sYWJlbF9yZWNvcmQoT2lkIGdyYXBoaWQsIE9pZCBwZW9pZCwgY29uc3QgY2hhciAqbGFi ZWwpCit7CisJT2lkCQkJbGFiZWxvaWQ7CisJT2lkCQkJZWxsYWJlbG9pZDsKKworCS8qCisJICog SW5zZXJ0IGludG8gcGdfcHJvcGdyYXBoX2xhYmVsIGlmIG5vdCBhbHJlYWR5IGV4aXN0aW5nLgor CSAqLworCWxhYmVsb2lkID0gR2V0U3lzQ2FjaGVPaWQyKFBST1BHUkFQSExBQkVMTkFNRSwgQW51 bV9wZ19wcm9wZ3JhcGhfbGFiZWxfb2lkLCBPYmplY3RJZEdldERhdHVtKGdyYXBoaWQpLCBDU3Ry aW5nR2V0RGF0dW0obGFiZWwpKTsKKwlpZiAoIWxhYmVsb2lkKQorCXsKKwkJUmVsYXRpb24JcmVs OworCQlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX3Byb3BncmFwaF9sYWJlbF0gPSB7MH07CisJCWJv b2wJCW51bGxzW05hdHRzX3BnX3Byb3BncmFwaF9sYWJlbF0gPSB7MH07CisJCU5hbWVEYXRhCWxh YmVsbmFtZTsKKwkJSGVhcFR1cGxlCXR1cDsKKwkJT2JqZWN0QWRkcmVzcyBteXNlbGY7CisJCU9i amVjdEFkZHJlc3MgcmVmZXJlbmNlZDsKKworCQlyZWwgPSB0YWJsZV9vcGVuKFByb3BncmFwaExh YmVsUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwkJbGFiZWxvaWQgPSBHZXROZXdP aWRXaXRoSW5kZXgocmVsLCBQcm9wZ3JhcGhMYWJlbE9iamVjdEluZGV4SWQsIEFudW1fcGdfcHJv cGdyYXBoX2xhYmVsX29pZCk7CisJCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9sYWJlbF9vaWQg LSAxXSA9IE9iamVjdElkR2V0RGF0dW0obGFiZWxvaWQpOworCQl2YWx1ZXNbQW51bV9wZ19wcm9w Z3JhcGhfbGFiZWxfcGdscGdpZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShncmFwaGlkKTsKKwkJ bmFtZXN0cmNweSgmbGFiZWxuYW1lLCBsYWJlbCk7CisJCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFw aF9sYWJlbF9wZ2xsYWJlbCAtIDFdID0gTmFtZUdldERhdHVtKCZsYWJlbG5hbWUpOworCisJCXR1 cCA9IGhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2NyKHJlbCksIHZhbHVlcywgbnVsbHMp OworCQlDYXRhbG9nVHVwbGVJbnNlcnQocmVsLCB0dXApOworCQloZWFwX2ZyZWV0dXBsZSh0dXAp OworCisJCU9iamVjdEFkZHJlc3NTZXQobXlzZWxmLCBQcm9wZ3JhcGhMYWJlbFJlbGF0aW9uSWQs IGxhYmVsb2lkKTsKKworCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIFJlbGF0aW9uUmVs YXRpb25JZCwgZ3JhcGhpZCk7CisJCXJlY29yZERlcGVuZGVuY3lPbigmbXlzZWxmLCAmcmVmZXJl bmNlZCwgREVQRU5ERU5DWV9BVVRPKTsKKworCQl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CisJ fQorCisJLyoKKwkgKiBJbnNlcnQgaW50byBwZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbAorCSAq LworCXsKKwkJUmVsYXRpb24JcmVsOworCQlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX3Byb3BncmFw aF9lbGVtZW50X2xhYmVsXSA9IHswfTsKKwkJYm9vbAkJbnVsbHNbTmF0dHNfcGdfcHJvcGdyYXBo X2VsZW1lbnRfbGFiZWxdID0gezB9OworCQlIZWFwVHVwbGUJdHVwOworCQlPYmplY3RBZGRyZXNz IG15c2VsZjsKKwkJT2JqZWN0QWRkcmVzcyByZWZlcmVuY2VkOworCisJCXJlbCA9IHRhYmxlX29w ZW4oUHJvcGdyYXBoRWxlbWVudExhYmVsUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisK KwkJZWxsYWJlbG9pZCA9IEdldE5ld09pZFdpdGhJbmRleChyZWwsIFByb3BncmFwaEVsZW1lbnRM YWJlbE9iamVjdEluZGV4SWQsIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWxfb2lkKTsK KwkJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWxfb2lkIC0gMV0gPSBPYmpl Y3RJZEdldERhdHVtKGVsbGFiZWxvaWQpOworCQl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfZWxl bWVudF9sYWJlbF9wZ2VsbGFiZWxpZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShsYWJlbG9pZCk7 CisJCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsX3BnZWxlbGlkIC0gMV0g PSBPYmplY3RJZEdldERhdHVtKHBlb2lkKTsKKworCQl0dXAgPSBoZWFwX2Zvcm1fdHVwbGUoUmVs YXRpb25HZXREZXNjcihyZWwpLCB2YWx1ZXMsIG51bGxzKTsKKwkJQ2F0YWxvZ1R1cGxlSW5zZXJ0 KHJlbCwgdHVwKTsKKwkJaGVhcF9mcmVldHVwbGUodHVwKTsKKworCQlPYmplY3RBZGRyZXNzU2V0 KG15c2VsZiwgUHJvcGdyYXBoRWxlbWVudExhYmVsUmVsYXRpb25JZCwgZWxsYWJlbG9pZCk7CisK KwkJT2JqZWN0QWRkcmVzc1NldChyZWZlcmVuY2VkLCBQcm9wZ3JhcGhMYWJlbFJlbGF0aW9uSWQs IGxhYmVsb2lkKTsKKwkJcmVjb3JkRGVwZW5kZW5jeU9uKCZteXNlbGYsICZyZWZlcmVuY2VkLCBE RVBFTkRFTkNZX0FVVE8pOworCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIFByb3BncmFw aEVsZW1lbnRSZWxhdGlvbklkLCBwZW9pZCk7CisJCXJlY29yZERlcGVuZGVuY3lPbigmbXlzZWxm LCAmcmVmZXJlbmNlZCwgREVQRU5ERU5DWV9BVVRPKTsKKworCQl0YWJsZV9jbG9zZShyZWwsIE5v TG9jayk7CisJfQorCisJcmV0dXJuIGVsbGFiZWxvaWQ7Cit9CisKKy8qCisgKiBJbnNlcnQgcmVj b3JkcyBmb3IgcHJvcGVydGllcyBpbnRvIHRoZSBwZ19wcm9wZ3JhcGhfcHJvcGVydHkgY2F0YWxv Zy4KKyAqLworc3RhdGljIHZvaWQKK2luc2VydF9wcm9wZXJ0eV9yZWNvcmRzKE9pZCBncmFwaGlk LCBPaWQgZWxsYWJlbG9pZCwgT2lkIHBnZXJlbGlkLCBjb25zdCBQcm9wR3JhcGhQcm9wZXJ0aWVz ICpwcm9wZXJ0aWVzKQoreworCUxpc3QJICAgKnByb3BsaXN0ID0gTklMOworCVBhcnNlU3RhdGUg KnBzdGF0ZTsKKwlQYXJzZU5hbWVzcGFjZUl0ZW0gKm5zaXRlbTsKKwlMaXN0CSAgICp0cDsKKwlS ZWxhdGlvbglyZWw7CisJTGlzdENlbGwgICAqbGM7CisKKwlpZiAocHJvcGVydGllcy0+YWxsKQor CXsKKwkJUmVsYXRpb24JYXR0UmVsYXRpb247CisJCVN5c1NjYW5EZXNjIHNjYW47CisJCVNjYW5L ZXlEYXRhIGtleVsxXTsKKwkJSGVhcFR1cGxlCWF0dHJpYnV0ZVR1cGxlOworCisJCWF0dFJlbGF0 aW9uID0gdGFibGVfb3BlbihBdHRyaWJ1dGVSZWxhdGlvbklkLCBSb3dTaGFyZUxvY2spOworCQlT Y2FuS2V5SW5pdCgma2V5WzBdLAorCQkJCQlBbnVtX3BnX2F0dHJpYnV0ZV9hdHRyZWxpZCwKKwkJ CQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJCQlPYmplY3RJZEdldERhdHVt KHBnZXJlbGlkKSk7CisJCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4oYXR0UmVsYXRpb24sIEF0 dHJpYnV0ZVJlbGlkTnVtSW5kZXhJZCwKKwkJCQkJCQkJICB0cnVlLCBOVUxMLCAxLCBrZXkpOwor CQl3aGlsZSAoSGVhcFR1cGxlSXNWYWxpZChhdHRyaWJ1dGVUdXBsZSA9IHN5c3RhYmxlX2dldG5l eHQoc2NhbikpKQorCQl7CisJCQlGb3JtX3BnX2F0dHJpYnV0ZSBhdHQgPSAoRm9ybV9wZ19hdHRy aWJ1dGUpIEdFVFNUUlVDVChhdHRyaWJ1dGVUdXBsZSk7CisJCQlDb2x1bW5SZWYgICpjcjsKKwkJ CVJlc1RhcmdldCAgKnJ0OworCisJCQlpZiAoYXR0LT5hdHRudW0gPD0gMCB8fCBhdHQtPmF0dGlz ZHJvcHBlZCkKKwkJCQljb250aW51ZTsKKworCQkJY3IgPSBtYWtlTm9kZShDb2x1bW5SZWYpOwor CQkJcnQgPSBtYWtlTm9kZShSZXNUYXJnZXQpOworCisJCQljci0+ZmllbGRzID0gbGlzdF9tYWtl MShtYWtlU3RyaW5nKHBzdHJkdXAoTmFtZVN0cihhdHQtPmF0dG5hbWUpKSkpOworCQkJY3ItPmxv Y2F0aW9uID0gLTE7CisKKwkJCXJ0LT5uYW1lID0gcHN0cmR1cChOYW1lU3RyKGF0dC0+YXR0bmFt ZSkpOworCQkJcnQtPnZhbCA9IChOb2RlICopIGNyOworCQkJcnQtPmxvY2F0aW9uID0gLTE7CisK KwkJCXByb3BsaXN0ID0gbGFwcGVuZChwcm9wbGlzdCwgcnQpOworCQl9CisJCXN5c3RhYmxlX2Vu ZHNjYW4oc2Nhbik7CisJCXRhYmxlX2Nsb3NlKGF0dFJlbGF0aW9uLCBSb3dTaGFyZUxvY2spOwor CX0KKwllbHNlCisJeworCQlwcm9wbGlzdCA9IHByb3BlcnRpZXMtPnByb3BlcnRpZXM7CisKKwkJ Zm9yZWFjaChsYywgcHJvcGxpc3QpCisJCXsKKwkJCVJlc1RhcmdldCAgKnJ0ID0gbGZpcnN0X25v ZGUoUmVzVGFyZ2V0LCBsYyk7CisKKwkJCWlmICghcnQtPm5hbWUgJiYgIUlzQShydC0+dmFsLCBD b2x1bW5SZWYpKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJjb2RlKEVSUkNPREVfU1lO VEFYX0VSUk9SKSwKKwkJCQkJCWVycm1zZygicHJvcGVydHkgbmFtZSByZXF1aXJlZCIpLAorCQkJ CQkJcGFyc2VyX2VycnBvc2l0aW9uKE5VTEwsIHJ0LT5sb2NhdGlvbikpOworCQl9CisJfQorCisJ cmVsID0gdGFibGVfb3BlbihwZ2VyZWxpZCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCXBzdGF0ZSA9 IG1ha2VfcGFyc2VzdGF0ZShOVUxMKTsKKwluc2l0ZW0gPSBhZGRSYW5nZVRhYmxlRW50cnlGb3JS ZWxhdGlvbihwc3RhdGUsCisJCQkJCQkJCQkJICAgcmVsLAorCQkJCQkJCQkJCSAgIEFjY2Vzc1No YXJlTG9jaywKKwkJCQkJCQkJCQkgICBOVUxMLAorCQkJCQkJCQkJCSAgIGZhbHNlLAorCQkJCQkJ CQkJCSAgIHRydWUpOworCWFkZE5TSXRlbVRvUXVlcnkocHN0YXRlLCBuc2l0ZW0sIHRydWUsIHRy dWUsIHRydWUpOworCisJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOworCisJdHAgPSB0cmFuc2Zv cm1UYXJnZXRMaXN0KHBzdGF0ZSwgcHJvcGxpc3QsIEVYUFJfS0lORF9QUk9QR1JBUEhfUFJPUEVS VFkpOworCisJZm9yZWFjaChsYywgdHApCisJeworCQlUYXJnZXRFbnRyeSAqdGUgPSBsZmlyc3Rf bm9kZShUYXJnZXRFbnRyeSwgbGMpOworCisJCWluc2VydF9wcm9wZXJ0eV9yZWNvcmQoZ3JhcGhp ZCwgZWxsYWJlbG9pZCwgcGdlcmVsaWQsIHRlLT5yZXNuYW1lLCB0ZS0+ZXhwcik7CisJfQorfQor CisvKgorICogSW5zZXJ0IHJlY29yZHMgZm9yIGEgcHJvcGVydHkgaW50byB0aGUgcGdfcHJvcGdy YXBoX3Byb3BlcnR5IGFuZAorICogcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5IGNhdGFsb2dz LCBhbmQgcmVnaXN0ZXIgZGVwZW5kZW5jaWVzLgorICovCitzdGF0aWMgdm9pZAoraW5zZXJ0X3By b3BlcnR5X3JlY29yZChPaWQgZ3JhcGhpZCwgT2lkIGVsbGFiZWxvaWQsIE9pZCBwZ2VyZWxpZCwg Y29uc3QgY2hhciAqcHJvcG5hbWUsIGNvbnN0IEV4cHIgKmV4cHIpCit7CisJT2lkCQkJcHJvcG9p ZDsKKwlPaWQJCQlleHBydHlwaWQ7CisJT2lkCQkJcHJvcHR5cGlkOworCisJZXhwcnR5cGlkID0g ZXhwclR5cGUoKGNvbnN0IE5vZGUgKikgZXhwcik7CisKKwkvKgorCSAqIEluc2VydCBpbnRvIHBn X3Byb3BncmFwaF9wcm9wZXJ0eSBpZiBub3QgYWxyZWFkeSBleGlzdGluZy4KKwkgKi8KKwlwcm9w b2lkID0gR2V0U3lzQ2FjaGVPaWQyKFBST1BHUkFQSFBST1BOQU1FLCBBbnVtX3BnX3Byb3BncmFw aF9wcm9wZXJ0eV9vaWQsIE9iamVjdElkR2V0RGF0dW0oZ3JhcGhpZCksIENTdHJpbmdHZXREYXR1 bShwcm9wbmFtZSkpOworCWlmICghcHJvcG9pZCkKKwl7CisJCVJlbGF0aW9uCXJlbDsKKwkJTmFt ZURhdGEJcHJvcG5hbWVkYXRhOworCQlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX3Byb3BncmFwaF9w cm9wZXJ0eV0gPSB7MH07CisJCWJvb2wJCW51bGxzW05hdHRzX3BnX3Byb3BncmFwaF9wcm9wZXJ0 eV0gPSB7MH07CisJCUhlYXBUdXBsZQl0dXA7CisJCU9iamVjdEFkZHJlc3MgbXlzZWxmOworCQlP YmplY3RBZGRyZXNzIHJlZmVyZW5jZWQ7CisKKwkJcHJvcHR5cGlkID0gZXhwcnR5cGlkOworCisJ CXJlbCA9IHRhYmxlX29wZW4oUHJvcGdyYXBoUHJvcGVydHlSZWxhdGlvbklkLCBSb3dFeGNsdXNp dmVMb2NrKTsKKworCQlwcm9wb2lkID0gR2V0TmV3T2lkV2l0aEluZGV4KHJlbCwgUHJvcGdyYXBo UHJvcGVydHlPYmplY3RJbmRleElkLCBBbnVtX3BnX3Byb3BncmFwaF9wcm9wZXJ0eV9vaWQpOwor CQl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfcHJvcGVydHlfb2lkIC0gMV0gPSBPYmplY3RJZEdl dERhdHVtKHByb3BvaWQpOworCQl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfcHJvcGVydHlfcGdw cGdpZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShncmFwaGlkKTsKKwkJbmFtZXN0cmNweSgmcHJv cG5hbWVkYXRhLCBwcm9wbmFtZSk7CisJCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9wcm9wZXJ0 eV9wZ3BuYW1lIC0gMV0gPSBOYW1lR2V0RGF0dW0oJnByb3BuYW1lZGF0YSk7CisJCXZhbHVlc1tB bnVtX3BnX3Byb3BncmFwaF9wcm9wZXJ0eV9wZ3B0eXBpZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1 bShwcm9wdHlwaWQpOworCisJCXR1cCA9IGhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2Ny KHJlbCksIHZhbHVlcywgbnVsbHMpOworCQlDYXRhbG9nVHVwbGVJbnNlcnQocmVsLCB0dXApOwor CQloZWFwX2ZyZWV0dXBsZSh0dXApOworCisJCU9iamVjdEFkZHJlc3NTZXQobXlzZWxmLCBQcm9w Z3JhcGhQcm9wZXJ0eVJlbGF0aW9uSWQsIHByb3BvaWQpOworCisJCU9iamVjdEFkZHJlc3NTZXQo cmVmZXJlbmNlZCwgUmVsYXRpb25SZWxhdGlvbklkLCBncmFwaGlkKTsKKwkJcmVjb3JkRGVwZW5k ZW5jeU9uKCZteXNlbGYsICZyZWZlcmVuY2VkLCBERVBFTkRFTkNZX0FVVE8pOworCQlPYmplY3RB ZGRyZXNzU2V0KHJlZmVyZW5jZWQsIFR5cGVSZWxhdGlvbklkLCBwcm9wdHlwaWQpOworCQlyZWNv cmREZXBlbmRlbmN5T24oJm15c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfTk9STUFMKTsK KworCQl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CisJfQorCWVsc2UKKwl7CisJCXByb3B0eXBp ZCA9IEdldFN5c0NhY2hlT2lkMShQUk9QR1JBUEhQUk9QT0lELCBBbnVtX3BnX3Byb3BncmFwaF9w cm9wZXJ0eV9wZ3B0eXBpZCwgT2JqZWN0SWRHZXREYXR1bShwcm9wb2lkKSk7CisJfQorCisJLyoK KwkgKiBDaGVjayB0aGF0IGluIHRoZSBncmFwaCwgYWxsIHByb3BlcnRpZXMgd2l0aCB0aGUgc2Ft ZSBuYW1lIGhhdmUgdGhlCisJICogc2FtZSB0eXBlIChpbmRlcGVuZGVudCBvZiB3aGljaCBsYWJl bCB0aGV5IGFyZSBvbikuICAoU2VlIFNRTC9QR1EKKwkgKiBzdWJjbGF1c2UgIkNvbnNpc3RlbmN5 IGNoZWNrIG9mIGEgdGFidWxhciBwcm9wZXJ0eSBncmFwaCBkZXNjcmlwdG9yIi4pCisJICovCisJ aWYgKHByb3B0eXBpZCAhPSBleHBydHlwaWQpCisJeworCQllcmVwb3J0KEVSUk9SLAorCQkJCWVy cmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCWVycm1zZygicHJvcGVydHkgXCIlc1wi IGRhdGEgdHlwZSBtaXNtYXRjaDogJXMgdnMuICVzIiwKKwkJCQkJICAgcHJvcG5hbWUsIGZvcm1h dF90eXBlX2JlKHByb3B0eXBpZCksIGZvcm1hdF90eXBlX2JlKGV4cHJ0eXBpZCkpLAorCQkJCWVy cmRldGFpbCgiSW4gYSBwcm9wZXJ0eSBncmFwaCwgYSBwcm9wZXJ0eSBvZiB0aGUgc2FtZSBuYW1l IGhhcyB0byBoYXZlIHRoZSBzYW1lIGRhdGEgdHlwZSBpbiBlYWNoIGxhYmVsLiIpKTsKKwl9CisK KwkvKgorCSAqIEluc2VydCBpbnRvIHBnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eQorCSAqLwor CXsKKwkJUmVsYXRpb24JcmVsOworCQlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX3Byb3BncmFwaF9s YWJlbF9wcm9wZXJ0eV0gPSB7MH07CisJCWJvb2wJCW51bGxzW05hdHRzX3BnX3Byb3BncmFwaF9s YWJlbF9wcm9wZXJ0eV0gPSB7MH07CisJCU9pZAkJCXBscG9pZDsKKwkJSGVhcFR1cGxlCXR1cDsK KwkJT2JqZWN0QWRkcmVzcyBteXNlbGY7CisJCU9iamVjdEFkZHJlc3MgcmVmZXJlbmNlZDsKKwor CQlyZWwgPSB0YWJsZV9vcGVuKFByb3BncmFwaExhYmVsUHJvcGVydHlSZWxhdGlvbklkLCBSb3dF eGNsdXNpdmVMb2NrKTsKKworCQlwbHBvaWQgPSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBQcm9w Z3JhcGhMYWJlbFByb3BlcnR5T2JqZWN0SW5kZXhJZCwgQW51bV9wZ19wcm9wZ3JhcGhfbGFiZWxf cHJvcGVydHlfb2lkKTsKKwkJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5 X29pZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShwbHBvaWQpOworCQl2YWx1ZXNbQW51bV9wZ19w cm9wZ3JhcGhfbGFiZWxfcHJvcGVydHlfcGxwcHJvcGlkIC0gMV0gPSBPYmplY3RJZEdldERhdHVt KHByb3BvaWQpOworCQl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHlfcGxw ZWxsYWJlbGlkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGVsbGFiZWxvaWQpOworCQl2YWx1ZXNb QW51bV9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHlfcGxwZXhwciAtIDFdID0gQ1N0cmluZ0dl dFRleHREYXR1bShub2RlVG9TdHJpbmcoZXhwcikpOworCisJCXR1cCA9IGhlYXBfZm9ybV90dXBs ZShSZWxhdGlvbkdldERlc2NyKHJlbCksIHZhbHVlcywgbnVsbHMpOworCQlDYXRhbG9nVHVwbGVJ bnNlcnQocmVsLCB0dXApOworCQloZWFwX2ZyZWV0dXBsZSh0dXApOworCisJCU9iamVjdEFkZHJl c3NTZXQobXlzZWxmLCBQcm9wZ3JhcGhMYWJlbFByb3BlcnR5UmVsYXRpb25JZCwgcGxwb2lkKTsK KworCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIFByb3BncmFwaFByb3BlcnR5UmVsYXRp b25JZCwgcHJvcG9pZCk7CisJCXJlY29yZERlcGVuZGVuY3lPbigmbXlzZWxmLCAmcmVmZXJlbmNl ZCwgREVQRU5ERU5DWV9BVVRPKTsKKworCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIFBy b3BncmFwaEVsZW1lbnRMYWJlbFJlbGF0aW9uSWQsIGVsbGFiZWxvaWQpOworCQlyZWNvcmREZXBl bmRlbmN5T24oJm15c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfQVVUTyk7CisKKwkJcmVj b3JkRGVwZW5kZW5jeU9uU2luZ2xlUmVsRXhwcigmbXlzZWxmLCAoTm9kZSAqKSBjb3B5T2JqZWN0 KGV4cHIpLCBwZ2VyZWxpZCwgREVQRU5ERU5DWV9OT1JNQUwsIERFUEVOREVOQ1lfTk9STUFMLCBm YWxzZSk7CisKKwkJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOworCX0KK30KKworLyoKKyAqIENo ZWNrIHRoYXQgZm9yIHRoZSBnaXZlbiBncmFwaCBlbGVtZW50LCBhbGwgcHJvcGVydGllcyB3aXRo IHRoZSBzYW1lIG5hbWUKKyAqIGhhdmUgdGhlIHNhbWUgZXhwcmVzc2lvbiBmb3IgZWFjaCBsYWJl bC4gIChTZWUgU1FML1BHUSBzdWJjbGF1c2UgIkNyZWF0aW9uCisgKiBvZiBhbiBlbGVtZW50IHRh YmxlIGRlc2NyaXB0b3IiLikKKyAqCisgKiBXZSBjaGVjayB0aGlzIGFmdGVyIGFsbCB0aGUgY2F0 YWxvZyByZWNvcmRzIGFyZSBhbHJlYWR5IGluc2VydGVkLiAgVGhpcworICogbWFrZXMgaXQgZWFz aWVyIHRvIHNoYXJlIHRoaXMgY29kZSBiZXR3ZWVuIENSRUFURSBQUk9QRVJUWSBHUkFQSCBhbmQg QUxURVIKKyAqIFBST1BFUlRZIEdSQVBILiAgV2UgcGFzcyBpbiB0aGUgZWxlbWVudCBPSUQgc28g dGhhdCBBTFRFUiBQUk9QRVJUWSBHUkFQSAorICogb25seSBoYXMgdG8gY2hlY2sgdGhlIGVsZW1l bnQgaXQgaGFzIGp1c3Qgb3BlcmF0ZWQgb24uICBDUkVBVEUgUFJPUEVSVFkKKyAqIEdST1VQIGNo ZWNrcyBhbGwgZWxlbWVudHMgaXQgaGFzIGNyZWF0ZWQuCisgKi8KK3N0YXRpYyB2b2lkCitjaGVj a19lbGVtZW50X3Byb3BlcnRpZXMoT2lkIHBlb2lkKQoreworCVJlbGF0aW9uCXJlbDE7CisJU2Nh bktleURhdGEga2V5MVsxXTsKKwlTeXNTY2FuRGVzYyBzY2FuMTsKKwlIZWFwVHVwbGUJdHVwbGUx OworCUxpc3QJICAgKnByb3BvaWRzID0gTklMOworCUxpc3QJICAgKnByb3BleHBycyA9IE5JTDsK KworCXJlbDEgPSB0YWJsZV9vcGVuKFByb3BncmFwaEVsZW1lbnRMYWJlbFJlbGF0aW9uSWQsIEFj Y2Vzc1NoYXJlTG9jayk7CisJU2NhbktleUluaXQoJmtleTFbMF0sCisJCQkJQW51bV9wZ19wcm9w Z3JhcGhfZWxlbWVudF9sYWJlbF9wZ2VsZWxpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIs IEZfT0lERVEsCisJCQkJT2JqZWN0SWRHZXREYXR1bShwZW9pZCkpOworCisJc2NhbjEgPSBzeXN0 YWJsZV9iZWdpbnNjYW4ocmVsMSwgUHJvcGdyYXBoRWxlbWVudExhYmVsRWxlbWVudExhYmVsSW5k ZXhJZCwgdHJ1ZSwgTlVMTCwgMSwga2V5MSk7CisJd2hpbGUgKEhlYXBUdXBsZUlzVmFsaWQodHVw bGUxID0gc3lzdGFibGVfZ2V0bmV4dChzY2FuMSkpKQorCXsKKwkJRm9ybV9wZ19wcm9wZ3JhcGhf ZWxlbWVudF9sYWJlbCBlbGxhYmVsID0gKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwp IEdFVFNUUlVDVCh0dXBsZTEpOworCQlSZWxhdGlvbglyZWwyOworCQlTY2FuS2V5RGF0YSBrZXky WzFdOworCQlTeXNTY2FuRGVzYyBzY2FuMjsKKwkJSGVhcFR1cGxlCXR1cGxlMjsKKworCQlyZWwy ID0gdGFibGVfb3BlbihQcm9wZ3JhcGhMYWJlbFByb3BlcnR5UmVsYXRpb25JZCwgQWNjZXNzU2hh cmVMb2NrKTsKKwkJU2NhbktleUluaXQoJmtleTJbMF0sCisJCQkJCUFudW1fcGdfcHJvcGdyYXBo X2xhYmVsX3Byb3BlcnR5X3BscGVsbGFiZWxpZCwKKwkJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVy LCBGX09JREVRLAorCQkJCQlPYmplY3RJZEdldERhdHVtKGVsbGFiZWwtPm9pZCkpOworCisJCXNj YW4yID0gc3lzdGFibGVfYmVnaW5zY2FuKHJlbDIsIFByb3BncmFwaExhYmVsUHJvcGVydHlMYWJl bFByb3BJbmRleElkLCB0cnVlLCBOVUxMLCAxLCBrZXkyKTsKKwkJd2hpbGUgKEhlYXBUdXBsZUlz VmFsaWQodHVwbGUyID0gc3lzdGFibGVfZ2V0bmV4dChzY2FuMikpKQorCQl7CisJCQlGb3JtX3Bn X3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eSBscHJvcCA9IChGb3JtX3BnX3Byb3BncmFwaF9sYWJl bF9wcm9wZXJ0eSkgR0VUU1RSVUNUKHR1cGxlMik7CisJCQlPaWQJCQlwcm9wb2lkOworCQkJRGF0 dW0JCWRhdHVtOworCQkJYm9vbAkJaXNudWxsOworCQkJY2hhcgkgICAqcHJvcGV4cHI7CisJCQlM aXN0Q2VsbCAgICpsYzEsCisJCQkJCSAgICpsYzI7CisJCQlib29sCQlmb3VuZDsKKworCQkJcHJv cG9pZCA9IGxwcm9wLT5wbHBwcm9waWQ7CisJCQlkYXR1bSA9IGhlYXBfZ2V0YXR0cih0dXBsZTIs IEFudW1fcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5X3BscGV4cHIsIFJlbGF0aW9uR2V0RGVz Y3IocmVsMiksICZpc251bGwpOworCQkJQXNzZXJ0KCFpc251bGwpOworCQkJcHJvcGV4cHIgPSBU ZXh0RGF0dW1HZXRDU3RyaW5nKGRhdHVtKTsKKworCQkJZm91bmQgPSBmYWxzZTsKKwkJCWZvcmJv dGgobGMxLCBwcm9wb2lkcywgbGMyLCBwcm9wZXhwcnMpCisJCQl7CisJCQkJaWYgKHByb3BvaWQg PT0gbGZpcnN0X29pZChsYzEpKQorCQkJCXsKKwkJCQkJTm9kZQkgICAqbmEsCisJCQkJCQkJICAg Km5iOworCisJCQkJCW5hID0gc3RyaW5nVG9Ob2RlKHByb3BleHByKTsKKwkJCQkJbmIgPSBzdHJp bmdUb05vZGUobGZpcnN0KGxjMikpOworCisJCQkJCWZvdW5kID0gdHJ1ZTsKKworCQkJCQlpZiAo IWVxdWFsKG5hLCBuYikpCisJCQkJCXsKKwkJCQkJCUhlYXBUdXBsZQl0dXBsZTM7CisJCQkJCQlG b3JtX3BnX3Byb3BncmFwaF9lbGVtZW50IGVsZm9ybTsKKwkJCQkJCUxpc3QJICAgKmRwY29udGV4 dDsKKwkJCQkJCWNoYXIJICAgKmRwYSwKKwkJCQkJCQkJICAgKmRwYjsKKworCQkJCQkJdHVwbGUz ID0gU2VhcmNoU3lzQ2FjaGUxKFBST1BHUkFQSEVMT0lELCBPYmplY3RJZEdldERhdHVtKHBlb2lk KSk7CisJCQkJCQlpZiAoIXR1cGxlMykKKwkJCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3Vw IGZhaWxlZCBmb3IgcHJvcGVydHkgZ3JhcGggZWxlbWVudCAldSIsIHBlb2lkKTsKKwkJCQkJCWVs Zm9ybSA9IChGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50KSBHRVRTVFJVQ1QodHVwbGUzKTsKKwkJ CQkJCWRwY29udGV4dCA9IGRlcGFyc2VfY29udGV4dF9mb3IoZ2V0X3JlbF9uYW1lKGVsZm9ybS0+ cGdlcmVsaWQpLCBlbGZvcm0tPnBnZXJlbGlkKTsKKworCQkJCQkJZHBhID0gZGVwYXJzZV9leHBy ZXNzaW9uKG5hLCBkcGNvbnRleHQsIGZhbHNlLCBmYWxzZSk7CisJCQkJCQlkcGIgPSBkZXBhcnNl X2V4cHJlc3Npb24obmIsIGRwY29udGV4dCwgZmFsc2UsIGZhbHNlKTsKKworCQkJCQkJLyoKKwkJ CQkJCSAqIHNob3cgaW4gc29ydGVkIG9yZGVyIHRvIGtlZXAgb3V0cHV0IGluZGVwZW5kZW50IG9m CisJCQkJCQkgKiBpbmRleCBvcmRlcgorCQkJCQkJICovCisJCQkJCQlpZiAoc3RyY21wKGRwYSwg ZHBiKSA+IDApCisJCQkJCQl7CisJCQkJCQkJY2hhcgkgICAqdG1wOworCisJCQkJCQkJdG1wID0g ZHBhOworCQkJCQkJCWRwYSA9IGRwYjsKKwkJCQkJCQlkcGIgPSB0bXA7CisJCQkJCQl9CisKKwkJ CQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1Ip LAorCQkJCQkJCQllcnJtc2coImVsZW1lbnQgXCIlc1wiIHByb3BlcnR5IFwiJXNcIiBleHByZXNz aW9uIG1pc21hdGNoOiAlcyB2cy4gJXMiLAorCQkJCQkJCQkJICAgTmFtZVN0cihlbGZvcm0tPnBn ZWFsaWFzKSwgZ2V0X3Byb3BncmFwaF9wcm9wZXJ0eV9uYW1lKHByb3BvaWQpLCBkcGEsIGRwYiks CisJCQkJCQkJCWVycmRldGFpbCgiSW4gYSBwcm9wZXJ0eSBncmFwaCBlbGVtZW50LCBhIHByb3Bl cnR5IG9mIHRoZSBzYW1lIG5hbWUgaGFzIHRvIGhhdmUgdGhlIHNhbWUgZXhwcmVzc2lvbiBpbiBl YWNoIGxhYmVsLiIpKTsKKworCQkJCQkJUmVsZWFzZVN5c0NhY2hlKHR1cGxlMyk7CisJCQkJCX0K KworCQkJCQlicmVhazsKKwkJCQl9CisJCQl9CisKKwkJCWlmICghZm91bmQpCisJCQl7CisJCQkJ cHJvcG9pZHMgPSBsYXBwZW5kX29pZChwcm9wb2lkcywgcHJvcG9pZCk7CisJCQkJcHJvcGV4cHJz ID0gbGFwcGVuZChwcm9wZXhwcnMsIHByb3BleHByKTsKKwkJCX0KKwkJfQorCQlzeXN0YWJsZV9l bmRzY2FuKHNjYW4yKTsKKwkJdGFibGVfY2xvc2UocmVsMiwgQWNjZXNzU2hhcmVMb2NrKTsKKwl9 CisKKwlzeXN0YWJsZV9lbmRzY2FuKHNjYW4xKTsKKwl0YWJsZV9jbG9zZShyZWwxLCBBY2Nlc3NT aGFyZUxvY2spOworfQorCisvKgorICogQ2hlY2sgdGhhdCBmb3IgdGhlIGdpdmVuIGVsZW1lbnQg bGFiZWwsIGFsbCBsYWJlbHMgb2YgdGhlIHNhbWUgbmFtZSBpbiB0aGUKKyAqIGdyYXBoIGhhdmUg dGhlIHNhbWUgbnVtYmVyIGFuZCBuYW1lcyBvZiBwcm9wZXJ0aWVzIChpbmRlcGVuZGVudCBvZiB3 aGljaAorICogZWxlbWVudCB0aGV5IGFyZSBvbikuICAoU2VlIFNRTC9QR1Egc3ViY2xhdXNlICJD b25zaXN0ZW5jeSBjaGVjayBvZiBhCisgKiB0YWJ1bGFyIHByb3BlcnR5IGdyYXBoIGRlc2NyaXB0 b3IiLikKKyAqCisgKiBXZSBjaGVjayB0aGlzIGFmdGVyIGFsbCB0aGUgY2F0YWxvZyByZWNvcmRz IGFyZSBhbHJlYWR5IGluc2VydGVkLiAgVGhpcworICogbWFrZXMgaXQgZWFzaWVyIHRvIHNoYXJl IHRoaXMgY29kZSBiZXR3ZWVuIENSRUFURSBQUk9QRVJUWSBHUkFQSCBhbmQgQUxURVIKKyAqIFBS T1BFUlRZIEdSQVBILiAgV2UgcGFzcyBpbiB0aGUgZWxlbWVudCBsYWJlbCBPSUQgc28gdGhhdCBz b21lIHZhcmlhbnRzIG9mCisgKiBBTFRFUiBQUk9QRVJUWSBHUkFQSCBvbmx5IGhhdmUgdG8gY2hl Y2sgdGhlIGVsZW1lbnQgbGFiZWwgaXQgaGFzIGp1c3QKKyAqIG9wZXJhdGVkIG9uLiAgQ1JFQVRF IFBST1BFUlRZIEdST1VQIGFuZCBvdGhlciBBTFRFUiBQUk9QRVJUWSBHUkFQSCB2YXJpYW50cwor ICogY2hlY2sgYWxsIGxhYmVscy4KKyAqLworc3RhdGljIHZvaWQKK2NoZWNrX2VsZW1lbnRfbGFi ZWxfcHJvcGVydGllcyhPaWQgZWxsYWJlbG9pZCkKK3sKKwlSZWxhdGlvbglyZWw7CisJU3lzU2Nh bkRlc2Mgc2NhbjsKKwlTY2FuS2V5RGF0YSBrZXlbMV07CisJSGVhcFR1cGxlCXR1cGxlOworCU9p ZAkJCWxhYmVsaWQgPSBJbnZhbGlkT2lkOworCU9pZAkJCXJlZl9lbGxhYmVsb2lkID0gSW52YWxp ZE9pZDsKKwlMaXN0CSAgICpteXByb3BzLAorCQkJICAgKnJlZnByb3BzOworCUxpc3QJICAgKmRp ZmYxLAorCQkJICAgKmRpZmYyOworCisJcmVsID0gdGFibGVfb3BlbihQcm9wZ3JhcGhFbGVtZW50 TGFiZWxSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOworCisJLyoKKwkgKiBHZXQgZWxlbWVu dCBsYWJlbCBpbmZvCisJICovCisJU2NhbktleUluaXQoJmtleVswXSwKKwkJCQlBbnVtX3BnX3By b3BncmFwaF9lbGVtZW50X2xhYmVsX29pZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsCisJ CQkJRl9PSURFUSwgT2JqZWN0SWRHZXREYXR1bShlbGxhYmVsb2lkKSk7CisJc2NhbiA9IHN5c3Rh YmxlX2JlZ2luc2NhbihyZWwsIFByb3BncmFwaEVsZW1lbnRMYWJlbE9iamVjdEluZGV4SWQsIHRy dWUsIE5VTEwsIDEsIGtleSk7CisJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHVwbGUgPSBzeXN0YWJs ZV9nZXRuZXh0KHNjYW4pKSkKKwl7CisJCUZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwg ZWxsYWJlbCA9IChGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsKSBHRVRTVFJVQ1QodHVw bGUpOworCisJCWxhYmVsaWQgPSBlbGxhYmVsLT5wZ2VsbGFiZWxpZDsKKwl9CisJc3lzdGFibGVf ZW5kc2NhbihzY2FuKTsKKwlpZiAoIWxhYmVsaWQpCisJCWVsb2coRVJST1IsICJlbGVtZW50IGxh YmVsICV1IG5vdCBmb3VuZCIsIGVsbGFiZWxvaWQpOworCisJLyoKKwkgKiBGaW5kIGEgcmVmZXJl bmNlIGVsZW1lbnQgbGFiZWwgdG8gZmV0Y2ggbGFiZWwgcHJvcGVydGllcy4gIFRoZQorCSAqIHJl ZmVyZW5jZSBlbGVtZW50IGxhYmVsIGhhcyB0byBoYXZlIHRoZSBsYWJlbCBPSUQgYXMgdGhlIG9u ZSBiZWluZworCSAqIGNoZWNrZWQgYnV0IGJlIGRpc3RpbmN0IGZyb20gdGhlIG9uZSBiZWluZyBj aGVja2VkLgorCSAqLworCVNjYW5LZXlJbml0KCZrZXlbMF0sCisJCQkJQW51bV9wZ19wcm9wZ3Jh cGhfZWxlbWVudF9sYWJlbF9wZ2VsbGFiZWxpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIs CisJCQkJRl9PSURFUSwgT2JqZWN0SWRHZXREYXR1bShsYWJlbGlkKSk7CisJc2NhbiA9IHN5c3Rh YmxlX2JlZ2luc2NhbihyZWwsIFByb3BncmFwaEVsZW1lbnRMYWJlbExhYmVsSW5kZXhJZCwgdHJ1 ZSwgTlVMTCwgMSwga2V5KTsKKwl3aGlsZSAoSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSA9IHN5c3Rh YmxlX2dldG5leHQoc2NhbikpKQorCXsKKwkJRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJl bCBvdGhlcmVsbGFiZWwgPSAoRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbCkgR0VUU1RS VUNUKHR1cGxlKTsKKworCQlpZiAob3RoZXJlbGxhYmVsLT5vaWQgIT0gZWxsYWJlbG9pZCkKKwkJ eworCQkJcmVmX2VsbGFiZWxvaWQgPSBvdGhlcmVsbGFiZWwtPm9pZDsKKwkJCWJyZWFrOworCQl9 CisJfQorCXN5c3RhYmxlX2VuZHNjYW4oc2Nhbik7CisKKwl0YWJsZV9jbG9zZShyZWwsIEFjY2Vz c1NoYXJlTG9jayk7CisKKwkvKgorCSAqIElmIHRoZXJlIGlzIG5vdCBwcmV2aW91cyBkZWZpbml0 aW9uIG9mIHRoaXMgbGFiZWwsIHRoZW4gd2UgYXJlIGRvbmUuCisJICovCisJaWYgKCFyZWZfZWxs YWJlbG9pZCkKKwkJcmV0dXJuOworCisJLyoKKwkgKiBOb3cgY2hlY2sgbnVtYmVyIGFuZCBuYW1l cy4KKwkgKgorCSAqIFhYWCBXZSBjb3VsZCBwcm92aWRlIG1vcmUgZGV0YWlsIGluIHRoZSBlcnJv ciBtZXNzYWdlcywgYnV0IHRoYXQgd291bGQKKwkgKiBwcm9iYWJseSBvbmx5IGJlIHVzZWZ1bCBm b3Igc29tZSBBTFRFUiBjb21tYW5kcywgYmVjYXVzZSBvdGhlcndpc2UgaXQncworCSAqIG5vdCBy ZWFsbHkgY2xlYXIgd2hpY2ggbGFiZWwgZGVmaW5pdGlvbiBpcyB0aGUgd3Jvbmcgb25lLCBhbmQg c28geW91J2QKKwkgKiBoYXZlIHRvIGNvbnN0cnVjdCBhIHJhdGhlciB2ZXJib3NlIHJlcG9ydCB0 byBiZSBvZiBhbnkgdXNlLiAgTGV0J3Mga2VlcAorCSAqIGl0IHNpbXBsZSBmb3Igbm93LgorCSAq LworCisJbXlwcm9wcyA9IGdldF9lbGVtZW50X2xhYmVsX3Byb3BlcnR5X25hbWVzKGVsbGFiZWxv aWQpOworCXJlZnByb3BzID0gZ2V0X2VsZW1lbnRfbGFiZWxfcHJvcGVydHlfbmFtZXMocmVmX2Vs bGFiZWxvaWQpOworCisJaWYgKGxpc3RfbGVuZ3RoKHJlZnByb3BzKSAhPSBsaXN0X2xlbmd0aCht eXByb3BzKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9P QkpFQ1RfREVGSU5JVElPTiksCisJCQkJZXJybXNnKCJtaXNtYXRjaGluZyBudW1iZXIgb2YgcHJv cGVydGllcyBpbiBkZWZpbml0aW9uIG9mIGxhYmVsIFwiJXNcIiIsIGdldF9wcm9wZ3JhcGhfbGFi ZWxfbmFtZShsYWJlbGlkKSkpOworCisJZGlmZjEgPSBsaXN0X2RpZmZlcmVuY2UobXlwcm9wcywg cmVmcHJvcHMpOworCWRpZmYyID0gbGlzdF9kaWZmZXJlbmNlKHJlZnByb3BzLCBteXByb3BzKTsK KworCWlmIChkaWZmMSB8fCBkaWZmMikKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVS UkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJCQkJZXJybXNnKCJtaXNtYXRjaGlu ZyBwcm9wZXJ0aWVzIG5hbWVzIGluIGRlZmluaXRpb24gb2YgbGFiZWwgXCIlc1wiIiwgZ2V0X3By b3BncmFwaF9sYWJlbF9uYW1lKGxhYmVsaWQpKSk7Cit9CisKKy8qCisgKiBBcyBhYm92ZSwgYnV0 IGNoZWNrIGFsbCBsYWJlbHMgb2YgYSBncmFwaC4KKyAqLworc3RhdGljIHZvaWQKK2NoZWNrX2Fs bF9sYWJlbHNfcHJvcGVydGllcyhPaWQgcGdyZWxpZCkKK3sKKwlmb3JlYWNoX29pZChsYWJlbG9p ZCwgZ2V0X2dyYXBoX2xhYmVsX2lkcyhwZ3JlbGlkKSkKKwl7CisJCWZvcmVhY2hfb2lkKGVsbGFi ZWxvaWQsIGdldF9sYWJlbF9lbGVtZW50X2xhYmVsX2lkcyhsYWJlbG9pZCkpCisJCXsKKwkJCWNo ZWNrX2VsZW1lbnRfbGFiZWxfcHJvcGVydGllcyhlbGxhYmVsb2lkKTsKKwkJfQorCX0KK30KKwor LyoKKyAqIEFMVEVSIFBST1BFUlRZIEdSQVBICisgKi8KK09iamVjdEFkZHJlc3MKK0FsdGVyUHJv cEdyYXBoKFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgQWx0ZXJQcm9wR3JhcGhTdG10ICpzdG10 KQoreworCU9pZAkJCXBncmVsaWQ7CisJTGlzdENlbGwgICAqbGM7CisJT2JqZWN0QWRkcmVzcyBw Z2FkZHJlc3M7CisKKwlwZ3JlbGlkID0gUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKHN0bXQtPnBn bmFtZSwKKwkJCQkJCQkJCSAgIFNoYXJlUm93RXhjbHVzaXZlTG9jaywKKwkJCQkJCQkJCSAgIHN0 bXQtPm1pc3Npbmdfb2sgPyBSVlJfTUlTU0lOR19PSyA6IDAsCisJCQkJCQkJCQkgICBSYW5nZVZh ckNhbGxiYWNrT3duc1JlbGF0aW9uLAorCQkJCQkJCQkJICAgTlVMTCk7CisJaWYgKHBncmVsaWQg PT0gSW52YWxpZE9pZCkKKwl7CisJCWVyZXBvcnQoTk9USUNFLAorCQkJCShlcnJtc2coInJlbGF0 aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmciLAorCQkJCQkJc3RtdC0+cGduYW1l LT5yZWxuYW1lKSkpOworCQlyZXR1cm4gSW52YWxpZE9iamVjdEFkZHJlc3M7CisJfQorCisJT2Jq ZWN0QWRkcmVzc1NldChwZ2FkZHJlc3MsIFJlbGF0aW9uUmVsYXRpb25JZCwgcGdyZWxpZCk7CisK Kwlmb3JlYWNoKGxjLCBzdG10LT5hZGRfdmVydGV4X3RhYmxlcykKKwl7CisJCVByb3BHcmFwaFZl cnRleCAqdmVydGV4ID0gbGZpcnN0X25vZGUoUHJvcEdyYXBoVmVydGV4LCBsYyk7CisJCXN0cnVj dCBlbGVtZW50X2luZm8gKnZpbmZvOworCQlSZWxhdGlvbglyZWw7CisJCU9pZAkJCXBlb2lkOwor CisJCXZpbmZvID0gcGFsbG9jMF9vYmplY3Qoc3RydWN0IGVsZW1lbnRfaW5mbyk7CisJCXZpbmZv LT5raW5kID0gUEdFS0lORF9WRVJURVg7CisKKwkJdmluZm8tPnJlbGlkID0gUmFuZ2VWYXJHZXRS ZWxpZEV4dGVuZGVkKHZlcnRleC0+dnRhYmxlLCBBY2Nlc3NTaGFyZUxvY2ssIDAsIFJhbmdlVmFy Q2FsbGJhY2tPd25zUmVsYXRpb24sIE5VTEwpOworCisJCXJlbCA9IHRhYmxlX29wZW4odmluZm8t PnJlbGlkLCBOb0xvY2spOworCisJCWlmIChyZWwtPnJkX3JlbC0+cmVscGVyc2lzdGVuY2UgPT0g UkVMUEVSU0lTVEVOQ0VfVEVNUCAmJiBnZXRfcmVsX3BlcnNpc3RlbmNlKHBncmVsaWQpICE9IFJF TFBFUlNJU1RFTkNFX1RFTVApCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJD T0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCQkgZXJybXNnKCJjYW5ub3QgYWRk IHRlbXBvcmFyeSBlbGVtZW50IHRhYmxlIHRvIG5vbi10ZW1wb3JhcnkgcHJvcGVydHkgZ3JhcGgi KSwKKwkJCQkJIGVycmRldGFpbCgiVGFibGUgXCIlc1wiIGlzIGEgdGVtcG9yYXJ5IHRhYmxlLiIs IGdldF9yZWxfbmFtZSh2aW5mby0+cmVsaWQpKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihw c3RhdGUsIHZlcnRleC0+dnRhYmxlLT5sb2NhdGlvbikpKTsKKworCQlpZiAodmVydGV4LT52dGFi bGUtPmFsaWFzKQorCQkJdmluZm8tPmFsaWFzbmFtZSA9IHZlcnRleC0+dnRhYmxlLT5hbGlhcy0+ YWxpYXNuYW1lOworCQllbHNlCisJCQl2aW5mby0+YWxpYXNuYW1lID0gdmVydGV4LT52dGFibGUt PnJlbG5hbWU7CisKKwkJdmluZm8tPmtleSA9IHByb3BncmFwaF9lbGVtZW50X2dldF9rZXkocHN0 YXRlLCB2ZXJ0ZXgtPnZrZXksIHJlbCwgdmluZm8tPmFsaWFzbmFtZSwgdmVydGV4LT5sb2NhdGlv bik7CisKKwkJdmluZm8tPmxhYmVscyA9IHZlcnRleC0+bGFiZWxzOworCisJCXRhYmxlX2Nsb3Nl KHJlbCwgTm9Mb2NrKTsKKworCQlwZW9pZCA9IGluc2VydF9lbGVtZW50X3JlY29yZChwZ2FkZHJl c3MsIHZpbmZvKTsKKworCQlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOworCQljaGVja19lbGVt ZW50X3Byb3BlcnRpZXMocGVvaWQpOworCQljaGVja19hbGxfbGFiZWxzX3Byb3BlcnRpZXMocGdy ZWxpZCk7CisJfQorCisJZm9yZWFjaChsYywgc3RtdC0+YWRkX2VkZ2VfdGFibGVzKQorCXsKKwkJ UHJvcEdyYXBoRWRnZSAqZWRnZSA9IGxmaXJzdF9ub2RlKFByb3BHcmFwaEVkZ2UsIGxjKTsKKwkJ c3RydWN0IGVsZW1lbnRfaW5mbyAqZWluZm87CisJCVJlbGF0aW9uCXJlbDsKKwkJUmVsYXRpb24J c3JjcmVsOworCQlSZWxhdGlvbglkZXN0cmVsOworCQlPaWQJCQlwZW9pZDsKKworCQllaW5mbyA9 IHBhbGxvYzBfb2JqZWN0KHN0cnVjdCBlbGVtZW50X2luZm8pOworCQllaW5mby0+a2luZCA9IFBH RUtJTkRfRURHRTsKKworCQllaW5mby0+cmVsaWQgPSBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWQo ZWRnZS0+ZXRhYmxlLCBBY2Nlc3NTaGFyZUxvY2ssIDAsIFJhbmdlVmFyQ2FsbGJhY2tPd25zUmVs YXRpb24sIE5VTEwpOworCisJCXJlbCA9IHRhYmxlX29wZW4oZWluZm8tPnJlbGlkLCBOb0xvY2sp OworCisJCWlmIChyZWwtPnJkX3JlbC0+cmVscGVyc2lzdGVuY2UgPT0gUkVMUEVSU0lTVEVOQ0Vf VEVNUCAmJiBnZXRfcmVsX3BlcnNpc3RlbmNlKHBncmVsaWQpICE9IFJFTFBFUlNJU1RFTkNFX1RF TVApCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JK RUNUX0RFRklOSVRJT04pLAorCQkJCQkgZXJybXNnKCJjYW5ub3QgYWRkIHRlbXBvcmFyeSBlbGVt ZW50IHRhYmxlIHRvIG5vbi10ZW1wb3JhcnkgcHJvcGVydHkgZ3JhcGgiKSwKKwkJCQkJIGVycmRl dGFpbCgiVGFibGUgXCIlc1wiIGlzIGEgdGVtcG9yYXJ5IHRhYmxlLiIsIGdldF9yZWxfbmFtZShl aW5mby0+cmVsaWQpKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGVkZ2UtPmV0 YWJsZS0+bG9jYXRpb24pKSk7CisKKwkJaWYgKGVkZ2UtPmV0YWJsZS0+YWxpYXMpCisJCQllaW5m by0+YWxpYXNuYW1lID0gZWRnZS0+ZXRhYmxlLT5hbGlhcy0+YWxpYXNuYW1lOworCQllbHNlCisJ CQllaW5mby0+YWxpYXNuYW1lID0gZWRnZS0+ZXRhYmxlLT5yZWxuYW1lOworCisJCWVpbmZvLT5r ZXkgPSBwcm9wZ3JhcGhfZWxlbWVudF9nZXRfa2V5KHBzdGF0ZSwgZWRnZS0+ZWtleSwgcmVsLCBl aW5mby0+YWxpYXNuYW1lLCBlZGdlLT5sb2NhdGlvbik7CisKKwkJZWluZm8tPnNyY3ZlcnRleGlk ID0gZ2V0X3ZlcnRleF9vaWQocHN0YXRlLCBwZ3JlbGlkLCBlZGdlLT5lc3JjdmVydGV4LCBlZGdl LT5sb2NhdGlvbik7CisJCWVpbmZvLT5kZXN0dmVydGV4aWQgPSBnZXRfdmVydGV4X29pZChwc3Rh dGUsIHBncmVsaWQsIGVkZ2UtPmVkZXN0dmVydGV4LCBlZGdlLT5sb2NhdGlvbik7CisKKwkJZWlu Zm8tPnNyY3JlbGlkID0gZ2V0X2VsZW1lbnRfcmVsaWQoZWluZm8tPnNyY3ZlcnRleGlkKTsKKwkJ ZWluZm8tPmRlc3RyZWxpZCA9IGdldF9lbGVtZW50X3JlbGlkKGVpbmZvLT5kZXN0dmVydGV4aWQp OworCisJCXNyY3JlbCA9IHRhYmxlX29wZW4oZWluZm8tPnNyY3JlbGlkLCBBY2Nlc3NTaGFyZUxv Y2spOworCQlkZXN0cmVsID0gdGFibGVfb3BlbihlaW5mby0+ZGVzdHJlbGlkLCBBY2Nlc3NTaGFy ZUxvY2spOworCisJCXByb3BncmFwaF9lZGdlX2dldF9yZWZfa2V5cyhwc3RhdGUsIGVkZ2UtPmVz cmNrZXksIGVkZ2UtPmVzcmN2ZXJ0ZXhjb2xzLCByZWwsIHNyY3JlbCwKKwkJCQkJCQkJCWVpbmZv LT5hbGlhc25hbWUsIGVkZ2UtPmxvY2F0aW9uLCAiU09VUkNFIiwKKwkJCQkJCQkJCSZlaW5mby0+ c3Jja2V5LCAmZWluZm8tPnNyY3JlZik7CisJCXByb3BncmFwaF9lZGdlX2dldF9yZWZfa2V5cyhw c3RhdGUsIGVkZ2UtPmVkZXN0a2V5LCBlZGdlLT5lZGVzdHZlcnRleGNvbHMsIHJlbCwgZGVzdHJl bCwKKwkJCQkJCQkJCWVpbmZvLT5hbGlhc25hbWUsIGVkZ2UtPmxvY2F0aW9uLCAiREVTVElOQVRJ T04iLAorCQkJCQkJCQkJJmVpbmZvLT5kZXN0a2V5LCAmZWluZm8tPmRlc3RyZWYpOworCisJCWVp bmZvLT5sYWJlbHMgPSBlZGdlLT5sYWJlbHM7CisKKwkJdGFibGVfY2xvc2UoZGVzdHJlbCwgTm9M b2NrKTsKKwkJdGFibGVfY2xvc2Uoc3JjcmVsLCBOb0xvY2spOworCisJCXRhYmxlX2Nsb3NlKHJl bCwgTm9Mb2NrKTsKKworCQlwZW9pZCA9IGluc2VydF9lbGVtZW50X3JlY29yZChwZ2FkZHJlc3Ms IGVpbmZvKTsKKworCQlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOworCQljaGVja19lbGVtZW50 X3Byb3BlcnRpZXMocGVvaWQpOworCQljaGVja19hbGxfbGFiZWxzX3Byb3BlcnRpZXMocGdyZWxp ZCk7CisJfQorCisJZm9yZWFjaChsYywgc3RtdC0+ZHJvcF92ZXJ0ZXhfdGFibGVzKQorCXsKKwkJ Y2hhcgkgICAqYWxpYXMgPSBzdHJWYWwobGZpcnN0KGxjKSk7CisJCU9pZAkJCXBlb2lkOworCQlP YmplY3RBZGRyZXNzIG9iajsKKworCQlwZW9pZCA9IGdldF92ZXJ0ZXhfb2lkKHBzdGF0ZSwgcGdy ZWxpZCwgYWxpYXMsIC0xKTsKKwkJT2JqZWN0QWRkcmVzc1NldChvYmosIFByb3BncmFwaEVsZW1l bnRSZWxhdGlvbklkLCBwZW9pZCk7CisJCXBlcmZvcm1EZWxldGlvbigmb2JqLCBzdG10LT5kcm9w X2JlaGF2aW9yLCAwKTsKKwl9CisKKwlmb3JlYWNoKGxjLCBzdG10LT5kcm9wX2VkZ2VfdGFibGVz KQorCXsKKwkJY2hhcgkgICAqYWxpYXMgPSBzdHJWYWwobGZpcnN0KGxjKSk7CisJCU9pZAkJCXBl b2lkOworCQlPYmplY3RBZGRyZXNzIG9iajsKKworCQlwZW9pZCA9IGdldF9lZGdlX29pZChwc3Rh dGUsIHBncmVsaWQsIGFsaWFzLCAtMSk7CisJCU9iamVjdEFkZHJlc3NTZXQob2JqLCBQcm9wZ3Jh cGhFbGVtZW50UmVsYXRpb25JZCwgcGVvaWQpOworCQlwZXJmb3JtRGVsZXRpb24oJm9iaiwgc3Rt dC0+ZHJvcF9iZWhhdmlvciwgMCk7CisJfQorCisJLyogUmVtb3ZlIGFueSBvcnBoYW5lZCBwZ19w cm9wZ3JhcGhfbGFiZWwgZW50cmllcyAqLworCWlmIChzdG10LT5kcm9wX3ZlcnRleF90YWJsZXMg fHwgc3RtdC0+ZHJvcF9lZGdlX3RhYmxlcykKKwl7CisJCWZvcmVhY2hfb2lkKGxhYmVsb2lkLCBn ZXRfZ3JhcGhfbGFiZWxfaWRzKHBncmVsaWQpKQorCQl7CisJCQlpZiAoIWdldF9sYWJlbF9lbGVt ZW50X2xhYmVsX2lkcyhsYWJlbG9pZCkpCisJCQl7CisJCQkJT2JqZWN0QWRkcmVzcyBvYmo7CisK KwkJCQlPYmplY3RBZGRyZXNzU2V0KG9iaiwgUHJvcGdyYXBoTGFiZWxSZWxhdGlvbklkLCBsYWJl bG9pZCk7CisJCQkJcGVyZm9ybURlbGV0aW9uKCZvYmosIHN0bXQtPmRyb3BfYmVoYXZpb3IsIDAp OworCQkJfQorCQl9CisJfQorCisJZm9yZWFjaChsYywgc3RtdC0+YWRkX2xhYmVscykKKwl7CisJ CVByb3BHcmFwaExhYmVsQW5kUHJvcGVydGllcyAqbHAgPSBsZmlyc3Rfbm9kZShQcm9wR3JhcGhM YWJlbEFuZFByb3BlcnRpZXMsIGxjKTsKKwkJT2lkCQkJcGVvaWQ7CisJCU9pZAkJCXBnZXJlbGlk OworCQlPaWQJCQllbGxhYmVsb2lkOworCisJCUFzc2VydChscC0+bGFiZWwpOworCisJCWlmIChz dG10LT5lbGVtZW50X2tpbmQgPT0gUFJPUEdSQVBIX0VMRU1FTlRfS0lORF9WRVJURVgpCisJCQlw ZW9pZCA9IGdldF92ZXJ0ZXhfb2lkKHBzdGF0ZSwgcGdyZWxpZCwgc3RtdC0+ZWxlbWVudF9hbGlh cywgLTEpOworCQllbHNlCisJCQlwZW9pZCA9IGdldF9lZGdlX29pZChwc3RhdGUsIHBncmVsaWQs IHN0bXQtPmVsZW1lbnRfYWxpYXMsIC0xKTsKKworCQlwZ2VyZWxpZCA9IGdldF9lbGVtZW50X3Jl bGlkKHBlb2lkKTsKKworCQllbGxhYmVsb2lkID0gaW5zZXJ0X2xhYmVsX3JlY29yZChwZ3JlbGlk LCBwZW9pZCwgbHAtPmxhYmVsKTsKKwkJaW5zZXJ0X3Byb3BlcnR5X3JlY29yZHMocGdyZWxpZCwg ZWxsYWJlbG9pZCwgcGdlcmVsaWQsIGxwLT5wcm9wZXJ0aWVzKTsKKworCQlDb21tYW5kQ291bnRl ckluY3JlbWVudCgpOworCQljaGVja19lbGVtZW50X3Byb3BlcnRpZXMocGVvaWQpOworCQljaGVj a19lbGVtZW50X2xhYmVsX3Byb3BlcnRpZXMoZWxsYWJlbG9pZCk7CisJfQorCisJaWYgKHN0bXQt PmRyb3BfbGFiZWwpCisJeworCQlPaWQJCQlwZW9pZDsKKwkJT2lkCQkJbGFiZWxvaWQ7CisJCU9p ZAkJCWVsbGFiZWxvaWQ7CisJCU9iamVjdEFkZHJlc3Mgb2JqOworCisJCWlmIChzdG10LT5lbGVt ZW50X2tpbmQgPT0gUFJPUEdSQVBIX0VMRU1FTlRfS0lORF9WRVJURVgpCisJCQlwZW9pZCA9IGdl dF92ZXJ0ZXhfb2lkKHBzdGF0ZSwgcGdyZWxpZCwgc3RtdC0+ZWxlbWVudF9hbGlhcywgLTEpOwor CQllbHNlCisJCQlwZW9pZCA9IGdldF9lZGdlX29pZChwc3RhdGUsIHBncmVsaWQsIHN0bXQtPmVs ZW1lbnRfYWxpYXMsIC0xKTsKKworCQlsYWJlbG9pZCA9IEdldFN5c0NhY2hlT2lkMihQUk9QR1JB UEhMQUJFTE5BTUUsCisJCQkJCQkJCSAgIEFudW1fcGdfcHJvcGdyYXBoX2xhYmVsX29pZCwKKwkJ CQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShwZ3JlbGlkKSwKKwkJCQkJCQkJICAgQ1N0cmluZ0dl dERhdHVtKHN0bXQtPmRyb3BfbGFiZWwpKTsKKwkJaWYgKCFsYWJlbG9pZCkKKwkJCWVyZXBvcnQo RVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJZXJy bXNnKCJwcm9wZXJ0eSBncmFwaCBcIiVzXCIgZWxlbWVudCBcIiVzXCIgaGFzIG5vIGxhYmVsIFwi JXNcIiIsCisJCQkJCQkgICBnZXRfcmVsX25hbWUocGdyZWxpZCksIHN0bXQtPmVsZW1lbnRfYWxp YXMsIHN0bXQtPmRyb3BfbGFiZWwpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCAt MSkpOworCisJCWVsbGFiZWxvaWQgPSBHZXRTeXNDYWNoZU9pZDIoUFJPUEdSQVBIRUxFTUVOVExB QkVMRUxFTUVOVExBQkVMLAorCQkJCQkJCQkJIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFi ZWxfb2lkLAorCQkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0ocGVvaWQpLAorCQkJCQkJCQkJIE9i amVjdElkR2V0RGF0dW0obGFiZWxvaWQpKTsKKworCQlpZiAoIWVsbGFiZWxvaWQpCisJCQllcmVw b3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJ CWVycm1zZygicHJvcGVydHkgZ3JhcGggXCIlc1wiIGVsZW1lbnQgXCIlc1wiIGhhcyBubyBsYWJl bCBcIiVzXCIiLAorCQkJCQkJICAgZ2V0X3JlbF9uYW1lKHBncmVsaWQpLCBzdG10LT5lbGVtZW50 X2FsaWFzLCBzdG10LT5kcm9wX2xhYmVsKSwKKwkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0 ZSwgLTEpKTsKKworCQlPYmplY3RBZGRyZXNzU2V0KG9iaiwgUHJvcGdyYXBoRWxlbWVudExhYmVs UmVsYXRpb25JZCwgZWxsYWJlbG9pZCk7CisJCXBlcmZvcm1EZWxldGlvbigmb2JqLCBzdG10LT5k cm9wX2JlaGF2aW9yLCAwKTsKKworCQkvKiBSZW1vdmUgYW55IG9ycGhhbmVkIHBnX3Byb3BncmFw aF9sYWJlbCBlbnRyaWVzICovCisJCWlmICghZ2V0X2xhYmVsX2VsZW1lbnRfbGFiZWxfaWRzKGxh YmVsb2lkKSkKKwkJeworCQkJT2JqZWN0QWRkcmVzc1NldChvYmosIFByb3BncmFwaExhYmVsUmVs YXRpb25JZCwgbGFiZWxvaWQpOworCQkJcGVyZm9ybURlbGV0aW9uKCZvYmosIHN0bXQtPmRyb3Bf YmVoYXZpb3IsIDApOworCQl9CisJfQorCisJaWYgKHN0bXQtPmFkZF9wcm9wZXJ0aWVzKQorCXsK KwkJT2lkCQkJcGVvaWQ7CisJCU9pZAkJCXBnZXJlbGlkOworCQlPaWQJCQlsYWJlbG9pZDsKKwkJ T2lkCQkJZWxsYWJlbG9pZDsKKworCQlpZiAoc3RtdC0+ZWxlbWVudF9raW5kID09IFBST1BHUkFQ SF9FTEVNRU5UX0tJTkRfVkVSVEVYKQorCQkJcGVvaWQgPSBnZXRfdmVydGV4X29pZChwc3RhdGUs IHBncmVsaWQsIHN0bXQtPmVsZW1lbnRfYWxpYXMsIC0xKTsKKwkJZWxzZQorCQkJcGVvaWQgPSBn ZXRfZWRnZV9vaWQocHN0YXRlLCBwZ3JlbGlkLCBzdG10LT5lbGVtZW50X2FsaWFzLCAtMSk7CisK KwkJbGFiZWxvaWQgPSBHZXRTeXNDYWNoZU9pZDIoUFJPUEdSQVBITEFCRUxOQU1FLAorCQkJCQkJ CQkgICBBbnVtX3BnX3Byb3BncmFwaF9sYWJlbF9vaWQsCisJCQkJCQkJCSAgIE9iamVjdElkR2V0 RGF0dW0ocGdyZWxpZCksCisJCQkJCQkJCSAgIENTdHJpbmdHZXREYXR1bShzdG10LT5hbHRlcl9s YWJlbCkpOworCQlpZiAoIWxhYmVsb2lkKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29k ZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCQllcnJtc2coInByb3BlcnR5IGdyYXBo IFwiJXNcIiBlbGVtZW50IFwiJXNcIiBoYXMgbm8gbGFiZWwgXCIlc1wiIiwKKwkJCQkJCSAgIGdl dF9yZWxfbmFtZShwZ3JlbGlkKSwgc3RtdC0+ZWxlbWVudF9hbGlhcywgc3RtdC0+YWx0ZXJfbGFi ZWwpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCAtMSkpOworCisJCWVsbGFiZWxv aWQgPSBHZXRTeXNDYWNoZU9pZDIoUFJPUEdSQVBIRUxFTUVOVExBQkVMRUxFTUVOVExBQkVMLAor CQkJCQkJCQkJIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWxfb2lkLAorCQkJCQkJCQkJ IE9iamVjdElkR2V0RGF0dW0ocGVvaWQpLAorCQkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0obGFi ZWxvaWQpKTsKKwkJaWYgKCFlbGxhYmVsb2lkKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJy Y29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCQllcnJtc2coInByb3BlcnR5IGdy YXBoIFwiJXNcIiBlbGVtZW50IFwiJXNcIiBoYXMgbm8gbGFiZWwgXCIlc1wiIiwKKwkJCQkJCSAg IGdldF9yZWxfbmFtZShwZ3JlbGlkKSwgc3RtdC0+ZWxlbWVudF9hbGlhcywgc3RtdC0+YWx0ZXJf bGFiZWwpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCAtMSkpOworCisJCXBnZXJl bGlkID0gZ2V0X2VsZW1lbnRfcmVsaWQocGVvaWQpOworCisJCWluc2VydF9wcm9wZXJ0eV9yZWNv cmRzKHBncmVsaWQsIGVsbGFiZWxvaWQsIHBnZXJlbGlkLCBzdG10LT5hZGRfcHJvcGVydGllcyk7 CisKKwkJQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKKwkJY2hlY2tfZWxlbWVudF9wcm9wZXJ0 aWVzKHBlb2lkKTsKKwkJY2hlY2tfZWxlbWVudF9sYWJlbF9wcm9wZXJ0aWVzKGVsbGFiZWxvaWQp OworCX0KKworCWlmIChzdG10LT5kcm9wX3Byb3BlcnRpZXMpCisJeworCQlPaWQJCQlwZW9pZDsK KwkJT2lkCQkJbGFiZWxvaWQ7CisJCU9pZAkJCWVsbGFiZWxvaWQ7CisJCU9iamVjdEFkZHJlc3Mg b2JqOworCisJCWlmIChzdG10LT5lbGVtZW50X2tpbmQgPT0gUFJPUEdSQVBIX0VMRU1FTlRfS0lO RF9WRVJURVgpCisJCQlwZW9pZCA9IGdldF92ZXJ0ZXhfb2lkKHBzdGF0ZSwgcGdyZWxpZCwgc3Rt dC0+ZWxlbWVudF9hbGlhcywgLTEpOworCQllbHNlCisJCQlwZW9pZCA9IGdldF9lZGdlX29pZChw c3RhdGUsIHBncmVsaWQsIHN0bXQtPmVsZW1lbnRfYWxpYXMsIC0xKTsKKworCQlsYWJlbG9pZCA9 IEdldFN5c0NhY2hlT2lkMihQUk9QR1JBUEhMQUJFTE5BTUUsCisJCQkJCQkJCSAgIEFudW1fcGdf cHJvcGdyYXBoX2xhYmVsX29pZCwKKwkJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShwZ3JlbGlk KSwKKwkJCQkJCQkJICAgQ1N0cmluZ0dldERhdHVtKHN0bXQtPmFsdGVyX2xhYmVsKSk7CisJCWlm ICghbGFiZWxvaWQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfVU5E RUZJTkVEX09CSkVDVCksCisJCQkJCWVycm1zZygicHJvcGVydHkgZ3JhcGggXCIlc1wiIGVsZW1l bnQgXCIlc1wiIGhhcyBubyBsYWJlbCBcIiVzXCIiLAorCQkJCQkJICAgZ2V0X3JlbF9uYW1lKHBn cmVsaWQpLCBzdG10LT5lbGVtZW50X2FsaWFzLCBzdG10LT5hbHRlcl9sYWJlbCksCisJCQkJCXBh cnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIC0xKSk7CisKKwkJZWxsYWJlbG9pZCA9IEdldFN5c0Nh Y2hlT2lkMihQUk9QR1JBUEhFTEVNRU5UTEFCRUxFTEVNRU5UTEFCRUwsCisJCQkJCQkJCQkgQW51 bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbF9vaWQsCisJCQkJCQkJCQkgT2JqZWN0SWRHZXRE YXR1bShwZW9pZCksCisJCQkJCQkJCQkgT2JqZWN0SWRHZXREYXR1bShsYWJlbG9pZCkpOworCisJ CWlmICghZWxsYWJlbG9pZCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09E RV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJZXJybXNnKCJwcm9wZXJ0eSBncmFwaCBcIiVzXCIg ZWxlbWVudCBcIiVzXCIgaGFzIG5vIGxhYmVsIFwiJXNcIiIsCisJCQkJCQkgICBnZXRfcmVsX25h bWUocGdyZWxpZCksIHN0bXQtPmVsZW1lbnRfYWxpYXMsIHN0bXQtPmFsdGVyX2xhYmVsKSwKKwkJ CQkJcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgLTEpKTsKKworCQlmb3JlYWNoKGxjLCBzdG10 LT5kcm9wX3Byb3BlcnRpZXMpCisJCXsKKwkJCWNoYXIJICAgKnByb3BuYW1lID0gc3RyVmFsKGxm aXJzdChsYykpOworCQkJT2lkCQkJcHJvcG9pZDsKKwkJCU9pZAkJCXBscG9pZDsKKworCQkJcHJv cG9pZCA9IEdldFN5c0NhY2hlT2lkMihQUk9QR1JBUEhQUk9QTkFNRSwKKwkJCQkJCQkJCSAgQW51 bV9wZ19wcm9wZ3JhcGhfcHJvcGVydHlfb2lkLAorCQkJCQkJCQkJICBPYmplY3RJZEdldERhdHVt KHBncmVsaWQpLAorCQkJCQkJCQkJICBDU3RyaW5nR2V0RGF0dW0ocHJvcG5hbWUpKTsKKwkJCWlm ICghcHJvcG9pZCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX1VO REVGSU5FRF9PQkpFQ1QpLAorCQkJCQkJZXJybXNnKCJwcm9wZXJ0eSBncmFwaCBcIiVzXCIgZWxl bWVudCBcIiVzXCIgbGFiZWwgXCIlc1wiIGhhcyBubyBwcm9wZXJ0eSBcIiVzXCIiLAorCQkJCQkJ CSAgIGdldF9yZWxfbmFtZShwZ3JlbGlkKSwgc3RtdC0+ZWxlbWVudF9hbGlhcywgc3RtdC0+YWx0 ZXJfbGFiZWwsIHByb3BuYW1lKSwKKwkJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIC0x KSk7CisKKwkJCXBscG9pZCA9IEdldFN5c0NhY2hlT2lkMihQUk9QR1JBUEhMQUJFTFBST1AsIEFu dW1fcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5X29pZCwgT2JqZWN0SWRHZXREYXR1bShlbGxh YmVsb2lkKSwgT2JqZWN0SWRHZXREYXR1bShwcm9wb2lkKSk7CisKKwkJCU9iamVjdEFkZHJlc3NT ZXQob2JqLCBQcm9wZ3JhcGhMYWJlbFByb3BlcnR5UmVsYXRpb25JZCwgcGxwb2lkKTsKKwkJCXBl cmZvcm1EZWxldGlvbigmb2JqLCBzdG10LT5kcm9wX2JlaGF2aW9yLCAwKTsKKwkJfQorCisJCWNo ZWNrX2VsZW1lbnRfbGFiZWxfcHJvcGVydGllcyhlbGxhYmVsb2lkKTsKKwl9CisKKwkvKiBSZW1v dmUgYW55IG9ycGhhbmVkIHBnX3Byb3BncmFwaF9wcm9wZXJ0eSBlbnRyaWVzICovCisJaWYgKHN0 bXQtPmRyb3BfcHJvcGVydGllcyB8fCBzdG10LT5kcm9wX3ZlcnRleF90YWJsZXMgfHwgc3RtdC0+ ZHJvcF9lZGdlX3RhYmxlcykKKwl7CisJCWZvcmVhY2hfb2lkKHByb3BvaWQsIGdldF9ncmFwaF9w cm9wZXJ0eV9pZHMocGdyZWxpZCkpCisJCXsKKwkJCVJlbGF0aW9uCXJlbDsKKwkJCVN5c1NjYW5E ZXNjIHNjYW47CisJCQlTY2FuS2V5RGF0YSBrZXlbMV07CisKKwkJCXJlbCA9IHRhYmxlX29wZW4o UHJvcGdyYXBoTGFiZWxQcm9wZXJ0eVJlbGF0aW9uSWQsIFJvd1NoYXJlTG9jayk7CisJCQlTY2Fu S2V5SW5pdCgma2V5WzBdLAorCQkJCQkJQW51bV9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHlf cGxwcHJvcGlkLAorCQkJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJCQkJ T2JqZWN0SWRHZXREYXR1bShwcm9wb2lkKSk7CisJCQlzY2FuID0gc3lzdGFibGVfYmVnaW5zY2Fu KHJlbCwgSW52YWxpZE9pZCAvKiBGSVhNRSAqLyAsCisJCQkJCQkJCQkgIHRydWUsIE5VTEwsIDEs IGtleSk7CisJCQlpZiAoIXN5c3RhYmxlX2dldG5leHQoc2NhbikpCisJCQl7CisJCQkJT2JqZWN0 QWRkcmVzcyBvYmo7CisKKwkJCQlPYmplY3RBZGRyZXNzU2V0KG9iaiwgUHJvcGdyYXBoUHJvcGVy dHlSZWxhdGlvbklkLCBwcm9wb2lkKTsKKwkJCQlwZXJmb3JtRGVsZXRpb24oJm9iaiwgc3RtdC0+ ZHJvcF9iZWhhdmlvciwgMCk7CisJCQl9CisKKwkJCXN5c3RhYmxlX2VuZHNjYW4oc2Nhbik7CisJ CQl0YWJsZV9jbG9zZShyZWwsIFJvd1NoYXJlTG9jayk7CisJCX0KKwl9CisKKwlyZXR1cm4gcGdh ZGRyZXNzOworfQorCisvKgorICogR2V0IE9JRCBvZiB2ZXJ0ZXggZnJvbSBncmFwaCBPSUQgYW5k IGVsZW1lbnQgYWxpYXMuICBFbGVtZW50IG11c3QgYmUgYQorICogdmVydGV4LCBvdGhlcndpc2Ug ZXJyb3IuCisgKi8KK3N0YXRpYyBPaWQKK2dldF92ZXJ0ZXhfb2lkKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgT2lkIHBncmVsaWQsIGNvbnN0IGNoYXIgKmFsaWFzLCBpbnQgbG9jYXRpb24pCit7CisJSGVh cFR1cGxlCXR1cGxlOworCU9pZAkJCXBlb2lkOworCisJdHVwbGUgPSBTZWFyY2hTeXNDYWNoZTIo UFJPUEdSQVBIRUxBTElBUywgT2JqZWN0SWRHZXREYXR1bShwZ3JlbGlkKSwgQ1N0cmluZ0dldERh dHVtKGFsaWFzKSk7CisJaWYgKCF0dXBsZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2Rl KEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJZXJybXNnKCJwcm9wZXJ0eSBncmFwaCBc IiVzXCIgaGFzIG5vIGVsZW1lbnQgd2l0aCBhbGlhcyBcIiVzXCIiLAorCQkJCQkgICBnZXRfcmVs X25hbWUocGdyZWxpZCksIGFsaWFzKSwKKwkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBs b2NhdGlvbikpOworCisJaWYgKCgoRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudCkgR0VUU1RSVUNU KHR1cGxlKSktPnBnZWtpbmQgIT0gUEdFS0lORF9WRVJURVgpCisJCWVyZXBvcnQoRVJST1IsCisJ CQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJZXJybXNnKCJlbGVtZW50IFwi JXNcIiBvZiBwcm9wZXJ0eSBncmFwaCBcIiVzXCIgaXMgbm90IGEgdmVydGV4IiwKKwkJCQkJICAg YWxpYXMsIGdldF9yZWxfbmFtZShwZ3JlbGlkKSksCisJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHBz dGF0ZSwgbG9jYXRpb24pKTsKKworCXBlb2lkID0gKChGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50 KSBHRVRTVFJVQ1QodHVwbGUpKS0+b2lkOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cGxlKTsKKwor CXJldHVybiBwZW9pZDsKK30KKworLyoKKyAqIEdldCBPSUQgb2YgZWRnZSBmcm9tIGdyYXBoIE9J RCBhbmQgZWxlbWVudCBhbGlhcy4gIEVsZW1lbnQgbXVzdCBiZSBhbiBlZGdlLAorICogb3RoZXJ3 aXNlIGVycm9yLgorICovCitzdGF0aWMgT2lkCitnZXRfZWRnZV9vaWQoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBPaWQgcGdyZWxpZCwgY29uc3QgY2hhciAqYWxpYXMsIGludCBsb2NhdGlvbikKK3sKKwlI ZWFwVHVwbGUJdHVwbGU7CisJT2lkCQkJcGVvaWQ7CisKKwl0dXBsZSA9IFNlYXJjaFN5c0NhY2hl MihQUk9QR1JBUEhFTEFMSUFTLCBPYmplY3RJZEdldERhdHVtKHBncmVsaWQpLCBDU3RyaW5nR2V0 RGF0dW0oYWxpYXMpKTsKKwlpZiAoIXR1cGxlKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNv ZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQllcnJtc2coInByb3BlcnR5IGdyYXBo IFwiJXNcIiBoYXMgbm8gZWxlbWVudCB3aXRoIGFsaWFzIFwiJXNcIiIsCisJCQkJCSAgIGdldF9y ZWxfbmFtZShwZ3JlbGlkKSwgYWxpYXMpLAorCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUs IGxvY2F0aW9uKSk7CisKKwlpZiAoKChGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50KSBHRVRTVFJV Q1QodHVwbGUpKS0+cGdla2luZCAhPSBQR0VLSU5EX0VER0UpCisJCWVyZXBvcnQoRVJST1IsCisJ CQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJZXJybXNnKCJlbGVtZW50IFwi JXNcIiBvZiBwcm9wZXJ0eSBncmFwaCBcIiVzXCIgaXMgbm90IGFuIGVkZ2UiLAorCQkJCQkgICBh bGlhcywgZ2V0X3JlbF9uYW1lKHBncmVsaWQpKSwKKwkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0 YXRlLCBsb2NhdGlvbikpOworCisJcGVvaWQgPSAoKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQp IEdFVFNUUlVDVCh0dXBsZSkpLT5vaWQ7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOworCisJ cmV0dXJuIHBlb2lkOworfQorCisvKgorICogR2V0IHRoZSBlbGVtZW50IHRhYmxlIHJlbGF0aW9u IE9JRCBmcm9tIHRoZSBPSUQgb2YgdGhlIGVsZW1lbnQuCisgKi8KK3N0YXRpYyBPaWQKK2dldF9l bGVtZW50X3JlbGlkKE9pZCBwZWlkKQoreworCUhlYXBUdXBsZQl0dXBsZTsKKwlPaWQJCQlwZ2Vy ZWxpZDsKKworCXR1cGxlID0gU2VhcmNoU3lzQ2FjaGUxKFBST1BHUkFQSEVMT0lELCBPYmplY3RJ ZEdldERhdHVtKHBlaWQpKTsKKwlpZiAoIXR1cGxlKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9v a3VwIGZhaWxlZCBmb3IgcHJvcGVydHkgZ3JhcGggZWxlbWVudCAldSIsIHBlaWQpOworCisJcGdl cmVsaWQgPSAoKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQpIEdFVFNUUlVDVCh0dXBsZSkpLT5w Z2VyZWxpZDsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXBsZSk7CisKKwlyZXR1cm4gcGdlcmVsaWQ7 Cit9CisKKy8qCisgKiBHZXQgYSBsaXN0IG9mIGFsbCBsYWJlbCBPSURzIG9mIGEgZ3JhcGguCisg Ki8KK3N0YXRpYyBMaXN0ICoKK2dldF9ncmFwaF9sYWJlbF9pZHMoT2lkIGdyYXBoaWQpCit7CisJ UmVsYXRpb24JcmVsOworCVN5c1NjYW5EZXNjIHNjYW47CisJU2NhbktleURhdGEga2V5WzFdOwor CUhlYXBUdXBsZQl0dXBsZTsKKwlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CisKKwlyZWwgPSB0YWJs ZV9vcGVuKFByb3BncmFwaExhYmVsUmVsYXRpb25JZCwgQWNjZXNzU2hhcmVMb2NrKTsKKwlTY2Fu S2V5SW5pdCgma2V5WzBdLAorCQkJCUFudW1fcGdfcHJvcGdyYXBoX2xhYmVsX3BnbHBnaWQsCisJ CQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLAorCQkJCUZfT0lERVEsIE9iamVjdElkR2V0RGF0dW0o Z3JhcGhpZCkpOworCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4ocmVsLCBQcm9wZ3JhcGhMYWJl bEdyYXBoTmFtZUluZGV4SWQsIHRydWUsIE5VTEwsIDEsIGtleSk7CisJd2hpbGUgKEhlYXBUdXBs ZUlzVmFsaWQodHVwbGUgPSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4pKSkKKwl7CisJCXJlc3VsdCA9 IGxhcHBlbmRfb2lkKHJlc3VsdCwgKChGb3JtX3BnX3Byb3BncmFwaF9sYWJlbCkgR0VUU1RSVUNU KHR1cGxlKSktPm9pZCk7CisJfQorCXN5c3RhYmxlX2VuZHNjYW4oc2Nhbik7CisJdGFibGVfY2xv c2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOworCisJcmV0dXJuIHJlc3VsdDsKK30KKworLyoKKyAq IEdldCBhIGxpc3Qgb2YgYWxsIGVsZW1lbnQgbGFiZWwgT0lEcyBmb3IgYSBsYWJlbC4KKyAqLwor c3RhdGljIExpc3QgKgorZ2V0X2xhYmVsX2VsZW1lbnRfbGFiZWxfaWRzKE9pZCBsYWJlbGlkKQor eworCVJlbGF0aW9uCXJlbDsKKwlTeXNTY2FuRGVzYyBzY2FuOworCVNjYW5LZXlEYXRhIGtleVsx XTsKKwlIZWFwVHVwbGUJdHVwbGU7CisJTGlzdAkgICAqcmVzdWx0ID0gTklMOworCisJcmVsID0g dGFibGVfb3BlbihQcm9wZ3JhcGhFbGVtZW50TGFiZWxSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxv Y2spOworCVNjYW5LZXlJbml0KCZrZXlbMF0sCisJCQkJQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVu dF9sYWJlbF9wZ2VsbGFiZWxpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsCisJCQkJRl9P SURFUSwgT2JqZWN0SWRHZXREYXR1bShsYWJlbGlkKSk7CisJc2NhbiA9IHN5c3RhYmxlX2JlZ2lu c2NhbihyZWwsIFByb3BncmFwaEVsZW1lbnRMYWJlbExhYmVsSW5kZXhJZCwgdHJ1ZSwgTlVMTCwg MSwga2V5KTsKKwl3aGlsZSAoSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSA9IHN5c3RhYmxlX2dldG5l eHQoc2NhbikpKQorCXsKKwkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCAoKEZvcm1fcGdf cHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwpIEdFVFNUUlVDVCh0dXBsZSkpLT5vaWQpOworCX0KKwlz eXN0YWJsZV9lbmRzY2FuKHNjYW4pOworCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVMb2Nr KTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKKy8qCisgKiBHZXQgdGhlIG5hbWVzIG9mIHByb3Bl cnRpZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBlbGVtZW50IGxhYmVsIE9JRC4KKyAqCisg KiBUaGUgcmVzdWx0IGlzIGEgbGlzdCBvZiBTdHJpbmcgbm9kZXMgKHNvIHdlIGNhbiB1c2UgbGlz dCBmdW5jdGlvbnMgdG8KKyAqIGRldGVjdCBkaWZmZXJlbmNlcykuCisgKi8KK3N0YXRpYyBMaXN0 ICoKK2dldF9lbGVtZW50X2xhYmVsX3Byb3BlcnR5X25hbWVzKE9pZCBlbGxhYmVsb2lkKQorewor CVJlbGF0aW9uCXJlbDsKKwlTeXNTY2FuRGVzYyBzY2FuOworCVNjYW5LZXlEYXRhIGtleVsxXTsK KwlIZWFwVHVwbGUJdHVwbGU7CisJTGlzdAkgICAqcmVzdWx0ID0gTklMOworCisJcmVsID0gdGFi bGVfb3BlbihQcm9wZ3JhcGhMYWJlbFByb3BlcnR5UmVsYXRpb25JZCwgQWNjZXNzU2hhcmVMb2Nr KTsKKworCVNjYW5LZXlJbml0KCZrZXlbMF0sCisJCQkJQW51bV9wZ19wcm9wZ3JhcGhfbGFiZWxf cHJvcGVydHlfcGxwZWxsYWJlbGlkLAorCQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwgRl9PSURF USwKKwkJCQlPYmplY3RJZEdldERhdHVtKGVsbGFiZWxvaWQpKTsKKworCXNjYW4gPSBzeXN0YWJs ZV9iZWdpbnNjYW4ocmVsLCBQcm9wZ3JhcGhMYWJlbFByb3BlcnR5TGFiZWxQcm9wSW5kZXhJZCwg dHJ1ZSwgTlVMTCwgMSwga2V5KTsKKworCXdoaWxlICgodHVwbGUgPSBzeXN0YWJsZV9nZXRuZXh0 KHNjYW4pKSkKKwl7CisJCUZvcm1fcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5IHBscGZvcm0g PSAoRm9ybV9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkpIEdFVFNUUlVDVCh0dXBsZSk7CisK KwkJcmVzdWx0ID0gbGFwcGVuZChyZXN1bHQsIG1ha2VTdHJpbmcoZ2V0X3Byb3BncmFwaF9wcm9w ZXJ0eV9uYW1lKHBscGZvcm0tPnBscHByb3BpZCkpKTsKKwl9CisKKwlzeXN0YWJsZV9lbmRzY2Fu KHNjYW4pOworCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCXJldHVybiBy ZXN1bHQ7Cit9CisKKy8qCisgKiBHZXQgYSBsaXN0IG9mIGFsbCBwcm9wZXJ0eSBPSURzIG9mIGEg Z3JhcGguCisgKi8KK3N0YXRpYyBMaXN0ICoKK2dldF9ncmFwaF9wcm9wZXJ0eV9pZHMoT2lkIGdy YXBoaWQpCit7CisJUmVsYXRpb24JcmVsOworCVN5c1NjYW5EZXNjIHNjYW47CisJU2NhbktleURh dGEga2V5WzFdOworCUhlYXBUdXBsZQl0dXBsZTsKKwlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CisK KwlyZWwgPSB0YWJsZV9vcGVuKFByb3BncmFwaFByb3BlcnR5UmVsYXRpb25JZCwgQWNjZXNzU2hh cmVMb2NrKTsKKwlTY2FuS2V5SW5pdCgma2V5WzBdLAorCQkJCUFudW1fcGdfcHJvcGdyYXBoX3By b3BlcnR5X3BncHBnaWQsCisJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLAorCQkJCUZfT0lERVEs IE9iamVjdElkR2V0RGF0dW0oZ3JhcGhpZCkpOworCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4o cmVsLCBQcm9wZ3JhcGhQcm9wZXJ0eU5hbWVJbmRleElkLCB0cnVlLCBOVUxMLCAxLCBrZXkpOwor CXdoaWxlIChIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlID0gc3lzdGFibGVfZ2V0bmV4dChzY2FuKSkp CisJeworCQlyZXN1bHQgPSBsYXBwZW5kX29pZChyZXN1bHQsICgoRm9ybV9wZ19wcm9wZ3JhcGhf cHJvcGVydHkpIEdFVFNUUlVDVCh0dXBsZSkpLT5vaWQpOworCX0KKwlzeXN0YWJsZV9lbmRzY2Fu KHNjYW4pOworCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCXJldHVybiBy ZXN1bHQ7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYwppbmRleCA1NjA3MjczYmY5Zi4uMTkzM2Jk MWNhM2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYwpAQCAtODAsNiArODAsNyBAQCBTZWNMYWJl bFN1cHBvcnRzT2JqZWN0VHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX09Q RkFNSUxZOgogCQljYXNlIE9CSkVDVF9QQVJBTUVURVJfQUNMOgogCQljYXNlIE9CSkVDVF9QT0xJ Q1k6CisJCWNhc2UgT0JKRUNUX1BST1BHUkFQSDoKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT05f TkFNRVNQQUNFOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9SRUw6CiAJCWNhc2UgT0JKRUNU X1JVTEU6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IDQ5Mzc0NzgyNjI1Li40ZTBiMWUy MDQ3OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTMwNyw2ICszMDcsMTIgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm9wbXNnc3RyaW5ncyBkcm9wbXNnc3RyaW5nYXJyYXlbXSA9IHsK IAkJZ2V0dGV4dF9ub29wKCJpbmRleCBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nIiks CiAJCWdldHRleHRfbm9vcCgiXCIlc1wiIGlzIG5vdCBhbiBpbmRleCIpLAogCWdldHRleHRfbm9v cCgiVXNlIERST1AgSU5ERVggdG8gcmVtb3ZlIGFuIGluZGV4LiIpfSwKKwl7UkVMS0lORF9QUk9Q R1JBUEgsCisJCUVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCwKKwkJZ2V0dGV4dF9ub29wKCJwcm9w ZXJ0eSBncmFwaCBcIiVzXCIgZG9lcyBub3QgZXhpc3QiKSwKKwkJZ2V0dGV4dF9ub29wKCJwcm9w ZXJ0eSBncmFwaCBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nIiksCisJCWdldHRleHRf bm9vcCgiXCIlc1wiIGlzIG5vdCBhIHByb3BlcnR5IGdyYXBoIiksCisJZ2V0dGV4dF9ub29wKCJV c2UgRFJPUCBQUk9QRVJUWSBHUkFQSCB0byByZW1vdmUgYSBwcm9wZXJ0eSBncmFwaC4iKX0sCiAJ eydcMCcsIDAsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEx9CiB9OwogCkBAIC0xNTQ2LDYgKzE1NTIs MTAgQEAgUmVtb3ZlUmVsYXRpb25zKERyb3BTdG10ICpkcm9wKQogCQkJcmVsa2luZCA9IFJFTEtJ TkRfRk9SRUlHTl9UQUJMRTsKIAkJCWJyZWFrOwogCisJCWNhc2UgT0JKRUNUX1BST1BHUkFQSDoK KwkJCXJlbGtpbmQgPSBSRUxLSU5EX1BST1BHUkFQSDsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6 CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIGRyb3Agb2JqZWN0IHR5cGU6ICVkIiwKIAkJ CQkgKGludCkgZHJvcC0+cmVtb3ZlVHlwZSk7CkBAIC0xNDg5Miw2ICsxNDkwMiw3IEBAIEFURXhl Y0NoYW5nZU93bmVyKE9pZCByZWxhdGlvbk9pZCwgT2lkIG5ld093bmVySWQsIGJvb2wgcmVjdXJz aW5nLCBMT0NLTU9ERSBsb2NrCiAJCWNhc2UgUkVMS0lORF9NQVRWSUVXOgogCQljYXNlIFJFTEtJ TkRfRk9SRUlHTl9UQUJMRToKIAkJY2FzZSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFOgorCQlj YXNlIFJFTEtJTkRfUFJPUEdSQVBIOgogCQkJLyogb2sgdG8gY2hhbmdlIG93bmVyICovCiAJCQli cmVhazsKIAkJY2FzZSBSRUxLSU5EX0lOREVYOgpAQCAtMTg0MzUsNiArMTg0NDYsMTEgQEAgUmFu Z2VWYXJDYWxsYmFja0ZvckFsdGVyUmVsYXRpb24oY29uc3QgUmFuZ2VWYXIgKnJ2LCBPaWQgcmVs aWQsIE9pZCBvbGRyZWxpZCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBF KSwKIAkJCQkgZXJybXNnKCJcIiVzXCIgaXMgbm90IGEgY29tcG9zaXRlIHR5cGUiLCBydi0+cmVs bmFtZSkpKTsKIAorCWlmIChyZWx0eXBlID09IE9CSkVDVF9QUk9QR1JBUEggJiYgcmVsa2luZCAh PSBSRUxLSU5EX1BST1BHUkFQSCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJD T0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJybXNnKCJcIiVzXCIgaXMgbm90IGEgcHJv cGVydHkgZ3JhcGgiLCBydi0+cmVsbmFtZSkpKTsKKwogCWlmIChyZWx0eXBlID09IE9CSkVDVF9J TkRFWCAmJiByZWxraW5kICE9IFJFTEtJTkRfSU5ERVggJiYKIAkJcmVsa2luZCAhPSBSRUxLSU5E X1BBUlRJVElPTkVEX0lOREVYCiAJCSYmICFJc0Eoc3RtdCwgUmVuYW1lU3RtdCkpCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY01haW4uYwppbmRleCAxYzEyZDZlYmZmMC4uMjZhNzMzYTg2NGEgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY01haW4uYwpAQCAtNjAwLDcgKzYwMCw3IEBAIEV4ZWNDaGVja1Blcm1pc3Npb25zKExp c3QgKnJhbmdlVGFibGUsIExpc3QgKnJ0ZXBlcm1pbmZvcywKIAkJCSAqLwogCQkJQXNzZXJ0KHJ0 ZS0+cnRla2luZCA9PSBSVEVfUkVMQVRJT04gfHwKIAkJCQkgICAocnRlLT5ydGVraW5kID09IFJU RV9TVUJRVUVSWSAmJgotCQkJCQlydGUtPnJlbGtpbmQgPT0gUkVMS0lORF9WSUVXKSk7CisJCQkJ CShydGUtPnJlbGtpbmQgPT0gUkVMS0lORF9WSUVXIHx8IHJ0ZS0+cmVsa2luZCA9PSBSRUxLSU5E X1BST1BHUkFQSCkpKTsKIAogCQkJKHZvaWQpIGdldFJURVBlcm1pc3Npb25JbmZvKHJ0ZXBlcm1p bmZvcywgcnRlKTsKIAkJCS8qIE1hbnktdG8tb25lIG1hcHBpbmcgbm90IGFsbG93ZWQgKi8KQEAg LTExMTksNiArMTExOSwxMiBAQCBDaGVja1ZhbGlkUmVzdWx0UmVsKFJlc3VsdFJlbEluZm8gKnJl c3VsdFJlbEluZm8sIENtZFR5cGUgb3BlcmF0aW9uLAogCQkJCQlicmVhazsKIAkJCX0KIAkJCWJy ZWFrOworCQljYXNlIFJFTEtJTkRfUFJPUEdSQVBIOgorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ KGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJCSBlcnJtc2coImNhbm5v dCBjaGFuZ2UgcHJvcGVydHkgZ3JhcGggXCIlc1wiIiwKKwkJCQkJCQlSZWxhdGlvbkdldFJlbGF0 aW9uTmFtZShyZXN1bHRSZWwpKSkpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllcmVwb3J0 KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKQEAgLTEx ODMsNiArMTE4OSwxMyBAQCBDaGVja1ZhbGlkUm93TWFya1JlbChSZWxhdGlvbiByZWwsIFJvd01h cmtUeXBlIG1hcmtUeXBlKQogCQkJCQkJIGVycm1zZygiY2Fubm90IGxvY2sgcm93cyBpbiBmb3Jl aWduIHRhYmxlIFwiJXNcIiIsCiAJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkp KSk7CiAJCQlicmVhazsKKwkJY2FzZSBSRUxLSU5EX1BST1BHUkFQSDoKKwkJCS8qIFNob3VsZCBu b3QgZ2V0IGhlcmU7IHJld3JpdGVyIHNob3VsZCBoYXZlIGV4cGFuZGVkIHRoZSBncmFwaCAqLwor CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQ RSksCisJCQkJCSBlcnJtc2coImNhbm5vdCBsb2NrIHJvd3MgaW4gcHJvcGVydHkgZ3JhcGggXCIl c1wiIiwKKwkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOworCQkJYnJlYWs7 CiAJCWRlZmF1bHQ6CiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1dS T05HX09CSkVDVF9UWVBFKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5j cy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKaW5kZXggNTA3MDVhMWUxNTguLjM3 M2ZhMWVlYzJmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYworKysg Yi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwpAQCAtMjgxLDYgKzI4MSw5IEBAIGV4cHJU eXBlKGNvbnN0IE5vZGUgKmV4cHIpCiAJCWNhc2UgVF9QbGFjZUhvbGRlclZhcjoKIAkJCXR5cGUg PSBleHByVHlwZSgoTm9kZSAqKSAoKGNvbnN0IFBsYWNlSG9sZGVyVmFyICopIGV4cHIpLT5waGV4 cHIpOwogCQkJYnJlYWs7CisJCWNhc2UgVF9HcmFwaFByb3BlcnR5UmVmOgorCQkJdHlwZSA9ICgo Y29uc3QgR3JhcGhQcm9wZXJ0eVJlZiAqKSBleHByKS0+dHlwZUlkOworCQkJYnJlYWs7CiAJCWRl ZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLCAoaW50 KSBub2RlVGFnKGV4cHIpKTsKIAkJCXR5cGUgPSBJbnZhbGlkT2lkOwkvKiBrZWVwIGNvbXBpbGVy IHF1aWV0ICovCkBAIC01MzEsNiArNTM0LDkgQEAgZXhwclR5cG1vZChjb25zdCBOb2RlICpleHBy KQogCQkJcmV0dXJuICgoY29uc3QgU2V0VG9EZWZhdWx0ICopIGV4cHIpLT50eXBlTW9kOwogCQlj YXNlIFRfUGxhY2VIb2xkZXJWYXI6CiAJCQlyZXR1cm4gZXhwclR5cG1vZCgoTm9kZSAqKSAoKGNv bnN0IFBsYWNlSG9sZGVyVmFyICopIGV4cHIpLT5waGV4cHIpOworCQljYXNlIFRfR3JhcGhQcm9w ZXJ0eVJlZjoKKwkJCS8qIFRPRE8gKi8KKwkJCXJldHVybiAtMTsKIAkJZGVmYXVsdDoKIAkJCWJy ZWFrOwogCX0KQEAgLTEwNTAsNiArMTA1Niw5IEBAIGV4cHJDb2xsYXRpb24oY29uc3QgTm9kZSAq ZXhwcikKIAkJY2FzZSBUX1BsYWNlSG9sZGVyVmFyOgogCQkJY29sbCA9IGV4cHJDb2xsYXRpb24o KE5vZGUgKikgKChjb25zdCBQbGFjZUhvbGRlclZhciAqKSBleHByKS0+cGhleHByKTsKIAkJCWJy ZWFrOworCQljYXNlIFRfR3JhcGhQcm9wZXJ0eVJlZjoKKwkJCWNvbGwgPSBERUZBVUxUX0NPTExB VElPTl9PSUQ7CS8qIEZJWE1FICovCisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJS T1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsIChpbnQpIG5vZGVUYWcoZXhwcikpOwog CQkJY29sbCA9IEludmFsaWRPaWQ7CS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KQEAgLTIxMTcs NiArMjEyNiw3IEBAIGV4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpub2RlLAogCQlj YXNlIFRfUmFuZ2VUYmxSZWY6CiAJCWNhc2UgVF9Tb3J0R3JvdXBDbGF1c2U6CiAJCWNhc2UgVF9D VEVTZWFyY2hDbGF1c2U6CisJCWNhc2UgVF9HcmFwaFByb3BlcnR5UmVmOgogCQljYXNlIFRfTWVy Z2VTdXBwb3J0RnVuYzoKIAkJCS8qIHByaW1pdGl2ZSBub2RlIHR5cGVzIHdpdGggbm8gZXhwcmVz c2lvbiBzdWJub2RlcyAqLwogCQkJYnJlYWs7CkBAIC0yNjU1LDYgKzI2NjUsMjYgQEAgZXhwcmVz c2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiB0cnVlOwogCQkJ fQogCQkJYnJlYWs7CisJCWNhc2UgVF9HcmFwaEVsZW1lbnRQYXR0ZXJuOgorCQkJeworCQkJCUdy YXBoRWxlbWVudFBhdHRlcm4gKmdlcCA9IChHcmFwaEVsZW1lbnRQYXR0ZXJuICopIG5vZGU7CisK KwkJCQlpZiAoV0FMSyhnZXAtPnN1YmV4cHIpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAo V0FMSyhnZXAtPndoZXJlQ2xhdXNlKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQl9CisJCQlicmVh azsKKwkJY2FzZSBUX0dyYXBoUGF0dGVybjoKKwkJCXsKKwkJCQlHcmFwaFBhdHRlcm4gKmdwID0g KEdyYXBoUGF0dGVybiAqKSBub2RlOworCisJCQkJaWYgKExJU1RfV0FMSyhncC0+cGF0aF9wYXR0 ZXJuX2xpc3QpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhncC0+d2hlcmVDbGF1 c2UpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJ ZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwKIAkJCQkgKGludCkgbm9k ZVRhZyhub2RlKSk7CkBAIC0yODQ4LDYgKzI4NzgsMTIgQEAgcmFuZ2VfdGFibGVfZW50cnlfd2Fs a2VyX2ltcGwoUmFuZ2VUYmxFbnRyeSAqcnRlLAogCQkJaWYgKFdBTEsocnRlLT52YWx1ZXNfbGlz dHMpKQogCQkJCXJldHVybiB0cnVlOwogCQkJYnJlYWs7CisJCWNhc2UgUlRFX0dSQVBIX1RBQkxF OgorCQkJaWYgKFdBTEsocnRlLT5ncmFwaF9wYXR0ZXJuKSkKKwkJCQlyZXR1cm4gdHJ1ZTsKKwkJ CWlmIChXQUxLKHJ0ZS0+Z3JhcGhfdGFibGVfY29sdW1ucykpCisJCQkJcmV0dXJuIHRydWU7CisJ CQlicmVhazsKIAkJY2FzZSBSVEVfQ1RFOgogCQljYXNlIFJURV9OQU1FRFRVUExFU1RPUkU6CiAJ CWNhc2UgUlRFX1JFU1VMVDoKQEAgLTM4OTAsNiArMzkyNiwxMCBAQCByYW5nZV90YWJsZV9tdXRh dG9yX2ltcGwoTGlzdCAqcnRhYmxlLAogCQkJY2FzZSBSVEVfVkFMVUVTOgogCQkJCU1VVEFURShu ZXdydGUtPnZhbHVlc19saXN0cywgcnRlLT52YWx1ZXNfbGlzdHMsIExpc3QgKik7CiAJCQkJYnJl YWs7CisJCQljYXNlIFJURV9HUkFQSF9UQUJMRToKKwkJCQlNVVRBVEUobmV3cnRlLT5ncmFwaF9w YXR0ZXJuLCBydGUtPmdyYXBoX3BhdHRlcm4sIEdyYXBoUGF0dGVybiAqKTsKKwkJCQlNVVRBVEUo bmV3cnRlLT5ncmFwaF90YWJsZV9jb2x1bW5zLCBydGUtPmdyYXBoX3RhYmxlX2NvbHVtbnMsIExp c3QgKik7CisJCQkJYnJlYWs7CiAJCQljYXNlIFJURV9DVEU6CiAJCQljYXNlIFJURV9OQU1FRFRV UExFU1RPUkU6CiAJCQljYXNlIFJURV9SRVNVTFQ6CkBAIC00NTEzLDYgKzQ1NTMsMTggQEAgcmF3 X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1 ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfUmFuZ2VHcmFwaFRhYmxlOgorCQkJeworCQkJ CVJhbmdlR3JhcGhUYWJsZSAqcmd0ID0gKFJhbmdlR3JhcGhUYWJsZSAqKSBub2RlOworCisJCQkJ aWYgKFdBTEsocmd0LT5ncmFwaF9wYXR0ZXJuKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYg KFdBTEsocmd0LT5jb2x1bW5zKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEsocmd0 LT5hbGlhcykpCisJCQkJCXJldHVybiB0cnVlOworCQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgVF9U eXBlTmFtZToKIAkJCXsKIAkJCQlUeXBlTmFtZSAgICp0biA9IChUeXBlTmFtZSAqKSBub2RlOwpA QCAtNDY3MSw2ICs0NzIzLDI2IEBAIHJhd19leHByZXNzaW9uX3RyZWVfd2Fsa2VyX2ltcGwoTm9k ZSAqbm9kZSwKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQl9CiAJCQlicmVhazsKKwkJY2FzZSBUX0dy YXBoRWxlbWVudFBhdHRlcm46CisJCQl7CisJCQkJR3JhcGhFbGVtZW50UGF0dGVybiAqZ2VwID0g KEdyYXBoRWxlbWVudFBhdHRlcm4gKikgbm9kZTsKKworCQkJCWlmIChXQUxLKGdlcC0+c3ViZXhw cikpCisJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChXQUxLKGdlcC0+d2hlcmVDbGF1c2UpKQor CQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOworCQljYXNlIFRfR3JhcGhQYXR0ZXJu OgorCQkJeworCQkJCUdyYXBoUGF0dGVybiAqZ3AgPSAoR3JhcGhQYXR0ZXJuICopIG5vZGU7CisK KwkJCQlpZiAoV0FMSyhncC0+cGF0aF9wYXR0ZXJuX2xpc3QpKQorCQkJCQlyZXR1cm4gdHJ1ZTsK KwkJCQlpZiAoV0FMSyhncC0+d2hlcmVDbGF1c2UpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCX0K KwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBub2Rl IHR5cGU6ICVkIiwKIAkJCQkgKGludCkgbm9kZVRhZyhub2RlKSk7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9ub2Rlcy9vdXRmdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvb3V0ZnVuY3MuYwpp bmRleCA5ODI3Y2YxNmJlNC4uNzk1NTI1NDE5YjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25v ZGVzL291dGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvb3V0ZnVuY3MuYwpAQCAtNTU5 LDYgKzU1OSwxMSBAQCBfb3V0UmFuZ2VUYmxFbnRyeShTdHJpbmdJbmZvIHN0ciwgY29uc3QgUmFu Z2VUYmxFbnRyeSAqbm9kZSkKIAkJCS8qIHdlIHJlLXVzZSB0aGVzZSBSRUxBVElPTiBmaWVsZHMs IHRvbzogKi8KIAkJCVdSSVRFX09JRF9GSUVMRChyZWxpZCk7CiAJCQlicmVhazsKKwkJY2FzZSBS VEVfR1JBUEhfVEFCTEU6CisJCQlXUklURV9PSURfRklFTEQocmVsaWQpOworCQkJV1JJVEVfTk9E RV9GSUVMRChncmFwaF9wYXR0ZXJuKTsKKwkJCVdSSVRFX05PREVfRklFTEQoZ3JhcGhfdGFibGVf Y29sdW1ucyk7CisJCQlicmVhazsKIAkJY2FzZSBSVEVfUkVTVUxUOgogCQkJLyogbm8gZXh0cmEg ZmllbGRzICovCiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL3JlYWRm dW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvcmVhZGZ1bmNzLmMKaW5kZXggYmU1ZjE5ZGQ3ZjYu LjBlNDJkMTRlMWM4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9yZWFkZnVuY3MuYwor KysgYi9zcmMvYmFja2VuZC9ub2Rlcy9yZWFkZnVuY3MuYwpAQCAtNDE5LDYgKzQxOSwxMSBAQCBf cmVhZFJhbmdlVGJsRW50cnkodm9pZCkKIAkJCS8qIHdlIHJlLXVzZSB0aGVzZSBSRUxBVElPTiBm aWVsZHMsIHRvbzogKi8KIAkJCVJFQURfT0lEX0ZJRUxEKHJlbGlkKTsKIAkJCWJyZWFrOworCQlj YXNlIFJURV9HUkFQSF9UQUJMRToKKwkJCVJFQURfT0lEX0ZJRUxEKHJlbGlkKTsKKwkJCVJFQURf Tk9ERV9GSUVMRChncmFwaF9wYXR0ZXJuKTsKKwkJCVJFQURfTk9ERV9GSUVMRChncmFwaF90YWJs ZV9jb2x1bW5zKTsKKwkJCWJyZWFrOwogCQljYXNlIFJURV9SRVNVTFQ6CiAJCQkvKiBubyBleHRy YSBmaWVsZHMgKi8KIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BhdGgvYWxscGF0aHMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2FsbHBhdGhzLmMK aW5kZXggMTcyZWRiNjQzYTQuLjM2NzZkMjA4MGRjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGF0aC9hbGxwYXRocy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRo L2FsbHBhdGhzLmMKQEAgLTcyOCw2ICs3MjgsMTAgQEAgc2V0X3JlbF9jb25zaWRlcl9wYXJhbGxl bChQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVsLAogCQkJICovCiAJCQlyZXR1cm47 CiAKKwkJY2FzZSBSVEVfR1JBUEhfVEFCTEU6CisJCQkvKiBzaG91bGRuJ3QgaGFwcGVuIGhlcmUg Ki8KKwkJCWJyZWFrOworCiAJCWNhc2UgUlRFX1JFU1VMVDoKIAkJCS8qIFJFU1VMVCBSVEVzLCBp biB0aGVtc2VsdmVzLCBhcmUgbm8gcHJvYmxlbS4gKi8KIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMgYi9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYwppbmRleCBhZGFkN2VhOWE5ZS4uODI1ZDhiM2Rk M2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5j CisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jCkBAIC0xMzU1 LDYgKzEzNTUsMTAgQEAgcHVsbF91cF9zaW1wbGVfc3VicXVlcnkoUGxhbm5lckluZm8gKnJvb3Qs IE5vZGUgKmp0bm9kZSwgUmFuZ2VUYmxFbnRyeSAqcnRlLAogCQkJCWNhc2UgUlRFX0dST1VQOgog CQkJCQkvKiB0aGVzZSBjYW4ndCBjb250YWluIGFueSBsYXRlcmFsIHJlZmVyZW5jZXMgKi8KIAkJ CQkJYnJlYWs7CisJCQkJY2FzZSBSVEVfR1JBUEhfVEFCTEU6CisJCQkJCS8qIHNob3VsZG4ndCBo YXBwZW4gaGVyZSAqLworCQkJCQlBc3NlcnQoZmFsc2UpOworCQkJCQlicmVhazsKIAkJCX0KIAkJ fQogCX0KQEAgLTI0MjUsNiArMjQyOSwxMCBAQCByZXBsYWNlX3ZhcnNfaW5fam9pbnRyZWUoTm9k ZSAqanRub2RlLAogCQkJCQkJLyogdGhlc2Ugc2hvdWxkbid0IGJlIG1hcmtlZCBMQVRFUkFMICov CiAJCQkJCQlBc3NlcnQoZmFsc2UpOwogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgUlRFX0dSQVBI X1RBQkxFOgorCQkJCQkJLyogc2hvdWxkbid0IGhhcHBlbiBoZXJlICovCisJCQkJCQlBc3NlcnQo ZmFsc2UpOworCQkJCQkJYnJlYWs7CiAJCQkJfQogCQkJfQogCQl9CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wYXJzZXIvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9wYXJzZXIvTWFrZWZpbGUKaW5k ZXggMzE2MmEwMWYzMDIuLjBmYTIzN2E0YTkwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJz ZXIvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL01ha2VmaWxlCkBAIC0yMyw2ICsy Myw3IEBAIE9CSlMgPSBcCiAJcGFyc2VfZW5yLm8gXAogCXBhcnNlX2V4cHIubyBcCiAJcGFyc2Vf ZnVuYy5vIFwKKwlwYXJzZV9ncmFwaHRhYmxlLm8gXAogCXBhcnNlX2pzb250YWJsZS5vIFwKIAlw YXJzZV9tZXJnZS5vIFwKIAlwYXJzZV9ub2RlLm8gXApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cGFyc2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggMzg2 NGE2NzVkMmEuLmIyYWRmMzhkZDQ0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5h bHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTIxNTAsNyArMjE1 MCw2IEBAIHRyYW5zZm9ybVNldE9wZXJhdGlvblRyZWUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxl Y3RTdG10ICpzdG10LAogCQljaGFyCQlzZWxlY3ROYW1lWzMyXTsKIAkJUGFyc2VOYW1lc3BhY2VJ dGVtICpuc2l0ZW07CiAJCVJhbmdlVGJsUmVmICpydHI7Ci0JCUxpc3RDZWxsICAgKnRsOwogCiAJ CS8qCiAJCSAqIFRyYW5zZm9ybSBTZWxlY3RTdG10IGludG8gYSBRdWVyeS4KQEAgLTIxOTAsNiAr MjE4OSw4IEBAIHRyYW5zZm9ybVNldE9wZXJhdGlvblRyZWUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBT ZWxlY3RTdG10ICpzdG10LAogCQkgKi8KIAkJaWYgKHRhcmdldGxpc3QpCiAJCXsKKwkJCUxpc3RD ZWxsICAgKnRsOworCiAJCQkqdGFyZ2V0bGlzdCA9IE5JTDsKIAkJCWZvcmVhY2godGwsIHNlbGVj dFF1ZXJ5LT50YXJnZXRMaXN0KQogCQkJewpAQCAtMjIyNCw4ICsyMjI1LDYgQEAgdHJhbnNmb3Jt U2V0T3BlcmF0aW9uVHJlZShQYXJzZVN0YXRlICpwc3RhdGUsIFNlbGVjdFN0bXQgKnN0bXQsCiAJ CVNldE9wZXJhdGlvblN0bXQgKm9wID0gbWFrZU5vZGUoU2V0T3BlcmF0aW9uU3RtdCk7CiAJCUxp c3QJICAgKmx0YXJnZXRsaXN0OwogCQlMaXN0CSAgICpydGFyZ2V0bGlzdDsKLQkJTGlzdENlbGwg ICAqbHRsOwotCQlMaXN0Q2VsbCAgICpydGw7CiAJCWNvbnN0IGNoYXIgKmNvbnRleHQ7CiAJCWJv b2wJCXJlY3Vyc2l2ZSA9IChwc3RhdGUtPnBfcGFyZW50X2N0ZSAmJgogCQkJCQkJCQkgcHN0YXRl LT5wX3BhcmVudF9jdGUtPmN0ZXJlY3Vyc2l2ZSk7CkBAIC0yMjYwLDE2MSArMjI1OSwxNzAgQEAg dHJhbnNmb3JtU2V0T3BlcmF0aW9uVHJlZShQYXJzZVN0YXRlICpwc3RhdGUsIFNlbGVjdFN0bXQg KnN0bXQsCiAJCQkJCQkJCQkJCSBmYWxzZSwKIAkJCQkJCQkJCQkJICZydGFyZ2V0bGlzdCk7CiAK LQkJLyoKLQkJICogVmVyaWZ5IHRoYXQgdGhlIHR3byBjaGlsZHJlbiBoYXZlIHRoZSBzYW1lIG51 bWJlciBvZiBub24tanVuawotCQkgKiBjb2x1bW5zLCBhbmQgZGV0ZXJtaW5lIHRoZSB0eXBlcyBv ZiB0aGUgbWVyZ2VkIG91dHB1dCBjb2x1bW5zLgotCQkgKi8KLQkJaWYgKGxpc3RfbGVuZ3RoKGx0 YXJnZXRsaXN0KSAhPSBsaXN0X2xlbmd0aChydGFyZ2V0bGlzdCkpCi0JCQllcmVwb3J0KEVSUk9S LAotCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCi0JCQkJCSBlcnJtc2coImVh Y2ggJXMgcXVlcnkgbXVzdCBoYXZlIHRoZSBzYW1lIG51bWJlciBvZiBjb2x1bW5zIiwKLQkJCQkJ CQljb250ZXh0KSwKLQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsCi0JCQkJCQkJCQkJ ZXhwckxvY2F0aW9uKChOb2RlICopIHJ0YXJnZXRsaXN0KSkpKTsKKwkJY29uc3RydWN0U2V0T3BU YXJnZXRsaXN0KG9wLCBsdGFyZ2V0bGlzdCwgcnRhcmdldGxpc3QsIHRhcmdldGxpc3QsCisJCQkJ CQkJCSBjb250ZXh0LCBwc3RhdGUsIHJlY3Vyc2l2ZSk7CiAKLQkJaWYgKHRhcmdldGxpc3QpCi0J CQkqdGFyZ2V0bGlzdCA9IE5JTDsKLQkJb3AtPmNvbFR5cGVzID0gTklMOwotCQlvcC0+Y29sVHlw bW9kcyA9IE5JTDsKLQkJb3AtPmNvbENvbGxhdGlvbnMgPSBOSUw7Ci0JCW9wLT5ncm91cENsYXVz ZXMgPSBOSUw7Ci0JCWZvcmJvdGgobHRsLCBsdGFyZ2V0bGlzdCwgcnRsLCBydGFyZ2V0bGlzdCkK LQkJewotCQkJVGFyZ2V0RW50cnkgKmx0bGUgPSAoVGFyZ2V0RW50cnkgKikgbGZpcnN0KGx0bCk7 Ci0JCQlUYXJnZXRFbnRyeSAqcnRsZSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QocnRsKTsKLQkJ CU5vZGUJICAgKmxjb2xub2RlID0gKE5vZGUgKikgbHRsZS0+ZXhwcjsKLQkJCU5vZGUJICAgKnJj b2xub2RlID0gKE5vZGUgKikgcnRsZS0+ZXhwcjsKLQkJCU9pZAkJCWxjb2x0eXBlID0gZXhwclR5 cGUobGNvbG5vZGUpOwotCQkJT2lkCQkJcmNvbHR5cGUgPSBleHByVHlwZShyY29sbm9kZSk7Ci0J CQlOb2RlCSAgICpiZXN0ZXhwcjsKLQkJCWludAkJCWJlc3Rsb2NhdGlvbjsKLQkJCU9pZAkJCXJl c2NvbHR5cGU7Ci0JCQlpbnQzMgkJcmVzY29sdHlwbW9kOwotCQkJT2lkCQkJcmVzY29sY29sbDsK LQotCQkJLyogc2VsZWN0IGNvbW1vbiB0eXBlLCBzYW1lIGFzIENBU0UgZXQgYWwgKi8KLQkJCXJl c2NvbHR5cGUgPSBzZWxlY3RfY29tbW9uX3R5cGUocHN0YXRlLAotCQkJCQkJCQkJCQlsaXN0X21h a2UyKGxjb2xub2RlLCByY29sbm9kZSksCi0JCQkJCQkJCQkJCWNvbnRleHQsCi0JCQkJCQkJCQkJ CSZiZXN0ZXhwcik7Ci0JCQliZXN0bG9jYXRpb24gPSBleHByTG9jYXRpb24oYmVzdGV4cHIpOwor CQlyZXR1cm4gKE5vZGUgKikgb3A7CisJfQorfQogCi0JCQkvKgotCQkJICogVmVyaWZ5IHRoZSBj b2VyY2lvbnMgYXJlIGFjdHVhbGx5IHBvc3NpYmxlLiAgSWYgbm90LCB3ZSdkIGZhaWwKLQkJCSAq IGxhdGVyIGFueXdheSwgYnV0IHdlIHdhbnQgdG8gZmFpbCBub3cgd2hpbGUgd2UgaGF2ZSBzdWZm aWNpZW50Ci0JCQkgKiBjb250ZXh0IHRvIHByb2R1Y2UgYW4gZXJyb3IgY3Vyc29yIHBvc2l0aW9u LgotCQkJICoKLQkJCSAqIEZvciBhbGwgbm9uLVVOS05PV04tdHlwZSBjYXNlcywgd2UgdmVyaWZ5 IGNvZXJjaWJpbGl0eSBidXQgd2UKLQkJCSAqIGRvbid0IG1vZGlmeSB0aGUgY2hpbGQncyBleHBy ZXNzaW9uLCBmb3IgZmVhciBvZiBjaGFuZ2luZyB0aGUKLQkJCSAqIGNoaWxkIHF1ZXJ5J3Mgc2Vt YW50aWNzLgotCQkJICoKLQkJCSAqIElmIGEgY2hpbGQgZXhwcmVzc2lvbiBpcyBhbiBVTktOT1dO LXR5cGUgQ29uc3Qgb3IgUGFyYW0sIHdlCi0JCQkgKiB3YW50IHRvIHJlcGxhY2UgaXQgd2l0aCB0 aGUgY29lcmNlZCBleHByZXNzaW9uLiAgVGhpcyBjYW4gb25seQotCQkJICogaGFwcGVuIHdoZW4g dGhlIGNoaWxkIGlzIGEgbGVhZiBzZXQtb3Agbm9kZS4gIEl0J3Mgc2FmZSB0bwotCQkJICogcmVw bGFjZSB0aGUgZXhwcmVzc2lvbiBiZWNhdXNlIGlmIHRoZSBjaGlsZCBxdWVyeSdzIHNlbWFudGlj cwotCQkJICogZGVwZW5kZWQgb24gdGhlIHR5cGUgb2YgdGhpcyBvdXRwdXQgY29sdW1uLCBpdCdk IGhhdmUgYWxyZWFkeQotCQkJICogY29lcmNlZCB0aGUgVU5LTk9XTiB0byBzb21ldGhpbmcgZWxz ZS4gIFdlIHdhbnQgdG8gZG8gdGhpcwotCQkJICogYmVjYXVzZSAoYSkgd2Ugd2FudCB0byB2ZXJp ZnkgdGhhdCBhIENvbnN0IGlzIHZhbGlkIGZvciB0aGUKLQkJCSAqIHRhcmdldCB0eXBlLCBvciBy ZXNvbHZlIHRoZSBhY3R1YWwgdHlwZSBvZiBhbiBVTktOT1dOIFBhcmFtLAotCQkJICogYW5kIChi KSB3ZSB3YW50IHRvIGF2b2lkIHVubmVjZXNzYXJ5IGRpc2NyZXBhbmNpZXMgYmV0d2VlbiB0aGUK LQkJCSAqIG91dHB1dCB0eXBlIG9mIHRoZSBjaGlsZCBxdWVyeSBhbmQgdGhlIHJlc29sdmVkIHRh cmdldCB0eXBlLgotCQkJICogU3VjaCBhIGRpc2NyZXBhbmN5IHdvdWxkIGRpc2FibGUgb3B0aW1p emF0aW9uIGluIHRoZSBwbGFubmVyLgotCQkJICoKLQkJCSAqIElmIGl0J3Mgc29tZSBvdGhlciBV TktOT1dOLXR5cGUgbm9kZSwgZWcgYSBWYXIsIHdlIGRvIG5vdGhpbmcKLQkJCSAqIChrbm93aW5n IHRoYXQgY29lcmNlX3RvX2NvbW1vbl90eXBlIHdvdWxkIGZhaWwpLiAgVGhlIHBsYW5uZXIKLQkJ CSAqIGlzIHNvbWV0aW1lcyBhYmxlIHRvIGZvbGQgYW4gVU5LTk9XTiBWYXIgdG8gYSBjb25zdGFu dCBiZWZvcmUKLQkJCSAqIGl0IGhhcyB0byBjb2VyY2UgdGhlIHR5cGUsIHNvIGZhaWxpbmcgbm93 IHdvdWxkIGp1c3QgYnJlYWsKLQkJCSAqIGNhc2VzIHRoYXQgbWlnaHQgd29yay4KLQkJCSAqLwot CQkJaWYgKGxjb2x0eXBlICE9IFVOS05PV05PSUQpCi0JCQkJbGNvbG5vZGUgPSBjb2VyY2VfdG9f Y29tbW9uX3R5cGUocHN0YXRlLCBsY29sbm9kZSwKLQkJCQkJCQkJCQkJCSByZXNjb2x0eXBlLCBj b250ZXh0KTsKLQkJCWVsc2UgaWYgKElzQShsY29sbm9kZSwgQ29uc3QpIHx8Ci0JCQkJCSBJc0Eo bGNvbG5vZGUsIFBhcmFtKSkKLQkJCXsKLQkJCQlsY29sbm9kZSA9IGNvZXJjZV90b19jb21tb25f dHlwZShwc3RhdGUsIGxjb2xub2RlLAotCQkJCQkJCQkJCQkJIHJlc2NvbHR5cGUsIGNvbnRleHQp OwotCQkJCWx0bGUtPmV4cHIgPSAoRXhwciAqKSBsY29sbm9kZTsKLQkJCX0KK3ZvaWQKK2NvbnN0 cnVjdFNldE9wVGFyZ2V0bGlzdChTZXRPcGVyYXRpb25TdG10ICpvcCwgTGlzdCAqbHRhcmdldGxp c3QsIExpc3QgKnJ0YXJnZXRsaXN0LAorCQkJCQkJIExpc3QgKip0YXJnZXRsaXN0LCBjb25zdCBj aGFyICpjb250ZXh0LCBQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkgYm9vbCByZWN1cnNpdmUp Cit7CisJTGlzdENlbGwgICAqbHRsOworCUxpc3RDZWxsICAgKnJ0bDsKIAotCQkJaWYgKHJjb2x0 eXBlICE9IFVOS05PV05PSUQpCi0JCQkJcmNvbG5vZGUgPSBjb2VyY2VfdG9fY29tbW9uX3R5cGUo cHN0YXRlLCByY29sbm9kZSwKLQkJCQkJCQkJCQkJCSByZXNjb2x0eXBlLCBjb250ZXh0KTsKLQkJ CWVsc2UgaWYgKElzQShyY29sbm9kZSwgQ29uc3QpIHx8Ci0JCQkJCSBJc0EocmNvbG5vZGUsIFBh cmFtKSkKLQkJCXsKLQkJCQlyY29sbm9kZSA9IGNvZXJjZV90b19jb21tb25fdHlwZShwc3RhdGUs IHJjb2xub2RlLAotCQkJCQkJCQkJCQkJIHJlc2NvbHR5cGUsIGNvbnRleHQpOwotCQkJCXJ0bGUt PmV4cHIgPSAoRXhwciAqKSByY29sbm9kZTsKLQkJCX0KKwkvKgorCSAqIFZlcmlmeSB0aGF0IHRo ZSB0d28gY2hpbGRyZW4gaGF2ZSB0aGUgc2FtZSBudW1iZXIgb2Ygbm9uLWp1bmsgY29sdW1ucywK KwkgKiBhbmQgZGV0ZXJtaW5lIHRoZSB0eXBlcyBvZiB0aGUgbWVyZ2VkIG91dHB1dCBjb2x1bW5z LgorCSAqLworCWlmIChsaXN0X2xlbmd0aChsdGFyZ2V0bGlzdCkgIT0gbGlzdF9sZW5ndGgocnRh cmdldGxpc3QpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFY X0VSUk9SKSwKKwkJCQkgZXJybXNnKCJlYWNoICVzIHF1ZXJ5IG11c3QgaGF2ZSB0aGUgc2FtZSBu dW1iZXIgb2YgY29sdW1ucyIsCisJCQkJCQljb250ZXh0KSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0 aW9uKHBzdGF0ZSwKKwkJCQkJCQkJCWV4cHJMb2NhdGlvbigoTm9kZSAqKSBydGFyZ2V0bGlzdCkp KSk7CiAKLQkJCXJlc2NvbHR5cG1vZCA9IHNlbGVjdF9jb21tb25fdHlwbW9kKHBzdGF0ZSwKLQkJ CQkJCQkJCQkJCWxpc3RfbWFrZTIobGNvbG5vZGUsIHJjb2xub2RlKSwKLQkJCQkJCQkJCQkJCXJl c2NvbHR5cGUpOworCWlmICh0YXJnZXRsaXN0KQorCQkqdGFyZ2V0bGlzdCA9IE5JTDsKKwlvcC0+ Y29sVHlwZXMgPSBOSUw7CisJb3AtPmNvbFR5cG1vZHMgPSBOSUw7CisJb3AtPmNvbENvbGxhdGlv bnMgPSBOSUw7CisJb3AtPmdyb3VwQ2xhdXNlcyA9IE5JTDsKIAotCQkJLyoKLQkJCSAqIFNlbGVj dCBjb21tb24gY29sbGF0aW9uLiAgQSBjb21tb24gY29sbGF0aW9uIGlzIHJlcXVpcmVkIGZvcgot CQkJICogYWxsIHNldCBvcGVyYXRvcnMgZXhjZXB0IFVOSU9OIEFMTDsgc2VlIFNRTDoyMDA4IDcu MTMgPHF1ZXJ5Ci0JCQkgKiBleHByZXNzaW9uPiBTeW50YXggUnVsZSAxNWMuICAoSWYgd2UgZmFp bCB0byBpZGVudGlmeSBhIGNvbW1vbgotCQkJICogY29sbGF0aW9uIGZvciBhIFVOSU9OIEFMTCBj b2x1bW4sIHRoZSBjb2xDb2xsYXRpb25zIGVsZW1lbnQKLQkJCSAqIHdpbGwgYmUgc2V0IHRvIElu dmFsaWRPaWQsIHdoaWNoIG1heSByZXN1bHQgaW4gYSBydW50aW1lIGVycm9yCi0JCQkgKiBpZiBz b21ldGhpbmcgYXQgYSBoaWdoZXIgcXVlcnkgbGV2ZWwgd2FudHMgdG8gdXNlIHRoZSBjb2x1bW4n cwotCQkJICogY29sbGF0aW9uLikKLQkJCSAqLwotCQkJcmVzY29sY29sbCA9IHNlbGVjdF9jb21t b25fY29sbGF0aW9uKHBzdGF0ZSwKLQkJCQkJCQkJCQkJCSBsaXN0X21ha2UyKGxjb2xub2RlLCBy Y29sbm9kZSksCi0JCQkJCQkJCQkJCQkgKG9wLT5vcCA9PSBTRVRPUF9VTklPTiAmJiBvcC0+YWxs KSk7CisJZm9yYm90aChsdGwsIGx0YXJnZXRsaXN0LCBydGwsIHJ0YXJnZXRsaXN0KQorCXsKKwkJ VGFyZ2V0RW50cnkgKmx0bGUgPSAoVGFyZ2V0RW50cnkgKikgbGZpcnN0KGx0bCk7CisJCVRhcmdl dEVudHJ5ICpydGxlID0gKFRhcmdldEVudHJ5ICopIGxmaXJzdChydGwpOworCQlOb2RlCSAgICps Y29sbm9kZSA9IChOb2RlICopIGx0bGUtPmV4cHI7CisJCU5vZGUJICAgKnJjb2xub2RlID0gKE5v ZGUgKikgcnRsZS0+ZXhwcjsKKwkJT2lkCQkJbGNvbHR5cGUgPSBleHByVHlwZShsY29sbm9kZSk7 CisJCU9pZAkJCXJjb2x0eXBlID0gZXhwclR5cGUocmNvbG5vZGUpOworCQlOb2RlCSAgICpiZXN0 ZXhwcjsKKwkJaW50CQkJYmVzdGxvY2F0aW9uOworCQlPaWQJCQlyZXNjb2x0eXBlOworCQlpbnQz MgkJcmVzY29sdHlwbW9kOworCQlPaWQJCQlyZXNjb2xjb2xsOworCisJCS8qIHNlbGVjdCBjb21t b24gdHlwZSwgc2FtZSBhcyBDQVNFIGV0IGFsICovCisJCXJlc2NvbHR5cGUgPSBzZWxlY3RfY29t bW9uX3R5cGUocHN0YXRlLAorCQkJCQkJCQkJCWxpc3RfbWFrZTIobGNvbG5vZGUsIHJjb2xub2Rl KSwKKwkJCQkJCQkJCQljb250ZXh0LAorCQkJCQkJCQkJCSZiZXN0ZXhwcik7CisJCWJlc3Rsb2Nh dGlvbiA9IGV4cHJMb2NhdGlvbihiZXN0ZXhwcik7CiAKLQkJCS8qIGVtaXQgcmVzdWx0cyAqLwot CQkJb3AtPmNvbFR5cGVzID0gbGFwcGVuZF9vaWQob3AtPmNvbFR5cGVzLCByZXNjb2x0eXBlKTsK LQkJCW9wLT5jb2xUeXBtb2RzID0gbGFwcGVuZF9pbnQob3AtPmNvbFR5cG1vZHMsIHJlc2NvbHR5 cG1vZCk7Ci0JCQlvcC0+Y29sQ29sbGF0aW9ucyA9IGxhcHBlbmRfb2lkKG9wLT5jb2xDb2xsYXRp b25zLCByZXNjb2xjb2xsKTsKKwkJLyoKKwkJICogVmVyaWZ5IHRoZSBjb2VyY2lvbnMgYXJlIGFj dHVhbGx5IHBvc3NpYmxlLiAgSWYgbm90LCB3ZSdkIGZhaWwKKwkJICogbGF0ZXIgYW55d2F5LCBi dXQgd2Ugd2FudCB0byBmYWlsIG5vdyB3aGlsZSB3ZSBoYXZlIHN1ZmZpY2llbnQKKwkJICogY29u dGV4dCB0byBwcm9kdWNlIGFuIGVycm9yIGN1cnNvciBwb3NpdGlvbi4KKwkJICoKKwkJICogRm9y IGFsbCBub24tVU5LTk9XTi10eXBlIGNhc2VzLCB3ZSB2ZXJpZnkgY29lcmNpYmlsaXR5IGJ1dCB3 ZSBkb24ndAorCQkgKiBtb2RpZnkgdGhlIGNoaWxkJ3MgZXhwcmVzc2lvbiwgZm9yIGZlYXIgb2Yg Y2hhbmdpbmcgdGhlIGNoaWxkCisJCSAqIHF1ZXJ5J3Mgc2VtYW50aWNzLgorCQkgKgorCQkgKiBJ ZiBhIGNoaWxkIGV4cHJlc3Npb24gaXMgYW4gVU5LTk9XTi10eXBlIENvbnN0IG9yIFBhcmFtLCB3 ZSB3YW50IHRvCisJCSAqIHJlcGxhY2UgaXQgd2l0aCB0aGUgY29lcmNlZCBleHByZXNzaW9uLiAg VGhpcyBjYW4gb25seSBoYXBwZW4gd2hlbgorCQkgKiB0aGUgY2hpbGQgaXMgYSBsZWFmIHNldC1v cCBub2RlLiAgSXQncyBzYWZlIHRvIHJlcGxhY2UgdGhlCisJCSAqIGV4cHJlc3Npb24gYmVjYXVz ZSBpZiB0aGUgY2hpbGQgcXVlcnkncyBzZW1hbnRpY3MgZGVwZW5kZWQgb24gdGhlCisJCSAqIHR5 cGUgb2YgdGhpcyBvdXRwdXQgY29sdW1uLCBpdCdkIGhhdmUgYWxyZWFkeSBjb2VyY2VkIHRoZSBV TktOT1dOCisJCSAqIHRvIHNvbWV0aGluZyBlbHNlLiAgV2Ugd2FudCB0byBkbyB0aGlzIGJlY2F1 c2UgKGEpIHdlIHdhbnQgdG8KKwkJICogdmVyaWZ5IHRoYXQgYSBDb25zdCBpcyB2YWxpZCBmb3Ig dGhlIHRhcmdldCB0eXBlLCBvciByZXNvbHZlIHRoZQorCQkgKiBhY3R1YWwgdHlwZSBvZiBhbiBV TktOT1dOIFBhcmFtLCBhbmQgKGIpIHdlIHdhbnQgdG8gYXZvaWQKKwkJICogdW5uZWNlc3Nhcnkg ZGlzY3JlcGFuY2llcyBiZXR3ZWVuIHRoZSBvdXRwdXQgdHlwZSBvZiB0aGUgY2hpbGQKKwkJICog cXVlcnkgYW5kIHRoZSByZXNvbHZlZCB0YXJnZXQgdHlwZS4gU3VjaCBhIGRpc2NyZXBhbmN5IHdv dWxkCisJCSAqIGRpc2FibGUgb3B0aW1pemF0aW9uIGluIHRoZSBwbGFubmVyLgorCQkgKgorCQkg KiBJZiBpdCdzIHNvbWUgb3RoZXIgVU5LTk9XTi10eXBlIG5vZGUsIGVnIGEgVmFyLCB3ZSBkbyBu b3RoaW5nCisJCSAqIChrbm93aW5nIHRoYXQgY29lcmNlX3RvX2NvbW1vbl90eXBlIHdvdWxkIGZh aWwpLiAgVGhlIHBsYW5uZXIgaXMKKwkJICogc29tZXRpbWVzIGFibGUgdG8gZm9sZCBhbiBVTktO T1dOIFZhciB0byBhIGNvbnN0YW50IGJlZm9yZSBpdCBoYXMKKwkJICogdG8gY29lcmNlIHRoZSB0 eXBlLCBzbyBmYWlsaW5nIG5vdyB3b3VsZCBqdXN0IGJyZWFrIGNhc2VzIHRoYXQKKwkJICogbWln aHQgd29yay4KKwkJICovCisJCWlmIChsY29sdHlwZSAhPSBVTktOT1dOT0lEKQorCQkJbGNvbG5v ZGUgPSBjb2VyY2VfdG9fY29tbW9uX3R5cGUocHN0YXRlLCBsY29sbm9kZSwKKwkJCQkJCQkJCQkJ IHJlc2NvbHR5cGUsIGNvbnRleHQpOworCQllbHNlIGlmIChJc0EobGNvbG5vZGUsIENvbnN0KSB8 fAorCQkJCSBJc0EobGNvbG5vZGUsIFBhcmFtKSkKKwkJeworCQkJbGNvbG5vZGUgPSBjb2VyY2Vf dG9fY29tbW9uX3R5cGUocHN0YXRlLCBsY29sbm9kZSwKKwkJCQkJCQkJCQkJIHJlc2NvbHR5cGUs IGNvbnRleHQpOworCQkJbHRsZS0+ZXhwciA9IChFeHByICopIGxjb2xub2RlOworCQl9CiAKLQkJ CS8qCi0JCQkgKiBGb3IgYWxsIGNhc2VzIGV4Y2VwdCBVTklPTiBBTEwsIGlkZW50aWZ5IHRoZSBn cm91cGluZyBvcGVyYXRvcnMKLQkJCSAqIChhbmQsIGlmIGF2YWlsYWJsZSwgc29ydGluZyBvcGVy YXRvcnMpIHRoYXQgd2lsbCBiZSB1c2VkIHRvCi0JCQkgKiBlbGltaW5hdGUgZHVwbGljYXRlcy4K LQkJCSAqLwotCQkJaWYgKG9wLT5vcCAhPSBTRVRPUF9VTklPTiB8fCAhb3AtPmFsbCkKLQkJCXsK LQkJCQlQYXJzZUNhbGxiYWNrU3RhdGUgcGNic3RhdGU7CisJCWlmIChyY29sdHlwZSAhPSBVTktO T1dOT0lEKQorCQkJcmNvbG5vZGUgPSBjb2VyY2VfdG9fY29tbW9uX3R5cGUocHN0YXRlLCByY29s bm9kZSwKKwkJCQkJCQkJCQkJIHJlc2NvbHR5cGUsIGNvbnRleHQpOworCQllbHNlIGlmIChJc0Eo cmNvbG5vZGUsIENvbnN0KSB8fAorCQkJCSBJc0EocmNvbG5vZGUsIFBhcmFtKSkKKwkJeworCQkJ cmNvbG5vZGUgPSBjb2VyY2VfdG9fY29tbW9uX3R5cGUocHN0YXRlLCByY29sbm9kZSwKKwkJCQkJ CQkJCQkJIHJlc2NvbHR5cGUsIGNvbnRleHQpOworCQkJcnRsZS0+ZXhwciA9IChFeHByICopIHJj b2xub2RlOworCQl9CiAKLQkJCQlzZXR1cF9wYXJzZXJfZXJycG9zaXRpb25fY2FsbGJhY2soJnBj YnN0YXRlLCBwc3RhdGUsCi0JCQkJCQkJCQkJCQkgIGJlc3Rsb2NhdGlvbik7CisJCXJlc2NvbHR5 cG1vZCA9IHNlbGVjdF9jb21tb25fdHlwbW9kKHBzdGF0ZSwKKwkJCQkJCQkJCQkJbGlzdF9tYWtl MihsY29sbm9kZSwgcmNvbG5vZGUpLAorCQkJCQkJCQkJCQlyZXNjb2x0eXBlKTsKIAotCQkJCS8q Ci0JCQkJICogSWYgaXQncyBhIHJlY3Vyc2l2ZSB1bmlvbiwgd2UgbmVlZCB0byByZXF1aXJlIGhh c2hpbmcKLQkJCQkgKiBzdXBwb3J0LgotCQkJCSAqLwotCQkJCW9wLT5ncm91cENsYXVzZXMgPSBs YXBwZW5kKG9wLT5ncm91cENsYXVzZXMsCi0JCQkJCQkJCQkJICAgbWFrZVNvcnRHcm91cENsYXVz ZUZvclNldE9wKHJlc2NvbHR5cGUsIHJlY3Vyc2l2ZSkpOworCQkvKgorCQkgKiBTZWxlY3QgY29t bW9uIGNvbGxhdGlvbi4gIEEgY29tbW9uIGNvbGxhdGlvbiBpcyByZXF1aXJlZCBmb3IgYWxsCisJ CSAqIHNldCBvcGVyYXRvcnMgZXhjZXB0IFVOSU9OIEFMTDsgc2VlIFNRTDoyMDA4IDcuMTMgPHF1 ZXJ5CisJCSAqIGV4cHJlc3Npb24+IFN5bnRheCBSdWxlIDE1Yy4gIChJZiB3ZSBmYWlsIHRvIGlk ZW50aWZ5IGEgY29tbW9uCisJCSAqIGNvbGxhdGlvbiBmb3IgYSBVTklPTiBBTEwgY29sdW1uLCB0 aGUgY29sQ29sbGF0aW9ucyBlbGVtZW50IHdpbGwgYmUKKwkJICogc2V0IHRvIEludmFsaWRPaWQs IHdoaWNoIG1heSByZXN1bHQgaW4gYSBydW50aW1lIGVycm9yIGlmIHNvbWV0aGluZworCQkgKiBh dCBhIGhpZ2hlciBxdWVyeSBsZXZlbCB3YW50cyB0byB1c2UgdGhlIGNvbHVtbidzIGNvbGxhdGlv bi4pCisJCSAqLworCQlyZXNjb2xjb2xsID0gc2VsZWN0X2NvbW1vbl9jb2xsYXRpb24ocHN0YXRl LAorCQkJCQkJCQkJCQkgbGlzdF9tYWtlMihsY29sbm9kZSwgcmNvbG5vZGUpLAorCQkJCQkJCQkJ CQkgKG9wLT5vcCA9PSBTRVRPUF9VTklPTiAmJiBvcC0+YWxsKSk7CiAKLQkJCQljYW5jZWxfcGFy c2VyX2VycnBvc2l0aW9uX2NhbGxiYWNrKCZwY2JzdGF0ZSk7Ci0JCQl9CisJCS8qIGVtaXQgcmVz dWx0cyAqLworCQlvcC0+Y29sVHlwZXMgPSBsYXBwZW5kX29pZChvcC0+Y29sVHlwZXMsIHJlc2Nv bHR5cGUpOworCQlvcC0+Y29sVHlwbW9kcyA9IGxhcHBlbmRfaW50KG9wLT5jb2xUeXBtb2RzLCBy ZXNjb2x0eXBtb2QpOworCQlvcC0+Y29sQ29sbGF0aW9ucyA9IGxhcHBlbmRfb2lkKG9wLT5jb2xD b2xsYXRpb25zLCByZXNjb2xjb2xsKTsKIAotCQkJLyoKLQkJCSAqIENvbnN0cnVjdCBhIGR1bW15 IHRsaXN0IGVudHJ5IHRvIHJldHVybi4gIFdlIHVzZSBhIFNldFRvRGVmYXVsdAotCQkJICogbm9k ZSBmb3IgdGhlIGV4cHJlc3Npb24sIHNpbmNlIGl0IGNhcnJpZXMgZXhhY3RseSB0aGUgZmllbGRz Ci0JCQkgKiBuZWVkZWQsIGJ1dCBhbnkgb3RoZXIgZXhwcmVzc2lvbiBub2RlIHR5cGUgd291bGQg ZG8gYXMgd2VsbC4KLQkJCSAqLwotCQkJaWYgKHRhcmdldGxpc3QpCi0JCQl7Ci0JCQkJU2V0VG9E ZWZhdWx0ICpyZXNjb2xub2RlID0gbWFrZU5vZGUoU2V0VG9EZWZhdWx0KTsKLQkJCQlUYXJnZXRF bnRyeSAqcmVzdGxlOwotCi0JCQkJcmVzY29sbm9kZS0+dHlwZUlkID0gcmVzY29sdHlwZTsKLQkJ CQlyZXNjb2xub2RlLT50eXBlTW9kID0gcmVzY29sdHlwbW9kOwotCQkJCXJlc2NvbG5vZGUtPmNv bGxhdGlvbiA9IHJlc2NvbGNvbGw7Ci0JCQkJcmVzY29sbm9kZS0+bG9jYXRpb24gPSBiZXN0bG9j YXRpb247Ci0JCQkJcmVzdGxlID0gbWFrZVRhcmdldEVudHJ5KChFeHByICopIHJlc2NvbG5vZGUs Ci0JCQkJCQkJCQkJIDAsIC8qIG5vIG5lZWQgdG8gc2V0IHJlc25vICovCi0JCQkJCQkJCQkJIE5V TEwsCi0JCQkJCQkJCQkJIGZhbHNlKTsKLQkJCQkqdGFyZ2V0bGlzdCA9IGxhcHBlbmQoKnRhcmdl dGxpc3QsIHJlc3RsZSk7Ci0JCQl9CisJCS8qCisJCSAqIEZvciBhbGwgY2FzZXMgZXhjZXB0IFVO SU9OIEFMTCwgaWRlbnRpZnkgdGhlIGdyb3VwaW5nIG9wZXJhdG9ycworCQkgKiAoYW5kLCBpZiBh dmFpbGFibGUsIHNvcnRpbmcgb3BlcmF0b3JzKSB0aGF0IHdpbGwgYmUgdXNlZCB0bworCQkgKiBl bGltaW5hdGUgZHVwbGljYXRlcy4KKwkJICovCisJCWlmIChvcC0+b3AgIT0gU0VUT1BfVU5JT04g fHwgIW9wLT5hbGwpCisJCXsKKwkJCVBhcnNlQ2FsbGJhY2tTdGF0ZSBwY2JzdGF0ZTsKKworCQkJ c2V0dXBfcGFyc2VyX2VycnBvc2l0aW9uX2NhbGxiYWNrKCZwY2JzdGF0ZSwgcHN0YXRlLAorCQkJ CQkJCQkJCQkgIGJlc3Rsb2NhdGlvbik7CisKKwkJCS8qIElmIGl0J3MgYSByZWN1cnNpdmUgdW5p b24sIHdlIG5lZWQgdG8gcmVxdWlyZSBoYXNoaW5nIHN1cHBvcnQuICovCisJCQlvcC0+Z3JvdXBD bGF1c2VzID0gbGFwcGVuZChvcC0+Z3JvdXBDbGF1c2VzLAorCQkJCQkJCQkJICAgbWFrZVNvcnRH cm91cENsYXVzZUZvclNldE9wKHJlc2NvbHR5cGUsIHJlY3Vyc2l2ZSkpOworCisJCQljYW5jZWxf cGFyc2VyX2VycnBvc2l0aW9uX2NhbGxiYWNrKCZwY2JzdGF0ZSk7CiAJCX0KIAotCQlyZXR1cm4g KE5vZGUgKikgb3A7CisJCS8qCisJCSAqIENvbnN0cnVjdCBhIGR1bW15IHRsaXN0IGVudHJ5IHRv IHJldHVybi4gIFdlIHVzZSBhIFNldFRvRGVmYXVsdAorCQkgKiBub2RlIGZvciB0aGUgZXhwcmVz c2lvbiwgc2luY2UgaXQgY2FycmllcyBleGFjdGx5IHRoZSBmaWVsZHMKKwkJICogbmVlZGVkLCBi dXQgYW55IG90aGVyIGV4cHJlc3Npb24gbm9kZSB0eXBlIHdvdWxkIGRvIGFzIHdlbGwuCisJCSAq LworCQlpZiAodGFyZ2V0bGlzdCkKKwkJeworCQkJU2V0VG9EZWZhdWx0ICpyZXNjb2xub2RlID0g bWFrZU5vZGUoU2V0VG9EZWZhdWx0KTsKKwkJCVRhcmdldEVudHJ5ICpyZXN0bGU7CisKKwkJCXJl c2NvbG5vZGUtPnR5cGVJZCA9IHJlc2NvbHR5cGU7CisJCQlyZXNjb2xub2RlLT50eXBlTW9kID0g cmVzY29sdHlwbW9kOworCQkJcmVzY29sbm9kZS0+Y29sbGF0aW9uID0gcmVzY29sY29sbDsKKwkJ CXJlc2NvbG5vZGUtPmxvY2F0aW9uID0gYmVzdGxvY2F0aW9uOworCQkJcmVzdGxlID0gbWFrZVRh cmdldEVudHJ5KChFeHByICopIHJlc2NvbG5vZGUsCisJCQkJCQkJCQkgMCwgLyogbm8gbmVlZCB0 byBzZXQgcmVzbm8gKi8KKwkJCQkJCQkJCSBOVUxMLAorCQkJCQkJCQkJIGZhbHNlKTsKKwkJCSp0 YXJnZXRsaXN0ID0gbGFwcGVuZCgqdGFyZ2V0bGlzdCwgcmVzdGxlKTsKKwkJfQogCX0KIH0KIApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKaW5kZXggYmQ1ZWJiMzVjNDAuLmViNDhjOWU1OTJkIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAg LTI4NCw2ICsyODQsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hh ciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQlDcmVhdGVTY2hlbWFT dG10IENyZWF0ZVNlcVN0bXQgQ3JlYXRlU3RtdCBDcmVhdGVTdGF0c1N0bXQgQ3JlYXRlVGFibGVT cGFjZVN0bXQKIAkJQ3JlYXRlRmR3U3RtdCBDcmVhdGVGb3JlaWduU2VydmVyU3RtdCBDcmVhdGVG b3JlaWduVGFibGVTdG10CiAJCUNyZWF0ZUFzc2VydGlvblN0bXQgQ3JlYXRlVHJhbnNmb3JtU3Rt dCBDcmVhdGVUcmlnU3RtdCBDcmVhdGVFdmVudFRyaWdTdG10CisJCUNyZWF0ZVByb3BHcmFwaFN0 bXQgQWx0ZXJQcm9wR3JhcGhTdG10CiAJCUNyZWF0ZVVzZXJTdG10IENyZWF0ZVVzZXJNYXBwaW5n U3RtdCBDcmVhdGVSb2xlU3RtdCBDcmVhdGVQb2xpY3lTdG10CiAJCUNyZWF0ZWRiU3RtdCBEZWNs YXJlQ3Vyc29yU3RtdCBEZWZpbmVTdG10IERlbGV0ZVN0bXQgRGlzY2FyZFN0bXQgRG9TdG10CiAJ CURyb3BPcENsYXNzU3RtdCBEcm9wT3BGYW1pbHlTdG10IERyb3BTdG10CkBAIC02NjQsNiArNjY1 LDM2IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1l LCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCQkJanNvbl9vYmplY3RfY29uc3RydWN0 b3JfbnVsbF9jbGF1c2Vfb3B0CiAJCQkJanNvbl9hcnJheV9jb25zdHJ1Y3Rvcl9udWxsX2NsYXVz ZV9vcHQKIAorJXR5cGUgPGxpc3Q+CXZlcnRleF90YWJsZXNfY2xhdXNlIGVkZ2VfdGFibGVzX2Ns YXVzZQorCQkJCW9wdF92ZXJ0ZXhfdGFibGVzX2NsYXVzZSBvcHRfZWRnZV90YWJsZXNfY2xhdXNl CisJCQkJdmVydGV4X3RhYmxlX2xpc3QKKwkJCQlvcHRfZ3JhcGhfdGFibGVfa2V5X2NsYXVzZQor CQkJCWVkZ2VfdGFibGVfbGlzdAorCQkJCXNvdXJjZV92ZXJ0ZXhfdGFibGUgZGVzdGluYXRpb25f dmVydGV4X3RhYmxlCisJCQkJb3B0X2VsZW1lbnRfdGFibGVfbGFiZWxfYW5kX3Byb3BlcnRpZXMK KwkJCQlsYWJlbF9hbmRfcHJvcGVydGllc19saXN0CisJCQkJYWRkX2xhYmVsX2xpc3QKKyV0eXBl IDxub2RlPgl2ZXJ0ZXhfdGFibGVfZGVmaW5pdGlvbiBlZGdlX3RhYmxlX2RlZmluaXRpb24KKyV0 eXBlIDxhbGlhcz4Jb3B0X3Byb3BncmFwaF90YWJsZV9hbGlhcworJXR5cGUgPHN0cj4JCWVsZW1l bnRfdGFibGVfbGFiZWxfY2xhdXNlCisldHlwZSA8bm9kZT4JbGFiZWxfYW5kX3Byb3BlcnRpZXMg ZWxlbWVudF90YWJsZV9wcm9wZXJ0aWVzCisJCQkJYWRkX2xhYmVsCisldHlwZSA8aXZhbD4JdmVy dGV4X29yX2VkZ2UKKworJXR5cGUgPGxpc3Q+CW9wdF9ncmFwaF9wYXR0ZXJuX3F1YW50aWZpZXIK KwkJCQlwYXRoX3BhdHRlcm5fbGlzdAorCQkJCXBhdGhfcGF0dGVybgorCQkJCXBhdGhfcGF0dGVy bl9leHByZXNzaW9uCisJCQkJcGF0aF90ZXJtCisldHlwZSA8bm9kZT4JZ3JhcGhfcGF0dGVybgor CQkJCXBhdGhfZmFjdG9yCisJCQkJcGF0aF9wcmltYXJ5CisJCQkJb3B0X2lzX2xhYmVsX2V4cHJl c3Npb24KKwkJCQlsYWJlbF9leHByZXNzaW9uCisJCQkJbGFiZWxfZGlzanVuY3Rpb24KKwkJCQls YWJlbF90ZXJtCisldHlwZSA8c3RyPgkJb3B0X2NvbGlkCisKIAogLyoKICAqIE5vbi1rZXl3b3Jk IHRva2VuIHR5cGVzLiAgVGhlc2UgYXJlIGhhcmQtd2lyZWQgaW50byB0aGUgImZsZXgiIGxleGVy LgpAQCAtNzA3LDE4ICs3MzgsMTggQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2Vs ZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlDVVJSRU5U X1RJTUUgQ1VSUkVOVF9USU1FU1RBTVAgQ1VSUkVOVF9VU0VSIENVUlNPUiBDWUNMRQogCiAJREFU QV9QIERBVEFCQVNFIERBWV9QIERFQUxMT0NBVEUgREVDIERFQ0lNQUxfUCBERUNMQVJFIERFRkFV TFQgREVGQVVMVFMKLQlERUZFUlJBQkxFIERFRkVSUkVEIERFRklORVIgREVMRVRFX1AgREVMSU1J VEVSIERFTElNSVRFUlMgREVQRU5EUyBERVBUSCBERVNDCisJREVGRVJSQUJMRSBERUZFUlJFRCBE RUZJTkVSIERFTEVURV9QIERFTElNSVRFUiBERUxJTUlURVJTIERFUEVORFMgREVQVEggREVTQyBE RVNUSU5BVElPTgogCURFVEFDSCBESUNUSU9OQVJZIERJU0FCTEVfUCBESVNDQVJEIERJU1RJTkNU IERPIERPQ1VNRU5UX1AgRE9NQUlOX1AKIAlET1VCTEVfUCBEUk9QCiAKLQlFQUNIIEVMU0UgRU1Q VFlfUCBFTkFCTEVfUCBFTkNPRElORyBFTkNSWVBURUQgRU5EX1AgRU5VTV9QIEVSUk9SX1AgRVND QVBFCisJRUFDSCBFREdFIEVMU0UgRU1QVFlfUCBFTkFCTEVfUCBFTkNPRElORyBFTkNSWVBURUQg RU5EX1AgRU5VTV9QIEVSUk9SX1AgRVNDQVBFCiAJRVZFTlQgRVhDRVBUIEVYQ0xVREUgRVhDTFVE SU5HIEVYQ0xVU0lWRSBFWEVDVVRFIEVYSVNUUyBFWFBMQUlOIEVYUFJFU1NJT04KIAlFWFRFTlNJ T04gRVhURVJOQUwgRVhUUkFDVAogCiAJRkFMU0VfUCBGQU1JTFkgRkVUQ0ggRklMVEVSIEZJTkFM SVpFIEZJUlNUX1AgRkxPQVRfUCBGT0xMT1dJTkcgRk9SCiAJRk9SQ0UgRk9SRUlHTiBGT1JNQVQg Rk9SV0FSRCBGUkVFWkUgRlJPTSBGVUxMIEZVTkNUSU9OIEZVTkNUSU9OUwogCi0JR0VORVJBVEVE IEdMT0JBTCBHUkFOVCBHUkFOVEVEIEdSRUFURVNUIEdST1VQX1AgR1JPVVBJTkcgR1JPVVBTCisJ R0VORVJBVEVEIEdMT0JBTCBHUkFOVCBHUkFOVEVEIEdSQVBIIEdSQVBIX1RBQkxFIEdSRUFURVNU IEdST1VQX1AgR1JPVVBJTkcgR1JPVVBTCiAKIAlIQU5ETEVSIEhBVklORyBIRUFERVJfUCBIT0xE IEhPVVJfUAogCkBAIC03MzksNyArNzcwLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVW aWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlN QVBQSU5HIE1BVENIIE1BVENIRUQgTUFURVJJQUxJWkVEIE1BWFZBTFVFIE1FUkdFIE1FUkdFX0FD VElPTiBNRVRIT0QKIAlNSU5VVEVfUCBNSU5WQUxVRSBNT0RFIE1PTlRIX1AgTU9WRQogCi0JTkFN RV9QIE5BTUVTIE5BVElPTkFMIE5BVFVSQUwgTkNIQVIgTkVTVEVEIE5FVyBORVhUIE5GQyBORkQg TkZLQyBORktEIE5PCisJTkFNRV9QIE5BTUVTIE5BVElPTkFMIE5BVFVSQUwgTkNIQVIgTkVTVEVE IE5FVyBORVhUIE5GQyBORkQgTkZLQyBORktEIE5PIE5PREUKIAlOT05FIE5PUk1BTElaRSBOT1JN QUxJWkVECiAJTk9UIE5PVEhJTkcgTk9USUZZIE5PVE5VTEwgTk9XQUlUIE5VTExfUCBOVUxMSUYK IAlOVUxMU19QIE5VTUVSSUMKQEAgLTc1MSwxMiArNzgyLDEyIEBAIHN0YXRpYyBOb2RlICptYWtl UmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpx dWVyeSk7CiAJUEFSQUxMRUwgUEFSQU1FVEVSIFBBUlNFUiBQQVJUSUFMIFBBUlRJVElPTiBQQVNT SU5HIFBBU1NXT1JEIFBBVEgKIAlQRVJJT0QgUExBQ0lORyBQTEFOIFBMQU5TIFBPTElDWQogCVBP U0lUSU9OIFBSRUNFRElORyBQUkVDSVNJT04gUFJFU0VSVkUgUFJFUEFSRSBQUkVQQVJFRCBQUklN QVJZCi0JUFJJT1IgUFJJVklMRUdFUyBQUk9DRURVUkFMIFBST0NFRFVSRSBQUk9DRURVUkVTIFBS T0dSQU0gUFVCTElDQVRJT04KKwlQUklPUiBQUklWSUxFR0VTIFBST0NFRFVSQUwgUFJPQ0VEVVJF IFBST0NFRFVSRVMgUFJPR1JBTSBQUk9QRVJUSUVTIFBST1BFUlRZIFBVQkxJQ0FUSU9OCiAKIAlR VU9URSBRVU9URVMKIAogCVJBTkdFIFJFQUQgUkVBTCBSRUFTU0lHTiBSRUNVUlNJVkUgUkVGX1Ag UkVGRVJFTkNFUyBSRUZFUkVOQ0lORwotCVJFRlJFU0ggUkVJTkRFWCBSRUxBVElWRV9QIFJFTEVB U0UgUkVOQU1FIFJFUEVBVEFCTEUgUkVQTEFDRSBSRVBMSUNBCisJUkVGUkVTSCBSRUlOREVYIFJF TEFUSU9OU0hJUCBSRUxBVElWRV9QIFJFTEVBU0UgUkVOQU1FIFJFUEVBVEFCTEUgUkVQTEFDRSBS RVBMSUNBCiAJUkVTRVQgUkVTVEFSVCBSRVNUUklDVCBSRVRVUk4gUkVUVVJOSU5HIFJFVFVSTlMg UkVWT0tFIFJJR0hUIFJPTEUgUk9MTEJBQ0sgUk9MTFVQCiAJUk9VVElORSBST1VUSU5FUyBST1cg Uk9XUyBSVUxFCiAKQEAgLTc3Niw3ICs4MDcsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2 ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwog CVVOTElTVEVOIFVOTE9HR0VEIFVOVElMIFVQREFURSBVU0VSIFVTSU5HCiAKIAlWQUNVVU0gVkFM SUQgVkFMSURBVEUgVkFMSURBVE9SIFZBTFVFX1AgVkFMVUVTIFZBUkNIQVIgVkFSSUFESUMgVkFS WUlORwotCVZFUkJPU0UgVkVSU0lPTl9QIFZJRVcgVklFV1MgVk9MQVRJTEUKKwlWRVJCT1NFIFZF UlNJT05fUCBWRVJURVggVklFVyBWSUVXUyBWT0xBVElMRQogCiAJV0hFTiBXSEVSRSBXSElURVNQ QUNFX1AgV0lORE9XIFdJVEggV0lUSElOIFdJVEhPVVQgV09SSyBXUkFQUEVSIFdSSVRFCiAKQEAg LTg3NCw3ICs5MDUsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hh ciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogJW5vbmFzc29jCVVOQk9V TkRFRCBORVNURUQgLyogaWRlYWxseSB3b3VsZCBoYXZlIHNhbWUgcHJlY2VkZW5jZSBhcyBJREVO VCAqLwogJW5vbmFzc29jCUlERU5UIFBBUlRJVElPTiBSQU5HRSBST1dTIEdST1VQUyBQUkVDRURJ TkcgRk9MTE9XSU5HIENVQkUgUk9MTFVQCiAJCQlTRVQgS0VZUyBPQkpFQ1RfUCBTQ0FMQVIgVkFM VUVfUCBXSVRIIFdJVEhPVVQgUEFUSAotJWxlZnQJCU9wIE9QRVJBVE9SCQkvKiBtdWx0aS1jaGFy YWN0ZXIgb3BzIGFuZCB1c2VyLWRlZmluZWQgb3BlcmF0b3JzICovCislbGVmdAkJT3AgT1BFUkFU T1IgUklHSFRfQVJST1cgJ3wnCS8qIG11bHRpLWNoYXJhY3RlciBvcHMgYW5kIHVzZXItZGVmaW5l ZCBvcGVyYXRvcnMgKi8KICVsZWZ0CQknKycgJy0nCiAlbGVmdAkJJyonICcvJyAnJScKICVsZWZ0 CQknXicKQEAgLTEwMDEsNiArMTAzMiw3IEBAIHN0bXQ6CiAJCQl8IEFsdGVyT3BlcmF0b3JTdG10 CiAJCQl8IEFsdGVyVHlwZVN0bXQKIAkJCXwgQWx0ZXJQb2xpY3lTdG10CisJCQl8IEFsdGVyUHJv cEdyYXBoU3RtdAogCQkJfCBBbHRlclNlcVN0bXQKIAkJCXwgQWx0ZXJTeXN0ZW1TdG10CiAJCQl8 IEFsdGVyVGFibGVTdG10CkBAIC0xMDQxLDYgKzEwNzMsNyBAQCBzdG10OgogCQkJfCBBbHRlck9w RmFtaWx5U3RtdAogCQkJfCBDcmVhdGVQb2xpY3lTdG10CiAJCQl8IENyZWF0ZVBMYW5nU3RtdAor CQkJfCBDcmVhdGVQcm9wR3JhcGhTdG10CiAJCQl8IENyZWF0ZVNjaGVtYVN0bXQKIAkJCXwgQ3Jl YXRlU2VxU3RtdAogCQkJfCBDcmVhdGVTdG10CkBAIC02OTkxLDYgKzcwMjQsNyBAQCBvYmplY3Rf dHlwZV9hbnlfbmFtZToKIAkJCXwgTUFURVJJQUxJWkVEIFZJRVcJCQkJCQl7ICQkID0gT0JKRUNU X01BVFZJRVc7IH0KIAkJCXwgSU5ERVgJCQkJCQkJCQl7ICQkID0gT0JKRUNUX0lOREVYOyB9CiAJ CQl8IEZPUkVJR04gVEFCTEUJCQkJCQkJeyAkJCA9IE9CSkVDVF9GT1JFSUdOX1RBQkxFOyB9CisJ CQl8IFBST1BFUlRZIEdSQVBICQkJCQkJeyAkJCA9IE9CSkVDVF9QUk9QR1JBUEg7IH0KIAkJCXwg Q09MTEFUSU9OCQkJCQkJCQl7ICQkID0gT0JKRUNUX0NPTExBVElPTjsgfQogCQkJfCBDT05WRVJT SU9OX1AJCQkJCQkJeyAkJCA9IE9CSkVDVF9DT05WRVJTSU9OOyB9CiAJCQl8IFNUQVRJU1RJQ1MJ CQkJCQkJeyAkJCA9IE9CSkVDVF9TVEFUSVNUSUNfRVhUOyB9CkBAIC03ODQ3LDYgKzc4ODEsMTUg QEAgcHJpdmlsZWdlX3RhcmdldDoKIAkJCQkJbi0+b2JqcyA9ICQyOwogCQkJCQkkJCA9IG47CiAJ CQkJfQorCQkJfCBQUk9QRVJUWSBHUkFQSCBxdWFsaWZpZWRfbmFtZV9saXN0CisJCQkJeworCQkJ CQlQcml2VGFyZ2V0ICpuID0gKFByaXZUYXJnZXQgKikgcGFsbG9jKHNpemVvZihQcml2VGFyZ2V0 KSk7CisKKwkJCQkJbi0+dGFyZ3R5cGUgPSBBQ0xfVEFSR0VUX09CSkVDVDsKKwkJCQkJbi0+b2Jq dHlwZSA9IE9CSkVDVF9QUk9QR1JBUEg7CisJCQkJCW4tPm9ianMgPSAkMzsKKwkJCQkJJCQgPSBu OworCQkJCX0KIAkJCXwgU0NIRU1BIG5hbWVfbGlzdAogCQkJCXsKIAkJCQkJUHJpdlRhcmdldCAq biA9IChQcml2VGFyZ2V0ICopIHBhbGxvYyhzaXplb2YoUHJpdlRhcmdldCkpOwpAQCAtOTE3MCw2 ICs5MjEzLDM2NiBAQCBvcHRfaWZfZXhpc3RzOiBJRl9QIEVYSVNUUwkJCQkJCXsgJCQgPSB0cnVl OyB9CiAJCTsKIAogCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKgkJQ1JFQVRFIFBST1BF UlRZIEdSQVBICisgKgkJQUxURVIgUFJPUEVSVFkgR1JBUEgKKyAqCisgKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiovCisKK0NyZWF0ZVByb3BHcmFwaFN0bXQ6IENSRUFURSBPcHRUZW1wIFBST1BFUlRZIEdS QVBIIHF1YWxpZmllZF9uYW1lIG9wdF92ZXJ0ZXhfdGFibGVzX2NsYXVzZSBvcHRfZWRnZV90YWJs ZXNfY2xhdXNlCisJCQkJeworCQkJCQlDcmVhdGVQcm9wR3JhcGhTdG10ICpuID0gbWFrZU5vZGUo Q3JlYXRlUHJvcEdyYXBoU3RtdCk7CisKKwkJCQkJbi0+cGduYW1lID0gJDU7CisJCQkJCW4tPnBn bmFtZS0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+dmVydGV4X3RhYmxlcyA9ICQ2Owor CQkJCQluLT5lZGdlX3RhYmxlcyA9ICQ3OworCisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0K KwkJOworCitvcHRfdmVydGV4X3RhYmxlc19jbGF1c2U6CisJCQl2ZXJ0ZXhfdGFibGVzX2NsYXVz ZQkJCQl7ICQkID0gJDE7IH0KKwkJCXwgLypFTVBUWSovCQkJCQkJCXsgJCQgPSBOSUw7IH0KKwkJ OworCit2ZXJ0ZXhfdGFibGVzX2NsYXVzZToKKwkJCXZlcnRleF9zeW5vbnltIFRBQkxFUyAnKCcg dmVydGV4X3RhYmxlX2xpc3QgJyknCXsgJCQgPSAkNDsgfQorCQk7CisKK3ZlcnRleF9zeW5vbnlt OiBOT0RFIHwgVkVSVEVYCisJCTsKKwordmVydGV4X3RhYmxlX2xpc3Q6IHZlcnRleF90YWJsZV9k ZWZpbml0aW9uCQkJCQkJeyAkJCA9IGxpc3RfbWFrZTEoJDEpOyB9CisJCQl8IHZlcnRleF90YWJs ZV9saXN0ICcsJyB2ZXJ0ZXhfdGFibGVfZGVmaW5pdGlvbgkJeyAkJCA9IGxhcHBlbmQoJDEsICQz KTsgfQorCQk7CisKK3ZlcnRleF90YWJsZV9kZWZpbml0aW9uOiBxdWFsaWZpZWRfbmFtZSBvcHRf cHJvcGdyYXBoX3RhYmxlX2FsaWFzIG9wdF9ncmFwaF90YWJsZV9rZXlfY2xhdXNlCisJCQkJb3B0 X2VsZW1lbnRfdGFibGVfbGFiZWxfYW5kX3Byb3BlcnRpZXMKKwkJCQl7CisJCQkJCVByb3BHcmFw aFZlcnRleCAqbiA9IG1ha2VOb2RlKFByb3BHcmFwaFZlcnRleCk7CisKKwkJCQkJJDEtPmFsaWFz ID0gJDI7CisJCQkJCW4tPnZ0YWJsZSA9ICQxOworCQkJCQluLT52a2V5ID0gJDM7CisJCQkJCW4t PmxhYmVscyA9ICQ0OworCQkJCQluLT5sb2NhdGlvbiA9IEAxOworCisJCQkJCSQkID0gKE5vZGUg KikgbjsKKwkJCQl9CisJCTsKKworb3B0X3Byb3BncmFwaF90YWJsZV9hbGlhczoKKwkJCUFTIG5h bWUKKwkJCQl7CisJCQkJCSQkID0gbWFrZU5vZGUoQWxpYXMpOworCQkJCQkkJC0+YWxpYXNuYW1l ID0gJDI7CisJCQkJfQorCQkJfCAvKkVNUFRZKi8JCQkJCQkJeyAkJCA9IE5VTEw7IH0KKwkJOwor CitvcHRfZ3JhcGhfdGFibGVfa2V5X2NsYXVzZToKKwkJCUtFWSAnKCcgY29sdW1uTGlzdCAnKScJ CQkJeyAkJCA9ICQzOyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJCQl7ICQkID0gTklMOyB9CisJCTsK Kworb3B0X2VkZ2VfdGFibGVzX2NsYXVzZToKKwkJCWVkZ2VfdGFibGVzX2NsYXVzZQkJCQkJeyAk JCA9ICQxOyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJCQl7ICQkID0gTklMOyB9CisJCTsKKworZWRn ZV90YWJsZXNfY2xhdXNlOgorCQkJZWRnZV9zeW5vbnltIFRBQkxFUyAnKCcgZWRnZV90YWJsZV9s aXN0CScpJwkJCXsgJCQgPSAkNDsgfQorCQk7CisKK2VkZ2Vfc3lub255bTogRURHRSB8IFJFTEFU SU9OU0hJUAorCQk7CisKK2VkZ2VfdGFibGVfbGlzdDogZWRnZV90YWJsZV9kZWZpbml0aW9uCQkJ CQkJeyAkJCA9IGxpc3RfbWFrZTEoJDEpOyB9CisJCQl8IGVkZ2VfdGFibGVfbGlzdCAnLCcgZWRn ZV90YWJsZV9kZWZpbml0aW9uCQl7ICQkID0gbGFwcGVuZCgkMSwgJDMpOyB9CisJCTsKKworZWRn ZV90YWJsZV9kZWZpbml0aW9uOiBxdWFsaWZpZWRfbmFtZSBvcHRfcHJvcGdyYXBoX3RhYmxlX2Fs aWFzIG9wdF9ncmFwaF90YWJsZV9rZXlfY2xhdXNlCisJCQkJc291cmNlX3ZlcnRleF90YWJsZSBk ZXN0aW5hdGlvbl92ZXJ0ZXhfdGFibGUgb3B0X2VsZW1lbnRfdGFibGVfbGFiZWxfYW5kX3Byb3Bl cnRpZXMKKwkJCQl7CisJCQkJCVByb3BHcmFwaEVkZ2UgKm4gPSBtYWtlTm9kZShQcm9wR3JhcGhF ZGdlKTsKKworCQkJCQkkMS0+YWxpYXMgPSAkMjsKKwkJCQkJbi0+ZXRhYmxlID0gJDE7CisJCQkJ CW4tPmVrZXkgPSAkMzsKKwkJCQkJbi0+ZXNyY2tleSA9IGxpbml0aWFsKCQ0KTsKKwkJCQkJbi0+ ZXNyY3ZlcnRleCA9IGxzZWNvbmQoJDQpOworCQkJCQluLT5lc3JjdmVydGV4Y29scyA9IGx0aGly ZCgkNCk7CisJCQkJCW4tPmVkZXN0a2V5ID0gbGluaXRpYWwoJDUpOworCQkJCQluLT5lZGVzdHZl cnRleCA9IGxzZWNvbmQoJDUpOworCQkJCQluLT5lZGVzdHZlcnRleGNvbHMgPSBsdGhpcmQoJDUp OworCQkJCQluLT5sYWJlbHMgPSAkNjsKKwkJCQkJbi0+bG9jYXRpb24gPSBAMTsKKworCQkJCQkk JCA9IChOb2RlICopIG47CisJCQkJfQorCQk7CisKK3NvdXJjZV92ZXJ0ZXhfdGFibGU6IFNPVVJD RSBuYW1lCisJCQkJeworCQkJCQkkJCA9IGxpc3RfbWFrZTMoTlVMTCwgJDIsIE5VTEwpOworCQkJ CX0KKwkJCQl8IFNPVVJDRSBLRVkgJygnIGNvbHVtbkxpc3QgJyknIFJFRkVSRU5DRVMgbmFtZSAn KCcgY29sdW1uTGlzdCAnKScKKwkJCQl7CisJCQkJCSQkID0gbGlzdF9tYWtlMygkNCwgJDcsICQ5 KTsKKwkJCQl9CisJCTsKKworZGVzdGluYXRpb25fdmVydGV4X3RhYmxlOiBERVNUSU5BVElPTiBu YW1lCisJCQkJeworCQkJCQkkJCA9IGxpc3RfbWFrZTMoTlVMTCwgJDIsIE5VTEwpOworCQkJCX0K KwkJCQl8IERFU1RJTkFUSU9OIEtFWSAnKCcgY29sdW1uTGlzdCAnKScgUkVGRVJFTkNFUyBuYW1l ICcoJyBjb2x1bW5MaXN0ICcpJworCQkJCXsKKwkJCQkJJCQgPSBsaXN0X21ha2UzKCQ0LCAkNywg JDkpOworCQkJCX0KKwkJOworCitvcHRfZWxlbWVudF90YWJsZV9sYWJlbF9hbmRfcHJvcGVydGll czoKKwkJCWVsZW1lbnRfdGFibGVfcHJvcGVydGllcworCQkJCXsKKwkJCQkJUHJvcEdyYXBoTGFi ZWxBbmRQcm9wZXJ0aWVzICpscCA9IG1ha2VOb2RlKFByb3BHcmFwaExhYmVsQW5kUHJvcGVydGll cyk7CisKKwkJCQkJbHAtPnByb3BlcnRpZXMgPSAoUHJvcEdyYXBoUHJvcGVydGllcyAqKSAkMTsK KwkJCQkJbHAtPmxvY2F0aW9uID0gQDE7CisKKwkJCQkJJCQgPSBsaXN0X21ha2UxKGxwKTsKKwkJ CQl9CisJCQl8IGxhYmVsX2FuZF9wcm9wZXJ0aWVzX2xpc3QKKwkJCQl7CisJCQkJCSQkID0gJDE7 CisJCQkJfQorCQkJfCAvKkVNUFRZKi8KKwkJCQl7CisJCQkJCVByb3BHcmFwaExhYmVsQW5kUHJv cGVydGllcyAqbHAgPSBtYWtlTm9kZShQcm9wR3JhcGhMYWJlbEFuZFByb3BlcnRpZXMpOworCQkJ CQlQcm9wR3JhcGhQcm9wZXJ0aWVzICpwciA9IG1ha2VOb2RlKFByb3BHcmFwaFByb3BlcnRpZXMp OworCisJCQkJCXByLT5hbGwgPSB0cnVlOworCQkJCQlwci0+bG9jYXRpb24gPSAtMTsKKwkJCQkJ bHAtPnByb3BlcnRpZXMgPSBwcjsKKwkJCQkJbHAtPmxvY2F0aW9uID0gLTE7CisKKwkJCQkJJCQg PSBsaXN0X21ha2UxKGxwKTsKKwkJCQl9CisJCTsKKworZWxlbWVudF90YWJsZV9wcm9wZXJ0aWVz OgorCQkJTk8gUFJPUEVSVElFUworCQkJCXsKKwkJCQkJUHJvcEdyYXBoUHJvcGVydGllcyAqcHIg PSBtYWtlTm9kZShQcm9wR3JhcGhQcm9wZXJ0aWVzKTsKKworCQkJCQlwci0+cHJvcGVydGllcyA9 IE5JTDsKKwkJCQkJcHItPmxvY2F0aW9uID0gQDE7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBwcjsK KwkJCQl9CisJCQl8IFBST1BFUlRJRVMgQUxMIENPTFVNTlMKKwkJCS8qfCBQUk9QRVJUSUVTIEFS RSBBTEwgQ09MVU1OUyAqLworCQkJCXsKKwkJCQkJUHJvcEdyYXBoUHJvcGVydGllcyAqcHIgPSBt YWtlTm9kZShQcm9wR3JhcGhQcm9wZXJ0aWVzKTsKKworCQkJCQlwci0+YWxsID0gdHJ1ZTsKKwkJ CQkJcHItPmxvY2F0aW9uID0gQDE7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBwcjsKKwkJCQl9CisJ CQl8IFBST1BFUlRJRVMgJygnIHhtbF9hdHRyaWJ1dGVfbGlzdCAnKScKKwkJCQl7CisJCQkJCVBy b3BHcmFwaFByb3BlcnRpZXMgKnByID0gbWFrZU5vZGUoUHJvcEdyYXBoUHJvcGVydGllcyk7CisK KwkJCQkJcHItPnByb3BlcnRpZXMgPSAkMzsKKwkJCQkJcHItPmxvY2F0aW9uID0gQDE7CisKKwkJ CQkJJCQgPSAoTm9kZSAqKSBwcjsKKwkJCQl9CisJCTsKKworbGFiZWxfYW5kX3Byb3BlcnRpZXNf bGlzdDoKKwkJCWxhYmVsX2FuZF9wcm9wZXJ0aWVzCisJCQkJeworCQkJCQkkJCA9IGxpc3RfbWFr ZTEoJDEpOworCQkJCX0KKwkJCXwgbGFiZWxfYW5kX3Byb3BlcnRpZXNfbGlzdCBsYWJlbF9hbmRf cHJvcGVydGllcworCQkJCXsKKwkJCQkJJCQgPSBsYXBwZW5kKCQxLCAkMik7CisJCQkJfQorCQk7 CisKK2xhYmVsX2FuZF9wcm9wZXJ0aWVzOgorCQkJZWxlbWVudF90YWJsZV9sYWJlbF9jbGF1c2UK KwkJCQl7CisJCQkJCVByb3BHcmFwaExhYmVsQW5kUHJvcGVydGllcyAqbHAgPSBtYWtlTm9kZShQ cm9wR3JhcGhMYWJlbEFuZFByb3BlcnRpZXMpOworCQkJCQlQcm9wR3JhcGhQcm9wZXJ0aWVzICpw ciA9IG1ha2VOb2RlKFByb3BHcmFwaFByb3BlcnRpZXMpOworCisJCQkJCXByLT5hbGwgPSB0cnVl OworCQkJCQlwci0+bG9jYXRpb24gPSAtMTsKKworCQkJCQlscC0+bGFiZWwgPSAkMTsKKwkJCQkJ bHAtPnByb3BlcnRpZXMgPSBwcjsKKwkJCQkJbHAtPmxvY2F0aW9uID0gQDE7CisKKwkJCQkJJCQg PSAoTm9kZSAqKSBscDsKKwkJCQl9CisJCQl8IGVsZW1lbnRfdGFibGVfbGFiZWxfY2xhdXNlIGVs ZW1lbnRfdGFibGVfcHJvcGVydGllcworCQkJCXsKKwkJCQkJUHJvcEdyYXBoTGFiZWxBbmRQcm9w ZXJ0aWVzICpscCA9IG1ha2VOb2RlKFByb3BHcmFwaExhYmVsQW5kUHJvcGVydGllcyk7CisKKwkJ CQkJbHAtPmxhYmVsID0gJDE7CisJCQkJCWxwLT5wcm9wZXJ0aWVzID0gKFByb3BHcmFwaFByb3Bl cnRpZXMgKikgJDI7CisJCQkJCWxwLT5sb2NhdGlvbiA9IEAxOworCisJCQkJCSQkID0gKE5vZGUg KikgbHA7CisJCQkJfQorCQk7CisKK2VsZW1lbnRfdGFibGVfbGFiZWxfY2xhdXNlOgorCQkJTEFC RUwgbmFtZQorCQkJCXsKKwkJCQkJJCQgPSAkMjsKKwkJCQl9CisJCQl8IERFRkFVTFQgTEFCRUwK KwkJCQl7CisJCQkJCSQkID0gTlVMTDsKKwkJCQl9CisJCTsKKworQWx0ZXJQcm9wR3JhcGhTdG10 OgorCQkJQUxURVIgUFJPUEVSVFkgR1JBUEggcXVhbGlmaWVkX25hbWUgQUREX1AgdmVydGV4X3Rh Ymxlc19jbGF1c2UKKwkJCQl7CisJCQkJCUFsdGVyUHJvcEdyYXBoU3RtdCAqbiA9IG1ha2VOb2Rl KEFsdGVyUHJvcEdyYXBoU3RtdCk7CisKKwkJCQkJbi0+cGduYW1lID0gJDQ7CisJCQkJCW4tPmFk ZF92ZXJ0ZXhfdGFibGVzID0gJDY7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJ CXwgQUxURVIgUFJPUEVSVFkgR1JBUEggcXVhbGlmaWVkX25hbWUgQUREX1AgdmVydGV4X3RhYmxl c19jbGF1c2UgQUREX1AgZWRnZV90YWJsZXNfY2xhdXNlCisJCQkJeworCQkJCQlBbHRlclByb3BH cmFwaFN0bXQgKm4gPSBtYWtlTm9kZShBbHRlclByb3BHcmFwaFN0bXQpOworCisJCQkJCW4tPnBn bmFtZSA9ICQ0OworCQkJCQluLT5hZGRfdmVydGV4X3RhYmxlcyA9ICQ2OworCQkJCQluLT5hZGRf ZWRnZV90YWJsZXMgPSAkODsKKworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQkJfCBB TFRFUiBQUk9QRVJUWSBHUkFQSCBxdWFsaWZpZWRfbmFtZSBBRERfUCBlZGdlX3RhYmxlc19jbGF1 c2UKKwkJCQl7CisJCQkJCUFsdGVyUHJvcEdyYXBoU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyUHJv cEdyYXBoU3RtdCk7CisKKwkJCQkJbi0+cGduYW1lID0gJDQ7CisJCQkJCW4tPmFkZF9lZGdlX3Rh YmxlcyA9ICQ2OworCisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IEFMVEVSIFBS T1BFUlRZIEdSQVBIIHF1YWxpZmllZF9uYW1lIERST1AgdmVydGV4X3N5bm9ueW0gVEFCTEVTICco JyBuYW1lX2xpc3QgJyknIG9wdF9kcm9wX2JlaGF2aW9yCisJCQkJeworCQkJCQlBbHRlclByb3BH cmFwaFN0bXQgKm4gPSBtYWtlTm9kZShBbHRlclByb3BHcmFwaFN0bXQpOworCisJCQkJCW4tPnBn bmFtZSA9ICQ0OworCQkJCQluLT5kcm9wX3ZlcnRleF90YWJsZXMgPSAkOTsKKwkJCQkJbi0+ZHJv cF9iZWhhdmlvciA9ICQxMTsKKworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQkJfCBB TFRFUiBQUk9QRVJUWSBHUkFQSCBxdWFsaWZpZWRfbmFtZSBEUk9QIGVkZ2Vfc3lub255bSBUQUJM RVMgJygnIG5hbWVfbGlzdCAnKScgb3B0X2Ryb3BfYmVoYXZpb3IKKwkJCQl7CisJCQkJCUFsdGVy UHJvcEdyYXBoU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyUHJvcEdyYXBoU3RtdCk7CisKKwkJCQkJ bi0+cGduYW1lID0gJDQ7CisJCQkJCW4tPmRyb3BfZWRnZV90YWJsZXMgPSAkOTsKKwkJCQkJbi0+ ZHJvcF9iZWhhdmlvciA9ICQxMTsKKworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQkJ fCBBTFRFUiBQUk9QRVJUWSBHUkFQSCBxdWFsaWZpZWRfbmFtZSBBTFRFUiB2ZXJ0ZXhfb3JfZWRn ZSBUQUJMRSBuYW1lCisJCQkJYWRkX2xhYmVsX2xpc3QKKwkJCQl7CisJCQkJCUFsdGVyUHJvcEdy YXBoU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyUHJvcEdyYXBoU3RtdCk7CisKKwkJCQkJbi0+cGdu YW1lID0gJDQ7CisJCQkJCW4tPmVsZW1lbnRfa2luZCA9ICQ2OworCQkJCQluLT5lbGVtZW50X2Fs aWFzID0gJDg7CisJCQkJCW4tPmFkZF9sYWJlbHMgPSAkOTsKKworCQkJCQkkJCA9IChOb2RlICop IG47CisJCQkJfQorCQkJfCBBTFRFUiBQUk9QRVJUWSBHUkFQSCBxdWFsaWZpZWRfbmFtZSBBTFRF UiB2ZXJ0ZXhfb3JfZWRnZSBUQUJMRSBuYW1lCisJCQkJRFJPUCBMQUJFTCBuYW1lIG9wdF9kcm9w X2JlaGF2aW9yCisJCQkJeworCQkJCQlBbHRlclByb3BHcmFwaFN0bXQgKm4gPSBtYWtlTm9kZShB bHRlclByb3BHcmFwaFN0bXQpOworCisJCQkJCW4tPnBnbmFtZSA9ICQ0OworCQkJCQluLT5lbGVt ZW50X2tpbmQgPSAkNjsKKwkJCQkJbi0+ZWxlbWVudF9hbGlhcyA9ICQ4OworCQkJCQluLT5kcm9w X2xhYmVsID0gJDExOworCQkJCQluLT5kcm9wX2JlaGF2aW9yID0gJDEyOworCisJCQkJCSQkID0g KE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IEFMVEVSIFBST1BFUlRZIEdSQVBIIHF1YWxpZmllZF9u YW1lIEFMVEVSIHZlcnRleF9vcl9lZGdlIFRBQkxFIG5hbWUKKwkJCQlBTFRFUiBMQUJFTCBuYW1l IEFERF9QIFBST1BFUlRJRVMgJygnIHhtbF9hdHRyaWJ1dGVfbGlzdCAnKScKKwkJCQl7CisJCQkJ CUFsdGVyUHJvcEdyYXBoU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyUHJvcEdyYXBoU3RtdCk7CisJ CQkJCVByb3BHcmFwaFByb3BlcnRpZXMgKnByID0gbWFrZU5vZGUoUHJvcEdyYXBoUHJvcGVydGll cyk7CisKKwkJCQkJbi0+cGduYW1lID0gJDQ7CisJCQkJCW4tPmVsZW1lbnRfa2luZCA9ICQ2Owor CQkJCQluLT5lbGVtZW50X2FsaWFzID0gJDg7CisJCQkJCW4tPmFsdGVyX2xhYmVsID0gJDExOwor CisJCQkJCXByLT5wcm9wZXJ0aWVzID0gJDE1OworCQkJCQlwci0+bG9jYXRpb24gPSBAMTM7CisJ CQkJCW4tPmFkZF9wcm9wZXJ0aWVzID0gcHI7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJ CX0KKwkJCXwgQUxURVIgUFJPUEVSVFkgR1JBUEggcXVhbGlmaWVkX25hbWUgQUxURVIgdmVydGV4 X29yX2VkZ2UgVEFCTEUgbmFtZQorCQkJCUFMVEVSIExBQkVMIG5hbWUgRFJPUCBQUk9QRVJUSUVT ICcoJyBuYW1lX2xpc3QgJyknIG9wdF9kcm9wX2JlaGF2aW9yCisJCQkJeworCQkJCQlBbHRlclBy b3BHcmFwaFN0bXQgKm4gPSBtYWtlTm9kZShBbHRlclByb3BHcmFwaFN0bXQpOworCisJCQkJCW4t PnBnbmFtZSA9ICQ0OworCQkJCQluLT5lbGVtZW50X2tpbmQgPSAkNjsKKwkJCQkJbi0+ZWxlbWVu dF9hbGlhcyA9ICQ4OworCQkJCQluLT5hbHRlcl9sYWJlbCA9ICQxMTsKKwkJCQkJbi0+ZHJvcF9w cm9wZXJ0aWVzID0gJDE1OworCQkJCQluLT5kcm9wX2JlaGF2aW9yID0gJDE3OworCisJCQkJCSQk ID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCTsKKwordmVydGV4X29yX2VkZ2U6CisJCQl2ZXJ0ZXhf c3lub255bQkJCQkJCXsgJCQgPSBQUk9QR1JBUEhfRUxFTUVOVF9LSU5EX1ZFUlRFWDsgfQorCQkJ fCBlZGdlX3N5bm9ueW0JCQkJCQl7ICQkID0gUFJPUEdSQVBIX0VMRU1FTlRfS0lORF9FREdFOyB9 CisJCTsKKworYWRkX2xhYmVsX2xpc3Q6CisJCQlhZGRfbGFiZWwJCQkJCQkJeyAkJCA9IGxpc3Rf bWFrZTEoJDEpOyB9CisJCQl8IGFkZF9sYWJlbF9saXN0IGFkZF9sYWJlbAkJCXsgJCQgPSBsYXBw ZW5kKCQxLCAkMik7CX0KKwkJOworCithZGRfbGFiZWw6IEFERF9QIExBQkVMIG5hbWUgZWxlbWVu dF90YWJsZV9wcm9wZXJ0aWVzCisJCQkJeworCQkJCQlQcm9wR3JhcGhMYWJlbEFuZFByb3BlcnRp ZXMgKmxwID0gbWFrZU5vZGUoUHJvcEdyYXBoTGFiZWxBbmRQcm9wZXJ0aWVzKTsKKworCQkJCQls cC0+bGFiZWwgPSAkMzsKKwkJCQkJbHAtPnByb3BlcnRpZXMgPSAoUHJvcEdyYXBoUHJvcGVydGll cyAqKSAkNDsKKwkJCQkJbHAtPmxvY2F0aW9uID0gQDE7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBs cDsKKwkJCQl9CisJCTsKKworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKgkJQ1JFQVRF IFRSQU5TRk9STSAvIERST1AgVFJBTlNGT1JNCkBAIC05NDcwLDYgKzk4NzMsMTYgQEAgUmVuYW1l U3RtdDogQUxURVIgQUdHUkVHQVRFIGFnZ3JlZ2F0ZV93aXRoX2FyZ3R5cGVzIFJFTkFNRSBUTyBu YW1lCiAJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwog CQkJCX0KKwkJCXwgQUxURVIgUFJPUEVSVFkgR1JBUEggcXVhbGlmaWVkX25hbWUgUkVOQU1FIFRP IG5hbWUKKwkJCQl7CisJCQkJCVJlbmFtZVN0bXQgKm4gPSBtYWtlTm9kZShSZW5hbWVTdG10KTsK KworCQkJCQluLT5yZW5hbWVUeXBlID0gT0JKRUNUX1BST1BHUkFQSDsKKwkJCQkJbi0+cmVsYXRp b24gPSAkNDsKKwkJCQkJbi0+bmV3bmFtZSA9ICQ3OworCQkJCQluLT5taXNzaW5nX29rID0gZmFs c2U7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KIAkJCXwgQUxURVIgUFVCTElDQVRJT04g bmFtZSBSRU5BTUUgVE8gbmFtZQogCQkJCXsKIAkJCQkJUmVuYW1lU3RtdCAqbiA9IG1ha2VOb2Rl KFJlbmFtZVN0bXQpOwpAQCAtMTAwOTUsNiArMTA1MDgsMjYgQEAgQWx0ZXJPYmplY3RTY2hlbWFT dG10OgogCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsK IAkJCQl9CisJCQl8IEFMVEVSIFBST1BFUlRZIEdSQVBIIHF1YWxpZmllZF9uYW1lIFNFVCBTQ0hF TUEgbmFtZQorCQkJCXsKKwkJCQkJQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpuID0gbWFrZU5vZGUo QWx0ZXJPYmplY3RTY2hlbWFTdG10KTsKKworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1BS T1BHUkFQSDsKKwkJCQkJbi0+cmVsYXRpb24gPSAkNDsKKwkJCQkJbi0+bmV3c2NoZW1hID0gJDc7 CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJ fQorCQkJfCBBTFRFUiBQUk9QRVJUWSBHUkFQSCBJRl9QIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBT RVQgU0NIRU1BIG5hbWUKKwkJCQl7CisJCQkJCUFsdGVyT2JqZWN0U2NoZW1hU3RtdCAqbiA9IG1h a2VOb2RlKEFsdGVyT2JqZWN0U2NoZW1hU3RtdCk7CisKKwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9C SkVDVF9QUk9QR1JBUEg7CisJCQkJCW4tPnJlbGF0aW9uID0gJDY7CisJCQkJCW4tPm5ld3NjaGVt YSA9ICQ5OworCQkJCQluLT5taXNzaW5nX29rID0gdHJ1ZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47 CisJCQkJfQogCQkJfCBBTFRFUiBST1VUSU5FIGZ1bmN0aW9uX3dpdGhfYXJndHlwZXMgU0VUIFND SEVNQSBuYW1lCiAJCQkJewogCQkJCQlBbHRlck9iamVjdFNjaGVtYVN0bXQgKm4gPSBtYWtlTm9k ZShBbHRlck9iamVjdFNjaGVtYVN0bXQpOwpAQCAtMTA0MzgsNiArMTA4NzEsMTUgQEAgQWx0ZXJP d25lclN0bXQ6IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0eXBlcyBPV05FUiBU TyBSb2xlU3BlYwogCQkJCQluLT5uZXdvd25lciA9ICQ2OwogCQkJCQkkJCA9IChOb2RlICopIG47 CiAJCQkJfQorCQkJfCBBTFRFUiBQUk9QRVJUWSBHUkFQSCBxdWFsaWZpZWRfbmFtZSBPV05FUiBU TyBSb2xlU3BlYworCQkJCXsKKwkJCQkJQWx0ZXJPd25lclN0bXQgKm4gPSBtYWtlTm9kZShBbHRl ck93bmVyU3RtdCk7CisKKwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9CSkVDVF9QUk9QR1JBUEg7CisJ CQkJCW4tPnJlbGF0aW9uID0gJDQ7CisJCQkJCW4tPm5ld293bmVyID0gJDc7CisJCQkJCSQkID0g KE5vZGUgKikgbjsKKwkJCQl9CiAJCQl8IEFMVEVSIFJPVVRJTkUgZnVuY3Rpb25fd2l0aF9hcmd0 eXBlcyBPV05FUiBUTyBSb2xlU3BlYwogCQkJCXsKIAkJCQkJQWx0ZXJPd25lclN0bXQgKm4gPSBt YWtlTm9kZShBbHRlck93bmVyU3RtdCk7CkBAIC0xMzU3Myw2ICsxNDAxNSwxNyBAQCB0YWJsZV9y ZWY6CXJlbGF0aW9uX2V4cHIgb3B0X2FsaWFzX2NsYXVzZQogCQkJCQluLT5hbGlhcyA9ICQzOwog CQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBHUkFQSF9UQUJMRSAnKCcgcXVhbGlm aWVkX25hbWUgTUFUQ0ggZ3JhcGhfcGF0dGVybiBDT0xVTU5TICcoJyB4bWxfYXR0cmlidXRlX2xp c3QgJyknICcpJyBvcHRfYWxpYXNfY2xhdXNlCisJCQkJeworCQkJCQlSYW5nZUdyYXBoVGFibGUg Km4gPSBtYWtlTm9kZShSYW5nZUdyYXBoVGFibGUpOworCisJCQkJCW4tPmdyYXBoX25hbWUgPSAk MzsKKwkJCQkJbi0+Z3JhcGhfcGF0dGVybiA9IGNhc3ROb2RlKEdyYXBoUGF0dGVybiwgJDUpOwor CQkJCQluLT5jb2x1bW5zID0gJDg7CisJCQkJCW4tPmFsaWFzID0gJDExOworCQkJCQluLT5sb2Nh dGlvbiA9IEAxOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQogCQkJfCBzZWxlY3Rfd2l0 aF9wYXJlbnMgb3B0X2FsaWFzX2NsYXVzZQogCQkJCXsKIAkJCQkJUmFuZ2VTdWJzZWxlY3QgKm4g PSBtYWtlTm9kZShSYW5nZVN1YnNlbGVjdCk7CkBAIC0xNDkxNyw2ICsxNTM3MCwxMCBAQCBhX2V4 cHI6CQljX2V4cHIJCQkJCQkJCQl7ICQkID0gJDE7IH0KIAkJCQl7ICQkID0gKE5vZGUgKikgbWFr ZVNpbXBsZUFfRXhwcihBRVhQUl9PUCwgIj49IiwgJDEsICQzLCBAMik7IH0KIAkJCXwgYV9leHBy IE5PVF9FUVVBTFMgYV9leHByCiAJCQkJeyAkJCA9IChOb2RlICopIG1ha2VTaW1wbGVBX0V4cHIo QUVYUFJfT1AsICI8PiIsICQxLCAkMywgQDIpOyB9CisJCQl8IGFfZXhwciBSSUdIVF9BUlJPVyBh X2V4cHIKKwkJCQl7ICQkID0gKE5vZGUgKikgbWFrZVNpbXBsZUFfRXhwcihBRVhQUl9PUCwgIi0+ IiwgJDEsICQzLCBAMik7IH0KKwkJCXwgYV9leHByICd8JyBhX2V4cHIKKwkJCQl7ICQkID0gKE5v ZGUgKikgbWFrZVNpbXBsZUFfRXhwcihBRVhQUl9PUCwgInwiLCAkMSwgJDMsIEAyKTsgfQogCiAJ CQl8IGFfZXhwciBxdWFsX09wIGFfZXhwcgkJCQklcHJlYyBPcAogCQkJCXsgJCQgPSAoTm9kZSAq KSBtYWtlQV9FeHByKEFFWFBSX09QLCAkMiwgJDEsICQzLCBAMik7IH0KQEAgLTE1Mzk2LDYgKzE1 ODUzLDEwIEBAIGJfZXhwcjoJCWNfZXhwcgogCQkJCXsgJCQgPSAoTm9kZSAqKSBtYWtlU2ltcGxl QV9FeHByKEFFWFBSX09QLCAiPj0iLCAkMSwgJDMsIEAyKTsgfQogCQkJfCBiX2V4cHIgTk9UX0VR VUFMUyBiX2V4cHIKIAkJCQl7ICQkID0gKE5vZGUgKikgbWFrZVNpbXBsZUFfRXhwcihBRVhQUl9P UCwgIjw+IiwgJDEsICQzLCBAMik7IH0KKwkJCXwgYl9leHByIFJJR0hUX0FSUk9XIGJfZXhwcgor CQkJCXsgJCQgPSAoTm9kZSAqKSBtYWtlU2ltcGxlQV9FeHByKEFFWFBSX09QLCAiLT4iLCAkMSwg JDMsIEAyKTsgfQorCQkJfCBiX2V4cHIgJ3wnIGJfZXhwcgorCQkJCXsgJCQgPSAoTm9kZSAqKSBt YWtlU2ltcGxlQV9FeHByKEFFWFBSX09QLCAifCIsICQxLCAkMywgQDIpOyB9CiAJCQl8IGJfZXhw ciBxdWFsX09wIGJfZXhwcgkJCQklcHJlYyBPcAogCQkJCXsgJCQgPSAoTm9kZSAqKSBtYWtlQV9F eHByKEFFWFBSX09QLCAkMiwgJDEsICQzLCBAMik7IH0KIAkJCXwgcXVhbF9PcCBiX2V4cHIJCQkJ CSVwcmVjIE9wCkBAIC0xNjU2NCw2ICsxNzAyNSw4IEBAIE1hdGhPcDoJCSAnKycJCQkJCQkJCQl7 ICQkID0gIisiOyB9CiAJCQl8IExFU1NfRVFVQUxTCQkJCQkJCXsgJCQgPSAiPD0iOyB9CiAJCQl8 IEdSRUFURVJfRVFVQUxTCQkJCQkJeyAkJCA9ICI+PSI7IH0KIAkJCXwgTk9UX0VRVUFMUwkJCQkJ CQl7ICQkID0gIjw+IjsgfQorCQkJfCBSSUdIVF9BUlJPVwkJCQkJCQl7ICQkID0gIi0+IjsgfQor CQkJfCAnfCcJCQkJCQkJCQl7ICQkID0gInwiOyB9CiAJCTsKIAogcXVhbF9PcDoJT3AKQEAgLTE3 MTU1LDYgKzE3NjE4LDIxMyBAQCBqc29uX2FycmF5X2FnZ3JlZ2F0ZV9vcmRlcl9ieV9jbGF1c2Vf b3B0OgogCQkJfCAvKiBFTVBUWSAqLwkJCQkJCQl7ICQkID0gTklMOyB9CiAJCTsKIAorCisvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKKyAqCisgKglncmFwaCBwYXR0ZXJucworICoKKyAqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8KKworZ3JhcGhfcGF0dGVybjoKKwkJCXBhdGhfcGF0dGVybl9saXN0IHdoZXJl X2NsYXVzZQorCQkJCXsKKwkJCQkJR3JhcGhQYXR0ZXJuICpncCA9IG1ha2VOb2RlKEdyYXBoUGF0 dGVybik7CisKKwkJCQkJZ3AtPnBhdGhfcGF0dGVybl9saXN0ID0gJDE7CisJCQkJCWdwLT53aGVy ZUNsYXVzZSA9ICQyOworCQkJCQkkJCA9IChOb2RlICopIGdwOworCQkJCX0KKwkJOworCitwYXRo X3BhdHRlcm5fbGlzdDoKKwkJCXBhdGhfcGF0dGVybgkJCQkJCQl7ICQkID0gbGlzdF9tYWtlMSgk MSk7IH0KKwkJCXwgcGF0aF9wYXR0ZXJuX2xpc3QgJywnIHBhdGhfcGF0dGVybgl7ICQkID0gbGFw cGVuZCgkMSwgJDMpOyB9CisJCTsKKworcGF0aF9wYXR0ZXJuOgorCQkJcGF0aF9wYXR0ZXJuX2V4 cHJlc3Npb24JCQkJCXsgJCQgPSAkMTsgfQorCQk7CisKKy8qCisgKiBwYXRoIHBhdHRlcm4gZXhw cmVzc2lvbgorICovCisKK3BhdGhfcGF0dGVybl9leHByZXNzaW9uOgorCQkJcGF0aF90ZXJtCQkJ CQkJCQl7ICQkID0gJDE7IH0KKwkJCS8qIHwgcGF0aF9tdWx0aXNldF9hbHRlcm5hdGlvbiAqLwor CQkJLyogfCBwYXRoX3BhdHRlcm5fdW5pb24gKi8KKwkJOworCitwYXRoX3Rlcm06CisJCQlwYXRo X2ZhY3RvcgkJCQkJCQkJeyAkJCA9IGxpc3RfbWFrZTEoJDEpOyB9CisJCQl8IHBhdGhfdGVybSBw YXRoX2ZhY3RvcgkJCQkJeyAkJCA9IGxhcHBlbmQoJDEsICQyKTsgfQorCQk7CisKK3BhdGhfZmFj dG9yOgorCQkJcGF0aF9wcmltYXJ5IG9wdF9ncmFwaF9wYXR0ZXJuX3F1YW50aWZpZXIKKwkJCQl7 CisJCQkJCUdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCA9IChHcmFwaEVsZW1lbnRQYXR0ZXJuICop ICQxOworCisJCQkJCWdlcC0+cXVhbnRpZmllciA9ICQyOworCQkJCX0KKwkJOworCitwYXRoX3By aW1hcnk6CisJCQknKCcgb3B0X2NvbGlkIG9wdF9pc19sYWJlbF9leHByZXNzaW9uIHdoZXJlX2Ns YXVzZSAnKScKKwkJCQl7CisJCQkJCUdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCA9IG1ha2VOb2Rl KEdyYXBoRWxlbWVudFBhdHRlcm4pOworCisJCQkJCWdlcC0+a2luZCA9IFZFUlRFWF9QQVRURVJO OworCQkJCQlnZXAtPnZhcmlhYmxlID0gJDI7CisJCQkJCWdlcC0+bGFiZWxleHByID0gJDM7CisJ CQkJCWdlcC0+d2hlcmVDbGF1c2UgPSAkNDsKKwkJCQkJZ2VwLT5sb2NhdGlvbiA9IEAxOworCisJ CQkJCSQkID0gKE5vZGUgKikgZ2VwOworCQkJCX0KKwkJCS8qIGZ1bGwgZWRnZSBwb2ludGluZyBs ZWZ0OiA8LVsgeHh4IF0tICovCisJCQl8ICc8JyAnLScgJ1snIG9wdF9jb2xpZCBvcHRfaXNfbGFi ZWxfZXhwcmVzc2lvbiB3aGVyZV9jbGF1c2UgJ10nICctJworCQkJCXsKKwkJCQkJR3JhcGhFbGVt ZW50UGF0dGVybiAqZ2VwID0gbWFrZU5vZGUoR3JhcGhFbGVtZW50UGF0dGVybik7CisKKwkJCQkJ Z2VwLT5raW5kID0gRURHRV9QQVRURVJOX0xFRlQ7CisJCQkJCWdlcC0+dmFyaWFibGUgPSAkNDsK KwkJCQkJZ2VwLT5sYWJlbGV4cHIgPSAkNTsKKwkJCQkJZ2VwLT53aGVyZUNsYXVzZSA9ICQ2Owor CQkJCQlnZXAtPmxvY2F0aW9uID0gQDE7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBnZXA7CisJCQkJ fQorCQkJLyogZnVsbCBlZGdlIHBvaW50aW5nIHJpZ2h0OiAtWyB4eHggXS0+ICovCisJCQl8ICct JyAnWycgb3B0X2NvbGlkIG9wdF9pc19sYWJlbF9leHByZXNzaW9uIHdoZXJlX2NsYXVzZSAnXScg Jy0nICc+JworCQkJCXsKKwkJCQkJR3JhcGhFbGVtZW50UGF0dGVybiAqZ2VwID0gbWFrZU5vZGUo R3JhcGhFbGVtZW50UGF0dGVybik7CisKKwkJCQkJZ2VwLT5raW5kID0gRURHRV9QQVRURVJOX1JJ R0hUOworCQkJCQlnZXAtPnZhcmlhYmxlID0gJDM7CisJCQkJCWdlcC0+bGFiZWxleHByID0gJDQ7 CisJCQkJCWdlcC0+d2hlcmVDbGF1c2UgPSAkNTsKKwkJCQkJZ2VwLT5sb2NhdGlvbiA9IEAxOwor CisJCQkJCSQkID0gKE5vZGUgKikgZ2VwOworCQkJCX0KKwkJCXwgJy0nICdbJyBvcHRfY29saWQg b3B0X2lzX2xhYmVsX2V4cHJlc3Npb24gd2hlcmVfY2xhdXNlICddJyBSSUdIVF9BUlJPVworCQkJ CXsKKwkJCQkJR3JhcGhFbGVtZW50UGF0dGVybiAqZ2VwID0gbWFrZU5vZGUoR3JhcGhFbGVtZW50 UGF0dGVybik7CisKKwkJCQkJZ2VwLT5raW5kID0gRURHRV9QQVRURVJOX1JJR0hUOworCQkJCQln ZXAtPnZhcmlhYmxlID0gJDM7CisJCQkJCWdlcC0+bGFiZWxleHByID0gJDQ7CisJCQkJCWdlcC0+ d2hlcmVDbGF1c2UgPSAkNTsKKwkJCQkJZ2VwLT5sb2NhdGlvbiA9IEAxOworCisJCQkJCSQkID0g KE5vZGUgKikgZ2VwOworCQkJCX0KKwkJCS8qIGZ1bGwgZWRnZSBhbnkgZGlyZWN0aW9uOiAtWyB4 eHggXS0gKi8KKwkJCXwgJy0nICdbJyBvcHRfY29saWQgb3B0X2lzX2xhYmVsX2V4cHJlc3Npb24g d2hlcmVfY2xhdXNlICddJyAnLScKKwkJCQl7CisJCQkJCUdyYXBoRWxlbWVudFBhdHRlcm4gKmdl cCA9IG1ha2VOb2RlKEdyYXBoRWxlbWVudFBhdHRlcm4pOworCisJCQkJCWdlcC0+a2luZCA9IEVE R0VfUEFUVEVSTl9BTlk7CisJCQkJCWdlcC0+dmFyaWFibGUgPSAkMzsKKwkJCQkJZ2VwLT5sYWJl bGV4cHIgPSAkNDsKKwkJCQkJZ2VwLT53aGVyZUNsYXVzZSA9ICQ1OworCQkJCQlnZXAtPmxvY2F0 aW9uID0gQDE7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBnZXA7CisJCQkJfQorCQkJLyogYWJicmV2 aWF0ZWQgZWRnZSBwYXR0ZXJucyAqLworCQkJfCAnPCcgJy0nCisJCQkJeworCQkJCQlHcmFwaEVs ZW1lbnRQYXR0ZXJuICpnZXAgPSBtYWtlTm9kZShHcmFwaEVsZW1lbnRQYXR0ZXJuKTsKKworCQkJ CQlnZXAtPmtpbmQgPSBFREdFX1BBVFRFUk5fTEVGVDsKKwkJCQkJZ2VwLT5sb2NhdGlvbiA9IEAx OworCisJCQkJCSQkID0gKE5vZGUgKikgZ2VwOworCQkJCX0KKwkJCXwgJy0nICc+JworCQkJCXsK KwkJCQkJR3JhcGhFbGVtZW50UGF0dGVybiAqZ2VwID0gbWFrZU5vZGUoR3JhcGhFbGVtZW50UGF0 dGVybik7CisKKwkJCQkJZ2VwLT5raW5kID0gRURHRV9QQVRURVJOX1JJR0hUOworCQkJCQlnZXAt PmxvY2F0aW9uID0gQDE7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBnZXA7CisJCQkJfQorCQkJfCBS SUdIVF9BUlJPVworCQkJCXsKKwkJCQkJR3JhcGhFbGVtZW50UGF0dGVybiAqZ2VwID0gbWFrZU5v ZGUoR3JhcGhFbGVtZW50UGF0dGVybik7CisKKwkJCQkJZ2VwLT5raW5kID0gRURHRV9QQVRURVJO X1JJR0hUOworCQkJCQlnZXAtPmxvY2F0aW9uID0gQDE7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBn ZXA7CisJCQkJfQorCQkJfCAnLScKKwkJCQl7CisJCQkJCUdyYXBoRWxlbWVudFBhdHRlcm4gKmdl cCA9IG1ha2VOb2RlKEdyYXBoRWxlbWVudFBhdHRlcm4pOworCisJCQkJCWdlcC0+a2luZCA9IEVE R0VfUEFUVEVSTl9BTlk7CisJCQkJCWdlcC0+bG9jYXRpb24gPSBAMTsKKworCQkJCQkkJCA9IChO b2RlICopIGdlcDsKKwkJCQl9CisJCQl8ICcoJyBwYXRoX3BhdHRlcm5fZXhwcmVzc2lvbiB3aGVy ZV9jbGF1c2UgJyknCisJCQkJeworCQkJCQlHcmFwaEVsZW1lbnRQYXR0ZXJuICpnZXAgPSBtYWtl Tm9kZShHcmFwaEVsZW1lbnRQYXR0ZXJuKTsKKworCQkJCQlnZXAtPmtpbmQgPSBQQVJFTl9FWFBS OworCQkJCQlnZXAtPnN1YmV4cHIgPSAkMjsKKwkJCQkJZ2VwLT53aGVyZUNsYXVzZSA9ICQzOwor CQkJCQlnZXAtPmxvY2F0aW9uID0gQDE7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBnZXA7CisJCQkJ fQorCQk7CisKK29wdF9jb2xpZDoKKwkJCUNvbElkCQkJeyAkJCA9ICQxOyB9CisJCQl8IC8qRU1Q VFkqLwkJeyAkJCA9IE5VTEw7IH0KKwkJOworCitvcHRfaXNfbGFiZWxfZXhwcmVzc2lvbjoKKwkJ CUlTIGxhYmVsX2V4cHJlc3Npb24JCXsgJCQgPSAkMjsgfQorCQkJfCAnOicgbGFiZWxfZXhwcmVz c2lvbgl7ICQkID0gJDI7IH0KKwkJCXwgLypFTVBUWSovCQkJCXsgJCQgPSBOVUxMOyB9CisJCTsK KworLyoKKyAqIGdyYXBoIHBhdHRlcm4gcXVhbnRpZmllcgorICovCisKK29wdF9ncmFwaF9wYXR0 ZXJuX3F1YW50aWZpZXI6CisJCQkneycgSWNvbnN0ICd9JwkJCQkJeyAkJCA9IGxpc3RfbWFrZTJf aW50KCQyLCAkMik7IH0KKwkJCXwgJ3snICcsJyBJY29uc3QgJ30nCQkJeyAkJCA9IGxpc3RfbWFr ZTJfaW50KDAsICQzKTsgfQorCQkJfCAneycgSWNvbnN0ICcsJyBJY29uc3QgJ30nCQl7ICQkID0g bGlzdF9tYWtlMl9pbnQoJDIsICQ0KTsgfQorCQkJfCAvKkVNUFRZKi8JCQkJCQl7ICQkID0gTlVM TDsgfQorCQk7CisKKy8qCisgKiBsYWJlbCBleHByZXNzaW9uCisgKi8KKworbGFiZWxfZXhwcmVz c2lvbjoKKwkJCWxhYmVsX3Rlcm0KKwkJCXwgbGFiZWxfZGlzanVuY3Rpb24KKwkJOworCitsYWJl bF9kaXNqdW5jdGlvbjoKKwkJCWxhYmVsX2V4cHJlc3Npb24gJ3wnIGxhYmVsX3Rlcm0KKwkJCQl7 ICQkID0gbWFrZU9yRXhwcigkMSwgJDMsIEAyKTsgfQorCQk7CisKK2xhYmVsX3Rlcm06CisJCQlu YW1lCisJCQkJeyAkJCA9IG1ha2VDb2x1bW5SZWYoJDEsIE5JTCwgQDEsIHl5c2Nhbm5lcik7IH0K KwkJOworCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqCXRhcmdldCBsaXN0IGZvciBT RUxFQ1QKQEAgLTE3Njc1LDYgKzE4MzQ1LDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBE RUxJTUlURVJTCiAJCQl8IERFUEVORFMKIAkJCXwgREVQVEgKKwkJCXwgREVTVElOQVRJT04KIAkJ CXwgREVUQUNICiAJCQl8IERJQ1RJT05BUlkKIAkJCXwgRElTQUJMRV9QCkBAIC0xNzY4NCw2ICsx ODM1NSw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgRE9VQkxFX1AKIAkJCXwgRFJPUAog CQkJfCBFQUNICisJCQl8IEVER0UKIAkJCXwgRU1QVFlfUAogCQkJfCBFTkFCTEVfUAogCQkJfCBF TkNPRElORwpAQCAtMTc3MTMsNiArMTgzODUsNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8 IEdFTkVSQVRFRAogCQkJfCBHTE9CQUwKIAkJCXwgR1JBTlRFRAorCQkJfCBHUkFQSAogCQkJfCBH Uk9VUFMKIAkJCXwgSEFORExFUgogCQkJfCBIRUFERVJfUApAQCAtMTc3NzcsNiArMTg0NTAsNyBA QCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IE5GS0MKIAkJCXwgTkZLRAogCQkJfCBOTworCQkJ fCBOT0RFCiAJCQl8IE5PUk1BTElaRUQKIAkJCXwgTk9USElORwogCQkJfCBOT1RJRlkKQEAgLTE3 ODE5LDYgKzE4NDkzLDggQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBQUk9DRURVUkUKIAkJ CXwgUFJPQ0VEVVJFUwogCQkJfCBQUk9HUkFNCisJCQl8IFBST1BFUlRJRVMKKwkJCXwgUFJPUEVS VFkKIAkJCXwgUFVCTElDQVRJT04KIAkJCXwgUVVPVEUKIAkJCXwgUVVPVEVTCkBAIC0xNzgzMCw2 ICsxODUwNiw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgUkVGRVJFTkNJTkcKIAkJCXwg UkVGUkVTSAogCQkJfCBSRUlOREVYCisJCQl8IFJFTEFUSU9OU0hJUAogCQkJfCBSRUxBVElWRV9Q CiAJCQl8IFJFTEVBU0UKIAkJCXwgUkVOQU1FCkBAIC0xNzkxOSw2ICsxODU5Niw3IEBAIHVucmVz ZXJ2ZWRfa2V5d29yZDoKIAkJCXwgVkFMVUVfUAogCQkJfCBWQVJZSU5HCiAJCQl8IFZFUlNJT05f UAorCQkJfCBWRVJURVgKIAkJCXwgVklFVwogCQkJfCBWSUVXUwogCQkJfCBWT0xBVElMRQpAQCAt MTc5NTcsNiArMTg2MzUsNyBAQCBjb2xfbmFtZV9rZXl3b3JkOgogCQkJfCBFWElTVFMKIAkJCXwg RVhUUkFDVAogCQkJfCBGTE9BVF9QCisJCQl8IEdSQVBIX1RBQkxFCiAJCQl8IEdSRUFURVNUCiAJ CQl8IEdST1VQSU5HCiAJCQl8IElOT1VUCkBAIC0xODI0OCw2ICsxODkyNyw3IEBAIGJhcmVfbGFi ZWxfa2V5d29yZDoKIAkJCXwgREVQRU5EUwogCQkJfCBERVBUSAogCQkJfCBERVNDCisJCQl8IERF U1RJTkFUSU9OCiAJCQl8IERFVEFDSAogCQkJfCBESUNUSU9OQVJZCiAJCQl8IERJU0FCTEVfUApA QCAtMTgyNTksNiArMTg5MzksNyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IERPVUJMRV9Q CiAJCQl8IERST1AKIAkJCXwgRUFDSAorCQkJfCBFREdFCiAJCQl8IEVMU0UKIAkJCXwgRU1QVFlf UAogCQkJfCBFTkFCTEVfUApAQCAtMTgyOTYsNiArMTg5NzcsOCBAQCBiYXJlX2xhYmVsX2tleXdv cmQ6CiAJCQl8IEdFTkVSQVRFRAogCQkJfCBHTE9CQUwKIAkJCXwgR1JBTlRFRAorCQkJfCBHUkFQ SAorCQkJfCBHUkFQSF9UQUJMRQogCQkJfCBHUkVBVEVTVAogCQkJfCBHUk9VUElORwogCQkJfCBH Uk9VUFMKQEAgLTE4MzkxLDYgKzE5MDc0LDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBO RktDCiAJCQl8IE5GS0QKIAkJCXwgTk8KKwkJCXwgTk9ERQogCQkJfCBOT05FCiAJCQl8IE5PUk1B TElaRQogCQkJfCBOT1JNQUxJWkVECkBAIC0xODQ0Niw2ICsxOTEzMCw4IEBAIGJhcmVfbGFiZWxf a2V5d29yZDoKIAkJCXwgUFJPQ0VEVVJFCiAJCQl8IFBST0NFRFVSRVMKIAkJCXwgUFJPR1JBTQor CQkJfCBQUk9QRVJUSUVTCisJCQl8IFBST1BFUlRZCiAJCQl8IFBVQkxJQ0FUSU9OCiAJCQl8IFFV T1RFCiAJCQl8IFFVT1RFUwpAQCAtMTg0NTksNiArMTkxNDUsNyBAQCBiYXJlX2xhYmVsX2tleXdv cmQ6CiAJCQl8IFJFRkVSRU5DSU5HCiAJCQl8IFJFRlJFU0gKIAkJCXwgUkVJTkRFWAorCQkJfCBS RUxBVElPTlNISVAKIAkJCXwgUkVMQVRJVkVfUAogCQkJfCBSRUxFQVNFCiAJCQl8IFJFTkFNRQpA QCAtMTg1NzMsNiArMTkyNjAsNyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IFZBUklBRElD CiAJCQl8IFZFUkJPU0UKIAkJCXwgVkVSU0lPTl9QCisJCQl8IFZFUlRFWAogCQkJfCBWSUVXCiAJ CQl8IFZJRVdTCiAJCQl8IFZPTEFUSUxFCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIv bWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9wYXJzZXIvbWVzb24uYnVpbGQKaW5kZXggNTczZDcw YjNkMWIuLmNiY2ZhMDdiNDA1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvbWVzb24u YnVpbGQKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL21lc29uLmJ1aWxkCkBAIC0xMCw2ICsxMCw3 IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ3BhcnNlX2Vuci5jJywKICAgJ3BhcnNl X2V4cHIuYycsCiAgICdwYXJzZV9mdW5jLmMnLAorICAncGFyc2VfZ3JhcGh0YWJsZS5jJywKICAg J3BhcnNlX2pzb250YWJsZS5jJywKICAgJ3BhcnNlX21lcmdlLmMnLAogICAncGFyc2Vfbm9kZS5j JywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwppbmRleCAwNGI0NTk2YTY1YS4uZTE1Y2U0MWE5YmUgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYworKysgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfYWdnLmMKQEAgLTU4MCw2ICs1ODAsMTQgQEAgY2hlY2tfYWdnbGV2ZWxz X2FuZF9jb25zdHJhaW50cyhQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIpCiAJCQllcnJr aW5kID0gdHJ1ZTsKIAkJCWJyZWFrOwogCisJCWNhc2UgRVhQUl9LSU5EX1BST1BHUkFQSF9QUk9Q RVJUWToKKwkJCWlmIChpc0FnZykKKwkJCQllcnIgPSBfKCJhZ2dyZWdhdGUgZnVuY3Rpb25zIGFy ZSBub3QgYWxsb3dlZCBpbiBwcm9wZXJ0eSBkZWZpbml0aW9uIGV4cHJlc3Npb25zIik7CisJCQll bHNlCisJCQkJZXJyID0gXygiZ3JvdXBpbmcgb3BlcmF0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4g cHJvcGVydHkgZGVmaW5pdGlvbiBleHByZXNzaW9ucyIpOworCisJCQlicmVhazsKKwogCQkJLyoK IAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0 aGF0IHRoZQogCQkJICogY29tcGlsZXIgd2lsbCB3YXJuIGlmIHdlIGFkZCBhIG5ldyBQYXJzZUV4 cHJLaW5kIHdpdGhvdXQKQEAgLTk3MCw2ICs5NzgsOSBAQCB0cmFuc2Zvcm1XaW5kb3dGdW5jQ2Fs bChQYXJzZVN0YXRlICpwc3RhdGUsIFdpbmRvd0Z1bmMgKndmdW5jLAogCQljYXNlIEVYUFJfS0lO RF9DWUNMRV9NQVJLOgogCQkJZXJya2luZCA9IHRydWU7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBS X0tJTkRfUFJPUEdSQVBIX1BST1BFUlRZOgorCQkJZXJyID0gXygid2luZG93IGZ1bmN0aW9ucyBh cmUgbm90IGFsbG93ZWQgaW4gcHJvcGVydHkgZGVmaW5pdGlvbiBleHByZXNzaW9ucyIpOworCQkJ YnJlYWs7CiAKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1bHQ6 IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9jbGF1c2UuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYwppbmRleCA5 Nzk5MjZiNjA1Mi4uMDRiZjU2NDdmOTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9jbGF1c2UuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNlLmMKQEAg LTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfY29sbGF0ZS5oIgogI2luY2x1 ZGUgInBhcnNlci9wYXJzZV9leHByLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2Z1bmMuaCIK KyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5oIgogI2luY2x1ZGUgInBhcnNlci9w YXJzZV9vcGVyLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAjaW5jbHVk ZSAicGFyc2VyL3BhcnNlX3RhcmdldC5oIgpAQCAtNjUsNiArNjYsOCBAQCBzdGF0aWMgUGFyc2VO YW1lc3BhY2VJdGVtICp0cmFuc2Zvcm1SYW5nZUZ1bmN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwK IAkJCQkJCQkJCQkJCSAgUmFuZ2VGdW5jdGlvbiAqcik7CiBzdGF0aWMgUGFyc2VOYW1lc3BhY2VJ dGVtICp0cmFuc2Zvcm1SYW5nZVRhYmxlRnVuYyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJ CQkJCQkgICBSYW5nZVRhYmxlRnVuYyAqcnRmKTsKK3N0YXRpYyBQYXJzZU5hbWVzcGFjZUl0ZW0g KnRyYW5zZm9ybVJhbmdlR3JhcGhUYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkJCQkJ CQkJUmFuZ2VHcmFwaFRhYmxlICpyZ3QpOwogc3RhdGljIFRhYmxlU2FtcGxlQ2xhdXNlICp0cmFu c2Zvcm1SYW5nZVRhYmxlU2FtcGxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJCQlS YW5nZVRhYmxlU2FtcGxlICpydHMpOwogc3RhdGljIFBhcnNlTmFtZXNwYWNlSXRlbSAqZ2V0TlNJ dGVtRm9yU3BlY2lhbFJlbGF0aW9uVHlwZXMoUGFyc2VTdGF0ZSAqcHN0YXRlLApAQCAtODk4LDYg KzkwMSw4MCBAQCB0cmFuc2Zvcm1SYW5nZVRhYmxlRnVuYyhQYXJzZVN0YXRlICpwc3RhdGUsIFJh bmdlVGFibGVGdW5jICpydGYpCiAJCQkJCQkJCQkJICB0ZiwgcnRmLT5hbGlhcywgaXNfbGF0ZXJh bCwgdHJ1ZSk7CiB9CiAKKy8qCisgKiB0cmFuc2Zvcm1SYW5nZUdyYXBoVGFibGUgLS0gdHJhbnNm b3JtIGEgR1JBUEhfVEFCTEUgY2xhdXNlCisgKi8KK3N0YXRpYyBQYXJzZU5hbWVzcGFjZUl0ZW0g KgordHJhbnNmb3JtUmFuZ2VHcmFwaFRhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmFuZ2VHcmFw aFRhYmxlICpyZ3QpCit7CisJUmVsYXRpb24JcmVsOworCU9pZAkJCWdyYXBoaWQ7CisJR3JhcGhU YWJsZVBhcnNlU3RhdGUgKmdwc3RhdGUgPSBwYWxsb2MwX29iamVjdChHcmFwaFRhYmxlUGFyc2VT dGF0ZSk7CisJTm9kZQkgICAqZ3A7CisJTGlzdAkgICAqY29sdW1ucyA9IE5JTDsKKwlMaXN0CSAg ICpjb2xuYW1lcyA9IE5JTDsKKwlMaXN0Q2VsbCAgICpsYzsKKwlpbnQJCQlyZXNubyA9IDA7CisK KwlyZWwgPSBwYXJzZXJPcGVuVGFibGUocHN0YXRlLCByZ3QtPmdyYXBoX25hbWUsIEFjY2Vzc1No YXJlTG9jayk7CisJaWYgKHJlbC0+cmRfcmVsLT5yZWxraW5kICE9IFJFTEtJTkRfUFJPUEdSQVBI KQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQ RSksCisJCQkJZXJybXNnKCJcIiVzXCIgaXMgbm90IGEgcHJvcGVydHkgZ3JhcGgiLAorCQkJCQkg ICBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSwKKwkJCQlwYXJzZXJfZXJycG9zaXRpb24o cHN0YXRlLCByZ3QtPmdyYXBoX25hbWUtPmxvY2F0aW9uKSk7CisKKwlncmFwaGlkID0gUmVsYXRp b25HZXRSZWxpZChyZWwpOworCisJZ3BzdGF0ZS0+Z3JhcGhpZCA9IGdyYXBoaWQ7CisKKwlwc3Rh dGUtPnBfcG9zdF9jb2x1bW5yZWZfaG9vayA9IGdyYXBoX3RhYmxlX3Byb3BlcnR5X3JlZmVyZW5j ZTsKKwlwc3RhdGUtPnBfcmVmX2hvb2tfc3RhdGUgPSBncHN0YXRlOworCUFzc2VydCghcHN0YXRl LT5wX2xhdGVyYWxfYWN0aXZlKTsKKwlwc3RhdGUtPnBfbGF0ZXJhbF9hY3RpdmUgPSB0cnVlOwor CisJZ3AgPSB0cmFuc2Zvcm1HcmFwaFBhdHRlcm4ocHN0YXRlLCBncHN0YXRlLCByZ3QtPmdyYXBo X3BhdHRlcm4pOworCisJZm9yZWFjaChsYywgcmd0LT5jb2x1bW5zKQorCXsKKwkJUmVzVGFyZ2V0 ICAqcnQgPSBsZmlyc3Rfbm9kZShSZXNUYXJnZXQsIGxjKTsKKwkJTm9kZQkgICAqY29sZXhwcjsK KwkJVGFyZ2V0RW50cnkgKnRlOworCQljaGFyCSAgICpjb2xuYW1lOworCisJCWNvbGV4cHIgPSB0 cmFuc2Zvcm1FeHByKHBzdGF0ZSwgcnQtPnZhbCwgRVhQUl9LSU5EX1NFTEVDVF9UQVJHRVQpOwor CisJCWlmIChydC0+bmFtZSkKKwkJCWNvbG5hbWUgPSBydC0+bmFtZTsKKwkJZWxzZQorCQl7CisJ CQlpZiAoSXNBKGNvbGV4cHIsIEdyYXBoUHJvcGVydHlSZWYpKQorCQkJCWNvbG5hbWUgPSBnZXRf cHJvcGdyYXBoX3Byb3BlcnR5X25hbWUoY2FzdE5vZGUoR3JhcGhQcm9wZXJ0eVJlZiwgY29sZXhw ciktPnByb3BpZCk7CisJCQllbHNlCisJCQl7CisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCWVy cmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJZXJybXNnKCJjb21wbGV4IGdyYXBo IHRhYmxlIGNvbHVtbiBtdXN0IHNwZWNpZnkgYW4gZXhwbGljaXQgY29sdW1uIG5hbWUiKSwKKwkJ CQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHJ0LT5sb2NhdGlvbikpOworCQkJCWNvbG5h bWUgPSBOVUxMOworCQkJfQorCQl9CisKKwkJY29sbmFtZXMgPSBsYXBwZW5kKGNvbG5hbWVzLCBt YWtlU3RyaW5nKGNvbG5hbWUpKTsKKworCQl0ZSA9IG1ha2VUYXJnZXRFbnRyeSgoRXhwciAqKSBj b2xleHByLCArK3Jlc25vLCBjb2xuYW1lLCBmYWxzZSk7CisJCWNvbHVtbnMgPSBsYXBwZW5kKGNv bHVtbnMsIHRlKTsKKwl9CisKKwl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CisKKwlwc3RhdGUt PnBfcHJlX2NvbHVtbnJlZl9ob29rID0gTlVMTDsKKwlwc3RhdGUtPnBfcmVmX2hvb2tfc3RhdGUg PSBOVUxMOworCXBzdGF0ZS0+cF9sYXRlcmFsX2FjdGl2ZSA9IGZhbHNlOworCisJcmV0dXJuIGFk ZFJhbmdlVGFibGVFbnRyeUZvckdyYXBoVGFibGUocHN0YXRlLCBncmFwaGlkLCBjYXN0Tm9kZShH cmFwaFBhdHRlcm4sIGdwKSwgY29sdW1ucywgY29sbmFtZXMsIHJndC0+YWxpYXMsIGZhbHNlLCB0 cnVlKTsKK30KKwogLyoKICAqIHRyYW5zZm9ybVJhbmdlVGFibGVTYW1wbGUgLS0tIHRyYW5zZm9y bSBhIFRBQkxFU0FNUExFIGNsYXVzZQogICoKQEAgLTExMjEsNiArMTE5OCwxOCBAQCB0cmFuc2Zv cm1Gcm9tQ2xhdXNlSXRlbShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKm4sCiAJCXJ0ci0+cnRp bmRleCA9IG5zaXRlbS0+cF9ydGluZGV4OwogCQlyZXR1cm4gKE5vZGUgKikgcnRyOwogCX0KKwll bHNlIGlmIChJc0EobiwgUmFuZ2VHcmFwaFRhYmxlKSkKKwl7CisJCVJhbmdlVGJsUmVmICpydHI7 CisJCVBhcnNlTmFtZXNwYWNlSXRlbSAqbnNpdGVtOworCisJCW5zaXRlbSA9IHRyYW5zZm9ybVJh bmdlR3JhcGhUYWJsZShwc3RhdGUsIChSYW5nZUdyYXBoVGFibGUgKikgbik7CisJCSp0b3BfbnNp dGVtID0gbnNpdGVtOworCQkqbmFtZXNwYWNlID0gbGlzdF9tYWtlMShuc2l0ZW0pOworCQlydHIg PSBtYWtlTm9kZShSYW5nZVRibFJlZik7CisJCXJ0ci0+cnRpbmRleCA9IG5zaXRlbS0+cF9ydGlu ZGV4OworCQlyZXR1cm4gKE5vZGUgKikgcnRyOworCX0KIAllbHNlIGlmIChJc0EobiwgUmFuZ2VU YWJsZVNhbXBsZSkpCiAJewogCQkvKiBUQUJMRVNBTVBMRSBjbGF1c2UgKHdyYXBwaW5nIHNvbWUg b3RoZXIgdmFsaWQgRlJPTSBub2RlKSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX2NvbGxhdGUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRlLmMKaW5k ZXggMjg3NDczMWMzNTIuLjEwMTAwMjAyYTlkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfY29sbGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRl LmMKQEAgLTU3MSw2ICs1NzEsMTMgQEAgYXNzaWduX2NvbGxhdGlvbnNfd2Fsa2VyKE5vZGUgKm5v ZGUsIGFzc2lnbl9jb2xsYXRpb25zX2NvbnRleHQgKmNvbnRleHQpCiAJCQlsb2NhdGlvbiA9IGV4 cHJMb2NhdGlvbihub2RlKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgVF9HcmFwaFByb3BlcnR5UmVm OgorCQkJLyogRklYTUUgKi8KKwkJCWNvbGxhdGlvbiA9IERFRkFVTFRfQ09MTEFUSU9OX09JRDsK KwkJCXN0cmVuZ3RoID0gQ09MTEFURV9JTVBMSUNJVDsKKwkJCWxvY2F0aW9uID0gLTE7CisJCQli cmVhazsKKwogCQlkZWZhdWx0OgogCQkJewogCQkJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpp bmRleCBjMjgwNjI5N2FhNC4uODQxNWQ2MzI0ODMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpA QCAtNTc1LDYgKzU3NSw3IEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJzZVN0YXRlICpwc3RhdGUs IENvbHVtblJlZiAqY3JlZikKIAkJY2FzZSBFWFBSX0tJTkRfQ09QWV9XSEVSRToKIAkJY2FzZSBF WFBSX0tJTkRfR0VORVJBVEVEX0NPTFVNTjoKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoK KwkJY2FzZSBFWFBSX0tJTkRfUFJPUEdSQVBIX1BST1BFUlRZOgogCQkJLyogb2theSAqLwogCQkJ YnJlYWs7CiAKQEAgLTE4NTgsNiArMTg1OSw5IEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJsaW5rKQogCQljYXNlIEVYUFJfS0lORF9HRU5FUkFURURf Q09MVU1OOgogCQkJZXJyID0gXygiY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBjb2x1bW4gZ2VuZXJh dGlvbiBleHByZXNzaW9uIik7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfUFJPUEdSQVBI X1BST1BFUlRZOgorCQkJZXJyID0gXygiY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBwcm9wZXJ0eSBk ZWZpbml0aW9uIGV4cHJlc3Npb24iKTsKKwkJCWJyZWFrOwogCiAJCQkvKgogCQkJICogVGhlcmUg aXMgaW50ZW50aW9uYWxseSBubyBkZWZhdWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhlCkBAIC0z MTk3LDYgKzMyMDEsOCBAQCBQYXJzZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5kIGV4cHJLaW5k KQogCQkJcmV0dXJuICJHRU5FUkFURUQgQVMiOwogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJL OgogCQkJcmV0dXJuICJDWUNMRSI7CisJCWNhc2UgRVhQUl9LSU5EX1BST1BHUkFQSF9QUk9QRVJU WToKKwkJCXJldHVybiAicHJvcGVydHkgZGVmaW5pdGlvbiBleHByZXNzaW9uIjsKIAogCQkJLyoK IAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0 aGF0IHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKaW5kZXggOWIyMzM0NGEzYjEuLjY0MDlkZGYx ODE2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCisrKyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKQEAgLTI2NTgsNiArMjY1OCw5IEBAIGNoZWNr X3NyZl9jYWxsX3BsYWNlbWVudChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmxhc3Rfc3JmLCBp bnQgbG9jYXRpb24pCiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJCQllcnJraW5kID0g dHJ1ZTsKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9QUk9QR1JBUEhfUFJPUEVSVFk6CisJ CQllcnIgPSBfKCJzZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gcHJv cGVydHkgZGVmaW5pdGlvbiBleHByZXNzaW9ucyIpOworCQkJYnJlYWs7CiAKIAkJCS8qCiAJCQkg KiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0 aGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ncmFwaHRhYmxlLmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi4xYTk3MTY4NzAyNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9ncmFwaHRhYmxlLmMKQEAgLTAsMCArMSwyMDkgQEAKKy8qLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICoKKyAqIHBhcnNlX2dyYXBodGFibGUuYworICoJICBwYXJzaW5nIG9m IEdSQVBIX1RBQkxFCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQsIFBv c3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQg KGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAq CisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZ3JhcGh0 YWJsZS5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2luY2x1ZGUgInBvc3RncmVz LmgiCisKKyNpbmNsdWRlICJhY2Nlc3MvZ2VuYW0uaCIKKyNpbmNsdWRlICJhY2Nlc3MvaHR1cF9k ZXRhaWxzLmgiCisjaW5jbHVkZSAiYWNjZXNzL3RhYmxlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9w Z19wcm9wZ3JhcGhfbGFiZWwuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9wcm9w ZXJ0eS5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5j cy5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9jb2xsYXRlLmgiCisjaW5jbHVkZSAicGFyc2Vy L3BhcnNlX2V4cHIuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5oIgorI2lu Y2x1ZGUgInBhcnNlci9wYXJzZV9ub2RlLmgiCisjaW5jbHVkZSAidXRpbHMvZm1ncm9pZHMuaCIK KyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9yZWxjYWNoZS5o IgorI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKKworLyoKKyAqIFJlc29sdmUgYSBwcm9w ZXJ0eSByZWZlcmVuY2UuCisgKi8KK05vZGUgKgorZ3JhcGhfdGFibGVfcHJvcGVydHlfcmVmZXJl bmNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmLCBOb2RlICp2YXIpCit7CisJ R3JhcGhUYWJsZVBhcnNlU3RhdGUgKmdwc3RhdGUgPSBwc3RhdGUtPnBfcmVmX2hvb2tfc3RhdGU7 CisKKwlpZiAobGlzdF9sZW5ndGgoY3JlZi0+ZmllbGRzKSA9PSAyKQorCXsKKwkJTm9kZQkgICAq ZmllbGQxID0gbGluaXRpYWwoY3JlZi0+ZmllbGRzKTsKKwkJTm9kZQkgICAqZmllbGQyID0gbHNl Y29uZChjcmVmLT5maWVsZHMpOworCQljaGFyCSAgICplbHZhcm5hbWU7CisJCWNoYXIJICAgKnBy b3BuYW1lOworCisJCWVsdmFybmFtZSA9IHN0clZhbChmaWVsZDEpOworCQlwcm9wbmFtZSA9IHN0 clZhbChmaWVsZDIpOworCisJCWlmIChsaXN0X21lbWJlcihncHN0YXRlLT52YXJpYWJsZXMsIGZp ZWxkMSkpCisJCXsKKwkJCUdyYXBoUHJvcGVydHlSZWYgKmdwciA9IG1ha2VOb2RlKEdyYXBoUHJv cGVydHlSZWYpOworCQkJT2lkCQkJcHJvcGlkOworCisJCQlwcm9waWQgPSBHZXRTeXNDYWNoZU9p ZDIoUFJPUEdSQVBIUFJPUE5BTUUsIEFudW1fcGdfcHJvcGdyYXBoX3Byb3BlcnR5X29pZCwgT2Jq ZWN0SWRHZXREYXR1bShncHN0YXRlLT5ncmFwaGlkKSwgQ1N0cmluZ0dldERhdHVtKHByb3BuYW1l KSk7CisJCQlpZiAoIXByb3BpZCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJZXJyY29kZShF UlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQllcnJtc2coInByb3BlcnR5IFwiJXNcIiBkb2Vz IG5vdCBleGlzdCIsIHByb3BuYW1lKSk7CisKKwkJCWdwci0+bG9jYXRpb24gPSBjcmVmLT5sb2Nh dGlvbjsKKwkJCWdwci0+ZWx2YXJuYW1lID0gZWx2YXJuYW1lOworCQkJZ3ByLT5wcm9waWQgPSBw cm9waWQ7CisJCQlncHItPnR5cGVJZCA9IEdldFN5c0NhY2hlT2lkMShQUk9QR1JBUEhQUk9QT0lE LCBBbnVtX3BnX3Byb3BncmFwaF9wcm9wZXJ0eV9wZ3B0eXBpZCwgT2JqZWN0SWRHZXREYXR1bShw cm9waWQpKTsKKworCQkJcmV0dXJuIChOb2RlICopIGdwcjsKKwkJfQorCX0KKworCXJldHVybiBO VUxMOworfQorCisvKgorICogVHJhbnNmb3JtIGEgbGFiZWwgZXhwcmVzc2lvbi4KKyAqLworc3Rh dGljIE5vZGUgKgordHJhbnNmb3JtTGFiZWxFeHByKEdyYXBoVGFibGVQYXJzZVN0YXRlICpncHN0 YXRlLCBOb2RlICpsYWJlbGV4cHIpCit7CisJTm9kZQkgICAqcmVzdWx0OworCisJaWYgKGxhYmVs ZXhwciA9PSBOVUxMKQorCQlyZXR1cm4gTlVMTDsKKworCWNoZWNrX3N0YWNrX2RlcHRoKCk7CisK Kwlzd2l0Y2ggKG5vZGVUYWcobGFiZWxleHByKSkKKwl7CisJCWNhc2UgVF9Db2x1bW5SZWY6CisJ CQl7CisJCQkJQ29sdW1uUmVmICAqY3JlZiA9IChDb2x1bW5SZWYgKikgbGFiZWxleHByOworCQkJ CWNvbnN0IGNoYXIgKmxhYmVsbmFtZTsKKwkJCQlPaWQJCQlsYWJlbGlkOworCQkJCUdyYXBoTGFi ZWxSZWYgKmxyZWY7CisKKwkJCQlBc3NlcnQobGlzdF9sZW5ndGgoY3JlZi0+ZmllbGRzKSA9PSAx KTsKKwkJCQlsYWJlbG5hbWUgPSBzdHJWYWwobGluaXRpYWwoY3JlZi0+ZmllbGRzKSk7CisKKwkJ CQlsYWJlbGlkID0gR2V0U3lzQ2FjaGVPaWQyKFBST1BHUkFQSExBQkVMTkFNRSwgQW51bV9wZ19w cm9wZ3JhcGhfbGFiZWxfb2lkLCBPYmplY3RJZEdldERhdHVtKGdwc3RhdGUtPmdyYXBoaWQpLCBD U3RyaW5nR2V0RGF0dW0obGFiZWxuYW1lKSk7CisJCQkJaWYgKCFsYWJlbGlkKQorCQkJCQllcmVw b3J0KEVSUk9SLAorCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJ CQkJCQllcnJtc2coImxhYmVsIFwiJXNcIiBkb2VzIG5vdCBleGlzdCBpbiBwcm9wZXJ0eSBncmFw aCBcIiVzXCIiLCBsYWJlbG5hbWUsIGdldF9yZWxfbmFtZShncHN0YXRlLT5ncmFwaGlkKSkpOwor CisJCQkJbHJlZiA9IG1ha2VOb2RlKEdyYXBoTGFiZWxSZWYpOworCQkJCWxyZWYtPmxhYmVsaWQg PSBsYWJlbGlkOworCQkJCWxyZWYtPmxvY2F0aW9uID0gY3JlZi0+bG9jYXRpb247CisKKwkJCQly ZXN1bHQgPSAoTm9kZSAqKSBscmVmOworCQkJCWJyZWFrOworCQkJfQorCisJCWNhc2UgVF9Cb29s RXhwcjoKKwkJCXsKKwkJCQlCb29sRXhwciAgICpiZSA9IChCb29sRXhwciAqKSBsYWJlbGV4cHI7 CisJCQkJTGlzdENlbGwgICAqbGM7CisJCQkJTGlzdAkgICAqYXJncyA9IE5JTDsKKworCQkJCWZv cmVhY2gobGMsIGJlLT5hcmdzKQorCQkJCXsKKwkJCQkJTm9kZQkgICAqYXJnID0gKE5vZGUgKikg bGZpcnN0KGxjKTsKKworCQkJCQlhcmcgPSB0cmFuc2Zvcm1MYWJlbEV4cHIoZ3BzdGF0ZSwgYXJn KTsKKwkJCQkJYXJncyA9IGxhcHBlbmQoYXJncywgYXJnKTsKKwkJCQl9CisKKwkJCQlyZXN1bHQg PSAoTm9kZSAqKSBtYWtlQm9vbEV4cHIoYmUtPmJvb2xvcCwgYXJncywgYmUtPmxvY2F0aW9uKTsK KwkJCQlicmVhazsKKwkJCX0KKworCQlkZWZhdWx0OgorCQkJLyogc2hvdWxkIG5vdCByZWFjaCBo ZXJlICovCisJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLCAoaW50 KSBub2RlVGFnKGxhYmVsZXhwcikpOworCQkJcmVzdWx0ID0gTlVMTDsJCS8qIGtlZXAgY29tcGls ZXIgcXVpZXQgKi8KKwkJCWJyZWFrOworCX0KKworCXJldHVybiByZXN1bHQ7Cit9CisKKy8qCisg KiBUcmFuc2Zvcm0gYSBHcmFwaEVsZW1lbnRQYXR0ZXJuLgorICovCitzdGF0aWMgTm9kZSAqCit0 cmFuc2Zvcm1HcmFwaEVsZW1lbnRQYXR0ZXJuKFBhcnNlU3RhdGUgKnBzdGF0ZSwgR3JhcGhUYWJs ZVBhcnNlU3RhdGUgKmdwc3RhdGUsIEdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCkKK3sKKwlpZiAo Z2VwLT52YXJpYWJsZSkKKwkJZ3BzdGF0ZS0+dmFyaWFibGVzID0gbGFwcGVuZChncHN0YXRlLT52 YXJpYWJsZXMsIG1ha2VTdHJpbmcocHN0cmR1cChnZXAtPnZhcmlhYmxlKSkpOworCisJZ2VwLT5s YWJlbGV4cHIgPSB0cmFuc2Zvcm1MYWJlbEV4cHIoZ3BzdGF0ZSwgZ2VwLT5sYWJlbGV4cHIpOwor CisJZ2VwLT53aGVyZUNsYXVzZSA9IHRyYW5zZm9ybUV4cHIocHN0YXRlLCBnZXAtPndoZXJlQ2xh dXNlLCBFWFBSX0tJTkRfV0hFUkUpOworCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0YXRlLCBn ZXAtPndoZXJlQ2xhdXNlKTsKKworCXJldHVybiAoTm9kZSAqKSBnZXA7Cit9CisKKy8qCisgKiBU cmFuc2Zvcm0gYSBwYXRoIHRlcm0gKGxpc3Qgb2YgR3JhcGhFbGVtZW50UGF0dGVybidzKS4KKyAq Lworc3RhdGljIE5vZGUgKgordHJhbnNmb3JtUGF0aFRlcm0oUGFyc2VTdGF0ZSAqcHN0YXRlLCBH cmFwaFRhYmxlUGFyc2VTdGF0ZSAqZ3BzdGF0ZSwgTGlzdCAqcGF0aF90ZXJtKQoreworCUxpc3QJ ICAgKnJlc3VsdCA9IE5JTDsKKwlMaXN0Q2VsbCAgICpsYzsKKworCWZvcmVhY2gobGMsIHBhdGhf dGVybSkKKwl7CisJCU5vZGUJICAgKm4gPSB0cmFuc2Zvcm1HcmFwaEVsZW1lbnRQYXR0ZXJuKHBz dGF0ZSwgZ3BzdGF0ZSwgbGZpcnN0X25vZGUoR3JhcGhFbGVtZW50UGF0dGVybiwgbGMpKTsKKwor CQlyZXN1bHQgPSBsYXBwZW5kKHJlc3VsdCwgbik7CisJfQorCisJcmV0dXJuIChOb2RlICopIHJl c3VsdDsKK30KKworLyoKKyAqIFRyYW5zZm9ybSBhIHBhdGggcGF0dGVybiBsaXN0IChsaXN0IG9m IHBhdGggdGVybXMpLgorICovCitzdGF0aWMgTm9kZSAqCit0cmFuc2Zvcm1QYXRoUGF0dGVybkxp c3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBHcmFwaFRhYmxlUGFyc2VTdGF0ZSAqZ3BzdGF0ZSwgTGlz dCAqcGF0aF9wYXR0ZXJuKQoreworCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKKwlMaXN0Q2VsbCAg ICpsYzsKKworCWZvcmVhY2gobGMsIHBhdGhfcGF0dGVybikKKwl7CisJCU5vZGUJICAgKm4gPSB0 cmFuc2Zvcm1QYXRoVGVybShwc3RhdGUsIGdwc3RhdGUsIGxmaXJzdChsYykpOworCisJCXJlc3Vs dCA9IGxhcHBlbmQocmVzdWx0LCBuKTsKKwl9CisKKwlyZXR1cm4gKE5vZGUgKikgcmVzdWx0Owor fQorCisvKgorICogVHJhbnNmb3JtIGEgR3JhcGhQYXR0ZXJuLgorICovCitOb2RlICoKK3RyYW5z Zm9ybUdyYXBoUGF0dGVybihQYXJzZVN0YXRlICpwc3RhdGUsIEdyYXBoVGFibGVQYXJzZVN0YXRl ICpncHN0YXRlLCBHcmFwaFBhdHRlcm4gKmdyYXBoX3BhdHRlcm4pCit7CisJZ3JhcGhfcGF0dGVy bi0+cGF0aF9wYXR0ZXJuX2xpc3QgPSAoTGlzdCAqKSB0cmFuc2Zvcm1QYXRoUGF0dGVybkxpc3Qo cHN0YXRlLCBncHN0YXRlLCBncmFwaF9wYXR0ZXJuLT5wYXRoX3BhdHRlcm5fbGlzdCk7CisJZ3Jh cGhfcGF0dGVybi0+d2hlcmVDbGF1c2UgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgZ3JhcGhfcGF0 dGVybi0+d2hlcmVDbGF1c2UsIEVYUFJfS0lORF9XSEVSRSk7CisJYXNzaWduX2V4cHJfY29sbGF0 aW9ucyhwc3RhdGUsIGdyYXBoX3BhdHRlcm4tPndoZXJlQ2xhdXNlKTsKKworCXJldHVybiAoTm9k ZSAqKSBncmFwaF9wYXR0ZXJuOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX3JlbGF0aW9uLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwppbmRl eCA4MDc1YjFiOGExYi4uODZmMjlhMWU1YzEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9yZWxhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlv bi5jCkBAIC0yMTI0LDYgKzIxMjQsOTggQEAgYWRkUmFuZ2VUYWJsZUVudHJ5Rm9yVGFibGVGdW5j KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJcnRlLT5jb2xjb2xsYXRpb25zKTsKIH0KIAor UGFyc2VOYW1lc3BhY2VJdGVtICoKK2FkZFJhbmdlVGFibGVFbnRyeUZvckdyYXBoVGFibGUoUGFy c2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJCQlPaWQgZ3JhcGhpZCwKKwkJCQkJCQkJR3JhcGhQYXR0 ZXJuICpncmFwaF9wYXR0ZXJuLAorCQkJCQkJCQlMaXN0ICpjb2x1bW5zLAorCQkJCQkJCQlMaXN0 ICpjb2xuYW1lcywKKwkJCQkJCQkJQWxpYXMgKmFsaWFzLAorCQkJCQkJCQlib29sIGxhdGVyYWws CisJCQkJCQkJCWJvb2wgaW5Gcm9tQ2wpCit7CisJUmFuZ2VUYmxFbnRyeSAqcnRlID0gbWFrZU5v ZGUoUmFuZ2VUYmxFbnRyeSk7CisJY2hhcgkgICAqcmVmbmFtZSA9IGFsaWFzID8gYWxpYXMtPmFs aWFzbmFtZSA6IHBzdHJkdXAoImdyYXBoX3RhYmxlIik7CisJQWxpYXMJICAgKmVyZWY7CisJaW50 CQkJbnVtYWxpYXNlczsKKwlpbnQJCQl2YXJhdHRubzsKKwlMaXN0Q2VsbCAgICpsYzsKKwlMaXN0 CSAgICpjb2x0eXBlcyA9IE5JTDsKKwlMaXN0CSAgICpjb2x0eXBtb2RzID0gTklMOworCUxpc3QJ ICAgKmNvbGNvbGxhdGlvbnMgPSBOSUw7CisJUlRFUGVybWlzc2lvbkluZm8gKnBlcm1pbmZvOwor CVBhcnNlTmFtZXNwYWNlSXRlbSAqbnNpdGVtOworCisJQXNzZXJ0KHBzdGF0ZSAhPSBOVUxMKTsK KworCXJ0ZS0+cnRla2luZCA9IFJURV9HUkFQSF9UQUJMRTsKKwlydGUtPnJlbGlkID0gZ3JhcGhp ZDsKKwlydGUtPnJlbGtpbmQgPSBSRUxLSU5EX1BST1BHUkFQSDsKKwlydGUtPmdyYXBoX3BhdHRl cm4gPSBncmFwaF9wYXR0ZXJuOworCXJ0ZS0+Z3JhcGhfdGFibGVfY29sdW1ucyA9IGNvbHVtbnM7 CisJcnRlLT5hbGlhcyA9IGFsaWFzOworCisJZXJlZiA9IGFsaWFzID8gY29weU9iamVjdChhbGlh cykgOiBtYWtlQWxpYXMocmVmbmFtZSwgTklMKTsKKworCWlmICghZXJlZi0+Y29sbmFtZXMpCisJ CWVyZWYtPmNvbG5hbWVzID0gY29sbmFtZXM7CisKKwludW1hbGlhc2VzID0gbGlzdF9sZW5ndGgo ZXJlZi0+Y29sbmFtZXMpOworCisJLyogZmlsbCBpbiBhbnkgdW5zcGVjaWZpZWQgYWxpYXMgY29s dW1ucyAqLworCXZhcmF0dG5vID0gMDsKKwlmb3JlYWNoKGxjLCBjb2xuYW1lcykKKwl7CisJCXZh cmF0dG5vKys7CisJCWlmICh2YXJhdHRubyA+IG51bWFsaWFzZXMpCisJCQllcmVmLT5jb2xuYW1l cyA9IGxhcHBlbmQoZXJlZi0+Y29sbmFtZXMsIGxmaXJzdChsYykpOworCX0KKwlpZiAodmFyYXR0 bm8gPCBudW1hbGlhc2VzKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVf SU5WQUxJRF9DT0xVTU5fUkVGRVJFTkNFKSwKKwkJCQkgZXJybXNnKCJHUkFQSF9UQUJMRSBcIiVz XCIgaGFzICVkIGNvbHVtbnMgYXZhaWxhYmxlIGJ1dCAlZCBjb2x1bW5zIHNwZWNpZmllZCIsCisJ CQkJCQlyZWZuYW1lLCB2YXJhdHRubywgbnVtYWxpYXNlcykpKTsKKworCXJ0ZS0+ZXJlZiA9IGVy ZWY7CisKKwlmb3JlYWNoKGxjLCBjb2x1bW5zKQorCXsKKwkJVGFyZ2V0RW50cnkgKnRlID0gbGZp cnN0X25vZGUoVGFyZ2V0RW50cnksIGxjKTsKKwkJTm9kZQkgICAqY29sZXhwciA9IChOb2RlICop IHRlLT5leHByOworCisJCWNvbHR5cGVzID0gbGFwcGVuZF9vaWQoY29sdHlwZXMsIGV4cHJUeXBl KGNvbGV4cHIpKTsKKwkJY29sdHlwbW9kcyA9IGxhcHBlbmRfaW50KGNvbHR5cG1vZHMsIGV4cHJU eXBtb2QoY29sZXhwcikpOworCQljb2xjb2xsYXRpb25zID0gbGFwcGVuZF9vaWQoY29sY29sbGF0 aW9ucywgZXhwckNvbGxhdGlvbihjb2xleHByKSk7CisJfQorCisJLyoKKwkgKiBTZXQgZmxhZ3Mg YW5kIGFjY2VzcyBwZXJtaXNzaW9ucy4KKwkgKi8KKwlydGUtPmxhdGVyYWwgPSBsYXRlcmFsOwor CXJ0ZS0+aW5Gcm9tQ2wgPSBpbkZyb21DbDsKKworCXBlcm1pbmZvID0gYWRkUlRFUGVybWlzc2lv bkluZm8oJnBzdGF0ZS0+cF9ydGVwZXJtaW5mb3MsIHJ0ZSk7CisJcGVybWluZm8tPnJlcXVpcmVk UGVybXMgPSBBQ0xfU0VMRUNUOworCisJLyoKKwkgKiBBZGQgY29tcGxldGVkIFJURSB0byBwc3Rh dGUncyByYW5nZSB0YWJsZSBsaXN0LCBzbyB0aGF0IHdlIGtub3cgaXRzCisJICogaW5kZXguICBC dXQgd2UgZG9uJ3QgYWRkIGl0IHRvIHRoZSBqb2luIGxpc3QgLS0tIGNhbGxlciBtdXN0IGRvIHRo YXQgaWYKKwkgKiBhcHByb3ByaWF0ZS4KKwkgKi8KKwlwc3RhdGUtPnBfcnRhYmxlID0gbGFwcGVu ZChwc3RhdGUtPnBfcnRhYmxlLCBydGUpOworCisJLyoKKwkgKiBCdWlsZCBhIFBhcnNlTmFtZXNw YWNlSXRlbSwgYnV0IGRvbid0IGFkZCBpdCB0byB0aGUgcHN0YXRlJ3MgbmFtZXNwYWNlCisJICog bGlzdCAtLS0gY2FsbGVyIG11c3QgZG8gdGhhdCBpZiBhcHByb3ByaWF0ZS4KKwkgKi8KKwluc2l0 ZW0gPSBidWlsZE5TSXRlbUZyb21MaXN0cyhydGUsIGxpc3RfbGVuZ3RoKHBzdGF0ZS0+cF9ydGFi bGUpLAorCQkJCQkJCQkgIGNvbHR5cGVzLCBjb2x0eXBtb2RzLCBjb2xjb2xsYXRpb25zKTsKKwor CW5zaXRlbS0+cF9wZXJtaW5mbyA9IHBlcm1pbmZvOworCisJcmV0dXJuIG5zaXRlbTsKK30KKwog LyoKICAqIEFkZCBhbiBlbnRyeSBmb3IgYSBWQUxVRVMgbGlzdCB0byB0aGUgcHN0YXRlJ3MgcmFu Z2UgdGFibGUgKHBfcnRhYmxlKS4KICAqIFRoZW4sIGNvbnN0cnVjdCBhbmQgcmV0dXJuIGEgUGFy c2VOYW1lc3BhY2VJdGVtIGZvciB0aGUgbmV3IFJURS4KQEAgLTMwMTMsNiArMzEwNSw3IEBAIGV4 cGFuZFJURShSYW5nZVRibEVudHJ5ICpydGUsIGludCBydGluZGV4LCBpbnQgc3VibGV2ZWxzX3Vw LAogCQljYXNlIFJURV9WQUxVRVM6CiAJCWNhc2UgUlRFX0NURToKIAkJY2FzZSBSVEVfTkFNRURU VVBMRVNUT1JFOgorCQljYXNlIFJURV9HUkFQSF9UQUJMRToKIAkJCXsKIAkJCQkvKiBUYWJsZWZ1 bmMsIFZhbHVlcywgQ1RFLCBvciBFTlIgUlRFICovCiAJCQkJTGlzdENlbGwgICAqYWxpYXNwX2l0 ZW0gPSBsaXN0X2hlYWQocnRlLT5lcmVmLT5jb2xuYW1lcyk7CkBAIC0zMzkyLDEwICszNDg1LDEx IEBAIGdldF9ydGVfYXR0cmlidXRlX2lzX2Ryb3BwZWQoUmFuZ2VUYmxFbnRyeSAqcnRlLCBBdHRy TnVtYmVyIGF0dG51bSkKIAkJY2FzZSBSVEVfVkFMVUVTOgogCQljYXNlIFJURV9DVEU6CiAJCWNh c2UgUlRFX0dST1VQOgorCQljYXNlIFJURV9HUkFQSF9UQUJMRToKIAogCQkJLyoKLQkJCSAqIFN1 YnNlbGVjdCwgVGFibGUgRnVuY3Rpb25zLCBWYWx1ZXMsIENURSwgR1JPVVAgUlRFcyBuZXZlciBo YXZlCi0JCQkgKiBkcm9wcGVkIGNvbHVtbnMKKwkJCSAqIFN1YnNlbGVjdCwgVGFibGUgRnVuY3Rp b25zLCBWYWx1ZXMsIENURSwgR1JPVVAgUlRFcywgUHJvcGVydHkKKwkJCSAqIGdyYXBoIHJlZmVy ZW5jZXMgbmV2ZXIgaGF2ZSBkcm9wcGVkIGNvbHVtbnMKIAkJCSAqLwogCQkJcmVzdWx0ID0gZmFs c2U7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJn ZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCA3NmJmODhjM2Nh Mi4uNjg1MjFlZmQ3YTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJn ZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTM2MCw2ICsz NjAsMTAgQEAgbWFya1RhcmdldExpc3RPcmlnaW4oUGFyc2VTdGF0ZSAqcHN0YXRlLCBUYXJnZXRF bnRyeSAqdGxlLAogCQkJdGxlLT5yZXNvcmlndGJsID0gcnRlLT5yZWxpZDsKIAkJCXRsZS0+cmVz b3JpZ2NvbCA9IGF0dG51bTsKIAkJCWJyZWFrOworCQljYXNlIFJURV9HUkFQSF9UQUJMRToKKwkJ CXRsZS0+cmVzb3JpZ3RibCA9IHJ0ZS0+cmVsaWQ7CisJCQl0bGUtPnJlc29yaWdjb2wgPSBJbnZh bGlkQXR0ck51bWJlcjsKKwkJCWJyZWFrOwogCQljYXNlIFJURV9TVUJRVUVSWToKIAkJCS8qIFN1 YnNlbGVjdC1pbi1GUk9NOiBjb3B5IHVwIGZyb20gdGhlIHN1YnNlbGVjdCAqLwogCQkJaWYgKGF0 dG51bSAhPSBJbnZhbGlkQXR0ck51bWJlcikKQEAgLTE1ODEsNiArMTU4NSw3IEBAIGV4cGFuZFJl Y29yZFZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgVmFyICp2YXIsIGludCBsZXZlbHN1cCkK IAkJY2FzZSBSVEVfUkVMQVRJT046CiAJCWNhc2UgUlRFX1ZBTFVFUzoKIAkJY2FzZSBSVEVfTkFN RURUVVBMRVNUT1JFOgorCQljYXNlIFJURV9HUkFQSF9UQUJMRToKIAkJY2FzZSBSVEVfUkVTVUxU OgogCiAJCQkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3NjYW4ubCBiL3NyYy9i YWNrZW5kL3BhcnNlci9zY2FuLmwKaW5kZXggYTE1MmNmZjQxMTcuLmExMGE5ZjU3N2YyIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvc2Nhbi5sCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9zY2FuLmwKQEAgLTM2Niw2ICszNjYsOCBAQCBsZXNzX2VxdWFscwkJIjw9IgogZ3JlYXRlcl9l cXVhbHMJIj49IgogbGVzc19ncmVhdGVyCSI8PiIKIG5vdF9lcXVhbHMJCSIhPSIKKy8qIE5vdGUg dGhlcmUgaXMgbm8gbmVlZCBmb3IgbGVmdF9hcnJvdywgc2luY2UgIjwtIiBpcyBub3QgYSBzaW5n bGUgb3BlcmF0b3IuICovCityaWdodF9hcnJvdwkJIi0+IgogCiAvKgogICogInNlbGYiIGlzIHRo ZSBzZXQgb2YgY2hhcnMgdGhhdCBzaG91bGQgYmUgcmV0dXJuZWQgYXMgc2luZ2xlLWNoYXJhY3Rl cgpAQCAtMzc3LDcgKzM3OSw3IEBAIG5vdF9lcXVhbHMJCSIhPSIKICAqIElmIHlvdSBjaGFuZ2Ug ZWl0aGVyIHNldCwgYWRqdXN0IHRoZSBjaGFyYWN0ZXIgbGlzdHMgYXBwZWFyaW5nIGluIHRoZQog ICogcnVsZSBmb3IgIm9wZXJhdG9yIiEKICAqLwotc2VsZgkJCVssKClcW1xdLjtcOlwrXC1cKlwv XCVcXlw8XD5cPV0KK3NlbGYJCQlbLCgpXFtcXS47XDpcfFwrXC1cKlwvXCVcXlw8XD5cPV0KIG9w X2NoYXJzCQlbXH5cIVxAXCNcXlwmXHxcYFw/XCtcLVwqXC9cJVw8XD5cPV0KIG9wZXJhdG9yCQl7 b3BfY2hhcnN9KwogCkBAIC04OTIsNiArODk0LDExIEBAIG90aGVyCQkJLgogCQkJCQlyZXR1cm4g Tk9UX0VRVUFMUzsKIAkJCQl9CiAKK3tyaWdodF9hcnJvd30JeworCQkJCQlTRVRfWVlMTE9DKCk7 CisJCQkJCXJldHVybiBSSUdIVF9BUlJPVzsKKwkJCQl9CisKIHtzZWxmfQkJCXsKIAkJCQkJU0VU X1lZTExPQygpOwogCQkJCQlyZXR1cm4geXl0ZXh0WzBdOwpAQCAtOTY5LDcgKzk3Niw3IEBAIG90 aGVyCQkJLgogCQkJCQkJICogdGhhdCB0aGUgInNlbGYiIHJ1bGUgd291bGQgaGF2ZS4KIAkJCQkJ CSAqLwogCQkJCQkJaWYgKG5jaGFycyA9PSAxICYmCi0JCQkJCQkJc3RyY2hyKCIsKClbXS47Oist Ki8lXjw+PSIsIHl5dGV4dFswXSkpCisJCQkJCQkJc3RyY2hyKCIsKClbXS47OnwrLSovJV48Pj0i LCB5eXRleHRbMF0pKQogCQkJCQkJCXJldHVybiB5eXRleHRbMF07CiAJCQkJCQkvKgogCQkJCQkJ ICogTGlrZXdpc2UsIGlmIHdoYXQgd2UgaGF2ZSBsZWZ0IGlzIHR3byBjaGFycywgYW5kCkBAIC05 ODksNiArOTk2LDggQEAgb3RoZXIJCQkuCiAJCQkJCQkJCXJldHVybiBOT1RfRVFVQUxTOwogCQkJ CQkJCWlmICh5eXRleHRbMF0gPT0gJyEnICYmIHl5dGV4dFsxXSA9PSAnPScpCiAJCQkJCQkJCXJl dHVybiBOT1RfRVFVQUxTOworCQkJCQkJCWlmICh5eXRleHRbMF0gPT0gJy0nICYmIHl5dGV4dFsx XSA9PSAnPicpCisJCQkJCQkJCXJldHVybiBSSUdIVF9BUlJPVzsKIAkJCQkJCX0KIAkJCQkJfQog CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXdyaXRlL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQv cmV3cml0ZS9NYWtlZmlsZQppbmRleCA0NjgwNzUyZTZhNy4uMDkwNzAwNDdiN2UgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3Jld3JpdGUvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvcmV3cml0 ZS9NYWtlZmlsZQpAQCAtMTQsNiArMTQsNyBAQCBpbmNsdWRlICQodG9wX2J1aWxkZGlyKS9zcmMv TWFrZWZpbGUuZ2xvYmFsCiAKIE9CSlMgPSBcCiAJcmV3cml0ZURlZmluZS5vIFwKKwlyZXdyaXRl R3JhcGhUYWJsZS5vIFwKIAlyZXdyaXRlSGFuZGxlci5vIFwKIAlyZXdyaXRlTWFuaXAubyBcCiAJ cmV3cml0ZVJlbW92ZS5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jld3JpdGUvbWVzb24u YnVpbGQgYi9zcmMvYmFja2VuZC9yZXdyaXRlL21lc29uLmJ1aWxkCmluZGV4IDIzMDQzY2E2ZTU2 Li4yYmVhMjAyMzNhNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9tZXNvbi5idWls ZAorKysgYi9zcmMvYmFja2VuZC9yZXdyaXRlL21lc29uLmJ1aWxkCkBAIC0yLDYgKzIsNyBAQAog CiBiYWNrZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiAgICdyZXdyaXRlRGVmaW5lLmMnLAorICAncmV3 cml0ZUdyYXBoVGFibGUuYycsCiAgICdyZXdyaXRlSGFuZGxlci5jJywKICAgJ3Jld3JpdGVNYW5p cC5jJywKICAgJ3Jld3JpdGVSZW1vdmUuYycsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXdy aXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFw aFRhYmxlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmVlMTE1OTRk MmNmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlR3JhcGhU YWJsZS5jCkBAIC0wLDAgKzEsMTA5OCBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcmV3 cml0ZUdyYXBoVGFibGUuYworICoJCVN1cHBvcnQgZm9yIHJld3JpdGluZyBHUkFQSF9UQUJMRSBj bGF1c2VzLgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3Jl U1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAx OTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBJREVO VElGSUNBVElPTgorICoJICBzcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMK KyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNp bmNsdWRlICJhY2Nlc3MvdGFibGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9l bGVtZW50LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbC5o IgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX2xhYmVsLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3Bn X3Byb3BncmFwaF9wcm9wZXJ0eS5oIgorI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgorI2lu Y2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgorI2luY2x1ZGUgInBhcnNlci9hbmFseXplLmgiCisj aW5jbHVkZSAicGFyc2VyL3BhcnNlX25vZGUuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfcmVs YXRpb24uaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2V0cmVlLmgiCisjaW5jbHVkZSAicGFyc2Vy L3BhcnNlX3JlbGF0aW9uLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2dyYXBodGFibGUuaCIK KyNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmgiCisjaW5jbHVkZSAicmV3cml0 ZS9yZXdyaXRlSGFuZGxlci5oIgorI2luY2x1ZGUgInJld3JpdGUvcmV3cml0ZU1hbmlwLmgiCisj aW5jbHVkZSAidXRpbHMvYXJyYXkuaCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2lu Y2x1ZGUgInV0aWxzL2ZtZ3JvaWRzLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisj aW5jbHVkZSAidXRpbHMvcnVsZXV0aWxzLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIK KworCisvKgorICogUmVwcmVzZW50cyBvbmUgcHJvcGVydHkgZ3JhcGggZWxlbWVudCAodmVydGV4 IG9yIGVkZ2UpIGluIHRoZSBwYXRoLgorICoKKyAqIExhYmVsIGV4cHJlc3Npb24gaW4gYW4gZWxl bWVudCBwYXR0ZXJuIHJlc29sdmVzIGludG8gYSBzZXQgb2YgZWxlbWVudHMuIEZvcgorICogZWFj aCBvZiB0aG9zZSBlbGVtZW50cyB3ZSBjcmVhdGUgb25lIGdyYXBoX3BhdGhfZWxlbWVudCBvYmpl Y3QuCisgKi8KK3N0cnVjdCBncmFwaF9wYXRoX2VsZW1lbnQKK3sKKwlPaWQJCQllbGVtb2lkOwor CU9pZAkJCXJlbG9pZDsKKwlpbnQJCQlydGluZGV4OworCUxpc3QJICAgKmxhYmVsb2lkczsKKwlP aWQJCQlzcmN2ZXJ0ZXhpZDsKKwlpbnQJCQlzcmNlbGVtX3BvczsKKwlPaWQJCQlkZXN0dmVydGV4 aWQ7CisJaW50CQkJZGVzdGVsZW1fcG9zOworCUxpc3QJICAgKnF1YWxfZXhwcnM7CisJR3JhcGhF bGVtZW50UGF0dGVybiAqcGFyZW50X2dlcDsKK307CisKK3N0YXRpYyBOb2RlICpyZXBsYWNlX3By b3BlcnR5X3JlZnMoT2lkIHByb3BncmFwaGlkLCBOb2RlICpub2RlLCBjb25zdCBMaXN0ICptYXBw aW5ncyk7CitzdGF0aWMgTGlzdCAqYnVpbGRfZWRnZV92ZXJ0ZXhfbGlua19xdWFscyhIZWFwVHVw bGUgZWRnZXR1cCwgaW50IGVkZ2VydGksIGludCByZWZydGksIEF0dHJOdW1iZXIgY2F0YWxvZ19r ZXlfYXR0bnVtLCBBdHRyTnVtYmVyIGNhdGFsb2dfcmVmX2F0dG51bSk7CitzdGF0aWMgTGlzdCAq Z2VuZXJhdGVfcXVlcmllc19mb3JfcGF0aF9wYXR0ZXJuKFJhbmdlVGJsRW50cnkgKnJ0ZSwgTGlz dCAqZWxlbWVudF9wYXR0ZXJucyk7CitzdGF0aWMgUXVlcnkgKmdlbmVyYXRlX3F1ZXJ5X2Zvcl9n cmFwaF9wYXRoKFJhbmdlVGJsRW50cnkgKnJ0ZSwgTGlzdCAqcGF0aCk7CitzdGF0aWMgTm9kZSAq Z2VuZXJhdGVfc2V0b3BfZnJvbV9wYXRocXVlcmllcyhMaXN0ICpwYXRocXVlcmllcywgTGlzdCAq KnJ0YWJsZSwgTGlzdCAqKnRhcmdldGxpc3QpOworc3RhdGljIExpc3QgKmdlbmVyYXRlX3F1ZXJp ZXNfZm9yX3BhdGhfcGF0dGVybl9yZWN1cnNlKFJhbmdlVGJsRW50cnkgKnJ0ZSwgTGlzdCAqcGF0 aHF1ZXJpZXMsIExpc3QgKmN1cl9wYXRoLCBMaXN0ICpwYXRoX3BhdHRlcm5fbGlzdHMsIGludCBl bGVtcG9zKTsKK3N0YXRpYyBRdWVyeSAqZ2VuZXJhdGVfcXVlcnlfZm9yX2VtcHR5X3BhdGhfcGF0 dGVybihSYW5nZVRibEVudHJ5ICpydGUpOworc3RhdGljIFF1ZXJ5ICpnZW5lcmF0ZV91bmlvbl9m cm9tX3BhdGhxdWVyaWVzKExpc3QgKipwYXRocXVlcmllcyk7CitzdGF0aWMgY29uc3QgY2hhciAq Z2V0X2dlcF9raW5kX25hbWUoR3JhcGhFbGVtZW50UGF0dGVybktpbmQgZ2Vwa2luZCk7CitzdGF0 aWMgTGlzdCAqZ2V0X2VsZW1lbnRzX2Zvcl9nZXAoT2lkIHByb3BncmFwaGlkLCBHcmFwaEVsZW1l bnRQYXR0ZXJuICpnZXAsIGludCBlbGVtcG9zKTsKK3N0YXRpYyBib29sIGlzX3Byb3BlcnR5X2Fz c29jaWF0ZWRfd2l0aF9sYWJlbChPaWQgbGFiZWxvaWQsIE9pZCBwcm9wb2lkKTsKK3N0YXRpYyBj b25zdCBjaGFyICpnZXRfZ3JhcGhfZWxlbV9raW5kX25hbWUoR3JhcGhFbGVtZW50UGF0dGVybktp bmQgZ2Vwa2luZCk7CitzdGF0aWMgTm9kZSAqZ2V0X2VsZW1lbnRfcHJvcGVydHlfZXhwcihPaWQg ZWxlbW9pZCwgT2lkIHByb3BvaWQsIGludCBydGluZGV4KTsKKworLyoKKyAqIENvbnZlcnQgR1JB UEhfVEFCTEUgY2xhdXNlIGludG8gYSBzdWJxdWVyeSB1c2luZyByZWxhdGlvbmFsCisgKiBvcGVy YXRvcnMuCisgKi8KK1F1ZXJ5ICoKK3Jld3JpdGVHcmFwaFRhYmxlKFF1ZXJ5ICpwYXJzZXRyZWUs IGludCBydF9pbmRleCkKK3sKKwlSYW5nZVRibEVudHJ5ICpydGU7CisJUXVlcnkJICAgKmdyYXBo X3RhYmxlX3F1ZXJ5OworCUxpc3QJICAgKnBhdGhfcGF0dGVybjsKKwlMaXN0CSAgICpwYXRocXVl cmllcyA9IE5JTDsKKworCXJ0ZSA9IHJ0X2ZldGNoKHJ0X2luZGV4LCBwYXJzZXRyZWUtPnJ0YWJs ZSk7CisKKwlpZiAobGlzdF9sZW5ndGgocnRlLT5ncmFwaF9wYXR0ZXJuLT5wYXRoX3BhdHRlcm5f bGlzdCkgIT0gMSkKKwkJZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIHBhdGggcGF0dGVybiBsaXN0 IGxlbmd0aCIpOworCisJcGF0aF9wYXR0ZXJuID0gbGluaXRpYWwocnRlLT5ncmFwaF9wYXR0ZXJu LT5wYXRoX3BhdHRlcm5fbGlzdCk7CisJcGF0aHF1ZXJpZXMgPSBnZW5lcmF0ZV9xdWVyaWVzX2Zv cl9wYXRoX3BhdHRlcm4ocnRlLCBwYXRoX3BhdHRlcm4pOworCWdyYXBoX3RhYmxlX3F1ZXJ5ID0g Z2VuZXJhdGVfdW5pb25fZnJvbV9wYXRocXVlcmllcygmcGF0aHF1ZXJpZXMpOworCisJQWNxdWly ZVJld3JpdGVMb2NrcyhncmFwaF90YWJsZV9xdWVyeSwgdHJ1ZSwgZmFsc2UpOworCisJcnRlLT5y dGVraW5kID0gUlRFX1NVQlFVRVJZOworCXJ0ZS0+c3VicXVlcnkgPSBncmFwaF90YWJsZV9xdWVy eTsKKwlydGUtPmxhdGVyYWwgPSB0cnVlOworCisJLyoKKwkgKiBSZXNldCBubyBsb25nZXIgYXBw bGljYWJsZSBmaWVsZHMsIHRvIGFwcGVhc2UKKwkgKiBXUklURV9SRUFEX1BBUlNFX1BMQU5fVFJF RVMuCisJICovCisJcnRlLT5ncmFwaF9wYXR0ZXJuID0gTlVMTDsKKwlydGUtPmdyYXBoX3RhYmxl X2NvbHVtbnMgPSBOSUw7CisKKyNpZiAwCisJZWxvZyhJTkZPLCAicmV3cml0dGVuOlxuJXMiLCBw Z19nZXRfcXVlcnlkZWYoY29weU9iamVjdChwYXJzZXRyZWUpLCBmYWxzZSkpOworI2VuZGlmCisK KwlyZXR1cm4gcGFyc2V0cmVlOworfQorCisvKgorICogR2VuZXJhdGUgcXVlcmllcyByZXByZXNl dGluZyB0aGUgZ2l2ZW4gcGF0aCBwYXR0ZXJuIGFwcGxpZWQgdG8gdGhlIGdpdmVuCisgKiBwcm9w ZXJ0eSBncmFwaC4KKyAqCisgKiBBIHBhdGggcGF0dGVybiBjb25zaXN0cyBvZiBvbmUgb3IgbW9y ZSBlbGVtZW50IHBhdHRlcm5zLiBFYWNoIG9mIHRoZSBlbGVtZW50CisgKiBwYXR0ZXJucyBtYXkg YmUgc2F0aXNmaWVkIGJ5IG11bHRpcGxlIGVsZW1lbnRzLiBBIHBhdGggc2F0aXNmeWluZyB0aGUg Z2l2ZW4KKyAqIHBhdGggcGF0dGVybiBjb25zaXN0cyBvZiBvbmUgZWxlbWVudCBmcm9tIGVhY2gg ZWxlbWVudCBwYXR0ZXJuLiBFYWNoIG9mIHRoZXNlCisgKiBwYXRocyBpcyBjb252ZXJ0ZWQgaW50 byBhIHF1ZXJ5IGNvbm5lY3RpbmcgYWxsIHRoZSBlbGVtZW50cyBpbiB0aGF0IHBhdGguCisgKiBU aGVyZSBjYW4gYmUgYXMgbWFueSBwYXRocyBhcyB0aGUgbnVtYmVyIG9mIGNvbWJpbmF0aW9ucyBv ZiB0aGUgZWxlbWVudHMuCisgKiBDb21wdXRlIGFsbCB0aGVzZSBwYXRocyBhbmQgY29udmVydCBl YWNoIG9mIHRoZW0gaW50byBhIHF1ZXJ5LiBTZXQgb2YgdGhlc2UKKyAqIHF1ZXJpZXMgaXMgcmV0 dXJuZWQuCisgKgorICogQXNzdW1pbmcgdGhhdCB0aGUgbnVtYmVyaW5nIHN0YXJ0cyBhdCAwLCBl dmVyeSBlbGVtZW50IHBhdHRlcm4gYXQgYW4gZXZlbgorICogbnVtYmVyZWQgcG9zaXRpb24gaW4g dGhlIHBhdGggaXMgYSB2ZXJ0ZXggcGF0dGVybi4gRXZlcnkgZWxlbWVudCBpbiBldmVuCisgKiBu dW1iZXJlZCBwb3NpdGlvbiBpcyBhbiBlZGdlIHBhdHRlcm4uIFRodXMgZXZlcnkgZXZlbiBudW1i ZXJlZCBlbGVtZW50IGlzIGEKKyAqIHZlcnRleCB0YWJsZSBhbmQgb2RkIG51bWJlcmVkIGVsZW1l bnQgaXMgYW4gZWRnZSB0YWJsZS4gQW4gZWRnZSBjb25uZWN0cyB0d28KKyAqIHZlcnRpY2VzIGlk ZW50aWZpZWQgYnkgdGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24ga2V5cyByZXNwZWN0aXZlbHku IFRoZQorICogY29ubmVjdGlvbnMgYmV0d2VlbiB2ZXJ0ZXggcm93cyBmcm9tIGRpZmZlcmVudCB2 ZXJ0ZXggdGFibGVzIGNhbiBiZSBjb21wdXRlZAorICogYnkgYXBwbHlpbmcgcmVsYXRpb25hbCBq b2luIGJldHdlZW4gZWRnZSB0YWJsZSBhbmQgdGhlIGFkamFjZW50IHZlcnRleCB0YWJsZXMKKyAq IHJlc3BlY3RpdmVseS4gSGVuY2UgYSBxdWVyeSByZXByZXNlbnRpbmcgYSBwYXRoIGNvbnNpc3Rz IG9mIEpPSU4gYmV0d2VlbgorICogYWRqYWNlbnQgdmVydGV4IGFuZCBlZGdlIHRhYmxlcy4KKyAq CisgKiBBIHBhdGggcGF0dGVybiBpbiBpdHNlbGYgaXMgYSBLLXBhcnRpdGUgZ3JhcGggd2hlcmUg SyA9IG51bWJlciBvZiBlbGVtZW50CisgKiBwYXR0ZXJucyBpbiB0aGUgcGF0aCBwYXR0ZXJuLiBU aGUgcG9zc2libGUgcGF0aHMgYXJlIGNvbXB1dGVkIGJ5IHBlcmZvcm1pbmcgYQorICogREZTIGlu IHRoaXMgZ3JhcGguIFRoZSBERlMgaXMgaW1wbGVtZW50ZWQgYXMgcmVjdXJzaW9uLiBBIHBhdGgg aXMgY29udmVydGVkCisgKiBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIHF1ZXJ5IGFzIHNvb24gYXMg dGhlIGxhc3QgdmVydGV4IHRhYmxlIGlzIHJlYWNoZWQuCisgKgorICogZ2VuZXJhdGVfcXVlcmll c19mb3JfcGF0aF9wYXR0ZXJuKCkgc3RhcnRzIHRoZSByZWN1cnNpb24gYnV0IGFjdHVhbCB3b3Jr IGlzCisgKiBkb25lIGJ5IGdlbmVyYXRlX3F1ZXJpZXNfZm9yX3BhdGhfcGF0dGVybl9yZWN1cnNl KCkuCisgKiBnZW5lcmF0ZV9xdWVyeV9mb3JfZ3JhcGhfcGF0aCgpIGNvbnN0cnVjdHMgYSBxdWVy eSBmb3IgYSBnaXZlbiBwYXRoLgorICoKKyAqIEEgcGF0aCBwYXR0ZXJuIG1heSByZXN1bHQgaW50 byBubyBwYXRoIGlmIGFueSBvZiB0aGUgZWxlbWVudCBwYXR0ZXJuIHlpZWxkcworICogbm8gZWxl bWVudHMgb3IgZWRnZSBwYXR0ZXJucyB5aWVsZCBubyBlZGdlcyBjb25uZWN0aW5nIGFkamFjZW50 IHZlcnRleAorICogcGF0dGVybnMuIEluIHN1Y2ggYSBjYXNlIGEgcXVlcnkgd2hpY2ggcmV0dXJu cyBubyByZXN1bHQgaXMgcmV0dXJuZWQKKyAqIChnZW5lcmF0ZV9xdWVyeV9mb3JfZW1wdHlfcGF0 aF9wYXR0ZXJuKCkpLgorICoKKyAqICdwYXRoX3BhdHRlcm4nIGlzIGdpdmVuIHBhdGggcGF0dGVy bgorICogJ3J0ZScgcmVmZXJlbmNlcyB0aGUgcHJvcGVydHkgZ3JhcGggaW4gdGhlIEdSQVBIX1RB QkxFIGNsYXVzZQorICovCitzdGF0aWMgTGlzdCAqCitnZW5lcmF0ZV9xdWVyaWVzX2Zvcl9wYXRo X3BhdHRlcm4oUmFuZ2VUYmxFbnRyeSAqcnRlLCBMaXN0ICpwYXRoX3BhdHRlcm4pCit7CisJTGlz dAkgICAqcGF0aHF1ZXJpZXMgPSBOSUw7CisJTGlzdAkgICAqcGF0aF9lbGVtX2xpc3RzID0gTklM OworCUxpc3RDZWxsICAgKmxjOworCWludAkJCWVsZW1wb3MgPSAwOworCisJQXNzZXJ0KGxpc3Rf bGVuZ3RoKHBhdGhfcGF0dGVybikgPiAwKTsKKworCS8qCisJICogRm9yIGV2ZXJ5IGVsZW1lbnQg cGF0dGVybiBpbiB0aGUgZ2l2ZW4gcGF0aCBwYXR0ZXJuIGNvbGxlY3QgYWxsIHRoZQorCSAqIGdy YXBoIGVsZW1lbnRzIHRoYXQgc2F0aXNmeSB0aGUgZWxlbWVudCBwYXR0ZXJuLgorCSAqLworCWZv cmVhY2gobGMsIHBhdGhfcGF0dGVybikKKwl7CisJCUdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCA9 IGxmaXJzdF9ub2RlKEdyYXBoRWxlbWVudFBhdHRlcm4sIGxjKTsKKworCQlpZiAoZ2VwLT5raW5k ICE9IFZFUlRFWF9QQVRURVJOICYmCisJCQlnZXAtPmtpbmQgIT0gRURHRV9QQVRURVJOX0xFRlQg JiYgZ2VwLT5raW5kICE9IEVER0VfUEFUVEVSTl9SSUdIVCkKKwkJCWVsb2coRVJST1IsICJ1bnN1 cHBvcnRlZCBlbGVtZW50IHBhdHRlcm4ga2luZDogJXMiLCBnZXRfZ2VwX2tpbmRfbmFtZShnZXAt PmtpbmQpKTsKKworCQlpZiAoZ2VwLT5xdWFudGlmaWVyKQorCQkJZWxvZyhFUlJPUiwgImVsZW1l bnQgcGF0dGVybiBxdWFudGlmaWVyIG5vdCBzdXBwb3J0ZWQgeWV0Iik7CisKKwkJcGF0aF9lbGVt X2xpc3RzID0gbGFwcGVuZChwYXRoX2VsZW1fbGlzdHMsCisJCQkJCQkJCSAgZ2V0X2VsZW1lbnRz X2Zvcl9nZXAocnRlLT5yZWxpZCwgZ2VwLCBlbGVtcG9zKyspKTsKKwl9CisKKwlwYXRocXVlcmll cyA9IGdlbmVyYXRlX3F1ZXJpZXNfZm9yX3BhdGhfcGF0dGVybl9yZWN1cnNlKHJ0ZSwgcGF0aHF1 ZXJpZXMsCisJCQkJCQkJCQkJCQkJCQlOSUwsIHBhdGhfZWxlbV9saXN0cywgMCk7CisKKwlpZiAo IXBhdGhxdWVyaWVzKQorCQlwYXRocXVlcmllcyA9IGxpc3RfbWFrZTEoZ2VuZXJhdGVfcXVlcnlf Zm9yX2VtcHR5X3BhdGhfcGF0dGVybihydGUpKTsKKworCXJldHVybiBwYXRocXVlcmllczsKK30K KworLyoKKyAqIFJlY3Vyc2l2ZSB3b3JraG9yc2UgZnVuY3Rpb24gb2YgZ2VuZXJhdGVfcXVlcmll c19mb3JfcGF0aF9wYXR0ZXJuKCkuCisgKi8KK3N0YXRpYyBMaXN0ICoKK2dlbmVyYXRlX3F1ZXJp ZXNfZm9yX3BhdGhfcGF0dGVybl9yZWN1cnNlKFJhbmdlVGJsRW50cnkgKnJ0ZSwgTGlzdCAqcGF0 aHF1ZXJpZXMsIExpc3QgKmN1cl9wYXRoLCBMaXN0ICpwYXRoX2VsZW1fbGlzdHMsIGludCBlbGVt cG9zKQoreworCUxpc3QJICAgKmdlcF9lbGVtcyA9IGxpc3RfbnRoX25vZGUoTGlzdCwgcGF0aF9l bGVtX2xpc3RzLCBlbGVtcG9zKTsKKwlMaXN0Q2VsbCAgICpsYzsKKworCWZvcmVhY2gobGMsIGdl cF9lbGVtcykKKwl7CisJCXN0cnVjdCBncmFwaF9wYXRoX2VsZW1lbnQgKmVsZW0gPSBsZmlyc3Qo bGMpOworCisJCS8qIFVwZGF0ZSBjdXJyZW50IHBhdGggYmVpbmcgYnVpbHQgd2l0aCBjdXJyZW50 IGVsZW1lbnQuICovCisJCWN1cl9wYXRoID0gbGFwcGVuZChjdXJfcGF0aCwgZWxlbSk7CisKKwkJ LyoKKwkJICogSWYgdGhpcyBpcyB0aGUgbGFzdCBlbGVtZW50IGluIHRoZSBwYXRoLCBnZW5lcmF0 ZSBxdWVyeSBmb3IgdGhlCisJCSAqIGNvbXBsZXRlZCBwYXRoLiBFbHNlIHJlY3Vyc2UgcHJvY2Vz c2luZyB0aGUgbmV4dCBlbGVtZW50LgorCQkgKi8KKwkJaWYgKGxpc3RfbGVuZ3RoKHBhdGhfZWxl bV9saXN0cykgPT0gbGlzdF9sZW5ndGgoY3VyX3BhdGgpKQorCQl7CisJCQlRdWVyeQkgICAqcGF0 aHF1ZXJ5ID0gZ2VuZXJhdGVfcXVlcnlfZm9yX2dyYXBoX3BhdGgocnRlLCBjdXJfcGF0aCk7CisK KwkJCUFzc2VydChlbGVtcG9zID09IGxpc3RfbGVuZ3RoKHBhdGhfZWxlbV9saXN0cykgLSAxKTsK KwkJCWlmIChwYXRocXVlcnkpCisJCQkJcGF0aHF1ZXJpZXMgPSBsYXBwZW5kKHBhdGhxdWVyaWVz LCBwYXRocXVlcnkpOworCQl9CisJCWVsc2UKKwkJCXBhdGhxdWVyaWVzID0gZ2VuZXJhdGVfcXVl cmllc19mb3JfcGF0aF9wYXR0ZXJuX3JlY3Vyc2UocnRlLCBwYXRocXVlcmllcywKKwkJCQkJCQkJ CQkJCQkJCQkJY3VyX3BhdGgsCisJCQkJCQkJCQkJCQkJCQkJCXBhdGhfZWxlbV9saXN0cywKKwkJ CQkJCQkJCQkJCQkJCQkJZWxlbXBvcyArIDEpOworCQkvKiBNYWtlIHdheSBmb3IgdGhlIG5leHQg ZWxlbWVudCBhdCB0aGUgc2FtZSBwb3NpdGlvbi4gKi8KKwkJY3VyX3BhdGggPSBsaXN0X2RlbGV0 ZV9sYXN0KGN1cl9wYXRoKTsKKwl9CisKKwlyZXR1cm4gcGF0aHF1ZXJpZXM7Cit9CisKKy8qCisg KiBDb25zdHJ1Y3QgYSBxdWVyeSByZXByZXNlbnRpbmcgZ2l2ZW4gZ3JhcGggcGF0aC4KKyAqCisg KiBNb3JlIGRldGFpbHMgaW4gdGhlIHByb2xvZ3VlIG9mIGdlbmVyYXRlX3F1ZXJpZXNfZm9yX3Bh dGhfcGF0dGVybigpLgorICovCitzdGF0aWMgUXVlcnkgKgorZ2VuZXJhdGVfcXVlcnlfZm9yX2dy YXBoX3BhdGgoUmFuZ2VUYmxFbnRyeSAqcnRlLCBMaXN0ICpncmFwaF9wYXRoKQoreworCUxpc3RD ZWxsICAgKmxjOworCVF1ZXJ5CSAgICpwYXRoX3F1ZXJ5ID0gbWFrZU5vZGUoUXVlcnkpOworCUxp c3QJICAgKmZyb21saXN0ID0gTklMOworCUxpc3QJICAgKnF1YWxfZXhwcnMgPSBOSUw7CisKKwlw YXRoX3F1ZXJ5LT5jb21tYW5kVHlwZSA9IENNRF9TRUxFQ1Q7CisKKwlmb3JlYWNoKGxjLCBncmFw aF9wYXRoKQorCXsKKwkJc3RydWN0IGdyYXBoX3BhdGhfZWxlbWVudCAqZ3BlID0gKHN0cnVjdCBn cmFwaF9wYXRoX2VsZW1lbnQgKikgbGZpcnN0KGxjKTsKKwkJR3JhcGhFbGVtZW50UGF0dGVybiAq Z2VwID0gZ3BlLT5wYXJlbnRfZ2VwOworCQlSYW5nZVRibFJlZiAqcnRyOworCQlSZWxhdGlvbgly ZWw7CisJCVBhcnNlTmFtZXNwYWNlSXRlbSAqcG5pOworCisJCUFzc2VydChnZXAtPmtpbmQgPT0g VkVSVEVYX1BBVFRFUk4gfHwKKwkJCSAgIGdlcC0+a2luZCA9PSBFREdFX1BBVFRFUk5fTEVGVCB8 fCBnZXAtPmtpbmQgPT0gRURHRV9QQVRURVJOX1JJR0hUKTsKKwkJQXNzZXJ0KCFnZXAtPnF1YW50 aWZpZXIpOworCisJCWlmIChnZXAtPmtpbmQgPT0gRURHRV9QQVRURVJOX0xFRlQgfHwgZ2VwLT5r aW5kID09IEVER0VfUEFUVEVSTl9SSUdIVCkKKwkJeworCQkJc3RydWN0IGdyYXBoX3BhdGhfZWxl bWVudCAqc3JjX2dwZSA9IGxpc3RfbnRoKGdyYXBoX3BhdGgsIGdwZS0+c3JjZWxlbV9wb3MpOwor CQkJc3RydWN0IGdyYXBoX3BhdGhfZWxlbWVudCAqZGVzdF9ncGUgPSBsaXN0X250aChncmFwaF9w YXRoLCBncGUtPmRlc3RlbGVtX3Bvcyk7CisKKwkJCS8qCisJCQkgKiBNYWtlIHN1cmUgdGhhdCB0 aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBlbGVtZW50cyBvZiB0aGlzIGVkZ2UKKwkJCSAqIGFy ZSBwbGFjZWQgYXQgdGhlIGV4cGVjdGVkIHBvc2l0aW9uIGFuZCBoYXZlIHRoZSBjb3JyZXQKKwkJ CSAqIFJhbmdlVGJsRW50cnkgaW5kZXhlcyBhcyBzZXR1cCBieSBjcmVhdGVfZ3BlX2Zvcl9lbGVt ZW50KCkuCisJCQkgKi8KKwkJCUFzc2VydChncGUtPnNyY2VsZW1fcG9zID09IHNyY19ncGUtPnJ0 aW5kZXggLSAxICYmCisJCQkJICAgZ3BlLT5kZXN0ZWxlbV9wb3MgPT0gZGVzdF9ncGUtPnJ0aW5k ZXggLSAxKTsKKworCQkJLyoKKwkJCSAqIElmIHRoZSBnaXZlbiBlZGdlIGVsZW1lbnQgZG9lcyBu b3QgY29ubmVjdCB0aGUgYWRqYWNlbnQgdmVydGV4CisJCQkgKiBlbGVtZW50cyBpbiB0aGlzIHBh dGgsIHRoZSBwYXRoIGlzIGJyb2tlbi4gQWJhbmRvbiB0aGlzIHBhdGggYXMKKwkJCSAqIGl0IHdv bid0IHJldHVybiBhbnkgcm93cy4KKwkJCSAqLworCQkJaWYgKHNyY19ncGUtPmVsZW1vaWQgIT0g Z3BlLT5zcmN2ZXJ0ZXhpZCB8fAorCQkJCWRlc3RfZ3BlLT5lbGVtb2lkICE9IGdwZS0+ZGVzdHZl cnRleGlkKQorCQkJCXJldHVybiBOVUxMOworCQl9CisKKwkJLyogQ3JlYXRlIFJhbmdlVGJsRW50 cnkgZm9yIHRoaXMgZWxlbWVudCB0YWJsZS4gKi8KKwkJcmVsID0gdGFibGVfb3BlbihncGUtPnJl bG9pZCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJcG5pID0gYWRkUmFuZ2VUYWJsZUVudHJ5Rm9yUmVs YXRpb24obWFrZV9wYXJzZXN0YXRlKE5VTEwpLCByZWwsIEFjY2Vzc1NoYXJlTG9jaywKKwkJCQkJ CQkJCQkJTlVMTCwgdHJ1ZSwgZmFsc2UpOworCQl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CisJ CXBhdGhfcXVlcnktPnJ0YWJsZSA9IGxhcHBlbmQocGF0aF9xdWVyeS0+cnRhYmxlLCBwbmktPnBf cnRlKTsKKwkJcGF0aF9xdWVyeS0+cnRlcGVybWluZm9zID0gbGFwcGVuZChwYXRoX3F1ZXJ5LT5y dGVwZXJtaW5mb3MsIHBuaS0+cF9wZXJtaW5mbyk7CisJCXBuaS0+cF9ydGUtPnBlcm1pbmZvaW5k ZXggPSBsaXN0X2xlbmd0aChwYXRoX3F1ZXJ5LT5ydGVwZXJtaW5mb3MpOworCQlydHIgPSBtYWtl Tm9kZShSYW5nZVRibFJlZik7CisJCXJ0ci0+cnRpbmRleCA9IGxpc3RfbGVuZ3RoKHBhdGhfcXVl cnktPnJ0YWJsZSk7CisJCWZyb21saXN0ID0gbGFwcGVuZChmcm9tbGlzdCwgcnRyKTsKKworCQkv KgorCQkgKiBNYWtlIHN1cmUgdGhhdCB0aGUgYXNzdW1wdGlvbiBtZW50aW9uZWQgaW4gY3JlYXRl X2dwZV9mb3JfZWxlbWVudCgpCisJCSAqIGhvbGRzIHRydWUuIFRoYXQgdGhlIGVsZW1lbnRzJyBS YW5nZVRibEVudHJ5cyBhcmUgYWRkZWQgaW4gdGhlCisJCSAqIG9yZGVyIGluIHdoaWNoIHRoZXkg YXBwZWFyIGluIHRoZSBwYXRoLgorCQkgKi8KKwkJQXNzZXJ0KGdwZS0+cnRpbmRleCA9PSBydHIt PnJ0aW5kZXgpOworCisJCWlmIChnZXAtPndoZXJlQ2xhdXNlKQorCQl7CisJCQlOb2RlCSAgICp0 cjsKKworCQkJdHIgPSByZXBsYWNlX3Byb3BlcnR5X3JlZnMocnRlLT5yZWxpZCwgZ2VwLT53aGVy ZUNsYXVzZSwgbGlzdF9tYWtlMShncGUpKTsKKworCQkJcXVhbF9leHBycyA9IGxhcHBlbmQocXVh bF9leHBycywgdHIpOworCQl9CisJCXF1YWxfZXhwcnMgPSBsaXN0X2NvbmNhdChxdWFsX2V4cHJz LCBncGUtPnF1YWxfZXhwcnMpOworCX0KKworCXBhdGhfcXVlcnktPmpvaW50cmVlID0gbWFrZUZy b21FeHByKGZyb21saXN0LAorCQkJCQkJCQkJCShOb2RlICopIG1ha2VCb29sRXhwcihBTkRfRVhQ UiwgcXVhbF9leHBycywgLTEpKTsKKworCS8qIEVhY2ggcGF0aCBxdWVyeSBwcm9qZWN0cyB0aGUg Y29sdW1ucyBzcGVjaWZpZWQgaW4gdGhlIEdSQUhfVEFCTEUgY2xhdXNlICovCisJcGF0aF9xdWVy eS0+dGFyZ2V0TGlzdCA9IGNhc3ROb2RlKExpc3QsCisJCQkJCQkJCQkgIHJlcGxhY2VfcHJvcGVy dHlfcmVmcyhydGUtPnJlbGlkLAorCQkJCQkJCQkJCQkJCQkJKE5vZGUgKikgcnRlLT5ncmFwaF90 YWJsZV9jb2x1bW5zLAorCQkJCQkJCQkJCQkJCQkJZ3JhcGhfcGF0aCkpOworCXJldHVybiBwYXRo X3F1ZXJ5OworfQorCisvKgorICogQ29uc3RydWN0IGEgcXVlcnkgd2hpY2ggd291bGQgbm90IHJl dHVybiBhbnkgcm93cy4KKyAqCisgKiBNb3JlIGRldGFpbHMgaW4gdGhlIHByb2xvZ3VlIG9mIGdl bmVyYXRlX3F1ZXJpZXNfZm9yX3BhdGhfcGF0dGVybigpLgorICovCitzdGF0aWMgUXVlcnkgKgor Z2VuZXJhdGVfcXVlcnlfZm9yX2VtcHR5X3BhdGhfcGF0dGVybihSYW5nZVRibEVudHJ5ICpydGUp Cit7CisJUXVlcnkJICAgKnF1ZXJ5ID0gbWFrZU5vZGUoUXVlcnkpOworCUxpc3RDZWxsICAgKmxj OworCisJcXVlcnktPmNvbW1hbmRUeXBlID0gQ01EX1NFTEVDVDsKKworCisJcXVlcnktPnJ0YWJs ZSA9IE5JTDsKKwlxdWVyeS0+cnRlcGVybWluZm9zID0gTklMOworCisKKwlxdWVyeS0+am9pbnRy ZWUgPSBtYWtlRnJvbUV4cHIoTklMLCAoTm9kZSAqKSBtYWtlQm9vbENvbnN0KGZhbHNlLCBmYWxz ZSkpOworCisJLyoKKwkgKiBFdmVuIHRob3VnaCBubyByb3dzIGFyZSByZXR1cm5lZCwgdGhlIHJl c3VsdCBzdGlsbCBwcm9qZWN0cyB0aGUgc2FtZQorCSAqIGNvbHVtbnMgYXMgcHJvamVjdGVkIGJ5 IEdSQVBIX1RBQkxFIGNsYXVzZS4gRG8gdGhpcyBieSBjb25zdHJ1Y3RpbmcgYQorCSAqIHRhcmdl dCBsaXN0IGZ1bGwgb2YgTlVMTCB2YWx1ZXMuCisJICovCisJZm9yZWFjaChsYywgcnRlLT5ncmFw aF90YWJsZV9jb2x1bW5zKQorCXsKKwkJVGFyZ2V0RW50cnkgKnRlID0gY29weU9iamVjdChsZmly c3Rfbm9kZShUYXJnZXRFbnRyeSwgbGMpKTsKKwkJTm9kZQkgICAqbnRlID0gKE5vZGUgKikgdGUt PmV4cHI7CisKKwkJdGUtPmV4cHIgPSAoRXhwciAqKSBtYWtlTnVsbENvbnN0KGV4cHJUeXBlKG50 ZSksIGV4cHJUeXBtb2QobnRlKSwgZXhwckNvbGxhdGlvbihudGUpKTsKKwkJcXVlcnktPnRhcmdl dExpc3QgPSBsYXBwZW5kKHF1ZXJ5LT50YXJnZXRMaXN0LCB0ZSk7CisJfQorCisJcmV0dXJuIHF1 ZXJ5OworfQorCisvKgorICogQ29uc3RydWN0IGEgcXVlcnkgd2hpY2ggaXMgVU5JT04gb2YgZ2l2 ZW4gcGF0aCBxdWVyaWVzLgorICoKKyAqIFRoZSBmdW5jdGlvbiBkZXN0cm95cyBnaXZlbiBwYXRo cXVlcmllcyBsaXN0IHdoaWxlIGNvbnN0cnVjdGluZworICogU2V0T3BlcmF0aW9uU3RtdCByZWNy dXJzaXZlbHkuIEhlbmNlIHRoZSBmdW5jdGlvbiBhbHdheXMgcmV0dXJucyB3aXRoCisgKiBgcGF0 aHF1ZXJpZXNgIHNldCB0byBOSUwuCisgKi8KK3N0YXRpYyBRdWVyeSAqCitnZW5lcmF0ZV91bmlv bl9mcm9tX3BhdGhxdWVyaWVzKExpc3QgKipwYXRocXVlcmllcykKK3sKKwlMaXN0CSAgICpydGFi bGUgPSBOSUw7CisJUXVlcnkJICAgKnNhbXBsZVF1ZXJ5ID0gbGluaXRpYWxfbm9kZShRdWVyeSwg KnBhdGhxdWVyaWVzKTsKKwlTZXRPcGVyYXRpb25TdG10ICpzb3N0bXQ7CisJUXVlcnkJICAgKnVu aW9uX3F1ZXJ5OworCWludAkJCXJlc25vOworCUxpc3RDZWxsICAgKmxjdGwsCisJCQkgICAqbGN0 LAorCQkJICAgKmxjbSwKKwkJCSAgICpsY2M7CisKKwlBc3NlcnQobGlzdF9sZW5ndGgoKnBhdGhx dWVyaWVzKSA+IDApOworCisJLyogSWYgdGhlcmUncyBvbmx5IG9uZSBwYXRocXVlcnksIG5vIG5l ZWQgdG8gY29uc3RydWN0IGEgVU5JT04gcXVlcnkuICovCisJaWYgKGxpc3RfbGVuZ3RoKCpwYXRo cXVlcmllcykgPT0gMSkKKwl7CisJCSpwYXRocXVlcmllcyA9IE5JTDsKKwkJcmV0dXJuIHNhbXBs ZVF1ZXJ5OworCX0KKworCXNvc3RtdCA9IGNhc3ROb2RlKFNldE9wZXJhdGlvblN0bXQsCisJCQkJ CSAgZ2VuZXJhdGVfc2V0b3BfZnJvbV9wYXRocXVlcmllcygqcGF0aHF1ZXJpZXMsICZydGFibGUs IE5VTEwpKTsKKworCS8qIEVuY2Fwc3VsYXRlIHRoZSBzZXQgb3BlcmF0aW9uIHN0YXRlbWVudCBp bnRvIGEgUXVlcnkuICovCisJdW5pb25fcXVlcnkgPSBtYWtlTm9kZShRdWVyeSk7CisJdW5pb25f cXVlcnktPmNvbW1hbmRUeXBlID0gQ01EX1NFTEVDVDsKKwl1bmlvbl9xdWVyeS0+cnRhYmxlID0g cnRhYmxlOworCXVuaW9uX3F1ZXJ5LT5zZXRPcGVyYXRpb25zID0gKE5vZGUgKikgc29zdG10Owor CXVuaW9uX3F1ZXJ5LT5ydGVwZXJtaW5mb3MgPSBOSUw7CisJdW5pb25fcXVlcnktPmpvaW50cmVl ID0gbWFrZUZyb21FeHByKE5JTCwgTlVMTCk7CisKKwkvKgorCSAqIEdlbmVyYXRlIGR1bW15IHRh cmdldGxpc3QgZm9yIG91dGVyIHF1ZXJ5IHVzaW5nIGNvbHVtbiBuYW1lcyBmcm9tIG9uZQorCSAq IG9mIHRoZSBxdWVyaWVzIGFuZCBjb21tb24gZGF0YXR5cGVzL2NvbGxhdGlvbnMgb2YgdG9wbW9z dCBzZXQKKwkgKiBvcGVyYXRpb24uICBJdCBzaG91bGRuJ3QgbWF0dGVyIHdoaWNoIHF1ZXJ5LiBB bHNvIGl0IHNob3VsZG4ndCBtYXR0ZXIKKwkgKiB3aGljaCBSVCBpbmRleCBpcyB1c2VkIGFzIHZh cm5vIGluIHRoZSB0YXJnZXQgbGlzdCBlbnRyaWVzLCBhcyBsb25nIGFzCisJICogaXQgY29ycmVz cG9uZHMgdG8gYSByZWFsIFJUIGVudHJ5OyBlbHNlIGZ1bm55IHRoaW5ncyBtYXkgaGFwcGVuIHdo ZW4KKwkgKiB0aGUgdHJlZSBpcyBtYXNoZWQgYnkgcnVsZSByZXdyaXRpbmcuIFNvIHdlIHVzZSAx IHNpbmNlIHRoZXJlJ3MgYWx3YXlzCisJICogb25lIFJUIGVudHJ5IGF0IGxlYXN0LgorCSAqLwor CUFzc2VydChydF9mZXRjaCgxLCBydGFibGUpKTsKKwl1bmlvbl9xdWVyeS0+dGFyZ2V0TGlzdCA9 IE5VTEw7CisJcmVzbm8gPSAxOworCWZvcmZvdXIobGN0LCBzb3N0bXQtPmNvbFR5cGVzLAorCQkJ bGNtLCBzb3N0bXQtPmNvbFR5cG1vZHMsCisJCQlsY2MsIHNvc3RtdC0+Y29sQ29sbGF0aW9ucywK KwkJCWxjdGwsIHNhbXBsZVF1ZXJ5LT50YXJnZXRMaXN0KQorCXsKKwkJT2lkCQkJY29sVHlwZSA9 IGxmaXJzdF9vaWQobGN0KTsKKwkJaW50MzIJCWNvbFR5cG1vZCA9IGxmaXJzdF9pbnQobGNtKTsK KwkJT2lkCQkJY29sQ29sbGF0aW9uID0gbGZpcnN0X29pZChsY2MpOworCQlUYXJnZXRFbnRyeSAq c2FtcGxlX3RsZSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QobGN0bCk7CisJCWNoYXIJICAgKmNv bE5hbWU7CisJCVRhcmdldEVudHJ5ICp0bGU7CisJCVZhcgkJICAgKnZhcjsKKworCQlBc3NlcnQo IXNhbXBsZV90bGUtPnJlc2p1bmspOworCQljb2xOYW1lID0gcHN0cmR1cChzYW1wbGVfdGxlLT5y ZXNuYW1lKTsKKwkJdmFyID0gbWFrZVZhcigxLCBzYW1wbGVfdGxlLT5yZXNubywgY29sVHlwZSwg Y29sVHlwbW9kLCBjb2xDb2xsYXRpb24sIDApOworCQl2YXItPmxvY2F0aW9uID0gZXhwckxvY2F0 aW9uKChOb2RlICopIHNhbXBsZV90bGUtPmV4cHIpOworCQl0bGUgPSBtYWtlVGFyZ2V0RW50cnko KEV4cHIgKikgdmFyLCAoQXR0ck51bWJlcikgcmVzbm8rKywgY29sTmFtZSwgZmFsc2UpOworCQl1 bmlvbl9xdWVyeS0+dGFyZ2V0TGlzdCA9IGxhcHBlbmQodW5pb25fcXVlcnktPnRhcmdldExpc3Qs IHRsZSk7CisJfQorCisJKnBhdGhxdWVyaWVzID0gTklMOworCXJldHVybiB1bmlvbl9xdWVyeTsK K30KKworLyoKKyAqIENvbnN0cnVjdCBhIHF1ZXJ5IHdoaWNoIGlzIFVOSU9OIG9mIGFsbCB0aGUg Z2l2ZW4gcGF0aCBxdWVyaWVzLgorICoKKyAqIFRoZSBmdW5jdGlvbiBkZXN0cm95cyBnaXZlbiBw YXRocXVlcmllcyBsaXN0IHdoaWxlIGNvbnN0cnVjdGluZworICogU2V0T3BlcmF0aW9uU3RtdCBy ZWN1cnNpdmVseS4KKyAqLworc3RhdGljIE5vZGUgKgorZ2VuZXJhdGVfc2V0b3BfZnJvbV9wYXRo cXVlcmllcyhMaXN0ICpwYXRocXVlcmllcywgTGlzdCAqKnJ0YWJsZSwgTGlzdCAqKnRhcmdldGxp c3QpCit7CisJU2V0T3BlcmF0aW9uU3RtdCAqc29zdG10OworCVF1ZXJ5CSAgICpscXVlcnk7CisJ Tm9kZQkgICAqcmFyZzsKKwlSYW5nZVRibFJlZiAqbHJ0ciA9IG1ha2VOb2RlKFJhbmdlVGJsUmVm KTsKKwlMaXN0CSAgICpydGFyZ2V0bGlzdDsKKwlQYXJzZU5hbWVzcGFjZUl0ZW0gKnBuaTsKKwor CS8qIFJlY3Vyc2lvbiB0ZXJtaW5hdGlvbiBjb25kaXRpb24uICovCisJaWYgKGxpc3RfbGVuZ3Ro KHBhdGhxdWVyaWVzKSA9PSAwKQorCXsKKwkJKnRhcmdldGxpc3QgPSBOSUw7CisJCXJldHVybiBO VUxMOworCX0KKworCWxxdWVyeSA9IGxpbml0aWFsX25vZGUoUXVlcnksIHBhdGhxdWVyaWVzKTsK KworCXBuaSA9IGFkZFJhbmdlVGFibGVFbnRyeUZvclN1YnF1ZXJ5KG1ha2VfcGFyc2VzdGF0ZShO VUxMKSwgbHF1ZXJ5LCBOVUxMLAorCQkJCQkJCQkJCWZhbHNlLCBmYWxzZSk7CisJKnJ0YWJsZSA9 IGxhcHBlbmQoKnJ0YWJsZSwgcG5pLT5wX3J0ZSk7CisJbHJ0ci0+cnRpbmRleCA9IGxpc3RfbGVu Z3RoKCpydGFibGUpOworCXJhcmcgPSBnZW5lcmF0ZV9zZXRvcF9mcm9tX3BhdGhxdWVyaWVzKGxp c3RfZGVsZXRlX2ZpcnN0KHBhdGhxdWVyaWVzKSwgcnRhYmxlLCAmcnRhcmdldGxpc3QpOworCWlm IChyYXJnID09IE5VTEwpCisJeworCQkvKgorCQkgKiBObyBmdXJ0aGVyIHBhdGggcXVlcmllcyBp biB0aGUgbGlzdC4gQ29udmVydCB0aGUgbGFzdCBxdWVyeSBpbnRvIGFuCisJCSAqIFJhbmdlVGJs UmVmIGFzIGV4cGVjdGVkIGJ5IFNldE9wZXJhdGlvblN0bXQuIEV4dHJhY3QgYSBsaXN0IG9mIHRo ZQorCQkgKiBub24tanVuayBUTEVzIGZvciB1cHBlci1sZXZlbCBwcm9jZXNzaW5nLgorCQkgKi8K KwkJaWYgKHRhcmdldGxpc3QpCisJCXsKKwkJCUxpc3RDZWxsICAgKnRsOworCisJCQkqdGFyZ2V0 bGlzdCA9IE5JTDsKKwkJCWZvcmVhY2godGwsIGxxdWVyeS0+dGFyZ2V0TGlzdCkKKwkJCXsKKwkJ CQlUYXJnZXRFbnRyeSAqdGxlID0gKFRhcmdldEVudHJ5ICopIGxmaXJzdCh0bCk7CisKKwkJCQlp ZiAoIXRsZS0+cmVzanVuaykKKwkJCQkJKnRhcmdldGxpc3QgPSBsYXBwZW5kKCp0YXJnZXRsaXN0 LCB0bGUpOworCQkJfQorCQl9CisJCXJldHVybiAoTm9kZSAqKSBscnRyOworCX0KKworCXNvc3Rt dCA9IG1ha2VOb2RlKFNldE9wZXJhdGlvblN0bXQpOworCXNvc3RtdC0+b3AgPSBTRVRPUF9VTklP TjsKKwlzb3N0bXQtPmFsbCA9IHRydWU7CisJc29zdG10LT5sYXJnID0gKE5vZGUgKikgbHJ0cjsK Kwlzb3N0bXQtPnJhcmcgPSByYXJnOworCWNvbnN0cnVjdFNldE9wVGFyZ2V0bGlzdChzb3N0bXQs IGxxdWVyeS0+dGFyZ2V0TGlzdCwgcnRhcmdldGxpc3QsIHRhcmdldGxpc3QsICJVTklPTiIsIE5V TEwsIGZhbHNlKTsKKworCXJldHVybiAoTm9kZSAqKSBzb3N0bXQ7Cit9CisKKy8qCisgKiBDb25z dHJ1Y3QgYSBncmFwaF9wYXRoX2VsZW1lbnQgb2JqZWN0IGZvciB0aGUgZ3JhcGggZWxlbWVudCBn aXZlbiBieSBgZWxlbW9pZGAKKyAqIHN0YXRpc2ZpZWQgYnkgdGhlIGdyYXBoIGVsZW1lbnQgcGF0 dGVybiBgZ2VwYC4KKyAqCisgKiAnZWxlbXBvc2AgaXMgdGhlIHBvc2l0aW9uIG9mIGdpdmVuIGVs ZW1lbnQgcGF0dGVybiBpbiB0aGUgcGF0aCBwYXR0ZXJuLgorICoKKyAqIElmIHRoZSB0eXBlIG9m IGdyYXBoIGVsZW1lbnQgZG9lcyBub3QgZml0IHRoZSBlbGVtZW50IHBhdHRlcm4ga2luZCwgdGhl CisgKiBmdW5jdGlvbiByZXR1cm5zIE5VTEwuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgZ3JhcGhfcGF0 aF9lbGVtZW50ICoKK2NyZWF0ZV9ncGVfZm9yX2VsZW1lbnQoR3JhcGhFbGVtZW50UGF0dGVybiAq Z2VwLCBPaWQgZWxlbW9pZCwgaW50IGVsZW1wb3MpCit7CisJSGVhcFR1cGxlCWVsZXR1cCA9IFNl YXJjaFN5c0NhY2hlMShQUk9QR1JBUEhFTE9JRCwgT2JqZWN0SWRHZXREYXR1bShlbGVtb2lkKSk7 CisJRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudCBwZ2Vmb3JtOworCXN0cnVjdCBncmFwaF9wYXRo X2VsZW1lbnQgKmdwZTsKKworCWlmICghZWxldHVwKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9v a3VwIGZhaWxlZCBmb3IgcHJvcGVydHkgZ3JhcGggZWxlbWVudCAldSIsIGVsZW1vaWQpOworCXBn ZWZvcm0gPSAoKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQpIEdFVFNUUlVDVChlbGV0dXApKTsK KworCWlmICgocGdlZm9ybS0+cGdla2luZCA9PSBQR0VLSU5EX1ZFUlRFWCAmJiBnZXAtPmtpbmQg IT0gVkVSVEVYX1BBVFRFUk4pIHx8CisJCShwZ2Vmb3JtLT5wZ2VraW5kID09IFBHRUtJTkRfRURH RSAmJiAhSVNfRURHRV9QQVRURVJOKGdlcC0+a2luZCkpKQorCXsKKwkJUmVsZWFzZVN5c0NhY2hl KGVsZXR1cCk7CisJCXJldHVybiBOVUxMOworCX0KKworCWdwZSA9IHBhbGxvYzBfb2JqZWN0KHN0 cnVjdCBncmFwaF9wYXRoX2VsZW1lbnQpOworCWdwZS0+cGFyZW50X2dlcCA9IGdlcDsKKwlncGUt PmVsZW1vaWQgPSBlbGVtb2lkOworCWdwZS0+cmVsb2lkID0gcGdlZm9ybS0+cGdlcmVsaWQ7CisJ Z3BlLT5xdWFsX2V4cHJzID0gTklMOworCisJLyoKKwkgKiBXaGVuIHRoZSBwYXRoIGNvbnRhaW5p bmcgdGhpcyBlbGVtZW50IHdpbGwgYmUgY29udmVydGVkIGludG8gYSBxdWVyeQorCSAqIChnZW5l cmF0ZV9xdWVyeV9mb3JfZ3JhcGhfcGF0aCgpKSB0aGlzIGVsZW1lbnQgd2lsbCBiZSBjb252ZXJ0 ZWQgaW50byBhCisJICogUmFuZ2VUYmxFbnRyeS4gVGhlIFJhbmdlVGJsRW50cnlzIGFyZSBjcmVh dGVkIGluIHRoZSBzYW1lIG9yZGVyIGluCisJICogd2hpY2ggZWxlbWVudHMgYXBwZWFyIGluIHRo ZSBwYXRoIGFuZCB0aHVzIGdldCBjb25zZWN1dGl2ZSBydGluZGV4ZXMuCisJICogS25vd2luZyB0 aG9zZSBydGluZGV4ZXMgaGVyZSBtYWtlcyBpdCBwb3NzaWJsZSB0byBjcmFmdCBlbGVtZW50cycg cXVhbAorCSAqIGV4cHJlc3Npb25zIG9ubHkgb25jZS4gT3RoZXJ3aXNlIHRoZXkgbmVlZCB0byBi ZSBjcmFmdGVkIGFzIG1hbnkgdGltZXMKKwkgKiBhcyB0aGUgbnVtYmVyIG9mIHBhdGhzIHRoaXMg ZWxlbWVudCBhcHBlYXJzIGluLiBIZW5jZSBzYXZlIHRoZSBhc3N1bWVkCisJICogcnRpbmRleCBz byB0aGF0IGl0IGNhbiBiZSB2ZXJpZmllZCBsYXRlci4KKwkgKi8KKwlncGUtPnJ0aW5kZXggPSBl bGVtcG9zICsgMTsKKworCWlmIChJU19FREdFX1BBVFRFUk4oZ2VwLT5raW5kKSkKKwl7CisJCWlu dAkJCXNyY19ydGluZGV4OworCQlpbnQJCQlkZXN0X3J0aW5kZXg7CisJCUxpc3QJICAgKmVkZ2Vf cXVhbDsKKworCQlncGUtPnNyY3ZlcnRleGlkID0gcGdlZm9ybS0+cGdlc3JjdmVydGV4aWQ7CisJ CWdwZS0+ZGVzdHZlcnRleGlkID0gcGdlZm9ybS0+cGdlZGVzdHZlcnRleGlkOworCisJCWlmIChn ZXAtPmtpbmQgPT0gRURHRV9QQVRURVJOX1JJR0hUKQorCQl7CisJCQlncGUtPnNyY2VsZW1fcG9z ID0gZWxlbXBvcyAtIDE7CisJCQlncGUtPmRlc3RlbGVtX3BvcyA9IGVsZW1wb3MgKyAxOworCQkJ c3JjX3J0aW5kZXggPSBncGUtPnJ0aW5kZXggLSAxOworCQkJZGVzdF9ydGluZGV4ID0gZ3BlLT5y dGluZGV4ICsgMTsKKwkJfQorCQllbHNlIGlmIChnZXAtPmtpbmQgPT0gRURHRV9QQVRURVJOX0xF RlQpCisJCXsKKwkJCWdwZS0+c3JjZWxlbV9wb3MgPSBlbGVtcG9zICsgMTsKKwkJCWdwZS0+ZGVz dGVsZW1fcG9zID0gZWxlbXBvcyAtIDE7CisJCQlzcmNfcnRpbmRleCA9IGdwZS0+cnRpbmRleCAr IDE7CisJCQlkZXN0X3J0aW5kZXggPSBncGUtPnJ0aW5kZXggLSAxOworCQl9CisJCWVsc2UKKwkJ eworCQkJLyogV2UgZG9uJ3Qgc3VwcG9ydCB1bmRpcmVjdGVkIGVkZ2VzIHlldC4gKi8KKwkJCUFz c2VydChmYWxzZSk7CisJCQlncGUtPnNyY2VsZW1fcG9zID0gZWxlbXBvczsKKwkJCWdwZS0+ZGVz dGVsZW1fcG9zID0gZWxlbXBvczsKKwkJCXNyY19ydGluZGV4ID0gZ3BlLT5ydGluZGV4OworCQkJ ZGVzdF9ydGluZGV4ID0gZ3BlLT5ydGluZGV4OworCQl9CisKKwkJZWRnZV9xdWFsID0gYnVpbGRf ZWRnZV92ZXJ0ZXhfbGlua19xdWFscyhlbGV0dXAsIGdwZS0+cnRpbmRleCwgc3JjX3J0aW5kZXgs CisJCQkJCQkJCQkJCQkgQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VzcmNrZXksCisJCQkJ CQkJCQkJCQkgQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VzcmNyZWYpOworCQlncGUtPnF1 YWxfZXhwcnMgPSBsaXN0X2NvbmNhdChncGUtPnF1YWxfZXhwcnMsIGVkZ2VfcXVhbCk7CisJCWVk Z2VfcXVhbCA9IGJ1aWxkX2VkZ2VfdmVydGV4X2xpbmtfcXVhbHMoZWxldHVwLCBncGUtPnJ0aW5k ZXgsIGRlc3RfcnRpbmRleCwKKwkJCQkJCQkJCQkJCSBBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50 X3BnZWRlc3RrZXksCisJCQkJCQkJCQkJCQkgQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2Vk ZXN0cmVmKTsKKwkJZ3BlLT5xdWFsX2V4cHJzID0gbGlzdF9jb25jYXQoZ3BlLT5xdWFsX2V4cHJz LCBlZGdlX3F1YWwpOworCX0KKworCVJlbGVhc2VTeXNDYWNoZShlbGV0dXApOworCisJcmV0dXJu IGdwZTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKgorZ2V0X2dlcF9raW5kX25hbWUoR3JhcGhF bGVtZW50UGF0dGVybktpbmQgZ2Vwa2luZCkKK3sKKwlzd2l0Y2ggKGdlcGtpbmQpCisJeworCQlj YXNlIFZFUlRFWF9QQVRURVJOOgorCQkJcmV0dXJuICJ2ZXJ0ZXgiOworCQljYXNlIEVER0VfUEFU VEVSTl9MRUZUOgorCQkJcmV0dXJuICJlZGdlIHBvaW50aW5nIGxlZnQiOworCQljYXNlIEVER0Vf UEFUVEVSTl9SSUdIVDoKKwkJCXJldHVybiAiZWRnZSBwb2ludGluZyByaWdodCI7CisJCWNhc2Ug RURHRV9QQVRURVJOX0FOWToKKwkJCXJldHVybiAidW5kaXJlY3RlZCBlZGdlIjsKKwkJY2FzZSBQ QVJFTl9FWFBSOgorCQkJcmV0dXJuICJuZXN0ZWQgcGF0aCBwYXR0ZXJuIjsKKwl9CisKKwlwZ191 bnJlYWNoYWJsZSgpOworfQorCisvKgorICogUmV0dXJucyB0aGUgbGlzdCBvZiBPSURzIG9mIGdy YXBoIGxhYmVscyB3aGljaCB0aGUgZ2l2ZW4gbGFiZWwgZXhwcmVzc2lvbgorICogcmVzb2x2ZXMg dG8gaW4gdGhlIGdpdmVuIHByb3BlcnR5IGdyYXBoLgorICovCitzdGF0aWMgTGlzdCAqCitnZXRf bGFiZWxzX2Zvcl9leHByKE9pZCBwcm9wZ3JhcGhpZCwgTm9kZSAqbGFiZWxleHByKQoreworCUxp c3QJICAgKmxhYmVsX29pZHM7CisKKwlpZiAoIWxhYmVsZXhwcikKKwl7CisJCVJlbGF0aW9uCXJl bDsKKwkJU3lzU2NhbkRlc2Mgc2NhbjsKKwkJU2NhbktleURhdGEga2V5WzFdOworCQlIZWFwVHVw bGUJdHVwOworCisJCS8qCisJCSAqIEFjY29yZGluZyB0byBzZWN0aW9uIDkuMiAiQ29udGV4dHVh bCBpbmZlcmVuY2Ugb2YgYSBzZXQgb2YgbGFiZWxzIgorCQkgKiBzdWJjbGF1c2UgMi5hLmlpIG9m IFNRTC9QR1Egc3RhbmRhcmQsIGVsZW1lbnQgcGF0dGVybiB3aGljaCBkb2VzCisJCSAqIG5vdCBo YXZlIGEgbGFiZWwgZXhwcmVzc2lvbiBpcyBjb25zaWRlcmVkIHRvIGhhdmUgbGFiZWwgZXhwcmVz c2lvbgorCQkgKiBlcXVpdmFsZW50IHRvICclfCElJyB3aGljaCBpcyBzZXQgb2YgYWxsIGxhYmVs cy4KKwkJICovCisJCWxhYmVsX29pZHMgPSBOSUw7CisJCXJlbCA9IHRhYmxlX29wZW4oUHJvcGdy YXBoTGFiZWxSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOworCQlTY2FuS2V5SW5pdCgma2V5 WzBdLAorCQkJCQlBbnVtX3BnX3Byb3BncmFwaF9sYWJlbF9wZ2xwZ2lkLAorCQkJCQlCVEVxdWFs U3RyYXRlZ3lOdW1iZXIsCisJCQkJCUZfT0lERVEsIE9iamVjdElkR2V0RGF0dW0ocHJvcGdyYXBo aWQpKTsKKwkJc2NhbiA9IHN5c3RhYmxlX2JlZ2luc2NhbihyZWwsIFByb3BncmFwaExhYmVsR3Jh cGhOYW1lSW5kZXhJZCwKKwkJCQkJCQkJICB0cnVlLCBOVUxMLCAxLCBrZXkpOworCQl3aGlsZSAo SGVhcFR1cGxlSXNWYWxpZCh0dXAgPSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4pKSkKKwkJeworCQkJ Rm9ybV9wZ19wcm9wZ3JhcGhfbGFiZWwgbGFiZWwgPSAoRm9ybV9wZ19wcm9wZ3JhcGhfbGFiZWwp IEdFVFNUUlVDVCh0dXApOworCisJCQlsYWJlbF9vaWRzID0gbGFwcGVuZF9vaWQobGFiZWxfb2lk cywgbGFiZWwtPm9pZCk7CisJCX0KKwkJc3lzdGFibGVfZW5kc2NhbihzY2FuKTsKKwkJdGFibGVf Y2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOworCX0KKwllbHNlIGlmIChJc0EobGFiZWxleHBy LCBHcmFwaExhYmVsUmVmKSkKKwl7CisJCUdyYXBoTGFiZWxSZWYgKmdsciA9IGNhc3ROb2RlKEdy YXBoTGFiZWxSZWYsIGxhYmVsZXhwcik7CisKKwkJbGFiZWxfb2lkcyA9IGxpc3RfbWFrZTFfb2lk KGdsci0+bGFiZWxpZCk7CisJfQorCWVsc2UgaWYgKElzQShsYWJlbGV4cHIsIEJvb2xFeHByKSkK Kwl7CisJCUJvb2xFeHByICAgKmJlID0gY2FzdE5vZGUoQm9vbEV4cHIsIGxhYmVsZXhwcik7CisJ CUxpc3QJICAgKmxhYmVsX2V4cHJzID0gYmUtPmFyZ3M7CisJCUxpc3RDZWxsICAgKmxsYzsKKwor CQlsYWJlbF9vaWRzID0gTklMOworCQlmb3JlYWNoKGxsYywgbGFiZWxfZXhwcnMpCisJCXsKKwkJ CUdyYXBoTGFiZWxSZWYgKmdsciA9IGxmaXJzdF9ub2RlKEdyYXBoTGFiZWxSZWYsIGxsYyk7CisK KwkJCWxhYmVsX29pZHMgPSBsYXBwZW5kX29pZChsYWJlbF9vaWRzLCBnbHItPmxhYmVsaWQpOwor CQl9CisJfQorCWVsc2UKKwkJZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIGxhYmVsIGV4cHJlc3Np b24gdHlwZTogJWQiLCAoaW50KSBub2RlVGFnKGxhYmVsZXhwcikpOworCisJcmV0dXJuIGxhYmVs X29pZHM7Cit9CisKKy8qCisgKiBHaXZlbiBhIGdyYXBoIGVsZW1lbnQgcGF0dGVybiBgZ2VwYCwg cmV0dXJuIGEgbGlzdCBvZiBhbGwgdGhlIGdyYXBoIGVsZW1lbnRzCisgKiB0aGF0IHNhdGlzZnkg dGhlIGdyYXBoIHBhdHRlcm4uCisgKgorICogRmlyc3Qgd2UgZmluZCBhbGwgdGhlIGdyYXBoIGxh YmVscyB0aGF0IHNhdGlzZnkgdGhlIGxhYmVsIGV4cHJlc3Npb24gaW4KKyAqIGdyYXBoIGVsZW1l bnQgcGF0dGVybi4gRWFjaCBsYWJlbCBoYXMgYXNzb2NpYXRlZCB3aXRoIG9uZSBvciBtb3JlIGdy YXBoCisgKiBlbGVtZW50cy4gQSB1bmlvbiBvZiBhbGwgc3VjaCBlbGVtZW50cyBzYXRpc2ZpZXMg dGhlIGVsZW1lbnQgcGF0dGVybi4gVGhlCisgKiByZXR1cm5lZCBsaXN0IGNvbnRhaW5zIG9uZSBn cmFwaF9wYXRoX2VsZW1lbnQgb2JqZWN0IHJlcHJlc2VudGluZyBlYWNoIG9mCisgKiB0aGVzZSBl bGVtZW50cyByZXNwZWN0aXZlbHkuCisgKgorICogYGVsZW1wb3NgIGlzIHBvc2l0aW9uIG9mIHRo ZSBlbGVtZW50IHBhdHRlcm4gaW4gdGhlIHBhdGggcGF0dGVybi4KKyAqLworc3RhdGljIExpc3Qg KgorZ2V0X2VsZW1lbnRzX2Zvcl9nZXAoT2lkIHByb3BncmFwaGlkLCBHcmFwaEVsZW1lbnRQYXR0 ZXJuICpnZXAsIGludCBlbGVtcG9zKQoreworCUxpc3QJICAgKmxhYmVsX29pZHMgPSBnZXRfbGFi ZWxzX2Zvcl9leHByKHByb3BncmFwaGlkLCBnZXAtPmxhYmVsZXhwcik7CisJTGlzdAkgICAqZWxl bV9vaWRzX3NlZW4gPSBOSUw7CisJTGlzdAkgICAqZWxlbV9ncGVfb2lkcyA9IE5JTDsKKwlMaXN0 CSAgICplbGVtX2dwZXMgPSBOSUw7CisJTGlzdENlbGwgICAqbGM7CisJUmVsYXRpb24JcmVsOwor CVN5c1NjYW5EZXNjIHNjYW47CisJU2NhbktleURhdGEga2V5WzFdOworCUhlYXBUdXBsZQl0dXA7 CisKKwlyZWwgPSB0YWJsZV9vcGVuKFByb3BncmFwaEVsZW1lbnRMYWJlbFJlbGF0aW9uSWQsIEFj Y2Vzc1NoYXJlTG9jayk7CisJZm9yZWFjaChsYywgbGFiZWxfb2lkcykKKwl7CisJCU9pZAkJCWxh YmVsb2lkID0gbGZpcnN0X29pZChsYyk7CisJCWJvb2wJCWZvdW5kID0gZmFsc2U7CisKKwkJU2Nh bktleUluaXQoJmtleVswXSwKKwkJCQkJQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbF9w Z2VsbGFiZWxpZCwKKwkJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLAorCQkJCQlGX09JREVRLCBP YmplY3RJZEdldERhdHVtKGxhYmVsb2lkKSk7CisJCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4o cmVsLCBQcm9wZ3JhcGhFbGVtZW50TGFiZWxMYWJlbEluZGV4SWQsIHRydWUsCisJCQkJCQkJCSAg TlVMTCwgMSwga2V5KTsKKwkJd2hpbGUgKEhlYXBUdXBsZUlzVmFsaWQodHVwID0gc3lzdGFibGVf Z2V0bmV4dChzY2FuKSkpCisJCXsKKwkJCUZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwg bGFiZWxfZWxlbSA9IChGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsKSBHRVRTVFJVQ1Qo dHVwKTsKKwkJCU9pZAkJCWVsZW1fb2lkID0gbGFiZWxfZWxlbS0+cGdlbGVsaWQ7CisKKwkJCWlm ICghbGlzdF9tZW1iZXJfb2lkKGVsZW1fb2lkc19zZWVuLCBlbGVtX29pZCkpCisJCQl7CisJCQkJ LyoKKwkJCQkgKiBGb3VuZCBhIG5ldyBlbGVtZW50IHRoYXQgaXMgYXNzb2NpYXRlZCB3aXRoIGxh YmVscyBpbiB0aGUKKwkJCQkgKiBnaXZlbiBlbGVtZW50IHBhdHRlcm4uIElmIGl0IGZpdHMgdGhl IGVsZW1lbnQgcGF0dGVybiBraW5kCisJCQkJICogd2Ugd2lsbCBjcmVhdGUgR3JhcGhQYXRoUGF0 dGVybiBvYmplY3QgZm9yIGl0IGFuZCBmbGFnIHRoYXQKKwkJCQkgKiB0aGUgY3VycmVudCBsYWJl bCBoYXMgYXQgbGVhc3Qgb25lIGVsZW1lbnQsIHRoYXQgc2F0aXNmaWVzCisJCQkJICogdGhlIGdp dmVuIGVsZW1lbnQgcGF0dGVybiwgYXNzb2NpYXRlZCB3aXRoIGl0LgorCQkJCSAqLworCQkJCXN0 cnVjdCBncmFwaF9wYXRoX2VsZW1lbnQgKmdwZSA9IGNyZWF0ZV9ncGVfZm9yX2VsZW1lbnQoZ2Vw LCBlbGVtX29pZCwgZWxlbXBvcyk7CisKKwkJCQlpZiAoZ3BlKQorCQkJCXsKKwkJCQkJZWxlbV9n cGVzID0gbGFwcGVuZChlbGVtX2dwZXMsIGdwZSk7CisJCQkJCWVsZW1fZ3BlX29pZHMgPSBsYXBw ZW5kX29pZChlbGVtX2dwZV9vaWRzLCBlbGVtX29pZCk7CisJCQkJCWZvdW5kID0gdHJ1ZTsKKwkJ CQl9CisKKwkJCQkvKgorCQkJCSAqIEFkZCB0aGUgZ3JhcGggZWxlbWVudCB0byB0aGUgZWxlbWVu dHMgY29uc2lkZXJlZCBzbyBmYXIgdG8KKwkJCQkgKiBhdm9pZCBwcm9jZXNzaW5nIHNhbWUgZWxl bWVudCBhc3NvY2lhdGVkIHdpdGggbXVsdGlwbGUKKwkJCQkgKiBsYWJlbHMgbXVsdGlwbGUgdGlt ZXMuIEFsc28gYXZvaWRzIGNyZWF0aW5nIGR1cGxpY2F0ZQorCQkJCSAqIEdyYXBoUGF0aEVsZW1l bnRzLgorCQkJCSAqLworCQkJCWVsZW1fb2lkc19zZWVuID0gbGFwcGVuZF9vaWQoZWxlbV9vaWRz X3NlZW4sIGxhYmVsX2VsZW0tPnBnZWxlbGlkKTsKKwkJCX0KKwkJCWVsc2UgaWYgKGxpc3RfbWVt YmVyX29pZChlbGVtX2dwZV9vaWRzLCBlbGVtX29pZCkpCisJCQl7CisJCQkJLyoKKwkJCQkgKiBU aGUgZ3JhcGggZWxlbWVudCBpcyBrbm93biB0byBxdWFsaWZ5IHRoZSBnaXZlbiBlbGVtZW50CisJ CQkJICogcGF0dGVybi4gRmxhZyB0aGF0IHRoZSBjdXJyZW50IGxhYmVsIGhhcyBhdCBsZWFzdCBv bmUKKwkJCQkgKiBlbGVtZW50LCB0aGF0IHNhdGlzZmllcyB0aGUgZ2l2ZW4gZWxlbWVudCBwYXR0 ZXJuLAorCQkJCSAqIGFzc29jaWF0ZWQgd2l0aCBpdC4KKwkJCQkgKi8KKwkJCQlmb3VuZCA9IHRy dWU7CisJCQl9CisJCX0KKworCQlpZiAoIWZvdW5kKQorCQl7CisJCQkvKgorCQkJICogV2UgZGlk IG5vdCBmaW5kIGFueSBlbGVtZW50LCB0aGF0IGZpdHMgZ2l2ZW4gZWxlbWVudCBwYXR0ZXJuCisJ CQkgKiBraW5kLCBhc3NvY2lhdGVkIHdpdGggdGhpcyBsYWJlbC4gVGhlIGxhYmVsIG9yIGl0cyBw cm9wZXJ0aWVzCisJCQkgKiBjYW4gbm90IGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gZWxl bWVudCBwYXR0ZXJuLiBUaHJvdyBhbgorCQkJICogZXJyb3IgaWYgdGhlIGxhYmVsIHdhcyBleHBs aWNpdGx5IHNwZWNpZmllZCBpbiB0aGUgZWxlbWVudAorCQkJICogcGF0dGVybi4gT3RoZXJ3aXNl IGp1c3QgUmVtb3ZlIGl0IGZyb20gdGhlIGxpc3QuCisJCQkgKi8KKwkJCWlmICghZ2VwLT5sYWJl bGV4cHIpCisJCQkJZm9yZWFjaF9kZWxldGVfY3VycmVudChsYWJlbF9vaWRzLCBsYyk7CisJCQll bHNlCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVE X09CSkVDVCksCisJCQkJCQkgZXJybXNnKCJjYW4gbm90IGZpbmQgbGFiZWwgXCIlc1wiIGluIHBy b3BlcnR5IGdyYXBoIFwiJXNcIiBmb3IgZWxlbWVudCB0eXBlIFwiJXNcIiIsCisJCQkJCQkJCWdl dF9wcm9wZ3JhcGhfbGFiZWxfbmFtZShsYWJlbG9pZCksCisJCQkJCQkJCWdldF9yZWxfbmFtZShw cm9wZ3JhcGhpZCksCisJCQkJCQkJCWdldF9ncmFwaF9lbGVtX2tpbmRfbmFtZShnZXAtPmtpbmQp KSkpOworCQl9CisKKwkJc3lzdGFibGVfZW5kc2NhbihzY2FuKTsKKwl9CisJdGFibGVfY2xvc2Uo cmVsLCBBY2Nlc3NTaGFyZUxvY2spOworCisJLyogVXBkYXRlIHRoZSBmaWx0ZXJlZCBsYWJlbCBs aXN0IGluIGVhY2ggZ3JhcGhfcGF0aF9lbGVtZW50LiAqLworCWZvcmVhY2gobGMsIGVsZW1fZ3Bl cykKKwl7CisJCXN0cnVjdCBncmFwaF9wYXRoX2VsZW1lbnQgKmdwZSA9IGxmaXJzdChsYyk7CisK KwkJZ3BlLT5sYWJlbG9pZHMgPSBsYWJlbF9vaWRzOworCX0KKworCXJldHVybiBlbGVtX2dwZXM7 Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICoKK2dldF9ncmFwaF9lbGVtX2tpbmRfbmFtZShHcmFw aEVsZW1lbnRQYXR0ZXJuS2luZCBnZXBraW5kKQoreworCWlmIChnZXBraW5kID09IFZFUlRFWF9Q QVRURVJOKQorCQlyZXR1cm4gInZlcnRleCI7CisJZWxzZSBpZiAoSVNfRURHRV9QQVRURVJOKGdl cGtpbmQpKQorCQlyZXR1cm4gImVkZ2UiOworCWVsc2UgaWYgKGdlcGtpbmQgPT0gUEFSRU5fRVhQ UikKKwkJcmV0dXJuICJuZXN0ZWQgcGF0aCBwYXR0ZXJuIjsKKworCXJldHVybiAidW5rbm93biI7 Cit9CisKKy8qCisgKiBNdXRhdGluZyBwcm9wZXJ0eSByZWZlcmVuY2VzIGludG8gdGFibGUgdmFy aWFibGVzCisgKi8KKworc3RydWN0IHJlcGxhY2VfcHJvcGVydHlfcmVmc19jb250ZXh0Cit7CisJ T2lkCQkJcHJvcGdyYXBoaWQ7CisJY29uc3QgTGlzdCAqbWFwcGluZ3M7Cit9OworCitzdGF0aWMg Tm9kZSAqCityZXBsYWNlX3Byb3BlcnR5X3JlZnNfbXV0YXRvcihOb2RlICpub2RlLCBzdHJ1Y3Qg cmVwbGFjZV9wcm9wZXJ0eV9yZWZzX2NvbnRleHQgKmNvbnRleHQpCit7CisJaWYgKG5vZGUgPT0g TlVMTCkKKwkJcmV0dXJuIE5VTEw7CisJaWYgKElzQShub2RlLCBWYXIpKQorCXsKKwkJVmFyCQkg ICAqdmFyID0gKFZhciAqKSBub2RlOworCQlWYXIJCSAgICpuZXd2YXIgPSBjb3B5T2JqZWN0KHZh cik7CisKKwkJLyoKKwkJICogSWYgaXQncyBhbHJlYWR5IGEgVmFyLCB0aGVuIGl0IHdhcyBhIGxh dGVyYWwgcmVmZXJlbmNlLiAgU2luY2Ugd2UKKwkJICogYXJlIGluIGEgc3VicXVlcnkgYWZ0ZXIg dGhlIHJld3JpdGUsIHdlIGhhdmUgdG8gaW5jcmVhc2UgdGhlIGxldmVsCisJCSAqIGJ5IG9uZS4K KwkJICovCisJCW5ld3Zhci0+dmFybGV2ZWxzdXArKzsKKworCQlyZXR1cm4gKE5vZGUgKikgbmV3 dmFyOworCX0KKwllbHNlIGlmIChJc0Eobm9kZSwgR3JhcGhQcm9wZXJ0eVJlZikpCisJeworCQlH cmFwaFByb3BlcnR5UmVmICpncHIgPSAoR3JhcGhQcm9wZXJ0eVJlZiAqKSBub2RlOworCQlOb2Rl CSAgICpuID0gTlVMTDsKKwkJTGlzdENlbGwgICAqbGM7CisJCXN0cnVjdCBncmFwaF9wYXRoX2Vs ZW1lbnQgKmZvdW5kX21hcHBpbmcgPSBOVUxMOworCQlMaXN0CSAgICp1bnJlbGF0ZWRfbGFiZWxz ID0gTklMOworCisJCWZvcmVhY2gobGMsIGNvbnRleHQtPm1hcHBpbmdzKQorCQl7CisJCQlzdHJ1 Y3QgZ3JhcGhfcGF0aF9lbGVtZW50ICptID0gbGZpcnN0KGxjKTsKKworCQkJaWYgKG0tPnBhcmVu dF9nZXAtPnZhcmlhYmxlICYmIHN0cmNtcChncHItPmVsdmFybmFtZSwgbS0+cGFyZW50X2dlcC0+ dmFyaWFibGUpID09IDApCisJCQl7CisJCQkJZm91bmRfbWFwcGluZyA9IG07CisJCQkJYnJlYWs7 CisJCQl9CisJCX0KKwkJaWYgKCFmb3VuZF9tYXBwaW5nKQorCQkJZWxvZyhFUlJPUiwgInVuZGVm aW5lZCBlbGVtZW50IHZhcmlhYmxlIFwiJXNcIiIsIGdwci0+ZWx2YXJuYW1lKTsKKworCQkvKgor CQkgKiBGaW5kIHByb3BlcnR5IGRlZmluaXRpb24gZm9yIGdpdmVuIGVsZW1lbnQgdGhyb3VnaCBh bnkgb2YgdGhlCisJCSAqIGFzc29jaWF0ZWQgbGFiZWxzLgorCQkgKi8KKwkJZm9yZWFjaChsYywg Zm91bmRfbWFwcGluZy0+bGFiZWxvaWRzKQorCQl7CisJCQlPaWQJCQlsYWJlbG9pZCA9IGxmaXJz dF9vaWQobGMpOworCQkJT2lkCQkJZWxlbV9sYWJlbGlkID0gR2V0U3lzQ2FjaGVPaWQyKFBST1BH UkFQSEVMRU1FTlRMQUJFTEVMRU1FTlRMQUJFTCwKKwkJCQkJCQkJCQkJCQkgICBBbnVtX3BnX3By b3BncmFwaF9lbGVtZW50X2xhYmVsX29pZCwKKwkJCQkJCQkJCQkJCQkgICBPYmplY3RJZEdldERh dHVtKGZvdW5kX21hcHBpbmctPmVsZW1vaWQpLAorCQkJCQkJCQkJCQkJCSAgIE9iamVjdElkR2V0 RGF0dW0obGFiZWxvaWQpKTsKKworCQkJaWYgKE9pZElzVmFsaWQoZWxlbV9sYWJlbGlkKSkKKwkJ CXsKKwkJCQlIZWFwVHVwbGUJdHVwID0gU2VhcmNoU3lzQ2FjaGUyKFBST1BHUkFQSExBQkVMUFJP UCwgT2JqZWN0SWRHZXREYXR1bShlbGVtX2xhYmVsaWQpLAorCQkJCQkJCQkJCQkJICBPYmplY3RJ ZEdldERhdHVtKGdwci0+cHJvcGlkKSk7CisKKwkJCQlpZiAoIXR1cCkKKwkJCQl7CisJCQkJCS8q CisJCQkJCSAqIFRoZSBsYWJlbCBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGVsZW1lbnQg YnV0IGl0CisJCQkJCSAqIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggdGhlIHJlcXVpcmVkIHByb3Bl cnR5LiBDaGVjaworCQkJCQkgKiBuZXh0IGxhYmVsLgorCQkJCQkgKi8KKwkJCQkJY29udGludWU7 CisJCQkJfQorCisJCQkJbiA9IHN0cmluZ1RvTm9kZShUZXh0RGF0dW1HZXRDU3RyaW5nKFN5c0Nh Y2hlR2V0QXR0ck5vdE51bGwoUFJPUEdSQVBITEFCRUxQUk9QLAorCQkJCQkJCQkJCQkJCQkJCQkJ CXR1cCwgQW51bV9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHlfcGxwZXhwcikpKTsKKwkJCQlD aGFuZ2VWYXJOb2RlcyhuLCAxLCBmb3VuZF9tYXBwaW5nLT5ydGluZGV4LCAwKTsKKworCQkJCVJl bGVhc2VTeXNDYWNoZSh0dXApOworCQkJfQorCQkJZWxzZQorCQkJeworCQkJCS8qCisJCQkJICog TGFiZWwgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCB0aGUgZWxlbWVudCBidXQgaXQgbWF5IGJlCisJ CQkJICogYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm9wZXJ0eSB0aHJvdWdoIHNvbWUgb3RoZXIgZWxl bWVudC4KKwkJCQkgKiBTYXZlIGl0IGZvciBsYXRlciB1c2UuCisJCQkJICovCisJCQkJdW5yZWxh dGVkX2xhYmVscyA9IGxhcHBlbmRfb2lkKHVucmVsYXRlZF9sYWJlbHMsIGxhYmVsb2lkKTsKKwkJ CX0KKwkJfQorCisJCS8qIFNlZSBpZiB3ZSBjYW4gcmVzb2x2ZSB0aGUgcHJvcGVydHkgaW4gc29t ZSBvdGhlciB3YXkuICovCisJCWlmICghbikKKwkJeworCQkJTGlzdENlbGwgICAqbGN1OworCQkJ Ym9vbAkJcHJvcF9hc3NvY2lhdGVkID0gZmFsc2U7CisKKwkJCWZvcmVhY2gobGN1LCB1bnJlbGF0 ZWRfbGFiZWxzKQorCQkJeworCQkJCWlmIChpc19wcm9wZXJ0eV9hc3NvY2lhdGVkX3dpdGhfbGFi ZWwobGZpcnN0X29pZChsY3UpLCBncHItPnByb3BpZCkpCisJCQkJeworCQkJCQlwcm9wX2Fzc29j aWF0ZWQgPSB0cnVlOworCQkJCQlicmVhazsKKwkJCQl9CisJCQl9CisKKwkJCWlmIChwcm9wX2Fz c29jaWF0ZWQpCisJCQl7CisJCQkJLyoKKwkJCQkgKiBUaGUgcHJvcGVydHkgaXMgYXNzb2NpYXRl ZCB3aXRoIGF0IGxlYXN0IG9uZSBvZiB0aGUgbGFiZWxzCisJCQkJICogdGhhdCBzYXRpc2Z5IGdp dmVuIGVsZW1lbnQgcGF0dGVybi4gSWYgaXQncyBhc3NvY2lhdGVkIHdpdGgKKwkJCQkgKiB0aGUg Z2l2ZW4gZWxlbWVudCB0aHJvdWdoIHNvbWUgYW55IG9mIHRoZSBsYWJlbHMsIHVzZQorCQkJCSAq IGNvcnJlc3BvbmRpZyB2YWx1ZSBleHByZXNzaW9uLiBPdGhlcndpc2UgTlVMTC4gUmVmLiBTUUwv UEdRCisJCQkJICogc3RhbmRhcmQgc2VjdGlvbiA2LjUgUHJvcGVydHkgUmVmZXJlY2UsIEdlbmVy YWwgUnVsZSAyLmIuCisJCQkJICoKKwkJCQkgKiBOT1RFOiBBbiBlbGVtZW50IHBhdGggcGF0dGVy biBtYXkgcmVzb2x2ZSB0byBtdWx0aXBsZQorCQkJCSAqIGVsZW1lbnRzLiAgVGhlIGFib3ZlIHNl Y3Rpb24gZG9lcyBub3Qgc2VlbSB0byBkZXNjcmliZSB0aGlzCisJCQkJICogY2FzZS4gQnV0IGl0 IGRlcGVuZHMgdXBvbiBob3cgdGhlIHRlcm0gRVIgaXMgaW50ZXJwcmV0ZWQuCisJCQkJICogRm9y IGEgZ2l2ZW4gcGF0aCB0aGVyZSdzIG9ubHkgb25lIGVsZW1lbnQgYm91bmQgdG8gYSBnaXZlbgor CQkJCSAqIEVSLiBIZW5jZSB0aGUgYWJvdmUgc3RhdGVkIHJ1bGUgY2FuIGJlIGFwcGxpZWQgaGVy ZS4gIFRoZQorCQkJCSAqIHNlY3Rpb24gYWxzbyBzdGF0ZXMgdGhlIGNhc2Ugd2hlbiBubyBlbGVt ZW50IGJpbmRzIHRvIEVSLgorCQkJCSAqIFdlIGNvbnNpZGVyIHN1Y2ggcGF0aHMgYXMgYnJva2Vu IGFuZCBkbyBub3QgY29udHJpYnV0ZSBhbnkKKwkJCQkgKiByb3dzIHRvIHRoZSBHUkFQSF9UQUJM RS4KKwkJCQkgKi8KKwkJCQluID0gZ2V0X2VsZW1lbnRfcHJvcGVydHlfZXhwcihmb3VuZF9tYXBw aW5nLT5lbGVtb2lkLCBncHItPnByb3BpZCwKKwkJCQkJCQkJCQkJICBmb3VuZF9tYXBwaW5nLT5y dGluZGV4KTsKKworCQkJCWlmICghbikKKwkJCQl7CisJCQkJCS8qIFhYWDogRG9lcyBjb2xsYXRp b24gb2YgTlVMTCB2YWx1ZSBtYXR0ZXI/ICovCisJCQkJCW4gPSAoTm9kZSAqKSBtYWtlTnVsbENv bnN0KGdwci0+dHlwZUlkLCAtMSwgSW52YWxpZE9pZCk7CisJCQkJfQorCQkJfQorCisJCX0KKwor CQlpZiAoIW4pCisJCQllbG9nKEVSUk9SLCAicHJvcGVydHkgXCIlc1wiIG9mIGVsZW1lbnQgdmFy aWFibGUgXCIlc1wiIG5vdCBmb3VuZCIsCisJCQkJIGdldF9wcm9wZ3JhcGhfcHJvcGVydHlfbmFt ZShncHItPnByb3BpZCksIGZvdW5kX21hcHBpbmctPnBhcmVudF9nZXAtPnZhcmlhYmxlKTsKKwor CQlyZXR1cm4gbjsKKwl9CisKKwlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX211dGF0b3Iobm9kZSwg cmVwbGFjZV9wcm9wZXJ0eV9yZWZzX211dGF0b3IsIGNvbnRleHQpOworfQorCitzdGF0aWMgTm9k ZSAqCityZXBsYWNlX3Byb3BlcnR5X3JlZnMoT2lkIHByb3BncmFwaGlkLCBOb2RlICpub2RlLCBj b25zdCBMaXN0ICptYXBwaW5ncykKK3sKKwlzdHJ1Y3QgcmVwbGFjZV9wcm9wZXJ0eV9yZWZzX2Nv bnRleHQgY29udGV4dDsKKworCWNvbnRleHQubWFwcGluZ3MgPSBtYXBwaW5nczsKKwljb250ZXh0 LnByb3BncmFwaGlkID0gcHJvcGdyYXBoaWQ7CisKKwlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX211 dGF0b3Iobm9kZSwgcmVwbGFjZV9wcm9wZXJ0eV9yZWZzX211dGF0b3IsICZjb250ZXh0KTsKK30K KworLyoKKyAqIEJ1aWxkIGpvaW4gcXVhbGlmaWNhdGlvbiBleHByZXNzaW9ucyBiZXR3ZWVuIGVk Z2UgYW5kIHZlcnRleCB0YWJsZXMuCisgKi8KK3N0YXRpYyBMaXN0ICoKK2J1aWxkX2VkZ2VfdmVy dGV4X2xpbmtfcXVhbHMoSGVhcFR1cGxlIGVkZ2V0dXAsIGludCBlZGdlcnRpLCBpbnQgcmVmcnRp LCBBdHRyTnVtYmVyIGNhdGFsb2dfa2V5X2F0dG51bSwgQXR0ck51bWJlciBjYXRhbG9nX3JlZl9h dHRudW0pCit7CisJTGlzdAkgICAqcXVhbHMgPSBOSUw7CisJRm9ybV9wZ19wcm9wZ3JhcGhfZWxl bWVudCBwZ2Vmb3JtOworCURhdHVtCQlkYXR1bTsKKwlEYXR1bQkgICAqZDEsCisJCQkgICAqZDI7 CisJaW50CQkJbjEsCisJCQkJbjI7CisKKwlwZ2Vmb3JtID0gKEZvcm1fcGdfcHJvcGdyYXBoX2Vs ZW1lbnQpIEdFVFNUUlVDVChlZGdldHVwKTsKKworCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90 TnVsbChQUk9QR1JBUEhFTE9JRCwgZWRnZXR1cCwgY2F0YWxvZ19rZXlfYXR0bnVtKTsKKwlkZWNv bnN0cnVjdF9hcnJheV9idWlsdGluKERhdHVtR2V0QXJyYXlUeXBlUChkYXR1bSksIElOVDJPSUQs ICZkMSwgTlVMTCwgJm4xKTsKKworCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChQUk9Q R1JBUEhFTE9JRCwgZWRnZXR1cCwgY2F0YWxvZ19yZWZfYXR0bnVtKTsKKwlkZWNvbnN0cnVjdF9h cnJheV9idWlsdGluKERhdHVtR2V0QXJyYXlUeXBlUChkYXR1bSksIElOVDJPSUQsICZkMiwgTlVM TCwgJm4yKTsKKworCWlmIChuMSAhPSBuMikKKwkJZWxvZyhFUlJPUiwgImFycmF5IHNpemUga2V5 ICglZCkgdnMgcmVmICglZCkgbWlzbWF0Y2ggZm9yIGVsZW1lbnQgSUQgJXUiLCBjYXRhbG9nX2tl eV9hdHRudW0sIGNhdGFsb2dfcmVmX2F0dG51bSwgcGdlZm9ybS0+b2lkKTsKKworCWZvciAoaW50 IGkgPSAwOyBpIDwgbjE7IGkrKykKKwl7CisJCUF0dHJOdW1iZXIJa2V5YXR0biA9IERhdHVtR2V0 SW50MTYoZDFbaV0pOworCQlBdHRyTnVtYmVyCXJlZmF0dG4gPSBEYXR1bUdldEludDE2KGQyW2ld KTsKKwkJT2lkCQkJYXR0dHlwaWQ7CisJCVR5cGVDYWNoZUVudHJ5ICp0eXBlbnRyeTsKKwkJT3BF eHByCSAgICpvcDsKKworCQkvKgorCQkgKiBUT0RPOiBBc3N1bWVzIHR5cGVzIHRoZSBzYW1lIG9u IGJvdGggc2lkZXM7IG5vIGNvbGxhdGlvbnMgeWV0LiBTb21lCisJCSAqIG9mIHRoaXMgY291bGQg cHJvYmFibHkgYmUgc2hhcmVkIHdpdGggZm9yZWlnbiBrZXkgdHJpZ2dlcnMuCisJCSAqLworCQlh dHR0eXBpZCA9IGdldF9hdHR0eXBlKHBnZWZvcm0tPnBnZXJlbGlkLCBrZXlhdHRuKTsKKwkJdHlw ZW50cnkgPSBsb29rdXBfdHlwZV9jYWNoZShhdHR0eXBpZCwgVFlQRUNBQ0hFX0VRX09QUik7CisK KwkJb3AgPSBtYWtlTm9kZShPcEV4cHIpOworCQlvcC0+bG9jYXRpb24gPSAtMTsKKwkJb3AtPm9w bm8gPSB0eXBlbnRyeS0+ZXFfb3ByOworCQlvcC0+b3ByZXN1bHR0eXBlID0gQk9PTE9JRDsKKwkJ b3AtPmFyZ3MgPSBsaXN0X21ha2UyKG1ha2VWYXIoZWRnZXJ0aSwga2V5YXR0biwgYXR0dHlwaWQs IC0xLCAwLCAwKSwKKwkJCQkJCQkgIG1ha2VWYXIocmVmcnRpLCByZWZhdHRuLCBhdHR0eXBpZCwg LTEsIDAsIDApKTsKKwkJcXVhbHMgPSBsYXBwZW5kKHF1YWxzLCBvcCk7CisJfQorCisJcmV0dXJu IHF1YWxzOworfQorCisvKgorICogQ2hlY2sgaWYgdGhlIGdpdmVuIHByb3BlcnR5IGlzIGFzc29j aWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gbGFiZWwuCisgKgorICogQSBsYWJlbCBwcm9qZWN0cyB0aGUg c2FtZSBzZXQgb2YgcHJvcGVydGllcyB0aHJvdWdoIGV2ZXJ5IGVsZW1lbnQgaXQgaXMKKyAqIGFz c29jaWF0ZWQgd2l0aC4gRmluZCBhbnkgb2YgdGhlIGVsZW1lbnRzIGFuZCByZXR1cm4gdHJ1ZSBp ZiB0aGF0IGVsZW1lbnQgaXMKKyAqIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gcHJvcGVydHku IEZhbHNlIG90aGVyd2lzZS4KKyAqLworc3RhdGljIGJvb2wKK2lzX3Byb3BlcnR5X2Fzc29jaWF0 ZWRfd2l0aF9sYWJlbChPaWQgbGFiZWxvaWQsIE9pZCBwcm9wb2lkKQoreworCVJlbGF0aW9uCXJl bDsKKwlTeXNTY2FuRGVzYyBzY2FuOworCVNjYW5LZXlEYXRhIGtleVsxXTsKKwlIZWFwVHVwbGUJ dHVwOworCWJvb2wJCWFzc29jaWF0ZWQgPSBmYWxzZTsKKworCXJlbCA9IHRhYmxlX29wZW4oUHJv cGdyYXBoRWxlbWVudExhYmVsUmVsYXRpb25JZCwgUm93U2hhcmVMb2NrKTsKKwlTY2FuS2V5SW5p dCgma2V5WzBdLAorCQkJCUFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWxfcGdlbGxhYmVs aWQsCisJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLAorCQkJCUZfT0lERVEsIE9iamVjdElkR2V0 RGF0dW0obGFiZWxvaWQpKTsKKwlzY2FuID0gc3lzdGFibGVfYmVnaW5zY2FuKHJlbCwgUHJvcGdy YXBoRWxlbWVudExhYmVsTGFiZWxJbmRleElkLAorCQkJCQkJCSAgdHJ1ZSwgTlVMTCwgMSwga2V5 KTsKKworCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHR1cCA9IHN5c3RhYmxlX2dldG5leHQoc2Nhbikp KQorCXsKKwkJRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbCBlbGVfbGFiZWwgPSAoRm9y bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbCkgR0VUU1RSVUNUKHR1cCk7CisKKwkJYXNzb2Np YXRlZCA9IFNlYXJjaFN5c0NhY2hlRXhpc3RzMihQUk9QR1JBUEhMQUJFTFBST1AsCisJCQkJCQkJ CQkJICAgT2JqZWN0SWRHZXREYXR1bShlbGVfbGFiZWwtPm9pZCksIE9iamVjdElkR2V0RGF0dW0o cHJvcG9pZCkpOworCX0KKwlzeXN0YWJsZV9lbmRzY2FuKHNjYW4pOworCXRhYmxlX2Nsb3NlKHJl bCwgUm93U2hhcmVMb2NrKTsKKworCXJldHVybiBhc3NvY2lhdGVkOworfQorCisvKgorICogSWYg Z2l2ZW4gZWxlbWVudCBoYXMgdGhlIGdpdmVuIHByb3BlcnR5IGFzc29jaWF0ZWQgd2l0aCBpdCwg dGhyb3VnaCBhbnkgb2YKKyAqIHRoZSBhc3NvY2lhdGVkIGxhYmVscywgcmV0dXJuIHZhbHVlIGV4 cHJlc3Npb24gb2YgdGhlIHByb3BlcnR5LiBPdGhlcndpc2UKKyAqIE5VTEwuCisgKi8KK3N0YXRp YyBOb2RlICoKK2dldF9lbGVtZW50X3Byb3BlcnR5X2V4cHIoT2lkIGVsZW1vaWQsIE9pZCBwcm9w b2lkLCBpbnQgcnRpbmRleCkKK3sKKwlSZWxhdGlvbglyZWw7CisJU3lzU2NhbkRlc2Mgc2NhbjsK KwlTY2FuS2V5RGF0YSBrZXlbMV07CisJSGVhcFR1cGxlCWxhYmVsdHVwOworCU5vZGUJICAgKm4g PSBOVUxMOworCisJcmVsID0gdGFibGVfb3BlbihQcm9wZ3JhcGhFbGVtZW50TGFiZWxSZWxhdGlv bklkLCBSb3dTaGFyZUxvY2spOworCVNjYW5LZXlJbml0KCZrZXlbMF0sCisJCQkJQW51bV9wZ19w cm9wZ3JhcGhfZWxlbWVudF9sYWJlbF9wZ2VsZWxpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1i ZXIsCisJCQkJRl9PSURFUSwgT2JqZWN0SWRHZXREYXR1bShlbGVtb2lkKSk7CisJc2NhbiA9IHN5 c3RhYmxlX2JlZ2luc2NhbihyZWwsIFByb3BncmFwaEVsZW1lbnRMYWJlbEVsZW1lbnRMYWJlbElu ZGV4SWQsCisJCQkJCQkJICB0cnVlLCBOVUxMLCAxLCBrZXkpOworCisJd2hpbGUgKEhlYXBUdXBs ZUlzVmFsaWQobGFiZWx0dXAgPSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4pKSkKKwl7CisJCUZvcm1f cGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwgZWxlX2xhYmVsID0gKEZvcm1fcGdfcHJvcGdyYXBo X2VsZW1lbnRfbGFiZWwpIEdFVFNUUlVDVChsYWJlbHR1cCk7CisKKwkJSGVhcFR1cGxlCXByb3B0 dXAgPSBTZWFyY2hTeXNDYWNoZTIoUFJPUEdSQVBITEFCRUxQUk9QLAorCQkJCQkJCQkJCQkgIE9i amVjdElkR2V0RGF0dW0oZWxlX2xhYmVsLT5vaWQpLCBPYmplY3RJZEdldERhdHVtKHByb3BvaWQp KTsKKworCQlpZiAoIXByb3B0dXApCisJCQljb250aW51ZTsKKwkJbiA9IHN0cmluZ1RvTm9kZShU ZXh0RGF0dW1HZXRDU3RyaW5nKFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoUFJPUEdSQVBITEFCRUxQ Uk9QLAorCQkJCQkJCQkJCQkJCQkJCQlwcm9wdHVwLCBBbnVtX3BnX3Byb3BncmFwaF9sYWJlbF9w cm9wZXJ0eV9wbHBleHByKSkpOworCQlDaGFuZ2VWYXJOb2RlcyhuLCAxLCBydGluZGV4LCAwKTsK KworCQlSZWxlYXNlU3lzQ2FjaGUocHJvcHR1cCk7CisJCWJyZWFrOworCX0KKwlzeXN0YWJsZV9l bmRzY2FuKHNjYW4pOworCXRhYmxlX2Nsb3NlKHJlbCwgUm93U2hhcmVMb2NrKTsKKworCXJldHVy biBuOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5j IGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jCmluZGV4IGFiMmUyY2Q2NDc2 Li5hMmZkNjQ4MzAzMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFu ZGxlci5jCisrKyBiL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuYwpAQCAtMzYs NiArMzYsNyBAQAogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9yZWxhdGlvbi5oIgogI2luY2x1ZGUg InBhcnNlci9wYXJzZXRyZWUuaCIKICNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVEZWZpbmUuaCIK KyNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmgiCiAjaW5jbHVkZSAicmV3cml0 ZS9yZXdyaXRlSGFuZGxlci5oIgogI2luY2x1ZGUgInJld3JpdGUvcmV3cml0ZU1hbmlwLmgiCiAj aW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlU2VhcmNoQ3ljbGUuaCIKQEAgLTIwNDEsNiArMjA0Miwx NiBAQCBmaXJlUklScnVsZXMoUXVlcnkgKnBhcnNldHJlZSwgTGlzdCAqYWN0aXZlUklScykKIAog CQlydGUgPSBydF9mZXRjaChydF9pbmRleCwgcGFyc2V0cmVlLT5ydGFibGUpOwogCisJCS8qCisJ CSAqIENvbnZlcnQgR1JBUEhfVEFCTEUgY2xhdXNlIGludG8gYSBzdWJxdWVyeSB1c2luZyByZWxh dGlvbmFsCisJCSAqIG9wZXJhdG9ycy4gIChUaGlzIHdpbGwgY2hhbmdlIHRoZSBydGVraW5kIHRv IHN1YnF1ZXJ5LCBzbyBpdCBtdXN0CisJCSAqIGJlIGRvbmUgYmVmb3JlIHRoZSBzdWJxdWVyeSBo YW5kbGluZyBiZWxvdy4pCisJCSAqLworCQlpZiAocnRlLT5ydGVraW5kID09IFJURV9HUkFQSF9U QUJMRSkKKwkJeworCQkJcGFyc2V0cmVlID0gcmV3cml0ZUdyYXBoVGFibGUocGFyc2V0cmVlLCBy dF9pbmRleCk7CisJCX0KKwogCQkvKgogCQkgKiBBIHN1YnF1ZXJ5IFJURSBjYW4ndCBoYXZlIGFz c29jaWF0ZWQgcnVsZXMsIHNvIHRoZXJlJ3Mgbm90aGluZyB0bwogCQkgKiBkbyB0byB0aGlzIGxl dmVsIG9mIHRoZSBxdWVyeSwgYnV0IHdlIG11c3QgcmVjdXJzZSBpbnRvIHRoZQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHku YwppbmRleCBjMmVkODIxNGVmNi4uYmNjZGI5MTEwMDcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3Rjb3AvdXRpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC00NCw2 ICs0NCw3IEBACiAjaW5jbHVkZSAiY29tbWFuZHMvcG9ydGFsY21kcy5oIgogI2luY2x1ZGUgImNv bW1hbmRzL3ByZXBhcmUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9wcm9jbGFuZy5oIgorI2luY2x1 ZGUgImNvbW1hbmRzL3Byb3BncmFwaGNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9wdWJsaWNh dGlvbmNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zY2hlbWFjbWRzLmgiCiAjaW5jbHVkZSAi Y29tbWFuZHMvc2VjbGFiZWwuaCIKQEAgLTE0OCw2ICsxNDksNyBAQCBDbGFzc2lmeVV0aWxpdHlD b21tYW5kQXNSZWFkT25seShOb2RlICpwYXJzZXRyZWUpCiAJCWNhc2UgVF9BbHRlck9wZXJhdG9y U3RtdDoKIAkJY2FzZSBUX0FsdGVyT3duZXJTdG10OgogCQljYXNlIFRfQWx0ZXJQb2xpY3lTdG10 OgorCQljYXNlIFRfQWx0ZXJQcm9wR3JhcGhTdG10OgogCQljYXNlIFRfQWx0ZXJQdWJsaWNhdGlv blN0bXQ6CiAJCWNhc2UgVF9BbHRlclJvbGVTZXRTdG10OgogCQljYXNlIFRfQWx0ZXJSb2xlU3Rt dDoKQEAgLTE3OCw2ICsxODAsNyBAQCBDbGFzc2lmeVV0aWxpdHlDb21tYW5kQXNSZWFkT25seShO b2RlICpwYXJzZXRyZWUpCiAJCWNhc2UgVF9DcmVhdGVPcEZhbWlseVN0bXQ6CiAJCWNhc2UgVF9D cmVhdGVQTGFuZ1N0bXQ6CiAJCWNhc2UgVF9DcmVhdGVQb2xpY3lTdG10OgorCQljYXNlIFRfQ3Jl YXRlUHJvcEdyYXBoU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVB1YmxpY2F0aW9uU3RtdDoKIAkJY2Fz ZSBUX0NyZWF0ZVJhbmdlU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVJvbGVTdG10OgpAQCAtMTczOSw2 ICsxNzQyLDE0IEBAIFByb2Nlc3NVdGlsaXR5U2xvdyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJ Y29tbWFuZENvbGxlY3RlZCA9IHRydWU7CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgVF9DcmVhdGVQ cm9wR3JhcGhTdG10OgorCQkJCWFkZHJlc3MgPSBDcmVhdGVQcm9wR3JhcGgocHN0YXRlLCAoQ3Jl YXRlUHJvcEdyYXBoU3RtdCAqKSBwYXJzZXRyZWUpOworCQkJCWJyZWFrOworCisJCQljYXNlIFRf QWx0ZXJQcm9wR3JhcGhTdG10OgorCQkJCWFkZHJlc3MgPSBBbHRlclByb3BHcmFwaChwc3RhdGUs IChBbHRlclByb3BHcmFwaFN0bXQgKikgcGFyc2V0cmVlKTsKKwkJCQlicmVhazsKKwogCQkJY2Fz ZSBUX0NyZWF0ZVRyYW5zZm9ybVN0bXQ6CiAJCQkJYWRkcmVzcyA9IENyZWF0ZVRyYW5zZm9ybSgo Q3JlYXRlVHJhbnNmb3JtU3RtdCAqKSBwYXJzZXRyZWUpOwogCQkJCWJyZWFrOwpAQCAtMjAwNyw2 ICsyMDE4LDcgQEAgRXhlY0Ryb3BTdG10KERyb3BTdG10ICpzdG10LCBib29sIGlzVG9wTGV2ZWwp CiAJCWNhc2UgT0JKRUNUX1ZJRVc6CiAJCWNhc2UgT0JKRUNUX01BVFZJRVc6CiAJCWNhc2UgT0JK RUNUX0ZPUkVJR05fVEFCTEU6CisJCWNhc2UgT0JKRUNUX1BST1BHUkFQSDoKIAkJCVJlbW92ZVJl bGF0aW9ucyhzdG10KTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgpAQCAtMjI4Myw2ICsyMjk1LDkg QEAgQWx0ZXJPYmplY3RUeXBlQ29tbWFuZFRhZyhPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2Ug T0JKRUNUX1BST0NFRFVSRToKIAkJCXRhZyA9IENNRFRBR19BTFRFUl9QUk9DRURVUkU7CiAJCQli cmVhazsKKwkJY2FzZSBPQkpFQ1RfUFJPUEdSQVBIOgorCQkJdGFnID0gQ01EVEFHX0FMVEVSX1BS T1BFUlRZX0dSQVBIOworCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNUX1JPTEU6CiAJCQl0YWcgPSBD TURUQUdfQUxURVJfUk9MRTsKIAkJCWJyZWFrOwpAQCAtMjU1OSw2ICsyNTc0LDkgQEAgQ3JlYXRl Q29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQkJY2FzZSBPQkpFQ1RfSU5ERVg6CiAJCQkJ CXRhZyA9IENNRFRBR19EUk9QX0lOREVYOwogCQkJCQlicmVhazsKKwkJCQljYXNlIE9CSkVDVF9Q Uk9QR1JBUEg6CisJCQkJCXRhZyA9IENNRFRBR19EUk9QX1BST1BFUlRZX0dSQVBIOworCQkJCQli cmVhazsKIAkJCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJCQl0YWcgPSBDTURUQUdfRFJPUF9UWVBF OwogCQkJCQlicmVhazsKQEAgLTI5NDAsNiArMjk1OCwxNCBAQCBDcmVhdGVDb21tYW5kVGFnKE5v ZGUgKnBhcnNldHJlZSkKIAkJCX0KIAkJCWJyZWFrOwogCisJCWNhc2UgVF9DcmVhdGVQcm9wR3Jh cGhTdG10OgorCQkJdGFnID0gQ01EVEFHX0NSRUFURV9QUk9QRVJUWV9HUkFQSDsKKwkJCWJyZWFr OworCisJCWNhc2UgVF9BbHRlclByb3BHcmFwaFN0bXQ6CisJCQl0YWcgPSBDTURUQUdfQUxURVJf UFJPUEVSVFlfR1JBUEg7CisJCQlicmVhazsKKwogCQljYXNlIFRfQ3JlYXRlVHJhbnNmb3JtU3Rt dDoKIAkJCXRhZyA9IENNRFRBR19DUkVBVEVfVFJBTlNGT1JNOwogCQkJYnJlYWs7CkBAIC0zNjM3 LDYgKzM2NjMsMTQgQEAgR2V0Q29tbWFuZExvZ0xldmVsKE5vZGUgKnBhcnNldHJlZSkKIAkJCWxl diA9IExPR1NUTVRfRERMOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX0NyZWF0ZVByb3BHcmFwaFN0 bXQ6CisJCQlsZXYgPSBMT0dTVE1UX0RETDsKKwkJCWJyZWFrOworCisJCWNhc2UgVF9BbHRlclBy b3BHcmFwaFN0bXQ6CisJCQlsZXYgPSBMT0dTVE1UX0RETDsKKwkJCWJyZWFrOworCiAJCWNhc2Ug VF9DcmVhdGVUcmFuc2Zvcm1TdG10OgogCQkJbGV2ID0gTE9HU1RNVF9EREw7CiAJCQlicmVhazsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCBiZTFmMWY1MGI3OC4uNTBlY2IzMjQwZWUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTM0LDYgKzM0LDExIEBACiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19vcGVyYXRvci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcGFydGl0aW9u ZWRfdGFibGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKKyNpbmNsdWRlICJjYXRh bG9nL3BnX3Byb3BncmFwaF9lbGVtZW50LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3Jh cGhfZWxlbWVudF9sYWJlbC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX2xhYmVs LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkuaCIKKyNp bmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9wcm9wZXJ0eS5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfc3RhdGlzdGljX2V4dC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHJpZ2dlci5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgpAQCAtMzU5LDYgKzM2NCw5IEBAIHN0YXRpYyBj aGFyICpwZ19nZXRfaW5kZXhkZWZfd29ya2VyKE9pZCBpbmRleHJlbGlkLCBpbnQgY29sbm8sCiAJ CQkJCQkJCQlib29sIGF0dHJzT25seSwgYm9vbCBrZXlzT25seSwKIAkJCQkJCQkJCWJvb2wgc2hv d1RibFNwYywgYm9vbCBpbmhlcml0cywKIAkJCQkJCQkJCWludCBwcmV0dHlGbGFncywgYm9vbCBt aXNzaW5nX29rKTsKK3N0YXRpYyB2b2lkIG1ha2VfcHJvcGdyYXBoZGVmX2VsZW1lbnRzKFN0cmlu Z0luZm8gYnVmLCBPaWQgcGdyZWxpZCwgY2hhciBwZ2VraW5kKTsKK3N0YXRpYyB2b2lkIG1ha2Vf cHJvcGdyYXBoZGVmX2xhYmVscyhTdHJpbmdJbmZvIGJ1ZiwgT2lkIGVsaWQsIGNvbnN0IGNoYXIg KmVsYWxpYXMsIE9pZCBlbHJlbGlkKTsKK3N0YXRpYyB2b2lkIG1ha2VfcHJvcGdyYXBoZGVmX3By b3BlcnRpZXMoU3RyaW5nSW5mbyBidWYsIE9pZCBlbGxhYmVsaWQsIE9pZCBlbHJlbGlkKTsKIHN0 YXRpYyBjaGFyICpwZ19nZXRfc3RhdGlzdGljc29ial93b3JrZXIoT2lkIHN0YXRleHRpZCwgYm9v bCBjb2x1bW5zX29ubHksCiAJCQkJCQkJCQkJIGJvb2wgbWlzc2luZ19vayk7CiBzdGF0aWMgY2hh ciAqcGdfZ2V0X3BhcnRrZXlkZWZfd29ya2VyKE9pZCByZWxpZCwgaW50IHByZXR0eUZsYWdzLApA QCAtMTU5NCw2ICsxNjAyLDMzMSBAQCBwZ19nZXRfcXVlcnlkZWYoUXVlcnkgKnF1ZXJ5LCBib29s IHByZXR0eSkKIAlyZXR1cm4gYnVmLmRhdGE7CiB9CiAKKy8qCisgKiBwZ19nZXRfcHJvcGdyYXBo ZGVmIC0gZ2V0IHRoZSBkZWZpbml0aW9uIG9mIGEgcHJvcGVydHkgZ3JhcGgKKyAqLworRGF0dW0K K3BnX2dldF9wcm9wZ3JhcGhkZWYoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlPaWQJCQlwZ3JlbGlk ID0gUEdfR0VUQVJHX09JRCgwKTsKKwlTdHJpbmdJbmZvRGF0YSBidWY7CisJSGVhcFR1cGxlCWNs YXNzdHVwOworCUZvcm1fcGdfY2xhc3MgY2xhc3Nmb3JtOworCWNoYXIJICAgKm5hbWU7CisJY2hh cgkgICAqbnNwOworCisJaW5pdFN0cmluZ0luZm8oJmJ1Zik7CisKKwljbGFzc3R1cCA9IFNlYXJj aFN5c0NhY2hlMShSRUxPSUQsIE9iamVjdElkR2V0RGF0dW0ocGdyZWxpZCkpOworCWlmICghSGVh cFR1cGxlSXNWYWxpZChjbGFzc3R1cCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwljbGFzc2Zv cm0gPSAoRm9ybV9wZ19jbGFzcykgR0VUU1RSVUNUKGNsYXNzdHVwKTsKKwluYW1lID0gTmFtZVN0 cihjbGFzc2Zvcm0tPnJlbG5hbWUpOworCisJaWYgKGNsYXNzZm9ybS0+cmVsa2luZCAhPSBSRUxL SU5EX1BST1BHUkFQSCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1dS T05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJybXNnKCJcIiVzXCIgaXMgbm90IGEgcHJvcGVydHkg Z3JhcGgiLCBuYW1lKSkpOworCisJbnNwID0gZ2V0X25hbWVzcGFjZV9uYW1lKGNsYXNzZm9ybS0+ cmVsbmFtZXNwYWNlKTsKKworCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZiwgIkNSRUFURSBQUk9QRVJU WSBHUkFQSCAlcyIsCisJCQkJCSBxdW90ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihuc3AsIG5hbWUp KTsKKworCVJlbGVhc2VTeXNDYWNoZShjbGFzc3R1cCk7CisKKwltYWtlX3Byb3BncmFwaGRlZl9l bGVtZW50cygmYnVmLCBwZ3JlbGlkLCBQR0VLSU5EX1ZFUlRFWCk7CisJbWFrZV9wcm9wZ3JhcGhk ZWZfZWxlbWVudHMoJmJ1ZiwgcGdyZWxpZCwgUEdFS0lORF9FREdFKTsKKworCVBHX1JFVFVSTl9U RVhUX1Aoc3RyaW5nX3RvX3RleHQoYnVmLmRhdGEpKTsKK30KKworLyoKKyAqIEdlbmVyYXRlcyBh IFZFUlRFWCBUQUJMRVMgKC4uLikgb3IgRURHRSBUQUJMRVMgKC4uLikgY2xhdXNlLiAgUGFzcyBp biB0aGUKKyAqIHByb3BlcnR5IGdyYXBoIHJlbGF0aW9uIE9JRCBhbmQgdGhlIGVsZW1lbnQga2lu ZCAodmVydGV4IG9yIGVkZ2UpLiAgUmVzdWx0CisgKiBpcyBhcHBlbmRlZCB0byBidWYuCisgKi8K K3N0YXRpYyB2b2lkCittYWtlX3Byb3BncmFwaGRlZl9lbGVtZW50cyhTdHJpbmdJbmZvIGJ1Ziwg T2lkIHBncmVsaWQsIGNoYXIgcGdla2luZCkKK3sKKwlSZWxhdGlvbglwZ2VyZWw7CisJU2Nhbktl eURhdGEgc2NhbmtleVsxXTsKKwlTeXNTY2FuRGVzYyBzY2FuOworCWJvb2wJCWZpcnN0OworCUhl YXBUdXBsZQl0dXA7CisKKwlwZ2VyZWwgPSB0YWJsZV9vcGVuKFByb3BncmFwaEVsZW1lbnRSZWxh dGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOworCisJU2NhbktleUluaXQoJnNjYW5rZXlbMF0sCisJ CQkJQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VwZ2lkLAorCQkJCUJURXF1YWxTdHJhdGVn eU51bWJlciwgRl9PSURFUSwKKwkJCQlPYmplY3RJZEdldERhdHVtKHBncmVsaWQpKTsKKworCXNj YW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4ocGdlcmVsLCBQcm9wZ3JhcGhFbGVtZW50QWxpYXNJbmRl eElkLCB0cnVlLCBOVUxMLCAxLCBzY2Fua2V5KTsKKworCWZpcnN0ID0gdHJ1ZTsKKwl3aGlsZSAo KHR1cCA9IHN5c3RhYmxlX2dldG5leHQoc2NhbikpKQorCXsKKwkJRm9ybV9wZ19wcm9wZ3JhcGhf ZWxlbWVudCBwZ2Vmb3JtID0gKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQpIEdFVFNUUlVDVCh0 dXApOworCQljaGFyCSAgICpyZWxuYW1lOworCQlEYXR1bQkJZGF0dW07CisJCWJvb2wJCWlzbnVs bDsKKworCQlpZiAocGdlZm9ybS0+cGdla2luZCAhPSBwZ2VraW5kKQorCQkJY29udGludWU7CisK KwkJaWYgKGZpcnN0KQorCQl7CisJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIlxuICAgICVzIFRB QkxFUyAoXG4iLCBwZ2VraW5kID09IFBHRUtJTkRfVkVSVEVYID8gIlZFUlRFWCIgOiAiRURHRSIp OworCQkJZmlyc3QgPSBmYWxzZTsKKwkJfQorCQllbHNlCisJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1 ZiwgIixcbiIpOworCisJCXJlbG5hbWUgPSBnZXRfcmVsX25hbWUocGdlZm9ybS0+cGdlcmVsaWQp OworCQlpZiAocmVsbmFtZSAmJiBzdHJjbXAocmVsbmFtZSwgTmFtZVN0cihwZ2Vmb3JtLT5wZ2Vh bGlhcykpID09IDApCisJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiAgICAgICAgJXMiLAorCQkJ CQkJCSBnZW5lcmF0ZV9yZWxhdGlvbl9uYW1lKHBnZWZvcm0tPnBnZXJlbGlkLCBOSUwpKTsKKwkJ ZWxzZQorCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIgICAgICAgICVzIEFTICVzIiwKKwkJCQkJ CQkgZ2VuZXJhdGVfcmVsYXRpb25fbmFtZShwZ2Vmb3JtLT5wZ2VyZWxpZCwgTklMKSwKKwkJCQkJ CQkgTmFtZVN0cihwZ2Vmb3JtLT5wZ2VhbGlhcykpOworCisJCWRhdHVtID0gaGVhcF9nZXRhdHRy KHR1cCwgQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VrZXksIFJlbGF0aW9uR2V0RGVzY3Io cGdlcmVsKSwgJmlzbnVsbCk7CisJCWlmICghaXNudWxsKQorCQl7CisJCQlhcHBlbmRTdHJpbmdJ bmZvU3RyaW5nKGJ1ZiwgIiBLRVkgKCIpOworCQkJZGVjb21waWxlX2NvbHVtbl9pbmRleF9hcnJh eShkYXR1bSwgcGdlZm9ybS0+cGdlcmVsaWQsIGZhbHNlLCBidWYpOworCQkJYXBwZW5kU3RyaW5n SW5mb1N0cmluZyhidWYsICIpIik7CisJCX0KKwkJZWxzZQorCQkJZWxvZyhFUlJPUiwgIm51bGwg cGdla2V5IGZvciBlbGVtZW50ICV1IiwgcGdlZm9ybS0+b2lkKTsKKworCQlpZiAocGdla2luZCA9 PSBQR0VLSU5EX0VER0UpCisJCXsKKwkJCURhdHVtCQlzcmNrZXk7CisJCQlEYXR1bQkJc3JjcmVm OworCQkJRGF0dW0JCWRlc3RrZXk7CisJCQlEYXR1bQkJZGVzdHJlZjsKKwkJCUhlYXBUdXBsZQl0 dXAyOworCQkJRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudCBwZ2Vmb3JtMjsKKworCQkJZGF0dW0g PSBoZWFwX2dldGF0dHIodHVwLCBBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXNyY2tleSwg UmVsYXRpb25HZXREZXNjcihwZ2VyZWwpLCAmaXNudWxsKTsKKwkJCXNyY2tleSA9IGlzbnVsbCA/ IDAgOiBkYXR1bTsKKwkJCWRhdHVtID0gaGVhcF9nZXRhdHRyKHR1cCwgQW51bV9wZ19wcm9wZ3Jh cGhfZWxlbWVudF9wZ2VzcmNyZWYsIFJlbGF0aW9uR2V0RGVzY3IocGdlcmVsKSwgJmlzbnVsbCk7 CisJCQlzcmNyZWYgPSBpc251bGwgPyAwIDogZGF0dW07CisJCQlkYXR1bSA9IGhlYXBfZ2V0YXR0 cih0dXAsIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlZGVzdGtleSwgUmVsYXRpb25HZXRE ZXNjcihwZ2VyZWwpLCAmaXNudWxsKTsKKwkJCWRlc3RrZXkgPSBpc251bGwgPyAwIDogZGF0dW07 CisJCQlkYXR1bSA9IGhlYXBfZ2V0YXR0cih0dXAsIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRf cGdlZGVzdHJlZiwgUmVsYXRpb25HZXREZXNjcihwZ2VyZWwpLCAmaXNudWxsKTsKKwkJCWRlc3Ry ZWYgPSBpc251bGwgPyAwIDogZGF0dW07CisKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVm LCAiIFNPVVJDRSIpOworCQkJdHVwMiA9IFNlYXJjaFN5c0NhY2hlMShQUk9QR1JBUEhFTE9JRCwg T2JqZWN0SWRHZXREYXR1bShwZ2Vmb3JtLT5wZ2VzcmN2ZXJ0ZXhpZCkpOworCQkJaWYgKCF0dXAy KQorCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBwcm9wZXJ0eSBncmFw aCBlbGVtZW50ICV1IiwgcGdlZm9ybS0+cGdlc3JjdmVydGV4aWQpOworCQkJcGdlZm9ybTIgPSAo Rm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudCkgR0VUU1RSVUNUKHR1cDIpOworCQkJaWYgKHNyY2tl eSkKKwkJCXsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIiBLRVkgKCIpOworCQkJ CWRlY29tcGlsZV9jb2x1bW5faW5kZXhfYXJyYXkoc3Jja2V5LCBwZ2Vmb3JtLT5wZ2VyZWxpZCwg ZmFsc2UsIGJ1Zik7CisJCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIpIFJFRkVSRU5DRVMgJXMg KCIsIE5hbWVTdHIocGdlZm9ybTItPnBnZWFsaWFzKSk7CisJCQkJZGVjb21waWxlX2NvbHVtbl9p bmRleF9hcnJheShzcmNyZWYsIHBnZWZvcm0yLT5wZ2VyZWxpZCwgZmFsc2UsIGJ1Zik7CisJCQkJ YXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIpIik7CisJCQl9CisJCQllbHNlCisJCQkJYXBw ZW5kU3RyaW5nSW5mbyhidWYsICIgJXMgIiwgTmFtZVN0cihwZ2Vmb3JtMi0+cGdlYWxpYXMpKTsK KwkJCVJlbGVhc2VTeXNDYWNoZSh0dXAyKTsKKworCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhi dWYsICIgREVTVElOQVRJT04iKTsKKwkJCXR1cDIgPSBTZWFyY2hTeXNDYWNoZTEoUFJPUEdSQVBI RUxPSUQsIE9iamVjdElkR2V0RGF0dW0ocGdlZm9ybS0+cGdlZGVzdHZlcnRleGlkKSk7CisJCQlp ZiAoIXR1cDIpCisJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHByb3Bl cnR5IGdyYXBoIGVsZW1lbnQgJXUiLCBwZ2Vmb3JtLT5wZ2VkZXN0dmVydGV4aWQpOworCQkJcGdl Zm9ybTIgPSAoRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudCkgR0VUU1RSVUNUKHR1cDIpOworCQkJ aWYgKGRlc3RrZXkpCisJCQl7CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIgS0VZ ICgiKTsKKwkJCQlkZWNvbXBpbGVfY29sdW1uX2luZGV4X2FycmF5KGRlc3RrZXksIHBnZWZvcm0t PnBnZXJlbGlkLCBmYWxzZSwgYnVmKTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIikgUkVG RVJFTkNFUyAlcyAoIiwgTmFtZVN0cihwZ2Vmb3JtMi0+cGdlYWxpYXMpKTsKKwkJCQlkZWNvbXBp bGVfY29sdW1uX2luZGV4X2FycmF5KGRlc3RyZWYsIHBnZWZvcm0yLT5wZ2VyZWxpZCwgZmFsc2Us IGJ1Zik7CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIpIik7CisJCQl9CisJCQll bHNlCisJCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIgJXMiLCBOYW1lU3RyKHBnZWZvcm0yLT5w Z2VhbGlhcykpOworCQkJUmVsZWFzZVN5c0NhY2hlKHR1cDIpOworCQl9CisKKwkJbWFrZV9wcm9w Z3JhcGhkZWZfbGFiZWxzKGJ1ZiwgcGdlZm9ybS0+b2lkLCBOYW1lU3RyKHBnZWZvcm0tPnBnZWFs aWFzKSwgcGdlZm9ybS0+cGdlcmVsaWQpOworCX0KKwlpZiAoIWZpcnN0KQorCQlhcHBlbmRTdHJp bmdJbmZvKGJ1ZiwgIlxuICAgICkiKTsKKworCXN5c3RhYmxlX2VuZHNjYW4oc2Nhbik7CisJdGFi bGVfY2xvc2UocGdlcmVsLCBBY2Nlc3NTaGFyZUxvY2spOworfQorCisvKgorICogR2VuZXJhdGVz IGxhYmVsIGFuZCBwcm9wZXJ0aWVzIGxpc3QuICBQYXNzIGluIHRoZSBlbGVtZW50IE9JRCwgdGhl IGVsZW1lbnQKKyAqIGFsaWFzLCBhbmQgdGhlIGdyYXBoIHJlbGF0aW9uIE9JRC4gIFJlc3VsdCBp cyBhcHBlbmQgdG8gYnVmLgorICovCitzdGF0aWMgdm9pZAorbWFrZV9wcm9wZ3JhcGhkZWZfbGFi ZWxzKFN0cmluZ0luZm8gYnVmLCBPaWQgZWxpZCwgY29uc3QgY2hhciAqZWxhbGlhcywgT2lkIGVs cmVsaWQpCit7CisJUmVsYXRpb24JcGdscmVsOworCVNjYW5LZXlEYXRhIHNjYW5rZXlbMV07CisJ U3lzU2NhbkRlc2Mgc2NhbjsKKwlpbnQJCQljb3VudDsKKwlIZWFwVHVwbGUJdHVwOworCisJcGds cmVsID0gdGFibGVfb3BlbihQcm9wZ3JhcGhFbGVtZW50TGFiZWxSZWxhdGlvbklkLCBBY2Nlc3NT aGFyZUxvY2spOworCisJU2NhbktleUluaXQoJnNjYW5rZXlbMF0sCisJCQkJQW51bV9wZ19wcm9w Z3JhcGhfZWxlbWVudF9sYWJlbF9wZ2VsZWxpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIs IEZfT0lERVEsCisJCQkJT2JqZWN0SWRHZXREYXR1bShlbGlkKSk7CisKKwljb3VudCA9IDA7CisJ c2NhbiA9IHN5c3RhYmxlX2JlZ2luc2NhbihwZ2xyZWwsIFByb3BncmFwaEVsZW1lbnRMYWJlbEVs ZW1lbnRMYWJlbEluZGV4SWQsIHRydWUsIE5VTEwsIDEsIHNjYW5rZXkpOworCXdoaWxlICgodHVw ID0gc3lzdGFibGVfZ2V0bmV4dChzY2FuKSkpCisJeworCQljb3VudCsrOworCX0KKwlzeXN0YWJs ZV9lbmRzY2FuKHNjYW4pOworCisJLyogWFhYIG5lZWQgdG8gcmUtaW5pdCBzY2FuIGtleSBmb3Ig c2Vjb25kIHNjYW4gKi8KKwlTY2FuS2V5SW5pdCgmc2NhbmtleVswXSwKKwkJCQlBbnVtX3BnX3By b3BncmFwaF9lbGVtZW50X2xhYmVsX3BnZWxlbGlkLAorCQkJCUJURXF1YWxTdHJhdGVneU51bWJl ciwgRl9PSURFUSwKKwkJCQlPYmplY3RJZEdldERhdHVtKGVsaWQpKTsKKworCXNjYW4gPSBzeXN0 YWJsZV9iZWdpbnNjYW4ocGdscmVsLCBQcm9wZ3JhcGhFbGVtZW50TGFiZWxFbGVtZW50TGFiZWxJ bmRleElkLCB0cnVlLCBOVUxMLCAxLCBzY2Fua2V5KTsKKworCXdoaWxlICgodHVwID0gc3lzdGFi bGVfZ2V0bmV4dChzY2FuKSkpCisJeworCQlGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVs IHBnZWxmb3JtID0gKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwpIEdFVFNUUlVDVCh0 dXApOworCQljb25zdCBjaGFyICpsYWJlbG5hbWU7CisKKwkJbGFiZWxuYW1lID0gZ2V0X3Byb3Bn cmFwaF9sYWJlbF9uYW1lKHBnZWxmb3JtLT5wZ2VsbGFiZWxpZCk7CisKKwkJaWYgKHN0cmNtcChs YWJlbG5hbWUsIGVsYWxpYXMpID09IDApCisJCXsKKwkJCS8qIElmIHRoZSBkZWZhdWx0IGxhYmVs IGlzIHRoZSBvbmx5IGxhYmVsLCBkb24ndCBwcmludCBhbnl0aGluZy4gKi8KKwkJCWlmIChjb3Vu dCAhPSAxKQorCQkJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiIERFRkFVTFQgTEFCRUwiKTsKKwkJ fQorCQllbHNlCisJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiBMQUJFTCAlcyIsIHF1b3RlX2lk ZW50aWZpZXIobGFiZWxuYW1lKSk7CisKKwkJbWFrZV9wcm9wZ3JhcGhkZWZfcHJvcGVydGllcyhi dWYsIHBnZWxmb3JtLT5vaWQsIGVscmVsaWQpOworCX0KKworCXN5c3RhYmxlX2VuZHNjYW4oc2Nh bik7CisKKwl0YWJsZV9jbG9zZShwZ2xyZWwsIEFjY2Vzc1NoYXJlTG9jayk7Cit9CisKKy8qCisg KiBIZWxwZXIgZnVuY3Rpb24gZm9yIG1ha2VfcHJvcGdyYXBoZGVmX3Byb3BlcnRpZXMoKTogU29y dCAocHJvcG5hbWUsIGV4cHIpCisgKiBwYWlycyBieSBuYW1lLgorICovCitzdGF0aWMgaW50Citw cm9wZGF0YV9ieV9uYW1lX2NtcChjb25zdCBMaXN0Q2VsbCAqYSwgY29uc3QgTGlzdENlbGwgKmIp Cit7CisJTGlzdAkgICAqbGEgPSBsZmlyc3Rfbm9kZShMaXN0LCBhKTsKKwlMaXN0CSAgICpsYiA9 IGxmaXJzdF9ub2RlKExpc3QsIGIpOworCWNoYXIJICAgKnBuYSA9IHN0clZhbChsaW5pdGlhbChs YSkpOworCWNoYXIJICAgKnBuYiA9IHN0clZhbChsaW5pdGlhbChsYikpOworCisJcmV0dXJuIHN0 cmNtcChwbmEsIHBuYik7Cit9CisKKy8qCisgKiBHZW5lcmF0ZXMgZWxlbWVudCB0YWJsZSBwcm9w ZXJ0aWVzIGNsYXVzZSAoUFJPUEVSVElFUyAoLi4uKSBvciBOTworICogUFJPUEVSVElFUykuICBQ YXNzIGluIGxhYmVsIE9ESSBhbmQgZWxlbWVudCB0YWJsZSBPSUQuICBSZXN1bHQgaXMgYXBwZW5k ZWQKKyAqIHRvIGJ1Zi4KKyAqLworc3RhdGljIHZvaWQKK21ha2VfcHJvcGdyYXBoZGVmX3Byb3Bl cnRpZXMoU3RyaW5nSW5mbyBidWYsIE9pZCBlbGxhYmVsaWQsIE9pZCBlbHJlbGlkKQoreworCVJl bGF0aW9uCXBscHJlbDsKKwlTY2FuS2V5RGF0YSBzY2Fua2V5WzFdOworCVN5c1NjYW5EZXNjIHNj YW47CisJSGVhcFR1cGxlCXR1cDsKKwlMaXN0CSAgICpvdXRsaXN0ID0gTklMOworCisJcGxwcmVs ID0gdGFibGVfb3BlbihQcm9wZ3JhcGhMYWJlbFByb3BlcnR5UmVsYXRpb25JZCwgQWNjZXNzU2hh cmVMb2NrKTsKKworCVNjYW5LZXlJbml0KCZzY2Fua2V5WzBdLAorCQkJCUFudW1fcGdfcHJvcGdy YXBoX2xhYmVsX3Byb3BlcnR5X3BscGVsbGFiZWxpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1i ZXIsIEZfT0lERVEsCisJCQkJT2JqZWN0SWRHZXREYXR1bShlbGxhYmVsaWQpKTsKKworCS8qCisJ ICogV2Ugd2FudCB0byBvdXRwdXQgdGhlIHByb3BlcnRpZXMgaW4gYSBkZXRlcm1pbmlzdGljIG9y ZGVyLiAgU28gd2UgZmlyc3QKKwkgKiByZWFkIGFsbCB0aGUgZGF0YSwgdGhlbiBzb3J0LCB0aGVu IHByaW50IGl0LgorCSAqLworCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4ocGxwcmVsLCBQcm9w Z3JhcGhMYWJlbFByb3BlcnR5TGFiZWxQcm9wSW5kZXhJZCwgdHJ1ZSwgTlVMTCwgMSwgc2Nhbmtl eSk7CisKKwl3aGlsZSAoKHR1cCA9IHN5c3RhYmxlX2dldG5leHQoc2NhbikpKQorCXsKKwkJRm9y bV9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkgcGxwZm9ybSA9IChGb3JtX3BnX3Byb3BncmFw aF9sYWJlbF9wcm9wZXJ0eSkgR0VUU1RSVUNUKHR1cCk7CisJCURhdHVtCQlleHByRGF0dW07CisJ CWJvb2wJCWlzbnVsbDsKKwkJY2hhcgkgICAqdG1wOworCQlOb2RlCSAgICpleHByOworCQljaGFy CSAgICpwcm9wbmFtZTsKKworCQlleHByRGF0dW0gPSBoZWFwX2dldGF0dHIodHVwLCBBbnVtX3Bn X3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eV9wbHBleHByLCBSZWxhdGlvbkdldERlc2NyKHBscHJl bCksICZpc251bGwpOworCQlBc3NlcnQoIWlzbnVsbCk7CisJCXRtcCA9IFRleHREYXR1bUdldENT dHJpbmcoZXhwckRhdHVtKTsKKwkJZXhwciA9IHN0cmluZ1RvTm9kZSh0bXApOworCQlwZnJlZSh0 bXApOworCisJCXByb3BuYW1lID0gZ2V0X3Byb3BncmFwaF9wcm9wZXJ0eV9uYW1lKHBscGZvcm0t PnBscHByb3BpZCk7CisKKwkJb3V0bGlzdCA9IGxhcHBlbmQob3V0bGlzdCwgbGlzdF9tYWtlMiht YWtlU3RyaW5nKHByb3BuYW1lKSwgZXhwcikpOworCX0KKworCXN5c3RhYmxlX2VuZHNjYW4oc2Nh bik7CisJdGFibGVfY2xvc2UocGxwcmVsLCBBY2Nlc3NTaGFyZUxvY2spOworCisJbGlzdF9zb3J0 KG91dGxpc3QsIHByb3BkYXRhX2J5X25hbWVfY21wKTsKKworCWlmIChvdXRsaXN0KQorCXsKKwkJ TGlzdAkgICAqY29udGV4dDsKKwkJTGlzdENlbGwgICAqbGM7CisJCWJvb2wJCWZpcnN0ID0gdHJ1 ZTsKKworCQljb250ZXh0ID0gZGVwYXJzZV9jb250ZXh0X2ZvcihnZXRfcmVsYXRpb25fbmFtZShl bHJlbGlkKSwgZWxyZWxpZCk7CisKKwkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIgUFJPUEVSVElF UyAoIik7CisKKwkJZm9yZWFjaChsYywgb3V0bGlzdCkKKwkJeworCQkJTGlzdAkgICAqZGF0YSA9 IGxmaXJzdF9ub2RlKExpc3QsIGxjKTsKKwkJCWNoYXIJICAgKnByb3BuYW1lID0gc3RyVmFsKGxp bml0aWFsKGRhdGEpKTsKKwkJCU5vZGUJICAgKmV4cHIgPSBsc2Vjb25kKGRhdGEpOworCisJCQlp ZiAoZmlyc3QpCisJCQkJZmlyc3QgPSBmYWxzZTsKKwkJCWVsc2UKKwkJCQlhcHBlbmRTdHJpbmdJ bmZvKGJ1ZiwgIiwgIik7CisKKwkJCWlmIChJc0EoZXhwciwgVmFyKSAmJiBzdHJjbXAocHJvcG5h bWUsIGdldF9hdHRuYW1lKGVscmVsaWQsIGNhc3ROb2RlKFZhciwgZXhwciktPnZhcmF0dG5vLCBm YWxzZSkpID09IDApCisJCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIlcyIsIHByb3BuYW1lKTsK KwkJCWVsc2UKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiVzIEFTICVzIiwKKwkJCQkJCQkJ IGRlcGFyc2VfZXhwcmVzc2lvbl9wcmV0dHkoZXhwciwgY29udGV4dCwgZmFsc2UsIGZhbHNlLCAw LCAwKSwKKwkJCQkJCQkJIHByb3BuYW1lKTsKKwkJfQorCisJCWFwcGVuZFN0cmluZ0luZm8oYnVm LCAiKSIpOworCX0KKwllbHNlCisJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiIE5PIFBST1BFUlRJ RVMiKTsKK30KKwogLyoKICAqIHBnX2dldF9zdGF0aXN0aWNzb2JqZGVmCiAgKgkJR2V0IHRoZSBk ZWZpbml0aW9uIG9mIGFuIGV4dGVuZGVkIHN0YXRpc3RpY3Mgb2JqZWN0CkBAIC03NDc4LDYgKzc4 MTEsMTcxIEBAIGdldF91dGlsaXR5X3F1ZXJ5X2RlZihRdWVyeSAqcXVlcnksIGRlcGFyc2VfY29u dGV4dCAqY29udGV4dCkKIAl9CiB9CiAKKworLyoKKyAqIFBhcnNlIGJhY2sgYSBncmFwaCBsYWJl bCBleHByZXNzaW9uCisgKi8KK3N0YXRpYyB2b2lkCitnZXRfZ3JhcGhfbGFiZWxfZXhwcihOb2Rl ICpsYWJlbF9leHByLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQpCit7CisJU3RyaW5nSW5mbwli dWYgPSBjb250ZXh0LT5idWY7CisKKwljaGVja19zdGFja19kZXB0aCgpOworCisJc3dpdGNoIChu b2RlVGFnKGxhYmVsX2V4cHIpKQorCXsKKwkJY2FzZSBUX0dyYXBoTGFiZWxSZWY6CisJCQl7CisJ CQkJR3JhcGhMYWJlbFJlZiAqbHJlZiA9IChHcmFwaExhYmVsUmVmICopIGxhYmVsX2V4cHI7CisK KwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgcXVvdGVfaWRlbnRpZmllcihnZXRfcHJv cGdyYXBoX2xhYmVsX25hbWUobHJlZi0+bGFiZWxpZCkpKTsKKwkJCQlicmVhazsKKwkJCX0KKwor CQljYXNlIFRfQm9vbEV4cHI6CisJCQl7CisJCQkJQm9vbEV4cHIgICAqYmUgPSAoQm9vbEV4cHIg KikgbGFiZWxfZXhwcjsKKwkJCQlMaXN0Q2VsbCAgICpsYzsKKwkJCQlib29sCQlmaXJzdCA9IHRy dWU7CisKKwkJCQlBc3NlcnQoYmUtPmJvb2xvcCA9PSBPUl9FWFBSKTsKKworCQkJCWZvcmVhY2go bGMsIGJlLT5hcmdzKQorCQkJCXsKKwkJCQkJaWYgKCFmaXJzdCkKKwkJCQkJeworCQkJCQkJaWYg KGJlLT5ib29sb3AgPT0gT1JfRVhQUikKKwkJCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1 ZiwgInwiKTsKKwkJCQkJfQorCQkJCQllbHNlCisJCQkJCQlmaXJzdCA9IGZhbHNlOworCQkJCQln ZXRfZ3JhcGhfbGFiZWxfZXhwcihsZmlyc3QobGMpLCBjb250ZXh0KTsKKwkJCQl9CisKKwkJCQli cmVhazsKKwkJCX0KKworCQlkZWZhdWx0OgorCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBu b2RlIHR5cGU6ICVkIiwgKGludCkgbm9kZVRhZyhsYWJlbF9leHByKSk7CisJCQlicmVhazsKKwl9 Cit9CisKKy8qCisgKiBQYXJzZSBiYWNrIGEgcGF0aCBwYXR0ZXJuIGV4cHJlc3Npb24KKyAqLwor c3RhdGljIHZvaWQKK2dldF9wYXRoX3BhdHRlcm5fZXhwcl9kZWYoTGlzdCAqcGF0aF9wYXR0ZXJu X2V4cHIsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkKK3sKKwlTdHJpbmdJbmZvCWJ1ZiA9IGNv bnRleHQtPmJ1ZjsKKwlMaXN0Q2VsbCAgICpsYzsKKworCWZvcmVhY2gobGMsIHBhdGhfcGF0dGVy bl9leHByKQorCXsKKwkJR3JhcGhFbGVtZW50UGF0dGVybiAqZ2VwID0gbGZpcnN0X25vZGUoR3Jh cGhFbGVtZW50UGF0dGVybiwgbGMpOworCQljb25zdCBjaGFyICpzZXAgPSAiIjsKKworCQlzd2l0 Y2ggKGdlcC0+a2luZCkKKwkJeworCQkJY2FzZSBWRVJURVhfUEFUVEVSTjoKKwkJCQlhcHBlbmRT dHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIigiKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgRURHRV9QQVRU RVJOX0xFRlQ6CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICI8LVsiKTsKKwkJCQli cmVhazsKKwkJCWNhc2UgRURHRV9QQVRURVJOX1JJR0hUOgorCQkJY2FzZSBFREdFX1BBVFRFUk5f QU5ZOgorCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiLVsiKTsKKwkJCQlicmVhazsK KwkJCWNhc2UgUEFSRU5fRVhQUjoKKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIigi KTsKKwkJCQlicmVhazsKKwkJfQorCisJCWlmIChnZXAtPnZhcmlhYmxlKQorCQl7CisJCQlhcHBl bmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgZ2VwLT52YXJpYWJsZSk7CisJCQlzZXAgPSAiICI7CisJ CX0KKworCQlpZiAoZ2VwLT5sYWJlbGV4cHIpCisJCXsKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJp bmcoYnVmLCBzZXApOworCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJJUyAiKTsKKwkJ CWdldF9ncmFwaF9sYWJlbF9leHByKGdlcC0+bGFiZWxleHByLCBjb250ZXh0KTsKKwkJCXNlcCA9 ICIgIjsKKwkJfQorCisJCWlmIChnZXAtPnN1YmV4cHIpCisJCXsKKwkJCWFwcGVuZFN0cmluZ0lu Zm9TdHJpbmcoYnVmLCBzZXApOworCQkJZ2V0X3BhdGhfcGF0dGVybl9leHByX2RlZihnZXAtPnN1 YmV4cHIsIGNvbnRleHQpOworCQkJc2VwID0gIiAiOworCQl9CisKKwkJaWYgKGdlcC0+d2hlcmVD bGF1c2UpCisJCXsKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCBzZXApOworCQkJYXBw ZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJXSEVSRSAiKTsKKwkJCWdldF9ydWxlX2V4cHIoZ2Vw LT53aGVyZUNsYXVzZSwgY29udGV4dCwgZmFsc2UpOworCQl9CisKKwkJc3dpdGNoIChnZXAtPmtp bmQpCisJCXsKKwkJCWNhc2UgVkVSVEVYX1BBVFRFUk46CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0 cmluZyhidWYsICIpIik7CisJCQkJYnJlYWs7CisJCQljYXNlIEVER0VfUEFUVEVSTl9MRUZUOgor CQkJY2FzZSBFREdFX1BBVFRFUk5fQU5ZOgorCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVm LCAiXS0iKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgRURHRV9QQVRURVJOX1JJR0hUOgorCQkJCWFw cGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiXS0+Iik7CisJCQkJYnJlYWs7CisJCQljYXNlIFBB UkVOX0VYUFI6CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIpIik7CisJCQkJYnJl YWs7CisJCX0KKworCQlpZiAoZ2VwLT5xdWFudGlmaWVyKQorCQl7CisJCQlpbnQJCQlsb3dlciA9 IGxpbml0aWFsX2ludChnZXAtPnF1YW50aWZpZXIpOworCQkJaW50CQkJdXBwZXIgPSBsc2Vjb25k X2ludChnZXAtPnF1YW50aWZpZXIpOworCisJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgInslZCwl ZH0iLCBsb3dlciwgdXBwZXIpOworCQl9CisJfQorfQorCisvKgorICogUGFyc2UgYmFjayBhIGdy YXBoIHBhdHRlcm4KKyAqLworc3RhdGljIHZvaWQKK2dldF9ncmFwaF9wYXR0ZXJuX2RlZihHcmFw aFBhdHRlcm4gKmdyYXBoX3BhdHRlcm4sIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkKK3sKKwlT dHJpbmdJbmZvCWJ1ZiA9IGNvbnRleHQtPmJ1ZjsKKwlMaXN0Q2VsbCAgICpsYzsKKwlib29sCQlm aXJzdCA9IHRydWU7CisKKwlmb3JlYWNoKGxjLCBncmFwaF9wYXR0ZXJuLT5wYXRoX3BhdHRlcm5f bGlzdCkKKwl7CisJCUxpc3QJICAgKnBhdGhfcGF0dGVybl9leHByID0gbGZpcnN0X25vZGUoTGlz dCwgbGMpOworCisJCWlmICghZmlyc3QpCisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1Ziwg IiwgIik7CisJCWVsc2UKKwkJCWZpcnN0ID0gZmFsc2U7CisKKwkJZ2V0X3BhdGhfcGF0dGVybl9l eHByX2RlZihwYXRoX3BhdHRlcm5fZXhwciwgY29udGV4dCk7CisJfQorCisJaWYgKGdyYXBoX3Bh dHRlcm4tPndoZXJlQ2xhdXNlKQorCXsKKwkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJX SEVSRSAiKTsKKwkJZ2V0X3J1bGVfZXhwcihncmFwaF9wYXR0ZXJuLT53aGVyZUNsYXVzZSwgY29u dGV4dCwgZmFsc2UpOworCX0KK30KKwogLyoKICAqIERpc3BsYXkgYSBWYXIgYXBwcm9wcmlhdGVs eS4KICAqCkBAIC04MDc5LDYgKzg1NzcsNyBAQCBnZXRfbmFtZV9mb3JfdmFyX2ZpZWxkKFZhciAq dmFyLCBpbnQgZmllbGRubywKIAkJY2FzZSBSVEVfUkVMQVRJT046CiAJCWNhc2UgUlRFX1ZBTFVF UzoKIAkJY2FzZSBSVEVfTkFNRURUVVBMRVNUT1JFOgorCQljYXNlIFJURV9HUkFQSF9UQUJMRToK IAkJY2FzZSBSVEVfUkVTVUxUOgogCiAJCQkvKgpAQCAtMTA0NzYsNiArMTA5NzUsMTQgQEAgZ2V0 X3J1bGVfZXhwcihOb2RlICpub2RlLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQsCiAJCQlnZXRf dGFibGVmdW5jKChUYWJsZUZ1bmMgKikgbm9kZSwgY29udGV4dCwgc2hvd2ltcGxpY2l0KTsKIAkJ CWJyZWFrOwogCisJCWNhc2UgVF9HcmFwaFByb3BlcnR5UmVmOgorCQkJeworCQkJCUdyYXBoUHJv cGVydHlSZWYgKmdwciA9IChHcmFwaFByb3BlcnR5UmVmICopIG5vZGU7CisKKwkJCQlhcHBlbmRT dHJpbmdJbmZvKGJ1ZiwgIiVzLiVzIiwgcXVvdGVfaWRlbnRpZmllcihncHItPmVsdmFybmFtZSks IHF1b3RlX2lkZW50aWZpZXIoZ2V0X3Byb3BncmFwaF9wcm9wZXJ0eV9uYW1lKGdwci0+cHJvcGlk KSkpOworCQkJCWJyZWFrOworCQkJfQorCiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5y ZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLCAoaW50KSBub2RlVGFnKG5vZGUpKTsKIAkJCWJyZWFr OwpAQCAtMTIzMzQsNiArMTI4NDEsMzYgQEAgZ2V0X2Zyb21fY2xhdXNlX2l0ZW0oTm9kZSAqanRu b2RlLCBRdWVyeSAqcXVlcnksIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkKIAkJCWNhc2UgUlRF X1RBQkxFRlVOQzoKIAkJCQlnZXRfdGFibGVmdW5jKHJ0ZS0+dGFibGVmdW5jLCBjb250ZXh0LCB0 cnVlKTsKIAkJCQlicmVhazsKKwkJCWNhc2UgUlRFX0dSQVBIX1RBQkxFOgorCQkJCWFwcGVuZFN0 cmluZ0luZm9TdHJpbmcoYnVmLCAiR1JBUEhfVEFCTEUgKCIpOworCQkJCWFwcGVuZFN0cmluZ0lu Zm9TdHJpbmcoYnVmLCBnZW5lcmF0ZV9yZWxhdGlvbl9uYW1lKHJ0ZS0+cmVsaWQsIGNvbnRleHQt Pm5hbWVzcGFjZXMpKTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIiBNQVRDSCAi KTsKKwkJCQlnZXRfZ3JhcGhfcGF0dGVybl9kZWYocnRlLT5ncmFwaF9wYXR0ZXJuLCBjb250ZXh0 KTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIiBDT0xVTU5TICgiKTsKKwkJCQl7 CisJCQkJCUxpc3RDZWxsICAgKmxjOworCQkJCQlib29sCQlmaXJzdCA9IHRydWU7CisKKwkJCQkJ Zm9yZWFjaChsYywgcnRlLT5ncmFwaF90YWJsZV9jb2x1bW5zKQorCQkJCQl7CisJCQkJCQlUYXJn ZXRFbnRyeSAqdGUgPSBsZmlyc3Rfbm9kZShUYXJnZXRFbnRyeSwgbGMpOworCQkJCQkJZGVwYXJz ZV9jb250ZXh0IGNvbnRleHQgPSB7MH07CisKKwkJCQkJCWlmICghZmlyc3QpCisJCQkJCQkJYXBw ZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIsICIpOworCQkJCQkJZWxzZQorCQkJCQkJCWZpcnN0 ID0gZmFsc2U7CisKKwkJCQkJCWNvbnRleHQuYnVmID0gYnVmOworCisJCQkJCQlnZXRfcnVsZV9l eHByKChOb2RlICopIHRlLT5leHByLCAmY29udGV4dCwgZmFsc2UpOworCQkJCQkJYXBwZW5kU3Ry aW5nSW5mb1N0cmluZyhidWYsICIgQVMgIik7CisJCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5n KGJ1ZiwgcXVvdGVfaWRlbnRpZmllcih0ZS0+cmVzbmFtZSkpOworCQkJCQl9CisJCQkJfQorCQkJ CWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiKSIpOworCQkJCWFwcGVuZFN0cmluZ0luZm9T dHJpbmcoYnVmLCAiKSIpOworCQkJCWJyZWFrOwogCQkJY2FzZSBSVEVfVkFMVUVTOgogCQkJCS8q IFZhbHVlcyBsaXN0IFJURSAqLwogCQkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJygnKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKaW5kZXggYTg1ZGMwZDg5MWYuLjNiZjMzMWIy MWFhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwpAQCAtMzIsNiArMzIsOCBAQAog I2luY2x1ZGUgImNhdGFsb2cvcGdfb3BjbGFzcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3Bl cmF0b3IuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKKyNpbmNsdWRlICJjYXRhbG9n L3BnX3Byb3BncmFwaF9sYWJlbC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX3By b3BlcnR5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfcmFuZ2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N0YXRpc3RpYy5oIgpA QCAtMzcxNCwzICszNzE2LDM5IEBAIGdldF9zdWJzY3JpcHRpb25fbmFtZShPaWQgc3ViaWQsIGJv b2wgbWlzc2luZ19vaykKIAogCXJldHVybiBzdWJuYW1lOwogfQorCitjaGFyICoKK2dldF9wcm9w Z3JhcGhfbGFiZWxfbmFtZShPaWQgbGFiZWxvaWQpCit7CisJSGVhcFR1cGxlCXR1cGxlOworCWNo YXIJICAgKmxhYmVsbmFtZTsKKworCXR1cGxlID0gU2VhcmNoU3lzQ2FjaGUxKFBST1BHUkFQSExB QkVMT0lELCBsYWJlbG9pZCk7CisJaWYgKCF0dXBsZSkKKwl7CisJCWVsb2coRVJST1IsICJjYWNo ZSBsb29rdXAgZmFpbGVkIGZvciBsYWJlbCAldSIsIGxhYmVsb2lkKTsKKwkJcmV0dXJuIE5VTEw7 CisJfQorCWxhYmVsbmFtZSA9IHBzdHJkdXAoTmFtZVN0cigoKEZvcm1fcGdfcHJvcGdyYXBoX2xh YmVsKSBHRVRTVFJVQ1QodHVwbGUpKS0+cGdsbGFiZWwpKTsKKwlSZWxlYXNlU3lzQ2FjaGUodHVw bGUpOworCisJcmV0dXJuIGxhYmVsbmFtZTsKK30KKworY2hhciAqCitnZXRfcHJvcGdyYXBoX3By b3BlcnR5X25hbWUoT2lkIHByb3BvaWQpCit7CisJSGVhcFR1cGxlCXR1cGxlOworCWNoYXIJICAg KnByb3BuYW1lOworCisJdHVwbGUgPSBTZWFyY2hTeXNDYWNoZTEoUFJPUEdSQVBIUFJPUE9JRCwg cHJvcG9pZCk7CisJaWYgKCF0dXBsZSkKKwl7CisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAg ZmFpbGVkIGZvciBwcm9wZXJ0eSAldSIsIHByb3BvaWQpOworCQlyZXR1cm4gTlVMTDsKKwl9CisJ cHJvcG5hbWUgPSBwc3RyZHVwKE5hbWVTdHIoKChGb3JtX3BnX3Byb3BncmFwaF9wcm9wZXJ0eSkg R0VUU1RSVUNUKHR1cGxlKSktPnBncG5hbWUpKTsKKwlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOwor CisJcmV0dXJuIHByb3BuYW1lOworfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL2NvbW1v bi5jIGIvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jCmluZGV4IDMzZDMyMzA4NWY1Li4xOWQ2YzBj MmI4YSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jCisrKyBiL3NyYy9iaW4v cGdfZHVtcC9jb21tb24uYwpAQCAtNDk2LDcgKzQ5Niw4IEBAIGZsYWdJbmhBdHRycyhBcmNoaXZl ICpmb3V0LCBEdW1wT3B0aW9ucyAqZG9wdCwgVGFibGVJbmZvICp0YmxpbmZvLCBpbnQgbnVtVGFi bGVzCiAJCS8qIFNvbWUga2luZHMgbmV2ZXIgaGF2ZSBwYXJlbnRzICovCiAJCWlmICh0YmluZm8t PnJlbGtpbmQgPT0gUkVMS0lORF9TRVFVRU5DRSB8fAogCQkJdGJpbmZvLT5yZWxraW5kID09IFJF TEtJTkRfVklFVyB8fAotCQkJdGJpbmZvLT5yZWxraW5kID09IFJFTEtJTkRfTUFUVklFVykKKwkJ CXRiaW5mby0+cmVsa2luZCA9PSBSRUxLSU5EX01BVFZJRVcgfHwKKwkJCXRiaW5mby0+cmVsa2lu ZCA9PSBSRUxLSU5EX1BST1BHUkFQSCkKIAkJCWNvbnRpbnVlOwogCiAJCS8qIERvbid0IGJvdGhl ciBjb21wdXRpbmcgYW55dGhpbmcgZm9yIG5vbi10YXJnZXQgdGFibGVzLCBlaXRoZXIgKi8KZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyBiL3NyYy9iaW4v cGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwppbmRleCA3MDdhM2ZjODQ0Yy4uZTI4N2EzMWUy M2UgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYworKysg Yi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKQEAgLTM2NDUsNiArMzY0NSw3 IEBAIF9nZXRPYmplY3REZXNjcmlwdGlvbihQUUV4cEJ1ZmZlciBidWYsIGNvbnN0IFRvY0VudHJ5 ICp0ZSkKIAkJc3RyY21wKHR5cGUsICJET01BSU4iKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAi Rk9SRUlHTiBUQUJMRSIpID09IDAgfHwKIAkJc3RyY21wKHR5cGUsICJNQVRFUklBTElaRUQgVklF VyIpID09IDAgfHwKKwkJc3RyY21wKHR5cGUsICJQUk9QRVJUWSBHUkFQSCIpID09IDAgfHwKIAkJ c3RyY21wKHR5cGUsICJTRVFVRU5DRSIpID09IDAgfHwKIAkJc3RyY21wKHR5cGUsICJTVEFUSVNU SUNTIikgPT0gMCB8fAogCQlzdHJjbXAodHlwZSwgIlRBQkxFIikgPT0gMCB8fApkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMK aW5kZXggMTk5NjllNDAwZmMuLmUwODcxN2RhYjE1IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTE2OTksMTAg KzE2OTksMTAgQEAgZXhwYW5kX3RhYmxlX25hbWVfcGF0dGVybnMoQXJjaGl2ZSAqZm91dCwKIAkJ CQkJCSAgIlxuICAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19uYW1lc3BhY2UgbiIKIAkJCQkJ CSAgIlxuICAgICBPTiBuLm9pZCBPUEVSQVRPUihwZ19jYXRhbG9nLj0pIGMucmVsbmFtZXNwYWNl IgogCQkJCQkJICAiXG5XSEVSRSBjLnJlbGtpbmQgT1BFUkFUT1IocGdfY2F0YWxvZy49KSBBTlki Ci0JCQkJCQkgICJcbiAgICAoYXJyYXlbJyVjJywgJyVjJywgJyVjJywgJyVjJywgJyVjJywgJyVj J10pXG4iLAorCQkJCQkJICAiXG4gICAgKGFycmF5WyclYycsICclYycsICclYycsICclYycsICcl YycsICclYycsICclYyddKVxuIiwKIAkJCQkJCSAgUkVMS0lORF9SRUxBVElPTiwgUkVMS0lORF9T RVFVRU5DRSwgUkVMS0lORF9WSUVXLAogCQkJCQkJICBSRUxLSU5EX01BVFZJRVcsIFJFTEtJTkRf Rk9SRUlHTl9UQUJMRSwKLQkJCQkJCSAgUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSk7CisJCQkJ CQkgIFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUsIFJFTEtJTkRfUFJPUEdSQVBIKTsKIAkJaW5p dFBRRXhwQnVmZmVyKCZkYmJ1Zik7CiAJCXByb2Nlc3NTUUxOYW1lUGF0dGVybihHZXRDb25uZWN0 aW9uKGZvdXQpLCBxdWVyeSwgY2VsbC0+dmFsLCB0cnVlLAogCQkJCQkJCSAgZmFsc2UsICJuLm5z cG5hbWUiLCAiYy5yZWxuYW1lIiwgTlVMTCwKQEAgLTI4NjksNiArMjg2OSw5IEBAIG1ha2VUYWJs ZURhdGFJbmZvKER1bXBPcHRpb25zICpkb3B0LCBUYWJsZUluZm8gKnRiaW5mbykKIAlpZiAodGJp bmZvLT5kYXRhT2JqICE9IE5VTEwpCiAJCXJldHVybjsKIAorCS8qIFNraXAgcHJvcGVydHkgZ3Jh cGhzIChubyBkYXRhIHRvIGR1bXApICovCisJaWYgKHRiaW5mby0+cmVsa2luZCA9PSBSRUxLSU5E X1BST1BHUkFQSCkKKwkJcmV0dXJuOwogCS8qIFNraXAgVklFV3MgKG5vIGRhdGEgdG8gZHVtcCkg Ki8KIAlpZiAodGJpbmZvLT5yZWxraW5kID09IFJFTEtJTkRfVklFVykKIAkJcmV0dXJuOwpAQCAt Njk4Nyw3ICs2OTkwLDggQEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVz KQogCQkJCQkJIENwcEFzU3RyaW5nMihSRUxLSU5EX0NPTVBPU0lURV9UWVBFKSAiLCAiCiAJCQkJ CQkgQ3BwQXNTdHJpbmcyKFJFTEtJTkRfTUFUVklFVykgIiwgIgogCQkJCQkJIENwcEFzU3RyaW5n MihSRUxLSU5EX0ZPUkVJR05fVEFCTEUpICIsICIKLQkJCQkJCSBDcHBBc1N0cmluZzIoUkVMS0lO RF9QQVJUSVRJT05FRF9UQUJMRSkgIilcbiIKKwkJCQkJCSBDcHBBc1N0cmluZzIoUkVMS0lORF9Q QVJUSVRJT05FRF9UQUJMRSkgIiwgIgorCQkJCQkJIENwcEFzU3RyaW5nMihSRUxLSU5EX1BST1BH UkFQSCkgIilcbiIKIAkJCQkJCSAiT1JERVIgQlkgYy5vaWQiKTsKIAogCXJlcyA9IEV4ZWN1dGVT cWxRdWVyeShmb3V0LCBxdWVyeS0+ZGF0YSwgUEdSRVNfVFVQTEVTX09LKTsKQEAgLTE1OTc3LDgg KzE1OTgxLDYgQEAgZHVtcFRhYmxlU2NoZW1hKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFRhYmxlSW5m byAqdGJpbmZvKQogCiAJCXJlbHR5cGVuYW1lID0gIlZJRVciOwogCi0JCWFwcGVuZFBRRXhwQnVm ZmVyKGRlbHEsICJEUk9QIFZJRVcgJXM7XG4iLCBxdWFscmVsbmFtZSk7Ci0KIAkJaWYgKGRvcHQt PmJpbmFyeV91cGdyYWRlKQogCQkJYmluYXJ5X3VwZ3JhZGVfc2V0X3BnX2NsYXNzX29pZHMoZm91 dCwgcSwKIAkJCQkJCQkJCQkJIHRiaW5mby0+ZG9iai5jYXRJZC5vaWQpOwpAQCAtMTYwMDQsNiAr MTYwMDYsNDcgQEAgZHVtcFRhYmxlU2NoZW1hKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFRhYmxlSW5m byAqdGJpbmZvKQogCQkJYXBwZW5kUFFFeHBCdWZmZXIocSwgIlxuICBXSVRIICVzIENIRUNLIE9Q VElPTiIsIHRiaW5mby0+Y2hlY2tvcHRpb24pOwogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxLCAi O1xuIik7CiAJfQorCWVsc2UgaWYgKHRiaW5mby0+cmVsa2luZCA9PSBSRUxLSU5EX1BST1BHUkFQ SCkKKwl7CisJCVBRRXhwQnVmZmVyIHF1ZXJ5ID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKwkJUEdy ZXN1bHQgICAqcmVzOworCQlpbnQJCQlsZW47CisKKwkJcmVsdHlwZW5hbWUgPSAiUFJPUEVSVFkg R1JBUEgiOworCisJCWlmIChkb3B0LT5iaW5hcnlfdXBncmFkZSkKKwkJCWJpbmFyeV91cGdyYWRl X3NldF9wZ19jbGFzc19vaWRzKGZvdXQsIHEsCisJCQkJCQkJCQkJCSB0YmluZm8tPmRvYmouY2F0 SWQub2lkKTsKKworCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKKwkJCQkJCSAgIlNFTEVDVCBw Z19jYXRhbG9nLnBnX2dldF9wcm9wZ3JhcGhkZWYoJyV1Jzo6cGdfY2F0YWxvZy5vaWQpIEFTIHBn ZGVmIiwKKwkJCQkJCSAgdGJpbmZvLT5kb2JqLmNhdElkLm9pZCk7CisKKwkJcmVzID0gRXhlY3V0 ZVNxbFF1ZXJ5KGZvdXQsIHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBMRVNfT0spOworCisJCWlmIChQ UW50dXBsZXMocmVzKSAhPSAxKQorCQl7CisJCQlpZiAoUFFudHVwbGVzKHJlcykgPCAxKQorCQkJ CXBnX2ZhdGFsKCJxdWVyeSB0byBvYnRhaW4gZGVmaW5pdGlvbiBvZiBwcm9wZXJ0eSBncmFwaCBc IiVzXCIgcmV0dXJuZWQgbm8gZGF0YSIsCisJCQkJCQkgdGJpbmZvLT5kb2JqLm5hbWUpOworCQkJ ZWxzZQorCQkJCXBnX2ZhdGFsKCJxdWVyeSB0byBvYnRhaW4gZGVmaW5pdGlvbiBvZiBwcm9wZXJ0 eSBncmFwaCBcIiVzXCIgcmV0dXJuZWQgbW9yZSB0aGFuIG9uZSBkZWZpbml0aW9uIiwKKwkJCQkJ CSB0YmluZm8tPmRvYmoubmFtZSk7CisJCX0KKworCQlsZW4gPSBQUWdldGxlbmd0aChyZXMsIDAs IDApOworCisJCWlmIChsZW4gPT0gMCkKKwkJCXBnX2ZhdGFsKCJkZWZpbml0aW9uIG9mIHByb3Bl cnR5IGdyYXBoIFwiJXNcIiBhcHBlYXJzIHRvIGJlIGVtcHR5IChsZW5ndGggemVybykiLAorCQkJ CQkgdGJpbmZvLT5kb2JqLm5hbWUpOworCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHEsIFBRZ2V0 dmFsdWUocmVzLCAwLCAwKSk7CisKKwkJUFFjbGVhcihyZXMpOworCQlkZXN0cm95UFFFeHBCdWZm ZXIocXVlcnkpOworCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHEsICI7XG4iKTsKKwl9CiAJZWxz ZQogCXsKIAkJY2hhcgkgICAqcGFydGtleWRlZiA9IE5VTEw7CkBAIC0xNjA3OSw4ICsxNjEyMiw2 IEBAIGR1bXBUYWJsZVNjaGVtYShBcmNoaXZlICpmb3V0LCBjb25zdCBUYWJsZUluZm8gKnRiaW5m bykKIAkJbnVtUGFyZW50cyA9IHRiaW5mby0+bnVtUGFyZW50czsKIAkJcGFyZW50cyA9IHRiaW5m by0+cGFyZW50czsKIAotCQlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxxLCAiRFJPUCAlcyAlcztcbiIs IHJlbHR5cGVuYW1lLCBxdWFscmVsbmFtZSk7Ci0KIAkJaWYgKGRvcHQtPmJpbmFyeV91cGdyYWRl KQogCQkJYmluYXJ5X3VwZ3JhZGVfc2V0X3BnX2NsYXNzX29pZHMoZm91dCwgcSwKIAkJCQkJCQkJ CQkJIHRiaW5mby0+ZG9iai5jYXRJZC5vaWQpOwpAQCAtMTY4MjMsNiArMTY4NjQsOCBAQCBkdW1w VGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91dCwgY29uc3QgVGFibGVJbmZvICp0YmluZm8pCiAJCWFw cGVuZFBRRXhwQnVmZmVyKHEsICJcbkFMVEVSIFRBQkxFIE9OTFkgJXMgRk9SQ0UgUk9XIExFVkVM IFNFQ1VSSVRZO1xuIiwKIAkJCQkJCSAgcXVhbHJlbG5hbWUpOwogCisJYXBwZW5kUFFFeHBCdWZm ZXIoZGVscSwgIkRST1AgJXMgJXM7XG4iLCByZWx0eXBlbmFtZSwgcXVhbHJlbG5hbWUpOworCiAJ aWYgKGRvcHQtPmJpbmFyeV91cGdyYWRlKQogCQliaW5hcnlfdXBncmFkZV9leHRlbnNpb25fbWVt YmVyKHEsICZ0YmluZm8tPmRvYmosCiAJCQkJCQkJCQkJcmVsdHlwZW5hbWUsIHFyZWxuYW1lLApA QCAtMTg3NjIsNiArMTg4MDUsMTYgQEAgZ2V0RGVwZW5kZW5jaWVzKEFyY2hpdmUgKmZvdXQpCiAJ CQkJCQkgImNsYXNzaWQgPSAncGdfYW1wcm9jJzo6cmVnY2xhc3MgQU5EIG9iamlkID0gcC5vaWQg IgogCQkJCQkJICJBTkQgTk9UIChyZWZjbGFzc2lkID0gJ3BnX29wZmFtaWx5Jzo6cmVnY2xhc3Mg QU5EIGFtcHJvY2ZhbWlseSA9IHJlZm9iamlkKVxuIik7CiAKKwkvKgorCSAqIFRyYW5zbGF0ZSBk ZXBlbmRlbmNpZXMgb2YgcGdfcHJvcGdyYXBoX2VsZW1lbnQgZW50cmllcyBpbnRvCisJICogZGVw ZW5kZW5jaWVzIG9mIHRoZWlyIHBhcmVudCBwZ19jbGFzcyBlbnRyeS4KKwkgKi8KKwlhcHBlbmRQ UUV4cEJ1ZmZlclN0cihxdWVyeSwgIlVOSU9OIEFMTFxuIgorCQkJCQkJICJTRUxFQ1QgJ3BnX2Ns YXNzJzo6cmVnY2xhc3MgQVMgY2xhc3NpZCwgcGdlcGdpZCBBUyBvYmppZCwgcmVmY2xhc3NpZCwg cmVmb2JqaWQsIGRlcHR5cGUgIgorCQkJCQkJICJGUk9NIHBnX2RlcGVuZCBkLCBwZ19wcm9wZ3Jh cGhfZWxlbWVudCBwZ2UgIgorCQkJCQkJICJXSEVSRSBkZXB0eXBlIE5PVCBJTiAoJ3AnLCAnZScs ICdpJykgQU5EICIKKwkJCQkJCSAiY2xhc3NpZCA9ICdwZ19wcm9wZ3JhcGhfZWxlbWVudCc6OnJl Z2NsYXNzIEFORCBvYmppZCA9IHBnZS5vaWRcbiIpOworCiAJLyogU29ydCB0aGUgb3V0cHV0IGZv ciBlZmZpY2llbmN5IGJlbG93ICovCiAJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICJPUkRF UiBCWSAxLDIiKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAu cGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCBhYTE1NjRjZDQ1MC4u ZGYyMjRlYjViNmMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBs CisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC0yOTQ4LDYgKzI5NDgs MTggQEAgbXkgJXRlc3RzID0gKAogCQl9LAogCX0sCiAKKwknQ1JFQVRFIFBST1BFUlRZIEdSQVBI IHByb3BncmFwaCcgPT4geworCQljcmVhdGVfb3JkZXIgPT4gMjAsCisJCWNyZWF0ZV9zcWwgPT4g J0NSRUFURSBQUk9QRVJUWSBHUkFQSCBkdW1wX3Rlc3QucHJvcGdyYXBoOycsCisJCXJlZ2V4cCA9 PiBxci9eCisJCQlcUUNSRUFURSBQUk9QRVJUWSBHUkFQSCBkdW1wX3Rlc3QucHJvcGdyYXBoXEU7 CisJCQkveG0sCisJCWxpa2UgPT4KKwkJICB7ICVmdWxsX3J1bnMsICVkdW1wX3Rlc3Rfc2NoZW1h X3J1bnMsIHNlY3Rpb25fcHJlX2RhdGEgPT4gMSwgfSwKKwkJdW5saWtlID0+CisJCSAgeyBleGNs dWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwgb25seV9kdW1wX21lYXN1cmVtZW50ID0+IDEsIH0s CisJfSwKKwogCSdDUkVBVEUgUFVCTElDQVRJT04gcHViMScgPT4gewogCQljcmVhdGVfb3JkZXIg PT4gNTAsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBQVUJMSUNBVElPTiBwdWIxOycsCmRpZmYg LS1naXQgYS9zcmMvYmluL3BzcWwvY29tbWFuZC5jIGIvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYwpp bmRleCBjZDE2ZjI3OTQ3YS4uNGZlM2E5MzYxMzIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9j b21tYW5kLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYwpAQCAtODY3LDcgKzg2Nyw3IEBA IGV4ZWNfY29tbWFuZF9kKFBzcWxTY2FuU3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJh bmNoLCBjb25zdCBjaGFyICpjbWQpCiAJCQkJCXN1Y2Nlc3MgPSBkZXNjcmliZVRhYmxlRGV0YWls cyhwYXR0ZXJuLCBzaG93X3ZlcmJvc2UsIHNob3dfc3lzdGVtKTsKIAkJCQllbHNlCiAJCQkJCS8q IHN0YW5kYXJkIGxpc3Rpbmcgb2YgaW50ZXJlc3RpbmcgdGhpbmdzICovCi0JCQkJCXN1Y2Nlc3Mg PSBsaXN0VGFibGVzKCJ0dm1zRSIsIE5VTEwsIHNob3dfdmVyYm9zZSwgc2hvd19zeXN0ZW0pOwor CQkJCQlzdWNjZXNzID0gbGlzdFRhYmxlcygidHZtc0VHIiwgTlVMTCwgc2hvd192ZXJib3NlLCBz aG93X3N5c3RlbSk7CiAJCQkJYnJlYWs7CiAJCQljYXNlICdBJzoKIAkJCQl7CkBAIC05OTgsNiAr OTk4LDcgQEAgZXhlY19jb21tYW5kX2QoUHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFj dGl2ZV9icmFuY2gsIGNvbnN0IGNoYXIgKmNtZCkKIAkJCWNhc2UgJ2knOgogCQkJY2FzZSAncyc6 CiAJCQljYXNlICdFJzoKKwkJCWNhc2UgJ0cnOgogCQkJCXN1Y2Nlc3MgPSBsaXN0VGFibGVzKCZj bWRbMV0sIHBhdHRlcm4sIHNob3dfdmVyYm9zZSwgc2hvd19zeXN0ZW0pOwogCQkJCWJyZWFrOwog CQkJY2FzZSAncic6CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9i aW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDI2NTdhYmRjNzJkLi5hMjZkODFhMGZkZSAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJl LmMKQEAgLTEwNTEsNiArMTA1MSw3IEBAIHBlcm1pc3Npb25zTGlzdChjb25zdCBjaGFyICpwYXR0 ZXJuLCBib29sIHNob3dTeXN0ZW0pCiAJCQkJCSAgIiBXSEVOICIgQ3BwQXNTdHJpbmcyKFJFTEtJ TkRfTUFUVklFVykgIiBUSEVOICclcyciCiAJCQkJCSAgIiBXSEVOICIgQ3BwQXNTdHJpbmcyKFJF TEtJTkRfU0VRVUVOQ0UpICIgVEhFTiAnJXMnIgogCQkJCQkgICIgV0hFTiAiIENwcEFzU3RyaW5n MihSRUxLSU5EX0ZPUkVJR05fVEFCTEUpICIgVEhFTiAnJXMnIgorCQkJCQkgICIgV0hFTiAiIENw cEFzU3RyaW5nMihSRUxLSU5EX1BST1BHUkFQSCkgIiBUSEVOICclcyciCiAJCQkJCSAgIiBXSEVO ICIgQ3BwQXNTdHJpbmcyKFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpICIgVEhFTiAnJXMnIgog CQkJCQkgICIgRU5EIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICAiLApAQCAtMTA2MSw2ICsxMDYy LDcgQEAgcGVybWlzc2lvbnNMaXN0KGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgc2hvd1N5c3Rl bSkKIAkJCQkJICBnZXR0ZXh0X25vb3AoIm1hdGVyaWFsaXplZCB2aWV3IiksCiAJCQkJCSAgZ2V0 dGV4dF9ub29wKCJzZXF1ZW5jZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiZm9yZWlnbiB0YWJs ZSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgicHJvcGVydHkgZ3JhcGgiKSwKIAkJCQkJICBnZXR0 ZXh0X25vb3AoInBhcnRpdGlvbmVkIHRhYmxlIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJUeXBl IikpOwogCkBAIC0xMTUyLDYgKzExNTQsNyBAQCBwZXJtaXNzaW9uc0xpc3QoY29uc3QgY2hhciAq cGF0dGVybiwgYm9vbCBzaG93U3lzdGVtKQogCQkJCQkJIENwcEFzU3RyaW5nMihSRUxLSU5EX01B VFZJRVcpICIsIgogCQkJCQkJIENwcEFzU3RyaW5nMihSRUxLSU5EX1NFUVVFTkNFKSAiLCIKIAkJ CQkJCSBDcHBBc1N0cmluZzIoUkVMS0lORF9GT1JFSUdOX1RBQkxFKSAiLCIKKwkJCQkJCSBDcHBB c1N0cmluZzIoUkVMS0lORF9QUk9QR1JBUEgpICIsIgogCQkJCQkJIENwcEFzU3RyaW5nMihSRUxL SU5EX1BBUlRJVElPTkVEX1RBQkxFKSAiKVxuIik7CiAKIAlpZiAoIXNob3dTeXN0ZW0gJiYgIXBh dHRlcm4pCkBAIC0yMDMxLDYgKzIwMzQsMTAgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29u c3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJCQlwcmludGZQUUV4cEJ1ZmZlcigmdGl0bGUsIF8oIlBh cnRpdGlvbmVkIHRhYmxlIFwiJXMuJXNcIiIpLAogCQkJCQkJCQkgIHNjaGVtYW5hbWUsIHJlbGF0 aW9ubmFtZSk7CiAJCQlicmVhazsKKwkJY2FzZSBSRUxLSU5EX1BST1BHUkFQSDoKKwkJCXByaW50 ZlBRRXhwQnVmZmVyKCZ0aXRsZSwgXygiUHJvcGVydHkgZ3JhcGggXCIlcy4lc1wiIiksCisJCQkJ CQkJICBzY2hlbWFuYW1lLCByZWxhdGlvbm5hbWUpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJ CQkvKiB1bnRyYW5zbGF0ZWQgdW5rbm93biByZWxraW5kICovCiAJCQlwcmludGZQUUV4cEJ1ZmZl cigmdGl0bGUsICI/JWM/IFwiJXMuJXNcIiIsCkBAIC0zMTMwLDYgKzMxMzcsMzIgQEAgZGVzY3Jp YmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJfQogCX0KIAorCS8q IEFkZCBwcm9wZXJ0eSBncmFwaCBkZWZpbml0aW9uIGluIHZlcmJvc2UgbW9kZSAqLworCWlmICh0 YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX1BST1BHUkFQSCAmJiB2ZXJib3NlKQorCXsKKwkJ UEdyZXN1bHQgICAqcmVzdWx0OworCQljaGFyCSAgICpwZ2RlZiA9IE5VTEw7CisKKwkJcHJpbnRm UFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCSAgIlNFTEVDVCBwZ19jYXRhbG9nLnBnX2dldF9wcm9w Z3JhcGhkZWYoJyVzJzo6cGdfY2F0YWxvZy5vaWQpOyIsCisJCQkJCQkgIG9pZCk7CisJCXJlc3Vs dCA9IFBTUUxleGVjKGJ1Zi5kYXRhKTsKKwkJaWYgKCFyZXN1bHQpCisJCQlnb3RvIGVycm9yX3Jl dHVybjsKKworCQlpZiAoUFFudHVwbGVzKHJlc3VsdCkgPiAwKQorCQkJcGdkZWYgPSBwZ19zdHJk dXAoUFFnZXR2YWx1ZShyZXN1bHQsIDAsIDApKTsKKworCQlQUWNsZWFyKHJlc3VsdCk7CisKKwkJ aWYgKHBnZGVmKQorCQl7CisJCQlwcmludFRhYmxlQWRkRm9vdGVyKCZjb250LCBfKCJQcm9wZXJ0 eSBncmFwaCBkZWZpbml0aW9uOiIpKTsKKwkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsICIgJXMi LCBwZ2RlZik7CisJCQlwcmludFRhYmxlQWRkRm9vdGVyKCZjb250LCBidWYuZGF0YSk7CisJCX0K Kwl9CisKIAkvKiBHZXQgdmlld19kZWYgaWYgdGFibGUgaXMgYSB2aWV3IG9yIG1hdGVyaWFsaXpl ZCB2aWV3ICovCiAJaWYgKCh0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX1ZJRVcgfHwKIAkJ IHRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfTUFUVklFVykgJiYgdmVyYm9zZSkKQEAgLTM5 ODMsNiArNDAxNiw3IEBAIGRlc2NyaWJlUm9sZUdyYW50cyhjb25zdCBjaGFyICpwYXR0ZXJuLCBi b29sIHNob3dTeXN0ZW0pCiAgKiBtIC0gbWF0ZXJpYWxpemVkIHZpZXdzCiAgKiBzIC0gc2VxdWVu Y2VzCiAgKiBFIC0gZm9yZWlnbiB0YWJsZSAoTm90ZTogZGlmZmVyZW50IGZyb20gJ2YnLCB0aGUg cmVsa2luZCB2YWx1ZSkKKyAqIEcgLSBwcm9wZXJ0eSBncmFwaHMKICAqIChhbnkgb3JkZXIgb2Yg dGhlIGFib3ZlIGlzIGZpbmUpCiAgKi8KIGJvb2wKQEAgLTM5OTQsNiArNDAyOCw3IEBAIGxpc3RU YWJsZXMoY29uc3QgY2hhciAqdGFidHlwZXMsIGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVy Ym9zZSwgYm9vbCBzaG93U3lzCiAJYm9vbAkJc2hvd01hdFZpZXdzID0gc3RyY2hyKHRhYnR5cGVz LCAnbScpICE9IE5VTEw7CiAJYm9vbAkJc2hvd1NlcSA9IHN0cmNocih0YWJ0eXBlcywgJ3MnKSAh PSBOVUxMOwogCWJvb2wJCXNob3dGb3JlaWduID0gc3RyY2hyKHRhYnR5cGVzLCAnRScpICE9IE5V TEw7CisJYm9vbAkJc2hvd1Byb3BHcmFwaHMgPSBzdHJjaHIodGFidHlwZXMsICdHJykgIT0gTlVM TDsKIAogCVBRRXhwQnVmZmVyRGF0YSBidWY7CiAJUEdyZXN1bHQgICAqcmVzOwpAQCAtNDAwMiw4 ICs0MDM3LDggQEAgbGlzdFRhYmxlcyhjb25zdCBjaGFyICp0YWJ0eXBlcywgY29uc3QgY2hhciAq cGF0dGVybiwgYm9vbCB2ZXJib3NlLCBib29sIHNob3dTeXMKIAlib29sCQl0cmFuc2xhdGVfY29s dW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us IGZhbHNlLCBmYWxzZX07CiAKIAkvKiBJZiB0YWJ0eXBlcyBpcyBlbXB0eSwgd2UgZGVmYXVsdCB0 byBcZHR2bXNFIChidXQgc2VlIGFsc28gY29tbWFuZC5jKSAqLwotCWlmICghKHNob3dUYWJsZXMg fHwgc2hvd0luZGV4ZXMgfHwgc2hvd1ZpZXdzIHx8IHNob3dNYXRWaWV3cyB8fCBzaG93U2VxIHx8 IHNob3dGb3JlaWduKSkKLQkJc2hvd1RhYmxlcyA9IHNob3dWaWV3cyA9IHNob3dNYXRWaWV3cyA9 IHNob3dTZXEgPSBzaG93Rm9yZWlnbiA9IHRydWU7CisJaWYgKCEoc2hvd1RhYmxlcyB8fCBzaG93 SW5kZXhlcyB8fCBzaG93Vmlld3MgfHwgc2hvd01hdFZpZXdzIHx8IHNob3dTZXEgfHwgc2hvd0Zv cmVpZ24gfHwgc2hvd1Byb3BHcmFwaHMpKQorCQlzaG93VGFibGVzID0gc2hvd1ZpZXdzID0gc2hv d01hdFZpZXdzID0gc2hvd1NlcSA9IHNob3dGb3JlaWduID0gc2hvd1Byb3BHcmFwaHMgPSB0cnVl OwogCiAJaW5pdFBRRXhwQnVmZmVyKCZidWYpOwogCkBAIC00MDIwLDYgKzQwNTUsNyBAQCBsaXN0 VGFibGVzKGNvbnN0IGNoYXIgKnRhYnR5cGVzLCBjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZl cmJvc2UsIGJvb2wgc2hvd1N5cwogCQkJCQkgICIgV0hFTiAiIENwcEFzU3RyaW5nMihSRUxLSU5E X0ZPUkVJR05fVEFCTEUpICIgVEhFTiAnJXMnIgogCQkJCQkgICIgV0hFTiAiIENwcEFzU3RyaW5n MihSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKSAiIFRIRU4gJyVzJyIKIAkJCQkJICAiIFdIRU4g IiBDcHBBc1N0cmluZzIoUkVMS0lORF9QQVJUSVRJT05FRF9JTkRFWCkgIiBUSEVOICclcyciCisJ CQkJCSAgIiBXSEVOICIgQ3BwQXNTdHJpbmcyKFJFTEtJTkRfUFJPUEdSQVBIKSAiIFRIRU4gJyVz JyIKIAkJCQkJICAiIEVORCBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19n ZXRfdXNlcmJ5aWQoYy5yZWxvd25lcikgYXMgXCIlc1wiIiwKIAkJCQkJICBnZXR0ZXh0X25vb3Ao IlNjaGVtYSIpLApAQCAtNDAzMyw2ICs0MDY5LDcgQEAgbGlzdFRhYmxlcyhjb25zdCBjaGFyICp0 YWJ0eXBlcywgY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlLCBib29sIHNob3dTeXMK IAkJCQkJICBnZXR0ZXh0X25vb3AoImZvcmVpZ24gdGFibGUiKSwKIAkJCQkJICBnZXR0ZXh0X25v b3AoInBhcnRpdGlvbmVkIHRhYmxlIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJwYXJ0aXRpb25l ZCBpbmRleCIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgicHJvcGVydHkgZ3JhcGgiKSwKIAkJCQkJ ICBnZXR0ZXh0X25vb3AoIlR5cGUiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIikpOwog CWNvbHNfc29fZmFyID0gNDsKQEAgLTQxMjAsNiArNDE1Nyw4IEBAIGxpc3RUYWJsZXMoY29uc3Qg Y2hhciAqdGFidHlwZXMsIGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSwgYm9vbCBz aG93U3lzCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIncycsIik7IC8qIHdhcyBSRUxL SU5EX1NQRUNJQUwgKi8KIAlpZiAoc2hvd0ZvcmVpZ24pCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KCZidWYsIENwcEFzU3RyaW5nMihSRUxLSU5EX0ZPUkVJR05fVEFCTEUpICIsIik7CisJaWYgKHNo b3dQcm9wR3JhcGhzKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCBDcHBBc1N0cmluZzIo UkVMS0lORF9QUk9QR1JBUEgpICIsIik7CiAKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAi JyciKTsJLyogZHVtbXkgKi8KIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiKVxuIik7CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvaGVscC5jIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwppbmRl eCAzZjRhZmMyZDE0MS4uZTJhZTgyOTg3YWMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9oZWxw LmMKKysrIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwpAQCAtMjQ3LDYgKzI0Nyw3IEBAIHNsYXNoVXNh Z2UodW5zaWduZWQgc2hvcnQgaW50IHBhZ2VyKQogCUhFTFAwKCIgIFxcZEZwWytdIFtQQVRURVJO XSAgICAgIGxpc3QgdGV4dCBzZWFyY2ggcGFyc2Vyc1xuIik7CiAJSEVMUDAoIiAgXFxkRnRbK10g W1BBVFRFUk5dICAgICAgbGlzdCB0ZXh0IHNlYXJjaCB0ZW1wbGF0ZXNcbiIpOwogCUhFTFAwKCIg IFxcZGdbUytdIFtQQVRURVJOXSAgICAgIGxpc3Qgcm9sZXNcbiIpOworCUhFTFAwKCIgIFxcZEdb UytdIFtQQVRURVJOXSAgICAgIGxpc3QgcHJvcGVydHkgZ3JhcGhzXG4iKTsKIAlIRUxQMCgiICBc XGRpW1MrXSBbUEFUVEVSTl0gICAgICBsaXN0IGluZGV4ZXNcbiIpOwogCUhFTFAwKCIgIFxcZGxb K10gICAgICAgICAgICAgICAgIGxpc3QgbGFyZ2Ugb2JqZWN0cywgc2FtZSBhcyBcXGxvX2xpc3Rc biIpOwogCUhFTFAwKCIgIFxcZExbUytdIFtQQVRURVJOXSAgICAgIGxpc3QgcHJvY2VkdXJhbCBs YW5ndWFnZXNcbiIpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5j IGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDMxYzc3MjE0YjRmLi4wOWNk NTgzYzNkZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBi L3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtNzk1LDYgKzc5NSwxNCBAQCBzdGF0 aWMgY29uc3QgU2NoZW1hUXVlcnkgUXVlcnlfZm9yX2xpc3Rfb2ZfcGFydGl0aW9uZWRfaW5kZXhl cyA9IHsKIAkucmVzdWx0ID0gImMucmVsbmFtZSIsCiB9OwogCitzdGF0aWMgY29uc3QgU2NoZW1h UXVlcnkgUXVlcnlfZm9yX2xpc3Rfb2ZfcHJvcGdyYXBocyA9IHsKKwkuY2F0bmFtZSA9ICJwZ19j YXRhbG9nLnBnX2NsYXNzIGMiLAorCS5zZWxjb25kaXRpb24gPSAiYy5yZWxraW5kIElOICgiIENw cEFzU3RyaW5nMihSRUxLSU5EX1BST1BHUkFQSCkgIikiLAorCS52aXNjb25kaXRpb24gPSAicGdf Y2F0YWxvZy5wZ190YWJsZV9pc192aXNpYmxlKGMub2lkKSIsCisJLm5hbWVzcGFjZSA9ICJjLnJl bG5hbWVzcGFjZSIsCisJLnJlc3VsdCA9ICJwZ19jYXRhbG9nLnF1b3RlX2lkZW50KGMucmVsbmFt ZSkiLAorfTsKKwogCiAvKiBBbGwgcmVsYXRpb25zICovCiBzdGF0aWMgY29uc3QgU2NoZW1hUXVl cnkgUXVlcnlfZm9yX2xpc3Rfb2ZfcmVsYXRpb25zID0gewpAQCAtMTI3Nyw2ICsxMjg1LDcgQEAg c3RhdGljIGNvbnN0IHBnc3FsX3RoaW5nX3Qgd29yZHNfYWZ0ZXJfY3JlYXRlW10gPSB7CiAJeyJQ QVJTRVIiLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2ZfdHNfcGFyc2VycywgTlVMTCwg VEhJTkdfTk9fU0hPV30sCiAJeyJQT0xJQ1kiLCBOVUxMLCBOVUxMLCBOVUxMfSwKIAl7IlBST0NF RFVSRSIsIE5VTEwsIE5VTEwsIFF1ZXJ5X2Zvcl9saXN0X29mX3Byb2NlZHVyZXN9LAorCXsiUFJP UEVSVFkgR1JBUEgiLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2ZfcHJvcGdyYXBoc30s CiAJeyJQVUJMSUNBVElPTiIsIE5VTEwsIFF1ZXJ5X2Zvcl9saXN0X29mX3B1YmxpY2F0aW9uc30s CiAJeyJST0xFIiwgUXVlcnlfZm9yX2xpc3Rfb2Zfcm9sZXN9LAogCXsiUk9VVElORSIsIE5VTEws IE5VTEwsICZRdWVyeV9mb3JfbGlzdF9vZl9yb3V0aW5lcywgTlVMTCwgVEhJTkdfTk9fQ1JFQVRF fSwKQEAgLTI2MzksNiArMjY0OCwyMCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVy bl9pZCwKIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQT0xJQ1kiLCBNYXRjaEFueSwgIk9O IiwgTWF0Y2hBbnksICJXSVRIIiwgIkNIRUNLIikpCiAJCUNPTVBMRVRFX1dJVEgoIigiKTsKIAor CS8qIEFMVEVSIFBST1BFUlRZIEdSQVBIICovCisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAi UFJPUEVSVFkiLCAiR1JBUEgiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlf Zm9yX2xpc3Rfb2ZfcHJvcGdyYXBocyk7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFJP UEVSVFkiLCAiR1JBUEgiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIkFERCIsICJBTFRF UiIsICJEUk9QIiwgIk9XTkVSIFRPIiwgIlJFTkFNRSBUTyIsICJTRVQgU0NIRU1BIik7CisJZWxz ZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFJPUEVSVFkiLCAiR1JBUEgiLCBNYXRjaEFueSwgIkFE RHxBTFRFUnxEUk9QIikpCisJCUNPTVBMRVRFX1dJVEgoIlZFUlRFWCIsICJFREdFIik7CisJZWxz ZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFJPUEVSVFkiLCAiR1JBUEgiLCBNYXRjaEFueSwgIkFE RHxEUk9QIiwgIlZFUlRFWHxFREdFIikpCisJCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyIpOworCWVs c2UgaWYgKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJQUk9QRVJUWSIsICJHUkFQSCIsIE1hdGNoQW55 LCAiQUREIikgJiYgVGFpbE1hdGNoZXMoIkVER0UiKSkKKwkJQ09NUExFVEVfV0lUSCgiVEFCTEVT Iik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFJPUEVSVFkiLCAiR1JBUEgiLCBNYXRj aEFueSwgIkFMVEVSIiwgIlZFUlRFWHxFREdFIikpCisJCUNPTVBMRVRFX1dJVEgoIlRBQkxFIik7 CisKIAkvKiBBTFRFUiBSVUxFIDxuYW1lPiwgYWRkIE9OICovCiAJZWxzZSBpZiAoTWF0Y2hlcygi QUxURVIiLCAiUlVMRSIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiT04iKTsKQEAgLTMx MzIsNyArMzE1NSw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJ CQkgICJGT1JFSUdOIERBVEEgV1JBUFBFUiIsICJGT1JFSUdOIFRBQkxFIiwKIAkJCQkJICAiRlVO Q1RJT04iLCAiSU5ERVgiLCAiTEFOR1VBR0UiLCAiTEFSR0UgT0JKRUNUIiwKIAkJCQkJICAiTUFU RVJJQUxJWkVEIFZJRVciLCAiT1BFUkFUT1IiLCAiUE9MSUNZIiwKLQkJCQkJICAiUFJPQ0VEVVJF IiwgIlBST0NFRFVSQUwgTEFOR1VBR0UiLCAiUFVCTElDQVRJT04iLCAiUk9MRSIsCisJCQkJCSAg IlBST0NFRFVSRSIsICJQUk9DRURVUkFMIExBTkdVQUdFIiwgIlBST1BFUlRZIEdSQVBIIiwgIlBV QkxJQ0FUSU9OIiwgIlJPTEUiLAogCQkJCQkgICJST1VUSU5FIiwgIlJVTEUiLCAiU0NIRU1BIiwg IlNFUVVFTkNFIiwgIlNFUlZFUiIsCiAJCQkJCSAgIlNUQVRJU1RJQ1MiLCAiU1VCU0NSSVBUSU9O IiwgIlRBQkxFIiwKIAkJCQkJICAiVEFCTEVTUEFDRSIsICJURVhUIFNFQVJDSCIsICJUUkFOU0ZP Uk0gRk9SIiwKQEAgLTMxNzAsNiArMzE5Myw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBw YXR0ZXJuX2lkLAogCX0KIAllbHNlIGlmIChNYXRjaGVzKCJDT01NRU5UIiwgIk9OIiwgIlBST0NF RFVSQUwiLCAiTEFOR1VBR0UiKSkKIAkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlz dF9vZl9sYW5ndWFnZXMpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNPTU1FTlQiLCAiT04iLCAiUFJP UEVSVFkiLCAiR1JBUEgiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9y X2xpc3Rfb2ZfcHJvcGdyYXBocyk7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ09NTUVOVCIsICJPTiIs ICJSVUxFIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJPTiIpOwogCWVsc2UgaWYgKE1h dGNoZXMoIkNPTU1FTlQiLCAiT04iLCAiUlVMRSIsIE1hdGNoQW55LCAiT04iKSkKQEAgLTM0ODgs NiArMzUxMywyNSBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAllbHNl IGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUE9MSUNZIiwgTWF0Y2hBbnksICJPTiIsIE1hdGNoQW55 LCAiQVMiLCBNYXRjaEFueSwgIlVTSU5HIikpCiAJCUNPTVBMRVRFX1dJVEgoIigiKTsKIAorLyog Q1JFQVRFIFBST1BFUlRZIEdSQVBIICovCisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBS T1BFUlRZIikpCisJCUNPTVBMRVRFX1dJVEgoIkdSQVBIIik7CisJZWxzZSBpZiAoTWF0Y2hlcygi Q1JFQVRFIiwgIlBST1BFUlRZIiwgIkdSQVBIIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRI KCJWRVJURVgiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFJPUEVSVFkiLCAiR1JB UEgiLCBNYXRjaEFueSwgIlZFUlRFWHxOT0RFIikpCisJCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyIp OworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQUk9QRVJUWSIsICJHUkFQSCIsIE1hdGNo QW55LCAiVkVSVEVYfE5PREUiLCAiVEFCTEVTIikpCisJCUNPTVBMRVRFX1dJVEgoIigiKTsKKwll bHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFJPUEVSVFkiLCAiR1JBUEgiLCBNYXRjaEFueSwg IlZFUlRFWHxOT0RFIiwgIlRBQkxFUyIsICIoIikpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FV RVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRF IiwgIlBST1BFUlRZIiwgIkdSQVBIIiwgTWF0Y2hBbnksICJWRVJURVh8Tk9ERSIsICJUQUJMRVMi LCAiKCopIikpCisJCUNPTVBMRVRFX1dJVEgoIkVER0UiKTsKKwllbHNlIGlmIChIZWFkTWF0Y2hl cygiQ1JFQVRFIiwgIlBST1BFUlRZIiwgIkdSQVBIIikgJiYgVGFpbE1hdGNoZXMoIkVER0V8UkVM QVRJT05TSElQIikpCisJCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyIpOworCWVsc2UgaWYgKEhlYWRN YXRjaGVzKCJDUkVBVEUiLCAiUFJPUEVSVFkiLCAiR1JBUEgiKSAmJiBUYWlsTWF0Y2hlcygiRURH RXxSRUxBVElPTlNISVAiLCAiVEFCTEVTIikpCisJCUNPTVBMRVRFX1dJVEgoIigiKTsKKwllbHNl IGlmIChIZWFkTWF0Y2hlcygiQ1JFQVRFIiwgIlBST1BFUlRZIiwgIkdSQVBIIikgJiYgVGFpbE1h dGNoZXMoIkVER0V8UkVMQVRJT05TSElQIiwgIlRBQkxFUyIsICIoIikpCisJCUNPTVBMRVRFX1dJ VEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CiAKIC8qIENSRUFURSBQ VUJMSUNBVElPTiAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIs IE1hdGNoQW55KSkKQEAgLTQxOTcsNiArNDI0MSwxMiBAQCBtYXRjaF9wcmV2aW91c193b3Jkcyhp bnQgcGF0dGVybl9pZCwKIAllbHNlIGlmIChNYXRjaGVzKCJEUk9QIiwgIlBPTElDWSIsIE1hdGNo QW55LCAiT04iLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIkNBU0NBREUiLCAiUkVTVFJJ Q1QiKTsKIAorCS8qIERST1AgUFJPUEVSVFkgR1JBUEggKi8KKwllbHNlIGlmIChNYXRjaGVzKCJE Uk9QIiwgIlBST1BFUlRZIikpCisJCUNPTVBMRVRFX1dJVEgoIkdSQVBIIik7CisJZWxzZSBpZiAo TWF0Y2hlcygiRFJPUCIsICJQUk9QRVJUWSIsICJHUkFQSCIpKQorCQlDT01QTEVURV9XSVRIX1ND SEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9wcm9wZ3JhcGhzKTsKKwogCS8qIERST1AgUlVM RSAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkRST1AiLCAiUlVMRSIsIE1hdGNoQW55KSkKIAkJQ09N UExFVEVfV0lUSCgiT04iKTsKQEAgLTQ0NDEsNiArNDQ5MSw3IEBAIG1hdGNoX3ByZXZpb3VzX3dv cmRzKGludCBwYXR0ZXJuX2lkLAogCQkJCQkJCQkJCQkiTEFSR0UgT0JKRUNUIiwKIAkJCQkJCQkJ CQkJIlBBUkFNRVRFUiIsCiAJCQkJCQkJCQkJCSJQUk9DRURVUkUiLAorCQkJCQkJCQkJCQkiUFJP UEVSVFkgR1JBUEgiLAogCQkJCQkJCQkJCQkiUk9VVElORSIsCiAJCQkJCQkJCQkJCSJTQ0hFTUEi LAogCQkJCQkJCQkJCQkiU0VRVUVOQ0UiLApAQCAtNDU2OSw2ICs0NjIwLDE0IEBAIG1hdGNoX3By ZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJQ09NUExFVEVfV0lUSCgiRlJPTSIpOwog CX0KIAorLyogR1JBUEhfVEFCTEUgKi8KKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiR1JBUEhfVEFC TEUiKSkKKwkJQ09NUExFVEVfV0lUSCgiKCIpOworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJHUkFQ SF9UQUJMRSIsICIoIikpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9s aXN0X29mX3Byb3BncmFwaHMpOworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJHUkFQSF9UQUJMRSIs ICIoIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJNQVRDSCIpOworCiAvKiBHUk9VUCBC WSAqLwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJGUk9NIiwgTWF0Y2hBbnksICJHUk9VUCIpKQog CQlDT01QTEVURV9XSVRIKCJCWSIpOwpAQCAtNDg5Miw4ICs0OTUxLDEwIEBAIG1hdGNoX3ByZXZp b3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQlDT01QTEVURV9XSVRIKCJUQUJMRSIsICJDT0xV TU4iLCAiQUdHUkVHQVRFIiwgIkRBVEFCQVNFIiwgIkRPTUFJTiIsCiAJCQkJCSAgIkVWRU5UIFRS SUdHRVIiLCAiRk9SRUlHTiBUQUJMRSIsICJGVU5DVElPTiIsCiAJCQkJCSAgIkxBUkdFIE9CSkVD VCIsICJNQVRFUklBTElaRUQgVklFVyIsICJMQU5HVUFHRSIsCi0JCQkJCSAgIlBVQkxJQ0FUSU9O IiwgIlBST0NFRFVSRSIsICJST0xFIiwgIlJPVVRJTkUiLCAiU0NIRU1BIiwKKwkJCQkJICAiUFJP UEVSVFkgR1JBUEgiLCAiUFVCTElDQVRJT04iLCAiUFJPQ0VEVVJFIiwgIlJPTEUiLCAiUk9VVElO RSIsICJTQ0hFTUEiLAogCQkJCQkgICJTRVFVRU5DRSIsICJTVUJTQ1JJUFRJT04iLCAiVEFCTEVT UEFDRSIsICJUWVBFIiwgIlZJRVciKTsKKwllbHNlIGlmIChNYXRjaGVzKCJTRUNVUklUWSIsICJM QUJFTCIsICJPTiIsICJQUk9QRVJUWSIsICJHUkFQSCIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVN QV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9wcm9wZ3JhcGhzKTsKIAllbHNlIGlmIChNYXRjaGVz KCJTRUNVUklUWSIsICJMQUJFTCIsICJPTiIsIE1hdGNoQW55LCBNYXRjaEFueSkpCiAJCUNPTVBM RVRFX1dJVEgoIklTIik7CiAKQEAgLTUzMjQsNiArNTM4NSw4IEBAIG1hdGNoX3ByZXZpb3VzX3dv cmRzKGludCBwYXR0ZXJuX2lkLAogCQkJQ09NUExFVEVfV0lUSCgiT0JKRUNUIik7CiAJCWVsc2Ug aWYgKFRhaWxNYXRjaGVzKCJDUkVBVEV8QUxURVJ8RFJPUCIsICJNQVRFUklBTElaRUQiKSkKIAkJ CUNPTVBMRVRFX1dJVEgoIlZJRVciKTsKKwkJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURXxB TFRFUnxEUk9QIiwgIlBST1BFUlRZIikpCisJCQlDT01QTEVURV9XSVRIKCJHUkFQSCIpOwogCQll bHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFfEFMVEVSfERST1AiLCAiVEVYVCIpKQogCQkJQ09N UExFVEVfV0lUSCgiU0VBUkNIIik7CiAJCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEV8QUxU RVJ8RFJPUCIsICJVU0VSIikpCmRpZmYgLS1naXQgYS9zcmMvZmVfdXRpbHMvcHNxbHNjYW4ubCBi L3NyYy9mZV91dGlscy9wc3Fsc2Nhbi5sCmluZGV4IDBlNDBiZTk5NGE4Li4wMjI2NTAzZjQ5YiAx MDA2NDQKLS0tIGEvc3JjL2ZlX3V0aWxzL3BzcWxzY2FuLmwKKysrIGIvc3JjL2ZlX3V0aWxzL3Bz cWxzY2FuLmwKQEAgLTMwMiw2ICszMDIsOCBAQCBsZXNzX2VxdWFscwkJIjw9IgogZ3JlYXRlcl9l cXVhbHMJIj49IgogbGVzc19ncmVhdGVyCSI8PiIKIG5vdF9lcXVhbHMJCSIhPSIKKy8qIE5vdGUg dGhlcmUgaXMgbm8gbmVlZCBmb3IgbGVmdF9hcnJvdywgc2luY2UgIjwtIiBpcyBub3QgYSBzaW5n bGUgb3BlcmF0b3IuICovCityaWdodF9hcnJvdwkJIi0+IgogCiAvKgogICogInNlbGYiIGlzIHRo ZSBzZXQgb2YgY2hhcnMgdGhhdCBzaG91bGQgYmUgcmV0dXJuZWQgYXMgc2luZ2xlLWNoYXJhY3Rl cgpAQCAtMzEzLDcgKzMxNSw3IEBAIG5vdF9lcXVhbHMJCSIhPSIKICAqIElmIHlvdSBjaGFuZ2Ug ZWl0aGVyIHNldCwgYWRqdXN0IHRoZSBjaGFyYWN0ZXIgbGlzdHMgYXBwZWFyaW5nIGluIHRoZQog ICogcnVsZSBmb3IgIm9wZXJhdG9yIiEKICAqLwotc2VsZgkJCVssKClcW1xdLjtcOlwrXC1cKlwv XCVcXlw8XD5cPV0KK3NlbGYJCQlbLCgpXFtcXS47XDpcfFwrXC1cKlwvXCVcXlw8XD5cPV0KIG9w X2NoYXJzCQlbXH5cIVxAXCNcXlwmXHxcYFw/XCtcLVwqXC9cJVw8XD5cPV0KIG9wZXJhdG9yCQl7 b3BfY2hhcnN9KwogCkBAIC02NjEsNiArNjYzLDEwIEBAIG90aGVyCQkJLgogCQkJCQlFQ0hPOwog CQkJCX0KIAore3JpZ2h0X2Fycm93fQl7CisJCQkJCUVDSE87CisJCQkJfQorCiAJLyoKIAkgKiBU aGVzZSBydWxlcyBhcmUgc3BlY2lmaWMgdG8gcHNxbCAtLS0gdGhleSBpbXBsZW1lbnQgcGFyZW50 aGVzaXMKIAkgKiBjb3VudGluZyBhbmQgZGV0ZWN0aW9uIG9mIGNvbW1hbmQtZW5kaW5nIHNlbWlj b2xvbi4gIFRoZXNlIG11c3QKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZp bGUgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCmluZGV4IDE2N2Y5MWE2ZTNmLi5lMTI2 YWExOTliMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZQorKysgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCkBAIC04MSw3ICs4MSwxMiBAQCBDQVRBTE9HX0hF QURFUlMgOj0gXAogCXBnX3B1YmxpY2F0aW9uX25hbWVzcGFjZS5oIFwKIAlwZ19wdWJsaWNhdGlv bl9yZWwuaCBcCiAJcGdfc3Vic2NyaXB0aW9uLmggXAotCXBnX3N1YnNjcmlwdGlvbl9yZWwuaAor CXBnX3N1YnNjcmlwdGlvbl9yZWwuaCBcCisJcGdfcHJvcGdyYXBoX2VsZW1lbnQuaCBcCisJcGdf cHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwuaCBcCisJcGdfcHJvcGdyYXBoX2xhYmVsLmggXAorCXBn X3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eS5oIFwKKwlwZ19wcm9wZ3JhcGhfcHJvcGVydHkuaAog CiBHRU5FUkFURURfSEVBREVSUyA6PSAkKENBVEFMT0dfSEVBREVSUzolLmg9JV9kLmgpCiAKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL21lc29uLmJ1aWxkCmluZGV4IGY3MGQxZGFiYTUyLi5kZTIxOGMzZTk5ZSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZAorKysgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL21lc29uLmJ1aWxkCkBAIC02OSw2ICs2OSwxMSBAQCBjYXRhbG9nX2hlYWRlcnMgPSBb CiAgICdwZ19wdWJsaWNhdGlvbl9yZWwuaCcsCiAgICdwZ19zdWJzY3JpcHRpb24uaCcsCiAgICdw Z19zdWJzY3JpcHRpb25fcmVsLmgnLAorICAncGdfcHJvcGdyYXBoX2VsZW1lbnQuaCcsCisgICdw Z19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbC5oJywKKyAgJ3BnX3Byb3BncmFwaF9sYWJlbC5oJywK KyAgJ3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eS5oJywKKyAgJ3BnX3Byb3BncmFwaF9wcm9w ZXJ0eS5oJywKIF0KIAogIyBUaGUgLmRhdCBmaWxlcyB3ZSBuZWVkIGNhbiBqdXN0IGJlIGxpc3Rl ZCBhbHBoYWJldGljYWxseS4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2xh c3MuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2xhc3MuaAppbmRleCAwZmMyYzA5M2IwZC4u NzI5YTJkNzAxNTMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2xhc3MuaAor KysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NsYXNzLmgKQEAgLTE3MSw2ICsxNzEsNyBAQCBN QUtFX1NZU0NBQ0hFKFJFTE5BTUVOU1AsIHBnX2NsYXNzX3JlbG5hbWVfbnNwX2luZGV4LCAxMjgp OwogI2RlZmluZQkJICBSRUxLSU5EX0ZPUkVJR05fVEFCTEUgICAnZicJLyogZm9yZWlnbiB0YWJs ZSAqLwogI2RlZmluZQkJICBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFICdwJyAvKiBwYXJ0aXRp b25lZCB0YWJsZSAqLwogI2RlZmluZQkJICBSRUxLSU5EX1BBUlRJVElPTkVEX0lOREVYICdJJyAv KiBwYXJ0aXRpb25lZCBpbmRleCAqLworI2RlZmluZQkJICBSRUxLSU5EX1BST1BHUkFQSAkJICAn ZycJLyogcHJvcGVydHkgZ3JhcGggKi8KIAogI2RlZmluZQkJICBSRUxQRVJTSVNURU5DRV9QRVJN QU5FTlQJJ3AnIC8qIHJlZ3VsYXIgdGFibGUgKi8KICNkZWZpbmUJCSAgUkVMUEVSU0lTVEVOQ0Vf VU5MT0dHRUQJJ3UnIC8qIHVubG9nZ2VkIHBlcm1hbmVudCB0YWJsZSAqLwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQKaW5kZXggMmRjYzJkNDJkYWMuLjFhMzE4ZTY0NmE0IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQKQEAgLTM4NzEsNiArMzg3MSw5IEBACiAgIHByb2FyZ3R5cGVzID0+ICdvaWQgb2lk JywgcHJvc3JjID0+ICdvaWRnZScgfSwKIAogIyBTeXN0ZW0tdmlldyBzdXBwb3J0IGZ1bmN0aW9u cworeyBvaWQgPT4gJzgzMDInLCBkZXNjciA9PiAnc291cmNlIHRleHQgb2YgYSBwcm9wZXJ0eSBn cmFwaCcsCisgIHByb25hbWUgPT4gJ3BnX2dldF9wcm9wZ3JhcGhkZWYnLCBwcm92b2xhdGlsZSA9 PiAncycsIHByb3JldHR5cGUgPT4gJ3RleHQnLAorICBwcm9hcmd0eXBlcyA9PiAnb2lkJywgcHJv c3JjID0+ICdwZ19nZXRfcHJvcGdyYXBoZGVmJyB9LAogeyBvaWQgPT4gJzE1NzMnLCBkZXNjciA9 PiAnc291cmNlIHRleHQgb2YgYSBydWxlJywKICAgcHJvbmFtZSA9PiAncGdfZ2V0X3J1bGVkZWYn LCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ3RleHQnLAogICBwcm9hcmd0eXBl cyA9PiAnb2lkJywgcHJvc3JjID0+ICdwZ19nZXRfcnVsZWRlZicgfSwKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnQuaCBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uMmJjMjA2NmI2YzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb3BncmFwaF9lbGVtZW50LmgKQEAgLTAsMCArMSwxMDMgQEAKKy8qLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICoKKyAqIHBnX3Byb3BncmFwaF9lbGVtZW50LmgKKyAqCSAgZGVmaW5pdGlv biBvZiB0aGUgInByb3BlcnR5IGdyYXBoIGVsZW1lbnRzIiBzeXN0ZW0gY2F0YWxvZyAocGdfcHJv cGdyYXBoX2VsZW1lbnQpCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQs IFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmln aHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoK KyAqIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnQuaAorICoKKyAqIE5P VEVTCisgKgkgIFRoZSBDYXRhbG9nLnBtIG1vZHVsZSByZWFkcyB0aGlzIGZpbGUgYW5kIGRlcml2 ZXMgc2NoZW1hCisgKgkgIGluZm9ybWF0aW9uLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICov CisjaWZuZGVmIFBHX1BST1BHUkFQSF9FTEVNRU5UX0gKKyNkZWZpbmUgUEdfUFJPUEdSQVBIX0VM RU1FTlRfSAorCisjaW5jbHVkZSAiY2F0YWxvZy9nZW5ia2kuaCIKKyNpbmNsdWRlICJjYXRhbG9n L3BnX3Byb3BncmFwaF9lbGVtZW50X2QuaCIKKworLyogLS0tLS0tLS0tLS0tLS0tLQorICoJCXBn X3Byb3BncmFwaF9lbGVtZW50IGRlZmluaXRpb24uICBjcHAgdHVybnMgdGhpcyBpbnRvCisgKgkJ dHlwZWRlZiBzdHJ1Y3QgRm9ybURhdGFfcGdfcHJvcGdyYXBoX2VsZW1lbnQKKyAqIC0tLS0tLS0t LS0tLS0tLS0KKyAqLworQ0FUQUxPRyhwZ19wcm9wZ3JhcGhfZWxlbWVudCw4Mjk5LFByb3BncmFw aEVsZW1lbnRSZWxhdGlvbklkKQoreworCU9pZAkJCW9pZDsKKworCS8qIE9JRCBvZiB0aGUgcHJv cGVydHkgZ3JhcGggcmVsYXRpb24gKi8KKwlPaWQJCQlwZ2VwZ2lkIEJLSV9MT09LVVAocGdfY2xh c3MpOworCisJLyogT0lEIG9mIHRoZSBlbGVtZW50IHRhYmxlICovCisJT2lkCQkJcGdlcmVsaWQg QktJX0xPT0tVUChwZ19jbGFzcyk7CisKKwkvKiBlbGVtZW50IGFsaWFzICovCisJTmFtZURhdGEJ cGdlYWxpYXM7CisKKwkvKiB2ZXJ0ZXggb3IgZWRnZT8gLS0gc2VlIFBHRUtJTkRfKiBiZWxvdyAq LworCWNoYXIJCXBnZWtpbmQ7CisKKwkvKiBmb3IgZWRnZXM6IHNvdXJjZSB2ZXJ0ZXggKi8KKwlP aWQJCQlwZ2VzcmN2ZXJ0ZXhpZCBCS0lfTE9PS1VQX09QVChwZ19wcm9wZ3JhcGhfZWxlbWVudCk7 CisKKwkvKiBmb3IgZWRnZXM6IGRlc3RpbmF0aW9uIHZlcnRleCAqLworCU9pZAkJCXBnZWRlc3R2 ZXJ0ZXhpZCBCS0lfTE9PS1VQX09QVChwZ19wcm9wZ3JhcGhfZWxlbWVudCk7CisKKyNpZmRlZiBD QVRBTE9HX1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwor CS8qIGVsZW1lbnQga2V5IChjb2x1bW4gbnVtYmVycyBpbiBwZ2VyZWxpZCByZWxhdGlvbikgKi8K KwlpbnQxNgkJcGdla2V5WzFdIEJLSV9GT1JDRV9OT1RfTlVMTDsKKworCS8qCisJICogZm9yIGVk Z2VzOiBzb3VyY2UgdmVydGV4IGtleSAoY29sdW1uIG51bWJlcnMgaW4gcGdlcmVsaWQgcmVsYXRp b24pCisJICovCisJaW50MTYJCXBnZXNyY2tleVsxXTsKKworCS8qCisJICogZm9yIGVkZ2VzOiBz b3VyY2UgdmVydGV4IHRhYmxlIHJlZmVyZW5jZWQgY29sdW1ucyAoY29sdW1uIG51bWJlcnMgaW4K KwkgKiByZWxhdGlvbiByZWFjaGVkIHZpYSBwZ2VzcmN2ZXJ0ZXhpZCkKKwkgKi8KKwlpbnQxNgkJ cGdlc3JjcmVmWzFdOworCisJLyoKKwkgKiBmb3IgZWRnZXM6IGRlc3RpbmF0aW9uIHZlcnRleCBr ZXkgKGNvbHVtbiBudW1iZXJzIGluIHBnZXJlbGlkIHJlbGF0aW9uKQorCSAqLworCWludDE2CQlw Z2VkZXN0a2V5WzFdOworCisJLyoKKwkgKiBmb3IgZWRnZXM6IGRlc3RpbmF0aW9uIHZlcnRleCB0 YWJsZSByZWZlcmVuY2VkIGNvbHVtbnMgKGNvbHVtbiBudW1iZXJzCisJICogaW4gcmVsYXRpb24g cmVhY2hlZCB2aWEgcGdlZGVzdHZlcnRleGlkKQorCSAqLworCWludDE2CQlwZ2VkZXN0cmVmWzFd OworI2VuZGlmCit9IEZvcm1EYXRhX3BnX3Byb3BncmFwaF9lbGVtZW50OworCisvKiAtLS0tLS0t LS0tLS0tLS0tCisgKgkJRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudCBjb3JyZXNwb25kcyB0byBh IHBvaW50ZXIgdG8gYSB0dXBsZSB3aXRoCisgKgkJdGhlIGZvcm1hdCBvZiBwZ19wcm9wZ3JhcGhf ZWxlbWVudCByZWxhdGlvbi4KKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBGb3Jt RGF0YV9wZ19wcm9wZ3JhcGhfZWxlbWVudCAqRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudDsKKwor REVDTEFSRV9UT0FTVChwZ19wcm9wZ3JhcGhfZWxlbWVudCwgODMxNSwgODMxNik7CisKK0RFQ0xB UkVfVU5JUVVFX0lOREVYX1BLRVkocGdfcHJvcGdyYXBoX2VsZW1lbnRfb2lkX2luZGV4LCA4MzAw LCBQcm9wZ3JhcGhFbGVtZW50T2JqZWN0SW5kZXhJZCwgcGdfcHJvcGdyYXBoX2VsZW1lbnQsIGJ0 cmVlKG9pZCBvaWRfb3BzKSk7CitERUNMQVJFX1VOSVFVRV9JTkRFWChwZ19wcm9wZ3JhcGhfZWxl bWVudF9hbGlhc19pbmRleCwgODMwMSwgUHJvcGdyYXBoRWxlbWVudEFsaWFzSW5kZXhJZCwgcGdf cHJvcGdyYXBoX2VsZW1lbnQsIGJ0cmVlKHBnZXBnaWQgb2lkX29wcywgcGdlYWxpYXMgbmFtZV9v cHMpKTsKKworTUFLRV9TWVNDQUNIRShQUk9QR1JBUEhFTE9JRCwgcGdfcHJvcGdyYXBoX2VsZW1l bnRfb2lkX2luZGV4LCAxMjgpOworTUFLRV9TWVNDQUNIRShQUk9QR1JBUEhFTEFMSUFTLCBwZ19w cm9wZ3JhcGhfZWxlbWVudF9hbGlhc19pbmRleCwgMTI4KTsKKworI2lmZGVmIEVYUE9TRV9UT19D TElFTlRfQ09ERQorCisvKgorICogU3ltYm9saWMgdmFsdWVzIGZvciBwZ2VraW5kIGNvbHVtbgor ICovCisjZGVmaW5lIFBHRUtJTkRfVkVSVEVYICd2JworI2RlZmluZSBQR0VLSU5EX0VER0UgJ2Un CisKKyNlbmRpZgkJCQkJCQkvKiBFWFBPU0VfVE9fQ0xJRU5UX0NPREUgKi8KKworI2VuZGlmCQkJ CQkJCS8qIFBHX1BST1BHUkFQSF9FTEVNRU5UX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwuaCBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uOTE4NTFhMTkyNzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsLmgKQEAgLTAsMCArMSw1MSBAQAor LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwuaAor ICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdl bnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsLmgKKyAqCisgKiBOT1RFUworICoJICBU aGUgQ2F0YWxvZy5wbSBtb2R1bGUgcmVhZHMgdGhpcyBmaWxlIGFuZCBkZXJpdmVzIHNjaGVtYQor ICoJICBpbmZvcm1hdGlvbi4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lmbmRlZiBQ R19QUk9QR1JBUEhfRUxFTUVOVF9MQUJFTF9ICisjZGVmaW5lIFBHX1BST1BHUkFQSF9FTEVNRU5U X0xBQkVMX0gKKworI2luY2x1ZGUgImNhdGFsb2cvZ2VuYmtpLmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbF9kLmgiCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0K KyAqCQlwZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbCBkZWZpbml0aW9uLiAgY3BwIHR1cm5zIHRo aXMgaW50bworICoJCXR5cGVkZWYgc3RydWN0IEZvcm1EYXRhX3BnX3Byb3BncmFwaF9lbGVtZW50 X2xhYmVsCisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK0NBVEFMT0cocGdfcHJvcGdyYXBoX2Vs ZW1lbnRfbGFiZWwsODMwNSxQcm9wZ3JhcGhFbGVtZW50TGFiZWxSZWxhdGlvbklkKQoreworCU9p ZAkJCW9pZDsKKworCS8qIE9JRCBvZiB0aGUgbGFiZWwgKi8KKwlPaWQJCQlwZ2VsbGFiZWxpZCBC S0lfTE9PS1VQKHBnX3Byb3BncmFwaF9sYWJlbCk7CisKKwkvKiBPSUQgb2YgdGhlIHByb3BlcnR5 IGdyYXBoIGVsZW1lbnQgKi8KKwlPaWQJCQlwZ2VsZWxpZCBCS0lfTE9PS1VQKHBnX3Byb3BncmFw aF9lbGVtZW50KTsKK30gRm9ybURhdGFfcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWw7CisKKy8q IC0tLS0tLS0tLS0tLS0tLS0KKyAqCQlGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsIGNv cnJlc3BvbmRzIHRvIGEgcG9pbnRlciB0byBhIHR1cGxlIHdpdGgKKyAqCQl0aGUgZm9ybWF0IG9m IHBnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsIHJlbGF0aW9uLgorICogLS0tLS0tLS0tLS0tLS0t LQorICovCit0eXBlZGVmIEZvcm1EYXRhX3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsICpGb3Jt X3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsOworCitERUNMQVJFX1VOSVFVRV9JTkRFWF9QS0VZ KHBnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsX29pZF9pbmRleCwgODMxMiwgUHJvcGdyYXBoRWxl bWVudExhYmVsT2JqZWN0SW5kZXhJZCwgcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwsIGJ0cmVl KG9pZCBvaWRfb3BzKSk7CitERUNMQVJFX1VOSVFVRV9JTkRFWChwZ19wcm9wZ3JhcGhfZWxlbWVu dF9sYWJlbF9lbGVtZW50X2xhYmVsX2luZGV4LCA4MzEzLCBQcm9wZ3JhcGhFbGVtZW50TGFiZWxF bGVtZW50TGFiZWxJbmRleElkLCBwZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbCwgYnRyZWUocGdl bGVsaWQgb2lkX29wcywgcGdlbGxhYmVsaWQgb2lkX29wcykpOworREVDTEFSRV9JTkRFWChwZ19w cm9wZ3JhcGhfZWxlbWVudF9sYWJlbF9sYWJlbF9pbmRleCwgODMxNywgUHJvcGdyYXBoRWxlbWVu dExhYmVsTGFiZWxJbmRleElkLCBwZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbCwgYnRyZWUocGdl bGxhYmVsaWQgb2lkX29wcykpOworCitNQUtFX1NZU0NBQ0hFKFBST1BHUkFQSEVMRU1FTlRMQUJF TEVMRU1FTlRMQUJFTCwgcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWxfZWxlbWVudF9sYWJlbF9p bmRleCwgMTI4KTsKKworI2VuZGlmCQkJCQkJCS8qIFBHX1BST1BHUkFQSF9FTEVNRU5UX0xBQkVM X0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX2xhYmVs LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb3BncmFwaF9sYWJlbC5oCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jNmI3MTEzNTFiNQotLS0gL2Rldi9udWxsCisr KyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX2xhYmVsLmgKQEAgLTAsMCArMSw1 MSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfcHJvcGdyYXBoX2xhYmVsLmgKKyAq CisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwg RGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50 cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wcm9wZ3JhcGhfbGFiZWwuaAorICoKKyAqIE5PVEVTCisgKgkgIFRoZSBDYXRhbG9n LnBtIG1vZHVsZSByZWFkcyB0aGlzIGZpbGUgYW5kIGRlcml2ZXMgc2NoZW1hCisgKgkgIGluZm9y bWF0aW9uLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaWZuZGVmIFBHX1BST1BHUkFQ SF9MQUJFTF9ICisjZGVmaW5lIFBHX1BST1BHUkFQSF9MQUJFTF9ICisKKyNpbmNsdWRlICJjYXRh bG9nL2dlbmJraS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX2xhYmVsX2QuaCIK KworLyogLS0tLS0tLS0tLS0tLS0tLQorICoJCXBnX3Byb3BncmFwaF9sYWJlbCBkZWZpbml0aW9u LiAgY3BwIHR1cm5zIHRoaXMgaW50bworICoJCXR5cGVkZWYgc3RydWN0IEZvcm1EYXRhX3BnX3By b3BncmFwaF9sYWJlbAorICogLS0tLS0tLS0tLS0tLS0tLQorICovCitDQVRBTE9HKHBnX3Byb3Bn cmFwaF9sYWJlbCw4MzAzLFByb3BncmFwaExhYmVsUmVsYXRpb25JZCkKK3sKKwlPaWQJCQlvaWQ7 CisKKwkvKiBPSUQgb2YgdGhlIHByb3BlcnR5IGdyYXBoIHJlbGF0aW9uICovCisJT2lkCQkJcGds cGdpZCBCS0lfTE9PS1VQKHBnX2NsYXNzKTsKKworCS8qIGxhYmVsIG5hbWUgKi8KKwlOYW1lRGF0 YQlwZ2xsYWJlbDsKK30gRm9ybURhdGFfcGdfcHJvcGdyYXBoX2xhYmVsOworCisvKiAtLS0tLS0t LS0tLS0tLS0tCisgKgkJRm9ybV9wZ19wcm9wZ3JhcGhfbGFiZWwgY29ycmVzcG9uZHMgdG8gYSBw b2ludGVyIHRvIGEgdHVwbGUgd2l0aAorICoJCXRoZSBmb3JtYXQgb2YgcGdfcHJvcGdyYXBoX2xh YmVsIHJlbGF0aW9uLgorICogLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIEZvcm1EYXRh X3BnX3Byb3BncmFwaF9sYWJlbCAqRm9ybV9wZ19wcm9wZ3JhcGhfbGFiZWw7CisKK0RFQ0xBUkVf VU5JUVVFX0lOREVYX1BLRVkocGdfcHJvcGdyYXBoX2xhYmVsX29pZF9pbmRleCwgODMwNCwgUHJv cGdyYXBoTGFiZWxPYmplY3RJbmRleElkLCBwZ19wcm9wZ3JhcGhfbGFiZWwsIGJ0cmVlKG9pZCBv aWRfb3BzKSk7CitERUNMQVJFX1VOSVFVRV9JTkRFWChwZ19wcm9wZ3JhcGhfbGFiZWxfZ3JhcGhf bmFtZV9pbmRleCwgODMxNCwgUHJvcGdyYXBoTGFiZWxHcmFwaE5hbWVJbmRleElkLCBwZ19wcm9w Z3JhcGhfbGFiZWwsIGJ0cmVlKHBnbHBnaWQgb2lkX29wcywgcGdsbGFiZWwgbmFtZV9vcHMpKTsK KworTUFLRV9TWVNDQUNIRShQUk9QR1JBUEhMQUJFTE9JRCwgcGdfcHJvcGdyYXBoX2xhYmVsX29p ZF9pbmRleCwgMTI4KTsKK01BS0VfU1lTQ0FDSEUoUFJPUEdSQVBITEFCRUxOQU1FLCBwZ19wcm9w Z3JhcGhfbGFiZWxfZ3JhcGhfbmFtZV9pbmRleCwgMTI4KTsKKworI2VuZGlmCQkJCQkJCS8qIFBH X1BST1BHUkFQSF9MQUJFTF9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9w Z3JhcGhfbGFiZWxfcHJvcGVydHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uYTk1OTUyMTU2NzUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eS5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICoKKyAqIHBnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eS5oCisgKgorICog UG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVs b3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2Yg dGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5LmgKKyAqCisgKiBOT1RFUworICoJICBUaGUgQ2F0 YWxvZy5wbSBtb2R1bGUgcmVhZHMgdGhpcyBmaWxlIGFuZCBkZXJpdmVzIHNjaGVtYQorICoJICBp bmZvcm1hdGlvbi4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lmbmRlZiBQR19QUk9Q R1JBUEhfTEFCRUxfUFJPUEVSVFlfSAorI2RlZmluZSBQR19QUk9QR1JBUEhfTEFCRUxfUFJPUEVS VFlfSAorCisjaW5jbHVkZSAiY2F0YWxvZy9nZW5ia2kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3Bn X3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eV9kLmgiCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAq CQlwZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkgZGVmaW5pdGlvbi4gIGNwcCB0dXJucyB0aGlz IGludG8KKyAqCQl0eXBlZGVmIHN0cnVjdCBGb3JtRGF0YV9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJv cGVydHkKKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLworQ0FUQUxPRyhwZ19wcm9wZ3JhcGhfbGFi ZWxfcHJvcGVydHksODMxOCxQcm9wZ3JhcGhMYWJlbFByb3BlcnR5UmVsYXRpb25JZCkKK3sKKwlP aWQJCQlvaWQ7CisKKwkvKiBPSUQgb2YgdGhlIHByb3BlcnR5ICovCisJT2lkCQkJcGxwcHJvcGlk IEJLSV9MT09LVVAocGdfcHJvcGdyYXBoX3Byb3BlcnR5KTsKKworCS8qIE9JRCBvZiB0aGUgZWxl bWVudCBsYWJlbCAqLworCU9pZAkJCXBscGVsbGFiZWxpZCBCS0lfTE9PS1VQKHBnX3Byb3BncmFw aF9lbGVtZW50X2xhYmVsKTsKKworI2lmZGVmIENBVEFMT0dfVkFSTEVOCQkJLyogdmFyaWFibGUt bGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJlICovCisKKwkvKiBwcm9wZXJ0eSBleHByZXNzaW9uICov CisJcGdfbm9kZV90cmVlIHBscGV4cHIgQktJX0ZPUkNFX05PVF9OVUxMOworCisjZW5kaWYKK30g Rm9ybURhdGFfcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5OworCisvKiAtLS0tLS0tLS0tLS0t LS0tCisgKgkJRm9ybV9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkgY29ycmVzcG9uZHMgdG8g YSBwb2ludGVyIHRvIGEgdHVwbGUgd2l0aAorICoJCXRoZSBmb3JtYXQgb2YgcGdfcHJvcGdyYXBo X2xhYmVsX3Byb3BlcnR5IHJlbGF0aW9uLgorICogLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBl ZGVmIEZvcm1EYXRhX3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eSAqRm9ybV9wZ19wcm9wZ3Jh cGhfbGFiZWxfcHJvcGVydHk7CisKK0RFQ0xBUkVfVE9BU1QocGdfcHJvcGdyYXBoX2xhYmVsX3By b3BlcnR5LCA4MzE5LCA4MzIwKTsKKworREVDTEFSRV9VTklRVUVfSU5ERVhfUEtFWShwZ19wcm9w Z3JhcGhfbGFiZWxfcHJvcGVydHlfb2lkX2luZGV4LCA4MzIxLCBQcm9wZ3JhcGhMYWJlbFByb3Bl cnR5T2JqZWN0SW5kZXhJZCwgcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5LCBidHJlZShvaWQg b2lkX29wcykpOworREVDTEFSRV9VTklRVUVfSU5ERVgocGdfcHJvcGdyYXBoX2xhYmVsX3Byb3Bl cnR5X2xhYmVsX3Byb3BfaW5kZXgsIDgzMjIsIFByb3BncmFwaExhYmVsUHJvcGVydHlMYWJlbFBy b3BJbmRleElkLCBwZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHksIGJ0cmVlKHBscGVsbGFiZWxp ZCBvaWRfb3BzLCBwbHBwcm9waWQgb2lkX29wcykpOworCitNQUtFX1NZU0NBQ0hFKFBST1BHUkFQ SExBQkVMUFJPUCwgcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5X2xhYmVsX3Byb3BfaW5kZXgs IDEyOCk7CisKKyNlbmRpZgkJCQkJCQkvKiBQR19QUk9QR1JBUEhfTEFCRUxfUFJPUEVSVFlfSCAq LwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9wZ3JhcGhfcHJvcGVydHku aCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX3Byb3BlcnR5LmgKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI4OTIxYWNlMzBjCi0tLSAvZGV2L251bGwK KysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9wZ3JhcGhfcHJvcGVydHkuaApAQCAtMCww ICsxLDU0IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ19wcm9wZ3JhcGhfcHJvcGVy dHkuaAorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0 LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3Byb3BncmFwaF9wcm9wZXJ0eS5oCisgKgorICogTk9URVMKKyAqCSAg VGhlIENhdGFsb2cucG0gbW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQgZGVyaXZlcyBzY2hlbWEK KyAqCSAgaW5mb3JtYXRpb24uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpZm5kZWYg UEdfUFJPUEdSQVBIX1BST1BFUlRZX0gKKyNkZWZpbmUgUEdfUFJPUEdSQVBIX1BST1BFUlRZX0gK KworI2luY2x1ZGUgImNhdGFsb2cvZ2VuYmtpLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9w Z3JhcGhfcHJvcGVydHlfZC5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJcGdfcHJvcGdy YXBoX3Byb3BlcnR5IGRlZmluaXRpb24uICBjcHAgdHVybnMgdGhpcyBpbnRvCisgKgkJdHlwZWRl ZiBzdHJ1Y3QgRm9ybURhdGFfcGdfcHJvcGdyYXBoX3Byb3BlcnR5CisgKiAtLS0tLS0tLS0tLS0t LS0tCisgKi8KK0NBVEFMT0cocGdfcHJvcGdyYXBoX3Byb3BlcnR5LDgzMDYsUHJvcGdyYXBoUHJv cGVydHlSZWxhdGlvbklkKQoreworCU9pZAkJCW9pZDsKKworCS8qIE9JRCBvZiB0aGUgcHJvcGVy dHkgZ3JhcGggcmVsYXRpb24gKi8KKwlPaWQJCQlwZ3BwZ2lkIEJLSV9MT09LVVAocGdfY2xhc3Mp OworCisJLyogcHJvcGVydHkgbmFtZSAqLworCU5hbWVEYXRhCXBncG5hbWU7CisKKwkvKiBkYXRh IHR5cGUgb2YgdGhlIHByb3BlcnR5ICovCisJT2lkCQkJcGdwdHlwaWQgQktJX0xPT0tVUF9PUFQo cGdfdHlwZSk7Cit9IEZvcm1EYXRhX3BnX3Byb3BncmFwaF9wcm9wZXJ0eTsKKworLyogLS0tLS0t LS0tLS0tLS0tLQorICoJCUZvcm1fcGdfcHJvcGdyYXBoX3Byb3BlcnR5IGNvcnJlc3BvbmRzIHRv IGEgcG9pbnRlciB0byBhIHR1cGxlIHdpdGgKKyAqCQl0aGUgZm9ybWF0IG9mIHBnX3Byb3BncmFw aF9wcm9wZXJ0eSByZWxhdGlvbi4KKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBG b3JtRGF0YV9wZ19wcm9wZ3JhcGhfcHJvcGVydHkgKkZvcm1fcGdfcHJvcGdyYXBoX3Byb3BlcnR5 OworCitERUNMQVJFX1VOSVFVRV9JTkRFWF9QS0VZKHBnX3Byb3BncmFwaF9wcm9wZXJ0eV9vaWRf aW5kZXgsIDgzMDcsIFByb3BncmFwaFByb3BlcnR5T2JqZWN0SW5kZXhJZCwgcGdfcHJvcGdyYXBo X3Byb3BlcnR5LCBidHJlZShvaWQgb2lkX29wcykpOworREVDTEFSRV9VTklRVUVfSU5ERVgocGdf cHJvcGdyYXBoX3Byb3BlcnR5X25hbWVfaW5kZXgsIDgzMDgsIFByb3BncmFwaFByb3BlcnR5TmFt ZUluZGV4SWQsIHBnX3Byb3BncmFwaF9wcm9wZXJ0eSwgYnRyZWUocGdwcGdpZCBvaWRfb3BzLCBw Z3BuYW1lIG5hbWVfb3BzKSk7CisKK01BS0VfU1lTQ0FDSEUoUFJPUEdSQVBIUFJPUE9JRCwgcGdf cHJvcGdyYXBoX3Byb3BlcnR5X29pZF9pbmRleCwgMTI4KTsKK01BS0VfU1lTQ0FDSEUoUFJPUEdS QVBIUFJPUE5BTUUsIHBnX3Byb3BncmFwaF9wcm9wZXJ0eV9uYW1lX2luZGV4LCAxMjgpOworCisj ZW5kaWYJCQkJCQkJLyogUEdfUFJPUEdSQVBIX1BST1BFUlRZX0ggKi8KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2NvbW1hbmRzL3Byb3BncmFwaGNtZHMuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRz L3Byb3BncmFwaGNtZHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u MjQ0MGJkNGE2MGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9wcm9w Z3JhcGhjbWRzLmgKQEAgLTAsMCArMSwyMyBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICog cHJvcGdyYXBoY21kcy5oCisgKgkgIHByb3RvdHlwZXMgZm9yIHByb3BncmFwaGNtZHMuYy4KKyAq CisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwg RGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50 cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUvY29t bWFuZHMvcHJvcGdyYXBoY21kcy5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2lm bmRlZiBQUk9QR1JBUEhDTURTX0gKKyNkZWZpbmUgUFJPUEdSQVBIQ01EU19ICisKKyNpbmNsdWRl ICJjYXRhbG9nL29iamVjdGFkZHJlc3MuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2Vfbm9kZS5o IgorCitleHRlcm4gT2JqZWN0QWRkcmVzcyBDcmVhdGVQcm9wR3JhcGgoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBjb25zdCBDcmVhdGVQcm9wR3JhcGhTdG10ICpzdG10KTsKK2V4dGVybiBPYmplY3RBZGRy ZXNzIEFsdGVyUHJvcEdyYXBoKFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgQWx0ZXJQcm9wR3Jh cGhTdG10ICpzdG10KTsKKworI2VuZGlmCQkJCQkJCS8qIFBST1BHUkFQSENNRFNfSCAqLwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDBmOTQ2MjQ5M2UzLi5jNTE2MmZlZGNkMSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaApAQCAtNjg0LDYgKzY4NCwxOSBAQCB0eXBlZGVmIHN0cnVjdCBSYW5nZVRh YmxlRnVuY0NvbAogCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0x IGlmIHVua25vd24gKi8KIH0gUmFuZ2VUYWJsZUZ1bmNDb2w7CiAKKy8qCisgKiBSYW5nZUdyYXBo VGFibGUgLSByYXcgZm9ybSBvZiBHUkFQSF9UQUJMRSBjbGF1c2UKKyAqLwordHlwZWRlZiBzdHJ1 Y3QgUmFuZ2VHcmFwaFRhYmxlCit7CisJTm9kZVRhZwkJdHlwZTsKKwlSYW5nZVZhciAgICpncmFw aF9uYW1lOworCXN0cnVjdCBHcmFwaFBhdHRlcm4gKmdyYXBoX3BhdHRlcm47CisJTGlzdAkgICAq Y29sdW1uczsKKwlBbGlhcwkgICAqYWxpYXM7CQkJLyogdGFibGUgYWxpYXMgJiBvcHRpb25hbCBj b2x1bW4gYWxpYXNlcyAqLworCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9jYXRpb24s IG9yIC0xIGlmIHVua25vd24gKi8KK30gUmFuZ2VHcmFwaFRhYmxlOworCiAvKgogICogUmFuZ2VU YWJsZVNhbXBsZSAtIFRBQkxFU0FNUExFIGFwcGVhcmluZyBpbiBhIHJhdyBGUk9NIGNsYXVzZQog ICoKQEAgLTk1MCw2ICs5NjMsNDIgQEAgdHlwZWRlZiBzdHJ1Y3QgUGFydGl0aW9uQ21kCiAJYm9v bAkJY29uY3VycmVudDsKIH0gUGFydGl0aW9uQ21kOwogCisvKgorICogTm9kZXMgZm9yIGdyYXBo IHBhdHRlcm4KKyAqLworCit0eXBlZGVmIHN0cnVjdCBHcmFwaFBhdHRlcm4KK3sKKwlOb2RlVGFn CQl0eXBlOworCUxpc3QJICAgKnBhdGhfcGF0dGVybl9saXN0OworCU5vZGUJICAgKndoZXJlQ2xh dXNlOworfSBHcmFwaFBhdHRlcm47CisKK3R5cGVkZWYgZW51bSBHcmFwaEVsZW1lbnRQYXR0ZXJu S2luZAoreworCVZFUlRFWF9QQVRURVJOLAorCUVER0VfUEFUVEVSTl9MRUZULAorCUVER0VfUEFU VEVSTl9SSUdIVCwKKwlFREdFX1BBVFRFUk5fQU5ZLAorCVBBUkVOX0VYUFIsCit9IEdyYXBoRWxl bWVudFBhdHRlcm5LaW5kOworCisjZGVmaW5lIElTX0VER0VfUEFUVEVSTihraW5kKSAoKGtpbmQp ID09IEVER0VfUEFUVEVSTl9BTlkgfHwgXAorCQkJCQkJCSAgIChraW5kKSA9PSBFREdFX1BBVFRF Uk5fUklHSFQgfHwgXAorCQkJCQkJCSAgIChraW5kKSA9PSBFREdFX1BBVFRFUk5fTEVGVCkKKwor dHlwZWRlZiBzdHJ1Y3QgR3JhcGhFbGVtZW50UGF0dGVybgoreworCU5vZGVUYWcJCXR5cGU7CisJ R3JhcGhFbGVtZW50UGF0dGVybktpbmQga2luZDsKKwljb25zdCBjaGFyICp2YXJpYWJsZTsKKwlO b2RlCSAgICpsYWJlbGV4cHI7CisJTGlzdAkgICAqc3ViZXhwcjsKKwlOb2RlCSAgICp3aGVyZUNs YXVzZTsKKwlMaXN0CSAgICpxdWFudGlmaWVyOworCVBhcnNlTG9jCWxvY2F0aW9uOworfSBHcmFw aEVsZW1lbnRQYXR0ZXJuOworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoJTm9kZXMgZm9yIGEg UXVlcnkgdHJlZQogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCkBAIC0xMDIyLDYgKzEwNzEsNyBAQCB0 eXBlZGVmIGVudW0gUlRFS2luZAogCVJURV9WQUxVRVMsCQkJCQkvKiBWQUxVRVMgKDxleHBybGlz dD4pLCAoPGV4cHJsaXN0PiksIC4uLiAqLwogCVJURV9DVEUsCQkJCQkvKiBjb21tb24gdGFibGUg ZXhwciAoV0lUSCBsaXN0IGVsZW1lbnQpICovCiAJUlRFX05BTUVEVFVQTEVTVE9SRSwJCS8qIHR1 cGxlc3RvcmUsIGUuZy4gZm9yIEFGVEVSIHRyaWdnZXJzICovCisJUlRFX0dSQVBIX1RBQkxFLAkJ CS8qIEdSQVBIX1RBQkxFIGNsYXVzZSAqLwogCVJURV9SRVNVTFQsCQkJCQkvKiBSVEUgcmVwcmVz ZW50cyBhbiBlbXB0eSBGUk9NIGNsYXVzZTsgc3VjaAogCQkJCQkJCQkgKiBSVEVzIGFyZSBhZGRl ZCBieSB0aGUgcGxhbm5lciwgdGhleSdyZSBub3QKIAkJCQkJCQkJICogcHJlc2VudCBkdXJpbmcg cGFyc2luZyBvciByZXdyaXRpbmcgKi8KQEAgLTExODMsNiArMTIzMywxMiBAQCB0eXBlZGVmIHN0 cnVjdCBSYW5nZVRibEVudHJ5CiAJICovCiAJVGFibGVGdW5jICAqdGFibGVmdW5jOwogCisJLyoK KwkgKiBGaWVsZHMgdmFsaWQgZm9yIGEgZ3JhcGggdGFibGUgUlRFIChlbHNlIE5VTEwpOgorCSAq LworCUdyYXBoUGF0dGVybiAqZ3JhcGhfcGF0dGVybjsKKwlMaXN0CSAgICpncmFwaF90YWJsZV9j b2x1bW5zOworCiAJLyoKIAkgKiBGaWVsZHMgdmFsaWQgZm9yIGEgdmFsdWVzIFJURSAoZWxzZSBO SUwpOgogCSAqLwpAQCAtMjI5NSw2ICsyMzUxLDcgQEAgdHlwZWRlZiBlbnVtIE9iamVjdFR5cGUK IAlPQkpFQ1RfUEFSQU1FVEVSX0FDTCwKIAlPQkpFQ1RfUE9MSUNZLAogCU9CSkVDVF9QUk9DRURV UkUsCisJT0JKRUNUX1BST1BHUkFQSCwKIAlPQkpFQ1RfUFVCTElDQVRJT04sCiAJT0JKRUNUX1BV QkxJQ0FUSU9OX05BTUVTUEFDRSwKIAlPQkpFQ1RfUFVCTElDQVRJT05fUkVMLApAQCAtNDAzNyw2 ICs0MDk0LDg4IEBAIHR5cGVkZWYgc3RydWN0IENyZWF0ZUNhc3RTdG10CiAJYm9vbAkJaW5vdXQ7 CiB9IENyZWF0ZUNhc3RTdG10OwogCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKglDUkVB VEUgUFJPUEVSVFkgR1JBUEggU3RhdGVtZW50CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg Ki8KK3R5cGVkZWYgc3RydWN0IENyZWF0ZVByb3BHcmFwaFN0bXQKK3sKKwlOb2RlVGFnCQl0eXBl OworCVJhbmdlVmFyICAgKnBnbmFtZTsKKwlMaXN0CSAgICp2ZXJ0ZXhfdGFibGVzOworCUxpc3QJ ICAgKmVkZ2VfdGFibGVzOworfSBDcmVhdGVQcm9wR3JhcGhTdG10OworCit0eXBlZGVmIHN0cnVj dCBQcm9wR3JhcGhWZXJ0ZXgKK3sKKwlOb2RlVGFnCQl0eXBlOworCVJhbmdlVmFyICAgKnZ0YWJs ZTsKKwlMaXN0CSAgICp2a2V5OworCUxpc3QJICAgKmxhYmVsczsKKwlQYXJzZUxvYwlsb2NhdGlv bjsKK30gUHJvcEdyYXBoVmVydGV4OworCit0eXBlZGVmIHN0cnVjdCBQcm9wR3JhcGhFZGdlCit7 CisJTm9kZVRhZwkJdHlwZTsKKwlSYW5nZVZhciAgICpldGFibGU7CisJTGlzdAkgICAqZWtleTsK KwlMaXN0CSAgICplc3Jja2V5OworCWNoYXIJICAgKmVzcmN2ZXJ0ZXg7CisJTGlzdAkgICAqZXNy Y3ZlcnRleGNvbHM7CisJTGlzdAkgICAqZWRlc3RrZXk7CisJY2hhcgkgICAqZWRlc3R2ZXJ0ZXg7 CisJTGlzdAkgICAqZWRlc3R2ZXJ0ZXhjb2xzOworCUxpc3QJICAgKmxhYmVsczsKKwlQYXJzZUxv Ywlsb2NhdGlvbjsKK30gUHJvcEdyYXBoRWRnZTsKKwordHlwZWRlZiBzdHJ1Y3QgUHJvcEdyYXBo TGFiZWxBbmRQcm9wZXJ0aWVzCit7CisJTm9kZVRhZwkJdHlwZTsKKwljb25zdCBjaGFyICpsYWJl bDsKKwlzdHJ1Y3QgUHJvcEdyYXBoUHJvcGVydGllcyAqcHJvcGVydGllczsKKwlQYXJzZUxvYwls b2NhdGlvbjsKK30gUHJvcEdyYXBoTGFiZWxBbmRQcm9wZXJ0aWVzOworCit0eXBlZGVmIHN0cnVj dCBQcm9wR3JhcGhQcm9wZXJ0aWVzCit7CisJTm9kZVRhZwkJdHlwZTsKKwlMaXN0CSAgICpwcm9w ZXJ0aWVzOworCWJvb2wJCWFsbDsKKwlQYXJzZUxvYwlsb2NhdGlvbjsKK30gUHJvcEdyYXBoUHJv cGVydGllczsKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoJQUxURVIgUFJPUEVSVFkg R1JBUEggU3RhdGVtZW50CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKwordHlwZWRl ZiBlbnVtIEFsdGVyUHJvcEdyYXBoRWxlbWVudEtpbmQKK3sKKwlQUk9QR1JBUEhfRUxFTUVOVF9L SU5EX1ZFUlRFWCA9IDEsCisJUFJPUEdSQVBIX0VMRU1FTlRfS0lORF9FREdFID0gMiwKK30gQWx0 ZXJQcm9wR3JhcGhFbGVtZW50S2luZDsKKwordHlwZWRlZiBzdHJ1Y3QgQWx0ZXJQcm9wR3JhcGhT dG10Cit7CisJTm9kZVRhZwkJdHlwZTsKKwlSYW5nZVZhciAgICpwZ25hbWU7CisJYm9vbAkJbWlz c2luZ19vazsKKwlMaXN0CSAgICphZGRfdmVydGV4X3RhYmxlczsKKwlMaXN0CSAgICphZGRfZWRn ZV90YWJsZXM7CisJTGlzdAkgICAqZHJvcF92ZXJ0ZXhfdGFibGVzOworCUxpc3QJICAgKmRyb3Bf ZWRnZV90YWJsZXM7CisJRHJvcEJlaGF2aW9yIGRyb3BfYmVoYXZpb3I7CisJQWx0ZXJQcm9wR3Jh cGhFbGVtZW50S2luZCBlbGVtZW50X2tpbmQ7CisJY29uc3QgY2hhciAqZWxlbWVudF9hbGlhczsK KwlMaXN0CSAgICphZGRfbGFiZWxzOworCWNvbnN0IGNoYXIgKmRyb3BfbGFiZWw7CisJY29uc3Qg Y2hhciAqYWx0ZXJfbGFiZWw7CisJUHJvcEdyYXBoUHJvcGVydGllcyAqYWRkX3Byb3BlcnRpZXM7 CisJTGlzdAkgICAqZHJvcF9wcm9wZXJ0aWVzOworfSBBbHRlclByb3BHcmFwaFN0bXQ7CisKIC8q IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCUNSRUFURSBUUkFOU0ZPUk0gU3RhdGVtZW50CiAg KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9w cmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCmluZGV4IGIwZWYxOTUy ZThmLi5hMjQ2YmQ5ZGZkNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVz LmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKQEAgLTIxMjgsNiArMjEyOCwy OCBAQCB0eXBlZGVmIHN0cnVjdCBJbmZlcmVuY2VFbGVtCiAJT2lkCQkJaW5mZXJvcGNsYXNzOwkv KiBPSUQgb2YgYXR0IG9wY2xhc3MsIG9yIEludmFsaWRPaWQgKi8KIH0gSW5mZXJlbmNlRWxlbTsK IAorLyoKKyAqIEdyYXBoTGFiZWxSZWYgLSBsYWJlbCByZWZlcmVuY2UgaW4gbGFiZWwgZXhwcmVz c2lvbiBpbnNpZGUgR1JBUEhfVEFCTEUgY2xhdXNlCisgKi8KK3R5cGVkZWYgc3RydWN0IEdyYXBo TGFiZWxSZWYKK3sKKwlOb2RlVGFnCQl0eXBlOworCU9pZAkJCWxhYmVsaWQ7CisJUGFyc2VMb2MJ bG9jYXRpb247Cit9IEdyYXBoTGFiZWxSZWY7CisKKy8qCisgKiBHcmFwaFByb3BlcnR5UmVmIC0g cHJvcGVydHkgcmVmZXJlbmNlIGluc2lkZSBHUkFQSF9UQUJMRSBjbGF1c2UKKyAqLwordHlwZWRl ZiBzdHJ1Y3QgR3JhcGhQcm9wZXJ0eVJlZgoreworCUV4cHIJCXhwcjsKKwljb25zdCBjaGFyICpl bHZhcm5hbWU7CisJT2lkCQkJcHJvcGlkOworCU9pZAkJCXR5cGVJZDsKKwlQYXJzZUxvYwlsb2Nh dGlvbjsKK30gR3JhcGhQcm9wZXJ0eVJlZjsKKwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLQogICog VGFyZ2V0RW50cnkgLQogICoJICAgYSB0YXJnZXQgZW50cnkgKHVzZWQgaW4gcXVlcnkgdGFyZ2V0 IGxpc3RzKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2FuYWx5emUuaCBiL3NyYy9p bmNsdWRlL3BhcnNlci9hbmFseXplLmgKaW5kZXggMjhiNjZmY2NiNDMuLjM4NWY3ZmRmYTE3IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvYW5hbHl6ZS5oCisrKyBiL3NyYy9pbmNsdWRl L3BhcnNlci9hbmFseXplLmgKQEAgLTYyLDUgKzYyLDggQEAgZXh0ZXJuIExpc3QgKkJ1aWxkT25D b25mbGljdEV4Y2x1ZGVkVGFyZ2V0bGlzdChSZWxhdGlvbiB0YXJnZXRyZWwsCiAJCQkJCQkJCQkJ CSAgIEluZGV4IGV4Y2xSZWxJbmRleCk7CiAKIGV4dGVybiBTb3J0R3JvdXBDbGF1c2UgKm1ha2VT b3J0R3JvdXBDbGF1c2VGb3JTZXRPcChPaWQgcmVzY29sdHlwZSwgYm9vbCByZXF1aXJlX2hhc2gp OworZXh0ZXJuIHZvaWQgY29uc3RydWN0U2V0T3BUYXJnZXRsaXN0KFNldE9wZXJhdGlvblN0bXQg Km9wLCBMaXN0ICpsdGFyZ2V0bGlzdCwKKwkJCQkJCQkJCSBMaXN0ICpydGFyZ2V0bGlzdCwgTGlz dCAqKnRhcmdldGxpc3QsIGNvbnN0IGNoYXIgKmNvbnRleHQsCisJCQkJCQkJCQkgUGFyc2VTdGF0 ZSAqcHN0YXRlLCBib29sIHJlY3Vyc2l2ZSk7CiAKICNlbmRpZgkJCQkJCQkvKiBBTkFMWVpFX0gg Ki8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRl L3BhcnNlci9rd2xpc3QuaAppbmRleCA4OTlkNjRhZDU1Zi4uZmFiNzVmMTZiN2EgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIv a3dsaXN0LmgKQEAgLTEzNiw2ICsxMzYsNyBAQCBQR19LRVlXT1JEKCJkZWxpbWl0ZXJzIiwgREVM SU1JVEVSUywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZGVw ZW5kcyIsIERFUEVORFMsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdP UkQoImRlcHRoIiwgREVQVEgsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tF WVdPUkQoImRlc2MiLCBERVNDLCBSRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZ V09SRCgiZGVzdGluYXRpb24iLCBERVNUSU5BVElPTiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQogUEdfS0VZV09SRCgiZGV0YWNoIiwgREVUQUNILCBVTlJFU0VSVkVEX0tFWVdPUkQs IEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJkaWN0aW9uYXJ5IiwgRElDVElPTkFSWSwgVU5SRVNF UlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZGlzYWJsZSIsIERJU0FCTEVf UCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQpAQCAtMTQ3LDYgKzE0OCw3IEBAIFBH X0tFWVdPUkQoImRvbWFpbiIsIERPTUFJTl9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFC RUwpCiBQR19LRVlXT1JEKCJkb3VibGUiLCBET1VCTEVfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBC QVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZHJvcCIsIERST1AsIFVOUkVTRVJWRURfS0VZV09SRCwg QkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImVhY2giLCBFQUNILCBVTlJFU0VSVkVEX0tFWVdPUkQs IEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJlZGdlIiwgRURHRSwgVU5SRVNFUlZFRF9LRVlXT1JE LCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZWxzZSIsIEVMU0UsIFJFU0VSVkVEX0tFWVdPUkQs IEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJlbXB0eSIsIEVNUFRZX1AsIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImVuYWJsZSIsIEVOQUJMRV9QLCBVTlJFU0VS VkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCkBAIC0xOTAsNiArMTkyLDggQEAgUEdfS0VZV09SRCgi Z2VuZXJhdGVkIiwgR0VORVJBVEVELCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJnbG9iYWwiLCBHTE9CQUwsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJF TCkKIFBHX0tFWVdPUkQoImdyYW50IiwgR1JBTlQsIFJFU0VSVkVEX0tFWVdPUkQsIEFTX0xBQkVM KQogUEdfS0VZV09SRCgiZ3JhbnRlZCIsIEdSQU5URUQsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFS RV9MQUJFTCkKK1BHX0tFWVdPUkQoImdyYXBoIiwgR1JBUEgsIFVOUkVTRVJWRURfS0VZV09SRCwg QkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoImdyYXBoX3RhYmxlIiwgR1JBUEhfVEFCTEUsIENPTF9O QU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJncmVhdGVzdCIsIEdSRUFURVNU LCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZ3JvdXAiLCBHUk9V UF9QLCBSRVNFUlZFRF9LRVlXT1JELCBBU19MQUJFTCkKIFBHX0tFWVdPUkQoImdyb3VwaW5nIiwg R1JPVVBJTkcsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCkBAIC0yOTQsNiArMjk4LDcg QEAgUEdfS0VZV09SRCgibmZkIiwgTkZELCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwp CiBQR19LRVlXT1JEKCJuZmtjIiwgTkZLQywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVM KQogUEdfS0VZV09SRCgibmZrZCIsIE5GS0QsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJF TCkKIFBHX0tFWVdPUkQoIm5vIiwgTk8sIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkK K1BHX0tFWVdPUkQoIm5vZGUiLCBOT0RFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwp CiBQR19LRVlXT1JEKCJub25lIiwgTk9ORSwgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkK IFBHX0tFWVdPUkQoIm5vcm1hbGl6ZSIsIE5PUk1BTElaRSwgQ09MX05BTUVfS0VZV09SRCwgQkFS RV9MQUJFTCkKIFBHX0tFWVdPUkQoIm5vcm1hbGl6ZWQiLCBOT1JNQUxJWkVELCBVTlJFU0VSVkVE X0tFWVdPUkQsIEJBUkVfTEFCRUwpCkBAIC0zNTYsNiArMzYxLDggQEAgUEdfS0VZV09SRCgicHJv Y2VkdXJhbCIsIFBST0NFRFVSQUwsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBH X0tFWVdPUkQoInByb2NlZHVyZSIsIFBST0NFRFVSRSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQogUEdfS0VZV09SRCgicHJvY2VkdXJlcyIsIFBST0NFRFVSRVMsIFVOUkVTRVJWRURf S0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInByb2dyYW0iLCBQUk9HUkFNLCBVTlJF U0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJwcm9wZXJ0aWVzIiwgUFJP UEVSVElFUywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgicHJv cGVydHkiLCBQUk9QRVJUWSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZ V09SRCgicHVibGljYXRpb24iLCBQVUJMSUNBVElPTiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQogUEdfS0VZV09SRCgicXVvdGUiLCBRVU9URSwgVU5SRVNFUlZFRF9LRVlXT1JELCBC QVJFX0xBQkVMKQogUEdfS0VZV09SRCgicXVvdGVzIiwgUVVPVEVTLCBVTlJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCkBAIC0zNjksNiArMzc2LDcgQEAgUEdfS0VZV09SRCgicmVmZXJlbmNl cyIsIFJFRkVSRU5DRVMsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JE KCJyZWZlcmVuY2luZyIsIFJFRkVSRU5DSU5HLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFC RUwpCiBQR19LRVlXT1JEKCJyZWZyZXNoIiwgUkVGUkVTSCwgVU5SRVNFUlZFRF9LRVlXT1JELCBC QVJFX0xBQkVMKQogUEdfS0VZV09SRCgicmVpbmRleCIsIFJFSU5ERVgsIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoInJlbGF0aW9uc2hpcCIsIFJFTEFUSU9OU0hJ UCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicmVsYXRpdmUi LCBSRUxBVElWRV9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JE KCJyZWxlYXNlIiwgUkVMRUFTRSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdf S0VZV09SRCgicmVuYW1lIiwgUkVOQU1FLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwp CkBAIC00ODgsNiArNDk2LDcgQEAgUEdfS0VZV09SRCgidmFyaWFkaWMiLCBWQVJJQURJQywgUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhcnlpbmciLCBWQVJZSU5H LCBVTlJFU0VSVkVEX0tFWVdPUkQsIEFTX0xBQkVMKQogUEdfS0VZV09SRCgidmVyYm9zZSIsIFZF UkJPU0UsIFRZUEVfRlVOQ19OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2 ZXJzaW9uIiwgVkVSU0lPTl9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19L RVlXT1JEKCJ2ZXJ0ZXgiLCBWRVJURVgsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkK IFBHX0tFWVdPUkQoInZpZXciLCBWSUVXLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwp CiBQR19LRVlXT1JEKCJ2aWV3cyIsIFZJRVdTLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFC RUwpCiBQR19LRVlXT1JEKCJ2b2xhdGlsZSIsIFZPTEFUSUxFLCBVTlJFU0VSVkVEX0tFWVdPUkQs IEJBUkVfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZ3JhcGh0 YWJsZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2dyYXBodGFibGUuaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYWYwZjU1MGNkMmMKLS0tIC9kZXYvbnVsbAor KysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5oCkBAIC0wLDAgKzEsMzEg QEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBhcnNlX2dyYXBodGFibGUuaAorICoJCXBh cnNpbmcgb2YgR1JBUEhfVEFCTEUKKyAqCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAx OTk2LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9u cyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZv cm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ncmFwaHRhYmxlLmgKKyAqCisg Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lmbmRlZiBQQVJTRV9HUkFQSFRBQkxFX0gKKyNkZWZp bmUgUEFSU0VfR1JBUEhUQUJMRV9ICisKKyNpbmNsdWRlICJub2Rlcy9wYXJzZW5vZGVzLmgiCisj aW5jbHVkZSAibm9kZXMvcGdfbGlzdC5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9ub2RlLmgi CisKK3R5cGVkZWYgc3RydWN0IEdyYXBoVGFibGVQYXJzZVN0YXRlCit7CisJT2lkCQkJZ3JhcGhp ZDsKKwlMaXN0CSAgICp2YXJpYWJsZXM7Cit9IEdyYXBoVGFibGVQYXJzZVN0YXRlOworCitleHRl cm4gTm9kZSAqZ3JhcGhfdGFibGVfcHJvcGVydHlfcmVmZXJlbmNlKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgQ29sdW1uUmVmICpjcmVmLCBOb2RlICp2YXIpOworCitleHRlcm4gTm9kZSAqdHJhbnNmb3Jt R3JhcGhQYXR0ZXJuKFBhcnNlU3RhdGUgKnBzdGF0ZSwgR3JhcGhUYWJsZVBhcnNlU3RhdGUgKmdw c3RhdGUsIEdyYXBoUGF0dGVybiAqZ3JhcGhfcGF0dGVybik7CisKKyNlbmRpZgkJCQkJCQkvKiBQ QVJTRV9HUkFQSFRBQkxFX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV9ub2RlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCmluZGV4IDIzNzVlOTVj MTA3Li5mMWU2ZjAzNWNlNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25v ZGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCkBAIC04Miw2ICs4Miw3 IEBAIHR5cGVkZWYgZW51bSBQYXJzZUV4cHJLaW5kCiAJRVhQUl9LSU5EX0NPUFlfV0hFUkUsCQkv KiBXSEVSRSBjb25kaXRpb24gaW4gQ09QWSBGUk9NICovCiAJRVhQUl9LSU5EX0dFTkVSQVRFRF9D T0xVTU4sIC8qIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBmb3IgYSBjb2x1bW4gKi8KIAlFWFBSX0tJ TkRfQ1lDTEVfTUFSSywJCS8qIGN5Y2xlIG1hcmsgdmFsdWUgKi8KKwlFWFBSX0tJTkRfUFJPUEdS QVBIX1BST1BFUlRZLAkvKiBkZXJpdmVkIHByb3BlcnR5IGV4cHJlc3Npb24gKi8KIH0gUGFyc2VF eHByS2luZDsKIAogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcmVsYXRp b24uaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5oCmluZGV4IDkxZmQ4ZTI0 M2I1Li42OWNhMTkwZDVlNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3Jl bGF0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgKQEAgLTgx LDYgKzgxLDE0IEBAIGV4dGVybiBQYXJzZU5hbWVzcGFjZUl0ZW0gKmFkZFJhbmdlVGFibGVFbnRy eUZvclRhYmxlRnVuYyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCQkJCSAgQWxpYXMg KmFsaWFzLAogCQkJCQkJCQkJCQkJCQkgIGJvb2wgbGF0ZXJhbCwKIAkJCQkJCQkJCQkJCQkJICBi b29sIGluRnJvbUNsKTsKK2V4dGVybiBQYXJzZU5hbWVzcGFjZUl0ZW0gKmFkZFJhbmdlVGFibGVF bnRyeUZvckdyYXBoVGFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJCQkJCQkJCQkgICBP aWQgZ3JhcGhpZCwKKwkJCQkJCQkJCQkJCQkJICAgR3JhcGhQYXR0ZXJuICpncmFwaF9wYXR0ZXJu LAorCQkJCQkJCQkJCQkJCQkgICBMaXN0ICpjb2x1bW5zLAorCQkJCQkJCQkJCQkJCQkgICBMaXN0 ICpjb2xuYW1lcywKKwkJCQkJCQkJCQkJCQkJICAgQWxpYXMgKmFsaWFzLAorCQkJCQkJCQkJCQkJ CQkgICBib29sIGxhdGVyYWwsCisJCQkJCQkJCQkJCQkJCSAgIGJvb2wgaW5Gcm9tQ2wpOwogZXh0 ZXJuIFBhcnNlTmFtZXNwYWNlSXRlbSAqYWRkUmFuZ2VUYWJsZUVudHJ5Rm9ySm9pbihQYXJzZVN0 YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCQkJIExpc3QgKmNvbG5hbWVzLAogCQkJCQkJCQkJCQkJ CSBQYXJzZU5hbWVzcGFjZUNvbHVtbiAqbnNjb2x1bW5zLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvcmV3cml0ZS9yZXdyaXRlR3JhcGhUYWJsZS5oIGIvc3JjL2luY2x1ZGUvcmV3cml0ZS9yZXdy aXRlR3JhcGhUYWJsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4w YzAzMTlmNWNmYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL3Jld3JpdGUvcmV3cml0 ZUdyYXBoVGFibGUuaApAQCAtMCwwICsxLDIxIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisg KiByZXdyaXRlR3JhcGhUYWJsZS5oCisgKgkJU3VwcG9ydCBmb3IgcmV3cml0aW5nIEdSQVBIX1RB QkxFIGNsYXVzZXMuCisgKgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0 LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJp Z2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAq CisgKiBzcmMvaW5jbHVkZS9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmgKKyAqCisgKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAqLworI2lmbmRlZiBSRVdSSVRFR1JBUEhUQUJMRV9ICisjZGVmaW5lIFJF V1JJVEVHUkFQSFRBQkxFX0gKKworI2luY2x1ZGUgIm5vZGVzL3BhcnNlbm9kZXMuaCIKKworZXh0 ZXJuIFF1ZXJ5ICpyZXdyaXRlR3JhcGhUYWJsZShRdWVyeSAqcGFyc2V0cmVlLCBpbnQgcnRfaW5k ZXgpOworCisjZW5kaWYJCQkJCQkJLyogUkVXUklURUdSQVBIVEFCTEVfSCAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmggYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRh Z2xpc3QuaAppbmRleCA3ZmRjZWM2ZGQ5My4uNTU4MjQ4M2QwNmMgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlz dC5oCkBAIC00OCw2ICs0OCw3IEBAIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfT1BFUkFUT1JfQ0xB U1MsICJBTFRFUiBPUEVSQVRPUiBDTEFTUyIsIHRydWUsIGZhbHNlLCBmYWxzCiBQR19DTURUQUco Q01EVEFHX0FMVEVSX09QRVJBVE9SX0ZBTUlMWSwgIkFMVEVSIE9QRVJBVE9SIEZBTUlMWSIsIHRy dWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfUE9MSUNZLCAiQUxURVIg UE9MSUNZIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9QUk9D RURVUkUsICJBTFRFUiBQUk9DRURVUkUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCitQR19DTURUQUco Q01EVEFHX0FMVEVSX1BST1BFUlRZX0dSQVBILCAiQUxURVIgUFJPUEVSVFkgR1JBUEgiLCB0cnVl LCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1BVQkxJQ0FUSU9OLCAiQUxU RVIgUFVCTElDQVRJT04iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FM VEVSX1JPTEUsICJBTFRFUiBST0xFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhD TURUQUdfQUxURVJfUk9VVElORSwgIkFMVEVSIFJPVVRJTkUiLCB0cnVlLCBmYWxzZSwgZmFsc2Up CkBAIC0xMDMsNiArMTA0LDcgQEAgUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfT1BFUkFUT1JfQ0xB U1MsICJDUkVBVEUgT1BFUkFUT1IgQ0xBU1MiLCB0cnVlLCBmYWxzZSwgZmEKIFBHX0NNRFRBRyhD TURUQUdfQ1JFQVRFX09QRVJBVE9SX0ZBTUlMWSwgIkNSRUFURSBPUEVSQVRPUiBGQU1JTFkiLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9QT0xJQ1ksICJDUkVB VEUgUE9MSUNZIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVf UFJPQ0VEVVJFLCAiQ1JFQVRFIFBST0NFRFVSRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NN RFRBRyhDTURUQUdfQ1JFQVRFX1BST1BFUlRZX0dSQVBILCAiQ1JFQVRFIFBST1BFUlRZIEdSQVBI IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfUFVCTElDQVRJ T04sICJDUkVBVEUgUFVCTElDQVRJT04iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUco Q01EVEFHX0NSRUFURV9ST0xFLCAiQ1JFQVRFIFJPTEUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQog UEdfQ01EVEFHKENNRFRBR19DUkVBVEVfUk9VVElORSwgIkNSRUFURSBST1VUSU5FIiwgdHJ1ZSwg ZmFsc2UsIGZhbHNlKQpAQCAtMTU2LDYgKzE1OCw3IEBAIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9P UEVSQVRPUl9GQU1JTFksICJEUk9QIE9QRVJBVE9SIEZBTUlMWSIsIHRydWUsIGZhbHNlLCBmYWxz CiBQR19DTURUQUcoQ01EVEFHX0RST1BfT1dORUQsICJEUk9QIE9XTkVEIiwgdHJ1ZSwgZmFsc2Us IGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX1BPTElDWSwgIkRST1AgUE9MSUNZIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX1BST0NFRFVSRSwgIkRST1Ag UFJPQ0VEVVJFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19EUk9QX1BS T1BFUlRZX0dSQVBILCAiRFJPUCBQUk9QRVJUWSBHUkFQSCIsIHRydWUsIGZhbHNlLCBmYWxzZSkK IFBHX0NNRFRBRyhDTURUQUdfRFJPUF9QVUJMSUNBVElPTiwgIkRST1AgUFVCTElDQVRJT04iLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfUk9MRSwgIkRST1AgUk9M RSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfUk9VVElORSwg IkRST1AgUk9VVElORSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL3V0aWxzL2FjbC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmgKaW5kZXggNzMxZDg0YjJh OTMuLmI2ODEzZDcyOTJlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9hY2wuaAorKysg Yi9zcmMvaW5jbHVkZS91dGlscy9hY2wuaApAQCAtMTY2LDYgKzE2Niw3IEBAIHR5cGVkZWYgc3Ry dWN0IEFycmF5VHlwZSBBY2w7CiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX0xBTkdVQUdFCQkoQUNM X1VTQUdFKQogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19MQVJHRU9CSkVDVAkoQUNMX1NFTEVDVHxB Q0xfVVBEQVRFKQogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19QQVJBTUVURVJfQUNMIChBQ0xfU0VU fEFDTF9BTFRFUl9TWVNURU0pCisjZGVmaW5lIEFDTF9BTExfUklHSFRTX1BST1BHUkFQSAkoQUNM X1NFTEVDVCkKICNkZWZpbmUgQUNMX0FMTF9SSUdIVFNfU0NIRU1BCQkoQUNMX1VTQUdFfEFDTF9D UkVBVEUpCiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX1RBQkxFU1BBQ0UJKEFDTF9DUkVBVEUpCiAj ZGVmaW5lIEFDTF9BTExfUklHSFRTX1RZUEUJCQkoQUNMX1VTQUdFKQpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUu aAppbmRleCAyMDQ0NmY2ZjgzNi4uODJkMGJiYjI2N2QgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3V0aWxzL2xzeXNjYWNoZS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCkBA IC0yMDYsNiArMjA2LDkgQEAgZXh0ZXJuIGNoYXIgKmdldF9wdWJsaWNhdGlvbl9uYW1lKE9pZCBw dWJpZCwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJZ2V0X3N1YnNjcmlwdGlvbl9vaWQo Y29uc3QgY2hhciAqc3VibmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBjaGFyICpnZXRf c3Vic2NyaXB0aW9uX25hbWUoT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2spOwogCitleHRlcm4g Y2hhciAqZ2V0X3Byb3BncmFwaF9sYWJlbF9uYW1lKE9pZCBsYWJlbG9pZCk7CitleHRlcm4gY2hh ciAqZ2V0X3Byb3BncmFwaF9wcm9wZXJ0eV9uYW1lKE9pZCBwcm9wb2lkKTsKKwogI2RlZmluZSB0 eXBlX2lzX2FycmF5KHR5cGlkKSAgKGdldF9lbGVtZW50X3R5cGUodHlwaWQpICE9IEludmFsaWRP aWQpCiAvKiB0eXBlX2lzX2FycmF5X2RvbWFpbiBhY2NlcHRzIGJvdGggcGxhaW4gYXJyYXlzIGFu ZCBkb21haW5zIG92ZXIgYXJyYXlzICovCiAjZGVmaW5lIHR5cGVfaXNfYXJyYXlfZG9tYWluKHR5 cGlkKSAgKGdldF9iYXNlX2VsZW1lbnRfdHlwZSh0eXBpZCkgIT0gSW52YWxpZE9pZCkKZGlmZiAt LWdpdCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9wYXJzZS5wbCBiL3NyYy9pbnRlcmZh Y2VzL2VjcGcvcHJlcHJvYy9wYXJzZS5wbAppbmRleCA4Njk0M2FlMjUzNy4uYjQ5YThhM2ZmYjgg MTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9wYXJzZS5wbAorKysgYi9z cmMvaW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvcGFyc2UucGwKQEAgLTI1Niw5ICsyNTYsOSBAQCBz dWIgbWFpbgogCQkJJGhhc19pZl9jb21tYW5kID0gMSBpZiAvXlxzKmlmLzsKIAkJfQogCi0JCSMg TWFrZSBzdXJlIGFueSBicmFjZXMgYXJlIHNwbGl0IGludG8gc2VwYXJhdGUgZmllbGRzCi0JCXMv ey8geyAvZzsKLQkJcy99LyB9IC9nOworCQkjIE1ha2Ugc3VyZSBhbnkgKHVucXVvdGVkKSBicmFj ZXMgYXJlIHNwbGl0IGludG8gc2VwYXJhdGUgZmllbGRzCisJCXMvKD88IScpXHsoPyEnKS8geyAv ZzsKKwkJcy8oPzwhJylcfSg/IScpLyB9IC9nOwogCiAJCSMgTGlrZXdpc2UgZm9yIGNvbW1lbnQg c3RhcnQvZW5kIG1hcmtlcnMKIAkJc3xcL1wqfCAvKiB8ZzsKZGlmZiAtLWdpdCBhL3NyYy9pbnRl cmZhY2VzL2VjcGcvcHJlcHJvYy9wZ2MubCBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9w Z2MubAppbmRleCAzMTU5NzNlOWQxZS4uNzE0YjEyZmIyZTMgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRl cmZhY2VzL2VjcGcvcHJlcHJvYy9wZ2MubAorKysgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3ByZXBy b2MvcGdjLmwKQEAgLTMzNSw2ICszMzUsOCBAQCBsZXNzX2VxdWFscwkJIjw9IgogZ3JlYXRlcl9l cXVhbHMJIj49IgogbGVzc19ncmVhdGVyCSI8PiIKIG5vdF9lcXVhbHMJCSIhPSIKKy8qIE5vdGUg dGhlcmUgaXMgbm8gbmVlZCBmb3IgbGVmdF9hcnJvdywgc2luY2UgIjwtIiBpcyBub3QgYSBzaW5n bGUgb3BlcmF0b3IuICovCityaWdodF9hcnJvdwkJIi0+IgogCiAvKgogICogInNlbGYiIGlzIHRo ZSBzZXQgb2YgY2hhcnMgdGhhdCBzaG91bGQgYmUgcmV0dXJuZWQgYXMgc2luZ2xlLWNoYXJhY3Rl cgpAQCAtMzQ2LDcgKzM0OCw3IEBAIG5vdF9lcXVhbHMJCSIhPSIKICAqIElmIHlvdSBjaGFuZ2Ug ZWl0aGVyIHNldCwgYWRqdXN0IHRoZSBjaGFyYWN0ZXIgbGlzdHMgYXBwZWFyaW5nIGluIHRoZQog ICogcnVsZSBmb3IgIm9wZXJhdG9yIiEKICAqLwotc2VsZgkJCVssKClcW1xdLjtcOlwrXC1cKlwv XCVcXlw8XD5cPV0KK3NlbGYJCQlbLCgpXFtcXS47XDpcfFwrXC1cKlwvXCVcXlw8XD5cPV0KIG9w X2NoYXJzCQlbXH5cIVxAXCNcXlwmXHxcYFw/XCtcLVwqXC9cJVw8XD5cPV0KIG9wZXJhdG9yCQl7 b3BfY2hhcnN9KwogCkBAIC04NTQsNiArODU2LDEwIEBAIGNwcGxpbmUJCQl7c3BhY2V9KiMoW15p XVtBLVphLXpdKnx7aWZ9fHtpZmRlZn18e2lmbmRlZn18e2ltcG9ydH0pKChcL1wqW14qL10qXCor CiAJCQkJCXJldHVybiBOT1RfRVFVQUxTOwogCQkJCX0KIAore3JpZ2h0X2Fycm93fQl7CisJCQkJ CXJldHVybiBSSUdIVF9BUlJPVzsKKwkJCQl9CisKIHtpbmZvcm1peF9zcGVjaWFsfSB7CiAJCQkJ CS8qIGFyZSB3ZSBzaW11bGF0aW5nIEluZm9ybWl4PyAqLwogCQkJCQlpZiAoSU5GT1JNSVhfTU9E RSkKQEAgLTk0Nyw3ICs5NTMsNyBAQCBjcHBsaW5lCQkJe3NwYWNlfSojKFteaV1bQS1aYS16XSp8 e2lmfXx7aWZkZWZ9fHtpZm5kZWZ9fHtpbXBvcnR9KSgoXC9cKlteKi9dKlwqKwogCQkJCQkJICog dGhhdCB0aGUgInNlbGYiIHJ1bGUgd291bGQgaGF2ZS4KIAkJCQkJCSAqLwogCQkJCQkJaWYgKG5j aGFycyA9PSAxICYmCi0JCQkJCQkJc3RyY2hyKCIsKClbXS47OistKi8lXjw+PSIsIHl5dGV4dFsw XSkpCisJCQkJCQkJc3RyY2hyKCIsKClbXS47OnwrLSovJV48Pj0iLCB5eXRleHRbMF0pKQogCQkJ CQkJCXJldHVybiB5eXRleHRbMF07CiAKIAkJCQkJCS8qCkBAIC05NjgsNiArOTc0LDggQEAgY3Bw bGluZQkJCXtzcGFjZX0qIyhbXmldW0EtWmEtel0qfHtpZn18e2lmZGVmfXx7aWZuZGVmfXx7aW1w b3J0fSkoKFwvXCpbXiovXSpcKisKIAkJCQkJCQkJcmV0dXJuIE5PVF9FUVVBTFM7CiAJCQkJCQkJ aWYgKHl5dGV4dFswXSA9PSAnIScgJiYgeXl0ZXh0WzFdID09ICc9JykKIAkJCQkJCQkJcmV0dXJu IE5PVF9FUVVBTFM7CisJCQkJCQkJaWYgKHl5dGV4dFswXSA9PSAnLScgJiYgeXl0ZXh0WzFdID09 ICc+JykKKwkJCQkJCQkJcmV0dXJuIFJJR0hUX0FSUk9XOwogCQkJCQkJfQogCQkJCQl9CiAKZGlm ZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkgYi9zcmMvcGwvcGxwZ3NxbC9z cmMvcGxfZ3JhbS55CmluZGV4IDExNzE0NDMwYzEzLi41YmQyZWVhYjRhNCAxMDA2NDQKLS0tIGEv c3JjL3BsL3BscGdzcWwvc3JjL3BsX2dyYW0ueQorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxf Z3JhbS55CkBAIC0yMzcsNiArMjM3LDcgQEAgc3RhdGljCXZvaWQJCQljaGVja19yYWlzZV9wYXJh bWV0ZXJzKFBMcGdTUUxfc3RtdF9yYWlzZSAqc3RtdCk7CiAldG9rZW4gPGl2YWw+CUlDT05TVCBQ QVJBTQogJXRva2VuCQkJVFlQRUNBU1QgRE9UX0RPVCBDT0xPTl9FUVVBTFMgRVFVQUxTX0dSRUFU RVIKICV0b2tlbgkJCUxFU1NfRVFVQUxTIEdSRUFURVJfRVFVQUxTIE5PVF9FUVVBTFMKKyV0b2tl bgkJCUJSQUNLRVRfUklHSFRfQVJST1cgTEVGVF9BUlJPV19CUkFDS0VUIE1JTlVTX0xFRlRfQlJB Q0tFVCBSSUdIVF9CUkFDS0VUX01JTlVTCiAKIC8qCiAgKiBPdGhlciB0b2tlbnMgcmVjb2duaXpl ZCBieSBwbHBnc3FsJ3MgbGV4ZXIgaW50ZXJmYWNlIGxheWVyIChwbF9zY2FubmVyLmMpLgpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl9nZW5lcmljLm91dCBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWx0ZXJfZ2VuZXJpYy5vdXQKaW5kZXggYWU1NGNiMjU0 ZjkuLmFiOWNlOWU5YWNkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Fs dGVyX2dlbmVyaWMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWx0ZXJfZ2Vu ZXJpYy5vdXQKQEAgLTUyMCw2ICs1MjAsNDkgQEAgRVJST1I6ICBsZWZ0IGFuZCByaWdodCBhc3Nv Y2lhdGVkIGRhdGEgdHlwZXMgZm9yIG9wZXJhdG9yIGNsYXNzIG9wdGlvbnMgcGFyc2luZwogQUxU RVIgT1BFUkFUT1IgRkFNSUxZIGFsdF9vcGYxOSBVU0lORyBidHJlZSBBREQgRlVOQ1RJT04gNSAo aW50NCkgdGVzdF9vcGNsYXNzX29wdGlvbnNfZnVuYyhpbnRlcm5hbCk7IC0tIE9rCiBBTFRFUiBP UEVSQVRPUiBGQU1JTFkgYWx0X29wZjE5IFVTSU5HIGJ0cmVlIERST1AgRlVOQ1RJT04gNSAoaW50 NCwgaW50NCk7CiBEUk9QIE9QRVJBVE9SIEZBTUlMWSBhbHRfb3BmMTkgVVNJTkcgYnRyZWU7Cist LQorLS0gUHJvcGVydHkgR3JhcGgKKy0tCitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jl c3NfYWx0ZXJfZ2VuZXJpY191c2VyMTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBhbHRfZ3JhcGgx OworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGFsdF9ncmFwaDI7CitDUkVBVEUgUFJPUEVSVFkgR1JB UEggYWx0X2dyYXBoMzsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGFsdF9ncmFwaDEgUkVOQU1FIFRP IGFsdF9ncmFwaDI7IC0tIGZhaWxlZCAobmFtZSBjb25mbGljdCkKK0VSUk9SOiAgcmVsYXRpb24g ImFsdF9ncmFwaDIiIGFscmVhZHkgZXhpc3RzCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRfZ3Jh cGgxIFJFTkFNRSBUTyBhbHRfZ3JhcGg0OyAtLSBPSworQUxURVIgUFJPUEVSVFkgR1JBUEggYWx0 X2dyYXBoMiBPV05FUiBUTyByZWdyZXNzX2FsdGVyX2dlbmVyaWNfdXNlcjI7ICAtLSBmYWlsZWQg KG5vIHJvbGUgbWVtYmVyc2hpcCkKK0VSUk9SOiAgbXVzdCBiZSBhYmxlIHRvIFNFVCBST0xFICJy ZWdyZXNzX2FsdGVyX2dlbmVyaWNfdXNlcjIiCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRfZ3Jh cGgyIE9XTkVSIFRPIHJlZ3Jlc3NfYWx0ZXJfZ2VuZXJpY191c2VyMzsgIC0tIE9LCitBTFRFUiBQ Uk9QRVJUWSBHUkFQSCBhbHRfZ3JhcGg0IFNFVCBTQ0hFTUEgYWx0X25zcDI7ICAtLSBPSworQUxU RVIgUFJPUEVSVFkgR1JBUEggYWx0X25zcDIuYWx0X2dyYXBoNCBSRU5BTUUgVE8gYWx0X2dyYXBo MjsgIC0tIE9LCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRfZ3JhcGgyIFNFVCBTQ0hFTUEgYWx0 X25zcDI7ICAtLSBmYWlsZWQgKG5hbWUgY29uZmxpY3QpCitFUlJPUjogIHJlbGF0aW9uICJhbHRf Z3JhcGgyIiBhbHJlYWR5IGV4aXN0cyBpbiBzY2hlbWEgImFsdF9uc3AyIgorU0VUIFNFU1NJT04g QVVUSE9SSVpBVElPTiByZWdyZXNzX2FsdGVyX2dlbmVyaWNfdXNlcjI7CitDUkVBVEUgUFJPUEVS VFkgR1JBUEggYWx0X2dyYXBoNTsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGFsdF9ncmFwaDMgUkVO QU1FIFRPIGFsdF9ncmFwaDU7ICAtLSBmYWlsZWQgKG5vdCBvd25lcikKK0VSUk9SOiAgbXVzdCBi ZSBvd25lciBvZiBwcm9wZXJ0eSBncmFwaCBhbHRfZ3JhcGgzCitBTFRFUiBQUk9QRVJUWSBHUkFQ SCBhbHRfZ3JhcGg1IFJFTkFNRSBUTyBhbHRfZ3JhcGg2OyAgLS0gT0sKK0FMVEVSIFBST1BFUlRZ IEdSQVBIIGFsdF9ncmFwaDMgT1dORVIgVE8gcmVncmVzc19hbHRlcl9nZW5lcmljX3VzZXIyOyAg LS0gZmFpbGVkIChub3Qgb3duZXIpCitFUlJPUjogIG11c3QgYmUgb3duZXIgb2YgcHJvcGVydHkg Z3JhcGggYWx0X2dyYXBoMworQUxURVIgUFJPUEVSVFkgR1JBUEggYWx0X2dyYXBoNiBPV05FUiBU TyByZWdyZXNzX2FsdGVyX2dlbmVyaWNfdXNlcjM7ICAtLSBmYWlsZWQgKG5vIHJvbGUgbWVtYmVy c2hpcCkKK0VSUk9SOiAgbXVzdCBiZSBhYmxlIHRvIFNFVCBST0xFICJyZWdyZXNzX2FsdGVyX2dl bmVyaWNfdXNlcjMiCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRfZ3JhcGgzIFNFVCBTQ0hFTUEg YWx0X25zcDI7ICAtLSBmYWlsZWQgKG5vdCBvd25lcikKK0VSUk9SOiAgbXVzdCBiZSBvd25lciBv ZiBwcm9wZXJ0eSBncmFwaCBhbHRfZ3JhcGgzCitSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047 CitTRUxFQ1QgbnNwbmFtZSwgcmVsbmFtZSwgcm9sbmFtZQorICBGUk9NIHBnX2NsYXNzIGMsIHBn X25hbWVzcGFjZSBuLCBwZ19hdXRoaWQgYQorICBXSEVSRSBjLnJlbG5hbWVzcGFjZSA9IG4ub2lk IEFORCBjLnJlbG93bmVyID0gYS5vaWQKKyAgICBBTkQgbi5uc3BuYW1lIGluICgnYWx0X25zcDEn LCAnYWx0X25zcDInKQorICAgIEFORCBjLnJlbGtpbmQgPSAnZycKKyAgT1JERVIgQlkgbnNwbmFt ZSwgcmVsbmFtZTsKKyBuc3BuYW1lICB8ICByZWxuYW1lICAgfCAgICAgICAgICAgcm9sbmFtZSAg ICAgICAgICAgCistLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIGFsdF9uc3AxIHwgYWx0X2dyYXBoMiB8IHJlZ3Jlc3NfYWx0ZXJfZ2VuZXJpY191 c2VyMworIGFsdF9uc3AxIHwgYWx0X2dyYXBoMyB8IHJlZ3Jlc3NfYWx0ZXJfZ2VuZXJpY191c2Vy MQorIGFsdF9uc3AxIHwgYWx0X2dyYXBoNiB8IHJlZ3Jlc3NfYWx0ZXJfZ2VuZXJpY191c2VyMgor IGFsdF9uc3AyIHwgYWx0X2dyYXBoMiB8IHJlZ3Jlc3NfYWx0ZXJfZ2VuZXJpY191c2VyMQorKDQg cm93cykKKwogLS0KIC0tIFN0YXRpc3RpY3MKIC0tCkBAIC03MTAsNyArNzUzLDcgQEAgTk9USUNF OiAgZHJvcCBjYXNjYWRlcyB0byBzZXJ2ZXIgYWx0X2ZzZXJ2MwogRFJPUCBMQU5HVUFHRSBhbHRf bGFuZzIgQ0FTQ0FERTsKIERST1AgTEFOR1VBR0UgYWx0X2xhbmczIENBU0NBREU7CiBEUk9QIFND SEVNQSBhbHRfbnNwMSBDQVNDQURFOwotTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAyOCBvdGhl ciBvYmplY3RzCitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDMxIG90aGVyIG9iamVjdHMKIERF VEFJTDogIGRyb3AgY2FzY2FkZXMgdG8gZnVuY3Rpb24gYWx0X2Z1bmMzKGludGVnZXIpCiBkcm9w IGNhc2NhZGVzIHRvIGZ1bmN0aW9uIGFsdF9hZ2czKGludGVnZXIpCiBkcm9wIGNhc2NhZGVzIHRv IGZ1bmN0aW9uIGFsdF9mdW5jNChpbnRlZ2VyKQpAQCAtNzI3LDYgKzc3MCw5IEBAIGRyb3AgY2Fz Y2FkZXMgdG8gb3BlcmF0b3IgZmFtaWx5IGFsdF9vcGMxIGZvciBhY2Nlc3MgbWV0aG9kIGhhc2gK IGRyb3AgY2FzY2FkZXMgdG8gb3BlcmF0b3IgZmFtaWx5IGFsdF9vcGMyIGZvciBhY2Nlc3MgbWV0 aG9kIGhhc2gKIGRyb3AgY2FzY2FkZXMgdG8gb3BlcmF0b3IgZmFtaWx5IGFsdF9vcGY0IGZvciBh Y2Nlc3MgbWV0aG9kIGhhc2gKIGRyb3AgY2FzY2FkZXMgdG8gb3BlcmF0b3IgZmFtaWx5IGFsdF9v cGYyIGZvciBhY2Nlc3MgbWV0aG9kIGhhc2gKK2Ryb3AgY2FzY2FkZXMgdG8gcHJvcGVydHkgZ3Jh cGggYWx0X2dyYXBoMgorZHJvcCBjYXNjYWRlcyB0byBwcm9wZXJ0eSBncmFwaCBhbHRfZ3JhcGgz Citkcm9wIGNhc2NhZGVzIHRvIHByb3BlcnR5IGdyYXBoIGFsdF9ncmFwaDYKIGRyb3AgY2FzY2Fk ZXMgdG8gdGFibGUgYWx0X3JlZ3Jlc3NfMQogZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBhbHRfcmVn cmVzc18yCiBkcm9wIGNhc2NhZGVzIHRvIHRleHQgc2VhcmNoIGRpY3Rpb25hcnkgYWx0X3RzX2Rp Y3QzCkBAIC03NDAsMTIgKzc4NiwxMyBAQCBkcm9wIGNhc2NhZGVzIHRvIHRleHQgc2VhcmNoIHRl bXBsYXRlIGFsdF90c190ZW1wMgogZHJvcCBjYXNjYWRlcyB0byB0ZXh0IHNlYXJjaCBwYXJzZXIg YWx0X3RzX3ByczMKIGRyb3AgY2FzY2FkZXMgdG8gdGV4dCBzZWFyY2ggcGFyc2VyIGFsdF90c19w cnMyCiBEUk9QIFNDSEVNQSBhbHRfbnNwMiBDQVNDQURFOwotTk9USUNFOiAgZHJvcCBjYXNjYWRl cyB0byA5IG90aGVyIG9iamVjdHMKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gMTAgb3RoZXIg b2JqZWN0cwogREVUQUlMOiAgZHJvcCBjYXNjYWRlcyB0byBmdW5jdGlvbiBhbHRfbnNwMi5hbHRf ZnVuYzIoaW50ZWdlcikKIGRyb3AgY2FzY2FkZXMgdG8gZnVuY3Rpb24gYWx0X25zcDIuYWx0X2Fn ZzIoaW50ZWdlcikKIGRyb3AgY2FzY2FkZXMgdG8gY29udmVyc2lvbiBhbHRfbnNwMi5hbHRfY29u djIKIGRyb3AgY2FzY2FkZXMgdG8gb3BlcmF0b3IgYWx0X25zcDIuQC1AKGludGVnZXIsaW50ZWdl cikKIGRyb3AgY2FzY2FkZXMgdG8gb3BlcmF0b3IgZmFtaWx5IGFsdF9uc3AyLmFsdF9vcGYyIGZv ciBhY2Nlc3MgbWV0aG9kIGhhc2gKK2Ryb3AgY2FzY2FkZXMgdG8gcHJvcGVydHkgZ3JhcGggYWx0 X25zcDIuYWx0X2dyYXBoMgogZHJvcCBjYXNjYWRlcyB0byB0ZXh0IHNlYXJjaCBkaWN0aW9uYXJ5 IGFsdF9uc3AyLmFsdF90c19kaWN0MgogZHJvcCBjYXNjYWRlcyB0byB0ZXh0IHNlYXJjaCBjb25m aWd1cmF0aW9uIGFsdF9uc3AyLmFsdF90c19jb25mMgogZHJvcCBjYXNjYWRlcyB0byB0ZXh0IHNl YXJjaCB0ZW1wbGF0ZSBhbHRfbnNwMi5hbHRfdHNfdGVtcDIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLm91dApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNDMzMTZmYmMwMjkKLS0tIC9kZXYvbnVsbAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5vdXQKQEAgLTAs MCArMSw0OTYgQEAKK0NSRUFURSBTQ0hFTUEgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzOwor R1JBTlQgVVNBR0UgT04gU0NIRU1BIGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyBUTyBQVUJM SUM7CitTRVQgc2VhcmNoX3BhdGggPSBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHM7CitDUkVB VEUgUk9MRSByZWdyZXNzX2dyYXBoX3VzZXIxOworQ1JFQVRFIFJPTEUgcmVncmVzc19ncmFwaF91 c2VyMjsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBnMTsKK0NPTU1FTlQgT04gUFJPUEVSVFkgR1JB UEggZzEgSVMgJ2EgZ3JhcGgnOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGcxOyAgLS0gZXJyb3I6 IGR1cGxpY2F0ZQorRVJST1I6ICByZWxhdGlvbiAiZzEiIGFscmVhZHkgZXhpc3RzCitDUkVBVEUg VEFCTEUgdDEgKGEgaW50LCBiIHRleHQpOworQ1JFQVRFIFRBQkxFIHQyIChpIGludCBQUklNQVJZ IEtFWSwgaiBpbnQsIGsgaW50KTsKK0NSRUFURSBUQUJMRSB0MyAoeCBpbnQsIHkgdGV4dCwgeiB0 ZXh0KTsKK0NSRUFURSBUQUJMRSBlMSAoYSBpbnQsIGkgaW50LCB0IHRleHQsIFBSSU1BUlkgS0VZ IChhLCBpKSk7CitDUkVBVEUgVEFCTEUgZTIgKGEgaW50LCB4IGludCwgdCB0ZXh0KTsKK0NSRUFU RSBQUk9QRVJUWSBHUkFQSCBnMgorICAgIFZFUlRFWCBUQUJMRVMgKHQxIEtFWSAoYSksIHQyIERF RkFVTFQgTEFCRUwsIHQzIEtFWSAoeCkgTEFCRUwgdDNsMSBMQUJFTCB0M2wyKQorICAgIEVER0Ug VEFCTEVTICgKKyAgICAgICAgZTEKKyAgICAgICAgICAgIFNPVVJDRSBLRVkgKGEpIFJFRkVSRU5D RVMgdDEgKGEpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKGkpIFJFRkVSRU5DRVMgdDIg KGkpLAorICAgICAgICBlMiBLRVkgKGEsIHgpCisgICAgICAgICAgICBTT1VSQ0UgS0VZIChhKSBS RUZFUkVOQ0VTIHQxIChhKQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZICh4LCB0KSBSRUZF UkVOQ0VTIHQzICh4LCB5KQorICAgICk7CistLSB0ZXN0IGRlcGVuZGVuY2llcy9vYmplY3QgZGVz Y3JpcHRpb25zCitEUk9QIFRBQkxFIHQxOyAgLS0gZmFpbAorRVJST1I6ICBjYW5ub3QgZHJvcCB0 YWJsZSB0MSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICB2ZXJ0 ZXggdDEgb2YgcHJvcGVydHkgZ3JhcGggZzIgZGVwZW5kcyBvbiB0YWJsZSB0MQorZWRnZSBlMSBv ZiBwcm9wZXJ0eSBncmFwaCBnMiBkZXBlbmRzIG9uIHRhYmxlIHQxCitlZGdlIGUyIG9mIHByb3Bl cnR5IGdyYXBoIGcyIGRlcGVuZHMgb24gdGFibGUgdDEKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FT Q0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCitBTFRFUiBUQUJMRSB0MSBE Uk9QIENPTFVNTiBiOyAgLS0gbm9uLWtleSBjb2x1bW47IGZhaWwKK0VSUk9SOiAgY2Fubm90IGRy b3AgY29sdW1uIGIgb2YgdGFibGUgdDEgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBp dAorREVUQUlMOiAgcHJvcGVydHkgYiBvZiBsYWJlbCB0MSBvZiB2ZXJ0ZXggdDEgb2YgcHJvcGVy dHkgZ3JhcGggZzIgZGVwZW5kcyBvbiBjb2x1bW4gYiBvZiB0YWJsZSB0MQorSElOVDogIFVzZSBE Uk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KK0FMVEVS IFRBQkxFIHQxIERST1AgQ09MVU1OIGE7ICAtLSBrZXkgY29sdW1uOyBmYWlsCitFUlJPUjogIGNh bm5vdCBkcm9wIGNvbHVtbiBhIG9mIHRhYmxlIHQxIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBl bmQgb24gaXQKK0RFVEFJTDogIHZlcnRleCB0MSBvZiBwcm9wZXJ0eSBncmFwaCBnMiBkZXBlbmRz IG9uIGNvbHVtbiBhIG9mIHRhYmxlIHQxCitlZGdlIGUxIG9mIHByb3BlcnR5IGdyYXBoIGcyIGRl cGVuZHMgb24gY29sdW1uIGEgb2YgdGFibGUgdDEKK2VkZ2UgZTIgb2YgcHJvcGVydHkgZ3JhcGgg ZzIgZGVwZW5kcyBvbiBjb2x1bW4gYSBvZiB0YWJsZSB0MQorSElOVDogIFVzZSBEUk9QIC4uLiBD QVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KKy0tIGxpa2UgZzIgYnV0 IGFzc2VtYmxlZCB3aXRoIEFMVEVSCitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZzM7CitBTFRFUiBQ Uk9QRVJUWSBHUkFQSCBnMyBBREQgVkVSVEVYIFRBQkxFUyAodDEgS0VZIChhKSwgdDIgREVGQVVM VCBMQUJFTCk7CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnMworICAgIEFERCBWRVJURVggVEFCTEVT ICh0MyBLRVkgKHgpIExBQkVMIHQzbDEpCisgICAgQUREIEVER0UgVEFCTEVTICgKKyAgICAgICAg ZTEgU09VUkNFIEtFWSAoYSkgUkVGRVJFTkNFUyB0MSAoYSkgREVTVElOQVRJT04gS0VZIChpKSBS RUZFUkVOQ0VTIHQyIChpKSwKKyAgICAgICAgZTIgS0VZIChhLCB4KSBTT1VSQ0UgS0VZIChhKSBS RUZFUkVOQ0VTIHQxIChhKSBERVNUSU5BVElPTiBLRVkgKHgsIHQpIFJFRkVSRU5DRVMgdDMgKHgs IHkpCisgICAgKTsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGczIEFMVEVSIFZFUlRFWCBUQUJMRSB0 MyBBREQgTEFCRUwgdDNsMiBQUk9QRVJUSUVTIEFMTCBDT0xVTU5TIEFERCBMQUJFTCB0M2wzIFBS T1BFUlRJRVMgQUxMIENPTFVNTlM7CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnMyBBTFRFUiBWRVJU RVggVEFCTEUgdDMgRFJPUCBMQUJFTCB0M2wzeDsgIC0tIGVycm9yCitFUlJPUjogIHByb3BlcnR5 IGdyYXBoICJnMyIgZWxlbWVudCAidDMiIGhhcyBubyBsYWJlbCAidDNsM3giCitBTFRFUiBQUk9Q RVJUWSBHUkFQSCBnMyBBTFRFUiBWRVJURVggVEFCTEUgdDMgRFJPUCBMQUJFTCB0M2wzOworQUxU RVIgUFJPUEVSVFkgR1JBUEggZzMgRFJPUCBWRVJURVggVEFCTEVTICh0Mik7ICAtLSBmYWlsIChU T0RPOiBkdWJpb3VzIGVycm9yIG1lc3NhZ2UpCitFUlJPUjogIGNhbm5vdCBkcm9wIHZlcnRleCB0 MiBvZiBwcm9wZXJ0eSBncmFwaCBnMyBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0 CitERVRBSUw6ICBlZGdlIGUxIG9mIHByb3BlcnR5IGdyYXBoIGczIGRlcGVuZHMgb24gdmVydGV4 IHQyIG9mIHByb3BlcnR5IGdyYXBoIGczCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8g ZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorQUxURVIgUFJPUEVSVFkgR1JBUEggZzMg RFJPUCBWRVJURVggVEFCTEVTICh0MikgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMg dG8gZWRnZSBlMSBvZiBwcm9wZXJ0eSBncmFwaCBnMworQUxURVIgUFJPUEVSVFkgR1JBUEggZzMg RFJPUCBFREdFIFRBQkxFUyAoZTIpOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGc0CisgICAgVkVS VEVYIFRBQkxFUyAoCisgICAgICAgIHQxIEtFWSAoYSkgTk8gUFJPUEVSVElFUywKKyAgICAgICAg dDIgREVGQVVMVCBMQUJFTCBQUk9QRVJUSUVTIChpICsgaiBBUyBpX2osIGspLAorICAgICAgICB0 MyBLRVkgKHgpIExBQkVMIHQzbDEgUFJPUEVSVElFUyAoeCwgeSBBUyB5eSkgTEFCRUwgdDNsMiBQ Uk9QRVJUSUVTICh4LCB6IEFTIHp6KQorICAgICkKKyAgICBFREdFIFRBQkxFUyAoCisgICAgICAg IGUxCisgICAgICAgICAgICBTT1VSQ0UgS0VZIChhKSBSRUZFUkVOQ0VTIHQxIChhKQorICAgICAg ICAgICAgREVTVElOQVRJT04gS0VZIChpKSBSRUZFUkVOQ0VTIHQyIChpKQorICAgICAgICAgICAg UFJPUEVSVElFUyBBTEwgQ09MVU1OUywKKyAgICAgICAgZTIgS0VZIChhLCB4KQorICAgICAgICAg ICAgU09VUkNFIEtFWSAoYSkgUkVGRVJFTkNFUyB0MSAoYSkKKyAgICAgICAgICAgIERFU1RJTkFU SU9OIEtFWSAoeCwgdCkgUkVGRVJFTkNFUyB0MyAoeCwgeSkKKyAgICAgICAgICAgIFBST1BFUlRJ RVMgQUxMIENPTFVNTlMKKyAgICApOworQUxURVIgUFJPUEVSVFkgR1JBUEggZzQgQUxURVIgVkVS VEVYIFRBQkxFIHQyIEFMVEVSIExBQkVMIHQyIEFERCBQUk9QRVJUSUVTIChrICogMiBBUyBrayk7 CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnNCBBTFRFUiBWRVJURVggVEFCTEUgdDIgQUxURVIgTEFC RUwgdDIgRFJPUCBQUk9QRVJUSUVTIChrKTsKK0NSRUFURSBUQUJMRSB0MTEgKGEgaW50IFBSSU1B UlkgS0VZKTsKK0NSRUFURSBUQUJMRSB0MTIgKGIgaW50IFBSSU1BUlkgS0VZKTsKK0NSRUFURSBU QUJMRSB0MTMgKAorICAgIGMgaW50IFBSSU1BUlkgS0VZLAorICAgIGQgaW50IFJFRkVSRU5DRVMg dDExLAorICAgIGUgaW50IFJFRkVSRU5DRVMgdDEyCispOworQ1JFQVRFIFBST1BFUlRZIEdSQVBI IGc1CisgICAgVkVSVEVYIFRBQkxFUyAodDExLCB0MTIpCisgICAgRURHRSBUQUJMRVMgKHQxMyBT T1VSQ0UgdDExIERFU1RJTkFUSU9OIHQxMik7CitTRUxFQ1QgcGdfZ2V0X3Byb3BncmFwaGRlZign ZzUnOjpyZWdjbGFzcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwZ19nZXRfcHJvcGdyYXBoZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cy5nNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIFZFUlRFWCBUQUJMRVMgKCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICB0MTEgS0VZIChhKSBQUk9QRVJU SUVTIChhKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICB0MTIgS0VZIChiKSBQUk9Q RVJUSUVTIChiKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIEVER0UgVEFCTEVTICgg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICB0MTMgS0VZ IChjKSBTT1VSQ0UgS0VZIChlKSBSRUZFUkVOQ0VTIHQxMSAoYSkgREVTVElOQVRJT04gS0VZIChl KSBSRUZFUkVOQ0VTIHQxMiAoYikgUFJPUEVSVElFUyAoYywgZCwgZSkrCisgICAgICkKKygxIHJv dykKKworLS0gZXJyb3IgY2FzZXMKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBneCBWRVJURVggVEFC TEVTICh4eCwgeXkpOworRVJST1I6ICByZWxhdGlvbiAieHgiIGRvZXMgbm90IGV4aXN0CitDUkVB VEUgUFJPUEVSVFkgR1JBUEggZ3ggVkVSVEVYIFRBQkxFUyAodDEgS0VZIChhKSwgdDIgS0VZIChp KSwgdDEgS0VZIChhKSk7CitFUlJPUjogIGFsaWFzICJ0MSIgdXNlZCBtb3JlIHRoYW4gb25jZSBh cyBlbGVtZW50IHRhYmxlCitMSU5FIDE6IC4uLlkgR1JBUEggZ3ggVkVSVEVYIFRBQkxFUyAodDEg S0VZIChhKSwgdDIgS0VZIChpKSwgdDEgS0VZIChhKS4uLgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0NSRUFURSBQUk9QRVJU WSBHUkFQSCBneAorICAgIFZFUlRFWCBUQUJMRVMgKHQxIEFTIHR0IEtFWSAoYSksIHQyIEtFWSAo aSkpCisgICAgRURHRSBUQUJMRVMgKAorICAgICAgICBlMSBTT1VSQ0UgdDEgREVTVElOQVRJT04g dDIKKyAgICApOworRVJST1I6ICBzb3VyY2UgdmVydGV4ICJ0MSIgb2YgZWRnZSAiZTEiIGRvZXMg bm90IGV4aXN0CitMSU5FIDQ6ICAgICAgICAgZTEgU09VUkNFIHQxIERFU1RJTkFUSU9OIHQyCisg ICAgICAgICAgICAgICAgXgorQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGd4CisgICAgVkVSVEVYIFRB QkxFUyAodDEgS0VZIChhKSwgdDIgS0VZIChpKSkKKyAgICBFREdFIFRBQkxFUyAoCisgICAgICAg IGUxIFNPVVJDRSB0MSBERVNUSU5BVElPTiB0eAorICAgICk7CitFUlJPUjogIGRlc3RpbmF0aW9u IHZlcnRleCAidHgiIG9mIGVkZ2UgImUxIiBkb2VzIG5vdCBleGlzdAorTElORSA0OiAgICAgICAg IGUxIFNPVVJDRSB0MSBERVNUSU5BVElPTiB0eAorICAgICAgICAgICAgICAgIF4KK0NPTU1FTlQg T04gUFJPUEVSVFkgR1JBUEggZ3ggSVMgJ25vdCBhIGdyYXBoJzsKK0VSUk9SOiAgcmVsYXRpb24g Imd4IiBkb2VzIG5vdCBleGlzdAorQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGd4CisgICAgVkVSVEVY IFRBQkxFUyAodDEgS0VZIChhKSwgdDIpCisgICAgRURHRSBUQUJMRVMgKAorICAgICAgICBlMSBT T1VSQ0UgdDEgREVTVElOQVRJT04gdDIgIC0tIG5vIGZvcmVpZ24ga2V5cworICAgICk7CitFUlJP UjogIG5vIFNPVVJDRSBrZXkgc3BlY2lmaWVkIGFuZCBubyBzdWl0YWJsZSBmb3JlaWduIGtleSBl eGlzdHMgZm9yIGRlZmluaXRpb24gb2YgZWRnZSAiZTEiCitMSU5FIDQ6ICAgICAgICAgZTEgU09V UkNFIHQxIERFU1RJTkFUSU9OIHQyICAtLSBubyBmb3JlaWduIGtleXMKKyAgICAgICAgICAgICAg ICBeCitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZ3gKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAg ICAgdDEgS0VZIChhKSBMQUJFTCBmb28gUFJPUEVSVElFUyAoYSArIDEgQVMgYWEpCisgICAgICAg ICAgICAgICAgICAgTEFCRUwgYmFyIFBST1BFUlRJRVMgKDEgKyBhIEFTIGFhKSAgLS0gZXhwcmVz c2lvbiBtaXNtYXRjaAorICAgICk7CitFUlJPUjogIGVsZW1lbnQgInQxIiBwcm9wZXJ0eSAiYWEi IGV4cHJlc3Npb24gbWlzbWF0Y2g6ICgxICsgYSkgdnMuIChhICsgMSkKK0RFVEFJTDogIEluIGEg cHJvcGVydHkgZ3JhcGggZWxlbWVudCwgYSBwcm9wZXJ0eSBvZiB0aGUgc2FtZSBuYW1lIGhhcyB0 byBoYXZlIHRoZSBzYW1lIGV4cHJlc3Npb24gaW4gZWFjaCBsYWJlbC4KK0FMVEVSIFBST1BFUlRZ IEdSQVBIIGcyCisgICAgQUREIFZFUlRFWCBUQUJMRVMgKAorICAgICAgICB0MSBBUyB0MXggS0VZ IChhKSBMQUJFTCBmb28gUFJPUEVSVElFUyAoYSArIDEgQVMgYWEpCisgICAgICAgICAgICAgICAg ICAgICAgICAgIExBQkVMIGJhciBQUk9QRVJUSUVTICgxICsgYSBBUyBhYSkgIC0tIGV4cHJlc3Np b24gbWlzbWF0Y2gKKyAgICApOworRVJST1I6ICBlbGVtZW50ICJ0MXgiIHByb3BlcnR5ICJhYSIg ZXhwcmVzc2lvbiBtaXNtYXRjaDogKDEgKyBhKSB2cy4gKGEgKyAxKQorREVUQUlMOiAgSW4gYSBw cm9wZXJ0eSBncmFwaCBlbGVtZW50LCBhIHByb3BlcnR5IG9mIHRoZSBzYW1lIG5hbWUgaGFzIHRv IGhhdmUgdGhlIHNhbWUgZXhwcmVzc2lvbiBpbiBlYWNoIGxhYmVsLgorQ1JFQVRFIFBST1BFUlRZ IEdSQVBIIGd4CisgICAgVkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHQxIEtFWSAoYSkgUFJPUEVS VElFUyAoYiBBUyBwMSksCisgICAgICAgIHQyIFBST1BFUlRJRVMgKGsgQVMgcDEpICAtLSB0eXBl IG1pc21hdGNoCisgICAgKTsKK0VSUk9SOiAgcHJvcGVydHkgInAxIiBkYXRhIHR5cGUgbWlzbWF0 Y2g6IHRleHQgdnMuIGludGVnZXIKK0RFVEFJTDogIEluIGEgcHJvcGVydHkgZ3JhcGgsIGEgcHJv cGVydHkgb2YgdGhlIHNhbWUgbmFtZSBoYXMgdG8gaGF2ZSB0aGUgc2FtZSBkYXRhIHR5cGUgaW4g ZWFjaCBsYWJlbC4KK0FMVEVSIFBST1BFUlRZIEdSQVBIIGcyIEFMVEVSIFZFUlRFWCBUQUJMRSB0 MSBBREQgTEFCRUwgZm9vIFBST1BFUlRJRVMgKGIgQVMgayk7ICAtLSB0eXBlIG1pc21hdGNoCitF UlJPUjogIHByb3BlcnR5ICJrIiBkYXRhIHR5cGUgbWlzbWF0Y2g6IGludGVnZXIgdnMuIHRleHQK K0RFVEFJTDogIEluIGEgcHJvcGVydHkgZ3JhcGgsIGEgcHJvcGVydHkgb2YgdGhlIHNhbWUgbmFt ZSBoYXMgdG8gaGF2ZSB0aGUgc2FtZSBkYXRhIHR5cGUgaW4gZWFjaCBsYWJlbC4KK0NSRUFURSBQ Uk9QRVJUWSBHUkFQSCBneAorICAgIFZFUlRFWCBUQUJMRVMgKAorICAgICAgICB0MSBLRVkgKGEp IExBQkVMIGwxIFBST1BFUlRJRVMgKGEsIGEgQVMgYWEpLAorICAgICAgICB0MiBLRVkgKGkpIExB QkVMIGwxIFBST1BFUlRJRVMgKGkgQVMgYSwgaiBBUyBiLCBrKSAgLS0gbWlzbWF0Y2hpbmcgbnVt YmVyIG9mIHByb3BlcnRpZXMgb24gbGFiZWwKKyAgICApOworRVJST1I6ICBtaXNtYXRjaGluZyBu dW1iZXIgb2YgcHJvcGVydGllcyBpbiBkZWZpbml0aW9uIG9mIGxhYmVsICJsMSIKK0NSRUFURSBQ Uk9QRVJUWSBHUkFQSCBneAorICAgIFZFUlRFWCBUQUJMRVMgKAorICAgICAgICB0MSBLRVkgKGEp IExBQkVMIGwxIFBST1BFUlRJRVMgKGEsIGIpLAorICAgICAgICB0MiBLRVkgKGkpIExBQkVMIGwx IFBST1BFUlRJRVMgKGkgQVMgYSkgIC0tIG1pc21hdGNoaW5nIG51bWJlciBvZiBwcm9wZXJ0aWVz IG9uIGxhYmVsCisgICAgKTsKK0VSUk9SOiAgbWlzbWF0Y2hpbmcgbnVtYmVyIG9mIHByb3BlcnRp ZXMgaW4gZGVmaW5pdGlvbiBvZiBsYWJlbCAibDEiCitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZ3gK KyAgICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgdDEgS0VZIChhKSBMQUJFTCBsMSBQUk9QRVJU SUVTIChhLCBiKSwKKyAgICAgICAgdDIgS0VZIChpKSBMQUJFTCBsMSBQUk9QRVJUSUVTIChpIEFT IGEsIGogQVMgaikgIC0tIG1pc21hdGNoaW5nIHByb3BlcnR5IG5hbWVzIG9uIGxhYmVsCisgICAg KTsKK0VSUk9SOiAgbWlzbWF0Y2hpbmcgcHJvcGVydGllcyBuYW1lcyBpbiBkZWZpbml0aW9uIG9m IGxhYmVsICJsMSIKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGc0IEFMVEVSIFZFUlRFWCBUQUJMRSB0 MSBBREQgTEFCRUwgdDNsMSBQUk9QRVJUSUVTIChhIEFTIHgsIGIgQVMgeXksIGIgQVMgenopOyAg LS0gbWlzbWF0Y2hpbmcgbnVtYmVyIG9mIHByb3BlcnRpZXMgb24gbGFiZWwKK0VSUk9SOiAgbWlz bWF0Y2hpbmcgbnVtYmVyIG9mIHByb3BlcnRpZXMgaW4gZGVmaW5pdGlvbiBvZiBsYWJlbCAidDNs MSIKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGc0IEFMVEVSIFZFUlRFWCBUQUJMRSB0MSBBREQgTEFC RUwgdDNsMSBQUk9QRVJUSUVTIChhIEFTIHgsIGIgQVMgenopOyAgLS0gbWlzbWF0Y2hpbmcgcHJv cGVydHkgbmFtZXMgb24gbGFiZWwKK0VSUk9SOiAgbWlzbWF0Y2hpbmcgcHJvcGVydGllcyBuYW1l cyBpbiBkZWZpbml0aW9uIG9mIGxhYmVsICJ0M2wxIgorQUxURVIgUFJPUEVSVFkgR1JBUEggZzQg QUxURVIgVkVSVEVYIFRBQkxFIHQxIEFERCBMQUJFTCB0M2wxIFBST1BFUlRJRVMgKGEgQVMgeCk7 ICAtLSBtaXNtYXRjaGluZyBudW1iZXIgb2YgcHJvcGVydGllcyBvbiBsYWJlbAorRVJST1I6ICBt aXNtYXRjaGluZyBudW1iZXIgb2YgcHJvcGVydGllcyBpbiBkZWZpbml0aW9uIG9mIGxhYmVsICJ0 M2wxIgorQUxURVIgUFJPUEVSVFkgR1JBUEggZzEgT1dORVIgVE8gcmVncmVzc19ncmFwaF91c2Vy MTsKK1NFVCBST0xFIHJlZ3Jlc3NfZ3JhcGhfdXNlcjE7CitHUkFOVCBTRUxFQ1QgT04gUFJPUEVS VFkgR1JBUEggZzEgVE8gcmVncmVzc19ncmFwaF91c2VyMjsKK0dSQU5UIFVQREFURSBPTiBQUk9Q RVJUWSBHUkFQSCBnMSBUTyByZWdyZXNzX2dyYXBoX3VzZXIyOyAgLS0gZmFpbAorRVJST1I6ICBp bnZhbGlkIHByaXZpbGVnZSB0eXBlIFVQREFURSBmb3IgcHJvcGVydHkgZ3JhcGgKK1JFU0VUIFJP TEU7CistLSBpbmZvcm1hdGlvbiBzY2hlbWEKK1NFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2No ZW1hLnByb3BlcnR5X2dyYXBocyBPUkRFUiBCWSBwcm9wZXJ0eV9ncmFwaF9uYW1lOworIHByb3Bl cnR5X2dyYXBoX2NhdGFsb2cgfCAgICBwcm9wZXJ0eV9ncmFwaF9zY2hlbWEgICAgfCBwcm9wZXJ0 eV9ncmFwaF9uYW1lIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Npb24gICAgICAgICAg ICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMQorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMgorIHJlZ3Jlc3Npb24gICAg ICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMworIHJlZ3Jlc3Npb24g ICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNAorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNQorKDUgcm93 cykKKworU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfZWxlbWVudF90YWJsZXMg T1JERVIgQlkgcHJvcGVydHlfZ3JhcGhfbmFtZSwgZWxlbWVudF90YWJsZV9hbGlhczsKKyBwcm9w ZXJ0eV9ncmFwaF9jYXRhbG9nIHwgICAgcHJvcGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJvcGVy dHlfZ3JhcGhfbmFtZSB8IGVsZW1lbnRfdGFibGVfYWxpYXMgfCBlbGVtZW50X3RhYmxlX2tpbmQg fCB0YWJsZV9jYXRhbG9nIHwgICAgICAgIHRhYmxlX3NjaGVtYSAgICAgICAgIHwgdGFibGVfbmFt ZSB8IGVsZW1lbnRfdGFibGVfZGVmaW5pdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAgICAgICAgICAgfCBFREdF ICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rl c3RzIHwgZTEgICAgICAgICB8IAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJv cGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgZTIgICAgICAgICAgICAg ICAgICB8IEVER0UgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgfCBjcmVhdGVfcHJvcGVy dHlfZ3JhcGhfdGVzdHMgfCBlMiAgICAgICAgIHwgCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8 IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0MSAg ICAgICAgICAgICAgICAgIHwgVkVSVEVYICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IHQxICAgICAgICAgfCAKKyByZWdyZXNzaW9uICAg ICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAg ICAgICB8IHQyICAgICAgICAgICAgICAgICAgfCBWRVJURVggICAgICAgICAgICAgfCByZWdyZXNz aW9uICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgdDIgICAgICAgICB8IAorIHJl Z3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAg ICAgICAgICAgICAgICAgIHwgdDMgICAgICAgICAgICAgICAgICB8IFZFUlRFWCAgICAgICAgICAg ICB8IHJlZ3Jlc3Npb24gICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCB0MyAgICAg ICAgIHwgCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90 ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCB0MSAgICAgICAgICAgICAgICAgIHwgVkVSVEVY ICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0 cyB8IHQxICAgICAgICAgfCAKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3Bl cnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHQzICAgICAgICAgICAgICAg ICAgfCBWRVJURVggICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgdDMgICAgICAgICB8IAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgZTEgICAg ICAgICAgICAgICAgICB8IEVER0UgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgfCBjcmVh dGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBlMSAgICAgICAgIHwgCisgcmVncmVzc2lvbiAgICAg ICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAg ICAgfCBlMiAgICAgICAgICAgICAgICAgIHwgRURHRSAgICAgICAgICAgICAgIHwgcmVncmVzc2lv biAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGUyICAgICAgICAgfCAKKyByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAg ICAgICAgICAgICAgICB8IHQxICAgICAgICAgICAgICAgICAgfCBWRVJURVggICAgICAgICAgICAg fCByZWdyZXNzaW9uICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgdDEgICAgICAg ICB8IAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVz dHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgdDIgICAgICAgICAgICAgICAgICB8IFZFUlRFWCAg ICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMg fCB0MiAgICAgICAgIHwgCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0 eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCB0MyAgICAgICAgICAgICAgICAg IHwgVkVSVEVYICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9n cmFwaF90ZXN0cyB8IHQzICAgICAgICAgfCAKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMSAgICAg ICAgICAgICAgICAgfCBWRVJURVggICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgdDExICAgICAgICB8IAorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAg IHwgdDEyICAgICAgICAgICAgICAgICB8IFZFUlRFWCAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24g ICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCB0MTIgICAgICAgIHwgCisgcmVncmVz c2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAg ICAgICAgICAgICAgfCB0MTMgICAgICAgICAgICAgICAgIHwgRURHRSAgICAgICAgICAgICAgIHwg cmVncmVzc2lvbiAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IHQxMyAgICAgICAg fCAKKygxNSByb3dzKQorCitTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5wZ19lbGVt ZW50X3RhYmxlX2tleV9jb2x1bW5zIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGVsZW1l bnRfdGFibGVfYWxpYXMsIG9yZGluYWxfcG9zaXRpb247CisgcHJvcGVydHlfZ3JhcGhfY2F0YWxv ZyB8ICAgIHByb3BlcnR5X2dyYXBoX3NjaGVtYSAgICB8IHByb3BlcnR5X2dyYXBoX25hbWUgfCBl bGVtZW50X3RhYmxlX2FsaWFzIHwgY29sdW1uX25hbWUgfCBvcmRpbmFsX3Bvc2l0aW9uIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAgICAgICAgICAg fCBhICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUx ICAgICAgICAgICAgICAgICAgfCBpICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDIKKyByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAg ICAgICAgICAgICAgICB8IGUyICAgICAgICAgICAgICAgICAgfCBhICAgICAgICAgICB8ICAgICAg ICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dy YXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUyICAgICAgICAgICAgICAgICAgfCB4 ICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQxICAg ICAgICAgICAgICAgICAgfCBhICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNz aW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAg ICAgICAgICAgICB8IHQyICAgICAgICAgICAgICAgICAgfCBpICAgICAgICAgICB8ICAgICAgICAg ICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQzICAgICAgICAgICAgICAgICAgfCB4ICAg ICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHQxICAgICAg ICAgICAgICAgICAgfCBhICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAg ICAgICAgICB8IHQzICAgICAgICAgICAgICAgICAgfCB4ICAgICAgICAgICB8ICAgICAgICAgICAg ICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rl c3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAgICAgICAgICAgfCBhICAgICAg ICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAg ICAgICAgICAgfCBpICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDIKKyByZWdyZXNzaW9uICAg ICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAg ICAgICB8IGUyICAgICAgICAgICAgICAgICAgfCBhICAgICAgICAgICB8ICAgICAgICAgICAgICAg IDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3Rz IHwgZzQgICAgICAgICAgICAgICAgICB8IGUyICAgICAgICAgICAgICAgICAgfCB4ICAgICAgICAg ICB8ICAgICAgICAgICAgICAgIDIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3By b3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IHQxICAgICAgICAgICAg ICAgICAgfCBhICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAg ICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAg ICB8IHQyICAgICAgICAgICAgICAgICAgfCBpICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEK KyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwg ZzQgICAgICAgICAgICAgICAgICB8IHQzICAgICAgICAgICAgICAgICAgfCB4ICAgICAgICAgICB8 ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3Bl cnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMSAgICAgICAgICAgICAg ICAgfCBhICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAg ICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8 IHQxMiAgICAgICAgICAgICAgICAgfCBiICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyBy ZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUg ICAgICAgICAgICAgICAgICB8IHQxMyAgICAgICAgICAgICAgICAgfCBjICAgICAgICAgICB8ICAg ICAgICAgICAgICAgIDEKKygxOSByb3dzKQorCitTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3Nj aGVtYS5wZ19lZGdlX3RhYmxlX2NvbXBvbmVudHMgT1JERVIgQlkgcHJvcGVydHlfZ3JhcGhfbmFt ZSwgZWRnZV90YWJsZV9hbGlhcywgZWRnZV9lbmQgREVTQywgb3JkaW5hbF9wb3NpdGlvbjsKKyBw cm9wZXJ0eV9ncmFwaF9jYXRhbG9nIHwgICAgcHJvcGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJv cGVydHlfZ3JhcGhfbmFtZSB8IGVkZ2VfdGFibGVfYWxpYXMgfCB2ZXJ0ZXhfdGFibGVfYWxpYXMg fCAgZWRnZV9lbmQgICB8IGVkZ2VfdGFibGVfY29sdW1uX25hbWUgfCB2ZXJ0ZXhfdGFibGVfY29s dW1uX25hbWUgfCBvcmRpbmFsX3Bvc2l0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0 cyB8IGcyICAgICAgICAgICAgICAgICAgfCBlMSAgICAgICAgICAgICAgIHwgdDEgICAgICAgICAg ICAgICAgIHwgU09VUkNFICAgICAgfCBhICAgICAgICAgICAgICAgICAgICAgIHwgYSAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgMQorIHJlZ3Jlc3Npb24gICAgICAgICAg ICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwg ZTEgICAgICAgICAgICAgICB8IHQyICAgICAgICAgICAgICAgICB8IERFU1RJTkFUSU9OIHwgaSAg ICAgICAgICAgICAgICAgICAgICB8IGkgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUyICAgICAgICAgICAgICAgfCB0MSAgICAg ICAgICAgICAgICAgfCBTT1VSQ0UgICAgICB8IGEgICAgICAgICAgICAgICAgICAgICAgfCBhICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAg ICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAg ICAgfCBlMiAgICAgICAgICAgICAgIHwgdDMgICAgICAgICAgICAgICAgIHwgREVTVElOQVRJT04g fCB4ICAgICAgICAgICAgICAgICAgICAgIHwgeCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgMQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlf Z3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgZTIgICAgICAgICAgICAgICB8IHQz ICAgICAgICAgICAgICAgICB8IERFU1RJTkFUSU9OIHwgdCAgICAgICAgICAgICAgICAgICAgICB8 IHkgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDIKKyByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAg ICAgICAgICB8IGUxICAgICAgICAgICAgICAgfCB0MSAgICAgICAgICAgICAgICAgfCBTT1VSQ0Ug ICAgICB8IGEgICAgICAgICAgICAgICAgICAgICAgfCBhICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBlMSAgICAgICAgICAgICAg IHwgdDIgICAgICAgICAgICAgICAgIHwgREVTVElOQVRJT04gfCBpICAgICAgICAgICAgICAgICAg ICAgIHwgaSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgMQorIHJlZ3Jl c3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAg ICAgICAgICAgICAgIHwgZTIgICAgICAgICAgICAgICB8IHQxICAgICAgICAgICAgICAgICB8IFNP VVJDRSAgICAgIHwgYSAgICAgICAgICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUyICAgICAgICAg ICAgICAgfCB0MyAgICAgICAgICAgICAgICAgfCBERVNUSU5BVElPTiB8IHggICAgICAgICAgICAg ICAgICAgICAgfCB4ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisg cmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0 ICAgICAgICAgICAgICAgICAgfCBlMiAgICAgICAgICAgICAgIHwgdDMgICAgICAgICAgICAgICAg IHwgREVTVElOQVRJT04gfCB0ICAgICAgICAgICAgICAgICAgICAgIHwgeSAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgMgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDEzICAg ICAgICAgICAgICB8IHQxMSAgICAgICAgICAgICAgICB8IFNPVVJDRSAgICAgIHwgZSAgICAgICAg ICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg IDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3Rz IHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMyAgICAgICAgICAgICAgfCB0MTIgICAgICAgICAg ICAgICAgfCBERVNUSU5BVElPTiB8IGUgICAgICAgICAgICAgICAgICAgICAgfCBiICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisoMTIgcm93cykKKworU0VMRUNUICog RlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfZWxlbWVudF90YWJsZV9sYWJlbHMgT1JERVIgQlkg cHJvcGVydHlfZ3JhcGhfbmFtZSwgZWxlbWVudF90YWJsZV9hbGlhcywgbGFiZWxfbmFtZTsKKyBw cm9wZXJ0eV9ncmFwaF9jYXRhbG9nIHwgICAgcHJvcGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJv cGVydHlfZ3JhcGhfbmFtZSB8IGVsZW1lbnRfdGFibGVfYWxpYXMgfCBsYWJlbF9uYW1lIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAg ICAgICAgICAgICAgICAgfCBlMSAgICAgICAgICAgICAgICAgIHwgZTEKKyByZWdyZXNzaW9uICAg ICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAg ICAgICB8IGUyICAgICAgICAgICAgICAgICAgfCBlMgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAg fCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgdDEg ICAgICAgICAgICAgICAgICB8IHQxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9w cm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0MiAgICAgICAgICAg ICAgICAgIHwgdDIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dy YXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQzICAgICAgICAgICAgICAgICAgfCB0 M2wxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0 cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0MyAgICAgICAgICAgICAgICAgIHwgdDNsMgorIHJl Z3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAg ICAgICAgICAgICAgICAgIHwgdDEgICAgICAgICAgICAgICAgICB8IHQxCisgcmVncmVzc2lvbiAg ICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAgICAg ICAgICAgfCB0MyAgICAgICAgICAgICAgICAgIHwgdDNsMQorIHJlZ3Jlc3Npb24gICAgICAgICAg ICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAgICAgICAgICAgIHwg dDMgICAgICAgICAgICAgICAgICB8IHQzbDIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUxICAgICAg ICAgICAgICAgICAgfCBlMQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVy dHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgZTIgICAgICAgICAgICAgICAg ICB8IGUyCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90 ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCB0MSAgICAgICAgICAgICAgICAgIHwgdDEKKyBy ZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQg ICAgICAgICAgICAgICAgICB8IHQyICAgICAgICAgICAgICAgICAgfCB0MgorIHJlZ3Jlc3Npb24g ICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAg ICAgICAgIHwgdDMgICAgICAgICAgICAgICAgICB8IHQzbDEKKyByZWdyZXNzaW9uICAgICAgICAg ICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8 IHQzICAgICAgICAgICAgICAgICAgfCB0M2wyCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTEgICAg ICAgICAgICAgICAgIHwgdDExCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTIgICAgICAgICAgICAg ICAgIHwgdDEyCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTMgICAgICAgICAgICAgICAgIHwgdDEz CisoMTggcm93cykKKworU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfZWxlbWVu dF90YWJsZV9wcm9wZXJ0aWVzIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGVsZW1lbnRf dGFibGVfYWxpYXMsIHByb3BlcnR5X25hbWU7CisgcHJvcGVydHlfZ3JhcGhfY2F0YWxvZyB8ICAg IHByb3BlcnR5X2dyYXBoX3NjaGVtYSAgICB8IHByb3BlcnR5X2dyYXBoX25hbWUgfCBlbGVtZW50 X3RhYmxlX2FsaWFzIHwgcHJvcGVydHlfbmFtZSB8IHByb3BlcnR5X2V4cHJlc3Npb24gCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBlMSAgICAgICAgICAgICAg ICAgIHwgYSAgICAgICAgICAgICB8IGEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAg ICAgICAgICAgfCBpICAgICAgICAgICAgIHwgaQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgZTEgICAg ICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgfCB0CisgcmVncmVzc2lvbiAgICAgICAgICAg ICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBl MiAgICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAgICB8IGEKKyByZWdyZXNzaW9uICAgICAg ICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAg ICB8IGUyICAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgIHwgdAorIHJlZ3Jlc3Npb24g ICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAg ICAgICAgIHwgZTIgICAgICAgICAgICAgICAgICB8IHggICAgICAgICAgICAgfCB4CisgcmVncmVz c2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAg ICAgICAgICAgICAgfCB0MSAgICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAgICB8IGEKKyBy ZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIg ICAgICAgICAgICAgICAgICB8IHQxICAgICAgICAgICAgICAgICAgfCBiICAgICAgICAgICAgIHwg YgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMg fCBnMiAgICAgICAgICAgICAgICAgIHwgdDIgICAgICAgICAgICAgICAgICB8IGkgICAgICAgICAg ICAgfCBpCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90 ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0MiAgICAgICAgICAgICAgICAgIHwgaiAgICAg ICAgICAgICB8IGoKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dy YXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQyICAgICAgICAgICAgICAgICAgfCBr ICAgICAgICAgICAgIHwgaworIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVy dHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgdDMgICAgICAgICAgICAgICAg ICB8IHggICAgICAgICAgICAgfCB4CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9w cm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0MyAgICAgICAgICAg ICAgICAgIHwgeSAgICAgICAgICAgICB8IHkKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQzICAgICAg ICAgICAgICAgICAgfCB6ICAgICAgICAgICAgIHwgegorIHJlZ3Jlc3Npb24gICAgICAgICAgICAg fCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAgICAgICAgICAgIHwgdDEg ICAgICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAg ICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAgICAgICAgICAg fCB0MSAgICAgICAgICAgICAgICAgIHwgYiAgICAgICAgICAgICB8IGIKKyByZWdyZXNzaW9uICAg ICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAg ICAgICB8IHQzICAgICAgICAgICAgICAgICAgfCB4ICAgICAgICAgICAgIHwgeAorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAg ICAgICAgICAgIHwgdDMgICAgICAgICAgICAgICAgICB8IHkgICAgICAgICAgICAgfCB5CisgcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAg ICAgICAgICAgICAgICAgfCB0MyAgICAgICAgICAgICAgICAgIHwgeiAgICAgICAgICAgICB8IHoK KyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwg ZzQgICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAgICAgICAgICAgfCBhICAgICAgICAgICAg IHwgYQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVz dHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgZTEgICAgICAgICAgICAgICAgICB8IGkgICAgICAg ICAgICAgfCBpCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBlMSAgICAgICAgICAgICAgICAgIHwgdCAg ICAgICAgICAgICB8IHQKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUyICAgICAgICAgICAgICAgICAg fCBhICAgICAgICAgICAgIHwgYQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJv cGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgZTIgICAgICAgICAgICAg ICAgICB8IHQgICAgICAgICAgICAgfCB0CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBlMiAgICAgICAg ICAgICAgICAgIHwgeCAgICAgICAgICAgICB8IHgKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IHQyICAg ICAgICAgICAgICAgICAgfCBpX2ogICAgICAgICAgIHwgKGkgKyBqKQorIHJlZ3Jlc3Npb24gICAg ICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAg ICAgIHwgdDIgICAgICAgICAgICAgICAgICB8IGtrICAgICAgICAgICAgfCAoayAqIDIpCisgcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAg ICAgICAgICAgICAgICAgfCB0MyAgICAgICAgICAgICAgICAgIHwgeCAgICAgICAgICAgICB8IHgK KyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwg ZzQgICAgICAgICAgICAgICAgICB8IHQzICAgICAgICAgICAgICAgICAgfCB5eSAgICAgICAgICAg IHwgeQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVz dHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgdDMgICAgICAgICAgICAgICAgICB8IHp6ICAgICAg ICAgICAgfCB6CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTEgICAgICAgICAgICAgICAgIHwgYSAg ICAgICAgICAgICB8IGEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMiAgICAgICAgICAgICAgICAg fCBiICAgICAgICAgICAgIHwgYgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJv cGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDEzICAgICAgICAgICAg ICAgICB8IGMgICAgICAgICAgICAgfCBjCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTMgICAgICAg ICAgICAgICAgIHwgZCAgICAgICAgICAgICB8IGQKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMyAg ICAgICAgICAgICAgICAgfCBlICAgICAgICAgICAgIHwgZQorKDM1IHJvd3MpCisKK1NFTEVDVCAq IEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnBnX2xhYmVsX3Byb3BlcnRpZXMgT1JERVIgQlkgcHJv cGVydHlfZ3JhcGhfbmFtZSwgbGFiZWxfbmFtZSwgcHJvcGVydHlfbmFtZTsKKyBwcm9wZXJ0eV9n cmFwaF9jYXRhbG9nIHwgICAgcHJvcGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJvcGVydHlfZ3Jh cGhfbmFtZSB8IGxhYmVsX25hbWUgfCBwcm9wZXJ0eV9uYW1lIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8 IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBlMSAg ICAgICAgIHwgYQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgZTEgICAgICAgICB8IGkKKyByZWdyZXNz aW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAg ICAgICAgICAgICB8IGUxICAgICAgICAgfCB0CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBlMiAgICAg ICAgIHwgYQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgZTIgICAgICAgICB8IHQKKyByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAg ICAgICAgICB8IGUyICAgICAgICAgfCB4CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0MSAgICAgICAg IHwgYQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVz dHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgdDEgICAgICAgICB8IGIKKyByZWdyZXNzaW9uICAg ICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAg ICAgICB8IHQyICAgICAgICAgfCBpCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9w cm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0MiAgICAgICAgIHwg agorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMg fCBnMiAgICAgICAgICAgICAgICAgIHwgdDIgICAgICAgICB8IGsKKyByZWdyZXNzaW9uICAgICAg ICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAg ICB8IHQzbDEgICAgICAgfCB4CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0M2wxICAgICAgIHwgeQor IHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBn MiAgICAgICAgICAgICAgICAgIHwgdDNsMSAgICAgICB8IHoKKyByZWdyZXNzaW9uICAgICAgICAg ICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8 IHQzbDIgICAgICAgfCB4CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0 eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0M2wyICAgICAgIHwgeQorIHJl Z3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAg ICAgICAgICAgICAgICAgIHwgdDNsMiAgICAgICB8IHoKKyByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHQx ICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9n cmFwaF90ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCB0MSAgICAgICAgIHwgYgorIHJlZ3Jl c3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAg ICAgICAgICAgICAgIHwgdDNsMSAgICAgICB8IHgKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHQzbDEg ICAgICAgfCB5CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCB0M2wxICAgICAgIHwgegorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAg ICAgICAgICAgIHwgdDNsMiAgICAgICB8IHgKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHQzbDIgICAg ICAgfCB5CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90 ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCB0M2wyICAgICAgIHwgegorIHJlZ3Jlc3Npb24g ICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAg ICAgICAgIHwgZTEgICAgICAgICB8IGEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAg fCBpCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0 cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBlMSAgICAgICAgIHwgdAorIHJlZ3Jlc3Npb24gICAg ICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAg ICAgIHwgZTIgICAgICAgICB8IGEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3By b3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUyICAgICAgICAgfCB0 CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8 IGc0ICAgICAgICAgICAgICAgICAgfCBlMiAgICAgICAgIHwgeAorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAg IHwgdDIgICAgICAgICB8IGlfagorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJv cGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgdDIgICAgICAgICB8IGtr CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8 IGc0ICAgICAgICAgICAgICAgICAgfCB0M2wxICAgICAgIHwgeAorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAg IHwgdDNsMSAgICAgICB8IHl5CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCB0M2wyICAgICAgIHwgeAor IHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBn NCAgICAgICAgICAgICAgICAgIHwgdDNsMiAgICAgICB8IHp6CisgcmVncmVzc2lvbiAgICAgICAg ICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAg fCB0MTEgICAgICAgIHwgYQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVy dHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDEyICAgICAgICB8IGIKKyBy ZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUg ICAgICAgICAgICAgICAgICB8IHQxMyAgICAgICAgfCBjCisgcmVncmVzc2lvbiAgICAgICAgICAg ICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0 MTMgICAgICAgIHwgZAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlf Z3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDEzICAgICAgICB8IGUKKyg0MiBy b3dzKQorCitTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5wZ19sYWJlbHMgT1JERVIg QlkgcHJvcGVydHlfZ3JhcGhfbmFtZSwgbGFiZWxfbmFtZTsKKyBwcm9wZXJ0eV9ncmFwaF9jYXRh bG9nIHwgICAgcHJvcGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJvcGVydHlfZ3JhcGhfbmFtZSB8 IGxhYmVsX25hbWUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAg ICAgICAgICAgIHwgZTEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUyCisgcmVncmVzc2lvbiAgICAg ICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAg ICAgfCB0MQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgdDIKKyByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQz bDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3Rz IHwgZzIgICAgICAgICAgICAgICAgICB8IHQzbDIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHQxCisg cmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcz ICAgICAgICAgICAgICAgICAgfCB0M2wxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCB0M2wyCisgcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAg ICAgICAgICAgICAgICAgfCBlMQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJv cGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgZTIKKyByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAg ICAgICAgICB8IHQxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9n cmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCB0MgorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAg IHwgdDNsMQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgdDNsMgorIHJlZ3Jlc3Npb24gICAgICAgICAg ICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwg dDExCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0 cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMwor KDE4IHJvd3MpCisKK1NFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnBnX3Byb3BlcnR5 X2RhdGFfdHlwZXMgT1JERVIgQlkgcHJvcGVydHlfZ3JhcGhfbmFtZSwgcHJvcGVydHlfbmFtZTsK KyBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nIHwgICAgcHJvcGVydHlfZ3JhcGhfc2NoZW1hICAgIHwg cHJvcGVydHlfZ3JhcGhfbmFtZSB8IHByb3BlcnR5X25hbWUgfCBkYXRhX3R5cGUgfCBjaGFyYWN0 ZXJfbWF4aW11bV9sZW5ndGggfCBjaGFyYWN0ZXJfb2N0ZXRfbGVuZ3RoIHwgY2hhcmFjdGVyX3Nl dF9jYXRhbG9nIHwgY2hhcmFjdGVyX3NldF9zY2hlbWEgfCBjaGFyYWN0ZXJfc2V0X25hbWUgfCBj b2xsYXRpb25fY2F0YWxvZyB8IGNvbGxhdGlvbl9zY2hlbWEgfCBjb2xsYXRpb25fbmFtZSB8IG51 bWVyaWNfcHJlY2lzaW9uIHwgbnVtZXJpY19wcmVjaXNpb25fcmFkaXggfCBudW1lcmljX3NjYWxl IHwgZGF0ZXRpbWVfcHJlY2lzaW9uIHwgaW50ZXJ2YWxfdHlwZSB8IGludGVydmFsX3ByZWNpc2lv biB8IHVzZXJfZGVmaW5lZF90eXBlX2NhdGFsb2cgfCB1c2VyX2RlZmluZWRfdHlwZV9zY2hlbWEg fCB1c2VyX2RlZmluZWRfdHlwZV9uYW1lIHwgc2NvcGVfY2F0YWxvZyB8IHNjb3BlX3NjaGVtYSB8 IHNjb3BlX25hbWUgfCBtYXhpbXVtX2NhcmRpbmFsaXR5IHwgZHRkX2lkZW50aWZpZXIgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAg ICAgICAgICAgIHwgYSAgICAgICAgICAgICB8IGludGVnZXIgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVz c2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBiICAgICAg ICAgICAgIHwgdGV4dCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAg IHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICB8IGIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGkgICAgICAgICAgICAgfCBpbnRlZ2VyICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAg ICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgaQorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAg ICAgICAgICAgIHwgaiAgICAgICAgICAgICB8IGludGVnZXIgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVz c2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgfCBqCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBrICAgICAg ICAgICAgIHwgaW50ZWdlciAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAg IHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50NCAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICB8IGsKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgfCB0ZXh0ICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAg ICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgdAorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAg ICAgICAgICAgIHwgeCAgICAgICAgICAgICB8IGludGVnZXIgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVz c2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgfCB4CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB5ICAgICAg ICAgICAgIHwgdGV4dCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAg IHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICB8IHkKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHogICAgICAgICAgICAgfCB0ZXh0ICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAg ICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgegorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAg ICAgICAgICAgIHwgYSAgICAgICAgICAgICB8IGludGVnZXIgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVz c2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCBiICAgICAg ICAgICAgIHwgdGV4dCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAg IHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICB8IGIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHggICAgICAgICAgICAgfCBpbnRlZ2VyICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAg ICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgeAorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAg ICAgICAgICAgIHwgeSAgICAgICAgICAgICB8IHRleHQgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVz c2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IHRleHQgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgfCB5CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCB6ICAgICAg ICAgICAgIHwgdGV4dCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAg IHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICB8IHoKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgfCBpbnRlZ2VyICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAg ICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgYQorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAg ICAgICAgICAgIHwgaSAgICAgICAgICAgICB8IGludGVnZXIgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVz c2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgfCBpCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBpX2ogICAg ICAgICAgIHwgaW50ZWdlciAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAg IHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50NCAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICB8IGlfagorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwga2sgICAgICAgICAgICB8IGludGVnZXIg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAg ICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBraworIHJlZ3Jl c3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAg ICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICB8IHRleHQgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVn cmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IHRleHQg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCB0CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8 IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCB4ICAg ICAgICAgICAgIHwgaW50ZWdlciAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAg ICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50NCAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICB8IHgKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dy YXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IHl5ICAgICAgICAgICAgfCB0ZXh0ICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAg ICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgeXkKKyByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAg ICAgICAgICAgICAgICB8IHp6ICAgICAgICAgICAgfCB0ZXh0ICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJl Z3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0 ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgenoKKyByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IGEg ICAgICAgICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAg ICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgIHwgYQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlf Z3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgYiAgICAgICAgICAgICB8IGludGVn ZXIgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cg ICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBiCisgcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAg ICAgICAgICAgICAgICAgfCBjICAgICAgICAgICAgIHwgaW50ZWdlciAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCBy ZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50 NCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGMKKyByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IGQg ICAgICAgICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAg ICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgIHwgZAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlf Z3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgZSAgICAgICAgICAgICB8IGludGVn ZXIgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cg ICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBlCisoMjcg cm93cykKKworU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfcHJvcGVydHlfZ3Jh cGhfcHJpdmlsZWdlcyBXSEVSRSBncmFudGVlIExJS0UgJ3JlZ3Jlc3MlJyBPUkRFUiBCWSBwcm9w ZXJ0eV9ncmFwaF9uYW1lOworICAgICAgIGdyYW50b3IgICAgICAgfCAgICAgICBncmFudGVlICAg ICAgIHwgcHJvcGVydHlfZ3JhcGhfY2F0YWxvZyB8ICAgIHByb3BlcnR5X2dyYXBoX3NjaGVtYSAg ICB8IHByb3BlcnR5X2dyYXBoX25hbWUgfCBwcml2aWxlZ2VfdHlwZSB8IGlzX2dyYW50YWJsZSAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19ncmFwaF91 c2VyMSB8IHJlZ3Jlc3NfZ3JhcGhfdXNlcjEgfCByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzEgICAgICAgICAgICAgICAgICB8IFNFTEVDVCAg ICAgICAgIHwgWUVTCisgcmVncmVzc19ncmFwaF91c2VyMSB8IHJlZ3Jlc3NfZ3JhcGhfdXNlcjIg fCByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwg ZzEgICAgICAgICAgICAgICAgICB8IFNFTEVDVCAgICAgICAgIHwgTk8KKygyIHJvd3MpCisKK1xh XHQKK1NFTEVDVCBwZ19nZXRfcHJvcGdyYXBoZGVmKCdnMic6OnJlZ2NsYXNzKTsKK0NSRUFURSBQ Uk9QRVJUWSBHUkFQSCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMuZzIKKyAgICBWRVJURVgg VEFCTEVTICgKKyAgICAgICAgdDEgS0VZIChhKSBQUk9QRVJUSUVTIChhLCBiKSwKKyAgICAgICAg dDIgS0VZIChpKSBQUk9QRVJUSUVTIChpLCBqLCBrKSwKKyAgICAgICAgdDMgS0VZICh4KSBMQUJF TCB0M2wxIFBST1BFUlRJRVMgKHgsIHksIHopIExBQkVMIHQzbDIgUFJPUEVSVElFUyAoeCwgeSwg eikKKyAgICApCisgICAgRURHRSBUQUJMRVMgKAorICAgICAgICBlMSBLRVkgKGEsIGkpIFNPVVJD RSBLRVkgKGEpIFJFRkVSRU5DRVMgdDEgKGEpIERFU1RJTkFUSU9OIEtFWSAoaSkgUkVGRVJFTkNF UyB0MiAoaSkgUFJPUEVSVElFUyAoYSwgaSwgdCksCisgICAgICAgIGUyIEtFWSAoYSwgeCkgU09V UkNFIEtFWSAoYSkgUkVGRVJFTkNFUyB0MSAoYSkgREVTVElOQVRJT04gS0VZICh4LCB0KSBSRUZF UkVOQ0VTIHQzICh4LCB5KSBQUk9QRVJUSUVTIChhLCB0LCB4KQorICAgICkKK1NFTEVDVCBwZ19n ZXRfcHJvcGdyYXBoZGVmKCdnMyc6OnJlZ2NsYXNzKTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMuZzMKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAg ICAgdDEgS0VZIChhKSBQUk9QRVJUSUVTIChhLCBiKSwKKyAgICAgICAgdDMgS0VZICh4KSBMQUJF TCB0M2wxIFBST1BFUlRJRVMgKHgsIHksIHopIExBQkVMIHQzbDIgUFJPUEVSVElFUyAoeCwgeSwg eikKKyAgICApCitTRUxFQ1QgcGdfZ2V0X3Byb3BncmFwaGRlZignZzQnOjpyZWdjbGFzcyk7CitD UkVBVEUgUFJPUEVSVFkgR1JBUEggY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzLmc0CisgICAg VkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHQxIEtFWSAoYSkgTk8gUFJPUEVSVElFUywKKyAgICAg ICAgdDIgS0VZIChpKSBQUk9QRVJUSUVTICgoaSArIGopIEFTIGlfaiwgKGsgKiAyKSBBUyBrayks CisgICAgICAgIHQzIEtFWSAoeCkgTEFCRUwgdDNsMSBQUk9QRVJUSUVTICh4LCB5IEFTIHl5KSBM QUJFTCB0M2wyIFBST1BFUlRJRVMgKHgsIHogQVMgenopCisgICAgKQorICAgIEVER0UgVEFCTEVT ICgKKyAgICAgICAgZTEgS0VZIChhLCBpKSBTT1VSQ0UgS0VZIChhKSBSRUZFUkVOQ0VTIHQxIChh KSBERVNUSU5BVElPTiBLRVkgKGkpIFJFRkVSRU5DRVMgdDIgKGkpIFBST1BFUlRJRVMgKGEsIGks IHQpLAorICAgICAgICBlMiBLRVkgKGEsIHgpIFNPVVJDRSBLRVkgKGEpIFJFRkVSRU5DRVMgdDEg KGEpIERFU1RJTkFUSU9OIEtFWSAoeCwgdCkgUkVGRVJFTkNFUyB0MyAoeCwgeSkgUFJPUEVSVElF UyAoYSwgdCwgeCkKKyAgICApCitTRUxFQ1QgcGdfZ2V0X3Byb3BncmFwaGRlZigncGdfdHlwZSc6 OnJlZ2NsYXNzKTsgIC0tIGVycm9yCitFUlJPUjogICJwZ190eXBlIiBpcyBub3QgYSBwcm9wZXJ0 eSBncmFwaAorXGFcdAorXGRHIGcxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2YgcmVsYXRpb25zCisgICAgICAgICAgIFNjaGVtYSAgICAgICAgICAgIHwgTmFtZSB8ICAgICAg VHlwZSAgICAgIHwgICAgICAgIE93bmVyICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcxICAgfCBwcm9wZXJ0eSBncmFwaCB8IHJlZ3Jl c3NfZ3JhcGhfdXNlcjEKKygxIHJvdykKKworLS0gVE9ETworXGQgZzEKK1Byb3BlcnR5IGdyYXBo ICJjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMuZzEiCisgQ29sdW1uIHwgVHlwZSAKKy0tLS0t LS0tKy0tLS0tLQorCitcZCsgZzEKK1Byb3BlcnR5IGdyYXBoICJjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHMuZzEiCisgQ29sdW1uIHwgVHlwZSB8IFN0b3JhZ2UgCistLS0tLS0tLSstLS0tLS0r LS0tLS0tLS0tCitQcm9wZXJ0eSBncmFwaCBkZWZpbml0aW9uOgorIENSRUFURSBQUk9QRVJUWSBH UkFQSCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMuZzEKKworRFJPUCBUQUJMRSBnMjsgIC0t IGVycm9yOiB3cm9uZyBvYmplY3QgdHlwZQorRVJST1I6ICAiZzIiIGlzIG5vdCBhIHRhYmxlCitI SU5UOiAgVXNlIERST1AgUFJPUEVSVFkgR1JBUEggdG8gcmVtb3ZlIGEgcHJvcGVydHkgZ3JhcGgu CitEUk9QIFBST1BFUlRZIEdSQVBIIGcxOworRFJPUCBQUk9QRVJUWSBHUkFQSCBnMTsgIC0tIGVy cm9yOiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBwcm9wZXJ0eSBncmFwaCAiZzEiIGRvZXMgbm90 IGV4aXN0CitEUk9QIFBST1BFUlRZIEdSQVBIIElGIEVYSVNUUyBnMTsKK05PVElDRTogIHByb3Bl cnR5IGdyYXBoICJnMSIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nCistLSBsZWF2ZSBmb3IgcGdf dXBncmFkZS9wZ19kdW1wIHRlc3RzCistLURST1AgU0NIRU1BIGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyBDQVNDQURFOworRFJPUCBST0xFIHJlZ3Jlc3NfZ3JhcGhfdXNlcjEsIHJlZ3Jlc3Nf Z3JhcGhfdXNlcjI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyYXBo X3RhYmxlLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3JhcGhfdGFibGUub3V0Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44MTNmYzlhYTI1NQotLS0gL2Rl di9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3JhcGhfdGFibGUub3V0CkBA IC0wLDAgKzEsNDg0IEBACitDUkVBVEUgU0NIRU1BIGdyYXBoX3RhYmxlX3Rlc3RzOworR1JBTlQg VVNBR0UgT04gU0NIRU1BIGdyYXBoX3RhYmxlX3Rlc3RzIFRPIFBVQkxJQzsKK1NFVCBzZWFyY2hf cGF0aCA9IGdyYXBoX3RhYmxlX3Rlc3RzOworQ1JFQVRFIFRBQkxFIHByb2R1Y3RzICgKKyAgICBw cm9kdWN0X25vIGludGVnZXIgUFJJTUFSWSBLRVksCisgICAgbmFtZSB2YXJjaGFyLAorICAgIHBy aWNlIG51bWVyaWMKKyk7CitDUkVBVEUgVEFCTEUgY3VzdG9tZXJzICgKKyAgICBjdXN0b21lcl9p ZCBpbnRlZ2VyIFBSSU1BUlkgS0VZLAorICAgIG5hbWUgdmFyY2hhciwKKyAgICBhZGRyZXNzIHZh cmNoYXIKKyk7CitDUkVBVEUgVEFCTEUgb3JkZXJzICgKKyAgICBvcmRlcl9pZCBpbnRlZ2VyIFBS SU1BUlkgS0VZLAorICAgIG9yZGVyZWRfd2hlbiBkYXRlCispOworQ1JFQVRFIFRBQkxFIG9yZGVy X2l0ZW1zICgKKyAgICBvcmRlcl9pdGVtc19pZCBpbnRlZ2VyIFBSSU1BUlkgS0VZLAorICAgIG9y ZGVyX2lkIGludGVnZXIgUkVGRVJFTkNFUyBvcmRlcnMgKG9yZGVyX2lkKSwKKyAgICBwcm9kdWN0 X25vIGludGVnZXIgUkVGRVJFTkNFUyBwcm9kdWN0cyAocHJvZHVjdF9ubyksCisgICAgcXVhbnRp dHkgaW50ZWdlcgorKTsKK0NSRUFURSBUQUJMRSBjdXN0b21lcl9vcmRlcnMgKAorICAgIGN1c3Rv bWVyX29yZGVyc19pZCBpbnRlZ2VyIFBSSU1BUlkgS0VZLAorICAgIGN1c3RvbWVyX2lkIGludGVn ZXIgUkVGRVJFTkNFUyBjdXN0b21lcnMgKGN1c3RvbWVyX2lkKSwKKyAgICBvcmRlcl9pZCBpbnRl Z2VyIFJFRkVSRU5DRVMgb3JkZXJzIChvcmRlcl9pZCkKKyk7CitDUkVBVEUgVEFCTEUgd2lzaGxp c3RzICgKKyAgICB3aXNobGlzdF9pZCBpbnRlZ2VyIFBSSU1BUlkgS0VZLAorICAgIHdpc2hsaXN0 X25hbWUgdmFyY2hhcgorKTsKK0NSRUFURSBUQUJMRSB3aXNobGlzdF9pdGVtcyAoCisgICAgd2lz aGxpc3RfaXRlbXNfaWQgaW50ZWdlciBQUklNQVJZIEtFWSwKKyAgICB3aXNobGlzdF9pZCBpbnRl Z2VyIFJFRkVSRU5DRVMgd2lzaGxpc3RzICh3aXNobGlzdF9pZCksCisgICAgcHJvZHVjdF9ubyBp bnRlZ2VyIFJFRkVSRU5DRVMgcHJvZHVjdHMgKHByb2R1Y3Rfbm8pCispOworQ1JFQVRFIFRBQkxF IGN1c3RvbWVyX3dpc2hsaXN0cyAoCisgICAgY3VzdG9tZXJfd2lzaGxpc3RfaWQgaW50ZWdlciBQ UklNQVJZIEtFWSwKKyAgICBjdXN0b21lcl9pZCBpbnRlZ2VyIFJFRkVSRU5DRVMgY3VzdG9tZXJz IChjdXN0b21lcl9pZCksCisgICAgd2lzaGxpc3RfaWQgaW50ZWdlciBSRUZFUkVOQ0VTIHdpc2hs aXN0cyAod2lzaGxpc3RfaWQpCispOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIG15c2hvcAorICAg IFZFUlRFWCBUQUJMRVMgKAorICAgICAgICBwcm9kdWN0cywKKyAgICAgICAgY3VzdG9tZXJzLAor ICAgICAgICBvcmRlcnMKKyAgICAgICAgICAgREVGQVVMVCBMQUJFTAorICAgICAgICAgICAgTEFC RUwgbGlzdHMgUFJPUEVSVElFUyAob3JkZXJfaWQgYXMgbm9kZV9pZCwgJ29yZGVyJzo6dmFyY2hh cigxMCkgYXMgbGlzdF90eXBlKSwKKyAgICAgICAgd2lzaGxpc3RzCisgICAgICAgICAgIERFRkFV TFQgTEFCRUwKKyAgICAgICAgICAgIExBQkVMIGxpc3RzIFBST1BFUlRJRVMgKHdpc2hsaXN0X2lk IGFzIG5vZGVfaWQsICd3aXNobGlzdCc6OnZhcmNoYXIoMTApIGFzIGxpc3RfdHlwZSkKKyAgICAp CisgICAgRURHRSBUQUJMRVMgKAorICAgICAgICBvcmRlcl9pdGVtcyBLRVkgKG9yZGVyX2l0ZW1z X2lkKQorICAgICAgICAgICAgU09VUkNFIEtFWSAob3JkZXJfaWQpIFJFRkVSRU5DRVMgb3JkZXJz IChvcmRlcl9pZCkKKyAgICAgICAgICAgIERFU1RJTkFUSU9OIEtFWSAocHJvZHVjdF9ubykgUkVG RVJFTkNFUyBwcm9kdWN0cyAocHJvZHVjdF9ubykKKyAgICAgICAgICAgIERFRkFVTFQgTEFCRUwK KyAgICAgICAgICAgIExBQkVMIGxpc3RfaXRlbXMgUFJPUEVSVElFUyAob3JkZXJfaWQgYXMgbGlu a19pZCwgcHJvZHVjdF9ubyksCisgICAgICAgIHdpc2hsaXN0X2l0ZW1zIEtFWSAod2lzaGxpc3Rf aXRlbXNfaWQpCisgICAgICAgICAgICBTT1VSQ0UgS0VZICh3aXNobGlzdF9pZCkgUkVGRVJFTkNF UyB3aXNobGlzdHMgKHdpc2hsaXN0X2lkKQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZIChw cm9kdWN0X25vKSBSRUZFUkVOQ0VTIHByb2R1Y3RzIChwcm9kdWN0X25vKQorICAgICAgICAgICAg REVGQVVMVCBMQUJFTAorICAgICAgICAgICAgTEFCRUwgbGlzdF9pdGVtcyBQUk9QRVJUSUVTICh3 aXNobGlzdF9pZCBhcyBsaW5rX2lkLCBwcm9kdWN0X25vKSwKKyAgICAgICAgY3VzdG9tZXJfb3Jk ZXJzIEtFWSAoY3VzdG9tZXJfb3JkZXJzX2lkKQorICAgICAgICAgICAgU09VUkNFIEtFWSAoY3Vz dG9tZXJfaWQpIFJFRkVSRU5DRVMgY3VzdG9tZXJzIChjdXN0b21lcl9pZCkKKyAgICAgICAgICAg IERFU1RJTkFUSU9OIEtFWSAob3JkZXJfaWQpIFJFRkVSRU5DRVMgb3JkZXJzIChvcmRlcl9pZCkK KyAgICAgICAgICAgIERFRkFVTFQgTEFCRUwKKyAgICAgICAgICAgIExBQkVMIGN1c3RfbGlzdHMg UFJPUEVSVElFUyAoY3VzdG9tZXJfaWQsIG9yZGVyX2lkIGFzIGxpbmtfaWQpLAorICAgICAgICBj dXN0b21lcl93aXNobGlzdHMgS0VZIChjdXN0b21lcl93aXNobGlzdF9pZCkKKyAgICAgICAgICAg IFNPVVJDRSBLRVkgKGN1c3RvbWVyX2lkKSBSRUZFUkVOQ0VTIGN1c3RvbWVycyAoY3VzdG9tZXJf aWQpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKHdpc2hsaXN0X2lkKSBSRUZFUkVOQ0VT IHdpc2hsaXN0cyAod2lzaGxpc3RfaWQpCisgICAgICAgICAgICBERUZBVUxUIExBQkVMCisgICAg ICAgICAgICBMQUJFTCBjdXN0X2xpc3RzIFBST1BFUlRJRVMgKGN1c3RvbWVyX2lkLCB3aXNobGlz dF9pZCBhcyBsaW5rX2lkKQorICAgICk7CitTRUxFQ1QgY3VzdG9tZXJfbmFtZSBGUk9NIEdSQVBI X1RBQkxFICh4eHggTUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycp LVtJUyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZSBBUyBj dXN0b21lcl9uYW1lKSk7ICAtLSBlcnJvcgorRVJST1I6ICByZWxhdGlvbiAieHh4IiBkb2VzIG5v dCBleGlzdAorTElORSAxOiBTRUxFQ1QgY3VzdG9tZXJfbmFtZSBGUk9NIEdSQVBIX1RBQkxFICh4 eHggTUFUQ0ggKGMgSVMgY3VzdG8uLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgorU0VMRUNUIGN1c3RvbWVyX25hbWUgRlJPTSBHUkFQSF9UQUJMRSAo cGdfY2xhc3MgTUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJ UyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZSBBUyBjdXN0 b21lcl9uYW1lKSk7ICAtLSBlcnJvcgorRVJST1I6ICAicGdfY2xhc3MiIGlzIG5vdCBhIHByb3Bl cnR5IGdyYXBoCitMSU5FIDE6IFNFTEVDVCBjdXN0b21lcl9uYW1lIEZST00gR1JBUEhfVEFCTEUg KHBnX2NsYXNzIE1BVENIIChjIElTIC4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgY3VzdG9tZXJfbmFtZSBGUk9NIEdSQVBIX1RBQkxF IChteXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJ UyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGN4Lm5hbWUgQVMgY3Vz dG9tZXJfbmFtZSkpOyAgLS0gZXJyb3IKK0VSUk9SOiAgbWlzc2luZyBGUk9NLWNsYXVzZSBlbnRy eSBmb3IgdGFibGUgImN4IgorTElORSAxOiAuLi5VUycpLVtJUyBjdXN0b21lcl9vcmRlcnNdLT4o byBJUyBvcmRlcnMpIENPTFVNTlMgKGN4Lm5hbWUgQVMuLi4KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgY3VzdG9t ZXJfbmFtZSBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdI RVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJUyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMp IENPTFVNTlMgKGMubmFtZXggQVMgY3VzdG9tZXJfbmFtZSkpOyAgLS0gZXJyb3IKK0VSUk9SOiAg cHJvcGVydHkgIm5hbWV4IiBkb2VzIG5vdCBleGlzdAorU0VMRUNUIGN1c3RvbWVyX25hbWUgRlJP TSBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENIIChjIElTIGN1c3RvbWVyc3xlbXBsb3llZXMgV0hF UkUgYy5hZGRyZXNzID0gJ1VTJyktW0lTIGN1c3RvbWVyX29yZGVyc10tPihvIElTIG9yZGVycykg Q09MVU1OUyAoYy5uYW1lIEFTIGN1c3RvbWVyX25hbWUpKTsgIC0tIGVycm9yCitFUlJPUjogIGxh YmVsICJlbXBsb3llZXMiIGRvZXMgbm90IGV4aXN0IGluIHByb3BlcnR5IGdyYXBoICJteXNob3Ai CitTRUxFQ1QgY3VzdG9tZXJfbmFtZSBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMg SVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJUyBjdXN0b21lcl9vcmRlcnNd IENPTFVNTlMgKGMubmFtZSBBUyBjdXN0b21lcl9uYW1lKSk7ICAtLSBlcnJvcgorRVJST1I6ICBz eW50YXggZXJyb3IgYXQgb3IgbmVhciAiQ09MVU1OUyIKK0xJTkUgMTogLi4ubWVycyBXSEVSRSBj LmFkZHJlc3MgPSAnVVMnKS1bSVMgY3VzdG9tZXJfb3JkZXJzXSBDT0xVTU5TIChjLi4uCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgorSU5TRVJUIElOVE8gcHJvZHVjdHMgVkFMVUVTCisgICAgKDEsICdwcm9kdWN0MScsIDEwKSwK KyAgICAoMiwgJ3Byb2R1Y3QyJywgMjApLAorICAgICgzLCAncHJvZHVjdDMnLCAzMCk7CitJTlNF UlQgSU5UTyBjdXN0b21lcnMgVkFMVUVTCisgICAgKDEsICdjdXN0b21lcjEnLCAnVVMnKSwKKyAg ICAoMiwgJ2N1c3RvbWVyMicsICdDQScpLAorICAgICgzLCAnY3VzdG9tZXIzJywgJ0dMJyk7CitJ TlNFUlQgSU5UTyBvcmRlcnMgVkFMVUVTCisgICAgKDEsIGRhdGUgJzIwMjQtMDEtMDEnKSwKKyAg ICAoMiwgZGF0ZSAnMjAyNC0wMS0wMicpLAorICAgICgzLCBkYXRlICcyMDI0LTAxLTAzJyk7CitJ TlNFUlQgSU5UTyB3aXNobGlzdHMgVkFMVUVTCisgICAgKDEsICd3aXNobGlzdDEnKSwKKyAgICAo MiwgJ3dpc2hsaXN0MicpLAorICAgICgzLCAnd2lzaGxpc3QzJyk7CitJTlNFUlQgSU5UTyBvcmRl cl9pdGVtcyAob3JkZXJfaXRlbXNfaWQsIG9yZGVyX2lkLCBwcm9kdWN0X25vLCBxdWFudGl0eSkg VkFMVUVTCisgICAgKDEsIDEsIDEsIDUpLAorICAgICgyLCAxLCAyLCAxMCksCisgICAgKDMsIDIs IDEsIDcpOworSU5TRVJUIElOVE8gY3VzdG9tZXJfb3JkZXJzIChjdXN0b21lcl9vcmRlcnNfaWQs IGN1c3RvbWVyX2lkLCBvcmRlcl9pZCkgVkFMVUVTCisgICAgKDEsIDEsIDEpLAorICAgICgyLCAy LCAyKTsKK0lOU0VSVCBJTlRPIGN1c3RvbWVyX3dpc2hsaXN0cyAoY3VzdG9tZXJfd2lzaGxpc3Rf aWQsIGN1c3RvbWVyX2lkLCB3aXNobGlzdF9pZCkgVkFMVUVTCisgICAgKDEsIDIsIDMpLAorICAg ICgyLCAzLCAxKSwKKyAgICAoMywgMywgMik7CitJTlNFUlQgSU5UTyB3aXNobGlzdF9pdGVtcyAo d2lzaGxpc3RfaXRlbXNfaWQsIHdpc2hsaXN0X2lkLCBwcm9kdWN0X25vKSBWQUxVRVMKKyAgICAo MSwgMSwgMiksCisgICAgKDIsIDEsIDMpLAorICAgICgzLCAyLCAxKSwKKyAgICAoNCwgMywgMSk7 CistLSBzaW5nbGUgZWxlbWVudCBwYXRoIHBhdHRlcm4KK1NFTEVDVCAqIEZST00gR1JBUEhfVEFC TEUgKG15c2hvcCBNQVRDSCAoYyBJUyBjdXN0b21lcnMpIENPTFVNTlMgKGMubmFtZSkpOworICAg bmFtZSAgICAKKy0tLS0tLS0tLS0tCisgY3VzdG9tZXIxCisgY3VzdG9tZXIyCisgY3VzdG9tZXIz CisoMyByb3dzKQorCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMg SVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJUyBjdXN0b21lcl9vcmRlcnNd LT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZSkpOworICAgbmFtZSAgICAKKy0tLS0tLS0t LS0tCisgY3VzdG9tZXIxCisoMSByb3cpCisKKy0tIGdyYXBoIGVsZW1lbnQgc3BlY2lmaWNhdGlv biB3aXRob3V0IGxhYmVsIG9yIHZhcmlhYmxlCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICht eXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtdLT4o byBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZSBBUyBjdXN0b21lcl9uYW1lKSk7CisgY3VzdG9t ZXJfbmFtZSAKKy0tLS0tLS0tLS0tLS0tLQorIGN1c3RvbWVyMQorKDEgcm93KQorCitTRUxFQ1Qg KiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGM6Y3VzdG9tZXJzKS1bY286Y3VzdG9t ZXJfb3JkZXJzXS0+KG86b3JkZXJzIFdIRVJFIG8ub3JkZXJlZF93aGVuID0gZGF0ZSAnMjAyNC0w MS0wMicpIENPTFVNTlMgKGMubmFtZSwgYy5hZGRyZXNzKSk7CisgICBuYW1lICAgIHwgYWRkcmVz cyAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLQorIGN1c3RvbWVyMiB8IENBCisoMSByb3cpCisKK1NF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAobyBJUyBvcmRlcnMpLVtJUyBj dXN0b21lcl9vcmRlcnNdLT4oYyBJUyBjdXN0b21lcnMpIENPTFVNTlMgKGMubmFtZSwgby5vcmRl cmVkX3doZW4pKTsKKyBuYW1lIHwgb3JkZXJlZF93aGVuIAorLS0tLS0tKy0tLS0tLS0tLS0tLS0t CisoMCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKG8g SVMgb3JkZXJzKTwtW0lTIGN1c3RvbWVyX29yZGVyc10tKGMgSVMgY3VzdG9tZXJzKSBDT0xVTU5T IChjLm5hbWUsIG8ub3JkZXJlZF93aGVuKSk7CisgICBuYW1lICAgIHwgb3JkZXJlZF93aGVuIAor LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KKyBjdXN0b21lcjEgfCAwMS0wMS0yMDI0CisgY3Vz dG9tZXIyIHwgMDEtMDItMjAyNAorKDIgcm93cykKKworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJM RSAobXlzaG9wIE1BVENIICggbyBJUyBvcmRlcnMgKSA8LSBbIElTIGN1c3RvbWVyX29yZGVycyBd IC0gKGMgSVMgY3VzdG9tZXJzKSBDT0xVTU5TICggYy5uYW1lLCBvLm9yZGVyZWRfd2hlbikpOwor ICAgbmFtZSAgICB8IG9yZGVyZWRfd2hlbiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCisg Y3VzdG9tZXIxIHwgMDEtMDEtMjAyNAorIGN1c3RvbWVyMiB8IDAxLTAyLTIwMjQKKygyIHJvd3Mp CisKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAoYyBJUyBjdXN0b21l cnMpLVtJUyBjdXN0X2xpc3RzXS0+KGwgSVMgbGlzdHMpLVsgSVMgbGlzdF9pdGVtc10tPihwIElT IHByb2R1Y3RzKSBDT0xVTU5TIChjLm5hbWUgQVMgY3VzdG9tZXJfbmFtZSwgcC5uYW1lIGFzIHBy b2R1Y3RfbmFtZSwgbC5saXN0X3R5cGUpKSBPUkRFUiBCWSBjdXN0b21lcl9uYW1lLCBwcm9kdWN0 X25hbWUsIGxpc3RfdHlwZTsKKyBjdXN0b21lcl9uYW1lIHwgcHJvZHVjdF9uYW1lIHwgbGlzdF90 eXBlIAorLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgY3VzdG9t ZXIxICAgICB8IHByb2R1Y3QxICAgICB8IG9yZGVyCisgY3VzdG9tZXIxICAgICB8IHByb2R1Y3Qy ICAgICB8IG9yZGVyCisgY3VzdG9tZXIyICAgICB8IHByb2R1Y3QxICAgICB8IG9yZGVyCisgY3Vz dG9tZXIyICAgICB8IHByb2R1Y3QxICAgICB8IHdpc2hsaXN0CisgY3VzdG9tZXIzICAgICB8IHBy b2R1Y3QxICAgICB8IHdpc2hsaXN0CisgY3VzdG9tZXIzICAgICB8IHByb2R1Y3QyICAgICB8IHdp c2hsaXN0CisgY3VzdG9tZXIzICAgICB8IHByb2R1Y3QzICAgICB8IHdpc2hsaXN0CisoNyByb3dz KQorCistLSBsYWJlbCBkaXNqdW5jdGlvbgorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAobXlz aG9wIE1BVENIIChjIElTIGN1c3RvbWVycyktW0lTIGN1c3RvbWVyX29yZGVycyB8IGN1c3RvbWVy X3dpc2hsaXN0cyBdLT4obCBJUyBvcmRlcnMgfCB3aXNobGlzdHMpLVsgSVMgbGlzdF9pdGVtc10t PihwIElTIHByb2R1Y3RzKSBDT0xVTU5TIChjLm5hbWUgQVMgY3VzdG9tZXJfbmFtZSwgcC5uYW1l IGFzIHByb2R1Y3RfbmFtZSkpIE9SREVSIEJZIGN1c3RvbWVyX25hbWUsIHByb2R1Y3RfbmFtZTsK KyBjdXN0b21lcl9uYW1lIHwgcHJvZHVjdF9uYW1lIAorLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tCisgY3VzdG9tZXIxICAgICB8IHByb2R1Y3QxCisgY3VzdG9tZXIxICAgICB8IHByb2R1 Y3QyCisgY3VzdG9tZXIyICAgICB8IHByb2R1Y3QxCisgY3VzdG9tZXIyICAgICB8IHByb2R1Y3Qx CisgY3VzdG9tZXIzICAgICB8IHByb2R1Y3QxCisgY3VzdG9tZXIzICAgICB8IHByb2R1Y3QyCisg Y3VzdG9tZXIzICAgICB8IHByb2R1Y3QzCisoNyByb3dzKQorCistLSBwcm9wZXJ0eSBub3QgYXNz b2NpYXRlZCB3aXRoIGxhYmVscyBxdWVyaWVkIHJlc3VsdHMgaW4gZXJyb3IKK1NFTEVDVCAqIEZS T00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAoYyBJUyBjdXN0b21lcnMpLVtJUyBjdXN0b21l cl9vcmRlcnMgfCBjdXN0b21lcl93aXNobGlzdHMgXS0+KGwgSVMgb3JkZXJzIHwgd2lzaGxpc3Rz KS1bIElTIGxpc3RfaXRlbXNdLT4ocCBJUyBwcm9kdWN0cykgQ09MVU1OUyAoYy5uYW1lIEFTIGN1 c3RvbWVyX25hbWUsIHAubmFtZSBhcyBwcm9kdWN0X25hbWUsIGwubGlzdF90eXBlKSkgT1JERVIg QlkgMSwgMiwgMzsKK0VSUk9SOiAgcHJvcGVydHkgImxpc3RfdHlwZSIgb2YgZWxlbWVudCB2YXJp YWJsZSAibCIgbm90IGZvdW5kCistLSB2ZXJ0ZXggdG8gdmVydGV4IGNvbm5lY3Rpb24gYWJicmV2 aWF0aW9uCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMgSVMgY3Vz dG9tZXJzKS0+KG8gSVMgb3JkZXJzKSBDT0xVTU5TIChjLm5hbWUsIG8ub3JkZXJlZF93aGVuKSkg T1JERVIgQlkgMTsKKyAgIG5hbWUgICAgfCBvcmRlcmVkX3doZW4gCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLQorIGN1c3RvbWVyMSB8IDAxLTAxLTIwMjQKKyBjdXN0b21lcjIgfCAwMS0wMi0y MDI0CisoMiByb3dzKQorCistLSBsYXRlcmFsIHRlc3QKK0NSRUFURSBUQUJMRSB4MSAoYSBpbnQs IGIgdGV4dCk7CitJTlNFUlQgSU5UTyB4MSBWQUxVRVMgKDEsICdvbmUnKSwgKDIsICd0d28nKTsK K1NFTEVDVCAqIEZST00geDEsIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9t ZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycgQU5EIGMuY3VzdG9tZXJfaWQgPSB4MS5hKS1bSVMg Y3VzdG9tZXJfb3JkZXJzXS0+KG8gSVMgb3JkZXJzKSBDT0xVTU5TIChjLm5hbWUgQVMgY3VzdG9t ZXJfbmFtZSwgYy5jdXN0b21lcl9pZCBBUyBjaWQpKTsKKyBhIHwgIGIgIHwgY3VzdG9tZXJfbmFt ZSB8IGNpZCAKKy0tLSstLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0KKyAxIHwgb25lIHwgY3Vz dG9tZXIxICAgICB8ICAgMQorKDEgcm93KQorCitEUk9QIFRBQkxFIHgxOworY3JlYXRlIHRhYmxl IHYxIChpZCBpbnQgcHJpbWFyeSBrZXksCisJCQkJCXZuYW1lIHZhcmNoYXIoMTApLAorCQkJCQl2 cHJvcDEgaW50LAorCQkJCQl2cHJvcDIgaW50KTsKK2NyZWF0ZSB0YWJsZSB2MiAoaWQxIGludCwK KwkJCQkJaWQyIGludCwKKwkJCQkJdm5hbWUgdmFyY2hhcigxMCksCisJCQkJCXZwcm9wMSBpbnQs CisJCQkJCXZwcm9wMiBpbnQpOworY3JlYXRlIHRhYmxlIHYzIChpZCBpbnQgcHJpbWFyeSBrZXks CisJCQkJCXZuYW1lIHZhcmNoYXIoMTApLAorCQkJCQl2cHJvcDEgaW50LAorCQkJCQl2cHJvcDIg aW50KTsKKy0tIGVkZ2UgY29ubmVjdGluZyB2MSBhbmQgdjIKK2NyZWF0ZSB0YWJsZSBlMV8yIChp ZF8xIGludCwKKwkJCQkJaWRfMl8xIGludCwKKwkJCQkJaWRfMl8yIGludCwKKwkJCQkJZW5hbWUg dmFyY2hhcigxMCksCisJCQkJCWVwcm9wMSBpbnQpOworLS0gZWRnZSBjb25uZWN0aW5nIHYxIGFu ZCB2MworY3JlYXRlIHRhYmxlIGUxXzMgKGlkXzEgaW50LAorCQkJCQlpZF8zIGludCwKKwkJCQkJ ZW5hbWUgdmFyY2hhcigxMCksCisJCQkJCWVwcm9wMSBpbnQsCisJCQkJCXByaW1hcnkga2V5IChp ZF8xLCBpZF8zKSk7CitjcmVhdGUgdGFibGUgZTJfMyAoaWRfMl8xIGludCwKKyAgICAgICAgICAg ICAgICAgICAgaWRfMl8yIGludCwKKyAgICAgICAgICAgICAgICAgICAgaWRfMyBpbnQsCisgICAg ICAgICAgICAgICAgICAgIGVuYW1lIHZhcmNoYXIoMTApLAorICAgICAgICAgICAgICAgICAgICBl cHJvcDEgaW50KTsKK2NyZWF0ZSBwcm9wZXJ0eSBncmFwaCBnMQordmVydGV4IHRhYmxlcyAoCisJ djEKKyAgICAgICAgbGFiZWwgdmwxIHByb3BlcnRpZXMgKHZuYW1lLCB2cHJvcDEpCisgICAgICAg IGxhYmVsIGwxIHByb3BlcnRpZXMgKHZuYW1lIGFzIGVsbmFtZSksIC0tIGxhYmVsIHNoYXJlZCBi eSB2ZXJ0ZXhlcyBhcyB3ZWxsIGFzIGVkZ2VzCisJdjIga2V5IChpZDEsIGlkMikKKwkJbGFiZWwg dmwyIHByb3BlcnRpZXMgKHZuYW1lLCB2cHJvcDIsICd2bDJfcHJvcCc6OnZhcmNoYXIoMTApIGFz IGxwcm9wMSkKKyAgICAgICAgbGFiZWwgdmwzIHByb3BlcnRpZXMgKHZuYW1lLCB2cHJvcDEsICd2 bDJfcHJvcCc6OnZhcmNoYXIoMTApIGFzIGxwcm9wMSkKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVy dGllcyAodm5hbWUgYXMgZWxuYW1lKSwKKwl2MworCQlsYWJlbCB2bDMgcHJvcGVydGllcyAodm5h bWUsIHZwcm9wMSwgJ3ZsM19wcm9wJzo6dmFyY2hhcigxMCkgYXMgbHByb3AxKQorICAgICAgICBs YWJlbCBsMSBwcm9wZXJ0aWVzICh2bmFtZSBhcyBlbG5hbWUpCispCistLSBlZGdlcyB3aXRoIGRp ZmZlcmluZyBudW1iZXIgb2YgY29sdW1ucyBpbiBkZXN0aW5hdGlvbiBrZXlzCitlZGdlIHRhYmxl cyAoCisJZTFfMiBrZXkgKGlkXzEsIGlkXzJfMSwgaWRfMl8yKQorCQlzb3VyY2Uga2V5IChpZF8x KSByZWZlcmVuY2VzIHYxIChpZCkKKwkJZGVzdGluYXRpb24ga2V5IChpZF8yXzEsIGlkXzJfMikg cmVmZXJlbmNlcyB2MiAoaWQxLCBpZDIpCisJCWxhYmVsIGVsMSBwcm9wZXJ0aWVzIChlcHJvcDEs IGVuYW1lKQorICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzIChlbmFtZSBhcyBlbG5hbWUpLAor CWUxXzMKKwkJc291cmNlIGtleSAoaWRfMSkgcmVmZXJlbmNlcyB2MSAoaWQpCisJCWRlc3RpbmF0 aW9uIGtleSAoaWRfMykgcmVmZXJlbmNlcyB2MyAoaWQpCisJCS0tIG9yZGVyIG9mIHByb3BlcnR5 IG5hbWVzIGRvZXNuJ3QgbWF0dGVyCisJCWxhYmVsIGVsMSBwcm9wZXJ0aWVzIChlbmFtZSwgZXBy b3AxKQorICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzIChlbmFtZSBhcyBlbG5hbWUpLAorICAg IGUyXzMga2V5IChpZF8yXzEsIGlkXzJfMiwgaWRfMykKKyAgICAgICAgc291cmNlIGtleSAoaWRf Ml8xLCBpZF8yXzIpIHJlZmVyZW5jZXMgdjIgKGlkMSwgaWQyKQorICAgICAgICBkZXN0aW5hdGlv biBrZXkgKGlkXzMpIHJlZmVyZW5jZXMgdjMgKGlkKQorICAgICAgICAtLSBuZXcgcHJvcGVydHkg bHByb3AyIG5vdCBzaGFyZWQgYnkgZWwxCisgICAgICAgIC0tIGRvZXMgbm90IHNoYXJlIGVwcm9w MSBmcm9tIGJ5IGVsMQorICAgICAgICBsYWJlbCBlbDIgcHJvcGVydGllcyAoZW5hbWUsIGVwcm9w MSAqIDEwIGFzIGxwcm9wMikKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAoZW5hbWUgYXMg ZWxuYW1lKQorKTsKK2luc2VydCBpbnRvIHYxIHZhbHVlcyAoMSwgJ3YxMScsIDEwLCAxMDApLAor ICAgICAgICAgICAgICAgICAgICAgICgyLCAndjEyJywgMjAsIDIwMCksCisgICAgICAgICAgICAg ICAgICAgICAgKDMsICd2MTMnLCAzMCwgMzAwKTsKK2luc2VydCBpbnRvIHYyIHZhbHVlcyAoMTAw MCwgMSwgJ3YyMScsIDEwMTAsIDExMDApLAorICAgICAgICAgICAgICAgICAgICAgICgxMDAwLCAy LCAndjIyJywgMTAyMCwgMTIwMCksCisgICAgICAgICAgICAgICAgICAgICAgKDEwMDAsIDMsICd2 MjMnLCAxMDMwLCAxMzAwKTsKK2luc2VydCBpbnRvIHYzIHZhbHVlcyAoMjAwMSwgJ3YzMScsIDIw MTAsIDIxMDApLAorICAgICAgICAgICAgICAgICAgICAgICgyMDAyLCAndjMyJywgMjAyMCwgMjIw MCksCisgICAgICAgICAgICAgICAgICAgICAgKDIwMDMsICd2MzMnLCAyMDMwLCAyMzAwKTsKK2lu c2VydCBpbnRvIGUxXzIgdmFsdWVzICgxLCAxMDAwLCAyLCAnZTEyMScsIDEwMDAxKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICgyLCAxMDAwLCAxLCAnZTEyMicsIDEwMDAyKTsKK2luc2VydCBp bnRvIGUxXzMgdmFsdWVzICgxLCAyMDAzLCAnZTEzMScsIDEwMDAzKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICgxLCAyMDAxLCAnZTEzMicsIDEwMDA0KTsKK2luc2VydCBpbnRvIGUyXzMgdmFs dWVzICgxMDAwLCAyLCAyMDAyLCAnZTIzMScsIDEwMDA1KTsKKy0tIGVtcHR5IGVsZW1lbnQgcGF0 aCBwYXR0ZXJuLCBjb3VudHMgbnVtYmVyIG9mIGVkZ2VzIGluIHRoZSBncmFwaAorU0VMRUNUIGNv dW50KCopIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIICgpLVtdLT4oKSBDT0xVTU5TICgxIGFz IG9uZSkpOworIGNvdW50IAorLS0tLS0tLQorICAgICA1CisoMSByb3cpCisKK1NFTEVDVCBjb3Vu dCgqKSBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoKS0+KCkgQ09MVU1OUyAoMSBhcyBvbmUp KTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgNQorKDEgcm93KQorCistLSBWZXJ0ZXggZWxlbWVu dCB2MiBoYXMgbGFiZWwgdmwzIHdoaWNoIGV4cG9zZXMgcHJvcGVydHkgdnByb3AxLiBCdXQgdmwz IGlzCistLSBub3QgcGFydCBvZiBsYWJlbCBleHByZXNzaW9uLiBJbnN0ZWFkIHYyIGdldCBib3Vu ZCB0aHJvdWdoIGxhYmVsIHZsMiB3aGljaAorLS0gZG9lcyBub3QgZXhwb3NlIHZwcm9wMS4gVGhl IEdSQVBIX1RBQkxFIGNsYXVzZSBwcm9qZWN0IHZwcm9wMS4KKy0tCistLSBUT0RPOiBUaGlzIGNh c2UgZmFpbHMgc2luY2UgY2F0YWxvZ3MgZG8gbm90IGFzc29jaWF0ZWQgcHJvcGVydGllcyB3aXRo CistLSBlbGVtZW50cyBkaXJlY3RseS4gTW9yZSBjb2RlIGlzIG5lZWRlZCB0byBtYWtlIGl0IHdv cmsuCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSBJUyB2bDEgfCB2bDIp IENPTFVNTlMgKGEudm5hbWUsCithLnZwcm9wMSkpOworIHZuYW1lIHwgdnByb3AxIAorLS0tLS0t LSstLS0tLS0tLQorIHYxMSAgIHwgICAgIDEwCisgdjEyICAgfCAgICAgMjAKKyB2MTMgICB8ICAg ICAzMAorIHYyMSAgIHwgICAxMDEwCisgdjIyICAgfCAgIDEwMjAKKyB2MjMgICB8ICAgMTAzMAor KDYgcm93cykKKworLS0gdnByb3AyIGlzIGFzc29jaWF0ZWQgd2l0aCB2bDIgYnV0IG5vdCB2bDMK K3NlbGVjdCBzcmMsIGNvbm4sIGRlc3QsIGxwcm9wMSwgdnByb3AyLCB2cHJvcDEgZnJvbSBncmFw aF90YWJsZSAoZzEgbWF0Y2ggKGEgaXMgdmwxKS1bYiBpcyBlbDFdLT4oYyBpcyB2bDIgfCB2bDMp IGNvbHVtbnMgKGEudm5hbWUgYXMgc3JjLCBiLmVuYW1lIGFzIGNvbm4sIGMudm5hbWUgYXMgZGVz dCwgYy5scHJvcDEsIGMudnByb3AyLCBjLnZwcm9wMSkpOworIHNyYyB8IGNvbm4gfCBkZXN0IHwg IGxwcm9wMSAgfCB2cHJvcDIgfCB2cHJvcDEgCistLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0KKyB2MTIgfCBlMTIyIHwgdjIxICB8IHZsMl9wcm9wIHwgICAx MTAwIHwgICAxMDEwCisgdjExIHwgZTEyMSB8IHYyMiAgfCB2bDJfcHJvcCB8ICAgMTIwMCB8ICAg MTAyMAorIHYxMSB8IGUxMzEgfCB2MzMgIHwgdmwzX3Byb3AgfCAgICAgICAgfCAgIDIwMzAKKyB2 MTEgfCBlMTMyIHwgdjMxICB8IHZsM19wcm9wIHwgICAgICAgIHwgICAyMDEwCisoNCByb3dzKQor CistLSBFcnJvcnMKKy0tIHZsMSBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIHByb3BlcnR5IHZwcm9w Mgorc2VsZWN0IHNyYywgc3JjX3Zwcm9wMiwgY29ubiwgZGVzdCBmcm9tIGdyYXBoX3RhYmxlIChn MSBtYXRjaCAoYSBpcyB2bDEpLVtiIGlzIGVsMV0tPihjIGlzIHZsMiB8IHZsMykgY29sdW1ucyAo YS52bmFtZSBhcyBzcmMsIGEudnByb3AyIGFzIHNyY192cHJvcDIsIGIuZW5hbWUgYXMgY29ubiwg Yy52bmFtZSBhcyBkZXN0KSk7CitFUlJPUjogIHByb3BlcnR5ICJ2cHJvcDIiIG9mIGVsZW1lbnQg dmFyaWFibGUgImEiIG5vdCBmb3VuZAorLS0gcHJvcGVydHkgZW5hbWUgaXMgYXNzb2NpYXRlZCB3 aXRoIGVkZ2UgbGFiZWxzIGJ1dCBub3Qgd2l0aCBhIHZlcnRleCBsYWJlbAorc2VsZWN0ICogZnJv bSBncmFwaF90YWJsZSAoZzEgbWF0Y2ggKHNyYyktW2Nvbm5dLT4oZGVzdCkgY29sdW1ucyAoc3Jj LnZuYW1lIGFzIHN2bmFtZSwgc3JjLmVuYW1lIGFzIHNlbmFtZSkpOworRVJST1I6ICBwcm9wZXJ0 eSAiZW5hbWUiIG9mIGVsZW1lbnQgdmFyaWFibGUgInNyYyIgbm90IGZvdW5kCistLSB2bmFtZSBp cyBhc3NvY2lhdGVkIHZlcnRleCBsYWJlbHMgYnV0IG5vdCBhbiBlZGdlIGxhYmVsCitzZWxlY3Qg KiBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAoc3JjKS1bY29ubl0tPihkZXN0KSBjb2x1bW5z IChjb25uLnZuYW1lIGFzIGN2bmFtZSwgY29ubi5lbmFtZSBhcyBjZW5hbWUpKTsKK0VSUk9SOiAg cHJvcGVydHkgInZuYW1lIiBvZiBlbGVtZW50IHZhcmlhYmxlICJjb25uIiBub3QgZm91bmQKKy0t IGVsMSBpcyBhc3NvY2lhdGVkIHdpdGggZWRnZXMgYnV0IGlzIG9ubHkgbGFiZWwgdXNlZCB0byBx dWFsaWZ5IHZlcnRleAorc2VsZWN0ICogZnJvbSBncmFwaF90YWJsZSAoZzEgbWF0Y2ggKHNyYyBp cyBlbDEpLVtjb25uXS0+KGRlc3QpIGNvbHVtbnMgKGNvbm4uZW5hbWUgYXMgY2VuYW1lKSk7CitF UlJPUjogIGNhbiBub3QgZmluZCBsYWJlbCAiZWwxIiBpbiBwcm9wZXJ0eSBncmFwaCAiZzEiIGZv ciBlbGVtZW50IHR5cGUgInZlcnRleCIKKy0tIGVsMSBpcyBhc3NvY2lhdGVkIHdpdGggZWRnZXMg YnV0IGlzIG9uZSBvZiB0aGUgbGFiZWxzIHVzZWQgdG8gcXVhbGlmeSB2ZXJ0ZXgKK3NlbGVjdCAq IGZyb20gZ3JhcGhfdGFibGUgKGcxIG1hdGNoIChzcmMgaXMgZWwxIHwgdmwxKS1bY29ubl0tPihk ZXN0KSBjb2x1bW5zIChjb25uLmVuYW1lIGFzIGNlbmFtZSkpOworRVJST1I6ICBjYW4gbm90IGZp bmQgbGFiZWwgImVsMSIgaW4gcHJvcGVydHkgZ3JhcGggImcxIiBmb3IgZWxlbWVudCB0eXBlICJ2 ZXJ0ZXgiCistLSBzZWxlY3QgYWxsIHRoZSBwcm9wZXJ0aWVzIGFjcm9zcyBhbGwgdGhlIGxhYmVs cyBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiB0eXBlCistLSBvZiBncmFwaCBlbGVtZW50CitzZWxl Y3QgKiBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAoc3JjKS1bY29ubl0tPihkZXN0KSBjb2x1 bW5zIChzcmMudm5hbWUgYXMgc3ZuYW1lLCBjb25uLmVuYW1lIGFzIGNlbmFtZSwgZGVzdC52bmFt ZSBhcyBkdm5hbWUsIHNyYy52cHJvcDEgYXMgc3ZwMSwgc3JjLnZwcm9wMiBhcyBzdnAyLCBzcmMu bHByb3AxIGFzIHNscDEsIGRlc3QudnByb3AxIGFzIGR2cDEsIGRlc3QudnByb3AyIGFzIGR2cDIs IGRlc3QubHByb3AxIGFzIGRscDEsIGNvbm4uZXByb3AxIGFzIGNlcDEsIGNvbm4ubHByb3AyIGFz IGNscDIpKTsKKyBzdm5hbWUgfCBjZW5hbWUgfCBkdm5hbWUgfCBzdnAxIHwgc3ZwMiB8ICAgc2xw MSAgIHwgZHZwMSB8IGR2cDIgfCAgIGRscDEgICB8IGNlcDEgIHwgIGNscDIgIAorLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tCisgdjEyICAgIHwgZTEyMiAgIHwgdjIxICAgIHwg ICAyMCB8ICAgICAgfCAgICAgICAgICB8IDEwMTAgfCAxMTAwIHwgdmwyX3Byb3AgfCAxMDAwMiB8 ICAgICAgIAorIHYxMSAgICB8IGUxMjEgICB8IHYyMiAgICB8ICAgMTAgfCAgICAgIHwgICAgICAg ICAgfCAxMDIwIHwgMTIwMCB8IHZsMl9wcm9wIHwgMTAwMDEgfCAgICAgICAKKyB2MTEgICAgfCBl MTMxICAgfCB2MzMgICAgfCAgIDEwIHwgICAgICB8ICAgICAgICAgIHwgMjAzMCB8ICAgICAgfCB2 bDNfcHJvcCB8IDEwMDAzIHwgICAgICAgCisgdjExICAgIHwgZTEzMiAgIHwgdjMxICAgIHwgICAx MCB8ICAgICAgfCAgICAgICAgICB8IDIwMTAgfCAgICAgIHwgdmwzX3Byb3AgfCAxMDAwNCB8ICAg ICAgIAorIHYyMiAgICB8IGUyMzEgICB8IHYzMiAgICB8IDEwMjAgfCAxMjAwIHwgdmwyX3Byb3Ag fCAyMDIwIHwgICAgICB8IHZsM19wcm9wIHwgICAgICAgfCAxMDAwNTAKKyg1IHJvd3MpCisKKy0t IHRocmVlIGxhYmVsIGRpc2p1bmN0aW9uCitzZWxlY3QgKiBmcm9tIGdyYXBoX3RhYmxlIChnMSBt YXRjaCAoc3JjIElTIHZsMSB8IHZsMiB8IHZsMyktW2Nvbm5dLT4oZGVzdCkgY29sdW1ucyAoc3Jj LnZuYW1lIGFzIHN2bmFtZSwgY29ubi5lbmFtZSBhcyBjZW5hbWUsIGRlc3Qudm5hbWUgYXMgZHZu YW1lKSk7Cisgc3ZuYW1lIHwgY2VuYW1lIHwgZHZuYW1lIAorLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0KKyB2MTIgICAgfCBlMTIyICAgfCB2MjEKKyB2MTEgICAgfCBlMTIxICAgfCB2MjIKKyB2 MTEgICAgfCBlMTMxICAgfCB2MzMKKyB2MTEgICAgfCBlMTMyICAgfCB2MzEKKyB2MjIgICAgfCBl MjMxICAgfCB2MzIKKyg1IHJvd3MpCisKKy0tIGdyYXBoJ2ljYWwgcXVlcnk6IGZpbmQgYSB2ZXJ0 ZXggd2hpY2ggaXMgbm90IGNvbm5lY3RlZCB0byBhbnkgb3RoZXIgdmVydGV4IGFzIGEgc291cmNl IG9yIGEgZGVzdGluYXRpb24uCit3aXRoIGFsbF9jb25uZWN0ZWRfdmVydGljZXMgYXMgKHNlbGVj dCBzdm4sIGR2biBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAoc3JjKS1bY29ubl0tPihkZXN0 KSBjb2x1bW5zIChzcmMudm5hbWUgYXMgc3ZuLCBkZXN0LnZuYW1lIGFzIGR2bikpKSwKKyAgICBh bGxfdmVydGljZXMgYXMgKHNlbGVjdCB2biBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAodmVy dGV4KSBjb2x1bW5zICh2ZXJ0ZXgudm5hbWUgYXMgdm4pKSkKK3NlbGVjdCB2biBmcm9tIGFsbF92 ZXJ0aWNlcyBleGNlcHQgKHNlbGVjdCBzdm4gZnJvbSBhbGxfY29ubmVjdGVkX3ZlcnRpY2VzIHVu aW9uIHNlbGVjdCBkdm4gZnJvbSBhbGxfY29ubmVjdGVkX3ZlcnRpY2VzKTsKKyB2biAgCistLS0t LQorIHYxMworIHYyMworKDIgcm93cykKKworLS0gcXVlcnkgYWxsIGNvbm5lY3Rpb25zIHVzaW5n IGEgbGFiZWwgc2hhcmVkIGJ5IHZlcnRpY2VzIGFuZCBlZGdlcworc2VsZWN0IHNuLCBjbiwgZG4g ZnJvbSBncmFwaF90YWJsZSAoZzEgbWF0Y2ggKHNyYyA6IGwxKS1bY29ubiA6IGwxXS0+KGRlc3Qg OiBsMSkgY29sdW1ucyAoc3JjLmVsbmFtZSBhcyBzbiwgY29ubi5lbG5hbWUgYXMgY24sIGRlc3Qu ZWxuYW1lIGFzIGRuKSk7Cisgc24gIHwgIGNuICB8IGRuICAKKy0tLS0tKy0tLS0tLSstLS0tLQor IHYxMiB8IGUxMjIgfCB2MjEKKyB2MTEgfCBlMTIxIHwgdjIyCisgdjExIHwgZTEzMSB8IHYzMwor IHYxMSB8IGUxMzIgfCB2MzEKKyB2MjIgfCBlMjMxIHwgdjMyCisoNSByb3dzKQorCistLSBwcm9w ZXJ0eSBncmFwaCB3aXRoIHNvbWUgb2YgdGhlIGVsZW1lbnRzLCBsYWJlbHMgYW5kIHByb3BlcnRp ZXMgc2FtZSBhcyB0aGUKKy0tIHByZXZpb3VzIG9uZS4gVGVzdCB3aGV0aGVyIGNvbXBvbmVudHMg ZnJvbSB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IGdyYXBoIGFyZQorLS0gdXNlZC4KK2NyZWF0ZSBw cm9wZXJ0eSBncmFwaCBnMgordmVydGV4IHRhYmxlcyAoCisJdjEKKyAgICAgICAgbGFiZWwgbDEg cHJvcGVydGllcyAoJ2cyLicgfHwgdm5hbWUgYXMgZWxuYW1lKSwKKwl2MiBrZXkgKGlkMSwgaWQy KQorICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCB2bmFtZSBhcyBlbG5hbWUp LAorCXYzCisgICAgICAgIGxhYmVsIGwxIHByb3BlcnRpZXMgKCdnMi4nIHx8IHZuYW1lIGFzIGVs bmFtZSkKKykKK2VkZ2UgdGFibGVzICgKKwllMV8yIGtleSAoaWRfMSwgaWRfMl8xLCBpZF8yXzIp CisJCXNvdXJjZSBrZXkgKGlkXzEpIHJlZmVyZW5jZXMgdjEgKGlkKQorCQlkZXN0aW5hdGlvbiBr ZXkgKGlkXzJfMSwgaWRfMl8yKSByZWZlcmVuY2VzIHYyIChpZDEsIGlkMikKKyAgICAgICAgbGFi ZWwgbDEgcHJvcGVydGllcyAoJ2cyLicgfHwgZW5hbWUgYXMgZWxuYW1lKSwKKwllMV8zCisJCXNv dXJjZSBrZXkgKGlkXzEpIHJlZmVyZW5jZXMgdjEgKGlkKQorCQlkZXN0aW5hdGlvbiBrZXkgKGlk XzMpIHJlZmVyZW5jZXMgdjMgKGlkKQorICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIu JyB8fCBlbmFtZSBhcyBlbG5hbWUpLAorICAgIGUyXzMga2V5IChpZF8yXzEsIGlkXzJfMiwgaWRf MykKKyAgICAgICAgc291cmNlIGtleSAoaWRfMl8xLCBpZF8yXzIpIHJlZmVyZW5jZXMgdjIgKGlk MSwgaWQyKQorICAgICAgICBkZXN0aW5hdGlvbiBrZXkgKGlkXzMpIHJlZmVyZW5jZXMgdjMgKGlk KQorICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCBlbmFtZSBhcyBlbG5hbWUp CispOworc2VsZWN0IHNuLCBjbiwgZG4gZnJvbSBncmFwaF90YWJsZSAoZzIgbWF0Y2ggKHNyYyA6 IGwxKS1bY29ubiA6IGwxXS0+KGRlc3QgOiBsMSkgY29sdW1ucyAoc3JjLmVsbmFtZSBhcyBzbiwg Y29ubi5lbG5hbWUgYXMgY24sIGRlc3QuZWxuYW1lIGFzIGRuKSk7CisgICBzbiAgIHwgICBjbiAg ICB8ICAgZG4gICAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLQorIGcyLnYxMiB8IGcyLmUx MjIgfCBnMi52MjEKKyBnMi52MTEgfCBnMi5lMTIxIHwgZzIudjIyCisgZzIudjExIHwgZzIuZTEz MSB8IGcyLnYzMworIGcyLnYxMSB8IGcyLmUxMzIgfCBnMi52MzEKKyBnMi52MjIgfCBnMi5lMjMx IHwgZzIudjMyCisoNSByb3dzKQorCitDUkVBVEUgVklFVyBjdXN0b21lcnNfdXMgQVMgU0VMRUNU IGN1c3RvbWVyX25hbWUgRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENIIChjIElTIGN1c3Rv bWVycyBXSEVSRSBjLmFkZHJlc3MgPSAnVVMnKS1bSVMgY3VzdG9tZXJfb3JkZXJzXS0+KG8gSVMg b3JkZXJzKSBDT0xVTU5TIChjLm5hbWUgQVMgY3VzdG9tZXJfbmFtZSkpOworU0VMRUNUIHBnX2dl dF92aWV3ZGVmKCdjdXN0b21lcnNfdXMnOjpyZWdjbGFzcyk7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBn X2dldF92aWV3ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIFNFTEVDVCBjdXN0b21lcl9uYW1lICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENIIChj IElTIGN1c3RvbWVycyBXSEVSRSAoKGMuYWRkcmVzcyk6OnRleHQgPSAnVVMnOjp0ZXh0KSktW0lT IGN1c3RvbWVyX29yZGVyc10tPihvIElTIG9yZGVycykgQ09MVU1OUyAoYy5uYW1lIEFTIGN1c3Rv bWVyX25hbWUpKTsKKygxIHJvdykKKworLS0gdGVzdCB2aWV3L2dyYXBoIG5lc3RpbmcKK0NSRUFU RSBWSUVXIGN1c3RvbWVyc192aWV3IEFTIFNFTEVDVCBjdXN0b21lcl9pZCwgJ3JlZGFjdGVkJyB8 fCBjdXN0b21lcl9pZCBBUyBuYW1lX3JlZGFjdGVkLCBhZGRyZXNzIEZST00gY3VzdG9tZXJzOwor U0VMRUNUICogRlJPTSBjdXN0b21lcnM7CisgY3VzdG9tZXJfaWQgfCAgIG5hbWUgICAgfCBhZGRy ZXNzIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0KKyAgICAgICAgICAgMSB8 IGN1c3RvbWVyMSB8IFVTCisgICAgICAgICAgIDIgfCBjdXN0b21lcjIgfCBDQQorICAgICAgICAg ICAzIHwgY3VzdG9tZXIzIHwgR0wKKygzIHJvd3MpCisKK1NFTEVDVCAqIEZST00gY3VzdG9tZXJz X3ZpZXc7CisgY3VzdG9tZXJfaWQgfCBuYW1lX3JlZGFjdGVkIHwgYWRkcmVzcyAKKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQorICAgICAgICAgICAxIHwgcmVkYWN0ZWQx ICAgICB8IFVTCisgICAgICAgICAgIDIgfCByZWRhY3RlZDIgICAgIHwgQ0EKKyAgICAgICAgICAg MyB8IHJlZGFjdGVkMyAgICAgfCBHTAorKDMgcm93cykKKworQ1JFQVRFIFBST1BFUlRZIEdSQVBI IG15c2hvcDIKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgcHJvZHVjdHMsCisgICAgICAg IGN1c3RvbWVyc192aWV3IEtFWSAoY3VzdG9tZXJfaWQpIExBQkVMIGN1c3RvbWVycywKKyAgICAg ICAgb3JkZXJzCisgICAgKQorICAgIEVER0UgVEFCTEVTICgKKyAgICAgICAgb3JkZXJfaXRlbXMg S0VZIChvcmRlcl9pdGVtc19pZCkKKyAgICAgICAgICAgIFNPVVJDRSBLRVkgKG9yZGVyX2lkKSBS RUZFUkVOQ0VTIG9yZGVycyAob3JkZXJfaWQpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkg KHByb2R1Y3Rfbm8pIFJFRkVSRU5DRVMgcHJvZHVjdHMgKHByb2R1Y3Rfbm8pLAorICAgICAgICBj dXN0b21lcl9vcmRlcnMgS0VZIChjdXN0b21lcl9vcmRlcnNfaWQpCisgICAgICAgICAgICBTT1VS Q0UgS0VZIChjdXN0b21lcl9pZCkgUkVGRVJFTkNFUyBjdXN0b21lcnNfdmlldyAoY3VzdG9tZXJf aWQpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKG9yZGVyX2lkKSBSRUZFUkVOQ0VTIG9y ZGVycyAob3JkZXJfaWQpCisgICAgKTsKK0NSRUFURSBWSUVXIGN1c3RvbWVyc191c19yZWRhY3Rl ZCBBUyBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AyIE1BVENIIChjIElTIGN1c3Rv bWVycyBXSEVSRSBjLmFkZHJlc3MgPSAnVVMnKS1bSVMgY3VzdG9tZXJfb3JkZXJzXS0+KG8gSVMg b3JkZXJzKSBDT0xVTU5TIChjLm5hbWVfcmVkYWN0ZWQgQVMgY3VzdG9tZXJfbmFtZV9yZWRhY3Rl ZCkpOworU0VMRUNUICogRlJPTSBjdXN0b21lcnNfdXNfcmVkYWN0ZWQ7CisgY3VzdG9tZXJfbmFt ZV9yZWRhY3RlZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZGFjdGVkMQorKDEgcm93 KQorCistLSBsZWF2ZSBmb3IgcGdfdXBncmFkZS9wZ19kdW1wIHRlc3RzCistLURST1AgU0NIRU1B IGdyYXBoX3RhYmxlX3Rlc3RzIENBU0NBREU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL29iamVjdF9hZGRyZXNzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv b2JqZWN0X2FkZHJlc3Mub3V0CmluZGV4IGZjNDJkNDE4YmYxLi40MzJiYTQ3MWZlMyAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vYmplY3RfYWRkcmVzcy5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vYmplY3RfYWRkcmVzcy5vdXQKQEAgLTM0LDYgKzM0 LDcgQEAgQ1JFQVRFIEZVTkNUSU9OIGFkZHJfbnNwLnRyaWcoKSBSRVRVUk5TIFRSSUdHRVIgTEFO R1VBR0UgcGxwZ3NxbCBBUyAkJCBCRUdJTiBFTkQKIENSRUFURSBUUklHR0VSIHQgQkVGT1JFIElO U0VSVCBPTiBhZGRyX25zcC5nZW50YWJsZSBGT1IgRUFDSCBST1cgRVhFQ1VURSBQUk9DRURVUkUg YWRkcl9uc3AudHJpZygpOwogQ1JFQVRFIFBPTElDWSBnZW5wb2wgT04gYWRkcl9uc3AuZ2VudGFi bGU7CiBDUkVBVEUgUFJPQ0VEVVJFIGFkZHJfbnNwLnByb2MoaW50NCkgTEFOR1VBR0UgU1FMIEFT ICQkICQkOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGFkZHJfbnNwLmdlbmdyYXBoOwogQ1JFQVRF IFNFUlZFUiAiaW50ZWdlciIgRk9SRUlHTiBEQVRBIFdSQVBQRVIgYWRkcl9mZHc7CiBDUkVBVEUg VVNFUiBNQVBQSU5HIEZPUiByZWdyZXNzX2FkZHJfdXNlciBTRVJWRVIgImludGVnZXIiOwogQUxU RVIgREVGQVVMVCBQUklWSUxFR0VTIEZPUiBST0xFIHJlZ3Jlc3NfYWRkcl91c2VyIElOIFNDSEVN QSBwdWJsaWMgR1JBTlQgQUxMIE9OIFRBQkxFUyBUTyByZWdyZXNzX2FkZHJfdXNlcjsKQEAgLTk4 LDcgKzk5LDcgQEAgREVDTEFSRQogQkVHSU4KICAgICBGT1Igb2JqdHlwZSBJTiBWQUxVRVMKICAg ICAgICAgKCd0YWJsZScpLCAoJ2luZGV4JyksICgnc2VxdWVuY2UnKSwgKCd2aWV3JyksCi0gICAg ICAgICgnbWF0ZXJpYWxpemVkIHZpZXcnKSwgKCdmb3JlaWduIHRhYmxlJyksCisgICAgICAgICgn bWF0ZXJpYWxpemVkIHZpZXcnKSwgKCdmb3JlaWduIHRhYmxlJyksICgncHJvcGVydHkgZ3JhcGgn KSwKICAgICAgICAgKCd0YWJsZSBjb2x1bW4nKSwgKCdmb3JlaWduIHRhYmxlIGNvbHVtbicpLAog ICAgICAgICAoJ2FnZ3JlZ2F0ZScpLCAoJ2Z1bmN0aW9uJyksICgncHJvY2VkdXJlJyksICgndHlw ZScpLCAoJ2Nhc3QnKSwKICAgICAgICAgKCd0YWJsZSBjb25zdHJhaW50JyksICgnZG9tYWluIGNv bnN0cmFpbnQnKSwgKCdjb252ZXJzaW9uJyksICgnZGVmYXVsdCB2YWx1ZScpLApAQCAtMTU5LDYg KzE2MCwxMiBAQCBXQVJOSU5HOiAgZXJyb3IgZm9yIGZvcmVpZ24gdGFibGUse2FkZHJfbnNwLHp3 ZWl9LHt9OiByZWxhdGlvbiAiYWRkcl9uc3AuendlaSIgZAogV0FSTklORzogIGVycm9yIGZvciBm b3JlaWduIHRhYmxlLHthZGRyX25zcCx6d2VpfSx7aW50ZWdlcn06IHJlbGF0aW9uICJhZGRyX25z cC56d2VpIiBkb2VzIG5vdCBleGlzdAogV0FSTklORzogIGVycm9yIGZvciBmb3JlaWduIHRhYmxl LHtlaW5zLHp3ZWksZHJlaX0se306IGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBp bXBsZW1lbnRlZDogImVpbnMuendlaS5kcmVpIgogV0FSTklORzogIGVycm9yIGZvciBmb3JlaWdu IHRhYmxlLHtlaW5zLHp3ZWksZHJlaX0se2ludGVnZXJ9OiBjcm9zcy1kYXRhYmFzZSByZWZlcmVu Y2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJlaW5zLnp3ZWkuZHJlaSIKK1dBUk5JTkc6ICBlcnJv ciBmb3IgcHJvcGVydHkgZ3JhcGgse2VpbnN9LHt9OiByZWxhdGlvbiAiZWlucyIgZG9lcyBub3Qg ZXhpc3QKK1dBUk5JTkc6ICBlcnJvciBmb3IgcHJvcGVydHkgZ3JhcGgse2VpbnN9LHtpbnRlZ2Vy fTogcmVsYXRpb24gImVpbnMiIGRvZXMgbm90IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIHBy b3BlcnR5IGdyYXBoLHthZGRyX25zcCx6d2VpfSx7fTogcmVsYXRpb24gImFkZHJfbnNwLnp3ZWki IGRvZXMgbm90IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIHByb3BlcnR5IGdyYXBoLHthZGRy X25zcCx6d2VpfSx7aW50ZWdlcn06IHJlbGF0aW9uICJhZGRyX25zcC56d2VpIiBkb2VzIG5vdCBl eGlzdAorV0FSTklORzogIGVycm9yIGZvciBwcm9wZXJ0eSBncmFwaCx7ZWlucyx6d2VpLGRyZWl9 LHt9OiBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJlaW5z Lnp3ZWkuZHJlaSIKK1dBUk5JTkc6ICBlcnJvciBmb3IgcHJvcGVydHkgZ3JhcGgse2VpbnMsendl aSxkcmVpfSx7aW50ZWdlcn06IGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBs ZW1lbnRlZDogImVpbnMuendlaS5kcmVpIgogV0FSTklORzogIGVycm9yIGZvciB0YWJsZSBjb2x1 bW4se2VpbnN9LHt9OiBjb2x1bW4gbmFtZSBtdXN0IGJlIHF1YWxpZmllZAogV0FSTklORzogIGVy cm9yIGZvciB0YWJsZSBjb2x1bW4se2VpbnN9LHtpbnRlZ2VyfTogY29sdW1uIG5hbWUgbXVzdCBi ZSBxdWFsaWZpZWQKIFdBUk5JTkc6ICBlcnJvciBmb3IgdGFibGUgY29sdW1uLHthZGRyX25zcCx6 d2VpfSx7fTogcmVsYXRpb24gImFkZHJfbnNwIiBkb2VzIG5vdCBleGlzdApAQCAtMzk4LDYgKzQw NSw3IEBAIFdJVEggb2JqZWN0cyAodHlwZSwgbmFtZSwgYXJncykgQVMgKFZBTFVFUwogICAgICgn dmlldycsICd7YWRkcl9uc3AsIGdlbnZpZXd9JywgJ3t9JyksCiAgICAgKCdtYXRlcmlhbGl6ZWQg dmlldycsICd7YWRkcl9uc3AsIGdlbm1hdHZpZXd9JywgJ3t9JyksCiAgICAgKCdmb3JlaWduIHRh YmxlJywgJ3thZGRyX25zcCwgZ2VuZnRhYmxlfScsICd7fScpLAorICAgICgncHJvcGVydHkgZ3Jh cGgnLCAne2FkZHJfbnNwLCBnZW5ncmFwaH0nLCAne30nKSwKICAgICAoJ3RhYmxlIGNvbHVtbics ICd7YWRkcl9uc3AsIGdlbnRhYmxlLCBifScsICd7fScpLAogICAgICgnZm9yZWlnbiB0YWJsZSBj b2x1bW4nLCAne2FkZHJfbnNwLCBnZW5mdGFibGUsIGF9JywgJ3t9JyksCiAgICAgKCdhZ2dyZWdh dGUnLCAne2FkZHJfbnNwLCBnZW5hZ2dyfScsICd7aW50NH0nKSwKQEAgLTQ3NCw2ICs0ODIsNyBA QCB2aWV3fGFkZHJfbnNwfGdlbnZpZXd8YWRkcl9uc3AuZ2Vudmlld3x0CiBtYXRlcmlhbGl6ZWQg dmlld3xhZGRyX25zcHxnZW5tYXR2aWV3fGFkZHJfbnNwLmdlbm1hdHZpZXd8dAogZm9yZWlnbiB0 YWJsZXxhZGRyX25zcHxnZW5mdGFibGV8YWRkcl9uc3AuZ2VuZnRhYmxlfHQKIGZvcmVpZ24gdGFi bGUgY29sdW1ufGFkZHJfbnNwfGdlbmZ0YWJsZXxhZGRyX25zcC5nZW5mdGFibGUuYXx0Citwcm9w ZXJ0eSBncmFwaHxhZGRyX25zcHxnZW5ncmFwaHxhZGRyX25zcC5nZW5ncmFwaHx0CiByb2xlfE5V TEx8cmVncmVzc19hZGRyX3VzZXJ8cmVncmVzc19hZGRyX3VzZXJ8dAogc2VydmVyfE5VTEx8YWRk cl9mc2VydnxhZGRyX2ZzZXJ2fHQKIHVzZXIgbWFwcGluZ3xOVUxMfE5VTEx8cmVncmVzc19hZGRy X3VzZXIgb24gc2VydmVyIGludGVnZXJ8dApAQCAtNTE4LDcgKzUyNyw3IEBAIERST1AgUFVCTElD QVRJT04gYWRkcl9wdWI7CiBEUk9QIFBVQkxJQ0FUSU9OIGFkZHJfcHViX3NjaGVtYTsKIERST1Ag U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfYWRkcl9zdWI7CiBEUk9QIFNDSEVNQSBhZGRyX25zcCBDQVND QURFOwotTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAxNCBvdGhlciBvYmplY3RzCitOT1RJQ0U6 ICBkcm9wIGNhc2NhZGVzIHRvIDE1IG90aGVyIG9iamVjdHMKIERFVEFJTDogIGRyb3AgY2FzY2Fk ZXMgdG8gdGV4dCBzZWFyY2ggZGljdGlvbmFyeSBhZGRyX3RzX2RpY3QKIGRyb3AgY2FzY2FkZXMg dG8gdGV4dCBzZWFyY2ggY29uZmlndXJhdGlvbiBhZGRyX3RzX2NvbmYKIGRyb3AgY2FzY2FkZXMg dG8gdGV4dCBzZWFyY2ggdGVtcGxhdGUgYWRkcl90c190ZW1wCkBAIC01MzMsNiArNTQyLDcgQEAg ZHJvcCBjYXNjYWRlcyB0byBmdW5jdGlvbiBnZW5hZ2dyKGludGVnZXIpCiBkcm9wIGNhc2NhZGVz IHRvIHR5cGUgZ2VuZG9tYWluCiBkcm9wIGNhc2NhZGVzIHRvIGZ1bmN0aW9uIHRyaWcoKQogZHJv cCBjYXNjYWRlcyB0byBmdW5jdGlvbiBwcm9jKGludGVnZXIpCitkcm9wIGNhc2NhZGVzIHRvIHBy b3BlcnR5IGdyYXBoIGdlbmdyYXBoCiBEUk9QIE9XTkVEIEJZIHJlZ3Jlc3NfYWRkcl91c2VyOwog RFJPUCBVU0VSIHJlZ3Jlc3NfYWRkcl91c2VyOwogLS0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9v aWRqb2lucy5vdXQKaW5kZXggMjE1ZWI4OTliZTMuLjNiNDFmYzdiYTA0IDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dApAQCAtMjY2LDMgKzI2NiwxNCBAQCBOT1RJQ0U6ICBj aGVja2luZyBwZ19zdWJzY3JpcHRpb24ge3N1YmRiaWR9ID0+IHBnX2RhdGFiYXNlIHtvaWR9CiBO T1RJQ0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRpb24ge3N1Ym93bmVyfSA9PiBwZ19hdXRoaWQg e29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlvbl9yZWwge3Nyc3ViaWR9ID0+ IHBnX3N1YnNjcmlwdGlvbiB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9u X3JlbCB7c3JyZWxpZH0gPT4gcGdfY2xhc3Mge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3By b3BncmFwaF9lbGVtZW50IHtwZ2VwZ2lkfSA9PiBwZ19jbGFzcyB7b2lkfQorTk9USUNFOiAgY2hl Y2tpbmcgcGdfcHJvcGdyYXBoX2VsZW1lbnQge3BnZXJlbGlkfSA9PiBwZ19jbGFzcyB7b2lkfQor Tk9USUNFOiAgY2hlY2tpbmcgcGdfcHJvcGdyYXBoX2VsZW1lbnQge3BnZXNyY3ZlcnRleGlkfSA9 PiBwZ19wcm9wZ3JhcGhfZWxlbWVudCB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfcHJvcGdy YXBoX2VsZW1lbnQge3BnZWRlc3R2ZXJ0ZXhpZH0gPT4gcGdfcHJvcGdyYXBoX2VsZW1lbnQge29p ZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsIHtwZ2VsbGFi ZWxpZH0gPT4gcGdfcHJvcGdyYXBoX2xhYmVsIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19w cm9wZ3JhcGhfZWxlbWVudF9sYWJlbCB7cGdlbGVsaWR9ID0+IHBnX3Byb3BncmFwaF9lbGVtZW50 IHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19wcm9wZ3JhcGhfbGFiZWwge3BnbHBnaWR9ID0+ IHBnX2NsYXNzIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19wcm9wZ3JhcGhfbGFiZWxfcHJv cGVydHkge3BscHByb3BpZH0gPT4gcGdfcHJvcGdyYXBoX3Byb3BlcnR5IHtvaWR9CitOT1RJQ0U6 ICBjaGVja2luZyBwZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkge3BscGVsbGFiZWxpZH0gPT4g cGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3By b3BncmFwaF9wcm9wZXJ0eSB7cGdwcGdpZH0gPT4gcGdfY2xhc3Mge29pZH0KK05PVElDRTogIGNo ZWNraW5nIHBnX3Byb3BncmFwaF9wcm9wZXJ0eSB7cGdwdHlwaWR9ID0+IHBnX3R5cGUge29pZH0K ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVz dC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4IDFlZGQ5ZTQ1ZWJiLi5hMGNhMjNiNGVi ZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9z cmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC00OCw3ICs0OCw3IEBAIHRlc3Q6 IGNyZWF0ZV9pbmRleCBjcmVhdGVfaW5kZXhfc3BnaXN0IGNyZWF0ZV92aWV3IGluZGV4X2luY2x1 ZGluZyBpbmRleF9pbmNsdWRpCiAjIC0tLS0tLS0tLS0KICMgQW5vdGhlciBncm91cCBvZiBwYXJh bGxlbCB0ZXN0cwogIyAtLS0tLS0tLS0tCi10ZXN0OiBjcmVhdGVfYWdncmVnYXRlIGNyZWF0ZV9m dW5jdGlvbl9zcWwgY3JlYXRlX2Nhc3QgY29uc3RyYWludHMgdHJpZ2dlcnMgc2VsZWN0IGluaGVy aXQgdHlwZWRfdGFibGUgdmFjdXVtIGRyb3BfaWZfZXhpc3RzIHVwZGF0YWJsZV92aWV3cyByb2xl YXR0cmlidXRlcyBjcmVhdGVfYW0gaGFzaF9mdW5jIGVycm9ycyBpbmZpbml0ZV9yZWN1cnNlCit0 ZXN0OiBjcmVhdGVfYWdncmVnYXRlIGNyZWF0ZV9mdW5jdGlvbl9zcWwgY3JlYXRlX2Nhc3QgY29u c3RyYWludHMgdHJpZ2dlcnMgc2VsZWN0IGluaGVyaXQgdHlwZWRfdGFibGUgdmFjdXVtIGRyb3Bf aWZfZXhpc3RzIHVwZGF0YWJsZV92aWV3cyByb2xlYXR0cmlidXRlcyBjcmVhdGVfYW0gaGFzaF9m dW5jIGVycm9ycyBpbmZpbml0ZV9yZWN1cnNlIGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaAogCiAjIC0t LS0tLS0tLS0KICMgc2FuaXR5X2NoZWNrIGRvZXMgYSB2YWN1dW0sIGFmZmVjdGluZyB0aGUgc29y dCBvcmRlciBvZiBTRUxFQ1QgKgpAQCAtNzgsNyArNzgsNyBAQCB0ZXN0OiBicmluX2Jsb29tIGJy aW5fbXVsdGkKICMgcHNxbCBkZXBlbmRzIG9uIGNyZWF0ZV9hbQogIyBhbXV0aWxzIGRlcGVuZHMg b24gZ2VvbWV0cnksIGNyZWF0ZV9pbmRleF9zcGdpc3QsIGhhc2hfaW5kZXgsIGJyaW4KICMgLS0t LS0tLS0tLQotdGVzdDogY3JlYXRlX3RhYmxlX2xpa2UgYWx0ZXJfZ2VuZXJpYyBhbHRlcl9vcGVy YXRvciBtaXNjIGFzeW5jIGRic2l6ZSBtZXJnZSBtaXNjX2Z1bmN0aW9ucyBzeXN2aWV3cyB0c3Jm IHRpZCB0aWRzY2FuIHRpZHJhbmdlc2NhbiBjb2xsYXRlLnV0ZjggY29sbGF0ZS5pY3UudXRmOCBp bmNyZW1lbnRhbF9zb3J0IGNyZWF0ZV9yb2xlIHdpdGhvdXRfb3ZlcmxhcHMKK3Rlc3Q6IGNyZWF0 ZV90YWJsZV9saWtlIGFsdGVyX2dlbmVyaWMgYWx0ZXJfb3BlcmF0b3IgbWlzYyBhc3luYyBkYnNp emUgbWVyZ2UgbWlzY19mdW5jdGlvbnMgc3lzdmlld3MgdHNyZiB0aWQgdGlkc2NhbiB0aWRyYW5n ZXNjYW4gY29sbGF0ZS51dGY4IGNvbGxhdGUuaWN1LnV0ZjggaW5jcmVtZW50YWxfc29ydCBjcmVh dGVfcm9sZSB3aXRob3V0X292ZXJsYXBzIGdyYXBoX3RhYmxlCiAKICMgY29sbGF0ZS5saW51eC51 dGY4IGFuZCBjb2xsYXRlLmljdS51dGY4IHRlc3RzIGNhbm5vdCBiZSBydW4gaW4gcGFyYWxsZWwg d2l0aCBlYWNoIG90aGVyCiB0ZXN0OiBydWxlcyBwc3FsIHBzcWxfY3Jvc3N0YWIgYW11dGlscyBz dGF0c19leHQgY29sbGF0ZS5saW51eC51dGY4IGNvbGxhdGUud2luZG93cy53aW4xMjUyCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9hbHRlcl9nZW5lcmljLnNxbCBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2FsdGVyX2dlbmVyaWMuc3FsCmluZGV4IGRlNThkMjY4ZDMxLi4wNjdkNWMy YjQ5MCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvYWx0ZXJfZ2VuZXJpYy5zcWwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvYWx0ZXJfZ2VuZXJpYy5zcWwKQEAgLTQ1Niw2ICs0 NTYsNDAgQEAgQUxURVIgT1BFUkFUT1IgRkFNSUxZIGFsdF9vcGYxOSBVU0lORyBidHJlZSBBREQg RlVOQ1RJT04gNSAoaW50NCkgdGVzdF9vcGNsYXNzX28KIEFMVEVSIE9QRVJBVE9SIEZBTUlMWSBh bHRfb3BmMTkgVVNJTkcgYnRyZWUgRFJPUCBGVU5DVElPTiA1IChpbnQ0LCBpbnQ0KTsKIERST1Ag T1BFUkFUT1IgRkFNSUxZIGFsdF9vcGYxOSBVU0lORyBidHJlZTsKIAorLS0KKy0tIFByb3BlcnR5 IEdyYXBoCistLQorU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX2FsdGVyX2dlbmVy aWNfdXNlcjE7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggYWx0X2dyYXBoMTsKK0NSRUFURSBQUk9Q RVJUWSBHUkFQSCBhbHRfZ3JhcGgyOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGFsdF9ncmFwaDM7 CisKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGFsdF9ncmFwaDEgUkVOQU1FIFRPIGFsdF9ncmFwaDI7 IC0tIGZhaWxlZCAobmFtZSBjb25mbGljdCkKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGFsdF9ncmFw aDEgUkVOQU1FIFRPIGFsdF9ncmFwaDQ7IC0tIE9LCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRf Z3JhcGgyIE9XTkVSIFRPIHJlZ3Jlc3NfYWx0ZXJfZ2VuZXJpY191c2VyMjsgIC0tIGZhaWxlZCAo bm8gcm9sZSBtZW1iZXJzaGlwKQorQUxURVIgUFJPUEVSVFkgR1JBUEggYWx0X2dyYXBoMiBPV05F UiBUTyByZWdyZXNzX2FsdGVyX2dlbmVyaWNfdXNlcjM7ICAtLSBPSworQUxURVIgUFJPUEVSVFkg R1JBUEggYWx0X2dyYXBoNCBTRVQgU0NIRU1BIGFsdF9uc3AyOyAgLS0gT0sKK0FMVEVSIFBST1BF UlRZIEdSQVBIIGFsdF9uc3AyLmFsdF9ncmFwaDQgUkVOQU1FIFRPIGFsdF9ncmFwaDI7ICAtLSBP SworQUxURVIgUFJPUEVSVFkgR1JBUEggYWx0X2dyYXBoMiBTRVQgU0NIRU1BIGFsdF9uc3AyOyAg LS0gZmFpbGVkIChuYW1lIGNvbmZsaWN0KQorCitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJl Z3Jlc3NfYWx0ZXJfZ2VuZXJpY191c2VyMjsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBhbHRfZ3Jh cGg1OworCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRfZ3JhcGgzIFJFTkFNRSBUTyBhbHRfZ3Jh cGg1OyAgLS0gZmFpbGVkIChub3Qgb3duZXIpCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRfZ3Jh cGg1IFJFTkFNRSBUTyBhbHRfZ3JhcGg2OyAgLS0gT0sKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGFs dF9ncmFwaDMgT1dORVIgVE8gcmVncmVzc19hbHRlcl9nZW5lcmljX3VzZXIyOyAgLS0gZmFpbGVk IChub3Qgb3duZXIpCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRfZ3JhcGg2IE9XTkVSIFRPIHJl Z3Jlc3NfYWx0ZXJfZ2VuZXJpY191c2VyMzsgIC0tIGZhaWxlZCAobm8gcm9sZSBtZW1iZXJzaGlw KQorQUxURVIgUFJPUEVSVFkgR1JBUEggYWx0X2dyYXBoMyBTRVQgU0NIRU1BIGFsdF9uc3AyOyAg LS0gZmFpbGVkIChub3Qgb3duZXIpCisKK1JFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKKwor U0VMRUNUIG5zcG5hbWUsIHJlbG5hbWUsIHJvbG5hbWUKKyAgRlJPTSBwZ19jbGFzcyBjLCBwZ19u YW1lc3BhY2UgbiwgcGdfYXV0aGlkIGEKKyAgV0hFUkUgYy5yZWxuYW1lc3BhY2UgPSBuLm9pZCBB TkQgYy5yZWxvd25lciA9IGEub2lkCisgICAgQU5EIG4ubnNwbmFtZSBpbiAoJ2FsdF9uc3AxJywg J2FsdF9uc3AyJykKKyAgICBBTkQgYy5yZWxraW5kID0gJ2cnCisgIE9SREVSIEJZIG5zcG5hbWUs IHJlbG5hbWU7CisKIC0tCiAtLSBTdGF0aXN0aWNzCiAtLQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjRmOWI1YzAzNDliCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNxbApAQCAtMCwwICsxLDE5MCBAQAorQ1JF QVRFIFNDSEVNQSBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHM7CitHUkFOVCBVU0FHRSBPTiBT Q0hFTUEgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIFRPIFBVQkxJQzsKK1NFVCBzZWFyY2hf cGF0aCA9IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0czsKKworQ1JFQVRFIFJPTEUgcmVncmVz c19ncmFwaF91c2VyMTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfZ3JhcGhfdXNlcjI7CisKK0NSRUFU RSBQUk9QRVJUWSBHUkFQSCBnMTsKKworQ09NTUVOVCBPTiBQUk9QRVJUWSBHUkFQSCBnMSBJUyAn YSBncmFwaCc7CisKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBnMTsgIC0tIGVycm9yOiBkdXBsaWNh dGUKKworQ1JFQVRFIFRBQkxFIHQxIChhIGludCwgYiB0ZXh0KTsKK0NSRUFURSBUQUJMRSB0MiAo aSBpbnQgUFJJTUFSWSBLRVksIGogaW50LCBrIGludCk7CitDUkVBVEUgVEFCTEUgdDMgKHggaW50 LCB5IHRleHQsIHogdGV4dCk7CisKK0NSRUFURSBUQUJMRSBlMSAoYSBpbnQsIGkgaW50LCB0IHRl eHQsIFBSSU1BUlkgS0VZIChhLCBpKSk7CitDUkVBVEUgVEFCTEUgZTIgKGEgaW50LCB4IGludCwg dCB0ZXh0KTsKKworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGcyCisgICAgVkVSVEVYIFRBQkxFUyAo dDEgS0VZIChhKSwgdDIgREVGQVVMVCBMQUJFTCwgdDMgS0VZICh4KSBMQUJFTCB0M2wxIExBQkVM IHQzbDIpCisgICAgRURHRSBUQUJMRVMgKAorICAgICAgICBlMQorICAgICAgICAgICAgU09VUkNF IEtFWSAoYSkgUkVGRVJFTkNFUyB0MSAoYSkKKyAgICAgICAgICAgIERFU1RJTkFUSU9OIEtFWSAo aSkgUkVGRVJFTkNFUyB0MiAoaSksCisgICAgICAgIGUyIEtFWSAoYSwgeCkKKyAgICAgICAgICAg IFNPVVJDRSBLRVkgKGEpIFJFRkVSRU5DRVMgdDEgKGEpCisgICAgICAgICAgICBERVNUSU5BVElP TiBLRVkgKHgsIHQpIFJFRkVSRU5DRVMgdDMgKHgsIHkpCisgICAgKTsKKworLS0gdGVzdCBkZXBl bmRlbmNpZXMvb2JqZWN0IGRlc2NyaXB0aW9ucworCitEUk9QIFRBQkxFIHQxOyAgLS0gZmFpbAor QUxURVIgVEFCTEUgdDEgRFJPUCBDT0xVTU4gYjsgIC0tIG5vbi1rZXkgY29sdW1uOyBmYWlsCitB TFRFUiBUQUJMRSB0MSBEUk9QIENPTFVNTiBhOyAgLS0ga2V5IGNvbHVtbjsgZmFpbAorCistLSBs aWtlIGcyIGJ1dCBhc3NlbWJsZWQgd2l0aCBBTFRFUgorQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGcz OworQUxURVIgUFJPUEVSVFkgR1JBUEggZzMgQUREIFZFUlRFWCBUQUJMRVMgKHQxIEtFWSAoYSks IHQyIERFRkFVTFQgTEFCRUwpOworQUxURVIgUFJPUEVSVFkgR1JBUEggZzMKKyAgICBBREQgVkVS VEVYIFRBQkxFUyAodDMgS0VZICh4KSBMQUJFTCB0M2wxKQorICAgIEFERCBFREdFIFRBQkxFUyAo CisgICAgICAgIGUxIFNPVVJDRSBLRVkgKGEpIFJFRkVSRU5DRVMgdDEgKGEpIERFU1RJTkFUSU9O IEtFWSAoaSkgUkVGRVJFTkNFUyB0MiAoaSksCisgICAgICAgIGUyIEtFWSAoYSwgeCkgU09VUkNF IEtFWSAoYSkgUkVGRVJFTkNFUyB0MSAoYSkgREVTVElOQVRJT04gS0VZICh4LCB0KSBSRUZFUkVO Q0VTIHQzICh4LCB5KQorICAgICk7CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnMyBBTFRFUiBWRVJU RVggVEFCTEUgdDMgQUREIExBQkVMIHQzbDIgUFJPUEVSVElFUyBBTEwgQ09MVU1OUyBBREQgTEFC RUwgdDNsMyBQUk9QRVJUSUVTIEFMTCBDT0xVTU5TOworQUxURVIgUFJPUEVSVFkgR1JBUEggZzMg QUxURVIgVkVSVEVYIFRBQkxFIHQzIERST1AgTEFCRUwgdDNsM3g7ICAtLSBlcnJvcgorQUxURVIg UFJPUEVSVFkgR1JBUEggZzMgQUxURVIgVkVSVEVYIFRBQkxFIHQzIERST1AgTEFCRUwgdDNsMzsK K0FMVEVSIFBST1BFUlRZIEdSQVBIIGczIERST1AgVkVSVEVYIFRBQkxFUyAodDIpOyAgLS0gZmFp bCAoVE9ETzogZHViaW91cyBlcnJvciBtZXNzYWdlKQorQUxURVIgUFJPUEVSVFkgR1JBUEggZzMg RFJPUCBWRVJURVggVEFCTEVTICh0MikgQ0FTQ0FERTsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGcz IERST1AgRURHRSBUQUJMRVMgKGUyKTsKKworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGc0CisgICAg VkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHQxIEtFWSAoYSkgTk8gUFJPUEVSVElFUywKKyAgICAg ICAgdDIgREVGQVVMVCBMQUJFTCBQUk9QRVJUSUVTIChpICsgaiBBUyBpX2osIGspLAorICAgICAg ICB0MyBLRVkgKHgpIExBQkVMIHQzbDEgUFJPUEVSVElFUyAoeCwgeSBBUyB5eSkgTEFCRUwgdDNs MiBQUk9QRVJUSUVTICh4LCB6IEFTIHp6KQorICAgICkKKyAgICBFREdFIFRBQkxFUyAoCisgICAg ICAgIGUxCisgICAgICAgICAgICBTT1VSQ0UgS0VZIChhKSBSRUZFUkVOQ0VTIHQxIChhKQorICAg ICAgICAgICAgREVTVElOQVRJT04gS0VZIChpKSBSRUZFUkVOQ0VTIHQyIChpKQorICAgICAgICAg ICAgUFJPUEVSVElFUyBBTEwgQ09MVU1OUywKKyAgICAgICAgZTIgS0VZIChhLCB4KQorICAgICAg ICAgICAgU09VUkNFIEtFWSAoYSkgUkVGRVJFTkNFUyB0MSAoYSkKKyAgICAgICAgICAgIERFU1RJ TkFUSU9OIEtFWSAoeCwgdCkgUkVGRVJFTkNFUyB0MyAoeCwgeSkKKyAgICAgICAgICAgIFBST1BF UlRJRVMgQUxMIENPTFVNTlMKKyAgICApOworCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnNCBBTFRF UiBWRVJURVggVEFCTEUgdDIgQUxURVIgTEFCRUwgdDIgQUREIFBST1BFUlRJRVMgKGsgKiAyIEFT IGtrKTsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGc0IEFMVEVSIFZFUlRFWCBUQUJMRSB0MiBBTFRF UiBMQUJFTCB0MiBEUk9QIFBST1BFUlRJRVMgKGspOworCitDUkVBVEUgVEFCTEUgdDExIChhIGlu dCBQUklNQVJZIEtFWSk7CitDUkVBVEUgVEFCTEUgdDEyIChiIGludCBQUklNQVJZIEtFWSk7CitD UkVBVEUgVEFCTEUgdDEzICgKKyAgICBjIGludCBQUklNQVJZIEtFWSwKKyAgICBkIGludCBSRUZF UkVOQ0VTIHQxMSwKKyAgICBlIGludCBSRUZFUkVOQ0VTIHQxMgorKTsKKworQ1JFQVRFIFBST1BF UlRZIEdSQVBIIGc1CisgICAgVkVSVEVYIFRBQkxFUyAodDExLCB0MTIpCisgICAgRURHRSBUQUJM RVMgKHQxMyBTT1VSQ0UgdDExIERFU1RJTkFUSU9OIHQxMik7CisKK1NFTEVDVCBwZ19nZXRfcHJv cGdyYXBoZGVmKCdnNSc6OnJlZ2NsYXNzKTsKKworLS0gZXJyb3IgY2FzZXMKK0NSRUFURSBQUk9Q RVJUWSBHUkFQSCBneCBWRVJURVggVEFCTEVTICh4eCwgeXkpOworQ1JFQVRFIFBST1BFUlRZIEdS QVBIIGd4IFZFUlRFWCBUQUJMRVMgKHQxIEtFWSAoYSksIHQyIEtFWSAoaSksIHQxIEtFWSAoYSkp OworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGd4CisgICAgVkVSVEVYIFRBQkxFUyAodDEgQVMgdHQg S0VZIChhKSwgdDIgS0VZIChpKSkKKyAgICBFREdFIFRBQkxFUyAoCisgICAgICAgIGUxIFNPVVJD RSB0MSBERVNUSU5BVElPTiB0MgorICAgICk7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZ3gKKyAg ICBWRVJURVggVEFCTEVTICh0MSBLRVkgKGEpLCB0MiBLRVkgKGkpKQorICAgIEVER0UgVEFCTEVT ICgKKyAgICAgICAgZTEgU09VUkNFIHQxIERFU1RJTkFUSU9OIHR4CisgICAgKTsKK0NPTU1FTlQg T04gUFJPUEVSVFkgR1JBUEggZ3ggSVMgJ25vdCBhIGdyYXBoJzsKK0NSRUFURSBQUk9QRVJUWSBH UkFQSCBneAorICAgIFZFUlRFWCBUQUJMRVMgKHQxIEtFWSAoYSksIHQyKQorICAgIEVER0UgVEFC TEVTICgKKyAgICAgICAgZTEgU09VUkNFIHQxIERFU1RJTkFUSU9OIHQyICAtLSBubyBmb3JlaWdu IGtleXMKKyAgICApOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGd4CisgICAgVkVSVEVYIFRBQkxF UyAoCisgICAgICAgIHQxIEtFWSAoYSkgTEFCRUwgZm9vIFBST1BFUlRJRVMgKGEgKyAxIEFTIGFh KQorICAgICAgICAgICAgICAgICAgIExBQkVMIGJhciBQUk9QRVJUSUVTICgxICsgYSBBUyBhYSkg IC0tIGV4cHJlc3Npb24gbWlzbWF0Y2gKKyAgICApOworQUxURVIgUFJPUEVSVFkgR1JBUEggZzIK KyAgICBBREQgVkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHQxIEFTIHQxeCBLRVkgKGEpIExBQkVM IGZvbyBQUk9QRVJUSUVTIChhICsgMSBBUyBhYSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg TEFCRUwgYmFyIFBST1BFUlRJRVMgKDEgKyBhIEFTIGFhKSAgLS0gZXhwcmVzc2lvbiBtaXNtYXRj aAorICAgICk7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZ3gKKyAgICBWRVJURVggVEFCTEVTICgK KyAgICAgICAgdDEgS0VZIChhKSBQUk9QRVJUSUVTIChiIEFTIHAxKSwKKyAgICAgICAgdDIgUFJP UEVSVElFUyAoayBBUyBwMSkgIC0tIHR5cGUgbWlzbWF0Y2gKKyAgICApOworQUxURVIgUFJPUEVS VFkgR1JBUEggZzIgQUxURVIgVkVSVEVYIFRBQkxFIHQxIEFERCBMQUJFTCBmb28gUFJPUEVSVElF UyAoYiBBUyBrKTsgIC0tIHR5cGUgbWlzbWF0Y2gKKworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGd4 CisgICAgVkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHQxIEtFWSAoYSkgTEFCRUwgbDEgUFJPUEVS VElFUyAoYSwgYSBBUyBhYSksCisgICAgICAgIHQyIEtFWSAoaSkgTEFCRUwgbDEgUFJPUEVSVElF UyAoaSBBUyBhLCBqIEFTIGIsIGspICAtLSBtaXNtYXRjaGluZyBudW1iZXIgb2YgcHJvcGVydGll cyBvbiBsYWJlbAorICAgICk7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZ3gKKyAgICBWRVJURVgg VEFCTEVTICgKKyAgICAgICAgdDEgS0VZIChhKSBMQUJFTCBsMSBQUk9QRVJUSUVTIChhLCBiKSwK KyAgICAgICAgdDIgS0VZIChpKSBMQUJFTCBsMSBQUk9QRVJUSUVTIChpIEFTIGEpICAtLSBtaXNt YXRjaGluZyBudW1iZXIgb2YgcHJvcGVydGllcyBvbiBsYWJlbAorICAgICk7CitDUkVBVEUgUFJP UEVSVFkgR1JBUEggZ3gKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgdDEgS0VZIChhKSBM QUJFTCBsMSBQUk9QRVJUSUVTIChhLCBiKSwKKyAgICAgICAgdDIgS0VZIChpKSBMQUJFTCBsMSBQ Uk9QRVJUSUVTIChpIEFTIGEsIGogQVMgaikgIC0tIG1pc21hdGNoaW5nIHByb3BlcnR5IG5hbWVz IG9uIGxhYmVsCisgICAgKTsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGc0IEFMVEVSIFZFUlRFWCBU QUJMRSB0MSBBREQgTEFCRUwgdDNsMSBQUk9QRVJUSUVTIChhIEFTIHgsIGIgQVMgeXksIGIgQVMg enopOyAgLS0gbWlzbWF0Y2hpbmcgbnVtYmVyIG9mIHByb3BlcnRpZXMgb24gbGFiZWwKK0FMVEVS IFBST1BFUlRZIEdSQVBIIGc0IEFMVEVSIFZFUlRFWCBUQUJMRSB0MSBBREQgTEFCRUwgdDNsMSBQ Uk9QRVJUSUVTIChhIEFTIHgsIGIgQVMgenopOyAgLS0gbWlzbWF0Y2hpbmcgcHJvcGVydHkgbmFt ZXMgb24gbGFiZWwKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGc0IEFMVEVSIFZFUlRFWCBUQUJMRSB0 MSBBREQgTEFCRUwgdDNsMSBQUk9QRVJUSUVTIChhIEFTIHgpOyAgLS0gbWlzbWF0Y2hpbmcgbnVt YmVyIG9mIHByb3BlcnRpZXMgb24gbGFiZWwKKworCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnMSBP V05FUiBUTyByZWdyZXNzX2dyYXBoX3VzZXIxOworU0VUIFJPTEUgcmVncmVzc19ncmFwaF91c2Vy MTsKK0dSQU5UIFNFTEVDVCBPTiBQUk9QRVJUWSBHUkFQSCBnMSBUTyByZWdyZXNzX2dyYXBoX3Vz ZXIyOworR1JBTlQgVVBEQVRFIE9OIFBST1BFUlRZIEdSQVBIIGcxIFRPIHJlZ3Jlc3NfZ3JhcGhf dXNlcjI7ICAtLSBmYWlsCitSRVNFVCBST0xFOworCisKKy0tIGluZm9ybWF0aW9uIHNjaGVtYQor CitTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5wcm9wZXJ0eV9ncmFwaHMgT1JERVIg QlkgcHJvcGVydHlfZ3JhcGhfbmFtZTsKK1NFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1h LnBnX2VsZW1lbnRfdGFibGVzIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGVsZW1lbnRf dGFibGVfYWxpYXM7CitTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5wZ19lbGVtZW50 X3RhYmxlX2tleV9jb2x1bW5zIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGVsZW1lbnRf dGFibGVfYWxpYXMsIG9yZGluYWxfcG9zaXRpb247CitTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9u X3NjaGVtYS5wZ19lZGdlX3RhYmxlX2NvbXBvbmVudHMgT1JERVIgQlkgcHJvcGVydHlfZ3JhcGhf bmFtZSwgZWRnZV90YWJsZV9hbGlhcywgZWRnZV9lbmQgREVTQywgb3JkaW5hbF9wb3NpdGlvbjsK K1NFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnBnX2VsZW1lbnRfdGFibGVfbGFiZWxz IE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGVsZW1lbnRfdGFibGVfYWxpYXMsIGxhYmVs X25hbWU7CitTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5wZ19lbGVtZW50X3RhYmxl X3Byb3BlcnRpZXMgT1JERVIgQlkgcHJvcGVydHlfZ3JhcGhfbmFtZSwgZWxlbWVudF90YWJsZV9h bGlhcywgcHJvcGVydHlfbmFtZTsKK1NFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnBn X2xhYmVsX3Byb3BlcnRpZXMgT1JERVIgQlkgcHJvcGVydHlfZ3JhcGhfbmFtZSwgbGFiZWxfbmFt ZSwgcHJvcGVydHlfbmFtZTsKK1NFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnBnX2xh YmVscyBPUkRFUiBCWSBwcm9wZXJ0eV9ncmFwaF9uYW1lLCBsYWJlbF9uYW1lOworU0VMRUNUICog RlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfcHJvcGVydHlfZGF0YV90eXBlcyBPUkRFUiBCWSBw cm9wZXJ0eV9ncmFwaF9uYW1lLCBwcm9wZXJ0eV9uYW1lOworU0VMRUNUICogRlJPTSBpbmZvcm1h dGlvbl9zY2hlbWEucGdfcHJvcGVydHlfZ3JhcGhfcHJpdmlsZWdlcyBXSEVSRSBncmFudGVlIExJ S0UgJ3JlZ3Jlc3MlJyBPUkRFUiBCWSBwcm9wZXJ0eV9ncmFwaF9uYW1lOworCisKK1xhXHQKK1NF TEVDVCBwZ19nZXRfcHJvcGdyYXBoZGVmKCdnMic6OnJlZ2NsYXNzKTsKK1NFTEVDVCBwZ19nZXRf cHJvcGdyYXBoZGVmKCdnMyc6OnJlZ2NsYXNzKTsKK1NFTEVDVCBwZ19nZXRfcHJvcGdyYXBoZGVm KCdnNCc6OnJlZ2NsYXNzKTsKKworU0VMRUNUIHBnX2dldF9wcm9wZ3JhcGhkZWYoJ3BnX3R5cGUn OjpyZWdjbGFzcyk7ICAtLSBlcnJvcgorXGFcdAorCitcZEcgZzEKKworLS0gVE9ETworXGQgZzEK K1xkKyBnMQorCitEUk9QIFRBQkxFIGcyOyAgLS0gZXJyb3I6IHdyb25nIG9iamVjdCB0eXBlCisK K0RST1AgUFJPUEVSVFkgR1JBUEggZzE7CisKK0RST1AgUFJPUEVSVFkgR1JBUEggZzE7ICAtLSBl cnJvcjogZG9lcyBub3QgZXhpc3QKKworRFJPUCBQUk9QRVJUWSBHUkFQSCBJRiBFWElTVFMgZzE7 CisKKy0tIGxlYXZlIGZvciBwZ191cGdyYWRlL3BnX2R1bXAgdGVzdHMKKy0tRFJPUCBTQ0hFTUEg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIENBU0NBREU7CisKK0RST1AgUk9MRSByZWdyZXNz X2dyYXBoX3VzZXIxLCByZWdyZXNzX2dyYXBoX3VzZXIyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvZ3JhcGhfdGFibGUuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3JhcGhf dGFibGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yYjQzYjEz NmVhYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dyYXBoX3RhYmxl LnNxbApAQCAtMCwwICsxLDMzNiBAQAorQ1JFQVRFIFNDSEVNQSBncmFwaF90YWJsZV90ZXN0czsK K0dSQU5UIFVTQUdFIE9OIFNDSEVNQSBncmFwaF90YWJsZV90ZXN0cyBUTyBQVUJMSUM7CitTRVQg c2VhcmNoX3BhdGggPSBncmFwaF90YWJsZV90ZXN0czsKKworQ1JFQVRFIFRBQkxFIHByb2R1Y3Rz ICgKKyAgICBwcm9kdWN0X25vIGludGVnZXIgUFJJTUFSWSBLRVksCisgICAgbmFtZSB2YXJjaGFy LAorICAgIHByaWNlIG51bWVyaWMKKyk7CisKK0NSRUFURSBUQUJMRSBjdXN0b21lcnMgKAorICAg IGN1c3RvbWVyX2lkIGludGVnZXIgUFJJTUFSWSBLRVksCisgICAgbmFtZSB2YXJjaGFyLAorICAg IGFkZHJlc3MgdmFyY2hhcgorKTsKKworQ1JFQVRFIFRBQkxFIG9yZGVycyAoCisgICAgb3JkZXJf aWQgaW50ZWdlciBQUklNQVJZIEtFWSwKKyAgICBvcmRlcmVkX3doZW4gZGF0ZQorKTsKKworQ1JF QVRFIFRBQkxFIG9yZGVyX2l0ZW1zICgKKyAgICBvcmRlcl9pdGVtc19pZCBpbnRlZ2VyIFBSSU1B UlkgS0VZLAorICAgIG9yZGVyX2lkIGludGVnZXIgUkVGRVJFTkNFUyBvcmRlcnMgKG9yZGVyX2lk KSwKKyAgICBwcm9kdWN0X25vIGludGVnZXIgUkVGRVJFTkNFUyBwcm9kdWN0cyAocHJvZHVjdF9u byksCisgICAgcXVhbnRpdHkgaW50ZWdlcgorKTsKKworQ1JFQVRFIFRBQkxFIGN1c3RvbWVyX29y ZGVycyAoCisgICAgY3VzdG9tZXJfb3JkZXJzX2lkIGludGVnZXIgUFJJTUFSWSBLRVksCisgICAg Y3VzdG9tZXJfaWQgaW50ZWdlciBSRUZFUkVOQ0VTIGN1c3RvbWVycyAoY3VzdG9tZXJfaWQpLAor ICAgIG9yZGVyX2lkIGludGVnZXIgUkVGRVJFTkNFUyBvcmRlcnMgKG9yZGVyX2lkKQorKTsKKwor Q1JFQVRFIFRBQkxFIHdpc2hsaXN0cyAoCisgICAgd2lzaGxpc3RfaWQgaW50ZWdlciBQUklNQVJZ IEtFWSwKKyAgICB3aXNobGlzdF9uYW1lIHZhcmNoYXIKKyk7CisKK0NSRUFURSBUQUJMRSB3aXNo bGlzdF9pdGVtcyAoCisgICAgd2lzaGxpc3RfaXRlbXNfaWQgaW50ZWdlciBQUklNQVJZIEtFWSwK KyAgICB3aXNobGlzdF9pZCBpbnRlZ2VyIFJFRkVSRU5DRVMgd2lzaGxpc3RzICh3aXNobGlzdF9p ZCksCisgICAgcHJvZHVjdF9ubyBpbnRlZ2VyIFJFRkVSRU5DRVMgcHJvZHVjdHMgKHByb2R1Y3Rf bm8pCispOworCitDUkVBVEUgVEFCTEUgY3VzdG9tZXJfd2lzaGxpc3RzICgKKyAgICBjdXN0b21l cl93aXNobGlzdF9pZCBpbnRlZ2VyIFBSSU1BUlkgS0VZLAorICAgIGN1c3RvbWVyX2lkIGludGVn ZXIgUkVGRVJFTkNFUyBjdXN0b21lcnMgKGN1c3RvbWVyX2lkKSwKKyAgICB3aXNobGlzdF9pZCBp bnRlZ2VyIFJFRkVSRU5DRVMgd2lzaGxpc3RzICh3aXNobGlzdF9pZCkKKyk7CisKK0NSRUFURSBQ Uk9QRVJUWSBHUkFQSCBteXNob3AKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgcHJvZHVj dHMsCisgICAgICAgIGN1c3RvbWVycywKKyAgICAgICAgb3JkZXJzCisgICAgICAgICAgIERFRkFV TFQgTEFCRUwKKyAgICAgICAgICAgIExBQkVMIGxpc3RzIFBST1BFUlRJRVMgKG9yZGVyX2lkIGFz IG5vZGVfaWQsICdvcmRlcic6OnZhcmNoYXIoMTApIGFzIGxpc3RfdHlwZSksCisgICAgICAgIHdp c2hsaXN0cworICAgICAgICAgICBERUZBVUxUIExBQkVMCisgICAgICAgICAgICBMQUJFTCBsaXN0 cyBQUk9QRVJUSUVTICh3aXNobGlzdF9pZCBhcyBub2RlX2lkLCAnd2lzaGxpc3QnOjp2YXJjaGFy KDEwKSBhcyBsaXN0X3R5cGUpCisgICAgKQorICAgIEVER0UgVEFCTEVTICgKKyAgICAgICAgb3Jk ZXJfaXRlbXMgS0VZIChvcmRlcl9pdGVtc19pZCkKKyAgICAgICAgICAgIFNPVVJDRSBLRVkgKG9y ZGVyX2lkKSBSRUZFUkVOQ0VTIG9yZGVycyAob3JkZXJfaWQpCisgICAgICAgICAgICBERVNUSU5B VElPTiBLRVkgKHByb2R1Y3Rfbm8pIFJFRkVSRU5DRVMgcHJvZHVjdHMgKHByb2R1Y3Rfbm8pCisg ICAgICAgICAgICBERUZBVUxUIExBQkVMCisgICAgICAgICAgICBMQUJFTCBsaXN0X2l0ZW1zIFBS T1BFUlRJRVMgKG9yZGVyX2lkIGFzIGxpbmtfaWQsIHByb2R1Y3Rfbm8pLAorICAgICAgICB3aXNo bGlzdF9pdGVtcyBLRVkgKHdpc2hsaXN0X2l0ZW1zX2lkKQorICAgICAgICAgICAgU09VUkNFIEtF WSAod2lzaGxpc3RfaWQpIFJFRkVSRU5DRVMgd2lzaGxpc3RzICh3aXNobGlzdF9pZCkKKyAgICAg ICAgICAgIERFU1RJTkFUSU9OIEtFWSAocHJvZHVjdF9ubykgUkVGRVJFTkNFUyBwcm9kdWN0cyAo cHJvZHVjdF9ubykKKyAgICAgICAgICAgIERFRkFVTFQgTEFCRUwKKyAgICAgICAgICAgIExBQkVM IGxpc3RfaXRlbXMgUFJPUEVSVElFUyAod2lzaGxpc3RfaWQgYXMgbGlua19pZCwgcHJvZHVjdF9u byksCisgICAgICAgIGN1c3RvbWVyX29yZGVycyBLRVkgKGN1c3RvbWVyX29yZGVyc19pZCkKKyAg ICAgICAgICAgIFNPVVJDRSBLRVkgKGN1c3RvbWVyX2lkKSBSRUZFUkVOQ0VTIGN1c3RvbWVycyAo Y3VzdG9tZXJfaWQpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKG9yZGVyX2lkKSBSRUZF UkVOQ0VTIG9yZGVycyAob3JkZXJfaWQpCisgICAgICAgICAgICBERUZBVUxUIExBQkVMCisgICAg ICAgICAgICBMQUJFTCBjdXN0X2xpc3RzIFBST1BFUlRJRVMgKGN1c3RvbWVyX2lkLCBvcmRlcl9p ZCBhcyBsaW5rX2lkKSwKKyAgICAgICAgY3VzdG9tZXJfd2lzaGxpc3RzIEtFWSAoY3VzdG9tZXJf d2lzaGxpc3RfaWQpCisgICAgICAgICAgICBTT1VSQ0UgS0VZIChjdXN0b21lcl9pZCkgUkVGRVJF TkNFUyBjdXN0b21lcnMgKGN1c3RvbWVyX2lkKQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZ ICh3aXNobGlzdF9pZCkgUkVGRVJFTkNFUyB3aXNobGlzdHMgKHdpc2hsaXN0X2lkKQorICAgICAg ICAgICAgREVGQVVMVCBMQUJFTAorICAgICAgICAgICAgTEFCRUwgY3VzdF9saXN0cyBQUk9QRVJU SUVTIChjdXN0b21lcl9pZCwgd2lzaGxpc3RfaWQgYXMgbGlua19pZCkKKyAgICApOworCitTRUxF Q1QgY3VzdG9tZXJfbmFtZSBGUk9NIEdSQVBIX1RBQkxFICh4eHggTUFUQ0ggKGMgSVMgY3VzdG9t ZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJUyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBv cmRlcnMpIENPTFVNTlMgKGMubmFtZSBBUyBjdXN0b21lcl9uYW1lKSk7ICAtLSBlcnJvcgorU0VM RUNUIGN1c3RvbWVyX25hbWUgRlJPTSBHUkFQSF9UQUJMRSAocGdfY2xhc3MgTUFUQ0ggKGMgSVMg Y3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJUyBjdXN0b21lcl9vcmRlcnNdLT4o byBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZSBBUyBjdXN0b21lcl9uYW1lKSk7ICAtLSBlcnJv cgorU0VMRUNUIGN1c3RvbWVyX25hbWUgRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENIIChj IElTIGN1c3RvbWVycyBXSEVSRSBjLmFkZHJlc3MgPSAnVVMnKS1bSVMgY3VzdG9tZXJfb3JkZXJz XS0+KG8gSVMgb3JkZXJzKSBDT0xVTU5TIChjeC5uYW1lIEFTIGN1c3RvbWVyX25hbWUpKTsgIC0t IGVycm9yCitTRUxFQ1QgY3VzdG9tZXJfbmFtZSBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFU Q0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJUyBjdXN0b21lcl9v cmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZXggQVMgY3VzdG9tZXJfbmFtZSkp OyAgLS0gZXJyb3IKK1NFTEVDVCBjdXN0b21lcl9uYW1lIEZST00gR1JBUEhfVEFCTEUgKG15c2hv cCBNQVRDSCAoYyBJUyBjdXN0b21lcnN8ZW1wbG95ZWVzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycp LVtJUyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZSBBUyBj dXN0b21lcl9uYW1lKSk7ICAtLSBlcnJvcgorU0VMRUNUIGN1c3RvbWVyX25hbWUgRlJPTSBHUkFQ SF9UQUJMRSAobXlzaG9wIE1BVENIIChjIElTIGN1c3RvbWVycyBXSEVSRSBjLmFkZHJlc3MgPSAn VVMnKS1bSVMgY3VzdG9tZXJfb3JkZXJzXSBDT0xVTU5TIChjLm5hbWUgQVMgY3VzdG9tZXJfbmFt ZSkpOyAgLS0gZXJyb3IKKworSU5TRVJUIElOVE8gcHJvZHVjdHMgVkFMVUVTCisgICAgKDEsICdw cm9kdWN0MScsIDEwKSwKKyAgICAoMiwgJ3Byb2R1Y3QyJywgMjApLAorICAgICgzLCAncHJvZHVj dDMnLCAzMCk7CitJTlNFUlQgSU5UTyBjdXN0b21lcnMgVkFMVUVTCisgICAgKDEsICdjdXN0b21l cjEnLCAnVVMnKSwKKyAgICAoMiwgJ2N1c3RvbWVyMicsICdDQScpLAorICAgICgzLCAnY3VzdG9t ZXIzJywgJ0dMJyk7CitJTlNFUlQgSU5UTyBvcmRlcnMgVkFMVUVTCisgICAgKDEsIGRhdGUgJzIw MjQtMDEtMDEnKSwKKyAgICAoMiwgZGF0ZSAnMjAyNC0wMS0wMicpLAorICAgICgzLCBkYXRlICcy MDI0LTAxLTAzJyk7CitJTlNFUlQgSU5UTyB3aXNobGlzdHMgVkFMVUVTCisgICAgKDEsICd3aXNo bGlzdDEnKSwKKyAgICAoMiwgJ3dpc2hsaXN0MicpLAorICAgICgzLCAnd2lzaGxpc3QzJyk7CitJ TlNFUlQgSU5UTyBvcmRlcl9pdGVtcyAob3JkZXJfaXRlbXNfaWQsIG9yZGVyX2lkLCBwcm9kdWN0 X25vLCBxdWFudGl0eSkgVkFMVUVTCisgICAgKDEsIDEsIDEsIDUpLAorICAgICgyLCAxLCAyLCAx MCksCisgICAgKDMsIDIsIDEsIDcpOworSU5TRVJUIElOVE8gY3VzdG9tZXJfb3JkZXJzIChjdXN0 b21lcl9vcmRlcnNfaWQsIGN1c3RvbWVyX2lkLCBvcmRlcl9pZCkgVkFMVUVTCisgICAgKDEsIDEs IDEpLAorICAgICgyLCAyLCAyKTsKK0lOU0VSVCBJTlRPIGN1c3RvbWVyX3dpc2hsaXN0cyAoY3Vz dG9tZXJfd2lzaGxpc3RfaWQsIGN1c3RvbWVyX2lkLCB3aXNobGlzdF9pZCkgVkFMVUVTCisgICAg KDEsIDIsIDMpLAorICAgICgyLCAzLCAxKSwKKyAgICAoMywgMywgMik7CitJTlNFUlQgSU5UTyB3 aXNobGlzdF9pdGVtcyAod2lzaGxpc3RfaXRlbXNfaWQsIHdpc2hsaXN0X2lkLCBwcm9kdWN0X25v KSBWQUxVRVMKKyAgICAoMSwgMSwgMiksCisgICAgKDIsIDEsIDMpLAorICAgICgzLCAyLCAxKSwK KyAgICAoNCwgMywgMSk7CisKKy0tIHNpbmdsZSBlbGVtZW50IHBhdGggcGF0dGVybgorU0VMRUNU ICogRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENIIChjIElTIGN1c3RvbWVycykgQ09MVU1O UyAoYy5uYW1lKSk7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMg SVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJUyBjdXN0b21lcl9vcmRlcnNd LT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZSkpOworLS0gZ3JhcGggZWxlbWVudCBzcGVj aWZpY2F0aW9uIHdpdGhvdXQgbGFiZWwgb3IgdmFyaWFibGUKK1NFTEVDVCAqIEZST00gR1JBUEhf VEFCTEUgKG15c2hvcCBNQVRDSCAoYyBJUyBjdXN0b21lcnMgV0hFUkUgYy5hZGRyZXNzID0gJ1VT JyktW10tPihvIElTIG9yZGVycykgQ09MVU1OUyAoYy5uYW1lIEFTIGN1c3RvbWVyX25hbWUpKTsK K1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAoYzpjdXN0b21lcnMpLVtj bzpjdXN0b21lcl9vcmRlcnNdLT4obzpvcmRlcnMgV0hFUkUgby5vcmRlcmVkX3doZW4gPSBkYXRl ICcyMDI0LTAxLTAyJykgQ09MVU1OUyAoYy5uYW1lLCBjLmFkZHJlc3MpKTsKK1NFTEVDVCAqIEZS T00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAobyBJUyBvcmRlcnMpLVtJUyBjdXN0b21lcl9v cmRlcnNdLT4oYyBJUyBjdXN0b21lcnMpIENPTFVNTlMgKGMubmFtZSwgby5vcmRlcmVkX3doZW4p KTsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAobyBJUyBvcmRlcnMp PC1bSVMgY3VzdG9tZXJfb3JkZXJzXS0oYyBJUyBjdXN0b21lcnMpIENPTFVNTlMgKGMubmFtZSwg by5vcmRlcmVkX3doZW4pKTsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRD SCAoIG8gSVMgb3JkZXJzICkgPC0gWyBJUyBjdXN0b21lcl9vcmRlcnMgXSAtIChjIElTIGN1c3Rv bWVycykgQ09MVU1OUyAoIGMubmFtZSwgby5vcmRlcmVkX3doZW4pKTsKK1NFTEVDVCAqIEZST00g R1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAoYyBJUyBjdXN0b21lcnMpLVtJUyBjdXN0X2xpc3Rz XS0+KGwgSVMgbGlzdHMpLVsgSVMgbGlzdF9pdGVtc10tPihwIElTIHByb2R1Y3RzKSBDT0xVTU5T IChjLm5hbWUgQVMgY3VzdG9tZXJfbmFtZSwgcC5uYW1lIGFzIHByb2R1Y3RfbmFtZSwgbC5saXN0 X3R5cGUpKSBPUkRFUiBCWSBjdXN0b21lcl9uYW1lLCBwcm9kdWN0X25hbWUsIGxpc3RfdHlwZTsK Ky0tIGxhYmVsIGRpc2p1bmN0aW9uCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3Ag TUFUQ0ggKGMgSVMgY3VzdG9tZXJzKS1bSVMgY3VzdG9tZXJfb3JkZXJzIHwgY3VzdG9tZXJfd2lz aGxpc3RzIF0tPihsIElTIG9yZGVycyB8IHdpc2hsaXN0cyktWyBJUyBsaXN0X2l0ZW1zXS0+KHAg SVMgcHJvZHVjdHMpIENPTFVNTlMgKGMubmFtZSBBUyBjdXN0b21lcl9uYW1lLCBwLm5hbWUgYXMg cHJvZHVjdF9uYW1lKSkgT1JERVIgQlkgY3VzdG9tZXJfbmFtZSwgcHJvZHVjdF9uYW1lOworLS0g cHJvcGVydHkgbm90IGFzc29jaWF0ZWQgd2l0aCBsYWJlbHMgcXVlcmllZCByZXN1bHRzIGluIGVy cm9yCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9t ZXJzKS1bSVMgY3VzdG9tZXJfb3JkZXJzIHwgY3VzdG9tZXJfd2lzaGxpc3RzIF0tPihsIElTIG9y ZGVycyB8IHdpc2hsaXN0cyktWyBJUyBsaXN0X2l0ZW1zXS0+KHAgSVMgcHJvZHVjdHMpIENPTFVN TlMgKGMubmFtZSBBUyBjdXN0b21lcl9uYW1lLCBwLm5hbWUgYXMgcHJvZHVjdF9uYW1lLCBsLmxp c3RfdHlwZSkpIE9SREVSIEJZIDEsIDIsIDM7CistLSB2ZXJ0ZXggdG8gdmVydGV4IGNvbm5lY3Rp b24gYWJicmV2aWF0aW9uCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0gg KGMgSVMgY3VzdG9tZXJzKS0+KG8gSVMgb3JkZXJzKSBDT0xVTU5TIChjLm5hbWUsIG8ub3JkZXJl ZF93aGVuKSkgT1JERVIgQlkgMTsKKworLS0gbGF0ZXJhbCB0ZXN0CitDUkVBVEUgVEFCTEUgeDEg KGEgaW50LCBiIHRleHQpOworSU5TRVJUIElOVE8geDEgVkFMVUVTICgxLCAnb25lJyksICgyLCAn dHdvJyk7CitTRUxFQ1QgKiBGUk9NIHgxLCBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENIIChjIElT IGN1c3RvbWVycyBXSEVSRSBjLmFkZHJlc3MgPSAnVVMnIEFORCBjLmN1c3RvbWVyX2lkID0geDEu YSktW0lTIGN1c3RvbWVyX29yZGVyc10tPihvIElTIG9yZGVycykgQ09MVU1OUyAoYy5uYW1lIEFT IGN1c3RvbWVyX25hbWUsIGMuY3VzdG9tZXJfaWQgQVMgY2lkKSk7CitEUk9QIFRBQkxFIHgxOwor CisKK2NyZWF0ZSB0YWJsZSB2MSAoaWQgaW50IHByaW1hcnkga2V5LAorCQkJCQl2bmFtZSB2YXJj aGFyKDEwKSwKKwkJCQkJdnByb3AxIGludCwKKwkJCQkJdnByb3AyIGludCk7CisKK2NyZWF0ZSB0 YWJsZSB2MiAoaWQxIGludCwKKwkJCQkJaWQyIGludCwKKwkJCQkJdm5hbWUgdmFyY2hhcigxMCks CisJCQkJCXZwcm9wMSBpbnQsCisJCQkJCXZwcm9wMiBpbnQpOworCitjcmVhdGUgdGFibGUgdjMg KGlkIGludCBwcmltYXJ5IGtleSwKKwkJCQkJdm5hbWUgdmFyY2hhcigxMCksCisJCQkJCXZwcm9w MSBpbnQsCisJCQkJCXZwcm9wMiBpbnQpOworCistLSBlZGdlIGNvbm5lY3RpbmcgdjEgYW5kIHYy CitjcmVhdGUgdGFibGUgZTFfMiAoaWRfMSBpbnQsCisJCQkJCWlkXzJfMSBpbnQsCisJCQkJCWlk XzJfMiBpbnQsCisJCQkJCWVuYW1lIHZhcmNoYXIoMTApLAorCQkJCQllcHJvcDEgaW50KTsKKwor LS0gZWRnZSBjb25uZWN0aW5nIHYxIGFuZCB2MworY3JlYXRlIHRhYmxlIGUxXzMgKGlkXzEgaW50 LAorCQkJCQlpZF8zIGludCwKKwkJCQkJZW5hbWUgdmFyY2hhcigxMCksCisJCQkJCWVwcm9wMSBp bnQsCisJCQkJCXByaW1hcnkga2V5IChpZF8xLCBpZF8zKSk7CisKK2NyZWF0ZSB0YWJsZSBlMl8z IChpZF8yXzEgaW50LAorICAgICAgICAgICAgICAgICAgICBpZF8yXzIgaW50LAorICAgICAgICAg ICAgICAgICAgICBpZF8zIGludCwKKyAgICAgICAgICAgICAgICAgICAgZW5hbWUgdmFyY2hhcigx MCksCisgICAgICAgICAgICAgICAgICAgIGVwcm9wMSBpbnQpOworCitjcmVhdGUgcHJvcGVydHkg Z3JhcGggZzEKK3ZlcnRleCB0YWJsZXMgKAorCXYxCisgICAgICAgIGxhYmVsIHZsMSBwcm9wZXJ0 aWVzICh2bmFtZSwgdnByb3AxKQorICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzICh2bmFtZSBh cyBlbG5hbWUpLCAtLSBsYWJlbCBzaGFyZWQgYnkgdmVydGV4ZXMgYXMgd2VsbCBhcyBlZGdlcwor CXYyIGtleSAoaWQxLCBpZDIpCisJCWxhYmVsIHZsMiBwcm9wZXJ0aWVzICh2bmFtZSwgdnByb3Ay LCAndmwyX3Byb3AnOjp2YXJjaGFyKDEwKSBhcyBscHJvcDEpCisgICAgICAgIGxhYmVsIHZsMyBw cm9wZXJ0aWVzICh2bmFtZSwgdnByb3AxLCAndmwyX3Byb3AnOjp2YXJjaGFyKDEwKSBhcyBscHJv cDEpCisgICAgICAgIGxhYmVsIGwxIHByb3BlcnRpZXMgKHZuYW1lIGFzIGVsbmFtZSksCisJdjMK KwkJbGFiZWwgdmwzIHByb3BlcnRpZXMgKHZuYW1lLCB2cHJvcDEsICd2bDNfcHJvcCc6OnZhcmNo YXIoMTApIGFzIGxwcm9wMSkKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAodm5hbWUgYXMg ZWxuYW1lKQorKQorLS0gZWRnZXMgd2l0aCBkaWZmZXJpbmcgbnVtYmVyIG9mIGNvbHVtbnMgaW4g ZGVzdGluYXRpb24ga2V5cworZWRnZSB0YWJsZXMgKAorCWUxXzIga2V5IChpZF8xLCBpZF8yXzEs IGlkXzJfMikKKwkJc291cmNlIGtleSAoaWRfMSkgcmVmZXJlbmNlcyB2MSAoaWQpCisJCWRlc3Rp bmF0aW9uIGtleSAoaWRfMl8xLCBpZF8yXzIpIHJlZmVyZW5jZXMgdjIgKGlkMSwgaWQyKQorCQls YWJlbCBlbDEgcHJvcGVydGllcyAoZXByb3AxLCBlbmFtZSkKKyAgICAgICAgbGFiZWwgbDEgcHJv cGVydGllcyAoZW5hbWUgYXMgZWxuYW1lKSwKKwllMV8zCisJCXNvdXJjZSBrZXkgKGlkXzEpIHJl ZmVyZW5jZXMgdjEgKGlkKQorCQlkZXN0aW5hdGlvbiBrZXkgKGlkXzMpIHJlZmVyZW5jZXMgdjMg KGlkKQorCQktLSBvcmRlciBvZiBwcm9wZXJ0eSBuYW1lcyBkb2Vzbid0IG1hdHRlcgorCQlsYWJl bCBlbDEgcHJvcGVydGllcyAoZW5hbWUsIGVwcm9wMSkKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVy dGllcyAoZW5hbWUgYXMgZWxuYW1lKSwKKyAgICBlMl8zIGtleSAoaWRfMl8xLCBpZF8yXzIsIGlk XzMpCisgICAgICAgIHNvdXJjZSBrZXkgKGlkXzJfMSwgaWRfMl8yKSByZWZlcmVuY2VzIHYyIChp ZDEsIGlkMikKKyAgICAgICAgZGVzdGluYXRpb24ga2V5IChpZF8zKSByZWZlcmVuY2VzIHYzIChp ZCkKKyAgICAgICAgLS0gbmV3IHByb3BlcnR5IGxwcm9wMiBub3Qgc2hhcmVkIGJ5IGVsMQorICAg ICAgICAtLSBkb2VzIG5vdCBzaGFyZSBlcHJvcDEgZnJvbSBieSBlbDEKKyAgICAgICAgbGFiZWwg ZWwyIHByb3BlcnRpZXMgKGVuYW1lLCBlcHJvcDEgKiAxMCBhcyBscHJvcDIpCisgICAgICAgIGxh YmVsIGwxIHByb3BlcnRpZXMgKGVuYW1lIGFzIGVsbmFtZSkKKyk7CisKK2luc2VydCBpbnRvIHYx IHZhbHVlcyAoMSwgJ3YxMScsIDEwLCAxMDApLAorICAgICAgICAgICAgICAgICAgICAgICgyLCAn djEyJywgMjAsIDIwMCksCisgICAgICAgICAgICAgICAgICAgICAgKDMsICd2MTMnLCAzMCwgMzAw KTsKKworaW5zZXJ0IGludG8gdjIgdmFsdWVzICgxMDAwLCAxLCAndjIxJywgMTAxMCwgMTEwMCks CisgICAgICAgICAgICAgICAgICAgICAgKDEwMDAsIDIsICd2MjInLCAxMDIwLCAxMjAwKSwKKyAg ICAgICAgICAgICAgICAgICAgICAoMTAwMCwgMywgJ3YyMycsIDEwMzAsIDEzMDApOworCitpbnNl cnQgaW50byB2MyB2YWx1ZXMgKDIwMDEsICd2MzEnLCAyMDEwLCAyMTAwKSwKKyAgICAgICAgICAg ICAgICAgICAgICAoMjAwMiwgJ3YzMicsIDIwMjAsIDIyMDApLAorICAgICAgICAgICAgICAgICAg ICAgICgyMDAzLCAndjMzJywgMjAzMCwgMjMwMCk7CisKK2luc2VydCBpbnRvIGUxXzIgdmFsdWVz ICgxLCAxMDAwLCAyLCAnZTEyMScsIDEwMDAxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICgy LCAxMDAwLCAxLCAnZTEyMicsIDEwMDAyKTsKKworaW5zZXJ0IGludG8gZTFfMyB2YWx1ZXMgKDEs IDIwMDMsICdlMTMxJywgMTAwMDMpLAorICAgICAgICAgICAgICAgICAgICAgICAgKDEsIDIwMDEs ICdlMTMyJywgMTAwMDQpOworaW5zZXJ0IGludG8gZTJfMyB2YWx1ZXMgKDEwMDAsIDIsIDIwMDIs ICdlMjMxJywgMTAwMDUpOworCistLSBlbXB0eSBlbGVtZW50IHBhdGggcGF0dGVybiwgY291bnRz IG51bWJlciBvZiBlZGdlcyBpbiB0aGUgZ3JhcGgKK1NFTEVDVCBjb3VudCgqKSBGUk9NIEdSQVBI X1RBQkxFIChnMSBNQVRDSCAoKS1bXS0+KCkgQ09MVU1OUyAoMSBhcyBvbmUpKTsKK1NFTEVDVCBj b3VudCgqKSBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoKS0+KCkgQ09MVU1OUyAoMSBhcyBv bmUpKTsKKy0tIFZlcnRleCBlbGVtZW50IHYyIGhhcyBsYWJlbCB2bDMgd2hpY2ggZXhwb3NlcyBw cm9wZXJ0eSB2cHJvcDEuIEJ1dCB2bDMgaXMKKy0tIG5vdCBwYXJ0IG9mIGxhYmVsIGV4cHJlc3Np b24uIEluc3RlYWQgdjIgZ2V0IGJvdW5kIHRocm91Z2ggbGFiZWwgdmwyIHdoaWNoCistLSBkb2Vz IG5vdCBleHBvc2UgdnByb3AxLiBUaGUgR1JBUEhfVEFCTEUgY2xhdXNlIHByb2plY3QgdnByb3Ax LgorLS0KKy0tIFRPRE86IFRoaXMgY2FzZSBmYWlscyBzaW5jZSBjYXRhbG9ncyBkbyBub3QgYXNz b2NpYXRlZCBwcm9wZXJ0aWVzIHdpdGgKKy0tIGVsZW1lbnRzIGRpcmVjdGx5LiBNb3JlIGNvZGUg aXMgbmVlZGVkIHRvIG1ha2UgaXQgd29yay4KK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcx IE1BVENIIChhIElTIHZsMSB8IHZsMikgQ09MVU1OUyAoYS52bmFtZSwKK2EudnByb3AxKSk7Cist LSB2cHJvcDIgaXMgYXNzb2NpYXRlZCB3aXRoIHZsMiBidXQgbm90IHZsMworc2VsZWN0IHNyYywg Y29ubiwgZGVzdCwgbHByb3AxLCB2cHJvcDIsIHZwcm9wMSBmcm9tIGdyYXBoX3RhYmxlIChnMSBt YXRjaCAoYSBpcyB2bDEpLVtiIGlzIGVsMV0tPihjIGlzIHZsMiB8IHZsMykgY29sdW1ucyAoYS52 bmFtZSBhcyBzcmMsIGIuZW5hbWUgYXMgY29ubiwgYy52bmFtZSBhcyBkZXN0LCBjLmxwcm9wMSwg Yy52cHJvcDIsIGMudnByb3AxKSk7CisKKy0tIEVycm9ycworLS0gdmwxIGlzIG5vdCBhc3NvY2lh dGVkIHdpdGggcHJvcGVydHkgdnByb3AyCitzZWxlY3Qgc3JjLCBzcmNfdnByb3AyLCBjb25uLCBk ZXN0IGZyb20gZ3JhcGhfdGFibGUgKGcxIG1hdGNoIChhIGlzIHZsMSktW2IgaXMgZWwxXS0+KGMg aXMgdmwyIHwgdmwzKSBjb2x1bW5zIChhLnZuYW1lIGFzIHNyYywgYS52cHJvcDIgYXMgc3JjX3Zw cm9wMiwgYi5lbmFtZSBhcyBjb25uLCBjLnZuYW1lIGFzIGRlc3QpKTsKKy0tIHByb3BlcnR5IGVu YW1lIGlzIGFzc29jaWF0ZWQgd2l0aCBlZGdlIGxhYmVscyBidXQgbm90IHdpdGggYSB2ZXJ0ZXgg bGFiZWwKK3NlbGVjdCAqIGZyb20gZ3JhcGhfdGFibGUgKGcxIG1hdGNoIChzcmMpLVtjb25uXS0+ KGRlc3QpIGNvbHVtbnMgKHNyYy52bmFtZSBhcyBzdm5hbWUsIHNyYy5lbmFtZSBhcyBzZW5hbWUp KTsKKy0tIHZuYW1lIGlzIGFzc29jaWF0ZWQgdmVydGV4IGxhYmVscyBidXQgbm90IGFuIGVkZ2Ug bGFiZWwKK3NlbGVjdCAqIGZyb20gZ3JhcGhfdGFibGUgKGcxIG1hdGNoIChzcmMpLVtjb25uXS0+ KGRlc3QpIGNvbHVtbnMgKGNvbm4udm5hbWUgYXMgY3ZuYW1lLCBjb25uLmVuYW1lIGFzIGNlbmFt ZSkpOworLS0gZWwxIGlzIGFzc29jaWF0ZWQgd2l0aCBlZGdlcyBidXQgaXMgb25seSBsYWJlbCB1 c2VkIHRvIHF1YWxpZnkgdmVydGV4CitzZWxlY3QgKiBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRj aCAoc3JjIGlzIGVsMSktW2Nvbm5dLT4oZGVzdCkgY29sdW1ucyAoY29ubi5lbmFtZSBhcyBjZW5h bWUpKTsKKy0tIGVsMSBpcyBhc3NvY2lhdGVkIHdpdGggZWRnZXMgYnV0IGlzIG9uZSBvZiB0aGUg bGFiZWxzIHVzZWQgdG8gcXVhbGlmeSB2ZXJ0ZXgKK3NlbGVjdCAqIGZyb20gZ3JhcGhfdGFibGUg KGcxIG1hdGNoIChzcmMgaXMgZWwxIHwgdmwxKS1bY29ubl0tPihkZXN0KSBjb2x1bW5zIChjb25u LmVuYW1lIGFzIGNlbmFtZSkpOworCistLSBzZWxlY3QgYWxsIHRoZSBwcm9wZXJ0aWVzIGFjcm9z cyBhbGwgdGhlIGxhYmVscyBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiB0eXBlCistLSBvZiBncmFw aCBlbGVtZW50CitzZWxlY3QgKiBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAoc3JjKS1bY29u bl0tPihkZXN0KSBjb2x1bW5zIChzcmMudm5hbWUgYXMgc3ZuYW1lLCBjb25uLmVuYW1lIGFzIGNl bmFtZSwgZGVzdC52bmFtZSBhcyBkdm5hbWUsIHNyYy52cHJvcDEgYXMgc3ZwMSwgc3JjLnZwcm9w MiBhcyBzdnAyLCBzcmMubHByb3AxIGFzIHNscDEsIGRlc3QudnByb3AxIGFzIGR2cDEsIGRlc3Qu dnByb3AyIGFzIGR2cDIsIGRlc3QubHByb3AxIGFzIGRscDEsIGNvbm4uZXByb3AxIGFzIGNlcDEs IGNvbm4ubHByb3AyIGFzIGNscDIpKTsKKy0tIHRocmVlIGxhYmVsIGRpc2p1bmN0aW9uCitzZWxl Y3QgKiBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAoc3JjIElTIHZsMSB8IHZsMiB8IHZsMykt W2Nvbm5dLT4oZGVzdCkgY29sdW1ucyAoc3JjLnZuYW1lIGFzIHN2bmFtZSwgY29ubi5lbmFtZSBh cyBjZW5hbWUsIGRlc3Qudm5hbWUgYXMgZHZuYW1lKSk7CistLSBncmFwaCdpY2FsIHF1ZXJ5OiBm aW5kIGEgdmVydGV4IHdoaWNoIGlzIG5vdCBjb25uZWN0ZWQgdG8gYW55IG90aGVyIHZlcnRleCBh cyBhIHNvdXJjZSBvciBhIGRlc3RpbmF0aW9uLgord2l0aCBhbGxfY29ubmVjdGVkX3ZlcnRpY2Vz IGFzIChzZWxlY3Qgc3ZuLCBkdm4gZnJvbSBncmFwaF90YWJsZSAoZzEgbWF0Y2ggKHNyYyktW2Nv bm5dLT4oZGVzdCkgY29sdW1ucyAoc3JjLnZuYW1lIGFzIHN2biwgZGVzdC52bmFtZSBhcyBkdm4p KSksCisgICAgYWxsX3ZlcnRpY2VzIGFzIChzZWxlY3Qgdm4gZnJvbSBncmFwaF90YWJsZSAoZzEg bWF0Y2ggKHZlcnRleCkgY29sdW1ucyAodmVydGV4LnZuYW1lIGFzIHZuKSkpCitzZWxlY3Qgdm4g ZnJvbSBhbGxfdmVydGljZXMgZXhjZXB0IChzZWxlY3Qgc3ZuIGZyb20gYWxsX2Nvbm5lY3RlZF92 ZXJ0aWNlcyB1bmlvbiBzZWxlY3QgZHZuIGZyb20gYWxsX2Nvbm5lY3RlZF92ZXJ0aWNlcyk7Cist LSBxdWVyeSBhbGwgY29ubmVjdGlvbnMgdXNpbmcgYSBsYWJlbCBzaGFyZWQgYnkgdmVydGljZXMg YW5kIGVkZ2VzCitzZWxlY3Qgc24sIGNuLCBkbiBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAo c3JjIDogbDEpLVtjb25uIDogbDFdLT4oZGVzdCA6IGwxKSBjb2x1bW5zIChzcmMuZWxuYW1lIGFz IHNuLCBjb25uLmVsbmFtZSBhcyBjbiwgZGVzdC5lbG5hbWUgYXMgZG4pKTsKKworLS0gcHJvcGVy dHkgZ3JhcGggd2l0aCBzb21lIG9mIHRoZSBlbGVtZW50cywgbGFiZWxzIGFuZCBwcm9wZXJ0aWVz IHNhbWUgYXMgdGhlCistLSBwcmV2aW91cyBvbmUuIFRlc3Qgd2hldGhlciBjb21wb25lbnRzIGZy b20gdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBncmFwaCBhcmUKKy0tIHVzZWQuCitjcmVhdGUgcHJv cGVydHkgZ3JhcGggZzIKK3ZlcnRleCB0YWJsZXMgKAorCXYxCisgICAgICAgIGxhYmVsIGwxIHBy b3BlcnRpZXMgKCdnMi4nIHx8IHZuYW1lIGFzIGVsbmFtZSksCisJdjIga2V5IChpZDEsIGlkMikK KyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAoJ2cyLicgfHwgdm5hbWUgYXMgZWxuYW1lKSwK Kwl2MworICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCB2bmFtZSBhcyBlbG5h bWUpCispCitlZGdlIHRhYmxlcyAoCisJZTFfMiBrZXkgKGlkXzEsIGlkXzJfMSwgaWRfMl8yKQor CQlzb3VyY2Uga2V5IChpZF8xKSByZWZlcmVuY2VzIHYxIChpZCkKKwkJZGVzdGluYXRpb24ga2V5 IChpZF8yXzEsIGlkXzJfMikgcmVmZXJlbmNlcyB2MiAoaWQxLCBpZDIpCisgICAgICAgIGxhYmVs IGwxIHByb3BlcnRpZXMgKCdnMi4nIHx8IGVuYW1lIGFzIGVsbmFtZSksCisJZTFfMworCQlzb3Vy Y2Uga2V5IChpZF8xKSByZWZlcmVuY2VzIHYxIChpZCkKKwkJZGVzdGluYXRpb24ga2V5IChpZF8z KSByZWZlcmVuY2VzIHYzIChpZCkKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAoJ2cyLicg fHwgZW5hbWUgYXMgZWxuYW1lKSwKKyAgICBlMl8zIGtleSAoaWRfMl8xLCBpZF8yXzIsIGlkXzMp CisgICAgICAgIHNvdXJjZSBrZXkgKGlkXzJfMSwgaWRfMl8yKSByZWZlcmVuY2VzIHYyIChpZDEs IGlkMikKKyAgICAgICAgZGVzdGluYXRpb24ga2V5IChpZF8zKSByZWZlcmVuY2VzIHYzIChpZCkK KyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAoJ2cyLicgfHwgZW5hbWUgYXMgZWxuYW1lKQor KTsKK3NlbGVjdCBzbiwgY24sIGRuIGZyb20gZ3JhcGhfdGFibGUgKGcyIG1hdGNoIChzcmMgOiBs MSktW2Nvbm4gOiBsMV0tPihkZXN0IDogbDEpIGNvbHVtbnMgKHNyYy5lbG5hbWUgYXMgc24sIGNv bm4uZWxuYW1lIGFzIGNuLCBkZXN0LmVsbmFtZSBhcyBkbikpOworCitDUkVBVEUgVklFVyBjdXN0 b21lcnNfdXMgQVMgU0VMRUNUIGN1c3RvbWVyX25hbWUgRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9w IE1BVENIIChjIElTIGN1c3RvbWVycyBXSEVSRSBjLmFkZHJlc3MgPSAnVVMnKS1bSVMgY3VzdG9t ZXJfb3JkZXJzXS0+KG8gSVMgb3JkZXJzKSBDT0xVTU5TIChjLm5hbWUgQVMgY3VzdG9tZXJfbmFt ZSkpOworCitTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ2N1c3RvbWVyc191cyc6OnJlZ2NsYXNzKTsK KworLS0gdGVzdCB2aWV3L2dyYXBoIG5lc3RpbmcKKworQ1JFQVRFIFZJRVcgY3VzdG9tZXJzX3Zp ZXcgQVMgU0VMRUNUIGN1c3RvbWVyX2lkLCAncmVkYWN0ZWQnIHx8IGN1c3RvbWVyX2lkIEFTIG5h bWVfcmVkYWN0ZWQsIGFkZHJlc3MgRlJPTSBjdXN0b21lcnM7CitTRUxFQ1QgKiBGUk9NIGN1c3Rv bWVyczsKK1NFTEVDVCAqIEZST00gY3VzdG9tZXJzX3ZpZXc7CisKK0NSRUFURSBQUk9QRVJUWSBH UkFQSCBteXNob3AyCisgICAgVkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHByb2R1Y3RzLAorICAg ICAgICBjdXN0b21lcnNfdmlldyBLRVkgKGN1c3RvbWVyX2lkKSBMQUJFTCBjdXN0b21lcnMsCisg ICAgICAgIG9yZGVycworICAgICkKKyAgICBFREdFIFRBQkxFUyAoCisgICAgICAgIG9yZGVyX2l0 ZW1zIEtFWSAob3JkZXJfaXRlbXNfaWQpCisgICAgICAgICAgICBTT1VSQ0UgS0VZIChvcmRlcl9p ZCkgUkVGRVJFTkNFUyBvcmRlcnMgKG9yZGVyX2lkKQorICAgICAgICAgICAgREVTVElOQVRJT04g S0VZIChwcm9kdWN0X25vKSBSRUZFUkVOQ0VTIHByb2R1Y3RzIChwcm9kdWN0X25vKSwKKyAgICAg ICAgY3VzdG9tZXJfb3JkZXJzIEtFWSAoY3VzdG9tZXJfb3JkZXJzX2lkKQorICAgICAgICAgICAg U09VUkNFIEtFWSAoY3VzdG9tZXJfaWQpIFJFRkVSRU5DRVMgY3VzdG9tZXJzX3ZpZXcgKGN1c3Rv bWVyX2lkKQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZIChvcmRlcl9pZCkgUkVGRVJFTkNF UyBvcmRlcnMgKG9yZGVyX2lkKQorICAgICk7CisKK0NSRUFURSBWSUVXIGN1c3RvbWVyc191c19y ZWRhY3RlZCBBUyBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AyIE1BVENIIChjIElT IGN1c3RvbWVycyBXSEVSRSBjLmFkZHJlc3MgPSAnVVMnKS1bSVMgY3VzdG9tZXJfb3JkZXJzXS0+ KG8gSVMgb3JkZXJzKSBDT0xVTU5TIChjLm5hbWVfcmVkYWN0ZWQgQVMgY3VzdG9tZXJfbmFtZV9y ZWRhY3RlZCkpOworCitTRUxFQ1QgKiBGUk9NIGN1c3RvbWVyc191c19yZWRhY3RlZDsKKworLS0g bGVhdmUgZm9yIHBnX3VwZ3JhZGUvcGdfZHVtcCB0ZXN0cworLS1EUk9QIFNDSEVNQSBncmFwaF90 YWJsZV90ZXN0cyBDQVNDQURFOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvb2Jq ZWN0X2FkZHJlc3Muc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvb2JqZWN0X2FkZHJlc3Muc3Fs CmluZGV4IDFhNmM2MWY0OWQ1Li45M2Y5ZjljNzA0ZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvb2JqZWN0X2FkZHJlc3Muc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29i amVjdF9hZGRyZXNzLnNxbApAQCAtMzcsNiArMzcsNyBAQCBDUkVBVEUgRlVOQ1RJT04gYWRkcl9u c3AudHJpZygpIFJFVFVSTlMgVFJJR0dFUiBMQU5HVUFHRSBwbHBnc3FsIEFTICQkIEJFR0lOIEVO RAogQ1JFQVRFIFRSSUdHRVIgdCBCRUZPUkUgSU5TRVJUIE9OIGFkZHJfbnNwLmdlbnRhYmxlIEZP UiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSBhZGRyX25zcC50cmlnKCk7CiBDUkVBVEUgUE9M SUNZIGdlbnBvbCBPTiBhZGRyX25zcC5nZW50YWJsZTsKIENSRUFURSBQUk9DRURVUkUgYWRkcl9u c3AucHJvYyhpbnQ0KSBMQU5HVUFHRSBTUUwgQVMgJCQgJCQ7CitDUkVBVEUgUFJPUEVSVFkgR1JB UEggYWRkcl9uc3AuZ2VuZ3JhcGg7CiBDUkVBVEUgU0VSVkVSICJpbnRlZ2VyIiBGT1JFSUdOIERB VEEgV1JBUFBFUiBhZGRyX2ZkdzsKIENSRUFURSBVU0VSIE1BUFBJTkcgRk9SIHJlZ3Jlc3NfYWRk cl91c2VyIFNFUlZFUiAiaW50ZWdlciI7CiBBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMgRk9SIFJP TEUgcmVncmVzc19hZGRyX3VzZXIgSU4gU0NIRU1BIHB1YmxpYyBHUkFOVCBBTEwgT04gVEFCTEVT IFRPIHJlZ3Jlc3NfYWRkcl91c2VyOwpAQCAtOTAsNyArOTEsNyBAQCBERUNMQVJFCiBCRUdJTgog ICAgIEZPUiBvYmp0eXBlIElOIFZBTFVFUwogICAgICAgICAoJ3RhYmxlJyksICgnaW5kZXgnKSwg KCdzZXF1ZW5jZScpLCAoJ3ZpZXcnKSwKLSAgICAgICAgKCdtYXRlcmlhbGl6ZWQgdmlldycpLCAo J2ZvcmVpZ24gdGFibGUnKSwKKyAgICAgICAgKCdtYXRlcmlhbGl6ZWQgdmlldycpLCAoJ2ZvcmVp Z24gdGFibGUnKSwgKCdwcm9wZXJ0eSBncmFwaCcpLAogICAgICAgICAoJ3RhYmxlIGNvbHVtbicp LCAoJ2ZvcmVpZ24gdGFibGUgY29sdW1uJyksCiAgICAgICAgICgnYWdncmVnYXRlJyksICgnZnVu Y3Rpb24nKSwgKCdwcm9jZWR1cmUnKSwgKCd0eXBlJyksICgnY2FzdCcpLAogICAgICAgICAoJ3Rh YmxlIGNvbnN0cmFpbnQnKSwgKCdkb21haW4gY29uc3RyYWludCcpLCAoJ2NvbnZlcnNpb24nKSwg KCdkZWZhdWx0IHZhbHVlJyksCkBAIC0xNjMsNiArMTY0LDcgQEAgV0lUSCBvYmplY3RzICh0eXBl LCBuYW1lLCBhcmdzKSBBUyAoVkFMVUVTCiAgICAgKCd2aWV3JywgJ3thZGRyX25zcCwgZ2Vudmll d30nLCAne30nKSwKICAgICAoJ21hdGVyaWFsaXplZCB2aWV3JywgJ3thZGRyX25zcCwgZ2VubWF0 dmlld30nLCAne30nKSwKICAgICAoJ2ZvcmVpZ24gdGFibGUnLCAne2FkZHJfbnNwLCBnZW5mdGFi bGV9JywgJ3t9JyksCisgICAgKCdwcm9wZXJ0eSBncmFwaCcsICd7YWRkcl9uc3AsIGdlbmdyYXBo fScsICd7fScpLAogICAgICgndGFibGUgY29sdW1uJywgJ3thZGRyX25zcCwgZ2VudGFibGUsIGJ9 JywgJ3t9JyksCiAgICAgKCdmb3JlaWduIHRhYmxlIGNvbHVtbicsICd7YWRkcl9uc3AsIGdlbmZ0 YWJsZSwgYX0nLCAne30nKSwKICAgICAoJ2FnZ3JlZ2F0ZScsICd7YWRkcl9uc3AsIGdlbmFnZ3J9 JywgJ3tpbnQ0fScpLApkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxp c3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCBlMWM0ZjkxM2Y4NC4u Y2E4Yjk2N2VmYWQgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0 CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC00MTk3LDMgKzQxOTcs MjQgQEAgeXlzY2FuX3QKIHpfc3RyZWFtCiB6X3N0cmVhbXAKIHppY190CisKKyMgVE9ETworQWx0 ZXJQcm9wR3JhcGhFbGVtZW50S2luZAorQWx0ZXJQcm9wR3JhcGhTdG10CitDcmVhdGVQcm9wR3Jh cGhTdG10CitGb3JtRGF0YV9wZ19wcm9wZ3JhcGhfZWxlbWVudAorRm9ybURhdGFfcGdfcHJvcGdy YXBoX2VsZW1lbnRfbGFiZWwKK0Zvcm1EYXRhX3BnX3Byb3BncmFwaF9sYWJlbAorRm9ybURhdGFf cGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5CitGb3JtRGF0YV9wZ19wcm9wZ3JhcGhfcHJvcGVy dHkKK0dyYXBoRWxlbWVudFBhdHRlcm4KK0dyYXBoRWxlbWVudFBhdHRlcm5LaW5kCitHcmFwaExh YmVsUmVmCitHcmFwaFBhdHRlcm4KK0dyYXBoUHJvcGVydHlSZWYKK0dyYXBoVGFibGVQYXJzZVN0 YXRlCitQcm9wR3JhcGhFZGdlCitQcm9wR3JhcGhMYWJlbEFuZFByb3BlcnRpZXMKK1Byb3BHcmFw aFByb3BlcnRpZXMKK1Byb3BHcmFwaFZlcnRleAorUmFuZ2VHcmFwaFRhYmxlCi0tIAoyLjM0LjEK Cg== --00000000000015b3be062aa12bab Content-Type: text/x-patch; charset="US-ASCII"; name="0007-RLS-tests-20250101.patch" Content-Disposition: attachment; filename="0007-RLS-tests-20250101.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5dnsexx6 RnJvbSA4OWQ4YWE5ZmQzMDdmMjY5Y2Q2OWU1ZTI4OTdhZWQ0NDAxZmUwY2JlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBc2h1dG9zaCBCYXBhdCA8YXNodXRvc2guYmFwYXQub3NzQGdt YWlsLmNvbT4KRGF0ZTogTW9uLCAyOCBPY3QgMjAyNCAxNjo0Mzo0MCArMDUzMApTdWJqZWN0OiBb UEFUQ0ggNy85XSBSTFMgdGVzdHMKClRoZSBjb21taXQgdGVzdHMgaW50ZXJhY3Rpb24gb2YgcHJv cGVydHkgZ3JhcGggd2l0aCBSTFMuICBUaGUgdGVzdApxdWVyaWVzIHJlZmVyZW5jaW5nIHByb3Bl cnR5IGdyYXBoIGFyZSBjcmFmdGVkIGZyb20gZXhpc3RpbmcgcXVlcmllcyBieQp1c2luZyBlcXVp dmFsZW50IEdSQVBIX1RBQkxFIGNvbnN0cnVjdHMuIFRodXMgd2UganVzdCBtYWtlIHN1cmUgdGhh dCB0aGUKcXVlcmllcyB1c2luZyBHUkFQSF9UQUJMRSBjb25zdHJ1Y3RzIGJlaGF2ZSBpbiB0aGUg c2FtZSBtYW5uZXIgYW5kCnByb3ZpZGUgdGhlIHNhbWUgb3V0cHV0IGFzIHRoZSBjb3JyZXNwb25k aW5nIGV4aXN0aW5nIHF1ZXJpZXMuCgpUaGUgdGVzdHMgY292ZXJpbmcgc2ltcGxlIHRhYmxlcywg aW5oZXJpdGFuY2UgYW5kIHBhcnRpdGlvbmVkIHRhYmxlcwplc3RhYmxpc2ggdGhhdCB0aGUgUkxT IGlzIGFwcGxpZWQgZXZlbiB3aGVuIHRoZSB0YWJsZXMgYXJlIGFjY2Vzc2VkCnRocm91Z2ggR1JB UEhfVEFCTEUuICBUaGF0IGVzdGFibGlzaGVzIHRoYXQgdGhlIFJMUyBwb2xpY2llcyB3aWxsIGJl CmFwcGxpZWQgd2hlbiBpbnRlcmFjdGluZyB3aXRoIG90aGVyIGZlYXR1cmVzIGxpa2UgcmVjdXJz aXZlIHBvbGljaWVzLApwcmVwYXJlZCBzdGF0ZW1lbnQgaW52YWxpZGF0aW9uLCBzZWN1cml0eSBi YXJyaWVyIHZpZXdzLCBDVEUsIElOU0VSVCAuLi4KU0VMRUNULCBDT1BZLCBqb2lucywgbm9uLXRh cmdldCByZWxhdGlvbnMgZXRjLiBUaGlzIGFzc3VtcHRpb24gaXMgYmFzZWQKb24gdGhlIGN1cnJl bnQgaW1wbGVtZW50YXRpb24gd2hpY2ggcmV3cml0ZXMgR1JBUEhfVEFCTEUgY2xhdXNlIHdlbGwK YmVmb3JlIHRoZSBSTFMgcG9saWNpZXMgYXJlIGFkZGVkLiBJbiBjYXNlIHRoZSBpbXBsZW1lbnRh dGlvbiBjaGFuZ2VzIGluCmZ1dHVyZSwgdGhlc2UgYWRkaXRpb25hbCB0ZXN0IHF1ZXJpZXMgd2ls bCBwcm92aWRlIHRoZSByZXF1aXJlZApleHRlbnNpdmUgY292ZXJhZ2UuCgpOb3RlOiBUaGUgdGVz dHMgZm9yIEJ1ZyAjMTU3MDggYXJlIGFscmVhZHkgY292ZXJlZCBlYXJsaWVyLCBoZW5jZSBub3QK YWRkZWQgYWdhaW4uCgpBdXRob3I6IEFzaHV0b3NoIEJhcGF0IDxhc2h1dG9zaC5iYXBhdC5vc3NA Z21haWwuY29tPgotLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcm93c2VjdXJpdHkub3V0 IHwgMjE3NiArKysrKysrKysrKysrKysrKysrLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jvd3Nl Y3VyaXR5LnNxbCAgICAgIHwgIDMwOSArKy0KIDIgZmlsZXMgY2hhbmdlZCwgMjM2NCBpbnNlcnRp b25zKCspLCAxMjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9yb3dzZWN1cml0eS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jvd3Nl Y3VyaXR5Lm91dAppbmRleCBmZDU2NTRkZjM1ZS4uMmUwYmRhZjcwY2EgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcm93c2VjdXJpdHkub3V0CisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcm93c2VjdXJpdHkub3V0CkBAIC03Miw2ICs3MiwxMyBAQCBJTlNFUlQg SU5UTyBkb2N1bWVudCBWQUxVRVMKICAgICAoIDgsIDQ0LCAxLCAncmVncmVzc19ybHNfY2Fyb2wn LCAnZ3JlYXQgbWFuZ2EnKSwKICAgICAoIDksIDIyLCAxLCAncmVncmVzc19ybHNfZGF2ZScsICdh d2Vzb21lIHNjaWVuY2UgZmljdGlvbicpLAogICAgICgxMCwgMzMsIDIsICdyZWdyZXNzX3Jsc19k YXZlJywgJ2F3ZXNvbWUgdGVjaG5vbG9neSBib29rJyk7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEgg YWNjX2NhdAorICAgIFZFUlRFWCBUQUJMRVMgKHVhY2NvdW50LCBjYXRlZ29yeSkKKyAgICBFREdF IFRBQkxFUyAoCisgICAgICAgIGRvY3VtZW50CisgICAgICAgIFNPVVJDRSBLRVkgKGRhdXRob3Ip IFJFRkVSRU5DRVMgdWFjY291bnQgKHBndXNlcikKKyAgICAgICAgREVTVElOQVRJT04gS0VZIChj aWQpIFJFRkVSRU5DRVMgY2F0ZWdvcnkgKGNpZCkpOworR1JBTlQgQUxMIE9OIGFjY19jYXQgVE8g cHVibGljOwogQUxURVIgVEFCTEUgZG9jdW1lbnQgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsK IC0tIHVzZXIncyBzZWN1cml0eSBsZXZlbCBtdXN0IGJlIGhpZ2hlciB0aGFuIG9yIGVxdWFsIHRv IGRvY3VtZW50J3MKIENSRUFURSBQT0xJQ1kgcDEgT04gZG9jdW1lbnQgQVMgUEVSTUlTU0lWRQpA QCAtOTMsMjQgKzEwMCwyNiBAQCBDUkVBVEUgUE9MSUNZIHAyciBPTiBkb2N1bWVudCBBUyBSRVNU UklDVElWRSBUTyByZWdyZXNzX3Jsc19kYXZlCiBDUkVBVEUgUE9MSUNZIHAxciBPTiBkb2N1bWVu dCBBUyBSRVNUUklDVElWRSBUTyByZWdyZXNzX3Jsc19kYXZlCiAgICAgVVNJTkcgKGNpZCA8PiA0 NCk7CiBcZHAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcwotICAgICAgIFNjaGVtYSAgICAg ICB8ICAgTmFtZSAgIHwgVHlwZSAgfCAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAg ICAgICAgICAgICB8IENvbHVtbiBwcml2aWxlZ2VzIHwgICAgICAgICAgICAgICAgICBQb2xpY2ll cyAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotIHJlZ3Jlc3NfcmxzX3NjaGVtYSB8IGNhdGVnb3J5IHwgdGFibGUgfCByZWdyZXNzX3Jsc19h bGljZT1hcndkRHh0bS9yZWdyZXNzX3Jsc19hbGljZSt8ICAgICAgICAgICAgICAgICAgIHwgCi0g ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICB8ID1hcndkRHh0bS9yZWdyZXNz X3Jsc19hbGljZSAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAKLSByZWdy ZXNzX3Jsc19zY2hlbWEgfCBkb2N1bWVudCB8IHRhYmxlIHwgcmVncmVzc19ybHNfYWxpY2U9YXJ3 ZER4dG0vcmVncmVzc19ybHNfYWxpY2UrfCAgICAgICAgICAgICAgICAgICB8IHAxOiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICB8ICAgICAgIHwgPWFyd2REeHRtL3JlZ3Jlc3NfcmxzX2FsaWNlICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgKHUpOiAoZGxldmVsIDw9ICggU0VMRUNUIHVh Y2NvdW50LnNlY2x2ICsKLSAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICB8ICAgIEZST00gdWFjY291bnQgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgV0hFUkUg KHVhY2NvdW50LnBndXNlciA9IENVUlJFTlRfVVNFUikpKSsKLSAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICB8ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IHAyciAoUkVTVFJJQ1RJVkUpOiAgICAgICAg ICAgICAgICAgICAgICAgICsKLSAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICB8ICAgKHUpOiAoKGNpZCA8PiA0NCkgQU5EIChjaWQgPCA1MCkpICAgICAgICsK LSAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgdG86 IHJlZ3Jlc3NfcmxzX2RhdmUgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICB8ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IHAxciAoUkVTVFJJQ1RJVkUpOiAgICAg ICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICB8ICAgKHUpOiAoY2lkIDw+IDQ0KSAgICAgICAgICAgICAgICAgICAgICAg ICsKLSAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAg dG86IHJlZ3Jlc3NfcmxzX2RhdmUKLSByZWdyZXNzX3Jsc19zY2hlbWEgfCB1YWNjb3VudCB8IHRh YmxlIHwgcmVncmVzc19ybHNfYWxpY2U9YXJ3ZER4dG0vcmVncmVzc19ybHNfYWxpY2UrfCAgICAg ICAgICAgICAgICAgICB8IAotICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAg fCA9ci9yZWdyZXNzX3Jsc19hbGljZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgIHwgCi0oMyByb3dzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcwor ICAgICAgIFNjaGVtYSAgICAgICB8ICAgTmFtZSAgIHwgICAgICBUeXBlICAgICAgfCAgICAgICAg ICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICB8IENvbHVtbiBwcml2aWxlZ2Vz IHwgICAgICAgICAgICAgICAgICBQb2xpY2llcyAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcmxzX3NjaGVt YSB8IGFjY19jYXQgIHwgcHJvcGVydHkgZ3JhcGggfCByZWdyZXNzX3Jsc19hbGljZT1hcndkRHh0 bS9yZWdyZXNzX3Jsc19hbGljZSt8ICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ID1hcndkRHh0bS9yZWdyZXNzX3Js c19hbGljZSAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAKKyByZWdyZXNz X3Jsc19zY2hlbWEgfCBjYXRlZ29yeSB8IHRhYmxlICAgICAgICAgIHwgcmVncmVzc19ybHNfYWxp Y2U9YXJ3ZER4dG0vcmVncmVzc19ybHNfYWxpY2UrfCAgICAgICAgICAgICAgICAgICB8IAorICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCA9YXJ3ZER4dG0v cmVncmVzc19ybHNfYWxpY2UgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwg CisgcmVncmVzc19ybHNfc2NoZW1hIHwgZG9jdW1lbnQgfCB0YWJsZSAgICAgICAgICB8IHJlZ3Jl c3NfcmxzX2FsaWNlPWFyd2REeHRtL3JlZ3Jlc3NfcmxzX2FsaWNlK3wgICAgICAgICAgICAgICAg ICAgfCBwMTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ID1hcndkRHh0bS9yZWdy ZXNzX3Jsc19hbGljZSAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICh1 KTogKGRsZXZlbCA8PSAoIFNFTEVDVCB1YWNjb3VudC5zZWNsdiArCisgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICBGUk9NIHVhY2Nv dW50ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgIFdIRVJFICh1YWNjb3VudC5wZ3Vz ZXIgPSBDVVJSRU5UX1VTRVIpKSkrCisgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgfCBwMnIgKFJFU1RSSUNUSVZFKTogICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgfCAgICh1KTogKChjaWQgPD4gNDQpIEFORCAoY2lkIDwgNTApKSAgICAg ICArCisgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgIHRvOiByZWdyZXNzX3Jsc19kYXZlICAgICAgICAgICAgICAgICAgICArCisgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCBw MXIgKFJFU1RSSUNUSVZFKTogICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICh1KTogKGNp ZCA8PiA0NCkgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgIHRvOiByZWdyZXNzX3Jsc19k YXZlCisgcmVncmVzc19ybHNfc2NoZW1hIHwgdWFjY291bnQgfCB0YWJsZSAgICAgICAgICB8IHJl Z3Jlc3NfcmxzX2FsaWNlPWFyd2REeHRtL3JlZ3Jlc3NfcmxzX2FsaWNlK3wgICAgICAgICAgICAg ICAgICAgfCAKKyAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgICAgICAg IHwgPXIvcmVncmVzc19ybHNfYWxpY2UgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICB8IAorKDQgcm93cykKIAogXGQgZG9jdW1lbnQKICAgICAgICAgVGFibGUgInJl Z3Jlc3NfcmxzX3NjaGVtYS5kb2N1bWVudCIKQEAgLTE4MCw2ICsxODksMjMgQEAgTk9USUNFOiAg Zl9sZWFrID0+IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9uCiAgIDIyIHwgICA5IHwgICAgICAxIHwg cmVncmVzc19ybHNfZGF2ZSAgfCBhd2Vzb21lIHNjaWVuY2UgZmljdGlvbiB8IHNjaWVuY2UgZmlj dGlvbgogKDUgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoYWNjX2NhdAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE1BVENIICh1IDogdWFjY291bnQpLVtkIDogZG9jdW1l bnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ09MVU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBkLmRsZXZlbCwgZC5kdGl0 bGUsIGMuY2lkLCBjLmNuYW1lKSkgT1JERVIgQlkgZGlkOworTk9USUNFOiAgZl9sZWFrID0+IG15 IGZpcnN0IG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgZmlyc3QgbWFuZ2EKK05PVElDRTog IGZfbGVhayA9PiBncmVhdCBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBncmVh dCBtYW5nYQorTk9USUNFOiAgZl9sZWFrID0+IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9uCisgICAg ICBwZ3VzZXIgICAgICAgfCBkaWQgfCBkbGV2ZWwgfCAgICAgICAgIGR0aXRsZSAgICAgICAgICB8 IGNpZCB8ICAgICAgY25hbWUgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLSstLS0tLS0tLS0tLS0tLS0tLQorIHJl Z3Jlc3NfcmxzX2JvYiAgIHwgICAxIHwgICAgICAxIHwgbXkgZmlyc3Qgbm92ZWwgICAgICAgICAg fCAgMTEgfCBub3ZlbAorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICA0IHwgICAgICAxIHwgbXkgZmly c3QgbWFuZ2EgICAgICAgICAgfCAgNDQgfCBtYW5nYQorIHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgICA2 IHwgICAgICAxIHwgZ3JlYXQgc2NpZW5jZSBmaWN0aW9uICAgfCAgMjIgfCBzY2llbmNlIGZpY3Rp b24KKyByZWdyZXNzX3Jsc19jYXJvbCB8ICAgOCB8ICAgICAgMSB8IGdyZWF0IG1hbmdhICAgICAg ICAgICAgIHwgIDQ0IHwgbWFuZ2EKKyByZWdyZXNzX3Jsc19kYXZlICB8ICAgOSB8ICAgICAgMSB8 IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9uIHwgIDIyIHwgc2NpZW5jZSBmaWN0aW9uCisoNSByb3dz KQorCiAtLSB0cnkgYSBzYW1wbGVkIHZlcnNpb24KIFNFTEVDVCAqIEZST00gZG9jdW1lbnQgVEFC TEVTQU1QTEUgQkVSTk9VTExJKDUwKSBSRVBFQVRBQkxFKDApCiAgIFdIRVJFIGZfbGVhayhkdGl0 bGUpIE9SREVSIEJZIGRpZDsKQEAgLTI0Nyw2ICsyNzMsMzMgQEAgTk9USUNFOiAgZl9sZWFrID0+ IGF3ZXNvbWUgdGVjaG5vbG9neSBib29rCiAgIDMzIHwgIDEwIHwgICAgICAyIHwgcmVncmVzc19y bHNfZGF2ZSAgfCBhd2Vzb21lIHRlY2hub2xvZ3kgYm9vayB8IHRlY2hub2xvZ3kKICgxMCByb3dz KQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChhY2NfY2F0CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTUFUQ0ggKHUgOiB1YWNjb3VudCktW2QgOiBkb2N1bWVudCBXSEVSRSBmX2xl YWsoZC5kdGl0bGUpXS0+KGMgOiBjYXRlZ29yeSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDT0xVTU5TICh1LnBndXNlciwgZC5kaWQsIGQuZGxldmVsLCBkLmR0aXRsZSwgYy5jaWQsIGMu Y25hbWUpKSBPUkRFUiBCWSBkaWQ7CitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgZmlyc3Qgbm92ZWwK K05PVElDRTogIGZfbGVhayA9PiBteSBzZWNvbmQgbm92ZWwKK05PVElDRTogIGZfbGVhayA9PiBt eSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBteSBmaXJzdCBtYW5nYQorTk9U SUNFOiAgZl9sZWFrID0+IG15IHNlY29uZCBtYW5nYQorTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0 IHNjaWVuY2UgZmljdGlvbgorTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IHRlY2hub2xvZ3kgYm9v aworTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IG1hbmdhCitOT1RJQ0U6ICBmX2xlYWsgPT4gYXdl c29tZSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBhd2Vzb21lIHRlY2hub2xv Z3kgYm9vaworICAgICAgcGd1c2VyICAgICAgIHwgZGlkIHwgZGxldmVsIHwgICAgICAgICBkdGl0 bGUgICAgICAgICAgfCBjaWQgfCAgICAgIGNuYW1lICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0KKyByZWdyZXNzX3Jsc19ib2IgICB8ICAgMSB8ICAgICAgMSB8IG15IGZpcnN0IG5v dmVsICAgICAgICAgIHwgIDExIHwgbm92ZWwKKyByZWdyZXNzX3Jsc19ib2IgICB8ICAgMiB8ICAg ICAgMiB8IG15IHNlY29uZCBub3ZlbCAgICAgICAgIHwgIDExIHwgbm92ZWwKKyByZWdyZXNzX3Js c19ib2IgICB8ICAgMyB8ICAgICAgMiB8IG15IHNjaWVuY2UgZmljdGlvbiAgICAgIHwgIDIyIHwg c2NpZW5jZSBmaWN0aW9uCisgcmVncmVzc19ybHNfYm9iICAgfCAgIDQgfCAgICAgIDEgfCBteSBm aXJzdCBtYW5nYSAgICAgICAgICB8ICA0NCB8IG1hbmdhCisgcmVncmVzc19ybHNfYm9iICAgfCAg IDUgfCAgICAgIDIgfCBteSBzZWNvbmQgbWFuZ2EgICAgICAgICB8ICA0NCB8IG1hbmdhCisgcmVn cmVzc19ybHNfY2Fyb2wgfCAgIDYgfCAgICAgIDEgfCBncmVhdCBzY2llbmNlIGZpY3Rpb24gICB8 ICAyMiB8IHNjaWVuY2UgZmljdGlvbgorIHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgICA3IHwgICAgICAy IHwgZ3JlYXQgdGVjaG5vbG9neSBib29rICAgfCAgMzMgfCB0ZWNobm9sb2d5CisgcmVncmVzc19y bHNfY2Fyb2wgfCAgIDggfCAgICAgIDEgfCBncmVhdCBtYW5nYSAgICAgICAgICAgICB8ICA0NCB8 IG1hbmdhCisgcmVncmVzc19ybHNfZGF2ZSAgfCAgIDkgfCAgICAgIDEgfCBhd2Vzb21lIHNjaWVu Y2UgZmljdGlvbiB8ICAyMiB8IHNjaWVuY2UgZmljdGlvbgorIHJlZ3Jlc3NfcmxzX2RhdmUgIHwg IDEwIHwgICAgICAyIHwgYXdlc29tZSB0ZWNobm9sb2d5IGJvb2sgfCAgMzMgfCB0ZWNobm9sb2d5 CisoMTAgcm93cykKKwogLS0gdHJ5IGEgc2FtcGxlZCB2ZXJzaW9uCiBTRUxFQ1QgKiBGUk9NIGRv Y3VtZW50IFRBQkxFU0FNUExFIEJFUk5PVUxMSSg1MCkgUkVQRUFUQUJMRSgwKQogICBXSEVSRSBm X2xlYWsoZHRpdGxlKSBPUkRFUiBCWSBkaWQ7CkBAIC0yODgsNiArMzQxLDI4IEBAIEVYUExBSU4g KENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBkb2N1bWVudCBOQVRVUkFMIEpPSU4gY2F0ZWdvcnkg V0hFUkUgZl9sZWFrKGR0CiAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoZGxldmVsIDw9IChJbml0 UGxhbiAxKS5jb2wxKSBBTkQgZl9sZWFrKGR0aXRsZSkpCiAoOSByb3dzKQogCitFWFBMQUlOIChD T1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGFjY19jYXQKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBNQVRDSCAodSA6IHVhY2NvdW50KS1bZCA6IGRvY3VtZW50IFdIRVJF IGZfbGVhayhkLmR0aXRsZSldLT4oYyA6IGNhdGVnb3J5KQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENPTFVNTlMgKHUucGd1c2VyLCBkLmRpZCwgZC5kbGV2ZWwsIGQuZHRpdGxlLCBjLmNp ZCwgYy5jbmFtZSkpIE9SREVSIEJZIGRpZDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNvcnQKKyAgIFNvcnQgS2V5OiBkb2N1 bWVudC5kaWQKKyAgIEluaXRQbGFuIDEKKyAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdWFjY291 bnRfcGtleSBvbiB1YWNjb3VudCB1YWNjb3VudF8xCisgICAgICAgICAgIEluZGV4IENvbmQ6IChw Z3VzZXIgPSBDVVJSRU5UX1VTRVIpCisgICAtPiAgSGFzaCBKb2luCisgICAgICAgICBIYXNoIENv bmQ6IChkb2N1bWVudC5kYXV0aG9yID0gdWFjY291bnQucGd1c2VyKQorICAgICAgICAgLT4gIEhh c2ggSm9pbgorICAgICAgICAgICAgICAgSGFzaCBDb25kOiAoY2F0ZWdvcnkuY2lkID0gZG9jdW1l bnQuY2lkKQorICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIGNhdGVnb3J5CisgICAgICAg ICAgICAgICAtPiAgSGFzaAorICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIGRv Y3VtZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoZGxldmVsIDw9IChJ bml0UGxhbiAxKS5jb2wxKSBBTkQgZl9sZWFrKGR0aXRsZSkpCisgICAgICAgICAtPiAgSGFzaAor ICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHVhY2NvdW50CisoMTUgcm93cykKKwogLS0g dmlld3BvaW50IGZyb20gcmVncmVzc19ybHNfZGF2ZQogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElP TiByZWdyZXNzX3Jsc19kYXZlOwogU0VMRUNUICogRlJPTSBkb2N1bWVudCBXSEVSRSBmX2xlYWso ZHRpdGxlKSBPUkRFUiBCWSBkaWQ7CkBAIC0zMjgsNiArNDAzLDI3IEBAIE5PVElDRTogIGZfbGVh ayA9PiBhd2Vzb21lIHRlY2hub2xvZ3kgYm9vawogICAzMyB8ICAxMCB8ICAgICAgMiB8IHJlZ3Jl c3NfcmxzX2RhdmUgIHwgYXdlc29tZSB0ZWNobm9sb2d5IGJvb2sgfCB0ZWNobm9sb2d5CiAoNyBy b3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChhY2NfY2F0CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTUFUQ0ggKHUgOiB1YWNjb3VudCktW2QgOiBkb2N1bWVudCBXSEVSRSBm X2xlYWsoZC5kdGl0bGUpXS0+KGMgOiBjYXRlZ29yeSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBDT0xVTU5TICh1LnBndXNlciwgZC5kaWQsIGQuZGxldmVsLCBkLmR0aXRsZSwgYy5jaWQs IGMuY25hbWUpKSBPUkRFUiBCWSBkaWQ7CitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgZmlyc3Qgbm92 ZWwKK05PVElDRTogIGZfbGVhayA9PiBteSBzZWNvbmQgbm92ZWwKK05PVElDRTogIGZfbGVhayA9 PiBteSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBncmVhdCBzY2llbmNlIGZp Y3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBncmVhdCB0ZWNobm9sb2d5IGJvb2sKK05PVElDRTog IGZfbGVhayA9PiBhd2Vzb21lIHNjaWVuY2UgZmljdGlvbgorTk9USUNFOiAgZl9sZWFrID0+IGF3 ZXNvbWUgdGVjaG5vbG9neSBib29rCisgICAgICBwZ3VzZXIgICAgICAgfCBkaWQgfCBkbGV2ZWwg fCAgICAgICAgIGR0aXRsZSAgICAgICAgICB8IGNpZCB8ICAgICAgY25hbWUgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLSstLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICAxIHwgICAgICAx IHwgbXkgZmlyc3Qgbm92ZWwgICAgICAgICAgfCAgMTEgfCBub3ZlbAorIHJlZ3Jlc3NfcmxzX2Jv YiAgIHwgICAyIHwgICAgICAyIHwgbXkgc2Vjb25kIG5vdmVsICAgICAgICAgfCAgMTEgfCBub3Zl bAorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICAzIHwgICAgICAyIHwgbXkgc2NpZW5jZSBmaWN0aW9u ICAgICAgfCAgMjIgfCBzY2llbmNlIGZpY3Rpb24KKyByZWdyZXNzX3Jsc19jYXJvbCB8ICAgNiB8 ICAgICAgMSB8IGdyZWF0IHNjaWVuY2UgZmljdGlvbiAgIHwgIDIyIHwgc2NpZW5jZSBmaWN0aW9u CisgcmVncmVzc19ybHNfY2Fyb2wgfCAgIDcgfCAgICAgIDIgfCBncmVhdCB0ZWNobm9sb2d5IGJv b2sgICB8ICAzMyB8IHRlY2hub2xvZ3kKKyByZWdyZXNzX3Jsc19kYXZlICB8ICAgOSB8ICAgICAg MSB8IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9uIHwgIDIyIHwgc2NpZW5jZSBmaWN0aW9uCisgcmVn cmVzc19ybHNfZGF2ZSAgfCAgMTAgfCAgICAgIDIgfCBhd2Vzb21lIHRlY2hub2xvZ3kgYm9vayB8 ICAzMyB8IHRlY2hub2xvZ3kKKyg3IHJvd3MpCisKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNU ICogRlJPTSBkb2N1bWVudCBXSEVSRSBmX2xlYWsoZHRpdGxlKTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM1Miw2ICs0NDgsMjggQEAgRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGRvY3VtZW50IE5BVFVSQUwgSk9JTiBjYXRl Z29yeSBXSEVSRSBmX2xlYWsoZHQKICAgICAgICAgICAgICAgIEZpbHRlcjogKChjaWQgPD4gNDQp IEFORCAoY2lkIDw+IDQ0KSBBTkQgKGNpZCA8IDUwKSBBTkQgKGRsZXZlbCA8PSAoSW5pdFBsYW4g MSkuY29sMSkgQU5EIGZfbGVhayhkdGl0bGUpKQogKDkgcm93cykKIAorRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChhY2NfY2F0CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTUFUQ0ggKHUgOiB1YWNjb3VudCktW2QgOiBkb2N1bWVudCBXSEVSRSBmX2xl YWsoZC5kdGl0bGUpXS0+KGMgOiBjYXRlZ29yeSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDT0xVTU5TICh1LnBndXNlciwgZC5kaWQsIGQuZGxldmVsLCBkLmR0aXRsZSwgYy5jaWQsIGMu Y25hbWUpKSBPUkRFUiBCWSBkaWQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgU29ydAorICAgU29ydCBLZXk6IGRvY3VtZW50LmRpZAorICAg SW5pdFBsYW4gMQorICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB1YWNjb3VudF9wa2V5IG9uIHVh Y2NvdW50IHVhY2NvdW50XzEKKyAgICAgICAgICAgSW5kZXggQ29uZDogKHBndXNlciA9IENVUlJF TlRfVVNFUikKKyAgIC0+ICBIYXNoIEpvaW4KKyAgICAgICAgIEhhc2ggQ29uZDogKGNhdGVnb3J5 LmNpZCA9IGRvY3VtZW50LmNpZCkKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBjYXRlZ29yeQor ICAgICAgICAgLT4gIEhhc2gKKyAgICAgICAgICAgICAgIC0+ICBIYXNoIEpvaW4KKyAgICAgICAg ICAgICAgICAgICAgIEhhc2ggQ29uZDogKHVhY2NvdW50LnBndXNlciA9IGRvY3VtZW50LmRhdXRo b3IpCisgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gdWFjY291bnQKKyAgICAg ICAgICAgICAgICAgICAgIC0+ICBIYXNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAg U2VxIFNjYW4gb24gZG9jdW1lbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZp bHRlcjogKChjaWQgPD4gNDQpIEFORCAoY2lkIDw+IDQ0KSBBTkQgKGNpZCA8IDUwKSBBTkQgKGRs ZXZlbCA8PSAoSW5pdFBsYW4gMSkuY29sMSkgQU5EIGZfbGVhayhkdGl0bGUpKQorKDE1IHJvd3Mp CisKIC0tIDQ0IHdvdWxkIHRlY2huaWNhbGx5IGZhaWwgZm9yIGJvdGggcDJyIGFuZCBwMXIsIGJ1 dCB3ZSBzaG91bGQgZ2V0IGFuIGVycm9yCiAtLSBiYWNrIGZyb20gcDFyIGZvciB0aGlzIGJlY2F1 c2UgaXQgc29ydHMgZmlyc3QKIElOU0VSVCBJTlRPIGRvY3VtZW50IFZBTFVFUyAoMTAwLCA0NCwg MSwgJ3JlZ3Jlc3NfcmxzX2RhdmUnLCAndGVzdGluZyBzb3J0aW5nIG9mIHBvbGljaWVzJyk7IC0t IGZhaWwKQEAgLTM5OCw2ICs1MTYsMjMgQEAgTk9USUNFOiAgZl9sZWFrID0+IG15IHNlY29uZCBt YW5nYQogICA0NCB8ICAgNSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2JvYiB8IG15IHNlY29uZCBt YW5nYSAgICB8IG1hbmdhCiAoNSByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChh Y2NfY2F0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFUQ0ggKHUgOiB1YWNjb3VudCkt W2QgOiBkb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpXS0+KGMgOiBjYXRlZ29yeSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBDT0xVTU5TICh1LnBndXNlciwgZC5kaWQsIGQuZGxl dmVsLCBkLmR0aXRsZSwgYy5jaWQsIGMuY25hbWUpKSBPUkRFUiBCWSBkaWQ7CitOT1RJQ0U6ICBm X2xlYWsgPT4gbXkgZmlyc3Qgbm92ZWwKK05PVElDRTogIGZfbGVhayA9PiBteSBzZWNvbmQgbm92 ZWwKK05PVElDRTogIGZfbGVhayA9PiBteSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVh ayA9PiBteSBmaXJzdCBtYW5nYQorTk9USUNFOiAgZl9sZWFrID0+IG15IHNlY29uZCBtYW5nYQor ICAgICBwZ3VzZXIgICAgICB8IGRpZCB8IGRsZXZlbCB8ICAgICAgIGR0aXRsZSAgICAgICB8IGNp ZCB8ICAgICAgY25hbWUgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19ybHNf Ym9iIHwgICAxIHwgICAgICAxIHwgbXkgZmlyc3Qgbm92ZWwgICAgIHwgIDExIHwgbm92ZWwKKyBy ZWdyZXNzX3Jsc19ib2IgfCAgIDIgfCAgICAgIDIgfCBteSBzZWNvbmQgbm92ZWwgICAgfCAgMTEg fCBub3ZlbAorIHJlZ3Jlc3NfcmxzX2JvYiB8ICAgMyB8ICAgICAgMiB8IG15IHNjaWVuY2UgZmlj dGlvbiB8ICAyMiB8IHNjaWVuY2UgZmljdGlvbgorIHJlZ3Jlc3NfcmxzX2JvYiB8ICAgNCB8ICAg ICAgMSB8IG15IGZpcnN0IG1hbmdhICAgICB8ICA0NCB8IG1hbmdhCisgcmVncmVzc19ybHNfYm9i IHwgICA1IHwgICAgICAyIHwgbXkgc2Vjb25kIG1hbmdhICAgIHwgIDQ0IHwgbWFuZ2EKKyg1IHJv d3MpCisKIC0tIHZpZXdwb2ludCBmcm9tIHJsc19yZWdyZXNfY2Fyb2wgYWdhaW4KIFNFVCBTRVNT SU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIGRvY3Vt ZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZIGRpZDsKQEAgLTQyMiw2ICs1NTcsMTkg QEAgTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IG1hbmdhCiAgIDQ0IHwgICA4IHwgICAgICAxIHwg cmVncmVzc19ybHNfY2Fyb2wgfCBncmVhdCBtYW5nYSAgICAgICAgICAgfCBtYW5nYQogKDMgcm93 cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoYWNjX2NhdAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE1BVENIICh1IDogdWFjY291bnQpLVtkIDogZG9jdW1lbnQgV0hFUkUgZl9s ZWFrKGQuZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ09MVU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBkLmRsZXZlbCwgZC5kdGl0bGUsIGMuY2lkLCBj LmNuYW1lKSkgT1JERVIgQlkgZGlkOworTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IHNjaWVuY2Ug ZmljdGlvbgorTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IHRlY2hub2xvZ3kgYm9vaworTk9USUNF OiAgZl9sZWFrID0+IGdyZWF0IG1hbmdhCisgICAgICBwZ3VzZXIgICAgICAgfCBkaWQgfCBkbGV2 ZWwgfCAgICAgICAgZHRpdGxlICAgICAgICAgfCBjaWQgfCAgICAgIGNuYW1lICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19ybHNfY2Fyb2wgfCAgIDYgfCAgICAgIDEg fCBncmVhdCBzY2llbmNlIGZpY3Rpb24gfCAgMjIgfCBzY2llbmNlIGZpY3Rpb24KKyByZWdyZXNz X3Jsc19jYXJvbCB8ICAgNyB8ICAgICAgMiB8IGdyZWF0IHRlY2hub2xvZ3kgYm9vayB8ICAzMyB8 IHRlY2hub2xvZ3kKKyByZWdyZXNzX3Jsc19jYXJvbCB8ICAgOCB8ICAgICAgMSB8IGdyZWF0IG1h bmdhICAgICAgICAgICB8ICA0NCB8IG1hbmdhCisoMyByb3dzKQorCiBFWFBMQUlOIChDT1NUUyBP RkYpIFNFTEVDVCAqIEZST00gZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSk7CiAgICAgICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAt NDM5LDYgKzU4NywyMyBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZG9jdW1l bnQgTkFUVVJBTCBKT0lOIGNhdGVnb3J5IFdIRVJFIGZfbGVhayhkdAogICAgICAgICAgSW5kZXgg Q29uZDogKGNpZCA9IGRvY3VtZW50LmNpZCkKICg1IHJvd3MpCiAKK0VYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoYWNjX2NhdAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE1BVENIICh1IDogdWFjY291bnQpLVtkIDogZG9jdW1lbnQgV0hFUkUgZl9sZWFr KGQuZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg Q09MVU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBkLmRsZXZlbCwgZC5kdGl0bGUsIGMuY2lkLCBjLmNu YW1lKSkgT1JERVIgQlkgZGlkOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVS WSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBTb3J0CisgICBTb3J0IEtleTogZG9jdW1lbnQuZGlkCisgICAtPiAgTmVzdGVkIExvb3AK KyAgICAgICAgIC0+ICBOZXN0ZWQgTG9vcAorICAgICAgICAgICAgICAgLT4gIEluZGV4IE9ubHkg U2NhbiB1c2luZyB1YWNjb3VudF9wa2V5IG9uIHVhY2NvdW50CisgICAgICAgICAgICAgICAgICAg ICBJbmRleCBDb25kOiAocGd1c2VyID0gQ1VSUkVOVF9VU0VSKQorICAgICAgICAgICAgICAgLT4g IFNlcSBTY2FuIG9uIGRvY3VtZW50CisgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoZGF1 dGhvciA9IENVUlJFTlRfVVNFUikgQU5EIGZfbGVhayhkdGl0bGUpKQorICAgICAgICAgLT4gIElu ZGV4IFNjYW4gdXNpbmcgY2F0ZWdvcnlfcGtleSBvbiBjYXRlZ29yeQorICAgICAgICAgICAgICAg SW5kZXggQ29uZDogKGNpZCA9IGRvY3VtZW50LmNpZCkKKygxMCByb3dzKQorCiAtLSBpbnRlcmFj dGlvbiBvZiBGSy9QSyBjb25zdHJhaW50cwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdy ZXNzX3Jsc19hbGljZTsKIENSRUFURSBQT0xJQ1kgcDIgT04gY2F0ZWdvcnkKQEAgLTUxNSw2ICs2 ODAsMzUgQEAgU0VMRUNUICogRlJPTSBjYXRlZ29yeTsKICAgNDQgfCBtYW5nYQogKDQgcm93cykK IAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoYWNjX2NhdAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE1BVENIICh1IDogdWFjY291bnQpLVtkIDogZG9jdW1lbnQgV0hFUkUgZl9sZWFr KGQuZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg Q09MVU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBkLmRsZXZlbCwgZC5kdGl0bGUsIGMuY2lkLCBjLmNu YW1lKSkgT1JERVIgQlkgZGlkOworTk9USUNFOiAgZl9sZWFrID0+IG15IGZpcnN0IG5vdmVsCitO T1RJQ0U6ICBmX2xlYWsgPT4gbXkgc2Vjb25kIG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkg c2NpZW5jZSBmaWN0aW9uCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgZmlyc3QgbWFuZ2EKK05PVElD RTogIGZfbGVhayA9PiBteSBzZWNvbmQgbWFuZ2EKK05PVElDRTogIGZfbGVhayA9PiBncmVhdCBz Y2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBncmVhdCB0ZWNobm9sb2d5IGJvb2sK K05PVElDRTogIGZfbGVhayA9PiBncmVhdCBtYW5nYQorTk9USUNFOiAgZl9sZWFrID0+IGF3ZXNv bWUgc2NpZW5jZSBmaWN0aW9uCitOT1RJQ0U6ICBmX2xlYWsgPT4gYXdlc29tZSB0ZWNobm9sb2d5 IGJvb2sKK05PVElDRTogIGZfbGVhayA9PiBob2dlCisgICAgICBwZ3VzZXIgICAgICAgfCBkaWQg fCBkbGV2ZWwgfCAgICAgICAgIGR0aXRsZSAgICAgICAgICB8IGNpZCB8ICAgICAgY25hbWUgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLSstLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICAx IHwgICAgICAxIHwgbXkgZmlyc3Qgbm92ZWwgICAgICAgICAgfCAgMTEgfCBub3ZlbAorIHJlZ3Jl c3NfcmxzX2JvYiAgIHwgICAyIHwgICAgICAyIHwgbXkgc2Vjb25kIG5vdmVsICAgICAgICAgfCAg MTEgfCBub3ZlbAorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICAzIHwgICAgICAyIHwgbXkgc2NpZW5j ZSBmaWN0aW9uICAgICAgfCAgMjIgfCBzY2llbmNlIGZpY3Rpb24KKyByZWdyZXNzX3Jsc19ib2Ig ICB8ICAgNCB8ICAgICAgMSB8IG15IGZpcnN0IG1hbmdhICAgICAgICAgIHwgIDQ0IHwgbWFuZ2EK KyByZWdyZXNzX3Jsc19ib2IgICB8ICAgNSB8ICAgICAgMiB8IG15IHNlY29uZCBtYW5nYSAgICAg ICAgIHwgIDQ0IHwgbWFuZ2EKKyByZWdyZXNzX3Jsc19jYXJvbCB8ICAgNiB8ICAgICAgMSB8IGdy ZWF0IHNjaWVuY2UgZmljdGlvbiAgIHwgIDIyIHwgc2NpZW5jZSBmaWN0aW9uCisgcmVncmVzc19y bHNfY2Fyb2wgfCAgIDcgfCAgICAgIDIgfCBncmVhdCB0ZWNobm9sb2d5IGJvb2sgICB8ICAzMyB8 IHRlY2hub2xvZ3kKKyByZWdyZXNzX3Jsc19jYXJvbCB8ICAgOCB8ICAgICAgMSB8IGdyZWF0IG1h bmdhICAgICAgICAgICAgIHwgIDQ0IHwgbWFuZ2EKKyByZWdyZXNzX3Jsc19kYXZlICB8ICAgOSB8 ICAgICAgMSB8IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9uIHwgIDIyIHwgc2NpZW5jZSBmaWN0aW9u CisgcmVncmVzc19ybHNfZGF2ZSAgfCAgMTAgfCAgICAgIDIgfCBhd2Vzb21lIHRlY2hub2xvZ3kg Ym9vayB8ICAzMyB8IHRlY2hub2xvZ3kKKyByZWdyZXNzX3Jsc19jYXJvbCB8ICAxMSB8ICAgICAg MSB8IGhvZ2UgICAgICAgICAgICAgICAgICAgIHwgIDMzIHwgdGVjaG5vbG9neQorKDExIHJvd3Mp CisKIC0tIGRhdGFiYXNlIHN1cGVydXNlciBkb2VzIGJ5cGFzcyBSTFMgcG9saWN5IHdoZW4gZGlz YWJsZWQKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKIFNFVCByb3dfc2VjdXJpdHkgVE8g T0ZGOwpAQCAtNTQzLDYgKzczNywzNSBAQCBTRUxFQ1QgKiBGUk9NIGNhdGVnb3J5OwogICA0NCB8 IG1hbmdhCiAoNCByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChhY2NfY2F0Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFUQ0ggKHUgOiB1YWNjb3VudCktW2QgOiBkb2N1 bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpXS0+KGMgOiBjYXRlZ29yeSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBDT0xVTU5TICh1LnBndXNlciwgZC5kaWQsIGQuZGxldmVsLCBkLmR0 aXRsZSwgYy5jaWQsIGMuY25hbWUpKSBPUkRFUiBCWSBkaWQ7CitOT1RJQ0U6ICBmX2xlYWsgPT4g bXkgZmlyc3Qgbm92ZWwKK05PVElDRTogIGZfbGVhayA9PiBteSBzZWNvbmQgbm92ZWwKK05PVElD RTogIGZfbGVhayA9PiBteSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBteSBm aXJzdCBtYW5nYQorTk9USUNFOiAgZl9sZWFrID0+IG15IHNlY29uZCBtYW5nYQorTk9USUNFOiAg Zl9sZWFrID0+IGdyZWF0IHNjaWVuY2UgZmljdGlvbgorTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0 IHRlY2hub2xvZ3kgYm9vaworTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IG1hbmdhCitOT1RJQ0U6 ICBmX2xlYWsgPT4gYXdlc29tZSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBh d2Vzb21lIHRlY2hub2xvZ3kgYm9vaworTk9USUNFOiAgZl9sZWFrID0+IGhvZ2UKKyAgICAgIHBn dXNlciAgICAgICB8IGRpZCB8IGRsZXZlbCB8ICAgICAgICAgZHRpdGxlICAgICAgICAgIHwgY2lk IHwgICAgICBjbmFtZSAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVz c19ybHNfYm9iICAgfCAgIDEgfCAgICAgIDEgfCBteSBmaXJzdCBub3ZlbCAgICAgICAgICB8ICAx MSB8IG5vdmVsCisgcmVncmVzc19ybHNfYm9iICAgfCAgIDIgfCAgICAgIDIgfCBteSBzZWNvbmQg bm92ZWwgICAgICAgICB8ICAxMSB8IG5vdmVsCisgcmVncmVzc19ybHNfYm9iICAgfCAgIDMgfCAg ICAgIDIgfCBteSBzY2llbmNlIGZpY3Rpb24gICAgICB8ICAyMiB8IHNjaWVuY2UgZmljdGlvbgor IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICA0IHwgICAgICAxIHwgbXkgZmlyc3QgbWFuZ2EgICAgICAg ICAgfCAgNDQgfCBtYW5nYQorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICA1IHwgICAgICAyIHwgbXkg c2Vjb25kIG1hbmdhICAgICAgICAgfCAgNDQgfCBtYW5nYQorIHJlZ3Jlc3NfcmxzX2Nhcm9sIHwg ICA2IHwgICAgICAxIHwgZ3JlYXQgc2NpZW5jZSBmaWN0aW9uICAgfCAgMjIgfCBzY2llbmNlIGZp Y3Rpb24KKyByZWdyZXNzX3Jsc19jYXJvbCB8ICAgNyB8ICAgICAgMiB8IGdyZWF0IHRlY2hub2xv Z3kgYm9vayAgIHwgIDMzIHwgdGVjaG5vbG9neQorIHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgICA4IHwg ICAgICAxIHwgZ3JlYXQgbWFuZ2EgICAgICAgICAgICAgfCAgNDQgfCBtYW5nYQorIHJlZ3Jlc3Nf cmxzX2RhdmUgIHwgICA5IHwgICAgICAxIHwgYXdlc29tZSBzY2llbmNlIGZpY3Rpb24gfCAgMjIg fCBzY2llbmNlIGZpY3Rpb24KKyByZWdyZXNzX3Jsc19kYXZlICB8ICAxMCB8ICAgICAgMiB8IGF3 ZXNvbWUgdGVjaG5vbG9neSBib29rIHwgIDMzIHwgdGVjaG5vbG9neQorIHJlZ3Jlc3NfcmxzX2Nh cm9sIHwgIDExIHwgICAgICAxIHwgaG9nZSAgICAgICAgICAgICAgICAgICAgfCAgMzMgfCB0ZWNo bm9sb2d5CisoMTEgcm93cykKKwogLS0gZGF0YWJhc2Ugbm9uLXN1cGVydXNlciB3aXRoIGJ5cGFz cyBwcml2aWxlZ2UgY2FuIGJ5cGFzcyBSTFMgcG9saWN5IHdoZW4gZGlzYWJsZWQKIFNFVCBTRVNT SU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfZXhlbXB0X3VzZXI7CiBTRVQgcm93X3NlY3Vy aXR5IFRPIE9GRjsKQEAgLTU3MSw2ICs3OTQsMzUgQEAgU0VMRUNUICogRlJPTSBjYXRlZ29yeTsK ICAgNDQgfCBtYW5nYQogKDQgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoYWNj X2NhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BVENIICh1IDogdWFjY291bnQpLVtk IDogZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBkLmRsZXZl bCwgZC5kdGl0bGUsIGMuY2lkLCBjLmNuYW1lKSkgT1JERVIgQlkgZGlkOworTk9USUNFOiAgZl9s ZWFrID0+IG15IGZpcnN0IG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgc2Vjb25kIG5vdmVs CitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgc2NpZW5jZSBmaWN0aW9uCitOT1RJQ0U6ICBmX2xlYWsg PT4gbXkgZmlyc3QgbWFuZ2EKK05PVElDRTogIGZfbGVhayA9PiBteSBzZWNvbmQgbWFuZ2EKK05P VElDRTogIGZfbGVhayA9PiBncmVhdCBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9 PiBncmVhdCB0ZWNobm9sb2d5IGJvb2sKK05PVElDRTogIGZfbGVhayA9PiBncmVhdCBtYW5nYQor Tk9USUNFOiAgZl9sZWFrID0+IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9uCitOT1RJQ0U6ICBmX2xl YWsgPT4gYXdlc29tZSB0ZWNobm9sb2d5IGJvb2sKK05PVElDRTogIGZfbGVhayA9PiBob2dlCisg ICAgICBwZ3VzZXIgICAgICAgfCBkaWQgfCBkbGV2ZWwgfCAgICAgICAgIGR0aXRsZSAgICAgICAg ICB8IGNpZCB8ICAgICAgY25hbWUgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLSstLS0tLS0tLS0tLS0tLS0tLQor IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICAxIHwgICAgICAxIHwgbXkgZmlyc3Qgbm92ZWwgICAgICAg ICAgfCAgMTEgfCBub3ZlbAorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICAyIHwgICAgICAyIHwgbXkg c2Vjb25kIG5vdmVsICAgICAgICAgfCAgMTEgfCBub3ZlbAorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwg ICAzIHwgICAgICAyIHwgbXkgc2NpZW5jZSBmaWN0aW9uICAgICAgfCAgMjIgfCBzY2llbmNlIGZp Y3Rpb24KKyByZWdyZXNzX3Jsc19ib2IgICB8ICAgNCB8ICAgICAgMSB8IG15IGZpcnN0IG1hbmdh ICAgICAgICAgIHwgIDQ0IHwgbWFuZ2EKKyByZWdyZXNzX3Jsc19ib2IgICB8ICAgNSB8ICAgICAg MiB8IG15IHNlY29uZCBtYW5nYSAgICAgICAgIHwgIDQ0IHwgbWFuZ2EKKyByZWdyZXNzX3Jsc19j YXJvbCB8ICAgNiB8ICAgICAgMSB8IGdyZWF0IHNjaWVuY2UgZmljdGlvbiAgIHwgIDIyIHwgc2Np ZW5jZSBmaWN0aW9uCisgcmVncmVzc19ybHNfY2Fyb2wgfCAgIDcgfCAgICAgIDIgfCBncmVhdCB0 ZWNobm9sb2d5IGJvb2sgICB8ICAzMyB8IHRlY2hub2xvZ3kKKyByZWdyZXNzX3Jsc19jYXJvbCB8 ICAgOCB8ICAgICAgMSB8IGdyZWF0IG1hbmdhICAgICAgICAgICAgIHwgIDQ0IHwgbWFuZ2EKKyBy ZWdyZXNzX3Jsc19kYXZlICB8ICAgOSB8ICAgICAgMSB8IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9u IHwgIDIyIHwgc2NpZW5jZSBmaWN0aW9uCisgcmVncmVzc19ybHNfZGF2ZSAgfCAgMTAgfCAgICAg IDIgfCBhd2Vzb21lIHRlY2hub2xvZ3kgYm9vayB8ICAzMyB8IHRlY2hub2xvZ3kKKyByZWdyZXNz X3Jsc19jYXJvbCB8ICAxMSB8ICAgICAgMSB8IGhvZ2UgICAgICAgICAgICAgICAgICAgIHwgIDMz IHwgdGVjaG5vbG9neQorKDExIHJvd3MpCisKIC0tIFJMUyBwb2xpY3kgZG9lcyBub3QgYXBwbHkg dG8gdGFibGUgb3duZXIgd2hlbiBSTFMgZW5hYmxlZC4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJ T04gcmVncmVzc19ybHNfYWxpY2U7CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9OOwpAQCAtNTk5LDYg Kzg1MSwzNSBAQCBTRUxFQ1QgKiBGUk9NIGNhdGVnb3J5OwogICA0NCB8IG1hbmdhCiAoNCByb3dz KQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChhY2NfY2F0CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTUFUQ0ggKHUgOiB1YWNjb3VudCktW2QgOiBkb2N1bWVudCBXSEVSRSBmX2xl YWsoZC5kdGl0bGUpXS0+KGMgOiBjYXRlZ29yeSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDT0xVTU5TICh1LnBndXNlciwgZC5kaWQsIGQuZGxldmVsLCBkLmR0aXRsZSwgYy5jaWQsIGMu Y25hbWUpKSBPUkRFUiBCWSBkaWQ7CitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgZmlyc3Qgbm92ZWwK K05PVElDRTogIGZfbGVhayA9PiBteSBzZWNvbmQgbm92ZWwKK05PVElDRTogIGZfbGVhayA9PiBt eSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBteSBmaXJzdCBtYW5nYQorTk9U SUNFOiAgZl9sZWFrID0+IG15IHNlY29uZCBtYW5nYQorTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0 IHNjaWVuY2UgZmljdGlvbgorTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IHRlY2hub2xvZ3kgYm9v aworTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IG1hbmdhCitOT1RJQ0U6ICBmX2xlYWsgPT4gYXdl c29tZSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBhd2Vzb21lIHRlY2hub2xv Z3kgYm9vaworTk9USUNFOiAgZl9sZWFrID0+IGhvZ2UKKyAgICAgIHBndXNlciAgICAgICB8IGRp ZCB8IGRsZXZlbCB8ICAgICAgICAgZHRpdGxlICAgICAgICAgIHwgY2lkIHwgICAgICBjbmFtZSAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19ybHNfYm9iICAgfCAg IDEgfCAgICAgIDEgfCBteSBmaXJzdCBub3ZlbCAgICAgICAgICB8ICAxMSB8IG5vdmVsCisgcmVn cmVzc19ybHNfYm9iICAgfCAgIDIgfCAgICAgIDIgfCBteSBzZWNvbmQgbm92ZWwgICAgICAgICB8 ICAxMSB8IG5vdmVsCisgcmVncmVzc19ybHNfYm9iICAgfCAgIDMgfCAgICAgIDIgfCBteSBzY2ll bmNlIGZpY3Rpb24gICAgICB8ICAyMiB8IHNjaWVuY2UgZmljdGlvbgorIHJlZ3Jlc3NfcmxzX2Jv YiAgIHwgICA0IHwgICAgICAxIHwgbXkgZmlyc3QgbWFuZ2EgICAgICAgICAgfCAgNDQgfCBtYW5n YQorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICA1IHwgICAgICAyIHwgbXkgc2Vjb25kIG1hbmdhICAg ICAgICAgfCAgNDQgfCBtYW5nYQorIHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgICA2IHwgICAgICAxIHwg Z3JlYXQgc2NpZW5jZSBmaWN0aW9uICAgfCAgMjIgfCBzY2llbmNlIGZpY3Rpb24KKyByZWdyZXNz X3Jsc19jYXJvbCB8ICAgNyB8ICAgICAgMiB8IGdyZWF0IHRlY2hub2xvZ3kgYm9vayAgIHwgIDMz IHwgdGVjaG5vbG9neQorIHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgICA4IHwgICAgICAxIHwgZ3JlYXQg bWFuZ2EgICAgICAgICAgICAgfCAgNDQgfCBtYW5nYQorIHJlZ3Jlc3NfcmxzX2RhdmUgIHwgICA5 IHwgICAgICAxIHwgYXdlc29tZSBzY2llbmNlIGZpY3Rpb24gfCAgMjIgfCBzY2llbmNlIGZpY3Rp b24KKyByZWdyZXNzX3Jsc19kYXZlICB8ICAxMCB8ICAgICAgMiB8IGF3ZXNvbWUgdGVjaG5vbG9n eSBib29rIHwgIDMzIHwgdGVjaG5vbG9neQorIHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgIDExIHwgICAg ICAxIHwgaG9nZSAgICAgICAgICAgICAgICAgICAgfCAgMzMgfCB0ZWNobm9sb2d5CisoMTEgcm93 cykKKwogLS0gUkxTIHBvbGljeSBkb2VzIG5vdCBhcHBseSB0byB0YWJsZSBvd25lciB3aGVuIFJM UyBkaXNhYmxlZC4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7 CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9GRjsKQEAgLTYyNyw2ICs5MDgsMzUgQEAgU0VMRUNUICog RlJPTSBjYXRlZ29yeTsKICAgNDQgfCBtYW5nYQogKDQgcm93cykKIAorU0VMRUNUICogRlJPTSBH UkFQSF9UQUJMRSAoYWNjX2NhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BVENIICh1 IDogdWFjY291bnQpLVtkIDogZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKV0tPihjIDog Y2F0ZWdvcnkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyAodS5wZ3VzZXIs IGQuZGlkLCBkLmRsZXZlbCwgZC5kdGl0bGUsIGMuY2lkLCBjLmNuYW1lKSkgT1JERVIgQlkgZGlk OworTk9USUNFOiAgZl9sZWFrID0+IG15IGZpcnN0IG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4g bXkgc2Vjb25kIG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgc2NpZW5jZSBmaWN0aW9uCitO T1RJQ0U6ICBmX2xlYWsgPT4gbXkgZmlyc3QgbWFuZ2EKK05PVElDRTogIGZfbGVhayA9PiBteSBz ZWNvbmQgbWFuZ2EKK05PVElDRTogIGZfbGVhayA9PiBncmVhdCBzY2llbmNlIGZpY3Rpb24KK05P VElDRTogIGZfbGVhayA9PiBncmVhdCB0ZWNobm9sb2d5IGJvb2sKK05PVElDRTogIGZfbGVhayA9 PiBncmVhdCBtYW5nYQorTk9USUNFOiAgZl9sZWFrID0+IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9u CitOT1RJQ0U6ICBmX2xlYWsgPT4gYXdlc29tZSB0ZWNobm9sb2d5IGJvb2sKK05PVElDRTogIGZf bGVhayA9PiBob2dlCisgICAgICBwZ3VzZXIgICAgICAgfCBkaWQgfCBkbGV2ZWwgfCAgICAgICAg IGR0aXRsZSAgICAgICAgICB8IGNpZCB8ICAgICAgY25hbWUgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLSstLS0t LS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICAxIHwgICAgICAxIHwgbXkgZmly c3Qgbm92ZWwgICAgICAgICAgfCAgMTEgfCBub3ZlbAorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICAy IHwgICAgICAyIHwgbXkgc2Vjb25kIG5vdmVsICAgICAgICAgfCAgMTEgfCBub3ZlbAorIHJlZ3Jl c3NfcmxzX2JvYiAgIHwgICAzIHwgICAgICAyIHwgbXkgc2NpZW5jZSBmaWN0aW9uICAgICAgfCAg MjIgfCBzY2llbmNlIGZpY3Rpb24KKyByZWdyZXNzX3Jsc19ib2IgICB8ICAgNCB8ICAgICAgMSB8 IG15IGZpcnN0IG1hbmdhICAgICAgICAgIHwgIDQ0IHwgbWFuZ2EKKyByZWdyZXNzX3Jsc19ib2Ig ICB8ICAgNSB8ICAgICAgMiB8IG15IHNlY29uZCBtYW5nYSAgICAgICAgIHwgIDQ0IHwgbWFuZ2EK KyByZWdyZXNzX3Jsc19jYXJvbCB8ICAgNiB8ICAgICAgMSB8IGdyZWF0IHNjaWVuY2UgZmljdGlv biAgIHwgIDIyIHwgc2NpZW5jZSBmaWN0aW9uCisgcmVncmVzc19ybHNfY2Fyb2wgfCAgIDcgfCAg ICAgIDIgfCBncmVhdCB0ZWNobm9sb2d5IGJvb2sgICB8ICAzMyB8IHRlY2hub2xvZ3kKKyByZWdy ZXNzX3Jsc19jYXJvbCB8ICAgOCB8ICAgICAgMSB8IGdyZWF0IG1hbmdhICAgICAgICAgICAgIHwg IDQ0IHwgbWFuZ2EKKyByZWdyZXNzX3Jsc19kYXZlICB8ICAgOSB8ICAgICAgMSB8IGF3ZXNvbWUg c2NpZW5jZSBmaWN0aW9uIHwgIDIyIHwgc2NpZW5jZSBmaWN0aW9uCisgcmVncmVzc19ybHNfZGF2 ZSAgfCAgMTAgfCAgICAgIDIgfCBhd2Vzb21lIHRlY2hub2xvZ3kgYm9vayB8ICAzMyB8IHRlY2hu b2xvZ3kKKyByZWdyZXNzX3Jsc19jYXJvbCB8ICAxMSB8ICAgICAgMSB8IGhvZ2UgICAgICAgICAg ICAgICAgICAgIHwgIDMzIHwgdGVjaG5vbG9neQorKDExIHJvd3MpCisKIC0tCiAtLSBUYWJsZSBp bmhlcml0YW5jZSBhbmQgUkxTIHBvbGljeQogLS0KQEAgLTY0Myw2ICs5NTMsMTIgQEAgQ1JFQVRF IFRBQkxFIHQzIChpZCBpbnQgbm90IG51bGwgcHJpbWFyeSBrZXksIGMgdGV4dCwgYiB0ZXh0LCBh IGludCk7CiBBTFRFUiBUQUJMRSB0MyBJTkhFUklUIHQxOwogR1JBTlQgQUxMIE9OIHQzIFRPIHB1 YmxpYzsKIENPUFkgdDMoaWQsIGEsYixjKSBGUk9NIHN0ZGluOworQ1JFQVRFIFBST1BFUlRZIEdS QVBIIGl0cGcKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgdDEgS0VZKGlkKSBERUZBVUxU IExBQkVMIFBST1BFUlRJRVMgKGlkLCBhLCBiLCB0YWJsZW9pZDo6cmVnY2xhc3MgYXMgdGFibGVv aWQpLAorICAgICAgICB0MiBLRVkoaWQpIERFRkFVTFQgTEFCRUwgUFJPUEVSVElFUyAoaWQsIGEs IGIsIHRhYmxlb2lkOjpyZWdjbGFzcyBhcyB0YWJsZW9pZCksCisgICAgICAgIHQzIEtFWShpZCkg REVGQVVMVCBMQUJFTCBQUk9QRVJUSUVTIChpZCwgYSwgYiwgdGFibGVvaWQ6OnJlZ2NsYXNzIGFz IHRhYmxlb2lkKSk7CitHUkFOVCBBTEwgT04gaXRwZyBUTyBwdWJsaWM7CiBDUkVBVEUgUE9MSUNZ IHAxIE9OIHQxIEZPUiBBTEwgVE8gUFVCTElDIFVTSU5HIChhICUgMiA9IDApOyAtLSBiZSBldmVu IG51bWJlcgogQ1JFQVRFIFBPTElDWSBwMiBPTiB0MiBGT1IgQUxMIFRPIFBVQkxJQyBVU0lORyAo YSAlIDIgPSAxKTsgLS0gYmUgb2RkIG51bWJlcgogQUxURVIgVEFCTEUgdDEgRU5BQkxFIFJPVyBM RVZFTCBTRUNVUklUWTsKQEAgLTY3MCw2ICs5ODYsMjggQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBT RUxFQ1QgKiBGUk9NIHQxOwogICAgICAgICAgRmlsdGVyOiAoKGEgJSAyKSA9IDApCiAoNyByb3dz KQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0OiB0MSkgQ09MVU1O UyAodC5pZCwgdC5hLCB0LmIpKTsKKyBpZCAgfCBhIHwgIGIgIAorLS0tLS0rLS0tKy0tLS0tCisg MTAyIHwgMiB8IGJiYgorIDEwNCB8IDQgfCBkYWQKKyAyMDIgfCAyIHwgYmNkCisgMjA0IHwgNCB8 IGRlZgorIDMwMiB8IDIgfCB5eXkKKyg1IHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VM RUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEpIENPTFVNTlMgKHQuaWQs IHQuYSwgdC5iKSk7CisgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQXBwZW5kCisgICAtPiAgU2VxIFNjYW4gb24gdDEgdDFf MQorICAgICAgICAgRmlsdGVyOiAoKGEgJSAyKSA9IDApCisgICAtPiAgU2VxIFNjYW4gb24gdDIg dDFfMgorICAgICAgICAgRmlsdGVyOiAoKGEgJSAyKSA9IDApCisgICAtPiAgU2VxIFNjYW4gb24g dDMgdDFfMworICAgICAgICAgRmlsdGVyOiAoKGEgJSAyKSA9IDApCisoNyByb3dzKQorCiBTRUxF Q1QgKiBGUk9NIHQxIFdIRVJFIGZfbGVhayhiKTsKIE5PVElDRTogIGZfbGVhayA9PiBiYmIKIE5P VElDRTogIGZfbGVhayA9PiBkYWQKQEAgLTY5Nyw2ICsxMDM1LDMzIEBAIEVYUExBSU4gKENPU1RT IE9GRikgU0VMRUNUICogRlJPTSB0MSBXSEVSRSBmX2xlYWsoYik7CiAgICAgICAgICBGaWx0ZXI6 ICgoKGEgJSAyKSA9IDApIEFORCBmX2xlYWsoYikpCiAoNyByb3dzKQogCitTRUxFQ1QgKiBGUk9N IEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0OiB0MSBXSEVSRSBmX2xlYWsodC5iKSkgQ09MVU1O UyAodC5pZCwgdC5hLCB0LmIpKTsKK05PVElDRTogIGZfbGVhayA9PiBiYmIKK05PVElDRTogIGZf bGVhayA9PiBkYWQKK05PVElDRTogIGZfbGVhayA9PiBiY2QKK05PVElDRTogIGZfbGVhayA9PiBk ZWYKK05PVElDRTogIGZfbGVhayA9PiB5eXkKKyBpZCAgfCBhIHwgIGIgIAorLS0tLS0rLS0tKy0t LS0tCisgMTAyIHwgMiB8IGJiYgorIDEwNCB8IDQgfCBkYWQKKyAyMDIgfCAyIHwgYmNkCisgMjA0 IHwgNCB8IGRlZgorIDMwMiB8IDIgfCB5eXkKKyg1IHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEgV0hFUkUgZl9s ZWFrKHQuYikpIENPTFVNTlMgKHQuaWQsIHQuYSwgdC5iKSk7CisgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBcHBlbmQKKyAgIC0+ICBTZXEgU2NhbiBvbiB0MSB0MV8x CisgICAgICAgICBGaWx0ZXI6ICgoKGEgJSAyKSA9IDApIEFORCBmX2xlYWsoYikpCisgICAtPiAg U2VxIFNjYW4gb24gdDIgdDFfMgorICAgICAgICAgRmlsdGVyOiAoKChhICUgMikgPSAwKSBBTkQg Zl9sZWFrKGIpKQorICAgLT4gIFNlcSBTY2FuIG9uIHQzIHQxXzMKKyAgICAgICAgIEZpbHRlcjog KCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKKyg3IHJvd3MpCisKIC0tIHJlZmVyZW5jZSB0 byBzeXN0ZW0gY29sdW1uCiBTRUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gdDE7CiAg dGFibGVvaWQgfCBpZCAgfCBhIHwgIGIgIApAQCAtODE1LDYgKzExODAsMjYgQEAgRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgYSwgYiwgdGFibGVvaWQ6OnJlZ2NsYXNzIEZST00gdDIgVU5JT04g QUxMIFNFTEVDVCBhLAogICAgLT4gIFNlcSBTY2FuIG9uIHQzCiAoNCByb3dzKQogCistLSBsYWJl bCBkaXNqdW5jdGlvbgorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodCA6 IHQyIHwgdDMpIENPTFVNTlMgKHQuYSwgdC5iLCB0LnRhYmxlb2lkKSk7CisgYSB8ICBiICB8IHRh Ymxlb2lkIAorLS0tKy0tLS0tKy0tLS0tLS0tLS0KKyAxIHwgYWJjIHwgdDIKKyAzIHwgY2RlIHwg dDIKKyAxIHwgeHh4IHwgdDMKKyAyIHwgeXl5IHwgdDMKKyAzIHwgenp6IHwgdDMKKyg1IHJvd3Mp CisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBN QVRDSCAodCA6IHQyIHwgdDMpIENPTFVNTlMgKHQuYSwgdC5iLCB0LnRhYmxlb2lkKSk7CisgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgQXBwZW5kCisgICAtPiAgU2VxIFNjYW4gb24gdDIKKyAgICAgICAgIEZpbHRlcjogKChh ICUgMikgPSAxKQorICAgLT4gIFNlcSBTY2FuIG9uIHQzCisoNCByb3dzKQorCiAtLSBzdXBlcnVz ZXIgaXMgYWxsb3dlZCB0byBieXBhc3MgUkxTIGNoZWNrcwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJ WkFUSU9OOwogU0VUIHJvd19zZWN1cml0eSBUTyBPRkY7CkBAIC04NTcsNiArMTI0Miw0NSBAQCBF WFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gdDEgV0hFUkUgZl9sZWFrKGIpOwogICAg ICAgICAgRmlsdGVyOiBmX2xlYWsoYikKICg3IHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhf VEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQxIFdIRVJFIGZfbGVhayh0LmIpKSBDT0xVTU5TICh0Lmlk LCB0LmEsIHQuYikpOworTk9USUNFOiAgZl9sZWFrID0+IGFiYQorTk9USUNFOiAgZl9sZWFrID0+ IGJiYgorTk9USUNFOiAgZl9sZWFrID0+IGNjYworTk9USUNFOiAgZl9sZWFrID0+IGRhZAorTk9U SUNFOiAgZl9sZWFrID0+IGFiYworTk9USUNFOiAgZl9sZWFrID0+IGJjZAorTk9USUNFOiAgZl9s ZWFrID0+IGNkZQorTk9USUNFOiAgZl9sZWFrID0+IGRlZgorTk9USUNFOiAgZl9sZWFrID0+IHh4 eAorTk9USUNFOiAgZl9sZWFrID0+IHl5eQorTk9USUNFOiAgZl9sZWFrID0+IHp6egorIGlkICB8 IGEgfCAgYiAgCistLS0tLSstLS0rLS0tLS0KKyAxMDEgfCAxIHwgYWJhCisgMTAyIHwgMiB8IGJi YgorIDEwMyB8IDMgfCBjY2MKKyAxMDQgfCA0IHwgZGFkCisgMjAxIHwgMSB8IGFiYworIDIwMiB8 IDIgfCBiY2QKKyAyMDMgfCAzIHwgY2RlCisgMjA0IHwgNCB8IGRlZgorIDMwMSB8IDEgfCB4eHgK KyAzMDIgfCAyIHwgeXl5CisgMzAzIHwgMyB8IHp6egorKDExIHJvd3MpCisKK0VYUExBSU4gKENP U1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEgV0hF UkUgZl9sZWFrKHQuYikpIENPTFVNTlMgKHQuaWQsIHQuYSwgdC5iKSk7CisgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFwcGVuZAorICAg LT4gIFNlcSBTY2FuIG9uIHQxIHQxXzEKKyAgICAgICAgIEZpbHRlcjogZl9sZWFrKGIpCisgICAt PiAgU2VxIFNjYW4gb24gdDIgdDFfMgorICAgICAgICAgRmlsdGVyOiBmX2xlYWsoYikKKyAgIC0+ ICBTZXEgU2NhbiBvbiB0MyB0MV8zCisgICAgICAgICBGaWx0ZXI6IGZfbGVhayhiKQorKDcgcm93 cykKKwogLS0gbm9uLXN1cGVydXNlciB3aXRoIGJ5cGFzcyBwcml2aWxlZ2UgY2FuIGJ5cGFzcyBS TFMgcG9saWN5IHdoZW4gZGlzYWJsZWQKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVz c19ybHNfZXhlbXB0X3VzZXI7CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9GRjsKQEAgLTg5OSw2ICsx MzIzLDQ1IEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB0MSBXSEVSRSBmX2xl YWsoYik7CiAgICAgICAgICBGaWx0ZXI6IGZfbGVhayhiKQogKDcgcm93cykKIAorU0VMRUNUICog RlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEgV0hFUkUgZl9sZWFrKHQuYikpIENP TFVNTlMgKHQuaWQsIHQuYSwgdC5iKSk7CitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJhCitOT1RJQ0U6 ICBmX2xlYWsgPT4gYmJiCitOT1RJQ0U6ICBmX2xlYWsgPT4gY2NjCitOT1RJQ0U6ICBmX2xlYWsg PT4gZGFkCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYmNkCitO T1RJQ0U6ICBmX2xlYWsgPT4gY2RlCitOT1RJQ0U6ICBmX2xlYWsgPT4gZGVmCitOT1RJQ0U6ICBm X2xlYWsgPT4geHh4CitOT1RJQ0U6ICBmX2xlYWsgPT4geXl5CitOT1RJQ0U6ICBmX2xlYWsgPT4g enp6CisgaWQgIHwgYSB8ICBiICAKKy0tLS0tKy0tLSstLS0tLQorIDEwMSB8IDEgfCBhYmEKKyAx MDIgfCAyIHwgYmJiCisgMTAzIHwgMyB8IGNjYworIDEwNCB8IDQgfCBkYWQKKyAyMDEgfCAxIHwg YWJjCisgMjAyIHwgMiB8IGJjZAorIDIwMyB8IDMgfCBjZGUKKyAyMDQgfCA0IHwgZGVmCisgMzAx IHwgMSB8IHh4eAorIDMwMiB8IDIgfCB5eXkKKyAzMDMgfCAzIHwgenp6CisoMTEgcm93cykKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENI ICh0OiB0MSBXSEVSRSBmX2xlYWsodC5iKSkgQ09MVU1OUyAodC5pZCwgdC5hLCB0LmIpKTsKKyAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg QXBwZW5kCisgICAtPiAgU2VxIFNjYW4gb24gdDEgdDFfMQorICAgICAgICAgRmlsdGVyOiBmX2xl YWsoYikKKyAgIC0+ICBTZXEgU2NhbiBvbiB0MiB0MV8yCisgICAgICAgICBGaWx0ZXI6IGZfbGVh ayhiKQorICAgLT4gIFNlcSBTY2FuIG9uIHQzIHQxXzMKKyAgICAgICAgIEZpbHRlcjogZl9sZWFr KGIpCisoNyByb3dzKQorCiAtLQogLS0gUGFydGl0aW9uZWQgVGFibGVzCiAtLQpAQCAtOTI5LDYg KzEzOTIsOSBAQCBJTlNFUlQgSU5UTyBwYXJ0X2RvY3VtZW50IFZBTFVFUwogICAgICggOCwgNTUs IDIsICdyZWdyZXNzX3Jsc19jYXJvbCcsICdncmVhdCBzYXRpcmUnKSwKICAgICAoIDksIDExLCAx LCAncmVncmVzc19ybHNfZGF2ZScsICdhd2Vzb21lIHNjaWVuY2UgZmljdGlvbicpLAogICAgICgx MCwgOTksIDIsICdyZWdyZXNzX3Jsc19kYXZlJywgJ2F3ZXNvbWUgdGVjaG5vbG9neSBib29rJyk7 CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggcHRwZworICAgIFZFUlRFWCBUQUJMRVMgKHBhcnRfZG9j dW1lbnQgS0VZIChkaWQpLCBwYXJ0X2RvY3VtZW50X3NhdGlyZSBLRVkgKGRpZCkpOworR1JBTlQg QUxMIE9OIHB0cGcgVE8gcHVibGljOwogQUxURVIgVEFCTEUgcGFydF9kb2N1bWVudCBFTkFCTEUg Uk9XIExFVkVMIFNFQ1VSSVRZOwogLS0gQ3JlYXRlIHBvbGljeSBvbiBwYXJlbnQKIC0tIHVzZXIn cyBzZWN1cml0eSBsZXZlbCBtdXN0IGJlIGhpZ2hlciB0aGFuIG9yIGVxdWFsIHRvIGRvY3VtZW50 J3MKQEAgLTEwMDEsMTkgKzE0NjcsNDkgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBG Uk9NIHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSk7CiAgICAgICAgICBGaWx0ZXI6 ICgoZGxldmVsIDw9IChJbml0UGxhbiAxKS5jb2wxKSBBTkQgZl9sZWFrKGR0aXRsZSkpCiAoMTAg cm93cykKIAotLS0gdmlld3BvaW50IGZyb20gcmVncmVzc19ybHNfY2Fyb2wKLVNFVCBTRVNTSU9O IEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7Ci1TRUxFQ1QgKiBGUk9NIHBhcnRfZG9j dW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSkgT1JERVIgQlkgZGlkOworU0VMRUNUICogRlJPTSBH UkFQSF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6IHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQu ZHRpdGxlKSkgQ09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0 aXRsZSkpIE9SREVSIEJZIGRpZDsKIE5PVElDRTogIGZfbGVhayA9PiBteSBmaXJzdCBub3ZlbAot Tk9USUNFOiAgZl9sZWFrID0+IG15IHNlY29uZCBub3ZlbAogTk9USUNFOiAgZl9sZWFrID0+IGdy ZWF0IHNjaWVuY2UgZmljdGlvbgogTk9USUNFOiAgZl9sZWFrID0+IGF3ZXNvbWUgc2NpZW5jZSBm aWN0aW9uCiBOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgZmlyc3Qgc2F0aXJlCi1OT1RJQ0U6ICBmX2xl YWsgPT4gZ3JlYXQgc2F0aXJlCi1OT1RJQ0U6ICBmX2xlYWsgPT4gbXkgc2NpZW5jZSB0ZXh0Ym9v awotTk9USUNFOiAgZl9sZWFrID0+IG15IGhpc3RvcnkgYm9vawotTk9USUNFOiAgZl9sZWFrID0+ IGdyZWF0IHRlY2hub2xvZ3kgYm9vawotTk9USUNFOiAgZl9sZWFrID0+IGF3ZXNvbWUgdGVjaG5v bG9neSBib29rCisgZGlkIHwgY2lkIHwgZGxldmVsIHwgICAgICBkYXV0aG9yICAgICAgfCAgICAg ICAgIGR0aXRsZSAgICAgICAgICAKKy0tLS0tKy0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgMSB8ICAxMSB8ICAgICAgMSB8IHJl Z3Jlc3NfcmxzX2JvYiAgIHwgbXkgZmlyc3Qgbm92ZWwKKyAgIDQgfCAgNTUgfCAgICAgIDEgfCBy ZWdyZXNzX3Jsc19ib2IgICB8IG15IGZpcnN0IHNhdGlyZQorICAgNiB8ICAxMSB8ICAgICAgMSB8 IHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgZ3JlYXQgc2NpZW5jZSBmaWN0aW9uCisgICA5IHwgIDExIHwg ICAgICAxIHwgcmVncmVzc19ybHNfZGF2ZSAgfCBhd2Vzb21lIHNjaWVuY2UgZmljdGlvbgorKDQg cm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChw dHBnIE1BVENIIChkIDogcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpKSBDT0xV TU5TIChkLmRpZCwgZC5jaWQsIGQuZGxldmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSkgT1JERVIg QlkgZGlkOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU29ydAorICAg U29ydCBLZXk6IHBhcnRfZG9jdW1lbnQuZGlkCisgICBJbml0UGxhbiAxCisgICAgIC0+ICBJbmRl eCBTY2FuIHVzaW5nIHVhY2NvdW50X3BrZXkgb24gdWFjY291bnQKKyAgICAgICAgICAgSW5kZXgg Q29uZDogKHBndXNlciA9IENVUlJFTlRfVVNFUikKKyAgIC0+ICBBcHBlbmQKKyAgICAgICAgIC0+ ICBTZXEgU2NhbiBvbiBwYXJ0X2RvY3VtZW50X2ZpY3Rpb24gcGFydF9kb2N1bWVudF8xCisgICAg ICAgICAgICAgICBGaWx0ZXI6ICgoZGxldmVsIDw9IChJbml0UGxhbiAxKS5jb2wxKSBBTkQgZl9s ZWFrKGR0aXRsZSkpCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcGFydF9kb2N1bWVudF9zYXRp cmUgcGFydF9kb2N1bWVudF8yCisgICAgICAgICAgICAgICBGaWx0ZXI6ICgoZGxldmVsIDw9IChJ bml0UGxhbiAxKS5jb2wxKSBBTkQgZl9sZWFrKGR0aXRsZSkpCisgICAgICAgICAtPiAgU2VxIFNj YW4gb24gcGFydF9kb2N1bWVudF9ub25maWN0aW9uIHBhcnRfZG9jdW1lbnRfMworICAgICAgICAg ICAgICAgRmlsdGVyOiAoKGRsZXZlbCA8PSAoSW5pdFBsYW4gMSkuY29sMSkgQU5EIGZfbGVhayhk dGl0bGUpKQorKDEyIHJvd3MpCisKKy0tIHZpZXdwb2ludCBmcm9tIHJlZ3Jlc3NfcmxzX2Nhcm9s CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Nhcm9sOworU0VMRUNUICog RlJPTSBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZIGRpZDsKK05P VElDRTogIGZfbGVhayA9PiBteSBmaXJzdCBub3ZlbAorTk9USUNFOiAgZl9sZWFrID0+IG15IHNl Y29uZCBub3ZlbAorTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IHNjaWVuY2UgZmljdGlvbgorTk9U SUNFOiAgZl9sZWFrID0+IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9uCitOT1RJQ0U6ICBmX2xlYWsg PT4gbXkgZmlyc3Qgc2F0aXJlCitOT1RJQ0U6ICBmX2xlYWsgPT4gZ3JlYXQgc2F0aXJlCitOT1RJ Q0U6ICBmX2xlYWsgPT4gbXkgc2NpZW5jZSB0ZXh0Ym9vaworTk9USUNFOiAgZl9sZWFrID0+IG15 IGhpc3RvcnkgYm9vaworTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IHRlY2hub2xvZ3kgYm9vawor Tk9USUNFOiAgZl9sZWFrID0+IGF3ZXNvbWUgdGVjaG5vbG9neSBib29rCiAgZGlkIHwgY2lkIHwg ZGxldmVsIHwgICAgICBkYXV0aG9yICAgICAgfCAgICAgICAgIGR0aXRsZSAgICAgICAgICAKIC0t LS0tKy0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogICAgMSB8ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgZmly c3Qgbm92ZWwKQEAgLTEwNDMsNiArMTUzOSw0OCBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVD VCAqIEZST00gcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZHRpdGxlKTsKICAgICAgICAgIEZp bHRlcjogKChkbGV2ZWwgPD0gKEluaXRQbGFuIDEpLmNvbDEpIEFORCBmX2xlYWsoZHRpdGxlKSkK ICgxMCByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDog cGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpKSBDT0xVTU5TIChkLmRpZCwgZC5j aWQsIGQuZGxldmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSkgT1JERVIgQlkgZGlkOworTk9USUNF OiAgZl9sZWFrID0+IG15IGZpcnN0IG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgc2Vjb25k IG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gZ3JlYXQgc2NpZW5jZSBmaWN0aW9uCitOT1RJQ0U6 ICBmX2xlYWsgPT4gYXdlc29tZSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBt eSBmaXJzdCBzYXRpcmUKK05PVElDRTogIGZfbGVhayA9PiBncmVhdCBzYXRpcmUKK05PVElDRTog IGZfbGVhayA9PiBteSBzY2llbmNlIHRleHRib29rCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgaGlz dG9yeSBib29rCitOT1RJQ0U6ICBmX2xlYWsgPT4gZ3JlYXQgdGVjaG5vbG9neSBib29rCitOT1RJ Q0U6ICBmX2xlYWsgPT4gYXdlc29tZSB0ZWNobm9sb2d5IGJvb2sKKyBkaWQgfCBjaWQgfCBkbGV2 ZWwgfCAgICAgIGRhdXRob3IgICAgICB8ICAgICAgICAgZHRpdGxlICAgICAgICAgIAorLS0tLS0r LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgICAxIHwgIDExIHwgICAgICAxIHwgcmVncmVzc19ybHNfYm9iICAgfCBteSBmaXJzdCBu b3ZlbAorICAgMiB8ICAxMSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgc2Vjb25k IG5vdmVsCisgICAzIHwgIDk5IHwgICAgICAyIHwgcmVncmVzc19ybHNfYm9iICAgfCBteSBzY2ll bmNlIHRleHRib29rCisgICA0IHwgIDU1IHwgICAgICAxIHwgcmVncmVzc19ybHNfYm9iICAgfCBt eSBmaXJzdCBzYXRpcmUKKyAgIDUgfCAgOTkgfCAgICAgIDIgfCByZWdyZXNzX3Jsc19ib2IgICB8 IG15IGhpc3RvcnkgYm9vaworICAgNiB8ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2Nhcm9s IHwgZ3JlYXQgc2NpZW5jZSBmaWN0aW9uCisgICA3IHwgIDk5IHwgICAgICAyIHwgcmVncmVzc19y bHNfY2Fyb2wgfCBncmVhdCB0ZWNobm9sb2d5IGJvb2sKKyAgIDggfCAgNTUgfCAgICAgIDIgfCBy ZWdyZXNzX3Jsc19jYXJvbCB8IGdyZWF0IHNhdGlyZQorICAgOSB8ICAxMSB8ICAgICAgMSB8IHJl Z3Jlc3NfcmxzX2RhdmUgIHwgYXdlc29tZSBzY2llbmNlIGZpY3Rpb24KKyAgMTAgfCAgOTkgfCAg ICAgIDIgfCByZWdyZXNzX3Jsc19kYXZlICB8IGF3ZXNvbWUgdGVjaG5vbG9neSBib29rCisoMTAg cm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChw dHBnIE1BVENIIChkIDogcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpKSBDT0xV TU5TIChkLmRpZCwgZC5jaWQsIGQuZGxldmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSkgT1JERVIg QlkgZGlkOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU29ydAorICAg U29ydCBLZXk6IHBhcnRfZG9jdW1lbnQuZGlkCisgICBJbml0UGxhbiAxCisgICAgIC0+ICBJbmRl eCBTY2FuIHVzaW5nIHVhY2NvdW50X3BrZXkgb24gdWFjY291bnQKKyAgICAgICAgICAgSW5kZXgg Q29uZDogKHBndXNlciA9IENVUlJFTlRfVVNFUikKKyAgIC0+ICBBcHBlbmQKKyAgICAgICAgIC0+ ICBTZXEgU2NhbiBvbiBwYXJ0X2RvY3VtZW50X2ZpY3Rpb24gcGFydF9kb2N1bWVudF8xCisgICAg ICAgICAgICAgICBGaWx0ZXI6ICgoZGxldmVsIDw9IChJbml0UGxhbiAxKS5jb2wxKSBBTkQgZl9s ZWFrKGR0aXRsZSkpCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcGFydF9kb2N1bWVudF9zYXRp cmUgcGFydF9kb2N1bWVudF8yCisgICAgICAgICAgICAgICBGaWx0ZXI6ICgoZGxldmVsIDw9IChJ bml0UGxhbiAxKS5jb2wxKSBBTkQgZl9sZWFrKGR0aXRsZSkpCisgICAgICAgICAtPiAgU2VxIFNj YW4gb24gcGFydF9kb2N1bWVudF9ub25maWN0aW9uIHBhcnRfZG9jdW1lbnRfMworICAgICAgICAg ICAgICAgRmlsdGVyOiAoKGRsZXZlbCA8PSAoSW5pdFBsYW4gMSkuY29sMSkgQU5EIGZfbGVhayhk dGl0bGUpKQorKDEyIHJvd3MpCisKIC0tIHZpZXdwb2ludCBmcm9tIHJlZ3Jlc3NfcmxzX2RhdmUK IFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfZGF2ZTsKIFNFTEVDVCAqIEZS T00gcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZHRpdGxlKSBPUkRFUiBCWSBkaWQ7CkBAIC0x MDY4LDYgKzE2MDYsMjkgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHBhcnRf ZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSk7CiAgICAgICAgICAgIEluZGV4IENvbmQ6IChw Z3VzZXIgPSBDVVJSRU5UX1VTRVIpCiAoNSByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RB QkxFIChwdHBnIE1BVENIIChkIDogcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUp KSBDT0xVTU5TIChkLmRpZCwgZC5jaWQsIGQuZGxldmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSk7 CitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgZmlyc3Qgbm92ZWwKK05PVElDRTogIGZfbGVhayA9PiBt eSBzZWNvbmQgbm92ZWwKK05PVElDRTogIGZfbGVhayA9PiBncmVhdCBzY2llbmNlIGZpY3Rpb24K K05PVElDRTogIGZfbGVhayA9PiBhd2Vzb21lIHNjaWVuY2UgZmljdGlvbgorIGRpZCB8IGNpZCB8 IGRsZXZlbCB8ICAgICAgZGF1dGhvciAgICAgIHwgICAgICAgICBkdGl0bGUgICAgICAgICAgCist LS0tLSstLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgIDEgfCAgMTEgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19ib2IgICB8IG15IGZp cnN0IG5vdmVsCisgICAyIHwgIDExIHwgICAgICAyIHwgcmVncmVzc19ybHNfYm9iICAgfCBteSBz ZWNvbmQgbm92ZWwKKyAgIDYgfCAgMTEgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19jYXJvbCB8IGdy ZWF0IHNjaWVuY2UgZmljdGlvbgorICAgOSB8ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2Rh dmUgIHwgYXdlc29tZSBzY2llbmNlIGZpY3Rpb24KKyg0IHJvd3MpCisKK0VYUExBSU4gKENPU1RT IE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6IHBhcnRfZG9j dW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKSkgQ09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRs ZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcGFydF9kb2N1bWVudF9maWN0aW9uIHBhcnRf ZG9jdW1lbnQKKyAgIEZpbHRlcjogKChjaWQgPCA1NSkgQU5EIChkbGV2ZWwgPD0gKEluaXRQbGFu IDEpLmNvbDEpIEFORCBmX2xlYWsoZHRpdGxlKSkKKyAgIEluaXRQbGFuIDEKKyAgICAgLT4gIElu ZGV4IFNjYW4gdXNpbmcgdWFjY291bnRfcGtleSBvbiB1YWNjb3VudAorICAgICAgICAgICBJbmRl eCBDb25kOiAocGd1c2VyID0gQ1VSUkVOVF9VU0VSKQorKDUgcm93cykKKwogLS0gcHAxIEVSUk9S CiBJTlNFUlQgSU5UTyBwYXJ0X2RvY3VtZW50IFZBTFVFUyAoMTAwLCAxMSwgNSwgJ3JlZ3Jlc3Nf cmxzX2RhdmUnLCAndGVzdGluZyBwcDEnKTsgLS0gZmFpbAogRVJST1I6ICBuZXcgcm93IHZpb2xh dGVzIHJvdy1sZXZlbCBzZWN1cml0eSBwb2xpY3kgZm9yIHRhYmxlICJwYXJ0X2RvY3VtZW50IgpA QCAtMTEwNiw2ICsxNjY3LDE3IEBAIE5PVElDRTogIGZfbGVhayA9PiB0ZXN0aW5nIFJMUyB3aXRo IHBhcnRpdGlvbnMKICAxMDAgfCAgNTUgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19kYXZlICB8IHRl c3RpbmcgUkxTIHdpdGggcGFydGl0aW9ucwogKDMgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQ SF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6IHBhcnRfZG9jdW1lbnRfc2F0aXJlIFdIRVJFIGZfbGVh ayhkLmR0aXRsZSkpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1dGhvciwg ZC5kdGl0bGUpKTsKK05PVElDRTogIGZfbGVhayA9PiBteSBmaXJzdCBzYXRpcmUKK05PVElDRTog IGZfbGVhayA9PiBncmVhdCBzYXRpcmUKK05PVElDRTogIGZfbGVhayA9PiB0ZXN0aW5nIFJMUyB3 aXRoIHBhcnRpdGlvbnMKKyBkaWQgfCBjaWQgfCBkbGV2ZWwgfCAgICAgIGRhdXRob3IgICAgICB8 ICAgICAgICAgICBkdGl0bGUgICAgICAgICAgICAKKy0tLS0tKy0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIDQgfCAgNTUg fCAgICAgIDEgfCByZWdyZXNzX3Jsc19ib2IgICB8IG15IGZpcnN0IHNhdGlyZQorICAgOCB8ICA1 NSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgZ3JlYXQgc2F0aXJlCisgMTAwIHwgIDU1 IHwgICAgICAxIHwgcmVncmVzc19ybHNfZGF2ZSAgfCB0ZXN0aW5nIFJMUyB3aXRoIHBhcnRpdGlv bnMKKygzIHJvd3MpCisKIC0tIFR1cm4gb24gUkxTIGFuZCBjcmVhdGUgcG9saWN5IG9uIGNoaWxk IHRvIHNob3cgUkxTIGlzIGNoZWNrZWQgYmVmb3JlIGNvbnN0cmFpbnRzCiBTRVQgU0VTU0lPTiBB VVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwogQUxURVIgVEFCTEUgcGFydF9kb2N1bWVu dF9zYXRpcmUgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKQEAgLTExMjEsNiArMTY5MywxMSBA QCBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1lbnRfc2F0aXJlIFdIRVJFIGZfbGVhayhkdGl0bGUp IE9SREVSIEJZIGRpZDsKIC0tLS0tKy0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLQog KDAgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6IHBh cnRfZG9jdW1lbnRfc2F0aXJlIFdIRVJFIGZfbGVhayhkLmR0aXRsZSkpIENPTFVNTlMgKGQuZGlk LCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1dGhvciwgZC5kdGl0bGUpKTsKKyBkaWQgfCBjaWQgfCBk bGV2ZWwgfCBkYXV0aG9yIHwgZHRpdGxlIAorLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tCisoMCByb3dzKQorCiAtLSBUaGUgcGFyZW50IGxvb2tzIHNhbWUgYXMgYmVmb3Jl CiAtLSB2aWV3cG9pbnQgZnJvbSByZWdyZXNzX3Jsc19kYXZlCiBTRUxFQ1QgKiBGUk9NIHBhcnRf ZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSkgT1JERVIgQlkgZGlkOwpAQCAtMTE0Niw2ICsx NzIzLDI5IEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50 IFdIRVJFIGZfbGVhayhkdGl0bGUpOwogICAgICAgICAgICBJbmRleCBDb25kOiAocGd1c2VyID0g Q1VSUkVOVF9VU0VSKQogKDUgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRw ZyBNQVRDSCAoZCA6IHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKSkgQ09MVU1O UyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOworTk9USUNF OiAgZl9sZWFrID0+IG15IGZpcnN0IG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgc2Vjb25k IG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gZ3JlYXQgc2NpZW5jZSBmaWN0aW9uCitOT1RJQ0U6 ICBmX2xlYWsgPT4gYXdlc29tZSBzY2llbmNlIGZpY3Rpb24KKyBkaWQgfCBjaWQgfCBkbGV2ZWwg fCAgICAgIGRhdXRob3IgICAgICB8ICAgICAgICAgZHRpdGxlICAgICAgICAgIAorLS0tLS0rLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAxIHwgIDExIHwgICAgICAxIHwgcmVncmVzc19ybHNfYm9iICAgfCBteSBmaXJzdCBub3Zl bAorICAgMiB8ICAxMSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgc2Vjb25kIG5v dmVsCisgICA2IHwgIDExIHwgICAgICAxIHwgcmVncmVzc19ybHNfY2Fyb2wgfCBncmVhdCBzY2ll bmNlIGZpY3Rpb24KKyAgIDkgfCAgMTEgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19kYXZlICB8IGF3 ZXNvbWUgc2NpZW5jZSBmaWN0aW9uCisoNCByb3dzKQorCitFWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3VtZW50IFdI RVJFIGZfbGVhayhkLmR0aXRsZSkpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQu ZGF1dGhvciwgZC5kdGl0bGUpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFNlcSBTY2FuIG9uIHBhcnRfZG9jdW1lbnRfZmljdGlvbiBwYXJ0X2RvY3VtZW50 CisgICBGaWx0ZXI6ICgoY2lkIDwgNTUpIEFORCAoZGxldmVsIDw9IChJbml0UGxhbiAxKS5jb2wx KSBBTkQgZl9sZWFrKGR0aXRsZSkpCisgICBJbml0UGxhbiAxCisgICAgIC0+ICBJbmRleCBTY2Fu IHVzaW5nIHVhY2NvdW50X3BrZXkgb24gdWFjY291bnQKKyAgICAgICAgICAgSW5kZXggQ29uZDog KHBndXNlciA9IENVUlJFTlRfVVNFUikKKyg1IHJvd3MpCisKIC0tIHZpZXdwb2ludCBmcm9tIHJl Z3Jlc3NfcmxzX2Nhcm9sCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Nh cm9sOwogU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9S REVSIEJZIGRpZDsKQEAgLTExOTAsNiArMTc5MCw0OCBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCAqIEZST00gcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZHRpdGxlKTsKICAgICAgICAg IEZpbHRlcjogKChkbGV2ZWwgPD0gKEluaXRQbGFuIDEpLmNvbDEpIEFORCBmX2xlYWsoZHRpdGxl KSkKICgxMCByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChk IDogcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpKSBDT0xVTU5TIChkLmRpZCwg ZC5jaWQsIGQuZGxldmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSk7CitOT1RJQ0U6ICBmX2xlYWsg PT4gbXkgZmlyc3Qgbm92ZWwKK05PVElDRTogIGZfbGVhayA9PiBteSBzZWNvbmQgbm92ZWwKK05P VElDRTogIGZfbGVhayA9PiBncmVhdCBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9 PiBhd2Vzb21lIHNjaWVuY2UgZmljdGlvbgorTk9USUNFOiAgZl9sZWFrID0+IG15IGZpcnN0IHNh dGlyZQorTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IHNhdGlyZQorTk9USUNFOiAgZl9sZWFrID0+ IHRlc3RpbmcgUkxTIHdpdGggcGFydGl0aW9ucworTk9USUNFOiAgZl9sZWFrID0+IG15IHNjaWVu Y2UgdGV4dGJvb2sKK05PVElDRTogIGZfbGVhayA9PiBteSBoaXN0b3J5IGJvb2sKK05PVElDRTog IGZfbGVhayA9PiBncmVhdCB0ZWNobm9sb2d5IGJvb2sKK05PVElDRTogIGZfbGVhayA9PiBhd2Vz b21lIHRlY2hub2xvZ3kgYm9vaworIGRpZCB8IGNpZCB8IGRsZXZlbCB8ICAgICAgZGF1dGhvciAg ICAgIHwgICAgICAgICAgIGR0aXRsZSAgICAgICAgICAgIAorLS0tLS0rLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgMSB8 ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgZmlyc3Qgbm92ZWwKKyAgIDIg fCAgMTEgfCAgICAgIDIgfCByZWdyZXNzX3Jsc19ib2IgICB8IG15IHNlY29uZCBub3ZlbAorICAg NiB8ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgZ3JlYXQgc2NpZW5jZSBmaWN0 aW9uCisgICA5IHwgIDExIHwgICAgICAxIHwgcmVncmVzc19ybHNfZGF2ZSAgfCBhd2Vzb21lIHNj aWVuY2UgZmljdGlvbgorICAgNCB8ICA1NSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwg bXkgZmlyc3Qgc2F0aXJlCisgICA4IHwgIDU1IHwgICAgICAyIHwgcmVncmVzc19ybHNfY2Fyb2wg fCBncmVhdCBzYXRpcmUKKyAxMDAgfCAgNTUgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19kYXZlICB8 IHRlc3RpbmcgUkxTIHdpdGggcGFydGl0aW9ucworICAgMyB8ICA5OSB8ICAgICAgMiB8IHJlZ3Jl c3NfcmxzX2JvYiAgIHwgbXkgc2NpZW5jZSB0ZXh0Ym9vaworICAgNSB8ICA5OSB8ICAgICAgMiB8 IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgaGlzdG9yeSBib29rCisgICA3IHwgIDk5IHwgICAgICAy IHwgcmVncmVzc19ybHNfY2Fyb2wgfCBncmVhdCB0ZWNobm9sb2d5IGJvb2sKKyAgMTAgfCAgOTkg fCAgICAgIDIgfCByZWdyZXNzX3Jsc19kYXZlICB8IGF3ZXNvbWUgdGVjaG5vbG9neSBib29rCiso MTEgcm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxF IChwdHBnIE1BVENIIChkIDogcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpKSBD T0xVTU5TIChkLmRpZCwgZC5jaWQsIGQuZGxldmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSk7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBcHBlbmQKKyAgIEluaXRQbGFuIDEKKyAgICAgLT4g IEluZGV4IFNjYW4gdXNpbmcgdWFjY291bnRfcGtleSBvbiB1YWNjb3VudAorICAgICAgICAgICBJ bmRleCBDb25kOiAocGd1c2VyID0gQ1VSUkVOVF9VU0VSKQorICAgLT4gIFNlcSBTY2FuIG9uIHBh cnRfZG9jdW1lbnRfZmljdGlvbiBwYXJ0X2RvY3VtZW50XzEKKyAgICAgICAgIEZpbHRlcjogKChk bGV2ZWwgPD0gKEluaXRQbGFuIDEpLmNvbDEpIEFORCBmX2xlYWsoZHRpdGxlKSkKKyAgIC0+ICBT ZXEgU2NhbiBvbiBwYXJ0X2RvY3VtZW50X3NhdGlyZSBwYXJ0X2RvY3VtZW50XzIKKyAgICAgICAg IEZpbHRlcjogKChkbGV2ZWwgPD0gKEluaXRQbGFuIDEpLmNvbDEpIEFORCBmX2xlYWsoZHRpdGxl KSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBwYXJ0X2RvY3VtZW50X25vbmZpY3Rpb24gcGFydF9kb2N1 bWVudF8zCisgICAgICAgICBGaWx0ZXI6ICgoZGxldmVsIDw9IChJbml0UGxhbiAxKS5jb2wxKSBB TkQgZl9sZWFrKGR0aXRsZSkpCisoMTAgcm93cykKKwogLS0gb25seSBvd25lciBjYW4gY2hhbmdl IHBvbGljaWVzCiBBTFRFUiBQT0xJQ1kgcHAxIE9OIHBhcnRfZG9jdW1lbnQgVVNJTkcgKHRydWUp OyAgICAtLWZhaWwKIEVSUk9SOiAgbXVzdCBiZSBvd25lciBvZiB0YWJsZSBwYXJ0X2RvY3VtZW50 CkBAIC0xMjE0LDYgKzE4NTYsMjEgQEAgTk9USUNFOiAgZl9sZWFrID0+IG15IGhpc3RvcnkgYm9v awogICAgNSB8ICA5OSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2JvYiB8IG15IGhpc3RvcnkgYm9v awogKDUgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6 IHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKSkgQ09MVU1OUyAoZC5kaWQsIGQu Y2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOworTk9USUNFOiAgZl9sZWFrID0+ IG15IGZpcnN0IG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgc2Vjb25kIG5vdmVsCitOT1RJ Q0U6ICBmX2xlYWsgPT4gbXkgZmlyc3Qgc2F0aXJlCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgc2Np ZW5jZSB0ZXh0Ym9vaworTk9USUNFOiAgZl9sZWFrID0+IG15IGhpc3RvcnkgYm9vaworIGRpZCB8 IGNpZCB8IGRsZXZlbCB8ICAgICBkYXV0aG9yICAgICB8ICAgICAgIGR0aXRsZSAgICAgICAgCist LS0tLSstLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAgIDEgfCAgMTEgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19ib2IgfCBteSBmaXJzdCBub3Zl bAorICAgMiB8ICAxMSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2JvYiB8IG15IHNlY29uZCBub3Zl bAorICAgNCB8ICA1NSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2JvYiB8IG15IGZpcnN0IHNhdGly ZQorICAgMyB8ICA5OSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2JvYiB8IG15IHNjaWVuY2UgdGV4 dGJvb2sKKyAgIDUgfCAgOTkgfCAgICAgIDIgfCByZWdyZXNzX3Jsc19ib2IgfCBteSBoaXN0b3J5 IGJvb2sKKyg1IHJvd3MpCisKIC0tIHZpZXdwb2ludCBmcm9tIHJsc19yZWdyZXNfY2Fyb2wgYWdh aW4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CiBTRUxFQ1Qg KiBGUk9NIHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSkgT1JERVIgQlkgZGlkOwpA QCAtMTIzOSw2ICsxODk2LDI5IEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBw YXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpOwogICAgICAgICAgRmlsdGVyOiAoKGRh dXRob3IgPSBDVVJSRU5UX1VTRVIpIEFORCBmX2xlYWsoZHRpdGxlKSkKICg3IHJvd3MpCiAKK1NF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3VtZW50IFdI RVJFIGZfbGVhayhkLmR0aXRsZSkpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQu ZGF1dGhvciwgZC5kdGl0bGUpKTsKK05PVElDRTogIGZfbGVhayA9PiBncmVhdCBzY2llbmNlIGZp Y3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBncmVhdCBzYXRpcmUKK05PVElDRTogIGZfbGVhayA9 PiBncmVhdCB0ZWNobm9sb2d5IGJvb2sKKyBkaWQgfCBjaWQgfCBkbGV2ZWwgfCAgICAgIGRhdXRo b3IgICAgICB8ICAgICAgICBkdGl0bGUgICAgICAgICAKKy0tLS0tKy0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIDYgfCAgMTEgfCAg ICAgIDEgfCByZWdyZXNzX3Jsc19jYXJvbCB8IGdyZWF0IHNjaWVuY2UgZmljdGlvbgorICAgOCB8 ICA1NSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgZ3JlYXQgc2F0aXJlCisgICA3IHwg IDk5IHwgICAgICAyIHwgcmVncmVzc19ybHNfY2Fyb2wgfCBncmVhdCB0ZWNobm9sb2d5IGJvb2sK KygzIHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJM RSAocHRwZyBNQVRDSCAoZCA6IHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKSkg Q09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBBcHBlbmQKKyAgIC0+ICBTZXEgU2NhbiBvbiBwYXJ0X2RvY3VtZW50 X2ZpY3Rpb24gcGFydF9kb2N1bWVudF8xCisgICAgICAgICBGaWx0ZXI6ICgoZGF1dGhvciA9IENV UlJFTlRfVVNFUikgQU5EIGZfbGVhayhkdGl0bGUpKQorICAgLT4gIFNlcSBTY2FuIG9uIHBhcnRf ZG9jdW1lbnRfc2F0aXJlIHBhcnRfZG9jdW1lbnRfMgorICAgICAgICAgRmlsdGVyOiAoKGRhdXRo b3IgPSBDVVJSRU5UX1VTRVIpIEFORCBmX2xlYWsoZHRpdGxlKSkKKyAgIC0+ICBTZXEgU2NhbiBv biBwYXJ0X2RvY3VtZW50X25vbmZpY3Rpb24gcGFydF9kb2N1bWVudF8zCisgICAgICAgICBGaWx0 ZXI6ICgoZGF1dGhvciA9IENVUlJFTlRfVVNFUikgQU5EIGZfbGVhayhkdGl0bGUpKQorKDcgcm93 cykKKwogLS0gZGF0YWJhc2Ugc3VwZXJ1c2VyIGRvZXMgYnlwYXNzIFJMUyBwb2xpY3kgd2hlbiBl bmFibGVkCiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiBTRVQgcm93X3NlY3VyaXR5IFRP IE9OOwpAQCAtMTI1OCw2ICsxOTM4LDIyIEBAIFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudCBP UkRFUiBCWSBkaWQ7CiAgMTAwIHwgIDU1IHwgICAgICAxIHwgcmVncmVzc19ybHNfZGF2ZSAgfCB0 ZXN0aW5nIFJMUyB3aXRoIHBhcnRpdGlvbnMKICgxMSByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdS QVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFydF9kb2N1bWVudCkgQ09MVU1OUyAoZC5kaWQs IGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOworIGRpZCB8IGNpZCB8IGRs ZXZlbCB8ICAgICAgZGF1dGhvciAgICAgIHwgICAgICAgICAgIGR0aXRsZSAgICAgICAgICAgIAor LS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAgMSB8ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwg bXkgZmlyc3Qgbm92ZWwKKyAgIDIgfCAgMTEgfCAgICAgIDIgfCByZWdyZXNzX3Jsc19ib2IgICB8 IG15IHNlY29uZCBub3ZlbAorICAgNiB8ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2Nhcm9s IHwgZ3JlYXQgc2NpZW5jZSBmaWN0aW9uCisgICA5IHwgIDExIHwgICAgICAxIHwgcmVncmVzc19y bHNfZGF2ZSAgfCBhd2Vzb21lIHNjaWVuY2UgZmljdGlvbgorICAgNCB8ICA1NSB8ICAgICAgMSB8 IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgZmlyc3Qgc2F0aXJlCisgICA4IHwgIDU1IHwgICAgICAy IHwgcmVncmVzc19ybHNfY2Fyb2wgfCBncmVhdCBzYXRpcmUKKyAxMDAgfCAgNTUgfCAgICAgIDEg fCByZWdyZXNzX3Jsc19kYXZlICB8IHRlc3RpbmcgUkxTIHdpdGggcGFydGl0aW9ucworICAgMyB8 ICA5OSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgc2NpZW5jZSB0ZXh0Ym9vawor ICAgNSB8ICA5OSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgaGlzdG9yeSBib29r CisgICA3IHwgIDk5IHwgICAgICAyIHwgcmVncmVzc19ybHNfY2Fyb2wgfCBncmVhdCB0ZWNobm9s b2d5IGJvb2sKKyAgMTAgfCAgOTkgfCAgICAgIDIgfCByZWdyZXNzX3Jsc19kYXZlICB8IGF3ZXNv bWUgdGVjaG5vbG9neSBib29rCisoMTEgcm93cykKKwogU0VMRUNUICogRlJPTSBwYXJ0X2RvY3Vt ZW50X3NhdGlyZSBPUkRFUiBieSBkaWQ7CiAgZGlkIHwgY2lkIHwgZGxldmVsIHwgICAgICBkYXV0 aG9yICAgICAgfCAgICAgICAgICAgZHRpdGxlICAgICAgICAgICAgCiAtLS0tLSstLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBA IC0xMjY2LDYgKzE5NjIsMTQgQEAgU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50X3NhdGlyZSBP UkRFUiBieSBkaWQ7CiAgMTAwIHwgIDU1IHwgICAgICAxIHwgcmVncmVzc19ybHNfZGF2ZSAgfCB0 ZXN0aW5nIFJMUyB3aXRoIHBhcnRpdGlvbnMKICgzIHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JB UEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3VtZW50X3NhdGlyZSkgQ09MVU1OUyAo ZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOworIGRpZCB8IGNp ZCB8IGRsZXZlbCB8ICAgICAgZGF1dGhvciAgICAgIHwgICAgICAgICAgIGR0aXRsZSAgICAgICAg ICAgIAorLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICAgNCB8ICA1NSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2Jv YiAgIHwgbXkgZmlyc3Qgc2F0aXJlCisgICA4IHwgIDU1IHwgICAgICAyIHwgcmVncmVzc19ybHNf Y2Fyb2wgfCBncmVhdCBzYXRpcmUKKyAxMDAgfCAgNTUgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19k YXZlICB8IHRlc3RpbmcgUkxTIHdpdGggcGFydGl0aW9ucworKDMgcm93cykKKwogLS0gZGF0YWJh c2Ugbm9uLXN1cGVydXNlciB3aXRoIGJ5cGFzcyBwcml2aWxlZ2UgY2FuIGJ5cGFzcyBSTFMgcG9s aWN5IHdoZW4gZGlzYWJsZWQKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNf ZXhlbXB0X3VzZXI7CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9GRjsKQEAgLTEyODUsNiArMTk4OSwy MiBAQCBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1lbnQgT1JERVIgQlkgZGlkOwogIDEwMCB8ICA1 NSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2RhdmUgIHwgdGVzdGluZyBSTFMgd2l0aCBwYXJ0aXRp b25zCiAoMTEgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRDSCAo ZCA6IHBhcnRfZG9jdW1lbnQpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1 dGhvciwgZC5kdGl0bGUpKTsKKyBkaWQgfCBjaWQgfCBkbGV2ZWwgfCAgICAgIGRhdXRob3IgICAg ICB8ICAgICAgICAgICBkdGl0bGUgICAgICAgICAgICAKKy0tLS0tKy0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIDEgfCAg MTEgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19ib2IgICB8IG15IGZpcnN0IG5vdmVsCisgICAyIHwg IDExIHwgICAgICAyIHwgcmVncmVzc19ybHNfYm9iICAgfCBteSBzZWNvbmQgbm92ZWwKKyAgIDYg fCAgMTEgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19jYXJvbCB8IGdyZWF0IHNjaWVuY2UgZmljdGlv bgorICAgOSB8ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2RhdmUgIHwgYXdlc29tZSBzY2ll bmNlIGZpY3Rpb24KKyAgIDQgfCAgNTUgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19ib2IgICB8IG15 IGZpcnN0IHNhdGlyZQorICAgOCB8ICA1NSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2Nhcm9sIHwg Z3JlYXQgc2F0aXJlCisgMTAwIHwgIDU1IHwgICAgICAxIHwgcmVncmVzc19ybHNfZGF2ZSAgfCB0 ZXN0aW5nIFJMUyB3aXRoIHBhcnRpdGlvbnMKKyAgIDMgfCAgOTkgfCAgICAgIDIgfCByZWdyZXNz X3Jsc19ib2IgICB8IG15IHNjaWVuY2UgdGV4dGJvb2sKKyAgIDUgfCAgOTkgfCAgICAgIDIgfCBy ZWdyZXNzX3Jsc19ib2IgICB8IG15IGhpc3RvcnkgYm9vaworICAgNyB8ICA5OSB8ICAgICAgMiB8 IHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgZ3JlYXQgdGVjaG5vbG9neSBib29rCisgIDEwIHwgIDk5IHwg ICAgICAyIHwgcmVncmVzc19ybHNfZGF2ZSAgfCBhd2Vzb21lIHRlY2hub2xvZ3kgYm9vaworKDEx IHJvd3MpCisKIFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudF9zYXRpcmUgT1JERVIgYnkgZGlk OwogIGRpZCB8IGNpZCB8IGRsZXZlbCB8ICAgICAgZGF1dGhvciAgICAgIHwgICAgICAgICAgIGR0 aXRsZSAgICAgICAgICAgIAogLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTI5Myw2ICsyMDEzLDE0IEBAIFNF TEVDVCAqIEZST00gcGFydF9kb2N1bWVudF9zYXRpcmUgT1JERVIgYnkgZGlkOwogIDEwMCB8ICA1 NSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2RhdmUgIHwgdGVzdGluZyBSTFMgd2l0aCBwYXJ0aXRp b25zCiAoMyByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChk IDogcGFydF9kb2N1bWVudF9zYXRpcmUpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWws IGQuZGF1dGhvciwgZC5kdGl0bGUpKTsKKyBkaWQgfCBjaWQgfCBkbGV2ZWwgfCAgICAgIGRhdXRo b3IgICAgICB8ICAgICAgICAgICBkdGl0bGUgICAgICAgICAgICAKKy0tLS0tKy0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg IDQgfCAgNTUgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19ib2IgICB8IG15IGZpcnN0IHNhdGlyZQor ICAgOCB8ICA1NSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgZ3JlYXQgc2F0aXJlCisg MTAwIHwgIDU1IHwgICAgICAxIHwgcmVncmVzc19ybHNfZGF2ZSAgfCB0ZXN0aW5nIFJMUyB3aXRo IHBhcnRpdGlvbnMKKygzIHJvd3MpCisKIC0tIFJMUyBwb2xpY3kgZG9lcyBub3QgYXBwbHkgdG8g dGFibGUgb3duZXIgd2hlbiBSTFMgZW5hYmxlZC4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04g cmVncmVzc19ybHNfYWxpY2U7CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9OOwpAQCAtMTMxMiwyMSAr MjA0MCw0OSBAQCBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1lbnQgT1JERVIgYnkgZGlkOwogIDEw MCB8ICA1NSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2RhdmUgIHwgdGVzdGluZyBSTFMgd2l0aCBw YXJ0aXRpb25zCiAoMTEgcm93cykKIAotU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50X3NhdGly ZSBPUkRFUiBieSBkaWQ7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChk IDogcGFydF9kb2N1bWVudCkgQ09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0 aG9yLCBkLmR0aXRsZSkpOwogIGRpZCB8IGNpZCB8IGRsZXZlbCB8ICAgICAgZGF1dGhvciAgICAg IHwgICAgICAgICAgIGR0aXRsZSAgICAgICAgICAgIAogLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgMSB8ICAx MSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgZmlyc3Qgbm92ZWwKKyAgIDIgfCAg MTEgfCAgICAgIDIgfCByZWdyZXNzX3Jsc19ib2IgICB8IG15IHNlY29uZCBub3ZlbAorICAgNiB8 ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgZ3JlYXQgc2NpZW5jZSBmaWN0aW9u CisgICA5IHwgIDExIHwgICAgICAxIHwgcmVncmVzc19ybHNfZGF2ZSAgfCBhd2Vzb21lIHNjaWVu Y2UgZmljdGlvbgogICAgNCB8ICA1NSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkg Zmlyc3Qgc2F0aXJlCiAgICA4IHwgIDU1IHwgICAgICAyIHwgcmVncmVzc19ybHNfY2Fyb2wgfCBn cmVhdCBzYXRpcmUKICAxMDAgfCAgNTUgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19kYXZlICB8IHRl c3RpbmcgUkxTIHdpdGggcGFydGl0aW9ucwotKDMgcm93cykKKyAgIDMgfCAgOTkgfCAgICAgIDIg fCByZWdyZXNzX3Jsc19ib2IgICB8IG15IHNjaWVuY2UgdGV4dGJvb2sKKyAgIDUgfCAgOTkgfCAg ICAgIDIgfCByZWdyZXNzX3Jsc19ib2IgICB8IG15IGhpc3RvcnkgYm9vaworICAgNyB8ICA5OSB8 ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgZ3JlYXQgdGVjaG5vbG9neSBib29rCisgIDEw IHwgIDk5IHwgICAgICAyIHwgcmVncmVzc19ybHNfZGF2ZSAgfCBhd2Vzb21lIHRlY2hub2xvZ3kg Ym9vaworKDExIHJvd3MpCiAKLS0tIFdoZW4gUkxTIGRpc2FibGVkLCBvdGhlciB1c2VycyBnZXQg RVJST1IuCi1TRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2RhdmU7Ci1TRVQg cm93X3NlY3VyaXR5IFRPIE9GRjsKK1NFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudF9zYXRpcmUg T1JERVIgYnkgZGlkOworIGRpZCB8IGNpZCB8IGRsZXZlbCB8ICAgICAgZGF1dGhvciAgICAgIHwg ICAgICAgICAgIGR0aXRsZSAgICAgICAgICAgIAorLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgNCB8ICA1NSB8 ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgZmlyc3Qgc2F0aXJlCisgICA4IHwgIDU1 IHwgICAgICAyIHwgcmVncmVzc19ybHNfY2Fyb2wgfCBncmVhdCBzYXRpcmUKKyAxMDAgfCAgNTUg fCAgICAgIDEgfCByZWdyZXNzX3Jsc19kYXZlICB8IHRlc3RpbmcgUkxTIHdpdGggcGFydGl0aW9u cworKDMgcm93cykKKworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6 IHBhcnRfZG9jdW1lbnRfc2F0aXJlKSBDT0xVTU5TIChkLmRpZCwgZC5jaWQsIGQuZGxldmVsLCBk LmRhdXRob3IsIGQuZHRpdGxlKSk7CisgZGlkIHwgY2lkIHwgZGxldmVsIHwgICAgICBkYXV0aG9y ICAgICAgfCAgICAgICAgICAgZHRpdGxlICAgICAgICAgICAgCistLS0tLSstLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICA0 IHwgIDU1IHwgICAgICAxIHwgcmVncmVzc19ybHNfYm9iICAgfCBteSBmaXJzdCBzYXRpcmUKKyAg IDggfCAgNTUgfCAgICAgIDIgfCByZWdyZXNzX3Jsc19jYXJvbCB8IGdyZWF0IHNhdGlyZQorIDEw MCB8ICA1NSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2RhdmUgIHwgdGVzdGluZyBSTFMgd2l0aCBw YXJ0aXRpb25zCisoMyByb3dzKQorCistLSBXaGVuIFJMUyBkaXNhYmxlZCwgb3RoZXIgdXNlcnMg Z2V0IEVSUk9SLgorU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19kYXZlOwor U0VUIHJvd19zZWN1cml0eSBUTyBPRkY7CiBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1lbnQgT1JE RVIgYnkgZGlkOwogRVJST1I6ICBxdWVyeSB3b3VsZCBiZSBhZmZlY3RlZCBieSByb3ctbGV2ZWwg c2VjdXJpdHkgcG9saWN5IGZvciB0YWJsZSAicGFydF9kb2N1bWVudCIKK1NFTEVDVCAqIEZST00g R1JBUEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3VtZW50KSBDT0xVTU5TIChkLmRp ZCwgZC5jaWQsIGQuZGxldmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSk7CitFUlJPUjogIHF1ZXJ5 IHdvdWxkIGJlIGFmZmVjdGVkIGJ5IHJvdy1sZXZlbCBzZWN1cml0eSBwb2xpY3kgZm9yIHRhYmxl ICJwYXJ0X2RvY3VtZW50IgogU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50X3NhdGlyZSBPUkRF UiBieSBkaWQ7CiBFUlJPUjogIHF1ZXJ5IHdvdWxkIGJlIGFmZmVjdGVkIGJ5IHJvdy1sZXZlbCBz ZWN1cml0eSBwb2xpY3kgZm9yIHRhYmxlICJwYXJ0X2RvY3VtZW50X3NhdGlyZSIKK1NFTEVDVCAq IEZST00gR1JBUEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3VtZW50X3NhdGlyZSkg Q09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOwor RVJST1I6ICBxdWVyeSB3b3VsZCBiZSBhZmZlY3RlZCBieSByb3ctbGV2ZWwgc2VjdXJpdHkgcG9s aWN5IGZvciB0YWJsZSAicGFydF9kb2N1bWVudF9zYXRpcmUiCiAtLSBDaGVjayBiZWhhdmlvciB3 aXRoIGEgcG9saWN5IHRoYXQgdXNlcyBhIFN1YlBsYW4gbm90IGFuIEluaXRQbGFuLgogU0VUIFNF U1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIFNFVCByb3dfc2VjdXJpdHkg VE8gT047CkBAIC0xMzYyLDEwICsyMTE4LDEzIEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNU ICogRlJPTSBkZXBlbmRlbnQ7IC0tIEFmdGVyIGRyb3AsIHNob3VsZCBiZSB1bnF1YWxpZmllCiBT RVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwogQ1JFQVRFIFRBQkxF IHJlYzEgKHggaW50ZWdlciwgeSBpbnRlZ2VyKTsKIENSRUFURSBQT0xJQ1kgcjEgT04gcmVjMSBV U0lORyAoeCA9IChTRUxFQ1Qgci54IEZST00gcmVjMSByIFdIRVJFIHkgPSByLnkpKTsKK0NSRUFU RSBQUk9QRVJUWSBHUkFQSCBydHBnIFZFUlRFWCBUQUJMRVMgKHJlYzEgS0VZICh4KSk7CiBBTFRF UiBUQUJMRSByZWMxIEVOQUJMRSBST1cgTEVWRUwgU0VDVVJJVFk7CiBTRVQgU0VTU0lPTiBBVVRI T1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIFNFTEVDVCAqIEZST00gcmVjMTsgLS0gZmFpbCwg ZGlyZWN0IHJlY3Vyc2lvbgogRVJST1I6ICBpbmZpbml0ZSByZWN1cnNpb24gZGV0ZWN0ZWQgaW4g cG9saWN5IGZvciByZWxhdGlvbiAicmVjMSIKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHJ0 cGcgTUFUQ0ggKHI6IHJlYzEpIENPTFVNTlMgKHIueCwgci55KSk7IC0tIGZhaWwsIGRpcmVjdCBy ZWN1cnNpb24KK0VSUk9SOiAgaW5maW5pdGUgcmVjdXJzaW9uIGRldGVjdGVkIGluIHBvbGljeSBm b3IgcmVsYXRpb24gInJlYzEiCiAtLQogLS0gTXV0dWFsIHJlY3Vyc2lvbgogLS0KQEAgLTEzNzcs NiArMjEzNiw4IEBAIEFMVEVSIFRBQkxFIHJlYzIgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsK IFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwogU0VMRUNUICogRlJP TSByZWMxOyAgICAtLSBmYWlsLCBtdXR1YWwgcmVjdXJzaW9uCiBFUlJPUjogIGluZmluaXRlIHJl Y3Vyc2lvbiBkZXRlY3RlZCBpbiBwb2xpY3kgZm9yIHJlbGF0aW9uICJyZWMxIgorU0VMRUNUICog RlJPTSBHUkFQSF9UQUJMRSAocnRwZyBNQVRDSCAocjogcmVjMSkgQ09MVU1OUyAoci54LCByLnkp KTsgLS0gZmFpbCwgbXV0dWFsIHJlY3Vyc2lvbgorRVJST1I6ICBpbmZpbml0ZSByZWN1cnNpb24g ZGV0ZWN0ZWQgaW4gcG9saWN5IGZvciByZWxhdGlvbiAicmVjMSIKIC0tCiAtLSBNdXR1YWwgcmVj dXJzaW9uIHZpYSB2aWV3cwogLS0KQEAgLTEzODksNiArMjE1MCw4IEBAIEFMVEVSIFBPTElDWSBy MiBPTiByZWMyIFVTSU5HIChhID0gKFNFTEVDVCB4IEZST00gcmVjMXYgV0hFUkUgeSA9IGIpKTsK IFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwogU0VMRUNUICogRlJP TSByZWMxOyAgICAtLSBmYWlsLCBtdXR1YWwgcmVjdXJzaW9uIHZpYSB2aWV3cwogRVJST1I6ICBp bmZpbml0ZSByZWN1cnNpb24gZGV0ZWN0ZWQgaW4gcG9saWN5IGZvciByZWxhdGlvbiAicmVjMSIK K1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHJ0cGcgTUFUQ0ggKHI6IHJlYzEpIENPTFVNTlMg KHIueCwgci55KSk7IC0tIGZhaWwsIG11dHVhbCByZWN1cnNpb24gdmlhIHZpZXdzCitFUlJPUjog IGluZmluaXRlIHJlY3Vyc2lvbiBkZXRlY3RlZCBpbiBwb2xpY3kgZm9yIHJlbGF0aW9uICJyZWMx IgogLS0KIC0tIE11dHVhbCByZWN1cnNpb24gdmlhIC5zLmIgdmlld3MKIC0tCkBAIC0xNDA1LDYg KzIxNjgsMjcgQEAgQ1JFQVRFIFBPTElDWSByMiBPTiByZWMyIFVTSU5HIChhID0gKFNFTEVDVCB4 IEZST00gcmVjMXYgV0hFUkUgeSA9IGIpKTsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVn cmVzc19ybHNfYm9iOwogU0VMRUNUICogRlJPTSByZWMxOyAgICAtLSBmYWlsLCBtdXR1YWwgcmVj dXJzaW9uIHZpYSBzLmIuIHZpZXdzCiBFUlJPUjogIGluZmluaXRlIHJlY3Vyc2lvbiBkZXRlY3Rl ZCBpbiBwb2xpY3kgZm9yIHJlbGF0aW9uICJyZWMxIgorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJM RSAocnRwZyBNQVRDSCAocjogcmVjMSkgQ09MVU1OUyAoci54LCByLnkpKTsgLS0gZmFpbCwgbXV0 dWFsIHJlY3Vyc2lvbiB2aWEgcy5iLiB2aWV3cworRVJST1I6ICBpbmZpbml0ZSByZWN1cnNpb24g ZGV0ZWN0ZWQgaW4gcG9saWN5IGZvciByZWxhdGlvbiAicmVjMSIKKy0tCistLSBEaXJlY3QgYW5k IG11dHVhbCByZWN1cnNpb24gdmlhIEdSQVBIX1RBQkxFCistLQorU0VUIFNFU1NJT04gQVVUSE9S SVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKK0FMVEVSIFBPTElDWSByMSBPTiByZWMxIFVTSU5H ICh4ID0gKFNFTEVDVCB4IEZST00gR1JBUEhfVEFCTEUgKHJ0cGcgTUFUQ0ggKHI6IHJlYzEpIENP TFVNTlMgKHIueCwgci55KSkgV0hFUkUgeCA9IHkpKTsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJ T04gcmVncmVzc19ybHNfYm9iOworU0VMRUNUICogRlJPTSByZWMxOyAgICAtLSBmYWlsLCBkaXJl Y3QgcmVjdXJzaW9uIHZpYSBHUkFQSF9UQUJMRQorRVJST1I6ICBpbmZpbml0ZSByZWN1cnNpb24g ZGV0ZWN0ZWQgaW4gcG9saWN5IGZvciByZWxhdGlvbiAicmVjMSIKK1NFTEVDVCAqIEZST00gR1JB UEhfVEFCTEUgKHJ0cGcgTUFUQ0ggKHI6IHJlYzEpIENPTFVNTlMgKHIueCwgci55KSk7IC0tIGZh aWwsIGRpcmVjdCByZWN1cnNpb24gdmlhIEdSQVBIX1RBQkxFCitFUlJPUjogIGluZmluaXRlIHJl Y3Vyc2lvbiBkZXRlY3RlZCBpbiBwb2xpY3kgZm9yIHJlbGF0aW9uICJyZWMxIgorU0VUIFNFU1NJ T04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKK0FMVEVSIFBST1BFUlRZIEdSQVBI IHJ0cGcgQUREIFZFUlRFWCBUQUJMRVMgKHJlYzIgS0VZIChhKSk7CitBTFRFUiBQT0xJQ1kgcjEg T04gcmVjMSBVU0lORyAoeCA9IChTRUxFQ1QgYSBGUk9NIEdSQVBIX1RBQkxFIChydHBnIE1BVENI IChyOiByZWMyKSBDT0xVTU5TIChyLmEsIHIuYikpIFdIRVJFIGIgPSB5KSk7CitBTFRFUiBQT0xJ Q1kgcjIgT04gcmVjMiBVU0lORyAoYSA9IChTRUxFQ1QgeCBGUk9NIEdSQVBIX1RBQkxFIChydHBn IE1BVENIIChyOiByZWMxKSBDT0xVTU5TIChyLngsIHIueSkpV0hFUkUgeSA9IGIpKTsKK1NFVCBT RVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOworU0VMRUNUICogRlJPTSByZWMx OyAgICAtLSBmYWlsLCBtdXR1YWwgcmVjdXJzaW9uIHZpYSBHUkFQSF9UQUJMRQorRVJST1I6ICBp bmZpbml0ZSByZWN1cnNpb24gZGV0ZWN0ZWQgaW4gcG9saWN5IGZvciByZWxhdGlvbiAicmVjMSIK K1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHJ0cGcgTUFUQ0ggKHI6IHJlYzEpIENPTFVNTlMg KHIueCwgci55KSk7IC0tIGZhaWwsIG11dHVhbCByZWN1cnNpb24gdmlhIEdSQVBIX1RBQkxFCitF UlJPUjogIGluZmluaXRlIHJlY3Vyc2lvbiBkZXRlY3RlZCBpbiBwb2xpY3kgZm9yIHJlbGF0aW9u ICJyZWMxIgogLS0KIC0tIHJlY3Vyc2l2ZSBSTFMgYW5kIFZJRVdzIGluIHBvbGljeQogLS0KQEAg LTE0MTMsNyArMjE5Nyw5IEBAIENSRUFURSBUQUJMRSBzMSAoYSBpbnQsIGIgdGV4dCk7CiBJTlNF UlQgSU5UTyBzMSAoU0VMRUNUIHgsIHB1YmxpYy5maXBzaGFzaCh4Ojp0ZXh0KSBGUk9NIGdlbmVy YXRlX3NlcmllcygtMTAsMTApIHgpOwogQ1JFQVRFIFRBQkxFIHMyICh4IGludCwgeSB0ZXh0KTsK IElOU0VSVCBJTlRPIHMyIChTRUxFQ1QgeCwgcHVibGljLmZpcHNoYXNoKHg6OnRleHQpIEZST00g Z2VuZXJhdGVfc2VyaWVzKC02LDYpIHgpOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIHJ2dHBnIFZF UlRFWCBUQUJMRVMgKHMxIEtFWSAoYSkpOwogR1JBTlQgU0VMRUNUIE9OIHMxLCBzMiBUTyByZWdy ZXNzX3Jsc19ib2I7CitHUkFOVCBTRUxFQ1QgT04gcnZ0cGcgVE8gcmVncmVzc19ybHNfYm9iOwog Q1JFQVRFIFBPTElDWSBwMSBPTiBzMSBVU0lORyAoYSBpbiAoc2VsZWN0IHggZnJvbSBzMiB3aGVy ZSB5IGxpa2UgJyUyZiUnKSk7CiBDUkVBVEUgUE9MSUNZIHAyIE9OIHMyIFVTSU5HICh4IGluIChz ZWxlY3QgYSBmcm9tIHMxIHdoZXJlIGIgbGlrZSAnJTIyJScpKTsKIENSRUFURSBQT0xJQ1kgcDMg T04gczEgRk9SIElOU0VSVCBXSVRIIENIRUNLIChhID0gKFNFTEVDVCBhIEZST00gczEpKTsKQEAg LTE0MjMsNiArMjIwOSw4IEBAIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNf Ym9iOwogQ1JFQVRFIFZJRVcgdjIgQVMgU0VMRUNUICogRlJPTSBzMiBXSEVSRSB5IGxpa2UgJyVh ZiUnOwogU0VMRUNUICogRlJPTSBzMSBXSEVSRSBmX2xlYWsoYik7IC0tIGZhaWwgKGluZmluaXRl IHJlY3Vyc2lvbikKIEVSUk9SOiAgaW5maW5pdGUgcmVjdXJzaW9uIGRldGVjdGVkIGluIHBvbGlj eSBmb3IgcmVsYXRpb24gInMxIgorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocnZ0cGcgTUFU Q0ggKHMgOiBzMSkgV0hFUkUgZl9sZWFrKHMuYikgQ09MVU1OUyAocy5hLCBzLmIpKTsgLS0gZmFp bCAoaW5maW5pdGUgcmVjdXJzaW9uKQorRVJST1I6ICBpbmZpbml0ZSByZWN1cnNpb24gZGV0ZWN0 ZWQgaW4gcG9saWN5IGZvciByZWxhdGlvbiAiczEiCiBJTlNFUlQgSU5UTyBzMSBWQUxVRVMgKDEs ICdmb28nKTsgLS0gZmFpbCAoaW5maW5pdGUgcmVjdXJzaW9uKQogRVJST1I6ICBpbmZpbml0ZSBy ZWN1cnNpb24gZGV0ZWN0ZWQgaW4gcG9saWN5IGZvciByZWxhdGlvbiAiczEiCiBTRVQgU0VTU0lP TiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwpAQCAtMTQ0Niw2ICsyMjM0LDIzIEBA IEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBvbmx5IHMxIFdIRVJFIGZfbGVhayhi KTsKICAgICAgICAgICAgRmlsdGVyOiAoKCh4ICUgMikgPSAwKSBBTkQgKHkgfn4gJyUyZiUnOjp0 ZXh0KSkKICg1IHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHJ2dHBnIE1BVENI IChzIDogczEpIFdIRVJFIGZfbGVhayhzLmIpIENPTFVNTlMgKHMuYSwgcy5iKSk7CitOT1RJQ0U6 ICBmX2xlYWsgPT4gMDNiMjY5NDQ4OTA5MjlmZjc1MTY1M2FjYjJmMmFmNzkKKyBhICB8ICAgICAg ICAgICAgICAgIGIgICAgICAgICAgICAgICAgIAorLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgLTYgfCAwM2IyNjk0NDg5MDkyOWZmNzUxNjUzYWNiMmYyYWY3OQorKDEg cm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHJ2 dHBnIE1BVENIIChzIDogczEpIFdIRVJFIGZfbGVhayhzLmIpIENPTFVNTlMgKHMuYSwgcy5iKSk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHMxCisgICBGaWx0ZXI6ICgoQU5ZIChhID0g KGhhc2hlZCBTdWJQbGFuIDEpLmNvbDEpKSBBTkQgZl9sZWFrKGIpKQorICAgU3ViUGxhbiAxCisg ICAgIC0+ICBTZXEgU2NhbiBvbiBzMgorICAgICAgICAgICBGaWx0ZXI6ICgoKHggJSAyKSA9IDAp IEFORCAoeSB+fiAnJTJmJSc6OnRleHQpKQorKDUgcm93cykKKwogU0VUIFNFU1NJT04gQVVUSE9S SVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIEFMVEVSIFBPTElDWSBwMSBPTiBzMSBVU0lORyAo YSBpbiAoc2VsZWN0IHggZnJvbSB2MikpOyAtLSB1c2luZyBWSUVXIGluIFJMUyBwb2xpY3kKIFNF VCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwpAQCAtMTQ2Niw2ICsyMjcx LDIzIEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBzMSBXSEVSRSBmX2xlYWso Yik7CiAgICAgICAgICAgIEZpbHRlcjogKCgoeCAlIDIpID0gMCkgQU5EICh5IH5+ICclYWYlJzo6 dGV4dCkpCiAoNSByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChydnRwZyBNQVRD SCAocyA6IHMxKSBXSEVSRSBmX2xlYWsocy5iKSBDT0xVTU5TIChzLmEsIHMuYikpOworTk9USUNF OiAgZl9sZWFrID0+IDAzYjI2OTQ0ODkwOTI5ZmY3NTE2NTNhY2IyZjJhZjc5CisgYSAgfCAgICAg ICAgICAgICAgICBiICAgICAgICAgICAgICAgICAKKy0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIC02IHwgMDNiMjY5NDQ4OTA5MjlmZjc1MTY1M2FjYjJmMmFmNzkKKygx IHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChy dnRwZyBNQVRDSCAocyA6IHMxKSBXSEVSRSBmX2xlYWsocy5iKSBDT0xVTU5TIChzLmEsIHMuYikp OworICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBzMQorICAgRmlsdGVyOiAoKEFOWSAoYSA9 IChoYXNoZWQgU3ViUGxhbiAxKS5jb2wxKSkgQU5EIGZfbGVhayhiKSkKKyAgIFN1YlBsYW4gMQor ICAgICAtPiAgU2VxIFNjYW4gb24gczIKKyAgICAgICAgICAgRmlsdGVyOiAoKCh4ICUgMikgPSAw KSBBTkQgKHkgfn4gJyVhZiUnOjp0ZXh0KSkKKyg1IHJvd3MpCisKIFNFTEVDVCAoU0VMRUNUIHgg RlJPTSBzMSBMSU1JVCAxKSB4eCwgKiBGUk9NIHMyIFdIRVJFIHkgbGlrZSAnJTI4JSc7CiAgeHgg fCB4ICB8ICAgICAgICAgICAgICAgIHkgICAgICAgICAgICAgICAgIAogLS0tLSstLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE0OTEsNiArMjMxMyw4IEBAIEFMVEVS IFBPTElDWSBwMiBPTiBzMiBVU0lORyAoeCBpbiAoc2VsZWN0IGEgZnJvbSBzMSB3aGVyZSBiIGxp a2UgJyVkMiUnKSk7CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsK IFNFTEVDVCAqIEZST00gczEgV0hFUkUgZl9sZWFrKGIpOwktLSBmYWlsIChpbmZpbml0ZSByZWN1 cnNpb24gdmlhIHZpZXcpCiBFUlJPUjogIGluZmluaXRlIHJlY3Vyc2lvbiBkZXRlY3RlZCBpbiBw b2xpY3kgZm9yIHJlbGF0aW9uICJzMSIKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHJ2dHBn IE1BVENIIChzIDogczEpIFdIRVJFIGZfbGVhayhzLmIpIENPTFVNTlMgKHMuYSwgcy5iKSk7CS0t IGZhaWwgKGluZmluaXRlIHJlY3Vyc2lvbiB2aWEgdmlldykKK0VSUk9SOiAgaW5maW5pdGUgcmVj dXJzaW9uIGRldGVjdGVkIGluIHBvbGljeSBmb3IgcmVsYXRpb24gInMxIgogLS0gcHJlcGFyZWQg c3RhdGVtZW50IHdpdGggcmVncmVzc19ybHNfYWxpY2UgcHJpdmlsZWdlCiBQUkVQQVJFIHAxKGlu dCkgQVMgU0VMRUNUICogRlJPTSB0MSBXSEVSRSBhIDw9ICQxOwogRVhFQ1VURSBwMSgyKTsKQEAg LTE1MTMsNiArMjMzNywyNyBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcDEoMik7CiAg ICAgICAgICBGaWx0ZXI6ICgoYSA8PSAyKSBBTkQgKChhICUgMikgPSAwKSkKICg3IHJvd3MpCiAK K1BSRVBBUkUgcHBnMShpbnQpIEFTIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFU Q0ggKHQgOiB0MSkgV0hFUkUgdC5hIDw9ICQxIENPTFVNTlMgKHQuaWQsIHQuYSwgdC5iKSk7CitF WEVDVVRFIHBwZzEoMik7CisgaWQgIHwgYSB8ICBiICAKKy0tLS0tKy0tLSstLS0tLQorIDEwMiB8 IDIgfCBiYmIKKyAyMDIgfCAyIHwgYmNkCisgMzAyIHwgMiB8IHl5eQorKDMgcm93cykKKworRVhQ TEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBwZzEoMik7CisgICAgICAgICAgICAgICAgICBRVUVS WSBQTEFOICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgQXBwZW5kCisgICAtPiAgU2VxIFNjYW4gb24gdDEgdDFfMQorICAg ICAgICAgRmlsdGVyOiAoKGEgPD0gMikgQU5EICgoYSAlIDIpID0gMCkpCisgICAtPiAgU2VxIFNj YW4gb24gdDIgdDFfMgorICAgICAgICAgRmlsdGVyOiAoKGEgPD0gMikgQU5EICgoYSAlIDIpID0g MCkpCisgICAtPiAgU2VxIFNjYW4gb24gdDMgdDFfMworICAgICAgICAgRmlsdGVyOiAoKGEgPD0g MikgQU5EICgoYSAlIDIpID0gMCkpCisoNyByb3dzKQorCiAtLSBzdXBlcnVzZXIgaXMgYWxsb3dl ZCB0byBieXBhc3MgUkxTIGNoZWNrcwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwogU0VU IHJvd19zZWN1cml0eSBUTyBPRkY7CkBAIC0xNTc5LDYgKzI0MjQsMjkgQEAgRVhQTEFJTiAoQ09T VFMgT0ZGKSBFWEVDVVRFIHAxKDIpOwogICAgICAgICAgRmlsdGVyOiAoYSA8PSAyKQogKDcgcm93 cykKIAorRVhFQ1VURSBwcGcxKDIpOworIGlkICB8IGEgfCAgYiAgCistLS0tLSstLS0rLS0tLS0K KyAxMDEgfCAxIHwgYWJhCisgMTAyIHwgMiB8IGJiYgorIDIwMSB8IDEgfCBhYmMKKyAyMDIgfCAy IHwgYmNkCisgMzAxIHwgMSB8IHh4eAorIDMwMiB8IDIgfCB5eXkKKyg2IHJvd3MpCisKK0VYUExB SU4gKENPU1RTIE9GRikgRVhFQ1VURSBwcGcxKDIpOworICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBcHBlbmQKKyAgIC0+ICBTZXEgU2Nh biBvbiB0MSB0MV8xCisgICAgICAgICBGaWx0ZXI6IChhIDw9IDIpCisgICAtPiAgU2VxIFNjYW4g b24gdDIgdDFfMgorICAgICAgICAgRmlsdGVyOiAoYSA8PSAyKQorICAgLT4gIFNlcSBTY2FuIG9u IHQzIHQxXzMKKyAgICAgICAgIEZpbHRlcjogKGEgPD0gMikKKyg3IHJvd3MpCisKIFBSRVBBUkUg cDIoaW50KSBBUyBTRUxFQ1QgKiBGUk9NIHQxIFdIRVJFIGEgPSAkMTsKIEVYRUNVVEUgcDIoMik7 CiAgaWQgIHwgYSB8ICBiICAKQEAgLTE2MDAsNiArMjQ2OCwyNyBAQCBFWFBMQUlOIChDT1NUUyBP RkYpIEVYRUNVVEUgcDIoMik7CiAgICAgICAgICBGaWx0ZXI6IChhID0gMikKICg3IHJvd3MpCiAK K1BSRVBBUkUgcHBnMihpbnQpIEFTIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFU Q0ggKHQgOiB0MSkgV0hFUkUgdC5hID0gJDEgQ09MVU1OUyAodC5pZCwgdC5hLCB0LmIpKTsKK0VY RUNVVEUgcHBnMigyKTsKKyBpZCAgfCBhIHwgIGIgIAorLS0tLS0rLS0tKy0tLS0tCisgMTAyIHwg MiB8IGJiYgorIDIwMiB8IDIgfCBiY2QKKyAzMDIgfCAyIHwgeXl5CisoMyByb3dzKQorCitFWFBM QUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcHBnMigyKTsKKyAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQXBwZW5kCisgICAtPiAgU2VxIFNj YW4gb24gdDEgdDFfMQorICAgICAgICAgRmlsdGVyOiAoYSA9IDIpCisgICAtPiAgU2VxIFNjYW4g b24gdDIgdDFfMgorICAgICAgICAgRmlsdGVyOiAoYSA9IDIpCisgICAtPiAgU2VxIFNjYW4gb24g dDMgdDFfMworICAgICAgICAgRmlsdGVyOiAoYSA9IDIpCisoNyByb3dzKQorCiAtLSBhbHNvLCBj YXNlIHdoZW4gcHJpdmlsZWdlIHN3aXRjaCBmcm9tIHN1cGVydXNlcgogU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9OOwpAQCAt MTYyMyw2ICsyNTEyLDI2IEBAIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwMigyKTsKICAg ICAgICAgIEZpbHRlcjogKChhID0gMikgQU5EICgoYSAlIDIpID0gMCkpCiAoNyByb3dzKQogCitF WEVDVVRFIHBwZzIoMik7CisgaWQgIHwgYSB8ICBiICAKKy0tLS0tKy0tLSstLS0tLQorIDEwMiB8 IDIgfCBiYmIKKyAyMDIgfCAyIHwgYmNkCisgMzAyIHwgMiB8IHl5eQorKDMgcm93cykKKworRVhQ TEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBwZzIoMik7CisgICAgICAgICAgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIEFwcGVuZAorICAgLT4gIFNlcSBTY2FuIG9uIHQxIHQxXzEKKyAgICAg ICAgIEZpbHRlcjogKChhID0gMikgQU5EICgoYSAlIDIpID0gMCkpCisgICAtPiAgU2VxIFNjYW4g b24gdDIgdDFfMgorICAgICAgICAgRmlsdGVyOiAoKGEgPSAyKSBBTkQgKChhICUgMikgPSAwKSkK KyAgIC0+ICBTZXEgU2NhbiBvbiB0MyB0MV8zCisgICAgICAgICBGaWx0ZXI6ICgoYSA9IDIpIEFO RCAoKGEgJSAyKSA9IDApKQorKDcgcm93cykKKwogLS0KIC0tIFVQREFURSAvIERFTEVURSBhbmQg Um93LWxldmVsIHNlY3VyaXR5CiAtLQpAQCAtMTkwMyw2ICsyODEyLDggQEAgR1JBTlQgQUxMIE9O IGIxIFRPIHJlZ3Jlc3NfcmxzX2JvYjsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVz c19ybHNfYm9iOwogQ1JFQVRFIFZJRVcgYnYxIFdJVEggKHNlY3VyaXR5X2JhcnJpZXIpIEFTIFNF TEVDVCAqIEZST00gYjEgV0hFUkUgYSA+IDAgV0lUSCBDSEVDSyBPUFRJT047CiBHUkFOVCBBTEwg T04gYnYxIFRPIHJlZ3Jlc3NfcmxzX2Nhcm9sOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIHNidnBn IFZFUlRFWCBUQUJMRVMgKGJ2MSBLRVkgKGEpKTsKK0dSQU5UIEFMTCBPTiBzYnZwZyBUTyByZWdy ZXNzX3Jsc19jYXJvbDsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fy b2w7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gYnYxIFdIRVJFIGZfbGVhayhi KTsKICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgIApAQCAtMTky OCw2ICsyODM5LDMwIEBAIE5PVElDRTogIGZfbGVhayA9PiA0YTQ0ZGMxNTM2NDIwNGE4MGZlODBl OTAzOTQ1NWNjMQogIDEwIHwgNGE0NGRjMTUzNjQyMDRhODBmZTgwZTkwMzk0NTVjYzEKICg1IHJv d3MpCiAKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoc2J2 cGcgTUFUQ0ggKGIgOiBidjEpIFdIRVJFIGZfbGVhayhiLmIpIENPTFVNTlMgKGIuYSwgYi5iKSk7 CisgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFN1YnF1ZXJ5IFNjYW4gb24g YnYxCisgICBGaWx0ZXI6IGZfbGVhayhidjEuYikKKyAgIC0+ICBTZXEgU2NhbiBvbiBiMQorICAg ICAgICAgRmlsdGVyOiAoKGEgPiAwKSBBTkQgKChhICUgMikgPSAwKSkKKyg0IHJvd3MpCisKK1NF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHNidnBnIE1BVENIIChiIDogYnYxKSBXSEVSRSBmX2xl YWsoYi5iKSBDT0xVTU5TIChiLmEsIGIuYikpOworTk9USUNFOiAgZl9sZWFrID0+IGQ0NzM1ZTNh MjY1ZTE2ZWVlMDNmNTk3MThiOWI1ZDAzCitOT1RJQ0U6ICBmX2xlYWsgPT4gNGIyMjc3NzdkNGRk MWZjNjFjNmY4ODRmNDg2NDFkMDIKK05PVElDRTogIGZfbGVhayA9PiBlN2Y2YzAxMTc3NmU4ZGI3 Y2QzMzBiNTQxNzRmZDc2ZgorTk9USUNFOiAgZl9sZWFrID0+IDJjNjI0MjMyY2RkMjIxNzcxMjk0 ZGZiYjMxMGFjYTAwCitOT1RJQ0U6ICBmX2xlYWsgPT4gNGE0NGRjMTUzNjQyMDRhODBmZTgwZTkw Mzk0NTVjYzEKKyBhICB8ICAgICAgICAgICAgICAgIGIgICAgICAgICAgICAgICAgIAorLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIDIgfCBkNDczNWUzYTI2NWUxNmVl ZTAzZjU5NzE4YjliNWQwMworICA0IHwgNGIyMjc3NzdkNGRkMWZjNjFjNmY4ODRmNDg2NDFkMDIK KyAgNiB8IGU3ZjZjMDExNzc2ZThkYjdjZDMzMGI1NDE3NGZkNzZmCisgIDggfCAyYzYyNDIzMmNk ZDIyMTc3MTI5NGRmYmIzMTBhY2EwMAorIDEwIHwgNGE0NGRjMTUzNjQyMDRhODBmZTgwZTkwMzk0 NTVjYzEKKyg1IHJvd3MpCisKIElOU0VSVCBJTlRPIGJ2MSBWQUxVRVMgKC0xLCAneHh4Jyk7IC0t IHNob3VsZCBmYWlsIHZpZXcgV0NPCiBFUlJPUjogIG5ldyByb3cgdmlvbGF0ZXMgcm93LWxldmVs IHNlY3VyaXR5IHBvbGljeSBmb3IgdGFibGUgImIxIgogSU5TRVJUIElOVE8gYnYxIFZBTFVFUyAo MTEsICd4eHgnKTsgLS0gc2hvdWxkIGZhaWwgUkxTIGNoZWNrCkBAIC0yMzYzLDcgKzMyOTgsOCBA QCBTRUxFQ1QgKiBGUk9NIGRvY3VtZW50OwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdy ZXNzX3Jsc19hbGljZTsKIENSRUFURSBUQUJMRSB6MSAoYSBpbnQsIGIgdGV4dCk7CiBDUkVBVEUg VEFCTEUgejIgKGEgaW50LCBiIHRleHQpOwotR1JBTlQgU0VMRUNUIE9OIHoxLHoyIFRPIHJlZ3Jl c3NfcmxzX2dyb3VwMSwgcmVncmVzc19ybHNfZ3JvdXAyLAorQ1JFQVRFIFBST1BFUlRZIEdSQVBI IGd0cGcgVkVSVEVYIFRBQkxFUyAoejEgS0VZIChhKSwgejIgS0VZIChhKSk7CitHUkFOVCBTRUxF Q1QgT04gejEsejIsIGd0cGcgVE8gcmVncmVzc19ybHNfZ3JvdXAxLCByZWdyZXNzX3Jsc19ncm91 cDIsCiAgICAgcmVncmVzc19ybHNfYm9iLCByZWdyZXNzX3Jsc19jYXJvbDsKIElOU0VSVCBJTlRP IHoxIFZBTFVFUwogICAgICgxLCAnYWJhJyksCkBAIC0yMzkwLDYgKzMzMjYsMjIgQEAgRVhQTEFJ TiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHoxIFdIRVJFIGZfbGVhayhiKTsKICAgIEZpbHRl cjogKCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKICgyIHJvd3MpCiAKK1NFTEVDVCAqIEZS T00gR1JBUEhfVEFCTEUgKGd0cGcgTUFUQ0ggKHogOiB6MSkgV0hFUkUgZl9sZWFrKHouYikgQ09M VU1OUyAoei5hLCB6LmIpKTsKK05PVElDRTogIGZfbGVhayA9PiBiYmIKK05PVElDRTogIGZfbGVh ayA9PiBkYWQKKyBhIHwgIGIgIAorLS0tKy0tLS0tCisgMiB8IGJiYgorIDQgfCBkYWQKKygyIHJv d3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZ3Rw ZyBNQVRDSCAoeiA6IHoxKSBXSEVSRSBmX2xlYWsoei5iKSBDT0xVTU5TICh6LmEsIHouYikpOwor ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gejEKKyAgIEZpbHRlcjog KCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKKygyIHJvd3MpCisKIFBSRVBBUkUgcGxhbmNh Y2hlX3Rlc3QgQVMgU0VMRUNUICogRlJPTSB6MSBXSEVSRSBmX2xlYWsoYik7CiBFWFBMQUlOIChD T1NUUyBPRkYpIEVYRUNVVEUgcGxhbmNhY2hlX3Rlc3Q7CiAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgIApAQCAtMjM5OCw2ICszMzUwLDE0IEBAIEVYUExBSU4gKENPU1RT IE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfdGVzdDsKICAgIEZpbHRlcjogKCgoYSAlIDIpID0gMCkg QU5EIGZfbGVhayhiKSkKICgyIHJvd3MpCiAKK1BSRVBBUkUgcGxhbmNhY2hlX3BnX3Rlc3QgQVMg U0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZ3RwZyBNQVRDSCAoeiA6IHoxKSBXSEVSRSBmX2xl YWsoei5iKSBDT0xVTU5TICh6LmEsIHouYikpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRF IHBsYW5jYWNoZV9wZ190ZXN0OworICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNj YW4gb24gejEKKyAgIEZpbHRlcjogKCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKKygyIHJv d3MpCisKIFBSRVBBUkUgcGxhbmNhY2hlX3Rlc3QyIEFTIFdJVEggcSBBUyBNQVRFUklBTElaRUQg KFNFTEVDVCAqIEZST00gejEgV0hFUkUgZl9sZWFrKGIpKSBTRUxFQ1QgKiBGUk9NIHEsejI7CiBF WFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcGxhbmNhY2hlX3Rlc3QyOwogICAgICAgICAgICAg ICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgIApAQCAtMjQxMSw2ICszMzcxLDE5 IEBAIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfdGVzdDI7CiAgICAgICAg ICAtPiAgU2VxIFNjYW4gb24gejIKICg3IHJvd3MpCiAKK1BSRVBBUkUgcGxhbmNhY2hlX3BnX3Rl c3QyIEFTIFdJVEggcSBBUyBNQVRFUklBTElaRUQgKFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUg KGd0cGcgTUFUQ0ggKHogOiB6MSkgV0hFUkUgZl9sZWFrKHouYikgQ09MVU1OUyh6LmEsIHouYikp KSBTRUxFQ1QgKiBGUk9NIHEsIEdSQVBIX1RBQkxFIChndHBnIE1BVENIICh6IDogejIpIENPTFVN TlMgKHouYSwgei5iKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcGxhbmNhY2hlX3Bn X3Rlc3QyOworICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIE5l c3RlZCBMb29wCisgICBDVEUgcQorICAgICAtPiAgU2VxIFNjYW4gb24gejEKKyAgICAgICAgICAg RmlsdGVyOiAoKChhICUgMikgPSAwKSBBTkQgZl9sZWFrKGIpKQorICAgLT4gIENURSBTY2FuIG9u IHEKKyAgIC0+ICBNYXRlcmlhbGl6ZQorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHoyCisoNyBy b3dzKQorCiBQUkVQQVJFIHBsYW5jYWNoZV90ZXN0MyBBUyBXSVRIIHEgQVMgTUFURVJJQUxJWkVE IChTRUxFQ1QgKiBGUk9NIHoyKSBTRUxFQ1QgKiBGUk9NIHEsejEgV0hFUkUgZl9sZWFrKHoxLmIp OwogRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV90ZXN0MzsKICAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgCkBAIC0yNDI0LDYg KzMzOTcsMTkgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV90ZXN0MzsK ICAgICAgICAgICAgICAgIEZpbHRlcjogKCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKICg3 IHJvd3MpCiAKK1BSRVBBUkUgcGxhbmNhY2hlX3BnX3Rlc3QzIEFTIFdJVEggcSBBUyBNQVRFUklB TElaRUQgKFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGd0cGcgTUFUQ0ggKHogOiB6MikgQ09M VU1OUyh6LmEsIHouYikpKSBTRUxFQ1QgKiBGUk9NIHEsIEdSQVBIX1RBQkxFIChndHBnIE1BVENI ICh6IDogejEpIFdIRVJFIGZfbGVhayh6LmIpIENPTFVNTlMgKHouYSwgei5iKSk7CitFWFBMQUlO IChDT1NUUyBPRkYpIEVYRUNVVEUgcGxhbmNhY2hlX3BnX3Rlc3QzOworICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgTmVzdGVkIExvb3AKKyAgIENU RSBxCisgICAgIC0+ICBTZXEgU2NhbiBvbiB6MgorICAgLT4gIENURSBTY2FuIG9uIHEKKyAgIC0+ ICBNYXRlcmlhbGl6ZQorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHoxCisgICAgICAgICAgICAg ICBGaWx0ZXI6ICgoKGEgJSAyKSA9IDApIEFORCBmX2xlYWsoYikpCisoNyByb3dzKQorCiBTRVQg Uk9MRSByZWdyZXNzX3Jsc19ncm91cDE7CiBTRUxFQ1QgKiBGUk9NIHoxIFdIRVJFIGZfbGVhayhi KTsKIE5PVElDRTogIGZfbGVhayA9PiBiYmIKQEAgLTI0NDEsNiArMzQyNywyMiBAQCBFWFBMQUlO IChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gejEgV0hFUkUgZl9sZWFrKGIpOwogICAgRmlsdGVy OiAoKChhICUgMikgPSAwKSBBTkQgZl9sZWFrKGIpKQogKDIgcm93cykKIAorU0VMRUNUICogRlJP TSBHUkFQSF9UQUJMRSAoZ3RwZyBNQVRDSCAoeiA6IHoxKSBXSEVSRSBmX2xlYWsoei5iKSBDT0xV TU5TICh6LmEsIHouYikpOworTk9USUNFOiAgZl9sZWFrID0+IGJiYgorTk9USUNFOiAgZl9sZWFr ID0+IGRhZAorIGEgfCAgYiAgCistLS0rLS0tLS0KKyAyIHwgYmJiCisgNCB8IGRhZAorKDIgcm93 cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChndHBn IE1BVENIICh6IDogejEpIFdIRVJFIGZfbGVhayh6LmIpIENPTFVNTlMgKHouYSwgei5iKSk7Cisg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB6MQorICAgRmlsdGVyOiAo KChhICUgMikgPSAwKSBBTkQgZl9sZWFrKGIpKQorKDIgcm93cykKKwogRVhQTEFJTiAoQ09TVFMg T0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV90ZXN0OwogICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CkBAIC0yNDcyLDQzICszNDc0LDI2IEBAIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFu Y2FjaGVfdGVzdDM7CiAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoKGEgJSAyKSA9IDApIEFORCBm X2xlYWsoYikpCiAoNyByb3dzKQogCi1TRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nf cmxzX2Nhcm9sOwotU0VMRUNUICogRlJPTSB6MSBXSEVSRSBmX2xlYWsoYik7Ci1OT1RJQ0U6ICBm X2xlYWsgPT4gYWJhCi1OT1RJQ0U6ICBmX2xlYWsgPT4gY2NjCi0gYSB8ICBiICAKLS0tLSstLS0t LQotIDEgfCBhYmEKLSAzIHwgY2NjCi0oMiByb3dzKQotCi1FWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCAqIEZST00gejEgV0hFUkUgZl9sZWFrKGIpOwotICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCi0gU2VxIFNjYW4gb24gejEKLSAgIEZpbHRlcjogKCgoYSAlIDIpID0gMSkgQU5EIGZfbGVh ayhiKSkKLSgyIHJvd3MpCi0KLUVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVf dGVzdDsKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfcGdfdGVzdDsKICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFNlcSBTY2FuIG9uIHoxCi0gICBGaWx0ZXI6ICgo KGEgJSAyKSA9IDEpIEFORCBmX2xlYWsoYikpCisgICBGaWx0ZXI6ICgoKGEgJSAyKSA9IDApIEFO RCBmX2xlYWsoYikpCiAoMiByb3dzKQogCi1FWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcGxh bmNhY2hlX3Rlc3QyOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190 ZXN0MjsKICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAK IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBOZXN0 ZWQgTG9vcAogICAgQ1RFIHEKICAgICAgLT4gIFNlcSBTY2FuIG9uIHoxCi0gICAgICAgICAgIEZp bHRlcjogKCgoYSAlIDIpID0gMSkgQU5EIGZfbGVhayhiKSkKKyAgICAgICAgICAgRmlsdGVyOiAo KChhICUgMikgPSAwKSBBTkQgZl9sZWFrKGIpKQogICAgLT4gIENURSBTY2FuIG9uIHEKICAgIC0+ ICBNYXRlcmlhbGl6ZQogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHoyCiAoNyByb3dzKQogCi1F WFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcGxhbmNhY2hlX3Rlc3QzOworRVhQTEFJTiAoQ09T VFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0MzsKICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIE5lc3RlZCBMb29wCkBAIC0yNTE3LDEw ICszNTAyLDEwIEBAIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfdGVzdDM7 CiAgICAtPiAgQ1RFIFNjYW4gb24gcQogICAgLT4gIE1hdGVyaWFsaXplCiAgICAgICAgICAtPiAg U2VxIFNjYW4gb24gejEKLSAgICAgICAgICAgICAgIEZpbHRlcjogKCgoYSAlIDIpID0gMSkgQU5E IGZfbGVhayhiKSkKKyAgICAgICAgICAgICAgIEZpbHRlcjogKCgoYSAlIDIpID0gMCkgQU5EIGZf bGVhayhiKSkKICg3IHJvd3MpCiAKLVNFVCBST0xFIHJlZ3Jlc3NfcmxzX2dyb3VwMjsKK1NFVCBT RVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIHox IFdIRVJFIGZfbGVhayhiKTsKIE5PVElDRTogIGZfbGVhayA9PiBhYmEKIE5PVElDRTogIGZfbGVh ayA9PiBjY2MKQEAgLTI1MzcsNyArMzUyMiwxMTggQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxF Q1QgKiBGUk9NIHoxIFdIRVJFIGZfbGVhayhiKTsKICAgIEZpbHRlcjogKCgoYSAlIDIpID0gMSkg QU5EIGZfbGVhayhiKSkKICgyIHJvd3MpCiAKLUVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBw bGFuY2FjaGVfdGVzdDsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGd0cGcgTUFUQ0ggKHog OiB6MSkgV0hFUkUgZl9sZWFrKHouYikgQ09MVU1OUyAoei5hLCB6LmIpKTsKK05PVElDRTogIGZf bGVhayA9PiBhYmEKK05PVElDRTogIGZfbGVhayA9PiBjY2MKKyBhIHwgIGIgIAorLS0tKy0tLS0t CisgMSB8IGFiYQorIDMgfCBjY2MKKygyIHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VM RUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZ3RwZyBNQVRDSCAoeiA6IHoxKSBXSEVSRSBmX2xlYWso ei5iKSBDT0xVTU5TICh6LmEsIHouYikpOworICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg U2VxIFNjYW4gb24gejEKKyAgIEZpbHRlcjogKCgoYSAlIDIpID0gMSkgQU5EIGZfbGVhayhiKSkK KygyIHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfdGVzdDsK KyAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHoxCisgICBGaWx0ZXI6 ICgoKGEgJSAyKSA9IDEpIEFORCBmX2xlYWsoYikpCisoMiByb3dzKQorCitFWFBMQUlOIChDT1NU UyBPRkYpIEVYRUNVVEUgcGxhbmNhY2hlX3Rlc3QyOworICAgICAgICAgICAgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIE5lc3RlZCBMb29wCisgICBDVEUgcQorICAgICAtPiAgU2Vx IFNjYW4gb24gejEKKyAgICAgICAgICAgRmlsdGVyOiAoKChhICUgMikgPSAxKSBBTkQgZl9sZWFr KGIpKQorICAgLT4gIENURSBTY2FuIG9uIHEKKyAgIC0+ICBNYXRlcmlhbGl6ZQorICAgICAgICAg LT4gIFNlcSBTY2FuIG9uIHoyCisoNyByb3dzKQorCitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNV VEUgcGxhbmNhY2hlX3Rlc3QzOworICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgTmVzdGVkIExvb3AKKyAgIENURSBxCisgICAgIC0+ICBTZXEgU2Nh biBvbiB6MgorICAgLT4gIENURSBTY2FuIG9uIHEKKyAgIC0+ICBNYXRlcmlhbGl6ZQorICAgICAg ICAgLT4gIFNlcSBTY2FuIG9uIHoxCisgICAgICAgICAgICAgICBGaWx0ZXI6ICgoKGEgJSAyKSA9 IDEpIEFORCBmX2xlYWsoYikpCisoNyByb3dzKQorCitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNV VEUgcGxhbmNhY2hlX3BnX3Rlc3Q7CisgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEg U2NhbiBvbiB6MQorICAgRmlsdGVyOiAoKChhICUgMikgPSAxKSBBTkQgZl9sZWFrKGIpKQorKDIg cm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0MjsK KyAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBOZXN0ZWQgTG9v cAorICAgQ1RFIHEKKyAgICAgLT4gIFNlcSBTY2FuIG9uIHoxCisgICAgICAgICAgIEZpbHRlcjog KCgoYSAlIDIpID0gMSkgQU5EIGZfbGVhayhiKSkKKyAgIC0+ICBDVEUgU2NhbiBvbiBxCisgICAt PiAgTWF0ZXJpYWxpemUKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB6MgorKDcgcm93cykKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0MzsKKyAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIE5lc3RlZCBMb29w CisgICBDVEUgcQorICAgICAtPiAgU2VxIFNjYW4gb24gejIKKyAgIC0+ICBDVEUgU2NhbiBvbiBx CisgICAtPiAgTWF0ZXJpYWxpemUKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB6MQorICAgICAg ICAgICAgICAgRmlsdGVyOiAoKChhICUgMikgPSAxKSBBTkQgZl9sZWFrKGIpKQorKDcgcm93cykK KworU0VUIFJPTEUgcmVncmVzc19ybHNfZ3JvdXAyOworU0VMRUNUICogRlJPTSB6MSBXSEVSRSBm X2xlYWsoYik7CitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJhCitOT1RJQ0U6ICBmX2xlYWsgPT4gY2Nj CisgYSB8ICBiICAKKy0tLSstLS0tLQorIDEgfCBhYmEKKyAzIHwgY2NjCisoMiByb3dzKQorCitF WFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gejEgV0hFUkUgZl9sZWFrKGIpOworICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gejEKKyAgIEZpbHRlcjogKCgo YSAlIDIpID0gMSkgQU5EIGZfbGVhayhiKSkKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZST00gR1JB UEhfVEFCTEUgKGd0cGcgTUFUQ0ggKHogOiB6MSkgV0hFUkUgZl9sZWFrKHouYikgQ09MVU1OUyAo ei5hLCB6LmIpKTsKK05PVElDRTogIGZfbGVhayA9PiBhYmEKK05PVElDRTogIGZfbGVhayA9PiBj Y2MKKyBhIHwgIGIgIAorLS0tKy0tLS0tCisgMSB8IGFiYQorIDMgfCBjY2MKKygyIHJvd3MpCisK K0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZ3RwZyBNQVRD SCAoeiA6IHoxKSBXSEVSRSBmX2xlYWsoei5iKSBDT0xVTU5TICh6LmEsIHouYikpOworICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gejEKKyAgIEZpbHRlcjogKCgoYSAl IDIpID0gMSkgQU5EIGZfbGVhayhiKSkKKygyIHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikg RVhFQ1VURSBwbGFuY2FjaGVfdGVzdDsKICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFNl cSBTY2FuIG9uIHoxCkBAIC0yNTY4LDEzICszNjY0LDQ2IEBAIEVYUExBSU4gKENPU1RTIE9GRikg RVhFQ1VURSBwbGFuY2FjaGVfdGVzdDM7CiAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoKGEgJSAy KSA9IDEpIEFORCBmX2xlYWsoYikpCiAoNyByb3dzKQogCitFWFBMQUlOIChDT1NUUyBPRkYpIEVY RUNVVEUgcGxhbmNhY2hlX3BnX3Rlc3Q7CisgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBT ZXEgU2NhbiBvbiB6MQorICAgRmlsdGVyOiAoKChhICUgMikgPSAxKSBBTkQgZl9sZWFrKGIpKQor KDIgcm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0 MjsKKyAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBOZXN0ZWQg TG9vcAorICAgQ1RFIHEKKyAgICAgLT4gIFNlcSBTY2FuIG9uIHoxCisgICAgICAgICAgIEZpbHRl cjogKCgoYSAlIDIpID0gMSkgQU5EIGZfbGVhayhiKSkKKyAgIC0+ICBDVEUgU2NhbiBvbiBxCisg ICAtPiAgTWF0ZXJpYWxpemUKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB6MgorKDcgcm93cykK KworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0MzsKKyAgICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIE5lc3RlZCBM b29wCisgICBDVEUgcQorICAgICAtPiAgU2VxIFNjYW4gb24gejIKKyAgIC0+ICBDVEUgU2NhbiBv biBxCisgICAtPiAgTWF0ZXJpYWxpemUKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB6MQorICAg ICAgICAgICAgICAgRmlsdGVyOiAoKChhICUgMikgPSAxKSBBTkQgZl9sZWFrKGIpKQorKDcgcm93 cykKKwogLS0KIC0tIFZpZXdzIHNob3VsZCBmb2xsb3cgcG9saWN5IGZvciB2aWV3IG93bmVyLgog LS0KIC0tIFZpZXcgYW5kIFRhYmxlIG93bmVyIGFyZSB0aGUgc2FtZS4KIFNFVCBTRVNTSU9OIEFV VEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiBDUkVBVEUgVklFVyBybHNfdmlldyBBUyBT RUxFQ1QgKiBGUk9NIHoxIFdIRVJFIGZfbGVhayhiKTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCB2 dHBnIFZFUlRFWCBUQUJMRVMgKHJsc192aWV3IEtFWSAoYSkpOwogR1JBTlQgU0VMRUNUIE9OIHJs c192aWV3IFRPIHJlZ3Jlc3NfcmxzX2JvYjsKK0dSQU5UIFNFTEVDVCBPTiB2dHBnIFRPIHJlZ3Jl c3NfcmxzX2JvYjsKIC0tIFF1ZXJ5IGFzIHJvbGUgdGhhdCBpcyBub3Qgb3duZXIgb2YgdmlldyBv ciB0YWJsZS4gIFNob3VsZCByZXR1cm4gYWxsIHJlY29yZHMuCiBTRVQgU0VTU0lPTiBBVVRIT1JJ WkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIFNFTEVDVCAqIEZST00gcmxzX3ZpZXc7CkBAIC0yNTk3 LDYgKzM3MjYsMjYgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3 OwogICAgRmlsdGVyOiBmX2xlYWsoYikKICgyIHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhf VEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworTk9U SUNFOiAgZl9sZWFrID0+IGFiYQorTk9USUNFOiAgZl9sZWFrID0+IGJiYgorTk9USUNFOiAgZl9s ZWFrID0+IGNjYworTk9USUNFOiAgZl9sZWFrID0+IGRhZAorIGEgfCAgYiAgCistLS0rLS0tLS0K KyAxIHwgYWJhCisgMiB8IGJiYgorIDMgfCBjY2MKKyA0IHwgZGFkCisoNCByb3dzKQorCitFWFBM QUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6 IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworICAgICBRVUVSWSBQTEFOICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB6MQorICAgRmlsdGVyOiBmX2xlYWso YikKKygyIHJvd3MpCisKIC0tIFF1ZXJ5IGFzIHZpZXcvdGFibGUgb3duZXIuICBTaG91bGQgcmV0 dXJuIGFsbCByZWNvcmRzLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19h bGljZTsKIFNFTEVDVCAqIEZST00gcmxzX3ZpZXc7CkBAIC0yNjE5LDExICszNzY4LDM0IEBAIEVY UExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsKICAgIEZpbHRlcjogZl9s ZWFrKGIpCiAoMiByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENI IChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsKK05PVElDRTogIGZfbGVhayA9PiBh YmEKK05PVElDRTogIGZfbGVhayA9PiBiYmIKK05PVElDRTogIGZfbGVhayA9PiBjY2MKK05PVElD RTogIGZfbGVhayA9PiBkYWQKKyBhIHwgIGIgIAorLS0tKy0tLS0tCisgMSB8IGFiYQorIDIgfCBi YmIKKyAzIHwgY2NjCisgNCB8IGRhZAorKDQgcm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBT RUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1O UyAoci5hLCByLmIpKTsKKyAgICAgUVVFUlkgUExBTiAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgU2VxIFNjYW4gb24gejEKKyAgIEZpbHRlcjogZl9sZWFrKGIpCisoMiByb3dzKQorCitE Uk9QIFBST1BFUlRZIEdSQVBIIHZ0cGc7CiBEUk9QIFZJRVcgcmxzX3ZpZXc7CiAtLSBWaWV3IGFu ZCBUYWJsZSBvd25lcnMgYXJlIGRpZmZlcmVudC4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04g cmVncmVzc19ybHNfYm9iOwogQ1JFQVRFIFZJRVcgcmxzX3ZpZXcgQVMgU0VMRUNUICogRlJPTSB6 MSBXSEVSRSBmX2xlYWsoYik7CiBHUkFOVCBTRUxFQ1QgT04gcmxzX3ZpZXcgVE8gcmVncmVzc19y bHNfYWxpY2U7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggdnRwZyBWRVJURVggVEFCTEVTIChybHNf dmlldyBLRVkgKGEpKTsKK0dSQU5UIFNFTEVDVCBPTiB2dHBnIFRPIHJlZ3Jlc3NfcmxzX2FsaWNl OwogLS0gUXVlcnkgYXMgcm9sZSB0aGF0IGlzIG5vdCBvd25lciBvZiB2aWV3IGJ1dCBpcyBvd25l ciBvZiB0YWJsZS4KIC0tIFNob3VsZCByZXR1cm4gcmVjb3JkcyBiYXNlZCBvbiB2aWV3IG93bmVy IHBvbGljaWVzLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsK QEAgLTI2NDMsNiArMzgxNSwyMiBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g cmxzX3ZpZXc7CiAgICBGaWx0ZXI6ICgoKGEgJSAyKSA9IDApIEFORCBmX2xlYWsoYikpCiAoMiBy b3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmll dykgQ09MVU1OUyAoci5hLCByLmIpKTsKK05PVElDRTogIGZfbGVhayA9PiBiYmIKK05PVElDRTog IGZfbGVhayA9PiBkYWQKKyBhIHwgIGIgIAorLS0tKy0tLS0tCisgMiB8IGJiYgorIDQgfCBkYWQK KygyIHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJM RSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CisgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB6MQorICAgRmlsdGVyOiAoKChhICUg MikgPSAwKSBBTkQgZl9sZWFrKGIpKQorKDIgcm93cykKKwogLS0gUXVlcnkgYXMgcm9sZSB0aGF0 IGlzIG5vdCBvd25lciBvZiB0YWJsZSBidXQgaXMgb3duZXIgb2Ygdmlldy4KIC0tIFNob3VsZCBy ZXR1cm4gcmVjb3JkcyBiYXNlZCBvbiB2aWV3IG93bmVyIHBvbGljaWVzLgogU0VUIFNFU1NJT04g QVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CkBAIC0yNjYyLDYgKzM4NTAsMjIgQEAgRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OwogICAgRmlsdGVyOiAoKChh ICUgMikgPSAwKSBBTkQgZl9sZWFrKGIpKQogKDIgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQ SF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CitO T1RJQ0U6ICBmX2xlYWsgPT4gYmJiCitOT1RJQ0U6ICBmX2xlYWsgPT4gZGFkCisgYSB8ICBiICAK Ky0tLSstLS0tLQorIDIgfCBiYmIKKyA0IHwgZGFkCisoMiByb3dzKQorCitFWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3 KSBDT0xVTU5TIChyLmEsIHIuYikpOworICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2Vx IFNjYW4gb24gejEKKyAgIEZpbHRlcjogKCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKKygy IHJvd3MpCisKIC0tIFF1ZXJ5IGFzIHJvbGUgdGhhdCBpcyBub3QgdGhlIG93bmVyIG9mIHRoZSB0 YWJsZSBvciB2aWV3IHdpdGhvdXQgcGVybWlzc2lvbnMuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFU SU9OIHJlZ3Jlc3NfcmxzX2Nhcm9sOwogU0VMRUNUICogRlJPTSBybHNfdmlldzsgLS1mYWlsIC0g cGVybWlzc2lvbiBkZW5pZWQuCkBAIC0yNjcxLDYgKzM4NzUsNyBAQCBFUlJPUjogIHBlcm1pc3Np b24gZGVuaWVkIGZvciB2aWV3IHJsc192aWV3CiAtLSBRdWVyeSBhcyByb2xlIHRoYXQgaXMgbm90 IHRoZSBvd25lciBvZiB0aGUgdGFibGUgb3IgdmlldyB3aXRoIHBlcm1pc3Npb25zLgogU0VUIFNF U1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CiBHUkFOVCBTRUxFQ1QgT04gcmxz X3ZpZXcgVE8gcmVncmVzc19ybHNfY2Fyb2w7CitHUkFOVCBTRUxFQ1QgT04gdnRwZyBUTyByZWdy ZXNzX3Jsc19jYXJvbDsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fy b2w7CiBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OwogTk9USUNFOiAgZl9sZWFrID0+IGJiYgpAQCAt MjY4OCw2ICszODkzLDIyIEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNf dmlldzsKICAgIEZpbHRlcjogKCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKICgyIHJvd3Mp CiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBD T0xVTU5TIChyLmEsIHIuYikpOworTk9USUNFOiAgZl9sZWFrID0+IGJiYgorTk9USUNFOiAgZl9s ZWFrID0+IGRhZAorIGEgfCAgYiAgCistLS0rLS0tLS0KKyAyIHwgYmJiCisgNCB8IGRhZAorKDIg cm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2 dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsKKyAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHoxCisgICBGaWx0ZXI6ICgoKGEgJSAyKSA9 IDApIEFORCBmX2xlYWsoYikpCisoMiByb3dzKQorCiAtLSBQb2xpY3kgcmVxdWlyaW5nIGFjY2Vz cyB0byBhbm90aGVyIHRhYmxlLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Js c19hbGljZTsKIENSRUFURSBUQUJMRSB6MV9ibGFja2xpc3QgKGEgaW50KTsKQEAgLTI2OTksMTIg KzM5MjAsMjAgQEAgU0VMRUNUICogRlJPTSBybHNfdmlldzsgLS1mYWlsIC0gcGVybWlzc2lvbiBk ZW5pZWQuCiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSB6MV9ibGFja2xpc3QK IEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsgLS1mYWlsIC0gcGVy bWlzc2lvbiBkZW5pZWQuCiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSB6MV9i bGFja2xpc3QKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192 aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KK0VS Uk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIHoxX2JsYWNrbGlzdAorRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNf dmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCitF UlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSB6MV9ibGFja2xpc3QKIC0tIFF1ZXJ5 IGFzIHJvbGUgdGhhdCBpcyBub3QgdGhlIG93bmVyIG9mIHRoZSB0YWJsZSBvciB2aWV3IHdpdGhv dXQgcGVybWlzc2lvbnMuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Nh cm9sOwogU0VMRUNUICogRlJPTSBybHNfdmlldzsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQu CiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSB6MV9ibGFja2xpc3QKIEVYUExB SU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsgLS1mYWlsIC0gcGVybWlzc2lv biBkZW5pZWQuCiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSB6MV9ibGFja2xp c3QKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBD T0xVTU5TIChyLmEsIHIuYikpOyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KK0VSUk9SOiAg cGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIHoxX2JsYWNrbGlzdAorRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykg Q09MVU1OUyAoci5hLCByLmIpKTsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCitFUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSB6MV9ibGFja2xpc3QKIC0tIFF1ZXJ5IGFzIHJv bGUgdGhhdCBpcyBub3Qgb3duZXIgb2YgdGFibGUgYnV0IGlzIG93bmVyIG9mIHZpZXcgd2l0aCBw ZXJtaXNzaW9ucy4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7 CiBHUkFOVCBTRUxFQ1QgT04gejFfYmxhY2tsaXN0IFRPIHJlZ3Jlc3NfcmxzX2JvYjsKQEAgLTI3 MjUsNiArMzk1NCwyMiBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gcmxzX3Zp ZXc7CiAgICAgIC0+ICBTZXEgU2NhbiBvbiB6MV9ibGFja2xpc3QKICg0IHJvd3MpCiAKK1NFTEVD VCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChy LmEsIHIuYikpOworTk9USUNFOiAgZl9sZWFrID0+IGJiYgorIGEgfCAgYiAgCistLS0rLS0tLS0K KyAyIHwgYmJiCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBH UkFQSF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFNlcSBTY2FuIG9uIHoxCisgICBGaWx0ZXI6ICgoTk9UIChBTlkgKGEgPSAoaGFz aGVkIFN1YlBsYW4gMSkuY29sMSkpKSBBTkQgKChhICUgMikgPSAwKSBBTkQgZl9sZWFrKGIpKQor ICAgU3ViUGxhbiAxCisgICAgIC0+ICBTZXEgU2NhbiBvbiB6MV9ibGFja2xpc3QKKyg0IHJvd3Mp CisKIC0tIFF1ZXJ5IGFzIHJvbGUgdGhhdCBpcyBub3QgdGhlIG93bmVyIG9mIHRoZSB0YWJsZSBv ciB2aWV3IHdpdGggcGVybWlzc2lvbnMuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jl c3NfcmxzX2Nhcm9sOwogU0VMRUNUICogRlJPTSBybHNfdmlldzsKQEAgLTI3NDMsMTAgKzM5ODgs MjcgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OwogICAgICAt PiAgU2VxIFNjYW4gb24gejFfYmxhY2tsaXN0CiAoNCByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdS QVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsK K05PVElDRTogIGZfbGVhayA9PiBiYmIKKyBhIHwgIGIgIAorLS0tKy0tLS0tCisgMiB8IGJiYgor KDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUg KHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBT ZXEgU2NhbiBvbiB6MQorICAgRmlsdGVyOiAoKE5PVCAoQU5ZIChhID0gKGhhc2hlZCBTdWJQbGFu IDEpLmNvbDEpKSkgQU5EICgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKKyAgIFN1YlBsYW4g MQorICAgICAtPiAgU2VxIFNjYW4gb24gejFfYmxhY2tsaXN0CisoNCByb3dzKQorCiBTRVQgU0VT U0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwogUkVWT0tFIFNFTEVDVCBPTiB6 MV9ibGFja2xpc3QgRlJPTSByZWdyZXNzX3Jsc19ib2I7CiBEUk9QIFBPTElDWSBwMyBPTiB6MTsK IFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOworRFJPUCBQUk9QRVJU WSBHUkFQSCB2dHBnOwogRFJPUCBWSUVXIHJsc192aWV3OwogLS0KIC0tIFNlY3VyaXR5IGludm9r ZXIgdmlld3Mgc2hvdWxkIGZvbGxvdyBwb2xpY3kgZm9yIGN1cnJlbnQgdXNlci4KQEAgLTI3NTUs OCArNDAxNywxMSBAQCBEUk9QIFZJRVcgcmxzX3ZpZXc7CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFU SU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwogQ1JFQVRFIFZJRVcgcmxzX3ZpZXcgV0lUSCAoc2VjdXJp dHlfaW52b2tlcikgQVMKICAgICBTRUxFQ1QgKiBGUk9NIHoxIFdIRVJFIGZfbGVhayhiKTsKK0NS RUFURSBQUk9QRVJUWSBHUkFQSCB2dHBnIFZFUlRFWCBUQUJMRVMgKHJsc192aWV3IEtFWSAoYSkp OwogR1JBTlQgU0VMRUNUIE9OIHJsc192aWV3IFRPIHJlZ3Jlc3NfcmxzX2JvYjsKIEdSQU5UIFNF TEVDVCBPTiBybHNfdmlldyBUTyByZWdyZXNzX3Jsc19jYXJvbDsKK0dSQU5UIFNFTEVDVCBPTiB2 dHBnIFRPIHJlZ3Jlc3NfcmxzX2JvYjsKK0dSQU5UIFNFTEVDVCBPTiB2dHBnIFRPIHJlZ3Jlc3Nf cmxzX2Nhcm9sOwogLS0gUXVlcnkgYXMgdGFibGUgb3duZXIuICBTaG91bGQgcmV0dXJuIGFsbCBy ZWNvcmRzLgogU0VMRUNUICogRlJPTSBybHNfdmlldzsKIE5PVElDRTogIGZfbGVhayA9PiBhYmEK QEAgLTI3NzgsNiArNDA0MywyNiBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g cmxzX3ZpZXc7CiAgICBGaWx0ZXI6IGZfbGVhayhiKQogKDIgcm93cykKIAorU0VMRUNUICogRlJP TSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5i KSk7CitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJhCitOT1RJQ0U6ICBmX2xlYWsgPT4gYmJiCitOT1RJ Q0U6ICBmX2xlYWsgPT4gY2NjCitOT1RJQ0U6ICBmX2xlYWsgPT4gZGFkCisgYSB8ICBiICAKKy0t LSstLS0tLQorIDEgfCBhYmEKKyAyIHwgYmJiCisgMyB8IGNjYworIDQgfCBkYWQKKyg0IHJvd3Mp CisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBN QVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CisgICAgIFFVRVJZIFBMQU4g ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHoxCisgICBGaWx0ZXI6 IGZfbGVhayhiKQorKDIgcm93cykKKwogLS0gUXVlcmllcyBhcyBvdGhlciB1c2Vycy4KIC0tIFNo b3VsZCByZXR1cm4gcmVjb3JkcyBiYXNlZCBvbiBjdXJyZW50IHVzZXIncyBwb2xpY2llcy4KIFNF VCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwpAQCAtMjc5Nyw5ICs0MDgy LDI1IEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsKICAgIEZp bHRlcjogKCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKICgyIHJvd3MpCiAKLVNFVCBTRVNT SU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7Ci1TRUxFQ1QgKiBGUk9NIHJsc192 aWV3OwotTk9USUNFOiAgZl9sZWFrID0+IGFiYQorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAo dnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CitOT1RJQ0U6ICBm X2xlYWsgPT4gYmJiCitOT1RJQ0U6ICBmX2xlYWsgPT4gZGFkCisgYSB8ICBiICAKKy0tLSstLS0t LQorIDIgfCBiYmIKKyA0IHwgZGFkCisoMiByb3dzKQorCitFWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5T IChyLmEsIHIuYikpOworICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24g ejEKKyAgIEZpbHRlcjogKCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKKygyIHJvd3MpCisK K1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CitTRUxFQ1QgKiBG Uk9NIHJsc192aWV3OworTk9USUNFOiAgZl9sZWFrID0+IGFiYQogTk9USUNFOiAgZl9sZWFrID0+ IGNjYwogIGEgfCAgYiAgCiAtLS0rLS0tLS0KQEAgLTI4MTQsMTQgKzQxMTUsMzQgQEAgRVhQTEFJ TiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OwogICAgRmlsdGVyOiAoKChhICUg MikgPSAxKSBBTkQgZl9sZWFrKGIpKQogKDIgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9U QUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CitOT1RJ Q0U6ICBmX2xlYWsgPT4gYWJhCitOT1RJQ0U6ICBmX2xlYWsgPT4gY2NjCisgYSB8ICBiICAKKy0t LSstLS0tLQorIDEgfCBhYmEKKyAzIHwgY2NjCisoMiByb3dzKQorCitFWFBMQUlOIChDT1NUUyBP RkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBD T0xVTU5TIChyLmEsIHIuYikpOworICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNj YW4gb24gejEKKyAgIEZpbHRlcjogKCgoYSAlIDIpID0gMSkgQU5EIGZfbGVhayhiKSkKKygyIHJv d3MpCisKIC0tIFZpZXcgYW5kIHRhYmxlIG93bmVycyBhcmUgZGlmZmVyZW50LgogU0VUIFNFU1NJ T04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKK0RST1AgUFJPUEVSVFkgR1JBUEgg dnRwZzsKIERST1AgVklFVyBybHNfdmlldzsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVn cmVzc19ybHNfYm9iOwogQ1JFQVRFIFZJRVcgcmxzX3ZpZXcgV0lUSCAoc2VjdXJpdHlfaW52b2tl cikgQVMKICAgICBTRUxFQ1QgKiBGUk9NIHoxIFdIRVJFIGZfbGVhayhiKTsKK0NSRUFURSBQUk9Q RVJUWSBHUkFQSCB2dHBnIFZFUlRFWCBUQUJMRVMgKHJsc192aWV3IEtFWSAoYSkpOwogR1JBTlQg U0VMRUNUIE9OIHJsc192aWV3IFRPIHJlZ3Jlc3NfcmxzX2FsaWNlOwogR1JBTlQgU0VMRUNUIE9O IHJsc192aWV3IFRPIHJlZ3Jlc3NfcmxzX2Nhcm9sOworR1JBTlQgU0VMRUNUIE9OIHZ0cGcgVE8g cmVncmVzc19ybHNfYWxpY2U7CitHUkFOVCBTRUxFQ1QgT04gdnRwZyBUTyByZWdyZXNzX3Jsc19j YXJvbDsKIC0tIFF1ZXJ5IGFzIHRhYmxlIG93bmVyLiAgU2hvdWxkIHJldHVybiBhbGwgcmVjb3Jk cy4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiBTRUxFQ1Qg KiBGUk9NIHJsc192aWV3OwpAQCAtMjg0NCw2ICs0MTY1LDI2IEBAIEVYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUICogRlJPTSBybHNfdmlldzsKICAgIEZpbHRlcjogZl9sZWFrKGIpCiAoMiByb3dz KQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykg Q09MVU1OUyAoci5hLCByLmIpKTsKK05PVElDRTogIGZfbGVhayA9PiBhYmEKK05PVElDRTogIGZf bGVhayA9PiBiYmIKK05PVElDRTogIGZfbGVhayA9PiBjY2MKK05PVElDRTogIGZfbGVhayA9PiBk YWQKKyBhIHwgIGIgIAorLS0tKy0tLS0tCisgMSB8IGFiYQorIDIgfCBiYmIKKyAzIHwgY2NjCisg NCB8IGRhZAorKDQgcm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdS QVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsK KyAgICAgUVVFUlkgUExBTiAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4g b24gejEKKyAgIEZpbHRlcjogZl9sZWFrKGIpCisoMiByb3dzKQorCiAtLSBRdWVyaWVzIGFzIG90 aGVyIHVzZXJzLgogLS0gU2hvdWxkIHJldHVybiByZWNvcmRzIGJhc2VkIG9uIGN1cnJlbnQgdXNl cidzIHBvbGljaWVzLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7 CkBAIC0yODYzLDYgKzQyMDQsMjIgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9N IHJsc192aWV3OwogICAgRmlsdGVyOiAoKChhICUgMikgPSAwKSBBTkQgZl9sZWFrKGIpKQogKDIg cm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3Zp ZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CitOT1RJQ0U6ICBmX2xlYWsgPT4gYmJiCitOT1RJQ0U6 ICBmX2xlYWsgPT4gZGFkCisgYSB8ICBiICAKKy0tLSstLS0tLQorIDIgfCBiYmIKKyA0IHwgZGFk CisoMiByb3dzKQorCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFC TEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gejEKKyAgIEZpbHRlcjogKCgoYSAl IDIpID0gMCkgQU5EIGZfbGVhayhiKSkKKygyIHJvd3MpCisKIFNFVCBTRVNTSU9OIEFVVEhPUkla QVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OwogTk9USUNF OiAgZl9sZWFrID0+IGFiYQpAQCAtMjg4MCw2ICs0MjM3LDIyIEBAIEVYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUICogRlJPTSBybHNfdmlldzsKICAgIEZpbHRlcjogKCgoYSAlIDIpID0gMSkgQU5E IGZfbGVhayhiKSkKICgyIHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcg TUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworTk9USUNFOiAgZl9sZWFr ID0+IGFiYQorTk9USUNFOiAgZl9sZWFrID0+IGNjYworIGEgfCAgYiAgCistLS0rLS0tLS0KKyAx IHwgYWJhCisgMyB8IGNjYworKDIgcm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1Qg KiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5h LCByLmIpKTsKKyAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHoxCisg ICBGaWx0ZXI6ICgoKGEgJSAyKSA9IDEpIEFORCBmX2xlYWsoYikpCisoMiByb3dzKQorCiAtLSBQ b2xpY3kgcmVxdWlyaW5nIGFjY2VzcyB0byBhbm90aGVyIHRhYmxlLgogU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIENSRUFURSBQT0xJQ1kgcDMgT04gejEgQVMg UkVTVFJJQ1RJVkUgVVNJTkcgKGEgTk9UIElOIChTRUxFQ1QgYSBGUk9NIHoxX2JsYWNrbGlzdCkp OwpAQCAtMjg4OSwxMiArNDI2MiwyMCBAQCBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OyAtLWZhaWwg LSBwZXJtaXNzaW9uIGRlbmllZC4KIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxl IHoxX2JsYWNrbGlzdAogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3 OyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQg Zm9yIHRhYmxlIHoxX2JsYWNrbGlzdAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBN QVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7IC0tZmFpbCAtIHBlcm1pc3Np b24gZGVuaWVkLgorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgejFfYmxhY2ts aXN0CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcg TUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOyAtLWZhaWwgLSBwZXJtaXNz aW9uIGRlbmllZC4KK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIHoxX2JsYWNr bGlzdAogLS0gUXVlcnkgYXMgcm9sZSB0aGF0IGlzIG5vdCB0aGUgb3duZXIgb2YgdGhlIHRhYmxl IG9yIHZpZXcgd2l0aG91dCBwZXJtaXNzaW9ucy4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04g cmVncmVzc19ybHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OyAtLWZhaWwgLSBwZXJt aXNzaW9uIGRlbmllZC4KIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIHoxX2Js YWNrbGlzdAogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OyAtLWZh aWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRh YmxlIHoxX2JsYWNrbGlzdAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAo cjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7IC0tZmFpbCAtIHBlcm1pc3Npb24gZGVu aWVkLgorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgejFfYmxhY2tsaXN0CitF WFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0gg KHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRl bmllZC4KK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIHoxX2JsYWNrbGlzdAog LS0gUXVlcnkgYXMgcm9sZSB0aGF0IGlzIG5vdCBvd25lciBvZiB0YWJsZSBidXQgaXMgb3duZXIg b2YgdmlldyB3aXRoIHBlcm1pc3Npb25zLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdy ZXNzX3Jsc19hbGljZTsKIEdSQU5UIFNFTEVDVCBPTiB6MV9ibGFja2xpc3QgVE8gcmVncmVzc19y bHNfYm9iOwpAQCAtMjkxNSwxMiArNDI5NiwzMiBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVD VCAqIEZST00gcmxzX3ZpZXc7CiAgICAgIC0+ICBTZXEgU2NhbiBvbiB6MV9ibGFja2xpc3QKICg0 IHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192 aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworTk9USUNFOiAgZl9sZWFrID0+IGJiYgorIGEgfCAg YiAgCistLS0rLS0tLS0KKyAyIHwgYmJiCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikg U0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVN TlMgKHIuYSwgci5iKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHoxCisgICBGaWx0ZXI6ICgoTk9U IChBTlkgKGEgPSAoaGFzaGVkIFN1YlBsYW4gMSkuY29sMSkpKSBBTkQgKChhICUgMikgPSAwKSBB TkQgZl9sZWFrKGIpKQorICAgU3ViUGxhbiAxCisgICAgIC0+ICBTZXEgU2NhbiBvbiB6MV9ibGFj a2xpc3QKKyg0IHJvd3MpCisKIC0tIFF1ZXJ5IGFzIHJvbGUgdGhhdCBpcyBub3QgdGhlIG93bmVy IG9mIHRoZSB0YWJsZSBvciB2aWV3IHdpdGhvdXQgcGVybWlzc2lvbnMuCiBTRVQgU0VTU0lPTiBB VVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Nhcm9sOwogU0VMRUNUICogRlJPTSBybHNfdmlldzsg LS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZv ciB0YWJsZSB6MV9ibGFja2xpc3QKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBy bHNfdmlldzsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCiBFUlJPUjogIHBlcm1pc3Npb24g ZGVuaWVkIGZvciB0YWJsZSB6MV9ibGFja2xpc3QKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUg KHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOyAtLWZhaWwgLSBw ZXJtaXNzaW9uIGRlbmllZC4KK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIHox X2JsYWNrbGlzdAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxF ICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsgLS1mYWlsIC0g cGVybWlzc2lvbiBkZW5pZWQuCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSB6 MV9ibGFja2xpc3QKIC0tIFF1ZXJ5IGFzIHJvbGUgdGhhdCBpcyBub3QgdGhlIG93bmVyIG9mIHRo ZSB0YWJsZSBvciB2aWV3IHdpdGggcGVybWlzc2lvbnMuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFU SU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwogR1JBTlQgU0VMRUNUIE9OIHoxX2JsYWNrbGlzdCBUTyBy ZWdyZXNzX3Jsc19jYXJvbDsKQEAgLTI5NDEsMTQgKzQzNDIsMzMgQEAgRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OwogICAgICAtPiAgU2VxIFNjYW4gb24gejFfYmxh Y2tsaXN0CiAoNCByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENI IChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsKK05PVElDRTogIGZfbGVhayA9PiBh YmEKKyBhIHwgIGIgIAorLS0tKy0tLS0tCisgMSB8IGFiYQorKDEgcm93KQorCitFWFBMQUlOIChD T1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192 aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB6MQorICAgRmls dGVyOiAoKE5PVCAoQU5ZIChhID0gKGhhc2hlZCBTdWJQbGFuIDEpLmNvbDEpKSkgQU5EICgoYSAl IDIpID0gMSkgQU5EIGZfbGVhayhiKSkKKyAgIFN1YlBsYW4gMQorICAgICAtPiAgU2VxIFNjYW4g b24gejFfYmxhY2tsaXN0CisoNCByb3dzKQorCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJl Z3Jlc3NfcmxzX2JvYjsKK0RST1AgUFJPUEVSVFkgR1JBUEggdnRwZzsKIERST1AgVklFVyBybHNf dmlldzsKIC0tCiAtLSBDb21tYW5kIHNwZWNpZmljCiAtLQogU0VUIFNFU1NJT04gQVVUSE9SSVpB VElPTiByZWdyZXNzX3Jsc19hbGljZTsKIENSRUFURSBUQUJMRSB4MSAoYSBpbnQsIGIgdGV4dCwg YyB0ZXh0KTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBjc3RwZyBWRVJURVggVEFCTEVTICh4MSBL RVkgKGEpKTsKIEdSQU5UIEFMTCBPTiB4MSBUTyBQVUJMSUM7CitHUkFOVCBBTEwgT04gY3N0cGcg VE8gUFVCTElDOwogSU5TRVJUIElOVE8geDEgVkFMVUVTCiAgICAgKDEsICdhYmMnLCAncmVncmVz c19ybHNfYm9iJyksCiAgICAgKDIsICdiY2QnLCAncmVncmVzc19ybHNfYm9iJyksCkBAIC0yOTgy LDYgKzQ0MDIsMjMgQEAgTk9USUNFOiAgZl9sZWFrID0+IGZnaAogIDggfCBmZ2ggfCByZWdyZXNz X3Jsc19jYXJvbAogKDYgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoY3N0cGcg TUFUQ0ggKHggOiB4MSkgV0hFUkUgZl9sZWFrKHguYikgQ09MVU1OUyAoeC5hLCB4LmIsIHguYykp IE9SREVSIEJZIGEgQVNDOworTk9USUNFOiAgZl9sZWFrID0+IGFiYworTk9USUNFOiAgZl9sZWFr ID0+IGJjZAorTk9USUNFOiAgZl9sZWFrID0+IGRlZgorTk9USUNFOiAgZl9sZWFrID0+IGVmZwor Tk9USUNFOiAgZl9sZWFrID0+IGZnaAorTk9USUNFOiAgZl9sZWFrID0+IGZnaAorIGEgfCAgYiAg fCAgICAgICAgIGMgICAgICAgICAKKy0tLSstLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCisgMSB8 IGFiYyB8IHJlZ3Jlc3NfcmxzX2JvYgorIDIgfCBiY2QgfCByZWdyZXNzX3Jsc19ib2IKKyA0IHwg ZGVmIHwgcmVncmVzc19ybHNfY2Fyb2wKKyA1IHwgZWZnIHwgcmVncmVzc19ybHNfYm9iCisgNiB8 IGZnaCB8IHJlZ3Jlc3NfcmxzX2JvYgorIDggfCBmZ2ggfCByZWdyZXNzX3Jsc19jYXJvbAorKDYg cm93cykKKwogVVBEQVRFIHgxIFNFVCBiID0gYiB8fCAnX3VwZHQnIFdIRVJFIGZfbGVhayhiKSBS RVRVUk5JTkcgKjsKIE5PVElDRTogIGZfbGVhayA9PiBhYmMKIE5PVElDRTogIGZfbGVhayA9PiBi Y2QKQEAgLTMwMTcsNiArNDQ1NCwyMyBAQCBOT1RJQ0U6ICBmX2xlYWsgPT4gZmdoX3VwZHQKICA4 IHwgZmdoX3VwZHQgfCByZWdyZXNzX3Jsc19jYXJvbAogKDYgcm93cykKIAorU0VMRUNUICogRlJP TSBHUkFQSF9UQUJMRSAoY3N0cGcgTUFUQ0ggKHggOiB4MSkgV0hFUkUgZl9sZWFrKHguYikgQ09M VU1OUyAoeC5hLCB4LmIsIHguYykpIE9SREVSIEJZIGEgQVNDOworTk9USUNFOiAgZl9sZWFrID0+ IGNkZQorTk9USUNFOiAgZl9sZWFrID0+IGZnaAorTk9USUNFOiAgZl9sZWFrID0+IGJjZF91cGR0 CitOT1RJQ0U6ICBmX2xlYWsgPT4gZGVmX3VwZHQKK05PVElDRTogIGZfbGVhayA9PiBmZ2hfdXBk dAorTk9USUNFOiAgZl9sZWFrID0+IGZnaF91cGR0CisgYSB8ICAgIGIgICAgIHwgICAgICAgICBj ICAgICAgICAgCistLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCisgMiB8IGJjZF91 cGR0IHwgcmVncmVzc19ybHNfYm9iCisgMyB8IGNkZSAgICAgIHwgcmVncmVzc19ybHNfY2Fyb2wK KyA0IHwgZGVmX3VwZHQgfCByZWdyZXNzX3Jsc19jYXJvbAorIDYgfCBmZ2hfdXBkdCB8IHJlZ3Jl c3NfcmxzX2JvYgorIDcgfCBmZ2ggICAgICB8IHJlZ3Jlc3NfcmxzX2Nhcm9sCisgOCB8IGZnaF91 cGR0IHwgcmVncmVzc19ybHNfY2Fyb2wKKyg2IHJvd3MpCisKIFVQREFURSB4MSBTRVQgYiA9IGIg fHwgJ191cGR0JyBXSEVSRSBmX2xlYWsoYikgUkVUVVJOSU5HICo7CiBOT1RJQ0U6ICBmX2xlYWsg PT4gY2RlCiBOT1RJQ0U6ICBmX2xlYWsgPT4gZmdoCkBAIC0zMDU3LDcgKzQ1MTEsOSBAQCBOT1RJ Q0U6ICBmX2xlYWsgPT4gZmdoX3VwZHRfdXBkdAogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiBy ZWdyZXNzX3Jsc19hbGljZTsKIENSRUFURSBUQUJMRSB5MSAoYSBpbnQsIGIgdGV4dCk7CiBDUkVB VEUgVEFCTEUgeTIgKGEgaW50LCBiIHRleHQpOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIHN2YnRw ZyBWRVJURVggVEFCTEVTICh5MSBLRVkgKGEpLCB5MiBLRVkgKGEpKTsKIEdSQU5UIEFMTCBPTiB5 MSwgeTIgVE8gcmVncmVzc19ybHNfYm9iOworR1JBTlQgQUxMIE9OIHN2YnRwZyBUTyByZWdyZXNz X3Jsc19ib2I7CiBDUkVBVEUgUE9MSUNZIHAxIE9OIHkxIEZPUiBBTEwgVVNJTkcgKGEgJSAyID0g MCk7CiBDUkVBVEUgUE9MSUNZIHAyIE9OIHkxIEZPUiBTRUxFQ1QgVVNJTkcgKGEgPiAyKTsKIENS RUFURSBQT0xJQ1kgcDEgT04geTEgRk9SIFNFTEVDVCBVU0lORyAoYSAlIDIgPSAxKTsgIC0tZmFp bApAQCAtMzA3Miw2ICs0NTI4LDcgQEAgQUxURVIgVEFCTEUgeTIgRU5BQkxFIFJPVyBMRVZFTCBT RUNVUklUWTsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiBD UkVBVEUgVklFVyBybHNfc2J2IFdJVEggKHNlY3VyaXR5X2JhcnJpZXIpIEFTCiAgICAgU0VMRUNU ICogRlJPTSB5MSBXSEVSRSBmX2xlYWsoYik7CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBzdmJ0cGcg QUREIFZFUlRFWCBUQUJMRVMgKHJsc19zYnYgS0VZIChhKSk7CiBFWFBMQUlOIChDT1NUUyBPRkYp IFNFTEVDVCAqIEZST00gcmxzX3NidiBXSEVSRSAoYSA9IDEpOwogICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBA IC0zMDc5LDYgKzQ1MzYsMTQgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJs c19zYnYgV0hFUkUgKGEgPSAxKTsKICAgIEZpbHRlcjogKGZfbGVhayhiKSBBTkQgKGEgPSAxKSkK ICgyIHJvd3MpCiAKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJM RSAoc3ZidHBnIE1BVENIIChyOiBybHNfc2J2KSBXSEVSRSByLmEgPSAxIENPTFVNTlMgKHIuYSwg ci5iKSk7CisgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB5MQorICAgRmlsdGVyOiAoZl9s ZWFrKGIpIEFORCAoYSA9IDEpKQorKDIgcm93cykKKworQUxURVIgUFJPUEVSVFkgR1JBUEggc3Zi dHBnIERST1AgVkVSVEVYIFRBQkxFUyAocmxzX3Nidik7CiBEUk9QIFZJRVcgcmxzX3NidjsKIC0t IENyZWF0ZSB2aWV3IGFzIHJvbGUgdGhhdCBkb2VzIG5vdCBvd24gdGFibGUuICBSTFMgc2hvdWxk IGJlIGFwcGxpZWQuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsK QEAgLTMxNDAsNiArNDYwNSw0NiBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g eTIgV0hFUkUgZl9sZWFrKGIpOwogICAgRmlsdGVyOiAoKCgoYSAlIDQpID0gMCkgT1IgKChhICUg MykgPSAwKSBPUiAoKGEgJSAyKSA9IDApKSBBTkQgZl9sZWFrKGIpKQogKDIgcm93cykKIAorU0VM RUNUICogRlJPTSBHUkFQSF9UQUJMRSAoc3ZidHBnIE1BVENIICh5OiB5MikgV0hFUkUgZl9sZWFr KHkuYikgQ09MVU1OUyAoeS5hLCB5LmIpKTsKK05PVElDRTogIGZfbGVhayA9PiA1ZmVjZWI2NmZm Yzg2ZjM4ZDk1Mjc4NmM2ZDY5NmM3OQorTk9USUNFOiAgZl9sZWFrID0+IGQ0NzM1ZTNhMjY1ZTE2 ZWVlMDNmNTk3MThiOWI1ZDAzCitOT1RJQ0U6ICBmX2xlYWsgPT4gNGUwNzQwODU2MmJlZGI4YjYw Y2UwNWMxZGVjZmUzYWQKK05PVElDRTogIGZfbGVhayA9PiA0YjIyNzc3N2Q0ZGQxZmM2MWM2Zjg4 NGY0ODY0MWQwMgorTk9USUNFOiAgZl9sZWFrID0+IGU3ZjZjMDExNzc2ZThkYjdjZDMzMGI1NDE3 NGZkNzZmCitOT1RJQ0U6ICBmX2xlYWsgPT4gMmM2MjQyMzJjZGQyMjE3NzEyOTRkZmJiMzEwYWNh MDAKK05PVElDRTogIGZfbGVhayA9PiAxOTU4MWUyN2RlN2NlZDAwZmYxY2U1MGIyMDQ3ZTdhNQor Tk9USUNFOiAgZl9sZWFrID0+IDRhNDRkYzE1MzY0MjA0YTgwZmU4MGU5MDM5NDU1Y2MxCitOT1RJ Q0U6ICBmX2xlYWsgPT4gNmI1MWQ0MzFkZjVkN2YxNDFjYmVjZWNjZjc5ZWRmM2QKK05PVElDRTog IGZfbGVhayA9PiA4NTI3YTg5MWUyMjQxMzY5NTBmZjMyY2EyMTJiNDViYworTk9USUNFOiAgZl9s ZWFrID0+IGU2MjlmYTY1OThkNzMyNzY4ZjdjNzI2YjRiNjIxMjg1CitOT1RJQ0U6ICBmX2xlYWsg PT4gYjE3ZWY2ZDE5YzdhNWIxZWU4M2I5MDdjNTk1NTI2ZGMKK05PVElDRTogIGZfbGVhayA9PiA0 ZWM5NTk5ZmMyMDNkMTc2YTMwMTUzNmMyZTA5MWExOQorTk9USUNFOiAgZl9sZWFrID0+IGY1Y2Ez OGY3NDhhMWQ2ZWFmNzI2YjhhNDJmYjU3NWMzCisgYSAgfCAgICAgICAgICAgICAgICBiICAgICAg ICAgICAgICAgICAKKy0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAw IHwgNWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzkKKyAgMiB8IGQ0NzM1ZTNhMjY1ZTE2 ZWVlMDNmNTk3MThiOWI1ZDAzCisgIDMgfCA0ZTA3NDA4NTYyYmVkYjhiNjBjZTA1YzFkZWNmZTNh ZAorICA0IHwgNGIyMjc3NzdkNGRkMWZjNjFjNmY4ODRmNDg2NDFkMDIKKyAgNiB8IGU3ZjZjMDEx Nzc2ZThkYjdjZDMzMGI1NDE3NGZkNzZmCisgIDggfCAyYzYyNDIzMmNkZDIyMTc3MTI5NGRmYmIz MTBhY2EwMAorICA5IHwgMTk1ODFlMjdkZTdjZWQwMGZmMWNlNTBiMjA0N2U3YTUKKyAxMCB8IDRh NDRkYzE1MzY0MjA0YTgwZmU4MGU5MDM5NDU1Y2MxCisgMTIgfCA2YjUxZDQzMWRmNWQ3ZjE0MWNi ZWNlY2NmNzllZGYzZAorIDE0IHwgODUyN2E4OTFlMjI0MTM2OTUwZmYzMmNhMjEyYjQ1YmMKKyAx NSB8IGU2MjlmYTY1OThkNzMyNzY4ZjdjNzI2YjRiNjIxMjg1CisgMTYgfCBiMTdlZjZkMTljN2E1 YjFlZTgzYjkwN2M1OTU1MjZkYworIDE4IHwgNGVjOTU5OWZjMjAzZDE3NmEzMDE1MzZjMmUwOTFh MTkKKyAyMCB8IGY1Y2EzOGY3NDhhMWQ2ZWFmNzI2YjhhNDJmYjU3NWMzCisoMTQgcm93cykKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChzdmJ0cGcgTUFU Q0ggKHk6IHkyKSBXSEVSRSBmX2xlYWsoeS5iKSBDT0xVTU5TICh5LmEsIHkuYikpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24geTIKKyAg IEZpbHRlcjogKCgoKGEgJSA0KSA9IDApIE9SICgoYSAlIDMpID0gMCkgT1IgKChhICUgMikgPSAw KSkgQU5EIGZfbGVhayhiKSkKKygyIHJvd3MpCisKIC0tCiAtLSBRdWFsIHB1c2gtZG93biBvZiBs ZWFreSBmdW5jdGlvbnMsIHdoZW4gbm90IHJlZmVycmluZyB0byB0YWJsZQogLS0KQEAgLTMxOTAs NiArNDY5NSw1MyBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00geTIgV0hFUkUg Zl9sZWFrKCdhYmMnKTsKICAgIEZpbHRlcjogKGZfbGVhaygnYWJjJzo6dGV4dCkgQU5EICgoKGEg JSA0KSA9IDApIE9SICgoYSAlIDMpID0gMCkgT1IgKChhICUgMikgPSAwKSkpCiAoMiByb3dzKQog CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChzdmJ0cGcgTUFUQ0ggKHk6IHkyKSBXSEVSRSBm X2xlYWsoJ2FiYycpIENPTFVNTlMgKHkuYSwgeS5iKSk7CitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJj CitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6 ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsg PT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitO T1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBm X2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4g YWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJ Q0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xl YWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJj CitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCisgYSAgfCAgICAgICAgICAgICAgICBiICAgICAgICAg ICAgICAgICAKKy0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAwIHwg NWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzkKKyAgMiB8IGQ0NzM1ZTNhMjY1ZTE2ZWVl MDNmNTk3MThiOWI1ZDAzCisgIDMgfCA0ZTA3NDA4NTYyYmVkYjhiNjBjZTA1YzFkZWNmZTNhZAor ICA0IHwgNGIyMjc3NzdkNGRkMWZjNjFjNmY4ODRmNDg2NDFkMDIKKyAgNiB8IGU3ZjZjMDExNzc2 ZThkYjdjZDMzMGI1NDE3NGZkNzZmCisgIDggfCAyYzYyNDIzMmNkZDIyMTc3MTI5NGRmYmIzMTBh Y2EwMAorICA5IHwgMTk1ODFlMjdkZTdjZWQwMGZmMWNlNTBiMjA0N2U3YTUKKyAxMCB8IDRhNDRk YzE1MzY0MjA0YTgwZmU4MGU5MDM5NDU1Y2MxCisgMTIgfCA2YjUxZDQzMWRmNWQ3ZjE0MWNiZWNl Y2NmNzllZGYzZAorIDE0IHwgODUyN2E4OTFlMjI0MTM2OTUwZmYzMmNhMjEyYjQ1YmMKKyAxNSB8 IGU2MjlmYTY1OThkNzMyNzY4ZjdjNzI2YjRiNjIxMjg1CisgMTYgfCBiMTdlZjZkMTljN2E1YjFl ZTgzYjkwN2M1OTU1MjZkYworIDE4IHwgNGVjOTU5OWZjMjAzZDE3NmEzMDE1MzZjMmUwOTFhMTkK KyAyMCB8IGY1Y2EzOGY3NDhhMWQ2ZWFmNzI2YjhhNDJmYjU3NWMzCisoMTQgcm93cykKKworRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChzdmJ0cGcgTUFUQ0gg KHk6IHkyKSBXSEVSRSBmX2xlYWsoJ2FiYycpIENPTFVNTlMgKHkuYSwgeS5iKSk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IFNlcSBTY2FuIG9uIHkyCisgICBGaWx0ZXI6IChmX2xlYWsoJ2FiYyc6OnRleHQpIEFORCAoKChh ICUgNCkgPSAwKSBPUiAoKGEgJSAzKSA9IDApIE9SICgoYSAlIDIpID0gMCkpKQorKDIgcm93cykK KwogQ1JFQVRFIFRBQkxFIHRlc3RfcXVhbF9wdXNoZG93biAoCiAgICAgYWJjIHRleHQKICk7CkBA IC0zMjQ4LDE4ICs0ODAwLDIyIEBAIERST1AgVEFCTEUgdGVzdF9xdWFsX3B1c2hkb3duOwogLS0g UGxhbmNhY2hlIGludmFsaWRhdGUgb24gdXNlciBjaGFuZ2UuCiAtLQogUkVTRVQgU0VTU0lPTiBB VVRIT1JJWkFUSU9OOworRFJPUCBQUk9QRVJUWSBHUkFQSCBpdHBnOwogRFJPUCBUQUJMRSB0MSBD QVNDQURFOwogTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAyIG90aGVyIG9iamVjdHMKIERFVEFJ TDogIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgdDIKIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgdDMK IENSRUFURSBUQUJMRSB0MSAoYSBpbnRlZ2VyKTsKIEdSQU5UIFNFTEVDVCBPTiB0MSBUTyByZWdy ZXNzX3Jsc19ib2IsIHJlZ3Jlc3NfcmxzX2Nhcm9sOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGl0 cGcgVkVSVEVYIFRBQkxFUyAodDEgS0VZKGEpKTsKK0dSQU5UIFNFTEVDVCBPTiBpdHBnIFRPIHJl Z3Jlc3NfcmxzX2JvYiwgcmVncmVzc19ybHNfY2Fyb2w7CiBDUkVBVEUgUE9MSUNZIHAxIE9OIHQx IFRPIHJlZ3Jlc3NfcmxzX2JvYiBVU0lORyAoKGEgJSAyKSA9IDApOwogQ1JFQVRFIFBPTElDWSBw MiBPTiB0MSBUTyByZWdyZXNzX3Jsc19jYXJvbCBVU0lORyAoKGEgJSA0KSA9IDApOwogQUxURVIg VEFCTEUgdDEgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIC0tIFByZXBhcmUgYXMgcmVncmVz c19ybHNfYm9iCiBTRVQgUk9MRSByZWdyZXNzX3Jsc19ib2I7CiBQUkVQQVJFIHJvbGVfaW52YWwg QVMgU0VMRUNUICogRlJPTSB0MTsKK1BSRVBBUkUgcm9sZV9pbnZhbF9wZyBBUyBTRUxFQ1QgKiBG Uk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0OiB0MSkgQ09MVU1OUyAodC5hKSk7CiAtLSBD aGVjayBwbGFuCiBFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcm9sZV9pbnZhbDsKICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAKQEAgLTMyNjgsNiArNDgyNCwxMyBAQCBFWFBMQUlOIChDT1NU UyBPRkYpIEVYRUNVVEUgcm9sZV9pbnZhbDsKICAgIEZpbHRlcjogKChhICUgMikgPSAwKQogKDIg cm93cykKIAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHJvbGVfaW52YWxfcGc7CisgICAg ICAgUVVFUlkgUExBTiAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNj YW4gb24gdDEKKyAgIEZpbHRlcjogKChhICUgMikgPSAwKQorKDIgcm93cykKKwogLS0gQ2hhbmdl IHRvIHJlZ3Jlc3NfcmxzX2Nhcm9sCiBTRVQgUk9MRSByZWdyZXNzX3Jsc19jYXJvbDsKIC0tIENo ZWNrIHBsYW4tIHNob3VsZCBiZSBkaWZmZXJlbnQKQEAgLTMyNzgsNiArNDg0MSwxMyBAQCBFWFBM QUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcm9sZV9pbnZhbDsKICAgIEZpbHRlcjogKChhICUgNCkg PSAwKQogKDIgcm93cykKIAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHJvbGVfaW52YWxf cGc7CisgICAgICAgUVVFUlkgUExBTiAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgU2VxIFNjYW4gb24gdDEKKyAgIEZpbHRlcjogKChhICUgNCkgPSAwKQorKDIgcm93cykKKwog LS0gQ2hhbmdlIGJhY2sgdG8gcmVncmVzc19ybHNfYm9iCiBTRVQgUk9MRSByZWdyZXNzX3Jsc19i b2I7CiAtLSBDaGVjayBwbGFuLSBzaG91bGQgYmUgYmFjayB0byBvcmlnaW5hbApAQCAtMzI4OCwx NSArNDg1OCwyNSBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcm9sZV9pbnZhbDsKICAg IEZpbHRlcjogKChhICUgMikgPSAwKQogKDIgcm93cykKIAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBF WEVDVVRFIHJvbGVfaW52YWxfcGc7CisgICAgICAgUVVFUlkgUExBTiAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gdDEKKyAgIEZpbHRlcjogKChhICUgMikg PSAwKQorKDIgcm93cykKKwogLS0KIC0tIENURSBhbmQgUkxTCiAtLQogUkVTRVQgU0VTU0lPTiBB VVRIT1JJWkFUSU9OOworRFJPUCBQUk9QRVJUWSBHUkFQSCBpdHBnOwogRFJPUCBUQUJMRSB0MSBD QVNDQURFOwogQ1JFQVRFIFRBQkxFIHQxIChhIGludGVnZXIsIGIgdGV4dCk7CitDUkVBVEUgUFJP UEVSVFkgR1JBUEggaXRwZyBWRVJURVggVEFCTEVTICh0MSBLRVkoYSkpOwogQ1JFQVRFIFBPTElD WSBwMSBPTiB0MSBVU0lORyAoYSAlIDIgPSAwKTsKIEFMVEVSIFRBQkxFIHQxIEVOQUJMRSBST1cg TEVWRUwgU0VDVVJJVFk7CiBHUkFOVCBBTEwgT04gdDEgVE8gcmVncmVzc19ybHNfYm9iOworR1JB TlQgQUxMIE9OIGl0cGcgVE8gcmVncmVzc19ybHNfYm9iOwogSU5TRVJUIElOVE8gdDEgKFNFTEVD VCB4LCBwdWJsaWMuZmlwc2hhc2goeDo6dGV4dCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMCwyMCkg eCk7CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIFdJVEggY3Rl MSBBUyBNQVRFUklBTElaRUQgKFNFTEVDVCAqIEZST00gdDEgV0hFUkUgZl9sZWFrKGIpKSBTRUxF Q1QgKiBGUk9NIGN0ZTE7CkBAIC0zMzI0LDIxICs0OTA0LDE2MyBAQCBOT1RJQ0U6ICBmX2xlYWsg PT4gZjVjYTM4Zjc0OGExZDZlYWY3MjZiOGE0MmZiNTc1YzMKICAxNiB8IGIxN2VmNmQxOWM3YTVi MWVlODNiOTA3YzU5NTUyNmRjCiAgMTggfCA0ZWM5NTk5ZmMyMDNkMTc2YTMwMTUzNmMyZTA5MWEx OQogIDIwIHwgZjVjYTM4Zjc0OGExZDZlYWY3MjZiOGE0MmZiNTc1YzMKLSgxMSByb3dzKQotCi1F WFBMQUlOIChDT1NUUyBPRkYpCi1XSVRIIGN0ZTEgQVMgTUFURVJJQUxJWkVEIChTRUxFQ1QgKiBG Uk9NIHQxIFdIRVJFIGZfbGVhayhiKSkgU0VMRUNUICogRlJPTSBjdGUxOwotICAgICAgICAgICAg ICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIENURSBTY2FuIG9uIGN0ZTEKLSAgIENU RSBjdGUxCi0gICAgIC0+ICBTZXEgU2NhbiBvbiB0MQotICAgICAgICAgICBGaWx0ZXI6ICgoKGEg JSAyKSA9IDApIEFORCBmX2xlYWsoYikpCi0oNCByb3dzKQorKDExIHJvd3MpCisKK0VYUExBSU4g KENPU1RTIE9GRikKK1dJVEggY3RlMSBBUyBNQVRFUklBTElaRUQgKFNFTEVDVCAqIEZST00gdDEg V0hFUkUgZl9sZWFrKGIpKSBTRUxFQ1QgKiBGUk9NIGN0ZTE7CisgICAgICAgICAgICAgICAgICAg UVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1RFIFNjYW4gb24gY3RlMQorICAgQ1RFIGN0ZTEK KyAgICAgLT4gIFNlcSBTY2FuIG9uIHQxCisgICAgICAgICAgIEZpbHRlcjogKCgoYSAlIDIpID0g MCkgQU5EIGZfbGVhayhiKSkKKyg0IHJvd3MpCisKK1dJVEggY3RlMSBBUyBNQVRFUklBTElaRUQg KFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQxKSBXSEVSRSBmX2xl YWsodC5iKSBDT0xVTU5TICh0LmEsIHQuYikpKSBTRUxFQ1QgKiBGUk9NIGN0ZTE7CitOT1RJQ0U6 ICBmX2xlYWsgPT4gNWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzkKK05PVElDRTogIGZf bGVhayA9PiBkNDczNWUzYTI2NWUxNmVlZTAzZjU5NzE4YjliNWQwMworTk9USUNFOiAgZl9sZWFr ID0+IDRiMjI3Nzc3ZDRkZDFmYzYxYzZmODg0ZjQ4NjQxZDAyCitOT1RJQ0U6ICBmX2xlYWsgPT4g ZTdmNmMwMTE3NzZlOGRiN2NkMzMwYjU0MTc0ZmQ3NmYKK05PVElDRTogIGZfbGVhayA9PiAyYzYy NDIzMmNkZDIyMTc3MTI5NGRmYmIzMTBhY2EwMAorTk9USUNFOiAgZl9sZWFrID0+IDRhNDRkYzE1 MzY0MjA0YTgwZmU4MGU5MDM5NDU1Y2MxCitOT1RJQ0U6ICBmX2xlYWsgPT4gNmI1MWQ0MzFkZjVk N2YxNDFjYmVjZWNjZjc5ZWRmM2QKK05PVElDRTogIGZfbGVhayA9PiA4NTI3YTg5MWUyMjQxMzY5 NTBmZjMyY2EyMTJiNDViYworTk9USUNFOiAgZl9sZWFrID0+IGIxN2VmNmQxOWM3YTViMWVlODNi OTA3YzU5NTUyNmRjCitOT1RJQ0U6ICBmX2xlYWsgPT4gNGVjOTU5OWZjMjAzZDE3NmEzMDE1MzZj MmUwOTFhMTkKK05PVElDRTogIGZfbGVhayA9PiBmNWNhMzhmNzQ4YTFkNmVhZjcyNmI4YTQyZmI1 NzVjMworIGEgIHwgICAgICAgICAgICAgICAgYiAgICAgICAgICAgICAgICAgCistLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgMCB8IDVmZWNlYjY2ZmZjODZmMzhkOTUy Nzg2YzZkNjk2Yzc5CisgIDIgfCBkNDczNWUzYTI2NWUxNmVlZTAzZjU5NzE4YjliNWQwMworICA0 IHwgNGIyMjc3NzdkNGRkMWZjNjFjNmY4ODRmNDg2NDFkMDIKKyAgNiB8IGU3ZjZjMDExNzc2ZThk YjdjZDMzMGI1NDE3NGZkNzZmCisgIDggfCAyYzYyNDIzMmNkZDIyMTc3MTI5NGRmYmIzMTBhY2Ew MAorIDEwIHwgNGE0NGRjMTUzNjQyMDRhODBmZTgwZTkwMzk0NTVjYzEKKyAxMiB8IDZiNTFkNDMx ZGY1ZDdmMTQxY2JlY2VjY2Y3OWVkZjNkCisgMTQgfCA4NTI3YTg5MWUyMjQxMzY5NTBmZjMyY2Ey MTJiNDViYworIDE2IHwgYjE3ZWY2ZDE5YzdhNWIxZWU4M2I5MDdjNTk1NTI2ZGMKKyAxOCB8IDRl Yzk1OTlmYzIwM2QxNzZhMzAxNTM2YzJlMDkxYTE5CisgMjAgfCBmNWNhMzhmNzQ4YTFkNmVhZjcy NmI4YTQyZmI1NzVjMworKDExIHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1dJVEggY3Rl MSBBUyBNQVRFUklBTElaRUQgKFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0gg KHQ6IHQxKSBXSEVSRSBmX2xlYWsodC5iKSBDT0xVTU5TICh0LmEsIHQuYikpKSBTRUxFQ1QgKiBG Uk9NIGN0ZTE7CisgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg Q1RFIFNjYW4gb24gY3RlMQorICAgQ1RFIGN0ZTEKKyAgICAgLT4gIFNlcSBTY2FuIG9uIHQxCisg ICAgICAgICAgIEZpbHRlcjogKCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKKyg0IHJvd3Mp CisKK1dJVEggY3RlMSBBUyAoVVBEQVRFIHQxIFNFVCBhID0gYSArIDEgUkVUVVJOSU5HICopIFNF TEVDVCAqIEZST00gY3RlMTsgLS1mYWlsCitFUlJPUjogIG5ldyByb3cgdmlvbGF0ZXMgcm93LWxl dmVsIHNlY3VyaXR5IHBvbGljeSBmb3IgdGFibGUgInQxIgorV0lUSCBjdGUxIEFTIChVUERBVEUg dDEgU0VUIGEgPSBhIFJFVFVSTklORyAqKSBTRUxFQ1QgKiBGUk9NIGN0ZTE7IC0tb2sKKyBhICB8 ICAgICAgICAgICAgICAgIGIgICAgICAgICAgICAgICAgIAorLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgIDAgfCA1ZmVjZWI2NmZmYzg2ZjM4ZDk1Mjc4NmM2ZDY5NmM3 OQorICAyIHwgZDQ3MzVlM2EyNjVlMTZlZWUwM2Y1OTcxOGI5YjVkMDMKKyAgNCB8IDRiMjI3Nzc3 ZDRkZDFmYzYxYzZmODg0ZjQ4NjQxZDAyCisgIDYgfCBlN2Y2YzAxMTc3NmU4ZGI3Y2QzMzBiNTQx NzRmZDc2ZgorICA4IHwgMmM2MjQyMzJjZGQyMjE3NzEyOTRkZmJiMzEwYWNhMDAKKyAxMCB8IDRh NDRkYzE1MzY0MjA0YTgwZmU4MGU5MDM5NDU1Y2MxCisgMTIgfCA2YjUxZDQzMWRmNWQ3ZjE0MWNi ZWNlY2NmNzllZGYzZAorIDE0IHwgODUyN2E4OTFlMjI0MTM2OTUwZmYzMmNhMjEyYjQ1YmMKKyAx NiB8IGIxN2VmNmQxOWM3YTViMWVlODNiOTA3YzU5NTUyNmRjCisgMTggfCA0ZWM5NTk5ZmMyMDNk MTc2YTMwMTUzNmMyZTA5MWExOQorIDIwIHwgZjVjYTM4Zjc0OGExZDZlYWY3MjZiOGE0MmZiNTc1 YzMKKygxMSByb3dzKQorCitXSVRIIGN0ZTEgQVMgKElOU0VSVCBJTlRPIHQxIFZBTFVFUyAoMjEs ICdGYWlsJykgUkVUVVJOSU5HICopIFNFTEVDVCAqIEZST00gY3RlMTsgLS1mYWlsCitFUlJPUjog IG5ldyByb3cgdmlvbGF0ZXMgcm93LWxldmVsIHNlY3VyaXR5IHBvbGljeSBmb3IgdGFibGUgInQx IgorV0lUSCBjdGUxIEFTIChJTlNFUlQgSU5UTyB0MSBWQUxVRVMgKDIwLCAnU3VjY2VzcycpIFJF VFVSTklORyAqKSBTRUxFQ1QgKiBGUk9NIGN0ZTE7IC0tb2sKKyBhICB8ICAgIGIgICAgCistLS0t Ky0tLS0tLS0tLQorIDIwIHwgU3VjY2VzcworKDEgcm93KQorCistLQorLS0gUmVuYW1lIFBvbGlj eQorLS0KK1JFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKK0FMVEVSIFBPTElDWSBwMSBPTiB0 MSBSRU5BTUUgVE8gcDE7IC0tZmFpbAorRVJST1I6ICBwb2xpY3kgInAxIiBmb3IgdGFibGUgInQx IiBhbHJlYWR5IGV4aXN0cworU0VMRUNUIHBvbG5hbWUsIHJlbG5hbWUKKyAgICBGUk9NIHBnX3Bv bGljeSBwb2wKKyAgICBKT0lOIHBnX2NsYXNzIHBjIE9OIChwYy5vaWQgPSBwb2wucG9scmVsaWQp CisgICAgV0hFUkUgcmVsbmFtZSA9ICd0MSc7CisgcG9sbmFtZSB8IHJlbG5hbWUgCistLS0tLS0t LS0rLS0tLS0tLS0tCisgcDEgICAgICB8IHQxCisoMSByb3cpCisKK0FMVEVSIFBPTElDWSBwMSBP TiB0MSBSRU5BTUUgVE8gcDI7IC0tb2sKK1NFTEVDVCBwb2xuYW1lLCByZWxuYW1lCisgICAgRlJP TSBwZ19wb2xpY3kgcG9sCisgICAgSk9JTiBwZ19jbGFzcyBwYyBPTiAocGMub2lkID0gcG9sLnBv bHJlbGlkKQorICAgIFdIRVJFIHJlbG5hbWUgPSAndDEnOworIHBvbG5hbWUgfCByZWxuYW1lIAor LS0tLS0tLS0tKy0tLS0tLS0tLQorIHAyICAgICAgfCB0MQorKDEgcm93KQorCistLQorLS0gQ2hl Y2sgSU5TRVJUIFNFTEVDVAorLS0KK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19y bHNfYm9iOworQ1JFQVRFIFRBQkxFIHQyIChhIGludGVnZXIsIGIgdGV4dCk7CitJTlNFUlQgSU5U TyB0MiAoU0VMRUNUICogRlJPTSB0MSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIElOU0VSVCBJTlRP IHQyIChTRUxFQ1QgKiBGUk9NIHQxKTsKKyAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBJbnNlcnQgb24gdDIKKyAgIC0+ICBT ZXEgU2NhbiBvbiB0MQorICAgICAgICAgRmlsdGVyOiAoKGEgJSAyKSA9IDApCisoMyByb3dzKQor CitTRUxFQ1QgKiBGUk9NIHQyOworIGEgIHwgICAgICAgICAgICAgICAgYiAgICAgICAgICAgICAg ICAgCistLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgMCB8IDVmZWNl YjY2ZmZjODZmMzhkOTUyNzg2YzZkNjk2Yzc5CisgIDIgfCBkNDczNWUzYTI2NWUxNmVlZTAzZjU5 NzE4YjliNWQwMworICA0IHwgNGIyMjc3NzdkNGRkMWZjNjFjNmY4ODRmNDg2NDFkMDIKKyAgNiB8 IGU3ZjZjMDExNzc2ZThkYjdjZDMzMGI1NDE3NGZkNzZmCisgIDggfCAyYzYyNDIzMmNkZDIyMTc3 MTI5NGRmYmIzMTBhY2EwMAorIDEwIHwgNGE0NGRjMTUzNjQyMDRhODBmZTgwZTkwMzk0NTVjYzEK KyAxMiB8IDZiNTFkNDMxZGY1ZDdmMTQxY2JlY2VjY2Y3OWVkZjNkCisgMTQgfCA4NTI3YTg5MWUy MjQxMzY5NTBmZjMyY2EyMTJiNDViYworIDE2IHwgYjE3ZWY2ZDE5YzdhNWIxZWU4M2I5MDdjNTk1 NTI2ZGMKKyAxOCB8IDRlYzk1OTlmYzIwM2QxNzZhMzAxNTM2YzJlMDkxYTE5CisgMjAgfCBmNWNh MzhmNzQ4YTFkNmVhZjcyNmI4YTQyZmI1NzVjMworIDIwIHwgU3VjY2VzcworKDEyIHJvd3MpCisK K0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB0MjsKKyAgIFFVRVJZIFBMQU4gICAK Ky0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB0MgorKDEgcm93KQorCitDUkVBVEUgVEFC TEUgdDMgQVMgU0VMRUNUICogRlJPTSB0MTsKK1NFTEVDVCAqIEZST00gdDM7CisgYSAgfCAgICAg ICAgICAgICAgICBiICAgICAgICAgICAgICAgICAKKy0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAwIHwgNWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzkKKyAg MiB8IGQ0NzM1ZTNhMjY1ZTE2ZWVlMDNmNTk3MThiOWI1ZDAzCisgIDQgfCA0YjIyNzc3N2Q0ZGQx ZmM2MWM2Zjg4NGY0ODY0MWQwMgorICA2IHwgZTdmNmMwMTE3NzZlOGRiN2NkMzMwYjU0MTc0ZmQ3 NmYKKyAgOCB8IDJjNjI0MjMyY2RkMjIxNzcxMjk0ZGZiYjMxMGFjYTAwCisgMTAgfCA0YTQ0ZGMx NTM2NDIwNGE4MGZlODBlOTAzOTQ1NWNjMQorIDEyIHwgNmI1MWQ0MzFkZjVkN2YxNDFjYmVjZWNj Zjc5ZWRmM2QKKyAxNCB8IDg1MjdhODkxZTIyNDEzNjk1MGZmMzJjYTIxMmI0NWJjCisgMTYgfCBi MTdlZjZkMTljN2E1YjFlZTgzYjkwN2M1OTU1MjZkYworIDE4IHwgNGVjOTU5OWZjMjAzZDE3NmEz MDE1MzZjMmUwOTFhMTkKKyAyMCB8IGY1Y2EzOGY3NDhhMWQ2ZWFmNzI2YjhhNDJmYjU3NWMzCisg MjAgfCBTdWNjZXNzCisoMTIgcm93cykKIAotV0lUSCBjdGUxIEFTIChVUERBVEUgdDEgU0VUIGEg PSBhICsgMSBSRVRVUk5JTkcgKikgU0VMRUNUICogRlJPTSBjdGUxOyAtLWZhaWwKLUVSUk9SOiAg bmV3IHJvdyB2aW9sYXRlcyByb3ctbGV2ZWwgc2VjdXJpdHkgcG9saWN5IGZvciB0YWJsZSAidDEi Ci1XSVRIIGN0ZTEgQVMgKFVQREFURSB0MSBTRVQgYSA9IGEgUkVUVVJOSU5HICopIFNFTEVDVCAq IEZST00gY3RlMTsgLS1vaworU0VMRUNUICogSU5UTyB0NCBGUk9NIHQxOworU0VMRUNUICogRlJP TSB0NDsKICBhICB8ICAgICAgICAgICAgICAgIGIgICAgICAgICAgICAgICAgIAogLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIDAgfCA1ZmVjZWI2NmZmYzg2ZjM4ZDk1 Mjc4NmM2ZDY5NmM3OQpAQCAtMzM1Miw0OCArNTA3NCwxMyBAQCBXSVRIIGN0ZTEgQVMgKFVQREFU RSB0MSBTRVQgYSA9IGEgUkVUVVJOSU5HICopIFNFTEVDVCAqIEZST00gY3RlMTsgLS1vawogIDE2 IHwgYjE3ZWY2ZDE5YzdhNWIxZWU4M2I5MDdjNTk1NTI2ZGMKICAxOCB8IDRlYzk1OTlmYzIwM2Qx NzZhMzAxNTM2YzJlMDkxYTE5CiAgMjAgfCBmNWNhMzhmNzQ4YTFkNmVhZjcyNmI4YTQyZmI1NzVj MwotKDExIHJvd3MpCi0KLVdJVEggY3RlMSBBUyAoSU5TRVJUIElOVE8gdDEgVkFMVUVTICgyMSwg J0ZhaWwnKSBSRVRVUk5JTkcgKikgU0VMRUNUICogRlJPTSBjdGUxOyAtLWZhaWwKLUVSUk9SOiAg bmV3IHJvdyB2aW9sYXRlcyByb3ctbGV2ZWwgc2VjdXJpdHkgcG9saWN5IGZvciB0YWJsZSAidDEi Ci1XSVRIIGN0ZTEgQVMgKElOU0VSVCBJTlRPIHQxIFZBTFVFUyAoMjAsICdTdWNjZXNzJykgUkVU VVJOSU5HICopIFNFTEVDVCAqIEZST00gY3RlMTsgLS1vawotIGEgIHwgICAgYiAgICAKLS0tLS0r LS0tLS0tLS0tCiAgMjAgfCBTdWNjZXNzCi0oMSByb3cpCi0KLS0tCi0tLSBSZW5hbWUgUG9saWN5 Ci0tLQotUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwotQUxURVIgUE9MSUNZIHAxIE9OIHQx IFJFTkFNRSBUTyBwMTsgLS1mYWlsCi1FUlJPUjogIHBvbGljeSAicDEiIGZvciB0YWJsZSAidDEi IGFscmVhZHkgZXhpc3RzCi1TRUxFQ1QgcG9sbmFtZSwgcmVsbmFtZQotICAgIEZST00gcGdfcG9s aWN5IHBvbAotICAgIEpPSU4gcGdfY2xhc3MgcGMgT04gKHBjLm9pZCA9IHBvbC5wb2xyZWxpZCkK LSAgICBXSEVSRSByZWxuYW1lID0gJ3QxJzsKLSBwb2xuYW1lIHwgcmVsbmFtZSAKLS0tLS0tLS0t LSstLS0tLS0tLS0KLSBwMSAgICAgIHwgdDEKLSgxIHJvdykKLQotQUxURVIgUE9MSUNZIHAxIE9O IHQxIFJFTkFNRSBUTyBwMjsgLS1vawotU0VMRUNUIHBvbG5hbWUsIHJlbG5hbWUKLSAgICBGUk9N IHBnX3BvbGljeSBwb2wKLSAgICBKT0lOIHBnX2NsYXNzIHBjIE9OIChwYy5vaWQgPSBwb2wucG9s cmVsaWQpCi0gICAgV0hFUkUgcmVsbmFtZSA9ICd0MSc7Ci0gcG9sbmFtZSB8IHJlbG5hbWUgCi0t LS0tLS0tLS0rLS0tLS0tLS0tCi0gcDIgICAgICB8IHQxCi0oMSByb3cpCisoMTIgcm93cykKIAot LS0KLS0tIENoZWNrIElOU0VSVCBTRUxFQ1QKLS0tCi1TRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9O IHJlZ3Jlc3NfcmxzX2JvYjsKK0RST1AgVEFCTEUgdDIsIHQzLCB0NDsKIENSRUFURSBUQUJMRSB0 MiAoYSBpbnRlZ2VyLCBiIHRleHQpOwotSU5TRVJUIElOVE8gdDIgKFNFTEVDVCAqIEZST00gdDEp OwotRVhQTEFJTiAoQ09TVFMgT0ZGKSBJTlNFUlQgSU5UTyB0MiAoU0VMRUNUICogRlJPTSB0MSk7 CitJTlNFUlQgSU5UTyB0MiAoU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAo dDogdDEpIENPTFVNTlMgKHQuYSwgdC5iKSkpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBJTlNFUlQg SU5UTyB0MiAoU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEpIENP TFVNTlMgKHQuYSwgdC5iKSkpOwogICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgIAogLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEluc2VydCBvbiB0MgpAQCAtMzQyNCw3ICs1 MTExLDcgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHQyOwogIFNlcSBTY2Fu IG9uIHQyCiAoMSByb3cpCiAKLUNSRUFURSBUQUJMRSB0MyBBUyBTRUxFQ1QgKiBGUk9NIHQxOwor Q1JFQVRFIFRBQkxFIHQzIEFTIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0gg KHQ6IHQxKSBDT0xVTU5TICh0LmEsIHQuYikpOwogU0VMRUNUICogRlJPTSB0MzsKICBhICB8ICAg ICAgICAgICAgICAgIGIgICAgICAgICAgICAgICAgIAogLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCkBAIC0zNDQyLDcgKzUxMjksNyBAQCBTRUxFQ1QgKiBGUk9NIHQzOwog IDIwIHwgU3VjY2VzcwogKDEyIHJvd3MpCiAKLVNFTEVDVCAqIElOVE8gdDQgRlJPTSB0MTsKK1NF TEVDVCAqIElOVE8gdDQgRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEpIENPTFVN TlMgKHQuYSwgdC5iKSk7CiBTRUxFQ1QgKiBGUk9NIHQ0OwogIGEgIHwgICAgICAgICAgICAgICAg YiAgICAgICAgICAgICAgICAgCiAtLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KQEAgLTM0NjYsNyArNTE1MywxNCBAQCBTRUxFQ1QgKiBGUk9NIHQ0OwogU0VUIFNFU1NJT04g QVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIENSRUFURSBUQUJMRSBibG9nIChpZCBp bnRlZ2VyLCBhdXRob3IgdGV4dCwgcG9zdCB0ZXh0KTsKIENSRUFURSBUQUJMRSBjb21tZW50IChi bG9nX2lkIGludGVnZXIsIG1lc3NhZ2UgdGV4dCk7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEgganRw ZworICAgIFZFUlRFWCBUQUJMRVMgKGJsb2cgS0VZIChpZCkpCisgICAgRURHRSBUQUJMRVMKKyAg ICAoY29tbWVudCBLRVkgKGJsb2dfaWQpCisgICAgIFNPVVJDRSBLRVkgKGJsb2dfaWQpIFJFRkVS RU5DRVMgYmxvZyhpZCkKKyAgICAgREVTVElOQVRJT04gS0VZIChibG9nX2lkKSBSRUZFUkVOQ0VT IGJsb2coaWQpKTsKIEdSQU5UIEFMTCBPTiBibG9nLCBjb21tZW50IFRPIHJlZ3Jlc3NfcmxzX2Jv YjsKK0dSQU5UIEFMTCBPTiBqdHBnIFRPIHJlZ3Jlc3NfcmxzX2JvYjsKIENSRUFURSBQT0xJQ1kg YmxvZ18xIE9OIGJsb2cgVVNJTkcgKGlkICUgMiA9IDApOwogQUxURVIgVEFCTEUgYmxvZyBFTkFC TEUgUk9XIExFVkVMIFNFQ1VSSVRZOwogSU5TRVJUIElOVE8gYmxvZyBWQUxVRVMKQEAgLTM0OTks NiArNTE5MywxMyBAQCBTRUxFQ1QgaWQsIGF1dGhvciwgbWVzc2FnZSBGUk9NIGNvbW1lbnQgSk9J TiBibG9nIE9OIGlkID0gYmxvZ19pZDsKICAgMiB8IGJvYiAgICB8IHdobyBkaWQgaXQ/CiAoMiBy b3dzKQogCitTRUxFQ1QgaWQsIGF1dGhvciwgbWVzc2FnZSBGUk9NIEdSQVBIX1RBQkxFIChqdHBn IE1BVENIIChiOiBibG9nKS1bYzogY29tbWVudF0tPihiKSBDT0xVTU5TIChiLmlkIEFTIGlkLCBi LmF1dGhvciBBUyBhdXRob3IsIGMubWVzc2FnZSBBUyBtZXNzYWdlKSk7CisgaWQgfCBhdXRob3Ig fCAgIG1lc3NhZ2UgICAKKy0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorICA0IHwgYWxpY2Ug IHwgaW5zYW5lIQorICAyIHwgYm9iICAgIHwgd2hvIGRpZCBpdD8KKygyIHJvd3MpCisKIFNFVCBT RVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiBDUkVBVEUgUE9MSUNZIGNv bW1lbnRfMSBPTiBjb21tZW50IFVTSU5HIChibG9nX2lkIDwgNCk7CiBBTFRFUiBUQUJMRSBjb21t ZW50IEVOQUJMRSBST1cgTEVWRUwgU0VDVVJJVFk7CkBAIC0zNTE2LDcgKzUyMTcsMTQgQEAgU0VM RUNUIGlkLCBhdXRob3IsIG1lc3NhZ2UgRlJPTSBjb21tZW50IEpPSU4gYmxvZyBPTiBpZCA9IGJs b2dfaWQ7CiAgIDIgfCBib2IgICAgfCB3aG8gZGlkIGl0PwogKDEgcm93KQogCitTRUxFQ1QgaWQs IGF1dGhvciwgbWVzc2FnZSBGUk9NIEdSQVBIX1RBQkxFIChqdHBnIE1BVENIIChiOiBibG9nKS1b YzogY29tbWVudF0tPihiKSBDT0xVTU5TIChiLmlkIEFTIGlkLCBiLmF1dGhvciBBUyBhdXRob3Is IGMubWVzc2FnZSBBUyBtZXNzYWdlKSk7CisgaWQgfCBhdXRob3IgfCAgIG1lc3NhZ2UgICAKKy0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorICAyIHwgYm9iICAgIHwgd2hvIGRpZCBpdD8KKygx IHJvdykKKwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKK0RS T1AgUFJPUEVSVFkgR1JBUEgganRwZzsKIERST1AgVEFCTEUgYmxvZywgY29tbWVudDsKIC0tCiAt LSBEZWZhdWx0IERlbnkgUG9saWN5CkBAIC0zNTI0LDYgKzUyMzIsNyBAQCBEUk9QIFRBQkxFIGJs b2csIGNvbW1lbnQ7CiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiBEUk9QIFBPTElDWSBw MiBPTiB0MTsKIEFMVEVSIFRBQkxFIHQxIE9XTkVSIFRPIHJlZ3Jlc3NfcmxzX2FsaWNlOworR1JB TlQgU0VMRUNUIE9OIGl0cGcgVE8gcmVncmVzc19ybHNfYWxpY2U7CiAtLSBDaGVjayB0aGF0IGRl ZmF1bHQgZGVueSBkb2VzIG5vdCBhcHBseSB0byBzdXBlcnVzZXIuCiBSRVNFVCBTRVNTSU9OIEFV VEhPUklaQVRJT047CiBTRUxFQ1QgKiBGUk9NIHQxOwpAQCAtMzU1OSw2ICs1MjY4LDM5IEBAIEVY UExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB0MTsKICBTZXEgU2NhbiBvbiB0MQogKDEg cm93KQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0OiB0MSkgQ09M VU1OUyAodC5hLCB0LmIpKTsKKyBhICB8ICAgICAgICAgICAgICAgIGIgICAgICAgICAgICAgICAg IAorLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIDEgfCA2Yjg2YjI3 M2ZmMzRmY2UxOWQ2YjgwNGVmZjVhM2Y1NworICAzIHwgNGUwNzQwODU2MmJlZGI4YjYwY2UwNWMx ZGVjZmUzYWQKKyAgNSB8IGVmMmQxMjdkZTM3Yjk0MmJhYWQwNjE0NWU1NGIwYzYxCisgIDcgfCA3 OTAyNjk5YmU0MmM4YThlNDZmYmJiNDUwMTcyNjUxNworICA5IHwgMTk1ODFlMjdkZTdjZWQwMGZm MWNlNTBiMjA0N2U3YTUKKyAxMSB8IDRmYzgyYjI2YWVjYjQ3ZDI4NjhjNGVmYmUzNTgxNzMyCisg MTMgfCAzZmRiYTM1ZjA0ZGM4YzQ2Mjk4NmM5OTJiY2Y4NzU1NAorIDE1IHwgZTYyOWZhNjU5OGQ3 MzI3NjhmN2M3MjZiNGI2MjEyODUKKyAxNyB8IDQ1MjM1NDBmMTUwNGNkMTcxMDBjNDgzNWU4NWI3 ZWVmCisgMTkgfCA5NDAwZjFiMjFjYjUyN2Q3ZmEzZDNlYWJiYTkzNTU3YQorICAwIHwgNWZlY2Vi NjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzkKKyAgMiB8IGQ0NzM1ZTNhMjY1ZTE2ZWVlMDNmNTk3 MThiOWI1ZDAzCisgIDQgfCA0YjIyNzc3N2Q0ZGQxZmM2MWM2Zjg4NGY0ODY0MWQwMgorICA2IHwg ZTdmNmMwMTE3NzZlOGRiN2NkMzMwYjU0MTc0ZmQ3NmYKKyAgOCB8IDJjNjI0MjMyY2RkMjIxNzcx Mjk0ZGZiYjMxMGFjYTAwCisgMTAgfCA0YTQ0ZGMxNTM2NDIwNGE4MGZlODBlOTAzOTQ1NWNjMQor IDEyIHwgNmI1MWQ0MzFkZjVkN2YxNDFjYmVjZWNjZjc5ZWRmM2QKKyAxNCB8IDg1MjdhODkxZTIy NDEzNjk1MGZmMzJjYTIxMmI0NWJjCisgMTYgfCBiMTdlZjZkMTljN2E1YjFlZTgzYjkwN2M1OTU1 MjZkYworIDE4IHwgNGVjOTU5OWZjMjAzZDE3NmEzMDE1MzZjMmUwOTFhMTkKKyAyMCB8IGY1Y2Ez OGY3NDhhMWQ2ZWFmNzI2YjhhNDJmYjU3NWMzCisgMjAgfCBTdWNjZXNzCisoMjIgcm93cykKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENI ICh0OiB0MSkgQ09MVU1OUyAodC5hLCB0LmIpKTsKKyAgIFFVRVJZIFBMQU4gICAKKy0tLS0tLS0t LS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB0MQorKDEgcm93KQorCiAtLSBDaGVjayB0aGF0IGRlZmF1 bHQgZGVueSBkb2VzIG5vdCBhcHBseSB0byB0YWJsZSBvd25lci4KIFNFVCBTRVNTSU9OIEFVVEhP UklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiBTRUxFQ1QgKiBGUk9NIHQxOwpAQCAtMzU5NCw2 ICs1MzM2LDM5IEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB0MTsKICBTZXEg U2NhbiBvbiB0MQogKDEgcm93KQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1B VENIICh0OiB0MSkgQ09MVU1OUyAodC5hLCB0LmIpKTsKKyBhICB8ICAgICAgICAgICAgICAgIGIg ICAgICAgICAgICAgICAgIAorLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgIDEgfCA2Yjg2YjI3M2ZmMzRmY2UxOWQ2YjgwNGVmZjVhM2Y1NworICAzIHwgNGUwNzQwODU2 MmJlZGI4YjYwY2UwNWMxZGVjZmUzYWQKKyAgNSB8IGVmMmQxMjdkZTM3Yjk0MmJhYWQwNjE0NWU1 NGIwYzYxCisgIDcgfCA3OTAyNjk5YmU0MmM4YThlNDZmYmJiNDUwMTcyNjUxNworICA5IHwgMTk1 ODFlMjdkZTdjZWQwMGZmMWNlNTBiMjA0N2U3YTUKKyAxMSB8IDRmYzgyYjI2YWVjYjQ3ZDI4Njhj NGVmYmUzNTgxNzMyCisgMTMgfCAzZmRiYTM1ZjA0ZGM4YzQ2Mjk4NmM5OTJiY2Y4NzU1NAorIDE1 IHwgZTYyOWZhNjU5OGQ3MzI3NjhmN2M3MjZiNGI2MjEyODUKKyAxNyB8IDQ1MjM1NDBmMTUwNGNk MTcxMDBjNDgzNWU4NWI3ZWVmCisgMTkgfCA5NDAwZjFiMjFjYjUyN2Q3ZmEzZDNlYWJiYTkzNTU3 YQorICAwIHwgNWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzkKKyAgMiB8IGQ0NzM1ZTNh MjY1ZTE2ZWVlMDNmNTk3MThiOWI1ZDAzCisgIDQgfCA0YjIyNzc3N2Q0ZGQxZmM2MWM2Zjg4NGY0 ODY0MWQwMgorICA2IHwgZTdmNmMwMTE3NzZlOGRiN2NkMzMwYjU0MTc0ZmQ3NmYKKyAgOCB8IDJj NjI0MjMyY2RkMjIxNzcxMjk0ZGZiYjMxMGFjYTAwCisgMTAgfCA0YTQ0ZGMxNTM2NDIwNGE4MGZl ODBlOTAzOTQ1NWNjMQorIDEyIHwgNmI1MWQ0MzFkZjVkN2YxNDFjYmVjZWNjZjc5ZWRmM2QKKyAx NCB8IDg1MjdhODkxZTIyNDEzNjk1MGZmMzJjYTIxMmI0NWJjCisgMTYgfCBiMTdlZjZkMTljN2E1 YjFlZTgzYjkwN2M1OTU1MjZkYworIDE4IHwgNGVjOTU5OWZjMjAzZDE3NmEzMDE1MzZjMmUwOTFh MTkKKyAyMCB8IGY1Y2EzOGY3NDhhMWQ2ZWFmNzI2YjhhNDJmYjU3NWMzCisgMjAgfCBTdWNjZXNz CisoMjIgcm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RB QkxFIChpdHBnIE1BVENIICh0OiB0MSkgQ09MVU1OUyAodC5hLCB0LmIpKTsKKyAgIFFVRVJZIFBM QU4gICAKKy0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB0MQorKDEgcm93KQorCiAtLSBD aGVjayB0aGF0IGRlZmF1bHQgZGVueSBhcHBsaWVzIHRvIG5vbi1vd25lci9ub24tc3VwZXJ1c2Vy IHdoZW4gUkxTIG9uLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7 CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9OOwpAQCAtMzYwOSw2ICs1Mzg0LDE4IEBAIEVYUExBSU4g KENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB0MTsKICAgIE9uZS1UaW1lIEZpbHRlcjogZmFsc2UK ICgyIHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQx KSBDT0xVTU5TICh0LmEsIHQuYikpOworIGEgfCBiIAorLS0tKy0tLQorKDAgcm93cykKKworRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0 OiB0MSkgQ09MVU1OUyAodC5hLCB0LmIpKTsKKyAgICAgICAgUVVFUlkgUExBTiAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFJlc3VsdAorICAgT25lLVRpbWUgRmlsdGVyOiBm YWxzZQorKDIgcm93cykKKwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19i b2I7CiBTRUxFQ1QgKiBGUk9NIHQxOwogIGEgfCBiIApAQCAtMzYyMiw2ICs1NDA5LDE4IEBAIEVY UExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB0MTsKICAgIE9uZS1UaW1lIEZpbHRlcjog ZmFsc2UKICgyIHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0gg KHQ6IHQxKSBDT0xVTU5TICh0LmEsIHQuYikpOworIGEgfCBiIAorLS0tKy0tLQorKDAgcm93cykK KworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1B VENIICh0OiB0MSkgQ09MVU1OUyAodC5hLCB0LmIpKTsKKyAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFJlc3VsdAorICAgT25lLVRpbWUgRmls dGVyOiBmYWxzZQorKDIgcm93cykKKwogLS0KIC0tIENPUFkgVE8vRlJPTQogLS0KQEAgLTM2Mjks OSArNTQyOCwxMSBAQCBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiBEUk9QIFRBQkxFIGNv cHlfdCBDQVNDQURFOwogRVJST1I6ICB0YWJsZSAiY29weV90IiBkb2VzIG5vdCBleGlzdAogQ1JF QVRFIFRBQkxFIGNvcHlfdCAoYSBpbnRlZ2VyLCBiIHRleHQpOworQ1JFQVRFIFBST1BFUlRZIEdS QVBIIGN0cGcgVkVSVEVYIFRBQkxFUyAoY29weV90IEtFWSAoYSkpOwogQ1JFQVRFIFBPTElDWSBw MSBPTiBjb3B5X3QgVVNJTkcgKGEgJSAyID0gMCk7CiBBTFRFUiBUQUJMRSBjb3B5X3QgRU5BQkxF IFJPVyBMRVZFTCBTRUNVUklUWTsKIEdSQU5UIEFMTCBPTiBjb3B5X3QgVE8gcmVncmVzc19ybHNf Ym9iLCByZWdyZXNzX3Jsc19leGVtcHRfdXNlcjsKK0dSQU5UIEFMTCBPTiBjdHBnIFRPIHJlZ3Jl c3NfcmxzX2JvYiwgcmVncmVzc19ybHNfZXhlbXB0X3VzZXI7CiBJTlNFUlQgSU5UTyBjb3B5X3Qg KFNFTEVDVCB4LCBwdWJsaWMuZmlwc2hhc2goeDo6dGV4dCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MCwxMCkgeCk7CiAtLSBDaGVjayBDT1BZIFRPIGFzIFN1cGVydXNlci9vd25lci4KIFJFU0VUIFNF U1NJT04gQVVUSE9SSVpBVElPTjsKQEAgLTM2NDgsNiArNTQ0OSwxOCBAQCBDT1BZIChTRUxFQ1Qg KiBGUk9NIGNvcHlfdCBPUkRFUiBCWSBhIEFTQykgVE8gU1RET1VUIFdJVEggREVMSU1JVEVSICcs JzsKIDgsMmM2MjQyMzJjZGQyMjE3NzEyOTRkZmJiMzEwYWNhMDAKIDksMTk1ODFlMjdkZTdjZWQw MGZmMWNlNTBiMjA0N2U3YTUKIDEwLDRhNDRkYzE1MzY0MjA0YTgwZmU4MGU5MDM5NDU1Y2MxCitD T1BZIChTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChjdHBnIE1BVENIIChjOiBjb3B5X3QpIENP TFVNTlMgKGMuYSwgYy5iKSkgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRF UiAnLCc7CiswLDVmZWNlYjY2ZmZjODZmMzhkOTUyNzg2YzZkNjk2Yzc5CisxLDZiODZiMjczZmYz NGZjZTE5ZDZiODA0ZWZmNWEzZjU3CisyLGQ0NzM1ZTNhMjY1ZTE2ZWVlMDNmNTk3MThiOWI1ZDAz CiszLDRlMDc0MDg1NjJiZWRiOGI2MGNlMDVjMWRlY2ZlM2FkCis0LDRiMjI3Nzc3ZDRkZDFmYzYx YzZmODg0ZjQ4NjQxZDAyCis1LGVmMmQxMjdkZTM3Yjk0MmJhYWQwNjE0NWU1NGIwYzYxCis2LGU3 ZjZjMDExNzc2ZThkYjdjZDMzMGI1NDE3NGZkNzZmCis3LDc5MDI2OTliZTQyYzhhOGU0NmZiYmI0 NTAxNzI2NTE3Cis4LDJjNjI0MjMyY2RkMjIxNzcxMjk0ZGZiYjMxMGFjYTAwCis5LDE5NTgxZTI3 ZGU3Y2VkMDBmZjFjZTUwYjIwNDdlN2E1CisxMCw0YTQ0ZGMxNTM2NDIwNGE4MGZlODBlOTAzOTQ1 NWNjMQogU0VUIHJvd19zZWN1cml0eSBUTyBPTjsKIENPUFkgKFNFTEVDVCAqIEZST00gY29weV90 IE9SREVSIEJZIGEgQVNDKSBUTyBTVERPVVQgV0lUSCBERUxJTUlURVIgJywnOwogMCw1ZmVjZWI2 NmZmYzg2ZjM4ZDk1Mjc4NmM2ZDY5NmM3OQpAQCAtMzY2MSwxMSArNTQ3NCwyNSBAQCBDT1BZIChT RUxFQ1QgKiBGUk9NIGNvcHlfdCBPUkRFUiBCWSBhIEFTQykgVE8gU1RET1VUIFdJVEggREVMSU1J VEVSICcsJzsKIDgsMmM2MjQyMzJjZGQyMjE3NzEyOTRkZmJiMzEwYWNhMDAKIDksMTk1ODFlMjdk ZTdjZWQwMGZmMWNlNTBiMjA0N2U3YTUKIDEwLDRhNDRkYzE1MzY0MjA0YTgwZmU4MGU5MDM5NDU1 Y2MxCitDT1BZIChTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChjdHBnIE1BVENIIChjOiBjb3B5 X3QpIENPTFVNTlMgKGMuYSwgYy5iKSkgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERF TElNSVRFUiAnLCc7CiswLDVmZWNlYjY2ZmZjODZmMzhkOTUyNzg2YzZkNjk2Yzc5CisxLDZiODZi MjczZmYzNGZjZTE5ZDZiODA0ZWZmNWEzZjU3CisyLGQ0NzM1ZTNhMjY1ZTE2ZWVlMDNmNTk3MThi OWI1ZDAzCiszLDRlMDc0MDg1NjJiZWRiOGI2MGNlMDVjMWRlY2ZlM2FkCis0LDRiMjI3Nzc3ZDRk ZDFmYzYxYzZmODg0ZjQ4NjQxZDAyCis1LGVmMmQxMjdkZTM3Yjk0MmJhYWQwNjE0NWU1NGIwYzYx Cis2LGU3ZjZjMDExNzc2ZThkYjdjZDMzMGI1NDE3NGZkNzZmCis3LDc5MDI2OTliZTQyYzhhOGU0 NmZiYmI0NTAxNzI2NTE3Cis4LDJjNjI0MjMyY2RkMjIxNzcxMjk0ZGZiYjMxMGFjYTAwCis5LDE5 NTgxZTI3ZGU3Y2VkMDBmZjFjZTUwYjIwNDdlN2E1CisxMCw0YTQ0ZGMxNTM2NDIwNGE4MGZlODBl OTAzOTQ1NWNjMQogLS0gQ2hlY2sgQ09QWSBUTyBhcyB1c2VyIHdpdGggcGVybWlzc2lvbnMuCiBT RVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIFNFVCByb3dfc2VjdXJp dHkgVE8gT0ZGOwogQ09QWSAoU0VMRUNUICogRlJPTSBjb3B5X3QgT1JERVIgQlkgYSBBU0MpIFRP IFNURE9VVCBXSVRIIERFTElNSVRFUiAnLCc7IC0tZmFpbCAtIHdvdWxkIGJlIGFmZmVjdGVkIGJ5 IFJMUwogRVJST1I6ICBxdWVyeSB3b3VsZCBiZSBhZmZlY3RlZCBieSByb3ctbGV2ZWwgc2VjdXJp dHkgcG9saWN5IGZvciB0YWJsZSAiY29weV90IgorQ09QWSAoU0VMRUNUICogRlJPTSBHUkFQSF9U QUJMRSAoY3RwZyBNQVRDSCAoYzogY29weV90KSBDT0xVTU5TIChjLmEsIGMuYikpIE9SREVSIEJZ IGEgQVNDKSBUTyBTVERPVVQgV0lUSCBERUxJTUlURVIgJywnOyAtLWZhaWwgLSB3b3VsZCBiZSBh ZmZlY3RlZCBieSBSTFMKK0VSUk9SOiAgcXVlcnkgd291bGQgYmUgYWZmZWN0ZWQgYnkgcm93LWxl dmVsIHNlY3VyaXR5IHBvbGljeSBmb3IgdGFibGUgImNvcHlfdCIKIFNFVCByb3dfc2VjdXJpdHkg VE8gT047CiBDT1BZIChTRUxFQ1QgKiBGUk9NIGNvcHlfdCBPUkRFUiBCWSBhIEFTQykgVE8gU1RE T1VUIFdJVEggREVMSU1JVEVSICcsJzsgLS1vawogMCw1ZmVjZWI2NmZmYzg2ZjM4ZDk1Mjc4NmM2 ZDY5NmM3OQpAQCAtMzY3NCw2ICs1NTAxLDEzIEBAIENPUFkgKFNFTEVDVCAqIEZST00gY29weV90 IE9SREVSIEJZIGEgQVNDKSBUTyBTVERPVVQgV0lUSCBERUxJTUlURVIgJywnOyAtLW9rCiA2LGU3 ZjZjMDExNzc2ZThkYjdjZDMzMGI1NDE3NGZkNzZmCiA4LDJjNjI0MjMyY2RkMjIxNzcxMjk0ZGZi YjMxMGFjYTAwCiAxMCw0YTQ0ZGMxNTM2NDIwNGE4MGZlODBlOTAzOTQ1NWNjMQorQ09QWSAoU0VM RUNUICogRlJPTSBHUkFQSF9UQUJMRSAoY3RwZyBNQVRDSCAoYzogY29weV90KSBDT0xVTU5TIChj LmEsIGMuYikpIE9SREVSIEJZIGEgQVNDKSBUTyBTVERPVVQgV0lUSCBERUxJTUlURVIgJywnOwor MCw1ZmVjZWI2NmZmYzg2ZjM4ZDk1Mjc4NmM2ZDY5NmM3OQorMixkNDczNWUzYTI2NWUxNmVlZTAz ZjU5NzE4YjliNWQwMworNCw0YjIyNzc3N2Q0ZGQxZmM2MWM2Zjg4NGY0ODY0MWQwMgorNixlN2Y2 YzAxMTc3NmU4ZGI3Y2QzMzBiNTQxNzRmZDc2ZgorOCwyYzYyNDIzMmNkZDIyMTc3MTI5NGRmYmIz MTBhY2EwMAorMTAsNGE0NGRjMTUzNjQyMDRhODBmZTgwZTkwMzk0NTVjYzEKIC0tIENoZWNrIENP UFkgVE8gYXMgdXNlciB3aXRoIHBlcm1pc3Npb25zIGFuZCBCWVBBU1NSTFMKIFNFVCBTRVNTSU9O IEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfZXhlbXB0X3VzZXI7CiBTRVQgcm93X3NlY3VyaXR5 IFRPIE9GRjsKQEAgLTM2ODksNiArNTUyMywxOCBAQCBDT1BZIChTRUxFQ1QgKiBGUk9NIGNvcHlf dCBPUkRFUiBCWSBhIEFTQykgVE8gU1RET1VUIFdJVEggREVMSU1JVEVSICcsJzsgLS1vawogOCwy YzYyNDIzMmNkZDIyMTc3MTI5NGRmYmIzMTBhY2EwMAogOSwxOTU4MWUyN2RlN2NlZDAwZmYxY2U1 MGIyMDQ3ZTdhNQogMTAsNGE0NGRjMTUzNjQyMDRhODBmZTgwZTkwMzk0NTVjYzEKK0NPUFkgKFNF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGN0cGcgTUFUQ0ggKGM6IGNvcHlfdCkgQ09MVU1OUyAo Yy5hLCBjLmIpKSBPUkRFUiBCWSBhIEFTQykgVE8gU1RET1VUIFdJVEggREVMSU1JVEVSICcsJzsK KzAsNWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzkKKzEsNmI4NmIyNzNmZjM0ZmNlMTlk NmI4MDRlZmY1YTNmNTcKKzIsZDQ3MzVlM2EyNjVlMTZlZWUwM2Y1OTcxOGI5YjVkMDMKKzMsNGUw NzQwODU2MmJlZGI4YjYwY2UwNWMxZGVjZmUzYWQKKzQsNGIyMjc3NzdkNGRkMWZjNjFjNmY4ODRm NDg2NDFkMDIKKzUsZWYyZDEyN2RlMzdiOTQyYmFhZDA2MTQ1ZTU0YjBjNjEKKzYsZTdmNmMwMTE3 NzZlOGRiN2NkMzMwYjU0MTc0ZmQ3NmYKKzcsNzkwMjY5OWJlNDJjOGE4ZTQ2ZmJiYjQ1MDE3MjY1 MTcKKzgsMmM2MjQyMzJjZGQyMjE3NzEyOTRkZmJiMzEwYWNhMDAKKzksMTk1ODFlMjdkZTdjZWQw MGZmMWNlNTBiMjA0N2U3YTUKKzEwLDRhNDRkYzE1MzY0MjA0YTgwZmU4MGU5MDM5NDU1Y2MxCiBT RVQgcm93X3NlY3VyaXR5IFRPIE9OOwogQ09QWSAoU0VMRUNUICogRlJPTSBjb3B5X3QgT1JERVIg QlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRFUiAnLCc7IC0tb2sKIDAsNWZlY2ViNjZm ZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzkKQEAgLTM3MDIsMTQgKzU1NDgsMzAgQEAgQ09QWSAoU0VM RUNUICogRlJPTSBjb3B5X3QgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRF UiAnLCc7IC0tb2sKIDgsMmM2MjQyMzJjZGQyMjE3NzEyOTRkZmJiMzEwYWNhMDAKIDksMTk1ODFl MjdkZTdjZWQwMGZmMWNlNTBiMjA0N2U3YTUKIDEwLDRhNDRkYzE1MzY0MjA0YTgwZmU4MGU5MDM5 NDU1Y2MxCitDT1BZIChTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChjdHBnIE1BVENIIChjOiBj b3B5X3QpIENPTFVNTlMgKGMuYSwgYy5iKSkgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRI IERFTElNSVRFUiAnLCc7CiswLDVmZWNlYjY2ZmZjODZmMzhkOTUyNzg2YzZkNjk2Yzc5CisxLDZi ODZiMjczZmYzNGZjZTE5ZDZiODA0ZWZmNWEzZjU3CisyLGQ0NzM1ZTNhMjY1ZTE2ZWVlMDNmNTk3 MThiOWI1ZDAzCiszLDRlMDc0MDg1NjJiZWRiOGI2MGNlMDVjMWRlY2ZlM2FkCis0LDRiMjI3Nzc3 ZDRkZDFmYzYxYzZmODg0ZjQ4NjQxZDAyCis1LGVmMmQxMjdkZTM3Yjk0MmJhYWQwNjE0NWU1NGIw YzYxCis2LGU3ZjZjMDExNzc2ZThkYjdjZDMzMGI1NDE3NGZkNzZmCis3LDc5MDI2OTliZTQyYzhh OGU0NmZiYmI0NTAxNzI2NTE3Cis4LDJjNjI0MjMyY2RkMjIxNzcxMjk0ZGZiYjMxMGFjYTAwCis5 LDE5NTgxZTI3ZGU3Y2VkMDBmZjFjZTUwYjIwNDdlN2E1CisxMCw0YTQ0ZGMxNTM2NDIwNGE4MGZl ODBlOTAzOTQ1NWNjMQogLS0gQ2hlY2sgQ09QWSBUTyBhcyB1c2VyIHdpdGhvdXQgcGVybWlzc2lv bnMuIFNFVCByb3dfc2VjdXJpdHkgVE8gT0ZGOwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiBy ZWdyZXNzX3Jsc19jYXJvbDsKIFNFVCByb3dfc2VjdXJpdHkgVE8gT0ZGOwogQ09QWSAoU0VMRUNU ICogRlJPTSBjb3B5X3QgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRFUiAn LCc7IC0tZmFpbCAtIHdvdWxkIGJlIGFmZmVjdGVkIGJ5IFJMUwogRVJST1I6ICBxdWVyeSB3b3Vs ZCBiZSBhZmZlY3RlZCBieSByb3ctbGV2ZWwgc2VjdXJpdHkgcG9saWN5IGZvciB0YWJsZSAiY29w eV90IgorQ09QWSAoU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoY3RwZyBNQVRDSCAoYzogY29w eV90KSBDT0xVTU5TIChjLmEsIGMuYikpIE9SREVSIEJZIGEgQVNDKSBUTyBTVERPVVQgV0lUSCBE RUxJTUlURVIgJywnOworRVJST1I6ICBxdWVyeSB3b3VsZCBiZSBhZmZlY3RlZCBieSByb3ctbGV2 ZWwgc2VjdXJpdHkgcG9saWN5IGZvciB0YWJsZSAiY29weV90IgogU0VUIHJvd19zZWN1cml0eSBU TyBPTjsKIENPUFkgKFNFTEVDVCAqIEZST00gY29weV90IE9SREVSIEJZIGEgQVNDKSBUTyBTVERP VVQgV0lUSCBERUxJTUlURVIgJywnOyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZAogRVJST1I6 ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgY29weV90CitDT1BZIChTRUxFQ1QgKiBGUk9N IEdSQVBIX1RBQkxFIChjdHBnIE1BVENIIChjOiBjb3B5X3QpIENPTFVNTlMgKGMuYSwgYy5iKSkg T1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRFUiAnLCc7CitFUlJPUjogIHBl cm1pc3Npb24gZGVuaWVkIGZvciBwcm9wZXJ0eSBncmFwaCBjdHBnCiAtLSBDaGVjayBDT1BZIHJl bGF0aW9uIFRPOyBrZWVwIGl0IGp1c3Qgb25lIHJvdyB0byBhdm9pZCByZW9yZGVyaW5nIGlzc3Vl cwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwogU0VUIHJvd19zZWN1cml0eSBUTyBPTjsK QEAgLTM4MTMsNiArNTY3NSw3IEBAIFNFVCByb3dfc2VjdXJpdHkgVE8gT047CiBDT1BZIGNvcHlf dCBGUk9NIFNURElOOyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KIEVSUk9SOiAgcGVybWlz c2lvbiBkZW5pZWQgZm9yIHRhYmxlIGNvcHlfdAogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9O OworRFJPUCBQUk9QRVJUWSBHUkFQSCBjdHBnOwogRFJPUCBUQUJMRSBjb3B5X3Q7CiBEUk9QIFRB QkxFIGNvcHlfcmVsX3RvIENBU0NBREU7CiBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHRhYmxl IGNvcHlfcmVsX3RvX2NoaWxkCkBAIC00MDA1LDkgKzU4NjgsMTEgQEAgU0VMRUNUIGF0dG5hbWUs IG1vc3RfY29tbW9uX3ZhbHMgRlJPTSBwZ19zdGF0cwogLS0KIEJFR0lOOwogQ1JFQVRFIFRBQkxF IGNvbGxfdCAoYykgQVMgVkFMVUVTICgnYmFyJzo6dGV4dCk7CitDUkVBVEUgUFJPUEVSVFkgR1JB UEggY2x0cGcgVkVSVEVYIFRBQkxFUyAoY29sbF90IEtFWSAoYykpOwogQ1JFQVRFIFBPTElDWSBj b2xsX3AgT04gY29sbF90IFVTSU5HIChjIDwgKCdmb28nOjp0ZXh0IENPTExBVEUgIkMiKSk7CiBB TFRFUiBUQUJMRSBjb2xsX3QgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIEdSQU5UIFNFTEVD VCBPTiBjb2xsX3QgVE8gcmVncmVzc19ybHNfYWxpY2U7CitHUkFOVCBTRUxFQ1QgT04gY2x0cGcg VE8gcmVncmVzc19ybHNfYWxpY2U7CiBTRUxFQ1QgKHN0cmluZ190b19hcnJheShwb2xxdWFsLCAn OicpKVs3XSBBUyBpbnB1dGNvbGxpZCBGUk9NIHBnX3BvbGljeSBXSEVSRSBwb2xyZWxpZCA9ICdj b2xsX3QnOjpyZWdjbGFzczsKICAgIGlucHV0Y29sbGlkICAgIAogLS0tLS0tLS0tLS0tLS0tLS0t CkBAIC00MDIxLDYgKzU4ODYsMTIgQEAgU0VMRUNUICogRlJPTSBjb2xsX3Q7CiAgYmFyCiAoMSBy b3cpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGNsdHBnIE1BVENIIChjOiBjb2xsX3Qp IENPTFVNTlMgKGMuYykpOworICBjICAKKy0tLS0tCisgYmFyCisoMSByb3cpCisKIFJPTExCQUNL OwogLS0KIC0tIFNoYXJlZCBPYmplY3QgRGVwZW5kZW5jaWVzCkBAIC00MDkzLDcgKzU5NjQsOCBA QCBDUkVBVEUgVEFCTEUgcjEgKGEgaW50KTsKIENSRUFURSBUQUJMRSByMiAoYSBpbnQpOwogSU5T RVJUIElOVE8gcjEgVkFMVUVTICgxMCksICgyMCk7CiBJTlNFUlQgSU5UTyByMiBWQUxVRVMgKDEw KSwgKDIwKTsKLUdSQU5UIEFMTCBPTiByMSwgcjIgVE8gcmVncmVzc19ybHNfYm9iOworQ1JFQVRF IFBST1BFUlRZIEdSQVBIIHRydHBnIFZFUlRFWCBUQUJMRVMgKHIyIEtFWSAoYSkpOworR1JBTlQg QUxMIE9OIHIxLCByMiwgdHJ0cGcgVE8gcmVncmVzc19ybHNfYm9iOwogQ1JFQVRFIFBPTElDWSBw MSBPTiByMSBVU0lORyAodHJ1ZSk7CiBBTFRFUiBUQUJMRSByMSBFTkFCTEUgUk9XIExFVkVMIFNF Q1VSSVRZOwogQ1JFQVRFIFBPTElDWSBwMSBPTiByMiBGT1IgU0VMRUNUIFVTSU5HICh0cnVlKTsK QEAgLTQxNjUsNyArNjAzNyw0MyBAQCBTRUxFQ1QgKiBGUk9NIHIyOwogIDIwCiAoMiByb3dzKQog CitJTlNFUlQgSU5UTyByMSBTRUxFQ1QgYSBGUk9NIEdSQVBIX1RBQkxFICh0cnRwZyBNQVRDSCAo cjogcjIpIENPTFVNTlMgKHIuYSkpIHIyIFJFVFVSTklORyAqOyAtLSBPSworIGEgIAorLS0tLQor IDEwCisgMjAKKygyIHJvd3MpCisKK1VQREFURSByMSBTRVQgYSA9IHIyLmEgKyAyIEZST00gR1JB UEhfVEFCTEUgKHRydHBnIE1BVENIIChyOiByMikgQ09MVU1OUyAoci5hKSkgcjIgV0hFUkUgcjEu YSA9IHIyLmEgUkVUVVJOSU5HICo7IC0tIE9LCisgYSAgfCBhICAKKy0tLS0rLS0tLQorIDEyIHwg MTAKKyAyMiB8IDIwCisoMiByb3dzKQorCitERUxFVEUgRlJPTSByMSBVU0lORyBHUkFQSF9UQUJM RSAodHJ0cGcgTUFUQ0ggKHI6IHIyKSBDT0xVTU5TIChyLmEpKSByMiBXSEVSRSByMS5hID0gcjIu YSArIDIgUkVUVVJOSU5HICo7IC0tIE9LCisgYSAgfCBhICAKKy0tLS0rLS0tLQorIDEyIHwgMTAK KyAyMiB8IDIwCisoMiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHIxOworIGEgIAorLS0tLQorIDEx CisgMjEKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZST00gcjI7CisgYSAgCistLS0tCisgMTAKKyAy MAorKDIgcm93cykKKwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGlj ZTsKK0RST1AgUFJPUEVSVFkgR1JBUEggdHJ0cGc7CiBEUk9QIFRBQkxFIHIxOwogRFJPUCBUQUJM RSByMjsKIC0tCkBAIC00MTc0LDYgKzYwODIsNyBAQCBEUk9QIFRBQkxFIHIyOwogU0VUIFNFU1NJ T04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIFNFVCByb3dfc2VjdXJpdHkgPSBv bjsKIENSRUFURSBUQUJMRSByMSAoYSBpbnQpOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGZybHN0 cGcgVkVSVEVYIFRBQkxFUyAocjEgS0VZIChhKSk7CiBJTlNFUlQgSU5UTyByMSBWQUxVRVMgKDEw KSwgKDIwKTsKIENSRUFURSBQT0xJQ1kgcDEgT04gcjEgVVNJTkcgKGZhbHNlKTsKIEFMVEVSIFRB QkxFIHIxIEVOQUJMRSBST1cgTEVWRUwgU0VDVVJJVFk7CkBAIC00MTg0LDYgKzYwOTMsMTEgQEAg VEFCTEUgcjE7CiAtLS0KICgwIHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGZy bHN0cGcgTUFUQ0ggKHI6IHIxKSBDT0xVTU5TIChyLmEpKTsKKyBhIAorLS0tCisoMCByb3dzKQor CiAtLSBSTFMgZXJyb3IKIElOU0VSVCBJTlRPIHIxIFZBTFVFUyAoMSk7CiBFUlJPUjogIG5ldyBy b3cgdmlvbGF0ZXMgcm93LWxldmVsIHNlY3VyaXR5IHBvbGljeSBmb3IgdGFibGUgInIxIgpAQCAt NDIwNiwxMiArNjEyMCwxNiBAQCBTRVQgcm93X3NlY3VyaXR5ID0gb2ZmOwogVEFCTEUgcjE7CiBF UlJPUjogIHF1ZXJ5IHdvdWxkIGJlIGFmZmVjdGVkIGJ5IHJvdy1sZXZlbCBzZWN1cml0eSBwb2xp Y3kgZm9yIHRhYmxlICJyMSIKIEhJTlQ6ICBUbyBkaXNhYmxlIHRoZSBwb2xpY3kgZm9yIHRoZSB0 YWJsZSdzIG93bmVyLCB1c2UgQUxURVIgVEFCTEUgTk8gRk9SQ0UgUk9XIExFVkVMIFNFQ1VSSVRZ LgorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZnJsc3RwZyBNQVRDSCAocjogcjEpIENPTFVN TlMgKHIuYSkpOworRVJST1I6ICBxdWVyeSB3b3VsZCBiZSBhZmZlY3RlZCBieSByb3ctbGV2ZWwg c2VjdXJpdHkgcG9saWN5IGZvciB0YWJsZSAicjEiCitISU5UOiAgVG8gZGlzYWJsZSB0aGUgcG9s aWN5IGZvciB0aGUgdGFibGUncyBvd25lciwgdXNlIEFMVEVSIFRBQkxFIE5PIEZPUkNFIFJPVyBM RVZFTCBTRUNVUklUWS4KIFVQREFURSByMSBTRVQgYSA9IDE7CiBFUlJPUjogIHF1ZXJ5IHdvdWxk IGJlIGFmZmVjdGVkIGJ5IHJvdy1sZXZlbCBzZWN1cml0eSBwb2xpY3kgZm9yIHRhYmxlICJyMSIK IEhJTlQ6ICBUbyBkaXNhYmxlIHRoZSBwb2xpY3kgZm9yIHRoZSB0YWJsZSdzIG93bmVyLCB1c2Ug QUxURVIgVEFCTEUgTk8gRk9SQ0UgUk9XIExFVkVMIFNFQ1VSSVRZLgogREVMRVRFIEZST00gcjE7 CiBFUlJPUjogIHF1ZXJ5IHdvdWxkIGJlIGFmZmVjdGVkIGJ5IHJvdy1sZXZlbCBzZWN1cml0eSBw b2xpY3kgZm9yIHRhYmxlICJyMSIKIEhJTlQ6ICBUbyBkaXNhYmxlIHRoZSBwb2xpY3kgZm9yIHRo ZSB0YWJsZSdzIG93bmVyLCB1c2UgQUxURVIgVEFCTEUgTk8gRk9SQ0UgUk9XIExFVkVMIFNFQ1VS SVRZLgorRFJPUCBQUk9QRVJUWSBHUkFQSCBmcmxzdHBnOwogRFJPUCBUQUJMRSByMTsKIC0tCiAt LSBGT1JDRSBST1cgTEVWRUwgU0VDVVJJVFkgZG9lcyBub3QgYnJlYWsgUkkKQEAgLTQ0ODEsOCAr NjM5OSwxMCBAQCBEUk9QIFRBQkxFIHJlZl90Ymw7CiBDUkVBVEUgVEFCTEUgcmxzX3RibCAoYSBp bnQpOwogSU5TRVJUIElOVE8gcmxzX3RibCBTRUxFQ1QgeC8xMCBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCAxMDApIHg7CiBBTkFMWVpFIHJsc190Ymw7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggbG90 cGcgVkVSVEVYIFRBQkxFUyAocmxzX3RibCBLRVkgKGEpKTsKIEFMVEVSIFRBQkxFIHJsc190Ymwg RU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIEdSQU5UIFNFTEVDVCBPTiBybHNfdGJsIFRPIHJl Z3Jlc3NfcmxzX2FsaWNlOworR1JBTlQgU0VMRUNUIE9OIGxvdHBnIFRPIHJlZ3Jlc3NfcmxzX2Fs aWNlOwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIENSRUFU RSBGVU5DVElPTiBvcF9sZWFrKGludCwgaW50KSBSRVRVUk5TIGJvb2wKICAgICBBUyAnQkVHSU4g UkFJU0UgTk9USUNFICcnb3BfbGVhayA9PiAlLCAlJycsICQxLCAkMjsgUkVUVVJOICQxIDwgJDI7 IEVORCcKQEAgLTQ1MDEsOSArNjQyMSwyMCBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAq IEZST00gcmxzX3RibCBXSEVSRSBhIDw8PCAxMDAwIG9yIGEgPDw8IDkwMDsKICAgIE9uZS1UaW1l IEZpbHRlcjogZmFsc2UKICgyIHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGxv dHBnIE1BVENIIChyOiBybHNfdGJsKSBXSEVSRSByLmEgPDw8IDEwMDAgQ09MVU1OUyAoci5hKSk7 CisgYSAKKy0tLQorKDAgcm93cykKKworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAobG90cGcg TUFUQ0ggKHI6IHJsc190YmwgV0hFUkUgci5hIDw8PCAxMDAwKSBDT0xVTU5TIChyLmEpKTsKKyBh IAorLS0tCisoMCByb3dzKQorCiBEUk9QIE9QRVJBVE9SIDw8PCAoaW50LCBpbnQpOwogRFJPUCBG VU5DVElPTiBvcF9sZWFrKGludCwgaW50KTsKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsK K0RST1AgUFJPUEVSVFkgR1JBUEggbG90cGc7CiBEUk9QIFRBQkxFIHJsc190Ymw7CiAtLSBCdWcg IzE2MDA2OiB3aG9sZS1yb3cgVmFycyBpbiBhIHBvbGljeSBkb24ndCBwbGF5IG5pY2Ugd2l0aCBz dWItc2VsZWN0cwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsK QEAgLTQ2NzEsMjkgKzY2MDIsMzggQEAgRFJPUCBUQUJMRSBybHNfdDsKIC0tCiBSRVNFVCBTRVNT SU9OIEFVVEhPUklaQVRJT047CiBEUk9QIFNDSEVNQSByZWdyZXNzX3Jsc19zY2hlbWEgQ0FTQ0FE RTsKLU5PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gMzAgb3RoZXIgb2JqZWN0cworTk9USUNFOiAg ZHJvcCBjYXNjYWRlcyB0byAzOSBvdGhlciBvYmplY3RzCiBERVRBSUw6ICBkcm9wIGNhc2NhZGVz IHRvIGZ1bmN0aW9uIGZfbGVhayh0ZXh0KQogZHJvcCBjYXNjYWRlcyB0byB0YWJsZSB1YWNjb3Vu dAogZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBjYXRlZ29yeQogZHJvcCBjYXNjYWRlcyB0byB0YWJs ZSBkb2N1bWVudAorZHJvcCBjYXNjYWRlcyB0byBwcm9wZXJ0eSBncmFwaCBhY2NfY2F0CiBkcm9w IGNhc2NhZGVzIHRvIHRhYmxlIHBhcnRfZG9jdW1lbnQKK2Ryb3AgY2FzY2FkZXMgdG8gcHJvcGVy dHkgZ3JhcGggcHRwZwogZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBkZXBlbmRlbnQKIGRyb3AgY2Fz Y2FkZXMgdG8gdGFibGUgcmVjMQorZHJvcCBjYXNjYWRlcyB0byBwcm9wZXJ0eSBncmFwaCBydHBn CiBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIHJlYzIKIGRyb3AgY2FzY2FkZXMgdG8gdmlldyByZWMx dgogZHJvcCBjYXNjYWRlcyB0byB2aWV3IHJlYzJ2CiBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIHMx CiBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIHMyCitkcm9wIGNhc2NhZGVzIHRvIHByb3BlcnR5IGdy YXBoIHJ2dHBnCiBkcm9wIGNhc2NhZGVzIHRvIHZpZXcgdjIKIGRyb3AgY2FzY2FkZXMgdG8gdGFi bGUgYjEKIGRyb3AgY2FzY2FkZXMgdG8gdmlldyBidjEKK2Ryb3AgY2FzY2FkZXMgdG8gcHJvcGVy dHkgZ3JhcGggc2J2cGcKIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgejEKIGRyb3AgY2FzY2FkZXMg dG8gdGFibGUgejIKK2Ryb3AgY2FzY2FkZXMgdG8gcHJvcGVydHkgZ3JhcGggZ3RwZwogZHJvcCBj YXNjYWRlcyB0byB0YWJsZSB6MV9ibGFja2xpc3QKIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgeDEK K2Ryb3AgY2FzY2FkZXMgdG8gcHJvcGVydHkgZ3JhcGggY3N0cGcKIGRyb3AgY2FzY2FkZXMgdG8g dGFibGUgeTEKIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgeTIKK2Ryb3AgY2FzY2FkZXMgdG8gcHJv cGVydHkgZ3JhcGggc3ZidHBnCiBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIHQxCitkcm9wIGNhc2Nh ZGVzIHRvIHByb3BlcnR5IGdyYXBoIGl0cGcKIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgdDIKIGRy b3AgY2FzY2FkZXMgdG8gdGFibGUgdDMKIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgdDQKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jvd3NlY3VyaXR5LnNxbCBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Jvd3NlY3VyaXR5LnNxbAppbmRleCBjZjA5ZjYyZWFiYS4uOTkyMjk4OGYyNTkg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jvd3NlY3VyaXR5LnNxbAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9yb3dzZWN1cml0eS5zcWwKQEAgLTg2LDYgKzg2LDE0IEBAIElO U0VSVCBJTlRPIGRvY3VtZW50IFZBTFVFUwogICAgICggOSwgMjIsIDEsICdyZWdyZXNzX3Jsc19k YXZlJywgJ2F3ZXNvbWUgc2NpZW5jZSBmaWN0aW9uJyksCiAgICAgKDEwLCAzMywgMiwgJ3JlZ3Jl c3NfcmxzX2RhdmUnLCAnYXdlc29tZSB0ZWNobm9sb2d5IGJvb2snKTsKIAorQ1JFQVRFIFBST1BF UlRZIEdSQVBIIGFjY19jYXQKKyAgICBWRVJURVggVEFCTEVTICh1YWNjb3VudCwgY2F0ZWdvcnkp CisgICAgRURHRSBUQUJMRVMgKAorICAgICAgICBkb2N1bWVudAorICAgICAgICBTT1VSQ0UgS0VZ IChkYXV0aG9yKSBSRUZFUkVOQ0VTIHVhY2NvdW50IChwZ3VzZXIpCisgICAgICAgIERFU1RJTkFU SU9OIEtFWSAoY2lkKSBSRUZFUkVOQ0VTIGNhdGVnb3J5IChjaWQpKTsKK0dSQU5UIEFMTCBPTiBh Y2NfY2F0IFRPIHB1YmxpYzsKKwogQUxURVIgVEFCTEUgZG9jdW1lbnQgRU5BQkxFIFJPVyBMRVZF TCBTRUNVUklUWTsKIAogLS0gdXNlcidzIHNlY3VyaXR5IGxldmVsIG11c3QgYmUgaGlnaGVyIHRo YW4gb3IgZXF1YWwgdG8gZG9jdW1lbnQncwpAQCAtMTE2LDYgKzEyNCw5IEBAIFNFVCBTRVNTSU9O IEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwogU0VUIHJvd19zZWN1cml0eSBUTyBPTjsK IFNFTEVDVCAqIEZST00gZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSkgT1JERVIgQlkgZGlk OwogU0VMRUNUICogRlJPTSBkb2N1bWVudCBOQVRVUkFMIEpPSU4gY2F0ZWdvcnkgV0hFUkUgZl9s ZWFrKGR0aXRsZSkgT1JERVIgQlkgZGlkOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoYWNj X2NhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BVENIICh1IDogdWFjY291bnQpLVtk IDogZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBkLmRsZXZl bCwgZC5kdGl0bGUsIGMuY2lkLCBjLmNuYW1lKSkgT1JERVIgQlkgZGlkOwogCiAtLSB0cnkgYSBz YW1wbGVkIHZlcnNpb24KIFNFTEVDVCAqIEZST00gZG9jdW1lbnQgVEFCTEVTQU1QTEUgQkVSTk9V TExJKDUwKSBSRVBFQVRBQkxFKDApCkBAIC0xMjUsNiArMTM2LDkgQEAgU0VMRUNUICogRlJPTSBk b2N1bWVudCBUQUJMRVNBTVBMRSBCRVJOT1VMTEkoNTApIFJFUEVBVEFCTEUoMCkKIFNFVCBTRVNT SU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIGRvY3Vt ZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZIGRpZDsKIFNFTEVDVCAqIEZST00gZG9j dW1lbnQgTkFUVVJBTCBKT0lOIGNhdGVnb3J5IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZ IGRpZDsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGFjY19jYXQKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBNQVRDSCAodSA6IHVhY2NvdW50KS1bZCA6IGRvY3VtZW50IFdIRVJFIGZf bGVhayhkLmR0aXRsZSldLT4oYyA6IGNhdGVnb3J5KQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENPTFVNTlMgKHUucGd1c2VyLCBkLmRpZCwgZC5kbGV2ZWwsIGQuZHRpdGxlLCBjLmNpZCwg Yy5jbmFtZSkpIE9SREVSIEJZIGRpZDsKIAogLS0gdHJ5IGEgc2FtcGxlZCB2ZXJzaW9uCiBTRUxF Q1QgKiBGUk9NIGRvY3VtZW50IFRBQkxFU0FNUExFIEJFUk5PVUxMSSg1MCkgUkVQRUFUQUJMRSgw KQpAQCAtMTMyLDE0ICsxNDYsMjMgQEAgU0VMRUNUICogRlJPTSBkb2N1bWVudCBUQUJMRVNBTVBM RSBCRVJOT1VMTEkoNTApIFJFUEVBVEFCTEUoMCkKIAogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxF Q1QgKiBGUk9NIGRvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpOwogRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgKiBGUk9NIGRvY3VtZW50IE5BVFVSQUwgSk9JTiBjYXRlZ29yeSBXSEVSRSBm X2xlYWsoZHRpdGxlKTsKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9U QUJMRSAoYWNjX2NhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BVENIICh1IDogdWFj Y291bnQpLVtkIDogZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKV0tPihjIDogY2F0ZWdv cnkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyAodS5wZ3VzZXIsIGQuZGlk LCBkLmRsZXZlbCwgZC5kdGl0bGUsIGMuY2lkLCBjLmNuYW1lKSkgT1JERVIgQlkgZGlkOwogCiAt LSB2aWV3cG9pbnQgZnJvbSByZWdyZXNzX3Jsc19kYXZlCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFU SU9OIHJlZ3Jlc3NfcmxzX2RhdmU7CiBTRUxFQ1QgKiBGUk9NIGRvY3VtZW50IFdIRVJFIGZfbGVh ayhkdGl0bGUpIE9SREVSIEJZIGRpZDsKIFNFTEVDVCAqIEZST00gZG9jdW1lbnQgTkFUVVJBTCBK T0lOIGNhdGVnb3J5IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZIGRpZDsKK1NFTEVDVCAq IEZST00gR1JBUEhfVEFCTEUgKGFjY19jYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBN QVRDSCAodSA6IHVhY2NvdW50KS1bZCA6IGRvY3VtZW50IFdIRVJFIGZfbGVhayhkLmR0aXRsZSld LT4oYyA6IGNhdGVnb3J5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMgKHUu cGd1c2VyLCBkLmRpZCwgZC5kbGV2ZWwsIGQuZHRpdGxlLCBjLmNpZCwgYy5jbmFtZSkpIE9SREVS IEJZIGRpZDsKIAogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGRvY3VtZW50IFdI RVJFIGZfbGVhayhkdGl0bGUpOwogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGRv Y3VtZW50IE5BVFVSQUwgSk9JTiBjYXRlZ29yeSBXSEVSRSBmX2xlYWsoZHRpdGxlKTsKK0VYUExB SU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoYWNjX2NhdAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE1BVENIICh1IDogdWFjY291bnQpLVtkIDogZG9jdW1lbnQg V0hFUkUgZl9sZWFrKGQuZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ09MVU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBkLmRsZXZlbCwgZC5kdGl0bGUs IGMuY2lkLCBjLmNuYW1lKSkgT1JERVIgQlkgZGlkOwogCiAtLSA0NCB3b3VsZCB0ZWNobmljYWxs eSBmYWlsIGZvciBib3RoIHAyciBhbmQgcDFyLCBidXQgd2Ugc2hvdWxkIGdldCBhbiBlcnJvcgog LS0gYmFjayBmcm9tIHAxciBmb3IgdGhpcyBiZWNhdXNlIGl0IHNvcnRzIGZpcnN0CkBAIC0xNTgs MTQgKzE4MSwyMyBAQCBBTFRFUiBQT0xJQ1kgcDEgT04gZG9jdW1lbnQgVVNJTkcgKGRhdXRob3Ig PSBjdXJyZW50X3VzZXIpOwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19i b2I7CiBTRUxFQ1QgKiBGUk9NIGRvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZ IGRpZDsKIFNFTEVDVCAqIEZST00gZG9jdW1lbnQgTkFUVVJBTCBKT0lOIGNhdGVnb3J5IFdIRVJF IGZfbGVhayhkdGl0bGUpIE9SREVSIGJ5IGRpZDsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUg KGFjY19jYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQVRDSCAodSA6IHVhY2NvdW50 KS1bZCA6IGRvY3VtZW50IFdIRVJFIGZfbGVhayhkLmR0aXRsZSldLT4oYyA6IGNhdGVnb3J5KQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMgKHUucGd1c2VyLCBkLmRpZCwgZC5k bGV2ZWwsIGQuZHRpdGxlLCBjLmNpZCwgYy5jbmFtZSkpIE9SREVSIEJZIGRpZDsKIAogLS0gdmll d3BvaW50IGZyb20gcmxzX3JlZ3Jlc19jYXJvbCBhZ2FpbgogU0VUIFNFU1NJT04gQVVUSE9SSVpB VElPTiByZWdyZXNzX3Jsc19jYXJvbDsKIFNFTEVDVCAqIEZST00gZG9jdW1lbnQgV0hFUkUgZl9s ZWFrKGR0aXRsZSkgT1JERVIgQlkgZGlkOwogU0VMRUNUICogRlJPTSBkb2N1bWVudCBOQVRVUkFM IEpPSU4gY2F0ZWdvcnkgV0hFUkUgZl9sZWFrKGR0aXRsZSkgT1JERVIgYnkgZGlkOworU0VMRUNU ICogRlJPTSBHUkFQSF9UQUJMRSAoYWNjX2NhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAg IE1BVENIICh1IDogdWFjY291bnQpLVtkIDogZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxl KV0tPihjIDogY2F0ZWdvcnkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyAo dS5wZ3VzZXIsIGQuZGlkLCBkLmRsZXZlbCwgZC5kdGl0bGUsIGMuY2lkLCBjLmNuYW1lKSkgT1JE RVIgQlkgZGlkOwogCiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZG9jdW1lbnQg V0hFUkUgZl9sZWFrKGR0aXRsZSk7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g ZG9jdW1lbnQgTkFUVVJBTCBKT0lOIGNhdGVnb3J5IFdIRVJFIGZfbGVhayhkdGl0bGUpOworRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChhY2NfY2F0CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTUFUQ0ggKHUgOiB1YWNjb3VudCktW2QgOiBkb2N1bWVu dCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpXS0+KGMgOiBjYXRlZ29yeSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDT0xVTU5TICh1LnBndXNlciwgZC5kaWQsIGQuZGxldmVsLCBkLmR0aXRs ZSwgYy5jaWQsIGMuY25hbWUpKSBPUkRFUiBCWSBkaWQ7CiAKIC0tIGludGVyYWN0aW9uIG9mIEZL L1BLIGNvbnN0cmFpbnRzCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Fs aWNlOwpAQCAtMjAwLDMwICsyMzIsNDUgQEAgUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwog U0VUIHJvd19zZWN1cml0eSBUTyBPTjsKIFNFTEVDVCAqIEZST00gZG9jdW1lbnQ7CiBTRUxFQ1Qg KiBGUk9NIGNhdGVnb3J5OworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoYWNjX2NhdAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE1BVENIICh1IDogdWFjY291bnQpLVtkIDogZG9jdW1l bnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ09MVU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBkLmRsZXZlbCwgZC5kdGl0 bGUsIGMuY2lkLCBjLmNuYW1lKSkgT1JERVIgQlkgZGlkOwogCiAtLSBkYXRhYmFzZSBzdXBlcnVz ZXIgZG9lcyBieXBhc3MgUkxTIHBvbGljeSB3aGVuIGRpc2FibGVkCiBSRVNFVCBTRVNTSU9OIEFV VEhPUklaQVRJT047CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9GRjsKIFNFTEVDVCAqIEZST00gZG9j dW1lbnQ7CiBTRUxFQ1QgKiBGUk9NIGNhdGVnb3J5OworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJM RSAoYWNjX2NhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BVENIICh1IDogdWFjY291 bnQpLVtkIDogZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBk LmRsZXZlbCwgZC5kdGl0bGUsIGMuY2lkLCBjLmNuYW1lKSkgT1JERVIgQlkgZGlkOwogCiAtLSBk YXRhYmFzZSBub24tc3VwZXJ1c2VyIHdpdGggYnlwYXNzIHByaXZpbGVnZSBjYW4gYnlwYXNzIFJM UyBwb2xpY3kgd2hlbiBkaXNhYmxlZAogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNz X3Jsc19leGVtcHRfdXNlcjsKIFNFVCByb3dfc2VjdXJpdHkgVE8gT0ZGOwogU0VMRUNUICogRlJP TSBkb2N1bWVudDsKIFNFTEVDVCAqIEZST00gY2F0ZWdvcnk7CitTRUxFQ1QgKiBGUk9NIEdSQVBI X1RBQkxFIChhY2NfY2F0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFUQ0ggKHUgOiB1 YWNjb3VudCktW2QgOiBkb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpXS0+KGMgOiBjYXRl Z29yeSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT0xVTU5TICh1LnBndXNlciwgZC5k aWQsIGQuZGxldmVsLCBkLmR0aXRsZSwgYy5jaWQsIGMuY25hbWUpKSBPUkRFUiBCWSBkaWQ7CiAK IC0tIFJMUyBwb2xpY3kgZG9lcyBub3QgYXBwbHkgdG8gdGFibGUgb3duZXIgd2hlbiBSTFMgZW5h YmxlZC4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiBTRVQg cm93X3NlY3VyaXR5IFRPIE9OOwogU0VMRUNUICogRlJPTSBkb2N1bWVudDsKIFNFTEVDVCAqIEZS T00gY2F0ZWdvcnk7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChhY2NfY2F0CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTUFUQ0ggKHUgOiB1YWNjb3VudCktW2QgOiBkb2N1bWVudCBX SEVSRSBmX2xlYWsoZC5kdGl0bGUpXS0+KGMgOiBjYXRlZ29yeSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDT0xVTU5TICh1LnBndXNlciwgZC5kaWQsIGQuZGxldmVsLCBkLmR0aXRsZSwg Yy5jaWQsIGMuY25hbWUpKSBPUkRFUiBCWSBkaWQ7CiAKIC0tIFJMUyBwb2xpY3kgZG9lcyBub3Qg YXBwbHkgdG8gdGFibGUgb3duZXIgd2hlbiBSTFMgZGlzYWJsZWQuCiBTRVQgU0VTU0lPTiBBVVRI T1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwogU0VUIHJvd19zZWN1cml0eSBUTyBPRkY7CiBT RUxFQ1QgKiBGUk9NIGRvY3VtZW50OwogU0VMRUNUICogRlJPTSBjYXRlZ29yeTsKK1NFTEVDVCAq IEZST00gR1JBUEhfVEFCTEUgKGFjY19jYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBN QVRDSCAodSA6IHVhY2NvdW50KS1bZCA6IGRvY3VtZW50IFdIRVJFIGZfbGVhayhkLmR0aXRsZSld LT4oYyA6IGNhdGVnb3J5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMgKHUu cGd1c2VyLCBkLmRpZCwgZC5kbGV2ZWwsIGQuZHRpdGxlLCBjLmNpZCwgYy5jbmFtZSkpIE9SREVS IEJZIGRpZDsKIAogLS0KIC0tIFRhYmxlIGluaGVyaXRhbmNlIGFuZCBSTFMgcG9saWN5CkBAIC0y NjMsNiArMzEwLDEzIEBAIENPUFkgdDMoaWQsIGEsYixjKSBGUk9NIHN0ZGluOwogMzAzCTMJenp6 CVoKIFwuCiAKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBpdHBnCisgICAgVkVSVEVYIFRBQkxFUyAo CisgICAgICAgIHQxIEtFWShpZCkgREVGQVVMVCBMQUJFTCBQUk9QRVJUSUVTIChpZCwgYSwgYiwg dGFibGVvaWQ6OnJlZ2NsYXNzIGFzIHRhYmxlb2lkKSwKKyAgICAgICAgdDIgS0VZKGlkKSBERUZB VUxUIExBQkVMIFBST1BFUlRJRVMgKGlkLCBhLCBiLCB0YWJsZW9pZDo6cmVnY2xhc3MgYXMgdGFi bGVvaWQpLAorICAgICAgICB0MyBLRVkoaWQpIERFRkFVTFQgTEFCRUwgUFJPUEVSVElFUyAoaWQs IGEsIGIsIHRhYmxlb2lkOjpyZWdjbGFzcyBhcyB0YWJsZW9pZCkpOworR1JBTlQgQUxMIE9OIGl0 cGcgVE8gcHVibGljOworCiBDUkVBVEUgUE9MSUNZIHAxIE9OIHQxIEZPUiBBTEwgVE8gUFVCTElD IFVTSU5HIChhICUgMiA9IDApOyAtLSBiZSBldmVuIG51bWJlcgogQ1JFQVRFIFBPTElDWSBwMiBP TiB0MiBGT1IgQUxMIFRPIFBVQkxJQyBVU0lORyAoYSAlIDIgPSAxKTsgLS0gYmUgb2RkIG51bWJl cgogCkBAIC0yNzMsOSArMzI3LDEzIEBAIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVz c19ybHNfYm9iOwogCiBTRUxFQ1QgKiBGUk9NIHQxOwogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxF Q1QgKiBGUk9NIHQxOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDog dDEpIENPTFVNTlMgKHQuaWQsIHQuYSwgdC5iKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVD VCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQxKSBDT0xVTU5TICh0LmlkLCB0 LmEsIHQuYikpOwogCiBTRUxFQ1QgKiBGUk9NIHQxIFdIRVJFIGZfbGVhayhiKTsKIEVYUExBSU4g KENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB0MSBXSEVSRSBmX2xlYWsoYik7CitTRUxFQ1QgKiBG Uk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0OiB0MSBXSEVSRSBmX2xlYWsodC5iKSkgQ09M VU1OUyAodC5pZCwgdC5hLCB0LmIpKTsKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJP TSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEgV0hFUkUgZl9sZWFrKHQuYikpIENPTFVN TlMgKHQuaWQsIHQuYSwgdC5iKSk7CiAKIC0tIHJlZmVyZW5jZSB0byBzeXN0ZW0gY29sdW1uCiBT RUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gdDE7CkBAIC0yOTUsMTggKzM1MywyNSBA QCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gdDEgV0hFUkUgZl9sZWFrKGIpIEZP UiBTSEFSRTsKIC0tIHVuaW9uIGFsbCBxdWVyeQogU0VMRUNUIGEsIGIsIHRhYmxlb2lkOjpyZWdj bGFzcyBGUk9NIHQyIFVOSU9OIEFMTCBTRUxFQ1QgYSwgYiwgdGFibGVvaWQ6OnJlZ2NsYXNzIEZS T00gdDM7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBhLCBiLCB0YWJsZW9pZDo6cmVnY2xh c3MgRlJPTSB0MiBVTklPTiBBTEwgU0VMRUNUIGEsIGIsIHRhYmxlb2lkOjpyZWdjbGFzcyBGUk9N IHQzOworLS0gbGFiZWwgZGlzanVuY3Rpb24KK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0 cGcgTUFUQ0ggKHQgOiB0MiB8IHQzKSBDT0xVTU5TICh0LmEsIHQuYiwgdC50YWJsZW9pZCkpOwor RVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENI ICh0IDogdDIgfCB0MykgQ09MVU1OUyAodC5hLCB0LmIsIHQudGFibGVvaWQpKTsKIAogLS0gc3Vw ZXJ1c2VyIGlzIGFsbG93ZWQgdG8gYnlwYXNzIFJMUyBjaGVja3MKIFJFU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTjsKIFNFVCByb3dfc2VjdXJpdHkgVE8gT0ZGOwogU0VMRUNUICogRlJPTSB0MSBX SEVSRSBmX2xlYWsoYik7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gdDEgV0hF UkUgZl9sZWFrKGIpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDog dDEgV0hFUkUgZl9sZWFrKHQuYikpIENPTFVNTlMgKHQuaWQsIHQuYSwgdC5iKSk7CitFWFBMQUlO IChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQx IFdIRVJFIGZfbGVhayh0LmIpKSBDT0xVTU5TICh0LmlkLCB0LmEsIHQuYikpOwogCiAtLSBub24t c3VwZXJ1c2VyIHdpdGggYnlwYXNzIHByaXZpbGVnZSBjYW4gYnlwYXNzIFJMUyBwb2xpY3kgd2hl biBkaXNhYmxlZAogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19leGVtcHRf dXNlcjsKIFNFVCByb3dfc2VjdXJpdHkgVE8gT0ZGOwogU0VMRUNUICogRlJPTSB0MSBXSEVSRSBm X2xlYWsoYik7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gdDEgV0hFUkUgZl9s ZWFrKGIpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEgV0hF UkUgZl9sZWFrKHQuYikpIENPTFVNTlMgKHQuaWQsIHQuYSwgdC5iKSk7CitFWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQxIFdIRVJF IGZfbGVhayh0LmIpKSBDT0xVTU5TICh0LmlkLCB0LmEsIHQuYikpOwogCiAtLQogLS0gUGFydGl0 aW9uZWQgVGFibGVzCkBAIC0zNDQsNiArNDA5LDExIEBAIElOU0VSVCBJTlRPIHBhcnRfZG9jdW1l bnQgVkFMVUVTCiAgICAgKCA5LCAxMSwgMSwgJ3JlZ3Jlc3NfcmxzX2RhdmUnLCAnYXdlc29tZSBz Y2llbmNlIGZpY3Rpb24nKSwKICAgICAoMTAsIDk5LCAyLCAncmVncmVzc19ybHNfZGF2ZScsICdh d2Vzb21lIHRlY2hub2xvZ3kgYm9vaycpOwogCitDUkVBVEUgUFJPUEVSVFkgR1JBUEggcHRwZwor ICAgIFZFUlRFWCBUQUJMRVMgKHBhcnRfZG9jdW1lbnQgS0VZIChkaWQpLCBwYXJ0X2RvY3VtZW50 X3NhdGlyZSBLRVkgKGRpZCkpOworCitHUkFOVCBBTEwgT04gcHRwZyBUTyBwdWJsaWM7CisKIEFM VEVSIFRBQkxFIHBhcnRfZG9jdW1lbnQgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIAogLS0g Q3JlYXRlIHBvbGljeSBvbiBwYXJlbnQKQEAgLTM2MywxNiArNDMzLDIyIEBAIFNFVCBTRVNTSU9O IEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwogU0VUIHJvd19zZWN1cml0eSBUTyBPTjsK IFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZHRpdGxlKSBPUkRFUiBC WSBkaWQ7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudCBX SEVSRSBmX2xlYWsoZHRpdGxlKTsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHB0cGcgTUFU Q0ggKGQgOiBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkLmR0aXRsZSkpIENPTFVNTlMgKGQu ZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1dGhvciwgZC5kdGl0bGUpKSBPUkRFUiBCWSBkaWQ7 CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHB0cGcgTUFU Q0ggKGQgOiBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkLmR0aXRsZSkpIENPTFVNTlMgKGQu ZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1dGhvciwgZC5kdGl0bGUpKSBPUkRFUiBCWSBkaWQ7 CiAKIC0tIHZpZXdwb2ludCBmcm9tIHJlZ3Jlc3NfcmxzX2Nhcm9sCiBTRVQgU0VTU0lPTiBBVVRI T1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Nhcm9sOwogU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50 IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZIGRpZDsKIEVYUExBSU4gKENPU1RTIE9GRikg U0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpOworU0VMRUNU ICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6IHBhcnRfZG9jdW1lbnQgV0hFUkUg Zl9sZWFrKGQuZHRpdGxlKSkgQ09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0 aG9yLCBkLmR0aXRsZSkpIE9SREVSIEJZIGRpZDsKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNU ICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6IHBhcnRfZG9jdW1lbnQgV0hFUkUg Zl9sZWFrKGQuZHRpdGxlKSkgQ09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0 aG9yLCBkLmR0aXRsZSkpIE9SREVSIEJZIGRpZDsKIAogLS0gdmlld3BvaW50IGZyb20gcmVncmVz c19ybHNfZGF2ZQogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19kYXZlOwog U0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZ IGRpZDsKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50IFdI RVJFIGZfbGVhayhkdGl0bGUpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRD SCAoZCA6IHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKSkgQ09MVU1OUyAoZC5k aWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOworRVhQTEFJTiAoQ09T VFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFydF9k b2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpKSBDT0xVTU5TIChkLmRpZCwgZC5jaWQsIGQu ZGxldmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSk7CiAKIC0tIHBwMSBFUlJPUgogSU5TRVJUIElO VE8gcGFydF9kb2N1bWVudCBWQUxVRVMgKDEwMCwgMTEsIDUsICdyZWdyZXNzX3Jsc19kYXZlJywg J3Rlc3RpbmcgcHAxJyk7IC0tIGZhaWwKQEAgLTM4OCw2ICs0NjQsNyBAQCBJTlNFUlQgSU5UTyBw YXJ0X2RvY3VtZW50X3NhdGlyZSBWQUxVRVMgKDEwMCwgNTUsIDEsICdyZWdyZXNzX3Jsc19kYXZl JywgJ3Rlc3RpbgogU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0 bGUpIE9SREVSIEJZIGRpZDsKIC0tIEJ1dCB3ZSBjYW4gaWYgd2UgbG9vayBkaXJlY3RseQogU0VM RUNUICogRlJPTSBwYXJ0X2RvY3VtZW50X3NhdGlyZSBXSEVSRSBmX2xlYWsoZHRpdGxlKSBPUkRF UiBCWSBkaWQ7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFy dF9kb2N1bWVudF9zYXRpcmUgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKSkgQ09MVU1OUyAoZC5kaWQs IGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOwogCiAtLSBUdXJuIG9uIFJM UyBhbmQgY3JlYXRlIHBvbGljeSBvbiBjaGlsZCB0byBzaG93IFJMUyBpcyBjaGVja2VkIGJlZm9y ZSBjb25zdHJhaW50cwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGlj ZTsKQEAgLTM5OSwxNSArNDc2LDIwIEBAIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVz c19ybHNfZGF2ZTsKIElOU0VSVCBJTlRPIHBhcnRfZG9jdW1lbnRfc2F0aXJlIFZBTFVFUyAoMTAx LCA1NSwgMSwgJ3JlZ3Jlc3NfcmxzX2RhdmUnLCAndGVzdGluZyBSTFMgd2l0aCBwYXJ0aXRpb25z Jyk7IC0tIGZhaWwKIC0tIEFuZCBub3cgd2UgY2Fubm90IHNlZSBkaXJlY3RseSBpbnRvIHRoZSBw YXJ0aXRpb24gZWl0aGVyLCBkdWUgdG8gUkxTCiBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1lbnRf c2F0aXJlIFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZIGRpZDsKK1NFTEVDVCAqIEZST00g R1JBUEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3VtZW50X3NhdGlyZSBXSEVSRSBm X2xlYWsoZC5kdGl0bGUpKSBDT0xVTU5TIChkLmRpZCwgZC5jaWQsIGQuZGxldmVsLCBkLmRhdXRo b3IsIGQuZHRpdGxlKSk7CiAtLSBUaGUgcGFyZW50IGxvb2tzIHNhbWUgYXMgYmVmb3JlCiAtLSB2 aWV3cG9pbnQgZnJvbSByZWdyZXNzX3Jsc19kYXZlCiBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1l bnQgV0hFUkUgZl9sZWFrKGR0aXRsZSkgT1JERVIgQlkgZGlkOwogRVhQTEFJTiAoQ09TVFMgT0ZG KSBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSk7CitTRUxF Q1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFydF9kb2N1bWVudCBXSEVS RSBmX2xlYWsoZC5kdGl0bGUpKSBDT0xVTU5TIChkLmRpZCwgZC5jaWQsIGQuZGxldmVsLCBkLmRh dXRob3IsIGQuZHRpdGxlKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JB UEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkLmR0 aXRsZSkpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1dGhvciwgZC5kdGl0 bGUpKTsKIAogLS0gdmlld3BvaW50IGZyb20gcmVncmVzc19ybHNfY2Fyb2wKIFNFVCBTRVNTSU9O IEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9j dW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSkgT1JERVIgQlkgZGlkOwogRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSk7CitT RUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFydF9kb2N1bWVudCBX SEVSRSBmX2xlYWsoZC5kdGl0bGUpKSBDT0xVTU5TIChkLmRpZCwgZC5jaWQsIGQuZGxldmVsLCBk LmRhdXRob3IsIGQuZHRpdGxlKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g R1JBUEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhk LmR0aXRsZSkpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1dGhvciwgZC5k dGl0bGUpKTsKIAogLS0gb25seSBvd25lciBjYW4gY2hhbmdlIHBvbGljaWVzCiBBTFRFUiBQT0xJ Q1kgcHAxIE9OIHBhcnRfZG9jdW1lbnQgVVNJTkcgKHRydWUpOyAgICAtLWZhaWwKQEAgLTQxOSwz NiArNTAxLDQ2IEBAIEFMVEVSIFBPTElDWSBwcDEgT04gcGFydF9kb2N1bWVudCBVU0lORyAoZGF1 dGhvciA9IGN1cnJlbnRfdXNlcik7CiAtLSB2aWV3cG9pbnQgZnJvbSByZWdyZXNzX3Jsc19ib2Ig YWdhaW4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwogU0VMRUNU ICogRlJPTSBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZIGRpZDsK K1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3VtZW50 IFdIRVJFIGZfbGVhayhkLmR0aXRsZSkpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWws IGQuZGF1dGhvciwgZC5kdGl0bGUpKTsKIAogLS0gdmlld3BvaW50IGZyb20gcmxzX3JlZ3Jlc19j YXJvbCBhZ2FpbgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19jYXJvbDsK IFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZHRpdGxlKSBPUkRFUiBC WSBkaWQ7Ci0KIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50 IFdIRVJFIGZfbGVhayhkdGl0bGUpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBN QVRDSCAoZCA6IHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKSkgQ09MVU1OUyAo ZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOworRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFy dF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpKSBDT0xVTU5TIChkLmRpZCwgZC5jaWQs IGQuZGxldmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSk7CiAKIC0tIGRhdGFiYXNlIHN1cGVydXNl ciBkb2VzIGJ5cGFzcyBSTFMgcG9saWN5IHdoZW4gZW5hYmxlZAogUkVTRVQgU0VTU0lPTiBBVVRI T1JJWkFUSU9OOwogU0VUIHJvd19zZWN1cml0eSBUTyBPTjsKIFNFTEVDVCAqIEZST00gcGFydF9k b2N1bWVudCBPUkRFUiBCWSBkaWQ7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1B VENIIChkIDogcGFydF9kb2N1bWVudCkgQ09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwg ZC5kYXV0aG9yLCBkLmR0aXRsZSkpOwogU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50X3NhdGly ZSBPUkRFUiBieSBkaWQ7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChk IDogcGFydF9kb2N1bWVudF9zYXRpcmUpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWws IGQuZGF1dGhvciwgZC5kdGl0bGUpKTsKIAogLS0gZGF0YWJhc2Ugbm9uLXN1cGVydXNlciB3aXRo IGJ5cGFzcyBwcml2aWxlZ2UgY2FuIGJ5cGFzcyBSTFMgcG9saWN5IHdoZW4gZGlzYWJsZWQKIFNF VCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfZXhlbXB0X3VzZXI7CiBTRVQgcm93 X3NlY3VyaXR5IFRPIE9GRjsKIFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudCBPUkRFUiBCWSBk aWQ7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFydF9kb2N1 bWVudCkgQ09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRs ZSkpOwogU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50X3NhdGlyZSBPUkRFUiBieSBkaWQ7CitT RUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFydF9kb2N1bWVudF9z YXRpcmUpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1dGhvciwgZC5kdGl0 bGUpKTsKIAogLS0gUkxTIHBvbGljeSBkb2VzIG5vdCBhcHBseSB0byB0YWJsZSBvd25lciB3aGVu IFJMUyBlbmFibGVkLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGlj ZTsKIFNFVCByb3dfc2VjdXJpdHkgVE8gT047CiBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1lbnQg T1JERVIgYnkgZGlkOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6 IHBhcnRfZG9jdW1lbnQpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1dGhv ciwgZC5kdGl0bGUpKTsKIFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudF9zYXRpcmUgT1JERVIg YnkgZGlkOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6IHBhcnRf ZG9jdW1lbnRfc2F0aXJlKSBDT0xVTU5TIChkLmRpZCwgZC5jaWQsIGQuZGxldmVsLCBkLmRhdXRo b3IsIGQuZHRpdGxlKSk7CiAKIC0tIFdoZW4gUkxTIGRpc2FibGVkLCBvdGhlciB1c2VycyBnZXQg RVJST1IuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2RhdmU7CiBTRVQg cm93X3NlY3VyaXR5IFRPIE9GRjsKIFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudCBPUkRFUiBi eSBkaWQ7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFydF9k b2N1bWVudCkgQ09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0 aXRsZSkpOwogU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50X3NhdGlyZSBPUkRFUiBieSBkaWQ7 CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFydF9kb2N1bWVu dF9zYXRpcmUpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1dGhvciwgZC5k dGl0bGUpKTsKIAogLS0gQ2hlY2sgYmVoYXZpb3Igd2l0aCBhIHBvbGljeSB0aGF0IHVzZXMgYSBT dWJQbGFuIG5vdCBhbiBJbml0UGxhbi4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVz c19ybHNfYWxpY2U7CkBAIC00ODQsOSArNTc2LDExIEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VM RUNUICogRlJPTSBkZXBlbmRlbnQ7IC0tIEFmdGVyIGRyb3AsIHNob3VsZCBiZSB1bnF1YWxpZmll CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwogQ1JFQVRFIFRB QkxFIHJlYzEgKHggaW50ZWdlciwgeSBpbnRlZ2VyKTsKIENSRUFURSBQT0xJQ1kgcjEgT04gcmVj MSBVU0lORyAoeCA9IChTRUxFQ1Qgci54IEZST00gcmVjMSByIFdIRVJFIHkgPSByLnkpKTsKK0NS RUFURSBQUk9QRVJUWSBHUkFQSCBydHBnIFZFUlRFWCBUQUJMRVMgKHJlYzEgS0VZICh4KSk7CiBB TFRFUiBUQUJMRSByZWMxIEVOQUJMRSBST1cgTEVWRUwgU0VDVVJJVFk7CiBTRVQgU0VTU0lPTiBB VVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIFNFTEVDVCAqIEZST00gcmVjMTsgLS0gZmFp bCwgZGlyZWN0IHJlY3Vyc2lvbgorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocnRwZyBNQVRD SCAocjogcmVjMSkgQ09MVU1OUyAoci54LCByLnkpKTsgLS0gZmFpbCwgZGlyZWN0IHJlY3Vyc2lv bgogCiAtLQogLS0gTXV0dWFsIHJlY3Vyc2lvbgpAQCAtNDk5LDYgKzU5Myw3IEBAIEFMVEVSIFRB QkxFIHJlYzIgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIAogU0VUIFNFU1NJT04gQVVUSE9S SVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CiBTRUxFQ1QgKiBGUk9NIHJlYzE7ICAgIC0tIGZhaWws IG11dHVhbCByZWN1cnNpb24KK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHJ0cGcgTUFUQ0gg KHI6IHJlYzEpIENPTFVNTlMgKHIueCwgci55KSk7IC0tIGZhaWwsIG11dHVhbCByZWN1cnNpb24K IAogLS0KIC0tIE11dHVhbCByZWN1cnNpb24gdmlhIHZpZXdzCkBAIC01MTIsNiArNjA3LDcgQEAg QUxURVIgUE9MSUNZIHIyIE9OIHJlYzIgVVNJTkcgKGEgPSAoU0VMRUNUIHggRlJPTSByZWMxdiBX SEVSRSB5ID0gYikpOwogCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Jv YjsKIFNFTEVDVCAqIEZST00gcmVjMTsgICAgLS0gZmFpbCwgbXV0dWFsIHJlY3Vyc2lvbiB2aWEg dmlld3MKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHJ0cGcgTUFUQ0ggKHI6IHJlYzEpIENP TFVNTlMgKHIueCwgci55KSk7IC0tIGZhaWwsIG11dHVhbCByZWN1cnNpb24gdmlhIHZpZXdzCiAK IC0tCiAtLSBNdXR1YWwgcmVjdXJzaW9uIHZpYSAucy5iIHZpZXdzCkBAIC01MjgsNiArNjI0LDI0 IEBAIENSRUFURSBQT0xJQ1kgcjIgT04gcmVjMiBVU0lORyAoYSA9IChTRUxFQ1QgeCBGUk9NIHJl YzF2IFdIRVJFIHkgPSBiKSk7CiAKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19y bHNfYm9iOwogU0VMRUNUICogRlJPTSByZWMxOyAgICAtLSBmYWlsLCBtdXR1YWwgcmVjdXJzaW9u IHZpYSBzLmIuIHZpZXdzCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChydHBnIE1BVENIIChy OiByZWMxKSBDT0xVTU5TIChyLngsIHIueSkpOyAtLSBmYWlsLCBtdXR1YWwgcmVjdXJzaW9uIHZp YSBzLmIuIHZpZXdzCisKKy0tCistLSBEaXJlY3QgYW5kIG11dHVhbCByZWN1cnNpb24gdmlhIEdS QVBIX1RBQkxFCistLQorU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGlj ZTsKK0FMVEVSIFBPTElDWSByMSBPTiByZWMxIFVTSU5HICh4ID0gKFNFTEVDVCB4IEZST00gR1JB UEhfVEFCTEUgKHJ0cGcgTUFUQ0ggKHI6IHJlYzEpIENPTFVNTlMgKHIueCwgci55KSkgV0hFUkUg eCA9IHkpKTsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOworU0VM RUNUICogRlJPTSByZWMxOyAgICAtLSBmYWlsLCBkaXJlY3QgcmVjdXJzaW9uIHZpYSBHUkFQSF9U QUJMRQorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocnRwZyBNQVRDSCAocjogcmVjMSkgQ09M VU1OUyAoci54LCByLnkpKTsgLS0gZmFpbCwgZGlyZWN0IHJlY3Vyc2lvbiB2aWEgR1JBUEhfVEFC TEUKKworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKK0FMVEVS IFBST1BFUlRZIEdSQVBIIHJ0cGcgQUREIFZFUlRFWCBUQUJMRVMgKHJlYzIgS0VZIChhKSk7CitB TFRFUiBQT0xJQ1kgcjEgT04gcmVjMSBVU0lORyAoeCA9IChTRUxFQ1QgYSBGUk9NIEdSQVBIX1RB QkxFIChydHBnIE1BVENIIChyOiByZWMyKSBDT0xVTU5TIChyLmEsIHIuYikpIFdIRVJFIGIgPSB5 KSk7CitBTFRFUiBQT0xJQ1kgcjIgT04gcmVjMiBVU0lORyAoYSA9IChTRUxFQ1QgeCBGUk9NIEdS QVBIX1RBQkxFIChydHBnIE1BVENIIChyOiByZWMxKSBDT0xVTU5TIChyLngsIHIueSkpV0hFUkUg eSA9IGIpKTsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOworU0VM RUNUICogRlJPTSByZWMxOyAgICAtLSBmYWlsLCBtdXR1YWwgcmVjdXJzaW9uIHZpYSBHUkFQSF9U QUJMRQorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocnRwZyBNQVRDSCAocjogcmVjMSkgQ09M VU1OUyAoci54LCByLnkpKTsgLS0gZmFpbCwgbXV0dWFsIHJlY3Vyc2lvbiB2aWEgR1JBUEhfVEFC TEUKIAogLS0KIC0tIHJlY3Vyc2l2ZSBSTFMgYW5kIFZJRVdzIGluIHBvbGljeQpAQCAtNTM5LDcg KzY1MywxMCBAQCBJTlNFUlQgSU5UTyBzMSAoU0VMRUNUIHgsIHB1YmxpYy5maXBzaGFzaCh4Ojp0 ZXh0KSBGUk9NIGdlbmVyYXRlX3NlcmllcygtMTAsMTApCiBDUkVBVEUgVEFCTEUgczIgKHggaW50 LCB5IHRleHQpOwogSU5TRVJUIElOVE8gczIgKFNFTEVDVCB4LCBwdWJsaWMuZmlwc2hhc2goeDo6 dGV4dCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoLTYsNikgeCk7CiAKK0NSRUFURSBQUk9QRVJUWSBH UkFQSCBydnRwZyBWRVJURVggVEFCTEVTIChzMSBLRVkgKGEpKTsKKwogR1JBTlQgU0VMRUNUIE9O IHMxLCBzMiBUTyByZWdyZXNzX3Jsc19ib2I7CitHUkFOVCBTRUxFQ1QgT04gcnZ0cGcgVE8gcmVn cmVzc19ybHNfYm9iOwogCiBDUkVBVEUgUE9MSUNZIHAxIE9OIHMxIFVTSU5HIChhIGluIChzZWxl Y3QgeCBmcm9tIHMyIHdoZXJlIHkgbGlrZSAnJTJmJScpKTsKIENSRUFURSBQT0xJQ1kgcDIgT04g czIgVVNJTkcgKHggaW4gKHNlbGVjdCBhIGZyb20gczEgd2hlcmUgYiBsaWtlICclMjIlJykpOwpA QCAtNTUxLDYgKzY2OCw3IEBAIEFMVEVSIFRBQkxFIHMyIEVOQUJMRSBST1cgTEVWRUwgU0VDVVJJ VFk7CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIENSRUFURSBW SUVXIHYyIEFTIFNFTEVDVCAqIEZST00gczIgV0hFUkUgeSBsaWtlICclYWYlJzsKIFNFTEVDVCAq IEZST00gczEgV0hFUkUgZl9sZWFrKGIpOyAtLSBmYWlsIChpbmZpbml0ZSByZWN1cnNpb24pCitT RUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChydnRwZyBNQVRDSCAocyA6IHMxKSBXSEVSRSBmX2xl YWsocy5iKSBDT0xVTU5TIChzLmEsIHMuYikpOyAtLSBmYWlsIChpbmZpbml0ZSByZWN1cnNpb24p CiAKIElOU0VSVCBJTlRPIHMxIFZBTFVFUyAoMSwgJ2ZvbycpOyAtLSBmYWlsIChpbmZpbml0ZSBy ZWN1cnNpb24pCiAKQEAgLTU2MSwxMiArNjc5LDE2IEBAIEFMVEVSIFBPTElDWSBwMiBPTiBzMiBV U0lORyAoeCAlIDIgPSAwKTsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNf Ym9iOwogU0VMRUNUICogRlJPTSBzMSBXSEVSRSBmX2xlYWsoYik7CS0tIE9LCiBFWFBMQUlOIChD T1NUUyBPRkYpIFNFTEVDVCAqIEZST00gb25seSBzMSBXSEVSRSBmX2xlYWsoYik7CitTRUxFQ1Qg KiBGUk9NIEdSQVBIX1RBQkxFIChydnRwZyBNQVRDSCAocyA6IHMxKSBXSEVSRSBmX2xlYWsocy5i KSBDT0xVTU5TIChzLmEsIHMuYikpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9N IEdSQVBIX1RBQkxFIChydnRwZyBNQVRDSCAocyA6IHMxKSBXSEVSRSBmX2xlYWsocy5iKSBDT0xV TU5TIChzLmEsIHMuYikpOwogCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nfcmxz X2FsaWNlOwogQUxURVIgUE9MSUNZIHAxIE9OIHMxIFVTSU5HIChhIGluIChzZWxlY3QgeCBmcm9t IHYyKSk7IC0tIHVzaW5nIFZJRVcgaW4gUkxTIHBvbGljeQogU0VUIFNFU1NJT04gQVVUSE9SSVpB VElPTiByZWdyZXNzX3Jsc19ib2I7CiBTRUxFQ1QgKiBGUk9NIHMxIFdIRVJFIGZfbGVhayhiKTsJ LS0gT0sKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBzMSBXSEVSRSBmX2xlYWso Yik7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChydnRwZyBNQVRDSCAocyA6IHMxKSBXSEVS RSBmX2xlYWsocy5iKSBDT0xVTU5TIChzLmEsIHMuYikpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBT RUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChydnRwZyBNQVRDSCAocyA6IHMxKSBXSEVSRSBmX2xl YWsocy5iKSBDT0xVTU5TIChzLmEsIHMuYikpOwogCiBTRUxFQ1QgKFNFTEVDVCB4IEZST00gczEg TElNSVQgMSkgeHgsICogRlJPTSBzMiBXSEVSRSB5IGxpa2UgJyUyOCUnOwogRVhQTEFJTiAoQ09T VFMgT0ZGKSBTRUxFQ1QgKFNFTEVDVCB4IEZST00gczEgTElNSVQgMSkgeHgsICogRlJPTSBzMiBX SEVSRSB5IGxpa2UgJyUyOCUnOwpAQCAtNTc1LDExICs2OTcsMTUgQEAgU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIEFMVEVSIFBPTElDWSBwMiBPTiBzMiBVU0lO RyAoeCBpbiAoc2VsZWN0IGEgZnJvbSBzMSB3aGVyZSBiIGxpa2UgJyVkMiUnKSk7CiBTRVQgU0VT U0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIFNFTEVDVCAqIEZST00gczEgV0hF UkUgZl9sZWFrKGIpOwktLSBmYWlsIChpbmZpbml0ZSByZWN1cnNpb24gdmlhIHZpZXcpCitTRUxF Q1QgKiBGUk9NIEdSQVBIX1RBQkxFIChydnRwZyBNQVRDSCAocyA6IHMxKSBXSEVSRSBmX2xlYWso cy5iKSBDT0xVTU5TIChzLmEsIHMuYikpOwktLSBmYWlsIChpbmZpbml0ZSByZWN1cnNpb24gdmlh IHZpZXcpCiAKIC0tIHByZXBhcmVkIHN0YXRlbWVudCB3aXRoIHJlZ3Jlc3NfcmxzX2FsaWNlIHBy aXZpbGVnZQogUFJFUEFSRSBwMShpbnQpIEFTIFNFTEVDVCAqIEZST00gdDEgV0hFUkUgYSA8PSAk MTsKIEVYRUNVVEUgcDEoMik7CiBFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcDEoMik7CitQ UkVQQVJFIHBwZzEoaW50KSBBUyBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENI ICh0IDogdDEpIFdIRVJFIHQuYSA8PSAkMSBDT0xVTU5TICh0LmlkLCB0LmEsIHQuYikpOworRVhF Q1VURSBwcGcxKDIpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBwZzEoMik7CiAKIC0t IHN1cGVydXNlciBpcyBhbGxvd2VkIHRvIGJ5cGFzcyBSTFMgY2hlY2tzCiBSRVNFVCBTRVNTSU9O IEFVVEhPUklaQVRJT047CkBAIC01OTAsMTYgKzcxNiwyMyBAQCBFWFBMQUlOIChDT1NUUyBPRkYp IFNFTEVDVCAqIEZST00gdDEgV0hFUkUgZl9sZWFrKGIpOwogLS0gcGxhbiBjYWNoZSBzaG91bGQg YmUgaW52YWxpZGF0ZWQKIEVYRUNVVEUgcDEoMik7CiBFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNV VEUgcDEoMik7CitFWEVDVVRFIHBwZzEoMik7CitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUg cHBnMSgyKTsKIAogUFJFUEFSRSBwMihpbnQpIEFTIFNFTEVDVCAqIEZST00gdDEgV0hFUkUgYSA9 ICQxOwogRVhFQ1VURSBwMigyKTsKIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwMigyKTsK K1BSRVBBUkUgcHBnMihpbnQpIEFTIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFU Q0ggKHQgOiB0MSkgV0hFUkUgdC5hID0gJDEgQ09MVU1OUyAodC5pZCwgdC5hLCB0LmIpKTsKK0VY RUNVVEUgcHBnMigyKTsKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwcGcyKDIpOwogCiAt LSBhbHNvLCBjYXNlIHdoZW4gcHJpdmlsZWdlIHN3aXRjaCBmcm9tIHN1cGVydXNlcgogU0VUIFNF U1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CiBTRVQgcm93X3NlY3VyaXR5IFRP IE9OOwogRVhFQ1VURSBwMigyKTsKIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwMigyKTsK K0VYRUNVVEUgcHBnMigyKTsKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwcGcyKDIpOwog CiAtLQogLS0gVVBEQVRFIC8gREVMRVRFIGFuZCBSb3ctbGV2ZWwgc2VjdXJpdHkKQEAgLTY3OCwx MSArODExLDE1IEBAIEdSQU5UIEFMTCBPTiBiMSBUTyByZWdyZXNzX3Jsc19ib2I7CiBTRVQgU0VT U0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIENSRUFURSBWSUVXIGJ2MSBXSVRI IChzZWN1cml0eV9iYXJyaWVyKSBBUyBTRUxFQ1QgKiBGUk9NIGIxIFdIRVJFIGEgPiAwIFdJVEgg Q0hFQ0sgT1BUSU9OOwogR1JBTlQgQUxMIE9OIGJ2MSBUTyByZWdyZXNzX3Jsc19jYXJvbDsKK0NS RUFURSBQUk9QRVJUWSBHUkFQSCBzYnZwZyBWRVJURVggVEFCTEVTIChidjEgS0VZIChhKSk7CitH UkFOVCBBTEwgT04gc2J2cGcgVE8gcmVncmVzc19ybHNfY2Fyb2w7CiAKIFNFVCBTRVNTSU9OIEFV VEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CiAKIEVYUExBSU4gKENPU1RTIE9GRikgU0VM RUNUICogRlJPTSBidjEgV0hFUkUgZl9sZWFrKGIpOwogU0VMRUNUICogRlJPTSBidjEgV0hFUkUg Zl9sZWFrKGIpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxF IChzYnZwZyBNQVRDSCAoYiA6IGJ2MSkgV0hFUkUgZl9sZWFrKGIuYikgQ09MVU1OUyAoYi5hLCBi LmIpKTsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHNidnBnIE1BVENIIChiIDogYnYxKSBX SEVSRSBmX2xlYWsoYi5iKSBDT0xVTU5TIChiLmEsIGIuYikpOwogCiBJTlNFUlQgSU5UTyBidjEg VkFMVUVTICgtMSwgJ3h4eCcpOyAtLSBzaG91bGQgZmFpbCB2aWV3IFdDTwogSU5TRVJUIElOVE8g YnYxIFZBTFVFUyAoMTEsICd4eHgnKTsgLS0gc2hvdWxkIGZhaWwgUkxTIGNoZWNrCkBAIC0xMDI3 LDggKzExNjQsOSBAQCBTRUxFQ1QgKiBGUk9NIGRvY3VtZW50OwogU0VUIFNFU1NJT04gQVVUSE9S SVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIENSRUFURSBUQUJMRSB6MSAoYSBpbnQsIGIgdGV4 dCk7CiBDUkVBVEUgVEFCTEUgejIgKGEgaW50LCBiIHRleHQpOworQ1JFQVRFIFBST1BFUlRZIEdS QVBIIGd0cGcgVkVSVEVYIFRBQkxFUyAoejEgS0VZIChhKSwgejIgS0VZIChhKSk7CiAKLUdSQU5U IFNFTEVDVCBPTiB6MSx6MiBUTyByZWdyZXNzX3Jsc19ncm91cDEsIHJlZ3Jlc3NfcmxzX2dyb3Vw MiwKK0dSQU5UIFNFTEVDVCBPTiB6MSx6MiwgZ3RwZyBUTyByZWdyZXNzX3Jsc19ncm91cDEsIHJl Z3Jlc3NfcmxzX2dyb3VwMiwKICAgICByZWdyZXNzX3Jsc19ib2IsIHJlZ3Jlc3NfcmxzX2Nhcm9s OwogCiBJTlNFUlQgSU5UTyB6MSBWQUxVRVMKQEAgLTEwNDUsMzkgKzExODMsNjIgQEAgQUxURVIg VEFCTEUgejEgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIFNFVCBTRVNTSU9OIEFVVEhPUkla QVRJT04gcmVncmVzc19ybHNfYm9iOwogU0VMRUNUICogRlJPTSB6MSBXSEVSRSBmX2xlYWsoYik7 CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gejEgV0hFUkUgZl9sZWFrKGIpOwor U0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZ3RwZyBNQVRDSCAoeiA6IHoxKSBXSEVSRSBmX2xl YWsoei5iKSBDT0xVTU5TICh6LmEsIHouYikpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1Qg KiBGUk9NIEdSQVBIX1RBQkxFIChndHBnIE1BVENIICh6IDogejEpIFdIRVJFIGZfbGVhayh6LmIp IENPTFVNTlMgKHouYSwgei5iKSk7CiAKIFBSRVBBUkUgcGxhbmNhY2hlX3Rlc3QgQVMgU0VMRUNU ICogRlJPTSB6MSBXSEVSRSBmX2xlYWsoYik7CiBFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUg cGxhbmNhY2hlX3Rlc3Q7CitQUkVQQVJFIHBsYW5jYWNoZV9wZ190ZXN0IEFTIFNFTEVDVCAqIEZS T00gR1JBUEhfVEFCTEUgKGd0cGcgTUFUQ0ggKHogOiB6MSkgV0hFUkUgZl9sZWFrKHouYikgQ09M VU1OUyAoei5hLCB6LmIpKTsKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVf cGdfdGVzdDsKIAogUFJFUEFSRSBwbGFuY2FjaGVfdGVzdDIgQVMgV0lUSCBxIEFTIE1BVEVSSUFM SVpFRCAoU0VMRUNUICogRlJPTSB6MSBXSEVSRSBmX2xlYWsoYikpIFNFTEVDVCAqIEZST00gcSx6 MjsKIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfdGVzdDI7CitQUkVQQVJF IHBsYW5jYWNoZV9wZ190ZXN0MiBBUyBXSVRIIHEgQVMgTUFURVJJQUxJWkVEIChTRUxFQ1QgKiBG Uk9NIEdSQVBIX1RBQkxFIChndHBnIE1BVENIICh6IDogejEpIFdIRVJFIGZfbGVhayh6LmIpIENP TFVNTlMoei5hLCB6LmIpKSkgU0VMRUNUICogRlJPTSBxLCBHUkFQSF9UQUJMRSAoZ3RwZyBNQVRD SCAoeiA6IHoyKSBDT0xVTU5TICh6LmEsIHouYikpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVD VVRFIHBsYW5jYWNoZV9wZ190ZXN0MjsKIAogUFJFUEFSRSBwbGFuY2FjaGVfdGVzdDMgQVMgV0lU SCBxIEFTIE1BVEVSSUFMSVpFRCAoU0VMRUNUICogRlJPTSB6MikgU0VMRUNUICogRlJPTSBxLHox IFdIRVJFIGZfbGVhayh6MS5iKTsKIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2Fj aGVfdGVzdDM7CitQUkVQQVJFIHBsYW5jYWNoZV9wZ190ZXN0MyBBUyBXSVRIIHEgQVMgTUFURVJJ QUxJWkVEIChTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChndHBnIE1BVENIICh6IDogejIpIENP TFVNTlMoei5hLCB6LmIpKSkgU0VMRUNUICogRlJPTSBxLCBHUkFQSF9UQUJMRSAoZ3RwZyBNQVRD SCAoeiA6IHoxKSBXSEVSRSBmX2xlYWsoei5iKSBDT0xVTU5TICh6LmEsIHouYikpOworRVhQTEFJ TiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0MzsKIAogU0VUIFJPTEUgcmVn cmVzc19ybHNfZ3JvdXAxOwogU0VMRUNUICogRlJPTSB6MSBXSEVSRSBmX2xlYWsoYik7CiBFWFBM QUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gejEgV0hFUkUgZl9sZWFrKGIpOworU0VMRUNU ICogRlJPTSBHUkFQSF9UQUJMRSAoZ3RwZyBNQVRDSCAoeiA6IHoxKSBXSEVSRSBmX2xlYWsoei5i KSBDT0xVTU5TICh6LmEsIHouYikpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9N IEdSQVBIX1RBQkxFIChndHBnIE1BVENIICh6IDogejEpIFdIRVJFIGZfbGVhayh6LmIpIENPTFVN TlMgKHouYSwgei5iKSk7CiAKIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVf dGVzdDsKIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfdGVzdDI7CiBFWFBM QUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcGxhbmNhY2hlX3Rlc3QzOworRVhQTEFJTiAoQ09TVFMg T0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0OworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVD VVRFIHBsYW5jYWNoZV9wZ190ZXN0MjsKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFu Y2FjaGVfcGdfdGVzdDM7CiAKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNf Y2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIHoxIFdIRVJFIGZfbGVhayhiKTsKIEVYUExBSU4gKENPU1RT IE9GRikgU0VMRUNUICogRlJPTSB6MSBXSEVSRSBmX2xlYWsoYik7CitTRUxFQ1QgKiBGUk9NIEdS QVBIX1RBQkxFIChndHBnIE1BVENIICh6IDogejEpIFdIRVJFIGZfbGVhayh6LmIpIENPTFVNTlMg KHouYSwgei5iKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFC TEUgKGd0cGcgTUFUQ0ggKHogOiB6MSkgV0hFUkUgZl9sZWFrKHouYikgQ09MVU1OUyAoei5hLCB6 LmIpKTsKIAogRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV90ZXN0OwogRVhQ TEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV90ZXN0MjsKIEVYUExBSU4gKENPU1RT IE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfdGVzdDM7CitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNV VEUgcGxhbmNhY2hlX3BnX3Rlc3Q7CitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcGxhbmNh Y2hlX3BnX3Rlc3QyOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190 ZXN0MzsKIAogU0VUIFJPTEUgcmVncmVzc19ybHNfZ3JvdXAyOwogU0VMRUNUICogRlJPTSB6MSBX SEVSRSBmX2xlYWsoYik7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gejEgV0hF UkUgZl9sZWFrKGIpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZ3RwZyBNQVRDSCAoeiA6 IHoxKSBXSEVSRSBmX2xlYWsoei5iKSBDT0xVTU5TICh6LmEsIHouYikpOworRVhQTEFJTiAoQ09T VFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChndHBnIE1BVENIICh6IDogejEpIFdI RVJFIGZfbGVhayh6LmIpIENPTFVNTlMgKHouYSwgei5iKSk7CiAKIEVYUExBSU4gKENPU1RTIE9G RikgRVhFQ1VURSBwbGFuY2FjaGVfdGVzdDsKIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBw bGFuY2FjaGVfdGVzdDI7CiBFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcGxhbmNhY2hlX3Rl c3QzOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0OworRVhQ TEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0MjsKK0VYUExBSU4gKENP U1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfcGdfdGVzdDM7CiAKIC0tCiAtLSBWaWV3cyBzaG91 bGQgZm9sbG93IHBvbGljeSBmb3IgdmlldyBvd25lci4KQEAgLTEwODUsMzUgKzEyNDYsNDggQEAg RVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV90ZXN0MzsKIC0tIFZpZXcgYW5k IFRhYmxlIG93bmVyIGFyZSB0aGUgc2FtZS4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVn cmVzc19ybHNfYWxpY2U7CiBDUkVBVEUgVklFVyBybHNfdmlldyBBUyBTRUxFQ1QgKiBGUk9NIHox IFdIRVJFIGZfbGVhayhiKTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCB2dHBnIFZFUlRFWCBUQUJM RVMgKHJsc192aWV3IEtFWSAoYSkpOwogR1JBTlQgU0VMRUNUIE9OIHJsc192aWV3IFRPIHJlZ3Jl c3NfcmxzX2JvYjsKK0dSQU5UIFNFTEVDVCBPTiB2dHBnIFRPIHJlZ3Jlc3NfcmxzX2JvYjsKIAog LS0gUXVlcnkgYXMgcm9sZSB0aGF0IGlzIG5vdCBvd25lciBvZiB2aWV3IG9yIHRhYmxlLiAgU2hv dWxkIHJldHVybiBhbGwgcmVjb3Jkcy4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVz c19ybHNfYm9iOwogU0VMRUNUICogRlJPTSBybHNfdmlldzsKIEVYUExBSU4gKENPU1RTIE9GRikg U0VMRUNUICogRlJPTSBybHNfdmlldzsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcg TUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykg Q09MVU1OUyAoci5hLCByLmIpKTsKIAogLS0gUXVlcnkgYXMgdmlldy90YWJsZSBvd25lci4gIFNo b3VsZCByZXR1cm4gYWxsIHJlY29yZHMuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jl c3NfcmxzX2FsaWNlOwogU0VMRUNUICogRlJPTSBybHNfdmlldzsKIEVYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUICogRlJPTSBybHNfdmlldzsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0 cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworRVhQTEFJTiAoQ09T VFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmll dykgQ09MVU1OUyAoci5hLCByLmIpKTsKK0RST1AgUFJPUEVSVFkgR1JBUEggdnRwZzsKIERST1Ag VklFVyBybHNfdmlldzsKIAogLS0gVmlldyBhbmQgVGFibGUgb3duZXJzIGFyZSBkaWZmZXJlbnQu CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIENSRUFURSBWSUVX IHJsc192aWV3IEFTIFNFTEVDVCAqIEZST00gejEgV0hFUkUgZl9sZWFrKGIpOwogR1JBTlQgU0VM RUNUIE9OIHJsc192aWV3IFRPIHJlZ3Jlc3NfcmxzX2FsaWNlOworQ1JFQVRFIFBST1BFUlRZIEdS QVBIIHZ0cGcgVkVSVEVYIFRBQkxFUyAocmxzX3ZpZXcgS0VZIChhKSk7CitHUkFOVCBTRUxFQ1Qg T04gdnRwZyBUTyByZWdyZXNzX3Jsc19hbGljZTsKIAogLS0gUXVlcnkgYXMgcm9sZSB0aGF0IGlz IG5vdCBvd25lciBvZiB2aWV3IGJ1dCBpcyBvd25lciBvZiB0YWJsZS4KIC0tIFNob3VsZCByZXR1 cm4gcmVjb3JkcyBiYXNlZCBvbiB2aWV3IG93bmVyIHBvbGljaWVzLgogU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIFNFTEVDVCAqIEZST00gcmxzX3ZpZXc7CiBF WFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gcmxzX3ZpZXc7CitTRUxFQ1QgKiBGUk9N IEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIp KTsKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBN QVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CiAKIC0tIFF1ZXJ5IGFzIHJv bGUgdGhhdCBpcyBub3Qgb3duZXIgb2YgdGFibGUgYnV0IGlzIG93bmVyIG9mIHZpZXcuCiAtLSBT aG91bGQgcmV0dXJuIHJlY29yZHMgYmFzZWQgb24gdmlldyBvd25lciBwb2xpY2llcy4KIFNFVCBT RVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwogU0VMRUNUICogRlJPTSBybHNf dmlldzsKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsKK1NFTEVD VCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChy LmEsIHIuYikpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxF ICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsKIAogLS0gUXVl cnkgYXMgcm9sZSB0aGF0IGlzIG5vdCB0aGUgb3duZXIgb2YgdGhlIHRhYmxlIG9yIHZpZXcgd2l0 aG91dCBwZXJtaXNzaW9ucy4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNf Y2Fyb2w7CkBAIC0xMTIzLDEwICsxMjk3LDEzIEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNU ICogRlJPTSBybHNfdmlldzsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCiAtLSBRdWVyeSBh cyByb2xlIHRoYXQgaXMgbm90IHRoZSBvd25lciBvZiB0aGUgdGFibGUgb3IgdmlldyB3aXRoIHBl cm1pc3Npb25zLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CiBH UkFOVCBTRUxFQ1QgT04gcmxzX3ZpZXcgVE8gcmVncmVzc19ybHNfY2Fyb2w7CitHUkFOVCBTRUxF Q1QgT04gdnRwZyBUTyByZWdyZXNzX3Jsc19jYXJvbDsKIAogU0VUIFNFU1NJT04gQVVUSE9SSVpB VElPTiByZWdyZXNzX3Jsc19jYXJvbDsKIFNFTEVDVCAqIEZST00gcmxzX3ZpZXc7CiBFWFBMQUlO IChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gcmxzX3ZpZXc7CitTRUxFQ1QgKiBGUk9NIEdSQVBI X1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsKK0VY UExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAo cjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CiAKIC0tIFBvbGljeSByZXF1aXJpbmcg YWNjZXNzIHRvIGFub3RoZXIgdGFibGUuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jl c3NfcmxzX2FsaWNlOwpAQCAtMTEzOCwxMSArMTMxNSwxNSBAQCBDUkVBVEUgUE9MSUNZIHAzIE9O IHoxIEFTIFJFU1RSSUNUSVZFIFVTSU5HIChhIE5PVCBJTiAoU0VMRUNUIGEgRlJPTSB6MV9ibGFj a2xpcwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CiBTRUxFQ1Qg KiBGUk9NIHJsc192aWV3OyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KIEVYUExBSU4gKENP U1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5p ZWQuCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykg Q09MVU1OUyAoci5hLCByLmIpKTsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCitFWFBMQUlO IChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJs c192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4K IAogLS0gUXVlcnkgYXMgcm9sZSB0aGF0IGlzIG5vdCB0aGUgb3duZXIgb2YgdGhlIHRhYmxlIG9y IHZpZXcgd2l0aG91dCBwZXJtaXNzaW9ucy4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVn cmVzc19ybHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OyAtLWZhaWwgLSBwZXJtaXNz aW9uIGRlbmllZC4KIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsg LS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2 dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsgLS1mYWlsIC0gcGVy bWlzc2lvbiBkZW5pZWQuCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhf VEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOyAtLWZh aWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KIAogLS0gUXVlcnkgYXMgcm9sZSB0aGF0IGlzIG5vdCBv d25lciBvZiB0YWJsZSBidXQgaXMgb3duZXIgb2YgdmlldyB3aXRoIHBlcm1pc3Npb25zLgogU0VU IFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKQEAgLTExNTEsMTcgKzEz MzIsMjIgQEAgR1JBTlQgU0VMRUNUIE9OIHoxX2JsYWNrbGlzdCBUTyByZWdyZXNzX3Jsc19ib2I7 CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIFNFTEVDVCAqIEZS T00gcmxzX3ZpZXc7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gcmxzX3ZpZXc7 CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09M VU1OUyAoci5hLCByLmIpKTsKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQ SF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CiAK IC0tIFF1ZXJ5IGFzIHJvbGUgdGhhdCBpcyBub3QgdGhlIG93bmVyIG9mIHRoZSB0YWJsZSBvciB2 aWV3IHdpdGggcGVybWlzc2lvbnMuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nf cmxzX2Nhcm9sOwogU0VMRUNUICogRlJPTSBybHNfdmlldzsKIEVYUExBSU4gKENPU1RTIE9GRikg U0VMRUNUICogRlJPTSBybHNfdmlldzsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcg TUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykg Q09MVU1OUyAoci5hLCByLmIpKTsKIAogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNz X3Jsc19hbGljZTsKIFJFVk9LRSBTRUxFQ1QgT04gejFfYmxhY2tsaXN0IEZST00gcmVncmVzc19y bHNfYm9iOwogRFJPUCBQT0xJQ1kgcDMgT04gejE7CiAKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJ T04gcmVncmVzc19ybHNfYm9iOworRFJPUCBQUk9QRVJUWSBHUkFQSCB2dHBnOwogRFJPUCBWSUVX IHJsc192aWV3OwogCiAtLQpAQCAtMTE3MSw0NyArMTM1Nyw2NiBAQCBEUk9QIFZJRVcgcmxzX3Zp ZXc7CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwogQ1JFQVRF IFZJRVcgcmxzX3ZpZXcgV0lUSCAoc2VjdXJpdHlfaW52b2tlcikgQVMKICAgICBTRUxFQ1QgKiBG Uk9NIHoxIFdIRVJFIGZfbGVhayhiKTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCB2dHBnIFZFUlRF WCBUQUJMRVMgKHJsc192aWV3IEtFWSAoYSkpOwogR1JBTlQgU0VMRUNUIE9OIHJsc192aWV3IFRP IHJlZ3Jlc3NfcmxzX2JvYjsKIEdSQU5UIFNFTEVDVCBPTiBybHNfdmlldyBUTyByZWdyZXNzX3Js c19jYXJvbDsKK0dSQU5UIFNFTEVDVCBPTiB2dHBnIFRPIHJlZ3Jlc3NfcmxzX2JvYjsKK0dSQU5U IFNFTEVDVCBPTiB2dHBnIFRPIHJlZ3Jlc3NfcmxzX2Nhcm9sOwogCiAtLSBRdWVyeSBhcyB0YWJs ZSBvd25lci4gIFNob3VsZCByZXR1cm4gYWxsIHJlY29yZHMuCiBTRUxFQ1QgKiBGUk9NIHJsc192 aWV3OwogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OworU0VMRUNU ICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIu YSwgci5iKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUg KHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOwogCiAtLSBRdWVy aWVzIGFzIG90aGVyIHVzZXJzLgogLS0gU2hvdWxkIHJldHVybiByZWNvcmRzIGJhc2VkIG9uIGN1 cnJlbnQgdXNlcidzIHBvbGljaWVzLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNz X3Jsc19ib2I7CiBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OwogRVhQTEFJTiAoQ09TVFMgT0ZGKSBT RUxFQ1QgKiBGUk9NIHJsc192aWV3OworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBN QVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CitFWFBMQUlOIChDT1NUUyBP RkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBD T0xVTU5TIChyLmEsIHIuYikpOwogCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nf cmxzX2Nhcm9sOwogU0VMRUNUICogRlJPTSBybHNfdmlldzsKIEVYUExBSU4gKENPU1RTIE9GRikg U0VMRUNUICogRlJPTSBybHNfdmlldzsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcg TUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykg Q09MVU1OUyAoci5hLCByLmIpKTsKIAogLS0gVmlldyBhbmQgdGFibGUgb3duZXJzIGFyZSBkaWZm ZXJlbnQuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOworRFJP UCBQUk9QRVJUWSBHUkFQSCB2dHBnOwogRFJPUCBWSUVXIHJsc192aWV3OwogCiBTRVQgU0VTU0lP TiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIENSRUFURSBWSUVXIHJsc192aWV3IFdJ VEggKHNlY3VyaXR5X2ludm9rZXIpIEFTCiAgICAgU0VMRUNUICogRlJPTSB6MSBXSEVSRSBmX2xl YWsoYik7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggdnRwZyBWRVJURVggVEFCTEVTIChybHNfdmll dyBLRVkgKGEpKTsKIEdSQU5UIFNFTEVDVCBPTiBybHNfdmlldyBUTyByZWdyZXNzX3Jsc19hbGlj ZTsKIEdSQU5UIFNFTEVDVCBPTiBybHNfdmlldyBUTyByZWdyZXNzX3Jsc19jYXJvbDsKK0dSQU5U IFNFTEVDVCBPTiB2dHBnIFRPIHJlZ3Jlc3NfcmxzX2FsaWNlOworR1JBTlQgU0VMRUNUIE9OIHZ0 cGcgVE8gcmVncmVzc19ybHNfY2Fyb2w7CiAKIC0tIFF1ZXJ5IGFzIHRhYmxlIG93bmVyLiAgU2hv dWxkIHJldHVybiBhbGwgcmVjb3Jkcy4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVz c19ybHNfYWxpY2U7CiBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OwogRVhQTEFJTiAoQ09TVFMgT0ZG KSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRw ZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CitFWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3 KSBDT0xVTU5TIChyLmEsIHIuYikpOwogCiAtLSBRdWVyaWVzIGFzIG90aGVyIHVzZXJzLgogLS0g U2hvdWxkIHJldHVybiByZWNvcmRzIGJhc2VkIG9uIGN1cnJlbnQgdXNlcidzIHBvbGljaWVzLgog U0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CiBTRUxFQ1QgKiBGUk9N IHJsc192aWV3OwogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3Owor U0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVN TlMgKHIuYSwgci5iKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhf VEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOwogCiBT RVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Nhcm9sOwogU0VMRUNUICogRlJP TSBybHNfdmlldzsKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsK K1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xV TU5TIChyLmEsIHIuYikpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBI X1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsKIAog LS0gUG9saWN5IHJlcXVpcmluZyBhY2Nlc3MgdG8gYW5vdGhlciB0YWJsZS4KIFNFVCBTRVNTSU9O IEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CkBAIC0xMjIxLDExICsxNDI2LDE1IEBA IENSRUFURSBQT0xJQ1kgcDMgT04gejEgQVMgUkVTVFJJQ1RJVkUgVVNJTkcgKGEgTk9UIElOIChT RUxFQ1QgYSBGUk9NIHoxX2JsYWNrbGlzCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jl c3NfcmxzX2JvYjsKIFNFTEVDVCAqIEZST00gcmxzX3ZpZXc7IC0tZmFpbCAtIHBlcm1pc3Npb24g ZGVuaWVkLgogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OyAtLWZh aWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcg TUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOyAtLWZhaWwgLSBwZXJtaXNz aW9uIGRlbmllZC4KK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJM RSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7IC0tZmFpbCAt IHBlcm1pc3Npb24gZGVuaWVkLgogCiAtLSBRdWVyeSBhcyByb2xlIHRoYXQgaXMgbm90IHRoZSBv d25lciBvZiB0aGUgdGFibGUgb3IgdmlldyB3aXRob3V0IHBlcm1pc3Npb25zLgogU0VUIFNFU1NJ T04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19jYXJvbDsKIFNFTEVDVCAqIEZST00gcmxzX3Zp ZXc7IC0tZmFpbCAtIHBlcm1pc3Npb24gZGVuaWVkLgogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxF Q1QgKiBGUk9NIHJsc192aWV3OyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KK1NFTEVDVCAq IEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEs IHIuYikpOyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KK0VYUExBSU4gKENPU1RTIE9GRikg U0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVN TlMgKHIuYSwgci5iKSk7IC0tZmFpbCAtIHBlcm1pc3Npb24gZGVuaWVkLgogCiAtLSBRdWVyeSBh cyByb2xlIHRoYXQgaXMgbm90IG93bmVyIG9mIHRhYmxlIGJ1dCBpcyBvd25lciBvZiB2aWV3IHdp dGggcGVybWlzc2lvbnMuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Fs aWNlOwpAQCAtMTIzNCwxMSArMTQ0MywxNSBAQCBHUkFOVCBTRUxFQ1QgT04gejFfYmxhY2tsaXN0 IFRPIHJlZ3Jlc3NfcmxzX2JvYjsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19y bHNfYm9iOwogU0VMRUNUICogRlJPTSBybHNfdmlldzsKIEVYUExBSU4gKENPU1RTIE9GRikgU0VM RUNUICogRlJPTSBybHNfdmlldzsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFU Q0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworRVhQTEFJTiAoQ09TVFMgT0ZG KSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09M VU1OUyAoci5hLCByLmIpKTsKIAogLS0gUXVlcnkgYXMgcm9sZSB0aGF0IGlzIG5vdCB0aGUgb3du ZXIgb2YgdGhlIHRhYmxlIG9yIHZpZXcgd2l0aG91dCBwZXJtaXNzaW9ucy4KIFNFVCBTRVNTSU9O IEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIHJsc192aWV3 OyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNU ICogRlJPTSBybHNfdmlldzsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCitTRUxFQ1QgKiBG Uk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCBy LmIpKTsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCitFWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5T IChyLmEsIHIuYikpOyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KIAogLS0gUXVlcnkgYXMg cm9sZSB0aGF0IGlzIG5vdCB0aGUgb3duZXIgb2YgdGhlIHRhYmxlIG9yIHZpZXcgd2l0aCBwZXJt aXNzaW9ucy4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CkBA IC0xMjQ3LDggKzE0NjAsMTEgQEAgR1JBTlQgU0VMRUNUIE9OIHoxX2JsYWNrbGlzdCBUTyByZWdy ZXNzX3Jsc19jYXJvbDsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fy b2w7CiBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OwogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1Qg KiBGUk9NIHJsc192aWV3OworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAo cjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5T IChyLmEsIHIuYikpOwogCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Jv YjsKK0RST1AgUFJPUEVSVFkgR1JBUEggdnRwZzsKIERST1AgVklFVyBybHNfdmlldzsKIAogLS0K QEAgLTEyNTcsNyArMTQ3Myw5IEBAIERST1AgVklFVyBybHNfdmlldzsKIFNFVCBTRVNTSU9OIEFV VEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiAKIENSRUFURSBUQUJMRSB4MSAoYSBpbnQs IGIgdGV4dCwgYyB0ZXh0KTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBjc3RwZyBWRVJURVggVEFC TEVTICh4MSBLRVkgKGEpKTsKIEdSQU5UIEFMTCBPTiB4MSBUTyBQVUJMSUM7CitHUkFOVCBBTEwg T04gY3N0cGcgVE8gUFVCTElDOwogCiBJTlNFUlQgSU5UTyB4MSBWQUxVRVMKICAgICAoMSwgJ2Fi YycsICdyZWdyZXNzX3Jsc19ib2InKSwKQEAgLTEyNzksMTAgKzE0OTcsMTIgQEAgQUxURVIgVEFC TEUgeDEgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIAogU0VUIFNFU1NJT04gQVVUSE9SSVpB VElPTiByZWdyZXNzX3Jsc19ib2I7CiBTRUxFQ1QgKiBGUk9NIHgxIFdIRVJFIGZfbGVhayhiKSBP UkRFUiBCWSBhIEFTQzsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGNzdHBnIE1BVENIICh4 IDogeDEpIFdIRVJFIGZfbGVhayh4LmIpIENPTFVNTlMgKHguYSwgeC5iLCB4LmMpKSBPUkRFUiBC WSBhIEFTQzsKIFVQREFURSB4MSBTRVQgYiA9IGIgfHwgJ191cGR0JyBXSEVSRSBmX2xlYWsoYikg UkVUVVJOSU5HICo7CiAKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fy b2w7CiBTRUxFQ1QgKiBGUk9NIHgxIFdIRVJFIGZfbGVhayhiKSBPUkRFUiBCWSBhIEFTQzsKK1NF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGNzdHBnIE1BVENIICh4IDogeDEpIFdIRVJFIGZfbGVh ayh4LmIpIENPTFVNTlMgKHguYSwgeC5iLCB4LmMpKSBPUkRFUiBCWSBhIEFTQzsKIFVQREFURSB4 MSBTRVQgYiA9IGIgfHwgJ191cGR0JyBXSEVSRSBmX2xlYWsoYikgUkVUVVJOSU5HICo7CiBERUxF VEUgRlJPTSB4MSBXSEVSRSBmX2xlYWsoYikgUkVUVVJOSU5HICo7CiAKQEAgLTEyOTIsOCArMTUx MiwxMCBAQCBERUxFVEUgRlJPTSB4MSBXSEVSRSBmX2xlYWsoYikgUkVUVVJOSU5HICo7CiBTRVQg U0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwogQ1JFQVRFIFRBQkxFIHkx IChhIGludCwgYiB0ZXh0KTsKIENSRUFURSBUQUJMRSB5MiAoYSBpbnQsIGIgdGV4dCk7CitDUkVB VEUgUFJPUEVSVFkgR1JBUEggc3ZidHBnIFZFUlRFWCBUQUJMRVMgKHkxIEtFWSAoYSksIHkyIEtF WSAoYSkpOwogCiBHUkFOVCBBTEwgT04geTEsIHkyIFRPIHJlZ3Jlc3NfcmxzX2JvYjsKK0dSQU5U IEFMTCBPTiBzdmJ0cGcgVE8gcmVncmVzc19ybHNfYm9iOwogCiBDUkVBVEUgUE9MSUNZIHAxIE9O IHkxIEZPUiBBTEwgVVNJTkcgKGEgJSAyID0gMCk7CiBDUkVBVEUgUE9MSUNZIHAyIE9OIHkxIEZP UiBTRUxFQ1QgVVNJTkcgKGEgPiAyKTsKQEAgLTEzMTAsNyArMTUzMiwxMCBAQCBBTFRFUiBUQUJM RSB5MiBFTkFCTEUgUk9XIExFVkVMIFNFQ1VSSVRZOwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElP TiByZWdyZXNzX3Jsc19hbGljZTsKIENSRUFURSBWSUVXIHJsc19zYnYgV0lUSCAoc2VjdXJpdHlf YmFycmllcikgQVMKICAgICBTRUxFQ1QgKiBGUk9NIHkxIFdIRVJFIGZfbGVhayhiKTsKK0FMVEVS IFBST1BFUlRZIEdSQVBIIHN2YnRwZyBBREQgVkVSVEVYIFRBQkxFUyAocmxzX3NidiBLRVkgKGEp KTsKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfc2J2IFdIRVJFIChhID0g MSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHN2YnRw ZyBNQVRDSCAocjogcmxzX3NidikgV0hFUkUgci5hID0gMSBDT0xVTU5TIChyLmEsIHIuYikpOwor QUxURVIgUFJPUEVSVFkgR1JBUEggc3ZidHBnIERST1AgVkVSVEVYIFRBQkxFUyAocmxzX3Nidik7 CiBEUk9QIFZJRVcgcmxzX3NidjsKIAogLS0gQ3JlYXRlIHZpZXcgYXMgcm9sZSB0aGF0IGRvZXMg bm90IG93biB0YWJsZS4gIFJMUyBzaG91bGQgYmUgYXBwbGllZC4KQEAgLTEzMzEsMTIgKzE1NTYs MTYgQEAgQ1JFQVRFIFBPTElDWSBwMyBPTiB5MiBVU0lORyAoYSAlIDQgPSAwKTsKIFNFVCBTRVNT SU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwogU0VMRUNUICogRlJPTSB5MiBXSEVS RSBmX2xlYWsoYik7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00geTIgV0hFUkUg Zl9sZWFrKGIpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoc3ZidHBnIE1BVENIICh5OiB5 MikgV0hFUkUgZl9sZWFrKHkuYikgQ09MVU1OUyAoeS5hLCB5LmIpKTsKK0VYUExBSU4gKENPU1RT IE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoc3ZidHBnIE1BVENIICh5OiB5MikgV0hF UkUgZl9sZWFrKHkuYikgQ09MVU1OUyAoeS5hLCB5LmIpKTsKIAogLS0KIC0tIFF1YWwgcHVzaC1k b3duIG9mIGxlYWt5IGZ1bmN0aW9ucywgd2hlbiBub3QgcmVmZXJyaW5nIHRvIHRhYmxlCiAtLQog U0VMRUNUICogRlJPTSB5MiBXSEVSRSBmX2xlYWsoJ2FiYycpOwogRVhQTEFJTiAoQ09TVFMgT0ZG KSBTRUxFQ1QgKiBGUk9NIHkyIFdIRVJFIGZfbGVhaygnYWJjJyk7CitTRUxFQ1QgKiBGUk9NIEdS QVBIX1RBQkxFIChzdmJ0cGcgTUFUQ0ggKHk6IHkyKSBXSEVSRSBmX2xlYWsoJ2FiYycpIENPTFVN TlMgKHkuYSwgeS5iKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhf VEFCTEUgKHN2YnRwZyBNQVRDSCAoeTogeTIpIFdIRVJFIGZfbGVhaygnYWJjJykgQ09MVU1OUyAo eS5hLCB5LmIpKTsKIAogQ1JFQVRFIFRBQkxFIHRlc3RfcXVhbF9wdXNoZG93biAoCiAgICAgYWJj IHRleHQKQEAgLTEzNTcsMTIgKzE1ODYsMTcgQEAgRFJPUCBUQUJMRSB0ZXN0X3F1YWxfcHVzaGRv d247CiAtLQogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwogCitEUk9QIFBST1BFUlRZIEdS QVBIIGl0cGc7CiBEUk9QIFRBQkxFIHQxIENBU0NBREU7CiAKIENSRUFURSBUQUJMRSB0MSAoYSBp bnRlZ2VyKTsKIAogR1JBTlQgU0VMRUNUIE9OIHQxIFRPIHJlZ3Jlc3NfcmxzX2JvYiwgcmVncmVz c19ybHNfY2Fyb2w7CiAKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBpdHBnIFZFUlRFWCBUQUJMRVMg KHQxIEtFWShhKSk7CisKK0dSQU5UIFNFTEVDVCBPTiBpdHBnIFRPIHJlZ3Jlc3NfcmxzX2JvYiwg cmVncmVzc19ybHNfY2Fyb2w7CisKIENSRUFURSBQT0xJQ1kgcDEgT04gdDEgVE8gcmVncmVzc19y bHNfYm9iIFVTSU5HICgoYSAlIDIpID0gMCk7CiBDUkVBVEUgUE9MSUNZIHAyIE9OIHQxIFRPIHJl Z3Jlc3NfcmxzX2Nhcm9sIFVTSU5HICgoYSAlIDQpID0gMCk7CiAKQEAgLTEzNzEsMzAgKzE2MDUs MzcgQEAgQUxURVIgVEFCTEUgdDEgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIC0tIFByZXBh cmUgYXMgcmVncmVzc19ybHNfYm9iCiBTRVQgUk9MRSByZWdyZXNzX3Jsc19ib2I7CiBQUkVQQVJF IHJvbGVfaW52YWwgQVMgU0VMRUNUICogRlJPTSB0MTsKK1BSRVBBUkUgcm9sZV9pbnZhbF9wZyBB UyBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0OiB0MSkgQ09MVU1OUyAo dC5hKSk7CiAtLSBDaGVjayBwbGFuCiBFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcm9sZV9p bnZhbDsKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSByb2xlX2ludmFsX3BnOwogCiAtLSBD aGFuZ2UgdG8gcmVncmVzc19ybHNfY2Fyb2wKIFNFVCBST0xFIHJlZ3Jlc3NfcmxzX2Nhcm9sOwog LS0gQ2hlY2sgcGxhbi0gc2hvdWxkIGJlIGRpZmZlcmVudAogRVhQTEFJTiAoQ09TVFMgT0ZGKSBF WEVDVVRFIHJvbGVfaW52YWw7CitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcm9sZV9pbnZh bF9wZzsKIAogLS0gQ2hhbmdlIGJhY2sgdG8gcmVncmVzc19ybHNfYm9iCiBTRVQgUk9MRSByZWdy ZXNzX3Jsc19ib2I7CiAtLSBDaGVjayBwbGFuLSBzaG91bGQgYmUgYmFjayB0byBvcmlnaW5hbAog RVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHJvbGVfaW52YWw7CitFWFBMQUlOIChDT1NUUyBP RkYpIEVYRUNVVEUgcm9sZV9pbnZhbF9wZzsKIAogLS0KIC0tIENURSBhbmQgUkxTCiAtLQogUkVT RVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOworRFJPUCBQUk9QRVJUWSBHUkFQSCBpdHBnOwogRFJP UCBUQUJMRSB0MSBDQVNDQURFOwogQ1JFQVRFIFRBQkxFIHQxIChhIGludGVnZXIsIGIgdGV4dCk7 CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggaXRwZyBWRVJURVggVEFCTEVTICh0MSBLRVkoYSkpOwog Q1JFQVRFIFBPTElDWSBwMSBPTiB0MSBVU0lORyAoYSAlIDIgPSAwKTsKIAogQUxURVIgVEFCTEUg dDEgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIAogR1JBTlQgQUxMIE9OIHQxIFRPIHJlZ3Jl c3NfcmxzX2JvYjsKK0dSQU5UIEFMTCBPTiBpdHBnIFRPIHJlZ3Jlc3NfcmxzX2JvYjsKIAogSU5T RVJUIElOVE8gdDEgKFNFTEVDVCB4LCBwdWJsaWMuZmlwc2hhc2goeDo6dGV4dCkgRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMCwyMCkgeCk7CiAKQEAgLTE0MDMsNiArMTY0NCw5IEBAIFNFVCBTRVNTSU9O IEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwogV0lUSCBjdGUxIEFTIE1BVEVSSUFMSVpF RCAoU0VMRUNUICogRlJPTSB0MSBXSEVSRSBmX2xlYWsoYikpIFNFTEVDVCAqIEZST00gY3RlMTsK IEVYUExBSU4gKENPU1RTIE9GRikKIFdJVEggY3RlMSBBUyBNQVRFUklBTElaRUQgKFNFTEVDVCAq IEZST00gdDEgV0hFUkUgZl9sZWFrKGIpKSBTRUxFQ1QgKiBGUk9NIGN0ZTE7CitXSVRIIGN0ZTEg QVMgTUFURVJJQUxJWkVEIChTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0 OiB0MSkgV0hFUkUgZl9sZWFrKHQuYikgQ09MVU1OUyAodC5hLCB0LmIpKSkgU0VMRUNUICogRlJP TSBjdGUxOworRVhQTEFJTiAoQ09TVFMgT0ZGKQorV0lUSCBjdGUxIEFTIE1BVEVSSUFMSVpFRCAo U0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEpIFdIRVJFIGZfbGVh ayh0LmIpIENPTFVNTlMgKHQuYSwgdC5iKSkpIFNFTEVDVCAqIEZST00gY3RlMTsKIAogV0lUSCBj dGUxIEFTIChVUERBVEUgdDEgU0VUIGEgPSBhICsgMSBSRVRVUk5JTkcgKikgU0VMRUNUICogRlJP TSBjdGUxOyAtLWZhaWwKIFdJVEggY3RlMSBBUyAoVVBEQVRFIHQxIFNFVCBhID0gYSBSRVRVUk5J TkcgKikgU0VMRUNUICogRlJPTSBjdGUxOyAtLW9rCkBAIC0xNDQxLDYgKzE2ODUsMTYgQEAgQ1JF QVRFIFRBQkxFIHQzIEFTIFNFTEVDVCAqIEZST00gdDE7CiBTRUxFQ1QgKiBGUk9NIHQzOwogU0VM RUNUICogSU5UTyB0NCBGUk9NIHQxOwogU0VMRUNUICogRlJPTSB0NDsKK0RST1AgVEFCTEUgdDIs IHQzLCB0NDsKK0NSRUFURSBUQUJMRSB0MiAoYSBpbnRlZ2VyLCBiIHRleHQpOworSU5TRVJUIElO VE8gdDIgKFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQxKSBDT0xV TU5TICh0LmEsIHQuYikpKTsKK0VYUExBSU4gKENPU1RTIE9GRikgSU5TRVJUIElOVE8gdDIgKFNF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQxKSBDT0xVTU5TICh0LmEs IHQuYikpKTsKK1NFTEVDVCAqIEZST00gdDI7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAq IEZST00gdDI7CitDUkVBVEUgVEFCTEUgdDMgQVMgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAo aXRwZyBNQVRDSCAodDogdDEpIENPTFVNTlMgKHQuYSwgdC5iKSk7CitTRUxFQ1QgKiBGUk9NIHQz OworU0VMRUNUICogSU5UTyB0NCBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0OiB0MSkg Q09MVU1OUyAodC5hLCB0LmIpKTsKK1NFTEVDVCAqIEZST00gdDQ7CiAKIC0tCiAtLSBSTFMgd2l0 aCBKT0lOCkBAIC0xNDQ4LDggKzE3MDIsMTUgQEAgU0VMRUNUICogRlJPTSB0NDsKIFNFVCBTRVNT SU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiBDUkVBVEUgVEFCTEUgYmxvZyAo aWQgaW50ZWdlciwgYXV0aG9yIHRleHQsIHBvc3QgdGV4dCk7CiBDUkVBVEUgVEFCTEUgY29tbWVu dCAoYmxvZ19pZCBpbnRlZ2VyLCBtZXNzYWdlIHRleHQpOworQ1JFQVRFIFBST1BFUlRZIEdSQVBI IGp0cGcKKyAgICBWRVJURVggVEFCTEVTIChibG9nIEtFWSAoaWQpKQorICAgIEVER0UgVEFCTEVT CisgICAgKGNvbW1lbnQgS0VZIChibG9nX2lkKQorICAgICBTT1VSQ0UgS0VZIChibG9nX2lkKSBS RUZFUkVOQ0VTIGJsb2coaWQpCisgICAgIERFU1RJTkFUSU9OIEtFWSAoYmxvZ19pZCkgUkVGRVJF TkNFUyBibG9nKGlkKSk7CiAKIEdSQU5UIEFMTCBPTiBibG9nLCBjb21tZW50IFRPIHJlZ3Jlc3Nf cmxzX2JvYjsKK0dSQU5UIEFMTCBPTiBqdHBnIFRPIHJlZ3Jlc3NfcmxzX2JvYjsKIAogQ1JFQVRF IFBPTElDWSBibG9nXzEgT04gYmxvZyBVU0lORyAoaWQgJSAyID0gMCk7CiAKQEAgLTE0NzUsNiAr MTczNiw3IEBAIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwogU0VM RUNUIGlkLCBhdXRob3IsIG1lc3NhZ2UgRlJPTSBibG9nIEpPSU4gY29tbWVudCBPTiBpZCA9IGJs b2dfaWQ7CiAtLSBDaGVjayBOb24tUkxTIEpPSU4gd2l0aCBSTFMuCiBTRUxFQ1QgaWQsIGF1dGhv ciwgbWVzc2FnZSBGUk9NIGNvbW1lbnQgSk9JTiBibG9nIE9OIGlkID0gYmxvZ19pZDsKK1NFTEVD VCBpZCwgYXV0aG9yLCBtZXNzYWdlIEZST00gR1JBUEhfVEFCTEUgKGp0cGcgTUFUQ0ggKGI6IGJs b2cpLVtjOiBjb21tZW50XS0+KGIpIENPTFVNTlMgKGIuaWQgQVMgaWQsIGIuYXV0aG9yIEFTIGF1 dGhvciwgYy5tZXNzYWdlIEFTIG1lc3NhZ2UpKTsKIAogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElP TiByZWdyZXNzX3Jsc19hbGljZTsKIENSRUFURSBQT0xJQ1kgY29tbWVudF8xIE9OIGNvbW1lbnQg VVNJTkcgKGJsb2dfaWQgPCA0KTsKQEAgLTE0ODUsOCArMTc0NywxMCBAQCBTRVQgU0VTU0lPTiBB VVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIC0tIENoZWNrIFJMUyBKT0lOIFJMUwogU0VM RUNUIGlkLCBhdXRob3IsIG1lc3NhZ2UgRlJPTSBibG9nIEpPSU4gY29tbWVudCBPTiBpZCA9IGJs b2dfaWQ7CiBTRUxFQ1QgaWQsIGF1dGhvciwgbWVzc2FnZSBGUk9NIGNvbW1lbnQgSk9JTiBibG9n IE9OIGlkID0gYmxvZ19pZDsKK1NFTEVDVCBpZCwgYXV0aG9yLCBtZXNzYWdlIEZST00gR1JBUEhf VEFCTEUgKGp0cGcgTUFUQ0ggKGI6IGJsb2cpLVtjOiBjb21tZW50XS0+KGIpIENPTFVNTlMgKGIu aWQgQVMgaWQsIGIuYXV0aG9yIEFTIGF1dGhvciwgYy5tZXNzYWdlIEFTIG1lc3NhZ2UpKTsKIAog U0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKK0RST1AgUFJPUEVS VFkgR1JBUEgganRwZzsKIERST1AgVEFCTEUgYmxvZywgY29tbWVudDsKIAogLS0KQEAgLTE0OTUs MjUgKzE3NTksMzQgQEAgRFJPUCBUQUJMRSBibG9nLCBjb21tZW50OwogUkVTRVQgU0VTU0lPTiBB VVRIT1JJWkFUSU9OOwogRFJPUCBQT0xJQ1kgcDIgT04gdDE7CiBBTFRFUiBUQUJMRSB0MSBPV05F UiBUTyByZWdyZXNzX3Jsc19hbGljZTsKK0dSQU5UIFNFTEVDVCBPTiBpdHBnIFRPIHJlZ3Jlc3Nf cmxzX2FsaWNlOwogCiAtLSBDaGVjayB0aGF0IGRlZmF1bHQgZGVueSBkb2VzIG5vdCBhcHBseSB0 byBzdXBlcnVzZXIuCiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiBTRUxFQ1QgKiBGUk9N IHQxOwogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHQxOworU0VMRUNUICogRlJP TSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEpIENPTFVNTlMgKHQuYSwgdC5iKSk7CitF WFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0gg KHQ6IHQxKSBDT0xVTU5TICh0LmEsIHQuYikpOwogCiAtLSBDaGVjayB0aGF0IGRlZmF1bHQgZGVu eSBkb2VzIG5vdCBhcHBseSB0byB0YWJsZSBvd25lci4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJ T04gcmVncmVzc19ybHNfYWxpY2U7CiBTRUxFQ1QgKiBGUk9NIHQxOwogRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgKiBGUk9NIHQxOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBN QVRDSCAodDogdDEpIENPTFVNTlMgKHQuYSwgdC5iKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQxKSBDT0xVTU5TICh0LmEs IHQuYikpOwogCiAtLSBDaGVjayB0aGF0IGRlZmF1bHQgZGVueSBhcHBsaWVzIHRvIG5vbi1vd25l ci9ub24tc3VwZXJ1c2VyIHdoZW4gUkxTIG9uLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiBy ZWdyZXNzX3Jsc19ib2I7CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9OOwogU0VMRUNUICogRlJPTSB0 MTsKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB0MTsKK1NFTEVDVCAqIEZST00g R1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQxKSBDT0xVTU5TICh0LmEsIHQuYikpOworRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0 OiB0MSkgQ09MVU1OUyAodC5hLCB0LmIpKTsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVn cmVzc19ybHNfYm9iOwogU0VMRUNUICogRlJPTSB0MTsKIEVYUExBSU4gKENPU1RTIE9GRikgU0VM RUNUICogRlJPTSB0MTsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6 IHQxKSBDT0xVTU5TICh0LmEsIHQuYikpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBG Uk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0OiB0MSkgQ09MVU1OUyAodC5hLCB0LmIpKTsK IAogLS0KIC0tIENPUFkgVE8vRlJPTQpAQCAtMTUyMiwxMSArMTc5NSwxMyBAQCBFWFBMQUlOIChD T1NUUyBPRkYpIFNFTEVDVCAqIEZST00gdDE7CiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047 CiBEUk9QIFRBQkxFIGNvcHlfdCBDQVNDQURFOwogQ1JFQVRFIFRBQkxFIGNvcHlfdCAoYSBpbnRl Z2VyLCBiIHRleHQpOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGN0cGcgVkVSVEVYIFRBQkxFUyAo Y29weV90IEtFWSAoYSkpOwogQ1JFQVRFIFBPTElDWSBwMSBPTiBjb3B5X3QgVVNJTkcgKGEgJSAy ID0gMCk7CiAKIEFMVEVSIFRBQkxFIGNvcHlfdCBFTkFCTEUgUk9XIExFVkVMIFNFQ1VSSVRZOwog CiBHUkFOVCBBTEwgT04gY29weV90IFRPIHJlZ3Jlc3NfcmxzX2JvYiwgcmVncmVzc19ybHNfZXhl bXB0X3VzZXI7CitHUkFOVCBBTEwgT04gY3RwZyBUTyByZWdyZXNzX3Jsc19ib2IsIHJlZ3Jlc3Nf cmxzX2V4ZW1wdF91c2VyOwogCiBJTlNFUlQgSU5UTyBjb3B5X3QgKFNFTEVDVCB4LCBwdWJsaWMu Zmlwc2hhc2goeDo6dGV4dCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMCwxMCkgeCk7CiAKQEAgLTE1 MzQsMjkgKzE4MDksMzcgQEAgSU5TRVJUIElOVE8gY29weV90IChTRUxFQ1QgeCwgcHVibGljLmZp cHNoYXNoKHg6OnRleHQpIEZST00gZ2VuZXJhdGVfc2VyaWVzKDAsMTAKIFJFU0VUIFNFU1NJT04g QVVUSE9SSVpBVElPTjsKIFNFVCByb3dfc2VjdXJpdHkgVE8gT0ZGOwogQ09QWSAoU0VMRUNUICog RlJPTSBjb3B5X3QgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRFUiAnLCc7 CitDT1BZIChTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChjdHBnIE1BVENIIChjOiBjb3B5X3Qp IENPTFVNTlMgKGMuYSwgYy5iKSkgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElN SVRFUiAnLCc7CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9OOwogQ09QWSAoU0VMRUNUICogRlJPTSBj b3B5X3QgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRFUiAnLCc7CitDT1BZ IChTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChjdHBnIE1BVENIIChjOiBjb3B5X3QpIENPTFVN TlMgKGMuYSwgYy5iKSkgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRFUiAn LCc7CiAKIC0tIENoZWNrIENPUFkgVE8gYXMgdXNlciB3aXRoIHBlcm1pc3Npb25zLgogU0VUIFNF U1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CiBTRVQgcm93X3NlY3VyaXR5IFRP IE9GRjsKIENPUFkgKFNFTEVDVCAqIEZST00gY29weV90IE9SREVSIEJZIGEgQVNDKSBUTyBTVERP VVQgV0lUSCBERUxJTUlURVIgJywnOyAtLWZhaWwgLSB3b3VsZCBiZSBhZmZlY3RlZCBieSBSTFMK K0NPUFkgKFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGN0cGcgTUFUQ0ggKGM6IGNvcHlfdCkg Q09MVU1OUyAoYy5hLCBjLmIpKSBPUkRFUiBCWSBhIEFTQykgVE8gU1RET1VUIFdJVEggREVMSU1J VEVSICcsJzsgLS1mYWlsIC0gd291bGQgYmUgYWZmZWN0ZWQgYnkgUkxTCiBTRVQgcm93X3NlY3Vy aXR5IFRPIE9OOwogQ09QWSAoU0VMRUNUICogRlJPTSBjb3B5X3QgT1JERVIgQlkgYSBBU0MpIFRP IFNURE9VVCBXSVRIIERFTElNSVRFUiAnLCc7IC0tb2sKK0NPUFkgKFNFTEVDVCAqIEZST00gR1JB UEhfVEFCTEUgKGN0cGcgTUFUQ0ggKGM6IGNvcHlfdCkgQ09MVU1OUyAoYy5hLCBjLmIpKSBPUkRF UiBCWSBhIEFTQykgVE8gU1RET1VUIFdJVEggREVMSU1JVEVSICcsJzsKIAogLS0gQ2hlY2sgQ09Q WSBUTyBhcyB1c2VyIHdpdGggcGVybWlzc2lvbnMgYW5kIEJZUEFTU1JMUwogU0VUIFNFU1NJT04g QVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19leGVtcHRfdXNlcjsKIFNFVCByb3dfc2VjdXJpdHkg VE8gT0ZGOwogQ09QWSAoU0VMRUNUICogRlJPTSBjb3B5X3QgT1JERVIgQlkgYSBBU0MpIFRPIFNU RE9VVCBXSVRIIERFTElNSVRFUiAnLCc7IC0tb2sKK0NPUFkgKFNFTEVDVCAqIEZST00gR1JBUEhf VEFCTEUgKGN0cGcgTUFUQ0ggKGM6IGNvcHlfdCkgQ09MVU1OUyAoYy5hLCBjLmIpKSBPUkRFUiBC WSBhIEFTQykgVE8gU1RET1VUIFdJVEggREVMSU1JVEVSICcsJzsKIFNFVCByb3dfc2VjdXJpdHkg VE8gT047CiBDT1BZIChTRUxFQ1QgKiBGUk9NIGNvcHlfdCBPUkRFUiBCWSBhIEFTQykgVE8gU1RE T1VUIFdJVEggREVMSU1JVEVSICcsJzsgLS1vaworQ09QWSAoU0VMRUNUICogRlJPTSBHUkFQSF9U QUJMRSAoY3RwZyBNQVRDSCAoYzogY29weV90KSBDT0xVTU5TIChjLmEsIGMuYikpIE9SREVSIEJZ IGEgQVNDKSBUTyBTVERPVVQgV0lUSCBERUxJTUlURVIgJywnOwogCiAtLSBDaGVjayBDT1BZIFRP IGFzIHVzZXIgd2l0aG91dCBwZXJtaXNzaW9ucy4gU0VUIHJvd19zZWN1cml0eSBUTyBPRkY7CiBT RVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Nhcm9sOwogU0VUIHJvd19zZWN1 cml0eSBUTyBPRkY7CiBDT1BZIChTRUxFQ1QgKiBGUk9NIGNvcHlfdCBPUkRFUiBCWSBhIEFTQykg VE8gU1RET1VUIFdJVEggREVMSU1JVEVSICcsJzsgLS1mYWlsIC0gd291bGQgYmUgYWZmZWN0ZWQg YnkgUkxTCitDT1BZIChTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChjdHBnIE1BVENIIChjOiBj b3B5X3QpIENPTFVNTlMgKGMuYSwgYy5iKSkgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRI IERFTElNSVRFUiAnLCc7CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9OOwogQ09QWSAoU0VMRUNUICog RlJPTSBjb3B5X3QgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRFUiAnLCc7 IC0tZmFpbCAtIHBlcm1pc3Npb24gZGVuaWVkCitDT1BZIChTRUxFQ1QgKiBGUk9NIEdSQVBIX1RB QkxFIChjdHBnIE1BVENIIChjOiBjb3B5X3QpIENPTFVNTlMgKGMuYSwgYy5iKSkgT1JERVIgQlkg YSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRFUiAnLCc7CiAKIC0tIENoZWNrIENPUFkgcmVs YXRpb24gVE87IGtlZXAgaXQganVzdCBvbmUgcm93IHRvIGF2b2lkIHJlb3JkZXJpbmcgaXNzdWVz CiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CkBAIC0xNjc0LDYgKzE5NTcsNyBAQCBTRVQg cm93X3NlY3VyaXR5IFRPIE9OOwogQ09QWSBjb3B5X3QgRlJPTSBTVERJTjsgLS1mYWlsIC0gcGVy bWlzc2lvbiBkZW5pZWQuCiAKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKK0RST1AgUFJP UEVSVFkgR1JBUEggY3RwZzsKIERST1AgVEFCTEUgY29weV90OwogRFJPUCBUQUJMRSBjb3B5X3Jl bF90byBDQVNDQURFOwogCkBAIC0xNzY5LDEyICsyMDUzLDE1IEBAIFNFTEVDVCBhdHRuYW1lLCBt b3N0X2NvbW1vbl92YWxzIEZST00gcGdfc3RhdHMKIC0tCiBCRUdJTjsKIENSRUFURSBUQUJMRSBj b2xsX3QgKGMpIEFTIFZBTFVFUyAoJ2Jhcic6OnRleHQpOworQ1JFQVRFIFBST1BFUlRZIEdSQVBI IGNsdHBnIFZFUlRFWCBUQUJMRVMgKGNvbGxfdCBLRVkgKGMpKTsKIENSRUFURSBQT0xJQ1kgY29s bF9wIE9OIGNvbGxfdCBVU0lORyAoYyA8ICgnZm9vJzo6dGV4dCBDT0xMQVRFICJDIikpOwogQUxU RVIgVEFCTEUgY29sbF90IEVOQUJMRSBST1cgTEVWRUwgU0VDVVJJVFk7CiBHUkFOVCBTRUxFQ1Qg T04gY29sbF90IFRPIHJlZ3Jlc3NfcmxzX2FsaWNlOworR1JBTlQgU0VMRUNUIE9OIGNsdHBnIFRP IHJlZ3Jlc3NfcmxzX2FsaWNlOwogU0VMRUNUIChzdHJpbmdfdG9fYXJyYXkocG9scXVhbCwgJzon KSlbN10gQVMgaW5wdXRjb2xsaWQgRlJPTSBwZ19wb2xpY3kgV0hFUkUgcG9scmVsaWQgPSAnY29s bF90Jzo6cmVnY2xhc3M7CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Fs aWNlOwogU0VMRUNUICogRlJPTSBjb2xsX3Q7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChj bHRwZyBNQVRDSCAoYzogY29sbF90KSBDT0xVTU5TIChjLmMpKTsKIFJPTExCQUNLOwogCiAtLQpA QCAtMTgzNyw4ICsyMTI0LDkgQEAgQ1JFQVRFIFRBQkxFIHIxIChhIGludCk7CiBDUkVBVEUgVEFC TEUgcjIgKGEgaW50KTsKIElOU0VSVCBJTlRPIHIxIFZBTFVFUyAoMTApLCAoMjApOwogSU5TRVJU IElOVE8gcjIgVkFMVUVTICgxMCksICgyMCk7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggdHJ0cGcg VkVSVEVYIFRBQkxFUyAocjIgS0VZIChhKSk7CiAKLUdSQU5UIEFMTCBPTiByMSwgcjIgVE8gcmVn cmVzc19ybHNfYm9iOworR1JBTlQgQUxMIE9OIHIxLCByMiwgdHJ0cGcgVE8gcmVncmVzc19ybHNf Ym9iOwogCiBDUkVBVEUgUE9MSUNZIHAxIE9OIHIxIFVTSU5HICh0cnVlKTsKIEFMVEVSIFRBQkxF IHIxIEVOQUJMRSBST1cgTEVWRUwgU0VDVVJJVFk7CkBAIC0xODY0LDggKzIxNTIsMTQgQEAgVVBE QVRFIHIxIFNFVCBhID0gcjIuYSArIDIgRlJPTSByMiBXSEVSRSByMS5hID0gcjIuYSBSRVRVUk5J TkcgKjsgLS0gT0sKIERFTEVURSBGUk9NIHIxIFVTSU5HIHIyIFdIRVJFIHIxLmEgPSByMi5hICsg MiBSRVRVUk5JTkcgKjsgLS0gT0sKIFNFTEVDVCAqIEZST00gcjE7CiBTRUxFQ1QgKiBGUk9NIHIy OworSU5TRVJUIElOVE8gcjEgU0VMRUNUIGEgRlJPTSBHUkFQSF9UQUJMRSAodHJ0cGcgTUFUQ0gg KHI6IHIyKSBDT0xVTU5TIChyLmEpKSByMiBSRVRVUk5JTkcgKjsgLS0gT0sKK1VQREFURSByMSBT RVQgYSA9IHIyLmEgKyAyIEZST00gR1JBUEhfVEFCTEUgKHRydHBnIE1BVENIIChyOiByMikgQ09M VU1OUyAoci5hKSkgcjIgV0hFUkUgcjEuYSA9IHIyLmEgUkVUVVJOSU5HICo7IC0tIE9LCitERUxF VEUgRlJPTSByMSBVU0lORyBHUkFQSF9UQUJMRSAodHJ0cGcgTUFUQ0ggKHI6IHIyKSBDT0xVTU5T IChyLmEpKSByMiBXSEVSRSByMS5hID0gcjIuYSArIDIgUkVUVVJOSU5HICo7IC0tIE9LCitTRUxF Q1QgKiBGUk9NIHIxOworU0VMRUNUICogRlJPTSByMjsKIAogU0VUIFNFU1NJT04gQVVUSE9SSVpB VElPTiByZWdyZXNzX3Jsc19hbGljZTsKK0RST1AgUFJPUEVSVFkgR1JBUEggdHJ0cGc7CiBEUk9Q IFRBQkxFIHIxOwogRFJPUCBUQUJMRSByMjsKIApAQCAtMTg3NSw2ICsyMTY5LDcgQEAgRFJPUCBU QUJMRSByMjsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiBT RVQgcm93X3NlY3VyaXR5ID0gb247CiBDUkVBVEUgVEFCTEUgcjEgKGEgaW50KTsKK0NSRUFURSBQ Uk9QRVJUWSBHUkFQSCBmcmxzdHBnIFZFUlRFWCBUQUJMRVMgKHIxIEtFWSAoYSkpOwogSU5TRVJU IElOVE8gcjEgVkFMVUVTICgxMCksICgyMCk7CiAKIENSRUFURSBQT0xJQ1kgcDEgT04gcjEgVVNJ TkcgKGZhbHNlKTsKQEAgLTE4ODMsNiArMjE3OCw3IEBAIEFMVEVSIFRBQkxFIHIxIEZPUkNFIFJP VyBMRVZFTCBTRUNVUklUWTsKIAogLS0gTm8gZXJyb3IsIGJ1dCBubyByb3dzCiBUQUJMRSByMTsK K1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGZybHN0cGcgTUFUQ0ggKHI6IHIxKSBDT0xVTU5T IChyLmEpKTsKIAogLS0gUkxTIGVycm9yCiBJTlNFUlQgSU5UTyByMSBWQUxVRVMgKDEpOwpAQCAt MTg5OCw5ICsyMTk0LDExIEBAIFRBQkxFIHIxOwogU0VUIHJvd19zZWN1cml0eSA9IG9mZjsKIC0t IHRoZXNlIGFsbCBmYWlsLCB3b3VsZCBiZSBhZmZlY3RlZCBieSBSTFMKIFRBQkxFIHIxOworU0VM RUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZnJsc3RwZyBNQVRDSCAocjogcjEpIENPTFVNTlMgKHIu YSkpOwogVVBEQVRFIHIxIFNFVCBhID0gMTsKIERFTEVURSBGUk9NIHIxOwogCitEUk9QIFBST1BF UlRZIEdSQVBIIGZybHN0cGc7CiBEUk9QIFRBQkxFIHIxOwogCiAtLQpAQCAtMjE2Niw5ICsyNDY0 LDExIEBAIERST1AgVEFCTEUgcmVmX3RibDsKIENSRUFURSBUQUJMRSBybHNfdGJsIChhIGludCk7 CiBJTlNFUlQgSU5UTyBybHNfdGJsIFNFTEVDVCB4LzEwIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDEwMCkgeDsKIEFOQUxZWkUgcmxzX3RibDsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBsb3RwZyBW RVJURVggVEFCTEVTIChybHNfdGJsIEtFWSAoYSkpOwogCiBBTFRFUiBUQUJMRSBybHNfdGJsIEVO QUJMRSBST1cgTEVWRUwgU0VDVVJJVFk7CiBHUkFOVCBTRUxFQ1QgT04gcmxzX3RibCBUTyByZWdy ZXNzX3Jsc19hbGljZTsKK0dSQU5UIFNFTEVDVCBPTiBsb3RwZyBUTyByZWdyZXNzX3Jsc19hbGlj ZTsKIAogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIENSRUFU RSBGVU5DVElPTiBvcF9sZWFrKGludCwgaW50KSBSRVRVUk5TIGJvb2wKQEAgLTIxNzgsOSArMjQ3 OCwxMiBAQCBDUkVBVEUgT1BFUkFUT1IgPDw8IChwcm9jZWR1cmUgPSBvcF9sZWFrLCBsZWZ0YXJn ID0gaW50LCByaWdodGFyZyA9IGludCwKICAgICAgICAgICAgICAgICAgICAgIHJlc3RyaWN0ID0g c2NhbGFybHRzZWwpOwogU0VMRUNUICogRlJPTSBybHNfdGJsIFdIRVJFIGEgPDw8IDEwMDA7CiBF WFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gcmxzX3RibCBXSEVSRSBhIDw8PCAxMDAw IG9yIGEgPDw8IDkwMDsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGxvdHBnIE1BVENIIChy OiBybHNfdGJsKSBXSEVSRSByLmEgPDw8IDEwMDAgQ09MVU1OUyAoci5hKSk7CitTRUxFQ1QgKiBG Uk9NIEdSQVBIX1RBQkxFIChsb3RwZyBNQVRDSCAocjogcmxzX3RibCBXSEVSRSByLmEgPDw8IDEw MDApIENPTFVNTlMgKHIuYSkpOwogRFJPUCBPUEVSQVRPUiA8PDwgKGludCwgaW50KTsKIERST1Ag RlVOQ1RJT04gb3BfbGVhayhpbnQsIGludCk7CiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047 CitEUk9QIFBST1BFUlRZIEdSQVBIIGxvdHBnOwogRFJPUCBUQUJMRSBybHNfdGJsOwogCiAtLSBC dWcgIzE2MDA2OiB3aG9sZS1yb3cgVmFycyBpbiBhIHBvbGljeSBkb24ndCBwbGF5IG5pY2Ugd2l0 aCBzdWItc2VsZWN0cwotLSAKMi4zNC4xCgo= --00000000000015b3be062aa12bab Content-Type: text/x-patch; charset="US-ASCII"; name="0006-Property-collation-and-edge-vertex-link-sup-20250101.patch" Content-Disposition: attachment; filename="0006-Property-collation-and-edge-vertex-link-sup-20250101.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5dnsexw5 RnJvbSA5NWZhMTUyNzI0ZWQ0Mjg4OGQ4ODE2MTA0YWVjNTc2MzU4YTJjNzg0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBc2h1dG9zaCBCYXBhdCA8YXNodXRvc2guYmFwYXQub3NzQGdt YWlsLmNvbT4KRGF0ZTogTW9uLCAyOCBPY3QgMjAyNCAxNjozNjoyNyArMDUzMApTdWJqZWN0OiBb UEFUQ0ggNi85XSBQcm9wZXJ0eSBjb2xsYXRpb24gYW5kIGVkZ2UtdmVydGV4IGxpbmsgc3VwcG9y dAoKVGhlIGNvbW1pdCBoYXMgZm9sbG93aW5nIGNoYW5nZXMuCgoxLiBjb2xsYXRpb24gb2YgYSBw cm9wZXJ0eQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGUgdmFsdWVzIHdpdGggZGlmZmVy aW5nIGNvbGxhdGlvbnMgY2FuIG5vdCBiZSBjb2xsYXRlZC4gVGhpcyBtZWFucwp0aGF0IHdlIHdp bGwgbm90IGFibGUgdG8gY29tcGFyZSwgc29ydCwgb3Igb3JkZXIgdmFsdWVzIG9mIHByb3BlcnRp ZXMKd2l0aCB0aGUgc2FtZSBuYW1lIGlmIHRoZXkgaGF2ZSBkaWZmZXJlbnQgY29sbGF0aW9ucyBp biBkaWZmZXJlbnQKZWxlbWVudHMgb3IgZGlmZmVyZW50IGxhYmVscy4gIFRoaXMgcmVzdHJpY3Rz IHRoZSBwcm9wZXJ0eSdzIHVzYWdlIGluCmdyYXBoIHRhYmxlIHF1ZXJ5LiBIZW5jZSB0aGUgY29s bGF0aW9uIG9mIGFsbCB0aGUgcHJvcGVydGllcyB3aXRoIHRoZQpzYW1lIG5hbWUgbmVlZHMgdG8g YmUgdGhlIHNhbWUuIEVuZm9yY2UgdGhpcy4KCk9mdGVuIHRoZSBjb2xsYXRpb24gb2YgYSBwcm9w ZXJ0eSByZWZlcmVuY2UgaXMgcmVxdWlyZWQgYmVmb3JlCmdyYXBoX3RhYmxlIGlzIHJld3JpdHRl bi4gRm9yIGV4YW1wbGUsIGFzc2lnbl9xdWVyeV9jb2xsYXRpb24oKSBpcwpjYWxsZWQgZHVyaW5n IHRyYW5zZm9ybVNlbGVjdFN0bXQoKSB3aGljaCBpcyBjYWxsZWQgYmVmb3JlIGNhbGxpbmcKcmV3 cml0ZUdyYXBoVGFibGUoKS4gSGVuY2UgdGhlIGNvbGxhdGlvbiBvZiBhIHByb3BlcnR5IG5lZWRz IHRvIGJlCmFjY2Vzc2libGUgYmVmb3JlIGFueSBwcm9wZXJ0eSByZWZlcmVuY2UgaXMgYWNjZXNz ZWQuIEhlbmNlIHRoZQpjb2xsYXRpb24gb2YgYSBwcm9wZXJ0eSBpcyBzdG9yZWQgaW4gcGdfcHJv cGdyYXBoX3Byb3BlcnR5LgoKTm90ZTogVGhpcyBpcyBub3QgZXhwbGljaXRseSBzcGVjaWZpZWQg aW4gU2VjdGlvbiA5LjE1LCAiQ29uc2lzdGVuY3kKY2hlY2sgb2YgYSB0YWJ1bGFyIHByb3BlcnR5 IGdyYXBoIGRlc2NyaXB0b3IiLCBzeW50YXggcnVsZSA0LmMuaWlpLjIgb2YKU1FML1BHUSBzdGFu ZGFyZC4KCjIuIGNvbGxhdGlvbiBvZiBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGtleXMgb2YgYW4g ZWRnZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KSWYgY29sbGF0aW9ucyBvZiBlZGdlIGtleSBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgcmVmZXJl bmNlZCBrZXkgZGlmZmVyLAphbiBlZGdlIG1heSBlbmQgdXAgYmVpbmcgYWRqYWNlbnQgdG8gdW5k ZXNpcmVkIHZlcnRleC4gUHJvaGliaXQgc3VjaCBhCmNhc2Ugd2hlbiBrZXkgY29sdW1ucyBhcmUg ZXhwbGljaXRseSBzcGVjaWZpZWQuCgpXaGVuIGVkZ2UgYW5kIHZlcnRleCBrZXlzIGFyZSBkZXJp dmVkIGZyb20gdGhlIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQsCndlIGRvIG5vdCBjaGVjayBjb2xs YXRpb25zIGFnYWluIHNpbmNlIHRoZSBjb25zdHJhaW50IGl0c2VsZiBlbnN1cmVzCm9uZS10by1t YW55IGVkZ2UtdG8tdmVydGV4IG1hcHBpbmcuCgpOb3RlOiBUaGlzIGlzIG5vdCBzcGVjaWZpZWQg aW4gU2VjdGlvbiA5LjE0LCAiQ3JlYXRpb24gb2YgYW4gZWRnZSB0YWJsZQpkZXNjcmlwdG9yIi4K CjMuIEVkZ2UtdmVydGV4IGxpbmsgcXVhbHMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KV2hlbiBjcmVhdGluZyBhbiBlZGdlIGVsZW1lbnQgbWFrZSBzdXJlIHRoYXQg dGhlcmUgZXhpc3RzIGFuIGVxdWFsaXR5Cm9wZXJhdG9ycyB0aGF0IGNhbiBiZSB1c2VkIHRvIG1h dGNoIHZlcnRleCBhbmQgZWRnZSBrZXlzLiBGYWlsIHRoZSBEREwgaWYKc3VjaCBhbiBvcGVyYXRv ciBkb2VzIG5vdCBleGlzdC4gVXNlIHRoZSBzYW1lIGVxdWFsaXR5IG9wZXJhdG9ycyB0byBidWls ZAp2ZXJ0ZXgtZWRnZSBxdWFscyBpbiBidWlsZF9lZGdlX3ZlcnRleF9saW5rX3F1YWxzKCkuIEFs c28gYWRkIGEKZGVwZW5kZW5jeSBvZiB0aGUgZWRnZSBvbiB0aGUgZXF1YWxpdHkgb3BlcmF0b3Ig c28gdGhhdCBpdCBjYW4gbm90IGJlCmRyb3BwZWQgd2l0aG91dCBkcm9wcGluZyB0aGUgZWRnZS4K Ck5vdGUgZm9yIHJldmlld2VyczoKVGhlIGNvZGUgaW4gQVRBZGRGb3JlaWduS2V5Q29uc3RyYWlu dCgpIGxvb2tzIHVwIHRocmVlIGRpZmZlcmVudAplcXVhbGl0eSBvcGVyYXRvcnMgYW5kIGl0J3Mg ZGlmZmljdWx0IHRvIHNlcGFyYXRlIHRoZSBjb2RlIGxvb2tpbmcgdXAKanVzdCBQSz1GSyBvcGVy YXRvcnMuIFNvIGNvdWxkIG5vdCBtb3ZlIHNvbWUgY29tbW9uIGNvZGUgdG8gYSBmdW5jdGlvbgp3 aGljaCBjYW4gYmUgdXNlZCBhdCBib3RoIHBsYWNlcy4KCjQuIFRlc3RzCi0tLS0tLS0tCkFkZHMg dGVzdHMgZm9yIGFib3ZlIGl0ZW1zLgoKVGhlIGNvbGxhdGlvbiB0ZXN0cywgdGVzdCB0aGF0Cgph LiB0aGUgY29sbGF0aW9uIGlzIGNvcnJlY3RseSBzZXQgZm9yIHRoZSBjb2x1bW5zIHByb2plY3Rl ZCBieQpHUkFQSF9UQUJMRSBjbGF1c2UuCgpiLiBxdWFscyBjb3JyZXNwb25kaW5nIHRvIHRoZSB2 YXJpb3VzIFdIRVJFIGNsYXVzZSBpbiBHUkFQSF9UQUJMRSBoYXZlCmNvcnJlY3QgY29sbGF0aW9u IHNldAoKYy4gcXVhbHMgY29ycmVzcG9uZGluZyB0byB0aGUgZWRnZS12ZXJ0ZXggbGlua3MgaGF2 ZSBjb3JyZWN0IGNvbGxhdGlvbgpzZXQuCgpOb3RlOiBUaGVzZSB0ZXN0cyBjb21iaW5lZCB3aXRo IHRlc3RzIGluIGNvbGxhdGUuc3FsIGFuZCBvdGhlciBjb2xsYXRpb24Kc3BlY2lmaWMgdGVzdHMg aW5kaWNhdGUgdGhhdCB3ZSBoYXZlIGNvdmVyZWQgYWxsIHNjZW5hcmlvcyB0ZXN0aW5nCmNvbGxh dGlvbnMgaW4gdGhlIGNvbnRleHQgb2YgR1JBUEhfVEFCTEUuIE1vcmUgY29sbGF0aW9uIHNwZWNp ZmljIHRlc3RzCm1heSBiZSBhZGRlZCBhcyByZXF1aXJlZC4KCkF1dGhvcjogQXNodXRvc2ggQmFw YXQKLS0tCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAg NDkgKysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEuc3FsICAgIHwg ICA4ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9wcm9wZ3JhcGhjbWRzLmMgICAgICAgICAgfCAy MjIgKysrKysrKysrKysrKy0tCiBzcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyAgICAgICAg ICAgICAgICAgfCAgIDUgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRlLmMgICAg ICAgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2dyYXBodGFibGUuYyAg ICAgICAgIHwgIDE2ICstCiBzcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMg ICAgICAgfCAxMjIgKysrKysrLS0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX2Vs ZW1lbnQuaCAgICB8ICAxMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb3BncmFwaF9wcm9w ZXJ0eS5oICAgfCAgIDYgKwogc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAg ICAgICAgIHwgICAyICsKIC4uLi9leHBlY3RlZC9jcmVhdGVfcHJvcGVydHlfZ3JhcGgub3V0ICAg ICAgICB8IDI2MSArKysrKysrKysrKysrKystLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv Z3JhcGhfdGFibGUub3V0ICAgICB8IDExMSArKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9vaWRqb2lucy5vdXQgICAgICAgIHwgICAxICsKIC4uLi9yZWdyZXNzL3NxbC9jcmVhdGVf cHJvcGVydHlfZ3JhcGguc3FsICAgICB8ICA3NyArKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2dyYXBoX3RhYmxlLnNxbCAgICAgICAgICB8ICA0MSArKy0KIDE1IGZpbGVzIGNoYW5nZWQsIDgx NiBpbnNlcnRpb25zKCspLCAxMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCAzMzUx NTdmZDc1OC4uYjgxYWE2YWQzNTQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC02NDQzLDYgKzY0NDMsMTgg QEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3Jl cGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8 L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ cGdlc3JjZXFvcDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZFtdPC90eXBlPgorICAgICAgIChyZWZl cmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctb3BlcmF0b3IiPjxzdHJ1Y3RuYW1lPnBn X29wZXJhdG9yPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0Zmll bGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRm9yIGFuIGVkZ2UsIGFu IGFycmF5IG9mIGVxdWFsaXR5IG9wZXJhdG9ycyBmb3IKKyAgICAgICA8c3RydWN0ZmllbGQ+cGdl c3JjcmVmPC9zdHJ1Y3RmaWVsZD4gPQorICAgICAgIDxzdHJ1Y3RmaWVsZD5wZ2VzcmNrZXk8L3N0 cnVjdGZpZWxkPiBjb21wYXJpc29uLiAoTnVsbCBmb3IgYSB2ZXJ0ZXguKQorICAgICAgIDwvcGFy YT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KICAg ICAgICA8c3RydWN0ZmllbGQ+cGdlZGVzdGtleTwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDJbXTwv dHlwZT4KQEAgLTY0NzEsNiArNjQ4MywxOCBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4m bHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAg ICAgIGFuZCB0aGUgZGVzdGluYXRpb24gdmVydGV4LgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD5wZ2VkZXN0ZXFvcDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZFtdPC90eXBlPgorICAgICAg IChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctb3BlcmF0b3IiPjxzdHJ1Y3Ru YW1lPnBnX29wZXJhdG9yPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3Ry dWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRm9yIGFuIGVk Z2UsIGFuIGFycmF5IG9mIGVxdWFsaXR5IG9wZXJhdG9ycyBmb3IKKyAgICAgICA8c3RydWN0Zmll bGQ+cGdlZGVzdHJlZjwvc3RydWN0ZmllbGQ+ID0KKyAgICAgICA8c3RydWN0ZmllbGQ+cGdlZGVz dGtleTwvc3RydWN0ZmllbGQ+IGNvbXBhcmlzb24uIChOdWxsIGZvciBhIHZlcnRleC4pCisgICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91 cD4KICAgPC90YWJsZT4KQEAgLTY3NDIsNiArNjc2NiwzMSBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBs YWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJs ZT4mbAogICAgICAgIG11bHRpcGxlIHRpbWVzIGluIGRpZmZlcmVudCBlbGVtZW50cyBhbmQgbGFi ZWxzLikKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGdwdHlwbW9kPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+aW50NDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg PGxpdGVyYWw+dHlwbW9kPC9saXRlcmFsPiB0byBiZSBhcHBsaWVkIHRvIHRoZSBkYXRhIHR5cGUg b2YgdGhpcyBwcm9wZXJ0eS4KKyAgICAgIChUaGlzIGlzIHJlcXVpcmVkIHRvIGJlIGZpeGVkIGZv ciBhIGdpdmVuIHByb3BlcnR5IGluIGEgcHJvcGVydHkgZ3JhcGgsCisgICAgICBldmVuIGlmIHRo ZSBwcm9wZXJ0eSBpcyBkZWZpbmVkIG11bHRpcGxlIHRpbWVzIGluIGRpZmZlcmVudCBlbGVtZW50 cyBhbmQKKyAgICAgIGxhYmVscy4pCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBncGNv bGxhdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNl cyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNvbGxhdGlvbiI+PHN0cnVjdG5hbWU+cGdfY29s bGF0aW9uPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+ KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIGRlZmluZWQgY29sbGF0 aW9uIG9mIHRoaXMgcHJvcGVydHksIG9yIHplcm8gaWYgdGhlIHByb3BlcnR5IGlzIG5vdCBvZgor ICAgICAgIGEgY29sbGF0YWJsZSBkYXRhIHR5cGUuICAoVGhpcyBpcyByZXF1aXJlZCB0byBiZSBm aXhlZCBmb3IgYSBnaXZlbgorICAgICAgIHByb3BlcnR5IGluIGEgcHJvcGVydHkgZ3JhcGgsIGV2 ZW4gaWYgdGhlIHByb3BlcnR5IGlzIGRlZmluZWQgbXVsdGlwbGUKKyAgICAgICB0aW1lcyBpbiBk aWZmZXJlbnQgZWxlbWVudHMgYW5kIGxhYmVscy4pCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CiAgICAgPC90Ym9keT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEuc3FsIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEuc3FsCmluZGV4IGQ2YjA4Zjk5MTM3Li5j Yzk0MzM5YWEyNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9z Y2hlbWEuc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5mb3JtYXRpb25fc2NoZW1hLnNx bApAQCAtMzI3MSw5ICszMjcxLDkgQEAgQ1JFQVRFIFZJRVcgcGdfcHJvcGVydHlfZGF0YV90eXBl cyBBUwogICAgICAgICAgICBDQVNUKG51bGwgQVMgc3FsX2lkZW50aWZpZXIpIEFTIGNoYXJhY3Rl cl9zZXRfY2F0YWxvZywKICAgICAgICAgICAgQ0FTVChudWxsIEFTIHNxbF9pZGVudGlmaWVyKSBB UyBjaGFyYWN0ZXJfc2V0X3NjaGVtYSwKICAgICAgICAgICAgQ0FTVChudWxsIEFTIHNxbF9pZGVu dGlmaWVyKSBBUyBjaGFyYWN0ZXJfc2V0X25hbWUsCi0gICAgICAgICAgIENBU1QobnVsbCBBUyBz cWxfaWRlbnRpZmllcikgQVMgY29sbGF0aW9uX2NhdGFsb2csIC0tIEZJWE1FCi0gICAgICAgICAg IENBU1QobnVsbCBBUyBzcWxfaWRlbnRpZmllcikgQVMgY29sbGF0aW9uX3NjaGVtYSwgLS0gRklY TUUKLSAgICAgICAgICAgQ0FTVChudWxsIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBjb2xsYXRpb25f bmFtZSwgLS0gRklYTUUKKyAgICAgICAgICAgQ0FTVChjdXJyZW50X2RhdGFiYXNlKCkgQVMgc3Fs X2lkZW50aWZpZXIpIEFTIGNvbGxhdGlvbl9jYXRhbG9nLAorICAgICAgICAgICBDQVNUKG5jLm5z cG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFTIGNvbGxhdGlvbl9zY2hlbWEsCisgICAgICAgICAg IENBU1QoYy5jb2xsbmFtZSBBUyBzcWxfaWRlbnRpZmllcikgQVMgY29sbGF0aW9uX25hbWUsCiAg ICAgICAgICAgIENBU1QobnVsbCBBUyBjYXJkaW5hbF9udW1iZXIpIEFTIG51bWVyaWNfcHJlY2lz aW9uLAogICAgICAgICAgICBDQVNUKG51bGwgQVMgY2FyZGluYWxfbnVtYmVyKSBBUyBudW1lcmlj X3ByZWNpc2lvbl9yYWRpeCwKICAgICAgICAgICAgQ0FTVChudWxsIEFTIGNhcmRpbmFsX251bWJl cikgQVMgbnVtZXJpY19zY2FsZSwKQEAgLTMyOTcsNiArMzI5Nyw4IEBAIENSRUFURSBWSUVXIHBn X3Byb3BlcnR5X2RhdGFfdHlwZXMgQVMKICAgICAgICAgIEpPSU4gKHBnX3R5cGUgdCBKT0lOIHBn X25hbWVzcGFjZSBudCBPTiAodC50eXBuYW1lc3BhY2UgPSBudC5vaWQpKSBPTiBwZ3AucGdwdHlw aWQgPSB0Lm9pZAogICAgICAgICAgTEVGVCBKT0lOIChwZ190eXBlIGJ0IEpPSU4gcGdfbmFtZXNw YWNlIG5idCBPTiAoYnQudHlwbmFtZXNwYWNlID0gbmJ0Lm9pZCkpCiAgICAgICAgICAgIE9OICh0 LnR5cHR5cGUgPSAnZCcgQU5EIHQudHlwYmFzZXR5cGUgPSBidC5vaWQpCisgICAgICAgICBMRUZU IEpPSU4gKHBnX2NvbGxhdGlvbiBjIEpPSU4gcGdfbmFtZXNwYWNlIG5jIE9OIChjLmNvbGxuYW1l c3BhY2UgPSBuYy5vaWQpKQorICAgICAgICAgICBPTiBwZ3AucGdwY29sbGF0aW9uID0gYy5vaWQg QU5EIChuYy5uc3BuYW1lLCBjLmNvbGxuYW1lKSA8PiAoJ3BnX2NhdGFsb2cnLCAnZGVmYXVsdCcp CiAKICAgICBXSEVSRSBwZy5yZWxraW5kID0gJ2cnCiAgICAgICAgICAgQU5EIChOT1QgcGdfaXNf b3RoZXJfdGVtcF9zY2hlbWEobnBnLm9pZCkpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9wcm9wZ3JhcGhjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcm9wZ3JhcGhjbWRz LmMKaW5kZXggYmYzMzNkZDJkYzIuLmMyNjk3NmIyYTJhIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9wcm9wZ3JhcGhjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJv cGdyYXBoY21kcy5jCkBAIC0xNCwyMCArMTQsMjcgQEAKIAogI2luY2x1ZGUgImFjY2Vzcy9nZW5h bS5oIgogI2luY2x1ZGUgImFjY2Vzcy9odHVwX2RldGFpbHMuaCIKKyNpbmNsdWRlICJhY2Nlc3Mv bmJ0cmVlLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3RhYmxlLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3hh Y3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL2NhdGFsb2cuaCIKICNpbmNsdWRlICJjYXRhbG9nL2lu ZGV4aW5nLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX2NsYXNzLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb25fZC5oIgorI2lu Y2x1ZGUgImNhdGFsb2cvcGdfb3BlcmF0b3JfZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJv cGdyYXBoX2VsZW1lbnQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9lbGVtZW50 X2xhYmVsLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhfbGFiZWwuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eS5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfcHJvcGdyYXBoX3Byb3BlcnR5LmgiCisjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVt LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJvcGdyYXBoY21kcy5oIgogI2luY2x1ZGUgImNvbW1h bmRzL3RhYmxlY21kcy5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgorI2luY2x1ZGUg InBhcnNlci9wYXJzZV9jb2VyY2UuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfY29sbGF0ZS5o IgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9vcGVyLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNl X3JlbGF0aW9uLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3RhcmdldC5oIgogI2luY2x1ZGUg InV0aWxzL2FycmF5LmgiCkBAIC01MiwxMiArNTksMTQgQEAgc3RydWN0IGVsZW1lbnRfaW5mbwog CU9pZAkJCXNyY3JlbGlkOwogCUFycmF5VHlwZSAgKnNyY2tleTsKIAlBcnJheVR5cGUgICpzcmNy ZWY7CisJQXJyYXlUeXBlICAqc3JjZXFvcDsKIAogCWNoYXIJICAgKmRlc3R2ZXJ0ZXg7CiAJT2lk CQkJZGVzdHZlcnRleGlkOwogCU9pZAkJCWRlc3RyZWxpZDsKIAlBcnJheVR5cGUgICpkZXN0a2V5 OwogCUFycmF5VHlwZSAgKmRlc3RyZWY7CisJQXJyYXlUeXBlICAqZGVzdGVxb3A7CiAKIAlMaXN0 CSAgICpsYWJlbHM7CiB9OwpAQCAtNjgsOCArNzcsOCBAQCBzdGF0aWMgQXJyYXlUeXBlICpwcm9w Z3JhcGhfZWxlbWVudF9nZXRfa2V5KFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgTGlzdCAqa2V5 Ywogc3RhdGljIHZvaWQgcHJvcGdyYXBoX2VkZ2VfZ2V0X3JlZl9rZXlzKFBhcnNlU3RhdGUgKnBz dGF0ZSwgY29uc3QgTGlzdCAqa2V5Y29scywgY29uc3QgTGlzdCAqcmVmY29scywKIAkJCQkJCQkJ CQlSZWxhdGlvbiBlZGdlX3JlbCwgUmVsYXRpb24gcmVmX3JlbCwKIAkJCQkJCQkJCQljb25zdCBj aGFyICphbGlhc25hbWUsIGludCBsb2NhdGlvbiwgY29uc3QgY2hhciAqdHlwZSwKLQkJCQkJCQkJ CQlBcnJheVR5cGUgKipvdXRrZXksIEFycmF5VHlwZSAqKm91dHJlZik7Ci1zdGF0aWMgQXJyYXlU eXBlICphcnJheV9mcm9tX2NvbHVtbl9saXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgTGlz dCAqY29sbmFtZXMsIGludCBsb2NhdGlvbiwgUmVsYXRpb24gZWxlbWVudF9yZWwpOworCQkJCQkJ CQkJCUFycmF5VHlwZSAqKm91dGtleSwgQXJyYXlUeXBlICoqb3V0cmVmLCBBcnJheVR5cGUgKipv dXRlcW9wKTsKK3N0YXRpYyBBdHRyTnVtYmVyICphcnJheV9mcm9tX2NvbHVtbl9saXN0KFBhcnNl U3RhdGUgKnBzdGF0ZSwgY29uc3QgTGlzdCAqY29sbmFtZXMsIGludCBsb2NhdGlvbiwgUmVsYXRp b24gZWxlbWVudF9yZWwpOwogc3RhdGljIEFycmF5VHlwZSAqYXJyYXlfZnJvbV9hdHRudW1zKGlu dCBudW1hdHRycywgY29uc3QgQXR0ck51bWJlciAqYXR0bnVtcyk7CiBzdGF0aWMgT2lkCWluc2Vy dF9lbGVtZW50X3JlY29yZChPYmplY3RBZGRyZXNzIHBnYWRkcmVzcywgc3RydWN0IGVsZW1lbnRf aW5mbyAqZWluZm8pOwogc3RhdGljIE9pZAlpbnNlcnRfbGFiZWxfcmVjb3JkKE9pZCBncmFwaGlk LCBPaWQgcGVvaWQsIGNvbnN0IGNoYXIgKmxhYmVsKTsKQEAgLTIxNywxMCArMjI2LDEwIEBAIENy ZWF0ZVByb3BHcmFwaChQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0IENyZWF0ZVByb3BHcmFwaFN0 bXQgKnN0bXQpCiAKIAkJcHJvcGdyYXBoX2VkZ2VfZ2V0X3JlZl9rZXlzKHBzdGF0ZSwgZWRnZS0+ ZXNyY2tleSwgZWRnZS0+ZXNyY3ZlcnRleGNvbHMsIHJlbCwgc3JjcmVsLAogCQkJCQkJCQkJZWlu Zm8tPmFsaWFzbmFtZSwgZWRnZS0+bG9jYXRpb24sICJTT1VSQ0UiLAotCQkJCQkJCQkJJmVpbmZv LT5zcmNrZXksICZlaW5mby0+c3JjcmVmKTsKKwkJCQkJCQkJCSZlaW5mby0+c3Jja2V5LCAmZWlu Zm8tPnNyY3JlZiwgJmVpbmZvLT5zcmNlcW9wKTsKIAkJcHJvcGdyYXBoX2VkZ2VfZ2V0X3JlZl9r ZXlzKHBzdGF0ZSwgZWRnZS0+ZWRlc3RrZXksIGVkZ2UtPmVkZXN0dmVydGV4Y29scywgcmVsLCBk ZXN0cmVsLAogCQkJCQkJCQkJZWluZm8tPmFsaWFzbmFtZSwgZWRnZS0+bG9jYXRpb24sICJERVNU SU5BVElPTiIsCi0JCQkJCQkJCQkmZWluZm8tPmRlc3RrZXksICZlaW5mby0+ZGVzdHJlZik7CisJ CQkJCQkJCQkmZWluZm8tPmRlc3RrZXksICZlaW5mby0+ZGVzdHJlZiwgJmVpbmZvLT5kZXN0ZXFv cCk7CiAKIAkJZWluZm8tPmxhYmVscyA9IGVkZ2UtPmxhYmVsczsKIApAQCAtMzM2LDcgKzM0NSw4 IEBAIHByb3BncmFwaF9lbGVtZW50X2dldF9rZXkoUGFyc2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBM aXN0ICprZXlfY2xhdXNlLCBSZWxhdGlvbiBlCiAJfQogCWVsc2UKIAl7Ci0JCWEgPSBhcnJheV9m cm9tX2NvbHVtbl9saXN0KHBzdGF0ZSwga2V5X2NsYXVzZSwgbG9jYXRpb24sIGVsZW1lbnRfcmVs KTsKKwkJYSA9IGFycmF5X2Zyb21fYXR0bnVtcyhsaXN0X2xlbmd0aChrZXlfY2xhdXNlKSwKKwkJ CQkJCQkgICBhcnJheV9mcm9tX2NvbHVtbl9saXN0KHBzdGF0ZSwga2V5X2NsYXVzZSwgbG9jYXRp b24sIGVsZW1lbnRfcmVsKSk7CiAJfQogCiAJcmV0dXJuIGE7CkBAIC0zNjAsOCArMzcwLDE1IEBA IHN0YXRpYyB2b2lkCiBwcm9wZ3JhcGhfZWRnZV9nZXRfcmVmX2tleXMoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBjb25zdCBMaXN0ICprZXljb2xzLCBjb25zdCBMaXN0ICpyZWZjb2xzLAogCQkJCQkJCVJl bGF0aW9uIGVkZ2VfcmVsLCBSZWxhdGlvbiByZWZfcmVsLAogCQkJCQkJCWNvbnN0IGNoYXIgKmFs aWFzbmFtZSwgaW50IGxvY2F0aW9uLCBjb25zdCBjaGFyICp0eXBlLAotCQkJCQkJCUFycmF5VHlw ZSAqKm91dGtleSwgQXJyYXlUeXBlICoqb3V0cmVmKQorCQkJCQkJCUFycmF5VHlwZSAqKm91dGtl eSwgQXJyYXlUeXBlICoqb3V0cmVmLCBBcnJheVR5cGUgKipvdXRlcW9wKQogeworCWludAkJCW5r ZXlzOworCUF0dHJOdW1iZXIgKmtleWF0dG51bXM7CisJQXR0ck51bWJlciAqcmVmYXR0bnVtczsK KwlPaWQJCSAgICprZXllcW9wczsKKwlEYXR1bQkgICAqZGF0dW1zOworCWludAkJCWk7CisKIAlB c3NlcnQoKGtleWNvbHMgJiYgcmVmY29scykgfHwgKCFrZXljb2xzICYmICFyZWZjb2xzKSk7CiAK IAlpZiAoa2V5Y29scykKQEAgLTM3Miw4ICszODksODkgQEAgcHJvcGdyYXBoX2VkZ2VfZ2V0X3Jl Zl9rZXlzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgTGlzdCAqa2V5Y29scywgY29uc3QgTGlz dAogCQkJCQllcnJtc2coIm1pc21hdGNoaW5nIG51bWJlciBvZiBjb2x1bW5zIGluICVzIHZlcnRl eCBkZWZpbml0aW9uIG9mIGVkZ2UgXCIlc1wiIiwgdHlwZSwgYWxpYXNuYW1lKSwKIAkJCQkJcGFy c2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKTsKIAotCQkqb3V0a2V5ID0gYXJyYXlf ZnJvbV9jb2x1bW5fbGlzdChwc3RhdGUsIGtleWNvbHMsIGxvY2F0aW9uLCBlZGdlX3JlbCk7Ci0J CSpvdXRyZWYgPSBhcnJheV9mcm9tX2NvbHVtbl9saXN0KHBzdGF0ZSwgcmVmY29scywgbG9jYXRp b24sIHJlZl9yZWwpOworCQlua2V5cyA9IGxpc3RfbGVuZ3RoKGtleWNvbHMpOworCQlrZXlhdHRu dW1zID0gYXJyYXlfZnJvbV9jb2x1bW5fbGlzdChwc3RhdGUsIGtleWNvbHMsIGxvY2F0aW9uLCBl ZGdlX3JlbCk7CisJCXJlZmF0dG51bXMgPSBhcnJheV9mcm9tX2NvbHVtbl9saXN0KHBzdGF0ZSwg cmVmY29scywgbG9jYXRpb24sIHJlZl9yZWwpOworCQlrZXllcW9wcyA9IHBhbGxvY19hcnJheShP aWQsIG5rZXlzKTsKKworCQlmb3IgKGkgPSAwOyBpIDwgbmtleXM7IGkrKykKKwkJeworCQkJT2lk CQkJa2V5dHlwZTsKKwkJCWludDMyCQlrZXl0eXBtb2Q7CisJCQlPaWQJCQlrZXljb2xsOworCQkJ T2lkCQkJcmVmdHlwZTsKKwkJCWludDMyCQlyZWZ0eXBtb2Q7CisJCQlPaWQJCQlyZWZjb2xsOwor CQkJT2lkCQkJb3BjOworCQkJT2lkCQkJb3BmOworCQkJU3RyYXRlZ3lOdW1iZXIgc3RyYXRlZ3k7 CisKKwkJCS8qCisJCQkgKiBMb29rdXAgZXF1YWxpdHkgb3BlcmF0b3IgdG8gYmUgdXNlZCBmb3Ig ZWRnZSBhbmQgdmVydGV4IGtleS4KKwkJCSAqIFZlcnRleCBrZXkgaXMgZXF1aXZhbGVudCB0byBw cmltYXJ5IGtleSBhbmQgZWRnZSBrZXkgaXMgc2ltaWxhcgorCQkJICogdG8gZm9yZWlnbiBrZXkg c2luY2UgZWRnZSBrZXkgcmVmZXJlbmNlcyB2ZXJ0ZXgga2V5LiBIZW5jZQorCQkJICogdmVydGV4 IGtleSBpcyB1c2VkIGFzIGxlZnQgb3BlcmFuZCBhbmQgZWRnZSBrZXkgaXMgdXNlZCBhcworCQkJ ICogcmlnaHQgb3BlcmFuZC4gVGhlIG1ldGhvZCB1c2VkIHRvIGZpbmQgdGhlIGVxdWFsaXR5IG9w ZXJhdG9ycworCQkJICogaXMgc2ltaWxhciB0byB0aGUgbWV0aG9kIHVzZWQgdG8gZmluZCBlcXVh bGl0eSBvcGVyYXRvcnMgZm9yCisJCQkgKiBGSy9QSyBjb21wYXJpc29uIGluIEFUQWRkRm9yZWln bktleUNvbnN0cmFpbnQoKSBleGNlcHQgdGhhdAorCQkJICogb3BjbGFzcyBvZiB0aGUgdGhlIHZl cnRleCBrZXkgdHlwZSBpcyB1c2VkIGFzIGEgc3RhcnRpbmcgcG9pbnQuCisJCQkgKiBTaW5jZSB3 ZSBuZWVkIG9ubHkgZXF1YWxpdHkgb3BlcmF0b3JzIHdlIHVzZSBib3RoIEJUIGFuZCBIQVNICisJ CQkgKiBzdHJhdGVnaWVzLgorCQkJICoKKwkJCSAqIElmIHRoZSByZXF1aXJlZCBvcGVyYXRvcnMg ZG8gbm90IGV4aXN0LCB3ZSBjYW4gbm90IGNvbnN0cnVjdAorCQkJICogcXVhbHMgbGlua2luZyBh biBlZGdlIHRvIGl0cyBhZGphY2VudCB2ZXJ0ZXhlcy4KKwkJCSAqLworCQkJZ2V0X2F0dHR5cGV0 eXBtb2Rjb2xsKFJlbGF0aW9uR2V0UmVsaWQoZWRnZV9yZWwpLCBrZXlhdHRudW1zW2ldLCAma2V5 dHlwZSwgJmtleXR5cG1vZCwgJmtleWNvbGwpOworCQkJZ2V0X2F0dHR5cGV0eXBtb2Rjb2xsKFJl bGF0aW9uR2V0UmVsaWQocmVmX3JlbCksIHJlZmF0dG51bXNbaV0sICZyZWZ0eXBlLCAmcmVmdHlw bW9kLCAmcmVmY29sbCk7CisJCQlrZXllcW9wc1tpXSA9IEludmFsaWRPaWQ7CisJCQlzdHJhdGVn eSA9IEJURXF1YWxTdHJhdGVneU51bWJlcjsKKwkJCW9wYyA9IEdldERlZmF1bHRPcENsYXNzKHJl ZnR5cGUsIEJUUkVFX0FNX09JRCk7CisJCQlpZiAoIU9pZElzVmFsaWQob3BjKSkKKwkJCXsKKwkJ CQlvcGMgPSBHZXREZWZhdWx0T3BDbGFzcyhyZWZ0eXBlLCBIQVNIX0FNX09JRCk7CisJCQkJc3Ry YXRlZ3kgPSBIVEVxdWFsU3RyYXRlZ3lOdW1iZXI7CisJCQl9CisJCQlpZiAoT2lkSXNWYWxpZChv cGMpKQorCQkJeworCQkJCW9wZiA9IGdldF9vcGNsYXNzX2ZhbWlseShvcGMpOworCQkJCWlmIChP aWRJc1ZhbGlkKG9wZikpCisJCQkJeworCQkJCQlrZXllcW9wc1tpXSA9IGdldF9vcGZhbWlseV9t ZW1iZXIob3BmLCByZWZ0eXBlLCBrZXl0eXBlLCBzdHJhdGVneSk7CisJCQkJCWlmICghT2lkSXNW YWxpZChrZXllcW9wc1tpXSkpCisJCQkJCXsKKwkJCQkJCS8qIExhc3QgcmVzb3J0LCBpbXBsaWNp dCBjYXN0LiAqLworCQkJCQkJaWYgKGNhbl9jb2VyY2VfdHlwZSgxLCAma2V5dHlwZSwgJnJlZnR5 cGUsIENPRVJDSU9OX0lNUExJQ0lUKSkKKwkJCQkJCQlrZXllcW9wc1tpXSA9IGdldF9vcGZhbWls eV9tZW1iZXIob3BmLCByZWZ0eXBlLCByZWZ0eXBlLCBzdHJhdGVneSk7CisJCQkJCX0KKwkJCQl9 CisJCQl9CisKKwkJCWlmICghT2lkSXNWYWxpZChrZXllcW9wc1tpXSkpCisJCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJZXJybXNn KCJubyBlcXVhbGl0eSBvcGVyYXRvciBleGlzdHMgZm9yICVzIGtleSBjb21wYXJpc29uIG9mIGVk Z2UgXCIlc1wiIiwKKwkJCQkJCQkgICB0eXBlLCBhbGlhc25hbWUpLAorCQkJCQkJcGFyc2VyX2Vy cnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKTsKKworCQkJLyoKKwkJCSAqIElmIGNvbGxhdGlv bnMgb2Yga2V5IGF0dHJpYnV0ZSBhbmQgcmVmZXJlbmNlZCBhdHRyaWJ1dGUgYXJlCisJCQkgKiBk aWZmZXJlbnQsIGFuIGVkZ2UgbWF5IGVuZCB1cCBiZWluZyBhZGphY2VudCB0byB1bmRlc2lyZWQK KwkJCSAqIHZlcnRleGVzLiAgUHJvaGliaXQgc3VjaCBhIGNhc2UuCisJCQkgKgorCQkJICogUEsv RksgYWxsb3dzIGRpZmZlcmVudCBjb2xsYXRpb25zIGFzIGxvbmcgYXMgdGhleSBhcmUKKwkJCSAq IGRldGVybWluaXN0aWMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuIEJ1dCB3ZSBjYW4gYmUg YSBiaXQKKwkJCSAqIHN0cmljdGVyIGhlcmUgYW5kIGZvbGxvdyBTUUwgc3RhbmRhcmQuCisJCQkg Ki8KKwkJCWlmIChrZXljb2xsICE9IHJlZmNvbGwgJiYKKwkJCQlrZXljb2xsICE9IERFRkFVTFRf Q09MTEFUSU9OX09JRCAmJiByZWZjb2xsICE9IERFRkFVTFRfQ09MTEFUSU9OX09JRCAmJgorCQkJ CU9pZElzVmFsaWQoa2V5Y29sbCkgJiYgT2lkSXNWYWxpZChyZWZjb2xsKSkKKwkJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQllcnJt c2coImNvbGxhdGlvbiBtaXNtYXRjaCBpbiAlcyBrZXkgb2YgZWRnZSBcIiVzXCI6ICVzIHZzLiAl cyIsCisJCQkJCQkJICAgdHlwZSwgYWxpYXNuYW1lLAorCQkJCQkJCSAgIGdldF9jb2xsYXRpb25f bmFtZShrZXljb2xsKSwgZ2V0X2NvbGxhdGlvbl9uYW1lKHJlZmNvbGwpKSwKKwkJCQkJCXBhcnNl cl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSk7CisJCX0KIAl9CiAJZWxzZQogCXsKQEAg LTQwMiwyNSArNTAwLDM0IEBAIHByb3BncmFwaF9lZGdlX2dldF9yZWZfa2V5cyhQYXJzZVN0YXRl ICpwc3RhdGUsIGNvbnN0IExpc3QgKmtleWNvbHMsIGNvbnN0IExpc3QKIAogCQlBc3NlcnQoZmsp OwogCi0JCSpvdXRrZXkgPSBhcnJheV9mcm9tX2F0dG51bXMoZmstPm5rZXlzLCBmay0+Y29ua2V5 KTsKLQkJKm91dHJlZiA9IGFycmF5X2Zyb21fYXR0bnVtcyhmay0+bmtleXMsIGZrLT5jb25ma2V5 KTsKKwkJbmtleXMgPSBmay0+bmtleXM7CisJCWtleWF0dG51bXMgPSBmay0+Y29ua2V5OworCQly ZWZhdHRudW1zID0gZmstPmNvbmZrZXk7CisJCWtleWVxb3BzID0gZmstPmNvbnBmZXFvcDsKIAl9 CisKKwkqb3V0a2V5ID0gYXJyYXlfZnJvbV9hdHRudW1zKG5rZXlzLCBrZXlhdHRudW1zKTsKKwkq b3V0cmVmID0gYXJyYXlfZnJvbV9hdHRudW1zKG5rZXlzLCByZWZhdHRudW1zKTsKKwlkYXR1bXMg PSAoRGF0dW0gKikgcGFsbG9jKHNpemVvZihEYXR1bSkgKiBua2V5cyk7CisJZm9yIChpID0gMDsg aSA8IG5rZXlzOyBpKyspCisJCWRhdHVtc1tpXSA9IE9iamVjdElkR2V0RGF0dW0oa2V5ZXFvcHNb aV0pOworCSpvdXRlcW9wID0gY29uc3RydWN0X2FycmF5X2J1aWx0aW4oZGF0dW1zLCBua2V5cywg T0lET0lEKTsKIH0KIAogLyoKICAqIENvbnZlcnQgbGlzdCBvZiBjb2x1bW4gbmFtZXMgaW4gdGhl IHNwZWNpZmllZCByZWxhdGlvbiBpbnRvIGFuIGFycmF5IG9mCiAgKiBjb2x1bW4gbnVtYmVycy4K ICAqLwotc3RhdGljIEFycmF5VHlwZSAqCitzdGF0aWMgQXR0ck51bWJlciAqCiBhcnJheV9mcm9t X2NvbHVtbl9saXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgTGlzdCAqY29sbmFtZXMsIGlu dCBsb2NhdGlvbiwgUmVsYXRpb24gZWxlbWVudF9yZWwpCiB7CiAJaW50CQkJbnVtYXR0cnM7Ci0J RGF0dW0JICAgKmF0dG51bXNkOworCUF0dHJOdW1iZXIgKmF0dG51bXM7CiAJaW50CQkJaTsKIAlM aXN0Q2VsbCAgICpsYzsKIAogCW51bWF0dHJzID0gbGlzdF9sZW5ndGgoY29sbmFtZXMpOwotCWF0 dG51bXNkID0gcGFsbG9jX2FycmF5KERhdHVtLCBudW1hdHRycyk7CisJYXR0bnVtcyA9IHBhbGxv Y19hcnJheShBdHRyTnVtYmVyLCBudW1hdHRycyk7CiAKIAlpID0gMDsKIAlmb3JlYWNoKGxjLCBj b2xuYW1lcykKQEAgLTQzNiwxNCArNTQzLDE0IEBAIGFycmF5X2Zyb21fY29sdW1uX2xpc3QoUGFy c2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBMaXN0ICpjb2xuYW1lcywgaW50IGxvY2F0aW9uLCBSCiAJ CQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4 aXN0IiwKIAkJCQkJCQljb2xuYW1lLCBnZXRfcmVsX25hbWUocmVsaWQpKSwKIAkJCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwotCQlhdHRudW1zZFtpKytdID0gSW50 MTZHZXREYXR1bShhdHRudW0pOworCQlhdHRudW1zW2krK10gPSBhdHRudW07CiAJfQogCiAJZm9y IChpbnQgaiA9IDA7IGogPCBudW1hdHRyczsgaisrKQogCXsKIAkJZm9yIChpbnQgayA9IGogKyAx OyBrIDwgbnVtYXR0cnM7IGsrKykKIAkJewotCQkJaWYgKERhdHVtR2V0SW50MTYoYXR0bnVtc2Rb al0pID09IERhdHVtR2V0SW50MTYoYXR0bnVtc2Rba10pKQorCQkJaWYgKGF0dG51bXNbal0gPT0g YXR0bnVtc1trXSkKIAkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9J TlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKIAkJCQkJCSBlcnJtc2coImdyYXBoIGtleSBjb2x1 bW5zIGxpc3QgbXVzdCBub3QgY29udGFpbiBkdXBsaWNhdGVzIiksCkBAIC00NTEsNyArNTU4LDcg QEAgYXJyYXlfZnJvbV9jb2x1bW5fbGlzdChQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0IExpc3Qg KmNvbG5hbWVzLCBpbnQgbG9jYXRpb24sIFIKIAkJfQogCX0KIAotCXJldHVybiBjb25zdHJ1Y3Rf YXJyYXlfYnVpbHRpbihhdHRudW1zZCwgbnVtYXR0cnMsIElOVDJPSUQpOworCXJldHVybiBhdHRu dW1zOwogfQogCiBzdGF0aWMgQXJyYXlUeXBlICoKQEAgLTQ4NCw2ICs1OTEsMjMgQEAgYXJyYXlf b2ZfYXR0bnVtc190b19vYmplY3RhZGRycyhPaWQgcmVsaWQsIEFycmF5VHlwZSAqYXJyLCBPYmpl Y3RBZGRyZXNzZXMgKmFkZHIKIAl9CiB9CiAKK3N0YXRpYyB2b2lkCithcnJheV9vZl9vcGVyc190 b19vYmplY3RhZGRycyhBcnJheVR5cGUgKmFyciwgT2JqZWN0QWRkcmVzc2VzICphZGRycykKK3sK KwlEYXR1bQkgICAqb3BlcnNkOworCWludAkJCW51bW9wZXJzOworCisJZGVjb25zdHJ1Y3RfYXJy YXlfYnVpbHRpbihhcnIsIE9JRE9JRCwgJm9wZXJzZCwgTlVMTCwgJm51bW9wZXJzKTsKKworCWZv ciAoaW50IGkgPSAwOyBpIDwgbnVtb3BlcnM7IGkrKykKKwl7CisJCU9iamVjdEFkZHJlc3MgcmVm ZXJlbmNlZDsKKworCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIE9wZXJhdG9yUmVsYXRp b25JZCwgRGF0dW1HZXRPYmplY3RJZChvcGVyc2RbaV0pKTsKKwkJYWRkX2V4YWN0X29iamVjdF9h ZGRyZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7CisJfQorfQorCiAvKgogICogSW5zZXJ0IGEgcmVj b3JkIGZvciBhbiBlbGVtZW50IGludG8gdGhlIHBnX3Byb3BncmFwaF9lbGVtZW50IGNhdGFsb2cu ICBBbHNvCiAgKiBpbnNlcnRzIGxhYmVscyBhbmQgcHJvcGVydGllcyBpbnRvIHRoZWlyIHJlc3Bl Y3RpdmUgY2F0YWxvZ3MuCkBAIC01MjQsNiArNjQ4LDEwIEBAIGluc2VydF9lbGVtZW50X3JlY29y ZChPYmplY3RBZGRyZXNzIHBnYWRkcmVzcywgc3RydWN0IGVsZW1lbnRfaW5mbyAqZWluZm8pCiAJ CXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXNyY3JlZiAtIDFdID0gUG9pbnRl ckdldERhdHVtKGVpbmZvLT5zcmNyZWYpOwogCWVsc2UKIAkJbnVsbHNbQW51bV9wZ19wcm9wZ3Jh cGhfZWxlbWVudF9wZ2VzcmNyZWYgLSAxXSA9IHRydWU7CisJaWYgKGVpbmZvLT5zcmNlcW9wKQor CQl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VzcmNlcW9wIC0gMV0gPSBQb2lu dGVyR2V0RGF0dW0oZWluZm8tPnNyY2Vxb3ApOworCWVsc2UKKwkJbnVsbHNbQW51bV9wZ19wcm9w Z3JhcGhfZWxlbWVudF9wZ2VzcmNlcW9wIC0gMV0gPSB0cnVlOwogCWlmIChlaW5mby0+ZGVzdGtl eSkKIAkJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlZGVzdGtleSAtIDFdID0g UG9pbnRlckdldERhdHVtKGVpbmZvLT5kZXN0a2V5KTsKIAllbHNlCkBAIC01MzIsNiArNjYwLDEw IEBAIGluc2VydF9lbGVtZW50X3JlY29yZChPYmplY3RBZGRyZXNzIHBnYWRkcmVzcywgc3RydWN0 IGVsZW1lbnRfaW5mbyAqZWluZm8pCiAJCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50 X3BnZWRlc3RyZWYgLSAxXSA9IFBvaW50ZXJHZXREYXR1bShlaW5mby0+ZGVzdHJlZik7CiAJZWxz ZQogCQludWxsc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZWRlc3RyZWYgLSAxXSA9IHRy dWU7CisJaWYgKGVpbmZvLT5kZXN0ZXFvcCkKKwkJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBoX2Vs ZW1lbnRfcGdlZGVzdGVxb3AgLSAxXSA9IFBvaW50ZXJHZXREYXR1bShlaW5mby0+ZGVzdGVxb3Ap OworCWVsc2UKKwkJbnVsbHNbQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VkZXN0ZXFvcCAt IDFdID0gdHJ1ZTsKIAogCXR1cCA9IGhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2NyKHJl bCksIHZhbHVlcywgbnVsbHMpOwogCUNhdGFsb2dUdXBsZUluc2VydChyZWwsIHR1cCk7CkBAIC01 NDksMTMgKzY4MSwxNyBAQCBpbnNlcnRfZWxlbWVudF9yZWNvcmQoT2JqZWN0QWRkcmVzcyBwZ2Fk ZHJlc3MsIHN0cnVjdCBlbGVtZW50X2luZm8gKmVpbmZvKQogCWFkZF9leGFjdF9vYmplY3RfYWRk cmVzcygmcmVmZXJlbmNlZCwgYWRkcnMpOwogCWFycmF5X29mX2F0dG51bXNfdG9fb2JqZWN0YWRk cnMoZWluZm8tPnJlbGlkLCBlaW5mby0+a2V5LCBhZGRycyk7CiAKLQkvKiBBZGQgZGVwZW5kZW5j aWVzIG9uIHZlcnRpY2VzICovCisJLyoKKwkgKiBBZGQgZGVwZW5kZW5jaWVzIG9uIHZlcnRpY2Vz IGFuZCBlcXVhbGl0eSBvcGVyYXRvcnMgdXNlZCBmb3Iga2V5CisJICogY29tcGFyaXNvbi4KKwkg Ki8KIAlpZiAoZWluZm8tPnNyY3ZlcnRleGlkKQogCXsKIAkJT2JqZWN0QWRkcmVzc1NldChyZWZl cmVuY2VkLCBQcm9wZ3JhcGhFbGVtZW50UmVsYXRpb25JZCwgZWluZm8tPnNyY3ZlcnRleGlkKTsK IAkJYWRkX2V4YWN0X29iamVjdF9hZGRyZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7CiAJCWFycmF5 X29mX2F0dG51bXNfdG9fb2JqZWN0YWRkcnMoZWluZm8tPnJlbGlkLCBlaW5mby0+c3Jja2V5LCBh ZGRycyk7CiAJCWFycmF5X29mX2F0dG51bXNfdG9fb2JqZWN0YWRkcnMoZWluZm8tPnNyY3JlbGlk LCBlaW5mby0+c3JjcmVmLCBhZGRycyk7CisJCWFycmF5X29mX29wZXJzX3RvX29iamVjdGFkZHJz KGVpbmZvLT5zcmNlcW9wLCBhZGRycyk7CiAJfQogCWlmIChlaW5mby0+ZGVzdHZlcnRleGlkKQog CXsKQEAgLTU2MywxMCArNjk5LDkgQEAgaW5zZXJ0X2VsZW1lbnRfcmVjb3JkKE9iamVjdEFkZHJl c3MgcGdhZGRyZXNzLCBzdHJ1Y3QgZWxlbWVudF9pbmZvICplaW5mbykKIAkJYWRkX2V4YWN0X29i amVjdF9hZGRyZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7CiAJCWFycmF5X29mX2F0dG51bXNfdG9f b2JqZWN0YWRkcnMoZWluZm8tPnJlbGlkLCBlaW5mby0+ZGVzdGtleSwgYWRkcnMpOwogCQlhcnJh eV9vZl9hdHRudW1zX3RvX29iamVjdGFkZHJzKGVpbmZvLT5kZXN0cmVsaWQsIGVpbmZvLT5kZXN0 cmVmLCBhZGRycyk7CisJCWFycmF5X29mX29wZXJzX3RvX29iamVjdGFkZHJzKGVpbmZvLT5kZXN0 ZXFvcCwgYWRkcnMpOwogCX0KIAotCS8qIFRPRE86IGRlcGVuZGVuY2llcyBvbiBlcXVhbGl0eSBv cGVyYXRvcnMsIGxpa2UgZm9yIGZvcmVpZ24ga2V5cyAqLwotCiAJcmVjb3JkX29iamVjdF9hZGRy ZXNzX2RlcGVuZGVuY2llcygmbXlzZWxmLCBhZGRycywgREVQRU5ERU5DWV9OT1JNQUwpOwogCiAJ dGFibGVfY2xvc2UocmVsLCBOb0xvY2spOwpAQCAtNzY2LDYgKzkwMSw3IEBAIGluc2VydF9wcm9w ZXJ0eV9yZWNvcmRzKE9pZCBncmFwaGlkLCBPaWQgZWxsYWJlbG9pZCwgT2lkIHBnZXJlbGlkLCBj b25zdCBQcm9wR3JhCiAJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOwogCiAJdHAgPSB0cmFuc2Zv cm1UYXJnZXRMaXN0KHBzdGF0ZSwgcHJvcGxpc3QsIEVYUFJfS0lORF9QUk9QR1JBUEhfUFJPUEVS VFkpOworCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0YXRlLCAoTm9kZSAqKSB0cCk7CiAKIAlm b3JlYWNoKGxjLCB0cCkKIAl7CkBAIC03ODQsOSArOTIwLDE1IEBAIGluc2VydF9wcm9wZXJ0eV9y ZWNvcmQoT2lkIGdyYXBoaWQsIE9pZCBlbGxhYmVsb2lkLCBPaWQgcGdlcmVsaWQsIGNvbnN0IGNo YXIgKnByCiB7CiAJT2lkCQkJcHJvcG9pZDsKIAlPaWQJCQlleHBydHlwaWQ7CisJaW50MzIJCWV4 cHJ0eXBtb2Q7CisJT2lkCQkJZXhwcmNvbGxhdGlvbjsKIAlPaWQJCQlwcm9wdHlwaWQ7CisJaW50 MzIJCXByb3B0eXBtb2Q7CisJT2lkCQkJcHJvcGNvbGxhdGlvbjsKIAogCWV4cHJ0eXBpZCA9IGV4 cHJUeXBlKChjb25zdCBOb2RlICopIGV4cHIpOworCWV4cHJjb2xsYXRpb24gPSBleHByQ29sbGF0 aW9uKChjb25zdCBOb2RlICopIGV4cHIpOworCWV4cHJ0eXBtb2QgPSBleHByVHlwbW9kKChjb25z dCBOb2RlICopIGV4cHIpOwogCiAJLyoKIAkgKiBJbnNlcnQgaW50byBwZ19wcm9wZ3JhcGhfcHJv cGVydHkgaWYgbm90IGFscmVhZHkgZXhpc3RpbmcuCkBAIC04MDMsNiArOTQ1LDggQEAgaW5zZXJ0 X3Byb3BlcnR5X3JlY29yZChPaWQgZ3JhcGhpZCwgT2lkIGVsbGFiZWxvaWQsIE9pZCBwZ2VyZWxp ZCwgY29uc3QgY2hhciAqcHIKIAkJT2JqZWN0QWRkcmVzcyByZWZlcmVuY2VkOwogCiAJCXByb3B0 eXBpZCA9IGV4cHJ0eXBpZDsKKwkJcHJvcHR5cG1vZCA9IGV4cHJ0eXBtb2Q7CisJCXByb3Bjb2xs YXRpb24gPSBleHByY29sbGF0aW9uOwogCiAJCXJlbCA9IHRhYmxlX29wZW4oUHJvcGdyYXBoUHJv cGVydHlSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKIApAQCAtODEyLDYgKzk1Niw4IEBA IGluc2VydF9wcm9wZXJ0eV9yZWNvcmQoT2lkIGdyYXBoaWQsIE9pZCBlbGxhYmVsb2lkLCBPaWQg cGdlcmVsaWQsIGNvbnN0IGNoYXIgKnByCiAJCW5hbWVzdHJjcHkoJnByb3BuYW1lZGF0YSwgcHJv cG5hbWUpOwogCQl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfcHJvcGVydHlfcGdwbmFtZSAtIDFd ID0gTmFtZUdldERhdHVtKCZwcm9wbmFtZWRhdGEpOwogCQl2YWx1ZXNbQW51bV9wZ19wcm9wZ3Jh cGhfcHJvcGVydHlfcGdwdHlwaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0ocHJvcHR5cGlkKTsK KwkJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBoX3Byb3BlcnR5X3BncHR5cG1vZCAtIDFdID0gSW50 MzJHZXREYXR1bShwcm9wdHlwbW9kKTsKKwkJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBoX3Byb3Bl cnR5X3BncGNvbGxhdGlvbiAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShwcm9wY29sbGF0aW9uKTsK IAogCQl0dXAgPSBoZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNjcihyZWwpLCB2YWx1ZXMs IG51bGxzKTsKIAkJQ2F0YWxvZ1R1cGxlSW5zZXJ0KHJlbCwgdHVwKTsKQEAgLTgyOCw3ICs5NzQs MTMgQEAgaW5zZXJ0X3Byb3BlcnR5X3JlY29yZChPaWQgZ3JhcGhpZCwgT2lkIGVsbGFiZWxvaWQs IE9pZCBwZ2VyZWxpZCwgY29uc3QgY2hhciAqcHIKIAl9CiAJZWxzZQogCXsKLQkJcHJvcHR5cGlk ID0gR2V0U3lzQ2FjaGVPaWQxKFBST1BHUkFQSFBST1BPSUQsIEFudW1fcGdfcHJvcGdyYXBoX3By b3BlcnR5X3BncHR5cGlkLCBPYmplY3RJZEdldERhdHVtKHByb3BvaWQpKTsKKwkJSGVhcFR1cGxl CXBncHR1cCA9IFNlYXJjaFN5c0NhY2hlMShQUk9QR1JBUEhQUk9QT0lELCBPYmplY3RJZEdldERh dHVtKHByb3BvaWQpKTsKKwkJRm9ybV9wZ19wcm9wZ3JhcGhfcHJvcGVydHkgcGdwZm9ybSA9IChG b3JtX3BnX3Byb3BncmFwaF9wcm9wZXJ0eSkgR0VUU1RSVUNUKHBncHR1cCk7CisKKwkJcHJvcHR5 cGlkID0gcGdwZm9ybS0+cGdwdHlwaWQ7CisJCXByb3B0eXBtb2QgPSBwZ3Bmb3JtLT5wZ3B0eXBt b2Q7CisJCXByb3Bjb2xsYXRpb24gPSBwZ3Bmb3JtLT5wZ3Bjb2xsYXRpb247CisJCVJlbGVhc2VT eXNDYWNoZShwZ3B0dXApOwogCX0KIAogCS8qCkBAIC04NDUsNiArOTk3LDMyIEBAIGluc2VydF9w cm9wZXJ0eV9yZWNvcmQoT2lkIGdyYXBoaWQsIE9pZCBlbGxhYmVsb2lkLCBPaWQgcGdlcmVsaWQs IGNvbnN0IGNoYXIgKnByCiAJCQkJZXJyZGV0YWlsKCJJbiBhIHByb3BlcnR5IGdyYXBoLCBhIHBy b3BlcnR5IG9mIHRoZSBzYW1lIG5hbWUgaGFzIHRvIGhhdmUgdGhlIHNhbWUgZGF0YSB0eXBlIGlu IGVhY2ggbGFiZWwuIikpOwogCX0KIAorCS8qIFNpbWlsYXJseSBmb3IgY29sbGF0aW9uICovCisJ aWYgKHByb3Bjb2xsYXRpb24gIT0gZXhwcmNvbGxhdGlvbikKKwl7CisJCWVyZXBvcnQoRVJST1Is CisJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJZXJybXNnKCJwcm9wZXJ0 eSBcIiVzXCIgY29sbGF0aW9uIG1pc21hdGNoOiAlcyB2cy4gJXMiLAorCQkJCQkgICBwcm9wbmFt ZSwgZ2V0X2NvbGxhdGlvbl9uYW1lKHByb3Bjb2xsYXRpb24pLCBnZXRfY29sbGF0aW9uX25hbWUo ZXhwcmNvbGxhdGlvbikpLAorCQkJCWVycmRldGFpbCgiSW4gYSBwcm9wZXJ0eSBncmFwaCwgYSBw cm9wZXJ0eSBvZiB0aGUgc2FtZSBuYW1lIGhhcyB0byBoYXZlIHRoZSBzYW1lIGNvbGxhdGlvbiBp biBlYWNoIGxhYmVsLiIpKTsKKwl9CisKKwkvKgorCSAqIEFuZCB0eXBtb2QuIEl0IGRvZXMgbm90 IHNlZW0gdG8gYmUgbmVjZXNzYXJ5IHRvIGVuZm9yY2UgdHlwbW9kCisJICogY29uc2lzdGVuY3kg YWNyb3NzIHByb3BlcnRpZXMgd2l0aCB0aGUgc2FtZSBuYW1lLiBCdXQgd2hlbiBwcm9wZXJ0aWVz CisJICogd2l0aCB0aGUgc2FtZSBuYW1lIGhhdmUgZGlmZmVyZW50IHR5cG1vZHMsIGl0IGlzIG5v dCBjbGVhciB3aGljaCBvbmUKKwkgKiBzaG91bGQgYmUgdXNlZCBhcyB0aGUgdHlwbW9kIG9mIHRo ZSBncmFwaCBwcm9wZXJ0eSB3aGVuIHR5cG1vZCBvZiBhCisJICogcHJvcGVydHkgaXMgcmVxdWVz dGVkIGJlZm9yZSBmZXRjaGluZyBhbnkgb2YgdGhlIHByb3BlcnR5IGV4cHJlc3Npb25zLgorCSAq LworCWlmIChwcm9wdHlwbW9kICE9IGV4cHJ0eXBtb2QpCisJeworCQllcmVwb3J0KEVSUk9SLAor CQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCWVycm1zZygicHJvcGVydHkg XCIlc1wiIGRhdGEgdHlwZSBtb2RpZmllciBtaXNtYXRjaDogJWQgdnMuICVkIiwKKwkJCQkJICAg cHJvcG5hbWUsIHByb3B0eXBtb2QsIGV4cHJ0eXBtb2QpLAorCQkJCWVycmRldGFpbCgiSW4gYSBw cm9wZXJ0eSBncmFwaCwgYSBwcm9wZXJ0eSBvZiB0aGUgc2FtZSBuYW1lIGhhcyB0byBoYXZlIHRo ZSBzYW1lIHR5cGUgbW9kaWZpZXIgaW4gZWFjaCBsYWJlbC4iKSk7CisJfQorCiAJLyoKIAkgKiBJ bnNlcnQgaW50byBwZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkKIAkgKi8KQEAgLTEyMzYsMTAg KzE0MTQsMTAgQEAgQWx0ZXJQcm9wR3JhcGgoUGFyc2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBBbHRl clByb3BHcmFwaFN0bXQgKnN0bXQpCiAKIAkJcHJvcGdyYXBoX2VkZ2VfZ2V0X3JlZl9rZXlzKHBz dGF0ZSwgZWRnZS0+ZXNyY2tleSwgZWRnZS0+ZXNyY3ZlcnRleGNvbHMsIHJlbCwgc3JjcmVsLAog CQkJCQkJCQkJZWluZm8tPmFsaWFzbmFtZSwgZWRnZS0+bG9jYXRpb24sICJTT1VSQ0UiLAotCQkJ CQkJCQkJJmVpbmZvLT5zcmNrZXksICZlaW5mby0+c3JjcmVmKTsKKwkJCQkJCQkJCSZlaW5mby0+ c3Jja2V5LCAmZWluZm8tPnNyY3JlZiwgJmVpbmZvLT5zcmNlcW9wKTsKIAkJcHJvcGdyYXBoX2Vk Z2VfZ2V0X3JlZl9rZXlzKHBzdGF0ZSwgZWRnZS0+ZWRlc3RrZXksIGVkZ2UtPmVkZXN0dmVydGV4 Y29scywgcmVsLCBkZXN0cmVsLAogCQkJCQkJCQkJZWluZm8tPmFsaWFzbmFtZSwgZWRnZS0+bG9j YXRpb24sICJERVNUSU5BVElPTiIsCi0JCQkJCQkJCQkmZWluZm8tPmRlc3RrZXksICZlaW5mby0+ ZGVzdHJlZik7CisJCQkJCQkJCQkmZWluZm8tPmRlc3RrZXksICZlaW5mby0+ZGVzdHJlZiwgJmVp bmZvLT5kZXN0ZXFvcCk7CiAKIAkJZWluZm8tPmxhYmVscyA9IGVkZ2UtPmxhYmVsczsKIApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rl cy9ub2RlRnVuY3MuYwppbmRleCAzNzNmYTFlZWMyZi4uZmE4ZGEwNzNkMjAgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25v ZGVGdW5jcy5jCkBAIC01MzUsOCArNTM1LDcgQEAgZXhwclR5cG1vZChjb25zdCBOb2RlICpleHBy KQogCQljYXNlIFRfUGxhY2VIb2xkZXJWYXI6CiAJCQlyZXR1cm4gZXhwclR5cG1vZCgoTm9kZSAq KSAoKGNvbnN0IFBsYWNlSG9sZGVyVmFyICopIGV4cHIpLT5waGV4cHIpOwogCQljYXNlIFRfR3Jh cGhQcm9wZXJ0eVJlZjoKLQkJCS8qIFRPRE8gKi8KLQkJCXJldHVybiAtMTsKKwkJCXJldHVybiAo KGNvbnN0IEdyYXBoUHJvcGVydHlSZWYgKikgZXhwciktPnR5cG1vZDsKIAkJZGVmYXVsdDoKIAkJ CWJyZWFrOwogCX0KQEAgLTEwNTcsNyArMTA1Niw3IEBAIGV4cHJDb2xsYXRpb24oY29uc3QgTm9k ZSAqZXhwcikKIAkJCWNvbGwgPSBleHByQ29sbGF0aW9uKChOb2RlICopICgoY29uc3QgUGxhY2VI b2xkZXJWYXIgKikgZXhwciktPnBoZXhwcik7CiAJCQlicmVhazsKIAkJY2FzZSBUX0dyYXBoUHJv cGVydHlSZWY6Ci0JCQljb2xsID0gREVGQVVMVF9DT0xMQVRJT05fT0lEOwkvKiBGSVhNRSAqLwor CQkJY29sbCA9ICgoY29uc3QgR3JhcGhQcm9wZXJ0eVJlZiAqKSBleHByKS0+Y29sbGF0aW9uOwog CQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUg dHlwZTogJWQiLCAoaW50KSBub2RlVGFnKGV4cHIpKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9jb2xsYXRlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29sbGF0 ZS5jCmluZGV4IDEwMTAwMjAyYTlkLi4wZWJhYmRhMGU4MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2NvbGxhdGUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf Y29sbGF0ZS5jCkBAIC01NDYsNiArNTQ2LDcgQEAgYXNzaWduX2NvbGxhdGlvbnNfd2Fsa2VyKE5v ZGUgKm5vZGUsIGFzc2lnbl9jb2xsYXRpb25zX2NvbnRleHQgKmNvbnRleHQpCiAJCWNhc2UgVF9D YXNlVGVzdEV4cHI6CiAJCWNhc2UgVF9TZXRUb0RlZmF1bHQ6CiAJCWNhc2UgVF9DdXJyZW50T2ZF eHByOgorCQljYXNlIFRfR3JhcGhQcm9wZXJ0eVJlZjoKIAogCQkJLyoKIAkJCSAqIEdlbmVyYWwg Y2FzZSBmb3IgY2hpbGRsZXNzIGV4cHJlc3Npb24gbm9kZXMuICBUaGVzZSBzaG91bGQKQEAgLTU3 MSwxMyArNTcyLDYgQEAgYXNzaWduX2NvbGxhdGlvbnNfd2Fsa2VyKE5vZGUgKm5vZGUsIGFzc2ln bl9jb2xsYXRpb25zX2NvbnRleHQgKmNvbnRleHQpCiAJCQlsb2NhdGlvbiA9IGV4cHJMb2NhdGlv bihub2RlKTsKIAkJCWJyZWFrOwogCi0JCWNhc2UgVF9HcmFwaFByb3BlcnR5UmVmOgotCQkJLyog RklYTUUgKi8KLQkJCWNvbGxhdGlvbiA9IERFRkFVTFRfQ09MTEFUSU9OX09JRDsKLQkJCXN0cmVu Z3RoID0gQ09MTEFURV9JTVBMSUNJVDsKLQkJCWxvY2F0aW9uID0gLTE7Ci0JCQlicmVhazsKLQog CQlkZWZhdWx0OgogCQkJewogCQkJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZ3JhcGh0YWJsZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2dyYXBodGFibGUu YwppbmRleCBiMDg4MzA2YjViMy4uYTg3NjlhNjdiNmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9ncmFwaHRhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2dyYXBodGFibGUuYwpAQCAtNTYsMTggKzU2LDI0IEBAIHRyYW5zZm9ybUdyYXBoVGFibGVQcm9w ZXJ0eVJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAkJaWYgKGxpc3Rf bWVtYmVyKGdwc3RhdGUtPnZhcmlhYmxlcywgZmllbGQxKSkKIAkJewogCQkJR3JhcGhQcm9wZXJ0 eVJlZiAqZ3ByID0gbWFrZU5vZGUoR3JhcGhQcm9wZXJ0eVJlZik7Ci0JCQlPaWQJCQlwcm9waWQ7 CisJCQlIZWFwVHVwbGUJcGdwdHVwOworCQkJRm9ybV9wZ19wcm9wZ3JhcGhfcHJvcGVydHkgcGdw Zm9ybTsKIAotCQkJcHJvcGlkID0gR2V0U3lzQ2FjaGVPaWQyKFBST1BHUkFQSFBST1BOQU1FLCBB bnVtX3BnX3Byb3BncmFwaF9wcm9wZXJ0eV9vaWQsIE9iamVjdElkR2V0RGF0dW0oZ3BzdGF0ZS0+ Z3JhcGhpZCksIENTdHJpbmdHZXREYXR1bShwcm9wbmFtZSkpOwotCQkJaWYgKCFwcm9waWQpCisJ CQlwZ3B0dXAgPSBTZWFyY2hTeXNDYWNoZTIoUFJPUEdSQVBIUFJPUE5BTUUsIE9iamVjdElkR2V0 RGF0dW0oZ3BzdGF0ZS0+Z3JhcGhpZCksIENTdHJpbmdHZXREYXR1bShwcm9wbmFtZSkpOworCQkJ aWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHBncHR1cCkpCiAJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJ CWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAogCQkJCQkJZXJybXNnKCJwcm9wZXJ0eSBc IiVzXCIgZG9lcyBub3QgZXhpc3QiLCBwcm9wbmFtZSkpOworCQkJcGdwZm9ybSA9IChGb3JtX3Bn X3Byb3BncmFwaF9wcm9wZXJ0eSkgR0VUU1RSVUNUKHBncHR1cCk7CiAKIAkJCWdwci0+bG9jYXRp b24gPSBjcmVmLT5sb2NhdGlvbjsKIAkJCWdwci0+ZWx2YXJuYW1lID0gZWx2YXJuYW1lOwotCQkJ Z3ByLT5wcm9waWQgPSBwcm9waWQ7Ci0JCQlncHItPnR5cGVJZCA9IEdldFN5c0NhY2hlT2lkMShQ Uk9QR1JBUEhQUk9QT0lELCBBbnVtX3BnX3Byb3BncmFwaF9wcm9wZXJ0eV9wZ3B0eXBpZCwgT2Jq ZWN0SWRHZXREYXR1bShwcm9waWQpKTsKKwkJCWdwci0+cHJvcGlkID0gcGdwZm9ybS0+b2lkOwor CQkJZ3ByLT50eXBlSWQgPSBwZ3Bmb3JtLT5wZ3B0eXBpZDsKKwkJCWdwci0+dHlwbW9kID0gcGdw Zm9ybS0+cGdwdHlwbW9kOworCQkJZ3ByLT5jb2xsYXRpb24gPSBwZ3Bmb3JtLT5wZ3Bjb2xsYXRp b247CisKKwkJCVJlbGVhc2VTeXNDYWNoZShwZ3B0dXApOwogCiAJCQlyZXR1cm4gKE5vZGUgKikg Z3ByOwogCQl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRh YmxlLmMgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMKaW5kZXggOWMx NGZhM2IxYjcuLjgwZTI4ZGI3NTJkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jl d3JpdGVHcmFwaFRhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlR3JhcGhU YWJsZS5jCkBAIC0xNCw2ICsxNCw3IEBACiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAogI2luY2x1 ZGUgImFjY2Vzcy90YWJsZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BlcmF0b3IuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9lbGVtZW50LmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJv cGdyYXBoX2xhYmVsLmgiCkBAIC0yMyw3ICsyNCwxMCBAQAogI2luY2x1ZGUgIm5vZGVzL25vZGVG dW5jcy5oIgogI2luY2x1ZGUgIm9wdGltaXplci9vcHRpbWl6ZXIuaCIKICNpbmNsdWRlICJwYXJz ZXIvYW5hbHl6ZS5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9jb2xsYXRlLmgiCisjaW5jbHVk ZSAicGFyc2VyL3BhcnNlX2Z1bmMuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2Vfbm9kZS5oIgor I2luY2x1ZGUgInBhcnNlci9wYXJzZV9vcGVyLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3Jl bGF0aW9uLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNldHJlZS5oIgogI2luY2x1ZGUgInBhcnNl ci9wYXJzZV9yZWxhdGlvbi5oIgpAQCAtODMsNyArODcsNyBAQCBzdHJ1Y3QgcGF0aF9lbGVtZW50 CiB9OwogCiBzdGF0aWMgTm9kZSAqcmVwbGFjZV9wcm9wZXJ0eV9yZWZzKE9pZCBwcm9wZ3JhcGhp ZCwgTm9kZSAqbm9kZSwgY29uc3QgTGlzdCAqbWFwcGluZ3MpOwotc3RhdGljIExpc3QgKmJ1aWxk X2VkZ2VfdmVydGV4X2xpbmtfcXVhbHMoSGVhcFR1cGxlIGVkZ2V0dXAsIGludCBlZGdlcnRpLCBp bnQgcmVmcnRpLCBBdHRyTnVtYmVyIGNhdGFsb2dfa2V5X2F0dG51bSwgQXR0ck51bWJlciBjYXRh bG9nX3JlZl9hdHRudW0pOworc3RhdGljIExpc3QgKmJ1aWxkX2VkZ2VfdmVydGV4X2xpbmtfcXVh bHMoSGVhcFR1cGxlIGVkZ2V0dXAsIGludCBlZGdlcnRpLCBpbnQgcmVmcnRpLCBPaWQgcmVmaWQs IEF0dHJOdW1iZXIgY2F0YWxvZ19rZXlfYXR0bnVtLCBBdHRyTnVtYmVyIGNhdGFsb2dfcmVmX2F0 dG51bSwgQXR0ck51bWJlciBjYXRhbG9nX2Vxb3BfYXR0bnVtKTsKIHN0YXRpYyBMaXN0ICpnZW5l cmF0ZV9xdWVyaWVzX2Zvcl9wYXRoX3BhdHRlcm4oUmFuZ2VUYmxFbnRyeSAqcnRlLCBMaXN0ICpl bGVtZW50X3BhdHRlcm5zKTsKIHN0YXRpYyBRdWVyeSAqZ2VuZXJhdGVfcXVlcnlfZm9yX2dyYXBo X3BhdGgoUmFuZ2VUYmxFbnRyeSAqcnRlLCBMaXN0ICpwYXRoKTsKIHN0YXRpYyBOb2RlICpnZW5l cmF0ZV9zZXRvcF9mcm9tX3BhdGhxdWVyaWVzKExpc3QgKnBhdGhxdWVyaWVzLCBMaXN0ICoqcnRh YmxlLCBMaXN0ICoqdGFyZ2V0bGlzdCk7CkBAIC0zNzMsNiArMzc3LDIzIEBAIGdlbmVyYXRlX3F1 ZXJpZXNfZm9yX3BhdGhfcGF0dGVybl9yZWN1cnNlKFJhbmdlVGJsRW50cnkgKnJ0ZSwgTGlzdCAq cGF0aHF1ZXJpZXMsCiAvKgogICogQ29uc3RydWN0IGEgcXVlcnkgcmVwcmVzZW50aW5nIGdpdmVu IGdyYXBoIHBhdGguCiAgKgorICogVGhlIHF1ZXJ5IGNvbnRhaW5zOgorICoKKyAqIDEuIHRhcmdl dGxpc3QgY29ycmVzcG9uZGluZyB0aGUgQ09MVU1OUyBjbGF1c2Ugb2YgR1JBUEhfVEFCTEUgY2xh dXNlCisgKgorICogMi4gcXVhbHMgY29ycmVzcG9uZGluZyB0byB0aGUgV0hFUkUgY2xhdXNlIG9m IGluZGl2aWR1YWwgZWxlbWVudHMsIFdIRVJFCisgKiBjbGF1c2UgaW4gR1JBUEhfVEFCTEUgY2xh dXNlIGFuZCBxdWFscyByZXByZXNlbnRpbmcgZWRnZS12ZXJ0ZXggbGlua3MuCisgKgorICogMy4g ZnJvbWxpc3QgY29udGFpbmluZyBhbGwgZWxlbWVudHMgaW4gdGhlIHBhdGgKKyAqCisgKiBUaGUg Y29sbGF0aW9ucyBvZiBwcm9wZXJ0eSBleHByZXNzaW9ucyBhcmUgb2J0YWluZWQgZnJvbSB0aGUg Y2F0YWxvZyBhbmQKKyAqIHN1YnN0aXR1dGVkIGluIHBsYWNlIG9mIGEgcHJvcGVydHkgcmVmZXJl bmNlLiBUaGUgY29sbGF0aW9ucyBvZiBleHByZXNzaW9ucworICogaW4gQ09MVU1OUyBhbmQgV0hF UkUgY2xhdXNlcyBhcmUgYXNzaWduZWQgYmVmb3JlIHJld3JpdGluZyB0aGUgZ3JhcGggdGFibGUu CisgKiBUaGUgY29sbGF0aW9ucyBvZiB0aGUgZWRnZS12ZXJ0ZXggbGluayBxdWFscyBhcmUgYXNz aWduZWQgd2hlbiBjcmFmdGluZyB0aG9zZQorICogcXVhbHMuIFRodXMgZXZlcnl0aGluZyBpbiB0 aGUgcXVlcnkgdGhhdCByZXF1aXJlcyBjb2xsYXRpb24gYXNzaWdubWVudCBoYXMKKyAqIGJlZW4g dGFrZW4gY2FyZSBvZiBhbHJlYWR5LiBTbyBubyBjb2xsYXRpb24gYXNzaWdubWVudCBpcyByZXF1 aXJlZCBpbiB0aGlzCisgKiBmdW5jdGlvbi4KKyAqCiAgKiBNb3JlIGRldGFpbHMgaW4gdGhlIHBy b2xvZ3VlIG9mIGdlbmVyYXRlX3F1ZXJpZXNfZm9yX3BhdGhfcGF0dGVybigpLgogICovCiBzdGF0 aWMgUXVlcnkgKgpAQCAtNTUyLDYgKzU3MywxMiBAQCBnZW5lcmF0ZV9xdWVyeV9mb3JfZW1wdHlf cGF0aF9wYXR0ZXJuKFJhbmdlVGJsRW50cnkgKnJ0ZSkKIC8qCiAgKiBDb25zdHJ1Y3QgYSBxdWVy eSB3aGljaCBpcyBVTklPTiBvZiBnaXZlbiBwYXRoIHF1ZXJpZXMuCiAgKgorICogVGhlIFVOSU9O IHF1ZXJ5IGRlcml2ZXMgY29sbGF0aW9ucyBvZiBpdHMgdGFyZ2V0bGlzdCBlbnRyaWVzIGZyb20g dGhlCisgKiBjb3JyZXNwb25kaW5nIHRhcmdldGxpc3QgZW50cmllcyBvZiB0aGUgcGF0aCBxdWVy aWVzIGFuZCBwcm9qZWN0cyBpdC4gVGhlCisgKiB0YXJnZXRsaXN0cyBvZiBwYXRoIHF1ZXJpZXMg YmVpbmcgVU5JT04nZWQgYWxyZWFkeSBoYXZlIGNvbGxhdGlvbnMgYXNzaWduZWQuCisgKiBUaGUg c2FtZSBjb2xsYXRpb25zIGFyZSB1c2VkIGZvciB0YXJnZXRsaXN0IG9mIFVOSU9OIHF1ZXJ5LiBU aHVzIHRoZXJlIGlzIG5vCisgKiBzZXBhcmF0ZSBjb2xsYXRpb24gYXNzaWdubWVudCByZXF1aXJl ZCBpbiB0aGlzIGZ1bmN0aW9uLgorICoKICAqIFRoZSBmdW5jdGlvbiBkZXN0cm95cyBnaXZlbiBw YXRocXVlcmllcyBsaXN0IHdoaWxlIGNvbnN0cnVjdGluZwogICogU2V0T3BlcmF0aW9uU3RtdCBy ZWNydXJzaXZlbHkuIEhlbmNlIHRoZSBmdW5jdGlvbiBhbHdheXMgcmV0dXJucyB3aXRoCiAgKiBg cGF0aHF1ZXJpZXNgIHNldCB0byBOSUwuCkBAIC03NDcsMTEgKzc3NCwxNSBAQCBjcmVhdGVfZ3Bl X2Zvcl9lbGVtZW50KHN0cnVjdCBwYXRoX2ZhY3RvciAqcGYsIE9pZCBlbGVtb2lkKQogCQkgKiBl YWNoIHRpbWUuCiAJCSAqLwogCQlwZS0+c3JjX3F1YWxzID0gYnVpbGRfZWRnZV92ZXJ0ZXhfbGlu a19xdWFscyhlbGV0dXAsIHBmLT5mYWN0b3Jwb3MgKyAxLCBwZi0+c3JjX3BmLT5mYWN0b3Jwb3Mg KyAxLAorCQkJCQkJCQkJCQkJCSBwZS0+c3JjdmVydGV4aWQsCiAJCQkJCQkJCQkJCQkJIEFudW1f cGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlc3Jja2V5LAotCQkJCQkJCQkJCQkJCSBBbnVtX3BnX3By b3BncmFwaF9lbGVtZW50X3BnZXNyY3JlZik7CisJCQkJCQkJCQkJCQkJIEFudW1fcGdfcHJvcGdy YXBoX2VsZW1lbnRfcGdlc3JjcmVmLAorCQkJCQkJCQkJCQkJCSBBbnVtX3BnX3Byb3BncmFwaF9l bGVtZW50X3BnZXNyY2Vxb3ApOwogCQlwZS0+ZGVzdF9xdWFscyA9IGJ1aWxkX2VkZ2VfdmVydGV4 X2xpbmtfcXVhbHMoZWxldHVwLCBwZi0+ZmFjdG9ycG9zICsgMSwgcGYtPmRlc3RfcGYtPmZhY3Rv cnBvcyArIDEsCisJCQkJCQkJCQkJCQkJICBwZS0+ZGVzdHZlcnRleGlkLAogCQkJCQkJCQkJCQkJ CSAgQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VkZXN0a2V5LAotCQkJCQkJCQkJCQkJCSAg QW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VkZXN0cmVmKTsKKwkJCQkJCQkJCQkJCQkgIEFu dW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlZGVzdHJlZiwKKwkJCQkJCQkJCQkJCQkgIEFudW1f cGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlZGVzdGVxb3ApOwogCX0KIAogCVJlbGVhc2VTeXNDYWNo ZShlbGV0dXApOwpAQCAtMTEyMiwxOCArMTE1MywyNiBAQCByZXBsYWNlX3Byb3BlcnR5X3JlZnMo T2lkIHByb3BncmFwaGlkLCBOb2RlICpub2RlLCBjb25zdCBMaXN0ICptYXBwaW5ncykKIH0KIAog LyoKLSAqIEJ1aWxkIGpvaW4gcXVhbGlmaWNhdGlvbiBleHByZXNzaW9ucyBiZXR3ZWVuIGVkZ2Ug YW5kIHZlcnRleCB0YWJsZXMuCisgKiBCdWlsZCBqb2luIHF1YWxpZmljYXRpb24gZXhwcmVzc2lv bnMgYmV0d2VlbiBlZGdlIGFuZCB2ZXJ0ZXggdGFibGVzIHVzaW5nCisgKiBlcXVhbGl0eSBvcGVy YXRvcnMgaWRlbnRpZmllZCBhdCB0aGUgdGltZSBvZiBjcmVhdGluZyB0aGUgZWRnZS4KICAqLwog c3RhdGljIExpc3QgKgotYnVpbGRfZWRnZV92ZXJ0ZXhfbGlua19xdWFscyhIZWFwVHVwbGUgZWRn ZXR1cCwgaW50IGVkZ2VydGksIGludCByZWZydGksIEF0dHJOdW1iZXIgY2F0YWxvZ19rZXlfYXR0 bnVtLCBBdHRyTnVtYmVyIGNhdGFsb2dfcmVmX2F0dG51bSkKK2J1aWxkX2VkZ2VfdmVydGV4X2xp bmtfcXVhbHMoSGVhcFR1cGxlIGVkZ2V0dXAsIGludCBlZGdlcnRpLCBpbnQgcmVmcnRpLCBPaWQg cmVmaWQsIEF0dHJOdW1iZXIgY2F0YWxvZ19rZXlfYXR0bnVtLCBBdHRyTnVtYmVyIGNhdGFsb2df cmVmX2F0dG51bSwgQXR0ck51bWJlciBjYXRhbG9nX2Vxb3BfYXR0bnVtKQogewogCUxpc3QJICAg KnF1YWxzID0gTklMOwogCUZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQgcGdlZm9ybTsKIAlEYXR1 bQkJZGF0dW07CiAJRGF0dW0JICAgKmQxLAotCQkJICAgKmQyOworCQkJICAgKmQyLAorCQkJICAg KmQzOwogCWludAkJCW4xLAotCQkJCW4yOworCQkJCW4yLAorCQkJCW4zOworCVBhcnNlU3RhdGUg KnBzdGF0ZSA9IG1ha2VfcGFyc2VzdGF0ZShOVUxMKTsKKwlIZWFwVHVwbGUJcmVmdHVwID0gU2Vh cmNoU3lzQ2FjaGUxKFBST1BHUkFQSEVMT0lELCBPYmplY3RJZEdldERhdHVtKHJlZmlkKSk7CisJ T2lkCQkJcmVmcmVsaWQgPSAoKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQpIEdFVFNUUlVDVChy ZWZ0dXApKS0+cGdlcmVsaWQ7CisKKwlSZWxlYXNlU3lzQ2FjaGUocmVmdHVwKTsKIAogCXBnZWZv cm0gPSAoRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudCkgR0VUU1RSVUNUKGVkZ2V0dXApOwogCkBA IC0xMTQzLDMzICsxMTgyLDc0IEBAIGJ1aWxkX2VkZ2VfdmVydGV4X2xpbmtfcXVhbHMoSGVhcFR1 cGxlIGVkZ2V0dXAsIGludCBlZGdlcnRpLCBpbnQgcmVmcnRpLCBBdHRyTnVtCiAJZGF0dW0gPSBT eXNDYWNoZUdldEF0dHJOb3ROdWxsKFBST1BHUkFQSEVMT0lELCBlZGdldHVwLCBjYXRhbG9nX3Jl Zl9hdHRudW0pOwogCWRlY29uc3RydWN0X2FycmF5X2J1aWx0aW4oRGF0dW1HZXRBcnJheVR5cGVQ KGRhdHVtKSwgSU5UMk9JRCwgJmQyLCBOVUxMLCAmbjIpOwogCisJZGF0dW0gPSBTeXNDYWNoZUdl dEF0dHJOb3ROdWxsKFBST1BHUkFQSEVMT0lELCBlZGdldHVwLCBjYXRhbG9nX2Vxb3BfYXR0bnVt KTsKKwlkZWNvbnN0cnVjdF9hcnJheV9idWlsdGluKERhdHVtR2V0QXJyYXlUeXBlUChkYXR1bSks IE9JRE9JRCwgJmQzLCBOVUxMLCAmbjMpOworCiAJaWYgKG4xICE9IG4yKQogCQllbG9nKEVSUk9S LCAiYXJyYXkgc2l6ZSBrZXkgKCVkKSB2cyByZWYgKCVkKSBtaXNtYXRjaCBmb3IgZWxlbWVudCBJ RCAldSIsIGNhdGFsb2dfa2V5X2F0dG51bSwgY2F0YWxvZ19yZWZfYXR0bnVtLCBwZ2Vmb3JtLT5v aWQpOworCWlmIChuMSAhPSBuMykKKwkJZWxvZyhFUlJPUiwgImFycmF5IHNpemUga2V5ICglZCkg dnMgb3BlcmF0b3IgKCVkKSBtaXNtYXRjaCBmb3IgZWxlbWVudCBJRCAldSIsIGNhdGFsb2dfa2V5 X2F0dG51bSwgY2F0YWxvZ19lcW9wX2F0dG51bSwgcGdlZm9ybS0+b2lkKTsKIAogCWZvciAoaW50 IGkgPSAwOyBpIDwgbjE7IGkrKykKIAl7CiAJCUF0dHJOdW1iZXIJa2V5YXR0biA9IERhdHVtR2V0 SW50MTYoZDFbaV0pOwogCQlBdHRyTnVtYmVyCXJlZmF0dG4gPSBEYXR1bUdldEludDE2KGQyW2ld KTsKKwkJT2lkCQkJZXFvcCA9IERhdHVtR2V0T2JqZWN0SWQoZDNbaV0pOworCQlWYXIJCSAgICpr ZXl2YXI7CisJCVZhcgkJICAgKnJlZnZhcjsKIAkJT2lkCQkJYXR0dHlwaWQ7Ci0JCVR5cGVDYWNo ZUVudHJ5ICp0eXBlbnRyeTsKLQkJT3BFeHByCSAgICpvcDsKKwkJaW50MzIJCWF0dHR5cG1vZDsK KwkJT2lkCQkJYXR0Y29sbDsKKwkJSGVhcFR1cGxlCXR1cDsKKwkJRm9ybV9wZ19vcGVyYXRvciBv cGZvcm07CisJCUxpc3QJICAgKmFyZ3M7CisJCU9pZAkJCWFjdHVhbF9hcmdfdHlwZXNbMl07CisJ CU9pZAkJCWRlY2xhcmVkX2FyZ190eXBlc1syXTsKKwkJT3BFeHByCSAgICpsaW5rcXVhbDsKKwor CQlnZXRfYXR0dHlwZXR5cG1vZGNvbGwocGdlZm9ybS0+cGdlcmVsaWQsIGtleWF0dG4sICZhdHR0 eXBpZCwgJmF0dHR5cG1vZCwgJmF0dGNvbGwpOworCQlrZXl2YXIgPSBtYWtlVmFyKGVkZ2VydGks IGtleWF0dG4sIGF0dHR5cGlkLCBhdHR0eXBtb2QsIGF0dGNvbGwsIDApOworCQlnZXRfYXR0dHlw ZXR5cG1vZGNvbGwocmVmcmVsaWQsIHJlZmF0dG4sICZhdHR0eXBpZCwgJmF0dHR5cG1vZCwgJmF0 dGNvbGwpOworCQlyZWZ2YXIgPSBtYWtlVmFyKHJlZnJ0aSwgcmVmYXR0biwgYXR0dHlwaWQsIGF0 dHR5cG1vZCwgYXR0Y29sbCwgMCk7CisKKwkJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKE9QRVJPSUQs IE9iamVjdElkR2V0RGF0dW0oZXFvcCkpOworCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkK KwkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBvcGVyYXRvciAldSIsIGVx b3ApOworCQlvcGZvcm0gPSAoRm9ybV9wZ19vcGVyYXRvcikgR0VUU1RSVUNUKHR1cCk7CisJCS8q IEFuIGVxdWFsaXR5IG9wZXJhdG9yIGlzIGEgYmluYXJ5IG9wZXJhdG9yIHJldHVybmluZyBib29s ZWFuIHJlc3VsdC4gKi8KKwkJQXNzZXJ0KG9wZm9ybS0+b3Bya2luZCA9PSAnYicKKwkJCSAgICYm IFJlZ1Byb2NlZHVyZUlzVmFsaWQob3Bmb3JtLT5vcHJjb2RlKQorCQkJICAgJiYgb3Bmb3JtLT5v cHJyZXN1bHQgPT0gQk9PTE9JRAorCQkJICAgJiYgIWdldF9mdW5jX3JldHNldChvcGZvcm0tPm9w cmNvZGUpKTsKIAogCQkvKgotCQkgKiBUT0RPOiBBc3N1bWVzIHR5cGVzIHRoZSBzYW1lIG9uIGJv dGggc2lkZXM7IG5vIGNvbGxhdGlvbnMgeWV0LiBTb21lCi0JCSAqIG9mIHRoaXMgY291bGQgcHJv YmFibHkgYmUgc2hhcmVkIHdpdGggZm9yZWlnbiBrZXkgdHJpZ2dlcnMuCisJCSAqIFByZXBhcmUg b3BlcmFuZHMgYW5kIGNhc3QgdGhlbSB0byB0aGUgdHlwZXMgcmVxdWlyZWQgYnkgdGhlCisJCSAq IGVxdWFsaXR5IG9wZXJhdG9yLiBTaW1pbGFyIHRvIFBLL0ZLIHFhdWxzLCByZWZlcmVuY2VkIHZl cnRleCBrZXkgaXMKKwkJICogdXNlZCBhcyBsZWZ0IG9wZXJhbmQgYW5kIHJlZmVyZW5jaW5nIGVk Z2Uga2V5IGlzIHVzZWQgYXMgcmlnaHQKKwkJICogb3BlcmFuZC4KIAkJICovCi0JCWF0dHR5cGlk ID0gZ2V0X2F0dHR5cGUocGdlZm9ybS0+cGdlcmVsaWQsIGtleWF0dG4pOwotCQl0eXBlbnRyeSA9 IGxvb2t1cF90eXBlX2NhY2hlKGF0dHR5cGlkLCBUWVBFQ0FDSEVfRVFfT1BSKTsKLQotCQlvcCA9 IG1ha2VOb2RlKE9wRXhwcik7Ci0JCW9wLT5sb2NhdGlvbiA9IC0xOwotCQlvcC0+b3BubyA9IHR5 cGVudHJ5LT5lcV9vcHI7Ci0JCW9wLT5vcHJlc3VsdHR5cGUgPSBCT09MT0lEOwotCQlvcC0+YXJn cyA9IGxpc3RfbWFrZTIobWFrZVZhcihlZGdlcnRpLCBrZXlhdHRuLCBhdHR0eXBpZCwgLTEsIDAs IDApLAotCQkJCQkJCSAgbWFrZVZhcihyZWZydGksIHJlZmF0dG4sIGF0dHR5cGlkLCAtMSwgMCwg MCkpOwotCQlxdWFscyA9IGxhcHBlbmQocXVhbHMsIG9wKTsKKwkJYXJncyA9IGxpc3RfbWFrZTIo cmVmdmFyLCBrZXl2YXIpOworCQlhY3R1YWxfYXJnX3R5cGVzWzBdID0gZXhwclR5cGUoKE5vZGUg KikgcmVmdmFyKTsKKwkJYWN0dWFsX2FyZ190eXBlc1sxXSA9IGV4cHJUeXBlKChOb2RlICopIGtl eXZhcik7CisJCWRlY2xhcmVkX2FyZ190eXBlc1swXSA9IG9wZm9ybS0+b3BybGVmdDsKKwkJZGVj bGFyZWRfYXJnX3R5cGVzWzFdID0gb3Bmb3JtLT5vcHJyaWdodDsKKwkJbWFrZV9mbl9hcmd1bWVu dHMocHN0YXRlLCBhcmdzLCBhY3R1YWxfYXJnX3R5cGVzLCBkZWNsYXJlZF9hcmdfdHlwZXMpOwor CisJCWxpbmtxdWFsID0gbWFrZU5vZGUoT3BFeHByKTsKKwkJbGlua3F1YWwtPm9wbm8gPSBvcGZv cm0tPm9pZDsKKwkJbGlua3F1YWwtPm9wZnVuY2lkID0gb3Bmb3JtLT5vcHJjb2RlOworCQlsaW5r cXVhbC0+b3ByZXN1bHR0eXBlID0gb3Bmb3JtLT5vcHJyZXN1bHQ7CisJCWxpbmtxdWFsLT5vcHJl dHNldCA9IGZhbHNlOworCQkvKiBvcGNvbGxpZCBhbmQgaW5wdXRjb2xsaWQgd2lsbCBiZSBzZXQg YnkgcGFyc2VfY29sbGF0ZS5jICovCisJCWxpbmtxdWFsLT5hcmdzID0gYXJnczsKKwkJbGlua3F1 YWwtPmxvY2F0aW9uID0gLTE7CisKKwkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCXF1YWxzID0g bGFwcGVuZChxdWFscywgbGlua3F1YWwpOwogCX0KIAorCWFzc2lnbl9leHByX2NvbGxhdGlvbnMo cHN0YXRlLCAoTm9kZSAqKSBxdWFscyk7CisKIAlyZXR1cm4gcXVhbHM7CiB9CiAKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnQuaCBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnQuaAppbmRleCAyYmMyMDY2YjZjMS4uZmVh MDZjMDk2M2UgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX2Vs ZW1lbnQuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb3BncmFwaF9lbGVtZW50LmgK QEAgLTYyLDYgKzYyLDExIEBAIENBVEFMT0cocGdfcHJvcGdyYXBoX2VsZW1lbnQsODI5OSxQcm9w Z3JhcGhFbGVtZW50UmVsYXRpb25JZCkKIAkgKi8KIAlpbnQxNgkJcGdlc3JjcmVmWzFdOwogCisJ LyoKKwkgKiBmb3IgZWRnZXM6IE9pZHMgb2YgdGhlIGVxdWFsaXR5IG9wZXJhdG9ycyBmb3IgY29t cGFyaW5nIHNvdXJjZSBrZXlzCisJICovCisJT2lkCQkJcGdlc3JjZXFvcFsxXTsKKwogCS8qCiAJ ICogZm9yIGVkZ2VzOiBkZXN0aW5hdGlvbiB2ZXJ0ZXgga2V5IChjb2x1bW4gbnVtYmVycyBpbiBw Z2VyZWxpZCByZWxhdGlvbikKIAkgKi8KQEAgLTcyLDYgKzc3LDEyIEBAIENBVEFMT0cocGdfcHJv cGdyYXBoX2VsZW1lbnQsODI5OSxQcm9wZ3JhcGhFbGVtZW50UmVsYXRpb25JZCkKIAkgKiBpbiBy ZWxhdGlvbiByZWFjaGVkIHZpYSBwZ2VkZXN0dmVydGV4aWQpCiAJICovCiAJaW50MTYJCXBnZWRl c3RyZWZbMV07CisKKwkvKgorCSAqIGZvciBlZGdlczogT2lkcyBvZiB0aGUgZXF1YWxpdHkgb3Bl cmF0b3JzIGZvciBjb21wYXJpbmcgZGVzdGluYXRpb24KKwkgKiBrZXlzCisJICovCisJT2lkCQkJ cGdlZGVzdGVxb3BbMV07CiAjZW5kaWYKIH0gRm9ybURhdGFfcGdfcHJvcGdyYXBoX2VsZW1lbnQ7 CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX3Byb3BlcnR5 LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb3BncmFwaF9wcm9wZXJ0eS5oCmluZGV4IGI4 OTIxYWNlMzBjLi4yNDBiMzRmMDM5MCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wcm9wZ3JhcGhfcHJvcGVydHkuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb3Bn cmFwaF9wcm9wZXJ0eS5oCkBAIC0zNiw2ICszNiwxMiBAQCBDQVRBTE9HKHBnX3Byb3BncmFwaF9w cm9wZXJ0eSw4MzA2LFByb3BncmFwaFByb3BlcnR5UmVsYXRpb25JZCkKIAogCS8qIGRhdGEgdHlw ZSBvZiB0aGUgcHJvcGVydHkgKi8KIAlPaWQJCQlwZ3B0eXBpZCBCS0lfTE9PS1VQX09QVChwZ190 eXBlKTsKKworCS8qIHR5cGVtb2Qgb2YgdGhlIHByb3BlcnR5ICovCisJaW50MzIJCXBncHR5cG1v ZDsKKworCS8qIGNvbGxhdGlvbiBvZiB0aGUgcHJvcGVydHkgKi8KKwlPaWQJCQlwZ3Bjb2xsYXRp b24gQktJX0xPT0tVUF9PUFQocGdfY29sbGF0aW9uKTsKIH0gRm9ybURhdGFfcGdfcHJvcGdyYXBo X3Byb3BlcnR5OwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCmluZGV4 IGEyNDZiZDlkZmQ2Li41YTQ4NWVlNDcxZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMv cHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKQEAgLTIxNDcs NiArMjE0Nyw4IEBAIHR5cGVkZWYgc3RydWN0IEdyYXBoUHJvcGVydHlSZWYKIAljb25zdCBjaGFy ICplbHZhcm5hbWU7CiAJT2lkCQkJcHJvcGlkOwogCU9pZAkJCXR5cGVJZDsKKwlpbnQzMgkJdHlw bW9kOworCU9pZAkJCWNvbGxhdGlvbjsKIAlQYXJzZUxvYwlsb2NhdGlvbjsKIH0gR3JhcGhQcm9w ZXJ0eVJlZjsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVf cHJvcGVydHlfZ3JhcGgub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfcHJv cGVydHlfZ3JhcGgub3V0CmluZGV4IDcwYzRhZmRhNTJjLi5kMzVjMDJiNDYyYyAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfcHJvcGVydHlfZ3JhcGgub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLm91dApA QCAtMTg3LDYgKzE4Nyw5NCBAQCBHUkFOVCBTRUxFQ1QgT04gUFJPUEVSVFkgR1JBUEggZzEgVE8g cmVncmVzc19ncmFwaF91c2VyMjsKIEdSQU5UIFVQREFURSBPTiBQUk9QRVJUWSBHUkFQSCBnMSBU TyByZWdyZXNzX2dyYXBoX3VzZXIyOyAgLS0gZmFpbAogRVJST1I6ICBpbnZhbGlkIHByaXZpbGVn ZSB0eXBlIFVQREFURSBmb3IgcHJvcGVydHkgZ3JhcGgKIFJFU0VUIFJPTEU7CistLSBjb2xsYXRp b24KK0NSRUFURSBUQUJMRSB0YzEgKGEgaW50LCBiIHRleHQpOworQ1JFQVRFIFRBQkxFIHRjMiAo YSBpbnQsIGIgdGV4dCk7CitDUkVBVEUgVEFCTEUgdGMzIChhIGludCwgYiB0ZXh0IENPTExBVEUg IkMiKTsKK0NSRUFURSBUQUJMRSBlYzEgKGVrMSBpbnQsIGVrMiBpbnQsIGViIHRleHQpOworQ1JF QVRFIFRBQkxFIGVjMiAoZWsxIGludCwgZWsyIGludCwgZWIgdGV4dCBDT0xMQVRFICJQT1NJWCIp OworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGdjMQorICAgIFZFUlRFWCBUQUJMRVMgKHRjMSBLRVkg KGEpLCB0YzIgS0VZIChhKSwgdGMzIEtFWSAoYSkpOyAtLSBmYWlsCitFUlJPUjogIHByb3BlcnR5 ICJiIiBjb2xsYXRpb24gbWlzbWF0Y2g6IGRlZmF1bHQgdnMuIEMKK0RFVEFJTDogIEluIGEgcHJv cGVydHkgZ3JhcGgsIGEgcHJvcGVydHkgb2YgdGhlIHNhbWUgbmFtZSBoYXMgdG8gaGF2ZSB0aGUg c2FtZSBjb2xsYXRpb24gaW4gZWFjaCBsYWJlbC4KK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBnYzEK KyAgICBWRVJURVggVEFCTEVTICh0YzEgS0VZIChhKSwgdGMyIEtFWSAoYSkpCisgICAgRURHRSBU QUJMRVMgKAorICAgICAgICBlYzEgS0VZIChlazEsIGVrMikKKyAgICAgICAgICAgIFNPVVJDRSBL RVkgKGVrMSkgUkVGRVJFTkNFUyB0YzEgKGEpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkg KGVrMikgUkVGRVJFTkNFUyB0YzIgKGEpLAorICAgICAgICBlYzIgS0VZIChlazEsIGVrMikKKyAg ICAgICAgICAgIFNPVVJDRSBLRVkgKGVrMSkgUkVGRVJFTkNFUyB0YzEgKGEpCisgICAgICAgICAg ICBERVNUSU5BVElPTiBLRVkgKGVrMikgUkVGRVJFTkNFUyB0YzIgKGEpKTsgLS0gZmFpbAorRVJS T1I6ICBwcm9wZXJ0eSAiZWIiIGNvbGxhdGlvbiBtaXNtYXRjaDogZGVmYXVsdCB2cy4gUE9TSVgK K0RFVEFJTDogIEluIGEgcHJvcGVydHkgZ3JhcGgsIGEgcHJvcGVydHkgb2YgdGhlIHNhbWUgbmFt ZSBoYXMgdG8gaGF2ZSB0aGUgc2FtZSBjb2xsYXRpb24gaW4gZWFjaCBsYWJlbC4KK0NSRUFURSBQ Uk9QRVJUWSBHUkFQSCBnYzEKKyAgICBWRVJURVggVEFCTEVTICh0YzEgS0VZIChhKSBERUZBVUxU IExBQkVMIFBST1BFUlRJRVMgKGEpLCB0YzMgS0VZIChiKSkKKyAgICBFREdFIFRBQkxFUyAoCisg ICAgICAgIGVjMiBLRVkgKGVrMSwgZWIpCisgICAgICAgICAgICBTT1VSQ0UgS0VZIChlazEpIFJF RkVSRU5DRVMgdGMxIChhKQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZIChlYikgUkVGRVJF TkNFUyB0YzMgKGIpKTsgLS0gZmFpbAorRVJST1I6ICBjb2xsYXRpb24gbWlzbWF0Y2ggaW4gREVT VElOQVRJT04ga2V5IG9mIGVkZ2UgImVjMiI6IFBPU0lYIHZzLiBDCitMSU5FIDQ6ICAgICAgICAg ZWMyIEtFWSAoZWsxLCBlYikKKyAgICAgICAgICAgICAgICBeCitDUkVBVEUgUFJPUEVSVFkgR1JB UEggZ2MxCisgICAgVkVSVEVYIFRBQkxFUyAodGMxIEtFWSAoYSksIHRjMiBLRVkgKGEpKQorICAg IEVER0UgVEFCTEVTICgKKyAgICAgICAgZWMxIEtFWSAoZWsxLCBlazIpCisgICAgICAgICAgICBT T1VSQ0UgS0VZIChlazEpIFJFRkVSRU5DRVMgdGMxIChhKQorICAgICAgICAgICAgREVTVElOQVRJ T04gS0VZIChlazIpIFJFRkVSRU5DRVMgdGMyIChhKSk7CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBn YzEgQUREIFZFUlRFWCBUQUJMRVMgKHRjMyBLRVkgKGEpKTsgLS0gZmFpbAorRVJST1I6ICBwcm9w ZXJ0eSAiYiIgY29sbGF0aW9uIG1pc21hdGNoOiBkZWZhdWx0IHZzLiBDCitERVRBSUw6ICBJbiBh IHByb3BlcnR5IGdyYXBoLCBhIHByb3BlcnR5IG9mIHRoZSBzYW1lIG5hbWUgaGFzIHRvIGhhdmUg dGhlIHNhbWUgY29sbGF0aW9uIGluIGVhY2ggbGFiZWwuCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBn YzEgQUREIEVER0UgVEFCTEVTICgKKyAgICAgICAgICAgIGVjMiBLRVkgKGVrMSwgZWsyKQorICAg ICAgICAgICAgICAgIFNPVVJDRSBLRVkgKGVrMSkgUkVGRVJFTkNFUyB0YzEgKGEpCisgICAgICAg ICAgICAgICAgREVTVElOQVRJT04gS0VZIChlazIpIFJFRkVSRU5DRVMgdGMyIChhKSk7IC0tIGZh aWwKK0VSUk9SOiAgcHJvcGVydHkgImViIiBjb2xsYXRpb24gbWlzbWF0Y2g6IGRlZmF1bHQgdnMu IFBPU0lYCitERVRBSUw6ICBJbiBhIHByb3BlcnR5IGdyYXBoLCBhIHByb3BlcnR5IG9mIHRoZSBz YW1lIG5hbWUgaGFzIHRvIGhhdmUgdGhlIHNhbWUgY29sbGF0aW9uIGluIGVhY2ggbGFiZWwuCitB TFRFUiBQUk9QRVJUWSBHUkFQSCBnYzEKKyAgICBBREQgVkVSVEVYIFRBQkxFUyAoCisgICAgICAg IHRjMyBLRVkgKGEpIERFRkFVTFQgTEFCRUwgUFJPUEVSVElFUyAoYSwgYiBDT0xMQVRFIHBnX2Nh dGFsb2cuREVGQVVMVCBBUyBiKSk7CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnYzEgQUREIEVER0Ug VEFCTEVTICgKKyAgICAgICAgICAgIGVjMiBLRVkgKGVrMSwgZWsyKQorICAgICAgICAgICAgICAg IFNPVVJDRSBLRVkgKGVrMSkgUkVGRVJFTkNFUyB0YzEgKGEpCisgICAgICAgICAgICAgICAgREVT VElOQVRJT04gS0VZIChlazIpIFJFRkVSRU5DRVMgdGMyIChhKQorICAgICAgICAgICAgICAgIERF RkFVTFQgTEFCRUwgUFJPUEVSVElFUyAoZWsxLCBlazIsIGViIENPTExBVEUgcGdfY2F0YWxvZy5E RUZBVUxUIEFTIGViKSk7CitEUk9QIFBST1BFUlRZIEdSQVBIIGdjMTsKK0NSRUFURSBQUk9QRVJU WSBHUkFQSCBnYzEKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgdGMxIEtFWSAoYSkgREVG QVVMVCBMQUJFTCBQUk9QRVJUSUVTIChhLCBiOjp2YXJjaGFyIENPTExBVEUgIkMiIEFTIGIpLAor ICAgICAgICB0YzIgS0VZIChhKSBERUZBVUxUIExBQkVMIFBST1BFUlRJRVMgKGEsIChiIENPTExB VEUgIkMiKTo6dmFyY2hhciBBUyBiKSwKKyAgICAgICAgdGMzIEtFWSAoYSkgREVGQVVMVCBMQUJF TCBQUk9QRVJUSUVTIChhLCBiOjp2YXJjaGFyIEFTIGIpKQorICAgIEVER0UgVEFCTEVTICgKKyAg ICAgICAgZWMxIEtFWSAoZWsxLCBlazIpCisgICAgICAgICAgICBTT1VSQ0UgS0VZIChlazEpIFJF RkVSRU5DRVMgdGMxIChhKQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZIChlazIpIFJFRkVS RU5DRVMgdGMyIChhKQorICAgICAgICAgICAgREVGQVVMVCBMQUJFTCBQUk9QRVJUSUVTIChlazEs IGVrMiwgZWIpLAorICAgICAgICBlYzIgS0VZIChlazEsIGVrMikKKyAgICAgICAgICAgIFNPVVJD RSBLRVkgKGVrMSkgUkVGRVJFTkNFUyB0YzEgKGEpCisgICAgICAgICAgICBERVNUSU5BVElPTiBL RVkgKGVrMikgUkVGRVJFTkNFUyB0YzIgKGEpCisgICAgICAgICAgICBERUZBVUxUIExBQkVMIFBS T1BFUlRJRVMgKGVrMSwgZWsyLCBlYiBDT0xMQVRFIHBnX2NhdGFsb2cuREVGQVVMVCBBUyBlYikp OworLS0gdHlwZSBpbmNvc2lzdGVuY3kgY2hlY2sKK0NSRUFURSBUQUJMRSB2MSAoYSBpbnQgcHJp bWFyeSBrZXksIGIgdGV4dCk7CitDUkVBVEUgVEFCTEUgZShrMSB0ZXh0LCBrMiB0ZXh0LCBjIHRl eHQpOworQ1JFQVRFIFRBQkxFIHYyIChtIHRleHQsIG4gdGV4dCk7CitDUkVBVEUgUFJPUEVSVFkg R1JBUEggZ3QKKyAgICBWRVJURVggVEFCTEVTICh2MSBLRVkgKGEpLCB2MiBLRVkgKG0pKQorICAg IEVER0UgVEFCTEVTICgKKyAgICAgICAgZSBLRVkgKGsxLCBrMikKKyAgICAgICAgU09VUkNFIEtF WSAoazEpIFJFRkVSRU5DRVMgdjEoYSkKKyAgICAgICAgREVTVElOQVRJT04gS0VZIChrMikgUkVG RVJFTkNFUyB2MihtKSk7IC0tIGZhaWwKK0VSUk9SOiAgbm8gZXF1YWxpdHkgb3BlcmF0b3IgZXhp c3RzIGZvciBTT1VSQ0Uga2V5IGNvbXBhcmlzb24gb2YgZWRnZSAiZSIKK0xJTkUgNDogICAgICAg ICBlIEtFWSAoazEsIGsyKQorICAgICAgICAgICAgICAgIF4KK0FMVEVSIFRBQkxFIGUgRFJPUCBD T0xVTU4gazEsIEFERCBDT0xVTU4gazEgYmlnaW50IHByaW1hcnkga2V5OworQ1JFQVRFIFBST1BF UlRZIEdSQVBIIGd0CisgICAgVkVSVEVYIFRBQkxFUyAodjEgS0VZIChhKSwgdjIgS0VZIChtKSkK KyAgICBFREdFIFRBQkxFUyAoCisgICAgICAgIGUgS0VZIChrMSwgazIpCisgICAgICAgIFNPVVJD RSBLRVkgKGsxKSBSRUZFUkVOQ0VTIHYxKGEpCisgICAgICAgIERFU1RJTkFUSU9OIEtFWSAoazIp IFJFRkVSRU5DRVMgdjIobSkpOwogLS0gaW5mb3JtYXRpb24gc2NoZW1hCiBTRUxFQ1QgKiBGUk9N IGluZm9ybWF0aW9uX3NjaGVtYS5wcm9wZXJ0eV9ncmFwaHMgT1JERVIgQlkgcHJvcGVydHlfZ3Jh cGhfbmFtZTsKICBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nIHwgICAgcHJvcGVydHlfZ3JhcGhfc2No ZW1hICAgIHwgcHJvcGVydHlfZ3JhcGhfbmFtZSAKQEAgLTE5Niw3ICsyODQsOSBAQCBTRUxFQ1Qg KiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5wcm9wZXJ0eV9ncmFwaHMgT1JERVIgQlkgcHJvcGVy dHlfZ3JhcGhfbmFtZTsKICByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgZzMKICByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3Bl cnR5X2dyYXBoX3Rlc3RzIHwgZzQKICByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3By b3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUKLSg1IHJvd3MpCisgcmVncmVzc2lvbiAgICAgICAgICAg ICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMQorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBndAorKDcgcm93cykKIAogU0VM RUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfZWxlbWVudF90YWJsZXMgT1JERVIgQlkg cHJvcGVydHlfZ3JhcGhfbmFtZSwgZWxlbWVudF90YWJsZV9hbGlhczsKICBwcm9wZXJ0eV9ncmFw aF9jYXRhbG9nIHwgICAgcHJvcGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJvcGVydHlfZ3JhcGhf bmFtZSB8IGVsZW1lbnRfdGFibGVfYWxpYXMgfCBlbGVtZW50X3RhYmxlX2tpbmQgfCB0YWJsZV9j YXRhbG9nIHwgICAgICAgIHRhYmxlX3NjaGVtYSAgICAgICAgIHwgdGFibGVfbmFtZSB8IGVsZW1l bnRfdGFibGVfZGVmaW5pdGlvbiAKQEAgLTIxNiw3ICszMDYsMTUgQEAgU0VMRUNUICogRlJPTSBp bmZvcm1hdGlvbl9zY2hlbWEucGdfZWxlbWVudF90YWJsZXMgT1JERVIgQlkgcHJvcGVydHlfZ3Jh cGhfbmFtZSwKICByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMSAgICAgICAgICAgICAgICAgfCBWRVJU RVggICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rl c3RzIHwgdDExICAgICAgICB8IAogIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJv cGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDEyICAgICAgICAgICAg ICAgICB8IFZFUlRFWCAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgfCBjcmVhdGVfcHJvcGVy dHlfZ3JhcGhfdGVzdHMgfCB0MTIgICAgICAgIHwgCiAgcmVncmVzc2lvbiAgICAgICAgICAgICB8 IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTMg ICAgICAgICAgICAgICAgIHwgRURHRSAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IHQxMyAgICAgICAgfCAKLSgxNSByb3dzKQorIHJl Z3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEg ICAgICAgICAgICAgICAgIHwgZWMxICAgICAgICAgICAgICAgICB8IEVER0UgICAgICAgICAgICAg ICB8IHJlZ3Jlc3Npb24gICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBlYzEgICAg ICAgIHwgCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90 ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCBlYzIgICAgICAgICAgICAgICAgIHwgRURHRSAg ICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0 cyB8IGVjMiAgICAgICAgfCAKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3Bl cnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8IHRjMSAgICAgICAgICAgICAg ICAgfCBWRVJURVggICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgdGMxICAgICAgICB8IAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgdGMyICAg ICAgICAgICAgICAgICB8IFZFUlRFWCAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgfCBjcmVh dGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCB0YzIgICAgICAgIHwgCisgcmVncmVzc2lvbiAgICAg ICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAg ICAgfCB0YzMgICAgICAgICAgICAgICAgIHwgVkVSVEVYICAgICAgICAgICAgIHwgcmVncmVzc2lv biAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IHRjMyAgICAgICAgfCAKKyByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3QgICAg ICAgICAgICAgICAgICB8IGUgICAgICAgICAgICAgICAgICAgfCBFREdFICAgICAgICAgICAgICAg fCByZWdyZXNzaW9uICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZSAgICAgICAg ICB8IAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVz dHMgfCBndCAgICAgICAgICAgICAgICAgIHwgdjEgICAgICAgICAgICAgICAgICB8IFZFUlRFWCAg ICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMg fCB2MSAgICAgICAgIHwgCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0 eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCB2MiAgICAgICAgICAgICAgICAg IHwgVkVSVEVYICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9n cmFwaF90ZXN0cyB8IHYyICAgICAgICAgfCAKKygyMyByb3dzKQogCiBTRUxFQ1QgKiBGUk9NIGlu Zm9ybWF0aW9uX3NjaGVtYS5wZ19lbGVtZW50X3RhYmxlX2tleV9jb2x1bW5zIE9SREVSIEJZIHBy b3BlcnR5X2dyYXBoX25hbWUsIGVsZW1lbnRfdGFibGVfYWxpYXMsIG9yZGluYWxfcG9zaXRpb247 CiAgcHJvcGVydHlfZ3JhcGhfY2F0YWxvZyB8ICAgIHByb3BlcnR5X2dyYXBoX3NjaGVtYSAgICB8 IHByb3BlcnR5X2dyYXBoX25hbWUgfCBlbGVtZW50X3RhYmxlX2FsaWFzIHwgY29sdW1uX25hbWUg fCBvcmRpbmFsX3Bvc2l0aW9uIApAQCAtMjQwLDcgKzMzOCwxOCBAQCBTRUxFQ1QgKiBGUk9NIGlu Zm9ybWF0aW9uX3NjaGVtYS5wZ19lbGVtZW50X3RhYmxlX2tleV9jb2x1bW5zIE9SREVSIEJZIHBy b3BlcnR5XwogIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDExICAgICAgICAgICAgICAgICB8IGEgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgMQogIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVh dGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDEyICAgICAg ICAgICAgICAgICB8IGIgICAgICAgICAgIHwgICAgICAgICAgICAgICAgMQogIHJlZ3Jlc3Npb24g ICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAg ICAgICAgIHwgdDEzICAgICAgICAgICAgICAgICB8IGMgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgMQotKDE5IHJvd3MpCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0 eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCBlYzEgICAgICAgICAgICAgICAg IHwgZWsxICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAgICAgICAg ICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCBl YzEgICAgICAgICAgICAgICAgIHwgZWsyICAgICAgICAgfCAgICAgICAgICAgICAgICAyCisgcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAg ICAgICAgICAgICAgICAgfCBlYzIgICAgICAgICAgICAgICAgIHwgZWsxICAgICAgICAgfCAgICAg ICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9n cmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCBlYzIgICAgICAgICAgICAgICAgIHwg ZWsyICAgICAgICAgfCAgICAgICAgICAgICAgICAyCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8 IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCB0YzEg ICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisgcmVncmVz c2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAg ICAgICAgICAgICAgfCB0YzIgICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCB0YzMgICAgICAgICAgICAgICAgIHwgYSAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCBlICAgICAg ICAgICAgICAgICAgIHwgazEgICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lv biAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAg ICAgICAgICAgfCBlICAgICAgICAgICAgICAgICAgIHwgazIgICAgICAgICAgfCAgICAgICAgICAg ICAgICAyCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90 ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCB2MSAgICAgICAgICAgICAgICAgIHwgYSAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCB2MiAgICAgICAg ICAgICAgICAgIHwgbSAgICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisoMzAgcm93cykKIAog U0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfZWRnZV90YWJsZV9jb21wb25lbnRz IE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGVkZ2VfdGFibGVfYWxpYXMsIGVkZ2VfZW5k IERFU0MsIG9yZGluYWxfcG9zaXRpb247CiAgcHJvcGVydHlfZ3JhcGhfY2F0YWxvZyB8ICAgIHBy b3BlcnR5X2dyYXBoX3NjaGVtYSAgICB8IHByb3BlcnR5X2dyYXBoX25hbWUgfCBlZGdlX3RhYmxl X2FsaWFzIHwgdmVydGV4X3RhYmxlX2FsaWFzIHwgIGVkZ2VfZW5kICAgfCBlZGdlX3RhYmxlX2Nv bHVtbl9uYW1lIHwgdmVydGV4X3RhYmxlX2NvbHVtbl9uYW1lIHwgb3JkaW5hbF9wb3NpdGlvbiAK QEAgLTI1Nyw3ICszNjYsMTMgQEAgU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdf ZWRnZV90YWJsZV9jb21wb25lbnRzIE9SREVSIEJZIHByb3BlcnR5X2dyYXAKICByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAg ICAgICAgICB8IGUyICAgICAgICAgICAgICAgfCB0MyAgICAgICAgICAgICAgICAgfCBERVNUSU5B VElPTiB8IHQgICAgICAgICAgICAgICAgICAgICAgfCB5ICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAyCiAgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTMgICAgICAgICAgICAg IHwgdDExICAgICAgICAgICAgICAgIHwgU09VUkNFICAgICAgfCBkICAgICAgICAgICAgICAgICAg ICAgIHwgYSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgMQogIHJlZ3Jl c3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAg ICAgICAgICAgICAgIHwgdDEzICAgICAgICAgICAgICB8IHQxMiAgICAgICAgICAgICAgICB8IERF U1RJTkFUSU9OIHwgZSAgICAgICAgICAgICAgICAgICAgICB8IGIgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgIDEKLSgxMiByb3dzKQorIHJlZ3Jlc3Npb24gICAgICAgICAg ICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwg ZWMxICAgICAgICAgICAgICB8IHRjMSAgICAgICAgICAgICAgICB8IFNPVVJDRSAgICAgIHwgZWsx ICAgICAgICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8IGVjMSAgICAgICAgICAgICAgfCB0YzIgICAg ICAgICAgICAgICAgfCBERVNUSU5BVElPTiB8IGVrMiAgICAgICAgICAgICAgICAgICAgfCBhICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAg ICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAg ICAgfCBlYzIgICAgICAgICAgICAgIHwgdGMxICAgICAgICAgICAgICAgIHwgU09VUkNFICAgICAg fCBlazEgICAgICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgMQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlf Z3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgZWMyICAgICAgICAgICAgICB8IHRj MiAgICAgICAgICAgICAgICB8IERFU1RJTkFUSU9OIHwgZWsyICAgICAgICAgICAgICAgICAgICB8 IGEgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3QgICAgICAgICAg ICAgICAgICB8IGUgICAgICAgICAgICAgICAgfCB2MSAgICAgICAgICAgICAgICAgfCBTT1VSQ0Ug ICAgICB8IGsxICAgICAgICAgICAgICAgICAgICAgfCBhICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCBlICAgICAgICAgICAgICAg IHwgdjIgICAgICAgICAgICAgICAgIHwgREVTVElOQVRJT04gfCBrMiAgICAgICAgICAgICAgICAg ICAgIHwgbSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgMQorKDE4IHJv d3MpCiAKIFNFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnBnX2VsZW1lbnRfdGFibGVf bGFiZWxzIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGVsZW1lbnRfdGFibGVfYWxpYXMs IGxhYmVsX25hbWU7CiAgcHJvcGVydHlfZ3JhcGhfY2F0YWxvZyB8ICAgIHByb3BlcnR5X2dyYXBo X3NjaGVtYSAgICB8IHByb3BlcnR5X2dyYXBoX25hbWUgfCBlbGVtZW50X3RhYmxlX2FsaWFzIHwg bGFiZWxfbmFtZSAKQEAgLTI4MCwxMSArMzk1LDE5IEBAIFNFTEVDVCAqIEZST00gaW5mb3JtYXRp b25fc2NoZW1hLnBnX2VsZW1lbnRfdGFibGVfbGFiZWxzIE9SREVSIEJZIHByb3BlcnR5X2dyYXBo CiAgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8 IGc1ICAgICAgICAgICAgICAgICAgfCB0MTEgICAgICAgICAgICAgICAgIHwgdDExCiAgcmVncmVz c2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAg ICAgICAgICAgICAgfCB0MTIgICAgICAgICAgICAgICAgIHwgdDEyCiAgcmVncmVzc2lvbiAgICAg ICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAg ICAgfCB0MTMgICAgICAgICAgICAgICAgIHwgdDEzCi0oMTggcm93cykKKyByZWdyZXNzaW9uICAg ICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAg ICAgICB8IGVjMSAgICAgICAgICAgICAgICAgfCBlYzEKKyByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8IGVj MiAgICAgICAgICAgICAgICAgfCBlYzIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8IHRjMSAgICAgICAg ICAgICAgICAgfCB0YzEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8IHRjMiAgICAgICAgICAgICAgICAg fCB0YzIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rl c3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8IHRjMyAgICAgICAgICAgICAgICAgfCB0YzMKKyBy ZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3Qg ICAgICAgICAgICAgICAgICB8IGUgICAgICAgICAgICAgICAgICAgfCBlCisgcmVncmVzc2lvbiAg ICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAg ICAgICAgfCB2MSAgICAgICAgICAgICAgICAgIHwgdjEKKyByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3QgICAgICAgICAgICAgICAgICB8IHYy ICAgICAgICAgICAgICAgICAgfCB2MgorKDI2IHJvd3MpCiAKIFNFTEVDVCAqIEZST00gaW5mb3Jt YXRpb25fc2NoZW1hLnBnX2VsZW1lbnRfdGFibGVfcHJvcGVydGllcyBPUkRFUiBCWSBwcm9wZXJ0 eV9ncmFwaF9uYW1lLCBlbGVtZW50X3RhYmxlX2FsaWFzLCBwcm9wZXJ0eV9uYW1lOwotIHByb3Bl cnR5X2dyYXBoX2NhdGFsb2cgfCAgICBwcm9wZXJ0eV9ncmFwaF9zY2hlbWEgICAgfCBwcm9wZXJ0 eV9ncmFwaF9uYW1lIHwgZWxlbWVudF90YWJsZV9hbGlhcyB8IHByb3BlcnR5X25hbWUgfCBwcm9w ZXJ0eV9leHByZXNzaW9uIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHByb3BlcnR5X2dyYXBo X2NhdGFsb2cgfCAgICBwcm9wZXJ0eV9ncmFwaF9zY2hlbWEgICAgfCBwcm9wZXJ0eV9ncmFwaF9u YW1lIHwgZWxlbWVudF90YWJsZV9hbGlhcyB8IHByb3BlcnR5X25hbWUgfCAgICAgICAgIHByb3Bl cnR5X2V4cHJlc3Npb24gICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAgICAgICAgICAgfCBhICAg ICAgICAgICAgIHwgYQogIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlf Z3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgZTEgICAgICAgICAgICAgICAgICB8 IGkgICAgICAgICAgICAgfCBpCiAgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBlMSAgICAgICAgICAgICAg ICAgIHwgdCAgICAgICAgICAgICB8IHQKQEAgLTMyMCw3ICs0NDMsMjYgQEAgU0VMRUNUICogRlJP TSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfZWxlbWVudF90YWJsZV9wcm9wZXJ0aWVzIE9SREVSIEJZ IHByb3BlcnR5X2cKICByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dy YXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMyAgICAgICAgICAgICAgICAgfCBj ICAgICAgICAgICAgIHwgYwogIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVy dHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDEzICAgICAgICAgICAgICAg ICB8IGQgICAgICAgICAgICAgfCBkCiAgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9w cm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTMgICAgICAgICAg ICAgICAgIHwgZSAgICAgICAgICAgICB8IGUKLSgzNSByb3dzKQorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAg IHwgZWMxICAgICAgICAgICAgICAgICB8IGViICAgICAgICAgICAgfCBlYgorIHJlZ3Jlc3Npb24g ICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAg ICAgICAgIHwgZWMxICAgICAgICAgICAgICAgICB8IGVrMSAgICAgICAgICAgfCBlazEKKyByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAg ICAgICAgICAgICAgICB8IGVjMSAgICAgICAgICAgICAgICAgfCBlazIgICAgICAgICAgIHwgZWsy CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8 IGdjMSAgICAgICAgICAgICAgICAgfCBlYzIgICAgICAgICAgICAgICAgIHwgZWIgICAgICAgICAg ICB8IChlYiBDT0xMQVRFICJkZWZhdWx0IikKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8IGVjMiAgICAg ICAgICAgICAgICAgfCBlazEgICAgICAgICAgIHwgZWsxCisgcmVncmVzc2lvbiAgICAgICAgICAg ICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCBl YzIgICAgICAgICAgICAgICAgIHwgZWsyICAgICAgICAgICB8IGVrMgorIHJlZ3Jlc3Npb24gICAg ICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAg ICAgIHwgdGMxICAgICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lv biAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAg ICAgICAgICAgfCB0YzEgICAgICAgICAgICAgICAgIHwgYiAgICAgICAgICAgICB8ICgoYik6OmNo YXJhY3RlciB2YXJ5aW5nIENPTExBVEUgIkMiKQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgdGMyICAg ICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAg ICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCB0 YzIgICAgICAgICAgICAgICAgIHwgYiAgICAgICAgICAgICB8ICgoYik6OmNoYXJhY3RlciB2YXJ5 aW5nIENPTExBVEUgIkMiKQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVy dHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgdGMzICAgICAgICAgICAgICAg ICB8IGEgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9w cm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCB0YzMgICAgICAgICAg ICAgICAgIHwgYiAgICAgICAgICAgICB8IChiKTo6Y2hhcmFjdGVyIHZhcnlpbmcKKyByZWdyZXNz aW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3QgICAgICAg ICAgICAgICAgICB8IGUgICAgICAgICAgICAgICAgICAgfCBjICAgICAgICAgICAgIHwgYworIHJl Z3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBndCAg ICAgICAgICAgICAgICAgIHwgZSAgICAgICAgICAgICAgICAgICB8IGsxICAgICAgICAgICAgfCBr MQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMg fCBndCAgICAgICAgICAgICAgICAgIHwgZSAgICAgICAgICAgICAgICAgICB8IGsyICAgICAgICAg ICAgfCBrMgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBndCAgICAgICAgICAgICAgICAgIHwgdjEgICAgICAgICAgICAgICAgICB8IGEgICAg ICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9n cmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCB2MSAgICAgICAgICAgICAgICAgIHwg YiAgICAgICAgICAgICB8IGIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3Bl cnR5X2dyYXBoX3Rlc3RzIHwgZ3QgICAgICAgICAgICAgICAgICB8IHYyICAgICAgICAgICAgICAg ICAgfCBtICAgICAgICAgICAgIHwgbQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVf cHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBndCAgICAgICAgICAgICAgICAgIHwgdjIgICAgICAgICAg ICAgICAgICB8IG4gICAgICAgICAgICAgfCBuCisoNTQgcm93cykKIAogU0VMRUNUICogRlJPTSBp bmZvcm1hdGlvbl9zY2hlbWEucGdfbGFiZWxfcHJvcGVydGllcyBPUkRFUiBCWSBwcm9wZXJ0eV9n cmFwaF9uYW1lLCBsYWJlbF9uYW1lLCBwcm9wZXJ0eV9uYW1lOwogIHByb3BlcnR5X2dyYXBoX2Nh dGFsb2cgfCAgICBwcm9wZXJ0eV9ncmFwaF9zY2hlbWEgICAgfCBwcm9wZXJ0eV9ncmFwaF9uYW1l IHwgbGFiZWxfbmFtZSB8IHByb3BlcnR5X25hbWUgCkBAIC0zNjcsNyArNTA5LDI2IEBAIFNFTEVD VCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnBnX2xhYmVsX3Byb3BlcnRpZXMgT1JERVIgQlkg cHJvcGVydHlfZ3JhcGhfbmFtCiAgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTMgICAgICAgIHwgYwog IHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBn NSAgICAgICAgICAgICAgICAgIHwgdDEzICAgICAgICB8IGQKICByZWdyZXNzaW9uICAgICAgICAg ICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8 IHQxMyAgICAgICAgfCBlCi0oNDIgcm93cykKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8IGVjMSAgICAg ICAgfCBlYgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgZWMxICAgICAgICB8IGVrMQorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAg ICAgICAgICAgIHwgZWMxICAgICAgICB8IGVrMgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgZWMyICAg ICAgICB8IGViCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCBlYzIgICAgICAgIHwgZWsxCisgcmVncmVz c2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAg ICAgICAgICAgICAgfCBlYzIgICAgICAgIHwgZWsyCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8 IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCB0YzEg ICAgICAgIHwgYQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgdGMxICAgICAgICB8IGIKKyByZWdyZXNz aW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAg ICAgICAgICAgICB8IHRjMiAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCB0YzIgICAg ICAgIHwgYgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgdGMzICAgICAgICB8IGEKKyByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAg ICAgICAgICB8IHRjMyAgICAgICAgfCBiCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCBlICAgICAgICAg IHwgYworIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVz dHMgfCBndCAgICAgICAgICAgICAgICAgIHwgZSAgICAgICAgICB8IGsxCisgcmVncmVzc2lvbiAg ICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAg ICAgICAgfCBlICAgICAgICAgIHwgazIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3QgICAgICAgICAgICAgICAgICB8IHYxICAgICAgICAg fCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0 cyB8IGd0ICAgICAgICAgICAgICAgICAgfCB2MSAgICAgICAgIHwgYgorIHJlZ3Jlc3Npb24gICAg ICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBndCAgICAgICAgICAgICAg ICAgIHwgdjIgICAgICAgICB8IG0KKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3By b3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3QgICAgICAgICAgICAgICAgICB8IHYyICAgICAgICAgfCBu CisoNjEgcm93cykKIAogU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfbGFiZWxz IE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGxhYmVsX25hbWU7CiAgcHJvcGVydHlfZ3Jh cGhfY2F0YWxvZyB8ICAgIHByb3BlcnR5X2dyYXBoX3NjaGVtYSAgICB8IHByb3BlcnR5X2dyYXBo X25hbWUgfCBsYWJlbF9uYW1lIApAQCAtMzkwLDM5ICs1NTEsNTkgQEAgU0VMRUNUICogRlJPTSBp bmZvcm1hdGlvbl9zY2hlbWEucGdfbGFiZWxzIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUs IGxhYmVsX24KICByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMQogIHJlZ3Jlc3Npb24gICAgICAgICAg ICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwg dDEyCiAgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0 cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTMKLSgxOCByb3dzKQorIHJlZ3Jlc3Npb24gICAg ICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAg ICAgIHwgZWMxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCBlYzIKKyByZWdyZXNzaW9uICAgICAgICAg ICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8 IHRjMQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVz dHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgdGMyCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8 IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCB0YzMK KyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwg Z3QgICAgICAgICAgICAgICAgICB8IGUKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3QgICAgICAgICAgICAgICAgICB8IHYxCisgcmVncmVz c2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAg ICAgICAgICAgICAgfCB2MgorKDI2IHJvd3MpCiAKIFNFTEVDVCAqIEZST00gaW5mb3JtYXRpb25f c2NoZW1hLnBnX3Byb3BlcnR5X2RhdGFfdHlwZXMgT1JERVIgQlkgcHJvcGVydHlfZ3JhcGhfbmFt ZSwgcHJvcGVydHlfbmFtZTsKLSBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nIHwgICAgcHJvcGVydHlf Z3JhcGhfc2NoZW1hICAgIHwgcHJvcGVydHlfZ3JhcGhfbmFtZSB8IHByb3BlcnR5X25hbWUgfCBk YXRhX3R5cGUgfCBjaGFyYWN0ZXJfbWF4aW11bV9sZW5ndGggfCBjaGFyYWN0ZXJfb2N0ZXRfbGVu Z3RoIHwgY2hhcmFjdGVyX3NldF9jYXRhbG9nIHwgY2hhcmFjdGVyX3NldF9zY2hlbWEgfCBjaGFy YWN0ZXJfc2V0X25hbWUgfCBjb2xsYXRpb25fY2F0YWxvZyB8IGNvbGxhdGlvbl9zY2hlbWEgfCBj b2xsYXRpb25fbmFtZSB8IG51bWVyaWNfcHJlY2lzaW9uIHwgbnVtZXJpY19wcmVjaXNpb25fcmFk aXggfCBudW1lcmljX3NjYWxlIHwgZGF0ZXRpbWVfcHJlY2lzaW9uIHwgaW50ZXJ2YWxfdHlwZSB8 IGludGVydmFsX3ByZWNpc2lvbiB8IHVzZXJfZGVmaW5lZF90eXBlX2NhdGFsb2cgfCB1c2VyX2Rl ZmluZWRfdHlwZV9zY2hlbWEgfCB1c2VyX2RlZmluZWRfdHlwZV9uYW1lIHwgc2NvcGVfY2F0YWxv ZyB8IHNjb3BlX3NjaGVtYSB8IHNjb3BlX25hbWUgfCBtYXhpbXVtX2NhcmRpbmFsaXR5IHwgZHRk X2lkZW50aWZpZXIgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLQotIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAgICB8IGludGVnZXIgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAg ICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBhCi0gcmVncmVzc2lv biAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAg ICAgICAgICAgfCBiICAgICAgICAgICAgIHwgdGV4dCAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNz aW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICB8IGIKLSByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGkgICAgICAg ICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAg fCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgIHwgaQotIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgaiAgICAgICAgICAgICB8IGludGVnZXIgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAg ICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBqCi0gcmVncmVzc2lv biAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAg ICAgICAgICAgfCBrICAgICAgICAgICAgIHwgaW50ZWdlciAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNz aW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50NCAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICB8IGsKLSByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQgICAgICAg ICAgICAgfCB0ZXh0ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAg fCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgIHwgdAotIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgeCAgICAgICAgICAgICB8IGludGVnZXIgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAg ICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCB4Ci0gcmVncmVzc2lv biAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAg ICAgICAgICAgfCB5ICAgICAgICAgICAgIHwgdGV4dCAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNz aW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICB8IHkKLSByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHogICAgICAg ICAgICAgfCB0ZXh0ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAg fCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgIHwgegotIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnMyAgICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAgICB8IGludGVnZXIgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAg ICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBhCi0gcmVncmVzc2lv biAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAg ICAgICAgICAgfCBiICAgICAgICAgICAgIHwgdGV4dCAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNz aW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICB8IGIKLSByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHggICAgICAg ICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAg fCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgIHwgeAotIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnMyAgICAgICAgICAgICAgICAgIHwgeSAgICAgICAgICAgICB8IHRleHQgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAg ICAgICAgICB8IHRleHQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCB5Ci0gcmVncmVzc2lv biAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAg ICAgICAgICAgfCB6ICAgICAgICAgICAgIHwgdGV4dCAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNz aW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICB8IHoKLSByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGEgICAgICAg ICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAg fCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgIHwgYQotIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgaSAgICAgICAgICAgICB8IGludGVnZXIgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAg ICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBpCi0gcmVncmVzc2lv biAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAg ICAgICAgICAgfCBpX2ogICAgICAgICAgIHwgaW50ZWdlciAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNz aW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50NCAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICB8IGlfagotIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwga2sgICAg ICAgICAgICB8IGludGVnZXIgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAg ICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgfCBrawotIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICB8IHRleHQgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAg ICAgICAgICAgICB8IHRleHQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCB0Ci0gcmVncmVz c2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAg ICAgICAgICAgICAgfCB4ICAgICAgICAgICAgIHwgaW50ZWdlciAgIHwgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdy ZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50NCAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICB8IHgKLSByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IHl5ICAg ICAgICAgICAgfCB0ZXh0ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAg ICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgIHwgeXkKLSByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dy YXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IHp6ICAgICAgICAgICAgfCB0ZXh0ICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAg ICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgenoKLSByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAg ICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJl Z3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0 ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgYQotIHJlZ3Jlc3Npb24gICAgICAgICAgICAg fCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgYiAg ICAgICAgICAgICB8IGludGVnZXIgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAg ICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgfCBiCi0gcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9n cmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCBjICAgICAgICAgICAgIHwgaW50ZWdl ciAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAg ICAgICAgICAgICAgIHwgaW50NCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGMKLSByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAg ICAgICAgICAgICAgICB8IGQgICAgICAgICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJl Z3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0 ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgZAotIHJlZ3Jlc3Npb24gICAgICAgICAgICAg fCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgZSAg ICAgICAgICAgICB8IGludGVnZXIgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAg ICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgfCBlCi0oMjcgcm93cykKKyBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nIHwgICAgcHJv cGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJvcGVydHlfZ3JhcGhfbmFtZSB8IHByb3BlcnR5X25h bWUgfCAgICAgZGF0YV90eXBlICAgICB8IGNoYXJhY3Rlcl9tYXhpbXVtX2xlbmd0aCB8IGNoYXJh Y3Rlcl9vY3RldF9sZW5ndGggfCBjaGFyYWN0ZXJfc2V0X2NhdGFsb2cgfCBjaGFyYWN0ZXJfc2V0 X3NjaGVtYSB8IGNoYXJhY3Rlcl9zZXRfbmFtZSB8IGNvbGxhdGlvbl9jYXRhbG9nIHwgY29sbGF0 aW9uX3NjaGVtYSB8IGNvbGxhdGlvbl9uYW1lIHwgbnVtZXJpY19wcmVjaXNpb24gfCBudW1lcmlj X3ByZWNpc2lvbl9yYWRpeCB8IG51bWVyaWNfc2NhbGUgfCBkYXRldGltZV9wcmVjaXNpb24gfCBp bnRlcnZhbF90eXBlIHwgaW50ZXJ2YWxfcHJlY2lzaW9uIHwgdXNlcl9kZWZpbmVkX3R5cGVfY2F0 YWxvZyB8IHVzZXJfZGVmaW5lZF90eXBlX3NjaGVtYSB8IHVzZXJfZGVmaW5lZF90eXBlX25hbWUg fCBzY29wZV9jYXRhbG9nIHwgc2NvcGVfc2NoZW1hIHwgc2NvcGVfbmFtZSB8IG1heGltdW1fY2Fy ZGluYWxpdHkgfCBkdGRfaWRlbnRpZmllciAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGEgICAg ICAgICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgIHwg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAg ICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBiICAgICAgICAgICAgIHwg dGV4dCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8ICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAg fCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgIHwgYgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgaSAgICAgICAgICAgICB8IGludGVnZXIgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxv ZyAgICAgICAgICAgICAgIHwgaW50NCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGkKKyBy ZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIg ICAgICAgICAgICAgICAgICB8IGogICAgICAgICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3Npb24gICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAg ICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBqCisgcmVncmVzc2lvbiAg ICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAg ICAgICAgfCBrICAgICAgICAgICAgIHwgaW50ZWdlciAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNz aW9uICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJl Z3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0 ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgaworIHJlZ3Jlc3Npb24gICAgICAgICAgICAg fCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgdCAg ICAgICAgICAgICB8IHRleHQgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAg fCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAg ICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICB8IHQKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3By b3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHggICAgICAgICAgICAg fCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgIHwgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAg ICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgfCB4CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB5ICAgICAgICAgICAgIHwgdGV4dCAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRh bG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgeQor IHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBn MiAgICAgICAgICAgICAgICAgIHwgeiAgICAgICAgICAgICB8IHRleHQgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgIHwgcmVncmVzc2lvbiAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAg ICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IHoKKyByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAg ICAgICAgICB8IGEgICAgICAgICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jl c3Npb24gICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwg cmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGlu dDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAg ICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCBi ICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAg ICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24g ICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgIHwgYgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVf cHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAgICAgICAgICAgIHwgeCAgICAgICAgICAg ICB8IGludGVnZXIgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgfCAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAg ICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50NCAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICB8IHgKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dy YXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHkgICAgICAgICAgICAgfCB0ZXh0ICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgIHwgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2Nh dGFsb2cgICAgICAgICAgICAgICB8IHRleHQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCB5 CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8 IGczICAgICAgICAgICAgICAgICAgfCB6ICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAg ICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgegorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAg ICAgICAgICAgIHwgYSAgICAgICAgICAgICB8IGludGVnZXIgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVn cmVzc2lvbiAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg fCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwg aW50NCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGEKKyByZWdyZXNzaW9uICAgICAgICAg ICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8 IGkgICAgICAgICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAg ICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lv biAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgfCBpCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBpX2ogICAgICAg ICAgIHwgaW50ZWdlciAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8ICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAg ICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgIHwgaV9qCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0 eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBrayAgICAgICAgICAgIHwgaW50 ZWdlciAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8ICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBw Z19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg IHwga2sKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rl c3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cg ICAgICAgICAgICAgICB8IHRleHQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCB0CisgcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAg ICAgICAgICAgICAgICAgfCB4ICAgICAgICAgICAgIHwgaW50ZWdlciAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg fCByZWdyZXNzaW9uICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAg ICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgeAorIHJlZ3Jlc3Npb24gICAg ICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAg ICAgIHwgeXkgICAgICAgICAgICB8IHRleHQgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lv biAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdy ZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICB8IHl5CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8 IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCB6eiAg ICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8 ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAg ICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgIHwgenoKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3By b3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAg fCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgIHwgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAg ICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCBiICAgICAgICAgICAgIHwgaW50ZWdlciAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRh bG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgYgor IHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBn NSAgICAgICAgICAgICAgICAgIHwgYyAgICAgICAgICAgICB8IGludGVnZXIgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgIHwgcmVncmVzc2lvbiAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAg ICAgICAgIHwgaW50NCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGMKKyByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAg ICAgICAgICB8IGQgICAgICAgICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jl c3Npb24gICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwg cmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGlu dDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBkCisgcmVncmVzc2lvbiAgICAgICAgICAg ICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCBl ICAgICAgICAgICAgIHwgaW50ZWdlciAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAg ICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24g ICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgIHwgZQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVf cHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAg ICB8IGludGVnZXIgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgfCAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAg ICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50NCAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICB8IGEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dy YXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8IGIgICAgICAgICAgICAgfCBjaGFyYWN0 ZXIgdmFyeWluZyB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICB8 IEMgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2Nh dGFsb2cgICAgICAgICAgICAgICB8IHZhcmNoYXIgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBi CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8 IGdjMSAgICAgICAgICAgICAgICAgfCBlYiAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAg ICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgZWIKKyByZWdyZXNz aW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAg ICAgICAgICAgICB8IGVrMSAgICAgICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJl Z3Jlc3Npb24gICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg IHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8 IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBlazEKKyByZWdyZXNzaW9uICAgICAg ICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAg ICB8IGVrMiAgICAgICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24g ICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVz c2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgfCBlazIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3QgICAgICAgICAgICAgICAgICB8IGEgICAg ICAgICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgIHwg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAg ICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCBiICAgICAgICAgICAgIHwg dGV4dCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8ICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAg fCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgIHwgYgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBndCAgICAgICAgICAgICAgICAgIHwgYyAgICAgICAgICAgICB8IHRleHQgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxv ZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGMKKyBy ZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3Qg ICAgICAgICAgICAgICAgICB8IGsxICAgICAgICAgICAgfCBiaWdpbnQgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3Npb24gICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAg ICAgICB8IGludDggICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBrMQorIHJlZ3Jlc3Npb24g ICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBndCAgICAgICAgICAg ICAgICAgIHwgazIgICAgICAgICAgICB8IHRleHQgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVz c2lvbiAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCBy ZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4 dCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGsyCisgcmVncmVzc2lvbiAgICAgICAgICAg ICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCBt ICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAg ICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24g ICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgIHwgbQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVf cHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBndCAgICAgICAgICAgICAgICAgIHwgbiAgICAgICAgICAg ICB8IHRleHQgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgfCAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAg ICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICB8IG4KKygzOSByb3dzKQogCiBTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3NjaGVt YS5wZ19wcm9wZXJ0eV9ncmFwaF9wcml2aWxlZ2VzIFdIRVJFIGdyYW50ZWUgTElLRSAncmVncmVz cyUnIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWU7CiAgICAgICAgZ3JhbnRvciAgICAgICB8 ICAgICAgIGdyYW50ZWUgICAgICAgfCBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nIHwgICAgcHJvcGVy dHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJvcGVydHlfZ3JhcGhfbmFtZSB8IHByaXZpbGVnZV90eXBl IHwgaXNfZ3JhbnRhYmxlIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9n cmFwaF90YWJsZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91 dAppbmRleCAzNzk2Mjk3Y2IwNy4uMGE1NzRiMTBmNGIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvZ3JhcGhfdGFibGUub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvZ3JhcGhfdGFibGUub3V0CkBAIC01MTcsNyArNTE3LDggQEAgU0VMRUNUICogRlJPTSBH UkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEpLT4oYiktPihhIGlzIHZsMSkgQ09MVU1OUyAoYS52bmFt ZSBBUyBzZWwKICB2MTMgIHwgdjIzICAgICB8ICAgICAgMzAgfCAgICAgICAxMDMwCiAoMiByb3dz KQogCi0tLSBhZGQgYW4gZWRnZSB3aXRoIHNhbWUgdmVydGV4IGFzIHNvdXJjZSBhbmQgZGVzdGlu YXRpb24gdG8gdGVzdCBsb29wcworLS0gYWRkIGFuIGVkZ2Ugd2l0aCBzYW1lIHZlcnRleCBhcyBz b3VyY2UgYW5kIGRlc3RpbmF0aW9uIHRvIHRlc3QgbG9vcHMuIEFsc28KKy0tIHVzZSB0aGlzIGZv ciBjb2xsYXRpb24gdGVzdHMKIENSRUFURSBUQUJMRSBlM18zIChzcmNfaWQgaW50LAogICAgICAg ICAgICAgICAgICAgICBkZXN0X2lkIGludCwKICAgICAgICAgICAgICAgICAgICAgZW5hbWUgdmFy Y2hhcigxMCksCkBAIC01MzAsOCArNTMxLDM1IEBAIEFMVEVSIFBST1BFUlRZIEdSQVBIIGcxIEFE RCBFREdFIFRBQkxFUyAoCiAgICAgICAgIExBQkVMIGwxIFBST1BFUlRJRVMgKGVuYW1lIEFTIGVs bmFtZSkKICk7CiBJTlNFUlQgSU5UTyBlM18zIFZBTFVFUyAoMjAwMywgMjAwMywgJ2UzMzEnLCAx MDAxMCk7CitJTlNFUlQgSU5UTyBlM18zIFZBTFVFUyAoMjAwMywgMjAwMywgJ0UzMzEnLCAxMDAx MCk7CiAtLSBjeWNsaWMgcGF0dGVybiB3aXRoIGVkZ2UgcGF0dGVybnMgd2l0aCBzYW1lIHZhcmlh YmxlIG5hbWUKLVNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS1bYl0tPihh KS1bYl0tPihhKSBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYsIGIuZW5hbWUgQVMgbG9vcF9uYW1l KSk7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSktW2JdLT4oYSktW2Jd LT4oYSkgQ09MVU1OUyAoYS52bmFtZSBBUyBzZWxmLCBiLmVuYW1lIEFTIGxvb3BfbmFtZSkpIE9S REVSIEJZIGxvb3BfbmFtZSBBU0M7Cisgc2VsZiB8IGxvb3BfbmFtZSAKKy0tLS0tLSstLS0tLS0t LS0tLQorIHYzMyAgfCBlMzMxCisgdjMzICB8IEUzMzEKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZS T00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS1bYl0tPihhKS1bYl0tPihhKSBDT0xVTU5TIChh LnZuYW1lIEFTIHNlbGYsIGIuZW5hbWUgQVMgbG9vcF9uYW1lKSkgT1JERVIgQlkgbG9vcF9uYW1l IENPTExBVEUgIkMiIEFTQzsKKyBzZWxmIHwgbG9vcF9uYW1lIAorLS0tLS0tKy0tLS0tLS0tLS0t CisgdjMzICB8IEUzMzEKKyB2MzMgIHwgZTMzMQorKDIgcm93cykKKworU0VMRUNUICogRlJPTSBH UkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEpLVtiIElTIGVsMiBXSEVSRSBiLmVuYW1lID4gJ0UzMzEn IENPTExBVEUgIkMiXS0+KGEpLVtiXS0+KGEpIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi5l bmFtZSBBUyBsb29wX25hbWUpKTsKKyBzZWxmIHwgbG9vcF9uYW1lIAorLS0tLS0tKy0tLS0tLS0t LS0tCisgdjMzICB8IGUzMzEKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAo ZzEgTUFUQ0ggKGEpLVtiXS0+KGEpLVtiXS0+KGEpIFdIRVJFIGIuZW5hbWUgPiAnRTMzMScgQ09M TEFURSAiQyIgQ09MVU1OUyAoYS52bmFtZSBBUyBzZWxmLCBiLmVuYW1lIEFTIGxvb3BfbmFtZSkp OworIHNlbGYgfCBsb29wX25hbWUgCistLS0tLS0rLS0tLS0tLS0tLS0KKyB2MzMgIHwgZTMzMQor KDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSktW2JdLT4o YSktW2JdLT4oYSkgQ09MVU1OUyAoYS52bmFtZSBBUyBzZWxmLCBiLmVuYW1lIEFTIGxvb3BfbmFt ZSkpIFdIRVJFIGxvb3BfbmFtZSA+ICdFMzMxJyBDT0xMQVRFICJDIjsKICBzZWxmIHwgbG9vcF9u YW1lIAogLS0tLS0tKy0tLS0tLS0tLS0tCiAgdjMzICB8IGUzMzEKQEAgLTU0MSw0MCArNTY5LDg5 IEBAIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS1bYl0tPihjKS1bYl0t PihkKSBDT0xVTU5TIChhLnZuYW1lIEFTIGFuCiBFUlJPUjogIEFuIGVkZ2UgY2FuIG5vdCBjb25u ZWN0IG1vcmUgdGhhbiB0d28gdmVydGV4ZXMgZXZlbiBpbiBhIGN5Y2xpYyBwYXR0ZXJuLgogLS0g cHJvcGVydHkgZ3JhcGggd2l0aCBzb21lIG9mIHRoZSBlbGVtZW50cywgbGFiZWxzIGFuZCBwcm9w ZXJ0aWVzIHNhbWUgYXMgdGhlCiAtLSBwcmV2aW91cyBvbmUuIFRlc3Qgd2hldGhlciBjb21wb25l bnRzIGZyb20gdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBncmFwaCBhcmUKLS0tIHVzZWQuCistLSB1 c2VkLiBBbHNvIHVzZSB0aGlzIGZvciBjb2xsYXRpb24gdGVzdHMKIGNyZWF0ZSBwcm9wZXJ0eSBn cmFwaCBnMgogdmVydGV4IHRhYmxlcyAoCiAJdjEKLSAgICAgICAgbGFiZWwgbDEgcHJvcGVydGll cyAoJ2cyLicgfHwgdm5hbWUgYXMgZWxuYW1lKSwKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGll cyAoJ2cyLicgfHwgdm5hbWUgQ09MTEFURSAiQyIgYXMgZWxuYW1lKSwKIAl2MiBrZXkgKGlkMSwg aWQyKQotICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCB2bmFtZSBhcyBlbG5h bWUpLAorICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCB2bmFtZSBDT0xMQVRF ICJDIiBhcyBlbG5hbWUpLAogCXYzCi0gICAgICAgIGxhYmVsIGwxIHByb3BlcnRpZXMgKCdnMi4n IHx8IHZuYW1lIGFzIGVsbmFtZSkKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAoJ2cyLicg fHwgdm5hbWUgQ09MTEFURSAiQyIgYXMgZWxuYW1lKQogKQogZWRnZSB0YWJsZXMgKAogCWUxXzIg a2V5IChpZF8xLCBpZF8yXzEsIGlkXzJfMikKIAkJc291cmNlIGtleSAoaWRfMSkgcmVmZXJlbmNl cyB2MSAoaWQpCiAJCWRlc3RpbmF0aW9uIGtleSAoaWRfMl8xLCBpZF8yXzIpIHJlZmVyZW5jZXMg djIgKGlkMSwgaWQyKQotICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCBlbmFt ZSBhcyBlbG5hbWUpLAorICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCBlbmFt ZSBDT0xMQVRFICJDIiBhcyBlbG5hbWUpLAogCWUxXzMKIAkJc291cmNlIGtleSAoaWRfMSkgcmVm ZXJlbmNlcyB2MSAoaWQpCiAJCWRlc3RpbmF0aW9uIGtleSAoaWRfMykgcmVmZXJlbmNlcyB2MyAo aWQpCi0gICAgICAgIGxhYmVsIGwxIHByb3BlcnRpZXMgKCdnMi4nIHx8IGVuYW1lIGFzIGVsbmFt ZSksCisgICAgICAgIGxhYmVsIGwxIHByb3BlcnRpZXMgKCdnMi4nIHx8IGVuYW1lIENPTExBVEUg IkMiIGFzIGVsbmFtZSksCiAgICAgZTJfMyBrZXkgKGlkXzJfMSwgaWRfMl8yLCBpZF8zKQogICAg ICAgICBzb3VyY2Uga2V5IChpZF8yXzEsIGlkXzJfMikgcmVmZXJlbmNlcyB2MiAoaWQxLCBpZDIp CiAgICAgICAgIGRlc3RpbmF0aW9uIGtleSAoaWRfMykgcmVmZXJlbmNlcyB2MyAoaWQpCi0gICAg ICAgIGxhYmVsIGwxIHByb3BlcnRpZXMgKCdnMi4nIHx8IGVuYW1lIGFzIGVsbmFtZSkKKyAgICAg ICAgbGFiZWwgbDEgcHJvcGVydGllcyAoJ2cyLicgfHwgZW5hbWUgQ09MTEFURSAiQyIgYXMgZWxu YW1lKSwKKyAgICBlM18zIEtFWSAoc3JjX2lkLCBkZXN0X2lkKQorICAgICAgICBTT1VSQ0UgS0VZ IChzcmNfaWQpIFJFRkVSRU5DRVMgdjMgKGlkKQorICAgICAgICBERVNUSU5BVElPTiBLRVkgKHNy Y19pZCkgUkVGRVJFTkNFUyB2MyAoaWQpCisgICAgICAgIExBQkVMIGwxIFBST1BFUlRJRVMgKCdn Mi4nIHx8IGVuYW1lIENPTExBVEUgIkMiIGFzIGVsbmFtZSkKICk7Ci1zZWxlY3Qgc24sIGNuLCBk biBmcm9tIGdyYXBoX3RhYmxlIChnMiBtYXRjaCAoc3JjIDogbDEpLVtjb25uIDogbDFdLT4oZGVz dCA6IGwxKSBjb2x1bW5zIChzcmMuZWxuYW1lIGFzIHNuLCBjb25uLmVsbmFtZSBhcyBjbiwgZGVz dC5lbG5hbWUgYXMgZG4pKTsKK3NlbGVjdCBzbiwgY24sIGRuIGZyb20gZ3JhcGhfdGFibGUgKGcy IG1hdGNoIChzcmMgOiBsMSktW2Nvbm4gOiBsMV0tPihkZXN0IDogbDEpIGNvbHVtbnMgKHNyYy5l bG5hbWUgYXMgc24sIGNvbm4uZWxuYW1lIGFzIGNuLCBkZXN0LmVsbmFtZSBhcyBkbikpIE9SREVS IEJZIDEsIDIsIDM7CiAgICBzbiAgIHwgICBjbiAgICB8ICAgZG4gICAKIC0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLQotIGcyLnYxMiB8IGcyLmUxMjIgfCBnMi52MjEKICBnMi52MTEgfCBnMi5l MTIxIHwgZzIudjIyCi0gZzIudjEzIHwgZzIuZTEyMyB8IGcyLnYyMwogIGcyLnYxMSB8IGcyLmUx MzEgfCBnMi52MzMKICBnMi52MTEgfCBnMi5lMTMyIHwgZzIudjMxCisgZzIudjEyIHwgZzIuZTEy MiB8IGcyLnYyMQorIGcyLnYxMyB8IGcyLmUxMjMgfCBnMi52MjMKICBnMi52MjIgfCBnMi5lMjMx IHwgZzIudjMyCi0oNiByb3dzKQorIGcyLnYzMyB8IGcyLkUzMzEgfCBnMi52MzMKKyBnMi52MzMg fCBnMi5lMzMxIHwgZzIudjMzCisoOCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxF IChnMiBNQVRDSCAoYSktW2JdLT4oYSktW2JdLT4oYSkgQ09MVU1OUyAoYS5lbG5hbWUgQVMgc2Vs ZiwgYi5lbG5hbWUgQ09MTEFURSBwZ19jYXRhbG9nLiJkZWZhdWx0IiBBUyBsb29wX25hbWUpKSBP UkRFUiBCWSBsb29wX25hbWUgQVNDOworICBzZWxmICB8IGxvb3BfbmFtZSAKKy0tLS0tLS0tKy0t LS0tLS0tLS0tCisgZzIudjMzIHwgZzIuZTMzMQorIGcyLnYzMyB8IGcyLkUzMzEKKygyIHJvd3Mp CisKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcyIE1BVENIIChhKS1bYiBXSEVSRSBiLmVs bmFtZSA+ICdnMi5FMzMxJ10tPihhKS1bYl0tPihhKSBDT0xVTU5TIChhLmVsbmFtZSBBUyBzZWxm LCBiLmVsbmFtZSBBUyBsb29wX25hbWUpKTsKKyAgc2VsZiAgfCBsb29wX25hbWUgCistLS0tLS0t LSstLS0tLS0tLS0tLQorIGcyLnYzMyB8IGcyLmUzMzEKKygxIHJvdykKKworU0VMRUNUICogRlJP TSBHUkFQSF9UQUJMRSAoZzIgTUFUQ0ggKGEpLVtiXS0+KGEpLVtiXS0+KGEpIFdIRVJFIGIuZWxu YW1lID4gJ2cyLkUzMzEnIENPTFVNTlMgKGEuZWxuYW1lIEFTIHNlbGYsIGIuZWxuYW1lIEFTIGxv b3BfbmFtZSkpOworICBzZWxmICB8IGxvb3BfbmFtZSAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tCisg ZzIudjMzIHwgZzIuZTMzMQorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChn MiBNQVRDSCAoYSktW2JdLT4oYSktW2JdLT4oYSkgQ09MVU1OUyAoYS5lbG5hbWUgQVMgc2VsZiwg Yi5lbG5hbWUgQVMgbG9vcF9uYW1lKSkgV0hFUkUgbG9vcF9uYW1lID4gJ2cyLkUzMzEnOworICBz ZWxmICB8IGxvb3BfbmFtZSAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tCisgZzIudjMzIHwgZzIuZTMz MQorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMiBNQVRDSCAoYSktW2Ig V0hFUkUgYi5lbG5hbWUgPiAnZzIuZTMzMScgQ09MTEFURSBwZ19jYXRhbG9nLiJkZWZhdWx0Il0t PihhKS1bYl0tPihhKSBDT0xVTU5TIChhLmVsbmFtZSBBUyBzZWxmLCBiLmVsbmFtZSBBUyBsb29w X25hbWUpKTsKKyAgc2VsZiAgfCBsb29wX25hbWUgCistLS0tLS0tLSstLS0tLS0tLS0tLQorIGcy LnYzMyB8IGcyLkUzMzEKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzIg TUFUQ0ggKGEpLVtiXS0+KGEpLVtiXS0+KGEpIFdIRVJFIGIuZWxuYW1lID4gJ2cyLmUzMzEnIENP TExBVEUgcGdfY2F0YWxvZy4iZGVmYXVsdCIgQ09MVU1OUyAoYS5lbG5hbWUgQVMgc2VsZiwgYi5l bG5hbWUgQVMgbG9vcF9uYW1lKSk7CisgIHNlbGYgIHwgbG9vcF9uYW1lIAorLS0tLS0tLS0rLS0t LS0tLS0tLS0KKyBnMi52MzMgfCBnMi5FMzMxCisoMSByb3cpCisKK1NFTEVDVCAqIEZST00gR1JB UEhfVEFCTEUgKGcyIE1BVENIIChhKS1bYl0tPihhKS1bYl0tPihhKSBDT0xVTU5TIChhLmVsbmFt ZSBBUyBzZWxmLCBiLmVsbmFtZSBBUyBsb29wX25hbWUpKSBXSEVSRSBsb29wX25hbWUgPiAnZzIu ZTMzMScgQ09MTEFURSBwZ19jYXRhbG9nLiJkZWZhdWx0IjsKKyAgc2VsZiAgfCBsb29wX25hbWUg CistLS0tLS0tLSstLS0tLS0tLS0tLQorIGcyLnYzMyB8IGcyLkUzMzEKKygxIHJvdykKIAogQ1JF QVRFIFZJRVcgY3VzdG9tZXJzX3VzIEFTIFNFTEVDVCBjdXN0b21lcl9uYW1lIEZST00gR1JBUEhf VEFCTEUgKG15c2hvcCBNQVRDSCAoYyBJUyBjdXN0b21lcnMgV0hFUkUgYy5hZGRyZXNzID0gJ1VT JyktW0lTIGN1c3RvbWVyX29yZGVyc10tPihvIElTIG9yZGVycykgQ09MVU1OUyAoYy5uYW1lIEFT IGN1c3RvbWVyX25hbWUpKTsKIFNFTEVDVCBwZ19nZXRfdmlld2RlZignY3VzdG9tZXJzX3VzJzo6 cmVnY2xhc3MpOwpAQCAtNjcxLDYgKzc0OCwxNCBAQCBTRUxFQ1QgKgogICAgICAgICAgICAxIHwg Y3VzdG9tZXIxIHwgVVMgICAgICB8IHJlZGFjdGVkMQogKDEgcm93KQogCistLSBncmFwaCB0YWJs ZSBpbiBhIHN1YnF1ZXJ5CitTRUxFQ1QgKiBGUk9NIGN1c3RvbWVycyBjbyBXSEVSRSBjby5jdXN0 b21lcl9pZCA9CisgICAgKFNFTEVDVCBjdXN0b21lcl9pZCBGUk9NIEdSQVBIX1RBQkxFIChteXNo b3AyIE1BVENIIChjZyBJUyBjdXN0b21lcnMgV0hFUkUgY2cuYWRkcmVzcyA9ICdVUycpLVtJUyBj dXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGNnLmN1c3RvbWVyX2lkKSkp OworIGN1c3RvbWVyX2lkIHwgICBuYW1lICAgIHwgYWRkcmVzcyAKKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tCisgICAgICAgICAgIDEgfCBjdXN0b21lcjEgfCBVUworKDEgcm93 KQorCiAtLSBxdWVyeSB3aXRoaW4gZ3JhcGggdGFibGUKIFNFTEVDVCBzbmFtZSwgZG5hbWUKICAg ICBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoc3JjKS0+KGRlc3QpCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvb2lkam9pbnMub3V0CmluZGV4IDNiNDFmYzdiYTA0Li45YWQxNzI3NWYyNCAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKQEAgLTI3NywzICsyNzcsNCBAQCBO T1RJQ0U6ICBjaGVja2luZyBwZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkge3BscHByb3BpZH0g PT4gcGdfcHJvcGdyYXBoX3Byb3BlcgogTk9USUNFOiAgY2hlY2tpbmcgcGdfcHJvcGdyYXBoX2xh YmVsX3Byb3BlcnR5IHtwbHBlbGxhYmVsaWR9ID0+IHBnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVs IHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19wcm9wZ3JhcGhfcHJvcGVydHkge3BncHBnaWR9 ID0+IHBnX2NsYXNzIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19wcm9wZ3JhcGhfcHJvcGVy dHkge3BncHR5cGlkfSA9PiBwZ190eXBlIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19wcm9w Z3JhcGhfcHJvcGVydHkge3BncGNvbGxhdGlvbn0gPT4gcGdfY29sbGF0aW9uIHtvaWR9CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfcHJvcGVydHlfZ3JhcGguc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNxbAppbmRleCA0Zjli NWMwMzQ5Yi4uOWExZmU0ZmM2ZGUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Ny ZWF0ZV9wcm9wZXJ0eV9ncmFwaC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRl X3Byb3BlcnR5X2dyYXBoLnNxbApAQCAtMTQ3LDYgKzE0Nyw4MyBAQCBHUkFOVCBTRUxFQ1QgT04g UFJPUEVSVFkgR1JBUEggZzEgVE8gcmVncmVzc19ncmFwaF91c2VyMjsKIEdSQU5UIFVQREFURSBP TiBQUk9QRVJUWSBHUkFQSCBnMSBUTyByZWdyZXNzX2dyYXBoX3VzZXIyOyAgLS0gZmFpbAogUkVT RVQgUk9MRTsKIAorLS0gY29sbGF0aW9uCitDUkVBVEUgVEFCTEUgdGMxIChhIGludCwgYiB0ZXh0 KTsKK0NSRUFURSBUQUJMRSB0YzIgKGEgaW50LCBiIHRleHQpOworQ1JFQVRFIFRBQkxFIHRjMyAo YSBpbnQsIGIgdGV4dCBDT0xMQVRFICJDIik7CisKK0NSRUFURSBUQUJMRSBlYzEgKGVrMSBpbnQs IGVrMiBpbnQsIGViIHRleHQpOworQ1JFQVRFIFRBQkxFIGVjMiAoZWsxIGludCwgZWsyIGludCwg ZWIgdGV4dCBDT0xMQVRFICJQT1NJWCIpOworCitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZ2MxCisg ICAgVkVSVEVYIFRBQkxFUyAodGMxIEtFWSAoYSksIHRjMiBLRVkgKGEpLCB0YzMgS0VZIChhKSk7 IC0tIGZhaWwKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBnYzEKKyAgICBWRVJURVggVEFCTEVTICh0 YzEgS0VZIChhKSwgdGMyIEtFWSAoYSkpCisgICAgRURHRSBUQUJMRVMgKAorICAgICAgICBlYzEg S0VZIChlazEsIGVrMikKKyAgICAgICAgICAgIFNPVVJDRSBLRVkgKGVrMSkgUkVGRVJFTkNFUyB0 YzEgKGEpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKGVrMikgUkVGRVJFTkNFUyB0YzIg KGEpLAorICAgICAgICBlYzIgS0VZIChlazEsIGVrMikKKyAgICAgICAgICAgIFNPVVJDRSBLRVkg KGVrMSkgUkVGRVJFTkNFUyB0YzEgKGEpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKGVr MikgUkVGRVJFTkNFUyB0YzIgKGEpKTsgLS0gZmFpbAorQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGdj MQorICAgIFZFUlRFWCBUQUJMRVMgKHRjMSBLRVkgKGEpIERFRkFVTFQgTEFCRUwgUFJPUEVSVElF UyAoYSksIHRjMyBLRVkgKGIpKQorICAgIEVER0UgVEFCTEVTICgKKyAgICAgICAgZWMyIEtFWSAo ZWsxLCBlYikKKyAgICAgICAgICAgIFNPVVJDRSBLRVkgKGVrMSkgUkVGRVJFTkNFUyB0YzEgKGEp CisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKGViKSBSRUZFUkVOQ0VTIHRjMyAoYikpOyAt LSBmYWlsCitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZ2MxCisgICAgVkVSVEVYIFRBQkxFUyAodGMx IEtFWSAoYSksIHRjMiBLRVkgKGEpKQorICAgIEVER0UgVEFCTEVTICgKKyAgICAgICAgZWMxIEtF WSAoZWsxLCBlazIpCisgICAgICAgICAgICBTT1VSQ0UgS0VZIChlazEpIFJFRkVSRU5DRVMgdGMx IChhKQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZIChlazIpIFJFRkVSRU5DRVMgdGMyIChh KSk7CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnYzEgQUREIFZFUlRFWCBUQUJMRVMgKHRjMyBLRVkg KGEpKTsgLS0gZmFpbAorQUxURVIgUFJPUEVSVFkgR1JBUEggZ2MxIEFERCBFREdFIFRBQkxFUyAo CisgICAgICAgICAgICBlYzIgS0VZIChlazEsIGVrMikKKyAgICAgICAgICAgICAgICBTT1VSQ0Ug S0VZIChlazEpIFJFRkVSRU5DRVMgdGMxIChhKQorICAgICAgICAgICAgICAgIERFU1RJTkFUSU9O IEtFWSAoZWsyKSBSRUZFUkVOQ0VTIHRjMiAoYSkpOyAtLSBmYWlsCitBTFRFUiBQUk9QRVJUWSBH UkFQSCBnYzEKKyAgICBBREQgVkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHRjMyBLRVkgKGEpIERF RkFVTFQgTEFCRUwgUFJPUEVSVElFUyAoYSwgYiBDT0xMQVRFIHBnX2NhdGFsb2cuREVGQVVMVCBB UyBiKSk7CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnYzEgQUREIEVER0UgVEFCTEVTICgKKyAgICAg ICAgICAgIGVjMiBLRVkgKGVrMSwgZWsyKQorICAgICAgICAgICAgICAgIFNPVVJDRSBLRVkgKGVr MSkgUkVGRVJFTkNFUyB0YzEgKGEpCisgICAgICAgICAgICAgICAgREVTVElOQVRJT04gS0VZIChl azIpIFJFRkVSRU5DRVMgdGMyIChhKQorICAgICAgICAgICAgICAgIERFRkFVTFQgTEFCRUwgUFJP UEVSVElFUyAoZWsxLCBlazIsIGViIENPTExBVEUgcGdfY2F0YWxvZy5ERUZBVUxUIEFTIGViKSk7 CitEUk9QIFBST1BFUlRZIEdSQVBIIGdjMTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBnYzEKKyAg ICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgdGMxIEtFWSAoYSkgREVGQVVMVCBMQUJFTCBQUk9Q RVJUSUVTIChhLCBiOjp2YXJjaGFyIENPTExBVEUgIkMiIEFTIGIpLAorICAgICAgICB0YzIgS0VZ IChhKSBERUZBVUxUIExBQkVMIFBST1BFUlRJRVMgKGEsIChiIENPTExBVEUgIkMiKTo6dmFyY2hh ciBBUyBiKSwKKyAgICAgICAgdGMzIEtFWSAoYSkgREVGQVVMVCBMQUJFTCBQUk9QRVJUSUVTIChh LCBiOjp2YXJjaGFyIEFTIGIpKQorICAgIEVER0UgVEFCTEVTICgKKyAgICAgICAgZWMxIEtFWSAo ZWsxLCBlazIpCisgICAgICAgICAgICBTT1VSQ0UgS0VZIChlazEpIFJFRkVSRU5DRVMgdGMxIChh KQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZIChlazIpIFJFRkVSRU5DRVMgdGMyIChhKQor ICAgICAgICAgICAgREVGQVVMVCBMQUJFTCBQUk9QRVJUSUVTIChlazEsIGVrMiwgZWIpLAorICAg ICAgICBlYzIgS0VZIChlazEsIGVrMikKKyAgICAgICAgICAgIFNPVVJDRSBLRVkgKGVrMSkgUkVG RVJFTkNFUyB0YzEgKGEpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKGVrMikgUkVGRVJF TkNFUyB0YzIgKGEpCisgICAgICAgICAgICBERUZBVUxUIExBQkVMIFBST1BFUlRJRVMgKGVrMSwg ZWsyLCBlYiBDT0xMQVRFIHBnX2NhdGFsb2cuREVGQVVMVCBBUyBlYikpOworCistLSB0eXBlIGlu Y29zaXN0ZW5jeSBjaGVjaworQ1JFQVRFIFRBQkxFIHYxIChhIGludCBwcmltYXJ5IGtleSwgYiB0 ZXh0KTsKK0NSRUFURSBUQUJMRSBlKGsxIHRleHQsIGsyIHRleHQsIGMgdGV4dCk7CitDUkVBVEUg VEFCTEUgdjIgKG0gdGV4dCwgbiB0ZXh0KTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBndAorICAg IFZFUlRFWCBUQUJMRVMgKHYxIEtFWSAoYSksIHYyIEtFWSAobSkpCisgICAgRURHRSBUQUJMRVMg KAorICAgICAgICBlIEtFWSAoazEsIGsyKQorICAgICAgICBTT1VSQ0UgS0VZIChrMSkgUkVGRVJF TkNFUyB2MShhKQorICAgICAgICBERVNUSU5BVElPTiBLRVkgKGsyKSBSRUZFUkVOQ0VTIHYyKG0p KTsgLS0gZmFpbAorQUxURVIgVEFCTEUgZSBEUk9QIENPTFVNTiBrMSwgQUREIENPTFVNTiBrMSBi aWdpbnQgcHJpbWFyeSBrZXk7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZ3QKKyAgICBWRVJURVgg VEFCTEVTICh2MSBLRVkgKGEpLCB2MiBLRVkgKG0pKQorICAgIEVER0UgVEFCTEVTICgKKyAgICAg ICAgZSBLRVkgKGsxLCBrMikKKyAgICAgICAgU09VUkNFIEtFWSAoazEpIFJFRkVSRU5DRVMgdjEo YSkKKyAgICAgICAgREVTVElOQVRJT04gS0VZIChrMikgUkVGRVJFTkNFUyB2MihtKSk7CiAKIC0t IGluZm9ybWF0aW9uIHNjaGVtYQogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9n cmFwaF90YWJsZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ncmFwaF90YWJsZS5zcWwKaW5k ZXggOTA1YmU5ZGYwMWIuLjk3N2JmMjc3NGU1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9ncmFwaF90YWJsZS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3JhcGhfdGFi bGUuc3FsCkBAIC0zMjIsNyArMzIyLDggQEAgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEg TUFUQ0ggKGEgaXMgdmwxKS0+KGIpLT4oYSBpcyB2bDIpIFdIRVJFIGEudm5hbWUgPD4KIFNFTEVD VCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhIGlzIHZsMSktPihiKS0+KGEpIENPTFVN TlMgKGEudm5hbWUgQVMgc2VsZiwgYi52bmFtZSBBUyB0aHJvdWdoLCBhLnZwcm9wMSBBUyBzZWxm X3AxLCBiLnZwcm9wMSBBUyB0aHJvdWdoX3AxKSkgT1JERVIgQlkgc2VsZiwgdGhyb3VnaDsKIFNF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS0+KGIpLT4oYSBpcyB2bDEpIENP TFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi52bmFtZSBBUyB0aHJvdWdoLCBhLnZwcm9wMSBBUyBz ZWxmX3AxLCBiLnZwcm9wMSBBUyB0aHJvdWdoX3AxKSkgT1JERVIgQlkgc2VsZiwgdGhyb3VnaDsK IAotLS0gYWRkIGFuIGVkZ2Ugd2l0aCBzYW1lIHZlcnRleCBhcyBzb3VyY2UgYW5kIGRlc3RpbmF0 aW9uIHRvIHRlc3QgbG9vcHMKKy0tIGFkZCBhbiBlZGdlIHdpdGggc2FtZSB2ZXJ0ZXggYXMgc291 cmNlIGFuZCBkZXN0aW5hdGlvbiB0byB0ZXN0IGxvb3BzLiBBbHNvCistLSB1c2UgdGhpcyBmb3Ig Y29sbGF0aW9uIHRlc3RzCiBDUkVBVEUgVEFCTEUgZTNfMyAoc3JjX2lkIGludCwKICAgICAgICAg ICAgICAgICAgICAgZGVzdF9pZCBpbnQsCiAgICAgICAgICAgICAgICAgICAgIGVuYW1lIHZhcmNo YXIoMTApLApAQCAtMzM2LDM3ICszMzcsNTMgQEAgQUxURVIgUFJPUEVSVFkgR1JBUEggZzEgQURE IEVER0UgVEFCTEVTICgKICk7CiAKIElOU0VSVCBJTlRPIGUzXzMgVkFMVUVTICgyMDAzLCAyMDAz LCAnZTMzMScsIDEwMDEwKTsKK0lOU0VSVCBJTlRPIGUzXzMgVkFMVUVTICgyMDAzLCAyMDAzLCAn RTMzMScsIDEwMDEwKTsKIC0tIGN5Y2xpYyBwYXR0ZXJuIHdpdGggZWRnZSBwYXR0ZXJucyB3aXRo IHNhbWUgdmFyaWFibGUgbmFtZQotU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0gg KGEpLVtiXS0+KGEpLVtiXS0+KGEpIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi5lbmFtZSBB UyBsb29wX25hbWUpKTsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS1b Yl0tPihhKS1bYl0tPihhKSBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYsIGIuZW5hbWUgQVMgbG9v cF9uYW1lKSkgT1JERVIgQlkgbG9vcF9uYW1lIEFTQzsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFC TEUgKGcxIE1BVENIIChhKS1bYl0tPihhKS1bYl0tPihhKSBDT0xVTU5TIChhLnZuYW1lIEFTIHNl bGYsIGIuZW5hbWUgQVMgbG9vcF9uYW1lKSkgT1JERVIgQlkgbG9vcF9uYW1lIENPTExBVEUgIkMi IEFTQzsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS1bYiBJUyBlbDIg V0hFUkUgYi5lbmFtZSA+ICdFMzMxJyBDT0xMQVRFICJDIl0tPihhKS1bYl0tPihhKSBDT0xVTU5T IChhLnZuYW1lIEFTIHNlbGYsIGIuZW5hbWUgQVMgbG9vcF9uYW1lKSk7CitTRUxFQ1QgKiBGUk9N IEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSktW2JdLT4oYSktW2JdLT4oYSkgV0hFUkUgYi5lbmFt ZSA+ICdFMzMxJyBDT0xMQVRFICJDIiBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYsIGIuZW5hbWUg QVMgbG9vcF9uYW1lKSk7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSkt W2JdLT4oYSktW2JdLT4oYSkgQ09MVU1OUyAoYS52bmFtZSBBUyBzZWxmLCBiLmVuYW1lIEFTIGxv b3BfbmFtZSkpIFdIRVJFIGxvb3BfbmFtZSA+ICdFMzMxJyBDT0xMQVRFICJDIjsKIFNFTEVDVCAq IEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS1bYl0tPihjKS1bYl0tPihkKSBDT0xVTU5T IChhLnZuYW1lIEFTIGFuYW1lLCBiLmVuYW1lIEFTIGJuYW1lLCBjLnZuYW1lIEFTIGNuYW1lLCBk LnZuYW1lIEFTIGRuYW1lKSk7IC0tZXJyb3IKIAogLS0gcHJvcGVydHkgZ3JhcGggd2l0aCBzb21l IG9mIHRoZSBlbGVtZW50cywgbGFiZWxzIGFuZCBwcm9wZXJ0aWVzIHNhbWUgYXMgdGhlCiAtLSBw cmV2aW91cyBvbmUuIFRlc3Qgd2hldGhlciBjb21wb25lbnRzIGZyb20gdGhlIHNwZWNpZmllZCBw cm9wZXJ0eSBncmFwaCBhcmUKLS0tIHVzZWQuCistLSB1c2VkLiBBbHNvIHVzZSB0aGlzIGZvciBj b2xsYXRpb24gdGVzdHMKIGNyZWF0ZSBwcm9wZXJ0eSBncmFwaCBnMgogdmVydGV4IHRhYmxlcyAo CiAJdjEKLSAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAoJ2cyLicgfHwgdm5hbWUgYXMgZWxu YW1lKSwKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAoJ2cyLicgfHwgdm5hbWUgQ09MTEFU RSAiQyIgYXMgZWxuYW1lKSwKIAl2MiBrZXkgKGlkMSwgaWQyKQotICAgICAgICBsYWJlbCBsMSBw cm9wZXJ0aWVzICgnZzIuJyB8fCB2bmFtZSBhcyBlbG5hbWUpLAorICAgICAgICBsYWJlbCBsMSBw cm9wZXJ0aWVzICgnZzIuJyB8fCB2bmFtZSBDT0xMQVRFICJDIiBhcyBlbG5hbWUpLAogCXYzCi0g ICAgICAgIGxhYmVsIGwxIHByb3BlcnRpZXMgKCdnMi4nIHx8IHZuYW1lIGFzIGVsbmFtZSkKKyAg ICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAoJ2cyLicgfHwgdm5hbWUgQ09MTEFURSAiQyIgYXMg ZWxuYW1lKQogKQogZWRnZSB0YWJsZXMgKAogCWUxXzIga2V5IChpZF8xLCBpZF8yXzEsIGlkXzJf MikKIAkJc291cmNlIGtleSAoaWRfMSkgcmVmZXJlbmNlcyB2MSAoaWQpCiAJCWRlc3RpbmF0aW9u IGtleSAoaWRfMl8xLCBpZF8yXzIpIHJlZmVyZW5jZXMgdjIgKGlkMSwgaWQyKQotICAgICAgICBs YWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCBlbmFtZSBhcyBlbG5hbWUpLAorICAgICAgICBs YWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCBlbmFtZSBDT0xMQVRFICJDIiBhcyBlbG5hbWUp LAogCWUxXzMKIAkJc291cmNlIGtleSAoaWRfMSkgcmVmZXJlbmNlcyB2MSAoaWQpCiAJCWRlc3Rp bmF0aW9uIGtleSAoaWRfMykgcmVmZXJlbmNlcyB2MyAoaWQpCi0gICAgICAgIGxhYmVsIGwxIHBy b3BlcnRpZXMgKCdnMi4nIHx8IGVuYW1lIGFzIGVsbmFtZSksCisgICAgICAgIGxhYmVsIGwxIHBy b3BlcnRpZXMgKCdnMi4nIHx8IGVuYW1lIENPTExBVEUgIkMiIGFzIGVsbmFtZSksCiAgICAgZTJf MyBrZXkgKGlkXzJfMSwgaWRfMl8yLCBpZF8zKQogICAgICAgICBzb3VyY2Uga2V5IChpZF8yXzEs IGlkXzJfMikgcmVmZXJlbmNlcyB2MiAoaWQxLCBpZDIpCiAgICAgICAgIGRlc3RpbmF0aW9uIGtl eSAoaWRfMykgcmVmZXJlbmNlcyB2MyAoaWQpCi0gICAgICAgIGxhYmVsIGwxIHByb3BlcnRpZXMg KCdnMi4nIHx8IGVuYW1lIGFzIGVsbmFtZSkKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAo J2cyLicgfHwgZW5hbWUgQ09MTEFURSAiQyIgYXMgZWxuYW1lKSwKKyAgICBlM18zIEtFWSAoc3Jj X2lkLCBkZXN0X2lkKQorICAgICAgICBTT1VSQ0UgS0VZIChzcmNfaWQpIFJFRkVSRU5DRVMgdjMg KGlkKQorICAgICAgICBERVNUSU5BVElPTiBLRVkgKHNyY19pZCkgUkVGRVJFTkNFUyB2MyAoaWQp CisgICAgICAgIExBQkVMIGwxIFBST1BFUlRJRVMgKCdnMi4nIHx8IGVuYW1lIENPTExBVEUgIkMi IGFzIGVsbmFtZSkKICk7Ci1zZWxlY3Qgc24sIGNuLCBkbiBmcm9tIGdyYXBoX3RhYmxlIChnMiBt YXRjaCAoc3JjIDogbDEpLVtjb25uIDogbDFdLT4oZGVzdCA6IGwxKSBjb2x1bW5zIChzcmMuZWxu YW1lIGFzIHNuLCBjb25uLmVsbmFtZSBhcyBjbiwgZGVzdC5lbG5hbWUgYXMgZG4pKTsKK3NlbGVj dCBzbiwgY24sIGRuIGZyb20gZ3JhcGhfdGFibGUgKGcyIG1hdGNoIChzcmMgOiBsMSktW2Nvbm4g OiBsMV0tPihkZXN0IDogbDEpIGNvbHVtbnMgKHNyYy5lbG5hbWUgYXMgc24sIGNvbm4uZWxuYW1l IGFzIGNuLCBkZXN0LmVsbmFtZSBhcyBkbikpIE9SREVSIEJZIDEsIDIsIDM7CitTRUxFQ1QgKiBG Uk9NIEdSQVBIX1RBQkxFIChnMiBNQVRDSCAoYSktW2JdLT4oYSktW2JdLT4oYSkgQ09MVU1OUyAo YS5lbG5hbWUgQVMgc2VsZiwgYi5lbG5hbWUgQ09MTEFURSBwZ19jYXRhbG9nLiJkZWZhdWx0IiBB UyBsb29wX25hbWUpKSBPUkRFUiBCWSBsb29wX25hbWUgQVNDOworU0VMRUNUICogRlJPTSBHUkFQ SF9UQUJMRSAoZzIgTUFUQ0ggKGEpLVtiIFdIRVJFIGIuZWxuYW1lID4gJ2cyLkUzMzEnXS0+KGEp LVtiXS0+KGEpIENPTFVNTlMgKGEuZWxuYW1lIEFTIHNlbGYsIGIuZWxuYW1lIEFTIGxvb3BfbmFt ZSkpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzIgTUFUQ0ggKGEpLVtiXS0+KGEpLVti XS0+KGEpIFdIRVJFIGIuZWxuYW1lID4gJ2cyLkUzMzEnIENPTFVNTlMgKGEuZWxuYW1lIEFTIHNl bGYsIGIuZWxuYW1lIEFTIGxvb3BfbmFtZSkpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAo ZzIgTUFUQ0ggKGEpLVtiXS0+KGEpLVtiXS0+KGEpIENPTFVNTlMgKGEuZWxuYW1lIEFTIHNlbGYs IGIuZWxuYW1lIEFTIGxvb3BfbmFtZSkpIFdIRVJFIGxvb3BfbmFtZSA+ICdnMi5FMzMxJzsKK1NF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcyIE1BVENIIChhKS1bYiBXSEVSRSBiLmVsbmFtZSA+ ICdnMi5lMzMxJyBDT0xMQVRFIHBnX2NhdGFsb2cuImRlZmF1bHQiXS0+KGEpLVtiXS0+KGEpIENP TFVNTlMgKGEuZWxuYW1lIEFTIHNlbGYsIGIuZWxuYW1lIEFTIGxvb3BfbmFtZSkpOworU0VMRUNU ICogRlJPTSBHUkFQSF9UQUJMRSAoZzIgTUFUQ0ggKGEpLVtiXS0+KGEpLVtiXS0+KGEpIFdIRVJF IGIuZWxuYW1lID4gJ2cyLmUzMzEnIENPTExBVEUgcGdfY2F0YWxvZy4iZGVmYXVsdCIgQ09MVU1O UyAoYS5lbG5hbWUgQVMgc2VsZiwgYi5lbG5hbWUgQVMgbG9vcF9uYW1lKSk7CitTRUxFQ1QgKiBG Uk9NIEdSQVBIX1RBQkxFIChnMiBNQVRDSCAoYSktW2JdLT4oYSktW2JdLT4oYSkgQ09MVU1OUyAo YS5lbG5hbWUgQVMgc2VsZiwgYi5lbG5hbWUgQVMgbG9vcF9uYW1lKSkgV0hFUkUgbG9vcF9uYW1l ID4gJ2cyLmUzMzEnIENPTExBVEUgcGdfY2F0YWxvZy4iZGVmYXVsdCI7CiAKIENSRUFURSBWSUVX IGN1c3RvbWVyc191cyBBUyBTRUxFQ1QgY3VzdG9tZXJfbmFtZSBGUk9NIEdSQVBIX1RBQkxFICht eXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJUyBj dXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZSBBUyBjdXN0b21l cl9uYW1lKSk7CiAKQEAgLTQyOCw2ICs0NDUsMTAgQEAgU0VMRUNUICoKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIENPTFVNTlMgKGNnLm5hbWVfcmVkYWN0ZWQgQVMgY3VzdG9tZXJfbmFt ZV9yZWRhY3RlZCkpCiAgICAgV0hFUkUgY28uY3VzdG9tZXJfaWQgPSAxOwogCistLSBncmFwaCB0 YWJsZSBpbiBhIHN1YnF1ZXJ5CitTRUxFQ1QgKiBGUk9NIGN1c3RvbWVycyBjbyBXSEVSRSBjby5j dXN0b21lcl9pZCA9CisgICAgKFNFTEVDVCBjdXN0b21lcl9pZCBGUk9NIEdSQVBIX1RBQkxFICht eXNob3AyIE1BVENIIChjZyBJUyBjdXN0b21lcnMgV0hFUkUgY2cuYWRkcmVzcyA9ICdVUycpLVtJ UyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGNnLmN1c3RvbWVyX2lk KSkpOworCiAtLSBxdWVyeSB3aXRoaW4gZ3JhcGggdGFibGUKIFNFTEVDVCBzbmFtZSwgZG5hbWUK ICAgICBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoc3JjKS0+KGRlc3QpCi0tIAoyLjM0LjEK Cg== --00000000000015b3be062aa12bab Content-Type: text/x-patch; charset="US-ASCII"; name="0008-Document-fixes-20250101.patch" Content-Disposition: attachment; filename="0008-Document-fixes-20250101.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5dnsexy7 RnJvbSAzZTdiMzY1Njk4MmY0YzdlMTI5M2Q3MDc5NzA3OWE5Mjk0MjUzMDgzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBc2h1dG9zaCBCYXBhdCA8YXNodXRvc2guYmFwYXQub3NzQGdt YWlsLmNvbT4KRGF0ZTogV2VkLCAxIEphbiAyMDI1IDE0OjAyOjI4ICswNTMwClN1YmplY3Q6IFtQ QVRDSCA4LzldIERvY3VtZW50IGZpeGVzCgpBc3NvcnRlZCBncmFtbWFyIGFuZCB0eXBvIGZpeGVz LgoKQXV0aG9yOiBKdW53YW5nIFpob3UKUmV2aWV3ZWQgd2l0aCBtaW5vciBhZGp1c3RtZW50cyBi eTogQXNodXRvc2ggQmFwYXQKLS0tCiBkb2Mvc3JjL3NnbWwvaW5mb3JtYXRpb25fc2NoZW1hLnNn bWwgICAgICAgIHwgMTggKysrKysrKysrLS0tLS0tLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVy X3Byb3BlcnR5X2dyYXBoLnNnbWwgIHwgIDIgKy0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3By b3BlcnR5X2dyYXBoLnNnbWwgfCAgMiArLQogZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3Byb3BlcnR5 X2dyYXBoLnNnbWwgICB8ICAyICstCiA0IGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyks IDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9pbmZvcm1hdGlvbl9z Y2hlbWEuc2dtbCBiL2RvYy9zcmMvc2dtbC9pbmZvcm1hdGlvbl9zY2hlbWEuc2dtbAppbmRleCBj OTJiNjViMDNhNS4uZGMwMjU3OTAyYjEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9pbmZvcm1h dGlvbl9zY2hlbWEuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvaW5mb3JtYXRpb25fc2NoZW1hLnNn bWwKQEAgLTQyMjcsNyArNDIyNyw3IEBAIE9SREVSIEJZIGMub3JkaW5hbF9wb3NpdGlvbjsKICAg ICAgICA8c3RydWN0ZmllbGQ+cHJvcGVydHlfZ3JhcGhfbmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBl PnNxbF9pZGVudGlmaWVyPC90eXBlPgogICAgICAgPC9wYXJhPgogICAgICAgPHBhcmE+Ci0gICAg ICAgTmFtZSBvZiB0aGUgcHJvcGVydHlfZ3JhcGgKKyAgICAgICBOYW1lIG9mIHRoZSBwcm9wZXJ0 eSBncmFwaAogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCkBAIC00MzQ2LDcg KzQzNDYsNyBAQCBPUkRFUiBCWSBjLm9yZGluYWxfcG9zaXRpb247CiAgICAgICAgPHN0cnVjdGZp ZWxkPnByb3BlcnR5X2dyYXBoX25hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmll cjwvdHlwZT4KICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgotICAgICAgIE5hbWUgb2YgdGhl IHByb3BlcnR5X2dyYXBoCisgICAgICAgTmFtZSBvZiB0aGUgcHJvcGVydHkgZ3JhcGgKICAgICAg IDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIApAQCAtNDQzMCw3ICs0NDMwLDcgQEAgT1JE RVIgQlkgYy5vcmRpbmFsX3Bvc2l0aW9uOwogICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9n cmFwaF9uYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CiAgICAg ICA8L3BhcmE+CiAgICAgICA8cGFyYT4KLSAgICAgICBOYW1lIG9mIHRoZSBwcm9wZXJ0eV9ncmFw aAorICAgICAgIE5hbWUgb2YgdGhlIHByb3BlcnR5IGdyYXBoCiAgICAgICA8L3BhcmE+PC9lbnRy eT4KICAgICAgPC9yb3c+CiAKQEAgLTQ1MDUsNyArNDUwNSw3IEBAIE9SREVSIEJZIGMub3JkaW5h bF9wb3NpdGlvbjsKICAgICAgICA8c3RydWN0ZmllbGQ+cHJvcGVydHlfZ3JhcGhfbmFtZTwvc3Ry dWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgogICAgICAgPC9wYXJhPgogICAg ICAgPHBhcmE+Ci0gICAgICAgTmFtZSBvZiB0aGUgcHJvcGVydHlfZ3JhcGgKKyAgICAgICBOYW1l IG9mIHRoZSBwcm9wZXJ0eSBncmFwaAogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93 PgogCkBAIC00NTg5LDcgKzQ1ODksNyBAQCBPUkRFUiBCWSBjLm9yZGluYWxfcG9zaXRpb247CiAg ICAgICAgPHN0cnVjdGZpZWxkPnByb3BlcnR5X2dyYXBoX25hbWU8L3N0cnVjdGZpZWxkPiA8dHlw ZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgotICAg ICAgIE5hbWUgb2YgdGhlIHByb3BlcnR5X2dyYXBoCisgICAgICAgTmFtZSBvZiB0aGUgcHJvcGVy dHkgZ3JhcGgKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIApAQCAtNDcwMCw3 ICs0NzAwLDcgQEAgT1JERVIgQlkgYy5vcmRpbmFsX3Bvc2l0aW9uOwogICAgICAgIDxzdHJ1Y3Rm aWVsZD5wcm9wZXJ0eV9ncmFwaF9uYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZp ZXI8L3R5cGU+CiAgICAgICA8L3BhcmE+CiAgICAgICA8cGFyYT4KLSAgICAgICBOYW1lIG9mIHRo ZSBwcm9wZXJ0eV9ncmFwaAorICAgICAgIE5hbWUgb2YgdGhlIHByb3BlcnR5IGdyYXBoCiAgICAg ICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKQEAgLTQ3NzQsNyArNDc3NCw3IEBAIE9S REVSIEJZIGMub3JkaW5hbF9wb3NpdGlvbjsKICAgICAgICA8c3RydWN0ZmllbGQ+cHJvcGVydHlf Z3JhcGhfbmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgogICAg ICAgPC9wYXJhPgogICAgICAgPHBhcmE+Ci0gICAgICAgTmFtZSBvZiB0aGUgcHJvcGVydHlfZ3Jh cGgKKyAgICAgICBOYW1lIG9mIHRoZSBwcm9wZXJ0eSBncmFwaAogICAgICAgPC9wYXJhPjwvZW50 cnk+CiAgICAgIDwvcm93PgogCkBAIC00ODM5LDcgKzQ4MzksNyBAQCBPUkRFUiBCWSBjLm9yZGlu YWxfcG9zaXRpb247CiAgICAgICAgPHN0cnVjdGZpZWxkPnByb3BlcnR5X2dyYXBoX25hbWU8L3N0 cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KICAgICAgIDwvcGFyYT4KICAg ICAgIDxwYXJhPgotICAgICAgIE5hbWUgb2YgdGhlIHByb3BlcnR5X2dyYXBoCisgICAgICAgTmFt ZSBvZiB0aGUgcHJvcGVydHkgZ3JhcGgKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jv dz4KIApAQCAtNTI1NSw3ICs1MjU1LDcgQEAgT1JERVIgQlkgYy5vcmRpbmFsX3Bvc2l0aW9uOwog ICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9uYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CiAgICAgICA8L3BhcmE+CiAgICAgICA8cGFyYT4KLSAg ICAgICBOYW1lIG9mIHRoZSBwcm9wZXJ0eV9ncmFwaAorICAgICAgIE5hbWUgb2YgdGhlIHByb3Bl cnR5IGdyYXBoCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAgICAgPC90Ym9k eT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHJvcGVydHlfZ3JhcGguc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHJvcGVydHlfZ3JhcGguc2dtbAppbmRleCA2MDRj NTE4MDExNy4uNGFlNTNkZWIwOTIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf cHJvcGVydHlfZ3JhcGguc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3Byb3BlcnR5 X2dyYXBoLnNnbWwKQEAgLTk5LDcgKzk5LDcgQEAgQUxURVIgUFJPUEVSVFkgR1JBUEggWyBJRiBF WElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWEKICAg ICAgPHRlcm0+PGxpdGVyYWw+QUxURVIge1ZFUlRFWHxOT0RFfEVER0V8UkVMQVRJT05TSElQfSBU QUJMRSAuLi4gRFJPUCBMQUJFTDwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgIDxsaXN0aXRlbT4KICAg ICAgIDxwYXJhPgotICAgICAgIFRoaXMgZm9ybSByZW1vdmVzIGEgbmV3IGxhYmVsIGZyb20gYW4g ZXhpc3RpbmcgdmVydGV4IG9yIGVkZ2UgdGFibGUuCisgICAgICAgVGhpcyBmb3JtIHJlbW92ZXMg YSBsYWJlbCBmcm9tIGFuIGV4aXN0aW5nIHZlcnRleCBvciBlZGdlIHRhYmxlLgogICAgICAgPC9w YXJhPgogICAgICA8L2xpc3RpdGVtPgogICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHJvcGVydHlfZ3JhcGguc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNnbWwKaW5kZXggYWUzMDFiNTJlMGEuLjc2YmZl ZjMxN2FmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wcm9wZXJ0eV9ncmFw aC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNnbWwK QEAgLTE1MSw3ICsxNTEsNyBAQCBDUkVBVEUgWyBURU1QIHwgVEVNUE9SQVJZIF0gUFJPUEVSVFkg R1JBUEggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8LwogICAgIDxsaXN0aXRl bT4KICAgICAgPHBhcmE+CiAgICAgICBUaGUgdmVydGV4IHRhYmxlcyB0aGF0IHRoZSBlZGdlIHRh YmxlIGlzIGxpbmtlZCB0by4gIFRoZXNlIHJlZmVyIHRvIHRoZQotICAgICAgYWxpYXNlcyBvZiBh IHRoZSB2ZXJ0ZXggdGFibGUuCisgICAgICBhbGlhc2VzIG9mIHRoZSBzb3VyY2UgYW5kIGRlc3Rp bmF0aW9uIHZlcnRleCB0YWJsZXMgcmVzcGVjdGl2ZWx5LgogICAgICA8L3BhcmE+CiAgICAgPC9s aXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl Zi9kcm9wX3Byb3BlcnR5X2dyYXBoLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfcHJvcGVy dHlfZ3JhcGguc2dtbAppbmRleCAzMWNiNzdhMmFmMS4uZTE2ZGU1NTA3YjEgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9yZWYvZHJvcF9wcm9wZXJ0eV9ncmFwaC5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9yZWYvZHJvcF9wcm9wZXJ0eV9ncmFwaC5zZ21sCkBAIC05Niw3ICs5Niw3IEBAIERST1Ag UFJPUEVSVFkgR1JBUEggZzE7CiAgICA8Y29tbWFuZD5EUk9QIFBST1BFUlRZIEdSQVBIPC9jb21t YW5kPiBjb25mb3JtcyB0byBJU08vSUVDIDkwNzUtMTYKICAgIChTUUwvUEdRKSwgZXhjZXB0IHRo YXQgdGhlIHN0YW5kYXJkIG9ubHkgYWxsb3dzIG9uZSBwcm9wZXJ0eSBncmFwaCB0byBiZQogICAg ZHJvcHBlZCBwZXIgY29tbWFuZCwgYW5kIGFwYXJ0IGZyb20gdGhlIDxsaXRlcmFsPklGIEVYSVNU UzwvbGl0ZXJhbD4KLSAgIG9wdGlvbiwgd2hpY2ggaXMgYSA8cHJvZHVjdG5hbWU+UG9zdGdyZVNR TDwvcHJvZHVjdG5hbWU+IGV4dGVuc2lvbi4uCisgICBvcHRpb24sIHdoaWNoIGlzIGEgPHByb2R1 Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBleHRlbnNpb24uCiAgIDwvcGFyYT4KICA8 L3JlZnNlY3QxPgogCi0tIAoyLjM0LjEKCg== --00000000000015b3be062aa12bab Content-Type: text/x-patch; charset="US-ASCII"; name="0009-WIP-Do-not-print-empty-columns-table-for-a--20250101.patch" Content-Disposition: attachment; filename="0009-WIP-Do-not-print-empty-columns-table-for-a--20250101.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5dnsey08 RnJvbSA1Mjc3NmIzZjAyZTUyNmFjNjY0ODViMjY2MTRiYzUzYmRmMjNiOWM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBc2h1dG9zaCBCYXBhdCA8YXNodXRvc2guYmFwYXQub3NzQGdt YWlsLmNvbT4KRGF0ZTogVGh1LCA1IERlYyAyMDI0IDE0OjMxOjM2ICswNTMwClN1YmplY3Q6IFtQ QVRDSCA5LzldIFdJUDogRG8gbm90IHByaW50IGVtcHR5IGNvbHVtbnMgdGFibGUgZm9yIGEgcHJv cGVydHkKIGdyYXBoCgpBIHByb3BlcnR5IGdyYXBoIGRvZXMgbm90IGhhdmUgYW55IGNvbHVtbnMg YnkgaXRzZWxmLiBUaHVzIGl0IGRvZXNuJ3QKbmVlZCB0aGUgdGFibGUgZGVzY3JpYmluZyBjb2x1 bW5zIGluIFxkWytdIG91dHB1dC4KClRoZSBwYXRjaCBuZWVkcyBmb2xsb3dpbmcgd29yawoxLiBN b3ZlIHRoZSBjb2RlIHRvIGNvbGxlY3QgY29sdW1uIGluZm9ybWF0aW9uIGluIGEgc2VwYXJhdGUg ZnVuY3Rpb24sCiAgIHdoaWNoIGNhbiBiZSBza2lwcGVkIGZvciBwcm9wZXJ0eSBncmFwaHMuIFRo aXMgYXZvaWRzIG9uZSBpbmRlbnRhdGlvbgogICBsZXZlbCBhbmQgbWFrZXMgZGVzY3JpYmVPbmVU YWJsZURldGFpbHMoKSBlYXN5IHRvIGZvbGxvdy4KMi4gRXZlbiB0aG91Z2ggdGhlIGJvcmRlcnMg YXJlIHN1cHByZXNzZWQgdGhlcmUgaXMgYW4gZXh0cmEgYmxhbmsgbGluZQogICBpbiBcZCBvdXRw dXQuIEF2b2lkIHRoYXQuIEl0IHJlcXVpcmVzIHNvbWUgYWRqdXN0bWVudCB0bwogICBwcmludFRh YmxlT3B0IG9yIHNvbWUgbWluaW9uIG9mIHByaW50VGFibGUgdG8gYXZvaWQgcHJpbnRpbmcKICAg ZXZlcnl0aGluZyByZWxhdGVkIHRvIGNvbHVtbiBkZXNjcmlwdGlvbiB0YWJsZS4KCiAgIE9SCgpJ ZiB3ZSBkZWNpZGUgdGhhdCB3ZSB3YW50IHRvIG91dHB1dCBhIGRpZmZlcmVudCBkZXNjcmlwdGlv biAobGlrZQpzZXF1ZW5jZXMpIHdlIG5lZWQgdG8gZGVjaWRlIHdoYXQgdGhhdCBkZXNjcmlwdGlv biBzaG91bGQgYmUgYW5kIHRoZW4KaW1wbGVtZW50IHRoZSBzYW1lLgoKQXNodXRvc2ggQmFwYXQK LS0tCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAzMDcg KysrKysrKysrLS0tLS0tLS0tCiAuLi4vZXhwZWN0ZWQvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLm91 dCAgICAgICAgfCAgIDYgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTY0IGluc2VydGlvbnMoKyksIDE0 OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IGEyNmQ4MWEwZmRlLi42NmEzYTMzOTVlNCAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMKQEAgLTE4NTcsMTI4ICsxODU3LDYgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29u c3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJZ290byBlcnJvcl9yZXR1cm47CQkvKiBub3QgYW4gZXJy b3IsIGp1c3QgcmV0dXJuIGVhcmx5ICovCiAJfQogCi0JLyogSWRlbnRpZnkgd2hldGhlciB3ZSBz aG91bGQgcHJpbnQgY29sbGF0aW9uLCBudWxsYWJsZSwgZGVmYXVsdCB2YWxzICovCi0JaWYgKHRh YmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04gfHwKLQkJdGFibGVpbmZvLnJlbGtp bmQgPT0gUkVMS0lORF9WSUVXIHx8Ci0JCXRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfTUFU VklFVyB8fAotCQl0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX0ZPUkVJR05fVEFCTEUgfHwK LQkJdGFibGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9DT01QT1NJVEVfVFlQRSB8fAotCQl0YWJs ZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKQotCQlzaG93X2NvbHVt bl9kZXRhaWxzID0gdHJ1ZTsKLQotCS8qCi0JICogR2V0IHBlci1jb2x1bW4gaW5mbwotCSAqCi0J ICogU2luY2UgdGhlIHNldCBvZiBxdWVyeSBjb2x1bW5zIHdlIG5lZWQgdmFyaWVzIGRlcGVuZGlu ZyBvbiByZWxraW5kIGFuZAotCSAqIHNlcnZlciB2ZXJzaW9uLCB3ZSBjb21wdXRlIGFsbCB0aGUg Y29sdW1uIG51bWJlcnMgb24tdGhlLWZseS4gIENvbHVtbgotCSAqIG51bWJlciB2YXJpYWJsZXMg Zm9yIGNvbHVtbnMgbm90IGZldGNoZWQgYXJlIGxlZnQgYXMgLTE7IHRoaXMgYXZvaWRzCi0JICog ZHVwbGljYXRpdmUgdGVzdCBsb2dpYyBiZWxvdy4KLQkgKi8KLQljb2xzID0gMDsKLQlwcmludGZQ UUV4cEJ1ZmZlcigmYnVmLCAiU0VMRUNUIGEuYXR0bmFtZSIpOwotCWF0dG5hbWVfY29sID0gY29s cysrOwotCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gIHBnX2NhdGFsb2cuZm9ybWF0 X3R5cGUoYS5hdHR0eXBpZCwgYS5hdHR0eXBtb2QpIik7Ci0JYXR0dHlwZV9jb2wgPSBjb2xzKys7 Ci0KLQlpZiAoc2hvd19jb2x1bW5fZGV0YWlscykKLQl7Ci0JCS8qIHVzZSAicHJldHR5IiBtb2Rl IGZvciBleHByZXNzaW9uIHRvIGF2b2lkIGV4Y2Vzc2l2ZSBwYXJlbnRoZXNlcyAqLwotCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cigmYnVmLAotCQkJCQkJCSAiLFxuICAoU0VMRUNUIHBnX2NhdGFsb2cu cGdfZ2V0X2V4cHIoZC5hZGJpbiwgZC5hZHJlbGlkLCB0cnVlKSIKLQkJCQkJCQkgIlxuICAgRlJP TSBwZ19jYXRhbG9nLnBnX2F0dHJkZWYgZCIKLQkJCQkJCQkgIlxuICAgV0hFUkUgZC5hZHJlbGlk ID0gYS5hdHRyZWxpZCBBTkQgZC5hZG51bSA9IGEuYXR0bnVtIEFORCBhLmF0dGhhc2RlZikiCi0J CQkJCQkJICIsXG4gIGEuYXR0bm90bnVsbCIpOwotCQlhdHRyZGVmX2NvbCA9IGNvbHMrKzsKLQkJ YXR0bm90bnVsbF9jb2wgPSBjb2xzKys7Ci0JCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIs XG4gIChTRUxFQ1QgYy5jb2xsbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdfY29sbGF0aW9uIGMsIHBn X2NhdGFsb2cucGdfdHlwZSB0XG4iCi0JCQkJCQkJICIgICBXSEVSRSBjLm9pZCA9IGEuYXR0Y29s bGF0aW9uIEFORCB0Lm9pZCA9IGEuYXR0dHlwaWQgQU5EIGEuYXR0Y29sbGF0aW9uIDw+IHQudHlw Y29sbGF0aW9uKSBBUyBhdHRjb2xsYXRpb24iKTsKLQkJYXR0Y29sbF9jb2wgPSBjb2xzKys7Ci0J CWlmIChwc2V0LnN2ZXJzaW9uID49IDEwMDAwMCkKLQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZi dWYsICIsXG4gIGEuYXR0aWRlbnRpdHkiKTsKLQkJZWxzZQotCQkJYXBwZW5kUFFFeHBCdWZmZXJT dHIoJmJ1ZiwgIixcbiAgJyc6OnBnX2NhdGFsb2cuY2hhciBBUyBhdHRpZGVudGl0eSIpOwotCQlh dHRpZGVudGl0eV9jb2wgPSBjb2xzKys7Ci0JCWlmIChwc2V0LnN2ZXJzaW9uID49IDEyMDAwMCkK LQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gIGEuYXR0Z2VuZXJhdGVkIik7Ci0J CWVsc2UKLQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gICcnOjpwZ19jYXRhbG9n LmNoYXIgQVMgYXR0Z2VuZXJhdGVkIik7Ci0JCWF0dGdlbmVyYXRlZF9jb2wgPSBjb2xzKys7Ci0J fQotCWlmICh0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX0lOREVYIHx8Ci0JCXRhYmxlaW5m by5yZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfSU5ERVgpCi0JewotCQlpZiAocHNldC5z dmVyc2lvbiA+PSAxMTAwMDApCi0JCXsKLQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICIsXG4g IENBU0UgV0hFTiBhLmF0dG51bSA8PSAoU0VMRUNUIGkuaW5kbmtleWF0dHMgRlJPTSBwZ19jYXRh bG9nLnBnX2luZGV4IGkgV0hFUkUgaS5pbmRleHJlbGlkID0gJyVzJykgVEhFTiAnJXMnIEVMU0Ug JyVzJyBFTkQgQVMgaXNfa2V5IiwKLQkJCQkJCQkgIG9pZCwKLQkJCQkJCQkgIGdldHRleHRfbm9v cCgieWVzIiksCi0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIm5vIikpOwotCQkJaXNpbmRleGtleV9j b2wgPSBjb2xzKys7Ci0JCX0KLQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIixcbiAgcGdf Y2F0YWxvZy5wZ19nZXRfaW5kZXhkZWYoYS5hdHRyZWxpZCwgYS5hdHRudW0sIFRSVUUpIEFTIGlu ZGV4ZGVmIik7Ci0JCWluZGV4ZGVmX2NvbCA9IGNvbHMrKzsKLQl9Ci0JLyogRkRXIG9wdGlvbnMg Zm9yIGZvcmVpZ24gdGFibGUgY29sdW1uICovCi0JaWYgKHRhYmxlaW5mby5yZWxraW5kID09IFJF TEtJTkRfRk9SRUlHTl9UQUJMRSkKLQl7Ci0JCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIs XG4gIENBU0UgV0hFTiBhdHRmZHdvcHRpb25zIElTIE5VTEwgVEhFTiAnJyBFTFNFICIKLQkJCQkJ CQkgIiAgJygnIHx8IHBnX2NhdGFsb2cuYXJyYXlfdG9fc3RyaW5nKEFSUkFZKFNFTEVDVCBwZ19j YXRhbG9nLnF1b3RlX2lkZW50KG9wdGlvbl9uYW1lKSB8fCAnICcgfHwgcGdfY2F0YWxvZy5xdW90 ZV9saXRlcmFsKG9wdGlvbl92YWx1ZSkgIEZST00gIgotCQkJCQkJCSAiICBwZ19jYXRhbG9nLnBn X29wdGlvbnNfdG9fdGFibGUoYXR0ZmR3b3B0aW9ucykpLCAnLCAnKSB8fCAnKScgRU5EIEFTIGF0 dGZkd29wdGlvbnMiKTsKLQkJZmR3b3B0c19jb2wgPSBjb2xzKys7Ci0JfQotCWlmICh2ZXJib3Nl KQotCXsKLQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIixcbiAgYS5hdHRzdG9yYWdlIik7 Ci0JCWF0dHN0b3JhZ2VfY29sID0gY29scysrOwotCi0JCS8qIGNvbXByZXNzaW9uIGluZm8sIGlm IHJlbGV2YW50IHRvIHJlbGtpbmQgKi8KLQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTQwMDAwICYm Ci0JCQkhcHNldC5oaWRlX2NvbXByZXNzaW9uICYmCi0JCQkodGFibGVpbmZvLnJlbGtpbmQgPT0g UkVMS0lORF9SRUxBVElPTiB8fAotCQkJIHRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfUEFS VElUSU9ORURfVEFCTEUgfHwKLQkJCSB0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX01BVFZJ RVcpKQotCQl7Ci0JCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuICBhLmF0dGNvbXBy ZXNzaW9uIEFTIGF0dGNvbXByZXNzaW9uIik7Ci0JCQlhdHRjb21wcmVzc2lvbl9jb2wgPSBjb2xz Kys7Ci0JCX0KLQotCQkvKiBzdGF0cyB0YXJnZXQsIGlmIHJlbGV2YW50IHRvIHJlbGtpbmQgKi8K LQkJaWYgKHRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04gfHwKLQkJCXRhYmxl aW5mby5yZWxraW5kID09IFJFTEtJTkRfSU5ERVggfHwKLQkJCXRhYmxlaW5mby5yZWxraW5kID09 IFJFTEtJTkRfUEFSVElUSU9ORURfSU5ERVggfHwKLQkJCXRhYmxlaW5mby5yZWxraW5kID09IFJF TEtJTkRfTUFUVklFVyB8fAotCQkJdGFibGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9GT1JFSUdO X1RBQkxFIHx8Ci0JCQl0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RB QkxFKQotCQl7Ci0JCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuICBDQVNFIFdIRU4g YS5hdHRzdGF0dGFyZ2V0PS0xIFRIRU4gTlVMTCBFTFNFIGEuYXR0c3RhdHRhcmdldCBFTkQgQVMg YXR0c3RhdHRhcmdldCIpOwotCQkJYXR0c3RhdHRhcmdldF9jb2wgPSBjb2xzKys7Ci0JCX0KLQot CQkvKgotCQkgKiBJbiA5LjArLCB3ZSBoYXZlIGNvbHVtbiBjb21tZW50cyBmb3I6IHJlbGF0aW9u cywgdmlld3MsIGNvbXBvc2l0ZQotCQkgKiB0eXBlcywgYW5kIGZvcmVpZ24gdGFibGVzIChjZi4g Q29tbWVudE9iamVjdCgpIGluIGNvbW1lbnQuYykuCi0JCSAqLwotCQlpZiAodGFibGVpbmZvLnJl bGtpbmQgPT0gUkVMS0lORF9SRUxBVElPTiB8fAotCQkJdGFibGVpbmZvLnJlbGtpbmQgPT0gUkVM S0lORF9WSUVXIHx8Ci0JCQl0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX01BVFZJRVcgfHwK LQkJCXRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSB8fAotCQkJdGFi bGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9DT01QT1NJVEVfVFlQRSB8fAotCQkJdGFibGVpbmZv LnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkKLQkJewotCQkJYXBwZW5kUFFF eHBCdWZmZXJTdHIoJmJ1ZiwgIixcbiAgcGdfY2F0YWxvZy5jb2xfZGVzY3JpcHRpb24oYS5hdHRy ZWxpZCwgYS5hdHRudW0pIik7Ci0JCQlhdHRkZXNjcl9jb2wgPSBjb2xzKys7Ci0JCX0KLQl9Ci0K LQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiXG5GUk9NIHBnX2NhdGFsb2cucGdfYXR0cmli dXRlIGEiKTsKLQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiXG5XSEVSRSBhLmF0dHJlbGlkID0g JyVzJyBBTkQgYS5hdHRudW0gPiAwIEFORCBOT1QgYS5hdHRpc2Ryb3BwZWQiLCBvaWQpOwotCWFw cGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJcbk9SREVSIEJZIGEuYXR0bnVtOyIpOwotCi0JcmVz ID0gUFNRTGV4ZWMoYnVmLmRhdGEpOwotCWlmICghcmVzKQotCQlnb3RvIGVycm9yX3JldHVybjsK LQludW1yb3dzID0gUFFudHVwbGVzKHJlcyk7Ci0KIAkvKiBNYWtlIHRpdGxlICovCiAJc3dpdGNo ICh0YWJsZWluZm8ucmVsa2luZCkKIAl7CkBAIC0yMDQ1LDMyICsxOTIzLDE3MSBAQCBkZXNjcmli ZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkJYnJlYWs7CiAJfQog Ci0JLyogRmlsbCBoZWFkZXJzW10gd2l0aCB0aGUgbmFtZXMgb2YgdGhlIGNvbHVtbnMgd2Ugd2ls bCBvdXRwdXQgKi8KKwkvKiBJZGVudGlmeSB3aGV0aGVyIHdlIHNob3VsZCBwcmludCBjb2xsYXRp b24sIG51bGxhYmxlLCBkZWZhdWx0IHZhbHMgKi8KKwlpZiAodGFibGVpbmZvLnJlbGtpbmQgPT0g UkVMS0lORF9SRUxBVElPTiB8fAorCQl0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX1ZJRVcg fHwKKwkJdGFibGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9NQVRWSUVXIHx8CisJCXRhYmxlaW5m by5yZWxraW5kID09IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSB8fAorCQl0YWJsZWluZm8ucmVsa2lu ZCA9PSBSRUxLSU5EX0NPTVBPU0lURV9UWVBFIHx8CisJCXRhYmxlaW5mby5yZWxraW5kID09IFJF TEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCisJCXNob3dfY29sdW1uX2RldGFpbHMgPSB0cnVlOwor CisJLyoKKwkgKiBHZXQgcGVyLWNvbHVtbiBpbmZvCisJICoKKwkgKiBTaW5jZSB0aGUgc2V0IG9m IHF1ZXJ5IGNvbHVtbnMgd2UgbmVlZCB2YXJpZXMgZGVwZW5kaW5nIG9uIHJlbGtpbmQgYW5kCisJ ICogc2VydmVyIHZlcnNpb24sIHdlIGNvbXB1dGUgYWxsIHRoZSBjb2x1bW4gbnVtYmVycyBvbi10 aGUtZmx5LiAgQ29sdW1uCisJICogbnVtYmVyIHZhcmlhYmxlcyBmb3IgY29sdW1ucyBub3QgZmV0 Y2hlZCBhcmUgbGVmdCBhcyAtMTsgdGhpcyBhdm9pZHMKKwkgKiBkdXBsaWNhdGl2ZSB0ZXN0IGxv Z2ljIGJlbG93LiBQcm9wZXJ0eSBncmFwaCByZWxhdGlvbnMgZG8gbm90IGhhdmUKKwkgKiBjb2x1 bW5zLgorCSAqLwogCWNvbHMgPSAwOwotCWhlYWRlcnNbY29scysrXSA9IGdldHRleHRfbm9vcCgi Q29sdW1uIik7Ci0JaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJUeXBlIik7Ci0JaWYg KHNob3dfY29sdW1uX2RldGFpbHMpCisJbnVtcm93cyA9IDA7CisJaWYgKHRhYmxlaW5mby5yZWxr aW5kICE9IFJFTEtJTkRfUFJPUEdSQVBIKQogCXsKLQkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4 dF9ub29wKCJDb2xsYXRpb24iKTsKLQkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJO dWxsYWJsZSIpOwotCQloZWFkZXJzW2NvbHMrK10gPSBnZXR0ZXh0X25vb3AoIkRlZmF1bHQiKTsK KwkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgIlNFTEVDVCBhLmF0dG5hbWUiKTsKKwkJYXR0bmFt ZV9jb2wgPSBjb2xzKys7CisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gIHBnX2Nh dGFsb2cuZm9ybWF0X3R5cGUoYS5hdHR0eXBpZCwgYS5hdHR0eXBtb2QpIik7CisJCWF0dHR5cGVf Y29sID0gY29scysrOworCisJCWlmIChzaG93X2NvbHVtbl9kZXRhaWxzKQorCQl7CisJCQkvKiB1 c2UgInByZXR0eSIgbW9kZSBmb3IgZXhwcmVzc2lvbiB0byBhdm9pZCBleGNlc3NpdmUgcGFyZW50 aGVzZXMgKi8KKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsCisJCQkJCQkJCSAiLFxuICAo U0VMRUNUIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIoZC5hZGJpbiwgZC5hZHJlbGlkLCB0cnVlKSIK KwkJCQkJCQkJICJcbiAgIEZST00gcGdfY2F0YWxvZy5wZ19hdHRyZGVmIGQiCisJCQkJCQkJCSAi XG4gICBXSEVSRSBkLmFkcmVsaWQgPSBhLmF0dHJlbGlkIEFORCBkLmFkbnVtID0gYS5hdHRudW0g QU5EIGEuYXR0aGFzZGVmKSIKKwkJCQkJCQkJICIsXG4gIGEuYXR0bm90bnVsbCIpOworCQkJYXR0 cmRlZl9jb2wgPSBjb2xzKys7CisJCQlhdHRub3RudWxsX2NvbCA9IGNvbHMrKzsKKwkJCWFwcGVu ZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gIChTRUxFQ1QgYy5jb2xsbmFtZSBGUk9NIHBnX2Nh dGFsb2cucGdfY29sbGF0aW9uIGMsIHBnX2NhdGFsb2cucGdfdHlwZSB0XG4iCisJCQkJCQkJCSAi ICAgV0hFUkUgYy5vaWQgPSBhLmF0dGNvbGxhdGlvbiBBTkQgdC5vaWQgPSBhLmF0dHR5cGlkIEFO RCBhLmF0dGNvbGxhdGlvbiA8PiB0LnR5cGNvbGxhdGlvbikgQVMgYXR0Y29sbGF0aW9uIik7CisJ CQlhdHRjb2xsX2NvbCA9IGNvbHMrKzsKKwkJCWlmIChwc2V0LnN2ZXJzaW9uID49IDEwMDAwMCkK KwkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuICBhLmF0dGlkZW50aXR5Iik7CisJ CQllbHNlCisJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIixcbiAgJyc6OnBnX2NhdGFs b2cuY2hhciBBUyBhdHRpZGVudGl0eSIpOworCQkJYXR0aWRlbnRpdHlfY29sID0gY29scysrOwor CQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTIwMDAwKQorCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KCZidWYsICIsXG4gIGEuYXR0Z2VuZXJhdGVkIik7CisJCQllbHNlCisJCQkJYXBwZW5kUFFFeHBC dWZmZXJTdHIoJmJ1ZiwgIixcbiAgJyc6OnBnX2NhdGFsb2cuY2hhciBBUyBhdHRnZW5lcmF0ZWQi KTsKKwkJCWF0dGdlbmVyYXRlZF9jb2wgPSBjb2xzKys7CisJCX0KKwkJaWYgKHRhYmxlaW5mby5y ZWxraW5kID09IFJFTEtJTkRfSU5ERVggfHwKKwkJCXRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJ TkRfUEFSVElUSU9ORURfSU5ERVgpCisJCXsKKwkJCWlmIChwc2V0LnN2ZXJzaW9uID49IDExMDAw MCkKKwkJCXsKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiLFxuICBDQVNFIFdIRU4gYS5h dHRudW0gPD0gKFNFTEVDVCBpLmluZG5rZXlhdHRzIEZST00gcGdfY2F0YWxvZy5wZ19pbmRleCBp IFdIRVJFIGkuaW5kZXhyZWxpZCA9ICclcycpIFRIRU4gJyVzJyBFTFNFICclcycgRU5EIEFTIGlz X2tleSIsCisJCQkJCQkJCSAgb2lkLAorCQkJCQkJCQkgIGdldHRleHRfbm9vcCgieWVzIiksCisJ CQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJubyIpKTsKKwkJCQlpc2luZGV4a2V5X2NvbCA9IGNvbHMr KzsKKwkJCX0KKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gIHBnX2NhdGFsb2cu cGdfZ2V0X2luZGV4ZGVmKGEuYXR0cmVsaWQsIGEuYXR0bnVtLCBUUlVFKSBBUyBpbmRleGRlZiIp OworCQkJaW5kZXhkZWZfY29sID0gY29scysrOworCQl9CisJCS8qIEZEVyBvcHRpb25zIGZvciBm b3JlaWduIHRhYmxlIGNvbHVtbiAqLworCQlpZiAodGFibGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lO RF9GT1JFSUdOX1RBQkxFKQorCQl7CisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxu ICBDQVNFIFdIRU4gYXR0ZmR3b3B0aW9ucyBJUyBOVUxMIFRIRU4gJycgRUxTRSAiCisJCQkJCQkJ CSAiICAnKCcgfHwgcGdfY2F0YWxvZy5hcnJheV90b19zdHJpbmcoQVJSQVkoU0VMRUNUIHBnX2Nh dGFsb2cucXVvdGVfaWRlbnQob3B0aW9uX25hbWUpIHx8ICcgJyB8fCBwZ19jYXRhbG9nLnF1b3Rl X2xpdGVyYWwob3B0aW9uX3ZhbHVlKSAgRlJPTSAiCisJCQkJCQkJCSAiICBwZ19jYXRhbG9nLnBn X29wdGlvbnNfdG9fdGFibGUoYXR0ZmR3b3B0aW9ucykpLCAnLCAnKSB8fCAnKScgRU5EIEFTIGF0 dGZkd29wdGlvbnMiKTsKKwkJCWZkd29wdHNfY29sID0gY29scysrOworCQl9CisJCWlmICh2ZXJi b3NlKQorCQl7CisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuICBhLmF0dHN0b3Jh Z2UiKTsKKwkJCWF0dHN0b3JhZ2VfY29sID0gY29scysrOworCisJCQkvKiBjb21wcmVzc2lvbiBp bmZvLCBpZiByZWxldmFudCB0byByZWxraW5kICovCisJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAx NDAwMDAgJiYKKwkJCQkhcHNldC5oaWRlX2NvbXByZXNzaW9uICYmCisJCQkJKHRhYmxlaW5mby5y ZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04gfHwKKwkJCQkgdGFibGVpbmZvLnJlbGtpbmQgPT0g UkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSB8fAorCQkJCSB0YWJsZWluZm8ucmVsa2luZCA9PSBS RUxLSU5EX01BVFZJRVcpKQorCQkJeworCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIs XG4gIGEuYXR0Y29tcHJlc3Npb24gQVMgYXR0Y29tcHJlc3Npb24iKTsKKwkJCQlhdHRjb21wcmVz c2lvbl9jb2wgPSBjb2xzKys7CisJCQl9CisKKwkJCS8qIHN0YXRzIHRhcmdldCwgaWYgcmVsZXZh bnQgdG8gcmVsa2luZCAqLworCQkJaWYgKHRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfUkVM QVRJT04gfHwKKwkJCQl0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX0lOREVYIHx8CisJCQkJ dGFibGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9JTkRFWCB8fAorCQkJCXRh YmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfTUFUVklFVyB8fAorCQkJCXRhYmxlaW5mby5yZWxr aW5kID09IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSB8fAorCQkJCXRhYmxlaW5mby5yZWxraW5kID09 IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCisJCQl7CisJCQkJYXBwZW5kUFFFeHBCdWZmZXJT dHIoJmJ1ZiwgIixcbiAgQ0FTRSBXSEVOIGEuYXR0c3RhdHRhcmdldD0tMSBUSEVOIE5VTEwgRUxT RSBhLmF0dHN0YXR0YXJnZXQgRU5EIEFTIGF0dHN0YXR0YXJnZXQiKTsKKwkJCQlhdHRzdGF0dGFy Z2V0X2NvbCA9IGNvbHMrKzsKKwkJCX0KKworCQkJLyoKKwkJCSAqIEluIDkuMCssIHdlIGhhdmUg Y29sdW1uIGNvbW1lbnRzIGZvcjogcmVsYXRpb25zLCB2aWV3cywKKwkJCSAqIGNvbXBvc2l0ZSB0 eXBlcywgYW5kIGZvcmVpZ24gdGFibGVzIChjZi4gQ29tbWVudE9iamVjdCgpIGluCisJCQkgKiBj b21tZW50LmMpLgorCQkJICovCisJCQlpZiAodGFibGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9S RUxBVElPTiB8fAorCQkJCXRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfVklFVyB8fAorCQkJ CXRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfTUFUVklFVyB8fAorCQkJCXRhYmxlaW5mby5y ZWxraW5kID09IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSB8fAorCQkJCXRhYmxlaW5mby5yZWxraW5k ID09IFJFTEtJTkRfQ09NUE9TSVRFX1RZUEUgfHwKKwkJCQl0YWJsZWluZm8ucmVsa2luZCA9PSBS RUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKQorCQkJeworCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KCZidWYsICIsXG4gIHBnX2NhdGFsb2cuY29sX2Rlc2NyaXB0aW9uKGEuYXR0cmVsaWQsIGEuYXR0 bnVtKSIpOworCQkJCWF0dGRlc2NyX2NvbCA9IGNvbHMrKzsKKwkJCX0KKwkJfQorCisJCWFwcGVu ZFBRRXhwQnVmZmVyU3RyKCZidWYsICJcbkZST00gcGdfY2F0YWxvZy5wZ19hdHRyaWJ1dGUgYSIp OworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiXG5XSEVSRSBhLmF0dHJlbGlkID0gJyVzJyBB TkQgYS5hdHRudW0gPiAwIEFORCBOT1QgYS5hdHRpc2Ryb3BwZWQiLCBvaWQpOworCQlhcHBlbmRQ UUV4cEJ1ZmZlclN0cigmYnVmLCAiXG5PUkRFUiBCWSBhLmF0dG51bTsiKTsKKworCQlyZXMgPSBQ U1FMZXhlYyhidWYuZGF0YSk7CisJCWlmICghcmVzKQorCQkJZ290byBlcnJvcl9yZXR1cm47CisJ CW51bXJvd3MgPSBQUW50dXBsZXMocmVzKTsKKworCQkvKiBGaWxsIGhlYWRlcnNbXSB3aXRoIHRo ZSBuYW1lcyBvZiB0aGUgY29sdW1ucyB3ZSB3aWxsIG91dHB1dCAqLworCQljb2xzID0gMDsKKwkJ aWYgKHRhYmxlaW5mby5yZWxraW5kICE9IFJFTEtJTkRfUFJPUEdSQVBIKQorCQl7CisJCQkvKiBB IHByb3BlcnR5IGdyYXBoIGRvZXMgbm90IHByb2plY3QgYW55IGNvbHVtbnMgYnkgaXRzZWxmLiAq LworCQkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJDb2x1bW4iKTsKKwkJCWhlYWRl cnNbY29scysrXSA9IGdldHRleHRfbm9vcCgiVHlwZSIpOworCQl9CisJCWlmIChzaG93X2NvbHVt bl9kZXRhaWxzKQorCQl7CisJCQloZWFkZXJzW2NvbHMrK10gPSBnZXR0ZXh0X25vb3AoIkNvbGxh dGlvbiIpOworCQkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJOdWxsYWJsZSIpOwor CQkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJEZWZhdWx0Iik7CisJCX0KKwkJaWYg KGlzaW5kZXhrZXlfY29sID49IDApCisJCQloZWFkZXJzW2NvbHMrK10gPSBnZXR0ZXh0X25vb3Ao IktleT8iKTsKKwkJaWYgKGluZGV4ZGVmX2NvbCA+PSAwKQorCQkJaGVhZGVyc1tjb2xzKytdID0g Z2V0dGV4dF9ub29wKCJEZWZpbml0aW9uIik7CisJCWlmIChmZHdvcHRzX2NvbCA+PSAwKQorCQkJ aGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJGRFcgb3B0aW9ucyIpOworCQlpZiAoYXR0 c3RvcmFnZV9jb2wgPj0gMCkKKwkJCWhlYWRlcnNbY29scysrXSA9IGdldHRleHRfbm9vcCgiU3Rv cmFnZSIpOworCQlpZiAoYXR0Y29tcHJlc3Npb25fY29sID49IDApCisJCQloZWFkZXJzW2NvbHMr K10gPSBnZXR0ZXh0X25vb3AoIkNvbXByZXNzaW9uIik7CisJCWlmIChhdHRzdGF0dGFyZ2V0X2Nv bCA+PSAwKQorCQkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJTdGF0cyB0YXJnZXQi KTsKKwkJaWYgKGF0dGRlc2NyX2NvbCA+PSAwKQorCQkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4 dF9ub29wKCJEZXNjcmlwdGlvbiIpOworCisJCUFzc2VydChjb2xzIDw9IGxlbmd0aG9mKGhlYWRl cnMpKTsKIAl9Ci0JaWYgKGlzaW5kZXhrZXlfY29sID49IDApCi0JCWhlYWRlcnNbY29scysrXSA9 IGdldHRleHRfbm9vcCgiS2V5PyIpOwotCWlmIChpbmRleGRlZl9jb2wgPj0gMCkKLQkJaGVhZGVy c1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJEZWZpbml0aW9uIik7Ci0JaWYgKGZkd29wdHNfY29s ID49IDApCi0JCWhlYWRlcnNbY29scysrXSA9IGdldHRleHRfbm9vcCgiRkRXIG9wdGlvbnMiKTsK LQlpZiAoYXR0c3RvcmFnZV9jb2wgPj0gMCkKLQkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9u b29wKCJTdG9yYWdlIik7Ci0JaWYgKGF0dGNvbXByZXNzaW9uX2NvbCA+PSAwKQotCQloZWFkZXJz W2NvbHMrK10gPSBnZXR0ZXh0X25vb3AoIkNvbXByZXNzaW9uIik7Ci0JaWYgKGF0dHN0YXR0YXJn ZXRfY29sID49IDApCi0JCWhlYWRlcnNbY29scysrXSA9IGdldHRleHRfbm9vcCgiU3RhdHMgdGFy Z2V0Iik7Ci0JaWYgKGF0dGRlc2NyX2NvbCA+PSAwKQotCQloZWFkZXJzW2NvbHMrK10gPSBnZXR0 ZXh0X25vb3AoIkRlc2NyaXB0aW9uIik7Ci0KLQlBc3NlcnQoY29scyA8PSBsZW5ndGhvZihoZWFk ZXJzKSk7CisKKwkvKgorCSAqIExpa2UgYSBwcm9wZXJ0eSBncmFwaCwgaWYgdGhlIHJlbGF0aW9u IGRvZXNuJ3QgaGF2ZSBhbnkgY29sdW1ucywKKwkgKiBzdXBwcmVzcyBib3JkZXJzLgorCSAqLwor CWlmIChjb2xzIDw9IDAgJiYgbnVtcm93cyA8PSAwKQorCQlteW9wdC5ib3JkZXIgPSAwOwogCiAJ cHJpbnRUYWJsZUluaXQoJmNvbnQsICZteW9wdCwgdGl0bGUuZGF0YSwgY29scywgbnVtcm93cyk7 CiAJcHJpbnRUYWJsZUluaXRpYWxpemVkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLm91dAppbmRleCBkMzVjMDJiNDYyYy4u ODI0Njk1MzU4ZjggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRl X3Byb3BlcnR5X2dyYXBoLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0 ZV9wcm9wZXJ0eV9ncmFwaC5vdXQKQEAgLTY1NCwxMyArNjU0LDExIEBAIEVSUk9SOiAgInBnX3R5 cGUiIGlzIG5vdCBhIHByb3BlcnR5IGdyYXBoCiAtLSBUT0RPCiBcZCBnMQogUHJvcGVydHkgZ3Jh cGggImNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cy5nMSIKLSBDb2x1bW4gfCBUeXBlIAotLS0t LS0tLS0rLS0tLS0tCisKIAogXGQrIGcxCiBQcm9wZXJ0eSBncmFwaCAiY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzLmcxIgotIENvbHVtbiB8IFR5cGUgfCBTdG9yYWdlIAotLS0tLS0tLS0rLS0t LS0tKy0tLS0tLS0tLQorCiBQcm9wZXJ0eSBncmFwaCBkZWZpbml0aW9uOgogIENSRUFURSBQUk9Q RVJUWSBHUkFQSCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMuZzEKIAotLSAKMi4zNC4xCgo= --00000000000015b3be062aa12bab--