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.96) (envelope-from ) id 1vvgnS-00E6JC-07 for pgsql-hackers@arkaria.postgresql.org; Thu, 26 Feb 2026 19:13:14 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vvgmR-00F2gz-37 for pgsql-hackers@arkaria.postgresql.org; Thu, 26 Feb 2026 19:12:11 +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.96) (envelope-from ) id 1vvgmR-00F2gh-0S for pgsql-hackers@lists.postgresql.org; Thu, 26 Feb 2026 19:12:11 +0000 Received: from mail-dy1-x132f.google.com ([2607:f8b0:4864:20::132f]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vvgmM-00000001RV4-32rw for pgsql-hackers@postgresql.org; Thu, 26 Feb 2026 19:12:10 +0000 Received: by mail-dy1-x132f.google.com with SMTP id 5a478bee46e88-2b4520f6b32so1557856eec.0 for ; Thu, 26 Feb 2026 11:12:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20230601.gappssmtp.com; s=20230601; t=1772133125; x=1772737925; darn=postgresql.org; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=CzwwxILO3c7+LyqeysAHwKPvfnWb6iZOaUJ+/2DQJno=; b=ue3RzUbsvkLdLNegyhQ2sR1lH/Ba0/ZLfATlZd5d8djBGaMnPhIR4qBtMSpo/8Akbs 8MP+rpfHLnCZ8Sji9tgoxXydEsQZ9Ge/XTjs0RA1FpgSLpl2iLEFYEY9ElqGiohkYuhs rsJ332+3zrTfGAcR1IQwtkR0n97N4uKktoU4sNAhGgKxqcXU5DiP6rGqm/sdLBrgV5Gv UBqqUhLkXn3WLFSY3zlruTGiTsi1kIFfQJHcaY+7pMSh3+Emo2oFIYda/58ootuzIJrJ eJrsu+Da+0GWuZCxi6VF5HQcRAVwObhhwiGDV271OktwLa96mgbB7ombNbTqf9to7Cve 3NVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772133125; x=1772737925; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=CzwwxILO3c7+LyqeysAHwKPvfnWb6iZOaUJ+/2DQJno=; b=PjjbRB5FqbvhsFjH/CuglsLZM7FmM+J+NvaLaFGS8BC1VCS84KlHbWNOFYpKo8bwL3 UotHbyLKXJu69QiL3zSQiNPcWLj7LssVcBQ9MUutjEEN3rpqkWM+++Pjlk67FyfpovtG mPZfw1h4wCQUJWsxMOOHZzvLLvP/BJZuy+ykGi9uha6ktvJluZiNyWDYNayJZ7FiY2Ad fOaRyHqKNI/5Rynb+ju4lLWoW5LRtes4WawdLc7yVzFJy/RIbo4ZNKN2ttZcTDd+zKmR 7qL7s27IkF9EBrMY1l1RHjM8+1Iwy7i6+VFOis8bpmJTQePKjR+FGvreS7RoDudE/shL 8I+Q== X-Forwarded-Encrypted: i=1; AJvYcCUmdjRicGz/oYs/aaVPN0hw5dDwMFv6EdoJ4ty0ZRnXf+gbmZYRs9ClZUt302+k/gon4kUUgNX4HL92+Bxw@postgresql.org X-Gm-Message-State: AOJu0YzLlQA4LsxxipQJ25EZiZziQ7fnjX1zqeAjvCuwW8UyjlsmTBg4 qRMrR9KZmww1sdOSKcWAvVWrgOtZP8vZ4NiHAZGHFHOsFs6kEJ9teZ/uMATqUBfpEA== X-Gm-Gg: ATEYQzznvSjh2PPUKXptelz90GFpYcRKy9I05i1fKRfuDvGNCggLvLIjmS+z9GohVjD DDwoRvJjcNR2j4CKULRkdyz+S/RPI4HIhs5g9W1oLYWdGwf9gBdz47dvc2xmw/s8nYD63xNttIk o/eiyf+OYkqvohZzja+1tAAMC5B12WePTh9v4K5BRH8ZiEKJbgFkDrgThZF4mpyjllPWCdV4Sqk 8BGCI8vQ30pPJ5l3vB9/OPKV4oo+KNTw73mINbiwGbJod3ZNnixCr0NO9+JFuAQIWS1y9rxp7oW dC3Ck0z1yjLPDSEDLHpOowW8SmG/bLDYAot8OY60wJ8KNKeF7KDbcwPZw0s4LR496+VODnoJljb tHlyOozo+B1DFz/ysLuMBrSjmXx7nChWl0gHf/FFg77MeXLGmAQmgRzBnDh7EnI6TY7ORKnWENH RfI3Y8POFLfKhHludu3OSYVxKFL1CuuQ9CV0/n+7yUys8+v6Xwsw4= X-Received: by 2002:a05:7300:7309:b0:2ba:8496:498 with SMTP id 5a478bee46e88-2bde1ba0474mr70255eec.7.1772133124448; Thu, 26 Feb 2026 11:12:04 -0800 (PST) Received: from jeff-laptop.lan (c-24-7-19-3.hsd1.ca.comcast.net. [24.7.19.3]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2bdd1cf0115sm2307059eec.8.2026.02.26.11.12.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Feb 2026 11:12:03 -0800 (PST) Message-ID: <60ff024706fe1beab62a89ac07eb6a721856de2e.camel@j-davis.com> Subject: Re: [19] CREATE SUBSCRIPTION ... SERVER From: Jeff Davis To: Masahiko Sawada Cc: Shlok Kyal , Ashutosh Bapat , Bharath Rupireddy , Joe Conway , pgsql-hackers@postgresql.org Date: Thu, 26 Feb 2026 11:12:01 -0800 In-Reply-To: References: <149ff9264db27cdf724b65709fbbaee4bf316835.camel@j-davis.com> <830a2bc6cbbb2e6e01c6c0d9f31f320822e10603.camel@j-davis.com> <433d0845248e86c0317d9d396926182cfe157340.camel@j-davis.com> <05ae37abb207cd6bf6b126780024692d91402b0b.camel@j-davis.com> <93392ffa941ab0d436e19e0ab5d04d0e42c02d3f.camel@j-davis.com> <26be917cb07b6aa3ef5dd15f6b59d1b375ece6e8.camel@j-davis.com> <55201bd916e748acfc754c8f95880dae8e4e5ed0.camel@j-davis.com> <2a89b14a2b1622bffb8b137ca1f9ab7866f2d2b9.camel@j-davis.com> <61831790a0a937038f78ce09f8dd4cef7de7456a.camel@j-davis.com> <0910b47040406c1d24ec0150dafb5bae6b910ed7.camel@j-davis.com> <7338f22c4534322a08ab6ce9f879e2e308eb5e5d.camel@j-davis.com> <34fd5885b8245d1014f4426ea22af61229d42e3e.camel@j-davis.com> <7a5df376fffb273430aec9e89f88c31d52dcf295.camel@j-davis.com> <5dfe845221db2e7d38fc7c2a18a4ba5ea29cdfc0.camel@j-davis.com> Content-Type: multipart/mixed; boundary="=-6NTljot0yymdvRct5Dn6" User-Agent: Evolution 3.52.3-0ubuntu1.1 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-6NTljot0yymdvRct5Dn6 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, 2026-02-04 at 13:53 +0900, Masahiko Sawada wrote: > I've reviewed the latest patch set. I understand the motivation > behind > this proposal and find it useful. Thank you, that's important feedback. > The documentation for ALTER FOREIGN DATA WRAPPER needs to be updated. Done. > --- > The security section[1] of logical replication chapter would also > need > to be updated. Done. > We might want to mention in the documentation of CREATE SERVER[2] > that > a foreign server's name can be used to connect publication in CREATE > SUBSCRIPTION as we have a similar description for dblink_connect(): Done. > --- > dblink_connect() function can retrieve the connection string from a > foreign server specified in the second argument, which is a very > similar use case to CREATE SUBSCRIPTION. Should we make dblink use > the > new function ForeignServerConnectionString() to get the connection > string (in get_connect_string())? ForeignServerConnectionString() goes through the new FDW connection_function, whereas dblink builds the string itself. Technically, changing that could break things, but overall it seems to make sense. I added this as a separate commit. > --- > It would be better to enhance psql's \dRs command to show the server > name specified in the subscription. Good idea, done. Regards, Jeff Davis --=-6NTljot0yymdvRct5Dn6 Content-Disposition: attachment; filename="v17-0001-CREATE-SUBSCRIPTION-.-SERVER.patch" Content-Type: text/x-patch; name="v17-0001-CREATE-SUBSCRIPTION-.-SERVER.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAzYWZjNjA3NzY0Mjg4YjUxYzQzODVkMjIxMTFmMmRlMjNlZTYzMGQ5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU dWUsIDIgSmFuIDIwMjQgMTM6NDI6NDggLTA4MDAKU3ViamVjdDogW1BBVENIIHYxNyAxLzJdIENS RUFURSBTVUJTQ1JJUFRJT04gLi4uIFNFUlZFUi4KCi0tLSBDQVRWRVJTSU9OIEJVTVAgLS0tCgpB bGxvdyBzcGVjaWZ5aW5nIGEgZm9yZWlnbiBzZXJ2ZXIgZm9yIENSRUFURSBTVUJTQ1JJUFRJT04s IHJhdGhlciB0aGFuCmEgcmF3IGNvbm5lY3Rpb24gc3RyaW5nIHdpdGggQ09OTkVDVElPTi4KClVz aW5nIGEgZm9yZWlnbiBzZXJ2ZXIgYXMgYSBsYXllciBvZiBpbmRpcmVjdGlvbiBpbXByb3ZlcyBt YW5hZ2VtZW50Cm9mIG11bHRpcGxlIHN1YnNjcmlwdGlvbnMgdG8gdGhlIHNhbWUgc2VydmVyLiBJ dCBhbHNvIHByb3ZpZGVzCmludGVncmF0aW9uIHdpdGggdXNlciBtYXBwaW5ncyBpbiBjYXNlIGRp ZmZlcmVudCBzdWJzY3JpcHRpb25zIGhhdmUKZGlmZmVyZW50IG93bmVycyBvciBhIHN1YnNjcmlw dGlvbiBjaGFuZ2VzIG93bmVycy4KClJldmlld2VkLWJ5OiBBc2h1dG9zaCBCYXBhdCA8YXNodXRv c2guYmFwYXQub3NzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IFNobG9rIEt5YWwgPHNobG9rLmt5 YWwub3NzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IE1hc2FoaWtvIFNhd2FkYSA8c2F3YWRhLm1z aGtAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tLzYxODMxNzkwYTBh OTM3MDM4Zjc4Y2UwOWY4ZGQ0Y2VmN2RlNzQ1NmEuY2FtZWxAai1kYXZpcy5jb20KLS0tCiBjb250 cmliL3Bvc3RncmVzX2Zkdy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGNvbnRy aWIvcG9zdGdyZXNfZmR3L2Nvbm5lY3Rpb24uYyAgICAgICAgICAgICB8IDI5OSArKysrKysrKysr Ky0tLS0tLS0KIC4uLi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dCAgICB8 ICAgOCArCiBjb250cmliL3Bvc3RncmVzX2Zkdy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgfCAg IDIgKwogLi4uL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHctLTEuMi0tMS4zLnNxbCAgIHwgIDEy ICsKIGNvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy5jb250cm9sICAgICB8ICAgMiAr LQogY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwgICAgIHwgICA3ICsK IGNvbnRyaWIvcG9zdGdyZXNfZmR3L3QvMDEwX3N1YnNjcmlwdGlvbi5wbCAgICB8ICA3MSArKysr KwogZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbCAgICAgICAgIHwgICA0ICst CiBkb2Mvc3JjL3NnbWwvcG9zdGdyZXMtZmR3LnNnbWwgICAgICAgICAgICAgICAgfCAgMjYgKysK IC4uLi9zZ21sL3JlZi9hbHRlcl9mb3JlaWduX2RhdGFfd3JhcHBlci5zZ21sICB8ICAyMCArKwog ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbCAgICAgIHwgIDE4ICstCiAu Li4vc2dtbC9yZWYvY3JlYXRlX2ZvcmVpZ25fZGF0YV93cmFwcGVyLnNnbWwgfCAgMjAgKysKIGRv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NlcnZlci5zZ21sICAgICAgICAgICB8ICAgNyArCiBkb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbCAgICAgfCAgMTEgKy0KIHNyYy9i YWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMgICAgICAgICB8ICAzOCArKy0KIHNyYy9i YWNrZW5kL2NvbW1hbmRzL2ZvcmVpZ25jbWRzLmMgICAgICAgICAgICB8ICA1OCArKystCiBzcmMv YmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMgICAgICAgfCAxNjggKysrKysrKysr LQogc3JjL2JhY2tlbmQvZm9yZWlnbi9mb3JlaWduLmMgICAgICAgICAgICAgICAgIHwgIDgxICsr KysrCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgMjIg KysKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgICAgICB8ICAxNiAr LQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgIDM5ICsr LQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgICAxICsK IHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQog c3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDExICstCiBz cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2ZvcmVpZ25fZGF0YV93cmFwcGVyLmggfCAgIDMgKwogc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCAgICAgICAgIHwgICA3ICstCiBzcmMv aW5jbHVkZS9mb3JlaWduL2ZvcmVpZ24uaCAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0ICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgICAgfCAxOTkgKysrKysrLS0tLS0tCiBz cmMvdGVzdC9yZWdyZXNzL3JlZ3Jlc3MuYyAgICAgICAgICAgICAgICAgICAgfCAgIDcgKwogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbCAgICAgICAgIHwgIDI2ICsrCiAzMyBm aWxlcyBjaGFuZ2VkLCA5NTMgaW5zZXJ0aW9ucygrKSwgMjQ1IGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGNvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy0tMS4yLS0xLjMu c3FsCiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJpYi9wb3N0Z3Jlc19mZHcvdC8wMTBfc3Vic2Ny aXB0aW9uLnBsCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvTWFrZWZpbGUgYi9j b250cmliL3Bvc3RncmVzX2Zkdy9NYWtlZmlsZQppbmRleCA4ZWFmNGQyNjNiNi4uYjhjNzhiNTg4 MDQgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L01ha2VmaWxlCisrKyBiL2NvbnRy aWIvcG9zdGdyZXNfZmR3L01ha2VmaWxlCkBAIC0xNCw3ICsxNCw3IEBAIFBHX0NQUEZMQUdTID0g LUkkKGxpYnBxX3NyY2RpcikKIFNITElCX0xJTktfSU5URVJOQUwgPSAkKGxpYnBxKQogCiBFWFRF TlNJT04gPSBwb3N0Z3Jlc19mZHcKLURBVEEgPSBwb3N0Z3Jlc19mZHctLTEuMC5zcWwgcG9zdGdy ZXNfZmR3LS0xLjAtLTEuMS5zcWwgcG9zdGdyZXNfZmR3LS0xLjEtLTEuMi5zcWwKK0RBVEEgPSBw b3N0Z3Jlc19mZHctLTEuMC5zcWwgcG9zdGdyZXNfZmR3LS0xLjAtLTEuMS5zcWwgcG9zdGdyZXNf ZmR3LS0xLjEtLTEuMi5zcWwgcG9zdGdyZXNfZmR3LS0xLjItLTEuMy5zcWwKIAogUkVHUkVTUyA9 IHBvc3RncmVzX2ZkdyBxdWVyeV9jYW5jZWwKIElTT0xBVElPTiA9IGV2YWxfcGxhbl9xdWFsCmRp ZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9jb25uZWN0aW9uLmMgYi9jb250cmliL3Bv c3RncmVzX2Zkdy9jb25uZWN0aW9uLmMKaW5kZXggYWRkNjczYTQ3NzYuLmE0MjYzMWQ0Y2E1IDEw MDY0NAotLS0gYS9jb250cmliL3Bvc3RncmVzX2Zkdy9jb25uZWN0aW9uLmMKKysrIGIvY29udHJp Yi9wb3N0Z3Jlc19mZHcvY29ubmVjdGlvbi5jCkBAIC0xMzIsNiArMTMyLDcgQEAgUEdfRlVOQ1RJ T05fSU5GT19WMShwb3N0Z3Jlc19mZHdfZ2V0X2Nvbm5lY3Rpb25zKTsKIFBHX0ZVTkNUSU9OX0lO Rk9fVjEocG9zdGdyZXNfZmR3X2dldF9jb25uZWN0aW9uc18xXzIpOwogUEdfRlVOQ1RJT05fSU5G T19WMShwb3N0Z3Jlc19mZHdfZGlzY29ubmVjdCk7CiBQR19GVU5DVElPTl9JTkZPX1YxKHBvc3Rn cmVzX2Zkd19kaXNjb25uZWN0X2FsbCk7CitQR19GVU5DVElPTl9JTkZPX1YxKHBvc3RncmVzX2Zk d19jb25uZWN0aW9uKTsKIAogLyogcHJvdG90eXBlcyBvZiBwcml2YXRlIGZ1bmN0aW9ucyAqLwog c3RhdGljIHZvaWQgbWFrZV9uZXdfY29ubmVjdGlvbihDb25uQ2FjaGVFbnRyeSAqZW50cnksIFVz ZXJNYXBwaW5nICp1c2VyKTsKQEAgLTQ3NywxNDEgKzQ3OCwxNTkgQEAgcGdmZHdfc2VjdXJpdHlf Y2hlY2soY29uc3QgY2hhciAqKmtleXdvcmRzLCBjb25zdCBjaGFyICoqdmFsdWVzLCBVc2VyTWFw cGluZyAqdXMKIH0KIAogLyoKLSAqIENvbm5lY3QgdG8gcmVtb3RlIHNlcnZlciB1c2luZyBzcGVj aWZpZWQgc2VydmVyIGFuZCB1c2VyIG1hcHBpbmcgcHJvcGVydGllcy4KKyAqIENvbnN0cnVjdCBj b25uZWN0aW9uIHBhcmFtcyBmcm9tIGdlbmVyaWMgb3B0aW9ucyBvZiBGb3JlaWduU2VydmVyIGFu ZAorICogVXNlck1hcHBpbmcuICAoU29tZSBvZiB0aGVtIG1pZ2h0IG5vdCBiZSBsaWJwcSBvcHRp b25zLCBpbiB3aGljaCBjYXNlIHdlJ2xsCisgKiBqdXN0IHdhc3RlIGEgZmV3IGFycmF5IHNsb3Rz LikKICAqLwotc3RhdGljIFBHY29ubiAqCi1jb25uZWN0X3BnX3NlcnZlcihGb3JlaWduU2VydmVy ICpzZXJ2ZXIsIFVzZXJNYXBwaW5nICp1c2VyKQorc3RhdGljIHZvaWQKK2NvbnN0cnVjdF9jb25u ZWN0aW9uX3BhcmFtcyhGb3JlaWduU2VydmVyICpzZXJ2ZXIsIFVzZXJNYXBwaW5nICp1c2VyLAor CQkJCQkJCWNvbnN0IGNoYXIgKioqcF9rZXl3b3JkcywgY29uc3QgY2hhciAqKipwX3ZhbHVlcywK KwkJCQkJCQljaGFyICoqcF9hcHBuYW1lKQogewotCVBHY29ubgkgICAqdm9sYXRpbGUgY29ubiA9 IE5VTEw7CisJY29uc3QgY2hhciAqKmtleXdvcmRzOworCWNvbnN0IGNoYXIgKip2YWx1ZXM7CisJ Y2hhcgkgICAqYXBwbmFtZSA9IE5VTEw7CisJaW50CQkJbjsKIAogCS8qCi0JICogVXNlIFBHX1RS WSBibG9jayB0byBlbnN1cmUgY2xvc2luZyBjb25uZWN0aW9uIG9uIGVycm9yLgorCSAqIEFkZCA0 IGV4dHJhIHNsb3RzIGZvciBhcHBsaWNhdGlvbl9uYW1lLCBmYWxsYmFja19hcHBsaWNhdGlvbl9u YW1lLAorCSAqIGNsaWVudF9lbmNvZGluZywgZW5kIG1hcmtlciwgYW5kIDMgZXh0cmEgc2xvdHMg Zm9yIHNjcmFtIGtleXMgYW5kCisJICogcmVxdWlyZWQgc2NyYW0gcGFzcy10aHJvdWdoIG9wdGlv bnMuCiAJICovCi0JUEdfVFJZKCk7Ci0JewotCQljb25zdCBjaGFyICoqa2V5d29yZHM7Ci0JCWNv bnN0IGNoYXIgKip2YWx1ZXM7Ci0JCWNoYXIJICAgKmFwcG5hbWUgPSBOVUxMOwotCQlpbnQJCQlu OworCW4gPSBsaXN0X2xlbmd0aChzZXJ2ZXItPm9wdGlvbnMpICsgbGlzdF9sZW5ndGgodXNlci0+ b3B0aW9ucykgKyA0ICsgMzsKKwlrZXl3b3JkcyA9IChjb25zdCBjaGFyICoqKSBwYWxsb2MobiAq IHNpemVvZihjaGFyICopKTsKKwl2YWx1ZXMgPSAoY29uc3QgY2hhciAqKikgcGFsbG9jKG4gKiBz aXplb2YoY2hhciAqKSk7CiAKLQkJLyoKLQkJICogQ29uc3RydWN0IGNvbm5lY3Rpb24gcGFyYW1z IGZyb20gZ2VuZXJpYyBvcHRpb25zIG9mIEZvcmVpZ25TZXJ2ZXIKLQkJICogYW5kIFVzZXJNYXBw aW5nLiAgKFNvbWUgb2YgdGhlbSBtaWdodCBub3QgYmUgbGlicHEgb3B0aW9ucywgaW4KLQkJICog d2hpY2ggY2FzZSB3ZSdsbCBqdXN0IHdhc3RlIGEgZmV3IGFycmF5IHNsb3RzLikgIEFkZCA0IGV4 dHJhIHNsb3RzCi0JCSAqIGZvciBhcHBsaWNhdGlvbl9uYW1lLCBmYWxsYmFja19hcHBsaWNhdGlv bl9uYW1lLCBjbGllbnRfZW5jb2RpbmcsCi0JCSAqIGVuZCBtYXJrZXIsIGFuZCAzIGV4dHJhIHNs b3RzIGZvciBzY3JhbSBrZXlzIGFuZCByZXF1aXJlZCBzY3JhbQotCQkgKiBwYXNzLXRocm91Z2gg b3B0aW9ucy4KLQkJICovCi0JCW4gPSBsaXN0X2xlbmd0aChzZXJ2ZXItPm9wdGlvbnMpICsgbGlz dF9sZW5ndGgodXNlci0+b3B0aW9ucykgKyA0ICsgMzsKLQkJa2V5d29yZHMgPSAoY29uc3QgY2hh ciAqKikgcGFsbG9jKG4gKiBzaXplb2YoY2hhciAqKSk7Ci0JCXZhbHVlcyA9IChjb25zdCBjaGFy ICoqKSBwYWxsb2MobiAqIHNpemVvZihjaGFyICopKTsKKwluID0gMDsKKwluICs9IEV4dHJhY3RD b25uZWN0aW9uT3B0aW9ucyhzZXJ2ZXItPm9wdGlvbnMsCisJCQkJCQkJCSAga2V5d29yZHMgKyBu LCB2YWx1ZXMgKyBuKTsKKwluICs9IEV4dHJhY3RDb25uZWN0aW9uT3B0aW9ucyh1c2VyLT5vcHRp b25zLAorCQkJCQkJCQkgIGtleXdvcmRzICsgbiwgdmFsdWVzICsgbik7CiAKLQkJbiA9IDA7Ci0J CW4gKz0gRXh0cmFjdENvbm5lY3Rpb25PcHRpb25zKHNlcnZlci0+b3B0aW9ucywKLQkJCQkJCQkJ CSAga2V5d29yZHMgKyBuLCB2YWx1ZXMgKyBuKTsKLQkJbiArPSBFeHRyYWN0Q29ubmVjdGlvbk9w dGlvbnModXNlci0+b3B0aW9ucywKLQkJCQkJCQkJCSAga2V5d29yZHMgKyBuLCB2YWx1ZXMgKyBu KTsKLQotCQkvKgotCQkgKiBVc2UgcGdmZHdfYXBwbGljYXRpb25fbmFtZSBhcyBhcHBsaWNhdGlv bl9uYW1lIGlmIHNldC4KLQkJICoKLQkJICogUFFjb25uZWN0ZGJQYXJhbXMoKSBwcm9jZXNzZXMg dGhlIHBhcmFtZXRlciBhcnJheXMgZnJvbSBzdGFydCB0bwotCQkgKiBlbmQuIElmIGFueSBrZXkg d29yZCBpcyByZXBlYXRlZCwgdGhlIGxhc3QgdmFsdWUgaXMgdXNlZC4gVGhlcmVmb3JlCi0JCSAq IG5vdGUgdGhhdCBwZ2Zkd19hcHBsaWNhdGlvbl9uYW1lIG11c3QgYmUgYWRkZWQgdG8gdGhlIGFy cmF5cyBhZnRlcgotCQkgKiBvcHRpb25zIG9mIEZvcmVpZ25TZXJ2ZXIgYXJlLCBzbyB0aGF0IGl0 IGNhbiBvdmVycmlkZQotCQkgKiBhcHBsaWNhdGlvbl9uYW1lIHNldCBpbiBGb3JlaWduU2VydmVy LgotCQkgKi8KLQkJaWYgKHBnZmR3X2FwcGxpY2F0aW9uX25hbWUgJiYgKnBnZmR3X2FwcGxpY2F0 aW9uX25hbWUgIT0gJ1wwJykKLQkJewotCQkJa2V5d29yZHNbbl0gPSAiYXBwbGljYXRpb25fbmFt ZSI7Ci0JCQl2YWx1ZXNbbl0gPSBwZ2Zkd19hcHBsaWNhdGlvbl9uYW1lOwotCQkJbisrOwotCQl9 CisJLyoKKwkgKiBVc2UgcGdmZHdfYXBwbGljYXRpb25fbmFtZSBhcyBhcHBsaWNhdGlvbl9uYW1l IGlmIHNldC4KKwkgKgorCSAqIFBRY29ubmVjdGRiUGFyYW1zKCkgcHJvY2Vzc2VzIHRoZSBwYXJh bWV0ZXIgYXJyYXlzIGZyb20gc3RhcnQgdG8gZW5kLgorCSAqIElmIGFueSBrZXkgd29yZCBpcyBy ZXBlYXRlZCwgdGhlIGxhc3QgdmFsdWUgaXMgdXNlZC4gVGhlcmVmb3JlIG5vdGUKKwkgKiB0aGF0 IHBnZmR3X2FwcGxpY2F0aW9uX25hbWUgbXVzdCBiZSBhZGRlZCB0byB0aGUgYXJyYXlzIGFmdGVy IG9wdGlvbnMKKwkgKiBvZiBGb3JlaWduU2VydmVyIGFyZSwgc28gdGhhdCBpdCBjYW4gb3ZlcnJp ZGUgYXBwbGljYXRpb25fbmFtZSBzZXQgaW4KKwkgKiBGb3JlaWduU2VydmVyLgorCSAqLworCWlm IChwZ2Zkd19hcHBsaWNhdGlvbl9uYW1lICYmICpwZ2Zkd19hcHBsaWNhdGlvbl9uYW1lICE9ICdc MCcpCisJeworCQlrZXl3b3Jkc1tuXSA9ICJhcHBsaWNhdGlvbl9uYW1lIjsKKwkJdmFsdWVzW25d ID0gcGdmZHdfYXBwbGljYXRpb25fbmFtZTsKKwkJbisrOworCX0KIAotCQkvKgotCQkgKiBTZWFy Y2ggdGhlIHBhcmFtZXRlciBhcnJheXMgdG8gZmluZCBhcHBsaWNhdGlvbl9uYW1lIHNldHRpbmcs IGFuZAotCQkgKiByZXBsYWNlIGVzY2FwZSBzZXF1ZW5jZXMgaW4gaXQgd2l0aCBzdGF0dXMgaW5m b3JtYXRpb24gaWYgZm91bmQuCi0JCSAqIFRoZSBhcnJheXMgYXJlIHNlYXJjaGVkIGJhY2t3YXJk cyBiZWNhdXNlIHRoZSBsYXN0IHZhbHVlIGlzIHVzZWQgaWYKLQkJICogYXBwbGljYXRpb25fbmFt ZSBpcyByZXBlYXRlZGx5IHNldC4KLQkJICovCi0JCWZvciAoaW50IGkgPSBuIC0gMTsgaSA+PSAw OyBpLS0pCisJLyoKKwkgKiBTZWFyY2ggdGhlIHBhcmFtZXRlciBhcnJheXMgdG8gZmluZCBhcHBs aWNhdGlvbl9uYW1lIHNldHRpbmcsIGFuZAorCSAqIHJlcGxhY2UgZXNjYXBlIHNlcXVlbmNlcyBp biBpdCB3aXRoIHN0YXR1cyBpbmZvcm1hdGlvbiBpZiBmb3VuZC4gIFRoZQorCSAqIGFycmF5cyBh cmUgc2VhcmNoZWQgYmFja3dhcmRzIGJlY2F1c2UgdGhlIGxhc3QgdmFsdWUgaXMgdXNlZCBpZgor CSAqIGFwcGxpY2F0aW9uX25hbWUgaXMgcmVwZWF0ZWRseSBzZXQuCisJICovCisJZm9yIChpbnQg aSA9IG4gLSAxOyBpID49IDA7IGktLSkKKwl7CisJCWlmIChzdHJjbXAoa2V5d29yZHNbaV0sICJh cHBsaWNhdGlvbl9uYW1lIikgPT0gMCAmJgorCQkJKih2YWx1ZXNbaV0pICE9ICdcMCcpCiAJCXsK LQkJCWlmIChzdHJjbXAoa2V5d29yZHNbaV0sICJhcHBsaWNhdGlvbl9uYW1lIikgPT0gMCAmJgot CQkJCSoodmFsdWVzW2ldKSAhPSAnXDAnKQorCQkJLyoKKwkJCSAqIFVzZSB0aGlzIGFwcGxpY2F0 aW9uX25hbWUgc2V0dGluZyBpZiBpdCdzIG5vdCBlbXB0eSBzdHJpbmcgZXZlbgorCQkJICogYWZ0 ZXIgYW55IGVzY2FwZSBzZXF1ZW5jZXMgaW4gaXQgYXJlIHJlcGxhY2VkLgorCQkJICovCisJCQlh cHBuYW1lID0gcHJvY2Vzc19wZ2Zkd19hcHBuYW1lKHZhbHVlc1tpXSk7CisJCQlpZiAoYXBwbmFt ZVswXSAhPSAnXDAnKQogCQkJewotCQkJCS8qCi0JCQkJICogVXNlIHRoaXMgYXBwbGljYXRpb25f bmFtZSBzZXR0aW5nIGlmIGl0J3Mgbm90IGVtcHR5IHN0cmluZwotCQkJCSAqIGV2ZW4gYWZ0ZXIg YW55IGVzY2FwZSBzZXF1ZW5jZXMgaW4gaXQgYXJlIHJlcGxhY2VkLgotCQkJCSAqLwotCQkJCWFw cG5hbWUgPSBwcm9jZXNzX3BnZmR3X2FwcG5hbWUodmFsdWVzW2ldKTsKLQkJCQlpZiAoYXBwbmFt ZVswXSAhPSAnXDAnKQotCQkJCXsKLQkJCQkJdmFsdWVzW2ldID0gYXBwbmFtZTsKLQkJCQkJYnJl YWs7Ci0JCQkJfQotCi0JCQkJLyoKLQkJCQkgKiBUaGlzIGVtcHR5IGFwcGxpY2F0aW9uX25hbWUg aXMgbm90IHVzZWQsIHNvIHdlIHNldAotCQkJCSAqIHZhbHVlc1tpXSB0byBOVUxMIGFuZCBrZWVw IHNlYXJjaGluZyB0aGUgYXJyYXkgdG8gZmluZCB0aGUKLQkJCQkgKiBuZXh0IG9uZS4KLQkJCQkg Ki8KLQkJCQl2YWx1ZXNbaV0gPSBOVUxMOwotCQkJCXBmcmVlKGFwcG5hbWUpOwotCQkJCWFwcG5h bWUgPSBOVUxMOworCQkJCXZhbHVlc1tpXSA9IGFwcG5hbWU7CisJCQkJYnJlYWs7CiAJCQl9CisK KwkJCS8qCisJCQkgKiBUaGlzIGVtcHR5IGFwcGxpY2F0aW9uX25hbWUgaXMgbm90IHVzZWQsIHNv IHdlIHNldCB2YWx1ZXNbaV0gdG8KKwkJCSAqIE5VTEwgYW5kIGtlZXAgc2VhcmNoaW5nIHRoZSBh cnJheSB0byBmaW5kIHRoZSBuZXh0IG9uZS4KKwkJCSAqLworCQkJdmFsdWVzW2ldID0gTlVMTDsK KwkJCXBmcmVlKGFwcG5hbWUpOworCQkJYXBwbmFtZSA9IE5VTEw7CiAJCX0KKwl9CisKKwkqcF9h cHBuYW1lID0gYXBwbmFtZTsKIAotCQkvKiBVc2UgInBvc3RncmVzX2ZkdyIgYXMgZmFsbGJhY2tf YXBwbGljYXRpb25fbmFtZSAqLwotCQlrZXl3b3Jkc1tuXSA9ICJmYWxsYmFja19hcHBsaWNhdGlv bl9uYW1lIjsKLQkJdmFsdWVzW25dID0gInBvc3RncmVzX2ZkdyI7CisJLyogVXNlICJwb3N0Z3Jl c19mZHciIGFzIGZhbGxiYWNrX2FwcGxpY2F0aW9uX25hbWUgKi8KKwlrZXl3b3Jkc1tuXSA9ICJm YWxsYmFja19hcHBsaWNhdGlvbl9uYW1lIjsKKwl2YWx1ZXNbbl0gPSAicG9zdGdyZXNfZmR3IjsK KwluKys7CisKKwkvKiBTZXQgY2xpZW50X2VuY29kaW5nIHNvIHRoYXQgbGlicHEgY2FuIGNvbnZl cnQgZW5jb2RpbmcgcHJvcGVybHkuICovCisJa2V5d29yZHNbbl0gPSAiY2xpZW50X2VuY29kaW5n IjsKKwl2YWx1ZXNbbl0gPSBHZXREYXRhYmFzZUVuY29kaW5nTmFtZSgpOworCW4rKzsKKworCS8q IEFkZCByZXF1aXJlZCBTQ1JBTSBwYXNzLXRocm91Z2ggY29ubmVjdGlvbiBvcHRpb25zIGlmIGl0 J3MgZW5hYmxlZC4gKi8KKwlpZiAoTXlQcm9jUG9ydCAhPSBOVUxMICYmIE15UHJvY1BvcnQtPmhh c19zY3JhbV9rZXlzICYmIFVzZVNjcmFtUGFzc3Rocm91Z2goc2VydmVyLCB1c2VyKSkKKwl7CisJ CWludAkJCWxlbjsKKwkJaW50CQkJZW5jb2RlZF9sZW47CisKKwkJa2V5d29yZHNbbl0gPSAic2Ny YW1fY2xpZW50X2tleSI7CisJCWxlbiA9IHBnX2I2NF9lbmNfbGVuKHNpemVvZihNeVByb2NQb3J0 LT5zY3JhbV9DbGllbnRLZXkpKTsKKwkJLyogZG9uJ3QgZm9yZ2V0IHRoZSB6ZXJvLXRlcm1pbmF0 b3IgKi8KKwkJdmFsdWVzW25dID0gcGFsbG9jMChsZW4gKyAxKTsKKwkJZW5jb2RlZF9sZW4gPSBw Z19iNjRfZW5jb2RlKE15UHJvY1BvcnQtPnNjcmFtX0NsaWVudEtleSwKKwkJCQkJCQkJCXNpemVv ZihNeVByb2NQb3J0LT5zY3JhbV9DbGllbnRLZXkpLAorCQkJCQkJCQkJKGNoYXIgKikgdmFsdWVz W25dLCBsZW4pOworCQlpZiAoZW5jb2RlZF9sZW4gPCAwKQorCQkJZWxvZyhFUlJPUiwgImNvdWxk IG5vdCBlbmNvZGUgU0NSQU0gY2xpZW50IGtleSIpOwogCQluKys7CiAKLQkJLyogU2V0IGNsaWVu dF9lbmNvZGluZyBzbyB0aGF0IGxpYnBxIGNhbiBjb252ZXJ0IGVuY29kaW5nIHByb3Blcmx5LiAq LwotCQlrZXl3b3Jkc1tuXSA9ICJjbGllbnRfZW5jb2RpbmciOwotCQl2YWx1ZXNbbl0gPSBHZXRE YXRhYmFzZUVuY29kaW5nTmFtZSgpOworCQlrZXl3b3Jkc1tuXSA9ICJzY3JhbV9zZXJ2ZXJfa2V5 IjsKKwkJbGVuID0gcGdfYjY0X2VuY19sZW4oc2l6ZW9mKE15UHJvY1BvcnQtPnNjcmFtX1NlcnZl cktleSkpOworCQkvKiBkb24ndCBmb3JnZXQgdGhlIHplcm8tdGVybWluYXRvciAqLworCQl2YWx1 ZXNbbl0gPSBwYWxsb2MwKGxlbiArIDEpOworCQllbmNvZGVkX2xlbiA9IHBnX2I2NF9lbmNvZGUo TXlQcm9jUG9ydC0+c2NyYW1fU2VydmVyS2V5LAorCQkJCQkJCQkJc2l6ZW9mKE15UHJvY1BvcnQt PnNjcmFtX1NlcnZlcktleSksCisJCQkJCQkJCQkoY2hhciAqKSB2YWx1ZXNbbl0sIGxlbik7CisJ CWlmIChlbmNvZGVkX2xlbiA8IDApCisJCQllbG9nKEVSUk9SLCAiY291bGQgbm90IGVuY29kZSBT Q1JBTSBzZXJ2ZXIga2V5Iik7CiAJCW4rKzsKIAotCQkvKiBBZGQgcmVxdWlyZWQgU0NSQU0gcGFz cy10aHJvdWdoIGNvbm5lY3Rpb24gb3B0aW9ucyBpZiBpdCdzIGVuYWJsZWQuICovCi0JCWlmIChN eVByb2NQb3J0ICE9IE5VTEwgJiYgTXlQcm9jUG9ydC0+aGFzX3NjcmFtX2tleXMgJiYgVXNlU2Ny YW1QYXNzdGhyb3VnaChzZXJ2ZXIsIHVzZXIpKQotCQl7Ci0JCQlpbnQJCQlsZW47Ci0JCQlpbnQJ CQllbmNvZGVkX2xlbjsKLQotCQkJa2V5d29yZHNbbl0gPSAic2NyYW1fY2xpZW50X2tleSI7Ci0J CQlsZW4gPSBwZ19iNjRfZW5jX2xlbihzaXplb2YoTXlQcm9jUG9ydC0+c2NyYW1fQ2xpZW50S2V5 KSk7Ci0JCQkvKiBkb24ndCBmb3JnZXQgdGhlIHplcm8tdGVybWluYXRvciAqLwotCQkJdmFsdWVz W25dID0gcGFsbG9jMChsZW4gKyAxKTsKLQkJCWVuY29kZWRfbGVuID0gcGdfYjY0X2VuY29kZShN eVByb2NQb3J0LT5zY3JhbV9DbGllbnRLZXksCi0JCQkJCQkJCQkJc2l6ZW9mKE15UHJvY1BvcnQt PnNjcmFtX0NsaWVudEtleSksCi0JCQkJCQkJCQkJKGNoYXIgKikgdmFsdWVzW25dLCBsZW4pOwot CQkJaWYgKGVuY29kZWRfbGVuIDwgMCkKLQkJCQllbG9nKEVSUk9SLCAiY291bGQgbm90IGVuY29k ZSBTQ1JBTSBjbGllbnQga2V5Iik7Ci0JCQluKys7Ci0KLQkJCWtleXdvcmRzW25dID0gInNjcmFt X3NlcnZlcl9rZXkiOwotCQkJbGVuID0gcGdfYjY0X2VuY19sZW4oc2l6ZW9mKE15UHJvY1BvcnQt PnNjcmFtX1NlcnZlcktleSkpOwotCQkJLyogZG9uJ3QgZm9yZ2V0IHRoZSB6ZXJvLXRlcm1pbmF0 b3IgKi8KLQkJCXZhbHVlc1tuXSA9IHBhbGxvYzAobGVuICsgMSk7Ci0JCQllbmNvZGVkX2xlbiA9 IHBnX2I2NF9lbmNvZGUoTXlQcm9jUG9ydC0+c2NyYW1fU2VydmVyS2V5LAotCQkJCQkJCQkJCXNp emVvZihNeVByb2NQb3J0LT5zY3JhbV9TZXJ2ZXJLZXkpLAotCQkJCQkJCQkJCShjaGFyICopIHZh bHVlc1tuXSwgbGVuKTsKLQkJCWlmIChlbmNvZGVkX2xlbiA8IDApCi0JCQkJZWxvZyhFUlJPUiwg ImNvdWxkIG5vdCBlbmNvZGUgU0NSQU0gc2VydmVyIGtleSIpOwotCQkJbisrOworCQkvKgorCQkg KiBSZXF1aXJlIHNjcmFtLXNoYS0yNTYgdG8gZW5zdXJlIHRoYXQgbm8gb3RoZXIgYXV0aCBtZXRo b2QgaXMgdXNlZAorCQkgKiB3aGVuIGNvbm5lY3Rpbmcgd2l0aCBmb3JlaWduIHNlcnZlci4KKwkJ ICovCisJCWtleXdvcmRzW25dID0gInJlcXVpcmVfYXV0aCI7CisJCXZhbHVlc1tuXSA9ICJzY3Jh bS1zaGEtMjU2IjsKKwkJbisrOworCX0KIAotCQkJLyoKLQkJCSAqIFJlcXVpcmUgc2NyYW0tc2hh LTI1NiB0byBlbnN1cmUgdGhhdCBubyBvdGhlciBhdXRoIG1ldGhvZCBpcwotCQkJICogdXNlZCB3 aGVuIGNvbm5lY3Rpbmcgd2l0aCBmb3JlaWduIHNlcnZlci4KLQkJCSAqLwotCQkJa2V5d29yZHNb bl0gPSAicmVxdWlyZV9hdXRoIjsKLQkJCXZhbHVlc1tuXSA9ICJzY3JhbS1zaGEtMjU2IjsKLQkJ CW4rKzsKLQkJfQorCWtleXdvcmRzW25dID0gdmFsdWVzW25dID0gTlVMTDsKKworCS8qIFZlcmlm eSB0aGUgc2V0IG9mIGNvbm5lY3Rpb24gcGFyYW1ldGVycy4gKi8KKwljaGVja19jb25uX3BhcmFt cyhrZXl3b3JkcywgdmFsdWVzLCB1c2VyKTsKIAotCQlrZXl3b3Jkc1tuXSA9IHZhbHVlc1tuXSA9 IE5VTEw7CisJKnBfa2V5d29yZHMgPSBrZXl3b3JkczsKKwkqcF92YWx1ZXMgPSB2YWx1ZXM7Cit9 CisKKy8qCisgKiBDb25uZWN0IHRvIHJlbW90ZSBzZXJ2ZXIgdXNpbmcgc3BlY2lmaWVkIHNlcnZl ciBhbmQgdXNlciBtYXBwaW5nIHByb3BlcnRpZXMuCisgKi8KK3N0YXRpYyBQR2Nvbm4gKgorY29u bmVjdF9wZ19zZXJ2ZXIoRm9yZWlnblNlcnZlciAqc2VydmVyLCBVc2VyTWFwcGluZyAqdXNlcikK K3sKKwlQR2Nvbm4JICAgKnZvbGF0aWxlIGNvbm4gPSBOVUxMOworCisJLyoKKwkgKiBVc2UgUEdf VFJZIGJsb2NrIHRvIGVuc3VyZSBjbG9zaW5nIGNvbm5lY3Rpb24gb24gZXJyb3IuCisJICovCisJ UEdfVFJZKCk7CisJeworCQljb25zdCBjaGFyICoqa2V5d29yZHM7CisJCWNvbnN0IGNoYXIgKip2 YWx1ZXM7CisJCWNoYXIJICAgKmFwcG5hbWU7CiAKLQkJLyogVmVyaWZ5IHRoZSBzZXQgb2YgY29u bmVjdGlvbiBwYXJhbWV0ZXJzLiAqLwotCQljaGVja19jb25uX3BhcmFtcyhrZXl3b3JkcywgdmFs dWVzLCB1c2VyKTsKKwkJY29uc3RydWN0X2Nvbm5lY3Rpb25fcGFyYW1zKHNlcnZlciwgdXNlciwg JmtleXdvcmRzLCAmdmFsdWVzLCAmYXBwbmFtZSk7CiAKIAkJLyogZmlyc3QgdGltZSwgYWxsb2Nh dGUgb3IgZ2V0IHRoZSBjdXN0b20gd2FpdCBldmVudCAqLwogCQlpZiAocGdmZHdfd2VfY29ubmVj dCA9PSAwKQpAQCAtMjMwOSw2ICsyMzI4LDU2IEBAIHBvc3RncmVzX2Zkd19nZXRfY29ubmVjdGlv bnNfaW50ZXJuYWwoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sCiAJfQogfQogCisvKgorICogVmFs dWVzIGluIGNvbm5lY3Rpb24gc3RyaW5ncyBtdXN0IGJlIGVuY2xvc2VkIGluIHNpbmdsZSBxdW90 ZXMuIFNpbmdsZQorICogcXVvdGVzIGFuZCBiYWNrc2xhc2hlcyBtdXN0IGJlIGVzY2FwZWQgd2l0 aCBiYWNrc2xhc2guIE5COiB0aGVzZSBydWxlcyBhcmUKKyAqIGRpZmZlcmVudCBmcm9tIHRoZSBy dWxlcyBmb3IgZXNjYXBpbmcgYSBTUUwgbGl0ZXJhbC4KKyAqLworc3RhdGljIHZvaWQKK2FwcGVu ZEVzY2FwZWRWYWx1ZShTdHJpbmdJbmZvIHN0ciwgY29uc3QgY2hhciAqdmFsKQoreworCWFwcGVu ZFN0cmluZ0luZm9DaGFyKHN0ciwgJ1wnJyk7CisJZm9yIChpbnQgaSA9IDA7IHZhbFtpXSAhPSAn XDAnOyBpKyspCisJeworCQlpZiAodmFsW2ldID09ICdcXCcgfHwgdmFsW2ldID09ICdcJycpCisJ CQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihzdHIsICdcXCcpOworCQlhcHBlbmRTdHJpbmdJbmZvQ2hh cihzdHIsIHZhbFtpXSk7CisJfQorCWFwcGVuZFN0cmluZ0luZm9DaGFyKHN0ciwgJ1wnJyk7Cit9 CisKK0RhdHVtCitwb3N0Z3Jlc19mZHdfY29ubmVjdGlvbihQR19GVU5DVElPTl9BUkdTKQorewor CU9pZAkJCXVzZXJpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJT2lkCQkJc2VydmVyaWQgPSBQR19H RVRBUkdfT0lEKDEpOworCUZvcmVpZ25TZXJ2ZXIgKnNlcnZlciA9IEdldEZvcmVpZ25TZXJ2ZXIo c2VydmVyaWQpOworCVVzZXJNYXBwaW5nICp1c2VyID0gR2V0VXNlck1hcHBpbmcodXNlcmlkLCBz ZXJ2ZXJpZCk7CisJU3RyaW5nSW5mb0RhdGEgc3RyOworCWNvbnN0IGNoYXIgKiprZXl3b3JkczsK Kwljb25zdCBjaGFyICoqdmFsdWVzOworCWNoYXIJICAgKmFwcG5hbWU7CisJY2hhcgkgICAqc2Vw ID0gIiI7CisKKwljb25zdHJ1Y3RfY29ubmVjdGlvbl9wYXJhbXMoc2VydmVyLCB1c2VyLCAma2V5 d29yZHMsICZ2YWx1ZXMsICZhcHBuYW1lKTsKKworCWluaXRTdHJpbmdJbmZvKCZzdHIpOworCWZv ciAoaW50IGkgPSAwOyBrZXl3b3Jkc1tpXSAhPSBOVUxMOyBpKyspCisJeworCQlpZiAodmFsdWVz W2ldID09IE5VTEwpCisJCQljb250aW51ZTsKKwkJYXBwZW5kU3RyaW5nSW5mbygmc3RyLCAiJXMl cyA9ICIsIHNlcCwga2V5d29yZHNbaV0pOworCQlhcHBlbmRFc2NhcGVkVmFsdWUoJnN0ciwgdmFs dWVzW2ldKTsKKwkJc2VwID0gIiAiOworCX0KKworCWlmIChhcHBuYW1lICE9IE5VTEwpCisJCXBm cmVlKGFwcG5hbWUpOworCXBmcmVlKGtleXdvcmRzKTsKKwlwZnJlZSh2YWx1ZXMpOworCVBHX1JF VFVSTl9URVhUX1AoY3N0cmluZ190b190ZXh0KHN0ci5kYXRhKSk7Cit9CisKIC8qCiAgKiBMaXN0 IGFjdGl2ZSBmb3JlaWduIHNlcnZlciBjb25uZWN0aW9ucy4KICAqCmRpZmYgLS1naXQgYS9jb250 cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0IGIvY29udHJpYi9wb3N0 Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dAppbmRleCAyY2NiNzJjNTM5YS4uMGY1 MjcxZDQ3NmUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3Rn cmVzX2Zkdy5vdXQKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNf ZmR3Lm91dApAQCAtMjU1LDYgKzI1NSwxNCBAQCBTRUxFQ1QgYzMsIGM0IEZST00gZnQxIE9SREVS IEJZIGMzLCBjMSBMSU1JVCAxOyAgLS0gc2hvdWxkIHdvcmsgYWdhaW4KIEFOQUxZWkUgZnQxOwog QUxURVIgRk9SRUlHTiBUQUJMRSBmdDIgT1BUSU9OUyAodXNlX3JlbW90ZV9lc3RpbWF0ZSAndHJ1 ZScpOwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0gdGVzdCBzdWJzY3JpcHRpb24KKy0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K K0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19wZ2Zkd19zdWJzY3JpcHRpb24gU0VSVkVSIHRl c3RzZXJ2ZXIxCisgIFBVQkxJQ0FUSU9OIHB1YjEgV0lUSCAoc2xvdF9uYW1lID0gTk9ORSwgY29u bmVjdCA9IGZhbHNlKTsKK1dBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBp cyBub3QgY29ubmVjdGVkCitISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0 IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3Jp cHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25z LgorRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19wZ2Zkd19zdWJzY3JpcHRpb247CistLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLSB0ZXN0IGVycm9yIGNhc2UgZm9yIGNyZWF0ZSBwdWJsaWNhdGlvbiBvbiBmb3Jl aWduIHRhYmxlCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mdGJs IEZPUiBUQUJMRSBmdDE7ICAtLSBzaG91bGQgZmFpbApkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0 Z3Jlc19mZHcvbWVzb24uYnVpbGQgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9tZXNvbi5idWlsZApp bmRleCBlYTRjZDlmY2Q0Ni4uM2UyZWQwNmI3NjYgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdy ZXNfZmR3L21lc29uLmJ1aWxkCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L21lc29uLmJ1aWxk CkBAIC0yNyw2ICsyNyw3IEBAIGluc3RhbGxfZGF0YSgKICAgJ3Bvc3RncmVzX2Zkdy0tMS4wLnNx bCcsCiAgICdwb3N0Z3Jlc19mZHctLTEuMC0tMS4xLnNxbCcsCiAgICdwb3N0Z3Jlc19mZHctLTEu MS0tMS4yLnNxbCcsCisgICdwb3N0Z3Jlc19mZHctLTEuMi0tMS4zLnNxbCcsCiAgIGt3YXJnczog Y29udHJpYl9kYXRhX2FyZ3MsCiApCiAKQEAgLTUwLDYgKzUxLDcgQEAgdGVzdHMgKz0gewogICAn dGFwJzogewogICAgICd0ZXN0cyc6IFsKICAgICAgICd0LzAwMV9hdXRoX3NjcmFtLnBsJywKKyAg ICAgICd0LzAxMF9zdWJzY3JpcHRpb24ucGwnLAogICAgIF0sCiAgIH0sCiB9CmRpZmYgLS1naXQg YS9jb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHctLTEuMi0tMS4zLnNxbCBiL2NvbnRy aWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy0tMS4yLS0xLjMuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41YmNmMGJhMmUwOQotLS0gL2Rldi9udWxsCisrKyBi L2NvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy0tMS4yLS0xLjMuc3FsCkBAIC0wLDAg KzEsMTIgQEAKKy8qIGNvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy0tMS4yLS0xLjMu c3FsICovCisKKy0tIGNvbXBsYWluIGlmIHNjcmlwdCBpcyBzb3VyY2VkIGluIHBzcWwsIHJhdGhl ciB0aGFuIHZpYSBBTFRFUiBFWFRFTlNJT04KK1xlY2hvIFVzZSAiQUxURVIgRVhURU5TSU9OIHBv c3RncmVzX2ZkdyBVUERBVEUgVE8gJzEuMyciIHRvIGxvYWQgdGhpcyBmaWxlLiBccXVpdAorCist LSB0YWtlcyBpbnRlcm5hbCBwYXJhbWV0ZXIgdG8gcHJldmVudCBjYWxsaW5nIGZyb20gU1FMCitD UkVBVEUgRlVOQ1RJT04gcG9zdGdyZXNfZmR3X2Nvbm5lY3Rpb24ob2lkLCBvaWQsIGludGVybmFs KQorUkVUVVJOUyB0ZXh0CitBUyAnTU9EVUxFX1BBVEhOQU1FJworTEFOR1VBR0UgQyBTVFJJQ1Qg UEFSQUxMRUwgUkVTVFJJQ1RFRDsKKworQUxURVIgRk9SRUlHTiBEQVRBIFdSQVBQRVIgcG9zdGdy ZXNfZmR3IENPTk5FQ1RJT04gcG9zdGdyZXNfZmR3X2Nvbm5lY3Rpb247CmRpZmYgLS1naXQgYS9j b250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcuY29udHJvbCBiL2NvbnRyaWIvcG9zdGdy ZXNfZmR3L3Bvc3RncmVzX2Zkdy5jb250cm9sCmluZGV4IGE0YjgwMGJlNGZjLi5hZTI5NjNkNDgw ZCAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNfZmR3LmNvbnRyb2wK KysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNfZmR3LmNvbnRyb2wKQEAgLTEsNSAr MSw1IEBACiAjIHBvc3RncmVzX2ZkdyBleHRlbnNpb24KIGNvbW1lbnQgPSAnZm9yZWlnbi1kYXRh IHdyYXBwZXIgZm9yIHJlbW90ZSBQb3N0Z3JlU1FMIHNlcnZlcnMnCi1kZWZhdWx0X3ZlcnNpb24g PSAnMS4yJworZGVmYXVsdF92ZXJzaW9uID0gJzEuMycKIG1vZHVsZV9wYXRobmFtZSA9ICckbGli ZGlyL3Bvc3RncmVzX2ZkdycKIHJlbG9jYXRhYmxlID0gdHJ1ZQpkaWZmIC0tZ2l0IGEvY29udHJp Yi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwgYi9jb250cmliL3Bvc3RncmVzX2Zk dy9zcWwvcG9zdGdyZXNfZmR3LnNxbAppbmRleCA3MmQyZDljMzExYi4uNDllZDc5N2U4ZWYgMTAw NjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCisrKyBi L2NvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCkBAIC0yNDQsNiArMjQ0 LDEzIEBAIFNFTEVDVCBjMywgYzQgRlJPTSBmdDEgT1JERVIgQlkgYzMsIGMxIExJTUlUIDE7ICAt LSBzaG91bGQgd29yayBhZ2FpbgogQU5BTFlaRSBmdDE7CiBBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0 MiBPUFRJT05TICh1c2VfcmVtb3RlX2VzdGltYXRlICd0cnVlJyk7CiAKKy0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tIHRlc3Qgc3Vic2NyaXB0aW9uCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitDUkVBVEUgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfcGdmZHdfc3Vic2NyaXB0aW9uIFNFUlZFUiB0ZXN0c2VydmVyMQorICBQVUJMSUNB VElPTiBwdWIxIFdJVEggKHNsb3RfbmFtZSA9IE5PTkUsIGNvbm5lY3QgPSBmYWxzZSk7CitEUk9Q IFNVQlNDUklQVElPTiByZWdyZXNzX3BnZmR3X3N1YnNjcmlwdGlvbjsKKwogLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogLS0gdGVzdCBlcnJvciBjYXNlIGZvciBjcmVhdGUgcHVibGljYXRpb24gb24gZm9yZWlnbiB0 YWJsZQogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvdC8w MTBfc3Vic2NyaXB0aW9uLnBsIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvdC8wMTBfc3Vic2NyaXB0 aW9uLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hMzllOGZkYmJh NAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3QvMDEwX3N1YnNjcmlw dGlvbi5wbApAQCAtMCwwICsxLDcxIEBACisKKyMgQ29weXJpZ2h0IChjKSAyMDIxLTIwMjQsIFBv c3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKKyMgQmFzaWMgbG9naWNhbCByZXBs aWNhdGlvbiB0ZXN0Cit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzIEZBVEFMID0+ICdhbGwnOwor dXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRp bHM7Cit1c2UgVGVzdDo6TW9yZTsKKworIyBJbml0aWFsaXplIHB1Ymxpc2hlciBub2RlCitteSAk bm9kZV9wdWJsaXNoZXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3B1Ymxpc2hl cicpOworJG5vZGVfcHVibGlzaGVyLT5pbml0KGFsbG93c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwn KTsKKyRub2RlX3B1Ymxpc2hlci0+c3RhcnQ7CisKKyMgQ3JlYXRlIHN1YnNjcmliZXIgbm9kZQor bXkgJG5vZGVfc3Vic2NyaWJlciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vi c2NyaWJlcicpOworJG5vZGVfc3Vic2NyaWJlci0+aW5pdDsKKyRub2RlX3N1YnNjcmliZXItPnN0 YXJ0OworCisjIENyZWF0ZSBzb21lIHByZWV4aXN0aW5nIGNvbnRlbnQgb24gcHVibGlzaGVyCisk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgdGFi X2lucyBBUyBTRUxFQ1QgYSwgYSArIDEgYXMgYiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDIp IEFTIGEiKTsKKworIyBSZXBsaWNhdGUgdGhlIGNoYW5nZXMgd2l0aG91dCBjb2x1bW5zCiskbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFRBQkxFIHRhYl9ub19j b2woKSIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJU IElOVE8gdGFiX25vX2NvbCBkZWZhdWx0IFZBTFVFUyIpOworCisjIFNldHVwIHN0cnVjdHVyZSBv biBzdWJzY3JpYmVyCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNS RUFURSBFWFRFTlNJT04gcG9zdGdyZXNfZmR3Iik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgIkNSRUFURSBUQUJMRSB0YWJfaW5zIChhIGludCwgYiBpbnQpIik7CisK KyMgU2V0dXAgbG9naWNhbCByZXBsaWNhdGlvbgorbXkgJHB1Ymxpc2hlcl9jb25uc3RyID0gJG5v ZGVfcHVibGlzaGVyLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOworJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViIEZP UiBUQUJMRSB0YWJfaW5zIik7CisKK215ICRwdWJsaXNoZXJfaG9zdCA9ICRub2RlX3B1Ymxpc2hl ci0+aG9zdDsKK215ICRwdWJsaXNoZXJfcG9ydCA9ICRub2RlX3B1Ymxpc2hlci0+cG9ydDsKKyRu b2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgU0VSVkVSIHRh cF9zZXJ2ZXIgRk9SRUlHTiBEQVRBIFdSQVBQRVIgcG9zdGdyZXNfZmR3IE9QVElPTlMgKGhvc3Qg JyRwdWJsaXNoZXJfaG9zdCcsIHBvcnQgJyRwdWJsaXNoZXJfcG9ydCcsIGRibmFtZSAncG9zdGdy ZXMnKSIKKyk7CisKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJD UkVBVEUgVVNFUiBNQVBQSU5HIEZPUiBQVUJMSUMgU0VSVkVSIHRhcF9zZXJ2ZXIiCispOworCisk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIEZPUkVJR04g VEFCTEUgZl90YWJfaW5zIChhIGludCwgYiBpbnQpIFNFUlZFUiB0YXBfc2VydmVyIE9QVElPTlMo dGFibGVfbmFtZSAndGFiX2lucycpIgorKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorCSJDUkVBVEUgU1VCU0NSSVBUSU9OIHRhcF9zdWIgU0VSVkVSIHRhcF9zZXJ2 ZXIgUFVCTElDQVRJT04gdGFwX3B1YiBXSVRIIChwYXNzd29yZF9yZXF1aXJlZD1mYWxzZSkiCisp OworCisjIFdhaXQgZm9yIGluaXRpYWwgdGFibGUgc3luYyB0byBmaW5pc2gKKyRub2RlX3N1YnNj cmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hlciwgJ3RhcF9z dWInKTsKKworbXkgJHJlc3VsdCA9CisgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIEZST00gKFNFTEVDVCBmLmIgPSBsLmIgYXMgbWF0Y2gg RlJPTSB0YWJfaW5zIGwsIGZfdGFiX2lucyBmIFdIRVJFIGwuYSA9IGYuYSkgV0hFUkUgbWF0Y2gi KTsKK2lzKCRyZXN1bHQsIHFxKDEwMDIpLCAnY2hlY2sgaW5pdGlhbCBkYXRhIHdhcyBjb3BpZWQg dG8gc3Vic2NyaWJlcicpOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCSJJTlNFUlQgSU5UTyB0YWJfaW5zIFNFTEVDVCBhLCBhICsgMSBGUk9NIGdlbmVyYXRlX3Nl cmllcygxMDAzLDEwNTApIGEiKTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVw KCd0YXBfc3ViJyk7CisKKyRyZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSBGUk9NIChTRUxFQ1QgZi5iID0gbC5iIGFzIG1h dGNoIEZST00gdGFiX2lucyBsLCBmX3RhYl9pbnMgZiBXSEVSRSBsLmEgPSBmLmEpIFdIRVJFIG1h dGNoIik7CitpcygkcmVzdWx0LCBxcSgxMDUwKSwgJ2NoZWNrIGluaXRpYWwgZGF0YSB3YXMgY29w aWVkIHRvIHN1YnNjcmliZXInKTsKKworZG9uZV90ZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwt cmVwbGljYXRpb24uc2dtbAppbmRleCA1MDI4ZmU5YWYwOS4uYjRlNmQ1YWUzZjkgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbApAQCAtMjU3Myw3ICsyNTczLDkgQEAgQ09OVEVY VDogIHByb2Nlc3NpbmcgcmVtb3RlIGRhdGEgZm9yIHJlcGxpY2F0aW9uIG9yaWdpbiAicGdfMTYz OTUiIGR1cmluZyAiSU5TRVIKICAgPHBhcmE+CiAgICBUbyBjcmVhdGUgYSBzdWJzY3JpcHRpb24s IHRoZSB1c2VyIG11c3QgaGF2ZSB0aGUgcHJpdmlsZWdlcyBvZgogICAgdGhlIDxsaXRlcmFsPnBn X2NyZWF0ZV9zdWJzY3JpcHRpb248L2xpdGVyYWw+IHJvbGUsIGFzIHdlbGwgYXMKLSAgIDxsaXRl cmFsPkNSRUFURTwvbGl0ZXJhbD4gcHJpdmlsZWdlcyBvbiB0aGUgZGF0YWJhc2UuCisgICA8bGl0 ZXJhbD5DUkVBVEU8L2xpdGVyYWw+IHByaXZpbGVnZXMgb24gdGhlIGRhdGFiYXNlLiAgSWYKKyAg IDxsaXRlcmFsPlNFUlZFUjwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkLCB0aGUgdXNlciBhbHNvIG11 c3QgaGF2ZQorICAgPGxpdGVyYWw+VVNBR0U8L2xpdGVyYWw+IHByaXZpbGVnZXMgb24gdGhlIHNl cnZlci4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Bv c3RncmVzLWZkdy5zZ21sIGIvZG9jL3NyYy9zZ21sL3Bvc3RncmVzLWZkdy5zZ21sCmluZGV4IGZj ZjEwZTQzMTdlLi5kZTY5ZGRjZGViYyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Bvc3RncmVz LWZkdy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9wb3N0Z3Jlcy1mZHcuc2dtbApAQCAtMTA0OSw2 ICsxMDQ5LDMyIEBAIHBvc3RncmVzPSMgU0VMRUNUIHBvc3RncmVzX2Zkd19kaXNjb25uZWN0X2Fs bCgpOwogICA8L3BhcmE+CiAgPC9zZWN0Mj4KIAorIDxzZWN0MiBpZD0icG9zdGdyZXMtZmR3LXNl cnZlci1zdWJzY3JpcHRpb24iPgorICA8dGl0bGU+U3Vic2NyaXB0aW9uIE1hbmFnZW1lbnQ8L3Rp dGxlPgorCisgIDxwYXJhPgorICAgPGZpbGVuYW1lPnBvc3RncmVzX2ZkdzwvZmlsZW5hbWU+IHN1 cHBvcnRzIHN1YnNjcmlwdGlvbiBjb25uZWN0aW9ucyB1c2luZworICAgdGhlIHNhbWUgb3B0aW9u cyBkZXNjcmliZWQgaW4gPHhyZWYKKyAgIGxpbmtlbmQ9InBvc3RncmVzLWZkdy1vcHRpb25zLWNv bm5lY3Rpb24iLz4uCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIEZvciBleGFtcGxlLCBhc3N1 bWluZyB0aGUgcmVtb3RlIHNlcnZlciA8bGl0ZXJhbD5mb3JlaWduLWhvc3Q8L2xpdGVyYWw+IGhh cworICAgYSBwdWJsaWNhdGlvbiA8bGl0ZXJhbD50ZXN0cHViPC9saXRlcmFsPjoKKzxwcm9ncmFt bGlzdGluZz4KK0NSRUFURSBTRVJWRVIgc3Vic2NyaXB0aW9uX3NlcnZlciBGT1JFSUdOIERBVEEg V1JBUFBFUiBwb3N0Z3Jlc19mZHcgT1BUSU9OUyAoaG9zdCAnZm9yZWlnbi1ob3N0JywgZGJuYW1l ICdmb3JlaWduX2RiJyk7CitDUkVBVEUgVVNFUiBNQVBQSU5HIEZPUiBsb2NhbF91c2VyIFNFUlZF UiBzdWJzY3JpcHRpb25fc2VydmVyIE9QVElPTlMgKHVzZXIgJ2ZvcmVpZ25fdXNlcicsIHBhc3N3 b3JkICdwYXNzd29yZCcpOworQ1JFQVRFIFNVQlNDUklQVElPTiBteV9zdWJzY3JpcHRpb24gU0VS VkVSIHN1YnNjcmlwdGlvbl9zZXJ2ZXIgUFVCTElDQVRJT04gdGVzdHB1YjsKKzwvcHJvZ3JhbWxp c3Rpbmc+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRvIGNyZWF0ZSBhIHN1YnNjcmlwdGlv biwgdGhlIHVzZXIgbXVzdCBiZSBhIG1lbWJlciBvZiB0aGUgPHhyZWYKKyAgIGxpbmtlbmQ9InBy ZWRlZmluZWQtcm9sZS1wZy1jcmVhdGUtc3Vic2NyaXB0aW9uIi8+IHJvbGUgYW5kIGhhdmUKKyAg IDxsaXRlcmFsPlVTQUdFPC9saXRlcmFsPiBwcml2aWxlZ2VzIG9uIHRoZSBzZXJ2ZXIuCisgIDwv cGFyYT4KKyA8L3NlY3QyPgorCiAgPHNlY3QyIGlkPSJwb3N0Z3Jlcy1mZHctdHJhbnNhY3Rpb24t bWFuYWdlbWVudCI+CiAgIDx0aXRsZT5UcmFuc2FjdGlvbiBNYW5hZ2VtZW50PC90aXRsZT4KIApk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9mb3JlaWduX2RhdGFfd3JhcHBlci5z Z21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9mb3JlaWduX2RhdGFfd3JhcHBlci5zZ21sCmlu ZGV4IGRjMDk1N2Q5NjVhLi42NDBjMDI4OTNjZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Jl Zi9hbHRlcl9mb3JlaWduX2RhdGFfd3JhcHBlci5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYv YWx0ZXJfZm9yZWlnbl9kYXRhX3dyYXBwZXIuc2dtbApAQCAtMjQsNiArMjQsNyBAQCBQb3N0Z3Jl U1FMIGRvY3VtZW50YXRpb24KIEFMVEVSIEZPUkVJR04gREFUQSBXUkFQUEVSIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgICBbIEhBTkRMRVIgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmhhbmRsZXJfZnVuY3Rpb248L3JlcGxhY2VhYmxl PiB8IE5PIEhBTkRMRVIgXQogICAgIFsgVkFMSURBVE9SIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj52YWxpZGF0b3JfZnVuY3Rpb248L3JlcGxhY2VhYmxlPiB8IE5PIFZBTElEQVRPUiBd CisgICAgWyBDT05ORUNUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb25uZWN0 aW9uX2Z1bmN0aW9uPC9yZXBsYWNlYWJsZT4gfCBOTyBDT05ORUNUSU9OIF0KICAgICBbIE9QVElP TlMgKCBbIEFERCB8IFNFVCB8IERST1AgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ b3B0aW9uPC9yZXBsYWNlYWJsZT4gWyc8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFs dWU8L3JlcGxhY2VhYmxlPiddIFssIC4uLiBdKSBdCiBBTFRFUiBGT1JFSUdOIERBVEEgV1JBUFBF UiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IE9XTkVS IFRPIHsgPHJlcGxhY2VhYmxlPm5ld19vd25lcjwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9ST0xF IHwgQ1VSUkVOVF9VU0VSIHwgU0VTU0lPTl9VU0VSIH0KIEFMVEVSIEZPUkVJR04gREFUQSBXUkFQ UEVSIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVO QU1FIFRPIDxyZXBsYWNlYWJsZT5uZXdfbmFtZTwvcmVwbGFjZWFibGU+CkBAIC0xMTIsNiArMTEz LDI1IEBAIEFMVEVSIEZPUkVJR04gREFUQSBXUkFQUEVSIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFy bGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPkNPTk5F Q1RJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbm5lY3Rpb25fZnVuY3Rpb248 L3JlcGxhY2VhYmxlPjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFy YT4KKyAgICAgIFNwZWNpZmllcyBhIG5ldyBjb25uZWN0aW9uIGZ1bmN0aW9uIGZvciB0aGUgZm9y ZWlnbi1kYXRhIHdyYXBwZXIuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+Tk8g Q09OTkVDVElPTjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIFRoaXMgaXMgdXNlZCB0byBzcGVjaWZ5IHRoYXQgdGhlIGZvcmVpZ24tZGF0YSB3cmFw cGVyIHNob3VsZCBubworICAgICAgbG9uZ2VyIGhhdmUgYSBjb25uZWN0aW9uIGZ1bmN0aW9uLgor ICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8 dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxsaXRlcmFsPk9QVElPTlMgKCBbIEFERCB8IFNFVCB8 IERST1AgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b3B0aW9uPC9yZXBsYWNlYWJs ZT4gWyc8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPidd IFssIC4uLiBdICk8L2xpdGVyYWw+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCmluZGV4IDUzMTg5OThlODBjLi5mMjE1ZmIwZTVh MiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCkBAIC0yMSw2ICsy MSw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5 bm9wc2lzPgorQUxURVIgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT4gU0VSVkVSIDxyZXBsYWNlYWJsZT5zZXJ2ZXJuYW1lPC9yZXBs YWNlYWJsZT4KIEFMVEVSIFNVQlNDUklQVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmFtZTwvcmVwbGFjZWFibGU+IENPTk5FQ1RJT04gJzxyZXBsYWNlYWJsZT5jb25uaW5mbzwv cmVwbGFjZWFibGU+JwogQUxURVIgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gU0VUIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBb IFdJVEggKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fb3B0aW9u PC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9y ZXBsYWNlYWJsZT5dIFssIC4uLiBdICkgXQogQUxURVIgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gQUREIFBVQkxJQ0FUSU9OIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9uYW1lPC9yZXBsYWNlYWJs ZT4gWywgLi4uXSBbIFdJVEggKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGlj YXRpb25fb3B0aW9uPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkgXQpAQCAtMTAyLDEzICsxMDMsMjQg QEAgQUxURVIgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1l PC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDwKICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0 ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1hbHRlcnN1YnNjcmlwdGlvbi1wYXJh bXMtc2VydmVyIj4KKyAgICA8dGVybT48bGl0ZXJhbD5TRVJWRVIgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnNlcnZlcm5hbWU8L3JlcGxhY2VhYmxlPjwvbGl0ZXJhbD48L3Rlcm0+Cisg ICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgY2xhdXNlIHJlcGxhY2VzIHRo ZSBmb3JlaWduIHNlcnZlciBvciBjb25uZWN0aW9uIHN0cmluZyBvcmlnaW5hbGx5CisgICAgICBz ZXQgYnkgPHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbiIvPiB3aXRoIHRoZSBm b3JlaWduIHNlcnZlcgorICAgICAgPHJlcGxhY2VhYmxlPnNlcnZlcm5hbWU8L3JlcGxhY2VhYmxl Pi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwog ICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWFsdGVyc3Vic2NyaXB0aW9uLXBhcmFtcy1jb25uZWN0 aW9uIj4KICAgICA8dGVybT48bGl0ZXJhbD5DT05ORUNUSU9OICc8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+Y29ubmluZm88L3JlcGxhY2VhYmxlPic8L2xpdGVyYWw+PC90ZXJtPgogICAg IDxsaXN0aXRlbT4KICAgICAgPHBhcmE+Ci0gICAgICBUaGlzIGNsYXVzZSByZXBsYWNlcyB0aGUg Y29ubmVjdGlvbiBzdHJpbmcgb3JpZ2luYWxseSBzZXQgYnkKLSAgICAgIDx4cmVmIGxpbmtlbmQ9 InNxbC1jcmVhdGVzdWJzY3JpcHRpb24iLz4uICBTZWUgdGhlcmUgZm9yIG1vcmUKLSAgICAgIGlu Zm9ybWF0aW9uLgorICAgICAgVGhpcyBjbGF1c2UgcmVwbGFjZXMgdGhlIGZvcmVpZ24gc2VydmVy IG9yIGNvbm5lY3Rpb24gc3RyaW5nIG9yaWdpbmFsbHkKKyAgICAgIHNldCBieSA8eHJlZiBsaW5r ZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uIi8+IHdpdGggdGhlIGNvbm5lY3Rpb24KKyAgICAg IHN0cmluZyA8cmVwbGFjZWFibGU+Y29ubmluZm88L3JlcGxhY2VhYmxlPi4KICAgICAgPC9wYXJh PgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX2ZvcmVpZ25fZGF0YV93cmFwcGVyLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9mb3JlaWduX2RhdGFfd3JhcHBlci5zZ21sCmluZGV4IDBmY2JhMThhMzQ3 Li43YjgzZjUwMGIyNSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZm9yZWln bl9kYXRhX3dyYXBwZXIuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9mb3JlaWdu X2RhdGFfd3JhcHBlci5zZ21sCkBAIC0yNCw2ICsyNCw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRh dGlvbgogQ1JFQVRFIEZPUkVJR04gREFUQSBXUkFQUEVSIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgICBbIEhBTkRMRVIgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmhhbmRsZXJfZnVuY3Rpb248L3JlcGxhY2VhYmxlPiB8IE5PIEhBTkRM RVIgXQogICAgIFsgVkFMSURBVE9SIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52YWxp ZGF0b3JfZnVuY3Rpb248L3JlcGxhY2VhYmxlPiB8IE5PIFZBTElEQVRPUiBdCisgICAgWyBDT05O RUNUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb25uZWN0aW9uX2Z1bmN0aW9u PC9yZXBsYWNlYWJsZT4gfCBOTyBDT05ORUNUSU9OIF0KICAgICBbIE9QVElPTlMgKCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b3B0aW9uPC9yZXBsYWNlYWJsZT4gJzxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+JyBbLCAuLi4gXSApIF0KIDwv c3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KQEAgLTk5LDYgKzEwMCwyNSBAQCBDUkVBVEUg Rk9SRUlHTiBEQVRBIFdSQVBQRVIgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8 L3JlcGxhY2VhYmxlPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAg PHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5DT05ORUNUSU9OIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5jb25uZWN0aW9uX2Z1bmN0aW9uPC9yZXBsYWNlYWJsZT48L2xp dGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29ubmVjdGlvbl9mdW5jdGlvbjwvcmVwbGFjZWFibGU+ IGlzIHRoZQorICAgICAgbmFtZSBvZiBhIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBmdW5jdGlvbiB0 aGF0IHdpbGwgYmUgY2FsbGVkIHRvIGdlbmVyYXRlCisgICAgICB0aGUgcG9zdGdyZXMgY29ubmVj dGlvbiBzdHJpbmcgd2hlbiBhIGZvcmVpZ24gc2VydmVyIGlzIHVzZWQgYXMgcGFydCBvZgorICAg ICAgPHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbiIvPi4gIElmIG5vIGNvbm5l Y3Rpb24gZnVuY3Rpb24gb3IKKyAgICAgIDxsaXRlcmFsPk5PIENPTk5FQ1RJT048L2xpdGVyYWw+ IGlzIHNwZWNpZmllZCwgdGhlbiBzZXJ2ZXJzIHVzaW5nIHRoaXMKKyAgICAgIGZvcmVpZ24gZGF0 YSB3cmFwcGVyIGNhbm5vdCBiZSB1c2VkIGZvciA8bGl0ZXJhbD5DUkVBVEUKKyAgICAgIFNVQlND UklQVElPTjwvbGl0ZXJhbD4uICBUaGUgY29ubmVjdGlvbiBmdW5jdGlvbiBtdXN0IHRha2UgdGhy ZWUKKyAgICAgIGFyZ3VtZW50czogb25lIG9mIHR5cGUgPHR5cGU+b2lkPC90eXBlPiBmb3IgdGhl IHVzZXIsIG9uZSBvZiB0eXBlCisgICAgICA8dHlwZT5vaWQ8L3R5cGU+IGZvciB0aGUgc2VydmVy LCBhbmQgYW4gdW51c2VkIHRoaXJkIGFyZ3VtZW50IG9mIHR5cGUKKyAgICAgIDx0eXBlPmludGVy bmFsPC90eXBlPiAod2hpY2ggcHJldmVudHMgY2FsbGluZyB0aGUgZnVuY3Rpb24gaW4gb3RoZXIK KyAgICAgIGNvbnRleHRzKS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zh cmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeT4KICAgICA8dGVybT48bGl0ZXJhbD5PUFRJ T05TICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9wdGlvbjwvcmVwbGFjZWFibGU+ ICc8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPicgWywg Li4uIF0gKTwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfc2VydmVyLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV9zZXJ2ZXIuc2dtbAppbmRleCAwNWY0MDE5NDUzYi4uY2U0YTA2NGVhYmIgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NlcnZlci5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3NlcnZlci5zZ21sCkBAIC00Miw2ICs0MiwxMyBAQCBDUkVBVEUgU0VSVkVSIFsg SUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXJ2ZXJfbmFt ZTwvcmVwbAogICAgbWVhbnMgb2YgdXNlciBtYXBwaW5ncy4KICAgPC9wYXJhPgogCisgIDxwYXJh PgorICAgSWYgdGhlIGZvcmVpZ24gZGF0YSB3cmFwcGVyIDxyZXBsYWNlYWJsZT5mZHdfbmFtZTwv cmVwbGFjZWFibGU+IGlzCisgICBzcGVjaWZpZWQgd2l0aCBhIDxsaXRlcmFsPkNPTk5FQ1RJT048 L2xpdGVyYWw+IGNsYXVzZSwgdGhlbiA8eHJlZgorICAgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNj cmlwdGlvbiIvPiBtYXkgdXNlIHRoaXMgZm9yZWlnbiBzZXJ2ZXIgZm9yCisgICBjb25uZWN0aW9u IGluZm9ybWF0aW9uLgorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBUaGUgc2VydmVyIG5hbWUg bXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBkYXRhYmFzZS4KICAgPC9wYXJhPgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbAppbmRleCBlYjBjYzY0NWQ4Zi4uMmNhN2Uw ZTY4MjYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sCkBAIC0y Miw3ICsyMiw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogIDxyZWZzeW5vcHNpc2Rpdj4K IDxzeW5vcHNpcz4KIENSRUFURSBTVUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnN1YnNjcmlwdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT4KLSAgICBDT05ORUNUSU9OICc8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29ubmluZm88L3JlcGxhY2VhYmxlPicKKyAg ICB7IFNFUlZFUiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2VydmVybmFtZTwvcmVw bGFjZWFibGU+IHwgQ09OTkVDVElPTiAnPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNv bm5pbmZvPC9yZXBsYWNlYWJsZT4nIH0KICAgICBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0KICAg ICBbIFdJVEggKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3Vic2NyaXB0aW9uX3Bh cmFtZXRlcjwvcmVwbGFjZWFibGU+IFs9IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52 YWx1ZTwvcmVwbGFjZWFibGU+XSBbLCAuLi4gXSApIF0KIDwvc3lub3BzaXM+CkBAIC03Nyw2ICs3 NywxNSBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5zdWJzY3JpcHRpb25fbmFtZTwvcmVwbGFjZWFibAogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zh cmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlv bi1wYXJhbXMtc2VydmVyIj4KKyAgICA8dGVybT48bGl0ZXJhbD5TRVJWRVIgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnNlcnZlcm5hbWU8L3JlcGxhY2VhYmxlPjwvbGl0ZXJhbD48L3Rl cm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIEEgZm9yZWlnbiBzZXJ2ZXIg dG8gdXNlIGZvciB0aGUgY29ubmVjdGlvbi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+ CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXN1 YnNjcmlwdGlvbi1wYXJhbXMtY29ubmVjdGlvbiI+CiAgICAgPHRlcm0+PGxpdGVyYWw+Q09OTkVD VElPTiAnPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbm5pbmZvPC9yZXBsYWNlYWJs ZT4nPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19z dWJzY3JpcHRpb24uYwppbmRleCBhY2Y0MmI4NTNlZC4uMzY3M2Q0ZjBiYzEgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYwpAQCAtMTksMTEgKzE5LDE0IEBACiAjaW5jbHVkZSAi YWNjZXNzL2h0dXBfZGV0YWlscy5oIgogI2luY2x1ZGUgImFjY2Vzcy90YWJsZWFtLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9pbmRleGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfZm9yZWlnbl9z ZXJ2ZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfc3Vic2NyaXB0aW9uX3JlbC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlw ZS5oIgorI2luY2x1ZGUgImZvcmVpZ24vZm9yZWlnbi5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5o IgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgorI2luY2x1ZGUgInV0aWxzL2FjbC5oIgogI2lu Y2x1ZGUgInV0aWxzL2FycmF5LmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNs dWRlICJ1dGlscy9mbWdyb2lkcy5oIgpAQCAtNjksNyArNzIsNyBAQCBHZXRQdWJsaWNhdGlvbnNT dHIoTGlzdCAqcHVibGljYXRpb25zLCBTdHJpbmdJbmZvIGRlc3QsIGJvb2wgcXVvdGVfbGl0ZXJh bCkKICAqIEZldGNoIHRoZSBzdWJzY3JpcHRpb24gZnJvbSB0aGUgc3lzY2FjaGUuCiAgKi8KIFN1 YnNjcmlwdGlvbiAqCi1HZXRTdWJzY3JpcHRpb24oT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2sp CitHZXRTdWJzY3JpcHRpb24oT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2ssIGJvb2wgYWNsY2hl Y2spCiB7CiAJSGVhcFR1cGxlCXR1cDsKIAlTdWJzY3JpcHRpb24gKnN1YjsKQEAgLTEwOCwxMCAr MTExLDM1IEBAIEdldFN1YnNjcmlwdGlvbihPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vaykKIAlz dWItPnJldGVudGlvbmFjdGl2ZSA9IHN1YmZvcm0tPnN1YnJldGVudGlvbmFjdGl2ZTsKIAogCS8q IEdldCBjb25uaW5mbyAqLwotCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChTVUJTQ1JJ UFRJT05PSUQsCi0JCQkJCQkJCSAgIHR1cCwKLQkJCQkJCQkJICAgQW51bV9wZ19zdWJzY3JpcHRp b25fc3ViY29ubmluZm8pOwotCXN1Yi0+Y29ubmluZm8gPSBUZXh0RGF0dW1HZXRDU3RyaW5nKGRh dHVtKTsKKwlpZiAoT2lkSXNWYWxpZChzdWJmb3JtLT5zdWJzZXJ2ZXIpKQorCXsKKwkJQWNsUmVz dWx0CWFjbHJlc3VsdDsKKworCQkvKiByZWNoZWNrIEFDTCBpZiByZXF1ZXN0ZWQgKi8KKwkJaWYg KGFjbGNoZWNrKQorCQl7CisJCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soRm9yZWlnblNl cnZlclJlbGF0aW9uSWQsCisJCQkJCQkJCQkJc3ViZm9ybS0+c3Vic2VydmVyLAorCQkJCQkJCQkJ CXN1YmZvcm0tPnN1Ym93bmVyLCBBQ0xfVVNBR0UpOworCisJCQlpZiAoYWNscmVzdWx0ICE9IEFD TENIRUNLX09LKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lO U1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCQkJIGVycm1zZygic3Vic2NyaXB0aW9uIG93bmVy IFwiJXNcIiBkb2VzIG5vdCBoYXZlIHBlcm1pc3Npb24gb24gZm9yZWlnbiBzZXJ2ZXIgXCIlc1wi IiwKKwkJCQkJCQkJR2V0VXNlck5hbWVGcm9tSWQoc3ViZm9ybS0+c3Vib3duZXIsIGZhbHNlKSwK KwkJCQkJCQkJRm9yZWlnblNlcnZlck5hbWUoc3ViZm9ybS0+c3Vic2VydmVyKSkpKTsKKwkJfQor CisJCXN1Yi0+Y29ubmluZm8gPSBGb3JlaWduU2VydmVyQ29ubmVjdGlvblN0cmluZyhzdWJmb3Jt LT5zdWJvd25lciwKKwkJCQkJCQkJCQkJCQkgIHN1YmZvcm0tPnN1YnNlcnZlcik7CisJfQorCWVs c2UKKwl7CisJCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChTVUJTQ1JJUFRJT05PSUQs CisJCQkJCQkJCQkgICB0dXAsCisJCQkJCQkJCQkgICBBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJj b25uaW5mbyk7CisJCXN1Yi0+Y29ubmluZm8gPSBUZXh0RGF0dW1HZXRDU3RyaW5nKGRhdHVtKTsK Kwl9CiAKIAkvKiBHZXQgc2xvdG5hbWUgKi8KIAlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0cihTVUJT Q1JJUFRJT05PSUQsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9mb3JlaWduY21k cy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZm9yZWlnbmNtZHMuYwppbmRleCBiNTZkMWFkNjc4 NS4uNDU2ODEyMzU3ODIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2ZvcmVpZ25j bWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZm9yZWlnbmNtZHMuYwpAQCAtNTIyLDIx ICs1MjIsNTMgQEAgbG9va3VwX2Zkd192YWxpZGF0b3JfZnVuYyhEZWZFbGVtICp2YWxpZGF0b3Ip CiAJLyogdmFsaWRhdG9yJ3MgcmV0dXJuIHZhbHVlIGlzIGlnbm9yZWQsIHNvIHdlIGRvbid0IGNo ZWNrIHRoZSB0eXBlICovCiB9CiAKKy8qCisgKiBDb252ZXJ0IGEgY29ubmVjdGlvbiBzdHJpbmcg ZnVuY3Rpb24gbmFtZSBwYXNzZWQgZnJvbSB0aGUgcGFyc2VyIHRvIGFuIE9pZC4KKyAqLworc3Rh dGljIE9pZAorbG9va3VwX2Zkd19jb25uZWN0aW9uX2Z1bmMoRGVmRWxlbSAqY29ubmVjdGlvbikK K3sKKwlPaWQJCQljb25uZWN0aW9uT2lkOworCU9pZAkJCWZ1bmNhcmd0eXBlc1szXTsKKworCWlm IChjb25uZWN0aW9uID09IE5VTEwgfHwgY29ubmVjdGlvbi0+YXJnID09IE5VTEwpCisJCXJldHVy biBJbnZhbGlkT2lkOworCisJLyogY29ubmVjdGlvbiBzdHJpbmcgZnVuY3Rpb25zIHRha2UgdXNl ciBvaWQsIHNlcnZlciBvaWQgKi8KKwlmdW5jYXJndHlwZXNbMF0gPSBPSURPSUQ7CisJZnVuY2Fy Z3R5cGVzWzFdID0gT0lET0lEOworCWZ1bmNhcmd0eXBlc1syXSA9IElOVEVSTkFMT0lEOworCisJ Y29ubmVjdGlvbk9pZCA9IExvb2t1cEZ1bmNOYW1lKChMaXN0ICopIGNvbm5lY3Rpb24tPmFyZywg MywgZnVuY2FyZ3R5cGVzLCBmYWxzZSk7CisKKwkvKiBjaGVjayB0aGF0IGNvbm5lY3Rpb24gc3Ry aW5nIGZ1bmN0aW9uIGhhcyBjb3JyZWN0IHJldHVybiB0eXBlICovCisJaWYgKGdldF9mdW5jX3Jl dHR5cGUoY29ubmVjdGlvbk9pZCkgIT0gVEVYVE9JRCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJybXNnKCJmdW5jdGlv biAlcyBtdXN0IHJldHVybiB0eXBlICVzIiwKKwkJCQkJCU5hbWVMaXN0VG9TdHJpbmcoKExpc3Qg KikgY29ubmVjdGlvbi0+YXJnKSwgInRleHQiKSkpOworCisJcmV0dXJuIGNvbm5lY3Rpb25PaWQ7 Cit9CisKIC8qCiAgKiBQcm9jZXNzIGZ1bmN0aW9uIG9wdGlvbnMgb2YgQ1JFQVRFL0FMVEVSIEZE VwogICovCiBzdGF0aWMgdm9pZAogcGFyc2VfZnVuY19vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgTGlzdCAqZnVuY19vcHRpb25zLAogCQkJCSAgIGJvb2wgKmhhbmRsZXJfZ2l2ZW4sIE9pZCAq ZmR3aGFuZGxlciwKLQkJCQkgICBib29sICp2YWxpZGF0b3JfZ2l2ZW4sIE9pZCAqZmR3dmFsaWRh dG9yKQorCQkJCSAgIGJvb2wgKnZhbGlkYXRvcl9naXZlbiwgT2lkICpmZHd2YWxpZGF0b3IsCisJ CQkJICAgYm9vbCAqY29ubmVjdGlvbl9naXZlbiwgT2lkICpmZHdjb25uZWN0aW9uKQogewogCUxp c3RDZWxsICAgKmNlbGw7CiAKIAkqaGFuZGxlcl9naXZlbiA9IGZhbHNlOwogCSp2YWxpZGF0b3Jf Z2l2ZW4gPSBmYWxzZTsKKwkqY29ubmVjdGlvbl9naXZlbiA9IGZhbHNlOwogCS8qIHJldHVybiBJ bnZhbGlkT2lkIGlmIG5vdCBnaXZlbiAqLwogCSpmZHdoYW5kbGVyID0gSW52YWxpZE9pZDsKIAkq ZmR3dmFsaWRhdG9yID0gSW52YWxpZE9pZDsKKwkqZmR3Y29ubmVjdGlvbiA9IEludmFsaWRPaWQ7 CiAKIAlmb3JlYWNoKGNlbGwsIGZ1bmNfb3B0aW9ucykKIAl7CkBAIC01NTYsNiArNTg4LDEzIEBA IHBhcnNlX2Z1bmNfb3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKmZ1bmNfb3B0aW9u cywKIAkJCSp2YWxpZGF0b3JfZ2l2ZW4gPSB0cnVlOwogCQkJKmZkd3ZhbGlkYXRvciA9IGxvb2t1 cF9mZHdfdmFsaWRhdG9yX2Z1bmMoZGVmKTsKIAkJfQorCQllbHNlIGlmIChzdHJjbXAoZGVmLT5k ZWZuYW1lLCAiY29ubmVjdGlvbiIpID09IDApCisJCXsKKwkJCWlmICgqY29ubmVjdGlvbl9naXZl bikKKwkJCQllcnJvckNvbmZsaWN0aW5nRGVmRWxlbShkZWYsIHBzdGF0ZSk7CisJCQkqY29ubmVj dGlvbl9naXZlbiA9IHRydWU7CisJCQkqZmR3Y29ubmVjdGlvbiA9IGxvb2t1cF9mZHdfY29ubmVj dGlvbl9mdW5jKGRlZik7CisJCX0KIAkJZWxzZQogCQkJZWxvZyhFUlJPUiwgIm9wdGlvbiBcIiVz XCIgbm90IHJlY29nbml6ZWQiLAogCQkJCSBkZWYtPmRlZm5hbWUpOwpAQCAtNTc1LDggKzYxNCwx MCBAQCBDcmVhdGVGb3JlaWduRGF0YVdyYXBwZXIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVG ZHdTdG10ICpzdG10KQogCU9pZAkJCWZkd0lkOwogCWJvb2wJCWhhbmRsZXJfZ2l2ZW47CiAJYm9v bAkJdmFsaWRhdG9yX2dpdmVuOworCWJvb2wJCWNvbm5lY3Rpb25fZ2l2ZW47CiAJT2lkCQkJZmR3 aGFuZGxlcjsKIAlPaWQJCQlmZHd2YWxpZGF0b3I7CisJT2lkCQkJZmR3Y29ubmVjdGlvbjsKIAlE YXR1bQkJZmR3b3B0aW9uczsKIAlPaWQJCQlvd25lcklkOwogCU9iamVjdEFkZHJlc3MgbXlzZWxm OwpAQCAtNjIwLDEwICs2NjEsMTIgQEAgQ3JlYXRlRm9yZWlnbkRhdGFXcmFwcGVyKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgQ3JlYXRlRmR3U3RtdCAqc3RtdCkKIAkvKiBMb29rdXAgaGFuZGxlciBhbmQg dmFsaWRhdG9yIGZ1bmN0aW9ucywgaWYgZ2l2ZW4gKi8KIAlwYXJzZV9mdW5jX29wdGlvbnMocHN0 YXRlLCBzdG10LT5mdW5jX29wdGlvbnMsCiAJCQkJCSAgICZoYW5kbGVyX2dpdmVuLCAmZmR3aGFu ZGxlciwKLQkJCQkJICAgJnZhbGlkYXRvcl9naXZlbiwgJmZkd3ZhbGlkYXRvcik7CisJCQkJCSAg ICZ2YWxpZGF0b3JfZ2l2ZW4sICZmZHd2YWxpZGF0b3IsCisJCQkJCSAgICZjb25uZWN0aW9uX2dp dmVuLCAmZmR3Y29ubmVjdGlvbik7CiAKIAl2YWx1ZXNbQW51bV9wZ19mb3JlaWduX2RhdGFfd3Jh cHBlcl9mZHdoYW5kbGVyIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGZkd2hhbmRsZXIpOwogCXZh bHVlc1tBbnVtX3BnX2ZvcmVpZ25fZGF0YV93cmFwcGVyX2Zkd3ZhbGlkYXRvciAtIDFdID0gT2Jq ZWN0SWRHZXREYXR1bShmZHd2YWxpZGF0b3IpOworCXZhbHVlc1tBbnVtX3BnX2ZvcmVpZ25fZGF0 YV93cmFwcGVyX2Zkd2Nvbm5lY3Rpb24gLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oZmR3Y29ubmVj dGlvbik7CiAKIAludWxsc1tBbnVtX3BnX2ZvcmVpZ25fZGF0YV93cmFwcGVyX2Zkd2FjbCAtIDFd ID0gdHJ1ZTsKIApAQCAtNjk1LDggKzczOCwxMCBAQCBBbHRlckZvcmVpZ25EYXRhV3JhcHBlcihQ YXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyRmR3U3RtdCAqc3RtdCkKIAlEYXR1bQkJZGF0dW07CiAJ Ym9vbAkJaGFuZGxlcl9naXZlbjsKIAlib29sCQl2YWxpZGF0b3JfZ2l2ZW47CisJYm9vbAkJY29u bmVjdGlvbl9naXZlbjsKIAlPaWQJCQlmZHdoYW5kbGVyOwogCU9pZAkJCWZkd3ZhbGlkYXRvcjsK KwlPaWQJCQlmZHdjb25uZWN0aW9uOwogCU9iamVjdEFkZHJlc3MgbXlzZWxmOwogCiAJcmVsID0g dGFibGVfb3BlbihGb3JlaWduRGF0YVdyYXBwZXJSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2Nr KTsKQEAgLTcyNiw3ICs3NzEsOCBAQCBBbHRlckZvcmVpZ25EYXRhV3JhcHBlcihQYXJzZVN0YXRl ICpwc3RhdGUsIEFsdGVyRmR3U3RtdCAqc3RtdCkKIAogCXBhcnNlX2Z1bmNfb3B0aW9ucyhwc3Rh dGUsIHN0bXQtPmZ1bmNfb3B0aW9ucywKIAkJCQkJICAgJmhhbmRsZXJfZ2l2ZW4sICZmZHdoYW5k bGVyLAotCQkJCQkgICAmdmFsaWRhdG9yX2dpdmVuLCAmZmR3dmFsaWRhdG9yKTsKKwkJCQkJICAg JnZhbGlkYXRvcl9naXZlbiwgJmZkd3ZhbGlkYXRvciwKKwkJCQkJICAgJmNvbm5lY3Rpb25fZ2l2 ZW4sICZmZHdjb25uZWN0aW9uKTsKIAogCWlmIChoYW5kbGVyX2dpdmVuKQogCXsKQEAgLTc2NCw2 ICs4MTAsMTIgQEAgQWx0ZXJGb3JlaWduRGF0YVdyYXBwZXIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBB bHRlckZkd1N0bXQgKnN0bXQpCiAJCWZkd3ZhbGlkYXRvciA9IGZkd0Zvcm0tPmZkd3ZhbGlkYXRv cjsKIAl9CiAKKwlpZiAoY29ubmVjdGlvbl9naXZlbikKKwl7CisJCXJlcGxfdmFsW0FudW1fcGdf Zm9yZWlnbl9kYXRhX3dyYXBwZXJfZmR3Y29ubmVjdGlvbiAtIDFdID0gT2JqZWN0SWRHZXREYXR1 bShmZHdjb25uZWN0aW9uKTsKKwkJcmVwbF9yZXBsW0FudW1fcGdfZm9yZWlnbl9kYXRhX3dyYXBw ZXJfZmR3Y29ubmVjdGlvbiAtIDFdID0gdHJ1ZTsKKwl9CisKIAkvKgogCSAqIElmIG9wdGlvbnMg c3BlY2lmaWVkLCB2YWxpZGF0ZSBhbmQgdXBkYXRlLgogCSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv c3Vic2NyaXB0aW9uY21kcy5jCmluZGV4IDVlM2MwOTY0ZDM4Li4wOTFlN2I3MzcyZCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYwpAQCAtMjcsMTMgKzI3LDE2IEBACiAj aW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhZGRyZXNzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19h dXRoaWRfZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJhc2VfZC5oIgorI2luY2x1ZGUg ImNhdGFsb2cvcGdfZm9yZWlnbl9zZXJ2ZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N1YnNj cmlwdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3Vic2NyaXB0aW9uX3JlbC5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdXNlcl9tYXBw aW5nLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMv ZXZlbnRfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaCIK ICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgorI2luY2x1ZGUgImZvcmVpZ24vZm9yZWln bi5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5o IgogI2luY2x1ZGUgInBnc3RhdC5oIgpAQCAtNjE5LDYgKzYyMiw3IEBAIENyZWF0ZVN1YnNjcmlw dGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJ RGF0dW0JCXZhbHVlc1tOYXR0c19wZ19zdWJzY3JpcHRpb25dOwogCU9pZAkJCW93bmVyID0gR2V0 VXNlcklkKCk7CiAJSGVhcFR1cGxlCXR1cDsKKwlPaWQJCQlzZXJ2ZXJpZDsKIAljaGFyCSAgICpj b25uaW5mbzsKIAljaGFyCQlvcmlnaW5uYW1lW05BTUVEQVRBTEVOXTsKIAlMaXN0CSAgICpwdWJs aWNhdGlvbnM7CkBAIC03MzAsMTUgKzczNCw0MCBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VT dGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCWlmIChvcHRzLndh bF9yZWNlaXZlcl90aW1lb3V0ID09IE5VTEwpCiAJCW9wdHMud2FsX3JlY2VpdmVyX3RpbWVvdXQg PSAiLTEiOwogCi0JY29ubmluZm8gPSBzdG10LT5jb25uaW5mbzsKLQlwdWJsaWNhdGlvbnMgPSBz dG10LT5wdWJsaWNhdGlvbjsKLQogCS8qIExvYWQgdGhlIGxpYnJhcnkgcHJvdmlkaW5nIHVzIGxp YnBxIGNhbGxzLiAqLwogCWxvYWRfZmlsZSgibGlicHF3YWxyZWNlaXZlciIsIGZhbHNlKTsKIAor CWlmIChzdG10LT5zZXJ2ZXJuYW1lKQorCXsKKwkJRm9yZWlnblNlcnZlciAqc2VydmVyOworCisJ CUFzc2VydCghc3RtdC0+Y29ubmluZm8pOworCQljb25uaW5mbyA9IE5VTEw7CisKKwkJc2VydmVy ID0gR2V0Rm9yZWlnblNlcnZlckJ5TmFtZShzdG10LT5zZXJ2ZXJuYW1lLCBmYWxzZSk7CisJCWFj bHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhGb3JlaWduU2VydmVyUmVsYXRpb25JZCwgc2VydmVy LT5zZXJ2ZXJpZCwgb3duZXIsIEFDTF9VU0FHRSk7CisJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hF Q0tfT0spCisJCQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9GT1JFSUdOX1NFUlZF Uiwgc2VydmVyLT5zZXJ2ZXJuYW1lKTsKKworCQkvKiBtYWtlIHN1cmUgYSB1c2VyIG1hcHBpbmcg ZXhpc3RzICovCisJCUdldFVzZXJNYXBwaW5nKG93bmVyLCBzZXJ2ZXItPnNlcnZlcmlkKTsKKwor CQlzZXJ2ZXJpZCA9IHNlcnZlci0+c2VydmVyaWQ7CisJCWNvbm5pbmZvID0gRm9yZWlnblNlcnZl ckNvbm5lY3Rpb25TdHJpbmcob3duZXIsIHNlcnZlcmlkKTsKKwl9CisJZWxzZQorCXsKKwkJQXNz ZXJ0KHN0bXQtPmNvbm5pbmZvKTsKKworCQlzZXJ2ZXJpZCA9IEludmFsaWRPaWQ7CisJCWNvbm5p bmZvID0gc3RtdC0+Y29ubmluZm87CisJfQorCiAJLyogQ2hlY2sgdGhlIGNvbm5lY3Rpb24gaW5m byBzdHJpbmcuICovCiAJd2FscmN2X2NoZWNrX2Nvbm5pbmZvKGNvbm5pbmZvLCBvcHRzLnBhc3N3 b3JkcmVxdWlyZWQgJiYgIXN1cGVydXNlcigpKTsKIAorCXB1YmxpY2F0aW9ucyA9IHN0bXQtPnB1 YmxpY2F0aW9uOworCiAJLyogRXZlcnl0aGluZyBvaywgZm9ybSBhIG5ldyB0dXBsZS4gKi8KIAlt ZW1zZXQodmFsdWVzLCAwLCBzaXplb2YodmFsdWVzKSk7CiAJbWVtc2V0KG51bGxzLCBmYWxzZSwg c2l6ZW9mKG51bGxzKSk7CkBAIC03NjgsOCArNzk3LDEyIEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQ YXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCUludDMy R2V0RGF0dW0ob3B0cy5tYXhyZXRlbnRpb24pOwogCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlv bl9zdWJyZXRlbnRpb25hY3RpdmUgLSAxXSA9CiAJCUludDMyR2V0RGF0dW0ob3B0cy5yZXRhaW5k ZWFkdHVwbGVzKTsKLQl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29ubmluZm8gLSAx XSA9Ci0JCUNTdHJpbmdHZXRUZXh0RGF0dW0oY29ubmluZm8pOworCXZhbHVlc1tBbnVtX3BnX3N1 YnNjcmlwdGlvbl9zdWJzZXJ2ZXIgLSAxXSA9IHNlcnZlcmlkOworCWlmICghT2lkSXNWYWxpZChz ZXJ2ZXJpZCkpCisJCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25uaW5mbyAtIDFd ID0KKwkJCUNTdHJpbmdHZXRUZXh0RGF0dW0oY29ubmluZm8pOworCWVsc2UKKwkJbnVsbHNbQW51 bV9wZ19zdWJzY3JpcHRpb25fc3ViY29ubmluZm8gLSAxXSA9IHRydWU7CiAJaWYgKG9wdHMuc2xv dF9uYW1lKQogCQl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3Vic2xvdG5hbWUgLSAxXSA9 CiAJCQlEaXJlY3RGdW5jdGlvbkNhbGwxKG5hbWVpbiwgQ1N0cmluZ0dldERhdHVtKG9wdHMuc2xv dF9uYW1lKSk7CkBAIC03OTIsNiArODI1LDE4IEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0 YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAKIAlyZWNvcmREZXBl bmRlbmN5T25Pd25lcihTdWJzY3JpcHRpb25SZWxhdGlvbklkLCBzdWJpZCwgb3duZXIpOwogCisJ T2JqZWN0QWRkcmVzc1NldChteXNlbGYsIFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIHN1YmlkKTsK KworCWlmIChzdG10LT5zZXJ2ZXJuYW1lKQorCXsKKwkJT2JqZWN0QWRkcmVzcyByZWZlcmVuY2Vk OworCisJCUFzc2VydChPaWRJc1ZhbGlkKHNlcnZlcmlkKSk7CisKKwkJT2JqZWN0QWRkcmVzc1Nl dChyZWZlcmVuY2VkLCBGb3JlaWduU2VydmVyUmVsYXRpb25JZCwgc2VydmVyaWQpOworCQlyZWNv cmREZXBlbmRlbmN5T24oJm15c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfTk9STUFMKTsK Kwl9CisKIAkvKgogCSAqIEEgcmVwbGljYXRpb24gb3JpZ2luIGlzIGN1cnJlbnRseSBjcmVhdGVk IGZvciBhbGwgc3Vic2NyaXB0aW9ucywKIAkgKiBpbmNsdWRpbmcgdGhvc2UgdGhhdCBvbmx5IGNv bnRhaW4gc2VxdWVuY2VzIG9yIGFyZSBvdGhlcndpc2UgZW1wdHkuCkBAIC05NDUsOCArOTkwLDYg QEAgQ3JlYXRlU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0 aW9uU3RtdCAqc3RtdCwKIAlpZiAob3B0cy5lbmFibGVkIHx8IG9wdHMucmV0YWluZGVhZHR1cGxl cykKIAkJQXBwbHlMYXVuY2hlcldha2V1cEF0Q29tbWl0KCk7CiAKLQlPYmplY3RBZGRyZXNzU2V0 KG15c2VsZiwgU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViaWQpOwotCiAJSW52b2tlT2JqZWN0 UG9zdENyZWF0ZUhvb2soU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViaWQsIDApOwogCiAJcmV0 dXJuIG15c2VsZjsKQEAgLTE0MTAsNyArMTQ1MywxNCBAQCBBbHRlclN1YnNjcmlwdGlvbihQYXJz ZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJYWNsY2hlY2tf ZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBPQkpFQ1RfU1VCU0NSSVBUSU9OLAogCQkJCQkgICBz dG10LT5zdWJuYW1lKTsKIAotCXN1YiA9IEdldFN1YnNjcmlwdGlvbihzdWJpZCwgZmFsc2UpOwor CS8qCisJICogU2tpcCBBQ0wgY2hlY2tzIG9uIHRoZSBzdWJzY3JpcHRpb24ncyBmb3JlaWduIHNl cnZlciwgaWYgYW55LiBJZgorCSAqIGNoYW5naW5nIHRoZSBzZXJ2ZXIgKG9yIHJlcGxhY2luZyBp dCB3aXRoIGEgcmF3IGNvbm5lY3Rpb24pLCB0aGVuIHRoZQorCSAqIG9sZCBvbmUgd2lsbCBiZSBy ZW1vdmVkIGFueXdheS4gSWYgY2hhbmdpbmcgc29tZXRoaW5nIHVucmVsYXRlZCwKKwkgKiB0aGVy ZSdzIG5vIG5lZWQgdG8gZG8gYW4gYWRkaXRpb25hbCBBQ0wgY2hlY2sgaGVyZTsgdGhhdCB3aWxs IGJlIGRvbmUKKwkgKiBieSB0aGUgc3Vic2NyaXB0aW9uIHdvcmtlciBhbnl3YXkuCisJICovCisJ c3ViID0gR2V0U3Vic2NyaXB0aW9uKHN1YmlkLCBmYWxzZSwgZmFsc2UpOwogCiAJcmV0YWluX2Rl YWRfdHVwbGVzID0gc3ViLT5yZXRhaW5kZWFkdHVwbGVzOwogCW9yaWdpbiA9IHN1Yi0+b3JpZ2lu OwpAQCAtMTQzNSw2ICsxNDg1LDggQEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0 YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJbWVtc2V0KG51bGxzLCBmYWxzZSwg c2l6ZW9mKG51bGxzKSk7CiAJbWVtc2V0KHJlcGxhY2VzLCBmYWxzZSwgc2l6ZW9mKHJlcGxhY2Vz KSk7CiAKKwlPYmplY3RBZGRyZXNzU2V0KG15c2VsZiwgU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwg c3ViaWQpOworCiAJc3dpdGNoIChzdG10LT5raW5kKQogCXsKIAkJY2FzZSBBTFRFUl9TVUJTQ1JJ UFRJT05fT1BUSU9OUzoKQEAgLTE3NTMsNyArMTgwNSw3OSBAQCBBbHRlclN1YnNjcmlwdGlvbihQ YXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJCQlicmVh azsKIAkJCX0KIAorCQljYXNlIEFMVEVSX1NVQlNDUklQVElPTl9TRVJWRVI6CisJCQl7CisJCQkJ Rm9yZWlnblNlcnZlciAqbmV3X3NlcnZlcjsKKwkJCQlPYmplY3RBZGRyZXNzIHJlZmVyZW5jZWQ7 CisJCQkJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwkJCQljaGFyCSAgICpjb25uaW5mbzsKKworCQkJ CS8qCisJCQkJICogUmVtb3ZlIHdoYXQgd2FzIHRoZXJlIGJlZm9yZSwgZWl0aGVyIGFub3RoZXIg Zm9yZWlnbiBzZXJ2ZXIKKwkJCQkgKiBvciBhIGNvbm5lY3Rpb24gc3RyaW5nLgorCQkJCSAqLwor CQkJCWlmIChmb3JtLT5zdWJzZXJ2ZXIpCisJCQkJeworCQkJCQlkZWxldGVEZXBlbmRlbmN5UmVj b3Jkc0ZvclNwZWNpZmljKFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIGZvcm0tPm9pZCwKKwkJCQkJ CQkJCQkJCQkgICBERVBFTkRFTkNZX05PUk1BTCwKKwkJCQkJCQkJCQkJCQkgICBGb3JlaWduU2Vy dmVyUmVsYXRpb25JZCwgZm9ybS0+c3Vic2VydmVyKTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsK KwkJCQkJbnVsbHNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29ubmluZm8gLSAxXSA9IHRydWU7 CisJCQkJCXJlcGxhY2VzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmNvbm5pbmZvIC0gMV0gPSB0 cnVlOworCQkJCX0KKworCQkJCS8qCisJCQkJICogRmluZCB0aGUgbmV3IHNlcnZlciBhbmQgdXNl ciBtYXBwaW5nLiBDaGVjayBBQ0wgb2Ygc2VydmVyCisJCQkJICogYmFzZWQgb24gY3VycmVudCB1 c2VyIElELCBidXQgZmluZCB0aGUgdXNlciBtYXBwaW5nIGJhc2VkCisJCQkJICogb24gdGhlIHN1 YnNjcmlwdGlvbiBvd25lci4KKwkJCQkgKi8KKwkJCQluZXdfc2VydmVyID0gR2V0Rm9yZWlnblNl cnZlckJ5TmFtZShzdG10LT5zZXJ2ZXJuYW1lLCBmYWxzZSk7CisJCQkJYWNscmVzdWx0ID0gb2Jq ZWN0X2FjbGNoZWNrKEZvcmVpZ25TZXJ2ZXJSZWxhdGlvbklkLAorCQkJCQkJCQkJCQluZXdfc2Vy dmVyLT5zZXJ2ZXJpZCwKKwkJCQkJCQkJCQkJZm9ybS0+c3Vib3duZXIsIEFDTF9VU0FHRSk7CisJ CQkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCQkJCSBl cnJtc2coInN1YnNjcmlwdGlvbiBvd25lciBcIiVzXCIgZG9lcyBub3QgaGF2ZSBwZXJtaXNzaW9u IG9uIGZvcmVpZ24gc2VydmVyIFwiJXNcIiIsCisJCQkJCQkJCQlHZXRVc2VyTmFtZUZyb21JZChm b3JtLT5zdWJvd25lciwgZmFsc2UpLAorCQkJCQkJCQkJRm9yZWlnblNlcnZlck5hbWUobmV3X3Nl cnZlci0+c2VydmVyaWQpKSkpOworCisJCQkJLyogbWFrZSBzdXJlIGEgdXNlciBtYXBwaW5nIGV4 aXN0cyAqLworCQkJCUdldFVzZXJNYXBwaW5nKGZvcm0tPnN1Ym93bmVyLCBuZXdfc2VydmVyLT5z ZXJ2ZXJpZCk7CisKKwkJCQljb25uaW5mbyA9IEZvcmVpZ25TZXJ2ZXJDb25uZWN0aW9uU3RyaW5n KGZvcm0tPnN1Ym93bmVyLAorCQkJCQkJCQkJCQkJCQkgbmV3X3NlcnZlci0+c2VydmVyaWQpOwor CisJCQkJLyogTG9hZCB0aGUgbGlicmFyeSBwcm92aWRpbmcgdXMgbGlicHEgY2FsbHMuICovCisJ CQkJbG9hZF9maWxlKCJsaWJwcXdhbHJlY2VpdmVyIiwgZmFsc2UpOworCQkJCS8qIENoZWNrIHRo ZSBjb25uZWN0aW9uIGluZm8gc3RyaW5nLiAqLworCQkJCXdhbHJjdl9jaGVja19jb25uaW5mbyhj b25uaW5mbywKKwkJCQkJCQkJCSAgc3ViLT5wYXNzd29yZHJlcXVpcmVkICYmICFzdWItPm93bmVy c3VwZXJ1c2VyKTsKKworCQkJCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJzZXJ2ZXIg LSAxXSA9IG5ld19zZXJ2ZXItPnNlcnZlcmlkOworCQkJCXJlcGxhY2VzW0FudW1fcGdfc3Vic2Ny aXB0aW9uX3N1YnNlcnZlciAtIDFdID0gdHJ1ZTsKKworCQkJCU9iamVjdEFkZHJlc3NTZXQocmVm ZXJlbmNlZCwgRm9yZWlnblNlcnZlclJlbGF0aW9uSWQsIG5ld19zZXJ2ZXItPnNlcnZlcmlkKTsK KwkJCQlyZWNvcmREZXBlbmRlbmN5T24oJm15c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lf Tk9STUFMKTsKKworCQkJCXVwZGF0ZV90dXBsZSA9IHRydWU7CisJCQl9CisJCQlicmVhazsKKwog CQljYXNlIEFMVEVSX1NVQlNDUklQVElPTl9DT05ORUNUSU9OOgorCQkJLyogcmVtb3ZlIHJlZmVy ZW5jZSB0byBmb3JlaWduIHNlcnZlciBhbmQgZGVwZW5kZW5jaWVzLCBpZiBwcmVzZW50ICovCisJ CQlpZiAoZm9ybS0+c3Vic2VydmVyKQorCQkJeworCQkJCWRlbGV0ZURlcGVuZGVuY3lSZWNvcmRz Rm9yU3BlY2lmaWMoU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgZm9ybS0+b2lkLAorCQkJCQkJCQkJ CQkJICAgREVQRU5ERU5DWV9OT1JNQUwsCisJCQkJCQkJCQkJCQkgICBGb3JlaWduU2VydmVyUmVs YXRpb25JZCwgZm9ybS0+c3Vic2VydmVyKTsKKworCQkJCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlw dGlvbl9zdWJzZXJ2ZXIgLSAxXSA9IEludmFsaWRPaWQ7CisJCQkJcmVwbGFjZXNbQW51bV9wZ19z dWJzY3JpcHRpb25fc3Vic2VydmVyIC0gMV0gPSB0cnVlOworCQkJfQorCiAJCQkvKiBMb2FkIHRo ZSBsaWJyYXJ5IHByb3ZpZGluZyB1cyBsaWJwcSBjYWxscy4gKi8KIAkJCWxvYWRfZmlsZSgibGli cHF3YWxyZWNlaXZlciIsIGZhbHNlKTsKIAkJCS8qIENoZWNrIHRoZSBjb25uZWN0aW9uIGluZm8g c3RyaW5nLiAqLwpAQCAtMjAzOCw4ICsyMTYyLDYgQEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VT dGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAKIAl0YWJsZV9jbG9z ZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOwogCi0JT2JqZWN0QWRkcmVzc1NldChteXNlbGYsIFN1 YnNjcmlwdGlvblJlbGF0aW9uSWQsIHN1YmlkKTsKLQogCUludm9rZU9iamVjdFBvc3RBbHRlckhv b2soU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViaWQsIDApOwogCiAJLyogV2FrZSB1cCByZWxh dGVkIHJlcGxpY2F0aW9uIHdvcmtlcnMgdG8gaGFuZGxlIHRoaXMgY2hhbmdlIHF1aWNrbHkuICov CkBAIC0yMTI2LDkgKzIyNDgsMjggQEAgRHJvcFN1YnNjcmlwdGlvbihEcm9wU3Vic2NyaXB0aW9u U3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogCXN1Ym5hbWUgPSBwc3RyZHVwKE5hbWVTdHIo KkRhdHVtR2V0TmFtZShkYXR1bSkpKTsKIAogCS8qIEdldCBjb25uaW5mbyAqLwotCWRhdHVtID0g U3lzQ2FjaGVHZXRBdHRyTm90TnVsbChTVUJTQ1JJUFRJT05PSUQsIHR1cCwKLQkJCQkJCQkJICAg QW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29ubmluZm8pOwotCWNvbm5pbmZvID0gVGV4dERhdHVt R2V0Q1N0cmluZyhkYXR1bSk7CisJaWYgKE9pZElzVmFsaWQoZm9ybS0+c3Vic2VydmVyKSkKKwl7 CisJCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisKKwkJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNr KEZvcmVpZ25TZXJ2ZXJSZWxhdGlvbklkLCBmb3JtLT5zdWJzZXJ2ZXIsCisJCQkJCQkJCQlmb3Jt LT5zdWJvd25lciwgQUNMX1VTQUdFKTsKKwkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykK KwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BS SVZJTEVHRSksCisJCQkJCSBlcnJtc2coInN1YnNjcmlwdGlvbiBvd25lciBcIiVzXCIgZG9lcyBu b3QgaGF2ZSBwZXJtaXNzaW9uIG9uIGZvcmVpZ24gc2VydmVyIFwiJXNcIiIsCisJCQkJCQkJR2V0 VXNlck5hbWVGcm9tSWQoZm9ybS0+c3Vib3duZXIsIGZhbHNlKSwKKwkJCQkJCQlGb3JlaWduU2Vy dmVyTmFtZShmb3JtLT5zdWJzZXJ2ZXIpKSkpOworCisJCWNvbm5pbmZvID0gRm9yZWlnblNlcnZl ckNvbm5lY3Rpb25TdHJpbmcoZm9ybS0+c3Vib3duZXIsCisJCQkJCQkJCQkJCQkgZm9ybS0+c3Vi c2VydmVyKTsKKwl9CisJZWxzZQorCXsKKwkJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHJOb3ROdWxs KFNVQlNDUklQVElPTk9JRCwgdHVwLAorCQkJCQkJCQkJICAgQW51bV9wZ19zdWJzY3JpcHRpb25f c3ViY29ubmluZm8pOworCQljb25uaW5mbyA9IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pOwor CX0KIAogCS8qIEdldCBzbG90bmFtZSAqLwogCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyKFNVQlND UklQVElPTk9JRCwgdHVwLApAQCAtMjIyNyw2ICsyMzY4LDcgQEAgRHJvcFN1YnNjcmlwdGlvbihE cm9wU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogCX0KIAogCS8qIENs ZWFuIHVwIGRlcGVuZGVuY2llcyAqLworCWRlbGV0ZURlcGVuZGVuY3lSZWNvcmRzRm9yKFN1YnNj cmlwdGlvblJlbGF0aW9uSWQsIHN1YmlkLCBmYWxzZSk7CiAJZGVsZXRlU2hhcmVkRGVwZW5kZW5j eVJlY29yZHNGb3IoU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViaWQsIDApOwogCiAJLyogUmVt b3ZlIGFueSBhc3NvY2lhdGVkIHJlbGF0aW9uIHN5bmNocm9uaXphdGlvbiBzdGF0ZXMuICovCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9mb3JlaWduL2ZvcmVpZ24uYyBiL3NyYy9iYWNrZW5kL2Zv cmVpZ24vZm9yZWlnbi5jCmluZGV4IGI5MTJhMDZkZDE1Li40ZTE4YmFkZTQwOSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvZm9yZWlnbi9mb3JlaWduLmMKKysrIGIvc3JjL2JhY2tlbmQvZm9yZWln bi9mb3JlaWduLmMKQEAgLTcyLDYgKzcyLDcgQEAgR2V0Rm9yZWlnbkRhdGFXcmFwcGVyRXh0ZW5k ZWQoT2lkIGZkd2lkLCBiaXRzMTYgZmxhZ3MpCiAJZmR3LT5mZHduYW1lID0gcHN0cmR1cChOYW1l U3RyKGZkd2Zvcm0tPmZkd25hbWUpKTsKIAlmZHctPmZkd2hhbmRsZXIgPSBmZHdmb3JtLT5mZHdo YW5kbGVyOwogCWZkdy0+ZmR3dmFsaWRhdG9yID0gZmR3Zm9ybS0+ZmR3dmFsaWRhdG9yOworCWZk dy0+ZmR3Y29ubmVjdGlvbiA9IGZkd2Zvcm0tPmZkd2Nvbm5lY3Rpb247CiAKIAkvKiBFeHRyYWN0 IHRoZSBmZHdvcHRpb25zICovCiAJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHIoRk9SRUlHTkRBVEFX UkFQUEVST0lELApAQCAtMTc2LDYgKzE3NywzMSBAQCBHZXRGb3JlaWduU2VydmVyRXh0ZW5kZWQo T2lkIHNlcnZlcmlkLCBiaXRzMTYgZmxhZ3MpCiB9CiAKIAorLyoKKyAqIEZvcmVpZ25TZXJ2ZXJO YW1lIC0gZ2V0IG5hbWUgb2YgZm9yZWlnbiBzZXJ2ZXIuCisgKi8KK2NoYXIgKgorRm9yZWlnblNl cnZlck5hbWUoT2lkIHNlcnZlcmlkKQoreworCUZvcm1fcGdfZm9yZWlnbl9zZXJ2ZXIgc2VydmVy Zm9ybTsKKwljaGFyCSAgICpzZXJ2ZXJuYW1lOworCUhlYXBUdXBsZQl0cDsKKworCXRwID0gU2Vh cmNoU3lzQ2FjaGUxKEZPUkVJR05TRVJWRVJPSUQsIE9iamVjdElkR2V0RGF0dW0oc2VydmVyaWQp KTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBs b29rdXAgZmFpbGVkIGZvciBmb3JlaWduIHNlcnZlciAldSIsIHNlcnZlcmlkKTsKKworCXNlcnZl cmZvcm0gPSAoRm9ybV9wZ19mb3JlaWduX3NlcnZlcikgR0VUU1RSVUNUKHRwKTsKKworCXNlcnZl cm5hbWUgPSBwc3RyZHVwKE5hbWVTdHIoc2VydmVyZm9ybS0+c3J2bmFtZSkpOworCisJUmVsZWFz ZVN5c0NhY2hlKHRwKTsKKworCXJldHVybiBzZXJ2ZXJuYW1lOworfQorCisKIC8qCiAgKiBHZXRG b3JlaWduU2VydmVyQnlOYW1lIC0gbG9vayB1cCB0aGUgZm9yZWlnbiBzZXJ2ZXIgZGVmaW5pdGlv biBieSBuYW1lLgogICovCkBAIC0xOTEsNiArMjE3LDYxIEBAIEdldEZvcmVpZ25TZXJ2ZXJCeU5h bWUoY29uc3QgY2hhciAqc3J2bmFtZSwgYm9vbCBtaXNzaW5nX29rKQogfQogCiAKKy8qCisgKiBS ZXRyaWV2ZSBjb25uZWN0aW9uIHN0cmluZyBmcm9tIHNlcnZlcidzIEZEVy4KKyAqLworY2hhciAq CitGb3JlaWduU2VydmVyQ29ubmVjdGlvblN0cmluZyhPaWQgdXNlcmlkLCBPaWQgc2VydmVyaWQp Cit7CisJc3RhdGljIE1lbW9yeUNvbnRleHQgdGVtcENvbnRleHQgPSBOVUxMOworCU1lbW9yeUNv bnRleHQgb2xkY3h0OworCUZvcmVpZ25TZXJ2ZXIgKnNlcnZlcjsKKwlGb3JlaWduRGF0YVdyYXBw ZXIgKmZkdzsKKwlEYXR1bQkJY29ubmVjdGlvbl9kYXR1bTsKKwl0ZXh0CSAgICpjb25uZWN0aW9u X3RleHQ7CisJY2hhcgkgICAqcmVzdWx0OworCisJLyoKKwkgKiBHZXRGb3JlaWduU2VydmVyLCBH ZXRGb3JlaWduRGF0YVdyYXBwZXIsIGFuZCB0aGUgY29ubmVjdGlvbiBmdW5jdGlvbgorCSAqIGl0 c2VsZiBhbGwgbGVhayBtZW1vcnkgaW50byBDdXJyZW50TWVtb3J5Q29udGV4dC4gU3dpdGNoIHRv IGEgdGVtcG9yYXJ5CisJICogY29udGV4dCBmb3IgZWFzeSBjbGVhbnVwLgorCSAqLworCWlmICh0 ZW1wQ29udGV4dCA9PSBOVUxMKQorCXsKKwkJdGVtcENvbnRleHQgPSBBbGxvY1NldENvbnRleHRD cmVhdGUoVG9wTWVtb3J5Q29udGV4dCwKKwkJCQkJCQkJCQkJIkZEV0Nvbm5lY3Rpb25Db250ZXh0 IiwKKwkJCQkJCQkJCQkJQUxMT0NTRVRfREVGQVVMVF9TSVpFUyk7CisJfQorCisJb2xkY3h0ID0g TWVtb3J5Q29udGV4dFN3aXRjaFRvKHRlbXBDb250ZXh0KTsKKworCXNlcnZlciA9IEdldEZvcmVp Z25TZXJ2ZXIoc2VydmVyaWQpOworCWZkdyA9IEdldEZvcmVpZ25EYXRhV3JhcHBlcihzZXJ2ZXIt PmZkd2lkKTsKKworCWlmICghT2lkSXNWYWxpZChmZHctPmZkd2Nvbm5lY3Rpb24pKQorCQllcmVw b3J0KEVSUk9SLAorCQkJCShlcnJtc2coImZvcmVpZ24gZGF0YSB3cmFwcGVyIFwiJXNcIiBkb2Vz IG5vdCBzdXBwb3J0IHN1YnNjcmlwdGlvbiBjb25uZWN0aW9ucyIsCisJCQkJCQlmZHctPmZkd25h bWUpLAorCQkJCSBlcnJkZXRhaWwoIkZvcmVpZ24gZGF0YSB3cmFwcGVyIG11c3QgYmUgZGVmaW5l ZCB3aXRoIENPTk5FQ1RJT04gc3BlY2lmaWVkLiIpKSk7CisKKworCWNvbm5lY3Rpb25fZGF0dW0g PSBPaWRGdW5jdGlvbkNhbGwzKGZkdy0+ZmR3Y29ubmVjdGlvbiwKKwkJCQkJCQkJCQlPYmplY3RJ ZEdldERhdHVtKHVzZXJpZCksCisJCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShzZXJ2ZXJpZCks CisJCQkJCQkJCQkJUG9pbnRlckdldERhdHVtKE5VTEwpKTsKKworCWNvbm5lY3Rpb25fdGV4dCA9 IERhdHVtR2V0VGV4dFBQKGNvbm5lY3Rpb25fZGF0dW0pOworCisJTWVtb3J5Q29udGV4dFN3aXRj aFRvKG9sZGN4dCk7CisKKwlyZXN1bHQgPSB0ZXh0X3RvX2NzdHJpbmcoY29ubmVjdGlvbl90ZXh0 KTsKKworCU1lbW9yeUNvbnRleHRSZXNldCh0ZW1wQ29udGV4dCk7CisKKwlyZXR1cm4gcmVzdWx0 OworfQorCisKIC8qCiAgKiBHZXRVc2VyTWFwcGluZyAtIGxvb2sgdXAgdGhlIHVzZXIgbWFwcGlu Zy4KICAqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQppbmRleCBjNTY3MjUyYWNjNC4uMDE0YTNlYzM3ODMgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQpAQCAtNTU4MCw2ICs1NTgwLDggQEAgZmR3X29wdGlvbjoKIAkJCXwgTk8gSEFORExFUgkJ CQkJCXsgJCQgPSBtYWtlRGVmRWxlbSgiaGFuZGxlciIsIE5VTEwsIEAxKTsgfQogCQkJfCBWQUxJ REFUT1IgaGFuZGxlcl9uYW1lCQkJeyAkJCA9IG1ha2VEZWZFbGVtKCJ2YWxpZGF0b3IiLCAoTm9k ZSAqKSAkMiwgQDEpOyB9CiAJCQl8IE5PIFZBTElEQVRPUgkJCQkJCXsgJCQgPSBtYWtlRGVmRWxl bSgidmFsaWRhdG9yIiwgTlVMTCwgQDEpOyB9CisJCQl8IENPTk5FQ1RJT04gaGFuZGxlcl9uYW1l CQkJeyAkJCA9IG1ha2VEZWZFbGVtKCJjb25uZWN0aW9uIiwgKE5vZGUgKikgJDIsIEAxKTsgfQor CQkJfCBOTyBDT05ORUNUSU9OCQkJCQkJeyAkJCA9IG1ha2VEZWZFbGVtKCJjb25uZWN0aW9uIiwg TlVMTCwgQDEpOyB9CiAJCTsKIAogZmR3X29wdGlvbnM6CkBAIC0xMTAzMCw2ICsxMTAzMiwxNiBA QCBDcmVhdGVTdWJzY3JpcHRpb25TdG10OgogCQkJCQluLT5vcHRpb25zID0gJDg7CiAJCQkJCSQk ID0gKE5vZGUgKikgbjsKIAkJCQl9CisJCQl8IENSRUFURSBTVUJTQ1JJUFRJT04gbmFtZSBTRVJW RVIgbmFtZSBQVUJMSUNBVElPTiBuYW1lX2xpc3Qgb3B0X2RlZmluaXRpb24KKwkJCQl7CisJCQkJ CUNyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKm4gPQorCQkJCQkJbWFrZU5vZGUoQ3JlYXRlU3Vic2Ny aXB0aW9uU3RtdCk7CisJCQkJCW4tPnN1Ym5hbWUgPSAkMzsKKwkJCQkJbi0+c2VydmVybmFtZSA9 ICQ1OworCQkJCQluLT5wdWJsaWNhdGlvbiA9ICQ3OworCQkJCQluLT5vcHRpb25zID0gJDg7CisJ CQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CiAJCTsKIAogLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq CkBAIC0xMTA1OSw2ICsxMTA3MSwxNiBAQCBBbHRlclN1YnNjcmlwdGlvblN0bXQ6CiAJCQkJCW4t PmNvbm5pbmZvID0gJDU7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJCQl8IEFMVEVS IFNVQlNDUklQVElPTiBuYW1lIFNFUlZFUiBuYW1lCisJCQkJeworCQkJCQlBbHRlclN1YnNjcmlw dGlvblN0bXQgKm4gPQorCQkJCQkJbWFrZU5vZGUoQWx0ZXJTdWJzY3JpcHRpb25TdG10KTsKKwor CQkJCQluLT5raW5kID0gQUxURVJfU1VCU0NSSVBUSU9OX1NFUlZFUjsKKwkJCQkJbi0+c3VibmFt ZSA9ICQzOworCQkJCQluLT5zZXJ2ZXJuYW1lID0gJDU7CisJCQkJCSQkID0gKE5vZGUgKikgbjsK KwkJCQl9CiAJCQl8IEFMVEVSIFNVQlNDUklQVElPTiBuYW1lIFJFRlJFU0ggUFVCTElDQVRJT04g b3B0X2RlZmluaXRpb24KIAkJCQl7CiAJCQkJCUFsdGVyU3Vic2NyaXB0aW9uU3RtdCAqbiA9CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jIGIvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYwppbmRleCBiYWU4YzAxMTM5MC4u ZDVlODM2ZmExMTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwv d29ya2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYwpA QCAtNTA1Nyw3ICs1MDU3LDcgQEAgbWF5YmVfcmVyZWFkX3N1YnNjcmlwdGlvbih2b2lkKQogCS8q IEVuc3VyZSBhbGxvY2F0aW9ucyBpbiBwZXJtYW5lbnQgY29udGV4dC4gKi8KIAlvbGRjdHggPSBN ZW1vcnlDb250ZXh0U3dpdGNoVG8oQXBwbHlDb250ZXh0KTsKIAotCW5ld3N1YiA9IEdldFN1YnNj cmlwdGlvbihNeUxvZ2ljYWxSZXBXb3JrZXItPnN1YmlkLCB0cnVlKTsKKwluZXdzdWIgPSBHZXRT dWJzY3JpcHRpb24oTXlMb2dpY2FsUmVwV29ya2VyLT5zdWJpZCwgdHJ1ZSwgdHJ1ZSk7CiAKIAkv KgogCSAqIEV4aXQgaWYgdGhlIHN1YnNjcmlwdGlvbiB3YXMgcmVtb3ZlZC4gVGhpcyBub3JtYWxs eSBzaG91bGQgbm90IGhhcHBlbgpAQCAtNTE5OSw3ICs1MTk5LDkgQEAgc2V0X3dhbF9yZWNlaXZl cl90aW1lb3V0KHZvaWQpCiB9CiAKIC8qCi0gKiBDYWxsYmFjayBmcm9tIHN1YnNjcmlwdGlvbiBz eXNjYWNoZSBpbnZhbGlkYXRpb24uCisgKiBDYWxsYmFjayBmcm9tIHN1YnNjcmlwdGlvbiBzeXNj YWNoZSBpbnZhbGlkYXRpb24uIEFsc28gbmVlZGVkIGZvciBzZXJ2ZXIgb3IKKyAqIHVzZXIgbWFw cGluZyBpbnZhbGlkYXRpb24sIHdoaWNoIGNhbiBjaGFuZ2UgdGhlIGNvbm5lY3Rpb24gaW5mb3Jt YXRpb24gZm9yCisgKiBzdWJzY3JpcHRpb25zIHRoYXQgY29ubmVjdCB1c2luZyBhIHNlcnZlciBv YmplY3QuCiAgKi8KIHN0YXRpYyB2b2lkCiBzdWJzY3JpcHRpb25fY2hhbmdlX2NiKERhdHVtIGFy ZywgU3lzQ2FjaGVJZGVudGlmaWVyIGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCkBAIC01ODA0 LDcgKzU4MDYsNyBAQCBJbml0aWFsaXplTG9nUmVwV29ya2VyKHZvaWQpCiAJICovCiAJTG9ja1No YXJlZE9iamVjdChTdWJzY3JpcHRpb25SZWxhdGlvbklkLCBNeUxvZ2ljYWxSZXBXb3JrZXItPnN1 YmlkLCAwLAogCQkJCQkgQWNjZXNzU2hhcmVMb2NrKTsKLQlNeVN1YnNjcmlwdGlvbiA9IEdldFN1 YnNjcmlwdGlvbihNeUxvZ2ljYWxSZXBXb3JrZXItPnN1YmlkLCB0cnVlKTsKKwlNeVN1YnNjcmlw dGlvbiA9IEdldFN1YnNjcmlwdGlvbihNeUxvZ2ljYWxSZXBXb3JrZXItPnN1YmlkLCB0cnVlLCB0 cnVlKTsKIAlpZiAoIU15U3Vic2NyaXB0aW9uKQogCXsKIAkJZXJlcG9ydChMT0csCkBAIC01ODY5 LDYgKzU4NzEsMTQgQEAgSW5pdGlhbGl6ZUxvZ1JlcFdvcmtlcih2b2lkKQogCUNhY2hlUmVnaXN0 ZXJTeXNjYWNoZUNhbGxiYWNrKFNVQlNDUklQVElPTk9JRCwKIAkJCQkJCQkJICBzdWJzY3JpcHRp b25fY2hhbmdlX2NiLAogCQkJCQkJCQkgIChEYXR1bSkgMCk7CisJLyogS2VlcCB1cyBpbmZvcm1l ZCBhYm91dCBzdWJzY3JpcHRpb24gY2hhbmdlcy4gKi8KKwlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVD YWxsYmFjayhGT1JFSUdOU0VSVkVST0lELAorCQkJCQkJCQkgIHN1YnNjcmlwdGlvbl9jaGFuZ2Vf Y2IsCisJCQkJCQkJCSAgKERhdHVtKSAwKTsKKwkvKiBLZWVwIHVzIGluZm9ybWVkIGFib3V0IHN1 YnNjcmlwdGlvbiBjaGFuZ2VzLiAqLworCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKFVT RVJNQVBQSU5HT0lELAorCQkJCQkJCQkgIHN1YnNjcmlwdGlvbl9jaGFuZ2VfY2IsCisJCQkJCQkJ CSAgKERhdHVtKSAwKTsKIAogCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKEFVVEhPSUQs CiAJCQkJCQkJCSAgc3Vic2NyaXB0aW9uX2NoYW5nZV9jYiwKZGlmZiAtLWdpdCBhL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IGRkOGFk ZWYwYTNlLi4wZTk0ZWRlZWMyMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu YworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC01MTA5LDYgKzUxMDksNyBAQCBn ZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQpCiAJaW50CQkJaV9zdWJkaXNhYmxlb25lcnI7 CiAJaW50CQkJaV9zdWJwYXNzd29yZHJlcXVpcmVkOwogCWludAkJCWlfc3VicnVuYXNvd25lcjsK KwlpbnQJCQlpX3N1YnNlcnZlcm5hbWU7CiAJaW50CQkJaV9zdWJjb25uaW5mbzsKIAlpbnQJCQlp X3N1YnNsb3RuYW1lOwogCWludAkJCWlfc3Vic3luY2NvbW1pdDsKQEAgLTUyMTMsMTQgKzUyMTQs MjQgQEAgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0KQogCiAJaWYgKGZvdXQtPnJlbW90 ZVZlcnNpb24gPj0gMTkwMDAwKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKLQkJCQkJ CQkgIiBzLnN1YndhbHJjdnRpbWVvdXRcbiIpOworCQkJCQkJCSAiIHMuc3Vid2FscmN2dGltZW91 dCxcbiIpOwogCWVsc2UKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCi0JCQkJCQkJICIg Jy0xJyBBUyBzdWJ3YWxyY3Z0aW1lb3V0XG4iKTsKKwkJCQkJCQkgIiAnLTEnIEFTIHN1YndhbHJj dnRpbWVvdXQsXG4iKTsKKworCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE5MDAwMCkKKwkJ YXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgZnMuc3J2bmFtZSBBUyBzdWJzZXJ2ZXJuYW1l XG4iKTsKKwllbHNlCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIE5VTEwgQVMgc3Vi c2VydmVybmFtZVxuIik7CiAKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKIAkJCQkJCSAi RlJPTSBwZ19zdWJzY3JpcHRpb24gc1xuIik7CiAKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+ PSAxOTAwMDApCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAorCQkJCQkJCSAiTEVGVCBK T0lOIHBnX2NhdGFsb2cucGdfZm9yZWlnbl9zZXJ2ZXIgZnMgXG4iCisJCQkJCQkJICIgICAgT04g ZnMub2lkID0gcy5zdWJzZXJ2ZXIgXG4iKTsKKwogCWlmIChkb3B0LT5iaW5hcnlfdXBncmFkZSAm JiBmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE3MDAwMCkKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIo cXVlcnksCiAJCQkJCQkJICJMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yZXBsaWNhdGlvbl9vcmln aW5fc3RhdHVzIG8gXG4iCkBAIC01MjUyLDYgKzUyNjMsNyBAQCBnZXRTdWJzY3JpcHRpb25zKEFy Y2hpdmUgKmZvdXQpCiAJaV9zdWJmYWlsb3ZlciA9IFBRZm51bWJlcihyZXMsICJzdWJmYWlsb3Zl ciIpOwogCWlfc3VicmV0YWluZGVhZHR1cGxlcyA9IFBRZm51bWJlcihyZXMsICJzdWJyZXRhaW5k ZWFkdHVwbGVzIik7CiAJaV9zdWJtYXhyZXRlbnRpb24gPSBQUWZudW1iZXIocmVzLCAic3VibWF4 cmV0ZW50aW9uIik7CisJaV9zdWJzZXJ2ZXJuYW1lID0gUFFmbnVtYmVyKHJlcywgInN1YnNlcnZl cm5hbWUiKTsKIAlpX3N1YmNvbm5pbmZvID0gUFFmbnVtYmVyKHJlcywgInN1YmNvbm5pbmZvIik7 CiAJaV9zdWJzbG90bmFtZSA9IFBRZm51bWJlcihyZXMsICJzdWJzbG90bmFtZSIpOwogCWlfc3Vi c3luY2NvbW1pdCA9IFBRZm51bWJlcihyZXMsICJzdWJzeW5jY29tbWl0Iik7CkBAIC01Mjc0LDYg KzUyODYsMTAgQEAgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0KQogCiAJCXN1YmluZm9b aV0uc3ViZW5hYmxlZCA9CiAJCQkoc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3N1YmVuYWJs ZWQpLCAidCIpID09IDApOworCQlpZiAoUFFnZXRpc251bGwocmVzLCBpLCBpX3N1YnNlcnZlcm5h bWUpKQorCQkJc3ViaW5mb1tpXS5zdWJzZXJ2ZXJuYW1lID0gTlVMTDsKKwkJZWxzZQorCQkJc3Vi aW5mb1tpXS5zdWJzZXJ2ZXJuYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3N1 YnNlcnZlcm5hbWUpKTsKIAkJc3ViaW5mb1tpXS5zdWJiaW5hcnkgPQogCQkJKHN0cmNtcChQUWdl dHZhbHVlKHJlcywgaSwgaV9zdWJiaW5hcnkpLCAidCIpID09IDApOwogCQlzdWJpbmZvW2ldLnN1 YnN0cmVhbSA9ICooUFFnZXR2YWx1ZShyZXMsIGksIGlfc3Vic3RyZWFtKSk7CkBAIC01MjkwLDgg KzUzMDYsMTEgQEAgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0KQogCQkJKHN0cmNtcChQ UWdldHZhbHVlKHJlcywgaSwgaV9zdWJyZXRhaW5kZWFkdHVwbGVzKSwgInQiKSA9PSAwKTsKIAkJ c3ViaW5mb1tpXS5zdWJtYXhyZXRlbnRpb24gPQogCQkJYXRvaShQUWdldHZhbHVlKHJlcywgaSwg aV9zdWJtYXhyZXRlbnRpb24pKTsKLQkJc3ViaW5mb1tpXS5zdWJjb25uaW5mbyA9Ci0JCQlwZ19z dHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfc3ViY29ubmluZm8pKTsKKwkJaWYgKFBRZ2V0aXNu dWxsKHJlcywgaSwgaV9zdWJjb25uaW5mbykpCisJCQlzdWJpbmZvW2ldLnN1YmNvbm5pbmZvID0g TlVMTDsKKwkJZWxzZQorCQkJc3ViaW5mb1tpXS5zdWJjb25uaW5mbyA9CisJCQkJcGdfc3RyZHVw KFBRZ2V0dmFsdWUocmVzLCBpLCBpX3N1YmNvbm5pbmZvKSk7CiAJCWlmIChQUWdldGlzbnVsbChy ZXMsIGksIGlfc3Vic2xvdG5hbWUpKQogCQkJc3ViaW5mb1tpXS5zdWJzbG90bmFtZSA9IE5VTEw7 CiAJCWVsc2UKQEAgLTU1MDIsOSArNTUyMSwxNyBAQCBkdW1wU3Vic2NyaXB0aW9uKEFyY2hpdmUg KmZvdXQsIGNvbnN0IFN1YnNjcmlwdGlvbkluZm8gKnN1YmluZm8pCiAJYXBwZW5kUFFFeHBCdWZm ZXIoZGVscSwgIkRST1AgU1VCU0NSSVBUSU9OICVzO1xuIiwKIAkJCQkJICBxc3VibmFtZSk7CiAK LQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSBTVUJTQ1JJUFRJT04gJXMgQ09OTkVD VElPTiAiLAorCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ1JFQVRFIFNVQlNDUklQVElPTiAl cyAiLAogCQkJCQkgIHFzdWJuYW1lKTsKLQlhcHBlbmRTdHJpbmdMaXRlcmFsQUgocXVlcnksIHN1 YmluZm8tPnN1YmNvbm5pbmZvLCBmb3V0KTsKKwlpZiAoc3ViaW5mby0+c3Vic2VydmVybmFtZSkK Kwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiU0VSVkVSICVzIiwgZm10SWQoc3ViaW5m by0+c3Vic2VydmVybmFtZSkpOworCX0KKwllbHNlCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcihx dWVyeSwgIkNPTk5FQ1RJT04gIik7CisJCWFwcGVuZFN0cmluZ0xpdGVyYWxBSChxdWVyeSwgc3Vi aW5mby0+c3ViY29ubmluZm8sIGZvdXQpOworCX0KIAogCS8qIEJ1aWxkIGxpc3Qgb2YgcXVvdGVk IHB1YmxpY2F0aW9ucyBhbmQgYXBwZW5kIHRoZW0gdG8gcXVlcnkuICovCiAJaWYgKCFwYXJzZVBH QXJyYXkoc3ViaW5mby0+c3VicHVibGljYXRpb25zLCAmcHVibmFtZXMsICZucHVibmFtZXMpKQpk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmgKaW5kZXggNmRlY2VlZjIzZjMuLjQxZWQ0NzA5NjljIDEwMDY0NAotLS0gYS9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAg LTcxOSw2ICs3MTksNyBAQCB0eXBlZGVmIHN0cnVjdCBfU3Vic2NyaXB0aW9uSW5mbwogCWJvb2wJ CXN1YmZhaWxvdmVyOwogCWJvb2wJCXN1YnJldGFpbmRlYWR0dXBsZXM7CiAJaW50CQkJc3VibWF4 cmV0ZW50aW9uOworCWNoYXIJICAgKnN1YnNlcnZlcm5hbWU7CiAJY2hhcgkgICAqc3ViY29ubmlu Zm87CiAJY2hhcgkgICAqc3Vic2xvdG5hbWU7CiAJY2hhcgkgICAqc3Vic3luY2NvbW1pdDsKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJl LmMKaW5kZXggNTcxYTZhMDAzZDUuLmQwYWYyMmNiNzhkIDEwMDY0NAotLS0gYS9zcmMvYmluL3Bz cWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtNjgwNiw3ICs2 ODA2LDcgQEAgZGVzY3JpYmVTdWJzY3JpcHRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wg dmVyYm9zZSkKIAlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OwogCXN0YXRpYyBjb25z dCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us CiAJCWZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZSwgZmFsc2UsIGZhbHNlLAotCWZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CisJ ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CiAKIAlpZiAocHNldC5z dmVyc2lvbiA8IDEwMDAwMCkKIAl7CkBAIC02ODc2LDYgKzY4NzYsMTAgQEAgZGVzY3JpYmVTdWJz Y3JpcHRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJCQkgIGdl dHRleHRfbm9vcCgiRmFpbG92ZXIiKSk7CiAJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAwMCkK IAkJeworCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkgICIsIChzZWxlY3Qgc3J2 bmFtZSBmcm9tIHBnX2ZvcmVpZ25fc2VydmVyIHdoZXJlIG9pZD1zdWJzZXJ2ZXIpIEFTIFwiJXNc IlxuIiwKKwkJCQkJCQkgIGdldHRleHRfbm9vcCgiU2VydmVyIikpOworCiAJCQlhcHBlbmRQUUV4 cEJ1ZmZlcigmYnVmLAogCQkJCQkJCSAgIiwgc3VicmV0YWluZGVhZHR1cGxlcyBBUyBcIiVzXCJc biIsCiAJCQkJCQkJICBnZXR0ZXh0X25vb3AoIlJldGFpbiBkZWFkIHR1cGxlcyIpKTsKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuaW4uYwppbmRleCA4YjkxYmMwMDA2Mi4uYzU4N2U5YmE5NDggMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmluLmMKQEAgLTIzMzIsNyArMjMzMiw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGlu dCBwYXR0ZXJuX2lkLAogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlNVQlNDUklQVElPTiIs IE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiQ09OTkVDVElPTiIsICJFTkFCTEUiLCAiRElT QUJMRSIsICJPV05FUiBUTyIsCiAJCQkJCSAgIlJFTkFNRSBUTyIsICJSRUZSRVNIIFBVQkxJQ0FU SU9OIiwgIlJFRlJFU0ggU0VRVUVOQ0VTIiwKLQkJCQkJICAiU0VUIiwgIlNLSVAgKCIsICJBREQg UFVCTElDQVRJT04iLCAiRFJPUCBQVUJMSUNBVElPTiIpOworCQkJCQkgICJTRVJWRVIiLCAiU0VU IiwgIlNLSVAgKCIsICJBREQgUFVCTElDQVRJT04iLCAiRFJPUCBQVUJMSUNBVElPTiIpOwogCS8q IEFMVEVSIFNVQlNDUklQVElPTiA8bmFtZT4gUkVGUkVTSCAqLwogCWVsc2UgaWYgKE1hdGNoZXMo IkFMVEVSIiwgIlNVQlNDUklQVElPTiIsIE1hdGNoQW55LCBNYXRjaEFueU4sICJSRUZSRVNIIikp CiAJCUNPTVBMRVRFX1dJVEgoIlBVQkxJQ0FUSU9OIiwgIlNFUVVFTkNFUyIpOwpAQCAtMzg0OCw5 ICszODQ4LDE2IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCiAvKiBD UkVBVEUgU1VCU0NSSVBUSU9OICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlNVQlND UklQVElPTiIsIE1hdGNoQW55KSkKLQkJQ09NUExFVEVfV0lUSCgiQ09OTkVDVElPTiIpOworCQlD T01QTEVURV9XSVRIKCJTRVJWRVIiLCAiQ09OTkVDVElPTiIpOworCWVsc2UgaWYgKE1hdGNoZXMo IkNSRUFURSIsICJTVUJTQ1JJUFRJT04iLCBNYXRjaEFueSwgIlNFUlZFUiIsIE1hdGNoQW55KSkK KwkJQ09NUExFVEVfV0lUSCgiUFVCTElDQVRJT04iKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVB VEUiLCAiU1VCU0NSSVBUSU9OIiwgTWF0Y2hBbnksICJDT05ORUNUSU9OIiwgTWF0Y2hBbnkpKQog CQlDT01QTEVURV9XSVRIKCJQVUJMSUNBVElPTiIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFU RSIsICJTVUJTQ1JJUFRJT04iLCBNYXRjaEFueSwgIlNFUlZFUiIsCisJCQkJCSBNYXRjaEFueSwg IlBVQkxJQ0FUSU9OIikpCisJeworCQkvKiBjb21wbGV0ZSB3aXRoIG5vdGhpbmcgaGVyZSBhcyB0 aGlzIHJlZmVycyB0byByZW1vdGUgcHVibGljYXRpb25zICovCisJfQogCWVsc2UgaWYgKE1hdGNo ZXMoIkNSRUFURSIsICJTVUJTQ1JJUFRJT04iLCBNYXRjaEFueSwgIkNPTk5FQ1RJT04iLAogCQkJ CQkgTWF0Y2hBbnksICJQVUJMSUNBVElPTiIpKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfZm9yZWlnbl9kYXRhX3dyYXBwZXIuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfZm9yZWlnbl9kYXRhX3dyYXBwZXIuaAppbmRleCBlNjAwOTA2OWU4Mi4uM2Q4Mzg5ZGU2NWUg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZm9yZWlnbl9kYXRhX3dyYXBwZXIu aAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2ZvcmVpZ25fZGF0YV93cmFwcGVyLmgKQEAg LTM4LDYgKzM4LDkgQEAgQ0FUQUxPRyhwZ19mb3JlaWduX2RhdGFfd3JhcHBlciwyMzI4LEZvcmVp Z25EYXRhV3JhcHBlclJlbGF0aW9uSWQpCiAJT2lkCQkJZmR3dmFsaWRhdG9yIEJLSV9MT09LVVBf T1BUKHBnX3Byb2MpOwkvKiBvcHRpb24gdmFsaWRhdGlvbgogCQkJCQkJCQkJCQkJCQkgKiBmdW5j dGlvbiwgb3IgMCBpZgogCQkJCQkJCQkJCQkJCQkgKiBub25lICovCisJT2lkCQkJZmR3Y29ubmVj dGlvbiBCS0lfTE9PS1VQX09QVChwZ19wcm9jKTsJLyogY29ubmVjdGlvbiBzdHJpbmcKKwkJCQkJ CQkJCQkJCQkJICogZnVuY3Rpb24sIG9yIDAgaWYKKwkJCQkJCQkJCQkJCQkJICogbm9uZSAqLwog CiAjaWZkZWYgQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0 IGhlcmUgKi8KIAlhY2xpdGVtCQlmZHdhY2xbMV07CQkvKiBhY2Nlc3MgcGVybWlzc2lvbnMgKi8K ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmggYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oCmluZGV4IGMzNjliNWFiZmIzLi5iYmE3 YTBiNjhhNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24u aAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oCkBAIC05Miw5ICs5 MiwxMSBAQCBDQVRBTE9HKHBnX3N1YnNjcmlwdGlvbiw2MTAwLFN1YnNjcmlwdGlvblJlbGF0aW9u SWQpIEJLSV9TSEFSRURfUkVMQVRJT04gQktJX1JPVwogCQkJCQkJCQkJICogZXhjZWVkZWQgbWF4 X3JldGVudGlvbl9kdXJhdGlvbiwgd2hlbgogCQkJCQkJCQkJICogZGVmaW5lZCAqLwogCisJT2lk CQkJc3Vic2VydmVyOwkJLyogU2V0IGlmIGNvbm5lY3Rpbmcgd2l0aCBzZXJ2ZXIgKi8KKwogI2lm ZGVmIENBVEFMT0dfVkFSTEVOCQkJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJl ICovCiAJLyogQ29ubmVjdGlvbiBzdHJpbmcgdG8gdGhlIHB1Ymxpc2hlciAqLwotCXRleHQJCXN1 YmNvbm5pbmZvIEJLSV9GT1JDRV9OT1RfTlVMTDsKKwl0ZXh0CQlzdWJjb25uaW5mbzsJLyogU2V0 IGlmIGNvbm5lY3Rpbmcgd2l0aCBjb25uZWN0aW9uIHN0cmluZyAqLwogCiAJLyogU2xvdCBuYW1l IG9uIHB1Ymxpc2hlciAqLwogCU5hbWVEYXRhCXN1YnNsb3RuYW1lIEJLSV9GT1JDRV9OVUxMOwpA QCAtMjA3LDcgKzIwOSw4IEBAIHR5cGVkZWYgc3RydWN0IFN1YnNjcmlwdGlvbgogCiAjZW5kaWYJ CQkJCQkJLyogRVhQT1NFX1RPX0NMSUVOVF9DT0RFICovCiAKLWV4dGVybiBTdWJzY3JpcHRpb24g KkdldFN1YnNjcmlwdGlvbihPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vayk7CitleHRlcm4gU3Vi c2NyaXB0aW9uICpHZXRTdWJzY3JpcHRpb24oT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2ssCisJ CQkJCQkJCQkgYm9vbCBhY2xjaGVjayk7CiBleHRlcm4gdm9pZCBGcmVlU3Vic2NyaXB0aW9uKFN1 YnNjcmlwdGlvbiAqc3ViKTsKIGV4dGVybiB2b2lkIERpc2FibGVTdWJzY3JpcHRpb24oT2lkIHN1 YmlkKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZm9yZWlnbi9mb3JlaWduLmggYi9zcmMv aW5jbHVkZS9mb3JlaWduL2ZvcmVpZ24uaAppbmRleCBjMTg1ZDE0NThhMi4uNjVlZDlhN2Y5ODcg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2ZvcmVpZ24vZm9yZWlnbi5oCisrKyBiL3NyYy9pbmNs dWRlL2ZvcmVpZ24vZm9yZWlnbi5oCkBAIC0yOCw2ICsyOCw3IEBAIHR5cGVkZWYgc3RydWN0IEZv cmVpZ25EYXRhV3JhcHBlcgogCWNoYXIJICAgKmZkd25hbWU7CQkvKiBOYW1lIG9mIHRoZSBGRFcg Ki8KIAlPaWQJCQlmZHdoYW5kbGVyOwkJLyogT2lkIG9mIGhhbmRsZXIgZnVuY3Rpb24sIG9yIDAg Ki8KIAlPaWQJCQlmZHd2YWxpZGF0b3I7CS8qIE9pZCBvZiB2YWxpZGF0b3IgZnVuY3Rpb24sIG9y IDAgKi8KKwlPaWQJCQlmZHdjb25uZWN0aW9uOwkvKiBPaWQgb2YgY29ubmVjdGlvbiBzdHJpbmcg ZnVuY3Rpb24sIG9yIDAgKi8KIAlMaXN0CSAgICpvcHRpb25zOwkJLyogZmR3b3B0aW9ucyBhcyBE ZWZFbGVtIGxpc3QgKi8KIH0gRm9yZWlnbkRhdGFXcmFwcGVyOwogCkBAIC02NSwxMCArNjYsMTIg QEAgdHlwZWRlZiBzdHJ1Y3QgRm9yZWlnblRhYmxlCiAKIAogZXh0ZXJuIEZvcmVpZ25TZXJ2ZXIg KkdldEZvcmVpZ25TZXJ2ZXIoT2lkIHNlcnZlcmlkKTsKK2V4dGVybiBjaGFyICpGb3JlaWduU2Vy dmVyTmFtZShPaWQgc2VydmVyaWQpOwogZXh0ZXJuIEZvcmVpZ25TZXJ2ZXIgKkdldEZvcmVpZ25T ZXJ2ZXJFeHRlbmRlZChPaWQgc2VydmVyaWQsCiAJCQkJCQkJCQkJCSAgIGJpdHMxNiBmbGFncyk7 CiBleHRlcm4gRm9yZWlnblNlcnZlciAqR2V0Rm9yZWlnblNlcnZlckJ5TmFtZShjb25zdCBjaGFy ICpzcnZuYW1lLAogCQkJCQkJCQkJCQkgYm9vbCBtaXNzaW5nX29rKTsKK2V4dGVybiBjaGFyICpG b3JlaWduU2VydmVyQ29ubmVjdGlvblN0cmluZyhPaWQgdXNlcmlkLCBPaWQgc2VydmVyaWQpOwog ZXh0ZXJuIFVzZXJNYXBwaW5nICpHZXRVc2VyTWFwcGluZyhPaWQgdXNlcmlkLCBPaWQgc2VydmVy aWQpOwogZXh0ZXJuIEZvcmVpZ25EYXRhV3JhcHBlciAqR2V0Rm9yZWlnbkRhdGFXcmFwcGVyKE9p ZCBmZHdpZCk7CiBleHRlcm4gRm9yZWlnbkRhdGFXcmFwcGVyICpHZXRGb3JlaWduRGF0YVdyYXBw ZXJFeHRlbmRlZChPaWQgZmR3aWQsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggZjM3MTMxODM1 YmUuLjEyZTM1N2U4MzE2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC00MzgwLDYgKzQzODAs NyBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVTdWJzY3JpcHRpb25TdG10CiB7CiAJTm9kZVRhZwkJ dHlwZTsKIAljaGFyCSAgICpzdWJuYW1lOwkJLyogTmFtZSBvZiB0aGUgc3Vic2NyaXB0aW9uICov CisJY2hhcgkgICAqc2VydmVybmFtZTsJCS8qIFNlcnZlciBuYW1lIG9mIHB1Ymxpc2hlciAqLwog CWNoYXIJICAgKmNvbm5pbmZvOwkJLyogQ29ubmVjdGlvbiBzdHJpbmcgdG8gcHVibGlzaGVyICov CiAJTGlzdAkgICAqcHVibGljYXRpb247CS8qIE9uZSBvciBtb3JlIHB1YmxpY2F0aW9uIHRvIHN1 YnNjcmliZSB0byAqLwogCUxpc3QJICAgKm9wdGlvbnM7CQkvKiBMaXN0IG9mIERlZkVsZW0gbm9k ZXMgKi8KQEAgLTQzODgsNiArNDM4OSw3IEBAIHR5cGVkZWYgc3RydWN0IENyZWF0ZVN1YnNjcmlw dGlvblN0bXQKIHR5cGVkZWYgZW51bSBBbHRlclN1YnNjcmlwdGlvblR5cGUKIHsKIAlBTFRFUl9T VUJTQ1JJUFRJT05fT1BUSU9OUywKKwlBTFRFUl9TVUJTQ1JJUFRJT05fU0VSVkVSLAogCUFMVEVS X1NVQlNDUklQVElPTl9DT05ORUNUSU9OLAogCUFMVEVSX1NVQlNDUklQVElPTl9TRVRfUFVCTElD QVRJT04sCiAJQUxURVJfU1VCU0NSSVBUSU9OX0FERF9QVUJMSUNBVElPTiwKQEAgLTQ0MDMsNiAr NDQwNSw3IEBAIHR5cGVkZWYgc3RydWN0IEFsdGVyU3Vic2NyaXB0aW9uU3RtdAogCU5vZGVUYWcJ CXR5cGU7CiAJQWx0ZXJTdWJzY3JpcHRpb25UeXBlIGtpbmQ7IC8qIEFMVEVSX1NVQlNDUklQVElP Tl9PUFRJT05TLCBldGMgKi8KIAljaGFyCSAgICpzdWJuYW1lOwkJLyogTmFtZSBvZiB0aGUgc3Vi c2NyaXB0aW9uICovCisJY2hhcgkgICAqc2VydmVybmFtZTsJCS8qIFNlcnZlciBuYW1lIG9mIHB1 Ymxpc2hlciAqLwogCWNoYXIJICAgKmNvbm5pbmZvOwkJLyogQ29ubmVjdGlvbiBzdHJpbmcgdG8g cHVibGlzaGVyICovCiAJTGlzdAkgICAqcHVibGljYXRpb247CS8qIE9uZSBvciBtb3JlIHB1Ymxp Y2F0aW9uIHRvIHN1YnNjcmliZSB0byAqLwogCUxpc3QJICAgKm9wdGlvbnM7CQkvKiBMaXN0IG9m IERlZkVsZW0gbm9kZXMgKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv b2lkam9pbnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKaW5k ZXggMjVhYWFlOGQwNWEuLjg3NjhjZTMwYjZhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL29pZGpvaW5zLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29p ZGpvaW5zLm91dApAQCAtMjI0LDYgKzIyNCw3IEBAIE5PVElDRTogIGNoZWNraW5nIHBnX2V4dGVu c2lvbiB7ZXh0Y29uZmlnfSA9PiBwZ19jbGFzcyB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdf Zm9yZWlnbl9kYXRhX3dyYXBwZXIge2Zkd293bmVyfSA9PiBwZ19hdXRoaWQge29pZH0KIE5PVElD RTogIGNoZWNraW5nIHBnX2ZvcmVpZ25fZGF0YV93cmFwcGVyIHtmZHdoYW5kbGVyfSA9PiBwZ19w cm9jIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19mb3JlaWduX2RhdGFfd3JhcHBlciB7ZmR3 dmFsaWRhdG9yfSA9PiBwZ19wcm9jIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19mb3JlaWdu X2RhdGFfd3JhcHBlciB7ZmR3Y29ubmVjdGlvbn0gPT4gcGdfcHJvYyB7b2lkfQogTk9USUNFOiAg Y2hlY2tpbmcgcGdfZm9yZWlnbl9zZXJ2ZXIge3Nydm93bmVyfSA9PiBwZ19hdXRoaWQge29pZH0K IE5PVElDRTogIGNoZWNraW5nIHBnX2ZvcmVpZ25fc2VydmVyIHtzcnZmZHd9ID0+IHBnX2ZvcmVp Z25fZGF0YV93cmFwcGVyIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ191c2VyX21hcHBpbmcg e3VtdXNlcn0gPT4gcGdfYXV0aGlkIHtvaWR9CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1 YnNjcmlwdGlvbi5vdXQKaW5kZXggM2EwNjM3NzcyYzcuLjIwOTViZmM0NjNlIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CkBAIC0xLDYgKzEsMTQgQEAKIC0t CiAtLSBTVUJTQ1JJUFRJT04KIC0tCistLSBkaXJlY3RvcnkgcGF0aHMgYW5kIGRsc3VmZml4IGFy ZSBwYXNzZWQgdG8gdXMgaW4gZW52aXJvbm1lbnQgdmFyaWFibGVzCitcZ2V0ZW52IGxpYmRpciBQ R19MSUJESVIKK1xnZXRlbnYgZGxzdWZmaXggUEdfRExTVUZGSVgKK1xzZXQgcmVncmVzc2xpYiA6 bGliZGlyICcvcmVncmVzcycgOmRsc3VmZml4CitDUkVBVEUgRlVOQ1RJT04gdGVzdF9mZHdfY29u bmVjdGlvbihvaWQsIG9pZCwgaW50ZXJuYWwpCisgICAgUkVUVVJOUyB0ZXh0CisgICAgQVMgOidy ZWdyZXNzbGliJywgJ3Rlc3RfZmR3X2Nvbm5lY3Rpb24nCisgICAgTEFOR1VBR0UgQzsKIENSRUFU RSBST0xFIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgTE9HSU4gU1VQRVJVU0VSOwogQ1JFQVRF IFJPTEUgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjI7CiBDUkVBVEUgUk9MRSByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyMyBJTiBST0xFIHBnX2NyZWF0ZV9zdWJzY3JpcHRpb247CkBAIC0xMTYs MTggKzEyNCwxOCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjQgQ09OTkVD VElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVQogV0FSTklORzogIHN1YnNjcmlw dGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0 ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBz bG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24g dG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKyByZWdyZXNzX3Rlc3RzdWI0Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMK LSAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBE aXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3du ZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0 aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIAotLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0 c3ViNCB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAg fCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAg ICB8IG5vbmUgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAg IHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAg ICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgIE5h bWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0 aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWls b3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRp b24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgCistLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyByZWdy ZXNzX3Rlc3RzdWI0IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgICAgIHwgbm9uZSAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg ZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1y ZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwCiAoMSBy b3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI0IFNFVCAob3JpZ2luID0g YW55KTsKIFxkUnMrIHJlZ3Jlc3NfdGVzdHN1YjQKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgIE5hbWUgICAgICAg fCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmlu YXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBP cmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJl dGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0 aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwg UmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWI0IHwgcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVs ICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAg ICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAg ICAgfCAwLzAwMDAwMDAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICAgTmFtZSAgICAgICB8ICAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJl YW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBh c3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0 YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3Rp dmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBS ZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICAKKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YjQgfCByZWdy ZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwg cGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAg fCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8 IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAg ICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0 IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAKICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJ UFRJT04gcmVncmVzc190ZXN0c3ViMzsKQEAgLTE0MCwxNSArMTQ4LDMwIEBAIEVSUk9SOiAgaW52 YWxpZCBjb25uZWN0aW9uIHN0cmluZyBzeW50YXg6IGludmFsaWQgY29ubmVjdGlvbiBvcHRpb24g ImlfZG9udF9leGlzCiAtLSBjb25uZWN0aW5nLCBzbyB0aGlzIGlzIHJlbGlhYmxlIGFuZCBzYWZl KQogQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI1IENPTk5FQ1RJT04gJ3BvcnQ9 LTEnIFBVQkxJQ0FUSU9OIHRlc3RwdWI7CiBFUlJPUjogIHN1YnNjcmlwdGlvbiAicmVncmVzc190 ZXN0c3ViNSIgY291bGQgbm90IGNvbm5lY3QgdG8gdGhlIHB1Ymxpc2hlcjogaW52YWxpZCBwb3J0 IG51bWJlcjogIi0xIgorQ1JFQVRFIEZPUkVJR04gREFUQSBXUkFQUEVSIHRlc3RfZmR3OworQ1JF QVRFIFNFUlZFUiB0ZXN0X3NlcnZlciBGT1JFSUdOIERBVEEgV1JBUFBFUiB0ZXN0X2ZkdzsKK0NS RUFURSBVU0VSIE1BUFBJTkcgRk9SIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgU0VSVkVSIHRl c3Rfc2VydmVyOworLS0gZmFpbCwgbmVlZCBDT05ORUNUSU9OIGNsYXVzZQorQ1JFQVRFIFNVQlND UklQVElPTiByZWdyZXNzX3Rlc3RzdWI2IFNFUlZFUiB0ZXN0X3NlcnZlciBQVUJMSUNBVElPTiB0 ZXN0cHViIFdJVEggKHNsb3RfbmFtZSA9IE5PTkUsIGNvbm5lY3QgPSBmYWxzZSk7CitFUlJPUjog IGZvcmVpZ24gZGF0YSB3cmFwcGVyICJ0ZXN0X2ZkdyIgZG9lcyBub3Qgc3VwcG9ydCBzdWJzY3Jp cHRpb24gY29ubmVjdGlvbnMKK0RFVEFJTDogIEZvcmVpZ24gZGF0YSB3cmFwcGVyIG11c3QgYmUg ZGVmaW5lZCB3aXRoIENPTk5FQ1RJT04gc3BlY2lmaWVkLgorQUxURVIgRk9SRUlHTiBEQVRBIFdS QVBQRVIgdGVzdF9mZHcgQ09OTkVDVElPTiB0ZXN0X2Zkd19jb25uZWN0aW9uOworQ1JFQVRFIFNV QlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI2IFNFUlZFUiB0ZXN0X3NlcnZlciBQVUJMSUNBVElP TiB0ZXN0cHViIFdJVEggKHNsb3RfbmFtZSA9IE5PTkUsIGNvbm5lY3QgPSBmYWxzZSk7CitXQVJO SU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAorSElO VDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhl IHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhl IHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1YmxpY2F0aW9ucy4KK0RST1AgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfdGVzdHN1YjY7CitEUk9QIFVTRVIgTUFQUElORyBGT1IgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlciBTRVJWRVIgdGVzdF9zZXJ2ZXI7CitEUk9QIFNFUlZFUiB0ZXN0X3NlcnZlcjsK K0RST1AgRk9SRUlHTiBEQVRBIFdSQVBQRVIgdGVzdF9mZHc7CiAtLSBmYWlsIC0gaW52YWxpZCBj b25uZWN0aW9uIHN0cmluZyBkdXJpbmcgQUxURVIKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X3Rlc3RzdWIgQ09OTkVDVElPTiAnZm9vYmFyJzsKIEVSUk9SOiAgaW52YWxpZCBjb25uZWN0aW9u IHN0cmluZyBzeW50YXg6IG1pc3NpbmcgIj0iIGFmdGVyICJmb29iYXIiIGluIGNvbm5lY3Rpb24g aW5mbyBzdHJpbmcKIAogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVh bWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFz c3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0 dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNo cm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRp bWVvdXQgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwg ZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAw MDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBo YXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJl ZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxl cyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25v dXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91 dCB8ICBTa2lwIExTTiAgCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9u X3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAg ICAgIHwgMC8wMDAwMDAwMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190 ZXN0c3ViIFNFVCBQVUJMSUNBVElPTiB0ZXN0cHViMiwgdGVzdHB1YjMgV0lUSCAocmVmcmVzaCA9 IGZhbHNlKTsKQEAgLTE1NywxMCArMTgwLDEwIEBAIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSAnbmV3bmFtZScpOwogQUxURVIgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHBhc3N3b3JkX3JlcXVpcmVkID0gZmFsc2UpOwogQUxURVIg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHJ1bl9hc19vd25lciA9IHRydWUpOwog XGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1p bmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3 b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVw bGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJv bm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGlt ZW91dCB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IHBhcmFs bGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgZiAg ICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAg ICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAtMSAgICAgICAg ICAgICAgIHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAg fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVy IHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8 IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmlu Zm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgCistLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQor IHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwg e3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgZiAgICAgICAgICAgICAgICAgfCB0ICAg ICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAg ICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAtMSAgICAgICAgICAgICAgIHwgMC8w MDAwMDAwMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNF VCAocGFzc3dvcmRfcmVxdWlyZWQgPSB0cnVlKTsKQEAgLTE3NiwxMCArMTk5LDEwIEBAIEVSUk9S OiAgdW5yZWNvZ25pemVkIHN1YnNjcmlwdGlvbiBwYXJhbWV0ZXI6ICJjcmVhdGVfc2xvdCIKIC0t IG9rCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNLSVAgKGxzbiA9ICcwLzEy MzQ1Jyk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBP d25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8 IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2lu IHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4g ZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8 IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNl aXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19z dWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAg IHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkg ICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAg IHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IC0x ICAgICAgICAgICAgICAgfCAwLzAwMDEyMzQ1CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0 aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxl IG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwg RmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1 cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAg ICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICAKKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYg ICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAg ICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IC0xICAgICAgICAgICAg ICAgfCAwLzAwMDEyMzQ1CiAoMSByb3cpCiAKIC0tIG9rIC0gd2l0aCBsc24gPSBOT05FCkBAIC0x ODgsMTAgKzIxMSwxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNLSVAg KGxzbiA9IE5PTkUpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTS0lQIChs c24gPSAnMC8wJyk7CiBFUlJPUjogIGludmFsaWQgV0FMIGxvY2F0aW9uIChMU04pOiAwLzAKIFxk UnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5n IHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29y ZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxl cyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25v dXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVv dXQgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxl bCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgLTEgICAgICAgICAg ICAgICB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwg QmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3Ig fCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8 IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBS ZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZv ICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIAorLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBy ZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0 ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAg fCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgLTEgICAgICAgICAgICAgICB8IDAvMDAw MDAwMDAKICgxIHJvdykKIAogQkVHSU47CkBAIC0yMjcsMTAgKzI1MCwxMCBAQCBBTFRFUiBTVUJT Q1JJUFRJT04gcmVncmVzc190ZXN0c3ViX2ZvbyBTRVQgKHdhbF9yZWNlaXZlcl90aW1lb3V0ID0g JzgwcycpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1Yl9mb28gU0VUICh3YWxf cmVjZWl2ZXJfdGltZW91dCA9ICdmb29iYXInKTsKIEVSUk9SOiAgaW52YWxpZCB2YWx1ZSBmb3Ig cGFyYW1ldGVyICJ3YWxfcmVjZWl2ZXJfdGltZW91dCI6ICJmb29iYXIiCiBcZFJzKwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3Jp cHRpb25zCi0gICAgICAgIE5hbWUgICAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAg fCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3 by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVx dWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBN YXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNv bW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwg IFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1Yl9mb28gfCByZWdyZXNzX3N1YnNjcmlw dGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJh bGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQg ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBsb2Nh bCAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgODBzICAgICAg ICAgICAgICB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgICAgTmFtZSAgICAg ICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRp b24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBG YWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVy YXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAg IENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViX2ZvbyB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3Vz ZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IHBhcmFsbGVsICB8 IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IGxv Y2FsICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCA4MHMgICAg ICAgICAgICAgIHwgMC8wMDAwMDAwMAogKDEgcm93KQogCiAtLSByZW5hbWUgYmFjayB0byBrZWVw IHRoZSByZXN0IHNpbXBsZQpAQCAtMjU5LDE5ICsyODIsMTkgQEAgQ1JFQVRFIFNVQlNDUklQVElP TiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0 JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29u bmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5 IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFu ZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRScysK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3Jp cHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVu YWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21t aXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4g YXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9u IGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAg ICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIAot LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNz X3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi fSAgIHwgdCAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAg ICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAg ICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAg IE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1Ymxp Y2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBG YWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVy YXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAg Q29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgCistLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIHJl Z3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rl c3RwdWJ9ICAgfCB0ICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8 IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMAogKDEg cm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoYmluYXJ5ID0g ZmFsc2UpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFt ZSA9IE5PTkUpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWlu ZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dv cmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBs ZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVv dXQgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwg ZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJu YW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1 YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAg IHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNl IGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8 IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8 IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMg Y29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8 ICBTa2lwIExTTiAgCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3Vz ZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAg ICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAg IHwgMC8wMDAwMDAwMAogKDEgcm93KQogCiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWI7CkBAIC0yODMsMjcgKzMwNiwyNyBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklO RzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6 ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSBy ZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBz dWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAg IE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1Ymxp Y2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBG YWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBS ZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8g ICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJl Z3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAg fCBvbiAgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAg ICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAg fCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAg ICAgICAgICAgICAgIHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8 ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5h cnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9y aWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2Vy dmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVu dGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAg ICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICAKKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3Vi IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYg ICAgICB8IG9uICAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwg YW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAg ICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAg ICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwCiAoMSByb3cpCiAKIEFMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzdHJlYW1pbmcgPSBwYXJhbGxlbCk7 CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBo YXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJl ZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCBy ZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0 IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lw IExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQot IHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwg e3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg MCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVz c19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9u cworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVk IHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwg RGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93 bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVu dGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAg ICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNO ICAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAg ICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8 IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAw MDAwCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChz dHJlYW1pbmcgPSBmYWxzZSk7CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNF VCAoc2xvdF9uYW1lID0gTk9ORSk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5 IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmln aW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFp biBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZl IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVj ZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAg ICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwg MC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25l ciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcg fCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3Jk IHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRl YWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBT eW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZl ciB0aW1lb3V0IHwgIFNraXAgTFNOICAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAg ICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8 IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAg ICAgICAgICAgICAgfCAwLzAwMDAwMDAwCiAoMSByb3cpCiAKIC0tIGZhaWwgLSBwdWJsaWNhdGlv biBhbHJlYWR5IGV4aXN0cwpAQCAtMzE4LDEwICszNDEsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfdGVzdHN1YiBBREQgUFVCTElDQVRJT04gdGVzdHB1YjEsIHRlc3RwdWIyIFdJVEgg KHJlZnIKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQUREIFBVQkxJQ0FUSU9O IHRlc3RwdWIxLCB0ZXN0cHViMiBXSVRIIChyZWZyZXNoID0gZmFsc2UpOwogRVJST1I6ICBwdWJs aWNhdGlvbiAidGVzdHB1YjEiIGlzIGFscmVhZHkgaW4gc3Vic2NyaXB0aW9uICJyZWdyZXNzX3Rl c3RzdWIiCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgICAgICBQdWJsaWNhdGlvbiAgICAgICAg IHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJy b3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3Zl ciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRp b24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAg ICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rl c3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViLHRl c3RwdWIxLHRlc3RwdWIyfSB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1y ZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgRW5hYmxlZCB8ICAgICAgICAgUHVibGljYXRpb24gICAgICAgICB8IEJpbmFyeSB8IFN0 cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwg UGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBS ZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFj dGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8 IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgcmVncmVz c190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1 Yix0ZXN0cHViMSx0ZXN0cHViMn0gfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAg ICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8w MDAwMDAwMAogKDEgcm93KQogCiAtLSBmYWlsIC0gcHVibGljYXRpb24gdXNlZCBtb3JlIHRoYW4g b25jZQpAQCAtMzM2LDEwICszNTksMTAgQEAgRVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1YjMi IGlzIG5vdCBpbiBzdWJzY3JpcHRpb24gInJlZ3Jlc3NfdGVzdHN1YiIKIC0tIG9rIC0gZGVsZXRl IHB1YmxpY2F0aW9ucwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBEUk9QIFBV QkxJQ0FUSU9OIHRlc3RwdWIxLCB0ZXN0cHViMiBXSVRIIChyZWZyZXNoID0gZmFsc2UpOwogXGRS cysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJz Y3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBj b21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBS dW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50 aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAg ICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04g IAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdy ZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0 cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBm ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBm ICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAg ICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1 YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2Fi bGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8g fCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24g ZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAg ICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgCist LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQor IHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwg e3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMAog KDEgcm93KQogCiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CkBAIC0zNzUsMTkg KzM5OCwxOSBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9O ICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlv biB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSBy ZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90 LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8g cmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5 IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmln aW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFp biBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZl IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVj ZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBw ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAg ICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwg MC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25l ciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcg fCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3Jk IHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRl YWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBT eW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZl ciB0aW1lb3V0IHwgIFNraXAgTFNOICAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVs ICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8 IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAg ICAgICAgICAgICAgfCAwLzAwMDAwMDAwCiAoMSByb3cpCiAKIC0tIHdlIGNhbiBhbHRlciBzdHJl YW1pbmcgd2hlbiB0d29fcGhhc2UgZW5hYmxlZAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YiBTRVQgKHN0cmVhbWluZyA9IHRydWUpOwogXGRScysKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1l ICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlv biB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVy cm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92 ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50 aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAg ICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNz X3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24g ICAgICAgIHwgcCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0 ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2Zm ICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAg ICAgICAgICB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwg U3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4g fCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8 IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24g YWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAg IHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgCistLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJl Z3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAg fCBvbiAgICAgICAgfCBwICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAg ICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAg IHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAg ICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMAogKDEgcm93KQogCiBBTFRFUiBTVUJT Q1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CkBAIC0zOTcs MTAgKzQyMCwxMCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNU SU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1YnNjcmlw dGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0 ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBz bG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24g dG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAg fCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmlu YXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBP cmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJl dGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0 aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwg UmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2Ny aXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAg fCBwICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAg ICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAg IHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBP d25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1p bmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3 b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWlu IGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUg fCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNl aXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19z dWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9uICAg ICAgICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAg ICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0x ICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElP TiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKQEAgLTQxMywxOCArNDM2 LDE4IEBAIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2Ri bmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdh cyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxp Y2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVu YWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZy ZXNoIHB1YmxpY2F0aW9ucy4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBT dHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8 IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRl YWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBT eW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZl ciB0aW1lb3V0IHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25f dXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAg ICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAw MDAwMDAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3 by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVx dWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0 dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNo cm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRp bWVvdXQgfCAgU2tpcCBMU04gIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlw dGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwg ZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2Zm ICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAg ICAgICAgICB8IDAvMDAwMDAwMDAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfdGVzdHN1YiBTRVQgKGRpc2FibGVfb25fZXJyb3IgPSB0cnVlKTsKIFxkUnMrCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwot ICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwg UHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlz YWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVy PyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlv biB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25u aW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICAKLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3Vi IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYg ICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgICAgIHwg YW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBm ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAg ICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8 IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAg ICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8 IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9y IHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIg fCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwg UmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZv ICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIAorLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rl c3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAg IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAg ICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAg ICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAg fCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAKICgxIHJvdykKIAog QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUp OwpAQCAtNDM3LDEwICs0NjAsMTAgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6 ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAg VG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVw bGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vi c2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRScysKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNh dGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9u IGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFp bG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0 ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAg ICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdy ZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwg cGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAg fCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwg b2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAg ICAgICAgICAgICB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5 IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmln aW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZl ciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRp b24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAg ICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgCistLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8 IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAg ICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFu eSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAg ICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAg ICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMAogKDEgcm93KQogCiBBTFRFUiBT VUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CkBAIC00 NTQsMTkgKzQ3NywxOSBAQCBOT1RJQ0U6ICBtYXhfcmV0ZW50aW9uX2R1cmF0aW9uIGlzIGluZWZm ZWN0aXZlIHdoZW4gcmV0YWluX2RlYWRfdHVwbGVzIGlzIGRpc2FibAogV0FSTklORzogIHN1YnNj cmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0 aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlv biBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRp b24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAg ICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwg QmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3Ig fCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8 IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24g YWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAg IHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxl bCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgMTAwMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAg ICAgIHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJl YW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBh c3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0 YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3Rp dmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBS ZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVz c19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBh cmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwg dCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBm ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAxMDAwIHwgZiAgICAgICAgICAg ICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8 IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwCiAoMSByb3cpCiAKIC0tIG9rCiBBTFRFUiBT VUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAobWF4X3JldGVudGlvbl9kdXJhdGlvbiA9 IDApOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3 by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVx dWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBN YXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNv bW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAg U2tpcCBMU04gIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAg ICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlw dGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5h YmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1p dCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBh cyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCBy ZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0 IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lw IExTTiAgCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBm ICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAg ICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8w MDAwMDAwMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNF VCAoc2xvdF9uYW1lID0gTk9ORSk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3JlZ3Jl c3MuYyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcmVncmVzcy5jCmluZGV4IGEwMmY0MWM5NzI3Li4xNThj N2I3YTRjMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9yZWdyZXNzLmMKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9yZWdyZXNzLmMKQEAgLTcyOSw2ICs3MjksMTMgQEAgdGVzdF9mZHdfaGFu ZGxlcihQR19GVU5DVElPTl9BUkdTKQogCVBHX1JFVFVSTl9OVUxMKCk7CiB9CiAKK1BHX0ZVTkNU SU9OX0lORk9fVjEodGVzdF9mZHdfY29ubmVjdGlvbik7CitEYXR1bQordGVzdF9mZHdfY29ubmVj dGlvbihQR19GVU5DVElPTl9BUkdTKQoreworCVBHX1JFVFVSTl9URVhUX1AoY3N0cmluZ190b190 ZXh0KCJkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QiKSk7Cit9CisKIFBHX0ZVTkNUSU9OX0lO Rk9fVjEoaXNfY2F0YWxvZ190ZXh0X3VuaXF1ZV9pbmRleF9vaWQpOwogRGF0dW0KIGlzX2NhdGFs b2dfdGV4dF91bmlxdWVfaW5kZXhfb2lkKFBHX0ZVTkNUSU9OX0FSR1MpCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvc3Vic2NyaXB0aW9uLnNxbAppbmRleCBkOTNjYmMyNzlkOS4uOTkwZDc1ZjE3NDkgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbApAQCAtMiw2ICsyLDE3IEBACiAtLSBTVUJT Q1JJUFRJT04KIC0tCiAKKy0tIGRpcmVjdG9yeSBwYXRocyBhbmQgZGxzdWZmaXggYXJlIHBhc3Nl ZCB0byB1cyBpbiBlbnZpcm9ubWVudCB2YXJpYWJsZXMKK1xnZXRlbnYgbGliZGlyIFBHX0xJQkRJ UgorXGdldGVudiBkbHN1ZmZpeCBQR19ETFNVRkZJWAorCitcc2V0IHJlZ3Jlc3NsaWIgOmxpYmRp ciAnL3JlZ3Jlc3MnIDpkbHN1ZmZpeAorCitDUkVBVEUgRlVOQ1RJT04gdGVzdF9mZHdfY29ubmVj dGlvbihvaWQsIG9pZCwgaW50ZXJuYWwpCisgICAgUkVUVVJOUyB0ZXh0CisgICAgQVMgOidyZWdy ZXNzbGliJywgJ3Rlc3RfZmR3X2Nvbm5lY3Rpb24nCisgICAgTEFOR1VBR0UgQzsKKwogQ1JFQVRF IFJPTEUgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciBMT0dJTiBTVVBFUlVTRVI7CiBDUkVBVEUg Uk9MRSByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMjsKIENSRUFURSBST0xFIHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIzIElOIFJPTEUgcGdfY3JlYXRlX3N1YnNjcmlwdGlvbjsKQEAgLTg1LDYg Kzk2LDIxIEBAIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNSBDT05ORUNUSU9O ICdpX2RvbnRfZXhpc3Q9cGFyYW0nIFBVQkxJQ0FUSU9OCiAtLSBjb25uZWN0aW5nLCBzbyB0aGlz IGlzIHJlbGlhYmxlIGFuZCBzYWZlKQogQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWI1IENPTk5FQ1RJT04gJ3BvcnQ9LTEnIFBVQkxJQ0FUSU9OIHRlc3RwdWI7CiAKK0NSRUFURSBG T1JFSUdOIERBVEEgV1JBUFBFUiB0ZXN0X2ZkdzsKK0NSRUFURSBTRVJWRVIgdGVzdF9zZXJ2ZXIg Rk9SRUlHTiBEQVRBIFdSQVBQRVIgdGVzdF9mZHc7CitDUkVBVEUgVVNFUiBNQVBQSU5HIEZPUiBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIFNFUlZFUiB0ZXN0X3NlcnZlcjsKKworLS0gZmFpbCwg bmVlZCBDT05ORUNUSU9OIGNsYXVzZQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWI2IFNFUlZFUiB0ZXN0X3NlcnZlciBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKHNsb3RfbmFt ZSA9IE5PTkUsIGNvbm5lY3QgPSBmYWxzZSk7CisKK0FMVEVSIEZPUkVJR04gREFUQSBXUkFQUEVS IHRlc3RfZmR3IENPTk5FQ1RJT04gdGVzdF9mZHdfY29ubmVjdGlvbjsKK0NSRUFURSBTVUJTQ1JJ UFRJT04gcmVncmVzc190ZXN0c3ViNiBTRVJWRVIgdGVzdF9zZXJ2ZXIgUFVCTElDQVRJT04gdGVz dHB1YiBXSVRIIChzbG90X25hbWUgPSBOT05FLCBjb25uZWN0ID0gZmFsc2UpOworRFJPUCBTVUJT Q1JJUFRJT04gcmVncmVzc190ZXN0c3ViNjsKKworRFJPUCBVU0VSIE1BUFBJTkcgRk9SIHJlZ3Jl c3Nfc3Vic2NyaXB0aW9uX3VzZXIgU0VSVkVSIHRlc3Rfc2VydmVyOworRFJPUCBTRVJWRVIgdGVz dF9zZXJ2ZXI7CitEUk9QIEZPUkVJR04gREFUQSBXUkFQUEVSIHRlc3RfZmR3OworCiAtLSBmYWls IC0gaW52YWxpZCBjb25uZWN0aW9uIHN0cmluZyBkdXJpbmcgQUxURVIKIEFMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZm9vYmFyJzsKIAotLSAKMi40My4wCgo= --=-6NTljot0yymdvRct5Dn6 Content-Disposition: attachment; filename*0=v17-0002-dblink-support-foreign-data-wrapper-CONNECTION-c.pat; filename*1=ch Content-Type: text/x-patch; name="v17-0002-dblink-support-foreign-data-wrapper-CONNECTION-c.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBhNzc4ZDFmZDhhNmRjYTE3Mzc3NzAwNDMzMjFmN2ViYzE3Y2VjODExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU aHUsIDI2IEZlYiAyMDI2IDEwOjQyOjA4IC0wODAwClN1YmplY3Q6IFtQQVRDSCB2MTcgMi8yXSBk Ymxpbms6IHN1cHBvcnQgZm9yZWlnbiBkYXRhIHdyYXBwZXIgQ09OTkVDVElPTgogY2xhdXNlLgoK LS0tCiBjb250cmliL2RibGluay9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIg Ky0KIGNvbnRyaWIvZGJsaW5rL2RibGluay0tMS4yLS0xLjMuc3FsICAgICAgICAgICB8ICAxMiAr KwogLi4uL3tkYmxpbmstLTEuMi5zcWwgPT4gZGJsaW5rLS0xLjMuc3FsfSAgICAgIHwgIDExICst CiBjb250cmliL2RibGluay9kYmxpbmsuYyAgICAgICAgICAgICAgICAgICAgICAgfCAxNjMgKysr KysrKysrLS0tLS0tLS0tCiBjb250cmliL2RibGluay9kYmxpbmsuY29udHJvbCAgICAgICAgICAg ICAgICAgfCAgIDIgKy0KIGNvbnRyaWIvZGJsaW5rL21lc29uLmJ1aWxkICAgICAgICAgICAgICAg ICAgICB8ICAgMyArLQogNiBmaWxlcyBjaGFuZ2VkLCAxMDkgaW5zZXJ0aW9ucygrKSwgODQgZGVs ZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJpYi9kYmxpbmsvZGJsaW5rLS0xLjIt LTEuMy5zcWwKIHJlbmFtZSBjb250cmliL2RibGluay97ZGJsaW5rLS0xLjIuc3FsID0+IGRibGlu ay0tMS4zLnNxbH0gKDk2JSkKCmRpZmYgLS1naXQgYS9jb250cmliL2RibGluay9NYWtlZmlsZSBi L2NvbnRyaWIvZGJsaW5rL01ha2VmaWxlCmluZGV4IGZkZTBiNDlkZGJiLi5jYWE3NmM5Y2IyNyAx MDA2NDQKLS0tIGEvY29udHJpYi9kYmxpbmsvTWFrZWZpbGUKKysrIGIvY29udHJpYi9kYmxpbmsv TWFrZWZpbGUKQEAgLTgsNyArOCw3IEBAIFBHX0NQUEZMQUdTID0gLUkkKGxpYnBxX3NyY2RpcikK IFNITElCX0xJTktfSU5URVJOQUwgPSAkKGxpYnBxKQogCiBFWFRFTlNJT04gPSBkYmxpbmsKLURB VEEgPSBkYmxpbmstLTEuMi5zcWwgZGJsaW5rLS0xLjEtLTEuMi5zcWwgZGJsaW5rLS0xLjAtLTEu MS5zcWwKK0RBVEEgPSBkYmxpbmstLTEuMy5zcWwgZGJsaW5rLS0xLjItLTEuMy5zcWwgZGJsaW5r LS0xLjEtLTEuMi5zcWwgZGJsaW5rLS0xLjAtLTEuMS5zcWwKIFBHRklMRURFU0MgPSAiZGJsaW5r IC0gY29ubmVjdCB0byBvdGhlciBQb3N0Z3JlU1FMIGRhdGFiYXNlcyIKIAogUkVHUkVTUyA9IGRi bGluawpkaWZmIC0tZ2l0IGEvY29udHJpYi9kYmxpbmsvZGJsaW5rLS0xLjItLTEuMy5zcWwgYi9j b250cmliL2RibGluay9kYmxpbmstLTEuMi0tMS4zLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uNzc5MjhhOWU2NTYKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmli L2RibGluay9kYmxpbmstLTEuMi0tMS4zLnNxbApAQCAtMCwwICsxLDEyIEBACisvKiBjb250cmli L2RibGluay9kYmxpbmstLTEuMi0tMS4zLnNxbCAqLworCistLSBjb21wbGFpbiBpZiBzY3JpcHQg aXMgc291cmNlZCBpbiBwc3FsLCByYXRoZXIgdGhhbiB2aWEgQUxURVIgRVhURU5TSU9OCitcZWNo byBVc2UgIkFMVEVSIEVYVEVOU0lPTiBkYmxpbmsgVVBEQVRFIFRPICcxLjMnIiB0byBsb2FkIHRo aXMgZmlsZS4gXHF1aXQKKworLS0gdGFrZXMgaW50ZXJuYWwgcGFyYW1ldGVyIHRvIHByZXZlbnQg Y2FsbGluZyBmcm9tIFNRTAorQ1JFQVRFIEZVTkNUSU9OIGRibGlua19mZHdfY29ubmVjdGlvbihv aWQsIG9pZCwgaW50ZXJuYWwpCitSRVRVUk5TIHRleHQKK0FTICdNT0RVTEVfUEFUSE5BTUUnCitM QU5HVUFHRSBDIFNUUklDVCBQQVJBTExFTCBSRVNUUklDVEVEOworCitBTFRFUiBGT1JFSUdOIERB VEEgV1JBUFBFUiBkYmxpbmtfZmR3IENPTk5FQ1RJT04gZGJsaW5rX2Zkd19jb25uZWN0aW9uOwpk aWZmIC0tZ2l0IGEvY29udHJpYi9kYmxpbmsvZGJsaW5rLS0xLjIuc3FsIGIvY29udHJpYi9kYmxp bmsvZGJsaW5rLS0xLjMuc3FsCnNpbWlsYXJpdHkgaW5kZXggOTYlCnJlbmFtZSBmcm9tIGNvbnRy aWIvZGJsaW5rL2RibGluay0tMS4yLnNxbApyZW5hbWUgdG8gY29udHJpYi9kYmxpbmsvZGJsaW5r LS0xLjMuc3FsCmluZGV4IDQwNWVjY2IwZmY5Li4yMmU0ZWEyMDYxZSAxMDA2NDQKLS0tIGEvY29u dHJpYi9kYmxpbmsvZGJsaW5rLS0xLjIuc3FsCisrKyBiL2NvbnRyaWIvZGJsaW5rL2RibGluay0t MS4zLnNxbApAQCAtMSw0ICsxLDQgQEAKLS8qIGNvbnRyaWIvZGJsaW5rL2RibGluay0tMS4yLnNx bCAqLworLyogY29udHJpYi9kYmxpbmsvZGJsaW5rLS0xLjMuc3FsICovCiAKIC0tIGNvbXBsYWlu IGlmIHNjcmlwdCBpcyBzb3VyY2VkIGluIHBzcWwsIHJhdGhlciB0aGFuIHZpYSBDUkVBVEUgRVhU RU5TSU9OCiBcZWNobyBVc2UgIkNSRUFURSBFWFRFTlNJT04gZGJsaW5rIiB0byBsb2FkIHRoaXMg ZmlsZS4gXHF1aXQKQEAgLTIzMiw0ICsyMzIsMTEgQEAgUkVUVVJOUyB2b2lkCiBBUyAnTU9EVUxF X1BBVEhOQU1FJywgJ2RibGlua19mZHdfdmFsaWRhdG9yJwogTEFOR1VBR0UgQyBTVFJJQ1QgUEFS QUxMRUwgU0FGRTsKIAotQ1JFQVRFIEZPUkVJR04gREFUQSBXUkFQUEVSIGRibGlua19mZHcgVkFM SURBVE9SIGRibGlua19mZHdfdmFsaWRhdG9yOworLS0gdGFrZXMgaW50ZXJuYWwgcGFyYW1ldGVy IHRvIHByZXZlbnQgY2FsbGluZyBmcm9tIFNRTAorQ1JFQVRFIEZVTkNUSU9OIGRibGlua19mZHdf Y29ubmVjdGlvbihvaWQsIG9pZCwgaW50ZXJuYWwpCitSRVRVUk5TIHRleHQKK0FTICdNT0RVTEVf UEFUSE5BTUUnCitMQU5HVUFHRSBDIFNUUklDVCBQQVJBTExFTCBSRVNUUklDVEVEOworCitDUkVB VEUgRk9SRUlHTiBEQVRBIFdSQVBQRVIgZGJsaW5rX2ZkdyBWQUxJREFUT1IgZGJsaW5rX2Zkd192 YWxpZGF0b3IKKyAgQ09OTkVDVElPTiBkYmxpbmtfZmR3X2Nvbm5lY3Rpb247CmRpZmYgLS1naXQg YS9jb250cmliL2RibGluay9kYmxpbmsuYyBiL2NvbnRyaWIvZGJsaW5rL2RibGluay5jCmluZGV4 IDI0OThkODBjOGU3Li4zYTRiMzA3ZmY2NCAxMDA2NDQKLS0tIGEvY29udHJpYi9kYmxpbmsvZGJs aW5rLmMKKysrIGIvY29udHJpYi9kYmxpbmsvZGJsaW5rLmMKQEAgLTE5OTMsNiArMTk5Myw4NyBA QCBkYmxpbmtfZmR3X3ZhbGlkYXRvcihQR19GVU5DVElPTl9BUkdTKQogCVBHX1JFVFVSTl9WT0lE KCk7CiB9CiAKKy8qCisgKiBJbXBsZW1lbnQgRkRXIENPTk5FQ1RJT04gY2xhdXNlLgorICovCitQ R19GVU5DVElPTl9JTkZPX1YxKGRibGlua19mZHdfY29ubmVjdGlvbik7CitEYXR1bQorZGJsaW5r X2Zkd19jb25uZWN0aW9uKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJT2lkCQkJdXNlcmlkID0gUEdf R0VUQVJHX09JRCgwKTsKKwlPaWQJCQlzZXJ2ZXJpZCA9IFBHX0dFVEFSR19PSUQoMSk7CisJRm9y ZWlnblNlcnZlciAqZm9yZWlnbl9zZXJ2ZXIgPSBHZXRGb3JlaWduU2VydmVyKHNlcnZlcmlkKTsK KwlVc2VyTWFwcGluZyAqdXNlcl9tYXBwaW5nID0gR2V0VXNlck1hcHBpbmcodXNlcmlkLCBzZXJ2 ZXJpZCk7CisJRm9yZWlnbkRhdGFXcmFwcGVyICpmZHcgPSBHZXRGb3JlaWduRGF0YVdyYXBwZXIo Zm9yZWlnbl9zZXJ2ZXItPmZkd2lkKTsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCUxpc3RDZWxs ICAgKmNlbGw7CisJU3RyaW5nSW5mb0RhdGEgYnVmOworCisJc3RhdGljIGNvbnN0IFBRY29ubmlu Zm9PcHRpb24gKm9wdGlvbnMgPSBOVUxMOworCisJaW5pdFN0cmluZ0luZm8oJmJ1Zik7CisKKwkv KgorCSAqIEdldCBsaXN0IG9mIHZhbGlkIGxpYnBxIG9wdGlvbnMuCisJICoKKwkgKiBUbyBhdm9p ZCB1bm5lY2Vzc2FyeSB3b3JrLCB3ZSBnZXQgdGhlIGxpc3Qgb25jZSBhbmQgdXNlIGl0IHRocm91 Z2hvdXQKKwkgKiB0aGUgbGlmZXRpbWUgb2YgdGhpcyBiYWNrZW5kIHByb2Nlc3MuICBXZSBkb24n dCBuZWVkIHRvIGNhcmUgYWJvdXQKKwkgKiBtZW1vcnkgY29udGV4dCBpc3N1ZXMsIGJlY2F1c2Ug UFFjb25uZGVmYXVsdHMgYWxsb2NhdGVzIHdpdGggbWFsbG9jLgorCSAqLworCWlmICghb3B0aW9u cykKKwl7CisJCW9wdGlvbnMgPSBQUWNvbm5kZWZhdWx0cygpOworCQlpZiAoIW9wdGlvbnMpCQkJ LyogYXNzdW1lIHJlYXNvbiBmb3IgZmFpbHVyZSBpcyBPT00gKi8KKwkJCWVyZXBvcnQoRVJST1Is CisJCQkJCShlcnJjb2RlKEVSUkNPREVfRkRXX09VVF9PRl9NRU1PUlkpLAorCQkJCQkgZXJybXNn KCJvdXQgb2YgbWVtb3J5IiksCisJCQkJCSBlcnJkZXRhaWwoIkNvdWxkIG5vdCBnZXQgbGlicHEn cyBkZWZhdWx0IGNvbm5lY3Rpb24gb3B0aW9ucy4iKSkpOworCX0KKworCS8qIENoZWNrIHBlcm1p c3Npb25zLCB1c2VyIG11c3QgaGF2ZSB1c2FnZSBvbiB0aGUgc2VydmVyLiAqLworCWFjbHJlc3Vs dCA9IG9iamVjdF9hY2xjaGVjayhGb3JlaWduU2VydmVyUmVsYXRpb25JZCwgc2VydmVyaWQsIHVz ZXJpZCwgQUNMX1VTQUdFKTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQlhY2xj aGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9GT1JFSUdOX1NFUlZFUiwgZm9yZWlnbl9zZXJ2 ZXItPnNlcnZlcm5hbWUpOworCisJLyoKKwkgKiBGaXJzdCBhcHBlbmQgaGFyZGNvZGVkIG9wdGlv bnMgbmVlZGVkIGZvciBTQ1JBTSBwYXNzLXRocm91Z2gsIHNvIGlmIHRoZQorCSAqIHVzZXIgb3Zl cndyaXRlcyB0aGVzZSBvcHRpb25zIHdlIGNhbiBlcmVwb3J0IG9uIGRibGlua19jb25uc3RyX2No ZWNrCisJICogYW5kIGRibGlua19zZWN1cml0eV9jaGVjay4KKwkgKi8KKwlpZiAoTXlQcm9jUG9y dCAhPSBOVUxMICYmIE15UHJvY1BvcnQtPmhhc19zY3JhbV9rZXlzICYmIFVzZVNjcmFtUGFzc3Ro cm91Z2goZm9yZWlnbl9zZXJ2ZXIsIHVzZXJfbWFwcGluZykpCisJCWFwcGVuZFNDUkFNS2V5c0lu Zm8oJmJ1Zik7CisKKwlmb3JlYWNoKGNlbGwsIGZkdy0+b3B0aW9ucykKKwl7CisJCURlZkVsZW0g ICAgKmRlZiA9IGxmaXJzdChjZWxsKTsKKworCQlpZiAoaXNfdmFsaWRfZGJsaW5rX29wdGlvbihv cHRpb25zLCBkZWYtPmRlZm5hbWUsIEZvcmVpZ25EYXRhV3JhcHBlclJlbGF0aW9uSWQpKQorCQkJ YXBwZW5kU3RyaW5nSW5mbygmYnVmLCAiJXM9JyVzJyAiLCBkZWYtPmRlZm5hbWUsCisJCQkJCQkJ IGVzY2FwZV9wYXJhbV9zdHIoc3RyVmFsKGRlZi0+YXJnKSkpOworCX0KKworCWZvcmVhY2goY2Vs bCwgZm9yZWlnbl9zZXJ2ZXItPm9wdGlvbnMpCisJeworCQlEZWZFbGVtICAgICpkZWYgPSBsZmly c3QoY2VsbCk7CisKKwkJaWYgKGlzX3ZhbGlkX2RibGlua19vcHRpb24ob3B0aW9ucywgZGVmLT5k ZWZuYW1lLCBGb3JlaWduU2VydmVyUmVsYXRpb25JZCkpCisJCQlhcHBlbmRTdHJpbmdJbmZvKCZi dWYsICIlcz0nJXMnICIsIGRlZi0+ZGVmbmFtZSwKKwkJCQkJCQkgZXNjYXBlX3BhcmFtX3N0cihz dHJWYWwoZGVmLT5hcmcpKSk7CisJfQorCisJZm9yZWFjaChjZWxsLCB1c2VyX21hcHBpbmctPm9w dGlvbnMpCisJeworCisJCURlZkVsZW0gICAgKmRlZiA9IGxmaXJzdChjZWxsKTsKKworCQlpZiAo aXNfdmFsaWRfZGJsaW5rX29wdGlvbihvcHRpb25zLCBkZWYtPmRlZm5hbWUsIFVzZXJNYXBwaW5n UmVsYXRpb25JZCkpCisJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWYsICIlcz0nJXMnICIsIGRlZi0+ ZGVmbmFtZSwKKwkJCQkJCQkgZXNjYXBlX3BhcmFtX3N0cihzdHJWYWwoZGVmLT5hcmcpKSk7CisJ fQorCisJUEdfUkVUVVJOX1RFWFRfUChjc3RyaW5nX3RvX3RleHQoYnVmLmRhdGEpKTsKK30KKwog CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgogICogaW50ZXJuYWwgZnVuY3Rpb25zCkBAIC0yODU1LDkzICsyOTM2LDE3IEBAIHN0 YXRpYyBjaGFyICoKIGdldF9jb25uZWN0X3N0cmluZyhjb25zdCBjaGFyICpzZXJ2ZXJuYW1lKQog ewogCUZvcmVpZ25TZXJ2ZXIgKmZvcmVpZ25fc2VydmVyID0gTlVMTDsKLQlVc2VyTWFwcGluZyAq dXNlcl9tYXBwaW5nOwotCUxpc3RDZWxsICAgKmNlbGw7Ci0JU3RyaW5nSW5mb0RhdGEgYnVmOwot CUZvcmVpZ25EYXRhV3JhcHBlciAqZmR3OwotCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CiAJY2hhcgkg ICAqc3J2bmFtZTsKIAotCXN0YXRpYyBjb25zdCBQUWNvbm5pbmZvT3B0aW9uICpvcHRpb25zID0g TlVMTDsKLQotCWluaXRTdHJpbmdJbmZvKCZidWYpOwotCi0JLyoKLQkgKiBHZXQgbGlzdCBvZiB2 YWxpZCBsaWJwcSBvcHRpb25zLgotCSAqCi0JICogVG8gYXZvaWQgdW5uZWNlc3Nhcnkgd29yaywg d2UgZ2V0IHRoZSBsaXN0IG9uY2UgYW5kIHVzZSBpdCB0aHJvdWdob3V0Ci0JICogdGhlIGxpZmV0 aW1lIG9mIHRoaXMgYmFja2VuZCBwcm9jZXNzLiAgV2UgZG9uJ3QgbmVlZCB0byBjYXJlIGFib3V0 Ci0JICogbWVtb3J5IGNvbnRleHQgaXNzdWVzLCBiZWNhdXNlIFBRY29ubmRlZmF1bHRzIGFsbG9j YXRlcyB3aXRoIG1hbGxvYy4KLQkgKi8KLQlpZiAoIW9wdGlvbnMpCi0JewotCQlvcHRpb25zID0g UFFjb25uZGVmYXVsdHMoKTsKLQkJaWYgKCFvcHRpb25zKQkJCS8qIGFzc3VtZSByZWFzb24gZm9y IGZhaWx1cmUgaXMgT09NICovCi0JCQllcmVwb3J0KEVSUk9SLAotCQkJCQkoZXJyY29kZShFUlJD T0RFX0ZEV19PVVRfT0ZfTUVNT1JZKSwKLQkJCQkJIGVycm1zZygib3V0IG9mIG1lbW9yeSIpLAot CQkJCQkgZXJyZGV0YWlsKCJDb3VsZCBub3QgZ2V0IGxpYnBxJ3MgZGVmYXVsdCBjb25uZWN0aW9u IG9wdGlvbnMuIikpKTsKLQl9Ci0KIAkvKiBmaXJzdCBnYXRoZXIgdGhlIHNlcnZlciBjb25uc3Ry IG9wdGlvbnMgKi8KIAlzcnZuYW1lID0gcHN0cmR1cChzZXJ2ZXJuYW1lKTsKIAl0cnVuY2F0ZV9p ZGVudGlmaWVyKHNydm5hbWUsIHN0cmxlbihzcnZuYW1lKSwgZmFsc2UpOwogCWZvcmVpZ25fc2Vy dmVyID0gR2V0Rm9yZWlnblNlcnZlckJ5TmFtZShzcnZuYW1lLCB0cnVlKTsKIAotCWlmIChmb3Jl aWduX3NlcnZlcikKLQl7Ci0JCU9pZAkJCXNlcnZlcmlkID0gZm9yZWlnbl9zZXJ2ZXItPnNlcnZl cmlkOwotCQlPaWQJCQlmZHdpZCA9IGZvcmVpZ25fc2VydmVyLT5mZHdpZDsKLQkJT2lkCQkJdXNl cmlkID0gR2V0VXNlcklkKCk7Ci0KLQkJdXNlcl9tYXBwaW5nID0gR2V0VXNlck1hcHBpbmcodXNl cmlkLCBzZXJ2ZXJpZCk7Ci0JCWZkdyA9IEdldEZvcmVpZ25EYXRhV3JhcHBlcihmZHdpZCk7Ci0K LQkJLyogQ2hlY2sgcGVybWlzc2lvbnMsIHVzZXIgbXVzdCBoYXZlIHVzYWdlIG9uIHRoZSBzZXJ2 ZXIuICovCi0JCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhGb3JlaWduU2VydmVyUmVsYXRp b25JZCwgc2VydmVyaWQsIHVzZXJpZCwgQUNMX1VTQUdFKTsKLQkJaWYgKGFjbHJlc3VsdCAhPSBB Q0xDSEVDS19PSykKLQkJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX0ZPUkVJR05f U0VSVkVSLCBmb3JlaWduX3NlcnZlci0+c2VydmVybmFtZSk7Ci0KLQkJLyoKLQkJICogRmlyc3Qg YXBwZW5kIGhhcmRjb2RlZCBvcHRpb25zIG5lZWRlZCBmb3IgU0NSQU0gcGFzcy10aHJvdWdoLCBz byBpZgotCQkgKiB0aGUgdXNlciBvdmVyd3JpdGVzIHRoZXNlIG9wdGlvbnMgd2UgY2FuIGVyZXBv cnQgb24KLQkJICogZGJsaW5rX2Nvbm5zdHJfY2hlY2sgYW5kIGRibGlua19zZWN1cml0eV9jaGVj ay4KLQkJICovCi0JCWlmIChNeVByb2NQb3J0ICE9IE5VTEwgJiYgTXlQcm9jUG9ydC0+aGFzX3Nj cmFtX2tleXMgJiYgVXNlU2NyYW1QYXNzdGhyb3VnaChmb3JlaWduX3NlcnZlciwgdXNlcl9tYXBw aW5nKSkKLQkJCWFwcGVuZFNDUkFNS2V5c0luZm8oJmJ1Zik7Ci0KLQkJZm9yZWFjaChjZWxsLCBm ZHctPm9wdGlvbnMpCi0JCXsKLQkJCURlZkVsZW0gICAgKmRlZiA9IGxmaXJzdChjZWxsKTsKLQot CQkJaWYgKGlzX3ZhbGlkX2RibGlua19vcHRpb24ob3B0aW9ucywgZGVmLT5kZWZuYW1lLCBGb3Jl aWduRGF0YVdyYXBwZXJSZWxhdGlvbklkKSkKLQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWYsICIl cz0nJXMnICIsIGRlZi0+ZGVmbmFtZSwKLQkJCQkJCQkJIGVzY2FwZV9wYXJhbV9zdHIoc3RyVmFs KGRlZi0+YXJnKSkpOwotCQl9Ci0KLQkJZm9yZWFjaChjZWxsLCBmb3JlaWduX3NlcnZlci0+b3B0 aW9ucykKLQkJewotCQkJRGVmRWxlbSAgICAqZGVmID0gbGZpcnN0KGNlbGwpOwotCi0JCQlpZiAo aXNfdmFsaWRfZGJsaW5rX29wdGlvbihvcHRpb25zLCBkZWYtPmRlZm5hbWUsIEZvcmVpZ25TZXJ2 ZXJSZWxhdGlvbklkKSkKLQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWYsICIlcz0nJXMnICIsIGRl Zi0+ZGVmbmFtZSwKLQkJCQkJCQkJIGVzY2FwZV9wYXJhbV9zdHIoc3RyVmFsKGRlZi0+YXJnKSkp OwotCQl9Ci0KLQkJZm9yZWFjaChjZWxsLCB1c2VyX21hcHBpbmctPm9wdGlvbnMpCi0JCXsKLQot CQkJRGVmRWxlbSAgICAqZGVmID0gbGZpcnN0KGNlbGwpOwotCi0JCQlpZiAoaXNfdmFsaWRfZGJs aW5rX29wdGlvbihvcHRpb25zLCBkZWYtPmRlZm5hbWUsIFVzZXJNYXBwaW5nUmVsYXRpb25JZCkp Ci0JCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmLCAiJXM9JyVzJyAiLCBkZWYtPmRlZm5hbWUsCi0J CQkJCQkJCSBlc2NhcGVfcGFyYW1fc3RyKHN0clZhbChkZWYtPmFyZykpKTsKLQkJfQotCi0JCXJl dHVybiBidWYuZGF0YTsKLQl9Ci0JZWxzZQorCWlmICghZm9yZWlnbl9zZXJ2ZXIpCiAJCXJldHVy biBOVUxMOworCisJcmV0dXJuIEZvcmVpZ25TZXJ2ZXJDb25uZWN0aW9uU3RyaW5nKEdldFVzZXJJ ZCgpLCBmb3JlaWduX3NlcnZlci0+c2VydmVyaWQpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvY29u dHJpYi9kYmxpbmsvZGJsaW5rLmNvbnRyb2wgYi9jb250cmliL2RibGluay9kYmxpbmsuY29udHJv bAppbmRleCBiZGQxN2QyOGE0Yi4uODE2ZDE5ZjQ0ODMgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvZGJs aW5rL2RibGluay5jb250cm9sCisrKyBiL2NvbnRyaWIvZGJsaW5rL2RibGluay5jb250cm9sCkBA IC0xLDUgKzEsNSBAQAogIyBkYmxpbmsgZXh0ZW5zaW9uCiBjb21tZW50ID0gJ2Nvbm5lY3QgdG8g b3RoZXIgUG9zdGdyZVNRTCBkYXRhYmFzZXMgZnJvbSB3aXRoaW4gYSBkYXRhYmFzZScKLWRlZmF1 bHRfdmVyc2lvbiA9ICcxLjInCitkZWZhdWx0X3ZlcnNpb24gPSAnMS4zJwogbW9kdWxlX3BhdGhu YW1lID0gJyRsaWJkaXIvZGJsaW5rJwogcmVsb2NhdGFibGUgPSB0cnVlCmRpZmYgLS1naXQgYS9j b250cmliL2RibGluay9tZXNvbi5idWlsZCBiL2NvbnRyaWIvZGJsaW5rL21lc29uLmJ1aWxkCmlu ZGV4IGUyNDg5ZjQxMjI5Li5mYzkxYjRhOTE4ZCAxMDA2NDQKLS0tIGEvY29udHJpYi9kYmxpbmsv bWVzb24uYnVpbGQKKysrIGIvY29udHJpYi9kYmxpbmsvbWVzb24uYnVpbGQKQEAgLTIyLDcgKzIy LDggQEAgaW5zdGFsbF9kYXRhKAogICAnZGJsaW5rLmNvbnRyb2wnLAogICAnZGJsaW5rLS0xLjAt LTEuMS5zcWwnLAogICAnZGJsaW5rLS0xLjEtLTEuMi5zcWwnLAotICAnZGJsaW5rLS0xLjIuc3Fs JywKKyAgJ2RibGluay0tMS4yLS0xLjMuc3FsJywKKyAgJ2RibGluay0tMS4zLnNxbCcsCiAgIGt3 YXJnczogY29udHJpYl9kYXRhX2FyZ3MsCiApCiAKLS0gCjIuNDMuMAoK --=-6NTljot0yymdvRct5Dn6--