Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1gP3sY-000734-2w for pgsql-hackers@arkaria.postgresql.org; Tue, 20 Nov 2018 11:07:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1gP3sW-0003zD-K8 for pgsql-hackers@arkaria.postgresql.org; Tue, 20 Nov 2018 11:07:36 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1gP3sU-0003z4-Si for pgsql-hackers@lists.postgresql.org; Tue, 20 Nov 2018 11:07:36 +0000 Received: from wout2-smtp.messagingengine.com ([64.147.123.25]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1gP3sE-0000Jz-Ku for pgsql-hackers@postgresql.org; Tue, 20 Nov 2018 11:07:33 +0000 Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.west.internal (Postfix) with ESMTP id 99ECF962; Tue, 20 Nov 2018 06:07:16 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute7.internal (MEProxy); Tue, 20 Nov 2018 06:07:16 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=gy8OKk kqnszrw/LRyq9f4IzT4V6Cl+TO9EXbmgGZnhw=; b=qkjpZHruoBfF/W0t8JpQ1c TvSZEdMTI4K7LJeGkias7cK9h/joy5UOd7ac0Vmt52ofnNO4bNVm5VuiS4PKfn/S 3KY1enAzUcM6KGMDoTIBWo8N/jBd1cfxHJBd/oyXE6VABay6hn3k9ysLmfM9tZut YvR1CRhYW+t+Aks+QY9/aiIhWsL2oaaqs9vnDAjvwtdNACMFB7yni6NgwDdgUTjg Kd1NpQYrqdgC6SmfTSphfyvysnGRA19FmL8zn2jNpUnqbu6GGRTkXM33yjoTR+hp jufpAwVvE4TrnPkNJcDQvzofiz8VkPBcLb9pGRBfWS8W0KP2sxQ6ltHsBvBKWmlw == X-ME-Sender: X-ME-Proxy: Received: from april.pezone.net (p5df34ab1.dip0.t-ipconnect.de [93.243.74.177]) by mail.messagingengine.com (Postfix) with ESMTPA id D4490E491E; Tue, 20 Nov 2018 06:07:13 -0500 (EST) Subject: Re: Continue work on changes to recovery.conf API To: Sergei Kornilov References: <607741529606767@web3g.yandex.ru> <594281529606887@web2j.yandex.ru> <3595211530445522@web17o.yandex.ru> <64b6e400-74fa-3b30-5bcf-4d6a1facbf27@2ndquadrant.com> <1312381535557435@iva1-a2ffb02749cf.qloud-c.yandex.net> <22e02b05-cd56-6a6b-962d-6d35995827a5@2ndquadrant.com> <1876591538256580@iva1-5148b5385b62.qloud-c.yandex.net> <943181539360922@iva4-24c534b4e3ac.qloud-c.yandex.net> <32159921540906216@myt5-9da6df248f4a.qloud-c.yandex.net> <51a6446c-c2b6-b653-c9f5-da38e23ddd9d@2ndquadrant.com> <22367601542121030@iva5-d3020dc3459d.qloud-c.yandex.net> Cc: PostgreSQL mailing lists From: Peter Eisentraut Openpgp: preference=signencrypt Autocrypt: addr=peter.eisentraut@2ndquadrant.com; prefer-encrypt=mutual; keydata= xsFNBFUUt6kBEADZd9NNTBJbHmAXXJgPGOdd6Q73l80oifIVgn2tRxP9dYkCfTlo/yLqbKTl JNqTcyM6XrJDnB2sMEUGYCewYZXl+9C4bBJWyNqcEI1ae9u71vEq/fknFLArJ+2wN+f7QuRx Q8d94ZJAiJQ5g3fNk2HVeedCQCKP5dCzU+ZLt2dbsx1PDZLjTO9gf+JswWuGFb5wY5PZVM5V hq66Xk7ZJzHuARacza2RT7J2fkMmQBY+kr7L98Perb0GhafnlhXB0PvUB+N3xpmggMfwuhTu BngS/G/r3GvemxJuFxouw8xsMqrsfdksJXA2gLXYtwRCssdPV3PO0rlD9twqDo8URfIJ5fb6 1g/MV8aTOKjg3Q8MpJPtkwJqN4o3PvbwYdedeFnOVkkYAJdu/aX1v1BeCBDu7Hy3sF52scD3 pQbyQSl9vUDpTLarASAxNbAV0NRJE8dp4vfW6AH1ccryGiFqw/czPK/iN0+MT8wsjAW6WW4w hvjm5UPA1KTwi3ZT8eT5uycuH7QpuNk7LnGGXQ6KaRALFywzkr0A0V0AvFNa+l4wstMaXaB6 dmMXyF0/hfryqyOeu1gAdq4q0/PNC2dPgb/6uoh4eMjN6A5GXcprilhz5DulmsilY21hfSoU S64ODed96pKhprsOxjZiDRsN1QM5MwB+uwVWUNfsX7fIxE0BrwARAQABzSdQZXRlciBFaXNl bnRyYXV0IDxwZXRlckBlaXNlbnRyYXV0Lm9yZz7CwXoEEwEIACQCGwMFCwkIBwMFFQoJCAsF FgIDAQACHgECF4AFAlUUuKQCGQEACgkQoZ8SQ+xBJp8llw//RbGoXnF72FZTlOFsnNyxnWbF vViPCfdAlZl1GGK9OYCvV1dp/956HuhB0wpaGQHiBmQfOPJf/jLOPjXFYm2iEChEycrBChuE j4TSYemMp5BSPILYk9Uwd16kVD/+U6fQfK6H5pOhfBvbM6asMnmpY2wQuvktxHvaGlytFw84 EzFWNZtAZfxkw28w3AhIQkKe9hJanfyDL750RcbyEr8AAHty5IErrvS7tM5vQwIeh5BF26ND CyKPRdZgOgMpcwFfROKBDpAt052CgWIpNdhBdfIKlkCs4/ILxmC3rT/Mb/qZiHcoMMwEu6k+ T7vRAFZZAk62Yrr/U8/vUGKlzRZQoo86fyojCfI0ibCIc0z8rwCVY9P40G9wD9BTCZS/z8Vh jjpBlNnIKw2hM6hbxavKndCJjFFJD08rXrTyrLF/of18xD37vNdYooP9VATB5QjOWFRrscSZ 4a89e+to3m7YVnd4xdXwGp47dYusoax84C8tg1gZrH38ol9dPmnKX6GZrXeS7tH9k8VeUpJ8 HQbRThQRWAT936QpYbLConBmOtmbLmjQOGtiXPo1oK57X/7U/WBja5vWmm2q+Yxtt+3uHGVg DdDU4CJpXo4lX0v2n3QV5EBSW9hjdF3bNfl6GFBb1pPEhqNcMDUc7zkx/2uENdAdk/BnqMgH umip7b0pVfvOwU0EVRS3qQEQAJf6p0P7D+hMYUgCPkvgrcz6OJYsAYdUMUmokfqmkKwK0oJM ew8TNGM53ocKAgQGma5f10rwbZNPlpVPNRX5hwUmwVlcwSut0oE+JfUBH7mpysWvpF05RKIy q9RCoJZrAbXS7Tig56A1QD8IcM00rERZMcCOlI1+q9m4u9AOI+0LyGGSH+VvoyDHD/Jew4R2 TmPEF8Pu7lYiNYK88Q6u0kBkc+Tz3BNlyc6fi3HxnFfp0b75HLXPSTu2SwA/0Q31wHZXwrEU BR9KgSn/qbgy8ydPc97i82fhiFE3cbGexfPrQSMYmDGi+dcQ0s+AMQwC3XyMC0JkHpYUuFkR QdlIvaIhgFUUN2Vr4xF2ADaNTNFc4DYaiPHFAgHZw+3pZWqS4uIiWgJynrEaHw4F3QWU8/JB iyEWDhNq4WBrRA0u914TCCAoFOOKMnRdl8eJrRQKM/5/lXbHFjjlI/LDKhLRFsuQsnJJ3331 RjCzpHPZG5/p5KR1RHiAXa0p/DW5lXyq21hS3kjDlleoHqOxCN/cy0Jgz7qLDq1vZoCl67Sy RAH60c2Xu4may9SVltmot0OzWVHdrfS+85FQGp9580DaeLio7YMFKy2bfEvwQJ/c9xD2QPB+ oSb3V8ueSznXBG5+dyfOsZFRPxceA0wA2rSWZSjxLdKxvyGTj9vsCjaDu13rABEBAAHCwV8E GAEIAAkFAlUUt6kCGwwACgkQoZ8SQ+xBJp+HJhAAxmSTsC5y7p9Zu+nnLpucv/h88oEx985e qWeXzQiwM3pfRZS+PdTH9TyzHK0KOgKoAiubk0vt+BrT91D9d0G5kVQaTctAErGBoMkTaZJT XVEcNphiPzysdSqvprjojMp1y7rG8AP+Xd6m0rE1LRnkRRm8HyI8vdXsuLQPITGWXDLMjaNq AOV3BUnzkgtjMuIYw7SCr+12ZOb5dEKvaG4kjC4kaJ/TLbuBhVANcXkC90yp0AOZLs/cB1Dj OAXno/RUUruJ3r27a+pFv768UAi9QWcdw58yPxreMNMLqAgsS9oTHwHfGNWcB2dJ4UW+GMLJ hTf9TjQ2f+N/sIx5XMQ9pYw6CAJMK29qPx6/ZayrPxf22EXf0D3zTwIEZgwfSkynFVwV25L7 awQq60fifdMYheSxq7GbhpsixmcD+e161cCmLIt75YDt5bQ0B1yf7EmxG8n7pGZAOM6LoNsU fkSldba5XVwh8LuN5mK0nQBELGW6Os4TDq4REggLpfcvFC215zpuo0iCGnmE/Bns4nowqUSP u4tkWL+nxW4qgv8wo8HJ52jd79EJ8iqfIBoidBfy9AIUiEUApGQzWPu6yWcI8fY0rN5D+tc+ Yw1Zt6Mm+huYJpgCRsTcfzEcahnBn521CWcWvhW1ff3KFileFMtNmnBBhMncmRKHphtTKEpN 3jI= Organization: 2ndQuadrant Message-ID: <2d1877b6-e8cf-a27c-4608-c40758dd0f6c@2ndquadrant.com> Date: Tue, 20 Nov 2018 12:07:12 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <22367601542121030@iva5-d3020dc3459d.qloud-c.yandex.net> Content-Type: multipart/mixed; boundary="------------C151D37EEEA85442D5DF056B" Content-Language: en-US List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------C151D37EEEA85442D5DF056B Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit On 13/11/2018 15:57, Sergei Kornilov wrote: > Thank you! Here is patch update addressing your comments. I went over the patch and did a bunch of small refinements. I have also updated the documentation more extensively. The attached patch is committable to me. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services --------------C151D37EEEA85442D5DF056B Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="v7-0001-Integrate-recovery.conf-into-postgresql.conf.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v7-0001-Integrate-recovery.conf-into-postgresql.conf.patch" RnJvbSAzZDViYTc0MTMzMTgzOWQ1OGU3YjViN2RiM2UxODlmMTE5Y2RjY2JlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlcl9lQGdteC5u ZXQ+CkRhdGU6IFR1ZSwgMjAgTm92IDIwMTggMTE6MzM6MzEgKzAxMDAKU3ViamVjdDogW1BB VENIIHY3XSBJbnRlZ3JhdGUgcmVjb3ZlcnkuY29uZiBpbnRvIHBvc3RncmVzcWwuY29uZgoK cmVjb3ZlcnkuY29uZiBzZXR0aW5ncyBhcmUgbm93IHNldCBpbiBwb3N0Z3Jlc3FsLmNvbmYg KG9yIG90aGVyIEdVQwpzb3VyY2VzKS4gIEN1cnJlbnRseSwgYWxsIHRoZSBhZmZlY3RlZCBz ZXR0aW5ncyBhcmUgUEdDX1BPU1RNQVNURVI7CnRoaXMgY291bGQgYmUgcmVmaW5lZCBpbiB0 aGUgZnV0dXJlIGNhc2UgYnkgY2FzZS4KClJlY292ZXJ5IGlzIG5vdyBpbml0aWF0ZWQgYnkg YSBmaWxlIHJlY292ZXJ5LnNpZ25hbC4gIFN0YW5kYnkgbW9kZSBpcwppbml0aWF0ZWQgYnkg YSBmaWxlIHN0YW5kYnkuc2lnbmFsLiAgVGhlIHN0YW5kYnlfbW9kZSBzZXR0aW5nIGlzCmdv bmUuICBJZiBhIHJlY292ZXJ5LmNvbmYgZmlsZSBpcyBmb3VuZCwgYW4gZXJyb3IgaXMgaXNz dWVkLgoKVGhlIHRyaWdnZXJfZmlsZSBzZXR0aW5nIGhhcyBiZWVuIHJlbmFtZWQgdG8gcHJv bW90ZV90cmlnZ2VyX2ZpbGUgYXMKcGFydCBvZiB0aGUgbW92ZS4KClRoZSBkb2N1bWVudGF0 aW9uIGNoYXB0ZXIgIlJlY292ZXJ5IENvbmZpZ3VyYXRpb24iIGhhcyBiZWVuIGludGVncmF0 ZWQKaW50byAiU2VydmVyIENvbmZpZ3VyYXRpb24iLgoKcGdfYmFzZWJhY2t1cCAtUiBub3cg YXBwZW5kcyBzZXR0aW5ncyB0byBwb3N0Z3Jlc3FsLmF1dG8uY29uZiBhbmQKY3JlYXRlcyBh IHN0YW5kYnkuc2lnbmFsIGZpbGUuCgpBdXRob3I6IFNpbW9uIFJpZ2dzIDxzaW1vbkAybmRx dWFkcmFudC5jb20+CkF1dGhvcjogQWJoaWppdCBNZW5vbi1TZW4gPGFtc0AybmRxdWFkcmFu dC5jb20+CkF1dGhvcjogU2VyZ2VpIEtvcm5pbG92IDxza0B6c3J2Lm9yZz4KRGlzY3Vzc2lv bjogaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC9mbGF0LzYwNzc0MTUy OTYwNjc2N0B3ZWIzZy55YW5kZXgucnUvCi0tLQogY29udHJpYi9wZ19zdGFuZGJ5L3BnX3N0 YW5kYnkuYyAgICAgICAgICAgICAgIHwgICAyICstCiBkb2Mvc3JjL3NnbWwvYmFja3VwLnNn bWwgICAgICAgICAgICAgICAgICAgICAgfCAgMjIgKy0KIGRvYy9zcmMvc2dtbC9jb25maWcu c2dtbCAgICAgICAgICAgICAgICAgICAgICB8IDUxNSArKysrKysrKysrKysrKysrKy0KIGRv Yy9zcmMvc2dtbC9maWxlbGlzdC5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAgMSAtCiBk b2Mvc3JjL3NnbWwvZnVuYy5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IGRvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21sICAgICAgICAgICB8ICA2MCAr LQogZG9jL3NyYy9zZ21sL3Bnc3RhbmRieS5zZ21sICAgICAgICAgICAgICAgICAgIHwgICAy ICstCiBkb2Mvc3JjL3NnbWwvcG9zdGdyZXMuc2dtbCAgICAgICAgICAgICAgICAgICAgfCAg IDEgLQogZG9jL3NyYy9zZ21sL3JlY292ZXJ5LWNvbmZpZy5zZ21sICAgICAgICAgICAgIHwg NTEwIC0tLS0tLS0tLS0tLS0tLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3BnX2Jhc2ViYWNrdXAu c2dtbCAgICAgICAgICAgfCAgIDcgKy0KIGRvYy9zcmMvc2dtbC9yZWYvcGdfcmV3aW5kLnNn bWwgICAgICAgICAgICAgICB8ICAgOCArLQogZG9jL3NyYy9zZ21sL3JlZi9wZ2FyY2hpdmVj bGVhbnVwLnNnbWwgICAgICAgIHwgICA0ICstCiBkb2Mvc3JjL3NnbWwvcmVmL3BndXBncmFk ZS5zZ21sICAgICAgICAgICAgICAgfCAgIDIgKy0KIGRvYy9zcmMvc2dtbC9yZWxlYXNlLTEw LnNnbWwgICAgICAgICAgICAgICAgICB8ICAgMiArLQogZG9jL3NyYy9zZ21sL3JlbGVhc2Ut OS4xLnNnbWwgICAgICAgICAgICAgICAgIHwgICA1ICstCiBkb2Mvc3JjL3NnbWwvcmVsZWFz ZS05LjQuc2dtbCAgICAgICAgICAgICAgICAgfCAgMTUgKy0KIGRvYy9zcmMvc2dtbC9yZWxl YXNlLTkuNS5zZ21sICAgICAgICAgICAgICAgICB8ICAgOCArLQogZG9jL3NyYy9zZ21sL3Jl bGVhc2Uuc2dtbCAgICAgICAgICAgICAgICAgICAgIHwgICAzICstCiBzcmMvYmFja2VuZC9N YWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIC4uLi9hY2Nlc3Mv dHJhbnNhbS9yZWNvdmVyeS5jb25mLnNhbXBsZSAgICAgICB8IDE1OCAtLS0tLS0KIHNyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyAgICAgICAgICAgICB8IDUwMCArKysrKyst LS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ2FyY2hpdmUuYyAg ICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9leHRlbnNpb24uYyAgICAgICAg ICAgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMgICAgICAgICAg ICAgICAgICB8IDQyMSArKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9w b3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIHwgIDQ3ICsrCiBzcmMvYmluL3BnX2FyY2hpdmVjbGVh bnVwL3BnX2FyY2hpdmVjbGVhbnVwLmMgfCAgIDIgKy0KIHNyYy9iaW4vcGdfYmFzZWJhY2t1 cC9wZ19iYXNlYmFja3VwLmMgICAgICAgICB8IDE0OCArKystLQogc3JjL2Jpbi9wZ19iYXNl YmFja3VwL3QvMDEwX3BnX2Jhc2ViYWNrdXAucGwgIHwgIDE1ICstCiBzcmMvYmluL3BnX3Jl d2luZC9SZXdpbmRUZXN0LnBtICAgICAgICAgICAgICAgfCAgMTAgKy0KIHNyYy9pbmNsdWRl L2FjY2Vzcy94bG9nLmggICAgICAgICAgICAgICAgICAgICB8ICAzOSArLQogc3JjL2luY2x1 ZGUvdXRpbHMvZ3VjX3RhYmxlcy5oICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9wb3J0 L3F1b3Rlcy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjL3Rl c3QvcGVybC9Qb3N0Z3Jlc05vZGUucG0gICAgICAgICAgICAgICAgIHwgIDI2ICstCiBzcmMv dGVzdC9yZWNvdmVyeS90LzAwMV9zdHJlYW1fcmVwLnBsICAgICAgICAgfCAgIDQgKy0KIHNy Yy90ZXN0L3JlY292ZXJ5L3QvMDAzX3JlY292ZXJ5X3RhcmdldHMucGwgICB8ICAgMiArLQog c3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMDRfdGltZWxpbmVfc3dpdGNoLnBsICAgIHwgICA0ICst CiBzcmMvdGVzdC9yZWNvdmVyeS90LzAwNV9yZXBsYXlfZGVsYXkucGwgICAgICAgfCAgIDIg Ky0KIHNyYy90ZXN0L3JlY292ZXJ5L3QvMDA5X3R3b3BoYXNlLnBsICAgICAgICAgICB8ICAg NiArLQogLi4uL3QvMDEwX2xvZ2ljYWxfZGVjb2RpbmdfdGltZWxpbmVzLnBsICAgICAgIHwg ICAyICstCiBzcmMvdGVzdC9yZWNvdmVyeS90LzAxMl9zdWJ0cmFuc2FjdGlvbnMucGwgICAg fCAgIDYgKy0KIDQwIGZpbGVzIGNoYW5nZWQsIDE0MDQgaW5zZXJ0aW9ucygrKSwgMTE3MyBk ZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVjb3Zlcnkt Y29uZmlnLnNnbWwKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9hY2Nlc3MvdHJh bnNhbS9yZWNvdmVyeS5jb25mLnNhbXBsZQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc3Rh bmRieS9wZ19zdGFuZGJ5LmMgYi9jb250cmliL3BnX3N0YW5kYnkvcGdfc3RhbmRieS5jCmlu ZGV4IGVlMWZiZDdiMzMuLjk0NjIzOWMyYWMgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfc3Rh bmRieS9wZ19zdGFuZGJ5LmMKKysrIGIvY29udHJpYi9wZ19zdGFuZGJ5L3BnX3N0YW5kYnku YwpAQCAtNjExLDcgKzYxMSw3IEBAIHVzYWdlKHZvaWQpCiAJcHJpbnRmKCIgIC13IE1BWFdB SVRUSU1FICAgICBtYXggc2Vjb25kcyB0byB3YWl0IGZvciBhIGZpbGUgKDA9bm8gbGltaXQp IChkZWZhdWx0PTApXG4iKTsKIAlwcmludGYoIiAgLT8sIC0taGVscCAgICAgICAgIHNob3cg dGhpcyBoZWxwLCB0aGVuIGV4aXRcbiIpOwogCXByaW50ZigiXG4iCi0JCSAgICJNYWluIGlu dGVuZGVkIHVzZSBhcyByZXN0b3JlX2NvbW1hbmQgaW4gcmVjb3ZlcnkuY29uZjpcbiIKKwkJ ICAgIk1haW4gaW50ZW5kZWQgdXNlIGFzIHJlc3RvcmVfY29tbWFuZCBpbiBwb3N0Z3Jlc3Fs LmNvbmY6XG4iCiAJCSAgICIgIHJlc3RvcmVfY29tbWFuZCA9ICdwZ19zdGFuZGJ5IFtPUFRJ T05dLi4uIEFSQ0hJVkVMT0NBVElPTiAlJWYgJSVwICUlcidcbiIKIAkJICAgImUuZy5cbiIK IAkJICAgIiAgcmVzdG9yZV9jb21tYW5kID0gJ3BnX3N0YW5kYnkgL21udC9zZXJ2ZXIvYXJj aGl2ZXJkaXIgJSVmICUlcCAlJXInXG4iKTsKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9i YWNrdXAuc2dtbCBiL2RvYy9zcmMvc2dtbC9iYWNrdXAuc2dtbAppbmRleCAzZmE1ZWZkZDc4 Li5hNzNmZDRkMDQ0IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvYmFja3VwLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL2JhY2t1cC5zZ21sCkBAIC0xMjIwLDggKzEyMjAsMTEgQEAgPHRp dGxlPlJlY292ZXJpbmcgVXNpbmcgYSBDb250aW51b3VzIEFyY2hpdmUgQmFja3VwPC90aXRs ZT4KICAgIDwvbGlzdGl0ZW0+CiAgICA8bGlzdGl0ZW0+CiAgICAgPHBhcmE+Ci0gICAgIENy ZWF0ZSBhIHJlY292ZXJ5IGNvbW1hbmQgZmlsZSA8ZmlsZW5hbWU+cmVjb3ZlcnkuY29uZjwv ZmlsZW5hbWU+IGluIHRoZSBjbHVzdGVyCi0gICAgIGRhdGEgZGlyZWN0b3J5IChzZWUgPHhy ZWYgbGlua2VuZD0icmVjb3ZlcnktY29uZmlnIi8+KS4gWW91IG1pZ2h0CisgICAgIFNldCBy ZWNvdmVyeSBjb25maWd1cmF0aW9uIHNldHRpbmdzIGluCisgICAgIDxmaWxlbmFtZT5wb3N0 Z3Jlc3FsLmNvbmY8L2ZpbGVuYW1lPiAoc2VlIDx4cmVmCisgICAgIGxpbmtlbmQ9InJ1bnRp bWUtY29uZmlnLXdhbC1hcmNoaXZlLXJlY292ZXJ5Ii8+KSBhbmQgY3JlYXRlIGEgZmlsZQor ICAgICA8ZmlsZW5hbWU+cmVjb3Zlcnkuc2lnbmFsPC9maWxlbmFtZT4gaW4gdGhlIGNsdXN0 ZXIKKyAgICAgZGF0YSBkaXJlY3RvcnkuIFlvdSBtaWdodAogICAgICBhbHNvIHdhbnQgdG8g dGVtcG9yYXJpbHkgbW9kaWZ5IDxmaWxlbmFtZT5wZ19oYmEuY29uZjwvZmlsZW5hbWU+IHRv IHByZXZlbnQKICAgICAgb3JkaW5hcnkgdXNlcnMgZnJvbSBjb25uZWN0aW5nIHVudGlsIHlv dSBhcmUgc3VyZSB0aGUgcmVjb3Zlcnkgd2FzIHN1Y2Nlc3NmdWwuCiAgICAgPC9wYXJhPgpA QCAtMTIzMiw4ICsxMjM1LDggQEAgPHRpdGxlPlJlY292ZXJpbmcgVXNpbmcgYSBDb250aW51 b3VzIEFyY2hpdmUgQmFja3VwPC90aXRsZT4KICAgICAgcHJvY2VlZCB0byByZWFkIHRocm91 Z2ggdGhlIGFyY2hpdmVkIFdBTCBmaWxlcyBpdCBuZWVkcy4gIFNob3VsZCB0aGUKICAgICAg cmVjb3ZlcnkgYmUgdGVybWluYXRlZCBiZWNhdXNlIG9mIGFuIGV4dGVybmFsIGVycm9yLCB0 aGUgc2VydmVyIGNhbgogICAgICBzaW1wbHkgYmUgcmVzdGFydGVkIGFuZCBpdCB3aWxsIGNv bnRpbnVlIHJlY292ZXJ5LiAgVXBvbiBjb21wbGV0aW9uCi0gICAgIG9mIHRoZSByZWNvdmVy eSBwcm9jZXNzLCB0aGUgc2VydmVyIHdpbGwgcmVuYW1lCi0gICAgIDxmaWxlbmFtZT5yZWNv dmVyeS5jb25mPC9maWxlbmFtZT4gdG8gPGZpbGVuYW1lPnJlY292ZXJ5LmRvbmU8L2ZpbGVu YW1lPiAodG8gcHJldmVudAorICAgICBvZiB0aGUgcmVjb3ZlcnkgcHJvY2VzcywgdGhlIHNl cnZlciB3aWxsIHJlbW92ZQorICAgICA8ZmlsZW5hbWU+cmVjb3Zlcnkuc2lnbmFsPC9maWxl bmFtZT4gKHRvIHByZXZlbnQKICAgICAgYWNjaWRlbnRhbGx5IHJlLWVudGVyaW5nIHJlY292 ZXJ5IG1vZGUgbGF0ZXIpIGFuZCB0aGVuCiAgICAgIGNvbW1lbmNlIG5vcm1hbCBkYXRhYmFz ZSBvcGVyYXRpb25zLgogICAgIDwvcGFyYT4KQEAgLTEyNDksMTIgKzEyNTIsOSBAQCA8dGl0 bGU+UmVjb3ZlcmluZyBVc2luZyBhIENvbnRpbnVvdXMgQXJjaGl2ZSBCYWNrdXA8L3RpdGxl PgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KLSAgICBUaGUga2V5IHBhcnQgb2YgYWxsIHRo aXMgaXMgdG8gc2V0IHVwIGEgcmVjb3ZlcnkgY29uZmlndXJhdGlvbiBmaWxlIHRoYXQKKyAg ICBUaGUga2V5IHBhcnQgb2YgYWxsIHRoaXMgaXMgdG8gc2V0IHVwIGEgcmVjb3ZlcnkgY29u ZmlndXJhdGlvbiB0aGF0CiAgICAgZGVzY3JpYmVzIGhvdyB5b3Ugd2FudCB0byByZWNvdmVy IGFuZCBob3cgZmFyIHRoZSByZWNvdmVyeSBzaG91bGQKLSAgICBydW4uICBZb3UgY2FuIHVz ZSA8ZmlsZW5hbWU+cmVjb3ZlcnkuY29uZi5zYW1wbGU8L2ZpbGVuYW1lPiAobm9ybWFsbHkK LSAgICBsb2NhdGVkIGluIHRoZSBpbnN0YWxsYXRpb24ncyA8ZmlsZW5hbWU+c2hhcmUvPC9m aWxlbmFtZT4gZGlyZWN0b3J5KSBhcyBhCi0gICAgcHJvdG90eXBlLiAgVGhlIG9uZSB0aGlu ZyB0aGF0IHlvdSBhYnNvbHV0ZWx5IG11c3Qgc3BlY2lmeSBpbgotICAgIDxmaWxlbmFtZT5y ZWNvdmVyeS5jb25mPC9maWxlbmFtZT4gaXMgdGhlIDx2YXJuYW1lPnJlc3RvcmVfY29tbWFu ZDwvdmFybmFtZT4sCisgICAgcnVuLiAgVGhlIG9uZSB0aGluZyB0aGF0IHlvdSBhYnNvbHV0 ZWx5IG11c3Qgc3BlY2lmeSBpcyB0aGUgPHZhcm5hbWU+cmVzdG9yZV9jb21tYW5kPC92YXJu YW1lPiwKICAgICB3aGljaCB0ZWxscyA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVj dG5hbWU+IGhvdyB0byByZXRyaWV2ZSBhcmNoaXZlZAogICAgIFdBTCBmaWxlIHNlZ21lbnRz LiAgTGlrZSB0aGUgPHZhcm5hbWU+YXJjaGl2ZV9jb21tYW5kPC92YXJuYW1lPiwgdGhpcyBp cwogICAgIGEgc2hlbGwgY29tbWFuZCBzdHJpbmcuICBJdCBjYW4gY29udGFpbiA8bGl0ZXJh bD4lZjwvbGl0ZXJhbD4sIHdoaWNoIGlzCkBAIC0xMzE2LDcgKzEzMTYsNyBAQCA8dGl0bGU+ UmVjb3ZlcmluZyBVc2luZyBhIENvbnRpbnVvdXMgQXJjaGl2ZSBCYWNrdXA8L3RpdGxlPgog ICAgPHBhcmE+CiAgICAgSWYgeW91IHdhbnQgdG8gcmVjb3ZlciB0byBzb21lIHByZXZpb3Vz IHBvaW50IGluIHRpbWUgKHNheSwgcmlnaHQgYmVmb3JlCiAgICAgdGhlIGp1bmlvciBEQkEg ZHJvcHBlZCB5b3VyIG1haW4gdHJhbnNhY3Rpb24gdGFibGUpLCBqdXN0IHNwZWNpZnkgdGhl Ci0gICAgcmVxdWlyZWQgPGxpbmsgbGlua2VuZD0icmVjb3ZlcnktdGFyZ2V0LXNldHRpbmdz Ij5zdG9wcGluZyBwb2ludDwvbGluaz4gaW4gPGZpbGVuYW1lPnJlY292ZXJ5LmNvbmY8L2Zp bGVuYW1lPi4gIFlvdSBjYW4gc3BlY2lmeQorICAgIHJlcXVpcmVkIDxsaW5rIGxpbmtlbmQ9 InJ1bnRpbWUtY29uZmlnLXdhbC1yZWNvdmVyeS10YXJnZXQiPnN0b3BwaW5nIHBvaW50PC9s aW5rPi4gIFlvdSBjYW4gc3BlY2lmeQogICAgIHRoZSBzdG9wIHBvaW50LCBrbm93biBhcyB0 aGUgPHF1b3RlPnJlY292ZXJ5IHRhcmdldDwvcXVvdGU+LCBlaXRoZXIgYnkKICAgICBkYXRl L3RpbWUsIG5hbWVkIHJlc3RvcmUgcG9pbnQgb3IgYnkgY29tcGxldGlvbiBvZiBhIHNwZWNp ZmljIHRyYW5zYWN0aW9uCiAgICAgSUQuICBBcyBvZiB0aGlzIHdyaXRpbmcgb25seSB0aGUg ZGF0ZS90aW1lIGFuZCBuYW1lZCByZXN0b3JlIHBvaW50IG9wdGlvbnMKQEAgLTE0MTQsNyAr MTQxNCw3IEBAIDx0aXRsZT5UaW1lbGluZXM8L3RpdGxlPgogICAgIHRoYXQgd2FzIGN1cnJl bnQgd2hlbiB0aGUgYmFzZSBiYWNrdXAgd2FzIHRha2VuLiAgSWYgeW91IHdpc2ggdG8gcmVj b3ZlcgogICAgIGludG8gc29tZSBjaGlsZCB0aW1lbGluZSAodGhhdCBpcywgeW91IHdhbnQg dG8gcmV0dXJuIHRvIHNvbWUgc3RhdGUgdGhhdAogICAgIHdhcyBpdHNlbGYgZ2VuZXJhdGVk IGFmdGVyIGEgcmVjb3ZlcnkgYXR0ZW1wdCksIHlvdSBuZWVkIHRvIHNwZWNpZnkgdGhlCi0g ICAgdGFyZ2V0IHRpbWVsaW5lIElEIGluIDxmaWxlbmFtZT5yZWNvdmVyeS5jb25mPC9maWxl bmFtZT4uICBZb3UgY2Fubm90IHJlY292ZXIgaW50bworICAgIHRhcmdldCB0aW1lbGluZSBJ RCBpbiA8eHJlZiBsaW5rZW5kPSJndWMtcmVjb3ZlcnktdGFyZ2V0LXRpbWVsaW5lIi8+LiBZ b3UgY2Fubm90IHJlY292ZXIgaW50bwogICAgIHRpbWVsaW5lcyB0aGF0IGJyYW5jaGVkIG9m ZiBlYXJsaWVyIHRoYW4gdGhlIGJhc2UgYmFja3VwLgogICAgPC9wYXJhPgogICA8L3NlY3Qy PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21s L2NvbmZpZy5zZ21sCmluZGV4IGM0ZWZmYTAzNGMuLmMxNzFiZmQ2NGQgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNn bWwKQEAgLTMwMDAsNiArMzAwMCwzNzcgQEAgPHRpdGxlPkFyY2hpdmluZzwvdGl0bGU+CiAg ICAgIDwvdmFyaWFibGVsaXN0PgogICAgIDwvc2VjdDI+CiAKKyAgPHNlY3QyIGlkPSJydW50 aW1lLWNvbmZpZy13YWwtYXJjaGl2ZS1yZWNvdmVyeSI+CisKKyAgICA8dGl0bGU+QXJjaGl2 ZSBSZWNvdmVyeTwvdGl0bGU+CisKKyAgICA8aW5kZXh0ZXJtPgorICAgICA8cHJpbWFyeT5j b25maWd1cmF0aW9uPC9wcmltYXJ5PgorICAgICA8c2Vjb25kYXJ5Pm9mIHJlY292ZXJ5PC9z ZWNvbmRhcnk+CisgICAgIDx0ZXJ0aWFyeT5vZiBhIHN0YW5kYnkgc2VydmVyPC90ZXJ0aWFy eT4KKyAgICA8L2luZGV4dGVybT4KKworICAgIDxwYXJhPgorICAgICBUaGlzIHNlY3Rpb24g ZGVzY3JpYmVzIHRoZSBzZXR0aW5ncyB0aGF0IGFwcGx5IG9ubHkgZm9yIHRoZSBkdXJhdGlv biBvZgorICAgICB0aGUgcmVjb3ZlcnkuICBUaGV5IG11c3QgYmUgcmVzZXQgZm9yIGFueSBz dWJzZXF1ZW50IHJlY292ZXJ5IHlvdSB3aXNoIHRvCisgICAgIHBlcmZvcm0uICBUaGV5IGNh biBvbmx5IGJlIHNldCBhdCBzZXJ2ZXIgc3RhcnQgYW5kIGNhbm5vdCBiZSBjaGFuZ2VkIG9u Y2UKKyAgICAgcmVjb3ZlcnkgaGFzIGJlZ3VuLgorICAgIDwvcGFyYT4KKworICAgIDxwYXJh PgorICAgICA8cXVvdGU+UmVjb3Zlcnk8L3F1b3RlPiBjb3ZlcnMgdXNpbmcgdGhlIHNlcnZl ciBhcyBhIHN0YW5kYnkgb3IgZm9yCisgICAgIGV4ZWN1dGluZyBhIHRhcmdldGVkIHJlY292 ZXJ5LiAgVHlwaWNhbGx5LCBzdGFuZGJ5IG1vZGUgd291bGQgYmUgdXNlZCB0bworICAgICBw cm92aWRlIGhpZ2ggYXZhaWxhYmlsaXR5IGFuZC9vciByZWFkIHNjYWxhYmlsaXR5LCB3aGVy ZWFzIGEgdGFyZ2V0ZWQKKyAgICAgcmVjb3ZlcnkgaXMgdXNlZCB0byByZWNvdmVyIGZyb20g ZGF0YSBsb3NzLgorICAgIDwvcGFyYT4KKworICAgIDxwYXJhPgorICAgICBUbyBzdGFydCB0 aGUgc2VydmVyIGluIHN0YW5kYnkgbW9kZSBjcmVhdGUgZmlsZSBjYWxsZWQKKyAgICAgPGZp bGVuYW1lPnN0YW5kYnkuc2lnbmFsPC9maWxlbmFtZT48aW5kZXh0ZXJtPjxwcmltYXJ5PnN0 YW5kYnkuc2lnbmFsPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPgorICAgICBpbiB0aGUgZGF0YSBk aXJlY3RvcnkuICBUaGUgc2VydmVyIHdpbGwgZW50ZXIgcmVjb3ZlcnkgYW5kIHdpbGwgbm90 IHN0b3AKKyAgICAgcmVjb3Zlcnkgd2hlbiB0aGUgZW5kIG9mIGFyY2hpdmVkIFdBTCBpcyBy ZWFjaGVkLCBidXQgd2lsbCBrZWVwIHRyeWluZyB0bworICAgICBjb250aW51ZSByZWNvdmVy eSBieSBjb25uZWN0aW5nIHRvIHRoZSBzZW5kaW5nIHNlcnZlciBhcyBzcGVjaWZpZWQgYnkg dGhlCisgICAgIDx2YXJuYW1lPnByaW1hcnlfY29ubmluZm88L3Zhcm5hbWU+IHNldHRpbmcg YW5kL29yIGJ5IGZldGNoaW5nIG5ldyBXQUwKKyAgICAgc2VnbWVudHMgdXNpbmcgPHZhcm5h bWU+cmVzdG9yZV9jb21tYW5kPC92YXJuYW1lPi4gIEluIHRoaXMgbW9kZSwgeW91IG1heQor ICAgICB1c2UgcGFyYW1ldGVycyBpbiBib3RoIDx4cmVmCisgICAgIGxpbmtlbmQ9InJ1bnRp bWUtY29uZmlnLXdhbC1hcmNoaXZlLXJlY292ZXJ5Ii8+IGFuZCA8eHJlZgorICAgICBsaW5r ZW5kPSJydW50aW1lLWNvbmZpZy1yZXBsaWNhdGlvbi1zdGFuZGJ5Ii8+IHNlY3Rpb25zLiAg UGFyYW1ldGVycyBmcm9tCisgICAgIDx4cmVmIGxpbmtlbmQ9InJ1bnRpbWUtY29uZmlnLXdh bC1yZWNvdmVyeS10YXJnZXQiLz4gd2lsbCBub3QgYmUgdXNlZC4KKyAgICA8L3BhcmE+CisK KyAgICA8cGFyYT4KKyAgICAgVG8gc3RhcnQgdGhlIHNlcnZlciBpbiB0YXJnZXRlZCByZWNv dmVyeSBjcmVhdGUgYSBmaWxlIGNhbGxlZAorICAgICA8ZmlsZW5hbWU+cmVjb3Zlcnkuc2ln bmFsPC9maWxlbmFtZT48aW5kZXh0ZXJtPjxwcmltYXJ5PnJlY292ZXJ5LnNpZ25hbDwvcHJp bWFyeT48L2luZGV4dGVybT4KKyAgICAgaW4gdGhlIGRhdGEgZGlyZWN0b3J5LiAgSWYgYm90 aCA8ZmlsZW5hbWU+c3RhbmRieS5zaWduYWw8L2ZpbGVuYW1lPiBhbmQKKyAgICAgPGZpbGVu YW1lPnJlY292ZXJ5LnNpZ25hbDwvZmlsZW5hbWU+IGZpbGVzIGFyZSBjcmVhdGVkLCBzdGFu ZGJ5IG1vZGUKKyAgICAgdGFrZXMgcHJlY2VkZW5jZS4gIFRhcmdldGVkIHJlY292ZXJ5IG1v ZGUgd2lsbCBlbmQgd2hlbiBlbmQgb2YgYXJjaGl2ZWQKKyAgICAgV0FMIGlzIHJlYWNoZWQs IG9yIHdoZW4gPHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0PC92YXJuYW1lPiBpcyByZWFjaGVk LgorICAgICBJbiB0aGlzIG1vZGUgeW91IG1heSB1c2UgcGFyYW1ldGVycyBmcm9tIGJvdGgg PHhyZWYKKyAgICAgbGlua2VuZD0icnVudGltZS1jb25maWctd2FsLWFyY2hpdmUtcmVjb3Zl cnkiLz4gYW5kIDx4cmVmCisgICAgIGxpbmtlbmQ9InJ1bnRpbWUtY29uZmlnLXdhbC1yZWNv dmVyeS10YXJnZXQiLz4gc2VjdGlvbnMuICBQYXJhbWV0ZXJzIGZyb20gPHhyZWYKKyAgICAg bGlua2VuZD0icnVudGltZS1jb25maWctcmVwbGljYXRpb24tc3RhbmRieSIvPiB3aWxsIG5v dCBiZSB1c2VkLgorICAgIDwvcGFyYT4KKworICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgIDx2 YXJsaXN0ZW50cnkgaWQ9Imd1Yy1yZXN0b3JlLWNvbW1hbmQiIHhyZWZsYWJlbD0icmVzdG9y ZV9jb21tYW5kIj4KKyAgICAgIDx0ZXJtPjx2YXJuYW1lPnJlc3RvcmVfY29tbWFuZDwvdmFy bmFtZT4gKDx0eXBlPnN0cmluZzwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJtPgorICAgICAg ICA8cHJpbWFyeT48dmFybmFtZT5yZXN0b3JlX2NvbW1hbmQ8L3Zhcm5hbWU+IGNvbmZpZ3Vy YXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRlcm0+CisgICAgICA8 L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBs b2NhbCBzaGVsbCBjb21tYW5kIHRvIGV4ZWN1dGUgdG8gcmV0cmlldmUgYW4gYXJjaGl2ZWQg c2VnbWVudCBvZgorICAgICAgICB0aGUgV0FMIGZpbGUgc2VyaWVzLiBUaGlzIHBhcmFtZXRl ciBpcyByZXF1aXJlZCBmb3IgYXJjaGl2ZSByZWNvdmVyeSwKKyAgICAgICAgYnV0IG9wdGlv bmFsIGZvciBzdHJlYW1pbmcgcmVwbGljYXRpb24uCisgICAgICAgIEFueSA8bGl0ZXJhbD4l ZjwvbGl0ZXJhbD4gaW4gdGhlIHN0cmluZyBpcworICAgICAgICByZXBsYWNlZCBieSB0aGUg bmFtZSBvZiB0aGUgZmlsZSB0byByZXRyaWV2ZSBmcm9tIHRoZSBhcmNoaXZlLAorICAgICAg ICBhbmQgYW55IDxsaXRlcmFsPiVwPC9saXRlcmFsPiBpcyByZXBsYWNlZCBieSB0aGUgY29w eSBkZXN0aW5hdGlvbiBwYXRoIG5hbWUKKyAgICAgICAgb24gdGhlIHNlcnZlci4KKyAgICAg ICAgKFRoZSBwYXRoIG5hbWUgaXMgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgd29ya2luZyBk aXJlY3RvcnksCisgICAgICAgIGkuZS4sIHRoZSBjbHVzdGVyJ3MgZGF0YSBkaXJlY3Rvcnku KQorICAgICAgICBBbnkgPGxpdGVyYWw+JXI8L2xpdGVyYWw+IGlzIHJlcGxhY2VkIGJ5IHRo ZSBuYW1lIG9mIHRoZSBmaWxlIGNvbnRhaW5pbmcgdGhlCisgICAgICAgIGxhc3QgdmFsaWQg cmVzdGFydCBwb2ludC4gVGhhdCBpcyB0aGUgZWFybGllc3QgZmlsZSB0aGF0IG11c3QgYmUg a2VwdAorICAgICAgICB0byBhbGxvdyBhIHJlc3RvcmUgdG8gYmUgcmVzdGFydGFibGUsIHNv IHRoaXMgaW5mb3JtYXRpb24gY2FuIGJlIHVzZWQKKyAgICAgICAgdG8gdHJ1bmNhdGUgdGhl IGFyY2hpdmUgdG8ganVzdCB0aGUgbWluaW11bSByZXF1aXJlZCB0byBzdXBwb3J0CisgICAg ICAgIHJlc3RhcnRpbmcgZnJvbSB0aGUgY3VycmVudCByZXN0b3JlLiA8bGl0ZXJhbD4lcjwv bGl0ZXJhbD4gaXMgdHlwaWNhbGx5IG9ubHkKKyAgICAgICAgdXNlZCBieSB3YXJtLXN0YW5k YnkgY29uZmlndXJhdGlvbnMKKyAgICAgICAgKHNlZSA8eHJlZiBsaW5rZW5kPSJ3YXJtLXN0 YW5kYnkiLz4pLgorICAgICAgICBXcml0ZSA8bGl0ZXJhbD4lJTwvbGl0ZXJhbD4gdG8gZW1i ZWQgYW4gYWN0dWFsIDxsaXRlcmFsPiU8L2xpdGVyYWw+IGNoYXJhY3Rlci4KKyAgICAgICA8 L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgSXQgaXMgaW1wb3J0YW50IGZvciB0 aGUgY29tbWFuZCB0byByZXR1cm4gYSB6ZXJvIGV4aXQgc3RhdHVzCisgICAgICAgIG9ubHkg aWYgaXQgc3VjY2VlZHMuICBUaGUgY29tbWFuZCA8ZW1waGFzaXM+d2lsbDwvZW1waGFzaXM+ IGJlIGFza2VkIGZvciBmaWxlCisgICAgICAgIG5hbWVzIHRoYXQgYXJlIG5vdCBwcmVzZW50 IGluIHRoZSBhcmNoaXZlOyBpdCBtdXN0IHJldHVybiBub256ZXJvCisgICAgICAgIHdoZW4g c28gYXNrZWQuICBFeGFtcGxlczoKKzxwcm9ncmFtbGlzdGluZz4KK3Jlc3RvcmVfY29tbWFu ZCA9ICdjcCAvbW50L3NlcnZlci9hcmNoaXZlZGlyLyVmICIlcCInCityZXN0b3JlX2NvbW1h bmQgPSAnY29weSAiQzpcXHNlcnZlclxcYXJjaGl2ZWRpclxcJWYiICIlcCInICAjIFdpbmRv d3MKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgICAgIEFuIGV4Y2VwdGlvbiBpcyB0aGF0IGlm IHRoZSBjb21tYW5kIHdhcyB0ZXJtaW5hdGVkIGJ5IGEgc2lnbmFsIChvdGhlcgorICAgICAg ICB0aGFuIDxzeXN0ZW1pdGVtPlNJR1RFUk08L3N5c3RlbWl0ZW0+LCB3aGljaCBpcyB1c2Vk IGFzIHBhcnQgb2YgYQorICAgICAgICBkYXRhYmFzZSBzZXJ2ZXIgc2h1dGRvd24pIG9yIGFu IGVycm9yIGJ5IHRoZSBzaGVsbCAoc3VjaCBhcyBjb21tYW5kCisgICAgICAgIG5vdCBmb3Vu ZCksIHRoZW4gcmVjb3Zlcnkgd2lsbCBhYm9ydCBhbmQgdGhlIHNlcnZlciB3aWxsIG5vdCBz dGFydCB1cC4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zh cmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtYXJjaGl2ZS1jbGVh bnVwLWNvbW1hbmQiIHhyZWZsYWJlbD0iYXJjaGl2ZV9jbGVhbnVwX2NvbW1hbmQiPgorICAg ICAgPHRlcm0+PHZhcm5hbWU+YXJjaGl2ZV9jbGVhbnVwX2NvbW1hbmQ8L3Zhcm5hbWU+ICg8 dHlwZT5zdHJpbmc8L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4KKyAgICAgICAgPHByaW1h cnk+PHZhcm5hbWU+YXJjaGl2ZV9jbGVhbnVwX2NvbW1hbmQ8L3Zhcm5hbWU+IGNvbmZpZ3Vy YXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRlcm0+CisgICAgICA8 L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoaXMg b3B0aW9uYWwgcGFyYW1ldGVyIHNwZWNpZmllcyBhIHNoZWxsIGNvbW1hbmQgdGhhdCB3aWxs IGJlIGV4ZWN1dGVkCisgICAgICAgIGF0IGV2ZXJ5IHJlc3RhcnRwb2ludC4gIFRoZSBwdXJw b3NlIG9mCisgICAgICAgIDx2YXJuYW1lPmFyY2hpdmVfY2xlYW51cF9jb21tYW5kPC92YXJu YW1lPiBpcyB0byBwcm92aWRlIGEgbWVjaGFuaXNtIGZvcgorICAgICAgICBjbGVhbmluZyB1 cCBvbGQgYXJjaGl2ZWQgV0FMIGZpbGVzIHRoYXQgYXJlIG5vIGxvbmdlciBuZWVkZWQgYnkg dGhlCisgICAgICAgIHN0YW5kYnkgc2VydmVyLgorICAgICAgICBBbnkgPGxpdGVyYWw+JXI8 L2xpdGVyYWw+IGlzIHJlcGxhY2VkIGJ5IHRoZSBuYW1lIG9mIHRoZSBmaWxlIGNvbnRhaW5p bmcgdGhlCisgICAgICAgIGxhc3QgdmFsaWQgcmVzdGFydCBwb2ludC4KKyAgICAgICAgVGhh dCBpcyB0aGUgZWFybGllc3QgZmlsZSB0aGF0IG11c3QgYmUgPGVtcGhhc2lzPmtlcHQ8L2Vt cGhhc2lzPiB0byBhbGxvdyBhCisgICAgICAgIHJlc3RvcmUgdG8gYmUgcmVzdGFydGFibGUs IGFuZCBzbyBhbGwgZmlsZXMgZWFybGllciB0aGFuIDxsaXRlcmFsPiVyPC9saXRlcmFsPgor ICAgICAgICBtYXkgYmUgc2FmZWx5IHJlbW92ZWQuCisgICAgICAgIFRoaXMgaW5mb3JtYXRp b24gY2FuIGJlIHVzZWQgdG8gdHJ1bmNhdGUgdGhlIGFyY2hpdmUgdG8ganVzdCB0aGUKKyAg ICAgICAgbWluaW11bSByZXF1aXJlZCB0byBzdXBwb3J0IHJlc3RhcnQgZnJvbSB0aGUgY3Vy cmVudCByZXN0b3JlLgorICAgICAgICBUaGUgPHhyZWYgbGlua2VuZD0icGdhcmNoaXZlY2xl YW51cCIvPiBtb2R1bGUKKyAgICAgICAgaXMgb2Z0ZW4gdXNlZCBpbiA8dmFybmFtZT5hcmNo aXZlX2NsZWFudXBfY29tbWFuZDwvdmFybmFtZT4gZm9yCisgICAgICAgIHNpbmdsZS1zdGFu ZGJ5IGNvbmZpZ3VyYXRpb25zLCBmb3IgZXhhbXBsZToKKzxwcm9ncmFtbGlzdGluZz5hcmNo aXZlX2NsZWFudXBfY29tbWFuZCA9ICdwZ19hcmNoaXZlY2xlYW51cCAvbW50L3NlcnZlci9h cmNoaXZlZGlyICVyJzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgICAgIE5vdGUgaG93ZXZlciB0 aGF0IGlmIG11bHRpcGxlIHN0YW5kYnkgc2VydmVycyBhcmUgcmVzdG9yaW5nIGZyb20gdGhl CisgICAgICAgIHNhbWUgYXJjaGl2ZSBkaXJlY3RvcnksIHlvdSB3aWxsIG5lZWQgdG8gZW5z dXJlIHRoYXQgeW91IGRvIG5vdCBkZWxldGUKKyAgICAgICAgV0FMIGZpbGVzIHVudGlsIHRo ZXkgYXJlIG5vIGxvbmdlciBuZWVkZWQgYnkgYW55IG9mIHRoZSBzZXJ2ZXJzLgorICAgICAg ICA8dmFybmFtZT5hcmNoaXZlX2NsZWFudXBfY29tbWFuZDwvdmFybmFtZT4gd291bGQgdHlw aWNhbGx5IGJlIHVzZWQgaW4gYQorICAgICAgICB3YXJtLXN0YW5kYnkgY29uZmlndXJhdGlv biAoc2VlIDx4cmVmIGxpbmtlbmQ9Indhcm0tc3RhbmRieSIvPikuCisgICAgICAgIFdyaXRl IDxsaXRlcmFsPiUlPC9saXRlcmFsPiB0byBlbWJlZCBhbiBhY3R1YWwgPGxpdGVyYWw+JTwv bGl0ZXJhbD4gY2hhcmFjdGVyIGluIHRoZQorICAgICAgICBjb21tYW5kLgorICAgICAgIDwv cGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgSWYgdGhlIGNvbW1hbmQgcmV0dXJucyBh IG5vbnplcm8gZXhpdCBzdGF0dXMgdGhlbiBhIHdhcm5pbmcgbG9nCisgICAgICAgIG1lc3Nh Z2Ugd2lsbCBiZSB3cml0dGVuLiAgQW4gZXhjZXB0aW9uIGlzIHRoYXQgaWYgdGhlIGNvbW1h bmQgd2FzCisgICAgICAgIHRlcm1pbmF0ZWQgYnkgYSBzaWduYWwgb3IgYW4gZXJyb3IgYnkg dGhlIHNoZWxsIChzdWNoIGFzIGNvbW1hbmQgbm90CisgICAgICAgIGZvdW5kKSwgYSBmYXRh bCBlcnJvciB3aWxsIGJlIHJhaXNlZC4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3Rp dGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5IGlkPSJn dWMtcmVjb3ZlcnktZW5kLWNvbW1hbmQiIHhyZWZsYWJlbD0icmVjb3ZlcnlfZW5kX2NvbW1h bmQiPgorICAgICAgPHRlcm0+PHZhcm5hbWU+cmVjb3ZlcnlfZW5kX2NvbW1hbmQ8L3Zhcm5h bWU+ICg8dHlwZT5zdHJpbmc8L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4KKyAgICAgICAg PHByaW1hcnk+PHZhcm5hbWU+cmVjb3ZlcnlfZW5kX2NvbW1hbmQ8L3Zhcm5hbWU+IGNvbmZp Z3VyYXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRlcm0+CisgICAg ICA8L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRo aXMgcGFyYW1ldGVyIHNwZWNpZmllcyBhIHNoZWxsIGNvbW1hbmQgdGhhdCB3aWxsIGJlIGV4 ZWN1dGVkIG9uY2Ugb25seQorICAgICAgICBhdCB0aGUgZW5kIG9mIHJlY292ZXJ5LiBUaGlz IHBhcmFtZXRlciBpcyBvcHRpb25hbC4gVGhlIHB1cnBvc2Ugb2YgdGhlCisgICAgICAgIDx2 YXJuYW1lPnJlY292ZXJ5X2VuZF9jb21tYW5kPC92YXJuYW1lPiBpcyB0byBwcm92aWRlIGEg bWVjaGFuaXNtIGZvciBjbGVhbnVwCisgICAgICAgIGZvbGxvd2luZyByZXBsaWNhdGlvbiBv ciByZWNvdmVyeS4KKyAgICAgICAgQW55IDxsaXRlcmFsPiVyPC9saXRlcmFsPiBpcyByZXBs YWNlZCBieSB0aGUgbmFtZSBvZiB0aGUgZmlsZSBjb250YWluaW5nIHRoZQorICAgICAgICBs YXN0IHZhbGlkIHJlc3RhcnQgcG9pbnQsIGxpa2UgaW4gPHhyZWYgbGlua2VuZD0iZ3VjLWFy Y2hpdmUtY2xlYW51cC1jb21tYW5kIi8+LgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFy YT4KKyAgICAgICAgSWYgdGhlIGNvbW1hbmQgcmV0dXJucyBhIG5vbnplcm8gZXhpdCBzdGF0 dXMgdGhlbiBhIHdhcm5pbmcgbG9nCisgICAgICAgIG1lc3NhZ2Ugd2lsbCBiZSB3cml0dGVu IGFuZCB0aGUgZGF0YWJhc2Ugd2lsbCBwcm9jZWVkIHRvIHN0YXJ0IHVwCisgICAgICAgIGFu eXdheS4gIEFuIGV4Y2VwdGlvbiBpcyB0aGF0IGlmIHRoZSBjb21tYW5kIHdhcyB0ZXJtaW5h dGVkIGJ5IGEKKyAgICAgICAgc2lnbmFsIG9yIGFuIGVycm9yIGJ5IHRoZSBzaGVsbCAoc3Vj aCBhcyBjb21tYW5kIG5vdCBmb3VuZCksIHRoZQorICAgICAgICBkYXRhYmFzZSB3aWxsIG5v dCBwcm9jZWVkIHdpdGggc3RhcnR1cC4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3Rp dGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDwvdmFyaWFibGVsaXN0PgorCisg IDwvc2VjdDI+CisKKyAgPHNlY3QyIGlkPSJydW50aW1lLWNvbmZpZy13YWwtcmVjb3Zlcnkt dGFyZ2V0Ij4KKworICAgIDx0aXRsZT5SZWNvdmVyeSBUYXJnZXQ8L3RpdGxlPgorCisgICAg IDxwYXJhPgorICAgICAgQnkgZGVmYXVsdCwgcmVjb3Zlcnkgd2lsbCByZWNvdmVyIHRvIHRo ZSBlbmQgb2YgdGhlIFdBTCBsb2cuIFRoZQorICAgICAgZm9sbG93aW5nIHBhcmFtZXRlcnMg Y2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhbiBlYXJsaWVyIHN0b3BwaW5nIHBvaW50LgorICAg ICAgQXQgbW9zdCBvbmUgb2YgPHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0PC92YXJuYW1lPiwK KyAgICAgIDx2YXJuYW1lPnJlY292ZXJ5X3RhcmdldF9sc248L3Zhcm5hbWU+LCA8dmFybmFt ZT5yZWNvdmVyeV90YXJnZXRfbmFtZTwvdmFybmFtZT4sCisgICAgICA8dmFybmFtZT5yZWNv dmVyeV90YXJnZXRfdGltZTwvdmFybmFtZT4sIG9yIDx2YXJuYW1lPnJlY292ZXJ5X3Rhcmdl dF94aWQ8L3Zhcm5hbWU+CisgICAgICBjYW4gYmUgdXNlZDsgaWYgbW9yZSB0aGFuIG9uZSBv ZiB0aGVzZSBpcyBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb24KKyAgICAgIGZpbGUs IHRoZSBsYXN0IGVudHJ5IHdpbGwgYmUgdXNlZC4KKyAgICAgIFRoZXNlIHBhcmFtZXRlcnMg Y2FuIG9ubHkgYmUgc2V0IGF0IHNlcnZlciBzdGFydC4KKyAgICAgPC9wYXJhPgorCisgICAg IDx2YXJpYWJsZWxpc3Q+CisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1yZWNvdmVyeS10 YXJnZXQiIHhyZWZsYWJlbD0icmVjb3ZlcnlfdGFyZ2V0Ij4KKyAgICAgIDx0ZXJtPjx2YXJu YW1lPnJlY292ZXJ5X3RhcmdldDwvdmFybmFtZT48bGl0ZXJhbD4gPSAnaW1tZWRpYXRlJzwv bGl0ZXJhbD4KKyAgICAgIDxpbmRleHRlcm0+CisgICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1l PnJlY292ZXJ5X3RhcmdldDwvdmFybmFtZT4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXI8L3By aW1hcnk+CisgICAgICA8L2luZGV4dGVybT4KKyAgICAgIDwvdGVybT4KKyAgICAgIDxsaXN0 aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVz IHRoYXQgcmVjb3Zlcnkgc2hvdWxkIGVuZCBhcyBzb29uIGFzIGEKKyAgICAgICAgY29uc2lz dGVudCBzdGF0ZSBpcyByZWFjaGVkLCBpLmUuIGFzIGVhcmx5IGFzIHBvc3NpYmxlLiBXaGVu IHJlc3RvcmluZworICAgICAgICBmcm9tIGFuIG9ubGluZSBiYWNrdXAsIHRoaXMgbWVhbnMg dGhlIHBvaW50IHdoZXJlIHRha2luZyB0aGUgYmFja3VwCisgICAgICAgIGVuZGVkLgorICAg ICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGVjaG5pY2FsbHksIHRoaXMg aXMgYSBzdHJpbmcgcGFyYW1ldGVyLCBidXQgPGxpdGVyYWw+J2ltbWVkaWF0ZSc8L2xpdGVy YWw+CisgICAgICAgIGlzIGN1cnJlbnRseSB0aGUgb25seSBhbGxvd2VkIHZhbHVlLgorICAg ICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5Pgor CisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1yZWNvdmVyeS10YXJnZXQtbmFtZSIgeHJl ZmxhYmVsPSJyZWNvdmVyeV90YXJnZXRfbmFtZSI+CisgICAgICA8dGVybT48dmFybmFtZT5y ZWNvdmVyeV90YXJnZXRfbmFtZTwvdmFybmFtZT4gKDx0eXBlPnN0cmluZzwvdHlwZT4pCisg ICAgICA8aW5kZXh0ZXJtPgorICAgICAgICA8cHJpbWFyeT48dmFybmFtZT5yZWNvdmVyeV90 YXJnZXRfbmFtZTwvdmFybmFtZT4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXI8L3ByaW1hcnk+ CisgICAgICA8L2luZGV4dGVybT4KKyAgICAgIDwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4K KyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSBu YW1lZCByZXN0b3JlIHBvaW50IChjcmVhdGVkIHdpdGgKKyAgICAgICAgPGZ1bmN0aW9uPnBn X2NyZWF0ZV9yZXN0b3JlX3BvaW50KCk8L2Z1bmN0aW9uPikgdG8gd2hpY2ggcmVjb3Zlcnkg d2lsbCBwcm9jZWVkLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAg IDwvdmFybGlzdGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1yZWNvdmVy eS10YXJnZXQtdGltZSIgeHJlZmxhYmVsPSJyZWNvdmVyeV90YXJnZXRfdGltZSI+CisgICAg ICA8dGVybT48dmFybmFtZT5yZWNvdmVyeV90YXJnZXRfdGltZTwvdmFybmFtZT4gKDx0eXBl PnRpbWVzdGFtcDwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJtPgorICAgICAgICA8cHJpbWFy eT48dmFybmFtZT5yZWNvdmVyeV90YXJnZXRfdGltZTwvdmFybmFtZT4gY29uZmlndXJhdGlv biBwYXJhbWV0ZXI8L3ByaW1hcnk+CisgICAgICA8L2luZGV4dGVybT4KKyAgICAgIDwvdGVy bT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhpcyBwYXJh bWV0ZXIgc3BlY2lmaWVzIHRoZSB0aW1lIHN0YW1wIHVwIHRvIHdoaWNoIHJlY292ZXJ5Cisg ICAgICAgIHdpbGwgcHJvY2VlZC4KKyAgICAgICAgVGhlIHByZWNpc2Ugc3RvcHBpbmcgcG9p bnQgaXMgYWxzbyBpbmZsdWVuY2VkIGJ5CisgICAgICAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy1y ZWNvdmVyeS10YXJnZXQtaW5jbHVzaXZlIi8+LgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwv bGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnkg aWQ9Imd1Yy1yZWNvdmVyeS10YXJnZXQteGlkIiB4cmVmbGFiZWw9InJlY292ZXJ5X3Rhcmdl dF94aWQiPgorICAgICAgPHRlcm0+PHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0X3hpZDwvdmFy bmFtZT4gKDx0eXBlPnN0cmluZzwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJtPgorICAgICAg ICA8cHJpbWFyeT48dmFybmFtZT5yZWNvdmVyeV90YXJnZXRfeGlkPC92YXJuYW1lPiBjb25m aWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJtPgorICAg ICAgPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBU aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRyYW5zYWN0aW9uIElEIHVwIHRvIHdoaWNo IHJlY292ZXJ5CisgICAgICAgIHdpbGwgcHJvY2VlZC4gS2VlcCBpbiBtaW5kCisgICAgICAg IHRoYXQgd2hpbGUgdHJhbnNhY3Rpb24gSURzIGFyZSBhc3NpZ25lZCBzZXF1ZW50aWFsbHkg YXQgdHJhbnNhY3Rpb24KKyAgICAgICAgc3RhcnQsIHRyYW5zYWN0aW9ucyBjYW4gY29tcGxl dGUgaW4gYSBkaWZmZXJlbnQgbnVtZXJpYyBvcmRlci4KKyAgICAgICAgVGhlIHRyYW5zYWN0 aW9ucyB0aGF0IHdpbGwgYmUgcmVjb3ZlcmVkIGFyZSB0aG9zZSB0aGF0IGNvbW1pdHRlZAor ICAgICAgICBiZWZvcmUgKGFuZCBvcHRpb25hbGx5IGluY2x1ZGluZykgdGhlIHNwZWNpZmll ZCBvbmUuCisgICAgICAgIFRoZSBwcmVjaXNlIHN0b3BwaW5nIHBvaW50IGlzIGFsc28gaW5m bHVlbmNlZCBieQorICAgICAgICA8eHJlZiBsaW5rZW5kPSJndWMtcmVjb3ZlcnktdGFyZ2V0 LWluY2x1c2l2ZSIvPi4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAg ICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtcmVjb3Zl cnktdGFyZ2V0LWxzbiIgeHJlZmxhYmVsPSJyZWNvdmVyeV90YXJnZXRfbHNuIj4KKyAgICAg IDx0ZXJtPjx2YXJuYW1lPnJlY292ZXJ5X3RhcmdldF9sc248L3Zhcm5hbWU+ICg8dHlwZT5w Z19sc248L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4KKyAgICAgICAgPHByaW1hcnk+PHZh cm5hbWU+cmVjb3ZlcnlfdGFyZ2V0X2xzbjwvdmFybmFtZT4gY29uZmlndXJhdGlvbiBwYXJh bWV0ZXI8L3ByaW1hcnk+CisgICAgICA8L2luZGV4dGVybT4KKyAgICAgIDwvdGVybT4KKyAg ICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhpcyBwYXJhbWV0ZXIg c3BlY2lmaWVzIHRoZSBMU04gb2YgdGhlIHdyaXRlLWFoZWFkIGxvZyBsb2NhdGlvbiB1cAor ICAgICAgICB0byB3aGljaCByZWNvdmVyeSB3aWxsIHByb2NlZWQuIFRoZSBwcmVjaXNlIHN0 b3BwaW5nIHBvaW50IGlzIGFsc28KKyAgICAgICAgaW5mbHVlbmNlZCBieSA8eHJlZiBsaW5r ZW5kPSJndWMtcmVjb3ZlcnktdGFyZ2V0LWluY2x1c2l2ZSIvPi4gVGhpcworICAgICAgICBw YXJhbWV0ZXIgaXMgcGFyc2VkIHVzaW5nIHRoZSBzeXN0ZW0gZGF0YSB0eXBlCisgICAgICAg IDxsaW5rIGxpbmtlbmQ9ImRhdGF0eXBlLXBnLWxzbiI+PHR5cGU+cGdfbHNuPC90eXBlPjwv bGluaz4uCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJs aXN0ZW50cnk+CisgICAgIDwvdmFyaWFibGVsaXN0PgorCisgICAgIDxwYXJhPgorICAgICAg IFRoZSBmb2xsb3dpbmcgb3B0aW9ucyBmdXJ0aGVyIHNwZWNpZnkgdGhlIHJlY292ZXJ5IHRh cmdldCwgYW5kIGFmZmVjdAorICAgICAgIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB0YXJnZXQg aXMgcmVhY2hlZDoKKyAgICAgPC9wYXJhPgorCisgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAg IDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1yZWNvdmVyeS10YXJnZXQtaW5jbHVzaXZlIgorICAg ICAgICAgICAgICAgICAgIHhyZWZsYWJlbD0icmVjb3ZlcnlfdGFyZ2V0X2luY2x1c2l2ZSI+ CisgICAgICA8dGVybT48dmFybmFtZT5yZWNvdmVyeV90YXJnZXRfaW5jbHVzaXZlPC92YXJu YW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJtPgorICAgICAg ICA8cHJpbWFyeT48dmFybmFtZT5yZWNvdmVyeV90YXJnZXRfaW5jbHVzaXZlPC92YXJuYW1l PiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJt PgorICAgICAgPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAg ICAgICBTcGVjaWZpZXMgd2hldGhlciB0byBzdG9wIGp1c3QgYWZ0ZXIgdGhlIHNwZWNpZmll ZCByZWNvdmVyeSB0YXJnZXQKKyAgICAgICAgKDxsaXRlcmFsPnRydWU8L2xpdGVyYWw+KSwg b3IganVzdCBiZWZvcmUgdGhlIHJlY292ZXJ5IHRhcmdldAorICAgICAgICAoPGxpdGVyYWw+ ZmFsc2U8L2xpdGVyYWw+KS4KKyAgICAgICAgQXBwbGllcyB3aGVuIDx4cmVmIGxpbmtlbmQ9 Imd1Yy1yZWNvdmVyeS10YXJnZXQtbHNuIi8+LAorICAgICAgICA8eHJlZiBsaW5rZW5kPSJn dWMtcmVjb3ZlcnktdGFyZ2V0LXRpbWUiLz4sIG9yCisgICAgICAgIDx4cmVmIGxpbmtlbmQ9 Imd1Yy1yZWNvdmVyeS10YXJnZXQteGlkIi8+IGlzIHNwZWNpZmllZC4KKyAgICAgICAgVGhp cyBzZXR0aW5nIGNvbnRyb2xzIHdoZXRoZXIgdHJhbnNhY3Rpb25zCisgICAgICAgIGhhdmlu ZyBleGFjdGx5IHRoZSB0YXJnZXQgV0FMIGxvY2F0aW9uIChMU04pLCBjb21taXQgdGltZSwg b3IgdHJhbnNhY3Rpb24gSUQsIHJlc3BlY3RpdmVseSwgd2lsbAorICAgICAgICBiZSBpbmNs dWRlZCBpbiB0aGUgcmVjb3ZlcnkuICBEZWZhdWx0IGlzIDxsaXRlcmFsPnRydWU8L2xpdGVy YWw+LgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlz dGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1yZWNvdmVyeS10YXJnZXQt dGltZWxpbmUiCisgICAgICAgICAgICAgICAgICAgeHJlZmxhYmVsPSJyZWNvdmVyeV90YXJn ZXRfdGltZWxpbmUiPgorICAgICAgPHRlcm0+PHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0X3Rp bWVsaW5lPC92YXJuYW1lPiAoPHR5cGU+c3RyaW5nPC90eXBlPikKKyAgICAgIDxpbmRleHRl cm0+CisgICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPnJlY292ZXJ5X3RhcmdldF90aW1lbGlu ZTwvdmFybmFtZT4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXI8L3ByaW1hcnk+CisgICAgICA8 L2luZGV4dGVybT4KKyAgICAgIDwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8 cGFyYT4KKyAgICAgICAgU3BlY2lmaWVzIHJlY292ZXJpbmcgaW50byBhIHBhcnRpY3VsYXIg dGltZWxpbmUuICBUaGUgZGVmYXVsdCBpcworICAgICAgICB0byByZWNvdmVyIGFsb25nIHRo ZSBzYW1lIHRpbWVsaW5lIHRoYXQgd2FzIGN1cnJlbnQgd2hlbiB0aGUKKyAgICAgICAgYmFz ZSBiYWNrdXAgd2FzIHRha2VuLiBTZXR0aW5nIHRoaXMgdG8gPGxpdGVyYWw+bGF0ZXN0PC9s aXRlcmFsPiByZWNvdmVycworICAgICAgICB0byB0aGUgbGF0ZXN0IHRpbWVsaW5lIGZvdW5k IGluIHRoZSBhcmNoaXZlLCB3aGljaCBpcyB1c2VmdWwgaW4KKyAgICAgICAgYSBzdGFuZGJ5 IHNlcnZlci4gT3RoZXIgdGhhbiB0aGF0IHlvdSBvbmx5IG5lZWQgdG8gc2V0IHRoaXMgcGFy YW1ldGVyCisgICAgICAgIGluIGNvbXBsZXggcmUtcmVjb3Zlcnkgc2l0dWF0aW9ucywgd2hl cmUgeW91IG5lZWQgdG8gcmV0dXJuIHRvCisgICAgICAgIGEgc3RhdGUgdGhhdCBpdHNlbGYg d2FzIHJlYWNoZWQgYWZ0ZXIgYSBwb2ludC1pbi10aW1lIHJlY292ZXJ5LgorICAgICAgICBT ZWUgPHhyZWYgbGlua2VuZD0iYmFja3VwLXRpbWVsaW5lcyIvPiBmb3IgZGlzY3Vzc2lvbi4K KyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRy eT4KKworICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtcmVjb3ZlcnktdGFyZ2V0LWFjdGlv biIKKyAgICAgICAgICAgICAgICAgICB4cmVmbGFiZWw9InJlY292ZXJ5X3RhcmdldF9hY3Rp b24iPgorICAgICAgPHRlcm0+PHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0X2FjdGlvbjwvdmFy bmFtZT4gKDx0eXBlPmVudW08L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4KKyAgICAgICAg PHByaW1hcnk+PHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0X2FjdGlvbjwvdmFybmFtZT4gY29u ZmlndXJhdGlvbiBwYXJhbWV0ZXI8L3ByaW1hcnk+CisgICAgICA8L2luZGV4dGVybT4KKyAg ICAgIDwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAg U3BlY2lmaWVzIHdoYXQgYWN0aW9uIHRoZSBzZXJ2ZXIgc2hvdWxkIHRha2Ugb25jZSB0aGUg cmVjb3ZlcnkgdGFyZ2V0IGlzCisgICAgICAgIHJlYWNoZWQuIFRoZSBkZWZhdWx0IGlzIDxs aXRlcmFsPnBhdXNlPC9saXRlcmFsPiwgd2hpY2ggbWVhbnMgcmVjb3Zlcnkgd2lsbAorICAg ICAgICBiZSBwYXVzZWQuIDxsaXRlcmFsPnByb21vdGU8L2xpdGVyYWw+IG1lYW5zIHRoZSBy ZWNvdmVyeSBwcm9jZXNzIHdpbGwgZmluaXNoCisgICAgICAgIGFuZCB0aGUgc2VydmVyIHdp bGwgc3RhcnQgdG8gYWNjZXB0IGNvbm5lY3Rpb25zLgorICAgICAgICBGaW5hbGx5IDxsaXRl cmFsPnNodXRkb3duPC9saXRlcmFsPiB3aWxsIHN0b3AgdGhlIHNlcnZlciBhZnRlciByZWFj aGluZyB0aGUKKyAgICAgICAgcmVjb3ZlcnkgdGFyZ2V0LgorICAgICAgIDwvcGFyYT4KKyAg ICAgICA8cGFyYT4KKyAgICAgICAgVGhlIGludGVuZGVkIHVzZSBvZiB0aGUgPGxpdGVyYWw+ cGF1c2U8L2xpdGVyYWw+IHNldHRpbmcgaXMgdG8gYWxsb3cgcXVlcmllcworICAgICAgICB0 byBiZSBleGVjdXRlZCBhZ2FpbnN0IHRoZSBkYXRhYmFzZSB0byBjaGVjayBpZiB0aGlzIHJl Y292ZXJ5IHRhcmdldAorICAgICAgICBpcyB0aGUgbW9zdCBkZXNpcmFibGUgcG9pbnQgZm9y IHJlY292ZXJ5LgorICAgICAgICBUaGUgcGF1c2VkIHN0YXRlIGNhbiBiZSByZXN1bWVkIGJ5 CisgICAgICAgIHVzaW5nIDxmdW5jdGlvbj5wZ193YWxfcmVwbGF5X3Jlc3VtZSgpPC9mdW5j dGlvbj4gKHNlZQorICAgICAgICA8eHJlZiBsaW5rZW5kPSJmdW5jdGlvbnMtcmVjb3Zlcnkt Y29udHJvbC10YWJsZSIvPiksIHdoaWNoIHRoZW4KKyAgICAgICAgY2F1c2VzIHJlY292ZXJ5 IHRvIGVuZC4gSWYgdGhpcyByZWNvdmVyeSB0YXJnZXQgaXMgbm90IHRoZQorICAgICAgICBk ZXNpcmVkIHN0b3BwaW5nIHBvaW50LCB0aGVuIHNodXQgZG93biB0aGUgc2VydmVyLCBjaGFu Z2UgdGhlCisgICAgICAgIHJlY292ZXJ5IHRhcmdldCBzZXR0aW5ncyB0byBhIGxhdGVyIHRh cmdldCBhbmQgcmVzdGFydCB0bworICAgICAgICBjb250aW51ZSByZWNvdmVyeS4KKyAgICAg ICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSA8bGl0ZXJhbD5zaHV0ZG93 bjwvbGl0ZXJhbD4gc2V0dGluZyBpcyB1c2VmdWwgdG8gaGF2ZSB0aGUgaW5zdGFuY2UgcmVh ZHkKKyAgICAgICAgYXQgdGhlIGV4YWN0IHJlcGxheSBwb2ludCBkZXNpcmVkLiAgVGhlIGlu c3RhbmNlIHdpbGwgc3RpbGwgYmUgYWJsZSB0bworICAgICAgICByZXBsYXkgbW9yZSBXQUwg cmVjb3JkcyAoYW5kIGluIGZhY3Qgd2lsbCBoYXZlIHRvIHJlcGxheSBXQUwgcmVjb3Jkcwor ICAgICAgICBzaW5jZSB0aGUgbGFzdCBjaGVja3BvaW50IG5leHQgdGltZSBpdCBpcyBzdGFy dGVkKS4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIE5vdGUgdGhh dCBiZWNhdXNlIDxmaWxlbmFtZT5yZWNvdmVyeS5zaWduYWw8L2ZpbGVuYW1lPiB3aWxsIG5v dCBiZQorICAgICAgICByZW1vdmVkIHdoZW4gPHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0X2Fj dGlvbjwvdmFybmFtZT4gaXMgc2V0IHRvIDxsaXRlcmFsPnNodXRkb3duPC9saXRlcmFsPiwK KyAgICAgICAgYW55IHN1YnNlcXVlbnQgc3RhcnQgd2lsbCBlbmQgd2l0aCBpbW1lZGlhdGUg c2h1dGRvd24gdW5sZXNzIHRoZQorICAgICAgICBjb25maWd1cmF0aW9uIGlzIGNoYW5nZWQg b3IgdGhlIDxmaWxlbmFtZT5yZWNvdmVyeS5zaWduYWw8L2ZpbGVuYW1lPgorICAgICAgICBm aWxlIGlzIHJlbW92ZWQgbWFudWFsbHkuCisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJh PgorICAgICAgICBUaGlzIHNldHRpbmcgaGFzIG5vIGVmZmVjdCBpZiBubyByZWNvdmVyeSB0 YXJnZXQgaXMgc2V0LgorICAgICAgICBJZiA8eHJlZiBsaW5rZW5kPSJndWMtaG90LXN0YW5k YnkiLz4gaXMgbm90IGVuYWJsZWQsIGEgc2V0dGluZyBvZgorICAgICAgICA8bGl0ZXJhbD5w YXVzZTwvbGl0ZXJhbD4gd2lsbCBhY3QgdGhlIHNhbWUgYXMgPGxpdGVyYWw+c2h1dGRvd248 L2xpdGVyYWw+LgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwv dmFybGlzdGVudHJ5PgorCisgICAgPC92YXJpYWJsZWxpc3Q+CisgICA8L3NlY3QyPgorCiAg ICA8L3NlY3QxPgogCiAgICA8c2VjdDEgaWQ9InJ1bnRpbWUtY29uZmlnLXJlcGxpY2F0aW9u Ij4KQEAgLTMyMDMsMTEgKzM1NzQsMTEgQEAgPHRpdGxlPk1hc3RlciBTZXJ2ZXI8L3RpdGxl PgogICAgICAgICA8dmFybmFtZT5hcHBsaWNhdGlvbl9uYW1lPC92YXJuYW1lPiBzZXR0aW5n IG9mIHRoZSBzdGFuZGJ5LCBhcyBzZXQgaW4gdGhlCiAgICAgICAgIHN0YW5kYnkncyBjb25u ZWN0aW9uIGluZm9ybWF0aW9uLiAgSW4gY2FzZSBvZiBhIHBoeXNpY2FsIHJlcGxpY2F0aW9u CiAgICAgICAgIHN0YW5kYnksIHRoaXMgc2hvdWxkIGJlIHNldCBpbiB0aGUgPHZhcm5hbWU+ cHJpbWFyeV9jb25uaW5mbzwvdmFybmFtZT4KLSAgICAgICAgc2V0dGluZyBpbiA8ZmlsZW5h bWU+cmVjb3ZlcnkuY29uZjwvZmlsZW5hbWU+OyB0aGUgZGVmYXVsdAotICAgICAgICBpcyA8 bGl0ZXJhbD53YWxyZWNlaXZlcjwvbGl0ZXJhbD4uICBGb3IgbG9naWNhbCByZXBsaWNhdGlv biwgdGhpcyBjYW4KLSAgICAgICAgYmUgc2V0IGluIHRoZSBjb25uZWN0aW9uIGluZm9ybWF0 aW9uIG9mIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBpdAotICAgICAgICBkZWZhdWx0cyB0byB0 aGUgc3Vic2NyaXB0aW9uIG5hbWUuICBGb3Igb3RoZXIgcmVwbGljYXRpb24gc3RyZWFtCi0g ICAgICAgIGNvbnN1bWVycywgY29uc3VsdCB0aGVpciBkb2N1bWVudGF0aW9uLgorICAgICAg ICBzZXR0aW5nOyB0aGUgZGVmYXVsdCBpcyA8bGl0ZXJhbD53YWxyZWNlaXZlcjwvbGl0ZXJh bD4uCisgICAgICAgIEZvciBsb2dpY2FsIHJlcGxpY2F0aW9uLCB0aGlzIGNhbiBiZSBzZXQg aW4gdGhlIGNvbm5lY3Rpb24KKyAgICAgICAgaW5mb3JtYXRpb24gb2YgdGhlIHN1YnNjcmlw dGlvbiwgYW5kIGl0IGRlZmF1bHRzIHRvIHRoZQorICAgICAgICBzdWJzY3JpcHRpb24gbmFt ZS4gIEZvciBvdGhlciByZXBsaWNhdGlvbiBzdHJlYW0gY29uc3VtZXJzLAorICAgICAgICBj b25zdWx0IHRoZWlyIGRvY3VtZW50YXRpb24uCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxw YXJhPgogICAgICAgICBUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgYSBsaXN0IG9mIHN0YW5k Ynkgc2VydmVycyB1c2luZwpAQCAtMzM1MCw2ICszNzIxLDc5IEBAIDx0aXRsZT5TdGFuZGJ5 IFNlcnZlcnM8L3RpdGxlPgogCiAgICAgPHZhcmlhYmxlbGlzdD4KIAorICAgICAgIDx2YXJs aXN0ZW50cnkgaWQ9Imd1Yy1wcmltYXJ5LWNvbm5pbmZvIiB4cmVmbGFiZWw9InByaW1hcnlf Y29ubmluZm8iPgorICAgICAgICA8dGVybT48dmFybmFtZT5wcmltYXJ5X2Nvbm5pbmZvPC92 YXJuYW1lPiAoPHR5cGU+c3RyaW5nPC90eXBlPikKKyAgICAgICAgPGluZGV4dGVybT4KKyAg ICAgICAgICA8cHJpbWFyeT48dmFybmFtZT5wcmltYXJ5X2Nvbm5pbmZvPC92YXJuYW1lPiBj b25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgICAgPC9pbmRleHRlcm0+ CisgICAgICAgIDwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+ CisgICAgICAgICAgU3BlY2lmaWVzIGEgY29ubmVjdGlvbiBzdHJpbmcgdG8gYmUgdXNlZCBm b3IgdGhlIHN0YW5kYnkgc2VydmVyCisgICAgICAgICAgdG8gY29ubmVjdCB3aXRoIGEgc2Vu ZGluZyBzZXJ2ZXIuIFRoaXMgc3RyaW5nIGlzIGluIHRoZSBmb3JtYXQKKyAgICAgICAgICBk ZXNjcmliZWQgaW4gPHhyZWYgbGlua2VuZD0ibGlicHEtY29ubnN0cmluZyIvPi4gSWYgYW55 IG9wdGlvbiBpcworICAgICAgICAgIHVuc3BlY2lmaWVkIGluIHRoaXMgc3RyaW5nLCB0aGVu IHRoZSBjb3JyZXNwb25kaW5nIGVudmlyb25tZW50CisgICAgICAgICAgdmFyaWFibGUgKHNl ZSA8eHJlZiBsaW5rZW5kPSJsaWJwcS1lbnZhcnMiLz4pIGlzIGNoZWNrZWQuIElmIHRoZQor ICAgICAgICAgIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG5vdCBzZXQgZWl0aGVyLCB0aGVu CisgICAgICAgICAgZGVmYXVsdHMgYXJlIHVzZWQuCisgICAgICAgICA8L3BhcmE+CisgICAg ICAgICA8cGFyYT4KKyAgICAgICAgICBUaGUgY29ubmVjdGlvbiBzdHJpbmcgc2hvdWxkIHNw ZWNpZnkgdGhlIGhvc3QgbmFtZSAob3IgYWRkcmVzcykKKyAgICAgICAgICBvZiB0aGUgc2Vu ZGluZyBzZXJ2ZXIsIGFzIHdlbGwgYXMgdGhlIHBvcnQgbnVtYmVyIGlmIGl0IGlzIG5vdAor ICAgICAgICAgIHRoZSBzYW1lIGFzIHRoZSBzdGFuZGJ5IHNlcnZlcidzIGRlZmF1bHQuCisg ICAgICAgICAgQWxzbyBzcGVjaWZ5IGEgdXNlciBuYW1lIGNvcnJlc3BvbmRpbmcgdG8gYSBz dWl0YWJseS1wcml2aWxlZ2VkIHJvbGUKKyAgICAgICAgICBvbiB0aGUgc2VuZGluZyBzZXJ2 ZXIgKHNlZQorICAgICAgICAgIDx4cmVmIGxpbmtlbmQ9InN0cmVhbWluZy1yZXBsaWNhdGlv bi1hdXRoZW50aWNhdGlvbiIvPikuCisgICAgICAgICAgQSBwYXNzd29yZCBuZWVkcyB0byBi ZSBwcm92aWRlZCB0b28sIGlmIHRoZSBzZW5kZXIgZGVtYW5kcyBwYXNzd29yZAorICAgICAg ICAgIGF1dGhlbnRpY2F0aW9uLiAgSXQgY2FuIGJlIHByb3ZpZGVkIGluIHRoZQorICAgICAg ICAgIDx2YXJuYW1lPnByaW1hcnlfY29ubmluZm88L3Zhcm5hbWU+IHN0cmluZywgb3IgaW4g YSBzZXBhcmF0ZQorICAgICAgICAgIDxmaWxlbmFtZT5+Ly5wZ3Bhc3M8L2ZpbGVuYW1lPiBm aWxlIG9uIHRoZSBzdGFuZGJ5IHNlcnZlciAodXNlCisgICAgICAgICAgPGxpdGVyYWw+cmVw bGljYXRpb248L2xpdGVyYWw+IGFzIHRoZSBkYXRhYmFzZSBuYW1lKS4KKyAgICAgICAgICBE byBub3Qgc3BlY2lmeSBhIGRhdGFiYXNlIG5hbWUgaW4gdGhlCisgICAgICAgICAgPHZhcm5h bWU+cHJpbWFyeV9jb25uaW5mbzwvdmFybmFtZT4gc3RyaW5nLgorICAgICAgICAgPC9wYXJh PgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgVGhpcyBwYXJhbWV0ZXIgY2FuIG9ubHkg YmUgc2V0IGF0IHNlcnZlciBzdGFydC4KKyAgICAgICAgICBUaGlzIHNldHRpbmcgaGFzIG5v IGVmZmVjdCBpZiB0aGUgc2VydmVyIGlzIG5vdCBpbiBzdGFuZGJ5IG1vZGUuCisgICAgICAg ICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+ CisgICAgICAgPHZhcmxpc3RlbnRyeSBpZD0iZ3VjLXByaW1hcnktc2xvdC1uYW1lIiB4cmVm bGFiZWw9InByaW1hcnlfc2xvdF9uYW1lIj4KKyAgICAgICAgPHRlcm0+PHZhcm5hbWU+cHJp bWFyeV9zbG90X25hbWU8L3Zhcm5hbWU+ICg8dHlwZT5zdHJpbmc8L3R5cGU+KQorICAgICAg ICA8aW5kZXh0ZXJtPgorICAgICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPnByaW1hcnlfc2xv dF9uYW1lPC92YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAg ICAgICAgPC9pbmRleHRlcm0+CisgICAgICAgIDwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVt PgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgT3B0aW9uYWxseSBzcGVjaWZpZXMgYW4g ZXhpc3RpbmcgcmVwbGljYXRpb24gc2xvdCB0byBiZSB1c2VkIHdoZW4KKyAgICAgICAgICBj b25uZWN0aW5nIHRvIHRoZSBzZW5kaW5nIHNlcnZlciB2aWEgc3RyZWFtaW5nIHJlcGxpY2F0 aW9uIHRvIGNvbnRyb2wKKyAgICAgICAgICByZXNvdXJjZSByZW1vdmFsIG9uIHRoZSB1cHN0 cmVhbSBub2RlCisgICAgICAgICAgKHNlZSA8eHJlZiBsaW5rZW5kPSJzdHJlYW1pbmctcmVw bGljYXRpb24tc2xvdHMiLz4pLgorICAgICAgICAgIFRoaXMgcGFyYW1ldGVyIGNhbiBvbmx5 IGJlIHNldCBhdCBzZXJ2ZXIgc3RhcnQuCisgICAgICAgICAgVGhpcyBzZXR0aW5nIGhhcyBu byBlZmZlY3QgaWYgPHZhcm5hbWU+cHJpbWFyeV9jb25uaW5mbzwvdmFybmFtZT4gaXMgbm90 CisgICAgICAgICAgc2V0LgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVt PgorICAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICAgPHZhcmxpc3RlbnRyeSBpZD0i Z3VjLXByb21vdGUtdHJpZ2dlci1maWxlIiB4cmVmbGFiZWw9InByb21vdGVfdHJpZ2dlcl9m aWxlIj4KKyAgICAgICAgPHRlcm0+PHZhcm5hbWU+cHJvbW90ZV90cmlnZ2VyX2ZpbGU8L3Zh cm5hbWU+ICg8dHlwZT5zdHJpbmc8L3R5cGU+KQorICAgICAgICA8aW5kZXh0ZXJtPgorICAg ICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPnByb21vdGVfdHJpZ2dlcl9maWxlPC92YXJuYW1l PiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgICAgPC9pbmRleHRl cm0+CisgICAgICAgIDwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBh cmE+CisgICAgICAgICAgU3BlY2lmaWVzIGEgdHJpZ2dlciBmaWxlIHdob3NlIHByZXNlbmNl IGVuZHMgcmVjb3ZlcnkgaW4gdGhlCisgICAgICAgICAgc3RhbmRieS4gIEV2ZW4gaWYgdGhp cyB2YWx1ZSBpcyBub3Qgc2V0LCB5b3UgY2FuIHN0aWxsIHByb21vdGUKKyAgICAgICAgICB0 aGUgc3RhbmRieSB1c2luZyA8Y29tbWFuZD5wZ19jdGwgcHJvbW90ZTwvY29tbWFuZD4gb3Ig Y2FsbGluZworICAgICAgICAgIDxmdW5jdGlvbj5wZ19wcm9tb3RlPC9mdW5jdGlvbj4uCisg ICAgICAgICAgVGhpcyBwYXJhbWV0ZXIgY2FuIG9ubHkgYmUgc2V0IGF0IHNlcnZlciBzdGFy dC4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICA8L3Zh cmxpc3RlbnRyeT4KKwogICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtaG90LXN0YW5kYnki IHhyZWZsYWJlbD0iaG90X3N0YW5kYnkiPgogICAgICAgPHRlcm0+PHZhcm5hbWU+aG90X3N0 YW5kYnk8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKICAgICAgIDxpbmRleHRl cm0+CkBAIC0zNTQzLDYgKzM5ODcsNjcgQEAgPHRpdGxlPlN0YW5kYnkgU2VydmVyczwvdGl0 bGU+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICA8 dmFybGlzdGVudHJ5IGlkPSJndWMtcmVjb3ZlcnktbWluLWFwcGx5LWRlbGF5IiB4cmVmbGFi ZWw9InJlY292ZXJ5X21pbl9hcHBseV9kZWxheSI+CisgICAgICA8dGVybT48dmFybmFtZT5y ZWNvdmVyeV9taW5fYXBwbHlfZGVsYXk8L3Zhcm5hbWU+ICg8dHlwZT5pbnRlZ2VyPC90eXBl PikKKyAgICAgIDxpbmRleHRlcm0+CisgICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPnJlY292 ZXJ5X21pbl9hcHBseV9kZWxheTwvdmFybmFtZT4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXI8 L3ByaW1hcnk+CisgICAgICA8L2luZGV4dGVybT4KKyAgICAgIDwvdGVybT4KKyAgICAgIDxs aXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgQnkgZGVmYXVsdCwgYSBzdGFuZGJ5 IHNlcnZlciByZXN0b3JlcyBXQUwgcmVjb3JkcyBmcm9tIHRoZQorICAgICAgICBzZW5kaW5n IHNlcnZlciBhcyBzb29uIGFzIHBvc3NpYmxlLiBJdCBtYXkgYmUgdXNlZnVsIHRvIGhhdmUg YSB0aW1lLWRlbGF5ZWQKKyAgICAgICAgY29weSBvZiB0aGUgZGF0YSwgb2ZmZXJpbmcgb3Bw b3J0dW5pdGllcyB0byBjb3JyZWN0IGRhdGEgbG9zcyBlcnJvcnMuCisgICAgICAgIFRoaXMg cGFyYW1ldGVyIGFsbG93cyB5b3UgdG8gZGVsYXkgcmVjb3ZlcnkgYnkgYSBmaXhlZCBwZXJp b2Qgb2YgdGltZSwKKyAgICAgICAgbWVhc3VyZWQgaW4gbWlsbGlzZWNvbmRzIGlmIG5vIHVu aXQgaXMgc3BlY2lmaWVkLiAgRm9yIGV4YW1wbGUsIGlmCisgICAgICAgIHlvdSBzZXQgdGhp cyBwYXJhbWV0ZXIgdG8gPGxpdGVyYWw+NW1pbjwvbGl0ZXJhbD4sIHRoZSBzdGFuZGJ5IHdp bGwKKyAgICAgICAgcmVwbGF5IGVhY2ggdHJhbnNhY3Rpb24gY29tbWl0IG9ubHkgd2hlbiB0 aGUgc3lzdGVtIHRpbWUgb24gdGhlIHN0YW5kYnkKKyAgICAgICAgaXMgYXQgbGVhc3QgZml2 ZSBtaW51dGVzIHBhc3QgdGhlIGNvbW1pdCB0aW1lIHJlcG9ydGVkIGJ5IHRoZSBtYXN0ZXIu CisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBJdCBpcyBwb3NzaWJs ZSB0aGF0IHRoZSByZXBsaWNhdGlvbiBkZWxheSBiZXR3ZWVuIHNlcnZlcnMgZXhjZWVkcyB0 aGUKKyAgICAgICAgdmFsdWUgb2YgdGhpcyBwYXJhbWV0ZXIsIGluIHdoaWNoIGNhc2Ugbm8g ZGVsYXkgaXMgYWRkZWQuCisgICAgICAgIE5vdGUgdGhhdCB0aGUgZGVsYXkgaXMgY2FsY3Vs YXRlZCBiZXR3ZWVuIHRoZSBXQUwgdGltZSBzdGFtcCBhcyB3cml0dGVuCisgICAgICAgIG9u IG1hc3RlciBhbmQgdGhlIGN1cnJlbnQgdGltZSBvbiB0aGUgc3RhbmRieS4gRGVsYXlzIGlu IHRyYW5zZmVyCisgICAgICAgIGJlY2F1c2Ugb2YgbmV0d29yayBsYWcgb3IgY2FzY2FkaW5n IHJlcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb25zCisgICAgICAgIG1heSByZWR1Y2UgdGhlIGFj dHVhbCB3YWl0IHRpbWUgc2lnbmlmaWNhbnRseS4gSWYgdGhlIHN5c3RlbQorICAgICAgICBj bG9ja3Mgb24gbWFzdGVyIGFuZCBzdGFuZGJ5IGFyZSBub3Qgc3luY2hyb25pemVkLCB0aGlz IG1heSBsZWFkIHRvCisgICAgICAgIHJlY292ZXJ5IGFwcGx5aW5nIHJlY29yZHMgZWFybGll ciB0aGFuIGV4cGVjdGVkOyBidXQgdGhhdCBpcyBub3QgYQorICAgICAgICBtYWpvciBpc3N1 ZSBiZWNhdXNlIHVzZWZ1bCBzZXR0aW5ncyBvZiB0aGlzIHBhcmFtZXRlciBhcmUgbXVjaCBs YXJnZXIKKyAgICAgICAgdGhhbiB0eXBpY2FsIHRpbWUgZGV2aWF0aW9ucyBiZXR3ZWVuIHNl cnZlcnMuCisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgZGVs YXkgb2NjdXJzIG9ubHkgb24gV0FMIHJlY29yZHMgZm9yIHRyYW5zYWN0aW9uIGNvbW1pdHMu CisgICAgICAgIE90aGVyIHJlY29yZHMgYXJlIHJlcGxheWVkIGFzIHF1aWNrbHkgYXMgcG9z c2libGUsIHdoaWNoCisgICAgICAgIGlzIG5vdCBhIHByb2JsZW0gYmVjYXVzZSBNVkNDIHZp c2liaWxpdHkgcnVsZXMgZW5zdXJlIHRoZWlyIGVmZmVjdHMKKyAgICAgICAgYXJlIG5vdCB2 aXNpYmxlIHVudGlsIHRoZSBjb3JyZXNwb25kaW5nIGNvbW1pdCByZWNvcmQgaXMgYXBwbGll ZC4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBkZWxheSBv Y2N1cnMgb25jZSB0aGUgZGF0YWJhc2UgaW4gcmVjb3ZlcnkgaGFzIHJlYWNoZWQgYSBjb25z aXN0ZW50CisgICAgICAgIHN0YXRlLCB1bnRpbCB0aGUgc3RhbmRieSBpcyBwcm9tb3RlZCBv ciB0cmlnZ2VyZWQuIEFmdGVyIHRoYXQgdGhlIHN0YW5kYnkKKyAgICAgICAgd2lsbCBlbmQg cmVjb3Zlcnkgd2l0aG91dCBmdXJ0aGVyIHdhaXRpbmcuCisgICAgICAgPC9wYXJhPgorICAg ICAgIDxwYXJhPgorICAgICAgICBUaGlzIHBhcmFtZXRlciBpcyBpbnRlbmRlZCBmb3IgdXNl IHdpdGggc3RyZWFtaW5nIHJlcGxpY2F0aW9uIGRlcGxveW1lbnRzOworICAgICAgICBob3dl dmVyLCBpZiB0aGUgcGFyYW1ldGVyIGlzIHNwZWNpZmllZCBpdCB3aWxsIGJlIGhvbm9yZWQg aW4gYWxsIGNhc2VzLgorCisgICAgICAgIDx2YXJuYW1lPmhvdF9zdGFuZGJ5X2ZlZWRiYWNr PC92YXJuYW1lPiB3aWxsIGJlIGRlbGF5ZWQgYnkgdXNlIG9mIHRoaXMgZmVhdHVyZQorICAg ICAgICB3aGljaCBjb3VsZCBsZWFkIHRvIGJsb2F0IG9uIHRoZSBtYXN0ZXI7IHVzZSBib3Ro IHRvZ2V0aGVyIHdpdGggY2FyZS4KKworICAgICAgICA8d2FybmluZz4KKyAgICAgICAgIDxw YXJhPgorICAgICAgICAgIFN5bmNocm9ub3VzIHJlcGxpY2F0aW9uIGlzIGFmZmVjdGVkIGJ5 IHRoaXMgc2V0dGluZyB3aGVuIDx2YXJuYW1lPnN5bmNocm9ub3VzX2NvbW1pdDwvdmFybmFt ZT4KKyAgICAgICAgICBpcyBzZXQgdG8gPGxpdGVyYWw+cmVtb3RlX2FwcGx5PC9saXRlcmFs PjsgZXZlcnkgPGxpdGVyYWw+Q09NTUlUPC9saXRlcmFsPgorICAgICAgICAgIHdpbGwgbmVl ZCB0byB3YWl0IHRvIGJlIGFwcGxpZWQuCisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwv d2FybmluZz4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoaXMg cGFyYW1ldGVyIGNhbiBvbmx5IGJlIHNldCBhdCBzZXJ2ZXIgc3RhcnQuCisgICAgICAgPC9w YXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAg PC92YXJpYWJsZWxpc3Q+CiAgICAgPC9zZWN0Mj4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL2ZpbGVsaXN0LnNnbWwgYi9kb2Mvc3JjL3NnbWwvZmlsZWxpc3Quc2dtbAppbmRleCA0 OGFjMTRhODM4Li4wYTEwZGY2NDAyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZmlsZWxp c3Quc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZmlsZWxpc3Quc2dtbApAQCAtNDIsNyArNDIs NiBAQAogPCFFTlRJVFkgbWFuYWdlLWFnICAgICBTWVNURU0gIm1hbmFnZS1hZy5zZ21sIj4K IDwhRU5USVRZIG1vbml0b3JpbmcgICAgU1lTVEVNICJtb25pdG9yaW5nLnNnbWwiPgogPCFF TlRJVFkgcmVncmVzcyAgICAgICBTWVNURU0gInJlZ3Jlc3Muc2dtbCI+Ci08IUVOVElUWSBy ZWNvdmVyeS1jb25maWcgU1lTVEVNICJyZWNvdmVyeS1jb25maWcuc2dtbCI+CiA8IUVOVElU WSBydW50aW1lICAgICAgIFNZU1RFTSAicnVudGltZS5zZ21sIj4KIDwhRU5USVRZIGNvbmZp ZyAgICAgICAgU1lTVEVNICJjb25maWcuc2dtbCI+CiA8IUVOVElUWSB1c2VyLW1hbmFnICAg IFNZU1RFTSAidXNlci1tYW5hZy5zZ21sIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9m dW5jLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCmluZGV4IGQ3MzAyNjE3NDIuLjA5 Yzc3ZGIwNDUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL2Z1bmMuc2dtbApAQCAtMTkwOTQsNyArMTkwOTQsNyBAQCA8dGl0bGU+QmFj a3VwIENvbnRyb2wgRnVuY3Rpb25zPC90aXRsZT4KICAgICA8ZnVuY3Rpb24+cGdfY3JlYXRl X3Jlc3RvcmVfcG9pbnQ8L2Z1bmN0aW9uPiBjcmVhdGVzIGEgbmFtZWQgd3JpdGUtYWhlYWQg bG9nCiAgICAgcmVjb3JkIHRoYXQgY2FuIGJlIHVzZWQgYXMgcmVjb3ZlcnkgdGFyZ2V0LCBh bmQgcmV0dXJucyB0aGUgY29ycmVzcG9uZGluZwogICAgIHdyaXRlLWFoZWFkIGxvZyBsb2Nh dGlvbi4gIFRoZSBnaXZlbiBuYW1lIGNhbiB0aGVuIGJlIHVzZWQgd2l0aAotICAgIDx4cmVm IGxpbmtlbmQ9InJlY292ZXJ5LXRhcmdldC1uYW1lIi8+IHRvIHNwZWNpZnkgdGhlIHBvaW50 IHVwIHRvIHdoaWNoCisgICAgPHhyZWYgbGlua2VuZD0iZ3VjLXJlY292ZXJ5LXRhcmdldC1u YW1lIi8+IHRvIHNwZWNpZnkgdGhlIHBvaW50IHVwIHRvIHdoaWNoCiAgICAgcmVjb3Zlcnkg d2lsbCBwcm9jZWVkLiAgQXZvaWQgY3JlYXRpbmcgbXVsdGlwbGUgcmVzdG9yZSBwb2ludHMg d2l0aCB0aGUKICAgICBzYW1lIG5hbWUsIHNpbmNlIHJlY292ZXJ5IHdpbGwgc3RvcCBhdCB0 aGUgZmlyc3Qgb25lIHdob3NlIG5hbWUgbWF0Y2hlcwogICAgIHRoZSByZWNvdmVyeSB0YXJn ZXQuCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvaGlnaC1hdmFpbGFiaWxpdHkuc2dtbCBi L2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21sCmluZGV4IGZhZjhlNzE4NTQu LmQ3MjdkMTQxZjkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0 eS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21sCkBAIC02 MTgsNyArNjE4LDcgQEAgPHRpdGxlPlN0YW5kYnkgU2VydmVyIE9wZXJhdGlvbjwvdGl0bGU+ CiAgICA8cGFyYT4KICAgICBJbiBzdGFuZGJ5IG1vZGUsIHRoZSBzZXJ2ZXIgY29udGludW91 c2x5IGFwcGxpZXMgV0FMIHJlY2VpdmVkIGZyb20gdGhlCiAgICAgbWFzdGVyIHNlcnZlci4g VGhlIHN0YW5kYnkgc2VydmVyIGNhbiByZWFkIFdBTCBmcm9tIGEgV0FMIGFyY2hpdmUKLSAg ICAoc2VlIDx4cmVmIGxpbmtlbmQ9InJlc3RvcmUtY29tbWFuZCIvPikgb3IgZGlyZWN0bHkg ZnJvbSB0aGUgbWFzdGVyCisgICAgKHNlZSA8eHJlZiBsaW5rZW5kPSJndWMtcmVzdG9yZS1j b21tYW5kIi8+KSBvciBkaXJlY3RseSBmcm9tIHRoZSBtYXN0ZXIKICAgICBvdmVyIGEgVENQ IGNvbm5lY3Rpb24gKHN0cmVhbWluZyByZXBsaWNhdGlvbikuIFRoZSBzdGFuZGJ5IHNlcnZl ciB3aWxsCiAgICAgYWxzbyBhdHRlbXB0IHRvIHJlc3RvcmUgYW55IFdBTCBmb3VuZCBpbiB0 aGUgc3RhbmRieSBjbHVzdGVyJ3MKICAgICA8ZmlsZW5hbWU+cGdfd2FsPC9maWxlbmFtZT4g ZGlyZWN0b3J5LiBUaGF0IHR5cGljYWxseSBoYXBwZW5zIGFmdGVyIGEgc2VydmVyCkBAIC02 NDUsNyArNjQ1LDcgQEAgPHRpdGxlPlN0YW5kYnkgU2VydmVyIE9wZXJhdGlvbjwvdGl0bGU+ CiAgICA8cGFyYT4KICAgICBTdGFuZGJ5IG1vZGUgaXMgZXhpdGVkIGFuZCB0aGUgc2VydmVy IHN3aXRjaGVzIHRvIG5vcm1hbCBvcGVyYXRpb24KICAgICB3aGVuIDxjb21tYW5kPnBnX2N0 bCBwcm9tb3RlPC9jb21tYW5kPiBpcyBydW4gb3IgYSB0cmlnZ2VyIGZpbGUgaXMgZm91bmQK LSAgICAoPHZhcm5hbWU+dHJpZ2dlcl9maWxlPC92YXJuYW1lPikuIEJlZm9yZSBmYWlsb3Zl ciwKKyAgICAoPHZhcm5hbWU+cHJvbW90ZV90cmlnZ2VyX2ZpbGU8L3Zhcm5hbWU+KS4gQmVm b3JlIGZhaWxvdmVyLAogICAgIGFueSBXQUwgaW1tZWRpYXRlbHkgYXZhaWxhYmxlIGluIHRo ZSBhcmNoaXZlIG9yIGluIDxmaWxlbmFtZT5wZ193YWw8L2ZpbGVuYW1lPiB3aWxsIGJlCiAg ICAgcmVzdG9yZWQsIGJ1dCBubyBhdHRlbXB0IGlzIG1hZGUgdG8gY29ubmVjdCB0byB0aGUg bWFzdGVyLgogICAgPC9wYXJhPgpAQCAtNjg2LDEwICs2ODYsOSBAQCA8dGl0bGU+U2V0dGlu ZyBVcCBhIFN0YW5kYnkgU2VydmVyPC90aXRsZT4KIAogICAgPHBhcmE+CiAgICAgVG8gc2V0 IHVwIHRoZSBzdGFuZGJ5IHNlcnZlciwgcmVzdG9yZSB0aGUgYmFzZSBiYWNrdXAgdGFrZW4g ZnJvbSBwcmltYXJ5Ci0gICAgc2VydmVyIChzZWUgPHhyZWYgbGlua2VuZD0iYmFja3VwLXBp dHItcmVjb3ZlcnkiLz4pLiBDcmVhdGUgYSByZWNvdmVyeQotICAgIGNvbW1hbmQgZmlsZSA8 ZmlsZW5hbWU+cmVjb3ZlcnkuY29uZjwvZmlsZW5hbWU+IGluIHRoZSBzdGFuZGJ5J3MgY2x1 c3RlciBkYXRhCi0gICAgZGlyZWN0b3J5LCBhbmQgdHVybiBvbiA8dmFybmFtZT5zdGFuZGJ5 X21vZGU8L3Zhcm5hbWU+LiBTZXQKLSAgICA8dmFybmFtZT5yZXN0b3JlX2NvbW1hbmQ8L3Zh cm5hbWU+IHRvIGEgc2ltcGxlIGNvbW1hbmQgdG8gY29weSBmaWxlcyBmcm9tCisgICAgc2Vy dmVyIChzZWUgPHhyZWYgbGlua2VuZD0iYmFja3VwLXBpdHItcmVjb3ZlcnkiLz4pLiBDcmVh dGUgYSBmaWxlCisgICAgPGZpbGVuYW1lPnN0YW5kYnkuc2lnbmFsPC9maWxlbmFtZT4gaW4g dGhlIHN0YW5kYnkncyBjbHVzdGVyIGRhdGEKKyAgICBkaXJlY3RvcnkuIFNldCA8eHJlZiBs aW5rZW5kPSJndWMtcmVzdG9yZS1jb21tYW5kIi8+IHRvIGEgc2ltcGxlIGNvbW1hbmQgdG8g Y29weSBmaWxlcyBmcm9tCiAgICAgdGhlIFdBTCBhcmNoaXZlLiBJZiB5b3UgcGxhbiB0byBo YXZlIG11bHRpcGxlIHN0YW5kYnkgc2VydmVycyBmb3IgaGlnaAogICAgIGF2YWlsYWJpbGl0 eSBwdXJwb3Nlcywgc2V0IDx2YXJuYW1lPnJlY292ZXJ5X3RhcmdldF90aW1lbGluZTwvdmFy bmFtZT4gdG8KICAgICA8bGl0ZXJhbD5sYXRlc3Q8L2xpdGVyYWw+LCB0byBtYWtlIHRoZSBz dGFuZGJ5IHNlcnZlciBmb2xsb3cgdGhlIHRpbWVsaW5lIGNoYW5nZQpAQCAtNjk5LDcgKzY5 OCw3IEBAIDx0aXRsZT5TZXR0aW5nIFVwIGEgU3RhbmRieSBTZXJ2ZXI8L3RpdGxlPgogICAg PG5vdGU+CiAgICAgIDxwYXJhPgogICAgICBEbyBub3QgdXNlIHBnX3N0YW5kYnkgb3Igc2lt aWxhciB0b29scyB3aXRoIHRoZSBidWlsdC1pbiBzdGFuZGJ5IG1vZGUKLSAgICAgZGVzY3Jp YmVkIGhlcmUuIDx2YXJuYW1lPnJlc3RvcmVfY29tbWFuZDwvdmFybmFtZT4gc2hvdWxkIHJl dHVybiBpbW1lZGlhdGVseQorICAgICBkZXNjcmliZWQgaGVyZS4gPHhyZWYgbGlua2VuZD0i Z3VjLXJlc3RvcmUtY29tbWFuZCIvPiBzaG91bGQgcmV0dXJuIGltbWVkaWF0ZWx5CiAgICAg IGlmIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0OyB0aGUgc2VydmVyIHdpbGwgcmV0cnkgdGhl IGNvbW1hbmQgYWdhaW4gaWYKICAgICAgbmVjZXNzYXJ5LiBTZWUgPHhyZWYgbGlua2VuZD0i bG9nLXNoaXBwaW5nLWFsdGVybmF0aXZlIi8+CiAgICAgIGZvciB1c2luZyB0b29scyBsaWtl IHBnX3N0YW5kYnkuCkBAIC03MDgsMTEgKzcwNywxMSBAQCA8dGl0bGU+U2V0dGluZyBVcCBh IFN0YW5kYnkgU2VydmVyPC90aXRsZT4KIAogICAgPHBhcmE+CiAgICAgIElmIHlvdSB3YW50 IHRvIHVzZSBzdHJlYW1pbmcgcmVwbGljYXRpb24sIGZpbGwgaW4KLSAgICAgPHZhcm5hbWU+ cHJpbWFyeV9jb25uaW5mbzwvdmFybmFtZT4gd2l0aCBhIGxpYnBxIGNvbm5lY3Rpb24gc3Ry aW5nLCBpbmNsdWRpbmcKKyAgICAgPHhyZWYgbGlua2VuZD0iZ3VjLXByaW1hcnktY29ubmlu Zm8iLz4gd2l0aCBhIGxpYnBxIGNvbm5lY3Rpb24gc3RyaW5nLCBpbmNsdWRpbmcKICAgICAg dGhlIGhvc3QgbmFtZSAob3IgSVAgYWRkcmVzcykgYW5kIGFueSBhZGRpdGlvbmFsIGRldGFp bHMgbmVlZGVkIHRvCiAgICAgIGNvbm5lY3QgdG8gdGhlIHByaW1hcnkgc2VydmVyLiBJZiB0 aGUgcHJpbWFyeSBuZWVkcyBhIHBhc3N3b3JkIGZvcgogICAgICBhdXRoZW50aWNhdGlvbiwg dGhlIHBhc3N3b3JkIG5lZWRzIHRvIGJlIHNwZWNpZmllZCBpbgotICAgICA8dmFybmFtZT5w cmltYXJ5X2Nvbm5pbmZvPC92YXJuYW1lPiBhcyB3ZWxsLgorICAgICA8eHJlZiBsaW5rZW5k PSJndWMtcHJpbWFyeS1jb25uaW5mbyIvPiBhcyB3ZWxsLgogICAgPC9wYXJhPgogCiAgICA8 cGFyYT4KQEAgLTcyNCw3ICs3MjMsNyBAQCA8dGl0bGU+U2V0dGluZyBVcCBhIFN0YW5kYnkg U2VydmVyPC90aXRsZT4KIAogICAgPHBhcmE+CiAgICAgSWYgeW91J3JlIHVzaW5nIGEgV0FM IGFyY2hpdmUsIGl0cyBzaXplIGNhbiBiZSBtaW5pbWl6ZWQgdXNpbmcgdGhlIDx4cmVmCi0g ICAgbGlua2VuZD0iYXJjaGl2ZS1jbGVhbnVwLWNvbW1hbmQiLz4gcGFyYW1ldGVyIHRvIHJl bW92ZSBmaWxlcyB0aGF0IGFyZSBubworICAgIGxpbmtlbmQ9Imd1Yy1hcmNoaXZlLWNsZWFu dXAtY29tbWFuZCIvPiBwYXJhbWV0ZXIgdG8gcmVtb3ZlIGZpbGVzIHRoYXQgYXJlIG5vCiAg ICAgbG9uZ2VyIHJlcXVpcmVkIGJ5IHRoZSBzdGFuZGJ5IHNlcnZlci4KICAgICBUaGUgPGFw cGxpY2F0aW9uPnBnX2FyY2hpdmVjbGVhbnVwPC9hcHBsaWNhdGlvbj4gdXRpbGl0eSBpcyBk ZXNpZ25lZCBzcGVjaWZpY2FsbHkgdG8KICAgICBiZSB1c2VkIHdpdGggPHZhcm5hbWU+YXJj aGl2ZV9jbGVhbnVwX2NvbW1hbmQ8L3Zhcm5hbWU+IGluIHR5cGljYWwgc2luZ2xlLXN0YW5k YnkKQEAgLTczNSw5ICs3MzQsOCBAQCA8dGl0bGU+U2V0dGluZyBVcCBhIFN0YW5kYnkgU2Vy dmVyPC90aXRsZT4KICAgIDwvcGFyYT4KIAogICAgPHBhcmE+Ci0gICAgQSBzaW1wbGUgZXhh bXBsZSBvZiBhIDxmaWxlbmFtZT5yZWNvdmVyeS5jb25mPC9maWxlbmFtZT4gaXM6CisgICAg QSBzaW1wbGUgZXhhbXBsZSBvZiBjb25maWd1cmF0aW9uIGlzOgogPHByb2dyYW1saXN0aW5n Pgotc3RhbmRieV9tb2RlID0gJ29uJwogcHJpbWFyeV9jb25uaW5mbyA9ICdob3N0PTE5Mi4x NjguMS41MCBwb3J0PTU0MzIgdXNlcj1mb28gcGFzc3dvcmQ9Zm9vcGFzcyBvcHRpb25zPScn LWMgd2FsX3NlbmRlcl90aW1lb3V0PTUwMDAnJycKIHJlc3RvcmVfY29tbWFuZCA9ICdjcCAv cGF0aC90by9hcmNoaXZlLyVmICVwJwogYXJjaGl2ZV9jbGVhbnVwX2NvbW1hbmQgPSAncGdf YXJjaGl2ZWNsZWFudXAgL3BhdGgvdG8vYXJjaGl2ZSAlcicKQEAgLTc5Myw4ICs3OTEsOCBA QCA8dGl0bGU+U3RyZWFtaW5nIFJlcGxpY2F0aW9uPC90aXRsZT4KICAgICBUbyB1c2Ugc3Ry ZWFtaW5nIHJlcGxpY2F0aW9uLCBzZXQgdXAgYSBmaWxlLWJhc2VkIGxvZy1zaGlwcGluZyBz dGFuZGJ5CiAgICAgc2VydmVyIGFzIGRlc2NyaWJlZCBpbiA8eHJlZiBsaW5rZW5kPSJ3YXJt LXN0YW5kYnkiLz4uIFRoZSBzdGVwIHRoYXQKICAgICB0dXJucyBhIGZpbGUtYmFzZWQgbG9n LXNoaXBwaW5nIHN0YW5kYnkgaW50byBzdHJlYW1pbmcgcmVwbGljYXRpb24KLSAgICBzdGFu ZGJ5IGlzIHNldHRpbmcgPHZhcm5hbWU+cHJpbWFyeV9jb25uaW5mbzwvdmFybmFtZT4gc2V0 dGluZyBpbiB0aGUKLSAgICA8ZmlsZW5hbWU+cmVjb3ZlcnkuY29uZjwvZmlsZW5hbWU+IGZp bGUgdG8gcG9pbnQgdG8gdGhlIHByaW1hcnkgc2VydmVyLiBTZXQKKyAgICBzdGFuZGJ5IGlz IHNldHRpbmcgdGhlIDx2YXJuYW1lPnByaW1hcnlfY29ubmluZm88L3Zhcm5hbWU+IHNldHRp bmcKKyAgICB0byBwb2ludCB0byB0aGUgcHJpbWFyeSBzZXJ2ZXIuIFNldAogICAgIDx4cmVm IGxpbmtlbmQ9Imd1Yy1saXN0ZW4tYWRkcmVzc2VzIi8+IGFuZCBhdXRoZW50aWNhdGlvbiBv cHRpb25zCiAgICAgKHNlZSA8ZmlsZW5hbWU+cGdfaGJhLmNvbmY8L2ZpbGVuYW1lPikgb24g dGhlIHByaW1hcnkgc28gdGhhdCB0aGUgc3RhbmRieSBzZXJ2ZXIKICAgICBjYW4gY29ubmVj dCB0byB0aGUgPGxpdGVyYWw+cmVwbGljYXRpb248L2xpdGVyYWw+IHBzZXVkby1kYXRhYmFz ZSBvbiB0aGUgcHJpbWFyeQpAQCAtODU0LDE0ICs4NTIsMTQgQEAgPHRpdGxlPkF1dGhlbnRp Y2F0aW9uPC90aXRsZT4KICAgICA8L3BhcmE+CiAgICAgPHBhcmE+CiAgICAgIFRoZSBob3N0 IG5hbWUgYW5kIHBvcnQgbnVtYmVyIG9mIHRoZSBwcmltYXJ5LCBjb25uZWN0aW9uIHVzZXIg bmFtZSwKLSAgICAgYW5kIHBhc3N3b3JkIGFyZSBzcGVjaWZpZWQgaW4gdGhlIDxmaWxlbmFt ZT5yZWNvdmVyeS5jb25mPC9maWxlbmFtZT4gZmlsZS4KKyAgICAgYW5kIHBhc3N3b3JkIGFy ZSBzcGVjaWZpZWQgaW4gdGhlIDx4cmVmIGxpbmtlbmQ9Imd1Yy1wcmltYXJ5LWNvbm5pbmZv Ii8+LgogICAgICBUaGUgcGFzc3dvcmQgY2FuIGFsc28gYmUgc2V0IGluIHRoZSA8ZmlsZW5h bWU+fi8ucGdwYXNzPC9maWxlbmFtZT4gZmlsZSBvbiB0aGUKICAgICAgc3RhbmRieSAoc3Bl Y2lmeSA8bGl0ZXJhbD5yZXBsaWNhdGlvbjwvbGl0ZXJhbD4gaW4gdGhlIDxyZXBsYWNlYWJs ZT5kYXRhYmFzZTwvcmVwbGFjZWFibGU+CiAgICAgIGZpZWxkKS4KICAgICAgRm9yIGV4YW1w bGUsIGlmIHRoZSBwcmltYXJ5IGlzIHJ1bm5pbmcgb24gaG9zdCBJUCA8bGl0ZXJhbD4xOTIu MTY4LjEuNTA8L2xpdGVyYWw+LAogICAgICBwb3J0IDxsaXRlcmFsPjU0MzI8L2xpdGVyYWw+ LCB0aGUgYWNjb3VudCBuYW1lIGZvciByZXBsaWNhdGlvbiBpcwogICAgICA8bGl0ZXJhbD5m b288L2xpdGVyYWw+LCBhbmQgdGhlIHBhc3N3b3JkIGlzIDxsaXRlcmFsPmZvb3Bhc3M8L2xp dGVyYWw+LCB0aGUgYWRtaW5pc3RyYXRvcgotICAgICBjYW4gYWRkIHRoZSBmb2xsb3dpbmcg bGluZSB0byB0aGUgPGZpbGVuYW1lPnJlY292ZXJ5LmNvbmY8L2ZpbGVuYW1lPiBmaWxlIG9u IHRoZQorICAgICBjYW4gYWRkIHRoZSBmb2xsb3dpbmcgbGluZSB0byB0aGUgPGZpbGVuYW1l PnBvc3RncmVzcWwuY29uZjwvZmlsZW5hbWU+IGZpbGUgb24gdGhlCiAgICAgIHN0YW5kYnk6 CiAKIDxwcm9ncmFtbGlzdGluZz4KQEAgLTk3MywxMCArOTcxLDggQEAgPHRpdGxlPkNvbmZp Z3VyYXRpb24gRXhhbXBsZTwvdGl0bGU+CiAoMSByb3cpCiA8L3Byb2dyYW1saXN0aW5nPgog ICAgICBUbyBjb25maWd1cmUgdGhlIHN0YW5kYnkgdG8gdXNlIHRoaXMgc2xvdCwgPHZhcm5h bWU+cHJpbWFyeV9zbG90X25hbWU8L3Zhcm5hbWU+Ci0gICAgIHNob3VsZCBiZSBjb25maWd1 cmVkIGluIHRoZSBzdGFuZGJ5J3MgPGZpbGVuYW1lPnJlY292ZXJ5LmNvbmY8L2ZpbGVuYW1l Pi4KLSAgICAgSGVyZSBpcyBhIHNpbXBsZSBleGFtcGxlOgorICAgICBzaG91bGQgYmUgY29u ZmlndXJlZCBvbiB0aGUgc3RhbmRieS4gSGVyZSBpcyBhIHNpbXBsZSBleGFtcGxlOgogPHBy b2dyYW1saXN0aW5nPgotc3RhbmRieV9tb2RlID0gJ29uJwogcHJpbWFyeV9jb25uaW5mbyA9 ICdob3N0PTE5Mi4xNjguMS41MCBwb3J0PTU0MzIgdXNlcj1mb28gcGFzc3dvcmQ9Zm9vcGFz cycKIHByaW1hcnlfc2xvdF9uYW1lID0gJ25vZGVfYV9zbG90JwogPC9wcm9ncmFtbGlzdGlu Zz4KQEAgLTE0NzQsMTEgKzE0NzAsMTAgQEAgPHRpdGxlPkZhaWxvdmVyPC90aXRsZT4KICAg ICBUbyB0cmlnZ2VyIGZhaWxvdmVyIG9mIGEgbG9nLXNoaXBwaW5nIHN0YW5kYnkgc2VydmVy LCBydW4KICAgICA8Y29tbWFuZD5wZ19jdGwgcHJvbW90ZTwvY29tbWFuZD4sIGNhbGwgPGZ1 bmN0aW9uPnBnX3Byb21vdGU8L2Z1bmN0aW9uPiwKICAgICBvciBjcmVhdGUgYSB0cmlnZ2Vy IGZpbGUgd2l0aCB0aGUgZmlsZSBuYW1lIGFuZCBwYXRoIHNwZWNpZmllZCBieSB0aGUKLSAg ICA8dmFybmFtZT50cmlnZ2VyX2ZpbGU8L3Zhcm5hbWU+IHNldHRpbmcgaW4KLSAgICA8Zmls ZW5hbWU+cmVjb3ZlcnkuY29uZjwvZmlsZW5hbWU+LiBJZiB5b3UncmUgcGxhbm5pbmcgdG8g dXNlCisgICAgPHZhcm5hbWU+cHJvbW90ZV90cmlnZ2VyX2ZpbGU8L3Zhcm5hbWU+LiBJZiB5 b3UncmUgcGxhbm5pbmcgdG8gdXNlCiAgICAgPGNvbW1hbmQ+cGdfY3RsIHByb21vdGU8L2Nv bW1hbmQ+IG9yIHRvIGNhbGwKICAgICA8ZnVuY3Rpb24+cGdfcHJvbW90ZTwvZnVuY3Rpb24+ IHRvIGZhaWwgb3ZlciwKLSAgICA8dmFybmFtZT50cmlnZ2VyX2ZpbGU8L3Zhcm5hbWU+IGlz IG5vdCByZXF1aXJlZC4gSWYgeW91J3JlCisgICAgPHZhcm5hbWU+cHJvbW90ZV90cmlnZ2Vy X2ZpbGU8L3Zhcm5hbWU+IGlzIG5vdCByZXF1aXJlZC4gSWYgeW91J3JlCiAgICAgc2V0dGlu ZyB1cCB0aGUgcmVwb3J0aW5nIHNlcnZlcnMgdGhhdCBhcmUgb25seSB1c2VkIHRvIG9mZmxv YWQgcmVhZC1vbmx5CiAgICAgcXVlcmllcyBmcm9tIHRoZSBwcmltYXJ5LCBub3QgZm9yIGhp Z2ggYXZhaWxhYmlsaXR5IHB1cnBvc2VzLCB5b3UgZG9uJ3QKICAgICBuZWVkIHRvIHByb21v dGUgaXQuCkBAIC0xNDkxLDExICsxNDg2LDggQEAgPHRpdGxlPkFsdGVybmF0aXZlIE1ldGhv ZCBmb3IgTG9nIFNoaXBwaW5nPC90aXRsZT4KICAgIDxwYXJhPgogICAgIEFuIGFsdGVybmF0 aXZlIHRvIHRoZSBidWlsdC1pbiBzdGFuZGJ5IG1vZGUgZGVzY3JpYmVkIGluIHRoZSBwcmV2 aW91cwogICAgIHNlY3Rpb25zIGlzIHRvIHVzZSBhIDx2YXJuYW1lPnJlc3RvcmVfY29tbWFu ZDwvdmFybmFtZT4gdGhhdCBwb2xscyB0aGUgYXJjaGl2ZSBsb2NhdGlvbi4KLSAgICBUaGlz IHdhcyB0aGUgb25seSBvcHRpb24gYXZhaWxhYmxlIGluIHZlcnNpb25zIDguNCBhbmQgYmVs b3cuIEluIHRoaXMKLSAgICBzZXR1cCwgc2V0IDx2YXJuYW1lPnN0YW5kYnlfbW9kZTwvdmFy bmFtZT4gb2ZmLCBiZWNhdXNlIHlvdSBhcmUgaW1wbGVtZW50aW5nCi0gICAgdGhlIHBvbGxp bmcgcmVxdWlyZWQgZm9yIHN0YW5kYnkgb3BlcmF0aW9uIHlvdXJzZWxmLiBTZWUgdGhlCi0g ICAgPHhyZWYgbGlua2VuZD0icGdzdGFuZGJ5Ii8+IG1vZHVsZSBmb3IgYSByZWZlcmVuY2UK LSAgICBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzLgorICAgIFRoaXMgd2FzIHRoZSBvbmx5IG9w dGlvbiBhdmFpbGFibGUgaW4gdmVyc2lvbnMgOC40IGFuZCBiZWxvdy4gU2VlIHRoZQorICAg IDx4cmVmIGxpbmtlbmQ9InBnc3RhbmRieSIvPiBtb2R1bGUgZm9yIGEgcmVmZXJlbmNlIGlt cGxlbWVudGF0aW9uIG9mIHRoaXMuCiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgpAQCAtMTUy MiwxNCArMTUxNCwxMyBAQCA8dGl0bGU+QWx0ZXJuYXRpdmUgTWV0aG9kIGZvciBMb2cgU2hp cHBpbmc8L3RpdGxlPgogICAgIFRoZSBtYWdpYyB0aGF0IG1ha2VzIHRoZSB0d28gbG9vc2Vs eSBjb3VwbGVkIHNlcnZlcnMgd29yayB0b2dldGhlciBpcwogICAgIHNpbXBseSBhIDx2YXJu YW1lPnJlc3RvcmVfY29tbWFuZDwvdmFybmFtZT4gdXNlZCBvbiB0aGUgc3RhbmRieSB0aGF0 LAogICAgIHdoZW4gYXNrZWQgZm9yIHRoZSBuZXh0IFdBTCBmaWxlLCB3YWl0cyBmb3IgaXQg dG8gYmVjb21lIGF2YWlsYWJsZSBmcm9tCi0gICAgdGhlIHByaW1hcnkuIFRoZSA8dmFybmFt ZT5yZXN0b3JlX2NvbW1hbmQ8L3Zhcm5hbWU+IGlzIHNwZWNpZmllZCBpbiB0aGUKLSAgICA8 ZmlsZW5hbWU+cmVjb3ZlcnkuY29uZjwvZmlsZW5hbWU+IGZpbGUgb24gdGhlIHN0YW5kYnkg c2VydmVyLiBOb3JtYWwgcmVjb3ZlcnkKKyAgICB0aGUgcHJpbWFyeS4gTm9ybWFsIHJlY292 ZXJ5CiAgICAgcHJvY2Vzc2luZyB3b3VsZCByZXF1ZXN0IGEgZmlsZSBmcm9tIHRoZSBXQUwg YXJjaGl2ZSwgcmVwb3J0aW5nIGZhaWx1cmUKICAgICBpZiB0aGUgZmlsZSB3YXMgdW5hdmFp bGFibGUuICBGb3Igc3RhbmRieSBwcm9jZXNzaW5nIGl0IGlzIG5vcm1hbCBmb3IKICAgICB0 aGUgbmV4dCBXQUwgZmlsZSB0byBiZSB1bmF2YWlsYWJsZSwgc28gdGhlIHN0YW5kYnkgbXVz dCB3YWl0IGZvcgotICAgIGl0IHRvIGFwcGVhci4gRm9yIGZpbGVzIGVuZGluZyBpbiAKKyAg ICBpdCB0byBhcHBlYXIuIEZvciBmaWxlcyBlbmRpbmcgaW4KICAgICA8bGl0ZXJhbD4uaGlz dG9yeTwvbGl0ZXJhbD4gdGhlcmUgaXMgbm8gbmVlZCB0byB3YWl0LCBhbmQgYSBub24temVy byByZXR1cm4KLSAgICBjb2RlIG11c3QgYmUgcmV0dXJuZWQuIEEgd2FpdGluZyA8dmFybmFt ZT5yZXN0b3JlX2NvbW1hbmQ8L3Zhcm5hbWU+IGNhbiBiZQorICAgIGNvZGUgbXVzdCBiZSBy ZXR1cm5lZC4gIEEgd2FpdGluZyA8dmFybmFtZT5yZXN0b3JlX2NvbW1hbmQ8L3Zhcm5hbWU+ IGNhbiBiZQogICAgIHdyaXR0ZW4gYXMgYSBjdXN0b20gc2NyaXB0IHRoYXQgbG9vcHMgYWZ0 ZXIgcG9sbGluZyBmb3IgdGhlIGV4aXN0ZW5jZSBvZgogICAgIHRoZSBuZXh0IFdBTCBmaWxl LiBUaGVyZSBtdXN0IGFsc28gYmUgc29tZSB3YXkgdG8gdHJpZ2dlciBmYWlsb3Zlciwgd2hp Y2gKICAgICBzaG91bGQgaW50ZXJydXB0IHRoZSA8dmFybmFtZT5yZXN0b3JlX2NvbW1hbmQ8 L3Zhcm5hbWU+LCBicmVhayB0aGUgbG9vcCBhbmQKQEAgLTE2MTEsOSArMTYwMiw4IEBAIDx0 aXRsZT5JbXBsZW1lbnRhdGlvbjwvdGl0bGU+CiAgICAgIDxsaXN0aXRlbT4KICAgICAgIDxw YXJhPgogICAgICAgIEJlZ2luIHJlY292ZXJ5IG9uIHRoZSBzdGFuZGJ5IHNlcnZlciBmcm9t IHRoZSBsb2NhbCBXQUwKLSAgICAgICBhcmNoaXZlLCB1c2luZyBhIDxmaWxlbmFtZT5yZWNv dmVyeS5jb25mPC9maWxlbmFtZT4gdGhhdCBzcGVjaWZpZXMgYQotICAgICAgIDx2YXJuYW1l PnJlc3RvcmVfY29tbWFuZDwvdmFybmFtZT4gdGhhdCB3YWl0cyBhcyBkZXNjcmliZWQKLSAg ICAgICBwcmV2aW91c2x5IChzZWUgPHhyZWYgbGlua2VuZD0iYmFja3VwLXBpdHItcmVjb3Zl cnkiLz4pLgorICAgICAgIGFyY2hpdmUsIHVzaW5nIDx2YXJuYW1lPnJlc3RvcmVfY29tbWFu ZDwvdmFybmFtZT4gdGhhdCB3YWl0cworICAgICAgIGFzIGRlc2NyaWJlZCBwcmV2aW91c2x5 IChzZWUgPHhyZWYgbGlua2VuZD0iYmFja3VwLXBpdHItcmVjb3ZlcnkiLz4pLgogICAgICAg PC9wYXJhPgogICAgICA8L2xpc3RpdGVtPgogICAgIDwvb3JkZXJlZGxpc3Q+CkBAIC0yMTA4 LDcgKzIwOTgsNyBAQCA8dGl0bGU+QWRtaW5pc3RyYXRvcidzIE92ZXJ2aWV3PC90aXRsZT4K IAogICAgPHBhcmE+CiAgICAgSWYgPHZhcm5hbWU+aG90X3N0YW5kYnk8L3Zhcm5hbWU+IGlz IDxsaXRlcmFsPm9uPC9saXRlcmFsPiBpbiA8ZmlsZW5hbWU+cG9zdGdyZXNxbC5jb25mPC9m aWxlbmFtZT4KLSAgICAodGhlIGRlZmF1bHQgdmFsdWUpIGFuZCB0aGVyZSBpcyBhIDxmaWxl bmFtZT5yZWNvdmVyeS5jb25mPC9maWxlbmFtZT4KKyAgICAodGhlIGRlZmF1bHQgdmFsdWUp IGFuZCB0aGVyZSBpcyBhIDxmaWxlbmFtZT5zdGFuZGJ5LnNpZ25hbDwvZmlsZW5hbWU+CiAg ICAgZmlsZSBwcmVzZW50LCB0aGUgc2VydmVyIHdpbGwgcnVuIGluIEhvdCBTdGFuZGJ5IG1v ZGUuCiAgICAgSG93ZXZlciwgaXQgbWF5IHRha2Ugc29tZSB0aW1lIGZvciBIb3QgU3RhbmRi eSBjb25uZWN0aW9ucyB0byBiZSBhbGxvd2VkLAogICAgIGJlY2F1c2UgdGhlIHNlcnZlciB3 aWxsIG5vdCBhY2NlcHQgY29ubmVjdGlvbnMgdW50aWwgaXQgaGFzIGNvbXBsZXRlZApkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Bnc3RhbmRieS5zZ21sIGIvZG9jL3NyYy9zZ21sL3Bn c3RhbmRieS5zZ21sCmluZGV4IDJjYzU4ZmUzNTYuLmQ4YWRlZDQzODQgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9wZ3N0YW5kYnkuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcGdzdGFu ZGJ5LnNnbWwKQEAgLTQ3LDcgKzQ3LDcgQEAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4K ICAgPHBhcmE+CiAgICBUbyBjb25maWd1cmUgYSBzdGFuZGJ5CiAgICBzZXJ2ZXIgdG8gdXNl IDxhcHBsaWNhdGlvbj5wZ19zdGFuZGJ5PC9hcHBsaWNhdGlvbj4sIHB1dCB0aGlzIGludG8g aXRzCi0gICA8ZmlsZW5hbWU+cmVjb3ZlcnkuY29uZjwvZmlsZW5hbWU+IGNvbmZpZ3VyYXRp b24gZmlsZToKKyAgIDxmaWxlbmFtZT5wb3N0Z3Jlc3FsLmNvbmY8L2ZpbGVuYW1lPiBjb25m aWd1cmF0aW9uIGZpbGU6CiA8cHJvZ3JhbWxpc3Rpbmc+CiByZXN0b3JlX2NvbW1hbmQgPSAn cGdfc3RhbmRieSA8cmVwbGFjZWFibGU+YXJjaGl2ZURpcjwvcmVwbGFjZWFibGU+ICVmICVw ICVyJwogPC9wcm9ncmFtbGlzdGluZz4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9wb3N0 Z3Jlcy5zZ21sIGIvZG9jL3NyYy9zZ21sL3Bvc3RncmVzLnNnbWwKaW5kZXggMDA3MDYwM2Zj My4uMTQyNzk5MzE2YSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Bvc3RncmVzLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL3Bvc3RncmVzLnNnbWwKQEAgLTE1OCw3ICsxNTgsNiBAQCA8 dGl0bGU+U2VydmVyIEFkbWluaXN0cmF0aW9uPC90aXRsZT4KICAgJm1haW50ZW5hbmNlOwog ICAmYmFja3VwOwogICAmaGlnaC1hdmFpbGFiaWxpdHk7Ci0gICZyZWNvdmVyeS1jb25maWc7 CiAgICZtb25pdG9yaW5nOwogICAmZGlza3VzYWdlOwogICAmd2FsOwpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlY292ZXJ5LWNvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlY292 ZXJ5LWNvbmZpZy5zZ21sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMmJkZmZk YTk0Li4wMDAwMDAwMDAwCi0tLSBhL2RvYy9zcmMvc2dtbC9yZWNvdmVyeS1jb25maWcuc2dt bAorKysgL2Rldi9udWxsCkBAIC0xLDUxMCArMCwwIEBACi08IS0tIGRvYy9zcmMvc2dtbC9y ZWNvdmVyeS1jb25maWcuc2dtbCAtLT4KLQotPGNoYXB0ZXIgaWQ9InJlY292ZXJ5LWNvbmZp ZyI+Ci0gIDx0aXRsZT5SZWNvdmVyeSBDb25maWd1cmF0aW9uPC90aXRsZT4KLQotICA8aW5k ZXh0ZXJtPgotICAgPHByaW1hcnk+Y29uZmlndXJhdGlvbjwvcHJpbWFyeT4KLSAgIDxzZWNv bmRhcnk+b2YgcmVjb3Zlcnk8L3NlY29uZGFyeT4KLSAgIDx0ZXJ0aWFyeT5vZiBhIHN0YW5k Ynkgc2VydmVyPC90ZXJ0aWFyeT4KLSAgPC9pbmRleHRlcm0+Ci0KLSAgIDxwYXJhPgotICAg IFRoaXMgY2hhcHRlciBkZXNjcmliZXMgdGhlIHNldHRpbmdzIGF2YWlsYWJsZSBpbiB0aGUK LSAgICA8ZmlsZW5hbWU+cmVjb3ZlcnkuY29uZjwvZmlsZW5hbWU+PGluZGV4dGVybT48cHJp bWFyeT5yZWNvdmVyeS5jb25mPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPgotICAgIGZpbGUuIFRo ZXkgYXBwbHkgb25seSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZQotICAgIHJlY292ZXJ5LiAg VGhleSBtdXN0IGJlIHJlc2V0IGZvciBhbnkgc3Vic2VxdWVudCByZWNvdmVyeSB5b3Ugd2lz aCB0bwotICAgIHBlcmZvcm0uICBUaGV5IGNhbm5vdCBiZSBjaGFuZ2VkIG9uY2UgcmVjb3Zl cnkgaGFzIGJlZ3VuLgotICAgPC9wYXJhPgotCi0gICA8cGFyYT4KLSAgICAgU2V0dGluZ3Mg aW4gPGZpbGVuYW1lPnJlY292ZXJ5LmNvbmY8L2ZpbGVuYW1lPiBhcmUgc3BlY2lmaWVkIGlu IHRoZSBmb3JtYXQKLSAgICAgPGxpdGVyYWw+bmFtZSA9ICd2YWx1ZSc8L2xpdGVyYWw+LiBP bmUgcGFyYW1ldGVyIGlzIHNwZWNpZmllZCBwZXIgbGluZS4KLSAgICAgSGFzaCBtYXJrcyAo PGxpdGVyYWw+IzwvbGl0ZXJhbD4pIGRlc2lnbmF0ZSB0aGUgcmVzdCBvZiB0aGUKLSAgICAg bGluZSBhcyBhIGNvbW1lbnQuICBUbyBlbWJlZCBhIHNpbmdsZSBxdW90ZSBpbiBhIHBhcmFt ZXRlcgotICAgICB2YWx1ZSwgd3JpdGUgdHdvIHF1b3RlcyAoPGxpdGVyYWw+Jyc8L2xpdGVy YWw+KS4KLSAgIDwvcGFyYT4KLQotICAgPHBhcmE+Ci0gICAgQSBzYW1wbGUgZmlsZSwgPGZp bGVuYW1lPnNoYXJlL3JlY292ZXJ5LmNvbmYuc2FtcGxlPC9maWxlbmFtZT4sCi0gICAgaXMg cHJvdmlkZWQgaW4gdGhlIGluc3RhbGxhdGlvbidzIDxmaWxlbmFtZT5zaGFyZS88L2ZpbGVu YW1lPiBkaXJlY3RvcnkuCi0gICA8L3BhcmE+Ci0KLSAgPHNlY3QxIGlkPSJhcmNoaXZlLXJl Y292ZXJ5LXNldHRpbmdzIj4KLQotICAgIDx0aXRsZT5BcmNoaXZlIFJlY292ZXJ5IFNldHRp bmdzPC90aXRsZT4KLSAgICAgPHZhcmlhYmxlbGlzdD4KLQotICAgICA8dmFybGlzdGVudHJ5 IGlkPSJyZXN0b3JlLWNvbW1hbmQiIHhyZWZsYWJlbD0icmVzdG9yZV9jb21tYW5kIj4KLSAg ICAgIDx0ZXJtPjx2YXJuYW1lPnJlc3RvcmVfY29tbWFuZDwvdmFybmFtZT4gKDx0eXBlPnN0 cmluZzwvdHlwZT4pCi0gICAgICA8aW5kZXh0ZXJtPgotICAgICAgICA8cHJpbWFyeT48dmFy bmFtZT5yZXN0b3JlX2NvbW1hbmQ8L3Zhcm5hbWU+IHJlY292ZXJ5IHBhcmFtZXRlcjwvcHJp bWFyeT4KLSAgICAgIDwvaW5kZXh0ZXJtPgotICAgICAgPC90ZXJtPgotICAgICAgPGxpc3Rp dGVtPgotICAgICAgIDxwYXJhPgotICAgICAgICBUaGUgbG9jYWwgc2hlbGwgY29tbWFuZCB0 byBleGVjdXRlIHRvIHJldHJpZXZlIGFuIGFyY2hpdmVkIHNlZ21lbnQgb2YKLSAgICAgICAg dGhlIFdBTCBmaWxlIHNlcmllcy4gVGhpcyBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgZm9yIGFy Y2hpdmUgcmVjb3ZlcnksCi0gICAgICAgIGJ1dCBvcHRpb25hbCBmb3Igc3RyZWFtaW5nIHJl cGxpY2F0aW9uLgotICAgICAgICBBbnkgPGxpdGVyYWw+JWY8L2xpdGVyYWw+IGluIHRoZSBz dHJpbmcgaXMKLSAgICAgICAgcmVwbGFjZWQgYnkgdGhlIG5hbWUgb2YgdGhlIGZpbGUgdG8g cmV0cmlldmUgZnJvbSB0aGUgYXJjaGl2ZSwKLSAgICAgICAgYW5kIGFueSA8bGl0ZXJhbD4l cDwvbGl0ZXJhbD4gaXMgcmVwbGFjZWQgYnkgdGhlIGNvcHkgZGVzdGluYXRpb24gcGF0aCBu YW1lCi0gICAgICAgIG9uIHRoZSBzZXJ2ZXIuCi0gICAgICAgIChUaGUgcGF0aCBuYW1lIGlz IHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LAotICAgICAgICBp LmUuLCB0aGUgY2x1c3RlcidzIGRhdGEgZGlyZWN0b3J5LikKLSAgICAgICAgQW55IDxsaXRl cmFsPiVyPC9saXRlcmFsPiBpcyByZXBsYWNlZCBieSB0aGUgbmFtZSBvZiB0aGUgZmlsZSBj b250YWluaW5nIHRoZQotICAgICAgICBsYXN0IHZhbGlkIHJlc3RhcnQgcG9pbnQuIFRoYXQg aXMgdGhlIGVhcmxpZXN0IGZpbGUgdGhhdCBtdXN0IGJlIGtlcHQKLSAgICAgICAgdG8gYWxs b3cgYSByZXN0b3JlIHRvIGJlIHJlc3RhcnRhYmxlLCBzbyB0aGlzIGluZm9ybWF0aW9uIGNh biBiZSB1c2VkCi0gICAgICAgIHRvIHRydW5jYXRlIHRoZSBhcmNoaXZlIHRvIGp1c3QgdGhl IG1pbmltdW0gcmVxdWlyZWQgdG8gc3VwcG9ydAotICAgICAgICByZXN0YXJ0aW5nIGZyb20g dGhlIGN1cnJlbnQgcmVzdG9yZS4gPGxpdGVyYWw+JXI8L2xpdGVyYWw+IGlzIHR5cGljYWxs eSBvbmx5Ci0gICAgICAgIHVzZWQgYnkgd2FybS1zdGFuZGJ5IGNvbmZpZ3VyYXRpb25zCi0g ICAgICAgIChzZWUgPHhyZWYgbGlua2VuZD0id2FybS1zdGFuZGJ5Ii8+KS4KLSAgICAgICAg V3JpdGUgPGxpdGVyYWw+JSU8L2xpdGVyYWw+IHRvIGVtYmVkIGFuIGFjdHVhbCA8bGl0ZXJh bD4lPC9saXRlcmFsPiBjaGFyYWN0ZXIuCi0gICAgICAgPC9wYXJhPgotCi0gICAgICAgPHBh cmE+Ci0gICAgICAgIEl0IGlzIGltcG9ydGFudCBmb3IgdGhlIGNvbW1hbmQgdG8gcmV0dXJu IGEgemVybyBleGl0IHN0YXR1cwotICAgICAgICBvbmx5IGlmIGl0IHN1Y2NlZWRzLiAgVGhl IGNvbW1hbmQgPGVtcGhhc2lzPndpbGw8L2VtcGhhc2lzPiBiZSBhc2tlZCBmb3IgZmlsZQot ICAgICAgICBuYW1lcyB0aGF0IGFyZSBub3QgcHJlc2VudCBpbiB0aGUgYXJjaGl2ZTsgaXQg bXVzdCByZXR1cm4gbm9uemVybwotICAgICAgICB3aGVuIHNvIGFza2VkLiAgRXhhbXBsZXM6 Ci08cHJvZ3JhbWxpc3Rpbmc+Ci1yZXN0b3JlX2NvbW1hbmQgPSAnY3AgL21udC9zZXJ2ZXIv YXJjaGl2ZWRpci8lZiAiJXAiJwotcmVzdG9yZV9jb21tYW5kID0gJ2NvcHkgIkM6XFxzZXJ2 ZXJcXGFyY2hpdmVkaXJcXCVmIiAiJXAiJyAgIyBXaW5kb3dzCi08L3Byb2dyYW1saXN0aW5n PgotICAgICAgICBBbiBleGNlcHRpb24gaXMgdGhhdCBpZiB0aGUgY29tbWFuZCB3YXMgdGVy bWluYXRlZCBieSBhIHNpZ25hbCAob3RoZXIKLSAgICAgICAgdGhhbiA8c3lzdGVtaXRlbT5T SUdURVJNPC9zeXN0ZW1pdGVtPiwgd2hpY2ggaXMgdXNlZCBhcyBwYXJ0IG9mIGEKLSAgICAg ICAgZGF0YWJhc2Ugc2VydmVyIHNodXRkb3duKSBvciBhbiBlcnJvciBieSB0aGUgc2hlbGwg KHN1Y2ggYXMgY29tbWFuZAotICAgICAgICBub3QgZm91bmQpLCB0aGVuIHJlY292ZXJ5IHdp bGwgYWJvcnQgYW5kIHRoZSBzZXJ2ZXIgd2lsbCBub3Qgc3RhcnQgdXAuCi0gICAgICAgPC9w YXJhPgotICAgICAgPC9saXN0aXRlbT4KLSAgICAgPC92YXJsaXN0ZW50cnk+Ci0KLSAgICAg PHZhcmxpc3RlbnRyeSBpZD0iYXJjaGl2ZS1jbGVhbnVwLWNvbW1hbmQiIHhyZWZsYWJlbD0i YXJjaGl2ZV9jbGVhbnVwX2NvbW1hbmQiPgotICAgICAgPHRlcm0+PHZhcm5hbWU+YXJjaGl2 ZV9jbGVhbnVwX2NvbW1hbmQ8L3Zhcm5hbWU+ICg8dHlwZT5zdHJpbmc8L3R5cGU+KQotICAg ICAgPGluZGV4dGVybT4KLSAgICAgICAgPHByaW1hcnk+PHZhcm5hbWU+YXJjaGl2ZV9jbGVh bnVwX2NvbW1hbmQ8L3Zhcm5hbWU+IHJlY292ZXJ5IHBhcmFtZXRlcjwvcHJpbWFyeT4KLSAg ICAgIDwvaW5kZXh0ZXJtPgotICAgICAgPC90ZXJtPgotICAgICAgPGxpc3RpdGVtPgotICAg ICAgIDxwYXJhPgotICAgICAgICBUaGlzIG9wdGlvbmFsIHBhcmFtZXRlciBzcGVjaWZpZXMg YSBzaGVsbCBjb21tYW5kIHRoYXQgd2lsbCBiZSBleGVjdXRlZAotICAgICAgICBhdCBldmVy eSByZXN0YXJ0cG9pbnQuICBUaGUgcHVycG9zZSBvZgotICAgICAgICA8dmFybmFtZT5hcmNo aXZlX2NsZWFudXBfY29tbWFuZDwvdmFybmFtZT4gaXMgdG8gcHJvdmlkZSBhIG1lY2hhbmlz bSBmb3IKLSAgICAgICAgY2xlYW5pbmcgdXAgb2xkIGFyY2hpdmVkIFdBTCBmaWxlcyB0aGF0 IGFyZSBubyBsb25nZXIgbmVlZGVkIGJ5IHRoZQotICAgICAgICBzdGFuZGJ5IHNlcnZlci4K LSAgICAgICAgQW55IDxsaXRlcmFsPiVyPC9saXRlcmFsPiBpcyByZXBsYWNlZCBieSB0aGUg bmFtZSBvZiB0aGUgZmlsZSBjb250YWluaW5nIHRoZQotICAgICAgICBsYXN0IHZhbGlkIHJl c3RhcnQgcG9pbnQuCi0gICAgICAgIFRoYXQgaXMgdGhlIGVhcmxpZXN0IGZpbGUgdGhhdCBt dXN0IGJlIDxlbXBoYXNpcz5rZXB0PC9lbXBoYXNpcz4gdG8gYWxsb3cgYQotICAgICAgICBy ZXN0b3JlIHRvIGJlIHJlc3RhcnRhYmxlLCBhbmQgc28gYWxsIGZpbGVzIGVhcmxpZXIgdGhh biA8bGl0ZXJhbD4lcjwvbGl0ZXJhbD4KLSAgICAgICAgbWF5IGJlIHNhZmVseSByZW1vdmVk LgotICAgICAgICBUaGlzIGluZm9ybWF0aW9uIGNhbiBiZSB1c2VkIHRvIHRydW5jYXRlIHRo ZSBhcmNoaXZlIHRvIGp1c3QgdGhlCi0gICAgICAgIG1pbmltdW0gcmVxdWlyZWQgdG8gc3Vw cG9ydCByZXN0YXJ0IGZyb20gdGhlIGN1cnJlbnQgcmVzdG9yZS4KLSAgICAgICAgVGhlIDx4 cmVmIGxpbmtlbmQ9InBnYXJjaGl2ZWNsZWFudXAiLz4gbW9kdWxlCi0gICAgICAgIGlzIG9m dGVuIHVzZWQgaW4gPHZhcm5hbWU+YXJjaGl2ZV9jbGVhbnVwX2NvbW1hbmQ8L3Zhcm5hbWU+ IGZvcgotICAgICAgICBzaW5nbGUtc3RhbmRieSBjb25maWd1cmF0aW9ucywgZm9yIGV4YW1w bGU6Ci08cHJvZ3JhbWxpc3Rpbmc+YXJjaGl2ZV9jbGVhbnVwX2NvbW1hbmQgPSAncGdfYXJj aGl2ZWNsZWFudXAgL21udC9zZXJ2ZXIvYXJjaGl2ZWRpciAlcic8L3Byb2dyYW1saXN0aW5n PgotICAgICAgICBOb3RlIGhvd2V2ZXIgdGhhdCBpZiBtdWx0aXBsZSBzdGFuZGJ5IHNlcnZl cnMgYXJlIHJlc3RvcmluZyBmcm9tIHRoZQotICAgICAgICBzYW1lIGFyY2hpdmUgZGlyZWN0 b3J5LCB5b3Ugd2lsbCBuZWVkIHRvIGVuc3VyZSB0aGF0IHlvdSBkbyBub3QgZGVsZXRlCi0g ICAgICAgIFdBTCBmaWxlcyB1bnRpbCB0aGV5IGFyZSBubyBsb25nZXIgbmVlZGVkIGJ5IGFu eSBvZiB0aGUgc2VydmVycy4KLSAgICAgICAgPHZhcm5hbWU+YXJjaGl2ZV9jbGVhbnVwX2Nv bW1hbmQ8L3Zhcm5hbWU+IHdvdWxkIHR5cGljYWxseSBiZSB1c2VkIGluIGEKLSAgICAgICAg d2FybS1zdGFuZGJ5IGNvbmZpZ3VyYXRpb24gKHNlZSA8eHJlZiBsaW5rZW5kPSJ3YXJtLXN0 YW5kYnkiLz4pLgotICAgICAgICBXcml0ZSA8bGl0ZXJhbD4lJTwvbGl0ZXJhbD4gdG8gZW1i ZWQgYW4gYWN0dWFsIDxsaXRlcmFsPiU8L2xpdGVyYWw+IGNoYXJhY3RlciBpbiB0aGUKLSAg ICAgICAgY29tbWFuZC4KLSAgICAgICA8L3BhcmE+Ci0gICAgICAgPHBhcmE+Ci0gICAgICAg IElmIHRoZSBjb21tYW5kIHJldHVybnMgYSBub256ZXJvIGV4aXQgc3RhdHVzIHRoZW4gYSB3 YXJuaW5nIGxvZwotICAgICAgICBtZXNzYWdlIHdpbGwgYmUgd3JpdHRlbi4gIEFuIGV4Y2Vw dGlvbiBpcyB0aGF0IGlmIHRoZSBjb21tYW5kIHdhcwotICAgICAgICB0ZXJtaW5hdGVkIGJ5 IGEgc2lnbmFsIG9yIGFuIGVycm9yIGJ5IHRoZSBzaGVsbCAoc3VjaCBhcyBjb21tYW5kIG5v dAotICAgICAgICBmb3VuZCksIGEgZmF0YWwgZXJyb3Igd2lsbCBiZSByYWlzZWQuCi0gICAg ICAgPC9wYXJhPgotICAgICAgPC9saXN0aXRlbT4KLSAgICAgPC92YXJsaXN0ZW50cnk+Ci0K LSAgICAgPHZhcmxpc3RlbnRyeSBpZD0icmVjb3ZlcnktZW5kLWNvbW1hbmQiIHhyZWZsYWJl bD0icmVjb3ZlcnlfZW5kX2NvbW1hbmQiPgotICAgICAgPHRlcm0+PHZhcm5hbWU+cmVjb3Zl cnlfZW5kX2NvbW1hbmQ8L3Zhcm5hbWU+ICg8dHlwZT5zdHJpbmc8L3R5cGU+KQotICAgICAg PGluZGV4dGVybT4KLSAgICAgICAgPHByaW1hcnk+PHZhcm5hbWU+cmVjb3ZlcnlfZW5kX2Nv bW1hbmQ8L3Zhcm5hbWU+IHJlY292ZXJ5IHBhcmFtZXRlcjwvcHJpbWFyeT4KLSAgICAgIDwv aW5kZXh0ZXJtPgotICAgICAgPC90ZXJtPgotICAgICAgPGxpc3RpdGVtPgotICAgICAgIDxw YXJhPgotICAgICAgICBUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgYSBzaGVsbCBjb21tYW5k IHRoYXQgd2lsbCBiZSBleGVjdXRlZCBvbmNlIG9ubHkKLSAgICAgICAgYXQgdGhlIGVuZCBv ZiByZWNvdmVyeS4gVGhpcyBwYXJhbWV0ZXIgaXMgb3B0aW9uYWwuIFRoZSBwdXJwb3NlIG9m IHRoZQotICAgICAgICA8dmFybmFtZT5yZWNvdmVyeV9lbmRfY29tbWFuZDwvdmFybmFtZT4g aXMgdG8gcHJvdmlkZSBhIG1lY2hhbmlzbSBmb3IgY2xlYW51cAotICAgICAgICBmb2xsb3dp bmcgcmVwbGljYXRpb24gb3IgcmVjb3ZlcnkuCi0gICAgICAgIEFueSA8bGl0ZXJhbD4lcjwv bGl0ZXJhbD4gaXMgcmVwbGFjZWQgYnkgdGhlIG5hbWUgb2YgdGhlIGZpbGUgY29udGFpbmlu ZyB0aGUKLSAgICAgICAgbGFzdCB2YWxpZCByZXN0YXJ0IHBvaW50LCBsaWtlIGluIDx4cmVm IGxpbmtlbmQ9ImFyY2hpdmUtY2xlYW51cC1jb21tYW5kIi8+LgotICAgICAgIDwvcGFyYT4K LSAgICAgICA8cGFyYT4KLSAgICAgICAgSWYgdGhlIGNvbW1hbmQgcmV0dXJucyBhIG5vbnpl cm8gZXhpdCBzdGF0dXMgdGhlbiBhIHdhcm5pbmcgbG9nCi0gICAgICAgIG1lc3NhZ2Ugd2ls bCBiZSB3cml0dGVuIGFuZCB0aGUgZGF0YWJhc2Ugd2lsbCBwcm9jZWVkIHRvIHN0YXJ0IHVw Ci0gICAgICAgIGFueXdheS4gIEFuIGV4Y2VwdGlvbiBpcyB0aGF0IGlmIHRoZSBjb21tYW5k IHdhcyB0ZXJtaW5hdGVkIGJ5IGEKLSAgICAgICAgc2lnbmFsIG9yIGFuIGVycm9yIGJ5IHRo ZSBzaGVsbCAoc3VjaCBhcyBjb21tYW5kIG5vdCBmb3VuZCksIHRoZQotICAgICAgICBkYXRh YmFzZSB3aWxsIG5vdCBwcm9jZWVkIHdpdGggc3RhcnR1cC4KLSAgICAgICA8L3BhcmE+Ci0g ICAgICA8L2xpc3RpdGVtPgotICAgICA8L3Zhcmxpc3RlbnRyeT4KLQotICAgIDwvdmFyaWFi bGVsaXN0PgotCi0gIDwvc2VjdDE+Ci0KLSAgPHNlY3QxIGlkPSJyZWNvdmVyeS10YXJnZXQt c2V0dGluZ3MiPgotCi0gICAgPHRpdGxlPlJlY292ZXJ5IFRhcmdldCBTZXR0aW5nczwvdGl0 bGU+Ci0KLSAgICAgPHBhcmE+Ci0gICAgICBCeSBkZWZhdWx0LCByZWNvdmVyeSB3aWxsIHJl Y292ZXIgdG8gdGhlIGVuZCBvZiB0aGUgV0FMIGxvZy4gVGhlCi0gICAgICBmb2xsb3dpbmcg cGFyYW1ldGVycyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGFuIGVhcmxpZXIgc3RvcHBpbmcg cG9pbnQuCi0gICAgICBBdCBtb3N0IG9uZSBvZiA8dmFybmFtZT5yZWNvdmVyeV90YXJnZXQ8 L3Zhcm5hbWU+LAotICAgICAgPHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0X2xzbjwvdmFybmFt ZT4sIDx2YXJuYW1lPnJlY292ZXJ5X3RhcmdldF9uYW1lPC92YXJuYW1lPiwKLSAgICAgIDx2 YXJuYW1lPnJlY292ZXJ5X3RhcmdldF90aW1lPC92YXJuYW1lPiwgb3IgPHZhcm5hbWU+cmVj b3ZlcnlfdGFyZ2V0X3hpZDwvdmFybmFtZT4KLSAgICAgIGNhbiBiZSB1c2VkOyBpZiBtb3Jl IHRoYW4gb25lIG9mIHRoZXNlIGlzIHNwZWNpZmllZCBpbiB0aGUgY29uZmlndXJhdGlvbgot ICAgICAgZmlsZSwgdGhlIGxhc3QgZW50cnkgd2lsbCBiZSB1c2VkLgotICAgICA8L3BhcmE+ Ci0KLSAgICAgPHZhcmlhYmxlbGlzdD4KLSAgICAgPHZhcmxpc3RlbnRyeSBpZD0icmVjb3Zl cnktdGFyZ2V0IiB4cmVmbGFiZWw9InJlY292ZXJ5X3RhcmdldCI+Ci0gICAgICA8dGVybT48 dmFybmFtZT5yZWNvdmVyeV90YXJnZXQ8L3Zhcm5hbWU+PGxpdGVyYWw+ID0gJ2ltbWVkaWF0 ZSc8L2xpdGVyYWw+Ci0gICAgICA8aW5kZXh0ZXJtPgotICAgICAgICA8cHJpbWFyeT48dmFy bmFtZT5yZWNvdmVyeV90YXJnZXQ8L3Zhcm5hbWU+IHJlY292ZXJ5IHBhcmFtZXRlcjwvcHJp bWFyeT4KLSAgICAgIDwvaW5kZXh0ZXJtPgotICAgICAgPC90ZXJtPgotICAgICAgPGxpc3Rp dGVtPgotICAgICAgIDxwYXJhPgotICAgICAgICBUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMg dGhhdCByZWNvdmVyeSBzaG91bGQgZW5kIGFzIHNvb24gYXMgYQotICAgICAgICBjb25zaXN0 ZW50IHN0YXRlIGlzIHJlYWNoZWQsIGkuZS4gYXMgZWFybHkgYXMgcG9zc2libGUuIFdoZW4g cmVzdG9yaW5nCi0gICAgICAgIGZyb20gYW4gb25saW5lIGJhY2t1cCwgdGhpcyBtZWFucyB0 aGUgcG9pbnQgd2hlcmUgdGFraW5nIHRoZSBiYWNrdXAKLSAgICAgICAgZW5kZWQuCi0gICAg ICAgPC9wYXJhPgotICAgICAgIDxwYXJhPgotICAgICAgICBUZWNobmljYWxseSwgdGhpcyBp cyBhIHN0cmluZyBwYXJhbWV0ZXIsIGJ1dCA8bGl0ZXJhbD4naW1tZWRpYXRlJzwvbGl0ZXJh bD4KLSAgICAgICAgaXMgY3VycmVudGx5IHRoZSBvbmx5IGFsbG93ZWQgdmFsdWUuCi0gICAg ICAgPC9wYXJhPgotICAgICAgPC9saXN0aXRlbT4KLSAgICAgPC92YXJsaXN0ZW50cnk+Ci0K LSAgICAgPHZhcmxpc3RlbnRyeSBpZD0icmVjb3ZlcnktdGFyZ2V0LW5hbWUiIHhyZWZsYWJl bD0icmVjb3ZlcnlfdGFyZ2V0X25hbWUiPgotICAgICAgPHRlcm0+PHZhcm5hbWU+cmVjb3Zl cnlfdGFyZ2V0X25hbWU8L3Zhcm5hbWU+ICg8dHlwZT5zdHJpbmc8L3R5cGU+KQotICAgICAg PGluZGV4dGVybT4KLSAgICAgICAgPHByaW1hcnk+PHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0 X25hbWU8L3Zhcm5hbWU+IHJlY292ZXJ5IHBhcmFtZXRlcjwvcHJpbWFyeT4KLSAgICAgIDwv aW5kZXh0ZXJtPgotICAgICAgPC90ZXJtPgotICAgICAgPGxpc3RpdGVtPgotICAgICAgIDxw YXJhPgotICAgICAgICBUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIG5hbWVkIHJlc3Rv cmUgcG9pbnQgKGNyZWF0ZWQgd2l0aAotICAgICAgICA8ZnVuY3Rpb24+cGdfY3JlYXRlX3Jl c3RvcmVfcG9pbnQoKTwvZnVuY3Rpb24+KSB0byB3aGljaCByZWNvdmVyeSB3aWxsIHByb2Nl ZWQuCi0gICAgICAgPC9wYXJhPgotICAgICAgPC9saXN0aXRlbT4KLSAgICAgPC92YXJsaXN0 ZW50cnk+Ci0KLSAgICAgPHZhcmxpc3RlbnRyeSBpZD0icmVjb3ZlcnktdGFyZ2V0LXRpbWUi IHhyZWZsYWJlbD0icmVjb3ZlcnlfdGFyZ2V0X3RpbWUiPgotICAgICAgPHRlcm0+PHZhcm5h bWU+cmVjb3ZlcnlfdGFyZ2V0X3RpbWU8L3Zhcm5hbWU+ICg8dHlwZT50aW1lc3RhbXA8L3R5 cGU+KQotICAgICAgPGluZGV4dGVybT4KLSAgICAgICAgPHByaW1hcnk+PHZhcm5hbWU+cmVj b3ZlcnlfdGFyZ2V0X3RpbWU8L3Zhcm5hbWU+IHJlY292ZXJ5IHBhcmFtZXRlcjwvcHJpbWFy eT4KLSAgICAgIDwvaW5kZXh0ZXJtPgotICAgICAgPC90ZXJtPgotICAgICAgPGxpc3RpdGVt PgotICAgICAgIDxwYXJhPgotICAgICAgICBUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhl IHRpbWUgc3RhbXAgdXAgdG8gd2hpY2ggcmVjb3ZlcnkKLSAgICAgICAgd2lsbCBwcm9jZWVk LgotICAgICAgICBUaGUgcHJlY2lzZSBzdG9wcGluZyBwb2ludCBpcyBhbHNvIGluZmx1ZW5j ZWQgYnkKLSAgICAgICAgPHhyZWYgbGlua2VuZD0icmVjb3ZlcnktdGFyZ2V0LWluY2x1c2l2 ZSIvPi4KLSAgICAgICA8L3BhcmE+Ci0gICAgICA8L2xpc3RpdGVtPgotICAgICA8L3Zhcmxp c3RlbnRyeT4KLQotICAgICA8dmFybGlzdGVudHJ5IGlkPSJyZWNvdmVyeS10YXJnZXQteGlk IiB4cmVmbGFiZWw9InJlY292ZXJ5X3RhcmdldF94aWQiPgotICAgICAgPHRlcm0+PHZhcm5h bWU+cmVjb3ZlcnlfdGFyZ2V0X3hpZDwvdmFybmFtZT4gKDx0eXBlPnN0cmluZzwvdHlwZT4p Ci0gICAgICA8aW5kZXh0ZXJtPgotICAgICAgICA8cHJpbWFyeT48dmFybmFtZT5yZWNvdmVy eV90YXJnZXRfeGlkPC92YXJuYW1lPiByZWNvdmVyeSBwYXJhbWV0ZXI8L3ByaW1hcnk+Ci0g ICAgICA8L2luZGV4dGVybT4KLSAgICAgIDwvdGVybT4KLSAgICAgIDxsaXN0aXRlbT4KLSAg ICAgICA8cGFyYT4KLSAgICAgICAgVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0cmFu c2FjdGlvbiBJRCB1cCB0byB3aGljaCByZWNvdmVyeQotICAgICAgICB3aWxsIHByb2NlZWQu IEtlZXAgaW4gbWluZAotICAgICAgICB0aGF0IHdoaWxlIHRyYW5zYWN0aW9uIElEcyBhcmUg YXNzaWduZWQgc2VxdWVudGlhbGx5IGF0IHRyYW5zYWN0aW9uCi0gICAgICAgIHN0YXJ0LCB0 cmFuc2FjdGlvbnMgY2FuIGNvbXBsZXRlIGluIGEgZGlmZmVyZW50IG51bWVyaWMgb3JkZXIu Ci0gICAgICAgIFRoZSB0cmFuc2FjdGlvbnMgdGhhdCB3aWxsIGJlIHJlY292ZXJlZCBhcmUg dGhvc2UgdGhhdCBjb21taXR0ZWQKLSAgICAgICAgYmVmb3JlIChhbmQgb3B0aW9uYWxseSBp bmNsdWRpbmcpIHRoZSBzcGVjaWZpZWQgb25lLgotICAgICAgICBUaGUgcHJlY2lzZSBzdG9w cGluZyBwb2ludCBpcyBhbHNvIGluZmx1ZW5jZWQgYnkKLSAgICAgICAgPHhyZWYgbGlua2Vu ZD0icmVjb3ZlcnktdGFyZ2V0LWluY2x1c2l2ZSIvPi4KLSAgICAgICA8L3BhcmE+Ci0gICAg ICA8L2xpc3RpdGVtPgotICAgICA8L3Zhcmxpc3RlbnRyeT4KLQotICAgICA8dmFybGlzdGVu dHJ5IGlkPSJyZWNvdmVyeS10YXJnZXQtbHNuIiB4cmVmbGFiZWw9InJlY292ZXJ5X3Rhcmdl dF9sc24iPgotICAgICAgPHRlcm0+PHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0X2xzbjwvdmFy bmFtZT4gKDx0eXBlPnBnX2xzbjwvdHlwZT4pCi0gICAgICA8aW5kZXh0ZXJtPgotICAgICAg ICA8cHJpbWFyeT48dmFybmFtZT5yZWNvdmVyeV90YXJnZXRfbHNuPC92YXJuYW1lPiByZWNv dmVyeSBwYXJhbWV0ZXI8L3ByaW1hcnk+Ci0gICAgICA8L2luZGV4dGVybT4KLSAgICAgIDwv dGVybT4KLSAgICAgIDxsaXN0aXRlbT4KLSAgICAgICA8cGFyYT4KLSAgICAgICAgVGhpcyBw YXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSBMU04gb2YgdGhlIHdyaXRlLWFoZWFkIGxvZyBsb2Nh dGlvbiB1cAotICAgICAgICB0byB3aGljaCByZWNvdmVyeSB3aWxsIHByb2NlZWQuIFRoZSBw cmVjaXNlIHN0b3BwaW5nIHBvaW50IGlzIGFsc28KLSAgICAgICAgaW5mbHVlbmNlZCBieSA8 eHJlZiBsaW5rZW5kPSJyZWNvdmVyeS10YXJnZXQtaW5jbHVzaXZlIi8+LiBUaGlzCi0gICAg ICAgIHBhcmFtZXRlciBpcyBwYXJzZWQgdXNpbmcgdGhlIHN5c3RlbSBkYXRhIHR5cGUKLSAg ICAgICAgPGxpbmsgbGlua2VuZD0iZGF0YXR5cGUtcGctbHNuIj48dHlwZT5wZ19sc248L3R5 cGU+PC9saW5rPi4KLSAgICAgICA8L3BhcmE+Ci0gICAgICA8L2xpc3RpdGVtPgotICAgICA8 L3Zhcmxpc3RlbnRyeT4KLSAgICAgPC92YXJpYWJsZWxpc3Q+Ci0KLSAgICAgPHBhcmE+Ci0g ICAgICAgVGhlIGZvbGxvd2luZyBvcHRpb25zIGZ1cnRoZXIgc3BlY2lmeSB0aGUgcmVjb3Zl cnkgdGFyZ2V0LCBhbmQgYWZmZWN0Ci0gICAgICAgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIHRh cmdldCBpcyByZWFjaGVkOgotICAgICA8L3BhcmE+Ci0KLSAgICAgPHZhcmlhYmxlbGlzdD4K LSAgICAgPHZhcmxpc3RlbnRyeSBpZD0icmVjb3ZlcnktdGFyZ2V0LWluY2x1c2l2ZSIKLSAg ICAgICAgICAgICAgICAgICB4cmVmbGFiZWw9InJlY292ZXJ5X3RhcmdldF9pbmNsdXNpdmUi PgotICAgICAgPHRlcm0+PHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0X2luY2x1c2l2ZTwvdmFy bmFtZT4gKDx0eXBlPmJvb2xlYW48L3R5cGU+KQotICAgICAgPGluZGV4dGVybT4KLSAgICAg ICAgPHByaW1hcnk+PHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0X2luY2x1c2l2ZTwvdmFybmFt ZT4gcmVjb3ZlcnkgcGFyYW1ldGVyPC9wcmltYXJ5PgotICAgICAgPC9pbmRleHRlcm0+Ci0g ICAgICA8L3Rlcm0+Ci0gICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgPHBhcmE+Ci0gICAgICAg IFNwZWNpZmllcyB3aGV0aGVyIHRvIHN0b3AganVzdCBhZnRlciB0aGUgc3BlY2lmaWVkIHJl Y292ZXJ5IHRhcmdldAotICAgICAgICAoPGxpdGVyYWw+dHJ1ZTwvbGl0ZXJhbD4pLCBvciBq dXN0IGJlZm9yZSB0aGUgcmVjb3ZlcnkgdGFyZ2V0Ci0gICAgICAgICg8bGl0ZXJhbD5mYWxz ZTwvbGl0ZXJhbD4pLgotICAgICAgICBBcHBsaWVzIHdoZW4gPHhyZWYgbGlua2VuZD0icmVj b3ZlcnktdGFyZ2V0LWxzbiIvPiwKLSAgICAgICAgPHhyZWYgbGlua2VuZD0icmVjb3Zlcnkt dGFyZ2V0LXRpbWUiLz4sIG9yCi0gICAgICAgIDx4cmVmIGxpbmtlbmQ9InJlY292ZXJ5LXRh cmdldC14aWQiLz4gaXMgc3BlY2lmaWVkLgotICAgICAgICBUaGlzIHNldHRpbmcgY29udHJv bHMgd2hldGhlciB0cmFuc2FjdGlvbnMKLSAgICAgICAgaGF2aW5nIGV4YWN0bHkgdGhlIHRh cmdldCBXQUwgbG9jYXRpb24gKExTTiksIGNvbW1pdCB0aW1lLCBvciB0cmFuc2FjdGlvbiBJ RCwgcmVzcGVjdGl2ZWx5LCB3aWxsCi0gICAgICAgIGJlIGluY2x1ZGVkIGluIHRoZSByZWNv dmVyeS4gIERlZmF1bHQgaXMgPGxpdGVyYWw+dHJ1ZTwvbGl0ZXJhbD4uCi0gICAgICAgPC9w YXJhPgotICAgICAgPC9saXN0aXRlbT4KLSAgICAgPC92YXJsaXN0ZW50cnk+Ci0KLSAgICAg PHZhcmxpc3RlbnRyeSBpZD0icmVjb3ZlcnktdGFyZ2V0LXRpbWVsaW5lIgotICAgICAgICAg ICAgICAgICAgIHhyZWZsYWJlbD0icmVjb3ZlcnlfdGFyZ2V0X3RpbWVsaW5lIj4KLSAgICAg IDx0ZXJtPjx2YXJuYW1lPnJlY292ZXJ5X3RhcmdldF90aW1lbGluZTwvdmFybmFtZT4gKDx0 eXBlPnN0cmluZzwvdHlwZT4pCi0gICAgICA8aW5kZXh0ZXJtPgotICAgICAgICA8cHJpbWFy eT48dmFybmFtZT5yZWNvdmVyeV90YXJnZXRfdGltZWxpbmU8L3Zhcm5hbWU+IHJlY292ZXJ5 IHBhcmFtZXRlcjwvcHJpbWFyeT4KLSAgICAgIDwvaW5kZXh0ZXJtPgotICAgICAgPC90ZXJt PgotICAgICAgPGxpc3RpdGVtPgotICAgICAgIDxwYXJhPgotICAgICAgICBTcGVjaWZpZXMg cmVjb3ZlcmluZyBpbnRvIGEgcGFydGljdWxhciB0aW1lbGluZS4gIFRoZSBkZWZhdWx0IGlz Ci0gICAgICAgIHRvIHJlY292ZXIgYWxvbmcgdGhlIHNhbWUgdGltZWxpbmUgdGhhdCB3YXMg Y3VycmVudCB3aGVuIHRoZQotICAgICAgICBiYXNlIGJhY2t1cCB3YXMgdGFrZW4uIFNldHRp bmcgdGhpcyB0byA8bGl0ZXJhbD5sYXRlc3Q8L2xpdGVyYWw+IHJlY292ZXJzCi0gICAgICAg IHRvIHRoZSBsYXRlc3QgdGltZWxpbmUgZm91bmQgaW4gdGhlIGFyY2hpdmUsIHdoaWNoIGlz IHVzZWZ1bCBpbgotICAgICAgICBhIHN0YW5kYnkgc2VydmVyLiBPdGhlciB0aGFuIHRoYXQg eW91IG9ubHkgbmVlZCB0byBzZXQgdGhpcyBwYXJhbWV0ZXIKLSAgICAgICAgaW4gY29tcGxl eCByZS1yZWNvdmVyeSBzaXR1YXRpb25zLCB3aGVyZSB5b3UgbmVlZCB0byByZXR1cm4gdG8K LSAgICAgICAgYSBzdGF0ZSB0aGF0IGl0c2VsZiB3YXMgcmVhY2hlZCBhZnRlciBhIHBvaW50 LWluLXRpbWUgcmVjb3ZlcnkuCi0gICAgICAgIFNlZSA8eHJlZiBsaW5rZW5kPSJiYWNrdXAt dGltZWxpbmVzIi8+IGZvciBkaXNjdXNzaW9uLgotICAgICAgIDwvcGFyYT4KLSAgICAgIDwv bGlzdGl0ZW0+Ci0gICAgIDwvdmFybGlzdGVudHJ5PgotCi0gICAgIDx2YXJsaXN0ZW50cnkg aWQ9InJlY292ZXJ5LXRhcmdldC1hY3Rpb24iCi0gICAgICAgICAgICAgICAgICAgeHJlZmxh YmVsPSJyZWNvdmVyeV90YXJnZXRfYWN0aW9uIj4KLSAgICAgIDx0ZXJtPjx2YXJuYW1lPnJl Y292ZXJ5X3RhcmdldF9hY3Rpb248L3Zhcm5hbWU+ICg8dHlwZT5lbnVtPC90eXBlPikKLSAg ICAgIDxpbmRleHRlcm0+Ci0gICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPnJlY292ZXJ5X3Rh cmdldF9hY3Rpb248L3Zhcm5hbWU+IHJlY292ZXJ5IHBhcmFtZXRlcjwvcHJpbWFyeT4KLSAg ICAgIDwvaW5kZXh0ZXJtPgotICAgICAgPC90ZXJtPgotICAgICAgPGxpc3RpdGVtPgotICAg ICAgIDxwYXJhPgotICAgICAgICBTcGVjaWZpZXMgd2hhdCBhY3Rpb24gdGhlIHNlcnZlciBz aG91bGQgdGFrZSBvbmNlIHRoZSByZWNvdmVyeSB0YXJnZXQgaXMKLSAgICAgICAgcmVhY2hl ZC4gVGhlIGRlZmF1bHQgaXMgPGxpdGVyYWw+cGF1c2U8L2xpdGVyYWw+LCB3aGljaCBtZWFu cyByZWNvdmVyeSB3aWxsCi0gICAgICAgIGJlIHBhdXNlZC4gPGxpdGVyYWw+cHJvbW90ZTwv bGl0ZXJhbD4gbWVhbnMgdGhlIHJlY292ZXJ5IHByb2Nlc3Mgd2lsbCBmaW5pc2gKLSAgICAg ICAgYW5kIHRoZSBzZXJ2ZXIgd2lsbCBzdGFydCB0byBhY2NlcHQgY29ubmVjdGlvbnMuCi0g ICAgICAgIEZpbmFsbHkgPGxpdGVyYWw+c2h1dGRvd248L2xpdGVyYWw+IHdpbGwgc3RvcCB0 aGUgc2VydmVyIGFmdGVyIHJlYWNoaW5nIHRoZQotICAgICAgICByZWNvdmVyeSB0YXJnZXQu Ci0gICAgICAgPC9wYXJhPgotICAgICAgIDxwYXJhPgotICAgICAgICBUaGUgaW50ZW5kZWQg dXNlIG9mIHRoZSA8bGl0ZXJhbD5wYXVzZTwvbGl0ZXJhbD4gc2V0dGluZyBpcyB0byBhbGxv dyBxdWVyaWVzCi0gICAgICAgIHRvIGJlIGV4ZWN1dGVkIGFnYWluc3QgdGhlIGRhdGFiYXNl IHRvIGNoZWNrIGlmIHRoaXMgcmVjb3ZlcnkgdGFyZ2V0Ci0gICAgICAgIGlzIHRoZSBtb3N0 IGRlc2lyYWJsZSBwb2ludCBmb3IgcmVjb3ZlcnkuCi0gICAgICAgIFRoZSBwYXVzZWQgc3Rh dGUgY2FuIGJlIHJlc3VtZWQgYnkKLSAgICAgICAgdXNpbmcgPGZ1bmN0aW9uPnBnX3dhbF9y ZXBsYXlfcmVzdW1lKCk8L2Z1bmN0aW9uPiAoc2VlCi0gICAgICAgIDx4cmVmIGxpbmtlbmQ9 ImZ1bmN0aW9ucy1yZWNvdmVyeS1jb250cm9sLXRhYmxlIi8+KSwgd2hpY2ggdGhlbgotICAg ICAgICBjYXVzZXMgcmVjb3ZlcnkgdG8gZW5kLiBJZiB0aGlzIHJlY292ZXJ5IHRhcmdldCBp cyBub3QgdGhlCi0gICAgICAgIGRlc2lyZWQgc3RvcHBpbmcgcG9pbnQsIHRoZW4gc2h1dCBk b3duIHRoZSBzZXJ2ZXIsIGNoYW5nZSB0aGUKLSAgICAgICAgcmVjb3ZlcnkgdGFyZ2V0IHNl dHRpbmdzIHRvIGEgbGF0ZXIgdGFyZ2V0IGFuZCByZXN0YXJ0IHRvCi0gICAgICAgIGNvbnRp bnVlIHJlY292ZXJ5LgotICAgICAgIDwvcGFyYT4KLSAgICAgICA8cGFyYT4KLSAgICAgICAg VGhlIDxsaXRlcmFsPnNodXRkb3duPC9saXRlcmFsPiBzZXR0aW5nIGlzIHVzZWZ1bCB0byBo YXZlIHRoZSBpbnN0YW5jZSByZWFkeQotICAgICAgICBhdCB0aGUgZXhhY3QgcmVwbGF5IHBv aW50IGRlc2lyZWQuICBUaGUgaW5zdGFuY2Ugd2lsbCBzdGlsbCBiZSBhYmxlIHRvCi0gICAg ICAgIHJlcGxheSBtb3JlIFdBTCByZWNvcmRzIChhbmQgaW4gZmFjdCB3aWxsIGhhdmUgdG8g cmVwbGF5IFdBTCByZWNvcmRzCi0gICAgICAgIHNpbmNlIHRoZSBsYXN0IGNoZWNrcG9pbnQg bmV4dCB0aW1lIGl0IGlzIHN0YXJ0ZWQpLgotICAgICAgIDwvcGFyYT4KLSAgICAgICA8cGFy YT4KLSAgICAgICAgTm90ZSB0aGF0IGJlY2F1c2UgPGZpbGVuYW1lPnJlY292ZXJ5LmNvbmY8 L2ZpbGVuYW1lPiB3aWxsIG5vdCBiZSByZW5hbWVkIHdoZW4KLSAgICAgICAgPHZhcm5hbWU+ cmVjb3ZlcnlfdGFyZ2V0X2FjdGlvbjwvdmFybmFtZT4gaXMgc2V0IHRvIDxsaXRlcmFsPnNo dXRkb3duPC9saXRlcmFsPiwKLSAgICAgICAgYW55IHN1YnNlcXVlbnQgc3RhcnQgd2lsbCBl bmQgd2l0aCBpbW1lZGlhdGUgc2h1dGRvd24gdW5sZXNzIHRoZQotICAgICAgICBjb25maWd1 cmF0aW9uIGlzIGNoYW5nZWQgb3IgdGhlIDxmaWxlbmFtZT5yZWNvdmVyeS5jb25mPC9maWxl bmFtZT4gZmlsZSBpcwotICAgICAgICByZW1vdmVkIG1hbnVhbGx5LgotICAgICAgIDwvcGFy YT4KLSAgICAgICA8cGFyYT4KLSAgICAgICAgVGhpcyBzZXR0aW5nIGhhcyBubyBlZmZlY3Qg aWYgbm8gcmVjb3ZlcnkgdGFyZ2V0IGlzIHNldC4KLSAgICAgICAgSWYgPHhyZWYgbGlua2Vu ZD0iZ3VjLWhvdC1zdGFuZGJ5Ii8+IGlzIG5vdCBlbmFibGVkLCBhIHNldHRpbmcgb2YKLSAg ICAgICAgPGxpdGVyYWw+cGF1c2U8L2xpdGVyYWw+IHdpbGwgYWN0IHRoZSBzYW1lIGFzIDxs aXRlcmFsPnNodXRkb3duPC9saXRlcmFsPi4KLSAgICAgICA8L3BhcmE+Ci0gICAgICA8L2xp c3RpdGVtPgotICAgICA8L3Zhcmxpc3RlbnRyeT4KLQotICAgIDwvdmFyaWFibGVsaXN0Pgot ICAgPC9zZWN0MT4KLQotICA8c2VjdDEgaWQ9InN0YW5kYnktc2V0dGluZ3MiPgotCi0gICAg PHRpdGxlPlN0YW5kYnkgU2VydmVyIFNldHRpbmdzPC90aXRsZT4KLSAgICAgPHZhcmlhYmxl bGlzdD4KLQotICAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9InN0YW5kYnktbW9kZSIgeHJlZmxh YmVsPSJzdGFuZGJ5X21vZGUiPgotICAgICAgICA8dGVybT48dmFybmFtZT5zdGFuZGJ5X21v ZGU8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKLSAgICAgICAgPGluZGV4dGVy bT4KLSAgICAgICAgICA8cHJpbWFyeT48dmFybmFtZT5zdGFuZGJ5X21vZGU8L3Zhcm5hbWU+ IHJlY292ZXJ5IHBhcmFtZXRlcjwvcHJpbWFyeT4KLSAgICAgICAgPC9pbmRleHRlcm0+Ci0g ICAgICAgIDwvdGVybT4KLSAgICAgICAgPGxpc3RpdGVtPgotICAgICAgICAgPHBhcmE+Ci0g ICAgICAgICAgU3BlY2lmaWVzIHdoZXRoZXIgdG8gc3RhcnQgdGhlIDxwcm9kdWN0bmFtZT5Q b3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gc2VydmVyIGFzCi0gICAgICAgICAgYSBzdGFuZGJ5 LiBJZiB0aGlzIHBhcmFtZXRlciBpcyA8bGl0ZXJhbD5vbjwvbGl0ZXJhbD4sIHRoZSBzZXJ2 ZXIgd2lsbAotICAgICAgICAgIG5vdCBzdG9wIHJlY292ZXJ5IHdoZW4gdGhlIGVuZCBvZiBh cmNoaXZlZCBXQUwgaXMgcmVhY2hlZCwgYnV0Ci0gICAgICAgICAgd2lsbCBrZWVwIHRyeWlu ZyB0byBjb250aW51ZSByZWNvdmVyeSBieSBmZXRjaGluZyBuZXcgV0FMIHNlZ21lbnRzCi0g ICAgICAgICAgdXNpbmcgPHZhcm5hbWU+cmVzdG9yZV9jb21tYW5kPC92YXJuYW1lPgotICAg ICAgICAgIGFuZC9vciBieSBjb25uZWN0aW5nIHRvIHRoZSBwcmltYXJ5IHNlcnZlciBhcyBz cGVjaWZpZWQgYnkgdGhlCi0gICAgICAgICAgPHZhcm5hbWU+cHJpbWFyeV9jb25uaW5mbzwv dmFybmFtZT4gc2V0dGluZy4KLSAgICAgICAgIDwvcGFyYT4KLSAgICAgICAgPC9saXN0aXRl bT4KLSAgICAgICA8L3Zhcmxpc3RlbnRyeT4KLSAgICAgICA8dmFybGlzdGVudHJ5IGlkPSJw cmltYXJ5LWNvbm5pbmZvIiB4cmVmbGFiZWw9InByaW1hcnlfY29ubmluZm8iPgotICAgICAg ICA8dGVybT48dmFybmFtZT5wcmltYXJ5X2Nvbm5pbmZvPC92YXJuYW1lPiAoPHR5cGU+c3Ry aW5nPC90eXBlPikKLSAgICAgICAgPGluZGV4dGVybT4KLSAgICAgICAgICA8cHJpbWFyeT48 dmFybmFtZT5wcmltYXJ5X2Nvbm5pbmZvPC92YXJuYW1lPiByZWNvdmVyeSBwYXJhbWV0ZXI8 L3ByaW1hcnk+Ci0gICAgICAgIDwvaW5kZXh0ZXJtPgotICAgICAgICA8L3Rlcm0+Ci0gICAg ICAgIDxsaXN0aXRlbT4KLSAgICAgICAgIDxwYXJhPgotICAgICAgICAgIFNwZWNpZmllcyBh IGNvbm5lY3Rpb24gc3RyaW5nIHRvIGJlIHVzZWQgZm9yIHRoZSBzdGFuZGJ5IHNlcnZlcgot ICAgICAgICAgIHRvIGNvbm5lY3Qgd2l0aCB0aGUgcHJpbWFyeS4gVGhpcyBzdHJpbmcgaXMg aW4gdGhlIGZvcm1hdAotICAgICAgICAgIGRlc2NyaWJlZCBpbiA8eHJlZiBsaW5rZW5kPSJs aWJwcS1jb25uc3RyaW5nIi8+LiBJZiBhbnkgb3B0aW9uIGlzCi0gICAgICAgICAgdW5zcGVj aWZpZWQgaW4gdGhpcyBzdHJpbmcsIHRoZW4gdGhlIGNvcnJlc3BvbmRpbmcgZW52aXJvbm1l bnQKLSAgICAgICAgICB2YXJpYWJsZSAoc2VlIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLWVudmFy cyIvPikgaXMgY2hlY2tlZC4gSWYgdGhlCi0gICAgICAgICAgZW52aXJvbm1lbnQgdmFyaWFi bGUgaXMgbm90IHNldCBlaXRoZXIsIHRoZW4KLSAgICAgICAgICBkZWZhdWx0cyBhcmUgdXNl ZC4KLSAgICAgICAgIDwvcGFyYT4KLSAgICAgICAgIDxwYXJhPgotICAgICAgICAgIFRoZSBj b25uZWN0aW9uIHN0cmluZyBzaG91bGQgc3BlY2lmeSB0aGUgaG9zdCBuYW1lIChvciBhZGRy ZXNzKQotICAgICAgICAgIG9mIHRoZSBwcmltYXJ5IHNlcnZlciwgYXMgd2VsbCBhcyB0aGUg cG9ydCBudW1iZXIgaWYgaXQgaXMgbm90Ci0gICAgICAgICAgdGhlIHNhbWUgYXMgdGhlIHN0 YW5kYnkgc2VydmVyJ3MgZGVmYXVsdC4KLSAgICAgICAgICBBbHNvIHNwZWNpZnkgYSB1c2Vy IG5hbWUgY29ycmVzcG9uZGluZyB0byBhIHN1aXRhYmx5LXByaXZpbGVnZWQgcm9sZQotICAg ICAgICAgIG9uIHRoZSBwcmltYXJ5IChzZWUKLSAgICAgICAgICA8eHJlZiBsaW5rZW5kPSJz dHJlYW1pbmctcmVwbGljYXRpb24tYXV0aGVudGljYXRpb24iLz4pLgotICAgICAgICAgIEEg cGFzc3dvcmQgbmVlZHMgdG8gYmUgcHJvdmlkZWQgdG9vLCBpZiB0aGUgcHJpbWFyeSBkZW1h bmRzIHBhc3N3b3JkCi0gICAgICAgICAgYXV0aGVudGljYXRpb24uICBJdCBjYW4gYmUgcHJv dmlkZWQgaW4gdGhlCi0gICAgICAgICAgPHZhcm5hbWU+cHJpbWFyeV9jb25uaW5mbzwvdmFy bmFtZT4gc3RyaW5nLCBvciBpbiBhIHNlcGFyYXRlCi0gICAgICAgICAgPGZpbGVuYW1lPn4v LnBncGFzczwvZmlsZW5hbWU+IGZpbGUgb24gdGhlIHN0YW5kYnkgc2VydmVyICh1c2UKLSAg ICAgICAgICA8bGl0ZXJhbD5yZXBsaWNhdGlvbjwvbGl0ZXJhbD4gYXMgdGhlIGRhdGFiYXNl IG5hbWUpLgotICAgICAgICAgIERvIG5vdCBzcGVjaWZ5IGEgZGF0YWJhc2UgbmFtZSBpbiB0 aGUKLSAgICAgICAgICA8dmFybmFtZT5wcmltYXJ5X2Nvbm5pbmZvPC92YXJuYW1lPiBzdHJp bmcuCi0gICAgICAgICA8L3BhcmE+Ci0gICAgICAgICA8cGFyYT4KLSAgICAgICAgICBUaGlz IHNldHRpbmcgaGFzIG5vIGVmZmVjdCBpZiA8dmFybmFtZT5zdGFuZGJ5X21vZGU8L3Zhcm5h bWU+IGlzIDxsaXRlcmFsPm9mZjwvbGl0ZXJhbD4uCi0gICAgICAgICA8L3BhcmE+Ci0gICAg ICAgIDwvbGlzdGl0ZW0+Ci0gICAgICAgPC92YXJsaXN0ZW50cnk+Ci0gICAgICAgPHZhcmxp c3RlbnRyeSBpZD0icHJpbWFyeS1zbG90LW5hbWUiIHhyZWZsYWJlbD0icHJpbWFyeV9zbG90 X25hbWUiPgotICAgICAgICA8dGVybT48dmFybmFtZT5wcmltYXJ5X3Nsb3RfbmFtZTwvdmFy bmFtZT4gKDx0eXBlPnN0cmluZzwvdHlwZT4pCi0gICAgICAgIDxpbmRleHRlcm0+Ci0gICAg ICAgICAgPHByaW1hcnk+PHZhcm5hbWU+cHJpbWFyeV9zbG90X25hbWU8L3Zhcm5hbWU+IHJl Y292ZXJ5IHBhcmFtZXRlcjwvcHJpbWFyeT4KLSAgICAgICAgPC9pbmRleHRlcm0+Ci0gICAg ICAgIDwvdGVybT4KLSAgICAgICAgPGxpc3RpdGVtPgotICAgICAgICAgPHBhcmE+Ci0gICAg ICAgICAgT3B0aW9uYWxseSBzcGVjaWZpZXMgYW4gZXhpc3RpbmcgcmVwbGljYXRpb24gc2xv dCB0byBiZSB1c2VkIHdoZW4KLSAgICAgICAgICBjb25uZWN0aW5nIHRvIHRoZSBwcmltYXJ5 IHZpYSBzdHJlYW1pbmcgcmVwbGljYXRpb24gdG8gY29udHJvbAotICAgICAgICAgIHJlc291 cmNlIHJlbW92YWwgb24gdGhlIHVwc3RyZWFtIG5vZGUKLSAgICAgICAgICAoc2VlIDx4cmVm IGxpbmtlbmQ9InN0cmVhbWluZy1yZXBsaWNhdGlvbi1zbG90cyIvPikuCi0gICAgICAgICAg VGhpcyBzZXR0aW5nIGhhcyBubyBlZmZlY3QgaWYgPHZhcm5hbWU+cHJpbWFyeV9jb25uaW5m bzwvdmFybmFtZT4gaXMgbm90Ci0gICAgICAgICAgc2V0LgotICAgICAgICAgPC9wYXJhPgot ICAgICAgICA8L2xpc3RpdGVtPgotICAgICAgIDwvdmFybGlzdGVudHJ5PgotICAgICAgIDx2 YXJsaXN0ZW50cnkgaWQ9InRyaWdnZXItZmlsZSIgeHJlZmxhYmVsPSJ0cmlnZ2VyX2ZpbGUi PgotICAgICAgICA8dGVybT48dmFybmFtZT50cmlnZ2VyX2ZpbGU8L3Zhcm5hbWU+ICg8dHlw ZT5zdHJpbmc8L3R5cGU+KQotICAgICAgICA8aW5kZXh0ZXJtPgotICAgICAgICAgIDxwcmlt YXJ5Pjx2YXJuYW1lPnRyaWdnZXJfZmlsZTwvdmFybmFtZT4gcmVjb3ZlcnkgcGFyYW1ldGVy PC9wcmltYXJ5PgotICAgICAgICA8L2luZGV4dGVybT4KLSAgICAgICAgPC90ZXJtPgotICAg ICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgICA8cGFyYT4KLSAgICAgICAgICBTcGVjaWZpZXMg YSB0cmlnZ2VyIGZpbGUgd2hvc2UgcHJlc2VuY2UgZW5kcyByZWNvdmVyeSBpbiB0aGUKLSAg ICAgICAgICBzdGFuZGJ5LiAgRXZlbiBpZiB0aGlzIHZhbHVlIGlzIG5vdCBzZXQsIHlvdSBj YW4gc3RpbGwgcHJvbW90ZQotICAgICAgICAgIHRoZSBzdGFuZGJ5IHVzaW5nIDxjb21tYW5k PnBnX2N0bCBwcm9tb3RlPC9jb21tYW5kPiBvciBjYWxsaW5nCi0gICAgICAgICAgPGZ1bmN0 aW9uPnBnX3Byb21vdGU8L2Z1bmN0aW9uPi4KLSAgICAgICAgICBUaGlzIHNldHRpbmcgaGFz IG5vIGVmZmVjdCBpZiA8dmFybmFtZT5zdGFuZGJ5X21vZGU8L3Zhcm5hbWU+IGlzIDxsaXRl cmFsPm9mZjwvbGl0ZXJhbD4uCi0gICAgICAgICA8L3BhcmE+Ci0gICAgICAgIDwvbGlzdGl0 ZW0+Ci0gICAgICAgPC92YXJsaXN0ZW50cnk+Ci0KLSAgICAgPHZhcmxpc3RlbnRyeSBpZD0i cmVjb3ZlcnktbWluLWFwcGx5LWRlbGF5IiB4cmVmbGFiZWw9InJlY292ZXJ5X21pbl9hcHBs eV9kZWxheSI+Ci0gICAgICA8dGVybT48dmFybmFtZT5yZWNvdmVyeV9taW5fYXBwbHlfZGVs YXk8L3Zhcm5hbWU+ICg8dHlwZT5pbnRlZ2VyPC90eXBlPikKLSAgICAgIDxpbmRleHRlcm0+ Ci0gICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPnJlY292ZXJ5X21pbl9hcHBseV9kZWxheTwv dmFybmFtZT4gcmVjb3ZlcnkgcGFyYW1ldGVyPC9wcmltYXJ5PgotICAgICAgPC9pbmRleHRl cm0+Ci0gICAgICA8L3Rlcm0+Ci0gICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgPHBhcmE+Ci0g ICAgICAgIEJ5IGRlZmF1bHQsIGEgc3RhbmRieSBzZXJ2ZXIgcmVzdG9yZXMgV0FMIHJlY29y ZHMgZnJvbSB0aGUKLSAgICAgICAgcHJpbWFyeSBhcyBzb29uIGFzIHBvc3NpYmxlLiBJdCBt YXkgYmUgdXNlZnVsIHRvIGhhdmUgYSB0aW1lLWRlbGF5ZWQKLSAgICAgICAgY29weSBvZiB0 aGUgZGF0YSwgb2ZmZXJpbmcgb3Bwb3J0dW5pdGllcyB0byBjb3JyZWN0IGRhdGEgbG9zcyBl cnJvcnMuCi0gICAgICAgIFRoaXMgcGFyYW1ldGVyIGFsbG93cyB5b3UgdG8gZGVsYXkgcmVj b3ZlcnkgYnkgYSBmaXhlZCBwZXJpb2Qgb2YgdGltZSwKLSAgICAgICAgbWVhc3VyZWQgaW4g bWlsbGlzZWNvbmRzIGlmIG5vIHVuaXQgaXMgc3BlY2lmaWVkLiAgRm9yIGV4YW1wbGUsIGlm Ci0gICAgICAgIHlvdSBzZXQgdGhpcyBwYXJhbWV0ZXIgdG8gPGxpdGVyYWw+NW1pbjwvbGl0 ZXJhbD4sIHRoZSBzdGFuZGJ5IHdpbGwKLSAgICAgICAgcmVwbGF5IGVhY2ggdHJhbnNhY3Rp b24gY29tbWl0IG9ubHkgd2hlbiB0aGUgc3lzdGVtIHRpbWUgb24gdGhlIHN0YW5kYnkKLSAg ICAgICAgaXMgYXQgbGVhc3QgZml2ZSBtaW51dGVzIHBhc3QgdGhlIGNvbW1pdCB0aW1lIHJl cG9ydGVkIGJ5IHRoZSBtYXN0ZXIuCi0gICAgICAgPC9wYXJhPgotICAgICAgIDxwYXJhPgot ICAgICAgICBJdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSByZXBsaWNhdGlvbiBkZWxheSBiZXR3 ZWVuIHNlcnZlcnMgZXhjZWVkcyB0aGUKLSAgICAgICAgdmFsdWUgb2YgdGhpcyBwYXJhbWV0 ZXIsIGluIHdoaWNoIGNhc2Ugbm8gZGVsYXkgaXMgYWRkZWQuCi0gICAgICAgIE5vdGUgdGhh dCB0aGUgZGVsYXkgaXMgY2FsY3VsYXRlZCBiZXR3ZWVuIHRoZSBXQUwgdGltZSBzdGFtcCBh cyB3cml0dGVuCi0gICAgICAgIG9uIG1hc3RlciBhbmQgdGhlIGN1cnJlbnQgdGltZSBvbiB0 aGUgc3RhbmRieS4gRGVsYXlzIGluIHRyYW5zZmVyCi0gICAgICAgIGJlY2F1c2Ugb2YgbmV0 d29yayBsYWcgb3IgY2FzY2FkaW5nIHJlcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb25zCi0gICAg ICAgIG1heSByZWR1Y2UgdGhlIGFjdHVhbCB3YWl0IHRpbWUgc2lnbmlmaWNhbnRseS4gSWYg dGhlIHN5c3RlbQotICAgICAgICBjbG9ja3Mgb24gbWFzdGVyIGFuZCBzdGFuZGJ5IGFyZSBu b3Qgc3luY2hyb25pemVkLCB0aGlzIG1heSBsZWFkIHRvCi0gICAgICAgIHJlY292ZXJ5IGFw cGx5aW5nIHJlY29yZHMgZWFybGllciB0aGFuIGV4cGVjdGVkOyBidXQgdGhhdCBpcyBub3Qg YQotICAgICAgICBtYWpvciBpc3N1ZSBiZWNhdXNlIHVzZWZ1bCBzZXR0aW5ncyBvZiB0aGlz IHBhcmFtZXRlciBhcmUgbXVjaCBsYXJnZXIKLSAgICAgICAgdGhhbiB0eXBpY2FsIHRpbWUg ZGV2aWF0aW9ucyBiZXR3ZWVuIHNlcnZlcnMuCi0gICAgICAgPC9wYXJhPgotICAgICAgIDxw YXJhPgotICAgICAgICBUaGUgZGVsYXkgb2NjdXJzIG9ubHkgb24gV0FMIHJlY29yZHMgZm9y IHRyYW5zYWN0aW9uIGNvbW1pdHMuCi0gICAgICAgIE90aGVyIHJlY29yZHMgYXJlIHJlcGxh eWVkIGFzIHF1aWNrbHkgYXMgcG9zc2libGUsIHdoaWNoCi0gICAgICAgIGlzIG5vdCBhIHBy b2JsZW0gYmVjYXVzZSBNVkNDIHZpc2liaWxpdHkgcnVsZXMgZW5zdXJlIHRoZWlyIGVmZmVj dHMKLSAgICAgICAgYXJlIG5vdCB2aXNpYmxlIHVudGlsIHRoZSBjb3JyZXNwb25kaW5nIGNv bW1pdCByZWNvcmQgaXMgYXBwbGllZC4KLSAgICAgICA8L3BhcmE+Ci0gICAgICAgPHBhcmE+ Ci0gICAgICAgIFRoZSBkZWxheSBvY2N1cnMgb25jZSB0aGUgZGF0YWJhc2UgaW4gcmVjb3Zl cnkgaGFzIHJlYWNoZWQgYSBjb25zaXN0ZW50Ci0gICAgICAgIHN0YXRlLCB1bnRpbCB0aGUg c3RhbmRieSBpcyBwcm9tb3RlZCBvciB0cmlnZ2VyZWQuIEFmdGVyIHRoYXQgdGhlIHN0YW5k YnkKLSAgICAgICAgd2lsbCBlbmQgcmVjb3Zlcnkgd2l0aG91dCBmdXJ0aGVyIHdhaXRpbmcu Ci0gICAgICAgPC9wYXJhPgotICAgICAgIDxwYXJhPgotICAgICAgICBUaGlzIHBhcmFtZXRl ciBpcyBpbnRlbmRlZCBmb3IgdXNlIHdpdGggc3RyZWFtaW5nIHJlcGxpY2F0aW9uIGRlcGxv eW1lbnRzOwotICAgICAgICBob3dldmVyLCBpZiB0aGUgcGFyYW1ldGVyIGlzIHNwZWNpZmll ZCBpdCB3aWxsIGJlIGhvbm9yZWQgaW4gYWxsIGNhc2VzLgotCi0gICAgICAgIDx2YXJuYW1l PmhvdF9zdGFuZGJ5X2ZlZWRiYWNrPC92YXJuYW1lPiB3aWxsIGJlIGRlbGF5ZWQgYnkgdXNl IG9mIHRoaXMgZmVhdHVyZQotICAgICAgICB3aGljaCBjb3VsZCBsZWFkIHRvIGJsb2F0IG9u IHRoZSBtYXN0ZXI7IHVzZSBib3RoIHRvZ2V0aGVyIHdpdGggY2FyZS4KLQotICAgICAgICA8 d2FybmluZz4KLSAgICAgICAgIDxwYXJhPgotICAgICAgICAgIFN5bmNocm9ub3VzIHJlcGxp Y2F0aW9uIGlzIGFmZmVjdGVkIGJ5IHRoaXMgc2V0dGluZyB3aGVuIDx2YXJuYW1lPnN5bmNo cm9ub3VzX2NvbW1pdDwvdmFybmFtZT4KLSAgICAgICAgICBpcyBzZXQgdG8gPGxpdGVyYWw+ cmVtb3RlX2FwcGx5PC9saXRlcmFsPjsgZXZlcnkgPGxpdGVyYWw+Q09NTUlUPC9saXRlcmFs PgotICAgICAgICAgIHdpbGwgbmVlZCB0byB3YWl0IHRvIGJlIGFwcGxpZWQuCi0gICAgICAg ICA8L3BhcmE+Ci0gICAgICAgIDwvd2FybmluZz4KLSAgICAgICA8L3BhcmE+Ci0gICAgICA8 L2xpc3RpdGVtPgotICAgICA8L3Zhcmxpc3RlbnRyeT4KLQotICAgICA8L3ZhcmlhYmxlbGlz dD4KLSAgIDwvc2VjdDE+Ci0KLTwvY2hhcHRlcj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9yZWYvcGdfYmFzZWJhY2t1cC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ19iYXNlYmFj a3VwLnNnbWwKaW5kZXggYzlmNmNlNGJiMy4uNTdkYzgzYjYyMCAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9wZ19iYXNlYmFja3VwLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Jl Zi9wZ19iYXNlYmFja3VwLnNnbWwKQEAgLTIxNCwxMCArMjE0LDExIEBAIDx0aXRsZT5PcHRp b25zPC90aXRsZT4KICAgICAgIDxsaXN0aXRlbT4KIAogICAgICAgIDxwYXJhPgotICAgICAg ICBXcml0ZSBhIG1pbmltYWwgPGZpbGVuYW1lPnJlY292ZXJ5LmNvbmY8L2ZpbGVuYW1lPiBp biB0aGUgb3V0cHV0CisgICAgICAgIENyZWF0ZSA8ZmlsZW5hbWU+c3RhbmRieS5zaWduYWw8 L2ZpbGVuYW1lPiBhbmQgYXBwZW5kIGNvbm5lY3Rpb24gc2V0dGluZ3MKKyAgICAgICAgdG8g PGZpbGVuYW1lPnBvc3RncmVzcWwuYXV0by5jb25mPC9maWxlbmFtZT4gaW4gdGhlIG91dHB1 dAogICAgICAgICBkaXJlY3RvcnkgKG9yIGludG8gdGhlIGJhc2UgYXJjaGl2ZSBmaWxlIHdo ZW4gdXNpbmcgdGFyIGZvcm1hdCkgdG8KICAgICAgICAgZWFzZSBzZXR0aW5nIHVwIGEgc3Rh bmRieSBzZXJ2ZXIuCi0gICAgICAgIFRoZSA8ZmlsZW5hbWU+cmVjb3ZlcnkuY29uZjwvZmls ZW5hbWU+IGZpbGUgd2lsbCByZWNvcmQgdGhlIGNvbm5lY3Rpb24KKyAgICAgICAgVGhlIDxm aWxlbmFtZT5wb3N0Z3Jlc3FsLmF1dG8uY29uZjwvZmlsZW5hbWU+IGZpbGUgd2lsbCByZWNv cmQgdGhlIGNvbm5lY3Rpb24KICAgICAgICAgc2V0dGluZ3MgYW5kLCBpZiBzcGVjaWZpZWQs IHRoZSByZXBsaWNhdGlvbiBzbG90CiAgICAgICAgIHRoYXQgPGFwcGxpY2F0aW9uPnBnX2Jh c2ViYWNrdXA8L2FwcGxpY2F0aW9uPiBpcyB1c2luZywgc28gdGhhdCB0aGUKICAgICAgICAg c3RyZWFtaW5nIHJlcGxpY2F0aW9uIHdpbGwgdXNlIHRoZSBzYW1lIHNldHRpbmdzIGxhdGVy IG9uLgpAQCAtNDcwLDcgKzQ3MSw3IEBAIDx0aXRsZT5PcHRpb25zPC90aXRsZT4KICAgICAg ICAgcmVwbGljYXRpb24gc2xvdC4gIElmIHRoZSBiYXNlIGJhY2t1cCBpcyBpbnRlbmRlZCB0 byBiZSB1c2VkIGFzIGEKICAgICAgICAgc3RyZWFtaW5nIHJlcGxpY2F0aW9uIHN0YW5kYnkg dXNpbmcgcmVwbGljYXRpb24gc2xvdHMsIGl0IHNob3VsZCB0aGVuCiAgICAgICAgIHVzZSB0 aGUgc2FtZSByZXBsaWNhdGlvbiBzbG90IG5hbWUKLSAgICAgICAgaW4gPGZpbGVuYW1lPnJl Y292ZXJ5LmNvbmY8L2ZpbGVuYW1lPi4gIFRoYXQgd2F5LCBpdCBpcyBlbnN1cmVkIHRoYXQK KyAgICAgICAgaW4gPHhyZWYgbGlua2VuZD0iZ3VjLXByaW1hcnktc2xvdC1uYW1lIi8+LiAg VGhhdCB3YXksIGl0IGlzIGVuc3VyZWQgdGhhdAogICAgICAgICB0aGUgc2VydmVyIGRvZXMg bm90IHJlbW92ZSBhbnkgbmVjZXNzYXJ5IFdBTCBkYXRhIGluIHRoZSB0aW1lIGJldHdlZW4K ICAgICAgICAgdGhlIGVuZCBvZiB0aGUgYmFzZSBiYWNrdXAgYW5kIHRoZSBzdGFydCBvZiBz dHJlYW1pbmcgcmVwbGljYXRpb24uCiAgICAgICAgPC9wYXJhPgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3JlZi9wZ19yZXdpbmQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfcmV3 aW5kLnNnbWwKaW5kZXggZTI2NjJiYmY4MS4uNTNhNjRlZTI5ZSAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9wZ19yZXdpbmQuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3Bn X3Jld2luZC5zZ21sCkBAIC02OSw3ICs2OSw4IEBAIDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0 bGU+CiAgICB0YXJnZXQgY2x1c3RlciByYW4gZm9yIGEgbG9uZyB0aW1lIGFmdGVyIHRoZSBk aXZlcmdlbmNlLCB0aGUgb2xkIFdBTAogICAgZmlsZXMgbWlnaHQgbm8gbG9uZ2VyIGJlIHBy ZXNlbnQuIEluIHRoYXQgY2FzZSwgdGhleSBjYW4gYmUgbWFudWFsbHkKICAgIGNvcGllZCBm cm9tIHRoZSBXQUwgYXJjaGl2ZSB0byB0aGUgPGZpbGVuYW1lPnBnX3dhbDwvZmlsZW5hbWU+ IGRpcmVjdG9yeSwgb3IKLSAgIGZldGNoZWQgb24gc3RhcnR1cCBieSBjb25maWd1cmluZyA8 ZmlsZW5hbWU+cmVjb3ZlcnkuY29uZjwvZmlsZW5hbWU+LiAgVGhlIHVzZSBvZgorICAgZmV0 Y2hlZCBvbiBzdGFydHVwIGJ5IGNvbmZpZ3VyaW5nIDx4cmVmIGxpbmtlbmQ9Imd1Yy1wcmlt YXJ5LWNvbm5pbmZvIi8+IG9yCisgICA8eHJlZiBsaW5rZW5kPSJndWMtcmVzdG9yZS1jb21t YW5kIi8+LiAgVGhlIHVzZSBvZgogICAgPGFwcGxpY2F0aW9uPnBnX3Jld2luZDwvYXBwbGlj YXRpb24+IGlzIG5vdCBsaW1pdGVkIHRvIGZhaWxvdmVyLCBlLmcuICBhIHN0YW5kYnkKICAg IHNlcnZlciBjYW4gYmUgcHJvbW90ZWQsIHJ1biBzb21lIHdyaXRlIHRyYW5zYWN0aW9ucywg YW5kIHRoZW4gcmV3aW5kZWQKICAgIHRvIGJlY29tZSBhIHN0YW5kYnkgYWdhaW4uCkBAIC04 Myw4ICs4NCw5IEBAIDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CiAgICA8YXBwbGljYXRp b24+cGdfcmV3aW5kPC9hcHBsaWNhdGlvbj4gd2FzIHJ1biwgYW5kIHRoZXJlZm9yZSBjb3Vs ZCBub3QgYmUgY29waWVkIGJ5IHRoZQogICAgPGFwcGxpY2F0aW9uPnBnX3Jld2luZDwvYXBw bGljYXRpb24+IHNlc3Npb24sIGl0IG11c3QgYmUgbWFkZSBhdmFpbGFibGUgd2hlbiB0aGUK ICAgIHRhcmdldCBzZXJ2ZXIgaXMgc3RhcnRlZC4gVGhpcyBjYW4gYmUgZG9uZSBieSBjcmVh dGluZyBhCi0gICA8ZmlsZW5hbWU+cmVjb3ZlcnkuY29uZjwvZmlsZW5hbWU+IGZpbGUgaW4g dGhlIHRhcmdldCBkYXRhIGRpcmVjdG9yeSB3aXRoIGEKLSAgIHN1aXRhYmxlIDx2YXJuYW1l PnJlc3RvcmVfY29tbWFuZDwvdmFybmFtZT4uCisgICA8ZmlsZW5hbWU+cmVjb3Zlcnkuc2ln bmFsPC9maWxlbmFtZT4gZmlsZSBpbiB0aGUgdGFyZ2V0IGRhdGEgZGlyZWN0b3J5CisgICBh bmQgY29uZmlndXJpbmcgc3VpdGFibGUgPHhyZWYgbGlua2VuZD0iZ3VjLXJlc3RvcmUtY29t bWFuZCIvPgorICAgaW4gPGZpbGVuYW1lPnBvc3RncmVzcWwuY29uZjwvZmlsZW5hbWU+Lgog ICA8L3BhcmE+CiAKICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3Bn YXJjaGl2ZWNsZWFudXAuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcGdhcmNoaXZlY2xlYW51 cC5zZ21sCmluZGV4IDQxMTdhNDM5MmMuLmEzZDM1MzhiMjggMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWYvcGdhcmNoaXZlY2xlYW51cC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9y ZWYvcGdhcmNoaXZlY2xlYW51cC5zZ21sCkBAIC0zOSw3ICszOSw3IEBAIDx0aXRsZT5EZXNj cmlwdGlvbjwvdGl0bGU+CiAgIDxwYXJhPgogICAgVG8gY29uZmlndXJlIGEgc3RhbmRieQog ICAgc2VydmVyIHRvIHVzZSA8YXBwbGljYXRpb24+cGdfYXJjaGl2ZWNsZWFudXA8L2FwcGxp Y2F0aW9uPiwgcHV0IHRoaXMgaW50byBpdHMKLSAgIDxmaWxlbmFtZT5yZWNvdmVyeS5jb25m PC9maWxlbmFtZT4gY29uZmlndXJhdGlvbiBmaWxlOgorICAgPGZpbGVuYW1lPnBvc3RncmVz cWwuY29uZjwvZmlsZW5hbWU+IGNvbmZpZ3VyYXRpb24gZmlsZToKIDxwcm9ncmFtbGlzdGlu Zz4KIGFyY2hpdmVfY2xlYW51cF9jb21tYW5kID0gJ3BnX2FyY2hpdmVjbGVhbnVwIDxyZXBs YWNlYWJsZT5hcmNoaXZlbG9jYXRpb248L3JlcGxhY2VhYmxlPiAlcicKIDwvcHJvZ3JhbWxp c3Rpbmc+CkBAIC00Nyw3ICs0Nyw3IEBAIDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CiAg ICBmaWxlcyBzaG91bGQgYmUgcmVtb3ZlZC4KICAgPC9wYXJhPgogICA8cGFyYT4KLSAgIFdo ZW4gdXNlZCB3aXRoaW4gPHhyZWYgbGlua2VuZD0iYXJjaGl2ZS1jbGVhbnVwLWNvbW1hbmQi Lz4sIGFsbCBXQUwgZmlsZXMKKyAgIFdoZW4gdXNlZCB3aXRoaW4gPHhyZWYgbGlua2VuZD0i Z3VjLWFyY2hpdmUtY2xlYW51cC1jb21tYW5kIi8+LCBhbGwgV0FMIGZpbGVzCiAgICBsb2dp Y2FsbHkgcHJlY2VkaW5nIHRoZSB2YWx1ZSBvZiB0aGUgPGxpdGVyYWw+JXI8L2xpdGVyYWw+ IGFyZ3VtZW50IHdpbGwgYmUgcmVtb3ZlZAogICAgZnJvbSA8cmVwbGFjZWFibGU+YXJjaGl2 ZWxvY2F0aW9uPC9yZXBsYWNlYWJsZT4uIFRoaXMgbWluaW1pemVzIHRoZSBudW1iZXIgb2Yg ZmlsZXMKICAgIHRoYXQgbmVlZCB0byBiZSByZXRhaW5lZCwgd2hpbGUgcHJlc2VydmluZyBj cmFzaC1yZXN0YXJ0IGNhcGFiaWxpdHkuICBVc2Ugb2YKZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9yZWYvcGd1cGdyYWRlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BndXBncmFkZS5z Z21sCmluZGV4IDJkNzIyYjJlNzkuLjk3OGZhMjUyZTQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9yZWYvcGd1cGdyYWRlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ3VwZ3Jh ZGUuc2dtbApAQCAtNTA2LDcgKzUwNiw3IEBAIDx0aXRsZT5TYXZlIGNvbmZpZ3VyYXRpb24g ZmlsZXM8L3RpdGxlPgogICAgICAgPHBhcmE+CiAgICAgICAgU2F2ZSBhbnkgY29uZmlndXJh dGlvbiBmaWxlcyBmcm9tIHRoZSBvbGQgc3RhbmRieXMnIGNvbmZpZ3VyYXRpb24KICAgICAg ICBkaXJlY3RvcmllcyB5b3UgbmVlZCB0byBrZWVwLCBlLmcuICA8ZmlsZW5hbWU+cG9zdGdy ZXNxbC5jb25mPC9maWxlbmFtZT4sCi0gICAgICAgPGxpdGVyYWw+cmVjb3ZlcnkuY29uZjwv bGl0ZXJhbD4sIGJlY2F1c2UgdGhlc2Ugd2lsbCBiZSBvdmVyd3JpdHRlbiBvcgorICAgICAg IDxsaXRlcmFsPnBnX2hiYS5jb25mPC9saXRlcmFsPiwgYmVjYXVzZSB0aGVzZSB3aWxsIGJl IG92ZXJ3cml0dGVuIG9yCiAgICAgICAgcmVtb3ZlZCBpbiB0aGUgbmV4dCBzdGVwLgogICAg ICAgPC9wYXJhPgogICAgICA8L3N0ZXA+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVs ZWFzZS0xMC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlbGVhc2UtMTAuc2dtbAppbmRleCBkZTc3 NzlmNjIyLi5hYWNkZDM2MGUwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVsZWFzZS0x MC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWxlYXNlLTEwLnNnbWwKQEAgLTczMDMsNyAr NzMwMyw3IEBAIDx0aXRsZT5SZXBsaWNhdGlvbiBhbmQgUmVjb3Zlcnk8L3RpdGxlPgogICAg ICAgPHBhcmE+CiAgICAgICAgQWxsb3cgc3BlY2lmaWNhdGlvbiBvZiB0aGUgcmVjb3Zlcnkg c3RvcHBpbmcgcG9pbnQgYnkgTG9nIFNlcXVlbmNlCiAgICAgICAgTnVtYmVyICg8YWNyb255 bT5MU048L2Fjcm9ueW0+KSBpbgotICAgICAgIDxsaW5rIGxpbmtlbmQ9InJlY292ZXJ5LWNv bmZpZyI+PGZpbGVuYW1lPnJlY292ZXJ5LmNvbmY8L2ZpbGVuYW1lPjwvbGluaz4KKyAgICAg ICA8ZmlsZW5hbWU+cmVjb3ZlcnkuY29uZjwvZmlsZW5hbWU+CiAgICAgICAgKE1pY2hhZWwg UGFxdWllcikKICAgICAgIDwvcGFyYT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl bGVhc2UtOS4xLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVsZWFzZS05LjEuc2dtbAppbmRleCBl NmNlODAwMzJmLi45YzQwODJiNmM0IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVsZWFz ZS05LjEuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVsZWFzZS05LjEuc2dtbApAQCAtOTgx MSw3ICs5ODExLDcgQEAgPHRpdGxlPlJlY292ZXJ5IENvbnRyb2w8L3RpdGxlPgogICAgICAg IDxwYXJhPgogICAgICAgICBUaGVzZSBuYW1lZCByZXN0b3JlIHBvaW50cyBjYW4gYmUgc3Bl Y2lmaWVkIGFzIHJlY292ZXJ5CiAgICAgICAgIHRhcmdldHMgdXNpbmcgdGhlIG5ldyA8Zmls ZW5hbWU+cmVjb3ZlcnkuY29uZjwvZmlsZW5hbWU+IHNldHRpbmcKLSAgICAgICAgPGxpbmsg bGlua2VuZD0icmVjb3ZlcnktdGFyZ2V0LW5hbWUiPjx2YXJuYW1lPnJlY292ZXJ5X3Rhcmdl dF9uYW1lPC92YXJuYW1lPjwvbGluaz4uCisgICAgICAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy1y ZWNvdmVyeS10YXJnZXQtbmFtZSI+PHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0X25hbWU8L3Zh cm5hbWU+PC9saW5rPi4KICAgICAgICA8L3BhcmE+CiAgICAgICA8L2xpc3RpdGVtPgogCkBA IC05ODQzLDggKzk4NDMsNyBAQCA8dGl0bGU+UmVjb3ZlcnkgQ29udHJvbDwvdGl0bGU+CiAK ICAgICAgIDxsaXN0aXRlbT4KICAgICAgICA8cGFyYT4KLSAgICAgICAgQWxsb3cgPGxpbmsK LSAgICAgICAgbGlua2VuZD0icmVjb3ZlcnktY29uZmlnIj48ZmlsZW5hbWU+cmVjb3Zlcnku Y29uZjwvZmlsZW5hbWU+PC9saW5rPgorICAgICAgICBBbGxvdyA8ZmlsZW5hbWU+cmVjb3Zl cnkuY29uZjwvZmlsZW5hbWU+CiAgICAgICAgIHRvIHVzZSB0aGUgc2FtZSBxdW90aW5nIGJl aGF2aW9yIGFzIDxmaWxlbmFtZT5wb3N0Z3Jlc3FsLmNvbmY8L2ZpbGVuYW1lPgogICAgICAg ICAoRGltaXRyaSBGb250YWluZSkKICAgICAgICA8L3BhcmE+CmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvcmVsZWFzZS05LjQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWxlYXNlLTkuNC5z Z21sCmluZGV4IDUwNDQyZTk4YjQuLjUxMzc1Y2ViZTQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9yZWxlYXNlLTkuNC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWxlYXNlLTkuNC5z Z21sCkBAIC01MzUwLDcgKzUzNTAsNyBAQCA8dGl0bGU+Q2hhbmdlczwvdGl0bGU+CiAKICAg ICA8bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgotICAgICAgSWdub3JlIDx4cmVmIGxpbmtlbmQ9 InJlY292ZXJ5LW1pbi1hcHBseS1kZWxheSIvPiBwYXJhbWV0ZXIgdW50aWwKKyAgICAgIEln bm9yZSA8eHJlZiBsaW5rZW5kPSJndWMtcmVjb3ZlcnktbWluLWFwcGx5LWRlbGF5Ii8+IHBh cmFtZXRlciB1bnRpbAogICAgICAgcmVjb3ZlcnkgaGFzIHJlYWNoZWQgYSBjb25zaXN0ZW50 IHN0YXRlIChNaWNoYWVsIFBhcXVpZXIpCiAgICAgIDwvcGFyYT4KIApAQCAtMTA4NjksOCAr MTA4NjksOCBAQCA8dGl0bGU+TWlncmF0aW9uIHRvIFZlcnNpb24gOS40PC90aXRsZT4KIAog ICAgIDxsaXN0aXRlbT4KICAgICAgPHBhcmE+Ci0gICAgICBVc2UgdGhlIGxhc3Qgc3BlY2lm aWVkIDxsaW5rIGxpbmtlbmQ9InJlY292ZXJ5LXRhcmdldC1zZXR0aW5ncyI+cmVjb3ZlcnkK LSAgICAgIHRhcmdldCBwYXJhbWV0ZXI8L2xpbms+IGlmIG11bHRpcGxlIHRhcmdldCBwYXJh bWV0ZXJzIGFyZSBzcGVjaWZpZWQKKyAgICAgIFVzZSB0aGUgbGFzdCBzcGVjaWZpZWQgcmVj b3ZlcnkKKyAgICAgIHRhcmdldCBwYXJhbWV0ZXIgaWYgbXVsdGlwbGUgdGFyZ2V0IHBhcmFt ZXRlcnMgYXJlIHNwZWNpZmllZAogICAgICAgKEhlaWtraSBMaW5uYWthbmdhcykKICAgICAg PC9wYXJhPgogCkBAIC0xMDg4OSw3ICsxMDg4OSw3IEBAIDx0aXRsZT5NaWdyYXRpb24gdG8g VmVyc2lvbiA5LjQ8L3RpdGxlPgogICAgICA8cGFyYT4KICAgICAgIFVzZXIgY29tbWFuZHMg dGhhdCBkaWQgdGhlaXIgb3duIHF1b3RlIHByZXNlcnZhdGlvbiBtaWdodCBuZWVkCiAgICAg ICBhZGp1c3RtZW50LiAgVGhpcyBpcyBsaWtlbHkgdG8gYmUgYW4gaXNzdWUgZm9yIGNvbW1h bmRzIHVzZWQgaW4KLSAgICAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy1hcmNoaXZlLWNvbW1hbmQi Lz4sIDx4cmVmIGxpbmtlbmQ9InJlc3RvcmUtY29tbWFuZCIvPiwKKyAgICAgIDx4cmVmIGxp bmtlbmQ9Imd1Yy1hcmNoaXZlLWNvbW1hbmQiLz4sIDx4cmVmIGxpbmtlbmQ9Imd1Yy1yZXN0 b3JlLWNvbW1hbmQiLz4sCiAgICAgICBhbmQgPGxpbmsgbGlua2VuZD0ic3FsLWNvcHkiPjxj b21tYW5kPkNPUFkgVE8vRlJPTSBQUk9HUkFNPC9jb21tYW5kPjwvbGluaz4uCiAgICAgIDwv cGFyYT4KICAgICA8L2xpc3RpdGVtPgpAQCAtMTE1MTAsNyArMTE1MTAsNyBAQCA8dGl0bGU+ UmVwbGljYXRpb24gYW5kIFJlY292ZXJ5PC90aXRsZT4KIAogICAgICAgPGxpc3RpdGVtPgog ICAgICAgIDxwYXJhPgotICAgICAgICBBZGQgcmVjb3ZlcnkgcGFyYW1ldGVyIDx4cmVmIGxp bmtlbmQ9InJlY292ZXJ5LW1pbi1hcHBseS1kZWxheSIvPgorICAgICAgICBBZGQgcmVjb3Zl cnkgcGFyYW1ldGVyIDx4cmVmIGxpbmtlbmQ9Imd1Yy1yZWNvdmVyeS1taW4tYXBwbHktZGVs YXkiLz4KICAgICAgICAgdG8gZGVsYXkgcmVwbGljYXRpb24gKFJvYmVydCBIYWFzLCBGYWJy JmlhY3V0ZTt6aW8gZGUgUm95ZXMgTWVsbG8sCiAgICAgICAgIFNpbW9uIFJpZ2dzKQogICAg ICAgIDwvcGFyYT4KQEAgLTExNTIzLDcgKzExNTIzLDcgQEAgPHRpdGxlPlJlcGxpY2F0aW9u IGFuZCBSZWNvdmVyeTwvdGl0bGU+CiAKICAgICAgIDxsaXN0aXRlbT4KICAgICAgICA8cGFy YT4KLSAgICAgICAgQWRkIDx4cmVmIGxpbmtlbmQ9InJlY292ZXJ5LXRhcmdldCIvPgorICAg ICAgICBBZGQgPHhyZWYgbGlua2VuZD0iZ3VjLXJlY292ZXJ5LXRhcmdldCIvPgogICAgICAg ICBvcHRpb24gPG9wdGlvbj5pbW1lZGlhdGU8L29wdGlvbj4gdG8gc3RvcCA8bGluawogICAg ICAgICBsaW5rZW5kPSJ3YWwiPjxhY3JvbnltPldBTDwvYWNyb255bT48L2xpbms+IHJlY292 ZXJ5IGFzIHNvb24gYXMgYQogICAgICAgICBjb25zaXN0ZW50IHN0YXRlIGlzIHJlYWNoZWQg KE1hdU1hdSwgSGVpa2tpIExpbm5ha2FuZ2FzKQpAQCAtMTE1NTksOCArMTE1NTksNyBAQCA8 dGl0bGU+UmVwbGljYXRpb24gYW5kIFJlY292ZXJ5PC90aXRsZT4KIAogICAgICAgPGxpc3Rp dGVtPgogICAgICAgIDxwYXJhPgotICAgICAgICBSZXBvcnQgZmFpbHVyZSByZXR1cm4gY29k ZXMgZnJvbSA8bGluawotICAgICAgICBsaW5rZW5kPSJhcmNoaXZlLXJlY292ZXJ5LXNldHRp bmdzIj5leHRlcm5hbCByZWNvdmVyeSBjb21tYW5kczwvbGluaz4KKyAgICAgICAgUmVwb3J0 IGZhaWx1cmUgcmV0dXJuIGNvZGVzIGZyb20gZXh0ZXJuYWwgcmVjb3ZlcnkgY29tbWFuZHMK ICAgICAgICAgKFBldGVyIEVpc2VudHJhdXQpCiAgICAgICAgPC9wYXJhPgogICAgICAgPC9s aXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWxlYXNlLTkuNS5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlbGVhc2UtOS41LnNnbWwKaW5kZXggY2NkOGVlZTNlMy4uZGE5ZjJm Njk3OSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlbGVhc2UtOS41LnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlbGVhc2UtOS41LnNnbWwKQEAgLTczMDUsNyArNzMwNSw3IEBAIDx0 aXRsZT5DaGFuZ2VzPC90aXRsZT4KIAogICAgIDxsaXN0aXRlbT4KICAgICAgPHBhcmE+Ci0g ICAgICBJZ25vcmUgPHhyZWYgbGlua2VuZD0icmVjb3ZlcnktbWluLWFwcGx5LWRlbGF5Ii8+ IHBhcmFtZXRlciB1bnRpbAorICAgICAgSWdub3JlIDx4cmVmIGxpbmtlbmQ9Imd1Yy1yZWNv dmVyeS1taW4tYXBwbHktZGVsYXkiLz4gcGFyYW1ldGVyIHVudGlsCiAgICAgICByZWNvdmVy eSBoYXMgcmVhY2hlZCBhIGNvbnNpc3RlbnQgc3RhdGUgKE1pY2hhZWwgUGFxdWllcikKICAg ICAgPC9wYXJhPgogCkBAIC05MDk2LDkgKzkwOTYsOSBAQCA8dGl0bGU+UmVwbGljYXRpb24g YW5kIFJlY292ZXJ5PC90aXRsZT4KIDIwMTUtMDMtMTUgWzUxYzExYTddIEFuZHJlcy4uOiBS ZW1vdmUgcGF1c2VfYXRfcmVjb3ZlcnlfdGFyZ2V0IHJlY292ZXJ5LmNvbmYgcy4uCiAtLT4K ICAgICAgICA8cGFyYT4KLSAgICAgICAgQWRkIDxsaW5rIGxpbmtlbmQ9InJlY292ZXJ5LWNv bmZpZyI+PGZpbGVuYW1lPnJlY292ZXJ5LmNvbmY8L2ZpbGVuYW1lPjwvbGluaz4KKyAgICAg ICAgQWRkIDxmaWxlbmFtZT5yZWNvdmVyeS5jb25mPC9maWxlbmFtZT4KICAgICAgICAgcGFy YW1ldGVyIDxsaW5rCi0gICAgICAgIGxpbmtlbmQ9InJlY292ZXJ5LXRhcmdldC1hY3Rpb24i Pjx2YXJuYW1lPnJlY292ZXJ5X3RhcmdldF9hY3Rpb248L3Zhcm5hbWU+PC9saW5rPgorICAg ICAgICBsaW5rZW5kPSJndWMtcmVjb3ZlcnktdGFyZ2V0LWFjdGlvbiI+PHZhcm5hbWU+cmVj b3ZlcnlfdGFyZ2V0X2FjdGlvbjwvdmFybmFtZT48L2xpbms+CiAgICAgICAgIHRvIGNvbnRy b2wgcG9zdC1yZWNvdmVyeSBhY3Rpdml0eSAoUGV0ciBKZWwmaWFjdXRlO25laykKICAgICAg ICA8L3BhcmE+CiAKQEAgLTkyMDAsNyArOTIwMCw3IEBAIDx0aXRsZT5SZXBsaWNhdGlvbiBh bmQgUmVjb3Zlcnk8L3RpdGxlPgogLS0+CiAgICAgICAgPHBhcmE+CiAgICAgICAgIEFsbG93 IDxmaWxlbmFtZT5yZWNvdmVyeS5jb25mPC9maWxlbmFtZT4ncyA8bGluawotICAgICAgICBs aW5rZW5kPSJwcmltYXJ5LWNvbm5pbmZvIj48dmFybmFtZT5wcmltYXJ5X2Nvbm5pbmZvPC92 YXJuYW1lPjwvbGluaz4gc2V0dGluZyB0bworICAgICAgICBsaW5rZW5kPSJndWMtcHJpbWFy eS1jb25uaW5mbyI+PHZhcm5hbWU+cHJpbWFyeV9jb25uaW5mbzwvdmFybmFtZT48L2xpbms+ IHNldHRpbmcgdG8KICAgICAgICAgdXNlIGNvbm5lY3Rpb24gPGFjcm9ueW0+VVJJPC9hY3Jv bnltPnMsIGUuZy4gPGxpdGVyYWw+cG9zdGdyZXM6Ly88L2xpdGVyYWw+CiAgICAgICAgIChB bGV4YW5kZXIgU2h1bGdpbikKICAgICAgICA8L3BhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcmVsZWFzZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlbGVhc2Uuc2dtbAppbmRleCBj NGU3NjNhMDQzLi40MDU1YWRmODhmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVsZWFz ZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWxlYXNlLnNnbWwKQEAgLTUsOCArNSw3IEBA CiAKICY8PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlICYgZXNjYXBlcwogUG9z dGdyZVNRTCAgICAgICAgICAgICAgICAgICAgICA8cHJvZHVjdG5hbWU+Ci1wb3N0Z3Jlc3Fs LmNvbmYsIHBnX2hiYS5jb25mLAotICAgICAgICByZWNvdmVyeS5jb25mICAgICAgICAgICA8 ZmlsZW5hbWU+Citwb3N0Z3Jlc3FsLmNvbmYsIHBnX2hiYS5jb25mICAgIDxmaWxlbmFtZT4K IFtBLVpdW0EtWl8gXStbQS1aX10gICAgICAgICAgICAgPGNvbW1hbmQ+LCA8bGl0ZXJhbD4s IDxlbnZhcj4sIDxhY3JvbnltPgogW0EtWmEtel9dW0EtWmEtejAtOV9dKygpICAgICAgICA8 ZnVuY3Rpb24+CiBcLVwtP1tBLVphLXpfXStbLUEtWmEtel9dKiAgICAgIDxvcHRpb24+ICh1 c2UgYmFja3NsYXNoZXMgdG8gYXZvaWQgU0dNTCBtYXJrdXApCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL01ha2VmaWxlCmluZGV4IDNhNThiZjY2 ODUuLjI1ZWIwNDM5NDEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL01ha2VmaWxlCisrKyBi L3NyYy9iYWNrZW5kL01ha2VmaWxlCkBAIC0yMDksNyArMjA5LDYgQEAgZW5kaWYKIAkkKElO U1RBTExfREFUQSkgJChzcmNkaXIpL2xpYnBxL3BnX2hiYS5jb25mLnNhbXBsZSAnJChERVNU RElSKSQoZGF0YWRpcikvcGdfaGJhLmNvbmYuc2FtcGxlJwogCSQoSU5TVEFMTF9EQVRBKSAk KHNyY2RpcikvbGlicHEvcGdfaWRlbnQuY29uZi5zYW1wbGUgJyQoREVTVERJUikkKGRhdGFk aXIpL3BnX2lkZW50LmNvbmYuc2FtcGxlJwogCSQoSU5TVEFMTF9EQVRBKSAkKHNyY2Rpcikv dXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlICckKERFU1RESVIpJChkYXRhZGly KS9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlJwotCSQoSU5TVEFMTF9EQVRBKSAkKHNyY2Rpcikv YWNjZXNzL3RyYW5zYW0vcmVjb3ZlcnkuY29uZi5zYW1wbGUgJyQoREVTVERJUikkKGRhdGFk aXIpL3JlY292ZXJ5LmNvbmYuc2FtcGxlJwogCiBpZmVxICgkKHdpdGhfbGx2bSksIHllcykK IGluc3RhbGwtYmluOiBpbnN0YWxsLXBvc3RncmVzLWJpdGNvZGUKQEAgLTI3NCw4ICsyNzMs NyBAQCBlbmRpZgogCSQoTUFLRSkgLUMgdXRpbHMgdW5pbnN0YWxsLWRhdGEKIAlybSAtZiAn JChERVNURElSKSQoZGF0YWRpcikvcGdfaGJhLmNvbmYuc2FtcGxlJyBcCiAJICAgICAgJyQo REVTVERJUikkKGRhdGFkaXIpL3BnX2lkZW50LmNvbmYuc2FtcGxlJyBcCi0JICAgICAgJyQo REVTVERJUikkKGRhdGFkaXIpL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUnIFwKLQkgICAgICAn JChERVNURElSKSQoZGF0YWRpcikvcmVjb3ZlcnkuY29uZi5zYW1wbGUnCisJICAgICAgJyQo REVTVERJUikkKGRhdGFkaXIpL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUnCiBpZmVxICgkKHdp dGhfbGx2bSksIHllcykKIAkkKGNhbGwgdW5pbnN0YWxsX2xsdm1fbW9kdWxlLHBvc3RncmVz KQogZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3JlY292 ZXJ5LmNvbmYuc2FtcGxlIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vcmVjb3Zlcnku Y29uZi5zYW1wbGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlNDY2MTI2NDIu LjAwMDAwMDAwMDAKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vcmVjb3Zlcnku Y29uZi5zYW1wbGUKKysrIC9kZXYvbnVsbApAQCAtMSwxNTggKzAsMCBAQAotIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFBvc3RncmVTUUwgcmVjb3ZlcnkgY29uZmln IGZpbGUKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIwotIyBFZGl0IHRo aXMgZmlsZSB0byBwcm92aWRlIHRoZSBwYXJhbWV0ZXJzIHRoYXQgUG9zdGdyZVNRTCBuZWVk cyB0bwotIyBwZXJmb3JtIGFuIGFyY2hpdmUgcmVjb3Zlcnkgb2YgYSBkYXRhYmFzZSwgb3Ig dG8gYWN0IGFzIGEgcmVwbGljYXRpb24KLSMgc3RhbmRieS4KLSMKLSMgSWYgInJlY292ZXJ5 LmNvbmYiIGlzIHByZXNlbnQgaW4gdGhlIFBvc3RncmVTUUwgZGF0YSBkaXJlY3RvcnksIGl0 IGlzCi0jIHJlYWQgb24gcG9zdG1hc3RlciBzdGFydHVwLiAgQWZ0ZXIgc3VjY2Vzc2Z1bCBy ZWNvdmVyeSwgaXQgaXMgcmVuYW1lZAotIyB0byAicmVjb3ZlcnkuZG9uZSIgdG8gZW5zdXJl IHRoYXQgd2UgZG8gbm90IGFjY2lkZW50YWxseSByZS1lbnRlcgotIyBhcmNoaXZlIHJlY292 ZXJ5IG9yIHN0YW5kYnkgbW9kZS4KLSMKLSMgVGhpcyBmaWxlIGNvbnNpc3RzIG9mIGxpbmVz IG9mIHRoZSBmb3JtOgotIwotIyAgIG5hbWUgPSB2YWx1ZQotIwotIyBDb21tZW50cyBhcmUg aW50cm9kdWNlZCB3aXRoICcjJy4KLSMKLSMgVGhlIGNvbXBsZXRlIGxpc3Qgb2Ygb3B0aW9u IG5hbWVzIGFuZCBhbGxvd2VkIHZhbHVlcyBjYW4gYmUgZm91bmQKLSMgaW4gdGhlIFBvc3Rn cmVTUUwgZG9jdW1lbnRhdGlvbi4KLSMKLSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgQVJD SElWRSBSRUNPVkVSWSBQQVJBTUVURVJTCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jCi0j IHJlc3RvcmVfY29tbWFuZAotIwotIyBzcGVjaWZpZXMgdGhlIHNoZWxsIGNvbW1hbmQgdGhh dCBpcyBleGVjdXRlZCB0byBjb3B5IGxvZyBmaWxlcwotIyBiYWNrIGZyb20gYXJjaGl2YWwg c3RvcmFnZS4gIFRoZSBjb21tYW5kIHN0cmluZyBtYXkgY29udGFpbiAlZiwKLSMgd2hpY2gg aXMgcmVwbGFjZWQgYnkgdGhlIG5hbWUgb2YgdGhlIGRlc2lyZWQgbG9nIGZpbGUsIGFuZCAl cCwKLSMgd2hpY2ggaXMgcmVwbGFjZWQgYnkgdGhlIGFic29sdXRlIHBhdGggdG8gY29weSB0 aGUgbG9nIGZpbGUgdG8uCi0jCi0jIFRoaXMgcGFyYW1ldGVyIGlzICpyZXF1aXJlZCogZm9y IGFuIGFyY2hpdmUgcmVjb3ZlcnksIGJ1dCBvcHRpb25hbAotIyBmb3Igc3RyZWFtaW5nIHJl cGxpY2F0aW9uLgotIwotIyBJdCBpcyBpbXBvcnRhbnQgdGhhdCB0aGUgY29tbWFuZCByZXR1 cm4gbm9uemVybyBleGl0IHN0YXR1cyBvbiBmYWlsdXJlLgotIyBUaGUgY29tbWFuZCAqd2ls bCogYmUgYXNrZWQgZm9yIGxvZyBmaWxlcyB0aGF0IGFyZSBub3QgcHJlc2VudCBpbiB0aGUK LSMgYXJjaGl2ZTsgaXQgbXVzdCByZXR1cm4gbm9uemVybyB3aGVuIHNvIGFza2VkLgotIwot IyBOT1RFIHRoYXQgdGhlIGJhc2VuYW1lIG9mICVwIHdpbGwgYmUgZGlmZmVyZW50IGZyb20g JWY7IGRvIG5vdAotIyBleHBlY3QgdGhlbSB0byBiZSBpbnRlcmNoYW5nZWFibGUuCi0jCi0j cmVzdG9yZV9jb21tYW5kID0gJycJCSMgZS5nLiAnY3AgL21udC9zZXJ2ZXIvYXJjaGl2ZWRp ci8lZiAlcCcKLSMKLSMKLSMgYXJjaGl2ZV9jbGVhbnVwX2NvbW1hbmQKLSMKLSMgc3BlY2lm aWVzIGFuIG9wdGlvbmFsIHNoZWxsIGNvbW1hbmQgdG8gZXhlY3V0ZSBhdCBldmVyeSByZXN0 YXJ0cG9pbnQuCi0jIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3IgY2xlYW5pbmcgdXAgdGhlIGFy Y2hpdmUgb2YgYSBzdGFuZGJ5IHNlcnZlci4KLSMKLSNhcmNoaXZlX2NsZWFudXBfY29tbWFu ZCA9ICcnCi0jCi0jIHJlY292ZXJ5X2VuZF9jb21tYW5kCi0jCi0jIHNwZWNpZmllcyBhbiBv cHRpb25hbCBzaGVsbCBjb21tYW5kIHRvIGV4ZWN1dGUgYXQgY29tcGxldGlvbiBvZiByZWNv dmVyeS4KLSMgVGhpcyBjYW4gYmUgdXNlZnVsIGZvciBjbGVhbmluZyB1cCBhZnRlciB0aGUg cmVzdG9yZV9jb21tYW5kLgotIwotI3JlY292ZXJ5X2VuZF9jb21tYW5kID0gJycKLSMKLSMt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgUkVDT1ZFUlkgVEFSR0VUIFBBUkFNRVRFUlMKLSMt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMKLSMgQnkgZGVmYXVsdCwgcmVjb3Zlcnkgd2lsbCBy b2xsZm9yd2FyZCB0byB0aGUgZW5kIG9mIHRoZSBXQUwgbG9nLgotIyBJZiB5b3Ugd2FudCB0 byBzdG9wIHJvbGxmb3J3YXJkIGF0IGEgc3BlY2lmaWMgcG9pbnQsIHlvdQotIyBtdXN0IHNl dCBhIHJlY292ZXJ5IHRhcmdldC4KLSMKLSMgWW91IG1heSBzZXQgYSByZWNvdmVyeSB0YXJn ZXQgZWl0aGVyIGJ5IHRyYW5zYWN0aW9uSWQsIGJ5IG5hbWUsIGJ5Ci0jIHRpbWVzdGFtcCBv ciBieSBXQUwgbG9jYXRpb24gKExTTikuIFJlY292ZXJ5IG1heSBlaXRoZXIgaW5jbHVkZSBv cgotIyBleGNsdWRlIHRoZSB0cmFuc2FjdGlvbihzKSB3aXRoIHRoZSByZWNvdmVyeSB0YXJn ZXQgdmFsdWUgKGkuZS4sCi0jIHN0b3AgZWl0aGVyIGp1c3QgYWZ0ZXIgb3IganVzdCBiZWZv cmUgdGhlIGdpdmVuIHRhcmdldCwKLSMgcmVzcGVjdGl2ZWx5KS4KLSMKLSMKLSNyZWNvdmVy eV90YXJnZXRfbmFtZSA9ICcnCSMgZS5nLiAnZGFpbHkgYmFja3VwIDIwMTEtMDEtMjYnCi0j Ci0jcmVjb3ZlcnlfdGFyZ2V0X3RpbWUgPSAnJwkjIGUuZy4gJzIwMDQtMDctMTQgMjI6Mzk6 MDAgRVNUJwotIwotI3JlY292ZXJ5X3RhcmdldF94aWQgPSAnJwotIwotI3JlY292ZXJ5X3Rh cmdldF9sc24gPSAnJwkjIGUuZy4gJzAvNzAwMDZCOCcKLSMKLSNyZWNvdmVyeV90YXJnZXRf aW5jbHVzaXZlID0gdHJ1ZQotIwotIwotIyBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHJlcXVl c3Qgc3RvcHBpbmcgYXMgc29vbiBhcyBhIGNvbnNpc3RlbnQgc3RhdGUKLSMgaXMgcmVhY2hl ZCwgYnkgdW5jb21tZW50aW5nIHRoaXMgb3B0aW9uLgotIwotI3JlY292ZXJ5X3RhcmdldCA9 ICdpbW1lZGlhdGUnCi0jCi0jCi0jIElmIHlvdSB3YW50IHRvIHJlY292ZXIgaW50byBhIHRp bWVsaW5lIG90aGVyIHRoYW4gdGhlICJtYWluIGxpbmUiIHNob3duIGluCi0jIHBnX2NvbnRy b2wsIHNwZWNpZnkgdGhlIHRpbWVsaW5lIG51bWJlciBoZXJlLCBvciB3cml0ZSAnbGF0ZXN0 JyB0byBnZXQKLSMgdGhlIGxhdGVzdCBicmFuY2ggZm9yIHdoaWNoIHRoZXJlJ3MgYSBoaXN0 b3J5IGZpbGUuCi0jCi0jcmVjb3ZlcnlfdGFyZ2V0X3RpbWVsaW5lID0gJ2xhdGVzdCcKLSMK LSMKLSMgSWYgcmVjb3ZlcnlfdGFyZ2V0X2FjdGlvbiA9ICdwYXVzZScsIHJlY292ZXJ5IHdp bGwgcGF1c2Ugd2hlbiB0aGUKLSMgcmVjb3ZlcnkgdGFyZ2V0IGlzIHJlYWNoZWQuIFRoZSBw YXVzZSBzdGF0ZSB3aWxsIGNvbnRpbnVlIHVudGlsCi0jIHBnX3dhbF9yZXBsYXlfcmVzdW1l KCkgaXMgY2FsbGVkLiBUaGlzIHNldHRpbmcgaGFzIG5vIGVmZmVjdCBpZgotIyBubyByZWNv dmVyeSB0YXJnZXQgaXMgc2V0LiBJZiBob3Rfc3RhbmRieSBpcyBub3QgZW5hYmxlZCB0aGVu IHRoZQotIyBzZXJ2ZXIgd2lsbCBzaHV0ZG93biBpbnN0ZWFkLCB0aG91Z2ggeW91IG1heSBy ZXF1ZXN0IHRoaXMgaW4KLSMgYW55IGNhc2UgYnkgc3BlY2lmeWluZyAnc2h1dGRvd24nLgot IwotI3JlY292ZXJ5X3RhcmdldF9hY3Rpb24gPSAncGF1c2UnCi0jCi0jLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0jIFNUQU5EQlkgU0VSVkVSIFBBUkFNRVRFUlMKLSMtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSMKLSMgc3RhbmRieV9tb2RlCi0jCi0jIFdoZW4gc3RhbmRieV9tb2RlIGlz IGVuYWJsZWQsIHRoZSBQb3N0Z3JlU1FMIHNlcnZlciB3aWxsIHdvcmsgYXMgYQotIyBzdGFu ZGJ5LiBJdCB3aWxsIGNvbnRpbnVvdXNseSB3YWl0IGZvciB0aGUgYWRkaXRpb25hbCBYTE9H IHJlY29yZHMsIHVzaW5nCi0jIHJlc3RvcmVfY29tbWFuZCBhbmQvb3IgcHJpbWFyeV9jb25u aW5mby4KLSMKLSNzdGFuZGJ5X21vZGUgPSBvZmYKLSMKLSMgcHJpbWFyeV9jb25uaW5mbwot IwotIyBJZiBzZXQsIHRoZSBQb3N0Z3JlU1FMIHNlcnZlciB3aWxsIHRyeSB0byBjb25uZWN0 IHRvIHRoZSBwcmltYXJ5IHVzaW5nIHRoaXMKLSMgY29ubmVjdGlvbiBzdHJpbmcgYW5kIHJl Y2VpdmUgWExPRyByZWNvcmRzIGNvbnRpbnVvdXNseS4KLSMKLSNwcmltYXJ5X2Nvbm5pbmZv ID0gJycJCSMgZS5nLiAnaG9zdD1sb2NhbGhvc3QgcG9ydD01NDMyJwotIwotIyBJZiBzZXQs IHRoZSBQb3N0Z3JlU1FMIHNlcnZlciB3aWxsIHVzZSB0aGUgc3BlY2lmaWVkIHJlcGxpY2F0 aW9uIHNsb3Qgd2hlbgotIyBjb25uZWN0aW5nIHRvIHRoZSBwcmltYXJ5IHZpYSBzdHJlYW1p bmcgcmVwbGljYXRpb24gdG8gY29udHJvbCByZXNvdXJjZQotIyByZW1vdmFsIG9uIHRoZSB1 cHN0cmVhbSBub2RlLiBUaGlzIHNldHRpbmcgaGFzIG5vIGVmZmVjdCBpZiBwcmltYXJ5X2Nv bm5pbmZvCi0jIGlzIG5vdCBzZXQuCi0jCi0jcHJpbWFyeV9zbG90X25hbWUgPSAnJwotIwot IyBCeSBkZWZhdWx0LCBhIHN0YW5kYnkgc2VydmVyIGtlZXBzIHJlc3RvcmluZyBYTE9HIHJl Y29yZHMgZnJvbSB0aGUKLSMgcHJpbWFyeSBpbmRlZmluaXRlbHkuIElmIHlvdSB3YW50IHRv IHN0b3AgdGhlIHN0YW5kYnkgbW9kZSwgZmluaXNoIHJlY292ZXJ5Ci0jIGFuZCBvcGVuIHRo ZSBzeXN0ZW0gaW4gcmVhZC93cml0ZSBtb2RlLCBzcGVjaWZ5IGEgcGF0aCB0byBhIHRyaWdn ZXIgZmlsZS4KLSMgVGhlIHNlcnZlciB3aWxsIHBvbGwgdGhlIHRyaWdnZXIgZmlsZSBwYXRo IHBlcmlvZGljYWxseSBhbmQgc3RhcnQgYXMgYQotIyBwcmltYXJ5IHNlcnZlciB3aGVuIGl0 J3MgZm91bmQuCi0jCi0jdHJpZ2dlcl9maWxlID0gJycKLSMKLSMgQnkgZGVmYXVsdCwgYSBz dGFuZGJ5IHNlcnZlciByZXN0b3JlcyBYTE9HIHJlY29yZHMgZnJvbSB0aGUgcHJpbWFyeSBh cwotIyBzb29uIGFzIHBvc3NpYmxlLiBJZiB5b3Ugd2FudCB0byBleHBsaWNpdGx5IGRlbGF5 IHRoZSByZXBsYXkgb2YgY29tbWl0dGVkCi0jIHRyYW5zYWN0aW9ucyBmcm9tIHRoZSBtYXN0 ZXIsIHNwZWNpZnkgYSBtaW5pbXVtIGFwcGx5IGRlbGF5LiBGb3IgZXhhbXBsZSwKLSMgaWYg eW91IHNldCB0aGlzIHBhcmFtZXRlciB0byA1bWluLCB0aGUgc3RhbmRieSB3aWxsIHJlcGxh eSBlYWNoIHRyYW5zYWN0aW9uCi0jIGNvbW1pdCBvbmx5IHdoZW4gdGhlIHN5c3RlbSB0aW1l IG9uIHRoZSBzdGFuZGJ5IGlzIGF0IGxlYXN0IGZpdmUgbWludXRlcwotIyBwYXN0IHRoZSBj b21taXQgdGltZSByZXBvcnRlZCBieSB0aGUgbWFzdGVyLgotIwotI3JlY292ZXJ5X21pbl9h cHBseV9kZWxheSA9IDAKLSMKLSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgSE9UIFNUQU5E QlkgUEFSQU1FVEVSUwotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIwotIyBIb3QgU3RhbmRi eSByZWxhdGVkIHBhcmFtZXRlcnMgYXJlIGxpc3RlZCBpbiBwb3N0Z3Jlc3FsLmNvbmYKLSMK LSMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy90cmFuc2FtL3hsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwpp bmRleCA4MDYxNmM1ZjFlLi4xMjhmYmQzNzY0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvdHJhbnNhbS94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0v eGxvZy5jCkBAIC02OSw3ICs2OSw2IEBACiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIK ICNpbmNsdWRlICJ1dGlscy9ndWMuaCIKICNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgot I2luY2x1ZGUgInV0aWxzL3BnX2xzbi5oIgogI2luY2x1ZGUgInV0aWxzL3BzX3N0YXR1cy5o IgogI2luY2x1ZGUgInV0aWxzL3JlbG1hcHBlci5oIgogI2luY2x1ZGUgInV0aWxzL3NuYXBt Z3IuaCIKQEAgLTc4LDYgKzc3LDkgQEAKIAogZXh0ZXJuIHVpbnQzMiBib290c3RyYXBfZGF0 YV9jaGVja3N1bV92ZXJzaW9uOwogCisvKiBVbnN1cHBvcnRlZCBvbGQgcmVjb3ZlcnkgY29t bWFuZCBmaWxlIG5hbWVzIChyZWxhdGl2ZSB0byAkUEdEQVRBKSAqLworI2RlZmluZSBSRUNP VkVSWV9DT01NQU5EX0ZJTEUJInJlY292ZXJ5LmNvbmYiCisjZGVmaW5lIFJFQ09WRVJZX0NP TU1BTkRfRE9ORQkicmVjb3ZlcnkuZG9uZSIKIAogLyogVXNlci1zZXR0YWJsZSBwYXJhbWV0 ZXJzICovCiBpbnQJCQltYXhfd2FsX3NpemVfbWIgPSAxMDI0OyAvKiAxIEdCICovCkBAIC0x NjEsNiArMTYzLDEzIEBAIGNvbnN0IHN0cnVjdCBjb25maWdfZW51bV9lbnRyeSBhcmNoaXZl X21vZGVfb3B0aW9uc1tdID0gewogCXtOVUxMLCAwLCBmYWxzZX0KIH07CiAKK2NvbnN0IHN0 cnVjdCBjb25maWdfZW51bV9lbnRyeSByZWNvdmVyeV90YXJnZXRfYWN0aW9uX29wdGlvbnNb XSA9IHsKKwl7InBhdXNlIiwgUkVDT1ZFUllfVEFSR0VUX0FDVElPTl9QQVVTRSwgZmFsc2V9 LAorCXsicHJvbW90ZSIsIFJFQ09WRVJZX1RBUkdFVF9BQ1RJT05fUFJPTU9URSwgZmFsc2V9 LAorCXsic2h1dGRvd24iLCBSRUNPVkVSWV9UQVJHRVRfQUNUSU9OX1NIVVRET1dOLCBmYWxz ZX0sCisJe05VTEwsIDAsIGZhbHNlfQorfTsKKwogLyoKICAqIFN0YXRpc3RpY3MgZm9yIGN1 cnJlbnQgY2hlY2twb2ludCBhcmUgY29sbGVjdGVkIGluIHRoaXMgZ2xvYmFsIHN0cnVjdC4K ICAqIEJlY2F1c2Ugb25seSB0aGUgY2hlY2twb2ludGVyIG9yIGEgc3RhbmQtYWxvbmUgYmFj a2VuZCBjYW4gcGVyZm9ybQpAQCAtMjMwLDcgKzIzOSw3IEBAIHN0YXRpYyBpbnQJTG9jYWxY TG9nSW5zZXJ0QWxsb3dlZCA9IC0xOwogCiAvKgogICogV2hlbiBBcmNoaXZlUmVjb3ZlcnlS ZXF1ZXN0ZWQgaXMgc2V0LCBhcmNoaXZlIHJlY292ZXJ5IHdhcyByZXF1ZXN0ZWQsCi0gKiBp ZS4gcmVjb3ZlcnkuY29uZiBmaWxlIHdhcyBwcmVzZW50LiBXaGVuIEluQXJjaGl2ZVJlY292 ZXJ5IGlzIHNldCwgd2UgYXJlCisgKiBpZS4gc2lnbmFsIGZpbGVzIHdlcmUgcHJlc2VudC4g V2hlbiBJbkFyY2hpdmVSZWNvdmVyeSBpcyBzZXQsIHdlIGFyZQogICogY3VycmVudGx5IHJl Y292ZXJpbmcgdXNpbmcgb2ZmbGluZSBYTE9HIGFyY2hpdmVzLiBUaGVzZSB2YXJpYWJsZXMg YXJlIG9ubHkKICAqIHZhbGlkIGluIHRoZSBzdGFydHVwIHByb2Nlc3MuCiAgKgpAQCAtMjQy LDYgKzI1MSw5IEBAIHN0YXRpYyBpbnQJTG9jYWxYTG9nSW5zZXJ0QWxsb3dlZCA9IC0xOwog Ym9vbAkJQXJjaGl2ZVJlY292ZXJ5UmVxdWVzdGVkID0gZmFsc2U7CiBib29sCQlJbkFyY2hp dmVSZWNvdmVyeSA9IGZhbHNlOwogCitzdGF0aWMgYm9vbCBzdGFuZGJ5X3NpZ25hbF9maWxl X2ZvdW5kID0gZmFsc2U7CitzdGF0aWMgYm9vbCByZWNvdmVyeV9zaWduYWxfZmlsZV9mb3Vu ZCA9IGZhbHNlOworCiAvKiBXYXMgdGhlIGxhc3QgeGxvZyBmaWxlIHJlc3RvcmVkIGZyb20g YXJjaGl2ZSwgb3IgbG9jYWw/ICovCiBzdGF0aWMgYm9vbCByZXN0b3JlZEZyb21BcmNoaXZl ID0gZmFsc2U7CiAKQEAgLTI0OSwyNSArMjYxLDI1IEBAIHN0YXRpYyBib29sIHJlc3RvcmVk RnJvbUFyY2hpdmUgPSBmYWxzZTsKIHN0YXRpYyBjaGFyICpyZXBsYXlfaW1hZ2VfbWFza2Vk ID0gTlVMTDsKIHN0YXRpYyBjaGFyICptYXN0ZXJfaW1hZ2VfbWFza2VkID0gTlVMTDsKIAot Lyogb3B0aW9ucyB0YWtlbiBmcm9tIHJlY292ZXJ5LmNvbmYgZm9yIGFyY2hpdmUgcmVjb3Zl cnkgKi8KKy8qIG9wdGlvbnMgZm9ybWVybHkgdGFrZW4gZnJvbSByZWNvdmVyeS5jb25mIGZv ciBhcmNoaXZlIHJlY292ZXJ5ICovCiBjaGFyCSAgICpyZWNvdmVyeVJlc3RvcmVDb21tYW5k ID0gTlVMTDsKLXN0YXRpYyBjaGFyICpyZWNvdmVyeUVuZENvbW1hbmQgPSBOVUxMOwotc3Rh dGljIGNoYXIgKmFyY2hpdmVDbGVhbnVwQ29tbWFuZCA9IE5VTEw7Ci1zdGF0aWMgUmVjb3Zl cnlUYXJnZXRUeXBlIHJlY292ZXJ5VGFyZ2V0ID0gUkVDT1ZFUllfVEFSR0VUX1VOU0VUOwot c3RhdGljIGJvb2wgcmVjb3ZlcnlUYXJnZXRJbmNsdXNpdmUgPSB0cnVlOwotc3RhdGljIFJl Y292ZXJ5VGFyZ2V0QWN0aW9uIHJlY292ZXJ5VGFyZ2V0QWN0aW9uID0gUkVDT1ZFUllfVEFS R0VUX0FDVElPTl9QQVVTRTsKLXN0YXRpYyBUcmFuc2FjdGlvbklkIHJlY292ZXJ5VGFyZ2V0 WGlkOwotc3RhdGljIFRpbWVzdGFtcFR6IHJlY292ZXJ5VGFyZ2V0VGltZTsKLXN0YXRpYyBj aGFyICpyZWNvdmVyeVRhcmdldE5hbWU7Ci1zdGF0aWMgWExvZ1JlY1B0ciByZWNvdmVyeVRh cmdldExTTjsKLXN0YXRpYyBpbnQJcmVjb3ZlcnlfbWluX2FwcGx5X2RlbGF5ID0gMDsKLXN0 YXRpYyBUaW1lc3RhbXBUeiByZWNvdmVyeURlbGF5VW50aWxUaW1lOwotCi0vKiBvcHRpb25z IHRha2VuIGZyb20gcmVjb3ZlcnkuY29uZiBmb3IgWExPRyBzdHJlYW1pbmcgKi8KLXN0YXRp YyBib29sIFN0YW5kYnlNb2RlUmVxdWVzdGVkID0gZmFsc2U7Ci1zdGF0aWMgY2hhciAqUHJp bWFyeUNvbm5JbmZvID0gTlVMTDsKLXN0YXRpYyBjaGFyICpQcmltYXJ5U2xvdE5hbWUgPSBO VUxMOwotc3RhdGljIGNoYXIgKlRyaWdnZXJGaWxlID0gTlVMTDsKK2NoYXIJICAgKnJlY292 ZXJ5RW5kQ29tbWFuZCA9IE5VTEw7CitjaGFyCSAgICphcmNoaXZlQ2xlYW51cENvbW1hbmQg PSBOVUxMOworUmVjb3ZlcnlUYXJnZXRUeXBlIHJlY292ZXJ5VGFyZ2V0ID0gUkVDT1ZFUllf VEFSR0VUX1VOU0VUOworYm9vbAkJcmVjb3ZlcnlUYXJnZXRJbmNsdXNpdmUgPSB0cnVlOwor aW50CQkJcmVjb3ZlcnlUYXJnZXRBY3Rpb24gPSBSRUNPVkVSWV9UQVJHRVRfQUNUSU9OX1BB VVNFOworVHJhbnNhY3Rpb25JZCByZWNvdmVyeVRhcmdldFhpZDsKK1RpbWVzdGFtcFR6IHJl Y292ZXJ5VGFyZ2V0VGltZTsKK2NoYXIJICAgKnJlY292ZXJ5VGFyZ2V0TmFtZTsKK1hMb2dS ZWNQdHIJcmVjb3ZlcnlUYXJnZXRMU047CitpbnQJCQlyZWNvdmVyeV9taW5fYXBwbHlfZGVs YXkgPSAwOworVGltZXN0YW1wVHogcmVjb3ZlcnlEZWxheVVudGlsVGltZTsKKworLyogb3B0 aW9ucyBmb3JtZXJseSB0YWtlbiBmcm9tIHJlY292ZXJ5LmNvbmYgZm9yIFhMT0cgc3RyZWFt aW5nICovCitib29sCQlTdGFuZGJ5TW9kZVJlcXVlc3RlZCA9IGZhbHNlOworY2hhcgkgICAq UHJpbWFyeUNvbm5JbmZvID0gTlVMTDsKK2NoYXIJICAgKlByaW1hcnlTbG90TmFtZSA9IE5V TEw7CitjaGFyCSAgICpQcm9tb3RlVHJpZ2dlckZpbGUgPSBOVUxMOwogCiAvKiBhcmUgd2Ug Y3VycmVudGx5IGluIHN0YW5kYnkgbW9kZT8gKi8KIGJvb2wJCVN0YW5kYnlNb2RlID0gZmFs c2U7CkBAIC0yOTMsNyArMzA1LDExIEBAIHN0YXRpYyBib29sIHJlY292ZXJ5U3RvcEFmdGVy OwogICogdGhlIGN1cnJlbnRseS1zY2FubmVkIFdBTCByZWNvcmQgd2FzIGdlbmVyYXRlZCku ICBXZSBhbHNvIG5lZWQgdGhlc2UKICAqIHRpbWVsaW5lIHZhbHVlczoKICAqCi0gKiByZWNv dmVyeVRhcmdldFRMSTogdGhlIGRlc2lyZWQgdGltZWxpbmUgdGhhdCB3ZSB3YW50IHRvIGVu ZCBpbi4KKyAqIHJlY292ZXJ5VGFyZ2V0VGltZUxpbmVHb2FsOiB3aGF0IHRoZSB1c2VyIHJl cXVlc3RlZCwgaWYgYW55CisgKgorICogcmVjb3ZlcnlUYXJnZXRUTElSZXF1ZXN0ZWQ6IG51 bWVyaWMgdmFsdWUgb2YgcmVxdWVzdGVkIHRpbWVsaW5lLCBpZiBjb25zdGFudAorICoKKyAq IHJlY292ZXJ5VGFyZ2V0VExJOiB0aGUgY3VycmVudGx5IHVuZGVyc3Rvb2QgdGFyZ2V0IHRp bWVsaW5lOyBjaGFuZ2VzCiAgKgogICogcmVjb3ZlcnlUYXJnZXRJc0xhdGVzdDogd2FzIHRo ZSByZXF1ZXN0ZWQgdGFyZ2V0IHRpbWVsaW5lICdsYXRlc3QnPwogICoKQEAgLTMwOSw4ICsz MjUsOSBAQCBzdGF0aWMgYm9vbCByZWNvdmVyeVN0b3BBZnRlcjsKICAqIGZpbGUgd2FzIGNy ZWF0ZWQuKSAgRHVyaW5nIGEgc2VxdWVudGlhbCBzY2FuIHdlIGRvIG5vdCBhbGxvdyB0aGlz IHZhbHVlCiAgKiB0byBkZWNyZWFzZS4KICAqLwotc3RhdGljIFRpbWVMaW5lSUQgcmVjb3Zl cnlUYXJnZXRUTEk7Ci1zdGF0aWMgYm9vbCByZWNvdmVyeVRhcmdldElzTGF0ZXN0ID0gZmFs c2U7CitSZWNvdmVyeVRhcmdldFRpbWVMaW5lR29hbCByZWNvdmVyeVRhcmdldFRpbWVMaW5l R29hbCA9IFJFQ09WRVJZX1RBUkdFVF9USU1FTElORV9DT05UUk9MRklMRTsKK1RpbWVMaW5l SUQJcmVjb3ZlcnlUYXJnZXRUTElSZXF1ZXN0ZWQgPSAwOworVGltZUxpbmVJRAlyZWNvdmVy eVRhcmdldFRMSSA9IDA7CiBzdGF0aWMgTGlzdCAqZXhwZWN0ZWRUTEVzOwogc3RhdGljIFRp bWVMaW5lSUQgY3VyRmlsZVRMSTsKIApAQCAtNjI0LDEyICs2NDEsNiBAQCB0eXBlZGVmIHN0 cnVjdCBYTG9nQ3RsRGF0YQogCVRpbWVMaW5lSUQJVGhpc1RpbWVMaW5lSUQ7CiAJVGltZUxp bmVJRAlQcmV2VGltZUxpbmVJRDsKIAotCS8qCi0JICogYXJjaGl2ZUNsZWFudXBDb21tYW5k IGlzIHJlYWQgZnJvbSByZWNvdmVyeS5jb25mIGJ1dCBuZWVkcyB0byBiZSBpbgotCSAqIHNo YXJlZCBtZW1vcnkgc28gdGhhdCB0aGUgY2hlY2twb2ludGVyIHByb2Nlc3MgY2FuIGFjY2Vz cyBpdC4KLQkgKi8KLQljaGFyCQlhcmNoaXZlQ2xlYW51cENvbW1hbmRbTUFYUEdQQVRIXTsK LQogCS8qCiAJICogU2hhcmVkUmVjb3ZlcnlJblByb2dyZXNzIGluZGljYXRlcyBpZiB3ZSdy ZSBzdGlsbCBpbiBjcmFzaCBvciBhcmNoaXZlCiAJICogcmVjb3ZlcnkuICBQcm90ZWN0ZWQg YnkgaW5mb19sY2suCkBAIC04NDYsNyArODU3LDggQEAgc3RhdGljIGJvb2wgaG9sZGluZ0Fs bExvY2tzID0gZmFsc2U7CiBzdGF0aWMgTWVtb3J5Q29udGV4dCB3YWxEZWJ1Z0N4dCA9IE5V TEw7CiAjZW5kaWYKIAotc3RhdGljIHZvaWQgcmVhZFJlY292ZXJ5Q29tbWFuZEZpbGUodm9p ZCk7CitzdGF0aWMgdm9pZCByZWFkUmVjb3ZlcnlTaWduYWxGaWxlKHZvaWQpOworc3RhdGlj IHZvaWQgdmFsaWRhdGVSZWNvdmVyeVBhcmFtZXRlcnModm9pZCk7CiBzdGF0aWMgdm9pZCBl eGl0QXJjaGl2ZVJlY292ZXJ5KFRpbWVMaW5lSUQgZW5kVExJLCBYTG9nUmVjUHRyIGVuZE9m TG9nKTsKIHN0YXRpYyBib29sIHJlY292ZXJ5U3RvcHNCZWZvcmUoWExvZ1JlYWRlclN0YXRl ICpyZWNvcmQpOwogc3RhdGljIGJvb2wgcmVjb3ZlcnlTdG9wc0FmdGVyKFhMb2dSZWFkZXJT dGF0ZSAqcmVjb3JkKTsKQEAgLTUyODUsMjgzICs1Mjk3LDExMSBAQCBzdHJfdGltZShwZ190 aW1lX3QgdG5vdykKIH0KIAogLyoKLSAqIFNlZSBpZiB0aGVyZSBpcyBhIHJlY292ZXJ5IGNv bW1hbmQgZmlsZSAocmVjb3ZlcnkuY29uZiksIGFuZCBpZiBzbwotICogcmVhZCBpbiBwYXJh bWV0ZXJzIGZvciBhcmNoaXZlIHJlY292ZXJ5IGFuZCBYTE9HIHN0cmVhbWluZy4KKyAqIFNl ZSBpZiB0aGVyZSBhcmUgYW55IHJlY292ZXJ5IHNpZ25hbCBmaWxlcyBhbmQgaWYgc28sIHNl dCBzdGF0ZSBmb3IKKyAqIHJlY292ZXJ5LgogICoKLSAqIFRoZSBmaWxlIGlzIHBhcnNlZCB1 c2luZyB0aGUgbWFpbiBjb25maWd1cmF0aW9uIHBhcnNlci4KKyAqIFNlZSBpZiB0aGVyZSBp cyBhIHJlY292ZXJ5IGNvbW1hbmQgZmlsZSAocmVjb3ZlcnkuY29uZiksIGFuZCBpZiBzbwor ICogdGhyb3cgYW4gRVJST1Igc2luY2UgYXMgb2YgUEcxMiB3ZSBubyBsb25nZXIgcmVjb2du aXplIHRoYXQuCiAgKi8KIHN0YXRpYyB2b2lkCi1yZWFkUmVjb3ZlcnlDb21tYW5kRmlsZSh2 b2lkKQorcmVhZFJlY292ZXJ5U2lnbmFsRmlsZSh2b2lkKQogewotCUZJTEUJICAgKmZkOwot CVRpbWVMaW5lSUQJcnRsaSA9IDA7Ci0JYm9vbAkJcnRsaUdpdmVuID0gZmFsc2U7Ci0JQ29u ZmlnVmFyaWFibGUgKml0ZW0sCi0JCQkgICAqaGVhZCA9IE5VTEwsCi0JCQkgICAqdGFpbCA9 IE5VTEw7Ci0JYm9vbAkJcmVjb3ZlcnlUYXJnZXRBY3Rpb25TZXQgPSBmYWxzZTsKKwlzdHJ1 Y3Qgc3RhdCBzdGF0X2J1ZjsKIAorCWlmIChJc0Jvb3RzdHJhcFByb2Nlc3NpbmdNb2RlKCkp CisJCXJldHVybjsKIAotCWZkID0gQWxsb2NhdGVGaWxlKFJFQ09WRVJZX0NPTU1BTkRfRklM RSwgInIiKTsKLQlpZiAoZmQgPT0gTlVMTCkKLQl7Ci0JCWlmIChlcnJubyA9PSBFTk9FTlQp Ci0JCQlyZXR1cm47CQkJCS8qIG5vdCB0aGVyZSwgc28gbm8gYXJjaGl2ZSByZWNvdmVyeSAq LworCS8qCisJICogQ2hlY2sgZm9yIG9sZCByZWNvdmVyeSBBUEkgZmlsZTogcmVjb3Zlcnku Y29uZgorCSAqLworCWlmIChzdGF0KFJFQ09WRVJZX0NPTU1BTkRfRklMRSwgJnN0YXRfYnVm KSA9PSAwKQogCQllcmVwb3J0KEZBVEFMLAogCQkJCShlcnJjb2RlX2Zvcl9maWxlX2FjY2Vz cygpLAotCQkJCSBlcnJtc2coImNvdWxkIG5vdCBvcGVuIHJlY292ZXJ5IGNvbW1hbmQgZmls ZSBcIiVzXCI6ICVtIiwKKwkJCQkgZXJybXNnKCJ1c2luZyByZWNvdmVyeSBjb21tYW5kIGZp bGUgXCIlc1wiIGlzIG5vdCBzdXBwb3J0ZWQiLAogCQkJCQkJUkVDT1ZFUllfQ09NTUFORF9G SUxFKSkpOwotCX0KIAogCS8qCi0JICogU2luY2Ugd2UncmUgYXNraW5nIFBhcnNlQ29uZmln RnAoKSB0byByZXBvcnQgZXJyb3JzIGFzIEZBVEFMLCB0aGVyZSdzCi0JICogbm8gbmVlZCB0 byBjaGVjayB0aGUgcmV0dXJuIHZhbHVlLgorCSAqIFJlbW92ZSB1bnVzZWQgLmRvbmUgZmls ZSwgaWYgcHJlc2VudC4gSWdub3JlIGlmIGFic2VudC4KIAkgKi8KLQkodm9pZCkgUGFyc2VD b25maWdGcChmZCwgUkVDT1ZFUllfQ09NTUFORF9GSUxFLCAwLCBGQVRBTCwgJmhlYWQsICZ0 YWlsKTsKLQotCUZyZWVGaWxlKGZkKTsKKwl1bmxpbmsoUkVDT1ZFUllfQ09NTUFORF9ET05F KTsKIAotCWZvciAoaXRlbSA9IGhlYWQ7IGl0ZW07IGl0ZW0gPSBpdGVtLT5uZXh0KQorCS8q CisJICogQ2hlY2sgZm9yIHJlY292ZXJ5IHNpZ25hbCBmaWxlcyBhbmQgaWYgZm91bmQsIGZz eW5jIHRoZW0gc2luY2UgdGhleQorCSAqIHJlcHJlc2VudCBzZXJ2ZXIgc3RhdGUgaW5mb3Jt YXRpb24uCisJICoKKwkgKiBJZiBwcmVzZW50LCBzdGFuZGJ5IHNpZ25hbCBmaWxlIHRha2Vz IHByZWNlZGVuY2UuIElmIG5laXRoZXIgaXMgcHJlc2VudAorCSAqIHRoZW4gd2Ugd29uJ3Qg ZW50ZXIgYXJjaGl2ZSByZWNvdmVyeS4KKwkgKi8KKwlpZiAoc3RhdChTVEFOREJZX1NJR05B TF9GSUxFLCAmc3RhdF9idWYpID09IDApCiAJewotCQlpZiAoc3RyY21wKGl0ZW0tPm5hbWUs ICJyZXN0b3JlX2NvbW1hbmQiKSA9PSAwKQotCQl7Ci0JCQlyZWNvdmVyeVJlc3RvcmVDb21t YW5kID0gcHN0cmR1cChpdGVtLT52YWx1ZSk7Ci0JCQllcmVwb3J0KERFQlVHMiwKLQkJCQkJ KGVycm1zZ19pbnRlcm5hbCgicmVzdG9yZV9jb21tYW5kID0gJyVzJyIsCi0JCQkJCQkJCQkg cmVjb3ZlcnlSZXN0b3JlQ29tbWFuZCkpKTsKLQkJfQotCQllbHNlIGlmIChzdHJjbXAoaXRl bS0+bmFtZSwgInJlY292ZXJ5X2VuZF9jb21tYW5kIikgPT0gMCkKLQkJewotCQkJcmVjb3Zl cnlFbmRDb21tYW5kID0gcHN0cmR1cChpdGVtLT52YWx1ZSk7Ci0JCQllcmVwb3J0KERFQlVH MiwKLQkJCQkJKGVycm1zZ19pbnRlcm5hbCgicmVjb3ZlcnlfZW5kX2NvbW1hbmQgPSAnJXMn IiwKLQkJCQkJCQkJCSByZWNvdmVyeUVuZENvbW1hbmQpKSk7Ci0JCX0KLQkJZWxzZSBpZiAo c3RyY21wKGl0ZW0tPm5hbWUsICJhcmNoaXZlX2NsZWFudXBfY29tbWFuZCIpID09IDApCi0J CXsKLQkJCWFyY2hpdmVDbGVhbnVwQ29tbWFuZCA9IHBzdHJkdXAoaXRlbS0+dmFsdWUpOwot CQkJZXJlcG9ydChERUJVRzIsCi0JCQkJCShlcnJtc2dfaW50ZXJuYWwoImFyY2hpdmVfY2xl YW51cF9jb21tYW5kID0gJyVzJyIsCi0JCQkJCQkJCQkgYXJjaGl2ZUNsZWFudXBDb21tYW5k KSkpOwotCQl9Ci0JCWVsc2UgaWYgKHN0cmNtcChpdGVtLT5uYW1lLCAicmVjb3ZlcnlfdGFy Z2V0X2FjdGlvbiIpID09IDApCi0JCXsKLQkJCWlmIChzdHJjbXAoaXRlbS0+dmFsdWUsICJw YXVzZSIpID09IDApCi0JCQkJcmVjb3ZlcnlUYXJnZXRBY3Rpb24gPSBSRUNPVkVSWV9UQVJH RVRfQUNUSU9OX1BBVVNFOwotCQkJZWxzZSBpZiAoc3RyY21wKGl0ZW0tPnZhbHVlLCAicHJv bW90ZSIpID09IDApCi0JCQkJcmVjb3ZlcnlUYXJnZXRBY3Rpb24gPSBSRUNPVkVSWV9UQVJH RVRfQUNUSU9OX1BST01PVEU7Ci0JCQllbHNlIGlmIChzdHJjbXAoaXRlbS0+dmFsdWUsICJz aHV0ZG93biIpID09IDApCi0JCQkJcmVjb3ZlcnlUYXJnZXRBY3Rpb24gPSBSRUNPVkVSWV9U QVJHRVRfQUNUSU9OX1NIVVRET1dOOwotCQkJZWxzZQotCQkJCWVyZXBvcnQoRVJST1IsCi0J CQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKLQkJCQkJ CSBlcnJtc2coImludmFsaWQgdmFsdWUgZm9yIHJlY292ZXJ5IHBhcmFtZXRlciBcIiVzXCI6 IFwiJXNcIiIsCi0JCQkJCQkJCSJyZWNvdmVyeV90YXJnZXRfYWN0aW9uIiwKLQkJCQkJCQkJ aXRlbS0+dmFsdWUpLAotCQkJCQkJIGVycmhpbnQoIlZhbGlkIHZhbHVlcyBhcmUgXCJwYXVz ZVwiLCBcInByb21vdGVcIiwgYW5kIFwic2h1dGRvd25cIi4iKSkpOwotCi0JCQllcmVwb3J0 KERFQlVHMiwKLQkJCQkJKGVycm1zZ19pbnRlcm5hbCgicmVjb3ZlcnlfdGFyZ2V0X2FjdGlv biA9ICclcyciLAotCQkJCQkJCQkJIGl0ZW0tPnZhbHVlKSkpOwotCi0JCQlyZWNvdmVyeVRh cmdldEFjdGlvblNldCA9IHRydWU7Ci0JCX0KLQkJZWxzZSBpZiAoc3RyY21wKGl0ZW0tPm5h bWUsICJyZWNvdmVyeV90YXJnZXRfdGltZWxpbmUiKSA9PSAwKQotCQl7Ci0JCQlydGxpR2l2 ZW4gPSB0cnVlOwotCQkJaWYgKHN0cmNtcChpdGVtLT52YWx1ZSwgImxhdGVzdCIpID09IDAp Ci0JCQkJcnRsaSA9IDA7Ci0JCQllbHNlCi0JCQl7Ci0JCQkJZXJybm8gPSAwOwotCQkJCXJ0 bGkgPSAoVGltZUxpbmVJRCkgc3RydG91bChpdGVtLT52YWx1ZSwgTlVMTCwgMCk7Ci0JCQkJ aWYgKGVycm5vID09IEVJTlZBTCB8fCBlcnJubyA9PSBFUkFOR0UpCi0JCQkJCWVyZXBvcnQo RkFUQUwsCi0JCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxV RSksCi0JCQkJCQkJIGVycm1zZygicmVjb3ZlcnlfdGFyZ2V0X3RpbWVsaW5lIGlzIG5vdCBh IHZhbGlkIG51bWJlcjogXCIlc1wiIiwKLQkJCQkJCQkJCWl0ZW0tPnZhbHVlKSkpOwotCQkJ fQotCQkJaWYgKHJ0bGkpCi0JCQkJZXJlcG9ydChERUJVRzIsCi0JCQkJCQkoZXJybXNnX2lu dGVybmFsKCJyZWNvdmVyeV90YXJnZXRfdGltZWxpbmUgPSAldSIsIHJ0bGkpKSk7Ci0JCQll bHNlCi0JCQkJZXJlcG9ydChERUJVRzIsCi0JCQkJCQkoZXJybXNnX2ludGVybmFsKCJyZWNv dmVyeV90YXJnZXRfdGltZWxpbmUgPSBsYXRlc3QiKSkpOwotCQl9Ci0JCWVsc2UgaWYgKHN0 cmNtcChpdGVtLT5uYW1lLCAicmVjb3ZlcnlfdGFyZ2V0X3hpZCIpID09IDApCi0JCXsKLQkJ CWVycm5vID0gMDsKLQkJCXJlY292ZXJ5VGFyZ2V0WGlkID0gKFRyYW5zYWN0aW9uSWQpIHN0 cnRvdWwoaXRlbS0+dmFsdWUsIE5VTEwsIDApOwotCQkJaWYgKGVycm5vID09IEVJTlZBTCB8 fCBlcnJubyA9PSBFUkFOR0UpCi0JCQkJZXJlcG9ydChGQVRBTCwKLQkJCQkJCShlcnJjb2Rl KEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAotCQkJCQkJIGVycm1zZygicmVj b3ZlcnlfdGFyZ2V0X3hpZCBpcyBub3QgYSB2YWxpZCBudW1iZXI6IFwiJXNcIiIsCi0JCQkJ CQkJCWl0ZW0tPnZhbHVlKSkpOwotCQkJZXJlcG9ydChERUJVRzIsCi0JCQkJCShlcnJtc2df aW50ZXJuYWwoInJlY292ZXJ5X3RhcmdldF94aWQgPSAldSIsCi0JCQkJCQkJCQkgcmVjb3Zl cnlUYXJnZXRYaWQpKSk7Ci0JCQlyZWNvdmVyeVRhcmdldCA9IFJFQ09WRVJZX1RBUkdFVF9Y SUQ7Ci0JCX0KLQkJZWxzZSBpZiAoc3RyY21wKGl0ZW0tPm5hbWUsICJyZWNvdmVyeV90YXJn ZXRfdGltZSIpID09IDApCi0JCXsKLQkJCXJlY292ZXJ5VGFyZ2V0ID0gUkVDT1ZFUllfVEFS R0VUX1RJTUU7Ci0KLQkJCWlmIChzdHJjbXAoaXRlbS0+dmFsdWUsICJlcG9jaCIpID09IDAg fHwKLQkJCQlzdHJjbXAoaXRlbS0+dmFsdWUsICJpbmZpbml0eSIpID09IDAgfHwKLQkJCQlz dHJjbXAoaXRlbS0+dmFsdWUsICItaW5maW5pdHkiKSA9PSAwIHx8Ci0JCQkJc3RyY21wKGl0 ZW0tPnZhbHVlLCAibm93IikgPT0gMCB8fAotCQkJCXN0cmNtcChpdGVtLT52YWx1ZSwgInRv ZGF5IikgPT0gMCB8fAotCQkJCXN0cmNtcChpdGVtLT52YWx1ZSwgInRvbW9ycm93IikgPT0g MCB8fAotCQkJCXN0cmNtcChpdGVtLT52YWx1ZSwgInllc3RlcmRheSIpID09IDApCi0JCQkJ ZXJlcG9ydChGQVRBTCwKLQkJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVU RVJfVkFMVUUpLAotCQkJCQkJIGVycm1zZygicmVjb3ZlcnlfdGFyZ2V0X3RpbWUgaXMgbm90 IGEgdmFsaWQgdGltZXN0YW1wOiBcIiVzXCIiLAotCQkJCQkJCQlpdGVtLT52YWx1ZSkpKTsK KwkJaW50CQkJZmQ7CiAKLQkJCS8qCi0JCQkgKiBDb252ZXJ0IHRoZSB0aW1lIHN0cmluZyBn aXZlbiBieSB0aGUgdXNlciB0byBUaW1lc3RhbXBUeiBmb3JtLgotCQkJICovCi0JCQlyZWNv dmVyeVRhcmdldFRpbWUgPQotCQkJCURhdHVtR2V0VGltZXN0YW1wVHooRGlyZWN0RnVuY3Rp b25DYWxsMyh0aW1lc3RhbXB0el9pbiwKLQkJCQkJCQkJCQkJCQkJQ1N0cmluZ0dldERhdHVt KGl0ZW0tPnZhbHVlKSwKLQkJCQkJCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShJbnZhbGlk T2lkKSwKLQkJCQkJCQkJCQkJCQkJSW50MzJHZXREYXR1bSgtMSkpKTsKLQkJCWVyZXBvcnQo REVCVUcyLAotCQkJCQkoZXJybXNnX2ludGVybmFsKCJyZWNvdmVyeV90YXJnZXRfdGltZSA9 ICclcyciLAotCQkJCQkJCQkJIHRpbWVzdGFtcHR6X3RvX3N0cihyZWNvdmVyeVRhcmdldFRp bWUpKSkpOwotCQl9Ci0JCWVsc2UgaWYgKHN0cmNtcChpdGVtLT5uYW1lLCAicmVjb3Zlcnlf dGFyZ2V0X25hbWUiKSA9PSAwKQotCQl7Ci0JCQlyZWNvdmVyeVRhcmdldCA9IFJFQ09WRVJZ X1RBUkdFVF9OQU1FOworCQlmZCA9IEJhc2ljT3BlbkZpbGVQZXJtKFNUQU5EQllfU0lHTkFM X0ZJTEUsIE9fUkRXUiB8IFBHX0JJTkFSWSB8IGdldF9zeW5jX2JpdChzeW5jX21ldGhvZCks CisJCQkJCQkJICAgU19JUlVTUiB8IFNfSVdVU1IpOworCQlwZ19mc3luYyhmZCk7CisJCWNs b3NlKGZkKTsKKwkJc3RhbmRieV9zaWduYWxfZmlsZV9mb3VuZCA9IHRydWU7CisJfQorCWVs c2UgaWYgKHN0YXQoUkVDT1ZFUllfU0lHTkFMX0ZJTEUsICZzdGF0X2J1ZikgPT0gMCkKKwl7 CisJCWludAkJCWZkOwogCi0JCQlyZWNvdmVyeVRhcmdldE5hbWUgPSBwc3RyZHVwKGl0ZW0t PnZhbHVlKTsKLQkJCWlmIChzdHJsZW4ocmVjb3ZlcnlUYXJnZXROYW1lKSA+PSBNQVhGTkFN RUxFTikKLQkJCQllcmVwb3J0KEZBVEFMLAotCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZB TElEX1BBUkFNRVRFUl9WQUxVRSksCi0JCQkJCQkgZXJybXNnKCJyZWNvdmVyeV90YXJnZXRf bmFtZSBpcyB0b28gbG9uZyAobWF4aW11bSAlZCBjaGFyYWN0ZXJzKSIsCi0JCQkJCQkJCU1B WEZOQU1FTEVOIC0gMSkpKTsKKwkJZmQgPSBCYXNpY09wZW5GaWxlUGVybShSRUNPVkVSWV9T SUdOQUxfRklMRSwgT19SRFdSIHwgUEdfQklOQVJZIHwgZ2V0X3N5bmNfYml0KHN5bmNfbWV0 aG9kKSwKKwkJCQkJCQkgICBTX0lSVVNSIHwgU19JV1VTUik7CisJCXBnX2ZzeW5jKGZkKTsK KwkJY2xvc2UoZmQpOworCQlyZWNvdmVyeV9zaWduYWxfZmlsZV9mb3VuZCA9IHRydWU7CisJ fQogCi0JCQllcmVwb3J0KERFQlVHMiwKLQkJCQkJKGVycm1zZ19pbnRlcm5hbCgicmVjb3Zl cnlfdGFyZ2V0X25hbWUgPSAnJXMnIiwKLQkJCQkJCQkJCSByZWNvdmVyeVRhcmdldE5hbWUp KSk7Ci0JCX0KLQkJZWxzZSBpZiAoc3RyY21wKGl0ZW0tPm5hbWUsICJyZWNvdmVyeV90YXJn ZXRfbHNuIikgPT0gMCkKLQkJewotCQkJcmVjb3ZlcnlUYXJnZXQgPSBSRUNPVkVSWV9UQVJH RVRfTFNOOworCVN0YW5kYnlNb2RlUmVxdWVzdGVkID0gZmFsc2U7CisJQXJjaGl2ZVJlY292 ZXJ5UmVxdWVzdGVkID0gZmFsc2U7CisJaWYgKHN0YW5kYnlfc2lnbmFsX2ZpbGVfZm91bmQp CisJeworCQlTdGFuZGJ5TW9kZVJlcXVlc3RlZCA9IHRydWU7CisJCUFyY2hpdmVSZWNvdmVy eVJlcXVlc3RlZCA9IHRydWU7CisJfQorCWVsc2UgaWYgKHJlY292ZXJ5X3NpZ25hbF9maWxl X2ZvdW5kKQorCXsKKwkJU3RhbmRieU1vZGVSZXF1ZXN0ZWQgPSBmYWxzZTsKKwkJQXJjaGl2 ZVJlY292ZXJ5UmVxdWVzdGVkID0gdHJ1ZTsKKwl9CisJZWxzZQorCQlyZXR1cm47CiAKLQkJ CS8qCi0JCQkgKiBDb252ZXJ0IHRoZSBMU04gc3RyaW5nIGdpdmVuIGJ5IHRoZSB1c2VyIHRv IFhMb2dSZWNQdHIgZm9ybS4KLQkJCSAqLwotCQkJcmVjb3ZlcnlUYXJnZXRMU04gPQotCQkJ CURhdHVtR2V0TFNOKERpcmVjdEZ1bmN0aW9uQ2FsbDMocGdfbHNuX2luLAotCQkJCQkJCQkJ CQkJQ1N0cmluZ0dldERhdHVtKGl0ZW0tPnZhbHVlKSwKLQkJCQkJCQkJCQkJCU9iamVjdElk R2V0RGF0dW0oSW52YWxpZE9pZCksCi0JCQkJCQkJCQkJCQlJbnQzMkdldERhdHVtKC0xKSkp OwotCQkJZXJlcG9ydChERUJVRzIsCi0JCQkJCShlcnJtc2dfaW50ZXJuYWwoInJlY292ZXJ5 X3RhcmdldF9sc24gPSAnJVgvJVgnIiwKLQkJCQkJCQkJCSAodWludDMyKSAocmVjb3ZlcnlU YXJnZXRMU04gPj4gMzIpLAotCQkJCQkJCQkJICh1aW50MzIpIHJlY292ZXJ5VGFyZ2V0TFNO KSkpOwotCQl9Ci0JCWVsc2UgaWYgKHN0cmNtcChpdGVtLT5uYW1lLCAicmVjb3ZlcnlfdGFy Z2V0IikgPT0gMCkKLQkJewotCQkJaWYgKHN0cmNtcChpdGVtLT52YWx1ZSwgImltbWVkaWF0 ZSIpID09IDApCi0JCQkJcmVjb3ZlcnlUYXJnZXQgPSBSRUNPVkVSWV9UQVJHRVRfSU1NRURJ QVRFOwotCQkJZWxzZQotCQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCQkoZXJyY29kZShFUlJD T0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKLQkJCQkJCSBlcnJtc2coImludmFsaWQg dmFsdWUgZm9yIHJlY292ZXJ5IHBhcmFtZXRlciBcIiVzXCI6IFwiJXNcIiIsCi0JCQkJCQkJ CSJyZWNvdmVyeV90YXJnZXQiLAotCQkJCQkJCQlpdGVtLT52YWx1ZSksCi0JCQkJCQkgZXJy aGludCgiVGhlIG9ubHkgYWxsb3dlZCB2YWx1ZSBpcyBcImltbWVkaWF0ZVwiLiIpKSk7Ci0J CQllcmVwb3J0KERFQlVHMiwKLQkJCQkJKGVycm1zZ19pbnRlcm5hbCgicmVjb3ZlcnlfdGFy Z2V0ID0gJyVzJyIsCi0JCQkJCQkJCQkgaXRlbS0+dmFsdWUpKSk7Ci0JCX0KLQkJZWxzZSBp ZiAoc3RyY21wKGl0ZW0tPm5hbWUsICJyZWNvdmVyeV90YXJnZXRfaW5jbHVzaXZlIikgPT0g MCkKLQkJewotCQkJLyoKLQkJCSAqIGRvZXMgbm90aGluZyBpZiBhIHJlY292ZXJ5X3Rhcmdl dCBpcyBub3QgYWxzbyBzZXQKLQkJCSAqLwotCQkJaWYgKCFwYXJzZV9ib29sKGl0ZW0tPnZh bHVlLCAmcmVjb3ZlcnlUYXJnZXRJbmNsdXNpdmUpKQotCQkJCWVyZXBvcnQoRVJST1IsCi0J CQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKLQkJCQkJ CSBlcnJtc2coInBhcmFtZXRlciBcIiVzXCIgcmVxdWlyZXMgYSBCb29sZWFuIHZhbHVlIiwK LQkJCQkJCQkJInJlY292ZXJ5X3RhcmdldF9pbmNsdXNpdmUiKSkpOwotCQkJZXJlcG9ydChE RUJVRzIsCi0JCQkJCShlcnJtc2dfaW50ZXJuYWwoInJlY292ZXJ5X3RhcmdldF9pbmNsdXNp dmUgPSAlcyIsCi0JCQkJCQkJCQkgaXRlbS0+dmFsdWUpKSk7Ci0JCX0KLQkJZWxzZSBpZiAo c3RyY21wKGl0ZW0tPm5hbWUsICJzdGFuZGJ5X21vZGUiKSA9PSAwKQotCQl7Ci0JCQlpZiAo IXBhcnNlX2Jvb2woaXRlbS0+dmFsdWUsICZTdGFuZGJ5TW9kZVJlcXVlc3RlZCkpCi0JCQkJ ZXJlcG9ydChFUlJPUiwKLQkJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVU RVJfVkFMVUUpLAotCQkJCQkJIGVycm1zZygicGFyYW1ldGVyIFwiJXNcIiByZXF1aXJlcyBh IEJvb2xlYW4gdmFsdWUiLAotCQkJCQkJCQkic3RhbmRieV9tb2RlIikpKTsKLQkJCWVyZXBv cnQoREVCVUcyLAotCQkJCQkoZXJybXNnX2ludGVybmFsKCJzdGFuZGJ5X21vZGUgPSAnJXMn IiwgaXRlbS0+dmFsdWUpKSk7Ci0JCX0KLQkJZWxzZSBpZiAoc3RyY21wKGl0ZW0tPm5hbWUs ICJwcmltYXJ5X2Nvbm5pbmZvIikgPT0gMCkKLQkJewotCQkJUHJpbWFyeUNvbm5JbmZvID0g cHN0cmR1cChpdGVtLT52YWx1ZSk7Ci0JCQllcmVwb3J0KERFQlVHMiwKLQkJCQkJKGVycm1z Z19pbnRlcm5hbCgicHJpbWFyeV9jb25uaW5mbyA9ICclcyciLAotCQkJCQkJCQkJIFByaW1h cnlDb25uSW5mbykpKTsKLQkJfQotCQllbHNlIGlmIChzdHJjbXAoaXRlbS0+bmFtZSwgInBy aW1hcnlfc2xvdF9uYW1lIikgPT0gMCkKLQkJewotCQkJUmVwbGljYXRpb25TbG90VmFsaWRh dGVOYW1lKGl0ZW0tPnZhbHVlLCBFUlJPUik7Ci0JCQlQcmltYXJ5U2xvdE5hbWUgPSBwc3Ry ZHVwKGl0ZW0tPnZhbHVlKTsKLQkJCWVyZXBvcnQoREVCVUcyLAotCQkJCQkoZXJybXNnX2lu dGVybmFsKCJwcmltYXJ5X3Nsb3RfbmFtZSA9ICclcyciLAotCQkJCQkJCQkJIFByaW1hcnlT bG90TmFtZSkpKTsKLQkJfQotCQllbHNlIGlmIChzdHJjbXAoaXRlbS0+bmFtZSwgInRyaWdn ZXJfZmlsZSIpID09IDApCi0JCXsKLQkJCVRyaWdnZXJGaWxlID0gcHN0cmR1cChpdGVtLT52 YWx1ZSk7Ci0JCQllcmVwb3J0KERFQlVHMiwKLQkJCQkJKGVycm1zZ19pbnRlcm5hbCgidHJp Z2dlcl9maWxlID0gJyVzJyIsCi0JCQkJCQkJCQkgVHJpZ2dlckZpbGUpKSk7Ci0JCX0KLQkJ ZWxzZSBpZiAoc3RyY21wKGl0ZW0tPm5hbWUsICJyZWNvdmVyeV9taW5fYXBwbHlfZGVsYXki KSA9PSAwKQotCQl7Ci0JCQljb25zdCBjaGFyICpoaW50bXNnOworCS8qCisJICogV2UgZG9u J3Qgc3VwcG9ydCBzdGFuZGJ5IG1vZGUgaW4gc3RhbmRhbG9uZSBiYWNrZW5kczsgdGhhdCBy ZXF1aXJlcworCSAqIG90aGVyIHByb2Nlc3NlcyBzdWNoIGFzIHRoZSBXQUwgcmVjZWl2ZXIg dG8gYmUgYWxpdmUuCisJICovCisJaWYgKFN0YW5kYnlNb2RlUmVxdWVzdGVkICYmICFJc1Vu ZGVyUG9zdG1hc3RlcikKKwkJZXJlcG9ydChGQVRBTCwKKwkJCQkoZXJyY29kZShFUlJDT0RF X0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJIGVycm1zZygic3RhbmRieSBtb2RlIGlz IG5vdCBzdXBwb3J0ZWQgYnkgc2luZ2xlLXVzZXIgc2VydmVycyIpKSk7Cit9CiAKLQkJCWlm ICghcGFyc2VfaW50KGl0ZW0tPnZhbHVlLCAmcmVjb3ZlcnlfbWluX2FwcGx5X2RlbGF5LCBH VUNfVU5JVF9NUywKLQkJCQkJCSAgICZoaW50bXNnKSkKLQkJCQllcmVwb3J0KEVSUk9SLAot CQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCi0JCQkJ CQkgZXJybXNnKCJwYXJhbWV0ZXIgXCIlc1wiIHJlcXVpcmVzIGEgdGVtcG9yYWwgdmFsdWUi LAotCQkJCQkJCQkicmVjb3ZlcnlfbWluX2FwcGx5X2RlbGF5IiksCi0JCQkJCQkgaGludG1z ZyA/IGVycmhpbnQoIiVzIiwgXyhoaW50bXNnKSkgOiAwKSk7Ci0JCQllcmVwb3J0KERFQlVH MiwKLQkJCQkJKGVycm1zZ19pbnRlcm5hbCgicmVjb3ZlcnlfbWluX2FwcGx5X2RlbGF5ID0g JyVzJyIsIGl0ZW0tPnZhbHVlKSkpOwotCQl9Ci0JCWVsc2UKLQkJCWVyZXBvcnQoRkFUQUws Ci0JCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAotCQkJ CQkgZXJybXNnKCJ1bnJlY29nbml6ZWQgcmVjb3ZlcnkgcGFyYW1ldGVyIFwiJXNcIiIsCi0J CQkJCQkJaXRlbS0+bmFtZSkpKTsKLQl9CitzdGF0aWMgdm9pZAordmFsaWRhdGVSZWNvdmVy eVBhcmFtZXRlcnModm9pZCkKK3sKKwlpZiAoIUFyY2hpdmVSZWNvdmVyeVJlcXVlc3RlZCkK KwkJcmV0dXJuOwogCiAJLyoKIAkgKiBDaGVjayBmb3IgY29tcHVsc29yeSBwYXJhbWV0ZXJz CiAJICovCiAJaWYgKFN0YW5kYnlNb2RlUmVxdWVzdGVkKQogCXsKLQkJaWYgKFByaW1hcnlD b25uSW5mbyA9PSBOVUxMICYmIHJlY292ZXJ5UmVzdG9yZUNvbW1hbmQgPT0gTlVMTCkKKwkJ aWYgKChQcmltYXJ5Q29ubkluZm8gPT0gTlVMTCB8fCBzdHJjbXAoUHJpbWFyeUNvbm5JbmZv LCAiIikgPT0gMCkgJiYKKwkJCShyZWNvdmVyeVJlc3RvcmVDb21tYW5kID09IE5VTEwgfHwg c3RyY21wKHJlY292ZXJ5UmVzdG9yZUNvbW1hbmQsICIiKSA9PSAwKSkKIAkJCWVyZXBvcnQo V0FSTklORywKLQkJCQkJKGVycm1zZygicmVjb3ZlcnkgY29tbWFuZCBmaWxlIFwiJXNcIiBz cGVjaWZpZWQgbmVpdGhlciBwcmltYXJ5X2Nvbm5pbmZvIG5vciByZXN0b3JlX2NvbW1hbmQi LAotCQkJCQkJCVJFQ09WRVJZX0NPTU1BTkRfRklMRSksCisJCQkJCShlcnJtc2coInNwZWNp ZmllZCBuZWl0aGVyIHByaW1hcnlfY29ubmluZm8gbm9yIHJlc3RvcmVfY29tbWFuZCIpLAog CQkJCQkgZXJyaGludCgiVGhlIGRhdGFiYXNlIHNlcnZlciB3aWxsIHJlZ3VsYXJseSBwb2xs IHRoZSBwZ193YWwgc3ViZGlyZWN0b3J5IHRvIGNoZWNrIGZvciBmaWxlcyBwbGFjZWQgdGhl cmUuIikpKTsKIAl9CiAJZWxzZQogCXsKLQkJaWYgKHJlY292ZXJ5UmVzdG9yZUNvbW1hbmQg PT0gTlVMTCkKKwkJaWYgKHJlY292ZXJ5UmVzdG9yZUNvbW1hbmQgPT0gTlVMTCB8fAorCQkJ c3RyY21wKHJlY292ZXJ5UmVzdG9yZUNvbW1hbmQsICIiKSA9PSAwKQogCQkJZXJlcG9ydChG QVRBTCwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSks Ci0JCQkJCSBlcnJtc2coInJlY292ZXJ5IGNvbW1hbmQgZmlsZSBcIiVzXCIgbXVzdCBzcGVj aWZ5IHJlc3RvcmVfY29tbWFuZCB3aGVuIHN0YW5kYnkgbW9kZSBpcyBub3QgZW5hYmxlZCIs Ci0JCQkJCQkJUkVDT1ZFUllfQ09NTUFORF9GSUxFKSkpOworCQkJCQkgZXJybXNnKCJtdXN0 IHNwZWNpZnkgcmVzdG9yZV9jb21tYW5kIHdoZW4gc3RhbmRieSBtb2RlIGlzIG5vdCBlbmFi bGVkIikpKTsKIAl9CiAKIAkvKgpAQCAtNTU3MCw1MCArNTQxMCw0MCBAQCByZWFkUmVjb3Zl cnlDb21tYW5kRmlsZSh2b2lkKQogCSAqIGhvdF9zdGFuZGJ5ID0gb2ZmLCB3aGljaCB3YXMg c3VycHJpc2luZyBiZWhhdmlvdXIuCiAJICovCiAJaWYgKHJlY292ZXJ5VGFyZ2V0QWN0aW9u ID09IFJFQ09WRVJZX1RBUkdFVF9BQ1RJT05fUEFVU0UgJiYKLQkJcmVjb3ZlcnlUYXJnZXRB Y3Rpb25TZXQgJiYKIAkJIUVuYWJsZUhvdFN0YW5kYnkpCiAJCXJlY292ZXJ5VGFyZ2V0QWN0 aW9uID0gUkVDT1ZFUllfVEFSR0VUX0FDVElPTl9TSFVURE9XTjsKIAotCS8qCi0JICogV2Ug ZG9uJ3Qgc3VwcG9ydCBzdGFuZGJ5X21vZGUgaW4gc3RhbmRhbG9uZSBiYWNrZW5kczsgdGhh dCByZXF1aXJlcwotCSAqIG90aGVyIHByb2Nlc3NlcyBzdWNoIGFzIHRoZSBXQUwgcmVjZWl2 ZXIgdG8gYmUgYWxpdmUuCi0JICovCi0JaWYgKFN0YW5kYnlNb2RlUmVxdWVzdGVkICYmICFJ c1VuZGVyUG9zdG1hc3RlcikKLQkJZXJlcG9ydChGQVRBTCwKLQkJCQkoZXJyY29kZShFUlJD T0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJIGVycm1zZygic3RhbmRieSBtb2Rl IGlzIG5vdCBzdXBwb3J0ZWQgYnkgc2luZ2xlLXVzZXIgc2VydmVycyIpKSk7Ci0KLQkvKiBF bmFibGUgZmV0Y2hpbmcgZnJvbSBhcmNoaXZlIHJlY292ZXJ5IGFyZWEgKi8KLQlBcmNoaXZl UmVjb3ZlcnlSZXF1ZXN0ZWQgPSB0cnVlOwotCiAJLyoKIAkgKiBJZiB1c2VyIHNwZWNpZmll ZCByZWNvdmVyeV90YXJnZXRfdGltZWxpbmUsIHZhbGlkYXRlIGl0IG9yIGNvbXB1dGUgdGhl CiAJICogImxhdGVzdCIgdmFsdWUuICBXZSBjYW4ndCBkbyB0aGlzIHVudGlsIGFmdGVyIHdl J3ZlIGdvdHRlbiB0aGUgcmVzdG9yZQogCSAqIGNvbW1hbmQgYW5kIHNldCBJbkFyY2hpdmVS ZWNvdmVyeSwgYmVjYXVzZSB3ZSBuZWVkIHRvIGZldGNoIHRpbWVsaW5lCiAJICogaGlzdG9y eSBmaWxlcyBmcm9tIHRoZSBhcmNoaXZlLgogCSAqLwotCWlmIChydGxpR2l2ZW4pCisJaWYg KHJlY292ZXJ5VGFyZ2V0VGltZUxpbmVHb2FsID09IFJFQ09WRVJZX1RBUkdFVF9USU1FTElO RV9OVU1FUklDKQogCXsKLQkJaWYgKHJ0bGkpCi0JCXsKLQkJCS8qIFRpbWVsaW5lIDEgZG9l cyBub3QgaGF2ZSBhIGhpc3RvcnkgZmlsZSwgYWxsIGVsc2Ugc2hvdWxkICovCi0JCQlpZiAo cnRsaSAhPSAxICYmICFleGlzdHNUaW1lTGluZUhpc3RvcnkocnRsaSkpCi0JCQkJZXJlcG9y dChGQVRBTCwKLQkJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFM VUUpLAotCQkJCQkJIGVycm1zZygicmVjb3ZlcnkgdGFyZ2V0IHRpbWVsaW5lICV1IGRvZXMg bm90IGV4aXN0IiwKLQkJCQkJCQkJcnRsaSkpKTsKLQkJCXJlY292ZXJ5VGFyZ2V0VExJID0g cnRsaTsKLQkJCXJlY292ZXJ5VGFyZ2V0SXNMYXRlc3QgPSBmYWxzZTsKLQkJfQotCQllbHNl Ci0JCXsKLQkJCS8qIFdlIHN0YXJ0IHRoZSAibGF0ZXN0IiBzZWFyY2ggZnJvbSBwZ19jb250 cm9sJ3MgdGltZWxpbmUgKi8KLQkJCXJlY292ZXJ5VGFyZ2V0VExJID0gZmluZE5ld2VzdFRp bWVMaW5lKHJlY292ZXJ5VGFyZ2V0VExJKTsKLQkJCXJlY292ZXJ5VGFyZ2V0SXNMYXRlc3Qg PSB0cnVlOwotCQl9Ci0JfQorCQlUaW1lTGluZUlECXJ0bGkgPSByZWNvdmVyeVRhcmdldFRM SVJlcXVlc3RlZDsKIAotCUZyZWVDb25maWdWYXJpYWJsZXMoaGVhZCk7CisJCS8qIFRpbWVs aW5lIDEgZG9lcyBub3QgaGF2ZSBhIGhpc3RvcnkgZmlsZSwgYWxsIGVsc2Ugc2hvdWxkICov CisJCWlmIChydGxpICE9IDEgJiYgIWV4aXN0c1RpbWVMaW5lSGlzdG9yeShydGxpKSkKKwkJ CWVyZXBvcnQoRkFUQUwsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVU RVJfVkFMVUUpLAorCQkJCQkgZXJybXNnKCJyZWNvdmVyeSB0YXJnZXQgdGltZWxpbmUgJXUg ZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJCXJ0bGkpKSk7CisJCXJlY292ZXJ5VGFyZ2V0VExJ ID0gcnRsaTsKKwl9CisJZWxzZSBpZiAocmVjb3ZlcnlUYXJnZXRUaW1lTGluZUdvYWwgPT0g UkVDT1ZFUllfVEFSR0VUX1RJTUVMSU5FX0xBVEVTVCkKKwl7CisJCS8qIFdlIHN0YXJ0IHRo ZSAibGF0ZXN0IiBzZWFyY2ggZnJvbSBwZ19jb250cm9sJ3MgdGltZWxpbmUgKi8KKwkJcmVj b3ZlcnlUYXJnZXRUTEkgPSBmaW5kTmV3ZXN0VGltZUxpbmUocmVjb3ZlcnlUYXJnZXRUTEkp OworCX0KKwllbHNlCisJeworCQkvKgorCQkgKiBlbHNlIHdlIGp1c3QgdXNlIHRoZSByZWNv dmVyeVRhcmdldFRMSSBhcyBhbHJlYWR5IHJlYWQgZnJvbQorCQkgKiBDb250cm9sRmlsZQor CQkgKi8KKwkJQXNzZXJ0KHJlY292ZXJ5VGFyZ2V0VGltZUxpbmVHb2FsID09IFJFQ09WRVJZ X1RBUkdFVF9USU1FTElORV9DT05UUk9MRklMRSk7CisJfQogfQogCiAvKgpAQCAtNTcxNCwx MSArNTU0NCwxNCBAQCBleGl0QXJjaGl2ZVJlY292ZXJ5KFRpbWVMaW5lSUQgZW5kVExJLCBY TG9nUmVjUHRyIGVuZE9mTG9nKQogCXVubGluayhyZWNvdmVyeVBhdGgpOwkJLyogaWdub3Jl IGFueSBlcnJvciAqLwogCiAJLyoKLQkgKiBSZW5hbWUgdGhlIGNvbmZpZyBmaWxlIG91dCBv ZiB0aGUgd2F5LCBzbyB0aGF0IHdlIGRvbid0IGFjY2lkZW50YWxseQorCSAqIFJlbW92ZSB0 aGUgc2lnbmFsIGZpbGVzIG91dCBvZiB0aGUgd2F5LCBzbyB0aGF0IHdlIGRvbid0IGFjY2lk ZW50YWxseQogCSAqIHJlLWVudGVyIGFyY2hpdmUgcmVjb3ZlcnkgbW9kZSBpbiBhIHN1YnNl cXVlbnQgY3Jhc2guCiAJICovCi0JdW5saW5rKFJFQ09WRVJZX0NPTU1BTkRfRE9ORSk7Ci0J ZHVyYWJsZV9yZW5hbWUoUkVDT1ZFUllfQ09NTUFORF9GSUxFLCBSRUNPVkVSWV9DT01NQU5E X0RPTkUsIEZBVEFMKTsKKwlpZiAoc3RhbmRieV9zaWduYWxfZmlsZV9mb3VuZCkKKwkJZHVy YWJsZV91bmxpbmsoU1RBTkRCWV9TSUdOQUxfRklMRSwgRkFUQUwpOworCisJaWYgKHJlY292 ZXJ5X3NpZ25hbF9maWxlX2ZvdW5kKQorCQlkdXJhYmxlX3VubGluayhSRUNPVkVSWV9TSUdO QUxfRklMRSwgRkFUQUwpOwogCiAJZXJlcG9ydChMT0csCiAJCQkoZXJybXNnKCJhcmNoaXZl IHJlY292ZXJ5IGNvbXBsZXRlIikpKTsKQEAgLTY0NjEsMTggKzYyOTQsMTAgQEAgU3RhcnR1 cFhMT0codm9pZCkKIAkJcmVjb3ZlcnlUYXJnZXRUTEkgPSBDb250cm9sRmlsZS0+Y2hlY2tQ b2ludENvcHkuVGhpc1RpbWVMaW5lSUQ7CiAKIAkvKgotCSAqIENoZWNrIGZvciByZWNvdmVy eSBjb250cm9sIGZpbGUsIGFuZCBpZiBzbyBzZXQgdXAgc3RhdGUgZm9yIG9mZmxpbmUKLQkg KiByZWNvdmVyeQotCSAqLwotCXJlYWRSZWNvdmVyeUNvbW1hbmRGaWxlKCk7Ci0KLQkvKgot CSAqIFNhdmUgYXJjaGl2ZV9jbGVhbnVwX2NvbW1hbmQgaW4gc2hhcmVkIG1lbW9yeSBzbyB0 aGF0IG90aGVyIHByb2Nlc3NlcwotCSAqIGNhbiBzZWUgaXQuCisJICogQ2hlY2sgZm9yIHNp Z25hbCBmaWxlcywgYW5kIGlmIHNvIHNldCB1cCBzdGF0ZSBmb3Igb2ZmbGluZSByZWNvdmVy eQogCSAqLwotCXN0cmxjcHkoWExvZ0N0bC0+YXJjaGl2ZUNsZWFudXBDb21tYW5kLAotCQkJ YXJjaGl2ZUNsZWFudXBDb21tYW5kID8gYXJjaGl2ZUNsZWFudXBDb21tYW5kIDogIiIsCi0J CQlzaXplb2YoWExvZ0N0bC0+YXJjaGl2ZUNsZWFudXBDb21tYW5kKSk7CisJcmVhZFJlY292 ZXJ5U2lnbmFsRmlsZSgpOworCXZhbGlkYXRlUmVjb3ZlcnlQYXJhbWV0ZXJzKCk7CiAKIAlp ZiAoQXJjaGl2ZVJlY292ZXJ5UmVxdWVzdGVkKQogCXsKQEAgLTY2NTIsNyArNjQ3Nyw4IEBA IFN0YXJ0dXBYTE9HKHZvaWQpCiAJCSAqIFRoaXMgY2FuIGhhcHBlbiBmb3IgZXhhbXBsZSBp ZiBhIGJhc2UgYmFja3VwIGlzIHRha2VuIGZyb20gYQogCQkgKiBydW5uaW5nIHNlcnZlciB1 c2luZyBhbiBhdG9taWMgZmlsZXN5c3RlbSBzbmFwc2hvdCwgd2l0aG91dCBjYWxsaW5nCiAJ CSAqIHBnX3N0YXJ0L3N0b3BfYmFja3VwLiBPciBpZiB5b3UganVzdCBraWxsIGEgcnVubmlu ZyBtYXN0ZXIgc2VydmVyCi0JCSAqIGFuZCBwdXQgaXQgaW50byBhcmNoaXZlIHJlY292ZXJ5 IGJ5IGNyZWF0aW5nIGEgcmVjb3ZlcnkuY29uZiBmaWxlLgorCQkgKiBhbmQgcHV0IGl0IGlu dG8gYXJjaGl2ZSByZWNvdmVyeSBieSBjcmVhdGluZyBhIHJlY292ZXJ5IHNpZ25hbAorCQkg KiBmaWxlLgogCQkgKgogCQkgKiBPdXIgc3RyYXRlZ3kgaW4gdGhhdCBjYXNlIGlzIHRvIHBl cmZvcm0gY3Jhc2ggcmVjb3ZlcnkgZmlyc3QsCiAJCSAqIHJlcGxheWluZyBhbGwgdGhlIFdB TCBwcmVzZW50IGluIHBnX3dhbCwgYW5kIG9ubHkgZW50ZXIgYXJjaGl2ZQpAQCAtNjY4Nyw3 ICs2NTEzLDcgQEAgU3RhcnR1cFhMT0codm9pZCkKIAkJewogCQkJLyoKIAkJCSAqIFdlIHVz ZWQgdG8gYXR0ZW1wdCB0byBnbyBiYWNrIHRvIGEgc2Vjb25kYXJ5IGNoZWNrcG9pbnQgcmVj b3JkCi0JCQkgKiBoZXJlLCBidXQgb25seSB3aGVuIG5vdCBpbiBzdGFuZGJ5X21vZGUuIFdl IG5vdyBqdXN0IGZhaWwgaWYgd2UKKwkJCSAqIGhlcmUsIGJ1dCBvbmx5IHdoZW4gbm90IGlu IHN0YW5kYnkgbW9kZS4gV2Ugbm93IGp1c3QgZmFpbCBpZiB3ZQogCQkJICogY2FuJ3QgcmVh ZCB0aGUgbGFzdCBjaGVja3BvaW50IGJlY2F1c2UgdGhpcyBhbGxvd3MgdXMgdG8KIAkJCSAq IHNpbXBsaWZ5IHByb2Nlc3NpbmcgYXJvdW5kIGNoZWNrcG9pbnRzLgogCQkJICovCkBAIC02 ODc4LDcgKzY3MDQsNyBAQCBTdGFydHVwWExPRyh2b2lkKQogCiAJLyoKIAkgKiBDaGVjayB3 aGV0aGVyIHdlIG5lZWQgdG8gZm9yY2UgcmVjb3ZlcnkgZnJvbSBXQUwuICBJZiBpdCBhcHBl YXJzIHRvCi0JICogaGF2ZSBiZWVuIGEgY2xlYW4gc2h1dGRvd24gYW5kIHdlIGRpZCBub3Qg aGF2ZSBhIHJlY292ZXJ5LmNvbmYgZmlsZSwKKwkgKiBoYXZlIGJlZW4gYSBjbGVhbiBzaHV0 ZG93biBhbmQgd2UgZGlkIG5vdCBoYXZlIGEgcmVjb3Zlcnkgc2lnbmFsIGZpbGUsCiAJICog dGhlbiBhc3N1bWUgbm8gcmVjb3ZlcnkgbmVlZGVkLgogCSAqLwogCWlmIChjaGVja1BvaW50 LnJlZG8gPCBSZWNQdHIpCkBAIC02ODkyLDcgKzY3MTgsNyBAQCBTdGFydHVwWExPRyh2b2lk KQogCQlJblJlY292ZXJ5ID0gdHJ1ZTsKIAllbHNlIGlmIChBcmNoaXZlUmVjb3ZlcnlSZXF1 ZXN0ZWQpCiAJewotCQkvKiBmb3JjZSByZWNvdmVyeSBkdWUgdG8gcHJlc2VuY2Ugb2YgcmVj b3ZlcnkuY29uZiAqLworCQkvKiBmb3JjZSByZWNvdmVyeSBkdWUgdG8gcHJlc2VuY2Ugb2Yg cmVjb3Zlcnkgc2lnbmFsIGZpbGUgKi8KIAkJSW5SZWNvdmVyeSA9IHRydWU7CiAJfQogCkBA IC03NzYzLDcgKzc1ODksNyBAQCBTdGFydHVwWExPRyh2b2lkKQogCQkvKgogCQkgKiBBbmQg ZmluYWxseSwgZXhlY3V0ZSB0aGUgcmVjb3ZlcnlfZW5kX2NvbW1hbmQsIGlmIGFueS4KIAkJ ICovCi0JCWlmIChyZWNvdmVyeUVuZENvbW1hbmQpCisJCWlmIChyZWNvdmVyeUVuZENvbW1h bmQgJiYgc3RyY21wKHJlY292ZXJ5RW5kQ29tbWFuZCwgIiIpICE9IDApCiAJCQlFeGVjdXRl UmVjb3ZlcnlDb21tYW5kKHJlY292ZXJ5RW5kQ29tbWFuZCwKIAkJCQkJCQkJICAgInJlY292 ZXJ5X2VuZF9jb21tYW5kIiwKIAkJCQkJCQkJICAgdHJ1ZSk7CkBAIC05NDg1LDggKzkzMTEs OCBAQCBDcmVhdGVSZXN0YXJ0UG9pbnQoaW50IGZsYWdzKQogCS8qCiAJICogRmluYWxseSwg ZXhlY3V0ZSBhcmNoaXZlX2NsZWFudXBfY29tbWFuZCwgaWYgYW55LgogCSAqLwotCWlmIChY TG9nQ3RsLT5hcmNoaXZlQ2xlYW51cENvbW1hbmRbMF0pCi0JCUV4ZWN1dGVSZWNvdmVyeUNv bW1hbmQoWExvZ0N0bC0+YXJjaGl2ZUNsZWFudXBDb21tYW5kLAorCWlmIChhcmNoaXZlQ2xl YW51cENvbW1hbmQgJiYgc3RyY21wKGFyY2hpdmVDbGVhbnVwQ29tbWFuZCwgIiIpICE9IDAp CisJCUV4ZWN1dGVSZWNvdmVyeUNvbW1hbmQoYXJjaGl2ZUNsZWFudXBDb21tYW5kLAogCQkJ CQkJCSAgICJhcmNoaXZlX2NsZWFudXBfY29tbWFuZCIsCiAJCQkJCQkJICAgZmFsc2UpOwog CkBAIC0xMTk5NSw3ICsxMTgyMSw3IEBAIFdhaXRGb3JXQUxUb0JlY29tZUF2YWlsYWJsZShY TG9nUmVjUHRyIFJlY1B0ciwgYm9vbCByYW5kQWNjZXNzLAogCQkJCQkgKiB0aGF0IHdoZW4g d2UgbGF0ZXIganVtcCBiYWNrd2FyZHMgdG8gc3RhcnQgcmVkbyBhdAogCQkJCQkgKiBSZWRv U3RhcnRMU04sIHdlIHdpbGwgaGF2ZSB0aGUgbG9ncyBzdHJlYW1lZCBhbHJlYWR5LgogCQkJ CQkgKi8KLQkJCQkJaWYgKFByaW1hcnlDb25uSW5mbykKKwkJCQkJaWYgKFByaW1hcnlDb25u SW5mbyAmJiBzdHJjbXAoUHJpbWFyeUNvbm5JbmZvLCAiIikgIT0gMCkKIAkJCQkJewogCQkJ CQkJWExvZ1JlY1B0cglwdHI7CiAJCQkJCQlUaW1lTGluZUlECXRsaTsKQEAgLTEyMDY0LDcg KzExODkwLDcgQEAgV2FpdEZvcldBTFRvQmVjb21lQXZhaWxhYmxlKFhMb2dSZWNQdHIgUmVj UHRyLCBib29sIHJhbmRBY2Nlc3MsCiAJCQkJCSAqIEJlZm9yZSB3ZSBzbGVlcCwgcmUtc2Nh biBmb3IgcG9zc2libGUgbmV3IHRpbWVsaW5lcyBpZgogCQkJCQkgKiB3ZSB3ZXJlIHJlcXVl c3RlZCB0byByZWNvdmVyIHRvIHRoZSBsYXRlc3QgdGltZWxpbmUuCiAJCQkJCSAqLwotCQkJ CQlpZiAocmVjb3ZlcnlUYXJnZXRJc0xhdGVzdCkKKwkJCQkJaWYgKHJlY292ZXJ5VGFyZ2V0 VGltZUxpbmVHb2FsID09IFJFQ09WRVJZX1RBUkdFVF9USU1FTElORV9MQVRFU1QpCiAJCQkJ CXsKIAkJCQkJCWlmIChyZXNjYW5MYXRlc3RUaW1lTGluZSgpKQogCQkJCQkJewpAQCAtMTIz NjQsMTQgKzEyMTkwLDE0IEBAIENoZWNrRm9yU3RhbmRieVRyaWdnZXIodm9pZCkKIAkJcmV0 dXJuIHRydWU7CiAJfQogCi0JaWYgKFRyaWdnZXJGaWxlID09IE5VTEwpCisJaWYgKFByb21v dGVUcmlnZ2VyRmlsZSA9PSBOVUxMIHx8IHN0cmNtcChQcm9tb3RlVHJpZ2dlckZpbGUsICIi KSA9PSAwKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlpZiAoc3RhdChUcmlnZ2VyRmlsZSwgJnN0 YXRfYnVmKSA9PSAwKQorCWlmIChzdGF0KFByb21vdGVUcmlnZ2VyRmlsZSwgJnN0YXRfYnVm KSA9PSAwKQogCXsKIAkJZXJlcG9ydChMT0csCi0JCQkJKGVycm1zZygidHJpZ2dlciBmaWxl IGZvdW5kOiAlcyIsIFRyaWdnZXJGaWxlKSkpOwotCQl1bmxpbmsoVHJpZ2dlckZpbGUpOwor CQkJCShlcnJtc2coInByb21vdGUgdHJpZ2dlciBmaWxlIGZvdW5kOiAlcyIsIFByb21vdGVU cmlnZ2VyRmlsZSkpKTsKKwkJdW5saW5rKFByb21vdGVUcmlnZ2VyRmlsZSk7CiAJCXRyaWdn ZXJlZCA9IHRydWU7CiAJCWZhc3RfcHJvbW90ZSA9IHRydWU7CiAJCXJldHVybiB0cnVlOwpA QCAtMTIzNzksOCArMTIyMDUsOCBAQCBDaGVja0ZvclN0YW5kYnlUcmlnZ2VyKHZvaWQpCiAJ ZWxzZSBpZiAoZXJybm8gIT0gRU5PRU5UKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJj b2RlX2Zvcl9maWxlX2FjY2VzcygpLAotCQkJCSBlcnJtc2coImNvdWxkIG5vdCBzdGF0IHRy aWdnZXIgZmlsZSBcIiVzXCI6ICVtIiwKLQkJCQkJCVRyaWdnZXJGaWxlKSkpOworCQkJCSBl cnJtc2coImNvdWxkIG5vdCBzdGF0IHByb21vdGUgdHJpZ2dlciBmaWxlIFwiJXNcIjogJW0i LAorCQkJCQkJUHJvbW90ZVRyaWdnZXJGaWxlKSkpOwogCiAJcmV0dXJuIGZhbHNlOwogfQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ2FyY2hpdmUuYyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dhcmNoaXZlLmMKaW5kZXggZDQwMzE3 MTY4ZS4uYjhkYTcxNGI4MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5z YW0veGxvZ2FyY2hpdmUuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9n YXJjaGl2ZS5jCkBAIC02Niw3ICs2Niw3IEBAIFJlc3RvcmVBcmNoaXZlZEZpbGUoY2hhciAq cGF0aCwgY29uc3QgY2hhciAqeGxvZ2ZuYW1lLAogCVRpbWVMaW5lSUQJcmVzdGFydFRsaTsK IAogCS8qIEluIHN0YW5kYnkgbW9kZSwgcmVzdG9yZV9jb21tYW5kIG1pZ2h0IG5vdCBiZSBz dXBwbGllZCAqLwotCWlmIChyZWNvdmVyeVJlc3RvcmVDb21tYW5kID09IE5VTEwpCisJaWYg KHJlY292ZXJ5UmVzdG9yZUNvbW1hbmQgPT0gTlVMTCB8fCBzdHJjbXAocmVjb3ZlcnlSZXN0 b3JlQ29tbWFuZCwgIiIpID09IDApCiAJCWdvdG8gbm90X2F2YWlsYWJsZTsKIAogCS8qCkBA IC00MTAsNyArNDEwLDcgQEAgRXhlY3V0ZVJlY292ZXJ5Q29tbWFuZChjb25zdCBjaGFyICpj b21tYW5kLCBjb25zdCBjaGFyICpjb21tYW5kTmFtZSwgYm9vbCBmYWlsT24KIAogCQllcmVw b3J0KChzaWduYWxlZCAmJiBmYWlsT25TaWduYWwpID8gRkFUQUwgOiBXQVJOSU5HLAogCQkv Ki0tLS0tLQotCQkgICB0cmFuc2xhdG9yOiBGaXJzdCAlcyByZXByZXNlbnRzIGEgcmVjb3Zl cnkuY29uZiBwYXJhbWV0ZXIgbmFtZSBsaWtlCisJCSAgIHRyYW5zbGF0b3I6IEZpcnN0ICVz IHJlcHJlc2VudHMgYSBwb3N0Z3Jlc3FsLmNvbmYgcGFyYW1ldGVyIG5hbWUgbGlrZQogCQkg ICJyZWNvdmVyeV9lbmRfY29tbWFuZCIsIHRoZSAybmQgaXMgdGhlIHZhbHVlIG9mIHRoYXQg cGFyYW1ldGVyLCB0aGUKIAkJICB0aGlyZCBhbiBhbHJlYWR5IHRyYW5zbGF0ZWQgZXJyb3Ig bWVzc2FnZS4gKi8KIAkJCQkoZXJybXNnKCIlcyBcIiVzXCI6ICVzIiwgY29tbWFuZE5hbWUs CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHRlbnNpb24uYyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2V4dGVuc2lvbi5jCmluZGV4IDU2MDA2NGQzZTEuLmJkZWQ2MjYz ZTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4dGVuc2lvbi5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4dGVuc2lvbi5jCkBAIC05LDggKzksOCBAQAogICog ZGVwZW5kZW50IG9iamVjdHMgY2FuIGJlIGFzc29jaWF0ZWQgd2l0aCBpdC4gIEFuIGV4dGVu c2lvbiBpcyBjcmVhdGVkIGJ5CiAgKiBwb3B1bGF0aW5nIHRoZSBwZ19leHRlbnNpb24gY2F0 YWxvZyBmcm9tIGEgImNvbnRyb2wiIGZpbGUuCiAgKiBUaGUgZXh0ZW5zaW9uIGNvbnRyb2wg ZmlsZSBpcyBwYXJzZWQgd2l0aCB0aGUgc2FtZSBwYXJzZXIgd2UgdXNlIGZvcgotICogcG9z dGdyZXNxbC5jb25mIGFuZCByZWNvdmVyeS5jb25mLiAgQW4gZXh0ZW5zaW9uIGFsc28gaGFz IGFuIGluc3RhbGxhdGlvbgotICogc2NyaXB0IGZpbGUsIGNvbnRhaW5pbmcgU1FMIGNvbW1h bmRzIHRvIGNyZWF0ZSB0aGUgZXh0ZW5zaW9uJ3Mgb2JqZWN0cy4KKyAqIHBvc3RncmVzcWwu Y29uZi4gIEFuIGV4dGVuc2lvbiBhbHNvIGhhcyBhbiBpbnN0YWxsYXRpb24gc2NyaXB0IGZp bGUsCisgKiBjb250YWluaW5nIFNRTCBjb21tYW5kcyB0byBjcmVhdGUgdGhlIGV4dGVuc2lv bidzIG9iamVjdHMuCiAgKgogICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMTgs IFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAgKiBQb3J0aW9ucyBDb3B5 cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5p YQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL21pc2MvZ3VjLmMKaW5kZXggN2U5ZThjNjQyYi4uZGM1MzUxOGVlZSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9taXNjL2d1Yy5jCkBAIC04NCw2ICs4NCw3IEBACiAjaW5jbHVkZSAidXRpbHMv ZmxvYXQuaCIKICNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgogI2luY2x1ZGUgInV0aWxz L3BnX2xvY2FsZS5oIgorI2luY2x1ZGUgInV0aWxzL3BnX2xzbi5oIgogI2luY2x1ZGUgInV0 aWxzL3BsYW5jYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3BvcnRhbC5oIgogI2luY2x1ZGUg InV0aWxzL3BzX3N0YXR1cy5oIgpAQCAtMTk1LDYgKzE5NiwxOSBAQCBzdGF0aWMgYm9vbCBj aGVja19jbHVzdGVyX25hbWUoY2hhciAqKm5ld3ZhbCwgdm9pZCAqKmV4dHJhLCBHdWNTb3Vy Y2Ugc291cmNlKTsKIHN0YXRpYyBjb25zdCBjaGFyICpzaG93X3VuaXhfc29ja2V0X3Blcm1p c3Npb25zKHZvaWQpOwogc3RhdGljIGNvbnN0IGNoYXIgKnNob3dfbG9nX2ZpbGVfbW9kZSh2 b2lkKTsKIHN0YXRpYyBjb25zdCBjaGFyICpzaG93X2RhdGFfZGlyZWN0b3J5X21vZGUodm9p ZCk7CitzdGF0aWMgYm9vbCBjaGVja19yZWNvdmVyeV90YXJnZXRfdGltZWxpbmUoY2hhciAq Km5ld3ZhbCwgdm9pZCAqKmV4dHJhLCBHdWNTb3VyY2Ugc291cmNlKTsKK3N0YXRpYyB2b2lk IGFzc2lnbl9yZWNvdmVyeV90YXJnZXRfdGltZWxpbmUoY29uc3QgY2hhciAqbmV3dmFsLCB2 b2lkICpleHRyYSk7CitzdGF0aWMgYm9vbCBjaGVja19yZWNvdmVyeV90YXJnZXQoY2hhciAq Km5ld3ZhbCwgdm9pZCAqKmV4dHJhLCBHdWNTb3VyY2Ugc291cmNlKTsKK3N0YXRpYyB2b2lk IGFzc2lnbl9yZWNvdmVyeV90YXJnZXQoY29uc3QgY2hhciAqbmV3dmFsLCB2b2lkICpleHRy YSk7CitzdGF0aWMgYm9vbCBjaGVja19yZWNvdmVyeV90YXJnZXRfeGlkKGNoYXIgKipuZXd2 YWwsIHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJjZSk7CitzdGF0aWMgdm9pZCBhc3Np Z25fcmVjb3ZlcnlfdGFyZ2V0X3hpZChjb25zdCBjaGFyICpuZXd2YWwsIHZvaWQgKmV4dHJh KTsKK3N0YXRpYyBib29sIGNoZWNrX3JlY292ZXJ5X3RhcmdldF90aW1lKGNoYXIgKipuZXd2 YWwsIHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJjZSk7CitzdGF0aWMgdm9pZCBhc3Np Z25fcmVjb3ZlcnlfdGFyZ2V0X3RpbWUoY29uc3QgY2hhciAqbmV3dmFsLCB2b2lkICpleHRy YSk7CitzdGF0aWMgYm9vbCBjaGVja19yZWNvdmVyeV90YXJnZXRfbmFtZShjaGFyICoqbmV3 dmFsLCB2b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2UpOworc3RhdGljIHZvaWQgYXNz aWduX3JlY292ZXJ5X3RhcmdldF9uYW1lKGNvbnN0IGNoYXIgKm5ld3ZhbCwgdm9pZCAqZXh0 cmEpOworc3RhdGljIGJvb2wgY2hlY2tfcmVjb3ZlcnlfdGFyZ2V0X2xzbihjaGFyICoqbmV3 dmFsLCB2b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2UpOworc3RhdGljIHZvaWQgYXNz aWduX3JlY292ZXJ5X3RhcmdldF9sc24oY29uc3QgY2hhciAqbmV3dmFsLCB2b2lkICpleHRy YSk7CitzdGF0aWMgYm9vbCBjaGVja19wcmltYXJ5X3Nsb3RfbmFtZShjaGFyICoqbmV3dmFs LCB2b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2UpOwogCiAvKiBQcml2YXRlIGZ1bmN0 aW9ucyBpbiBndWMtZmlsZS5sIHRoYXQgbmVlZCB0byBiZSBjYWxsZWQgZnJvbSBndWMuYyAq Lwogc3RhdGljIENvbmZpZ1ZhcmlhYmxlICpQcm9jZXNzQ29uZmlnRmlsZUludGVybmFsKEd1 Y0NvbnRleHQgY29udGV4dCwKQEAgLTQzMyw2ICs0NDcsNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGNvbmZpZ19lbnVtX2VudHJ5IHBhc3N3b3JkX2VuY3J5cHRpb25fb3B0aW9uc1tdID0g ewogICovCiBleHRlcm4gY29uc3Qgc3RydWN0IGNvbmZpZ19lbnVtX2VudHJ5IHdhbF9sZXZl bF9vcHRpb25zW107CiBleHRlcm4gY29uc3Qgc3RydWN0IGNvbmZpZ19lbnVtX2VudHJ5IGFy Y2hpdmVfbW9kZV9vcHRpb25zW107CitleHRlcm4gY29uc3Qgc3RydWN0IGNvbmZpZ19lbnVt X2VudHJ5IHJlY292ZXJ5X3RhcmdldF9hY3Rpb25fb3B0aW9uc1tdOwogZXh0ZXJuIGNvbnN0 IHN0cnVjdCBjb25maWdfZW51bV9lbnRyeSBzeW5jX21ldGhvZF9vcHRpb25zW107CiBleHRl cm4gY29uc3Qgc3RydWN0IGNvbmZpZ19lbnVtX2VudHJ5IGR5bmFtaWNfc2hhcmVkX21lbW9y eV9vcHRpb25zW107CiAKQEAgLTUyNSw2ICs1NDAsMTMgQEAgc3RhdGljIGludAl3YWxfYmxv Y2tfc2l6ZTsKIHN0YXRpYyBib29sIGRhdGFfY2hlY2tzdW1zOwogc3RhdGljIGJvb2wgaW50 ZWdlcl9kYXRldGltZXM7CiBzdGF0aWMgYm9vbCBhc3NlcnRfZW5hYmxlZDsKK3N0YXRpYyBj aGFyICpyZWNvdmVyeV90YXJnZXRfdGltZWxpbmVfc3RyaW5nOworc3RhdGljIGNoYXIgKnJl Y292ZXJ5X3RhcmdldF9zdHJpbmc7CitzdGF0aWMgY2hhciAqcmVjb3ZlcnlfdGFyZ2V0X3hp ZF9zdHJpbmc7CitzdGF0aWMgY2hhciAqcmVjb3ZlcnlfdGFyZ2V0X3RpbWVfc3RyaW5nOwor c3RhdGljIGNoYXIgKnJlY292ZXJ5X3RhcmdldF9uYW1lX3N0cmluZzsKK3N0YXRpYyBjaGFy ICpyZWNvdmVyeV90YXJnZXRfbHNuX3N0cmluZzsKKwogCiAvKiBzaG91bGQgYmUgc3RhdGlj LCBidXQgY29tbWFuZHMvdmFyaWFibGUuYyBuZWVkcyB0byBnZXQgYXQgdGhpcyAqLwogY2hh cgkgICAqcm9sZV9zdHJpbmc7CkBAIC02MDgsNiArNjMwLDEwIEBAIGNvbnN0IGNoYXIgKmNv bnN0IGNvbmZpZ19ncm91cF9uYW1lc1tdID0KIAlnZXR0ZXh0X25vb3AoIldyaXRlLUFoZWFk IExvZyAvIENoZWNrcG9pbnRzIiksCiAJLyogV0FMX0FSQ0hJVklORyAqLwogCWdldHRleHRf bm9vcCgiV3JpdGUtQWhlYWQgTG9nIC8gQXJjaGl2aW5nIiksCisJLyogV0FMX0FSQ0hJVkVf UkVDT1ZFUlkgKi8KKwlnZXR0ZXh0X25vb3AoIldyaXRlLUFoZWFkIExvZyAvIEFyY2hpdmUg UmVjb3ZlcnkiKSwKKwkvKiBXQUxfUkVDT1ZFUllfVEFSR0VUICovCisJZ2V0dGV4dF9ub29w KCJXcml0ZS1BaGVhZCBMb2cgLyBSZWNvdmVyeSBUYXJnZXQiKSwKIAkvKiBSRVBMSUNBVElP TiAqLwogCWdldHRleHRfbm9vcCgiUmVwbGljYXRpb24iKSwKIAkvKiBSRVBMSUNBVElPTl9T RU5ESU5HICovCkBAIC0xNjM4LDYgKzE2NjQsMTYgQEAgc3RhdGljIHN0cnVjdCBjb25maWdf Ym9vbCBDb25maWd1cmVOYW1lc0Jvb2xbXSA9CiAJCU5VTEwsIE5VTEwsIE5VTEwKIAl9LAog CisJeworCQl7InJlY292ZXJ5X3RhcmdldF9pbmNsdXNpdmUiLCBQR0NfUE9TVE1BU1RFUiwg V0FMX1JFQ09WRVJZX1RBUkdFVCwKKwkJCWdldHRleHRfbm9vcCgiU2V0cyB3aGV0aGVyIHRv IGluY2x1ZGUgb3IgZXhjbHVkZSB0cmFuc2FjdGlvbiB3aXRoIHJlY292ZXJ5IHRhcmdldC4i KSwKKwkJCU5VTEwKKwkJfSwKKwkJJnJlY292ZXJ5VGFyZ2V0SW5jbHVzaXZlLAorCQl0cnVl LAorCQlOVUxMLCBOVUxMLCBOVUxMCisJfSwKKwogCXsKIAkJeyJob3Rfc3RhbmRieSIsIFBH Q19QT1NUTUFTVEVSLCBSRVBMSUNBVElPTl9TVEFOREJZLAogCQkJZ2V0dGV4dF9ub29wKCJB bGxvd3MgY29ubmVjdGlvbnMgYW5kIHF1ZXJpZXMgZHVyaW5nIHJlY292ZXJ5LiIpLApAQCAt MTk3NCw2ICsyMDEwLDE3IEBAIHN0YXRpYyBzdHJ1Y3QgY29uZmlnX2ludCBDb25maWd1cmVO YW1lc0ludFtdID0KIAkJTlVMTCwgTlVMTCwgTlVMTAogCX0sCiAKKwl7CisJCXsicmVjb3Zl cnlfbWluX2FwcGx5X2RlbGF5IiwgUEdDX1BPU1RNQVNURVIsIFJFUExJQ0FUSU9OX1NUQU5E QlksCisJCQlnZXR0ZXh0X25vb3AoIlNldHMgdGhlIG1pbmltdW0gZGVsYXkgZm9yIGFwcGx5 aW5nIGNoYW5nZXMgZHVyaW5nIHJlY292ZXJ5LiIpLAorCQkJTlVMTCwKKwkJCUdVQ19VTklU X01TCisJCX0sCisJCSZyZWNvdmVyeV9taW5fYXBwbHlfZGVsYXksCisJCTAsIDAsIElOVF9N QVgsCisJCU5VTEwsIE5VTEwsIE5VTEwKKwl9LAorCiAJewogCQl7IndhbF9yZWNlaXZlcl9z dGF0dXNfaW50ZXJ2YWwiLCBQR0NfU0lHSFVQLCBSRVBMSUNBVElPTl9TVEFOREJZLAogCQkJ Z2V0dGV4dF9ub29wKCJTZXRzIHRoZSBtYXhpbXVtIGludGVydmFsIGJldHdlZW4gV0FMIHJl Y2VpdmVyIHN0YXR1cyByZXBvcnRzIHRvIHRoZSBzZW5kaW5nIHNlcnZlci4iKSwKQEAgLTMy OTIsNiArMzMzOSwxMjMgQEAgc3RhdGljIHN0cnVjdCBjb25maWdfc3RyaW5nIENvbmZpZ3Vy ZU5hbWVzU3RyaW5nW10gPQogCQlOVUxMLCBOVUxMLCBzaG93X2FyY2hpdmVfY29tbWFuZAog CX0sCiAKKwl7CisJCXsicmVzdG9yZV9jb21tYW5kIiwgUEdDX1BPU1RNQVNURVIsIFdBTF9B UkNISVZFX1JFQ09WRVJZLAorCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRoZSBzaGVsbCBjb21t YW5kIHRoYXQgd2lsbCByZXRyaWV2ZSBhbiBhcmNoaXZlZCBXQUwgZmlsZS4iKSwKKwkJCU5V TEwKKwkJfSwKKwkJJnJlY292ZXJ5UmVzdG9yZUNvbW1hbmQsCisJCSIiLAorCQlOVUxMLCBO VUxMLCBOVUxMCisJfSwKKworCXsKKwkJeyJhcmNoaXZlX2NsZWFudXBfY29tbWFuZCIsIFBH Q19QT1NUTUFTVEVSLCBXQUxfQVJDSElWRV9SRUNPVkVSWSwKKwkJCWdldHRleHRfbm9vcCgi U2V0cyB0aGUgc2hlbGwgY29tbWFuZCB0aGF0IHdpbGwgYmUgZXhlY3V0ZWQgYXQgZXZlcnkg cmVzdGFydCBwb2ludC4iKSwKKwkJCU5VTEwKKwkJfSwKKwkJJmFyY2hpdmVDbGVhbnVwQ29t bWFuZCwKKwkJIiIsCisJCU5VTEwsIE5VTEwsIE5VTEwKKwl9LAorCisJeworCQl7InJlY292 ZXJ5X2VuZF9jb21tYW5kIiwgUEdDX1BPU1RNQVNURVIsIFdBTF9BUkNISVZFX1JFQ09WRVJZ LAorCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRoZSBzaGVsbCBjb21tYW5kIHRoYXQgd2lsbCBi ZSBleGVjdXRlZCBvbmNlIGF0IHRoZSBlbmQgb2YgcmVjb3ZlcnkuIiksCisJCQlOVUxMCisJ CX0sCisJCSZyZWNvdmVyeUVuZENvbW1hbmQsCisJCSIiLAorCQlOVUxMLCBOVUxMLCBOVUxM CisJfSwKKworCXsKKwkJeyJyZWNvdmVyeV90YXJnZXRfdGltZWxpbmUiLCBQR0NfUE9TVE1B U1RFUiwgV0FMX1JFQ09WRVJZX1RBUkdFVCwKKwkJCWdldHRleHRfbm9vcCgiU3BlY2lmaWVz IHRoZSB0aW1lbGluZSB0byByZWNvdmVyeSBpbnRvLiIpLAorCQkJTlVMTAorCQl9LAorCQkm cmVjb3ZlcnlfdGFyZ2V0X3RpbWVsaW5lX3N0cmluZywKKwkJIiIsCisJCWNoZWNrX3JlY292 ZXJ5X3RhcmdldF90aW1lbGluZSwgYXNzaWduX3JlY292ZXJ5X3RhcmdldF90aW1lbGluZSwg TlVMTAorCX0sCisKKwl7CisJCXsicmVjb3ZlcnlfdGFyZ2V0IiwgUEdDX1BPU1RNQVNURVIs IFdBTF9SRUNPVkVSWV9UQVJHRVQsCisJCQlnZXR0ZXh0X25vb3AoIlNldCB0byAnaW1tZWRp YXRlJyB0byBlbmQgcmVjb3ZlcnkgYXMgc29vbiBhcyBhIGNvbnNpc3RlbnQgc3RhdGUgaXMg cmVhY2hlZC4iKSwKKwkJCU5VTEwKKwkJfSwKKwkJJnJlY292ZXJ5X3RhcmdldF9zdHJpbmcs CisJCSIiLAorCQljaGVja19yZWNvdmVyeV90YXJnZXQsIGFzc2lnbl9yZWNvdmVyeV90YXJn ZXQsIE5VTEwKKwl9LAorCXsKKwkJeyJyZWNvdmVyeV90YXJnZXRfeGlkIiwgUEdDX1BPU1RN QVNURVIsIFdBTF9SRUNPVkVSWV9UQVJHRVQsCisJCQlnZXR0ZXh0X25vb3AoIlNldHMgdGhl IHRyYW5zYWN0aW9uIElEIHVwIHRvIHdoaWNoIHJlY292ZXJ5IHdpbGwgcHJvY2VlZC4iKSwK KwkJCU5VTEwKKwkJfSwKKwkJJnJlY292ZXJ5X3RhcmdldF94aWRfc3RyaW5nLAorCQkiIiwK KwkJY2hlY2tfcmVjb3ZlcnlfdGFyZ2V0X3hpZCwgYXNzaWduX3JlY292ZXJ5X3RhcmdldF94 aWQsIE5VTEwKKwl9LAorCXsKKwkJeyJyZWNvdmVyeV90YXJnZXRfdGltZSIsIFBHQ19QT1NU TUFTVEVSLCBXQUxfUkVDT1ZFUllfVEFSR0VULAorCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRo ZSB0aW1lIHN0YW1wIHVwIHRvIHdoaWNoIHJlY292ZXJ5IHdpbGwgcHJvY2VlZC4iKSwKKwkJ CU5VTEwKKwkJfSwKKwkJJnJlY292ZXJ5X3RhcmdldF90aW1lX3N0cmluZywKKwkJIiIsCisJ CWNoZWNrX3JlY292ZXJ5X3RhcmdldF90aW1lLCBhc3NpZ25fcmVjb3ZlcnlfdGFyZ2V0X3Rp bWUsIE5VTEwKKwl9LAorCXsKKwkJeyJyZWNvdmVyeV90YXJnZXRfbmFtZSIsIFBHQ19QT1NU TUFTVEVSLCBXQUxfUkVDT1ZFUllfVEFSR0VULAorCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRo ZSBuYW1lZCByZXN0b3JlIHBvaW50IHVwIHRvIHdoaWNoIHJlY292ZXJ5IHdpbGwgcHJvY2Vl ZC4iKSwKKwkJCU5VTEwKKwkJfSwKKwkJJnJlY292ZXJ5X3RhcmdldF9uYW1lX3N0cmluZywK KwkJIiIsCisJCWNoZWNrX3JlY292ZXJ5X3RhcmdldF9uYW1lLCBhc3NpZ25fcmVjb3Zlcnlf dGFyZ2V0X25hbWUsIE5VTEwKKwl9LAorCXsKKwkJeyJyZWNvdmVyeV90YXJnZXRfbHNuIiwg UEdDX1BPU1RNQVNURVIsIFdBTF9SRUNPVkVSWV9UQVJHRVQsCisJCQlnZXR0ZXh0X25vb3Ao IlNldHMgdGhlIExTTiBvZiB0aGUgd3JpdGUtYWhlYWQgbG9nIGxvY2F0aW9uIHVwIHRvIHdo aWNoIHJlY292ZXJ5IHdpbGwgcHJvY2VlZC4iKSwKKwkJCU5VTEwKKwkJfSwKKwkJJnJlY292 ZXJ5X3RhcmdldF9sc25fc3RyaW5nLAorCQkiIiwKKwkJY2hlY2tfcmVjb3ZlcnlfdGFyZ2V0 X2xzbiwgYXNzaWduX3JlY292ZXJ5X3RhcmdldF9sc24sIE5VTEwKKwl9LAorCisJeworCQl7 InByb21vdGVfdHJpZ2dlcl9maWxlIiwgUEdDX1BPU1RNQVNURVIsIFJFUExJQ0FUSU9OX1NU QU5EQlksCisJCQlnZXR0ZXh0X25vb3AoIlNwZWNpZmllcyBhIGZpbGUgbmFtZSB3aG9zZSBw cmVzZW5jZSBlbmRzIHJlY292ZXJ5IGluIHRoZSBzdGFuZGJ5LiIpLAorCQkJTlVMTAorCQl9 LAorCQkmUHJvbW90ZVRyaWdnZXJGaWxlLAorCQkiIiwKKwkJTlVMTCwgTlVMTCwgTlVMTAor CX0sCisKKwl7CisJCXsicHJpbWFyeV9jb25uaW5mbyIsIFBHQ19QT1NUTUFTVEVSLCBSRVBM SUNBVElPTl9TVEFOREJZLAorCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRoZSBjb25uZWN0aW9u IHN0cmluZyB0byBiZSB1c2VkIHRvIGNvbm5lY3QgdG8gdGhlIHNlbmRpbmcgc2VydmVyLiIp LAorCQkJTlVMTCwKKwkJCUdVQ19TVVBFUlVTRVJfT05MWQorCQl9LAorCQkmUHJpbWFyeUNv bm5JbmZvLAorCQkiIiwKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCisKKwl7CisJCXsicHJp bWFyeV9zbG90X25hbWUiLCBQR0NfUE9TVE1BU1RFUiwgUkVQTElDQVRJT05fU1RBTkRCWSwK KwkJCWdldHRleHRfbm9vcCgiU2V0cyB0aGUgbmFtZSBvZiB0aGUgcmVwbGljYXRpb24gc2xv dCB0byB1c2Ugb24gdGhlIHNlbmRpbmcgc2VydmVyLiIpLAorCQkJTlVMTAorCQl9LAorCQkm UHJpbWFyeVNsb3ROYW1lLAorCQkiIiwKKwkJY2hlY2tfcHJpbWFyeV9zbG90X25hbWUsIE5V TEwsIE5VTEwKKwl9LAorCiAJewogCQl7ImNsaWVudF9lbmNvZGluZyIsIFBHQ19VU0VSU0VU LCBDTElFTlRfQ09OTl9MT0NBTEUsCiAJCQlnZXR0ZXh0X25vb3AoIlNldHMgdGhlIGNsaWVu dCdzIGNoYXJhY3RlciBzZXQgZW5jb2RpbmcuIiksCkBAIC00MDcyLDYgKzQyMzYsMTYgQEAg c3RhdGljIHN0cnVjdCBjb25maWdfZW51bSBDb25maWd1cmVOYW1lc0VudW1bXSA9CiAJCU5V TEwsIE5VTEwsIE5VTEwKIAl9LAogCisJeworCQl7InJlY292ZXJ5X3RhcmdldF9hY3Rpb24i LCBQR0NfUE9TVE1BU1RFUiwgV0FMX1JFQ09WRVJZX1RBUkdFVCwKKwkJCWdldHRleHRfbm9v cCgiU2V0cyB0aGUgYWN0aW9uIHRvIHBlcmZvcm0gdXBvbiByZWFjaGluZyB0aGUgcmVjb3Zl cnkgdGFyZ2V0LiIpLAorCQkJTlVMTAorCQl9LAorCQkmcmVjb3ZlcnlUYXJnZXRBY3Rpb24s CisJCVJFQ09WRVJZX1RBUkdFVF9BQ1RJT05fUEFVU0UsIHJlY292ZXJ5X3RhcmdldF9hY3Rp b25fb3B0aW9ucywKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCisKIAl7CiAJCXsidHJhY2Vf cmVjb3ZlcnlfbWVzc2FnZXMiLCBQR0NfU0lHSFVQLCBERVZFTE9QRVJfT1BUSU9OUywKIAkJ CWdldHRleHRfbm9vcCgiRW5hYmxlcyBsb2dnaW5nIG9mIHJlY292ZXJ5LXJlbGF0ZWQgZGVi dWdnaW5nIGluZm9ybWF0aW9uLiIpLApAQCAtMTA4MTUsNCArMTA5ODksMjUxIEBAIHNob3df ZGF0YV9kaXJlY3RvcnlfbW9kZSh2b2lkKQogCXJldHVybiBidWY7CiB9CiAKK3N0YXRpYyBi b29sCitjaGVja19yZWNvdmVyeV90YXJnZXRfdGltZWxpbmUoY2hhciAqKm5ld3ZhbCwgdm9p ZCAqKmV4dHJhLCBHdWNTb3VyY2Ugc291cmNlKQoreworCVJlY292ZXJ5VGFyZ2V0VGltZUxp bmVHb2FsIHJ0dGcgPSBSRUNPVkVSWV9UQVJHRVRfVElNRUxJTkVfQ09OVFJPTEZJTEU7CisJ UmVjb3ZlcnlUYXJnZXRUaW1lTGluZUdvYWwgKm15ZXh0cmE7CisKKwlpZiAoc3RyY21wKCpu ZXd2YWwsICIiKSA9PSAwKQorCQlydHRnID0gUkVDT1ZFUllfVEFSR0VUX1RJTUVMSU5FX0NP TlRST0xGSUxFOworCWVsc2UgaWYgKHN0cmNtcCgqbmV3dmFsLCAibGF0ZXN0IikgPT0gMCkK KwkJcnR0ZyA9IFJFQ09WRVJZX1RBUkdFVF9USU1FTElORV9MQVRFU1Q7CisJZWxzZQorCXsK KwkJZXJybm8gPSAwOworCQlzdHJ0b3VsKCpuZXd2YWwsIE5VTEwsIDApOworCQlpZiAoZXJy bm8gPT0gRUlOVkFMIHx8IGVycm5vID09IEVSQU5HRSkKKwkJeworCQkJR1VDX2NoZWNrX2Vy cmRldGFpbCgicmVjb3ZlcnlfdGFyZ2V0X3RpbWVsaW5lIGlzIG5vdCBhIHZhbGlkIG51bWJl ciIpOworCQkJcmV0dXJuIGZhbHNlOworCQl9CisJCXJ0dGcgPSBSRUNPVkVSWV9UQVJHRVRf VElNRUxJTkVfTlVNRVJJQzsKKwl9CisKKwlteWV4dHJhID0gKFJlY292ZXJ5VGFyZ2V0VGlt ZUxpbmVHb2FsICopIGd1Y19tYWxsb2MoRVJST1IsIHNpemVvZihSZWNvdmVyeVRhcmdldFRp bWVMaW5lR29hbCkpOworCSpteWV4dHJhID0gcnR0ZzsKKwkqZXh0cmEgPSAodm9pZCAqKSBt eWV4dHJhOworCisJcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyB2b2lkCithc3NpZ25fcmVj b3ZlcnlfdGFyZ2V0X3RpbWVsaW5lKGNvbnN0IGNoYXIgKm5ld3ZhbCwgdm9pZCAqZXh0cmEp Cit7CisJcmVjb3ZlcnlUYXJnZXRUaW1lTGluZUdvYWwgPSAqKChSZWNvdmVyeVRhcmdldFRp bWVMaW5lR29hbCAqKSBleHRyYSk7CisJaWYgKHJlY292ZXJ5VGFyZ2V0VGltZUxpbmVHb2Fs ID09IFJFQ09WRVJZX1RBUkdFVF9USU1FTElORV9OVU1FUklDKQorCQlyZWNvdmVyeVRhcmdl dFRMSVJlcXVlc3RlZCA9IChUaW1lTGluZUlEKSBzdHJ0b3VsKG5ld3ZhbCwgTlVMTCwgMCk7 CisJZWxzZQorCQlyZWNvdmVyeVRhcmdldFRMSVJlcXVlc3RlZCA9IDA7Cit9CisKK3N0YXRp YyBib29sCitjaGVja19yZWNvdmVyeV90YXJnZXQoY2hhciAqKm5ld3ZhbCwgdm9pZCAqKmV4 dHJhLCBHdWNTb3VyY2Ugc291cmNlKQoreworCWlmIChzdHJjbXAoKm5ld3ZhbCwgImltbWVk aWF0ZSIpICE9IDAgJiYgc3RyY21wKCpuZXd2YWwsICIiKSAhPSAwKQorCXsKKwkJR1VDX2No ZWNrX2VycmRldGFpbCgiVGhlIG9ubHkgYWxsb3dlZCB2YWx1ZSBpcyBcImltbWVkaWF0ZVwi LiIpOworCQlyZXR1cm4gZmFsc2U7CisJfQorCXJldHVybiB0cnVlOworfQorCitzdGF0aWMg dm9pZAorYXNzaWduX3JlY292ZXJ5X3RhcmdldChjb25zdCBjaGFyICpuZXd2YWwsIHZvaWQg KmV4dHJhKQoreworCWlmIChuZXd2YWwgJiYgc3RyY21wKG5ld3ZhbCwgIiIpICE9IDApCisJ CXJlY292ZXJ5VGFyZ2V0ID0gUkVDT1ZFUllfVEFSR0VUX0lNTUVESUFURTsKKwllbHNlCisJ CS8qCisJCSAqIFJlc2V0IHJlY292ZXJ5VGFyZ2V0IHRvIFJFQ09WRVJZX1RBUkdFVF9VTlNF VCB0byBwcm9wZXIgaGFuZGxlIHVzZXIKKwkJICogc2V0dGluZyBtdWx0aXBsZSByZWNvdmVy eV90YXJnZXQgd2l0aCBibGFuayB2YWx1ZSBvbiBsYXN0LgorCQkgKi8KKwkJcmVjb3ZlcnlU YXJnZXQgPSBSRUNPVkVSWV9UQVJHRVRfVU5TRVQ7Cit9CisKK3N0YXRpYyBib29sCitjaGVj a19yZWNvdmVyeV90YXJnZXRfeGlkKGNoYXIgKipuZXd2YWwsIHZvaWQgKipleHRyYSwgR3Vj U291cmNlIHNvdXJjZSkKK3sKKwlpZiAoc3RyY21wKCpuZXd2YWwsICIiKSAhPSAwKQorCXsK KwkJVHJhbnNhY3Rpb25JZCB4aWQ7CisJCVRyYW5zYWN0aW9uSWQgKm15ZXh0cmE7CisKKwkJ ZXJybm8gPSAwOworCQl4aWQgPSAoVHJhbnNhY3Rpb25JZCkgc3RydG91bCgqbmV3dmFsLCBO VUxMLCAwKTsKKwkJaWYgKGVycm5vID09IEVJTlZBTCB8fCBlcnJubyA9PSBFUkFOR0UpCisJ CQlyZXR1cm4gZmFsc2U7CisKKwkJbXlleHRyYSA9IChUcmFuc2FjdGlvbklkICopIGd1Y19t YWxsb2MoRVJST1IsIHNpemVvZihUcmFuc2FjdGlvbklkKSk7CisJCSpteWV4dHJhID0geGlk OworCQkqZXh0cmEgPSAodm9pZCAqKSBteWV4dHJhOworCX0KKwlyZXR1cm4gdHJ1ZTsKK30K Kworc3RhdGljIHZvaWQKK2Fzc2lnbl9yZWNvdmVyeV90YXJnZXRfeGlkKGNvbnN0IGNoYXIg Km5ld3ZhbCwgdm9pZCAqZXh0cmEpCit7CisJaWYgKG5ld3ZhbCAmJiBzdHJjbXAobmV3dmFs LCAiIikgIT0gMCkKKwl7CisJCXJlY292ZXJ5VGFyZ2V0ID0gUkVDT1ZFUllfVEFSR0VUX1hJ RDsKKwkJcmVjb3ZlcnlUYXJnZXRYaWQgPSAqKChUcmFuc2FjdGlvbklkICopIGV4dHJhKTsK Kwl9CisJZWxzZQorCQlyZWNvdmVyeVRhcmdldCA9IFJFQ09WRVJZX1RBUkdFVF9VTlNFVDsK K30KKworc3RhdGljIGJvb2wKK2NoZWNrX3JlY292ZXJ5X3RhcmdldF90aW1lKGNoYXIgKipu ZXd2YWwsIHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJjZSkKK3sKKwlpZiAoc3RyY21w KCpuZXd2YWwsICIiKSAhPSAwKQorCXsKKwkJVGltZXN0YW1wVHogdGltZTsKKwkJVGltZXN0 YW1wVHogKm15ZXh0cmE7CisJCU1lbW9yeUNvbnRleHQgb2xkY29udGV4dCA9IEN1cnJlbnRN ZW1vcnlDb250ZXh0OworCisJCS8qIHJlamVjdCBzb21lIHNwZWNpYWwgdmFsdWVzICovCisJ CWlmIChzdHJjbXAoKm5ld3ZhbCwgImVwb2NoIikgPT0gMCB8fAorCQkJc3RyY21wKCpuZXd2 YWwsICJpbmZpbml0eSIpID09IDAgfHwKKwkJCXN0cmNtcCgqbmV3dmFsLCAiLWluZmluaXR5 IikgPT0gMCB8fAorCQkJc3RyY21wKCpuZXd2YWwsICJub3ciKSA9PSAwIHx8CisJCQlzdHJj bXAoKm5ld3ZhbCwgInRvZGF5IikgPT0gMCB8fAorCQkJc3RyY21wKCpuZXd2YWwsICJ0b21v cnJvdyIpID09IDAgfHwKKwkJCXN0cmNtcCgqbmV3dmFsLCAieWVzdGVyZGF5IikgPT0gMCkK KwkJeworCQkJcmV0dXJuIGZhbHNlOworCQl9CisKKwkJUEdfVFJZKCk7CisJCXsKKwkJCXRp bWUgPSBEYXR1bUdldFRpbWVzdGFtcFR6KERpcmVjdEZ1bmN0aW9uQ2FsbDModGltZXN0YW1w dHpfaW4sCisJCQkJCQkJCQkJCQkJCSAgIENTdHJpbmdHZXREYXR1bSgqbmV3dmFsKSwKKwkJ CQkJCQkJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShJbnZhbGlkT2lkKSwKKwkJCQkJCQkJ CQkJCQkJICAgSW50MzJHZXREYXR1bSgtMSkpKTsKKwkJfQorCQlQR19DQVRDSCgpOworCQl7 CisJCQlFcnJvckRhdGEgICplZGF0YTsKKworCQkJLyogU2F2ZSBlcnJvciBpbmZvICovCisJ CQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CisJCQllZGF0YSA9IENvcHlF cnJvckRhdGEoKTsKKwkJCUZsdXNoRXJyb3JTdGF0ZSgpOworCisJCQkvKiBQYXNzIHRoZSBl cnJvciBtZXNzYWdlICovCisJCQlHVUNfY2hlY2tfZXJyZGV0YWlsKCIlcyIsIGVkYXRhLT5t ZXNzYWdlKTsKKwkJCUZyZWVFcnJvckRhdGEoZWRhdGEpOworCQkJcmV0dXJuIGZhbHNlOwor CQl9CisJCVBHX0VORF9UUlkoKTsKKworCQlteWV4dHJhID0gKFRpbWVzdGFtcFR6ICopIGd1 Y19tYWxsb2MoRVJST1IsIHNpemVvZihUaW1lc3RhbXBUeikpOworCQkqbXlleHRyYSA9IHRp bWU7CisJCSpleHRyYSA9ICh2b2lkICopIG15ZXh0cmE7CisJfQorCXJldHVybiB0cnVlOwor fQorCitzdGF0aWMgdm9pZAorYXNzaWduX3JlY292ZXJ5X3RhcmdldF90aW1lKGNvbnN0IGNo YXIgKm5ld3ZhbCwgdm9pZCAqZXh0cmEpCit7CisJaWYgKG5ld3ZhbCAmJiBzdHJjbXAobmV3 dmFsLCAiIikgIT0gMCkKKwl7CisJCXJlY292ZXJ5VGFyZ2V0ID0gUkVDT1ZFUllfVEFSR0VU X1RJTUU7CisJCXJlY292ZXJ5VGFyZ2V0VGltZSA9ICooKFRpbWVzdGFtcFR6ICopIGV4dHJh KTsKKwl9CisJZWxzZQorCQlyZWNvdmVyeVRhcmdldCA9IFJFQ09WRVJZX1RBUkdFVF9VTlNF VDsKK30KKworc3RhdGljIGJvb2wKK2NoZWNrX3JlY292ZXJ5X3RhcmdldF9uYW1lKGNoYXIg KipuZXd2YWwsIHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJjZSkKK3sKKwkvKiBVc2Ug dGhlIHZhbHVlIG9mIG5ld3ZhbCBkaXJlY3RseSAqLworCWlmIChzdHJsZW4oKm5ld3ZhbCkg Pj0gTUFYRk5BTUVMRU4pCisJeworCQlHVUNfY2hlY2tfZXJyZGV0YWlsKCJyZWNvdmVyeV90 YXJnZXRfbmFtZSBpcyB0b28gbG9uZyAobWF4aW11bSAlZCBjaGFyYWN0ZXJzKSIsCisJCQkJ CQkJTUFYRk5BTUVMRU4gLSAxKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKwlyZXR1cm4gdHJ1 ZTsKK30KKworc3RhdGljIHZvaWQKK2Fzc2lnbl9yZWNvdmVyeV90YXJnZXRfbmFtZShjb25z dCBjaGFyICpuZXd2YWwsIHZvaWQgKmV4dHJhKQoreworCWlmIChuZXd2YWwgJiYgc3RyY21w KG5ld3ZhbCwgIiIpICE9IDApCisJeworCQlyZWNvdmVyeVRhcmdldCA9IFJFQ09WRVJZX1RB UkdFVF9OQU1FOworCQlyZWNvdmVyeVRhcmdldE5hbWUgPSAoY2hhciAqKSBuZXd2YWw7CisJ fQorCWVsc2UKKwkJcmVjb3ZlcnlUYXJnZXQgPSBSRUNPVkVSWV9UQVJHRVRfVU5TRVQ7Cit9 CisKK3N0YXRpYyBib29sCitjaGVja19yZWNvdmVyeV90YXJnZXRfbHNuKGNoYXIgKipuZXd2 YWwsIHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJjZSkKK3sKKwlpZiAoc3RyY21wKCpu ZXd2YWwsICIiKSAhPSAwKQorCXsKKwkJWExvZ1JlY1B0cglsc247CisJCVhMb2dSZWNQdHIg Km15ZXh0cmE7CisJCU1lbW9yeUNvbnRleHQgb2xkY29udGV4dCA9IEN1cnJlbnRNZW1vcnlD b250ZXh0OworCisJCS8qCisJCSAqIENvbnZlcnQgdGhlIExTTiBzdHJpbmcgZ2l2ZW4gYnkg dGhlIHVzZXIgdG8gWExvZ1JlY1B0ciBmb3JtLgorCQkgKi8KKwkJUEdfVFJZKCk7CisJCXsK KwkJCWxzbiA9IERhdHVtR2V0TFNOKERpcmVjdEZ1bmN0aW9uQ2FsbDMocGdfbHNuX2luLAor CQkJCQkJCQkJCQkJICBDU3RyaW5nR2V0RGF0dW0oKm5ld3ZhbCksCisJCQkJCQkJCQkJCQkg IE9iamVjdElkR2V0RGF0dW0oSW52YWxpZE9pZCksCisJCQkJCQkJCQkJCQkgIEludDMyR2V0 RGF0dW0oLTEpKSk7CisJCX0KKwkJUEdfQ0FUQ0goKTsKKwkJeworCQkJRXJyb3JEYXRhICAq ZWRhdGE7CisKKwkJCS8qIFNhdmUgZXJyb3IgaW5mbyAqLworCQkJTWVtb3J5Q29udGV4dFN3 aXRjaFRvKG9sZGNvbnRleHQpOworCQkJZWRhdGEgPSBDb3B5RXJyb3JEYXRhKCk7CisJCQlG bHVzaEVycm9yU3RhdGUoKTsKKworCQkJLyogUGFzcyB0aGUgZXJyb3IgbWVzc2FnZSAqLwor CQkJR1VDX2NoZWNrX2VycmRldGFpbCgiJXMiLCBlZGF0YS0+bWVzc2FnZSk7CisJCQlGcmVl RXJyb3JEYXRhKGVkYXRhKTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCQlQR19FTkRfVFJZ KCk7CisKKwkJbXlleHRyYSA9IChYTG9nUmVjUHRyICopIGd1Y19tYWxsb2MoRVJST1IsIHNp emVvZihYTG9nUmVjUHRyKSk7CisJCSpteWV4dHJhID0gbHNuOworCQkqZXh0cmEgPSAodm9p ZCAqKSBteWV4dHJhOworCX0KKwlyZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQKK2Fz c2lnbl9yZWNvdmVyeV90YXJnZXRfbHNuKGNvbnN0IGNoYXIgKm5ld3ZhbCwgdm9pZCAqZXh0 cmEpCit7CisJaWYgKG5ld3ZhbCAmJiBzdHJjbXAobmV3dmFsLCAiIikgIT0gMCkKKwl7CisJ CXJlY292ZXJ5VGFyZ2V0ID0gUkVDT1ZFUllfVEFSR0VUX0xTTjsKKwkJcmVjb3ZlcnlUYXJn ZXRMU04gPSAqKChYTG9nUmVjUHRyICopIGV4dHJhKTsKKwl9CisJZWxzZQorCQlyZWNvdmVy eVRhcmdldCA9IFJFQ09WRVJZX1RBUkdFVF9VTlNFVDsKK30KKworc3RhdGljIGJvb2wKK2No ZWNrX3ByaW1hcnlfc2xvdF9uYW1lKGNoYXIgKipuZXd2YWwsIHZvaWQgKipleHRyYSwgR3Vj U291cmNlIHNvdXJjZSkKK3sKKwlpZiAoKm5ld3ZhbCAmJiBzdHJjbXAoKm5ld3ZhbCwgIiIp ICE9IDAgJiYKKwkJIVJlcGxpY2F0aW9uU2xvdFZhbGlkYXRlTmFtZSgqbmV3dmFsLCBXQVJO SU5HKSkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIHRydWU7Cit9CisKICNpbmNsdWRl ICJndWMtZmlsZS5jIgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0 Z3Jlc3FsLmNvbmYuc2FtcGxlIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3Fs LmNvbmYuc2FtcGxlCmluZGV4IGFiMDYzZGFlNDEuLjgyNDhmM2M3MTkgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQorKysgYi9z cmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKQEAgLTIyNiw2 ICsyMjYsNDUgQEAKICNhcmNoaXZlX3RpbWVvdXQgPSAwCQkjIGZvcmNlIGEgbG9nZmlsZSBz ZWdtZW50IHN3aXRjaCBhZnRlciB0aGlzCiAJCQkJIyBudW1iZXIgb2Ygc2Vjb25kczsgMCBk aXNhYmxlcwogCisjIC0gQXJjaGl2ZSBSZWNvdmVyeSAtCisKKyMgVGhlc2UgYXJlIG9ubHkg dXNlZCBpbiByZWNvdmVyeSBtb2RlLgorCisjcmVzdG9yZV9jb21tYW5kID0gJycJCSMgY29t bWFuZCB0byB1c2UgdG8gcmVzdG9yZSBhbiBhcmNoaXZlZCBsb2dmaWxlIHNlZ21lbnQKKwkJ CQkjIHBsYWNlaG9sZGVyczogJXAgPSBwYXRoIG9mIGZpbGUgdG8gcmVzdG9yZQorCQkJCSMg ICAgICAgICAgICAgICAlZiA9IGZpbGUgbmFtZSBvbmx5CisJCQkJIyBlLmcuICdjcCAvbW50 L3NlcnZlci9hcmNoaXZlZGlyLyVmICVwJworCQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0 YXJ0KQorI2FyY2hpdmVfY2xlYW51cF9jb21tYW5kID0gJycJIyBjb21tYW5kIHRvIGV4ZWN1 dGUgYXQgZXZlcnkgcmVzdGFydHBvaW50CisJCQkJIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3Rh cnQpCisjcmVjb3ZlcnlfZW5kX2NvbW1hbmQgPSAnJwkjIGNvbW1hbmQgdG8gZXhlY3V0ZSBh dCBjb21wbGV0aW9uIG9mIHJlY292ZXJ5CisJCQkJIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3Rh cnQpCisKKyMgLSBSZWNvdmVyeSBUYXJnZXQgLQorCisjIFNldCB0aGVzZSBvbmx5IHdoZW4g cGVyZm9ybWluZyBhIHRhcmdldGVkIHJlY292ZXJ5LgorCisjcmVjb3ZlcnlfdGFyZ2V0ID0g JycJCSMgJ2ltbWVkaWF0ZScgdG8gZW5kIHJlY292ZXJ5IGFzIHNvb24gYXMgYQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjIGNvbnNpc3RlbnQgc3RhdGUgaXMgcmVhY2hl ZAorCQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQorI3JlY292ZXJ5X3RhcmdldF9u YW1lID0gJycJIyB0aGUgbmFtZWQgcmVzdG9yZSBwb2ludCB0byB3aGljaCByZWNvdmVyeSB3 aWxsIHByb2NlZWQKKwkJCQkjIChjaGFuZ2UgcmVxdWlyZXMgcmVzdGFydCkKKyNyZWNvdmVy eV90YXJnZXRfdGltZSA9ICcnCSMgdGhlIHRpbWUgc3RhbXAgdXAgdG8gd2hpY2ggcmVjb3Zl cnkgd2lsbCBwcm9jZWVkCisJCQkJIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCisjcmVj b3ZlcnlfdGFyZ2V0X3hpZCA9ICcnCSMgdGhlIHRyYW5zYWN0aW9uIElEIHVwIHRvIHdoaWNo IHJlY292ZXJ5IHdpbGwgcHJvY2VlZAorCQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0 KQorI3JlY292ZXJ5X3RhcmdldF9sc24gPSAnJwkjIHRoZSBXQUwgTFNOIHVwIHRvIHdoaWNo IHJlY292ZXJ5IHdpbGwgcHJvY2VlZAorCQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0 KQorI3JlY292ZXJ5X3RhcmdldF9pbmNsdXNpdmUgPSBvbiAjIFNwZWNpZmllcyB3aGV0aGVy IHRvIHN0b3A6CisJCQkJIyBqdXN0IGFmdGVyIHRoZSBzcGVjaWZpZWQgcmVjb3ZlcnkgdGFy Z2V0IChvbikKKwkJCQkjIGp1c3QgYmVmb3JlIHRoZSByZWNvdmVyeSB0YXJnZXQgKG9mZikK KwkJCQkjIChjaGFuZ2UgcmVxdWlyZXMgcmVzdGFydCkKKyNyZWNvdmVyeV90YXJnZXRfdGlt ZWxpbmUgPSAnJwkjIHVuc2V0IG1lYW5zIHJlYWQgZnJvbSBjb250cm9sIGZpbGUgKGRlZmF1 bHQpLAorCQkJCSMgb3Igc2V0IHRvICdsYXRlc3QnIG9yIHRpbWVsaW5lIElECisJCQkJIyAo Y2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCisjcmVjb3ZlcnlfdGFyZ2V0X2FjdGlvbiA9ICdw YXVzZScJIyAncGF1c2UnLCAncHJvbW90ZScsICdzaHV0ZG93bicKKwkJCQkjIChjaGFuZ2Ug cmVxdWlyZXMgcmVzdGFydCkKKwogCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIFJF UExJQ0FUSU9OCkBAIC0yNTksNiArMjk4LDEyIEBACiAKICMgVGhlc2Ugc2V0dGluZ3MgYXJl IGlnbm9yZWQgb24gYSBtYXN0ZXIgc2VydmVyLgogCisjcHJpbWFyeV9jb25uaW5mbyA9ICcn CQkJIyBjb25uZWN0aW9uIHN0cmluZyB0byBzZW5kaW5nIHNlcnZlcgorCQkJCQkjIChjaGFu Z2UgcmVxdWlyZXMgcmVzdGFydCkKKyNwcmltYXJ5X3Nsb3RfbmFtZSA9ICcnCQkJIyByZXBs aWNhdGlvbiBzbG90IG9uIHNlbmRpbmcgc2VydmVyCisJCQkJCSMgKGNoYW5nZSByZXF1aXJl cyByZXN0YXJ0KQorI3Byb21vdGVfdHJpZ2dlcl9maWxlID0gJycJCSMgZmlsZSBuYW1lIHdo b3NlIHByZXNlbmNlIGVuZHMgcmVjb3ZlcnkKKwkJCQkJIyAoY2hhbmdlIHJlcXVpcmVzIHJl c3RhcnQpCiAjaG90X3N0YW5kYnkgPSBvbgkJCSMgIm9mZiIgZGlzYWxsb3dzIHF1ZXJpZXMg ZHVyaW5nIHJlY292ZXJ5CiAJCQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQogI21h eF9zdGFuZGJ5X2FyY2hpdmVfZGVsYXkgPSAzMHMJIyBtYXggZGVsYXkgYmVmb3JlIGNhbmNl bGluZyBxdWVyaWVzCkBAIC0yNzYsNiArMzIxLDggQEAKIAkJCQkJIyBpbiBtaWxsaXNlY29u ZHM7IDAgZGlzYWJsZXMKICN3YWxfcmV0cmlldmVfcmV0cnlfaW50ZXJ2YWwgPSA1cwkjIHRp bWUgdG8gd2FpdCBiZWZvcmUgcmV0cnlpbmcgdG8KIAkJCQkJIyByZXRyaWV2ZSBXQUwgYWZ0 ZXIgYSBmYWlsZWQgYXR0ZW1wdAorI3JlY292ZXJ5X21pbl9hcHBseV9kZWxheSA9IDAJCSMg bWluaW11bSBkZWxheSBmb3IgYXBwbHlpbmcgY2hhbmdlcyBkdXJpbmcgcmVjb3ZlcnkKKwkJ CQkJIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCiAKICMgLSBTdWJzY3JpYmVycyAtCiAK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYXJjaGl2ZWNsZWFudXAvcGdfYXJjaGl2ZWNsZWFu dXAuYyBiL3NyYy9iaW4vcGdfYXJjaGl2ZWNsZWFudXAvcGdfYXJjaGl2ZWNsZWFudXAuYwpp bmRleCA1MTkwNGM2YzJhLi5jNjI0NzhkYmQ2IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2Fy Y2hpdmVjbGVhbnVwL3BnX2FyY2hpdmVjbGVhbnVwLmMKKysrIGIvc3JjL2Jpbi9wZ19hcmNo aXZlY2xlYW51cC9wZ19hcmNoaXZlY2xlYW51cC5jCkBAIC0yNjUsNyArMjY1LDcgQEAgdXNh Z2Uodm9pZCkKIAlwcmludGYoXygiICAteCBFWFQgICAgICAgICBjbGVhbiB1cCBmaWxlcyBp ZiB0aGV5IGhhdmUgdGhpcyBleHRlbnNpb25cbiIpKTsKIAlwcmludGYoXygiICAtPywgLS1o ZWxwICAgICBzaG93IHRoaXMgaGVscCwgdGhlbiBleGl0XG4iKSk7CiAJcHJpbnRmKF8oIlxu IgotCQkJICJGb3IgdXNlIGFzIGFyY2hpdmVfY2xlYW51cF9jb21tYW5kIGluIHJlY292ZXJ5 LmNvbmYgd2hlbiBzdGFuZGJ5X21vZGUgPSBvbjpcbiIKKwkJCSAiRm9yIHVzZSBhcyBhcmNo aXZlX2NsZWFudXBfY29tbWFuZCBpbiBwb3N0Z3Jlc3FsLmNvbmY6XG4iCiAJCQkgIiAgYXJj aGl2ZV9jbGVhbnVwX2NvbW1hbmQgPSAncGdfYXJjaGl2ZWNsZWFudXAgW09QVElPTl0uLi4g QVJDSElWRUxPQ0FUSU9OICUlcidcbiIKIAkJCSAiZS5nLlxuIgogCQkJICIgIGFyY2hpdmVf Y2xlYW51cF9jb21tYW5kID0gJ3BnX2FyY2hpdmVjbGVhbnVwIC9tbnQvc2VydmVyL2FyY2hp dmVyZGlyICUlcidcbiIpKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9w Z19iYXNlYmFja3VwLmMgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfYmFzZWJhY2t1cC5j CmluZGV4IGQ2ZmVmMzg3NjAuLmFmMWM0ZGU1OGYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf YmFzZWJhY2t1cC9wZ19iYXNlYmFja3VwLmMKKysrIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3Vw L3BnX2Jhc2ViYWNrdXAuYwpAQCAtMTMxLDcgKzEzMSw3IEBAIHN0YXRpYyBpbnQJaGFzX3hs b2dlbmRwdHIgPSAwOwogc3RhdGljIHZvbGF0aWxlIExPTkcgaGFzX3hsb2dlbmRwdHIgPSAw OwogI2VuZGlmCiAKLS8qIENvbnRlbnRzIG9mIHJlY292ZXJ5LmNvbmYgdG8gYmUgZ2VuZXJh dGVkICovCisvKiBDb250ZW50cyBvZiBjb25maWd1cmF0aW9uIGZpbGUgdG8gYmUgZ2VuZXJh dGVkICovCiBzdGF0aWMgUFFFeHBCdWZmZXIgcmVjb3Zlcnljb25mY29udGVudHMgPSBOVUxM OwogCiAvKiBGdW5jdGlvbiBoZWFkZXJzICovCkBAIC0zNDYsNyArMzQ2LDcgQEAgdXNhZ2Uo dm9pZCkKIAlwcmludGYoXygiICAtciwgLS1tYXgtcmF0ZT1SQVRFICAgIG1heGltdW0gdHJh bnNmZXIgcmF0ZSB0byB0cmFuc2ZlciBkYXRhIGRpcmVjdG9yeVxuIgogCQkJICIgICAgICAg ICAgICAgICAgICAgICAgICAgKGluIGtCL3MsIG9yIHVzZSBzdWZmaXggXCJrXCIgb3IgXCJN XCIpXG4iKSk7CiAJcHJpbnRmKF8oIiAgLVIsIC0td3JpdGUtcmVjb3ZlcnktY29uZlxuIgot CQkJICIgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUgcmVjb3ZlcnkuY29uZiBmb3Ig cmVwbGljYXRpb25cbiIpKTsKKwkJCSAiICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRl IGNvbmZpZ3VyYXRpb24gZm9yIHJlcGxpY2F0aW9uXG4iKSk7CiAJcHJpbnRmKF8oIiAgLVQs IC0tdGFibGVzcGFjZS1tYXBwaW5nPU9MRERJUj1ORVdESVJcbiIKIAkJCSAiICAgICAgICAg ICAgICAgICAgICAgICAgIHJlbG9jYXRlIHRhYmxlc3BhY2UgaW4gT0xERElSIHRvIE5FV0RJ UlxuIikpOwogCXByaW50ZihfKCIgICAgICAtLXdhbGRpcj1XQUxESVIgICAgbG9jYXRpb24g Zm9yIHRoZSB3cml0ZS1haGVhZCBsb2cgZGlyZWN0b3J5XG4iKSk7CkBAIC05NzQsNiArOTc0 LDkgQEAgUmVjZWl2ZVRhckZpbGUoUEdjb25uICpjb25uLCBQR3Jlc3VsdCAqcmVzLCBpbnQg cm93bnVtKQogCWJvb2wJCWJhc2V0YWJsZXNwYWNlID0gUFFnZXRpc251bGwocmVzLCByb3du dW0sIDApOwogCWJvb2wJCWluX3RhcmhkciA9IHRydWU7CiAJYm9vbAkJc2tpcF9maWxlID0g ZmFsc2U7CisJYm9vbAkJaXNfcG9zdGdyZXNxbF9hdXRvX2NvbmYgPSBmYWxzZTsKKwlib29s CQlmb3VuZF9wb3N0Z3Jlc3FsX2F1dG9fY29uZiA9IGZhbHNlOworCWludAkJCWZpbGVfcGFk ZGluZ19sZW4gPSAwOwogCXNpemVfdAkJdGFyaGRyc3ogPSAwOwogCXBnb2ZmX3QJCWZpbGVz eiA9IDA7CiAKQEAgLTExMTMsOCArMTExNiw4IEBAIFJlY2VpdmVUYXJGaWxlKFBHY29ubiAq Y29ubiwgUEdyZXN1bHQgKnJlcywgaW50IHJvd251bSkKIAkJewogCQkJLyoKIAkJCSAqIEVu ZCBvZiBjaHVuay4gSWYgcmVxdWVzdGVkLCBhbmQgdGhpcyBpcyB0aGUgYmFzZSB0YWJsZXNw YWNlLAotCQkJICogd3JpdGUgcmVjb3ZlcnkuY29uZiBpbnRvIHRoZSB0YXJmaWxlLiBXaGVu IGRvbmUsIGNsb3NlIHRoZSBmaWxlCi0JCQkgKiAoYnV0IG5vdCBzdGRvdXQpLgorCQkJICog d3JpdGUgY29uZmlndXJhdGlvbiBmaWxlIGludG8gdGhlIHRhcmZpbGUuIFdoZW4gZG9uZSwg Y2xvc2UgdGhlCisJCQkgKiBmaWxlIChidXQgbm90IHN0ZG91dCkuCiAJCQkgKgogCQkJICog QWxzbywgd3JpdGUgdHdvIGNvbXBsZXRlbHkgZW1wdHkgYmxvY2tzIGF0IHRoZSBlbmQgb2Yg dGhlIHRhcgogCQkJICogZmlsZSwgYXMgcmVxdWlyZWQgYnkgc29tZSB0YXIgcHJvZ3JhbXMu CkBAIC0xMTI2LDE5ICsxMTI5LDMxIEBAIFJlY2VpdmVUYXJGaWxlKFBHY29ubiAqY29ubiwg UEdyZXN1bHQgKnJlcywgaW50IHJvd251bSkKIAkJCWlmIChiYXNldGFibGVzcGFjZSAmJiB3 cml0ZXJlY292ZXJ5Y29uZikKIAkJCXsKIAkJCQljaGFyCQloZWFkZXJbNTEyXTsKLQkJCQlp bnQJCQlwYWRkaW5nOwogCi0JCQkJdGFyQ3JlYXRlSGVhZGVyKGhlYWRlciwgInJlY292ZXJ5 LmNvbmYiLCBOVUxMLAotCQkJCQkJCQlyZWNvdmVyeWNvbmZjb250ZW50cy0+bGVuLAorCQkJ CWlmICghZm91bmRfcG9zdGdyZXNxbF9hdXRvX2NvbmYpCisJCQkJeworCQkJCQlpbnQJCQlw YWRkaW5nOworCisJCQkJCXRhckNyZWF0ZUhlYWRlcihoZWFkZXIsICJwb3N0Z3Jlc3FsLmF1 dG8uY29uZiIsIE5VTEwsCisJCQkJCQkJCQlyZWNvdmVyeWNvbmZjb250ZW50cy0+bGVuLAor CQkJCQkJCQkJcGdfZmlsZV9jcmVhdGVfbW9kZSwgMDQwMDAsIDAyMDAwLAorCQkJCQkJCQkJ dGltZShOVUxMKSk7CisKKwkJCQkJcGFkZGluZyA9ICgocmVjb3Zlcnljb25mY29udGVudHMt PmxlbiArIDUxMSkgJiB+NTExKSAtIHJlY292ZXJ5Y29uZmNvbnRlbnRzLT5sZW47CisKKwkJ CQkJV1JJVEVfVEFSX0RBVEEoaGVhZGVyLCBzaXplb2YoaGVhZGVyKSk7CisJCQkJCVdSSVRF X1RBUl9EQVRBKHJlY292ZXJ5Y29uZmNvbnRlbnRzLT5kYXRhLCByZWNvdmVyeWNvbmZjb250 ZW50cy0+bGVuKTsKKwkJCQkJaWYgKHBhZGRpbmcpCisJCQkJCQlXUklURV9UQVJfREFUQSh6 ZXJvYnVmLCBwYWRkaW5nKTsKKwkJCQl9CisKKwkJCQl0YXJDcmVhdGVIZWFkZXIoaGVhZGVy LCAic3RhbmRieS5zaWduYWwiLCBOVUxMLAorCQkJCQkJCQkwLAkvKiB6ZXJvLWxlbmd0aCBm aWxlICovCiAJCQkJCQkJCXBnX2ZpbGVfY3JlYXRlX21vZGUsIDA0MDAwLCAwMjAwMCwKIAkJ CQkJCQkJdGltZShOVUxMKSk7CiAKLQkJCQlwYWRkaW5nID0gKChyZWNvdmVyeWNvbmZjb250 ZW50cy0+bGVuICsgNTExKSAmIH41MTEpIC0gcmVjb3Zlcnljb25mY29udGVudHMtPmxlbjsK LQogCQkJCVdSSVRFX1RBUl9EQVRBKGhlYWRlciwgc2l6ZW9mKGhlYWRlcikpOwotCQkJCVdS SVRFX1RBUl9EQVRBKHJlY292ZXJ5Y29uZmNvbnRlbnRzLT5kYXRhLCByZWNvdmVyeWNvbmZj b250ZW50cy0+bGVuKTsKLQkJCQlpZiAocGFkZGluZykKLQkJCQkJV1JJVEVfVEFSX0RBVEEo emVyb2J1ZiwgcGFkZGluZyk7CisJCQkJV1JJVEVfVEFSX0RBVEEoemVyb2J1ZiwgNTExKTsK IAkJCX0KIAogCQkJLyogMiAqIDUxMiBieXRlcyBlbXB0eSBkYXRhIGF0IGVuZCBvZiBmaWxl ICovCkBAIC0xMTgyLDggKzExOTcsOCBAQCBSZWNlaXZlVGFyRmlsZShQR2Nvbm4gKmNvbm4s IFBHcmVzdWx0ICpyZXMsIGludCByb3dudW0pCiAJCWlmICghd3JpdGVyZWNvdmVyeWNvbmYg fHwgIWJhc2V0YWJsZXNwYWNlKQogCQl7CiAJCQkvKgotCQkJICogV2hlbiBub3Qgd3JpdGlu ZyByZWNvdmVyeS5jb25mLCBvciB3aGVuIG5vdCB3b3JraW5nIG9uIHRoZSBiYXNlCi0JCQkg KiB0YWJsZXNwYWNlLCB3ZSBuZXZlciBoYXZlIHRvIGxvb2sgZm9yIGFuIGV4aXN0aW5nIHJl Y292ZXJ5LmNvbmYKKwkJCSAqIFdoZW4gbm90IHdyaXRpbmcgY29uZmlnIGZpbGUsIG9yIHdo ZW4gbm90IHdvcmtpbmcgb24gdGhlIGJhc2UKKwkJCSAqIHRhYmxlc3BhY2UsIHdlIG5ldmVy IGhhdmUgdG8gbG9vayBmb3IgYW4gZXhpc3RpbmcgY29uZmlndXJhdGlvbgogCQkJICogZmls ZSBpbiB0aGUgc3RyZWFtLgogCQkJICovCiAJCQlXUklURV9UQVJfREFUQShjb3B5YnVmLCBy KTsKQEAgLTExOTEsNyArMTIwNiw3IEBAIFJlY2VpdmVUYXJGaWxlKFBHY29ubiAqY29ubiwg UEdyZXN1bHQgKnJlcywgaW50IHJvd251bSkKIAkJZWxzZQogCQl7CiAJCQkvKgotCQkJICog TG9vayBmb3IgYSByZWNvdmVyeS5jb25mIGluIHRoZSBleGlzdGluZyB0YXIgc3RyZWFtLiBJ ZiBpdCdzCisJCQkgKiBMb29rIGZvciBhIGNvbmZpZyBmaWxlIGluIHRoZSBleGlzdGluZyB0 YXIgc3RyZWFtLiBJZiBpdCdzCiAJCQkgKiB0aGVyZSwgd2UgbXVzdCBza2lwIGl0IHNvIHdl IGNhbiBsYXRlciBvdmVyd3JpdGUgaXQgd2l0aCBvdXIKIAkJCSAqIG93biB2ZXJzaW9uIG9m IHRoZSBmaWxlLgogCQkJICoKQEAgLTEyMzUsMjkgKzEyNTAsNDYgQEAgUmVjZWl2ZVRhckZp bGUoUEdjb25uICpjb25uLCBQR3Jlc3VsdCAqcmVzLCBpbnQgcm93bnVtKQogCQkJCQl7CiAJ CQkJCQkvKgogCQkJCQkJICogV2UgaGF2ZSB0aGUgY29tcGxldGUgaGVhZGVyIHN0cnVjdHVy ZSBpbiB0YXJoZHIsCi0JCQkJCQkgKiBsb29rIGF0IHRoZSBmaWxlIG1ldGFkYXRhOiAtIHRo ZSBzdWJzZXF1ZW50IGZpbGUKLQkJCQkJCSAqIGNvbnRlbnRzIGhhdmUgdG8gYmUgc2tpcHBl ZCBpZiB0aGUgZmlsZW5hbWUgaXMKLQkJCQkJCSAqIHJlY292ZXJ5LmNvbmYgLSBmaW5kIG91 dCB0aGUgc2l6ZSBvZiB0aGUgZmlsZQotCQkJCQkJICogcGFkZGVkIHRvIHRoZSBuZXh0IG11 bHRpcGxlIG9mIDUxMgorCQkJCQkJICogbG9vayBhdCB0aGUgZmlsZSBtZXRhZGF0YTogd2Ug bWF5IHdhbnQgYXBwZW5kCisJCQkJCQkgKiByZWNvdmVyeSBpbmZvIGludG8gcG9zdGdyZXNx bC5hdXRvLmNvbmYgYW5kIHNraXAKKwkJCQkJCSAqIHN0YW5kYnkuc2lnbmFsIGZpbGUuICBJ biBib3RoIGNhc2VzIHdlIG11c3QKKwkJCQkJCSAqIGNhbGN1bGF0ZSB0YXIgcGFkZGluZwog CQkJCQkJICovCi0JCQkJCQlpbnQJCQlwYWRkaW5nOwotCi0JCQkJCQlza2lwX2ZpbGUgPSAo c3RyY21wKCZ0YXJoZHJbMF0sICJyZWNvdmVyeS5jb25mIikgPT0gMCk7CisJCQkJCQlza2lw X2ZpbGUgPSAoc3RyY21wKCZ0YXJoZHJbMF0sICJzdGFuZGJ5LnNpZ25hbCIpID09IDApOwor CQkJCQkJaXNfcG9zdGdyZXNxbF9hdXRvX2NvbmYgPSAoc3RyY21wKCZ0YXJoZHJbMF0sICJw b3N0Z3Jlc3FsLmF1dG8uY29uZiIpID09IDApOwogCiAJCQkJCQlmaWxlc3ogPSByZWFkX3Rh cl9udW1iZXIoJnRhcmhkclsxMjRdLCAxMik7CisJCQkJCQlmaWxlX3BhZGRpbmdfbGVuID0g KChmaWxlc3ogKyA1MTEpICYgfjUxMSkgLSBmaWxlc3o7CisKKwkJCQkJCWlmIChpc19wb3N0 Z3Jlc3FsX2F1dG9fY29uZiAmJiB3cml0ZXJlY292ZXJ5Y29uZikKKwkJCQkJCXsKKwkJCQkJ CQkvKiByZXBsYWNlIHRhciBoZWFkZXIgKi8KKwkJCQkJCQljaGFyCQloZWFkZXJbNTEyXTsK IAotCQkJCQkJcGFkZGluZyA9ICgoZmlsZXN6ICsgNTExKSAmIH41MTEpIC0gZmlsZXN6Owot CQkJCQkJZmlsZXN6ICs9IHBhZGRpbmc7CisJCQkJCQkJdGFyQ3JlYXRlSGVhZGVyKGhlYWRl ciwgInBvc3RncmVzcWwuYXV0by5jb25mIiwgTlVMTCwKKwkJCQkJCQkJCQkJZmlsZXN6ICsg cmVjb3Zlcnljb25mY29udGVudHMtPmxlbiwKKwkJCQkJCQkJCQkJcGdfZmlsZV9jcmVhdGVf bW9kZSwgMDQwMDAsIDAyMDAwLAorCQkJCQkJCQkJCQl0aW1lKE5VTEwpKTsKKworCQkJCQkJ CVdSSVRFX1RBUl9EQVRBKGhlYWRlciwgc2l6ZW9mKGhlYWRlcikpOworCQkJCQkJfQorCQkJ CQkJZWxzZQorCQkJCQkJeworCQkJCQkJCS8qIGNvcHkgc3RyZWFtIHdpdGggcGFkZGluZyAq LworCQkJCQkJCWZpbGVzeiArPSBmaWxlX3BhZGRpbmdfbGVuOworCisJCQkJCQkJaWYgKCFz a2lwX2ZpbGUpCisJCQkJCQkJeworCQkJCQkJCQkvKgorCQkJCQkJCQkgKiBJZiB3ZSdyZSBu b3Qgc2tpcHBpbmcgdGhlIGZpbGUsIHdyaXRlIHRoZQorCQkJCQkJCQkgKiB0YXIgaGVhZGVy IHVubW9kaWZpZWQuCisJCQkJCQkJCSAqLworCQkJCQkJCQlXUklURV9UQVJfREFUQSh0YXJo ZHIsIDUxMik7CisJCQkJCQkJfQorCQkJCQkJfQogCiAJCQkJCQkvKiBOZXh0IHBhcnQgaXMg dGhlIGZpbGUsIG5vdCB0aGUgaGVhZGVyICovCiAJCQkJCQlpbl90YXJoZHIgPSBmYWxzZTsK LQotCQkJCQkJLyoKLQkJCQkJCSAqIElmIHdlJ3JlIG5vdCBza2lwcGluZyB0aGUgZmlsZSwg d3JpdGUgdGhlIHRhcgotCQkJCQkJICogaGVhZGVyIHVubW9kaWZpZWQuCi0JCQkJCQkgKi8K LQkJCQkJCWlmICghc2tpcF9maWxlKQotCQkJCQkJCVdSSVRFX1RBUl9EQVRBKHRhcmhkciwg NTEyKTsKIAkJCQkJfQogCQkJCX0KIAkJCQllbHNlCkBAIC0xMjgxLDYgKzEzMTMsMzIgQEAg UmVjZWl2ZVRhckZpbGUoUEdjb25uICpjb25uLCBQR3Jlc3VsdCAqcmVzLCBpbnQgcm93bnVt KQogCQkJCQkJcG9zICs9IGJ5dGVzMndyaXRlOwogCQkJCQkJZmlsZXN6IC09IGJ5dGVzMndy aXRlOwogCQkJCQl9CisJCQkJCWVsc2UgaWYgKGlzX3Bvc3RncmVzcWxfYXV0b19jb25mICYm IHdyaXRlcmVjb3Zlcnljb25mKQorCQkJCQl7CisJCQkJCQkvKiBhcHBlbmQgcmVjb3Zlcnkg Y29uZmlnIHRvIHBvc3RncmVzcWwuYXV0by5jb25mICovCisJCQkJCQlpbnQJCQlwYWRkaW5n OworCQkJCQkJaW50CQkJdGFpbHNpemU7CisKKwkJCQkJCXRhaWxzaXplID0gKDUxMiAtIGZp bGVfcGFkZGluZ19sZW4pICsgcmVjb3Zlcnljb25mY29udGVudHMtPmxlbjsKKwkJCQkJCXBh ZGRpbmcgPSAoKHRhaWxzaXplICsgNTExKSAmIH41MTEpIC0gdGFpbHNpemU7CisKKwkJCQkJ CVdSSVRFX1RBUl9EQVRBKHJlY292ZXJ5Y29uZmNvbnRlbnRzLT5kYXRhLCByZWNvdmVyeWNv bmZjb250ZW50cy0+bGVuKTsKKworCQkJCQkJaWYgKHBhZGRpbmcpCisJCQkJCQl7CisJCQkJ CQkJY2hhcgkJemVyb2J1Zls1MTJdOworCisJCQkJCQkJTWVtU2V0KHplcm9idWYsIDAsIHNp emVvZih6ZXJvYnVmKSk7CisJCQkJCQkJV1JJVEVfVEFSX0RBVEEoemVyb2J1ZiwgcGFkZGlu Zyk7CisJCQkJCQl9CisKKwkJCQkJCS8qIHNraXAgb3JpZ2luYWwgZmlsZSBwYWRkaW5nICov CisJCQkJCQlpc19wb3N0Z3Jlc3FsX2F1dG9fY29uZiA9IGZhbHNlOworCQkJCQkJc2tpcF9m aWxlID0gdHJ1ZTsKKwkJCQkJCWZpbGVzeiArPSBmaWxlX3BhZGRpbmdfbGVuOworCisJCQkJ CQlmb3VuZF9wb3N0Z3Jlc3FsX2F1dG9fY29uZiA9IHRydWU7CisJCQkJCX0KIAkJCQkJZWxz ZQogCQkJCQl7CiAJCQkJCQkvKgpAQCAtMTI4OSw2ICsxMzQ3LDcgQEAgUmVjZWl2ZVRhckZp bGUoUEdjb25uICpjb25uLCBQR3Jlc3VsdCAqcmVzLCBpbnQgcm93bnVtKQogCQkJCQkJICov CiAJCQkJCQlpbl90YXJoZHIgPSB0cnVlOwogCQkJCQkJc2tpcF9maWxlID0gZmFsc2U7CisJ CQkJCQlpc19wb3N0Z3Jlc3FsX2F1dG9fY29uZiA9IGZhbHNlOwogCQkJCQkJdGFyaGRyc3og PSAwOwogCQkJCQkJZmlsZXN6ID0gMDsKIAkJCQkJfQpAQCAtMTYxNCw3ICsxNjczLDcgQEAg ZXNjYXBlX3F1b3Rlcyhjb25zdCBjaGFyICpzcmMpCiB9CiAKIC8qCi0gKiBDcmVhdGUgYSBy ZWNvdmVyeS5jb25mIGZpbGUgaW4gbWVtb3J5IHVzaW5nIGEgUFFFeHBCdWZmZXIKKyAqIENy ZWF0ZSBhIGNvbmZpZ3VyYXRpb24gZmlsZSBpbiBtZW1vcnkgdXNpbmcgYSBQUUV4cEJ1ZmZl cgogICovCiBzdGF0aWMgdm9pZAogR2VuZXJhdGVSZWNvdmVyeUNvbmYoUEdjb25uICpjb25u KQpAQCAtMTYzOCw4ICsxNjk3LDYgQEAgR2VuZXJhdGVSZWNvdmVyeUNvbmYoUEdjb25uICpj b25uKQogCQlkaXNjb25uZWN0X2FuZF9leGl0KDEpOwogCX0KIAotCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKHJlY292ZXJ5Y29uZmNvbnRlbnRzLCAic3RhbmRieV9tb2RlID0gJ29uJ1xuIik7 Ci0KIAlpbml0UFFFeHBCdWZmZXIoJmNvbm5pbmZvX2J1Zik7CiAJZm9yIChvcHRpb24gPSBj b25uT3B0aW9uczsgb3B0aW9uICYmIG9wdGlvbi0+a2V5d29yZDsgb3B0aW9uKyspCiAJewpA QCAtMTY5OCw4ICsxNzU1LDkgQEAgR2VuZXJhdGVSZWNvdmVyeUNvbmYoUEdjb25uICpjb25u KQogCiAKIC8qCi0gKiBXcml0ZSBhIHJlY292ZXJ5LmNvbmYgZmlsZSBpbnRvIHRoZSBkaXJl Y3Rvcnkgc3BlY2lmaWVkIGluIGJhc2VkaXIsCisgKiBXcml0ZSB0aGUgY29uZmlndXJhdGlv biBmaWxlIGludG8gdGhlIGRpcmVjdG9yeSBzcGVjaWZpZWQgaW4gYmFzZWRpciwKICAqIHdp dGggdGhlIGNvbnRlbnRzIGFscmVhZHkgY29sbGVjdGVkIGluIG1lbW9yeS4KKyAqIFRoZW4g d3JpdGUgdGhlIHNpZ25hbCBmaWxlIGludG8gdGhlIGJhc2VkaXIgYWxzby4KICAqLwogc3Rh dGljIHZvaWQKIFdyaXRlUmVjb3ZlcnlDb25mKHZvaWQpCkBAIC0xNzA3LDEyICsxNzY1LDEy IEBAIFdyaXRlUmVjb3ZlcnlDb25mKHZvaWQpCiAJY2hhcgkJZmlsZW5hbWVbTUFYUEdQQVRI XTsKIAlGSUxFCSAgICpjZjsKIAotCXNwcmludGYoZmlsZW5hbWUsICIlcy9yZWNvdmVyeS5j b25mIiwgYmFzZWRpcik7CisJc25wcmludGYoZmlsZW5hbWUsIE1BWFBHUEFUSCwgIiVzLyVz IiwgYmFzZWRpciwgInBvc3RncmVzcWwuYXV0by5jb25mIik7CiAKLQljZiA9IGZvcGVuKGZp bGVuYW1lLCAidyIpOworCWNmID0gZm9wZW4oZmlsZW5hbWUsICJhIik7CiAJaWYgKGNmID09 IE5VTEwpCiAJewotCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IGNvdWxkIG5vdCBjcmVhdGUg ZmlsZSBcIiVzXCI6ICVzXG4iKSwgcHJvZ25hbWUsIGZpbGVuYW1lLCBzdHJlcnJvcihlcnJu bykpOworCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IGNvdWxkIG5vdCBvcGVuIGZpbGUgXCIl c1wiOiAlc1xuIiksIHByb2duYW1lLCBmaWxlbmFtZSwgc3RyZXJyb3IoZXJybm8pKTsKIAkJ ZGlzY29ubmVjdF9hbmRfZXhpdCgxKTsKIAl9CiAKQEAgLTE3MjUsNiArMTc4MywxNiBAQCBX cml0ZVJlY292ZXJ5Q29uZih2b2lkKQogCX0KIAogCWZjbG9zZShjZik7CisKKwlzbnByaW50 ZihmaWxlbmFtZSwgTUFYUEdQQVRILCAiJXMvJXMiLCBiYXNlZGlyLCAic3RhbmRieS5zaWdu YWwiKTsKKwljZiA9IGZvcGVuKGZpbGVuYW1lLCAidyIpOworCWlmIChjZiA9PSBOVUxMKQor CXsKKwkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBjb3VsZCBub3QgY3JlYXRlIGZpbGUgXCIl c1wiOiAlc1xuIiksIHByb2duYW1lLCBmaWxlbmFtZSwgc3RyZXJyb3IoZXJybm8pKTsKKwkJ ZGlzY29ubmVjdF9hbmRfZXhpdCgxKTsKKwl9CisKKwlmY2xvc2UoY2YpOwogfQogCiAKQEAg LTE3ODAsNyArMTg0OCw3IEBAIEJhc2VCYWNrdXAodm9pZCkKIAl9CiAKIAkvKgotCSAqIEJ1 aWxkIGNvbnRlbnRzIG9mIHJlY292ZXJ5LmNvbmYgaWYgcmVxdWVzdGVkCisJICogQnVpbGQg Y29udGVudHMgb2YgY29uZmlndXJhdGlvbiBmaWxlIGlmIHJlcXVlc3RlZAogCSAqLwogCWlm ICh3cml0ZXJlY292ZXJ5Y29uZikKIAkJR2VuZXJhdGVSZWNvdmVyeUNvbmYoY29ubik7CkBA IC0yMDk0LDcgKzIxNjIsNyBAQCBCYXNlQmFja3VwKHZvaWQpCiAjZW5kaWYKIAl9CiAKLQkv KiBGcmVlIHRoZSByZWNvdmVyeS5jb25mIGNvbnRlbnRzICovCisJLyogRnJlZSB0aGUgY29u ZmlndXJhdGlvbiBmaWxlIGNvbnRlbnRzICovCiAJZGVzdHJveVBRRXhwQnVmZmVyKHJlY292 ZXJ5Y29uZmNvbnRlbnRzKTsKIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2Jhc2Vi YWNrdXAvdC8wMTBfcGdfYmFzZWJhY2t1cC5wbCBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC90 LzAxMF9wZ19iYXNlYmFja3VwLnBsCmluZGV4IDIyMTFkOTBjNmYuLjNlMWMzODYzYzQgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC90LzAxMF9wZ19iYXNlYmFja3VwLnBs CisrKyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC90LzAxMF9wZ19iYXNlYmFja3VwLnBsCkBA IC0zNTgsMTkgKzM1OCwxNiBAQAogCiAkbm9kZS0+Y29tbWFuZF9vayhbICdwZ19iYXNlYmFj a3VwJywgJy1EJywgIiR0ZW1wZGlyL2JhY2t1cFIiLCAnLVInIF0sCiAJJ3BnX2Jhc2ViYWNr dXAgLVIgcnVucycpOwotb2soLWYgIiR0ZW1wZGlyL2JhY2t1cFIvcmVjb3ZlcnkuY29uZiIs ICdyZWNvdmVyeS5jb25mIHdhcyBjcmVhdGVkJyk7Ci1teSAkcmVjb3ZlcnlfY29uZiA9IHNs dXJwX2ZpbGUgIiR0ZW1wZGlyL2JhY2t1cFIvcmVjb3ZlcnkuY29uZiI7CitvaygtZiAiJHRl bXBkaXIvYmFja3VwUi9wb3N0Z3Jlc3FsLmF1dG8uY29uZiIsICdwb3N0Z3Jlc3FsLmF1dG8u Y29uZiBleGlzdHMnKTsKK29rKC1mICIkdGVtcGRpci9iYWNrdXBSL3N0YW5kYnkuc2lnbmFs IiwgJ3N0YW5kYnkuc2lnbmFsIHdhcyBjcmVhdGVkJyk7CitteSAkcmVjb3ZlcnlfY29uZiA9 IHNsdXJwX2ZpbGUgIiR0ZW1wZGlyL2JhY2t1cFIvcG9zdGdyZXNxbC5hdXRvLmNvbmYiOwog cm10cmVlKCIkdGVtcGRpci9iYWNrdXBSIik7CiAKIG15ICRwb3J0ID0gJG5vZGUtPnBvcnQ7 Ci1saWtlKAotCSRyZWNvdmVyeV9jb25mLAotCXFyL15zdGFuZGJ5X21vZGUgPSAnb24nXG4v bSwKLQkncmVjb3ZlcnkuY29uZiBzZXRzIHN0YW5kYnlfbW9kZScpOwogbGlrZSgKIAkkcmVj b3ZlcnlfY29uZiwKIAlxci9ecHJpbWFyeV9jb25uaW5mbyA9ICcuKnBvcnQ9JHBvcnQuKidc bi9tLAotCSdyZWNvdmVyeS5jb25mIHNldHMgcHJpbWFyeV9jb25uaW5mbycpOworCSdwb3N0 Z3Jlc3FsLmF1dG8uY29uZiBzZXRzIHByaW1hcnlfY29ubmluZm8nKTsKIAogJG5vZGUtPmNv bW1hbmRfb2soCiAJWyAncGdfYmFzZWJhY2t1cCcsICctRCcsICIkdGVtcGRpci9iYWNrdXB4 ZCIgXSwKQEAgLTQ3OCw5ICs0NzUsOSBAQAogCV0sCiAJJ3BnX2Jhc2ViYWNrdXAgd2l0aCBy ZXBsaWNhdGlvbiBzbG90IGFuZCAtUiBydW5zJyk7CiBsaWtlKAotCXNsdXJwX2ZpbGUoIiR0 ZW1wZGlyL2JhY2t1cHhzX3NsX1IvcmVjb3ZlcnkuY29uZiIpLAorCXNsdXJwX2ZpbGUoIiR0 ZW1wZGlyL2JhY2t1cHhzX3NsX1IvcG9zdGdyZXNxbC5hdXRvLmNvbmYiKSwKIAlxci9ecHJp bWFyeV9zbG90X25hbWUgPSAnc2xvdDEnXG4vbSwKLQkncmVjb3ZlcnkuY29uZiBzZXRzIHBy aW1hcnlfc2xvdF9uYW1lJyk7CisJJ3JlY292ZXJ5IGNvbmYgZmlsZSBzZXRzIHByaW1hcnlf c2xvdF9uYW1lJyk7CiAKIG15ICRjaGVja3N1bSA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgJ1NIT1cgZGF0YV9jaGVja3N1bXM7Jyk7CiBpcygkY2hlY2tzdW0sICdvbicsICdj aGVja3N1bXMgYXJlIGVuYWJsZWQnKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfcmV3aW5k L1Jld2luZFRlc3QucG0gYi9zcmMvYmluL3BnX3Jld2luZC9SZXdpbmRUZXN0LnBtCmluZGV4 IDFkY2U1NmQwMzUuLjNkMDdkYTVkOTQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfcmV3aW5k L1Jld2luZFRlc3QucG0KKysrIGIvc3JjL2Jpbi9wZ19yZXdpbmQvUmV3aW5kVGVzdC5wbQpA QCAtMTU5LDEyICsxNTksMTMgQEAgc3ViIGNyZWF0ZV9zdGFuZGJ5CiAJbXkgJGNvbm5zdHJf bWFzdGVyID0gJG5vZGVfbWFzdGVyLT5jb25uc3RyKCk7CiAKIAkkbm9kZV9zdGFuZGJ5LT5h cHBlbmRfY29uZigKLQkJInJlY292ZXJ5LmNvbmYiLCBxcSgKKwkJInBvc3RncmVzcWwuY29u ZiIsIHFxKAogcHJpbWFyeV9jb25uaW5mbz0nJGNvbm5zdHJfbWFzdGVyIGFwcGxpY2F0aW9u X25hbWU9cmV3aW5kX3N0YW5kYnknCi1zdGFuZGJ5X21vZGU9b24KIHJlY292ZXJ5X3Rhcmdl dF90aW1lbGluZT0nbGF0ZXN0JwogKSk7CiAKKwkkbm9kZV9zdGFuZGJ5LT5zZXRfc3RhbmRi eV9tb2RlKCk7CisKIAkjIFN0YXJ0IHN0YW5kYnkKIAkkbm9kZV9zdGFuZGJ5LT5zdGFydDsK IApAQCAtMjcwLDEyICsyNzEsMTMgQEAgc3ViIHJ1bl9wZ19yZXdpbmQKIAkjIFBsdWctaW4g cmV3b3VuZCBub2RlIHRvIHRoZSBub3ctcHJvbW90ZWQgc3RhbmRieSBub2RlCiAJbXkgJHBv cnRfc3RhbmRieSA9ICRub2RlX3N0YW5kYnktPnBvcnQ7CiAJJG5vZGVfbWFzdGVyLT5hcHBl bmRfY29uZigKLQkJJ3JlY292ZXJ5LmNvbmYnLCBxcSgKKwkJJ3Bvc3RncmVzcWwuY29uZics IHFxKAogcHJpbWFyeV9jb25uaW5mbz0ncG9ydD0kcG9ydF9zdGFuZGJ5Jwotc3RhbmRieV9t b2RlPW9uCiByZWNvdmVyeV90YXJnZXRfdGltZWxpbmU9J2xhdGVzdCcKICkpOwogCisJJG5v ZGVfbWFzdGVyLT5zZXRfc3RhbmRieV9tb2RlKCk7CisKIAkjIFJlc3RhcnQgdGhlIG1hc3Rl ciB0byBjaGVjayB0aGF0IHJld2luZCB3ZW50IGNvcnJlY3RseQogCSRub2RlX21hc3Rlci0+ c3RhcnQ7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nLmggYi9zcmMv aW5jbHVkZS9hY2Nlc3MveGxvZy5oCmluZGV4IGUwMWQxMmViN2MuLmYzYTdiYTRkNDIgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nLmgKKysrIGIvc3JjL2luY2x1ZGUv YWNjZXNzL3hsb2cuaApAQCAtNzUsNyArNzUsNyBAQCBleHRlcm4gSG90U3RhbmRieVN0YXRl IHN0YW5kYnlTdGF0ZTsKIAogLyoKICAqIFJlY292ZXJ5IHRhcmdldCB0eXBlLgotICogT25s eSBzZXQgZHVyaW5nIGEgUG9pbnQgaW4gVGltZSByZWNvdmVyeSwgbm90IHdoZW4gc3RhbmRi eV9tb2RlID0gb24KKyAqIE9ubHkgc2V0IGR1cmluZyBhIFBvaW50IGluIFRpbWUgcmVjb3Zl cnksIG5vdCB3aGVuIGluIHN0YW5kYnkgbW9kZS4KICAqLwogdHlwZWRlZiBlbnVtCiB7CkBA IC04Nyw2ICs4NywxNiBAQCB0eXBlZGVmIGVudW0KIAlSRUNPVkVSWV9UQVJHRVRfSU1NRURJ QVRFCiB9IFJlY292ZXJ5VGFyZ2V0VHlwZTsKIAorLyoKKyAqIFJlY292ZXJ5IHRhcmdldCBU aW1lTGluZSBnb2FsCisgKi8KK3R5cGVkZWYgZW51bQoreworCVJFQ09WRVJZX1RBUkdFVF9U SU1FTElORV9DT05UUk9MRklMRSwKKwlSRUNPVkVSWV9UQVJHRVRfVElNRUxJTkVfTEFURVNU LAorCVJFQ09WRVJZX1RBUkdFVF9USU1FTElORV9OVU1FUklDCit9CQkJUmVjb3ZlcnlUYXJn ZXRUaW1lTGluZUdvYWw7CisKIGV4dGVybiBYTG9nUmVjUHRyIFByb2NMYXN0UmVjUHRyOwog ZXh0ZXJuIFhMb2dSZWNQdHIgWGFjdExhc3RSZWNFbmQ7CiBleHRlcm4gUEdETExJTVBPUlQg WExvZ1JlY1B0ciBYYWN0TGFzdENvbW1pdEVuZDsKQEAgLTEwOSw5ICsxMTksMzIgQEAgZXh0 ZXJuIGJvb2wgd2FsX2NvbXByZXNzaW9uOwogZXh0ZXJuIGJvb2wgKndhbF9jb25zaXN0ZW5j eV9jaGVja2luZzsKIGV4dGVybiBjaGFyICp3YWxfY29uc2lzdGVuY3lfY2hlY2tpbmdfc3Ry aW5nOwogZXh0ZXJuIGJvb2wgbG9nX2NoZWNrcG9pbnRzOworZXh0ZXJuIGNoYXIgKnJlY292 ZXJ5UmVzdG9yZUNvbW1hbmQ7CitleHRlcm4gY2hhciAqcmVjb3ZlcnlFbmRDb21tYW5kOwor ZXh0ZXJuIGNoYXIgKmFyY2hpdmVDbGVhbnVwQ29tbWFuZDsKK2V4dGVybiBib29sIHJlY292 ZXJ5VGFyZ2V0SW5jbHVzaXZlOworZXh0ZXJuIGludAlyZWNvdmVyeVRhcmdldEFjdGlvbjsK K2V4dGVybiBpbnQJcmVjb3ZlcnlfbWluX2FwcGx5X2RlbGF5OworZXh0ZXJuIGNoYXIgKlBy aW1hcnlDb25uSW5mbzsKK2V4dGVybiBjaGFyICpQcmltYXJ5U2xvdE5hbWU7CisKKy8qIGlu ZGlyZWN0bHkgc2V0IHZpYSBHVUMgc3lzdGVtICovCitleHRlcm4gVHJhbnNhY3Rpb25JZCBy ZWNvdmVyeVRhcmdldFhpZDsKK2V4dGVybiBUaW1lc3RhbXBUeiByZWNvdmVyeVRhcmdldFRp bWU7CitleHRlcm4gY2hhciAqcmVjb3ZlcnlUYXJnZXROYW1lOworZXh0ZXJuIFhMb2dSZWNQ dHIgcmVjb3ZlcnlUYXJnZXRMU047CitleHRlcm4gUmVjb3ZlcnlUYXJnZXRUeXBlIHJlY292 ZXJ5VGFyZ2V0OworZXh0ZXJuIGNoYXIgKlByb21vdGVUcmlnZ2VyRmlsZTsKK2V4dGVybiBS ZWNvdmVyeVRhcmdldFRpbWVMaW5lR29hbCByZWNvdmVyeVRhcmdldFRpbWVMaW5lR29hbDsK K2V4dGVybiBUaW1lTGluZUlEIHJlY292ZXJ5VGFyZ2V0VExJUmVxdWVzdGVkOworZXh0ZXJu IFRpbWVMaW5lSUQgcmVjb3ZlcnlUYXJnZXRUTEk7CiAKIGV4dGVybiBpbnQJQ2hlY2tQb2lu dFNlZ21lbnRzOwogCisvKiBvcHRpb24gc2V0IGxvY2FsbHkgaW4gc3RhcnR1cCBwcm9jZXNz IG9ubHkgd2hlbiBzaWduYWwgZmlsZXMgZXhpc3QgKi8KK2V4dGVybiBib29sIFN0YW5kYnlN b2RlUmVxdWVzdGVkOworZXh0ZXJuIGJvb2wgU3RhbmRieU1vZGU7CisKIC8qIEFyY2hpdmUg bW9kZXMgKi8KIHR5cGVkZWYgZW51bSBBcmNoaXZlTW9kZQogewpAQCAtMzE5LDggKzM1Miw4 IEBAIGV4dGVybiB2b2lkIGRvX3BnX2Fib3J0X2JhY2t1cCh2b2lkKTsKIGV4dGVybiBTZXNz aW9uQmFja3VwU3RhdGUgZ2V0X2JhY2t1cF9zdGF0dXModm9pZCk7CiAKIC8qIEZpbGUgcGF0 aCBuYW1lcyAoYWxsIHJlbGF0aXZlIHRvICRQR0RBVEEpICovCi0jZGVmaW5lIFJFQ09WRVJZ X0NPTU1BTkRfRklMRQkicmVjb3ZlcnkuY29uZiIKLSNkZWZpbmUgUkVDT1ZFUllfQ09NTUFO RF9ET05FCSJyZWNvdmVyeS5kb25lIgorI2RlZmluZSBSRUNPVkVSWV9TSUdOQUxfRklMRQki cmVjb3Zlcnkuc2lnbmFsIgorI2RlZmluZSBTVEFOREJZX1NJR05BTF9GSUxFCQkic3RhbmRi eS5zaWduYWwiCiAjZGVmaW5lIEJBQ0tVUF9MQUJFTF9GSUxFCQkiYmFja3VwX2xhYmVsIgog I2RlZmluZSBCQUNLVVBfTEFCRUxfT0xECQkiYmFja3VwX2xhYmVsLm9sZCIKIApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvZ3VjX3RhYmxlcy5oIGIvc3JjL2luY2x1ZGUvdXRp bHMvZ3VjX3RhYmxlcy5oCmluZGV4IDY2OGQ5ZWZkMzUuLjZmOWZkYjZhNWYgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3V0aWxzL2d1Y190YWJsZXMuaAorKysgYi9zcmMvaW5jbHVkZS91 dGlscy9ndWNfdGFibGVzLmgKQEAgLTY5LDYgKzY5LDggQEAgZW51bSBjb25maWdfZ3JvdXAK IAlXQUxfU0VUVElOR1MsCiAJV0FMX0NIRUNLUE9JTlRTLAogCVdBTF9BUkNISVZJTkcsCisJ V0FMX0FSQ0hJVkVfUkVDT1ZFUlksCisJV0FMX1JFQ09WRVJZX1RBUkdFVCwKIAlSRVBMSUNB VElPTiwKIAlSRVBMSUNBVElPTl9TRU5ESU5HLAogCVJFUExJQ0FUSU9OX01BU1RFUiwKZGlm ZiAtLWdpdCBhL3NyYy9wb3J0L3F1b3Rlcy5jIGIvc3JjL3BvcnQvcXVvdGVzLmMKaW5kZXgg Mjk3NzBjN2EwMC4uOTRiNjNiOWJiNiAxMDA2NDQKLS0tIGEvc3JjL3BvcnQvcXVvdGVzLmMK KysrIGIvc3JjL3BvcnQvcXVvdGVzLmMKQEAgLTE5LDcgKzE5LDcgQEAKICAqIEVzY2FwZSAo YnkgZG91YmxpbmcpIGFueSBzaW5nbGUgcXVvdGVzIG9yIGJhY2tzbGFzaGVzIGluIGdpdmVu IHN0cmluZwogICoKICAqIE5vdGU6IHRoaXMgaXMgdXNlZCB0byBwcm9jZXNzIHBvc3RncmVz cWwuY29uZiBlbnRyaWVzIGFuZCB0byBxdW90ZQotICogc3RyaW5nIGxpdGVyYWxzIGluIHBn X2Jhc2ViYWNrdXAgZm9yIGNyZWF0aW5nIHJlY292ZXJ5LmNvbmYuCisgKiBzdHJpbmcgbGl0 ZXJhbHMgaW4gcGdfYmFzZWJhY2t1cCBmb3Igd3JpdGluZyB0aGUgcmVjb3ZlcnkgY29uZmln dXJhdGlvbi4KICAqIFNpbmNlIHBvc3RncmVzcWwuY29uZiBzdHJpbmdzIGFyZSBkZWZpbmVk IHRvIHRyZWF0IGJhY2tzbGFzaGVzIGFzIGVzY2FwZXMsCiAgKiB3ZSBoYXZlIHRvIGRvdWJs ZSBiYWNrc2xhc2hlcyBoZXJlLgogICoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3BlcmwvUG9z dGdyZXNOb2RlLnBtIGIvc3JjL3Rlc3QvcGVybC9Qb3N0Z3Jlc05vZGUucG0KaW5kZXggZWZk ZWJjMzg3Ny4uOGEyYzZmYzEyMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcGVybC9Qb3N0Z3Jl c05vZGUucG0KKysrIGIvc3JjL3Rlc3QvcGVybC9Qb3N0Z3Jlc05vZGUucG0KQEAgLTYzNSw4 ICs2MzUsNiBAQCBvZiBhIGJhY2t1cCBwcmV2aW91c2x5IGNyZWF0ZWQgb24gdGhhdCBub2Rl IHdpdGggJG5vZGUtPmJhY2t1cC4KIAogRG9lcyBub3Qgc3RhcnQgdGhlIG5vZGUgYWZ0ZXIg aW5pdGlhbGl6aW5nIGl0LgogCi1BIHJlY292ZXJ5LmNvbmYgaXMgbm90IGNyZWF0ZWQuCi0K IFN0cmVhbWluZyByZXBsaWNhdGlvbiBjYW4gYmUgZW5hYmxlZCBvbiB0aGlzIG5vZGUgYnkg cGFzc2luZyB0aGUga2V5d29yZAogcGFyYW1ldGVyIGhhc19zdHJlYW1pbmcgPT4gMS4gVGhp cyBpcyBkaXNhYmxlZCBieSBkZWZhdWx0LgogCkBAIC04MzQsMTAgKzgzMiwxMCBAQCBzdWIg ZW5hYmxlX3N0cmVhbWluZwogCiAJcHJpbnQgIiMjIyBFbmFibGluZyBzdHJlYW1pbmcgcmVw bGljYXRpb24gZm9yIG5vZGUgXCIkbmFtZVwiXG4iOwogCSRzZWxmLT5hcHBlbmRfY29uZigK LQkJJ3JlY292ZXJ5LmNvbmYnLCBxcSgKKwkJJ3Bvc3RncmVzcWwuY29uZicsIHFxKAogcHJp bWFyeV9jb25uaW5mbz0nJHJvb3RfY29ubnN0ciBhcHBsaWNhdGlvbl9uYW1lPSRuYW1lJwot c3RhbmRieV9tb2RlPW9uCiApKTsKKwkkc2VsZi0+c2V0X3N0YW5kYnlfbW9kZSgpOwogCXJl dHVybjsKIH0KIApAQCAtODYzLDEwICs4NjEsMjYgQEAgc3ViIGVuYWJsZV9yZXN0b3JpbmcK IAkgIDogcXF7Y3AgIiRwYXRoLyVmIiAiJXAifTsKIAogCSRzZWxmLT5hcHBlbmRfY29uZigK LQkJJ3JlY292ZXJ5LmNvbmYnLCBxcSgKKwkJJ3Bvc3RncmVzcWwuY29uZicsIHFxKAogcmVz dG9yZV9jb21tYW5kID0gJyRjb3B5X2NvbW1hbmQnCi1zdGFuZGJ5X21vZGUgPSBvbgogKSk7 CisJJHNlbGYtPnNldF9zdGFuZGJ5X21vZGUoKTsKKwlyZXR1cm47Cit9CisKKz1wb2QKKwor PWl0ZW0gJG5vZGUtPnNldF9zdGFuZGJ5X21vZGUoKQorCitQbGFjZSBzdGFuZGJ5LnNpZ25h bCBmaWxlLgorCis9Y3V0CisKK3N1YiBzZXRfc3RhbmRieV9tb2RlCit7CisJbXkgKCRzZWxm KSA9IEBfOworCisJJHNlbGYtPmFwcGVuZF9jb25mKCdzdGFuZGJ5LnNpZ25hbCcsICcnKTsK IAlyZXR1cm47CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDAxX3N0 cmVhbV9yZXAucGwgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAwMV9zdHJlYW1fcmVwLnBsCmlu ZGV4IDhkZmY1ZmM3MjAuLmJlYjQ1NTUxYTIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlY292 ZXJ5L3QvMDAxX3N0cmVhbV9yZXAucGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMDFf c3RyZWFtX3JlcC5wbApAQCAtMTMxLDcgKzEzMSw3IEBAIHN1YiB0ZXN0X3RhcmdldF9zZXNz aW9uX2F0dHJzCiAJCXFxW1NFTEVDVCBwZ19jcmVhdGVfcGh5c2ljYWxfcmVwbGljYXRpb25f c2xvdCgnJHNsb3RuYW1lXzEnKTtdKSwKIAkwLAogCSdwaHlzaWNhbCBzbG90IGNyZWF0ZWQg b24gbWFzdGVyJyk7Ci0kbm9kZV9zdGFuZGJ5XzEtPmFwcGVuZF9jb25mKCdyZWNvdmVyeS5j b25mJywKKyRub2RlX3N0YW5kYnlfMS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZics CiAJInByaW1hcnlfc2xvdF9uYW1lID0gJHNsb3RuYW1lXzEiKTsKICRub2RlX3N0YW5kYnlf MS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsCiAJIndhbF9yZWNlaXZlcl9zdGF0 dXNfaW50ZXJ2YWwgPSAxIik7CkBAIC0xNDIsNyArMTQyLDcgQEAgc3ViIHRlc3RfdGFyZ2V0 X3Nlc3Npb25fYXR0cnMKIAkJcXFbU0VMRUNUIHBnX2NyZWF0ZV9waHlzaWNhbF9yZXBsaWNh dGlvbl9zbG90KCckc2xvdG5hbWVfMicpO10pLAogCTAsCiAJJ3BoeXNpY2FsIHNsb3QgY3Jl YXRlZCBvbiBpbnRlcm1lZGlhdGUgcmVwbGljYScpOwotJG5vZGVfc3RhbmRieV8yLT5hcHBl bmRfY29uZigncmVjb3ZlcnkuY29uZicsCiskbm9kZV9zdGFuZGJ5XzItPmFwcGVuZF9jb25m KCdwb3N0Z3Jlc3FsLmNvbmYnLAogCSJwcmltYXJ5X3Nsb3RfbmFtZSA9ICRzbG90bmFtZV8y Iik7CiAkbm9kZV9zdGFuZGJ5XzItPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLAog CSJ3YWxfcmVjZWl2ZXJfc3RhdHVzX2ludGVydmFsID0gMSIpOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVjb3ZlcnkvdC8wMDNfcmVjb3ZlcnlfdGFyZ2V0cy5wbCBiL3NyYy90ZXN0L3Jl Y292ZXJ5L3QvMDAzX3JlY292ZXJ5X3RhcmdldHMucGwKaW5kZXggZTg2NzQ3OWYyMC4uZjZm MmU4Yjc0NSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMDNfcmVjb3Zlcnlf dGFyZ2V0cy5wbAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAwM19yZWNvdmVyeV90YXJn ZXRzLnBsCkBAIC0yMyw3ICsyMyw3IEBAIHN1YiB0ZXN0X3JlY292ZXJ5X3N0YW5kYnkKIAog CWZvcmVhY2ggbXkgJHBhcmFtX2l0ZW0gKEAkcmVjb3ZlcnlfcGFyYW1zKQogCXsKLQkJJG5v ZGVfc3RhbmRieS0+YXBwZW5kX2NvbmYoJ3JlY292ZXJ5LmNvbmYnLCBxcSgkcGFyYW1faXRl bSkpOworCQkkbm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywg cXEoJHBhcmFtX2l0ZW0pKTsKIAl9CiAKIAkkbm9kZV9zdGFuZGJ5LT5zdGFydDsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDA0X3RpbWVsaW5lX3N3aXRjaC5wbCBiL3Ny Yy90ZXN0L3JlY292ZXJ5L3QvMDA0X3RpbWVsaW5lX3N3aXRjaC5wbAppbmRleCBhN2NjYjdi NGEzLi43OWNiZmZiODI3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAwNF90 aW1lbGluZV9zd2l0Y2gucGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMDRfdGltZWxp bmVfc3dpdGNoLnBsCkBAIC00NywxMiArNDcsMTAgQEAKIGlzKCRwc3FsX291dCwgJ3QnLCAi cHJvbW90aW9uIG9mIHN0YW5kYnkgd2l0aCBwZ19wcm9tb3RlIik7CiAKICMgU3dpdGNoIHN0 YW5kYnkgMiB0byByZXBsYXkgZnJvbSBzdGFuZGJ5IDEKLXJtdHJlZSgkbm9kZV9zdGFuZGJ5 XzItPmRhdGFfZGlyIC4gJy9yZWNvdmVyeS5jb25mJyk7CiBteSAkY29ubnN0cl8xID0gJG5v ZGVfc3RhbmRieV8xLT5jb25uc3RyOwogJG5vZGVfc3RhbmRieV8yLT5hcHBlbmRfY29uZigK LQkncmVjb3ZlcnkuY29uZicsIHFxKAorCSdwb3N0Z3Jlc3FsLmNvbmYnLCBxcSgKIHByaW1h cnlfY29ubmluZm89JyRjb25uc3RyXzEgYXBwbGljYXRpb25fbmFtZT1Ae1skbm9kZV9zdGFu ZGJ5XzItPm5hbWVdfScKLXN0YW5kYnlfbW9kZT1vbgogcmVjb3ZlcnlfdGFyZ2V0X3RpbWVs aW5lPSdsYXRlc3QnCiApKTsKICRub2RlX3N0YW5kYnlfMi0+cmVzdGFydDsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDA1X3JlcGxheV9kZWxheS5wbCBiL3NyYy90ZXN0 L3JlY292ZXJ5L3QvMDA1X3JlcGxheV9kZWxheS5wbAppbmRleCA4OTA5YzQ1NDhiLi42Yzg1 YzkyOGMxIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAwNV9yZXBsYXlfZGVs YXkucGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMDVfcmVwbGF5X2RlbGF5LnBsCkBA IC0yNSw3ICsyNSw3IEBACiAkbm9kZV9zdGFuZGJ5LT5pbml0X2Zyb21fYmFja3VwKCRub2Rl X21hc3RlciwgJGJhY2t1cF9uYW1lLAogCWhhc19zdHJlYW1pbmcgPT4gMSk7CiAkbm9kZV9z dGFuZGJ5LT5hcHBlbmRfY29uZigKLQkncmVjb3ZlcnkuY29uZicsIHFxKAorCSdwb3N0Z3Jl c3FsLmNvbmYnLCBxcSgKIHJlY292ZXJ5X21pbl9hcHBseV9kZWxheSA9ICcke2RlbGF5fXMn CiApKTsKICRub2RlX3N0YW5kYnktPnN0YXJ0OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVj b3ZlcnkvdC8wMDlfdHdvcGhhc2UucGwgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAwOV90d29w aGFzZS5wbAppbmRleCA5ZWEzYmQ2NWZjLi5kYWMyZDRlYzBkIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWNvdmVyeS90LzAwOV90d29waGFzZS5wbAorKysgYi9zcmMvdGVzdC9yZWNvdmVy eS90LzAwOV90d29waGFzZS5wbApAQCAtMjMwLDcgKzIzMCw3IEBAIHN1YiBjb25maWd1cmVf YW5kX3JlbG9hZAogIyByZXN0YXJ0IG9sZCBtYXN0ZXIgYXMgbmV3IHN0YW5kYnkKICRjdXJf c3RhbmRieS0+ZW5hYmxlX3N0cmVhbWluZygkY3VyX21hc3Rlcik7CiAkY3VyX3N0YW5kYnkt PmFwcGVuZF9jb25mKAotCSdyZWNvdmVyeS5jb25mJywgcXEoCisJJ3Bvc3RncmVzcWwuY29u ZicsIHFxKAogcmVjb3ZlcnlfdGFyZ2V0X3RpbWVsaW5lPSdsYXRlc3QnCiApKTsKICRjdXJf c3RhbmRieS0+c3RhcnQ7CkBAIC0yNjgsNyArMjY4LDcgQEAgc3ViIGNvbmZpZ3VyZV9hbmRf cmVsb2FkCiAjIHJlc3RhcnQgb2xkIG1hc3RlciBhcyBuZXcgc3RhbmRieQogJGN1cl9zdGFu ZGJ5LT5lbmFibGVfc3RyZWFtaW5nKCRjdXJfbWFzdGVyKTsKICRjdXJfc3RhbmRieS0+YXBw ZW5kX2NvbmYoCi0JJ3JlY292ZXJ5LmNvbmYnLCBxcSgKKwkncG9zdGdyZXNxbC5jb25mJywg cXEoCiByZWNvdmVyeV90YXJnZXRfdGltZWxpbmU9J2xhdGVzdCcKICkpOwogJGN1cl9zdGFu ZGJ5LT5zdGFydDsKQEAgLTMwOCw3ICszMDgsNyBAQCBzdWIgY29uZmlndXJlX2FuZF9yZWxv YWQKICMgcmVzdGFydCBvbGQgbWFzdGVyIGFzIG5ldyBzdGFuZGJ5CiAkY3VyX3N0YW5kYnkt PmVuYWJsZV9zdHJlYW1pbmcoJGN1cl9tYXN0ZXIpOwogJGN1cl9zdGFuZGJ5LT5hcHBlbmRf Y29uZigKLQkncmVjb3ZlcnkuY29uZicsIHFxKAorCSdwb3N0Z3Jlc3FsLmNvbmYnLCBxcSgK IHJlY292ZXJ5X3RhcmdldF90aW1lbGluZT0nbGF0ZXN0JwogKSk7CiAkY3VyX3N0YW5kYnkt PnN0YXJ0OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMTBfbG9naWNhbF9k ZWNvZGluZ190aW1lbGluZXMucGwgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAxMF9sb2dpY2Fs X2RlY29kaW5nX3RpbWVsaW5lcy5wbAppbmRleCBhNzZlZWE4NmE1Li40ZmJkMzg2MzMyIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAxMF9sb2dpY2FsX2RlY29kaW5nX3Rp bWVsaW5lcy5wbAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAxMF9sb2dpY2FsX2RlY29k aW5nX3RpbWVsaW5lcy5wbApAQCAtNzYsNyArNzYsNyBAQAogCSRub2RlX21hc3RlciwgJGJh Y2t1cF9uYW1lLAogCWhhc19zdHJlYW1pbmcgPT4gMSwKIAloYXNfcmVzdG9yaW5nID0+IDEp OwotJG5vZGVfcmVwbGljYS0+YXBwZW5kX2NvbmYoJ3JlY292ZXJ5LmNvbmYnLAorJG5vZGVf cmVwbGljYS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsCiAJcVtwcmltYXJ5X3Ns b3RfbmFtZSA9ICdwaHlzX3Nsb3QnXSk7CiAKICRub2RlX3JlcGxpY2EtPnN0YXJ0OwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMTJfc3VidHJhbnNhY3Rpb25zLnBsIGIv c3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMTJfc3VidHJhbnNhY3Rpb25zLnBsCmluZGV4IGVmYzIz ZDA1NTkuLmUyNmNjOWMyY2UgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDEy X3N1YnRyYW5zYWN0aW9ucy5wbAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAxMl9zdWJ0 cmFuc2FjdGlvbnMucGwKQEAgLTEyMCw3ICsxMjAsNyBAQAogKCRub2RlX21hc3RlciwgJG5v ZGVfc3RhbmRieSkgPSAoJG5vZGVfc3RhbmRieSwgJG5vZGVfbWFzdGVyKTsKICRub2RlX3N0 YW5kYnktPmVuYWJsZV9zdHJlYW1pbmcoJG5vZGVfbWFzdGVyKTsKICRub2RlX3N0YW5kYnkt PmFwcGVuZF9jb25mKAotCSdyZWNvdmVyeS5jb25mJywgcXEoCisJJ3Bvc3RncmVzcWwuY29u ZicsIHFxKAogcmVjb3ZlcnlfdGFyZ2V0X3RpbWVsaW5lPSdsYXRlc3QnCiApKTsKICRub2Rl X3N0YW5kYnktPnN0YXJ0OwpAQCAtMTcxLDcgKzE3MSw3IEBACiAoJG5vZGVfbWFzdGVyLCAk bm9kZV9zdGFuZGJ5KSA9ICgkbm9kZV9zdGFuZGJ5LCAkbm9kZV9tYXN0ZXIpOwogJG5vZGVf c3RhbmRieS0+ZW5hYmxlX3N0cmVhbWluZygkbm9kZV9tYXN0ZXIpOwogJG5vZGVfc3RhbmRi eS0+YXBwZW5kX2NvbmYoCi0JJ3JlY292ZXJ5LmNvbmYnLCBxcSgKKwkncG9zdGdyZXNxbC5j b25mJywgcXEoCiByZWNvdmVyeV90YXJnZXRfdGltZWxpbmU9J2xhdGVzdCcKICkpOwogJG5v ZGVfc3RhbmRieS0+c3RhcnQ7CkBAIC0yMTIsNyArMjEyLDcgQEAKICgkbm9kZV9tYXN0ZXIs ICRub2RlX3N0YW5kYnkpID0gKCRub2RlX3N0YW5kYnksICRub2RlX21hc3Rlcik7CiAkbm9k ZV9zdGFuZGJ5LT5lbmFibGVfc3RyZWFtaW5nKCRub2RlX21hc3Rlcik7CiAkbm9kZV9zdGFu ZGJ5LT5hcHBlbmRfY29uZigKLQkncmVjb3ZlcnkuY29uZicsIHFxKAorCSdwb3N0Z3Jlc3Fs LmNvbmYnLCBxcSgKIHJlY292ZXJ5X3RhcmdldF90aW1lbGluZT0nbGF0ZXN0JwogKSk7CiAk bm9kZV9zdGFuZGJ5LT5zdGFydDsKCmJhc2UtY29tbWl0OiA2OWJhZTIzNzI3MjUzY2E4Yjc2 MTYyMjYwMjBlMjQxYjhlOTIzZjRkCi0tIAoyLjE5LjEKCg== --------------C151D37EEEA85442D5DF056B--