Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1gdGIi-0002Mb-1X for pgsql-hackers@arkaria.postgresql.org; Sat, 29 Dec 2018 15:13:20 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1gdGIf-0006LZ-Cw for pgsql-hackers@arkaria.postgresql.org; Sat, 29 Dec 2018 15:13:17 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1gdGId-000655-P6 for pgsql-hackers@lists.postgresql.org; Sat, 29 Dec 2018 15:13:17 +0000 Received: from [64.147.123.25] (helo=wout2-smtp.messagingengine.com) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1gdGIR-00036L-P4 for pgsql-hackers@postgresql.org; Sat, 29 Dec 2018 15:13:14 +0000 Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.west.internal (Postfix) with ESMTP id 1E63212A9 for ; Sat, 29 Dec 2018 10:12:42 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute7.internal (MEProxy); Sat, 29 Dec 2018 10:12:42 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; bh=Er7gZGYMac4RfkcgWlIW8+dlUVxW+ HtBP5CmO+d0yQo=; b=v2udGFWG9pjjSlwiErmeD+pOnyoh/qKsBVJ69NJx2ppYt HrmSmYNT4hBqGTKkkeu997bstuY11V8S/m9PQAyRU+q+shQefmuGEURZtjWilh/X dTrW2URzQLBh5VQJNTazMRBDQttZmhCTL2jY7XbC4rKtiqm20uU6nluOJjYI0JEg 4o+/qe3X3i+36gCjsG4+5b1oF97GsRPJ+IKOCsWReeCHTYDlxbJMFmSaBhOtN7xO FsWjO1cOh2lsLpOcywbaVnZ/CIzfE5bB9l2sAaUkGwA7n0a9ejq+m4hcSXRaw61Y y9pyxlOlM7ijZHT2FatkRMr+UH+b/OPdpf848aIXA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedtledrtdekgdejheculddtuddrgedtkedrtddtmd cutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfhuthen uceurghilhhouhhtmecufedttdenucenucfjughrpefhuffvohfkffgfgggtsehmtderre dtfeejnecuhfhrohhmpefrvghtvghrucfgihhsvghnthhrrghuthcuoehpvghtvghrrdgv ihhsvghnthhrrghuthesvdhnughquhgrughrrghnthdrtghomheqnecuffhomhgrihhnpe dvnhguqhhurggurhgrnhhtrdgtohhmnecukfhppeelfedrvdegfedrudduledrvdefleen ucfrrghrrghmpehmrghilhhfrhhomhepphgvthgvrhdrvghishgvnhhtrhgruhhtsedvnh guqhhurggurhgrnhhtrdgtohhmnecuvehluhhsthgvrhfuihiivgeptd X-ME-Proxy: Received: from april.pezone.net (p5df377ef.dip0.t-ipconnect.de [93.243.119.239]) by mail.messagingengine.com (Postfix) with ESMTPA id 3E9C710087 for ; Sat, 29 Dec 2018 10:12:40 -0500 (EST) From: Peter Eisentraut Subject: Use atexit() in initdb and pg_basebackup Openpgp: preference=signencrypt Autocrypt: addr=peter.eisentraut@2ndquadrant.com; prefer-encrypt=mutual; keydata= xsFNBFUUt6kBEADZd9NNTBJbHmAXXJgPGOdd6Q73l80oifIVgn2tRxP9dYkCfTlo/yLqbKTl JNqTcyM6XrJDnB2sMEUGYCewYZXl+9C4bBJWyNqcEI1ae9u71vEq/fknFLArJ+2wN+f7QuRx Q8d94ZJAiJQ5g3fNk2HVeedCQCKP5dCzU+ZLt2dbsx1PDZLjTO9gf+JswWuGFb5wY5PZVM5V hq66Xk7ZJzHuARacza2RT7J2fkMmQBY+kr7L98Perb0GhafnlhXB0PvUB+N3xpmggMfwuhTu BngS/G/r3GvemxJuFxouw8xsMqrsfdksJXA2gLXYtwRCssdPV3PO0rlD9twqDo8URfIJ5fb6 1g/MV8aTOKjg3Q8MpJPtkwJqN4o3PvbwYdedeFnOVkkYAJdu/aX1v1BeCBDu7Hy3sF52scD3 pQbyQSl9vUDpTLarASAxNbAV0NRJE8dp4vfW6AH1ccryGiFqw/czPK/iN0+MT8wsjAW6WW4w hvjm5UPA1KTwi3ZT8eT5uycuH7QpuNk7LnGGXQ6KaRALFywzkr0A0V0AvFNa+l4wstMaXaB6 dmMXyF0/hfryqyOeu1gAdq4q0/PNC2dPgb/6uoh4eMjN6A5GXcprilhz5DulmsilY21hfSoU S64ODed96pKhprsOxjZiDRsN1QM5MwB+uwVWUNfsX7fIxE0BrwARAQABzSdQZXRlciBFaXNl bnRyYXV0IDxwZXRlckBlaXNlbnRyYXV0Lm9yZz7CwXoEEwEIACQCGwMFCwkIBwMFFQoJCAsF FgIDAQACHgECF4AFAlUUuKQCGQEACgkQoZ8SQ+xBJp8llw//RbGoXnF72FZTlOFsnNyxnWbF vViPCfdAlZl1GGK9OYCvV1dp/956HuhB0wpaGQHiBmQfOPJf/jLOPjXFYm2iEChEycrBChuE j4TSYemMp5BSPILYk9Uwd16kVD/+U6fQfK6H5pOhfBvbM6asMnmpY2wQuvktxHvaGlytFw84 EzFWNZtAZfxkw28w3AhIQkKe9hJanfyDL750RcbyEr8AAHty5IErrvS7tM5vQwIeh5BF26ND CyKPRdZgOgMpcwFfROKBDpAt052CgWIpNdhBdfIKlkCs4/ILxmC3rT/Mb/qZiHcoMMwEu6k+ T7vRAFZZAk62Yrr/U8/vUGKlzRZQoo86fyojCfI0ibCIc0z8rwCVY9P40G9wD9BTCZS/z8Vh jjpBlNnIKw2hM6hbxavKndCJjFFJD08rXrTyrLF/of18xD37vNdYooP9VATB5QjOWFRrscSZ 4a89e+to3m7YVnd4xdXwGp47dYusoax84C8tg1gZrH38ol9dPmnKX6GZrXeS7tH9k8VeUpJ8 HQbRThQRWAT936QpYbLConBmOtmbLmjQOGtiXPo1oK57X/7U/WBja5vWmm2q+Yxtt+3uHGVg DdDU4CJpXo4lX0v2n3QV5EBSW9hjdF3bNfl6GFBb1pPEhqNcMDUc7zkx/2uENdAdk/BnqMgH umip7b0pVfvOwU0EVRS3qQEQAJf6p0P7D+hMYUgCPkvgrcz6OJYsAYdUMUmokfqmkKwK0oJM ew8TNGM53ocKAgQGma5f10rwbZNPlpVPNRX5hwUmwVlcwSut0oE+JfUBH7mpysWvpF05RKIy q9RCoJZrAbXS7Tig56A1QD8IcM00rERZMcCOlI1+q9m4u9AOI+0LyGGSH+VvoyDHD/Jew4R2 TmPEF8Pu7lYiNYK88Q6u0kBkc+Tz3BNlyc6fi3HxnFfp0b75HLXPSTu2SwA/0Q31wHZXwrEU BR9KgSn/qbgy8ydPc97i82fhiFE3cbGexfPrQSMYmDGi+dcQ0s+AMQwC3XyMC0JkHpYUuFkR QdlIvaIhgFUUN2Vr4xF2ADaNTNFc4DYaiPHFAgHZw+3pZWqS4uIiWgJynrEaHw4F3QWU8/JB iyEWDhNq4WBrRA0u914TCCAoFOOKMnRdl8eJrRQKM/5/lXbHFjjlI/LDKhLRFsuQsnJJ3331 RjCzpHPZG5/p5KR1RHiAXa0p/DW5lXyq21hS3kjDlleoHqOxCN/cy0Jgz7qLDq1vZoCl67Sy RAH60c2Xu4may9SVltmot0OzWVHdrfS+85FQGp9580DaeLio7YMFKy2bfEvwQJ/c9xD2QPB+ oSb3V8ueSznXBG5+dyfOsZFRPxceA0wA2rSWZSjxLdKxvyGTj9vsCjaDu13rABEBAAHCwV8E GAEIAAkFAlUUt6kCGwwACgkQoZ8SQ+xBJp+HJhAAxmSTsC5y7p9Zu+nnLpucv/h88oEx985e qWeXzQiwM3pfRZS+PdTH9TyzHK0KOgKoAiubk0vt+BrT91D9d0G5kVQaTctAErGBoMkTaZJT XVEcNphiPzysdSqvprjojMp1y7rG8AP+Xd6m0rE1LRnkRRm8HyI8vdXsuLQPITGWXDLMjaNq AOV3BUnzkgtjMuIYw7SCr+12ZOb5dEKvaG4kjC4kaJ/TLbuBhVANcXkC90yp0AOZLs/cB1Dj OAXno/RUUruJ3r27a+pFv768UAi9QWcdw58yPxreMNMLqAgsS9oTHwHfGNWcB2dJ4UW+GMLJ hTf9TjQ2f+N/sIx5XMQ9pYw6CAJMK29qPx6/ZayrPxf22EXf0D3zTwIEZgwfSkynFVwV25L7 awQq60fifdMYheSxq7GbhpsixmcD+e161cCmLIt75YDt5bQ0B1yf7EmxG8n7pGZAOM6LoNsU fkSldba5XVwh8LuN5mK0nQBELGW6Os4TDq4REggLpfcvFC215zpuo0iCGnmE/Bns4nowqUSP u4tkWL+nxW4qgv8wo8HJ52jd79EJ8iqfIBoidBfy9AIUiEUApGQzWPu6yWcI8fY0rN5D+tc+ Yw1Zt6Mm+huYJpgCRsTcfzEcahnBn521CWcWvhW1ff3KFileFMtNmnBBhMncmRKHphtTKEpN 3jI= To: pgsql-hackers Organization: 2ndQuadrant Message-ID: Date: Sat, 29 Dec 2018 16:12:39 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------26A2AA2FA2D539D22021A8C1" Content-Language: en-US X-Host-Lookup-Failed: Reverse DNS lookup failed for 64.147.123.25 (deferred) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------26A2AA2FA2D539D22021A8C1 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit initdb and pg_basebackup can use atexit() to register cleanup actions instead of requiring the use of custom exit_nicely() etc. Patches attached. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services --------------26A2AA2FA2D539D22021A8C1 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="0001-pg_basebackup-Use-atexit.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-pg_basebackup-Use-atexit.patch" RnJvbSA2YWRiZjhiZmQ2NzAyNGE5MDJjOGM0Zjc0MmYxNGI5OWI0NDNkMzI2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogU2F0LCAyOSBEZWMgMjAxOCAxMzoyMTo0NyArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMS8yXSBwZ19iYXNlYmFja3VwOiBVc2UgYXRleGl0KCkKCkluc3RlYWQgb2Yg dXNpbmcgb3VyIGN1c3RvbSBkaXNjb25uZWN0X2FuZF9leGl0KCksIGp1c3QgcmVnaXN0ZXIg dGhlCmRlc2lyZWQgY2xlYW51cCB1c2luZyBhdGV4aXQoKSBhbmQgdXNlIHRoZSBzdGFuZGFy ZCBleGl0KCkgdG8gbGVhdmUKdGhlIHByb2dyYW0uCi0tLQogc3JjL2Jpbi9wZ19iYXNlYmFj a3VwL3BnX2Jhc2ViYWNrdXAuYyAgfCAxNDIgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQog c3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX3JlY2VpdmV3YWwuYyAgfCAgNDYgKysrKy0tLS0K IHNyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19yZWN2bG9naWNhbC5jIHwgIDE5ICsrLS0KIDMg ZmlsZXMgY2hhbmdlZCwgMTA2IGluc2VydGlvbnMoKyksIDEwMSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfYmFzZWJhY2t1cC5jIGIvc3Jj L2Jpbi9wZ19iYXNlYmFja3VwL3BnX2Jhc2ViYWNrdXAuYwppbmRleCBlNDMwNGM0YTkwLi44 NjZiNjMyMjhmIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfYmFzZWJh Y2t1cC5jCisrKyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19iYXNlYmFja3VwLmMKQEAg LTEzNiw3ICsxMzYsNiBAQCBzdGF0aWMgUFFFeHBCdWZmZXIgcmVjb3Zlcnljb25mY29udGVu dHMgPSBOVUxMOwogCiAvKiBGdW5jdGlvbiBoZWFkZXJzICovCiBzdGF0aWMgdm9pZCB1c2Fn ZSh2b2lkKTsKLXN0YXRpYyB2b2lkIGRpc2Nvbm5lY3RfYW5kX2V4aXQoaW50IGNvZGUpIHBn X2F0dHJpYnV0ZV9ub3JldHVybigpOwogc3RhdGljIHZvaWQgdmVyaWZ5X2Rpcl9pc19lbXB0 eV9vcl9jcmVhdGUoY2hhciAqZGlybmFtZSwgYm9vbCAqY3JlYXRlZCwgYm9vbCAqZm91bmQp Owogc3RhdGljIHZvaWQgcHJvZ3Jlc3NfcmVwb3J0KGludCB0YWJsZXNwYWNlbnVtLCBjb25z dCBjaGFyICpmaWxlbmFtZSwgYm9vbCBmb3JjZSk7CiAKQEAgLTIxNywyNSArMjE2LDI1IEBA IGNsZWFudXBfZGlyZWN0b3JpZXNfYXRleGl0KHZvaWQpCiB9CiAKIHN0YXRpYyB2b2lkCi1k aXNjb25uZWN0X2FuZF9leGl0KGludCBjb2RlKQorZGlzY29ubmVjdF9hdGV4aXQodm9pZCkK IHsKIAlpZiAoY29ubiAhPSBOVUxMKQogCQlQUWZpbmlzaChjb25uKTsKK30KIAogI2lmbmRl ZiBXSU4zMgotCi0JLyoKLQkgKiBPbiB3aW5kb3dzLCBvdXIgYmFja2dyb3VuZCB0aHJlYWQg ZGllcyBhbG9uZyB3aXRoIHRoZSBwcm9jZXNzLiBCdXQgb24KLQkgKiBVbml4LCBpZiB3ZSBo YXZlIHN0YXJ0ZWQgYSBzdWJwcm9jZXNzLCB3ZSB3YW50IHRvIGtpbGwgaXQgb2ZmIHNvIGl0 Ci0JICogZG9lc24ndCByZW1haW4gcnVubmluZyB0cnlpbmcgdG8gc3RyZWFtIGRhdGEuCi0J ICovCisvKgorICogT24gd2luZG93cywgb3VyIGJhY2tncm91bmQgdGhyZWFkIGRpZXMgYWxv bmcgd2l0aCB0aGUgcHJvY2Vzcy4gQnV0IG9uCisgKiBVbml4LCBpZiB3ZSBoYXZlIHN0YXJ0 ZWQgYSBzdWJwcm9jZXNzLCB3ZSB3YW50IHRvIGtpbGwgaXQgb2ZmIHNvIGl0CisgKiBkb2Vz bid0IHJlbWFpbiBydW5uaW5nIHRyeWluZyB0byBzdHJlYW0gZGF0YS4KKyAqLworc3RhdGlj IHZvaWQKK2tpbGxfYmdjaGlsZF9hdGV4aXQodm9pZCkKK3sKIAlpZiAoYmdjaGlsZCA+IDAp CiAJCWtpbGwoYmdjaGlsZCwgU0lHVEVSTSk7Ci0jZW5kaWYKLQotCWV4aXQoY29kZSk7CiB9 Ci0KKyNlbmRpZgogCiAvKgogICogU3BsaXQgYXJndW1lbnQgaW50byBvbGRfZGlyIGFuZCBu ZXdfZGlyIGFuZCBhcHBlbmQgdG8gdGFibGVzcGFjZSBtYXBwaW5nCkBAIC01NjIsNyArNTYx LDcgQEAgU3RhcnRMb2dTdHJlYW1lcihjaGFyICpzdGFydHBvcywgdWludDMyIHRpbWVsaW5l LCBjaGFyICpzeXNpZGVudGlmaWVyKQogCQlmcHJpbnRmKHN0ZGVyciwKIAkJCQlfKCIlczog Y291bGQgbm90IHBhcnNlIHdyaXRlLWFoZWFkIGxvZyBsb2NhdGlvbiBcIiVzXCJcbiIpLAog CQkJCXByb2duYW1lLCBzdGFydHBvcyk7Ci0JCWRpc2Nvbm5lY3RfYW5kX2V4aXQoMSk7CisJ CWV4aXQoMSk7CiAJfQogCXBhcmFtLT5zdGFydHB0ciA9ICgodWludDY0KSBoaSkgPDwgMzIg fCBsbzsKIAkvKiBSb3VuZCBvZmYgdG8gZXZlbiBzZWdtZW50IHBvc2l0aW9uICovCkBAIC01 NzUsNyArNTc0LDcgQEAgU3RhcnRMb2dTdHJlYW1lcihjaGFyICpzdGFydHBvcywgdWludDMy IHRpbWVsaW5lLCBjaGFyICpzeXNpZGVudGlmaWVyKQogCQlmcHJpbnRmKHN0ZGVyciwKIAkJ CQlfKCIlczogY291bGQgbm90IGNyZWF0ZSBwaXBlIGZvciBiYWNrZ3JvdW5kIHByb2Nlc3M6 ICVzXG4iKSwKIAkJCQlwcm9nbmFtZSwgc3RyZXJyb3IoZXJybm8pKTsKLQkJZGlzY29ubmVj dF9hbmRfZXhpdCgxKTsKKwkJZXhpdCgxKTsKIAl9CiAjZW5kaWYKIApAQCAtNjA0LDcgKzYw Myw3IEBAIFN0YXJ0TG9nU3RyZWFtZXIoY2hhciAqc3RhcnRwb3MsIHVpbnQzMiB0aW1lbGlu ZSwgY2hhciAqc3lzaWRlbnRpZmllcikKIAl7CiAJCWlmICghQ3JlYXRlUmVwbGljYXRpb25T bG90KHBhcmFtLT5iZ2Nvbm4sIHJlcGxpY2F0aW9uX3Nsb3QsIE5VTEwsCiAJCQkJCQkJCSAg IHRlbXBfcmVwbGljYXRpb25fc2xvdCwgdHJ1ZSwgdHJ1ZSwgZmFsc2UpKQotCQkJZGlzY29u bmVjdF9hbmRfZXhpdCgxKTsKKwkJCWV4aXQoMSk7CiAKIAkJaWYgKHZlcmJvc2UpCiAJCXsK QEAgLTYzNSw3ICs2MzQsNyBAQCBTdGFydExvZ1N0cmVhbWVyKGNoYXIgKnN0YXJ0cG9zLCB1 aW50MzIgdGltZWxpbmUsIGNoYXIgKnN5c2lkZW50aWZpZXIpCiAJCQlmcHJpbnRmKHN0ZGVy ciwKIAkJCQkJXygiJXM6IGNvdWxkIG5vdCBjcmVhdGUgZGlyZWN0b3J5IFwiJXNcIjogJXNc biIpLAogCQkJCQlwcm9nbmFtZSwgc3RhdHVzZGlyLCBzdHJlcnJvcihlcnJubykpOwotCQkJ ZGlzY29ubmVjdF9hbmRfZXhpdCgxKTsKKwkJCWV4aXQoMSk7CiAJCX0KIAl9CiAKQEAgLTY1 NCwxOSArNjUzLDIwIEBAIFN0YXJ0TG9nU3RyZWFtZXIoY2hhciAqc3RhcnRwb3MsIHVpbnQz MiB0aW1lbGluZSwgY2hhciAqc3lzaWRlbnRpZmllcikKIAl7CiAJCWZwcmludGYoc3RkZXJy LCBfKCIlczogY291bGQgbm90IGNyZWF0ZSBiYWNrZ3JvdW5kIHByb2Nlc3M6ICVzXG4iKSwK IAkJCQlwcm9nbmFtZSwgc3RyZXJyb3IoZXJybm8pKTsKLQkJZGlzY29ubmVjdF9hbmRfZXhp dCgxKTsKKwkJZXhpdCgxKTsKIAl9CiAKIAkvKgogCSAqIEVsc2Ugd2UgYXJlIGluIHRoZSBw YXJlbnQgcHJvY2VzcyBhbmQgYWxsIGlzIHdlbGwuCiAJICovCisJYXRleGl0KGtpbGxfYmdj aGlsZF9hdGV4aXQpOwogI2Vsc2UJCQkJCQkJLyogV0lOMzIgKi8KIAliZ2NoaWxkID0gX2Jl Z2ludGhyZWFkZXgoTlVMTCwgMCwgKHZvaWQgKikgTG9nU3RyZWFtZXJNYWluLCBwYXJhbSwg MCwgTlVMTCk7CiAJaWYgKGJnY2hpbGQgPT0gMCkKIAl7CiAJCWZwcmludGYoc3RkZXJyLCBf KCIlczogY291bGQgbm90IGNyZWF0ZSBiYWNrZ3JvdW5kIHRocmVhZDogJXNcbiIpLAogCQkJ CXByb2duYW1lLCBzdHJlcnJvcihlcnJubykpOwotCQlkaXNjb25uZWN0X2FuZF9leGl0KDEp OworCQlleGl0KDEpOwogCX0KICNlbmRpZgogfQpAQCAtNjkxLDcgKzY5MSw3IEBAIHZlcmlm eV9kaXJfaXNfZW1wdHlfb3JfY3JlYXRlKGNoYXIgKmRpcm5hbWUsIGJvb2wgKmNyZWF0ZWQs IGJvb2wgKmZvdW5kKQogCQkJCWZwcmludGYoc3RkZXJyLAogCQkJCQkJXygiJXM6IGNvdWxk IG5vdCBjcmVhdGUgZGlyZWN0b3J5IFwiJXNcIjogJXNcbiIpLAogCQkJCQkJcHJvZ25hbWUs IGRpcm5hbWUsIHN0cmVycm9yKGVycm5vKSk7Ci0JCQkJZGlzY29ubmVjdF9hbmRfZXhpdCgx KTsKKwkJCQlleGl0KDEpOwogCQkJfQogCQkJaWYgKGNyZWF0ZWQpCiAJCQkJKmNyZWF0ZWQg PSB0cnVlOwpAQCAtNzE0LDcgKzcxNCw3IEBAIHZlcmlmeV9kaXJfaXNfZW1wdHlfb3JfY3Jl YXRlKGNoYXIgKmRpcm5hbWUsIGJvb2wgKmNyZWF0ZWQsIGJvb2wgKmZvdW5kKQogCQkJZnBy aW50ZihzdGRlcnIsCiAJCQkJCV8oIiVzOiBkaXJlY3RvcnkgXCIlc1wiIGV4aXN0cyBidXQg aXMgbm90IGVtcHR5XG4iKSwKIAkJCQkJcHJvZ25hbWUsIGRpcm5hbWUpOwotCQkJZGlzY29u bmVjdF9hbmRfZXhpdCgxKTsKKwkJCWV4aXQoMSk7CiAJCWNhc2UgLTE6CiAKIAkJCS8qCkBA IC03MjIsNyArNzIyLDcgQEAgdmVyaWZ5X2Rpcl9pc19lbXB0eV9vcl9jcmVhdGUoY2hhciAq ZGlybmFtZSwgYm9vbCAqY3JlYXRlZCwgYm9vbCAqZm91bmQpCiAJCQkgKi8KIAkJCWZwcmlu dGYoc3RkZXJyLCBfKCIlczogY291bGQgbm90IGFjY2VzcyBkaXJlY3RvcnkgXCIlc1wiOiAl c1xuIiksCiAJCQkJCXByb2duYW1lLCBkaXJuYW1lLCBzdHJlcnJvcihlcnJubykpOwotCQkJ ZGlzY29ubmVjdF9hbmRfZXhpdCgxKTsKKwkJCWV4aXQoMSk7CiAJfQogfQogCkBAIC05MzMs NyArOTMzLDcgQEAgd3JpdGVUYXJEYXRhKAogCQkJZnByaW50ZihzdGRlcnIsCiAJCQkJCV8o IiVzOiBjb3VsZCBub3Qgd3JpdGUgdG8gY29tcHJlc3NlZCBmaWxlIFwiJXNcIjogJXNcbiIp LAogCQkJCQlwcm9nbmFtZSwgY3VycmVudF9maWxlLCBnZXRfZ3pfZXJyb3IoenRhcmZpbGUp KTsKLQkJCWRpc2Nvbm5lY3RfYW5kX2V4aXQoMSk7CisJCQlleGl0KDEpOwogCQl9CiAJfQog CWVsc2UKQEAgLTk0Myw3ICs5NDMsNyBAQCB3cml0ZVRhckRhdGEoCiAJCXsKIAkJCWZwcmlu dGYoc3RkZXJyLCBfKCIlczogY291bGQgbm90IHdyaXRlIHRvIGZpbGUgXCIlc1wiOiAlc1xu IiksCiAJCQkJCXByb2duYW1lLCBjdXJyZW50X2ZpbGUsIHN0cmVycm9yKGVycm5vKSk7Ci0J CQlkaXNjb25uZWN0X2FuZF9leGl0KDEpOworCQkJZXhpdCgxKTsKIAkJfQogCX0KIH0KQEAg LTEwMDUsNyArMTAwNSw3IEBAIFJlY2VpdmVUYXJGaWxlKFBHY29ubiAqY29ubiwgUEdyZXN1 bHQgKnJlcywgaW50IHJvd251bSkKIAkJCQkJZnByaW50ZihzdGRlcnIsCiAJCQkJCQkJXygi JXM6IGNvdWxkIG5vdCBzZXQgY29tcHJlc3Npb24gbGV2ZWwgJWQ6ICVzXG4iKSwKIAkJCQkJ CQlwcm9nbmFtZSwgY29tcHJlc3NsZXZlbCwgZ2V0X2d6X2Vycm9yKHp0YXJmaWxlKSk7Ci0J CQkJCWRpc2Nvbm5lY3RfYW5kX2V4aXQoMSk7CisJCQkJCWV4aXQoMSk7CiAJCQkJfQogCQkJ fQogCQkJZWxzZQpAQCAtMTAyNiw3ICsxMDI2LDcgQEAgUmVjZWl2ZVRhckZpbGUoUEdjb25u ICpjb25uLCBQR3Jlc3VsdCAqcmVzLCBpbnQgcm93bnVtKQogCQkJCQlmcHJpbnRmKHN0ZGVy ciwKIAkJCQkJCQlfKCIlczogY291bGQgbm90IHNldCBjb21wcmVzc2lvbiBsZXZlbCAlZDog JXNcbiIpLAogCQkJCQkJCXByb2duYW1lLCBjb21wcmVzc2xldmVsLCBnZXRfZ3pfZXJyb3Io enRhcmZpbGUpKTsKLQkJCQkJZGlzY29ubmVjdF9hbmRfZXhpdCgxKTsKKwkJCQkJZXhpdCgx KTsKIAkJCQl9CiAJCQl9CiAJCQllbHNlCkBAIC0xMDU0LDcgKzEwNTQsNyBAQCBSZWNlaXZl VGFyRmlsZShQR2Nvbm4gKmNvbm4sIFBHcmVzdWx0ICpyZXMsIGludCByb3dudW0pCiAJCQkJ ZnByaW50ZihzdGRlcnIsCiAJCQkJCQlfKCIlczogY291bGQgbm90IHNldCBjb21wcmVzc2lv biBsZXZlbCAlZDogJXNcbiIpLAogCQkJCQkJcHJvZ25hbWUsIGNvbXByZXNzbGV2ZWwsIGdl dF9nel9lcnJvcih6dGFyZmlsZSkpOwotCQkJCWRpc2Nvbm5lY3RfYW5kX2V4aXQoMSk7CisJ CQkJZXhpdCgxKTsKIAkJCX0KIAkJfQogCQllbHNlCkBAIC0xMDc1LDcgKzEwNzUsNyBAQCBS ZWNlaXZlVGFyRmlsZShQR2Nvbm4gKmNvbm4sIFBHcmVzdWx0ICpyZXMsIGludCByb3dudW0p CiAJCQlmcHJpbnRmKHN0ZGVyciwKIAkJCQkJXygiJXM6IGNvdWxkIG5vdCBjcmVhdGUgY29t cHJlc3NlZCBmaWxlIFwiJXNcIjogJXNcbiIpLAogCQkJCQlwcm9nbmFtZSwgZmlsZW5hbWUs IGdldF9nel9lcnJvcih6dGFyZmlsZSkpOwotCQkJZGlzY29ubmVjdF9hbmRfZXhpdCgxKTsK KwkJCWV4aXQoMSk7CiAJCX0KIAl9CiAJZWxzZQpAQCAtMTA4Niw3ICsxMDg2LDcgQEAgUmVj ZWl2ZVRhckZpbGUoUEdjb25uICpjb25uLCBQR3Jlc3VsdCAqcmVzLCBpbnQgcm93bnVtKQog CQl7CiAJCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IGNvdWxkIG5vdCBjcmVhdGUgZmlsZSBc IiVzXCI6ICVzXG4iKSwKIAkJCQkJcHJvZ25hbWUsIGZpbGVuYW1lLCBzdHJlcnJvcihlcnJu bykpOwotCQkJZGlzY29ubmVjdF9hbmRfZXhpdCgxKTsKKwkJCWV4aXQoMSk7CiAJCX0KIAl9 CiAKQEAgLTEwOTgsNyArMTA5OCw3IEBAIFJlY2VpdmVUYXJGaWxlKFBHY29ubiAqY29ubiwg UEdyZXN1bHQgKnJlcywgaW50IHJvd251bSkKIAl7CiAJCWZwcmludGYoc3RkZXJyLCBfKCIl czogY291bGQgbm90IGdldCBDT1BZIGRhdGEgc3RyZWFtOiAlcyIpLAogCQkJCXByb2duYW1l LCBQUWVycm9yTWVzc2FnZShjb25uKSk7Ci0JCWRpc2Nvbm5lY3RfYW5kX2V4aXQoMSk7CisJ CWV4aXQoMSk7CiAJfQogCiAJd2hpbGUgKDEpCkBAIC0xMTY3LDcgKzExNjcsNyBAQCBSZWNl aXZlVGFyRmlsZShQR2Nvbm4gKmNvbm4sIFBHcmVzdWx0ICpyZXMsIGludCByb3dudW0pCiAJ CQkJCWZwcmludGYoc3RkZXJyLAogCQkJCQkJCV8oIiVzOiBjb3VsZCBub3QgY2xvc2UgY29t cHJlc3NlZCBmaWxlIFwiJXNcIjogJXNcbiIpLAogCQkJCQkJCXByb2duYW1lLCBmaWxlbmFt ZSwgZ2V0X2d6X2Vycm9yKHp0YXJmaWxlKSk7Ci0JCQkJCWRpc2Nvbm5lY3RfYW5kX2V4aXQo MSk7CisJCQkJCWV4aXQoMSk7CiAJCQkJfQogCQkJfQogCQkJZWxzZQpAQCAtMTE4MCw3ICsx MTgwLDcgQEAgUmVjZWl2ZVRhckZpbGUoUEdjb25uICpjb25uLCBQR3Jlc3VsdCAqcmVzLCBp bnQgcm93bnVtKQogCQkJCQkJZnByaW50ZihzdGRlcnIsCiAJCQkJCQkJCV8oIiVzOiBjb3Vs ZCBub3QgY2xvc2UgZmlsZSBcIiVzXCI6ICVzXG4iKSwKIAkJCQkJCQkJcHJvZ25hbWUsIGZp bGVuYW1lLCBzdHJlcnJvcihlcnJubykpOwotCQkJCQkJZGlzY29ubmVjdF9hbmRfZXhpdCgx KTsKKwkJCQkJCWV4aXQoMSk7CiAJCQkJCX0KIAkJCQl9CiAJCQl9CkBAIC0xMTkxLDcgKzEx OTEsNyBAQCBSZWNlaXZlVGFyRmlsZShQR2Nvbm4gKmNvbm4sIFBHcmVzdWx0ICpyZXMsIGlu dCByb3dudW0pCiAJCXsKIAkJCWZwcmludGYoc3RkZXJyLCBfKCIlczogY291bGQgbm90IHJl YWQgQ09QWSBkYXRhOiAlcyIpLAogCQkJCQlwcm9nbmFtZSwgUFFlcnJvck1lc3NhZ2UoY29u bikpOwotCQkJZGlzY29ubmVjdF9hbmRfZXhpdCgxKTsKKwkJCWV4aXQoMSk7CiAJCX0KIAog CQlpZiAoIXdyaXRlcmVjb3Zlcnljb25mIHx8ICFiYXNldGFibGVzcGFjZSkKQEAgLTE0Mjcs NyArMTQyNyw3IEBAIFJlY2VpdmVBbmRVbnBhY2tUYXJGaWxlKFBHY29ubiAqY29ubiwgUEdy ZXN1bHQgKnJlcywgaW50IHJvd251bSkKIAl7CiAJCWZwcmludGYoc3RkZXJyLCBfKCIlczog Y291bGQgbm90IGdldCBDT1BZIGRhdGEgc3RyZWFtOiAlcyIpLAogCQkJCXByb2duYW1lLCBQ UWVycm9yTWVzc2FnZShjb25uKSk7Ci0JCWRpc2Nvbm5lY3RfYW5kX2V4aXQoMSk7CisJCWV4 aXQoMSk7CiAJfQogCiAJd2hpbGUgKDEpCkBAIC0xNDU2LDcgKzE0NTYsNyBAQCBSZWNlaXZl QW5kVW5wYWNrVGFyRmlsZShQR2Nvbm4gKmNvbm4sIFBHcmVzdWx0ICpyZXMsIGludCByb3du dW0pCiAJCXsKIAkJCWZwcmludGYoc3RkZXJyLCBfKCIlczogY291bGQgbm90IHJlYWQgQ09Q WSBkYXRhOiAlcyIpLAogCQkJCQlwcm9nbmFtZSwgUFFlcnJvck1lc3NhZ2UoY29ubikpOwot CQkJZGlzY29ubmVjdF9hbmRfZXhpdCgxKTsKKwkJCWV4aXQoMSk7CiAJCX0KIAogCQlpZiAo ZmlsZSA9PSBOVUxMKQpAQCAtMTQ3MCw3ICsxNDcwLDcgQEAgUmVjZWl2ZUFuZFVucGFja1Rh ckZpbGUoUEdjb25uICpjb25uLCBQR3Jlc3VsdCAqcmVzLCBpbnQgcm93bnVtKQogCQkJewog CQkJCWZwcmludGYoc3RkZXJyLCBfKCIlczogaW52YWxpZCB0YXIgYmxvY2sgaGVhZGVyIHNp emU6ICVkXG4iKSwKIAkJCQkJCXByb2duYW1lLCByKTsKLQkJCQlkaXNjb25uZWN0X2FuZF9l eGl0KDEpOworCQkJCWV4aXQoMSk7CiAJCQl9CiAJCQl0b3RhbGRvbmUgKz0gNTEyOwogCkBA IC0xNTIwLDcgKzE1MjAsNyBAQCBSZWNlaXZlQW5kVW5wYWNrVGFyRmlsZShQR2Nvbm4gKmNv bm4sIFBHcmVzdWx0ICpyZXMsIGludCByb3dudW0pCiAJCQkJCQkJZnByaW50ZihzdGRlcnIs CiAJCQkJCQkJCQlfKCIlczogY291bGQgbm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIlc1wiOiAl c1xuIiksCiAJCQkJCQkJCQlwcm9nbmFtZSwgZmlsZW5hbWUsIHN0cmVycm9yKGVycm5vKSk7 Ci0JCQkJCQkJZGlzY29ubmVjdF9hbmRfZXhpdCgxKTsKKwkJCQkJCQlleGl0KDEpOwogCQkJ CQkJfQogCQkJCQl9CiAjaWZuZGVmIFdJTjMyCkBAIC0xNTUzLDcgKzE1NTMsNyBAQCBSZWNl aXZlQW5kVW5wYWNrVGFyRmlsZShQR2Nvbm4gKmNvbm4sIFBHcmVzdWx0ICpyZXMsIGludCBy b3dudW0pCiAJCQkJCQkJCV8oIiVzOiBjb3VsZCBub3QgY3JlYXRlIHN5bWJvbGljIGxpbmsg ZnJvbSBcIiVzXCIgdG8gXCIlc1wiOiAlc1xuIiksCiAJCQkJCQkJCXByb2duYW1lLCBmaWxl bmFtZSwgbWFwcGVkX3RibHNwY19wYXRoLAogCQkJCQkJCQlzdHJlcnJvcihlcnJubykpOwot CQkJCQkJZGlzY29ubmVjdF9hbmRfZXhpdCgxKTsKKwkJCQkJCWV4aXQoMSk7CiAJCQkJCX0K IAkJCQl9CiAJCQkJZWxzZQpAQCAtMTU2MSw3ICsxNTYxLDcgQEAgUmVjZWl2ZUFuZFVucGFj a1RhckZpbGUoUEdjb25uICpjb25uLCBQR3Jlc3VsdCAqcmVzLCBpbnQgcm93bnVtKQogCQkJ CQlmcHJpbnRmKHN0ZGVyciwKIAkJCQkJCQlfKCIlczogdW5yZWNvZ25pemVkIGxpbmsgaW5k aWNhdG9yIFwiJWNcIlxuIiksCiAJCQkJCQkJcHJvZ25hbWUsIGNvcHlidWZbMTU2XSk7Ci0J CQkJCWRpc2Nvbm5lY3RfYW5kX2V4aXQoMSk7CisJCQkJCWV4aXQoMSk7CiAJCQkJfQogCQkJ CWNvbnRpbnVlOwkJLyogZGlyZWN0b3J5IG9yIGxpbmsgaGFuZGxlZCAqLwogCQkJfQpAQCAt MTU3NCw3ICsxNTc0LDcgQEAgUmVjZWl2ZUFuZFVucGFja1RhckZpbGUoUEdjb25uICpjb25u LCBQR3Jlc3VsdCAqcmVzLCBpbnQgcm93bnVtKQogCQkJewogCQkJCWZwcmludGYoc3RkZXJy LCBfKCIlczogY291bGQgbm90IGNyZWF0ZSBmaWxlIFwiJXNcIjogJXNcbiIpLAogCQkJCQkJ cHJvZ25hbWUsIGZpbGVuYW1lLCBzdHJlcnJvcihlcnJubykpOwotCQkJCWRpc2Nvbm5lY3Rf YW5kX2V4aXQoMSk7CisJCQkJZXhpdCgxKTsKIAkJCX0KIAogI2lmbmRlZiBXSU4zMgpAQCAt MTYxNCw3ICsxNjE0LDcgQEAgUmVjZWl2ZUFuZFVucGFja1RhckZpbGUoUEdjb25uICpjb25u LCBQR3Jlc3VsdCAqcmVzLCBpbnQgcm93bnVtKQogCQkJewogCQkJCWZwcmludGYoc3RkZXJy LCBfKCIlczogY291bGQgbm90IHdyaXRlIHRvIGZpbGUgXCIlc1wiOiAlc1xuIiksCiAJCQkJ CQlwcm9nbmFtZSwgZmlsZW5hbWUsIHN0cmVycm9yKGVycm5vKSk7Ci0JCQkJZGlzY29ubmVj dF9hbmRfZXhpdCgxKTsKKwkJCQlleGl0KDEpOwogCQkJfQogCQkJdG90YWxkb25lICs9IHI7 CiAJCQlwcm9ncmVzc19yZXBvcnQocm93bnVtLCBmaWxlbmFtZSwgZmFsc2UpOwpAQCAtMTY0 MCw3ICsxNjQwLDcgQEAgUmVjZWl2ZUFuZFVucGFja1RhckZpbGUoUEdjb25uICpjb25uLCBQ R3Jlc3VsdCAqcmVzLCBpbnQgcm93bnVtKQogCQlmcHJpbnRmKHN0ZGVyciwKIAkJCQlfKCIl czogQ09QWSBzdHJlYW0gZW5kZWQgYmVmb3JlIGxhc3QgZmlsZSB3YXMgZmluaXNoZWRcbiIp LAogCQkJCXByb2duYW1lKTsKLQkJZGlzY29ubmVjdF9hbmRfZXhpdCgxKTsKKwkJZXhpdCgx KTsKIAl9CiAKIAlpZiAoY29weWJ1ZiAhPSBOVUxMKQpAQCAtMTY4NywxNCArMTY4NywxNCBA QCBHZW5lcmF0ZVJlY292ZXJ5Q29uZihQR2Nvbm4gKmNvbm4pCiAJaWYgKCFyZWNvdmVyeWNv bmZjb250ZW50cykKIAl7CiAJCWZwcmludGYoc3RkZXJyLCBfKCIlczogb3V0IG9mIG1lbW9y eVxuIiksIHByb2duYW1lKTsKLQkJZGlzY29ubmVjdF9hbmRfZXhpdCgxKTsKKwkJZXhpdCgx KTsKIAl9CiAKIAljb25uT3B0aW9ucyA9IFBRY29ubmluZm8oY29ubik7CiAJaWYgKGNvbm5P cHRpb25zID09IE5VTEwpCiAJewogCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IG91dCBvZiBt ZW1vcnlcbiIpLCBwcm9nbmFtZSk7Ci0JCWRpc2Nvbm5lY3RfYW5kX2V4aXQoMSk7CisJCWV4 aXQoMSk7CiAJfQogCiAJaW5pdFBRRXhwQnVmZmVyKCZjb25uaW5mb19idWYpOwpAQCAtMTc0 NSw3ICsxNzQ1LDcgQEAgR2VuZXJhdGVSZWNvdmVyeUNvbmYoUEdjb25uICpjb25uKQogCQlQ UUV4cEJ1ZmZlckRhdGFCcm9rZW4oY29ubmluZm9fYnVmKSkKIAl7CiAJCWZwcmludGYoc3Rk ZXJyLCBfKCIlczogb3V0IG9mIG1lbW9yeVxuIiksIHByb2duYW1lKTsKLQkJZGlzY29ubmVj dF9hbmRfZXhpdCgxKTsKKwkJZXhpdCgxKTsKIAl9CiAKIAl0ZXJtUFFFeHBCdWZmZXIoJmNv bm5pbmZvX2J1Zik7CkBAIC0xNzcxLDcgKzE3NzEsNyBAQCBXcml0ZVJlY292ZXJ5Q29uZih2 b2lkKQogCWlmIChjZiA9PSBOVUxMKQogCXsKIAkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBj b3VsZCBub3Qgb3BlbiBmaWxlIFwiJXNcIjogJXNcbiIpLCBwcm9nbmFtZSwgZmlsZW5hbWUs IHN0cmVycm9yKGVycm5vKSk7Ci0JCWRpc2Nvbm5lY3RfYW5kX2V4aXQoMSk7CisJCWV4aXQo MSk7CiAJfQogCiAJaWYgKGZ3cml0ZShyZWNvdmVyeWNvbmZjb250ZW50cy0+ZGF0YSwgcmVj b3Zlcnljb25mY29udGVudHMtPmxlbiwgMSwgY2YpICE9IDEpCkBAIC0xNzc5LDcgKzE3Nzks NyBAQCBXcml0ZVJlY292ZXJ5Q29uZih2b2lkKQogCQlmcHJpbnRmKHN0ZGVyciwKIAkJCQlf KCIlczogY291bGQgbm90IHdyaXRlIHRvIGZpbGUgXCIlc1wiOiAlc1xuIiksCiAJCQkJcHJv Z25hbWUsIGZpbGVuYW1lLCBzdHJlcnJvcihlcnJubykpOwotCQlkaXNjb25uZWN0X2FuZF9l eGl0KDEpOworCQlleGl0KDEpOwogCX0KIAogCWZjbG9zZShjZik7CkBAIC0xNzg5LDcgKzE3 ODksNyBAQCBXcml0ZVJlY292ZXJ5Q29uZih2b2lkKQogCWlmIChjZiA9PSBOVUxMKQogCXsK IAkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBjb3VsZCBub3QgY3JlYXRlIGZpbGUgXCIlc1wi OiAlc1xuIiksIHByb2duYW1lLCBmaWxlbmFtZSwgc3RyZXJyb3IoZXJybm8pKTsKLQkJZGlz Y29ubmVjdF9hbmRfZXhpdCgxKTsKKwkJZXhpdCgxKTsKIAl9CiAKIAlmY2xvc2UoY2YpOwpA QCAtMTgzMCw3ICsxODMwLDcgQEAgQmFzZUJhY2t1cCh2b2lkKQogCiAJCWZwcmludGYoc3Rk ZXJyLCBfKCIlczogaW5jb21wYXRpYmxlIHNlcnZlciB2ZXJzaW9uICVzXG4iKSwKIAkJCQlw cm9nbmFtZSwgc2VydmVydmVyID8gc2VydmVydmVyIDogIid1bmtub3duJyIpOwotCQlkaXNj b25uZWN0X2FuZF9leGl0KDEpOworCQlleGl0KDEpOwogCX0KIAogCS8qCkBAIC0xODQ0LDcg KzE4NDQsNyBAQCBCYXNlQmFja3VwKHZvaWQpCiAJCSAqIGJ1dCBhZGQgYSBoaW50IGFib3V0 IHVzaW5nIC1YIG5vbmUuCiAJCSAqLwogCQlmcHJpbnRmKHN0ZGVyciwgXygiSElOVDogdXNl IC1YIG5vbmUgb3IgLVggZmV0Y2ggdG8gZGlzYWJsZSBsb2cgc3RyZWFtaW5nXG4iKSk7Ci0J CWRpc2Nvbm5lY3RfYW5kX2V4aXQoMSk7CisJCWV4aXQoMSk7CiAJfQogCiAJLyoKQEAgLTE4 NTcsNyArMTg1Nyw3IEBAIEJhc2VCYWNrdXAodm9pZCkKIAkgKiBSdW4gSURFTlRJRllfU1lT VEVNIHNvIHdlIGNhbiBnZXQgdGhlIHRpbWVsaW5lCiAJICovCiAJaWYgKCFSdW5JZGVudGlm eVN5c3RlbShjb25uLCAmc3lzaWRlbnRpZmllciwgJmxhdGVzdHRsaSwgTlVMTCwgTlVMTCkp Ci0JCWRpc2Nvbm5lY3RfYW5kX2V4aXQoMSk7CisJCWV4aXQoMSk7CiAKIAkvKgogCSAqIFN0 YXJ0IHRoZSBhY3R1YWwgYmFja3VwCkBAIC0xODk2LDcgKzE4OTYsNyBAQCBCYXNlQmFja3Vw KHZvaWQpCiAJewogCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IGNvdWxkIG5vdCBzZW5kIHJl cGxpY2F0aW9uIGNvbW1hbmQgXCIlc1wiOiAlcyIpLAogCQkJCXByb2duYW1lLCAiQkFTRV9C QUNLVVAiLCBQUWVycm9yTWVzc2FnZShjb25uKSk7Ci0JCWRpc2Nvbm5lY3RfYW5kX2V4aXQo MSk7CisJCWV4aXQoMSk7CiAJfQogCiAJLyoKQEAgLTE5MDcsMTQgKzE5MDcsMTQgQEAgQmFz ZUJhY2t1cCh2b2lkKQogCXsKIAkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBjb3VsZCBub3Qg aW5pdGlhdGUgYmFzZSBiYWNrdXA6ICVzIiksCiAJCQkJcHJvZ25hbWUsIFBRZXJyb3JNZXNz YWdlKGNvbm4pKTsKLQkJZGlzY29ubmVjdF9hbmRfZXhpdCgxKTsKKwkJZXhpdCgxKTsKIAl9 CiAJaWYgKFBRbnR1cGxlcyhyZXMpICE9IDEpCiAJewogCQlmcHJpbnRmKHN0ZGVyciwKIAkJ CQlfKCIlczogc2VydmVyIHJldHVybmVkIHVuZXhwZWN0ZWQgcmVzcG9uc2UgdG8gQkFTRV9C QUNLVVAgY29tbWFuZDsgZ290ICVkIHJvd3MgYW5kICVkIGZpZWxkcywgZXhwZWN0ZWQgJWQg cm93cyBhbmQgJWQgZmllbGRzXG4iKSwKIAkJCQlwcm9nbmFtZSwgUFFudHVwbGVzKHJlcyks IFBRbmZpZWxkcyhyZXMpLCAxLCAyKTsKLQkJZGlzY29ubmVjdF9hbmRfZXhpdCgxKTsKKwkJ ZXhpdCgxKTsKIAl9CiAKIAlzdHJsY3B5KHhsb2dzdGFydCwgUFFnZXR2YWx1ZShyZXMsIDAs IDApLCBzaXplb2YoeGxvZ3N0YXJ0KSk7CkBAIC0xOTQ2LDEyICsxOTQ2LDEyIEBAIEJhc2VC YWNrdXAodm9pZCkKIAl7CiAJCWZwcmludGYoc3RkZXJyLCBfKCIlczogY291bGQgbm90IGdl dCBiYWNrdXAgaGVhZGVyOiAlcyIpLAogCQkJCXByb2duYW1lLCBQUWVycm9yTWVzc2FnZShj b25uKSk7Ci0JCWRpc2Nvbm5lY3RfYW5kX2V4aXQoMSk7CisJCWV4aXQoMSk7CiAJfQogCWlm IChQUW50dXBsZXMocmVzKSA8IDEpCiAJewogCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IG5v IGRhdGEgcmV0dXJuZWQgZnJvbSBzZXJ2ZXJcbiIpLCBwcm9nbmFtZSk7Ci0JCWRpc2Nvbm5l Y3RfYW5kX2V4aXQoMSk7CisJCWV4aXQoMSk7CiAJfQogCiAJLyoKQEAgLTE5ODQsNyArMTk4 NCw3IEBAIEJhc2VCYWNrdXAodm9pZCkKIAkJZnByaW50ZihzdGRlcnIsCiAJCQkJXygiJXM6 IGNhbiBvbmx5IHdyaXRlIHNpbmdsZSB0YWJsZXNwYWNlIHRvIHN0ZG91dCwgZGF0YWJhc2Ug aGFzICVkXG4iKSwKIAkJCQlwcm9nbmFtZSwgUFFudHVwbGVzKHJlcykpOwotCQlkaXNjb25u ZWN0X2FuZF9leGl0KDEpOworCQlleGl0KDEpOwogCX0KIAogCS8qCkBAIC0yMDI4LDE0ICsy MDI4LDE0IEBAIEJhc2VCYWNrdXAodm9pZCkKIAkJZnByaW50ZihzdGRlcnIsCiAJCQkJXygi JXM6IGNvdWxkIG5vdCBnZXQgd3JpdGUtYWhlYWQgbG9nIGVuZCBwb3NpdGlvbiBmcm9tIHNl cnZlcjogJXMiKSwKIAkJCQlwcm9nbmFtZSwgUFFlcnJvck1lc3NhZ2UoY29ubikpOwotCQlk aXNjb25uZWN0X2FuZF9leGl0KDEpOworCQlleGl0KDEpOwogCX0KIAlpZiAoUFFudHVwbGVz KHJlcykgIT0gMSkKIAl7CiAJCWZwcmludGYoc3RkZXJyLAogCQkJCV8oIiVzOiBubyB3cml0 ZS1haGVhZCBsb2cgZW5kIHBvc2l0aW9uIHJldHVybmVkIGZyb20gc2VydmVyXG4iKSwKIAkJ CQlwcm9nbmFtZSk7Ci0JCWRpc2Nvbm5lY3RfYW5kX2V4aXQoMSk7CisJCWV4aXQoMSk7CiAJ fQogCXN0cmxjcHkoeGxvZ2VuZCwgUFFnZXR2YWx1ZShyZXMsIDAsIDApLCBzaXplb2YoeGxv Z2VuZCkpOwogCWlmICh2ZXJib3NlICYmIGluY2x1ZGV3YWwgIT0gTk9fV0FMKQpAQCAtMjA1 OSw3ICsyMDU5LDcgQEAgQmFzZUJhY2t1cCh2b2lkKQogCQkJZnByaW50ZihzdGRlcnIsIF8o IiVzOiBmaW5hbCByZWNlaXZlIGZhaWxlZDogJXMiKSwKIAkJCQkJcHJvZ25hbWUsIFBRZXJy b3JNZXNzYWdlKGNvbm4pKTsKIAkJfQotCQlkaXNjb25uZWN0X2FuZF9leGl0KDEpOworCQll eGl0KDEpOwogCX0KIAogCWlmIChiZ2NoaWxkID4gMCkKQEAgLTIwODksNyArMjA4OSw3IEBA IEJhc2VCYWNrdXAodm9pZCkKIAkJCWZwcmludGYoc3RkZXJyLAogCQkJCQlfKCIlczogY291 bGQgbm90IHNlbmQgY29tbWFuZCB0byBiYWNrZ3JvdW5kIHBpcGU6ICVzXG4iKSwKIAkJCQkJ cHJvZ25hbWUsIHN0cmVycm9yKGVycm5vKSk7Ci0JCQlkaXNjb25uZWN0X2FuZF9leGl0KDEp OworCQkJZXhpdCgxKTsKIAkJfQogCiAJCS8qIEp1c3Qgd2FpdCBmb3IgdGhlIGJhY2tncm91 bmQgcHJvY2VzcyB0byBleGl0ICovCkBAIC0yMDk4LDE5ICsyMDk4LDE5IEBAIEJhc2VCYWNr dXAodm9pZCkKIAkJewogCQkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBjb3VsZCBub3Qgd2Fp dCBmb3IgY2hpbGQgcHJvY2VzczogJXNcbiIpLAogCQkJCQlwcm9nbmFtZSwgc3RyZXJyb3Io ZXJybm8pKTsKLQkJCWRpc2Nvbm5lY3RfYW5kX2V4aXQoMSk7CisJCQlleGl0KDEpOwogCQl9 CiAJCWlmIChyICE9IGJnY2hpbGQpCiAJCXsKIAkJCWZwcmludGYoc3RkZXJyLCBfKCIlczog Y2hpbGQgJWQgZGllZCwgZXhwZWN0ZWQgJWRcbiIpLAogCQkJCQlwcm9nbmFtZSwgKGludCkg ciwgKGludCkgYmdjaGlsZCk7Ci0JCQlkaXNjb25uZWN0X2FuZF9leGl0KDEpOworCQkJZXhp dCgxKTsKIAkJfQogCQlpZiAoc3RhdHVzICE9IDApCiAJCXsKIAkJCWZwcmludGYoc3RkZXJy LCAiJXM6ICVzXG4iLAogCQkJCQlwcm9nbmFtZSwgd2FpdF9yZXN1bHRfdG9fc3RyKHN0YXR1 cykpOwotCQkJZGlzY29ubmVjdF9hbmRfZXhpdCgxKTsKKwkJCWV4aXQoMSk7CiAJCX0KIAkJ LyogRXhpdGVkIG5vcm1hbGx5LCB3ZSdyZSBoYXBweSEgKi8KICNlbHNlCQkJCQkJCS8qIFdJ TjMyICovCkBAIC0yMTI1LDcgKzIxMjUsNyBAQCBCYXNlQmFja3VwKHZvaWQpCiAJCQlmcHJp bnRmKHN0ZGVyciwKIAkJCQkJXygiJXM6IGNvdWxkIG5vdCBwYXJzZSB3cml0ZS1haGVhZCBs b2cgbG9jYXRpb24gXCIlc1wiXG4iKSwKIAkJCQkJcHJvZ25hbWUsIHhsb2dlbmQpOwotCQkJ ZGlzY29ubmVjdF9hbmRfZXhpdCgxKTsKKwkJCWV4aXQoMSk7CiAJCX0KIAkJeGxvZ2VuZHB0 ciA9ICgodWludDY0KSBoaSkgPDwgMzIgfCBsbzsKIAkJSW50ZXJsb2NrZWRJbmNyZW1lbnQo Jmhhc194bG9nZW5kcHRyKTsKQEAgLTIxMzcsMjAgKzIxMzcsMjAgQEAgQmFzZUJhY2t1cCh2 b2lkKQogCQkJX2Rvc21hcGVycihHZXRMYXN0RXJyb3IoKSk7CiAJCQlmcHJpbnRmKHN0ZGVy ciwgXygiJXM6IGNvdWxkIG5vdCB3YWl0IGZvciBjaGlsZCB0aHJlYWQ6ICVzXG4iKSwKIAkJ CQkJcHJvZ25hbWUsIHN0cmVycm9yKGVycm5vKSk7Ci0JCQlkaXNjb25uZWN0X2FuZF9leGl0 KDEpOworCQkJZXhpdCgxKTsKIAkJfQogCQlpZiAoR2V0RXhpdENvZGVUaHJlYWQoKEhBTkRM RSkgYmdjaGlsZF9oYW5kbGUsICZzdGF0dXMpID09IDApCiAJCXsKIAkJCV9kb3NtYXBlcnIo R2V0TGFzdEVycm9yKCkpOwogCQkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBjb3VsZCBub3Qg Z2V0IGNoaWxkIHRocmVhZCBleGl0IHN0YXR1czogJXNcbiIpLAogCQkJCQlwcm9nbmFtZSwg c3RyZXJyb3IoZXJybm8pKTsKLQkJCWRpc2Nvbm5lY3RfYW5kX2V4aXQoMSk7CisJCQlleGl0 KDEpOwogCQl9CiAJCWlmIChzdGF0dXMgIT0gMCkKIAkJewogCQkJZnByaW50ZihzdGRlcnIs IF8oIiVzOiBjaGlsZCB0aHJlYWQgZXhpdGVkIHdpdGggZXJyb3IgJXVcbiIpLAogCQkJCQlw cm9nbmFtZSwgKHVuc2lnbmVkIGludCkgc3RhdHVzKTsKLQkJCWRpc2Nvbm5lY3RfYW5kX2V4 aXQoMSk7CisJCQlleGl0KDEpOwogCQl9CiAJCS8qIEV4aXRlZCBub3JtYWxseSwgd2UncmUg aGFwcHkgKi8KICNlbmRpZgpAQCAtMjE2NCw2ICsyMTY0LDcgQEAgQmFzZUJhY2t1cCh2b2lk KQogCSAqLwogCVBRY2xlYXIocmVzKTsKIAlQUWZpbmlzaChjb25uKTsKKwljb25uID0gTlVM TDsKIAogCS8qCiAJICogTWFrZSBkYXRhIHBlcnNpc3RlbnQgb24gZGlzayBvbmNlIGJhY2t1 cCBpcyBjb21wbGV0ZWQuIEZvciB0YXIgZm9ybWF0CkBAIC0yNTQyLDYgKzI1NDMsNyBAQCBt YWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJLyogRXJyb3IgbWVzc2FnZSBhbHJlYWR5 IHdyaXR0ZW4gaW4gR2V0Q29ubmVjdGlvbigpICovCiAJCWV4aXQoMSk7CiAJfQorCWF0ZXhp dChkaXNjb25uZWN0X2F0ZXhpdCk7CiAKIAkvKgogCSAqIFNldCB1bWFzayBzbyB0aGF0IGRp cmVjdG9yaWVzL2ZpbGVzIGFyZSBjcmVhdGVkIHdpdGggdGhlIHNhbWUKQEAgLTI1NjMsNyAr MjU2NSw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAJLyogZGV0ZXJtaW5l IHJlbW90ZSBzZXJ2ZXIncyB4bG9nIHNlZ21lbnQgc2l6ZSAqLwogCWlmICghUmV0cmlldmVX YWxTZWdTaXplKGNvbm4pKQotCQlkaXNjb25uZWN0X2FuZF9leGl0KDEpOworCQlleGl0KDEp OwogCiAJLyogQ3JlYXRlIHBnX3dhbCBzeW1saW5rLCBpZiByZXF1aXJlZCAqLwogCWlmICh4 bG9nX2RpcikKQEAgLTI1ODUsMTEgKzI1ODcsMTEgQEAgbWFpbihpbnQgYXJnYywgY2hhciAq KmFyZ3YpCiAJCXsKIAkJCWZwcmludGYoc3RkZXJyLCBfKCIlczogY291bGQgbm90IGNyZWF0 ZSBzeW1ib2xpYyBsaW5rIFwiJXNcIjogJXNcbiIpLAogCQkJCQlwcm9nbmFtZSwgbGlua2xv Yywgc3RyZXJyb3IoZXJybm8pKTsKLQkJCWRpc2Nvbm5lY3RfYW5kX2V4aXQoMSk7CisJCQll eGl0KDEpOwogCQl9CiAjZWxzZQogCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IHN5bWxpbmtz IGFyZSBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm1cbiIpLCBwcm9nbmFtZSk7Ci0J CWRpc2Nvbm5lY3RfYW5kX2V4aXQoMSk7CisJCWV4aXQoMSk7CiAjZW5kaWYKIAkJZnJlZShs aW5rbG9jKTsKIAl9CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfcmVj ZWl2ZXdhbC5jIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX3JlY2VpdmV3YWwuYwppbmRl eCA5MTJhZWQ4ZDdjLi5jNTNkZTA5NTJjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2Jhc2Vi YWNrdXAvcGdfcmVjZWl2ZXdhbC5jCisrKyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19y ZWNlaXZld2FsLmMKQEAgLTU1LDExICs1NSwxMiBAQCBzdGF0aWMgdm9pZCBTdHJlYW1Mb2co dm9pZCk7CiBzdGF0aWMgYm9vbCBzdG9wX3N0cmVhbWluZyhYTG9nUmVjUHRyIHNlZ2VuZHBv cywgdWludDMyIHRpbWVsaW5lLAogCQkJICAgYm9vbCBzZWdtZW50X2ZpbmlzaGVkKTsKIAot I2RlZmluZSBkaXNjb25uZWN0X2FuZF9leGl0KGNvZGUpCQkJCVwKLQl7CQkJCQkJCQkJCQlc Ci0JaWYgKGNvbm4gIT0gTlVMTCkgUFFmaW5pc2goY29ubik7CQkJXAotCWV4aXQoY29kZSk7 CQkJCQkJCQkJXAotCX0KK3N0YXRpYyB2b2lkCitkaXNjb25uZWN0X2F0ZXhpdCh2b2lkKQor eworCWlmIChjb25uICE9IE5VTEwpCisJCVBRZmluaXNoKGNvbm4pOworfQogCiAvKiBSb3V0 aW5lcyB0byBldmFsdWF0ZSBzZWdtZW50IGZpbGUgZm9ybWF0ICovCiAjZGVmaW5lIElzQ29t cHJlc3NYTG9nRmlsZU5hbWUoZm5hbWUpCSBcCkBAIC0xNjgsNyArMTY5LDcgQEAgZ2V0X2Rl c3RpbmF0aW9uX2RpcihjaGFyICpkZXN0X2ZvbGRlcikKIAl7CiAJCWZwcmludGYoc3RkZXJy LCBfKCIlczogY291bGQgbm90IG9wZW4gZGlyZWN0b3J5IFwiJXNcIjogJXNcbiIpLAogCQkJ CXByb2duYW1lLCBiYXNlZGlyLCBzdHJlcnJvcihlcnJubykpOwotCQlkaXNjb25uZWN0X2Fu ZF9leGl0KDEpOworCQlleGl0KDEpOwogCX0KIAogCXJldHVybiBkaXI7CkBAIC0xODYsNyAr MTg3LDcgQEAgY2xvc2VfZGVzdGluYXRpb25fZGlyKERJUiAqZGVzdF9kaXIsIGNoYXIgKmRl c3RfZm9sZGVyKQogCXsKIAkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBjb3VsZCBub3QgY2xv c2UgZGlyZWN0b3J5IFwiJXNcIjogJXNcbiIpLAogCQkJCXByb2duYW1lLCBkZXN0X2ZvbGRl ciwgc3RyZXJyb3IoZXJybm8pKTsKLQkJZGlzY29ubmVjdF9hbmRfZXhpdCgxKTsKKwkJZXhp dCgxKTsKIAl9CiB9CiAKQEAgLTI2Nyw3ICsyNjgsNyBAQCBGaW5kU3RyZWFtaW5nU3RhcnQo dWludDMyICp0bGkpCiAJCQl7CiAJCQkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBjb3VsZCBu b3Qgc3RhdCBmaWxlIFwiJXNcIjogJXNcbiIpLAogCQkJCQkJcHJvZ25hbWUsIGZ1bGxwYXRo LCBzdHJlcnJvcihlcnJubykpOwotCQkJCWRpc2Nvbm5lY3RfYW5kX2V4aXQoMSk7CisJCQkJ ZXhpdCgxKTsKIAkJCX0KIAogCQkJaWYgKHN0YXRidWYuc3Rfc2l6ZSAhPSBXYWxTZWdTeikK QEAgLTI5MywxMyArMjk0LDEzIEBAIEZpbmRTdHJlYW1pbmdTdGFydCh1aW50MzIgKnRsaSkK IAkJCXsKIAkJCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IGNvdWxkIG5vdCBvcGVuIGNvbXBy ZXNzZWQgZmlsZSBcIiVzXCI6ICVzXG4iKSwKIAkJCQkJCXByb2duYW1lLCBmdWxscGF0aCwg c3RyZXJyb3IoZXJybm8pKTsKLQkJCQlkaXNjb25uZWN0X2FuZF9leGl0KDEpOworCQkJCWV4 aXQoMSk7CiAJCQl9CiAJCQlpZiAobHNlZWsoZmQsIChvZmZfdCkgKC00KSwgU0VFS19FTkQp IDwgMCkKIAkJCXsKIAkJCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IGNvdWxkIG5vdCBzZWVr IGluIGNvbXByZXNzZWQgZmlsZSBcIiVzXCI6ICVzXG4iKSwKIAkJCQkJCXByb2duYW1lLCBm dWxscGF0aCwgc3RyZXJyb3IoZXJybm8pKTsKLQkJCQlkaXNjb25uZWN0X2FuZF9leGl0KDEp OworCQkJCWV4aXQoMSk7CiAJCQl9CiAJCQlyID0gcmVhZChmZCwgKGNoYXIgKikgYnVmLCBz aXplb2YoYnVmKSk7CiAJCQlpZiAociAhPSBzaXplb2YoYnVmKSkKQEAgLTMxMCw3ICszMTEs NyBAQCBGaW5kU3RyZWFtaW5nU3RhcnQodWludDMyICp0bGkpCiAJCQkJZWxzZQogCQkJCQlm cHJpbnRmKHN0ZGVyciwgXygiJXM6IGNvdWxkIG5vdCByZWFkIGNvbXByZXNzZWQgZmlsZSBc IiVzXCI6IHJlYWQgJWQgb2YgJXp1XG4iKSwKIAkJCQkJCQlwcm9nbmFtZSwgZnVsbHBhdGgs IHIsIHNpemVvZihidWYpKTsKLQkJCQlkaXNjb25uZWN0X2FuZF9leGl0KDEpOworCQkJCWV4 aXQoMSk7CiAJCQl9CiAKIAkJCWNsb3NlKGZkKTsKQEAgLTM0MSw3ICszNDIsNyBAQCBGaW5k U3RyZWFtaW5nU3RhcnQodWludDMyICp0bGkpCiAJewogCQlmcHJpbnRmKHN0ZGVyciwgXygi JXM6IGNvdWxkIG5vdCByZWFkIGRpcmVjdG9yeSBcIiVzXCI6ICVzXG4iKSwKIAkJCQlwcm9n bmFtZSwgYmFzZWRpciwgc3RyZXJyb3IoZXJybm8pKTsKLQkJZGlzY29ubmVjdF9hbmRfZXhp dCgxKTsKKwkJZXhpdCgxKTsKIAl9CiAKIAljbG9zZV9kZXN0aW5hdGlvbl9kaXIoZGlyLCBi YXNlZGlyKTsKQEAgLTM4Nyw2ICszODgsNyBAQCBTdHJlYW1Mb2codm9pZCkKIAlpZiAoIWNv bm4pCiAJCS8qIEVycm9yIG1lc3NhZ2UgYWxyZWFkeSB3cml0dGVuIGluIEdldENvbm5lY3Rp b24oKSAqLwogCQlyZXR1cm47CisJYXRleGl0KGRpc2Nvbm5lY3RfYXRleGl0KTsKIAogCWlm ICghQ2hlY2tTZXJ2ZXJWZXJzaW9uRm9yU3RyZWFtaW5nKGNvbm4pKQogCXsKQEAgLTM5NSw3 ICszOTcsNyBAQCBTdHJlYW1Mb2codm9pZCkKIAkJICogVGhlcmUncyBubyBob3BlIG9mIHJl Y292ZXJpbmcgZnJvbSBhIHZlcnNpb24gbWlzbWF0Y2gsIHNvIGRvbid0CiAJCSAqIHJldHJ5 LgogCQkgKi8KLQkJZGlzY29ubmVjdF9hbmRfZXhpdCgxKTsKKwkJZXhpdCgxKTsKIAl9CiAK IAkvKgpAQCAtNDA0LDcgKzQwNiw3IEBAIFN0cmVhbUxvZyh2b2lkKQogCSAqIGV4aXN0aW5n IG91dHB1dCBkaXJlY3RvcnkuCiAJICovCiAJaWYgKCFSdW5JZGVudGlmeVN5c3RlbShjb25u LCBOVUxMLCAmc2VydmVydGxpLCAmc2VydmVycG9zLCBOVUxMKSkKLQkJZGlzY29ubmVjdF9h bmRfZXhpdCgxKTsKKwkJZXhpdCgxKTsKIAogCS8qCiAJICogRmlndXJlIG91dCB3aGVyZSB0 byBzdGFydCBzdHJlYW1pbmcuCkBAIC00NTIsNiArNDU0LDcgQEAgU3RyZWFtTG9nKHZvaWQp CiAJfQogCiAJUFFmaW5pc2goY29ubik7CisJY29ubiA9IE5VTEw7CiAKIAlGcmVlV2FsRGly ZWN0b3J5TWV0aG9kKCk7CiAJcGdfZnJlZShzdHJlYW0ud2FsbWV0aG9kKTsKQEAgLTcwMSw2 ICs3MDQsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAlpZiAoIWNvbm4pCiAJ CS8qIGVycm9yIG1lc3NhZ2UgYWxyZWFkeSB3cml0dGVuIGluIEdldENvbm5lY3Rpb24oKSAq LwogCQlleGl0KDEpOworCWF0ZXhpdChkaXNjb25uZWN0X2F0ZXhpdCk7CiAKIAkvKgogCSAq IFJ1biBJREVOVElGWV9TWVNURU0gdG8gbWFrZSBzdXJlIHdlJ3ZlIHN1Y2Nlc3NmdWxseSBo YXZlIGVzdGFibGlzaGVkIGEKQEAgLTcwOCw3ICs3MTIsNyBAQCBtYWluKGludCBhcmdjLCBj aGFyICoqYXJndikKIAkgKiBjb25uZWN0aW9uLgogCSAqLwogCWlmICghUnVuSWRlbnRpZnlT eXN0ZW0oY29ubiwgTlVMTCwgTlVMTCwgTlVMTCwgJmRiX25hbWUpKQotCQlkaXNjb25uZWN0 X2FuZF9leGl0KDEpOworCQlleGl0KDEpOwogCiAJLyoKIAkgKiBTZXQgdW1hc2sgc28gdGhh dCBkaXJlY3Rvcmllcy9maWxlcyBhcmUgY3JlYXRlZCB3aXRoIHRoZSBzYW1lCkBAIC03MjIs NyArNzI2LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAKIAkvKiBkZXRlcm1p bmUgcmVtb3RlIHNlcnZlcidzIHhsb2cgc2VnbWVudCBzaXplICovCiAJaWYgKCFSZXRyaWV2 ZVdhbFNlZ1NpemUoY29ubikpCi0JCWRpc2Nvbm5lY3RfYW5kX2V4aXQoMSk7CisJCWV4aXQo MSk7CiAKIAkvKgogCSAqIENoZWNrIHRoYXQgdGhlcmUgaXMgYSBkYXRhYmFzZSBhc3NvY2lh dGVkIHdpdGggY29ubmVjdGlvbiwgbm9uZSBzaG91bGQKQEAgLTczMyw3ICs3MzcsNyBAQCBt YWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJZnByaW50ZihzdGRlcnIsCiAJCQkJXygi JXM6IHJlcGxpY2F0aW9uIGNvbm5lY3Rpb24gdXNpbmcgc2xvdCBcIiVzXCIgaXMgdW5leHBl Y3RlZGx5IGRhdGFiYXNlIHNwZWNpZmljXG4iKSwKIAkJCQlwcm9nbmFtZSwgcmVwbGljYXRp b25fc2xvdCk7Ci0JCWRpc2Nvbm5lY3RfYW5kX2V4aXQoMSk7CisJCWV4aXQoMSk7CiAJfQog CiAJLyoKQEAgLTc0Nyw4ICs3NTEsOCBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikK IAkJCQkJcHJvZ25hbWUsIHJlcGxpY2F0aW9uX3Nsb3QpOwogCiAJCWlmICghRHJvcFJlcGxp Y2F0aW9uU2xvdChjb25uLCByZXBsaWNhdGlvbl9zbG90KSkKLQkJCWRpc2Nvbm5lY3RfYW5k X2V4aXQoMSk7Ci0JCWRpc2Nvbm5lY3RfYW5kX2V4aXQoMCk7CisJCQlleGl0KDEpOworCQll eGl0KDApOwogCX0KIAogCS8qIENyZWF0ZSBhIHJlcGxpY2F0aW9uIHNsb3QgKi8KQEAgLTc2 MSw4ICs3NjUsOCBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAogCQlpZiAoIUNy ZWF0ZVJlcGxpY2F0aW9uU2xvdChjb25uLCByZXBsaWNhdGlvbl9zbG90LCBOVUxMLCBmYWxz ZSwgdHJ1ZSwgZmFsc2UsCiAJCQkJCQkJCSAgIHNsb3RfZXhpc3RzX29rKSkKLQkJCWRpc2Nv bm5lY3RfYW5kX2V4aXQoMSk7Ci0JCWRpc2Nvbm5lY3RfYW5kX2V4aXQoMCk7CisJCQlleGl0 KDEpOworCQlleGl0KDApOwogCX0KIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2Jh c2ViYWNrdXAvcGdfcmVjdmxvZ2ljYWwuYyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19y ZWN2bG9naWNhbC5jCmluZGV4IGEyNDJlMGJlODguLjAxYTA3ZjY3MTIgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19yZWN2bG9naWNhbC5jCisrKyBiL3NyYy9iaW4v cGdfYmFzZWJhY2t1cC9wZ19yZWN2bG9naWNhbC5jCkBAIC02NSw3ICs2NSw2IEBAIHN0YXRp YyBYTG9nUmVjUHRyIG91dHB1dF9mc3luY19sc24gPSBJbnZhbGlkWExvZ1JlY1B0cjsKIAog c3RhdGljIHZvaWQgdXNhZ2Uodm9pZCk7CiBzdGF0aWMgdm9pZCBTdHJlYW1Mb2dpY2FsTG9n KHZvaWQpOwotc3RhdGljIHZvaWQgZGlzY29ubmVjdF9hbmRfZXhpdChpbnQgY29kZSkgcGdf YXR0cmlidXRlX25vcmV0dXJuKCk7CiBzdGF0aWMgYm9vbCBmbHVzaEFuZFNlbmRGZWVkYmFj ayhQR2Nvbm4gKmNvbm4sIFRpbWVzdGFtcFR6ICpub3cpOwogc3RhdGljIHZvaWQgcHJlcGFy ZVRvVGVybWluYXRlKFBHY29ubiAqY29ubiwgWExvZ1JlY1B0ciBlbmRwb3MsCiAJCQkJICAg Ym9vbCBrZWVwYWxpdmUsIFhMb2dSZWNQdHIgbHNuKTsKQEAgLTE2NywxMiArMTY2LDEwIEBA IHNlbmRGZWVkYmFjayhQR2Nvbm4gKmNvbm4sIFRpbWVzdGFtcFR6IG5vdywgYm9vbCBmb3Jj ZSwgYm9vbCByZXBseVJlcXVlc3RlZCkKIH0KIAogc3RhdGljIHZvaWQKLWRpc2Nvbm5lY3Rf YW5kX2V4aXQoaW50IGNvZGUpCitkaXNjb25uZWN0X2F0ZXhpdCh2b2lkKQogewogCWlmIChj b25uICE9IE5VTEwpCiAJCVBRZmluaXNoKGNvbm4pOwotCi0JZXhpdChjb2RlKTsKIH0KIAog c3RhdGljIGJvb2wKQEAgLTIzMCw2ICsyMjcsNyBAQCBTdHJlYW1Mb2dpY2FsTG9nKHZvaWQp CiAJaWYgKCFjb25uKQogCQkvKiBFcnJvciBtZXNzYWdlIGFscmVhZHkgd3JpdHRlbiBpbiBH ZXRDb25uZWN0aW9uKCkgKi8KIAkJcmV0dXJuOworCWF0ZXhpdChkaXNjb25uZWN0X2F0ZXhp dCk7CiAKIAkvKgogCSAqIFN0YXJ0IHRoZSByZXBsaWNhdGlvbgpAQCAtOTQ0LDIwICs5NDIs MjEgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJaWYgKCFjb25uKQogCQkvKiBF cnJvciBtZXNzYWdlIGFscmVhZHkgd3JpdHRlbiBpbiBHZXRDb25uZWN0aW9uKCkgKi8KIAkJ ZXhpdCgxKTsKKwlhdGV4aXQoZGlzY29ubmVjdF9hdGV4aXQpOwogCiAJLyoKIAkgKiBSdW4g SURFTlRJRllfU1lTVEVNIHRvIG1ha2Ugc3VyZSB3ZSBjb25uZWN0ZWQgdXNpbmcgYSBkYXRh YmFzZSBzcGVjaWZpYwogCSAqIHJlcGxpY2F0aW9uIGNvbm5lY3Rpb24uCiAJICovCiAJaWYg KCFSdW5JZGVudGlmeVN5c3RlbShjb25uLCBOVUxMLCBOVUxMLCBOVUxMLCAmZGJfbmFtZSkp Ci0JCWRpc2Nvbm5lY3RfYW5kX2V4aXQoMSk7CisJCWV4aXQoMSk7CiAKIAlpZiAoZGJfbmFt ZSA9PSBOVUxMKQogCXsKIAkJZnByaW50ZihzdGRlcnIsCiAJCQkJXygiJXM6IGNvdWxkIG5v dCBlc3RhYmxpc2ggZGF0YWJhc2Utc3BlY2lmaWMgcmVwbGljYXRpb24gY29ubmVjdGlvblxu IiksCiAJCQkJcHJvZ25hbWUpOwotCQlkaXNjb25uZWN0X2FuZF9leGl0KDEpOworCQlleGl0 KDEpOwogCX0KIAogCS8qCkBAIC05NzksNyArOTc4LDcgQEAgbWFpbihpbnQgYXJnYywgY2hh ciAqKmFyZ3YpCiAJCQkJCXByb2duYW1lLCByZXBsaWNhdGlvbl9zbG90KTsKIAogCQlpZiAo IURyb3BSZXBsaWNhdGlvblNsb3QoY29ubiwgcmVwbGljYXRpb25fc2xvdCkpCi0JCQlkaXNj b25uZWN0X2FuZF9leGl0KDEpOworCQkJZXhpdCgxKTsKIAl9CiAKIAkvKiBDcmVhdGUgYSBy ZXBsaWNhdGlvbiBzbG90LiAqLwpAQCAtOTkyLDEyICs5OTEsMTIgQEAgbWFpbihpbnQgYXJn YywgY2hhciAqKmFyZ3YpCiAKIAkJaWYgKCFDcmVhdGVSZXBsaWNhdGlvblNsb3QoY29ubiwg cmVwbGljYXRpb25fc2xvdCwgcGx1Z2luLCBmYWxzZSwKIAkJCQkJCQkJICAgZmFsc2UsIGZh bHNlLCBzbG90X2V4aXN0c19vaykpCi0JCQlkaXNjb25uZWN0X2FuZF9leGl0KDEpOworCQkJ ZXhpdCgxKTsKIAkJc3RhcnRwb3MgPSBJbnZhbGlkWExvZ1JlY1B0cjsKIAl9CiAKIAlpZiAo IWRvX3N0YXJ0X3Nsb3QpCi0JCWRpc2Nvbm5lY3RfYW5kX2V4aXQoMCk7CisJCWV4aXQoMCk7 CiAKIAkvKiBTdHJlYW0gbG9vcCAqLwogCXdoaWxlICh0cnVlKQpAQCAtMTAwOSw3ICsxMDA4 LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCQkgKiBXZSd2ZSBiZWVuIEN0 cmwtQydlZCBvciByZWFjaGVkIGFuIGV4aXQgbGltaXQgY29uZGl0aW9uLiBUaGF0J3MKIAkJ CSAqIG5vdCBhbiBlcnJvciwgc28gZXhpdCB3aXRob3V0IGFuIGVycm9yY29kZS4KIAkJCSAq LwotCQkJZGlzY29ubmVjdF9hbmRfZXhpdCgwKTsKKwkJCWV4aXQoMCk7CiAJCX0KIAkJZWxz ZSBpZiAobm9sb29wKQogCQl7CgpiYXNlLWNvbW1pdDogMWE0ZWJhNGUyNDY0ODA0NjZjMDRm ZWI4MWY3Njg2NmU3ZGNiMjgyNwotLSAKMi4yMC4xCgo= --------------26A2AA2FA2D539D22021A8C1 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="0002-initdb-Use-atexit.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0002-initdb-Use-atexit.patch" RnJvbSBiMjNhOWI2MDJhM2I5NzYxODdiMTQ5MDZmMjliOWY2ZmM1OTQ0NGRjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogU2F0LCAyOSBEZWMgMjAxOCAxMzoyMTo1NyArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMi8yXSBpbml0ZGI6IFVzZSBhdGV4aXQoKQoKUmVwbGFjZSBleGl0X25pY2Vs eSgpIGNhbGxzIHdpdGggc3RhbmRhcmQgZXhpdCgpIGFuZCByZWdpc3RlciB0aGUKY2xlYW51 cCBhY3Rpb25zIHVzaW5nIGF0ZXhpdCgpLgotLS0KIHNyYy9iaW4vaW5pdGRiL2luaXRkYi5j IHwgODAgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspLCAzOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMvYmluL2luaXRkYi9pbml0ZGIuYyBiL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5j CmluZGV4IDAxN2MxMWJjOTQuLmU0NTA3YTI4OWIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vaW5p dGRiL2luaXRkYi5jCisrKyBiL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jCkBAIC0yMzgsNyAr MjM4LDYgQEAgc3RhdGljIGNoYXIgKipmaWx0ZXJfbGluZXNfd2l0aF90b2tlbihjaGFyICoq bGluZXMsIGNvbnN0IGNoYXIgKnRva2VuKTsKIHN0YXRpYyBjaGFyICoqcmVhZGZpbGUoY29u c3QgY2hhciAqcGF0aCk7CiBzdGF0aWMgdm9pZCB3cml0ZWZpbGUoY2hhciAqcGF0aCwgY2hh ciAqKmxpbmVzKTsKIHN0YXRpYyBGSUxFICpwb3Blbl9jaGVjayhjb25zdCBjaGFyICpjb21t YW5kLCBjb25zdCBjaGFyICptb2RlKTsKLXN0YXRpYyB2b2lkIGV4aXRfbmljZWx5KHZvaWQp IHBnX2F0dHJpYnV0ZV9ub3JldHVybigpOwogc3RhdGljIGNoYXIgKmdldF9pZCh2b2lkKTsK IHN0YXRpYyBpbnQJZ2V0X2VuY29kaW5nX2lkKGNvbnN0IGNoYXIgKmVuY29kaW5nX25hbWUp Owogc3RhdGljIHZvaWQgc2V0X2lucHV0KGNoYXIgKipkZXN0LCBjb25zdCBjaGFyICpmaWxl bmFtZSk7CkBAIC0yOTMsMTMgKzI5MiwxMyBAQCB2b2lkCQlpbml0aWFsaXplX2RhdGFfZGly ZWN0b3J5KHZvaWQpOwogZG8geyBcCiAJY21kZmQgPSBwb3Blbl9jaGVjayhjbWQsICJ3Iik7 IFwKIAlpZiAoY21kZmQgPT0gTlVMTCkgXAotCQlleGl0X25pY2VseSgpOyAvKiBtZXNzYWdl IGFscmVhZHkgcHJpbnRlZCBieSBwb3Blbl9jaGVjayAqLyBcCisJCWV4aXQoMSk7IC8qIG1l c3NhZ2UgYWxyZWFkeSBwcmludGVkIGJ5IHBvcGVuX2NoZWNrICovIFwKIH0gd2hpbGUgKDAp CiAKICNkZWZpbmUgUEdfQ01EX0NMT1NFIFwKIGRvIHsgXAogCWlmIChwY2xvc2VfY2hlY2so Y21kZmQpKSBcCi0JCWV4aXRfbmljZWx5KCk7IC8qIG1lc3NhZ2UgYWxyZWFkeSBwcmludGVk IGJ5IHBjbG9zZV9jaGVjayAqLyBcCisJCWV4aXQoMSk7IC8qIG1lc3NhZ2UgYWxyZWFkeSBw cmludGVkIGJ5IHBjbG9zZV9jaGVjayAqLyBcCiB9IHdoaWxlICgwKQogCiAjZGVmaW5lIFBH X0NNRF9QVVRTKGxpbmUpIFwKQEAgLTQ5NSw3ICs0OTQsNyBAQCByZWFkZmlsZShjb25zdCBj aGFyICpwYXRoKQogCXsKIAkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBjb3VsZCBub3Qgb3Bl biBmaWxlIFwiJXNcIiBmb3IgcmVhZGluZzogJXNcbiIpLAogCQkJCXByb2duYW1lLCBwYXRo LCBzdHJlcnJvcihlcnJubykpOwotCQlleGl0X25pY2VseSgpOworCQlleGl0KDEpOwogCX0K IAogCS8qIHBhc3Mgb3ZlciB0aGUgZmlsZSB0d2ljZSAtIHRoZSBmaXJzdCB0aW1lIHRvIHNp emUgdGhlIHJlc3VsdCAqLwpAQCAtNTUxLDcgKzU1MCw3IEBAIHdyaXRlZmlsZShjaGFyICpw YXRoLCBjaGFyICoqbGluZXMpCiAJewogCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IGNvdWxk IG5vdCBvcGVuIGZpbGUgXCIlc1wiIGZvciB3cml0aW5nOiAlc1xuIiksCiAJCQkJcHJvZ25h bWUsIHBhdGgsIHN0cmVycm9yKGVycm5vKSk7Ci0JCWV4aXRfbmljZWx5KCk7CisJCWV4aXQo MSk7CiAJfQogCWZvciAobGluZSA9IGxpbmVzOyAqbGluZSAhPSBOVUxMOyBsaW5lKyspCiAJ ewpAQCAtNTU5LDcgKzU1OCw3IEBAIHdyaXRlZmlsZShjaGFyICpwYXRoLCBjaGFyICoqbGlu ZXMpCiAJCXsKIAkJCWZwcmludGYoc3RkZXJyLCBfKCIlczogY291bGQgbm90IHdyaXRlIGZp bGUgXCIlc1wiOiAlc1xuIiksCiAJCQkJCXByb2duYW1lLCBwYXRoLCBzdHJlcnJvcihlcnJu bykpOwotCQkJZXhpdF9uaWNlbHkoKTsKKwkJCWV4aXQoMSk7CiAJCX0KIAkJZnJlZSgqbGlu ZSk7CiAJfQpAQCAtNTY3LDcgKzU2Niw3IEBAIHdyaXRlZmlsZShjaGFyICpwYXRoLCBjaGFy ICoqbGluZXMpCiAJewogCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IGNvdWxkIG5vdCB3cml0 ZSBmaWxlIFwiJXNcIjogJXNcbiIpLAogCQkJCXByb2duYW1lLCBwYXRoLCBzdHJlcnJvcihl cnJubykpOwotCQlleGl0X25pY2VseSgpOworCQlleGl0KDEpOwogCX0KIH0KIApAQCAtNTk0 LDcgKzU5Myw3IEBAIHBvcGVuX2NoZWNrKGNvbnN0IGNoYXIgKmNvbW1hbmQsIGNvbnN0IGNo YXIgKm1vZGUpCiAgKiBpZiB3ZSBjcmVhdGVkIHRoZSBkYXRhIGRpcmVjdG9yeSByZW1vdmUg aXQgdG9vCiAgKi8KIHN0YXRpYyB2b2lkCi1leGl0X25pY2VseSh2b2lkKQorY2xlYW51cF9h dGV4aXQodm9pZCkKIHsKIAlpZiAoIW5vY2xlYW4pCiAJewpAQCAtNjQ3LDggKzY0Niw2IEBA IGV4aXRfbmljZWx5KHZvaWQpCiAJCQkJCV8oIiVzOiBXQUwgZGlyZWN0b3J5IFwiJXNcIiBu b3QgcmVtb3ZlZCBhdCB1c2VyJ3MgcmVxdWVzdFxuIiksCiAJCQkJCXByb2duYW1lLCB4bG9n X2Rpcik7CiAJfQotCi0JZXhpdCgxKTsKIH0KIAogLyoKQEAgLTg3OSwxNCArODc2LDE0IEBA IHdyaXRlX3ZlcnNpb25fZmlsZShjb25zdCBjaGFyICpleHRyYXBhdGgpCiAJewogCQlmcHJp bnRmKHN0ZGVyciwgXygiJXM6IGNvdWxkIG5vdCBvcGVuIGZpbGUgXCIlc1wiIGZvciB3cml0 aW5nOiAlc1xuIiksCiAJCQkJcHJvZ25hbWUsIHBhdGgsIHN0cmVycm9yKGVycm5vKSk7Ci0J CWV4aXRfbmljZWx5KCk7CisJCWV4aXQoMSk7CiAJfQogCWlmIChmcHJpbnRmKHZlcnNpb25f ZmlsZSwgIiVzXG4iLCBQR19NQUpPUlZFUlNJT04pIDwgMCB8fAogCQlmY2xvc2UodmVyc2lv bl9maWxlKSkKIAl7CiAJCWZwcmludGYoc3RkZXJyLCBfKCIlczogY291bGQgbm90IHdyaXRl IGZpbGUgXCIlc1wiOiAlc1xuIiksCiAJCQkJcHJvZ25hbWUsIHBhdGgsIHN0cmVycm9yKGVy cm5vKSk7Ci0JCWV4aXRfbmljZWx5KCk7CisJCWV4aXQoMSk7CiAJfQogCWZyZWUocGF0aCk7 CiB9CkBAIC05MDcsMTMgKzkwNCwxMyBAQCBzZXRfbnVsbF9jb25mKHZvaWQpCiAJewogCQlm cHJpbnRmKHN0ZGVyciwgXygiJXM6IGNvdWxkIG5vdCBvcGVuIGZpbGUgXCIlc1wiIGZvciB3 cml0aW5nOiAlc1xuIiksCiAJCQkJcHJvZ25hbWUsIHBhdGgsIHN0cmVycm9yKGVycm5vKSk7 Ci0JCWV4aXRfbmljZWx5KCk7CisJCWV4aXQoMSk7CiAJfQogCWlmIChmY2xvc2UoY29uZl9m aWxlKSkKIAl7CiAJCWZwcmludGYoc3RkZXJyLCBfKCIlczogY291bGQgbm90IHdyaXRlIGZp bGUgXCIlc1wiOiAlc1xuIiksCiAJCQkJcHJvZ25hbWUsIHBhdGgsIHN0cmVycm9yKGVycm5v KSk7Ci0JCWV4aXRfbmljZWx5KCk7CisJCWV4aXQoMSk7CiAJfQogCWZyZWUocGF0aCk7CiB9 CkBAIC0xMjY0LDcgKzEyNjEsNyBAQCBzZXR1cF9jb25maWcodm9pZCkKIAl7CiAJCWZwcmlu dGYoc3RkZXJyLCBfKCIlczogY291bGQgbm90IGNoYW5nZSBwZXJtaXNzaW9ucyBvZiBcIiVz XCI6ICVzXG4iKSwKIAkJCQlwcm9nbmFtZSwgcGF0aCwgc3RyZXJyb3IoZXJybm8pKTsKLQkJ ZXhpdF9uaWNlbHkoKTsKKwkJZXhpdCgxKTsKIAl9CiAKIAkvKgpAQCAtMTI4NCw3ICsxMjgx LDcgQEAgc2V0dXBfY29uZmlnKHZvaWQpCiAJewogCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6 IGNvdWxkIG5vdCBjaGFuZ2UgcGVybWlzc2lvbnMgb2YgXCIlc1wiOiAlc1xuIiksCiAJCQkJ cHJvZ25hbWUsIHBhdGgsIHN0cmVycm9yKGVycm5vKSk7Ci0JCWV4aXRfbmljZWx5KCk7CisJ CWV4aXQoMSk7CiAJfQogCiAJZnJlZShjb25mbGluZXMpOwpAQCAtMTM3MSw3ICsxMzY4LDcg QEAgc2V0dXBfY29uZmlnKHZvaWQpCiAJewogCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IGNv dWxkIG5vdCBjaGFuZ2UgcGVybWlzc2lvbnMgb2YgXCIlc1wiOiAlc1xuIiksCiAJCQkJcHJv Z25hbWUsIHBhdGgsIHN0cmVycm9yKGVycm5vKSk7Ci0JCWV4aXRfbmljZWx5KCk7CisJCWV4 aXQoMSk7CiAJfQogCiAJZnJlZShjb25mbGluZXMpOwpAQCAtMTM4Nyw3ICsxMzg0LDcgQEAg c2V0dXBfY29uZmlnKHZvaWQpCiAJewogCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IGNvdWxk IG5vdCBjaGFuZ2UgcGVybWlzc2lvbnMgb2YgXCIlc1wiOiAlc1xuIiksCiAJCQkJcHJvZ25h bWUsIHBhdGgsIHN0cmVycm9yKGVycm5vKSk7Ci0JCWV4aXRfbmljZWx5KCk7CisJCWV4aXQo MSk7CiAJfQogCiAJZnJlZShjb25mbGluZXMpOwpAQCAtMTQyNSw3ICsxNDIyLDcgQEAgYm9v dHN0cmFwX3RlbXBsYXRlMSh2b2lkKQogCQkJCSAgIkNoZWNrIHlvdXIgaW5zdGFsbGF0aW9u IG9yIHNwZWNpZnkgdGhlIGNvcnJlY3QgcGF0aCAiCiAJCQkJICAidXNpbmcgdGhlIG9wdGlv biAtTC5cbiIpLAogCQkJCXByb2duYW1lLCBia2lfZmlsZSwgUEdfVkVSU0lPTik7Ci0JCWV4 aXRfbmljZWx5KCk7CisJCWV4aXQoMSk7CiAJfQogCiAJLyogU3Vic3RpdHV0ZSBmb3IgdmFy aW91cyBzeW1ib2xzIHVzZWQgaW4gdGhlIEJLSSBmaWxlICovCkBAIC0xNTQzLDcgKzE1NDAs NyBAQCBnZXRfc3VfcHdkKHZvaWQpCiAJCWlmIChzdHJjbXAocHdkMSwgcHdkMikgIT0gMCkK IAkJewogCQkJZnByaW50ZihzdGRlcnIsIF8oIlBhc3N3b3JkcyBkaWRuJ3QgbWF0Y2guXG4i KSk7Ci0JCQlleGl0X25pY2VseSgpOworCQkJZXhpdCgxKTsKIAkJfQogCX0KIAllbHNlCkBA IC0xNTYzLDcgKzE1NjAsNyBAQCBnZXRfc3VfcHdkKHZvaWQpCiAJCXsKIAkJCWZwcmludGYo c3RkZXJyLCBfKCIlczogY291bGQgbm90IG9wZW4gZmlsZSBcIiVzXCIgZm9yIHJlYWRpbmc6 ICVzXG4iKSwKIAkJCQkJcHJvZ25hbWUsIHB3ZmlsZW5hbWUsIHN0cmVycm9yKGVycm5vKSk7 Ci0JCQlleGl0X25pY2VseSgpOworCQkJZXhpdCgxKTsKIAkJfQogCQlpZiAoIWZnZXRzKHB3 ZDEsIHNpemVvZihwd2QxKSwgcHdmKSkKIAkJewpAQCAtMTU3Myw3ICsxNTcwLDcgQEAgZ2V0 X3N1X3B3ZCh2b2lkKQogCQkJZWxzZQogCQkJCWZwcmludGYoc3RkZXJyLCBfKCIlczogcGFz c3dvcmQgZmlsZSBcIiVzXCIgaXMgZW1wdHlcbiIpLAogCQkJCQkJcHJvZ25hbWUsIHB3Zmls ZW5hbWUpOwotCQkJZXhpdF9uaWNlbHkoKTsKKwkJCWV4aXQoMSk7CiAJCX0KIAkJZmNsb3Nl KHB3Zik7CiAKQEAgLTIxMjYsNyArMjEyMyw3IEBAIG1ha2VfcG9zdGdyZXMoRklMRSAqY21k ZmQpCiAgKiBpZiB5b3UgYXJlIGhhbmRsaW5nIFNJR0ZQRS4KICAqCiAgKiBJIGF2b2lkZWQg ZG9pbmcgdGhlIGZvcmJpZGRlbiB0aGluZ3MgYnkgc2V0dGluZyBhIGZsYWcgaW5zdGVhZCBv ZiBjYWxsaW5nCi0gKiBleGl0X25pY2VseSgpIGRpcmVjdGx5LgorICogZXhpdCgpIGRpcmVj dGx5LgogICoKICAqIEFsc28gbm90ZSB0aGUgYmVoYXZpb3VyIG9mIFdpbmRvd3Mgd2l0aCBT SUdJTlQsIHdoaWNoIHNheXMgdGhpczoKICAqCSBOb3RlCVNJR0lOVCBpcyBub3Qgc3VwcG9y dGVkIGZvciBhbnkgV2luMzIgYXBwbGljYXRpb24sIGluY2x1ZGluZwpAQCAtMjE0Nyw3ICsy MTQ0LDcgQEAgdHJhcHNpZyhpbnQgc2lnbnVtKQogfQogCiAvKgotICogY2FsbCBleGl0X25p Y2VseSgpIGlmIHdlIGdvdCBhIHNpZ25hbCwgb3IgZWxzZSBvdXRwdXQgIm9rIi4KKyAqIGNh bGwgZXhpdCgpIGlmIHdlIGdvdCBhIHNpZ25hbCwgb3IgZWxzZSBvdXRwdXQgIm9rIi4KICAq Lwogc3RhdGljIHZvaWQKIGNoZWNrX29rKHZvaWQpCkBAIC0yMTU2LDE0ICsyMTUzLDE0IEBA IGNoZWNrX29rKHZvaWQpCiAJewogCQlwcmludGYoXygiY2F1Z2h0IHNpZ25hbFxuIikpOwog CQlmZmx1c2goc3Rkb3V0KTsKLQkJZXhpdF9uaWNlbHkoKTsKKwkJZXhpdCgxKTsKIAl9CiAJ ZWxzZSBpZiAob3V0cHV0X2ZhaWxlZCkKIAl7CiAJCXByaW50ZihfKCJjb3VsZCBub3Qgd3Jp dGUgdG8gY2hpbGQgcHJvY2VzczogJXNcbiIpLAogCQkJICAgc3RyZXJyb3Iob3V0cHV0X2Vy cm5vKSk7CiAJCWZmbHVzaChzdGRvdXQpOwotCQlleGl0X25pY2VseSgpOworCQlleGl0KDEp OwogCX0KIAllbHNlCiAJewpAQCAtMjc5OSw3ICsyNzk2LDcgQEAgY3JlYXRlX2RhdGFfZGly ZWN0b3J5KHZvaWQpCiAJCQl7CiAJCQkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBjb3VsZCBu b3QgY3JlYXRlIGRpcmVjdG9yeSBcIiVzXCI6ICVzXG4iKSwKIAkJCQkJCXByb2duYW1lLCBw Z19kYXRhLCBzdHJlcnJvcihlcnJubykpOwotCQkJCWV4aXRfbmljZWx5KCk7CisJCQkJZXhp dCgxKTsKIAkJCX0KIAkJCWVsc2UKIAkJCQljaGVja19vaygpOwpAQCAtMjgxNyw3ICsyODE0 LDcgQEAgY3JlYXRlX2RhdGFfZGlyZWN0b3J5KHZvaWQpCiAJCQl7CiAJCQkJZnByaW50Zihz dGRlcnIsIF8oIiVzOiBjb3VsZCBub3QgY2hhbmdlIHBlcm1pc3Npb25zIG9mIGRpcmVjdG9y eSBcIiVzXCI6ICVzXG4iKSwKIAkJCQkJCXByb2duYW1lLCBwZ19kYXRhLCBzdHJlcnJvcihl cnJubykpOwotCQkJCWV4aXRfbmljZWx5KCk7CisJCQkJZXhpdCgxKTsKIAkJCX0KIAkJCWVs c2UKIAkJCQljaGVja19vaygpOwpAQCAtMjg0Niw3ICsyODQzLDcgQEAgY3JlYXRlX2RhdGFf ZGlyZWN0b3J5KHZvaWQpCiAJCQkvKiBUcm91YmxlIGFjY2Vzc2luZyBkaXJlY3RvcnkgKi8K IAkJCWZwcmludGYoc3RkZXJyLCBfKCIlczogY291bGQgbm90IGFjY2VzcyBkaXJlY3Rvcnkg XCIlc1wiOiAlc1xuIiksCiAJCQkJCXByb2duYW1lLCBwZ19kYXRhLCBzdHJlcnJvcihlcnJu bykpOwotCQkJZXhpdF9uaWNlbHkoKTsKKwkJCWV4aXQoMSk7CiAJfQogfQogCkBAIC0yODY5 LDcgKzI4NjYsNyBAQCBjcmVhdGVfeGxvZ19vcl9zeW1saW5rKHZvaWQpCiAJCWlmICghaXNf YWJzb2x1dGVfcGF0aCh4bG9nX2RpcikpCiAJCXsKIAkJCWZwcmludGYoc3RkZXJyLCBfKCIl czogV0FMIGRpcmVjdG9yeSBsb2NhdGlvbiBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGhcbiIp LCBwcm9nbmFtZSk7Ci0JCQlleGl0X25pY2VseSgpOworCQkJZXhpdCgxKTsKIAkJfQogCiAJ CS8qIGNoZWNrIGlmIHRoZSBzcGVjaWZpZWQgeGxvZyBkaXJlY3RvcnkgZXhpc3RzL2lzIGVt cHR5ICovCkBAIC0yODg1LDcgKzI4ODIsNyBAQCBjcmVhdGVfeGxvZ19vcl9zeW1saW5rKHZv aWQpCiAJCQkJewogCQkJCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IGNvdWxkIG5vdCBjcmVh dGUgZGlyZWN0b3J5IFwiJXNcIjogJXNcbiIpLAogCQkJCQkJCXByb2duYW1lLCB4bG9nX2Rp ciwgc3RyZXJyb3IoZXJybm8pKTsKLQkJCQkJZXhpdF9uaWNlbHkoKTsKKwkJCQkJZXhpdCgx KTsKIAkJCQl9CiAJCQkJZWxzZQogCQkJCQljaGVja19vaygpOwpAQCAtMjkwMyw3ICsyOTAw LDcgQEAgY3JlYXRlX3hsb2dfb3Jfc3ltbGluayh2b2lkKQogCQkJCXsKIAkJCQkJZnByaW50 ZihzdGRlcnIsIF8oIiVzOiBjb3VsZCBub3QgY2hhbmdlIHBlcm1pc3Npb25zIG9mIGRpcmVj dG9yeSBcIiVzXCI6ICVzXG4iKSwKIAkJCQkJCQlwcm9nbmFtZSwgeGxvZ19kaXIsIHN0cmVy cm9yKGVycm5vKSk7Ci0JCQkJCWV4aXRfbmljZWx5KCk7CisJCQkJCWV4aXQoMSk7CiAJCQkJ fQogCQkJCWVsc2UKIAkJCQkJY2hlY2tfb2soKTsKQEAgLTI5MjUsMTMgKzI5MjIsMTMgQEAg Y3JlYXRlX3hsb2dfb3Jfc3ltbGluayh2b2lkKQogCQkJCQkJCV8oIklmIHlvdSB3YW50IHRv IHN0b3JlIHRoZSBXQUwgdGhlcmUsIGVpdGhlciByZW1vdmUgb3IgZW1wdHkgdGhlIGRpcmVj dG9yeVxuIgogCQkJCQkJCSAgIlwiJXNcIi5cbiIpLAogCQkJCQkJCXhsb2dfZGlyKTsKLQkJ CQlleGl0X25pY2VseSgpOworCQkJCWV4aXQoMSk7CiAKIAkJCWRlZmF1bHQ6CiAJCQkJLyog VHJvdWJsZSBhY2Nlc3NpbmcgZGlyZWN0b3J5ICovCiAJCQkJZnByaW50ZihzdGRlcnIsIF8o IiVzOiBjb3VsZCBub3QgYWNjZXNzIGRpcmVjdG9yeSBcIiVzXCI6ICVzXG4iKSwKIAkJCQkJ CXByb2duYW1lLCB4bG9nX2Rpciwgc3RyZXJyb3IoZXJybm8pKTsKLQkJCQlleGl0X25pY2Vs eSgpOworCQkJCWV4aXQoMSk7CiAJCX0KIAogI2lmZGVmIEhBVkVfU1lNTElOSwpAQCAtMjkz OSwxMSArMjkzNiwxMSBAQCBjcmVhdGVfeGxvZ19vcl9zeW1saW5rKHZvaWQpCiAJCXsKIAkJ CWZwcmludGYoc3RkZXJyLCBfKCIlczogY291bGQgbm90IGNyZWF0ZSBzeW1ib2xpYyBsaW5r IFwiJXNcIjogJXNcbiIpLAogCQkJCQlwcm9nbmFtZSwgc3ViZGlybG9jLCBzdHJlcnJvcihl cnJubykpOwotCQkJZXhpdF9uaWNlbHkoKTsKKwkJCWV4aXQoMSk7CiAJCX0KICNlbHNlCiAJ CWZwcmludGYoc3RkZXJyLCBfKCIlczogc3ltbGlua3MgYXJlIG5vdCBzdXBwb3J0ZWQgb24g dGhpcyBwbGF0Zm9ybVxuIiksIHByb2duYW1lKTsKLQkJZXhpdF9uaWNlbHkoKTsKKwkJZXhp dCgxKTsKICNlbmRpZgogCX0KIAllbHNlCkBAIC0yOTUzLDcgKzI5NTAsNyBAQCBjcmVhdGVf eGxvZ19vcl9zeW1saW5rKHZvaWQpCiAJCXsKIAkJCWZwcmludGYoc3RkZXJyLCBfKCIlczog Y291bGQgbm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIlc1wiOiAlc1xuIiksCiAJCQkJCXByb2du YW1lLCBzdWJkaXJsb2MsIHN0cmVycm9yKGVycm5vKSk7Ci0JCQlleGl0X25pY2VseSgpOwor CQkJZXhpdCgxKTsKIAkJfQogCX0KIApAQCAtMzAxNSw3ICszMDEyLDcgQEAgaW5pdGlhbGl6 ZV9kYXRhX2RpcmVjdG9yeSh2b2lkKQogCQl7CiAJCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6 IGNvdWxkIG5vdCBjcmVhdGUgZGlyZWN0b3J5IFwiJXNcIjogJXNcbiIpLAogCQkJCQlwcm9n bmFtZSwgcGF0aCwgc3RyZXJyb3IoZXJybm8pKTsKLQkJCWV4aXRfbmljZWx5KCk7CisJCQll eGl0KDEpOwogCQl9CiAKIAkJZnJlZShwYXRoKTsKQEAgLTMyOTIsNiArMzI4OSw4IEBAIG1h aW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJZXhpdCgxKTsKIAl9CiAKKwlhdGV4aXQo Y2xlYW51cF9hdGV4aXQpOworCiAJLyogSWYgd2Ugb25seSBuZWVkIHRvIGZzeW5jLCBqdXN0 IGRvIGl0IGFuZCBleGl0ICovCiAJaWYgKHN5bmNfb25seSkKIAl7CkBAIC0zMzAyLDcgKzMz MDEsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCXsKIAkJCWZwcmludGYo c3RkZXJyLCBfKCIlczogY291bGQgbm90IGFjY2VzcyBkaXJlY3RvcnkgXCIlc1wiOiAlc1xu IiksCiAJCQkJCXByb2duYW1lLCBwZ19kYXRhLCBzdHJlcnJvcihlcnJubykpOwotCQkJZXhp dF9uaWNlbHkoKTsKKwkJCWV4aXQoMSk7CiAJCX0KIAogCQlmcHV0cyhfKCJzeW5jaW5nIGRh dGEgdG8gZGlzayAuLi4gIiksIHN0ZG91dCk7CkBAIC0zNDM4LDUgKzM0MzcsOCBAQCBtYWlu KGludCBhcmdjLCBjaGFyICphcmd2W10pCiAKIAlkZXN0cm95UFFFeHBCdWZmZXIoc3RhcnRf ZGJfY21kKTsKIAorCS8qIHByZXZlbnQgY2xlYW51cCAqLworCW1hZGVfbmV3X3BnZGF0YSA9 IGZvdW5kX2V4aXN0aW5nX3BnZGF0YSA9IG1hZGVfbmV3X3hsb2dkaXIgPSBmb3VuZF9leGlz dGluZ194bG9nZGlyID0gZmFsc2U7CisKIAlyZXR1cm4gMDsKIH0KLS0gCjIuMjAuMQoK --------------26A2AA2FA2D539D22021A8C1--