Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uFSPM-004crG-5L for pgsql-hackers@arkaria.postgresql.org; Thu, 15 May 2025 06:49:33 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uFSPJ-00CeDX-Qn for pgsql-hackers@arkaria.postgresql.org; Thu, 15 May 2025 06:49:29 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uFSPI-00CeDL-HE for pgsql-hackers@lists.postgresql.org; Thu, 15 May 2025 06:49:29 +0000 Received: from mail-yb1-xb2f.google.com ([2607:f8b0:4864:20::b2f]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uFSP7-001sh3-2Q for pgsql-hackers@lists.postgresql.org; Thu, 15 May 2025 06:49:27 +0000 Received: by mail-yb1-xb2f.google.com with SMTP id 3f1490d57ef6-e7b2c28f6a9so579331276.0 for ; Wed, 14 May 2025 23:49:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1747291757; x=1747896557; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=rl9dLvekHVo382HKLeFXYaKycXYiRAhrUhoUMPYGSYg=; b=YSagKKHuJ8aq/V5CxSgIT5ySclRxA7V1hDXwOOxzh+CMm2BCz8/26q/Vn4q7yhELXC WEn3gYuq2DWuToVOIStZIkWAHhlVGsaPUjxZApkP4uobVeRtZ/n3xEsMb5BDWJvmeULJ xax+yyoxccVh/2Gf/p01rl+LM/OrITB2bSUnDhqZy+9yirGITGPWjjhlxbsFazuP34Ll xCq1bV6l3pbD25pkMqas8IIKHQYzMNrrKgH7pYqmmoCfyxdQfHWa3AsKZT/KylOvKXL3 GXq5GnV/DFets4FsIqNaau/N+7YmI/P24yYx/vBPHen07glBYlgvwdPPitNU5PZAsdjk hUZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747291757; x=1747896557; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=rl9dLvekHVo382HKLeFXYaKycXYiRAhrUhoUMPYGSYg=; b=vvXHeUp0c0iYKS4DnlO8mSiC6vh5Z2xcflpnD4m+7nI8t8EU4x/KFmIsVDpxQNa5F8 PxZ6YHbh9ZqtrzNP3JHDsbWMZi5w/ZAKnkJDvVT1PM0xcmgM4Ln+dTj63DSswIWb8yPY bOCRzWMfukQpT9GaBSkszVAygRKHtC8J0oooyhTfRsQaopt2HnxJZ0lyUqV5Ez9dz22S aERRvgTFpMxSCKFkQcOjw1gMuliUVmItreMzpFsnzYHxtbw1x8HyPEXiREW1OHfY8GCD 0SZH2EG8CTF9dwRsw2Iz8Otu6H8OYibdGnT8zBAGWuHzcTGE1quYxsjSp6sZB7GwKLPr wP9Q== X-Forwarded-Encrypted: i=1; AJvYcCXNuMOFG9NMSM4773vIUYjqF/Ar+7r0zFjGvUxm43ZzzN/g1i07DEUeKmgTl+cigB8EbRR4lERSU8xPqDo6@lists.postgresql.org X-Gm-Message-State: AOJu0Yx+c0TRvHNAp2h43FMvlDi4hexUTwZYTL7w1UjGsCWojAgkta0P XrpwLy2uHq5Im2p8DY5pehE3t0prj7EJLg0qHie2pSHYyi0Tcj3dNYf/ZBJX0hNC4kiPQgRbETw CqhA72oGziMdBa0K3Bj0gUy9HtJk= X-Gm-Gg: ASbGncuAlApqe/Z+X/jRBL+YKhN5jFbhPGhkF5xVRakrP5zlBQ9FlLnPFX+As6+UE3M PeBR9ND7UcDxUuxGuRY62xrcSy1MJkyQMy7wvRIyCnoSjEfnD+xKdPfeDNbnRGSvUC7qjWxUoTn 2qEUJPffEaPAra2QZITjPY4mL5ltKY0ctsOU0uxYFc5W5/LmKgSzJGVTFLFQsMu1exhw== X-Google-Smtp-Source: AGHT+IGVCWizaiKuDmFyRfeUgM+wurPZc+8cbx5saJwtfwcBKKIMuSjEZHD394aqab42xyNKHWhmGeB8A9CQ7OZ8IEk= X-Received: by 2002:a05:6902:2410:b0:e6d:df8b:4658 with SMTP id 3f1490d57ef6-e7b3d598841mr7917924276.34.1747291756926; Wed, 14 May 2025 23:49:16 -0700 (PDT) MIME-Version: 1.0 References: <3chredgnjcmccym2kczawfih226b4ac6co7p6z4jeofevrcosi@mrsxkx2x2c65> <20241120201313.t4wbhld4ktgielaf@erthalion.local> In-Reply-To: From: Pavel Stehule Date: Thu, 15 May 2025 08:48:37 +0200 X-Gm-Features: AX0GCFtqRGpxw-fMQYYwQ8gnWbLh9Hcld6j6HlO8QsHUYZt-hP-VTMuHkV6NRAw Message-ID: Subject: Re: Re: proposal: schema variables To: Marcos Pegoraro Cc: jian he , Dmitry Dolgov <9erthalion6@gmail.com>, Laurenz Albe , Erik Rijkers , Michael Paquier , Amit Kapila , DUVAL REMI , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000007e4205063527107b" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000007e4205063527107b Content-Type: multipart/alternative; boundary="0000000000007e42040635271079" --0000000000007e42040635271079 Content-Type: text/plain; charset="UTF-8" Hi fresh rebase Regards Pavel --0000000000007e42040635271079 Content-Type: text/html; charset="UTF-8"
Hi

fresh rebase

Regards

Pavel
--0000000000007e42040635271079-- --0000000000007e4205063527107b Content-Type: text/x-patch; charset="US-ASCII"; name="v20250515-0008-variable-fence-syntax-support-and-variable-fence-usa.patch" Content-Disposition: attachment; filename="v20250515-0008-variable-fence-syntax-support-and-variable-fence-usa.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_map0d8240 RnJvbSA4ZjhlYTE3MzY2YTU2NTliOGU4MjM0Nzk4NjgzOWY2NGIyNjMxMmM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMTkgTm92IDIwMjQgMDg6MTQ6NTMgKzAxMDAKU3ViamVjdDogW1BBVENIIDA4 LzIxXSB2YXJpYWJsZSBmZW5jZSBzeW50YXggc3VwcG9ydCBhbmQgdmFyaWFibGUgZmVuY2UgdXNh Z2UKIGd1YXJkIHN1cHBvcnQKCnRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGNvbmNlcHQgb2YgdmFy aWFibGUgZmVuY2UgLSBzeW50YXggZm9yIHZhcmlhYmxlCnJlZmVyZW5jZSBgVkFSSUFCTEUodmFy bmFtZSlgIHRoYXQgaXMgbm90IGluIGNvbGxpc2lvbiB3aXRoIGNvbHVtbiByZWZlcmVuY2UuCldo ZW4gdmFyaWFibGUgZmVuY2UgdXNhZ2UgZ3VhcmQgd2FybmluZyBpcyBhY3RpdmUsIHRoZW4gdXNh Z2UgdmFyaWFibGUKd2l0aG91dCB2YXJpYWJsZSBmZW5jZSBpbiB0aGUgY2FzZSwgd2hlcmUgdGhl cmUgY2FuIGJlIGNvbHVtbiByZWZlcmVuY2VzLAp0aGUgdGhlIHdhcm5pbmcgaXMgcmFpc2VkLgoK aW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiB2YXJpYWJsZSBmZW5jZQotLS0KIGRvYy9zcmMvc2dt bC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8IDY1ICsrKysrKysrKysrKysrKysK IGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8IDE1ICsrKysK IHNyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICA2ICsrCiBz cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAyOCArKysrKyst CiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCA3NCArKysr KysrKysrKysrKysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgICAgICAg ICAgICAgfCAgNyArKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAg ICAgIHwgMTIgKystCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyAgICAgICAg ICAgfCAgOSArKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBs ZSB8ICAxICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8 IDEwICsrKwogc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwg IDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCAgICAgICAgICAgICAgIHwgIDEg KwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgNTkgKysr KysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwg ICAgfCA0MSArKysrKysrKysrCiAxNCBmaWxlcyBjaGFuZ2VkLCAzMjMgaW5zZXJ0aW9ucygrKSwg NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9k b2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggZTM0ZGE4YWI5ZDYuLmJlNGI3NmViZTMxIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Nv bmZpZy5zZ21sCkBAIC0xMTQzNCw2ICsxMTQzNCw3MSBAQCBERVRBSUw6ICBTZXNzaW9uIHZhcmlh YmxlcyBjYW4gYmUgc2hhZG93ZWQgYnkgY29sdW1ucywgcm91dGluZSdzIHZhcmlhYmxlcyBhbmQg cgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxp c3RlbnRyeSBpZD0iZ3VjLXNlc3Npb24tdmFyaWFibGVzLXVzZS1mZW5jZS13YXJuaW5nLWd1YXJk IiB4cmVmbGFiZWw9InNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkIj4K KyAgICAgIDx0ZXJtPjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5n X2d1YXJkPC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJt PgorICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93 YXJuaW5nX2d1YXJkPC92YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4K KyAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAg ICAgPHBhcmE+CisgICAgICAgV2hlbiBvbiwgYSB3YXJuaW5nIGlzIHJhaXNlZCB3aGVuIGEgc2Vz c2lvbiB2YXJpYWJsZSBpZGVudGlmaWVyIGlzIHVzZWQKKyAgICAgICBpbnNpZGUgYSBxdWVyeSB3 aXRob3V0IHZhcmlhYmxlIGZlbmNlLiBUaGUgZGVmYXVsdCBpcyA8bGl0ZXJhbD5vZmY8L2xpdGVy YWw+LgorICAgICAgIFRoZSB3YXJuaW5nIGlzIHJhaXNlZCBvbmx5IHdoZW4gdmFyaWFibGUgaXMg dXNlZCBpbiBwbGFjZXMsIHdoZXJlIGFuCisgICAgICAgY29sbGlzaW9ucyB3aXRoIGNvbHVtbiBu YW1lcyBpcyBwb3NzaWJsZS4KKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBUQUJMRSBmb28oYSBp bnQpOworSU5TRVJUIElOVE8gZm9vIFZBTFVFUygxMCk7CitDUkVBVEUgVkFSSUFCTEUgYiBpbnQ7 CitMRVQgYiA9IDEwMDsKK1NFTEVDVCBhLCBiIEZST00gZm9vOworPC9wcm9ncmFtbGlzdGluZz4K KworPHNjcmVlbj4KKyBhICB8ICBiCistLS0tKy0tLS0tCisgMTAgfCAxMDAKKygxIHJvdykKKzwv c2NyZWVuPgorCis8cHJvZ3JhbWxpc3Rpbmc+CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2Zl bmNlX3dhcm5pbmdfZ3VhcmQgVE8gb247CitTRUxFQ1QgYSwgYiBGUk9NIGZvbzsKKzwvcHJvZ3Jh bWxpc3Rpbmc+CisKKzxzY3JlZW4+CitXQVJOSU5HOiAgc2Vzc2lvbiB2YXJpYWJsZSAiYiIgaXMg bm90IHVzZWQgaW5zaWRlIHZhcmlhYmxlIGZlbmNlCitMSU5FIDE6IFNFTEVDVCBhLCBiIEZST00g Zm9vOworICAgICAgICAgICAgICAgICAgXgorREVUQUlMOiAgVGhlIGNvbGxpc2lvbiBvZiBzZXNz aW9uIHZhcmlhYmxlJyBuYW1lcyBhbmQgY29sdW1uIG5hbWVzIGlzIHBvc3NpYmxlLgorIGEgIHwg IGIKKy0tLS0rLS0tLS0KKyAxMCB8IDEwMAorKDEgcm93KQorPC9zY3JlZW4+CisKKzxwcm9ncmFt bGlzdGluZz4KK1NFTEVDVCBhLCBWQVJJQUJMRShiKSBGUk9NIGZvbzsKKzwvcHJvZ3JhbWxpc3Rp bmc+CisKKzxzY3JlZW4+CisgYSAgfCAgYgorLS0tLSstLS0tLQorIDEwIHwgMTAwCisoMSByb3cp Cis8L3NjcmVlbj4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhp cyBmZWF0dXJlIGNhbiBzaWduaWZpY2FudGx5IGluY3JlYXNlIGxvZyBzaXplLCBzbyBpdCdzIGRp c2FibGVkIGJ5CisgICAgICAgIGRlZmF1bHQuIFVubGVzcyBhbm90aGVyIGNvbGxpc2lvbiByZXNv bHV0aW9uIHRlY2huaXF1ZSBpcyB1c2VkCisgICAgICAgIChkZWRpY2F0ZWQgc2NoZW1hIG9yIHVz aW5nIHByZWZpeGVzIGxpa2UgPGxpdGVyYWw+XzwvbGl0ZXJhbD4pLAorICAgICAgICB0aGUgdXNl IG9mIHZhcmlhYmxlIGZlbmNlIHN5bnRheCBpcyBzdHJvbmdseSByZWNvbW1lbmRlZCwgYW5kIHRo aXMKKyAgICAgICAgd2FybmluZyBzaG91bGQgYmUgZW5hYmxlZC4KKyAgICAgICA8L3BhcmE+Cisg ICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8dmFybGlzdGVu dHJ5IGlkPSJndWMtc3RhbmRhcmQtY29uZm9ybWluZy1zdHJpbmdzIiB4cmVmbGFiZWw9InN0YW5k YXJkX2NvbmZvcm1pbmdfc3RyaW5ncyI+CiAgICAgICA8dGVybT48dmFybmFtZT5zdGFuZGFyZF9j b25mb3JtaW5nX3N0cmluZ3M8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKICAgICAg IDxpbmRleHRlcm0+PHByaW1hcnk+c3RyaW5nczwvcHJpbWFyeT48c2Vjb25kYXJ5PnN0YW5kYXJk IGNvbmZvcm1pbmc8L3NlY29uZGFyeT48L2luZGV4dGVybT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCAzYTNmNmJlNzlmMi4u MmEyNWQ1Y2U3NTggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwKQEAgLTU0NTcsNiArNTQ1NywyMSBAQCBTRUxFQ1QgbmFtZSBGUk9N IGZvbzsKICAgICA8bGl0ZXJhbD5zY2hlbWEudmFyaWFibGU8L2xpdGVyYWw+LiBJdCBpcyBzdHJv bmdseSByZWNvbW1lbmRlZCB0byByZW5hbWUKICAgICBzaGFkb3dlZCB2YXJpYWJsZXMgb3IgdXNl IHF1YWxpZmllZCBuYW1lcyBhbHdheXMuCiAgICA8L3BhcmE+CisKKyAgIDxwYXJhPjxmaXJzdHRl cm0+VmFyaWFibGUgZmVuY2U8L2ZpcnN0dGVybT4gaXMgc3BlY2lhbCBzeW50YXggZm9yIHNlc3Np b24KKyAgICB2YXJpYWJsZSBpZGVudGlmaWVyLiBPbmx5IG5hbWUgb3IgcXVhbGlmaWVkIG5hbWUg Y2FuIGJlIHVzZWQgaW5zaWRlIHRoZQorICAgIHZhcmlhYmxlIGZlbmNlLCBhbmQgdGhpcyBuYW1l IGlzIHVzZWQgYXMgb25seSBzZXNzaW9uIHZhcmlhYmxlIGlkZW50aWZpZXIuCis8cHJvZ3JhbWxp c3Rpbmc+CitTRUxFQ1QgVkFSSUFCTEUoY3VycmVudF91c2VyX2lkKTsKKzwvcHJvZ3JhbWxpc3Rp bmc+CisgICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBXaGVuIHRoZXJlIGlzIGEgcmlzayBvZiBw b3NzaWJsZSBjb2xsaXNpb25zIGJldHdlZW4gdmFyaWFibGUgaWRlbnRpZmllcnMKKyAgIGFuZCBj b2x1bW4gbmFtZXMsIHRoZW4gdXNpbmcgdmFyaWFibGUgZmVuY2Ugc3ludGF4IGNhbiBiZSByZWNv bW1lbmRlZC4KKyAgIFVzYWdlIHNlc3Npb24gdmFyaWFibGUgd2l0aG91dCB2YXJpYWJsZSBmZW5j ZSBjYW4gYmUgZGV0ZWN0ZWQgYnkKKyAgIHdhcm5pbmcgPHhyZWYgbGlua2VuZD0iZ3VjLXNlc3Np b24tdmFyaWFibGVzLXVzZS1mZW5jZS13YXJuaW5nLWd1YXJkIi8+LgorICA8L3BhcmE+CiAgIDwv c2VjdDE+CiAKICA8c2VjdDEgaWQ9ImRkbC1vdGhlcnMiPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwppbmRl eCBkOGZjM2Q5ZmE2OS4uNTc1MzY1ZWVmY2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVz L25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC0xNjcz LDYgKzE2NzMsOSBAQCBleHByTG9jYXRpb24oY29uc3QgTm9kZSAqZXhwcikKIAkJY2FzZSBUX1Bh cmFtUmVmOgogCQkJbG9jID0gKChjb25zdCBQYXJhbVJlZiAqKSBleHByKS0+bG9jYXRpb247CiAJ CQlicmVhazsKKwkJY2FzZSBUX1ZhcmlhYmxlRmVuY2U6CisJCQlsb2MgPSAoKGNvbnN0IFZhcmlh YmxlRmVuY2UgKikgZXhwciktPmxvY2F0aW9uOworCQkJYnJlYWs7CiAJCWNhc2UgVF9BX0NvbnN0 OgogCQkJbG9jID0gKChjb25zdCBBX0NvbnN0ICopIGV4cHIpLT5sb2NhdGlvbjsKIAkJCWJyZWFr OwpAQCAtNDcxNSw2ICs0NzE4LDkgQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChO b2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRf VmFyaWFibGVGZW5jZToKKwkJCS8qIHdlIGFzc3VtZSB0aGUgZmllbGRzIGNvbnRhaW4gbm90aGlu ZyBpbnRlcmVzdGluZyAqLworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAi dW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLAogCQkJCSAoaW50KSBub2RlVGFnKG5vZGUpKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55CmluZGV4IDEwNzRkNjJiN2RiLi43MmJiMzNhZWQ2MSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBA IC01MjUsNyArNTI1LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNo YXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxub2RlPglk ZWZfYXJnIGNvbHVtbkVsZW0gd2hlcmVfY2xhdXNlIHdoZXJlX29yX2N1cnJlbnRfY2xhdXNlCiAJ CQkJYV9leHByIGJfZXhwciBjX2V4cHIgQWV4cHJDb25zdCBpbmRpcmVjdGlvbl9lbCBvcHRfc2xp Y2VfYm91bmQKIAkJCQljb2x1bW5yZWYgaW5fZXhwciBoYXZpbmdfY2xhdXNlIGZ1bmNfdGFibGUg eG1sdGFibGUgYXJyYXlfZXhwcgotCQkJCU9wdFdoZXJlQ2xhdXNlIG9wZXJhdG9yX2RlZl9hcmcK KwkJCQlPcHRXaGVyZUNsYXVzZSBvcGVyYXRvcl9kZWZfYXJnIHZhcmlhYmxlX2ZlbmNlCiAldHlw ZSA8bGlzdD4Jb3B0X2NvbHVtbl9hbmRfcGVyaW9kX2xpc3QKICV0eXBlIDxsaXN0Pglyb3dzZnJv bV9pdGVtIHJvd3Nmcm9tX2xpc3Qgb3B0X2NvbF9kZWZfbGlzdAogJXR5cGUgPGJvb2xlYW4+IG9w dF9vcmRpbmFsaXR5IG9wdF93aXRob3V0X292ZXJsYXBzCkBAIC04ODIsNyArODgyLDcgQEAgc3Rh dGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFs aWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICAqLwogJW5vbmFzc29jCVVOQk9VTkRFRCBORVNURUQgLyog aWRlYWxseSB3b3VsZCBoYXZlIHNhbWUgcHJlY2VkZW5jZSBhcyBJREVOVCAqLwogJW5vbmFzc29j CUlERU5UIFBBUlRJVElPTiBSQU5HRSBST1dTIEdST1VQUyBQUkVDRURJTkcgRk9MTE9XSU5HIENV QkUgUk9MTFVQCi0JCQlTRVQgS0VZUyBPQkpFQ1RfUCBTQ0FMQVIgVkFMVUVfUCBXSVRIIFdJVEhP VVQgUEFUSAorCQkJU0VUIEtFWVMgT0JKRUNUX1AgU0NBTEFSIFZBTFVFX1AgV0lUSCBXSVRIT1VU IFBBVEggVkFSSUFCTEUKICVsZWZ0CQlPcCBPUEVSQVRPUgkJLyogbXVsdGktY2hhcmFjdGVyIG9w cyBhbmQgdXNlci1kZWZpbmVkIG9wZXJhdG9ycyAqLwogJWxlZnQJCScrJyAnLScKICVsZWZ0CQkn KicgJy8nICclJwpAQCAtMTU2OTEsNiArMTU2OTEsMTkgQEAgY19leHByOgkJY29sdW1ucmVmCQkJ CQkJCQl7ICQkID0gJDE7IH0KIAkJCQkJZWxzZQogCQkJCQkJJCQgPSAkMjsKIAkJCQl9CisJCQl8 IHZhcmlhYmxlX2ZlbmNlIG9wdF9pbmRpcmVjdGlvbgorCQkJCXsKKwkJCQkJaWYgKCQyKQorCQkJ CQl7CisJCQkJCQlBX0luZGlyZWN0aW9uICpuID0gbWFrZU5vZGUoQV9JbmRpcmVjdGlvbik7CisK KwkJCQkJCW4tPmFyZyA9IChOb2RlICopICQxOworCQkJCQkJbi0+aW5kaXJlY3Rpb24gPSBjaGVj a19pbmRpcmVjdGlvbigkMiwgeXlzY2FubmVyKTsKKwkJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJ CQkJfQorCQkJCQllbHNlCisJCQkJCQkkJCA9ICQxOworCQkJCX0KIAkJCXwgY2FzZV9leHByCiAJ CQkJeyAkJCA9ICQxOyB9CiAJCQl8IGZ1bmNfZXhwcgpAQCAtMTcwNzcsNiArMTcwOTAsMTcgQEAg Y2FzZV9hcmc6CWFfZXhwcgkJCQkJCQkJCXsgJCQgPSAkMTsgfQogCQkJfCAvKkVNUFRZKi8JCQkJ CQkJCXsgJCQgPSBOVUxMOyB9CiAJCTsKIAordmFyaWFibGVfZmVuY2U6CisJCQlWQVJJQUJMRSAn KCcgYW55X25hbWUgJyknCisJCQkJeworCQkJCQlWYXJpYWJsZUZlbmNlICp2ZiA9IG1ha2VOb2Rl KFZhcmlhYmxlRmVuY2UpOworCisJCQkJCXZmLT52YXJuYW1lID0gJDM7CisJCQkJCXZmLT5sb2Nh dGlvbiA9IEAzOworCQkJCQkkJCA9IChOb2RlICopIHZmOworCQkJCX0KKwkJOworCiBjb2x1bW5y ZWY6CUNvbElkCiAJCQkJewogCQkJCQkkJCA9IG1ha2VDb2x1bW5SZWYoJDEsIE5JTCwgQDEsIHl5 c2Nhbm5lcik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCBiMTBlMWJjYTMwOC4uZmJhMmVi MmRlODQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtNDYsNiArNDYsNyBAQAogLyogR1VD IHBhcmFtZXRlcnMgKi8KIGJvb2wJCVRyYW5zZm9ybV9udWxsX2VxdWFscyA9IGZhbHNlOwogYm9v bAkJc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgPSBmYWxzZTsKK2Jvb2wJCXNl c3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkID0gZmFsc2U7CiAKIAogc3Rh dGljIE5vZGUgKnRyYW5zZm9ybUV4cHJSZWN1cnNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAq ZXhwcik7CkBAIC04MSw2ICs4Miw3IEBAIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1XaG9sZVJvd1Jl ZihQYXJzZVN0YXRlICpwc3RhdGUsCiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtSW5kaXJlY3Rpb24o UGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpOwogc3RhdGljIE5vZGUgKnRy YW5zZm9ybVR5cGVDYXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVHlwZUNhc3QgKnRjKTsKIHN0YXRp YyBOb2RlICp0cmFuc2Zvcm1Db2xsYXRlQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sbGF0 ZUNsYXVzZSAqYyk7CitzdGF0aWMgTm9kZSAqdHJhbnNmb3JtVmFyaWFibGVGZW5jZShQYXJzZVN0 YXRlICpwc3RhdGUsIFZhcmlhYmxlRmVuY2UgKnZmKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1K c29uT2JqZWN0Q29uc3RydWN0b3IoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCQlKc29u T2JqZWN0Q29uc3RydWN0b3IgKmN0b3IpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUpzb25BcnJh eUNvbnN0cnVjdG9yKFBhcnNlU3RhdGUgKnBzdGF0ZSwKQEAgLTExMiw3ICsxMTQsNyBAQCBzdGF0 aWMgTm9kZSAqbWFrZV9udWxsdGVzdF9mcm9tX2Rpc3RpbmN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwK IAkJCQkJCQkJCQkgQV9FeHByICpkaXN0aW5jdGEsIE5vZGUgKmFyZyk7CiBzdGF0aWMgTm9kZSAq bWFrZVBhcmFtU2Vzc2lvblZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCSAg T2lkIHZhcmlkLCBPaWQgdHlwaWQsIGludDMyIHR5cG1vZCwgT2lkIGNvbGxpZCwKLQkJCQkJCQkJ CSAgY2hhciAqYXR0cm5hbWUsIGludCBsb2NhdGlvbik7CisJCQkJCQkJCQkgIGNoYXIgKmF0dHJu YW1lLCBib29sIGZlbmNlZCwgaW50IGxvY2F0aW9uKTsKIAogCiAvKgpAQCAtMzc3LDYgKzM3OSwx MCBAQCB0cmFuc2Zvcm1FeHByUmVjdXJzZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIp CiAJCQlyZXN1bHQgPSB0cmFuc2Zvcm1Kc29uRnVuY0V4cHIocHN0YXRlLCAoSnNvbkZ1bmNFeHBy ICopIGV4cHIpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX1ZhcmlhYmxlRmVuY2U6CisJCQlyZXN1 bHQgPSB0cmFuc2Zvcm1WYXJpYWJsZUZlbmNlKHBzdGF0ZSwgKFZhcmlhYmxlRmVuY2UgKikgZXhw cik7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJLyogc2hvdWxkIG5vdCByZWFjaCBoZXJl ICovCiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLCAoaW50KSBu b2RlVGFnKGV4cHIpKTsKQEAgLTEwMjgsNyArMTAzNCwyMCBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYo UGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAKIAkJCQlub2RlID0gbWFrZVBh cmFtU2Vzc2lvblZhcmlhYmxlKHBzdGF0ZSwKIAkJCQkJCQkJCQkJCXZhcmlkLCB0eXBpZCwgdHlw bW9kLCBjb2xsaWQsCi0JCQkJCQkJCQkJCQlhdHRybmFtZSwgY3JlZi0+bG9jYXRpb24pOworCQkJ CQkJCQkJCQkJYXR0cm5hbWUsIGZhbHNlLCBjcmVmLT5sb2NhdGlvbik7CisKKwkJCQkvKgorCQkJ CSAqIFRoZSB2YXJpYWJsZSBpcyBub3QgaW5zaWRlIHZhcmlhYmxlJ3MgZmVuY2UsIHNvIHJhaXNl IHdhcm5pbmcKKwkJCQkgKiB3aGVuIHZhcmlhYmxlIGZlbmNlIGd1YXJkIGlzIGFjdGl2ZSBhbmQg dGhlIHF1ZXJ5IGhhcyBGUk9NCisJCQkJICogY2xhdXNlLgorCQkJCSAqLworCQkJCWlmIChzZXNz aW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19ndWFyZCAmJiBwc3RhdGUtPnBfcnRhYmxl KQorCQkJCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9BTUJJR1VP VVNfQ09MVU1OKSwKKwkJCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBpcyBu b3QgdXNlZCBpbnNpZGUgdmFyaWFibGUgZmVuY2UiLAorCQkJCQkJCQkJTmFtZUxpc3RUb1N0cmlu ZyhjcmVmLT5maWVsZHMpKSwKKwkJCQkJCQkgZXJyZGV0YWlsKCJUaGUgY29sbGlzaW9uIG9mIHNl c3Npb24gdmFyaWFibGUnIG5hbWVzIGFuZCBjb2x1bW4gbmFtZXMgaXMgcG9zc2libGUuIiksCisJ CQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGNyZWYtPmxvY2F0aW9uKSkpOwogCQkJ fQogCQl9CiAJfQpAQCAtMTA3MSw3ICsxMDkwLDcgQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNl U3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogc3RhdGljIE5vZGUgKgogbWFrZVBhcmFt U2Vzc2lvblZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCSBPaWQgdmFyaWQsIE9p ZCB0eXBpZCwgaW50MzIgdHlwbW9kLCBPaWQgY29sbGlkLAotCQkJCQkJIGNoYXIgKmF0dHJuYW1l LCBpbnQgbG9jYXRpb24pCisJCQkJCQkgY2hhciAqYXR0cm5hbWUsIGJvb2wgZmVuY2VkLCBpbnQg bG9jYXRpb24pCiB7CiAJUGFyYW0JICAgKnBhcmFtOwogCkBAIC0xMDc5LDYgKzEwOTgsNyBAQCBt YWtlUGFyYW1TZXNzaW9uVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCiAJcGFyYW0tPnBh cmFta2luZCA9IFBBUkFNX1ZBUklBQkxFOwogCXBhcmFtLT5wYXJhbXZhcmlkID0gdmFyaWQ7CisJ cGFyYW0tPnBhcmFtdmFyZmVuY2VkID0gZmVuY2VkOwogCXBhcmFtLT5wYXJhbXR5cGUgPSB0eXBp ZDsKIAlwYXJhbS0+cGFyYW10eXBtb2QgPSB0eXBtb2Q7CiAJcGFyYW0tPnBhcmFtY29sbGlkID0g Y29sbGlkOwpAQCAtMTE1Nyw2ICsxMTc3LDU0IEBAIHRyYW5zZm9ybVBhcmFtUmVmKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgUGFyYW1SZWYgKnByZWYpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGlj IE5vZGUgKgordHJhbnNmb3JtVmFyaWFibGVGZW5jZShQYXJzZVN0YXRlICpwc3RhdGUsIFZhcmlh YmxlRmVuY2UgKnZmKQoreworCU5vZGUJICAgKnJlc3VsdDsKKwlPaWQJCQl2YXJpZCA9IEludmFs aWRPaWQ7CisJY2hhcgkgICAqYXR0cm5hbWUgPSBOVUxMOworCWJvb2wJCW5vdF91bmlxdWU7CisK KwkvKiBWYXJpYWJsZUZlbmNlIGNhbiBiZSB1c2VkIG9ubHkgaW4gY29udGV4dCB3aGVuIHZhcmlh YmxlcyBhcmUgc3VwcG9ydGVkICovCisJaWYgKCFleHByX2tpbmRfYWxsb3dzX3Nlc3Npb25fdmFy aWFibGVzKHBzdGF0ZS0+cF9leHByX2tpbmQpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJIGVycm1zZygic2Vzc2lvbiB2 YXJpYWJsZSByZWZlcmVuY2UgaXMgbm90IHN1cHBvcnRlZCBoZXJlIiksCisJCQkgcGFyc2VyX2Vy cnBvc2l0aW9uKHBzdGF0ZSwgdmYtPmxvY2F0aW9uKSkpOworCisJLyogdGFrZXMgYW4gQWNjZXNz U2hhcmVMb2NrIG9uIHRoZSBzZXNzaW9uIHZhcmlhYmxlICovCisJdmFyaWQgPSBJZGVudGlmeVZh cmlhYmxlKHZmLT52YXJuYW1lLCAmYXR0cm5hbWUsICZub3RfdW5pcXVlLCBmYWxzZSk7CisKKwlp ZiAobm90X3VuaXF1ZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0FN QklHVU9VU19QQVJBTUVURVIpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgcmVmZXJl bmNlIFwiJXNcIiBpcyBhbWJpZ3VvdXMiLAorCQkJCQkJTmFtZUxpc3RUb1N0cmluZyh2Zi0+dmFy bmFtZSkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCB2Zi0+bG9jYXRpb24pKSk7 CisKKwlpZiAoT2lkSXNWYWxpZCh2YXJpZCkpCisJeworCQlPaWQJCQl0eXBpZDsKKwkJaW50MzIJ CXR5cG1vZDsKKwkJT2lkCQkJY29sbGlkOworCisJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVf dHlwbW9kX2NvbGxpZCh2YXJpZCwgJnR5cGlkLCAmdHlwbW9kLAorCQkJCQkJCQkJCQkJJmNvbGxp ZCk7CisKKwkJcmVzdWx0ID0gbWFrZVBhcmFtU2Vzc2lvblZhcmlhYmxlKHBzdGF0ZSwKKwkJCQkJ CQkJCQl2YXJpZCwgdHlwaWQsIHR5cG1vZCwgY29sbGlkLAorCQkJCQkJCQkJCWF0dHJuYW1lLCB0 cnVlLCB2Zi0+bG9jYXRpb24pOworCX0KKwllbHNlCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJzZXNzaW9uIHZh cmlhYmxlIFwiJXNcIiBkb2Vzbid0IGV4aXN0IiwKKwkJCQkJCU5hbWVMaXN0VG9TdHJpbmcodmYt PnZhcm5hbWUpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgdmYtPmxvY2F0aW9u KSkpOworCisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyogVGVzdCB3aGV0aGVyIGFuIGFfZXhwciBp cyBhIHBsYWluIE5VTEwgY29uc3RhbnQgb3Igbm90ICovCiBzdGF0aWMgYm9vbAogZXhwcklzTnVs bENvbnN0YW50KE5vZGUgKmFyZykKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV90YXJnZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCA0YWJh MGQ5ZDRkNS4uY2YwMWJmZjY1YTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTIw MzQsNiArMjAzNCwxMyBAQCBGaWd1cmVDb2xuYW1lSW50ZXJuYWwoTm9kZSAqbm9kZSwgY2hhciAq Km5hbWUpCiAJCQkJCQkgKGludCkgKChKc29uRnVuY0V4cHIgKikgbm9kZSktPm9wKTsKIAkJCX0K IAkJCWJyZWFrOworCQljYXNlIFRfVmFyaWFibGVGZW5jZToKKwkJCXsKKwkJCQkvKiByZXR1cm4g bGFzdCBmaWVsZCBuYW1lICovCisJCQkJKm5hbWUgPSBzdHJWYWwobGxhc3QoKChWYXJpYWJsZUZl bmNlICopIG5vZGUpLT52YXJuYW1lKSk7CisJCQkJcmV0dXJuIDI7CisJCQl9CisJCQlicmVhazsK IAkJZGVmYXVsdDoKIAkJCWJyZWFrOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRl eCBmMjNmNTExY2Q1Ni4uYzM0Nzk5MWQxNmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMK QEAgLTg3MzQsOCArODczNCwxNiBAQCBnZXRfcGFyYW1ldGVyKFBhcmFtICpwYXJhbSwgZGVwYXJz ZV9jb250ZXh0ICpjb250ZXh0KQogCS8qIHRyYW5zbGF0ZSBwYXJhbXZhcmlkIHRvIHNlc3Npb24g dmFyaWFibGUgbmFtZSAqLwogCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxF KQogCXsKLQkJYXBwZW5kU3RyaW5nSW5mbyhjb250ZXh0LT5idWYsICIlcyIsCi0JCQkJCQkgZ2Vu ZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHBhcmFtLT5wYXJhbXZhcmlkKSk7CisJCWlmIChw YXJhbS0+cGFyYW12YXJmZW5jZWQpCisJCXsKKwkJCWFwcGVuZFN0cmluZ0luZm8oY29udGV4dC0+ YnVmLCAiVkFSSUFCTEUoJXMpIiwKKwkJCQkJCQkgZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9u YW1lKHBhcmFtLT5wYXJhbXZhcmlkKSk7CisJCX0KKwkJZWxzZQorCQl7CisJCQlhcHBlbmRTdHJp bmdJbmZvKGNvbnRleHQtPmJ1ZiwgIiVzIiwKKwkJCQkJCQkgZ2VuZXJhdGVfc2Vzc2lvbl92YXJp YWJsZV9uYW1lKHBhcmFtLT5wYXJhbXZhcmlkKSk7CisJCX0KIAkJcmV0dXJuOwogCX0KIApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwppbmRleCAzMWQ3MDc4NWIxNC4uYzhjMjhkNzY5YmIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCkBAIC0xNjUzLDYgKzE2NTMsMTUgQEAg c3RydWN0IGNvbmZpZ19ib29sIENvbmZpZ3VyZU5hbWVzQm9vbFtdID0KIAkJZmFsc2UsCiAJCU5V TEwsIE5VTEwsIE5VTEwKIAl9LAorCXsKKwkJeyJzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vf d2FybmluZ19ndWFyZCIsIFBHQ19VU0VSU0VULCBDTElFTlRfQ09OTl9TVEFURU1FTlQsCisJCQln ZXR0ZXh0X25vb3AoIlJhaXNlIGEgd2FybmluZyB3aGVuIHZhcmlhYmxlIGlzIG5vdCB1c2VkIGlu c2lkZSB2YXJpYWJsZSBmZW5jZS4iKSwKKwkJCU5VTEwKKwkJfSwKKwkJJnNlc3Npb25fdmFyaWFi bGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkLAorCQlmYWxzZSwKKwkJTlVMTCwgTlVMTCwgTlVM TAorCX0sCiAJewogCQl7ImRlZmF1bHRfdHJhbnNhY3Rpb25fcmVhZF9vbmx5IiwgUEdDX1VTRVJT RVQsIENMSUVOVF9DT05OX1NUQVRFTUVOVCwKIAkJCWdldHRleHRfbm9vcCgiU2V0cyB0aGUgZGVm YXVsdCByZWFkLW9ubHkgc3RhdHVzIG9mIG5ldyB0cmFuc2FjdGlvbnMuIiksCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFj a2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKaW5kZXggNjZjNjU3N2VjZWIu LjMxMTNlMjQzYmNlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVz cWwuY29uZi5zYW1wbGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNv bmYuc2FtcGxlCkBAIC03NjUsNiArNzY1LDcgQEAgYXV0b3ZhY3V1bV93b3JrZXJfc2xvdHMgPSAx NgkjIGF1dG92YWN1dW0gd29ya2VyIHNsb3RzIHRvIGFsbG9jYXRlCiAjZGVmYXVsdF90cmFuc2Fj dGlvbl9kZWZlcnJhYmxlID0gb2ZmCiAjc2Vzc2lvbl9yZXBsaWNhdGlvbl9yb2xlID0gJ29yaWdp bicKICNzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyA9IG9mZgorI3Nlc3Npb25f dmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkID0gb2ZmCiAjc3RhdGVtZW50X3RpbWVv dXQgPSAwCQkJCSMgaW4gbWlsbGlzZWNvbmRzLCAwIGlzIGRpc2FibGVkCiAjdHJhbnNhY3Rpb25f dGltZW91dCA9IDAJCQkjIGluIG1pbGxpc2Vjb25kcywgMCBpcyBkaXNhYmxlZAogI2xvY2tfdGlt ZW91dCA9IDAJCQkJIyBpbiBtaWxsaXNlY29uZHMsIDAgaXMgZGlzYWJsZWQKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaAppbmRleCAzMjEyMzVjNjQ5MS4uZjczZWMyMGQ2NjUgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmgKQEAgLTMyMSw2ICszMjEsMTYgQEAgdHlwZWRlZiBzdHJ1Y3QgUGFyYW1SZWYKIAlQYXJz ZUxvYwlsb2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiB9 IFBhcmFtUmVmOwogCisvKgorICogVmFyaWFibGVGZW5jZSAtIGVuc3VyZSBzbyBmaWVsZHMgd2ls bCBiZSBpbnRlcnByZXR0ZWQgYXMgYSB2YXJpYWJsZQorICovCit0eXBlZGVmIHN0cnVjdCBWYXJp YWJsZUZlbmNlCit7CisJTm9kZVRhZwkJdHlwZTsKKwlMaXN0CSAgICp2YXJuYW1lOwkJLyogdmFy aWFibGUgbmFtZSAoU3RyaW5nIG5vZGVzKSAqLworCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9r ZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KK30gVmFyaWFibGVGZW5jZTsKKwogLyoK ICAqIEFfRXhwciAtIGluZml4LCBwcmVmaXgsIGFuZCBwb3N0Zml4IGV4cHJlc3Npb25zCiAgKi8K ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUv bm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggM2NjMmYwMTlhYmIuLjk4YmNhNjk0NDgwIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rl cy9wcmltbm9kZXMuaApAQCAtNDExLDYgKzQxMSw4IEBAIHR5cGVkZWYgc3RydWN0IFBhcmFtCiAJ ICogcGFyYW0gaXMgdXNlZCBqdXN0IGZvciBleGVjdXRpb24gb2YgVVBEQVRFIG9wZXJhdGlvbi4K IAkgKi8KIAlib29sCQlwYXJhbWJhc2Vub2RlOworCS8qIHRydWUgd2hlbiB2YXJpYWJsZSBpcyB1 c2VkIGluc2lkZSBhbiBmZW5jZSAqLworCWJvb2wJCXBhcmFtdmFyZmVuY2VkOwogCS8qIHRva2Vu IGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiAJUGFyc2VMb2MJbG9jYXRpb247CiB9IFBh cmFtOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCBiL3NyYy9p bmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgKaW5kZXggZDIyMDkwNzAxODEuLjViZGU0Mzc1OGQx IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCisrKyBiL3NyYy9p bmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgKQEAgLTE4LDYgKzE4LDcgQEAKIC8qIEdVQyBwYXJh bWV0ZXJzICovCiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBUcmFuc2Zvcm1fbnVsbF9lcXVhbHM7 CiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2Fy bmluZzsKK2V4dGVybiBQR0RMTElNUE9SVCBib29sIHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5j ZV93YXJuaW5nX2d1YXJkOwogCiBleHRlcm4gTm9kZSAqdHJhbnNmb3JtRXhwcihQYXJzZVN0YXRl ICpwc3RhdGUsIE5vZGUgKmV4cHIsIFBhcnNlRXhwcktpbmQgZXhwcktpbmQpOwogCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDdjMzUw YWQ1ZWY5Li45YWMwOGExNGUwYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTE5NjksMyArMTk2OSw2MiBAQCBTRVQgc2Vzc2lvbl92 YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOwogRFJPUCBUQUJMRSBwdWJsaWMueHh0 YWI7CiBEUk9QIFNDSEVNQSB4eHRhYiBDQVNDQURFOwogTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0 byBzZXNzaW9uIHZhcmlhYmxlIHh4dGFiLmF2YXIKKy0tIHRlc3Qgc2Vzc2lvbl92YXJpYWJsZXNf dXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlf d2FybmluZyBUTyBvbjsKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19n dWFyZCBUTyBvbjsKK0NSRUFURSBTQ0hFTUEgdGVzdHZhcjsKK1NFVCBzZWFyY2hfcGF0aCBUTyAn dGVzdHZhcic7CitDUkVBVEUgVkFSSUFCTEUgYSBBUyBpbnQ7CitMRVQgYSA9IDEwOworQ1JFQVRF IFRBQkxFIHRlc3RfdGFibGUoYSBpbnQsIGIgaW50KTsKK0lOU0VSVCBJTlRPIHRlc3RfdGFibGUg VkFMVUVTKDIwLCAyMCk7CistLSBubyB3YXJuaW5nCitTRUxFQ1QgYTsKKyBhICAKKy0tLS0KKyAx MAorKDEgcm93KQorCistLSB3YXJuaW5nIHZhcmlhYmxlIGlzIHNoYWRvd2VkCitTRUxFQ1QgYSwg YiBGUk9NIHRlc3RfdGFibGU7CitXQVJOSU5HOiAgc2Vzc2lvbiB2YXJpYWJsZSAiYSIgaXMgc2hh ZG93ZWQKK0xJTkUgMTogU0VMRUNUIGEsIGIgRlJPTSB0ZXN0X3RhYmxlOworICAgICAgICAgICAg ICAgXgorREVUQUlMOiAgU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVt bnMsIHJvdXRpbmUncyB2YXJpYWJsZXMgYW5kIHJvdXRpbmUncyBhcmd1bWVudHMgd2l0aCB0aGUg c2FtZSBuYW1lLgorIGEgIHwgYiAgCistLS0tKy0tLS0KKyAyMCB8IDIwCisoMSByb3cpCisKKy0t IG5vIHdhcm5pbmcKK1NFTEVDVCB2YXJpYWJsZShhKSBGUk9NIHRlc3RfdGFibGU7CisgYSAgCist LS0tCisgMTAKKygxIHJvdykKKworQUxURVIgVEFCTEUgdGVzdF90YWJsZSBEUk9QIENPTFVNTiBh OworLS0gd2FybmluZyAtIHZhcmlhYmxlIGZlbmNlIGlzIG5vdCB1c2VkCitTRUxFQ1QgYSwgYiBG Uk9NIHRlc3RfdGFibGU7CitXQVJOSU5HOiAgc2Vzc2lvbiB2YXJpYWJsZSAiYSIgaXMgbm90IHVz ZWQgaW5zaWRlIHZhcmlhYmxlIGZlbmNlCitMSU5FIDE6IFNFTEVDVCBhLCBiIEZST00gdGVzdF90 YWJsZTsKKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIFRoZSBjb2xsaXNpb24gb2Ygc2Vzc2lv biB2YXJpYWJsZScgbmFtZXMgYW5kIGNvbHVtbiBuYW1lcyBpcyBwb3NzaWJsZS4KKyBhICB8IGIg IAorLS0tLSstLS0tCisgMTAgfCAyMAorKDEgcm93KQorCistLSBubyB3YXJuaW5nCitTRUxFQ1Qg dmFyaWFibGUoYSksIGIgRlJPTSB0ZXN0X3RhYmxlOworIGEgIHwgYiAgCistLS0tKy0tLS0KKyAx MCB8IDIwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgYTsKK0RST1AgVEFCTEUgdGVzdF90YWJs ZTsKK0RST1AgU0NIRU1BIHRlc3R2YXI7CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5 X3dhcm5pbmcgVE8gREVGQVVMVDsKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2Fy bmluZ19ndWFyZCBUTyBERUZBVUxUOworU0VUIHNlYXJjaF9wYXRoIFRPIERFRkFVTFQ7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggNjhiZTQxNWJmMjYu LmM1NDIwMTgzZDk0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsCkBAIC0xMzYwLDMgKzEzNjAsNDQgQEAgU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0 eV93YXJuaW5nIFRPIG9mZjsKIAogRFJPUCBUQUJMRSBwdWJsaWMueHh0YWI7CiBEUk9QIFNDSEVN QSB4eHRhYiBDQVNDQURFOworCistLSB0ZXN0IHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93 YXJuaW5nX2d1YXJkCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8g b247CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQgVE8gb247 CisKK0NSRUFURSBTQ0hFTUEgdGVzdHZhcjsKKworU0VUIHNlYXJjaF9wYXRoIFRPICd0ZXN0dmFy JzsKKworQ1JFQVRFIFZBUklBQkxFIGEgQVMgaW50OworTEVUIGEgPSAxMDsKKworQ1JFQVRFIFRB QkxFIHRlc3RfdGFibGUoYSBpbnQsIGIgaW50KTsKKworSU5TRVJUIElOVE8gdGVzdF90YWJsZSBW QUxVRVMoMjAsIDIwKTsKKworLS0gbm8gd2FybmluZworU0VMRUNUIGE7CisKKy0tIHdhcm5pbmcg dmFyaWFibGUgaXMgc2hhZG93ZWQKK1NFTEVDVCBhLCBiIEZST00gdGVzdF90YWJsZTsKKworLS0g bm8gd2FybmluZworU0VMRUNUIHZhcmlhYmxlKGEpIEZST00gdGVzdF90YWJsZTsKKworQUxURVIg VEFCTEUgdGVzdF90YWJsZSBEUk9QIENPTFVNTiBhOworCistLSB3YXJuaW5nIC0gdmFyaWFibGUg ZmVuY2UgaXMgbm90IHVzZWQKK1NFTEVDVCBhLCBiIEZST00gdGVzdF90YWJsZTsKKworLS0gbm8g d2FybmluZworU0VMRUNUIHZhcmlhYmxlKGEpLCBiIEZST00gdGVzdF90YWJsZTsKKworRFJPUCBW QVJJQUJMRSBhOworRFJPUCBUQUJMRSB0ZXN0X3RhYmxlOworCitEUk9QIFNDSEVNQSB0ZXN0dmFy OworCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gREVGQVVMVDsK K1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19ndWFyZCBUTyBERUZBVUxU OworU0VUIHNlYXJjaF9wYXRoIFRPIERFRkFVTFQ7Ci0tIAoyLjQ5LjAKCg== --0000000000007e4205063527107b Content-Type: text/x-patch; charset="US-ASCII"; name="v20250515-0004-DISCARD-VARIABLES.patch" Content-Disposition: attachment; filename="v20250515-0004-DISCARD-VARIABLES.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_map0d83l4 RnJvbSBhZDlhMTdjNDE0YTJlODE3YTk3MzdmNzVlOTFkN2NhZTEzOTRiMDJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjA6NTQ6MjAgKzAxMDAKU3ViamVjdDogW1BBVENIIDA0 LzIxXSBESVNDQVJEIFZBUklBQkxFUwoKSW1wbGVtZW50YXRpb24gb2YgRElTQ0FSRCBWQVJJQUJM RVMgY29tbWFuZHMgYnkgcmVtb3ZpbmcgaGFzaCB0YWJsZSB3aXRoIHNlc3Npb24gdmFyaWFibGVz CmFuZCByZXNldHRpbmcgcmVsYXRlZCBtZW1vcnkgY29udGV4dC4KLS0tCiBkb2Mvc3JjL3NnbWwv cmVmL2Rpc2NhcmQuc2dtbCAgICAgICAgICAgICAgICAgfCAxMyArKystCiBzcmMvYmFja2VuZC9j b21tYW5kcy9kaXNjYXJkLmMgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgMjggKysrKysrKystCiBzcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwgIDMgKwogc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRlL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAyICsKIHNyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oICAgICAgICAgICAgICAgICB8ICAxICsKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dCAgICB8IDYzICsrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDM2ICsrKysrKysrKysrCiAxMSBm aWxlcyBjaGFuZ2VkLCAxNTggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZGlz Y2FyZC5zZ21sCmluZGV4IGJmNDRjNTIzY2FjLi42MWI5NjdmOWM5YiAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJk LnNnbWwKQEAgLTIxLDcgKzIxLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAKICA8cmVm c3lub3BzaXNkaXY+CiA8c3lub3BzaXM+Ci1ESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBTRVFVRU5D RVMgfCBURU1QT1JBUlkgfCBURU1QIH0KK0RJU0NBUkQgeyBBTEwgfCBQTEFOUyB8IFNFUVVFTkNF UyB8IFRFTVBPUkFSWSB8IFRFTVAgfCBWQVJJQUJMRVMgfQogPC9zeW5vcHNpcz4KICA8L3JlZnN5 bm9wc2lzZGl2PgogCkBAIC02Niw2ICs2NiwxNiBAQCBESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBT RVFVRU5DRVMgfCBURU1QT1JBUlkgfCBURU1QIH0KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJs aXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+VkFSSUFC TEVTPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg UmVzZXRzIHRoZSB2YWx1ZSBvZiBhbGwgc2Vzc2lvbiB2YXJpYWJsZXMuIElmIGEgdmFyaWFibGUK KyAgICAgIGlzIGxhdGVyIHJldXNlZCwgaXQgaXMgcmUtaW5pdGlhbGl6ZWQgdG8gPGxpdGVyYWw+ TlVMTDwvbGl0ZXJhbD4uCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PGxpdGVyYWw+VEVNUE9S QVJZPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5URU1QPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlz dGl0ZW0+CkBAIC05Myw2ICsxMDMsNyBAQCBTRUxFQ1QgcGdfYWR2aXNvcnlfdW5sb2NrX2FsbCgp OwogRElTQ0FSRCBQTEFOUzsKIERJU0NBUkQgVEVNUDsKIERJU0NBUkQgU0VRVUVOQ0VTOworRElT Q0FSRCBWQVJJQUJMRVM7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KICAgICA8L2xpc3RpdGVt PgogICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9k aXNjYXJkLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJkLmMKaW5kZXggODEzMzlhNzVh NTIuLjU5MDRhNmM0OTE3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJk LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlzY2FyZC5jCkBAIC0xOCw2ICsxOCw3IEBA CiAjaW5jbHVkZSAiY29tbWFuZHMvYXN5bmMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kaXNjYXJk LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJlcGFyZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXF1ZW5jZS5oIgogI2luY2x1 ZGUgInV0aWxzL2d1Yy5oIgogI2luY2x1ZGUgInV0aWxzL3BvcnRhbC5oIgpAQCAtNDgsNiArNDks MTAgQEAgRGlzY2FyZENvbW1hbmQoRGlzY2FyZFN0bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkK IAkJCVJlc2V0VGVtcFRhYmxlTmFtZXNwYWNlKCk7CiAJCQlicmVhazsKIAorCQljYXNlIERJU0NB UkRfVkFSSUFCTEVTOgorCQkJUmVzZXRTZXNzaW9uVmFyaWFibGVzKCk7CisJCQlicmVhazsKKwog CQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBESVNDQVJEIHRhcmdldDog JWQiLCBzdG10LT50YXJnZXQpOwogCX0KQEAgLTc1LDQgKzgwLDUgQEAgRGlzY2FyZEFsbChib29s IGlzVG9wTGV2ZWwpCiAJUmVzZXRQbGFuQ2FjaGUoKTsKIAlSZXNldFRlbXBUYWJsZU5hbWVzcGFj ZSgpOwogCVJlc2V0U2VxdWVuY2VDYWNoZXMoKTsKKwlSZXNldFNlc3Npb25WYXJpYWJsZXMoKTsK IH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCBmYTE2ZjQ3MDcy ZS4uZTFjODY5NjY5OTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMK QEAgLTk0LDcgKzk0LDEzIEBAIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrKERhdHVtIGFyZywg aW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCiAKIAllbG9nKERFQlVHMSwgInBnX3Zhcmlh YmxlX2NhY2hlX2NhbGxiYWNrICV1ICV1IiwgY2FjaGVpZCwgaGFzaHZhbHVlKTsKIAotCUFzc2Vy dChzZXNzaW9udmFycyk7CisJLyoKKwkgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgb2Ygc2Vzc2lv biB2YXJpYWJsZXMgYmVpbmcgaW5pdGlhbGl6ZWQsIGV2ZW4gd2hlbgorCSAqIHJlY2VpdmluZyBh biBpbnZhbGlkYXRpb24gY2FsbGJhY2ssIGFzIERJU0NBUkQgWyBBTEwgfCBWQVJJQUJMRVMgXQor CSAqIGRlc3Ryb3lzIHRoZSBoYXNoIHRhYmxlIGVudGlyZWx5LgorCSAqLworCWlmICghc2Vzc2lv bnZhcnMpCisJCXJldHVybjsKIAogCS8qCiAJICogSWYgdGhlIGhhc2h2YWx1ZSBpcyBub3Qgc3Bl Y2lmaWVkLCB3ZSBoYXZlIHRvIHJlY2hlY2sgYWxsIGN1cnJlbnRseQpAQCAtNjE5LDMgKzYyNSwy MyBAQCBwZ19zZXNzaW9uX3ZhcmlhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCiAJcmV0dXJuIChE YXR1bSkgMDsKIH0KKworLyoKKyAqIEZhc3QgZHJvcCBvZiB0aGUgY29tcGxldGUgY29udGVudCBv ZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZXMgaGFzaCB0YWJsZSwgYW5kCisgKiBjbGVhbnVwIG9mIGFu eSBsaXN0IHRoYXQgd291bGRuJ3QgYmUgcmVsZXZhbnQgYW55bW9yZS4KKyAqIFRoaXMgaXMgdXNl ZCBieSB0aGUgRElTQ0FSRCBWQVJJQUJMRVMgKGFuZCBESVNDQVJEIEFMTCkgY29tbWFuZC4KKyAq Lwordm9pZAorUmVzZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQpCit7CisJLyogZGVzdHJveSBoYXNo IHRhYmxlIGFuZCByZXNldCByZWxhdGVkIG1lbW9yeSBjb250ZXh0ICovCisJaWYgKHNlc3Npb252 YXJzKQorCXsKKwkJaGFzaF9kZXN0cm95KHNlc3Npb252YXJzKTsKKwkJc2Vzc2lvbnZhcnMgPSBO VUxMOworCX0KKworCS8qIHJlbGVhc2UgbWVtb3J5IGFsbG9jYXRlZCBieSBzZXNzaW9uIHZhcmlh YmxlcyAqLworCWlmIChTVmFyaWFibGVNZW1vcnlDb250ZXh0ICE9IE5VTEwpCisJCU1lbW9yeUNv bnRleHRSZXNldChTVmFyaWFibGVNZW1vcnlDb250ZXh0KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDk5 ZmFjMzQxMWRhLi4xMDc0ZDYyYjdkYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0yMDg0LDcgKzIwODQsMTMg QEAgRGlzY2FyZFN0bXQ6CiAJCQkJCW4tPnRhcmdldCA9IERJU0NBUkRfU0VRVUVOQ0VTOwogCQkJ CQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBESVNDQVJEIFZBUklBQkxFUworCQkJCXsK KwkJCQkJRGlzY2FyZFN0bXQgKm4gPSBtYWtlTm9kZShEaXNjYXJkU3RtdCk7CiAKKwkJCQkJbi0+ dGFyZ2V0ID0gRElTQ0FSRF9WQVJJQUJMRVM7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9 CiAJCTsKIAogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3NyYy9i YWNrZW5kL3Rjb3AvdXRpbGl0eS5jCmluZGV4IDdhNTA4YTM2NDRmLi42ZTRkMjMxMGY1YyAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNv cC91dGlsaXR5LmMKQEAgLTI5NjIsNiArMjk2Miw5IEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAq cGFyc2V0cmVlKQogCQkJCWNhc2UgRElTQ0FSRF9TRVFVRU5DRVM6CiAJCQkJCXRhZyA9IENNRFRB R19ESVNDQVJEX1NFUVVFTkNFUzsKIAkJCQkJYnJlYWs7CisJCQkJY2FzZSBESVNDQVJEX1ZBUklB QkxFUzoKKwkJCQkJdGFnID0gQ01EVEFHX0RJU0NBUkRfVkFSSUFCTEVTOworCQkJCQlicmVhazsK IAkJCQlkZWZhdWx0OgogCQkJCQl0YWcgPSBDTURUQUdfVU5LTk9XTjsKIAkJCX0KZGlmZiAtLWdp dCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29t cGxldGUuaW4uYwppbmRleCAzOWQxYjZhYTYxMC4uMDZjYmFjNDBjYTAgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmluLmMKQEAgLTQxNTIsNyArNDE1Miw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBw YXR0ZXJuX2lkLAogCiAvKiBESVNDQVJEICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiRElTQ0FSRCIp KQotCQlDT01QTEVURV9XSVRIKCJBTEwiLCAiUExBTlMiLCAiU0VRVUVOQ0VTIiwgIlRFTVAiKTsK KwkJQ09NUExFVEVfV0lUSCgiQUxMIiwgIlBMQU5TIiwgIlNFUVVFTkNFUyIsICJURU1QIiwgIlZB UklBQkxFUyIpOwogCiAvKiBETyAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkRPIikpCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVk ZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggMjM5MWI5YWQ0NDMuLmE4Y2E0M2M4 N2FmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgK KysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0yNyw0ICsy Nyw2IEBAIGV4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBib29sICpp c051bGwpOwogZXh0ZXJuIHZvaWQgRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBM ZXRTdG10ICpzdG10LCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKIAkJCQkJCSAgIFF1ZXJ5RW52aXJv bm1lbnQgKnF1ZXJ5RW52LCBRdWVyeUNvbXBsZXRpb24gKnFjKTsKIAorZXh0ZXJuIHZvaWQgUmVz ZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQpOworCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApp bmRleCA4Zjg3NGEwOGQyOS4uMzIxMjM1YzY0OTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAg LTQwNTYsNiArNDA1Niw3IEBAIHR5cGVkZWYgZW51bSBEaXNjYXJkTW9kZQogCURJU0NBUkRfUExB TlMsCiAJRElTQ0FSRF9TRVFVRU5DRVMsCiAJRElTQ0FSRF9URU1QLAorCURJU0NBUkRfVkFSSUFC TEVTLAogfSBEaXNjYXJkTW9kZTsKIAogdHlwZWRlZiBzdHJ1Y3QgRGlzY2FyZFN0bXQKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9j bWR0YWdsaXN0LmgKaW5kZXggMjIwODJjMzAwMDguLmJlZjBhYzI1MzMxIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRh Z2xpc3QuaApAQCAtMTM1LDYgKzEzNSw3IEBAIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FSRF9BTEws ICJESVNDQVJEIEFMTCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RJ U0NBUkRfUExBTlMsICJESVNDQVJEIFBMQU5TIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NN RFRBRyhDTURUQUdfRElTQ0FSRF9TRVFVRU5DRVMsICJESVNDQVJEIFNFUVVFTkNFUyIsIGZhbHNl LCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RJU0NBUkRfVEVNUCwgIkRJU0NBUkQg VEVNUCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0RJU0NBUkRfVkFS SUFCTEVTLCAiRElTQ0FSRCBWQVJJQUJMRVMiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01E VEFHKENNRFRBR19ETywgIkRPIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURU QUdfRFJPUF9BQ0NFU1NfTUVUSE9ELCAiRFJPUCBBQ0NFU1MgTUVUSE9EIiwgdHJ1ZSwgZmFsc2Us IGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0FHR1JFR0FURSwgIkRST1AgQUdHUkVHQVRF IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dAppbmRleCBmMjI0NjcxODZlMy4uNzlhYzQwNzY4ZjggMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0x NjYzLDMgKzE2NjMsNjYgQEAgRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLmI7CiBE Uk9QIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUiOwogRFJPUCBTQ0hFTUEg OiJEQk5BTUUiOwogUkVTRVQgc2VhcmNoX3BhdGg7CistLSBtZW1vcnkgY2xlYW5pbmcgYnkgRElT Q0FSRCBjb21tYW5kCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOworTEVUIHZhcjEg PSAnSGVsbG8nOworU0VMRUNUIHZhcjE7CisgdmFyMSAgCistLS0tLS0tCisgSGVsbG8KKygxIHJv dykKKworRElTQ0FSRCBBTEw7CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgCisoMSBy b3cpCisKK0xFVCB2YXIxID0gJ0FIT0onOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQor IEFIT0oKKygxIHJvdykKKworRElTQ0FSRCBWQVJJQUJMRVM7CitTRUxFQ1QgdmFyMTsKKyB2YXIx IAorLS0tLS0tCisgCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIGluaXRpYWwg dGVzdCBvZiBkZWJ1ZyBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmdW5jdGlvbgorLS0gc2hvdWxkIGJl IHplcm8gbm93CitESVNDQVJEIFZBUklBQkxFUzsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nl c3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKwor Q1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhcjsKKy0tIHNob3VsZCBiZSB6ZXJvIHN0aWxs CitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50IAor LS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0xFVCB2YXIxID0gJ0FIT0onOworU0VMRUNUIG5h bWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3Zhcmlh YmxlcygpOworIG5hbWUgfCAgICAgIHR5cG5hbWUgICAgICB8IGNhbl9zZWxlY3QgfCBjYW5fdXBk YXRlIAorLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQorIHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IHQgICAgICAgICAgfCB0CisoMSByb3cpCisK K0RJU0NBUkQgVkFSSUFCTEVTOworLS0gc2hvdWxkIGJlIHplcm8gYWdhaW4KK1NFTEVDVCBjb3Vu dCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAg IDAKKygxIHJvdykKKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3Fs CmluZGV4IGU3MjM2MGQ1MjU0Li4yOTU0NzU5YWFlZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtMTE3OCwzICsxMTc4LDM5IEBAIERST1AgVkFSSUFC TEUgOiJEQk5BTUUiLjoiREJOQU1FIi46IkRCTkFNRSI7CiBEUk9QIFNDSEVNQSA6IkRCTkFNRSI7 CiAKIFJFU0VUIHNlYXJjaF9wYXRoOworCistLSBtZW1vcnkgY2xlYW5pbmcgYnkgRElTQ0FSRCBj b21tYW5kCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOworTEVUIHZhcjEgPSAnSGVs bG8nOworU0VMRUNUIHZhcjE7CisKK0RJU0NBUkQgQUxMOworU0VMRUNUIHZhcjE7CisKK0xFVCB2 YXIxID0gJ0FIT0onOworU0VMRUNUIHZhcjE7CisKK0RJU0NBUkQgVkFSSUFCTEVTOworU0VMRUNU IHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gaW5pdGlhbCB0ZXN0IG9mIGRlYnVn IHBnX3Nlc3Npb25fdmFyaWFibGVzIGZ1bmN0aW9uCistLSBzaG91bGQgYmUgemVybyBub3cKK0RJ U0NBUkQgVkFSSUFCTEVTOworCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3Zhcmlh YmxlcygpOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOworCistLSBzaG91bGQg YmUgemVybyBzdGlsbAorU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMo KTsKKworTEVUIHZhcjEgPSAnQUhPSic7CisKK1NFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5fc2Vs ZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworRElTQ0FSRCBW QVJJQUJMRVM7CisKKy0tIHNob3VsZCBiZSB6ZXJvIGFnYWluCitTRUxFQ1QgY291bnQoKikgRlJP TSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwotLSAKMi40OS4wCgo= --0000000000007e4205063527107b Content-Type: text/x-patch; charset="US-ASCII"; name="v20250515-0006-plpgsql-tests.patch" Content-Disposition: attachment; filename="v20250515-0006-plpgsql-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_map0d82y2 RnJvbSA1MTcwMDNjZjM2MGY2NDNjZmM5YTJlZDIyYzA4OTQ2NDEwMzhlNWNhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNDowNjowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDYvMjFdIHBscGdzcWwgdGVzdHMKCi0tLQogc3JjL3BsL3BscGdzcWwvc3JjL01ha2VmaWxlICAg ICAgICAgICAgICAgICAgIHwgICAzICstCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lv bl92YXJpYWJsZS5vdXQgfCAzODIgKysrKysrKysrKysrKysrKysrCiBzcmMvcGwvcGxwZ3NxbC9z cmMvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgfCAgIDEgKwogLi4uL3NyYy9zcWwvcGxwZ3Nx bF9zZXNzaW9uX3ZhcmlhYmxlLnNxbCAgICAgIHwgMjg5ICsrKysrKysrKysrKysKIDQgZmlsZXMg Y2hhbmdlZCwgNjc0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxl Lm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9z ZXNzaW9uX3ZhcmlhYmxlLnNxbAoKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9NYWtl ZmlsZSBiL3NyYy9wbC9wbHBnc3FsL3NyYy9NYWtlZmlsZQppbmRleCA2M2NiOTZmYWUzZS4uYmJj YWUyN2Q0MjIgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9NYWtlZmlsZQorKysgYi9z cmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUKQEAgLTM1LDcgKzM1LDggQEAgUkVHUkVTU19PUFRT ID0gLS1kYm5hbWU9JChQTF9URVNUREIpCiBSRUdSRVNTID0gcGxwZ3NxbF9hcnJheSBwbHBnc3Fs X2NhY2hlIHBscGdzcWxfY2FsbCBwbHBnc3FsX2NvbnRyb2wgXAogCXBscGdzcWxfY29weSBwbHBn c3FsX2RvbWFpbiBwbHBnc3FsX21pc2MgXAogCXBscGdzcWxfcmVjb3JkIHBscGdzcWxfc2ltcGxl IHBscGdzcWxfdHJhbnNhY3Rpb24gXAotCXBscGdzcWxfdHJhcCBwbHBnc3FsX3RyaWdnZXIgcGxw Z3NxbF92YXJwcm9wcworCXBscGdzcWxfdHJhcCBwbHBnc3FsX3RyaWdnZXIgcGxwZ3NxbF92YXJw cm9wcyBcCisJcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlCiAKICMgd2hlcmUgdG8gZmluZCBnZW5f a2V5d29yZGxpc3QucGwgYW5kIHN1YnNpZGlhcnkgZmlsZXMKIFRPT0xTRElSID0gJCh0b3Bfc3Jj ZGlyKS9zcmMvdG9vbHMKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9w bHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVk L3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLmFiNzc5OTAwNTk2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BsL3BscGdz cWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKQEAgLTAsMCArMSwz ODIgQEAKKy0tIHRlc3Qgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBWQVJJQUJMRSBwbHBn c3FsX3N2X3ZhciBBUyBudW1lcmljOworTEVUIHBscGdzcWxfc3ZfdmFyID0gcGkoKTsKKy0tIHBh c3NpbmcgcGFyYW1ldGVycyB0byBETyBibG9jaworRE8gJCQKK0JFR0lOCisgIFJBSVNFIE5PVElD RSAndmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXI7CitFTkQ7 CiskJDsKK05PVElDRTogIHZhbHVlIG9mIHNlc3Npb24gdmFyaWFibGUgaXMgMy4xNDE1OTI2NTM1 ODk3OQorLS0gcGFzc2luZyBvdXRwdXQgZnJvbSBETyBibG9jazsKK0RPICQkCitCRUdJTgorICBM RVQgcGxwZ3NxbF9zdl92YXIgPSAyICogcGkoKTsKK0VORAorJCQ7CitTRUxFQ1QgcGxwZ3NxbF9z dl92YXIgQVMgInBpX211bHRpcGx5XzIiOworICBwaV9tdWx0aXBseV8yICAgCistLS0tLS0tLS0t LS0tLS0tLS0KKyA2LjI4MzE4NTMwNzE3OTU5CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgcGxw Z3NxbF9zdl92YXI7CistLSB0ZXN0IGFjY2VzcyBmcm9tIFBML3BnU1FMCitDUkVBVEUgVkFSSUFC TEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3Zh cjIgQVMgbnVtZXJpYzsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjMgQVMgdmFyY2hh cjsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHdyaXRlcl9mdW5jKCkKK1JFVFVSTlMgdm9p ZCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IDEwOworICBMRVQgcGxwZ3Nx bF9zdl92YXIyID0gcGkoKTsKKyAgLS0gdmVyeSBsb25nIHZhbHVlCisgIExFVCBwbHBnc3FsX3N2 X3ZhcjMgPSBmb3JtYXQoJyglcyknLCByZXBlYXQoJyonLCAxMDAwMCkpOworRU5EOworJCQgTEFO R1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHVwZGF0ZXJfZnVuYygp CitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBwbHBn c3FsX3N2X3ZhcjEgKyAxMDA7CisgIExFVCBwbHBnc3FsX3N2X3ZhcjIgPSBwbHBnc3FsX3N2X3Zh cjIgKyAxMDAwMDAwMDAwMDA7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9z dl92YXIzID0gcGxwZ3NxbF9zdl92YXIzIHx8IGZvcm1hdCgnKCVzKScsIHJlcGVhdCgnKicsIDEw MDAwKSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVO Q1RJT04gcmVhZGVyX2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBSQUlTRSBO T1RJQ0UgJ3ZhcjEgPSAlJywgcGxwZ3NxbF9zdl92YXIxOworICBSQUlTRSBOT1RJQ0UgJ3ZhcjIg PSAlJywgcGxwZ3NxbF9zdl92YXIyOworICBSQUlTRSBOT1RJQ0UgJ2xlbmd0aCBvZiB2YXIzID0g JScsIGxlbmd0aChwbHBnc3FsX3N2X3ZhcjMpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsK Ky0tIGV4ZWN1dGUgaW4gYSB0cmFuc2FjdGlvbgorQkVHSU47CitTRUxFQ1Qgd3JpdGVyX2Z1bmMo KTsKKyB3cml0ZXJfZnVuYyAKKy0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHJl YWRlcl9mdW5jKCk7CitOT1RJQ0U6ICB2YXIxID0gMTAKK05PVElDRTogIHZhcjIgPSAzLjE0MTU5 MjY1MzU4OTc5CitOT1RJQ0U6ICBsZW5ndGggb2YgdmFyMyA9IDEwMDAyCisgcmVhZGVyX2Z1bmMg CistLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCB1cGRhdGVyX2Z1bmMoKTsKKyB1 cGRhdGVyX2Z1bmMgCistLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcmVhZGVy X2Z1bmMoKTsKK05PVElDRTogIHZhcjEgPSAxMTAKK05PVElDRTogIHZhcjIgPSAxMDAwMDAwMDAw MDMuMTQxNTkyNjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMjAwMDQKKyByZWFk ZXJfZnVuYyAKKy0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworRU5EOworLS0gZXhlY3V0ZSBv dXRzaWRlIG9mIGEgdHJhbnNhY3Rpb24KK1NFTEVDVCB3cml0ZXJfZnVuYygpOworIHdyaXRlcl9m dW5jIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsK K05PVElDRTogIHZhcjEgPSAxMAorTk9USUNFOiAgdmFyMiA9IDMuMTQxNTkyNjUzNTg5NzkKK05P VElDRTogIGxlbmd0aCBvZiB2YXIzID0gMTAwMDIKKyByZWFkZXJfZnVuYyAKKy0tLS0tLS0tLS0t LS0KKyAKKygxIHJvdykKKworU0VMRUNUIHVwZGF0ZXJfZnVuYygpOworIHVwZGF0ZXJfZnVuYyAK Ky0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCByZWFkZXJfZnVuYygpOworTk9U SUNFOiAgdmFyMSA9IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAwMy4xNDE1OTI2NTM1 ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorIHJlYWRlcl9mdW5jIAorLS0t LS0tLS0tLS0tLQorIAorKDEgcm93KQorCistLSBleGVjdXRlIGluc2lkZSBhIFBML3BnU1FMIGJs b2NrCitETyAkJAorQkVHSU4KKyAgUEVSRk9STSB3cml0ZXJfZnVuYygpOworICBQRVJGT1JNIHJl YWRlcl9mdW5jKCk7CisgIFBFUkZPUk0gdXBkYXRlcl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVy X2Z1bmMoKTsKK0VORDsKKyQkOworTk9USUNFOiAgdmFyMSA9IDEwCitOT1RJQ0U6ICB2YXIyID0g My4xNDE1OTI2NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAxMDAwMgorTk9USUNF OiAgdmFyMSA9IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAwMy4xNDE1OTI2NTM1ODk3 OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorLS0gcGxhbiBjYWNoZXMgc2hvdWxk IGJlIGNvcnJlY3RseSBpbnZhbGlkYXRlZAorRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEs IHBscGdzcWxfc3ZfdmFyMiwgcGxwZ3NxbF9zdl92YXIzOworQ1JFQVRFIFZBUklBQkxFIHBscGdz cWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIG51 bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIzIEFTIHZhcmNoYXI7CistLSBz aG91bGQgd29yayBhZ2FpbgorRE8gJCQKK0JFR0lOCisgIFBFUkZPUk0gd3JpdGVyX2Z1bmMoKTsK KyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworICBQRVJGT1JNIHVwZGF0ZXJfZnVuYygpOworICBQ RVJGT1JNIHJlYWRlcl9mdW5jKCk7CitFTkQ7CiskJDsKK05PVElDRTogIHZhcjEgPSAxMAorTk9U SUNFOiAgdmFyMiA9IDMuMTQxNTkyNjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0g MTAwMDIKK05PVElDRTogIHZhcjEgPSAxMTAKK05PVElDRTogIHZhcjIgPSAxMDAwMDAwMDAwMDMu MTQxNTkyNjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMjAwMDQKK0RST1AgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3ZfdmFyMzsK K0RST1AgRlVOQ1RJT04gd3JpdGVyX2Z1bmM7CitEUk9QIEZVTkNUSU9OIHJlYWRlcl9mdW5jOwor RFJPUCBGVU5DVElPTiB1cGRhdGVyX2Z1bmM7CistLSBhbm90aGVyIGNoZWNrIG9mIGNvcnJlY3Qg cGxhbiBjYWNoZSBpbnZhbGlkYXRpb24KK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEg QVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBBUyBpbnRbXTsKK0NSRUFU RSBPUiBSRVBMQUNFIEZVTkNUSU9OIHRlc3RfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0RF Q0xBUkUgdiBpbnRbXSBERUZBVUxUICd7fSc7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIx ID0gMTsKKyAgdltwbHBnc3FsX3N2X3ZhcjFdID0gMTAwOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2 OworICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gdjsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMltwbHBn c3FsX3N2X3ZhcjFdID0gLTE7CisgIFJBSVNFIE5PVElDRSAnJScsIHBscGdzcWxfc3ZfdmFyMjsK K0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1QgdGVzdF9mdW5jKCk7CitOT1RJQ0U6 ICB7MTAwfQorTk9USUNFOiAgey0xfQorIHRlc3RfZnVuYyAKKy0tLS0tLS0tLS0tCisgCisoMSBy b3cpCisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CitD UkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjIgQVMgaW50W107CitTRUxFQ1QgdGVzdF9mdW5jKCk7CitOT1RJQ0U6ICB7 MTAwfQorTk9USUNFOiAgey0xfQorIHRlc3RfZnVuYyAKKy0tLS0tLS0tLS0tCisgCisoMSByb3cp CisKK0RST1AgRlVOQ1RJT04gdGVzdF9mdW5jKCk7CitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3Zf dmFyMSwgcGxwZ3NxbF9zdl92YXIyOworLS0gY2hlY2sgc2VjdXJlIGFjY2VzcworQ1JFQVRFIFJP TEUgcmVncmVzc192YXJfb3duZXJfcm9sZTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyX3JlYWRl cl9yb2xlOworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfZXhlY19yb2xlOworR1JBTlQgQUxMIE9O IFNDSEVNQSBwdWJsaWMgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVh ZGVyX3JvbGUsIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFy X293bmVyX3JvbGU7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0xF VCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgUk9MRSBU TyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZh cl9yZWFkX2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0Ug JyUnLCBwbHBnc3FsX3N2X3ZhcjE7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsIFNFQ1VSSVRZ IERFRklORVI7CitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJf ZXhlY19yb2xlOworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXJfcmVhZF9mdW5jKCk7CitFUlJP UjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHBscGdzcWxfc3ZfdmFy MQorQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gInBscGdzcWxfc3ZfdmFyMSIKK1BML3Bn U1FMIGZ1bmN0aW9uIHZhcl9yZWFkX2Z1bmMoKSBsaW5lIDMgYXQgUkFJU0UKK1NFVCBST0xFIFRP IERFRkFVTFQ7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworR1JBTlQgU0VM RUNUIE9OIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBUTyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9s ZTsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9leGVjX3Jv bGU7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXJfcmVhZF9mdW5jKCk7CitOT1RJQ0U6ICAx MAorIHZhcl9yZWFkX2Z1bmMgCistLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VUIFJP TEUgVE8gREVGQVVMVDsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX293bmVyX3JvbGU7CitEUk9Q IFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMTsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgUk9M RSBUTyByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CistLSBzaG91bGQgZmFpbCwgYnV0IG5vdCBjcmFz aAorU0VMRUNUIHZhcl9yZWFkX2Z1bmMoKTsKK0VSUk9SOiAgY29sdW1uICJwbHBnc3FsX3N2X3Zh cjEiIGRvZXMgbm90IGV4aXN0CitMSU5FIDE6IHBscGdzcWxfc3ZfdmFyMQorICAgICAgICBeCitR VUVSWTogIHBscGdzcWxfc3ZfdmFyMQorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHZhcl9y ZWFkX2Z1bmMoKSBsaW5lIDMgYXQgUkFJU0UKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIEZV TkNUSU9OIHZhcl9yZWFkX2Z1bmM7CitSRVZPS0UgQUxMIE9OIFNDSEVNQSBwdWJsaWMgRlJPTSBy ZWdyZXNzX3Zhcl9vd25lcl9yb2xlLCByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZSwgcmVncmVzc192 YXJfZXhlY19yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX293bmVyX3JvbGU7CitEUk9QIFJP TEUgcmVncmVzc192YXJfcmVhZGVyX3JvbGU7CitEUk9QIFJPTEUgcmVncmVzc192YXJfZXhlY19y b2xlOworLS0gcmV0dXJucyB1cGRhdGVkIHZhbHVlCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9z dl92YXIxIEFTIGludDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGluY192YXJfaW50KGlu dCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gQ09B TEVTQ0UocGxwZ3NxbF9zdl92YXIxICsgJDEsICQxKTsKKyAgUkVUVVJOIHBscGdzcWxfc3ZfdmFy MTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1QgaW5jX3Zhcl9pbnQoMSk7Cisg aW5jX3Zhcl9pbnQgCistLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDEKKygxIHJvdykKKworU0VM RUNUIGluY192YXJfaW50KDEpOworIGluY192YXJfaW50IAorLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAyCisoMSByb3cpCisKK1NFTEVDVCBpbmNfdmFyX2ludCgxKTsKKyBpbmNfdmFyX2ludCAK Ky0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMworKDEgcm93KQorCitTRUxFQ1QgaW5jX3Zhcl9p bnQoMSkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisgaW5jX3Zhcl9pbnQgCistLS0tLS0t LS0tLS0tCisgICAgICAgICAgIDQKKyAgICAgICAgICAgNQorICAgICAgICAgICA2CisgICAgICAg ICAgIDcKKyAgICAgICAgICAgOAorICAgICAgICAgICA5CisgICAgICAgICAgMTAKKyAgICAgICAg ICAxMQorICAgICAgICAgIDEyCisgICAgICAgICAgMTMKKygxMCByb3dzKQorCitDUkVBVEUgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIG51bWVyaWM7CitMRVQgcGxwZ3NxbF9zdl92YXIyID0g MC4wOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9udW0obnVtZXJpYykKK1JF VFVSTlMgaW50IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gQ09BTEVTQ0Uo cGxwZ3NxbF9zdl92YXIyICsgJDEsICQxKTsKKyAgUkVUVVJOIHBscGdzcWxfc3ZfdmFyMjsKK0VO RDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1QgaW5jX3Zhcl9udW0oMS4wKTsKKyBpbmNf dmFyX251bSAKKy0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMQorKDEgcm93KQorCitTRUxFQ1Qg aW5jX3Zhcl9udW0oMS4wKTsKKyBpbmNfdmFyX251bSAKKy0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgMgorKDEgcm93KQorCitTRUxFQ1QgaW5jX3Zhcl9udW0oMS4wKTsKKyBpbmNfdmFyX251bSAK Ky0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMworKDEgcm93KQorCitTRUxFQ1QgaW5jX3Zhcl9u dW0oMS4wKSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKTsKKyBpbmNfdmFyX251bSAKKy0tLS0t LS0tLS0tLS0KKyAgICAgICAgICAgNAorICAgICAgICAgICA1CisgICAgICAgICAgIDYKKyAgICAg ICAgICAgNworICAgICAgICAgICA4CisgICAgICAgICAgIDkKKyAgICAgICAgICAxMAorICAgICAg ICAgIDExCisgICAgICAgICAgMTIKKyAgICAgICAgICAxMworKDEwIHJvd3MpCisKK0RST1AgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CitEUk9QIEZVTkNUSU9OIGlu Y192YXJfaW50OworRFJPUCBGVU5DVElPTiBpbmNfdmFyX251bTsKKy0tIHBscGdzcWwgdmFyaWFi bGVzIGFyZSBwcmVmZXJyZWQgYWdhaW5zdCBzZXNzaW9uIHZhcmlhYmxlcworQ1JFQVRFIFZBUklB QkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitETyAkJAorPDxteWJsb2NrPj4KK0RFQ0xBUkUg cGxwZ3NxbF9zdl92YXIxIGludDsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDA7 CisKKyAgcGxwZ3NxbF9zdl92YXIxIDo9IDEwMDA7CisKKyAgLS0gcHJpbnQgMTAwOworICBSQUlT RSBOT1RJQ0UgJ3Nlc3Npb24gdmFyaWFibGUgaXMgJScsIHB1YmxpYy5wbHBnc3FsX3N2X3ZhcjE7 CisKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyaWFibGUgaXMg JScsIG15YmxvY2sucGxwZ3NxbF9zdl92YXIxOworCisgIC0tIHByaW50IDEwMDAKKyAgUkFJU0Ug Tk9USUNFICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQ7CitOT1RJ Q0U6ICBzZXNzaW9uIHZhcmlhYmxlIGlzIDEwMAorTk9USUNFOiAgcGxwZ3NxbCB2YXJpYWJsZSBp cyAxMDAwCitOT1RJQ0U6ICB2YXJpYWJsZSBpcyAxMDAwCitEUk9QIFZBUklBQkxFIHBscGdzcWxf c3ZfdmFyMTsKKy0tIHRoZSB2YWx1ZSBzaG91bGQgbm90IGJlIGNvcnJ1cHRlZAorQ1JFQVRFIFZB UklBQkxFIHBscGdzcWxfc3ZfdiB0ZXh0OworTEVUIHBscGdzcWxfc3ZfdiA9ICdhYmMnOworQ1JF QVRFIEZVTkNUSU9OIGZmdW5jKCkKK1JFVFVSTlMgdGV4dCBBUyAkJAorQkVHSU4KKyAgUkVUVVJO IGdmdW5jKHBscGdzcWxfc3Zfdik7CitFTkQKKyQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUg RlVOQ1RJT04gZ2Z1bmModCB0ZXh0KQorUkVUVVJOUyB0ZXh0IEFTICQkCitCRUdJTgorICBMRVQg cGxwZ3NxbF9zdl92ID0gJ0JPT00hJzsKKyAgUkVUVVJOIHQ7CitFTkQ7CiskJCBMQU5HVUFHRSBw bHBnc3FsOworc2VsZWN0IGZmdW5jKCk7CisgZmZ1bmMgCistLS0tLS0tCisgYWJjCisoMSByb3cp CisKK0RST1AgRlVOQ1RJT04gZmZ1bmMoKTsKK0RST1AgRlVOQ1RJT04gZ2Z1bmModGV4dCk7CitE Uk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdjsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3Ny Yy9tZXNvbi5idWlsZCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9tZXNvbi5idWlsZAppbmRleCAzM2M0 OWFjMjVkOS4uMWQwMWQxYzI2MjkgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9tZXNv bi5idWlsZAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVpbGQKQEAgLTg4LDYgKzg4 LDcgQEAgdGVzdHMgKz0gewogICAgICAgJ3BscGdzcWxfdHJhcCcsCiAgICAgICAncGxwZ3NxbF90 cmlnZ2VyJywKICAgICAgICdwbHBnc3FsX3ZhcnByb3BzJywKKyAgICAgICdwbHBnc3FsX3Nlc3Np b25fdmFyaWFibGUnLAogICAgIF0sCiAgIH0sCiB9CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwgYi9zcmMvcGwvcGxwZ3NxbC9z cmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLmEzY2MyNjRjZjM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Bs L3BscGdzcWwvc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsCkBAIC0wLDAgKzEs Mjg5IEBACistLSB0ZXN0IG9mIHNlc3Npb24gdmFyaWFibGVzCitDUkVBVEUgVkFSSUFCTEUgcGxw Z3NxbF9zdl92YXIgQVMgbnVtZXJpYzsKKworTEVUIHBscGdzcWxfc3ZfdmFyID0gcGkoKTsKKwor LS0gcGFzc2luZyBwYXJhbWV0ZXJzIHRvIERPIGJsb2NrCitETyAkJAorQkVHSU4KKyAgUkFJU0Ug Tk9USUNFICd2YWx1ZSBvZiBzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwbHBnc3FsX3N2X3ZhcjsK K0VORDsKKyQkOworCistLSBwYXNzaW5nIG91dHB1dCBmcm9tIERPIGJsb2NrOworRE8gJCQKK0JF R0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhciA9IDIgKiBwaSgpOworRU5ECiskJDsKKworU0VMRUNU IHBscGdzcWxfc3ZfdmFyIEFTICJwaV9tdWx0aXBseV8yIjsKKworRFJPUCBWQVJJQUJMRSBwbHBn c3FsX3N2X3ZhcjsKKworLS0gdGVzdCBhY2Nlc3MgZnJvbSBQTC9wZ1NRTAorQ1JFQVRFIFZBUklB QkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92 YXIyIEFTIG51bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIzIEFTIHZhcmNo YXI7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHdyaXRlcl9mdW5jKCkKK1JFVFVSTlMg dm9pZCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IDEwOworICBMRVQgcGxw Z3NxbF9zdl92YXIyID0gcGkoKTsKKyAgLS0gdmVyeSBsb25nIHZhbHVlCisgIExFVCBwbHBnc3Fs X3N2X3ZhcjMgPSBmb3JtYXQoJyglcyknLCByZXBlYXQoJyonLCAxMDAwMCkpOworRU5EOworJCQg TEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdXBkYXRlcl9m dW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9 IHBscGdzcWxfc3ZfdmFyMSArIDEwMDsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9IHBscGdzcWxf c3ZfdmFyMiArIDEwMDAwMDAwMDAwMDsKKyAgLS0gdmVyeSBsb25nIHZhbHVlCisgIExFVCBwbHBn c3FsX3N2X3ZhcjMgPSBwbHBnc3FsX3N2X3ZhcjMgfHwgZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcq JywgMTAwMDApKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKKworQ1JFQVRFIE9SIFJF UExBQ0UgRlVOQ1RJT04gcmVhZGVyX2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgor ICBSQUlTRSBOT1RJQ0UgJ3ZhcjEgPSAlJywgcGxwZ3NxbF9zdl92YXIxOworICBSQUlTRSBOT1RJ Q0UgJ3ZhcjIgPSAlJywgcGxwZ3NxbF9zdl92YXIyOworICBSQUlTRSBOT1RJQ0UgJ2xlbmd0aCBv ZiB2YXIzID0gJScsIGxlbmd0aChwbHBnc3FsX3N2X3ZhcjMpOworRU5EOworJCQgTEFOR1VBR0Ug cGxwZ3NxbDsKKworLS0gZXhlY3V0ZSBpbiBhIHRyYW5zYWN0aW9uCitCRUdJTjsKK1NFTEVDVCB3 cml0ZXJfZnVuYygpOworU0VMRUNUIHJlYWRlcl9mdW5jKCk7CitTRUxFQ1QgdXBkYXRlcl9mdW5j KCk7CitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsKK0VORDsKKworLS0gZXhlY3V0ZSBvdXRzaWRlIG9m IGEgdHJhbnNhY3Rpb24KK1NFTEVDVCB3cml0ZXJfZnVuYygpOworU0VMRUNUIHJlYWRlcl9mdW5j KCk7CitTRUxFQ1QgdXBkYXRlcl9mdW5jKCk7CitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsKKworLS0g ZXhlY3V0ZSBpbnNpZGUgYSBQTC9wZ1NRTCBibG9jaworRE8gJCQKK0JFR0lOCisgIFBFUkZPUk0g d3JpdGVyX2Z1bmMoKTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworICBQRVJGT1JNIHVwZGF0 ZXJfZnVuYygpOworICBQRVJGT1JNIHJlYWRlcl9mdW5jKCk7CitFTkQ7CiskJDsKKworLS0gcGxh biBjYWNoZXMgc2hvdWxkIGJlIGNvcnJlY3RseSBpbnZhbGlkYXRlZAorRFJPUCBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMiwgcGxwZ3NxbF9zdl92YXIzOworCitDUkVB VEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBn c3FsX3N2X3ZhcjIgQVMgbnVtZXJpYzsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjMg QVMgdmFyY2hhcjsKKworLS0gc2hvdWxkIHdvcmsgYWdhaW4KK0RPICQkCitCRUdJTgorICBQRVJG T1JNIHdyaXRlcl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsKKyAgUEVSRk9STSB1 cGRhdGVyX2Z1bmMoKTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworRU5EOworJCQ7CisKK0RS T1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3Zf dmFyMzsKKworRFJPUCBGVU5DVElPTiB3cml0ZXJfZnVuYzsKK0RST1AgRlVOQ1RJT04gcmVhZGVy X2Z1bmM7CitEUk9QIEZVTkNUSU9OIHVwZGF0ZXJfZnVuYzsKKworLS0gYW5vdGhlciBjaGVjayBv ZiBjb3JyZWN0IHBsYW4gY2FjaGUgaW52YWxpZGF0aW9uCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjIgQVMgaW50 W107CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHRlc3RfZnVuYygpCitSRVRVUk5TIHZv aWQgQVMgJCQKK0RFQ0xBUkUgdiBpbnRbXSBERUZBVUxUICd7fSc7CitCRUdJTgorICBMRVQgcGxw Z3NxbF9zdl92YXIxID0gMTsKKyAgdltwbHBnc3FsX3N2X3ZhcjFdID0gMTAwOworICBSQUlTRSBO T1RJQ0UgJyUnLCB2OworICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gdjsKKyAgTEVUIHBscGdzcWxf c3ZfdmFyMltwbHBnc3FsX3N2X3ZhcjFdID0gLTE7CisgIFJBSVNFIE5PVElDRSAnJScsIHBscGdz cWxfc3ZfdmFyMjsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCB0ZXN0X2Z1 bmMoKTsKKworRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMjsK KworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFC TEUgcGxwZ3NxbF9zdl92YXIyIEFTIGludFtdOworCitTRUxFQ1QgdGVzdF9mdW5jKCk7CisKK0RS T1AgRlVOQ1RJT04gdGVzdF9mdW5jKCk7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIx LCBwbHBnc3FsX3N2X3ZhcjI7CisKKy0tIGNoZWNrIHNlY3VyZSBhY2Nlc3MKK0NSRUFURSBST0xF IHJlZ3Jlc3NfdmFyX293bmVyX3JvbGU7CitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl9yZWFkZXJf cm9sZTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworR1JBTlQgQUxMIE9O IFNDSEVNQSBwdWJsaWMgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVh ZGVyX3JvbGUsIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworU0VUIFJPTEUgVE8gcmVncmVzc192 YXJfb3duZXJfcm9sZTsKKworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7 CitMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTA7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NF VCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlOworCitDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiB2YXJfcmVhZF9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJ U0UgTk9USUNFICclJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3Nx bCBTRUNVUklUWSBERUZJTkVSOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBU TyByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CisKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFyX3Jl YWRfZnVuYygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNz X3Zhcl9vd25lcl9yb2xlOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFy MSBUTyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKwor U0VUIFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xlOworCistLSBzaG91bGQgYmUgb2sKK1NF TEVDVCB2YXJfcmVhZF9mdW5jKCk7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NFVCBST0xF IFRPIHJlZ3Jlc3NfdmFyX293bmVyX3JvbGU7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92 YXIxOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9l eGVjX3JvbGU7CisKKy0tIHNob3VsZCBmYWlsLCBidXQgbm90IGNyYXNoCitTRUxFQ1QgdmFyX3Jl YWRfZnVuYygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitEUk9QIEZVTkNUSU9OIHZhcl9y ZWFkX2Z1bmM7CisKK1JFVk9LRSBBTEwgT04gU0NIRU1BIHB1YmxpYyBGUk9NIHJlZ3Jlc3NfdmFy X293bmVyX3JvbGUsIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlLCByZWdyZXNzX3Zhcl9leGVjX3Jv bGU7CisKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jl c3NfdmFyX3JlYWRlcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKwor LS0gcmV0dXJucyB1cGRhdGVkIHZhbHVlCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIx IEFTIGludDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9pbnQoaW50KQor UkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBDT0FMRVND RShwbHBnc3FsX3N2X3ZhcjEgKyAkMSwgJDEpOworICBSRVRVUk4gcGxwZ3NxbF9zdl92YXIxOwor RU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworU0VMRUNUIGluY192YXJfaW50KDEpOworU0VM RUNUIGluY192YXJfaW50KDEpOworU0VMRUNUIGluY192YXJfaW50KDEpOworCitTRUxFQ1QgaW5j X3Zhcl9pbnQoMSkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisKK0NSRUFURSBWQVJJQUJM RSBwbHBnc3FsX3N2X3ZhcjIgQVMgbnVtZXJpYzsKKworTEVUIHBscGdzcWxfc3ZfdmFyMiA9IDAu MDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9udW0obnVtZXJpYykKK1JF VFVSTlMgaW50IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gQ09BTEVTQ0Uo cGxwZ3NxbF9zdl92YXIyICsgJDEsICQxKTsKKyAgUkVUVVJOIHBscGdzcWxfc3ZfdmFyMjsKK0VO RDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCBpbmNfdmFyX251bSgxLjApOworU0VM RUNUIGluY192YXJfbnVtKDEuMCk7CitTRUxFQ1QgaW5jX3Zhcl9udW0oMS4wKTsKKworU0VMRUNU IGluY192YXJfbnVtKDEuMCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisKK0RST1AgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CisKK0RST1AgRlVOQ1RJT04g aW5jX3Zhcl9pbnQ7CitEUk9QIEZVTkNUSU9OIGluY192YXJfbnVtOworCistLSBwbHBnc3FsIHZh cmlhYmxlcyBhcmUgcHJlZmVycmVkIGFnYWluc3Qgc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBW QVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworCitETyAkJAorPDxteWJsb2NrPj4KK0RF Q0xBUkUgcGxwZ3NxbF9zdl92YXIxIGludDsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEg PSAxMDA7CisKKyAgcGxwZ3NxbF9zdl92YXIxIDo9IDEwMDA7CisKKyAgLS0gcHJpbnQgMTAwOwor ICBSQUlTRSBOT1RJQ0UgJ3Nlc3Npb24gdmFyaWFibGUgaXMgJScsIHB1YmxpYy5wbHBnc3FsX3N2 X3ZhcjE7CisKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyaWFi bGUgaXMgJScsIG15YmxvY2sucGxwZ3NxbF9zdl92YXIxOworCisgIC0tIHByaW50IDEwMDAKKyAg UkFJU0UgTk9USUNFICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQ7 CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOworCistLSB0aGUgdmFsdWUgc2hvdWxk IG5vdCBiZSBjb3JydXB0ZWQKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3YgdGV4dDsKK0xF VCBwbHBnc3FsX3N2X3YgPSAnYWJjJzsKKworQ1JFQVRFIEZVTkNUSU9OIGZmdW5jKCkKK1JFVFVS TlMgdGV4dCBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIGdmdW5jKHBscGdzcWxfc3Zfdik7CitFTkQK KyQkIExBTkdVQUdFIHBscGdzcWw7CisKK0NSRUFURSBGVU5DVElPTiBnZnVuYyh0IHRleHQpCitS RVRVUk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3YgPSAnQk9PTSEnOwor ICBSRVRVUk4gdDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK3NlbGVjdCBmZnVuYygp OworCitEUk9QIEZVTkNUSU9OIGZmdW5jKCk7CitEUk9QIEZVTkNUSU9OIGdmdW5jKHRleHQpOwor CitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdjsKLS0gCjIuNDkuMAoK --0000000000007e4205063527107b Content-Type: text/x-patch; charset="US-ASCII"; name="v20250515-0007-GUC-session_variables_ambiguity_warning.patch" Content-Disposition: attachment; filename="v20250515-0007-GUC-session_variables_ambiguity_warning.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_map0d82q1 RnJvbSBiMzQ1YzE3ZGJkOGI3NzA3YjVjNGUwMGI0MDAzMTM2OTYyNDg1MDM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMjEgTWF5IDIwMjQgMTc6NTU6MjQgKzAyMDAKU3ViamVjdDogW1BBVENIIDA3 LzIxXSBHVUMgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcKCkluc2lkZSBhbiBx dWVyeSB0aGUgc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkLiBUaGlzIGJlaGF2aW91 ciBpcyBieSBkZXNpZ24sCmJlY2F1c2UgdGhpcyBlbnN1cmluZyBzbyBuZXcgdmFyaWFibGVzIGRv ZXNuJ3QgYnJlYWsgZXhpc3RpbmcgcXVlcmllcy4gQnV0IHRoaXMKYmVoYXZpb3VyIGNhbiBiZSBj b25mdXNpbmcsIGJlY2F1c2Ugc2hhZG93aW5nIGlzIHF1aWV0LgoKV2hlbiBuZXcgR1VDIHNlc3Np b25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIGlzIG9uLCB0aGVuIHRoZSB3YXJuaW5nCmlz IGRpc3BsYXllZCwgd2hlbiBzb21lIHNlc3Npb24gdmFyaWFibGUgY2FuIGJlIHVzZWQsIGJ1dCBp dCBpcyBub3QgdXNlZApkdWUgc2hhZG93aW5nLiBUaGlzIGZlYXR1cmUgc2hvdWxkIHRvIGhlbHAg d2l0aCBpbnZlc3RpZ2F0aW9uIG9mIHVuZXhwZWN0ZWQKYmVoYXZpb3VyLgoKTm90ZTogUExwZ1NR TCBoYXMgYW4gb3B0aW9uIHRoYXQgY29udHJvbHMgcHJpb3JpdHkgb2YgaWRlbnRpZmllcidzIHNw YWNlcwooU1FMIG9yIFBMcGdTUUwpLiBEZWZhdWx0IGJlaGF2aW91ciBkb2Vzbid0IGFsbG93cyBj b2xsaXNpb25zLiBJIGJlbGlldmUKdGhpcyBkZWZhdWx0IGlzIHRoZSBiZXN0LiBJIGNhbm5vdCB0 byBpbXBsZW1lbnQgc2ltaWxhciB2ZXJ5IHN0cmljdApiZWhhdmlvdXIgdG8gc2Vzc2lvbiB2YXJp YWJsZXMsIGJlY2F1c2Ugb25lIHVuaGFwcHkgbmFtZWQgc2Vzc2lvbiB2YXJpYWJsZQpjYW4gYnJl YWtzIGFuIGFwcGxpY2F0aW9ucy4gVGhlIHByb2JsZW1zIHJlbGF0ZWQgdG8gYmFkbHkgbmFtZWQg UExwZ1NRTCdzCnZhcmlibGUgaXMgbGltaXR0ZWQganVzdCB0byBvbmx5IG9uZSByb3V0aW5lLgot LS0KIGRvYy9zcmMvc2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8IDYwICsr KysrKysrKysrKysrKysrKysKIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAg ICAgICAgICB8IDExICsrKysKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAg ICAgICAgICB8IDQ5ICsrKysrKysrKysrKystLQogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNf dGFibGVzLmMgICAgICAgICAgIHwgIDkgKysrCiBzcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3Rn cmVzcWwuY29uZi5zYW1wbGUgfCAgMSArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5o ICAgICAgICAgICAgICAgfCAgMSArCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92 YXJpYWJsZS5vdXQgfCAzMyArKysrKysrKysrCiAuLi4vc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25f dmFyaWFibGUuc3FsICAgICAgfCAyOSArKysrKysrKysKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dCAgICB8IDI2ICsrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyNiArKysrKysrKwogMTAgZmlsZXMgY2hhbmdl ZCwgMjQxIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCmluZGV4IDIzZDJi MWJlNDI0Li5lMzRkYThhYjlkNiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAtMTEzNzQsNiArMTEzNzQsNjYgQEAg ZHluYW1pY19saWJyYXJ5X3BhdGggPSAnL3Vzci9sb2NhbC9saWIvcG9zdGdyZXNxbDokbGliZGly JwogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxp c3RlbnRyeSBpZD0iZ3VjLXNlc3Npb24tdmFyaWFibGVzLWFtYmlndWl0eS13YXJuaW5nIiB4cmVm bGFiZWw9InNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIj4KKyAgICAgIDx0ZXJt Pjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nPC92YXJuYW1lPiAo PHR5cGU+Ym9vbGVhbjwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJtPgorICAgICAgIDxwcmltYXJ5 Pjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nPC92YXJuYW1lPiBj b25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJtPgorICAg ICAgPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBXaGVu IG9uLCBhIHdhcm5pbmcgaXMgcmFpc2VkIHdoZW4gYW55IGlkZW50aWZpZXIgaW4gYSBxdWVyeSBj b3VsZCBiZQorICAgICAgICB1c2VkIGFzIGJvdGggYSBjb2x1bW4gaWRlbnRpZmllciwgcm91dGlu ZSB2YXJpYWJsZSBvciBhIHNlc3Npb24KKyAgICAgICAgdmFyaWFibGUgaWRlbnRpZmllci4gVGhl IGRlZmF1bHQgaXMgPGxpdGVyYWw+b2ZmPC9saXRlcmFsPi4KKyAgICAgICA8L3BhcmE+CisgICAg ICAgPHBhcmE+CisgICAgICAgIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBj b2x1bW4gcmVmZXJlbmNlcyBpbiBhIHF1ZXJ5LCB0aGlzCisgICAgICAgIGlzIGFuIGV4cGVjdGVk IGJlaGF2aW9yLiAgUHJldmlvdXNseSB3b3JraW5nIHF1ZXJpZXMgc2hvdWxkbid0IGVycm9yIG91 dAorICAgICAgICBieSBjcmVhdGluZyBhbnkgc2Vzc2lvbiB2YXJpYWJsZSwgc28gc2Vzc2lvbiB2 YXJpYWJsZXMgYXJlIGFsd2F5cyBzaGFkb3dlZAorICAgICAgICBpZiBhbiBpZGVudGlmaWVyIGlz IGFtYmlndW91cy4gIFZhcmlhYmxlcyBzaG91bGQgYmUgcmVmZXJlbmNlZCB1c2luZworICAgICAg ICBhbnVuYW1iaWd1b3VzIGlkZW50aWZpZXIgd2l0aG91dCBhbnkgcG9zc2liaWxpdHkgZm9yIGEg Y29sbGlzaW9uIHdpdGgKKyAgICAgICAgaWRlbnRpZmllciBvZiBvdGhlciBkYXRhYmFzZSBvYmpl Y3RzIChjb2x1bW4gbmFtZXMgb3IgcmVjb3JkIGZpZWxkcyBuYW1lcykuCisgICAgICAgIFRoZSB3 YXJuaW5nIG1lc3NhZ2VzIGVtaXR0ZWQgd2hlbiBlbmFibGluZyA8dmFybmFtZT5zZXNzaW9uX3Zh cmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZzwvdmFybmFtZT4KKyAgICAgICAgY2FuIGhlbHAgZmlu ZGluZyBzdWNoIGlkZW50aWZpZXIgY29sbGlzaW9uLgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRF IFRBQkxFIGZvbyhhIGludCk7CitJTlNFUlQgSU5UTyBmb28gVkFMVUVTKDEwKTsKK0NSRUFURSBW QVJJQUJMRSBhIGludDsKK0xFVCBhID0gMTAwOworU0VMRUNUIGEgRlJPTSBmb287Cis8L3Byb2dy YW1saXN0aW5nPgorCis8c2NyZWVuPgorIGEKKy0tLS0KKyAxMAorKDEgcm93KQorPC9zY3JlZW4+ CisKKzxwcm9ncmFtbGlzdGluZz4KK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2Fy bmluZyBUTyBvbjsKK1NFTEVDVCBhIEZST00gZm9vOworPC9wcm9ncmFtbGlzdGluZz4KKworPHNj cmVlbj4KK1dBUk5JTkc6ICBzZXNzaW9uIHZhcmlhYmxlICJhIiBpcyBzaGFkb3dlZAorTElORSAx OiBTRUxFQ1QgYSBGUk9NIGZvbzsKKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIFNlc3Npb24g dmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5lJ3MgdmFyaWFibGVz IGFuZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUgbmFtZS4KKyBhCistLS0tCisg MTAKKygxIHJvdykKKzwvc2NyZWVuPgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAg ICAgICAgVGhpcyBmZWF0dXJlIGNhbiBzaWduaWZpY2FudGx5IGluY3JlYXNlIGxvZyBzaXplLCBz byBpdCdzIGRpc2FibGVkIGJ5CisgICAgICAgIGRlZmF1bHQuICBGb3IgdGVzdGluZyBvciBkZXZl bG9wbWVudCBlbnZpcm9ubWVudHMgaXQncyByZWNvbW1lbmRlZCB0bworICAgICAgICBlbmFibGUg aXQgaWYgeW91IHVzZSBzZXNzaW9uIHZhcmlhYmxlcy4KKyAgICAgICA8L3BhcmE+CisgICAgICA8 L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8dmFybGlzdGVudHJ5IGlk PSJndWMtc3RhbmRhcmQtY29uZm9ybWluZy1zdHJpbmdzIiB4cmVmbGFiZWw9InN0YW5kYXJkX2Nv bmZvcm1pbmdfc3RyaW5ncyI+CiAgICAgICA8dGVybT48dmFybmFtZT5zdGFuZGFyZF9jb25mb3Jt aW5nX3N0cmluZ3M8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKICAgICAgIDxpbmRl eHRlcm0+PHByaW1hcnk+c3RyaW5nczwvcHJpbWFyeT48c2Vjb25kYXJ5PnN0YW5kYXJkIGNvbmZv cm1pbmc8L3NlY29uZGFyeT48L2luZGV4dGVybT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9k ZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCBiM2ZjNjIwNTZlOS4uM2EzZjZi ZTc5ZjIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvZGRsLnNnbWwKQEAgLTU0NDYsNiArNTQ0NiwxNyBAQCBTRUxFQ1QgbmFtZSBGUk9NIGZvbzsK ICBBbGljZQogPC9wcm9ncmFtbGlzdGluZz4KICAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAg V2hlbiBhIHF1ZXJ5IGNvbnRhaW5zIGlkZW50aWZpZXJzIG9yIHF1YWxpZmllZCBpZGVudGlmaWVy cyB0aGF0IGNvdWxkIGJlCisgICAgdXNlZCBhcyBib3RoIGEgc2Vzc2lvbiB2YXJpYWJsZSBpZGVu dGlmaWVycyBhbmQgYXMgY29sdW1uIGlkZW50aWZpZXIsCisgICAgdGhlbiB0aGUgY29sdW1uIGlk ZW50aWZpZXIgaXMgcHJlZmVycmVkIGV2ZXJ5IHRpbWUuICBXYXJuaW5ncyBjYW4gYmUKKyAgICBl bWl0dGVkIHdoZW4gdGhpcyBzaXR1YXRpb24gaGFwcGVucyBieSBlbmFibGluZyBjb25maWd1cmF0 aW9uIHBhcmFtZXRlciA8eHJlZgorICAgIGxpbmtlbmQ9Imd1Yy1zZXNzaW9uLXZhcmlhYmxlcy1h bWJpZ3VpdHktd2FybmluZyIvPi4gVXNlciBjYW4gZXhwbGljaXRseQorICAgIHF1YWxpZnkgdGhl IHNvdXJjZSBvYmplY3QgYnkgc3ludGF4IDxsaXRlcmFsPnRhYmxlLmNvbHVtbjwvbGl0ZXJhbD4g b3IKKyAgICA8bGl0ZXJhbD5zY2hlbWEudmFyaWFibGU8L2xpdGVyYWw+LiBJdCBpcyBzdHJvbmds eSByZWNvbW1lbmRlZCB0byByZW5hbWUKKyAgICBzaGFkb3dlZCB2YXJpYWJsZXMgb3IgdXNlIHF1 YWxpZmllZCBuYW1lcyBhbHdheXMuCisgICA8L3BhcmE+CiAgIDwvc2VjdDE+CiAKICA8c2VjdDEg aWQ9ImRkbC1vdGhlcnMiPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4 cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggOTg4ZDFjNjZmNTYu LmIxMGUxYmNhMzA4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5j CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTQ1LDYgKzQ1LDcgQEAK IAogLyogR1VDIHBhcmFtZXRlcnMgKi8KIGJvb2wJCVRyYW5zZm9ybV9udWxsX2VxdWFscyA9IGZh bHNlOworYm9vbAkJc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgPSBmYWxzZTsK IAogCiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtRXhwclJlY3Vyc2UoUGFyc2VTdGF0ZSAqcHN0YXRl LCBOb2RlICpleHByKTsKQEAgLTk2MCwxMSArOTYxLDUxIEBAIHRyYW5zZm9ybUNvbHVtblJlZihQ YXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAkJICoKIAkJICogU0VMRUNUIGZv by5hLCBmb28uYiwgZm9vLmMgRlJPTSBmb287CiAJCSAqCi0JCSAqIEhvd2V2ZXIsIHRoYXQgaXMg dmVyeSBjb25mdXNpbmcsIHNvIHdlIGRpc2FsbG93IGl0LiAgV2UgZG9uJ3QgdHJ5IHRvCi0JCSAq IGlkZW50aWZ5IGEgdmFyaWFibGUgaWYgd2Uga25vdyB0aGF0IGl0IHdvdWxkIGJlIHNoYWRvd2Vk LgotCQkgKiAtLS0tLQorCQkgKiBIb3dldmVyLCB0aGF0IGlzIHZlcnkgY29uZnVzaW5nLCBzbyB3 ZSBkaXNhbGxvdyBpdC4KKwkJICoKKwkJICogV2hlbiBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3Vp dHlfd2FybmluZyBpcyByZXF1ZXN0ZWQsIHRoZW4gd2UKKwkJICogbmVlZCB0byBpZGVudGlmeSBh IHZhcmlhYmxlIGFsdGhvdWdoIHdlIGtub3csIHNvIHRoaXMgdmFyaWFibGUKKwkJICogd291bGQg YmUgc2hhZG93ZWQuCiAJCSAqLwotCQlpZiAoIW5vZGUgJiYgIShyZWxuYW1lICYmIGNyZXJyID09 IENSRVJSX05PX0NPTFVNTikpCisJCWlmIChub2RlIHx8IChyZWxuYW1lICYmIGNyZXJyID09IENS RVJSX05PX0NPTFVNTikpCisJCXsKKwkJCS8qCisJCQkgKiBJbiB0aGlzIHBhdGggd2UganVzdCB0 cnkgKGlmIGl0IGlzIHdhbnRlZCkgZGV0ZWN0IGlmIHNlc3Npb24KKwkJCSAqIHZhcmlhYmxlIGlz IHNoYWRvd2VkLgorCQkJICovCisJCQlpZiAoc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dh cm5pbmcpCisJCQl7CisJCQkJLyoKKwkJCQkgKiBUaGUgQWNjZXNzU2hhcmVMb2NrIGlzIGNyZWF0 ZWQgb24gcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlLgorCQkJCSAqIFRoZSBsb2NrIHdpbGwgYmUg a2VwdCBmb3IgdGhlIHdob2xlIHRyYW5zYWN0aW9uLgorCQkJCSAqLworCQkJCXZhcmlkID0gSWRl bnRpZnlWYXJpYWJsZShjcmVmLT5maWVsZHMsICZhdHRybmFtZSwgJm5vdF91bmlxdWUsIHRydWUp OworCisJCQkJaWYgKE9pZElzVmFsaWQodmFyaWQpKQorCQkJCXsKKwkJCQkJLyogdGhpcyBwYXRo IHdpbGwgZW5kaW5nIGJ5IFdBUk5JTkcuIFVubG9jayB2YXJpYWJsZSBmaXJzdCAqLworCQkJCQlV bmxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCAwLCBBY2Nlc3NT aGFyZUxvY2spOworCisJCQkJCWlmIChub2RlKQorCQkJCQkJZXJlcG9ydChXQVJOSU5HLAorCQkJ CQkJCQkoZXJyY29kZShFUlJDT0RFX0FNQklHVU9VU19DT0xVTU4pLAorCQkJCQkJCQkgZXJybXNn KCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBpcyBzaGFkb3dlZCIsCisJCQkJCQkJCQkJTmFtZUxp c3RUb1N0cmluZyhjcmVmLT5maWVsZHMpKSwKKwkJCQkJCQkJIGVycmRldGFpbCgiU2Vzc2lvbiB2 YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJvdXRpbmUncyB2YXJpYWJsZXMg YW5kIHJvdXRpbmUncyBhcmd1bWVudHMgd2l0aCB0aGUgc2FtZSBuYW1lLiIpLAorCQkJCQkJCQkg cGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgY3JlZi0+bG9jYXRpb24pKSk7CisJCQkJCWVsc2UK KwkJCQkJCS8qIHNlc3Npb24gdmFyaWFibGUgaXMgc2hhZG93ZWQgYnkgUlRFICovCisJCQkJCQll cmVwb3J0KFdBUk5JTkcsCisJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfQU1CSUdVT1VTX0NPTFVN TiksCisJCQkJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIGlzIHNoYWRv d2VkIiwKKwkJCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVf bmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2 YXJpZCkpLAorCQkJCQkJCQkgZXJyZGV0YWlsKCJTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgc2hh ZG93ZWQgYnkgdGFibGVzIG9yIHRhYmxlJ3MgYWxpYXNlcyB3aXRoIHRoZSBzYW1lIG5hbWUuIiks CisJCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjcmVmLT5sb2NhdGlvbikpKTsK KwkJCQl9CisJCQl9CisJCX0KKwkJZWxzZQogCQl7CiAJCQkvKiB0YWtlcyBhbiBBY2Nlc3NTaGFy ZUxvY2sgb24gdGhlIHNlc3Npb24gdmFyaWFibGUgKi8KIAkJCXZhcmlkID0gSWRlbnRpZnlWYXJp YWJsZShjcmVmLT5maWVsZHMsICZhdHRybmFtZSwgJm5vdF91bmlxdWUsIGZhbHNlKTsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKaW5kZXggMmY4Y2JkODY3NTkuLjMxZDcwNzg1YjE0IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwpAQCAtMTY0NCw2ICsxNjQ0LDE1IEBAIHN0 cnVjdCBjb25maWdfYm9vbCBDb25maWd1cmVOYW1lc0Jvb2xbXSA9CiAJCWZhbHNlLAogCQlOVUxM LCBOVUxMLCBOVUxMCiAJfSwKKwl7CisJCXsic2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dh cm5pbmciLCBQR0NfVVNFUlNFVCwgQ0xJRU5UX0NPTk5fU1RBVEVNRU5ULAorCQkJZ2V0dGV4dF9u b29wKCJSYWlzZSBhIHdhcm5pbmcgd2hlbiByZWZlcmVuY2UgdG8gYSBzZXNzaW9uIHZhcmlhYmxl IGlzIGFtYmlndW91cy4iKSwKKwkJCU5VTEwKKwkJfSwKKwkJJnNlc3Npb25fdmFyaWFibGVzX2Ft YmlndWl0eV93YXJuaW5nLAorCQlmYWxzZSwKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCiAJewog CQl7ImRlZmF1bHRfdHJhbnNhY3Rpb25fcmVhZF9vbmx5IiwgUEdDX1VTRVJTRVQsIENMSUVOVF9D T05OX1NUQVRFTUVOVCwKIAkJCWdldHRleHRfbm9vcCgiU2V0cyB0aGUgZGVmYXVsdCByZWFkLW9u bHkgc3RhdHVzIG9mIG5ldyB0cmFuc2FjdGlvbnMuIiksCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGlscy9t aXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKaW5kZXggMzQ4MjZkMDEzODAuLjY2YzY1NzdlY2Vi IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1w bGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBA IC03NjQsNiArNzY0LDcgQEAgYXV0b3ZhY3V1bV93b3JrZXJfc2xvdHMgPSAxNgkjIGF1dG92YWN1 dW0gd29ya2VyIHNsb3RzIHRvIGFsbG9jYXRlCiAjZGVmYXVsdF90cmFuc2FjdGlvbl9yZWFkX29u bHkgPSBvZmYKICNkZWZhdWx0X3RyYW5zYWN0aW9uX2RlZmVycmFibGUgPSBvZmYKICNzZXNzaW9u X3JlcGxpY2F0aW9uX3JvbGUgPSAnb3JpZ2luJworI3Nlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0 eV93YXJuaW5nID0gb2ZmCiAjc3RhdGVtZW50X3RpbWVvdXQgPSAwCQkJCSMgaW4gbWlsbGlzZWNv bmRzLCAwIGlzIGRpc2FibGVkCiAjdHJhbnNhY3Rpb25fdGltZW91dCA9IDAJCQkjIGluIG1pbGxp c2Vjb25kcywgMCBpcyBkaXNhYmxlZAogI2xvY2tfdGltZW91dCA9IDAJCQkJIyBpbiBtaWxsaXNl Y29uZHMsIDAgaXMgZGlzYWJsZWQKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV9leHByLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCmluZGV4IGVmYmFmZjhl NzEwLi5kMjIwOTA3MDE4MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4 cHIuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCkBAIC0xNyw2ICsxNyw3 IEBACiAKIC8qIEdVQyBwYXJhbWV0ZXJzICovCiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBUcmFu c2Zvcm1fbnVsbF9lcXVhbHM7CitleHRlcm4gUEdETExJTVBPUlQgYm9vbCBzZXNzaW9uX3Zhcmlh Ymxlc19hbWJpZ3VpdHlfd2FybmluZzsKIAogZXh0ZXJuIE5vZGUgKnRyYW5zZm9ybUV4cHIoUGFy c2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBQYXJzZUV4cHJLaW5kIGV4cHJLaW5kKTsKIApk aWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92 YXJpYWJsZS5vdXQgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9u X3ZhcmlhYmxlLm91dAppbmRleCBhYjc3OTkwMDU5Ni4uYTY1MjNmN2FmZTIgMTAwNjQ0Ci0tLSBh L3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0 CisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFi bGUub3V0CkBAIC0zNTQsNiArMzU0LDM5IEBAICQkOwogTk9USUNFOiAgc2Vzc2lvbiB2YXJpYWJs ZSBpcyAxMDAKIE5PVElDRTogIHBscGdzcWwgdmFyaWFibGUgaXMgMTAwMAogTk9USUNFOiAgdmFy aWFibGUgaXMgMTAwMAorLS0gYWdhaW50IHdpdGggc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5 X3dhcm5pbmcob24pCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8g b247CitETyAkJAorPDxteWJsb2NrPj4KK0RFQ0xBUkUgcGxwZ3NxbF9zdl92YXIxIGludDsKK0JF R0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDA7CisKKyAgLS0gc2hvdWxkIGJlIG9rIHdp dGhvdXQgd2FybmluZworICBwbHBnc3FsX3N2X3ZhcjEgOj0gMTAwMDsKKworICAtLSBzaG91bGQg YmUgb2sgd2l0aG91dCB3YXJuaW5nCisgIC0tIHByaW50IDEwMDsKKyAgUkFJU0UgTk9USUNFICdz ZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwdWJsaWMucGxwZ3NxbF9zdl92YXIxOworCisgIC0tIHNo b3VsZCBiZSBvayB3aXRob3V0IHdhcm5pbmcKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJ Q0UgJ3BscGdzcWwgdmFyaWFibGUgaXMgJScsIG15YmxvY2sucGxwZ3NxbF9zdl92YXIxOworCisg IC0tIHNob3VsZCB0byBwcmludCBwbHBnc3FsIHZhcmlhYmxlIHdpdGggd2FybmluZworICAtLSBw cmludCAxMDAwCisgIFJBSVNFIE5PVElDRSAndmFyaWFibGUgaXMgJScsIHBscGdzcWxfc3ZfdmFy MTsKK0VORDsKKyQkOworTk9USUNFOiAgc2Vzc2lvbiB2YXJpYWJsZSBpcyAxMDAKK05PVElDRTog IHBscGdzcWwgdmFyaWFibGUgaXMgMTAwMAorV0FSTklORzogIHNlc3Npb24gdmFyaWFibGUgInBs cGdzcWxfc3ZfdmFyMSIgaXMgc2hhZG93ZWQKK0xJTkUgMTogcGxwZ3NxbF9zdl92YXIxCisgICAg ICAgIF4KK0RFVEFJTDogIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1 bW5zLCByb3V0aW5lJ3MgdmFyaWFibGVzIGFuZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhl IHNhbWUgbmFtZS4KK1FVRVJZOiAgcGxwZ3NxbF9zdl92YXIxCitOT1RJQ0U6ICB2YXJpYWJsZSBp cyAxMDAwCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOwog RFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjE7CiAtLSB0aGUgdmFsdWUgc2hvdWxkIG5vdCBi ZSBjb3JydXB0ZWQKIENSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3YgdGV4dDsKZGlmZiAtLWdp dCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbCBi L3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbAppbmRl eCBhM2NjMjY0Y2YzOC4uOWI4ZTkwZTgxZmEgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3Ny Yy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbAorKysgYi9zcmMvcGwvcGxwZ3NxbC9z cmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKQEAgLTI2MCw2ICsyNjAsMzUgQEAg QkVHSU4KIEVORDsKICQkOwogCistLSBhZ2FpbnQgd2l0aCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJp Z3VpdHlfd2FybmluZyhvbikKKworU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJu aW5nIFRPIG9uOworCitETyAkJAorPDxteWJsb2NrPj4KK0RFQ0xBUkUgcGxwZ3NxbF9zdl92YXIx IGludDsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDA7CisKKyAgLS0gc2hvdWxk IGJlIG9rIHdpdGhvdXQgd2FybmluZworICBwbHBnc3FsX3N2X3ZhcjEgOj0gMTAwMDsKKworICAt LSBzaG91bGQgYmUgb2sgd2l0aG91dCB3YXJuaW5nCisgIC0tIHByaW50IDEwMDsKKyAgUkFJU0Ug Tk9USUNFICdzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwdWJsaWMucGxwZ3NxbF9zdl92YXIxOwor CisgIC0tIHNob3VsZCBiZSBvayB3aXRob3V0IHdhcm5pbmcKKyAgLS0gcHJpbnQgMTAwMAorICBS QUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyaWFibGUgaXMgJScsIG15YmxvY2sucGxwZ3NxbF9zdl92 YXIxOworCisgIC0tIHNob3VsZCB0byBwcmludCBwbHBnc3FsIHZhcmlhYmxlIHdpdGggd2Fybmlu ZworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElDRSAndmFyaWFibGUgaXMgJScsIHBscGdz cWxfc3ZfdmFyMTsKK0VORDsKKyQkOworCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5 X3dhcm5pbmcgVE8gb2ZmOworCiBEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMTsKIAogLS0g dGhlIHZhbHVlIHNob3VsZCBub3QgYmUgY29ycnVwdGVkCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDI3ODNjYWE4NDQ2Li43YzM1MGFk NWVmOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQKQEAgLTE1MjQsNiArMTUyNCw5IEBAIENSRUFURSBUQUJMRSB2YXJ0ZXN0X2ZvbyhhIGlu dCwgYiBpbnQpOwogSU5TRVJUIElOVE8gdmFydGVzdF9mb28gVkFMVUVTKDEwLDIwKSwgKDMwLDQw KTsKIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcnRlc3RfZm9vOwogTEVUIHZhcjEgPSAoMTAw LDIwMCk7CistLSBubyB2YXJpYWJsZSBpcyBzaGFkb3dlZCBoZXJlCistLSBubyB3YXJuaW5nIGV4 cGVjdGVkCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb247CiAt LSBzaG91bGQgdG8gZmFpbAogU0VMRUNUIHZhcjEuKiBGUk9NIHZhcnRlc3RfZm9vOwogRVJST1I6 ICBtaXNzaW5nIEZST00tY2xhdXNlIGVudHJ5IGZvciB0YWJsZSAidmFyMSIKQEAgLTE1NDksNiAr MTU1Miw3IEBAIFNFTEVDVCBjb3VudCh2YXIxLiopIEZST00gdmFydGVzdF9mb28gdmFyMTsKICAg ICAgMgogKDEgcm93KQogCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcg VE8gb2ZmOwogU0VUIFNFQVJDSF9QQVRIIFRPIERFRkFVTFQ7CiBEUk9QIFNDSEVNQSB2YXJ0ZXN0 IENBU0NBREU7CiBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDIgb3RoZXIgb2JqZWN0cwpAQCAt MTk0MywzICsxOTQ3LDI1IEBAIFNFTEVDVCB2YXIxOwogKDEgcm93KQogCiBEUk9QIFZBUklBQkxF IHZhcjEsIHZhcjI7CistLSB0ZXN0IHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5n CitDUkVBVEUgU0NIRU1BIHh4dGFiOworQ1JFQVRFIFZBUklBQkxFIHh4dGFiLmF2YXIgaW50Owor Q1JFQVRFIFRBQkxFIHB1YmxpYy54eHRhYihhdmFyIGludCk7CitJTlNFUlQgSU5UTyBwdWJsaWMu eHh0YWIgVkFMVUVTKDEpOworTEVUIHh4dGFiLmF2YXIgPSAyMDsKK1NFVCBzZXNzaW9uX3Zhcmlh Ymxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKKy0tLSBzaG91bGQgdG8gcmFpc2Ugd2Fybmlu Zywgc2hvdyAxCitTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHB1YmxpYy54eHRhYjsKK1dBUk5JTkc6 ICBzZXNzaW9uIHZhcmlhYmxlICJ4eHRhYi5hdmFyIiBpcyBzaGFkb3dlZAorTElORSAxOiBTRUxF Q1QgeHh0YWIuYXZhciBGUk9NIHB1YmxpYy54eHRhYjsKKyAgICAgICAgICAgICAgIF4KK0RFVEFJ TDogIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5l J3MgdmFyaWFibGVzIGFuZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUgbmFtZS4K KyBhdmFyIAorLS0tLS0tCisgICAgMQorKDEgcm93KQorCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNf YW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOworRFJPUCBUQUJMRSBwdWJsaWMueHh0YWI7CitEUk9Q IFNDSEVNQSB4eHRhYiBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9u IHZhcmlhYmxlIHh4dGFiLmF2YXIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nl c3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFi bGVzLnNxbAppbmRleCBhNjI0YWI4YjY3Zi4uNjhiZTQxNWJmMjYgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTEwNzksNiArMTA3OSwxMCBAQCBJTlNF UlQgSU5UTyB2YXJ0ZXN0X2ZvbyBWQUxVRVMoMTAsMjApLCAoMzAsNDApOwogQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgdmFydGVzdF9mb287CiBMRVQgdmFyMSA9ICgxMDAsMjAwKTsKIAorLS0gbm8g dmFyaWFibGUgaXMgc2hhZG93ZWQgaGVyZQorLS0gbm8gd2FybmluZyBleHBlY3RlZAorU0VUIHNl c3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9uOworCiAtLSBzaG91bGQgdG8g ZmFpbAogU0VMRUNUIHZhcjEuKiBGUk9NIHZhcnRlc3RfZm9vOwogCkBAIC0xMDkxLDYgKzEwOTUs OCBAQCBTRUxFQ1QgY291bnQodmFyMS4qKSBGUk9NIHZhcnRlc3RfZm9vOwogLS0gc2hvdWxkIGJl IG9rCiBTRUxFQ1QgY291bnQodmFyMS4qKSBGUk9NIHZhcnRlc3RfZm9vIHZhcjE7CiAKK1NFVCBz ZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvZmY7CisKIFNFVCBTRUFSQ0hf UEFUSCBUTyBERUZBVUxUOwogRFJPUCBTQ0hFTUEgdmFydGVzdCBDQVNDQURFOwogCkBAIC0xMzM0 LDMgKzEzNDAsMjMgQEAgQkVHSU47IERST1AgVkFSSUFCTEUgdmFyMTsgUk9MTEJBQ0s7CiBTRUxF Q1QgdmFyMTsKIAogRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIyOworCistLSB0ZXN0IHNlc3Npb25f dmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nCitDUkVBVEUgU0NIRU1BIHh4dGFiOworCitDUkVB VEUgVkFSSUFCTEUgeHh0YWIuYXZhciBpbnQ7CisKK0NSRUFURSBUQUJMRSBwdWJsaWMueHh0YWIo YXZhciBpbnQpOworCitJTlNFUlQgSU5UTyBwdWJsaWMueHh0YWIgVkFMVUVTKDEpOworCitMRVQg eHh0YWIuYXZhciA9IDIwOworCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5p bmcgVE8gb247CistLS0gc2hvdWxkIHRvIHJhaXNlIHdhcm5pbmcsIHNob3cgMQorU0VMRUNUIHh4 dGFiLmF2YXIgRlJPTSBwdWJsaWMueHh0YWI7CisKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJp Z3VpdHlfd2FybmluZyBUTyBvZmY7CisKK0RST1AgVEFCTEUgcHVibGljLnh4dGFiOworRFJPUCBT Q0hFTUEgeHh0YWIgQ0FTQ0FERTsKLS0gCjIuNDkuMAoK --0000000000007e4205063527107b Content-Type: text/x-patch; charset="US-ASCII"; name="v20250515-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Disposition: attachment; filename="v20250515-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_map0d83a3 RnJvbSBlZWUwODEyNTliZTg2NjBkYmRhODk5YmQ5NGExODNhZGJjNTdmYTU4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAwOTozMToyOCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDUvMjFdIG1lbW9yeSBjbGVhbmluZyBhZnRlciBEUk9QIFZBUklBQkxFCgpBY2NlcHRpbmcgYSBz aW52YWwgbWVzc2FnZSBpbnZhbGlkYXRlcyBlbnRyaWVzIGluIHRoZSAic2Vzc2lvbnZhcnMiIGhh c2ggdGFibGUuClRoZXNlIGVudHJpZXMgYXJlIHZhbGlkYXRlZCBiZWZvcmUgYW55IHJlYWQgb3Ig d3JpdGUgb3BlcmF0aW9ucyBvbiBzZXNzaW9uIHZhcmlhYmxlcy4KV2hlbiB0aGUgZW50cnkgY2Fu bm90IGJlIHZhbGlkYXRlZCwgaXQgaXMgcmVtb3ZlZC4gIFJlbW92YWwgd2lsbCBiZSBkZWxheWVk IHdoZW4KdGhlIHZhcmlhYmxlIHdhcyBkcm9wcGVkIGJ5IHRoZSBjdXJyZW50IHRyYW5zYWN0aW9u LCB3aGljaCBjb3VsZCBzdGlsbCBiZSByb2xsZWQgYmFjay4KLS0tCiBzcmMvYmFja2VuZC9jYXRh bG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDcgKy0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDE1MyArKysrKysrKysrKy0KIHNyYy9pbmNs dWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgMiArCiAuLi4vaXNvbGF0 aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0ICAgfCAxMTAgKysrKysrKysrCiBzcmMv dGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlICAgICAgICAgfCAgIDEgKwogLi4uL2lz b2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgICAgIHwgIDUwICsrKysKIC4uLi9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDIxNyArKysrKysrKysr KysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8 IDEyMCArKysrKysrKysrCiA4IGZpbGVzIGNoYW5nZWQsIDY1NSBpbnNlcnRpb25zKCspLCA1IGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3Rl ZC9zZXNzaW9uLXZhcmlhYmxlLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xh dGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxl LmMKaW5kZXggYmI0NDVlOTQzNGIuLmQ2NzJkMmE5Y2IzIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJp YWJsZS5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24u aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfdmFyaWFibGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAj aW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKICNp bmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgpAQCAtMjMwLDcgKzIzMSw4IEBAIENyZWF0ZVZhcmlh YmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiB9CiAK IC8qCi0gKiBEcm9wIHZhcmlhYmxlIGJ5IE9JRAorICogRHJvcCB2YXJpYWJsZSBieSBPSUQsIGFu ZCByZWdpc3RlciB0aGUgbmVlZGVkIHNlc3Npb24gdmFyaWFibGUKKyAqIGNsZWFudXAuCiAgKi8K IHZvaWQKIERyb3BWYXJpYWJsZUJ5SWQoT2lkIHZhcmlkKQpAQCAtMjUwLDQgKzI1Miw3IEBAIERy b3BWYXJpYWJsZUJ5SWQoT2lkIHZhcmlkKQogCVJlbGVhc2VTeXNDYWNoZSh0dXApOwogCiAJdGFi bGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCS8qIGRvIHRoZSBuZWNlc3Nhcnkg Y2xlYW51cCBpbiBsb2NhbCBtZW1vcnksIGlmIG5lZWRlZCAqLworCVNlc3Npb25WYXJpYWJsZURy b3BQb3N0cHJvY2Vzcyh2YXJpZCk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMKaW5kZXggZTFjODY5NjY5OTguLjE1OTZkOTRmYjAzIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0xNCw2ICsxNCw3IEBACiAgKi8KICNpbmNsdWRlICJw b3N0Z3Jlcy5oIgogCisjaW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgog I2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgiCkBAIC02Nyw2ICs2OCwxNCBA QCB0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVEYXRhCiAJdm9pZAkgICAqZG9tYWluX2NoZWNrX2V4 dHJhOwogCUxvY2FsVHJhbnNhY3Rpb25JZCBkb21haW5fY2hlY2tfZXh0cmFfbHhpZDsKIAorCS8q CisJICogVG9wIGxldmVsIGxvY2FsIHRyYW5zYWN0aW9uIGlkIG9mIHRoZSBsYXN0IHRyYW5zYWN0 aW9uIHRoYXQgZHJvcHBlZCB0aGUKKwkgKiB2YXJpYWJsZSwgaWYgYW55LiAgV2UgbmVlZCB0aGlz IGluZm9ybWF0aW9uIHRvIGF2b2lkIGZyZWVpbmcgbWVtb3J5IGZvcgorCSAqIHZhcmlhYmxlcyBk cm9wcGVkIGJ5IHRoZSBsb2NhbCBiYWNrZW5kLCBpbiBjYXNlIHRoZSBvcGVyYXRpb24gaXMgcm9s bGVkCisJICogYmFjay4KKwkgKi8KKwlMb2NhbFRyYW5zYWN0aW9uSWQgZHJvcF9seGlkOworCiAJ LyoKIAkgKiBTdG9yZWQgdmFsdWUgYW5kIHR5cGUgZGVzY3JpcHRpb24gY2FuIGJlIG91dGRhdGVk IHdoZW4gd2UgcmVjZWl2ZSBhCiAJICogc2ludmFsIG1lc3NhZ2UuICBXZSB0aGVuIGhhdmUgdG8g Y2hlY2sgaWYgdGhlIHN0b3JlZCBkYXRhIGFyZSBzdGlsbApAQCAtODMsNiArOTIsMTcgQEAgc3Rh dGljIEhUQUIgKnNlc3Npb252YXJzID0gTlVMTDsJLyogaGFzaCB0YWJsZSBmb3Igc2Vzc2lvbiB2 YXJpYWJsZXMgKi8KIAogc3RhdGljIE1lbW9yeUNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4 dCA9IE5VTEw7CiAKKy8qIGJlY29tZXMgdHJ1ZSB3aGVuIHdlIHJlY2VpdmUgYSBzaW52YWwgbWVz c2FnZSAqLworc3RhdGljIGJvb2wgbmVlZHNfdmFsaWRhdGlvbiA9IGZhbHNlOworCisvKgorICog VGhlIGNvbnRlbnQgb2YgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QgcmVtb3ZlZCBp bW1lZGlhdGVseS4gIFdlIGRvCisgKiB0aGF0IGluIHRoZSBuZXh0IHRyYW5zYWN0aW9uIHRoYXQg cmVhZHMgb3Igd3JpdGVzIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqICJ2YWxpZGF0ZWRfbHhpZCIg c3RvcmVzIHRoZSB0cmFuc2FjdGlvbiB0aGF0IHBlcmZvcm1lZCBzYWlkIHZhbGlkYXRpb24sIHNv CisgKiB0aGF0IHdlIGNhbiBhdm9pZCByZXBlYXRpbmcgdGhlIGVmZm9ydC4KKyAqLworc3RhdGlj IExvY2FsVHJhbnNhY3Rpb25JZCB2YWxpZGF0ZWRfbHhpZCA9IEludmFsaWRMb2NhbFRyYW5zYWN0 aW9uSWQ7CisKIC8qCiAgKiBDYWxsYmFjayBmdW5jdGlvbiBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBp bnZhbGlkYXRpb24uCiAgKi8KQEAgLTExNCw2ICsxMzQsMzggQEAgcGdfdmFyaWFibGVfY2FjaGVf Y2FsbGJhY2soRGF0dW0gYXJnLCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKIAkJaWYg KGhhc2h2YWx1ZSA9PSAwIHx8IHN2YXItPmhhc2h2YWx1ZSA9PSBoYXNodmFsdWUpCiAJCXsKIAkJ CXN2YXItPmlzX3ZhbGlkID0gZmFsc2U7CisJCQluZWVkc192YWxpZGF0aW9uID0gdHJ1ZTsKKwkJ fQorCX0KK30KKworLyoKKyAqIEhhbmRsZSB0aGUgbG9jYWwgbWVtb3J5IGNsZWFudXAgZm9yIGEg RFJPUCBWQVJJQUJMRSBjb21tYW5kLgorICoKKyAqIENhbGxlciBzaG91bGQgdGFrZSBjYXJlIG9m IHJlbW92aW5nIHRoZSBwZ192YXJpYWJsZSBlbnRyeSBmaXJzdC4KKyAqLwordm9pZAorU2Vzc2lv blZhcmlhYmxlRHJvcFBvc3Rwcm9jZXNzKE9pZCB2YXJpZCkKK3sKKwlBc3NlcnQoTG9jYWxUcmFu c2FjdGlvbklkSXNWYWxpZChNeVByb2MtPnZ4aWQubHhpZCkpOworCisJaWYgKHNlc3Npb252YXJz KQorCXsKKwkJYm9vbAkJZm91bmQ7CisJCVNWYXJpYWJsZQlzdmFyID0gKFNWYXJpYWJsZSkgaGFz aF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwKKwkJCQkJCQkJCQkJCSAgIEhBU0hfRklORCwg JmZvdW5kKTsKKworCQlpZiAoZm91bmQpCisJCXsKKwkJCS8qCisJCQkgKiBTYXZlIHRoZSBjdXJy ZW50IHRvcCBsZXZlbCBsb2NhbCB0cmFuc2FjdGlvbiBpZCB0byBtYWtlIHN1cmUgd2UKKwkJCSAq IHdvbid0IGF1dG9tYXRpY2FsbHkgcmVtb3ZlIHRoZSBsb2NhbCB2YXJpYWJsZSBzdG9yYWdlIGlu CisJCQkgKiB2YWxpZGF0ZV9hbGxfc2Vzc2lvbl92YXJpYWJsZXMoKSB3aGVuIHRoZSBpbnZhbGlk YXRpb24gbWVzc2FnZQorCQkJICogZnJvbSBEUk9QIFZBUklBQkxFIGFycml2ZXMuICBBZnRlciBh bGwsIHRoZSB0cmFuc2FjdGlvbiBjb3VsZAorCQkJICogc3RpbGwgYmUgcm9sbGVkIGJhY2suCisJ CQkgKi8KKwkJCXN2YXItPmlzX3ZhbGlkID0gZmFsc2U7CisJCQlzdmFyLT5kcm9wX2x4aWQgPSBN eVByb2MtPnZ4aWQubHhpZDsKIAkJfQogCX0KIH0KQEAgLTE2Nyw2ICsyMTksNjcgQEAgaXNfc2Vz c2lvbl92YXJpYWJsZV92YWxpZChTVmFyaWFibGUgc3ZhcikKIAlyZXR1cm4gcmVzdWx0OwogfQog CisvKgorICogQ2hlY2sgYWxsIHBvdGVudGlhbGx5IGludmFsaWQgc2Vzc2lvbiB2YXJpYWJsZSBk YXRhIGluIGxvY2FsIG1lbW9yeSBhbmQgZnJlZQorICogdGhlIG1lbW9yeSBmb3IgYWxsIGludmFs aWQgb25lcy4gIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJlZm9yZSBhbnkgcmVhZCBvcgorICog d3JpdGUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlLiAgRnJlZWluZyBvZiBhIHZhcmlhYmxlJ3MgbWVt b3J5IGlzIHBvc3Rwb25lZCBpZgorICogdGhlIHZhcmlhYmxlIGhhcyBiZWVuIGRyb3BwZWQgYnkg dGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24sIHNpbmNlIHRoYXQKKyAqIG9wZXJhdGlvbiBjb3VsZCBz dGlsbCBiZSByb2xsZWQgYmFjay4KKyAqCisgKiBJdCBpcyBwb3NzaWJsZSB0aGF0IHdlIHJlY2Vp dmUgYSBjYWNoZSBpbnZhbGlkYXRpb24gbWVzc2FnZSB3aGlsZQorICogcmVtb3ZlX2ludmFsaWRf c2Vzc2lvbl92YXJpYWJsZXMoKSBpcyBleGVjdXRpbmcsIHNvIHdlIGNhbm5vdCBndWFyYW50ZWUg dGhhdAorICogYWxsIGVudHJpZXMgaW4gInNlc3Npb252YXJzIiB3aWxsIGJlIHNldCB0byAiaXNf dmFsaWQiIGFmdGVyIHRoZSBmdW5jdGlvbiBpcworICogZG9uZS4gIEhvd2V2ZXIsIHdlIGNhbiBn dWFyYW50ZWUgdGhhdCBhbGwgZW50cmllcyBnZXQgY2hlY2tlZCBvbmNlLgorICovCitzdGF0aWMg dm9pZAorcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXModm9pZCkKK3sKKwlIQVNIX1NF UV9TVEFUVVMgc3RhdHVzOworCVNWYXJpYWJsZQlzdmFyOworCisJLyoKKwkgKiBUaGUgdmFsaWRh dGlvbiByZXF1aXJlcyBzeXN0ZW0gY2F0YWxvZyBhY2Nlc3MsIHNvIHRoZSBzZXNzaW9uIHN0YXRl CisJICogc2hvdWxkIGJlICJpbiB0cmFuc2FjdGlvbiIuCisJICovCisJQXNzZXJ0KElzVHJhbnNh Y3Rpb25TdGF0ZSgpKTsKKworCWlmICghbmVlZHNfdmFsaWRhdGlvbiB8fCAhc2Vzc2lvbnZhcnMp CisJCXJldHVybjsKKworCS8qCisJICogUmVzZXQgdGhlIGZsYWcgYmVmb3JlIHdlIHN0YXJ0IHRo ZSB2YWxpZGF0aW9uLiAgSXQgY2FuIGJlIHNldCBhZ2FpbgorCSAqIGJ5IGNvbmN1cnJlbnRseSBp bmNvbWluZyBzaW52YWwgbWVzc2FnZXMuCisJICovCisJbmVlZHNfdmFsaWRhdGlvbiA9IGZhbHNl OworCisJZWxvZyhERUJVRzEsICJlZmZlY3RpdmUgY2FsbCBvZiB2YWxpZGF0ZV9hbGxfc2Vzc2lv bl92YXJpYWJsZXMoKSIpOworCisJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBzZXNzaW9udmFycyk7 CisJd2hpbGUgKChzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAh PSBOVUxMKQorCXsKKwkJaWYgKCFzdmFyLT5pc192YWxpZCkKKwkJeworCQkJaWYgKHN2YXItPmRy b3BfbHhpZCA9PSBNeVByb2MtPnZ4aWQubHhpZCkKKwkJCXsKKwkJCQkvKiB0cnkgYWdhaW4gaW4g dGhlIG5leHQgdHJhbnNhY3Rpb24gKi8KKwkJCQluZWVkc192YWxpZGF0aW9uID0gdHJ1ZTsKKwkJ CQljb250aW51ZTsKKwkJCX0KKworCQkJaWYgKCFpc19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKHN2 YXIpKQorCQkJeworCQkJCU9pZAkJCXZhcmlkID0gc3Zhci0+dmFyaWQ7CisKKwkJCQlmcmVlX3Nl c3Npb25fdmFyaWFibGVfdmFsdWUoc3Zhcik7CisJCQkJaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMs ICZ2YXJpZCwgSEFTSF9SRU1PVkUsIE5VTEwpOworCQkJCXN2YXIgPSBOVUxMOworCQkJfQorCQkJ ZWxzZQorCQkJCXN2YXItPmlzX3ZhbGlkID0gdHJ1ZTsKKwkJfQorCX0KK30KKwogLyoKICAqIElu aXRpYWxpemUgYXR0cmlidXRlcyBjYWNoZWQgaW4gInN2YXIiCiAgKi8KQEAgLTE5Niw2ICszMDks OCBAQCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQpCiAJ c3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsKIAlzdmFyLT5kb21haW5fY2hlY2tfZXh0 cmFfbHhpZCA9IEludmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQ7CiAKKwlzdmFyLT5kcm9wX2x4aWQg PSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKwogCXN2YXItPmlzbnVsbCA9IHRydWU7CiAJc3Zhci0+ dmFsdWUgPSAoRGF0dW0pIDA7CiAKQEAgLTMxOSwyMiArNDM0LDQyIEBAIGdldF9zZXNzaW9uX3Zh cmlhYmxlKE9pZCB2YXJpZCkKIAlpZiAoIXNlc3Npb252YXJzKQogCQljcmVhdGVfc2Vzc2lvbnZh cnNfaGFzaHRhYmxlcygpOwogCisJaWYgKHZhbGlkYXRlZF9seGlkID09IEludmFsaWRMb2NhbFRy YW5zYWN0aW9uSWQgfHwKKwkJdmFsaWRhdGVkX2x4aWQgIT0gTXlQcm9jLT52eGlkLmx4aWQpCisJ eworCQkvKiBmcmVlIHRoZSBtZW1vcnkgZnJvbSBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzICov CisJCXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKKwkJLyogZG9uJ3QgcmVw ZWF0IHRoZSBhYm92ZSBzdGVwIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uICovCisJCXZhbGlkYXRl ZF9seGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CisJfQorCiAJc3ZhciA9IChTVmFyaWFibGUpIGhh c2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsCiAJCQkJCQkJCSAgIEhBU0hfRU5URVIsICZm b3VuZCk7CiAKIAlpZiAoZm91bmQpCiAJeworCQkvKgorCQkgKiBUaGUgc2Vzc2lvbiB2YXJpYWJs ZSBjb3VsZCBoYXZlIGJlZW4gZHJvcHBlZCBieSBhIERST1AgVkFSSUFCTEUKKwkJICogc3RhdGVt ZW50IGluIGEgc3VidHJhbnNhY3Rpb24gdGhhdCB3YXMgbGF0ZXIgcm9sbGVkIGJhY2ssIHdoaWNo CisJCSAqIG1lYW5zIHRoYXQgd2UgbWF5IGhhdmUgdG8gd29yayB3aXRoIHRoZSBkYXRhIG9mIGEg dmFyaWFibGUgbWFya2VkCisJCSAqIGFzIGludmFsaWQuCisJCSAqLwogCQlpZiAoIXN2YXItPmlz X3ZhbGlkKQogCQl7CiAJCQkvKgotCQkJICogSWYgdGhlcmUgd2FzIGFuIGludmFsaWRhdGlvbiBt ZXNzYWdlLCB0aGUgdmFyaWFibGUgbWlnaHQgc3RpbGwgYmUKLQkJCSAqIHZhbGlkLCBidXQgd2Ug aGF2ZSB0byBjaGVjayB3aXRoIHRoZSBzeXN0ZW0gY2F0YWxvZy4KKwkJCSAqIFdlIGhhdmUgdG8g Y2hlY2sgdGhlIHN5c3RlbSBjYXRhbG9nIHRvIHNlZSBpZiB0aGUgdmFyaWFibGUgaXMKKwkJCSAq IHN0aWxsIHZhbGlkLCBldmVuIGlmIGFuIGludmFsaWRhdGlvbiBtZXNzYWdlIHNldCBpdCB0byBp bnZhbGlkLgorCQkJICoKKwkJCSAqIFRoZSB2YXJpYWJsZSBtdXN0IGJlIHZhbGlkYXRlZCBiZWZv cmUgaXQgaXMgYWNjZXNzZWQuICBUaGUgb2lkCisJCQkgKiBzaG91bGQgYmUgdmFsaWQsIGJlY2F1 c2UgdGhlIHJlbGF0ZWQgc2Vzc2lvbiB2YXJpYWJsZSBpcyBhbHJlYWR5CisJCQkgKiBsb2NrZWQs IGFuZCByZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcygpIHdvdWxkIHJlbW92ZQorCQkJ ICogdmFyaWFibGVzIGRyb3BwZWQgYnkgb3RoZXIgdHJhbnNhY3Rpb25zLgogCQkJICovCiAJCQlp ZiAoaXNfc2Vzc2lvbl92YXJpYWJsZV92YWxpZChzdmFyKSkKIAkJCQlzdmFyLT5pc192YWxpZCA9 IHRydWU7CiAJCQllbHNlCi0JCQkJLyogaWYgdGhlIHZhbHVlIGNhbm5vdCBiZSB2YWxpZGF0ZWQs IHdlIGhhdmUgdG8gZGlzY2FyZCBpdCAqLwotCQkJCWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1 ZShzdmFyKTsKKwkJCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBzdGF0ZSBvZiBzZXNzaW9uIHZh cmlhYmxlICV1IiwgdmFyaWQpOwogCQl9CiAJfQogCWVsc2UKQEAgLTM5NSw2ICs1MzAsMTYgQEAg U2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQog CWlmICghc2Vzc2lvbnZhcnMpCiAJCWNyZWF0ZV9zZXNzaW9udmFyc19oYXNodGFibGVzKCk7CiAK KwlpZiAodmFsaWRhdGVkX2x4aWQgPT0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZCB8fAorCQl2 YWxpZGF0ZWRfbHhpZCAhPSBNeVByb2MtPnZ4aWQubHhpZCkKKwl7CisJCS8qIGZyZWUgdGhlIG1l bW9yeSBmcm9tIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwkJcmVtb3ZlX2ludmFsaWRf c2Vzc2lvbl92YXJpYWJsZXMoKTsKKworCQkvKiBkb24ndCByZXBlYXQgdGhlIGFib3ZlIHN0ZXAg aW4gdGhlIHNhbWUgdHJhbnNhY3Rpb24gKi8KKwkJdmFsaWRhdGVkX2x4aWQgPSBNeVByb2MtPnZ4 aWQubHhpZDsKKwl9CisKIAlzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZWFyY2goc2Vzc2lvbnZh cnMsICZ2YXJpZCwKIAkJCQkJCQkJICAgSEFTSF9FTlRFUiwgJmZvdW5kKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmluZGV4IGE4Y2E0M2M4N2FmLi5kM2NjNzliNTYw OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisr KyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMjEsNiArMjEs OCBAQAogI2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCiAjaW5jbHVkZSAidXRpbHMvcXVlcnllbnZp cm9ubWVudC5oIgogCitleHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3Mo T2lkIHZhcmlkKTsKKwogZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwg RGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsKIGV4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFyaWFi bGUoT2lkIHZhcmlkLCBib29sICppc051bGwpOwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29s YXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgYi9zcmMvdGVzdC9pc29sYXRpb24v ZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjBhNTU3OWRjN2NlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvaXNv bGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CkBAIC0wLDAgKzEsMTEwIEBACitQ YXJzZWQgdGVzdCBzcGVjIHdpdGggNCBzZXNzaW9ucworCitzdGFydGluZyBwZXJtdXRhdGlvbjog bGV0IHZhbCBkcm9wIHZhbAorc3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0ZXAgdmFs OiBTRUxFQ1QgbXl2YXI7CitteXZhcgorLS0tLS0KK3Rlc3QgCisoMSByb3cpCisKK3N0ZXAgZHJv cDogRFJPUCBWQVJJQUJMRSBteXZhcjsKK3N0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7CitFUlJPUjog IGNvbHVtbiAibXl2YXIiIGRvZXMgbm90IGV4aXN0CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBs ZXQgdmFsIHMxIGRyb3AgdmFsIHNyMQorc3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0 ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7CitteXZhcgorLS0tLS0KK3Rlc3QgCisoMSByb3cpCisKK3N0 ZXAgczE6IEJFR0lOOworc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOworc3RlcCB2YWw6 IFNFTEVDVCBteXZhcjsKK0VSUk9SOiAgY29sdW1uICJteXZhciIgZG9lcyBub3QgZXhpc3QKK3N0 ZXAgc3IxOiBST0xMQkFDSzsKKworc3RhcnRpbmcgcGVybXV0YXRpb246IGxldCB2YWwgZGJnIGRy b3AgY3JlYXRlIGRiZyB2YWwKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7CitzdGVwIHZh bDogU0VMRUNUIG15dmFyOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitzdGVwIGRi ZzogU0VMRUNUIHNjaGVtYSwgbmFtZSwgcmVtb3ZlZCBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVz KCk7CitzY2hlbWF8bmFtZSB8cmVtb3ZlZAorLS0tLS0tKy0tLS0tKy0tLS0tLS0KK3B1YmxpY3xt eXZhcnxmICAgICAgCisoMSByb3cpCisKK3N0ZXAgZHJvcDogRFJPUCBWQVJJQUJMRSBteXZhcjsK K3N0ZXAgY3JlYXRlOiBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsKK3N0ZXAgZGJnOiBT RUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsK K3NjaGVtYXxuYW1lfHJlbW92ZWQKKy0tLS0tLSstLS0tKy0tLS0tLS0KKyAgICAgIHwgICAgfHQg ICAgICAKKygxIHJvdykKKworc3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK215dmFyCistLS0tLQor ICAgICAKKygxIHJvdykKKworCitzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBzMSBkYmcg ZHJvcCBjcmVhdGUgZGJnIHZhbCBzcjEKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7Citz dGVwIHZhbDogU0VMRUNUIG15dmFyOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitz dGVwIHMxOiBCRUdJTjsKK3N0ZXAgZGJnOiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZS T00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKK3NjaGVtYXxuYW1lIHxyZW1vdmVkCistLS0tLS0r LS0tLS0rLS0tLS0tLQorcHVibGljfG15dmFyfGYgICAgICAKKygxIHJvdykKKworc3RlcCBkcm9w OiBEUk9QIFZBUklBQkxFIG15dmFyOworc3RlcCBjcmVhdGU6IENSRUFURSBWQVJJQUJMRSBteXZh ciBBUyB0ZXh0Oworc3RlcCBkYmc6IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpOworc2NoZW1hfG5hbWUgfHJlbW92ZWQKKy0tLS0tLSstLS0t LSstLS0tLS0tCitwdWJsaWN8bXl2YXJ8ZiAgICAgIAorKDEgcm93KQorCitzdGVwIHZhbDogU0VM RUNUIG15dmFyOworbXl2YXIKKy0tLS0tCisgICAgIAorKDEgcm93KQorCitzdGVwIHNyMTogUk9M TEJBQ0s7CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBs ZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQorc3RlcCBjcmVhdGUzOiBD UkVBVEUgVkFSSUFCTEUgbXl2YXIzIEFTIHRleHQ7CitzdGVwIGxldDM6IExFVCBteXZhcjMgPSAn dGVzdCc7CitzdGVwIHMzOiBCRUdJTjsKK3N0ZXAgY3JlYXRlNDogQ1JFQVRFIFZBUklBQkxFIG15 dmFyNCBBUyB0ZXh0Oworc3RlcCBsZXQ0OiBMRVQgbXl2YXI0ID0gJ3Rlc3QnOworc3RlcCBkcm9w NDogRFJPUCBWQVJJQUJMRSBteXZhcjQ7CitzdGVwIGRyb3AzOiBEUk9QIFZBUklBQkxFIG15dmFy MzsKK3N0ZXAgaW52YWwzOiBTRUxFQ1QgQ09VTlQoKikgPj0gMCBGUk9NIHBnX2ZvcmVpZ25fdGFi bGU7Cis/Y29sdW1uPworLS0tLS0tLS0KK3QgICAgICAgCisoMSByb3cpCisKK3N0ZXAgZGlzY2Fy ZDogRElTQ0FSRCBWQVJJQUJMRVM7CitzdGVwIHNjMzogQ09NTUlUOworc3RlcCBzdGF0ZTogU0VM RUNUIHZhcm5hbWUgRlJPTSBwZ192YXJpYWJsZTsKK3Zhcm5hbWUKKy0tLS0tLS0KK215dmFyICAK KygxIHJvdykKKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hl ZHVsZSBiL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUKaW5kZXggZTNjNjY5 YTI5YzcuLjhkZjkwMWZjNzljIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0 aW9uX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUK QEAgLTExNiwzICsxMTYsNCBAQCB0ZXN0OiBzZXJpYWxpemFibGUtcGFyYWxsZWwtMgogdGVzdDog c2VyaWFsaXphYmxlLXBhcmFsbGVsLTMKIHRlc3Q6IG1hdHZpZXctd3JpdGUtc2tldwogdGVzdDog bG9jay1ub3dhaXQKK3Rlc3Q6IHNlc3Npb24tdmFyaWFibGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgYi9zcmMvdGVzdC9pc29sYXRp b24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi5jODY0ZmVlNDAwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2lz b2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKQEAgLTAsMCArMSw1MCBAQAorIyBU ZXN0IHNlc3Npb24gdmFyaWFibGVzIG1lbW9yeSBjbGVhbnVwIGZvciBzaW52YWwKKworc2V0dXAK K3sKKyAgICBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsKK30KKwordGVhcmRvd24KK3sK KyAgICBEUk9QIFZBUklBQkxFIElGIEVYSVNUUyBteXZhcjsKK30KKworc2Vzc2lvbiBzMQorc3Rl cCBzMQkJeyBCRUdJTjsgfQorc3RlcCBsZXQJeyBMRVQgbXl2YXIgPSAndGVzdCc7IH0KK3N0ZXAg dmFsCXsgU0VMRUNUIG15dmFyOyB9CitzdGVwIGRiZwl7IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJl bW92ZWQgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOyB9CitzdGVwIHNyMQl7IFJPTExCQUNL OyB9CisKK3Nlc3Npb24gczIKK3N0ZXAgZHJvcAkJeyBEUk9QIFZBUklBQkxFIG15dmFyOyB9Citz dGVwIGNyZWF0ZQkJeyBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsgfQorCitzZXNzaW9u IHMzCitzdGVwIHMzCQkJeyBCRUdJTjsgfQorc3RlcCBsZXQzCQl7IExFVCBteXZhcjMgPSAndGVz dCc7IH0KK3N0ZXAgY3JlYXRlNAl7IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsgfQor c3RlcCBsZXQ0CQl7IExFVCBteXZhcjQgPSAndGVzdCc7IH0KK3N0ZXAgZHJvcDQJCXsgRFJPUCBW QVJJQUJMRSBteXZhcjQ7IH0KK3N0ZXAgaW52YWwzCQl7IFNFTEVDVCBDT1VOVCgqKSA+PSAwIEZS T00gcGdfZm9yZWlnbl90YWJsZTsgfQorc3RlcCBkaXNjYXJkCXsgRElTQ0FSRCBWQVJJQUJMRVM7 IH0KK3N0ZXAgc2MzCQl7IENPTU1JVDsgfQorc3RlcCBzdGF0ZQkJeyBTRUxFQ1QgdmFybmFtZSBG Uk9NIHBnX3ZhcmlhYmxlOyB9CisKK3Nlc3Npb24gczQKK3N0ZXAgY3JlYXRlMwl7IENSRUFURSBW QVJJQUJMRSBteXZhcjMgQVMgdGV4dDsgfQorc3RlcCBkcm9wMwkJeyBEUk9QIFZBUklBQkxFIG15 dmFyMzsgfQorCisjIENvbmN1cnJlbnQgZHJvcCBvZiBhIGtub3duIHZhcmlhYmxlIHNob3VsZCBs ZWFkIHRvIGFuIGVycm9yCitwZXJtdXRhdGlvbiBsZXQgdmFsIGRyb3AgdmFsCisjIFNhbWUsIGJ1 dCB3aXRoIGFuIGV4cGxpY2l0IHRyYW5zYWN0aW9uCitwZXJtdXRhdGlvbiBsZXQgdmFsIHMxIGRy b3AgdmFsIHNyMQorIyBDb25jdXJyZW50IGRyb3AvY3JlYXRlIG9mIGEga25vd24gdmFyaWFibGUg c2hvdWxkIGxlYWQgdG8gZW1wdHkgdmFyaWFibGUKK3Blcm11dGF0aW9uIGxldCB2YWwgZGJnIGRy b3AgY3JlYXRlIGRiZyB2YWwKKyMgQ29uY3VycmVudCBkcm9wL2NyZWF0ZSBvZiBhIGtub3duIHZh cmlhYmxlIHNob3VsZCBsZWFkIHRvIGVtcHR5IHZhcmlhYmxlCisjIFdlIG5lZWQgYSB0cmFuc2Fj dGlvbiB0byBtYWtlIHN1cmUgdGhhdCB3ZSB3b24ndCBhY2NlcHQgaW52YWxpZGF0aW9uIHdoZW4K KyMgY2FsbGluZyB0aGUgZGJnIHN0ZXAgYWZ0ZXIgdGhlIGNvbmN1cnJlbnQgZHJvcAorcGVybXV0 YXRpb24gbGV0IHZhbCBzMSBkYmcgZHJvcCBjcmVhdGUgZGJnIHZhbCBzcjEKKyMgdGVzdCBmb3Ig RElTQ0FSRCBBTEwgd2hlbiBhbGwgaW50ZXJuYWwgcXVldWVzIGhhdmUgYWN0aW9ucyByZWdpc3Rl cmVkCitwZXJtdXRhdGlvbiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3Az IGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCA3OWFjNDA3NjhmOC4uMjc4M2NhYTg0NDYgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBA IC0xNzI2LDMgKzE3MjYsMjIwIEBAIFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFy aWFibGVzKCk7CiAgICAgIDAKICgxIHJvdykKIAorLS0gZHJvcHBlZCB2YXJpYWJsZXMgc2hvdWxk IGJlIHJlbW92ZWQgZnJvbSBtZW1vcnkgYmVmb3JlIHRoZSBuZXh0IHVzYWdlCistLSBvZiBhbnkg c2Vzc2lvbiB2YXJpYWJsZSBpbiB0aGUgbmV4dCB0cmFuc2FjdGlvbgorTEVUIHZhcjEgPSAnQWhv aic7CitTRUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3VwZGF0ZSBGUk9NIHBn X3Nlc3Npb25fdmFyaWFibGVzKCk7CisgbmFtZSB8ICAgICAgdHlwbmFtZSAgICAgIHwgY2FuX3Nl bGVjdCB8IGNhbl91cGRhdGUgCistLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgdCAgICAgICAgICB8 IHQKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gc2hvdWxkIGJlIHplcm8KK1NF TEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkgV0hFUkUgTk9UIHJlbW92 ZWQ7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworLS0gdGhlIGNvbnRlbnQg b2YgdGhlIHZhbHVlIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBhIHZhcmlhYmxlIGlzIGRyb3Bw ZWQKKy0tIGJ5IGFuIGFib3J0ZWQgdHJhbnNhY3Rpb24KK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFT IHZhcmNoYXI7CitMRVQgdmFyMSA9ICdBaG9qJzsKK0JFR0lOOworRFJPUCBWQVJJQUJMRSB2YXIx OworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIxOworRVJST1I6ICBjb2x1bW4gInZhcjEiIGRv ZXMgbm90IGV4aXN0CitMSU5FIDE6IFNFTEVDVCB2YXIxOworICAgICAgICAgICAgICAgXgorUk9M TEJBQ0s7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyBB aG9qCisoMSByb3cpCisKKy0tIGFub3RoZXIgdGVzdAorQkVHSU47CitEUk9QIFZBUklBQkxFIHZh cjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwMDsKKy0tIHNo b3VsZCBiZSBvaywgcmVzdWx0IDEwMAorU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAx MDAKKygxIHJvdykKKworUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgb2ssIHJlc3VsdCAnQWhvaicK K1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyBBaG9qCisoMSByb3cpCisKK0RST1AgVkFS SUFCTEUgdmFyMTsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19z ZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCByZW1vdmVkOworIGNvdW50IAorLS0tLS0tLQor ICAgICAwCisoMSByb3cpCisKK0JFR0lOOworICBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7 CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEw MAorKDEgcm93KQorCisgIFNFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBk YXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBuYW1lIHwgdHlwbmFtZSB8IGNhbl9z ZWxlY3QgfCBjYW5fdXBkYXRlIAorLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgdmFyMSB8IGludGVnZXIgfCB0ICAgICAgICAgIHwgdAorKDEgcm93KQorCisgIERS T1AgVkFSSUFCTEUgdmFyMTsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291 bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCByZW1vdmVkOworIGNv dW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0JFR0lOOworICBDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyBpbnQ7CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyB2YXIx IAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCisgIFNFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5f c2VsZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBuYW1lIHwg dHlwbmFtZSB8IGNhbl9zZWxlY3QgfCBjYW5fdXBkYXRlIAorLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgdmFyMSB8IGludGVnZXIgfCB0ICAgICAgICAgIHwgdAor KDEgcm93KQorCisgIERST1AgVkFSSUFCTEUgdmFyMTsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSB6 ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5P VCByZW1vdmVkOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0NSRUFURSBW QVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGludDsKK0xFVCB2 YXIxID0gMTA7CitMRVQgdmFyMiA9IDA7CitCRUdJTjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9Q IFZBUklBQkxFIHZhcjE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIg c2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisgICAgMAor KDEgcm93KQorCisgIFJPTExCQUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFS SUFCTEUgdmFyMTsKKyAgU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJv dykKKworICBST0xMQkFDSyBUTyBzMjsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNU IHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworQkVHSU47CisgIFNBVkVQ T0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0 b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgdmFyMiAK Ky0tLS0tLQorICAgIDAKKygxIHJvdykKKworICBST0xMQkFDSyBUTyBzMTsKKyAgU0FWRVBPSU5U IHMyOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0t LS0KKyAgICAwCisoMSByb3cpCisKK1JPTExCQUNLOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1Qg dmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitCRUdJTjsKKyAgU0FWRVBP SU5UIHMxOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRv dWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAor LS0tLS0tCisgICAgMAorKDEgcm93KQorCisgIFNBVkVQT0lOVCBzMjsKKyAgLS0gZm9yY2UgY2xl YW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIy OworIHZhcjIgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKKyAgUk9MTEJBQ0sgVE8gczE7Cisg IC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQor ICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCitDT01NSVQ7 CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCiso MSByb3cpCisKKy0tIHJlcGVhdGVkIGFib3J0ZWQgdHJhbnNhY3Rpb24KK0JFR0lOOyBEUk9QIFZB UklBQkxFIHZhcjE7IFJPTExCQUNLOworQkVHSU47IERST1AgVkFSSUFCTEUgdmFyMTsgUk9MTEJB Q0s7CitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBv aworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworRFJPUCBW QVJJQUJMRSB2YXIxLCB2YXIyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsCmluZGV4IDI5NTQ3NTlhYWVkLi5hNjI0YWI4YjY3ZiAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtMTIxNCwzICsxMjE0LDEyMyBAQCBESVND QVJEIFZBUklBQkxFUzsKIAogLS0gc2hvdWxkIGJlIHplcm8gYWdhaW4KIFNFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKKy0tIGRyb3BwZWQgdmFyaWFibGVzIHNo b3VsZCBiZSByZW1vdmVkIGZyb20gbWVtb3J5IGJlZm9yZSB0aGUgbmV4dCB1c2FnZQorLS0gb2Yg YW55IHNlc3Npb24gdmFyaWFibGUgaW4gdGhlIG5leHQgdHJhbnNhY3Rpb24KKworTEVUIHZhcjEg PSAnQWhvaic7CitTRUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3VwZGF0ZSBG Uk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHNo b3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygp IFdIRVJFIE5PVCByZW1vdmVkOworCistLSB0aGUgY29udGVudCBvZiB0aGUgdmFsdWUgc2hvdWxk IGJlIHByZXNlcnZlZCB3aGVuIGEgdmFyaWFibGUgaXMgZHJvcHBlZAorLS0gYnkgYW4gYWJvcnRl ZCB0cmFuc2FjdGlvbgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhcjsKK0xFVCB2YXIx ID0gJ0Fob2onOworQkVHSU47CitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHNob3VsZCBmYWls CitTRUxFQ1QgdmFyMTsKKworUk9MTEJBQ0s7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZh cjE7CisKKy0tIGFub3RoZXIgdGVzdAorQkVHSU47CitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVB VEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwMDsKKy0tIHNob3VsZCBiZSBv aywgcmVzdWx0IDEwMAorU0VMRUNUIHZhcjE7CitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaywg cmVzdWx0ICdBaG9qJworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0g c2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVz KCkgV0hFUkUgTk9UIHJlbW92ZWQ7CisKK0JFR0lOOworICBDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyBpbnQ7CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyAgU0VMRUNUIG5hbWUs IHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxl cygpOworICBEUk9QIFZBUklBQkxFIHZhcjE7CitDT01NSVQ7CisKKy0tIHNob3VsZCBiZSB6ZXJv CitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCBy ZW1vdmVkOworCitCRUdJTjsKKyAgQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworICBMRVQg dmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CisgIFNFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5f c2VsZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyAgRFJPUCBW QVJJQUJMRSB2YXIxOworQ09NTUlUOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50 KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKSBXSEVSRSBOT1QgcmVtb3ZlZDsKKworQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgaW50Owor TEVUIHZhcjEgPSAxMDsKK0xFVCB2YXIyID0gMDsKK0JFR0lOOworICBTQVZFUE9JTlQgczE7Cisg IERST1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5v dGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworICBST0xMQkFDSyBUTyBzMTsK KyAgU0FWRVBPSU5UIHMyOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIFNFTEVDVCB2YXIyOwor ICBST0xMQkFDSyBUTyBzMjsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7 CisKK0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0g Zm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNF TEVDVCB2YXIyOworICBST0xMQkFDSyBUTyBzMTsKKyAgU0FWRVBPSU5UIHMyOworICBEUk9QIFZB UklBQkxFIHZhcjE7CisgIFNFTEVDVCB2YXIyOworUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgb2sK K1NFTEVDVCB2YXIxOworCitCRUdJTjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxF IHZhcjE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2 YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKKworICBTQVZFUE9JTlQgczI7CisgIC0tIGZvcmNlIGNs ZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFy MjsKKyAgUk9MTEJBQ0sgVE8gczE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFu b3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKK0NPTU1JVDsKKy0tIHNob3Vs ZCBiZSBvaworU0VMRUNUIHZhcjE7CisKKy0tIHJlcGVhdGVkIGFib3J0ZWQgdHJhbnNhY3Rpb24K K0JFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOworQkVHSU47IERST1AgVkFSSUFC TEUgdmFyMTsgUk9MTEJBQ0s7CitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsK KworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxLCB2 YXIyOwotLSAKMi40OS4wCgo= --0000000000007e4205063527107b Content-Type: text/x-patch; charset="US-ASCII"; name="v20250515-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Disposition: attachment; filename="v20250515-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_map0d83t5 RnJvbSA0OTY1YzZlOTlhODI5MzAwNzRiMzE5YzE3NjJjZDNmZjZhNDFlZDA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMjA6MDE6NTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDAz LzIxXSBmdW5jdGlvbiBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmb3IgY2xlYW5pbmcgdGVzdHMKClRo aXMgaXMgYSBmdW5jdGlvbiBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQg cmV0dXJucyB0aGUKY29udGVudCBvZiBzZXNzaW9udmFycyBhcy1pcywgYW5kIGNhbiB0aGVyZWZv cmUgZGlzcGxheSBlbnRyaWVzIGFib3V0CnNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9w cGVkIGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndApwcm9jZXNzIHRoZSBzaGFyZWQg aW52YWxpZGF0aW9ucyB5ZXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCAgICAgICAgIHwgIDggKysrCiAyIGZpbGVzIGNoYW5nZWQsIDEwMCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IGQy ODkxYTFkY2I3Li5mYTE2ZjQ3MDcyZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwpAQCAtNTI3LDMgKzUyNyw5NSBAQCBFeGVjdXRlTGV0U3RtdChQYXJzZVN0YXRlICpw c3RhdGUsCiAKIAlQb3BBY3RpdmVTbmFwc2hvdCgpOwogfQorCisvKgorICogcGdfc2Vzc2lvbl92 YXJpYWJsZXMgLSBkZXNpZ25lZCBmb3IgdGVzdGluZworICoKKyAqIFRoaXMgaXMgYSBmdW5jdGlv biBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQgcmV0dXJucyB0aGUKKyAq IGNvbnRlbnQgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgYXMtaXMsIGFuZCBjYW4gdGhlcmVmb3JlIGRp c3BsYXkgZGF0YSBhYm91dAorICogc2Vzc2lvbiB2YXJpYWJsZXMgdGhhdCB3ZXJlIGRyb3BwZWQs IGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndAorICogcHJvY2VzcyB0aGUgc2hhcmVk IGludmFsaWRhdGlvbnMgeWV0LgorICovCitEYXR1bQorcGdfc2Vzc2lvbl92YXJpYWJsZXMoUEdf RlVOQ1RJT05fQVJHUykKK3sKKyNkZWZpbmUgTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFMg OAorCisJSW5pdE1hdGVyaWFsaXplZFNSRihmY2luZm8sIDApOworCisJaWYgKHNlc3Npb252YXJz KQorCXsKKwkJUmV0dXJuU2V0SW5mbyAqcnNpbmZvID0gKFJldHVyblNldEluZm8gKikgZmNpbmZv LT5yZXN1bHRpbmZvOworCQlIQVNIX1NFUV9TVEFUVVMgc3RhdHVzOworCQlTVmFyaWFibGUJc3Zh cjsKKworCQloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJzKTsKKworCQl3aGlsZSAo KHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1cykpICE9IE5VTEwpCisJ CXsKKwkJCURhdHVtCQl2YWx1ZXNbTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFNdOworCQkJ Ym9vbAkJbnVsbHNbTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFNdOworCQkJSGVhcFR1cGxl CXRwOworCQkJYm9vbAkJdmFyX2lzX3ZhbGlkID0gZmFsc2U7CisKKwkJCW1lbXNldCh2YWx1ZXMs IDAsIHNpemVvZih2YWx1ZXMpKTsKKwkJCW1lbXNldChudWxscywgMCwgc2l6ZW9mKG51bGxzKSk7 CisKKwkJCXZhbHVlc1swXSA9IE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dmFyaWQpOworCQkJdmFs dWVzWzNdID0gT2JqZWN0SWRHZXREYXR1bShzdmFyLT50eXBpZCk7CisKKwkJCS8qCisJCQkgKiBJ dCBpcyBwb3NzaWJsZSB0aGF0IHRoZSB2YXJpYWJsZSBoYXMgYmVlbiBkcm9wcGVkIGZyb20gdGhl CisJCQkgKiBjYXRhbG9nLCBidXQgbm90IHlldCBwdXJnZWQgZnJvbSB0aGUgaGFzaCB0YWJsZS4K KwkJCSAqLworCQkJdHAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0 RGF0dW0oc3Zhci0+dmFyaWQpKTsKKworCQkJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHApKQorCQkJ eworCQkJCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRT VFJVQ1QodHApOworCisJCQkJLyoKKwkJCQkgKiBJdCBpcyBhbHNvIHBvc3NpYmxlIHRoYXQgYSB2 YXJpYWJsZSBoYXMgYmVlbiBkcm9wcGVkIGFuZAorCQkJCSAqIHNvbWVvbmUgY3JlYXRlZCBhIG5l dyB2YXJpYWJsZSB3aXRoIHRoZSBzYW1lIG9iamVjdCBJRC4gIFVzZQorCQkJCSAqIHRoZSBjYXRh bG9nIGluZm9ybWF0aW9uIG9ubHkgaWYgdGhhdCBpcyBub3QgdGhlIGNhc2UuCisJCQkJICovCisJ CQkJaWYgKHN2YXItPmNyZWF0ZV9sc24gPT0gdmFyZm9ybS0+dmFyY3JlYXRlX2xzbikKKwkJCQl7 CisJCQkJCXZhbHVlc1sxXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oCisJCQkJCQkJCQkJCQkJZ2V0 X25hbWVzcGFjZV9uYW1lKHZhcmZvcm0tPnZhcm5hbWVzcGFjZSkpOworCisJCQkJCXZhbHVlc1sy XSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oTmFtZVN0cih2YXJmb3JtLT52YXJuYW1lKSk7CisJCQkJ CXZhbHVlc1s0XSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oZm9ybWF0X3R5cGVfYmUoc3Zhci0+dHlw aWQpKTsKKwkJCQkJdmFsdWVzWzVdID0gQm9vbEdldERhdHVtKGZhbHNlKTsKKworCQkJCQl2YWx1 ZXNbNl0gPSBCb29sR2V0RGF0dW0oCisJCQkJCQkJCQkJCSBvYmplY3RfYWNsY2hlY2soVmFyaWFi bGVSZWxhdGlvbklkLCBzdmFyLT52YXJpZCwKKwkJCQkJCQkJCQkJCQkJCSBHZXRVc2VySWQoKSwg QUNMX1NFTEVDVCkgPT0gQUNMQ0hFQ0tfT0spOworCisJCQkJCXZhbHVlc1s3XSA9IEJvb2xHZXRE YXR1bSgKKwkJCQkJCQkJCQkJIG9iamVjdF9hY2xjaGVjayhWYXJpYWJsZVJlbGF0aW9uSWQsIHN2 YXItPnZhcmlkLAorCQkJCQkJCQkJCQkJCQkJIEdldFVzZXJJZCgpLCBBQ0xfVVBEQVRFKSA9PSBB Q0xDSEVDS19PSyk7CisKKwkJCQkJdmFyX2lzX3ZhbGlkID0gdHJ1ZTsKKwkJCQl9CisKKwkJCQlS ZWxlYXNlU3lzQ2FjaGUodHApOworCQkJfQorCisJCQkvKiBpZiB0aGVyZSBpcyBubyBtYXRjaGlu ZyBjYXRhbG9nIGVudHJ5LCByZXR1cm4gbnVsbCB2YWx1ZXMgKi8KKwkJCWlmICghdmFyX2lzX3Zh bGlkKQorCQkJeworCQkJCW51bGxzWzFdID0gdHJ1ZTsKKwkJCQludWxsc1syXSA9IHRydWU7CisJ CQkJbnVsbHNbNF0gPSB0cnVlOworCQkJCXZhbHVlc1s1XSA9IEJvb2xHZXREYXR1bSh0cnVlKTsK KwkJCQludWxsc1s2XSA9IHRydWU7CisJCQkJbnVsbHNbN10gPSB0cnVlOworCQkJfQorCisJCQl0 dXBsZXN0b3JlX3B1dHZhbHVlcyhyc2luZm8tPnNldFJlc3VsdCwgcnNpbmZvLT5zZXREZXNjLCB2 YWx1ZXMsIG51bGxzKTsKKwkJfQorCX0KKworCXJldHVybiAoRGF0dW0pIDA7Cit9CmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdAppbmRleCBkYTc3MmZmOWUxNy4uMDY2MmYwZDY4OTEgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdApAQCAtMTI1ODksNCArMTI1ODksMTIgQEAKICAgcHJvYXJnbmFtZXMgPT4g J3twaWQsaW9faWQsaW9fZ2VuZXJhdGlvbixzdGF0ZSxvcGVyYXRpb24sb2ZmLGxlbmd0aCx0YXJn ZXQsaGFuZGxlX2RhdGFfbGVuLHJhd19yZXN1bHQscmVzdWx0LHRhcmdldF9kZXNjLGZfc3luYyxm X2xvY2FsbWVtLGZfYnVmZmVyZWR9JywKICAgcHJvc3JjID0+ICdwZ19nZXRfYWlvcycgfSwKIAor IyBTZXNzaW9uIHZhcmlhYmxlcyBzdXBwb3J0Cit7IG9pZCA9PiAnODQ4OCcsIGRlc2NyID0+ICds aXN0IG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMnLAorICBwcm9uYW1lID0+ICdwZ19zZXNzaW9u X3ZhcmlhYmxlcycsIHByb3Jvd3MgPT4gJzEwMDAnLCBwcm9yZXRzZXQgPT4gJ3QnLAorICBwcm92 b2xhdGlsZSA9PiAncycsIHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAncmVjb3Jk JywKKyAgcHJvYXJndHlwZXMgPT4gJycsIHByb2FsbGFyZ3R5cGVzID0+ICd7b2lkLHRleHQsdGV4 dCxvaWQsdGV4dCxib29sLGJvb2wsYm9vbH0nLAorICBwcm9hcmdtb2RlcyA9PiAne28sbyxvLG8s byxvLG8sb30nLAorICBwcm9hcmduYW1lcyA9PiAne3ZhcmlkLHNjaGVtYSxuYW1lLHR5cGlkLHR5 cG5hbWUscmVtb3ZlZCxjYW5fc2VsZWN0LGNhbl91cGRhdGV9JywKKyAgcHJvc3JjID0+ICdwZ19z ZXNzaW9uX3ZhcmlhYmxlcycgfSwKIF0KLS0gCjIuNDkuMAoK --0000000000007e4205063527107b Content-Type: text/x-patch; charset="US-ASCII"; name="v20250515-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Disposition: attachment; filename="v20250515-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_map0d8436 RnJvbSAwYTE2ZTgyNWU1MGJiMGJiNDMyNDQ4ZmEyOTRlZmQ4OGZjNDZiYWU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAwODoyOToyMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDIv MjFdIFN0b3JhZ2UgZm9yIHNlc3Npb24gdmFyaWFibGVzIGFuZCBTUUwgaW50ZXJmYWNlCgpTZXNz aW9uIHZhcmlhYmxlcyBhcmUgc3RvcmVkIGluIHNlc3Npb24gbWVtb3J5IGluIGEgZGVkaWNhdGVk IGhhc2ggdGFibGUuClRoZXkgYXJlIHNldCBieSB0aGUgTEVUIGNvbW1hbmQgYW5kIHJlYWQgYnkg dGhlIFNFTEVDVCBjb21tYW5kLgpUaGUgYWNjZXNzIHJpZ2h0cyBzaG91bGQgYmUgY2hlY2tlZC4K ClRoZSBpZGVudGlmaWVycyBvZiBzZXNzaW9uIHZhcmlhYmxlcyBzaG91bGQgYWx3YXlzIGJlIHNo YWRvd2VkIGJ5IHBvc3NpYmxlCmNvbHVtbiBpZGVudGlmaWVyczogd2UgZG9uJ3Qgd2FudCB0byBi cmVhayBhbiBhcHBsaWNhdGlvbiBieSBjcmVhdGluZyBzb21lCmJhZGx5IG5hbWVkIHNlc3Npb24g dmFyaWFibGUuCgpUaGUgbGltaXRzIG9mIHRoaXMgcGF0Y2ggKHNvbHZlZCBieSBvdGhlciBwYXRj aGVzKToKCi0gc2Vzc2lvbiB2YXJpYWJsZXMgYmxvY2sgcGFyYWxsZWwgZXhlY3V0aW9uCi0gc2Vz c2lvbiB2YXJpYWJsZXMgYmxvY2tzIHNpbXBsZSBleHByZXNzaW9uIGV2YWx1YXRpb24gKGluIHBs cGdzcWwpCi0gU1FMIGZ1bmN0aW9ucyB3aXRoIHNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgaW5s aW5lZAotIENBTEwgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgKHVzYWdlIG9mIGRpcmVjdCBh Y2Nlc3MgdG8gZXhwcmVzcyBleGVjdXRvcikKLSBFWEVDVVRFIHN0YXRlbWVudCBpcyBub3Qgc3Vw cG9ydGVkICh1c2FnZSBvZiBkaXJlY3QgYWNjZXNzIHRvIGV4cHJlc3MgZXhlY3V0b3IpCi0gbWVt b3J5IHVzZWQgYnkgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QgcmVsZWFzZWQKCklt cGxlbWVudGF0aW9ucyBvZiBFWFBMQUlOIExFVCBhbmQgUFJFUEFSRSBMRVQgc3RhdGVtZW50cwph cmUgaW4gc2VwYXJhdGUgcGF0Y2hlcyAoZm9yIGJldHRlciByZWFkYWJpbGl0eSkKLS0tCiBkb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsKIGRvYy9z cmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNjEgKwogZG9jL3Ny Yy9zZ21sL2Z1bmMuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogZG9jL3Ny Yy9zZ21sL2dsb3NzYXJ5LnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICAgNSArLQogZG9jL3Ny Yy9zZ21sL3BhcmFsbGVsLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICAgNiArCiBkb2Mvc3Jj L3NnbWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsKIGRvYy9zcmMv c2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAgICB8ICAgIDEgKwogZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sICAgICAgICAgIHwgICAgMSArCiBkb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAgICA1ICstCiBkb2Mvc3JjL3Nn bWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbCAgICAgICAgICAgfCAgICAxICsKIGRvYy9zcmMvc2dt bC9yZWYvbGV0LnNnbWwgICAgICAgICAgICAgICAgICAgICB8ICAgOTYgKysKIGRvYy9zcmMvc2dt bC9yZWZlcmVuY2Uuc2dtbCAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQv Y2F0YWxvZy9kZXBlbmRlbmN5LmMgICAgICAgICAgICAgIHwgICAgNSArCiBzcmMvYmFja2VuZC9j YXRhbG9nL25hbWVzcGFjZS5jICAgICAgICAgICAgICAgfCAgMjg5ICsrKysKIHNyYy9iYWNrZW5k L2NhdGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8ICAgIDIgKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvTWFrZWZpbGUgICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9j b21tYW5kcy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3ByZXBhcmUuYyAgICAgICAgICAgICAgICB8ICAgMTAgKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgIDUyOSArKysrKysrCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8ICAgMzIgKwogc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY01haW4uYyAgICAgICAgICAgICAgIHwgICA2NiArCiBzcmMvYmFja2VuZC9l eGVjdXRvci9tZXNvbi5idWlsZCAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2V4 ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMgICAgICB8ICAxNzIgKysrCiBzcmMvYmFja2VuZC9u b2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgIDEwICsKIHNyYy9iYWNrZW5kL29w dGltaXplci9wbGFuL3BsYW5uZXIuYyAgICAgICAgICB8ICAgMzYgKwogc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vc2V0cmVmcy5jICAgICAgICAgIHwgIDE1NiArKy0KIHNyYy9iYWNrZW5kL29w dGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jICAgICB8ICAgIDMgKwogc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3V0aWwvY2xhdXNlcy5jICAgICAgICAgIHwgICAzMyArLQogc3JjL2JhY2tlbmQvcGFy c2VyL2FuYWx5emUuYyAgICAgICAgICAgICAgICAgIHwgIDI3MiArKystCiBzcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgIDM5ICstCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfYWdnLmMgICAgICAgICAgICAgICAgfCAgICA5ICsKIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8ICAyMjMgKystCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfZnVuYy5jICAgICAgICAgICAgICAgfCAgICAyICsKIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9tZXJnZS5jICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvdGNv cC9kZXN0LmMgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNyArCiBzcmMvYmFja2VuZC90Y29w L3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAgIDE2ICsKIHNyYy9iYWNrZW5kL3V0aWxz L2FkdC9ydWxldXRpbHMuYyAgICAgICAgICAgICB8ICAgNDYgKwogc3JjL2JhY2tlbmQvdXRpbHMv Y2FjaGUvcGxhbmNhY2hlLmMgICAgICAgICAgIHwgICA0MSArLQogc3JjL2JhY2tlbmQvdXRpbHMv Zm1nci9mbWdyLmMgICAgICAgICAgICAgICAgIHwgICAxMCArLQogc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgICAxMiArLQogc3JjL2luY2x1ZGUvY2F0YWxv Zy9uYW1lc3BhY2UuaCAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgICA5ICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgMzAgKwogc3JjL2luY2x1ZGUvZXhlY3V0b3Iv c3ZhcmlhYmxlUmVjZWl2ZXIuaCAgICAgIHwgICAyMiArCiBzcmMvaW5jbHVkZS9ub2Rlcy9leGVj bm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDE0ICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaCAgICAgICAgICAgICAgICB8ICAgMTcgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5v ZGVzLmggICAgICAgICAgICAgICAgIHwgICAxNCArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9k ZXMuaCAgICAgICAgICAgICAgICAgfCAgICA5ICsKIHNyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rl cy5oICAgICAgICAgICAgICAgICB8ICAgMTQgKwogc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5t YWluLmggICAgICAgICAgICAgIHwgICAgMiArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0Lmgg ICAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2Rl LmggICAgICAgICAgICAgICB8ICAgIDMgKwogc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0Lmgg ICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS90Y29wL2Rlc3QuaCAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgICAg ICAgICAgICAgICAgICB8ICAgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFy aWFibGVzLm91dCAgICB8IDEyMzIgKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8ICA4ODMgKysrKysrKysrKysrCiBzcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgICA1ICsKIDU5IGZpbGVz IGNoYW5nZWQsIDQ0NjcgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9sZXQuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbAppbmRleCBmYzU2MjM2MTc5Mi4uMDA0MWU2MWRkZGQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC05 ODMxLDYgKzk4MzEsMTkgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlv biBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT48 L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+dmFyY3JlYXRlX2xzbjwvc3RydWN0ZmllbGQ+IDx0eXBlPnBnX2xzbjwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIExTTiBvZiB0aGUgdHJh bnNhY3Rpb24gd2hlcmUgdGhlIHZhcmlhYmxlIHdhcyBjcmVhdGVkLgorICAgICAgIDxzdHJ1Y3Rm aWVsZD52YXJjcmVhdGVfbHNuPC9zdHJ1Y3RmaWVsZD4gYW5kCisgICAgICAgPHN0cnVjdGZpZWxk Pm9pZDwvc3RydWN0ZmllbGQ+IHRvZ2V0aGVyIGZvcm0gdGhlIGFsbC10aW1lIHVuaXF1ZQorICAg ICAgIGlkZW50aWZpZXIgKDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiBhbG9uZSBpcyBu b3QgZW5vdWdoLCBzaW5jZQorICAgICAgIG9iamVjdCBpZGVudGlmaWVycyBjYW4gZ2V0IHJldXNl ZCkuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CiAgICAgICAgPHN0cnVjdGZpZWxkPnZhcm5hbWU8L3N0cnVjdGZpZWxkPiA8 dHlwZT5uYW1lPC90eXBlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9j L3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IDY2ZmEyNjdmYWNjLi5iM2ZjNjIwNTZlOSAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApA QCAtNTM4NSw2ICs1Mzg1LDY3IEBAIEVYUExBSU4gU0VMRUNUIGNvdW50KCopIEZST00gbWVhc3Vy ZW1lbnQgV0hFUkUgbG9nZGF0ZSAmZ3Q7PSBEQVRFICcyMDA4LTAxLTAxJzsKICAgICBUaGUgc2Vz c2lvbiB2YXJpYWJsZSBob2xkcyB2YWx1ZSBpbiBzZXNzaW9uIG1lbW9yeS4gIFRoaXMgdmFsdWUg aXMgcHJpdmF0ZQogICAgIHRvIGVhY2ggc2Vzc2lvbiBhbmQgaXMgcmVsZWFzZWQgd2hlbiB0aGUg c2Vzc2lvbiBlbmRzLgogICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUgdmFsdWUgb2Yg YSBzZXNzaW9uIHZhcmlhYmxlIGlzIHNldCB3aXRoIHRoZSBTUUwgc3RhdGVtZW50CisgICAgPGNv bW1hbmQ+TEVUPC9jb21tYW5kPi4gIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgY2Fu IGJlIHJldHJpZXZlZAorICAgIHdpdGggdGhlIFNRTCBzdGF0ZW1lbnQgPGNvbW1hbmQ+U0VMRUNU PC9jb21tYW5kPi4KKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGRh dGU7CitMRVQgdmFyMSA9IGN1cnJlbnRfZGF0ZTsKK1NFTEVDVCB2YXIxOworPC9wcm9ncmFtbGlz dGluZz4KKworICAgIG9yCisKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSBwdWJs aWMuY3VycmVudF91c2VyX2lkIEFTIGludGVnZXI7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUg cHVibGljLmN1cnJlbnRfdXNlcl9pZCBUTyBQVUJMSUM7CitMRVQgY3VycmVudF91c2VyX2lkID0g KFNFTEVDVCBpZCBGUk9NIHVzZXJzIFdIRVJFIHVzZW5hbWUgPSBzZXNzaW9uX3VzZXIpOworU0VM RUNUIGN1cnJlbnRfdXNlcl9pZDsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICA8L3BhcmE+CisKKyAg IDxwYXJhPgorICAgIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbG9jYWwgdG8g dGhlIGN1cnJlbnQgc2Vzc2lvbi4gUmV0cmlldmluZworICAgIGEgdmFyaWFibGUncyB2YWx1ZSBy ZXR1cm5zIGEgPGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4sIHVubGVzcyBpdHMgdmFsdWUgaGFzCisg ICAgYmVlbiBzZXQgdG8gc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiB1c2lu ZyB0aGUKKyAgICA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuICBTZXNzaW9uIHZhcmlh YmxlcyBhcmUgbm90IHRyYW5zYWN0aW9uYWw6CisgICAgYW55IGNoYW5nZXMgbWFkZSB0byB0aGUg dmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGluIGEgdHJhbnNhY3Rpb24gd29uJ3QKKyAgICBi ZSB1bmRvbmUgaWYgdGhlIHRyYW5zYWN0aW9uIGlzIHJvbGxlZCBiYWNrIChqdXN0IGxpa2UgdmFy aWFibGVzIGluCisgICAgcHJvY2VkdXJhbCBsYW5ndWFnZXMpLiAgU2Vzc2lvbiB2YXJpYWJsZXMg dGhlbXNlbHZlcyBhcmUgcGVyc2lzdGVudCwgYnV0CisgICAgdGhlaXIgdmFsdWVzIGFyZSBuZWl0 aGVyIHBlcnNpc3RlbnQgbm9yIHNoYXJlZCAobGlrZSB0aGUgY29udGVudCBvZgorICAgIHRlbXBv cmFyeSB0YWJsZXMpLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBJbnNpZGUgYSBxdWVy eSBvciBhbiBleHByZXNzaW9uLCBhIHNlc3Npb24gdmFyaWFibGUgY2FuIGJlCisgICAgPHF1b3Rl PnNoYWRvd2VkPC9xdW90ZT4gYnkgYSBjb2x1bW4gd2l0aCB0aGUgc2FtZSBuYW1lLiAgU2ltaWxh cmx5LCB0aGUKKyAgICBuYW1lIG9mIGEgZnVuY3Rpb24gb3IgcHJvY2VkdXJlIGFyZ3VtZW50IG9y IGEgUEwvcGdTUUwgdmFyaWFibGUgKHNlZQorICAgIDx4cmVmIGxpbmtlbmQ9InBscGdzcWwtZGVj bGFyYXRpb25zIi8+KSBjYW4gc2hhZG93IGEgc2Vzc2lvbiB2YXJpYWJsZQorICAgIGluIHRoZSBy b3V0aW5lJ3MgYm9keS4gIFN1Y2ggY29sbGlzaW9ucyBvZiBpZGVudGlmaWVycyBjYW4gYmUgcmVz b2x2ZWQKKyAgICBieSB1c2luZyBxdWFsaWZpZWQgaWRlbnRpZmllcnM6IFNlc3Npb24gdmFyaWFi bGVzIGNhbiBiZSBxdWFsaWZpZWQgd2l0aAorICAgIHRoZSBzY2hlbWEgbmFtZSwgY29sdW1ucyBj YW4gdXNlIHRhYmxlIGFsaWFzZXMsIHJvdXRpbmUgdmFyaWFibGVzIGNhbiB1c2UKKyAgICBibG9j ayBsYWJlbHMsIGFuZCByb3V0aW5lIGFyZ3VtZW50cyBjYW4gdXNlIHRoZSByb3V0aW5lIG5hbWUu Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVkFSSUFCTEUgbmFtZSBBUyB0ZXh0OworTEVUIG5h bWUgPSAnSm9obic7CisKK0NSRUFURSBUQUJMRSBmb28obmFtZSB0ZXh0KTsKK0lOU0VSVCBJTlRP IGZvbyBWQUxVRVMoJ0FsaWNlJyk7CisKKy0tIHZhcmlhYmxlIG5hbWUgaXMgc2hhZG93ZWQKK1NF TEVDVCBuYW1lIEZST00gZm9vOworPC9wcm9ncmFtbGlzdGluZz4KKworICAgd2hpY2ggcmV0dXJu czoKKworPHByb2dyYW1saXN0aW5nPgorIG5hbWUKKy0tLS0tLS0KKyBBbGljZQorPC9wcm9ncmFt bGlzdGluZz4KKyAgIDwvcGFyYT4KICAgPC9zZWN0MT4KIAogIDxzZWN0MSBpZD0iZGRsLW90aGVy cyI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Z1 bmMuc2dtbAppbmRleCAwZmRmNjEzZGM1ZS4uZTUxMDA3ZmRkNmEgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9mdW5jLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbApAQCAtMjU4NjAs OCArMjU4NjAsOCBAQCBTRUxFQ1QgaGFzX2Z1bmN0aW9uX3ByaXZpbGVnZSgnam9ldXNlcicsICdt eWZ1bmMoaW50LCB0ZXh0KScsICdleGVjdXRlJyk7CiAgICAgICAgICd0JyBmb3IgPGxpdGVyYWw+ VEFCTEVTUEFDRTwvbGl0ZXJhbD4sCiAgICAgICAgICdGJyBmb3IgPGxpdGVyYWw+Rk9SRUlHTiBE QVRBIFdSQVBQRVI8L2xpdGVyYWw+LAogICAgICAgICAnUycgZm9yIDxsaXRlcmFsPkZPUkVJR04g U0VSVkVSPC9saXRlcmFsPiwKLSAgICAgICAgb3IKLSAgICAgICAgJ1QnIGZvciA8bGl0ZXJhbD5U WVBFPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5ET01BSU48L2xpdGVyYWw+LgorICAgICAgICAnVCcg Zm9yIDxsaXRlcmFsPlRZUEU8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPkRPTUFJTjwvbGl0ZXJhbD4g b3IKKyAgICAgICAgJ1YnIGZvciA8bGl0ZXJhbD5TRVNTSU9OIFZBUklBQkxFPC9saXRlcmFsPi4K ICAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgIDwvcm93PgogCmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbCBiL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCmluZGV4 IDgzYjEzZjk4ZjI4Li4yZDEzZGNlYTRlZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2dsb3Nz YXJ5LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwKQEAgLTE3MTQsOCArMTcx NCw5IEBACiAgICAgPHBhcmE+CiAgICAgIEEgcGVyc2lzdGVudCBkYXRhYmFzZSBvYmplY3QgdGhh dCBob2xkcyBhIHZhbHVlIGluIHNlc3Npb24gbWVtb3J5LiAgVGhpcwogICAgICB2YWx1ZSBpcyBw cml2YXRlIHRvIGVhY2ggc2Vzc2lvbiBhbmQgaXMgcmVsZWFzZWQgd2hlbiB0aGUgc2Vzc2lvbiBl bmRzLgotICAgICBSZWFkIG9yIHdyaXRlIGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBpcyBj b250cm9sbGVkIGJ5IHByaXZpbGVnZXMsCi0gICAgIHNpbWlsYXIgdG8gb3RoZXIgZGF0YWJhc2Ug b2JqZWN0cy4KKyAgICAgVGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUg aXMgbnVsbC4gIFJlYWQgb3Igd3JpdGUgYWNjZXNzCisgICAgIHRvIHNlc3Npb24gdmFyaWFibGVz IGlzIGNvbnRyb2xsZWQgYnkgcHJpdmlsZWdlcywgc2ltaWxhciB0byBvdGhlciBkYXRhYmFzZQor ICAgICBvYmplY3RzLgogICAgIDwvcGFyYT4KICAgICA8cGFyYT4KICAgICAgRm9yIG1vcmUgaW5m b3JtYXRpb24sIHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiLz4uCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbCBiL2RvYy9zcmMvc2dtbC9wYXJh bGxlbC5zZ21sCmluZGV4IDFjZTlhYmY4NmY1Li42ODNkZWRlNmFkYyAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwK QEAgLTUxNSw2ICs1MTUsMTIgQEAgRVhQTEFJTiBTRUxFQ1QgKiBGUk9NIHBnYmVuY2hfYWNjb3Vu dHMgV0hFUkUgZmlsbGVyIExJS0UgJyV4JSc7CiAgICAgICAgIFBsYW4gbm9kZXMgdGhhdCByZWZl cmVuY2UgYSBjb3JyZWxhdGVkIDxsaXRlcmFsPlN1YlBsYW48L2xpdGVyYWw+LgogICAgICAgPC9w YXJhPgogICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAg ICAgICAgUGxhbiBub2RlcyB0aGF0IHVzZSBhIHNlc3Npb24gdmFyaWFibGUuCisgICAgICA8L3Bh cmE+CisgICAgPC9saXN0aXRlbT4KICAgPC9pdGVtaXplZGxpc3Q+CiAKICA8c2VjdDIgaWQ9InBh cmFsbGVsLWxhYmVsaW5nIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCmluZGV4IGU5Mzc0OTFlNmI4Li4xZTRjNDNiOGI2 MSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcGxwZ3NxbC5zZ21sCkBAIC02MDM2LDYgKzYwMzYsMjAgQEAgJCQgTEFOR1VBR0UgcGxwZ3Nx bCBTVFJJQ1QgSU1NVVRBQkxFOwogPC9wcm9ncmFtbGlzdGluZz4KICAgICA8L3BhcmE+CiAgICA8 L3NlY3QzPgorCisgICA8c2VjdDMgaWQ9InBscGdzcWwtcG9ydGluZy1wYWNrYWdlLXZhcmlhYmxl cyI+CisgICAgPHRpdGxlPjxjb21tYW5kPlBhY2thZ2VzIGFuZCBwYWNrYWdlIHZhcmlhYmxlczwv Y29tbWFuZD48L3RpdGxlPgorCisgICAgPHBhcmE+CisgICAgIFRoZSA8YXBwbGljYXRpb24+UEwv cGdTUUw8L2FwcGxpY2F0aW9uPiBsYW5ndWFnZSBoYXMgbm8gcGFja2FnZXMsIGFuZAorICAgICB0 aGVyZWZvcmUgbm8gcGFja2FnZSB2YXJpYWJsZXMgb3IgcGFja2FnZSBjb25zdGFudHMuCisgICAg IFlvdSBjYW4gY29uc2lkZXIgdHJhbnNsYXRpbmcgYW4gT3JhY2xlIHBhY2thZ2UgaW50byBhIHNj aGVtYSBpbgorICAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+LiAgUGFj a2FnZSBmdW5jdGlvbnMgYW5kIHByb2NlZHVyZXMKKyAgICAgd291bGQgdGhlbiBiZWNvbWUgZnVu Y3Rpb25zIGFuZCBwcm9jZWR1cmVzIGluIHRoYXQgc2NoZW1hLCBhbmQgcGFja2FnZQorICAgICB2 YXJpYWJsZXMgY291bGQgYmUgdHJhbnNsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxlcyBpbiB0aGF0 IHNjaGVtYS4KKyAgICAgKHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMi Lz4pLgorICAgIDwvcGFyYT4KKyAgIDwvc2VjdDM+CiAgIDwvc2VjdDI+CiAKICAgPHNlY3QyIGlk PSJwbHBnc3FsLXBvcnRpbmctYXBwZW5kaXgiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl Zi9hbGxmaWxlcy5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCmluZGV4IDJm NjdkZTNlMjFiLi5jYzNiZDVhYjU0MCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbGxm aWxlcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbApAQCAtMTU4LDYg KzE1OCw3IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxlIHNnbWwgc291cmNlIGZpbGVzIGluIHRo aXMgZGlyZWN0b3J5LgogPCFFTlRJVFkgZ3JhbnQgICAgICAgICAgICAgIFNZU1RFTSAiZ3JhbnQu c2dtbCI+CiA8IUVOVElUWSBpbXBvcnRGb3JlaWduU2NoZW1hIFNZU1RFTSAiaW1wb3J0X2ZvcmVp Z25fc2NoZW1hLnNnbWwiPgogPCFFTlRJVFkgaW5zZXJ0ICAgICAgICAgICAgIFNZU1RFTSAiaW5z ZXJ0LnNnbWwiPgorPCFFTlRJVFkgbGV0ICAgICAgICAgICAgICAgIFNZU1RFTSAibGV0LnNnbWwi PgogPCFFTlRJVFkgbGlzdGVuICAgICAgICAgICAgIFNZU1RFTSAibGlzdGVuLnNnbWwiPgogPCFF TlRJVFkgbG9hZCAgICAgICAgICAgICAgIFNZU1RFTSAibG9hZC5zZ21sIj4KIDwhRU5USVRZIGxv Y2sgICAgICAgICAgICAgICBTWVNURU0gImxvY2suc2dtbCI+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3Zh cmlhYmxlLnNnbWwKaW5kZXggOTZkMjU4NjQyM2UuLjIyMWE2OTk0NjliIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Jl Zi9hbHRlcl92YXJpYWJsZS5zZ21sCkBAIC0xNzMsNiArMTczLDcgQEAgQUxURVIgVkFSSUFCTEUg Ym9vIFNFVCBTQ0hFTUEgcHJpdmF0ZTsKICAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KICAg IDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIi8+PC9tZW1iZXI+CiAg ICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAg IDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWxldCIvPjwvbWVtYmVyPgogICA8L3NpbXBsZWxp c3Q+CiAgPC9yZWZzZWN0MT4KIDwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFi bGUuc2dtbAppbmRleCA2ZTk4OGYyZTQ3Mi4uY2Q5ZmY2Mzk3NWEgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMTIwLDkgKzEyMCwxMSBAQCBDUkVBVEUgVkFSSUFCTEUg WyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYgogICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgogCiAgIDxwYXJhPgotICAgQ3JlYXRl IGFuIGRhdGUgc2Vzc2lvbiB2YXJpYWJsZSA8bGl0ZXJhbD52YXIxPC9saXRlcmFsPjoKKyAgIENy ZWF0ZSBhIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD4gb2YgZGF0YSB0 eXBlIGRhdGU6CiA8cHJvZ3JhbWxpc3Rpbmc+CiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBkYXRl OworTEVUIHZhcjEgPSBjdXJyZW50X2RhdGU7CitTRUxFQ1QgdmFyMTsKIDwvcHJvZ3JhbWxpc3Rp bmc+CiAgIDwvcGFyYT4KIApAQCAtMTQzLDYgKzE0NSw3IEBAIENSRUFURSBWQVJJQUJMRSB2YXIx IEFTIGRhdGU7CiAgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CiAgICA8bWVtYmVyPjx4cmVm IGxpbmtlbmQ9InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CiAgICA8bWVtYmVyPjx4cmVm IGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYg bGlua2VuZD0ic3FsLWxldCIvPjwvbWVtYmVyPgogICA8L3NpbXBsZWxpc3Q+CiAgPC9yZWZzZWN0 MT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwgYi9k b2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbAppbmRleCA1YmRiMzU2MGYwYi4uNjc5 ODhiNWZjZDggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCkBAIC0xMTEsNiArMTEx LDcgQEAgRFJPUCBWQVJJQUJMRSB2YXIxOwogICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgog ICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgog ICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz48L21lbWJlcj4K KyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWxldCIvPjwvbWVtYmVyPgogICA8L3NpbXBs ZWxpc3Q+CiAgPC9yZWZzZWN0MT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9sZXQu c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLjAwZjliZWE5MWZlCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9z Z21sL3JlZi9sZXQuc2dtbApAQCAtMCwwICsxLDk2IEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVm L2xldC5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9 InNxbC1sZXQiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWxldCI+CisgIDxwcmltYXJ5PkxFVDwv cHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxpbmRleHRlcm0+CisgIDxwcmltYXJ5PnNlc3Np b24gdmFyaWFibGU8L3ByaW1hcnk+CisgIDxzZWNvbmRhcnk+Y2hhbmdpbmc8L3NlY29uZGFyeT4K KyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5MRVQ8L3JlZmVu dHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FM IC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJl Zm5hbWVkaXY+CisgIDxyZWZuYW1lPkxFVDwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+Y2hhbmdl IGEgc2Vzc2lvbiB2YXJpYWJsZSdzIHZhbHVlPC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4K KworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0xFVCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+c2Vzc2lvbl92YXJpYWJsZTwvcmVwbGFjZWFibGU+ID0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnNxbF9leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4KKzwvc3lub3Bz aXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0 aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNv bW1hbmQgYXNzaWducyBhIHZhbHVlIHRvIHRoZSBzcGVjaWZpZWQgc2Vzc2lvbgorICAgdmFyaWFi bGUuCisgIDwvcGFyYT4KKworIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Q YXJhbWV0ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4K KyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2Vzc2lvbl92YXJpYWJs ZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAg ICBUaGUgbmFtZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwv bGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8 dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3FsX2V4cHJlc3Npb248L3JlcGxh Y2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQW4gYXJi aXRyYXJ5IFNRTCBleHByZXNzaW9uLiAgVGhlIHJlc3VsdCBtdXN0IGJlIG9mIGEgZGF0YSB0eXBl IHRoYXQgY2FuCisgICAgICBiZSBjYXN0IHRvIHRoZSB0eXBlIG9mIHRoZSBzZXNzaW9uIHZhcmlh YmxlIGluIGFuIGFzc2lnbm1lbnQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAg PC92YXJsaXN0ZW50cnk+CisKKyAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxy ZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKzxwcm9ncmFtbGlzdGluZz4KK0NS RUFURSBWQVJJQUJMRSBteXZhciBBUyBpbnRlZ2VyOworTEVUIG15dmFyID0gMTA7CitMRVQgbXl2 YXIgPSAoU0VMRUNUIHN1bSh2YWwpIEZST00gdGFiKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgPC9y ZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgor CisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gaXMgYSA8cHJvZHVjdG5h bWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+CisgICBleHRlbnNpb24uCisgIDwvcGFyYT4KKyA8 L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgorCisg IDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNx bC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNx bC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJz cWwtZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3Qx PgorPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAppbmRleCAyNTU3OGYzOTQ2Yy4uMTNlNGFkYzVk ZjMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvcmVmZXJlbmNlLnNnbWwKQEAgLTE4Niw2ICsxODYsNyBAQAogICAgJmdyYW50OwogICAg JmltcG9ydEZvcmVpZ25TY2hlbWE7CiAgICAmaW5zZXJ0OworICAgJmxldDsKICAgICZsaXN0ZW47 CiAgICAmbG9hZDsKICAgICZsb2NrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9k ZXBlbmRlbmN5LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwppbmRleCA5ZTBm NjQ4Yjc0Zi4uOTBjOWU4YmIyNTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVw ZW5kZW5jeS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCkBAIC0xODY0 LDYgKzE4NjQsMTEgQEAgZmluZF9leHByX3JlZmVyZW5jZXNfd2Fsa2VyKE5vZGUgKm5vZGUsCiAJ ewogCQlQYXJhbQkgICAqcGFyYW0gPSAoUGFyYW0gKikgbm9kZTsKIAorCQkvKiBhIHZhcmlhYmxl IHBhcmFtZXRlciBkZXBlbmRzIG9uIHRoZSBzZXNzaW9uIHZhcmlhYmxlICovCisJCWlmIChwYXJh bS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQkJYWRkX29iamVjdF9hZGRyZXNzKFZh cmlhYmxlUmVsYXRpb25JZCwgcGFyYW0tPnBhcmFtdmFyaWQsIDAsCisJCQkJCQkJICAgY29udGV4 dC0+YWRkcnMpOworCiAJCS8qIEEgcGFyYW1ldGVyIG11c3QgZGVwZW5kIG9uIHRoZSBwYXJhbWV0 ZXIncyBkYXRhdHlwZSAqLwogCQlhZGRfb2JqZWN0X2FkZHJlc3MoVHlwZVJlbGF0aW9uSWQsIHBh cmFtLT5wYXJhbXR5cGUsIDAsCiAJCQkJCQkgICBjb250ZXh0LT5hZGRycyk7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9u YW1lc3BhY2UuYwppbmRleCA0MzA3Y2FkMTVjNy4uYmVhZmVlMmEzNDEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9u YW1lc3BhY2UuYwpAQCAtMzQ5Nyw2ICszNDk3LDI5NSBAQCBOYW1lc0Zyb21MaXN0KExpc3QgKm5h bWVzKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qIC0tLS0tCisgKiBJZGVudGlmeVZhcmlhYmxl IC0gdHJ5IHRvIGZpbmQgYSB2YXJpYWJsZSBmcm9tIGEgbGlzdCBvZiBpZGVudGlmaWVycworICoK KyAqIFJldHVybnMgdGhlIE9JRCBvZiB0aGUgdmFyaWFibGUgZm91bmQsIG9yIEludmFsaWRPaWQu CisgKgorICogIm5hbWVzIiBpcyBhIGxpc3Qgb2YgdXAgdG8gZm91ciBpZGVudGlmaWVyczsgcG9z c2libGUgbWVhbmluZ3MgYXJlOgorICogLSB2YXJpYWJsZSAgKHNlYXJjaGVkIG9uIHRoZSBzZWFy Y2hfcGF0aCkKKyAqIC0gc2NoZW1hLnZhcmlhYmxlCisgKiAtIHZhcmlhYmxlLmF0dHJpYnV0ZSAg KHNlYXJjaGVkIG9uIHRoZSBzZWFyY2hfcGF0aCkKKyAqIC0gc2NoZW1hLnZhcmlhYmxlLmF0dHJp YnV0ZQorICogLSBkYXRhYmFzZS5zY2hlbWEudmFyaWFibGUKKyAqIC0gZGF0YWJhc2Uuc2NoZW1h LnZhcmlhYmxlLmF0dHJpYnV0ZQorICoKKyAqIElmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgd2F5 IHRvIGlkZW50aWZ5IGEgdmFyaWFibGUsICJub3RfdW5pcXVlIiB3aWxsIGJlCisgKiBzZXQgdG8g dHJ1ZS4KKyAqCisgKiBVbmxlc3MgIm5vZXJyb3IiIGlzIHRydWUsIGFuIGVycm9yIGlzIHJhaXNl ZCBpZiB0aGVyZSBhcmUgbW9yZSB0aGFuIGZvdXIKKyAqICBpZGVudGlmaWVycyBpbiB0aGUgbGlz dCwgb3IgaWYgdGhlIG5hbWVkIGRhdGFiYXNlIGlzIG5vdCB0aGUgY3VycmVudCBvbmUuCisgKiBU aGlzIGlzIHVzZWZ1bCBpZiB3ZSB3YW50IHRvIGlkZW50aWZ5IGEgc2hhZG93ZWQgdmFyaWFibGUu CisgKgorICogSWYgYW4gYXR0cmlidXRlIGlzIGlkZW50aWZpZWQsIGl0IGlzIHN0b3JlZCBpbiAi YXR0cm5hbWUiLCBvdGhlcndpc2UgdGhlCisgKiBwYXJhbWV0ZXIgaXMgc2V0IHRvIE5VTEwuCisg KgorICogVGhlIGlkZW50aWZpZWQgc2Vzc2lvbiB2YXJpYWJsZSB3aWxsIGJlIGxvY2tlZCB3aXRo IGFuIEFjY2Vzc1NoYXJlTG9jay4KKyAqIC0tLS0tCisgKi8KK09pZAorSWRlbnRpZnlWYXJpYWJs ZShMaXN0ICpuYW1lcywgY2hhciAqKmF0dHJuYW1lLCBib29sICpub3RfdW5pcXVlLCBib29sIG5v ZXJyb3IpCit7CisJT2lkCQkJdmFyaWQgPSBJbnZhbGlkT2lkOworCU9pZAkJCW9sZF92YXJpZCA9 IEludmFsaWRPaWQ7CisJdWludDY0CQlpbnZhbF9jb3VudDsKKwlib29sCQlyZXRyeSA9IGZhbHNl OworCisJLyoKKwkgKiBEREwgb3BlcmF0aW9ucyBjYW4gY2hhbmdlIHRoZSByZXN1bHRzIG9mIGEg bmFtZSBsb29rdXAuICBTaW5jZSBhbGwgc3VjaAorCSAqIG9wZXJhdGlvbnMgd2lsbCBnZW5lcmF0 ZSBpbnZhbGlkYXRpb24gbWVzc2FnZXMsIHdlIGtlZXAgdHJhY2sgb2YKKwkgKiB3aGV0aGVyIGFu eSBzdWNoIG1lc3NhZ2VzIHNob3cgdXAgd2hpbGUgd2UncmUgcGVyZm9ybWluZyB0aGUgb3BlcmF0 aW9uLAorCSAqIGFuZCByZXRyeSB1bnRpbCBlaXRoZXIgKDEpIG5vIG1vcmUgaW52YWxpZGF0aW9u IG1lc3NhZ2VzIHNob3cgdXAgb3IgKDIpCisJICogdGhlIGFuc3dlciBkb2Vzbid0IGNoYW5nZS4K KwkgKi8KKwlmb3IgKDs7KQorCXsKKwkJTm9kZQkgICAqZmllbGQxID0gTlVMTDsKKwkJTm9kZQkg ICAqZmllbGQyID0gTlVMTDsKKwkJTm9kZQkgICAqZmllbGQzID0gTlVMTDsKKwkJTm9kZQkgICAq ZmllbGQ0ID0gTlVMTDsKKwkJY2hhcgkgICAqYSA9IE5VTEw7CisJCWNoYXIJICAgKmIgPSBOVUxM OworCQljaGFyCSAgICpjID0gTlVMTDsKKwkJY2hhcgkgICAqZCA9IE5VTEw7CisJCU9pZAkJCXZh cm9pZF93aXRob3V0X2F0dHIgPSBJbnZhbGlkT2lkOworCQlPaWQJCQl2YXJvaWRfd2l0aF9hdHRy ID0gSW52YWxpZE9pZDsKKworCQkqbm90X3VuaXF1ZSA9IGZhbHNlOworCQkqYXR0cm5hbWUgPSBO VUxMOworCQl2YXJpZCA9IEludmFsaWRPaWQ7CisKKwkJaW52YWxfY291bnQgPSBTaGFyZWRJbnZh bGlkTWVzc2FnZUNvdW50ZXI7CisKKwkJc3dpdGNoIChsaXN0X2xlbmd0aChuYW1lcykpCisJCXsK KwkJCWNhc2UgMToKKwkJCQlmaWVsZDEgPSBsaW5pdGlhbChuYW1lcyk7CisKKwkJCQlBc3NlcnQo SXNBKGZpZWxkMSwgU3RyaW5nKSk7CisKKwkJCQl2YXJpZCA9IExvb2t1cFZhcmlhYmxlKE5VTEws IHN0clZhbChmaWVsZDEpLCB0cnVlKTsKKwkJCQlicmVhazsKKworCQkJY2FzZSAyOgorCQkJCWZp ZWxkMSA9IGxpbml0aWFsKG5hbWVzKTsKKwkJCQlmaWVsZDIgPSBsc2Vjb25kKG5hbWVzKTsKKwor CQkJCUFzc2VydChJc0EoZmllbGQxLCBTdHJpbmcpKTsKKwkJCQlhID0gc3RyVmFsKGZpZWxkMSk7 CisKKwkJCQlpZiAoSXNBKGZpZWxkMiwgU3RyaW5nKSkKKwkJCQl7CisJCQkJCS8qIHdoZW4gYm90 aCBmaWVsZHMgYXJlIG9mIHN0cmluZyB0eXBlICovCisJCQkJCWIgPSBzdHJWYWwoZmllbGQyKTsK KworCQkJCQkvKgorCQkJCQkgKiBhLmIgY2FuIG1lYW4gInNjaGVtYSIuInZhcmlhYmxlIiBvcgor CQkJCQkgKiAidmFyaWFibGUiLiJhdHRyaWJ1dGUiLiAgQ2hlY2sgYm90aCB2YXJpYW50cywgYW5k CisJCQkJCSAqIHJldHVybnMgSW52YWxpZE9pZCB3aXRoIG5vdF91bmlxdWUgZmxhZywgd2hlbiBi b3RoCisJCQkJCSAqIGludGVycHJldGF0aW9ucyBhcmUgcG9zc2libGUuCisJCQkJCSAqLworCQkJ CQl2YXJvaWRfd2l0aG91dF9hdHRyID0gTG9va3VwVmFyaWFibGUoYSwgYiwgdHJ1ZSk7CisJCQkJ CXZhcm9pZF93aXRoX2F0dHIgPSBMb29rdXBWYXJpYWJsZShOVUxMLCBhLCB0cnVlKTsKKwkJCQl9 CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJLyogdGhlIGxhc3QgZmllbGQgb2YgbGlzdCBjYW4gYmUg c3RhciB0b28gKi8KKwkJCQkJQXNzZXJ0KElzQShmaWVsZDIsIEFfU3RhcikpOworCisJCQkJCS8q CisJCQkJCSAqIFRoZSBzeW50YXggaWRlbnQuKiBpcyB1c2VkIG9ubHkgYnkgcmVsYXRpb24gYWxp YXNlcywKKwkJCQkJICogYW5kIHRoZW4gdGhpcyBpZGVudGlmaWVyIGNhbm5vdCBiZSBhIHJlZmVy ZW5jZSB0bworCQkJCQkgKiBzZXNzaW9uIHZhcmlhYmxlLgorCQkJCQkgKi8KKwkJCQkJcmV0dXJu IEludmFsaWRPaWQ7CisJCQkJfQorCisJCQkJaWYgKE9pZElzVmFsaWQodmFyb2lkX3dpdGhvdXRf YXR0cikgJiYgT2lkSXNWYWxpZCh2YXJvaWRfd2l0aF9hdHRyKSkKKwkJCQl7CisJCQkJCSpub3Rf dW5pcXVlID0gdHJ1ZTsKKwkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0aG91dF9hdHRyOworCQkJCX0K KwkJCQllbHNlIGlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRob3V0X2F0dHIpKQorCQkJCXsKKwkJ CQkJdmFyaWQgPSB2YXJvaWRfd2l0aG91dF9hdHRyOworCQkJCX0KKwkJCQllbHNlIGlmIChPaWRJ c1ZhbGlkKHZhcm9pZF93aXRoX2F0dHIpKQorCQkJCXsKKwkJCQkJKmF0dHJuYW1lID0gYjsKKwkJ CQkJdmFyaWQgPSB2YXJvaWRfd2l0aF9hdHRyOworCQkJCX0KKwkJCQlicmVhazsKKworCQkJY2Fz ZSAzOgorCQkJCXsKKwkJCQkJYm9vbAkJZmllbGQxX2lzX2NhdGFsb2cgPSBmYWxzZTsKKworCQkJ CQlmaWVsZDEgPSBsaW5pdGlhbChuYW1lcyk7CisJCQkJCWZpZWxkMiA9IGxzZWNvbmQobmFtZXMp OworCQkJCQlmaWVsZDMgPSBsdGhpcmQobmFtZXMpOworCisJCQkJCUFzc2VydChJc0EoZmllbGQx LCBTdHJpbmcpKTsKKwkJCQkJQXNzZXJ0KElzQShmaWVsZDIsIFN0cmluZykpOworCisJCQkJCWEg PSBzdHJWYWwoZmllbGQxKTsKKwkJCQkJYiA9IHN0clZhbChmaWVsZDIpOworCisJCQkJCWlmIChJ c0EoZmllbGQzLCBTdHJpbmcpKQorCQkJCQl7CisJCQkJCQljID0gc3RyVmFsKGZpZWxkMyk7CisK KwkJCQkJCS8qCisJCQkJCQkgKiBhLmIuYyBjYW4gbWVhbiBjYXRhbG9nLnNjaGVtYS52YXJpYWJs ZSBvcgorCQkJCQkJICogc2NoZW1hLnZhcmlhYmxlLmF0dHJpYnV0ZS4KKwkJCQkJCSAqCisJCQkJ CQkgKiBDaGVjayBib3RoIHZhcmlhbnRzLCBhbmQgc2V0IG5vdF91bmlxdWUgZmxhZywgd2hlbgor CQkJCQkJICogYm90aCBpbnRlcnByZXRhdGlvbnMgYXJlIHBvc3NpYmxlLgorCQkJCQkJICoKKwkJ CQkJCSAqIFdoZW4gdGhpcmQgbm9kZSBpcyBzdGFyLCBvbmx5IHBvc3NpYmxlCisJCQkJCQkgKiBp bnRlcnByZXRhdGlvbiBpcyBzY2hlbWEudmFyaWFibGUuKiwgYnV0IHRoaXMKKwkJCQkJCSAqIHBh dHRlcm4gaXMgbm90IHN1cHBvcnRlZCBub3cuCisJCQkJCQkgKi8KKwkJCQkJCXZhcm9pZF93aXRo X2F0dHIgPSBMb29rdXBWYXJpYWJsZShhLCBiLCB0cnVlKTsKKworCQkJCQkJLyoKKwkJCQkJCSAq IGNoZWNrIHBhdHRlcm4gY2F0YWxvZy5zY2hlbWEudmFyaWFibGUgb25seSB3aGVuCisJCQkJCQkg KiB0aGVyZSBpcyBwb3NzaWJpbGl0eSB0byBzdWNjZXNzLgorCQkJCQkJICovCisJCQkJCQlpZiAo c3RyY21wKGEsIGdldF9kYXRhYmFzZV9uYW1lKE15RGF0YWJhc2VJZCkpID09IDApCisJCQkJCQl7 CisJCQkJCQkJZmllbGQxX2lzX2NhdGFsb2cgPSB0cnVlOworCQkJCQkJCXZhcm9pZF93aXRob3V0 X2F0dHIgPSBMb29rdXBWYXJpYWJsZShiLCBjLCB0cnVlKTsKKwkJCQkJCX0KKwkJCQkJfQorCQkJ CQllbHNlCisJCQkJCXsKKwkJCQkJCUFzc2VydChJc0EoZmllbGQzLCBBX1N0YXIpKTsKKwkJCQkJ CXJldHVybiBJbnZhbGlkT2lkOworCQkJCQl9CisKKwkJCQkJaWYgKE9pZElzVmFsaWQodmFyb2lk X3dpdGhvdXRfYXR0cikgJiYgT2lkSXNWYWxpZCh2YXJvaWRfd2l0aF9hdHRyKSkKKwkJCQkJewor CQkJCQkJKm5vdF91bmlxdWUgPSB0cnVlOworCQkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0aG91dF9h dHRyOworCQkJCQl9CisJCQkJCWVsc2UgaWYgKE9pZElzVmFsaWQodmFyb2lkX3dpdGhvdXRfYXR0 cikpCisJCQkJCXsKKwkJCQkJCXZhcmlkID0gdmFyb2lkX3dpdGhvdXRfYXR0cjsKKwkJCQkJfQor CQkJCQllbHNlIGlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRoX2F0dHIpKQorCQkJCQl7CisJCQkJ CQkqYXR0cm5hbWUgPSBjOworCQkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0aF9hdHRyOworCQkJCQl9 CisKKwkJCQkJLyoKKwkJCQkJICogV2hlbiB3ZSBkaWRuJ3QgZmluZCB2YXJpYWJsZSwgd2UgY2Fu ICh3aGVuIGl0IGlzCisJCQkJCSAqIGFsbG93ZWQpIHJhaXNlIGNyb3NzLWRhdGFiYXNlIHJlZmVy ZW5jZSBlcnJvci4KKwkJCQkJICovCisJCQkJCWlmICghT2lkSXNWYWxpZCh2YXJpZCkgJiYgIW5v ZXJyb3IgJiYgIWZpZWxkMV9pc19jYXRhbG9nKQorCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ CQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJCQkgZXJy bXNnKCJjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICVzIiwK KwkJCQkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSkpKTsKKwkJCQl9CisJCQkJYnJlYWs7 CisKKwkJCWNhc2UgNDoKKwkJCQl7CisJCQkJCWZpZWxkMSA9IGxpbml0aWFsKG5hbWVzKTsKKwkJ CQkJZmllbGQyID0gbHNlY29uZChuYW1lcyk7CisJCQkJCWZpZWxkMyA9IGx0aGlyZChuYW1lcyk7 CisJCQkJCWZpZWxkNCA9IGxmb3VydGgobmFtZXMpOworCisJCQkJCUFzc2VydChJc0EoZmllbGQx LCBTdHJpbmcpKTsKKwkJCQkJQXNzZXJ0KElzQShmaWVsZDIsIFN0cmluZykpOworCQkJCQlBc3Nl cnQoSXNBKGZpZWxkMywgU3RyaW5nKSk7CisKKwkJCQkJYSA9IHN0clZhbChmaWVsZDEpOworCQkJ CQliID0gc3RyVmFsKGZpZWxkMik7CisJCQkJCWMgPSBzdHJWYWwoZmllbGQzKTsKKworCQkJCQkv KgorCQkJCQkgKiBJbiB0aGlzIGNhc2UsICJhIiBpcyB1c2VkIGFzIGNhdGFsb2cgbmFtZSAtIGNo ZWNrIGl0LgorCQkJCQkgKi8KKwkJCQkJaWYgKHN0cmNtcChhLCBnZXRfZGF0YWJhc2VfbmFtZShN eURhdGFiYXNlSWQpKSAhPSAwKQorCQkJCQl7CisJCQkJCQlpZiAoIW5vZXJyb3IpCisJCQkJCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQ UE9SVEVEKSwKKwkJCQkJCQkJCSBlcnJtc2coImNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJl IG5vdCBpbXBsZW1lbnRlZDogJXMiLAorCQkJCQkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVz KSkpKTsKKwkJCQkJfQorCisJCQkJCWlmIChJc0EoZmllbGQ0LCBTdHJpbmcpKQorCQkJCQl7CisJ CQkJCQlkID0gc3RyVmFsKGZpZWxkNCk7CisJCQkJCX0KKwkJCQkJZWxzZQorCQkJCQl7CisJCQkJ CQlBc3NlcnQoSXNBKGZpZWxkNCwgQV9TdGFyKSk7CisJCQkJCQlyZXR1cm4gSW52YWxpZE9pZDsK KwkJCQkJfQorCisJCQkJCSphdHRybmFtZSA9IGQ7CisJCQkJCXZhcmlkID0gTG9va3VwVmFyaWFi bGUoYiwgYywgdHJ1ZSk7CisJCQkJfQorCQkJCWJyZWFrOworCisJCQlkZWZhdWx0OgorCQkJCWlm ICghbm9lcnJvcikKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RF X1NZTlRBWF9FUlJPUiksCisJCQkJCQkJIGVycm1zZygiaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUg KHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICVzIiwKKwkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmco bmFtZXMpKSkpOworCQkJCXJldHVybiBJbnZhbGlkT2lkOworCQl9CisKKwkJLyoKKwkJICogSWYs IHVwb24gcmV0cnksIHdlIGdldCBiYWNrIHRoZSBzYW1lIE9JRCB3ZSBkaWQgbGFzdCB0aW1lLCB0 aGVuIHRoZQorCQkgKiBpbnZhbGlkYXRpb24gbWVzc2FnZXMgd2UgcHJvY2Vzc2VkIGRpZCBub3Qg Y2hhbmdlIHRoZSBmaW5hbCBhbnN3ZXIuCisJCSAqIFNvIHdlJ3JlIGRvbmUuCisJCSAqCisJCSAq IElmIHdlIGdvdCBhIGRpZmZlcmVudCBPSUQsIHdlJ3ZlIGxvY2tlZCB0aGUgdmFyaWFibGUgdGhh dCB1c2VkIHRvCisJCSAqIGhhdmUgdGhpcyBuYW1lIHJhdGhlciB0aGFuIHRoZSBvbmUgdGhhdCBk b2VzIG5vdy4gIFNvIHJlbGVhc2UgdGhlCisJCSAqIGxvY2suCisJCSAqLworCQlpZiAocmV0cnkp CisJCXsKKwkJCWlmIChvbGRfdmFyaWQgPT0gdmFyaWQpCisJCQkJYnJlYWs7CisKKwkJCWlmIChP aWRJc1ZhbGlkKG9sZF92YXJpZCkpCisJCQkJVW5sb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVS ZWxhdGlvbklkLCBvbGRfdmFyaWQsIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJCX0KKworCQkvKgor CQkgKiBMb2NrIHRoZSB2YXJpYWJsZS4gIFRoaXMgd2lsbCBhbHNvIGFjY2VwdCBhbnkgcGVuZGlu ZyBpbnZhbGlkYXRpb24KKwkJICogbWVzc2FnZXMuICBJZiB3ZSBnb3QgYmFjayBJbnZhbGlkT2lk LCBpbmRpY2F0aW5nIG5vdCBmb3VuZCwgdGhlbgorCQkgKiB0aGVyZSdzIG5vdGhpbmcgdG8gbG9j aywgYnV0IHdlIGFjY2VwdCBpbnZhbGlkYXRpb24gbWVzc2FnZXMKKwkJICogYW55d2F5LCB0byBm bHVzaCBhbnkgbmVnYXRpdmUgY2F0Y2FjaGUgZW50cmllcyB0aGF0IG1heSBiZQorCQkgKiBsaW5n ZXJpbmcuCisJCSAqLworCQlpZiAoIU9pZElzVmFsaWQodmFyaWQpKQorCQkJQWNjZXB0SW52YWxp ZGF0aW9uTWVzc2FnZXMoKTsKKwkJZWxzZQorCQkJTG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxl UmVsYXRpb25JZCwgdmFyaWQsIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwkJLyoKKwkJICogSWYg bm8gaW52YWxpZGF0aW9uIG1lc3NhZ2Ugd2VyZSBwcm9jZXNzZWQsIHdlJ3JlIGRvbmUhCisJCSAq LworCQlpZiAoaW52YWxfY291bnQgPT0gU2hhcmVkSW52YWxpZE1lc3NhZ2VDb3VudGVyKQorCQkJ YnJlYWs7CisKKwkJcmV0cnkgPSB0cnVlOworCQlvbGRfdmFyaWQgPSB2YXJpZDsKKwkJdmFyaWQg PSBJbnZhbGlkT2lkOworCX0KKworCXJldHVybiB2YXJpZDsKK30KKwogLyoKICAqIERlY29uc3Ry dWN0UXVhbGlmaWVkTmFtZQogICoJCUdpdmVuIGEgcG9zc2libHktcXVhbGlmaWVkIG5hbWUgZXhw cmVzc2VkIGFzIGEgbGlzdCBvZiBTdHJpbmcgbm9kZXMsCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxl LmMKaW5kZXggMjlkOTY3YTJkNWIuLmJiNDQ1ZTk0MzRiIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJp YWJsZS5jCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIK ICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5o IgorI2luY2x1ZGUgInV0aWxzL3BnX2xzbi5oIgogI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgi CiAKIHN0YXRpYyBPYmplY3RBZGRyZXNzIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJO YW1lLApAQCAtMTAxLDYgKzEwMiw3IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJO YW1lLAogCXZhcmlkID0gR2V0TmV3T2lkV2l0aEluZGV4KHJlbCwgVmFyaWFibGVPaWRJbmRleElk LCBBbnVtX3BnX3ZhcmlhYmxlX29pZCk7CiAKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV9vaWQg LSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyaWQpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxl X3ZhcmNyZWF0ZV9sc24gLSAxXSA9IExTTkdldERhdHVtKEdldFhMb2dJbnNlcnRSZWNQdHIoKSk7 CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFybmFtZSAtIDFdID0gTmFtZUdldERhdHVtKCZ2 YXJuYW1lKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJuYW1lc3BhY2UgLSAxXSA9IE9i amVjdElkR2V0RGF0dW0odmFyTmFtZXNwYWNlKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92 YXJ0eXBlIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhclR5cGUpOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmls ZQppbmRleCBjYjJmYmRjN2M2MC4uYWVlNDBlN2JkNTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCkBA IC01Myw2ICs1Myw3IEBAIE9CSlMgPSBcCiAJc2NoZW1hY21kcy5vIFwKIAlzZWNsYWJlbC5vIFwK IAlzZXF1ZW5jZS5vIFwKKwlzZXNzaW9uX3ZhcmlhYmxlLm8gXAogCXN0YXRzY21kcy5vIFwKIAlz dWJzY3JpcHRpb25jbWRzLm8gXAogCXRhYmxlY21kcy5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVp bGQKaW5kZXggZGQ0Y2RlNDFkMzIuLjEwMWM4ZDc1ZGQxIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5i dWlsZApAQCAtNDEsNiArNDEsNyBAQCBiYWNrZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiAgICdzY2hl bWFjbWRzLmMnLAogICAnc2VjbGFiZWwuYycsCiAgICdzZXF1ZW5jZS5jJywKKyAgJ3Nlc3Npb25f dmFyaWFibGUuYycsCiAgICdzdGF0c2NtZHMuYycsCiAgICdzdWJzY3JpcHRpb25jbWRzLmMnLAog ICAndGFibGVjbWRzLmMnLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFy ZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCmluZGV4IGJmN2QyYjIzMDlmLi41 NmIzZDhjYjkxZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCisr KyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwpAQCAtMzQyLDYgKzM0MiwxNiBAQCBF dmFsdWF0ZVBhcmFtcyhQYXJzZVN0YXRlICpwc3RhdGUsIFByZXBhcmVkU3RhdGVtZW50ICpwc3Rt dCwgTGlzdCAqcGFyYW1zLAogCQlpKys7CiAJfQogCisJLyoKKwkgKiBUaGUgYXJndW1lbnRzIG9m IEVYRUNVVEUgYXJlIGV2YWx1YXRlZCBieSBhIGRpcmVjdCBleHByZXNzaW9uCisJICogZXhlY3V0 b3IgY2FsbC4gIFRoaXMgbW9kZSBkb2Vzbid0IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMgeWV0 LgorCSAqIEl0IHdpbGwgYmUgZW5hYmxlZCBsYXRlci4KKwkgKi8KKwlpZiAocHN0YXRlLT5wX2hh c1Nlc3Npb25WYXJpYWJsZXMpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09E RV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUg Y2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQiKSkpOworCiAJLyogUHJlcGFyZSB0aGUgZXhw cmVzc2lvbnMgZm9yIGV4ZWN1dGlvbiAqLwogCWV4cHJzdGF0ZXMgPSBFeGVjUHJlcGFyZUV4cHJM aXN0KHBhcmFtcywgZXN0YXRlKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kMjg5MWExZGNiNwot LS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUu YwpAQCAtMCwwICsxLDUyOSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogc2Vzc2lvbl92 YXJpYWJsZS5jCisgKgkgIHNlc3Npb24gdmFyaWFibGUgY3JlYXRpb24vbWFuaXB1bGF0aW9uIGNv bW1hbmRzCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjUsIFBvc3RncmVT UUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5 OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqCisgKiBJ REVOVElGSUNBVElPTgorICoJICBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2luY2x1ZGUgInBvc3RncmVzLmgiCisK KyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vz c2lvbl92YXJpYWJsZS5oIgorI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgi CisjaW5jbHVkZSAiZnVuY2FwaS5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorI2luY2x1ZGUg InJld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCIKKyNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKKyNp bmNsdWRlICJzdG9yYWdlL3Byb2MuaCIKKyNpbmNsdWRlICJ0Y29wL3Rjb3Bwcm90LmgiCisjaW5j bHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9kYXR1bS5oIgorI2luY2x1 ZGUgInV0aWxzL2ludmFsLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVk ZSAidXRpbHMvc25hcG1nci5oIgorI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKKy8qCisg KiBUaGUgdmFsdWVzIG9mIHNlc3Npb24gdmFyaWFibGVzIGFyZSBzdG9yZWQgaW4gdGhlIGJhY2tl bmQncyBwcml2YXRlIG1lbW9yeQorICogaW4gdGhlIGRlZGljYXRlZCBtZW1vcnkgY29udGV4dCBT VmFyaWFibGVNZW1vcnlDb250ZXh0IGluIGJpbmFyeSBmb3JtYXQuCisgKiBUaGV5IGFyZSBzdG9y ZWQgaW4gdGhlICJzZXNzaW9udmFycyIgaGFzaCB0YWJsZSwgd2hvc2Uga2V5IGlzIHRoZSBPSUQg b2YgdGhlCisgKiB2YXJpYWJsZS4gIEhvd2V2ZXIsIHRoZSBPSUQgaXMgbm90IGdvb2QgZW5vdWdo IHRvIGlkZW50aWZ5IGEgc2Vzc2lvbgorICogdmFyaWFibGU6IGNvbmN1cnJlbnQgc2Vzc2lvbnMg Y291bGQgZHJvcCB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBhbmQgY3JlYXRlIGEKKyAqIG5ldyBvbmUs IHdoaWNoIGNvdWxkIGJlIGFzc2lnbmVkIHRoZSBzYW1lIE9JRC4gIFRvIGVuc3VyZSB0aGF0IHRo ZSB2YWx1ZXMKKyAqIHN0b3JlZCBpbiBtZW1vcnkgYW5kIHRoZSBjYXRhbG9nIGRlZmluaXRpb24g bWF0Y2gsIHdlIGFsc28ga2VlcCB0cmFjayBvZgorICogdGhlICJjcmVhdGVfbHNuIi4gIEJlZm9y ZSBhbnkgYWNjZXNzIHRvIHRoZSB2YXJpYWJsZSB2YWx1ZXMsIHdlIG5lZWQgdG8KKyAqIGNoZWNr IGlmIHRoZSBMU04gc3RvcmVkIGluIG1lbW9yeSBtYXRjaGVzIHRoZSBMU04gaW4gdGhlIGNhdGFs b2cuICBJZiB0aGVyZQorICogaXMgYSBtaXNtYXRjaCBiZXR3ZWVuIHRoZSBMU05zLCBvciBpZiB0 aGUgT0lEIGlzIG5vdCBwcmVzZW50IGluIHBnX3ZhcmlhYmxlCisgKiBhdCBhbGwsIHRoZSB2YWx1 ZSBzdG9yZWQgaW4gbWVtb3J5IGlzIHJlbGVhc2VkLgorICovCit0eXBlZGVmIHN0cnVjdCBTVmFy aWFibGVEYXRhCit7CisJT2lkCQkJdmFyaWQ7CQkJLyogcGdfdmFyaWFibGUgT0lEIG9mIHRoZSB2 YXJpYWJsZSAoaGFzaCBrZXkpICovCisJWExvZ1JlY1B0cgljcmVhdGVfbHNuOworCisJYm9vbAkJ aXNudWxsOworCURhdHVtCQl2YWx1ZTsKKworCU9pZAkJCXR5cGlkOworCWludDE2CQl0eXBsZW47 CisJYm9vbAkJdHlwYnl2YWw7CisKKwlib29sCQlpc19kb21haW47CisKKwkvKgorCSAqIGRvbWFp bl9jaGVja19leHRyYSBob2xkcyBjYWNoZWQgZG9tYWluIG1ldGFkYXRhLiAgVGhpcyAiZXh0cmEi IGlzCisJICogdXN1YWxseSBzdG9yZWQgaW4gZm5fbWN4dC4gIFdlIGRvIG5vdCBoYXZlIGFjY2Vz cyB0byB0aGF0IG1lbW9yeSBjb250ZXh0CisJICogZm9yIHNlc3Npb24gdmFyaWFibGVzLCBidXQg d2UgY2FuIHVzZSBUb3BUcmFuc2FjdGlvbkNvbnRleHQgaW5zdGVhZC4KKwkgKiBBIGZyZXNoIHZh bHVlIGlzIGZvcmNlZCB3aGVuIHdlIGRldGVjdCB3ZSBhcmUgaW4gYSBkaWZmZXJlbnQgdHJhbnNh Y3Rpb24KKwkgKiAodGhlIGxvY2FsIHRyYW5zYWN0aW9uIElEIGRpZmZlcnMgZnJvbSBkb21haW5f Y2hlY2tfZXh0cmFfbHhpZCkuCisJICovCisJdm9pZAkgICAqZG9tYWluX2NoZWNrX2V4dHJhOwor CUxvY2FsVHJhbnNhY3Rpb25JZCBkb21haW5fY2hlY2tfZXh0cmFfbHhpZDsKKworCS8qCisJICog U3RvcmVkIHZhbHVlIGFuZCB0eXBlIGRlc2NyaXB0aW9uIGNhbiBiZSBvdXRkYXRlZCB3aGVuIHdl IHJlY2VpdmUgYQorCSAqIHNpbnZhbCBtZXNzYWdlLiAgV2UgdGhlbiBoYXZlIHRvIGNoZWNrIGlm IHRoZSBzdG9yZWQgZGF0YSBhcmUgc3RpbGwKKwkgKiB0cnVzdHdvcnRoeS4KKwkgKi8KKwlib29s CQlpc192YWxpZDsKKworCXVpbnQzMgkJaGFzaHZhbHVlOwkJLyogdXNlZCBmb3IgcGFpcmluZyBz aW52YWwgbWVzc2FnZSAqLworfSBTVmFyaWFibGVEYXRhOworCit0eXBlZGVmIFNWYXJpYWJsZURh dGEgKlNWYXJpYWJsZTsKKworc3RhdGljIEhUQUIgKnNlc3Npb252YXJzID0gTlVMTDsJLyogaGFz aCB0YWJsZSBmb3Igc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKworc3RhdGljIE1lbW9yeUNvbnRleHQg U1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9IE5VTEw7CisKKy8qCisgKiBDYWxsYmFjayBmdW5jdGlv biBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBpbnZhbGlkYXRpb24uCisgKi8KK3N0YXRpYyB2b2lkCitw Z192YXJpYWJsZV9jYWNoZV9jYWxsYmFjayhEYXR1bSBhcmcsIGludCBjYWNoZWlkLCB1aW50MzIg aGFzaHZhbHVlKQoreworCUhBU0hfU0VRX1NUQVRVUyBzdGF0dXM7CisJU1ZhcmlhYmxlCXN2YXI7 CisKKwllbG9nKERFQlVHMSwgInBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrICV1ICV1IiwgY2Fj aGVpZCwgaGFzaHZhbHVlKTsKKworCUFzc2VydChzZXNzaW9udmFycyk7CisKKwkvKgorCSAqIElm IHRoZSBoYXNodmFsdWUgaXMgbm90IHNwZWNpZmllZCwgd2UgaGF2ZSB0byByZWNoZWNrIGFsbCBj dXJyZW50bHkKKwkgKiB1c2VkIHNlc3Npb24gdmFyaWFibGVzLiAgU2luY2Ugd2UgY2FuJ3QgdGVs bCB0aGUgZXhhY3Qgc2Vzc2lvbiB2YXJpYWJsZQorCSAqIGZyb20gaXRzIGhhc2h2YWx1ZSwgd2Ug aGF2ZSB0byBpdGVyYXRlIG92ZXIgYWxsIGl0ZW1zIGluIHRoZSBoYXNoIGJ1Y2tldC4KKwkgKi8K KwloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJzKTsKKworCXdoaWxlICgoc3ZhciA9 IChTVmFyaWFibGUpIGhhc2hfc2VxX3NlYXJjaCgmc3RhdHVzKSkgIT0gTlVMTCkKKwl7CisJCWlm IChoYXNodmFsdWUgPT0gMCB8fCBzdmFyLT5oYXNodmFsdWUgPT0gaGFzaHZhbHVlKQorCQl7CisJ CQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCQl9CisJfQorfQorCisvKgorICogUmVsZWFzZSBz dG9yZWQgdmFsdWUsIGZyZWUgbWVtb3J5CisgKi8KK3N0YXRpYyB2b2lkCitmcmVlX3Nlc3Npb25f dmFyaWFibGVfdmFsdWUoU1ZhcmlhYmxlIHN2YXIpCit7CisJLyogY2xlYW4gdGhlIGN1cnJlbnQg dmFsdWUgKi8KKwlpZiAoIXN2YXItPmlzbnVsbCkKKwl7CisJCWlmICghc3Zhci0+dHlwYnl2YWwp CisJCQlwZnJlZShEYXR1bUdldFBvaW50ZXIoc3Zhci0+dmFsdWUpKTsKKworCQlzdmFyLT5pc251 bGwgPSB0cnVlOworCX0KKworCXN2YXItPnZhbHVlID0gKERhdHVtKSAwOworfQorCisvKgorICog UmV0dXJucyB0cnVlIHdoZW4gdGhlIGVudHJ5IGluIHBnX3ZhcmlhYmxlIGlzIGNvbnNpc3RlbnQg d2l0aCB0aGUgZ2l2ZW4KKyAqIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK3N0YXRpYyBib29sCitp c19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKFNWYXJpYWJsZSBzdmFyKQoreworCUhlYXBUdXBsZQl0 cDsKKwlib29sCQlyZXN1bHQgPSBmYWxzZTsKKworCUFzc2VydChPaWRJc1ZhbGlkKHN2YXItPnZh cmlkKSk7CisKKwl0cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXRE YXR1bShzdmFyLT52YXJpZCkpOworCisJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHApKQorCXsKKwkJ LyoKKwkJICogVGhlIE9JRCBhbG9uZSBpcyBub3QgZW5vdWdoIGFzIGFuIHVuaXF1ZSBpZGVudGlm aWVyLCBiZWNhdXNlIE9JRAorCQkgKiB2YWx1ZXMgZ2V0IHJlY3ljbGVkLCBhbmQgYSBuZXcgc2Vz c2lvbiB2YXJpYWJsZSBjb3VsZCBoYXZlIGdvdAorCQkgKiB0aGUgc2FtZSBPSUQuICBXZSBkbyBh IHNlY29uZCBjaGVjayBhZ2FpbnN0IHRoZSA2NC1iaXQgTFNOIHdoZW4KKwkJICogdGhlIHZhcmlh YmxlIHdhcyBjcmVhdGVkLgorCQkgKi8KKwkJaWYgKHN2YXItPmNyZWF0ZV9sc24gPT0gKChGb3Jt X3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHApKS0+dmFyY3JlYXRlX2xzbikKKwkJCXJlc3VsdCA9 IHRydWU7CisKKwkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKwl9CisKKwlyZXR1cm4gcmVzdWx0Owor fQorCisvKgorICogSW5pdGlhbGl6ZSBhdHRyaWJ1dGVzIGNhY2hlZCBpbiAic3ZhciIKKyAqLwor c3RhdGljIHZvaWQKK3NldHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIE9pZCB2 YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKwor CUFzc2VydChPaWRJc1ZhbGlkKHZhcmlkKSk7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFS SUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNW YWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lv biB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkg R0VUU1RSVUNUKHR1cCk7CisKKwlzdmFyLT52YXJpZCA9IHZhcmlkOworCXN2YXItPmNyZWF0ZV9s c24gPSB2YXJmb3JtLT52YXJjcmVhdGVfbHNuOworCisJc3Zhci0+dHlwaWQgPSB2YXJmb3JtLT52 YXJ0eXBlOworCisJZ2V0X3R5cGxlbmJ5dmFsKHN2YXItPnR5cGlkLCAmc3Zhci0+dHlwbGVuLCAm c3Zhci0+dHlwYnl2YWwpOworCisJc3Zhci0+aXNfZG9tYWluID0gKGdldF90eXB0eXBlKHZhcmZv cm0tPnZhcnR5cGUpID09IFRZUFRZUEVfRE9NQUlOKTsKKwlzdmFyLT5kb21haW5fY2hlY2tfZXh0 cmEgPSBOVUxMOworCXN2YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlkID0gSW52YWxpZExvY2Fs VHJhbnNhY3Rpb25JZDsKKworCXN2YXItPmlzbnVsbCA9IHRydWU7CisJc3Zhci0+dmFsdWUgPSAo RGF0dW0pIDA7CisKKwlzdmFyLT5pc192YWxpZCA9IHRydWU7CisKKwlzdmFyLT5oYXNodmFsdWUg PSBHZXRTeXNDYWNoZUhhc2hWYWx1ZTEoVkFSSUFCTEVPSUQsCisJCQkJCQkJCQkJCU9iamVjdElk R2V0RGF0dW0odmFyaWQpKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworfQorCisvKgorICog QXNzaWduIGEgbmV3IHZhbHVlIHRvIHRoZSBzZXNzaW9uIHZhcmlhYmxlLiAgSXQgaXMgY29waWVk IHRvCisgKiBTVmFyaWFibGVNZW1vcnlDb250ZXh0IGlmIG5lY2Vzc2FyeS4KKyAqCisgKiBJZiBh bnkgZXJyb3IgaGFwcGVucywgdGhlIGV4aXN0aW5nIHZhbHVlIHdvbid0IGJlIG1vZGlmaWVkLgor ICovCitzdGF0aWMgdm9pZAorc2V0X3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIERh dHVtIHZhbHVlLCBib29sIGlzbnVsbCkKK3sKKwlEYXR1bQkJbmV3dmFsOworCVNWYXJpYWJsZURh dGEgbG9jc3ZhciwKKwkJCSAgICpfc3ZhcjsKKworCUFzc2VydChzdmFyKTsKKwlBc3NlcnQoIWlz bnVsbCB8fCB2YWx1ZSA9PSAoRGF0dW0pIDApOworCisJLyoKKwkgKiBVc2UgdHlwYnl2YWwsIHR5 cGJ5bGVuIGZyb20gc2Vzc2lvbiB2YXJpYWJsZSBvbmx5IHdoZW4gdGhleSBhcmUKKwkgKiB0cnVz dHdvcnRoeSAodGhlIGludmFsaWRhdGlvbiBtZXNzYWdlIHdhcyBub3QgYWNjZXB0ZWQgZm9yIHRo aXMKKwkgKiB2YXJpYWJsZSkuICBJZiB0aGUgdmFyaWFibGUgbWlnaHQgYmUgaW52YWxpZCwgZm9y Y2Ugc2V0dXAuCisJICoKKwkgKiBEbyBub3Qgb3ZlcndyaXRlIHRoZSBwYXNzZWQgc2Vzc2lvbiB2 YXJpYWJsZSB1bnRpbCB3ZSBjYW4gYmUgY2VydGFpbgorCSAqIHRoYXQgbm8gZXJyb3IgY2FuIGJl IHRocm93bi4KKwkgKi8KKwlpZiAoIXN2YXItPmlzX3ZhbGlkKQorCXsKKwkJc2V0dXBfc2Vzc2lv bl92YXJpYWJsZSgmbG9jc3Zhciwgc3Zhci0+dmFyaWQpOworCQlfc3ZhciA9ICZsb2NzdmFyOwor CX0KKwllbHNlCisJCV9zdmFyID0gc3ZhcjsKKworCWlmICghaXNudWxsKQorCXsKKwkJTWVtb3J5 Q29udGV4dCBvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oU1ZhcmlhYmxlTWVtb3J5Q29u dGV4dCk7CisKKwkJbmV3dmFsID0gZGF0dW1Db3B5KHZhbHVlLCBfc3Zhci0+dHlwYnl2YWwsIF9z dmFyLT50eXBsZW4pOworCisJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjeHQpOworCX0KKwll bHNlCisJCW5ld3ZhbCA9IHZhbHVlOworCisJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2 YXIpOworCisJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiAob2lkOiV1 KSBoYXMgbmV3IHZhbHVlIiwKKwkJIGdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25h bWUoc3Zhci0+dmFyaWQpLAorCQkgc3Zhci0+dmFyaWQpOworCisJLyogbm8gbW9yZSBlcnJvciBl eHBlY3RlZCwgc28gd2UgY2FuIG92ZXJ3cml0ZSB0aGUgb2xkIHZhcmlhYmxlIG5vdyAqLworCWlm IChzdmFyICE9IF9zdmFyKQorCQltZW1jcHkoc3ZhciwgX3N2YXIsIHNpemVvZihTVmFyaWFibGVE YXRhKSk7CisKKwlzdmFyLT52YWx1ZSA9IG5ld3ZhbDsKKwlzdmFyLT5pc251bGwgPSBpc251bGw7 Cit9CisKKy8qCisgKiBDcmVhdGUgdGhlIGhhc2ggdGFibGUgZm9yIHN0b3Jpbmcgc2Vzc2lvbiB2 YXJpYWJsZXMuCisgKi8KK3N0YXRpYyB2b2lkCitjcmVhdGVfc2Vzc2lvbnZhcnNfaGFzaHRhYmxl cyh2b2lkKQoreworCUhBU0hDVEwJCXZhcnNfY3RsOworCisJQXNzZXJ0KCFzZXNzaW9udmFycyk7 CisKKwlpZiAoIVNWYXJpYWJsZU1lbW9yeUNvbnRleHQpCisJeworCQkvKiByZWFkIHNpbnZhbCBt ZXNzYWdlcyAqLworCQlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhWQVJJQUJMRU9JRCwK KwkJCQkJCQkJCSAgcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2ssCisJCQkJCQkJCQkgIChEYXR1 bSkgMCk7CisKKwkJLyogd2UgbmVlZCBvdXIgb3duIGxvbmctbGl2ZWQgbWVtb3J5IGNvbnRleHQg Ki8KKwkJU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9CisJCQlBbGxvY1NldENvbnRleHRDcmVhdGUo VG9wTWVtb3J5Q29udGV4dCwKKwkJCQkJCQkJICAic2Vzc2lvbiB2YXJpYWJsZXMiLAorCQkJCQkJ CQkgIEFMTE9DU0VUX1NUQVJUX1NNQUxMX1NJWkVTKTsKKwl9CisKKwltZW1zZXQoJnZhcnNfY3Rs LCAwLCBzaXplb2YodmFyc19jdGwpKTsKKwl2YXJzX2N0bC5rZXlzaXplID0gc2l6ZW9mKE9pZCk7 CisJdmFyc19jdGwuZW50cnlzaXplID0gc2l6ZW9mKFNWYXJpYWJsZURhdGEpOworCXZhcnNfY3Rs LmhjeHQgPSBTVmFyaWFibGVNZW1vcnlDb250ZXh0OworCisJc2Vzc2lvbnZhcnMgPSBoYXNoX2Ny ZWF0ZSgiU2Vzc2lvbiB2YXJpYWJsZXMiLCA2NCwgJnZhcnNfY3RsLAorCQkJCQkJCSAgSEFTSF9F TEVNIHwgSEFTSF9CTE9CUyB8IEhBU0hfQ09OVEVYVCk7Cit9CisKKy8qCisgKiBTZWFyY2ggYSBz ZXNzaW9uIHZhcmlhYmxlIGluIHRoZSBoYXNoIHRhYmxlIGdpdmVuIGl0cyBPSUQuICBJZiBpdAor ICogZG9lc24ndCBleGlzdCwgdGhlbiBpbnNlcnQgaXQgdGhlcmUuCisgKgorICogVGhlIGNhbGxl ciBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgcGVybWlzc2lvbiBjaGVja3MuCisgKgorICogQXMg YSBzaWRlIGVmZmVjdCwgdGhpcyBmdW5jdGlvbiBhY3F1aXJlcyBhIEFjY2Vzc1NoYXJlTG9jayBv biB0aGUKKyAqIHNlc3Npb24gdmFyaWFibGUgdW50aWwgdGhlIGVuZCBvZiB0aGUgdHJhbnNhY3Rp b24uCisgKi8KK3N0YXRpYyBTVmFyaWFibGUKK2dldF9zZXNzaW9uX3ZhcmlhYmxlKE9pZCB2YXJp ZCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsKKwlib29sCQlmb3VuZDsKKworCS8qIHByb3RlY3QgdGhl IHVzZWQgc2Vzc2lvbiB2YXJpYWJsZSBhZ2FpbnN0IERST1AgKi8KKwlMb2NrRGF0YWJhc2VPYmpl Y3QoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCWlm ICghc2Vzc2lvbnZhcnMpCisJCWNyZWF0ZV9zZXNzaW9udmFyc19oYXNodGFibGVzKCk7CisKKwlz dmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwKKwkJCQkJ CQkJICAgSEFTSF9FTlRFUiwgJmZvdW5kKTsKKworCWlmIChmb3VuZCkKKwl7CisJCWlmICghc3Zh ci0+aXNfdmFsaWQpCisJCXsKKwkJCS8qCisJCQkgKiBJZiB0aGVyZSB3YXMgYW4gaW52YWxpZGF0 aW9uIG1lc3NhZ2UsIHRoZSB2YXJpYWJsZSBtaWdodCBzdGlsbCBiZQorCQkJICogdmFsaWQsIGJ1 dCB3ZSBoYXZlIHRvIGNoZWNrIHdpdGggdGhlIHN5c3RlbSBjYXRhbG9nLgorCQkJICovCisJCQlp ZiAoaXNfc2Vzc2lvbl92YXJpYWJsZV92YWxpZChzdmFyKSkKKwkJCQlzdmFyLT5pc192YWxpZCA9 IHRydWU7CisJCQllbHNlCisJCQkJLyogaWYgdGhlIHZhbHVlIGNhbm5vdCBiZSB2YWxpZGF0ZWQs IHdlIGhhdmUgdG8gZGlzY2FyZCBpdCAqLworCQkJCWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1 ZShzdmFyKTsKKwkJfQorCX0KKwllbHNlCisJCXN2YXItPmlzX3ZhbGlkID0gZmFsc2U7CisKKwkv KgorCSAqIEZvcmNlIHNldHVwIGZvciBub3QgeWV0IGluaXRpYWxpemVkIHZhcmlhYmxlcyBvciB2 YXJpYWJsZXMgdGhhdCBjYW5ub3QKKwkgKiBiZSB2YWxpZGF0ZWQuCisJICovCisJaWYgKCFzdmFy LT5pc192YWxpZCkKKwl7CisJCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoc3ZhciwgdmFyaWQpOwor CisJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFz IGFzc2lnbmVkIGVudHJ5IGluIG1lbW9yeSAoZW1pdHRlZCBieSBSRUFEKSIsCisJCQkgZ2V0X25h bWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJ IGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpLAorCQkJIHZhcmlkKTsKKwl9CisKKwkv KiBlbnN1cmUgdGhlIHJldHVybmVkIGRhdGEgaXMgc3RpbGwgb2YgdGhlIGNvcnJlY3QgZG9tYWlu ICovCisJaWYgKHN2YXItPmlzX2RvbWFpbikKKwl7CisJCS8qCisJCSAqIFN0b3JlICJleHRyYSIg Zm9yIGRvbWFpbl9jaGVjaygpIGluIFRvcFRyYW5zYWN0aW9uQ29udGV4dC4gIFdoZW4gd2UKKwkJ ICogYXJlIGluIGEgbmV3IHRyYW5zYWN0aW9uLCBkb21haW5fY2hlY2tfZXh0cmEgY2FjaGUgaXMg bm90IHZhbGlkIGFueQorCQkgKiBtb3JlLgorCQkgKi8KKwkJaWYgKHN2YXItPmRvbWFpbl9jaGVj a19leHRyYV9seGlkICE9IE15UHJvYy0+dnhpZC5seGlkKQorCQkJc3Zhci0+ZG9tYWluX2NoZWNr X2V4dHJhID0gTlVMTDsKKworCQlkb21haW5fY2hlY2soc3Zhci0+dmFsdWUsIHN2YXItPmlzbnVs bCwKKwkJCQkJIHN2YXItPnR5cGlkLCAmc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhLAorCQkJCQkg VG9wVHJhbnNhY3Rpb25Db250ZXh0KTsKKworCQlzdmFyLT5kb21haW5fY2hlY2tfZXh0cmFfbHhp ZCA9IE15UHJvYy0+dnhpZC5seGlkOworCX0KKworCXJldHVybiBzdmFyOworfQorCisvKgorICog U3RvcmUgdGhlIGdpdmVuIHZhbHVlIGluIGEgc2Vzc2lvbiB2YXJpYWJsZSBpbiB0aGUgY2FjaGUu CisgKgorICogVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgcGVybWlzc2lvbiBj aGVja3MuCisgKgorICogQXMgYSBzaWRlIGVmZmVjdCwgdGhpcyBmdW5jdGlvbiBhY3F1aXJlcyBh IEFjY2Vzc1NoYXJlTG9jayBvbiB0aGUgc2Vzc2lvbgorICogdmFyaWFibGUgdW50aWwgdGhlIGVu ZCBvZiB0aGUgdHJhbnNhY3Rpb24uCisgKi8KK3ZvaWQKK1NldFNlc3Npb25WYXJpYWJsZShPaWQg dmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsKKwli b29sCQlmb3VuZDsKKworCS8qIHByb3RlY3QgdXNlZCBzZXNzaW9uIHZhcmlhYmxlIGFnYWluc3Qg RFJPUCAqLworCUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCAw LCBBY2Nlc3NTaGFyZUxvY2spOworCisJaWYgKCFzZXNzaW9udmFycykKKwkJY3JlYXRlX3Nlc3Np b252YXJzX2hhc2h0YWJsZXMoKTsKKworCXN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlYXJjaChz ZXNzaW9udmFycywgJnZhcmlkLAorCQkJCQkJCQkgICBIQVNIX0VOVEVSLCAmZm91bmQpOworCisJ aWYgKCFmb3VuZCkKKwl7CisJCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoc3ZhciwgdmFyaWQpOwor CisJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFz IGFzc2lnbmVkIGVudHJ5IGluIG1lbW9yeSAoZW1pdHRlZCBieSBXUklURSkiLAorCQkJIGdldF9u YW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQp KSwKKwkJCSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHN2YXItPnZhcmlkKSwKKwkJCSB2YXJp ZCk7CisJfQorCisJLyogaWYgdGhpcyBmYWlscywgaXQgd29uJ3QgY2hhbmdlIHRoZSBzdG9yZWQg dmFsdWUgKi8KKwlzZXRfc2Vzc2lvbl92YXJpYWJsZShzdmFyLCB2YWx1ZSwgaXNOdWxsKTsKK30K KworLyoKKyAqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB2YWx1ZSBzdG9yZWQgaW4gYSB2YXJpYWJs ZS4KKyAqLworc3RhdGljIGlubGluZSBEYXR1bQorY29weV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVl KFNWYXJpYWJsZSBzdmFyLCBib29sICppc051bGwpCit7CisJRGF0dW0JCXZhbHVlOworCisJLyog Zm9yY2UgY29weSBvZiBub24gTlVMTCB2YWx1ZSAqLworCWlmICghc3Zhci0+aXNudWxsKQorCXsK KwkJdmFsdWUgPSBkYXR1bUNvcHkoc3Zhci0+dmFsdWUsIHN2YXItPnR5cGJ5dmFsLCBzdmFyLT50 eXBsZW4pOworCQkqaXNOdWxsID0gZmFsc2U7CisJfQorCWVsc2UKKwl7CisJCXZhbHVlID0gKERh dHVtKSAwOworCQkqaXNOdWxsID0gdHJ1ZTsKKwl9CisKKwlyZXR1cm4gdmFsdWU7Cit9CisKKy8q CisgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdmFsdWUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUg KGluIHRoZSBjdXJyZW50IG1lbW9yeQorICogY29udGV4dCkuICBUaGUgY2FsbGVyIGlzIHJlc3Bv bnNpYmxlIGZvciBwZXJtaXNzaW9uIGNoZWNrcy4KKyAqLworRGF0dW0KK0dldFNlc3Npb25WYXJp YWJsZShPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsKKworCXN2 YXIgPSBnZXRfc2Vzc2lvbl92YXJpYWJsZSh2YXJpZCk7CisKKwkvKgorCSAqIEFsdGhvdWdoICJz dmFyIiBpcyBmcmVzaGx5IHZhbGlkYXRlZCBpbiB0aGlzIHBvaW50LCBzdmFyLT5pc192YWxpZCBj YW4KKwkgKiBiZSBmYWxzZSwgaWYgYW4gaW52YWxpZGF0aW9uIG1lc3NhZ2Ugd2FzIHByb2Nlc3Nl ZCBkdXJpbmcgdGhlIGRvbWFpbiBjaGVjay4KKwkgKiBCdXQgdGhlIHZhcmlhYmxlIGFuZCBhbGwg aXRzIGRlcGVuZGVuY2llcyBhcmUgbG9ja2VkIG5vdywgc28gd2UgZG9uJ3QgbmVlZAorCSAqIHRv IHJlcGVhdCB0aGUgdmFsaWRhdGlvbi4KKwkgKi8KKwlyZXR1cm4gY29weV9zZXNzaW9uX3Zhcmlh YmxlX3ZhbHVlKHN2YXIsIGlzTnVsbCk7Cit9CisKKy8qCisgKiBBc3NpZ24gdGhlIHJlc3VsdCBv ZiB0aGUgZXZhbHVhdGVkIGV4cHJlc3Npb24gdG8gdGhlIHNlc3Npb24gdmFyaWFibGUKKyAqLwor dm9pZAorRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJICAgTGV0U3RtdCAq c3RtdCwKKwkJCSAgIFBhcmFtTGlzdEluZm8gcGFyYW1zLAorCQkJICAgUXVlcnlFbnZpcm9ubWVu dCAqcXVlcnlFbnYsCisJCQkgICBRdWVyeUNvbXBsZXRpb24gKnFjKQoreworCVF1ZXJ5CSAgICpx dWVyeSA9IGNhc3ROb2RlKFF1ZXJ5LCBzdG10LT5xdWVyeSk7CisJTGlzdAkgICAqcmV3cml0dGVu OworCURlc3RSZWNlaXZlciAqZGVzdDsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCVBsYW5uZWRT dG10ICpwbGFuOworCVF1ZXJ5RGVzYyAgKnF1ZXJ5RGVzYzsKKwlPaWQJCQl2YXJpZCA9IHF1ZXJ5 LT5yZXN1bHRWYXJpYWJsZTsKKworCUFzc2VydChPaWRJc1ZhbGlkKHZhcmlkKSk7CisKKwkvKiBk byB3ZSBoYXZlIHBlcm1pc3Npb24gdG8gd3JpdGUgdG8gdGhlIHNlc3Npb24gdmFyaWFibGU/ICov CisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQs IEdldFVzZXJJZCgpLCBBQ0xfVVBEQVRFKTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09L KQorCQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9WQVJJQUJMRSwgZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOworCisJLyogY3JlYXRlIGEgZGVzdCByZWNlaXZlciBm b3IgTEVUICovCisJZGVzdCA9IENyZWF0ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKHZhcmlkKTsKKwor CS8qIHJ1biB0aGUgcXVlcnkgcmV3cml0ZXIgKi8KKwlxdWVyeSA9IGNvcHlPYmplY3QocXVlcnkp OworCisJcmV3cml0dGVuID0gUXVlcnlSZXdyaXRlKHF1ZXJ5KTsKKworCUFzc2VydChsaXN0X2xl bmd0aChyZXdyaXR0ZW4pID09IDEpOworCisJcXVlcnkgPSBsaW5pdGlhbF9ub2RlKFF1ZXJ5LCBy ZXdyaXR0ZW4pOworCUFzc2VydChxdWVyeS0+Y29tbWFuZFR5cGUgPT0gQ01EX1NFTEVDVCk7CisK KwkvKiBwbGFuIHRoZSBxdWVyeSAqLworCXBsYW4gPSBwZ19wbGFuX3F1ZXJ5KHF1ZXJ5LCBwc3Rh dGUtPnBfc291cmNldGV4dCwKKwkJCQkJCSBDVVJTT1JfT1BUX1BBUkFMTEVMX09LLCBwYXJhbXMp OworCisJLyoKKwkgKiBVc2UgYSBzbmFwc2hvdCB3aXRoIGFuIHVwZGF0ZWQgY29tbWFuZCBJRCB0 byBlbnN1cmUgdGhpcyBxdWVyeSBzZWVzIHRoZQorCSAqIHJlc3VsdHMgb2YgYW55IHByZXZpb3Vz bHkgZXhlY3V0ZWQgcXVlcmllcy4gIChUaGlzIGNvdWxkIG9ubHkgbWF0dGVyIGlmCisJICogdGhl IHBsYW5uZXIgZXhlY3V0ZWQgYW4gYWxsZWdlZGx5LXN0YWJsZSBmdW5jdGlvbiB0aGF0IGNoYW5n ZWQgdGhlCisJICogZGF0YWJhc2UgY29udGVudHMsIGJ1dCBsZXQncyBkbyBpdCBhbnl3YXkgdG8g YmUgcGFyYWxsZWwgdG8gdGhlIEVYUExBSU4KKwkgKiBjb2RlIHBhdGguKQorCSAqLworCVB1c2hD b3BpZWRTbmFwc2hvdChHZXRBY3RpdmVTbmFwc2hvdCgpKTsKKwlVcGRhdGVBY3RpdmVTbmFwc2hv dENvbW1hbmRJZCgpOworCisJLyogY3JlYXRlIGEgUXVlcnlEZXNjLCByZWRpcmVjdGluZyBvdXRw dXQgdG8gb3VyIHR1cGxlIHJlY2VpdmVyICovCisJcXVlcnlEZXNjID0gQ3JlYXRlUXVlcnlEZXNj KHBsYW4sIE5VTEwsIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAorCQkJCQkJCQlHZXRBY3RpdmVTbmFw c2hvdCgpLCBJbnZhbGlkU25hcHNob3QsCisJCQkJCQkJCWRlc3QsIHBhcmFtcywgcXVlcnlFbnYs IDApOworCisJLyogY2FsbCBFeGVjdXRvclN0YXJ0IHRvIHByZXBhcmUgdGhlIHBsYW4gZm9yIGV4 ZWN1dGlvbiAqLworCUV4ZWN1dG9yU3RhcnQocXVlcnlEZXNjLCAwKTsKKworCS8qCisJICogUnVu IHRoZSBwbGFuIHRvIGNvbXBsZXRpb24uICBUaGUgcmVzdWx0IHNob3VsZCBiZSBvbmx5IG9uZSBy b3cuICBUbworCSAqIGNoZWNrIGlmIHRoZXJlIGFyZSB0b28gbWFueSByZXN1bHQgcm93cywgd2Ug dHJ5IHRvIGZldGNoIHR3by4KKwkgKi8KKwlFeGVjdXRvclJ1bihxdWVyeURlc2MsIEZvcndhcmRT Y2FuRGlyZWN0aW9uLCAyTCk7CisKKwkvKiBzYXZlIHRoZSByb3djb3VudCBpZiB3ZSdyZSBnaXZl biBhIFF1ZXJ5Q29tcGxldGlvbiB0byBmaWxsICovCisJaWYgKHFjKQorCQlTZXRRdWVyeUNvbXBs ZXRpb24ocWMsIENNRFRBR19MRVQsIHF1ZXJ5RGVzYy0+ZXN0YXRlLT5lc19wcm9jZXNzZWQpOwor CisJLyogYW5kIGNsZWFuIHVwICovCisJRXhlY3V0b3JGaW5pc2gocXVlcnlEZXNjKTsKKwlFeGVj dXRvckVuZChxdWVyeURlc2MpOworCisJRnJlZVF1ZXJ5RGVzYyhxdWVyeURlc2MpOworCisJUG9w QWN0aXZlU25hcHNob3QoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL01h a2VmaWxlIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUKaW5kZXggMTExMThkMGNlMDIu LjcxMjQ4YTM0ZjI2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmlsZQor KysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmlsZQpAQCAtNzYsNiArNzYsNyBAQCBPQkpT ID0gXAogCW5vZGVXaW5kb3dBZ2cubyBcCiAJbm9kZVdvcmt0YWJsZXNjYW4ubyBcCiAJc3BpLm8g XAorCXN2YXJpYWJsZVJlY2VpdmVyLm8gXAogCXRxdWV1ZS5vIFwKIAl0c3RvcmVSZWNlaXZlci5v CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjRXhwci5jCmluZGV4IGYxNTY5ODc5YjUyLi5lNGU5ZGUzMzViNSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYworKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjRXhwci5jCkBAIC0xMDQxLDYgKzEwNDEsMzggQEAgRXhlY0luaXRF eHByUmVjKEV4cHIgKm5vZGUsIEV4cHJTdGF0ZSAqc3RhdGUsCiAJCQkJCQlzY3JhdGNoLmQucGFy YW0ucGFyYW10eXBlID0gcGFyYW0tPnBhcmFtdHlwZTsKIAkJCQkJCUV4cHJFdmFsUHVzaFN0ZXAo c3RhdGUsICZzY3JhdGNoKTsKIAkJCQkJCWJyZWFrOworCisJCQkJCWNhc2UgUEFSQU1fVkFSSUFC TEU6CisJCQkJCQl7CisJCQkJCQkJaW50CQkJZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzID0gMDsK KwkJCQkJCQlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqZXNfc2Vzc2lvbl92YXJpYWJsZXMgPSBOVUxM OworCQkJCQkJCVNlc3Npb25WYXJpYWJsZVZhbHVlICp2YXI7CisKKwkJCQkJCQlpZiAoc3RhdGUt PnBhcmVudCAmJiBzdGF0ZS0+cGFyZW50LT5zdGF0ZSkKKwkJCQkJCQl7CisJCQkJCQkJCWVzX3Nl c3Npb25fdmFyaWFibGVzID0gc3RhdGUtPnBhcmVudC0+c3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFi bGVzOworCQkJCQkJCQllc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBzdGF0ZS0+cGFyZW50LT5z dGF0ZS0+ZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzOworCQkJCQkJCX0KKworCQkJCQkJCUFzc2Vy dChlc19zZXNzaW9uX3ZhcmlhYmxlcyk7CisKKwkJCQkJCQkvKiBwYXJhbWV0ZXIgc2FuaXR5IGNo ZWNrcyAqLworCQkJCQkJCWlmIChwYXJhbS0+cGFyYW1pZCA+PSBlc19udW1fc2Vzc2lvbl92YXJp YWJsZXMpCisJCQkJCQkJCWVsb2coRVJST1IsICJwYXJhbWlkIG9mIFBBUkFNX1ZBUklBQkxFIHBh cmFtIGlzIG91dCBvZiByYW5nZSIpOworCisJCQkJCQkJdmFyID0gJmVzX3Nlc3Npb25fdmFyaWFi bGVzW3BhcmFtLT5wYXJhbWlkXTsKKworCQkJCQkJCS8qCisJCQkJCQkJICogSW4gdGhpcyBjYXNl LCBwYXNzIHRoZSB2YWx1ZSBsaWtlIGEKKwkJCQkJCQkgKiBjb25zdGFudC4KKwkJCQkJCQkgKi8K KwkJCQkJCQlzY3JhdGNoLm9wY29kZSA9IEVFT1BfQ09OU1Q7CisJCQkJCQkJc2NyYXRjaC5kLmNv bnN0dmFsLnZhbHVlID0gdmFyLT52YWx1ZTsKKwkJCQkJCQlzY3JhdGNoLmQuY29uc3R2YWwuaXNu dWxsID0gdmFyLT5pc251bGw7CisJCQkJCQkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgJnNjcmF0 Y2gpOworCQkJCQkJfQorCQkJCQkJYnJlYWs7CisKIAkJCQkJY2FzZSBQQVJBTV9FWFRFUk46CiAK IAkJCQkJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwppbmRleCA3MjMwZjk2ODEwMS4uYTlkMzFi MDg1ZmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwpAQCAtNDMsNyArNDMsOSBAQAogI2luY2x1 ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BhcnRpdGlvbi5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUu aCIKICNpbmNsdWRlICJjb21tYW5kcy9tYXR2aWV3LmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vz c2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKICNpbmNsdWRl ICJleGVjdXRvci9leGVjdXRvci5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNQYXJ0aXRpb24u aCIKQEAgLTIwNiw2ICsyMDgsNzAgQEAgc3RhbmRhcmRfRXhlY3V0b3JTdGFydChRdWVyeURlc2Mg KnF1ZXJ5RGVzYywgaW50IGVmbGFncykKIAlBc3NlcnQocXVlcnlEZXNjLT5zb3VyY2VUZXh0ICE9 IE5VTEwpOwogCWVzdGF0ZS0+ZXNfc291cmNlVGV4dCA9IHF1ZXJ5RGVzYy0+c291cmNlVGV4dDsK IAorCS8qCisJICogVGhlIGV4ZWN1dG9yIGRvZXNuJ3Qgd29yayB3aXRoIHNlc3Npb24gdmFyaWFi bGVzIGRpcmVjdGx5LiBWYWx1ZXMgb2YKKwkgKiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGVzIGFy ZSBjb3BpZWQgdG8gYSBkZWRpY2F0ZWQgYXJyYXksIGFuZCB0aGlzIGFycmF5CisJICogaXMgcGFz c2VkIHRvIHRoZSBleGVjdXRvci4gVGhpcyBhcnJheSBpcyBzdGFibGUgInNuYXBzaG90IiBvZiB2 YWx1ZXMgb2YKKwkgKiB1c2VkIHNlc3Npb24gdmFyaWFibGVzLiBUaGVyZSBhcmUgdGhyZWUgYmVu ZWZpdHMgb2YgdGhpcyBzdHJhdGVneToKKwkgKgorCSAqIC0gY29uc2lzdGVuY3kgd2l0aCBleHRl cm5hbCBwYXJhbWV0ZXJzIGFuZCBwbHBnc3FsIHZhcmlhYmxlcywKKwkgKgorCSAqIC0gc2Vzc2lv biB2YXJpYWJsZXMgY2FuIGJlIHBhcmFsbGVsIHNhZmUsCisJICoKKwkgKiAtIHdlIGRvbid0IG5l ZWQgbWFrZSBmcmVzaCBjb3B5IGZvciBhbnkgcmVhZCBvZiBzZXNzaW9uIHZhcmlhYmxlCisJICog ICAgKHRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIGludGVybmFsbHkgdGhlIHNlc3Npb24g dmFyaWFibGUgY2FuCisJICogICAgYmUgY2hhbmdlZCBpbnNpZGUgcXVlcnkgZXhlY3V0aW9uIHRp bWUsIGFuZCB0aGVuIGEgcmVmZXJlbmNlIHRvCisJICogICAgcHJldmlvdXNseSByZXR1cm5lZCB2 YWx1ZSBjYW4gYmUgY29ycnVwdGVkKS4KKwkgKi8KKwlpZiAocXVlcnlEZXNjLT5wbGFubmVkc3Rt dC0+c2Vzc2lvblZhcmlhYmxlcykKKwl7CisJCWludAkJCW5TZXNzaW9uVmFyaWFibGVzOworCQlp bnQJCQlpID0gMDsKKworCQkvKgorCQkgKiBJbiB0aGlzIGNhc2UsIHRoZSBxdWVyeSB1c2VzIHNl c3Npb24gdmFyaWFibGVzLCBidXQgd2UgaGF2ZSB0bworCQkgKiBwcmVwYXJlIHRoZSBhcnJheSB3 aXRoIHBhc3NlZCB2YWx1ZXMgKG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMpCisJCSAqIGZpcnN0 LgorCQkgKi8KKwkJQXNzZXJ0KCFJc1BhcmFsbGVsV29ya2VyKCkpOworCQluU2Vzc2lvblZhcmlh YmxlcyA9IGxpc3RfbGVuZ3RoKHF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPnNlc3Npb25WYXJpYWJs ZXMpOworCisJCS8qIGNyZWF0ZSB0aGUgYXJyYXkgdXNlZCBmb3IgcGFzc2luZyB2YWx1ZXMgb2Yg dXNlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLworCQllc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVz ID0gKFNlc3Npb25WYXJpYWJsZVZhbHVlICopCisJCQlwYWxsb2MoblNlc3Npb25WYXJpYWJsZXMg KiBzaXplb2YoU2Vzc2lvblZhcmlhYmxlVmFsdWUpKTsKKworCQkvKiBmaWxsIHRoZSBhcnJheSAq LworCQlmb3JlYWNoX29pZCh2YXJpZCwgcXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lvblZh cmlhYmxlcykKKwkJeworCQkJLyoKKwkJCSAqIFBlcm1pc3Npb24gY2hlY2sgc2hvdWxkIGJlIGV4 ZWN1dGVkIG9uIGFsbCBleHBsaWNpdGx5IHVzZWQKKwkJCSAqIHZhcmlhYmxlcyBpbiB0aGUgcXVl cnkuIEZvciBpbXBsaWNpdGx5IHVzZWQgdmFyaWFibGUKKwkJCSAqIChsaWtlIGJhc2Ugbm9kZSBv ZiBhc3NpZ25tZW50IGluZGlyZWN0KSB3ZSBjYW5ub3QgZG8gcGVybWlzc2lvbgorCQkJICogY2hl Y2ssIGJlY2F1c2Ugd2UgbmVlZCByZWFkIHRoZSB2YWx1ZSAoYW5kIHVzZXIgY2FuIGhhdmUKKwkJ CSAqIG9ubHkgVVBEQVRFIHZhcmlhYmxlKS4gSW4gdGhpcyBjYXNlIHRoZSBwZXJtaXNzaW9uIGNo ZWNrCisJCQkgKiBpcyBleGVjdXRlZCBpbiB3cml0ZSB0aW1lLgorCQkJICovCisJCQlpZiAodmFy aWQgIT0gcXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+ZXhjbFNlbGVjdFBlcm1DaGVja1ZhcmlkKQor CQkJeworCQkJCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisKKwkJCQlhY2xyZXN1bHQgPSBvYmplY3Rf YWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCQkJR2V0VXNlcklk KCksIEFDTF9TRUxFQ1QpOworCQkJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQkJ CWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLAorCQkJCQkJCQkgICBn ZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSk7CisJCQl9CisKKwkJCWVzdGF0ZS0+ZXNf c2Vzc2lvbl92YXJpYWJsZXNbaV0udmFsdWUgPQorCQkJCUdldFNlc3Npb25WYXJpYWJsZSh2YXJp ZCwKKwkJCQkJCQkJICAgJmVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV0uaXNudWxsKTsK KworCQkJaSsrOworCQl9CisKKwkJZXN0YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBu U2Vzc2lvblZhcmlhYmxlczsKKwl9CisKIAkvKgogCSAqIEZpbGwgaW4gdGhlIHF1ZXJ5IGVudmly b25tZW50LCBpZiBhbnksIGZyb20gcXVlcnlEZXNjLgogCSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9leGVjdXRvci9tZXNvbi5i dWlsZAppbmRleCAyY2VhNDFmODc3MS4uNDkxMDkyZmNjNGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29u LmJ1aWxkCkBAIC02NCw2ICs2NCw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ25v ZGVXaW5kb3dBZ2cuYycsCiAgICdub2RlV29ya3RhYmxlc2Nhbi5jJywKICAgJ3NwaS5jJywKKyAg J3N2YXJpYWJsZVJlY2VpdmVyLmMnLAogICAndHF1ZXVlLmMnLAogICAndHN0b3JlUmVjZWl2ZXIu YycsCiApCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZl ci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzYxNjNmYjM2ZjYKLS0tIC9kZXYvbnVsbAor KysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jCkBAIC0wLDAgKzEs MTcyIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBzdmFyaWFibGVSZWNlaXZlci5jCisg KgkgIEFuIGltcGxlbWVudGF0aW9uIG9mIERlc3RSZWNlaXZlciB0aGF0IHN0b3JlcyB0aGUgcmVz dWx0IHZhbHVlIGluCisgKgkgIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqCisgKiBQb3J0aW9ucyBD b3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3Jv dXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVy c2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2JhY2tl bmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICovCisKKyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorCisj aW5jbHVkZSAiYWNjZXNzL2RldG9hc3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxl LmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgorI2luY2x1ZGUgImV4 ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAic3RvcmFnZS9sb2NrLmgiCisj aW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIK KyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgorCisvKgorICogVGhpcyBEZXN0UmVjZWl2ZXIg aXMgdXNlZCBieSB0aGUgTEVUIGNvbW1hbmQgZm9yIHN0b3JpbmcgdGhlIHJlc3VsdCB0byBhCisg KiBzZXNzaW9uIHZhcmlhYmxlLiAgVGhlIHJlc3VsdCBoYXMgdG8gaGF2ZSBvbmx5IG9uZSB0dXBs ZSB3aXRoIG9ubHkgb25lCisgKiBub24tZGVsZXRlZCBhdHRyaWJ1dGUuICBUaGUgcm93IGNvdW50 ZXIgKGZpZWxkICJyb3dzIikgaXMgaW5jcmVtZW50ZWQKKyAqIGFmdGVyIHJlY2VpdmluZyBhIHJv dywgYW5kIGFuIGVycm9yIGlzIHJhaXNlZCB3aGVuIHRoZXJlIGFyZSBubyByb3dzIG9yCisgKiB0 aGVyZSBhcmUgbW9yZSB0aGFuIG9uZSByZWNlaXZlZCByb3dzLiAgQSByZWNlaXZlZCB0dXBsZSBj YW5ub3QgdG8gaGF2ZQorICogZGVsZXRlZCBhdHRyaWJ1dGVzLiAgVGhlIHZhbHVlIGlzIGRldG9h c3RlZCBiZWZvcmUgc3RvcmluZyBpdCBpbiB0aGUKKyAqIHNlc3Npb24gdmFyaWFibGUuCisgKi8K K3R5cGVkZWYgc3RydWN0Cit7CisJRGVzdFJlY2VpdmVyIHB1YjsKKwlPaWQJCQl2YXJpZDsKKwli b29sCQluZWVkX2RldG9hc3Q7CQkvKiBkbyB3ZSBuZWVkIHRvIGRldG9hc3QgdGhlIGF0dHJpYnV0 ZT8gKi8KKwlpbnQJCQlyb3dzOwkJCQkvKiByb3cgY291bnRlciAqLworfSBTVmFyaWFibGVTdGF0 ZTsKKworLyoKKyAqIFByZXBhcmUgdG8gcmVjZWl2ZSB0dXBsZXMgZnJvbSBleGVjdXRvci4KKyAq Lworc3RhdGljIHZvaWQKK3N2YXJpYWJsZVN0YXJ0dXBSZWNlaXZlcihEZXN0UmVjZWl2ZXIgKnNl bGYsIGludCBvcGVyYXRpb24sIFR1cGxlRGVzYyB0eXBlaW5mbykKK3sKKwlTVmFyaWFibGVTdGF0 ZSAqbXlTdGF0ZSA9IChTVmFyaWFibGVTdGF0ZSAqKSBzZWxmOworCUxPQ0tUQUcJCWxvY2t0YWcg UEdfVVNFRF9GT1JfQVNTRVJUU19PTkxZOworCUZvcm1fcGdfYXR0cmlidXRlIGF0dHI7CisJT2lk CQkJdHlwaWQgUEdfVVNFRF9GT1JfQVNTRVJUU19PTkxZOworCU9pZAkJCWNvbGxpZCBQR19VU0VE X0ZPUl9BU1NFUlRTX09OTFk7CisJaW50MzIJCXR5cG1vZCBQR19VU0VEX0ZPUl9BU1NFUlRTX09O TFk7CisKKwlBc3NlcnQobXlTdGF0ZS0+cHViLm15ZGVzdCA9PSBEZXN0VmFyaWFibGUpOworCUFz c2VydChPaWRJc1ZhbGlkKG15U3RhdGUtPnZhcmlkKSk7CisJQXNzZXJ0KFNlYXJjaFN5c0NhY2hl RXhpc3RzMShWQVJJQUJMRU9JRCwgbXlTdGF0ZS0+dmFyaWQpKTsKKwlBc3NlcnQodHlwZWluZm8t Pm5hdHRzID09IDEpOworCisjaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORworCisJU0VUX0xPQ0tU QUdfT0JKRUNUKGxvY2t0YWcsCisJCQkJCSAgIE15RGF0YWJhc2VJZCwKKwkJCQkJICAgVmFyaWFi bGVSZWxhdGlvbklkLAorCQkJCQkgICBteVN0YXRlLT52YXJpZCwKKwkJCQkJICAgMCk7CisKKwlB c3NlcnQoTG9ja0hlbGRCeU1lKCZsb2NrdGFnLCBBY2Nlc3NTaGFyZUxvY2ssIGZhbHNlKSk7CisK KyNlbmRpZgorCisJYXR0ciA9IFR1cGxlRGVzY0F0dHIodHlwZWluZm8sIDApOworCisJQXNzZXJ0 KCFhdHRyLT5hdHRpc2Ryb3BwZWQpOworCisjaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORworCisJ Z2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlkKG15U3RhdGUtPnZhcmlkLAor CQkJCQkJCQkJCQkmdHlwaWQsCisJCQkJCQkJCQkJCSZ0eXBtb2QsCisJCQkJCQkJCQkJCSZjb2xs aWQpOworCisJQXNzZXJ0KGF0dHItPmF0dHR5cGlkID09IHR5cGlkKTsKKwlBc3NlcnQoYXR0ci0+ YXR0dHlwbW9kIDwgMCB8fCBhdHRyLT5hdHR0eXBtb2QgPT0gdHlwbW9kKTsKKworI2VuZGlmCisK KwlteVN0YXRlLT5uZWVkX2RldG9hc3QgPSBhdHRyLT5hdHRsZW4gPT0gLTE7CisJbXlTdGF0ZS0+ cm93cyA9IDA7Cit9CisKKy8qCisgKiBSZWNlaXZlIGEgdHVwbGUgZnJvbSB0aGUgZXhlY3V0b3Ig YW5kIHN0b3JlIGl0IGluIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICovCitzdGF0aWMgYm9vbAor c3ZhcmlhYmxlUmVjZWl2ZVNsb3QoVHVwbGVUYWJsZVNsb3QgKnNsb3QsIERlc3RSZWNlaXZlciAq c2VsZikKK3sKKwlTVmFyaWFibGVTdGF0ZSAqbXlTdGF0ZSA9IChTVmFyaWFibGVTdGF0ZSAqKSBz ZWxmOworCURhdHVtCQl2YWx1ZTsKKwlib29sCQlpc251bGw7CisJYm9vbAkJZnJlZXZhbCA9IGZh bHNlOworCisJLyogbWFrZSBzdXJlIHRoZSB0dXBsZSBpcyBmdWxseSBkZWNvbnN0cnVjdGVkICov CisJc2xvdF9nZXRhbGxhdHRycyhzbG90KTsKKworCXZhbHVlID0gc2xvdC0+dHRzX3ZhbHVlc1sw XTsKKwlpc251bGwgPSBzbG90LT50dHNfaXNudWxsWzBdOworCisJaWYgKG15U3RhdGUtPm5lZWRf ZGV0b2FzdCAmJiAhaXNudWxsICYmIFZBUkFUVF9JU19FWFRFUk5BTChEYXR1bUdldFBvaW50ZXIo dmFsdWUpKSkKKwl7CisJCXZhbHVlID0gUG9pbnRlckdldERhdHVtKGRldG9hc3RfZXh0ZXJuYWxf YXR0cigoc3RydWN0IHZhcmxlbmEgKikKKwkJCQkJCQkJCQkJCQkgIERhdHVtR2V0UG9pbnRlcih2 YWx1ZSkpKTsKKwkJZnJlZXZhbCA9IHRydWU7CisJfQorCisJbXlTdGF0ZS0+cm93cyArPSAxOwor CisJaWYgKG15U3RhdGUtPnJvd3MgPiAxKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfVE9PX01BTllfUk9XUyksCisJCQkJIGVycm1zZygiZXhwcmVzc2lvbiByZXR1cm5l ZCBtb3JlIHRoYW4gb25lIHJvdyIpKSk7CisKKwlTZXRTZXNzaW9uVmFyaWFibGUobXlTdGF0ZS0+ dmFyaWQsIHZhbHVlLCBpc251bGwpOworCisJaWYgKGZyZWV2YWwpCisJCXBmcmVlKERhdHVtR2V0 UG9pbnRlcih2YWx1ZSkpOworCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBDbGVhbiB1cCBh dCBlbmQgb2YgdGhlIGV4ZWN1dG9yIHJ1bgorICovCitzdGF0aWMgdm9pZAorc3ZhcmlhYmxlU2h1 dGRvd25SZWNlaXZlcihEZXN0UmVjZWl2ZXIgKnNlbGYpCit7CisJaWYgKCgoU1ZhcmlhYmxlU3Rh dGUgKikgc2VsZiktPnJvd3MgPT0gMCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShF UlJDT0RFX05PX0RBVEFfRk9VTkQpLAorCQkJCSBlcnJtc2coImV4cHJlc3Npb24gcmV0dXJuZWQg bm8gcm93cyIpKSk7Cit9CisKKy8qCisgKiBEZXN0cm95IHRoZSByZWNlaXZlciB3aGVuIHdlIGFy ZSBkb25lIHdpdGggaXQKKyAqLworc3RhdGljIHZvaWQKK3N2YXJpYWJsZURlc3Ryb3lSZWNlaXZl cihEZXN0UmVjZWl2ZXIgKnNlbGYpCit7CisJcGZyZWUoc2VsZik7Cit9CisKKy8qCisgKiBJbml0 aWFsbHkgY3JlYXRlIGEgRGVzdFJlY2VpdmVyIG9iamVjdC4KKyAqLworRGVzdFJlY2VpdmVyICoK K0NyZWF0ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKE9pZCB2YXJpZCkKK3sKKwlTVmFyaWFibGVTdGF0 ZSAqc2VsZiA9IChTVmFyaWFibGVTdGF0ZSAqKSBwYWxsb2MwKHNpemVvZihTVmFyaWFibGVTdGF0 ZSkpOworCisJc2VsZi0+cHViLnJlY2VpdmVTbG90ID0gc3ZhcmlhYmxlUmVjZWl2ZVNsb3Q7CisJ c2VsZi0+cHViLnJTdGFydHVwID0gc3ZhcmlhYmxlU3RhcnR1cFJlY2VpdmVyOworCXNlbGYtPnB1 Yi5yU2h1dGRvd24gPSBzdmFyaWFibGVTaHV0ZG93blJlY2VpdmVyOworCXNlbGYtPnB1Yi5yRGVz dHJveSA9IHN2YXJpYWJsZURlc3Ryb3lSZWNlaXZlcjsKKwlzZWxmLT5wdWIubXlkZXN0ID0gRGVz dFZhcmlhYmxlOworCisJc2VsZi0+dmFyaWQgPSB2YXJpZDsKKworCXJldHVybiAoRGVzdFJlY2Vp dmVyICopIHNlbGY7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3Mu YyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmluZGV4IDdiYzgyMzUwN2YxLi5kOGZj M2Q5ZmE2OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysrIGIv c3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTQzNzUsNiArNDM3NSwxNiBAQCByYXdf ZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiB0cnVl OwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9MZXRTdG10OgorCQkJeworCQkJCUxldFN0bXQg ICAgKnN0bXQgPSAoTGV0U3RtdCAqKSBub2RlOworCisJCQkJaWYgKFdBTEsoc3RtdC0+dGFyZ2V0 KSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEsoc3RtdC0+cXVlcnkpKQorCQkJCQly ZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfUExBc3NpZ25TdG10OgogCQkJ ewogCQkJCVBMQXNzaWduU3RtdCAqc3RtdCA9IChQTEFzc2lnblN0bXQgKikgbm9kZTsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYyBiL3NyYy9iYWNrZW5k L29wdGltaXplci9wbGFuL3BsYW5uZXIuYwppbmRleCA0OWFkNmU4MzU3OC4uYzhjYTQzYWZhNzEg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYworKysgYi9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKQEAgLTM0Myw2ICszNDMsMjEgQEAg c3RhbmRhcmRfcGxhbm5lcihRdWVyeSAqcGFyc2UsIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywg aW50IGN1cnNvck9wdGlvbnMsCiAJZ2xvYi0+dHJhbnNpZW50UGxhbiA9IGZhbHNlOwogCWdsb2It PmRlcGVuZHNPblJvbGUgPSBmYWxzZTsKIAlnbG9iLT5wYXJ0aXRpb25fZGlyZWN0b3J5ID0gTlVM TDsKKwlnbG9iLT5zZXNzaW9uVmFyaWFibGVzID0gTklMOworCisJLyoKKwkgKiBUaGUgKHNlc3Np b24pIHJlc3VsdCB2YXJpYWJsZSBzaG91bGQgYmUgc3RvcmVkIHRvIGdsb2JhbCwgYmVjYXVzZQor CSAqIGl0IGlzIG5vdCBzZXQgaW4gc3VicXVlcnkuICBXaGVuIHRoaXMgdmFyaWFibGUgaXMgdXNl ZCBvdGhlciB0aGFuCisJICogaW4gYmFzZSBub2RlIG9mIGFzc2lnbm1lbnQgaW5kaXJlY3Rpb24s IHdlIG5lZWQgdG8gY2hlY2sgdGhlIGFjY2VzcworCSAqIHJpZ2h0cyAoYW5kIHRoZW4gd2UgbmVl ZCB0byBkZXRlY3QgdGhpcyBzaXR1YXRpb24pLiBUaGUgdmFyaWFibGUgdXNlZAorCSAqIGxpa2Ug YmFzZSBub2RlIGNhbm5vdCBiZSBkaWZmZXJlbnQgdGhhbiB0YXJnZXQgKHJlc3VsdCkgdmFyaWFi bGUuCisJICogQmVjYXVzZSB3ZSBrbm93IHRoZSByZXN1bHQgdmFyaWFibGUgYmVmb3JlIHBsYW5u ZXIgaW52b2NhdGlvbiwgd2UKKwkgKiBjYW4gc2ltcGx5IHNlYXJjaCBvZiB1c2FnZSBqdXN0IHRo aXMgdmFyaWFibGUsIGFuZCB3ZSBkb24ndCBuZWVkIHRvCisJICogdG8gd2FpdCB1bnRpbCB0aGUg ZW5kIG9mIHBsYW5uaW5nIHdoZW4gd2Uga25vdyBiYXNlbm9kZVNlc3Npb25WYXJpZC4KKwkgKi8K KwlnbG9iLT5yZXN1bHRWYXJpYWJsZSA9IHBhcnNlLT5yZXN1bHRWYXJpYWJsZTsKKwlnbG9iLT5i YXNlbm9kZVNlc3Npb25WYXJpZCA9IEludmFsaWRPaWQ7CisJZ2xvYi0+YmFzZW5vZGVTZXNzaW9u VmFyU2VsZWN0Q2hlY2sgPSBmYWxzZTsKIAogCS8qCiAJICogQXNzZXNzIHdoZXRoZXIgaXQncyBm ZWFzaWJsZSB0byB1c2UgcGFyYWxsZWwgbW9kZSBmb3IgdGhpcyBxdWVyeS4gV2UKQEAgLTU4MSw2 ICs1OTYsMjAgQEAgc3RhbmRhcmRfcGxhbm5lcihRdWVyeSAqcGFyc2UsIGNvbnN0IGNoYXIgKnF1 ZXJ5X3N0cmluZywgaW50IGN1cnNvck9wdGlvbnMsCiAJcmVzdWx0LT5wYXJhbUV4ZWNUeXBlcyA9 IGdsb2ItPnBhcmFtRXhlY1R5cGVzOwogCS8qIHV0aWxpdHlTdG10IHNob3VsZCBiZSBudWxsLCBi dXQgd2UgbWlnaHQgYXMgd2VsbCBjb3B5IGl0ICovCiAJcmVzdWx0LT51dGlsaXR5U3RtdCA9IHBh cnNlLT51dGlsaXR5U3RtdDsKKworCXJlc3VsdC0+c2Vzc2lvblZhcmlhYmxlcyA9IGdsb2ItPnNl c3Npb25WYXJpYWJsZXM7CisKKwkvKgorCSAqIFRoZSBzZXNzaW9uIHZhcmlhYmxlIHVzZWQgKGFu ZCBvbmx5IHVzZWQpIGxpa2UgYmFzZSBub2RlCisJICogZm9yIGFzc2lnbmVtbnQgaW5kaXJlY3Rp b24gc2hvdWxkIGJlIGV4Y2x1ZGVkIGZyb20gcGVybWlzc2lvbgorCSAqIGNoZWNrLgorCSAqLwor CWlmIChPaWRJc1ZhbGlkKGdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhcmlkKSAmJgorCQkoIWdsb2It PmJhc2Vub2RlU2Vzc2lvblZhclNlbGVjdENoZWNrKSkKKwkJcmVzdWx0LT5leGNsU2VsZWN0UGVy bUNoZWNrVmFyaWQgPSBnbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJpZDsKKwllbHNlCisJCXJlc3Vs dC0+ZXhjbFNlbGVjdFBlcm1DaGVja1ZhcmlkID0gSW52YWxpZE9pZDsKKwogCXJlc3VsdC0+c3Rt dF9sb2NhdGlvbiA9IHBhcnNlLT5zdG10X2xvY2F0aW9uOwogCXJlc3VsdC0+c3RtdF9sZW4gPSBw YXJzZS0+c3RtdF9sZW47CiAKQEAgLTc1OSw2ICs3ODgsMTMgQEAgc3VicXVlcnlfcGxhbm5lcihQ bGFubmVyR2xvYmFsICpnbG9iLCBRdWVyeSAqcGFyc2UsIFBsYW5uZXJJbmZvICpwYXJlbnRfcm9v dCwKIAkgKi8KIAlwdWxsX3VwX3N1YnF1ZXJpZXMocm9vdCk7CiAKKwkvKgorCSAqIENoZWNrIGlm IHNvbWUgc3VicXVlcnkgdXNlcyBhIHNlc3Npb24gdmFyaWFibGUuICBUaGUgZmxhZworCSAqIGhh c1Nlc3Npb25WYXJpYWJsZXMgc2hvdWxkIGJlIHRydWUgaWYgdGhlIHF1ZXJ5IG9yIHNvbWUgc3Vi cXVlcnkgdXNlcyBhCisJICogc2Vzc2lvbiB2YXJpYWJsZS4KKwkgKi8KKwlwdWxsX3VwX2hhc19z ZXNzaW9uX3ZhcmlhYmxlcyhyb290KTsKKwogCS8qCiAJICogSWYgdGhpcyBpcyBhIHNpbXBsZSBV TklPTiBBTEwgcXVlcnksIGZsYXR0ZW4gaXQgaW50byBhbiBhcHBlbmRyZWwuIFdlCiAJICogZG8g dGhpcyBub3cgYmVjYXVzZSBpdCByZXF1aXJlcyBhcHBseWluZyBwdWxsX3VwX3N1YnF1ZXJpZXMg dG8gdGhlIGxlYWYKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJl ZnMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYwppbmRleCAxNTBlOWYw NjBlZS4uZDA3MWJkMGM1NTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFu L3NldHJlZnMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKQEAg LTIxMCw2ICsyMTAsOSBAQCBzdGF0aWMgTGlzdCAqc2V0X3JldHVybmluZ19jbGF1c2VfcmVmZXJl bmNlcyhQbGFubmVySW5mbyAqcm9vdCwKIHN0YXRpYyBMaXN0ICpzZXRfd2luZG93YWdnX3J1bmNv bmRpdGlvbl9yZWZlcmVuY2VzKFBsYW5uZXJJbmZvICpyb290LAogCQkJCQkJCQkJCQkJICAgTGlz dCAqcnVuY29uZGl0aW9uLAogCQkJCQkJCQkJCQkJICAgUGxhbiAqcGxhbik7CitzdGF0aWMgYm9v bCBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIoTm9kZSAqbm9kZSwKKwkJCQkJ CQkJCQkJCSBQbGFubmVySW5mbyAqcm9vdCk7CitzdGF0aWMgdm9pZCByZWNvcmRfcGxhbl92YXJp YWJsZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgdmFyaWQpOwogCiAKIC8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgpAQCAtMTMxOCw2ICsxMzIxLDUwIEBAIHNldF9wbGFuX3JlZnMoUGxh bm5lckluZm8gKnJvb3QsIFBsYW4gKnBsYW4sIGludCBydG9mZnNldCkKIAlyZXR1cm4gcGxhbjsK IH0KIAorLyoKKyAqIFNlYXJjaCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlcyBpbiBzdWJxdWVy aWVzCisgKi8KK3ZvaWQKK3B1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzKFBsYW5uZXJJbmZv ICpyb290KQoreworCVF1ZXJ5CSAgICpxdWVyeSA9IHJvb3QtPnBhcnNlOworCisJaWYgKHF1ZXJ5 LT5oYXNTZXNzaW9uVmFyaWFibGVzKQorCXsKKwkJcm9vdC0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9 IHRydWU7CisJfQorCWVsc2UKKwl7CisJCSh2b2lkKSBxdWVyeV90cmVlX3dhbGtlcihxdWVyeSwK KwkJCQkJCQkJIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtlciwKKwkJCQkJCQkJ ICh2b2lkICopIHJvb3QsIDApOworCX0KK30KKworc3RhdGljIGJvb2wKK3B1bGxfdXBfaGFzX3Nl c3Npb25fdmFyaWFibGVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVySW5mbyAqcm9vdCkKK3sK KwlpZiAobm9kZSA9PSBOVUxMKQorCQlyZXR1cm4gZmFsc2U7CisJaWYgKElzQShub2RlLCBRdWVy eSkpCisJeworCQlRdWVyeQkgICAqcXVlcnkgPSAoUXVlcnkgKikgbm9kZTsKKworCQlpZiAocXVl cnktPmhhc1Nlc3Npb25WYXJpYWJsZXMpCisJCXsKKwkJCXJvb3QtPmhhc1Nlc3Npb25WYXJpYWJs ZXMgPSB0cnVlOworCQkJcmV0dXJuIGZhbHNlOworCQl9CisKKwkJLyogcmVjdXJzZSBpbnRvIHN1 YnNlbGVjdHMgKi8KKwkJcmV0dXJuIHF1ZXJ5X3RyZWVfd2Fsa2VyKChRdWVyeSAqKSBub2RlLAor CQkJCQkJCQkgcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2Fsa2VyLAorCQkJCQkJCQkg KHZvaWQgKikgcm9vdCwgMCk7CisJfQorCXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5v ZGUsIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtlciwKKwkJCQkJCQkJICAodm9p ZCAqKSByb290KTsKK30KKwogLyoKICAqIHNldF9pbmRleG9ubHlzY2FuX3JlZmVyZW5jZXMKICAq CQlEbyBzZXRfcGxhbl9yZWZlcmVuY2VzIHByb2Nlc3Npbmcgb24gYW4gSW5kZXhPbmx5U2NhbgpA QCAtMjAxOCw4ICsyMDY1LDkgQEAgY29weVZhcihWYXIgKnZhcikKICAqIFRoaXMgaXMgY29kZSB0 aGF0IGlzIGNvbW1vbiB0byBhbGwgdmFyaWFudHMgb2YgZXhwcmVzc2lvbi1maXhpbmcuCiAgKiBX ZSBtdXN0IGxvb2sgdXAgb3BlcmF0b3Igb3Bjb2RlIGluZm8gZm9yIE9wRXhwciBhbmQgcmVsYXRl ZCBub2RlcywKICAqIGFkZCBPSURzIGZyb20gcmVnY2xhc3MgQ29uc3Qgbm9kZXMgaW50byByb290 LT5nbG9iLT5yZWxhdGlvbk9pZHMsIGFuZAotICogYWRkIFBsYW5JbnZhbEl0ZW1zIGZvciB1c2Vy LWRlZmluZWQgZnVuY3Rpb25zIGludG8gcm9vdC0+Z2xvYi0+aW52YWxJdGVtcy4KLSAqIFdlIGFs c28gZmlsbCBpbiBjb2x1bW4gaW5kZXggbGlzdHMgZm9yIEdST1VQSU5HKCkgZXhwcmVzc2lvbnMu CisgKiBhZGQgUGxhbkludmFsSXRlbXMgZm9yIHVzZXItZGVmaW5lZCBmdW5jdGlvbnMgYW5kIHNl c3Npb24gdmFyaWFibGVzIGludG8KKyAqIHJvb3QtPmdsb2ItPmludmFsSXRlbXMuICBXZSBhbHNv IGZpbGwgaW4gY29sdW1uIGluZGV4IGxpc3RzIGZvciBHUk9VUElORygpCisgKiBleHByZXNzaW9u cy4KICAqCiAgKiBXZSBhc3N1bWUgaXQncyBva2F5IHRvIHVwZGF0ZSBvcGNvZGUgaW5mbyBpbi1w bGFjZS4gIFNvIHRoaXMgY291bGQgcG9zc2libHkKICAqIHNjcmliYmxlIG9uIHRoZSBwbGFubmVy J3MgaW5wdXQgZGF0YSBzdHJ1Y3R1cmVzLCBidXQgaXQncyBPSy4KQEAgLTIxMDksNiArMjE1Nywx MyBAQCBmaXhfZXhwcl9jb21tb24oUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUpCiAJCQkJ Zy0+Y29scyA9IGNvbHM7CiAJCX0KIAl9CisJZWxzZSBpZiAoSXNBKG5vZGUsIFBhcmFtKSkKKwl7 CisJCVBhcmFtCSAgICpwID0gKFBhcmFtICopIG5vZGU7CisKKwkJaWYgKHAtPnBhcmFta2luZCA9 PSBQQVJBTV9WQVJJQUJMRSkKKwkJCXJlY29yZF9wbGFuX3ZhcmlhYmxlX2RlcGVuZGVuY3kocm9v dCwgcC0+cGFyYW12YXJpZCk7CisJfQogfQogCiAvKgpAQCAtMjExOCw2ICsyMTczLDEwIEBAIGZp eF9leHByX2NvbW1vbihQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqbm9kZSkKICAqIElmIGl0J3Mg YSBQQVJBTV9NVUxUSUVYUFIsIHJlcGxhY2UgaXQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgUGFyYW0g ZnJvbQogICogcm9vdC0+bXVsdGlleHByX3BhcmFtczsgb3RoZXJ3aXNlIG5vIGNoYW5nZSBpcyBu ZWVkZWQuCiAgKiBKdXN0IGZvciBwYXJhbm9pYSdzIHNha2UsIHdlIG1ha2UgYSBjb3B5IG9mIHRo ZSBub2RlIGluIGVpdGhlciBjYXNlLgorICoKKyAqIElmIGl0J3MgYSBQQVJBTV9WQVJJQUJMRSwg dGhlbiB3ZSBjb2xsZWN0IHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMgaW4KKyAqIHRoZSBsaXN0IHJv b3QtPmdsb2ItPnNlc3Npb25WYXJpYWJsZS4gIEFsc28sIGFzc2lnbiB0aGUgcGFyYW1ldGVyJ3MK KyAqICJwYXJhbWlkIiB0byB0aGUgcGFyYW1ldGVyJ3MgcG9zaXRpb24gaW4gdGhhdCBsaXN0Lgog ICovCiBzdGF0aWMgTm9kZSAqCiBmaXhfcGFyYW1fbm9kZShQbGFubmVySW5mbyAqcm9vdCwgUGFy YW0gKnApCkBAIC0yMTM2LDYgKzIxOTUsNjIgQEAgZml4X3BhcmFtX25vZGUoUGxhbm5lckluZm8g KnJvb3QsIFBhcmFtICpwKQogCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgUEFSQU1fTVVMVElF WFBSIElEOiAlZCIsIHAtPnBhcmFtaWQpOwogCQlyZXR1cm4gY29weU9iamVjdChsaXN0X250aChw YXJhbXMsIGNvbG5vIC0gMSkpOwogCX0KKworCWlmIChwLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFS SUFCTEUpCisJeworCQlpbnQJCQluID0gMDsKKwkJYm9vbAkJZm91bmQgPSBmYWxzZTsKKworCQkv KiB3ZSB3aWxsIG1vZGlmeSBvYmplY3QgKi8KKwkJcCA9IChQYXJhbSAqKSBjb3B5T2JqZWN0KHAp OworCisJCS8qCisJCSAqIE5vdywgd2UgY2FuIGFjdHVhbGl6ZSBsaXN0IG9mIHNlc3Npb24gdmFy aWFibGVzLCBhbmQgd2UgY2FuCisJCSAqIGNvbXBsZXRlIHBhcmFtaWQgcGFyYW1ldGVyLgorCQkg Ki8KKwkJZm9yZWFjaF9vaWQodmFyaWQsIHJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJsZXMpCisJ CXsKKwkJCWlmICh2YXJpZCA9PSBwLT5wYXJhbXZhcmlkKQorCQkJeworCQkJCXAtPnBhcmFtaWQg PSBuOworCQkJCWZvdW5kID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCW4gKz0gMTsKKwkJ fQorCisJCWlmICghZm91bmQpCisJCXsKKwkJCXJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJsZXMg PSBsYXBwZW5kX29pZChyb290LT5nbG9iLT5zZXNzaW9uVmFyaWFibGVzLAorCQkJCQkJCQkJCQkJ CSAgIHAtPnBhcmFtdmFyaWQpOworCQkJcC0+cGFyYW1pZCA9IG47CisJCX0KKworCQkvKgorCQkg KiBXZSBkbyBTRUxFQ1QgcGVybWlzc2lvbiBjaGVjayBvZiBhbGwgdmFyaWFibGVzIHVzZWQgYnkK KwkJICogdGhlIHF1ZXJ5IGV4Y2x1ZGluZyB0aGUgdmFyaWFibGUgdGhhdCBpcyB1c2VkIG9ubHkg YXMgYmFzZSBub2RlCisJCSAqIG9mIGFzc2lnbm1lbnQgaW5kaXJlY3Rpb24uIFRoZSB2YXJpYWJs ZSBpZCBhc3NpZ25lZCB0byB0aGlzIHBhcmFtCisJCSAqIHNob3VsZCBiZSBzYW1lIGxpa2UgcmVz dWx0VmFyaWFibGUgaWQsIGFuZCB0aGlzIHBhcmFtIHNob3VsZCBiZQorCQkgKiB1c2VkIG9ubHkg b25jZSBpbiBxdWVyeS4gV2hlbiB0aGUgdmFyaWFibGUgaXMgcmVmZXJlbmNlZCBieSBhbnkKKwkJ ICogb3RoZXIgcGFyYW0sIHdlIHNob3VsZCB0byBkbyBTRUxFQ1QgcGVybWlzc2lvbiBjaGVjayBm b3IgdGhpcyB2YXJpYWJsZQorCQkgKiB0b28uCisJCSAqLworCQlpZiAocC0+cGFyYW1iYXNlbm9k ZSkKKwkJeworCQkJQXNzZXJ0KCFPaWRJc1ZhbGlkKHJvb3QtPmdsb2ItPmJhc2Vub2RlU2Vzc2lv blZhcmlkKSk7CisJCQlBc3NlcnQocm9vdC0+Z2xvYi0+cmVzdWx0VmFyaWFibGUgPT0gcC0+cGFy YW12YXJpZCk7CisKKwkJCXJvb3QtPmdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhcmlkID0gcC0+cGFy YW12YXJpZDsKKwkJfQorCQllbHNlCisJCXsKKwkJCWlmIChwLT5wYXJhbXZhcmlkID09IHJvb3Qt Pmdsb2ItPnJlc3VsdFZhcmlhYmxlKQorCQkJCXJvb3QtPmdsb2ItPmJhc2Vub2RlU2Vzc2lvblZh clNlbGVjdENoZWNrID0gdHJ1ZTsKKwkJfQorCisJCXJldHVybiAoTm9kZSAqKSBwOworCX0KKwog CXJldHVybiAoTm9kZSAqKSBjb3B5T2JqZWN0KHApOwogfQogCkBAIC0yMTk3LDcgKzIzMTIsMTAg QEAgZml4X2FsdGVybmF0aXZlX3N1YnBsYW4oUGxhbm5lckluZm8gKnJvb3QsIEFsdGVybmF0aXZl U3ViUGxhbiAqYXNwbGFuLAogICogcmVwbGFjaW5nIEFnZ3JlZiBub2RlcyB0aGF0IHNob3VsZCBi ZSByZXBsYWNlZCBieSBpbml0cGxhbiBvdXRwdXQgUGFyYW1zLAogICogY2hvb3NpbmcgdGhlIGJl c3QgaW1wbGVtZW50YXRpb24gZm9yIEFsdGVybmF0aXZlU3ViUGxhbnMsCiAgKiBsb29raW5nIHVw IG9wZXJhdG9yIG9wY29kZSBpbmZvIGZvciBPcEV4cHIgYW5kIHJlbGF0ZWQgbm9kZXMsCi0gKiBh bmQgYWRkaW5nIE9JRHMgZnJvbSByZWdjbGFzcyBDb25zdCBub2RlcyBpbnRvIHJvb3QtPmdsb2It PnJlbGF0aW9uT2lkcy4KKyAqIGFkZGluZyBPSURzIGZyb20gcmVnY2xhc3MgQ29uc3Qgbm9kZXMg aW50byByb290LT5nbG9iLT5yZWxhdGlvbk9pZHMsCisgKiBhc3NpZ25pbmcgcGFyYW12YXJpZCB0 byBQQVJBTV9WQVJJQUJMRSBwYXJhbXMsIGFuZCBjb2xsZWN0aW5nIHRoZQorICogT0lEcyBvZiBz ZXNzaW9uIHZhcmlhYmxlcyBpbiB0aGUgcm9vdC0+Z2xvYi0+c2Vzc2lvblZhcmlhYmxlcyBsaXN0 CisgKiAocGFyYW12YXJpZCBpcyB0aGUgcG9zaXRpb24gb2YgdGhlIHNlc3Npb24gdmFyaWFibGUg aW4gdGhpcyBsaXN0KS4KICAqCiAgKiAnbm9kZSc6IHRoZSBleHByZXNzaW9uIHRvIGJlIG1vZGlm aWVkCiAgKiAncnRvZmZzZXQnOiBob3cgbXVjaCB0byBpbmNyZW1lbnQgdmFybm9zIGJ5CkBAIC0y MjE5LDcgKzIzMzcsOCBAQCBmaXhfc2Nhbl9leHByKFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpu b2RlLCBpbnQgcnRvZmZzZXQsIGRvdWJsZSBudW1fZXhlYykKIAkJcm9vdC0+bXVsdGlleHByX3Bh cmFtcyAhPSBOSUwgfHwKIAkJcm9vdC0+Z2xvYi0+bGFzdFBISWQgIT0gMCB8fAogCQlyb290LT5t aW5tYXhfYWdncyAhPSBOSUwgfHwKLQkJcm9vdC0+aGFzQWx0ZXJuYXRpdmVTdWJQbGFucykKKwkJ cm9vdC0+aGFzQWx0ZXJuYXRpdmVTdWJQbGFucyB8fAorCQlyb290LT5oYXNTZXNzaW9uVmFyaWFi bGVzKQogCXsKIAkJcmV0dXJuIGZpeF9zY2FuX2V4cHJfbXV0YXRvcihub2RlLCAmY29udGV4dCk7 CiAJfQpAQCAtMzYxMiw2ICszNzMxLDI1IEBAIHJlY29yZF9wbGFuX3R5cGVfZGVwZW5kZW5jeShQ bGFubmVySW5mbyAqcm9vdCwgT2lkIHR5cGlkKQogCX0KIH0KIAorLyoKKyAqIFJlY29yZCBkZXBl bmRlbmN5IG9uIGEgc2Vzc2lvbiB2YXJpYWJsZS4gIFRoZSB2YXJpYWJsZSBjYW4gYmUgdXNlZCBh cyBhCisgKiBzZXNzaW9uIHZhcmlhYmxlIGluIGFuIGV4cHJlc3Npb24gbGlzdCwgb3IgYXMgdGhl IHRhcmdldCBvZiBhIExFVCBzdGF0ZW1lbnQuCisgKi8KK3N0YXRpYyB2b2lkCityZWNvcmRfcGxh bl92YXJpYWJsZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgdmFyaWQpCit7CisJ UGxhbkludmFsSXRlbSAqaW52YWxfaXRlbSA9IG1ha2VOb2RlKFBsYW5JbnZhbEl0ZW0pOworCisJ LyogcGFyYW1pZCBpcyBzdGlsbCBzZXNzaW9uIHZhcmlhYmxlIGlkICovCisJaW52YWxfaXRlbS0+ Y2FjaGVJZCA9IFZBUklBQkxFT0lEOworCWludmFsX2l0ZW0tPmhhc2hWYWx1ZSA9IEdldFN5c0Nh Y2hlSGFzaFZhbHVlMShWQVJJQUJMRU9JRCwKKwkJCQkJCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1 bSh2YXJpZCkpOworCisJLyogYXBwZW5kIHRoaXMgdmFyaWFibGUgdG8gZ2xvYmFsLCByZWdpc3Rl ciBkZXBlbmRlbmN5ICovCisJcm9vdC0+Z2xvYi0+aW52YWxJdGVtcyA9IGxhcHBlbmQocm9vdC0+ Z2xvYi0+aW52YWxJdGVtcywKKwkJCQkJCQkJCSBpbnZhbF9pdGVtKTsKK30KKwogLyoKICAqIGV4 dHJhY3RfcXVlcnlfZGVwZW5kZW5jaWVzCiAgKgkJR2l2ZW4gYSByZXdyaXR0ZW4sIGJ1dCBub3Qg eWV0IHBsYW5uZWQsIHF1ZXJ5IG9yIHF1ZXJpZXMKQEAgLTM2OTcsOSArMzgzNSw5IEBAIGV4dHJh Y3RfcXVlcnlfZGVwZW5kZW5jaWVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVySW5mbyAqY29u dGV4dCkKIAkJCX0KIAogCQkJLyoKLQkJCSAqIElnbm9yZSBvdGhlciB1dGlsaXR5IHN0YXRlbWVu dHMsIGV4Y2VwdCB0aG9zZSAoc3VjaCBhcyBFWFBMQUlOKQotCQkJICogdGhhdCBjb250YWluIGEg cGFyc2VkLWJ1dC1ub3QtcGxhbm5lZCBxdWVyeS4gIEZvciB0aG9zZSwgd2UKLQkJCSAqIGp1c3Qg bmVlZCB0byB0cmFuc2ZlciBvdXIgYXR0ZW50aW9uIHRvIHRoZSBjb250YWluZWQgcXVlcnkuCisJ CQkgKiBJZ25vcmUgb3RoZXIgdXRpbGl0eSBzdGF0ZW1lbnRzLCBleGNlcHQgdGhvc2UgKHN1Y2gg YXMgRVhQTEFJTgorCQkJICogb3IgTEVUKSB0aGF0IGNvbnRhaW4gYSBwYXJzZWQtYnV0LW5vdC1w bGFubmVkIHF1ZXJ5LiAgRm9yIHRob3NlLAorCQkJICogd2UganVzdCBuZWVkIHRvIHRyYW5zZmVy IG91ciBhdHRlbnRpb24gdG8gdGhlIGNvbnRhaW5lZCBxdWVyeS4KIAkJCSAqLwogCQkJcXVlcnkg PSBVdGlsaXR5Q29udGFpbnNRdWVyeShxdWVyeS0+dXRpbGl0eVN0bXQpOwogCQkJaWYgKHF1ZXJ5 ID09IE5VTEwpCkBAIC0zNzIyLDYgKzM4NjAsMTAgQEAgZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNp ZXNfd2Fsa2VyKE5vZGUgKm5vZGUsIFBsYW5uZXJJbmZvICpjb250ZXh0KQogCQkJCQlsYXBwZW5k X29pZChjb250ZXh0LT5nbG9iLT5yZWxhdGlvbk9pZHMsIHJ0ZS0+cmVsaWQpOwogCQl9CiAKKwkJ LyogcmVjb3JkIGRlcGVuZGVuY3kgb24gdGhlIHRhcmdldCB2YXJpYWJsZSBvZiBhIExFVCBjb21t YW5kICovCisJCWlmIChPaWRJc1ZhbGlkKHF1ZXJ5LT5yZXN1bHRWYXJpYWJsZSkpCisJCQlyZWNv cmRfcGxhbl92YXJpYWJsZV9kZXBlbmRlbmN5KGNvbnRleHQsIHF1ZXJ5LT5yZXN1bHRWYXJpYWJs ZSk7CisKIAkJLyogQW5kIHJlY3Vyc2UgaW50byB0aGUgcXVlcnkncyBzdWJleHByZXNzaW9ucyAq LwogCQlyZXR1cm4gcXVlcnlfdHJlZV93YWxrZXIocXVlcnksIGV4dHJhY3RfcXVlcnlfZGVwZW5k ZW5jaWVzX3dhbGtlciwKIAkJCQkJCQkJIGNvbnRleHQsIDApOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcHJlcC9wcmVwam9pbnRyZWUuYwppbmRleCA4N2RjNmY1NmI1Ny4uMWViYzgwOGE1ZTYgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jCisrKyBi L3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jCkBAIC0xNTg1LDYgKzE1 ODUsOSBAQCBwdWxsX3VwX3NpbXBsZV9zdWJxdWVyeShQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAq anRub2RlLCBSYW5nZVRibEVudHJ5ICpydGUsCiAJLyogSWYgc3VicXVlcnkgaGFkIGFueSBSTFMg Y29uZGl0aW9ucywgbm93IG1haW4gcXVlcnkgZG9lcyB0b28gKi8KIAlwYXJzZS0+aGFzUm93U2Vj dXJpdHkgfD0gc3VicXVlcnktPmhhc1Jvd1NlY3VyaXR5OwogCisJLyogaWYgdGhlIHN1YnF1ZXJ5 IGhhZCBzZXNzaW9uIHZhcmlhYmxlcywgdGhlIG1haW4gcXVlcnkgZG9lcyB0b28gKi8KKwlwYXJz ZS0+aGFzU2Vzc2lvblZhcmlhYmxlcyB8PSBzdWJxdWVyeS0+aGFzU2Vzc2lvblZhcmlhYmxlczsK KwogCS8qCiAJICogc3VicXVlcnkgd29uJ3QgYmUgcHVsbGVkIHVwIGlmIGl0IGhhc0FnZ3MsIGhh c1dpbmRvd0Z1bmNzLCBvcgogCSAqIGhhc1RhcmdldFNSRnMsIHNvIG5vIHdvcmsgbmVlZGVkIG9u IHRob3NlIGZsYWdzCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1 c2VzLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKaW5kZXggMjZhM2Uw NTAwODYuLjIzY2FmYzczYzNiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRp bC9jbGF1c2VzLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCkBA IC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19vcGVyYXRvci5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2lu Y2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJleGVjdXRvci9l eGVjdXRvci5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2Z1bmN0aW9ucy5oIgogI2luY2x1ZGUgImZ1 bmNhcGkuaCIKQEAgLTkzNiw2ICs5MzcsMTMgQEAgbWF4X3BhcmFsbGVsX2hhemFyZF93YWxrZXIo Tm9kZSAqbm9kZSwgbWF4X3BhcmFsbGVsX2hhemFyZF9jb250ZXh0ICpjb250ZXh0KQogCQlpZiAo cGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9FWFRFUk4pCiAJCQlyZXR1cm4gZmFsc2U7CiAKKwkJ Lyogd2UgZG9uJ3Qgc3VwcG9ydCBwYXNzaW5nIHNlc3Npb24gdmFyaWFibGVzIHRvIHdvcmtlcnMg Ki8KKwkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJCXsKKwkJCWlm IChtYXhfcGFyYWxsZWxfaGF6YXJkX3Rlc3QoUFJPUEFSQUxMRUxfUkVTVFJJQ1RFRCwgY29udGV4 dCkpCisJCQkJcmV0dXJuIHRydWU7CisJCX0KKwogCQlpZiAocGFyYW0tPnBhcmFta2luZCAhPSBQ QVJBTV9FWEVDIHx8CiAJCQkhbGlzdF9tZW1iZXJfaW50KGNvbnRleHQtPnNhZmVfcGFyYW1faWRz LCBwYXJhbS0+cGFyYW1pZCkpCiAJCXsKQEAgLTIzOTEsNiArMjM5OSw3IEBAIGNvbnZlcnRfc2Fv cF90b19oYXNoZWRfc2FvcF93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCkKICAqCSAg dmFsdWUgb2YgdGhlIFBhcmFtLgogICogMi4gRm9sZCBzdGFibGUsIGFzIHdlbGwgYXMgaW1tdXRh YmxlLCBmdW5jdGlvbnMgdG8gY29uc3RhbnRzLgogICogMy4gUmVkdWNlIFBsYWNlSG9sZGVyVmFy IG5vZGVzIHRvIHRoZWlyIGNvbnRhaW5lZCBleHByZXNzaW9ucy4KKyAqIDQuIEN1cnJlbnQgdmFs dWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBjYW4gYmUgdXNlZCBmb3IgZXN0aW1hdGlvbiB0b28uCiAg Ki0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIE5vZGUgKgpAQCAtMjUxNyw2ICsyNTI2LDI3IEBA IGV2YWxfY29uc3RfZXhwcmVzc2lvbnNfbXV0YXRvcihOb2RlICpub2RlLAogCQkJCQkJfQogCQkJ CQl9CiAJCQkJfQorCQkJCWVsc2UgaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFC TEUgJiYKKwkJCQkJCSBjb250ZXh0LT5lc3RpbWF0ZSkKKwkJCQl7CisJCQkJCWludDE2CQl0eXBM ZW47CisJCQkJCWJvb2wJCXR5cEJ5VmFsOworCQkJCQlEYXR1bQkJcHZhbDsKKwkJCQkJYm9vbAkJ aXNudWxsOworCisJCQkJCWdldF90eXBsZW5ieXZhbChwYXJhbS0+cGFyYW10eXBlLAorCQkJCQkJ CQkJJnR5cExlbiwgJnR5cEJ5VmFsKTsKKworCQkJCQlwdmFsID0gR2V0U2Vzc2lvblZhcmlhYmxl KHBhcmFtLT5wYXJhbXZhcmlkLCAmaXNudWxsKTsKKworCQkJCQlyZXR1cm4gKE5vZGUgKikgbWFr ZUNvbnN0KHBhcmFtLT5wYXJhbXR5cGUsCisJCQkJCQkJCQkJCSAgcGFyYW0tPnBhcmFtdHlwbW9k LAorCQkJCQkJCQkJCQkgIHBhcmFtLT5wYXJhbWNvbGxpZCwKKwkJCQkJCQkJCQkJICAoaW50KSB0 eXBMZW4sCisJCQkJCQkJCQkJCSAgcHZhbCwKKwkJCQkJCQkJCQkJICBpc251bGwsCisJCQkJCQkJ CQkJCSAgdHlwQnlWYWwpOworCQkJCX0KIAogCQkJCS8qCiAJCQkJICogTm90IHJlcGxhY2VhYmxl LCBzbyBqdXN0IGNvcHkgdGhlIFBhcmFtIChubyBuZWVkIHRvCkBAIC00NzIyLDcgKzQ3NTIsOCBA QCBpbmxpbmVfZnVuY3Rpb24oT2lkIGZ1bmNpZCwgT2lkIHJlc3VsdF90eXBlLCBPaWQgcmVzdWx0 X2NvbGxpZCwKIAkJcXVlcnl0cmVlLT5saW1pdE9mZnNldCB8fAogCQlxdWVyeXRyZWUtPmxpbWl0 Q291bnQgfHwKIAkJcXVlcnl0cmVlLT5zZXRPcGVyYXRpb25zIHx8Ci0JCWxpc3RfbGVuZ3RoKHF1 ZXJ5dHJlZS0+dGFyZ2V0TGlzdCkgIT0gMSkKKwkJKGxpc3RfbGVuZ3RoKHF1ZXJ5dHJlZS0+dGFy Z2V0TGlzdCkgIT0gMSkgfHwKKwkJcXVlcnl0cmVlLT5oYXNTZXNzaW9uVmFyaWFibGVzKQogCQln b3RvIGZhaWw7CiAKIAkvKiBJZiB0aGUgZnVuY3Rpb24gcmVzdWx0IGlzIGNvbXBvc2l0ZSwgcmVz b2x2ZSBpdCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggMWY0ZDZhZGRhNTIuLjNkZjIxOWY5OGQy IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTI1LDkgKzI1LDEyIEBACiAjaW5jbHVkZSAicG9zdGdy ZXMuaCIKIAogI2luY2x1ZGUgImFjY2Vzcy9zeXNhdHRyLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9u YW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvZGVmcmVtLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5o IgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgpAQCAtNTEsNiArNTQsNyBAQAogI2luY2x1 ZGUgInV0aWxzL2JhY2tlbmRfc3RhdHVzLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIK ICNpbmNsdWRlICJ1dGlscy9ndWMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNp bmNsdWRlICJ1dGlscy9yZWwuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogCkBAIC04 Myw2ICs4Nyw4IEBAIHN0YXRpYyBRdWVyeSAqdHJhbnNmb3JtQ3JlYXRlVGFibGVBc1N0bXQoUGFy c2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCSBDcmVhdGVUYWJsZUFzU3RtdCAqc3RtdCk7CiBz dGF0aWMgUXVlcnkgKnRyYW5zZm9ybUNhbGxTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJ CQkJQ2FsbFN0bXQgKnN0bXQpOworc3RhdGljIFF1ZXJ5ICp0cmFuc2Zvcm1MZXRTdG10KFBhcnNl U3RhdGUgKnBzdGF0ZSwKKwkJCQkJCQkgICBMZXRTdG10ICpzdG10KTsKIHN0YXRpYyB2b2lkIHRy YW5zZm9ybUxvY2tpbmdDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBRdWVyeSAqcXJ5LAogCQkJ CQkJCQkgICBMb2NraW5nQ2xhdXNlICpsYywgYm9vbCBwdXNoZWREb3duKTsKICNpZmRlZiBERUJV R19OT0RFX1RFU1RTX0VOQUJMRUQKQEAgLTQxNCw2ICs0MjAsNyBAQCB0cmFuc2Zvcm1TdG10KFBh cnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqcGFyc2VUcmVlKQogCQkJY2FzZSBUX1VwZGF0ZVN0bXQ6 CiAJCQljYXNlIFRfRGVsZXRlU3RtdDoKIAkJCWNhc2UgVF9NZXJnZVN0bXQ6CisJCQljYXNlIFRf TGV0U3RtdDoKIAkJCQkodm9pZCkgdGVzdF9yYXdfZXhwcmVzc2lvbl9jb3ZlcmFnZShwYXJzZVRy ZWUsIE5VTEwpOwogCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKQEAgLTQ5Myw2ICs1MDAsMTEgQEAg dHJhbnNmb3JtU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKnBhcnNlVHJlZSkKIAkJCQkJ CQkJCSAgIChDYWxsU3RtdCAqKSBwYXJzZVRyZWUpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX0xl dFN0bXQ6CisJCQlyZXN1bHQgPSB0cmFuc2Zvcm1MZXRTdG10KHBzdGF0ZSwKKwkJCQkJCQkJCSAg KExldFN0bXQgKikgcGFyc2VUcmVlKTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAKIAkJCS8q CkBAIC01NDUsNiArNTU3LDcgQEAgc3RtdF9yZXF1aXJlc19wYXJzZV9hbmFseXNpcyhSYXdTdG10 ICpwYXJzZVRyZWUpCiAJCWNhc2UgVF9TZWxlY3RTdG10OgogCQljYXNlIFRfUmV0dXJuU3RtdDoK IAkJY2FzZSBUX1BMQXNzaWduU3RtdDoKKwkJY2FzZSBUX0xldFN0bXQ6CiAJCQlyZXN1bHQgPSB0 cnVlOwogCQkJYnJlYWs7CiAKQEAgLTY5Miw2ICs3MDUsNyBAQCB0cmFuc2Zvcm1EZWxldGVTdG10 KFBhcnNlU3RhdGUgKnBzdGF0ZSwgRGVsZXRlU3RtdCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1 bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBz dGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dz OworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFi bGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC0xMTE3 LDYgKzExMzEsNyBAQCB0cmFuc2Zvcm1JbnNlcnRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgSW5z ZXJ0U3RtdCAqc3RtdCkKIAogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJn ZXRTUkZzOwogCXFyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5 LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAK IAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTE1ODIsNiArMTU5 Nyw3IEBAIHRyYW5zZm9ybVNlbGVjdFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10 ICpzdG10KQogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7 CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5o YXNBZ2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0g cHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlmb3JlYWNoKGwsIHN0bXQtPmxvY2tp bmdDbGF1c2UpCiAJewpAQCAtMTgwOCwxMiArMTgyNCwyNDEgQEAgdHJhbnNmb3JtVmFsdWVzQ2xh dXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCkKIAlxcnktPmpvaW50cmVl ID0gbWFrZUZyb21FeHByKHBzdGF0ZS0+cF9qb2lubGlzdCwgTlVMTCk7CiAKIAlxcnktPmhhc1N1 YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxl cyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxh dGlvbnMocHN0YXRlLCBxcnkpOwogCiAJcmV0dXJuIHFyeTsKIH0KIAorLyoKKyAqIHRyYW5zZm9y bUxldFN0bXQgLQorICoJICB0cmFuc2Zvcm0gYW4gTGV0IFN0YXRlbWVudAorICovCitzdGF0aWMg UXVlcnkgKgordHJhbnNmb3JtTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0 bXQpCit7CisJUXVlcnkJICAgKnF1ZXJ5OworCVF1ZXJ5CSAgICpyZXN1bHQ7CisJTGlzdAkgICAq ZXhwckxpc3QgPSBOSUw7CisJTGlzdAkgICAqZXhwckxpc3RDb2VyID0gTklMOworCUxpc3RDZWxs ICAgKmxjOworCUxpc3RDZWxsICAgKmluZGlyZWN0aW9uX2hlYWQgPSBOVUxMOworCVF1ZXJ5CSAg ICpzZWxlY3RRdWVyeTsKKwlPaWQJCQl2YXJpZDsKKwljaGFyCSAgICphdHRybmFtZSA9IE5VTEw7 CisJYm9vbAkJbm90X3VuaXF1ZTsKKwlib29sCQlpc19yb3d0eXBlOworCU9pZAkJCXR5cGlkOwor CWludDMyCQl0eXBtb2Q7CisJT2lkCQkJY29sbGlkOworCUxpc3QJICAgKm5hbWVzID0gTlVMTDsK KwlpbnQJCQlpbmRpcmVjdGlvbl9zdGFydDsKKwlpbnQJCQlpID0gMDsKKworCS8qIHRoZXJlIGNh bid0IGJlIGFueSBvdXRlciBXSVRIIHRvIHdvcnJ5IGFib3V0ICovCisJQXNzZXJ0KHBzdGF0ZS0+ cF9jdGVuYW1lc3BhY2UgPT0gTklMKTsKKworCW5hbWVzID0gTmFtZXNGcm9tTGlzdChzdG10LT50 YXJnZXQpOworCisJLyogbG9ja3MgdGhlIHZhcmlhYmxlIHdpdGggYW4gQWNjZXNzU2hhcmVMb2Nr ICovCisJdmFyaWQgPSBJZGVudGlmeVZhcmlhYmxlKG5hbWVzLCAmYXR0cm5hbWUsICZub3RfdW5p cXVlLCBmYWxzZSk7CisJaWYgKG5vdF91bmlxdWUpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9BTUJJR1VPVVNfUEFSQU1FVEVSKSwKKwkJCQkgZXJybXNnKCJ0YXJnZXQg XCIlc1wiIG9mIExFVCBjb21tYW5kIGlzIGFtYmlndW91cyIsCisJCQkJCQlOYW1lTGlzdFRvU3Ry aW5nKG5hbWVzKSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHN0bXQtPmxvY2F0 aW9uKSkpOworCisJaWYgKCFPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJ CQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coInNlc3Np b24gdmFyaWFibGUgXCIlc1wiIGRvZXNuJ3QgZXhpc3QiLAorCQkJCQkJTmFtZUxpc3RUb1N0cmlu ZyhuYW1lcykpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzdG10LT5sb2NhdGlv bikpKTsKKworCS8qCisJICogQ2FsY3VsYXRlIHN0YXJ0IG9mIHBvc3NpYmxlIHBvc2l0aW9uIG9m IGFuIGluZGlyZWN0aW9uIGluIGxpc3QsIGFuZAorCSAqIHdoZW4gaXQgaXMgaW5zaWRlIHRoZSBs aXN0LCBzdG9yZSBwb2ludGVyIG9uIGZpcnN0IG5vZGUgb2YgaW5kaXJlY3Rpb24uCisJICovCisJ aW5kaXJlY3Rpb25fc3RhcnQgPSBsaXN0X2xlbmd0aChuYW1lcykgLSAoYXR0cm5hbWUgPyAxIDog MCk7CisJaWYgKGxpc3RfbGVuZ3RoKHN0bXQtPnRhcmdldCkgPiBpbmRpcmVjdGlvbl9zdGFydCkK KwkJaW5kaXJlY3Rpb25faGVhZCA9IGxpc3RfbnRoX2NlbGwoc3RtdC0+dGFyZ2V0LCBpbmRpcmVj dGlvbl9zdGFydCk7CisKKwlnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQo dmFyaWQsICZ0eXBpZCwgJnR5cG1vZCwgJmNvbGxpZCk7CisKKwlpc19yb3d0eXBlID0gdHlwZV9p c19yb3d0eXBlKHR5cGlkKTsKKworCWlmIChhdHRybmFtZSAmJiAhaXNfcm93dHlwZSkKKwkJZXJl cG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJ CQkgZXJybXNnKCJjYW5ub3QgYXNzaWduIHRvIGZpZWxkIFwiJXNcIiBvZiBzZXNzaW9uIHZhcmlh YmxlIFwiJXMuJXNcIiBiZWNhdXNlIGl0cyB0eXBlICVzIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBl IiwKKwkJCQkJCWF0dHJuYW1lLAorCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9u X3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVf bmFtZSh2YXJpZCksCisJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkpLAorCQkJCSBwYXJzZXJf ZXJycG9zaXRpb24ocHN0YXRlLCBzdG10LT5sb2NhdGlvbikpKTsKKworCXBzdGF0ZS0+cF9leHBy X2tpbmQgPSBFWFBSX0tJTkRfTEVUX1RBUkdFVDsKKworCS8qIHdlIG5lZWQgdG8gcG9zdHBvbmUg Y29udmVyc2lvbiBvZiAidW5rbm93biIgdG8gdGV4dCAqLworCXBzdGF0ZS0+cF9yZXNvbHZlX3Vu a25vd25zID0gZmFsc2U7CisKKwlzZWxlY3RRdWVyeSA9IHRyYW5zZm9ybVN0bXQocHN0YXRlLCBz dG10LT5xdWVyeSk7CisKKwkvKiB0aGUgZ3JhbW1hciBzaG91bGQgaGF2ZSBwcm9kdWNlZCBhIFNF TEVDVCAqLworCUFzc2VydChJc0Eoc2VsZWN0UXVlcnksIFF1ZXJ5KSAmJiBzZWxlY3RRdWVyeS0+ Y29tbWFuZFR5cGUgPT0gQ01EX1NFTEVDVCk7CisKKwkvKgorCSAqIEdlbmVyYXRlIGFuIGV4cHJl c3Npb24gbGlzdCBmb3IgdGhlIExFVCB0aGF0IHNlbGVjdHMgYWxsIHRoZSBub24tcmVzanVuawor CSAqIGNvbHVtbnMgZnJvbSB0aGUgc3VicXVlcnkuCisJICovCisJZXhwckxpc3QgPSBOSUw7CisJ Zm9yZWFjaF9ub2RlKFRhcmdldEVudHJ5LCB0bGUsIHNlbGVjdFF1ZXJ5LT50YXJnZXRMaXN0KQor CXsKKwkJaWYgKHRsZS0+cmVzanVuaykKKwkJCWNvbnRpbnVlOworCisJCWV4cHJMaXN0ID0gbGFw cGVuZChleHByTGlzdCwgdGxlLT5leHByKTsKKwl9CisKKwkvKiBkb24ndCBhbGxvdyBtdWx0aWNv bHVtbiByZXN1bHQgKi8KKwlpZiAobGlzdF9sZW5ndGgoZXhwckxpc3QpICE9IDEpCisJCWVyZXBv cnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCSBlcnJt c2dfcGx1cmFsKCJhc3NpZ25tZW50IGV4cHJlc3Npb24gcmV0dXJuZWQgJWQgY29sdW1uIiwKKwkJ CQkJCQkgICAiYXNzaWdubWVudCBleHByZXNzaW9uIHJldHVybmVkICVkIGNvbHVtbnMiLAorCQkJ CQkJCSAgIGxpc3RfbGVuZ3RoKGV4cHJMaXN0KSwKKwkJCQkJCQkgICBsaXN0X2xlbmd0aChleHBy TGlzdCkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLAorCQkJCQkJCQkJZXhwckxv Y2F0aW9uKChOb2RlICopIGV4cHJMaXN0KSkpKTsKKworCWV4cHJMaXN0Q29lciA9IE5JTDsKKwor CWZvcmVhY2gobGMsIGV4cHJMaXN0KQorCXsKKwkJRXhwcgkgICAqZXhwciA9IChFeHByICopIGxm aXJzdChsYyk7CisJCUV4cHIJICAgKmNvZXJjZWRfZXhwcjsKKwkJT2lkCQkJZXhwcnR5cGlkOwor CisJCS8qIG5vdyB3ZSBjYW4gcmVhZCB0aGUgdHlwZSBvZiB0aGUgZXhwcmVzc2lvbiAqLworCQll eHBydHlwaWQgPSBleHByVHlwZSgoTm9kZSAqKSBleHByKTsKKworCQlpZiAoaW5kaXJlY3Rpb25f aGVhZCkKKwkJeworCQkJYm9vbAkJdGFyZ2V0SXNBcnJheTsKKwkJCWNoYXIJICAgKnRhcmdldE5h bWU7CisJCQlQYXJhbQkgICAqcGFyYW07CisKKwkJCXRhcmdldE5hbWUgPSBnZXRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lKHZhcmlkKTsKKwkJCXRhcmdldElzQXJyYXkgPSBPaWRJc1ZhbGlkKGdldF9l bGVtZW50X3R5cGUodHlwaWQpKTsKKworCQkJcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMg PSB0cnVlOworCisJCQlwYXJhbSA9IG1ha2VOb2RlKFBhcmFtKTsKKwkJCXBhcmFtLT5wYXJhbWtp bmQgPSBQQVJBTV9WQVJJQUJMRTsKKwkJCXBhcmFtLT5wYXJhbXZhcmlkID0gdmFyaWQ7CisJCQlw YXJhbS0+cGFyYW10eXBlID0gdHlwaWQ7CisJCQlwYXJhbS0+cGFyYW10eXBtb2QgPSB0eXBtb2Q7 CisKKwkJCS8qCisJCQkgKiBUaGUgcGFyYW1ldGVyIHVzZWQgYXMgYmFzZW5vZGUgaGFzIHRvIGhh dmUgc3BlY2lhbAorCQkJICogbWFyaywgYmVjYXVzZSByZXF1aXJlcyBzcGVjaWFsIGFjY2VzcyB3 aGVuIHdlIGRvCisJCQkgKiBTRUxFQ1QgYWNjZXNzIGNoZWNrLgorCQkJICovCisJCQlwYXJhbS0+ cGFyYW1iYXNlbm9kZSA9IHRydWU7CisKKwkJCWNvZXJjZWRfZXhwciA9IChFeHByICopCisJCQkJ dHJhbnNmb3JtQXNzaWdubWVudEluZGlyZWN0aW9uKHBzdGF0ZSwKKwkJCQkJCQkJCQkJICAgKE5v ZGUgKikgcGFyYW0sCisJCQkJCQkJCQkJCSAgIHRhcmdldE5hbWUsCisJCQkJCQkJCQkJCSAgIHRh cmdldElzQXJyYXksCisJCQkJCQkJCQkJCSAgIHR5cGlkLAorCQkJCQkJCQkJCQkgICB0eXBtb2Qs CisJCQkJCQkJCQkJCSAgIEludmFsaWRPaWQsCisJCQkJCQkJCQkJCSAgIHN0bXQtPnRhcmdldCwK KwkJCQkJCQkJCQkJICAgaW5kaXJlY3Rpb25faGVhZCwKKwkJCQkJCQkJCQkJICAgKE5vZGUgKikg ZXhwciwKKwkJCQkJCQkJCQkJICAgQ09FUkNJT05fQVNTSUdOTUVOVCwKKwkJCQkJCQkJCQkJICAg c3RtdC0+bG9jYXRpb24pOworCQl9CisJCWVsc2UKKwkJCWNvZXJjZWRfZXhwciA9IChFeHByICop CisJCQkJY29lcmNlX3RvX3RhcmdldF90eXBlKHBzdGF0ZSwKKwkJCQkJCQkJCSAgKE5vZGUgKikg ZXhwciwKKwkJCQkJCQkJCSAgZXhwcnR5cGlkLAorCQkJCQkJCQkJICB0eXBpZCwgdHlwbW9kLAor CQkJCQkJCQkJICBDT0VSQ0lPTl9BU1NJR05NRU5ULAorCQkJCQkJCQkJICBDT0VSQ0VfSU1QTElD SVRfQ0FTVCwKKwkJCQkJCQkJCSAgc3RtdC0+bG9jYXRpb24pOworCisJCWlmIChjb2VyY2VkX2V4 cHIgPT0gTlVMTCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfREFU QVRZUEVfTUlTTUFUQ0gpLAorCQkJCQkgZXJybXNnKCJ2YXJpYWJsZSBcIiVzLiVzXCIgaXMgb2Yg dHlwZSAlcywgYnV0IGV4cHJlc3Npb24gaXMgb2YgdHlwZSAlcyIsCisJCQkJCQkJZ2V0X25hbWVz cGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJ CWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpLAorCQkJCQkJCWZvcm1hdF90eXBlX2Jl KHR5cGlkKSwKKwkJCQkJCQlmb3JtYXRfdHlwZV9iZShleHBydHlwaWQpKSwKKwkJCQkJIGVycmhp bnQoIllvdSB3aWxsIG5lZWQgdG8gcmV3cml0ZSBvciBjYXN0IHRoZSBleHByZXNzaW9uLiIpLAor CQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKChOb2RlICopIGV4 cHIpKSkpOworCisJCWV4cHJMaXN0Q29lciA9IGxhcHBlbmQoZXhwckxpc3RDb2VyLCBjb2VyY2Vk X2V4cHIpOworCX0KKworCS8qIGdlbmVyYXRlIHF1ZXJ5J3MgdGFyZ2V0IGxpc3QgdXNpbmcgdGhl IGNvbXB1dGVkIGxpc3Qgb2YgZXhwcmVzc2lvbnMgKi8KKwlxdWVyeSA9IG1ha2VOb2RlKFF1ZXJ5 KTsKKwlxdWVyeS0+Y29tbWFuZFR5cGUgPSBDTURfU0VMRUNUOworCisJZm9yZWFjaChsYywgZXhw ckxpc3RDb2VyKQorCXsKKwkJRXhwcgkgICAqZXhwciA9IChFeHByICopIGxmaXJzdChsYyk7CisJ CVRhcmdldEVudHJ5ICp0bGU7CisKKwkJdGxlID0gbWFrZVRhcmdldEVudHJ5KGV4cHIsCisJCQkJ CQkJICBpICsgMSwKKwkJCQkJCQkgIEZpZ3VyZUNvbG5hbWUoKE5vZGUgKikgZXhwciksCisJCQkJ CQkJICBmYWxzZSk7CisJCXF1ZXJ5LT50YXJnZXRMaXN0ID0gbGFwcGVuZChxdWVyeS0+dGFyZ2V0 TGlzdCwgdGxlKTsKKwl9CisKKwkvKiBkb25lIGJ1aWxkaW5nIHRoZSByYW5nZSB0YWJsZSBhbmQg am9pbnRyZWUgKi8KKwlxdWVyeS0+cnRhYmxlID0gcHN0YXRlLT5wX3J0YWJsZTsKKwlxdWVyeS0+ am9pbnRyZWUgPSBtYWtlRnJvbUV4cHIocHN0YXRlLT5wX2pvaW5saXN0LCBOVUxMKTsKKworCXF1 ZXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CisJcXVlcnktPmhh c1N1YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOworCXF1ZXJ5LT5oYXNTZXNzaW9uVmFy aWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CisKKwkvKiB0aGlzIGlzIHRv cC1sZXZlbCBxdWVyeSAqLworCXF1ZXJ5LT5jYW5TZXRUYWcgPSB0cnVlOworCisJLyoKKwkgKiBT YXZlIHRhcmdldCBzZXNzaW9uIHZhcmlhYmxlIElELiBJdCBpcyB1c2VkIGxhdGVyIGZvcgorCSAq IGFjcXVpcmluZyBhbiBBY2Nlc3NTaGFyZUxvY2sgb24gdGFyZ2V0IHZhcmlhYmxlLCBzZXR0aW5n CisJICogcGxhbiBkZXBlbmRlbmN5IGFuZCBmaW5hbGx5IGZvciBjcmVhdGluZyBWYXJpYWJsZURl c3RSZWNlaXZlci4KKwkgKi8KKwlxdWVyeS0+cmVzdWx0VmFyaWFibGUgPSB2YXJpZDsKKworCWFz c2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXVlcnkpOworCisJLyoKKwkgKiBUaGUgcXVl cnkgaXMgZXhlY3V0ZWQgYXMgdXRpbGl0eSBjb21tYW5kIGJ5IG5lc3RlZCBleGVjdXRvciBjYWxs LgorCSAqIEFzc2lnbmVkIHF1ZXJ5SWQgaXMgcmVxdWlyZWQgaW4gdGhpcyBjYXNlLgorCSAqLwor CWlmIChJc1F1ZXJ5SWRFbmFibGVkKCkpCisJCUp1bWJsZVF1ZXJ5KHF1ZXJ5KTsKKworCXN0bXQt PnF1ZXJ5ID0gKE5vZGUgKikgcXVlcnk7CisKKwkvKiByZXByZXNlbnQgdGhlIGNvbW1hbmQgYXMg YSB1dGlsaXR5IFF1ZXJ5ICovCisJcmVzdWx0ID0gbWFrZU5vZGUoUXVlcnkpOworCXJlc3VsdC0+ Y29tbWFuZFR5cGUgPSBDTURfVVRJTElUWTsKKwlyZXN1bHQtPnV0aWxpdHlTdG10ID0gKE5vZGUg Kikgc3RtdDsKKworCXJldHVybiByZXN1bHQ7Cit9CisKIC8qCiAgKiB0cmFuc2Zvcm1TZXRPcGVy YXRpb25TdG10IC0KICAqCSAgdHJhbnNmb3JtcyBhIHNldC1vcGVyYXRpb25zIHRyZWUKQEAgLTIw NTksNiArMjMwNCw3IEBAIHRyYW5zZm9ybVNldE9wZXJhdGlvblN0bXQoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBTZWxlY3RTdG10ICpzdG10KQogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBf aGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1Rhcmdl dFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJcXJ5LT5oYXNTZXNz aW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlmb3JlYWNo KGwsIGxvY2tpbmdDbGF1c2UpCiAJewpAQCAtMjUzNCw2ICsyNzgwLDcgQEAgdHJhbnNmb3JtUmV0 dXJuU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFJldHVyblN0bXQgKnN0bXQpCiAJcXJ5LT5oYXNX aW5kb3dGdW5jcyA9IHBzdGF0ZS0+cF9oYXNXaW5kb3dGdW5jczsKIAlxcnktPmhhc1RhcmdldFNS RnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKIAlxcnktPmhhc0FnZ3MgPSBwc3RhdGUtPnBf aGFzQWdnczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lv blZhcmlhYmxlczsKIAogCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApA QCAtMjYwMSw2ICsyODQ4LDcgQEAgdHJhbnNmb3JtVXBkYXRlU3RtdChQYXJzZVN0YXRlICpwc3Rh dGUsIFVwZGF0ZVN0bXQgKnN0bXQpCiAKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBf aGFzVGFyZ2V0U1JGczsKIAlxcnktPmhhc1N1YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1Ykxpbmtz OworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFi bGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC0yODkx LDkgKzMxMzksMTUgQEAgdHJhbnNmb3JtUExBc3NpZ25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwg UExBc3NpZ25TdG10ICpzdG10KQogCS8qCiAJICogVHJhbnNmb3JtIHRoZSB0YXJnZXQgcmVmZXJl bmNlLiAgVHlwaWNhbGx5IHdlIHdpbGwgZ2V0IGJhY2sgYSBQYXJhbQogCSAqIG5vZGUsIGJ1dCB0 aGVyZSdzIG5vIHJlYXNvbiB0byBiZSB0b28gcGlja3kgYWJvdXQgaXRzIHR5cGUuCisJICoKKwkg KiBTZXNzaW9uIHZhcmlhYmxlcyBzaG91bGQgbm90IGJlIHVzZWQgYXMgdGFyZ2V0IG9mIGEgUEwv cGdTUUwgYXNzaWduCisJICogc3RhdGVtZW50LiAgU28gd2Ugc2hvdWxkIHVzZSBhIGRlZGljYXRl ZCBleHByZXNzaW9uIGtpbmQgYW5kIGRpc2FsbG93CisJICogc2Vzc2lvbiB2YXJpYWJsZXMgdGhl cmUuICBUaGUgZGVkaWNhdGVkIGNvbnRleHQgYWxsb3dzIHRvIGVsaW1pbmF0ZQorCSAqIHVuZGVz aXJhYmxlIHdhcm5pbmdzIGFib3V0IHRoZSBwb3NzaWJpbGl0eSBvZiBhIHRhcmdldCBQTC9wZ1NR TCB2YXJpYWJsZQorCSAqIHNoYWRvd2luZyBhIHNlc3Npb24gdmFyaWFibGUuCiAJICovCiAJdGFy Z2V0ID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIChOb2RlICopIGNyZWYsCi0JCQkJCQkgICBFWFBS X0tJTkRfVVBEQVRFX1RBUkdFVCk7CisJCQkJCQkgICBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVCk7 CiAJdGFyZ2V0dHlwZSA9IGV4cHJUeXBlKHRhcmdldCk7CiAJdGFyZ2V0dHlwbW9kID0gZXhwclR5 cG1vZCh0YXJnZXQpOwogCXRhcmdldGNvbGxhdGlvbiA9IGV4cHJDb2xsYXRpb24odGFyZ2V0KTsK QEAgLTI5MzUsNiArMzE4OSwxMCBAQCB0cmFuc2Zvcm1QTEFzc2lnblN0bXQoUGFyc2VTdGF0ZSAq cHN0YXRlLCBQTEFzc2lnblN0bXQgKnN0bXQpCiAJICovCiAJdHlwZV9pZCA9IGV4cHJUeXBlKChO b2RlICopIHRsZS0+ZXhwcik7CiAKKwkvKgorCSAqIEZvciBpbmRpcmVjdGlvbiBwcm9jZXNzaW5n IGFuZCBhZGRpdGlvbmFsIGNhc3RzIHdlIGNhbiB1c2UgZXhwcl9raW5kCisJICogRVhQUl9LSU5E X1VQREFURV9UQVJHRVQuCisJICovCiAJcHN0YXRlLT5wX2V4cHJfa2luZCA9IEVYUFJfS0lORF9V UERBVEVfVEFSR0VUOwogCiAJaWYgKGluZGlyZWN0aW9uKQpAQCAtMzA3Nyw2ICszMzM1LDggQEAg dHJhbnNmb3JtUExBc3NpZ25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUExBc3NpZ25TdG10ICpz dG10KQogCQkJCQkJCSAgIChMb2NraW5nQ2xhdXNlICopIGxmaXJzdChsKSwgZmFsc2UpOwogCX0K IAorCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFi bGVzOworCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCiAJLyogdGhp cyBtdXN0IGJlIGRvbmUgYWZ0ZXIgY29sbGF0aW9ucywgZm9yIHJlbGlhYmxlIGNvbXBhcmlzb24g b2YgZXhwcnMgKi8KQEAgLTMzNTAsNiArMzYxMCwxNiBAQCB0cmFuc2Zvcm1DYWxsU3RtdChQYXJz ZVN0YXRlICpwc3RhdGUsIENhbGxTdG10ICpzdG10KQogCQkJCQkJCSB0cnVlLAogCQkJCQkJCSBz dG10LT5mdW5jY2FsbC0+bG9jYXRpb24pOwogCisJLyoKKwkgKiBUaGUgYXJndW1lbnRzIG9mIENB TEwgc3RhdGVtZW50IGFyZSBldmFsdWF0ZWQgYnkgYSBkaXJlY3QgZXhwcmVzc2lvbgorCSAqIGV4 ZWN1dG9yIGNhbGwuICBUaGlzIHBhdGggaXMgdW5zdXBwb3J0ZWQgeWV0LCBzbyBibG9jayBpdC4g IEl0IHdpbGwgYmUKKwkgKiBlbmFibGVkIGxhdGVyLgorCSAqLworCWlmIChwc3RhdGUtPnBfaGFz U2Vzc2lvblZhcmlhYmxlcykKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RF X0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBj YW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudCIpKSk7CisKIAlhc3NpZ25fZXhwcl9jb2xsYXRp b25zKHBzdGF0ZSwgbm9kZSk7CiAKIAlmZXhwciA9IGNhc3ROb2RlKEZ1bmNFeHByLCBub2RlKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55CmluZGV4IDcxYzcxMjcyOTU4Li45OWZhYzM0MTFkYSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBA IC0yOTcsNyArMjk3LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNo YXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJRHJvcFRyYW5zZm9y bVN0bXQKIAkJRHJvcFVzZXJNYXBwaW5nU3RtdCBFeHBsYWluU3RtdCBGZXRjaFN0bXQKIAkJR3Jh bnRTdG10IEdyYW50Um9sZVN0bXQgSW1wb3J0Rm9yZWlnblNjaGVtYVN0bXQgSW5kZXhTdG10IElu c2VydFN0bXQKLQkJTGlzdGVuU3RtdCBMb2FkU3RtdCBMb2NrU3RtdCBNZXJnZVN0bXQgTm90aWZ5 U3RtdCBFeHBsYWluYWJsZVN0bXQgUHJlcGFyYWJsZVN0bXQKKwkJTGV0U3RtdCBMaXN0ZW5TdG10 IExvYWRTdG10IExvY2tTdG10IE1lcmdlU3RtdCBOb3RpZnlTdG10IEV4cGxhaW5hYmxlU3RtdCBQ cmVwYXJhYmxlU3RtdAogCQlDcmVhdGVGdW5jdGlvblN0bXQgQWx0ZXJGdW5jdGlvblN0bXQgUmVp bmRleFN0bXQgUmVtb3ZlQWdnclN0bXQKIAkJUmVtb3ZlRnVuY1N0bXQgUmVtb3ZlT3BlclN0bXQg UmVuYW1lU3RtdCBSZXR1cm5TdG10IFJldm9rZVN0bXQgUmV2b2tlUm9sZVN0bXQKIAkJUnVsZUFj dGlvblN0bXQgUnVsZUFjdGlvblN0bXRPckVtcHR5IFJ1bGVTdG10CkBAIC03NDIsNyArNzQyLDcg QEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExp c3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlLRUVQIEtFWSBLRVlTCiAKIAlMQUJFTCBMQU5H VUFHRSBMQVJHRV9QIExBU1RfUCBMQVRFUkFMX1AKLQlMRUFESU5HIExFQUtQUk9PRiBMRUFTVCBM RUZUIExFVkVMIExJS0UgTElNSVQgTElTVEVOIExPQUQgTE9DQUwKKwlMRUFESU5HIExFQUtQUk9P RiBMRUFTVCBMRUZUIExFVCBMRVZFTCBMSUtFIExJTUlUIExJU1RFTiBMT0FEIExPQ0FMCiAJTE9D QUxUSU1FIExPQ0FMVElNRVNUQU1QIExPQ0FUSU9OIExPQ0tfUCBMT0NLRUQgTE9HR0VECiAKIAlN QVBQSU5HIE1BVENIIE1BVENIRUQgTUFURVJJQUxJWkVEIE1BWFZBTFVFIE1FUkdFIE1FUkdFX0FD VElPTiBNRVRIT0QKQEAgLTEwODksNiArMTA4OSw3IEBAIHN0bXQ6CiAJCQl8IEltcG9ydEZvcmVp Z25TY2hlbWFTdG10CiAJCQl8IEluZGV4U3RtdAogCQkJfCBJbnNlcnRTdG10CisJCQl8IExldFN0 bXQKIAkJCXwgTGlzdGVuU3RtdAogCQkJfCBSZWZyZXNoTWF0Vmlld1N0bXQKIAkJCXwgTG9hZFN0 bXQKQEAgLTEyODY4LDYgKzEyODY5LDM4IEBAIG9wdF9ob2xkOiAvKiBFTVBUWSAqLwkJCQkJCXsg JCQgPSAwOyB9CiAJCQl8IFdJVEhPVVQgSE9MRAkJCQkJeyAkJCA9IDA7IH0KIAkJOwogCisvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKKyAqCisgKgkJUVVFUlk6CisgKgkJCQlMRVQgU1RBVEVNRU5UCisg KgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLworTGV0U3RtdDoJTEVUIENvbElkIG9wdF9pbmRpcmVj dGlvbiAnPScgYV9leHByCisJCQkJeworCQkJCQlMZXRTdG10CSAgICpuID0gbWFrZU5vZGUoTGV0 U3RtdCk7CisJCQkJCVNlbGVjdFN0bXQgKnNlbGVjdDsKKwkJCQkJUmVzVGFyZ2V0ICAqcmVzOwor CisJCQkJCW4tPnRhcmdldCA9IGxjb25zKG1ha2VTdHJpbmcoJDIpLAorCQkJCQkJCQkJICBjaGVj a19pbmRpcmVjdGlvbigkMywgeXlzY2FubmVyKSk7CisKKwkJCQkJc2VsZWN0ID0gbWFrZU5vZGUo U2VsZWN0U3RtdCk7CisJCQkJCXJlcyA9IG1ha2VOb2RlKFJlc1RhcmdldCk7CisKKwkJCQkJLyog Y3JlYXRlIHRhcmdldCBsaXN0IGZvciBpbXBsaWNpdCBxdWVyeSAqLworCQkJCQlyZXMtPm5hbWUg PSBOVUxMOworCQkJCQlyZXMtPmluZGlyZWN0aW9uID0gTklMOworCQkJCQlyZXMtPnZhbCA9IChO b2RlICopICQ1OworCQkJCQlyZXMtPmxvY2F0aW9uID0gQDU7CisKKwkJCQkJc2VsZWN0LT50YXJn ZXRMaXN0ID0gbGlzdF9tYWtlMShyZXMpOworCQkJCQluLT5xdWVyeSA9IChOb2RlICopIHNlbGVj dDsKKworCQkJCQluLT5sb2NhdGlvbiA9IEAyOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJ fQorCQk7CisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqCQlRVUVSWToKQEAgLTE3OTM5 LDYgKzE3OTcyLDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBMQVJHRV9QCiAJCQl8IExB U1RfUAogCQkJfCBMRUFLUFJPT0YKKwkJCXwgTEVUCiAJCQl8IExFVkVMCiAJCQl8IExJU1RFTgog CQkJfCBMT0FECkBAIC0xODU1Myw2ICsxODU4Nyw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJ CXwgTEVBS1BST09GCiAJCQl8IExFQVNUCiAJCQl8IExFRlQKKwkJCXwgTEVUCiAJCQl8IExFVkVM CiAJCQl8IExJS0UKIAkJCXwgTElTVEVOCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfYWdnLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKaW5kZXggMGFjODk2 NmUzMGYuLmRlMGE0YTU2NTNhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf YWdnLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCkBAIC01ODAsNiArNTgw LDExIEBAIGNoZWNrX2FnZ2xldmVsc19hbmRfY29uc3RyYWludHMoUGFyc2VTdGF0ZSAqcHN0YXRl LCBOb2RlICpleHByKQogCQkJZXJya2luZCA9IHRydWU7CiAJCQlicmVhazsKIAorCQljYXNlIEVY UFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgorCQkJ ZXJya2luZCA9IHRydWU7CisJCQlicmVhazsKKwogCQkJLyoKIAkJCSAqIFRoZXJlIGlzIGludGVu dGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRoZQogCQkJICogY29tcGls ZXIgd2lsbCB3YXJuIGlmIHdlIGFkZCBhIG5ldyBQYXJzZUV4cHJLaW5kIHdpdGhvdXQKQEAgLTk3 MCw2ICs5NzUsMTAgQEAgdHJhbnNmb3JtV2luZG93RnVuY0NhbGwoUGFyc2VTdGF0ZSAqcHN0YXRl LCBXaW5kb3dGdW5jICp3ZnVuYywKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKIAkJCWVy cmtpbmQgPSB0cnVlOwogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6 CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CisJCQllcnJraW5kID0gdHJ1ZTsKKwkJCWJy ZWFrOwogCiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50aW9uYWxseSBubyBkZWZhdWx0OiBj YXNlIGhlcmUsIHNvIHRoYXQgdGhlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCAxZjhlMmQ1 NDY3My4uOTg4ZDFjNjZmNTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9l eHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtMTcsNiArMTcs NyBAQAogCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hZ2dyZWdhdGUuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1 ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgpAQCAtMzMsMTEgKzM0LDEzIEBACiAjaW5jbHVkZSAicGFy c2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3RhcmdldC5oIgog I2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCisjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgi CiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9kYXRlLmgiCiAj aW5jbHVkZSAidXRpbHMvZm1ncm9pZHMuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIK ICNpbmNsdWRlICJ1dGlscy90aW1lc3RhbXAuaCIKKyNpbmNsdWRlICJ1dGlscy90eXBjYWNoZS5o IgogI2luY2x1ZGUgInV0aWxzL3htbC5oIgogCiAvKiBHVUMgcGFyYW1ldGVycyAqLwpAQCAtMTA2 LDYgKzEwOSw5IEBAIHN0YXRpYyBFeHByICptYWtlX2Rpc3RpbmN0X29wKFBhcnNlU3RhdGUgKnBz dGF0ZSwgTGlzdCAqb3BuYW1lLAogCQkJCQkJCSAgTm9kZSAqbHRyZWUsIE5vZGUgKnJ0cmVlLCBp bnQgbG9jYXRpb24pOwogc3RhdGljIE5vZGUgKm1ha2VfbnVsbHRlc3RfZnJvbV9kaXN0aW5jdChQ YXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJIEFfRXhwciAqZGlzdGluY3RhLCBOb2RlICph cmcpOworc3RhdGljIE5vZGUgKm1ha2VQYXJhbVNlc3Npb25WYXJpYWJsZShQYXJzZVN0YXRlICpw c3RhdGUsCisJCQkJCQkJCQkgIE9pZCB2YXJpZCwgT2lkIHR5cGlkLCBpbnQzMiB0eXBtb2QsIE9p ZCBjb2xsaWQsCisJCQkJCQkJCQkgIGNoYXIgKmF0dHJuYW1lLCBpbnQgbG9jYXRpb24pOwogCiAK IC8qCkBAIC00OTksNiArNTA1LDg5IEBAIHRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUg KnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qCisg KiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIGV4cHJlc3Npb24ga2luZCBpcyB2YWxpZCBmb3Ig c2Vzc2lvbiB2YXJpYWJsZXMuCisgKiBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgdXNlZCBldmVy eXdoZXJlIHdoZXJlIGV4dGVybmFsIHBhcmFtZXRlcnMgY2FuIGJlCisgKiB1c2VkLiAgU2Vzc2lv biB2YXJpYWJsZXMgYXJlIG5vdCBhbGxvd2VkIGluIERETCBjb21tYW5kcyBvciBpbiBjb25zdHJh aW50cy4KKyAqCisgKiBBbiBpZGVudGlmaWVyIGNhbiBiZSBwYXJzZWQgYXMgYSBzZXNzaW9uIHZh cmlhYmxlIG9ubHkgZm9yIGV4cHJlc3Npb24ga2luZHMKKyAqIHdoZXJlIHNlc3Npb24gdmFyaWFi bGVzIGFyZSBhbGxvd2VkLiAgVGhpcyBpcyB0aGUgcHJpbWFyeSB1c2FnZSBvZiB0aGlzCisgKiBm dW5jdGlvbi4KKyAqCisgKiBUaGUgc2Vjb25kIHVzYWdlIG9mIHRoaXMgZnVuY3Rpb24gaXMgdG8g ZGVjaWRlIHdoZXRoZXIgYSAiY29sdW1uIGRvZXMgbm90CisgKiBleGlzdCIgb3IgYSAiY29sdW1u IG9yIHZhcmlhYmxlIGRvZXMgbm90IGV4aXN0IiBlcnJvciBtZXNzYWdlIHNob3VsZCBiZQorICog cHJpbnRlZC4gIFdoZW4gd2UgYXJlIGluIGFuIGV4cHJlc3Npb24gd2hlcmUgc2Vzc2lvbiB2YXJp YWJsZXMgY2Fubm90IGJlCisgKiB1c2VkLCB3ZSByYWlzZSB0aGUgZmlyc3QgZm9ybSBvZiBlcnJv ciBtZXNzYWdlLgorICovCitzdGF0aWMgYm9vbAorZXhwcl9raW5kX2FsbG93c19zZXNzaW9uX3Zh cmlhYmxlcyhQYXJzZUV4cHJLaW5kIHBfZXhwcl9raW5kKQoreworCWJvb2wJCXJlc3VsdCA9IGZh bHNlOworCisJc3dpdGNoIChwX2V4cHJfa2luZCkKKwl7CisJCWNhc2UgRVhQUl9LSU5EX05PTkU6 CisJCQlBc3NlcnQoZmFsc2UpOwkJLyogY2FuJ3QgaGFwcGVuICovCisJCQlyZXR1cm4gZmFsc2U7 CisKKwkJLyogc2Vzc2lvbiB2YXJpYWJsZXMgYWxsb3dlZCAqLworCQljYXNlIEVYUFJfS0lORF9P VEhFUjoKKwkJY2FzZSBFWFBSX0tJTkRfSk9JTl9PTjoKKwkJY2FzZSBFWFBSX0tJTkRfRlJPTV9T VUJTRUxFQ1Q6CisJCWNhc2UgRVhQUl9LSU5EX0ZST01fRlVOQ1RJT046CisJCWNhc2UgRVhQUl9L SU5EX1dIRVJFOgorCQljYXNlIEVYUFJfS0lORF9IQVZJTkc6CisJCWNhc2UgRVhQUl9LSU5EX0ZJ TFRFUjoKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX1BBUlRJVElPTjoKKwkJY2FzZSBFWFBSX0tJ TkRfV0lORE9XX09SREVSOgorCQljYXNlIEVYUFJfS0lORF9XSU5ET1dfRlJBTUVfUkFOR0U6CisJ CWNhc2UgRVhQUl9LSU5EX1dJTkRPV19GUkFNRV9ST1dTOgorCQljYXNlIEVYUFJfS0lORF9XSU5E T1dfRlJBTUVfR1JPVVBTOgorCQljYXNlIEVYUFJfS0lORF9TRUxFQ1RfVEFSR0VUOgorCQljYXNl IEVYUFJfS0lORF9JTlNFUlRfVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9VUERBVEVfU09VUkNF OgorCQljYXNlIEVYUFJfS0lORF9VUERBVEVfVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9NRVJH RV9XSEVOOgorCQljYXNlIEVYUFJfS0lORF9NRVJHRV9SRVRVUk5JTkc6CisJCWNhc2UgRVhQUl9L SU5EX0dST1VQX0JZOgorCQljYXNlIEVYUFJfS0lORF9PUkRFUl9CWToKKwkJY2FzZSBFWFBSX0tJ TkRfRElTVElOQ1RfT046CisJCWNhc2UgRVhQUl9LSU5EX0xJTUlUOgorCQljYXNlIEVYUFJfS0lO RF9PRkZTRVQ6CisJCWNhc2UgRVhQUl9LSU5EX1JFVFVSTklORzoKKwkJY2FzZSBFWFBSX0tJTkRf VkFMVUVTOgorCQljYXNlIEVYUFJfS0lORF9WQUxVRVNfU0lOR0xFOgorCQljYXNlIEVYUFJfS0lO RF9BTFRFUl9DT0xfVFJBTlNGT1JNOgorCQljYXNlIEVYUFJfS0lORF9FWEVDVVRFX1BBUkFNRVRF UjoKKwkJY2FzZSBFWFBSX0tJTkRfUE9MSUNZOgorCQljYXNlIEVYUFJfS0lORF9DQUxMX0FSR1VN RU5UOgorCQljYXNlIEVYUFJfS0lORF9DT1BZX1dIRVJFOgorCQljYXNlIEVYUFJfS0lORF9MRVRf VEFSR0VUOgorCQkJcmVzdWx0ID0gdHJ1ZTsKKwkJCWJyZWFrOworCisJCS8qIHNlc3Npb24gdmFy aWFibGVzIG5vdCBhbGxvd2VkICovCisJCWNhc2UgRVhQUl9LSU5EX0NIRUNLX0NPTlNUUkFJTlQ6 CisJCWNhc2UgRVhQUl9LSU5EX0RPTUFJTl9DSEVDSzoKKwkJY2FzZSBFWFBSX0tJTkRfQ09MVU1O X0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CisJCWNhc2UgRVhQ Ul9LSU5EX0lOREVYX0VYUFJFU1NJT046CisJCWNhc2UgRVhQUl9LSU5EX0lOREVYX1BSRURJQ0FU RToKKwkJY2FzZSBFWFBSX0tJTkRfU1RBVFNfRVhQUkVTU0lPTjoKKwkJY2FzZSBFWFBSX0tJTkRf VFJJR0dFUl9XSEVOOgorCQljYXNlIEVYUFJfS0lORF9QQVJUSVRJT05fQk9VTkQ6CisJCWNhc2Ug RVhQUl9LSU5EX1BBUlRJVElPTl9FWFBSRVNTSU9OOgorCQljYXNlIEVYUFJfS0lORF9HRU5FUkFU RURfQ09MVU1OOgorCQljYXNlIEVYUFJfS0lORF9KT0lOX1VTSU5HOgorCQljYXNlIEVYUFJfS0lO RF9DWUNMRV9NQVJLOgorCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQkJcmVzdWx0 ID0gZmFsc2U7CisJCQlicmVhazsKKwl9CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiAvKgogICog VHJhbnNmb3JtIGEgQ29sdW1uUmVmLgogICoKQEAgLTU3NSw2ICs2NjQsOCBAQCB0cmFuc2Zvcm1D b2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJCWNhc2UgRVhQ Ul9LSU5EX0NPUFlfV0hFUkU6CiAJCWNhc2UgRVhQUl9LSU5EX0dFTkVSQVRFRF9DT0xVTU46CiAJ CWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CisJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJH RVQ6CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CiAJCQkvKiBva2F5ICovCiAJCQlicmVh azsKIApAQCAtODQ3LDggKzkzOCw2MSBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAq cHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJfQogCiAJLyoKLQkgKiBUaHJvdyBlcnJvciBpZiBu byB0cmFuc2xhdGlvbiBmb3VuZC4KKwkgKiBUaGVyZSBhcmUgY29udGV4dHMgd2hlcmUgc2Vzc2lv biB2YXJpYWJsZXMgYXJlIG5vdCBhbGxvd2VkLiAgV2UgZG9uJ3QKKwkgKiBuZWVkIHRvIGlkZW50 aWZ5IHNlc3Npb24gdmFyaWFibGVzIGluIHN1Y2ggYSBjb250ZXh0LCBidXQgaWRlbnRpZnlpbmcK KwkgKiB0aGVtIGFsbG93cyB1cyB0byByYWlzZSBtZWFuaW5nZnVsIGVycm9yIG1lc3NhZ2VzIGxp a2UgInlvdSBjYW5ub3QgdXNlCisJICogc2Vzc2lvbiB2YXJpYWJsZXMgaGVyZSIuCiAJICovCisJ aWYgKGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMocHN0YXRlLT5wX2V4cHJfa2lu ZCkpCisJeworCQlPaWQJCQl2YXJpZCA9IEludmFsaWRPaWQ7CisJCWNoYXIJICAgKmF0dHJuYW1l ID0gTlVMTDsKKwkJYm9vbAkJbm90X3VuaXF1ZTsKKworCQkvKiAtLS0tLQorCQkgKiBTZXNzaW9u IHZhcmlhYmxlcyBhcmUgc2hhZG93ZWQgYnkgY29sdW1ucywgcm91dGluZSB2YXJpYWJsZXMgb3IK KwkJICogcm91dGluZSBhcmd1bWVudHMuICBXZSBjZXJ0YWlubHkgZG9uJ3Qgd2FudCB0byB1c2Ug YSBzZXNzaW9uIHZhcmlhYmxlCisJCSAqIHdoZW4gaXQgaXMgZXhhY3RseSBzaGFkb3dlZCwgYnV0 IGEgUlRFIGxpa2UgdGhpcyBpcyBjb25jZWl2YWJsZToKKwkJICoKKwkJICogQ1JFQVRFIFRZUEUg dCBBUyAoYyBpbnQpOworCQkgKiBDUkVBVEUgVkFSSUFCTEUgZm9vIEFTIHQ7CisJCSAqIENSRUFU RSBUQUJMRSBmb28oYSBpbnQsIGIgaW50KTsKKwkJICoKKwkJICogU0VMRUNUIGZvby5hLCBmb28u YiwgZm9vLmMgRlJPTSBmb287CisJCSAqCisJCSAqIEhvd2V2ZXIsIHRoYXQgaXMgdmVyeSBjb25m dXNpbmcsIHNvIHdlIGRpc2FsbG93IGl0LiAgV2UgZG9uJ3QgdHJ5IHRvCisJCSAqIGlkZW50aWZ5 IGEgdmFyaWFibGUgaWYgd2Uga25vdyB0aGF0IGl0IHdvdWxkIGJlIHNoYWRvd2VkLgorCQkgKiAt LS0tLQorCQkgKi8KKwkJaWYgKCFub2RlICYmICEocmVsbmFtZSAmJiBjcmVyciA9PSBDUkVSUl9O T19DT0xVTU4pKQorCQl7CisJCQkvKiB0YWtlcyBhbiBBY2Nlc3NTaGFyZUxvY2sgb24gdGhlIHNl c3Npb24gdmFyaWFibGUgKi8KKwkJCXZhcmlkID0gSWRlbnRpZnlWYXJpYWJsZShjcmVmLT5maWVs ZHMsICZhdHRybmFtZSwgJm5vdF91bmlxdWUsIGZhbHNlKTsKKworCQkJaWYgKE9pZElzVmFsaWQo dmFyaWQpKQorCQkJeworCQkJCU9pZAkJCXR5cGlkOworCQkJCWludDMyCQl0eXBtb2Q7CisJCQkJ T2lkCQkJY29sbGlkOworCisJCQkJaWYgKG5vdF91bmlxdWUpCisJCQkJCWVyZXBvcnQoRVJST1Is CisJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9BTUJJR1VPVVNfUEFSQU1FVEVSKSwKKwkJCQkJCQkg ZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5jZSBcIiVzXCIgaXMgYW1iaWd1b3VzIiwK KwkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcoY3JlZi0+ZmllbGRzKSksCisJCQkJCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihwc3RhdGUsIGNyZWYtPmxvY2F0aW9uKSkpOworCisJCQkJZ2V0X3Nlc3Np b25fdmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlkKHZhcmlkLCAmdHlwaWQsICZ0eXBtb2QsCisJ CQkJCQkJCQkJCQkJCSZjb2xsaWQpOworCisJCQkJbm9kZSA9IG1ha2VQYXJhbVNlc3Npb25WYXJp YWJsZShwc3RhdGUsCisJCQkJCQkJCQkJCQl2YXJpZCwgdHlwaWQsIHR5cG1vZCwgY29sbGlkLAor CQkJCQkJCQkJCQkJYXR0cm5hbWUsIGNyZWYtPmxvY2F0aW9uKTsKKwkJCX0KKwkJfQorCX0KKwor CS8qIHRocm93IGFuIGVycm9yIGlmIG5vIHRyYW5zbGF0aW9uIHdhcyBmb3VuZCAqLwogCWlmIChu b2RlID09IE5VTEwpCiAJewogCQlzd2l0Y2ggKGNyZXJyKQpAQCAtODgwLDYgKzEwMjQsNzUgQEAg dHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmKQog CXJldHVybiBub2RlOwogfQogCisvKgorICogR2VuZXJhdGUgcGFyYW0gdmFyaWFibGUgZm9yIHJl ZmVyZW5jZSB0byBzZXNzaW9uIHZhcmlhYmxlCisgKi8KK3N0YXRpYyBOb2RlICoKK21ha2VQYXJh bVNlc3Npb25WYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkgT2lkIHZhcmlkLCBP aWQgdHlwaWQsIGludDMyIHR5cG1vZCwgT2lkIGNvbGxpZCwKKwkJCQkJCSBjaGFyICphdHRybmFt ZSwgaW50IGxvY2F0aW9uKQoreworCVBhcmFtCSAgICpwYXJhbTsKKworCXBhcmFtID0gbWFrZU5v ZGUoUGFyYW0pOworCisJcGFyYW0tPnBhcmFta2luZCA9IFBBUkFNX1ZBUklBQkxFOworCXBhcmFt LT5wYXJhbXZhcmlkID0gdmFyaWQ7CisJcGFyYW0tPnBhcmFtdHlwZSA9IHR5cGlkOworCXBhcmFt LT5wYXJhbXR5cG1vZCA9IHR5cG1vZDsKKwlwYXJhbS0+cGFyYW1jb2xsaWQgPSBjb2xsaWQ7CisK Kwlwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcyA9IHRydWU7CisKKwlpZiAoYXR0cm5hbWUg IT0gTlVMTCkKKwl7CisJCVR1cGxlRGVzYwl0dXBkZXNjOworCQlpbnQJCQlpOworCisJCXR1cGRl c2MgPSBsb29rdXBfcm93dHlwZV90dXBkZXNjX25vZXJyb3IodHlwaWQsIHR5cG1vZCwgdHJ1ZSk7 CisJCWlmICghdHVwZGVzYykKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNP REVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCQkgZXJybXNnKCJ2YXJpYWJsZSBcIiVzLiVzXCIg aXMgb2YgdHlwZSBcIiVzXCIsIHdoaWNoIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlIiwKKwkJCQkJ CQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlk KSksCisJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCksCisJCQkJCQkJZm9y bWF0X3R5cGVfYmUodHlwaWQpKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxv Y2F0aW9uKSkpOworCisJCWZvciAoaSA9IDA7IGkgPCB0dXBkZXNjLT5uYXR0czsgaSsrKQorCQl7 CisJCQlGb3JtX3BnX2F0dHJpYnV0ZSBhdHQgPSBUdXBsZURlc2NBdHRyKHR1cGRlc2MsIGkpOwor CisJCQlpZiAoc3RyY21wKGF0dHJuYW1lLCBOYW1lU3RyKGF0dC0+YXR0bmFtZSkpID09IDAgJiYK KwkJCQkhYXR0LT5hdHRpc2Ryb3BwZWQpCisJCQl7CisJCQkJLyogc3VjY2Vzcywgc28gZ2VuZXJh dGUgYSBGaWVsZFNlbGVjdCBleHByZXNzaW9uICovCisJCQkJRmllbGRTZWxlY3QgKmZzZWxlY3Qg PSBtYWtlTm9kZShGaWVsZFNlbGVjdCk7CisKKwkJCQlmc2VsZWN0LT5hcmcgPSAoRXhwciAqKSBw YXJhbTsKKwkJCQlmc2VsZWN0LT5maWVsZG51bSA9IGkgKyAxOworCQkJCWZzZWxlY3QtPnJlc3Vs dHR5cGUgPSBhdHQtPmF0dHR5cGlkOworCQkJCWZzZWxlY3QtPnJlc3VsdHR5cG1vZCA9IGF0dC0+ YXR0dHlwbW9kOworCQkJCS8qIHNhdmUgYXR0cmlidXRlJ3MgY29sbGF0aW9uIGZvciBwYXJzZV9j b2xsYXRlLmMgKi8KKwkJCQlmc2VsZWN0LT5yZXN1bHRjb2xsaWQgPSBhdHQtPmF0dGNvbGxhdGlv bjsKKworCQkJCVJlbGVhc2VUdXBsZURlc2ModHVwZGVzYyk7CisJCQkJcmV0dXJuIChOb2RlICop IGZzZWxlY3Q7CisJCQl9CisJCX0KKworCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVS UkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCisJCQkJIGVycm1zZygiY291bGQgbm90IGlkZW50aWZ5 IGNvbHVtbiBcIiVzXCIgaW4gdmFyaWFibGUgXCIlcy4lc1wiIiwKKwkJCQkJCWF0dHJuYW1lLAor CQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2 YXJpZCkpLAorCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpLAorCQkJCSBw YXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKKwl9CisKKwlyZXR1cm4gKE5v ZGUgKikgcGFyYW07Cit9CisKIHN0YXRpYyBOb2RlICoKIHRyYW5zZm9ybVBhcmFtUmVmKFBhcnNl U3RhdGUgKnBzdGF0ZSwgUGFyYW1SZWYgKnByZWYpCiB7CkBAIC0xODE1LDYgKzIwMjgsNyBAQCB0 cmFuc2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykKIAkJ Y2FzZSBFWFBSX0tJTkRfVkFMVUVTOgogCQljYXNlIEVYUFJfS0lORF9WQUxVRVNfU0lOR0xFOgog CQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgorCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VU OgogCQkJLyogb2theSAqLwogCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NIRUNLX0NPTlNU UkFJTlQ6CkBAIC0xODU4LDYgKzIwNzIsOSBAQCB0cmFuc2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUg KnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykKIAkJY2FzZSBFWFBSX0tJTkRfR0VORVJBVEVEX0NP TFVNTjoKIAkJCWVyciA9IF8oImNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gY29sdW1uIGdlbmVyYXRp b24gZXhwcmVzc2lvbiIpOwogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJH RVQ6CisJCQllcnIgPSBfKCJjYW5ub3QgdXNlIHN1YnF1ZXJ5IGFzIHRhcmdldCBvZiBhc3NpZ24g c3RhdGVtZW50Iik7CisJCQlicmVhazsKIAogCQkJLyoKIAkJCSAqIFRoZXJlIGlzIGludGVudGlv bmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRoZQpAQCAtMzIxNSw2ICszNDMy LDEwIEBAIFBhcnNlRXhwcktpbmROYW1lKFBhcnNlRXhwcktpbmQgZXhwcktpbmQpCiAJCQlyZXR1 cm4gIkdFTkVSQVRFRCBBUyI7CiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJCQlyZXR1 cm4gIkNZQ0xFIjsKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJCXJldHVybiAi QVNTSUdOIjsKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKKwkJCXJldHVybiAiTEVUIjsK IAogCQkJLyoKIAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBo ZXJlLCBzbyB0aGF0IHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1 bmMuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKaW5kZXggNTgzYmJiZjIzMmYu LmRjMjVmNmRjZDBlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5j CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKQEAgLTI2NTYsNiArMjY1Niw4 IEBAIGNoZWNrX3NyZl9jYWxsX3BsYWNlbWVudChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmxh c3Rfc3JmLCBpbnQgbG9jYXRpb24pCiAJCQllcnIgPSBfKCJzZXQtcmV0dXJuaW5nIGZ1bmN0aW9u cyBhcmUgbm90IGFsbG93ZWQgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lvbnMiKTsKIAkJ CWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgorCQljYXNlIEVYUFJfS0lORF9B U1NJR05fVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgogCQkJZXJya2luZCA9 IHRydWU7CiAJCQlicmVhazsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X21lcmdlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYwppbmRleCA1MWQ3NzAz ZWZmNy4uMjQ0ZWZjZGRmMzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9t ZXJnZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJnZS5jCkBAIC00MDUsNiAr NDA1LDcgQEAgdHJhbnNmb3JtTWVyZ2VTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTWVyZ2VTdG10 ICpzdG10KQogCiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gZmFsc2U7CiAJcXJ5LT5oYXNTdWJMaW5r cyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5rczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBw c3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25z KHBzdGF0ZSwgcXJ5KTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMgYi9z cmMvYmFja2VuZC90Y29wL2Rlc3QuYwppbmRleCBiNjIwNzY2YzkzOC4uYjJmNzY0YjY1N2YgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvZGVzdC5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3Av ZGVzdC5jCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiZXhlY3V0b3IvZnVuY3Rpb25zLmgi CiAjaW5jbHVkZSAiZXhlY3V0b3IvdHF1ZXVlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvdHN0b3Jl UmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJleGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oIgogI2lu Y2x1ZGUgImxpYnBxL2xpYnBxLmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQuaCIKIApAQCAt MTU1LDYgKzE1Niw5IEBAIENyZWF0ZURlc3RSZWNlaXZlcihDb21tYW5kRGVzdCBkZXN0KQogCiAJ CWNhc2UgRGVzdEV4cGxhaW5TZXJpYWxpemU6CiAJCQlyZXR1cm4gQ3JlYXRlRXhwbGFpblNlcmlh bGl6ZURlc3RSZWNlaXZlcihOVUxMKTsKKworCQljYXNlIERlc3RWYXJpYWJsZToKKwkJCXJldHVy biBDcmVhdGVWYXJpYWJsZURlc3RSZWNlaXZlcihJbnZhbGlkT2lkKTsKIAl9CiAKIAkvKiBzaG91 bGQgbmV2ZXIgZ2V0IGhlcmUgKi8KQEAgLTE5MSw2ICsxOTUsNyBAQCBFbmRDb21tYW5kKGNvbnN0 IFF1ZXJ5Q29tcGxldGlvbiAqcWMsIENvbW1hbmREZXN0IGRlc3QsIGJvb2wgZm9yY2VfdW5kZWNv cmF0ZWRfbwogCQljYXNlIERlc3RUcmFuc2llbnRSZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVldWU6 CiAJCWNhc2UgRGVzdEV4cGxhaW5TZXJpYWxpemU6CisJCWNhc2UgRGVzdFZhcmlhYmxlOgogCQkJ YnJlYWs7CiAJfQogfQpAQCAtMjM3LDYgKzI0Miw3IEBAIE51bGxDb21tYW5kKENvbW1hbmREZXN0 IGRlc3QpCiAJCWNhc2UgRGVzdFRyYW5zaWVudFJlbDoKIAkJY2FzZSBEZXN0VHVwbGVRdWV1ZToK IAkJY2FzZSBEZXN0RXhwbGFpblNlcmlhbGl6ZToKKwkJY2FzZSBEZXN0VmFyaWFibGU6CiAJCQli cmVhazsKIAl9CiB9CkBAIC0yODEsNiArMjg3LDcgQEAgUmVhZHlGb3JRdWVyeShDb21tYW5kRGVz dCBkZXN0KQogCQljYXNlIERlc3RUcmFuc2llbnRSZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVldWU6 CiAJCWNhc2UgRGVzdEV4cGxhaW5TZXJpYWxpemU6CisJCWNhc2UgRGVzdFZhcmlhYmxlOgogCQkJ YnJlYWs7CiAJfQogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9z cmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwppbmRleCA5OWE1MTg3N2QzNC4uN2E1MDhhMzY0NGYg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5k L3Rjb3AvdXRpbGl0eS5jCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiY29tbWFuZHMvc2No ZW1hY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlY2xhYmVsLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvc2VxdWVuY2UuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5oIgogI2luY2x1ZGUgImNvbW1h bmRzL3RhYmxlY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlc3BhY2UuaCIKQEAgLTIz NSw2ICsyMzYsNyBAQCBDbGFzc2lmeVV0aWxpdHlDb21tYW5kQXNSZWFkT25seShOb2RlICpwYXJz ZXRyZWUpCiAKIAkJY2FzZSBUX0NhbGxTdG10OgogCQljYXNlIFRfRG9TdG10OgorCQljYXNlIFRf TGV0U3RtdDoKIAkJCXsKIAkJCQkvKgogCQkJCSAqIENvbW1hbmRzIGluc2lkZSB0aGUgRE8gYmxv Y2sgb3IgdGhlIGNhbGxlZCBwcm9jZWR1cmUgbWlnaHQKQEAgLTEwNjcsNiArMTA2OSwxMSBAQCBz dGFuZGFyZF9Qcm9jZXNzVXRpbGl0eShQbGFubmVkU3RtdCAqcHN0bXQsCiAJCQkJYnJlYWs7CiAJ CQl9CiAKKwkJY2FzZSBUX0xldFN0bXQ6CisJCQlFeGVjdXRlTGV0U3RtdChwc3RhdGUsIChMZXRT dG10ICopIHBhcnNldHJlZSwgcGFyYW1zLAorCQkJCQkJICAgcXVlcnlFbnYsIHFjKTsKKwkJCWJy ZWFrOworCiAJCWRlZmF1bHQ6CiAJCQkvKiBBbGwgb3RoZXIgc3RhdGVtZW50IHR5cGVzIGhhdmUg ZXZlbnQgdHJpZ2dlciBzdXBwb3J0ICovCiAJCQlQcm9jZXNzVXRpbGl0eVNsb3cocHN0YXRlLCBw c3RtdCwgcXVlcnlTdHJpbmcsCkBAIC0yMjA2LDYgKzIyMTMsMTAgQEAgVXRpbGl0eUNvbnRhaW5z UXVlcnkoTm9kZSAqcGFyc2V0cmVlKQogCQkJCXJldHVybiBVdGlsaXR5Q29udGFpbnNRdWVyeShx cnktPnV0aWxpdHlTdG10KTsKIAkJCXJldHVybiBxcnk7CiAKKwkJY2FzZSBUX0xldFN0bXQ6CisJ CQlxcnkgPSBjYXN0Tm9kZShRdWVyeSwgKChMZXRTdG10ICopIHBhcnNldHJlZSktPnF1ZXJ5KTsK KwkJCXJldHVybiBxcnk7CisKIAkJZGVmYXVsdDoKIAkJCXJldHVybiBOVUxMOwogCX0KQEAgLTI0 MDQsNiArMjQxNSwxMCBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCXRh ZyA9IENNRFRBR19TRUxFQ1Q7CiAJCQlicmVhazsKIAorCQljYXNlIFRfTGV0U3RtdDoKKwkJCXRh ZyA9IENNRFRBR19MRVQ7CisJCQlicmVhazsKKwogCQkJLyogdXRpbGl0eSBzdGF0ZW1lbnRzIC0t LSBzYW1lIHdoZXRoZXIgcmF3IG9yIGNvb2tlZCAqLwogCQljYXNlIFRfVHJhbnNhY3Rpb25TdG10 OgogCQkJewpAQCAtMzI4OSw2ICszMzA0LDcgQEAgR2V0Q29tbWFuZExvZ0xldmVsKE5vZGUgKnBh cnNldHJlZSkKIAkJCWJyZWFrOwogCiAJCWNhc2UgVF9QTEFzc2lnblN0bXQ6CisJCWNhc2UgVF9M ZXRTdG10OgogCQkJbGV2ID0gTE9HU1RNVF9BTEw7CiAJCQlicmVhazsKIApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3J1bGV1dGlscy5jCmluZGV4IDQ2N2IwODE5OGI4Li5mMjNmNTExY2Q1NiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9ydWxldXRpbHMuYwpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdf c3RhdGlzdGljX2V4dC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHJpZ2dlci5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIK ICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNw YWNlLmgiCiAjaW5jbHVkZSAiY29tbW9uL2tleXdvcmRzLmgiCkBAIC01MzQsNiArNTM1LDcgQEAg c3RhdGljIGNoYXIgKmdlbmVyYXRlX2Z1bmN0aW9uX25hbWUoT2lkIGZ1bmNpZCwgaW50IG5hcmdz LAogc3RhdGljIGNoYXIgKmdlbmVyYXRlX29wZXJhdG9yX25hbWUoT2lkIG9wZXJpZCwgT2lkIGFy ZzEsIE9pZCBhcmcyKTsKIHN0YXRpYyB2b2lkIGFkZF9jYXN0X3RvKFN0cmluZ0luZm8gYnVmLCBP aWQgdHlwaWQpOwogc3RhdGljIGNoYXIgKmdlbmVyYXRlX3F1YWxpZmllZF90eXBlX25hbWUoT2lk IHR5cGlkKTsKK3N0YXRpYyBjaGFyICpnZW5lcmF0ZV9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lk IHZhcmlkKTsKIHN0YXRpYyB0ZXh0ICpzdHJpbmdfdG9fdGV4dChjaGFyICpzdHIpOwogc3RhdGlj IGNoYXIgKmZsYXR0ZW5fcmVsb3B0aW9ucyhPaWQgcmVsaWQpOwogc3RhdGljIHZvaWQgZ2V0X3Jl bG9wdGlvbnMoU3RyaW5nSW5mbyBidWYsIERhdHVtIHJlbG9wdGlvbnMpOwpAQCAtODcyOSw2ICs4 NzMxLDE0IEBAIGdldF9wYXJhbWV0ZXIoUGFyYW0gKnBhcmFtLCBkZXBhcnNlX2NvbnRleHQgKmNv bnRleHQpCiAJCXJldHVybjsKIAl9CiAKKwkvKiB0cmFuc2xhdGUgcGFyYW12YXJpZCB0byBzZXNz aW9uIHZhcmlhYmxlIG5hbWUgKi8KKwlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJ QUJMRSkKKwl7CisJCWFwcGVuZFN0cmluZ0luZm8oY29udGV4dC0+YnVmLCAiJXMiLAorCQkJCQkJ IGdlbmVyYXRlX3Nlc3Npb25fdmFyaWFibGVfbmFtZShwYXJhbS0+cGFyYW12YXJpZCkpOworCQly ZXR1cm47CisJfQorCiAJLyoKIAkgKiBBbHRlcm5hdGl2ZWx5LCBtYXliZSBpdCdzIGEgc3VicGxh biBvdXRwdXQsIHdoaWNoIHdlIHByaW50IGFzIGEKIAkgKiByZWZlcmVuY2UgdG8gdGhlIHN1YnBs YW4uICAoV2UgY291bGQgZHJpbGwgZG93biBpbnRvIHRoZSBzdWJwbGFuIGFuZApAQCAtMTM1NTYs NiArMTM1NjYsNDIgQEAgZ2VuZXJhdGVfY29sbGF0aW9uX25hbWUoT2lkIGNvbGxpZCkKIAlyZXR1 cm4gcmVzdWx0OwogfQogCisvKgorICogZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1lCisg KgkJQ29tcHV0ZSB0aGUgbmFtZSB0byBkaXNwbGF5IGZvciBhIHNlc3Npb24gdmFyaWFibGUgc3Bl Y2lmaWVkIGJ5IE9JRAorICoKKyAqIFRoZSByZXN1bHQgaW5jbHVkZXMgYWxsIG5lY2Vzc2FyeSBx dW90aW5nIGFuZCBzY2hlbWEtcHJlZml4aW5nLgorICovCitzdGF0aWMgY2hhciAqCitnZW5lcmF0 ZV9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lkIHZhcmlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJ Rm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCWNoYXIJICAgKnZhcm5hbWU7CisJY2hhcgkgICAq bnNwbmFtZTsKKwljaGFyCSAgICpyZXN1bHQ7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFS SUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNW YWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgdmFyaWFi bGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVD VCh0dXApOworCisJdmFybmFtZSA9IE5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSk7CisKKwlpZiAo IVZhcmlhYmxlSXNWaXNpYmxlKHZhcmlkKSkKKwkJbnNwbmFtZSA9IGdldF9uYW1lc3BhY2VfbmFt ZV9vcl90ZW1wKHZhcmZvcm0tPnZhcm5hbWVzcGFjZSk7CisJZWxzZQorCQluc3BuYW1lID0gTlVM TDsKKworCXJlc3VsdCA9IHF1b3RlX3F1YWxpZmllZF9pZGVudGlmaWVyKG5zcG5hbWUsIHZhcm5h bWUpOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiAv KgogICogR2l2ZW4gYSBDIHN0cmluZywgcHJvZHVjZSBhIFRFWFQgZGF0dW0uCiAgKgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMgYi9zcmMvYmFja2VuZC91 dGlscy9jYWNoZS9wbGFuY2FjaGUuYwppbmRleCA5YmNiYzRjM2U5Ny4uN2M5M2I5YTQ5YjQgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCisrKyBiL3NyYy9i YWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCkBAIC01OCw2ICs1OCw3IEBACiAKICNpbmNs dWRlICJhY2Nlc3MvdHJhbnNhbS5oIgogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCisj aW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1 dG9yLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNz LmgiCkBAIC0xNTQsNiArMTU1LDcgQEAgSW5pdFBsYW5DYWNoZSh2b2lkKQogCUNhY2hlUmVnaXN0 ZXJTeXNjYWNoZUNhbGxiYWNrKEFNT1BPUElELCBQbGFuQ2FjaGVTeXNDYWxsYmFjaywgKERhdHVt KSAwKTsKIAlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhGT1JFSUdOU0VSVkVST0lELCBQ bGFuQ2FjaGVTeXNDYWxsYmFjaywgKERhdHVtKSAwKTsKIAlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVD YWxsYmFjayhGT1JFSUdOREFUQVdSQVBQRVJPSUQsIFBsYW5DYWNoZVN5c0NhbGxiYWNrLCAoRGF0 dW0pIDApOworCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKFZBUklBQkxFT0lELCBQbGFu Q2FjaGVPYmplY3RDYWxsYmFjaywgKERhdHVtKSAwKTsKIH0KIAogLyoKQEAgLTIxNjUsMTcgKzIx NjcsMzIgQEAgU2NhblF1ZXJ5Rm9yTG9ja3MoUXVlcnkgKnBhcnNldHJlZSwgYm9vbCBhY3F1aXJl KQogCiAJLyoKIAkgKiBSZWN1cnNlIGludG8gc3VibGluayBzdWJxdWVyaWVzLCB0b28uICBCdXQg d2UgYWxyZWFkeSBkaWQgdGhlIG9uZXMgaW4KLQkgKiB0aGUgcnRhYmxlIGFuZCBjdGVMaXN0Lgor CSAqIHRoZSBydGFibGUgYW5kIGN0ZUxpc3QuICBXZSBuZWVkIHRvIGZvcmNlIGEgcmVjdXJzaXZl IGNhbGwgZm9yIHNlc3Npb24KKwkgKiB2YXJpYWJsZXMgdG9vLCB0byBmaW5kIGFuZCBsb2NrIHZh cmlhYmxlcyB1c2VkIGluIHRoZSBxdWVyeSAoc2VlCisJICogU2NhblF1ZXJ5V2Fsa2VyKS4KIAkg Ki8KLQlpZiAocGFyc2V0cmVlLT5oYXNTdWJMaW5rcykKKwlpZiAocGFyc2V0cmVlLT5oYXNTdWJM aW5rcyB8fAorCQlwYXJzZXRyZWUtPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJewogCQlxdWVyeV90 cmVlX3dhbGtlcihwYXJzZXRyZWUsIFNjYW5RdWVyeVdhbGtlciwgJmFjcXVpcmUsCiAJCQkJCQkg IFFUV19JR05PUkVfUkNfU1VCUVVFUklFUyk7CiAJfQorCisJLyogcHJvY2VzcyBzZXNzaW9uIHZh cmlhYmxlcyAqLworCWlmIChPaWRJc1ZhbGlkKHBhcnNldHJlZS0+cmVzdWx0VmFyaWFibGUpKQor CXsKKwkJaWYgKGFjcXVpcmUpCisJCQlMb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlv bklkLCBwYXJzZXRyZWUtPnJlc3VsdFZhcmlhYmxlLAorCQkJCQkJCSAgIDAsIEFjY2Vzc1NoYXJl TG9jayk7CisJCWVsc2UKKwkJCVVubG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25J ZCwgcGFyc2V0cmVlLT5yZXN1bHRWYXJpYWJsZSwKKwkJCQkJCQkJIDAsIEFjY2Vzc1NoYXJlTG9j ayk7CisJfQogfQogCiAvKgotICogV2Fsa2VyIHRvIGZpbmQgc3VibGluayBzdWJxdWVyaWVzIGZv ciBTY2FuUXVlcnlGb3JMb2NrcworICogV2Fsa2VyIHRvIGZpbmQgc3VibGluayBzdWJxdWVyaWVz IG9yIHJlZmVyZW5jZWQgc2Vzc2lvbiB2YXJpYWJsZXMKKyAqIGZvciBTY2FuUXVlcnlGb3JMb2Nr cwogICovCiBzdGF0aWMgYm9vbAogU2NhblF1ZXJ5V2Fsa2VyKE5vZGUgKm5vZGUsIGJvb2wgKmFj cXVpcmUpCkBAIC0yMTkwLDYgKzIyMDcsMjAgQEAgU2NhblF1ZXJ5V2Fsa2VyKE5vZGUgKm5vZGUs IGJvb2wgKmFjcXVpcmUpCiAJCVNjYW5RdWVyeUZvckxvY2tzKGNhc3ROb2RlKFF1ZXJ5LCBzdWIt PnN1YnNlbGVjdCksICphY3F1aXJlKTsKIAkJLyogRmFsbCB0aHJvdWdoIHRvIHByb2Nlc3MgbGVm dGhhbmQgYXJncyBvZiBTdWJMaW5rICovCiAJfQorCWVsc2UgaWYgKElzQShub2RlLCBQYXJhbSkp CisJeworCQlQYXJhbQkgICAqcCA9IChQYXJhbSAqKSBub2RlOworCisJCWlmIChwLT5wYXJhbWtp bmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJCXsKKwkJCWlmIChhY3F1aXJlKQorCQkJCUxvY2tEYXRh YmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHAtPnBhcmFtdmFyaWQsCisJCQkJCQkJCSAg IDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQllbHNlCisJCQkJVW5sb2NrRGF0YWJhc2VPYmplY3Qo VmFyaWFibGVSZWxhdGlvbklkLCBwLT5wYXJhbXZhcmlkLAorCQkJCQkJCQkJIDAsIEFjY2Vzc1No YXJlTG9jayk7CisJCX0KKwl9CiAKIAkvKgogCSAqIERvIE5PVCByZWN1cnNlIGludG8gUXVlcnkg bm9kZXMsIGJlY2F1c2UgU2NhblF1ZXJ5Rm9yTG9ja3MgYWxyZWFkeQpAQCAtMjMyMCw3ICsyMzUx LDkgQEAgUGxhbkNhY2hlUmVsQ2FsbGJhY2soRGF0dW0gYXJnLCBPaWQgcmVsaWQpCiAKIC8qCiAg KiBQbGFuQ2FjaGVPYmplY3RDYWxsYmFjawotICoJCVN5c2NhY2hlIGludmFsIGNhbGxiYWNrIGZ1 bmN0aW9uIGZvciBQUk9DT0lEIGFuZCBUWVBFT0lEIGNhY2hlcworICoJCVN5c2NhY2hlIGludmFs IGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBUWVBFT0lELCBQUk9DT0lELCBOQU1FU1BBQ0VPSUQsCisg KgkJT1BFUk9JRCwgQU1PUE9QSUQsIEZPUkVJR05TRVJWRVJPSUQsIEZPUkVJR05EQVRBV1JBUFBF Uk9JRCBhbmQKKyAqCQlWQVJJQUJMRU9JRCBjYWNoZXMuCiAgKgogICogSW52YWxpZGF0ZSBhbGwg cGxhbnMgbWVudGlvbmluZyB0aGUgb2JqZWN0IHdpdGggdGhlIHNwZWNpZmllZCBoYXNoIHZhbHVl LAogICogb3IgYWxsIHBsYW5zIG1lbnRpb25pbmcgYW55IG1lbWJlciBvZiB0aGlzIGNhY2hlIGlm IGhhc2h2YWx1ZSA9PSAwLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdy LmMgYi9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYwppbmRleCA3ODIyOTFkOTk5OC4uMDkz NjIyZmJkYzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCkBAIC0yMDI2LDkgKzIwMjYsMTMgQEAgZ2V0 X2NhbGxfZXhwcl9hcmdfc3RhYmxlKE5vZGUgKmV4cHIsIGludCBhcmdudW0pCiAJICovCiAJaWYg KElzQShhcmcsIENvbnN0KSkKIAkJcmV0dXJuIHRydWU7Ci0JaWYgKElzQShhcmcsIFBhcmFtKSAm JgotCQkoKFBhcmFtICopIGFyZyktPnBhcmFta2luZCA9PSBQQVJBTV9FWFRFUk4pCi0JCXJldHVy biB0cnVlOworCWlmIChJc0EoYXJnLCBQYXJhbSkpCisJeworCQlQYXJhbQkgICAqcCA9IChQYXJh bSAqKSBhcmc7CisKKwkJaWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9FWFRFUk4gfHwgcC0+cGFy YW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQkJcmV0dXJuIHRydWU7CisJfQogCiAJcmV0dXJu IGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIv c3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDdmZTE5YTU2OGYxLi4zOWQxYjZh YTYxMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3Ny Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMTIyOCw4ICsxMjI4LDggQEAgc3RhdGlj IGNvbnN0IGNoYXIgKmNvbnN0IHNxbF9jb21tYW5kc1tdID0gewogCSJBQk9SVCIsICJBTFRFUiIs ICJBTkFMWVpFIiwgIkJFR0lOIiwgIkNBTEwiLCAiQ0hFQ0tQT0lOVCIsICJDTE9TRSIsICJDTFVT VEVSIiwKIAkiQ09NTUVOVCIsICJDT01NSVQiLCAiQ09QWSIsICJDUkVBVEUiLCAiREVBTExPQ0FU RSIsICJERUNMQVJFIiwKIAkiREVMRVRFIEZST00iLCAiRElTQ0FSRCIsICJETyIsICJEUk9QIiwg IkVORCIsICJFWEVDVVRFIiwgIkVYUExBSU4iLAotCSJGRVRDSCIsICJHUkFOVCIsICJJTVBPUlQg Rk9SRUlHTiBTQ0hFTUEiLCAiSU5TRVJUIElOVE8iLCAiTElTVEVOIiwgIkxPQUQiLCAiTE9DSyIs Ci0JIk1FUkdFIElOVE8iLCAiTU9WRSIsICJOT1RJRlkiLCAiUFJFUEFSRSIsCisJIkZFVENIIiwg IkdSQU5UIiwgIklNUE9SVCBGT1JFSUdOIFNDSEVNQSIsICJJTlNFUlQgSU5UTyIsICJMRVQiLAor CSJMSVNURU4iLCAiTE9BRCIsICJMT0NLIiwgIk1FUkdFIElOVE8iLCAiTU9WRSIsICJOT1RJRlki LCAiUFJFUEFSRSIsCiAJIlJFQVNTSUdOIiwgIlJFRlJFU0ggTUFURVJJQUxJWkVEIFZJRVciLCAi UkVJTkRFWCIsICJSRUxFQVNFIiwKIAkiUkVTRVQiLCAiUkVWT0tFIiwgIlJPTExCQUNLIiwKIAki U0FWRVBPSU5UIiwgIlNFQ1VSSVRZIExBQkVMIiwgIlNFTEVDVCIsICJTRVQiLCAiU0hPVyIsICJT VEFSVCIsCkBAIC00NzAxLDYgKzQ3MDEsMTQgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBh dHRlcm5faWQsCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlZBTFVFUyIpICYmICFUYWlsTWF0Y2hl cygiREVGQVVMVCIsICJWQUxVRVMiKSkKIAkJQ09NUExFVEVfV0lUSCgiKCIpOwogCisvKiBMRVQg Ki8KKwkvKiBJZiBwcmV2LiB3b3JkIGlzIExFVCBzdWdnZXN0IGEgbGlzdCBvZiB2YXJpYWJsZXMg Ki8KKwllbHNlIGlmIChNYXRjaGVzKCJMRVQiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVF UlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzKTsKKwkvKiBDb21wbGV0ZSBMRVQgPHZhcmlh YmxlPiB3aXRoICI9IiAqLworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJMRVQiLCBNYXRjaEFueSkp CisJCUNPTVBMRVRFX1dJVEgoIj0iKTsKKwogLyogTE9DSyAqLwogCS8qIENvbXBsZXRlIExPQ0sg W1RBQkxFXSBbT05MWV0gd2l0aCBhIGxpc3Qgb2YgdGFibGVzICovCiAJZWxzZSBpZiAoTWF0Y2hl cygiTE9DSyIpKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKaW5kZXggYmRhYzBjMTNiZWMuLjUwNjBi OGM5NDkwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCisrKyBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKQEAgLTE3NCw2ICsxNzQsNyBAQCBleHRl cm4gYm9vbCBTZWFyY2hQYXRoTWF0Y2hlc0N1cnJlbnRFbnZpcm9ubWVudChTZWFyY2hQYXRoTWF0 Y2hlciAqcGF0aCk7CiBleHRlcm4gTGlzdCAqTmFtZXNGcm9tTGlzdChMaXN0ICpuYW1lcyk7CiBl eHRlcm4gT2lkCUxvb2t1cFZhcmlhYmxlKGNvbnN0IGNoYXIgKm5zcG5hbWUsIGNvbnN0IGNoYXIg KnZhcm5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCUxvb2t1cFZhcmlhYmxlRnJv bU5hbWVMaXN0KExpc3QgKm5hbWVzLCBib29sIG1pc3Npbmdfb2spOworZXh0ZXJuIE9pZAlJZGVu dGlmeVZhcmlhYmxlKExpc3QgKm5hbWVzLCBjaGFyICoqYXR0cm5hbWUsIGJvb2wgKm5vdF91bmlx dWUsIGJvb2wgbm9lcnJvcik7CiAKIGV4dGVybiBPaWQJZ2V0X2NvbGxhdGlvbl9vaWQoTGlzdCAq Y29sbG5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCWdldF9jb252ZXJzaW9uX29p ZChMaXN0ICpjb25uYW1lLCBib29sIG1pc3Npbmdfb2spOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJs ZS5oCmluZGV4IDNkM2M2ZWIyNGI1Li41YjQ1YmU1YWZhZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFy aWFibGUuaApAQCAtMTgsNiArMTgsNyBAQAogI2lmbmRlZiBQR19WQVJJQUJMRV9ICiAjZGVmaW5l IFBHX1ZBUklBQkxFX0gKIAorI2luY2x1ZGUgImFjY2Vzcy94bG9nZGVmcy5oIgogI2luY2x1ZGUg ImNhdGFsb2cvZ2VuYmtpLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhZGRyZXNzLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZV9kLmgiCkBAIC0zNSw2ICszNiwxNCBAQCBDQVRB TE9HKHBnX3ZhcmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQogCS8qIE9JRCBvZiBlbnRy eSBpbiBwZ190eXBlIGZvciB2YXJpYWJsZSdzIHR5cGUgKi8KIAlPaWQJCQl2YXJ0eXBlIEJLSV9M T09LVVAocGdfdHlwZSk7CiAKKwkvKgorCSAqIFVzZWQgZm9yIGlkZW50aXR5IGNoZWNrIFtvaWQs IGNyZWF0ZV9sc25dLgorCSAqCisJICogVGhpcyBjb2x1bW4gb2YgdGhlIDgtYnl0ZSBYbG9nUmVj UHRyIHR5cGUgc2hvdWxkIGJlIGF0IGFuIGFkZHJlc3MgdGhhdAorCSAqIGlzIGRpdmlzaWJsZSBi eSA4LCBidXQgYmVmb3JlIGFueSBjb2x1bW4gb2YgdHlwZSBOYW1lRGF0YS4KKwkgKi8KKwlYTG9n UmVjUHRyCXZhcmNyZWF0ZV9sc247CisKIAkvKiB2YXJpYWJsZSBuYW1lICovCiAJTmFtZURhdGEJ dmFybmFtZTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMzkxYjlhZDQ0MwotLS0gL2Rldi9udWxs CisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMCwwICsx LDMwIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBzZXNzaW9udmFyaWFibGUuaAorICoJ ICBwcm90b3R5cGVzIGZvciBzZXNzaW9udmFyaWFibGUuYy4KKyAqCisgKgorICogUG9ydGlvbnMg Q29weXJpZ2h0IChjKSAxOTk2LTIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdy b3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZl cnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuaAorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpZm5kZWYgU0VTU0lP TlZBUklBQkxFX0gKKyNkZWZpbmUgU0VTU0lPTlZBUklBQkxFX0gKKworI2luY2x1ZGUgIm5vZGVz L3BhcmFtcy5oIgorI2luY2x1ZGUgIm5vZGVzL3BhcnNlbm9kZXMuaCIKKyNpbmNsdWRlICJwYXJz ZXIvcGFyc2Vfbm9kZS5oIgorI2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCisjaW5jbHVkZSAidXRp bHMvcXVlcnllbnZpcm9ubWVudC5oIgorCitleHRlcm4gdm9pZCBTZXRTZXNzaW9uVmFyaWFibGUo T2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpOworZXh0ZXJuIERhdHVtIEdldFNl c3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCk7CisKK2V4dGVybiB2b2lkIEV4 ZWN1dGVMZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCwgUGFyYW1MaXN0 SW5mbyBwYXJhbXMsCisJCQkJCQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudiwgUXVlcnlD b21wbGV0aW9uICpxYyk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0 b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJl Y2VpdmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmRiNDRkOGI5 NGM2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVj ZWl2ZXIuaApAQCAtMCwwICsxLDIyIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBzdmFy aWFibGVSZWNlaXZlci5oCisgKgkgIHByb3RvdHlwZXMgZm9yIHN2YXJpYWJsZVJlY2VpdmVyLmMK KyAqCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQsIFBvc3RncmVTUUwg R2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQs IFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNs dWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqLworCisjaWZuZGVmIFNWQVJJQUJMRV9SRUNFSVZFUl9ICisjZGVmaW5lIFNWQVJJQUJMRV9S RUNFSVZFUl9ICisKKyNpbmNsdWRlICJ0Y29wL2Rlc3QuaCIKKworZXh0ZXJuIERlc3RSZWNlaXZl ciAqQ3JlYXRlVmFyaWFibGVEZXN0UmVjZWl2ZXIoT2lkIHZhcmlkKTsKKworI2VuZGlmCQkJCQkJ CS8qIFNWQVJJQUJMRV9SRUNFSVZFUl9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rl cy9leGVjbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCmluZGV4IDViNmNh ZGI1YTZjLi43OWMwNzMyYWFkNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25v ZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKQEAgLTY0Miw2ICs2NDIs MTYgQEAgdHlwZWRlZiBzdHJ1Y3QgQXN5bmNSZXF1ZXN0CiAJCQkJCQkJCSAqIHR1cGxlcykgKi8K IH0gQXN5bmNSZXF1ZXN0OwogCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKiBTZXNzaW9uVmFyaWFi bGVWYWx1ZQorICogLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBTZXNzaW9u VmFyaWFibGVWYWx1ZQoreworCWJvb2wJCWlzbnVsbDsKKwlEYXR1bQkJdmFsdWU7Cit9IFNlc3Np b25WYXJpYWJsZVZhbHVlOworCiAvKiAtLS0tLS0tLS0tLS0tLS0tCiAgKgkgIEVTdGF0ZSBpbmZv cm1hdGlvbgogICoKQEAgLTcwMiw2ICs3MTIsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgRVN0YXRlCiAJ UGFyYW1MaXN0SW5mbyBlc19wYXJhbV9saXN0X2luZm87CS8qIHZhbHVlcyBvZiBleHRlcm5hbCBw YXJhbXMgKi8KIAlQYXJhbUV4ZWNEYXRhICplc19wYXJhbV9leGVjX3ZhbHM7CS8qIHZhbHVlcyBv ZiBpbnRlcm5hbCBwYXJhbXMgKi8KIAorCS8qIFNlc3Npb24gdmFyaWFibGVzIGluZm86ICovCisJ aW50CQkJZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzOwkJLyogbnVtYmVyIG9mIHVzZWQgdmFyaWFi bGVzICovCisJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKmVzX3Nlc3Npb25fdmFyaWFibGVzOwkvKiBh cnJheSBvZiBjb3BpZXMgb2YgdmFsdWVzICovCisKIAlRdWVyeUVudmlyb25tZW50ICplc19xdWVy eUVudjsJLyogcXVlcnkgZW52aXJvbm1lbnQgKi8KIAogCS8qIE90aGVyIHdvcmtpbmcgc3RhdGU6 ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggYWU0YjZhMzg2MmMuLjhmODc0YTA4ZDI5IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0xNDIsNiArMTQyLDkgQEAgdHlwZWRlZiBzdHJ1Y3Qg UXVlcnkKIAkgKi8KIAlpbnQJCQlyZXN1bHRSZWxhdGlvbiBwZ19ub2RlX2F0dHIocXVlcnlfanVt YmxlX2lnbm9yZSk7CiAKKwkvKiB0YXJnZXQgdmFyaWFibGUgb2YgTEVUIHN0YXRlbWVudCAqLwor CU9pZAkJCXJlc3VsdFZhcmlhYmxlOworCiAJLyogaGFzIGFnZ3JlZ2F0ZXMgaW4gdGxpc3Qgb3Ig aGF2aW5nUXVhbCAqLwogCWJvb2wJCWhhc0FnZ3MgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9p Z25vcmUpOwogCS8qIGhhcyB3aW5kb3cgZnVuY3Rpb25zIGluIHRsaXN0ICovCkBAIC0xNjIsNiAr MTY1LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUXVlcnkKIAlib29sCQloYXNSb3dTZWN1cml0eSBwZ19u b2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogcGFyc2VyIGhhcyBhZGRlZCBhbiBS VEVfR1JPVVAgUlRFICovCiAJYm9vbAkJaGFzR3JvdXBSVEUgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1 bWJsZV9pZ25vcmUpOworCS8qIHVzZXMgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwlib29sCQloYXNT ZXNzaW9uVmFyaWFibGVzIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIAkvKiBp cyBhIFJFVFVSTiBzdGF0ZW1lbnQgKi8KIAlib29sCQlpc1JldHVybiBwZ19ub2RlX2F0dHIocXVl cnlfanVtYmxlX2lnbm9yZSk7CiAKQEAgLTIxNDksNiArMjE1NCwxOCBAQCB0eXBlZGVmIHN0cnVj dCBNZXJnZVN0bXQKIAlQYXJzZUxvYwlzdG10X2xlbjsJCS8qIGxlbmd0aCBpbiBieXRlczsgMCBt ZWFucyAicmVzdCBvZiBzdHJpbmciICovCiB9IE1lcmdlU3RtdDsKIAorLyogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICoJCUxldCBTdGF0ZW1lbnQKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqLwordHlwZWRlZiBzdHJ1Y3QgTGV0U3RtdAoreworCU5vZGVUYWcJCXR5cGU7CisJTGlzdAkg ICAqdGFyZ2V0OwkJCS8qIHRhcmdldCB2YXJpYWJsZSAqLworCU5vZGUJICAgKnF1ZXJ5OwkJCS8q IHNvdXJjZSBleHByZXNzaW9uICovCisJUGFyc2VMb2MJbG9jYXRpb247Cit9IExldFN0bXQ7CisK IC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCQlTZWxlY3QgU3RhdGVtZW50CiAgKgpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rl cy9wYXRobm9kZXMuaAppbmRleCAxZGQyZDE1NjBjYi4uYmVjMDg3Y2I5MTUgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3Bh dGhub2Rlcy5oCkBAIC0xODIsNiArMTgyLDE4IEBAIHR5cGVkZWYgc3RydWN0IFBsYW5uZXJHbG9i YWwKIAogCS8qIHBhcnRpdGlvbiBkZXNjcmlwdG9ycyAqLwogCVBhcnRpdGlvbkRpcmVjdG9yeSBw YXJ0aXRpb25fZGlyZWN0b3J5IHBnX25vZGVfYXR0cihyZWFkX3dyaXRlX2lnbm9yZSk7CisKKwkv KiBsaXN0IG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwlMaXN0CSAgICpzZXNzaW9uVmFy aWFibGVzOworCisJLyogT2lkIG9mIHNlc3Npb24gdmFyaWFibGUgdXNlZCBsaWtlIHRhcmdldCBv ZiBMRVQgY29tbWFuZCAqLworCU9pZAkJCXJlc3VsdFZhcmlhYmxlOworCisJLyogb2lkIG9mIHNl c3Npb24gdmFyaWFibGUgdXNlZCBsaWtlIGJhc2Ugbm9kZSBmb3IgYXNzaWdubWVudCBpbmRpcmVj dGlvbiAqLworCU9pZAkJCWJhc2Vub2RlU2Vzc2lvblZhcmlkOworCisJLyogdHJ1ZSwgaWYgd2Ug ZG8gU0VMRUNUIHBlcm1pc3Npb24gY2hlY2sgb24gYmFzZW5vZGVTZXNzaW9uVmFyaWQgKi8KKwli b29sCQliYXNlbm9kZVNlc3Npb25WYXJTZWxlY3RDaGVjazsKIH0gUGxhbm5lckdsb2JhbDsKIAog LyogbWFjcm8gZm9yIGZldGNoaW5nIHRoZSBQbGFuIGFzc29jaWF0ZWQgd2l0aCBhIFN1YlBsYW4g bm9kZSAqLwpAQCAtNTMyLDYgKzU0NCw4IEBAIHN0cnVjdCBQbGFubmVySW5mbwogCWJvb2wJCXBs YWNlaG9sZGVyc0Zyb3plbjsKIAkvKiB0cnVlIGlmIHBsYW5uaW5nIGEgcmVjdXJzaXZlIFdJVEgg aXRlbSAqLwogCWJvb2wJCWhhc1JlY3Vyc2lvbjsKKwkvKiB0cnVlIGlmIHNlc3Npb24gdmFyaWFi bGVzIHdlcmUgdXNlZCAqLworCWJvb2wJCWhhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAkvKgogCSAq IFRoZSByYW5nZXRhYmxlIGluZGV4IGZvciB0aGUgUlRFX0dST1VQIFJURSwgb3IgMCBpZiB0aGVy ZSBpcyBubwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmggYi9zcmMv aW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAppbmRleCA2NThkNzYyMjVlNC4uNDkyYjlkOTdlNWMg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCisrKyBiL3NyYy9pbmNs dWRlL25vZGVzL3BsYW5ub2Rlcy5oCkBAIC0xMzgsNiArMTM4LDE1IEBAIHR5cGVkZWYgc3RydWN0 IFBsYW5uZWRTdG10CiAJLyogbm9uLW51bGwgaWYgdGhpcyBpcyB1dGlsaXR5IHN0bXQgKi8KIAlO b2RlCSAgICp1dGlsaXR5U3RtdDsKIAorCUxpc3QJICAgKnNlc3Npb25WYXJpYWJsZXM7CS8qIE9J RHMgZm9yIFBBUkFNX1ZBUklBQkxFIFBhcmFtcyAqLworCisJLyoKKwkgKiBUaGUgb2lkIG9mIHNl c3Npb24gdmFyaWFibGUgZXhlY2x1ZGVkIGZyb20gcGVybWlzc2lvbiBjaGVjay4KKwkgKiBUaGlz IHNlc3Npb24gdmFyaWFibGUgaXMgdXNlZCBhcyBiYXNlIG5vZGUgb2YgYXNzaWdubWVudCBpbmRp cmVjdGlvbgorCSAqIChhbmQgaXQgaXMgdXNlZCBvbmx5IHRoZXJlKS4KKwkgKi8KKwlpbnQJCQll eGNsU2VsZWN0UGVybUNoZWNrVmFyaWQ7CisKIAkvKiBzdGF0ZW1lbnQgbG9jYXRpb24gaW4gc291 cmNlIHN0cmluZyAoY29waWVkIGZyb20gUXVlcnkpICovCiAJLyogc3RhcnQgbG9jYXRpb24sIG9y IC0xIGlmIHVua25vd24gKi8KIAlQYXJzZUxvYwlzdG10X2xvY2F0aW9uOwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9k ZXMuaAppbmRleCA3ZDNiNDE5OGYyNi4uM2NjMmYwMTlhYmIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL25vZGVzL3ByaW1ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5o CkBAIC0zNzgsNiArMzc4LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgQ29uc3QKICAqCQkJCW9mIHRoZSBg cGFyYW1pZCcgZmllbGQgY29udGFpbiB0aGUgU3ViTGluaydzIHN1YkxpbmtJZCwgYW5kCiAgKgkJ CQl0aGUgbG93LW9yZGVyIDE2IGJpdHMgY29udGFpbiB0aGUgY29sdW1uIG51bWJlci4gIChUaGlz IHR5cGUKICAqCQkJCW9mIFBhcmFtIGlzIGFsc28gY29udmVydGVkIHRvIFBBUkFNX0VYRUMgZHVy aW5nIHBsYW5uaW5nLikKKyAqCisgKgkJUEFSQU1fVkFSSUFCTEU6ICBUaGUgcGFyYW1ldGVyIGlz IGEgcmVmZXJlbmNlIHRvIGEgc2Vzc2lvbiB2YXJpYWJsZQorICoJCQkJKHBhcmFtdmFyaWQgaG9s ZHMgdGhlIHZhcmlhYmxlJ3MgT0lEKS4KICAqLwogdHlwZWRlZiBlbnVtIFBhcmFtS2luZAogewpA QCAtMzg1LDYgKzM4OCw3IEBAIHR5cGVkZWYgZW51bSBQYXJhbUtpbmQKIAlQQVJBTV9FWEVDLAog CVBBUkFNX1NVQkxJTkssCiAJUEFSQU1fTVVMVElFWFBSLAorCVBBUkFNX1ZBUklBQkxFLAogfSBQ YXJhbUtpbmQ7CiAKIHR5cGVkZWYgc3RydWN0IFBhcmFtCkBAIC0zOTcsNiArNDAxLDE2IEBAIHR5 cGVkZWYgc3RydWN0IFBhcmFtCiAJaW50MzIJCXBhcmFtdHlwbW9kIHBnX25vZGVfYXR0cihxdWVy eV9qdW1ibGVfaWdub3JlKTsKIAkvKiBPSUQgb2YgY29sbGF0aW9uLCBvciBJbnZhbGlkT2lkIGlm IG5vbmUgKi8KIAlPaWQJCQlwYXJhbWNvbGxpZCBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2ln bm9yZSk7CisJLyogT0lEIG9mIHNlc3Npb24gdmFyaWFibGUgaWYgaXQgaXMgdXNlZCAqLworCU9p ZAkJCXBhcmFtdmFyaWQgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOworCisJLyoK KwkgKiB0cnVlIGlmIHBhcmFtIGlzIHVzZWQgYXMgYmFzZSBub2RlIG9mIGFzc2lnbm1lbnQgaW5k aXJlY3Rpb24KKwkgKiAod2hlbiB0YXJnZXQgb2YgTEVUIHN0YXRlbWVudCBpcyBhbiBhcnJheSBm aWVsZCBvciBhbiByZWNvcmQgZmllbGQpLgorCSAqIEZvciB0aGlzIHBhcmFtIHdlIGRvIG5vdCBj aGVjayBTRUxFQ1QgYWNjZXNzIHJpZ2h0LCBiZWNhdXNlIHRoaXMKKwkgKiBwYXJhbSBpcyB1c2Vk IGp1c3QgZm9yIGV4ZWN1dGlvbiBvZiBVUERBVEUgb3BlcmF0aW9uLgorCSAqLworCWJvb2wJCXBh cmFtYmFzZW5vZGU7CiAJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KIAlQ YXJzZUxvYwlsb2NhdGlvbjsKIH0gUGFyYW07CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9vcHRp bWl6ZXIvcGxhbm1haW4uaCBiL3NyYy9pbmNsdWRlL29wdGltaXplci9wbGFubWFpbi5oCmluZGV4 IDlkM2RlYmNhYjI4Li5iYTQzMDVkNjFhNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvb3B0aW1p emVyL3BsYW5tYWluLmgKKysrIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmgKQEAg LTEzMSw0ICsxMzEsNiBAQCBleHRlcm4gdm9pZCByZWNvcmRfcGxhbl9mdW5jdGlvbl9kZXBlbmRl bmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgZnVuY2lkKTsKIGV4dGVybiB2b2lkIHJlY29yZF9w bGFuX3R5cGVfZGVwZW5kZW5jeShQbGFubmVySW5mbyAqcm9vdCwgT2lkIHR5cGlkKTsKIGV4dGVy biBib29sIGV4dHJhY3RfcXVlcnlfZGVwZW5kZW5jaWVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFu bmVySW5mbyAqY29udGV4dCk7CiAKK2V4dGVybiB2b2lkIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFy aWFibGVzKFBsYW5uZXJJbmZvICpyb290KTsKKwogI2VuZGlmCQkJCQkJCS8qIFBMQU5NQUlOX0gg Ki8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRl L3BhcnNlci9rd2xpc3QuaAppbmRleCAwZWEwMjY1ZGU3Yy4uOGMwYWZmYmExM2IgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIv a3dsaXN0LmgKQEAgLTI1Nyw2ICsyNTcsNyBAQCBQR19LRVlXT1JEKCJsZWFkaW5nIiwgTEVBRElO RywgUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxlYWtwcm9vZiIs IExFQUtQUk9PRiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi bGVhc3QiLCBMRUFTVCwgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQo ImxlZnQiLCBMRUZULCBUWVBFX0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZ V09SRCgibGV0IiwgTEVULCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlX T1JEKCJsZXZlbCIsIExFVkVMLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19L RVlXT1JEKCJsaWtlIiwgTElLRSwgVFlQRV9GVU5DX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkK IFBHX0tFWVdPUkQoImxpbWl0IiwgTElNSVQsIFJFU0VSVkVEX0tFWVdPUkQsIEFTX0xBQkVMKQpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBiL3NyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV9ub2RlLmgKaW5kZXggOTk0Mjg0MDE5ZmIuLjBiN2I2OWE0MTU5IDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV9ub2RlLmgKQEAgLTgyLDYgKzgyLDggQEAgdHlwZWRlZiBlbnVtIFBhcnNl RXhwcktpbmQKIAlFWFBSX0tJTkRfQ09QWV9XSEVSRSwJCS8qIFdIRVJFIGNvbmRpdGlvbiBpbiBD T1BZIEZST00gKi8KIAlFWFBSX0tJTkRfR0VORVJBVEVEX0NPTFVNTiwgLyogZ2VuZXJhdGlvbiBl eHByZXNzaW9uIGZvciBhIGNvbHVtbiAqLwogCUVYUFJfS0lORF9DWUNMRV9NQVJLLAkJLyogY3lj bGUgbWFyayB2YWx1ZSAqLworCUVYUFJfS0lORF9BU1NJR05fVEFSR0VULAkvKiBQTC9wZ1NRTCBh c3NpZ25tZW50IHRhcmdldCAqLworCUVYUFJfS0lORF9MRVRfVEFSR0VULAkJLyogTEVUIHRhcmdl dCAqLwogfSBQYXJzZUV4cHJLaW5kOwogCiAKQEAgLTI0NCw2ICsyNDYsNyBAQCBzdHJ1Y3QgUGFy c2VTdGF0ZQogCWJvb2wJCXBfaGFzVGFyZ2V0U1JGczsKIAlib29sCQlwX2hhc1N1YkxpbmtzOwog CWJvb2wJCXBfaGFzTW9kaWZ5aW5nQ1RFOworCWJvb2wJCXBfaGFzU2Vzc2lvblZhcmlhYmxlczsK IAogCU5vZGUJICAgKnBfbGFzdF9zcmY7CQkvKiBtb3N0IHJlY2VudCBzZXQtcmV0dXJuaW5nIGZ1 bmMvb3AgZm91bmQgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0 LmggYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAppbmRleCBlYTg2OTU0ZGRlZC4uMjIw ODJjMzAwMDggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBi L3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCkBAIC0xODYsNiArMTg2LDcgQEAgUEdfQ01E VEFHKENNRFRBR19HUkFOVCwgIkdSQU5UIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFH KENNRFRBR19HUkFOVF9ST0xFLCAiR1JBTlQgUk9MRSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQ R19DTURUQUcoQ01EVEFHX0lNUE9SVF9GT1JFSUdOX1NDSEVNQSwgIklNUE9SVCBGT1JFSUdOIFND SEVNQSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfSU5TRVJULCAiSU5T RVJUIiwgZmFsc2UsIGZhbHNlLCB0cnVlKQorUEdfQ01EVEFHKENNRFRBR19MRVQsICJMRVQiLCBm YWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19MSVNURU4sICJMSVNURU4iLCBm YWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19MT0FELCAiTE9BRCIsIGZhbHNl LCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0xPQ0tfVEFCTEUsICJMT0NLIFRBQkxF IiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvZGVz dC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmgKaW5kZXggMDBjMDkyZTNkN2MuLjZjZTNlYTBl NjE3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS90Y29wL2Rlc3QuaAorKysgYi9zcmMvaW5jbHVk ZS90Y29wL2Rlc3QuaApAQCAtOTcsNiArOTcsNyBAQCB0eXBlZGVmIGVudW0KIAlEZXN0VHJhbnNp ZW50UmVsLAkJCS8qIHJlc3VsdHMgc2VudCB0byB0cmFuc2llbnQgcmVsYXRpb24gKi8KIAlEZXN0 VHVwbGVRdWV1ZSwJCQkJLyogcmVzdWx0cyBzZW50IHRvIHR1cGxlIHF1ZXVlICovCiAJRGVzdEV4 cGxhaW5TZXJpYWxpemUsCQkvKiByZXN1bHRzIGFyZSBzZXJpYWxpemVkIGFuZCBkaXNjYXJkZWQg Ki8KKwlEZXN0VmFyaWFibGUsCQkJCS8qIHJlc3VsdHMgc2VudCB0byBzZXNzaW9uIHZhcmlhYmxl ICovCiB9IENvbW1hbmREZXN0OwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9z cmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMu YwppbmRleCBiYjk5NzgxYzU2ZS4uMWNmZjVlZmE2ZjcgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBn c3FsL3NyYy9wbF9leGVjLmMKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwpAQCAt ODI2NCw3ICs4MjY0LDggQEAgZXhlY19pc19zaW1wbGVfcXVlcnkoUExwZ1NRTF9leHByICpleHBy KQogCQlxdWVyeS0+c29ydENsYXVzZSB8fAogCQlxdWVyeS0+bGltaXRPZmZzZXQgfHwKIAkJcXVl cnktPmxpbWl0Q291bnQgfHwKLQkJcXVlcnktPnNldE9wZXJhdGlvbnMpCisJCXF1ZXJ5LT5zZXRP cGVyYXRpb25zIHx8CisJCXF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzKQogCQlyZXR1cm4gZmFs c2U7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFi bGVzLm91dAppbmRleCBjMzY2NjBjZTZkMy4uZjIyNDY3MTg2ZTMgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC00MzEsMyArNDMxLDEy MzUgQEAgRFJPUCBWQVJJQUJMRSBwdWJsaWMudmFyMTsKIERST1AgUk9MRSByZWdyZXNzX3Zhcmlh YmxlX3IxOwogRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CiBEUk9QIFJPTEUgcmVncmVz c192YXJpYWJsZV9vd25lcjsKKy0tIGNoZWNrIGFjY2VzcyByaWdodHMKK0NSRUFURSBST0xFIHJl Z3Jlc3Nfbm9vd25lcjsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBPUiBS RVBMQUNFIEZVTkNUSU9OIHNxbGZ4KGludCkKK1JFVFVSTlMgaW50IEFTICQkIFNFTEVDVCAkMSAr IHZhcjEgJCQgTEFOR1VBR0Ugc3FsOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZnhf c2QoaW50KQorUkVUVVJOUyBpbnQgQVMgJCQgU0VMRUNUICQxICsgdmFyMSAkJCBMQU5HVUFHRSBz cWwgU0VDVVJJVFkgREVGSU5FUjsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHBscGdzcWxm eChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBCRUdJTiBSRVRVUk4gJDEgKyB2YXIxOyBFTkQgJCQg TEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHBscGdzcWxmeF9z ZChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBCRUdJTiBSRVRVUk4gJDEgKyB2YXIxOyBFTkQgJCQg TEFOR1VBR0UgcGxwZ3NxbCBTRUNVUklUWSBERUZJTkVSOworTEVUIHZhcjEgPSAxMDsKKy0tIHNo b3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykK KworU0VMRUNUIHNxbGZ4KDIwKTsKKyBzcWxmeCAKKy0tLS0tLS0KKyAgICAzMAorKDEgcm93KQor CitTRUxFQ1Qgc3FsZnhfc2QoMjApOworIHNxbGZ4X3NkIAorLS0tLS0tLS0tLQorICAgICAgIDMw CisoMSByb3cpCisKK1NFTEVDVCBwbHBnc3FsZngoMjApOworIHBscGdzcWxmeCAKKy0tLS0tLS0t LS0tCisgICAgICAgIDMwCisoMSByb3cpCisKK1NFTEVDVCBwbHBnc3FsZnhfc2QoMjApOworIHBs cGdzcWxmeF9zZCAKKy0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDMwCisoMSByb3cpCisKKy0t IHNob3VsZCBmYWlsCitTRVQgUk9MRSBUTyByZWdyZXNzX25vb3duZXI7CitTRUxFQ1QgdmFyMTsK K0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorU0VM RUNUIHNxbGZ4KDIwKTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFy aWFibGUgdmFyMQorQ09OVEVYVDogIFNRTCBmdW5jdGlvbiAic3FsZngiIHN0YXRlbWVudCAxCitT RUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Np b24gdmFyaWFibGUgdmFyMQorQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gIiQxICsgdmFy MSIKK1BML3BnU1FMIGZ1bmN0aW9uIHBscGdzcWxmeChpbnRlZ2VyKSBsaW5lIDEgYXQgUkVUVVJO CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBzcWxmeF9zZCgyMCk7Cisgc3FsZnhfc2QgCistLS0t LS0tLS0tCisgICAgICAgMzAKKygxIHJvdykKKworU0VMRUNUIHBscGdzcWxmeF9zZCgyMCk7Cisg cGxwZ3NxbGZ4X3NkIAorLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMzAKKygxIHJvdykKKwor U0VUIFJPTEUgVE8gREVGQVVMVDsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJl Z3Jlc3Nfbm9vd25lcjsKKy0tIHNob3VsZCBiZSBvaworU0VUIFJPTEUgVE8gcmVncmVzc19ub293 bmVyOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworU0VM RUNUIHNxbGZ4KDIwKTsKKyBzcWxmeCAKKy0tLS0tLS0KKyAgICAzMAorKDEgcm93KQorCitTRUxF Q1QgcGxwZ3NxbGZ4KDIwKTsKKyBwbHBnc3FsZnggCistLS0tLS0tLS0tLQorICAgICAgICAzMAor KDEgcm93KQorCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJP UCBGVU5DVElPTiBzcWxmeChpbnQpOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngoaW50KTsKK0RS T1AgRlVOQ1RJT04gc3FsZnhfc2QoaW50KTsKK0RST1AgRlVOQ1RJT04gcGxwZ3NxbGZ4X3NkKGlu dCk7CitEUk9QIFJPTEUgcmVncmVzc19ub293bmVyOworLS0gdXNlIHZhcmlhYmxlcyBpbnNpZGUg dmlld3MKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWM7CistLSB1c2UgdmFyaWFibGVz IGluIHZpZXdzCitDUkVBVEUgVklFVyB0ZXN0X3ZpZXcgQVMgU0VMRUNUIENPQUxFU0NFKHZhcjEg KyB2LCAwKSBBUyByZXN1bHQgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwyKSBnKHYpOworU0VMRUNU ICogRlJPTSB0ZXN0X3ZpZXc7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgICAgIDAKKyAgICAgIDAK KygyIHJvd3MpCisKK0xFVCB2YXIxID0gMy4xNDsKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3Owor IHJlc3VsdCAKKy0tLS0tLS0tCisgICA0LjE0CisgICA1LjE0CisoMiByb3dzKQorCistLSBzdGFy dCBhIG5ldyBzZXNzaW9uCitcYworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CisgcmVzdWx0IAor LS0tLS0tLS0KKyAgICAgIDAKKyAgICAgIDAKKygyIHJvd3MpCisKK0xFVCB2YXIxID0gMy4xNDsK K1NFTEVDVCAqIEZST00gdGVzdF92aWV3OworIHJlc3VsdCAKKy0tLS0tLS0tCisgICA0LjE0Cisg ICA1LjE0CisoMiByb3dzKQorCistLSBzaG91bGQgZmFpbCwgZGVwZW5kZW5jeQorRFJPUCBWQVJJ QUJMRSB2YXIxOworRVJST1I6ICBjYW5ub3QgZHJvcCBzZXNzaW9uIHZhcmlhYmxlIHZhcjEgYmVj YXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgdmlldyB0ZXN0X3ZpZXcg ZGVwZW5kcyBvbiBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FT Q0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCistLSBzaG91bGQgYmUgb2sK K0RST1AgVkFSSUFCTEUgdmFyMSBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byB2 aWV3IHRlc3RfdmlldworQ1JFQVRFIFZBUklBQkxFIHZhcjEgdGV4dDsKK0NSRUFURSBWQVJJQUJM RSB2YXIyIHRleHQ7CistLSB1c2UgdmFyaWFibGVzIGluIFNRTCBmdW5jdGlvbnMKK0NSRUFURSBP UiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4MSh2YXJjaGFyKQorUkVUVVJOUyB2YXJjaGFyIEFTICQk IFNFTEVDVCB2YXIxIHx8ICcsICcgfHwgJDEgJCQgTEFOR1VBR0Ugc3FsOworQ1JFQVRFIE9SIFJF UExBQ0UgRlVOQ1RJT04gc3FsZngyKCB2YXJjaGFyKQorUkVUVVJOUyB2YXJjaGFyIEFTICQkIFNF TEVDVCB2YXIyIHx8ICcsICcgfHwgJDEgJCQgTEFOR1VBR0Ugc3FsOworTEVUIHZhcjEgPSAnc3Ry MSc7CitMRVQgdmFyMiA9ICdzdHIyJzsKK1NFTEVDVCBzcWxmeDEoc3FsZngyKCdIZWxsbycpKTsK KyAgICAgIHNxbGZ4MSAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyBzdHIxLCBzdHIyLCBI ZWxsbworKDEgcm93KQorCistLSBpbmxpbmluZyBpcyBibG9ja2VkCitFWFBMQUlOIChDT1NUUyBP RkYsIFZFUkJPU0UpIFNFTEVDVCBzcWxmeDEoc3FsZngyKCdIZWxsbycpKTsKKyAgICAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgUmVzdWx0CisgICBP dXRwdXQ6IHNxbGZ4MShzcWxmeDIoJ0hlbGxvJzo6Y2hhcmFjdGVyIHZhcnlpbmcpKQorKDIgcm93 cykKKworRFJPUCBGVU5DVElPTiBzcWxmeDEodmFyY2hhcik7CitEUk9QIEZVTkNUSU9OIHNxbGZ4 Mih2YXJjaGFyKTsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVkFSSUFCTEUgdmFyMjsKKy0t IGFjY2VzcyBmcm9tIGNhY2hlZCBwbGFucyBzaG91bGQgd29yaworQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgbnVtZXJpYzsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIG51bWVyaWM7CitDUkVBVEUg T1IgUkVQTEFDRSBGVU5DVElPTiBwbHBnc3FsZngoKQorUkVUVVJOUyBudW1lcmljIEFTICQkIEJF R0lOIFJFVFVSTiB2YXIxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBPUiBSRVBM QUNFIEZVTkNUSU9OIHBscGdzcWxmeDIobnVtZXJpYykKK1JFVFVSTlMgdm9pZCBBUyAkJCBCRUdJ TiBMRVQgdmFyMiA9ICQxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK1NFVCBwbGFuX2NhY2hl X21vZGUgVE8gZm9yY2VfZ2VuZXJpY19wbGFuOworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNUIHBs cGdzcWxmeCgpOworIHBscGdzcWxmeCAKKy0tLS0tLS0tLS0tCisgICAgICAzLjE0CisoMSByb3cp CisKK0xFVCB2YXIxID0gMy4xNCAqIDI7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CisgcGxwZ3NxbGZ4 IAorLS0tLS0tLS0tLS0KKyAgICAgIDYuMjgKKygxIHJvdykKKworU0VMRUNUIHBscGdzcWxmeDIo MTAuMCk7CisgcGxwZ3NxbGZ4MiAKKy0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1Qg dmFyMjsKKyB2YXIyIAorLS0tLS0tCisgMTAuMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZh cjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CistLSBkZXBlbmRlbmN5IChwbGFuIGludmFsaWRhdGlv bikgc2hvdWxkIHdvcmsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWM7CitDUkVBVEUg VkFSSUFCTEUgdmFyMiBBUyBudW1lcmljOworTEVUIHZhcjEgPSAzLjE0ICogMzsKK1NFTEVDVCBw bHBnc3FsZngoKTsKKyBwbHBnc3FsZnggCistLS0tLS0tLS0tLQorICAgICAgOS40MgorKDEgcm93 KQorCitMRVQgdmFyMSA9IDMuMTQgKiA0OworU0VMRUNUIHBscGdzcWxmeCgpOworIHBscGdzcWxm eCAKKy0tLS0tLS0tLS0tCisgICAgIDEyLjU2CisoMSByb3cpCisKK1NFTEVDVCBwbHBnc3FsZngy KDEwLjApOworIHBscGdzcWxmeDIgCistLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNU IHZhcjI7CisgdmFyMiAKKy0tLS0tLQorIDEwLjAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2 YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngoKTsKK0RS T1AgRlVOQ1RJT04gcGxwZ3NxbGZ4MigpOworRVJST1I6ICBmdW5jdGlvbiBwbHBnc3FsZngyKCkg ZG9lcyBub3QgZXhpc3QKKy0tIGRlcGVuZGVuY3kgb24gY29sdW1uIHR5cGUKK0NSRUFURSBWQVJJ QUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBUQUJMRSB0ZXN0dmFyKGEgaW50LCBiIGludCwgYyBp bnQpOworSU5TRVJUIElOVE8gdGVzdHZhciBWQUxVRVMoMTAsMjAsMzApOworQUxURVIgVEFCTEUg dGVzdHZhciBEUk9QIENPTFVNTiBhOworQUxURVIgVEFCTEUgdGVzdHZhciBEUk9QIENPTFVNTiBi OworQ1JFQVRFIEZVTkNUSU9OIHBscGdzcWxmeDMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJ TgorICBMRVQgdmFyMSA9IChTRUxFQ1QgKiBGUk9NIHRlc3R2YXIpOworICBSQUlTRSBOT1RJQ0Ug JyUnLCB2YXIxOworRU5ECiskJCBMQU5HVUFHRSBwbHBnc3FsOworLS0gc2hvdWxkIGJlIG9rCitT RUxFQ1QgcGxwZ3NxbGZ4MygpOworTk9USUNFOiAgMzAKKyBwbHBnc3FsZngzIAorLS0tLS0tLS0t LS0tCisgCisoMSByb3cpCisKK0FMVEVSIFRBQkxFIHRlc3R2YXIgQUxURVIgQ09MVU1OIGMgVFlQ RSBudW1lcmljOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgcGxwZ3NxbGZ4MygpOworTk9USUNF OiAgMzAKKyBwbHBnc3FsZngzIAorLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK0RST1AgRlVO Q1RJT04gcGxwZ3NxbGZ4MygpOworRFJPUCBUQUJMRSB0ZXN0dmFyOworRFJPUCBWQVJJQUJMRSB2 YXIxOworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBERUZBVUxUOworLS0gcmVwZWF0ZWQgZXhlY3V0 aW9uIHNob3VsZCBub3QgY3Jhc2gKK0NSRUFURSBWQVJJQUJMRSB2YXIxIGludDsKK0NSRUFURSBU QUJMRSB0ZXN0dmFyKGEgaW50KTsKK0lOU0VSVCBJTlRPIHRlc3R2YXIgVkFMVUVTKDEpOworRE8g JCQKK0JFR0lOCisgIExFVCB2YXIxID0gMDsKKyAgRk9SIGkgSU4gMS4uMTAKKyAgTE9PUAorICAg IExFVCB2YXIxID0gKFNFTEVDVCBhIEZST00gdGVzdHZhcik7CisgIEVORCBMT09QOworICBSQUlT RSBOT1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CitOT1RJQ0U6ICAxCitETyAkJAorQkVHSU4K KyAgTEVUIHZhcjEgPSAwOworICBGT1IgaSBJTiAxLi4xMAorICBMT09QCisgICAgTEVUIHZhcjEg PSAoU0VMRUNUIGEgKyB2YXIxIEZST00gdGVzdHZhcik7CisgIEVORCBMT09QOworICBSQUlTRSBO T1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CitOT1RJQ0U6ICAxMAorRE8gJCQKK0JFR0lOCisg IExFVCB2YXIxID0gMDsKKyAgRk9SIGkgSU4gMS4uMTAKKyAgTE9PUAorICAgIExFVCB2YXIxID0g KFNFTEVDVCBhIEZST00gdGVzdHZhcikgKyB2YXIxOworICBFTkQgTE9PUDsKKyAgUkFJU0UgTk9U SUNFICclJywgdmFyMTsKK0VORDsKKyQkOworTk9USUNFOiAgMTAKK0RPICQkCitCRUdJTgorICBM RVQgdmFyMSA9IDA7CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AKKyAgICBMRVQgdmFyMSA9IGk7 CisgIEVORCBMT09QOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CitOT1RJ Q0U6ICAxMAorRE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0gMDsKKyAgRk9SIGkgSU4gMS4uMTAK KyAgTE9PUAorICAgIExFVCB2YXIxID0gaSArIHZhcjE7CisgIEVORCBMT09QOworICBSQUlTRSBO T1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CitOT1RJQ0U6ICA1NQorRFJPUCBWQVJJQUJMRSB2 YXIxOworRFJPUCBUQUJMRSB0ZXN0dmFyOworLS0gdXNhZ2UgTEVUIHN0YXRlbWVudCBpbiBwbHBn c3FsIHNob3VsZCB3b3JrCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBpbnQ7CitDUkVBVEUgVkFSSUFC TEUgdmFyMiBudW1lcmljW107CitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjIgPSAne30nOjppbnRb XTsKKyAgRk9SIGkgSU4gMS4uMTAKKyAgTE9PUAorICAgIExFVCB2YXIxID0gaTsKKyAgICBMRVQg dmFyMlt2YXIxXSA9IGk7CisgIEVORCBMT09QOworICBSQUlTRSBOT1RJQ0UgJ3Jlc3VsdCBhcnJh eTogJScsIHZhcjI7CitFTkQ7CiskJDsKK05PVElDRTogIHJlc3VsdCBhcnJheTogezEsMiwzLDQs NSw2LDcsOCw5LDEwfQorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOwor LS0gQ0FMTCBzdGF0ZW1lbnQgaXMgbm90IHN1cHBvcnRlZCB5ZXQKKy0tIHJlcXVpcmVzIGRpcmVj dCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSBmcm9tIGV4cHJlc3Npb24gZXhlY3V0b3IKK0NS RUFURSBWQVJJQUJMRSB2IGludDsKK0NSRUFURSBQUk9DRURVUkUgcChhcmcgaW50KSBBUyAkJCBC RUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCBhcmc7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOworLS0g c2hvdWxkIG5vdCBjcmFzaCAoYnV0IGlzIG5vdCBzdXBwb3J0ZWQgeWV0KQorQ0FMTCBwKHYpOwor RVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50CitE TyAkJCBCRUdJTiBDQUxMIHAodik7IEVORCAkJDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSBj YW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudAorQ09OVEVYVDogIFNRTCBzdGF0ZW1lbnQgIkNB TEwgcCh2KSIKK1BML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBD QUxMCitEUk9QIFBST0NFRFVSRSBwKGludCk7CitEUk9QIFZBUklBQkxFIHY7CistLSBFWEVDVVRF IHN0YXRlbWVudCBpcyBub3Qgc3VwcG9ydGVkIHlldAorLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2Vz cyB0byBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorQ1JFQVRFIFZB UklBQkxFIHYgaW50OworTEVUIHYgPSAyMDsKK1BSRVBBUkUgcHRlc3QoaW50KSBBUyBTRUxFQ1Qg JDE7CistLSBzaG91bGQgZmFpbAorRVhFQ1VURSBwdGVzdCh2KTsKK0VSUk9SOiAgc2Vzc2lvbiB2 YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudAorREVBTExPQ0FURSBwdGVzdDsK K0RST1AgVkFSSUFCTEUgdjsKKy0tIHRlc3Qgc2VhcmNoIHBhdGgKK0NSRUFURSBTQ0hFTUEgc3Zh cnRlc3Q7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBudW1lcmljOworLS0gc2hv dWxkIGZhaWwKK0xFVCB2YXIxID0gcGkoKTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAidmFy MSIgZG9lc24ndCBleGlzdAorTElORSAxOiBMRVQgdmFyMSA9IHBpKCk7CisgICAgICAgICAgICBe CitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgY29sdW1uICJ2YXIxIiBkb2VzIG5vdCBleGlzdAorTElO RSAxOiBTRUxFQ1QgdmFyMTsKKyAgICAgICAgICAgICAgIF4KKy0tIHNob3VsZCBiZSBvaworTEVU IHN2YXJ0ZXN0LnZhcjEgPSBwaSgpOworU0VMRUNUIHN2YXJ0ZXN0LnZhcjE7CisgICAgICAgdmFy MSAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLQorIDMuMTQxNTkyNjUzNTg5NzkKKygxIHJvdykK KworU0VUIHNlYXJjaF9wYXRoIFRPIHN2YXJ0ZXN0OworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFy MSA9IHBpKCkgKyAxMDsKK1NFTEVDVCB2YXIxOworICAgICAgIHZhcjEgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0KKyAxMy4xNDE1OTI2NTM1ODk4CisoMSByb3cpCisKK1JFU0VUIHNlYXJjaF9w YXRoOworRFJPUCBTQ0hFTUEgc3ZhcnRlc3QgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2Fk ZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdC52YXIxCitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyB0ZXh0OworLS0gdmFyaWFibGVzIGNhbiBiZSB1cGRhdGVkIHVuZGVyIFJPIHRyYW5zYWN0 aW9uCitCRUdJTjsKK1NFVCBUUkFOU0FDVElPTiBSRUFEIE9OTFk7CitMRVQgdmFyMSA9ICdoZWxs byc7CitDT01NSVQ7CitTRUxFQ1QgdmFyMTsKKyB2YXIxICAKKy0tLS0tLS0KKyBoZWxsbworKDEg cm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSB0ZXN0IG9mIGRvbWFpbnMKK0NSRUFURSBE T01BSU4gaW50X2RvbWFpbiBBUyBpbnQgTk9UIE5VTEwgQ0hFQ0sgKFZBTFVFID4gMTAwKTsKK0NS RUFURSBWQVJJQUJMRSB2YXIxIEFTIGludF9kb21haW47CistLSBzaG91bGQgZmFpbAorU0VMRUNU IHZhcjE7CitFUlJPUjogIGRvbWFpbiBpbnRfZG9tYWluIGRvZXMgbm90IGFsbG93IG51bGwgdmFs dWVzCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTAwMDsKK1NFTEVDVCB2YXIxOworIHZh cjEgCistLS0tLS0KKyAxMDAwCisoMSByb3cpCisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9 IDEwOworRVJST1I6ICB2YWx1ZSBmb3IgZG9tYWluIGludF9kb21haW4gdmlvbGF0ZXMgY2hlY2sg Y29uc3RyYWludCAiaW50X2RvbWFpbl9jaGVjayIKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9 IE5VTEw7CitFUlJPUjogIGRvbWFpbiBpbnRfZG9tYWluIGRvZXMgbm90IGFsbG93IG51bGwgdmFs dWVzCistLSBub3RlIC0gZG9tYWluIGRlZmF1bHRzIGFyZSBub3Qgc3VwcG9ydGVkIHlldCAobGlr ZSBQTHBnU1FMKQorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBET01BSU4gaW50X2RvbWFpbjsK Ky0tIHRoZSBleHByZXNzaW9uIHNob3VsZCByZW1haW4gInVua25vd24iCitDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyBpbnQ0bXVsdGlyYW5nZVtdOworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9 IE5VTEw7CitMRVQgdmFyMSA9ICd7IntbMiw4KSxbMTEsMTQpfSIsIntbNSw4KSxbMTIsMTQpfSJ9 JzsKK0xFVCB2YXIxWzJdID0gJ3tbNSw4KSxbMTIsMTAwKX0nOworU0VMRUNUIHZhcjE7CisgICAg ICAgICAgICAgICAgICB2YXIxICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgeyJ7WzIsOCksWzExLDE0KX0iLCJ7WzUsOCksWzEyLDEw MCl9In0KKygxIHJvdykKKworLS1JdCBzaG91bGQgd29yayBpbiBwbHBnc3FsIHRvbworRE8gJCQK K0JFR0lOCisgIExFVCB2YXIxID0gTlVMTDsKKyAgTEVUIHZhcjEgPSAneyJ7WzIsOCksWzExLDE0 KX0iLCJ7WzUsOCksWzEyLDE0KX0ifSc7CisgIExFVCB2YXIxWzJdID0gJ3tbNSw4KSxbMTIsMTAw KX0nOworCisgIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7CitFTkQ7CiskJDsKK05PVElDRTogIHsi e1syLDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwxMDApfSJ9CitEUk9QIFZBUklBQkxFIHZhcjE7 CitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0IENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBDUkVB VEUgVEFCTEUgZm9vKGEgaW50KTsKK0xFVCBzdmFydGVzdC52YXIxID0gMTAwOworU0VMRUNUIHN2 YXJ0ZXN0LnZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJvdykKKworU0VUIHNlYXJj aF9wYXRoIHRvIHB1YmxpYywgc3ZhcnRlc3Q7CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0t CisgIDEwMAorKDEgcm93KQorCitEUk9QIFNDSEVNQSBzdmFydGVzdCBDQVNDQURFOworTk9USUNF OiAgZHJvcCBjYXNjYWRlcyB0byAyIG90aGVyIG9iamVjdHMKK0RFVEFJTDogIGRyb3AgY2FzY2Fk ZXMgdG8gdGFibGUgZm9vCitkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgdmFyMQor Q1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgaW50 W107CitMRVQgdmFyMSA9IDI7CitMRVQgdmFyMiA9ICd7fSc6OmludFtdOworTEVUIHZhcjJbdmFy MV0gPSAwOworU0VMRUNUIHZhcjI7CisgICB2YXIyICAgIAorLS0tLS0tLS0tLS0KKyBbMjoyXT17 MH0KKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIyOworQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgaW50W107CitMRVQgdmFyMSA9 IDI7CitMRVQgdmFyMiA9ICd7fSc6OmludFtdOworU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0t LQorIHt9CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMSwgdmFyMjsKKy0tIHRoZSBMRVQg c3RhdGVtZW50IHNob3VsZCBiZSBkaXNhbGxvd2VkIGluIENURQorQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgaW50OworV0lUSCB4IEFTIChMRVQgdmFyMSA9IDEwMCkgU0VMRUNUICogRlJPTSB4Owor RVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiTEVUIgorTElORSAxOiBXSVRIIHggQVMg KExFVCB2YXIxID0gMTAwKSBTRUxFQ1QgKiBGUk9NIHg7CisgICAgICAgICAgICAgICAgICAgXgor LS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IGdlbmVyYXRlX3NlcmllcygxLCAxKTsKKy0tIHNo b3VsZCBmYWlsCitMRVQgdmFyMSA9IGdlbmVyYXRlX3NlcmllcygxLCAyKTsKK0VSUk9SOiAgZXhw cmVzc2lvbiByZXR1cm5lZCBtb3JlIHRoYW4gb25lIHJvdworTEVUIHZhcjEgPSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMCk7CitFUlJPUjogIGV4cHJlc3Npb24gcmV0dXJuZWQgbm8gcm93cworRFJPUCBW QVJJQUJMRSB2YXIxOworLS0gY29tcG9zaXRlIHZhcmlhYmxlcworQ1JFQVRFIFRZUEUgc3ZfeHl6 IEFTICh4IGludCwgeSBpbnQsIHogbnVtZXJpYygxMCwyKSk7CitDUkVBVEUgVkFSSUFCTEUgdjEg QVMgc3ZfeHl6OworQ1JFQVRFIFZBUklBQkxFIHYyIEFTIHN2X3h5ejsKK0xFVCB2MSA9ICgxLCAy LCAzLjE0KTsKK0xFVCB2MiA9ICgxMCwgMjAsIDMuMTQgKiAxMCk7CistLSBzaG91bGQgd29yayB0 b28gLSB0aGVyZSBhcmUgcHJlcGFyZWQgY2FzdHMKK0xFVCB2MSA9ICgxLCAyLCAzKTsKK1NFTEVD VCB2MTsKKyAgICAgdjEgICAgIAorLS0tLS0tLS0tLS0tCisgKDEsMiwzLjAwKQorKDEgcm93KQor CitTRUxFQ1QgdjI7CisgICAgICB2MiAgICAgICAKKy0tLS0tLS0tLS0tLS0tLQorICgxMCwyMCwz MS40MCkKKygxIHJvdykKKworU0VMRUNUICh2MSkuKjsKKyB4IHwgeSB8ICB6ICAgCistLS0rLS0t Ky0tLS0tLQorIDEgfCAyIHwgMy4wMAorKDEgcm93KQorCitTRUxFQ1QgKHYyKS4qOworIHggIHwg eSAgfCAgIHogICAKKy0tLS0rLS0tLSstLS0tLS0tCisgMTAgfCAyMCB8IDMxLjQwCisoMSByb3cp CisKK1NFTEVDVCB2MS54ICsgdjEuejsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyAgICAgNC4w MAorKDEgcm93KQorCitTRUxFQ1QgdjIueCArIHYyLno7CisgP2NvbHVtbj8gCistLS0tLS0tLS0t CisgICAgNDEuNDAKKygxIHJvdykKKworLS0gYWNjZXNzIHRvIGNvbXBvc2l0ZSBmaWVsZHMgc2hv dWxkIGJlIHNhZmUgdG9vCitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitTRVQg Uk9MRSBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHYy Lng7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHYyCitT RVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJMRSB2MTsKK0RST1AgVkFSSUFCTEUgdjI7 CitEUk9QIFRZUEUgc3ZfeHl6OworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKy0t IHNob3VsZCBmYWlsLCB3cm9uZyBpZGVudGlmaWVyCitMRVQgbm9kYi5ub3NjaGVtYS5ub3Zhci5u b2ZpZWxkLm5vc3ViZmllbGQgPSAxMDsKK0VSUk9SOiAgaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUg KHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6IG5vZGIubm9zY2hlbWEubm92YXIubm9maWVsZC5ub3N1 YmZpZWxkCitMRVQgbm9kYi5ub3NjaGVtYS5ub3Zhci5ub2ZpZWxkID0gMTA7CitFUlJPUjogIGNy b3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogbm9kYi5ub3NjaGVt YS5ub3Zhci5ub2ZpZWxkCitMRVQgbm9kYi5ub3NjaGVtYS5ub3ZhciA9IDEwOworRVJST1I6ICBj cm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IG5vZGIubm9zY2hl bWEubm92YXIKK0NSRUFURSBUWVBFIHQxIEFTIChhIGludCwgYiBudW1lcmljLCBjIHRleHQpOwor Q1JFQVRFIFZBUklBQkxFIHYxIEFTIHQxOworTEVUIHYxID0gKDEsIHBpKCksICdoZWxsbycpOwor U0VMRUNUIHYxOworICAgICAgICAgICAgIHYxICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICgxLDMuMTQxNTkyNjUzNTg5NzksaGVsbG8pCisoMSByb3cpCisKK0xF VCB2MS5iID0gMTAuMjIyMjsKK1NFTEVDVCB2MTsKKyAgICAgICAgdjEgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0KKyAoMSwxMC4yMjIyLGhlbGxvKQorKDEgcm93KQorCistLSBzaG91bGQg ZmFpbCwgYXR0cmlidXRlIGRvZXNuJ3QgZXhpc3QKK0xFVCB2MS54ID0gMTA7CitFUlJPUjogIGNh bm5vdCBhc3NpZ24gdG8gZmllbGQgIngiIG9mIGNvbHVtbiAidjEiIGJlY2F1c2UgdGhlcmUgaXMg bm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHQxCitMSU5FIDE6IExFVCB2MS54ID0gMTA7Cisg ICAgICAgICAgICBeCistLSBzaG91bGQgZmFpbCwgZG9uJ3QgYWxsb3cgbXVsdGkgY29sdW1uIHF1 ZXJ5CitMRVQgdjEgPSAoTlVMTDo6dDEpLio7CitFUlJPUjogIGFzc2lnbm1lbnQgZXhwcmVzc2lv biByZXR1cm5lZCAzIGNvbHVtbnMKK0xJTkUgMTogTEVUIHYxID0gKE5VTEw6OnQxKS4qOworICAg ICAgICAgICAgICAgICAgXgorLS0gYWxsb3cgRFJPUCBvciBBREQgQVRUUklCVVRFIG9uIGNvbXBv c2l0ZSB0eXBlcworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIERST1AgQVRUUklCVVRF IGM7CitTRUxFQ1QgdjE7CisgICAgIHYxICAgICAgCistLS0tLS0tLS0tLS0tCisgKDEsMTAuMjIy MikKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIEFERCBBVFRSSUJV VEUgYyBpbnQ7CitTRUxFQ1QgdjE7CisgICAgICB2MSAgICAgIAorLS0tLS0tLS0tLS0tLS0KKyAo MSwxMC4yMjIyLCkKKygxIHJvdykKKworTEVUIHYxID0gKDEwLCAxMC4zLCAyMCk7CitTRUxFQ1Qg djE7CisgICAgICB2MSAgICAgIAorLS0tLS0tLS0tLS0tLS0KKyAoMTAsMTAuMywyMCkKKygxIHJv dykKKworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIERST1AgQVRUUklCVVRFIGI7CitT RUxFQ1QgdjE7CisgICB2MSAgICAKKy0tLS0tLS0tLQorICgxMCwyMCkKKygxIHJvdykKKworLS0g c2hvdWxkIGZhaWwsIGRpc2FsbG93IGRhdGEgdHlwZSBjaGFuZ2UKK0FMVEVSIFRZUEUgdDEgQUxU RVIgQVRUUklCVVRFIGMgVFlQRSBpbnQ7CitFUlJPUjogIGNhbm5vdCBhbHRlciB0eXBlICJ0MSIg YmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudjEiIHVzZXMgaXQKK0RST1AgVkFSSUFC TEUgdjE7CitEUk9QIFRZUEUgdDE7CistLSB0aGUgdGFibGUgdHlwZSBjYW4gYmUgdXNlZCBhcyBj b21wb3NpdGUgdHlwZSB0b28KK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3QoYSBpbnQsIGIgbnVtZXJp YywgYyBkYXRlKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHN2YXJfdGVzdDsKK0xFVCB2YXIx ID0gKDEwLCBwaSgpLCAnMjAyMy0wNS0yNicpOworU0VMRUNUIHZhcjE7CisgICAgICAgICAgICAg ICB2YXIxICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgKDEwLDMuMTQxNTkyNjUzNTg5NzksMDUtMjYtMjAyMykKKygxIHJvdykKKworLS0gc2hvdWxk IGZhaWwgZHVlIGRlcGVuZGVuY3kKK0FMVEVSIFRBQkxFIHN2YXJfdGVzdCBBTFRFUiBDT0xVTU4g YSBUWVBFIHRleHQ7CitFUlJPUjogIGNhbm5vdCBhbHRlciB0YWJsZSAic3Zhcl90ZXN0IiBiZWNh dXNlIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiB1c2VzIGl0CistLSBzaG91bGQgZmFp bAorRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CitFUlJPUjogIGNhbm5vdCBkcm9wIHRhYmxlIHN2YXJf dGVzdCBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBzZXNzaW9u IHZhcmlhYmxlIHZhcjEgZGVwZW5kcyBvbiB0eXBlIHN2YXJfdGVzdAorSElOVDogIFVzZSBEUk9Q IC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KK0RST1AgVkFS SUFCTEUgdmFyMTsKK0RST1AgVEFCTEUgc3Zhcl90ZXN0OworQ1JFQVRFIFRZUEUgdmFydGVzdF90 MSBBUyAoYSBpbnQsIGIgaW50KTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcnRlc3RfdDE7 CitDUkVBVEUgVEFCTEUgdmFydGVzdHRhYiAoeGNvbCBpbnQpOworQ1JFQVRFIFJPTEUgcmVncmVz c192YXJfdGVzdF9yb2xlOworR1JBTlQgVVBEQVRFIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVz c192YXJfdGVzdF9yb2xlOworR1JBTlQgU0VMRUNUIE9OIFRBQkxFIHZhcnRlc3R0YWIgVE8gcmVn cmVzc192YXJfdGVzdF9yb2xlOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfdGVzdF9yb2xlOwor LS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9ICgxMCwgMjApOworTEVUIHZhcjEuYSA9IDMwOwor RE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0gKDEwMCwgMTAwKTsKKyAgTEVUIHZhcjEuYSA9IDEw MDA7CitFTkQ7CiskJDsKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFyMS5hOworRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitTRUxFQ1QgdmFyMTsK K0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorTEVU IHZhcjEuYSA9IHZhcjEuYSArIDEwOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vz c2lvbiB2YXJpYWJsZSB2YXIxCitMRVQgdmFyMS5hID0gKFNFTEVDVCAqIEZST00gKFNFTEVDVCBj b3VudCgqKSBGUk9NIHZhcnRlc3R0YWIgV0hFUkUgeGNvbCA9IHZhcjEuYSArIDEwKSk7CitFUlJP UjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0RPICQkIEJF R0lOIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7IEVORCAkJDsKK0VSUk9SOiAgcGVybWlzc2lvbiBk ZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorQ09OVEVYVDogIFBML3BnU1FMIGV4cHJl c3Npb24gInZhcjEiCitQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEg YXQgUkFJU0UKK0RPICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIHZhcjEuYTsgRU5EICQkOwor RVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitDT05U RVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAidmFyMS5hIgorUEwvcGdTUUwgZnVuY3Rpb24gaW5s aW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IFJBSVNFCitETyAkJCBCRUdJTiBMRVQgdmFyMS5hID0g dmFyMS5hICsgMTA7IEVORCAkJDsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Np b24gdmFyaWFibGUgdmFyMQorQ09OVEVYVDogIFNRTCBzdGF0ZW1lbnQgIkxFVCB2YXIxLmEgPSB2 YXIxLmEgKyAxMCIKK1BML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBh dCBTUUwgc3RhdGVtZW50CitTRVQgUk9MRSBUTyBERUZBVUxUOworR1JBTlQgU0VMRUNUIE9OIFZB UklBQkxFIHZhcjEgVE8gcmVncmVzc192YXJfdGVzdF9yb2xlOworU0VUIFJPTEUgVE8gcmVncmVz c192YXJfdGVzdF9yb2xlOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMS5hOworICBhICAg CistLS0tLS0KKyAxMDAwCisoMSByb3cpCisKK1NFTEVDVCB2YXIxOworICAgIHZhcjEgICAgCist LS0tLS0tLS0tLS0KKyAoMTAwMCwxMDApCisoMSByb3cpCisKK0xFVCB2YXIxLmEgPSB2YXIxLmEg KyAxMDsKK0xFVCB2YXIxLmEgPSAoU0VMRUNUICogRlJPTSAoU0VMRUNUIGNvdW50KCopIEZST00g dmFydGVzdHRhYiBXSEVSRSB4Y29sID0gdmFyMS5hICsgMTApKTsKK0RPICQkIEJFR0lOIFJBSVNF IE5PVElDRSAnJScsIHZhcjE7IEVORCAkJDsKK05PVElDRTogICgwLDEwMCkKK0RPICQkIEJFR0lO IFJBSVNFIE5PVElDRSAnJScsIHZhcjEuYTsgRU5EICQkOworTk9USUNFOiAgMAorRE8gJCQgQkVH SU4gTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwOyBFTkQgJCQ7CitTRVQgUk9MRSBUTyBERUZBVUxU OworUkVWT0tFIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIEZST00gcmVncmVzc192YXJfdGVzdF9y b2xlOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfdGVzdF9yb2xlOworLS0gc2hvdWxkIGZhaWwg YWdhaW4KK1NFTEVDVCB2YXIxLmE7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNz aW9uIHZhcmlhYmxlIHZhcjEKK1NFTEVDVCB2YXIxOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmll ZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7CitF UlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0xFVCB2 YXIxLmEgPSAoU0VMRUNUICogRlJPTSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFydGVzdHRhYiBX SEVSRSB4Y29sID0gdmFyMS5hICsgMTApKTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9y IHNlc3Npb24gdmFyaWFibGUgdmFyMQorRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFy MTsgRU5EICQkOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJs ZSB2YXIxCitDT05URVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAidmFyMSIKK1BML3BnU1FMIGZ1 bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQorRE8gJCQgQkVHSU4gUkFJ U0UgTk9USUNFICclJywgdmFyMS5hOyBFTkQgJCQ7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVk IGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNzaW9u ICJ2YXIxLmEiCitQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQg UkFJU0UKK0RPICQkIEJFR0lOIExFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsgRU5EICQkOworRVJS T1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitDT05URVhU OiAgU1FMIHN0YXRlbWVudCAiTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwIgorUEwvcGdTUUwgZnVu Y3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IFNRTCBzdGF0ZW1lbnQKK1NFVCBST0xF IFRPIERFRkFVTFQ7CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRBQkxFIHZhcnRlc3R0YWI7 CitEUk9QIFJPTEUgcmVncmVzc192YXJfdGVzdF9yb2xlOworRFJPUCBUWVBFIHZhcnRlc3RfdDE7 CitDUkVBVEUgVFlQRSB2YXJ0ZXN0X3QxIEFTIChhIGludCwgYiBpbnQpOworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgdGV4dDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIHZhcnRlc3RfdDE7Cist LSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcjEuYTsKK0VSUk9SOiAgdmFyaWFibGUgInB1YmxpYy52 YXIxIiBpcyBvZiB0eXBlICJ0ZXh0Iiwgd2hpY2ggaXMgbm90IGEgY29tcG9zaXRlIHR5cGUKK0xJ TkUgMTogU0VMRUNUIHZhcjEuYTsKKyAgICAgICAgICAgICAgIF4KK1NFTEVDVCB2YXIyLmM7CitF UlJPUjogIGNvdWxkIG5vdCBpZGVudGlmeSBjb2x1bW4gImMiIGluIHZhcmlhYmxlICJwdWJsaWMu dmFyMiIKK0xJTkUgMTogU0VMRUNUIHZhcjIuYzsKKyAgICAgICAgICAgICAgIF4KK0RST1AgVkFS SUFCTEUgdmFyMTsKK0RST1AgVkFSSUFCTEUgdmFyMjsKK0RST1AgVFlQRSB2YXJ0ZXN0X3QxOwor Q1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworTEVUIHZhcjEgPSAxOworTEVUIHZhcjEgPSAn MSc7CitMRVQgdmFyMSA9IDEwLjE7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAnMSc6Ompz b25iOworRVJST1I6ICB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIG9mIHR5cGUgaW50ZWdlciwg YnV0IGV4cHJlc3Npb24gaXMgb2YgdHlwZSBqc29uYgorTElORSAxOiBMRVQgdmFyMSA9ICcxJzo6 anNvbmI7CisgICAgICAgICAgICAgICAgICAgXgorSElOVDogIFlvdSB3aWxsIG5lZWQgdG8gcmV3 cml0ZSBvciBjYXN0IHRoZSBleHByZXNzaW9uLgorLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9 ICcxJzo6anNvbmI6OmludDsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMS54ID0gMTA7CitFUlJP UjogIGNhbm5vdCBhc3NpZ24gdG8gZmllbGQgIngiIG9mIHNlc3Npb24gdmFyaWFibGUgInB1Ymxp Yy52YXIxIiBiZWNhdXNlIGl0cyB0eXBlIGludGVnZXIgaXMgbm90IGEgY29tcG9zaXRlIHR5cGUK K0xJTkUgMTogTEVUIHZhcjEueCA9IDEwOworICAgICAgICAgICAgXgorRFJPUCBWQVJJQUJMRSB2 YXIxOworQ1JFQVRFIFNDSEVNQSB2YXJ0ZXN0OworQ1JFQVRFIFRZUEUgdmFydGVzdHR5cGUgQVMg KHZhcnRlc3QgaW50KTsKK0NSRUFURSBWQVJJQUJMRSB2YXJ0ZXN0LnZhcnRlc3QgQVMgdmFydGVz dHR5cGU7CitTRVQgU0VBUkNIX1BBVEggVE8gdmFydGVzdDsKKy0tIHNob3VsZCBmYWlsCitMRVQg dmFydGVzdC52YXJ0ZXN0ID0gMTsKK0VSUk9SOiAgdGFyZ2V0ICJ2YXJ0ZXN0LnZhcnRlc3QiIG9m IExFVCBjb21tYW5kIGlzIGFtYmlndW91cworTElORSAxOiBMRVQgdmFydGVzdC52YXJ0ZXN0ID0g MTsKKyAgICAgICAgICAgIF4KK0RST1AgVkFSSUFCTEUgdmFydGVzdC52YXJ0ZXN0OworRFJPUCBU WVBFIHZhcnRlc3R0eXBlOworRVJST1I6ICB0eXBlICJ2YXJ0ZXN0dHlwZSIgZG9lcyBub3QgZXhp c3QKK0RST1AgU0NIRU1BIHZhcnRlc3Q7CitTRVQgU0VBUkNIX1BBVEggVE8gREVGQVVMVDsKKy0t IGFycmF5cyBhcmUgc3VwcG9ydGVkCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBudW1lcmljW107 CitMRVQgdmFyMSA9IEFSUkFZWzEuMSwyLjFdOworTEVUIHZhcjFbMV0gPSAxMC4xOworU0VMRUNU IHZhcjE7CisgICAgdmFyMSAgICAKKy0tLS0tLS0tLS0tLQorIHsxMC4xLDIuMX0KKygxIHJvdykK KworLS0gTEVUIHRhcmdldCBkb2Vzbid0IGFsbG93IHNyZiwgc2hvdWxkIGZhaWwKK0xFVCB2YXIx W2dlbmVyYXRlX3NlcmllcygxLDMpXSA9IDEwMDsKK0VSUk9SOiAgc2V0LXJldHVybmluZyBmdW5j dGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIExFVAorTElORSAxOiBMRVQgdmFyMVtnZW5lcmF0ZV9z ZXJpZXMoMSwzKV0gPSAxMDA7CisgICAgICAgICAgICAgICAgIF4KK0RST1AgVkFSSUFCTEUgdmFy MTsKKy0tIGFycmF5cyBpbnNpZGUgY29tcG9zaXRlCitDUkVBVEUgVFlQRSB0MSBBUyAoYSBudW1l cmljLCBiIG51bWVyaWNbXSk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0MTsKK0xFVCB2YXIx ID0gKDEwLjEsIEFSUkFZWzAuMCwgMC4wXSk7CitMRVQgdmFyMS5hID0gMTAuMjsKK1NFTEVDVCB2 YXIxOworICAgICAgICB2YXIxICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKDEwLjIs InswLjAsMC4wfSIpCisoMSByb3cpCisKK0xFVCB2YXIxLmJbMV0gPSAxMC4zOworU0VMRUNUIHZh cjE7CisgICAgICAgIHZhcjEgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICgxMC4y LCJ7MTAuMywwLjB9IikKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUWVBF IHQxOworLS0gRW5jb3VyYWdlIHVzZSBvZiBwYXJhbGxlbCBwbGFucworU0VUIHBhcmFsbGVsX3Nl dHVwX2Nvc3QgPSAwOworU0VUIHBhcmFsbGVsX3R1cGxlX2Nvc3QgPSAwOworU0VUIG1pbl9wYXJh bGxlbF90YWJsZV9zY2FuX3NpemUgPSAwOworU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9n YXRoZXIgPSAyOworLS0gdGVzdCBvbiBxdWVyeSB3aXRoIHdvcmtlcnMKK0NSRUFURSBUQUJMRSBz dmFyX3Rlc3QoYSBpbnQpOworSU5TRVJUIElOVE8gc3Zhcl90ZXN0IFNFTEVDVCAqIEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsMTAwMCk7CitBTkFMWVpFIHN2YXJfdGVzdDsKK0NSRUFURSBWQVJJQUJM RSB6ZXJvIGludDsKK0xFVCB6ZXJvID0gMDsKKy0tIHJlc3VsdCBzaG91bGQgYmUgMTAwCitTRUxF Q1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHplcm87CisgY291bnQgCist LS0tLS0tCisgICAxMDAKKygxIHJvdykKKworLS0gcGFyYWxsZWwgZXhlY3V0aW9uIGlzIG5vdCBz dXBwb3J0ZWQgeWV0CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2 YXJfdGVzdCBXSEVSRSBhJTEwID0gemVybzsKKyAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQor ICAgLT4gIFNlcSBTY2FuIG9uIHN2YXJfdGVzdAorICAgICAgICAgRmlsdGVyOiAoKGEgJSAxMCkg PSB6ZXJvKQorKDMgcm93cykKKworTEVUIHplcm8gPSAoU0VMRUNUIGNvdW50KCopIEZST00gc3Zh cl90ZXN0KTsKKy0tIHJlc3VsdCBzaG91bGQgYmUgMTAwMAorU0VMRUNUIHplcm87CisgemVybyAK Ky0tLS0tLQorIDEwMDAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB6ZXJvOworRFJPUCBUQUJM RSBzdmFyX3Rlc3Q7CitSRVNFVCBwYXJhbGxlbF9zZXR1cF9jb3N0OworUkVTRVQgcGFyYWxsZWxf dHVwbGVfY29zdDsKK1JFU0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemU7CitSRVNFVCBt YXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyOworLS0gdGhlIHJlc3VsdCBvZiB2aWV3IHNo b3VsZCBiZSBzYW1lIGluIHBhcmFsbGVsIG1vZGUgdG9vCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyBpbnQ7CitMRVQgdmFyMSA9IDEwOworQ1JFQVRFIFZJRVcgdmFyMXZpZXcgQVMgU0VMRUNUIENP QUxFU0NFKHZhcjEsIDApIEFTIHJlc3VsdDsKK1NFTEVDVCAqIEZST00gdmFyMXZpZXc7CisgcmVz dWx0IAorLS0tLS0tLS0KKyAgICAgMTAKKygxIHJvdykKKworU0VUIGRlYnVnX3BhcmFsbGVsX3F1 ZXJ5IFRPIG9uOworU0VMRUNUICogRlJPTSB2YXIxdmlldzsKKyByZXN1bHQgCistLS0tLS0tLQor ICAgICAxMAorKDEgcm93KQorCitTRVQgZGVidWdfcGFyYWxsZWxfcXVlcnkgVE8gb2ZmOworRFJP UCBWSUVXIHZhcjF2aWV3OworRFJPUCBWQVJJQUJMRSB2YXIxOworQ1JFQVRFIFZBUklBQkxFIHZh cmlkIGludDsKK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3QoaWQgaW50LCB2IGludCk7CitMRVQgdmFy aWQgPSAxOworSU5TRVJUIElOVE8gc3Zhcl90ZXN0IFZBTFVFUyh2YXJpZCwgMTAwKTsKK1NFTEVD VCAqIEZST00gc3Zhcl90ZXN0OworIGlkIHwgIHYgIAorLS0tLSstLS0tLQorICAxIHwgMTAwCiso MSByb3cpCisKK1VQREFURSBzdmFyX3Rlc3QgU0VUIHYgPSAyMDAgV0hFUkUgaWQgPSB2YXJpZDsK K1NFTEVDVCAqIEZST00gc3Zhcl90ZXN0OworIGlkIHwgIHYgIAorLS0tLSstLS0tLQorICAxIHwg MjAwCisoMSByb3cpCisKK0RFTEVURSBGUk9NIHN2YXJfdGVzdCBXSEVSRSBpZCA9IHZhcmlkOwor U0VMRUNUICogRlJPTSBzdmFyX3Rlc3Q7CisgaWQgfCB2IAorLS0tLSstLS0KKygwIHJvd3MpCisK K0RST1AgVEFCTEUgc3Zhcl90ZXN0OworRFJPUCBWQVJJQUJMRSB2YXJpZDsKKy0tIHZpc2liaWxp dHkgY2hlY2sKKy0tIHZhcmlhYmxlcyBzaG91bGQgYmUgc2hhZG93ZWQgYWx3YXlzCitDUkVBVEUg VkFSSUFCTEUgdmFyMSBBUyB0ZXh0OworU0VMRUNUIHZhcjEucmVsbmFtZSBGUk9NIHBnX2NsYXNz IHZhcjEgV0hFUkUgdmFyMS5yZWxuYW1lID0gJ3BnX2NsYXNzJzsKKyByZWxuYW1lICAKKy0tLS0t LS0tLS0KKyBwZ19jbGFzcworKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUg VEFCTEUgeHh0YWIoYXZhciBpbnQpOworSU5TRVJUIElOVE8geHh0YWIgVkFMVUVTKDMzMyk7CitD UkVBVEUgVFlQRSB4eHR5cGUgQVMgKGF2YXIgaW50KTsKK0NSRUFURSBWQVJJQUJMRSB4eHRhYiBB UyB4eHR5cGU7CitJTlNFUlQgSU5UTyB4eHRhYiBWQUxVRVMoMTApOworLS0gaXQgaXMgYW1iaWd1 b3VzLCBidXQgY29sdW1ucyBhcmUgcHJlZmVycmVkCitTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHh4 dGFiOworIGF2YXIgCistLS0tLS0KKyAgMzMzCisgICAxMAorKDIgcm93cykKKworLS0gc2hvdWxk IGJlIG9rCitTRUxFQ1QgYXZhciBGUk9NIHh4dGFiOworIGF2YXIgCistLS0tLS0KKyAgMzMzCisg ICAxMAorKDIgcm93cykKKworQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy5hdmFyIEFTIGludDsKKy0t IHNob3VsZCBiZSBvaywgc2VlIHRoZSB0YWJsZQorU0VMRUNUIGF2YXIgRlJPTSB4eHRhYjsKKyBh dmFyIAorLS0tLS0tCisgIDMzMworICAgMTAKKygyIHJvd3MpCisKKy0tIHNob3VsZCBiZSBvawor U0VMRUNUIHB1YmxpYy5hdmFyIEZST00geHh0YWI7CisgYXZhciAKKy0tLS0tLQorICAgICAKKyAg ICAgCisoMiByb3dzKQorCitEUk9QIFZBUklBQkxFIHh4dGFiOworU0VMRUNUIHh4dGFiLmF2YXIg RlJPTSB4eHRhYjsKKyBhdmFyIAorLS0tLS0tCisgIDMzMworICAgMTAKKygyIHJvd3MpCisKK0RS T1AgVkFSSUFCTEUgcHVibGljLmF2YXI7CitEUk9QIFRZUEUgeHh0eXBlOworRFJPUCBUQUJMRSB4 eHRhYjsKKy0tIFRoZSB2YXJpYWJsZSBjYW4gYmUgc2hhZG93ZWQgYnkgdGFibGUgb3IgYnkgYWxp YXMKK0NSRUFURSBUWVBFIHB1YmxpYy5zdmFyX3R5cGUgQVMgKGEgaW50LCBiIGludCwgYyBpbnQp OworQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy5zdmFyIEFTIHB1YmxpYy5zdmFyX3R5cGU7CitDUkVB VEUgVEFCTEUgcHVibGljLnN2YXIoYSBpbnQsIGIgaW50KTsKK0lOU0VSVCBJTlRPIHB1YmxpYy5z dmFyIFZBTFVFUygxMCwgMjApOworTEVUIHB1YmxpYy5zdmFyID0gKDEwMCwgMjAwLCAzMDApOwor LS0gc2hvdWxkIGJlIG9rCistLSBzaG93IHRhYmxlCitTRUxFQ1QgKiBGUk9NIHB1YmxpYy5zdmFy OworIGEgIHwgYiAgCistLS0tKy0tLS0KKyAxMCB8IDIwCisoMSByb3cpCisKK1NFTEVDVCBzdmFy LmEgRlJPTSBwdWJsaWMuc3ZhcjsKKyBhICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitTRUxFQ1Qg c3Zhci4qIEZST00gcHVibGljLnN2YXI7CisgYSAgfCBiICAKKy0tLS0rLS0tLQorIDEwIHwgMjAK KygxIHJvdykKKworLS0gc2hvdyB2YXJpYWJsZQorU0VMRUNUIHB1YmxpYy5zdmFyOworICAgICBz dmFyICAgICAgCistLS0tLS0tLS0tLS0tLS0KKyAoMTAwLDIwMCwzMDApCisoMSByb3cpCisKK1NF TEVDVCBwdWJsaWMuc3Zhci5jOworICBjICAKKy0tLS0tCisgMzAwCisoMSByb3cpCisKK1NFTEVD VCAocHVibGljLnN2YXIpLio7CisgIGEgIHwgIGIgIHwgIGMgIAorLS0tLS0rLS0tLS0rLS0tLS0K KyAxMDAgfCAyMDAgfCAzMDAKKygxIHJvdykKKworLS0gdGhlIHZhcmlhYmxlIGlzIHNoYWRvd2Vk LCByYWlzZSBlcnJvcgorU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhcjsKK0VS Uk9SOiAgY29sdW1uIHN2YXIuYyBkb2VzIG5vdCBleGlzdAorTElORSAxOiBTRUxFQ1QgcHVibGlj LnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyOworICAgICAgICAgICAgICAgXgorLS0gY2FuIGJlIGZp eGVkIGJ5IGFsaWFzCitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyIHg7Cisg IGMgIAorLS0tLS0KKyAzMDAKKygxIHJvdykKKworU0VMRUNUIHN2YXIuYSBGUk9NIHB1YmxpYy5z dmFyOworIGEgIAorLS0tLQorIDEwCisoMSByb3cpCisKK1NFTEVDVCBzdmFyLiogRlJPTSBwdWJs aWMuc3ZhcjsKKyBhICB8IGIgIAorLS0tLSstLS0tCisgMTAgfCAyMAorKDEgcm93KQorCistLSBz aG93IHZhcmlhYmxlCitTRUxFQ1QgcHVibGljLnN2YXI7CisgICAgIHN2YXIgICAgICAKKy0tLS0t LS0tLS0tLS0tLQorICgxMDAsMjAwLDMwMCkKKygxIHJvdykKKworU0VMRUNUIHB1YmxpYy5zdmFy LmM7CisgIGMgIAorLS0tLS0KKyAzMDAKKygxIHJvdykKKworU0VMRUNUIChwdWJsaWMuc3Zhciku KjsKKyAgYSAgfCAgYiAgfCAgYyAgCistLS0tLSstLS0tLSstLS0tLQorIDEwMCB8IDIwMCB8IDMw MAorKDEgcm93KQorCistLSB0aGUgdmFyaWFibGUgaXMgc2hhZG93ZWQsIHJhaXNlIGVycm9yCitT RUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyOworRVJST1I6ICBjb2x1bW4gc3Zh ci5jIGRvZXMgbm90IGV4aXN0CitMSU5FIDE6IFNFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVi bGljLnN2YXI7CisgICAgICAgICAgICAgICBeCistLSBjYW4gYmUgZml4ZWQgYnkgYWxpYXMKK1NF TEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXIgeDsKKyAgYyAgCistLS0tLQorIDMw MAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHB1YmxpYy5zdmFyOworRFJPUCBUQUJMRSBwdWJs aWMuc3ZhcjsKK0RST1AgVFlQRSBwdWJsaWMuc3Zhcl90eXBlOworLS0gVGhlIHNlcXVlbmNlIGlk ZW50LiogY2Fubm90IGJlIHVzZWQgYnkgcmVmZXJlbmNlIHRvIHNlc3Npb24gdmFyaWFibGUsCist LSBhbmQgaW4gdGhpcyBjYXNlLCB0aGVyZSBpcyBub3QgY29sbGlzaW9uCitDUkVBVEUgU0NIRU1B IHZhcnRlc3Q7CitTRVQgU0VBUkNIX1BBVEggVE8gdmFydGVzdDsKK0NSRUFURSBUQUJMRSB2YXJ0 ZXN0X2ZvbyhhIGludCwgYiBpbnQpOworSU5TRVJUIElOVE8gdmFydGVzdF9mb28gVkFMVUVTKDEw LDIwKSwgKDMwLDQwKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcnRlc3RfZm9vOworTEVU IHZhcjEgPSAoMTAwLDIwMCk7CistLSBzaG91bGQgdG8gZmFpbAorU0VMRUNUIHZhcjEuKiBGUk9N IHZhcnRlc3RfZm9vOworRVJST1I6ICBtaXNzaW5nIEZST00tY2xhdXNlIGVudHJ5IGZvciB0YWJs ZSAidmFyMSIKK0xJTkUgMTogU0VMRUNUIHZhcjEuKiBGUk9NIHZhcnRlc3RfZm9vOworICAgICAg ICAgICAgICAgXgorLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMS4qIEZST00gdmFydGVzdF9m b28gdmFyMTsKKyBhICB8IGIgIAorLS0tLSstLS0tCisgMTAgfCAyMAorIDMwIHwgNDAKKygyIHJv d3MpCisKKy0tIHNob3VsZCB0byBmYWlsCitTRUxFQ1QgY291bnQodmFyMS4qKSBGUk9NIHZhcnRl c3RfZm9vOworRVJST1I6ICBtaXNzaW5nIEZST00tY2xhdXNlIGVudHJ5IGZvciB0YWJsZSAidmFy MSIKK0xJTkUgMTogU0VMRUNUIGNvdW50KHZhcjEuKikgRlJPTSB2YXJ0ZXN0X2ZvbzsKKyAgICAg ICAgICAgICAgICAgICAgIF4KKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIGNvdW50KHZhcjEuKikg RlJPTSB2YXJ0ZXN0X2ZvbyB2YXIxOworIGNvdW50IAorLS0tLS0tLQorICAgICAyCisoMSByb3cp CisKK1NFVCBTRUFSQ0hfUEFUSCBUTyBERUZBVUxUOworRFJPUCBTQ0hFTUEgdmFydGVzdCBDQVND QURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAyIG90aGVyIG9iamVjdHMKK0RFVEFJTDog IGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgdmFydGVzdC52YXJ0ZXN0X2ZvbworZHJvcCBjYXNjYWRl cyB0byBzZXNzaW9uIHZhcmlhYmxlIHZhcnRlc3QudmFyMQorQ1JFQVRFIFRZUEUgYWIgQVMgKGEg aW50ZWdlciwgYiBpbnRlZ2VyKTsKK0NSRUFURSBWQVJJQUJMRSB2X2FiIEFTIGFiOworQ1JFQVRF IFRBQkxFIHZfYWIgKGEgaW50ZWdlciwgYiBpbnRlZ2VyKTsKK0lOU0VSVCBJTlRPIHZfYWIgVkFM VUVTKDEwLDIwKTsKKy0tIHdlIHNob3VsZCBzZWUgdGFibGUKK1NFTEVDVCB2X2FiLmEgRlJPTSB2 X2FiOworIGEgIAorLS0tLQorIDEwCisoMSByb3cpCisKK0NSRUFURSBTQ0hFTUEgdl9hYjsKK0NS RUFURSBWQVJJQUJMRSB2X2FiLmEgQVMgaW50ZWdlcjsKKy0tIHdlIHNob3VsZCBzZWUgdGFibGUK K1NFTEVDVCB2X2FiLmEgRlJPTSB2X2FiOworIGEgIAorLS0tLQorIDEwCisoMSByb3cpCisKK0RS T1AgVkFSSUFCTEUgdl9hYjsKK0RST1AgVEFCTEUgdl9hYjsKK0RST1AgVFlQRSBhYjsKK0RST1Ag VkFSSUFCTEUgdl9hYi5hOworRFJPUCBTQ0hFTUEgdl9hYjsKK0NSRUFURSBUWVBFIHRfYW1fdHlw ZSBBUyAoYiBpbnQpOworQ1JFQVRFIFNDSEVNQSB4eHhfYW07CitTRVQgc2VhcmNoX3BhdGggVE8g cHVibGljOworQ1JFQVRFIFZBUklBQkxFIHh4eF9hbSBBUyB0X2FtX3R5cGU7CitMRVQgeHh4X2Ft ID0gUk9XKDEwKTsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHh4eF9hbTsKKyB4eHhfYW0gCist LS0tLS0tLQorICgxMCkKKygxIHJvdykKKworQ1JFQVRFIFZBUklBQkxFIHh4eF9hbS5iIEFTIGlu dDsKK0xFVCA6IkRCTkFNRSIueHh4X2FtLmIgPSAyMDsKKy0tIHNob3VsZCBiZSBzdGlsbCBvawor U0VMRUNUIHh4eF9hbTsKKyB4eHhfYW0gCistLS0tLS0tLQorICgxMCkKKygxIHJvdykKKworLS0g c2hvdWxkIGZhaWwsIHRoZSByZWZlcmVuY2Ugc2hvdWxkIGJlIGFtYmlndW91cworU0VMRUNUIHh4 eF9hbS5iOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5jZSAieHh4X2FtLmIiIGlz IGFtYmlndW91cworTElORSAxOiBTRUxFQ1QgeHh4X2FtLmI7CisgICAgICAgICAgICAgICBeCist LSBlbmhhbmNlZCByZWZlcmVuY2VzIHNob3VsZCBiZSBvaworU0VMRUNUIHB1YmxpYy54eHhfYW0u YjsKKyBiICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitTRUxFQ1QgOiJEQk5BTUUiLnh4eF9hbS5i OworIGIgIAorLS0tLQorIDIwCisoMSByb3cpCisKK0NSRUFURSBUQUJMRSB4eHhfYW0oYiAgaW50 KTsKK0lOU0VSVCBJTlRPIHh4eF9hbSBWQUxVRVMoMTApOworLS0gd2Ugc2hvdWxkIHNlZSB0YWJs ZQorU0VMRUNUIHh4eF9hbS5iIEZST00geHh4X2FtOworIGIgIAorLS0tLQorIDEwCisoMSByb3cp CisKK1NFTEVDVCB4LmIgRlJPTSB4eHhfYW0geDsKKyBiICAKKy0tLS0KKyAxMAorKDEgcm93KQor CitEUk9QIFRBQkxFIHh4eF9hbTsKK0RST1AgVkFSSUFCTEUgcHVibGljLnh4eF9hbTsKK0RST1Ag VkFSSUFCTEUgeHh4X2FtLmI7CitEUk9QIFNDSEVNQSB4eHhfYW07CitDUkVBVEUgU0NIRU1BIDoi REJOQU1FIjsKK0NSRUFURSBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJOQU1FIiBB UyB0X2FtX3R5cGU7CitDUkVBVEUgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi5iIEFTIGlu dDsKK1NFVCBzZWFyY2hfcGF0aCBUTyA6IkRCTkFNRSI7CistLSBzaG91bGQgYmUgYW1iaWd1b3Vz CitTRUxFQ1QgOiJEQk5BTUUiLmI7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgcmVmZXJlbmNl ICJyZWdyZXNzaW9uLmIiIGlzIGFtYmlndW91cworTElORSAxOiBTRUxFQ1QgInJlZ3Jlc3Npb24i LmI7CisgICAgICAgICAgICAgICBeCistLSBzaG91bGQgYmUgYW1iaWd1b3VzIHRvbworU0VMRUNU IDoiREJOQU1FIi46IkRCTkFNRSIuYjsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSByZWZlcmVu Y2UgInJlZ3Jlc3Npb24ucmVncmVzc2lvbi5iIiBpcyBhbWJpZ3VvdXMKK0xJTkUgMTogU0VMRUNU ICJyZWdyZXNzaW9uIi4icmVncmVzc2lvbiIuYjsKKyAgICAgICAgICAgICAgIF4KK0NSRUFURSBU QUJMRSA6IkRCTkFNRSIoYiBpbnQpOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgOiJEQk5BTUUi LmIgRlJPTSA6IkRCTkFNRSI7CisgYiAKKy0tLQorKDAgcm93cykKKworRFJPUCBUQUJMRSA6IkRC TkFNRSI7CitEUk9QIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuYjsKK0RST1AgVkFSSUFC TEUgOiJEQk5BTUUiLjoiREJOQU1FIi46IkRCTkFNRSI7CitEUk9QIFNDSEVNQSA6IkRCTkFNRSI7 CitSRVNFVCBzZWFyY2hfcGF0aDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nl c3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFi bGVzLnNxbAppbmRleCBlZWIwZjk0Y2EzYy4uZTcyMzYwZDUyNTQgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTI5NSwzICsyOTUsODg2IEBAIERST1Ag Uk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IxOwogRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjI7 CiAKIERST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworCistLSBjaGVjayBhY2Nlc3Mg cmlnaHRzCitDUkVBVEUgUk9MRSByZWdyZXNzX25vb3duZXI7CisKK0NSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIGludDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZngoaW50KQorUkVU VVJOUyBpbnQgQVMgJCQgU0VMRUNUICQxICsgdmFyMSAkJCBMQU5HVUFHRSBzcWw7CisKK0NSRUFU RSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4X3NkKGludCkKK1JFVFVSTlMgaW50IEFTICQkIFNF TEVDVCAkMSArIHZhcjEgJCQgTEFOR1VBR0Ugc3FsIFNFQ1VSSVRZIERFRklORVI7CisKK0NSRUFU RSBPUiBSRVBMQUNFIEZVTkNUSU9OIHBscGdzcWxmeChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBC RUdJTiBSRVRVUk4gJDEgKyB2YXIxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRF IE9SIFJFUExBQ0UgRlVOQ1RJT04gcGxwZ3NxbGZ4X3NkKGludCkKK1JFVFVSTlMgaW50IEFTICQk IEJFR0lOIFJFVFVSTiAkMSArIHZhcjE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsIFNFQ1VSSVRZ IERFRklORVI7CisKK0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIx OworU0VMRUNUIHNxbGZ4KDIwKTsKK1NFTEVDVCBzcWxmeF9zZCgyMCk7CitTRUxFQ1QgcGxwZ3Nx bGZ4KDIwKTsKK1NFTEVDVCBwbHBnc3FsZnhfc2QoMjApOworCistLSBzaG91bGQgZmFpbAorU0VU IFJPTEUgVE8gcmVncmVzc19ub293bmVyOworCitTRUxFQ1QgdmFyMTsKK1NFTEVDVCBzcWxmeCgy MCk7CitTRUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1Qgc3Fs Znhfc2QoMjApOworU0VMRUNUIHBscGdzcWxmeF9zZCgyMCk7CisKK1NFVCBST0xFIFRPIERFRkFV TFQ7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX25vb3duZXI7CisK Ky0tIHNob3VsZCBiZSBvaworU0VUIFJPTEUgVE8gcmVncmVzc19ub293bmVyOworCitTRUxFQ1Qg dmFyMTsKK1NFTEVDVCBzcWxmeCgyMCk7CitTRUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKKworU0VUIFJP TEUgVE8gREVGQVVMVDsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJT04gc3FsZngo aW50KTsKK0RST1AgRlVOQ1RJT04gcGxwZ3NxbGZ4KGludCk7CitEUk9QIEZVTkNUSU9OIHNxbGZ4 X3NkKGludCk7CitEUk9QIEZVTkNUSU9OIHBscGdzcWxmeF9zZChpbnQpOworCitEUk9QIFJPTEUg cmVncmVzc19ub293bmVyOworCistLSB1c2UgdmFyaWFibGVzIGluc2lkZSB2aWV3cworQ1JFQVRF IFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpYzsKKworLS0gdXNlIHZhcmlhYmxlcyBpbiB2aWV3cwor Q1JFQVRFIFZJRVcgdGVzdF92aWV3IEFTIFNFTEVDVCBDT0FMRVNDRSh2YXIxICsgdiwgMCkgQVMg cmVzdWx0IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMikgZyh2KTsKK1NFTEVDVCAqIEZST00gdGVz dF92aWV3OworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CisKKy0t IHN0YXJ0IGEgbmV3IHNlc3Npb24KK1xjCisKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3OworTEVU IHZhcjEgPSAzLjE0OworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CisKKy0tIHNob3VsZCBmYWls LCBkZXBlbmRlbmN5CitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworRFJP UCBWQVJJQUJMRSB2YXIxIENBU0NBREU7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIHRleHQ7CitD UkVBVEUgVkFSSUFCTEUgdmFyMiB0ZXh0OworCistLSB1c2UgdmFyaWFibGVzIGluIFNRTCBmdW5j dGlvbnMKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4MSh2YXJjaGFyKQorUkVUVVJO UyB2YXJjaGFyIEFTICQkIFNFTEVDVCB2YXIxIHx8ICcsICcgfHwgJDEgJCQgTEFOR1VBR0Ugc3Fs OworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzcWxmeDIoIHZhcmNoYXIpCitSRVRVUk5T IHZhcmNoYXIgQVMgJCQgU0VMRUNUIHZhcjIgfHwgJywgJyB8fCAkMSAkJCBMQU5HVUFHRSBzcWw7 CisKK0xFVCB2YXIxID0gJ3N0cjEnOworTEVUIHZhcjIgPSAnc3RyMic7CisKK1NFTEVDVCBzcWxm eDEoc3FsZngyKCdIZWxsbycpKTsKKworLS0gaW5saW5pbmcgaXMgYmxvY2tlZAorRVhQTEFJTiAo Q09TVFMgT0ZGLCBWRVJCT1NFKSBTRUxFQ1Qgc3FsZngxKHNxbGZ4MignSGVsbG8nKSk7CisKK0RS T1AgRlVOQ1RJT04gc3FsZngxKHZhcmNoYXIpOworRFJPUCBGVU5DVElPTiBzcWxmeDIodmFyY2hh cik7CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CisKKy0tIGFjY2Vz cyBmcm9tIGNhY2hlZCBwbGFucyBzaG91bGQgd29yaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg bnVtZXJpYzsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIG51bWVyaWM7CisKK0NSRUFURSBPUiBS RVBMQUNFIEZVTkNUSU9OIHBscGdzcWxmeCgpCitSRVRVUk5TIG51bWVyaWMgQVMgJCQgQkVHSU4g UkVUVVJOIHZhcjE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOworCitDUkVBVEUgT1IgUkVQTEFD RSBGVU5DVElPTiBwbHBnc3FsZngyKG51bWVyaWMpCitSRVRVUk5TIHZvaWQgQVMgJCQgQkVHSU4g TEVUIHZhcjIgPSAkMTsgRU5EICQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFVCBwbGFuX2NhY2hl X21vZGUgVE8gZm9yY2VfZ2VuZXJpY19wbGFuOworCitMRVQgdmFyMSA9IDMuMTQ7CitTRUxFQ1Qg cGxwZ3NxbGZ4KCk7CitMRVQgdmFyMSA9IDMuMTQgKiAyOworU0VMRUNUIHBscGdzcWxmeCgpOwor CitTRUxFQ1QgcGxwZ3NxbGZ4MigxMC4wKTsKK1NFTEVDVCB2YXIyOworCitEUk9QIFZBUklBQkxF IHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CisKKy0tIGRlcGVuZGVuY3kgKHBsYW4gaW52YWxp ZGF0aW9uKSBzaG91bGQgd29yaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpYzsKK0NS RUFURSBWQVJJQUJMRSB2YXIyIEFTIG51bWVyaWM7CisKK0xFVCB2YXIxID0gMy4xNCAqIDM7CitT RUxFQ1QgcGxwZ3NxbGZ4KCk7CitMRVQgdmFyMSA9IDMuMTQgKiA0OworU0VMRUNUIHBscGdzcWxm eCgpOworCitTRUxFQ1QgcGxwZ3NxbGZ4MigxMC4wKTsKK1NFTEVDVCB2YXIyOworCitEUk9QIFZB UklBQkxFIHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CitEUk9QIEZVTkNUSU9OIHBscGdzcWxm eCgpOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngyKCk7CisKKy0tIGRlcGVuZGVuY3kgb24gY29s dW1uIHR5cGUKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBUQUJMRSB0ZXN0 dmFyKGEgaW50LCBiIGludCwgYyBpbnQpOworSU5TRVJUIElOVE8gdGVzdHZhciBWQUxVRVMoMTAs MjAsMzApOworCitBTFRFUiBUQUJMRSB0ZXN0dmFyIERST1AgQ09MVU1OIGE7CitBTFRFUiBUQUJM RSB0ZXN0dmFyIERST1AgQ09MVU1OIGI7CisKK0NSRUFURSBGVU5DVElPTiBwbHBnc3FsZngzKCkK K1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgTEVUIHZhcjEgPSAoU0VMRUNUICogRlJPTSB0 ZXN0dmFyKTsKKyAgUkFJU0UgTk9USUNFICclJywgdmFyMTsKK0VORAorJCQgTEFOR1VBR0UgcGxw Z3NxbDsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgcGxwZ3NxbGZ4MygpOworCitBTFRFUiBU QUJMRSB0ZXN0dmFyIEFMVEVSIENPTFVNTiBjIFRZUEUgbnVtZXJpYzsKKworLS0gc2hvdWxkIGJl IG9rCitTRUxFQ1QgcGxwZ3NxbGZ4MygpOworCitEUk9QIEZVTkNUSU9OIHBscGdzcWxmeDMoKTsK K0RST1AgVEFCTEUgdGVzdHZhcjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworU0VUIHBsYW5fY2Fj aGVfbW9kZSBUTyBERUZBVUxUOworCistLSByZXBlYXRlZCBleGVjdXRpb24gc2hvdWxkIG5vdCBj cmFzaAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgaW50OworQ1JFQVRFIFRBQkxFIHRlc3R2YXIoYSBp bnQpOworSU5TRVJUIElOVE8gdGVzdHZhciBWQUxVRVMoMSk7CisKK0RPICQkCitCRUdJTgorICBM RVQgdmFyMSA9IDA7CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AKKyAgICBMRVQgdmFyMSA9IChT RUxFQ1QgYSBGUk9NIHRlc3R2YXIpOworICBFTkQgTE9PUDsKKyAgUkFJU0UgTk9USUNFICclJywg dmFyMTsKK0VORDsKKyQkOworCitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjEgPSAwOworICBGT1Ig aSBJTiAxLi4xMAorICBMT09QCisgICAgTEVUIHZhcjEgPSAoU0VMRUNUIGEgKyB2YXIxIEZST00g dGVzdHZhcik7CisgIEVORCBMT09QOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOworRU5EOwor JCQ7CisKK0RPICQkCitCRUdJTgorICBMRVQgdmFyMSA9IDA7CisgIEZPUiBpIElOIDEuLjEwCisg IExPT1AKKyAgICBMRVQgdmFyMSA9IChTRUxFQ1QgYSBGUk9NIHRlc3R2YXIpICsgdmFyMTsKKyAg RU5EIExPT1A7CisgIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7CitFTkQ7CiskJDsKKworRE8gJCQK K0JFR0lOCisgIExFVCB2YXIxID0gMDsKKyAgRk9SIGkgSU4gMS4uMTAKKyAgTE9PUAorICAgIExF VCB2YXIxID0gaTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7CitFTkQ7 CiskJDsKKworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0gMDsKKyAgRk9SIGkgSU4gMS4uMTAK KyAgTE9PUAorICAgIExFVCB2YXIxID0gaSArIHZhcjE7CisgIEVORCBMT09QOworICBSQUlTRSBO T1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1Ag VEFCTEUgdGVzdHZhcjsKKworLS0gdXNhZ2UgTEVUIHN0YXRlbWVudCBpbiBwbHBnc3FsIHNob3Vs ZCB3b3JrCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBu dW1lcmljW107CisKK0RPICQkCitCRUdJTgorICBMRVQgdmFyMiA9ICd7fSc6OmludFtdOworICBG T1IgaSBJTiAxLi4xMAorICBMT09QCisgICAgTEVUIHZhcjEgPSBpOworICAgIExFVCB2YXIyW3Zh cjFdID0gaTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5PVElDRSAncmVzdWx0IGFycmF5OiAlJywg dmFyMjsKK0VORDsKKyQkOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFZBUklBQkxFIHZh cjI7CisKKy0tIENBTEwgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0CistLSByZXF1aXJl cyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1 dG9yCitDUkVBVEUgVkFSSUFCTEUgdiBpbnQ7CisKK0NSRUFURSBQUk9DRURVUkUgcChhcmcgaW50 KSBBUyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCBhcmc7IEVORCAkJCBMQU5HVUFHRSBwbHBn c3FsOworCistLSBzaG91bGQgbm90IGNyYXNoIChidXQgaXMgbm90IHN1cHBvcnRlZCB5ZXQpCitD QUxMIHAodik7CisKK0RPICQkIEJFR0lOIENBTEwgcCh2KTsgRU5EICQkOworCitEUk9QIFBST0NF RFVSRSBwKGludCk7CitEUk9QIFZBUklBQkxFIHY7CisKKy0tIEVYRUNVVEUgc3RhdGVtZW50IGlz IG5vdCBzdXBwb3J0ZWQgeWV0CistLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24g dmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCitDUkVBVEUgVkFSSUFCTEUgdiBpbnQ7 CitMRVQgdiA9IDIwOworUFJFUEFSRSBwdGVzdChpbnQpIEFTIFNFTEVDVCAkMTsKKworLS0gc2hv dWxkIGZhaWwKK0VYRUNVVEUgcHRlc3Qodik7CisKK0RFQUxMT0NBVEUgcHRlc3Q7CitEUk9QIFZB UklBQkxFIHY7CisKKy0tIHRlc3Qgc2VhcmNoIHBhdGgKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3Q7 CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBudW1lcmljOworCistLSBzaG91bGQg ZmFpbAorTEVUIHZhcjEgPSBwaSgpOworU0VMRUNUIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvawor TEVUIHN2YXJ0ZXN0LnZhcjEgPSBwaSgpOworU0VMRUNUIHN2YXJ0ZXN0LnZhcjE7CisKK1NFVCBz ZWFyY2hfcGF0aCBUTyBzdmFydGVzdDsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IHBp KCkgKyAxMDsKK1NFTEVDVCB2YXIxOworCitSRVNFVCBzZWFyY2hfcGF0aDsKK0RST1AgU0NIRU1B IHN2YXJ0ZXN0IENBU0NBREU7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHRleHQ7CisKKy0t IHZhcmlhYmxlcyBjYW4gYmUgdXBkYXRlZCB1bmRlciBSTyB0cmFuc2FjdGlvbgorQkVHSU47CitT RVQgVFJBTlNBQ1RJT04gUkVBRCBPTkxZOworTEVUIHZhcjEgPSAnaGVsbG8nOworQ09NTUlUOwor CitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSB0ZXN0IG9mIGRvbWFp bnMKK0NSRUFURSBET01BSU4gaW50X2RvbWFpbiBBUyBpbnQgTk9UIE5VTEwgQ0hFQ0sgKFZBTFVF ID4gMTAwKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludF9kb21haW47CisKKy0tIHNob3Vs ZCBmYWlsCitTRUxFQ1QgdmFyMTsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwMDA7 CitTRUxFQ1QgdmFyMTsKKworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMTA7CisKKy0tIHNo b3VsZCBmYWlsCitMRVQgdmFyMSA9IE5VTEw7CisKKy0tIG5vdGUgLSBkb21haW4gZGVmYXVsdHMg YXJlIG5vdCBzdXBwb3J0ZWQgeWV0IChsaWtlIFBMcGdTUUwpCisKK0RST1AgVkFSSUFCTEUgdmFy MTsKK0RST1AgRE9NQUlOIGludF9kb21haW47CisKKy0tIHRoZSBleHByZXNzaW9uIHNob3VsZCBy ZW1haW4gInVua25vd24iCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ0bXVsdGlyYW5nZVtd OworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IE5VTEw7CitMRVQgdmFyMSA9ICd7IntbMiw4 KSxbMTEsMTQpfSIsIntbNSw4KSxbMTIsMTQpfSJ9JzsKK0xFVCB2YXIxWzJdID0gJ3tbNSw4KSxb MTIsMTAwKX0nOworU0VMRUNUIHZhcjE7CisKKy0tSXQgc2hvdWxkIHdvcmsgaW4gcGxwZ3NxbCB0 b28KK0RPICQkCitCRUdJTgorICBMRVQgdmFyMSA9IE5VTEw7CisgIExFVCB2YXIxID0gJ3sie1sy LDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwxNCl9In0nOworICBMRVQgdmFyMVsyXSA9ICd7WzUs OCksWzEyLDEwMCl9JzsKKworICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CisK K0RST1AgVkFSSUFCTEUgdmFyMTsKKworQ1JFQVRFIFNDSEVNQSBzdmFydGVzdCBDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyBpbnQgQ1JFQVRFIFRBQkxFIGZvbyhhIGludCk7CitMRVQgc3ZhcnRlc3Qu dmFyMSA9IDEwMDsKK1NFTEVDVCBzdmFydGVzdC52YXIxOworCitTRVQgc2VhcmNoX3BhdGggdG8g cHVibGljLCBzdmFydGVzdDsKKworU0VMRUNUIHZhcjE7CisKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0 IENBU0NBREU7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJM RSB2YXIyIEFTIGludFtdOworCitMRVQgdmFyMSA9IDI7CitMRVQgdmFyMiA9ICd7fSc6OmludFtd OworCitMRVQgdmFyMlt2YXIxXSA9IDA7CisKK1NFTEVDVCB2YXIyOworCitEUk9QIFZBUklBQkxF IHZhcjEsIHZhcjI7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBWQVJJ QUJMRSB2YXIyIEFTIGludFtdOworCitMRVQgdmFyMSA9IDI7CitMRVQgdmFyMiA9ICd7fSc6Omlu dFtdOworCitTRUxFQ1QgdmFyMjsKKworRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIyOworCistLSB0 aGUgTEVUIHN0YXRlbWVudCBzaG91bGQgYmUgZGlzYWxsb3dlZCBpbiBDVEUKK0NSRUFURSBWQVJJ QUJMRSB2YXIxIEFTIGludDsKK1dJVEggeCBBUyAoTEVUIHZhcjEgPSAxMDApIFNFTEVDVCAqIEZS T00geDsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IGdlbmVyYXRlX3NlcmllcygxLCAx KTsKKworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gZ2VuZXJhdGVfc2VyaWVzKDEsIDIpOwor TEVUIHZhcjEgPSBnZW5lcmF0ZV9zZXJpZXMoMSwgMCk7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsK KworLS0gY29tcG9zaXRlIHZhcmlhYmxlcworQ1JFQVRFIFRZUEUgc3ZfeHl6IEFTICh4IGludCwg eSBpbnQsIHogbnVtZXJpYygxMCwyKSk7CisKK0NSRUFURSBWQVJJQUJMRSB2MSBBUyBzdl94eXo7 CitDUkVBVEUgVkFSSUFCTEUgdjIgQVMgc3ZfeHl6OworCitMRVQgdjEgPSAoMSwgMiwgMy4xNCk7 CitMRVQgdjIgPSAoMTAsIDIwLCAzLjE0ICogMTApOworCistLSBzaG91bGQgd29yayB0b28gLSB0 aGVyZSBhcmUgcHJlcGFyZWQgY2FzdHMKK0xFVCB2MSA9ICgxLCAyLCAzKTsKKworU0VMRUNUIHYx OworU0VMRUNUIHYyOworU0VMRUNUICh2MSkuKjsKK1NFTEVDVCAodjIpLio7CisKK1NFTEVDVCB2 MS54ICsgdjEuejsKK1NFTEVDVCB2Mi54ICsgdjIuejsKKworLS0gYWNjZXNzIHRvIGNvbXBvc2l0 ZSBmaWVsZHMgc2hvdWxkIGJlIHNhZmUgdG9vCitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl90ZXN0 X3JvbGU7CisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKworLS0gc2hvdWxk IGZhaWwKK1NFTEVDVCB2Mi54OworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitEUk9QIFZBUklB QkxFIHYxOworRFJPUCBWQVJJQUJMRSB2MjsKK0RST1AgVFlQRSBzdl94eXo7CitEUk9QIFJPTEUg cmVncmVzc192YXJfdGVzdF9yb2xlOworCistLSBzaG91bGQgZmFpbCwgd3JvbmcgaWRlbnRpZmll cgorTEVUIG5vZGIubm9zY2hlbWEubm92YXIubm9maWVsZC5ub3N1YmZpZWxkID0gMTA7CitMRVQg bm9kYi5ub3NjaGVtYS5ub3Zhci5ub2ZpZWxkID0gMTA7CitMRVQgbm9kYi5ub3NjaGVtYS5ub3Zh ciA9IDEwOworCitDUkVBVEUgVFlQRSB0MSBBUyAoYSBpbnQsIGIgbnVtZXJpYywgYyB0ZXh0KTsK KworQ1JFQVRFIFZBUklBQkxFIHYxIEFTIHQxOworTEVUIHYxID0gKDEsIHBpKCksICdoZWxsbycp OworU0VMRUNUIHYxOworTEVUIHYxLmIgPSAxMC4yMjIyOworU0VMRUNUIHYxOworCistLSBzaG91 bGQgZmFpbCwgYXR0cmlidXRlIGRvZXNuJ3QgZXhpc3QKK0xFVCB2MS54ID0gMTA7CisKKy0tIHNo b3VsZCBmYWlsLCBkb24ndCBhbGxvdyBtdWx0aSBjb2x1bW4gcXVlcnkKK0xFVCB2MSA9IChOVUxM Ojp0MSkuKjsKKworLS0gYWxsb3cgRFJPUCBvciBBREQgQVRUUklCVVRFIG9uIGNvbXBvc2l0ZSB0 eXBlcworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIERST1AgQVRUUklCVVRFIGM7CitT RUxFQ1QgdjE7CisKKy0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBBREQgQVRUUklCVVRF IGMgaW50OworU0VMRUNUIHYxOworCitMRVQgdjEgPSAoMTAsIDEwLjMsIDIwKTsKK1NFTEVDVCB2 MTsKKworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIERST1AgQVRUUklCVVRFIGI7CitT RUxFQ1QgdjE7CisKKy0tIHNob3VsZCBmYWlsLCBkaXNhbGxvdyBkYXRhIHR5cGUgY2hhbmdlCitB TFRFUiBUWVBFIHQxIEFMVEVSIEFUVFJJQlVURSBjIFRZUEUgaW50OworCitEUk9QIFZBUklBQkxF IHYxOworRFJPUCBUWVBFIHQxOworCistLSB0aGUgdGFibGUgdHlwZSBjYW4gYmUgdXNlZCBhcyBj b21wb3NpdGUgdHlwZSB0b28KK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3QoYSBpbnQsIGIgbnVtZXJp YywgYyBkYXRlKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHN2YXJfdGVzdDsKKworTEVUIHZh cjEgPSAoMTAsIHBpKCksICcyMDIzLTA1LTI2Jyk7CitTRUxFQ1QgdmFyMTsKKworLS0gc2hvdWxk IGZhaWwgZHVlIGRlcGVuZGVuY3kKK0FMVEVSIFRBQkxFIHN2YXJfdGVzdCBBTFRFUiBDT0xVTU4g YSBUWVBFIHRleHQ7CisKKy0tIHNob3VsZCBmYWlsCitEUk9QIFRBQkxFIHN2YXJfdGVzdDsKKwor RFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CisKK0NSRUFURSBUWVBF IHZhcnRlc3RfdDEgQVMgKGEgaW50LCBiIGludCk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2 YXJ0ZXN0X3QxOworQ1JFQVRFIFRBQkxFIHZhcnRlc3R0YWIgKHhjb2wgaW50KTsKKworQ1JFQVRF IFJPTEUgcmVncmVzc192YXJfdGVzdF9yb2xlOworCitHUkFOVCBVUERBVEUgT04gVkFSSUFCTEUg dmFyMSBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitHUkFOVCBTRUxFQ1QgT04gVEFCTEUgdmFy dGVzdHRhYiBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CisKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nf dmFyX3Rlc3Rfcm9sZTsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9ICgxMCwgMjApOwor TEVUIHZhcjEuYSA9IDMwOworCitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjEgPSAoMTAwLCAxMDAp OworICBMRVQgdmFyMS5hID0gMTAwMDsKK0VORDsKKyQkOworCistLSBzaG91bGQgZmFpbAorU0VM RUNUIHZhcjEuYTsKK1NFTEVDVCB2YXIxOworTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwOworTEVU IHZhcjEuYSA9IChTRUxFQ1QgKiBGUk9NIChTRUxFQ1QgY291bnQoKikgRlJPTSB2YXJ0ZXN0dGFi IFdIRVJFIHhjb2wgPSB2YXIxLmEgKyAxMCkpOworCitETyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0Ug JyUnLCB2YXIxOyBFTkQgJCQ7CitETyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxLmE7 IEVORCAkJDsKK0RPICQkIEJFR0lOIExFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsgRU5EICQkOwor CitTRVQgUk9MRSBUTyBERUZBVUxUOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8g cmVncmVzc192YXJfdGVzdF9yb2xlOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfdGVzdF9yb2xl OworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxLmE7CitTRUxFQ1QgdmFyMTsKK0xFVCB2 YXIxLmEgPSB2YXIxLmEgKyAxMDsKK0xFVCB2YXIxLmEgPSAoU0VMRUNUICogRlJPTSAoU0VMRUNU IGNvdW50KCopIEZST00gdmFydGVzdHRhYiBXSEVSRSB4Y29sID0gdmFyMS5hICsgMTApKTsKKwor RE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFyMTsgRU5EICQkOworRE8gJCQgQkVHSU4g UkFJU0UgTk9USUNFICclJywgdmFyMS5hOyBFTkQgJCQ7CitETyAkJCBCRUdJTiBMRVQgdmFyMS5h ID0gdmFyMS5hICsgMTA7IEVORCAkJDsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK1JFVk9LRSBT RUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBGUk9NIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKK1NFVCBS T0xFIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKworLS0gc2hvdWxkIGZhaWwgYWdhaW4KK1NF TEVDVCB2YXIxLmE7CitTRUxFQ1QgdmFyMTsKK0xFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsKK0xF VCB2YXIxLmEgPSAoU0VMRUNUICogRlJPTSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFydGVzdHRh YiBXSEVSRSB4Y29sID0gdmFyMS5hICsgMTApKTsKKworRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNF ICclJywgdmFyMTsgRU5EICQkOworRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFyMS5h OyBFTkQgJCQ7CitETyAkJCBCRUdJTiBMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7IEVORCAkJDsK KworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJM RSB2YXJ0ZXN0dGFiOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKK0RST1AgVFlQ RSB2YXJ0ZXN0X3QxOworCitDUkVBVEUgVFlQRSB2YXJ0ZXN0X3QxIEFTIChhIGludCwgYiBpbnQp OworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0ZXh0OworQ1JFQVRFIFZBUklBQkxFIHZhcjIg QVMgdmFydGVzdF90MTsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIxLmE7CitTRUxFQ1Qg dmFyMi5jOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CitEUk9Q IFRZUEUgdmFydGVzdF90MTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworCitMRVQg dmFyMSA9IDE7CitMRVQgdmFyMSA9ICcxJzsKK0xFVCB2YXIxID0gMTAuMTsKKworLS0gc2hvdWxk IGZhaWwKK0xFVCB2YXIxID0gJzEnOjpqc29uYjsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFy MSA9ICcxJzo6anNvbmI6OmludDsKKworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxLnggPSAxMDsK KworRFJPUCBWQVJJQUJMRSB2YXIxOworCitDUkVBVEUgU0NIRU1BIHZhcnRlc3Q7CitDUkVBVEUg VFlQRSB2YXJ0ZXN0dHlwZSBBUyAodmFydGVzdCBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHZhcnRl c3QudmFydGVzdCBBUyB2YXJ0ZXN0dHlwZTsKK1NFVCBTRUFSQ0hfUEFUSCBUTyB2YXJ0ZXN0Owor CistLSBzaG91bGQgZmFpbAorTEVUIHZhcnRlc3QudmFydGVzdCA9IDE7CisKK0RST1AgVkFSSUFC TEUgdmFydGVzdC52YXJ0ZXN0OworRFJPUCBUWVBFIHZhcnRlc3R0eXBlOworRFJPUCBTQ0hFTUEg dmFydGVzdDsKK1NFVCBTRUFSQ0hfUEFUSCBUTyBERUZBVUxUOworCistLSBhcnJheXMgYXJlIHN1 cHBvcnRlZAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpY1tdOworTEVUIHZhcjEgPSBB UlJBWVsxLjEsMi4xXTsKK0xFVCB2YXIxWzFdID0gMTAuMTsKK1NFTEVDVCB2YXIxOworCistLSBM RVQgdGFyZ2V0IGRvZXNuJ3QgYWxsb3cgc3JmLCBzaG91bGQgZmFpbAorTEVUIHZhcjFbZ2VuZXJh dGVfc2VyaWVzKDEsMyldID0gMTAwOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIGFycmF5 cyBpbnNpZGUgY29tcG9zaXRlCitDUkVBVEUgVFlQRSB0MSBBUyAoYSBudW1lcmljLCBiIG51bWVy aWNbXSk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0MTsKK0xFVCB2YXIxID0gKDEwLjEsIEFS UkFZWzAuMCwgMC4wXSk7CitMRVQgdmFyMS5hID0gMTAuMjsKK1NFTEVDVCB2YXIxOworTEVUIHZh cjEuYlsxXSA9IDEwLjM7CitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJP UCBUWVBFIHQxOworCistLSBFbmNvdXJhZ2UgdXNlIG9mIHBhcmFsbGVsIHBsYW5zCitTRVQgcGFy YWxsZWxfc2V0dXBfY29zdCA9IDA7CitTRVQgcGFyYWxsZWxfdHVwbGVfY29zdCA9IDA7CitTRVQg bWluX3BhcmFsbGVsX3RhYmxlX3NjYW5fc2l6ZSA9IDA7CitTRVQgbWF4X3BhcmFsbGVsX3dvcmtl cnNfcGVyX2dhdGhlciA9IDI7CisKKy0tIHRlc3Qgb24gcXVlcnkgd2l0aCB3b3JrZXJzCitDUkVB VEUgVEFCTEUgc3Zhcl90ZXN0KGEgaW50KTsKK0lOU0VSVCBJTlRPIHN2YXJfdGVzdCBTRUxFQ1Qg KiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDApOworQU5BTFlaRSBzdmFyX3Rlc3Q7CitDUkVB VEUgVkFSSUFCTEUgemVybyBpbnQ7CitMRVQgemVybyA9IDA7CisKKy0tIHJlc3VsdCBzaG91bGQg YmUgMTAwCitTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHplcm87 CisKKy0tIHBhcmFsbGVsIGV4ZWN1dGlvbiBpcyBub3Qgc3VwcG9ydGVkIHlldAorRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHpl cm87CisKK0xFVCB6ZXJvID0gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVzdCk7CisKKy0t IHJlc3VsdCBzaG91bGQgYmUgMTAwMAorU0VMRUNUIHplcm87CisKK0RST1AgVkFSSUFCTEUgemVy bzsKK0RST1AgVEFCTEUgc3Zhcl90ZXN0OworCitSRVNFVCBwYXJhbGxlbF9zZXR1cF9jb3N0Owor UkVTRVQgcGFyYWxsZWxfdHVwbGVfY29zdDsKK1JFU0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2Fu X3NpemU7CitSRVNFVCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyOworCistLSB0aGUg cmVzdWx0IG9mIHZpZXcgc2hvdWxkIGJlIHNhbWUgaW4gcGFyYWxsZWwgbW9kZSB0b28KK0NSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0xFVCB2YXIxID0gMTA7CisKK0NSRUFURSBWSUVXIHZh cjF2aWV3IEFTIFNFTEVDVCBDT0FMRVNDRSh2YXIxLCAwKSBBUyByZXN1bHQ7CisKK1NFTEVDVCAq IEZST00gdmFyMXZpZXc7CisKK1NFVCBkZWJ1Z19wYXJhbGxlbF9xdWVyeSBUTyBvbjsKKworU0VM RUNUICogRlJPTSB2YXIxdmlldzsKKworU0VUIGRlYnVnX3BhcmFsbGVsX3F1ZXJ5IFRPIG9mZjsK KworRFJPUCBWSUVXIHZhcjF2aWV3OworRFJPUCBWQVJJQUJMRSB2YXIxOworCitDUkVBVEUgVkFS SUFCTEUgdmFyaWQgaW50OworQ1JFQVRFIFRBQkxFIHN2YXJfdGVzdChpZCBpbnQsIHYgaW50KTsK KworTEVUIHZhcmlkID0gMTsKK0lOU0VSVCBJTlRPIHN2YXJfdGVzdCBWQUxVRVModmFyaWQsIDEw MCk7CitTRUxFQ1QgKiBGUk9NIHN2YXJfdGVzdDsKK1VQREFURSBzdmFyX3Rlc3QgU0VUIHYgPSAy MDAgV0hFUkUgaWQgPSB2YXJpZDsKK1NFTEVDVCAqIEZST00gc3Zhcl90ZXN0OworREVMRVRFIEZS T00gc3Zhcl90ZXN0IFdIRVJFIGlkID0gdmFyaWQ7CitTRUxFQ1QgKiBGUk9NIHN2YXJfdGVzdDsK KworRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CitEUk9QIFZBUklBQkxFIHZhcmlkOworCistLSB2aXNp YmlsaXR5IGNoZWNrCistLSB2YXJpYWJsZXMgc2hvdWxkIGJlIHNoYWRvd2VkIGFsd2F5cworQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgdGV4dDsKK1NFTEVDVCB2YXIxLnJlbG5hbWUgRlJPTSBwZ19j bGFzcyB2YXIxIFdIRVJFIHZhcjEucmVsbmFtZSA9ICdwZ19jbGFzcyc7CisKK0RST1AgVkFSSUFC TEUgdmFyMTsKKworQ1JFQVRFIFRBQkxFIHh4dGFiKGF2YXIgaW50KTsKKworSU5TRVJUIElOVE8g eHh0YWIgVkFMVUVTKDMzMyk7CisKK0NSRUFURSBUWVBFIHh4dHlwZSBBUyAoYXZhciBpbnQpOwor CitDUkVBVEUgVkFSSUFCTEUgeHh0YWIgQVMgeHh0eXBlOworCitJTlNFUlQgSU5UTyB4eHRhYiBW QUxVRVMoMTApOworCistLSBpdCBpcyBhbWJpZ3VvdXMsIGJ1dCBjb2x1bW5zIGFyZSBwcmVmZXJy ZWQKK1NFTEVDVCB4eHRhYi5hdmFyIEZST00geHh0YWI7CisKKy0tIHNob3VsZCBiZSBvaworU0VM RUNUIGF2YXIgRlJPTSB4eHRhYjsKKworQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy5hdmFyIEFTIGlu dDsKKworLS0gc2hvdWxkIGJlIG9rLCBzZWUgdGhlIHRhYmxlCitTRUxFQ1QgYXZhciBGUk9NIHh4 dGFiOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBwdWJsaWMuYXZhciBGUk9NIHh4dGFiOwor CitEUk9QIFZBUklBQkxFIHh4dGFiOworCitTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHh4dGFiOwor CitEUk9QIFZBUklBQkxFIHB1YmxpYy5hdmFyOworCitEUk9QIFRZUEUgeHh0eXBlOworCitEUk9Q IFRBQkxFIHh4dGFiOworCistLSBUaGUgdmFyaWFibGUgY2FuIGJlIHNoYWRvd2VkIGJ5IHRhYmxl IG9yIGJ5IGFsaWFzCitDUkVBVEUgVFlQRSBwdWJsaWMuc3Zhcl90eXBlIEFTIChhIGludCwgYiBp bnQsIGMgaW50KTsKK0NSRUFURSBWQVJJQUJMRSBwdWJsaWMuc3ZhciBBUyBwdWJsaWMuc3Zhcl90 eXBlOworCitDUkVBVEUgVEFCTEUgcHVibGljLnN2YXIoYSBpbnQsIGIgaW50KTsKKworSU5TRVJU IElOVE8gcHVibGljLnN2YXIgVkFMVUVTKDEwLCAyMCk7CisKK0xFVCBwdWJsaWMuc3ZhciA9ICgx MDAsIDIwMCwgMzAwKTsKKworLS0gc2hvdWxkIGJlIG9rCistLSBzaG93IHRhYmxlCitTRUxFQ1Qg KiBGUk9NIHB1YmxpYy5zdmFyOworU0VMRUNUIHN2YXIuYSBGUk9NIHB1YmxpYy5zdmFyOworU0VM RUNUIHN2YXIuKiBGUk9NIHB1YmxpYy5zdmFyOworCistLSBzaG93IHZhcmlhYmxlCitTRUxFQ1Qg cHVibGljLnN2YXI7CitTRUxFQ1QgcHVibGljLnN2YXIuYzsKK1NFTEVDVCAocHVibGljLnN2YXIp Lio7CisKKy0tIHRoZSB2YXJpYWJsZSBpcyBzaGFkb3dlZCwgcmFpc2UgZXJyb3IKK1NFTEVDVCBw dWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXI7CisKKy0tIGNhbiBiZSBmaXhlZCBieSBhbGlh cworU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhciB4OworCitTRUxFQ1Qgc3Zh ci5hIEZST00gcHVibGljLnN2YXI7CitTRUxFQ1Qgc3Zhci4qIEZST00gcHVibGljLnN2YXI7CisK Ky0tIHNob3cgdmFyaWFibGUKK1NFTEVDVCBwdWJsaWMuc3ZhcjsKK1NFTEVDVCBwdWJsaWMuc3Zh ci5jOworU0VMRUNUIChwdWJsaWMuc3ZhcikuKjsKKworLS0gdGhlIHZhcmlhYmxlIGlzIHNoYWRv d2VkLCByYWlzZSBlcnJvcgorU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhcjsK KworLS0gY2FuIGJlIGZpeGVkIGJ5IGFsaWFzCitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1 YmxpYy5zdmFyIHg7CisKK0RST1AgVkFSSUFCTEUgcHVibGljLnN2YXI7CitEUk9QIFRBQkxFIHB1 YmxpYy5zdmFyOworRFJPUCBUWVBFIHB1YmxpYy5zdmFyX3R5cGU7CisKKy0tIFRoZSBzZXF1ZW5j ZSBpZGVudC4qIGNhbm5vdCBiZSB1c2VkIGJ5IHJlZmVyZW5jZSB0byBzZXNzaW9uIHZhcmlhYmxl LAorLS0gYW5kIGluIHRoaXMgY2FzZSwgdGhlcmUgaXMgbm90IGNvbGxpc2lvbgorQ1JFQVRFIFND SEVNQSB2YXJ0ZXN0OworU0VUIFNFQVJDSF9QQVRIIFRPIHZhcnRlc3Q7CitDUkVBVEUgVEFCTEUg dmFydGVzdF9mb28oYSBpbnQsIGIgaW50KTsKK0lOU0VSVCBJTlRPIHZhcnRlc3RfZm9vIFZBTFVF UygxMCwyMCksICgzMCw0MCk7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcnRlc3RfZm9v OworTEVUIHZhcjEgPSAoMTAwLDIwMCk7CisKKy0tIHNob3VsZCB0byBmYWlsCitTRUxFQ1QgdmFy MS4qIEZST00gdmFydGVzdF9mb287CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjEuKiBG Uk9NIHZhcnRlc3RfZm9vIHZhcjE7CisKKy0tIHNob3VsZCB0byBmYWlsCitTRUxFQ1QgY291bnQo dmFyMS4qKSBGUk9NIHZhcnRlc3RfZm9vOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBjb3Vu dCh2YXIxLiopIEZST00gdmFydGVzdF9mb28gdmFyMTsKKworU0VUIFNFQVJDSF9QQVRIIFRPIERF RkFVTFQ7CitEUk9QIFNDSEVNQSB2YXJ0ZXN0IENBU0NBREU7CisKK0NSRUFURSBUWVBFIGFiIEFT IChhIGludGVnZXIsIGIgaW50ZWdlcik7CisKK0NSRUFURSBWQVJJQUJMRSB2X2FiIEFTIGFiOwor CitDUkVBVEUgVEFCTEUgdl9hYiAoYSBpbnRlZ2VyLCBiIGludGVnZXIpOworSU5TRVJUIElOVE8g dl9hYiBWQUxVRVMoMTAsMjApOworCistLSB3ZSBzaG91bGQgc2VlIHRhYmxlCitTRUxFQ1Qgdl9h Yi5hIEZST00gdl9hYjsKKworQ1JFQVRFIFNDSEVNQSB2X2FiOworCitDUkVBVEUgVkFSSUFCTEUg dl9hYi5hIEFTIGludGVnZXI7CisKKy0tIHdlIHNob3VsZCBzZWUgdGFibGUKK1NFTEVDVCB2X2Fi LmEgRlJPTSB2X2FiOworCitEUk9QIFZBUklBQkxFIHZfYWI7CitEUk9QIFRBQkxFIHZfYWI7CitE Uk9QIFRZUEUgYWI7CitEUk9QIFZBUklBQkxFIHZfYWIuYTsKK0RST1AgU0NIRU1BIHZfYWI7CisK K0NSRUFURSBUWVBFIHRfYW1fdHlwZSBBUyAoYiBpbnQpOworQ1JFQVRFIFNDSEVNQSB4eHhfYW07 CisKK1NFVCBzZWFyY2hfcGF0aCBUTyBwdWJsaWM7CisKK0NSRUFURSBWQVJJQUJMRSB4eHhfYW0g QVMgdF9hbV90eXBlOworTEVUIHh4eF9hbSA9IFJPVygxMCk7CisKKy0tIHNob3VsZCBiZSBvawor U0VMRUNUIHh4eF9hbTsKKworQ1JFQVRFIFZBUklBQkxFIHh4eF9hbS5iIEFTIGludDsKK0xFVCA6 IkRCTkFNRSIueHh4X2FtLmIgPSAyMDsKKworLS0gc2hvdWxkIGJlIHN0aWxsIG9rCitTRUxFQ1Qg eHh4X2FtOworCistLSBzaG91bGQgZmFpbCwgdGhlIHJlZmVyZW5jZSBzaG91bGQgYmUgYW1iaWd1 b3VzCitTRUxFQ1QgeHh4X2FtLmI7CisKKy0tIGVuaGFuY2VkIHJlZmVyZW5jZXMgc2hvdWxkIGJl IG9rCitTRUxFQ1QgcHVibGljLnh4eF9hbS5iOworU0VMRUNUIDoiREJOQU1FIi54eHhfYW0uYjsK KworQ1JFQVRFIFRBQkxFIHh4eF9hbShiICBpbnQpOworSU5TRVJUIElOVE8geHh4X2FtIFZBTFVF UygxMCk7CisKKy0tIHdlIHNob3VsZCBzZWUgdGFibGUKK1NFTEVDVCB4eHhfYW0uYiBGUk9NIHh4 eF9hbTsKK1NFTEVDVCB4LmIgRlJPTSB4eHhfYW0geDsKKworRFJPUCBUQUJMRSB4eHhfYW07CitE Uk9QIFZBUklBQkxFIHB1YmxpYy54eHhfYW07CitEUk9QIFZBUklBQkxFIHh4eF9hbS5iOworRFJP UCBTQ0hFTUEgeHh4X2FtOworCitDUkVBVEUgU0NIRU1BIDoiREJOQU1FIjsKKworQ1JFQVRFIFZB UklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUiIEFTIHRfYW1fdHlwZTsKK0NSRUFU RSBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLmIgQVMgaW50OworCitTRVQgc2VhcmNoX3Bh dGggVE8gOiJEQk5BTUUiOworCistLSBzaG91bGQgYmUgYW1iaWd1b3VzCitTRUxFQ1QgOiJEQk5B TUUiLmI7CisKKy0tIHNob3VsZCBiZSBhbWJpZ3VvdXMgdG9vCitTRUxFQ1QgOiJEQk5BTUUiLjoi REJOQU1FIi5iOworCitDUkVBVEUgVEFCTEUgOiJEQk5BTUUiKGIgaW50KTsKKworLS0gc2hvdWxk IGJlIG9rCitTRUxFQ1QgOiJEQk5BTUUiLmIgRlJPTSA6IkRCTkFNRSI7CisKK0RST1AgVEFCTEUg OiJEQk5BTUUiOworCitEUk9QIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuYjsKK0RST1Ag VkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi46IkRCTkFNRSI7CitEUk9QIFNDSEVNQSA6IkRC TkFNRSI7CisKK1JFU0VUIHNlYXJjaF9wYXRoOwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRl eCA5ZGMxNjk0MGI5ZC4uNDJkMThhZDBiOTEgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVu dC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBA IC0xNTQyLDYgKzE1NDIsNyBAQCBMYXJnZU9iamVjdERlc2MKIExhdGNoCiBMYXVuY2hlckxhc3RT dGFydFRpbWVzRW50cnkKIExlcnBGdW5jCitMZXRTdG10CiBMZXhEZXNjcgogTGV4ZW1lRW50cnkK IExleGVtZUhhc2hLZXkKQEAgLTI2OTksNiArMjcwMCw3IEBAIFNlcmlhbGl6ZWRUcmFuc2FjdGlv blN0YXRlCiBTZXNzaW9uCiBTZXNzaW9uQmFja3VwU3RhdGUKIFNlc3Npb25FbmRUeXBlCitTZXNz aW9uVmFyaWFibGVWYWx1ZQogU2V0Q29uc3RyYWludFN0YXRlCiBTZXRDb25zdHJhaW50U3RhdGVE YXRhCiBTZXRDb25zdHJhaW50VHJpZ2dlckRhdGEKQEAgLTI4OTcsNiArMjg5OSw5IEBAIFN1cHBv cnRSZXF1ZXN0Um93cwogU3VwcG9ydFJlcXVlc3RTZWxlY3Rpdml0eQogU3VwcG9ydFJlcXVlc3RT aW1wbGlmeQogU3VwcG9ydFJlcXVlc3RXRnVuY01vbm90b25pYworU1ZhcmlhYmxlCitTVmFyaWFi bGVEYXRhCitTVmFyaWFibGVTdGF0ZQogU3luCiBTeW5jT3BzCiBTeW5jUmVwQ29uZmlnRGF0YQot LSAKMi40OS4wCgo= --0000000000007e4205063527107b Content-Type: text/x-patch; charset="US-ASCII"; name="v20250515-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Disposition: attachment; filename="v20250515-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_map0d8497 RnJvbSA5YzM0MDJkYmIxN2E5NjQ1OWQ0NmVmY2Q2YjU1MmZjMWUxYjBhZWNkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTU6NDE6NTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDAx LzIxXSBFbmhhbmNpbmcgY2F0YWxvZyBmb3Igc3VwcG9ydCBzZXNzaW9uIHZhcmlhYmxlcyBhbmQK IHJlbGF0ZWQgc3VwcG9ydAoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBzeXN0ZW0gY2F0YWxv ZyB0YWJsZSBwZ192YXJpYWJsZS4gVGhpcyB0YWJsZSBob2xkcyBtZXRhZGF0YSBhYm91dApzZXNz aW9uIHZhcmlhYmxlcyBjcmVhdGVkIGJ5IGNvbW1hbmQgQ1JFQVRFIFZBUklBQkxFLCBhbmQgZHJv cHBlZCBieSBjb21tYW5kIERST1AgVkFSSUFCTEUuCkJvdGggY29tbWFuZHMgYXJlIGltcGxlbWVu dGVkIGJ5IHRoaXMgcGF0Y2guIFBvc3NpYmlsaXR5IHRvIGNoYW5nZSBvd25lciwgc2NoZW1hIG9y IHJlbmFtZS4KCkFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgY29udHJvbGxlZCBi eSBTRUxFQ1Qgb3IgVVBEQVRFIHJpZ2h0cy4gQm90aCByaWdodHMgYXJlCmludHJvZHVjZWQgYnkg dGhpcyBwYXRjaCB0b28uCgpUaGlzIHBhdGNoIGVuaGFuY2luZyBwZ19kdW1wIGFuZCBwc3FsIHRv IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMuIFRoZSBjaGFuZ2VzIGFyZSByZWxhdGVkCnRvIHN5 c3RlbSBjYXRhbG9nLgoKVGhpcyBwYXRjaCBpcyBub3Qgc2hvcnQsIGJ1dCB0aGUgY29kZSBpcyBz aW1wbGUuCi0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgMTIxICsrKysrCiBkb2Mvc3JjL3NnbWwvZGRsLnNnbWwgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgNDAgKy0KIGRvYy9zcmMvc2dtbC9mdW5jLnNnbWwgICAgICAgICAgICAgICAgICAgICAg ICB8ICAzMiArKwogZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgICAgICAgICAgICAgICAgICAg IHwgIDE1ICsKIGRvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAgICB8 ICAgMyArCiAuLi4vc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwgICAgfCAg MjkgKy0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCAgICAgICAgICB8IDE3 OCArKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbCAgICAgICAgICAgICAgICAg fCAgIDEgKwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwgICAgICAgICAgIHwg IDEyICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAx NDkgKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbCAgICAgICAgICAg fCAxMTcgKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbCAgICAgICAgICAgICAgICAg ICB8ICAyMCArLQogZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sICAgICAgICAgICAgICAg IHwgIDEzICsKIGRvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwgICAgICAgICAgICAgICAgICB8 ICAgOCArCiBkb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgICAgICAgICAgICAgICAgICAgfCAg IDMgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgIHwgICAx ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAgICAgICAgICAgICB8ICA3NiAr KysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jICAgICAgICAgICAgICB8ICAgNiAr CiBzcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgfCAgIDEgKwog c3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyAgICAgICAgICAgICAgIHwgMjIxICsrKysr KysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgICAgICAgICAgIHwgMTIx ICsrKystCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3NoZGVwZW5kLmMgICAgICAgICAgICAgfCAg IDIgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jICAgICAgICAgICAgIHwgMjUx ICsrKysrKysrKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMgICAgICAgICAgICAgICAg ICB8ICAgOSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jICAgICAgICAgICAgICAg fCAgIDQgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jICAgICAgICAgIHwg ICA0ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMgICAgICAgICAgICAgICB8ICAg MSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgNDEg KysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMgICAgICAgICAgICAgICB8ICAxNSAr CiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAxMDUgKysr Ky0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgICAgICAgICAgICB8ICAxMiAr CiBzcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAgMjAgKwog c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jICAgICAgICAgICAgICAgICAgIHwgMjIxICsrKysr KysrKwogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMgICAgICAgICAgIHwgMTEz ICsrKysrCiBzcmMvYmluL3BnX2R1bXAvY29tbW9uLmMgICAgICAgICAgICAgICAgICAgICAgfCAg IDMgKwogc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5jICAgICAgICAgICAgICAgICAgIHwgICA2 ICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaCAgICAgICAgICAgICAgICAgICB8ICAgMiAr CiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMgICAgICAgICAgfCAgIDkgKwog c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgMTkwICsrKysr KysrCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgMTUg Kwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jICAgICAgICAgICAgICAgIHwgICA3ICsK IHNyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8ICA2NCArKysK IHNyYy9iaW4vcHNxbC9jb21tYW5kLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBz cmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAxMDAgKysrLQog c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmggICAgICAgICAgICAgICAgICAgICAgIHwgICAzICsKIHNy Yy9iaW4vcHNxbC9oZWxwLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICAgICAgfCAgNDUgKy0KIHNyYy9p bmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAgMyArLQogc3JjL2lu Y2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNs dWRlL2NhdGFsb2cvbmFtZXNwYWNlLmggICAgICAgICAgICAgICB8ICAgNiArCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2RlZmF1bHRfYWNsLmggICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgIDIzICsKIHNyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICA4MSArKysrCiBzcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgMTYgKwogc3JjL2luY2x1ZGUvcGFy c2VyL2t3bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL3Rjb3Av Y21kdGFnbGlzdC5oICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS91dGlscy9h Y2wuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvdXRpbHMvbHN5 c2NhY2hlLmggICAgICAgICAgICAgICAgIHwgICA5ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvZGVwZW5kZW5jeS5vdXQgICAgICB8ICAxNyArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L29pZGpvaW5zLm91dCAgICAgICAgfCAgIDQgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9w c3FsLm91dCAgICAgICAgICAgIHwgIDUwICsrCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQgICAgfCA0MzMgKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdy ZXNzL3BhcmFsbGVsX3NjaGVkdWxlICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2RlcGVuZGVuY3kuc3FsICAgICAgICAgICB8ICAxNCArCiBzcmMvdGVzdC9yZWdyZXNz L3NxbC9wc3FsLnNxbCAgICAgICAgICAgICAgICAgfCAgMjEgKwogc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgMjk3ICsrKysrKysrKysrKwogc3JjL3Rvb2xz L3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgICA0ICsKIDY3IGZpbGVzIGNo YW5nZWQsIDMzNjYgaW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx MDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCiBjcmVhdGUgbW9kZSAx MDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUg MTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRh bG9ncy5zZ21sCmluZGV4IGNiZDRlNDBhMzIwLi5mYzU2MjM2MTc5MiAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwK QEAgLTM2OSw2ICszNjksMTEgQEAKICAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9n LXBnLXVzZXItbWFwcGluZyI+PHN0cnVjdG5hbWU+cGdfdXNlcl9tYXBwaW5nPC9zdHJ1Y3RuYW1l PjwvbGluaz48L2VudHJ5PgogICAgICAgPGVudHJ5Pm1hcHBpbmdzIG9mIHVzZXJzIHRvIGZvcmVp Z24gc2VydmVyczwvZW50cnk+CiAgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50 cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy12YXJpYWJsZSI+PHN0cnVjdG5hbWU+cGdfdmFy aWFibGU8L3N0cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+CisgICAgICA8ZW50cnk+c2Vzc2lvbiB2 YXJpYWJsZXM8L2VudHJ5PgorICAgICA8L3Jvdz4KICAgICA8L3Rib2R5PgogICAgPC90Z3JvdXA+ CiAgIDwvdGFibGU+CkBAIC0zMzYyLDYgKzMzNjcsNyBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNl YWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4m bAogICAgICAgIDxsaXRlcmFsPlQ8L2xpdGVyYWw+ID0gdHlwZSwKICAgICAgICA8bGl0ZXJhbD5u PC9saXRlcmFsPiA9IHNjaGVtYSwKICAgICAgICA8bGl0ZXJhbD5MPC9saXRlcmFsPiA9IGxhcmdl IG9iamVjdAorICAgICAgIDxsaXRlcmFsPlY8L2xpdGVyYWw+ID0gc2Vzc2lvbiB2YXJpYWJsZQog ICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCkBAIC05Nzc5LDQgKzk3ODUsMTE5 IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9y ZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgIDwvdGFibGU+CiAgPC9zZWN0MT4KIAorIDxz ZWN0MSBpZD0iY2F0YWxvZy1wZy12YXJpYWJsZSI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ192 YXJpYWJsZTwvc3RydWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRleHRlcm0gem9uZT0iY2F0YWxv Zy1wZy12YXJpYWJsZSI+CisgICA8cHJpbWFyeT5wZ192YXJpYWJsZTwvcHJpbWFyeT4KKyAgPC9p bmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgY2F0YWxvZyA8c3RydWN0bmFtZT5wZ192YXJp YWJsZTwvc3RydWN0bmFtZT4gc3RvcmVzIGluZm9ybWF0aW9uIGFib3V0CisgICBzZXNzaW9uIHZh cmlhYmxlcy4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFtZT5w Z192YXJpYWJsZTwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9 IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29s dW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9u CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAg IDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk Pm9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgIFJvdyBpZGVudGlmaWVyCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPnZhcnR5cGU8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVy ZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy10eXBlIj48c3RydWN0bmFtZT5wZ190eXBl PC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIE9JRCBvZiB0aGUgdmFyaWFibGUn cyBkYXRhIHR5cGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFybmFtZTwvc3RydWN0 ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICBOYW1lIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPnZhcm5hbWVzcGFjZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAg ICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLW5hbWVzcGFjZSI+PHN0cnVj dG5hbWU+cGdfbmFtZXNwYWNlPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwv c3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIE9J RCBvZiB0aGUgbmFtZXNwYWNlIHRoYXQgY29udGFpbnMgdGhpcyB2YXJpYWJsZQorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJvd25lcjwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlw ZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWF1dGhpZCI+ PHN0cnVjdG5hbWU+cGdfYXV0aGlkPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9p ZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgT3du ZXIgb2YgdGhlIHZhcmlhYmxlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcnR5cG1v ZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFydHlwbW9kPC9zdHJ1Y3RmaWVsZD4gcmVjb3Jk cyB0eXBlLXNwZWNpZmljIGRhdGEKKyAgICAgICBzdXBwbGllZCBhdCB2YXJpYWJsZSBjcmVhdGlv biB0aW1lIChmb3IgZXhhbXBsZSwgdGhlIG1heGltdW0KKyAgICAgICBsZW5ndGggb2YgYSA8dHlw ZT52YXJjaGFyPC90eXBlPiBjb2x1bW4pLiAgSXQgaXMgcGFzc2VkIHRvCisgICAgICAgdHlwZS1z cGVjaWZpYyBpbnB1dCBmdW5jdGlvbnMgYW5kIGxlbmd0aCBjb2VyY2lvbiBmdW5jdGlvbnMuCisg ICAgICAgVGhlIHZhbHVlIHdpbGwgZ2VuZXJhbGx5IGJlIC0xIGZvciB0eXBlcyB0aGF0IGRvIG5v dCBuZWVkIDxzdHJ1Y3RmaWVsZD52YXJ0eXBtb2Q8L3N0cnVjdGZpZWxkPi4KKyAgICAgIDwvcGFy YT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAg ICAgICA8c3RydWN0ZmllbGQ+dmFyY29sbGF0aW9uPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90 eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY29sbGF0 aW9uIj48c3RydWN0bmFtZT5wZ19jb2xsYXRpb248L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0 ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICBUaGUgZGVmaW5lZCBjb2xsYXRpb24gb2YgdGhlIHZhcmlhYmxlLCBvciB6ZXJvIGlmIHRo ZSB2YXJpYWJsZSBpcworICAgICAgIG5vdCBvZiBhIGNvbGxhdGFibGUgZGF0YSB0eXBlLgorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJhY2w8L3N0cnVjdGZpZWxkPiA8dHlwZT5hY2xp dGVtW108L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBBY2Nlc3Mg cHJpdmlsZWdlczsgc2VlCisgICAgICAgPHhyZWYgbGlua2VuZD0ic3FsLWdyYW50Ii8+IGFuZAor ICAgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1yZXZva2UiLz4KKyAgICAgICBmb3IgZGV0YWlscwor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgPC90Ym9keT4KKyAgIDwv dGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CiA8L2NoYXB0ZXI+CmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggZmNkMWNi ODUzNTIuLjY2ZmEyNjdmYWNjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC0yMDE1LDYgKzIwMTUsNyBAQCBSRVZPS0UgQUxM IE9OIGFjY291bnRzIEZST00gUFVCTElDOwogICAgICAgIEZvciBzZXF1ZW5jZXMsIHRoaXMgcHJp dmlsZWdlIGFsc28gYWxsb3dzIHVzZSBvZiB0aGUKICAgICAgICA8ZnVuY3Rpb24+Y3VycnZhbDwv ZnVuY3Rpb24+IGZ1bmN0aW9uLgogICAgICAgIEZvciBsYXJnZSBvYmplY3RzLCB0aGlzIHByaXZp bGVnZSBhbGxvd3MgdGhlIG9iamVjdCB0byBiZSByZWFkLgorICAgICAgIEZvciBzZXNzaW9uIHZh cmlhYmxlcywgdGhpcyAgcHJpdmlsZWdlIGFsbG93cyB0aGUgb2JqZWN0IHRvIGJlIHJlYWQuCiAg ICAgICA8L3BhcmE+CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50cnk+CkBAIC0y MDUwLDYgKzIwNTEsOCBAQCBSRVZPS0UgQUxMIE9OIGFjY291bnRzIEZST00gUFVCTElDOwogICAg ICAgIDxmdW5jdGlvbj5zZXR2YWw8L2Z1bmN0aW9uPiBmdW5jdGlvbnMuCiAgICAgICAgRm9yIGxh cmdlIG9iamVjdHMsIHRoaXMgcHJpdmlsZWdlIGFsbG93cyB3cml0aW5nIG9yIHRydW5jYXRpbmcg dGhlCiAgICAgICAgb2JqZWN0LgorICAgICAgIEZvciBzZXNzaW9uIHZhcmlhYmxlcywgdGhpcyBw cml2aWxlZ2UgYWxsb3dzIHRvIHNldCBhIHZhbHVlIHRvIHRoZQorICAgICAgIG9iamVjdC4KICAg ICAgIDwvcGFyYT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTIy OTMsNyArMjI5Niw4IEBAIFJFVk9LRSBBTEwgT04gYWNjb3VudHMgRlJPTSBQVUJMSUM7CiAgICAg ICAgPGxpdGVyYWw+TEFSR0UgT0JKRUNUPC9saXRlcmFsPiwKICAgICAgICA8bGl0ZXJhbD5TRVFV RU5DRTwvbGl0ZXJhbD4sCiAgICAgICAgPGxpdGVyYWw+VEFCTEU8L2xpdGVyYWw+IChhbmQgdGFi bGUtbGlrZSBvYmplY3RzKSwKLSAgICAgICB0YWJsZSBjb2x1bW4KKyAgICAgICB0YWJsZSBjb2x1 bW4sCisgICAgICAgPGxpdGVyYWw+U0VTU0lPTiBWQVJJQUJMRTwvbGl0ZXJhbD4KICAgICAgIDwv ZW50cnk+CiAgICAgIDwvcm93PgogICAgICA8cm93PgpAQCAtMjMwOCw3ICsyMzEyLDggQEAgUkVW T0tFIEFMTCBPTiBhY2NvdW50cyBGUk9NIFBVQkxJQzsKICAgICAgICA8bGl0ZXJhbD5MQVJHRSBP QkpFQ1Q8L2xpdGVyYWw+LAogICAgICAgIDxsaXRlcmFsPlNFUVVFTkNFPC9saXRlcmFsPiwKICAg ICAgICA8bGl0ZXJhbD5UQUJMRTwvbGl0ZXJhbD4sCi0gICAgICAgdGFibGUgY29sdW1uCisgICAg ICAgdGFibGUgY29sdW1uLAorICAgICAgIDxsaXRlcmFsPlNFU1NJT04gVkFSSUFCTEU8L2xpdGVy YWw+CiAgICAgICA8L2VudHJ5PgogICAgICA8L3Jvdz4KICAgICAgPHJvdz4KQEAgLTI0OTUsNiAr MjUwMCwxMiBAQCBSRVZPS0UgQUxMIE9OIGFjY291bnRzIEZST00gUFVCTElDOwogICAgICAgPGVu dHJ5PjxsaXRlcmFsPlU8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgIDxlbnRyeT48bGl0ZXJhbD5c ZFQrPC9saXRlcmFsPjwvZW50cnk+CiAgICAgIDwvcm93PgorICAgICA8cm93PgorICAgICAgPGVu dHJ5PjxsaXRlcmFsPlNFU1NJT04gVkFSSUFCTEU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxl bnRyeT48bGl0ZXJhbD5ydzwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFs Pm5vbmU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD5cZFYrPC9saXRl cmFsPjwvZW50cnk+CisgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4KICAg PC90YWJsZT4KQEAgLTUzNTEsNiArNTM2MiwzMSBAQCBFWFBMQUlOIFNFTEVDVCBjb3VudCgqKSBG Uk9NIG1lYXN1cmVtZW50IFdIRVJFIGxvZ2RhdGUgJmd0Oz0gREFURSAnMjAwOC0wMS0wMSc7CiAg ICA8L3BhcmE+CiAgPC9zZWN0MT4KIAorICA8c2VjdDEgaWQ9ImRkbC1zZXNzaW9uLXZhcmlhYmxl cyI+CisgICA8dGl0bGU+U2Vzc2lvbiBWYXJpYWJsZXM8L3RpdGxlPgorCisgICA8aW5kZXh0ZXJt IHpvbmU9ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyI+CisgICAgPHByaW1hcnk+U2Vzc2lvbiB2YXJp YWJsZXM8L3ByaW1hcnk+CisgICA8L2luZGV4dGVybT4KKworICAgPGluZGV4dGVybT4KKyAgICA8 cHJpbWFyeT5zZXNzaW9uIHZhcmlhYmxlPC9wcmltYXJ5PgorICAgPC9pbmRleHRlcm0+CisKKyAg IDxwYXJhPgorICAgIFNlc3Npb24gdmFyaWFibGVzIGFyZSBkYXRhYmFzZSBvYmplY3RzIHRoYXQg Y2FuIGhvbGQgYSB2YWx1ZS4KKyAgICBTZXNzaW9uIHZhcmlhYmxlcywgbGlrZSByZWxhdGlvbnMs IGV4aXN0IHdpdGhpbiBhIHNjaGVtYSBhbmQgdGhlaXIgYWNjZXNzCisgICAgaXMgY29udHJvbGxl ZCB2aWEgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGFuZCA8Y29tbWFuZD5SRVZPS0U8L2NvbW1h bmQ+CisgICAgY29tbWFuZHMuICBBIHNlc3Npb24gdmFyaWFibGUgY2FuIGJlIGNyZWF0ZWQgYnkg dGhlIDxjb21tYW5kPkNSRUFURQorICAgIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kLgorICAg PC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUgc2Vzc2lvbiB2YXJpYWJsZSBob2xkcyB2YWx1 ZSBpbiBzZXNzaW9uIG1lbW9yeS4gIFRoaXMgdmFsdWUgaXMgcHJpdmF0ZQorICAgIHRvIGVhY2gg c2Vzc2lvbiBhbmQgaXMgcmVsZWFzZWQgd2hlbiB0aGUgc2Vzc2lvbiBlbmRzLgorICAgPC9wYXJh PgorICA8L3NlY3QxPgorCiAgPHNlY3QxIGlkPSJkZGwtb3RoZXJzIj4KICAgPHRpdGxlPk90aGVy IERhdGFiYXNlIE9iamVjdHM8L3RpdGxlPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZnVu Yy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbAppbmRleCBiNDA1NTI1YTQ2NS4uMGZkZjYx M2RjNWUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL2Z1bmMuc2dtbApAQCAtMjU2MDIsNiArMjU2MDIsMjUgQEAgU0VMRUNUIGhhc19mdW5jdGlv bl9wcml2aWxlZ2UoJ2pvZXVzZXInLCAnbXlmdW5jKGludCwgdGV4dCknLCAnZXhlY3V0ZScpOwog ICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICAgPC9yb3c+CiAKKyAgICAgIDxyb3c+CisgICAg ICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImZ1bmNfc2lnbmF0 dXJlIj4KKyAgICAgICAgPGluZGV4dGVybT4KKyAgICAgICAgIDxwcmltYXJ5Pmhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZTwvcHJpbWFyeT4KKyAgICAgICAgPC9pbmRleHRlcm0+CisgICAg ICAgIDxmdW5jdGlvbj5oYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2U8L2Z1bmN0aW9uPiAo CisgICAgICAgICAgPG9wdGlvbmFsPiA8cGFyYW1ldGVyPnVzZXI8L3BhcmFtZXRlcj4gPHR5cGU+ bmFtZTwvdHlwZT4gb3IgPHR5cGU+b2lkPC90eXBlPiwgPC9vcHRpb25hbD4KKyAgICAgICAgICA8 cGFyYW1ldGVyPnNlc3Npb25fdmFyaWFibGU8L3BhcmFtZXRlcj4gPHR5cGU+dGV4dDwvdHlwZT4g b3IgPHR5cGU+b2lkPC90eXBlPiwKKyAgICAgICAgICA8cGFyYW1ldGVyPnByaXZpbGVnZTwvcGFy YW1ldGVyPiA8dHlwZT50ZXh0PC90eXBlPiApCisgICAgICAgIDxyZXR1cm52YWx1ZT5ib29sZWFu PC9yZXR1cm52YWx1ZT4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIERv ZXMgdXNlciBoYXZlIHByaXZpbGVnZSBmb3Igc2Vzc2lvbiB2YXJpYWJsZT8KKyAgICAgICAgQWxs b3dhYmxlIHByaXZpbGVnZSB0eXBlcyBhcmUKKyAgICAgICAgPGxpdGVyYWw+U0VMRUNUPC9saXRl cmFsPiwgYW5kCisgICAgICAgIDxsaXRlcmFsPlVQREFURTwvbGl0ZXJhbD4uCisgICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgICA8L3Jvdz4KKwogICAgICAgPHJvdz4KICAgICAgICA8ZW50cnkg cm9sZT0iZnVuY190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgogICAg ICAgICA8aW5kZXh0ZXJtPgpAQCAtMjYxMTAsNiArMjYxMjksMTkgQEAgU0VMRUNUIHJlbG5hbWUg RlJPTSBwZ19jbGFzcyBXSEVSRSBwZ190YWJsZV9pc192aXNpYmxlKG9pZCk7CiAgICAgICAgIElz IHR5cGUgKG9yIGRvbWFpbikgdmlzaWJsZSBpbiBzZWFyY2ggcGF0aD8KICAgICAgICA8L3BhcmE+ PC9lbnRyeT4KICAgICAgIDwvcm93PgorCisgICAgICA8cm93PgorICAgICAgIDxlbnRyeSByb2xl PSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+CisgICAgICAg IDxpbmRleHRlcm0+CisgICAgICAgICA8cHJpbWFyeT5wZ192YXJpYWJsZV9pc192aXNpYmxlPC9w cmltYXJ5PgorICAgICAgICA8L2luZGV4dGVybT4KKyAgICAgICAgPGZ1bmN0aW9uPnBnX3Zhcmlh YmxlX2lzX3Zpc2libGU8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+dmFyaWFibGU8L3BhcmFtZXRl cj4gPHR5cGU+b2lkPC90eXBlPiApCisgICAgICAgIDxyZXR1cm52YWx1ZT5ib29sZWFuPC9yZXR1 cm52YWx1ZT4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIElzIHNlc3Np b24gdmFyaWFibGUgdmlzaWJsZSBpbiBzZWFyY2ggcGF0aD8KKyAgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgIDwvcm93PgogICAgICA8L3Rib2R5PgogICAgIDwvdGdyb3VwPgogICAgPC90YWJs ZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sIGIvZG9jL3NyYy9zZ21s L2dsb3NzYXJ5LnNnbWwKaW5kZXggYjg4Y2FjNTk4ZTkuLjgzYjEzZjk4ZjI4IDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnku c2dtbApAQCAtMTcwOCw2ICsxNzA4LDIxIEBACiAgICA8L2dsb3NzZGVmPgogICA8L2dsb3NzZW50 cnk+CiAKKyAgPGdsb3NzZW50cnkgaWQ9Imdsb3NzYXJ5LXNlc3Npb24tdmFyaWFibGUiPgorICAg PGdsb3NzdGVybT5TZXNzaW9uIHZhcmlhYmxlPC9nbG9zc3Rlcm0+CisgICA8Z2xvc3NkZWY+Cisg ICAgPHBhcmE+CisgICAgIEEgcGVyc2lzdGVudCBkYXRhYmFzZSBvYmplY3QgdGhhdCBob2xkcyBh IHZhbHVlIGluIHNlc3Npb24gbWVtb3J5LiAgVGhpcworICAgICB2YWx1ZSBpcyBwcml2YXRlIHRv IGVhY2ggc2Vzc2lvbiBhbmQgaXMgcmVsZWFzZWQgd2hlbiB0aGUgc2Vzc2lvbiBlbmRzLgorICAg ICBSZWFkIG9yIHdyaXRlIGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBpcyBjb250cm9sbGVk IGJ5IHByaXZpbGVnZXMsCisgICAgIHNpbWlsYXIgdG8gb3RoZXIgZGF0YWJhc2Ugb2JqZWN0cy4K KyAgICA8L3BhcmE+CisgICAgPHBhcmE+CisgICAgIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUg PHhyZWYgbGlua2VuZD0iZGRsLXNlc3Npb24tdmFyaWFibGVzIi8+LgorICAgIDwvcGFyYT4KKyAg IDwvZ2xvc3NkZWY+CisgIDwvZ2xvc3NlbnRyeT4KKwogICA8Z2xvc3NlbnRyeSBpZD0iZ2xvc3Nh cnktc2hhcmVkLW1lbW9yeSI+CiAgICA8Z2xvc3N0ZXJtPlNoYXJlZCBtZW1vcnk8L2dsb3NzdGVy bT4KICAgIDxnbG9zc2RlZj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMu c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAppbmRleCBmNWJlNjM4ODY3YS4u MmY2N2RlM2UyMWIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKQEAgLTQ3LDYgKzQ3LDcgQEAgQ29t cGxldGUgbGlzdCBvZiB1c2FibGUgc2dtbCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3Rvcnku CiA8IUVOVElUWSBhbHRlclR5cGUgICAgICAgICAgU1lTVEVNICJhbHRlcl90eXBlLnNnbWwiPgog PCFFTlRJVFkgYWx0ZXJVc2VyICAgICAgICAgIFNZU1RFTSAiYWx0ZXJfdXNlci5zZ21sIj4KIDwh RU5USVRZIGFsdGVyVXNlck1hcHBpbmcgICBTWVNURU0gImFsdGVyX3VzZXJfbWFwcGluZy5zZ21s Ij4KKzwhRU5USVRZIGFsdGVyVmFyaWFibGUgICAgICBTWVNURU0gImFsdGVyX3ZhcmlhYmxlLnNn bWwiPgogPCFFTlRJVFkgYWx0ZXJWaWV3ICAgICAgICAgIFNZU1RFTSAiYWx0ZXJfdmlldy5zZ21s Ij4KIDwhRU5USVRZIGFuYWx5emUgICAgICAgICAgICBTWVNURU0gImFuYWx5emUuc2dtbCI+CiA8 IUVOVElUWSBiZWdpbiAgICAgICAgICAgICAgU1lTVEVNICJiZWdpbi5zZ21sIj4KQEAgLTk5LDYg KzEwMCw3IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxlIHNnbWwgc291cmNlIGZpbGVzIGluIHRo aXMgZGlyZWN0b3J5LgogPCFFTlRJVFkgY3JlYXRlVHlwZSAgICAgICAgIFNZU1RFTSAiY3JlYXRl X3R5cGUuc2dtbCI+CiA8IUVOVElUWSBjcmVhdGVVc2VyICAgICAgICAgU1lTVEVNICJjcmVhdGVf dXNlci5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZVVzZXJNYXBwaW5nICBTWVNURU0gImNyZWF0ZV91 c2VyX21hcHBpbmcuc2dtbCI+Cis8IUVOVElUWSBjcmVhdGVWYXJpYWJsZSAgICAgU1lTVEVNICJj cmVhdGVfdmFyaWFibGUuc2dtbCI+CiA8IUVOVElUWSBjcmVhdGVWaWV3ICAgICAgICAgU1lTVEVN ICJjcmVhdGVfdmlldy5zZ21sIj4KIDwhRU5USVRZIGRlYWxsb2NhdGUgICAgICAgICBTWVNURU0g ImRlYWxsb2NhdGUuc2dtbCI+CiA8IUVOVElUWSBkZWNsYXJlICAgICAgICAgICAgU1lTVEVNICJk ZWNsYXJlLnNnbWwiPgpAQCAtMTQ3LDYgKzE0OSw3IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxl IHNnbWwgc291cmNlIGZpbGVzIGluIHRoaXMgZGlyZWN0b3J5LgogPCFFTlRJVFkgZHJvcFR5cGUg ICAgICAgICAgIFNZU1RFTSAiZHJvcF90eXBlLnNnbWwiPgogPCFFTlRJVFkgZHJvcFVzZXIgICAg ICAgICAgIFNZU1RFTSAiZHJvcF91c2VyLnNnbWwiPgogPCFFTlRJVFkgZHJvcFVzZXJNYXBwaW5n ICAgIFNZU1RFTSAiZHJvcF91c2VyX21hcHBpbmcuc2dtbCI+Cis8IUVOVElUWSBkcm9wVmFyaWFi bGUgICAgICAgU1lTVEVNICJkcm9wX3ZhcmlhYmxlLnNnbWwiPgogPCFFTlRJVFkgZHJvcFZpZXcg ICAgICAgICAgIFNZU1RFTSAiZHJvcF92aWV3LnNnbWwiPgogPCFFTlRJVFkgZW5kICAgICAgICAg ICAgICAgIFNZU1RFTSAiZW5kLnNnbWwiPgogPCFFTlRJVFkgZXhlY3V0ZSAgICAgICAgICAgIFNZ U1RFTSAiZXhlY3V0ZS5zZ21sIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf ZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2RlZmF1bHRf cHJpdmlsZWdlcy5zZ21sCmluZGV4IDZhY2QwZjFkZjkxLi5iYzczODE3MDYxZiAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2RlZmF1bHRfcHJpdmlsZWdlcy5zZ21sCkBAIC01Niw2ICs1 NiwxMSBAQCBHUkFOVCB7IHsgU0VMRUNUIHwgVVBEQVRFIH0KICAgICBPTiBMQVJHRSBPQkpFQ1RT CiAgICAgVE8geyBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVf bmFtZTwvcmVwbGFjZWFibGU+IHwgUFVCTElDIH0gWywgLi4uXSBbIFdJVEggR1JBTlQgT1BUSU9O IF0KIAorR1JBTlQgeyB7IFNFTEVDVCB8IFVQREFURSB9CisgICAgWywgLi4uXSB8IEFMTCBbIFBS SVZJTEVHRVMgXSB9CisgICAgT04gVkFSSUFCTEVTCisgICAgVE8geyBbIEdST1VQIF0gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IHwgUFVCTElD IH0gWywgLi4uXSBbIFdJVEggR1JBTlQgT1BUSU9OIF0KKwogUkVWT0tFIFsgR1JBTlQgT1BUSU9O IEZPUiBdCiAgICAgeyB7IFNFTEVDVCB8IElOU0VSVCB8IFVQREFURSB8IERFTEVURSB8IFRSVU5D QVRFIHwgUkVGRVJFTkNFUyB8IFRSSUdHRVIgfCBNQUlOVEFJTiB9CiAgICAgWywgLi4uXSB8IEFM TCBbIFBSSVZJTEVHRVMgXSB9CkBAIC05NSw2ICsxMDAsMTQgQEAgUkVWT0tFIFsgR1JBTlQgT1BU SU9OIEZPUiBdCiAgICAgT04gTEFSR0UgT0JKRUNUUwogICAgIEZST00geyBbIEdST1VQIF0gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IHwgUFVC TElDIH0gWywgLi4uXQogICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKworUkVWT0tFIFsgR1JB TlQgT1BUSU9OIEZPUiBdCisgICAgeyB7IFNFTEVDVCB8IFVQREFURSB9CisgICAgWywgLi4uXSB8 IEFMTCBbIFBSSVZJTEVHRVMgXSB9CisgICAgeyB7IFNFTEVDVCB8IFVQREFURSB9IFssIC4uLl0g fCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9OIFZBUklBQkxFUworICAgIEZST00geyBbIEdS T1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFi bGU+IHwgUFVCTElDIH0gWywgLi4uXQorICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KIDwvc3lu b3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KIApAQCAtMTI5LDE0ICsxNDIsMTQgQEAgUkVWT0tF IFsgR1JBTlQgT1BUSU9OIEZPUiBdCiAgIDxwYXJhPgogICAgQ3VycmVudGx5LAogICAgb25seSB0 aGUgcHJpdmlsZWdlcyBmb3Igc2NoZW1hcywgdGFibGVzIChpbmNsdWRpbmcgdmlld3MgYW5kIGZv cmVpZ24KLSAgIHRhYmxlcyksIHNlcXVlbmNlcywgZnVuY3Rpb25zLCB0eXBlcyAoaW5jbHVkaW5n IGRvbWFpbnMpLCBhbmQgbGFyZ2Ugb2JqZWN0cwotICAgY2FuIGJlIGFsdGVyZWQuICBGb3IgdGhp cyBjb21tYW5kLCBmdW5jdGlvbnMgaW5jbHVkZSBhZ2dyZWdhdGVzIGFuZCBwcm9jZWR1cmVzLgot ICAgVGhlIHdvcmRzIDxsaXRlcmFsPkZVTkNUSU9OUzwvbGl0ZXJhbD4gYW5kIDxsaXRlcmFsPlJP VVRJTkVTPC9saXRlcmFsPiBhcmUKLSAgIGVxdWl2YWxlbnQgaW4gdGhpcyBjb21tYW5kLiAgKDxs aXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBpcyBwcmVmZXJyZWQKLSAgIGdvaW5nIGZvcndhcmQg YXMgdGhlIHN0YW5kYXJkIHRlcm0gZm9yIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyB0YWtlbgot ICAgdG9nZXRoZXIuICBJbiBlYXJsaWVyIFBvc3RncmVTUUwgcmVsZWFzZXMsIG9ubHkgdGhlCi0g ICB3b3JkIDxsaXRlcmFsPkZVTkNUSU9OUzwvbGl0ZXJhbD4gd2FzIGFsbG93ZWQuICBJdCBpcyBu b3QgcG9zc2libGUgdG8gc2V0Ci0gICBkZWZhdWx0IHByaXZpbGVnZXMgZm9yIGZ1bmN0aW9ucyBh bmQgcHJvY2VkdXJlcyBzZXBhcmF0ZWx5LikKKyAgIHRhYmxlcyksIHNlcXVlbmNlcywgZnVuY3Rp b25zLCB0eXBlcyAoaW5jbHVkaW5nIGRvbWFpbnMpLCBsYXJnZSBvYmplY3RzCisgICBhbmQgc2Vz c2lvbiB2YXJpYWJsZXMgY2FuIGJlIGFsdGVyZWQuICBGb3IgdGhpcyBjb21tYW5kLCBmdW5jdGlv bnMgaW5jbHVkZQorICAgYWdncmVnYXRlcyBhbmQgcHJvY2VkdXJlcy4gIFRoZSB3b3JkcyA8bGl0 ZXJhbD5GVU5DVElPTlM8L2xpdGVyYWw+IGFuZAorICAgPGxpdGVyYWw+Uk9VVElORVM8L2xpdGVy YWw+IGFyZSBlcXVpdmFsZW50IGluIHRoaXMgY29tbWFuZC4KKyAgICg8bGl0ZXJhbD5ST1VUSU5F UzwvbGl0ZXJhbD4gaXMgcHJlZmVycmVkIGdvaW5nIGZvcndhcmQgYXMgdGhlIHN0YW5kYXJkIHRl cm0KKyAgIGZvciBmdW5jdGlvbnMgYW5kIHByb2NlZHVyZXMgdGFrZW4gdG9nZXRoZXIuICBJbiBl YXJsaWVyIFBvc3RncmVTUUwgcmVsZWFzZXMsCisgICBvbmx5IHRoZSB3b3JkIDxsaXRlcmFsPkZV TkNUSU9OUzwvbGl0ZXJhbD4gd2FzIGFsbG93ZWQuICBJdCBpcyBub3QgcG9zc2libGUKKyAgIHRv IHNldCBkZWZhdWx0IHByaXZpbGVnZXMgZm9yIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyBzZXBh cmF0ZWx5LikKICAgPC9wYXJhPgogCiAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJs ZS5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45NmQyNTg2NDIz ZQotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dt bApAQCAtMCwwICsxLDE3OCBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJs ZS5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNx bC1hbHRlcnZhcmlhYmxlIj4KKyA8aW5kZXh0ZXJtIHpvbmU9InNxbC1hbHRlcnZhcmlhYmxlIj4K KyAgPHByaW1hcnk+QUxURVIgVkFSSUFCTEU8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8 aW5kZXh0ZXJtPgorICA8cHJpbWFyeT5zZXNzaW9uIHZhcmlhYmxlPC9wcmltYXJ5PgorICA8c2Vj b25kYXJ5PmFsdGVyaW5nPC9zZWNvbmRhcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4K KyAgPHJlZmVudHJ5dGl0bGU+QUxURVIgVkFSSUFCTEU8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52 b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVt ZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZu YW1lPkFMVEVSIFZBUklBQkxFPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT4KKyAgIGNoYW5nZSB0 aGUgZGVmaW5pdGlvbiBvZiBhIHNlc3Npb24gdmFyaWFibGUKKyAgPC9yZWZwdXJwb3NlPgorIDwv cmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0FMVEVSIFZBUklB QkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gT1dO RVIgVE8geyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X293bmVyPC9yZXBsYWNl YWJsZT4gfCBDVVJSRU5UX1JPTEUgfCBDVVJSRU5UX1VTRVIgfCBTRVNTSU9OX1VTRVIgfQorQUxU RVIgVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPiBSRU5BTUUgVE8gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19uYW1lPC9y ZXBsYWNlYWJsZT4KK0FMVEVSIFZBUklBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT4gU0VUIFNDSEVNQSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bmV3X3NjaGVtYTwvcmVwbGFjZWFibGU+Cis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3Bz aXNkaXY+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAg PHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+QUxURVIgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQg Y2hhbmdlcyB0aGUgZGVmaW5pdGlvbiBvZiBhbgorICAgZXhpc3Rpbmcgc2Vzc2lvbiB2YXJpYWJs ZS4gVGhlcmUgYXJlIHNldmVyYWwgc3ViZm9ybXM6CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2 YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+T1dORVI8L2xpdGVyYWw+PC90ZXJtPgor ICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZvcm0gY2hhbmdlcyB0aGUg b3duZXIgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3Rp dGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+ PGxpdGVyYWw+UkVOQU1FPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxw YXJhPgorICAgICAgVGhpcyBmb3JtIGNoYW5nZXMgdGhlIG5hbWUgb2YgdGhlIHNlc3Npb24gdmFy aWFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+U0VUIFNDSEVNQTwvbGl0 ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgZm9y bSBtb3ZlcyB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBpbnRvIGFub3RoZXIgc2NoZW1hLgorICAgICA8 L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgIDwvdmFyaWFi bGVsaXN0PgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBPbmx5IHRoZSBvd25lciBvciBhIHN1 cGVydXNlciBpcyBhbGxvd2VkIHRvIGFsdGVyIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgIEluIG9y ZGVyIHRvIG1vdmUgYSBzZXNzaW9uIHZhcmlhYmxlIGZyb20gb25lIHNjaGVtYSB0byBhbm90aGVy LCB0aGUgdXNlcgorICAgbXVzdCBhbHNvIGhhdmUgdGhlIDxsaXRlcmFsPkNSRUFURTwvbGl0ZXJh bD4gcHJpdmlsZWdlIG9uIHRoZSBuZXcgc2NoZW1hIChvcgorICAgYmUgYSBzdXBlcnVzZXIpLgor CisgICBJbiBvcmRlciB0byBtb3ZlIHRoZSBzZXNzaW9uIHZhcmlhYmxlIG93bmVyc2hpcCBmcm9t IG9uZSByb2xlIHRvIGFub3RoZXIsCisgICB0aGUgdXNlciBtdXN0IGFsc28gYmUgYSBkaXJlY3Qg b3IgaW5kaXJlY3QgbWVtYmVyIG9mIHRoZSBuZXcKKyAgIG93bmluZyByb2xlLCBhbmQgdGhhdCBy b2xlIG11c3QgaGF2ZSB0aGUgPGxpdGVyYWw+Q1JFQVRFPC9saXRlcmFsPiBwcml2aWxlZ2UKKyAg IG9uIHRoZSBzZXNzaW9uIHZhcmlhYmxlJ3Mgc2NoZW1hIChvciBiZSBhIHN1cGVydXNlcikuIFRo ZXNlIHJlc3RyaWN0aW9ucworICAgZW5mb3JjZSB0aGF0IGFsdGVyaW5nIHRoZSBvd25lciBkb2Vz bid0IGRvIGFueXRoaW5nIHlvdSBjb3VsZG4ndCBkbyBieQorICAgZHJvcHBpbmcgYW5kIHJlY3Jl YXRpbmcgdGhlIHNlc3Npb24gdmFyaWFibGUuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisg PHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgIDxwYXJhPgorICAg IDx2YXJpYWJsZWxpc3Q+CisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAg PGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgbmFtZSAocG9zc2libHkgc2No ZW1hLXF1YWxpZmllZCkgb2YgdGhlIGV4aXN0aW5nIHNlc3Npb24gdmFyaWFibGUKKyAgICAgICAg dG8gYWx0ZXIuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJs aXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfb3duZXI8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICAg IDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIHVzZXIgbmFtZSBvZiB0aGUg bmV3IG93bmVyIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICAgIDwvcGFyYT4KKyAgICAg IDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnk+ CisgICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X25hbWU8L3Jl cGxhY2VhYmxlPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAg ICAgVGhlIG5ldyBuYW1lIGZvciB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgICA8L3BhcmE+ CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlz dGVudHJ5PgorICAgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19z Y2hlbWE8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFy YT4KKyAgICAgICAgVGhlIG5ldyBzY2hlbWEgZm9yIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICAg ICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorICAg IDwvdmFyaWFibGVsaXN0PgorICAgPC9wYXJhPgorICA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3Qx PgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVG8gcmVuYW1lIGEg c2Vzc2lvbiB2YXJpYWJsZToKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIFZBUklBQkxFIGZvbyBS RU5BTUUgVE8gYm9vOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgor ICAgVG8gY2hhbmdlIHRoZSBvd25lciBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSA8bGl0ZXJhbD5i b288L2xpdGVyYWw+IHRvCisgICA8bGl0ZXJhbD5qb2U8L2xpdGVyYWw+OgorPHByb2dyYW1saXN0 aW5nPgorQUxURVIgVkFSSUFCTEUgYm9vIE9XTkVSIFRPIGpvZTsKKzwvcHJvZ3JhbWxpc3Rpbmc+ CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRvIGNoYW5nZSB0aGUgc2NoZW1hIG9mIHRoZSBz ZXNzaW9uIHZhcmlhYmxlIDxsaXRlcmFsPmJvbzwvbGl0ZXJhbD4gdG8KKyAgIDxsaXRlcmFsPnBy aXZhdGU8L2xpdGVyYWw+OgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgVkFSSUFCTEUgYm9vIFNF VCBTQ0hFTUEgcHJpdmF0ZTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKyA8L3JlZnNl Y3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAg PHBhcmE+CisgICBTZXNzaW9uIHZhcmlhYmxlcyBhbmQgdGhpcyBjb21tYW5kIGluIHBhcnRpY3Vs YXIgYXJlIGEgUG9zdGdyZVNRTCBleHRlbnNpb24uCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgor CisgPHJlZnNlY3QxIGlkPSJzcWwtYWx0ZXJ2YXJpYWJsZS1zZWUtYWxzbyI+CisgIDx0aXRsZT5T ZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1i ZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVt YmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAgPC9zaW1w bGVsaXN0PgorIDwvcmVmc2VjdDE+Cis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3JlZi9jb21tZW50LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbAppbmRl eCA1YjQzYzU2YjEzMy4uMjFjZDgwODE4ZmIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYv Y29tbWVudC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21sCkBAIC02NSw2 ICs2NSw3IEBAIENPTU1FTlQgT04KICAgVFJBTlNGT1JNIEZPUiA8cmVwbGFjZWFibGU+dHlwZV9u YW1lPC9yZXBsYWNlYWJsZT4gTEFOR1VBR0UgPHJlcGxhY2VhYmxlPmxhbmdfbmFtZTwvcmVwbGFj ZWFibGU+IHwKICAgVFJJR0dFUiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dHJpZ2dl cl9uYW1lPC9yZXBsYWNlYWJsZT4gT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRh YmxlX25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFRZUEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gfAorICBWQVJJQUJMRSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFZJRVcg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4K IH0gSVMgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3RyaW5nX2xpdGVyYWw8L3Jl cGxhY2VhYmxlPiB8IE5VTEwgfQogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV9zY2hlbWEuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sCmluZGV4 IGVkNjkyOThjY2M2Li5kMmJiMjY1MjA5YiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfc2NoZW1hLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNn bWwKQEAgLTEwMyw5ICsxMDMsMTAgQEAgQ1JFQVRFIFNDSEVNQSBJRiBOT1QgRVhJU1RTIEFVVEhP UklaQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3AKICAgICAgICAg c2NoZW1hLiBDdXJyZW50bHksIG9ubHkgPGNvbW1hbmQ+Q1JFQVRFCiAgICAgICAgIFRBQkxFPC9j b21tYW5kPiwgPGNvbW1hbmQ+Q1JFQVRFIFZJRVc8L2NvbW1hbmQ+LCA8Y29tbWFuZD5DUkVBVEUK ICAgICAgICAgSU5ERVg8L2NvbW1hbmQ+LCA8Y29tbWFuZD5DUkVBVEUgU0VRVUVOQ0U8L2NvbW1h bmQ+LCA8Y29tbWFuZD5DUkVBVEUKLSAgICAgICAgVFJJR0dFUjwvY29tbWFuZD4gYW5kIDxjb21t YW5kPkdSQU5UPC9jb21tYW5kPiBhcmUgYWNjZXB0ZWQgYXMgY2xhdXNlcwotICAgICAgICB3aXRo aW4gPGNvbW1hbmQ+Q1JFQVRFIFNDSEVNQTwvY29tbWFuZD4uIE90aGVyIGtpbmRzIG9mIG9iamVj dHMgbWF5Ci0gICAgICAgIGJlIGNyZWF0ZWQgaW4gc2VwYXJhdGUgY29tbWFuZHMgYWZ0ZXIgdGhl IHNjaGVtYSBpcyBjcmVhdGVkLgorICAgICAgICBUUklHR0VSPC9jb21tYW5kPiwgPGNvbW1hbmQ+ R1JBTlQ8L2NvbW1hbmQ+IGFuZCA8Y29tbWFuZD5DUkVBVEUKKyAgICAgICAgVkFSSUFCTEU8L2Nv bW1hbmQ+IGFyZSBhY2NlcHRlZCBhcyBjbGF1c2VzIHdpdGhpbiA8Y29tbWFuZD5DUkVBVEUKKyAg ICAgICAgU0NIRU1BPC9jb21tYW5kPi4gT3RoZXIga2luZHMgb2Ygb2JqZWN0cyBtYXkgYmUgY3Jl YXRlZCBpbiBzZXBhcmF0ZQorICAgICAgICBjb21tYW5kcyBhZnRlciB0aGUgc2NoZW1hIGlzIGNy ZWF0ZWQuCiAgICAgICAgPC9wYXJhPgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0 ZW50cnk+CkBAIC0yMTQsNiArMjE1LDExIEBAIENSRUFURSBWSUVXIGhvbGx5d29vZC53aW5uZXJz IEFTCiAgICBUaGUgPGxpdGVyYWw+SUYgTk9UIEVYSVNUUzwvbGl0ZXJhbD4gb3B0aW9uIGlzIGEK ICAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9uLgogICA8 L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+Q1JFQVRFIFZBUklBQkxFPC9jb21t YW5kPiBjb21tYW5kIGlzIGEKKyAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFt ZT4gZXh0ZW5zaW9uLgorICA8L3BhcmE+CiAgPC9yZWZzZWN0MT4KIAogIDxyZWZzZWN0MT4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi42ZTk4OGYyZTQ3MgotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTAsMCArMSwxNDkgQEAKKzwhLS0KK2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlv bgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIj4KKyA8aW5kZXh0ZXJt IHpvbmU9InNxbC1jcmVhdGV2YXJpYWJsZSI+CisgIDxwcmltYXJ5PkNSRUFURSBWQVJJQUJMRTwv cHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxpbmRleHRlcm0+CisgIDxwcmltYXJ5PnNlc3Np b24gdmFyaWFibGU8L3ByaW1hcnk+CisgIDxzZWNvbmRhcnk+ZGVmaW5pbmc8L3NlY29uZGFyeT4K KyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5DUkVBVEUgVkFS SUFCTEU8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVm bWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZt ZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkNSRUFURSBWQVJJQUJMRTwvcmVmbmFt ZT4KKyAgPHJlZnB1cnBvc2U+ZGVmaW5lIGEgc2Vzc2lvbiB2YXJpYWJsZTwvcmVmcHVycG9zZT4K KyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitDUkVBVEUg VkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5hbWU8L3JlcGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5 bm9wc2lzZGl2PgorIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKwor ICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5DUkVBVEUgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1h bmQgY3JlYXRlcyBhIHNlc3Npb24gdmFyaWFibGUuCisgICBTZXNzaW9uIHZhcmlhYmxlcywgbGlr ZSByZWxhdGlvbnMsIGV4aXN0IHdpdGhpbiBhIHNjaGVtYSBhbmQgdGhlaXIgYWNjZXNzIGlzCisg ICBjb250cm9sbGVkIHZpYSB0aGUgY29tbWFuZHMgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGFu ZCA8Y29tbWFuZD5SRVZPS0U8L2NvbW1hbmQ+LgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBU aGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlzIGxvY2FsIHRvIHRoZSBjdXJyZW50IHNl c3Npb24uICBSZXRyaWV2aW5nCisgICBhIHNlc3Npb24gdmFyaWFibGUncyB2YWx1ZSByZXR1cm5z IE5VTEwsIHVubGVzcyBpdHMgdmFsdWUgaXMgc2V0IHRvCisgICBzb21ldGhpbmcgZWxzZSBpbiB0 aGUgY3VycmVudCBzZXNzaW9uIHdpdGggYSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQu CisgICBUaGUgY29udGVudCBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbm90IHRyYW5zYWN0aW9u YWwuIFRoaXMgaXMgdGhlIHNhbWUgYXMKKyAgIHJlZ3VsYXIgdmFyaWFibGVzIGluIHByb2NlZHVy YWwgbGFuZ3VhZ2VzLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBTZXNzaW9uIHZhcmlhYmxl cyBhcmUgcmV0cmlldmVkIGJ5IHRoZSA8Y29tbWFuZD5TRUxFQ1Q8L2NvbW1hbmQ+CisgICBjb21t YW5kLiAgVGhlaXIgdmFsdWUgaXMgc2V0IHdpdGggdGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4g Y29tbWFuZC4KKyAgPC9wYXJhPgorCisgIDxub3RlPgorICAgPHBhcmE+CisgICAgU2Vzc2lvbiB2 YXJpYWJsZXMgY2FuIGJlIDxxdW90ZT5zaGFkb3dlZDwvcXVvdGU+IGJ5IG90aGVyIGlkZW50aWZp ZXJzLgorICAgIEZvciBkZXRhaWxzLCBzZWUgPHhyZWYgbGlua2VuZD0iZGRsLXNlc3Npb24tdmFy aWFibGVzIi8+LgorICAgPC9wYXJhPgorICA8L25vdGU+CisgPC9yZWZzZWN0MT4KKworIDxyZWZz ZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisK KyAgIDx2YXJsaXN0ZW50cnkgIGlkPSJzcWwtY3JlYXRldmFyaWFibGUtaWYtbm90LWV4aXN0cyI+ CisgICAgPHRlcm0+PGxpdGVyYWw+SUYgTk9UIEVYSVNUUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAg PGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIERvIG5vdCB0aHJvdyBhbiBlcnJvciBpZiB0 aGUgbmFtZSBhbHJlYWR5IGV4aXN0cy4gQSBub3RpY2UgaXMgaXNzdWVkIGluCisgICAgICB0aGlz IGNhc2UuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1uYW1lIj4KKyAgICA8 dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+PC90 ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmFtZSwgb3B0aW9u YWxseSBzY2hlbWEtcXVhbGlmaWVkLCBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9w YXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3Rl bnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLWRhdGFfdHlwZSI+CisgICAgPHRlcm0+PHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+PC90ZXJtPgor ICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmFtZSwgb3B0aW9uYWxseSBz Y2hlbWEtcXVhbGlmaWVkLCBvZiB0aGUgZGF0YSB0eXBlIG9mIHRoZSBzZXNzaW9uCisgICAgICB2 YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRy eT4KKworICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLWNvbGxhdGUiPgor ICAgIDx0ZXJtPjxsaXRlcmFsPkNPTExBVEUgPHJlcGxhY2VhYmxlPmNvbGxhdGlvbjwvcmVwbGFj ZWFibGU+PC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAg ICAgVGhlIDxsaXRlcmFsPkNPTExBVEU8L2xpdGVyYWw+IGNsYXVzZSBhc3NpZ25zIGEgY29sbGF0 aW9uIHRvIHRoZSBzZXNzaW9uCisgICAgICB2YXJpYWJsZSAod2hpY2ggbXVzdCBiZSBvZiBhIGNv bGxhdGFibGUgZGF0YSB0eXBlKS4gIElmIG5vdCBzcGVjaWZpZWQsCisgICAgICB0aGUgZGF0YSB0 eXBlJ3MgZGVmYXVsdCBjb2xsYXRpb24gaXMgdXNlZC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlz dGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNl Y3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Tm90ZXM8L3RpdGxlPgorCisgIDxwYXJhPgor ICAgVXNlIHRoZSA8Y29tbWFuZD5EUk9QIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIHRvIHJl bW92ZSBhIHNlc3Npb24KKyAgIHZhcmlhYmxlLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKwor IDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4KKyAgIENy ZWF0ZSBhbiBkYXRlIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD46Cis8 cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBkYXRlOworPC9wcm9ncmFt bGlzdGluZz4KKyAgPC9wYXJhPgorCisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRp dGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkNS RUFURSBWQVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZCBpcyBhCisgICA8cHJvZHVjdG5hbWU+UG9z dGdyZVNRTDwvcHJvZHVjdG5hbWU+IGV4dGVuc2lvbi4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+ CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxp c3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFy aWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJp YWJsZSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworPC9yZWZl bnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLjViZGIzNTYwZjBiCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKQEAgLTAsMCArMSwxMTcgQEAKKzwhLS0KK2Rv Yy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRp b24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1kcm9wdmFyaWFibGUiPgorIDxpbmRleHRlcm0g em9uZT0ic3FsLWRyb3B2YXJpYWJsZSI+CisgIDxwcmltYXJ5PkRST1AgVkFSSUFCTEU8L3ByaW1h cnk+CisgPC9pbmRleHRlcm0+CisKKyA8aW5kZXh0ZXJtPgorICA8cHJpbWFyeT5zZXNzaW9uIHZh cmlhYmxlPC9wcmltYXJ5PgorICA8c2Vjb25kYXJ5PnJlbW92aW5nPC9zZWNvbmRhcnk+CisgPC9p bmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+RFJPUCBWQVJJQUJMRTwv cmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5m bz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisK KyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+RFJPUCBWQVJJQUJMRTwvcmVmbmFtZT4KKyAgPHJl ZnB1cnBvc2U+cmVtb3ZlIGEgc2Vzc2lvbiB2YXJpYWJsZTwvcmVmcHVycG9zZT4KKyA8L3JlZm5h bWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitEUk9QIFZBUklBQkxFIFsg SUYgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPiBbLCAuLi5dIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKzwvc3lub3BzaXM+CisgPC9yZWZz eW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4K KworICA8cGFyYT4KKyAgIDxjb21tYW5kPkRST1AgVkFSSUFCTEU8L2NvbW1hbmQ+IHJlbW92ZXMg YSBzZXNzaW9uIHZhcmlhYmxlLgorICAgQSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBvbmx5IGJlIHJl bW92ZWQgYnkgaXRzIG93bmVyIG9yIGEgc3VwZXJ1c2VyLgorICA8L3BhcmE+CisgPC9yZWZzZWN0 MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJp YWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPklGIEVYSVNU UzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIERv IG5vdCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBkb2VzIG5vdCBleGlz dC4gQSBub3RpY2UgaXMKKyAgICAgIGlzc3VlZCBpbiB0aGlzIGNhc2UuCisgICAgIDwvcGFyYT4K KyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+ CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUs IG9wdGlvbmFsbHkgc2NoZW1hLXF1YWxpZmllZCwgb2YgYSBzZXNzaW9uIHZhcmlhYmxlLgorICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFy bGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPkNBU0NBREU8L2xpdGVyYWw+PC90ZXJtPgor ICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBBdXRvbWF0aWNhbGx5IGRyb3Agb2Jq ZWN0cyB0aGF0IGRlcGVuZCBvbiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSAoc3VjaCBhcworICAgICAg dmlld3MpLCBhbmQgaW4gdHVybiBhbGwgb2JqZWN0cyB0aGF0IGRlcGVuZCBvbiB0aG9zZSBvYmpl Y3RzCisgICAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1kZXBlbmQiLz4pLgorICAgICA8L3Bh cmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVu dHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlJFU1RSSUNUPC9saXRlcmFsPjwvdGVybT4KKyAgICA8 bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgUmVmdXNlIHRvIGRyb3AgdGhlIHNlc3Npb24g dmFyaWFibGUgaWYgYW55IG9iamVjdHMgZGVwZW5kIG9uIGl0LiAgVGhpcyBpcworICAgICAgdGhl IGRlZmF1bHQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50 cnk+CisgIDwvdmFyaWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0 aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUbyByZW1vdmUgdGhlIHNlc3Np b24gdmFyaWFibGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD46CisKKzxwcm9ncmFtbGlzdGluZz4K K0RST1AgVkFSSUFCTEUgdmFyMTsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorIDwvcmVmc2Vj dDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8 cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5EUk9QIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGlz IGEKKyAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9uLgor ICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNv PC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0 PgorIDwvcmVmc2VjdDE+CisKKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cmVmL2dyYW50LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwKaW5kZXggOTk5ZjY1 N2Q1YzAuLmMxMTg2MGZhMjAwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9ncmFudC5zZ21sCkBAIC0xMDEsNiArMTAxLDEyIEBA IEdSQU5UIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2Vh YmxlPiBbLCAuLi5dIFRPIDxyZXBsYWNlCiAgICAgWyBXSVRIIHsgQURNSU4gfCBJTkhFUklUIHwg U0VUIH0geyBPUFRJT04gfCBUUlVFIHwgRkFMU0UgfSBdCiAgICAgWyBHUkFOVEVEIEJZIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxl PiBdCiAKK0dSQU5UIHsgU0VMRUNUIHwgVVBEQVRFIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KKyAg ICBPTiB7IFZBUklBQkxFIDxyZXBsYWNlYWJsZT52YXJpYWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4g WywgLi4uXQorICAgICAgIHwgQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSB9CisgICAg VE8gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVw bGFjZWFibGU+IFssIC4uLl0gWyBXSVRIIEdSQU5UIE9QVElPTiBdCisgICAgWyBHUkFOVEVEIEJZ IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxh Y2VhYmxlPiBdCisKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IGNhbiBiZTo8L3BocmFzZT4KIAogICAg IFsgR1JPVVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBs YWNlYWJsZT4KQEAgLTExOSw4ICsxMjUsOCBAQCBHUkFOVCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBUTyA8cmVwbGFjZQogICAg dGhhdCBncmFudHMgcHJpdmlsZWdlcyBvbiBhIGRhdGFiYXNlIG9iamVjdCAodGFibGUsIGNvbHVt biwgdmlldywKICAgIGZvcmVpZ24gdGFibGUsIHNlcXVlbmNlLCBkYXRhYmFzZSwgZm9yZWlnbi1k YXRhIHdyYXBwZXIsIGZvcmVpZ24gc2VydmVyLAogICAgZnVuY3Rpb24sIHByb2NlZHVyZSwgcHJv Y2VkdXJhbCBsYW5ndWFnZSwgbGFyZ2Ugb2JqZWN0LCBjb25maWd1cmF0aW9uCi0gICBwYXJhbWV0 ZXIsIHNjaGVtYSwgdGFibGVzcGFjZSwgb3IgdHlwZSksIGFuZCBvbmUgdGhhdCBncmFudHMKLSAg IG1lbWJlcnNoaXAgaW4gYSByb2xlLiAgVGhlc2UgdmFyaWFudHMgYXJlIHNpbWlsYXIgaW4gbWFu eSB3YXlzLCBidXQKKyAgIHBhcmFtZXRlciwgc2NoZW1hLCBzZXNzaW9uIHZhcmlhYmxlLCB0YWJs ZXNwYWNlLCBvciB0eXBlKSwgYW5kIG9uZSB0aGF0CisgICBncmFudHMgbWVtYmVyc2hpcCBpbiBh IHJvbGUuICBUaGVzZSB2YXJpYW50cyBhcmUgc2ltaWxhciBpbiBtYW55IHdheXMsIGJ1dAogICAg dGhleSBhcmUgZGlmZmVyZW50IGVub3VnaCB0byBiZSBkZXNjcmliZWQgc2VwYXJhdGVseS4KICAg PC9wYXJhPgogCkBAIC0yMzYsOSArMjQyLDkgQEAgR1JBTlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gVE8gPHJlcGxhY2UKICAg PHBhcmE+CiAgICBUaGVyZSBpcyBhbHNvIGFuIG9wdGlvbiB0byBncmFudCBwcml2aWxlZ2VzIG9u IGFsbCBvYmplY3RzIG9mIHRoZSBzYW1lCiAgICB0eXBlIHdpdGhpbiBvbmUgb3IgbW9yZSBzY2hl bWFzLiAgVGhpcyBmdW5jdGlvbmFsaXR5IGlzIGN1cnJlbnRseSBzdXBwb3J0ZWQKLSAgIG9ubHkg Zm9yIHRhYmxlcywgc2VxdWVuY2VzLCBmdW5jdGlvbnMsIGFuZCBwcm9jZWR1cmVzLiAgPGxpdGVy YWw+QUxMCi0gICBUQUJMRVM8L2xpdGVyYWw+IGFsc28gYWZmZWN0cyB2aWV3cyBhbmQgZm9yZWln biB0YWJsZXMsIGp1c3QgbGlrZSB0aGUKLSAgIHNwZWNpZmljLW9iamVjdCA8Y29tbWFuZD5HUkFO VDwvY29tbWFuZD4gY29tbWFuZC4gIDxsaXRlcmFsPkFMTAorICAgb25seSBmb3IgdGFibGVzLCBz ZXF1ZW5jZXMsIGZ1bmN0aW9ucywgcHJvY2VkdXJlcyBhbmQgdmFyaWFibGVzLgorICAgPGxpdGVy YWw+QUxMIFRBQkxFUzwvbGl0ZXJhbD4gYWxzbyBhZmZlY3RzIHZpZXdzIGFuZCBmb3JlaWduIHRh YmxlcywganVzdAorICAgbGlrZSB0aGUgc3BlY2lmaWMtb2JqZWN0IDxjb21tYW5kPkdSQU5UPC9j b21tYW5kPiBjb21tYW5kLiAgPGxpdGVyYWw+QUxMCiAgICBGVU5DVElPTlM8L2xpdGVyYWw+IGFs c28gYWZmZWN0cyBhZ2dyZWdhdGUgYW5kIHdpbmRvdyBmdW5jdGlvbnMsIGJ1dCBub3QKICAgIHBy b2NlZHVyZXMsIGFnYWluIGp1c3QgbGlrZSB0aGUgc3BlY2lmaWMtb2JqZWN0IDxjb21tYW5kPkdS QU5UPC9jb21tYW5kPgogICAgY29tbWFuZC4gIFVzZSA8bGl0ZXJhbD5BTEwgUk9VVElORVM8L2xp dGVyYWw+IHRvIGluY2x1ZGUgcHJvY2VkdXJlcy4KQEAgLTUxOCw4ICs1MjQsOCBAQCBHUkFOVCBh ZG1pbnMgVE8gam9lOwogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KLSAgICBQcml2aWxlZ2VzIG9u IGRhdGFiYXNlcywgdGFibGVzcGFjZXMsIHNjaGVtYXMsIGxhbmd1YWdlcywgYW5kCi0gICAgY29u ZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGFyZQorICAgIFByaXZpbGVnZXMgb24gZGF0YWJhc2VzLCB0 YWJsZXNwYWNlcywgc2NoZW1hcywgbGFuZ3VhZ2VzLCBzZXNzaW9uIHZhcmlhYmxlcworICAgIGFu ZCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgYXJlCiAgICAgPHByb2R1Y3RuYW1lPlBvc3RncmVT UUw8L3Byb2R1Y3RuYW1lPiBleHRlbnNpb25zLgogICAgPC9wYXJhPgogIDwvcmVmc2VjdDE+CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL3BzcWwtcmVmLnNnbWwKaW5kZXggOGY3ZDg3NThjYTAuLmY4Njk2NmY1MTI4IDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Jl Zi9wc3FsLXJlZi5zZ21sCkBAIC0yMTM1LDYgKzIxMzUsMTkgQEAgU0VMRUNUICQxIFxwYXJzZSBz dG10MQogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAg IDx2YXJsaXN0ZW50cnkgaWQ9ImFwcC1wc3FsLW1ldGEtY29tbWFuZC1kdiI+CisgICAgICAgIDx0 ZXJtPjxsaXRlcmFsPlxkVlsrXSBbIDxsaW5rIGxpbmtlbmQ9ImFwcC1wc3FsLXBhdHRlcm5zIj48 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwvcmVwbGFjZWFibGU+PC9saW5r PiBdPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4K KyAgICAgICAgTGlzdHMgc2Vzc2lvbiB2YXJpYWJsZXMuCisgICAgICAgIElmIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT4gaXMKKyAgICAgICAgc3Bl Y2lmaWVkLCBvbmx5IHNlc3Npb24gdmFyaWFibGVzIHdob3NlIG5hbWVzIG1hdGNoIHRoZSBwYXR0 ZXJuIGFyZSBsaXN0ZWQuCisgICAgICAgIElmIHRoZSBmb3JtIDxsaXRlcmFsPlxkVis8L2xpdGVy YWw+IGlzIHVzZWQsIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAgICAgICAgYWJvdXQgZWFjaCB2 YXJpYWJsZSBpcyBzaG93biwgbGlrZSAgYWNjZXNzIHByaXZpbGVnZXMgYW5kIGRlc2NyaXB0aW9u LgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3Rl bnRyeT4KKwogICAgICAgPHZhcmxpc3RlbnRyeSBpZD0iYXBwLXBzcWwtbWV0YS1jb21tYW5kLWR1 Ij4KICAgICAgICAgPHRlcm0+PGxpdGVyYWw+XGR1W1N4K10gWyA8bGluayBsaW5rZW5kPSJhcHAt cHNxbC1wYXR0ZXJucyI+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhdHRlcm48L3Jl cGxhY2VhYmxlPjwvbGluaz4gXTwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgICAgIDxsaXN0aXRlbT4K ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL3Jldm9rZS5zZ21sCmluZGV4IDhkZjQ5MjI4MWExLi43NjBmZGRiN2MyMCAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3Jl dm9rZS5zZ21sCkBAIC0xMzAsNiArMTMwLDE0IEBAIFJFVk9LRSBbIHsgQURNSU4gfCBJTkhFUklU IHwgU0VUIH0gT1BUSU9OIEZPUiBdCiAgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBdCiAgICAgWyBD QVNDQURFIHwgUkVTVFJJQ1QgXQogCitSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9SIF0KKyAgICB7 IHsgU0VMRUNUIHwgVVBEQVRFIH0gWywgLi4uXSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CisgICAg T04geyBWQVJJQUJMRSA8cmVwbGFjZWFibGU+dmFyaWFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFss IC4uLl0KKyAgICAgICB8IEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gfQorICAgIEZS T00geyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9y ZXBsYWNlYWJsZT4gfCBQVUJMSUMgfSBbLCAuLi5dCisgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBd CisgICAgWyBDQVNDQURFIHwgUkVTVFJJQ1QgXQorCiA8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBjYW4g YmU6PC9waHJhc2U+CiAKICAgICBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVm ZXJlbmNlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKaW5kZXggZmY4NWFjZTgz ZmMuLjI1NTc4ZjM5NDZjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCkBAIC03NSw2ICs3NSw3IEBACiAgICAm YWx0ZXJUeXBlOwogICAgJmFsdGVyVXNlcjsKICAgICZhbHRlclVzZXJNYXBwaW5nOworICAgJmFs dGVyVmFyaWFibGU7CiAgICAmYWx0ZXJWaWV3OwogICAgJmFuYWx5emU7CiAgICAmYmVnaW47CkBA IC0xMjcsNiArMTI4LDcgQEAKICAgICZjcmVhdGVUeXBlOwogICAgJmNyZWF0ZVVzZXI7CiAgICAm Y3JlYXRlVXNlck1hcHBpbmc7CisgICAmY3JlYXRlVmFyaWFibGU7CiAgICAmY3JlYXRlVmlldzsK ICAgICZkZWFsbG9jYXRlOwogICAgJmRlY2xhcmU7CkBAIC0xNzUsNiArMTc3LDcgQEAKICAgICZk cm9wVHlwZTsKICAgICZkcm9wVXNlcjsKICAgICZkcm9wVXNlck1hcHBpbmc7CisgICAmZHJvcFZh cmlhYmxlOwogICAgJmRyb3BWaWV3OwogICAgJmVuZDsKICAgICZleGVjdXRlOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFr ZWZpbGUKaW5kZXggYzA5MDA5NGVkMDguLjJjMjBkNjBkYjE5IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jYXRhbG9nL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUK QEAgLTQ1LDYgKzQ1LDcgQEAgT0JKUyA9IFwKIAlwZ19zaGRlcGVuZC5vIFwKIAlwZ19zdWJzY3Jp cHRpb24ubyBcCiAJcGdfdHlwZS5vIFwKKwlwZ192YXJpYWJsZS5vIFwKIAlzdG9yYWdlLm8gXAog CXRvYXN0aW5nLm8KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKaW5kZXggOWNhOGE4OGRjOTEuLjU4N2JlOGM3 MGM4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKQEAgLTY0LDYgKzY0LDcgQEAKICNpbmNsdWRlICJjYXRh bG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RhYmxlc3BhY2UuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2Rl ZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKQEAgLTI5MSw2ICsy OTIsOSBAQCByZXN0cmljdF9hbmRfY2hlY2tfZ3JhbnQoYm9vbCBpc19ncmFudCwgQWNsTW9kZSBh dmFpbF9nb3B0aW9ucywgYm9vbCBhbGxfcHJpdnMsCiAJCWNhc2UgT0JKRUNUX1BBUkFNRVRFUl9B Q0w6CiAJCQl3aG9sZV9tYXNrID0gQUNMX0FMTF9SSUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJCWJy ZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXdob2xlX21hc2sgPSBBQ0xfQUxMX1JJ R0hUU19WQVJJQUJMRTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVu cmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLCBvYmp0eXBlKTsKIAkJCS8qIG5vdCByZWFjaGVk LCBidXQga2VlcCBjb21waWxlciBxdWlldCAqLwpAQCAtNTM1LDYgKzUzOSwxMCBAQCBFeGVjdXRl R3JhbnRTdG10KEdyYW50U3RtdCAqc3RtdCkKIAkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9S SUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJCWVycm9ybXNnID0gZ2V0dGV4dF9ub29wKCJpbnZhbGlk IHByaXZpbGVnZSB0eXBlICVzIGZvciBwYXJhbWV0ZXIiKTsKIAkJCWJyZWFrOworCQljYXNlIE9C SkVDVF9WQVJJQUJMRToKKwkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfVkFSSUFC TEU7CisJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52YWxpZCBwcml2aWxlZ2UgdHlwZSAl cyBmb3Igc2Vzc2lvbiB2YXJpYWJsZSIpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9n KEVSUk9SLCAidW5yZWNvZ25pemVkIEdyYW50U3RtdC5vYmp0eXBlOiAlZCIsCiAJCQkJIChpbnQp IHN0bXQtPm9ianR5cGUpOwpAQCAtNjQwLDYgKzY0OCw5IEBAIEV4ZWNHcmFudFN0bXRfb2lkcyhJ bnRlcm5hbEdyYW50ICppc3RtdCkKIAkJY2FzZSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDoKIAkJCUV4 ZWNHcmFudF9QYXJhbWV0ZXIoaXN0bXQpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklB QkxFOgorCQkJRXhlY0dyYW50X2NvbW1vbihpc3RtdCwgVmFyaWFibGVSZWxhdGlvbklkLCBBQ0xf QUxMX1JJR0hUU19WQVJJQUJMRSwgTlVMTCk7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVs b2coRVJST1IsICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGlu dCkgaXN0bXQtPm9ianR5cGUpOwpAQCAtNzYwLDYgKzc3MSwxOCBAQCBvYmplY3ROYW1lc1RvT2lk cyhPYmplY3RUeXBlIG9ianR5cGUsIExpc3QgKm9iam5hbWVzLCBib29sIGlzX2dyYW50KQogCQkJ CQlvYmplY3RzID0gbGFwcGVuZF9vaWQob2JqZWN0cywgcGFyYW1ldGVySWQpOwogCQkJfQogCQkJ YnJlYWs7CisKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlmb3JlYWNoX25vZGUoUmFuZ2VW YXIsIHZhcnZhciwgb2JqbmFtZXMpCisJCQl7CisJCQkJT2lkCQkJcmVsT2lkOworCisJCQkJcmVs T2lkID0gTG9va3VwVmFyaWFibGUodmFydmFyLT5zY2hlbWFuYW1lLAorCQkJCQkJCQkJCXZhcnZh ci0+cmVsbmFtZSwKKwkJCQkJCQkJCQlmYWxzZSk7CisJCQkJb2JqZWN0cyA9IGxhcHBlbmRfb2lk KG9iamVjdHMsIHJlbE9pZCk7CisJCQl9CisJCQlicmVhazsKIAl9CiAKIAlyZXR1cm4gb2JqZWN0 czsKQEAgLTg0Niw2ICs4NjksMzIgQEAgb2JqZWN0c0luU2NoZW1hVG9PaWRzKE9iamVjdFR5cGUg b2JqdHlwZSwgTGlzdCAqbnNwbmFtZXMpCiAJCQkJCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hh cmVMb2NrKTsKIAkJCQl9CiAJCQkJYnJlYWs7CisJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJ CQl7CisJCQkJCVNjYW5LZXlEYXRhIGtleTsKKwkJCQkJUmVsYXRpb24JcmVsOworCQkJCQlUYWJs ZVNjYW5EZXNjIHNjYW47CisJCQkJCUhlYXBUdXBsZQl0dXBsZTsKKworCQkJCQlTY2FuS2V5SW5p dCgma2V5LAorCQkJCQkJCQlBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWVzcGFjZSwKKwkJCQkJCQkJ QlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJCQkJCQlPYmplY3RJZEdldERhdHVt KG5hbWVzcGFjZUlkKSk7CisKKwkJCQkJcmVsID0gdGFibGVfb3BlbihWYXJpYWJsZVJlbGF0aW9u SWQsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW5fY2F0YWxv ZyhyZWwsIDEsICZrZXkpOworCisJCQkJCXdoaWxlICgodHVwbGUgPSBoZWFwX2dldG5leHQoc2Nh biwgRm9yd2FyZFNjYW5EaXJlY3Rpb24pKSAhPSBOVUxMKQorCQkJCQl7CisJCQkJCQlPaWQJCQlv aWQgPSAoKEZvcm1fcGdfcHJvYykgR0VUU1RSVUNUKHR1cGxlKSktPm9pZDsKKworCQkJCQkJb2Jq ZWN0cyA9IGxhcHBlbmRfb2lkKG9iamVjdHMsIG9pZCk7CisJCQkJCX0KKworCQkJCQl0YWJsZV9l bmRzY2FuKHNjYW4pOworCQkJCQl0YWJsZV9jbG9zZShyZWwsIEFjY2Vzc1NoYXJlTG9jayk7CisJ CQkJfQorCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQkvKiBzaG91bGQgbm90IGhhcHBlbiAq LwogCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwK QEAgLTEwMDksNiArMTA1OCwxMCBAQCBFeGVjQWx0ZXJEZWZhdWx0UHJpdmlsZWdlc1N0bXQoUGFy c2VTdGF0ZSAqcHN0YXRlLCBBbHRlckRlZmF1bHRQcml2aWxlZ2VzU3RtdCAqcwogCQkJYWxsX3By aXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19MQVJHRU9CSkVDVDsKIAkJCWVycm9ybXNnID0gZ2V0 dGV4dF9ub29wKCJpbnZhbGlkIHByaXZpbGVnZSB0eXBlICVzIGZvciBsYXJnZSBvYmplY3QiKTsK IAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCWFsbF9wcml2aWxlZ2VzID0g QUNMX0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52 YWxpZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3Igc2Vzc2lvbiB2YXJpYWJsZSIpOworCQkJYnJlYWs7 CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIEdyYW50U3RtdC5vYmp0 eXBlOiAlZCIsCiAJCQkJIChpbnQpIGFjdGlvbi0+b2JqdHlwZSk7CkBAIC0xMjA5LDYgKzEyNjIs MTEgQEAgU2V0RGVmYXVsdEFDTChJbnRlcm5hbERlZmF1bHRBQ0wgKmlhY2xzKQogCQkJaWYgKGlh Y2xzLT5hbGxfcHJpdnMgJiYgdGhpc19wcml2aWxlZ2VzID09IEFDTF9OT19SSUdIVFMpCiAJCQkJ dGhpc19wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfTEFSR0VPQkpFQ1Q7CiAJCQlicmVhazsK KwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlvYmp0eXBlID0gREVGQUNMT0JKX1ZBUklBQkxF OworCQkJaWYgKGlhY2xzLT5hbGxfcHJpdnMgJiYgdGhpc19wcml2aWxlZ2VzID09IEFDTF9OT19S SUdIVFMpCisJCQkJdGhpc19wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJ CQlicmVhazsKIAogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBvYmpl Y3QgdHlwZTogJWQiLApAQCAtMTQ1Niw2ICsxNTE0LDkgQEAgUmVtb3ZlUm9sZUZyb21PYmplY3RB Q0woT2lkIHJvbGVpZCwgT2lkIGNsYXNzaWQsIE9pZCBvYmppZCkKIAkJCWNhc2UgREVGQUNMT0JK X0xBUkdFT0JKRUNUOgogCQkJCWlhY2xzLm9ianR5cGUgPSBPQkpFQ1RfTEFSR0VPQkpFQ1Q7CiAJ CQkJYnJlYWs7CisJCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCQlpYWNscy5vYmp0eXBl ID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQkvKiBTaG91 bGRuJ3QgZ2V0IGhlcmUgKi8KIAkJCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBkZWZhdWx0IEFD TCB0eXBlOiAlZCIsCkBAIC0xNTE2LDYgKzE1NzcsOSBAQCBSZW1vdmVSb2xlRnJvbU9iamVjdEFD TChPaWQgcm9sZWlkLCBPaWQgY2xhc3NpZCwgT2lkIG9iamlkKQogCQkJY2FzZSBQYXJhbWV0ZXJB Y2xSZWxhdGlvbklkOgogCQkJCWlzdG10Lm9ianR5cGUgPSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDsK IAkJCQlicmVhazsKKwkJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJCWlzdG10Lm9ianR5 cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCWVsb2co RVJST1IsICJ1bmV4cGVjdGVkIG9iamVjdCBjbGFzcyAldSIsIGNsYXNzaWQpOwogCQkJCWJyZWFr OwpAQCAtMjc0OSw2ICsyODEzLDkgQEAgYWNsY2hlY2tfZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwg T2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJCQkJbXNnID0g Z2V0dGV4dF9ub29wKCJwZXJtaXNzaW9uIGRlbmllZCBmb3IgdHlwZSAlcyIpOwogCQkJCQkJYnJl YWs7CisJCQkJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29w KCJwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAlcyIpOworCQkJCQkJYnJl YWs7CiAJCQkJCWNhc2UgT0JKRUNUX1ZJRVc6CiAJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoInBl cm1pc3Npb24gZGVuaWVkIGZvciB2aWV3ICVzIik7CiAJCQkJCQlicmVhazsKQEAgLTI4NjAsNiAr MjkyNyw5IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUgb2Jq dHlwZSwKIAkJCQkJY2FzZSBPQkpFQ1RfVFlQRToKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgi bXVzdCBiZSBvd25lciBvZiB0eXBlICVzIik7CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBPQkpF Q1RfVkFSSUFCTEU6CisJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2Yg c2Vzc2lvbiB2YXJpYWJsZSAlcyIpOworCQkJCQkJYnJlYWs7CiAJCQkJCWNhc2UgT0JKRUNUX1ZJ RVc6CiAJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2YgdmlldyAlcyIp OwogCQkJCQkJYnJlYWs7CkBAIC0zMDA4LDYgKzMwNzgsOCBAQCBwZ19hY2xtYXNrKE9iamVjdFR5 cGUgb2JqdHlwZSwgT2lkIG9iamVjdF9vaWQsIEF0dHJOdW1iZXIgYXR0bnVtLCBPaWQgcm9sZWlk LAogCQkJcmV0dXJuIEFDTF9OT19SSUdIVFM7CiAJCWNhc2UgT0JKRUNUX1RZUEU6CiAJCQlyZXR1 cm4gb2JqZWN0X2FjbG1hc2soVHlwZVJlbGF0aW9uSWQsIG9iamVjdF9vaWQsIHJvbGVpZCwgbWFz aywgaG93KTsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlyZXR1cm4gb2JqZWN0X2FjbG1h c2soVmFyaWFibGVSZWxhdGlvbklkLCBvYmplY3Rfb2lkLCByb2xlaWQsIG1hc2ssIGhvdyk7CiAJ CWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIs CiAJCQkJIChpbnQpIG9ianR5cGUpOwpAQCAtNDI3MSw2ICs0MzQzLDEwIEBAIGdldF91c2VyX2Rl ZmF1bHRfYWNsKE9iamVjdFR5cGUgb2JqdHlwZSwgT2lkIG93bmVySWQsIE9pZCBuc3Bfb2lkKQog CQkJZGVmYWNsb2JqdHlwZSA9IERFRkFDTE9CSl9MQVJHRU9CSkVDVDsKIAkJCWJyZWFrOwogCisJ CWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJZGVmYWNsb2JqdHlwZSA9IERFRkFDTE9CSl9WQVJJ QUJMRTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQlyZXR1cm4gTlVMTDsKIAl9CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvZGVwZW5kZW5jeS5jCmluZGV4IDE4MzE2YTM5NjhiLi45ZTBmNjQ4Yjc0ZiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKKysrIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9kZXBlbmRlbmN5LmMKQEAgLTY1LDEyICs2NSwxNCBAQAogI2luY2x1ZGUgImNhdGFs b2cvcGdfdHNfdGVtcGxhdGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3VzZXJfbWFwcGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFy aWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9jb21tZW50LmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL2V4dGVuc2lvbi5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3BvbGljeS5oIgog I2luY2x1ZGUgImNvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oIgorI2luY2x1ZGUgImNvbW1hbmRz L3NjaGVtYWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZWNsYWJlbC5oIgogI2luY2x1ZGUg ImNvbW1hbmRzL3NlcXVlbmNlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgpAQCAt MTQ0NCw2ICsxNDQ2LDEwIEBAIGRvRGVsZXRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0 LCBpbnQgZmxhZ3MpCiAJCQlSZW1vdmVQdWJsaWNhdGlvbkJ5SWQob2JqZWN0LT5vYmplY3RJZCk7 CiAJCQlicmVhazsKIAorCQljYXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKKwkJCURyb3BWYXJpYWJs ZUJ5SWQob2JqZWN0LT5vYmplY3RJZCk7CisJCQlicmVhazsKKwogCQljYXNlIENhc3RSZWxhdGlv bklkOgogCQljYXNlIENvbGxhdGlvblJlbGF0aW9uSWQ6CiAJCWNhc2UgQ29udmVyc2lvblJlbGF0 aW9uSWQ6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZAppbmRleCAxOTU4ZWE5MjM4YS4uZWQ0NGM4Nzdm Y2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQKKysrIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZApAQCAtMzIsNiArMzIsNyBAQCBiYWNrZW5kX3Nv dXJjZXMgKz0gZmlsZXMoCiAgICdwZ19zaGRlcGVuZC5jJywKICAgJ3BnX3N1YnNjcmlwdGlvbi5j JywKICAgJ3BnX3R5cGUuYycsCisgICdwZ192YXJpYWJsZS5jJywKICAgJ3N0b3JhZ2UuYycsCiAg ICd0b2FzdGluZy5jJywKICkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNw YWNlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCmluZGV4IGQ5N2Q2MzJhN2Vm Li40MzA3Y2FkMTVjNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2Uu YworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCkBAIC00MSw2ICs0MSw3IEBA CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c19wYXJzZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3RzX3RlbXBsYXRlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAi Y2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIK ICNpbmNsdWRlICJjb21tb24vaGFzaGZuX3Vuc3RhYmxlLmgiCiAjaW5jbHVkZSAiZnVuY2FwaS5o IgpAQCAtMjI1LDYgKzIyNiw3IEBAIHN0YXRpYyBib29sIFRTUGFyc2VySXNWaXNpYmxlRXh0KE9p ZCBwcnNJZCwgYm9vbCAqaXNfbWlzc2luZyk7CiBzdGF0aWMgYm9vbCBUU0RpY3Rpb25hcnlJc1Zp c2libGVFeHQoT2lkIGRpY3RJZCwgYm9vbCAqaXNfbWlzc2luZyk7CiBzdGF0aWMgYm9vbCBUU1Rl bXBsYXRlSXNWaXNpYmxlRXh0KE9pZCB0bXBsSWQsIGJvb2wgKmlzX21pc3NpbmcpOwogc3RhdGlj IGJvb2wgVFNDb25maWdJc1Zpc2libGVFeHQoT2lkIGNmZ2lkLCBib29sICppc19taXNzaW5nKTsK K3N0YXRpYyBib29sIFZhcmlhYmxlSXNWaXNpYmxlRXh0KE9pZCB2YXJpZCwgYm9vbCAqaXNfbWlz c2luZyk7CiBzdGF0aWMgdm9pZCByZWNvbXB1dGVOYW1lc3BhY2VQYXRoKHZvaWQpOwogc3RhdGlj IHZvaWQgQWNjZXNzVGVtcFRhYmxlTmFtZXNwYWNlKGJvb2wgZm9yY2UpOwogc3RhdGljIHZvaWQg SW5pdFRlbXBUYWJsZU5hbWVzcGFjZSh2b2lkKTsKQEAgLTk4Niw2ICs5ODgsODQgQEAgUmVsYXRp b25Jc1Zpc2libGVFeHQoT2lkIHJlbGlkLCBib29sICppc19taXNzaW5nKQogCXJldHVybiB2aXNp YmxlOwogfQogCisvKgorICogVmFyaWFibGVJc1Zpc2libGUKKyAqCQlEZXRlcm1pbmUgd2hldGhl ciBhIHZhcmlhYmxlIChpZGVudGlmaWVkIGJ5IE9JRCkgaXMgdmlzaWJsZSBpbiB0aGUKKyAqCQlj dXJyZW50IHNlYXJjaCBwYXRoLiBWaXNpYmxlIG1lYW5zICJ3b3VsZCBiZSBmb3VuZCBieSBzZWFy Y2hpbmcKKyAqCQlmb3IgdGhlIHVucXVhbGlmaWVkIHZhcmlhYmxlIG5hbWUiLgorICovCitib29s CitWYXJpYWJsZUlzVmlzaWJsZShPaWQgdmFyaWQpCit7CisJcmV0dXJuIFZhcmlhYmxlSXNWaXNp YmxlRXh0KHZhcmlkLCBOVUxMKTsKK30KKworLyoKKyAqIFZhcmlhYmxlSXNWaXNpYmxlRXh0Cisg KgkJQXMgYWJvdmUsIGJ1dCBpZiB0aGUgdmFyaWFibGUgaXNuJ3QgZm91bmQgYW5kIGlzX21pc3Np bmcgaXMgbm90IE5VTEwsCisgKgkJdGhlbiBzZXQgKmlzX21pc3NpbmcgPSB0cnVlIGFuZCByZXR1 cm4gZmFsc2UsIGluc3RlYWQgb2YgdGhyb3dpbmcKKyAqCQlhbiBlcnJvci4gKENhbGxlciBtdXN0 IGluaXRpYWxpemUgKmlzX21pc3NpbmcgPSBmYWxzZS4pCisgKi8KK3N0YXRpYyBib29sCitWYXJp YWJsZUlzVmlzaWJsZUV4dChPaWQgdmFyaWQsIGJvb2wgKmlzX21pc3NpbmcpCit7CisJSGVhcFR1 cGxlCXZhcnR1cDsKKwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisJT2lkCQkJdmFybmFtZXNw YWNlOworCWJvb2wJCXZpc2libGU7CisKKwl2YXJ0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFC TEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQo dmFydHVwKSkKKwl7CisJCWlmIChpc19taXNzaW5nICE9IE5VTEwpCisJCXsKKwkJCSppc19taXNz aW5nID0gdHJ1ZTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCisJCWVsb2coRVJST1IsICJjYWNo ZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCX0KKwl2 YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh2YXJ0dXApOworCisJcmVjb21w dXRlTmFtZXNwYWNlUGF0aCgpOworCisJLyoKKwkgKiBRdWljayBjaGVjazogaWYgaXQgYWluJ3Qg aW4gdGhlIHBhdGggYXQgYWxsLCBpdCBhaW4ndCB2aXNpYmxlLiBXZQorCSAqIGRvbid0IGV4cGVj dCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlcyBpbiB0aGUgc3lzdGVtIG5hbWVzcGFjZS4KKwkg Ki8KKwl2YXJuYW1lc3BhY2UgPSB2YXJmb3JtLT52YXJuYW1lc3BhY2U7CisJaWYgKCFsaXN0X21l bWJlcl9vaWQoYWN0aXZlU2VhcmNoUGF0aCwgdmFybmFtZXNwYWNlKSkKKwkJdmlzaWJsZSA9IGZh bHNlOworCWVsc2UKKwl7CisJCS8qCisJCSAqIElmIGl0IGlzIGluIHRoZSBwYXRoLCBpdCBtaWdo dCBzdGlsbCBub3QgYmUgdmlzaWJsZTsgaXQgY291bGQgYmUKKwkJICogaGlkZGVuIGJ5IGFub3Ro ZXIgdmFyaWFibGUgb2YgdGhlIHNhbWUgbmFtZSBlYXJsaWVyIGluIHRoZSBwYXRoLiBTbworCQkg KiB3ZSBtdXN0IGRvIGEgc2xvdyBjaGVjayBmb3IgY29uZmxpY3RpbmcgcmVsYXRpb25zLgorCQkg Ki8KKwkJY2hhcgkgICAqdmFybmFtZSA9IE5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSk7CisKKwkJ dmlzaWJsZSA9IGZhbHNlOworCQlmb3JlYWNoX29pZChuYW1lc3BhY2VJZCwgYWN0aXZlU2VhcmNo UGF0aCkKKwkJeworCQkJaWYgKG5hbWVzcGFjZUlkID09IHZhcm5hbWVzcGFjZSkKKwkJCXsKKwkJ CQkvKiBmb3VuZCBpdCBmaXJzdCBpbiBwYXRoICovCisJCQkJdmlzaWJsZSA9IHRydWU7CisJCQkJ YnJlYWs7CisJCQl9CisJCQlpZiAoT2lkSXNWYWxpZChnZXRfdmFybmFtZV92YXJpZCh2YXJuYW1l LCBuYW1lc3BhY2VJZCkpKQorCQkJeworCQkJCS8qIGZvdW5kIHNvbWV0aGluZyBlbHNlIGZpcnN0 IGluIHBhdGggKi8KKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCX0KKworCVJlbGVhc2VTeXNDYWNo ZSh2YXJ0dXApOworCisJcmV0dXJuIHZpc2libGU7Cit9CiAKIC8qCiAgKiBUeXBlbmFtZUdldFR5 cGlkCkBAIC0zMjg5LDYgKzMzNjksMTMzIEBAIFRTQ29uZmlnSXNWaXNpYmxlRXh0KE9pZCBjZmdp ZCwgYm9vbCAqaXNfbWlzc2luZykKIAlyZXR1cm4gdmlzaWJsZTsKIH0KIAorLyoKKyAqIFJldHVy bnMgb2lkIG9mIHNlc3Npb24gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IHBvc3NpYmx5IHF1YWxpZmll ZCBpZGVudGlmaWVyLgorICoKKyAqIElmIG5vdCBmb3VuZCwgcmV0dXJucyBJbnZhbGlkT2lkIGlm IG1pc3Npbmdfb2ssIGVsc2UgdGhyb3dzIGVycm9yLgorICovCitPaWQKK0xvb2t1cFZhcmlhYmxl KGNvbnN0IGNoYXIgKm5zcG5hbWUsCisJCQkgICBjb25zdCBjaGFyICp2YXJuYW1lLAorCQkJICAg Ym9vbCBtaXNzaW5nX29rKQoreworCU9pZAkJCXZhcm9pZCA9IEludmFsaWRPaWQ7CisKKwlpZiAo bnNwbmFtZSkKKwl7CisJCU9pZCBuYW1lc3BhY2VJZCA9IExvb2t1cEV4cGxpY2l0TmFtZXNwYWNl KG5zcG5hbWUsIG1pc3Npbmdfb2spOworCisJCS8qIGlmIG5zcG5hbWUgaXMgYSBrbm93biBuYW1l c3BhY2UsIHRoZSB2YXJpYWJsZSBtdXN0IGJlIHRoZXJlICovCisJCWlmIChPaWRJc1ZhbGlkKG5h bWVzcGFjZUlkKSkKKwkJeworCQkJdmFyb2lkID0gR2V0U3lzQ2FjaGVPaWQyKFZBUklBQkxFTkFN RU5TUCwgQW51bV9wZ192YXJpYWJsZV9vaWQsCisJCQkJCQkJCQkgUG9pbnRlckdldERhdHVtKHZh cm5hbWUpLAorCQkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0obmFtZXNwYWNlSWQpKTsKKwkJfQor CX0KKwllbHNlCisJeworCQkvKiBpdGVyYXRlIG92ZXIgdGhlIHNjaGVtYXMgb24gdGhlIHNlYXJj aF9wYXRoICovCisJCXJlY29tcHV0ZU5hbWVzcGFjZVBhdGgoKTsKKworCQlmb3JlYWNoX29pZChu YW1lc3BhY2VJZCwgYWN0aXZlU2VhcmNoUGF0aCkKKwkJeworCQkJdmFyb2lkID0gR2V0U3lzQ2Fj aGVPaWQyKFZBUklBQkxFTkFNRU5TUCwgQW51bV9wZ192YXJpYWJsZV9vaWQsCisJCQkJCQkJCQkg UG9pbnRlckdldERhdHVtKHZhcm5hbWUpLAorCQkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0obmFt ZXNwYWNlSWQpKTsKKworCQkJaWYgKE9pZElzVmFsaWQodmFyb2lkKSkKKwkJCQlicmVhazsKKwkJ fQorCX0KKworCWlmICghT2lkSXNWYWxpZCh2YXJvaWQpICYmICFtaXNzaW5nX29rKQorCXsKKwkJ aWYgKG5zcG5hbWUpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VO REVGSU5FRF9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNc IiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQkJbnNwbmFtZSwgdmFybmFtZSkpKTsKKwkJZWxzZQor CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNU KSwKKwkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgZG9lcyBub3QgZXhpc3Qi LAorCQkJCQkJCXZhcm5hbWUpKSk7CisJfQorCisJcmV0dXJuIHZhcm9pZDsKK30KKworLyoKKyAq IFJldHVybnMgb2lkIG9mIHNlc3Npb24gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IHBvc3NpYmx5IHF1 YWxpZmllZCBpZGVudGlmaWVyCisgKgorICogSWYgbm90IGZvdW5kLCByZXR1cm5zIEludmFsaWRP aWQgaWYgbWlzc2luZ19vaywgZWxzZSB0aHJvd3MgZXJyb3IuCisgKi8KK09pZAorTG9va3VwVmFy aWFibGVGcm9tTmFtZUxpc3QoTGlzdCAqbmFtZXMsCisJCQkJCQkgICBib29sIG1pc3Npbmdfb2sp Cit7CisJY2hhcgkgICAqY2F0bmFtZSA9IE5VTEw7CisJY2hhcgkgICAqbnNwbmFtZSA9IE5VTEw7 CisJY2hhcgkgICAqdmFybmFtZSA9IE5VTEw7CisKKwlzd2l0Y2ggKGxpc3RfbGVuZ3RoKG5hbWVz KSkKKwl7CisJCWNhc2UgMToKKwkJCXZhcm5hbWUgPSBzdHJWYWwobGluaXRpYWwobmFtZXMpKTsK KwkJCWJyZWFrOworCQljYXNlIDI6CisJCQluc3BuYW1lID0gc3RyVmFsKGxpbml0aWFsKG5hbWVz KSk7CisJCQl2YXJuYW1lID0gc3RyVmFsKGxzZWNvbmQobmFtZXMpKTsKKwkJCWJyZWFrOworCQlj YXNlIDM6CisJCQljYXRuYW1lID0gc3RyVmFsKGxpbml0aWFsKG5hbWVzKSk7CisJCQluc3BuYW1l ID0gc3RyVmFsKGxzZWNvbmQobmFtZXMpKTsKKwkJCXZhcm5hbWUgPSBzdHJWYWwobHRoaXJkKG5h bWVzKSk7CisKKwkJCS8qIGNoZWNrIGNhdGFsb2cgbmFtZSAqLworCQkJaWYgKHN0cmNtcChjYXRu YW1lLCBnZXRfZGF0YWJhc2VfbmFtZShNeURhdGFiYXNlSWQpKSAhPSAwKQorCQkJCWVyZXBvcnQo RVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJ CQkJCQkgZXJybXNnKCJjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50 ZWQ6ICVzIiwKKwkJCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpKSk7CisJCQlicmVhazsK KwkJZGVmYXVsdDoKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lO VEFYX0VSUk9SKSwKKwkJCQkJIGVycm1zZygiaW1wcm9wZXIgc2Vzc2lvbiB2YXJpYWJsZSBuYW1l ICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAlcyIsCisJCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhu YW1lcykpKSk7CisJCQlicmVhazsKKwl9CisKKwlyZXR1cm4gTG9va3VwVmFyaWFibGUobnNwbmFt ZSwgdmFybmFtZSwgbWlzc2luZ19vayk7Cit9CisKKy8qCisgKiBUaGUgaW5wdXQgbGlzdCBjb250 YWlucyBuYW1lcyB3aXRoIGluZGlyZWN0aW9uIGV4cHJlc3Npb25zIHVzZWQgYXMgdGhlIGxlZnQK KyAqIHBhcnQgb2YgTEVUIHN0YXRlbWVudC4gVGhlIGZvbGxvd2luZyByb3V0aW5lIHJldHVybnMg YSBuZXcgbGlzdCB3aXRoIG9ubHkKKyAqIGluaXRpYWwgc3RyaW5ncyAobmFtZXMpIC0gd2l0aG91 dCBpbmRpcmVjdGlvbiBleHByZXNzaW9ucy4KKyAqLworTGlzdCAqCitOYW1lc0Zyb21MaXN0KExp c3QgKm5hbWVzKQoreworCUxpc3RDZWxsICAgKmw7CisJTGlzdAkgICAqcmVzdWx0ID0gTklMOwor CisJZm9yZWFjaChsLCBuYW1lcykKKwl7CisJCU5vZGUJICAgKm4gPSBsZmlyc3QobCk7CisKKwkJ aWYgKElzQShuLCBTdHJpbmcpKQorCQl7CisJCQlyZXN1bHQgPSBsYXBwZW5kKHJlc3VsdCwgbik7 CisJCX0KKwkJZWxzZQorCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIHJlc3VsdDsKK30KIAogLyoK ICAqIERlY29uc3RydWN0UXVhbGlmaWVkTmFtZQpAQCAtNTA4NSwzICs1MjkyLDE3IEBAIHBnX2lz X290aGVyX3RlbXBfc2NoZW1hKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlQR19SRVRVUk5fQk9PTChp c090aGVyVGVtcE5hbWVzcGFjZShvaWQpKTsKIH0KKworRGF0dW0KK3BnX3ZhcmlhYmxlX2lzX3Zp c2libGUoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlPaWQJCQlvaWQgPSBQR19HRVRBUkdfT0lEKDAp OworCWJvb2wJCXJlc3VsdDsKKwlib29sCQlpc19taXNzaW5nID0gZmFsc2U7CisKKwlyZXN1bHQg PSBWYXJpYWJsZUlzVmlzaWJsZUV4dChvaWQsICZpc19taXNzaW5nKTsKKworCWlmIChpc19taXNz aW5nKQorCQlQR19SRVRVUk5fTlVMTCgpOworCVBHX1JFVFVSTl9CT09MKHJlc3VsdCk7Cit9CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCmluZGV4IGI2M2ZkNTdkYzA0Li40NDQ4OTJhZDZi YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKKysrIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKQEAgLTYyLDYgKzYyLDcgQEAKICNp bmNsdWRlICJjYXRhbG9nL3BnX3RzX3RlbXBsYXRlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190 eXBlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ191c2VyX21hcHBpbmcuaCIKKyNpbmNsdWRlICJj YXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgog I2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3Ry aWdnZXIuaCIKQEAgLTYzNiw2ICs2MzcsMjAgQEAgc3RhdGljIGNvbnN0IE9iamVjdFByb3BlcnR5 VHlwZSBPYmplY3RQcm9wZXJ0eVtdID0KIAkJT0JKRUNUX1VTRVJfTUFQUElORywKIAkJZmFsc2UK IAl9LAorCXsKKwkJInNlc3Npb24gdmFyaWFibGUiLAorCQlWYXJpYWJsZVJlbGF0aW9uSWQsCisJ CVZhcmlhYmxlT2lkSW5kZXhJZCwKKwkJVkFSSUFCTEVPSUQsCisJCVZBUklBQkxFTkFNRU5TUCwK KwkJQW51bV9wZ192YXJpYWJsZV9vaWQsCisJCUFudW1fcGdfdmFyaWFibGVfdmFybmFtZSwKKwkJ QW51bV9wZ192YXJpYWJsZV92YXJuYW1lc3BhY2UsCisJCUFudW1fcGdfdmFyaWFibGVfdmFyb3du ZXIsCisJCUFudW1fcGdfdmFyaWFibGVfdmFyYWNsLAorCQlPQkpFQ1RfVkFSSUFCTEUsCisJCXRy dWUKKwl9CiB9OwogCiAvKgpAQCAtODMxLDYgKzg0Niw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg b2JqZWN0X3R5cGVfbWFwCiAJfSwKIAl7CiAJCSJzdGF0aXN0aWNzIG9iamVjdCIsIE9CSkVDVF9T VEFUSVNUSUNfRVhUCisJfSwKKwl7CisJCSJzZXNzaW9uIHZhcmlhYmxlIiwgT0JKRUNUX1ZBUklB QkxFCiAJfQogfTsKIApAQCAtODU2LDYgKzg3NCw3IEBAIHN0YXRpYyBPYmplY3RBZGRyZXNzIGdl dF9vYmplY3RfYWRkcmVzc19hdHRyZGVmKE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJCQkJCQkJ CWJvb2wgbWlzc2luZ19vayk7CiBzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2JqZWN0X2FkZHJl c3NfdHlwZShPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCQkJCQkJCSBUeXBlTmFtZSAqdHlwZW5h bWUsIGJvb2wgbWlzc2luZ19vayk7CitzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2JqZWN0X2Fk ZHJlc3NfdmFyaWFibGUoTGlzdCAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spOwogc3RhdGljIE9i amVjdEFkZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX29wY2YoT2JqZWN0VHlwZSBvYmp0eXBlLCBM aXN0ICpvYmplY3QsCiAJCQkJCQkJCQkJCSBib29sIG1pc3Npbmdfb2spOwogc3RhdGljIE9iamVj dEFkZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX29wZl9tZW1iZXIoT2JqZWN0VHlwZSBvYmp0eXBl LApAQCAtMTEyNyw2ICsxMTQ2LDkgQEAgZ2V0X29iamVjdF9hZGRyZXNzKE9iamVjdFR5cGUgb2Jq dHlwZSwgTm9kZSAqb2JqZWN0LAogCQkJCQkJCQkJCQkJCQkJIG1pc3Npbmdfb2spOwogCQkJCWFk ZHJlc3Mub2JqZWN0U3ViSWQgPSAwOwogCQkJCWJyZWFrOworCQkJY2FzZSBPQkpFQ1RfVkFSSUFC TEU6CisJCQkJYWRkcmVzcyA9IGdldF9vYmplY3RfYWRkcmVzc192YXJpYWJsZShjYXN0Tm9kZShM aXN0LCBvYmplY3QpLCBtaXNzaW5nX29rKTsKKwkJCQlicmVhazsKIAkJCQkvKiBubyBkZWZhdWx0 LCB0byBsZXQgY29tcGlsZXIgd2FybiBhYm91dCBtaXNzaW5nIGNhc2UgKi8KIAkJfQogCkBAIC0y MDA4LDE3ICsyMDMwLDIxIEBAIGdldF9vYmplY3RfYWRkcmVzc19kZWZhY2woTGlzdCAqb2JqZWN0 LCBib29sIG1pc3Npbmdfb2spCiAJCWNhc2UgREVGQUNMT0JKX0xBUkdFT0JKRUNUOgogCQkJb2Jq dHlwZV9zdHIgPSAibGFyZ2Ugb2JqZWN0cyI7CiAJCQlicmVhazsKKwkJY2FzZSBERUZBQ0xPQkpf VkFSSUFCTEU6CisJCQlvYmp0eXBlX3N0ciA9ICJ2YXJpYWJsZXMiOworCQkJYnJlYWs7CiAJCWRl ZmF1bHQ6CiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURf UEFSQU1FVEVSX1ZBTFVFKSwKIAkJCQkJIGVycm1zZygidW5yZWNvZ25pemVkIGRlZmF1bHQgQUNM IG9iamVjdCB0eXBlIFwiJWNcIiIsIG9ianR5cGUpLAotCQkJCQkgZXJyaGludCgiVmFsaWQgb2Jq ZWN0IHR5cGVzIGFyZSBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIl Y1wiLiIsCisJCQkJCSBlcnJoaW50KCJWYWxpZCBvYmplY3QgdHlwZXMgYXJlIFwiJWNcIiwgXCIl Y1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIi4iLAogCQkJCQkJCSBE RUZBQ0xPQkpfUkVMQVRJT04sCiAJCQkJCQkJIERFRkFDTE9CSl9TRVFVRU5DRSwKIAkJCQkJCQkg REVGQUNMT0JKX0ZVTkNUSU9OLAogCQkJCQkJCSBERUZBQ0xPQkpfVFlQRSwKIAkJCQkJCQkgREVG QUNMT0JKX05BTUVTUEFDRSwKLQkJCQkJCQkgREVGQUNMT0JKX0xBUkdFT0JKRUNUKSkpOworCQkJ CQkJCSBERUZBQ0xPQkpfTEFSR0VPQkpFQ1QsCisJCQkJCQkJIERFRkFDTE9CSl9WQVJJQUJMRSkp KTsKIAl9CiAKIAkvKgpAQCAtMjEwMiw2ICsyMTI4LDI0IEBAIHRleHRhcnJheV90b19zdHJ2YWx1 ZWxpc3QoQXJyYXlUeXBlICphcnIpCiAJcmV0dXJuIGxpc3Q7CiB9CiAKKy8qCisgKiBGaW5kIHRo ZSBPYmplY3RBZGRyZXNzIGZvciBhIHNlc3Npb24gdmFyaWFibGUKKyAqLworc3RhdGljIE9iamVj dEFkZHJlc3MKK2dldF9vYmplY3RfYWRkcmVzc192YXJpYWJsZShMaXN0ICpvYmplY3QsIGJvb2wg bWlzc2luZ19vaykKK3sKKwlPYmplY3RBZGRyZXNzIGFkZHJlc3M7CisJY2hhcgkgICAqbnNwbmFt ZSA9IE5VTEw7CisJY2hhcgkgICAqdmFybmFtZSA9IE5VTEw7CisKKwlPYmplY3RBZGRyZXNzU2V0 KGFkZHJlc3MsIFZhcmlhYmxlUmVsYXRpb25JZCwgSW52YWxpZE9pZCk7CisKKwlEZWNvbnN0cnVj dFF1YWxpZmllZE5hbWUob2JqZWN0LCAmbnNwbmFtZSwgJnZhcm5hbWUpOworCWFkZHJlc3Mub2Jq ZWN0SWQgPSBMb29rdXBWYXJpYWJsZShuc3BuYW1lLCB2YXJuYW1lLCBtaXNzaW5nX29rKTsKKwor CXJldHVybiBhZGRyZXNzOworfQorCiAvKgogICogU1FMLWNhbGxhYmxlIHZlcnNpb24gb2YgZ2V0 X29iamVjdF9hZGRyZXNzCiAgKi8KQEAgLTIyOTYsNiArMjM0MCw3IEBAIHBnX2dldF9vYmplY3Rf YWRkcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCQljYXNlIE9CSkVDVF9UQUJDT05TVFJBSU5UOgog CQljYXNlIE9CSkVDVF9PUENMQVNTOgogCQljYXNlIE9CSkVDVF9PUEZBTUlMWToKKwkJY2FzZSBP QkpFQ1RfVkFSSUFCTEU6CiAJCQlvYmpub2RlID0gKE5vZGUgKikgbmFtZTsKIAkJCWJyZWFrOwog CQljYXNlIE9CSkVDVF9BQ0NFU1NfTUVUSE9EOgpAQCAtMjQ2Nyw2ICsyNTEyLDcgQEAgY2hlY2tf b2JqZWN0X293bmVyc2hpcChPaWQgcm9sZWlkLCBPYmplY3RUeXBlIG9ianR5cGUsIE9iamVjdEFk ZHJlc3MgYWRkcmVzcywKIAkJY2FzZSBPQkpFQ1RfU1RBVElTVElDX0VYVDoKIAkJY2FzZSBPQkpF Q1RfVFNESUNUSU9OQVJZOgogCQljYXNlIE9CSkVDVF9UU0NPTkZJR1VSQVRJT046CisJCWNhc2Ug T0JKRUNUX1ZBUklBQkxFOgogCQkJaWYgKCFvYmplY3Rfb3duZXJjaGVjayhhZGRyZXNzLmNsYXNz SWQsIGFkZHJlc3Mub2JqZWN0SWQsIHJvbGVpZCkpCiAJCQkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hF Q0tfTk9UX09XTkVSLCBvYmp0eXBlLAogCQkJCQkJCSAgIE5hbWVMaXN0VG9TdHJpbmcoY2FzdE5v ZGUoTGlzdCwgb2JqZWN0KSkpOwpAQCAtMzQ5Niw2ICszNTQyLDMyIEBAIGdldE9iamVjdERlc2Ny aXB0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQkJ CWJyZWFrOwogCQkJfQogCisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJeworCQkJCWNo YXIJICAgKm5zcG5hbWU7CisJCQkJSGVhcFR1cGxlCXR1cDsKKwkJCQlGb3JtX3BnX3ZhcmlhYmxl IHZhcmZvcm07CisKKwkJCQl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVj dElkR2V0RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxp ZCh0dXApKQorCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lv biB2YXJpYWJsZSAldSIsCisJCQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisKKwkJCQl2YXJmb3Jt ID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJCQkJaWYgKFZhcmlhYmxl SXNWaXNpYmxlKG9iamVjdC0+b2JqZWN0SWQpKQorCQkJCQluc3BuYW1lID0gTlVMTDsKKwkJCQll bHNlCisJCQkJCW5zcG5hbWUgPSBnZXRfbmFtZXNwYWNlX25hbWUodmFyZm9ybS0+dmFybmFtZXNw YWNlKTsKKworCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgXygic2Vzc2lvbiB2YXJpYWJs ZSAlcyIpLAorCQkJCQkJCQkgcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIobnNwbmFtZSwKKwkJ CQkJCQkJCQkJCQkJCU5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSkpKTsKKworCQkJCVJlbGVhc2VT eXNDYWNoZSh0dXApOworCQkJCWJyZWFrOworCQkJfQorCiAJCWNhc2UgVFNQYXJzZXJSZWxhdGlv bklkOgogCQkJewogCQkJCUhlYXBUdXBsZQl0dXA7CkBAIC0zODU0LDYgKzM5MjYsMTYgQEAgZ2V0 T2JqZWN0RGVzY3JpcHRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Np bmdfb2spCiAJCQkJCQkJCQkJIF8oImRlZmF1bHQgcHJpdmlsZWdlcyBvbiBuZXcgbGFyZ2Ugb2Jq ZWN0cyBiZWxvbmdpbmcgdG8gcm9sZSAlcyIpLAogCQkJCQkJCQkJCSByb2xlbmFtZSk7CiAJCQkJ CQlicmVhazsKKwkJCQkJY2FzZSBERUZBQ0xPQkpfVkFSSUFCTEU6CisJCQkJCQlpZiAobnNwbmFt ZSkKKwkJCQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsCisJCQkJCQkJCQkJCSBfKCJkZWZh dWx0IHByaXZpbGVnZXMgb24gbmV3IHNlc3Npb24gdmFyaWFibGVzIGJlbG9uZ2luZyB0byByb2xl ICVzIGluIHNjaGVtYSAlcyIpLAorCQkJCQkJCQkJCQkgcm9sZW5hbWUsIG5zcG5hbWUpOworCQkJ CQkJZWxzZQorCQkJCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwKKwkJCQkJCQkJCQkJIF8o ImRlZmF1bHQgcHJpdmlsZWdlcyBvbiBuZXcgc2Vzc2lvbiB2YXJpYWJsZXMgYmVsb25naW5nIHRv IHJvbGUgJXMiKSwKKwkJCQkJCQkJCQkJIHJvbGVuYW1lKTsKKwkJCQkJCWJyZWFrOwogCQkJCQlk ZWZhdWx0OgogCQkJCQkJLyogc2hvdWxkbid0IGdldCBoZXJlICovCiAJCQkJCQlpZiAobnNwbmFt ZSkKQEAgLTQ2NzAsNiArNDc1MiwxMCBAQCBnZXRPYmplY3RUeXBlRGVzY3JpcHRpb24oY29uc3Qg T2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQlhcHBlbmRTdHJpbmdJ bmZvU3RyaW5nKCZidWZmZXIsICJ0cmFuc2Zvcm0iKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgVmFy aWFibGVSZWxhdGlvbklkOgorCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLCAic2Vz c2lvbiB2YXJpYWJsZSIpOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1Is ICJ1bnN1cHBvcnRlZCBvYmplY3QgY2xhc3M6ICV1Iiwgb2JqZWN0LT5jbGFzc0lkKTsKIAl9CkBA IC01NzgwLDYgKzU4NjYsMTAgQEAgZ2V0T2JqZWN0SWRlbnRpdHlQYXJ0cyhjb25zdCBPYmplY3RB ZGRyZXNzICpvYmplY3QsCiAJCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsCiAJ CQkJCQkJCQkJCSAgICIgb24gbGFyZ2Ugb2JqZWN0cyIpOwogCQkJCQkJYnJlYWs7CisJCQkJCWNh c2UgREVGQUNMT0JKX1ZBUklBQkxFOgorCQkJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVm ZmVyLAorCQkJCQkJCQkJCQkgICAiIG9uIHNlc3Npb24gdmFyaWFibGVzIik7CisJCQkJCQlicmVh azsKIAkJCQl9CiAKIAkJCQlpZiAob2JqbmFtZSkKQEAgLTYwMjAsNiArNjExMCwzMyBAQCBnZXRP YmplY3RJZGVudGl0eVBhcnRzKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwKIAkJCX0KIAkJ CWJyZWFrOwogCisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJeworCQkJCWNoYXIJICAg KnNjaGVtYTsKKwkJCQljaGFyCSAgICp2YXJuYW1lOworCQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJ Rm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCisJCQkJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZB UklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKG9iamVjdC0+b2JqZWN0SWQpKTsKKwkJCQlpZiAo IUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBm YWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLAorCQkJCQkJIG9iamVjdC0+b2JqZWN0SWQp OworCisJCQkJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKwor CQkJCXNjaGVtYSA9IGdldF9uYW1lc3BhY2VfbmFtZV9vcl90ZW1wKHZhcmZvcm0tPnZhcm5hbWVz cGFjZSk7CisJCQkJdmFybmFtZSA9IE5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSk7CisKKwkJCQlh cHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsICIlcyIsCisJCQkJCQkJCSBxdW90ZV9xdWFsaWZpZWRf aWRlbnRpZmllcihzY2hlbWEsIHZhcm5hbWUpKTsKKworCQkJCWlmIChvYmpuYW1lKQorCQkJCQkq b2JqbmFtZSA9IGxpc3RfbWFrZTIoc2NoZW1hLCBwc3RyZHVwKHZhcm5hbWUpKTsKKworCQkJCVJl bGVhc2VTeXNDYWNoZSh0dXApOworCQkJCWJyZWFrOworCQkJfQorCiAJCWRlZmF1bHQ6CiAJCQll bG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgb2JqZWN0IGNsYXNzOiAldSIsIG9iamVjdC0+Y2xhc3NJ ZCk7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5jIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5jCmluZGV4IDUzNjE5MTI4NGU4Li5jNmZk MWZhMDc0ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5jCisr KyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc2hkZXBlbmQuYwpAQCAtNDYsNiArNDYsNyBAQAog I2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfZGljdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlw ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdXNlcl9tYXBwaW5nLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2FsdGVyLmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgpA QCAtMTcxNCw2ICsxNzE1LDcgQEAgc2hkZXBSZWFzc2lnbk93bmVkX093bmVyKEZvcm1fcGdfc2hk ZXBlbmQgc2RlcEZvcm0sIE9pZCBuZXdyb2xlKQogCQljYXNlIERhdGFiYXNlUmVsYXRpb25JZDoK IAkJY2FzZSBUU0NvbmZpZ1JlbGF0aW9uSWQ6CiAJCWNhc2UgVFNEaWN0aW9uYXJ5UmVsYXRpb25J ZDoKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CiAJCQlBbHRlck9iamVjdE93bmVyX2ludGVy bmFsKHNkZXBGb3JtLT5jbGFzc2lkLAogCQkJCQkJCQkJICBzZGVwRm9ybS0+b2JqaWQsCiAJCQkJ CQkJCQkgIG5ld3JvbGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yOWQ5NjdhMmQ1YgotLS0gL2Rldi9udWxsCisrKyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtMCwwICsxLDI1MSBAQAorLyot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfdmFyaWFibGUuYworICoJCXNlc3Npb24gdmFyaWFi bGVzCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjUsIFBvc3RncmVTUUwg R2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQs IFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIElERU5USUZJ Q0FUSU9OCisgKgkJc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCisgKgorICotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgKi8KKworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJh Y2Nlc3MvaGVhcGFtLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9kZXBlbmRlbmN5LmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9pbmRleGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCisj aW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhY2Nlc3MuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2Nv bGxhdGlvbi5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfbmFtZXNwYWNlLmgiCisjaW5jbHVkZSAi Y2F0YWxvZy9wZ192YXJpYWJsZS5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorI2luY2x1ZGUg InBhcnNlci9wYXJzZV90eXBlLmgiCisjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNs dWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgorCitz dGF0aWMgT2JqZWN0QWRkcmVzcyBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwK KwkJCQkJCQkJCSBPaWQgdmFyTmFtZXNwYWNlLAorCQkJCQkJCQkJIE9pZCB2YXJUeXBlLAorCQkJ CQkJCQkJIGludDMyIHZhclR5cG1vZCwKKwkJCQkJCQkJCSBPaWQgdmFyT3duZXIsCisJCQkJCQkJ CQkgT2lkIHZhckNvbGxhdGlvbiwKKwkJCQkJCQkJCSBib29sIGlmX25vdF9leGlzdHMpOworCisK Ky8qCisgKiBDcmVhdGVzIGVudHJ5IGluIHBnX3ZhcmlhYmxlIHRhYmxlCisgKi8KK3N0YXRpYyBP YmplY3RBZGRyZXNzCitjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKKwkJCQlP aWQgdmFyTmFtZXNwYWNlLAorCQkJCU9pZCB2YXJUeXBlLAorCQkJCWludDMyIHZhclR5cG1vZCwK KwkJCQlPaWQgdmFyT3duZXIsCisJCQkJT2lkIHZhckNvbGxhdGlvbiwKKwkJCQlib29sIGlmX25v dF9leGlzdHMpCit7CisJQWNsCQkgICAqdmFyYWNsOworCU5hbWVEYXRhCXZhcm5hbWU7CisJYm9v bAkJbnVsbHNbTmF0dHNfcGdfdmFyaWFibGVdOworCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfdmFy aWFibGVdOworCVJlbGF0aW9uCXJlbDsKKwlIZWFwVHVwbGUJdHVwOworCVR1cGxlRGVzYwl0dXBk ZXNjOworCU9iamVjdEFkZHJlc3MgbXlzZWxmLAorCQkJCXJlZmVyZW5jZWQ7CisJT2JqZWN0QWRk cmVzc2VzICphZGRyczsKKwlPaWQJCQl2YXJpZDsKKworCUFzc2VydCh2YXJOYW1lKTsKKwlBc3Nl cnQoT2lkSXNWYWxpZCh2YXJOYW1lc3BhY2UpKTsKKwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJUeXBl KSk7CisJQXNzZXJ0KE9pZElzVmFsaWQodmFyT3duZXIpKTsKKworCXJlbCA9IHRhYmxlX29wZW4o VmFyaWFibGVSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCS8qCisJICogQ2hlY2sg Zm9yIGR1cGxpY2F0ZXMuIE5vdGUgdGhhdCB0aGlzIGRvZXMgbm90IHJlYWxseSBwcmV2ZW50CisJ ICogZHVwbGljYXRlcywgaXQncyBoZXJlIGp1c3QgdG8gcHJvdmlkZSBuaWNlciBlcnJvciBtZXNz YWdlIGluIGNvbW1vbgorCSAqIGNhc2UuIFRoZSByZWFsIHByb3RlY3Rpb24gaXMgdGhlIHVuaXF1 ZSBrZXkgb24gdGhlIGNhdGFsb2cuCisJICovCisJaWYgKFNlYXJjaFN5c0NhY2hlRXhpc3RzMihW QVJJQUJMRU5BTUVOU1AsCisJCQkJCQkJICBQb2ludGVyR2V0RGF0dW0odmFyTmFtZSksCisJCQkJ CQkJICBPYmplY3RJZEdldERhdHVtKHZhck5hbWVzcGFjZSkpKQorCXsKKwkJaWYgKGlmX25vdF9l eGlzdHMpCisJCQllcmVwb3J0KE5PVElDRSwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNB VEVfT0JKRUNUKSwKKwkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgYWxyZWFk eSBleGlzdHMsIHNraXBwaW5nIiwKKwkJCQkJCQl2YXJOYW1lKSkpOworCQllbHNlCisJCQllcmVw b3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJ CQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBhbHJlYWR5IGV4aXN0cyIsCisJCQkJ CQkJdmFyTmFtZSkpKTsKKworCQl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOwor CisJCXJldHVybiBJbnZhbGlkT2JqZWN0QWRkcmVzczsKKwl9CisKKwltZW1zZXQodmFsdWVzLCAw LCBzaXplb2YodmFsdWVzKSk7CisJbWVtc2V0KG51bGxzLCBmYWxzZSwgc2l6ZW9mKG51bGxzKSk7 CisKKwluYW1lc3RyY3B5KCZ2YXJuYW1lLCB2YXJOYW1lKTsKKworCXZhcmlkID0gR2V0TmV3T2lk V2l0aEluZGV4KHJlbCwgVmFyaWFibGVPaWRJbmRleElkLCBBbnVtX3BnX3ZhcmlhYmxlX29pZCk7 CisKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV9vaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0o dmFyaWQpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWUgLSAxXSA9IE5hbWVHZXRE YXR1bSgmdmFybmFtZSk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFybmFtZXNwYWNlIC0g MV0gPSBPYmplY3RJZEdldERhdHVtKHZhck5hbWVzcGFjZSk7CisJdmFsdWVzW0FudW1fcGdfdmFy aWFibGVfdmFydHlwZSAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJUeXBlKTsKKwl2YWx1ZXNb QW51bV9wZ192YXJpYWJsZV92YXJ0eXBtb2QgLSAxXSA9IEludDMyR2V0RGF0dW0odmFyVHlwbW9k KTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJvd25lciAtIDFdID0gT2JqZWN0SWRHZXRE YXR1bSh2YXJPd25lcik7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyY29sbGF0aW9uIC0g MV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxhdGlvbik7CisKKwl2YXJhY2wgPSBnZXRfdXNl cl9kZWZhdWx0X2FjbChPQkpFQ1RfVkFSSUFCTEUsIHZhck93bmVyLAorCQkJCQkJCQkgIHZhck5h bWVzcGFjZSk7CisJaWYgKHZhcmFjbCAhPSBOVUxMKQorCQl2YWx1ZXNbQW51bV9wZ192YXJpYWJs ZV92YXJhY2wgLSAxXSA9IFBvaW50ZXJHZXREYXR1bSh2YXJhY2wpOworCWVsc2UKKwkJbnVsbHNb QW51bV9wZ192YXJpYWJsZV92YXJhY2wgLSAxXSA9IHRydWU7CisKKwl0dXBkZXNjID0gUmVsYXRp b25HZXREZXNjcihyZWwpOworCisJdHVwID0gaGVhcF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVl cywgbnVsbHMpOworCUNhdGFsb2dUdXBsZUluc2VydChyZWwsIHR1cCk7CisJQXNzZXJ0KE9pZElz VmFsaWQodmFyaWQpKTsKKworCWFkZHJzID0gbmV3X29iamVjdF9hZGRyZXNzZXMoKTsKKworCU9i amVjdEFkZHJlc3NTZXQobXlzZWxmLCBWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkKTsKKworCS8q IGRlcGVuZGVuY3kgb24gbmFtZXNwYWNlICovCisJT2JqZWN0QWRkcmVzc1NldChyZWZlcmVuY2Vk LCBOYW1lc3BhY2VSZWxhdGlvbklkLCB2YXJOYW1lc3BhY2UpOworCWFkZF9leGFjdF9vYmplY3Rf YWRkcmVzcygmcmVmZXJlbmNlZCwgYWRkcnMpOworCisJLyogZGVwZW5kZW5jeSBvbiB1c2VkIHR5 cGUgKi8KKwlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIFR5cGVSZWxhdGlvbklkLCB2YXJU eXBlKTsKKwlhZGRfZXhhY3Rfb2JqZWN0X2FkZHJlc3MoJnJlZmVyZW5jZWQsIGFkZHJzKTsKKwor CS8qIGRlcGVuZGVuY3kgb24gY29sbGF0aW9uICovCisJaWYgKE9pZElzVmFsaWQodmFyQ29sbGF0 aW9uKSAmJgorCQl2YXJDb2xsYXRpb24gIT0gREVGQVVMVF9DT0xMQVRJT05fT0lEKQorCXsKKwkJ T2JqZWN0QWRkcmVzc1NldChyZWZlcmVuY2VkLCBDb2xsYXRpb25SZWxhdGlvbklkLCB2YXJDb2xs YXRpb24pOworCQlhZGRfZXhhY3Rfb2JqZWN0X2FkZHJlc3MoJnJlZmVyZW5jZWQsIGFkZHJzKTsK Kwl9CisKKwlyZWNvcmRfb2JqZWN0X2FkZHJlc3NfZGVwZW5kZW5jaWVzKCZteXNlbGYsIGFkZHJz LCBERVBFTkRFTkNZX05PUk1BTCk7CisJZnJlZV9vYmplY3RfYWRkcmVzc2VzKGFkZHJzKTsKKwor CS8qIGRlcGVuZGVuY3kgb24gb3duZXIgKi8KKwlyZWNvcmREZXBlbmRlbmN5T25Pd25lcihWYXJp YWJsZVJlbGF0aW9uSWQsIHZhcmlkLCB2YXJPd25lcik7CisKKwkvKiBkZXBlbmRlbmNpZXMgb24g cm9sZXMgbWVudGlvbmVkIGluIGRlZmF1bHQgQUNMICovCisJcmVjb3JkRGVwZW5kZW5jeU9uTmV3 QWNsKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIDAsIHZhck93bmVyLCB2YXJhY2wpOworCisJ LyogZGVwZW5kZW5jeSBvbiBleHRlbnNpb24gKi8KKwlyZWNvcmREZXBlbmRlbmN5T25DdXJyZW50 RXh0ZW5zaW9uKCZteXNlbGYsIGZhbHNlKTsKKworCWhlYXBfZnJlZXR1cGxlKHR1cCk7CisKKwkv KiBwb3N0IGNyZWF0aW9uIGhvb2sgZm9yIG5ldyBmdW5jdGlvbiAqLworCUludm9rZU9iamVjdFBv c3RDcmVhdGVIb29rKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIDApOworCisJdGFibGVfY2xv c2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCXJldHVybiBteXNlbGY7Cit9CisKKy8qCisg KiBDcmVhdGVzIGEgbmV3IHZhcmlhYmxlCisgKgorICogVXNlZCBieSBDUkVBVEUgVkFSSUFCTEUg Y29tbWFuZAorICovCitPYmplY3RBZGRyZXNzCitDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpw c3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQoreworCU9pZAkJCW5hbWVzcGFjZWlk OworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJT2lkCQkJdHlwaWQ7CisJaW50MzIJCXR5cG1vZDsK KwlPaWQJCQl2YXJvd25lciA9IEdldFVzZXJJZCgpOworCU9pZAkJCWNvbGxhdGlvbjsKKwlPaWQJ CQl0eXBjb2xsYXRpb247CisJT2JqZWN0QWRkcmVzcyB2YXJpYWJsZTsKKworCW5hbWVzcGFjZWlk ID0KKwkJUmFuZ2VWYXJHZXRBbmRDaGVja0NyZWF0aW9uTmFtZXNwYWNlKHN0bXQtPnZhcmlhYmxl LCBOb0xvY2ssIE5VTEwpOworCisJdHlwZW5hbWVUeXBlSWRBbmRNb2QocHN0YXRlLCBzdG10LT50 eXBlTmFtZSwgJnR5cGlkLCAmdHlwbW9kKTsKKworCS8qIGRpc2FsbG93IHBzZXVkb3R5cGVzICov CisJaWYgKGdldF90eXB0eXBlKHR5cGlkKSA9PSBUWVBUWVBFX1BTRVVETykKKwkJZXJlcG9ydChF UlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJy bXNnKCJzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSBwc2V1ZG8tdHlwZSAlcyIsCisJCQkJCQlm b3JtYXRfdHlwZV9iZSh0eXBpZCkpKSk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2so VHlwZVJlbGF0aW9uSWQsIHR5cGlkLCBHZXRVc2VySWQoKSwgQUNMX1VTQUdFKTsKKwlpZiAoYWNs cmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQlhY2xjaGVja19lcnJvcl90eXBlKGFjbHJlc3VsdCwg dHlwaWQpOworCisJdHlwY29sbGF0aW9uID0gZ2V0X3R5cGNvbGxhdGlvbih0eXBpZCk7CisKKwlp ZiAoc3RtdC0+Y29sbENsYXVzZSkKKwkJY29sbGF0aW9uID0gTG9va3VwQ29sbGF0aW9uKHBzdGF0 ZSwKKwkJCQkJCQkJCXN0bXQtPmNvbGxDbGF1c2UtPmNvbGxuYW1lLAorCQkJCQkJCQkJc3RtdC0+ Y29sbENsYXVzZS0+bG9jYXRpb24pOworCWVsc2UKKwkJY29sbGF0aW9uID0gdHlwY29sbGF0aW9u OworCisJLyogY29tcGxhaW4gaWYgQ09MTEFURSBpcyBhcHBsaWVkIHRvIGFuIHVuY29sbGF0YWJs ZSB0eXBlICovCisJaWYgKE9pZElzVmFsaWQoY29sbGF0aW9uKSAmJiAhT2lkSXNWYWxpZCh0eXBj b2xsYXRpb24pKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZ UEVfTUlTTUFUQ0gpLAorCQkJCSBlcnJtc2coImNvbGxhdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQg YnkgdHlwZSAlcyIsCisJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkpLAorCQkJCSBwYXJzZXJf ZXJycG9zaXRpb24ocHN0YXRlLCBzdG10LT5jb2xsQ2xhdXNlLT5sb2NhdGlvbikpKTsKKworCXZh cmlhYmxlID0gY3JlYXRlX3ZhcmlhYmxlKHN0bXQtPnZhcmlhYmxlLT5yZWxuYW1lLAorCQkJCQkJ CSAgIG5hbWVzcGFjZWlkLAorCQkJCQkJCSAgIHR5cGlkLAorCQkJCQkJCSAgIHR5cG1vZCwKKwkJ CQkJCQkgICB2YXJvd25lciwKKwkJCQkJCQkgICBjb2xsYXRpb24sCisJCQkJCQkJICAgc3RtdC0+ aWZfbm90X2V4aXN0cyk7CisKKwllbG9nKERFQlVHMSwgInJlY29yZCBmb3Igc2Vzc2lvbiB2YXJp YWJsZSBcIiVzXCIgKG9pZDolZCkgd2FzIGNyZWF0ZWQgaW4gcGdfdmFyaWFibGUiLAorCQkgc3Rt dC0+dmFyaWFibGUtPnJlbG5hbWUsIHZhcmlhYmxlLm9iamVjdElkKTsKKworCXJldHVybiB2YXJp YWJsZTsKK30KKworLyoKKyAqIERyb3AgdmFyaWFibGUgYnkgT0lECisgKi8KK3ZvaWQKK0Ryb3BW YXJpYWJsZUJ5SWQoT2lkIHZhcmlkKQoreworCVJlbGF0aW9uCXJlbDsKKwlIZWFwVHVwbGUJdHVw OworCisJcmVsID0gdGFibGVfb3BlbihWYXJpYWJsZVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxv Y2spOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERh dHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJP UiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJQ2F0 YWxvZ1R1cGxlRGVsZXRlKHJlbCwgJnR1cC0+dF9zZWxmKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0 dXApOworCisJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKK30KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9h bHRlci5jCmluZGV4IGM4MDFjODY5YzFjLi5jNzJhNGFkYjA3YiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvYWx0ZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5j CkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c19kaWN0LmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ190c19wYXJzZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3Rl bXBsYXRlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNv bW1hbmRzL2FsdGVyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvY29sbGF0aW9uY21kcy5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKQEAgLTE0MCw2ICsxNDEsMTAgQEAgcmVwb3J0 X25hbWVzcGFjZV9jb25mbGljdChPaWQgY2xhc3NJZCwgY29uc3QgY2hhciAqbmFtZSwgT2lkIG5z cE9pZCkKIAkJCUFzc2VydChPaWRJc1ZhbGlkKG5zcE9pZCkpOwogCQkJbXNnZm10ID0gZ2V0dGV4 dF9ub29wKCJ0ZXh0IHNlYXJjaCBjb25maWd1cmF0aW9uIFwiJXNcIiBhbHJlYWR5IGV4aXN0cyBp biBzY2hlbWEgXCIlc1wiIik7CiAJCQlicmVhazsKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6 CisJCQlBc3NlcnQoT2lkSXNWYWxpZChuc3BPaWQpKTsKKwkJCW1zZ2ZtdCA9IGdldHRleHRfbm9v cCgic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgYWxyZWFkeSBleGlzdHMgaW4gc2NoZW1hIFwiJXNc IiIpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQg b2JqZWN0IGNsYXNzOiAldSIsIGNsYXNzSWQpOwogCQkJYnJlYWs7CkBAIC00MzUsNiArNDQwLDcg QEAgRXhlY1JlbmFtZVN0bXQoUmVuYW1lU3RtdCAqc3RtdCkKIAkJY2FzZSBPQkpFQ1RfVFNURU1Q TEFURToKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT046CiAJCWNhc2UgT0JKRUNUX1NVQlNDUklQ VElPTjoKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJCQl7CiAJCQkJT2JqZWN0QWRkcmVzcyBh ZGRyZXNzOwogCQkJCVJlbGF0aW9uCWNhdGFsb2c7CkBAIC01NzUsNiArNTgxLDcgQEAgRXhlY0Fs dGVyT2JqZWN0U2NoZW1hU3RtdChBbHRlck9iamVjdFNjaGVtYVN0bXQgKnN0bXQsCiAJCWNhc2Ug T0JKRUNUX1RTRElDVElPTkFSWToKIAkJY2FzZSBPQkpFQ1RfVFNQQVJTRVI6CiAJCWNhc2UgT0JK RUNUX1RTVEVNUExBVEU6CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgogCQkJewogCQkJCVJlbGF0 aW9uCWNhdGFsb2c7CiAJCQkJT2lkCQkJY2xhc3NJZDsKQEAgLTY1Nyw2ICs2NjQsNyBAQCBBbHRl ck9iamVjdE5hbWVzcGFjZV9vaWQoT2lkIGNsYXNzSWQsIE9pZCBvYmppZCwgT2lkIG5zcE9pZCwK IAkJY2FzZSBUU0RpY3Rpb25hcnlSZWxhdGlvbklkOgogCQljYXNlIFRTVGVtcGxhdGVSZWxhdGlv bklkOgogCQljYXNlIFRTQ29uZmlnUmVsYXRpb25JZDoKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9u SWQ6CiAJCQl7CiAJCQkJUmVsYXRpb24JY2F0YWxvZzsKIApAQCAtODg3LDYgKzg5NSw3IEBAIEV4 ZWNBbHRlck93bmVyU3RtdChBbHRlck93bmVyU3RtdCAqc3RtdCkKIAkJY2FzZSBPQkpFQ1RfVEFC TEVTUEFDRToKIAkJY2FzZSBPQkpFQ1RfVFNESUNUSU9OQVJZOgogCQljYXNlIE9CSkVDVF9UU0NP TkZJR1VSQVRJT046CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgogCQkJewogCQkJCU9iamVjdEFk ZHJlc3MgYWRkcmVzczsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNt ZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKaW5kZXggY2ViOWEyMjliNjMu LmViYjU4NWRjNGExIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5j CisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKQEAgLTQ3Niw2ICs0NzYsMTAg QEAgZG9lc19ub3RfZXhpc3Rfc2tpcHBpbmcoT2JqZWN0VHlwZSBvYmp0eXBlLCBOb2RlICpvYmpl Y3QpCiAJCQltc2cgPSBnZXR0ZXh0X25vb3AoInB1YmxpY2F0aW9uIFwiJXNcIiBkb2VzIG5vdCBl eGlzdCwgc2tpcHBpbmciKTsKIAkJCW5hbWUgPSBzdHJWYWwob2JqZWN0KTsKIAkJCWJyZWFrOwor CQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCW1zZyA9IGdldHRleHRfbm9vcCgic2Vzc2lvbiB2 YXJpYWJsZSBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nIik7CisJCQluYW1lID0gTmFt ZUxpc3RUb1N0cmluZyhjYXN0Tm9kZShMaXN0LCBvYmplY3QpKTsKKwkJCWJyZWFrOwogCiAJCWNh c2UgT0JKRUNUX0NPTFVNTjoKIAkJY2FzZSBPQkpFQ1RfREFUQUJBU0U6CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9ldmVudF90cmlnZ2VyLmMKaW5kZXggZWRjMmM5ODhlMjkuLjE4MzljMWY4MmM1IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCkBAIC0yMTQ5LDYgKzIxNDksOCBAQCBzdHJpbmdp ZnlfZ3JhbnRfb2JqdHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCQlyZXR1cm4gIlRBQkxFU1BB Q0UiOwogCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJcmV0dXJuICJUWVBFIjsKKwkJY2FzZSBPQkpF Q1RfVkFSSUFCTEU6CisJCQlyZXR1cm4gIlZBUklBQkxFIjsKIAkJCS8qIHRoZXNlIGN1cnJlbnRs eSBhcmVuJ3QgdXNlZCAqLwogCQljYXNlIE9CSkVDVF9BQ0NFU1NfTUVUSE9EOgogCQljYXNlIE9C SkVDVF9BR0dSRUdBVEU6CkBAIC0yMjMyLDYgKzIyMzQsOCBAQCBzdHJpbmdpZnlfYWRlZnByaXZz X29ianR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQkJcmV0dXJuICJUQUJMRVNQQUNFUyI7CiAJ CWNhc2UgT0JKRUNUX1RZUEU6CiAJCQlyZXR1cm4gIlRZUEVTIjsKKwkJY2FzZSBPQkpFQ1RfVkFS SUFCTEU6CisJCQlyZXR1cm4gIlZBUklBQkxFUyI7CiAJCQkvKiB0aGVzZSBjdXJyZW50bHkgYXJl bid0IHVzZWQgKi8KIAkJY2FzZSBPQkpFQ1RfQUNDRVNTX01FVEhPRDoKIAkJY2FzZSBPQkpFQ1Rf QUdHUkVHQVRFOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKaW5kZXggY2VlNWQ3YmJiOWMuLjU3YjRl NjcxOWMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKQEAgLTkyLDYgKzkyLDcgQEAgU2VjTGFi ZWxTdXBwb3J0c09iamVjdFR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9U U1BBUlNFUjoKIAkJY2FzZSBPQkpFQ1RfVFNURU1QTEFURToKIAkJY2FzZSBPQkpFQ1RfVVNFUl9N QVBQSU5HOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCXJldHVybiBmYWxzZTsKIAogCQkJ LyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggNTRhZDM4MjQ3YWEuLjBjYzA2YzFlNjdi IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdGFibGVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHJpZ2dlci5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFy aWFibGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3N0b3JhZ2UuaCIKICNpbmNsdWRlICJjYXRhbG9n L3N0b3JhZ2VfeGxvZy5oIgogI2luY2x1ZGUgImNhdGFsb2cvdG9hc3RpbmcuaCIKQEAgLTY5MTAs NiArNjkxMSw3IEBAIEFUVHlwZWRUYWJsZVJlY3Vyc2lvbihMaXN0ICoqd3F1ZXVlLCBSZWxhdGlv biByZWwsIEFsdGVyVGFibGVDbWQgKmNtZCwKICAqIChwb3NzaWJseSBuZXN0ZWQgc2V2ZXJhbCBs ZXZlbHMgZGVlcCBpbiBjb21wb3NpdGUgdHlwZXMsIGFycmF5cywgZXRjISkuCiAgKiBFdmVudHVh bGx5LCB3ZSdkIGxpa2UgdG8gcHJvcGFnYXRlIHRoZSBjaGVjayBvciByZXdyaXRlIG9wZXJhdGlv bgogICogaW50byBzdWNoIHRhYmxlcywgYnV0IGZvciBub3csIGp1c3QgZXJyb3Igb3V0IGlmIHdl IGZpbmQgYW55LgorICogQWxzbywgY2hlY2sgaWYgInR5cGVPaWQiIGlzIHVzZWQgYXMgdHlwZSBv ZiBzb21lIHNlc3Npb24gdmFyaWFibGUuCiAgKgogICogQ2FsbGVyIHNob3VsZCBwcm92aWRlIGVp dGhlciB0aGUgYXNzb2NpYXRlZCByZWxhdGlvbiBvZiBhIHJvd3R5cGUsCiAgKiBvciBhIHR5cGUg bmFtZSAobm90IGJvdGgpIGZvciB1c2UgaW4gdGhlIGVycm9yIG1lc3NhZ2UsIGlmIGFueS4KQEAg LTY5NzMsNiArNjk3NSw0NSBAQCBmaW5kX2NvbXBvc2l0ZV90eXBlX2RlcGVuZGVuY2llcyhPaWQg dHlwZU9pZCwgUmVsYXRpb24gb3JpZ1JlbGF0aW9uLAogCQkJY29udGludWU7CiAJCX0KIAorCQkv KiBjaGVjayBpZiB0aGUgdHlwZSBpcyB1c2VkIGFzIHR5cGUgb2Ygc29tZSBzZXNzaW9uIHZhcmlh YmxlICovCisJCWlmIChwZ19kZXBlbmQtPmNsYXNzaWQgPT0gVmFyaWFibGVSZWxhdGlvbklkKQor CQl7CisJCQlPaWQJCQl2YXJpZCA9IHBnX2RlcGVuZC0+b2JqaWQ7CisKKwkJCWlmIChvcmlnVHlw ZU5hbWUpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVS RV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coImNhbm5vdCBhbHRlciB0eXBlIFwiJXNc IiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIHVzZXMgaXQiLAorCQkJCQkJCQlv cmlnVHlwZU5hbWUsCisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFt ZSh2YXJpZCkpKSk7CisJCQllbHNlIGlmIChvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9 PSBSRUxLSU5EX0NPTVBPU0lURV9UWVBFKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJy Y29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJjYW5u b3QgYWx0ZXIgdHlwZSBcIiVzXCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1 c2VzIGl0IiwKKwkJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUob3JpZ1JlbGF0aW9uKSwK KwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFj ZSh2YXJpZCkpLAorCQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSkpKTsK KwkJCWVsc2UgaWYgKG9yaWdSZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfRk9S RUlHTl9UQUJMRSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9G RUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1zZygiY2Fubm90IGFsdGVyIGZvcmVp Z24gdGFibGUgXCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgdXNlcyBp dCIsCisJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKG9yaWdSZWxhdGlvbiksCisJCQkJ CQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFy aWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpKSk7CisJCQll bHNlIGlmIChvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1JFTEFUSU9O IHx8CisJCQkJCSBvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX01BVFZJ RVcgfHwKKwkJCQkJIG9yaWdSZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfUEFS VElUSU9ORURfVEFCTEUpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNP REVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coImNhbm5vdCBhbHRlciB0 YWJsZSBcIiVzXCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1c2VzIGl0IiwK KwkJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUob3JpZ1JlbGF0aW9uKSwKKwkJCQkJCQkJ Z2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkp LAorCQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSkpKTsKKworCQkJY29u dGludWU7CisJCX0KKwogCQkvKiBFbHNlLCBpZ25vcmUgZGVwZW5kZWVzIHRoYXQgYXJlbid0IHJl bGF0aW9ucyAqLwogCQlpZiAocGdfZGVwZW5kLT5jbGFzc2lkICE9IFJlbGF0aW9uUmVsYXRpb25J ZCkKIAkJCWNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNt ZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMKaW5kZXggNDVhZTc0NzJhYjUu LmY4ZmVmZGMyY2Y4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5j CisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMKQEAgLTUzLDYgKzUzLDcgQEAK ICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Jhbmdl LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192 YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1ZGUgImNvbW1h bmRzL3RhYmxlY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3R5cGVjbWRzLmgiCkBAIC0zMzcz LDYgKzMzNzQsMjAgQEAgZ2V0X3JlbHNfd2l0aF9kb21haW4oT2lkIGRvbWFpbk9pZCwgTE9DS01P REUgbG9ja21vZGUpCiAJCQl9CiAJCQljb250aW51ZTsKIAkJfQorCQllbHNlIGlmIChwZ19kZXBl bmQtPmNsYXNzaWQgPT0gVmFyaWFibGVSZWxhdGlvbklkKQorCQl7CisJCQkvKgorCQkJICogV2Ug Y2Fubm90IHRvIHZhbGlkYXRlIGNvbnN0cmFpbnQgaW5zaWRlIHNlc3Npb24gdmFyaWFibGVzCisJ CQkgKiBmcm9tIG90aGVyIHNlc3Npb25zLCBzbyBiZXR0ZXIgdG8gZmFpbCBpZiB0aGVyZSBhcmUg YW55CisJCQkgKiBzZXNzaW9uIHZhcmlhYmxlLCB0aGF0IHVzZSB0aGlzIGRvbWFpbi4KKwkJCSAq LworCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9T VVBQT1JURUQpLAorCQkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgZG9tYWluIFwiJXNcIiBiZWNh dXNlIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIHVzZXMgaXQiLAorCQkJCQkJCQlkb21haW5U eXBlTmFtZSwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxl X25hbWVzcGFjZShwZ19kZXBlbmQtPm9iamlkKSksCisJCQkJCQkJCWdldF9zZXNzaW9uX3Zhcmlh YmxlX25hbWUocGdfZGVwZW5kLT5vYmppZCkpKSk7CisJCX0KIAogCQkvKiBFbHNlLCBpZ25vcmUg ZGVwZW5kZWVzIHRoYXQgYXJlbid0IHVzZXIgY29sdW1ucyBvZiByZWxhdGlvbnMgKi8KIAkJLyog KHdlIGFzc3VtZSBzeXN0ZW0gY29sdW1ucyBhcmUgbmV2ZXIgb2YgZG9tYWluIHR5cGVzKSAqLwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKaW5kZXggM2M0MjY4YjI3MWEuLjcxYzcxMjcyOTU4IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAg LTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyaWdnZXIuaCIKKyNpbmNs dWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgogI2luY2x1ZGUgImdyYW1wYXJzZS5oIgpA QCAtMjg1LDggKzI4Niw4IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChj aGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCUNvbnN0cmFpbnRz U2V0U3RtdCBDb3B5U3RtdCBDcmVhdGVBc1N0bXQgQ3JlYXRlQ2FzdFN0bXQKIAkJQ3JlYXRlRG9t YWluU3RtdCBDcmVhdGVFeHRlbnNpb25TdG10IENyZWF0ZUdyb3VwU3RtdCBDcmVhdGVPcENsYXNz U3RtdAogCQlDcmVhdGVPcEZhbWlseVN0bXQgQWx0ZXJPcEZhbWlseVN0bXQgQ3JlYXRlUExhbmdT dG10Ci0JCUNyZWF0ZVNjaGVtYVN0bXQgQ3JlYXRlU2VxU3RtdCBDcmVhdGVTdG10IENyZWF0ZVN0 YXRzU3RtdCBDcmVhdGVUYWJsZVNwYWNlU3RtdAotCQlDcmVhdGVGZHdTdG10IENyZWF0ZUZvcmVp Z25TZXJ2ZXJTdG10IENyZWF0ZUZvcmVpZ25UYWJsZVN0bXQKKwkJQ3JlYXRlU2NoZW1hU3RtdCBD cmVhdGVTZXFTdG10IENyZWF0ZVNlc3Npb25WYXJTdG10IENyZWF0ZVN0bXQgQ3JlYXRlU3RhdHNT dG10CisJCUNyZWF0ZVRhYmxlU3BhY2VTdG10IENyZWF0ZUZkd1N0bXQgQ3JlYXRlRm9yZWlnblNl cnZlclN0bXQgQ3JlYXRlRm9yZWlnblRhYmxlU3RtdAogCQlDcmVhdGVBc3NlcnRpb25TdG10IENy ZWF0ZVRyYW5zZm9ybVN0bXQgQ3JlYXRlVHJpZ1N0bXQgQ3JlYXRlRXZlbnRUcmlnU3RtdAogCQlD cmVhdGVVc2VyU3RtdCBDcmVhdGVVc2VyTWFwcGluZ1N0bXQgQ3JlYXRlUm9sZVN0bXQgQ3JlYXRl UG9saWN5U3RtdAogCQlDcmVhdGVkYlN0bXQgRGVjbGFyZUN1cnNvclN0bXQgRGVmaW5lU3RtdCBE ZWxldGVTdG10IERpc2NhcmRTdG10IERvU3RtdApAQCAtNzgzLDggKzc4NCw4IEBAIHN0YXRpYyBO b2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2Vz LCBOb2RlICpxdWVyeSk7CiAJVUVTQ0FQRSBVTkJPVU5ERUQgVU5DT05ESVRJT05BTCBVTkNPTU1J VFRFRCBVTkVOQ1JZUFRFRCBVTklPTiBVTklRVUUgVU5LTk9XTgogCVVOTElTVEVOIFVOTE9HR0VE IFVOVElMIFVQREFURSBVU0VSIFVTSU5HCiAKLQlWQUNVVU0gVkFMSUQgVkFMSURBVEUgVkFMSURB VE9SIFZBTFVFX1AgVkFMVUVTIFZBUkNIQVIgVkFSSUFESUMgVkFSWUlORwotCVZFUkJPU0UgVkVS U0lPTl9QIFZJRVcgVklFV1MgVklSVFVBTCBWT0xBVElMRQorCVZBQ1VVTSBWQUxJRCBWQUxJREFU RSBWQUxJREFUT1IgVkFMVUVfUCBWQUxVRVMgVkFSQ0hBUiBWQVJJQURJQyBWQVJJQUJMRQorCVZB UklBQkxFUyBWQVJZSU5HIFZFUkJPU0UgVkVSU0lPTl9QIFZJRVcgVklFV1MgVklSVFVBTCBWT0xB VElMRQogCiAJV0hFTiBXSEVSRSBXSElURVNQQUNFX1AgV0lORE9XIFdJVEggV0lUSElOIFdJVEhP VVQgV09SSyBXUkFQUEVSIFdSSVRFCiAKQEAgLTEwNTAsNiArMTA1MSw3IEBAIHN0bXQ6CiAJCQl8 IENyZWF0ZVBvbGljeVN0bXQKIAkJCXwgQ3JlYXRlUExhbmdTdG10CiAJCQl8IENyZWF0ZVNjaGVt YVN0bXQKKwkJCXwgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAkJCXwgQ3JlYXRlU2VxU3RtdAogCQkJ fCBDcmVhdGVTdG10CiAJCQl8IENyZWF0ZVN1YnNjcmlwdGlvblN0bXQKQEAgLTE1OTIsNiArMTU5 NCw3IEBAIHNjaGVtYV9zdG10OgogCQkJfCBDcmVhdGVUcmlnU3RtdAogCQkJfCBHcmFudFN0bXQK IAkJCXwgVmlld1N0bXQKKwkJCXwgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAkJOwogCiAKQEAgLTUy NjcsNiArNTI3MCwzNCBAQCBjcmVhdGVfZXh0ZW5zaW9uX29wdF9pdGVtOgogCQkJCX0KIAkJOwog CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKgkJUVVFUlkgOgorICoJCQkJQ1JFQVRFIFZB UklBQkxFIHZhcm5hbWUgW0FTXSB0eXBlCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitD cmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJCUNSRUFURSBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBv cHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlCisJCQkJeworCQkJCQlDcmVhdGVTZXNz aW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsKKwkJCQkJbi0+ dmFyaWFibGUgPSAkMzsKKwkJCQkJbi0+dHlwZU5hbWUgPSAkNTsKKwkJCQkJbi0+Y29sbENsYXVz ZSA9IChDb2xsYXRlQ2xhdXNlICopICQ2OworCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gZmFsc2U7 CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IENSRUFURSBWQVJJQUJMRSBJRl9Q IE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2Ns YXVzZQorCQkJCXsKKwkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVh dGVTZXNzaW9uVmFyU3RtdCk7CisJCQkJCW4tPnZhcmlhYmxlID0gJDY7CisJCQkJCW4tPnR5cGVO YW1lID0gJDg7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkOTsKKwkJ CQkJbi0+aWZfbm90X2V4aXN0cyA9IHRydWU7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9 CisJCTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogQUxURVIgRVhURU5TSU9OIG5h bWUgVVBEQVRFIFsgVE8gdmVyc2lvbiBdCkBAIC03MDU4LDYgKzcwODksNyBAQCBvYmplY3RfdHlw ZV9hbnlfbmFtZToKIAkJCXwgVEVYVF9QIFNFQVJDSCBESUNUSU9OQVJZCQkJCXsgJCQgPSBPQkpF Q1RfVFNESUNUSU9OQVJZOyB9CiAJCQl8IFRFWFRfUCBTRUFSQ0ggVEVNUExBVEUJCQkJeyAkJCA9 IE9CSkVDVF9UU1RFTVBMQVRFOyB9CiAJCQl8IFRFWFRfUCBTRUFSQ0ggQ09ORklHVVJBVElPTgkJ CXsgJCQgPSBPQkpFQ1RfVFNDT05GSUdVUkFUSU9OOyB9CisJCQl8IFZBUklBQkxFCQkJCQkJCQl7 ICQkID0gT0JKRUNUX1ZBUklBQkxFOyB9CiAJCTsKIAogLyoKQEAgLTc5MzQsNiArNzk2NiwxNCBA QCBwcml2aWxlZ2VfdGFyZ2V0OgogCQkJCQluLT5vYmpzID0gJDI7CiAJCQkJCSQkID0gbjsKIAkJ CQl9CisJCQl8IFZBUklBQkxFIHF1YWxpZmllZF9uYW1lX2xpc3QKKwkJCQl7CisJCQkJCVByaXZU YXJnZXQgKm4gPSAoUHJpdlRhcmdldCAqKSBwYWxsb2Moc2l6ZW9mKFByaXZUYXJnZXQpKTsKKwkJ CQkJbi0+dGFyZ3R5cGUgPSBBQ0xfVEFSR0VUX09CSkVDVDsKKwkJCQkJbi0+b2JqdHlwZSA9IE9C SkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqcyA9ICQyOworCQkJCQkkJCA9IG47CisJCQkJfQog CQkJfCBBTEwgVEFCTEVTIElOX1AgU0NIRU1BIG5hbWVfbGlzdAogCQkJCXsKIAkJCQkJUHJpdlRh cmdldCAqbiA9IChQcml2VGFyZ2V0ICopIHBhbGxvYyhzaXplb2YoUHJpdlRhcmdldCkpOwpAQCAt Nzk3OSw2ICs4MDE5LDE0IEBAIHByaXZpbGVnZV90YXJnZXQ6CiAJCQkJCW4tPm9ianMgPSAkNTsK IAkJCQkJJCQgPSBuOwogCQkJCX0KKwkJCXwgQUxMIFZBUklBQkxFUyBJTl9QIFNDSEVNQSBuYW1l X2xpc3QKKwkJCQl7CisJCQkJCVByaXZUYXJnZXQgKm4gPSAoUHJpdlRhcmdldCAqKSBwYWxsb2Mo c2l6ZW9mKFByaXZUYXJnZXQpKTsKKwkJCQkJbi0+dGFyZ3R5cGUgPSBBQ0xfVEFSR0VUX0FMTF9J Tl9TQ0hFTUE7CisJCQkJCW4tPm9ianR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJCW4tPm9i anMgPSAkNTsKKwkJCQkJJCQgPSBuOworCQkJCX0KIAkJOwogCiAKQEAgLTgxNzcsNiArODIyNSw3 IEBAIGRlZmFjbF9wcml2aWxlZ2VfdGFyZ2V0OgogCQkJfCBUWVBFU19QCQl7ICQkID0gT0JKRUNU X1RZUEU7IH0KIAkJCXwgU0NIRU1BUwkJeyAkJCA9IE9CSkVDVF9TQ0hFTUE7IH0KIAkJCXwgTEFS R0VfUCBPQkpFQ1RTX1AJeyAkJCA9IE9CSkVDVF9MQVJHRU9CSkVDVDsgfQorCQkJfCBWQVJJQUJM RVMJCXsgJCQgPSBPQkpFQ1RfVkFSSUFCTEU7IH0KIAkJOwogCiAKQEAgLTk5NjUsNiArMTAwMTQs MjQgQEAgUmVuYW1lU3RtdDogQUxURVIgQUdHUkVHQVRFIGFnZ3JlZ2F0ZV93aXRoX2FyZ3R5cGVz IFJFTkFNRSBUTyBuYW1lCiAJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAo Tm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgYW55X25hbWUgUkVOQU1FIFRP IG5hbWUKKwkJCQl7CisJCQkJCVJlbmFtZVN0bXQgKm4gPSBtYWtlTm9kZShSZW5hbWVTdG10KTsK KwkJCQkJbi0+cmVuYW1lVHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqZWN0ID0g KE5vZGUgKikgJDM7CisJCQkJCW4tPm5ld25hbWUgPSAkNjsKKwkJCQkJbi0+bWlzc2luZ19vayA9 IGZhbHNlOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxF IElGX1AgRVhJU1RTIGFueV9uYW1lIFJFTkFNRSBUTyBuYW1lCisJCQkJeworCQkJCQlSZW5hbWVT dG10ICpuID0gbWFrZU5vZGUoUmVuYW1lU3RtdCk7CisJCQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpF Q1RfVkFSSUFCTEU7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQ1OworCQkJCQluLT5uZXdu YW1lID0gJDg7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSB0cnVlOworCQkJCQkkJCA9IChOb2RlICop bjsKKwkJCQl9CiAJCTsKIAogb3B0X2NvbHVtbjogQ09MVU1OCkBAIC0xMDMyNiw2ICsxMDM5Mywy NCBAQCBBbHRlck9iamVjdFNjaGVtYVN0bXQ6CiAJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsK IAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgYW55X25h bWUgU0VUIFNDSEVNQSBuYW1lCisJCQkJeworCQkJCQlBbHRlck9iamVjdFNjaGVtYVN0bXQgKm4g PSBtYWtlTm9kZShBbHRlck9iamVjdFNjaGVtYVN0bXQpOworCQkJCQluLT5vYmplY3RUeXBlID0g T0JKRUNUX1ZBUklBQkxFOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkMzsKKwkJCQkJbi0+ bmV3c2NoZW1hID0gJDY7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAo Tm9kZSAqKW47CisJCQkJfQorCQkJfCBBTFRFUiBWQVJJQUJMRSBJRl9QIEVYSVNUUyBhbnlfbmFt ZSBTRVQgU0NIRU1BIG5hbWUKKwkJCQl7CisJCQkJCUFsdGVyT2JqZWN0U2NoZW1hU3RtdCAqbiA9 IG1ha2VOb2RlKEFsdGVyT2JqZWN0U2NoZW1hU3RtdCk7CisJCQkJCW4tPm9iamVjdFR5cGUgPSBP QkpFQ1RfVkFSSUFCTEU7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQ1OworCQkJCQluLT5u ZXdzY2hlbWEgPSAkODsKKwkJCQkJbi0+bWlzc2luZ19vayA9IHRydWU7CisJCQkJCSQkID0gKE5v ZGUgKiluOworCQkJCX0KIAkJOwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTEwNjA3LDYg KzEwNjkyLDE0IEBAIEFsdGVyT3duZXJTdG10OiBBTFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dp dGhfYXJndHlwZXMgT1dORVIgVE8gUm9sZVNwZWMKIAkJCQkJbi0+bmV3b3duZXIgPSAkNjsKIAkJ CQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgYW55X25hbWUg T1dORVIgVE8gUm9sZVNwZWMKKwkJCQl7CisJCQkJCUFsdGVyT3duZXJTdG10ICpuID0gbWFrZU5v ZGUoQWx0ZXJPd25lclN0bXQpOworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1ZBUklBQkxF OworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkMzsKKwkJCQkJbi0+bmV3b3duZXIgPSAkNjsK KwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQogCQk7CiAKIApAQCAtMTgwMTcsNiArMTgxMTAs OCBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IFZBTElEQVRFCiAJCQl8IFZBTElEQVRPUgog CQkJfCBWQUxVRV9QCisJCQl8IFZBUklBQkxFCisJCQl8IFZBUklBQkxFUwogCQkJfCBWQVJZSU5H CiAJCQl8IFZFUlNJT05fUAogCQkJfCBWSUVXCkBAIC0xODY3Myw2ICsxODc2OCw4IEBAIGJhcmVf bGFiZWxfa2V5d29yZDoKIAkJCXwgVkFMVUVfUAogCQkJfCBWQUxVRVMKIAkJCXwgVkFSQ0hBUgor CQkJfCBWQVJJQUJMRQorCQkJfCBWQVJJQUJMRVMKIAkJCXwgVkFSSUFESUMKIAkJCXwgVkVSQk9T RQogCQkJfCBWRVJTSU9OX1AKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91 dGlsY21kLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCmluZGV4IDYyMDE1 NDMxZmRmLi5iNmNiZTM1NGM1MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X3V0aWxjbWQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCkBAIC0x MDUsNiArMTA1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QKIAlMaXN0CSAgICppbmRleGVzOwkJLyogQ1JF QVRFIElOREVYIGl0ZW1zICovCiAJTGlzdAkgICAqdHJpZ2dlcnM7CQkvKiBDUkVBVEUgVFJJR0dF UiBpdGVtcyAqLwogCUxpc3QJICAgKmdyYW50czsJCQkvKiBHUkFOVCBpdGVtcyAqLworCUxpc3QJ ICAgKnZhcmlhYmxlczsJCS8qIENSRUFURSBWQVJJQUJMRSBpdGVtcyAqLwogfSBDcmVhdGVTY2hl bWFTdG10Q29udGV4dDsKIAogCkBAIC00MDkxLDYgKzQwOTIsNyBAQCB0cmFuc2Zvcm1DcmVhdGVT Y2hlbWFTdG10RWxlbWVudHMoTGlzdCAqc2NoZW1hRWx0cywgY29uc3QgY2hhciAqc2NoZW1hTmFt ZSkKIAljeHQuaW5kZXhlcyA9IE5JTDsKIAljeHQudHJpZ2dlcnMgPSBOSUw7CiAJY3h0LmdyYW50 cyA9IE5JTDsKKwljeHQudmFyaWFibGVzID0gTklMOwogCiAJLyoKIAkgKiBSdW4gdGhyb3VnaCBl YWNoIHNjaGVtYSBlbGVtZW50IGluIHRoZSBzY2hlbWEgZWxlbWVudCBsaXN0LiBTZXBhcmF0ZQpA QCAtNDE1OSw2ICs0MTYxLDE1IEBAIHRyYW5zZm9ybUNyZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhM aXN0ICpzY2hlbWFFbHRzLCBjb25zdCBjaGFyICpzY2hlbWFOYW1lKQogCQkJCWN4dC5ncmFudHMg PSBsYXBwZW5kKGN4dC5ncmFudHMsIGVsZW1lbnQpOwogCQkJCWJyZWFrOwogCisJCQljYXNlIFRf Q3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJCQkJeworCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAq ZWxwID0gKENyZWF0ZVNlc3Npb25WYXJTdG10ICopIGVsZW1lbnQ7CisKKwkJCQkJc2V0U2NoZW1h TmFtZShjeHQuc2NoZW1hbmFtZSwgJmVscC0+dmFyaWFibGUtPnNjaGVtYW5hbWUpOworCQkJCQlj eHQudmFyaWFibGVzID0gbGFwcGVuZChjeHQudmFyaWFibGVzLCBlbGVtZW50KTsKKwkJCQl9CisJ CQkJYnJlYWs7CisKIAkJCWRlZmF1bHQ6CiAJCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBu b2RlIHR5cGU6ICVkIiwKIAkJCQkJIChpbnQpIG5vZGVUYWcoZWxlbWVudCkpOwpAQCAtNDE3Miw2 ICs0MTgzLDcgQEAgdHJhbnNmb3JtQ3JlYXRlU2NoZW1hU3RtdEVsZW1lbnRzKExpc3QgKnNjaGVt YUVsdHMsIGNvbnN0IGNoYXIgKnNjaGVtYU5hbWUpCiAJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVz dWx0LCBjeHQuaW5kZXhlcyk7CiAJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQudHJp Z2dlcnMpOwogCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJlc3VsdCwgY3h0LmdyYW50cyk7CisJcmVz dWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQudmFyaWFibGVzKTsKIAogCXJldHVybiByZXN1 bHQ7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3NyYy9iYWNr ZW5kL3Rjb3AvdXRpbGl0eS5jCmluZGV4IDI1ZmUzZDU4MDE2Li45OWE1MTg3N2QzNCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC91 dGlsaXR5LmMKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aGlkLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19p bmhlcml0cy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJj YXRhbG9nL3RvYXN0aW5nLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvYWx0ZXIuaCIKICNpbmNsdWRl ICJjb21tYW5kcy9hc3luYy5oIgpAQCAtMTgyLDYgKzE4Myw3IEBAIENsYXNzaWZ5VXRpbGl0eUNv bW1hbmRBc1JlYWRPbmx5KE5vZGUgKnBhcnNldHJlZSkKIAkJY2FzZSBUX0NyZWF0ZVJhbmdlU3Rt dDoKIAkJY2FzZSBUX0NyZWF0ZVJvbGVTdG10OgogCQljYXNlIFRfQ3JlYXRlU2NoZW1hU3RtdDoK KwkJY2FzZSBUX0NyZWF0ZVNlc3Npb25WYXJTdG10OgogCQljYXNlIFRfQ3JlYXRlU2VxU3RtdDoK IAkJY2FzZSBUX0NyZWF0ZVN0YXRzU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVN0bXQ6CkBAIC0xMzg5 LDYgKzEzOTEsMTAgQEAgUHJvY2Vzc1V0aWxpdHlTbG93KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJ CQl9CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgVF9DcmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJCQlh ZGRyZXNzID0gQ3JlYXRlVmFyaWFibGUocHN0YXRlLCAoQ3JlYXRlU2Vzc2lvblZhclN0bXQgKikg cGFyc2V0cmVlKTsKKwkJCQlicmVhazsKKwogCQkJCS8qCiAJCQkJICogKioqKioqKioqKioqKiBv YmplY3QgY3JlYXRpb24gLyBkZXN0cnVjdGlvbiAqKioqKioqKioqKioqKgogCQkJCSAqLwpAQCAt MjM0MSw2ICsyMzQ3LDkgQEAgQWx0ZXJPYmplY3RUeXBlQ29tbWFuZFRhZyhPYmplY3RUeXBlIG9i anR5cGUpCiAJCWNhc2UgT0JKRUNUX1NUQVRJU1RJQ19FWFQ6CiAJCQl0YWcgPSBDTURUQUdfQUxU RVJfU1RBVElTVElDUzsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXRh ZyA9IENNRFRBR19BTFRFUl9WQVJJQUJMRTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJdGFn ID0gQ01EVEFHX1VOS05PV047CiAJCQlicmVhazsKQEAgLTI2NDksNiArMjY1OCw5IEBAIENyZWF0 ZUNvbW1hbmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJCWNhc2UgT0JKRUNUX1NUQVRJU1RJQ19F WFQ6CiAJCQkJCXRhZyA9IENNRFRBR19EUk9QX1NUQVRJU1RJQ1M7CiAJCQkJCWJyZWFrOworCQkJ CWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJCQl0YWcgPSBDTURUQUdfRFJPUF9WQVJJQUJMRTsK KwkJCQkJYnJlYWs7CiAJCQkJZGVmYXVsdDoKIAkJCQkJdGFnID0gQ01EVEFHX1VOS05PV047CiAJ CQl9CkBAIC0zMjI1LDYgKzMyMzcsMTAgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRy ZWUpCiAJCQl9CiAJCQlicmVhazsKIAorCQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJ CQl0YWcgPSBDTURUQUdfQ1JFQVRFX1ZBUklBQkxFOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoK IAkJCWVsb2coV0FSTklORywgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwKIAkJCQkgKGlu dCkgbm9kZVRhZyhwYXJzZXRyZWUpKTsKQEAgLTM3NTksNiArMzc3NSwxMCBAQCBHZXRDb21tYW5k TG9nTGV2ZWwoTm9kZSAqcGFyc2V0cmVlKQogCQkJfQogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX0Ny ZWF0ZVNlc3Npb25WYXJTdG10OgorCQkJbGV2ID0gTE9HU1RNVF9EREw7CisJCQlicmVhazsKKwog CQlkZWZhdWx0OgogCQkJZWxvZyhXQVJOSU5HLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQi LAogCQkJCSAoaW50KSBub2RlVGFnKHBhcnNldHJlZSkpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2FjbC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jCmluZGV4IGNh M2M1ZWUzZGYzLi4wNzg3NGQ0YmEzOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2FjbC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYwpAQCAtMzEsNiArMzEsNyBA QAogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFi bGVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFs b2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5j bHVkZSAiY29tbWFuZHMvcHJvY2xhbmcuaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNwYWNl LmgiCkBAIC0xMjksNiArMTMwLDggQEAgc3RhdGljIEFjbE1vZGUgY29udmVydF90eXBlX3ByaXZf c3RyaW5nKHRleHQgKnByaXZfdHlwZV90ZXh0KTsKIHN0YXRpYyBBY2xNb2RlIGNvbnZlcnRfcGFy YW1ldGVyX3ByaXZfc3RyaW5nKHRleHQgKnByaXZfdGV4dCk7CiBzdGF0aWMgQWNsTW9kZSBjb252 ZXJ0X2xhcmdlb2JqZWN0X3ByaXZfc3RyaW5nKHRleHQgKnByaXZfdHlwZV90ZXh0KTsKIHN0YXRp YyBBY2xNb2RlIGNvbnZlcnRfcm9sZV9wcml2X3N0cmluZyh0ZXh0ICpwcml2X3R5cGVfdGV4dCk7 CitzdGF0aWMgT2lkCWNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHRleHQgKnZhcm5hbWUp Oworc3RhdGljIEFjbE1vZGUgY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHRl eHQgKnByaXZfdHlwZV90ZXh0KTsKIHN0YXRpYyBBY2xSZXN1bHQgcGdfcm9sZV9hY2xjaGVjayhP aWQgcm9sZV9vaWQsIE9pZCByb2xlaWQsIEFjbE1vZGUgbW9kZSk7CiAKIHN0YXRpYyB2b2lkIFJv bGVNZW1iZXJzaGlwQ2FjaGVDYWxsYmFjayhEYXR1bSBhcmcsIGludCBjYWNoZWlkLCB1aW50MzIg aGFzaHZhbHVlKTsKQEAgLTg1MSw2ICs4NTQsMTAgQEAgYWNsZGVmYXVsdChPYmplY3RUeXBlIG9i anR5cGUsIE9pZCBvd25lcklkKQogCQkJd29ybGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7CiAJ CQlvd25lcl9kZWZhdWx0ID0gQUNMX0FMTF9SSUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJCWJyZWFr OworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXdvcmxkX2RlZmF1bHQgPSBBQ0xfTk9fUklH SFRTOworCQkJb3duZXJfZGVmYXVsdCA9IEFDTF9BTExfUklHSFRTX1ZBUklBQkxFOworCQkJYnJl YWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBl OiAlZCIsIChpbnQpIG9ianR5cGUpOwogCQkJd29ybGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7 CS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KQEAgLTk0OCw2ICs5NTUsOSBAQCBhY2xkZWZhdWx0 X3NxbChQR19GVU5DVElPTl9BUkdTKQogCQljYXNlICdUJzoKIAkJCW9ianR5cGUgPSBPQkpFQ1Rf VFlQRTsKIAkJCWJyZWFrOworCQljYXNlICdWJzoKKwkJCW9ianR5cGUgPSBPQkpFQ1RfVkFSSUFC TEU7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQg b2JqZWN0IHR5cGUgYWJicmV2aWF0aW9uOiAlYyIsIG9ianR5cGVjKTsKIAl9CkBAIC01MDE2LDYg KzUwMjYsMjE3IEBAIHBnX3JvbGVfYWNsY2hlY2soT2lkIHJvbGVfb2lkLCBPaWQgcm9sZWlkLCBB Y2xNb2RlIG1vZGUpCiAJcmV0dXJuIEFDTENIRUNLX05PX1BSSVY7CiB9CiAKKy8qCisgKiBoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgdmFyaWFudHMKKyAqCQlUaGVzZSBhcmUgYWxsIG5h bWVkICJoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UiIGF0IHRoZSBTUUwgbGV2ZWwuCisg KgkJVGhleSB0YWtlIHZhcmlvdXMgY29tYmluYXRpb25zIG9mIHZhcmlhYmxlIG5hbWUsIHZhcmlh YmxlIE9JRCwKKyAqCQl1c2VyIG5hbWUsIHVzZXIgT0lELCBvciBpbXBsaWNpdCB1c2VyID0gY3Vy cmVudF91c2VyLgorICoKKyAqCQlUaGUgcmVzdWx0IGlzIGEgYm9vbGVhbiB2YWx1ZTogdHJ1ZSBp ZiB1c2VyIGhhcyB0aGUgaW5kaWNhdGVkCisgKgkJcHJpdmlsZWdlLCBmYWxzZSBpZiBub3QsIG9y IE5VTEwgaWYgc2Vzc2lvbiB2YXJpYWJsZSBkb2Vzbid0CisgKgkJZXhpc3RzLgorICovCisKKy8q CisgKiBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfbmFtZV9uYW1lCisgKgkJQ2hlY2sg dXNlciBwcml2aWxlZ2VzIG9uIGEgc2Vzc2lvbiB2YXJpYWJsZSBnaXZlbgorICoJCW5hbWUgdXNl cm5hbWUsIHRleHQgc2Vzc2lvbiB2YXJpYWJsZSBuYW1lLCBhbmQgdGV4dCBwcml2IG5hbWUuCisg Ki8KK0RhdHVtCitoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfbmFtZV9uYW1lKFBHX0ZV TkNUSU9OX0FSR1MpCit7CisJTmFtZQkJcm9sZW5hbWUgPSBQR19HRVRBUkdfTkFNRSgwKTsKKwl0 ZXh0CSAgICp2YXJuYW1lID0gUEdfR0VUQVJHX1RFWFRfUFAoMSk7CisJdGV4dAkgICAqcHJpdl90 eXBlX3RleHQgPSBQR19HRVRBUkdfVEVYVF9QUCgyKTsKKwlPaWQJCQlyb2xlaWQ7CisJT2lkCQkJ dmFyaWQ7CisJQWNsTW9kZQkJbW9kZTsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCWJvb2wJCWlz X21pc3NpbmcgPSBmYWxzZTsKKworCXJvbGVpZCA9IGdldF9yb2xlX29pZF9vcl9wdWJsaWMoTmFt ZVN0cigqcm9sZW5hbWUpKTsKKwltb2RlID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZf c3RyaW5nKHByaXZfdHlwZV90ZXh0KTsKKwl2YXJpZCA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lKHZhcm5hbWUpOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrX2V4dChWYXJp YWJsZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJCQkJCQkJcm9sZWlkLCBtb2RlLAorCQkJCQkJCQkJ JmlzX21pc3NpbmcpOworCisJaWYgKGlzX21pc3NpbmcpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisK KwlQR19SRVRVUk5fQk9PTChhY2xyZXN1bHQgPT0gQUNMQ0hFQ0tfT0spOworfQorCisvKgorICog aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX25hbWUKKyAqCQlDaGVjayB1c2VyIHByaXZp bGVnZXMgb24gYSBzZXNzaW9uIHZhcmlhYmxlIGdpdmVuCisgKgkJdGV4dCBzZXNzaW9uIHZhcmlh YmxlIGFuZCB0ZXh0IHByaXYgbmFtZS4KKyAqCQljdXJyZW50X3VzZXIgaXMgYXNzdW1lZAorICov CitEYXR1bQoraGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX25hbWUoUEdfRlVOQ1RJT05f QVJHUykKK3sKKwl0ZXh0CSAgICp2YXJuYW1lID0gUEdfR0VUQVJHX1RFWFRfUFAoMCk7CisJdGV4 dAkgICAqcHJpdl90eXBlX3RleHQgPSBQR19HRVRBUkdfVEVYVF9QUCgxKTsKKwlPaWQJCQlyb2xl aWQ7CisJT2lkCQkJdmFyaWQ7CisJQWNsTW9kZQkJbW9kZTsKKwlBY2xSZXN1bHQJYWNscmVzdWx0 OworCWJvb2wJCWlzX21pc3NpbmcgPSBmYWxzZTsKKworCXJvbGVpZCA9IEdldFVzZXJJZCgpOwor CW1vZGUgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmcocHJpdl90eXBlX3Rl eHQpOworCXZhcmlkID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFybmFtZSk7CisK KwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2tfZXh0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFy aWQsCisJCQkJCQkJCQlyb2xlaWQsIG1vZGUsCisJCQkJCQkJCQkmaXNfbWlzc2luZyk7CisKKwlQ R19SRVRVUk5fQk9PTChhY2xyZXN1bHQgPT0gQUNMQ0hFQ0tfT0spOworfQorCisvKgorICogaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX25hbWVfaWQKKyAqCQlDaGVjayB1c2VyIHByaXZp bGVnZXMgb24gYSBzZXNzaW9uIHZhcmlhYmxlIGdpdmVuCisgKgkJbmFtZSB1c2VuYW1lLCBzZXNz aW9uIHZhcmlhYmxlIG9pZCwgYW5kIHRleHQgcHJpdiBuYW1lLgorICovCitEYXR1bQoraGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX25hbWVfaWQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlO YW1lCQl1c2VybmFtZSA9IFBHX0dFVEFSR19OQU1FKDApOworCU9pZAkJCXZhcmlkID0gUEdfR0VU QVJHX09JRCgxKTsKKwl0ZXh0CSAgICpwcml2X3R5cGVfdGV4dCA9IFBHX0dFVEFSR19URVhUX1BQ KDIpOworCU9pZAkJCXJvbGVpZDsKKwlBY2xNb2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1 bHQ7CisJYm9vbAkJaXNfbWlzc2luZyA9IGZhbHNlOworCisJcm9sZWlkID0gZ2V0X3JvbGVfb2lk X29yX3B1YmxpYyhOYW1lU3RyKCp1c2VybmFtZSkpOworCW1vZGUgPSBjb252ZXJ0X3Nlc3Npb25f dmFyaWFibGVfcHJpdl9zdHJpbmcocHJpdl90eXBlX3RleHQpOworCisJYWNscmVzdWx0ID0gb2Jq ZWN0X2FjbGNoZWNrX2V4dChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJCQkJCQkJcm9s ZWlkLCBtb2RlLAorCQkJCQkJCQkJJmlzX21pc3NpbmcpOworCisJaWYgKGlzX21pc3NpbmcpCisJ CVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fQk9PTChhY2xyZXN1bHQgPT0gQUNMQ0hF Q0tfT0spOworfQorCisvKgorICogaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkCisg KgkJQ2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEgc2Vzc2lvbiB2YXJpYWJsZSBnaXZlbgorICoJ CXNlc3Npb24gdmFyaWFibGUgb2lkLCBhbmQgdGV4dCBwcml2IG5hbWUuCisgKgkJY3VycmVudF91 c2VyIGlzIGFzc3VtZWQKKyAqLworRGF0dW0KK2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZV9pZChQR19GVU5DVElPTl9BUkdTKQoreworCU9pZAkJCXZhcmlkID0gUEdfR0VUQVJHX09JRCgw KTsKKwl0ZXh0CSAgICpwcml2X3R5cGVfdGV4dCA9IFBHX0dFVEFSR19URVhUX1BQKDEpOworCU9p ZAkJCXJvbGVpZDsKKwlBY2xNb2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJYm9v bAkJaXNfbWlzc2luZyA9IGZhbHNlOworCisJcm9sZWlkID0gR2V0VXNlcklkKCk7CisJbW9kZSA9 IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCk7CisK KwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2tfZXh0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFy aWQsCisJCQkJCQkJCQlyb2xlaWQsIG1vZGUsCisJCQkJCQkJCQkmaXNfbWlzc2luZyk7CisKKwlp ZiAoaXNfbWlzc2luZykKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9CT09MKGFj bHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisgKiBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2VfaWRfbmFtZQorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBvbiBhIHNlc3Np b24gdmFyaWFibGUgZ2l2ZW4KKyAqCQlyb2xlaWQsIHRleHQgc2Vzc2lvbiB2YXJpYWJsZSBuYW1l LCBhbmQgdGV4dCBwcml2IG5hbWUuCisgKi8KK0RhdHVtCitoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2VfaWRfbmFtZShQR19GVU5DVElPTl9BUkdTKQoreworCU9pZAkJCXJvbGVpZCA9IFBH X0dFVEFSR19PSUQoMCk7CisJdGV4dAkgICAqdmFybmFtZSA9IFBHX0dFVEFSR19URVhUX1BQKDEp OworCXRleHQJICAgKnByaXZfdHlwZV90ZXh0ID0gUEdfR0VUQVJHX1RFWFRfUFAoMik7CisJT2lk CQkJdmFyaWQ7CisJQWNsTW9kZQkJbW9kZTsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCWJvb2wJ CWlzX21pc3NpbmcgPSBmYWxzZTsKKworCW1vZGUgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVf cHJpdl9zdHJpbmcocHJpdl90eXBlX3RleHQpOworCXZhcmlkID0gY29udmVydF9zZXNzaW9uX3Zh cmlhYmxlX25hbWUodmFybmFtZSk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2tfZXh0 KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsCisJCQkJCQkJCQlyb2xlaWQsIG1vZGUsCisJCQkJ CQkJCQkmaXNfbWlzc2luZyk7CisKKwlpZiAoaXNfbWlzc2luZykKKwkJUEdfUkVUVVJOX05VTEwo KTsKKworCVBHX1JFVFVSTl9CT09MKGFjbHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8q CisgKiBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWRfaWQKKyAqCQlDaGVjayB1c2Vy IHByaXZpbGVnZXMgb24gYSBzZXNzaW9uIHZhcmlhYmxlIGdpdmVuCisgKgkJcm9sZWlkLCBzZXNz aW9uIHZhcmlhYmxlIG9pZCwgYW5kIHRleHQgcHJpdiBuYW1lLgorICovCitEYXR1bQoraGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkX2lkKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJT2lk CQkJcm9sZWlkID0gUEdfR0VUQVJHX09JRCgwKTsKKwlPaWQJCQl2YXJpZCA9IFBHX0dFVEFSR19P SUQoMSk7CisJdGV4dAkgICAqcHJpdl90eXBlX3RleHQgPSBQR19HRVRBUkdfVEVYVF9QUCgyKTsK KwlBY2xNb2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJYm9vbAkJaXNfbWlzc2lu ZyA9IGZhbHNlOworCisJbW9kZSA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0cmlu Zyhwcml2X3R5cGVfdGV4dCk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2tfZXh0KFZh cmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsCisJCQkJCQkJCQlyb2xlaWQsIG1vZGUsCisJCQkJCQkJ CQkmaXNfbWlzc2luZyk7CisKKwlpZiAoaXNfbWlzc2luZykKKwkJUEdfUkVUVVJOX05VTEwoKTsK KworCVBHX1JFVFVSTl9CT09MKGFjbHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisg KiBHaXZlbiBhIHNlc3Npb24gdmFyaWFibGUgbmFtZSBleHByZXNzZWQgYXMgYSBzdHJpbmcsIGxv b2sgaXQgdXAgYW5kIHJldHVybgorICogT2lkCisgKi8KK3N0YXRpYyBPaWQKK2NvbnZlcnRfc2Vz c2lvbl92YXJpYWJsZV9uYW1lKHRleHQgKnZhcm5hbWUpCit7CisJcmV0dXJuIExvb2t1cFZhcmlh YmxlRnJvbU5hbWVMaXN0KHRleHRUb1F1YWxpZmllZE5hbWVMaXN0KHZhcm5hbWUpLCB0cnVlKTsK K30KKworLyoKKyAqIGNvbnZlcnRfdmFyaWFibGVfcHJpdl9zdHJpbmcKKyAqCQlDb252ZXJ0IHRl eHQgc3RyaW5nIHRvIEFjbE1vZGUgdmFsdWUuCisgKi8KK3N0YXRpYyBBY2xNb2RlCitjb252ZXJ0 X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmcodGV4dCAqcHJpdl90eXBlX3RleHQpCit7CisJ c3RhdGljIGNvbnN0IHByaXZfbWFwIHNlc3Npb25fdmFyaWFibGVfcHJpdl9tYXBbXSA9IHsKKwkJ eyJTRUxFQ1QiLCBBQ0xfU0VMRUNUfSwKKwkJeyJTRUxFQ1QgV0lUSCBHUkFOVCBPUFRJT04iLCBB Q0xfR1JBTlRfT1BUSU9OX0ZPUihBQ0xfU0VMRUNUKX0sCisJCXsiVVBEQVRFIiwgQUNMX1VQREFU RX0sCisJCXsiVVBEQVRFIFdJVEggR1JBTlQgT1BUSU9OIiwgQUNMX0dSQU5UX09QVElPTl9GT1Io QUNMX1VQREFURSl9LAorCQl7TlVMTCwgMH0KKwl9OworCisJcmV0dXJuIGNvbnZlcnRfYW55X3By aXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0LCBzZXNzaW9uX3ZhcmlhYmxlX3ByaXZfbWFwKTsKK30K IAogLyoKICAqIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIChjYWxsZWQgYnkgSW5pdFBvc3RncmVz KQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMgYi9zcmMv YmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwppbmRleCBjNDYwYTcyYjc1ZC4uZDc3MTIx YjYzZjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCkBAIC0zOSw2ICszOSw3IEBA CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX3RyYW5zZm9ybS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUg ImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRl ICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJ1dGlscy9hcnJheS5oIgpAQCAtMzg1NCwz ICszODU1LDExNSBAQCBnZXRfc3Vic2NyaXB0aW9uX25hbWUoT2lkIHN1YmlkLCBib29sIG1pc3Np bmdfb2spCiAKIAlyZXR1cm4gc3VibmFtZTsKIH0KKworLyoJCQkJLS0tLS0tLS0tLSBQR19WQVJJ QUJMRSBDQUNIRSAtLS0tLS0tLS0tCQkJCSAqLworCisvKgorICogZ2V0X3Zhcm5hbWVfdmFyaWQK KyAqCQlHaXZlbiBuYW1lIGFuZCBuYW1lc3BhY2Ugb2YgdmFyaWFibGUsIGxvb2sgdXAgdGhlIE9J RC4KKyAqLworT2lkCitnZXRfdmFybmFtZV92YXJpZChjb25zdCBjaGFyICp2YXJuYW1lLCBPaWQg dmFybmFtZXNwYWNlKQoreworCXJldHVybiBHZXRTeXNDYWNoZU9pZDIoVkFSSUFCTEVOQU1FTlNQ LCBBbnVtX3BnX3ZhcmlhYmxlX29pZCwKKwkJCQkJCSAgIFBvaW50ZXJHZXREYXR1bSh2YXJuYW1l KSwKKwkJCQkJCSAgIE9iamVjdElkR2V0RGF0dW0odmFybmFtZXNwYWNlKSk7Cit9CisKKy8qCisg KiBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lCisgKgkJUmV0dXJucyBhIHBhbGxvYydkIGNvcHkg b2YgdGhlIG5hbWUgb2YgYSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlLgorICovCitjaGFyICoKK2dl dF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lkIHZhcmlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJ Rm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCWNoYXIJICAgKnZhcm5hbWU7CisKKwl0dXAgPSBT ZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKwor CWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3Vw IGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZvcm0gPSAo Rm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwl2YXJuYW1lID0gcHN0cmR1cChO YW1lU3RyKHZhcmZvcm0tPnZhcm5hbWUpKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCisJ cmV0dXJuIHZhcm5hbWU7Cit9CisKKy8qCisgKiBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3Bh Y2UKKyAqCQlSZXR1cm5zIHRoZSBwZ19uYW1lc3BhY2UgT0lEIGFzc29jaWF0ZWQgd2l0aCBhIGdp dmVuIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK09pZAorZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFt ZXNwYWNlKE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdfdmFyaWFibGUg dmFyZm9ybTsKKwlPaWQJCQl2YXJuYW1lc3BhY2U7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEo VkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxl SXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgdmFy aWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNU UlVDVCh0dXApOworCisJdmFybmFtZXNwYWNlID0gdmFyZm9ybS0+dmFybmFtZXNwYWNlOworCisJ UmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwlyZXR1cm4gdmFybmFtZXNwYWNlOworfQorCisvKgor ICogUmV0dXJucyB0aGUgdHlwZSBvZiB0aGUgZ2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLwor T2lkCitnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlKE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJ dHVwOworCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKwlPaWQJCQl2YXJ0eXBlOworCisJdHVw ID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7 CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxv b2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3Jt ID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJdmFydHlwZSA9IHZhcmZv cm0tPnZhcnR5cGU7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXJldHVybiB2YXJ0eXBl OworfQorCisvKgorICogUmV0dXJucyB0aGUgdHlwZSwgdHlwbW9kIGFuZCBjb2xsaWQgb2YgdGhl IGdpdmVuIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK3ZvaWQKK2dldF9zZXNzaW9uX3ZhcmlhYmxl X3R5cGVfdHlwbW9kX2NvbGxpZChPaWQgdmFyaWQsIE9pZCAqdHlwaWQsIGludDMyICp0eXBtb2Qs CisJCQkJCQkJCQkJT2lkICpjb2xsaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX3Zh cmlhYmxlIHZhcmZvcm07CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9i amVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQor CQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAl dSIsIHZhcmlkKTsKKworCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1 cCk7CisKKwkqdHlwaWQgPSB2YXJmb3JtLT52YXJ0eXBlOworCSp0eXBtb2QgPSB2YXJmb3JtLT52 YXJ0eXBtb2Q7CisJKmNvbGxpZCA9IHZhcmZvcm0tPnZhcmNvbGxhdGlvbjsKKworCVJlbGVhc2VT eXNDYWNoZSh0dXApOworfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jIGIv c3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jCmluZGV4IGFhMTU4OWUzMzMxLi44NjM2MGJkNmQ5NSAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jCisrKyBiL3NyYy9iaW4vcGdfZHVt cC9jb21tb24uYwpAQCAtMjQ2LDYgKzI0Niw5IEBAIGdldFNjaGVtYURhdGEoQXJjaGl2ZSAqZm91 dCwgaW50ICpudW1UYWJsZXNQdHIpCiAJcGdfbG9nX2luZm8oInJlYWRpbmcgc3Vic2NyaXB0aW9u IG1lbWJlcnNoaXAgb2YgdGFibGVzIik7CiAJZ2V0U3Vic2NyaXB0aW9uVGFibGVzKGZvdXQpOwog CisJcGdfbG9nX2luZm8oInJlYWRpbmcgdmFyaWFibGVzIik7CisJZ2V0VmFyaWFibGVzKGZvdXQp OworCiAJZnJlZShpbmhpbmZvKTsJCQkJLyogbm90IG5lZWRlZCBhbnkgbG9uZ2VyICovCiAKIAkq bnVtVGFibGVzUHRyID0gbnVtVGFibGVzOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL2R1 bXB1dGlscy5jIGIvc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5jCmluZGV4IDczY2UzNDM0NmIy Li5jYmNhN2MzNDNhMSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5jCisr KyBiL3NyYy9iaW4vcGdfZHVtcC9kdW1wdXRpbHMuYwpAQCAtNTE0LDYgKzUxNCwxMiBAQCBkbyB7 IFwKIAkJQ09OVkVSVF9QUklWKCdyJywgIlNFTEVDVCIpOwogCQlDT05WRVJUX1BSSVYoJ3cnLCAi VVBEQVRFIik7CiAJfQorCWVsc2UgaWYgKHN0cmNtcCh0eXBlLCAiVkFSSUFCTEUiKSA9PSAwIHx8 CisJCQkgc3RyY21wKHR5cGUsICJWQVJJQUJMRVMiKSA9PSAwKQorCXsKKwkJQ09OVkVSVF9QUklW KCdyJywgIlNFTEVDVCIpOworCQlDT05WRVJUX1BSSVYoJ3cnLCAiVVBEQVRFIik7CisJfQogCWVs c2UKIAkJYWJvcnQoKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5o IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCmluZGV4IGFmMDAwN2ZiNmQyLi43NjM1NjUy NGFmMiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCisrKyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19iYWNrdXAuaApAQCAtMTM0LDEyICsxMzQsMTQgQEAgdHlwZWRlZiBzdHJ1 Y3QgX3Jlc3RvcmVPcHRpb25zCiAJaW50CQkJc2VsRnVuY3Rpb247CiAJaW50CQkJc2VsVHJpZ2dl cjsKIAlpbnQJCQlzZWxUYWJsZTsKKwlpbnQJCQlzZWxWYXJpYWJsZTsKIAlTaW1wbGVTdHJpbmdM aXN0IGluZGV4TmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCBmdW5jdGlvbk5hbWVzOwogCVNpbXBs ZVN0cmluZ0xpc3Qgc2NoZW1hTmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCBzY2hlbWFFeGNsdWRl TmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCB0cmlnZ2VyTmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlz dCB0YWJsZU5hbWVzOworCVNpbXBsZVN0cmluZ0xpc3QgdmFyaWFibGVOYW1lczsKIAogCWludAkJ CXVzZURCOwogCUNvbm5QYXJhbXMJY3BhcmFtczsJCS8qIHBhcmFtZXRlcnMgdG8gdXNlIGlmIHVz ZURCICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMg Yi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKaW5kZXggYWZhNDIzMzdiMTEu LmU3OTY0MTMxYzJlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hp dmVyLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCkBAIC0zMTc5 LDYgKzMxNzksMTQgQEAgX3RvY0VudHJ5UmVxdWlyZWQoVG9jRW50cnkgKnRlLCB0ZVNlY3Rpb24g Y3VyU2VjdGlvbiwgQXJjaGl2ZUhhbmRsZSAqQUgpCiAJCQkJCSFzaW1wbGVfc3RyaW5nX2xpc3Rf bWVtYmVyKCZyb3B0LT50cmlnZ2VyTmFtZXMsIHRlLT50YWcpKQogCQkJCQlyZXR1cm4gMDsKIAkJ CX0KKwkJCWVsc2UgaWYgKHN0cmNtcCh0ZS0+ZGVzYywgIlZBUklBQkxFIikgPT0gMCkKKwkJCXsK KwkJCQlpZiAoIXJvcHQtPnNlbFZhcmlhYmxlKQorCQkJCQlyZXR1cm4gMDsKKwkJCQlpZiAocm9w dC0+dmFyaWFibGVOYW1lcy5oZWFkICE9IE5VTEwgJiYKKwkJCQkJIXNpbXBsZV9zdHJpbmdfbGlz dF9tZW1iZXIoJnJvcHQtPnZhcmlhYmxlTmFtZXMsIHRlLT50YWcpKQorCQkJCQlyZXR1cm4gMDsK KwkJCX0KIAkJCWVsc2UKIAkJCQlyZXR1cm4gMDsKIAkJfQpAQCAtMzc0Miw2ICszNzUwLDcgQEAg X2dldE9iamVjdERlc2NyaXB0aW9uKFBRRXhwQnVmZmVyIGJ1ZiwgY29uc3QgVG9jRW50cnkgKnRl KQogCQlzdHJjbXAodHlwZSwgIlRFWFQgU0VBUkNIIERJQ1RJT05BUlkiKSA9PSAwIHx8CiAJCXN0 cmNtcCh0eXBlLCAiVEVYVCBTRUFSQ0ggQ09ORklHVVJBVElPTiIpID09IDAgfHwKIAkJc3RyY21w KHR5cGUsICJUWVBFIikgPT0gMCB8fAorCQlzdHJjbXAodHlwZSwgIlZBUklBQkxFIikgPT0gMCB8 fAogCQlzdHJjbXAodHlwZSwgIlZJRVciKSA9PSAwIHx8CiAJLyogbm9uLXNjaGVtYS1zcGVjaWZp ZWQgb2JqZWN0cyAqLwogCQlzdHJjbXAodHlwZSwgIkRBVEFCQVNFIikgPT0gMCB8fApkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmMKaW5kZXggZTJlNzk3NWIzNGUuLjI1NTgwMGVjYTExIDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTM3MCw2 ICszNzAsNyBAQCBzdGF0aWMgdm9pZCBkdW1wUHVibGljYXRpb24oQXJjaGl2ZSAqZm91dCwgY29u c3QgUHVibGljYXRpb25JbmZvICpwdWJpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBQdWJsaWNhdGlv blRhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9uUmVsSW5mbyAqcHVicmluZm8p Owogc3RhdGljIHZvaWQgZHVtcFN1YnNjcmlwdGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBTdWJz Y3JpcHRpb25JbmZvICpzdWJpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBTdWJzY3JpcHRpb25UYWJs ZShBcmNoaXZlICpmb3V0LCBjb25zdCBTdWJSZWxJbmZvICpzdWJyaW5mbyk7CitzdGF0aWMgdm9p ZCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZv KTsKIHN0YXRpYyB2b2lkIGR1bXBEYXRhYmFzZShBcmNoaXZlICpmb3V0KTsKIHN0YXRpYyB2b2lk IGR1bXBEYXRhYmFzZUNvbmZpZyhBcmNoaXZlICpBSCwgUFFFeHBCdWZmZXIgb3V0YnVmLAogCQkJ CQkJCSAgIGNvbnN0IGNoYXIgKmRibmFtZSwgT2lkIGRib2lkKTsKQEAgLTU1MTIsNiArNTUxMywx ODggQEAgZ2V0X25leHRfcG9zc2libGVfZnJlZV9wZ190eXBlX29pZChBcmNoaXZlICpmb3V0LCBQ UUV4cEJ1ZmZlciB1cGdyYWRlX3F1ZXJ5KQogCXJldHVybiBuZXh0X3Bvc3NpYmxlX2ZyZWVfb2lk OwogfQogCisvKgorICogZ2V0VmFyaWFibGVzCisgKgkgIGdldCBpbmZvcm1hdGlvbiBhYm91dCB2 YXJpYWJsZXMKKyAqLwordm9pZAorZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCit7CisJUFFF eHBCdWZmZXIgcXVlcnk7CisJUEdyZXN1bHQgICAqcmVzOworCVZhcmlhYmxlSW5mbyAqdmFyaW5m bzsKKwlpbnQJCQlpX3RhYmxlb2lkOworCWludAkJCWlfb2lkOworCWludAkJCWlfdmFybmFtZTsK KwlpbnQJCQlpX3Zhcm5hbWVzcGFjZTsKKwlpbnQJCQlpX3ZhcnR5cGU7CisJaW50CQkJaV92YXJ0 eXBuYW1lOworCWludAkJCWlfdmFyb3duZXI7CisJaW50CQkJaV92YXJjb2xsYXRpb247CisJaW50 CQkJaV92YXJhY2w7CisJaW50CQkJaV9hY2xkZWZhdWx0OworCWludAkJCWksCisJCQkJbnR1cHM7 CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA8IDE4MDAwMCkKKwkJcmV0dXJuOworCisJcXVl cnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCisJLyogZ2V0IHRoZSB2YXJpYWJsZXMgaW4gY3Vy cmVudCBkYXRhYmFzZSAqLworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LAorCQkJCQkgICJTRUxF Q1Qgdi50YWJsZW9pZCwgdi5vaWQsIHYudmFybmFtZSxcbiIKKwkJCQkJICAiICAgICAgIHYudmFy bmFtZXNwYWNlLCB2LnZhcnR5cGUsXG4iCisJCQkJCSAgIiAgICAgICBwZ19jYXRhbG9nLmZvcm1h dF90eXBlKHYudmFydHlwZSwgdi52YXJ0eXBtb2QpIGFzIHZhcnR5cG5hbWUsXG4iCisJCQkJCSAg IiAgICAgICBDQVNFIFdIRU4gdi52YXJjb2xsYXRpb24gPD4gdC50eXBjb2xsYXRpb24gIgorCQkJ CQkgICIgICAgICAgICAgICBUSEVOIHYudmFyY29sbGF0aW9uXG4iCisJCQkJCSAgIiAgICAgICAg ICAgIEVMU0UgMFxuIgorCQkJCQkgICIgICAgICAgRU5EIEFTIHZhcmNvbGxhdGlvbixcbiIKKwkJ CQkJICAiICAgICAgIHYudmFyb3duZXIsIHYudmFyYWNsLFxuIgorCQkJCQkgICIgICAgICAgYWNs ZGVmYXVsdCgnVicsIHYudmFyb3duZXIpIEFTIGFjbGRlZmF1bHRcbiIKKwkJCQkJICAiRlJPTSBw Z19jYXRhbG9nLnBnX3ZhcmlhYmxlIHZcbiIKKwkJCQkJICAiSk9JTiBwZ19jYXRhbG9nLnBnX3R5 cGUgdCAiCisJCQkJCSAgIk9OICh2LnZhcnR5cGUgPSB0Lm9pZCkiKTsKKworCXJlcyA9IEV4ZWN1 dGVTcWxRdWVyeShmb3V0LCBxdWVyeS0+ZGF0YSwgUEdSRVNfVFVQTEVTX09LKTsKKworCW50dXBz ID0gUFFudHVwbGVzKHJlcyk7CisKKwlpX3RhYmxlb2lkID0gUFFmbnVtYmVyKHJlcywgInRhYmxl b2lkIik7CisJaV9vaWQgPSBQUWZudW1iZXIocmVzLCAib2lkIik7CisJaV92YXJuYW1lID0gUFFm bnVtYmVyKHJlcywgInZhcm5hbWUiKTsKKwlpX3Zhcm5hbWVzcGFjZSA9IFBRZm51bWJlcihyZXMs ICJ2YXJuYW1lc3BhY2UiKTsKKwlpX3ZhcnR5cGUgPSBQUWZudW1iZXIocmVzLCAidmFydHlwZSIp OworCWlfdmFydHlwbmFtZSA9IFBRZm51bWJlcihyZXMsICJ2YXJ0eXBuYW1lIik7CisJaV92YXJj b2xsYXRpb24gPSBQUWZudW1iZXIocmVzLCAidmFyY29sbGF0aW9uIik7CisKKwlpX3Zhcm93bmVy ID0gUFFmbnVtYmVyKHJlcywgInZhcm93bmVyIik7CisJaV92YXJhY2wgPSBQUWZudW1iZXIocmVz LCAidmFyYWNsIik7CisJaV9hY2xkZWZhdWx0ID0gUFFmbnVtYmVyKHJlcywgImFjbGRlZmF1bHQi KTsKKworCXZhcmluZm8gPSBwZ19tYWxsb2MobnR1cHMgKiBzaXplb2YoVmFyaWFibGVJbmZvKSk7 CisKKwlmb3IgKGkgPSAwOyBpIDwgbnR1cHM7IGkrKykKKwl7CisJCVR5cGVJbmZvICAgKnZ0eXBl OworCisJCXZhcmluZm9baV0uZG9iai5vYmpUeXBlID0gRE9fVkFSSUFCTEU7CisJCXZhcmluZm9b aV0uZG9iai5jYXRJZC50YWJsZW9pZCA9CisJCQlhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlf dGFibGVvaWQpKTsKKwkJdmFyaW5mb1tpXS5kb2JqLmNhdElkLm9pZCA9IGF0b29pZChQUWdldHZh bHVlKHJlcywgaSwgaV9vaWQpKTsKKwkJQXNzaWduRHVtcElkKCZ2YXJpbmZvW2ldLmRvYmopOwor CQl2YXJpbmZvW2ldLmRvYmoubmFtZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92 YXJuYW1lKSk7CisJCXZhcmluZm9baV0uZG9iai5uYW1lc3BhY2UgPQorCQkJZmluZE5hbWVzcGFj ZShhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFybmFtZXNwYWNlKSkpOworCisJCXZhcmlu Zm9baV0udmFydHlwZSA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJ0eXBlKSk7CisJ CXZhcmluZm9baV0udmFydHlwbmFtZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92 YXJ0eXBuYW1lKSk7CisJCXZhcmluZm9baV0udmFyY29sbGF0aW9uID0gYXRvb2lkKFBRZ2V0dmFs dWUocmVzLCBpLCBpX3ZhcmNvbGxhdGlvbikpOworCisJCXZhcmluZm9baV0uZGFjbC5hY2wgPSBw Z19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyYWNsKSk7CisJCXZhcmluZm9baV0uZGFj bC5hY2xkZWZhdWx0ID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2FjbGRlZmF1bHQp KTsKKwkJdmFyaW5mb1tpXS5kYWNsLnByaXZ0eXBlID0gMDsKKwkJdmFyaW5mb1tpXS5kYWNsLmlu aXRwcml2cyA9IE5VTEw7CisJCXZhcmluZm9baV0ucm9sbmFtZSA9IGdldFJvbGVOYW1lKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX3Zhcm93bmVyKSk7CisKKwkJLyogZG8gbm90IHRyeSB0byBkdW1wIEFD TCBpZiBubyBBQ0wgZXhpc3RzICovCisJCWlmICghUFFnZXRpc251bGwocmVzLCBpLCBpX3ZhcmFj bCkpCisJCQl2YXJpbmZvW2ldLmRvYmouY29tcG9uZW50cyB8PSBEVU1QX0NPTVBPTkVOVF9BQ0w7 CisKKwkJaWYgKHN0cmxlbih2YXJpbmZvW2ldLnJvbG5hbWUpID09IDApCisJCQlwZ19sb2dfd2Fy bmluZygib3duZXIgb2YgdmFyaWFibGUgXCIlc1wiIGFwcGVhcnMgdG8gYmUgaW52YWxpZCIsCisJ CQkJCQkgICB2YXJpbmZvW2ldLmRvYmoubmFtZSk7CisKKwkJLyogZGVjaWRlIHdoZXRoZXIgd2Ug d2FudCB0byBkdW1wIGl0ICovCisJCXNlbGVjdER1bXBhYmxlT2JqZWN0KCYodmFyaW5mb1tpXS5k b2JqKSwgZm91dCk7CisKKwkJdnR5cGUgPSBmaW5kVHlwZUJ5T2lkKHZhcmluZm9baV0udmFydHlw ZSk7CisJCWFkZE9iamVjdERlcGVuZGVuY3koJnZhcmluZm9baV0uZG9iaiwgdnR5cGUtPmRvYmou ZHVtcElkKTsKKwl9CisJUFFjbGVhcihyZXMpOworCisJZGVzdHJveVBRRXhwQnVmZmVyKHF1ZXJ5 KTsKK30KKworLyoKKyAqIGR1bXBWYXJpYWJsZQorICoJICBkdW1wIHRoZSBkZWZpbml0aW9uIG9m IHRoZSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlCisgKi8KK3N0YXRpYyB2b2lkCitkdW1wVmFyaWFi bGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQoreworCUR1bXBP cHRpb25zICpkb3B0ID0gZm91dC0+ZG9wdDsKKworCVBRRXhwQnVmZmVyIGRlbHE7CisJUFFFeHBC dWZmZXIgcXVlcnk7CisJY2hhcgkgICAqcXVhbHZhcm5hbWU7CisJY29uc3QgY2hhciAqdmFydHlw bmFtZTsKKwlPaWQJCQl2YXJjb2xsYXRpb247CisKKwkvKiBza2lwIGlmIG5vdCB0byBiZSBkdW1w ZWQgKi8KKwlpZiAoIXZhcmluZm8tPmRvYmouZHVtcCB8fCAhZG9wdC0+ZHVtcFNjaGVtYSkKKwkJ cmV0dXJuOworCisJZGVscSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisJcXVlcnkgPSBjcmVhdGVQ UUV4cEJ1ZmZlcigpOworCisJcXVhbHZhcm5hbWUgPSBwZ19zdHJkdXAoZm10UXVhbGlmaWVkRHVt cGFibGUodmFyaW5mbykpOworCXZhcnR5cG5hbWUgPSB2YXJpbmZvLT52YXJ0eXBuYW1lOworCXZh cmNvbGxhdGlvbiA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsKKworCWFwcGVuZFBRRXhwQnVmZmVy KGRlbHEsICJEUk9QIFZBUklBQkxFICVzO1xuIiwKKwkJCQkJICBxdWFsdmFybmFtZSk7CisKKwlh cHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSBWQVJJQUJMRSAlcyBBUyAlcyIsCisJCQkJ CSAgcXVhbHZhcm5hbWUsIHZhcnR5cG5hbWUpOworCisJaWYgKE9pZElzVmFsaWQodmFyY29sbGF0 aW9uKSkKKwl7CisJCUNvbGxJbmZvICAgKmNvbGw7CisKKwkJY29sbCA9IGZpbmRDb2xsYXRpb25C eU9pZCh2YXJjb2xsYXRpb24pOworCQlpZiAoY29sbCkKKwkJCWFwcGVuZFBRRXhwQnVmZmVyKHF1 ZXJ5LCAiIENPTExBVEUgJXMiLAorCQkJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY29sbCkp OworCX0KKworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiO1xuIik7CisKKwlpZiAodmFyaW5m by0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfREVGSU5JVElPTikKKwkJQXJjaGl2ZUVudHJ5 KGZvdXQsIHZhcmluZm8tPmRvYmouY2F0SWQsIHZhcmluZm8tPmRvYmouZHVtcElkLAorCQkJCQkg QVJDSElWRV9PUFRTKC50YWcgPSB2YXJpbmZvLT5kb2JqLm5hbWUsCisJCQkJCQkJCSAgLm5hbWVz cGFjZSA9IHZhcmluZm8tPmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsCisJCQkJCQkJCSAgLm93 bmVyID0gdmFyaW5mby0+cm9sbmFtZSwKKwkJCQkJCQkJICAuZGVzY3JpcHRpb24gPSAiVkFSSUFC TEUiLAorCQkJCQkJCQkgIC5zZWN0aW9uID0gU0VDVElPTl9QUkVfREFUQSwKKwkJCQkJCQkJICAu Y3JlYXRlU3RtdCA9IHF1ZXJ5LT5kYXRhLAorCQkJCQkJCQkgIC5kcm9wU3RtdCA9IGRlbHEtPmRh dGEpKTsKKworCS8qIGR1bXAgY29tbWVudCBpZiBhbnkgKi8KKwlpZiAodmFyaW5mby0+ZG9iai5k dW1wICYgRFVNUF9DT01QT05FTlRfQ09NTUVOVCkKKwkJZHVtcENvbW1lbnQoZm91dCwgIlZBUklB QkxFIiwgcXVhbHZhcm5hbWUsCisJCQkJCU5VTEwsIHZhcmluZm8tPnJvbG5hbWUsCisJCQkJCXZh cmluZm8tPmRvYmouY2F0SWQsIDAsIHZhcmluZm8tPmRvYmouZHVtcElkKTsKKworCS8qIGR1bXAg QUNMIGlmIGFueSAqLworCWlmICh2YXJpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9B Q0wpCisJeworCQljaGFyCSAgICpxdmFybmFtZSA9IHBnX3N0cmR1cChmbXRJZCh2YXJpbmZvLT5k b2JqLm5hbWUpKTsKKworCQlkdW1wQUNMKGZvdXQsIHZhcmluZm8tPmRvYmouZHVtcElkLCBJbnZh bGlkRHVtcElkLCAiVkFSSUFCTEUiLAorCQkJCXF2YXJuYW1lLCBOVUxMLAorCQkJCXZhcmluZm8t PmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsIE5VTEwsIHZhcmluZm8tPnJvbG5hbWUsCisJCQkJ JnZhcmluZm8tPmRhY2wpOworCisJCWZyZWUocXZhcm5hbWUpOworCX0KKworCWRlc3Ryb3lQUUV4 cEJ1ZmZlcihkZWxxKTsKKwlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkpOworCisJZnJlZShxdWFs dmFybmFtZSk7Cit9CisKIHN0YXRpYyB2b2lkCiBiaW5hcnlfdXBncmFkZV9zZXRfdHlwZV9vaWRz X2J5X3R5cGVfb2lkKEFyY2hpdmUgKmZvdXQsCiAJCQkJCQkJCQkJIFBRRXhwQnVmZmVyIHVwZ3Jh ZGVfYnVmZmVyLApAQCAtMTE1NDAsNiArMTE3MjMsOSBAQCBkdW1wRHVtcGFibGVPYmplY3QoQXJj aGl2ZSAqZm91dCwgRHVtcGFibGVPYmplY3QgKmRvYmopCiAJCWNhc2UgRE9fUkVMX1NUQVRTOgog CQkJZHVtcFJlbGF0aW9uU3RhdHMoZm91dCwgKGNvbnN0IFJlbFN0YXRzSW5mbyAqKSBkb2JqKTsK IAkJCWJyZWFrOworCQljYXNlIERPX1ZBUklBQkxFOgorCQkJZHVtcFZhcmlhYmxlKGZvdXQsIChW YXJpYWJsZUluZm8gKikgZG9iaik7CisJCQlicmVhazsKIAkJY2FzZSBET19QUkVfREFUQV9CT1VO REFSWToKIAkJY2FzZSBET19QT1NUX0RBVEFfQk9VTkRBUlk6CiAJCQkvKiBuZXZlciBkdW1wZWQs IG5vdGhpbmcgdG8gZG8gKi8KQEAgLTE1OTk0LDYgKzE2MTgwLDkgQEAgZHVtcERlZmF1bHRBQ0wo QXJjaGl2ZSAqZm91dCwgY29uc3QgRGVmYXVsdEFDTEluZm8gKmRhY2xpbmZvKQogCQljYXNlIERF RkFDTE9CSl9MQVJHRU9CSkVDVDoKIAkJCXR5cGUgPSAiTEFSR0UgT0JKRUNUUyI7CiAJCQlicmVh azsKKwkJY2FzZSBERUZBQ0xPQkpfVkFSSUFCTEU6CisJCQl0eXBlID0gIlZBUklBQkxFUyI7CisJ CQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCS8qIHNob3VsZG4ndCBnZXQgaGVyZSAqLwogCQkJcGdf ZmF0YWwoInVucmVjb2duaXplZCBvYmplY3QgdHlwZSBpbiBkZWZhdWx0IHByaXZpbGVnZXM6ICVk IiwKQEAgLTE5NzMyLDYgKzE5OTIxLDcgQEAgYWRkQm91bmRhcnlEZXBlbmRlbmNpZXMoRHVtcGFi bGVPYmplY3QgKipkb2JqcywgaW50IG51bU9ianMsCiAJCQljYXNlIERPX0NPTlZFUlNJT046CiAJ CQljYXNlIERPX1RBQkxFOgogCQkJY2FzZSBET19UQUJMRV9BVFRBQ0g6CisJCQljYXNlIERPX1ZB UklBQkxFOgogCQkJY2FzZSBET19BVFRSREVGOgogCQkJY2FzZSBET19QUk9DTEFORzoKIAkJCWNh c2UgRE9fQ0FTVDoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDc0MTdlYWI2YWVmLi4xYzcyMmU0OGRlNSAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5oCkBAIC01Myw2ICs1Myw3IEBAIHR5cGVkZWYgZW51bQogCURPX1RBQkxFLAogCURP X1RBQkxFX0FUVEFDSCwKIAlET19BVFRSREVGLAorCURPX1ZBUklBQkxFLAogCURPX0lOREVYLAog CURPX0lOREVYX0FUVEFDSCwKIAlET19TVEFUU0VYVCwKQEAgLTczNSw2ICs3MzYsMTkgQEAgdHlw ZWRlZiBzdHJ1Y3QgX1N1YlJlbEluZm8KIAljaGFyCSAgICpzcnN1YmxzbjsKIH0gU3ViUmVsSW5m bzsKIAorLyoKKyAqIFRoZSBWYXJpYWJsZUluZm8gc3RydWN0IGlzIHVzZWQgdG8gcmVwcmVzZW50 IHNlc3Npb24gdmFyaWFibGVzCisgKi8KK3R5cGVkZWYgc3RydWN0IF9WYXJpYWJsZUluZm8KK3sK KwlEdW1wYWJsZU9iamVjdCBkb2JqOworCUR1bXBhYmxlQWNsIGRhY2w7CisJT2lkCQkJdmFydHlw ZTsKKwljaGFyCSAgICp2YXJ0eXBuYW1lOworCU9pZAkJCXZhcmNvbGxhdGlvbjsKKwljb25zdCBj aGFyICpyb2xuYW1lOwkJLyogbmFtZSBvZiBvd25lciwgb3IgZW1wdHkgc3RyaW5nICovCit9IFZh cmlhYmxlSW5mbzsKKwogLyoKICAqCWNvbW1vbiB1dGlsaXR5IGZ1bmN0aW9ucwogICovCkBAIC04 MTgsNSArODMyLDYgQEAgZXh0ZXJuIHZvaWQgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAq Zm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwKIAkJCQkJCQkJIGludCBudW1UYWJsZXMpOwogZXh0 ZXJuIHZvaWQgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0KTsKIGV4dGVybiB2b2lkIGdl dFN1YnNjcmlwdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0KTsKK2V4dGVybiB2b2lkIGdldFZhcmlh YmxlcyhBcmNoaXZlICpmb3V0KTsKIAogI2VuZGlmCQkJCQkJCS8qIFBHX0RVTVBfSCAqLwpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jIGIvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXBfc29ydC5jCmluZGV4IDBiMDk3Nzc4OGYxLi5iMzRmMzQxOGY2NCAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wX3NvcnQuYwpAQCAtNzcsNiArNzcsNyBAQCBlbnVtIGRiT2JqZWN0VHlwZVByaW9yaXRp ZXMKIAlQUklPX0RVTU1ZX1RZUEUsCiAJUFJJT19BVFRSREVGLAogCVBSSU9fTEFSR0VfT0JKRUNU LAorCVBSSU9fVkFSSUFCTEUsCiAJUFJJT19QUkVfREFUQV9CT1VOREFSWSwJCS8qIGJvdW5kYXJ5 ISAqLwogCVBSSU9fVEFCTEVfREFUQSwKIAlQUklPX1NFUVVFTkNFX1NFVCwKQEAgLTExOSw2ICsx MjAsNyBAQCBzdGF0aWMgY29uc3QgaW50IGRiT2JqZWN0VHlwZVByaW9yaXR5W10gPQogCVtET19U QUJMRV0gPSBQUklPX1RBQkxFLAogCVtET19UQUJMRV9BVFRBQ0hdID0gUFJJT19UQUJMRV9BVFRB Q0gsCiAJW0RPX0FUVFJERUZdID0gUFJJT19BVFRSREVGLAorCVtET19WQVJJQUJMRV0gPSBQUklP X1ZBUklBQkxFLAogCVtET19JTkRFWF0gPSBQUklPX0lOREVYLAogCVtET19JTkRFWF9BVFRBQ0hd ID0gUFJJT19JTkRFWF9BVFRBQ0gsCiAJW0RPX1NUQVRTRVhUXSA9IFBSSU9fU1RBVFNFWFQsCkBA IC0xNTMzLDYgKzE1MzUsMTEgQEAgZGVzY3JpYmVEdW1wYWJsZU9iamVjdChEdW1wYWJsZU9iamVj dCAqb2JqLCBjaGFyICpidWYsIGludCBidWZzaXplKQogCQkJCQkgIlJFTEFUSU9OIFNUQVRJU1RJ Q1MgRk9SICVzICAoSUQgJWQgT0lEICV1KSIsCiAJCQkJCSBvYmotPm5hbWUsIG9iai0+ZHVtcElk LCBvYmotPmNhdElkLm9pZCk7CiAJCQlyZXR1cm47CisJCWNhc2UgRE9fVkFSSUFCTEU6CisJCQlz bnByaW50ZihidWYsIGJ1ZnNpemUsCisJCQkJCSAiVkFSSUFCTEUgJXMgIChJRCAlZCBPSUQgJXUp IiwKKwkJCQkJIG9iai0+bmFtZSwgb2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQub2lkKTsKKwkJCXJl dHVybjsKIAl9CiAJLyogc2hvdWxkbid0IGdldCBoZXJlICovCiAJc25wcmludGYoYnVmLCBidWZz aXplLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgYi9zcmMv YmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCA1NWQ4OTJkOWMxNi4uOTRlZWZiN2M1 MzAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3Ny Yy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC05MDEsNiArOTAxLDE2IEBAIG15ICV0 ZXN0cyA9ICgKIAkJdW5saWtlID0+IHsgbm9fcHJpdnMgPT4gMSwgfSwKIAkgIH0sCiAKKwknQUxU RVIgREVGQVVMVCBQUklWSUxFR0VTIEZPUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUgR1JB TlQgU0VMRUNUIE9OIFZBUklBQkxFUyBUTyBQVUJMSUMnCisJICA9PiB7CisJCWNyZWF0ZV9vcmRl ciA9PiA1NiwKKwkJY3JlYXRlX3NxbCAgID0+ICdBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMgRk9S IFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZSBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRP IFBVQkxJQzsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFBTFRFUiBERUZBVUxUIFBSSVZJTEVH RVMgRk9SIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZSBHUkFOVCBTRUxFQ1QgT04gVkFSSUFC TEVTIFRPIFBVQkxJQztcRS94bSwKKwkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9z dF9kYXRhID0+IDEsIH0sCisJCXVubGlrZSA9PiB7IG5vX3ByaXZzID0+IDEsIH0sCisJICB9LAor CiAJJ0FMVEVSIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZScgPT4gewogCQlyZWdleHAgPT4g cXIvXgogCQkJXFFBTFRFUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUgV0lUSCBcRQpAQCAt MTg2OSw2ICsxODc5LDIzIEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9LAogCisJJ0NPTU1FTlQg T04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMScgPT4geworCQljcmVhdGVfb3JkZXIgPT4g NzEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ09NTUVOVCBPTiBWQVJJQUJMRSBkdW1wX3Rlc3QudmFy aWFibGUxCisJCQkJCSAgIElTIFwnY29tbWVudCBvbiB2YXJpYWJsZVwnOycsCisJCXJlZ2V4cCA9 PgorCQkgIHFyL15cUUNPTU1FTlQgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMSBJUyAn Y29tbWVudCBvbiB2YXJpYWJsZSc7XEUvbSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAor CQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgICAgID0+IDEs CisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwK KwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKIAknQ09QWSB0 ZXN0X3RhYmxlJyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA0LAogCQljcmVhdGVfc3FsID0+ICdJ TlNFUlQgSU5UTyBkdW1wX3Rlc3QudGVzdF90YWJsZSAoY29sMSkgJwpAQCAtNDE3Nyw2ICs0MjA0 LDI0IEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9LAogCisJJ0NSRUFURSBWQVJJQUJMRSB0ZXN0 X3ZhcmlhYmxlJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4g J0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9z cWwgICA9PiAnQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgQVMgaW50ZWdlcjsn LAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlh YmxlMSBBUyBpbnRlZ2VyO1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQkl ZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAor CQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5 X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NSRUFURSBWSUVXIHRl c3RfdmlldycgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gNjEsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NS RUFURSBWSUVXIGR1bXBfdGVzdC50ZXN0X3ZpZXcKQEAgLTQ2NDEsNiArNDY4NiwyNSBAQCBteSAl dGVzdHMgPSAoCiAJCWxpa2UgPT4ge30sCiAJfSwKIAorCSdHUkFOVCBTRUxFQ1QgT04gVkFSSUFC TEUgZHVtcF90ZXN0LnZhcmlhYmxlMScgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNzMsCisJCWNy ZWF0ZV9zcWwgPT4KKwkJICAnR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJp YWJsZTEgVE8gcmVncmVzc19kdW1wX3Rlc3Rfcm9sZTsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJ XFFHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMSBUTyByZWdyZXNz X2R1bXBfdGVzdF9yb2xlO1xFCisJCQkveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywK KwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJ CX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJ CW5vX3ByaXZzICAgICAgICAgICAgICAgICA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVtZW50 ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdSRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXIG1hdHZp ZXcnID0+IHsKIAkJcmVnZXhwID0+IHFyL15cUVJFRlJFU0ggTUFURVJJQUxJWkVEIFZJRVcgZHVt cF90ZXN0Lm1hdHZpZXc7XEUvbSwKIAkJbGlrZSA9PgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3Fs L2NvbW1hbmQuYyBiL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKaW5kZXggODFhNWJhODQ0YmEuLmEx NzFiZjVmM2I0IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvY29tbWFuZC5jCisrKyBiL3NyYy9i aW4vcHNxbC9jb21tYW5kLmMKQEAgLTEyNDYsNiArMTI0Niw5IEBAIGV4ZWNfY29tbWFuZF9kKFBz cWxTY2FuU3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJhbmNoLCBjb25zdCBjaGFyICpj bWQpCiAJCQkJCQlicmVhazsKIAkJCQl9CiAJCQkJYnJlYWs7CisJCQljYXNlICdWJzoJCQkvKiBW YXJpYWJsZXMgKi8KKwkJCQlzdWNjZXNzID0gbGlzdFZhcmlhYmxlcyhwYXR0ZXJuLCBzaG93X3Zl cmJvc2UpOworCQkJCWJyZWFrOwogCQkJY2FzZSAneCc6CQkJLyogRXh0ZW5zaW9ucyAqLwogCQkJ CWlmIChzaG93X3ZlcmJvc2UpCiAJCQkJCXN1Y2Nlc3MgPSBsaXN0RXh0ZW5zaW9uQ29udGVudHMo cGF0dGVybik7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4v cHNxbC9kZXNjcmliZS5jCmluZGV4IDFkMDgyNjgzOTNlLi5hZDQ2Y2E0ZjliZSAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMK QEAgLTEyMjMsNyArMTIyMyw3IEBAIGxpc3REZWZhdWx0QUNMcyhjb25zdCBjaGFyICpwYXR0ZXJu KQogCQkJCQkgICJTRUxFQ1QgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQoZC5kZWZhY2xyb2xl KSBBUyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgbi5uc3BuYW1lIEFTIFwiJXNcIixcbiIKIAkJCQkJ ICAiICBDQVNFIGQuZGVmYWNsb2JqdHlwZSAiCi0JCQkJCSAgIiAgICBXSEVOICclYycgVEhFTiAn JXMnIFdIRU4gJyVjJyBUSEVOICclcycgV0hFTiAnJWMnIFRIRU4gJyVzJyIKKwkJCQkJICAiICAg IFdIRU4gJyVjJyBUSEVOICclcycgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycgVEhFTiAn JXMnIFdIRU4gJyVjJyBUSEVOICclcyciCiAJCQkJCSAgIiAgICBXSEVOICclYycgVEhFTiAnJXMn IFdIRU4gJyVjJyBUSEVOICclcycgV0hFTiAnJWMnIFRIRU4gJyVzJyBFTkQgQVMgXCIlc1wiLFxu IgogCQkJCQkgICIgICIsCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpLApAQCAtMTI0MCw2 ICsxMjQwLDggQEAgbGlzdERlZmF1bHRBQ0xzKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJCQkJCSAg Z2V0dGV4dF9ub29wKCJzY2hlbWEiKSwKIAkJCQkJICBERUZBQ0xPQkpfTEFSR0VPQkpFQ1QsCiAJ CQkJCSAgZ2V0dGV4dF9ub29wKCJsYXJnZSBvYmplY3QiKSwKKwkJCQkJICBERUZBQ0xPQkpfVkFS SUFCTEUsCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJzZXNzaW9uIHZhcmlhYmxlIiksCiAJCQkJCSAg Z2V0dGV4dF9ub29wKCJUeXBlIikpOwogCiAJcHJpbnRBQ0xDb2x1bW4oJmJ1ZiwgImQuZGVmYWNs YWNsIik7CkBAIC01MzEzLDYgKzUzMTUsMTAyIEBAIGVycm9yX3JldHVybjoKIAlyZXR1cm4gZmFs c2U7CiB9CiAKKy8qCisgKiBcZFYKKyAqCisgKiBsaXN0VmFyaWFibGVzKCkKKyAqLworYm9vbAor bGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCit7CisJUFFF eHBCdWZmZXJEYXRhIGJ1ZjsKKwlQR3Jlc3VsdCAgICpyZXM7CisJcHJpbnRRdWVyeU9wdCBteW9w dCA9IHBzZXQucG9wdDsKKwlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0g e2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKworCWlm IChwc2V0LnN2ZXJzaW9uIDwgMTgwMDAwKQorCXsKKwkJY2hhcgkJc3ZlcmJ1ZlszMl07CisKKwkJ cGdfbG9nX2Vycm9yKCJUaGUgc2VydmVyICh2ZXJzaW9uICVzKSBkb2VzIG5vdCBzdXBwb3J0IHNl c3Npb24gdmFyaWFibGVzLiIsCisJCQkJCSBmb3JtYXRQR1ZlcnNpb25OdW1iZXIocHNldC5zdmVy c2lvbiwgZmFsc2UsCisJCQkJCQkJCQkJICAgc3ZlcmJ1Ziwgc2l6ZW9mKHN2ZXJidWYpKSk7CisJ CXJldHVybiB0cnVlOworCX0KKworCWluaXRQUUV4cEJ1ZmZlcigmYnVmKTsKKworCXByaW50ZlBR RXhwQnVmZmVyKCZidWYsCisJCQkJCSAgIlNFTEVDVCBuLm5zcG5hbWUgYXMgXCIlc1wiLFxuIgor CQkJCQkgICIgIHYudmFybmFtZSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxvZy5m b3JtYXRfdHlwZSh2LnZhcnR5cGUsIHYudmFydHlwbW9kKSBhcyBcIiVzXCIsXG4iCisJCQkJCSAg IiAgKFNFTEVDVCBjLmNvbGxuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19jb2xsYXRpb24gYywgcGdf Y2F0YWxvZy5wZ190eXBlIGJ0XG4iCisJCQkJCSAgIiAgIFdIRVJFIGMub2lkID0gdi52YXJjb2xs YXRpb24gQU5EIGJ0Lm9pZCA9IHYudmFydHlwZSBBTkQgdi52YXJjb2xsYXRpb24gPD4gYnQudHlw Y29sbGF0aW9uKSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNl cmJ5aWQodi52YXJvd25lcikgYXMgXCIlc1wiXG4iLAorCQkJCQkgIGdldHRleHRfbm9vcCgiU2No ZW1hIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJOYW1lIiksCisJCQkJCSAgZ2V0dGV4dF9ub29w KCJUeXBlIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJDb2xsYXRpb24iKSwKKwkJCQkJICBnZXR0 ZXh0X25vb3AoIk93bmVyIikpOworCisJaWYgKHZlcmJvc2UpCisJeworCQlhcHBlbmRQUUV4cEJ1 ZmZlclN0cigmYnVmLCAiLFxuICAiKTsKKwkJcHJpbnRBQ0xDb2x1bW4oJmJ1ZiwgInYudmFyYWNs Iik7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkgICIsXG4gIHBnX2NhdGFsb2cu b2JqX2Rlc2NyaXB0aW9uKHYub2lkLCAncGdfdmFyaWFibGUnKSBBUyBcIiVzXCIiLAorCQkJCQkJ ICBnZXR0ZXh0X25vb3AoIkRlc2NyaXB0aW9uIikpOworCX0KKworCWFwcGVuZFBRRXhwQnVmZmVy U3RyKCZidWYsCisJCQkJCQkgIlxuRlJPTSBwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlIHYiCisJCQkJ CQkgIlxuICAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19uYW1lc3BhY2UgbiBPTiBuLm9pZCA9 IHYudmFybmFtZXNwYWNlIik7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiXG5XSEVS RSB0cnVlXG4iKTsKKwlpZiAoIXBhdHRlcm4pCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYs ICIgICAgICBBTkQgbi5uc3BuYW1lIDw+ICdwZ19jYXRhbG9nJ1xuIgorCQkJCQkJCSAiICAgICAg QU5EIG4ubnNwbmFtZSA8PiAnaW5mb3JtYXRpb25fc2NoZW1hJ1xuIik7CisKKwlpZiAoIXZhbGlk YXRlU1FMTmFtZVBhdHRlcm4oJmJ1ZiwgcGF0dGVybiwgdHJ1ZSwgZmFsc2UsCisJCQkJCQkJCSJu Lm5zcG5hbWUiLCAidi52YXJuYW1lIiwgTlVMTCwKKwkJCQkJCQkJInBnX2NhdGFsb2cucGdfdmFy aWFibGVfaXNfdmlzaWJsZSh2Lm9pZCkiLAorCQkJCQkJCQlOVUxMLCAzKSkKKwkJcmV0dXJuIGZh bHNlOworCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIk9SREVSIEJZIDEsMjsiKTsKKwor CXJlcyA9IFBTUUxleGVjKGJ1Zi5kYXRhKTsKKwl0ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7CisJaWYg KCFyZXMpCisJCXJldHVybiBmYWxzZTsKKworCS8qCisJICogTW9zdCBmdW5jdGlvbnMgaW4gdGhp cyBmaWxlIGFyZSBjb250ZW50IHRvIHByaW50IGFuIGVtcHR5IHRhYmxlIHdoZW4KKwkgKiB0aGVy ZSBhcmUgbm8gbWF0Y2hpbmcgb2JqZWN0cy4gIFdlIGludGVudGlvbmFsbHkgZGV2aWF0ZSBmcm9t IHRoYXQKKwkgKiBoZXJlLCBidXQgb25seSBpbiAhcXVpZXQgbW9kZSwgZm9yIGhpc3RvcmljYWwg cmVhc29ucy4KKwkgKi8KKwlpZiAoUFFudHVwbGVzKHJlcykgPT0gMCAmJiAhcHNldC5xdWlldCkK Kwl7CisJCWlmIChwYXR0ZXJuKQorCQkJcGdfbG9nX2Vycm9yKCJEaWQgbm90IGZpbmQgYW55IHNl c3Npb24gdmFyaWFibGUgbmFtZWQgXCIlc1wiLiIsCisJCQkJCQkgcGF0dGVybik7CisJCWVsc2UK KwkJCXBnX2xvZ19lcnJvcigiRGlkIG5vdCBmaW5kIGFueSBzZXNzaW9uIHZhcmlhYmxlcy4iKTsK Kwl9CisJZWxzZQorCXsKKwkJbXlvcHQubnVsbFByaW50ID0gTlVMTDsKKwkJbXlvcHQudGl0bGUg PSBfKCJMaXN0IG9mIHZhcmlhYmxlcyIpOworCQlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1 ZTsKKwkJbXlvcHQudHJhbnNsYXRlX2NvbHVtbnMgPSB0cmFuc2xhdGVfY29sdW1uczsKKwkJbXlv cHQubl90cmFuc2xhdGVfY29sdW1ucyA9IGxlbmd0aG9mKHRyYW5zbGF0ZV9jb2x1bW5zKTsKKwor CQlwcmludFF1ZXJ5KHJlcywgJm15b3B0LCBwc2V0LnF1ZXJ5Rm91dCwgZmFsc2UsIHBzZXQubG9n ZmlsZSk7CisJfQorCisJUFFjbGVhcihyZXMpOworCXJldHVybiB0cnVlOworfQogCiAvKgogICog XGRGcApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmggYi9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuaAppbmRleCAxOGVjYWE2MDk0OS4uNTVjZWQ0YWFiN2IgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5oCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oCkBAIC0x NDksNCArMTQ5LDcgQEAgZXh0ZXJuIGJvb2wgbGlzdE9wRmFtaWx5RnVuY3Rpb25zKGNvbnN0IGNo YXIgKmFjY2Vzc19tZXRob2RfcGF0dGVybiwKIC8qIFxkbCBvciBcbG9fbGlzdCAqLwogZXh0ZXJu IGJvb2wgbGlzdExhcmdlT2JqZWN0cyhib29sIHZlcmJvc2UpOwogCisvKiBcZFYgKi8KK2V4dGVy biBib29sIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2YXJib3NlKTsK KwogI2VuZGlmCQkJCQkJCS8qIERFU0NSSUJFX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNx bC9oZWxwLmMgYi9zcmMvYmluL3BzcWwvaGVscC5jCmluZGV4IDQwM2I1MTMyNWE3Li44MTg4NmVi OTcyNSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2hlbHAuYworKysgYi9zcmMvYmluL3BzcWwv aGVscC5jCkBAIC0yNjEsNiArMjYxLDcgQEAgc2xhc2hVc2FnZSh1bnNpZ25lZCBzaG9ydCBpbnQg cGFnZXIpCiAJSEVMUDAoIiAgXFxkVFtTeCtdIFtQQVRURVJOXSAgICAgbGlzdCBkYXRhIHR5cGVz XG4iKTsKIAlIRUxQMCgiICBcXGR1W1N4K10gW1BBVFRFUk5dICAgICBsaXN0IHJvbGVzXG4iKTsK IAlIRUxQMCgiICBcXGR2W1N4K10gW1BBVFRFUk5dICAgICBsaXN0IHZpZXdzXG4iKTsKKwlIRUxQ MCgiICBcXGRWW3grXSAgW1BBVFRFUk5dICAgICBsaXN0IHNlc3Npb24gdmFyaWFibGVzXG4iKTsK IAlIRUxQMCgiICBcXGR4W3grXSAgW1BBVFRFUk5dICAgICBsaXN0IGV4dGVuc2lvbnNcbiIpOwog CUhFTFAwKCIgIFxcZFhbeF0gICBbUEFUVEVSTl0gICAgIGxpc3QgZXh0ZW5kZWQgc3RhdGlzdGlj c1xuIik7CiAJSEVMUDAoIiAgXFxkeVt4K10gIFtQQVRURVJOXSAgICAgbGlzdCBldmVudCB0cmln Z2Vyc1xuIik7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9z cmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggZWM2NWFiNzlmZWMuLjdmZTE5YTU2 OGYxIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC05NzAsNiArOTcwLDEzIEBAIHN0YXRpYyBj b25zdCBTY2hlbWFRdWVyeSBRdWVyeV9mb3JfdHJpZ2dlcl9vZl90YWJsZSA9IHsKIAkucmVmbmFt ZXNwYWNlID0gImMxLnJlbG5hbWVzcGFjZSIsCiB9OwogCitzdGF0aWMgY29uc3QgU2NoZW1hUXVl cnkgUXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzID0geworCS5taW5fc2VydmVyX3ZlcnNpb24g PSAxODAwMDAsCisJLmNhdG5hbWUgPSAicGdfY2F0YWxvZy5wZ192YXJpYWJsZSB2IiwKKwkudmlz Y29uZGl0aW9uID0gInBnX2NhdGFsb2cucGdfdmFyaWFibGVfaXNfdmlzaWJsZSh2Lm9pZCkiLAor CS5uYW1lc3BhY2UgPSAidi52YXJuYW1lc3BhY2UiLAorCS5yZXN1bHQgPSAidi52YXJuYW1lIiwK K307CiAKIC8qCiAgKiBRdWVyaWVzIHRvIGdldCBsaXN0cyBvZiBuYW1lcyBvZiB2YXJpb3VzIGtp bmRzIG9mIHRoaW5ncywgcG9zc2libHkKQEAgLTEzMTgsNiArMTMyNSw3IEBAIHN0YXRpYyBjb25z dCBwZ3NxbF90aGluZ190IHdvcmRzX2FmdGVyX2NyZWF0ZVtdID0gewogCQkJCQkJCQkJCQkJCQkJ CQkJCSAqIFRBQkxFIC4uLiAqLwogCXsiVVNFUiIsIFF1ZXJ5X2Zvcl9saXN0X29mX3JvbGVzLCBO VUxMLCBOVUxMLCBLZXl3b3Jkc19mb3JfdXNlcl90aGluZ30sCiAJeyJVU0VSIE1BUFBJTkcgRk9S IiwgTlVMTCwgTlVMTCwgTlVMTH0sCisJeyJWQVJJQUJMRSIsIE5VTEwsIE5VTEwsICZRdWVyeV9m b3JfbGlzdF9vZl92YXJpYWJsZXN9LAogCXsiVklFVyIsIE5VTEwsIE5VTEwsICZRdWVyeV9mb3Jf bGlzdF9vZl92aWV3c30sCiAJe05VTEx9CQkJCQkJLyogZW5kIG9mIGxpc3QgKi8KIH07CkBAIC0x ODgzLDcgKzE4OTEsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0 YXJ0LCBpbnQgZW5kKQogCQkiXFxkRiIsICJcXGRGZCIsICJcXGRGcCIsICJcXGRGdCIsICJcXGRn IiwgIlxcZGkiLCAiXFxkbCIsICJcXGRMIiwKIAkJIlxcZG0iLCAiXFxkbiIsICJcXGRvIiwgIlxc ZE8iLCAiXFxkcCIsICJcXGRQIiwgIlxcZFBpIiwgIlxcZFB0IiwKIAkJIlxcZHJkcyIsICJcXGRy ZyIsICJcXGRScyIsICJcXGRScCIsICJcXGRzIiwKLQkJIlxcZHQiLCAiXFxkVCIsICJcXGR2Iiwg IlxcZHUiLCAiXFxkeCIsICJcXGRYIiwgIlxcZHkiLAorCQkiXFxkdCIsICJcXGRUIiwgIlxcZHYi LCAiXFxkdSIsICJcXGR4IiwgIlxcZFgiLCAiXFxkeSIsICJcXGRWIiwKIAkJIlxcZWNobyIsICJc XGVkaXQiLCAiXFxlZiIsICJcXGVsaWYiLCAiXFxlbHNlIiwgIlxcZW5jb2RpbmciLAogCQkiXFxl bmRpZiIsICJcXGVuZHBpcGVsaW5lIiwgIlxcZXJydmVyYm9zZSIsICJcXGV2IiwKIAkJIlxcZiIs ICJcXGZsdXNoIiwgIlxcZmx1c2hyZXF1ZXN0IiwKQEAgLTI1OTIsNiArMjYwMCw5IEBAIG1hdGNo X3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJCQkJCQkJCSAgIkFMTCIpOwogCWVs c2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlNZU1RFTSIsICJTRVQiLCBNYXRjaEFueSkpCiAJCUNP TVBMRVRFX1dJVEgoIlRPIik7CisJLyogQUxURVIgVkFSSUFCTEUgPG5hbWU+ICovCisJZWxzZSBp ZiAoTWF0Y2hlcygiQUxURVIiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJ VEgoIk9XTkVSIFRPIiwgIlJFTkFNRSBUTyIsICJTRVQgU0NIRU1BIik7CiAJLyogQUxURVIgVklF VyA8bmFtZT4gKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJWSUVXIiwgTWF0Y2hBbnkp KQogCQlDT01QTEVURV9XSVRIKCJBTFRFUiBDT0xVTU4iLCAiT1dORVIgVE8iLCAiUkVOQU1FIiwg IlJFU0VUIiwgIlNFVCIpOwpAQCAtMzE3NSw3ICszMTg2LDcgQEAgbWF0Y2hfcHJldmlvdXNfd29y ZHMoaW50IHBhdHRlcm5faWQsCiAJCQkJCSAgIlJPVVRJTkUiLCAiUlVMRSIsICJTQ0hFTUEiLCAi U0VRVUVOQ0UiLCAiU0VSVkVSIiwKIAkJCQkJICAiU1RBVElTVElDUyIsICJTVUJTQ1JJUFRJT04i LCAiVEFCTEUiLAogCQkJCQkgICJUQUJMRVNQQUNFIiwgIlRFWFQgU0VBUkNIIiwgIlRSQU5TRk9S TSBGT1IiLAotCQkJCQkgICJUUklHR0VSIiwgIlRZUEUiLCAiVklFVyIpOworCQkJCQkgICJUUklH R0VSIiwgIlRZUEUiLCAiVkFSSUFCTEUiLCAiVklFVyIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNP TU1FTlQiLCAiT04iLCAiQUNDRVNTIiwgIk1FVEhPRCIpKQogCQlDT01QTEVURV9XSVRIX1FVRVJZ KFF1ZXJ5X2Zvcl9saXN0X29mX2FjY2Vzc19tZXRob2RzKTsKIAllbHNlIGlmIChNYXRjaGVzKCJD T01NRU5UIiwgIk9OIiwgIkNPTlNUUkFJTlQiKSkKQEAgLTM5ODUsNiArMzk5NiwxMyBAQCBtYXRj aF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJZWxzZSBpZiAoVGFpbE1hdGNoZXMo Ij0iLCBNYXRjaEFueUV4Y2VwdCgiKikiKSkpCiAJCQlDT01QTEVURV9XSVRIKCIsIiwgIikiKTsK IAl9CisvKiBDUkVBVEUgVkFSSUFCTEUgLS0tIGlzIGFsbG93ZWQgaW5zaWRlIENSRUFURSBTQ0hF TUEsIHNvIHVzZSBUYWlsTWF0Y2hlcyAqLworCS8qIENvbXBsZXRlIENSRUFURSBWQVJJQUJMRSA8 bmFtZT4gd2l0aCBBUyAqLworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUiLCAiVkFSSUFC TEUiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIkFTIik7CisJZWxzZSBpZiAoVGFpbE1h dGNoZXMoIlZBUklBQkxFIiwgTWF0Y2hBbnksICJBUyIpKQorCQkvKiBDb21wbGV0ZSBDUkVBVEUg VkFSSUFCTEUgPG5hbWU+IHdpdGggQVMgdHlwZXMgKi8KKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFf UVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfZGF0YXR5cGVzKTsKIAogLyogQ1JFQVRFIFZJRVcgLS0t IGlzIGFsbG93ZWQgaW5zaWRlIENSRUFURSBTQ0hFTUEsIHNvIHVzZSBUYWlsTWF0Y2hlcyAqLwog CS8qIENvbXBsZXRlIENSRUFURSBbIE9SIFJFUExBQ0UgXSBWSUVXIDxuYW1lPiB3aXRoIEFTIG9y IFdJVEggKi8KQEAgLTQyNjIsNiArNDI4MCwxMiBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQg cGF0dGVybl9pZCwKIAllbHNlIGlmIChNYXRjaGVzKCJEUk9QIiwgIlRSQU5TRk9STSIsICJGT1Ii LCBNYXRjaEFueSwgIkxBTkdVQUdFIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJDQVND QURFIiwgIlJFU1RSSUNUIik7CiAKKwkvKiBEUk9QIFZBUklBQkxFICovCisJZWxzZSBpZiAoTWF0 Y2hlcygiRFJPUCIsICJWQVJJQUJMRSIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShR dWVyeV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOworCWVsc2UgaWYgKE1hdGNoZXMoIkRST1AiLCAi VkFSSUFCTEUiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIkNBU0NBREUiLCAiUkVTVFJJ Q1QiKTsKKwogLyogRVhFQ1VURSAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkVYRUNVVEUiKSkKIAkJ Q09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9wcmVwYXJlZF9zdGF0ZW1lbnRz KTsKQEAgLTQ0NjMsNyArNDQ4Nyw5IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJu X2lkLAogCQkgKiBvYmplY3RzIHN1cHBvcnRlZC4KIAkJICovCiAJCWlmIChIZWFkTWF0Y2hlcygi QUxURVIiLCAiREVGQVVMVCIsICJQUklWSUxFR0VTIikpCi0JCQlDT01QTEVURV9XSVRIKCJUQUJM RVMiLCAiU0VRVUVOQ0VTIiwgIkZVTkNUSU9OUyIsICJQUk9DRURVUkVTIiwgIlJPVVRJTkVTIiwg IlRZUEVTIiwgIlNDSEVNQVMiLCAiTEFSR0UgT0JKRUNUUyIpOworCQkJQ09NUExFVEVfV0lUSCgi VEFCTEVTIiwgIlNFUVVFTkNFUyIsICJGVU5DVElPTlMiLCAiUFJPQ0VEVVJFUyIsCisJCQkJCQkg ICJST1VUSU5FUyIsICJUWVBFUyIsICJTQ0hFTUFTIiwgIkxBUkdFIE9CSkVDVFMiLAorCQkJCQkJ ICAiVkFSSUFCTEVTIik7CiAJCWVsc2UKIAkJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZX1BM VVMoUXVlcnlfZm9yX2xpc3Rfb2ZfZ3JhbnRhYmxlcywKIAkJCQkJCQkJCQkJIkFMTCBGVU5DVElP TlMgSU4gU0NIRU1BIiwKQEAgLTQ0NzEsNiArNDQ5Nyw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRz KGludCBwYXR0ZXJuX2lkLAogCQkJCQkJCQkJCQkiQUxMIFJPVVRJTkVTIElOIFNDSEVNQSIsCiAJ CQkJCQkJCQkJCSJBTEwgU0VRVUVOQ0VTIElOIFNDSEVNQSIsCiAJCQkJCQkJCQkJCSJBTEwgVEFC TEVTIElOIFNDSEVNQSIsCisJCQkJCQkJCQkJCSJBTEwgVkFSSUFCTEVTIElOIFNDSEVNQSIsCiAJ CQkJCQkJCQkJCSJEQVRBQkFTRSIsCiAJCQkJCQkJCQkJCSJET01BSU4iLAogCQkJCQkJCQkJCQki Rk9SRUlHTiBEQVRBIFdSQVBQRVIiLApAQCAtNDQ4NSw3ICs0NTEyLDggQEAgbWF0Y2hfcHJldmlv dXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCQkJCQkJCQkJCSJTRVFVRU5DRSIsCiAJCQkJCQkJ CQkJCSJUQUJMRSIsCiAJCQkJCQkJCQkJCSJUQUJMRVNQQUNFIiwKLQkJCQkJCQkJCQkJIlRZUEUi KTsKKwkJCQkJCQkJCQkJIlRZUEUiLAorCQkJCQkJCQkJCQkiVkFSSUFCTEUiKTsKIAl9CiAJZWxz ZSBpZiAoVGFpbE1hdGNoZXMoIkdSQU5UfFJFVk9LRSIsIE1hdGNoQW55LCAiT04iLCAiQUxMIikg fHwKIAkJCSBUYWlsTWF0Y2hlcygiUkVWT0tFIiwgIkdSQU5UIiwgIk9QVElPTiIsICJGT1IiLCBN YXRjaEFueSwgIk9OIiwgIkFMTCIpKQpAQCAtNDQ5Myw3ICs0NTIxLDggQEAgbWF0Y2hfcHJldmlv dXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCQkJCSAgIlBST0NFRFVSRVMgSU4gU0NIRU1BIiwK IAkJCQkJICAiUk9VVElORVMgSU4gU0NIRU1BIiwKIAkJCQkJICAiU0VRVUVOQ0VTIElOIFNDSEVN QSIsCi0JCQkJCSAgIlRBQkxFUyBJTiBTQ0hFTUEiKTsKKwkJCQkJICAiVEFCTEVTIElOIFNDSEVN QSIsCisJCQkJCSAgIlZBUklBQkxFUyBJTiBTQ0hFTUEiKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hl cygiR1JBTlR8UkVWT0tFIiwgTWF0Y2hBbnksICJPTiIsICJGT1JFSUdOIikgfHwKIAkJCSBUYWls TWF0Y2hlcygiUkVWT0tFIiwgIkdSQU5UIiwgIk9QVElPTiIsICJGT1IiLCBNYXRjaEFueSwgIk9O IiwgIkZPUkVJR04iKSkKIAkJQ09NUExFVEVfV0lUSCgiREFUQSBXUkFQUEVSIiwgIlNFUlZFUiIp OwpAQCAtNDUyOSw2ICs0NTU4LDggQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5f aWQsCiAJCQlDT01QTEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlc3BhY2Vz KTsKIAkJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlRZUEUiKSkKIAkJCUNPTVBMRVRFX1dJVEhfU0NI RU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX2RhdGF0eXBlcyk7CisJCWVsc2UgaWYgKFRhaWxN YXRjaGVzKCJWQVJJQUJMRSIpKQorCQkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlf Zm9yX2xpc3Rfb2ZfdmFyaWFibGVzKTsKIAkJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkdSQU5UIiwg TWF0Y2hBbnksIE1hdGNoQW55LCBNYXRjaEFueSkpCiAJCQlDT01QTEVURV9XSVRIKCJUTyIpOwog CQllbHNlCkBAIC00ODMxLDcgKzQ4NjIsNyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0 dGVybl9pZCwKIAogLyogUFJFUEFSRSB4eCBBUyAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIlBSRVBB UkUiLCBNYXRjaEFueSwgIkFTIikpCi0JCUNPTVBMRVRFX1dJVEgoIlNFTEVDVCIsICJVUERBVEUi LCAiSU5TRVJUIElOVE8iLCAiREVMRVRFIEZST00iKTsKKwkJQ09NUExFVEVfV0lUSCgiU0VMRUNU IiwgIlVQREFURSIsICJJTlNFUlQgSU5UTyIsICJERUxFVEUgRlJPTSIsICJMRVQiKTsKIAogLyoK ICAqIFBSRVBBUkUgVFJBTlNBQ1RJT04gaXMgbWlzc2luZyBvbiBwdXJwb3NlLiBJdCdzIGludGVu ZGVkIGZvciB0cmFuc2FjdGlvbgpAQCAtNTMyMCw2ICs1MzUxLDggQEAgbWF0Y2hfcHJldmlvdXNf d29yZHMoaW50IHBhdHRlcm5faWQsCiAJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xp c3Rfb2Zfcm9sZXMpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxcZHYqIikpCiAJCUNPTVBM RVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3ZpZXdzKTsKKwllbHNlIGlm IChUYWlsTWF0Y2hlc0NTKCJcXGRWKiIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShR dWVyeV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxc ZHgqIikpCiAJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfZXh0ZW5zaW9u cyk7CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXNDUygiXFxkWCoiKSkKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCmlu ZGV4IDJiYmM3ODA1ZmUzLi5mOTg3NjBkZTYzNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9NYWtlZmlsZQorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCkBAIC04MSw3 ICs4MSw4IEBAIENBVEFMT0dfSEVBREVSUyA6PSBcCiAJcGdfcHVibGljYXRpb25fbmFtZXNwYWNl LmggXAogCXBnX3B1YmxpY2F0aW9uX3JlbC5oIFwKIAlwZ19zdWJzY3JpcHRpb24uaCBcCi0JcGdf c3Vic2NyaXB0aW9uX3JlbC5oCisJcGdfc3Vic2NyaXB0aW9uX3JlbC5oIFwKKwlwZ192YXJpYWJs ZS5oCiAKIEdFTkVSQVRFRF9IRUFERVJTIDo9ICQoQ0FUQUxPR19IRUFERVJTOiUuaD0lX2QuaCkK IApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZCBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKaW5kZXggZWMxY2Y0NjdmNmYuLjgxMzk4ZWZhN2M5IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkCisrKyBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKQEAgLTY5LDYgKzY5LDcgQEAgY2F0YWxvZ19oZWFkZXJz ID0gWwogICAncGdfcHVibGljYXRpb25fcmVsLmgnLAogICAncGdfc3Vic2NyaXB0aW9uLmgnLAog ICAncGdfc3Vic2NyaXB0aW9uX3JlbC5oJywKKyAgJ3BnX3ZhcmlhYmxlLmgnLAogXQogCiAjIFRo ZSAuZGF0IGZpbGVzIHdlIG5lZWQgY2FuIGp1c3QgYmUgbGlzdGVkIGFscGhhYmV0aWNhbGx5Lgpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvbmFtZXNwYWNlLmgKaW5kZXggOGM3Y2NjNjlhM2MuLmJkYWMwYzEzYmVjIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCisrKyBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvbmFtZXNwYWNlLmgKQEAgLTk3LDYgKzk3LDggQEAgZXh0ZXJuIE9pZAlUeXBlbmFt ZUdldFR5cGlkKGNvbnN0IGNoYXIgKnR5cG5hbWUpOwogZXh0ZXJuIE9pZAlUeXBlbmFtZUdldFR5 cGlkRXh0ZW5kZWQoY29uc3QgY2hhciAqdHlwbmFtZSwgYm9vbCB0ZW1wX29rKTsKIGV4dGVybiBi b29sIFR5cGVJc1Zpc2libGUoT2lkIHR5cGlkKTsKIAorZXh0ZXJuIGJvb2wgVmFyaWFibGVJc1Zp c2libGUoT2lkIHZhcmlkKTsKKwogZXh0ZXJuIEZ1bmNDYW5kaWRhdGVMaXN0IEZ1bmNuYW1lR2V0 Q2FuZGlkYXRlcyhMaXN0ICpuYW1lcywKIAkJCQkJCQkJCQkJICAgaW50IG5hcmdzLCBMaXN0ICph cmduYW1lcywKIAkJCQkJCQkJCQkJICAgYm9vbCBleHBhbmRfdmFyaWFkaWMsCkBAIC0xNjksNiAr MTcxLDEwIEBAIGV4dGVybiBTZWFyY2hQYXRoTWF0Y2hlciAqR2V0U2VhcmNoUGF0aE1hdGNoZXIo TWVtb3J5Q29udGV4dCBjb250ZXh0KTsKIGV4dGVybiBTZWFyY2hQYXRoTWF0Y2hlciAqQ29weVNl YXJjaFBhdGhNYXRjaGVyKFNlYXJjaFBhdGhNYXRjaGVyICpwYXRoKTsKIGV4dGVybiBib29sIFNl YXJjaFBhdGhNYXRjaGVzQ3VycmVudEVudmlyb25tZW50KFNlYXJjaFBhdGhNYXRjaGVyICpwYXRo KTsKIAorZXh0ZXJuIExpc3QgKk5hbWVzRnJvbUxpc3QoTGlzdCAqbmFtZXMpOworZXh0ZXJuIE9p ZAlMb29rdXBWYXJpYWJsZShjb25zdCBjaGFyICpuc3BuYW1lLCBjb25zdCBjaGFyICp2YXJuYW1l LCBib29sIG1pc3Npbmdfb2spOworZXh0ZXJuIE9pZAlMb29rdXBWYXJpYWJsZUZyb21OYW1lTGlz dChMaXN0ICpuYW1lcywgYm9vbCBtaXNzaW5nX29rKTsKKwogZXh0ZXJuIE9pZAlnZXRfY29sbGF0 aW9uX29pZChMaXN0ICpjb2xsbmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJZ2V0 X2NvbnZlcnNpb25fb2lkKExpc3QgKmNvbm5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4g T2lkCUZpbmREZWZhdWx0Q29udmVyc2lvblByb2MoaW50MzIgZm9yX2VuY29kaW5nLCBpbnQzMiB0 b19lbmNvZGluZyk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2RlZmF1bHRf YWNsLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2RlZmF1bHRfYWNsLmgKaW5kZXggY2U2ZTUw OThlYWYuLjA4N2QzNWI5NDNkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Rl ZmF1bHRfYWNsLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oCkBA IC02OSw2ICs2OSw3IEBAIE1BS0VfU1lTQ0FDSEUoREVGQUNMUk9MRU5TUE9CSiwgcGdfZGVmYXVs dF9hY2xfcm9sZV9uc3Bfb2JqX2luZGV4LCA4KTsKICNkZWZpbmUgREVGQUNMT0JKX1RZUEUJCQkn VCcgLyogdHlwZSAqLwogI2RlZmluZSBERUZBQ0xPQkpfTkFNRVNQQUNFCQknbicgLyogbmFtZXNw YWNlICovCiAjZGVmaW5lIERFRkFDTE9CSl9MQVJHRU9CSkVDVAknTCcgLyogbGFyZ2Ugb2JqZWN0 ICovCisjZGVmaW5lIERFRkFDTE9CSl9WQVJJQUJMRQkJJ1YnIC8qIHZhcmlhYmxlICovCiAKICNl bmRpZgkJCQkJCQkvKiBFWFBPU0VfVE9fQ0xJRU5UX0NPREUgKi8KIApkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJv Yy5kYXQKaW5kZXggNjJiZWI3MWRhMjguLmRhNzcyZmY5ZTE3IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJv Yy5kYXQKQEAgLTU0NjYsNiArNTQ2NiwyNiBAQAogICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJv YXJndHlwZXMgPT4gJ29pZCBvaWQgdGV4dCcsCiAgIHByb3NyYyA9PiAnaGFzX2xhcmdlb2JqZWN0 X3ByaXZpbGVnZV9pZF9pZCcgfSwKIAoreyBvaWQgPT4gJzk2MTMnLCBkZXNjciA9PiAndXNlciBw cml2aWxlZ2Ugb24gc2Vzc2lvbiB2YXJpYWJsZSBieSB1c2VybmFtZSwgc2VxIG5hbWUnLAorICBw cm9uYW1lID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9 PiAncycsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAorICBwcm9hcmd0eXBlcyA9PiAnbmFtZSB0ZXh0 IHRleHQnLAorICBwcm9zcmMgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9uYW1l X25hbWUnIH0sCit7IG9pZCA9PiAnOTYxNCcsIGRlc2NyID0+ICd1c2VyIHByaXZpbGVnZSBvbiBz ZXNzaW9uIHZhcmlhYmxlIGJ5IHVzZXJuYW1lLCBzZXEgb2lkJywKKyAgcHJvbmFtZSA9PiAnaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0 eXBlID0+ICdib29sJywKKyAgcHJvYXJndHlwZXMgPT4gJ25hbWUgb2lkIHRleHQnLCBwcm9zcmMg PT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9uYW1lX2lkJyB9LAoreyBvaWQgPT4g Jzk2MTUnLCBkZXNjciA9PiAndXNlciBwcml2aWxlZ2Ugb24gc2Vzc2lvbiB2YXJpYWJsZSBieSB1 c2VyIG9pZCwgc2VxIG5hbWUnLAorICBwcm9uYW1lID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAorICBw cm9hcmd0eXBlcyA9PiAnb2lkIHRleHQgdGV4dCcsIHByb3NyYyA9PiAnaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlX2lkX25hbWUnIH0sCit7IG9pZCA9PiAnOTYxNicsIGRlc2NyID0+ICd1 c2VyIHByaXZpbGVnZSBvbiBzZXNzaW9uIHZhcmlhYmxlIGJ5IHVzZXIgb2lkLCBzZXEgb2lkJywK KyAgcHJvbmFtZSA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlJywgcHJvdm9sYXRp bGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ICdib29sJywKKyAgcHJvYXJndHlwZXMgPT4gJ29pZCBv aWQgdGV4dCcsIHByb3NyYyA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkX2lk JyB9LAoreyBvaWQgPT4gJzk2MTcnLCBkZXNjciA9PiAnY3VycmVudCB1c2VyIHByaXZpbGVnZSBv biBzZXNzaW9uIHZhcmlhYmxlIGJ5IHNlcSBuYW1lJywKKyAgcHJvbmFtZSA9PiAnaGFzX3Nlc3Np b25fdmFyaWFibGVfcHJpdmlsZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ ICdib29sJywKKyAgcHJvYXJndHlwZXMgPT4gJ3RleHQgdGV4dCcsIHByb3NyYyA9PiAnaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX25hbWUnIH0sCit7IG9pZCA9PiAnOTYxOCcsIGRlc2Ny ID0+ICdjdXJyZW50IHVzZXIgcHJpdmlsZWdlIG9uIHNlc3Npb24gdmFyaWFibGUgYnkgc2VxIG9p ZCcsCisgIHByb25hbWUgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZScsIHByb3Zv bGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVzID0+ICdv aWQgdGV4dCcsIHByb3NyYyA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkJyB9 LAorCiB7IG9pZCA9PiAnMzM1NScsIGRlc2NyID0+ICdJL08nLAogICBwcm9uYW1lID0+ICdwZ19u ZGlzdGluY3RfaW4nLCBwcm9yZXR0eXBlID0+ICdwZ19uZGlzdGluY3QnLAogICBwcm9hcmd0eXBl cyA9PiAnY3N0cmluZycsIHByb3NyYyA9PiAncGdfbmRpc3RpbmN0X2luJyB9LApAQCAtNjY3Niw2 ICs2Njk2LDkgQEAKICAgcHJvbmFtZSA9PiAncGdfY29sbGF0aW9uX2lzX3Zpc2libGUnLCBwcm9j b3N0ID0+ICcxMCcsIHByb3ZvbGF0aWxlID0+ICdzJywKICAgcHJvcmV0dHlwZSA9PiAnYm9vbCcs IHByb2FyZ3R5cGVzID0+ICdvaWQnLAogICBwcm9zcmMgPT4gJ3BnX2NvbGxhdGlvbl9pc192aXNp YmxlJyB9LAoreyBvaWQgPT4gJzk5OTknLCBkZXNjciA9PiAnaXMgc2Vzc2lvbiB2YXJpYWJsZSB2 aXNpYmxlIGluIHNlYXJjaCBwYXRoPycsCisgIHByb25hbWUgPT4gJ3BnX3ZhcmlhYmxlX2lzX3Zp c2libGUnLCBwcm9jb3N0ID0+ICcxMCcsIHByb3ZvbGF0aWxlID0+ICdzJywKKyAgcHJvcmV0dHlw ZSA9PiAnYm9vbCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLCBwcm9zcmMgPT4gJ3BnX3ZhcmlhYmxl X2lzX3Zpc2libGUnIH0sCiAKIHsgb2lkID0+ICcyODU0JywgZGVzY3IgPT4gJ2dldCBPSUQgb2Yg Y3VycmVudCBzZXNzaW9uXCdzIHRlbXAgc2NoZW1hLCBpZiBhbnknLAogICBwcm9uYW1lID0+ICdw Z19teV90ZW1wX3NjaGVtYScsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3In LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi4zZDNjNmViMjRiNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfdmFyaWFibGUuaApAQCAtMCwwICsxLDgxIEBACisvKi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqCisgKiBwZ192YXJpYWJsZS5oCisgKgkgIGRlZmluaXRpb24gb2Ygc2Vzc2lvbiB2YXJpYWJs ZXMgc3lzdGVtIGNhdGFsb2cgKHBnX3ZhcmlhYmxlcykKKyAqCisgKgorICogUG9ydGlvbnMgQ29w eXJpZ2h0IChjKSAxOTk2LTIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3Vw CisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNp dHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUu aAorICoKKyAqIE5PVEVTCisgKgkgIFRoZSBDYXRhbG9nLnBtIG1vZHVsZSByZWFkcyB0aGlzIGZp bGUgYW5kIGRlcml2ZXMgc2NoZW1hCisgKgkgIGluZm9ybWF0aW9uLgorICoKKyAqLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICovCisjaWZuZGVmIFBHX1ZBUklBQkxFX0gKKyNkZWZpbmUgUEdfVkFSSUFCTEVf SAorCisjaW5jbHVkZSAiY2F0YWxvZy9nZW5ia2kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL29iamVj dGFkZHJlc3MuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlX2QuaCIKKyNpbmNsdWRl ICJ1dGlscy9hY2wuaCIKKworLyogLS0tLS0tLS0tLS0tLS0tLQorICoJCXBnX3ZhcmlhYmxlIGRl ZmluaXRpb24uICBjcHAgdHVybnMgdGhpcyBpbnRvCisgKgkJdHlwZWRlZiBzdHJ1Y3QgRm9ybURh dGFfcGdfdmFyaWFibGUKKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLworQ0FUQUxPRyhwZ192YXJp YWJsZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25JZCkKK3sKKwlPaWQJCQlvaWQ7CQkJLyogb2lkICov CisKKwkvKiBPSUQgb2YgZW50cnkgaW4gcGdfdHlwZSBmb3IgdmFyaWFibGUncyB0eXBlICovCisJ T2lkCQkJdmFydHlwZSBCS0lfTE9PS1VQKHBnX3R5cGUpOworCisJLyogdmFyaWFibGUgbmFtZSAq LworCU5hbWVEYXRhCXZhcm5hbWU7CisKKwkvKiBPSUQgb2YgbmFtZXNwYWNlIGNvbnRhaW5pbmcg dmFyaWFibGUgY2xhc3MgKi8KKwlPaWQJCQl2YXJuYW1lc3BhY2UgQktJX0xPT0tVUChwZ19uYW1l c3BhY2UpOworCisJLyogdmFyaWFibGUgb3duZXIgKi8KKwlPaWQJCQl2YXJvd25lciBCS0lfTE9P S1VQKHBnX2F1dGhpZCk7CisKKwkvKiB0eXBtb2QgZm9yIHZhcmlhYmxlJ3MgdHlwZSAqLworCWlu dDMyCQl2YXJ0eXBtb2QgQktJX0RFRkFVTFQoLTEpOworCisJLyogdmFyaWFibGUgY29sbGF0aW9u ICovCisJT2lkCQkJdmFyY29sbGF0aW9uIEJLSV9ERUZBVUxUKDApIEJLSV9MT09LVVBfT1BUKHBn X2NvbGxhdGlvbik7CisKKworI2lmZGVmIENBVEFMT0dfVkFSTEVOCQkJLyogdmFyaWFibGUtbGVu Z3RoIGZpZWxkcyBzdGFydCBoZXJlICovCisKKwkvKiBhY2Nlc3MgcGVybWlzc2lvbnMgKi8KKwlh Y2xpdGVtCQl2YXJhY2xbMV0gQktJX0RFRkFVTFQoX251bGxfKTsKKworI2VuZGlmCit9IEZvcm1E YXRhX3BnX3ZhcmlhYmxlOworCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJRm9ybV9wZ192YXJp YWJsZSBjb3JyZXNwb25kcyB0byBhIHBvaW50ZXIgdG8gYSB0dXBsZSB3aXRoCisgKgkJdGhlIGZv cm1hdCBvZiB0aGUgcGdfdmFyaWFibGUgcmVsYXRpb24uCisgKiAtLS0tLS0tLS0tLS0tLS0tCisg Ki8KK3R5cGVkZWYgRm9ybURhdGFfcGdfdmFyaWFibGUgKkZvcm1fcGdfdmFyaWFibGU7CisKK0RF Q0xBUkVfVE9BU1QocGdfdmFyaWFibGUsIDkyMjMsIDkyMjQpOworCitERUNMQVJFX1VOSVFVRV9J TkRFWF9QS0VZKHBnX3ZhcmlhYmxlX29pZF9pbmRleCwgOTIyNSwgVmFyaWFibGVPaWRJbmRleElk LCBwZ192YXJpYWJsZSwgYnRyZWUob2lkIG9pZF9vcHMpKTsKK0RFQ0xBUkVfVU5JUVVFX0lOREVY KHBnX3ZhcmlhYmxlX3Zhcm5hbWVfbnNwX2luZGV4LCA5MjI2LCBWYXJpYWJsZU5hbWVOc3BJbmRl eElkLCBwZ192YXJpYWJsZSwgYnRyZWUodmFybmFtZSBuYW1lX29wcywgdmFybmFtZXNwYWNlIG9p ZF9vcHMpKTsKKworZXh0ZXJuIE9iamVjdEFkZHJlc3MgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0 ZSAqcHN0YXRlLAorCQkJCQkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpOworZXh0ZXJu IHZvaWQgRHJvcFZhcmlhYmxlQnlJZChPaWQgdmFyaWQpOworCitNQUtFX1NZU0NBQ0hFKFZBUklB QkxFTkFNRU5TUCwgcGdfdmFyaWFibGVfdmFybmFtZV9uc3BfaW5kZXgsIDgpOworTUFLRV9TWVND QUNIRShWQVJJQUJMRU9JRCwgcGdfdmFyaWFibGVfb2lkX2luZGV4LCA4KTsKKworI2VuZGlmCQkJ CQkJCS8qIFBHX1ZBUklBQkxFX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCA0NjEwZmM2 MTI5My4uYWU0YjZhMzg2MmMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTIzNjUsNiArMjM2 NSw3IEBAIHR5cGVkZWYgZW51bSBPYmplY3RUeXBlCiAJT0JKRUNUX1RTVEVNUExBVEUsCiAJT0JK RUNUX1RZUEUsCiAJT0JKRUNUX1VTRVJfTUFQUElORywKKwlPQkpFQ1RfVkFSSUFCTEUsCiAJT0JK RUNUX1ZJRVcsCiB9IE9iamVjdFR5cGU7CiAKQEAgLTM1MTUsNiArMzUxNiwyMSBAQCB0eXBlZGVm IHN0cnVjdCBBbHRlclN0YXRzU3RtdAogCWJvb2wJCW1pc3Npbmdfb2s7CQkvKiBza2lwIGVycm9y IGlmIHN0YXRpc3RpY3Mgb2JqZWN0IGlzIG1pc3NpbmcgKi8KIH0gQWx0ZXJTdGF0c1N0bXQ7CiAK KworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoJCXtDcmVhdGV8QWx0ZXJ9IFZBUklBQkxF IFN0YXRlbWVudAorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVj dCBDcmVhdGVTZXNzaW9uVmFyU3RtdAoreworCU5vZGVUYWcJCXR5cGU7CisJUmFuZ2VWYXIgICAq dmFyaWFibGU7CQkvKiB0aGUgdmFyaWFibGUgdG8gY3JlYXRlICovCisJVHlwZU5hbWUgICAqdHlw ZU5hbWU7CQkvKiB0aGUgdHlwZSBvZiB2YXJpYWJsZSAqLworCUNvbGxhdGVDbGF1c2UgKmNvbGxD bGF1c2U7CisJYm9vbAkJaWZfbm90X2V4aXN0czsJLyogZG8gbm90aGluZyBpZiBpdCBhbHJlYWR5 IGV4aXN0cyAqLworfSBDcmVhdGVTZXNzaW9uVmFyU3RtdDsKKworCiAvKiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgKgkJQ3JlYXRlIEZ1bmN0aW9uIFN0YXRlbWVudAogICogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3Jj L2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCmluZGV4IGE0YWYzZjcxN2ExLi4wZWEwMjY1ZGU3YyAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRl L3BhcnNlci9rd2xpc3QuaApAQCAtNDg2LDYgKzQ4Niw4IEBAIFBHX0tFWVdPUkQoInZhbGlkYXRv ciIsIFZBTElEQVRPUiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09S RCgidmFsdWUiLCBWQUxVRV9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19L RVlXT1JEKCJ2YWx1ZXMiLCBWQUxVRVMsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJ2YXJjaGFyIiwgVkFSQ0hBUiwgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJF TCkKK1BHX0tFWVdPUkQoInZhcmlhYmxlIiwgVkFSSUFCTEUsIFVOUkVTRVJWRURfS0VZV09SRCwg QkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoInZhcmlhYmxlcyIsIFZBUklBQkxFUywgVU5SRVNFUlZF RF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFyaWFkaWMiLCBWQVJJQURJQywg UkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhcnlpbmciLCBWQVJZ SU5HLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEFTX0xBQkVMKQogUEdfS0VZV09SRCgidmVyYm9zZSIs IFZFUkJPU0UsIFRZUEVfRlVOQ19OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oCmluZGV4IGQyNTBhNzE0ZDU5Li5lYTg2OTU0ZGRlZCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0 LmgKQEAgLTY4LDYgKzY4LDcgQEAgUEdfQ01EVEFHKENNRFRBR19BTFRFUl9UUkFOU0ZPUk0sICJB TFRFUiBUUkFOU0ZPUk0iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FM VEVSX1RSSUdHRVIsICJBTFRFUiBUUklHR0VSIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01E VEFHKENNRFRBR19BTFRFUl9UWVBFLCAiQUxURVIgVFlQRSIsIHRydWUsIHRydWUsIGZhbHNlKQog UEdfQ01EVEFHKENNRFRBR19BTFRFUl9VU0VSX01BUFBJTkcsICJBTFRFUiBVU0VSIE1BUFBJTkci LCB0cnVlLCBmYWxzZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0FMVEVSX1ZBUklBQkxFLCAi QUxURVIgVkFSSUFCTEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FM VEVSX1ZJRVcsICJBTFRFUiBWSUVXIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENN RFRBR19BTkFMWVpFLCAiQU5BTFlaRSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUco Q01EVEFHX0JFR0lOLCAiQkVHSU4iLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpAQCAtMTIzLDYgKzEy NCw3IEBAIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1RSQU5TRk9STSwgIkNSRUFURSBUUkFOU0ZP Uk0iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9UUklHR0VS LCAiQ1JFQVRFIFRSSUdHRVIiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFH X0NSRUFURV9UWVBFLCAiQ1JFQVRFIFRZUEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURU QUcoQ01EVEFHX0NSRUFURV9VU0VSX01BUFBJTkcsICJDUkVBVEUgVVNFUiBNQVBQSU5HIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVkFSSUFCTEUsICJDUkVB VEUgVkFSSUFCTEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFU RV9WSUVXLCAiQ1JFQVRFIFZJRVciLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01E VEFHX0RFQUxMT0NBVEUsICJERUFMTE9DQVRFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NN RFRBRyhDTURUQUdfREVBTExPQ0FURV9BTEwsICJERUFMTE9DQVRFIEFMTCIsIGZhbHNlLCBmYWxz ZSwgZmFsc2UpCkBAIC0xNzUsNiArMTc3LDcgQEAgUEdfQ01EVEFHKENNRFRBR19EUk9QX1RSQU5T Rk9STSwgIkRST1AgVFJBTlNGT1JNIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENN RFRBR19EUk9QX1RSSUdHRVIsICJEUk9QIFRSSUdHRVIiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQ R19DTURUQUcoQ01EVEFHX0RST1BfVFlQRSwgIkRST1AgVFlQRSIsIHRydWUsIGZhbHNlLCBmYWxz ZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9VU0VSX01BUFBJTkcsICJEUk9QIFVTRVIgTUFQUElO RyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfRFJPUF9WQVJJQUJMRSwg IkRST1AgVkFSSUFCTEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RS T1BfVklFVywgIkRST1AgVklFVyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURU QUdfRVhFQ1VURSwgIkVYRUNVVEUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENN RFRBR19FWFBMQUlOLCAiRVhQTEFJTiIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS91dGlscy9hY2wuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL2FjbC5oCmluZGV4 IDAxYWU1YjcxOWZkLi41ZTFhOGE4MmU5MCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMv YWNsLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmgKQEAgLTE2OSw2ICsxNjksNyBAQCB0 eXBlZGVmIHN0cnVjdCBBcnJheVR5cGUgQWNsOwogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19TQ0hF TUEJCShBQ0xfVVNBR0V8QUNMX0NSRUFURSkKICNkZWZpbmUgQUNMX0FMTF9SSUdIVFNfVEFCTEVT UEFDRQkoQUNMX0NSRUFURSkKICNkZWZpbmUgQUNMX0FMTF9SSUdIVFNfVFlQRQkJCShBQ0xfVVNB R0UpCisjZGVmaW5lIEFDTF9BTExfUklHSFRTX1ZBUklBQkxFCQkoQUNMX1NFTEVDVHxBQ0xfVVBE QVRFKQogCiAvKiBvcGVyYXRpb24gY29kZXMgZm9yIHBnXypfYWNsbWFzayAqLwogdHlwZWRlZiBl bnVtCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaCBiL3NyYy9pbmNs dWRlL3V0aWxzL2xzeXNjYWNoZS5oCmluZGV4IGZhN2M3ZTAzMjNiLi5mNGE4NTFkYzIzMiAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKKysrIGIvc3JjL2luY2x1ZGUv dXRpbHMvbHN5c2NhY2hlLmgKQEAgLTEzOSw2ICsxMzksNyBAQCBleHRlcm4gY2hhciBnZXRfZnVu Y19wcm9raW5kKE9pZCBmdW5jaWQpOwogZXh0ZXJuIGJvb2wgZ2V0X2Z1bmNfbGVha3Byb29mKE9p ZCBmdW5jaWQpOwogZXh0ZXJuIFJlZ1Byb2NlZHVyZSBnZXRfZnVuY19zdXBwb3J0KE9pZCBmdW5j aWQpOwogZXh0ZXJuIE9pZAlnZXRfcmVsbmFtZV9yZWxpZChjb25zdCBjaGFyICpyZWxuYW1lLCBP aWQgcmVsbmFtZXNwYWNlKTsKK2V4dGVybiBPaWQJZ2V0X3Zhcm5hbWVfdmFyaWQoY29uc3QgY2hh ciAqdmFybmFtZSwgT2lkIHZhcm5hbWVzcGFjZSk7CiBleHRlcm4gY2hhciAqZ2V0X3JlbF9uYW1l KE9pZCByZWxpZCk7CiBleHRlcm4gT2lkCWdldF9yZWxfbmFtZXNwYWNlKE9pZCByZWxpZCk7CiBl eHRlcm4gT2lkCWdldF9yZWxfdHlwZV9pZChPaWQgcmVsaWQpOwpAQCAtMjExLDYgKzIxMiwxNCBA QCBleHRlcm4gY2hhciAqZ2V0X3B1YmxpY2F0aW9uX25hbWUoT2lkIHB1YmlkLCBib29sIG1pc3Np bmdfb2spOwogZXh0ZXJuIE9pZAlnZXRfc3Vic2NyaXB0aW9uX29pZChjb25zdCBjaGFyICpzdWJu YW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIGNoYXIgKmdldF9zdWJzY3JpcHRpb25fbmFt ZShPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vayk7CiAKK2V4dGVybiBjaGFyICpnZXRfc2Vzc2lv bl92YXJpYWJsZV9uYW1lKE9pZCB2YXJpZCk7CitleHRlcm4gT2lkCWdldF9zZXNzaW9uX3Zhcmlh YmxlX25hbWVzcGFjZShPaWQgdmFyaWQpOworZXh0ZXJuIE9pZAlnZXRfc2Vzc2lvbl92YXJpYWJs ZV90eXBlKE9pZCB2YXJpZCk7CitleHRlcm4gdm9pZCBnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBl X3R5cG1vZF9jb2xsaWQoT2lkIHZhcmlkLAorCQkJCQkJCQkJCQkJCU9pZCAqdHlwaWQsCisJCQkJ CQkJCQkJCQkJaW50MzIgKnR5cG1vZCwKKwkJCQkJCQkJCQkJCQlPaWQgKmNvbGxpZCk7CisKICNk ZWZpbmUgdHlwZV9pc19hcnJheSh0eXBpZCkgIChnZXRfZWxlbWVudF90eXBlKHR5cGlkKSAhPSBJ bnZhbGlkT2lkKQogLyogdHlwZV9pc19hcnJheV9kb21haW4gYWNjZXB0cyBib3RoIHBsYWluIGFy cmF5cyBhbmQgZG9tYWlucyBvdmVyIGFycmF5cyAqLwogI2RlZmluZSB0eXBlX2lzX2FycmF5X2Rv bWFpbih0eXBpZCkgIChnZXRfYmFzZV9lbGVtZW50X3R5cGUodHlwaWQpICE9IEludmFsaWRPaWQp CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3kub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kZXBlbmRlbmN5Lm91dAppbmRleCA3NWEwNzhhZGE5 ZS4uY2Q4ZTQ0MTJmYTkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVw ZW5kZW5jeS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kZXBlbmRlbmN5Lm91 dApAQCAtMTUxLDMgKzE1MSwyMCBAQCBvd25lciBvZiB0eXBlIGRlcHRlc3RfdAogRFJPUCBPV05F RCBCWSByZWdyZXNzX2RlcF91c2VyMiwgcmVncmVzc19kZXBfdXNlcjA7CiBEUk9QIFVTRVIgcmVn cmVzc19kZXBfdXNlcjI7CiBEUk9QIFVTRVIgcmVncmVzc19kZXBfdXNlcjA7CistLSBkZXBlbmRl bmN5IG9uIHR5cGUKK0NSRUFURSBET01BSU4gdmFyZG9tYWluIEFTIGludDsKK0NSRUFURSBUWVBF IHZhcnR5cGUgQVMgKGEgaW50LCBiIGludCwgYyB2YXJkb21haW4pOworQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgdmFydHlwZTsKKy0tIHNob3VsZCBmYWlsCitEUk9QIERPTUFJTiB2YXJkb21haW47 CitFUlJPUjogIGNhbm5vdCBkcm9wIHR5cGUgdmFyZG9tYWluIGJlY2F1c2Ugb3RoZXIgb2JqZWN0 cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIGNvbHVtbiBjIG9mIGNvbXBvc2l0ZSB0eXBlIHZhcnR5 cGUgZGVwZW5kcyBvbiB0eXBlIHZhcmRvbWFpbgorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURF IHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KK0RST1AgVFlQRSB2YXJ0eXBlOwor RVJST1I6ICBjYW5ub3QgZHJvcCB0eXBlIHZhcnR5cGUgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRl cGVuZCBvbiBpdAorREVUQUlMOiAgc2Vzc2lvbiB2YXJpYWJsZSB2YXIxIGRlcGVuZHMgb24gdHlw ZSB2YXJ0eXBlCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5k ZW50IG9iamVjdHMgdG9vLgorLS0gY2xlYW4gdXAKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1Ag VFlQRSB2YXJ0eXBlOworRFJPUCBET01BSU4gdmFyZG9tYWluOwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL29pZGpvaW5zLm91dAppbmRleCAyMTVlYjg5OWJlMy4uZDk5NTMzMjE0MDIgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0CkBAIC0yNjYsMyArMjY2LDcgQEAgTk9USUNF OiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uIHtzdWJkYmlkfSA9PiBwZ19kYXRhYmFzZSB7b2lk fQogTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uIHtzdWJvd25lcn0gPT4gcGdfYXV0 aGlkIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRpb25fcmVsIHtzcnN1Ymlk fSA9PiBwZ19zdWJzY3JpcHRpb24ge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlw dGlvbl9yZWwge3NycmVsaWR9ID0+IHBnX2NsYXNzIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBw Z192YXJpYWJsZSB7dmFydHlwZX0gPT4gcGdfdHlwZSB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcg cGdfdmFyaWFibGUge3Zhcm5hbWVzcGFjZX0gPT4gcGdfbmFtZXNwYWNlIHtvaWR9CitOT1RJQ0U6 ICBjaGVja2luZyBwZ192YXJpYWJsZSB7dmFyb3duZXJ9ID0+IHBnX2F1dGhpZCB7b2lkfQorTk9U SUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFibGUge3ZhcmNvbGxhdGlvbn0gPT4gcGdfY29sbGF0aW9u IHtvaWR9CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAppbmRleCBjZjQ4YWU2ZDBjMi4uZmQ2 YjJhNmI4YzggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dApAQCAtNjAyMyw2ICs2MDIz LDMwIEBAIENPTU1JVDsKICMgZmluYWwgT05fRVJST1JfUk9MTEJBQ0s6IG9mZgogRFJPUCBUQUJM RSBibGE7CiBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CistLSBzZXNzaW9uIHZhcmlhYmxlIHRl c3QKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitTRVQgUk9MRSBUTyByZWdy ZXNzX3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhciBDT0xM QVRFICJDIjsKK1xkVisgdmFyMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAg ICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBBY2Nlc3MgcHJpdmls ZWdlcyB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAg ICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgICAgICAgICAgICB8IAorKDEg cm93KQorCitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyBQVUJMSUM7CitDT01NRU5U IE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgZGVzY3JpcHRpb24nOworXGRWKyB2YXIxCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwg Q29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8ICAgICAgICAgICAgICAgIEFjY2Vz cyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAgRGVzY3JpcHRpb24gICAgCistLS0tLS0t LSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5n IHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8IHJlZ3Jlc3NfdmFyaWFibGVf b3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24KKyAgICAg ICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJsZV9vd25lciAgICAgICAgICAgICAgICAgICAg ICAgIHwgCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK1NFVCBST0xFIFRPIERFRkFV TFQ7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKIC0tIGNoZWNrIGRlc2NyaWJp bmcgaW52YWxpZCBtdWx0aXBhcnQgbmFtZXMKIFxkQSByZWdyZXNzaW9uLmhlYXAKIGltcHJvcGVy IHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiByZWdyZXNzaW9uLmhlYXAK QEAgLTYyNDQsNiArNjI2OCwxMiBAQCBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3Qg aW1wbGVtZW50ZWQ6IG5vbmVzdWNoLnB1YmxpYy5mdW5jX2RlcHNfc3RhdAogaW1wcm9wZXIgcXVh bGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6IHJlZ3Jlc3Npb24ubXlldnQKIFxk eSBub25lc3VjaC5teWV2dAogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRl ZCBuYW1lcyk6IG5vbmVzdWNoLm15ZXZ0CitcZFYgaG9zdC5yZWdyZXNzaW9uLnB1YmxpYy52YXIK K2ltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiBob3N0LnJl Z3Jlc3Npb24ucHVibGljLnZhcgorXGRWIHJlZ3Jlc3Npb258bXlkYi5wdWJsaWMudmFyCitjcm9z cy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IHJlZ3Jlc3Npb258bXlk Yi5wdWJsaWMudmFyCitcZFYgbm9uZXN1Y2gucHVibGljLnZhcgorY3Jvc3MtZGF0YWJhc2UgcmVm ZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiBub25lc3VjaC5wdWJsaWMudmFyCiAtLSBjaGVj ayB0aGF0IGRvdHMgd2l0aGluIHF1b3RlZCBuYW1lIHNlZ21lbnRzIGFyZSBub3QgY291bnRlZAog XGRBICJuby5zdWNoLmFjY2Vzcy5tZXRob2QiCiBMaXN0IG9mIGFjY2VzcyBtZXRob2RzCkBAIC02 NDc4LDYgKzY1MDgsMTIgQEAgTGlzdCBvZiBzY2hlbWFzCiAtLS0tLS0rLS0tLS0tLSstLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLQogKDAgcm93cykKIAorXGRWICJuby5zdWNoLnZh cmlhYmxlIgorICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwg VHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tCisoMCByb3dzKQorCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIHNjaGVt YSBxdWFsaWZpY2F0aW9ucy4KIFxkQSAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmFjY2Vzcy5t ZXRob2QiCiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTog Im5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5hY2Nlc3MubWV0aG9kIgpAQCAtNjY0Nyw2ICs2Njgz LDEyIEBAIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAi bm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmluc3RhCiAKIFxkeSAibm8uc3VjaC5zY2hlbWEiLiJu by5zdWNoLmV2ZW50LnRyaWdnZXIiCiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkg ZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgor XGRWICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCisgICAgICAgICAgICBMaXN0 IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIg CistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0KKygwIHJvd3MpCisK IC0tIGFnYWluLCBidXQgd2l0aCBjdXJyZW50IGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1 YWxpZmljYXRpb25zLgogXGR0IHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50 YWJsZS5yZWxhdGlvbiIKICAgICAgICAgTGlzdCBvZiB0YWJsZXMKQEAgLTY3ODAsNiArNjgyMiwx MiBAQCBMaXN0IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRlcwogLS0tLS0tLS0rLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLQogKDAgcm93cykKIAorXGRW IHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKKyAgICAgICAg ICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24g fCBPd25lciAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorKDAg cm93cykKKwogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBkYXRhYmFzZSBhbmQgZG90dGVkIHNj aGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkdCAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2No ZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxhdGlvbiIKIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMg YXJlIG5vdCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIu Im5vLnN1Y2gudGFibGUucmVsYXRpb24iCkBAIC02ODI3LDYgKzY4NzUsOCBAQCBjcm9zcy1kYXRh YmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJuby5zdWNoLmRhdGFiYXNlIi4i bm8uc3VjaC5zY2hlbQogY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVu dGVkOiAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5kYXRhLnR5 cGUiCiBcZFggIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0 ZW5kZWQuc3RhdGlzdGljcyIKIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBs ZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0 ZW5kZWQuc3RhdGlzdGljcyIKK1xkViAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1h Ii4ibm8uc3VjaC52YXJpYWJsZSIKK2Nyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBp bXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gu dmFyaWFibGUiCiAtLSBjaGVjayBcZHJnIGFuZCBcZHUKIENSRUFURSBST0xFIHJlZ3Jlc3NfZHVf cm9sZTA7CiBDUkVBVEUgUk9MRSByZWdyZXNzX2R1X3JvbGUxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uYzM2NjYwY2U2ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMCwwICsxLDQzMyBA QAorQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKK1NFVCBsb2dfc3RhdGVtZW50 IFRPIGRkbDsKKy0tIHNob3VsZCBiZSBvaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50Owor LS0gc2hvdWxkIGZhaWwsIHBzZXVkb3R5cGVzIGFyZSBub3QgYWxsb3dlZAorQ1JFQVRFIFZBUklB QkxFIHZhcjIgQVMgYW55ZWxlbWVudDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3Qg YmUgcHNldWRvLXR5cGUgYW55ZWxlbWVudAorLS0gc2hvdWxkIGJlIG9rLCBkbyBub3RoaW5nCitE Uk9QIFZBUklBQkxFIElGIEVYSVNUUyB2YXIyOworTk9USUNFOiAgc2Vzc2lvbiB2YXJpYWJsZSAi dmFyMiIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nCistLSBkbyBub3RoaW5nCitDUkVBVEUgVkFS SUFCTEUgSUYgTk9UIEVYSVNUUyB2YXIxIEFTIGludDsKK05PVElDRTogIHNlc3Npb24gdmFyaWFi bGUgInZhcjEiIGFscmVhZHkgZXhpc3RzLCBza2lwcGluZworLS0gc2hvdWxkIGZhaWwKK0NSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAidmFyMSIg YWxyZWFkeSBleGlzdHMKKy0tIHNob3VsZCBiZSBvaworRFJPUCBWQVJJQUJMRSBJRiBFWElTVFMg dmFyMTsKKy0tIHRoZSB2YXJpYWJsZSBjYW4gdXNlIGNvbXBvc2l0ZSB0eXBlcworQ1JFQVRFIFRB QkxFIHQxIChhIGludCwgYiBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdDE7CistLSBz aG91bGQgZmFpbAorRFJPUCBUQUJMRSB0MTsKK0VSUk9SOiAgY2Fubm90IGRyb3AgdGFibGUgdDEg YmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgc2Vzc2lvbiB2YXJp YWJsZSB2YXIxIGRlcGVuZHMgb24gdHlwZSB0MQorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURF IHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KKy0tIHNob3VsZCBiZSBvaworQUxU RVIgVEFCTEUgdDEgQUREIENPTFVNTiBjIGludDsKKy0tIHNob3VsZCBmYWlsCitBTFRFUiBUQUJM RSB0MSBBTFRFUiBDT0xVTU4gYiBUWVBFIG51bWVyaWM7CitFUlJPUjogIGNhbm5vdCBhbHRlciB0 YWJsZSAidDEiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIHVzZXMgaXQK K0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVEFCTEUgdDE7CitDUkVBVEUgVFlQRSB0MSBBUyAo YSBpbnQsIGIgaW50KTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHQxOworLS0gc2hvdWxkIGZh aWwKK0RST1AgVFlQRSB0MTsKK0VSUk9SOiAgY2Fubm90IGRyb3AgdHlwZSB0MSBiZWNhdXNlIG90 aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBzZXNzaW9uIHZhcmlhYmxlIHZhcjEg ZGVwZW5kcyBvbiB0eXBlIHQxCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0 aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQx IEFERCBBVFRSSUJVVEUgYyBpbnQ7CistLSBzaG91bGQgZmFpbAorQUxURVIgVFlQRSB0MSBBTFRF UiBBVFRSSUJVVEUgYiAgVFlQRSBudW1lcmljOworRVJST1I6ICBjYW5ub3QgYWx0ZXIgdHlwZSAi dDEiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIHVzZXMgaXQKK0RST1Ag VkFSSUFCTEUgdmFyMTsKK0RST1AgVFlQRSB0MTsKK1NFVCBsb2dfc3RhdGVtZW50IFRPIGRlZmF1 bHQ7CitDUkVBVEUgRE9NQUlOIHRlc3R2YXJfZG9tYWluIEFTIGludDsKK0NSRUFURSBUWVBFIHRl c3R2YXJfdHlwZSBBUyAoYSB0ZXN0dmFyX2RvbWFpbik7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyB0ZXN0dmFyX2RvbWFpbjsKKy0tIHNob3VsZCBmYWlsCitBTFRFUiBET01BSU4gdGVzdHZhcl9k b21haW4gQUREIENIRUNLKHZhbHVlIDw+IDEwMCk7CitFUlJPUjogIGNhbm5vdCBhbHRlciBkb21h aW4gInRlc3R2YXJfZG9tYWluIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIx IiB1c2VzIGl0CitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0 ZXN0dmFyX3R5cGU7CistLSBzaG91bGQgZmFpbAorQUxURVIgRE9NQUlOIHRlc3R2YXJfZG9tYWlu IEFERCBDSEVDSyh2YWx1ZSA8PiAxMDApOworRVJST1I6ICBjYW5ub3QgYWx0ZXIgdHlwZSAidGVz dHZhcl9kb21haW4iIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIHVzZXMg aXQKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIHNob3VsZCBiZSBvaworQUxURVIgRE9NQUlOIHRl c3R2YXJfZG9tYWluIEFERCBDSEVDSyh2YWx1ZSA8PiAxMDApOworRFJPUCBUWVBFIHRlc3R2YXJf dHlwZTsKK0RST1AgVFlQRSB0ZXN0dmFyX2RvbWFpbjsKKy0tIGNoZWNrIGV2ZW50IHRyaWdnZXIg c3VwcG9ydAorQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3Zhcl9ldmVudF90cmlnZ2VyX3Jl cG9ydF9kcm9wcGVkKCkKK1JFVFVSTlMgZXZlbnRfdHJpZ2dlcgorQVMgJCQKK0RFQ0xBUkUgciBy ZWNvcmQ7CitCRUdJTgorICBGT1IgciBJTiBTRUxFQ1QgKiBmcm9tIHBnX2V2ZW50X3RyaWdnZXJf ZHJvcHBlZF9vYmplY3RzKCkKKyAgTE9PUAorICAgIENPTlRJTlVFIFdIRU4gTk9UIHIubm9ybWFs IEFORCBOT1Qgci5vcmlnaW5hbDsKKworICAgIFJBSVNFIE5PVElDRQorICAgICAgICdOT1JNQUw6 IG9yaWc9JSBub3JtYWw9JSBpc3RlbXA9JSB0eXBlPSUgaWRlbnRpdHk9JSBuYW1lPSUgYXJncz0l JywKKyAgICAgICByLm9yaWdpbmFsLCByLm5vcm1hbCwgci5pc190ZW1wb3JhcnksIHIub2JqZWN0 X3R5cGUsCisgICAgICAgci5vYmplY3RfaWRlbnRpdHksIHIuYWRkcmVzc19uYW1lcywgci5hZGRy ZXNzX2FyZ3M7CisgIEVORCBMT09QOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFU RSBFVkVOVCBUUklHR0VSIHN2YXJfcmVncmVzc19ldmVudF90cmlnZ2VyX3JlcG9ydF9kcm9wcGVk IE9OIHNxbF9kcm9wCisgIFdIRU4gVEFHIElOICgnRFJPUCBWQVJJQUJMRScpCisgIEVYRUNVVEUg UFJPQ0VEVVJFIHN2YXJfZXZlbnRfdHJpZ2dlcl9yZXBvcnRfZHJvcHBlZCgpOworQ1JFQVRFIFZB UklBQkxFIHZhcjEgQVMgaW50OworRFJPUCBWQVJJQUJMRSB2YXIxOworTk9USUNFOiAgTk9STUFM OiBvcmlnPXQgbm9ybWFsPWYgaXN0ZW1wPWYgdHlwZT1zZXNzaW9uIHZhcmlhYmxlIGlkZW50aXR5 PXB1YmxpYy52YXIxIG5hbWU9e3B1YmxpYyx2YXIxfSBhcmdzPXt9CitEUk9QIEVWRU5UIFRSSUdH RVIgc3Zhcl9yZWdyZXNzX2V2ZW50X3RyaWdnZXJfcmVwb3J0X2Ryb3BwZWQ7CistLSBjaGVjayBj b21tZW50IG9uIHZhcmlhYmxlCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDT01NRU5U IE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgdmFyaWFibGUgY29tbWVudCc7CitTRUxFQ1QgcGdf Y2F0YWxvZy5vYmpfZGVzY3JpcHRpb24ob2lkLCAncGdfdmFyaWFibGUnKSBGUk9NIHBnX3Zhcmlh YmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisgICAgb2JqX2Rlc2NyaXB0aW9uICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBzb21lIHZhcmlhYmxlIGNvbW1lbnQKKygxIHJvdykKKwor RFJPUCBWQVJJQUJMRSB2YXIxOworLS0gY2hlY2sgdGhlIG9iamVjdCBhZGRyZXNzIG9mIGFsbCBz ZXNzaW9uIHZhcmlhYmxlcworQ1JFQVRFIFNDSEVNQSB2YXJ0ZXN0MTsKK0NSRUFURSBTQ0hFTUEg dmFydGVzdDI7CitDUkVBVEUgVkFSSUFCTEUgdmFydGVzdDEuc3ZhcnRlc3RfdmFyMSBBUyBpbnQ7 CitDUkVBVEUgVkFSSUFCTEUgdmFydGVzdDIuc3ZhcnRlc3RfdmFyMSBBUyBpbnQ7CitTRUxFQ1QK KyAgZS52YXJuYW1lLAorICBwZ19kZXNjcmliZV9vYmplY3QoJ3BnX3ZhcmlhYmxlJzo6cmVnY2xh c3MsIGUub2lkLCAwKSBhcyBkZXNjciwKKyAgYi50eXBlLCBiLm9iamVjdF9uYW1lcywgYi5vYmpl Y3RfYXJncywKKyAgcGdfaWRlbnRpZnlfb2JqZWN0KGEuY2xhc3NpZCwgYS5vYmppZCwgYS5vYmpz dWJpZCkgYXMgaWRlbnQKK0ZST00gcGdfdmFyaWFibGUgYXMgZSwKKyAgTEFURVJBTCBwZ19pZGVu dGlmeV9vYmplY3RfYXNfYWRkcmVzcygncGdfdmFyaWFibGUnOjpyZWdjbGFzcywgZS5vaWQsIDAp IGFzIGIsCisgIExBVEVSQUwgcGdfZ2V0X29iamVjdF9hZGRyZXNzKGIudHlwZSwgYi5vYmplY3Rf bmFtZXMsIGIub2JqZWN0X2FyZ3MpIGFzIGEKK1dIRVJFIGUudmFybmFtZSBMSUtFICdzdmFydGVz dF92YXIlJzsKKyAgICB2YXJuYW1lICAgIHwgICAgICAgICAgICAgICAgICBkZXNjciAgICAgICAg ICAgICAgICAgIHwgICAgICAgdHlwZSAgICAgICB8ICAgICAgIG9iamVjdF9uYW1lcyAgICAgICB8 IG9iamVjdF9hcmdzIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRlbnQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgc3ZhcnRlc3RfdmFy MSB8IHNlc3Npb24gdmFyaWFibGUgdmFydGVzdDEuc3ZhcnRlc3RfdmFyMSB8IHNlc3Npb24gdmFy aWFibGUgfCB7dmFydGVzdDEsc3ZhcnRlc3RfdmFyMX0gfCB7fSAgICAgICAgICB8ICgic2Vzc2lv biB2YXJpYWJsZSIsdmFydGVzdDEsc3ZhcnRlc3RfdmFyMSx2YXJ0ZXN0MS5zdmFydGVzdF92YXIx KQorIHN2YXJ0ZXN0X3ZhcjEgfCBzZXNzaW9uIHZhcmlhYmxlIHZhcnRlc3QyLnN2YXJ0ZXN0X3Zh cjEgfCBzZXNzaW9uIHZhcmlhYmxlIHwge3ZhcnRlc3QyLHN2YXJ0ZXN0X3ZhcjF9IHwge30gICAg ICAgICAgfCAoInNlc3Npb24gdmFyaWFibGUiLHZhcnRlc3QyLHN2YXJ0ZXN0X3ZhcjEsdmFydGVz dDIuc3ZhcnRlc3RfdmFyMSkKKygyIHJvd3MpCisKK0RST1AgU0NIRU1BIHZhcnRlc3QxIENBU0NB REU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgdmFydGVzdDEu c3ZhcnRlc3RfdmFyMQorRFJPUCBTQ0hFTUEgdmFydGVzdDIgQ0FTQ0FERTsKK05PVElDRTogIGRy b3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSB2YXJ0ZXN0Mi5zdmFydGVzdF92YXIxCist LSBjaGVjayBhY2Nlc3MgcmlnaHRzIGFuZCBzdXBwb3J0ZWQgQUxURVIKK0NSRUFURSBTQ0hFTUEg c3ZhcnRlc3Q7CitHUkFOVCBBTEwgT04gU0NIRU1BIHN2YXJ0ZXN0IFRPIHJlZ3Jlc3NfdmFyaWFi bGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CitDUkVBVEUg Uk9MRSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBz dmFydGVzdC52YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOworUkVWT0tFIEFMTCBPTiBW QVJJQUJMRSBzdmFydGVzdC52YXIxIEZST00gcmVncmVzc192YXJpYWJsZV9yZWFkZXI7CitBTFRF UiBWQVJJQUJMRSBzdmFydGVzdC52YXIxIE9XTkVSIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7 CitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdC52YXIxIFJFTkFNRSBUTyB2YXJ4eDsKK0FMVEVSIFZB UklBQkxFIHN2YXJ0ZXN0LnZhcnh4IFNFVCBTQ0hFTUEgcHVibGljOworRFJPUCBWQVJJQUJMRSBw dWJsaWMudmFyeHg7CitBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMKKyAgIEZPUiBST0xFIHJlZ3Jl c3NfdmFyaWFibGVfb3duZXIKKyAgIElOIFNDSEVNQSBzdmFydGVzdAorICAgR1JBTlQgU0VMRUNU IE9OIFZBUklBQkxFUyBUTyByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKKy0tIGNyZWF0aW5nIHZh cmlhYmxlIHdpdGggZGVmYXVsdCBwcml2aWxlZ2VzCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcmlh YmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50OworU0VUIFJP TEUgVE8gREVGQVVMVDsKKy0tIHNob3VsZCBiZSBvay4gc2luY2UgQUxURVIgREVGQVVMVCBQUklW SUxFR0VTCistLSBhbGxvdyByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlciB0byBoYXZlIFNFTEVDVCBw cml2aWxlZGdlCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNz X3ZhcmlhYmxlX3JlYWRlcicsICdzdmFydGVzdC52YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyB0CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMTsKK0RST1Ag U0NIRU1BIHN2YXJ0ZXN0OworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOworLS0K Ky0tIGJlZ2luIG9mIGNoZWNrIEdSQU5UIFdJVEggR1JBTlQgT1BUSU9OIGFuZCBSRVZPS0UgR1JB TlRFRCBCWQorLS0KK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitDUkVBVEUgUk9M RSByZWdyZXNzX3ZhcmlhYmxlX3IyOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25l cjsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsgICAgICAtLXZhcjEgd2lsbCBvd25lZCBi eSByZWdyZXNzX3ZhcmlhYmxlX293bmVyCitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBU TyByZWdyZXNzX3ZhcmlhYmxlX3IxIFdJVEggR1JBTlQgT1BUSU9OOworU0VUIFJPTEUgVE8gcmVn cmVzc192YXJpYWJsZV9yMTsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jl c3NfdmFyaWFibGVfcjIgV0lUSCBHUkFOVCBPUFRJT047CitTRVQgUk9MRSBUTyBERUZBVUxUOwor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9y MScsICdwdWJsaWMudmFyMScsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93 KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zhcmlh YmxlX3IyJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0Ciso MSByb3cpCisKK1JFVk9LRSBBTEwgUFJJVklMRUdFUyBPTiBWQVJJQUJMRSB2YXIxIEZST00gcmVn cmVzc192YXJpYWJsZV9yMSBDQVNDQURFOworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICdwdWJsaWMudmFyMScsICdTRUxFQ1QnKTsg LS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVD VCcpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXI7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNz X3ZhcmlhYmxlX3IyOworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVn cmVzc192YXJpYWJsZV9yMScsICdwdWJsaWMudmFyMScsICdTRUxFQ1QnKTsgLS0gZgorIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl KCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSB0Cisg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1JFVk9LRSBBTEwgT04gVkFSSUFCTEUgdmFyMSBGUk9N IHJlZ3Jlc3NfdmFyaWFibGVfcjIgR1JBTlRFRCBCWSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9y MScsICdwdWJsaWMudmFyMScsICdTRUxFQ1QnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93 KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zhcmlh YmxlX3IyJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCiso MSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3Nf dmFyaWFibGVfb3duZXInLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIHQKKygxIHJvdykKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgVkFSSUFCTEUgdmFy MTsKKy0tCistLSBlbmQgb2YgY2hlY2sgR1JBTlQgV0lUSCBHUkFOVCBPUFRJT04gYW5kIFJFVk9L RSBHUkFOVEVEIEJZCistLQorLS0KKy0tIGJlZ2luIG9mIHRlc3Q6IEdSQU5UfFJFVk9LRSBTRUxF Q1R8VVBEQVRFIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BCistLQorQ1JFQVRFIFNDSEVNQSBz dmFydGVzdDsKK0dSQU5UIEFMTCBPTiBTQ0hFTUEgc3ZhcnRlc3QgVE8gcmVncmVzc192YXJpYWJs ZV9vd25lcjsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFS SUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFy MiBBUyBpbnQ7CitHUkFOVCBTRUxFQ1QgT04gQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgc3ZhcnRl c3QgVE8gcmVncmVzc192YXJpYWJsZV9yMTsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAnc3ZhcnRlc3QudmFyMScsICdTRUxFQ1Qn KTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3N2YXJ0ZXN0LnZhcjInLCAn U0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworUkVWT0tFIFNFTEVDVCBP TiBBTEwgVkFSSUFCTEVTIElOIFNDSEVNQSBzdmFydGVzdCBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVf cjE7CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zhcmlh YmxlX3IxJywgJ3N2YXJ0ZXN0LnZhcjEnLCAnU0VMRUNUJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYK KygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVz c192YXJpYWJsZV9yMScsICdzdmFydGVzdC52YXIyJywgJ1NFTEVDVCcpOyAtLSBmCisgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBmCisoMSByb3cpCisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIFZBUklBQkxFIHN2 YXJ0ZXN0LnZhcjE7CitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjI7CitEUk9QIFNDSEVNQSBz dmFydGVzdDsKKy0tCistLSBlbmQgb2YgdGVzdDogR1JBTlR8UkVWT0tFIFNFTEVDVHxVUERBVEUg T04gQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEKKy0tCistLQorLS0gZnVuY3Rpb24gaGFzX3Nlc3Np b25fdmFyaWFibGVfcHJpdmlsZWdlIGhhdmUgdmFyaW91cyBraW5kIG9mIHNpZ25hdHVyZS4KKy0t IHRoZSBmb2xsb3dpbmcgYXJlIGV4dGVuc2l2ZSB0ZXN0IGZvciBpdC4KKy0tCitTRVQgUk9MRSBU TyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy52YXIxIEFT IGludDsKK1NFVCBzZWFyY2hfcGF0aCBUTyBwdWJsaWM7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFC TEUgcHVibGljLnZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yMTsKK0dSQU5UIFNFTEVDVCwgVVBE QVRFIE9OIFZBUklBQkxFIHB1YmxpYy52YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CitTRUxF Q1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywg J3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOworIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxF Q1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywg J3B1YmxpYy5ub3RleGlzdHMnLCAnU0VMRUNUJykgSVMgTlVMTDsKKyA/Y29sdW1uPyAKKy0tLS0t LS0tLS0KKyB0CisoMSByb3cpCisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitT RUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3Ix JywgJ3ZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VM RUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScs ICd2YXIxJywgJ1VQREFURScpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVD VCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCAn dmFyMScsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1Qg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgJ3Zh cjEnLCAnVVBEQVRFJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgndmFyMScsICdTRUxFQ1QnKTsgLS0gdAorIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlKCd2YXIxJywgJ1VQREFURScpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NF TEVDVCBvaWQgQVMgdmFyaWQKKyAgRlJPTSBwZ192YXJpYWJsZQorICBXSEVSRSB2YXJuYW1lID0g J3ZhcjEnIEFORCB2YXJuYW1lc3BhY2UgPSAncHVibGljJzo6cmVnbmFtZXNwYWNlIFxnc2V0CitT RUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCd2YXIxJywgJ1NFTEVDVCcpOyAt LSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UoJ3ZhcjEnLCAnVVBEQVRFJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJv dykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJp YWJsZV9yMScsIDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cp CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFi bGVfcjEnLCA6dmFyaWQsICdVUERBVEUnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQor CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxl X3IyJywgOnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKwor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9y MicsIDp2YXJpZCwgJ1VQREFURScpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NF TEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoOnZhcmlkLCAnU0VMRUNUJyk7IC0t IHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSg6dmFyaWQsICdVUERBVEUnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93 KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zhcmlh YmxlX3IxJzo6cmVncm9sZSwgJ3ZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQK KygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVz c192YXJpYWJsZV9yMSc6OnJlZ3JvbGUsICd2YXIxJywgJ1VQREFURScpOyAtLSBmCisgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Uo J3JlZ3Jlc3NfdmFyaWFibGVfcjInOjpyZWdyb2xlLCAndmFyMScsICdTRUxFQ1QnKTsgLS0gdAor IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJzo6cmVncm9sZSwgJ3ZhcjEnLCAnVVBEQVRFJyk7 IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMSc6OnJlZ3JvbGUsIDp2YXJpZCwgJ1NF TEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnOjpyZWdyb2xlLCA6dmFy aWQsICdVUERBVEUnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJzo6cmVncm9s ZSwgOnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VM RUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMic6 OnJlZ3JvbGUsIDp2YXJpZCwgJ1VQREFURScpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cp CisKKy0tCistLSBlbmQgb2YgZnVuY3Rpb24gaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl IHRlc3RzLgorLS0KK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgc2VhcmNoX3BhdGggVE8gREVG QVVMVDsKK0RST1AgVkFSSUFCTEUgcHVibGljLnZhcjE7CitEUk9QIFJPTEUgcmVncmVzc192YXJp YWJsZV9yMTsKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IyOworRFJPUCBST0xFIHJlZ3Jl c3NfdmFyaWFibGVfb3duZXI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVs X3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQppbmRleCBhNDI0 YmUyYTZiZi4uYjk2YThkZTAwMWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxs ZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQpAQCAt MTE1LDcgKzExNSw3IEBAIHRlc3Q6IGpzb24ganNvbmIganNvbl9lbmNvZGluZyBqc29ucGF0aCBq c29ucGF0aF9lbmNvZGluZyBqc29uYl9qc29ucGF0aCBzcWxqc29uCiAjIE5COiB0ZW1wLnNxbCBk b2VzIHJlY29ubmVjdHMgd2hpY2ggdHJhbnNpZW50bHkgdXNlIDIgY29ubmVjdGlvbnMsCiAjIHNv IGtlZXAgdGhpcyBwYXJhbGxlbCBncm91cCB0byBhdCBtb3N0IDE5IHRlc3RzCiAjIC0tLS0tLS0t LS0KLXRlc3Q6IHBsYW5jYWNoZSBsaW1pdCBwbHBnc3FsIGNvcHkyIHRlbXAgZG9tYWluIHJhbmdl ZnVuY3MgcHJlcGFyZSBjb252ZXJzaW9uIHRydW5jYXRlIGFsdGVyX3RhYmxlIHNlcXVlbmNlIHBv bHltb3JwaGlzbSByb3d0eXBlcyByZXR1cm5pbmcgbGFyZ2VvYmplY3Qgd2l0aCB4bWwKK3Rlc3Q6 IHBsYW5jYWNoZSBsaW1pdCBwbHBnc3FsIGNvcHkyIHRlbXAgZG9tYWluIHJhbmdlZnVuY3MgcHJl cGFyZSBjb252ZXJzaW9uIHRydW5jYXRlIGFsdGVyX3RhYmxlIHNlcXVlbmNlIHBvbHltb3JwaGlz bSByb3d0eXBlcyByZXR1cm5pbmcgbGFyZ2VvYmplY3Qgd2l0aCB4bWwgc2Vzc2lvbl92YXJpYWJs ZXMKIAogIyAtLS0tLS0tLS0tCiAjIEFub3RoZXIgZ3JvdXAgb2YgcGFyYWxsZWwgdGVzdHMKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3kuc3FsIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvZGVwZW5kZW5jeS5zcWwKaW5kZXggOGQ3NGVkNzEyMmMuLjZjMThiN2Y4NDBh IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBlbmRlbmN5LnNxbAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBlbmRlbmN5LnNxbApAQCAtMTE0LDMgKzExNCwxNyBAQCBE Uk9QIFVTRVIgcmVncmVzc19kZXBfdXNlcjI7CiBEUk9QIE9XTkVEIEJZIHJlZ3Jlc3NfZGVwX3Vz ZXIyLCByZWdyZXNzX2RlcF91c2VyMDsKIERST1AgVVNFUiByZWdyZXNzX2RlcF91c2VyMjsKIERS T1AgVVNFUiByZWdyZXNzX2RlcF91c2VyMDsKKworLS0gZGVwZW5kZW5jeSBvbiB0eXBlCitDUkVB VEUgRE9NQUlOIHZhcmRvbWFpbiBBUyBpbnQ7CitDUkVBVEUgVFlQRSB2YXJ0eXBlIEFTIChhIGlu dCwgYiBpbnQsIGMgdmFyZG9tYWluKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcnR5cGU7 CisKKy0tIHNob3VsZCBmYWlsCitEUk9QIERPTUFJTiB2YXJkb21haW47CitEUk9QIFRZUEUgdmFy dHlwZTsKKworLS0gY2xlYW4gdXAKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVFlQRSB2YXJ0 eXBlOworRFJPUCBET01BSU4gdmFyZG9tYWluOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcHNxbC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNxbAppbmRleCAxYThh ODM0NjJmMC4uYjU2N2VlMWVlZTIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Bz cWwuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsCkBAIC0xNjQzLDYgKzE2 NDMsMTkgQEAgQ09NTUlUOwogRFJPUCBUQUJMRSBibGE7CiBEUk9QIEZVTkNUSU9OIHBzcWxfZXJy b3I7CiAKKy0tIHNlc3Npb24gdmFyaWFibGUgdGVzdAorQ1JFQVRFIFJPTEUgcmVncmVzc192YXJp YWJsZV9vd25lcjsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitDUkVBVEUg VkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOworXGRWKyB2YXIxCitHUkFOVCBT RUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyBQVUJMSUM7CitDT01NRU5UIE9OIFZBUklBQkxFIHZh cjEgSVMgJ3NvbWUgZGVzY3JpcHRpb24nOworXGRWKyB2YXIxCitEUk9QIFZBUklBQkxFIHZhcjE7 CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25l cjsKKwogLS0gY2hlY2sgZGVzY3JpYmluZyBpbnZhbGlkIG11bHRpcGFydCBuYW1lcwogXGRBIHJl Z3Jlc3Npb24uaGVhcAogXGRBIG5vbmVzdWNoLmhlYXAKQEAgLTE3NTQsNiArMTc2Nyw5IEBAIERS T1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsKIFxkWCBub25lc3VjaC5wdWJsaWMuZnVuY19kZXBzX3N0 YXQKIFxkeSByZWdyZXNzaW9uLm15ZXZ0CiBcZHkgbm9uZXN1Y2gubXlldnQKK1xkViBob3N0LnJl Z3Jlc3Npb24ucHVibGljLnZhcgorXGRWIHJlZ3Jlc3Npb258bXlkYi5wdWJsaWMudmFyCitcZFYg bm9uZXN1Y2gucHVibGljLnZhcgogCiAtLSBjaGVjayB0aGF0IGRvdHMgd2l0aGluIHF1b3RlZCBu YW1lIHNlZ21lbnRzIGFyZSBub3QgY291bnRlZAogXGRBICJuby5zdWNoLmFjY2Vzcy5tZXRob2Qi CkBAIC0xNzk1LDYgKzE4MTEsOCBAQCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBcZHggIm5v LnN1Y2guaW5zdGFsbGVkLmV4dGVuc2lvbiIKIFxkWCAibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0 aWNzIgogXGR5ICJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCitcZFYgIm5vLnN1Y2gudmFyaWFibGUi CisKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBc ZEEgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5hY2Nlc3MubWV0aG9kIgpAQCAtMTgzNSw2ICsx ODUzLDcgQEAgRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogXGR4ICJuby5zdWNoLnNjaGVtYSIu Im5vLnN1Y2guaW5zdGFsbGVkLmV4dGVuc2lvbiIKIFxkWCAibm8uc3VjaC5zY2hlbWEiLiJuby5z dWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCiBcZHkgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5l dmVudC50cmlnZ2VyIgorXGRWICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCiAK IC0tIGFnYWluLCBidXQgd2l0aCBjdXJyZW50IGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1 YWxpZmljYXRpb25zLgogXGR0IHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50 YWJsZS5yZWxhdGlvbiIKQEAgLTE4NTksNiArMTg3OCw3IEBAIERST1AgRlVOQ1RJT04gcHNxbF9l cnJvcjsKIFxkUCByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gucGFydGl0aW9u ZWQucmVsYXRpb24iCiBcZFQgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmRh dGEudHlwZSIKIFxkWCByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5k ZWQuc3RhdGlzdGljcyIKK1xkViByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gu dmFyaWFibGUiCiAKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgZGF0YWJhc2UgYW5kIGRvdHRl ZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZHQgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNo LnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVsYXRpb24iCkBAIC0xODg0LDYgKzE5MDQsNyBAQCBE Uk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBcZFAgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNo LnNjaGVtYSIuIm5vLnN1Y2gucGFydGl0aW9uZWQucmVsYXRpb24iCiBcZFQgIm5vLnN1Y2guZGF0 YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZGF0YS50eXBlIgogXGRYICJuby5zdWNo LmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3Mi CitcZFYgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFi bGUiCiAKIC0tIGNoZWNrIFxkcmcgYW5kIFxkdQogQ1JFQVRFIFJPTEUgcmVncmVzc19kdV9yb2xl MDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZWViMGY5NGNhM2MKLS0tIC9kZXYvbnVsbAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTAsMCAr MSwyOTcgQEAKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CisKK1NFVCBsb2df c3RhdGVtZW50IFRPIGRkbDsKKworLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyBpbnQ7CisKKy0tIHNob3VsZCBmYWlsLCBwc2V1ZG90eXBlcyBhcmUgbm90IGFsbG93ZWQK K0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGFueWVsZW1lbnQ7CisKKy0tIHNob3VsZCBiZSBvaywg ZG8gbm90aGluZworRFJPUCBWQVJJQUJMRSBJRiBFWElTVFMgdmFyMjsKKworLS0gZG8gbm90aGlu ZworQ1JFQVRFIFZBUklBQkxFIElGIE5PVCBFWElTVFMgdmFyMSBBUyBpbnQ7CisKKy0tIHNob3Vs ZCBmYWlsCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisKKy0tIHNob3VsZCBiZSBvawor RFJPUCBWQVJJQUJMRSBJRiBFWElTVFMgdmFyMTsKKworLS0gdGhlIHZhcmlhYmxlIGNhbiB1c2Ug Y29tcG9zaXRlIHR5cGVzCitDUkVBVEUgVEFCTEUgdDEgKGEgaW50LCBiIGludCk7CitDUkVBVEUg VkFSSUFCTEUgdmFyMSBBUyB0MTsKKworLS0gc2hvdWxkIGZhaWwKK0RST1AgVEFCTEUgdDE7CisK Ky0tIHNob3VsZCBiZSBvaworQUxURVIgVEFCTEUgdDEgQUREIENPTFVNTiBjIGludDsKKworLS0g c2hvdWxkIGZhaWwKK0FMVEVSIFRBQkxFIHQxIEFMVEVSIENPTFVNTiBiIFRZUEUgbnVtZXJpYzsK KworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB0MTsKKworQ1JFQVRFIFRZUEUgdDEg QVMgKGEgaW50LCBiIGludCk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0MTsKKworLS0gc2hv dWxkIGZhaWwKK0RST1AgVFlQRSB0MTsKKworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQx IEFERCBBVFRSSUJVVEUgYyBpbnQ7CisKKy0tIHNob3VsZCBmYWlsCitBTFRFUiBUWVBFIHQxIEFM VEVSIEFUVFJJQlVURSBiICBUWVBFIG51bWVyaWM7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RS T1AgVFlQRSB0MTsKKworU0VUIGxvZ19zdGF0ZW1lbnQgVE8gZGVmYXVsdDsKKworQ1JFQVRFIERP TUFJTiB0ZXN0dmFyX2RvbWFpbiBBUyBpbnQ7CitDUkVBVEUgVFlQRSB0ZXN0dmFyX3R5cGUgQVMg KGEgdGVzdHZhcl9kb21haW4pOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0ZXN0dmFyX2Rv bWFpbjsKKworLS0gc2hvdWxkIGZhaWwKK0FMVEVSIERPTUFJTiB0ZXN0dmFyX2RvbWFpbiBBREQg Q0hFQ0sodmFsdWUgPD4gMTAwKTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCitDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyB0ZXN0dmFyX3R5cGU7CisKKy0tIHNob3VsZCBmYWlsCitBTFRFUiBET01B SU4gdGVzdHZhcl9kb21haW4gQUREIENIRUNLKHZhbHVlIDw+IDEwMCk7CisKK0RST1AgVkFSSUFC TEUgdmFyMTsKKworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBET01BSU4gdGVzdHZhcl9kb21haW4g QUREIENIRUNLKHZhbHVlIDw+IDEwMCk7CisKK0RST1AgVFlQRSB0ZXN0dmFyX3R5cGU7CitEUk9Q IFRZUEUgdGVzdHZhcl9kb21haW47CisKKy0tIGNoZWNrIGV2ZW50IHRyaWdnZXIgc3VwcG9ydAor Q1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3Zhcl9ldmVudF90cmlnZ2VyX3JlcG9ydF9kcm9w cGVkKCkKK1JFVFVSTlMgZXZlbnRfdHJpZ2dlcgorQVMgJCQKK0RFQ0xBUkUgciByZWNvcmQ7CitC RUdJTgorICBGT1IgciBJTiBTRUxFQ1QgKiBmcm9tIHBnX2V2ZW50X3RyaWdnZXJfZHJvcHBlZF9v YmplY3RzKCkKKyAgTE9PUAorICAgIENPTlRJTlVFIFdIRU4gTk9UIHIubm9ybWFsIEFORCBOT1Qg ci5vcmlnaW5hbDsKKworICAgIFJBSVNFIE5PVElDRQorICAgICAgICdOT1JNQUw6IG9yaWc9JSBu b3JtYWw9JSBpc3RlbXA9JSB0eXBlPSUgaWRlbnRpdHk9JSBuYW1lPSUgYXJncz0lJywKKyAgICAg ICByLm9yaWdpbmFsLCByLm5vcm1hbCwgci5pc190ZW1wb3JhcnksIHIub2JqZWN0X3R5cGUsCisg ICAgICAgci5vYmplY3RfaWRlbnRpdHksIHIuYWRkcmVzc19uYW1lcywgci5hZGRyZXNzX2FyZ3M7 CisgIEVORCBMT09QOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIEVWRU5U IFRSSUdHRVIgc3Zhcl9yZWdyZXNzX2V2ZW50X3RyaWdnZXJfcmVwb3J0X2Ryb3BwZWQgT04gc3Fs X2Ryb3AKKyAgV0hFTiBUQUcgSU4gKCdEUk9QIFZBUklBQkxFJykKKyAgRVhFQ1VURSBQUk9DRURV UkUgc3Zhcl9ldmVudF90cmlnZ2VyX3JlcG9ydF9kcm9wcGVkKCk7CisKK0NSRUFURSBWQVJJQUJM RSB2YXIxIEFTIGludDsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworRFJPUCBFVkVOVCBUUklHR0VS IHN2YXJfcmVncmVzc19ldmVudF90cmlnZ2VyX3JlcG9ydF9kcm9wcGVkOworCistLSBjaGVjayBj b21tZW50IG9uIHZhcmlhYmxlCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDT01NRU5U IE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgdmFyaWFibGUgY29tbWVudCc7CitTRUxFQ1QgcGdf Y2F0YWxvZy5vYmpfZGVzY3JpcHRpb24ob2lkLCAncGdfdmFyaWFibGUnKSBGUk9NIHBnX3Zhcmlh YmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0g Y2hlY2sgdGhlIG9iamVjdCBhZGRyZXNzIG9mIGFsbCBzZXNzaW9uIHZhcmlhYmxlcworQ1JFQVRF IFNDSEVNQSB2YXJ0ZXN0MTsKK0NSRUFURSBTQ0hFTUEgdmFydGVzdDI7CitDUkVBVEUgVkFSSUFC TEUgdmFydGVzdDEuc3ZhcnRlc3RfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFydGVz dDIuc3ZhcnRlc3RfdmFyMSBBUyBpbnQ7CisKK1NFTEVDVAorICBlLnZhcm5hbWUsCisgIHBnX2Rl c2NyaWJlX29iamVjdCgncGdfdmFyaWFibGUnOjpyZWdjbGFzcywgZS5vaWQsIDApIGFzIGRlc2Ny LAorICBiLnR5cGUsIGIub2JqZWN0X25hbWVzLCBiLm9iamVjdF9hcmdzLAorICBwZ19pZGVudGlm eV9vYmplY3QoYS5jbGFzc2lkLCBhLm9iamlkLCBhLm9ianN1YmlkKSBhcyBpZGVudAorRlJPTSBw Z192YXJpYWJsZSBhcyBlLAorICBMQVRFUkFMIHBnX2lkZW50aWZ5X29iamVjdF9hc19hZGRyZXNz KCdwZ192YXJpYWJsZSc6OnJlZ2NsYXNzLCBlLm9pZCwgMCkgYXMgYiwKKyAgTEFURVJBTCBwZ19n ZXRfb2JqZWN0X2FkZHJlc3MoYi50eXBlLCBiLm9iamVjdF9uYW1lcywgYi5vYmplY3RfYXJncykg YXMgYQorV0hFUkUgZS52YXJuYW1lIExJS0UgJ3N2YXJ0ZXN0X3ZhciUnOworCitEUk9QIFNDSEVN QSB2YXJ0ZXN0MSBDQVNDQURFOworRFJPUCBTQ0hFTUEgdmFydGVzdDIgQ0FTQ0FERTsKKworLS0g Y2hlY2sgYWNjZXNzIHJpZ2h0cyBhbmQgc3VwcG9ydGVkIEFMVEVSCitDUkVBVEUgU0NIRU1BIHN2 YXJ0ZXN0OworR1JBTlQgQUxMIE9OIFNDSEVNQSBzdmFydGVzdCBUTyByZWdyZXNzX3ZhcmlhYmxl X293bmVyOworCitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CisKK0NSRUFU RSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOworCitHUkFOVCBTRUxFQ1QgT04gVkFSSUFC TEUgc3ZhcnRlc3QudmFyMSBUTyByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKK1JFVk9LRSBBTEwg T04gVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOwor CitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdC52YXIxIE9XTkVSIFRPIHJlZ3Jlc3NfdmFyaWFibGVf b3duZXI7CitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdC52YXIxIFJFTkFNRSBUTyB2YXJ4eDsKK0FM VEVSIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcnh4IFNFVCBTQ0hFTUEgcHVibGljOworCitEUk9QIFZB UklBQkxFIHB1YmxpYy52YXJ4eDsKKworQUxURVIgREVGQVVMVCBQUklWSUxFR0VTCisgICBGT1Ig Uk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyCisgICBJTiBTQ0hFTUEgc3ZhcnRlc3QKKyAgIEdS QU5UIFNFTEVDVCBPTiBWQVJJQUJMRVMgVE8gcmVncmVzc192YXJpYWJsZV9yZWFkZXI7CisKKy0t IGNyZWF0aW5nIHZhcmlhYmxlIHdpdGggZGVmYXVsdCBwcml2aWxlZ2VzCitTRVQgUk9MRSBUTyBy ZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMg aW50OworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworLS0gc2hvdWxkIGJlIG9rLiBzaW5jZSBBTFRF UiBERUZBVUxUIFBSSVZJTEVHRVMKKy0tIGFsbG93IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyIHRv IGhhdmUgU0VMRUNUIHByaXZpbGVkZ2UKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyJywgJ3N2YXJ0ZXN0LnZhcjEnLCAnU0VMRUNU Jyk7IC0tIHQKKworRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIxOworRFJPUCBTQ0hFTUEgc3Zh cnRlc3Q7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9yZWFkZXI7CisKKy0tCistLSBiZWdp biBvZiBjaGVjayBHUkFOVCBXSVRIIEdSQU5UIE9QVElPTiBhbmQgUkVWT0tFIEdSQU5URUQgQlkK Ky0tCitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IxOworQ1JFQVRFIFJPTEUgcmVncmVz c192YXJpYWJsZV9yMjsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NS RUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsgICAgICAtLXZhcjEgd2lsbCBvd25lZCBieSByZWdy ZXNzX3ZhcmlhYmxlX293bmVyCisKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJl Z3Jlc3NfdmFyaWFibGVfcjEgV0lUSCBHUkFOVCBPUFRJT047CitTRVQgUk9MRSBUTyByZWdyZXNz X3ZhcmlhYmxlX3IxOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc192 YXJpYWJsZV9yMiBXSVRIIEdSQU5UIE9QVElPTjsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NF TEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEn LCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCAncHVibGljLnZhcjEnLCAnU0VM RUNUJyk7IC0tIHQKKworUkVWT0tFIEFMTCBQUklWSUxFR0VTIE9OIFZBUklBQkxFIHZhcjEgRlJP TSByZWdyZXNzX3ZhcmlhYmxlX3IxIENBU0NBREU7CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAncHVibGljLnZhcjEnLCAnU0VM RUNUJyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jl c3NfdmFyaWFibGVfcjInLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7IC0tIGYKKworU0VUIFJP TEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2 YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAncHVibGljLnZhcjEnLCAnU0VMRUNU Jyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3Nf dmFyaWFibGVfcjInLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKworUkVWT0tFIEFM TCBPTiBWQVJJQUJMRSB2YXIxIEZST00gcmVncmVzc192YXJpYWJsZV9yMiBHUkFOVEVEIEJZIHJl Z3Jlc3NfdmFyaWFibGVfb3duZXI7CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7IC0t IGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFi bGVfcjInLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfb3duZXInLCAncHVibGljLnZh cjEnLCAnU0VMRUNUJyk7IC0tIHQKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK0RST1AgVkFSSUFC TEUgdmFyMTsKKy0tCistLSBlbmQgb2YgY2hlY2sgR1JBTlQgV0lUSCBHUkFOVCBPUFRJT04gYW5k IFJFVk9LRSBHUkFOVEVEIEJZCistLQorCistLQorLS0gYmVnaW4gb2YgdGVzdDogR1JBTlR8UkVW T0tFIFNFTEVDVHxVUERBVEUgT04gQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEKKy0tCitDUkVBVEUg U0NIRU1BIHN2YXJ0ZXN0OworR1JBTlQgQUxMIE9OIFNDSEVNQSBzdmFydGVzdCBUTyByZWdyZXNz X3ZhcmlhYmxlX293bmVyOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKKwor Q1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHN2 YXJ0ZXN0LnZhcjIgQVMgaW50OworCitHUkFOVCBTRUxFQ1QgT04gQUxMIFZBUklBQkxFUyBJTiBT Q0hFTUEgc3ZhcnRlc3QgVE8gcmVncmVzc192YXJpYWJsZV9yMTsKKworU0VMRUNUIGhhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICdzdmFydGVzdC52 YXIxJywgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3N2YXJ0ZXN0LnZhcjInLCAnU0VMRUNUJyk7IC0t IHQKKworUkVWT0tFIFNFTEVDVCBPTiBBTEwgVkFSSUFCTEVTIElOIFNDSEVNQSBzdmFydGVzdCBG Uk9NIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAnc3ZhcnRlc3QudmFyMScsICdTRUxFQ1Qn KTsgLS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192 YXJpYWJsZV9yMScsICdzdmFydGVzdC52YXIyJywgJ1NFTEVDVCcpOyAtLSBmCisKK1NFVCBST0xF IFRPIERFRkFVTFQ7CitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjE7CitEUk9QIFZBUklBQkxF IHN2YXJ0ZXN0LnZhcjI7CitEUk9QIFNDSEVNQSBzdmFydGVzdDsKKy0tCistLSBlbmQgb2YgdGVz dDogR1JBTlR8UkVWT0tFIFNFTEVDVHxVUERBVEUgT04gQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEK Ky0tCisKKy0tCistLSBmdW5jdGlvbiBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgaGF2 ZSB2YXJpb3VzIGtpbmQgb2Ygc2lnbmF0dXJlLgorLS0gdGhlIGZvbGxvd2luZyBhcmUgZXh0ZW5z aXZlIHRlc3QgZm9yIGl0LgorLS0KK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7 CisKK0NSRUFURSBWQVJJQUJMRSBwdWJsaWMudmFyMSBBUyBpbnQ7CisKK1NFVCBzZWFyY2hfcGF0 aCBUTyBwdWJsaWM7CisKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBwdWJsaWMudmFyMSBUTyBy ZWdyZXNzX3ZhcmlhYmxlX3IxOworR1JBTlQgU0VMRUNULCBVUERBVEUgT04gVkFSSUFCTEUgcHVi bGljLnZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yMjsKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICdwdWJsaWMudmFyMScsICdT RUxFQ1QnKTsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3Nf dmFyaWFibGVfcjEnLCAncHVibGljLm5vdGV4aXN0cycsICdTRUxFQ1QnKSBJUyBOVUxMOworCitT RVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IxOworCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3ZhcjEnLCAnU0VMRUNUJyk7 IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFy aWFibGVfcjEnLCAndmFyMScsICdVUERBVEUnKTsgLS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsICd2YXIxJywgJ1NFTEVDVCcp OyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zh cmlhYmxlX3IyJywgJ3ZhcjEnLCAnVVBEQVRFJyk7IC0tIHQKKworU0VMRUNUIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSgndmFyMScsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgndmFyMScsICdVUERBVEUnKTsgLS0gZgorCitTRUxF Q1Qgb2lkIEFTIHZhcmlkCisgIEZST00gcGdfdmFyaWFibGUKKyAgV0hFUkUgdmFybmFtZSA9ICd2 YXIxJyBBTkQgdmFybmFtZXNwYWNlID0gJ3B1YmxpYyc6OnJlZ25hbWVzcGFjZSBcZ3NldAorCitT RUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCd2YXIxJywgJ1NFTEVDVCcpOyAt LSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCd2YXIxJywgJ1VQREFU RScpOyAtLSBmCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jl c3NfdmFyaWFibGVfcjEnLCA6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsIDp2YXJpZCwgJ1VQ REFURScpOyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdy ZXNzX3ZhcmlhYmxlX3IyJywgOnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCA6dmFyaWQsICdV UERBVEUnKTsgLS0gdAorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKDp2 YXJpZCwgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlKDp2YXJpZCwgJ1VQREFURScpOyAtLSBmCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnOjpyZWdyb2xlLCAndmFyMScsICdTRUxF Q1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVz c192YXJpYWJsZV9yMSc6OnJlZ3JvbGUsICd2YXIxJywgJ1VQREFURScpOyAtLSBmCitTRUxFQ1Qg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJzo6cmVn cm9sZSwgJ3ZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInOjpyZWdyb2xlLCAndmFyMScsICdVUERB VEUnKTsgLS0gdAorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdy ZXNzX3ZhcmlhYmxlX3IxJzo6cmVncm9sZSwgOnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVD VCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnOjpy ZWdyb2xlLCA6dmFyaWQsICdVUERBVEUnKTsgLS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMic6OnJlZ3JvbGUsIDp2YXJpZCwgJ1NF TEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdy ZXNzX3ZhcmlhYmxlX3IyJzo6cmVncm9sZSwgOnZhcmlkLCAnVVBEQVRFJyk7IC0tIHQKKy0tCist LSBlbmQgb2YgZnVuY3Rpb24gaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIHRlc3RzLgor LS0KKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK1NFVCBzZWFyY2hfcGF0aCBUTyBERUZBVUxUOwor CitEUk9QIFZBUklBQkxFIHB1YmxpYy52YXIxOworCitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJs ZV9yMTsKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IyOworCitEUk9QIFJPTEUgcmVncmVz c192YXJpYWJsZV9vd25lcjsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVm cy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggOWVhNTczZmFl MjEuLjlkYzE2OTQwYjlkIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMu bGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtNTYyLDYgKzU2 Miw3IEBAIENyZWF0ZVJvbGVTdG10CiBDcmVhdGVTY2hlbWFTdG10CiBDcmVhdGVTY2hlbWFTdG10 Q29udGV4dAogQ3JlYXRlU2VxU3RtdAorQ3JlYXRlU2Vzc2lvblZhclN0bXQKIENyZWF0ZVN0YXRz U3RtdAogQ3JlYXRlU3RtdAogQ3JlYXRlU3RtdENvbnRleHQKQEAgLTkwNyw2ICs5MDgsNyBAQCBG b3JtRGF0YV9wZ190c19wYXJzZXIKIEZvcm1EYXRhX3BnX3RzX3RlbXBsYXRlCiBGb3JtRGF0YV9w Z190eXBlCiBGb3JtRGF0YV9wZ191c2VyX21hcHBpbmcKK0Zvcm1EYXRhX3BnX3ZhcmlhYmxlCiBG b3JtRXh0cmFEYXRhX3BnX2F0dHJpYnV0ZQogRm9ybV9wZ19hZ2dyZWdhdGUKIEZvcm1fcGdfYW0K QEAgLTk2Niw2ICs5NjgsNyBAQCBGb3JtX3BnX3RzX3BhcnNlcgogRm9ybV9wZ190c190ZW1wbGF0 ZQogRm9ybV9wZ190eXBlCiBGb3JtX3BnX3VzZXJfbWFwcGluZworRm9ybV9wZ192YXJpYWJsZQog Rm9ybWF0Tm9kZQogRnJlZUJsb2NrTnVtYmVyQXJyYXkKIEZyZWVMaXN0RGF0YQpAQCAtMzE4OCw2 ICszMTkxLDcgQEAgVmFyU3RyaW5nCiBWYXJTdHJpbmdTb3J0U3VwcG9ydAogVmFyaWFibGUKIFZh cmlhYmxlQXNzaWduSG9vaworVmFyaWFibGVJbmZvCiBWYXJpYWJsZVNldEtpbmQKIFZhcmlhYmxl U2V0U3RtdAogVmFyaWFibGVTaG93U3RtdAotLSAKMi40OS4wCgo= --0000000000007e4205063527107b--