Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w0vsQ-002Kvo-0L for pgsql-hackers@arkaria.postgresql.org; Fri, 13 Mar 2026 06:20:02 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w0vsO-001xo5-0B for pgsql-hackers@arkaria.postgresql.org; Fri, 13 Mar 2026 06:20:00 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w0vsN-001xnx-1Y for pgsql-hackers@lists.postgresql.org; Fri, 13 Mar 2026 06:20:00 +0000 Received: from mail-vk1-xa2a.google.com ([2607:f8b0:4864:20::a2a]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w0vsH-00000002PwZ-0zr2 for pgsql-hackers@lists.postgresql.org; Fri, 13 Mar 2026 06:19:59 +0000 Received: by mail-vk1-xa2a.google.com with SMTP id 71dfb90a1353d-56afbcd8adbso801226e0c.2 for ; Thu, 12 Mar 2026 23:19:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773382791; cv=none; d=google.com; s=arc-20240605; b=jENFeWSawLaLYu7wnbNN9QRRqzsLnCr5yDVtpqdIVKV2VYHLp6hQi5YHQNuWVPo5JF KQO0bvpJE/neMDvyX1yA59nHqyTuhGYk8CbpgWXKTyxICahfJleyYWKoq3F59C2dQ47d CGHEGZC4nTwWWg5soDw1erXvtsSwoyj3YWzU+ZR83hpGVrZ4sjxqfurYHvV4SkkhFbEN rEA1Oy/4BIKP/kfUFI62Ho/bvfiXbAc4j+ep66Aa/fgtNAtFQo2u2zHh502/w2DRArY1 bvPRWGj6OPaJ0qIU8LYXoD5IQJV/Kb9/xN5OQ1NTogqfIJh/d89eTtPl8vvm5xiGKCK6 AjJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=YG0Q7fznOxPbsDI/DTpW9fuFmw3YxmMqEOTZNxeqk+M=; fh=IodZ+LveUwz0a9yOjwf+l6m9qbAa64Ku4DtQkXo6GaE=; b=Z7NiUGZsXkYhBIitv1Hw6DR3onp45Plbjq+CLBXJsIQR+O00ZNY6B6LN4RGglgTCCU BP78quvSEItosqsbb2PLdOmqMWPA91i6osMjkykqPBJ95bpahui5A9xS9QkCTZwFLJCe fICby3bPr7B2AlZ63OQpVLAUMjjyZQVTB3npKdGsyROo9S0PXVSBv85NtaRYaoj82eSQ 1Jzk4nA99qvZjyQLyPvHwW+QECjqJsDJI2FRTaZwuxyQmmBgGNXQlK/J+Bk9uHanhNcL niCTiTWFHldvAMSmVPYM1v3Uv9n4mV0bDIGZoDhyiClvRqEipM2C+c5KUtVLc5pHeaWZ ueRw==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773382791; x=1773987591; 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=YG0Q7fznOxPbsDI/DTpW9fuFmw3YxmMqEOTZNxeqk+M=; b=MAUcXjinjnzC5E8JF3EvGBsEnN9RXoDUW5Y4r//P2HBWEfApcdWDxElGZFp2K92ltd aYI0KRUI54vEmrOImMFkdnAfO8GUrp9YKIJxNmoJ2btBBsRt9rWcRMl+9v2BE5vCO2GD n2OYEs5+qHTxeQbdSbWqqqQGW+lJf7lvc21B2cmt795Dqa7KZBA2YIN/LMyIs8OmzGxc dL1sLdlaGUwccZcfdbQJP2l9ei3j2t0cRmYQIpEI5nrrl4NRbR0uFS0YlIIz93di46x7 zNyMnaDAOXCp4Y9f4RyLqZtwDnIHyeE1H3SjmTqK5TqvEI4QC8e0mrHHbMqaq7WIUKrY DjCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773382791; x=1773987591; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=YG0Q7fznOxPbsDI/DTpW9fuFmw3YxmMqEOTZNxeqk+M=; b=f/qBeo+3o0IVK/qFLdZXpKyi43kWB2aE+QlM9jEZIgvOAmNOJNn1NfLQ3DJXU9dCSH pS+xFxUGBgop03dmHwPOdBcmlU8+IPL8qZGhPY2kAfX88qDYNoqgoa3ru60zBAuuuUYM GcbSe+id0o3GAGMDOz2Ie5rss49fjvJKNX1AXt5cqQQ8u7+49LKMwFFV9L3kVm9rcmiz n3Aw/mVxfrayJRiIH6mpToB2UXovtmRzX5YmFg66bBz5mlFI+yr1ko7sZAVsF4S63SG0 YNoElKPgW10n6J7s6z2tq1ABrc0zfS0Mqs+VeA2NF8Lt3ina+zpuKF811mRSTWJB2c3C bo/Q== X-Forwarded-Encrypted: i=1; AJvYcCVutYEcooa2i/rYdON2/l6za1+NtU3jn/HN1DdgkU9kwQCDGYqdbTAgHBzXbMKL3tfYZqfIUWmyHTBwvx3T@lists.postgresql.org X-Gm-Message-State: AOJu0Yw/RttgnEOpbfHhyoiPH7dZVZR5kxHI0znxa43/yniNlgveOTKj 5yQi+QUUng8oXnyjQsj9SNb6ia/PCbSSVAtiffANq/L3lsI35G6NC7IYXfdlPERGdMUD35kOJEC 2zktFiIddHMlL+YlBbPZFCVjgC5EAGZw= X-Gm-Gg: ATEYQzz8YI/aS0ahLnw4e5G2p5r+DO08fV/Nu1cdamsojainG9GlKvSyWyKm43gPJvl eBy+jhMsYpT7rqvx7SLOhXEmFMk5rRCcbdfKVQusAC8XwN9/ZQ0OtrUZzWZ4iGlGHeVv73soxEy h56sZVgsvs55efYA6wLNe3rDhKVVA1wtz5d7qTl2U/EmPIK26GCf+BIaQSHY7wWCbB4ybib9jIE HNQMPKHKtJz3Bof8AJ61UFw9LnYST/e1y9GHmeqqYTu4e3UWXc8td3jj3Cv20hDCB5XA9bt8X5t 6GzotSZ/TxkHimnAmHsr1wWYUwAjBGD/XTWdK+2Bwdze16zvFsuM7p7ypoORwlQT0+Xsv0R0j0M NIvBFO4hKLCRb4ZWmwtCwjFFLwBcyr06XfPyg5LAvp2StEq3DgvpYAJ8Xvcdxnp/M4MFvhX4FUV 2uSsFFGrqPdxILxZ6Aqz6QRQ== X-Received: by 2002:a05:6102:dd3:b0:5f5:4eac:cd2e with SMTP id ada2fe7eead31-6020e561cb0mr878171137.32.1773382791344; Thu, 12 Mar 2026 23:19:51 -0700 (PDT) MIME-Version: 1.0 References: <04afcd1f-ed7d-4c0a-add1-50e3719ccbf9@postgresfriends.org> <762ae707-7fdc-43d8-a77a-3a10d12ce21d@postgresfriends.org> In-Reply-To: From: jian he Date: Fri, 13 Mar 2026 14:19:14 +0800 X-Gm-Features: AaiRm53EMCa3IWZACmWddpN_q89_lff3o1wMVqsDo6rw5JjNd7UXVQAx9MyPc14 Message-ID: Subject: Re: CAST(... ON DEFAULT) - WIP build on top of Error-Safe User Functions To: Corey Huinker Cc: Amul Sul , Kirill Reshke , Vik Fearing , Isaac Morland , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000549053064ce1dba3" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000549053064ce1dba3 Content-Type: text/plain; charset="UTF-8" Hi. please check the attached v20. -- jian https://www.enterprisedb.com/ --000000000000549053064ce1dba3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20-0020-refactor-point_dt.patch" Content-Disposition: attachment; filename="v20-0020-refactor-point_dt.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmoi9lxy1 RnJvbSBiNDAxNzA1NWNjODQ4NzhlMTMyYzI5NDk4MGU3NWIyNTVkYThmNTE4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgNSBKYW4gMjAyNiAxMzozMzo1MSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjIw IDIwLzIzXSByZWZhY3RvciBwb2ludF9kdAoKcG9pbnRfZHQgaXMgdXNlZCBpbiBtdWx0aXBsZSBs b2NhdGlvbnMgYW5kIHdpbGwgYmUgbmVlZGVkIGJ5IGEgbGF0ZXIgcGF0Y2gsIHRodXMKcmVmYWN0 b3JpbmcgbWFrZSBpdCBlcnJvciBzYWZlLgoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMv bS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFp bC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jIHwgNzkgKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDYgaW5zZXJ0 aW9ucygrKSwgMzMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2dlb19vcHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9fb3BzLmMKaW5kZXggYmZi NDg1OWI0Y2IuLmM2NTViMDE1YzE0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQv Z2VvX29wcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9fb3BzLmMKQEAgLTgyLDcg KzgyLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHBvaW50X3N1Yl9wb2ludChQb2ludCAqcmVzdWx0 LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsKIHN0YXRpYyBpbmxpbmUgdm9pZCBwb2ludF9tdWxf cG9pbnQoUG9pbnQgKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMgaW5s aW5lIHZvaWQgcG9pbnRfZGl2X3BvaW50KFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50 ICpwdDIpOwogc3RhdGljIGlubGluZSBib29sIHBvaW50X2VxX3BvaW50KFBvaW50ICpwdDEsIFBv aW50ICpwdDIpOwotc3RhdGljIGlubGluZSBmbG9hdDggcG9pbnRfZHQoUG9pbnQgKnB0MSwgUG9p bnQgKnB0Mik7CitzdGF0aWMgaW5saW5lIGZsb2F0OCBwb2ludF9kdChQb2ludCAqcHQxLCBQb2lu dCAqcHQyLCBOb2RlICplc2NvbnRleHQpOwogc3RhdGljIGlubGluZSBmbG9hdDggcG9pbnRfc2wo UG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMgaW50CXBvaW50X2luc2lkZShQb2ludCAq cCwgaW50IG5wdHMsIFBvaW50ICpwbGlzdCk7CiAKQEAgLTgzOSw3ICs4MzksNyBAQCBib3hfZGlz dGFuY2UoUEdfRlVOQ1RJT05fQVJHUykKIAlib3hfY24oJmEsIGJveDEpOwogCWJveF9jbigmYiwg Ym94Mik7CiAKLQlQR19SRVRVUk5fRkxPQVQ4KHBvaW50X2R0KCZhLCAmYikpOworCVBHX1JFVFVS Tl9GTE9BVDgocG9pbnRfZHQoJmEsICZiLCBmY2luZm8tPmNvbnRleHQpKTsKIH0KIAogCkBAIC0x ODA4LDcgKzE4MDgsOCBAQCBwYXRoX2xlbmd0aChQR19GVU5DVElPTl9BUkdTKQogCQkJaXByZXYg PSBwYXRoLT5ucHRzIC0gMTsgLyogaW5jbHVkZSB0aGUgY2xvc3VyZSBzZWdtZW50ICovCiAJCX0K IAotCQlyZXN1bHQgPSBmbG9hdDhfcGwocmVzdWx0LCBwb2ludF9kdCgmcGF0aC0+cFtpcHJldl0s ICZwYXRoLT5wW2ldKSk7CisJCXJlc3VsdCA9IGZsb2F0OF9wbChyZXN1bHQsCisJCQkJCQkgICBw b2ludF9kdCgmcGF0aC0+cFtpcHJldl0sICZwYXRoLT5wW2ldLCBmY2luZm8tPmNvbnRleHQpKTsK IAl9CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CkBAIC0xOTk1LDEzICsxOTk2LDI0IEBA IHBvaW50X2Rpc3RhbmNlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJUG9pbnQJICAgKnB0MSA9IFBHX0dF VEFSR19QT0lOVF9QKDApOwogCVBvaW50CSAgICpwdDIgPSBQR19HRVRBUkdfUE9JTlRfUCgxKTsK IAotCVBHX1JFVFVSTl9GTE9BVDgocG9pbnRfZHQocHQxLCBwdDIpKTsKKwlQR19SRVRVUk5fRkxP QVQ4KHBvaW50X2R0KHB0MSwgcHQyLCBmY2luZm8tPmNvbnRleHQpKTsKIH0KIAogc3RhdGljIGlu bGluZSBmbG9hdDgKLXBvaW50X2R0KFBvaW50ICpwdDEsIFBvaW50ICpwdDIpCitwb2ludF9kdChQ b2ludCAqcHQxLCBQb2ludCAqcHQyLCBOb2RlICplc2NvbnRleHQpCiB7Ci0JcmV0dXJuIGh5cG90 KGZsb2F0OF9taShwdDEtPngsIHB0Mi0+eCksIGZsb2F0OF9taShwdDEtPnksIHB0Mi0+eSkpOwor CWZsb2F0OAkJeDsKKwlmbG9hdDgJCXk7CisKKwl4ID0gZmxvYXQ4X21pX3NhZmUocHQxLT54LCBw dDItPngsIGVzY29udGV4dCk7CisJaWYgKHVubGlrZWx5KFNPRlRfRVJST1JfT0NDVVJSRUQoZXNj b250ZXh0KSkpCisJCXJldHVybiAwLjA7CisKKwl5ID0gZmxvYXQ4X21pX3NhZmUocHQxLT55LCBw dDItPnksIGVzY29udGV4dCk7CisJaWYgKHVubGlrZWx5KFNPRlRfRVJST1JfT0NDVVJSRUQoZXNj b250ZXh0KSkpCisJCXJldHVybiAwLjA7CisKKwlyZXR1cm4gaHlwb3QoeCwgeSk7CiB9CiAKIERh dHVtCkBAIC0yMTczLDcgKzIxODUsNyBAQCBsc2VnX2xlbmd0aChQR19GVU5DVElPTl9BUkdTKQog ewogCUxTRUcJICAgKmxzZWcgPSBQR19HRVRBUkdfTFNFR19QKDApOwogCi0JUEdfUkVUVVJOX0ZM T0FUOChwb2ludF9kdCgmbHNlZy0+cFswXSwgJmxzZWctPnBbMV0pKTsKKwlQR19SRVRVUk5fRkxP QVQ4KHBvaW50X2R0KCZsc2VnLT5wWzBdLCAmbHNlZy0+cFsxXSwgZmNpbmZvLT5jb250ZXh0KSk7 CiB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpAQCAtMjI1OCw4ICsyMjcwLDggQEAgbHNlZ19sdChQR19GVU5DVElPTl9BUkdT KQogCUxTRUcJICAgKmwxID0gUEdfR0VUQVJHX0xTRUdfUCgwKTsKIAlMU0VHCSAgICpsMiA9IFBH X0dFVEFSR19MU0VHX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9PTChGUGx0KHBvaW50X2R0KCZsMS0+ cFswXSwgJmwxLT5wWzFdKSwKLQkJCQkJCXBvaW50X2R0KCZsMi0+cFswXSwgJmwyLT5wWzFdKSkp OworCVBHX1JFVFVSTl9CT09MKEZQbHQocG9pbnRfZHQoJmwxLT5wWzBdLCAmbDEtPnBbMV0sIGZj aW5mby0+Y29udGV4dCksCisJCQkJCQlwb2ludF9kdCgmbDItPnBbMF0sICZsMi0+cFsxXSwgZmNp bmZvLT5jb250ZXh0KSkpOwogfQogCiBEYXR1bQpAQCAtMjI2OCw4ICsyMjgwLDggQEAgbHNlZ19s ZShQR19GVU5DVElPTl9BUkdTKQogCUxTRUcJICAgKmwxID0gUEdfR0VUQVJHX0xTRUdfUCgwKTsK IAlMU0VHCSAgICpsMiA9IFBHX0dFVEFSR19MU0VHX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9PTChG UGxlKHBvaW50X2R0KCZsMS0+cFswXSwgJmwxLT5wWzFdKSwKLQkJCQkJCXBvaW50X2R0KCZsMi0+ cFswXSwgJmwyLT5wWzFdKSkpOworCVBHX1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmwxLT5w WzBdLCAmbDEtPnBbMV0sIGZjaW5mby0+Y29udGV4dCksCisJCQkJCQlwb2ludF9kdCgmbDItPnBb MF0sICZsMi0+cFsxXSwgZmNpbmZvLT5jb250ZXh0KSkpOwogfQogCiBEYXR1bQpAQCAtMjI3OCw4 ICsyMjkwLDggQEAgbHNlZ19ndChQR19GVU5DVElPTl9BUkdTKQogCUxTRUcJICAgKmwxID0gUEdf R0VUQVJHX0xTRUdfUCgwKTsKIAlMU0VHCSAgICpsMiA9IFBHX0dFVEFSR19MU0VHX1AoMSk7CiAK LQlQR19SRVRVUk5fQk9PTChGUGd0KHBvaW50X2R0KCZsMS0+cFswXSwgJmwxLT5wWzFdKSwKLQkJ CQkJCXBvaW50X2R0KCZsMi0+cFswXSwgJmwyLT5wWzFdKSkpOworCVBHX1JFVFVSTl9CT09MKEZQ Z3QocG9pbnRfZHQoJmwxLT5wWzBdLCAmbDEtPnBbMV0sIGZjaW5mby0+Y29udGV4dCksCisJCQkJ CQlwb2ludF9kdCgmbDItPnBbMF0sICZsMi0+cFsxXSwgZmNpbmZvLT5jb250ZXh0KSkpOwogfQog CiBEYXR1bQpAQCAtMjI4OCw4ICsyMzAwLDggQEAgbHNlZ19nZShQR19GVU5DVElPTl9BUkdTKQog CUxTRUcJICAgKmwxID0gUEdfR0VUQVJHX0xTRUdfUCgwKTsKIAlMU0VHCSAgICpsMiA9IFBHX0dF VEFSR19MU0VHX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9PTChGUGdlKHBvaW50X2R0KCZsMS0+cFsw XSwgJmwxLT5wWzFdKSwKLQkJCQkJCXBvaW50X2R0KCZsMi0+cFswXSwgJmwyLT5wWzFdKSkpOwor CVBHX1JFVFVSTl9CT09MKEZQZ2UocG9pbnRfZHQoJmwxLT5wWzBdLCAmbDEtPnBbMV0sIGZjaW5m by0+Y29udGV4dCksCisJCQkJCQlwb2ludF9kdCgmbDItPnBbMF0sICZsMi0+cFsxXSwgZmNpbmZv LT5jb250ZXh0KSkpOwogfQogCiAKQEAgLTI3NDMsNyArMjc1NSw3IEBAIGxpbmVfY2xvc2VwdF9w b2ludChQb2ludCAqcmVzdWx0LCBMSU5FICpsaW5lLCBQb2ludCAqcG9pbnQpCiAJaWYgKHJlc3Vs dCAhPSBOVUxMKQogCQkqcmVzdWx0ID0gY2xvc2VwdDsKIAotCXJldHVybiBwb2ludF9kdCgmY2xv c2VwdCwgcG9pbnQpOworCXJldHVybiBwb2ludF9kdCgmY2xvc2VwdCwgcG9pbnQsIE5VTEwpOwog fQogCiBEYXR1bQpAQCAtMjc4NCw3ICsyNzk2LDcgQEAgbHNlZ19jbG9zZXB0X3BvaW50KFBvaW50 ICpyZXN1bHQsIExTRUcgKmxzZWcsIFBvaW50ICpwdCkKIAlpZiAocmVzdWx0ICE9IE5VTEwpCiAJ CSpyZXN1bHQgPSBjbG9zZXB0OwogCi0JcmV0dXJuIHBvaW50X2R0KCZjbG9zZXB0LCBwdCk7CisJ cmV0dXJuIHBvaW50X2R0KCZjbG9zZXB0LCBwdCwgTlVMTCk7CiB9CiAKIERhdHVtCkBAIC0zMTA4 LDkgKzMxMjAsOSBAQCBvbl9wbChQR19GVU5DVElPTl9BUkdTKQogc3RhdGljIGJvb2wKIGxzZWdf Y29udGFpbl9wb2ludChMU0VHICpsc2VnLCBQb2ludCAqcHQpCiB7Ci0JcmV0dXJuIEZQZXEocG9p bnRfZHQocHQsICZsc2VnLT5wWzBdKSArCi0JCQkJcG9pbnRfZHQocHQsICZsc2VnLT5wWzFdKSwK LQkJCQlwb2ludF9kdCgmbHNlZy0+cFswXSwgJmxzZWctPnBbMV0pKTsKKwlyZXR1cm4gRlBlcShw b2ludF9kdChwdCwgJmxzZWctPnBbMF0sIE5VTEwpICsKKwkJCQlwb2ludF9kdChwdCwgJmxzZWct PnBbMV0sIE5VTEwpLAorCQkJCXBvaW50X2R0KCZsc2VnLT5wWzBdLCAmbHNlZy0+cFsxXSwgTlVM TCkpOwogfQogCiBEYXR1bQpAQCAtMzE3NiwxMSArMzE4OCwxMiBAQCBvbl9wcGF0aChQR19GVU5D VElPTl9BUkdTKQogCWlmICghcGF0aC0+Y2xvc2VkKQogCXsKIAkJbiA9IHBhdGgtPm5wdHMgLSAx OwotCQlhID0gcG9pbnRfZHQocHQsICZwYXRoLT5wWzBdKTsKKwkJYSA9IHBvaW50X2R0KHB0LCAm cGF0aC0+cFswXSwgZmNpbmZvLT5jb250ZXh0KTsKIAkJZm9yIChpID0gMDsgaSA8IG47IGkrKykK IAkJewotCQkJYiA9IHBvaW50X2R0KHB0LCAmcGF0aC0+cFtpICsgMV0pOwotCQkJaWYgKEZQZXEo ZmxvYXQ4X3BsKGEsIGIpLCBwb2ludF9kdCgmcGF0aC0+cFtpXSwgJnBhdGgtPnBbaSArIDFdKSkp CisJCQliID0gcG9pbnRfZHQocHQsICZwYXRoLT5wW2kgKyAxXSwgZmNpbmZvLT5jb250ZXh0KTsK KwkJCWlmIChGUGVxKGZsb2F0OF9wbChhLCBiKSwKKwkJCQkJIHBvaW50X2R0KCZwYXRoLT5wW2ld LCAmcGF0aC0+cFtpICsgMV0sIGZjaW5mby0+Y29udGV4dCkpKQogCQkJCVBHX1JFVFVSTl9CT09M KHRydWUpOwogCQkJYSA9IGI7CiAJCX0KQEAgLTQ3NjYsNyArNDc3OSw3IEBAIGNpcmNsZV9vdmVy bGFwKFBHX0ZVTkNUSU9OX0FSR1MpCiAJQ0lSQ0xFCSAgICpjaXJjbGUxID0gUEdfR0VUQVJHX0NJ UkNMRV9QKDApOwogCUNJUkNMRQkgICAqY2lyY2xlMiA9IFBHX0dFVEFSR19DSVJDTEVfUCgxKTsK IAotCVBHX1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmNpcmNsZTEtPmNlbnRlciwgJmNpcmNs ZTItPmNlbnRlciksCisJUEdfUkVUVVJOX0JPT0woRlBsZShwb2ludF9kdCgmY2lyY2xlMS0+Y2Vu dGVyLCAmY2lyY2xlMi0+Y2VudGVyLCBmY2luZm8tPmNvbnRleHQpLAogCQkJCQkJZmxvYXQ4X3Bs KGNpcmNsZTEtPnJhZGl1cywgY2lyY2xlMi0+cmFkaXVzKSkpOwogfQogCkBAIC00ODI4LDcgKzQ4 NDEsNyBAQCBjaXJjbGVfY29udGFpbmVkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJQ0lSQ0xFCSAgICpj aXJjbGUxID0gUEdfR0VUQVJHX0NJUkNMRV9QKDApOwogCUNJUkNMRQkgICAqY2lyY2xlMiA9IFBH X0dFVEFSR19DSVJDTEVfUCgxKTsKIAotCVBHX1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmNp cmNsZTEtPmNlbnRlciwgJmNpcmNsZTItPmNlbnRlciksCisJUEdfUkVUVVJOX0JPT0woRlBsZShw b2ludF9kdCgmY2lyY2xlMS0+Y2VudGVyLCAmY2lyY2xlMi0+Y2VudGVyLCBmY2luZm8tPmNvbnRl eHQpLAogCQkJCQkJZmxvYXQ4X21pKGNpcmNsZTItPnJhZGl1cywgY2lyY2xlMS0+cmFkaXVzKSkp OwogfQogCkBAIC00ODQwLDcgKzQ4NTMsNyBAQCBjaXJjbGVfY29udGFpbihQR19GVU5DVElPTl9B UkdTKQogCUNJUkNMRQkgICAqY2lyY2xlMSA9IFBHX0dFVEFSR19DSVJDTEVfUCgwKTsKIAlDSVJD TEUJICAgKmNpcmNsZTIgPSBQR19HRVRBUkdfQ0lSQ0xFX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9P TChGUGxlKHBvaW50X2R0KCZjaXJjbGUxLT5jZW50ZXIsICZjaXJjbGUyLT5jZW50ZXIpLAorCVBH X1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmNpcmNsZTEtPmNlbnRlciwgJmNpcmNsZTItPmNl bnRlciwgZmNpbmZvLT5jb250ZXh0KSwKIAkJCQkJCWZsb2F0OF9taShjaXJjbGUxLT5yYWRpdXMs IGNpcmNsZTItPnJhZGl1cykpKTsKIH0KIApAQCAtNTA2OSw3ICs1MDgyLDcgQEAgY2lyY2xlX2Rp c3RhbmNlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJQ0lSQ0xFCSAgICpjaXJjbGUyID0gUEdfR0VUQVJH X0NJUkNMRV9QKDEpOwogCWZsb2F0OAkJcmVzdWx0OwogCi0JcmVzdWx0ID0gZmxvYXQ4X21pKHBv aW50X2R0KCZjaXJjbGUxLT5jZW50ZXIsICZjaXJjbGUyLT5jZW50ZXIpLAorCXJlc3VsdCA9IGZs b2F0OF9taShwb2ludF9kdCgmY2lyY2xlMS0+Y2VudGVyLCAmY2lyY2xlMi0+Y2VudGVyLCBmY2lu Zm8tPmNvbnRleHQpLAogCQkJCQkgICBmbG9hdDhfcGwoY2lyY2xlMS0+cmFkaXVzLCBjaXJjbGUy LT5yYWRpdXMpKTsKIAlpZiAocmVzdWx0IDwgMC4wKQogCQlyZXN1bHQgPSAwLjA7CkBAIC01MDg1 LDcgKzUwOTgsNyBAQCBjaXJjbGVfY29udGFpbl9wdChQR19GVU5DVElPTl9BUkdTKQogCVBvaW50 CSAgICpwb2ludCA9IFBHX0dFVEFSR19QT0lOVF9QKDEpOwogCWZsb2F0OAkJZDsKIAotCWQgPSBw b2ludF9kdCgmY2lyY2xlLT5jZW50ZXIsIHBvaW50KTsKKwlkID0gcG9pbnRfZHQoJmNpcmNsZS0+ Y2VudGVyLCBwb2ludCwgZmNpbmZvLT5jb250ZXh0KTsKIAlQR19SRVRVUk5fQk9PTChkIDw9IGNp cmNsZS0+cmFkaXVzKTsKIH0KIApAQCAtNTA5Nyw3ICs1MTEwLDcgQEAgcHRfY29udGFpbmVkX2Np cmNsZShQR19GVU5DVElPTl9BUkdTKQogCUNJUkNMRQkgICAqY2lyY2xlID0gUEdfR0VUQVJHX0NJ UkNMRV9QKDEpOwogCWZsb2F0OAkJZDsKIAotCWQgPSBwb2ludF9kdCgmY2lyY2xlLT5jZW50ZXIs IHBvaW50KTsKKwlkID0gcG9pbnRfZHQoJmNpcmNsZS0+Y2VudGVyLCBwb2ludCwgZmNpbmZvLT5j b250ZXh0KTsKIAlQR19SRVRVUk5fQk9PTChkIDw9IGNpcmNsZS0+cmFkaXVzKTsKIH0KIApAQCAt NTExMiw3ICs1MTI1LDcgQEAgZGlzdF9wYyhQR19GVU5DVElPTl9BUkdTKQogCUNJUkNMRQkgICAq Y2lyY2xlID0gUEdfR0VUQVJHX0NJUkNMRV9QKDEpOwogCWZsb2F0OAkJcmVzdWx0OwogCi0JcmVz dWx0ID0gZmxvYXQ4X21pKHBvaW50X2R0KHBvaW50LCAmY2lyY2xlLT5jZW50ZXIpLAorCXJlc3Vs dCA9IGZsb2F0OF9taShwb2ludF9kdChwb2ludCwgJmNpcmNsZS0+Y2VudGVyLCBmY2luZm8tPmNv bnRleHQpLAogCQkJCQkgICBjaXJjbGUtPnJhZGl1cyk7CiAJaWYgKHJlc3VsdCA8IDAuMCkKIAkJ cmVzdWx0ID0gMC4wOwpAQCAtNTEzMCw3ICs1MTQzLDcgQEAgZGlzdF9jcG9pbnQoUEdfRlVOQ1RJ T05fQVJHUykKIAlQb2ludAkgICAqcG9pbnQgPSBQR19HRVRBUkdfUE9JTlRfUCgxKTsKIAlmbG9h dDgJCXJlc3VsdDsKIAotCXJlc3VsdCA9IGZsb2F0OF9taShwb2ludF9kdChwb2ludCwgJmNpcmNs ZS0+Y2VudGVyKSwgY2lyY2xlLT5yYWRpdXMpOworCXJlc3VsdCA9IGZsb2F0OF9taShwb2ludF9k dChwb2ludCwgJmNpcmNsZS0+Y2VudGVyLCBmY2luZm8tPmNvbnRleHQpLCBjaXJjbGUtPnJhZGl1 cyk7CiAJaWYgKHJlc3VsdCA8IDAuMCkKIAkJcmVzdWx0ID0gMC4wOwogCkBAIC01MjE1LDcgKzUy MjgsNyBAQCBib3hfY2lyY2xlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJY2lyY2xlLT5jZW50ZXIueCA9 IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGJveC0+aGlnaC54LCBib3gtPmxvdy54KSwgMi4wKTsKIAlj aXJjbGUtPmNlbnRlci55ID0gZmxvYXQ4X2RpdihmbG9hdDhfcGwoYm94LT5oaWdoLnksIGJveC0+ bG93LnkpLCAyLjApOwogCi0JY2lyY2xlLT5yYWRpdXMgPSBwb2ludF9kdCgmY2lyY2xlLT5jZW50 ZXIsICZib3gtPmhpZ2gpOworCWNpcmNsZS0+cmFkaXVzID0gcG9pbnRfZHQoJmNpcmNsZS0+Y2Vu dGVyLCAmYm94LT5oaWdoLCBmY2luZm8tPmNvbnRleHQpOwogCiAJUEdfUkVUVVJOX0NJUkNMRV9Q KGNpcmNsZSk7CiB9CkBAIC01Mjk5LDcgKzUzMTIsNyBAQCBwb2x5X3RvX2NpcmNsZShDSVJDTEUg KnJlc3VsdCwgUE9MWUdPTiAqcG9seSkKIAogCWZvciAoaSA9IDA7IGkgPCBwb2x5LT5ucHRzOyBp KyspCiAJCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X3BsKHJlc3VsdC0+cmFkaXVzLAotCQkJCQkJ CQkgICBwb2ludF9kdCgmcG9seS0+cFtpXSwgJnJlc3VsdC0+Y2VudGVyKSk7CisJCQkJCQkJCSAg IHBvaW50X2R0KCZwb2x5LT5wW2ldLCAmcmVzdWx0LT5jZW50ZXIsIE5VTEwpKTsKIAlyZXN1bHQt PnJhZGl1cyA9IGZsb2F0OF9kaXYocmVzdWx0LT5yYWRpdXMsIHBvbHktPm5wdHMpOwogfQogCi0t IAoyLjM0LjEKCg== --000000000000549053064ce1dba3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20-0021-error-safe-for-casting-geometry-data-type.patch" Content-Disposition: attachment; filename="v20-0021-error-safe-for-casting-geometry-data-type.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmoi9ly84 RnJvbSBmZjU3OGE0OGJjNGNhYjYxODZiMTQzNmRjZThlZWJhNDgwZWI2YzAyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgMTIgTWFyIDIwMjYgMTQ6MTY6MjUgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MCAyMS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBnZW9tZXRyeSBkYXRhIHR5cGUKCnNlbGVj dCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBlLCBwcC5wcm9zcmMKZnJv bSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbiBwcC5vaWQgPSBwYy5jYXN0ZnVuYwpqb2lu IHBnX3R5cGUgcHQgb24gcHQub2lkID0gY2FzdHNvdXJjZQpqb2luIHBnX3R5cGUgcHQxIG9uIHB0 MS5vaWQgPSBjYXN0dGFyZ2V0CmFuZCBwYy5jYXN0ZnVuYyA+IDAgYW5kICBwdC50eXBhcnJheSA8 PiAwCmFuZCBwdC50eXBuYW1lc3BhY2UgPSAncGdfY2F0YWxvZyc6OnJlZ25hbWVzcGFjZQphbmQg cHQxLnR5cG5hbWVzcGFjZSA9ICdwZ19jYXRhbG9nJzo6cmVnbmFtZXNwYWNlCmFuZCAocHQudHlw Y2F0ZWdvcnkgID0gJ0cnIG9yIHB0MS50eXBjYXRlZ29yeSAgPSAnRycpCm9yZGVyIGJ5IGNhc3Rz b3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8IGNhc3R0 YXJnZXQgfCAgICBwcm9zcmMKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0KIHBvaW50ICAgICAgfCBib3ggICAgICAgIHwgcG9pbnRfYm94CiBsc2VnICAgICAgIHwgcG9p bnQgICAgICB8IGxzZWdfY2VudGVyCiBwYXRoICAgICAgIHwgcG9seWdvbiAgICB8IHBhdGhfcG9s eQogYm94ICAgICAgICB8IHBvaW50ICAgICAgfCBib3hfY2VudGVyCiBib3ggICAgICAgIHwgbHNl ZyAgICAgICB8IGJveF9kaWFnb25hbAogYm94ICAgICAgICB8IHBvbHlnb24gICAgfCBib3hfcG9s eQogYm94ICAgICAgICB8IGNpcmNsZSAgICAgfCBib3hfY2lyY2xlCiBwb2x5Z29uICAgIHwgcG9p bnQgICAgICB8IHBvbHlfY2VudGVyCiBwb2x5Z29uICAgIHwgcGF0aCAgICAgICB8IHBvbHlfcGF0 aAogcG9seWdvbiAgICB8IGJveCAgICAgICAgfCBwb2x5X2JveAogcG9seWdvbiAgICB8IGNpcmNs ZSAgICAgfCBwb2x5X2NpcmNsZQogY2lyY2xlICAgICB8IHBvaW50ICAgICAgfCBjaXJjbGVfY2Vu dGVyCiBjaXJjbGUgICAgIHwgYm94ICAgICAgICB8IGNpcmNsZV9ib3gKIGNpcmNsZSAgICAgfCBw b2x5Z29uICAgIHwKKDE0IHJvd3MpCgphbHJlYWR5IGVycm9yIHNhZmU6IHBvaW50X2JveCwgYm94 X2RpYWdvbmFsLCBib3hfcG9seSwgcG9seV9wYXRoLCBwb2x5X2JveCwgY2lyY2xlX2NlbnRlci4K ClRoaXMgcGF0Y2ggbWFrZSB0aGVzZSBmdW5jdGlvbnMgZXJyb3Igc2FmZTogbHNlZ19jZW50ZXIs IHBhdGhfcG9seSwgYm94X2NlbnRlciwKYm94X2NpcmNsZSwgcG9seV9jZW50ZXIsIHBvbHlfY2ly Y2xlLCBjaXJjbGVfYm94LgoKRnVuY3Rpb24gdGhhdCBjYXN0aW5nIHR5cGUgY2lyY2xlIHRvIHR5 cGUgcG9seWdvbiBjYW5ub3QgYmUgZXJyb3Igc2FmZSwgYmVjYXVzZQppdCdzIGEgU1FMIGZ1bmN0 aW9uLgoKRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUNKdWZ4SENNenJIT1c9d1Jl OEwzMHJNaEIzc2p3QXYxTEU5MjhGYTdzeE11MVR4LWdAbWFpbC5nbWFpbC5jb20KQ29tbWl0ZmVz dDogaHR0cHM6Ly9jb21taXRmZXN0LnBvc3RncmVzcWwub3JnL3BhdGNoLzU5NDEKLS0tCiBzcmMv YmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jIHwgMTk5ICsrKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTU3IGluc2VydGlvbnMoKyksIDQyIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9fb3BzLmMgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jCmluZGV4IGM2NTViMDE1YzE0Li41YjE1NjA3NDc5 NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19vcHMuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jCkBAIC03Nyw3ICs3Nyw4IEBAIGVudW0gcGF0aF9k ZWxpbQogCiAvKiBSb3V0aW5lcyBmb3IgcG9pbnRzICovCiBzdGF0aWMgaW5saW5lIHZvaWQgcG9p bnRfY29uc3RydWN0KFBvaW50ICpyZXN1bHQsIGZsb2F0OCB4LCBmbG9hdDggeSk7Ci1zdGF0aWMg aW5saW5lIHZvaWQgcG9pbnRfYWRkX3BvaW50KFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBv aW50ICpwdDIpOworc3RhdGljIGlubGluZSB2b2lkIHBvaW50X2FkZF9wb2ludChQb2ludCAqcmVz dWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyLAorCQkJCQkJCQkgICBOb2RlICplc2NvbnRleHQp Owogc3RhdGljIGlubGluZSB2b2lkIHBvaW50X3N1Yl9wb2ludChQb2ludCAqcmVzdWx0LCBQb2lu dCAqcHQxLCBQb2ludCAqcHQyKTsKIHN0YXRpYyBpbmxpbmUgdm9pZCBwb2ludF9tdWxfcG9pbnQo UG9pbnQgKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMgaW5saW5lIHZv aWQgcG9pbnRfZGl2X3BvaW50KFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIp OwpAQCAtMTA4LDcgKzEwOSw3IEBAIHN0YXRpYyBmbG9hdDggbHNlZ19jbG9zZXB0X2xzZWcoUG9p bnQgKnJlc3VsdCwgTFNFRyAqb25fbHNlZywgTFNFRyAqdG9fbHNlZyk7CiAKIC8qIFJvdXRpbmVz IGZvciBib3hlcyAqLwogc3RhdGljIGlubGluZSB2b2lkIGJveF9jb25zdHJ1Y3QoQk9YICpyZXN1 bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOwotc3RhdGljIHZvaWQgYm94X2NuKFBvaW50ICpj ZW50ZXIsIEJPWCAqYm94KTsKK3N0YXRpYyBib29sIGJveF9jbihQb2ludCAqY2VudGVyLCBCT1gg KmJveCwgTm9kZSAqZXNjb250ZXh0KTsKIHN0YXRpYyBib29sIGJveF9vdihCT1ggKmJveDEsIEJP WCAqYm94Mik7CiBzdGF0aWMgZmxvYXQ4IGJveF9hcihCT1ggKmJveCk7CiBzdGF0aWMgZmxvYXQ4 IGJveF9odChCT1ggKmJveCk7CkBAIC0xMjUsNyArMTI2LDcgQEAgc3RhdGljIGZsb2F0OCBjaXJj bGVfYXIoQ0lSQ0xFICpjaXJjbGUpOwogCiAvKiBSb3V0aW5lcyBmb3IgcG9seWdvbnMgKi8KIHN0 YXRpYyB2b2lkIG1ha2VfYm91bmRfYm94KFBPTFlHT04gKnBvbHkpOwotc3RhdGljIHZvaWQgcG9s eV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHkpOworc3RhdGljIGJvb2wg cG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHksIE5vZGUgKmVzY29u dGV4dCk7CiBzdGF0aWMgYm9vbCBsc2VnX2luc2lkZV9wb2x5KFBvaW50ICphLCBQb2ludCAqYiwg UE9MWUdPTiAqcG9seSwgaW50IHN0YXJ0KTsKIHN0YXRpYyBib29sIHBvbHlfY29udGFpbl9wb2x5 KFBPTFlHT04gKmNvbnRhaW5zX3BvbHksIFBPTFlHT04gKmNvbnRhaW5lZF9wb2x5KTsKIHN0YXRp YyBib29sIHBsaXN0X3NhbWUoaW50IG5wdHMsIFBvaW50ICpwMSwgUG9pbnQgKnAyKTsKQEAgLTgz Niw4ICs4MzcsOCBAQCBib3hfZGlzdGFuY2UoUEdfRlVOQ1RJT05fQVJHUykKIAlQb2ludAkJYSwK IAkJCQliOwogCi0JYm94X2NuKCZhLCBib3gxKTsKLQlib3hfY24oJmIsIGJveDIpOworCSh2b2lk KSBib3hfY24oJmEsIGJveDEsIGZjaW5mby0+Y29udGV4dCk7CisJKHZvaWQpIGJveF9jbigmYiwg Ym94MiwgZmNpbmZvLT5jb250ZXh0KTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocG9pbnRfZHQoJmEs ICZiLCBmY2luZm8tPmNvbnRleHQpKTsKIH0KQEAgLTg1MSw3ICs4NTIsOCBAQCBib3hfY2VudGVy KFBHX0ZVTkNUSU9OX0FSR1MpCiAJQk9YCQkgICAqYm94ID0gUEdfR0VUQVJHX0JPWF9QKDApOwog CVBvaW50CSAgICpyZXN1bHQgPSBwYWxsb2Nfb2JqZWN0KFBvaW50KTsKIAotCWJveF9jbihyZXN1 bHQsIGJveCk7CisJaWYgKCFib3hfY24ocmVzdWx0LCBib3gsIGZjaW5mby0+Y29udGV4dCkpCisJ CVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fUE9JTlRfUChyZXN1bHQpOwogfQpAQCAt ODY4LDE0ICs4NzAsMzEgQEAgYm94X2FyKEJPWCAqYm94KQogCiAvKgkJYm94X2NuCS0JCXN0b3Jl cyB0aGUgY2VudGVycG9pbnQgb2YgdGhlIGJveCBpbnRvICpjZW50ZXIuCiAgKi8KLXN0YXRpYyB2 b2lkCi1ib3hfY24oUG9pbnQgKmNlbnRlciwgQk9YICpib3gpCitzdGF0aWMgYm9vbAorYm94X2Nu KFBvaW50ICpjZW50ZXIsIEJPWCAqYm94LCBOb2RlICplc2NvbnRleHQpCiB7Ci0JY2VudGVyLT54 ID0gZmxvYXQ4X2RpdihmbG9hdDhfcGwoYm94LT5oaWdoLngsIGJveC0+bG93LngpLCAyLjApOwot CWNlbnRlci0+eSA9IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGJveC0+aGlnaC55LCBib3gtPmxvdy55 KSwgMi4wKTsKKwlmbG9hdDgJCXg7CisJZmxvYXQ4CQl5OworCisJeCA9IGZsb2F0OF9wbF9zYWZl KGJveC0+aGlnaC54LCBib3gtPmxvdy54LCBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09D Q1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKKworCWNlbnRlci0+eCA9IGZsb2F0 OF9kaXZfc2FmZSh4LCAyLjAsIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQo ZXNjb250ZXh0KSkKKwkJcmV0dXJuIGZhbHNlOworCisJeSA9IGZsb2F0OF9wbF9zYWZlKGJveC0+ aGlnaC55LCBib3gtPmxvdy55LCBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVE KGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKKworCWNlbnRlci0+eSA9IGZsb2F0OF9kaXZf c2FmZSh5LCAyLjAsIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250 ZXh0KSkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIHRydWU7CiB9CiAKLQogLyoJCWJveF93 ZAktCQlyZXR1cm5zIHRoZSB3aWR0aCAobGVuZ3RoKSBvZiB0aGUgYm94CiAgKgkJCQkJCQkJICAo aG9yaXpvbnRhbCBtYWduaXR1ZGUpLgogICovCkBAIC0yMzI5LDEzICsyMzQ4LDMxIEBAIGxzZWdf Y2VudGVyKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJTFNFRwkgICAqbHNlZyA9IFBHX0dFVEFSR19M U0VHX1AoMCk7CiAJUG9pbnQJICAgKnJlc3VsdDsKKwlmbG9hdDgJCXg7CisJZmxvYXQ4CQl5Owog CiAJcmVzdWx0ID0gcGFsbG9jX29iamVjdChQb2ludCk7CiAKLQlyZXN1bHQtPnggPSBmbG9hdDhf ZGl2KGZsb2F0OF9wbChsc2VnLT5wWzBdLngsIGxzZWctPnBbMV0ueCksIDIuMCk7Ci0JcmVzdWx0 LT55ID0gZmxvYXQ4X2RpdihmbG9hdDhfcGwobHNlZy0+cFswXS55LCBsc2VnLT5wWzFdLnkpLCAy LjApOworCXggPSBmbG9hdDhfcGxfc2FmZShsc2VnLT5wWzBdLngsIGxzZWctPnBbMV0ueCwgZmNp bmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQp KQorCQlnb3RvIGZhaWw7CisKKwlyZXN1bHQtPnggPSBmbG9hdDhfZGl2X3NhZmUoeCwgMi4wLCBm Y2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4 dCkpCisJCWdvdG8gZmFpbDsKKworCXkgPSBmbG9hdDhfcGxfc2FmZShsc2VnLT5wWzBdLnksIGxz ZWctPnBbMV0ueSwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChm Y2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwlyZXN1bHQtPnkgPSBmbG9hdDhfZGl2 X3NhZmUoeSwgMi4wLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVE KGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKIAogCVBHX1JFVFVSTl9QT0lOVF9QKHJl c3VsdCk7CisKK2ZhaWw6CisJUEdfUkVUVVJOX05VTEwoKTsKIH0KIAogCkBAIC0zMjkwLDcgKzMz MjcsNyBAQCBib3hfaW50ZXJwdF9sc2VnKFBvaW50ICpyZXN1bHQsIEJPWCAqYm94LCBMU0VHICps c2VnKQogCiAJaWYgKHJlc3VsdCAhPSBOVUxMKQogCXsKLQkJYm94X2NuKCZwb2ludCwgYm94KTsK KwkJKHZvaWQpIGJveF9jbigmcG9pbnQsIGJveCwgTlVMTCk7CiAJCWxzZWdfY2xvc2VwdF9wb2lu dChyZXN1bHQsIGxzZWcsICZwb2ludCk7CiAJfQogCkBAIC00MTIxLDExICs0MTU4LDIwIEBAIGNv bnN0cnVjdF9wb2ludChQR19GVU5DVElPTl9BUkdTKQogCiAKIHN0YXRpYyBpbmxpbmUgdm9pZAot cG9pbnRfYWRkX3BvaW50KFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIpCitw b2ludF9hZGRfcG9pbnQoUG9pbnQgKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQgKnB0MiwgTm9k ZSAqZXNjb250ZXh0KQogewotCXBvaW50X2NvbnN0cnVjdChyZXN1bHQsCi0JCQkJCWZsb2F0OF9w bChwdDEtPngsIHB0Mi0+eCksCi0JCQkJCWZsb2F0OF9wbChwdDEtPnksIHB0Mi0+eSkpOworCWZs b2F0OAkJeDsKKwlmbG9hdDgJCXk7CisKKwl4ID0gZmxvYXQ4X3BsX3NhZmUocHQxLT54LCBwdDIt PngsIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJ cmV0dXJuOworCisJeSA9IGZsb2F0OF9wbF9zYWZlKHB0MS0+eSwgcHQyLT55LCBlc2NvbnRleHQp OworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybjsKKworCXBv aW50X2NvbnN0cnVjdChyZXN1bHQsIHgsIHkpOwogfQogCiBEYXR1bQpAQCAtNDEzNyw3ICs0MTgz LDcgQEAgcG9pbnRfYWRkKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHQgPSBwYWxsb2Nfb2Jq ZWN0KFBvaW50KTsKIAotCXBvaW50X2FkZF9wb2ludChyZXN1bHQsIHAxLCBwMik7CisJcG9pbnRf YWRkX3BvaW50KHJlc3VsdCwgcDEsIHAyLCBmY2luZm8tPmNvbnRleHQpOwogCiAJUEdfUkVUVVJO X1BPSU5UX1AocmVzdWx0KTsKIH0KQEAgLTQyNDksOCArNDI5NSw4IEBAIGJveF9hZGQoUEdfRlVO Q1RJT05fQVJHUykKIAogCXJlc3VsdCA9IHBhbGxvY19vYmplY3QoQk9YKTsKIAotCXBvaW50X2Fk ZF9wb2ludCgmcmVzdWx0LT5oaWdoLCAmYm94LT5oaWdoLCBwKTsKLQlwb2ludF9hZGRfcG9pbnQo JnJlc3VsdC0+bG93LCAmYm94LT5sb3csIHApOworCXBvaW50X2FkZF9wb2ludCgmcmVzdWx0LT5o aWdoLCAmYm94LT5oaWdoLCBwLCBmY2luZm8tPmNvbnRleHQpOworCXBvaW50X2FkZF9wb2ludCgm cmVzdWx0LT5sb3csICZib3gtPmxvdywgcCwgZmNpbmZvLT5jb250ZXh0KTsKIAogCVBHX1JFVFVS Tl9CT1hfUChyZXN1bHQpOwogfQpAQCAtNDQxMyw3ICs0NDU5LDcgQEAgcGF0aF9hZGRfcHQoUEdf RlVOQ1RJT05fQVJHUykKIAlpbnQJCQlpOwogCiAJZm9yIChpID0gMDsgaSA8IHBhdGgtPm5wdHM7 IGkrKykKLQkJcG9pbnRfYWRkX3BvaW50KCZwYXRoLT5wW2ldLCAmcGF0aC0+cFtpXSwgcG9pbnQp OworCQlwb2ludF9hZGRfcG9pbnQoJnBhdGgtPnBbaV0sICZwYXRoLT5wW2ldLCBwb2ludCwgZmNp bmZvLT5jb250ZXh0KTsKIAogCVBHX1JFVFVSTl9QQVRIX1AocGF0aCk7CiB9CkBAIC00NDcxLDcg KzQ1MTcsNyBAQCBwYXRoX3BvbHkoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIFRoaXMgaXMgbm90 IHZlcnkgY29uc2lzdGVudCAtLS0gb3RoZXIgc2ltaWxhciBjYXNlcyByZXR1cm4gTlVMTCAuLi4g Ki8KIAlpZiAoIXBhdGgtPmNsb3NlZCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2lu Zm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFS QU1FVEVSX1ZBTFVFKSwKIAkJCQkgZXJybXNnKCJvcGVuIHBhdGggY2Fubm90IGJlIGNvbnZlcnRl ZCB0byBwb2x5Z29uIikpKTsKIApAQCAtNDUyMSw3ICs0NTY3LDkgQEAgcG9seV9jZW50ZXIoUEdf RlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IHBhbGxvY19vYmplY3QoUG9pbnQpOwogCi0JcG9s eV90b19jaXJjbGUoJmNpcmNsZSwgcG9seSk7CisJaWYgKCFwb2x5X3RvX2NpcmNsZSgmY2lyY2xl LCBwb2x5LCBmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOworCiAJKnJlc3Vs dCA9IGNpcmNsZS5jZW50ZXI7CiAKIAlQR19SRVRVUk5fUE9JTlRfUChyZXN1bHQpOwpAQCAtNDk4 Myw3ICs1MDMxLDcgQEAgY2lyY2xlX2FkZF9wdChQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0 ID0gcGFsbG9jX29iamVjdChDSVJDTEUpOwogCi0JcG9pbnRfYWRkX3BvaW50KCZyZXN1bHQtPmNl bnRlciwgJmNpcmNsZS0+Y2VudGVyLCBwb2ludCk7CisJcG9pbnRfYWRkX3BvaW50KCZyZXN1bHQt PmNlbnRlciwgJmNpcmNsZS0+Y2VudGVyLCBwb2ludCwgZmNpbmZvLT5jb250ZXh0KTsKIAlyZXN1 bHQtPnJhZGl1cyA9IGNpcmNsZS0+cmFkaXVzOwogCiAJUEdfUkVUVVJOX0NJUkNMRV9QKHJlc3Vs dCk7CkBAIC01MjA0LDE0ICs1MjUyLDMwIEBAIGNpcmNsZV9ib3goUEdfRlVOQ1RJT05fQVJHUykK IAogCWJveCA9IHBhbGxvY19vYmplY3QoQk9YKTsKIAotCWRlbHRhID0gZmxvYXQ4X2RpdihjaXJj bGUtPnJhZGl1cywgc3FydCgyLjApKTsKKwlkZWx0YSA9IGZsb2F0OF9kaXZfc2FmZShjaXJjbGUt PnJhZGl1cywgc3FydCgyLjApLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09D Q1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKIAotCWJveC0+aGlnaC54ID0g ZmxvYXQ4X3BsKGNpcmNsZS0+Y2VudGVyLngsIGRlbHRhKTsKLQlib3gtPmxvdy54ID0gZmxvYXQ4 X21pKGNpcmNsZS0+Y2VudGVyLngsIGRlbHRhKTsKLQlib3gtPmhpZ2gueSA9IGZsb2F0OF9wbChj aXJjbGUtPmNlbnRlci55LCBkZWx0YSk7Ci0JYm94LT5sb3cueSA9IGZsb2F0OF9taShjaXJjbGUt PmNlbnRlci55LCBkZWx0YSk7CisJYm94LT5oaWdoLnggPSBmbG9hdDhfcGxfc2FmZShjaXJjbGUt PmNlbnRlci54LCBkZWx0YSwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NV UlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwlib3gtPmxvdy54ID0gZmxv YXQ4X21pX3NhZmUoY2lyY2xlLT5jZW50ZXIueCwgZGVsdGEsIGZjaW5mby0+Y29udGV4dCk7CisJ aWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOwor CisJYm94LT5oaWdoLnkgPSBmbG9hdDhfcGxfc2FmZShjaXJjbGUtPmNlbnRlci55LCBkZWx0YSwg ZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRl eHQpKQorCQlnb3RvIGZhaWw7CisKKwlib3gtPmxvdy55ID0gZmxvYXQ4X21pX3NhZmUoY2lyY2xl LT5jZW50ZXIueSwgZGVsdGEsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0ND VVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOwogCiAJUEdfUkVUVVJOX0JPWF9Q KGJveCk7CisKK2ZhaWw6CisJUEdfUkVUVVJOX05VTEwoKTsKIH0KIAogLyogYm94X2NpcmNsZSgp CkBAIC01MjIyLDE1ICs1Mjg2LDM1IEBAIGJveF9jaXJjbGUoUEdfRlVOQ1RJT05fQVJHUykKIHsK IAlCT1gJCSAgICpib3ggPSBQR19HRVRBUkdfQk9YX1AoMCk7CiAJQ0lSQ0xFCSAgICpjaXJjbGU7 CisJZmxvYXQ4CQl4OworCWZsb2F0OAkJeTsKIAogCWNpcmNsZSA9IHBhbGxvY19vYmplY3QoQ0lS Q0xFKTsKIAotCWNpcmNsZS0+Y2VudGVyLnggPSBmbG9hdDhfZGl2KGZsb2F0OF9wbChib3gtPmhp Z2gueCwgYm94LT5sb3cueCksIDIuMCk7Ci0JY2lyY2xlLT5jZW50ZXIueSA9IGZsb2F0OF9kaXYo ZmxvYXQ4X3BsKGJveC0+aGlnaC55LCBib3gtPmxvdy55KSwgMi4wKTsKKwl4ID0gZmxvYXQ4X3Bs X3NhZmUoYm94LT5oaWdoLngsIGJveC0+bG93LngsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNP RlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOworCisJY2ly Y2xlLT5jZW50ZXIueCA9IGZsb2F0OF9kaXZfc2FmZSh4LCAyLjAsIGZjaW5mby0+Y29udGV4dCk7 CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWls OworCisJeSA9IGZsb2F0OF9wbF9zYWZlKGJveC0+aGlnaC55LCBib3gtPmxvdy55LCBmY2luZm8t PmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJ CWdvdG8gZmFpbDsKKworCWNpcmNsZS0+Y2VudGVyLnkgPSBmbG9hdDhfZGl2X3NhZmUoeSwgMi4w LCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29u dGV4dCkpCisJCWdvdG8gZmFpbDsKIAogCWNpcmNsZS0+cmFkaXVzID0gcG9pbnRfZHQoJmNpcmNs ZS0+Y2VudGVyLCAmYm94LT5oaWdoLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9S X09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKIAogCVBHX1JFVFVSTl9D SVJDTEVfUChjaXJjbGUpOworCitmYWlsOgorCVBHX1JFVFVSTl9OVUxMKCk7CiB9CiAKIApAQCAt NTI4OSwxNSArNTM3MywxNiBAQCBjaXJjbGVfcG9seShQR19GVU5DVElPTl9BUkdTKQogLyoKICAq IENvbnZlcnQgcG9seWdvbiB0byBjaXJjbGUKICAqCi0gKiBUaGUgcmVzdWx0IG11c3QgYmUgcHJl YWxsb2NhdGVkLgorICogVGhlIHBhcmFtZXRlciAicmVzdWx0IiBtdXN0IGJlIHByZWFsbG9jYXRl ZC4KICAqCiAgKiBYWFggVGhpcyBhbGdvcml0aG0gc2hvdWxkIHVzZSB3ZWlnaHRlZCBtZWFucyBv ZiBsaW5lIHNlZ21lbnRzCiAgKglyYXRoZXIgdGhhbiBzdHJhaWdodCBhdmVyYWdlIHZhbHVlcyBv ZiBwb2ludHMgLSB0Z2wgOTcvMDEvMjEuCiAgKi8KLXN0YXRpYyB2b2lkCi1wb2x5X3RvX2NpcmNs ZShDSVJDTEUgKnJlc3VsdCwgUE9MWUdPTiAqcG9seSkKK3N0YXRpYyBib29sCitwb2x5X3RvX2Np cmNsZShDSVJDTEUgKnJlc3VsdCwgUE9MWUdPTiAqcG9seSwgTm9kZSAqZXNjb250ZXh0KQogewog CWludAkJCWk7CisJZmxvYXQ4CQl4OwogCiAJQXNzZXJ0KHBvbHktPm5wdHMgPiAwKTsKIApAQCAt NTMwNiwxNCArNTM5MSw0MyBAQCBwb2x5X3RvX2NpcmNsZShDSVJDTEUgKnJlc3VsdCwgUE9MWUdP TiAqcG9seSkKIAlyZXN1bHQtPnJhZGl1cyA9IDA7CiAKIAlmb3IgKGkgPSAwOyBpIDwgcG9seS0+ bnB0czsgaSsrKQotCQlwb2ludF9hZGRfcG9pbnQoJnJlc3VsdC0+Y2VudGVyLCAmcmVzdWx0LT5j ZW50ZXIsICZwb2x5LT5wW2ldKTsKLQlyZXN1bHQtPmNlbnRlci54ID0gZmxvYXQ4X2RpdihyZXN1 bHQtPmNlbnRlci54LCBwb2x5LT5ucHRzKTsKLQlyZXN1bHQtPmNlbnRlci55ID0gZmxvYXQ4X2Rp dihyZXN1bHQtPmNlbnRlci55LCBwb2x5LT5ucHRzKTsKKwl7CisJCXBvaW50X2FkZF9wb2ludCgm cmVzdWx0LT5jZW50ZXIsCisJCQkJCQkmcmVzdWx0LT5jZW50ZXIsCisJCQkJCQkmcG9seS0+cFtp XSwKKwkJCQkJCWVzY29udGV4dCk7CisJCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4 dCkpCisJCQlyZXR1cm4gZmFsc2U7CisJfQorCisJcmVzdWx0LT5jZW50ZXIueCA9IGZsb2F0OF9k aXZfc2FmZShyZXN1bHQtPmNlbnRlci54LAorCQkJCQkJCQkJICAgcG9seS0+bnB0cywKKwkJCQkJ CQkJCSAgIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkK KwkJcmV0dXJuIGZhbHNlOworCisJcmVzdWx0LT5jZW50ZXIueSA9IGZsb2F0OF9kaXZfc2FmZShy ZXN1bHQtPmNlbnRlci55LAorCQkJCQkJCQkJICAgcG9seS0+bnB0cywKKwkJCQkJCQkJCSAgIGVz Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJu IGZhbHNlOwogCiAJZm9yIChpID0gMDsgaSA8IHBvbHktPm5wdHM7IGkrKykKLQkJcmVzdWx0LT5y YWRpdXMgPSBmbG9hdDhfcGwocmVzdWx0LT5yYWRpdXMsCi0JCQkJCQkJCSAgIHBvaW50X2R0KCZw b2x5LT5wW2ldLCAmcmVzdWx0LT5jZW50ZXIsIE5VTEwpKTsKLQlyZXN1bHQtPnJhZGl1cyA9IGZs b2F0OF9kaXYocmVzdWx0LT5yYWRpdXMsIHBvbHktPm5wdHMpOworCXsKKwkJeCA9IHBvaW50X2R0 KCZwb2x5LT5wW2ldLCAmcmVzdWx0LT5jZW50ZXIsIGVzY29udGV4dCk7CisJCWlmIChTT0ZUX0VS Uk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCQlyZXR1cm4gZmFsc2U7CisKKwkJcmVzdWx0LT5y YWRpdXMgPSBmbG9hdDhfcGxfc2FmZShyZXN1bHQtPnJhZGl1cywgeCwgZXNjb250ZXh0KTsKKwkJ aWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJCXJldHVybiBmYWxzZTsKKwl9 CisKKwlyZXN1bHQtPnJhZGl1cyA9IGZsb2F0OF9kaXZfc2FmZShyZXN1bHQtPnJhZGl1cywgcG9s eS0+bnB0cywgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQp KQorCQlyZXR1cm4gZmFsc2U7CisKKwlyZXR1cm4gdHJ1ZTsKIH0KIAogRGF0dW0KQEAgLTUzMjQs NyArNTQzOCw4IEBAIHBvbHlfY2lyY2xlKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHQgPSBw YWxsb2Nfb2JqZWN0KENJUkNMRSk7CiAKLQlwb2x5X3RvX2NpcmNsZShyZXN1bHQsIHBvbHkpOwor CWlmICghcG9seV90b19jaXJjbGUocmVzdWx0LCBwb2x5LCBmY2luZm8tPmNvbnRleHQpKQorCQlQ R19SRVRVUk5fTlVMTCgpOwogCiAJUEdfUkVUVVJOX0NJUkNMRV9QKHJlc3VsdCk7CiB9Ci0tIAoy LjM0LjEKCg== --000000000000549053064ce1dba3 Content-Type: text/x-patch; charset="UTF-8"; name="v20-0022-CAST-expr-AS-newtype-DEFAULT-expr-ON-CONVERSION-ERROR.patch" Content-Disposition: attachment; filename="v20-0022-CAST-expr-AS-newtype-DEFAULT-expr-ON-CONVERSION-ERROR.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmoi9ly53 RnJvbSBmYmJkZjc2MmNlY2UyMTU2ODA4YjVmNDQyM2E4ZjlmZWM3MmExYmJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTMgTWFyIDIwMjYgMTQ6MTQ6NTggKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MCAyMi8yM10gQ0FTVChleHByIEFTIG5ld3R5cGUgREVGQVVMVCBleHByIE9OIENPTlZFUlNJT04K IEVSUk9SKQoKSW50cm9kdWNlIFNRTC1zdGFuZGFyZCBzYWZlIHR5cGUgY2FzdCBzeW50YXg6CiAg ICBDQVNUKGV4cHIgQVMgbmV3dHlwZSBERUZBVUxUIGV4cHIgT04gQ09OVkVSU0lPTiBFUlJPUikK VGhpcyBhbGxvdyB1c2VycyB0byBzcGVjaWZ5IGEgZGVmYXVsdCBmYWxsYmFjayBleHByZXNzaW9u IGlmIGEgdHlwZSBjb252ZXJzaW9uCmZhaWxzLCByYXRoZXIgdGhhbiByYWlzaW5nIGFuIGVycm9y LgoKV2l0aCB0aGlzIHBhdGNoc2V0LCBhbG1vc3QgYWxsIG9mIHRoZSBjYXN0IGZ1bmN0aW9ucyBp biBwZ19jYXN0LmNhc3RmdW5jIGFyZSBub3cKZXJyb3Itc2FmZS4gIENvZXJjZVZpYUlPIGFuZCBD b2VyY2VUb0RvbWFpbiB3ZXJlIGFscmVhZHkgZXJyb3Itc2FmZSBpbiB0aGUgSEVBRCwKc2VlIFsw XSwgdGhpcyBwYXRjaCBleHRlbmRzIGVycm9yLXNhZmUgYmVoYXZpb3IgdG8gQXJyYXlDb2VyY2VF eHByLgoKRXhhbXBsZToKICAgIC0tIFJldHVybnMgJzIwMTEtMDEtMDEnIGluc3RlYWQgb2YgdGhy b3dpbmcgYW4gaW52YWxpZCBpbnB1dCBzeW50YXggZXJyb3IuCiAgICBTRUxFQ1QgQ0FTVCgnMScg QVMgZGF0ZSBERUZBVUxUICcyMDExLTAxLTAxJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKCiMgQnVt cHMgY2F0dmVyc2lvbiByZXF1aXJlZAoKWzBdOiBodHRwczovL2dpdC5wb3N0Z3Jlc3FsLm9yZy9j Z2l0L3Bvc3RncmVzcWwuZ2l0L2NvbW1pdC8/aWQ9YWFhZjk0NDllYzZiZTYyY2IwZDMwZWQzNTg4 ZGMzODRmNTYyNzRiCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpm WTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCmNv bW1pdGZlc3Q6IGh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy9wYXRjaC81OTQxCi0t LQogY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91dCAgICAgICAgICAgIHwgICA1ICsK IGNvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dF8xLm91dCAgICAgICAgICB8ICAgNSArCiBj b250cmliL2NpdGV4dC9zcWwvY2l0ZXh0LnNxbCAgICAgICAgICAgICAgICAgfCAgIDIgKwogLi4u L3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC9zZWxlY3Qub3V0ICAgIHwgIDI0ICstCiBjb250 cmliL3BnX3N0YXRfc3RhdGVtZW50cy9zcWwvc2VsZWN0LnNxbCAgICAgfCAgIDUgKwogZG9jL3Ny Yy9zZ21sL3N5bnRheC5zZ21sICAgICAgICAgICAgICAgICAgICAgIHwgIDMyICsKIHNyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8ICA2OCArLQogc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyAgICAgICAgIHwgIDI5ICsKIHNyYy9iYWNrZW5k L2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jICAgICAgICAgICB8ICAyNyArCiBzcmMvYmFja2VuZC9u b2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgNTMgKysKIHNyYy9iYWNrZW5kL29w dGltaXplci91dGlsL2NsYXVzZXMuYyAgICAgICAgICB8ICA1MiArLQogc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDIzICsKIHNyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9hZ2cuYyAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfY29lcmNlLmMgICAgICAgICAgICAgfCAgNjkgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9leHByLmMgICAgICAgICAgICAgICB8IDM3MyArKysrKysrLQogc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2Z1bmMuYyAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV90eXBlLmMgICAgICAgICAgICAgICB8ICAxOCArCiBzcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfdXRpbGNtZC5jICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC9hcnJheWZ1bmNzLmMgICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFja2VuZC91dGlscy9hZHQv cnVsZXV0aWxzLmMgICAgICAgICAgICAgfCAgMjUgKwogc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9m bWdyLmMgICAgICAgICAgICAgICAgIHwgIDEzICsKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNF eHByLmggICAgICAgICAgICAgICB8ICAgNyArCiBzcmMvaW5jbHVkZS9mbWdyLmggICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgg ICAgICAgICAgICAgICAgIHwgIDIxICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAg ICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCAgICAg ICAgICAgICAgICAgfCAgMjUgKwogc3JjL2luY2x1ZGUvb3B0aW1pemVyL29wdGltaXplci5oICAg ICAgICAgICAgIHwgICAyICstCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfY29lcmNlLmggICAg ICAgICAgICAgfCAgMTMgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCAgICAgICAg ICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV90eXBlLmggICAgICAgICAg ICAgICB8ICAgMiArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Nhc3Qub3V0ICAgICAgICAg ICAgfCA4MDkgKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Ny ZWF0ZV9jYXN0Lm91dCAgICAgfCAgIDUgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lcXVp dmNsYXNzLm91dCAgICAgIHwgICA3ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1 bGUgICAgICAgICAgICB8ICAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY2FzdC5zcWwgICAg ICAgICAgICAgICAgIHwgMzQ3ICsrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVf Y2FzdC5zcWwgICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvZXF1aXZjbGFz cy5zcWwgICAgICAgICAgIHwgICAzICsKIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0 ICAgICAgICAgICAgICB8ICAgMiArCiAzOCBmaWxlcyBjaGFuZ2VkLCAyMDQyIGluc2VydGlvbnMo KyksIDU2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvY2FzdC5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL3Nx bC9jYXN0LnNxbAoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dC5v dXQgYi9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHQub3V0CmluZGV4IDhjMGJmNTRmMGYz Li5lY2ZhZjJhYTg1YSAxMDA2NDQKLS0tIGEvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0 Lm91dAorKysgYi9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHQub3V0CkBAIC0xMCw2ICsx MCwxMSBAQCBXSEVSRSBvcGMub2lkID49IDE2Mzg0IEFORCBOT1QgYW12YWxpZGF0ZShvcGMub2lk KTsKIC0tLS0tLS0tKy0tLS0tLS0tLQogKDAgcm93cykKIAorU0VMRUNUIENBU1QoJ2FiYyc6OmJw Y2hhciBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJv cgorRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGNoYXJhY3RlciB0byBjaXRleHQgd2hlbiBERUZB VUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJS T1IKK0xJTkUgMTogU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBTYWZlIHR5 cGUgY2FzdCBmb3IgdXNlci1kZWZpbmVkIHR5cGVzIGFyZSBub3QgeWV0IHN1cHBvcnRlZC4KIC0t IFRlc3QgdGhlIG9wZXJhdG9ycyBhbmQgaW5kZXhpbmcgZnVuY3Rpb25zCiAtLSBUZXN0ID0gYW5k IDw+LgogU0VMRUNUICdhJzo6Y2l0ZXh0ID0gJ2EnOjpjaXRleHQgQVMgdDsKZGlmZiAtLWdpdCBh L2NvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dF8xLm91dCBiL2NvbnRyaWIvY2l0ZXh0L2V4 cGVjdGVkL2NpdGV4dF8xLm91dAppbmRleCBjNWU1ZjE4MGYyYi4uM2UxMmNkNzkzYWQgMTAwNjQ0 Ci0tLSBhL2NvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dF8xLm91dAorKysgYi9jb250cmli L2NpdGV4dC9leHBlY3RlZC9jaXRleHRfMS5vdXQKQEAgLTEwLDYgKzEwLDExIEBAIFdIRVJFIG9w Yy5vaWQgPj0gMTYzODQgQU5EIE5PVCBhbXZhbGlkYXRlKG9wYy5vaWQpOwogLS0tLS0tLS0rLS0t LS0tLS0tCiAoMCByb3dzKQogCitTRUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNpdGV4dCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCitFUlJPUjogIGNhbm5v dCBjYXN0IHR5cGUgY2hhcmFjdGVyIHRvIGNpdGV4dCB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBp cyBzcGVjaWZpZWQgaW4gQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxF Q1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0ku Li4KKyAgICAgICAgICAgICAgICAgICAgXgorSElOVDogIFNhZmUgdHlwZSBjYXN0IGZvciB1c2Vy LWRlZmluZWQgdHlwZXMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkLgogLS0gVGVzdCB0aGUgb3BlcmF0 b3JzIGFuZCBpbmRleGluZyBmdW5jdGlvbnMKIC0tIFRlc3QgPSBhbmQgPD4uCiBTRUxFQ1QgJ2En OjpjaXRleHQgPSAnYSc6OmNpdGV4dCBBUyB0OwpkaWZmIC0tZ2l0IGEvY29udHJpYi9jaXRleHQv c3FsL2NpdGV4dC5zcWwgYi9jb250cmliL2NpdGV4dC9zcWwvY2l0ZXh0LnNxbAppbmRleCBhYTFj ZjlhYmQ1Yy4uYzgyMGIwYmQ0ZDkgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvY2l0ZXh0L3NxbC9jaXRl eHQuc3FsCisrKyBiL2NvbnRyaWIvY2l0ZXh0L3NxbC9jaXRleHQuc3FsCkBAIC05LDYgKzksOCBA QCBTRUxFQ1QgYW1uYW1lLCBvcGNuYW1lCiBGUk9NIHBnX29wY2xhc3Mgb3BjIExFRlQgSk9JTiBw Z19hbSBhbSBPTiBhbS5vaWQgPSBvcGNtZXRob2QKIFdIRVJFIG9wYy5vaWQgPj0gMTYzODQgQU5E IE5PVCBhbXZhbGlkYXRlKG9wYy5vaWQpOwogCitTRUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFT IGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCisKIC0t IFRlc3QgdGhlIG9wZXJhdG9ycyBhbmQgaW5kZXhpbmcgZnVuY3Rpb25zCiAKIC0tIFRlc3QgPSBh bmQgPD4uCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC9z ZWxlY3Qub3V0IGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvZXhwZWN0ZWQvc2VsZWN0Lm91 dAppbmRleCBhMDY5MTE5Yzc5MC4uODRmMTA4MTBmNzIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdf c3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL3NlbGVjdC5vdXQKKysrIGIvY29udHJpYi9wZ19zdGF0 X3N0YXRlbWVudHMvZXhwZWN0ZWQvc2VsZWN0Lm91dApAQCAtNzMsNiArNzMsMjUgQEAgU0VMRUNU IDEgQVMgImludCIgT0ZGU0VUIDIgRkVUQ0ggRklSU1QgMyBST1cgT05MWTsKIC0tLS0tCiAoMCBy b3dzKQogCistLSBlcnJvciBzYWZlIHR5cGUgY2FzdAorU0VMRUNUIENBU1QoJ2EnIEFTIGludCBE RUZBVUxUIDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50NCAKKy0tLS0tLQorICAgIDIKKygx IHJvdykKKworU0VMRUNUIENBU1QoJzEyJyBBUyBudW1lcmljIERFRkFVTFQgMiBPTiBDT05WRVJT SU9OIEVSUk9SKTsKKyBudW1lcmljIAorLS0tLS0tLS0tCisgICAgICAxMgorKDEgcm93KQorCitT RUxFQ1QgQ0FTVCgnMTInIEFTIG51bWVyaWMoMTApIERFRkFVTFQgMiBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKKyBudW1lcmljIAorLS0tLS0tLS0tCisgICAgICAxMgorKDEgcm93KQorCiAtLSBESVNU SU5DVCBhbmQgT1JERVIgQlkgcGF0dGVybnMKIC0tIFRyeSBzb21lIHF1ZXJ5IHBlcm11dGF0aW9u cyB3aGljaCBvbmNlIHByb2R1Y2VkIGlkZW50aWNhbCBxdWVyeSBJRHMKIFNFTEVDVCBESVNUSU5D VCAxIEFTICJpbnQiOwpAQCAtMjIyLDYgKzI0MSw5IEBAIFNFTEVDVCBjYWxscywgcm93cywgcXVl cnkgRlJPTSBwZ19zdGF0X3N0YXRlbWVudHMgT1JERVIgQlkgcXVlcnkgQ09MTEFURSAiQyI7CiAg ICAgIDIgfCAgICAyIHwgU0VMRUNUICQxIEFTICJpbnQiIE9SREVSIEJZIDEKICAgICAgMSB8ICAg IDIgfCBTRUxFQ1QgJDEgQVMgaSBVTklPTiBTRUxFQ1QgJDIgT1JERVIgQlkgaQogICAgICAxIHwg ICAgMSB8IFNFTEVDVCAkMSB8fCAkMgorICAgICAxIHwgICAgMSB8IFNFTEVDVCBDQVNUKCQxIEFT IGludCBERUZBVUxUICQyIE9OIENPTlZFUlNJT04gRVJST1IpCisgICAgIDEgfCAgICAxIHwgU0VM RUNUIENBU1QoJDEgQVMgbnVtZXJpYyBERUZBVUxUICQyIE9OIENPTlZFUlNJT04gRVJST1IpCisg ICAgIDEgfCAgICAxIHwgU0VMRUNUIENBU1QoJDEgQVMgbnVtZXJpYygxMCkgREVGQVVMVCAkMiBP TiBDT05WRVJTSU9OIEVSUk9SKQogICAgICAyIHwgICAgMiB8IFNFTEVDVCBESVNUSU5DVCAkMSBB UyAiaW50IgogICAgICAwIHwgICAgMCB8IFNFTEVDVCBjYWxscywgcm93cywgcXVlcnkgRlJPTSBw Z19zdGF0X3N0YXRlbWVudHMgT1JERVIgQlkgcXVlcnkgQ09MTEFURSAiQyIKICAgICAgMSB8ICAg IDEgfCBTRUxFQ1QgcGdfc3RhdF9zdGF0ZW1lbnRzX3Jlc2V0KCkgSVMgTk9UIE5VTEwgQVMgdApA QCAtMjMwLDcgKzI1Miw3IEBAIFNFTEVDVCBjYWxscywgcm93cywgcXVlcnkgRlJPTSBwZ19zdGF0 X3N0YXRlbWVudHMgT1JERVIgQlkgcXVlcnkgQ09MTEFURSAiQyI7CiAgICAgICAgfCAgICAgIHwg KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKICAgICAgICB8ICAgICAgfCAgIFNFTEVDVCBmIEZST00gdCBP UkRFUiBCWSBmCiAgICAgIDEgfCAgICAxIHwgc2VsZWN0ICQxOjpqc29uYiA/ICQyCi0oMTcgcm93 cykKKygyMCByb3dzKQogCiBTRUxFQ1QgcGdfc3RhdF9zdGF0ZW1lbnRzX3Jlc2V0KCkgSVMgTk9U IE5VTEwgQVMgdDsKICB0IApkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMv c3FsL3NlbGVjdC5zcWwgYi9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9zcWwvc2VsZWN0LnNx bAppbmRleCBhMTBkNjE4YzAzNC4uNGJlOTc5NzdiYTYgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdf c3RhdF9zdGF0ZW1lbnRzL3NxbC9zZWxlY3Quc3FsCisrKyBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0 ZW1lbnRzL3NxbC9zZWxlY3Quc3FsCkBAIC0yNSw2ICsyNSwxMSBAQCBTRUxFQ1QgMSBBUyAiaW50 IiBMSU1JVCAzIE9GRlNFVCAzOwogU0VMRUNUIDEgQVMgImludCIgT0ZGU0VUIDEgRkVUQ0ggRklS U1QgMiBST1cgT05MWTsKIFNFTEVDVCAxIEFTICJpbnQiIE9GRlNFVCAyIEZFVENIIEZJUlNUIDMg Uk9XIE9OTFk7CiAKKy0tIGVycm9yIHNhZmUgdHlwZSBjYXN0CitTRUxFQ1QgQ0FTVCgnYScgQVMg aW50IERFRkFVTFQgMiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcxMicgQVMg bnVtZXJpYyBERUZBVUxUIDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnMTIn IEFTIG51bWVyaWMoMTApIERFRkFVTFQgMiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKwogLS0gRElT VElOQ1QgYW5kIE9SREVSIEJZIHBhdHRlcm5zCiAtLSBUcnkgc29tZSBxdWVyeSBwZXJtdXRhdGlv bnMgd2hpY2ggb25jZSBwcm9kdWNlZCBpZGVudGljYWwgcXVlcnkgSURzCiBTRUxFQ1QgRElTVElO Q1QgMSBBUyAiaW50IjsKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9zeW50YXguc2dtbCBiL2Rv Yy9zcmMvc2dtbC9zeW50YXguc2dtbAppbmRleCA2NzQ4Mjk5Njg2MS4uNGFiZDVlNjcxYWUgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9zeW50YXguc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvc3lu dGF4LnNnbWwKQEAgLTIwNzEsNiArMjA3MSwxMCBAQCBDQVNUICggPHJlcGxhY2VhYmxlPmV4cHJl c3Npb248L3JlcGxhY2VhYmxlPiBBUyA8cmVwbGFjZWFibGU+dHlwZTwvcmVwbGFjZWFibGU+CiAg ICAgVGhlIDxsaXRlcmFsPkNBU1Q8L2xpdGVyYWw+IHN5bnRheCBjb25mb3JtcyB0byBTUUw7IHRo ZSBzeW50YXggd2l0aAogICAgIDxsaXRlcmFsPjo6PC9saXRlcmFsPiBpcyBoaXN0b3JpY2FsIDxw cm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4KICAgICB1c2FnZS4KKyAgICBUaGUg ZXF1aXZhbGVudCBPTiBDT05WRVJTSU9OIEVSUk9SIGJlaGF2aW9yIGlzOgorPHN5bm9wc2lzPgor Q0FTVCAoIDxyZXBsYWNlYWJsZT5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2Vh YmxlPnR5cGU8L3JlcGxhY2VhYmxlPiBFUlJPUiBPTiBDT05WRVJTSU9OIEVSUk9SICkKKzwvc3lu b3BzaXM+CiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgpAQCAtMjEyNSw2ICsyMTI5LDM0IEBAIENB U1QgKCA8cmVwbGFjZWFibGU+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IEFTIDxyZXBsYWNlYWJs ZT50eXBlPC9yZXBsYWNlYWJsZT4KICAgICAgPHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZWNhc3Qi Lz4uCiAgICAgPC9wYXJhPgogICAgPC9ub3RlPgorCisgPHNlY3QzIGlkPSJzcWwtc3ludGF4LXR5 cGUtY2FzdHMtc2FmZSI+CisgIDx0aXRsZT5TYWZlIFR5cGUgQ2FzdDwvdGl0bGU+CisgICA8cGFy YT4KKyAgICBBIHR5cGUgY2FzdCBtYXkgb2NjYXNpb25hbGx5IGZhaWwuIFRvIGd1YXJkIGFnYWlu c3Qgc3VjaCBmYWlsdXJlcywgeW91IGNhbgorICAgIHByb3ZpZGUgYW4gPGxpdGVyYWw+T04gQ09O VkVSU0lPTiBFUlJPUjwvbGl0ZXJhbD4gY2xhdXNlIHRvIGhhbmRsZSBwb3RlbnRpYWwgZXJyb3Jz LgorICAgIFRoZSBzeW50YXggZm9yIHNhZmUgdHlwZSBjYXN0IGlzOgorPHN5bm9wc2lzPgorQ0FT VCAoIDxyZXBsYWNlYWJsZT5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxl PnR5cGU8L3JlcGxhY2VhYmxlPiBERUZBVUxUIDxyZXBsYWNlYWJsZT5leHByZXNzaW9uPC9yZXBs YWNlYWJsZT4gT04gQ09OVkVSU0lPTiBFUlJPUiApCis8L3N5bm9wc2lzPgorICAgIElmIHRoZSB0 eXBlIGNhc3QgZmFpbHMsIGFuIGVycm9yIGlzIG5vdCByYWlzZWQuICBJbnN0ZWFkLCBldmFsdWF0 aW9uIGZhbGxzCisgICAgYmFjayB0byB0aGUgZGVmYXVsdCA8cmVwbGFjZWFibGU+ZXhwcmVzc2lv bjwvcmVwbGFjZWFibGU+IHNwZWNpZmllZCBpbiB0aGUKKyAgICA8bGl0ZXJhbD5PTiBDT05WRVJT SU9OIEVSUk9SPC9saXRlcmFsPiBjbGF1c2UuCisgICAgQXQgcHJlc2VudCwgdGhpcyBvbmx5IHN1 cHBvcnQgYnVpbHQtaW4gdHlwZSBjYXN0cywgc2VlIDx4cmVmIGxpbmtlbmQ9ImNhdGFsb2ctcGct Y2FzdCIvPi4KKyAgICBVc2VyLWRlZmluZWQgdHlwZSBjYXN0cyBjcmVhdGVkIHdpdGggPGxpbmsg bGlua2VuZD0ic3FsLWNyZWF0ZWNhc3QiPkNSRUFURSBDQVNUPC9saW5rPgorICAgIGFyZSBub3Qg c3VwcG9ydGVkLgorICA8L3BhcmE+CisKKyAgICA8cGFyYT4KKyAgICBTb21lIGV4YW1wbGVzOgor PHNjcmVlbj4KK1NFTEVDVCBDQVNUKFRFWFQgJ2Vycm9yJyBBUyBpbnRlZ2VyIERFRkFVTFQgMyBP TiBDT05WRVJTSU9OIEVSUk9SKTsKKzxsaW5lYW5ub3RhdGlvbj5SZXN1bHQ6IDwvbGluZWFubm90 YXRpb24+PGNvbXB1dGVyb3V0cHV0PjM8L2NvbXB1dGVyb3V0cHV0PgorU0VMRUNUIENBU1QoVEVY VCAnZXJyb3InIEFTIG51bWVyaWMgREVGQVVMVCAxLjEgT04gQ09OVkVSU0lPTiBFUlJPUik7Cis8 bGluZWFubm90YXRpb24+UmVzdWx0OiA8L2xpbmVhbm5vdGF0aW9uPjxjb21wdXRlcm91dHB1dD4x LjE8L2NvbXB1dGVyb3V0cHV0PgorPC9zY3JlZW4+CisgICAgPC9wYXJhPgorICA8L3NlY3QzPgog ICA8L3NlY3QyPgogCiAgIDxzZWN0MiBpZD0ic3FsLXN5bnRheC1jb2xsYXRlLWV4cHJzIj4KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwci5jCmluZGV4IGJkNDZiNzVlNDk4Li5jOTI0ZTdiMTIzZiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYworKysgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwci5jCkBAIC05OSw2ICs5OSw5IEBAIHN0YXRpYyB2b2lkIEV4ZWNCdWls ZEFnZ1RyYW5zQ2FsbChFeHByU3RhdGUgKnN0YXRlLCBBZ2dTdGF0ZSAqYWdnc3RhdGUsCiBzdGF0 aWMgdm9pZCBFeGVjSW5pdEpzb25FeHByKEpzb25FeHByICpqc2V4cHIsIEV4cHJTdGF0ZSAqc3Rh dGUsCiAJCQkJCQkJIERhdHVtICpyZXN2LCBib29sICpyZXNudWxsLAogCQkJCQkJCSBFeHByRXZh bFN0ZXAgKnNjcmF0Y2gpOworc3RhdGljIHZvaWQgRXhlY0luaXRTYWZlVHlwZUNhc3RFeHByKFNh ZmVUeXBlQ2FzdEV4cHIgKnN0Y2V4cHIsIEV4cHJTdGF0ZSAqc3RhdGUsCisJCQkJCQkJCQkgRGF0 dW0gKnJlc3YsIGJvb2wgKnJlc251bGwsCisJCQkJCQkJCQkgRXhwckV2YWxTdGVwICpzY3JhdGNo KTsKIHN0YXRpYyB2b2lkIEV4ZWNJbml0SnNvbkNvZXJjaW9uKEV4cHJTdGF0ZSAqc3RhdGUsIEpz b25SZXR1cm5pbmcgKnJldHVybmluZywKIAkJCQkJCQkJIEVycm9yU2F2ZUNvbnRleHQgKmVzY29u dGV4dCwgYm9vbCBvbWl0X3F1b3RlcywKIAkJCQkJCQkJIGJvb2wgZXhpc3RzX2NvZXJjZSwKQEAg LTE3MzQsNiArMTczNyw3IEBAIEV4ZWNJbml0RXhwclJlYyhFeHByICpub2RlLCBFeHByU3RhdGUg KnN0YXRlLAogCiAJCQkJZWxlbXN0YXRlLT5pbm5lcm1vc3RfY2FzZXZhbCA9IHBhbGxvY19vYmpl Y3QoRGF0dW0pOwogCQkJCWVsZW1zdGF0ZS0+aW5uZXJtb3N0X2Nhc2VudWxsID0gcGFsbG9jX29i amVjdChib29sKTsKKwkJCQllbGVtc3RhdGUtPmVzY29udGV4dCA9IHN0YXRlLT5lc2NvbnRleHQ7 CiAKIAkJCQlFeGVjSW5pdEV4cHJSZWMoYWNvZXJjZS0+ZWxlbWV4cHIsIGVsZW1zdGF0ZSwKIAkJ CQkJCQkJJmVsZW1zdGF0ZS0+cmVzdmFsdWUsICZlbGVtc3RhdGUtPnJlc251bGwpOwpAQCAtMjIw OSw2ICsyMjEzLDE1IEBAIEV4ZWNJbml0RXhwclJlYyhFeHByICpub2RlLCBFeHByU3RhdGUgKnN0 YXRlLAogCQkJCWJyZWFrOwogCQkJfQogCisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJ eworCQkJCVNhZmVUeXBlQ2FzdEV4cHIgKnN0Y2V4cHIgPSBjYXN0Tm9kZShTYWZlVHlwZUNhc3RF eHByLCBub2RlKTsKKworCQkJCUV4ZWNJbml0U2FmZVR5cGVDYXN0RXhwcihzdGNleHByLCBzdGF0 ZSwgcmVzdiwgcmVzbnVsbCwgJnNjcmF0Y2gpOworCisJCQkJYnJlYWs7CisJCQl9CisKIAkJY2Fz ZSBUX0NvYWxlc2NlRXhwcjoKIAkJCXsKIAkJCQlDb2FsZXNjZUV4cHIgKmNvYWxlc2NlID0gKENv YWxlc2NlRXhwciAqKSBub2RlOwpAQCAtMjc2OSw3ICsyNzgyLDggQEAgRXhlY0luaXRGdW5jKEV4 cHJFdmFsU3RlcCAqc2NyYXRjaCwgRXhwciAqbm9kZSwgTGlzdCAqYXJncywgT2lkIGZ1bmNpZCwK IAogCS8qIEluaXRpYWxpemUgZnVuY3Rpb24gY2FsbCBwYXJhbWV0ZXIgc3RydWN0dXJlIHRvbyAq LwogCUluaXRGdW5jdGlvbkNhbGxJbmZvRGF0YSgqZmNpbmZvLCBmbGluZm8sCi0JCQkJCQkJIG5h cmdzLCBpbnB1dGNvbGxpZCwgTlVMTCwgTlVMTCk7CisJCQkJCQkJIG5hcmdzLCBpbnB1dGNvbGxp ZCwKKwkJCQkJCQkgKE5vZGUgKikgc3RhdGUtPmVzY29udGV4dCwgTlVMTCk7CiAKIAkvKiBLZWVw IGV4dHJhIGNvcGllcyBvZiB0aGlzIGluZm8gdG8gc2F2ZSBhbiBpbmRpcmVjdGlvbiBhdCBydW50 aW1lICovCiAJc2NyYXRjaC0+ZC5mdW5jLmZuX2FkZHIgPSBmbGluZm8tPmZuX2FkZHI7CkBAIC00 NzY4LDYgKzQ3ODIsNTggQEAgRXhlY0J1aWxkUGFyYW1TZXRFcXVhbChUdXBsZURlc2MgZGVzYywK IAlyZXR1cm4gc3RhdGU7CiB9CiAKKy8qCisgKiBQdXNoIHN0ZXBzIHRvIGV2YWx1YXRlIGEgU2Fm ZVR5cGVDYXN0RXhwciBhbmQgaXRzIHZhcmlvdXMgc3Vic2lkaWFyeQorICogZXhwcmVzc2lvbnMu CisgKi8KK3N0YXRpYyB2b2lkCitFeGVjSW5pdFNhZmVUeXBlQ2FzdEV4cHIoU2FmZVR5cGVDYXN0 RXhwciAqc3RjZXhwciwgRXhwclN0YXRlICpzdGF0ZSwKKwkJCQkJCSBEYXR1bSAqcmVzdiwgYm9v bCAqcmVzbnVsbCwKKwkJCQkJCSBFeHByRXZhbFN0ZXAgKnNjcmF0Y2gpCit7CisJLyoKKwkgKiBD b2VyY2lvbiB0byB0aGUgdGFyZ2V0IHR5cGUgZmFpbGVkLiBGYWxsaW5nIGJhY2sgdG8gdGhlIERF RkFVTFQKKwkgKiBleHByZXNzaW9uIGZyb20gdGhlIE9OIENPTlZFUlNJT04gRVJST1IgY2xhdXNl IHRvIGZpbmlzaC4KKwkgKi8KKwlpZiAoc3RjZXhwci0+Y2FzdGV4cHIgPT0gTlVMTCkKKwl7CisJ CUV4ZWNJbml0RXhwclJlYyhzdGNleHByLT5kZWZleHByLCBzdGF0ZSwgcmVzdiwgcmVzbnVsbCk7 CisKKwkJcmV0dXJuOworCX0KKwllbHNlCisJeworCQlTYWZlVHlwZUNhc3RTdGF0ZSAqc3Rjc3Rh dGUgPSBwYWxsb2MwX29iamVjdChTYWZlVHlwZUNhc3RTdGF0ZSk7CisJCUVycm9yU2F2ZUNvbnRl eHQgKnNhdmVkX2VzY29udGV4dCA9IHN0YXRlLT5lc2NvbnRleHQ7CisKKwkJc3Rjc3RhdGUtPnN0 Y2V4cHIgPSBzdGNleHByOworCQlzdGNzdGF0ZS0+ZXNjb250ZXh0LnR5cGUgPSBUX0Vycm9yU2F2 ZUNvbnRleHQ7CisJCXN0YXRlLT5lc2NvbnRleHQgPSAmc3Rjc3RhdGUtPmVzY29udGV4dDsKKwor CQkvKiBldmFsdWF0ZSBhcmd1bWVudCBleHByZXNzaW9uIGludG8gc3RlcCdzIHJlc3VsdCBhcmVh ICovCisJCUV4ZWNJbml0RXhwclJlYyhzdGNleHByLT5jYXN0ZXhwciwgc3RhdGUsIHJlc3YsIHJl c251bGwpOworCQlzY3JhdGNoLT5vcGNvZGUgPSBFRU9QX1NBRkVUWVBFX0NBU1Q7CisJCXNjcmF0 Y2gtPmQuc3RjZXhwci5zdGNzdGF0ZSA9IHN0Y3N0YXRlOworCQlFeHByRXZhbFB1c2hTdGVwKHN0 YXRlLCBzY3JhdGNoKTsKKworCQkvKgorCQkgKiBFdmFsdWF0ZSB0aGUgREVGQVVMVCBleHByZXNz aW9uLCBza2lwcGluZyBpZiBpdCdzIGEgYmluYXJ5IGNvZXJjaW9uCisJCSAqIGNhc3QuIHN0YXRl LT5lc2NvbnRleHQgbXVzdCBiZSBOVUxMLCBhcyB0aGlzIGV2YWx1YXRpb24gc2hvdWxkIG5vdAor CQkgKiBiZSBlcnJvci1zYWZlLgorCQkgKi8KKwkJaWYgKCFJc0Eoc3RjZXhwci0+Y2FzdGV4cHIs IFJlbGFiZWxUeXBlKSkKKwkJeworCQkJc3RhdGUtPmVzY29udGV4dCA9IE5VTEw7CisKKwkJCUV4 ZWNJbml0RXhwclJlYyhzdGNzdGF0ZS0+c3RjZXhwci0+ZGVmZXhwciwgc3RhdGUsIHJlc3YsIHJl c251bGwpOworCQl9CisKKwkJc3RhdGUtPmVzY29udGV4dCA9IHNhdmVkX2VzY29udGV4dDsKKwor CQlzdGNzdGF0ZS0+anVtcF9lbmQgPSBzdGF0ZS0+c3RlcHNfbGVuOworCX0KK30KKwogLyoKICAq IFB1c2ggc3RlcHMgdG8gZXZhbHVhdGUgYSBKc29uRXhwciBhbmQgaXRzIHZhcmlvdXMgc3Vic2lk aWFyeSBleHByZXNzaW9ucy4KICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0V4cHJJbnRlcnAuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMK aW5kZXggNjljMTdlMDI0ZjIuLjdhYzFlNjNjNTEwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwckludGVycC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNF eHBySW50ZXJwLmMKQEAgLTU2OCw2ICs1NjgsNyBAQCBFeGVjSW50ZXJwRXhwcihFeHByU3RhdGUg KnN0YXRlLCBFeHByQ29udGV4dCAqZWNvbnRleHQsIGJvb2wgKmlzbnVsbCkKIAkJJiZDQVNFX0VF T1BfWE1MRVhQUiwKIAkJJiZDQVNFX0VFT1BfSlNPTl9DT05TVFJVQ1RPUiwKIAkJJiZDQVNFX0VF T1BfSVNfSlNPTiwKKwkJJiZDQVNFX0VFT1BfU0FGRVRZUEVfQ0FTVCwKIAkJJiZDQVNFX0VFT1Bf SlNPTkVYUFJfUEFUSCwKIAkJJiZDQVNFX0VFT1BfSlNPTkVYUFJfQ09FUkNJT04sCiAJCSYmQ0FT RV9FRU9QX0pTT05FWFBSX0NPRVJDSU9OX0ZJTklTSCwKQEAgLTE5MjYsNiArMTkyNywyOCBAQCBF eGVjSW50ZXJwRXhwcihFeHByU3RhdGUgKnN0YXRlLCBFeHByQ29udGV4dCAqZWNvbnRleHQsIGJv b2wgKmlzbnVsbCkKIAkJCUVFT19ORVhUKCk7CiAJCX0KIAorCQlFRU9fQ0FTRShFRU9QX1NBRkVU WVBFX0NBU1QpCisJCXsKKwkJCVNhZmVUeXBlQ2FzdFN0YXRlICpzdGNzdGF0ZSA9IG9wLT5kLnN0 Y2V4cHIuc3Rjc3RhdGU7CisKKwkJCWlmICghU09GVF9FUlJPUl9PQ0NVUlJFRCgmc3Rjc3RhdGUt PmVzY29udGV4dCkpCisJCQkJRUVPX0pVTVAoc3Rjc3RhdGUtPmp1bXBfZW5kKTsKKwkJCWVsc2UK KwkJCXsKKwkJCQkqb3AtPnJlc3ZhbHVlID0gKERhdHVtKSAwOworCQkJCSpvcC0+cmVzbnVsbCA9 IHRydWU7CisKKwkJCQkvKgorCQkJCSAqIFJlc2V0IGZvciBuZXh0IHVzZSBzdWNoIGFzIGZvciBj YXRjaGluZyBlcnJvcnMgd2hlbgorCQkJCSAqIGNvZXJjaW5nIGEgZXhwcmVzc2lvbi4KKwkJCQkg Ki8KKwkJCQlzdGNzdGF0ZS0+ZXNjb250ZXh0LmVycm9yX29jY3VycmVkID0gZmFsc2U7CisJCQkJ c3Rjc3RhdGUtPmVzY29udGV4dC5kZXRhaWxzX3dhbnRlZCA9IGZhbHNlOworCisJCQkJRUVPX05F WFQoKTsKKwkJCX0KKwkJfQorCiAJCUVFT19DQVNFKEVFT1BfSlNPTkVYUFJfUEFUSCkKIAkJewog CQkJLyogdG9vIGNvbXBsZXggZm9yIGFuIGlubGluZSBpbXBsZW1lbnRhdGlvbiAqLwpAQCAtMzY0 NCw2ICszNjY3LDEyIEBAIEV4ZWNFdmFsQXJyYXlDb2VyY2UoRXhwclN0YXRlICpzdGF0ZSwgRXhw ckV2YWxTdGVwICpvcCwgRXhwckNvbnRleHQgKmVjb250ZXh0KQogCQkJCQkJCSAgZWNvbnRleHQs CiAJCQkJCQkJICBvcC0+ZC5hcnJheWNvZXJjZS5yZXN1bHRlbGVtdHlwZSwKIAkJCQkJCQkgIG9w LT5kLmFycmF5Y29lcmNlLmFtc3RhdGUpOworCisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQob3At PmQuYXJyYXljb2VyY2UuZWxlbWV4cHJzdGF0ZS0+ZXNjb250ZXh0KSkKKwl7CisJCSpvcC0+cmVz dmFsdWUgPSAoRGF0dW0pIDA7CisJCSpvcC0+cmVzbnVsbCA9IHRydWU7CisJfQogfQogCiAvKgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMgYi9zcmMvYmFj a2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYwppbmRleCA2NTBmMWQ0MmE5My4uYWQ0Yjc0YjFh YzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jCisrKyBi L3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jCkBAIC0yMjU2LDYgKzIyNTYsMzMg QEAgbGx2bV9jb21waWxlX2V4cHIoRXhwclN0YXRlICpzdGF0ZSkKIAkJCQlMTFZNQnVpbGRCcihi LCBvcGJsb2Nrc1tvcG5vICsgMV0pOwogCQkJCWJyZWFrOwogCisJCQljYXNlIEVFT1BfU0FGRVRZ UEVfQ0FTVDoKKwkJCQl7CisJCQkJCVNhZmVUeXBlQ2FzdFN0YXRlICpzdGNzdGF0ZSA9IG9wLT5k LnN0Y2V4cHIuc3Rjc3RhdGU7CisKKwkJCQkJaWYgKCFTT0ZUX0VSUk9SX09DQ1VSUkVEKCZzdGNz dGF0ZS0+ZXNjb250ZXh0KSkKKwkJCQkJCUxMVk1CdWlsZEJyKGIsIG9wYmxvY2tzW3N0Y3N0YXRl LT5qdW1wX2VuZF0pOworCQkJCQllbHNlCisJCQkJCXsKKwkJCQkJCS8qCisJCQkJCQkgKiBSZXNl dCBmb3IgbmV4dCB1c2Ugc3VjaCBhcyBmb3IgY2F0Y2hpbmcgZXJyb3JzIHdoZW4KKwkJCQkJCSAq IGNvZXJjaW5nIGEgZXhwcmVzc2lvbi4KKwkJCQkJCSAqLworCQkJCQkJc3Rjc3RhdGUtPmVzY29u dGV4dC5lcnJvcl9vY2N1cnJlZCA9IGZhbHNlOworCQkJCQkJc3Rjc3RhdGUtPmVzY29udGV4dC5k ZXRhaWxzX3dhbnRlZCA9IGZhbHNlOworCisJCQkJCQkvKiBzZXQgcmVzbnVsbCB0byB0cnVlICov CisJCQkJCQlMTFZNQnVpbGRTdG9yZShiLCBsX3Nib29sX2NvbnN0KDEpLCB2X3Jlc251bGxwKTsK KworCQkJCQkJLyogcmVzZXQgcmVzdmFsdWUgKi8KKwkJCQkJCUxMVk1CdWlsZFN0b3JlKGIsIGxf ZGF0dW1fY29uc3QoMCksIHZfcmVzdmFsdWVwKTsKKworCQkJCQkJTExWTUJ1aWxkQnIoYiwgb3Bi bG9ja3Nbb3BubyArIDFdKTsKKwkJCQkJfQorCisJCQkJCWJyZWFrOworCQkJCX0KKwogCQkJY2Fz ZSBFRU9QX0pTT05FWFBSX1BBVEg6CiAJCQkJewogCQkJCQlKc29uRXhwclN0YXRlICpqc2VzdGF0 ZSA9IG9wLT5kLmpzb25leHByLmpzZXN0YXRlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9k ZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwppbmRleCAxOTll ZDI3OTk1Zi4uNGYzOGRmYTBjMzEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVG dW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC0yMDYsNiArMjA2 LDkgQEAgZXhwclR5cGUoY29uc3QgTm9kZSAqZXhwcikKIAkJY2FzZSBUX1Jvd0NvbXBhcmVFeHBy OgogCQkJdHlwZSA9IEJPT0xPSUQ7CiAJCQlicmVhazsKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4 cHI6CisJCQl0eXBlID0gKChjb25zdCBTYWZlVHlwZUNhc3RFeHByICopIGV4cHIpLT5yZXN1bHR0 eXBlOworCQkJYnJlYWs7CiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJCQl0eXBlID0gKChjb25z dCBDb2FsZXNjZUV4cHIgKikgZXhwciktPmNvYWxlc2NldHlwZTsKIAkJCWJyZWFrOwpAQCAtNDUw LDYgKzQ1Myw4IEBAIGV4cHJUeXBtb2QoY29uc3QgTm9kZSAqZXhwcikKIAkJCQlyZXR1cm4gdHlw bW9kOwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJcmV0 dXJuICgoY29uc3QgU2FmZVR5cGVDYXN0RXhwciAqKSBleHByKS0+cmVzdWx0dHlwbW9kOwogCQlj YXNlIFRfQ29hbGVzY2VFeHByOgogCQkJewogCQkJCS8qCkBAIC05NjUsNiArOTcwLDkgQEAgZXhw ckNvbGxhdGlvbihjb25zdCBOb2RlICpleHByKQogCQkJLyogUm93Q29tcGFyZUV4cHIncyByZXN1 bHQgaXMgYm9vbGVhbiAuLi4gKi8KIAkJCWNvbGwgPSBJbnZhbGlkT2lkOwkvKiAuLi4gc28gaXQg aGFzIG5vIGNvbGxhdGlvbiAqLwogCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHBy OgorCQkJY29sbCA9ICgoY29uc3QgU2FmZVR5cGVDYXN0RXhwciAqKSBleHByKS0+cmVzdWx0Y29s bGlkOworCQkJYnJlYWs7CiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJCQljb2xsID0gKChjb25z dCBDb2FsZXNjZUV4cHIgKikgZXhwciktPmNvYWxlc2NlY29sbGlkOwogCQkJYnJlYWs7CkBAIC0x MjMyLDYgKzEyNDAsOSBAQCBleHByU2V0Q29sbGF0aW9uKE5vZGUgKmV4cHIsIE9pZCBjb2xsYXRp b24pCiAJCQkvKiBSb3dDb21wYXJlRXhwcidzIHJlc3VsdCBpcyBib29sZWFuIC4uLiAqLwogCQkJ QXNzZXJ0KCFPaWRJc1ZhbGlkKGNvbGxhdGlvbikpOyAvKiAuLi4gc28gbmV2ZXIgc2V0IGEgY29s bGF0aW9uICovCiAJCQlicmVhazsKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQkoKFNh ZmVUeXBlQ2FzdEV4cHIgKikgZXhwciktPnJlc3VsdGNvbGxpZCA9IGNvbGxhdGlvbjsKKwkJCWJy ZWFrOwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgogCQkJKChDb2FsZXNjZUV4cHIgKikgZXhwcikt PmNvYWxlc2NlY29sbGlkID0gY29sbGF0aW9uOwogCQkJYnJlYWs7CkBAIC0xNTUwLDYgKzE1NjEs OSBAQCBleHByTG9jYXRpb24oY29uc3QgTm9kZSAqZXhwcikKIAkJCS8qIGp1c3QgdXNlIGxlZnRt b3N0IGFyZ3VtZW50J3MgbG9jYXRpb24gKi8KIAkJCWxvYyA9IGV4cHJMb2NhdGlvbigoTm9kZSAq KSAoKGNvbnN0IFJvd0NvbXBhcmVFeHByICopIGV4cHIpLT5sYXJncyk7CiAJCQlicmVhazsKKwkJ Y2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQlsb2MgPSAoKGNvbnN0IFNhZmVUeXBlQ2FzdEV4 cHIgKikgZXhwciktPmxvY2F0aW9uOworCQkJYnJlYWs7CiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6 CiAJCQkvKiBDT0FMRVNDRSBrZXl3b3JkIHNob3VsZCBhbHdheXMgYmUgdGhlIGZpcnN0IHRoaW5n ICovCiAJCQlsb2MgPSAoKGNvbnN0IENvYWxlc2NlRXhwciAqKSBleHByKS0+bG9jYXRpb247CkBA IC0yMzI0LDYgKzIzMzgsMTggQEAgZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUgKm5v ZGUsCiAJCQkJCXJldHVybiB0cnVlOwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlw ZUNhc3RFeHByOgorCQkJeworCQkJCVNhZmVUeXBlQ2FzdEV4cHIgKnN0Y2V4cHIgPSBjYXN0Tm9k ZShTYWZlVHlwZUNhc3RFeHByLCBub2RlKTsKKworCQkJCWlmIChXQUxLKHN0Y2V4cHItPnNvdXJj ZSkpCisJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChXQUxLKHN0Y2V4cHItPmNhc3RleHByKSkK KwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEsoc3RjZXhwci0+ZGVmZXhwcikpCisJCQkJ CXJldHVybiB0cnVlOworCQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJ CQlyZXR1cm4gV0FMSygoKENvYWxlc2NlRXhwciAqKSBub2RlKS0+YXJncyk7CiAJCWNhc2UgVF9N aW5NYXhFeHByOgpAQCAtMzMzMyw2ICszMzU5LDE5IEBAIGV4cHJlc3Npb25fdHJlZV9tdXRhdG9y X2ltcGwoTm9kZSAqbm9kZSwKIAkJCQlyZXR1cm4gKE5vZGUgKikgbmV3bm9kZTsKIAkJCX0KIAkJ CWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCXsKKwkJCQlTYWZlVHlwZUNh c3RFeHByICpzdGNleHByID0gY2FzdE5vZGUoU2FmZVR5cGVDYXN0RXhwciwgbm9kZSk7CisJCQkJ U2FmZVR5cGVDYXN0RXhwciAqbmV3bm9kZTsKKworCQkJCUZMQVRDT1BZKG5ld25vZGUsIHN0Y2V4 cHIsIFNhZmVUeXBlQ2FzdEV4cHIpOworCQkJCU1VVEFURShuZXdub2RlLT5zb3VyY2UsIHN0Y2V4 cHItPnNvdXJjZSwgRXhwciAqKTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+Y2FzdGV4cHIsIHN0Y2V4 cHItPmNhc3RleHByLCBFeHByICopOworCQkJCU1VVEFURShuZXdub2RlLT5kZWZleHByLCBzdGNl eHByLT5kZWZleHByLCBFeHByICopOworCisJCQkJcmV0dXJuIChOb2RlICopIG5ld25vZGU7CisJ CQl9CisJCQlicmVhazsKIAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJCXsKIAkJCQlDb2FsZXNj ZUV4cHIgKmNvYWxlc2NlZXhwciA9IChDb2FsZXNjZUV4cHIgKikgbm9kZTsKQEAgLTQ0NjUsNiAr NDUwNCwyMCBAQCByYXdfZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUsCiAJ CQkJCXJldHVybiB0cnVlOwogCQkJCWlmIChXQUxLKHRjLT50eXBlTmFtZSkpCiAJCQkJCXJldHVy biB0cnVlOworCQkJCWlmIChXQUxLKHRjLT5kZWZleHByKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJ CQl9CisJCQlicmVhazsKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQl7CisJCQkJU2Fm ZVR5cGVDYXN0RXhwciAqc3RjZXhwciA9IGNhc3ROb2RlKFNhZmVUeXBlQ2FzdEV4cHIsIG5vZGUp OworCisJCQkJaWYgKFdBTEsoc3RjZXhwci0+c291cmNlKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJ CQkJaWYgKFdBTEsoc3RjZXhwci0+Y2FzdGV4cHIpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlp ZiAoV0FMSyhzdGNleHByLT5kZWZleHByKSkKKwkJCQkJcmV0dXJuIHRydWU7CiAJCQl9CiAJCQli cmVhazsKIAkJY2FzZSBUX0NvbGxhdGVDbGF1c2U6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1 c2VzLmMKaW5kZXggOWZiMjY2ZDA4OWQuLmUyYjQyMThlZGM2IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3V0aWwvY2xhdXNlcy5jCkBAIC0yNjc1LDcgKzI2NzUsOCBAQCBlc3RpbWF0ZV9leHByZXNzaW9u X3ZhbHVlKFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpub2RlKQogCSgoTm9kZSAqKSBldmFsdWF0 ZV9leHByKChFeHByICopIChub2RlKSwgXAogCQkJCQkJCWV4cHJUeXBlKChOb2RlICopIChub2Rl KSksIFwKIAkJCQkJCQlleHByVHlwbW9kKChOb2RlICopIChub2RlKSksIFwKLQkJCQkJCQlleHBy Q29sbGF0aW9uKChOb2RlICopIChub2RlKSkpKQorCQkJCQkJCWV4cHJDb2xsYXRpb24oKE5vZGUg KikgKG5vZGUpKSwgXAorCQkJCQkJCU5VTEwpKQogCiAvKgogICogUmVjdXJzaXZlIGd1dHMgb2Yg ZXZhbF9jb25zdF9leHByZXNzaW9ucy9lc3RpbWF0ZV9leHByZXNzaW9uX3ZhbHVlCkBAIC0zMjY3 LDYgKzMyNjgsMzYgQEAgZXZhbF9jb25zdF9leHByZXNzaW9uc19tdXRhdG9yKE5vZGUgKm5vZGUs CiAJCQkJCQkJCQkJCQkgIGNvcHlPYmplY3QoanZlLT5mb3JtYXQpKTsKIAkJCX0KIAorCQljYXNl IFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3RFeHByICpuZXdleHBy OworCisJCQkJU2FmZVR5cGVDYXN0RXhwciAqc3RjID0gY2FzdE5vZGUoU2FmZVR5cGVDYXN0RXhw ciwgbm9kZSk7CisKKwkJCQlOb2RlCSAgICpzb3VyY2UgPSAoTm9kZSAqKSBzdGMtPnNvdXJjZTsK KwkJCQlOb2RlCSAgICpkZWZleHByID0gKE5vZGUgKikgc3RjLT5kZWZleHByOworCisJCQkJc291 cmNlID0gZXZhbF9jb25zdF9leHByZXNzaW9uc19tdXRhdG9yKHNvdXJjZSwKKwkJCQkJCQkJCQkJ CQkJY29udGV4dCk7CisJCQkJZGVmZXhwciA9IGV2YWxfY29uc3RfZXhwcmVzc2lvbnNfbXV0YXRv cihkZWZleHByLAorCQkJCQkJCQkJCQkJCQkgY29udGV4dCk7CisKKwkJCQkvKgorCQkJCSAqIERl ZmVyIGNvbnN0YW50IGZvbGRpbmcgZm9yIGNhc3RleHByLiBFdmFsdWF0aW5nCisJCQkJICogcmVj b2duaXphYmxlIGNvbnN0YW50cyBhdCB0aGlzIHN0YWdlIGlzIG5vdCBlcnJvci1zYWZlIGFuZAor CQkJCSAqIG1heSBsZWFkIHRvIHByZW1hdHVyZSBlcnJvcnMuCisJCQkJICovCisJCQkJbmV3ZXhw ciA9IG1ha2VOb2RlKFNhZmVUeXBlQ2FzdEV4cHIpOworCQkJCW5ld2V4cHItPnNvdXJjZSA9IChF eHByICopIHNvdXJjZTsKKwkJCQluZXdleHByLT5jYXN0ZXhwciA9IChFeHByICopIHN0Yy0+Y2Fz dGV4cHI7CisJCQkJbmV3ZXhwci0+ZGVmZXhwciA9IChFeHByICopIGRlZmV4cHI7CisJCQkJbmV3 ZXhwci0+cmVzdWx0dHlwZSA9IHN0Yy0+cmVzdWx0dHlwZTsKKwkJCQluZXdleHByLT5yZXN1bHR0 eXBtb2QgPSBzdGMtPnJlc3VsdHR5cG1vZDsKKwkJCQluZXdleHByLT5yZXN1bHRjb2xsaWQgPSBz dGMtPnJlc3VsdGNvbGxpZDsKKworCQkJCXJldHVybiAoTm9kZSAqKSBuZXdleHByOworCQkJfQor CiAJCWNhc2UgVF9TdWJQbGFuOgogCQljYXNlIFRfQWx0ZXJuYXRpdmVTdWJQbGFuOgogCkBAIC0z Njk4LDcgKzM3MjksOCBAQCBldmFsX2NvbnN0X2V4cHJlc3Npb25zX211dGF0b3IoTm9kZSAqbm9k ZSwKIAkJCQkJcmV0dXJuIChOb2RlICopIGV2YWx1YXRlX2V4cHIoKEV4cHIgKikgc3ZmLAogCQkJ CQkJCQkJCQkJICBzdmYtPnR5cGUsCiAJCQkJCQkJCQkJCQkgIHN2Zi0+dHlwbW9kLAotCQkJCQkJ CQkJCQkJICBJbnZhbGlkT2lkKTsKKwkJCQkJCQkJCQkJCSAgSW52YWxpZE9pZCwKKwkJCQkJCQkJ CQkJCSAgTlVMTCk7CiAJCQkJZWxzZQogCQkJCQlyZXR1cm4gY29weU9iamVjdCgoTm9kZSAqKSBz dmYpOwogCQkJfQpAQCAtNTIyOSw3ICs1MjYxLDcgQEAgZXZhbHVhdGVfZnVuY3Rpb24oT2lkIGZ1 bmNpZCwgT2lkIHJlc3VsdF90eXBlLCBpbnQzMiByZXN1bHRfdHlwbW9kLAogCW5ld2V4cHItPmxv Y2F0aW9uID0gLTE7CiAKIAlyZXR1cm4gZXZhbHVhdGVfZXhwcigoRXhwciAqKSBuZXdleHByLCBy ZXN1bHRfdHlwZSwgcmVzdWx0X3R5cG1vZCwKLQkJCQkJCSByZXN1bHRfY29sbGlkKTsKKwkJCQkJ CSByZXN1bHRfY29sbGlkLCBOVUxMKTsKIH0KIAogLyoKQEAgLTU2ODMsMTAgKzU3MTUsMTMgQEAg c3FsX2lubGluZV9lcnJvcl9jYWxsYmFjayh2b2lkICphcmcpCiAgKgogICogV2UgdXNlIHRoZSBl eGVjdXRvcidzIHJvdXRpbmUgRXhlY0V2YWxFeHByKCkgdG8gYXZvaWQgZHVwbGljYXRpb24gb2YK ICAqIGNvZGUgYW5kIGVuc3VyZSB3ZSBnZXQgdGhlIHNhbWUgcmVzdWx0IGFzIHRoZSBleGVjdXRv ciB3b3VsZCBnZXQuCisgKgorICogV2hlbiBlc2NvbnRleHQgaXMgbm9uLU5VTEwsIHNhZmVseSBl dmFsdWF0ZXMgdGhlIGNvbnN0YW50IGV4cHJlc3Npb24uCisgKiBSZXR1cm5zIE5VTEwgb24gZmFp bHVyZSByYXRoZXIgdGhhbiB0aHJvd2luZyBhbiBlcnJvci4KICAqLwogRXhwciAqCiBldmFsdWF0 ZV9leHByKEV4cHIgKmV4cHIsIE9pZCByZXN1bHRfdHlwZSwgaW50MzIgcmVzdWx0X3R5cG1vZCwK LQkJCSAgT2lkIHJlc3VsdF9jb2xsYXRpb24pCisJCQkgIE9pZCByZXN1bHRfY29sbGF0aW9uLCBO b2RlICplc2NvbnRleHQpCiB7CiAJRVN0YXRlCSAgICplc3RhdGU7CiAJRXhwclN0YXRlICAqZXhw cnN0YXRlOwpAQCAtNTcxMSw3ICs1NzQ2LDcgQEAgZXZhbHVhdGVfZXhwcihFeHByICpleHByLCBP aWQgcmVzdWx0X3R5cGUsIGludDMyIHJlc3VsdF90eXBtb2QsCiAJICogUHJlcGFyZSBleHByIGZv ciBleGVjdXRpb24uICAoTm90ZTogd2UgY2FuJ3QgdXNlIEV4ZWNQcmVwYXJlRXhwcgogCSAqIGJl Y2F1c2UgaXQnZCByZXN1bHQgaW4gcmVjdXJzaXZlbHkgaW52b2tpbmcgZXZhbF9jb25zdF9leHBy ZXNzaW9ucy4pCiAJICovCi0JZXhwcnN0YXRlID0gRXhlY0luaXRFeHByKGV4cHIsIE5VTEwpOwor CWV4cHJzdGF0ZSA9IEV4ZWNJbml0RXhwcldpdGhDb250ZXh0KGV4cHIsIE5VTEwsIGVzY29udGV4 dCk7CiAKIAkvKgogCSAqIEFuZCBldmFsdWF0ZSBpdC4KQEAgLTU3MzEsNiArNTc2NiwxMyBAQCBl dmFsdWF0ZV9leHByKEV4cHIgKmV4cHIsIE9pZCByZXN1bHRfdHlwZSwgaW50MzIgcmVzdWx0X3R5 cG1vZCwKIAkvKiBHZXQgYmFjayB0byBvdXRlciBtZW1vcnkgY29udGV4dCAqLwogCU1lbW9yeUNv bnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKIAorCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGV4 cHJzdGF0ZS0+ZXNjb250ZXh0KSkKKwl7CisJCUZyZWVFeGVjdXRvclN0YXRlKGVzdGF0ZSk7CisK KwkJcmV0dXJuIE5VTEw7CisJfQorCiAJLyoKIAkgKiBNdXN0IGNvcHkgcmVzdWx0IG91dCBvZiBz dWItY29udGV4dCB1c2VkIGJ5IGV4cHJlc3Npb24gZXZhbC4KIAkgKgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXgg ZjAxZjU3MzRmZTkuLjc2MTJiODg0YWUzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTE1OCw2ICsxNTgsOCBA QCBzdGF0aWMgdm9pZCB1cGRhdGVSYXdTdG10RW5kKFJhd1N0bXQgKnJzLCBpbnQgZW5kX2xvY2F0 aW9uKTsKIHN0YXRpYyBOb2RlICptYWtlQ29sdW1uUmVmKGNoYXIgKmNvbG5hbWUsIExpc3QgKmlu ZGlyZWN0aW9uLAogCQkJCQkJICAgaW50IGxvY2F0aW9uLCBjb3JlX3l5c2Nhbl90IHl5c2Nhbm5l cik7CiBzdGF0aWMgTm9kZSAqbWFrZVR5cGVDYXN0KE5vZGUgKmFyZywgVHlwZU5hbWUgKnR5cGVu YW1lLCBpbnQgbG9jYXRpb24pOworc3RhdGljIE5vZGUgKm1ha2VUeXBlQ2FzdFdpdGhEZWZhdWx0 KE5vZGUgKmFyZywgVHlwZU5hbWUgKnR5cGVuYW1lLAorCQkJCQkJCQkJIE5vZGUgKnJhd19kZWZh dWx0LCBpbnQgbG9jYXRpb24pOwogc3RhdGljIE5vZGUgKm1ha2VTdHJpbmdDb25zdENhc3QoY2hh ciAqc3RyLCBpbnQgbG9jYXRpb24sIFR5cGVOYW1lICp0eXBlbmFtZSk7CiBzdGF0aWMgTm9kZSAq bWFrZUludENvbnN0KGludCB2YWwsIGludCBsb2NhdGlvbik7CiBzdGF0aWMgTm9kZSAqbWFrZUZs b2F0Q29uc3QoY2hhciAqc3RyLCBpbnQgbG9jYXRpb24pOwpAQCAtMTYxOTEsNiArMTYxOTMsMTIg QEAgZnVuY19leHByX2NvbW1vbl9zdWJleHByOgogCQkJCX0KIAkJCXwgQ0FTVCAnKCcgYV9leHBy IEFTIFR5cGVuYW1lICcpJwogCQkJCXsgJCQgPSBtYWtlVHlwZUNhc3QoJDMsICQ1LCBAMSk7IH0K KwkJCXwgQ0FTVCAnKCcgYV9leHByIEFTIFR5cGVuYW1lIEVSUk9SX1AgT04gQ09OVkVSU0lPTl9Q IEVSUk9SX1AgJyknCisJCQkJeyAkJCA9IG1ha2VUeXBlQ2FzdCgkMywgJDUsIEAxKTsgfQorCQkJ fCBDQVNUICcoJyBhX2V4cHIgQVMgVHlwZW5hbWUgTlVMTF9QIE9OIENPTlZFUlNJT05fUCBFUlJP Ul9QICcpJworCQkJCXsgJCQgPSBtYWtlVHlwZUNhc3RXaXRoRGVmYXVsdCgkMywgJDUsIG1ha2VO dWxsQUNvbnN0KC0xKSwgQDEpOyB9CisJCQl8IENBU1QgJygnIGFfZXhwciBBUyBUeXBlbmFtZSBE RUZBVUxUIGFfZXhwciBPTiBDT05WRVJTSU9OX1AgRVJST1JfUCAnKScKKwkJCQl7ICQkID0gbWFr ZVR5cGVDYXN0V2l0aERlZmF1bHQoJDMsICQ1LCAkNywgQDEpOyB9CiAJCQl8IEVYVFJBQ1QgJygn IGV4dHJhY3RfbGlzdCAnKScKIAkJCQl7CiAJCQkJCSQkID0gKE5vZGUgKikgbWFrZUZ1bmNDYWxs KFN5c3RlbUZ1bmNOYW1lKCJleHRyYWN0IiksCkBAIC0xOTEyNCwxMCArMTkxMzIsMjUgQEAgbWFr ZVR5cGVDYXN0KE5vZGUgKmFyZywgVHlwZU5hbWUgKnR5cGVuYW1lLCBpbnQgbG9jYXRpb24pCiAK IAluLT5hcmcgPSBhcmc7CiAJbi0+dHlwZU5hbWUgPSB0eXBlbmFtZTsKKwluLT5kZWZleHByID0g TlVMTDsKIAluLT5sb2NhdGlvbiA9IGxvY2F0aW9uOwogCXJldHVybiAoTm9kZSAqKSBuOwogfQog CitzdGF0aWMgTm9kZSAqCittYWtlVHlwZUNhc3RXaXRoRGVmYXVsdChOb2RlICphcmcsIFR5cGVO YW1lICp0eXBlbmFtZSwgTm9kZSAqZGVmZXhwciwKKwkJCQkJCWludCBsb2NhdGlvbikKK3sKKwlU eXBlQ2FzdCAgICpuID0gbWFrZU5vZGUoVHlwZUNhc3QpOworCisJbi0+YXJnID0gYXJnOworCW4t PnR5cGVOYW1lID0gdHlwZW5hbWU7CisJbi0+ZGVmZXhwciA9IGRlZmV4cHI7CisJbi0+bG9jYXRp b24gPSBsb2NhdGlvbjsKKworCXJldHVybiAoTm9kZSAqKSBuOworfQorCiBzdGF0aWMgTm9kZSAq CiBtYWtlU3RyaW5nQ29uc3RDYXN0KGNoYXIgKnN0ciwgaW50IGxvY2F0aW9uLCBUeXBlTmFtZSAq dHlwZW5hbWUpCiB7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMg Yi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKaW5kZXggMzNmZDJjY2NhZTUuLmExOGQy MGRiZmRiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCkBAIC00OTEsNiArNDkxLDEyIEBAIGNoZWNr X2FnZ2xldmVsc19hbmRfY29uc3RyYWludHMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHBy KQogCQkJCWVyciA9IF8oImdyb3VwaW5nIG9wZXJhdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIGNo ZWNrIGNvbnN0cmFpbnRzIik7CiAKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9DQVNUX0RF RkFVTFQ6CisJCQlpZiAoaXNBZ2cpCisJCQkJZXJyID0gXygiYWdncmVnYXRlIGZ1bmN0aW9ucyBh cmUgbm90IGFsbG93ZWQgaW4gQ0FTVCBERUZBVUxUIGV4cHJlc3Npb25zIik7CisJCQllbHNlCisJ CQkJZXJyID0gXygiZ3JvdXBpbmcgb3BlcmF0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gQ0FTVCBE RUZBVUxUIGV4cHJlc3Npb25zIik7CisJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1O X0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CiAKQEAgLTk4NCw2 ICs5OTAsOSBAQCB0cmFuc2Zvcm1XaW5kb3dGdW5jQ2FsbChQYXJzZVN0YXRlICpwc3RhdGUsIFdp bmRvd0Z1bmMgKndmdW5jLAogCQljYXNlIEVYUFJfS0lORF9ET01BSU5fQ0hFQ0s6CiAJCQllcnIg PSBfKCJ3aW5kb3cgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBjaGVjayBjb25zdHJhaW50 cyIpOwogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX0NBU1RfREVGQVVMVDoKKwkJCWVyciA9 IF8oIndpbmRvdyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIENBU1QgREVGQVVMVCBleHBy ZXNzaW9ucyIpOworCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgog CQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgogCQkJZXJyID0gXygid2luZG93IGZ1 bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gREVGQVVMVCBleHByZXNzaW9ucyIpOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvZXJjZS5jIGIvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2NvZXJjZS5jCmluZGV4IDkxM2NhNTM2NjZmLi4wMTI2NGQ1ZTBjYiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvZXJjZS5jCisrKyBiL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9jb2VyY2UuYwpAQCAtODEsNiArODEsMjggQEAgY29lcmNlX3RvX3Rhcmdl dF90eXBlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgT2lkIGV4cHJ0eXBlLAogCQkJ CQkgIENvZXJjaW9uQ29udGV4dCBjY29udGV4dCwKIAkJCQkJICBDb2VyY2lvbkZvcm0gY2Zvcm1h dCwKIAkJCQkJICBpbnQgbG9jYXRpb24pCit7CisJcmV0dXJuIGNvZXJjZV90b190YXJnZXRfdHlw ZV9leHRlbmRlZChwc3RhdGUsIGV4cHIsIGV4cHJ0eXBlLAorCQkJCQkJCQkJCSAgdGFyZ2V0dHlw ZSwgdGFyZ2V0dHlwbW9kLAorCQkJCQkJCQkJCSAgY2NvbnRleHQsCisJCQkJCQkJCQkJICBjZm9y bWF0LAorCQkJCQkJCQkJCSAgbG9jYXRpb24sCisJCQkJCQkJCQkJICBOVUxMKTsKK30KKworLyoK KyAqIGVzY29udGV4dDogSWYgbm9uLU5VTEwsIHNhZmVseSBjb2VyY2VzICdleHByJyB0byB0aGUg dGFyZ2V0IHR5cGUKKyAqIHdpdGhvdXQgcmFpc2luZyBhbiBlcnJvci4gUmV0dXJucyBOVUxMIGlm IHRoZSBjb2VyY2lvbiBmYWlscy4KKyAqCisgKiBTZWUgJ2NvZXJjZV90b190YXJnZXRfdHlwZScg YWJvdmUgZm9yIGRldGFpbHMgb24gb3RoZXIgcGFyYW1ldGVycy4KKyAqLworTm9kZSAqCitjb2Vy Y2VfdG9fdGFyZ2V0X3R5cGVfZXh0ZW5kZWQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHBy LCBPaWQgZXhwcnR5cGUsCisJCQkJCQkJICAgT2lkIHRhcmdldHR5cGUsIGludDMyIHRhcmdldHR5 cG1vZCwKKwkJCQkJCQkgICBDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQsCisJCQkJCQkJICAgQ29l cmNpb25Gb3JtIGNmb3JtYXQsCisJCQkJCQkJICAgaW50IGxvY2F0aW9uLAorCQkJCQkJCSAgIE5v ZGUgKmVzY29udGV4dCkKIHsKIAlOb2RlCSAgICpyZXN1bHQ7CiAJTm9kZQkgICAqb3JpZ2V4cHI7 CkBAIC0xMDIsOSArMTI0LDE1IEBAIGNvZXJjZV90b190YXJnZXRfdHlwZShQYXJzZVN0YXRlICpw c3RhdGUsIE5vZGUgKmV4cHIsIE9pZCBleHBydHlwZSwKIAl3aGlsZSAoZXhwciAmJiBJc0EoZXhw ciwgQ29sbGF0ZUV4cHIpKQogCQlleHByID0gKE5vZGUgKikgKChDb2xsYXRlRXhwciAqKSBleHBy KS0+YXJnOwogCi0JcmVzdWx0ID0gY29lcmNlX3R5cGUocHN0YXRlLCBleHByLCBleHBydHlwZSwK LQkJCQkJCSB0YXJnZXR0eXBlLCB0YXJnZXR0eXBtb2QsCi0JCQkJCQkgY2NvbnRleHQsIGNmb3Jt YXQsIGxvY2F0aW9uKTsKKwlyZXN1bHQgPSBjb2VyY2VfdHlwZV9leHRlbmRlZChwc3RhdGUsIGV4 cHIsIGV4cHJ0eXBlLAorCQkJCQkJCQkgIHRhcmdldHR5cGUsIHRhcmdldHR5cG1vZCwKKwkJCQkJ CQkJICBjY29udGV4dCwKKwkJCQkJCQkJICBjZm9ybWF0LAorCQkJCQkJCQkgIGxvY2F0aW9uLAor CQkJCQkJCQkgIGVzY29udGV4dCk7CisKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRl eHQpKQorCQlyZXR1cm4gTlVMTDsKIAogCS8qCiAJICogSWYgdGhlIHRhcmdldCBpcyBhIGZpeGVk LWxlbmd0aCB0eXBlLCBpdCBtYXkgbmVlZCBhIGxlbmd0aCBjb2VyY2lvbiBhcwpAQCAtMTU4LDYg KzE4NiwxOCBAQCBOb2RlICoKIGNvZXJjZV90eXBlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAq bm9kZSwKIAkJCU9pZCBpbnB1dFR5cGVJZCwgT2lkIHRhcmdldFR5cGVJZCwgaW50MzIgdGFyZ2V0 VHlwZU1vZCwKIAkJCUNvZXJjaW9uQ29udGV4dCBjY29udGV4dCwgQ29lcmNpb25Gb3JtIGNmb3Jt YXQsIGludCBsb2NhdGlvbikKK3sKKwlyZXR1cm4gY29lcmNlX3R5cGVfZXh0ZW5kZWQocHN0YXRl LCBub2RlLAorCQkJCQkJCQlpbnB1dFR5cGVJZCwgdGFyZ2V0VHlwZUlkLCB0YXJnZXRUeXBlTW9k LAorCQkJCQkJCQljY29udGV4dCwgY2Zvcm1hdCwgbG9jYXRpb24sCisJCQkJCQkJCU5VTEwpOwor fQorCitOb2RlICoKK2NvZXJjZV90eXBlX2V4dGVuZGVkKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9k ZSAqbm9kZSwKKwkJCQkJIE9pZCBpbnB1dFR5cGVJZCwgT2lkIHRhcmdldFR5cGVJZCwgaW50MzIg dGFyZ2V0VHlwZU1vZCwKKwkJCQkJIENvZXJjaW9uQ29udGV4dCBjY29udGV4dCwgQ29lcmNpb25G b3JtIGNmb3JtYXQsIGludCBsb2NhdGlvbiwKKwkJCQkJIE5vZGUgKmVzY29udGV4dCkKIHsKIAlO b2RlCSAgICpyZXN1bHQ7CiAJQ29lcmNpb25QYXRoVHlwZSBwYXRodHlwZTsKQEAgLTI1Niw2ICsy OTYsNyBAQCBjb2VyY2VfdHlwZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKm5vZGUsCiAJCWlu dDMyCQlpbnB1dFR5cGVNb2Q7CiAJCVR5cGUJCWJhc2VUeXBlOwogCQlQYXJzZUNhbGxiYWNrU3Rh dGUgcGNic3RhdGU7CisJCWNoYXIJICAgKnN0cmluZyA9IE5VTEw7CiAKIAkJLyoKIAkJICogSWYg dGhlIHRhcmdldCB0eXBlIGlzIGEgZG9tYWluLCB3ZSB3YW50IHRvIGNhbGwgaXRzIGJhc2UgdHlw ZSdzCkBAIC0zMDksMTMgKzM1MCwyMSBAQCBjb2VyY2VfdHlwZShQYXJzZVN0YXRlICpwc3RhdGUs IE5vZGUgKm5vZGUsCiAJCSAqIGFzIENTVFJJTkcuCiAJCSAqLwogCQlpZiAoIWNvbi0+Y29uc3Rp c251bGwpCi0JCQluZXdjb24tPmNvbnN0dmFsdWUgPSBzdHJpbmdUeXBlRGF0dW0oYmFzZVR5cGUs Ci0JCQkJCQkJCQkJCQkgRGF0dW1HZXRDU3RyaW5nKGNvbi0+Y29uc3R2YWx1ZSksCi0JCQkJCQkJ CQkJCQkgaW5wdXRUeXBlTW9kKTsKLQkJZWxzZQotCQkJbmV3Y29uLT5jb25zdHZhbHVlID0gc3Ry aW5nVHlwZURhdHVtKGJhc2VUeXBlLAotCQkJCQkJCQkJCQkJIE5VTEwsCi0JCQkJCQkJCQkJCQkg aW5wdXRUeXBlTW9kKTsKKwkJCXN0cmluZyA9IERhdHVtR2V0Q1N0cmluZyhjb24tPmNvbnN0dmFs dWUpOworCisJCWlmICghc3RyaW5nVHlwZURhdHVtU2FmZShiYXNlVHlwZSwKKwkJCQkJCQkJIHN0 cmluZywKKwkJCQkJCQkJIGlucHV0VHlwZU1vZCwKKwkJCQkJCQkJIGVzY29udGV4dCwKKwkJCQkJ CQkJICZuZXdjb24tPmNvbnN0dmFsdWUpKQorCQl7CisJCQkvKiBVTktOT1dOIENvbnN0IGNhbm5v dCBjb2VyY2UgdG8gdGFyZ2V0VHlwZSwgZXhpdCBub3cgKi8KKwkJCWNhbmNlbF9wYXJzZXJfZXJy cG9zaXRpb25fY2FsbGJhY2soJnBjYnN0YXRlKTsKKworCQkJUmVsZWFzZVN5c0NhY2hlKGJhc2VU eXBlKTsKKworCQkJcmV0dXJuIE5VTEw7CisJCX0KIAogCQkvKgogCQkgKiBJZiBpdCdzIGEgdmFy bGVuYSB2YWx1ZSwgZm9yY2UgaXQgdG8gYmUgaW4gbm9uLWV4cGFuZGVkCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2V4cHIuYwppbmRleCA5Njk5MWNhZTc2NC4uOTk3Y2M4NzY0OWQgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2V4cHIuYwpAQCAtMTcsNiArMTcsNyBAQAogCiAjaW5jbHVkZSAiYWNjZXNzL2h0dXBfZGV0YWls cy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYWdncmVnYXRlLmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9wZ19jYXN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAibWlz Y2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCkBAIC0zNyw2ICszOCw3IEBA CiAjaW5jbHVkZSAidXRpbHMvZGF0ZS5oIgogI2luY2x1ZGUgInV0aWxzL2ZtZ3JvaWRzLmgiCiAj aW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIK ICNpbmNsdWRlICJ1dGlscy90aW1lc3RhbXAuaCIKICNpbmNsdWRlICJ1dGlscy90eXBjYWNoZS5o IgogI2luY2x1ZGUgInV0aWxzL3htbC5oIgpAQCAtNjEsNyArNjMsOCBAQCBzdGF0aWMgTm9kZSAq dHJhbnNmb3JtTXVsdGlBc3NpZ25SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBNdWx0aUFzc2lnblJl ZiAqbWFyZWYpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUNhc2VFeHByKFBhcnNlU3RhdGUgKnBz dGF0ZSwgQ2FzZUV4cHIgKmMpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybVN1YkxpbmsoUGFyc2VT dGF0ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJsaW5rKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1B cnJheUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0FycmF5RXhwciAqYSwKLQkJCQkJCQkJT2lk IGFycmF5X3R5cGUsIE9pZCBlbGVtZW50X3R5cGUsIGludDMyIHR5cG1vZCk7CisJCQkJCQkJCU9p ZCBhcnJheV90eXBlLCBPaWQgZWxlbWVudF90eXBlLCBpbnQzMiB0eXBtb2QsCisJCQkJCQkJCWJv b2wgKmlzX2NvZXJjaWJsZSk7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtUm93RXhwcihQYXJzZVN0 YXRlICpwc3RhdGUsIFJvd0V4cHIgKnIsIGJvb2wgYWxsb3dEZWZhdWx0KTsKIHN0YXRpYyBOb2Rl ICp0cmFuc2Zvcm1Db2FsZXNjZUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2FsZXNjZUV4cHIg KmMpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybU1pbk1heEV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRl LCBNaW5NYXhFeHByICptKTsKQEAgLTc3LDYgKzgwLDggQEAgc3RhdGljIE5vZGUgKnRyYW5zZm9y bVdob2xlUm93UmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJICBpbnQgc3VibGV2ZWxz X3VwLCBpbnQgbG9jYXRpb24pOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUluZGlyZWN0aW9uKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKTsKIHN0YXRpYyBOb2RlICp0cmFu c2Zvcm1UeXBlQ2FzdChQYXJzZVN0YXRlICpwc3RhdGUsIFR5cGVDYXN0ICp0Yyk7CitzdGF0aWMg dm9pZCBDb2VyY2lvbkVycm9yU2FmZUNoZWNrKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqY2Fz dGV4cHIsCisJCQkJCQkJCSAgIE5vZGUgKnNvdXJjZSwgT2lkIGlucHV0VHlwZSwgT2lkIHRhcmdl dFR5cGUpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUNvbGxhdGVDbGF1c2UoUGFyc2VTdGF0ZSAq cHN0YXRlLCBDb2xsYXRlQ2xhdXNlICpjKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Kc29uT2Jq ZWN0Q29uc3RydWN0b3IoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCQlKc29uT2JqZWN0 Q29uc3RydWN0b3IgKmN0b3IpOwpAQCAtMTY1LDcgKzE3MCw3IEBAIHRyYW5zZm9ybUV4cHJSZWN1 cnNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcikKIAogCQljYXNlIFRfQV9BcnJheUV4 cHI6CiAJCQlyZXN1bHQgPSB0cmFuc2Zvcm1BcnJheUV4cHIocHN0YXRlLCAoQV9BcnJheUV4cHIg KikgZXhwciwKLQkJCQkJCQkJCQlJbnZhbGlkT2lkLCBJbnZhbGlkT2lkLCAtMSk7CisJCQkJCQkJ CQkJSW52YWxpZE9pZCwgSW52YWxpZE9pZCwgLTEsIE5VTEwpOwogCQkJYnJlYWs7CiAKIAkJY2Fz ZSBUX1R5cGVDYXN0OgpAQCAtNTY1LDYgKzU3MCw3IEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJz ZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAkJY2FzZSBFWFBSX0tJTkRfVkFMVUVT X1NJTkdMRToKIAkJY2FzZSBFWFBSX0tJTkRfQ0hFQ0tfQ09OU1RSQUlOVDoKIAkJY2FzZSBFWFBS X0tJTkRfRE9NQUlOX0NIRUNLOgorCQljYXNlIEVYUFJfS0lORF9DQVNUX0RFRkFVTFQ6CiAJCWNh c2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0lOREVYX0VY UFJFU1NJT046CiAJCWNhc2UgRVhQUl9LSU5EX0lOREVYX1BSRURJQ0FURToKQEAgLTE4MzQsNiAr MTg0MCw5IEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTdWJMaW5rICpz dWJsaW5rKQogCQljYXNlIEVYUFJfS0lORF9ET01BSU5fQ0hFQ0s6CiAJCQllcnIgPSBfKCJjYW5u b3QgdXNlIHN1YnF1ZXJ5IGluIGNoZWNrIGNvbnN0cmFpbnQiKTsKIAkJCWJyZWFrOworCQljYXNl IEVYUFJfS0lORF9DQVNUX0RFRkFVTFQ6CisJCQllcnIgPSBfKCJjYW5ub3QgdXNlIHN1YnF1ZXJ5 IGluIENBU1QgREVGQVVMVCBleHByZXNzaW9uIik7CisJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJ TkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CiAJ CQllcnIgPSBfKCJjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIERFRkFVTFQgZXhwcmVzc2lvbiIpOwpA QCAtMjAyMSwxNyArMjAzMCwyMyBAQCB0cmFuc2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgU3ViTGluayAqc3VibGluaykKICAqIElmIHRoZSBjYWxsZXIgc3BlY2lmaWVzIHRoZSB0YXJn ZXQgdHlwZSwgdGhlIHJlc3VsdGluZyBhcnJheSB3aWxsCiAgKiBiZSBvZiBleGFjdGx5IHRoYXQg dHlwZS4gIE90aGVyd2lzZSB3ZSB0cnkgdG8gaW5mZXIgYSBjb21tb24gdHlwZQogICogZm9yIHRo ZSBlbGVtZW50cyB1c2luZyBzZWxlY3RfY29tbW9uX3R5cGUoKS4KKyAqCisgKiBpc19jb2VyY2li bGUgaXMgdHlwaWNhbGx5IE5VTEwsIGV4Y2VwdCBkdXJpbmcgcGFyc2UgYW5hbHlzaXMgZm9yCisg KiBDQVNUKC4uLiBERUZBVUxUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SKS4gV2hlbiBwcm92aWRl ZCwgaXQgZGVmYXVsdHMKKyAqIHRvIHRydWUgYnV0IHdpbGwgYmUgc2V0IHRvIGZhbHNlIGlmIGNv ZXJjaW5nIGFycmF5IGVsZW1lbnRzIGZhaWxzLgogICovCiBzdGF0aWMgTm9kZSAqCiB0cmFuc2Zv cm1BcnJheUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0FycmF5RXhwciAqYSwKLQkJCQkgICBP aWQgYXJyYXlfdHlwZSwgT2lkIGVsZW1lbnRfdHlwZSwgaW50MzIgdHlwbW9kKQorCQkJCSAgIE9p ZCBhcnJheV90eXBlLCBPaWQgZWxlbWVudF90eXBlLCBpbnQzMiB0eXBtb2QsIGJvb2wgKmlzX2Nv ZXJjaWJsZSkKIHsKIAlBcnJheUV4cHIgICpuZXdhID0gbWFrZU5vZGUoQXJyYXlFeHByKTsKIAlM aXN0CSAgICpuZXdlbGVtcyA9IE5JTDsKIAlMaXN0CSAgICpuZXdjb2VyY2VkZWxlbXMgPSBOSUw7 CiAJTGlzdENlbGwgICAqZWxlbWVudDsKIAlPaWQJCQljb2VyY2VfdHlwZTsKKwlPaWQJCQljb2Vy Y2VfdHlwZV9jb2xsOwogCWJvb2wJCWNvZXJjZV9oYXJkOworCUVycm9yU2F2ZUNvbnRleHQgZXNj b250ZXh0ID0ge1RfRXJyb3JTYXZlQ29udGV4dH07CiAKIAkvKgogCSAqIFRyYW5zZm9ybSB0aGUg ZWxlbWVudCBleHByZXNzaW9ucwpAQCAtMjA1NSw5ICsyMDcwLDEwIEBAIHRyYW5zZm9ybUFycmF5 RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIEFfQXJyYXlFeHByICphLAogCQkJCQkJCQkJICAoQV9B cnJheUV4cHIgKikgZSwKIAkJCQkJCQkJCSAgYXJyYXlfdHlwZSwKIAkJCQkJCQkJCSAgZWxlbWVu dF90eXBlLAotCQkJCQkJCQkJICB0eXBtb2QpOworCQkJCQkJCQkJICB0eXBtb2QsCisJCQkJCQkJ CQkgIGlzX2NvZXJjaWJsZSk7CiAJCQkvKiB3ZSBjZXJ0YWlubHkgaGF2ZSBhbiBhcnJheSBoZXJl ICovCi0JCQlBc3NlcnQoYXJyYXlfdHlwZSA9PSBJbnZhbGlkT2lkIHx8IGFycmF5X3R5cGUgPT0g ZXhwclR5cGUobmV3ZSkpOworCQkJQXNzZXJ0KGlzX2NvZXJjaWJsZSB8fCBhcnJheV90eXBlID09 IEludmFsaWRPaWQgfHwgYXJyYXlfdHlwZSA9PSBleHByVHlwZShuZXdlKSk7CiAJCQluZXdhLT5t dWx0aWRpbXMgPSB0cnVlOwogCQl9CiAJCWVsc2UKQEAgLTIwOTgsNiArMjExNCw4IEBAIHRyYW5z Zm9ybUFycmF5RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIEFfQXJyYXlFeHByICphLAogCX0KIAll bHNlCiAJeworCQlBc3NlcnQoaXNfY29lcmNpYmxlID09IE5VTEwpOworCiAJCS8qIENhbid0IGhh bmRsZSBhbiBlbXB0eSBhcnJheSB3aXRob3V0IGEgdGFyZ2V0IHR5cGUgKi8KIAkJaWYgKG5ld2Vs ZW1zID09IE5JTCkKIAkJCWVyZXBvcnQoRVJST1IsCkBAIC0yMTM1LDYgKzIxNTMsOCBAQCB0cmFu c2Zvcm1BcnJheUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0FycmF5RXhwciAqYSwKIAkJY29l cmNlX2hhcmQgPSBmYWxzZTsKIAl9CiAKKwljb2VyY2VfdHlwZV9jb2xsID0gZ2V0X3R5cGNvbGxh dGlvbihjb2VyY2VfdHlwZSk7CisKIAkvKgogCSAqIENvZXJjZSBlbGVtZW50cyB0byB0YXJnZXQg dHlwZQogCSAqCkBAIC0yMTQ0LDI4ICsyMTY0LDc5IEBAIHRyYW5zZm9ybUFycmF5RXhwcihQYXJz ZVN0YXRlICpwc3RhdGUsIEFfQXJyYXlFeHByICphLAogCSAqIElmIHRoZSBhcnJheSdzIHR5cGUg d2FzIG1lcmVseSBkZXJpdmVkIGZyb20gdGhlIGNvbW1vbiB0eXBlIG9mIGl0cwogCSAqIGVsZW1l bnRzLCB0aGVuIHRoZSBlbGVtZW50cyBhcmUgaW1wbGljaXRseSBjb2VyY2VkIHRvIHRoZSBjb21t b24gdHlwZS4KIAkgKiBUaGlzIGlzIGNvbnNpc3RlbnQgd2l0aCBvdGhlciB1c2VzIG9mIHNlbGVj dF9jb21tb25fdHlwZSgpLgorCSAqCisJICogSWYgaXNfY29lcmNpYmxlIGlzIG5vdCBOVUxMLCBj aGVjayB3aGV0aGVyIGVhY2ggZWxlbWVudCBjYW4gYmUgY29lcmNlZAorCSAqIHRvIHRoZSB0YXJn ZXQgdHlwZSwgc2ltaWxhciB0byB3aGF0IGlzIGRvbmUgaW4gdHJhbnNmb3JtVHlwZUNhc3QuCiAJ ICovCiAJZm9yZWFjaChlbGVtZW50LCBuZXdlbGVtcykKIAl7CiAJCU5vZGUJICAgKmUgPSAoTm9k ZSAqKSBsZmlyc3QoZWxlbWVudCk7Ci0JCU5vZGUJICAgKm5ld2U7CisJCU5vZGUJICAgKm5ld2Ug PSBOVUxMOwogCiAJCWlmIChjb2VyY2VfaGFyZCkKIAkJewotCQkJbmV3ZSA9IGNvZXJjZV90b190 YXJnZXRfdHlwZShwc3RhdGUsIGUsCi0JCQkJCQkJCQkJIGV4cHJUeXBlKGUpLAotCQkJCQkJCQkJ CSBjb2VyY2VfdHlwZSwKLQkJCQkJCQkJCQkgdHlwbW9kLAotCQkJCQkJCQkJCSBDT0VSQ0lPTl9F WFBMSUNJVCwKLQkJCQkJCQkJCQkgQ09FUkNFX0VYUExJQ0lUX0NBU1QsCi0JCQkJCQkJCQkJIC0x KTsKLQkJCWlmIChuZXdlID09IE5VTEwpCi0JCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJCShlcnJj b2RlKEVSUkNPREVfQ0FOTk9UX0NPRVJDRSksCi0JCQkJCQkgZXJybXNnKCJjYW5ub3QgY2FzdCB0 eXBlICVzIHRvICVzIiwKLQkJCQkJCQkJZm9ybWF0X3R5cGVfYmUoZXhwclR5cGUoZSkpLAotCQkJ CQkJCQlmb3JtYXRfdHlwZV9iZShjb2VyY2VfdHlwZSkpLAotCQkJCQkJIHBhcnNlcl9lcnJwb3Np dGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihlKSkpKTsKKwkJCS8qCisJCQkgKiBDYW5ub3QgY29l cmNlLCBqdXN0IGFwcGVuZCB0aGUgdHJhbnNmb3JtZWQgZWxlbWVudCBleHByZXNzaW9uCisJCQkg KiB0byB0aGUgbGlzdC4KKwkJCSAqLworCQkJaWYgKGlzX2NvZXJjaWJsZSAmJiAoISppc19jb2Vy Y2libGUpKQorCQkJCW5ld2UgPSBlOworCQkJZWxzZQorCQkJeworCQkJCU5vZGUJICAgKmVjb3B5 ID0gTlVMTDsKKworCQkJCWlmIChpc19jb2VyY2libGUpCisJCQkJCWVjb3B5ID0gY29weU9iamVj dChlKTsKKworCQkJCW5ld2UgPSBjb2VyY2VfdG9fdGFyZ2V0X3R5cGVfZXh0ZW5kZWQocHN0YXRl LCBlLAorCQkJCQkJCQkJCQkJCSAgZXhwclR5cGUoZSksCisJCQkJCQkJCQkJCQkJICBjb2VyY2Vf dHlwZSwKKwkJCQkJCQkJCQkJCQkgIHR5cG1vZCwKKwkJCQkJCQkJCQkJCQkgIENPRVJDSU9OX0VY UExJQ0lULAorCQkJCQkJCQkJCQkJCSAgQ09FUkNFX0VYUExJQ0lUX0NBU1QsCisJCQkJCQkJCQkJ CQkJICAtMSwKKwkJCQkJCQkJCQkJCQkgIChOb2RlICopICZlc2NvbnRleHQpOworCQkJCWlmIChu ZXdlID09IE5VTEwpCisJCQkJeworCQkJCQkvKgorCQkJCQkgKiBDYW5ub3QgY29lcmNlLiBSYWlz ZSBhbiBlcnJvciBvciBhcHBlbmQgdGhlIHRyYW5zZm9ybWVkCisJCQkJCSAqIGVsZW1lbnQgdG8g dGhlIGxpc3QuCisJCQkJCSAqLworCQkJCQlpZiAoIWlzX2NvZXJjaWJsZSkKKwkJCQkJCWVyZXBv cnQoRVJST1IsCisJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfQ0FOTk9UX0NPRVJDRSksCisJCQkJ CQkJCSBlcnJtc2coImNhbm5vdCBjYXN0IHR5cGUgJXMgdG8gJXMiLAorCQkJCQkJCQkJCWZvcm1h dF90eXBlX2JlKGV4cHJUeXBlKGUpKSwKKwkJCQkJCQkJCQlmb3JtYXRfdHlwZV9iZShjb2VyY2Vf dHlwZSkpLAorCQkJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9u KGUpKSkpOworCQkJCQllbHNlCisJCQkJCXsKKwkJCQkJCW5ld2UgPSBlY29weTsKKwkJCQkJCSpp c19jb2VyY2libGUgPSBmYWxzZTsKKwkJCQkJfQorCQkJCX0KKwkJCQllbHNlIGlmIChpc19jb2Vy Y2libGUgJiYgSXNBKGVjb3B5LCBDb25zdCkgJiYgSXNBKG5ld2UsIEZ1bmNFeHByKSkKKwkJCQl7 CisJCQkJCU5vZGUJICAgKm5ld2V4cHIgPSBjb3B5T2JqZWN0KG5ld2UpOworCisJCQkJCS8qCisJ CQkJCSAqIFByZS1ldmFsdWF0ZSBzaW1wbGUgY29uc3RhbnQgY2FzdCBleHByZXNzaW9ucyBpbiBh IHdheQorCQkJCQkgKiB0aGF0IHRvbGVyYXRlIGVycm9ycy4KKwkJCQkJICovCisJCQkJCWFzc2ln bl9leHByX2NvbGxhdGlvbnMocHN0YXRlLCBuZXdleHByKTsKKworCQkJCQluZXdleHByID0gKE5v ZGUgKikgZXZhbHVhdGVfZXhwcigoRXhwciAqKSBuZXdleHByLAorCQkJCQkJCQkJCQkJCSBjb2Vy Y2VfdHlwZSwKKwkJCQkJCQkJCQkJCQkgdHlwbW9kLAorCQkJCQkJCQkJCQkJCSBjb2VyY2VfdHlw ZV9jb2xsLAorCQkJCQkJCQkJCQkJCSAoTm9kZSAqKSAmZXNjb250ZXh0KTsKKwkJCQkJaWYgKG5l d2V4cHIgPT0gTlVMTCkKKwkJCQkJeworCQkJCQkJbmV3ZSA9IGVjb3B5OworCQkJCQkJKmlzX2Nv ZXJjaWJsZSA9IGZhbHNlOworCQkJCQl9CisJCQkJfQorCQkJfQogCQl9CiAJCWVsc2UKIAkJCW5l d2UgPSBjb2VyY2VfdG9fY29tbW9uX3R5cGUocHN0YXRlLCBlLApAQCAtMjcwNiw3ICsyNzc3LDgg QEAgdHJhbnNmb3JtV2hvbGVSb3dSZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJzZU5hbWVzcGFj ZUl0ZW0gKm5zaXRlbSwKIH0KIAogLyoKLSAqIEhhbmRsZSBhbiBleHBsaWNpdCBDQVNUIGNvbnN0 cnVjdC4KKyAqIEhhbmRsZSBhbiBleHBsaWNpdCBDQVNUIGNvbnN0cnVjdCBvcgorICogQ0FTVCgu Li4gREVGQVVMVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUikgY29uc3RydWN0LgogICoKICAqIFRy YW5zZm9ybSB0aGUgYXJndW1lbnQsIGxvb2sgdXAgdGhlIHR5cGUgbmFtZSwgYW5kIGFwcGx5IGFu eSBuZWNlc3NhcnkKICAqIGNvZXJjaW9uIGZ1bmN0aW9uKHMpLgpAQCAtMjcxNCwxNyArMjc4Niw2 MyBAQCB0cmFuc2Zvcm1XaG9sZVJvd1JlZihQYXJzZVN0YXRlICpwc3RhdGUsIFBhcnNlTmFtZXNw YWNlSXRlbSAqbnNpdGVtLAogc3RhdGljIE5vZGUgKgogdHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VT dGF0ZSAqcHN0YXRlLCBUeXBlQ2FzdCAqdGMpCiB7Ci0JTm9kZQkgICAqcmVzdWx0OworCVNhZmVU eXBlQ2FzdEV4cHIgKnN0YzsKKwlOb2RlCSAgICpjYXN0ZXhwciA9IE5VTEw7CisJTm9kZQkgICAq ZGVmZXhwciA9IE5VTEw7CiAJTm9kZQkgICAqYXJnID0gdGMtPmFyZzsKKwlOb2RlCSAgICpzb3Vy Y2U7CiAJTm9kZQkgICAqZXhwcjsKIAlPaWQJCQlpbnB1dFR5cGU7CiAJT2lkCQkJdGFyZ2V0VHlw ZTsKKwlPaWQJCQl0YXJnZXRUeXBlY29sbDsKIAlpbnQzMgkJdGFyZ2V0VHlwbW9kOwogCWludAkJ CWxvY2F0aW9uOworCWJvb2wJCWlzX2NvZXJjaWJsZSA9IHRydWU7CisJRXJyb3JTYXZlQ29udGV4 dCBlc2NvbnRleHQgPSB7VF9FcnJvclNhdmVDb250ZXh0fTsKIAogCS8qIExvb2sgdXAgdGhlIHR5 cGUgbmFtZSBmaXJzdCAqLwogCXR5cGVuYW1lVHlwZUlkQW5kTW9kKHBzdGF0ZSwgdGMtPnR5cGVO YW1lLCAmdGFyZ2V0VHlwZSwgJnRhcmdldFR5cG1vZCk7CiAKKwl0YXJnZXRUeXBlY29sbCA9IGdl dF90eXBjb2xsYXRpb24odGFyZ2V0VHlwZSk7CisKKwkvKiBsb29raW5nIGF0IERFRkFVTFQgZXhw cmVzc2lvbiAqLworCWlmICh0Yy0+ZGVmZXhwcikKKwl7CisJCU9pZAkJCWRlZkNvbGw7CisKKwkJ ZGVmZXhwciA9IHRyYW5zZm9ybUV4cHIocHN0YXRlLCB0Yy0+ZGVmZXhwciwgRVhQUl9LSU5EX0NB U1RfREVGQVVMVCk7CisKKwkJZGVmZXhwciA9IGNvZXJjZV90b190YXJnZXRfdHlwZShwc3RhdGUs IGRlZmV4cHIsIGV4cHJUeXBlKGRlZmV4cHIpLAorCQkJCQkJCQkJCXRhcmdldFR5cGUsIHRhcmdl dFR5cG1vZCwKKwkJCQkJCQkJCQlDT0VSQ0lPTl9FWFBMSUNJVCwKKwkJCQkJCQkJCQlDT0VSQ0Vf RVhQTElDSVRfQ0FTVCwKKwkJCQkJCQkJCQlleHByTG9jYXRpb24oZGVmZXhwcikpOworCQlpZiAo ZGVmZXhwciA9PSBOVUxMKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RF X0NBTk5PVF9DT0VSQ0UpLAorCQkJCQllcnJtc2coImNhbm5vdCBjb2VyY2UgJXMgZXhwcmVzc2lv biB0byB0eXBlICVzIiwKKwkJCQkJCSAgICJDQVNUIERFRkFVTFQiLAorCQkJCQkJICAgZm9ybWF0 X3R5cGVfYmUodGFyZ2V0VHlwZSkpLAorCQkJCQlwYXJzZXJfY29lcmNpb25fZXJycG9zaXRpb24o cHN0YXRlLCBleHByTG9jYXRpb24odGMtPmRlZmV4cHIpLCBkZWZleHByKSk7CisKKwkJYXNzaWdu X2V4cHJfY29sbGF0aW9ucyhwc3RhdGUsIGRlZmV4cHIpOworCisJCS8qCisJCSAqIFRoZSBjb2xs YXRpb24gb2YgREVGQVVMVCBleHByZXNzaW9uIG11c3QgbWF0Y2ggdGhlIGNvbGxhdGlvbiBvZiB0 aGUKKwkJICogdGFyZ2V0IHR5cGUuCisJCSAqLworCQlkZWZDb2xsID0gZXhwckNvbGxhdGlvbihk ZWZleHByKTsKKworCQlpZiAodGFyZ2V0VHlwZWNvbGwgIT0gZGVmQ29sbCkKKwkJCWVyZXBvcnQo RVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJCWVy cm1zZygidGhlIGNvbGxhdGlvbiBvZiBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbiBjb25mbGljdHMg d2l0aCB0YXJnZXQgdHlwZSBjb2xsYXRpb24iKSwKKwkJCQkJZXJyZGV0YWlsKCJcIiVzXCIgdmVy c3VzIFwiJXNcIiIsCisJCQkJCQkJICBnZXRfY29sbGF0aW9uX25hbWUodGFyZ2V0VHlwZWNvbGwp LAorCQkJCQkJCSAgZ2V0X2NvbGxhdGlvbl9uYW1lKGRlZkNvbGwpKSwKKwkJCQkJcGFyc2VyX2Vy cnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGRlZmV4cHIpKSk7CisJfQorCiAJLyoKIAkg KiBJZiB0aGUgc3ViamVjdCBvZiB0aGUgdHlwZWNhc3QgaXMgYW4gQVJSQVlbXSBjb25zdHJ1Y3Qg YW5kIHRoZSB0YXJnZXQKIAkgKiB0eXBlIGlzIGFuIGFycmF5IHR5cGUsIHdlIGludm9rZSB0cmFu c2Zvcm1BcnJheUV4cHIoKSBkaXJlY3RseSBzbyB0aGF0CkBAIC0yNzUzLDcgKzI4NzEsOCBAQCB0 cmFuc2Zvcm1UeXBlQ2FzdChQYXJzZVN0YXRlICpwc3RhdGUsIFR5cGVDYXN0ICp0YykKIAkJCQkJ CQkJCSAgKEFfQXJyYXlFeHByICopIGFyZywKIAkJCQkJCQkJCSAgdGFyZ2V0QmFzZVR5cGUsCiAJ CQkJCQkJCQkgIGVsZW1lbnRUeXBlLAotCQkJCQkJCQkJICB0YXJnZXRCYXNlVHlwbW9kKTsKKwkJ CQkJCQkJCSAgdGFyZ2V0QmFzZVR5cG1vZCwKKwkJCQkJCQkJCSAgZGVmZXhwciA/ICZpc19jb2Vy Y2libGUgOiBOVUxMKTsKIAkJfQogCQllbHNlCiAJCQlleHByID0gdHJhbnNmb3JtRXhwclJlY3Vy c2UocHN0YXRlLCBhcmcpOwpAQCAtMjc3NCwyMCArMjg5MywyMDAgQEAgdHJhbnNmb3JtVHlwZUNh c3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBlQ2FzdCAqdGMpCiAJaWYgKGxvY2F0aW9uIDwgMCkK IAkJbG9jYXRpb24gPSB0Yy0+dHlwZU5hbWUtPmxvY2F0aW9uOwogCi0JcmVzdWx0ID0gY29lcmNl X3RvX3RhcmdldF90eXBlKHBzdGF0ZSwgZXhwciwgaW5wdXRUeXBlLAotCQkJCQkJCQkgICB0YXJn ZXRUeXBlLCB0YXJnZXRUeXBtb2QsCi0JCQkJCQkJCSAgIENPRVJDSU9OX0VYUExJQ0lULAotCQkJ CQkJCQkgICBDT0VSQ0VfRVhQTElDSVRfQ0FTVCwKLQkJCQkJCQkJICAgbG9jYXRpb24pOwotCWlm IChyZXN1bHQgPT0gTlVMTCkKKwkvKgorCSAqIGNvZXJjZV90b190YXJnZXRfdHlwZV9leHRlbmRl ZCBpcyB1bmxpa2VseSB0byBtb2RpZnkgdGhlIHNvdXJjZQorCSAqIGV4cHJlc3Npb24sIGJ1dCB3 ZSBzdGlsbCBjcmVhdGUgYSBjb3B5IGJlZm9yZWhhbmQuIFRoaXMgYWxsb3dzCisJICogU2FmZVR5 cGVDYXN0RXhwciB0byByZWNlaXZlIHRoZSB0cmFuc2Zvcm1lZCBzb3VyY2UgZXhwcmVzc2lvbgor CSAqIHVuY2hhbmdlZC4KKwkgKi8KKwlzb3VyY2UgPSBjb3B5T2JqZWN0KGV4cHIpOworCisJaWYg KGlzX2NvZXJjaWJsZSkKKwl7CisJCWNhc3RleHByID0gY29lcmNlX3RvX3RhcmdldF90eXBlX2V4 dGVuZGVkKHBzdGF0ZSwgZXhwciwgaW5wdXRUeXBlLAorCQkJCQkJCQkJCQkJICB0YXJnZXRUeXBl LCB0YXJnZXRUeXBtb2QsCisJCQkJCQkJCQkJCQkgIENPRVJDSU9OX0VYUExJQ0lULAorCQkJCQkJ CQkJCQkJICBDT0VSQ0VfRVhQTElDSVRfQ0FTVCwKKwkJCQkJCQkJCQkJCSAgbG9jYXRpb24sCisJ CQkJCQkJCQkJCQkgIGRlZmV4cHIgPyAoTm9kZSAqKSAmZXNjb250ZXh0IDogTlVMTCk7CisKKwkJ LyoKKwkJICogQ2Fubm90IGNvZXJjZS4gU2V0IGlzX2NvZXJjaWJsZSB0byBmYWxzZSBvciByYWlz ZSBhbiBlcnJvciBmb3IgYQorCQkgKiBzaW1wbGUgQ0FTVC4KKwkJICovCisJCWlmICghY2FzdGV4 cHIpCisJCXsKKwkJCWlzX2NvZXJjaWJsZSA9IGZhbHNlOworCisJCQlpZiAoIWRlZmV4cHIpCisJ CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfQ0FOTk9UX0NPRVJDRSks CisJCQkJCQkgZXJybXNnKCJjYW5ub3QgY2FzdCB0eXBlICVzIHRvICVzIiwKKwkJCQkJCQkJZm9y bWF0X3R5cGVfYmUoaW5wdXRUeXBlKSwKKwkJCQkJCQkJZm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlw ZSkpLAorCQkJCQkJIHBhcnNlcl9jb2VyY2lvbl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9u LCBleHByKSkpOworCisJCX0KKworCQkvKgorCQkgKiBTaW1wbGUgQ0FTVCBjb25zdHJ1Y3QsIHJl dHVybiB0aGUgY2FzdCBleHByZXNzaW9uIG5vdworCQkgKi8KKwkJaWYgKCFkZWZleHByKQorCQkJ cmV0dXJuIGNhc3RleHByOworCX0KKworCS8qIEZ1cnRoZXIgY2hlY2sgQ0FTVCguLi4gREVGQVVM VCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUikgY29uc3RydWN0ICovCisJQ29lcmNpb25FcnJvclNh ZmVDaGVjayhwc3RhdGUsIGNhc3RleHByLCBzb3VyY2UsIGlucHV0VHlwZSwKKwkJCQkJCSAgIHRh cmdldFR5cGUpOworCisJaWYgKElzQShzb3VyY2UsIENvbnN0KSAmJiBjYXN0ZXhwciAmJiBJc0Eo Y2FzdGV4cHIsIEZ1bmNFeHByKSkKKwl7CisJCU5vZGUJICAgKm5ld2V4cHIgPSBjb3B5T2JqZWN0 KGNhc3RleHByKTsKKworCQlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgbmV3ZXhwcik7 CisKKwkJLyoKKwkJICogUHJlLWV2YWx1YXRlIHNpbXBsZSBjb25zdGFudCBjYXN0IGV4cHJlc3Np b25zIGluIGFuIGVycm9yLXNhZmUKKwkJICogbWFubmVyIHZpYSBldmFsdWF0ZV9leHByLgorCQkg KgorCQkgKiBSYXRpb25hbGU6IDEuIExhdGVyIG9wZXJhdGlvbnMsIHN1Y2ggYXMgZGVwYXJzaW5n IHNhZmUtY2FzdAorCQkgKiBleHByZXNzaW9ucywgbWF5IGludm9rZSBldmFsX2NvbnN0X2V4cHJl c3Npb25zKCkuIEJlY2F1c2UgdGhhdAorCQkgKiBmdW5jdGlvbiBjYW5ub3QgaGFuZGxlIGVycm9y cyBncmFjZWZ1bGx5LCB3ZSBwcmVlbXB0aXZlbHkgcGVyZm9ybQorCQkgKiB0aGUgZXZhbHVhdGlv biBoZXJlIHVzaW5nIHRoZSBlcnJvci1zYWZlIGV2YWx1YXRlX2V4cHIoKSBpbnN0ZWFkLgorCQkg KgorCQkgKiAyLiBFdmVuIGlmIHRoZSBGdW5jRXhwciAoZm9yIGNhc3RmdW5jKSBoYXMgdGhyZWUg YXJndW1lbnRzLCB0aGUKKwkJICogc2Vjb25kIGFuZCB0aGlyZCBhcmd1bWVudHMgYXJlIGd1YXJh bnRlZWQgdG8gYmUgY29uc3RhbnRzIChzZWUKKwkJICogY29lcmNlX3RvX3RhcmdldF90eXBlKS4g RXZhbHVhdGluZyBhIEZ1bmNFeHByIHdoZXJlIGFsbCBhcmd1bWVudHMKKwkJICogYXJlIENvbnN0 IG5vZGVzIGlzIHNhZmUgaW4gZXZhbHVhdGVfZXhwci4KKwkJICovCisJCW5ld2V4cHIgPSAoTm9k ZSAqKSBldmFsdWF0ZV9leHByKChFeHByICopIG5ld2V4cHIsCisJCQkJCQkJCQkJIHRhcmdldFR5 cGUsCisJCQkJCQkJCQkJIHRhcmdldFR5cG1vZCwKKwkJCQkJCQkJCQkgdGFyZ2V0VHlwZWNvbGws CisJCQkJCQkJCQkJIChOb2RlICopICZlc2NvbnRleHQpOworCQlpZiAobmV3ZXhwciA9PSBOVUxM KQorCQl7CisJCQkvKiBDYW5ub3QgY29lcmNlLCBzZXQgaXNfY29lcmNpYmxlIHRvIGZhbHNlICov CisJCQlpc19jb2VyY2libGUgPSBmYWxzZTsKKwkJCWNhc3RleHByID0gTlVMTDsKKwkJfQorCX0K KworCUFzc2VydChpc19jb2VyY2libGUgfHwgY2FzdGV4cHIgPT0gTlVMTCk7CisKKwlzdGMgPSBt YWtlTm9kZShTYWZlVHlwZUNhc3RFeHByKTsKKwlzdGMtPnNvdXJjZSA9IChFeHByICopIHNvdXJj ZTsKKwlzdGMtPmNhc3RleHByID0gKEV4cHIgKikgY2FzdGV4cHI7CisJc3RjLT5kZWZleHByID0g KEV4cHIgKikgZGVmZXhwcjsKKwlzdGMtPnJlc3VsdHR5cGUgPSB0YXJnZXRUeXBlOworCXN0Yy0+ cmVzdWx0dHlwbW9kID0gdGFyZ2V0VHlwbW9kOworCXN0Yy0+cmVzdWx0Y29sbGlkID0gdGFyZ2V0 VHlwZWNvbGw7CisJc3RjLT5sb2NhdGlvbiA9IGxvY2F0aW9uOworCisJcmV0dXJuIChOb2RlICop IHN0YzsKK30KKworLyoKKyAqIENoZWNrIHR5cGUgY29lcmNpb24gaXMgZXJyb3Igc2FmZSBvciBu b3QuICBJZiBub3QgdGhlbiByZXBvcnQgZXJyb3IKKyAqLworc3RhdGljIHZvaWQKK0NvZXJjaW9u RXJyb3JTYWZlQ2hlY2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpjYXN0ZXhwciwgTm9kZSAq c291cmNlLAorCQkJCQkgICBPaWQgaW5wdXRUeXBlLCBPaWQgdGFyZ2V0VHlwZSkKK3sKKwlib29s CQllcnJvcnNhZmVfY29lcmNpb24gPSB0cnVlOworCWJvb2wJCXVzZXJkZWZpbmVkID0gZmFsc2U7 CisJT2lkCQkJaW5wdXRCYXNlVHlwZTsKKwlPaWQJCQl0YXJnZXRCYXNlVHlwZTsKKwlPaWQJCQlp bnB1dEVsZW1lbnRUeXBlOworCU9pZAkJCWlucHV0RWxlbWVudEJhc2VUeXBlOworCU9pZAkJCXRh cmdldEVsZW1lbnRUeXBlOworCU9pZAkJCXRhcmdldEVsZW1lbnRCYXNlVHlwZTsKKworCS8qCisJ ICogQmluYXJ5IGNvZXJjaW9uIGNhc3QgaXMgZXF1aXZhbGVudCB0byBubyBjYXN0IGF0IGFsbC4g IENvZXJjZVZpYUlPIGNhbgorCSAqIGFsc28gYmUgZXZhbHVhdGVkIGluIGFuIGVycm9yLXNhZmUg bWFubmVyLiBTa2lwIHRoZXNlIHR3byBjYXNlcy4KKwkgKi8KKwlpZiAoY2FzdGV4cHIgPT0gTlVM TCB8fCBJc0EoY2FzdGV4cHIsIFJlbGFiZWxUeXBlKSB8fAorCQlJc0EoY2FzdGV4cHIsIENvZXJj ZVZpYUlPKSkKKwkJcmV0dXJuOworCisJLyoKKwkgKiBUeXBlIGNhc3QgaW52b2x2aW5nIHdpdGgg c29tZSB0eXBlcyBpcyBub3QgZXJyb3Igc2FmZSwgZG8gdGhlIGNoZWNrCisJICogbm93LiBXZSBu ZWVkIGNvbnNpZGVyIGRvbWFpbiBvdmVyIGFycmF5IGFuZCBhcnJheSBvdmVyIGRvbWFpbiBzY2Fy ZW5pby4KKwkgKi8KKwlpbnB1dEVsZW1lbnRUeXBlID0gZ2V0X2VsZW1lbnRfdHlwZShpbnB1dFR5 cGUpOworCisJaWYgKE9pZElzVmFsaWQoaW5wdXRFbGVtZW50VHlwZSkpCisJCWlucHV0RWxlbWVu dEJhc2VUeXBlID0gZ2V0QmFzZVR5cGUoaW5wdXRFbGVtZW50VHlwZSk7CisJZWxzZQorCXsKKwkJ aW5wdXRCYXNlVHlwZSA9IGdldEJhc2VUeXBlKGlucHV0VHlwZSk7CisJCWlucHV0RWxlbWVudEJh c2VUeXBlID0gZ2V0X2VsZW1lbnRfdHlwZShpbnB1dEJhc2VUeXBlKTsKKworCQlpZiAoIU9pZElz VmFsaWQoaW5wdXRFbGVtZW50QmFzZVR5cGUpKQorCQkJaW5wdXRFbGVtZW50QmFzZVR5cGUgPSBp bnB1dEJhc2VUeXBlOworCX0KKworCXRhcmdldEVsZW1lbnRUeXBlID0gZ2V0X2VsZW1lbnRfdHlw ZSh0YXJnZXRUeXBlKTsKKworCWlmIChPaWRJc1ZhbGlkKHRhcmdldEVsZW1lbnRUeXBlKSkKKwkJ dGFyZ2V0RWxlbWVudEJhc2VUeXBlID0gZ2V0QmFzZVR5cGUodGFyZ2V0RWxlbWVudFR5cGUpOwor CWVsc2UKKwl7CisJCXRhcmdldEJhc2VUeXBlID0gZ2V0QmFzZVR5cGUodGFyZ2V0VHlwZSk7CisJ CXRhcmdldEVsZW1lbnRCYXNlVHlwZSA9IGdldF9lbGVtZW50X3R5cGUodGFyZ2V0QmFzZVR5cGUp OworCisJCWlmICghT2lkSXNWYWxpZCh0YXJnZXRFbGVtZW50QmFzZVR5cGUpKQorCQkJdGFyZ2V0 RWxlbWVudEJhc2VUeXBlID0gdGFyZ2V0QmFzZVR5cGU7CisJfQorCisJaWYgKGlucHV0RWxlbWVu dEJhc2VUeXBlID09IE1PTkVZT0lEIHx8CisJCXRhcmdldEVsZW1lbnRCYXNlVHlwZSA9PSBNT05F WU9JRCB8fAorCQkoaW5wdXRFbGVtZW50QmFzZVR5cGUgPT0gQ0lSQ0xFT0lEICYmCisJCSB0YXJn ZXRFbGVtZW50QmFzZVR5cGUgPT0gUE9MWUdPTk9JRCkpCisJeworCQkvKgorCQkgKiBDYXN0cyBp bnZvbHZpbmcgdHlwZSBNT05FWSBhcmUgbm90IGVycm9yIHNhZmUuICBUeXBlIENJUkNMRSB0byB0 eXBlCisJCSAqIFBPTFlHT04gY2FzdCBpcyB1bnNhZmUgYmVjYXVzZSBpdCByZWxpZXMgb24gYSBT UUwtbGFuZ3VhZ2UKKwkJICogZnVuY3Rpb247IG9ubHkgQy1sYW5ndWFnZSBmdW5jdGlvbnMgYXJl IGN1cnJlbnRseSBzdXBwb3J0ZWQgZm9yCisJCSAqIGVycm9yIHNhZmUgY2FzdHMuCisJCSAqLwor CQllcnJvcnNhZmVfY29lcmNpb24gPSBmYWxzZTsKKwl9CisKKwlpZiAoZXJyb3JzYWZlX2NvZXJj aW9uKQorCXsKKwkJLyogTG9vayBpbiBwZ19jYXN0ICovCisJCUhlYXBUdXBsZQl0dXBsZSA9IFNl YXJjaFN5c0NhY2hlMihDQVNUU09VUkNFVEFSR0VULAorCQkJCQkJCQkJCQlPYmplY3RJZEdldERh dHVtKGlucHV0RWxlbWVudEJhc2VUeXBlKSwKKwkJCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bSh0 YXJnZXRFbGVtZW50QmFzZVR5cGUpKTsKKworCQlpZiAoSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSkp CisJCXsKKwkJCUZvcm1fcGdfY2FzdCBjYXN0Rm9ybSA9IChGb3JtX3BnX2Nhc3QpIEdFVFNUUlVD VCh0dXBsZSk7CisKKwkJCWlmIChjYXN0Rm9ybS0+b2lkID4gRmlyc3RVbnBpbm5lZE9iamVjdElk KQorCQkJeworCQkJCWVycm9yc2FmZV9jb2VyY2lvbiA9IGZhbHNlOworCQkJCXVzZXJkZWZpbmVk ID0gdHJ1ZTsKKwkJCX0KKworCQkJUmVsZWFzZVN5c0NhY2hlKHR1cGxlKTsKKwkJfQorCX0KKwor CWlmICghZXJyb3JzYWZlX2NvZXJjaW9uKQogCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2Rl KEVSUkNPREVfQ0FOTk9UX0NPRVJDRSksCi0JCQkJIGVycm1zZygiY2Fubm90IGNhc3QgdHlwZSAl cyB0byAlcyIsCi0JCQkJCQlmb3JtYXRfdHlwZV9iZShpbnB1dFR5cGUpLAotCQkJCQkJZm9ybWF0 X3R5cGVfYmUodGFyZ2V0VHlwZSkpLAotCQkJCSBwYXJzZXJfY29lcmNpb25fZXJycG9zaXRpb24o cHN0YXRlLCBsb2NhdGlvbiwgZXhwcikpKTsKLQotCXJldHVybiByZXN1bHQ7CisJCQkJZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJZXJybXNnKCJjYW5ub3QgY2Fz dCB0eXBlICVzIHRvICVzIHdoZW4gJXMgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gJXMiLAor CQkJCQkgICBmb3JtYXRfdHlwZV9iZShpbnB1dFR5cGUpLAorCQkJCQkgICBmb3JtYXRfdHlwZV9i ZSh0YXJnZXRUeXBlKSwKKwkJCQkJICAgIkRFRkFVTFQiLAorCQkJCQkgICAiQ0FTVCAuLi4gT04g Q09OVkVSU0lPTiBFUlJPUiIpLAorCQkJCXVzZXJkZWZpbmVkCisJCQkJPyBlcnJoaW50KCJTYWZl IHR5cGUgY2FzdCBmb3IgdXNlci1kZWZpbmVkIHR5cGVzIGFyZSBub3QgeWV0IHN1cHBvcnRlZC4i KQorCQkJCTogZXJyaGludCgiRXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZpbml0aW9u IGlzIG5vdCBlcnJvciBzYWZlLiIpLAorCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4 cHJMb2NhdGlvbihzb3VyY2UpKSk7CiB9CiAKIC8qCkBAIC0zMjAzLDYgKzM1MDIsOCBAQCBQYXJz ZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5kIGV4cHJLaW5kKQogCQljYXNlIEVYUFJfS0lORF9D SEVDS19DT05TVFJBSU5UOgogCQljYXNlIEVYUFJfS0lORF9ET01BSU5fQ0hFQ0s6CiAJCQlyZXR1 cm4gIkNIRUNLIjsKKwkJY2FzZSBFWFBSX0tJTkRfQ0FTVF9ERUZBVUxUOgorCQkJcmV0dXJuICJD QVNUIERFRkFVTFQiOwogCQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoKIAkJY2FzZSBF WFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKIAkJCXJldHVybiAiREVGQVVMVCI7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jIGIvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX2Z1bmMuYwppbmRleCAyNGY2NzQ1OTIzYi4uNTkwYThhNzg1YzkgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX2Z1bmMuYwpAQCAtMjc0Myw2ICsyNzQzLDkgQEAgY2hlY2tfc3JmX2NhbGxfcGxhY2Vt ZW50KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbGFzdF9zcmYsIGludCBsb2NhdGlvbikKIAkJ Y2FzZSBFWFBSX0tJTkRfRE9NQUlOX0NIRUNLOgogCQkJZXJyID0gXygic2V0LXJldHVybmluZyBm dW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIGNoZWNrIGNvbnN0cmFpbnRzIik7CiAJCQlicmVh azsKKwkJY2FzZSBFWFBSX0tJTkRfQ0FTVF9ERUZBVUxUOgorCQkJZXJyID0gXygic2V0LXJldHVy bmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIENBU1QgREVGQVVMVCBleHByZXNzaW9u cyIpOworCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNl IEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgogCQkJZXJyID0gXygic2V0LXJldHVybmluZyBm dW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIERFRkFVTFQgZXhwcmVzc2lvbnMiKTsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90eXBlLmMgYi9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfdHlwZS5jCmluZGV4IGJiN2VjY2RlOWZkLi4yODNkZmMyZWU5OSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3R5cGUuYworKysgYi9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfdHlwZS5jCkBAIC02NjAsNiArNjYwLDI0IEBAIHN0cmluZ1R5cGVEYXR1bShUeXBl IHRwLCBjaGFyICpzdHJpbmcsIGludDMyIGF0dHR5cG1vZCkKIAlyZXR1cm4gT2lkSW5wdXRGdW5j dGlvbkNhbGwodHlwaW5wdXQsIHN0cmluZywgdHlwaW9wYXJhbSwgYXR0dHlwbW9kKTsKIH0KIAor LyoKKyAqIEVycm9yLXNhZmUgdmVyc2lvbiBvZiBzdHJpbmdUeXBlRGF0dW0uCisgKgorICogUmV0 dXJucyB0cnVlIGlmICJzdHJpbmciIGlzIGEgdmFsaWQgcmVwcmVzZW50YXRpb24gb2YgdHlwZSAi dHAiLgorICogT24gc3VjY2VzcywgdGhlIGludGVybmFsIERhdHVtIHJlcHJlc2VudGF0aW9uIGlz IHdyaXR0ZW4gdG8gInJlc3VsdCIuCisgKi8KK2Jvb2wKK3N0cmluZ1R5cGVEYXR1bVNhZmUoVHlw ZSB0cCwgY2hhciAqc3RyaW5nLCBpbnQzMiBhdHR0eXBtb2QsCisJCQkJCU5vZGUgKmVzY29udGV4 dCwgRGF0dW0gKnJlc3VsdCkKK3sKKwlGb3JtX3BnX3R5cGUgdHlwZm9ybSA9IChGb3JtX3BnX3R5 cGUpIEdFVFNUUlVDVCh0cCk7CisJT2lkCQkJdHlwaW5wdXQgPSB0eXBmb3JtLT50eXBpbnB1dDsK KwlPaWQJCQl0eXBpb3BhcmFtID0gZ2V0VHlwZUlPUGFyYW0odHApOworCisJcmV0dXJuIE9pZElu cHV0RnVuY3Rpb25DYWxsU2FmZSh0eXBpbnB1dCwgc3RyaW5nLCB0eXBpb3BhcmFtLCBhdHR0eXBt b2QsCisJCQkJCQkJCQllc2NvbnRleHQsIHJlc3VsdCk7Cit9CisKIC8qCiAgKiBHaXZlbiBhIHR5 cGVpZCwgcmV0dXJuIHRoZSB0eXBlJ3MgdHlwcmVsaWQgKGFzc29jaWF0ZWQgcmVsYXRpb24pLCBp ZiBhbnkuCiAgKiBSZXR1cm5zIEludmFsaWRPaWQgaWYgdHlwZSBpcyBub3QgYSBjb21wb3NpdGUg dHlwZS4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCmluZGV4IGNjMjQ0YzQ5ZTllLi40YTUw ODJiMzU2NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwor KysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCkBAIC00OTUwLDcgKzQ5NTAs NyBAQCB0cmFuc2Zvcm1QYXJ0aXRpb25Cb3VuZFZhbHVlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9k ZSAqdmFsLAogCQlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgdmFsdWUpOwogCQl2YWx1 ZSA9IChOb2RlICopIGV4cHJlc3Npb25fcGxhbm5lcigoRXhwciAqKSB2YWx1ZSk7CiAJCXZhbHVl ID0gKE5vZGUgKikgZXZhbHVhdGVfZXhwcigoRXhwciAqKSB2YWx1ZSwgY29sVHlwZSwgY29sVHlw bW9kLAotCQkJCQkJCQkJICAgcGFydENvbGxhdGlvbik7CisJCQkJCQkJCQkgICBwYXJ0Q29sbGF0 aW9uLCBOVUxMKTsKIAkJaWYgKCFJc0EodmFsdWUsIENvbnN0KSkKIAkJCWVsb2coRVJST1IsICJj b3VsZCBub3QgZXZhbHVhdGUgcGFydGl0aW9uIGJvdW5kIGV4cHJlc3Npb24iKTsKIAl9CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2FycmF5ZnVuY3MuYwppbmRleCA3MzRlNWZlYTQ1ZS4uZGJmZTVmNGE3OWUgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2FycmF5ZnVuY3MuYwpAQCAtMzI5NCw2ICszMjk0LDE1IEBAIGFycmF5 X21hcChEYXR1bSBhcnJheWQsCiAJCS8qIEFwcGx5IHRoZSBnaXZlbiBleHByZXNzaW9uIHRvIHNv dXJjZSBlbGVtZW50ICovCiAJCXZhbHVlc1tpXSA9IEV4ZWNFdmFsRXhwcihleHByc3RhdGUsIGVj b250ZXh0LCAmbnVsbHNbaV0pOwogCisJCS8qIEV4aXQgZWFybHkgaWYgZXZhbHVhdGlvbiBmYWls ZWQgKi8KKwkJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXhwcnN0YXRlLT5lc2NvbnRleHQpKQor CQl7CisJCQlwZnJlZSh2YWx1ZXMpOworCQkJcGZyZWUobnVsbHMpOworCisJCQlyZXR1cm4gKERh dHVtKSAwOworCQl9CisKIAkJaWYgKG51bGxzW2ldKQogCQkJaGFzbnVsbHMgPSB0cnVlOwogCQll bHNlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKaW5kZXggNjI5OGEzN2Y4OGUuLjc4MjkyYTZj OTZhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCkBAIC0xMDU4NCw2ICsxMDU4NCwzMSBA QCBnZXRfcnVsZV9leHByKE5vZGUgKm5vZGUsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCwKIAkJ CX0KIAkJCWJyZWFrOwogCisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJeworCQkJCVNh ZmVUeXBlQ2FzdEV4cHIgKnN0Y2V4cHIgPSBjYXN0Tm9kZShTYWZlVHlwZUNhc3RFeHByLCBub2Rl KTsKKworCQkJCS8qCisJCQkJICogV2UgY2Fubm90IGp1c3QgZGVwYXJzaW5nIGNhc3RleHByIGRp cmVjdGx5IGhlcmUsIHNpbmNlCisJCQkJICogdHJhbnNmb3JtVHlwZUNhc3QgbWF5IGhhdmUgYWxy ZWFkeSBjb25zdGFudC1mb2xkaW5nIGl0IGludG8KKwkJCQkgKiBhIE5VTEwuIEluc3RlYWQsIHdl IHVzZSBzb3VyY2UgYW5kIGRlZmV4cHIgdG8gcmVjb25zdHJ1Y3QKKwkJCQkgKiB0aGUgQ0FTVCBE RUZBVUxUIGNsYXVzZS4KKwkJCQkgKi8KKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1Ziwg IkNBU1QoIik7CisJCQkJZ2V0X3J1bGVfZXhwcigoTm9kZSAqKSBzdGNleHByLT5zb3VyY2UsIGNv bnRleHQsIHNob3dpbXBsaWNpdCk7CisKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiBBUyAl cyAiLAorCQkJCQkJCQkgZm9ybWF0X3R5cGVfd2l0aF90eXBlbW9kKHN0Y2V4cHItPnJlc3VsdHR5 cGUsCisJCQkJCQkJCQkJCQkJCSAgc3RjZXhwci0+cmVzdWx0dHlwbW9kKSk7CisKKwkJCQlhcHBl bmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIkRFRkFVTFQgIik7CisKKwkJCQlnZXRfcnVsZV9leHBy KChOb2RlICopIHN0Y2V4cHItPmRlZmV4cHIsIGNvbnRleHQsIHNob3dpbXBsaWNpdCk7CisKKwkJ CQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIiBPTiBDT05WRVJTSU9OIEVSUk9SKSIpOwor CQkJfQorCQkJYnJlYWs7CisKIAkJY2FzZSBUX0pzb25FeHByOgogCQkJewogCQkJCUpzb25FeHBy ICAgKmpleHByID0gKEpzb25FeHByICopIG5vZGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9mbWdyL2ZtZ3IuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCmluZGV4IDRl MjZkZjdjNjNhLi5jNjcwN2U4YzM1YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvZm1n ci9mbWdyLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMKQEAgLTE3NTksNiAr MTc1OSwxOSBAQCBPaWRJbnB1dEZ1bmN0aW9uQ2FsbChPaWQgZnVuY3Rpb25JZCwgY2hhciAqc3Ry LCBPaWQgdHlwaW9wYXJhbSwgaW50MzIgdHlwbW9kKQogCXJldHVybiBJbnB1dEZ1bmN0aW9uQ2Fs bCgmZmxpbmZvLCBzdHIsIHR5cGlvcGFyYW0sIHR5cG1vZCk7CiB9CiAKKy8qIGVycm9yLXNhZmUg dmVyc2lvbiBvZiBPaWRJbnB1dEZ1bmN0aW9uQ2FsbCAqLworYm9vbAorT2lkSW5wdXRGdW5jdGlv bkNhbGxTYWZlKE9pZCBmdW5jdGlvbklkLCBjaGFyICpzdHIsIE9pZCB0eXBpb3BhcmFtLAorCQkJ CQkJIGludDMyIHR5cG1vZCwgTm9kZSAqZXNjb250ZXh0LAorCQkJCQkJIERhdHVtICpyZXN1bHQp Cit7CisJRm1nckluZm8JZmxpbmZvOworCisJZm1ncl9pbmZvKGZ1bmN0aW9uSWQsICZmbGluZm8p OworCXJldHVybiBJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUoJmZsaW5mbywgc3RyLCB0eXBpb3BhcmFt LCB0eXBtb2QsCisJCQkJCQkJCSBlc2NvbnRleHQsIHJlc3VsdCk7Cit9CisKIGNoYXIgKgogT2lk T3V0cHV0RnVuY3Rpb25DYWxsKE9pZCBmdW5jdGlvbklkLCBEYXR1bSB2YWwpCiB7CmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0 b3IvZXhlY0V4cHIuaAppbmRleCBhYTliMzYxZmEzMS4uZmE5ZGI4ZmQ2ODcgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0 b3IvZXhlY0V4cHIuaApAQCAtMjY1LDYgKzI2NSw3IEBAIHR5cGVkZWYgZW51bSBFeHByRXZhbE9w CiAJRUVPUF9YTUxFWFBSLAogCUVFT1BfSlNPTl9DT05TVFJVQ1RPUiwKIAlFRU9QX0lTX0pTT04s CisJRUVPUF9TQUZFVFlQRV9DQVNULAogCUVFT1BfSlNPTkVYUFJfUEFUSCwKIAlFRU9QX0pTT05F WFBSX0NPRVJDSU9OLAogCUVFT1BfSlNPTkVYUFJfQ09FUkNJT05fRklOSVNILApAQCAtNzUwLDYg Kzc1MSwxMiBAQCB0eXBlZGVmIHN0cnVjdCBFeHByRXZhbFN0ZXAKIAkJCUpzb25Jc1ByZWRpY2F0 ZSAqcHJlZDsJLyogb3JpZ2luYWwgZXhwcmVzc2lvbiBub2RlICovCiAJCX0JCQlpc19qc29uOwog CisJCS8qIGZvciBFRU9QX1NBRkVUWVBFX0NBU1QgKi8KKwkJc3RydWN0CisJCXsKKwkJCXN0cnVj dCBTYWZlVHlwZUNhc3RTdGF0ZSAqc3Rjc3RhdGU7CisJCX0JCQlzdGNleHByOworCiAJCS8qIGZv ciBFRU9QX0pTT05FWFBSX1BBVEggKi8KIAkJc3RydWN0CiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2ZtZ3IuaCBiL3NyYy9pbmNsdWRlL2ZtZ3IuaAppbmRleCAxMGQwMmJkYjc5Zi4uOGUz ZTUxZGMyMjggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2ZtZ3IuaAorKysgYi9zcmMvaW5jbHVk ZS9mbWdyLmgKQEAgLTc1Miw2ICs3NTIsOSBAQCBleHRlcm4gYm9vbCBEaXJlY3RJbnB1dEZ1bmN0 aW9uQ2FsbFNhZmUoUEdGdW5jdGlvbiBmdW5jLCBjaGFyICpzdHIsCiAJCQkJCQkJCQkJRGF0dW0g KnJlc3VsdCk7CiBleHRlcm4gRGF0dW0gT2lkSW5wdXRGdW5jdGlvbkNhbGwoT2lkIGZ1bmN0aW9u SWQsIGNoYXIgKnN0ciwKIAkJCQkJCQkJICBPaWQgdHlwaW9wYXJhbSwgaW50MzIgdHlwbW9kKTsK K2V4dGVybiBib29sIE9pZElucHV0RnVuY3Rpb25DYWxsU2FmZShPaWQgZnVuY3Rpb25JZCwgY2hh ciAqc3RyLCBPaWQgdHlwaW9wYXJhbSwKKwkJCQkJCQkJCSBpbnQzMiB0eXBtb2QsIE5vZGUgKmVz Y29udGV4dCwKKwkJCQkJCQkJCSBEYXR1bSAqcmVzdWx0KTsKIGV4dGVybiBjaGFyICpPdXRwdXRG dW5jdGlvbkNhbGwoRm1nckluZm8gKmZsaW5mbywgRGF0dW0gdmFsKTsKIGV4dGVybiBjaGFyICpP aWRPdXRwdXRGdW5jdGlvbkNhbGwoT2lkIGZ1bmN0aW9uSWQsIERhdHVtIHZhbCk7CiBleHRlcm4g RGF0dW0gUmVjZWl2ZUZ1bmN0aW9uQ2FsbChGbWdySW5mbyAqZmxpbmZvLCBTdHJpbmdJbmZvIGJ1 ZiwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oIGIvc3JjL2luY2x1 ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5kZXggNjNjMDY3ZDVhYWUuLjA4ZTc1ZTcwOTY4IDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9u b2Rlcy9leGVjbm9kZXMuaApAQCAtMTA2Miw2ICsxMDYyLDI3IEBAIHR5cGVkZWYgc3RydWN0IERv bWFpbkNvbnN0cmFpbnRTdGF0ZQogCUV4cHJTdGF0ZSAgKmNoZWNrX2V4cHJzdGF0ZTsJLyogY2hl Y2tfZXhwcidzIGV2YWwgc3RhdGUsIG9yIE5VTEwgKi8KIH0gRG9tYWluQ29uc3RyYWludFN0YXRl OwogCit0eXBlZGVmIHN0cnVjdCBTYWZlVHlwZUNhc3RTdGF0ZQoreworCVNhZmVUeXBlQ2FzdEV4 cHIgKnN0Y2V4cHI7CisKKwkvKgorCSAqIEFkZHJlc3MgdG8ganVtcCB0byB3aGVuIHNraXBwaW5n IGFsbCB0aGUgc3RlcHMgdG8gZXZhdWxhdGUgdGhlIGRlZmF1bHQKKwkgKiBleHByZXNzaW9uLgor CSAqLworCWludAkJCWp1bXBfZW5kOworCisJLyoKKwkgKiBGb3IgZXJyb3Itc2FmZSBldmFsdWF0 aW9uIG9mIGNvZXJjaW9ucy4gQSBwb2ludGVyIHRvIHRoaXMgaXMgcGFzc2VkIHRvCisJICogRXhl Y0luaXRFeHByUmVjKCkgd2hlbiBpbml0aWFsaXppbmcgdGhlIGNvZXJjaW9uIGV4cHJlc3Npb25z LCBzZWUKKwkgKiBFeGVjSW5pdFNhZmVUeXBlQ2FzdEV4cHIuCisJICoKKwkgKiBSZXNldCBmb3Ig ZWFjaCBldmFsdWF0aW9uIG9mIEVFT1BfU0FGRVRZUEVfQ0FTVC4KKwkgKi8KKwlFcnJvclNhdmVD b250ZXh0IGVzY29udGV4dDsKKworfSBTYWZlVHlwZUNhc3RTdGF0ZTsKKwogLyoKICAqIFN0YXRl IGZvciBKc29uRXhwciBldmFsdWF0aW9uLCB0b28gYmlnIHRvIGlubGluZS4KICAqCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmgKaW5kZXggZjNkMzJlZjAxODguLjhiMGVkM2FlZmE1IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oCkBAIC0zOTcsNiArMzk3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgVHlwZUNhc3QKIAlO b2RlVGFnCQl0eXBlOwogCU5vZGUJICAgKmFyZzsJCQkvKiB0aGUgZXhwcmVzc2lvbiBiZWluZyBj YXN0ZWQgKi8KIAlUeXBlTmFtZSAgICp0eXBlTmFtZTsJCS8qIHRoZSB0YXJnZXQgdHlwZSAqLwor CU5vZGUJICAgKmRlZmV4cHI7CQkvKiBERUZBVUxUIGV4cHJlc3Npb24gKi8KIAlQYXJzZUxvYwls b2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiB9IFR5cGVD YXN0OwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9p bmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCmluZGV4IDM4NGRmNTBjODBhLi5mYzk2M2E2MDcyYiAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcHJpbW5vZGVzLmgKQEAgLTc3MCw2ICs3NzAsMzEgQEAgdHlwZWRlZiBlbnVtIENv ZXJjaW9uRm9ybQogCUNPRVJDRV9TUUxfU1lOVEFYLAkJCS8qIGRpc3BsYXkgd2l0aCBTUUwtbWFu ZGF0ZWQgc3BlY2lhbCBzeW50YXggKi8KIH0gQ29lcmNpb25Gb3JtOwogCisvKgorICogU2FmZVR5 cGVDYXN0RXhwciAtCisgKgkJVHJhbnNmb3JtZWQgcmVwcmVzZW50YXRpb24gb2YKKyAqIAkJQ0FT VChleHByIEFTIHR5cGVuYW1lIERFRkFVTFQgZXhwciBPTiBDT05WRVJTSU9OIEVSUk9SKQorICog CQlDQVNUKGV4cHIgQVMgdHlwZW5hbWUgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKQorICovCit0 eXBlZGVmIHN0cnVjdCBTYWZlVHlwZUNhc3RFeHByCit7CisJRXhwcgkJeHByOworCS8qIHRyYW5z Zm9ybWVkIHNvdXJjZSBleHByZXNzaW9uIGZyb20gcGFyc2VyICovCisJRXhwcgkgICAqc291cmNl OworCS8qIHRyYW5zZm9ybWVkIGNhc3QgZXhwcmVzc2lvbiwgTlVMTCBtZWFucyBjYW5ub3QgY29l cmNlIHRvIHRhcmdldCB0eXBlICovCisJRXhwcgkgICAqY2FzdGV4cHIgcGdfbm9kZV9hdHRyKHF1 ZXJ5X2p1bWJsZV9pZ25vcmUpOworCS8qIEZhbGwtYmFjayB0byB0aGUgZGVmYXVsdCBleHByZXNz aW9uIGlmIGNhc3QgZXZhbHVhdGlvbiBmYWlscyAqLworCUV4cHIJICAgKmRlZmV4cHI7CisJLyog dGFyZ2V0IHR5cGUgT2lkICovCisJT2lkCQkJcmVzdWx0dHlwZTsKKwkvKiB0YXJnZXQgdHlwZSBt b2RpZmllciAqLworCWludDMyCQlyZXN1bHR0eXBtb2Q7CisJLyogT0lEIG9mIGNvbGxhdGlvbiwg b3IgSW52YWxpZE9pZCBpZiBub25lICovCisJT2lkCQkJcmVzdWx0Y29sbGlkOworCS8qIHRva2Vu IGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCisJUGFyc2VMb2MJbG9jYXRpb247Cit9IFNh ZmVUeXBlQ2FzdEV4cHI7CisKIC8qCiAgKiBGdW5jRXhwciAtIGV4cHJlc3Npb24gbm9kZSBmb3Ig YSBmdW5jdGlvbiBjYWxsCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL29w dGltaXplci5oIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL29wdGltaXplci5oCmluZGV4IGU4YjQw OWFmYjdmLi5iNjg2YmUwNDliOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL29w dGltaXplci5oCisrKyBiL3NyYy9pbmNsdWRlL29wdGltaXplci9vcHRpbWl6ZXIuaApAQCAtMTUx LDcgKzE1MSw3IEBAIGV4dGVybiB2b2lkIGNvbnZlcnRfc2FvcF90b19oYXNoZWRfc2FvcChOb2Rl ICpub2RlKTsKIGV4dGVybiBOb2RlICplc3RpbWF0ZV9leHByZXNzaW9uX3ZhbHVlKFBsYW5uZXJJ bmZvICpyb290LCBOb2RlICpub2RlKTsKIAogZXh0ZXJuIEV4cHIgKmV2YWx1YXRlX2V4cHIoRXhw ciAqZXhwciwgT2lkIHJlc3VsdF90eXBlLCBpbnQzMiByZXN1bHRfdHlwbW9kLAotCQkJCQkJICAg T2lkIHJlc3VsdF9jb2xsYXRpb24pOworCQkJCQkJICAgT2lkIHJlc3VsdF9jb2xsYXRpb24sIE5v ZGUgKmVzY29udGV4dCk7CiAKIGV4dGVybiBib29sIHZhcl9pc19ub25udWxsYWJsZShQbGFubmVy SW5mbyAqcm9vdCwgVmFyICp2YXIsCiAJCQkJCQkJICAgTm90TnVsbFNvdXJjZSBzb3VyY2UpOwpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2NvZXJjZS5oIGIvc3JjL2luY2x1 ZGUvcGFyc2VyL3BhcnNlX2NvZXJjZS5oCmluZGV4IGFhYmFjZDQ5YjY1Li5lZTkzOWVhYzU1NiAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2NvZXJjZS5oCisrKyBiL3NyYy9p bmNsdWRlL3BhcnNlci9wYXJzZV9jb2VyY2UuaApAQCAtNDMsMTEgKzQzLDI0IEBAIGV4dGVybiBO b2RlICpjb2VyY2VfdG9fdGFyZ2V0X3R5cGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkg ICBDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQsCiAJCQkJCQkJCSAgIENvZXJjaW9uRm9ybSBjZm9y bWF0LAogCQkJCQkJCQkgICBpbnQgbG9jYXRpb24pOworZXh0ZXJuIE5vZGUgKmNvZXJjZV90b190 YXJnZXRfdHlwZV9leHRlbmRlZChQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkJCQkJCU5vZGUg KmV4cHIsCisJCQkJCQkJCQkJCU9pZCBleHBydHlwZSwKKwkJCQkJCQkJCQkJT2lkIHRhcmdldHR5 cGUsCisJCQkJCQkJCQkJCWludDMyIHRhcmdldHR5cG1vZCwKKwkJCQkJCQkJCQkJQ29lcmNpb25D b250ZXh0IGNjb250ZXh0LAorCQkJCQkJCQkJCQlDb2VyY2lvbkZvcm0gY2Zvcm1hdCwKKwkJCQkJ CQkJCQkJaW50IGxvY2F0aW9uLAorCQkJCQkJCQkJCQlOb2RlICplc2NvbnRleHQpOwogZXh0ZXJu IGJvb2wgY2FuX2NvZXJjZV90eXBlKGludCBuYXJncywgY29uc3QgT2lkICppbnB1dF90eXBlaWRz LCBjb25zdCBPaWQgKnRhcmdldF90eXBlaWRzLAogCQkJCQkJCUNvZXJjaW9uQ29udGV4dCBjY29u dGV4dCk7CiBleHRlcm4gTm9kZSAqY29lcmNlX3R5cGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2Rl ICpub2RlLAogCQkJCQkJIE9pZCBpbnB1dFR5cGVJZCwgT2lkIHRhcmdldFR5cGVJZCwgaW50MzIg dGFyZ2V0VHlwZU1vZCwKIAkJCQkJCSBDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQsIENvZXJjaW9u Rm9ybSBjZm9ybWF0LCBpbnQgbG9jYXRpb24pOworZXh0ZXJuIE5vZGUgKmNvZXJjZV90eXBlX2V4 dGVuZGVkKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwKKwkJCQkJCQkJICBPaWQgaW5w dXRUeXBlSWQsIE9pZCB0YXJnZXRUeXBlSWQsIGludDMyIHRhcmdldFR5cGVNb2QsCisJCQkJCQkJ CSAgQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LCBDb2VyY2lvbkZvcm0gY2Zvcm1hdCwgaW50IGxv Y2F0aW9uLAorCQkJCQkJCQkgIE5vZGUgKmVzY29udGV4dCk7CiBleHRlcm4gTm9kZSAqY29lcmNl X3RvX2RvbWFpbihOb2RlICphcmcsIE9pZCBiYXNlVHlwZUlkLCBpbnQzMiBiYXNlVHlwZU1vZCwK IAkJCQkJCQkgIE9pZCB0eXBlSWQsCiAJCQkJCQkJICBDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQs IENvZXJjaW9uRm9ybSBjZm9ybWF0LCBpbnQgbG9jYXRpb24sCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUu aAppbmRleCBmMjNlMjFmMzE4Yi4uMmRkMGMwOTVjZWYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV9ub2RlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUu aApAQCAtNjcsNiArNjcsOCBAQCB0eXBlZGVmIGVudW0gUGFyc2VFeHByS2luZAogCUVYUFJfS0lO RF9WQUxVRVNfU0lOR0xFLAkvKiBzaW5nbGUtcm93IFZBTFVFUyAoaW4gSU5TRVJUIG9ubHkpICov CiAJRVhQUl9LSU5EX0NIRUNLX0NPTlNUUkFJTlQsIC8qIENIRUNLIGNvbnN0cmFpbnQgZm9yIGEg dGFibGUgKi8KIAlFWFBSX0tJTkRfRE9NQUlOX0NIRUNLLAkJLyogQ0hFQ0sgY29uc3RyYWludCBm b3IgYSBkb21haW4gKi8KKwlFWFBSX0tJTkRfQ0FTVF9ERUZBVUxULAkJLyogZGVmYXVsdCBleHBy ZXNzaW9uIGluIENBU1QgREVGQVVMVCBPTgorCQkJCQkJCQkgKiBDT05WRVJTSU9OIEVSUk9SICov CiAJRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxULAkvKiBkZWZhdWx0IHZhbHVlIGZvciBhIHRhYmxl IGNvbHVtbiAqLwogCUVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxULCAvKiBkZWZhdWx0IHBhcmFt ZXRlciB2YWx1ZSBmb3IgZnVuY3Rpb24gKi8KIAlFWFBSX0tJTkRfSU5ERVhfRVhQUkVTU0lPTiwg LyogaW5kZXggZXhwcmVzc2lvbiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3Bh cnNlX3R5cGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV90eXBlLmgKaW5kZXggYTMzNTgw N2IwYjAuLmUzMDNhMTA3M2MxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vf dHlwZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV90eXBlLmgKQEAgLTQ3LDYgKzQ3 LDggQEAgZXh0ZXJuIGNoYXIgKnR5cGVUeXBlTmFtZShUeXBlIHQpOwogZXh0ZXJuIE9pZAl0eXBl VHlwZVJlbGlkKFR5cGUgdHlwKTsKIGV4dGVybiBPaWQJdHlwZVR5cGVDb2xsYXRpb24oVHlwZSB0 eXApOwogZXh0ZXJuIERhdHVtIHN0cmluZ1R5cGVEYXR1bShUeXBlIHRwLCBjaGFyICpzdHJpbmcs IGludDMyIGF0dHR5cG1vZCk7CitleHRlcm4gYm9vbCBzdHJpbmdUeXBlRGF0dW1TYWZlKFR5cGUg dHAsIGNoYXIgKnN0cmluZywgaW50MzIgYXR0dHlwbW9kLAorCQkJCQkJCQlOb2RlICplc2NvbnRl eHQsIERhdHVtICpyZXN1bHQpOwogCiBleHRlcm4gT2lkCXR5cGVpZFR5cGVSZWxpZChPaWQgdHlw ZV9pZCk7CiBleHRlcm4gT2lkCXR5cGVPckRvbWFpblR5cGVSZWxpZChPaWQgdHlwZV9pZCk7CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Nhc3Qub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9jYXN0Lm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uNjNlMGQxYzI4NDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2Nhc3Qub3V0CkBAIC0wLDAgKzEsODA5IEBACitTRVQgZXh0cmFfZmxvYXRfZGln aXRzID0gMDsKKy0tIENBU1QgREVGQVVMVCBPTiBDT05WRVJTSU9OIEVSUk9SCitTRUxFQ1QgQ0FT VChCJzAxJyBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBkYXRl IAorLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKEJJVCcwMScgQVMgZGF0ZSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgZGF0ZSAKKy0tLS0tLQorIAorKDEgcm93 KQorCitTRUxFQ1QgQ0FTVChUUlVFIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOworIGRhdGUgCistLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1QoMS4xIEFT IGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGRhdGUgCistLS0tLS0K KyAKKygxIHJvdykKKworU0VMRUNUIENBU1QoMSBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKTsKKyBkYXRlIAorLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNU KDExMTEgQVMgImNoYXIiIERFRkFVTFQgJ0EnIE9OIENPTlZFUlNJT04gRVJST1IpOworIGNoYXIg CistLS0tLS0KKyBBCisoMSByb3cpCisKKy0tIHNvdXJjZSBleHByZXNzaW9uIGlzIGEgdW5rbm93 biBjb25zdAorVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdlciBFUlJPUiBPTiBDT05WRVJT SU9OIEVSUk9SKSk7IC0tIGVycm9yCitFUlJPUjogIGludmFsaWQgaW5wdXQgc3ludGF4IGZvciB0 eXBlIGludGVnZXI6ICJlcnJvciIKK0xJTkUgMTogVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50 ZWdlciBFUlJPUiBPTiBDT05WRVJTSU9OIEVSUk9SKSk7CisgICAgICAgICAgICAgICAgICAgICBe CitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnRlZ2VyIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikpOworIGNvbHVtbjEgCistLS0tLS0tLS0KKyAgICAgICAgCisoMSByb3cpCisKK1ZBTFVFUyAo Q0FTVCgnZXJyb3InIEFTIGludGVnZXIgREVGQVVMVCA0MiBPTiBDT05WRVJTSU9OIEVSUk9SKSk7 CisgY29sdW1uMSAKKy0tLS0tLS0tLQorICAgICAgNDIKKygxIHJvdykKKworU0VMRUNUIENBU1Qo J2EnIGFzIGludCBERUZBVUxUIDE4IE9OIENPTlZFUlNJT04gRVJST1IpOworIGludDQgCistLS0t LS0KKyAgIDE4CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0o MSkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCitFUlJPUjogIGFnZ3JlZ2F0ZSBmdW5j dGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIENBU1QgREVGQVVMVCBleHByZXNzaW9ucworTElORSAx OiBTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgc3VtKDEpIE9OIENPTlZFUlNJT04gRVJS T1IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorU0VMRUNUIENB U1QoJ2EnIGFzIGludCBERUZBVUxUIHN1bSgxKSBvdmVyKCkgT04gQ09OVkVSU0lPTiBFUlJPUik7 IC0tIGVycm9yCitFUlJPUjogIHdpbmRvdyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIENB U1QgREVGQVVMVCBleHByZXNzaW9ucworTElORSAxOiBTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERF RkFVTFQgc3VtKDEpIG92ZXIoKSBPTiBDT05WRVJTSU9OIEUuLi4KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCAo U0VMRUNUIE5VTEwpIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgorRVJST1I6ICBjYW5u b3QgdXNlIHN1YnF1ZXJ5IGluIENBU1QgREVGQVVMVCBleHByZXNzaW9uCitMSU5FIDE6IFNFTEVD VCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCAoU0VMRUNUIE5VTEwpIE9OIENPTlZFUlNJT04gRS4u LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorU0VMRUNUIENBU1Qo J2EnIGFzIGludCBERUZBVUxUICdiJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKK0VS Uk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgaW50ZWdlcjogImIiCitMSU5FIDE6 IFNFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCAnYicgT04gQ09OVkVSU0lPTiBFUlJPUik7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgQ0FTVCgn YSc6OmludCBhcyBpbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJv cgorRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlwZSBpbnRlZ2VyOiAiYSIKK0xJ TkUgMTogU0VMRUNUIENBU1QoJ2EnOjppbnQgYXMgaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SLi4uCisgICAgICAgICAgICAgICAgICAgIF4KKy0tIHRoZSBkZWZhdWx0IGV4cHJl c3Npb27igJlzIGNvbGxhdGlvbiBzaG91bGQgbWF0Y2ggdGFyZ2V0IHR5cGUgY29sbGF0aW9uCitW QUxVRVMgKENBU1QoJ2Vycm9yJyBBUyB0ZXh0IERFRkFVTFQgJzEnIENPTExBVEUgIkMiIE9OIENP TlZFUlNJT04gRVJST1IpKTsKK0VSUk9SOiAgdGhlIGNvbGxhdGlvbiBvZiBDQVNUIERFRkFVTFQg ZXhwcmVzc2lvbiBjb25mbGljdHMgd2l0aCB0YXJnZXQgdHlwZSBjb2xsYXRpb24KK0xJTkUgMTog VkFMVUVTIChDQVNUKCdlcnJvcicgQVMgdGV4dCBERUZBVUxUICcxJyBDT0xMQVRFICJDIiBPTiBD T05WLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitE RVRBSUw6ICAiZGVmYXVsdCIgdmVyc3VzICJDIgorVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50 MnZlY3RvciBERUZBVUxUICcxIDMnICBPTiBDT05WRVJTSU9OIEVSUk9SKSk7CisgY29sdW1uMSAK Ky0tLS0tLS0tLQorIDEgMworKDEgcm93KQorCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnQy dmVjdG9yW10gREVGQVVMVCAnezEgM30nICBPTiBDT05WRVJTSU9OIEVSUk9SKSk7CisgY29sdW1u MSAKKy0tLS0tLS0tLQorIHsiMSAzIn0KKygxIHJvdykKKworLS0gc291cmNlIGV4cHJlc3Npb24g Y29udGFpbiBzdWJxdWVyeQorU0VMRUNUIENBU1QoKFNFTEVDVCBiIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDEpLCAoVkFMVUVTKCdIJykpIHMoYikpCisgICAgICAgICAgICBBUyBpbnQydmVjdG9y W10gREVGQVVMVCAnezEgM30nICBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICBiICAgIAorLS0t LS0tLS0tCisgeyIxIDMifQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgoU0VMRUNUIEFSUkFZKChT RUxFQ1QgYiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyKSBnLCAoVkFMVUVTKCdIJykpIHMoYikp KSkKKyAgICAgICAgICAgIEFTIElOVFtdCisgICAgICAgICAgICBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgCisoMSByb3cpCisKK0NSRUFURSBG VU5DVElPTiByZXRfaW50OCgpIFJFVFVSTlMgQklHSU5UIEFTCiskJAorQkVHSU4gUkVUVVJOIDIx NDc0ODM2NDg7IEVORDsKKyQkCitMQU5HVUFHRSBwbHBnc3FsIElNTVVUQUJMRTsKK1NFTEVDVCBD QVNUKCdhJyBhcyBpbnQgREVGQVVMVCByZXRfaW50OCgpIE9OIENPTlZFUlNJT04gRVJST1IpOyAt LSBlcnJvcgorRVJST1I6ICBpbnRlZ2VyIG91dCBvZiByYW5nZQorU0VMRUNUIENBU1QoJ2EnIGFz IGRhdGUgREVGQVVMVCByZXRfaW50OCgpIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgor RVJST1I6ICBjYW5ub3QgY29lcmNlIENBU1QgREVGQVVMVCBleHByZXNzaW9uIHRvIHR5cGUgZGF0 ZQorTElORSAxOiBTRUxFQ1QgQ0FTVCgnYScgYXMgZGF0ZSBERUZBVUxUIHJldF9pbnQ4KCkgT04g Q09OVkVSU0lPTiBFUlIuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCistLSBERUZBVUxUIGV4cHJlc3Npb24gY2Fubm90IGJlIHNldC1yZXR1cm5pbmcKK0NSRUFU RSBGVU5DVElPTiByZXRfc2V0aW50KCkgUkVUVVJOUyBTRVRPRiBpbnRlZ2VyIEFTCiskJAorQkVH SU4gUkVUVVJOIFFVRVJZIEVYRUNVVEUgJ3NlbGVjdCAxIHVuaW9uIGFsbCBzZWxlY3QgMSc7IEVO RDsKKyQkCitMQU5HVUFHRSBwbHBnc3FsIElNTVVUQUJMRTsKK0NSRUFURSBUQUJMRSB0Y2FzdChh IHRleHRbXSwgYiBpbnQgR0VORVJBVEVEIEJZIERFRkFVTFQgQVMgSURFTlRJVFkpOworSU5TRVJU IElOVE8gdGNhc3QgVkFMVUVTICgnezEyfScpLCAoJ3sxLGEsIGJ9JyksICgne3sxLDJ9LCB7Yyxk fX0nKSwgKCd7MTN9Jyk7CitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgcmV0X3NldGlu dCgpIE9OIENPTlZFUlNJT04gRVJST1IpIEZST00gdGNhc3Q7IC0tIGVycm9yCitFUlJPUjogIHNl dC1yZXR1cm5pbmcgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBDQVNUIERFRkFVTFQgZXhw cmVzc2lvbnMKK0xJTkUgMTogU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHJldF9zZXRp bnQoKSBPTiBDT05WRVJTSU9OIEVSLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCitTRUxFQ1QgQ0FTVCh0IEFTIHRleHRbXSBERUZBVUxUICd7MjEsMjIsICcgfHwg YiB8fCAnfScgT04gQ09OVkVSU0lPTiBFUlJPUikgRlJPTSB0Y2FzdCBhcyB0OworICAgICB0ICAg ICAKKy0tLS0tLS0tLS0tCisgezIxLDIyLDF9CisgezIxLDIyLDJ9CisgezIxLDIyLDN9CisgezIx LDIyLDR9CisoNCByb3dzKQorCitTRUxFQ1QgQ0FTVCh0LmEgQVMgaW50W10gREVGQVVMVCAnezIx LDIyfSc6OmludFtdIHx8IGIgT04gQ09OVkVSU0lPTiBFUlJPUikgRlJPTSB0Y2FzdCBhcyB0Owor ICAgICBhICAgICAKKy0tLS0tLS0tLS0tCisgezEyfQorIHsyMSwyMiwyfQorIHsyMSwyMiwzfQor IHsxM30KKyg0IHJvd3MpCisKKy0tIHRlc3Qgd2l0aCB1c2VyLWRlZmluZWQgdHlwZSwgZG9tYWlu LCBhcnJheSBvdmVyIGRvbWFpbiwgZG9tYWluIG92ZXIgYXJyYXkKK0NSRUFURSBET01BSU4gZF9p bnQ0MiBhcyBpbnQgY2hlY2sgKHZhbHVlID0gNDIpIE5PVCBOVUxMOworQ1JFQVRFIERPTUFJTiBk X2NoYXIzX25vdF9udWxsIGFzIGNoYXIoMykgTk9UIE5VTEw7CitDUkVBVEUgRE9NQUlOIGRfdmFy Y2hhciBhcyB2YXJjaGFyKDMpIE5PVCBOVUxMOworQ1JFQVRFIERPTUFJTiBkX2ludF9hcnIgYXMg aW50W10gY2hlY2sgKHZhbHVlID0gJ3s0MSwgNDN9JykgTk9UIE5VTEw7CitDUkVBVEUgVFlQRSBj b21wX2RvbWFpbl93aXRoX3R5cG1vZCBBUyAoYSBkX2NoYXIzX25vdF9udWxsLCBiIGludCk7CitD UkVBVEUgVFlQRSBjb21wMiBBUyAoYSBkX3ZhcmNoYXIpOworU0VMRUNUIENBU1QoJyhOVUxMKScg QVMgY29tcDIgREVGQVVMVCAnKDEyMzIpJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IK K0VSUk9SOiAgdmFsdWUgdG9vIGxvbmcgZm9yIHR5cGUgY2hhcmFjdGVyIHZhcnlpbmcoMykKK0xJ TkUgMTogU0VMRUNUIENBU1QoJyhOVUxMKScgQVMgY29tcDIgREVGQVVMVCAnKDEyMzIpJyBPTiBD T05WRVJTSU9OLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgorU0VMRUNUIENBU1QoJyhOVUxMKScgQVMgY29tcDIgREVGQVVMVCAnKDEyMyknIE9OIENP TlZFUlNJT04gRVJST1IpOworIGNvbXAyIAorLS0tLS0tLQorICgxMjMpCisoMSByb3cpCisKK1NF TEVDVCBDQVNUKDExIEFTIGRfaW50NDIgREVGQVVMVCA0MSBPTiBDT05WRVJTSU9OIEVSUk9SKTsg LS0gZXJyb3IKK0VSUk9SOiAgdmFsdWUgZm9yIGRvbWFpbiBkX2ludDQyIHZpb2xhdGVzIGNoZWNr IGNvbnN0cmFpbnQgImRfaW50NDJfY2hlY2siCitTRUxFQ1QgQ0FTVCgxMSBBUyBkX2ludDQyIERF RkFVTFQgNDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgZF9pbnQ0MiAKKy0tLS0tLS0tLQorICAg ICAgNDIKKygxIHJvdykKKworU0VMRUNUIENBU1QoTlVMTCBBUyBkX2ludDQyIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKK0VSUk9SOiAgZG9tYWluIGRfaW50NDIg ZG9lcyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMKK1NFTEVDVCBDQVNUKE5VTEwgQVMgZF9pbnQ0MiBE RUZBVUxUIDQyIE9OIENPTlZFUlNJT04gRVJST1IpOworIGRfaW50NDIgCistLS0tLS0tLS0KKyAg ICAgIDQyCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoLDQyKScgQVMgY29tcF9kb21haW5fd2l0 aF90eXBtb2QgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGNvbXBfZG9tYWlu X3dpdGhfdHlwbW9kIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitT RUxFQ1QgQ0FTVCgnKE5VTEwsNDIpJyBBUyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxU ICcoMSwyKScgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgY29tcF9kb21haW5fd2l0aF90eXBtb2Qg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKCIxICAiLDIpCisoMSByb3cpCisKK1NFTEVD VCBDQVNUKCcoTlVMTCw0MiknIEFTIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQgJygx MjM0LDIpJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKK0VSUk9SOiAgdmFsdWUgdG9v IGxvbmcgZm9yIHR5cGUgY2hhcmFjdGVyKDMpCitMSU5FIDE6IC4uLlNUKCcoTlVMTCw0MiknIEFT IGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQgJygxMjM0LDIpJy4uLgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NF TEVDVCBDQVNUKEFSUkFZWzQyLDQxXSBBUyBkX2ludDQyW10gREVGQVVMVCAnezQyLCA0Mn0nIE9O IENPTlZFUlNJT04gRVJST1IpOworICBhcnJheSAgCistLS0tLS0tLS0KKyB7NDIsNDJ9CisoMSBy b3cpCisKK1NFTEVDVCBDQVNUKEFSUkFZWzQyLDQxXSBBUyBkX2ludF9hcnIgREVGQVVMVCAnezQx LCA0M30nIE9OIENPTlZFUlNJT04gRVJST1IpOworICBhcnJheSAgCistLS0tLS0tLS0KKyB7NDEs NDN9CisoMSByb3cpCisKKy0tIHRlc3QgYXJyYXkgY29lcmNlCitTRUxFQ1QgQ0FTVChhcnJheVsn YSc6OnRleHRdIEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0g ZXJyb3IKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgaW50ZWdlcjogImEi CitTRUxFQ1QgQ0FTVChhcnJheVsnYSddIEFTIGludFtdIERFRkFVTFQgQVJSQVlbMV0gT04gQ09O VkVSU0lPTiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgezF9CisoMSByb3cpCisKK1NFTEVD VCBDQVNUKGFycmF5WzExLjEyXSBBUyBkYXRlW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOworIGFycmF5IAorLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChhcnJh eVsxMTExMTExMTExMTExMTExMV0gQVMgaW50W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOworIGFycmF5IAorLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChhcnJh eVtbJ2FiYyddLFs0NTZdXSBBUyBpbnRbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP Uik7CisgYXJyYXkgCistLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCd7MTIzLGFi Yyw0NTZ9JyBBUyBpbnRbXSBERUZBVUxUICd7LTc4OX0nIE9OIENPTlZFUlNJT04gRVJST1IpOwor ICBpbnQ0ICAKKy0tLS0tLS0tCisgey03ODl9CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCd7MjM0 LGRlZiw1Njd9Jzo6dGV4dFtdIEFTIGludGVnZXJbXSBERUZBVUxUICd7LTEwMTF9JyBPTiBDT05W RVJTSU9OIEVSUk9SKTsKKyAgaW50NCAgIAorLS0tLS0tLS0tCisgey0xMDExfQorKDEgcm93KQor CitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnXSwgWyd0aHJlZSddLFsnYSddXSBBUyBpbnRbXSBERUZB VUxUICd7MSwyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgezEs Mn0KKygxIHJvdykKKworU0VMRUNUIENBU1QoQVJSQVlbWycxJywgJzInXSwgWyd0aHJlZScsICdh J11dIEFTIGludFtdIERFRkFVTFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLW9r CisgIGFycmF5ICAKKy0tLS0tLS0tLQorIHsyMSwyMn0KKygxIHJvdykKKworU0VMRUNUIENBU1Qo QVJSQVlbWycxJywgJzInXSwgWyd0aHJlZSc6OmludCwgJ2EnXV0gQVMgaW50W10gREVGQVVMVCAn ezIxLDIyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCitFUlJPUjogIGludmFsaWQg aW5wdXQgc3ludGF4IGZvciB0eXBlIGludGVnZXI6ICJ0aHJlZSIKK0xJTkUgMTogU0VMRUNUIENB U1QoQVJSQVlbWycxJywgJzInXSwgWyd0aHJlZSc6OmludCwgJ2EnXV0gQVMgaW50W10gLi4uCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgQ0FTVChBUlJB WVsxLCAndGhyZWUnOjppbnRdIEFTIGludFtdIERFRkFVTFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJ T04gRVJST1IpOyAtLSBlcnJvcgorRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlw ZSBpbnRlZ2VyOiAidGhyZWUiCitMSU5FIDE6IFNFTEVDVCBDQVNUKEFSUkFZWzEsICd0aHJlZSc6 OmludF0gQVMgaW50W10gREVGQVVMVCAnezIxLDIyfS4uLgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCistLS0tLXNhZmUgY2FzdCB3aXRoIGdlb21ldHJ5IGRhdGEgdHlwZQorU0VMRUNU IENBU1QoJygxLDIpJzo6cG9pbnQgQVMgYm94IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKKyAgICAgYm94ICAgICAKKy0tLS0tLS0tLS0tLS0KKyAoMSwyKSwoMSwyKQorKDEgcm93 KQorCitTRUxFQ1QgQ0FTVCgnWyhOYU4sMSksKE5hTixpbmZpbml0eSldJzo6bHNlZyBBUyBwb2lu dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIHBvaW50ICAgICAgCist LS0tLS0tLS0tLS0tLS0tCisgKE5hTixJbmZpbml0eSkKKygxIHJvdykKKworU0VMRUNUIENBU1Qo J1soMWUrMzAwLEluZmluaXR5KSwoMWUrMzAwLEluZmluaXR5KV0nOjpsc2VnIEFTIHBvaW50IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgICBwb2ludCAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0KKyAoMWUrMzAwLEluZmluaXR5KQorKDEgcm93KQorCitTRUxFQ1Qg Q0FTVCgnWygxLDIpLCgzLDQpXSc6OnBhdGggYXMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7CisgcG9seWdvbiAKKy0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxF Q1QgQ0FTVCgnKE5hTiwxLjAsTmFOLGluZmluaXR5KSc6OmJveCBBUyBwb2ludCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIHBvaW50ICAgICAgCistLS0tLS0tLS0tLS0t LS0tCisgKE5hTixJbmZpbml0eSkKKygxIHJvdykKKworU0VMRUNUIENBU1QoJygyLjAsMi4wLDAu MCwwLjApJzo6Ym94IEFTIGxzZWcgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwor ICAgICBsc2VnICAgICAgCistLS0tLS0tLS0tLS0tLS0KKyBbKDIsMiksKDAsMCldCisoMSByb3cp CisKK1NFTEVDVCBDQVNUKCcoMi4wLDIuMCwwLjAsMC4wKSc6OmJveCBBUyBwb2x5Z29uIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgICAgICBwb2x5Z29uICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKCgwLDApLCgwLDIpLCgyLDIpLCgyLDAp KQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKDIuMCwyLjAsMC4wLDAuMCknOjpib3ggQVMgcGF0 aCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgcGF0aCAKKy0tLS0tLQorIAor KDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKDIuMCxpbmZpbml0eSxOYU4saW5maW5pdHkpJzo6Ym94 IEFTIGNpcmNsZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgICAgIGNp cmNsZSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgPChOYU4sSW5maW5pdHkpLE5h Tj4KKygxIHJvdykKKworU0VMRUNUIENBU1QoJyhOYU4sMC4wKSwoMi4wLDQuMCksKDAuMCxpbmZp bml0eSknOjpwb2x5Z29uIEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKKyAgICAgcG9pbnQgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyAoTmFOLEluZmluaXR5KQor KDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKDIuMCwwLjApLCgyLjAsNC4wKSwoMC4wLDAuMCknOjpw b2x5Z29uIEFTIHBhdGggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICAg ICBwYXRoICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoKDIsMCksKDIsNCksKDAs MCkpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoMi4wLDAuMCksKDIuMCw0LjApLCgwLjAsMC4w KSc6OnBvbHlnb24gQVMgYm94IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAg ICAgYm94ICAgICAKKy0tLS0tLS0tLS0tLS0KKyAoMiw0KSwoMCwwKQorKDEgcm93KQorCitTRUxF Q1QgQ0FTVCgnKE5hTixpbmZpbml0eSksKDIuMCw0LjApLCgwLjAsaW5maW5pdHkpJzo6cG9seWdv biBBUyBjaXJjbGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICAgICBj aXJjbGUgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDwoTmFOLEluZmluaXR5KSxO YU4+CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCc8KDUsMSksMz4nOjpjaXJjbGUgQVMgcG9pbnQg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIHBvaW50IAorLS0tLS0tLQorICg1 LDEpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCc8KDMsNSksMD4nOjpjaXJjbGUgYXMgYm94IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgYm94ICAgICAKKy0tLS0tLS0t LS0tLS0KKyAoMyw1KSwoMyw1KQorKDEgcm93KQorCistLSBjYXN0IGZyb20gdHlwZSBjaXJjbGUg dG8gdHlwZSBwb2x5Z29uIGlzIGltcGxlbWVudGVkIGFzIGFuIFNRTCBmdW5jdGlvbiwgd2hpY2gg Y2Fubm90IGJlIGVycm9yLXNhZmUKK1NFTEVDVCBDQVNUKCc8KDMsNSksMD4nOjpjaXJjbGUgYXMg cG9seWdvbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5v dCBjYXN0IHR5cGUgY2lyY2xlIHRvIHBvbHlnb24gd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMg c3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNU IENBU1QoJzwoMyw1KSwwPic6OmNpcmNsZSBhcyBwb2x5Z29uIERFRkFVTFQgTlVMTCBPTiBDLi4u CisgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBFeHBsaWNpdCBjYXN0IGlzIGRlZmluZWQg YnV0IGRlZmluaXRpb24gaXMgbm90IGVycm9yIHNhZmUuCistLS0gc2FmZSBjYXN0IGZyb20vdG8g bW9uZXkgdHlwZSBpcyBub3Qgc3VwcG9ydGVkLCBhbGwgdGhlIGZvbGxvd2luZyB3b3VsZCByZXN1 bHQgZXJyb3IKK1NFTEVDVCBDQVNUKE5VTEw6OmludDggQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOworRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGJpZ2ludCB0byBt b25leSB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAuLi4gT04g Q09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVChOVUxMOjppbnQ4IEFTIG1vbmV5 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEUuLi4KKyAgICAgICAgICAgICAgICAgICAgXgor SElOVDogIEV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBpcyBub3QgZXJy b3Igc2FmZS4KK1NFTEVDVCBDQVNUKE5VTEw6OmludDQgQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOworRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGludGVnZXIgdG8g bW9uZXkgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9O IENPTlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENBU1QoTlVMTDo6aW50NCBBUyBtb25l eSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFLi4uCisgICAgICAgICAgICAgICAgICAgIF4K K0hJTlQ6ICBFeHBsaWNpdCBjYXN0IGlzIGRlZmluZWQgYnV0IGRlZmluaXRpb24gaXMgbm90IGVy cm9yIHNhZmUuCitTRUxFQ1QgQ0FTVChOVUxMOjpudW1lcmljIEFTIG1vbmV5IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBudW1lcmlj IHRvIG1vbmV5IHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNUIC4u LiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKE5VTEw6Om51bWVyaWMg QVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJTy4uLgorICAgICAgICAgICAgICAgICAg ICBeCitISU5UOiAgRXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZpbml0aW9uIGlzIG5v dCBlcnJvciBzYWZlLgorU0VMRUNUIENBU1QoTlVMTDo6bW9uZXkgQVMgbnVtZXJpYyBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgbW9u ZXkgdG8gbnVtZXJpYyB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FT VCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVChOVUxMOjptb25l eSBBUyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU8uLi4KKyAgICAgICAgICAgICAg ICAgICAgXgorSElOVDogIEV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBp cyBub3QgZXJyb3Igc2FmZS4KK1NFTEVDVCBDQVNUKE5VTEw6Om1vbmV5W10gQVMgbnVtZXJpY1td IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK0VSUk9SOiAgY2Fubm90IGNhc3Qg dHlwZSBtb25leVtdIHRvIG51bWVyaWNbXSB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVj aWZpZWQgaW4gQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FT VChOVUxMOjptb25leVtdIEFTIG51bWVyaWNbXSBERUZBVUxUIE5VTEwgT04gQ09OVkUuLi4KKyAg ICAgICAgICAgICAgICAgICAgXgorSElOVDogIEV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQg ZGVmaW5pdGlvbiBpcyBub3QgZXJyb3Igc2FmZS4KKy0tIHNhZmUgY2FzdCBmcm9tIGJ5dGVhIHR5 cGUgdG8gb3RoZXIgZGF0YSB0eXBlcworU0VMRUNUIENBU1QgKCdceDExMjIzMzQ0NTU2Njc3ODg5 OSc6OmJ5dGVhIEFTIGludDggREVGQVVMVCAxOSBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ4 IAorLS0tLS0tCisgICAxOQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnXHgxMjM0NTY3ODlBJzo6 Ynl0ZWEgQVMgaW50NCBERUZBVUxUIDIwIE9OIENPTlZFUlNJT04gRVJST1IpOworIGludDQgCist LS0tLS0KKyAgIDIwCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdceDEyMzQ1Nic6OmJ5dGVhIEFT IGludDIgREVGQVVMVCAyMSBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQyIAorLS0tLS0tCisg ICAyMQorKDEgcm93KQorCistLSBzYWZlIGNhc3QgZnJvbSBiaXQgdHlwZSB0byBvdGhlciBkYXRh IHR5cGVzCitTRUxFQ1QgQ0FTVCgnMTExMTExMTExMTAwMDAxJzo6Yml0KDEwMCkgQVMgSU5UIERF RkFVTFQgMjIgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50NCAKKy0tLS0tLQorICAgMjIKKygx IHJvdykKKworU0VMRUNUIENBU1QgKCcxMTExMTExMTExMDAwMDEnOjpiaXQoMTAwKSBBUyBJTlQ4 IERFRkFVTFQgMjMgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50OCAKKy0tLS0tLQorICAgMjMK KygxIHJvdykKKworLS0tIHNhZmUgY2FzdCBmcm9tIHRleHQgdHlwZSB0byBvdGhlciBkYXRhIHR5 cGVzCitzZWxlY3QgQ0FTVCgnYS5iLmMuZCc6OnRleHQgYXMgcmVnY2xhc3MgZGVmYXVsdCBOVUxM IG9uIGNvbnZlcnNpb24gZXJyb3IpOworIHJlZ2NsYXNzIAorLS0tLS0tLS0tLQorIAorKDEgcm93 KQorCitDUkVBVEUgVEFCTEUgdGVzdF9zYWZlY2FzdChjb2wwIHRleHQpOworSU5TRVJUIElOVE8g dGVzdF9zYWZlY2FzdChjb2wwKSBWQUxVRVMgKCc8dmFsdWU+b25lPC92YWx1ZScpOworU0VMRUNU IGNvbDAgYXMgdGV4dCwKKyAgICAgICBDQVNUKGNvbDAgQVMgcmVnY2xhc3MgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3JlZ2NsYXNzLAorICAgICAgIENBU1QoY29sMCBB UyByZWdjbGFzcyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgSVMgTlVMTCBhcyBl eHBlY3RfdHJ1ZSwKKyAgICAgICBDQVNUKGNvbDAgQVMgImNoYXIiICBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fY2hhciwKKyAgICAgICBDQVNUKGNvbDAgQVMgbmFtZSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbmFtZSwKKyAgICAgICBDQVNU KGNvbDAgQVMgeG1sIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b194bWwK K0ZST00gdGVzdF9zYWZlY2FzdDsKKyAgICAgICB0ZXh0ICAgICAgICB8IHRvX3JlZ2NsYXNzIHwg ZXhwZWN0X3RydWUgfCB0b19jaGFyIHwgICAgICB0b19uYW1lICAgICAgfCB0b194bWwgCistLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLQorIDx2YWx1ZT5vbmU8L3ZhbHVlIHwgICAgICAgICAg ICAgfCB0ICAgICAgICAgICB8IDwgICAgICAgfCA8dmFsdWU+b25lPC92YWx1ZSB8IAorKDEgcm93 KQorCitTRUxFQ1QgQ0FTVCgnMTkyLjE2OC4xLngnIGFzIGluZXQgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworIGluZXQgCistLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENB U1QoJzE5Mi4xNjguMS4yLzMwJyBhcyBjaWRyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKKyBjaWRyIAorLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcyMjowMDo1 YzowODo1NTowODowMTowMic6Om1hY2FkZHI4IGFzIG1hY2FkZHIgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworIG1hY2FkZHIgCistLS0tLS0tLS0KKyAKKygxIHJvdykKKworLS0t IHNhZmUgY2FzdCBiZXR3ZWVlbiByYW5nZSBkYXRhIHR5cGVzCitTRUxFQ1QgQ0FTVCgnWzEsMl0n OjppbnQ0cmFuZ2UgQVMgaW50NG11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOworIGludDRtdWx0aXJhbmdlIAorLS0tLS0tLS0tLS0tLS0tLQorIHtbMSwzKX0KKygx IHJvdykKKworU0VMRUNUIENBU1QoJ1sxLDJdJzo6aW50OHJhbmdlIEFTIGludDhtdWx0aXJhbmdl IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ4bXVsdGlyYW5nZSAKKy0t LS0tLS0tLS0tLS0tLS0KKyB7WzEsMyl9CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdbMSwyXSc6 Om51bXJhbmdlICBBUyBudW1tdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKKyBudW1tdWx0aXJhbmdlIAorLS0tLS0tLS0tLS0tLS0tCisge1sxLDJdfQorKDEgcm93 KQorCitTRUxFQ1QgQ0FTVCgnWy1pbmZpbml0eSxpbmZpbml0eV0nOjpkYXRlcmFuZ2UgQVMgZGF0 ZW11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICBkYXRl bXVsdGlyYW5nZSAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7Wy1pbmZpbml0eSxp bmZpbml0eV19CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdbLWluZmluaXR5LGluZmluaXR5XSc6 OnRzcmFuZ2UgQVMgdHNtdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKKyAgICAgIHRzbXVsdGlyYW5nZSAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg e1staW5maW5pdHksaW5maW5pdHldfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnWy1pbmZpbml0 eSxpbmZpbml0eV0nOjp0c3R6cmFuZ2UgQVMgdHN0em11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOworICAgICB0c3R6bXVsdGlyYW5nZSAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyB7Wy1pbmZpbml0eSxpbmZpbml0eV19CisoMSByb3cpCisKKy0tIHNh ZmUgY2FzdCBiZXR3ZWVlbiBudW1lcmljIGRhdGEgdHlwZXMKK0NSRUFURSBUQUJMRSB0ZXN0X3Nh ZmVjYXN0MSgKKyAgY29sMSBmbG9hdDQsIGNvbDIgZmxvYXQ4LCBjb2wzIG51bWVyaWMsIGNvbDQg bnVtZXJpY1tdLAorICBjb2w1IGludDIgZGVmYXVsdCAzMjc2NywKKyAgY29sNiBpbnQ0IGRlZmF1 bHQgMzI3NjgsCisgIGNvbDcgaW50OCBkZWZhdWx0IDQyOTQ5NjcyOTYpOworSU5TRVJUIElOVE8g dGVzdF9zYWZlY2FzdDEgVkFMVUVTKCcxMS4xMjM0JywgJzExLjEyMzQnLCAnOTIyMzM3MjAzNjg1 NDc3NTgwOCcsICd7MTEuMTIzNH0nOjpudW1lcmljW10pOworSU5TRVJUIElOVE8gdGVzdF9zYWZl Y2FzdDEgVkFMVUVTKCdpbmYnLCAnaW5mJywgJ2luZicsICd7MTEuMTIzNCwgMTIsIGluZiwgTmFO fSc6Om51bWVyaWNbXSk7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0MSBWQUxVRVMoJy1pbmYn LCAnLWluZicsICctaW5mJywgJ3sxMS4xMjM0LCAxMiwgLWluZiwgTmFOfSc6Om51bWVyaWNbXSk7 CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0MSBWQUxVRVMoJ05hTicsICdOYU4nLCAnTmFOJywg J3sxMS4xMjM0LCAxMiwgLWluZiwgTmFOfSc6Om51bWVyaWNbXSk7CitTRUxFQ1QgY29sNSBhcyBp bnQyLAorICAgICAgIENBU1QoY29sNSBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sNSBBUyBpbnQ0IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sNSBBUyBv aWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBD QVNUKGNvbDUgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f aW50OCwKKyAgICAgICBDQVNUKGNvbDUgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2w1IGFzIGZsb2F0OCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1Qo Y29sNSBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19u dW1lcmljLAorICAgICAgIENBU1QoY29sNSBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNh c3QxOworIGludDIgIHwgdG9faW50MiB8IHRvX2ludDQgfCB0b19vaWQgfCB0b19pbnQ4IHwgdG9f ZmxvYXQ0IHwgdG9fZmxvYXQ4IHwgdG9fbnVtZXJpYyB8IHRvX251bWVyaWNfc2NhbGUgCistLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyAzMjc2NyB8ICAgMzI3 NjcgfCAgIDMyNzY3IHwgIDMyNzY3IHwgICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAzMjc2NyB8 ICAgICAgMzI3NjcgfCAgICAgICAgICAzMjc2Ny4wCisgMzI3NjcgfCAgIDMyNzY3IHwgICAzMjc2 NyB8ICAzMjc2NyB8ICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgIDMyNzY3 IHwgICAgICAgICAgMzI3NjcuMAorIDMyNzY3IHwgICAzMjc2NyB8ICAgMzI3NjcgfCAgMzI3Njcg fCAgIDMyNzY3IHwgICAgIDMyNzY3IHwgICAgIDMyNzY3IHwgICAgICAzMjc2NyB8ICAgICAgICAg IDMyNzY3LjAKKyAzMjc2NyB8ICAgMzI3NjcgfCAgIDMyNzY3IHwgIDMyNzY3IHwgICAzMjc2NyB8 ICAgICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAgMzI3NjcgfCAgICAgICAgICAzMjc2Ny4wCiso NCByb3dzKQorCitTRUxFQ1QgY29sNiBhcyBpbnQ0LAorICAgICAgIENBU1QoY29sNiBBUyBpbnQy IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENB U1QoY29sNiBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19p bnQ0LAorICAgICAgIENBU1QoY29sNiBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDYgYXMgaW50OCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDYgYXMgZmxv YXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAg ICAgQ0FTVChjb2w2IGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sNiBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sNiBhcyBu dW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1l cmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QxOworIGludDQgIHwgdG9faW50MiB8IHRvX2lu dDQgfCB0b19vaWQgfCB0b19pbnQ4IHwgdG9fZmxvYXQ0IHwgdG9fZmxvYXQ4IHwgdG9fbnVtZXJp YyB8IHRvX251bWVyaWNfc2NhbGUgCistLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0KKyAzMjc2OCB8ICAgICAgICAgfCAgIDMyNzY4IHwgIDMyNzY4IHwgICAzMjc2 OCB8ICAgICAzMjc2OCB8ICAgICAzMjc2OCB8ICAgICAgMzI3NjggfCAgICAgICAgICAzMjc2OC4w CisgMzI3NjggfCAgICAgICAgIHwgICAzMjc2OCB8ICAzMjc2OCB8ICAgMzI3NjggfCAgICAgMzI3 NjggfCAgICAgMzI3NjggfCAgICAgIDMyNzY4IHwgICAgICAgICAgMzI3NjguMAorIDMyNzY4IHwg ICAgICAgICB8ICAgMzI3NjggfCAgMzI3NjggfCAgIDMyNzY4IHwgICAgIDMyNzY4IHwgICAgIDMy NzY4IHwgICAgICAzMjc2OCB8ICAgICAgICAgIDMyNzY4LjAKKyAzMjc2OCB8ICAgICAgICAgfCAg IDMyNzY4IHwgIDMyNzY4IHwgICAzMjc2OCB8ICAgICAzMjc2OCB8ICAgICAzMjc2OCB8ICAgICAg MzI3NjggfCAgICAgICAgICAzMjc2OC4wCisoNCByb3dzKQorCitTRUxFQ1QgY29sNyBhcyBpbnQ4 LAorICAgICAgIENBU1QoY29sNyBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sNyBBUyBpbnQ0IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sNyBBUyBvaWQg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNU KGNvbDcgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50 OCwKKyAgICAgICBDQVNUKGNvbDcgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2w3IGFzIGZsb2F0OCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29s NyBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1l cmljLAorICAgICAgIENBU1QoY29sNyBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3Qx OworICAgIGludDggICAgfCB0b19pbnQyIHwgdG9faW50NCB8IHRvX29pZCB8ICB0b19pbnQ4ICAg fCAgdG9fZmxvYXQ0ICB8IHRvX2Zsb2F0OCAgfCB0b19udW1lcmljIHwgdG9fbnVtZXJpY19zY2Fs ZSAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tCisgNDI5NDk2NzI5NiB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgNDI5NDk2NzI5 NiB8IDQuMjk0OTdlKzA5IHwgNDI5NDk2NzI5NiB8IDQyOTQ5NjcyOTYgfCAgICAgICAgICAgICAg ICAgCisgNDI5NDk2NzI5NiB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgNDI5NDk2NzI5 NiB8IDQuMjk0OTdlKzA5IHwgNDI5NDk2NzI5NiB8IDQyOTQ5NjcyOTYgfCAgICAgICAgICAgICAg ICAgCisgNDI5NDk2NzI5NiB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgNDI5NDk2NzI5 NiB8IDQuMjk0OTdlKzA5IHwgNDI5NDk2NzI5NiB8IDQyOTQ5NjcyOTYgfCAgICAgICAgICAgICAg ICAgCisgNDI5NDk2NzI5NiB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgNDI5NDk2NzI5 NiB8IDQuMjk0OTdlKzA5IHwgNDI5NDk2NzI5NiB8IDQyOTQ5NjcyOTYgfCAgICAgICAgICAgICAg ICAgCisoNCByb3dzKQorCitTRUxFQ1QgY29sMyBhcyBudW1lcmljLAorICAgICAgIENBU1QoY29s MyBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAor ICAgICAgIENBU1QoY29sMyBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sMyBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDMgYXMgaW50OCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNv bDMgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9h dDQsCisgICAgICAgQ0FTVChjb2wzIGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sMyBhcyBudW1lcmljIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1Qo Y29sMyBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QxOworICAgICAgIG51bWVyaWMg ICAgICAgfCB0b19pbnQyIHwgdG9faW50NCB8IHRvX29pZCB8IHRvX2ludDggfCAgdG9fZmxvYXQ0 ICB8ICAgICAgdG9fZmxvYXQ4ICAgICAgIHwgICAgIHRvX251bWVyaWMgICAgICB8IHRvX251bWVy aWNfc2NhbGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyA5MjIzMzcyMDM2ODU0Nzc1ODA4 IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwgOS4yMjMzN2UrMTggfCA5 LjIyMzM3MjAzNjg1NDc4ZSsxOCB8IDkyMjMzNzIwMzY4NTQ3NzU4MDggfCAgICAgICAgICAgICAg ICAgCisgICAgICAgICAgICBJbmZpbml0eSB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwg ICAgICAgICB8ICAgIEluZmluaXR5IHwgICAgICAgICAgICAgSW5maW5pdHkgfCAgICAgICAgICAg IEluZmluaXR5IHwgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAtSW5maW5pdHkgfCAgICAg ICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAgIC1JbmZpbml0eSB8ICAgICAgICAg ICAgLUluZmluaXR5IHwgICAgICAgICAgIC1JbmZpbml0eSB8ICAgICAgICAgICAgICAgICAKKyAg ICAgICAgICAgICAgICAgTmFOIHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAg IHwgICAgICAgICBOYU4gfCAgICAgICAgICAgICAgICAgIE5hTiB8ICAgICAgICAgICAgICAgICBO YU4gfCAgICAgICAgICAgICAgTmFOCisoNCByb3dzKQorCitTRUxFQ1QgY29sNCBhcyBudW1fYXJy LAorICAgICAgIENBU1QoY29sNCBBUyBpbnQyW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIGludDJhcnIsCisgICAgICAgQ0FTVChjb2w0IEFTIGludDRbXSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgaW50NGFyciwKKyAgICAgICBDQVNUKGNvbDQgYXMg aW50OFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBpbnQ4YXJyLAorICAg ICAgIENBU1QoY29sNCBhcyBmbG9hdDRbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgZjRhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIGZsb2F0OFtdIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyBmOGFyciwKKyAgICAgICBDQVNUKGNvbDQgYXMgbnVtZXJp YygxMCwxKVtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBudW1hcnIKK0ZS T00gdGVzdF9zYWZlY2FzdDE7CisgICAgICAgICAgbnVtX2FyciAgICAgICAgICAgfCBpbnQyYXJy IHwgaW50NGFyciB8IGludDhhcnIgfCAgICAgICAgICAgZjRhcnIgICAgICAgICAgICB8ICAgICAg ICAgICBmOGFyciAgICAgICAgICAgIHwgbnVtYXJyIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0KKyB7MTEuMTIzNH0g ICAgICAgICAgICAgICAgICB8IHsxMX0gICAgfCB7MTF9ICAgIHwgezExfSAgICB8IHsxMS4xMjM0 fSAgICAgICAgICAgICAgICAgIHwgezExLjEyMzR9ICAgICAgICAgICAgICAgICAgfCB7MTEuMX0K KyB7MTEuMTIzNCwxMixJbmZpbml0eSxOYU59ICB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAg ICB8IHsxMS4xMjM0LDEyLEluZmluaXR5LE5hTn0gIHwgezExLjEyMzQsMTIsSW5maW5pdHksTmFO fSAgfCAKKyB7MTEuMTIzNCwxMiwtSW5maW5pdHksTmFOfSB8ICAgICAgICAgfCAgICAgICAgIHwg ICAgICAgICB8IHsxMS4xMjM0LDEyLC1JbmZpbml0eSxOYU59IHwgezExLjEyMzQsMTIsLUluZmlu aXR5LE5hTn0gfCAKKyB7MTEuMTIzNCwxMiwtSW5maW5pdHksTmFOfSB8ICAgICAgICAgfCAgICAg ICAgIHwgICAgICAgICB8IHsxMS4xMjM0LDEyLC1JbmZpbml0eSxOYU59IHwgezExLjEyMzQsMTIs LUluZmluaXR5LE5hTn0gfCAKKyg0IHJvd3MpCisKK1NFTEVDVCBjb2wxIGFzIGZsb2F0NCwKKyAg ICAgICBDQVNUKGNvbDEgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDEgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDEgQVMgb2lkIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2wx IGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisg ICAgICAgQ0FTVChjb2wxIGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sMSBhcyBmbG9hdDggREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDEgYXMg bnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywK KyAgICAgICBDQVNUKGNvbDEgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKyAg ZmxvYXQ0ICAgfCB0b19pbnQyIHwgdG9faW50NCB8IHRvX29pZCB8IHRvX2ludDggfCB0b19mbG9h dDQgfCAgICB0b19mbG9hdDggICAgIHwgdG9fbnVtZXJpYyB8IHRvX251bWVyaWNfc2NhbGUgCist LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQor ICAgMTEuMTIzNCB8ICAgICAgMTEgfCAgICAgIDExIHwgICAgICAgIHwgICAgICAxMSB8ICAgMTEu MTIzNCB8IDExLjEyMzM5OTczNDQ5NzEgfCAgICAxMS4xMjM0IHwgICAgICAgICAgICAgMTEuMQor ICBJbmZpbml0eSB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICBJbmZp bml0eSB8ICAgICAgICAgSW5maW5pdHkgfCAgIEluZmluaXR5IHwgICAgICAgICAgICAgICAgIAor IC1JbmZpbml0eSB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8IC1JbmZp bml0eSB8ICAgICAgICAtSW5maW5pdHkgfCAgLUluZmluaXR5IHwgICAgICAgICAgICAgICAgIAor ICAgICAgIE5hTiB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAgICAg IE5hTiB8ICAgICAgICAgICAgICBOYU4gfCAgICAgICAgTmFOIHwgICAgICAgICAgICAgIE5hTgor KDQgcm93cykKKworU0VMRUNUIGNvbDIgYXMgZmxvYXQ4LAorICAgICAgIENBU1QoY29sMiBBUyBp bnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAg IENBU1QoY29sMiBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19pbnQ0LAorICAgICAgIENBU1QoY29sMiBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDIgYXMgaW50OCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDIgYXMg ZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisg ICAgICAgQ0FTVChjb2wyIGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sMiBhcyBudW1lcmljIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sMiBh cyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19u dW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QxOworICBmbG9hdDggICB8IHRvX2ludDIg fCB0b19pbnQ0IHwgdG9fb2lkIHwgdG9faW50OCB8IHRvX2Zsb2F0NCB8IHRvX2Zsb2F0OCB8IHRv X251bWVyaWMgfCB0b19udW1lcmljX3NjYWxlIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorICAgMTEuMTIzNCB8ICAgICAgMTEgfCAgICAgIDExIHwg ICAgICAgIHwgICAgICAxMSB8ICAgMTEuMTIzNCB8ICAgMTEuMTIzNCB8ICAgIDExLjEyMzQgfCAg ICAgICAgICAgICAxMS4xCisgIEluZmluaXR5IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAg fCAgICAgICAgIHwgIEluZmluaXR5IHwgIEluZmluaXR5IHwgICBJbmZpbml0eSB8ICAgICAgICAg ICAgICAgICAKKyAtSW5maW5pdHkgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAg ICAgfCAtSW5maW5pdHkgfCAtSW5maW5pdHkgfCAgLUluZmluaXR5IHwgICAgICAgICAgICAgICAg IAorICAgICAgIE5hTiB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAg ICAgIE5hTiB8ICAgICAgIE5hTiB8ICAgICAgICBOYU4gfCAgICAgICAgICAgICAgTmFOCisoNCBy b3dzKQorCistLSBzYWZlIHR5cGUgY2FzdCBmb3IgdHlwZSBkYXRlL3RpbWVzdGFtcC90aW1lc3Rh bXB0ei9pbnRlcnZhbAorQ1JFQVRFIFRBQkxFIHRlc3Rfc2FmZWNhc3QyKAorICBjb2wwIGRhdGUs IGNvbDEgdGltZXN0YW1wLCBjb2wyIHRpbWVzdGFtcHR6LAorICBjb2wzIGludGVydmFsLCBjb2w0 IHRpbWUsIGNvbDUgdGltZXR6KTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QyIFZBTFVFUwor KCctaW5maW5pdHknLCAnLWluZmluaXR5JywgJy1pbmZpbml0eScsICctaW5maW5pdHknLAorICAn MjAwMy0wMy0wNyAxNTozNjozOSBBbWVyaWNhL05ld19Zb3JrJywgJzIwMDMtMDctMDcgMTU6MzY6 MzkgQW1lcmljYS9OZXdfWW9yaycpLAorKCctaW5maW5pdHknLCAnaW5maW5pdHknLCAnaW5maW5p dHknLCAnaW5maW5pdHknLCAnMTE6NTk6NTkuOTkgUE0nLCAnMTE6NTk6NTkuOTkgUE0gUERUJyk7 CitTRUxFQ1QgY29sMCBhcyBkYXRlLAorICAgICAgIENBU1QoY29sMCBBUyB0aW1lc3RhbXB0eiBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wdHosCisgICAg ICAgQ0FTVChjb2wwIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2RhdGUsCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sMCBBUyB0aW1ldHogREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNU KGNvbDAgQVMgdGltZXN0YW1wKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b190aW1lc3RhbXBfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisgICBkYXRlICAgIHwg dG9fdGltZXN0YW1wdHogfCAgdG9fZGF0ZSAgfCB0b190aW1lcyB8IHRvX3RpbWV0eiB8IHRvX3Rp bWVzdGFtcF9zY2FsZSAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIC1pbmZpbml0eSB8 IC1pbmZpbml0eSAgICAgIHwgLWluZmluaXR5IHwgICAgICAgICAgfCAgICAgICAgICAgfCAtaW5m aW5pdHkKKyAtaW5maW5pdHkgfCAtaW5maW5pdHkgICAgICB8IC1pbmZpbml0eSB8ICAgICAgICAg IHwgICAgICAgICAgIHwgLWluZmluaXR5CisoMiByb3dzKQorCitTRUxFQ1QgY29sMSBhcyB0aW1l c3RhbXAsCisgICAgICAgQ0FTVChjb2wxIEFTIHRpbWVzdGFtcHR6IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDEgQVMg ZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0ZSwKKyAgICAg ICBDQVNUKGNvbDEgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wxIEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sMSBBUyB0aW1lc3Rh bXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcF9z Y2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKyB0aW1lc3RhbXAgfCB0b190aW1lc3RhbXB0eiB8 ICB0b19kYXRlICB8IHRvX3RpbWVzIHwgdG9fdGltZXR6IHwgdG9fdGltZXN0YW1wX3NjYWxlIAor LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgLWluZmluaXR5IHwgLWluZmluaXR5ICAgICAg fCAtaW5maW5pdHkgfCAgICAgICAgICB8ICAgICAgICAgICB8IC1pbmZpbml0eQorIGluZmluaXR5 ICB8IGluZmluaXR5ICAgICAgIHwgaW5maW5pdHkgIHwgICAgICAgICAgfCAgICAgICAgICAgfCBp bmZpbml0eQorKDIgcm93cykKKworU0VMRUNUIGNvbDIgYXMgdGltZXN0YW1wdHosCisgICAgICAg Q0FTVChjb2wyIEFTIHRpbWVzdGFtcHR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDIgQVMgZGF0ZSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0ZSwKKyAgICAgICBDQVNUKGNvbDIgQVMg dGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAg ICAgQ0FTVChjb2wyIEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sMiBBUyB0aW1lc3RhbXAoMikgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcF9zY2FsZQorRlJPTSB0ZXN0 X3NhZmVjYXN0MjsKKyB0aW1lc3RhbXB0eiB8IHRvX3RpbWVzdGFtcHR6IHwgIHRvX2RhdGUgIHwg dG9fdGltZXMgfCB0b190aW1ldHogfCB0b190aW1lc3RhbXBfc2NhbGUgCistLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLQorIC1pbmZpbml0eSAgIHwgLWluZmluaXR5ICAgICAgfCAtaW5maW5p dHkgfCAgICAgICAgICB8ICAgICAgICAgICB8IC1pbmZpbml0eQorIGluZmluaXR5ICAgIHwgaW5m aW5pdHkgICAgICAgfCBpbmZpbml0eSAgfCAgICAgICAgICB8ICAgICAgICAgICB8IGluZmluaXR5 CisoMiByb3dzKQorCitTRUxFQ1QgY29sMyBhcyBpbnRlcnZhbCwKKyAgICAgICBDQVNUKGNvbDMg QVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3Rp bWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMyBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAgIENBU1QoY29sMyBBUyB0aW1lIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNv bDMgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1l dHosCisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWVzdGFtcCgyKSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3NjYWxlLAorICAgICAgIENBU1QoY29sMyBB UyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50 ZXJ2YWxfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisgaW50ZXJ2YWwgIHwgdG9fdGltZXN0 YW1wdHogfCB0b19kYXRlIHwgdG9fdGltZXMgfCB0b190aW1ldHogfCB0b190aW1lc3RhbXBfc2Nh bGUgfCB0b19pbnRlcnZhbF9zY2FsZSAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLQorIC1pbmZpbml0eSB8ICAgICAgICAgICAgICAgIHwgICAgICAgICB8ICAg ICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgLWluZmluaXR5CisgaW5m aW5pdHkgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgfCBpbmZpbml0eQorKDIgcm93cykKKworU0VMRUNUIGNvbDQg YXMgdGltZSwKKyAgICAgICBDQVNUKGNvbDQgQVMgdGltZSgyKSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2w0IEFTIHRpbWV0eiBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgSVMgTk9UIE5VTEwgYXMgdG9fdGltZXR6 LAorICAgICAgIENBU1QoY29sNCBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWwsCisgICAgICAgQ0FTVChjb2w0IEFTIGludGVydmFs KDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbF9zY2Fs ZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKyAgICB0aW1lICAgICB8ICB0b190aW1lcyAgIHwgdG9f dGltZXR6IHwgICAgICAgICAgdG9faW50ZXJ2YWwgICAgICAgICAgfCAgICAgICB0b19pbnRlcnZh bF9zY2FsZSAgICAgICAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAxNTozNjozOSAgICB8IDE1OjM2OjM5ICAgIHwgdCAgICAgICAgIHwgQCAxNSBob3Vy cyAzNiBtaW5zIDM5IHNlY3MgICAgfCBAIDE1IGhvdXJzIDM2IG1pbnMgMzkgc2VjcworIDIzOjU5 OjU5Ljk5IHwgMjM6NTk6NTkuOTkgfCB0ICAgICAgICAgfCBAIDIzIGhvdXJzIDU5IG1pbnMgNTku OTkgc2VjcyB8IEAgMjMgaG91cnMgNTkgbWlucyA1OS45OSBzZWNzCisoMiByb3dzKQorCitTRUxF Q1QgY29sNSBhcyB0aW1ldHosCisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWUgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWUsCisgICAgICAgQ0FTVChjb2w1IEFTIHRp bWUoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVfc2NhbGUs CisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sNSBBUyB0aW1ldHooNikgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0el9zY2FsZSwKKyAgICAgICBD QVNUKGNvbDUgQVMgaW50ZXJ2YWwgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2ludGVydmFsLAorICAgICAgIENBU1QoY29sNSBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWxfc2NhbGUKK0ZST00gdGVzdF9z YWZlY2FzdDI7CisgICAgIHRpbWV0eiAgICAgfCAgIHRvX3RpbWUgICB8IHRvX3RpbWVfc2NhbGUg fCAgIHRvX3RpbWV0eiAgICB8IHRvX3RpbWV0el9zY2FsZSB8IHRvX2ludGVydmFsIHwgdG9faW50 ZXJ2YWxfc2NhbGUgCistLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tCisgMTU6MzY6MzktMDQgICAgfCAxNTozNjozOSAgICB8IDE1OjM2OjM5 ICAgICAgfCAxNTozNjozOS0wNCAgICB8IDE1OjM2OjM5LTA0ICAgICB8ICAgICAgICAgICAgIHwg CisgMjM6NTk6NTkuOTktMDcgfCAyMzo1OTo1OS45OSB8IDIzOjU5OjU5Ljk5ICAgfCAyMzo1OTo1 OS45OS0wNyB8IDIzOjU5OjU5Ljk5LTA3ICB8ICAgICAgICAgICAgIHwgCisoMiByb3dzKQorCitD UkVBVEUgVEFCTEUgdGVzdF9zYWZlY2FzdDMoY29sMCBqc29uYik7CitJTlNFUlQgSU5UTyB0ZXN0 X3NhZmVjYXN0Myhjb2wwKSBWQUxVRVMgKCcidGVzdCInKTsKK1NFTEVDVCBjb2wwIGFzIGpzb25i LAorICAgICAgIENBU1QoY29sMCBBUyBpbnRlZ2VyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19pbnRlZ2VyLAorICAgICAgIENBU1QoY29sMCBBUyBudW1lcmljIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1Qo Y29sMCBBUyBiaWdpbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2lu dDgsCisgICAgICAgQ0FTVChjb2wwIEFTIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sMCBBUyBmbG9hdDggREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNv bDAgQVMgYm9vbGVhbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fYm9v bCwKKyAgICAgICBDQVNUKGNvbDAgQVMgc21hbGxpbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX3NtYWxsaW50CitGUk9NIHRlc3Rfc2FmZWNhc3QzOworIGpzb25iICB8 IHRvX2ludGVnZXIgfCB0b19udW1lcmljIHwgdG9faW50OCB8IHRvX2Zsb2F0NCB8IHRvX2Zsb2F0 OCB8IHRvX2Jvb2wgfCB0b19zbWFsbGludCAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tCisgInRlc3QiIHwgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgIHwgICAg ICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgCisoMSByb3cpCisKKy0t IHRlc3QgZGVwYXJzZQorU0VUIGRhdGVzdHlsZSBUTyBJU08sIFlNRDsKK0NSRUFURSBWSUVXIHNh ZmVjYXN0dmlldyBBUworU0VMRUNUIENBU1QoJzEyMzQnIGFzIGNoYXIoMykgREVGQVVMVCAtMTEx MSBPTiBDT05WRVJTSU9OIEVSUk9SKSwKKyAgICAgICBDQVNUKDEgYXMgZGF0ZSBERUZBVUxUICgo JzIwMjUtRGVjLTA2Jzo6ZGF0ZSArIHJhbmRvbShtaW49PjEsIG1heD0+MTo6aW50KSkpIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIGNhc3QwLAorICAgICAgIENBU1QoQVJSQVlbWycxJ10sIFsndGhy ZWUnXSxbJ2EnXV0gQVMgaW50W10gREVGQVVMVCAnezEsMn0nIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIGNhc3QxLAorICAgICAgIENBU1QoQVJSQVlbWycxJywgJzInXSwgWyd0aHJlZScsICdhJ11d IEFTIGRhdGVbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDIsCisg ICAgICAgQ0FTVChBUlJBWVsndGhyZWUnXSBBUyBJTlRbXSBERUZBVUxUICd7MSwyfScgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgY2FzdDM7Citcc3Ygc2FmZWNhc3R2aWV3CitDUkVBVEUgT1IgUkVQ TEFDRSBWSUVXIHB1YmxpYy5zYWZlY2FzdHZpZXcgQVMKKyBTRUxFQ1QgQ0FTVCgnMTIzNCcgQVMg Y2hhcmFjdGVyKDMpIERFRkFVTFQgJy0xMTExJzo6aW50ZWdlcjo6Y2hhcmFjdGVyKDMpIE9OIENP TlZFUlNJT04gRVJST1IpIEFTIGJwY2hhciwKKyAgICBDQVNUKDEgQVMgZGF0ZSBERUZBVUxUICcy MDI1LTEyLTA2Jzo6ZGF0ZSArIHJhbmRvbShtaW4gPT4gMSwgbWF4ID0+IDEpIE9OIENPTlZFUlNJ T04gRVJST1IpIEFTIGNhc3QwLAorICAgIENBU1QoQVJSQVlbQVJSQVlbMV0sIEFSUkFZWyd0aHJl ZSddLCBBUlJBWVsnYSddXSBBUyBpbnRlZ2VyW10gREVGQVVMVCAnezEsMn0nOjppbnRlZ2VyW10g T04gQ09OVkVSU0lPTiBFUlJPUikgQVMgY2FzdDEsCisgICAgQ0FTVChBUlJBWVtBUlJBWVsnMScs ICcyJ10sIEFSUkFZWyd0aHJlZScsICdhJ11dIEFTIGRhdGVbXSBERUZBVUxUIE5VTEw6OmRhdGVb XSBPTiBDT05WRVJTSU9OIEVSUk9SKSBBUyBjYXN0MiwKKyAgICBDQVNUKEFSUkFZWyd0aHJlZSdd IEFTIGludGVnZXJbXSBERUZBVUxUICd7MSwyfSc6OmludGVnZXJbXSBPTiBDT05WRVJTSU9OIEVS Uk9SKSBBUyBjYXN0MworU0VMRUNUICogRlJPTSBzYWZlY2FzdHZpZXc7CisgYnBjaGFyIHwgICBj YXN0MCAgICB8IGNhc3QxIHwgY2FzdDIgfCBjYXN0MyAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tKy0tLS0tLS0rLS0tLS0tLQorIDEyMyAgICB8IDIwMjUtMTItMDcgfCB7MSwyfSB8ICAg ICAgIHwgezEsMn0KKygxIHJvdykKKworQ1JFQVRFIFZJRVcgc2FmZWNhc3R2aWV3MSBBUworU0VM RUNUIENBU1QoQVJSQVlbWycxJ10sIFsndGhyZWUnXSxbJ2EnXV0gQVMgZF9pbnRfYXJyCisgICAg ICAgICAgICBERUZBVUxUICd7NDEsNDN9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MSwK KyAgICAgICBDQVNUKEFSUkFZW1snMScsICcyJywgMS4xXSwgWyd0aHJlZScsIHRydWUsIEInMDEn XV0gQVMgZF9pbnRfYXJyCisgICAgICAgICAgICBERUZBVUxUICd7NDEsNDN9JyBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyBjYXN0MjsKK1xzdiBzYWZlY2FzdHZpZXcxCitDUkVBVEUgT1IgUkVQTEFD RSBWSUVXIHB1YmxpYy5zYWZlY2FzdHZpZXcxIEFTCisgU0VMRUNUIENBU1QoQVJSQVlbQVJSQVlb MV0sIEFSUkFZWyd0aHJlZSddLCBBUlJBWVsnYSddXSBBUyBkX2ludF9hcnIgREVGQVVMVCAnezQx LDQzfSc6OmludGVnZXJbXTo6ZF9pbnRfYXJyIE9OIENPTlZFUlNJT04gRVJST1IpIEFTIGNhc3Qx LAorICAgIENBU1QoQVJSQVlbQVJSQVlbMSwgMiwgMS4xOjppbnRlZ2VyXSwgQVJSQVlbJ3RocmVl JywgdHJ1ZSwgJzAxJzo6ImJpdCJdXSBBUyBkX2ludF9hcnIgREVGQVVMVCAnezQxLDQzfSc6Omlu dGVnZXJbXTo6ZF9pbnRfYXJyIE9OIENPTlZFUlNJT04gRVJST1IpIEFTIGNhc3QyCitTRUxFQ1Qg KiBGUk9NIHNhZmVjYXN0dmlldzE7CisgIGNhc3QxICB8ICBjYXN0MiAgCistLS0tLS0tLS0rLS0t LS0tLS0tCisgezQxLDQzfSB8IHs0MSw0M30KKygxIHJvdykKKworUkVTRVQgZGF0ZXN0eWxlOwor LS0gdGVzdCBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbiBtdXRhYmlsaXR5CitDUkVBVEUgSU5ERVgg Y2FzdF9lcnJvcl9pZHggT04gdGVzdF9zYWZlY2FzdDMoKENBU1QoY29sMCBhcyBpbnQgREVGQVVM VCByYW5kb20obWluPT4xLCBtYXg9PjEpIE9OIENPTlZFUlNJT04gRVJST1IpKSk7IC0tIGVycm9y CitFUlJPUjogIGZ1bmN0aW9ucyBpbiBpbmRleCBleHByZXNzaW9uIG11c3QgYmUgbWFya2VkIElN TVVUQUJMRQorTElORSAxOiBDUkVBVEUgSU5ERVggY2FzdF9lcnJvcl9pZHggT04gdGVzdF9zYWZl Y2FzdDMoKENBU1QoY29sMCBhcyAuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KK0NSRUFURSBJTkRFWCBjYXN0X2Vycm9yX2lkeCBPTiB0 ZXN0X3NhZmVjYXN0MygoQ0FTVChjb2wwIGFzIHhpZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikpKTsgLS0gZXJyb3IKK0VSUk9SOiAgZGF0YSB0eXBlIHhpZCBoYXMgbm8gZGVmYXVs dCBvcGVyYXRvciBjbGFzcyBmb3IgYWNjZXNzIG1ldGhvZCAiYnRyZWUiCitISU5UOiAgWW91IG11 c3Qgc3BlY2lmeSBhbiBvcGVyYXRvciBjbGFzcyBmb3IgdGhlIGluZGV4IG9yIGRlZmluZSBhIGRl ZmF1bHQgb3BlcmF0b3IgY2xhc3MgZm9yIHRoZSBkYXRhIHR5cGUuCitDUkVBVEUgSU5ERVggY2Fz dF9lcnJvcl9pZHggT04gdGVzdF9zYWZlY2FzdDMoKENBU1QoY29sMCBhcyBpbnQgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpKSk7IC0tb2sKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYo J2Nhc3RfZXJyb3JfaWR4Jzo6cmVnY2xhc3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfaW5kZXhkZWYgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIElOREVYIGNhc3RfZXJyb3JfaWR4IE9OIHB1YmxpYy50 ZXN0X3NhZmVjYXN0MyBVU0lORyBidHJlZSAoKENBU1QoY29sMCBBUyBpbnRlZ2VyIERFRkFVTFQg TlVMTDo6aW50ZWdlciBPTiBDT05WRVJTSU9OIEVSUk9SKSkpCisoMSByb3cpCisKK0RST1AgVEFC TEUgdGVzdF9zYWZlY2FzdDsKK0RST1AgVEFCTEUgdGVzdF9zYWZlY2FzdDE7CitEUk9QIFRBQkxF IHRlc3Rfc2FmZWNhc3QyOworRFJPUCBUQUJMRSB0ZXN0X3NhZmVjYXN0MzsKK0RST1AgVEFCTEUg dGNhc3Q7CitEUk9QIEZVTkNUSU9OIHJldF9pbnQ4OworRFJPUCBGVU5DVElPTiByZXRfc2V0aW50 OworRFJPUCBUWVBFIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kOworRFJPUCBUWVBFIGNvbXAyOwor RFJPUCBET01BSU4gZF92YXJjaGFyOworRFJPUCBET01BSU4gZF9pbnQ0MjsKK0RST1AgRE9NQUlO IGRfY2hhcjNfbm90X251bGw7CitSRVNFVCBleHRyYV9mbG9hdF9kaWdpdHM7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9jYXN0Lm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2Nhc3Qub3V0CmluZGV4IDBlNjk2NDRiY2EyLi42OGU2OWQx YzU4NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfY2FzdC5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfY2FzdC5vdXQKQEAgLTg4 LDYgKzg4LDExIEBAIFNFTEVDVCAxMjM0OjppbnQ0OjpjYXN0dGVzdHR5cGU7IC0tIFNob3VsZCB3 b3JrIG5vdwogIGJhcjEyMzQKICgxIHJvdykKIAorU0VMRUNUIENBU1QoMTIzNDo6aW50NCBBUyBj YXN0dGVzdHR5cGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgor RVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGludGVnZXIgdG8gY2FzdHRlc3R0eXBlIHdoZW4gREVG QVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVS Uk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKDEyMzQ6OmludDQgQVMgY2FzdHRlc3R0eXBlIERFRkFV TFQgTlVMTCBPTiBDT05WRS4uLgorICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAgU2FmZSB0 eXBlIGNhc3QgZm9yIHVzZXItZGVmaW5lZCB0eXBlcyBhcmUgbm90IHlldCBzdXBwb3J0ZWQuCiAt LSBjaGVjayBkZXBlbmRlbmNpZXMgZ2VuZXJhdGVkIGZvciB0aGF0CiBTRUxFQ1QgcGdfZGVzY3Jp YmVfb2JqZWN0KGNsYXNzaWQsIG9iamlkLCBvYmpzdWJpZCkgYXMgb2JqLAogICAgICAgIHBnX2Rl c2NyaWJlX29iamVjdChyZWZjbGFzc2lkLCByZWZvYmppZCwgcmVmb2Jqc3ViaWQpIGFzIG9ianJl ZiwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXF1aXZjbGFzcy5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2VxdWl2Y2xhc3Mub3V0CmluZGV4IGFkOGFiMjk0 ZmY2Li5lM2Y4YTI4MDdmOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9l cXVpdmNsYXNzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2VxdWl2Y2xhc3Mu b3V0CkBAIC05NSw2ICs5NSwxMyBAQCBjcmVhdGUgZnVuY3Rpb24gaW50OGFsaWFzMWNtcChpbnQ4 LCBpbnQ4YWxpYXMxKSByZXR1cm5zIGludAogICBzdHJpY3QgaW1tdXRhYmxlIGxhbmd1YWdlIGlu dGVybmFsIGFzICdidGludDhjbXAnOwogYWx0ZXIgb3BlcmF0b3IgZmFtaWx5IGludGVnZXJfb3Bz IHVzaW5nIGJ0cmVlIGFkZAogICBmdW5jdGlvbiAxIGludDhhbGlhczFjbXAgKGludDgsIGludDhh bGlhczEpOworLS0gaW50OGFsaWFzMiBiaW5hcnktY29lcmNpYmxlIHRvIGludDgsIHRoaXMgc2hv dWxkIG5vdCBmYWlsCitzZWxlY3QgY2FzdCgnMSc6OmludDggYXMgaW50OGFsaWFzMiBkZWZhdWx0 IG51bGwgb24gY29udmVyc2lvbiBlcnJvcik7CisgaW50OGFsaWFzMiAKKy0tLS0tLS0tLS0tLQor IDEKKygxIHJvdykKKwogY3JlYXRlIHRhYmxlIGVjMCAoZmYgaW50OCBwcmltYXJ5IGtleSwgZjEg aW50OCwgZjIgaW50OCk7CiBjcmVhdGUgdGFibGUgZWMxIChmZiBpbnQ4IHByaW1hcnkga2V5LCBm MSBpbnQ4YWxpYXMxLCBmMiBpbnQ4YWxpYXMyKTsKIGNyZWF0ZSB0YWJsZSBlYzIgKHhmIGludDgg cHJpbWFyeSBrZXksIHgxIGludDhhbGlhczEsIHgyIGludDhhbGlhczIpOwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFy YWxsZWxfc2NoZWR1bGUKaW5kZXggNTQ5ZTliMmQ3YmUuLmJjOGMwMmI1M2UwIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTgxLDcgKzgxLDcgQEAgdGVzdDogY3JlYXRlX3RhYmxl X2xpa2UgYWx0ZXJfZ2VuZXJpYyBhbHRlcl9vcGVyYXRvciBtaXNjIGFzeW5jIGRic2l6ZSBtZXJn ZSBtaXMKICMgY29sbGF0ZS5saW51eC51dGY4IGFuZCBjb2xsYXRlLmljdS51dGY4IHRlc3RzIGNh bm5vdCBiZSBydW4gaW4gcGFyYWxsZWwgd2l0aCBlYWNoIG90aGVyCiAjIHBzcWwgZGVwZW5kcyBv biBjcmVhdGVfYW0KICMgYW11dGlscyBkZXBlbmRzIG9uIGdlb21ldHJ5LCBjcmVhdGVfaW5kZXhf c3BnaXN0LCBoYXNoX2luZGV4LCBicmluCi10ZXN0OiBydWxlcyBwc3FsIHBzcWxfY3Jvc3N0YWIg cHNxbF9waXBlbGluZSBhbXV0aWxzIHN0YXRzX2V4dCBjb2xsYXRlLmxpbnV4LnV0ZjggY29sbGF0 ZS53aW5kb3dzLndpbjEyNTIKK3Rlc3Q6IHJ1bGVzIHBzcWwgcHNxbF9jcm9zc3RhYiBwc3FsX3Bp cGVsaW5lIGFtdXRpbHMgc3RhdHNfZXh0IGNvbGxhdGUubGludXgudXRmOCBjb2xsYXRlLndpbmRv d3Mud2luMTI1MiBjYXN0CiAKICMgLS0tLS0tLS0tLQogIyBSdW4gdGhlc2UgYWxvbmUgc28gdGhl eSBkb24ndCBydW4gb3V0IG9mIHBhcmFsbGVsIHdvcmtlcnMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2Nhc3Quc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY2FzdC5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjUxNTA1MmQ5ZTk5Ci0tLSAvZGV2 L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY2FzdC5zcWwKQEAgLTAsMCArMSwzNDcg QEAKK1NFVCBleHRyYV9mbG9hdF9kaWdpdHMgPSAwOworCistLSBDQVNUIERFRkFVTFQgT04gQ09O VkVSU0lPTiBFUlJPUgorU0VMRUNUIENBU1QoQicwMScgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChCSVQnMDEnIEFTIGRhdGUgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoVFJVRSBBUyBkYXRlIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKDEuMSBBUyBkYXRlIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKDEgQVMgZGF0ZSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgxMTExIEFTICJj aGFyIiBERUZBVUxUICdBJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworLS0gc291cmNlIGV4cHJl c3Npb24gaXMgYSB1bmtub3duIGNvbnN0CitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnRlZ2Vy IEVSUk9SIE9OIENPTlZFUlNJT04gRVJST1IpKTsgLS0gZXJyb3IKK1ZBTFVFUyAoQ0FTVCgnZXJy b3InIEFTIGludGVnZXIgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSk7CitWQUxVRVMgKENBU1Qo J2Vycm9yJyBBUyBpbnRlZ2VyIERFRkFVTFQgNDIgT04gQ09OVkVSU0lPTiBFUlJPUikpOworU0VM RUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIDE4IE9OIENPTlZFUlNJT04gRVJST1IpOworU0VM RUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHN1bSgxKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsg LS0gZXJyb3IKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0oMSkgb3ZlcigpIE9O IENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgorU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZB VUxUIChTRUxFQ1QgTlVMTCkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCitTRUxFQ1Qg Q0FTVCgnYScgYXMgaW50IERFRkFVTFQgJ2InIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJv cgorU0VMRUNUIENBU1QoJ2EnOjppbnQgYXMgaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsgLS0gZXJyb3IKKworLS0gdGhlIGRlZmF1bHQgZXhwcmVzc2lvbuKAmXMgY29sbGF0 aW9uIHNob3VsZCBtYXRjaCB0YXJnZXQgdHlwZSBjb2xsYXRpb24KK1ZBTFVFUyAoQ0FTVCgnZXJy b3InIEFTIHRleHQgREVGQVVMVCAnMScgQ09MTEFURSAiQyIgT04gQ09OVkVSU0lPTiBFUlJPUikp OworCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnQydmVjdG9yIERFRkFVTFQgJzEgMycgIE9O IENPTlZFUlNJT04gRVJST1IpKTsKK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludDJ2ZWN0b3Jb XSBERUZBVUxUICd7MSAzfScgIE9OIENPTlZFUlNJT04gRVJST1IpKTsKKworLS0gc291cmNlIGV4 cHJlc3Npb24gY29udGFpbiBzdWJxdWVyeQorU0VMRUNUIENBU1QoKFNFTEVDVCBiIEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDEpLCAoVkFMVUVTKCdIJykpIHMoYikpCisgICAgICAgICAgICBBUyBp bnQydmVjdG9yW10gREVGQVVMVCAnezEgM30nICBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVD VCBDQVNUKChTRUxFQ1QgQVJSQVkoKFNFTEVDVCBiIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIp IGcsIChWQUxVRVMoJ0gnKSkgcyhiKSkpKQorICAgICAgICAgICAgQVMgSU5UW10KKyAgICAgICAg ICAgIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworQ1JFQVRFIEZVTkNUSU9O IHJldF9pbnQ4KCkgUkVUVVJOUyBCSUdJTlQgQVMKKyQkCitCRUdJTiBSRVRVUk4gMjE0NzQ4MzY0 ODsgRU5EOworJCQKK0xBTkdVQUdFIHBscGdzcWwgSU1NVVRBQkxFOworCitTRUxFQ1QgQ0FTVCgn YScgYXMgaW50IERFRkFVTFQgcmV0X2ludDgoKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJy b3IKK1NFTEVDVCBDQVNUKCdhJyBhcyBkYXRlIERFRkFVTFQgcmV0X2ludDgoKSBPTiBDT05WRVJT SU9OIEVSUk9SKTsgLS0gZXJyb3IKKworLS0gREVGQVVMVCBleHByZXNzaW9uIGNhbm5vdCBiZSBz ZXQtcmV0dXJuaW5nCitDUkVBVEUgRlVOQ1RJT04gcmV0X3NldGludCgpIFJFVFVSTlMgU0VUT0Yg aW50ZWdlciBBUworJCQKK0JFR0lOIFJFVFVSTiBRVUVSWSBFWEVDVVRFICdzZWxlY3QgMSB1bmlv biBhbGwgc2VsZWN0IDEnOyBFTkQ7CiskJAorTEFOR1VBR0UgcGxwZ3NxbCBJTU1VVEFCTEU7CisK K0NSRUFURSBUQUJMRSB0Y2FzdChhIHRleHRbXSwgYiBpbnQgR0VORVJBVEVEIEJZIERFRkFVTFQg QVMgSURFTlRJVFkpOworSU5TRVJUIElOVE8gdGNhc3QgVkFMVUVTICgnezEyfScpLCAoJ3sxLGEs IGJ9JyksICgne3sxLDJ9LCB7YyxkfX0nKSwgKCd7MTN9Jyk7CitTRUxFQ1QgQ0FTVCgnYScgYXMg aW50IERFRkFVTFQgcmV0X3NldGludCgpIE9OIENPTlZFUlNJT04gRVJST1IpIEZST00gdGNhc3Q7 IC0tIGVycm9yCitTRUxFQ1QgQ0FTVCh0IEFTIHRleHRbXSBERUZBVUxUICd7MjEsMjIsICcgfHwg YiB8fCAnfScgT04gQ09OVkVSU0lPTiBFUlJPUikgRlJPTSB0Y2FzdCBhcyB0OworU0VMRUNUIENB U1QodC5hIEFTIGludFtdIERFRkFVTFQgJ3syMSwyMn0nOjppbnRbXSB8fCBiIE9OIENPTlZFUlNJ T04gRVJST1IpIEZST00gdGNhc3QgYXMgdDsKKworLS0gdGVzdCB3aXRoIHVzZXItZGVmaW5lZCB0 eXBlLCBkb21haW4sIGFycmF5IG92ZXIgZG9tYWluLCBkb21haW4gb3ZlciBhcnJheQorQ1JFQVRF IERPTUFJTiBkX2ludDQyIGFzIGludCBjaGVjayAodmFsdWUgPSA0MikgTk9UIE5VTEw7CitDUkVB VEUgRE9NQUlOIGRfY2hhcjNfbm90X251bGwgYXMgY2hhcigzKSBOT1QgTlVMTDsKK0NSRUFURSBE T01BSU4gZF92YXJjaGFyIGFzIHZhcmNoYXIoMykgTk9UIE5VTEw7CitDUkVBVEUgRE9NQUlOIGRf aW50X2FyciBhcyBpbnRbXSBjaGVjayAodmFsdWUgPSAnezQxLCA0M30nKSBOT1QgTlVMTDsKK0NS RUFURSBUWVBFIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIEFTIChhIGRfY2hhcjNfbm90X251bGws IGIgaW50KTsKK0NSRUFURSBUWVBFIGNvbXAyIEFTIChhIGRfdmFyY2hhcik7CitTRUxFQ1QgQ0FT VCgnKE5VTEwpJyBBUyBjb21wMiBERUZBVUxUICcoMTIzMiknIE9OIENPTlZFUlNJT04gRVJST1Ip OyAtLSBlcnJvcgorU0VMRUNUIENBU1QoJyhOVUxMKScgQVMgY29tcDIgREVGQVVMVCAnKDEyMykn IE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoMTEgQVMgZF9pbnQ0MiBERUZBVUxU IDQxIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgorU0VMRUNUIENBU1QoMTEgQVMgZF9p bnQ0MiBERUZBVUxUIDQyIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoTlVMTCBB UyBkX2ludDQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKK1NF TEVDVCBDQVNUKE5VTEwgQVMgZF9pbnQ0MiBERUZBVUxUIDQyIE9OIENPTlZFUlNJT04gRVJST1Ip OworU0VMRUNUIENBU1QoJygsNDIpJyBBUyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKE5VTEwsNDIpJyBBUyBj b21wX2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxUICcoMSwyKScgT04gQ09OVkVSU0lPTiBFUlJP Uik7CitTRUxFQ1QgQ0FTVCgnKE5VTEwsNDIpJyBBUyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBE RUZBVUxUICcoMTIzNCwyKScgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCisKK1NFTEVD VCBDQVNUKEFSUkFZWzQyLDQxXSBBUyBkX2ludDQyW10gREVGQVVMVCAnezQyLCA0Mn0nIE9OIENP TlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoQVJSQVlbNDIsNDFdIEFTIGRfaW50X2FyciBE RUZBVUxUICd7NDEsIDQzfScgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tIHRlc3QgYXJyYXkg Y29lcmNlCitTRUxFQ1QgQ0FTVChhcnJheVsnYSc6OnRleHRdIEFTIGludFtdIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKK1NFTEVDVCBDQVNUKGFycmF5WydhJ10g QVMgaW50W10gREVGQVVMVCBBUlJBWVsxXSBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBD QVNUKGFycmF5WzExLjEyXSBBUyBkYXRlW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpOworU0VMRUNUIENBU1QoYXJyYXlbMTExMTExMTExMTExMTExMTFdIEFTIGludFtdIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKGFycmF5W1snYWJjJ10s WzQ1Nl1dIEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVD VCBDQVNUKCd7MTIzLGFiYyw0NTZ9JyBBUyBpbnRbXSBERUZBVUxUICd7LTc4OX0nIE9OIENPTlZF UlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ3syMzQsZGVmLDU2N30nOjp0ZXh0W10gQVMgaW50 ZWdlcltdIERFRkFVTFQgJ3stMTAxMX0nIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENB U1QoQVJSQVlbWycxJ10sIFsndGhyZWUnXSxbJ2EnXV0gQVMgaW50W10gREVGQVVMVCAnezEsMn0n IE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoQVJSQVlbWycxJywgJzInXSwgWyd0 aHJlZScsICdhJ11dIEFTIGludFtdIERFRkFVTFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJT04gRVJS T1IpOyAtLW9rCitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnLCAnMiddLCBbJ3RocmVlJzo6aW50LCAn YSddXSBBUyBpbnRbXSBERUZBVUxUICd7MjEsMjJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0g ZXJyb3IKK1NFTEVDVCBDQVNUKEFSUkFZWzEsICd0aHJlZSc6OmludF0gQVMgaW50W10gREVGQVVM VCAnezIxLDIyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCisKKy0tLS0tc2FmZSBj YXN0IHdpdGggZ2VvbWV0cnkgZGF0YSB0eXBlCitTRUxFQ1QgQ0FTVCgnKDEsMiknOjpwb2ludCBB UyBib3ggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1so TmFOLDEpLChOYU4saW5maW5pdHkpXSc6OmxzZWcgQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1soMWUrMzAwLEluZmluaXR5KSwoMWUrMzAw LEluZmluaXR5KV0nOjpsc2VnIEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKK1NFTEVDVCBDQVNUKCdbKDEsMiksKDMsNCldJzo6cGF0aCBhcyBwb2x5Z29uIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoTmFOLDEuMCxOYU4s aW5maW5pdHkpJzo6Ym94IEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKK1NFTEVDVCBDQVNUKCcoMi4wLDIuMCwwLjAsMC4wKSc6OmJveCBBUyBsc2VnIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoMi4wLDIuMCwwLjAsMC4w KSc6OmJveCBBUyBwb2x5Z29uIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NF TEVDVCBDQVNUKCcoMi4wLDIuMCwwLjAsMC4wKSc6OmJveCBBUyBwYXRoIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoMi4wLGluZmluaXR5LE5hTixpbmZp bml0eSknOjpib3ggQVMgY2lyY2xlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK K1NFTEVDVCBDQVNUKCcoTmFOLDAuMCksKDIuMCw0LjApLCgwLjAsaW5maW5pdHkpJzo6cG9seWdv biBBUyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FT VCgnKDIuMCwwLjApLCgyLjAsNC4wKSwoMC4wLDAuMCknOjpwb2x5Z29uIEFTIHBhdGggREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJygyLjAsMC4wKSwoMi4w LDQuMCksKDAuMCwwLjApJzo6cG9seWdvbiBBUyBib3ggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOworU0VMRUNUIENBU1QoJyhOYU4saW5maW5pdHkpLCgyLjAsNC4wKSwoMC4wLGlu ZmluaXR5KSc6OnBvbHlnb24gQVMgY2lyY2xlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKK1NFTEVDVCBDQVNUKCc8KDUsMSksMz4nOjpjaXJjbGUgQVMgcG9pbnQgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJzwoMyw1KSwwPic6OmNpcmNs ZSBhcyBib3ggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworCistLSBjYXN0IGZy b20gdHlwZSBjaXJjbGUgdG8gdHlwZSBwb2x5Z29uIGlzIGltcGxlbWVudGVkIGFzIGFuIFNRTCBm dW5jdGlvbiwgd2hpY2ggY2Fubm90IGJlIGVycm9yLXNhZmUKK1NFTEVDVCBDQVNUKCc8KDMsNSks MD4nOjpjaXJjbGUgYXMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7 CisKKy0tLSBzYWZlIGNhc3QgZnJvbS90byBtb25leSB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQsIGFs bCB0aGUgZm9sbG93aW5nIHdvdWxkIHJlc3VsdCBlcnJvcgorU0VMRUNUIENBU1QoTlVMTDo6aW50 OCBBUyBtb25leSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FT VChOVUxMOjppbnQ0IEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK K1NFTEVDVCBDQVNUKE5VTEw6Om51bWVyaWMgQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoTlVMTDo6bW9uZXkgQVMgbnVtZXJpYyBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChOVUxMOjptb25leVtdIEFT IG51bWVyaWNbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tIHNhZmUg Y2FzdCBmcm9tIGJ5dGVhIHR5cGUgdG8gb3RoZXIgZGF0YSB0eXBlcworU0VMRUNUIENBU1QgKCdc eDExMjIzMzQ0NTU2Njc3ODg5OSc6OmJ5dGVhIEFTIGludDggREVGQVVMVCAxOSBPTiBDT05WRVJT SU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdceDEyMzQ1Njc4OUEnOjpieXRlYSBBUyBpbnQ0IERF RkFVTFQgMjAgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnXHgxMjM0NTYnOjpi eXRlYSBBUyBpbnQyIERFRkFVTFQgMjEgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tIHNhZmUg Y2FzdCBmcm9tIGJpdCB0eXBlIHRvIG90aGVyIGRhdGEgdHlwZXMKK1NFTEVDVCBDQVNUKCcxMTEx MTExMTExMDAwMDEnOjpiaXQoMTAwKSBBUyBJTlQgREVGQVVMVCAyMiBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKK1NFTEVDVCBDQVNUICgnMTExMTExMTExMTAwMDAxJzo6Yml0KDEwMCkgQVMgSU5UOCBE RUZBVUxUIDIzIE9OIENPTlZFUlNJT04gRVJST1IpOworCistLS0gc2FmZSBjYXN0IGZyb20gdGV4 dCB0eXBlIHRvIG90aGVyIGRhdGEgdHlwZXMKK3NlbGVjdCBDQVNUKCdhLmIuYy5kJzo6dGV4dCBh cyByZWdjbGFzcyBkZWZhdWx0IE5VTEwgb24gY29udmVyc2lvbiBlcnJvcik7CisKK0NSRUFURSBU QUJMRSB0ZXN0X3NhZmVjYXN0KGNvbDAgdGV4dCk7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0 KGNvbDApIFZBTFVFUyAoJzx2YWx1ZT5vbmU8L3ZhbHVlJyk7CisKK1NFTEVDVCBjb2wwIGFzIHRl eHQsCisgICAgICAgQ0FTVChjb2wwIEFTIHJlZ2NsYXNzIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19yZWdjbGFzcywKKyAgICAgICBDQVNUKGNvbDAgQVMgcmVnY2xhc3Mg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIElTIE5VTEwgYXMgZXhwZWN0X3RydWUs CisgICAgICAgQ0FTVChjb2wwIEFTICJjaGFyIiAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX2NoYXIsCisgICAgICAgQ0FTVChjb2wwIEFTIG5hbWUgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX25hbWUsCisgICAgICAgQ0FTVChjb2wwIEFTIHht bCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9feG1sCitGUk9NIHRlc3Rf c2FmZWNhc3Q7CisKK1NFTEVDVCBDQVNUKCcxOTIuMTY4LjEueCcgYXMgaW5ldCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnMTkyLjE2OC4xLjIvMzAnIGFz IGNpZHIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJzIy OjAwOjVjOjA4OjU1OjA4OjAxOjAyJzo6bWFjYWRkcjggYXMgbWFjYWRkciBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tLSBzYWZlIGNhc3QgYmV0d2VlZW4gcmFuZ2UgZGF0 YSB0eXBlcworU0VMRUNUIENBU1QoJ1sxLDJdJzo6aW50NHJhbmdlIEFTIGludDRtdWx0aXJhbmdl IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdbMSwyXSc6 OmludDhyYW5nZSBBUyBpbnQ4bXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CitTRUxFQ1QgQ0FTVCgnWzEsMl0nOjpudW1yYW5nZSAgQVMgbnVtbXVsdGlyYW5nZSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnWy1pbmZpbml0 eSxpbmZpbml0eV0nOjpkYXRlcmFuZ2UgQVMgZGF0ZW11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1staW5maW5pdHksaW5maW5pdHldJzo6 dHNyYW5nZSBBUyB0c211bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworU0VMRUNUIENBU1QoJ1staW5maW5pdHksaW5maW5pdHldJzo6dHN0enJhbmdlIEFTIHRzdHpt dWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworLS0gc2FmZSBj YXN0IGJldHdlZWVuIG51bWVyaWMgZGF0YSB0eXBlcworQ1JFQVRFIFRBQkxFIHRlc3Rfc2FmZWNh c3QxKAorICBjb2wxIGZsb2F0NCwgY29sMiBmbG9hdDgsIGNvbDMgbnVtZXJpYywgY29sNCBudW1l cmljW10sCisgIGNvbDUgaW50MiBkZWZhdWx0IDMyNzY3LAorICBjb2w2IGludDQgZGVmYXVsdCAz Mjc2OCwKKyAgY29sNyBpbnQ4IGRlZmF1bHQgNDI5NDk2NzI5Nik7CitJTlNFUlQgSU5UTyB0ZXN0 X3NhZmVjYXN0MSBWQUxVRVMoJzExLjEyMzQnLCAnMTEuMTIzNCcsICc5MjIzMzcyMDM2ODU0Nzc1 ODA4JywgJ3sxMS4xMjM0fSc6Om51bWVyaWNbXSk7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0 MSBWQUxVRVMoJ2luZicsICdpbmYnLCAnaW5mJywgJ3sxMS4xMjM0LCAxMiwgaW5mLCBOYU59Jzo6 bnVtZXJpY1tdKTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QxIFZBTFVFUygnLWluZicsICct aW5mJywgJy1pbmYnLCAnezExLjEyMzQsIDEyLCAtaW5mLCBOYU59Jzo6bnVtZXJpY1tdKTsKK0lO U0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QxIFZBTFVFUygnTmFOJywgJ05hTicsICdOYU4nLCAnezEx LjEyMzQsIDEyLCAtaW5mLCBOYU59Jzo6bnVtZXJpY1tdKTsKKworU0VMRUNUIGNvbDUgYXMgaW50 MiwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50NCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDUgQVMgb2lk IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FT VChjb2w1IGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2lu dDgsCisgICAgICAgQ0FTVChjb2w1IGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sNSBhcyBmbG9hdDggREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNv bDUgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVt ZXJpYywKKyAgICAgICBDQVNUKGNvbDUgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0 MTsKKworU0VMRUNUIGNvbDYgYXMgaW50NCwKKyAgICAgICBDQVNUKGNvbDYgQVMgaW50MiBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNv bDYgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwK KyAgICAgICBDQVNUKGNvbDYgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2w2IGFzIGludDggREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2w2IGFzIGZsb2F0NCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENB U1QoY29sNiBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDYgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDYgYXMgbnVtZXJp YygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19z Y2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKworU0VMRUNUIGNvbDcgYXMgaW50OCwKKyAgICAg ICBDQVNUKGNvbDcgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9faW50MiwKKyAgICAgICBDQVNUKGNvbDcgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDcgQVMgb2lkIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2w3IGFz IGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAg ICAgQ0FTVChjb2w3IGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sNyBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDcgYXMgbnVt ZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAg ICAgICBDQVNUKGNvbDcgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKworU0VM RUNUIGNvbDMgYXMgbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDMgQVMgaW50MiBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDMgQVMg aW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAg ICBDQVNUKGNvbDMgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19vaWQsCisgICAgICAgQ0FTVChjb2wzIGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2wzIGFzIGZsb2F0NCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29s MyBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0 OCwKKyAgICAgICBDQVNUKGNvbDMgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDMgYXMgbnVtZXJpYygxMCwx KSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQor RlJPTSB0ZXN0X3NhZmVjYXN0MTsKKworU0VMRUNUIGNvbDQgYXMgbnVtX2FyciwKKyAgICAgICBD QVNUKGNvbDQgQVMgaW50MltdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBp bnQyYXJyLAorICAgICAgIENBU1QoY29sNCBBUyBpbnQ0W10gREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIGludDRhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIGludDhbXSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgaW50OGFyciwKKyAgICAgICBDQVNUKGNv bDQgYXMgZmxvYXQ0W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGY0YXJy LAorICAgICAgIENBU1QoY29sNCBhcyBmbG9hdDhbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgZjhhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIG51bWVyaWMoMTAsMSlbXSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgbnVtYXJyCitGUk9NIHRlc3Rfc2Fm ZWNhc3QxOworCitTRUxFQ1QgY29sMSBhcyBmbG9hdDQsCisgICAgICAgQ0FTVChjb2wxIEFTIGlu dDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAg Q0FTVChjb2wxIEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2ludDQsCisgICAgICAgQ0FTVChjb2wxIEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sMSBhcyBpbnQ4IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sMSBhcyBm bG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAg ICAgICBDQVNUKGNvbDEgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wxIGFzIG51bWVyaWMgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2wxIGFz IG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251 bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisKK1NFTEVDVCBjb2wyIGFzIGZsb2F0 OCwKKyAgICAgICBDQVNUKGNvbDIgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDIgQVMgaW50NCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDIgQVMgb2lk IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FT VChjb2wyIGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2lu dDgsCisgICAgICAgQ0FTVChjb2wyIGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sMiBhcyBmbG9hdDggREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNv bDIgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVt ZXJpYywKKyAgICAgICBDQVNUKGNvbDIgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0 MTsKKworLS0gc2FmZSB0eXBlIGNhc3QgZm9yIHR5cGUgZGF0ZS90aW1lc3RhbXAvdGltZXN0YW1w dHovaW50ZXJ2YWwKK0NSRUFURSBUQUJMRSB0ZXN0X3NhZmVjYXN0MigKKyAgY29sMCBkYXRlLCBj b2wxIHRpbWVzdGFtcCwgY29sMiB0aW1lc3RhbXB0eiwKKyAgY29sMyBpbnRlcnZhbCwgY29sNCB0 aW1lLCBjb2w1IHRpbWV0eik7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0MiBWQUxVRVMKKygn LWluZmluaXR5JywgJy1pbmZpbml0eScsICctaW5maW5pdHknLCAnLWluZmluaXR5JywKKyAgJzIw MDMtMDMtMDcgMTU6MzY6MzkgQW1lcmljYS9OZXdfWW9yaycsICcyMDAzLTA3LTA3IDE1OjM2OjM5 IEFtZXJpY2EvTmV3X1lvcmsnKSwKKygnLWluZmluaXR5JywgJ2luZmluaXR5JywgJ2luZmluaXR5 JywgJ2luZmluaXR5JywgJzExOjU5OjU5Ljk5IFBNJywgJzExOjU5OjU5Ljk5IFBNIFBEVCcpOwor CitTRUxFQ1QgY29sMCBhcyBkYXRlLAorICAgICAgIENBU1QoY29sMCBBUyB0aW1lc3RhbXB0eiBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wdHosCisgICAg ICAgQ0FTVChjb2wwIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2RhdGUsCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sMCBBUyB0aW1ldHogREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNU KGNvbDAgQVMgdGltZXN0YW1wKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b190aW1lc3RhbXBfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisKK1NFTEVDVCBjb2wx IGFzIHRpbWVzdGFtcCwKKyAgICAgICBDQVNUKGNvbDEgQVMgdGltZXN0YW1wdHogREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1Qo Y29sMSBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRl LAorICAgICAgIENBU1QoY29sMSBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDEgQVMgdGltZXR6IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wxIEFT IHRpbWVzdGFtcCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGlt ZXN0YW1wX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworCitTRUxFQ1QgY29sMiBhcyB0aW1l c3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDIgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMiBB UyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAg ICAgIENBU1QoY29sMiBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDIgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWVz dGFtcCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1w X3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworCitTRUxFQ1QgY29sMyBhcyBpbnRlcnZhbCwK KyAgICAgICBDQVNUKGNvbDMgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMyBBUyBkYXRlIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAgIENBU1Qo Y29sMyBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1l cywKKyAgICAgICBDQVNUKGNvbDMgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWVzdGFtcCgyKSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3NjYWxlLAor ICAgICAgIENBU1QoY29sMyBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9faW50ZXJ2YWxfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisKK1NF TEVDVCBjb2w0IGFzIHRpbWUsCisgICAgICAgQ0FTVChjb2w0IEFTIHRpbWUoMikgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sNCBB UyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIElTIE5PVCBOVUxMIGFz IHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDQgQVMgaW50ZXJ2YWwoMikgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsLAorICAgICAgIENBU1QoY29sNCBB UyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50 ZXJ2YWxfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisKK1NFTEVDVCBjb2w1IGFzIHRpbWV0 eiwKKyAgICAgICBDQVNUKGNvbDUgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fdGltZSwKKyAgICAgICBDQVNUKGNvbDUgQVMgdGltZSgyKSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZV9zY2FsZSwKKyAgICAgICBDQVNUKGNv bDUgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1l dHosCisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWV0eig2KSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fdGltZXR6X3NjYWxlLAorICAgICAgIENBU1QoY29sNSBBUyBpbnRl cnZhbCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWwsCisg ICAgICAgQ0FTVChjb2w1IEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19pbnRlcnZhbF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKworQ1JF QVRFIFRBQkxFIHRlc3Rfc2FmZWNhc3QzKGNvbDAganNvbmIpOworSU5TRVJUIElOVE8gdGVzdF9z YWZlY2FzdDMoY29sMCkgVkFMVUVTICgnInRlc3QiJyk7CitTRUxFQ1QgY29sMCBhcyBqc29uYiwK KyAgICAgICBDQVNUKGNvbDAgQVMgaW50ZWdlciBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9faW50ZWdlciwKKyAgICAgICBDQVNUKGNvbDAgQVMgbnVtZXJpYyBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNv bDAgQVMgYmlnaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4 LAorICAgICAgIENBU1QoY29sMCBBUyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDAgQVMgZmxvYXQ4IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2ww IEFTIGJvb2xlYW4gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Jvb2ws CisgICAgICAgQ0FTVChjb2wwIEFTIHNtYWxsaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19zbWFsbGludAorRlJPTSB0ZXN0X3NhZmVjYXN0MzsKKworLS0gdGVzdCBk ZXBhcnNlCitTRVQgZGF0ZXN0eWxlIFRPIElTTywgWU1EOworQ1JFQVRFIFZJRVcgc2FmZWNhc3R2 aWV3IEFTCitTRUxFQ1QgQ0FTVCgnMTIzNCcgYXMgY2hhcigzKSBERUZBVUxUIC0xMTExIE9OIENP TlZFUlNJT04gRVJST1IpLAorICAgICAgIENBU1QoMSBhcyBkYXRlIERFRkFVTFQgKCgnMjAyNS1E ZWMtMDYnOjpkYXRlICsgcmFuZG9tKG1pbj0+MSwgbWF4PT4xOjppbnQpKSkgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgY2FzdDAsCisgICAgICAgQ0FTVChBUlJBWVtbJzEnXSwgWyd0aHJlZSddLFsn YSddXSBBUyBpbnRbXSBERUZBVUxUICd7MSwyfScgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2Fz dDEsCisgICAgICAgQ0FTVChBUlJBWVtbJzEnLCAnMiddLCBbJ3RocmVlJywgJ2EnXV0gQVMgZGF0 ZVtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MiwKKyAgICAgICBD QVNUKEFSUkFZWyd0aHJlZSddIEFTIElOVFtdIERFRkFVTFQgJ3sxLDJ9JyBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyBjYXN0MzsKK1xzdiBzYWZlY2FzdHZpZXcKK1NFTEVDVCAqIEZST00gc2FmZWNh c3R2aWV3OworCitDUkVBVEUgVklFVyBzYWZlY2FzdHZpZXcxIEFTCitTRUxFQ1QgQ0FTVChBUlJB WVtbJzEnXSwgWyd0aHJlZSddLFsnYSddXSBBUyBkX2ludF9hcnIKKyAgICAgICAgICAgIERFRkFV TFQgJ3s0MSw0M30nIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3QxLAorICAgICAgIENBU1Qo QVJSQVlbWycxJywgJzInLCAxLjFdLCBbJ3RocmVlJywgdHJ1ZSwgQicwMSddXSBBUyBkX2ludF9h cnIKKyAgICAgICAgICAgIERFRkFVTFQgJ3s0MSw0M30nIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IGNhc3QyOworXHN2IHNhZmVjYXN0dmlldzEKK1NFTEVDVCAqIEZST00gc2FmZWNhc3R2aWV3MTsK KworUkVTRVQgZGF0ZXN0eWxlOworCistLSB0ZXN0IENBU1QgREVGQVVMVCBleHByZXNzaW9uIG11 dGFiaWxpdHkKK0NSRUFURSBJTkRFWCBjYXN0X2Vycm9yX2lkeCBPTiB0ZXN0X3NhZmVjYXN0Mygo Q0FTVChjb2wwIGFzIGludCBERUZBVUxUIHJhbmRvbShtaW49PjEsIG1heD0+MSkgT04gQ09OVkVS U0lPTiBFUlJPUikpKTsgLS0gZXJyb3IKK0NSRUFURSBJTkRFWCBjYXN0X2Vycm9yX2lkeCBPTiB0 ZXN0X3NhZmVjYXN0MygoQ0FTVChjb2wwIGFzIHhpZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikpKTsgLS0gZXJyb3IKK0NSRUFURSBJTkRFWCBjYXN0X2Vycm9yX2lkeCBPTiB0ZXN0 X3NhZmVjYXN0MygoQ0FTVChjb2wwIGFzIGludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikpKTsgLS1vaworU0VMRUNUIHBnX2dldF9pbmRleGRlZignY2FzdF9lcnJvcl9pZHgnOjpy ZWdjbGFzcyk7CisKK0RST1AgVEFCTEUgdGVzdF9zYWZlY2FzdDsKK0RST1AgVEFCTEUgdGVzdF9z YWZlY2FzdDE7CitEUk9QIFRBQkxFIHRlc3Rfc2FmZWNhc3QyOworRFJPUCBUQUJMRSB0ZXN0X3Nh ZmVjYXN0MzsKK0RST1AgVEFCTEUgdGNhc3Q7CitEUk9QIEZVTkNUSU9OIHJldF9pbnQ4OworRFJP UCBGVU5DVElPTiByZXRfc2V0aW50OworRFJPUCBUWVBFIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9k OworRFJPUCBUWVBFIGNvbXAyOworRFJPUCBET01BSU4gZF92YXJjaGFyOworRFJPUCBET01BSU4g ZF9pbnQ0MjsKK0RST1AgRE9NQUlOIGRfY2hhcjNfbm90X251bGw7CitSRVNFVCBleHRyYV9mbG9h dF9kaWdpdHM7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwKaW5kZXggMzIxODc4NTNj YzcuLjBhMTVhNzk1ZDg3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVf Y2FzdC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsCkBAIC02 Miw2ICs2Miw3IEBAICQkIFNFTEVDVCAoJ2Jhcic6OnRleHQgfHwgJDE6OnRleHQpOyAkJDsKIAog Q1JFQVRFIENBU1QgKGludDQgQVMgY2FzdHRlc3R0eXBlKSBXSVRIIEZVTkNUSU9OIGJhcl9pbnQ0 X3RleHQoaW50NCkgQVMgSU1QTElDSVQ7CiBTRUxFQ1QgMTIzNDo6aW50NDo6Y2FzdHRlc3R0eXBl OyAtLSBTaG91bGQgd29yayBub3cKK1NFTEVDVCBDQVNUKDEyMzQ6OmludDQgQVMgY2FzdHRlc3R0 eXBlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKIAogLS0gY2hl Y2sgZGVwZW5kZW5jaWVzIGdlbmVyYXRlZCBmb3IgdGhhdAogU0VMRUNUIHBnX2Rlc2NyaWJlX29i amVjdChjbGFzc2lkLCBvYmppZCwgb2Jqc3ViaWQpIGFzIG9iaiwKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2VxdWl2Y2xhc3Muc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZXF1 aXZjbGFzcy5zcWwKaW5kZXggN2ZjMjE1OTM0OWIuLjdhZGE0YmI1NTA0IDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9lcXVpdmNsYXNzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9lcXVpdmNsYXNzLnNxbApAQCAtOTgsNiArOTgsOSBAQCBjcmVhdGUgZnVuY3Rpb24gaW50 OGFsaWFzMWNtcChpbnQ4LCBpbnQ4YWxpYXMxKSByZXR1cm5zIGludAogYWx0ZXIgb3BlcmF0b3Ig ZmFtaWx5IGludGVnZXJfb3BzIHVzaW5nIGJ0cmVlIGFkZAogICBmdW5jdGlvbiAxIGludDhhbGlh czFjbXAgKGludDgsIGludDhhbGlhczEpOwogCistLSBpbnQ4YWxpYXMyIGJpbmFyeS1jb2VyY2li bGUgdG8gaW50OCwgdGhpcyBzaG91bGQgbm90IGZhaWwKK3NlbGVjdCBjYXN0KCcxJzo6aW50OCBh cyBpbnQ4YWxpYXMyIGRlZmF1bHQgbnVsbCBvbiBjb252ZXJzaW9uIGVycm9yKTsKKwogY3JlYXRl IHRhYmxlIGVjMCAoZmYgaW50OCBwcmltYXJ5IGtleSwgZjEgaW50OCwgZjIgaW50OCk7CiBjcmVh dGUgdGFibGUgZWMxIChmZiBpbnQ4IHByaW1hcnkga2V5LCBmMSBpbnQ4YWxpYXMxLCBmMiBpbnQ4 YWxpYXMyKTsKIGNyZWF0ZSB0YWJsZSBlYzIgKHhmIGludDggcHJpbWFyeSBrZXksIHgxIGludDhh bGlhczEsIHgyIGludDhhbGlhczIpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCAwZGU1 NTE4Mzc5My4uMzA3MDI3ZjEwOWQgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0yNzA1 LDYgKzI3MDUsOCBAQCBTVFJMRU4KIFNWCiBTWU5DSFJPTklaQVRJT05fQkFSUklFUgogU1lTVEVN X0lORk8KK1NhZmVUeXBlQ2FzdEV4cHIKK1NhZmVUeXBlQ2FzdFN0YXRlCiBTYW1wbGVTY2FuCiBT YW1wbGVTY2FuR2V0U2FtcGxlU2l6ZV9mdW5jdGlvbgogU2FtcGxlU2NhblN0YXRlCi0tIAoyLjM0 LjEKCg== --000000000000549053064ce1dba3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20-0023-error-safe-for-user-defined-CREATE-CAST.patch" Content-Disposition: attachment; filename="v20-0023-error-safe-for-user-defined-CREATE-CAST.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmoi9lxo0 RnJvbSAxOGUzZWFiMWE2Nzc3YTdmYzIyMGM3MWJiNTM4ZmNlOWQ2YWE5MjM5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgMTIgTWFyIDIwMjYgMTc6MTA6NDUgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MCAyMy8yM10gZXJyb3Igc2FmZSBmb3IgdXNlciBkZWZpbmVkIENSRUFURSBDQVNUCgpwZ19jYXN0 LmNhc3RlcnJvcnNhZmUgY29sdW1uIHRvIGluZGljYXRlIGNhc3RmdW5jIGlzIGVycm9yIHNhZmUg b3Igbm90LgpjaGFuZ2Ugc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdCB0byBpbmRpY2F0 ZSB0aGF0IG1vc3Qgb2YgdGhlIHN5c3RlbSBjYXN0CmZ1bmN0aW9uIHN1cHBvcnQgc29mdCBlcnJv ciBldmFsdWF0aW9uLgoKVGhlIFNBRkUga2V5d29yZCBpcyBpbnRyb2R1Y2VkIGZvciBhbGxvdyB1 c2VyLWRlZmluZWQgQ1JFQVRFIENBU1QgY2FuIGFsc28gYmUKZXZhbHVhdGVkIGluIHNvZnQtZXJy b3IuCgpUaGUgbmV3IHN5bm9wc2lzIG9mIENSRUFURSBDQVNUIGlzOgpDUkVBVEUgQ0FTVCAoc291 cmNlX3R5cGUgQVMgdGFyZ2V0X3R5cGUpCiAgICBXSVRIIFtTQUZFXSBGVU5DVElPTiBmdW5jdGlv bl9uYW1lIFsgKGFyZ3VtZW50X3R5cGUgWywgLi4uXSkgXQogICAgWyBBUyBBU1NJR05NRU5UIHwg QVMgSU1QTElDSVQgXQoKVGhlIGZvbGxvd2luZyBjYXN0IGluIGNpdGV4dCwgaHN0b3JlIGNvbnRy aWIgbW9kdWxlIHJlZmFjdG9yZWQgdG8gZXJyb3Igc2FmZToKQ0FTVCAoYnBjaGFyIEFTIGNpdGV4 dCkKQ0FTVCAoYm9vbGVhbiBBUyBjaXRleHQpCkNBU1QgKGluZXQgQVMgY2l0ZXh0KQpDQVNUICh0 ZXh0W10gQVMgaHN0b3JlKQpDQVNUIChoc3RvcmUgQVMganNvbikKQ0FTVCAoaHN0b3JlIEFTIGpz b25iKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1q Y3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KY29tbWl0ZmVz dDogaHR0cHM6Ly9jb21taXRmZXN0LnBvc3RncmVzcWwub3JnL3BhdGNoLzU5NDEKLS0tCiBjb250 cmliL2NpdGV4dC9jaXRleHQtLTEuNC5zcWwgICAgICAgICAgICB8ICAgNiArLQogY29udHJpYi9j aXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91dCAgICAgICAgfCAgMjQgKy0KIGNvbnRyaWIvY2l0ZXh0 L2V4cGVjdGVkL2NpdGV4dF8xLm91dCAgICAgIHwgIDI0ICstCiBjb250cmliL2NpdGV4dC9zcWwv Y2l0ZXh0LnNxbCAgICAgICAgICAgICB8ICAgNSArLQogY29udHJpYi9oc3RvcmUvZXhwZWN0ZWQv aHN0b3JlLm91dCAgICAgICAgfCAgMzcgKysrCiBjb250cmliL2hzdG9yZS9oc3RvcmUtLTEuMi0t MS4zLnNxbCAgICAgICB8ICAgMiArLQogY29udHJpYi9oc3RvcmUvaHN0b3JlLS0xLjQuc3FsICAg ICAgICAgICAgfCAgIDYgKy0KIGNvbnRyaWIvaHN0b3JlL2hzdG9yZV9pby5jICAgICAgICAgICAg ICAgIHwgICA4ICstCiBjb250cmliL2hzdG9yZS9zcWwvaHN0b3JlLnNxbCAgICAgICAgICAgICB8 ICAxMSArCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICB8ICAxNSAr CiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jYXN0LnNnbWwgICAgICAgICB8ICAxNCArLQogZG9j L3NyYy9zZ21sL3N5bnRheC5zZ21sICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIHNyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfY2FzdC5jICAgICAgICAgICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9j b21tYW5kcy9mdW5jdGlvbmNtZHMuYyAgICAgICB8ICAgOSArLQogc3JjL2JhY2tlbmQvY29tbWFu ZHMvdHlwZWNtZHMuYyAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eSAgICAgICAgICAgICAgICAgfCAgMTggKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHBy LmMgICAgICAgICAgIHwgIDEyICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuZGF0ICAg ICAgICAgICB8IDMzMCArKysrKysrKysrKy0tLS0tLS0tLS0tCiBzcmMvaW5jbHVkZS9jYXRhbG9n L3BnX2Nhc3QuaCAgICAgICAgICAgICB8ICAgNSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmggICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggICAg ICAgICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9jYXN0 Lm91dCB8ICAgOCArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dCAg fCAgMjQgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9jYXN0LnNxbCAgICAgIHwgICA1 ICsKIDI0IGZpbGVzIGNoYW5nZWQsIDM1NCBpbnNlcnRpb25zKCspLCAyMTkgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvY29udHJpYi9jaXRleHQvY2l0ZXh0LS0xLjQuc3FsIGIvY29udHJpYi9j aXRleHQvY2l0ZXh0LS0xLjQuc3FsCmluZGV4IDdiMDYxOTg5MzUyLi41Yzg3ODIwMzg4ZiAxMDA2 NDQKLS0tIGEvY29udHJpYi9jaXRleHQvY2l0ZXh0LS0xLjQuc3FsCisrKyBiL2NvbnRyaWIvY2l0 ZXh0L2NpdGV4dC0tMS40LnNxbApAQCAtODUsOSArODUsOSBAQCBDUkVBVEUgQ0FTVCAoY2l0ZXh0 IEFTIHZhcmNoYXIpIFdJVEhPVVQgRlVOQ1RJT04gQVMgSU1QTElDSVQ7CiBDUkVBVEUgQ0FTVCAo Y2l0ZXh0IEFTIGJwY2hhcikgIFdJVEhPVVQgRlVOQ1RJT04gQVMgQVNTSUdOTUVOVDsKIENSRUFU RSBDQVNUICh0ZXh0IEFTIGNpdGV4dCkgICAgV0lUSE9VVCBGVU5DVElPTiBBUyBBU1NJR05NRU5U OwogQ1JFQVRFIENBU1QgKHZhcmNoYXIgQVMgY2l0ZXh0KSBXSVRIT1VUIEZVTkNUSU9OIEFTIEFT U0lHTk1FTlQ7Ci1DUkVBVEUgQ0FTVCAoYnBjaGFyIEFTIGNpdGV4dCkgIFdJVEggRlVOQ1RJT04g Y2l0ZXh0KGJwY2hhcikgIEFTIEFTU0lHTk1FTlQ7Ci1DUkVBVEUgQ0FTVCAoYm9vbGVhbiBBUyBj aXRleHQpIFdJVEggRlVOQ1RJT04gY2l0ZXh0KGJvb2xlYW4pIEFTIEFTU0lHTk1FTlQ7Ci1DUkVB VEUgQ0FTVCAoaW5ldCBBUyBjaXRleHQpICAgIFdJVEggRlVOQ1RJT04gY2l0ZXh0KGluZXQpICAg IEFTIEFTU0lHTk1FTlQ7CitDUkVBVEUgQ0FTVCAoYnBjaGFyIEFTIGNpdGV4dCkgIFdJVEggU0FG RSBGVU5DVElPTiBjaXRleHQoYnBjaGFyKSAgQVMgQVNTSUdOTUVOVDsKK0NSRUFURSBDQVNUIChi b29sZWFuIEFTIGNpdGV4dCkgV0lUSCBTQUZFIEZVTkNUSU9OIGNpdGV4dChib29sZWFuKSBBUyBB U1NJR05NRU5UOworQ1JFQVRFIENBU1QgKGluZXQgQVMgY2l0ZXh0KSAgICBXSVRIIFNBRkUgRlVO Q1RJT04gY2l0ZXh0KGluZXQpICAgIEFTIEFTU0lHTk1FTlQ7CiAKIC0tCiAtLSBPcGVyYXRvciBG dW5jdGlvbnMuCmRpZmYgLS1naXQgYS9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHQub3V0 IGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91dAppbmRleCBlY2ZhZjJhYTg1YS4u YmUzMjg3MTU0OTIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dC5v dXQKKysrIGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91dApAQCAtMTAsMTEgKzEw LDEyIEBAIFdIRVJFIG9wYy5vaWQgPj0gMTYzODQgQU5EIE5PVCBhbXZhbGlkYXRlKG9wYy5vaWQp OwogLS0tLS0tLS0rLS0tLS0tLS0tCiAoMCByb3dzKQogCi1TRUxFQ1QgQ0FTVCgnYWJjJzo6YnBj aGFyIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9y Ci1FUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgY2hhcmFjdGVyIHRvIGNpdGV4dCB3aGVuIERFRkFV TFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJP UgotTElORSAxOiBTRUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNpdGV4dCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0kuLi4KLSAgICAgICAgICAgICAgICAgICAgXgotSElOVDogIFNhZmUgdHlw ZSBjYXN0IGZvciB1c2VyLWRlZmluZWQgdHlwZXMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkLgorU0VM RUNUIENBU1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOworIGNpdGV4dCAKKy0tLS0tLS0tCisgYWJjCisoMSByb3cpCisKIC0tIFRlc3Qg dGhlIG9wZXJhdG9ycyBhbmQgaW5kZXhpbmcgZnVuY3Rpb25zCiAtLSBUZXN0ID0gYW5kIDw+Lgog U0VMRUNUICdhJzo6Y2l0ZXh0ID0gJ2EnOjpjaXRleHQgQVMgdDsKQEAgLTUyMyw2ICs1MjQsMTIg QEAgU0VMRUNUIHRydWU6OmNpdGV4dCA9ICd0cnVlJyBBUyB0OwogIHQKICgxIHJvdykKIAorU0VM RUNUIENBU1QodHJ1ZSBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworIGNpdGV4dCAKKy0tLS0tLS0tCisgdHJ1ZQorKDEgcm93KQorCiBTRUxFQ1QgJ3RydWUnOjpj aXRleHQ6OmJvb2xlYW4gPSB0cnVlIEFTIHQ7CiAgdCAKIC0tLQpAQCAtNzg3LDYgKzc5NCwxMyBA QCBTRUxFQ1QgJzE5Mi4xNjguMTAwLjEyOCc6OmNpdGV4dDo6aW5ldCA9ICcxOTIuMTY4LjEwMC4x MjgnOjppbmV0IEFTIHQ7CiAgdAogKDEgcm93KQogCitTRUxFQ1QgQ0FTVChpbmV0ICcxOTIuMTY4 LjEwMC4xMjgnIEFTIGNpdGV4dAorICAgICAgICAgICBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgPSAnMTkyLjE2OC4xMDAuMTI4LzMyJyBBUyB0OworIHQgCistLS0KKyB0CisoMSBy b3cpCisKIFNFTEVDVCAnMDg6MDA6MmI6MDE6MDI6MDMnOjptYWNhZGRyOjpjaXRleHQgPSAnMDg6 MDA6MmI6MDE6MDI6MDMnIEFTIHQ7CiAgdCAKIC0tLQpkaWZmIC0tZ2l0IGEvY29udHJpYi9jaXRl eHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0IGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0 XzEub3V0CmluZGV4IDNlMTJjZDc5M2FkLi5lOWY4NDU0YzY2MiAxMDA2NDQKLS0tIGEvY29udHJp Yi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0CisrKyBiL2NvbnRyaWIvY2l0ZXh0L2V4cGVj dGVkL2NpdGV4dF8xLm91dApAQCAtMTAsMTEgKzEwLDEyIEBAIFdIRVJFIG9wYy5vaWQgPj0gMTYz ODQgQU5EIE5PVCBhbXZhbGlkYXRlKG9wYy5vaWQpOwogLS0tLS0tLS0rLS0tLS0tLS0tCiAoMCBy b3dzKQogCi1TRUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCi1FUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUg Y2hhcmFjdGVyIHRvIGNpdGV4dCB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQg aW4gQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgotTElORSAxOiBTRUxFQ1QgQ0FTVCgnYWJj Jzo6YnBjaGFyIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0kuLi4KLSAgICAgICAg ICAgICAgICAgICAgXgotSElOVDogIFNhZmUgdHlwZSBjYXN0IGZvciB1c2VyLWRlZmluZWQgdHlw ZXMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkLgorU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBBUyBj aXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGNpdGV4dCAKKy0tLS0t LS0tCisgYWJjCisoMSByb3cpCisKIC0tIFRlc3QgdGhlIG9wZXJhdG9ycyBhbmQgaW5kZXhpbmcg ZnVuY3Rpb25zCiAtLSBUZXN0ID0gYW5kIDw+LgogU0VMRUNUICdhJzo6Y2l0ZXh0ID0gJ2EnOjpj aXRleHQgQVMgdDsKQEAgLTUyMyw2ICs1MjQsMTIgQEAgU0VMRUNUIHRydWU6OmNpdGV4dCA9ICd0 cnVlJyBBUyB0OwogIHQKICgxIHJvdykKIAorU0VMRUNUIENBU1QodHJ1ZSBBUyBjaXRleHQgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGNpdGV4dCAKKy0tLS0tLS0tCisgdHJ1 ZQorKDEgcm93KQorCiBTRUxFQ1QgJ3RydWUnOjpjaXRleHQ6OmJvb2xlYW4gPSB0cnVlIEFTIHQ7 CiAgdCAKIC0tLQpAQCAtNzg3LDYgKzc5NCwxMyBAQCBTRUxFQ1QgJzE5Mi4xNjguMTAwLjEyOCc6 OmNpdGV4dDo6aW5ldCA9ICcxOTIuMTY4LjEwMC4xMjgnOjppbmV0IEFTIHQ7CiAgdAogKDEgcm93 KQogCitTRUxFQ1QgQ0FTVChpbmV0ICcxOTIuMTY4LjEwMC4xMjgnIEFTIGNpdGV4dAorICAgICAg ICAgICBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgPSAnMTkyLjE2OC4xMDAuMTI4 LzMyJyBBUyB0OworIHQgCistLS0KKyB0CisoMSByb3cpCisKIFNFTEVDVCAnMDg6MDA6MmI6MDE6 MDI6MDMnOjptYWNhZGRyOjpjaXRleHQgPSAnMDg6MDA6MmI6MDE6MDI6MDMnIEFTIHQ7CiAgdCAK IC0tLQpkaWZmIC0tZ2l0IGEvY29udHJpYi9jaXRleHQvc3FsL2NpdGV4dC5zcWwgYi9jb250cmli L2NpdGV4dC9zcWwvY2l0ZXh0LnNxbAppbmRleCBjODIwYjBiZDRkOS4uNjJmODNkNzQ5ZjkgMTAw NjQ0Ci0tLSBhL2NvbnRyaWIvY2l0ZXh0L3NxbC9jaXRleHQuc3FsCisrKyBiL2NvbnRyaWIvY2l0 ZXh0L3NxbC9jaXRleHQuc3FsCkBAIC05LDcgKzksNyBAQCBTRUxFQ1QgYW1uYW1lLCBvcGNuYW1l CiBGUk9NIHBnX29wY2xhc3Mgb3BjIExFRlQgSk9JTiBwZ19hbSBhbSBPTiBhbS5vaWQgPSBvcGNt ZXRob2QKIFdIRVJFIG9wYy5vaWQgPj0gMTYzODQgQU5EIE5PVCBhbXZhbGlkYXRlKG9wYy5vaWQp OwogCi1TRUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCitTRUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFT IGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CiAKIC0tIFRlc3QgdGhl IG9wZXJhdG9ycyBhbmQgaW5kZXhpbmcgZnVuY3Rpb25zCiAKQEAgLTE2NSw2ICsxNjUsNyBAQCBT RUxFQ1QgbmFtZSBGUk9NIHNydCBXSEVSRSBuYW1lIFNJTUlMQVIgVE8gJyVBLionOwogCiAtLSBF eHBsaWNpdCBjYXN0cy4KIFNFTEVDVCB0cnVlOjpjaXRleHQgPSAndHJ1ZScgQVMgdDsKK1NFTEVD VCBDQVNUKHRydWUgQVMgY2l0ZXh0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK IFNFTEVDVCAndHJ1ZSc6OmNpdGV4dDo6Ym9vbGVhbiA9IHRydWUgQVMgdDsKIAogU0VMRUNUIDQ6 OmNpdGV4dCA9ICc0JyBBUyB0OwpAQCAtMjI0LDYgKzIyNSw4IEBAIFNFTEVDVCAnMTkyLjE2OC4x MDAuMTI4LzI1Jzo6Y2l0ZXh0OjpjaWRyID0gJzE5Mi4xNjguMTAwLjEyOC8yNSc6OmNpZHIgQVMg dDsKIAogU0VMRUNUICcxOTIuMTY4LjEwMC4xMjgnOjppbmV0OjpjaXRleHQgPSAnMTkyLjE2OC4x MDAuMTI4LzMyJyBBUyB0OwogU0VMRUNUICcxOTIuMTY4LjEwMC4xMjgnOjpjaXRleHQ6OmluZXQg PSAnMTkyLjE2OC4xMDAuMTI4Jzo6aW5ldCBBUyB0OworU0VMRUNUIENBU1QoaW5ldCAnMTkyLjE2 OC4xMDAuMTI4JyBBUyBjaXRleHQKKyAgICAgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpID0gJzE5Mi4xNjguMTAwLjEyOC8zMicgQVMgdDsKIAogU0VMRUNUICcwODowMDoy YjowMTowMjowMyc6Om1hY2FkZHI6OmNpdGV4dCA9ICcwODowMDoyYjowMTowMjowMycgQVMgdDsK IFNFTEVDVCAnMDg6MDA6MmI6MDE6MDI6MDMnOjpjaXRleHQ6Om1hY2FkZHIgPSAnMDg6MDA6MmI6 MDE6MDI6MDMnOjptYWNhZGRyIEFTIHQ7CmRpZmYgLS1naXQgYS9jb250cmliL2hzdG9yZS9leHBl Y3RlZC9oc3RvcmUub3V0IGIvY29udHJpYi9oc3RvcmUvZXhwZWN0ZWQvaHN0b3JlLm91dAppbmRl eCBhY2VhODgwNmJhNC4uMTkwODRmMzM3MWQgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvaHN0b3JlL2V4 cGVjdGVkL2hzdG9yZS5vdXQKKysrIGIvY29udHJpYi9oc3RvcmUvZXhwZWN0ZWQvaHN0b3JlLm91 dApAQCAtODQwLDEyICs4NDAsMjggQEAgc2VsZWN0ICd7fSc6OnRleHRbXTo6aHN0b3JlOwogCiBz ZWxlY3QgQVJSQVlbJ2EnLCdnJywnYicsJ2gnLCdhc2QnXTo6aHN0b3JlOwogRVJST1I6ICBhcnJh eSBtdXN0IGhhdmUgZXZlbiBudW1iZXIgb2YgZWxlbWVudHMKK3NlbGVjdCBDQVNUKEFSUkFZWydh JywnZycsJ2InLCdoJywnYXNkJ10gQVMgaHN0b3JlCisgICAgICAgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0tLQorIAorKDEgcm93KQorCiBzZWxlY3Qg QVJSQVlbJ2EnLCdnJywnYicsJ2gnLCdhc2QnLCdpJ106OmhzdG9yZTsKICAgICAgICAgICAgICBh cnJheSAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICJh Ij0+ImciLCAiYiI9PiJoIiwgImFzZCI9PiJpIgogKDEgcm93KQogCitzZWxlY3QgQVJSQVlbJ2En LCdnJywnYicsJ2gnLG51bGwsJ2knXTo6aHN0b3JlOworRVJST1I6ICBudWxsIHZhbHVlIG5vdCBh bGxvd2VkIGZvciBoc3RvcmUga2V5CitzZWxlY3QgQ0FTVChBUlJBWVsnYScsJ2cnLCdiJywnaCcs bnVsbCwnaSddIEFTIGhzdG9yZQorICAgICAgIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKKyBhcnJheSAKKy0tLS0tLS0KKyAKKygxIHJvdykKKwogc2VsZWN0IEFSUkFZW1snYScs J2cnXSxbJ2InLCdoJ10sWydhc2QnLCdpJ11dOjpoc3RvcmU7CiAgICAgICAgICAgICAgYXJyYXkg ICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTg1NCw2 ICs4NzAsMTMgQEAgc2VsZWN0IEFSUkFZW1snYScsJ2cnXSxbJ2InLCdoJ10sWydhc2QnLCdpJ11d Ojpoc3RvcmU7CiAKIHNlbGVjdCBBUlJBWVtbJ2EnLCdnJywnYiddLFsnaCcsJ2FzZCcsJ2knXV06 OmhzdG9yZTsKIEVSUk9SOiAgYXJyYXkgbXVzdCBoYXZlIHR3byBjb2x1bW5zCitzZWxlY3QgQ0FT VChBUlJBWVtbJ2EnLCdnJywnYiddLFsnaCcsJ2FzZCcsJ2knXV0gQVMgaHN0b3JlCisgICAgICAg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0tLQorIAor KDEgcm93KQorCiBzZWxlY3QgQVJSQVlbW1snYScsJ2cnXSxbJ2InLCdoJ10sWydhc2QnLCdpJ11d XTo6aHN0b3JlOwogRVJST1I6ICB3cm9uZyBudW1iZXIgb2YgYXJyYXkgc3Vic2NyaXB0cwogc2Vs ZWN0IGhzdG9yZSgne30nOjp0ZXh0W10pOwpAQCAtMTU1Miw2ICsxNTc1LDEzIEBAIHNlbGVjdCBj YXN0KCBoc3RvcmUgICciYSBrZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGwsIGQ9PiAxMjM0NSwg ZSA9PiAwMTIzNDUsIGY9CiAgeyJiIjogInQiLCAiYyI6IG51bGwsICJkIjogIjEyMzQ1IiwgImUi OiAiMDEyMzQ1IiwgImYiOiAiMS4yMzQiLCAiZyI6ICIyLjM0NWUrNCIsICJhIGtleSI6ICIxIn0K ICgxIHJvdykKIAorc2VsZWN0IGNhc3QoIGhzdG9yZSAgJyJhIGtleSIgPT4xLCBiID0+IHQsIGMg PT4gbnVsbCwgZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQn IGFzIGpzb24KKyAgICAgICAgICAgIGRlZmF1bHQgbnVsbCBvbiBjb252ZXJzaW9uIGVycm9yKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqc29uICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7ImIiOiAidCIsICJjIjogbnVsbCwgImQiOiAi MTIzNDUiLCAiZSI6ICIwMTIzNDUiLCAiZiI6ICIxLjIzNCIsICJnIjogIjIuMzQ1ZSs0IiwgImEg a2V5IjogIjEifQorKDEgcm93KQorCiBzZWxlY3QgaHN0b3JlX3RvX2pzb25fbG9vc2UoJyJhIGtl eSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEu MjM0LCBnPT4gMi4zNDVlKzQsIGg9PiAiMjAxNi0wMS0wMSInKTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaHN0b3JlX3RvX2pzb25fbG9vc2UgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE1NzAsNiArMTYwMCwxMyBAQCBz ZWxlY3QgY2FzdCggaHN0b3JlICAnImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBkPT4g MTIzNDUsIGUgPT4gMDEyMzQ1LCBmPQogIHsiYiI6ICJ0IiwgImMiOiBudWxsLCAiZCI6ICIxMjM0 NSIsICJlIjogIjAxMjM0NSIsICJmIjogIjEuMjM0IiwgImciOiAiMi4zNDVlKzQiLCAiYSBrZXki OiAiMSJ9CiAoMSByb3cpCiAKK3NlbGVjdCBjYXN0KCBoc3RvcmUgICciYSBrZXkiID0+MSwgYiA9 PiB0LCBjID0+IG51bGwsIGQ9PiAxMjM0NSwgZSA9PiAwMTIzNDUsIGY9PiAxLjIzNCwgZz0+IDIu MzQ1ZSs0JyBhcyBqc29uYgorICAgICAgICAgICAgZGVmYXVsdCBudWxsIG9uIGNvbnZlcnNpb24g ZXJyb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpz b25iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsiYiI6ICJ0IiwgImMiOiBudWxs LCAiZCI6ICIxMjM0NSIsICJlIjogIjAxMjM0NSIsICJmIjogIjEuMjM0IiwgImciOiAiMi4zNDVl KzQiLCAiYSBrZXkiOiAiMSJ9CisoMSByb3cpCisKIHNlbGVjdCBoc3RvcmVfdG9fanNvbmJfbG9v c2UoJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEyMzQ1LCBlID0+IDAxMjM0 NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQsIGg9PiAiMjAxNi0wMS0wMSInKTsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhzdG9yZV90b19qc29uYl9sb29zZSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL2NvbnRyaWIv aHN0b3JlL2hzdG9yZS0tMS4yLS0xLjMuc3FsIGIvY29udHJpYi9oc3RvcmUvaHN0b3JlLS0xLjIt LTEuMy5zcWwKaW5kZXggMGE3MDU2MDE1YjcuLmNiYjFhMTM5ZTY5IDEwMDY0NAotLS0gYS9jb250 cmliL2hzdG9yZS9oc3RvcmUtLTEuMi0tMS4zLnNxbAorKysgYi9jb250cmliL2hzdG9yZS9oc3Rv cmUtLTEuMi0tMS4zLnNxbApAQCAtOSw3ICs5LDcgQEAgQVMgJ01PRFVMRV9QQVRITkFNRScsICdo c3RvcmVfdG9fanNvbmInCiBMQU5HVUFHRSBDIElNTVVUQUJMRSBTVFJJQ1Q7CiAKIENSRUFURSBD QVNUIChoc3RvcmUgQVMganNvbmIpCi0gIFdJVEggRlVOQ1RJT04gaHN0b3JlX3RvX2pzb25iKGhz dG9yZSk7CisgIFdJVEggU0FGRSBGVU5DVElPTiBoc3RvcmVfdG9fanNvbmIoaHN0b3JlKTsKIAog Q1JFQVRFIEZVTkNUSU9OIGhzdG9yZV90b19qc29uYl9sb29zZShoc3RvcmUpCiBSRVRVUk5TIGpz b25iCmRpZmYgLS1naXQgYS9jb250cmliL2hzdG9yZS9oc3RvcmUtLTEuNC5zcWwgYi9jb250cmli L2hzdG9yZS9oc3RvcmUtLTEuNC5zcWwKaW5kZXggNDI5NGQxNGNlYjUuLjQ1MWMyZWQ4MTg3IDEw MDY0NAotLS0gYS9jb250cmliL2hzdG9yZS9oc3RvcmUtLTEuNC5zcWwKKysrIGIvY29udHJpYi9o c3RvcmUvaHN0b3JlLS0xLjQuc3FsCkBAIC0yMzIsNyArMjMyLDcgQEAgQVMgJ01PRFVMRV9QQVRI TkFNRScsICdoc3RvcmVfZnJvbV9hcnJheScKIExBTkdVQUdFIEMgSU1NVVRBQkxFIFNUUklDVCBQ QVJBTExFTCBTQUZFOwogCiBDUkVBVEUgQ0FTVCAodGV4dFtdIEFTIGhzdG9yZSkKLSAgV0lUSCBG VU5DVElPTiBoc3RvcmUodGV4dFtdKTsKKyAgV0lUSCBTQUZFIEZVTkNUSU9OIGhzdG9yZSh0ZXh0 W10pOwogCiBDUkVBVEUgRlVOQ1RJT04gaHN0b3JlX3RvX2pzb24oaHN0b3JlKQogUkVUVVJOUyBq c29uCkBAIC0yNDAsNyArMjQwLDcgQEAgQVMgJ01PRFVMRV9QQVRITkFNRScsICdoc3RvcmVfdG9f anNvbicKIExBTkdVQUdFIEMgSU1NVVRBQkxFIFNUUklDVCBQQVJBTExFTCBTQUZFOwogCiBDUkVB VEUgQ0FTVCAoaHN0b3JlIEFTIGpzb24pCi0gIFdJVEggRlVOQ1RJT04gaHN0b3JlX3RvX2pzb24o aHN0b3JlKTsKKyAgV0lUSCBTQUZFIEZVTkNUSU9OIGhzdG9yZV90b19qc29uKGhzdG9yZSk7CiAK IENSRUFURSBGVU5DVElPTiBoc3RvcmVfdG9fanNvbl9sb29zZShoc3RvcmUpCiBSRVRVUk5TIGpz b24KQEAgLTI1Myw3ICsyNTMsNyBAQCBBUyAnTU9EVUxFX1BBVEhOQU1FJywgJ2hzdG9yZV90b19q c29uYicKIExBTkdVQUdFIEMgSU1NVVRBQkxFIFNUUklDVCBQQVJBTExFTCBTQUZFOwogCiBDUkVB VEUgQ0FTVCAoaHN0b3JlIEFTIGpzb25iKQotICBXSVRIIEZVTkNUSU9OIGhzdG9yZV90b19qc29u Yihoc3RvcmUpOworICBXSVRIIFNBRkUgRlVOQ1RJT04gaHN0b3JlX3RvX2pzb25iKGhzdG9yZSk7 CiAKIENSRUFURSBGVU5DVElPTiBoc3RvcmVfdG9fanNvbmJfbG9vc2UoaHN0b3JlKQogUkVUVVJO UyBqc29uYgpkaWZmIC0tZ2l0IGEvY29udHJpYi9oc3RvcmUvaHN0b3JlX2lvLmMgYi9jb250cmli L2hzdG9yZS9oc3RvcmVfaW8uYwppbmRleCA5YjcyZWZiODY3NC4uNTlhNDViNTJhOWUgMTAwNjQ0 Ci0tLSBhL2NvbnRyaWIvaHN0b3JlL2hzdG9yZV9pby5jCisrKyBiL2NvbnRyaWIvaHN0b3JlL2hz dG9yZV9pby5jCkBAIC03MzksMjAgKzczOSwyMCBAQCBoc3RvcmVfZnJvbV9hcnJheShQR19GVU5D VElPTl9BUkdTKQogCiAJCWNhc2UgMToKIAkJCWlmICgoQVJSX0RJTVMoaW5fYXJyYXkpWzBdKSAl IDIpCi0JCQkJZXJlcG9ydChFUlJPUiwKKwkJCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERh dHVtKSAwLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9BUlJBWV9TVUJTQ1JJUFRfRVJST1IpLAog CQkJCQkJIGVycm1zZygiYXJyYXkgbXVzdCBoYXZlIGV2ZW4gbnVtYmVyIG9mIGVsZW1lbnRzIikp KTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgMjoKIAkJCWlmICgoQVJSX0RJTVMoaW5fYXJyYXkpWzFd KSAhPSAyKQotCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQs IChEYXR1bSkgMCwKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVfQVJSQVlfU1VCU0NSSVBUX0VSUk9S KSwKIAkJCQkJCSBlcnJtc2coImFycmF5IG11c3QgaGF2ZSB0d28gY29sdW1ucyIpKSk7CiAJCQli cmVhazsKIAogCQlkZWZhdWx0OgotCQkJZXJlcG9ydChFUlJPUiwKKwkJCQllcmV0dXJuKGZjaW5m by0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0FSUkFZX1NVQlND UklQVF9FUlJPUiksCiAJCQkJCSBlcnJtc2coIndyb25nIG51bWJlciBvZiBhcnJheSBzdWJzY3Jp cHRzIikpKTsKIAl9CkBAIC03NzMsNyArNzczLDcgQEAgaHN0b3JlX2Zyb21fYXJyYXkoUEdfRlVO Q1RJT05fQVJHUykKIAlmb3IgKGkgPSAwOyBpIDwgY291bnQ7ICsraSkKIAl7CiAJCWlmIChpbl9u dWxsc1tpICogMl0pCi0JCQllcmVwb3J0KEVSUk9SLAorCQkJZXJldHVybihmY2luZm8tPmNvbnRl eHQsIChEYXR1bSkgMCwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9OVUxMX1ZBTFVFX05PVF9BTExP V0VEKSwKIAkJCQkJIGVycm1zZygibnVsbCB2YWx1ZSBub3QgYWxsb3dlZCBmb3IgaHN0b3JlIGtl eSIpKSk7CiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvaHN0b3JlL3NxbC9oc3RvcmUuc3FsIGIvY29u dHJpYi9oc3RvcmUvc3FsL2hzdG9yZS5zcWwKaW5kZXggOGFlOTVlOGE1MTAuLmE4MDNlMTFlYzg0 IDEwMDY0NAotLS0gYS9jb250cmliL2hzdG9yZS9zcWwvaHN0b3JlLnNxbAorKysgYi9jb250cmli L2hzdG9yZS9zcWwvaHN0b3JlLnNxbApAQCAtMTkwLDkgKzE5MCwxNiBAQCBzZWxlY3QgcGdfY29s dW1uX3NpemUoc2xpY2UoaHN0b3JlICdhYT0+MSwgYj0+MiwgYz0+MycsIEFSUkFZWydjJywnYics J2FhJ10pKQogLS0gYXJyYXkgaW5wdXQKIHNlbGVjdCAne30nOjp0ZXh0W106OmhzdG9yZTsKIHNl bGVjdCBBUlJBWVsnYScsJ2cnLCdiJywnaCcsJ2FzZCddOjpoc3RvcmU7CitzZWxlY3QgQ0FTVChB UlJBWVsnYScsJ2cnLCdiJywnaCcsJ2FzZCddIEFTIGhzdG9yZQorICAgICAgIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKIHNlbGVjdCBBUlJBWVsnYScsJ2cnLCdiJywnaCcsJ2Fz ZCcsJ2knXTo6aHN0b3JlOworc2VsZWN0IEFSUkFZWydhJywnZycsJ2InLCdoJyxudWxsLCdpJ106 OmhzdG9yZTsKK3NlbGVjdCBDQVNUKEFSUkFZWydhJywnZycsJ2InLCdoJyxudWxsLCdpJ10gQVMg aHN0b3JlCisgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwogc2VsZWN0 IEFSUkFZW1snYScsJ2cnXSxbJ2InLCdoJ10sWydhc2QnLCdpJ11dOjpoc3RvcmU7CiBzZWxlY3Qg QVJSQVlbWydhJywnZycsJ2InXSxbJ2gnLCdhc2QnLCdpJ11dOjpoc3RvcmU7CitzZWxlY3QgQ0FT VChBUlJBWVtbJ2EnLCdnJywnYiddLFsnaCcsJ2FzZCcsJ2knXV0gQVMgaHN0b3JlCisgICAgICAg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwogc2VsZWN0IEFSUkFZW1tbJ2EnLCdn J10sWydiJywnaCddLFsnYXNkJywnaSddXV06OmhzdG9yZTsKIHNlbGVjdCBoc3RvcmUoJ3t9Jzo6 dGV4dFtdKTsKIHNlbGVjdCBoc3RvcmUoQVJSQVlbJ2EnLCdnJywnYicsJ2gnLCdhc2QnXSk7CkBA IC0zNjEsMTAgKzM2OCwxNCBAQCBzZWxlY3QgY291bnQoKikgZnJvbSB0ZXN0aHN0b3JlIHdoZXJl IGggPSAncG9zPT45OCwgbGluZT0+MzcxLCBub2RlPT5DQkEsIGluZGV4ZQogLS0ganNvbiBhbmQg anNvbmIKIHNlbGVjdCBoc3RvcmVfdG9fanNvbignImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9PiBu dWxsLCBkPT4gMTIzNDUsIGUgPT4gMDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAyLjM0NWUrNCcpOwog c2VsZWN0IGNhc3QoIGhzdG9yZSAgJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+ IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQnIGFzIGpzb24pOwor c2VsZWN0IGNhc3QoIGhzdG9yZSAgJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+ IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQnIGFzIGpzb24KKyAg ICAgICAgICAgIGRlZmF1bHQgbnVsbCBvbiBjb252ZXJzaW9uIGVycm9yKTsKIHNlbGVjdCBoc3Rv cmVfdG9fanNvbl9sb29zZSgnImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBkPT4gMTIz NDUsIGUgPT4gMDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAyLjM0NWUrNCwgaD0+ICIyMDE2LTAxLTAx IicpOwogCiBzZWxlY3QgaHN0b3JlX3RvX2pzb25iKCciYSBrZXkiID0+MSwgYiA9PiB0LCBjID0+ IG51bGwsIGQ9PiAxMjM0NSwgZSA9PiAwMTIzNDUsIGY9PiAxLjIzNCwgZz0+IDIuMzQ1ZSs0Jyk7 CiBzZWxlY3QgY2FzdCggaHN0b3JlICAnImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBk PT4gMTIzNDUsIGUgPT4gMDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAyLjM0NWUrNCcgYXMganNvbmIp Oworc2VsZWN0IGNhc3QoIGhzdG9yZSAgJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwg ZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQnIGFzIGpzb25i CisgICAgICAgICAgICBkZWZhdWx0IG51bGwgb24gY29udmVyc2lvbiBlcnJvcik7CiBzZWxlY3Qg aHN0b3JlX3RvX2pzb25iX2xvb3NlKCciYSBrZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGwsIGQ9 PiAxMjM0NSwgZSA9PiAwMTIzNDUsIGY9PiAxLjIzNCwgZz0+IDIuMzQ1ZSs0LCBoPT4gIjIwMTYt MDEtMDEiJyk7CiAKIGNyZWF0ZSB0YWJsZSB0ZXN0X2pzb25fYWdnIChmMSB0ZXh0LCBmMiBoc3Rv cmUpOwpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbAppbmRleCA2OTU4ODkzNzcxOS4uMzIyYjA1Mjk2YjQgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sCkBAIC0xODQ5LDYgKzE4NDksMjEgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+ Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAg ICAgICA8bGl0ZXJhbD5iPC9saXRlcmFsPiBtZWFucyB0aGF0IHRoZSB0eXBlcyBhcmUgYmluYXJ5 LWNvZXJjaWJsZSwgdGh1cyBubyBjb252ZXJzaW9uIGlzIHJlcXVpcmVkLgogICAgICAgPC9wYXJh PjwvZW50cnk+CiAgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD5jYXN0ZXJyb3JzYWZlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwv dHlwZT4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoaXMgZmxhZyBp bmRpY2F0ZXMgd2hldGhlciB0aGUgPHN0cnVjdGZpZWxkPmNhc3RmdW5jPC9zdHJ1Y3RmaWVsZD4g ZnVuY3Rpb24KKyAgICAgICAgaXMgZXJyb3Itc2FmZS4gSXQgaXMgbWVhbmluZ2Z1bCBvbmx5IHdo ZW4gPHN0cnVjdGZpZWxkPmNhc3RmdW5jPC9zdHJ1Y3RmaWVsZD4KKyAgICAgICAgaXMgbm90IHpl cm8uIFVzZXItZGVmaW5lZCBjYXN0cyBjYW4gc2V0IGl0CisgICAgICAgIHRvIDxsaXRlcmFsPnRy dWU8L2xpdGVyYWw+IHZpYSA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlY2FzdCI+Q1JFQVRFIENB U1Q8L2xpbms+LgorICAgICAgICBGb3IgZXJyb3Itc2FmZSB0eXBlIGNhc3QsIHNlZSA8eHJlZiBs aW5rZW5kPSJzcWwtc3ludGF4LXR5cGUtY2FzdHMtc2FmZSIvPi4KKyAgICAgICA8L3BhcmE+Cisg ICAgICA8L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4K ICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2Nhc3Quc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2Nhc3Quc2dtbAppbmRleCBiYWQ3NWJjMWRjZS4u ODg4ZDcxNDJlNDIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2Nhc3Quc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jYXN0LnNnbWwKQEAgLTIyLDcgKzIyLDcg QEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lz PgogQ1JFQVRFIENBU1QgKDxyZXBsYWNlYWJsZT5zb3VyY2VfdHlwZTwvcmVwbGFjZWFibGU+IEFT IDxyZXBsYWNlYWJsZT50YXJnZXRfdHlwZTwvcmVwbGFjZWFibGU+KQotICAgIFdJVEggRlVOQ1RJ T04gPHJlcGxhY2VhYmxlPmZ1bmN0aW9uX25hbWU8L3JlcGxhY2VhYmxlPiBbICg8cmVwbGFjZWFi bGU+YXJndW1lbnRfdHlwZTwvcmVwbGFjZWFibGU+IFssIC4uLl0pIF0KKyAgICBXSVRIIFtTQUZF XSBGVU5DVElPTiA8cmVwbGFjZWFibGU+ZnVuY3Rpb25fbmFtZTwvcmVwbGFjZWFibGU+IFsgKDxy ZXBsYWNlYWJsZT5hcmd1bWVudF90eXBlPC9yZXBsYWNlYWJsZT4gWywgLi4uXSkgXQogICAgIFsg QVMgQVNTSUdOTUVOVCB8IEFTIElNUExJQ0lUIF0KIAogQ1JFQVRFIENBU1QgKDxyZXBsYWNlYWJs ZT5zb3VyY2VfdHlwZTwvcmVwbGFjZWFibGU+IEFTIDxyZXBsYWNlYWJsZT50YXJnZXRfdHlwZTwv cmVwbGFjZWFibGU+KQpAQCAtMTk0LDYgKzE5NCwxOCBAQCBTRUxFQ1QgQ0FTVCAoIDIgQVMgbnVt ZXJpYyApICsgNC4wOwogICAgICA8L2xpc3RpdGVtPgogICAgIDwvdmFybGlzdGVudHJ5PgogCisg ICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+U0FGRTwvbGl0ZXJhbD48L3Rl cm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBmdW5jdGlvbiB1 c2VkIHRvIHBlcmZvcm0gdGhlIGNhc3Qgc3VwcG9ydCBzb2Z0LWVycm9yIGV2YWx1YXRpb24sCisg ICAgICAgQ3VycmVudGx5LCBvbmx5IGZ1bmN0aW9ucyB3cml0dGVuIGluIEMgb3IgdGhlIGludGVy bmFsIGxhbmd1YWdlIGFyZSBzdXBwb3J0ZWQuCisgICAgICAgQW4gYWx0ZXJuYXRlIGV4cHJlc3Np b24gY2FuIGJlIHNwZWNpZmllZCB0byBiZSBldmFsdWF0ZWQgaWYgdGhlIGNhc3QKKyAgICAgICBl cnJvciBvY2N1cnMuICBTZWUgPGxpbmsgbGlua2VuZD0ic3FsLXN5bnRheC10eXBlLWNhc3RzLXNh ZmUiPnNhZmUgdHlwZSBjYXN0PC9saW5rPi4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRl bT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgIDx0ZXJt PjxsaXRlcmFsPjxyZXBsYWNlYWJsZT5mdW5jdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT5bKDxyZXBs YWNlYWJsZT5hcmd1bWVudF90eXBlPC9yZXBsYWNlYWJsZT4gWywgLi4uXSldPC9saXRlcmFsPjwv dGVybT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sIGIvZG9jL3NyYy9z Z21sL3N5bnRheC5zZ21sCmluZGV4IDRhYmQ1ZTY3MWFlLi4wZDY2MzViYmViZCAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9zeW50YXguc2dt bApAQCAtMjE0Miw5ICsyMTQyLDggQEAgQ0FTVCAoIDxyZXBsYWNlYWJsZT5leHByZXNzaW9uPC9y ZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxlPnR5cGU8L3JlcGxhY2VhYmxlPgogICAgIElmIHRo ZSB0eXBlIGNhc3QgZmFpbHMsIGFuIGVycm9yIGlzIG5vdCByYWlzZWQuICBJbnN0ZWFkLCBldmFs dWF0aW9uIGZhbGxzCiAgICAgYmFjayB0byB0aGUgZGVmYXVsdCA8cmVwbGFjZWFibGU+ZXhwcmVz c2lvbjwvcmVwbGFjZWFibGU+IHNwZWNpZmllZCBpbiB0aGUKICAgICA8bGl0ZXJhbD5PTiBDT05W RVJTSU9OIEVSUk9SPC9saXRlcmFsPiBjbGF1c2UuCi0gICAgQXQgcHJlc2VudCwgdGhpcyBvbmx5 IHN1cHBvcnQgYnVpbHQtaW4gdHlwZSBjYXN0cywgc2VlIDx4cmVmIGxpbmtlbmQ9ImNhdGFsb2ct cGctY2FzdCIvPi4KICAgICBVc2VyLWRlZmluZWQgdHlwZSBjYXN0cyBjcmVhdGVkIHdpdGggPGxp bmsgbGlua2VuZD0ic3FsLWNyZWF0ZWNhc3QiPkNSRUFURSBDQVNUPC9saW5rPgotICAgIGFyZSBu b3Qgc3VwcG9ydGVkLgorICAgIGFyZSBzdXBwb3J0ZWQgdG9vLgogICA8L3BhcmE+CiAKICAgICA8 cGFyYT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY2FzdC5jIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ19jYXN0LmMKaW5kZXggNTExOWMyYWNkYTIuLjllZmY5NDFlYWJiIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nhc3QuYworKysgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX2Nhc3QuYwpAQCAtNDgsNyArNDgsOCBAQAogT2JqZWN0QWRkcmVzcwogQ2Fz dENyZWF0ZShPaWQgc291cmNldHlwZWlkLCBPaWQgdGFyZ2V0dHlwZWlkLAogCQkgICBPaWQgZnVu Y2lkLCBPaWQgaW5jYXN0aWQsIE9pZCBvdXRjYXN0aWQsCi0JCSAgIGNoYXIgY2FzdGNvbnRleHQs IGNoYXIgY2FzdG1ldGhvZCwgRGVwZW5kZW5jeVR5cGUgYmVoYXZpb3IpCisJCSAgIGNoYXIgY2Fz dGNvbnRleHQsIGNoYXIgY2FzdG1ldGhvZCwgYm9vbCBjYXN0ZXJyb3JzYWZlLAorCQkgICBEZXBl bmRlbmN5VHlwZSBiZWhhdmlvcikKIHsKIAlSZWxhdGlvbglyZWxhdGlvbjsKIAlIZWFwVHVwbGUJ dHVwbGU7CkBAIC04NCw2ICs4NSw3IEBAIENhc3RDcmVhdGUoT2lkIHNvdXJjZXR5cGVpZCwgT2lk IHRhcmdldHR5cGVpZCwKIAl2YWx1ZXNbQW51bV9wZ19jYXN0X2Nhc3RmdW5jIC0gMV0gPSBPYmpl Y3RJZEdldERhdHVtKGZ1bmNpZCk7CiAJdmFsdWVzW0FudW1fcGdfY2FzdF9jYXN0Y29udGV4dCAt IDFdID0gQ2hhckdldERhdHVtKGNhc3Rjb250ZXh0KTsKIAl2YWx1ZXNbQW51bV9wZ19jYXN0X2Nh c3RtZXRob2QgLSAxXSA9IENoYXJHZXREYXR1bShjYXN0bWV0aG9kKTsKKwl2YWx1ZXNbQW51bV9w Z19jYXN0X2Nhc3RlcnJvcnNhZmUgLSAxXSA9IEJvb2xHZXREYXR1bShjYXN0ZXJyb3JzYWZlKTsK IAogCXR1cGxlID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0RGVzY3IocmVsYXRpb24pLCB2 YWx1ZXMsIG51bGxzKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZnVuY3Rp b25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9mdW5jdGlvbmNtZHMuYwppbmRleCAyNDIz NzJiMWU2OC4uMDBkOWRjNzk3YzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Z1 bmN0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Z1bmN0aW9uY21kcy5jCkBA IC0xNjY4LDYgKzE2NjgsMTMgQEAgQ3JlYXRlQ2FzdChDcmVhdGVDYXN0U3RtdCAqc3RtdCkKIAkJ CQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKIAkJCQkJIGVy cm1zZygiY2FzdCBmdW5jdGlvbiBtdXN0IG5vdCByZXR1cm4gYSBzZXQiKSkpOwogCisJCWlmIChz dG10LT5zYWZlICYmCisJCQlwcm9jc3RydWN0LT5wcm9sYW5nICE9IElOVEVSTkFMbGFuZ3VhZ2VJ ZCAmJgorCQkJcHJvY3N0cnVjdC0+cHJvbGFuZyAhPSBDbGFuZ3VhZ2VJZCkKKwkJCWVyZXBvcnQo RVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJ CQllcnJtc2coInNhZmUgdHlwZSBjYXN0IGZ1bmN0aW9ucyBhcmUgb25seSBzdXBwb3J0ZWQgZm9y IEMgYW5kIGludGVybmFsIGxhbmd1YWdlcyIpKTsKKwogCQlSZWxlYXNlU3lzQ2FjaGUodHVwbGUp OwogCX0KIAllbHNlCkBAIC0xNzk2LDcgKzE4MDMsNyBAQCBDcmVhdGVDYXN0KENyZWF0ZUNhc3RT dG10ICpzdG10KQogCX0KIAogCW15c2VsZiA9IENhc3RDcmVhdGUoc291cmNldHlwZWlkLCB0YXJn ZXR0eXBlaWQsIGZ1bmNpZCwgaW5jYXN0aWQsIG91dGNhc3RpZCwKLQkJCQkJCWNhc3Rjb250ZXh0 LCBjYXN0bWV0aG9kLCBERVBFTkRFTkNZX05PUk1BTCk7CisJCQkJCQljYXN0Y29udGV4dCwgY2Fz dG1ldGhvZCwgc3RtdC0+c2FmZSwgREVQRU5ERU5DWV9OT1JNQUwpOwogCXJldHVybiBteXNlbGY7 CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCmluZGV4IDNkYWI2YmI1YTc5Li5iMzcxM2I4NTEz YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYworKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCkBAIC0xNzY1LDYgKzE3NjUsNyBAQCBEZWZpbmVS YW5nZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVJhbmdlU3RtdCAqc3RtdCkKIAkvKiBDcmVh dGUgY2FzdCBmcm9tIHRoZSByYW5nZSB0eXBlIHRvIGl0cyBtdWx0aXJhbmdlIHR5cGUgKi8KIAlD YXN0Q3JlYXRlKHR5cG9pZCwgbXVsdGlyYW5nZU9pZCwgY2FzdEZ1bmNPaWQsIEludmFsaWRPaWQs IEludmFsaWRPaWQsCiAJCQkgICBDT0VSQ0lPTl9DT0RFX0VYUExJQ0lULCBDT0VSQ0lPTl9NRVRI T0RfRlVOQ1RJT04sCisJCQkgICBmYWxzZSwKIAkJCSAgIERFUEVOREVOQ1lfSU5URVJOQUwpOwog CiAJcGZyZWUobXVsdGlyYW5nZUFycmF5TmFtZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA3NjEyYjg4NGFl My4uMDI0ZDcxOGJlYTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMzU3LDcgKzM1Nyw3IEBAIHN0YXRpYyBO b2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2Vz LCBOb2RlICpxdWVyeSk7CiAldHlwZSA8ZGVmZWx0Pglkcm9wX29wdGlvbgogJXR5cGUgPGJvb2xl YW4+CW9wdF9vcl9yZXBsYWNlIG9wdF9ubwogCQkJCW9wdF9ncmFudF9ncmFudF9vcHRpb24KLQkJ CQlvcHRfbm93YWl0IG9wdF9pZl9leGlzdHMgb3B0X3dpdGhfZGF0YQorCQkJCW9wdF9ub3dhaXQg b3B0X3NhZmUgb3B0X2lmX2V4aXN0cyBvcHRfd2l0aF9kYXRhCiAJCQkJb3B0X3RyYW5zYWN0aW9u X2NoYWluCiAldHlwZSA8bGlzdD4JZ3JhbnRfcm9sZV9vcHRfbGlzdAogJXR5cGUgPGRlZmVsdD4J Z3JhbnRfcm9sZV9vcHQKQEAgLTc4Miw3ICs3ODIsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vy c2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkp OwogCVJFU0VUIFJFU1BFQ1RfUCBSRVNUQVJUIFJFU1RSSUNUIFJFVFVSTiBSRVRVUk5JTkcgUkVU VVJOUyBSRVZPS0UgUklHSFQgUk9MRSBST0xMQkFDSyBST0xMVVAKIAlST1VUSU5FIFJPVVRJTkVT IFJPVyBST1dTIFJVTEUKIAotCVNBVkVQT0lOVCBTQ0FMQVIgU0NIRU1BIFNDSEVNQVMgU0NST0xM IFNFQVJDSCBTRUNPTkRfUCBTRUNVUklUWSBTRUxFQ1QKKwlTQUZFIFNBVkVQT0lOVCBTQ0FMQVIg U0NIRU1BIFNDSEVNQVMgU0NST0xMIFNFQVJDSCBTRUNPTkRfUCBTRUNVUklUWSBTRUxFQ1QKIAlT RVFVRU5DRSBTRVFVRU5DRVMKIAlTRVJJQUxJWkFCTEUgU0VSVkVSIFNFU1NJT04gU0VTU0lPTl9V U0VSIFNFVCBTRVRTIFNFVE9GIFNIQVJFIFNIT1cKIAlTSU1JTEFSIFNJTVBMRSBTS0lQIFNNQUxM SU5UIFNOQVBTSE9UIFNPTUUgU1BMSVQgU09VUkNFIFNRTF9QIFNUQUJMRSBTVEFOREFMT05FX1AK QEAgLTkzNjAsMTQgKzkzNjAsMTUgQEAgZG9zdG10X29wdF9pdGVtOgogICoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLwogCiBDcmVhdGVDYXN0U3RtdDogQ1JFQVRFIENBU1QgJygnIFR5cGVuYW1lIEFTIFR5 cGVuYW1lICcpJwotCQkJCQlXSVRIIEZVTkNUSU9OIGZ1bmN0aW9uX3dpdGhfYXJndHlwZXMgY2Fz dF9jb250ZXh0CisJCQkJCVdJVEggb3B0X3NhZmUgRlVOQ1RJT04gZnVuY3Rpb25fd2l0aF9hcmd0 eXBlcyBjYXN0X2NvbnRleHQKIAkJCQl7CiAJCQkJCUNyZWF0ZUNhc3RTdG10ICpuID0gbWFrZU5v ZGUoQ3JlYXRlQ2FzdFN0bXQpOwogCiAJCQkJCW4tPnNvdXJjZXR5cGUgPSAkNDsKIAkJCQkJbi0+ dGFyZ2V0dHlwZSA9ICQ2OwotCQkJCQluLT5mdW5jID0gJDEwOwotCQkJCQluLT5jb250ZXh0ID0g KENvZXJjaW9uQ29udGV4dCkgJDExOworCQkJCQluLT5zYWZlID0gJDk7CisJCQkJCW4tPmZ1bmMg PSAkMTE7CisJCQkJCW4tPmNvbnRleHQgPSAoQ29lcmNpb25Db250ZXh0KSAkMTI7CiAJCQkJCW4t Pmlub3V0ID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CkBAIC05Mzc4LDYg KzkzNzksNyBAQCBDcmVhdGVDYXN0U3RtdDogQ1JFQVRFIENBU1QgJygnIFR5cGVuYW1lIEFTIFR5 cGVuYW1lICcpJwogCiAJCQkJCW4tPnNvdXJjZXR5cGUgPSAkNDsKIAkJCQkJbi0+dGFyZ2V0dHlw ZSA9ICQ2OworCQkJCQluLT5zYWZlID0gZmFsc2U7CiAJCQkJCW4tPmZ1bmMgPSBOVUxMOwogCQkJ CQluLT5jb250ZXh0ID0gKENvZXJjaW9uQ29udGV4dCkgJDEwOwogCQkJCQluLT5pbm91dCA9IGZh bHNlOwpAQCAtOTM5MCw2ICs5MzkyLDcgQEAgQ3JlYXRlQ2FzdFN0bXQ6IENSRUFURSBDQVNUICco JyBUeXBlbmFtZSBBUyBUeXBlbmFtZSAnKScKIAogCQkJCQluLT5zb3VyY2V0eXBlID0gJDQ7CiAJ CQkJCW4tPnRhcmdldHR5cGUgPSAkNjsKKwkJCQkJbi0+c2FmZSA9IGZhbHNlOwogCQkJCQluLT5m dW5jID0gTlVMTDsKIAkJCQkJbi0+Y29udGV4dCA9IChDb2VyY2lvbkNvbnRleHQpICQxMDsKIAkJ CQkJbi0+aW5vdXQgPSB0cnVlOwpAQCAtOTQwMiw2ICs5NDA1LDkgQEAgY2FzdF9jb250ZXh0OiAg QVMgSU1QTElDSVRfUAkJCQkJeyAkJCA9IENPRVJDSU9OX0lNUExJQ0lUOyB9CiAJCXwgLypFTVBU WSovCQkJCQkJCQl7ICQkID0gQ09FUkNJT05fRVhQTElDSVQ7IH0KIAkJOwogCitvcHRfc2FmZTog U0FGRQkJCQkJCXsgJCQgPSB0cnVlOyB9CisJCXwgLypFTVBUWSovCQkJCQl7ICQkID0gZmFsc2U7 IH0KKwkJOwogCiBEcm9wQ2FzdFN0bXQ6IERST1AgQ0FTVCBvcHRfaWZfZXhpc3RzICcoJyBUeXBl bmFtZSBBUyBUeXBlbmFtZSAnKScgb3B0X2Ryb3BfYmVoYXZpb3IKIAkJCQl7CkBAIC0xODI3NCw2 ICsxODI4MCw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgUk9VVElORVMKIAkJCXwgUk9X UwogCQkJfCBSVUxFCisJCQl8IFNBRkUKIAkJCXwgU0FWRVBPSU5UCiAJCQl8IFNDQUxBUgogCQkJ fCBTQ0hFTUEKQEAgLTE4OTEzLDYgKzE4OTIwLDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJ fCBST1cKIAkJCXwgUk9XUwogCQkJfCBSVUxFCisJCQl8IFNBRkUKIAkJCXwgU0FWRVBPSU5UCiAJ CQl8IFNDQUxBUgogCQkJfCBTQ0hFTUEKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IDk5N2Nj ODc2NDlkLi5kZTAyZjFmYmM2MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC0yOTk0LDcg KzI5OTQsNiBAQCBDb2VyY2lvbkVycm9yU2FmZUNoZWNrKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9k ZSAqY2FzdGV4cHIsIE5vZGUgKnNvdXJjZSwKIAkJCQkJICAgT2lkIGlucHV0VHlwZSwgT2lkIHRh cmdldFR5cGUpCiB7CiAJYm9vbAkJZXJyb3JzYWZlX2NvZXJjaW9uID0gdHJ1ZTsKLQlib29sCQl1 c2VyZGVmaW5lZCA9IGZhbHNlOwogCU9pZAkJCWlucHV0QmFzZVR5cGU7CiAJT2lkCQkJdGFyZ2V0 QmFzZVR5cGU7CiAJT2lkCQkJaW5wdXRFbGVtZW50VHlwZTsKQEAgLTMwNjUsMTEgKzMwNjQsOCBA QCBDb2VyY2lvbkVycm9yU2FmZUNoZWNrKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqY2FzdGV4 cHIsIE5vZGUgKnNvdXJjZSwKIAkJewogCQkJRm9ybV9wZ19jYXN0IGNhc3RGb3JtID0gKEZvcm1f cGdfY2FzdCkgR0VUU1RSVUNUKHR1cGxlKTsKIAotCQkJaWYgKGNhc3RGb3JtLT5vaWQgPiBGaXJz dFVucGlubmVkT2JqZWN0SWQpCi0JCQl7Ci0JCQkJZXJyb3JzYWZlX2NvZXJjaW9uID0gZmFsc2U7 Ci0JCQkJdXNlcmRlZmluZWQgPSB0cnVlOwotCQkJfQorCQkJaWYgKE9pZElzVmFsaWQoY2FzdEZv cm0tPmNhc3RmdW5jKSkKKwkJCQllcnJvcnNhZmVfY29lcmNpb24gPSBjYXN0Rm9ybS0+Y2FzdGVy cm9yc2FmZTsKIAogCQkJUmVsZWFzZVN5c0NhY2hlKHR1cGxlKTsKIAkJfQpAQCAtMzA4Myw5ICsz MDc5LDcgQEAgQ29lcmNpb25FcnJvclNhZmVDaGVjayhQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUg KmNhc3RleHByLCBOb2RlICpzb3VyY2UsCiAJCQkJCSAgIGZvcm1hdF90eXBlX2JlKHRhcmdldFR5 cGUpLAogCQkJCQkgICAiREVGQVVMVCIsCiAJCQkJCSAgICJDQVNUIC4uLiBPTiBDT05WRVJTSU9O IEVSUk9SIiksCi0JCQkJdXNlcmRlZmluZWQKLQkJCQk/IGVycmhpbnQoIlNhZmUgdHlwZSBjYXN0 IGZvciB1c2VyLWRlZmluZWQgdHlwZXMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkLiIpCi0JCQkJOiBl cnJoaW50KCJFeHBsaWNpdCBjYXN0IGlzIGRlZmluZWQgYnV0IGRlZmluaXRpb24gaXMgbm90IGVy cm9yIHNhZmUuIiksCisJCQkJZXJyaGludCgiRXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBk ZWZpbml0aW9uIGlzIG5vdCBlcnJvciBzYWZlLiIpLAogCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihw c3RhdGUsIGV4cHJMb2NhdGlvbihzb3VyY2UpKSk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuZGF0 CmluZGV4IDliMWNmYjFiNTkwLi5kM2I1ZjI3YjE1YyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19jYXN0LmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuZGF0 CkBAIC0xOSw2NSArMTksNjUgQEAKICMgaW50Mi0+aW50NC0+aW50OC0+bnVtZXJpYy0+ZmxvYXQ0 LT5mbG9hdDgsIHdoaWxlIGNhc3RzIGluIHRoZQogIyByZXZlcnNlIGRpcmVjdGlvbiBhcmUgYXNz aWdubWVudC1vbmx5LgogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAnaW50 MicsIGNhc3RmdW5jID0+ICdpbnQyKGludDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0 YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQ4KScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDQnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ0KGludDgp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0OCcsIGNhc3RmdW5j ID0+ICdmbG9hdDgoaW50OCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAn bnVtZXJpYycsIGNhc3RmdW5jID0+ICdudW1lcmljKGludDgpJywKLSAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50 MicsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChpbnQyKScsCi0gIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQo aW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAnZmxvYXQ0JywgY2Fz dGZ1bmMgPT4gJ2Zsb2F0NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0 ID0+ICdmbG9hdDgnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ4KGludDIpJywKLSAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn aW50MicsIGNhc3R0YXJnZXQgPT4gJ251bWVyaWMnLCBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhpbnQy KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMg PT4gJ2ludDgoaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnaW50 MicsIGNhc3RmdW5jID0+ICdpbnQyKGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0 YXJnZXQgPT4gJ2Zsb2F0NCcsIGNhc3RmdW5jID0+ICdmbG9hdDQoaW50NCknLAotICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnZmxvYXQ4JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0OChp bnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywgY2Fz dGZ1bmMgPT4gJ251bWVyaWMoaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdmbG9hdDQnLCBjYXN0dGFy Z2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgoZmxvYXQ0KScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2Zsb2F0NCcsIGNhc3R0YXJnZXQgPT4gJ2ludDInLCBjYXN0ZnVuYyA9PiAnaW50MihmbG9hdDQp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ0JywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5j ID0+ICdpbnQ0KGZsb2F0NCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdmbG9hdDQnLCBjYXN0dGFyZ2V0ID0+ ICdmbG9hdDgnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ4KGZsb2F0NCknLAotICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdm bG9hdDQnLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywKLSAgY2FzdGZ1bmMgPT4gJ251bWVyaWMo ZmxvYXQ0KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGZ1bmMgPT4gJ251bWVyaWMoZmxvYXQ0KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdmbG9h dDgnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgoZmxvYXQ4KScsCi0g IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ2Zsb2F0OCcsIGNhc3R0YXJnZXQgPT4gJ2ludDInLCBjYXN0ZnVuYyA9PiAn aW50MihmbG9hdDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ4JywgY2FzdHRhcmdldCA9PiAnaW50 NCcsIGNhc3RmdW5jID0+ICdpbnQ0KGZsb2F0OCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdmbG9hdDgnLCBj YXN0dGFyZ2V0ID0+ICdmbG9hdDQnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ0KGZsb2F0OCknLAotICBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICdmbG9hdDgnLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywKLSAgY2FzdGZ1bmMg PT4gJ251bWVyaWMoZmxvYXQ4KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ251bWVyaWMoZmxvYXQ4KScsIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdudW1lcmljJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4 KG51bWVyaWMpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJnZXQgPT4gJ2ludDIn LCBjYXN0ZnVuYyA9PiAnaW50MihudW1lcmljKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBj YXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQobnVtZXJpYyknLAotICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdudW1lcmljJywgY2FzdHRhcmdldCA9PiAnZmxvYXQ0JywKLSAgY2FzdGZ1bmMgPT4g J2Zsb2F0NChudW1lcmljKScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGZ1bmMgPT4gJ2Zsb2F0NChudW1lcmljKScsIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdudW1lcmljJywgY2FzdHRhcmdldCA9PiAnZmxvYXQ4JywKLSAgY2FzdGZ1bmMgPT4gJ2Zs b2F0OChudW1lcmljKScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGZ1bmMgPT4gJ2Zsb2F0OChudW1lcmljKScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdtb25leScsIGNhc3R0YXJnZXQgPT4gJ251bWVyaWMnLCBjYXN0ZnVuYyA9PiAnbnVtZXJpYyht b25leSknLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ICdtb25leScsIGNhc3RmdW5jID0+ ICdtb25leShudW1lcmljKScsCkBAIC04OSwxMyArODksMTMgQEAKIAogIyBBbGxvdyBleHBsaWNp dCBjb2VyY2lvbnMgYmV0d2VlbiBpbnQ0IGFuZCBib29sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQn LCBjYXN0dGFyZ2V0ID0+ICdib29sJywgY2FzdGZ1bmMgPT4gJ2Jvb2woaW50NCknLAotICBjYXN0 Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdl JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdib29sJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICdpbnQ0KGJv b2wpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIAogIyBBbGxvdyBleHBsaWNpdCBjb2VyY2lvbnMgYmV0d2VlbiB4aWQ4IGFuZCB4aWQKIHsg Y2FzdHNvdXJjZSA9PiAneGlkOCcsIGNhc3R0YXJnZXQgPT4gJ3hpZCcsIGNhc3RmdW5jID0+ICd4 aWQoeGlkOCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogCiAjIE9JRCBjYXRlZ29yeTogYWxsb3cgaW1wbGljaXQgY29udmVyc2lvbiBmcm9t IGFueSBpbnRlZ3JhbCB0eXBlIChpbmNsdWRpbmcKICMgaW50OCwgdG8gc3VwcG9ydCBPSUQgbGl0 ZXJhbHMgPiAyRykgdG8gT0lELCBhcyB3ZWxsIGFzIGFzc2lnbm1lbnQgY29lcmNpb24KQEAgLTEw NiwxMyArMTA2LDEzIEBACiAjIGNhc3RzIGZyb20gdGV4dCBhbmQgdmFyY2hhciB0byByZWdjbGFz cywgd2hpY2ggZXhpc3QgbWFpbmx5IHRvIHN1cHBvcnQKICMgbGVnYWN5IGZvcm1zIG9mIG5leHR2 YWwoKSBhbmQgcmVsYXRlZCBmdW5jdGlvbnMuCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0 dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50Mics IGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdv aWQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAg IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnb2lkJywgY2FzdHRhcmdldCA9PiAncmVncHJvYycsIGNhc3RmdW5jID0+ICcwJywKQEAgLTEy MCwxMyArMTIwLDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3Byb2MnLCBjYXN0dGFyZ2V0ID0+ ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3By b2MnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQg PT4gJ3JlZ3Byb2MnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2lu dDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9jJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3By b2MnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ3JlZ3Byb2MnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAn LAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ3JlZ3Byb2MnLCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0ZnVuYyA9 PiAnMCcsCkBAIC0xMzgsMTMgKzEzOCwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWdwcm9jZWR1 cmUnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNh c3R0YXJnZXQgPT4gJ3JlZ3Byb2NlZHVyZScsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVncHJvY2VkdXJlJywgY2FzdGZ1bmMgPT4gJ2lu dDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVncHJvY2Vk dXJlJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3Byb2NlZHVyZScsIGNhc3R0YXJnZXQgPT4g J2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVncHJvY2Vk dXJlJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBj YXN0dGFyZ2V0ID0+ICdyZWdvcGVyJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMTUyLDEzICsxNTIs MTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVnb3BlcicsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNh c3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9 LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVnb3BlcicsIGNhc3Rm dW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVnb3Bl cicsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0 YXJnZXQgPT4gJ3JlZ29wZXInLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnb3BlcicsIGNhc3R0 YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn cmVnb3BlcicsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVn b3BlcicsIGNhc3R0YXJnZXQgPT4gJ3JlZ29wZXJhdG9yJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAt MTcwLDEzICsxNzAsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVnb3BlcmF0b3InLCBjYXN0dGFy Z2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4g J3JlZ29wZXJhdG9yJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBj YXN0dGFyZ2V0ID0+ICdyZWdvcGVyYXRvcicsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ29wZXJhdG9yJywgY2FzdGZ1bmMg PT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ3JlZ29wZXJhdG9yJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5j ID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVyYXRvcicsIGNhc3R0YXJnZXQg PT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAncmVn Y2xhc3MnLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0xODQsMTMgKzE4NCwxMyBAQAogeyBjYXN0c291 cmNlID0+ICdyZWdjbGFzcycsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywK ICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNl ID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVnY2xhc3MnLCBjYXN0ZnVuYyA9PiAnb2lkJywK LSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NsYXNzJywgY2FzdGZ1bmMg PT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVn Y2xhc3MnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnY2xhc3MnLCBjYXN0dGFyZ2V0ID0+ICdp bnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NsYXNzJywg Y2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFy Z2V0ID0+ICdyZWdjb2xsYXRpb24nLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0xOTgsMTMgKzE5OCwx MyBAQAogeyBjYXN0c291cmNlID0+ICdyZWdjb2xsYXRpb24nLCBjYXN0dGFyZ2V0ID0+ICdvaWQn LCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn YicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NvbGxhdGlv bicsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9 PiAncmVnY29sbGF0aW9uJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVnY29sbGF0aW9uJywgY2FzdGZ1bmMgPT4gJzAnLAog ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ3JlZ2NvbGxhdGlvbicsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50 OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnY29sbGF0aW9uJywgY2FzdHRhcmdldCA9PiAnaW50 NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWd0eXBlJywg Y2FzdGZ1bmMgPT4gJzAnLApAQCAtMjEyLDEzICsyMTIsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAn cmVndHlwZScsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4 JywgY2FzdHRhcmdldCA9PiAncmVndHlwZScsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVndHlwZScsIGNhc3RmdW5jID0+ICdpbnQ0KGlu dDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3R5cGUnLCBjYXN0 ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwK IHsgY2FzdHNvdXJjZSA9PiAncmVndHlwZScsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVu YyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVndHlwZScsIGNhc3R0YXJnZXQgPT4g J2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAncmVnY29u ZmlnJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMjI2LDEzICsyMjYsMTMgQEAKIHsgY2FzdHNvdXJj ZSA9PiAncmVnY29uZmlnJywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAog ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb25maWcnLCBjYXN0ZnVuYyA9PiAnb2lkJywK LSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NvbmZpZycsIGNhc3RmdW5j ID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3Jl Z2NvbmZpZycsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdjb25maWcnLCBjYXN0dGFyZ2V0ID0+ ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NvbmZp ZycsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2Fz dHRhcmdldCA9PiAncmVnZGljdGlvbmFyeScsIGNhc3RmdW5jID0+ICcwJywKQEAgLTI0MCwzMSAr MjQwLDMxIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2RpY3Rpb25hcnknLCBjYXN0dGFyZ2V0ID0+ ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2Rp Y3Rpb25hcnknLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0 YXJnZXQgPT4gJ3JlZ2RpY3Rpb25hcnknLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdkaWN0aW9uYXJ5JywgY2FzdGZ1bmMg PT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ3JlZ2RpY3Rpb25hcnknLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1 bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2RpY3Rpb25hcnknLCBjYXN0dGFy Z2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RleHQnLCBjYXN0dGFyZ2V0ID0+ ICdyZWdjbGFzcycsIGNhc3RmdW5jID0+ICdyZWdjbGFzcycsCi0gIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3ZhcmNo YXInLCBjYXN0dGFyZ2V0ID0+ICdyZWdjbGFzcycsIGNhc3RmdW5jID0+ICdyZWdjbGFzcycsCi0g IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3JvbGUnLCBjYXN0ZnVuYyA9PiAn MCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNv dXJjZSA9PiAncmVncm9sZScsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywK ICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNl ID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVncm9sZScsIGNhc3RmdW5jID0+ICdvaWQnLAot ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVncm9sZScsIGNhc3RmdW5jID0+ ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3Jv bGUnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVncm9sZScsIGNhc3R0YXJnZXQgPT4gJ2ludDgn LCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVncm9sZScsIGNhc3R0 YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9 PiAncmVnbmFtZXNwYWNlJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMjcyLDEzICsyNzIsMTMgQEAK IHsgY2FzdHNvdXJjZSA9PiAncmVnbmFtZXNwYWNlJywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2Fz dGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWduYW1lc3BhY2UnLCBj YXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3Jl Z25hbWVzcGFjZScsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50 NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3RmdW5jID0+ICcwJywKICAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdy ZWduYW1lc3BhY2UnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lk KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBj YXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicg fSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAncmVnZGF0YWJhc2UnLCBj YXN0ZnVuYyA9PiAnMCcsCkBAIC0yODYsMTMgKzI4NiwxMyBAQAogeyBjYXN0c291cmNlID0+ICdy ZWdkYXRhYmFzZScsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQ4JywgY2FzdHRhcmdldCA9PiAncmVnZGF0YWJhc2UnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ2RhdGFiYXNlJywgY2FzdGZ1bmMg PT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVn ZGF0YWJhc2UnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnZGF0YWJhc2UnLCBjYXN0dGFyZ2V0 ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2Rh dGFiYXNlJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogCkBAIC0zMTYsNTcgKzMxNiw1NyBA QAogeyBjYXN0c291cmNlID0+ICd0ZXh0JywgY2FzdHRhcmdldCA9PiAndmFyY2hhcicsIGNhc3Rm dW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAog eyBjYXN0c291cmNlID0+ICdicGNoYXInLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMg PT4gJ3RleHQoYnBjaGFyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JwY2hhcicsIGNhc3R0YXJnZXQgPT4g J3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChicGNoYXIpJywKLSAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFy Y2hhcicsIGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyY2hh cicsIGNhc3R0YXJnZXQgPT4gJ2JwY2hhcicsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdjaGFyJywg Y2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICd0ZXh0KGNoYXIpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnY2hhcicsIGNhc3R0YXJnZXQgPT4gJ2JwY2hhcicsIGNhc3RmdW5jID0+ICdicGNoYXIo Y2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdjaGFyJywgY2FzdHRhcmdldCA9PiAndmFyY2hhcicsIGNh c3RmdW5jID0+ICd0ZXh0KGNoYXIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbmFtZScsIGNhc3R0YXJnZXQg PT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAndGV4dChuYW1lKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ25hbWUn LCBjYXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAnYnBjaGFyKG5hbWUpJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnbmFtZScsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAn dmFyY2hhcihuYW1lKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RleHQnLCBjYXN0dGFyZ2V0ID0+ICdjaGFy JywgY2FzdGZ1bmMgPT4gJ2NoYXIodGV4dCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdicGNoYXInLCBjYXN0 dGFyZ2V0ID0+ICdjaGFyJywgY2FzdGZ1bmMgPT4gJ2NoYXIodGV4dCknLAotICBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAnY2hhcicsIGNhc3RmdW5jID0+ICdjaGFyKHRleHQp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAndGV4dCcsIGNhc3R0YXJnZXQgPT4gJ25hbWUnLCBjYXN0ZnVuYyA9 PiAnbmFtZSh0ZXh0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JwY2hhcicsIGNhc3R0YXJnZXQgPT4gJ25h bWUnLCBjYXN0ZnVuYyA9PiAnbmFtZShicGNoYXIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyY2hhcics IGNhc3R0YXJnZXQgPT4gJ25hbWUnLCBjYXN0ZnVuYyA9PiAnbmFtZSh2YXJjaGFyKScsCi0gIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgQWxs b3cgZXhwbGljaXQgY29lcmNpb25zIGJldHdlZW4gYnl0ZWEgYW5kIGludGVnZXIgdHlwZXMKIHsg Y2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ2J5dGVhJywgY2FzdGZ1bmMgPT4g J2J5dGVhKGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ2J5dGVh JywgY2FzdGZ1bmMgPT4gJ2J5dGVhKGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0 YXJnZXQgPT4gJ2J5dGVhJywgY2FzdGZ1bmMgPT4gJ2J5dGVhKGludDgpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnYnl0ZWEnLCBjYXN0dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIoYnl0ZWEp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnYnl0ZWEnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMg PT4gJ2ludDQoYnl0ZWEpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYnl0ZWEnLCBjYXN0dGFyZ2V0ID0+ICdp bnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgoYnl0ZWEpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBBbGxvdyBleHBsaWNpdCBjb2VyY2lv bnMgYmV0d2VlbiBpbnQ0IGFuZCAiY2hhciIKIHsgY2FzdHNvdXJjZSA9PiAnY2hhcicsIGNhc3R0 YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChjaGFyKScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdjaGFyJywgY2FzdGZ1bmMgPT4gJ2NoYXIoaW50NCknLAot ICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAj IHBnX25vZGVfdHJlZSBjYW4gYmUgY29lcmNlZCB0bywgYnV0IG5vdCBmcm9tLCB0ZXh0CiB7IGNh c3Rzb3VyY2UgPT4gJ3BnX25vZGVfdHJlZScsIGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVu YyA9PiAnMCcsCkBAIC0zOTIsNzMgKzM5Miw3MyBAQAogCiAjIERhdGV0aW1lIGNhdGVnb3J5CiB7 IGNhc3Rzb3VyY2UgPT4gJ2RhdGUnLCBjYXN0dGFyZ2V0ID0+ICd0aW1lc3RhbXAnLAotICBjYXN0 ZnVuYyA9PiAndGltZXN0YW1wKGRhdGUpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZXN0YW1wKGRhdGUpJywgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ2RhdGUnLCBjYXN0dGFyZ2V0ID0+ICd0aW1lc3RhbXB0eicsCi0gIGNhc3Rm dW5jID0+ICd0aW1lc3RhbXB0eihkYXRlKScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcHR6KGRhdGUpJywgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ3RpbWUnLCBjYXN0dGFyZ2V0ID0+ICdpbnRlcnZhbCcsIGNhc3RmdW5j ID0+ICdpbnRlcnZhbCh0aW1lKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWUnLCBjYXN0dGFyZ2V0ID0+ ICd0aW1ldHonLCBjYXN0ZnVuYyA9PiAndGltZXR6KHRpbWUpJywKLSAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGlt ZXN0YW1wJywgY2FzdHRhcmdldCA9PiAnZGF0ZScsCi0gIGNhc3RmdW5jID0+ICdkYXRlKHRpbWVz dGFtcCknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rm dW5jID0+ICdkYXRlKHRpbWVzdGFtcCknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZXN0 YW1wJywgY2FzdHRhcmdldCA9PiAndGltZScsCi0gIGNhc3RmdW5jID0+ICd0aW1lKHRpbWVzdGFt cCknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5j ID0+ICd0aW1lKHRpbWVzdGFtcCknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZXN0YW1w JywgY2FzdHRhcmdldCA9PiAndGltZXN0YW1wdHonLAotICBjYXN0ZnVuYyA9PiAndGltZXN0YW1w dHoodGltZXN0YW1wKScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcHR6KHRpbWVzdGFtcCknLCBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAndGltZXN0YW1wdHonLCBjYXN0dGFyZ2V0ID0+ICdkYXRlJywKLSAgY2FzdGZ1bmMg PT4gJ2RhdGUodGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnZGF0ZSh0aW1lc3RhbXB0eiknLCBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAndGltZXN0YW1wdHonLCBjYXN0dGFyZ2V0ID0+ICd0aW1lJywKLSAgY2FzdGZ1 bmMgPT4gJ3RpbWUodGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZSh0aW1lc3RhbXB0eiknLCBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAndGltZXN0YW1wdHonLCBjYXN0dGFyZ2V0ID0+ICd0aW1lc3RhbXAnLAot ICBjYXN0ZnVuYyA9PiAndGltZXN0YW1wKHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcCh0aW1lc3Rh bXB0eiknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZXN0YW1wdHonLCBjYXN0dGFyZ2V0 ID0+ICd0aW1ldHonLAotICBjYXN0ZnVuYyA9PiAndGltZXR6KHRpbWVzdGFtcHR6KScsIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3RpbWV0 eih0aW1lc3RhbXB0eiknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50ZXJ2YWwnLCBjYXN0 dGFyZ2V0ID0+ICd0aW1lJywgY2FzdGZ1bmMgPT4gJ3RpbWUoaW50ZXJ2YWwpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAndGltZXR6JywgY2FzdHRhcmdldCA9PiAndGltZScsIGNhc3RmdW5jID0+ICd0aW1lKHRp bWV0eiknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogCiAjIEdlb21ldHJpYyBjYXRlZ29yeQogeyBjYXN0c291cmNlID0+ICdwb2ludCcsIGNh c3R0YXJnZXQgPT4gJ2JveCcsIGNhc3RmdW5jID0+ICdib3gocG9pbnQpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdsc2VnJywgY2FzdHRhcmdldCA9PiAncG9pbnQnLCBjYXN0ZnVuYyA9PiAncG9pbnQobHNlZykn LAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ3BhdGgnLCBjYXN0dGFyZ2V0ID0+ICdwb2x5Z29uJywgY2FzdGZ1bmMg PT4gJ3BvbHlnb24ocGF0aCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JveCcsIGNhc3R0YXJnZXQgPT4gJ3Bv aW50JywgY2FzdGZ1bmMgPT4gJ3BvaW50KGJveCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAn ZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JveCcsIGNhc3R0 YXJnZXQgPT4gJ2xzZWcnLCBjYXN0ZnVuYyA9PiAnbHNlZyhib3gpJywKLSAgY2FzdGNvbnRleHQg PT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdi b3gnLCBjYXN0dGFyZ2V0ID0+ICdwb2x5Z29uJywgY2FzdGZ1bmMgPT4gJ3BvbHlnb24oYm94KScs Ci0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnYm94JywgY2FzdHRhcmdldCA9PiAnY2lyY2xlJywgY2FzdGZ1bmMgPT4g J2NpcmNsZShib3gpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdwb2x5Z29uJywgY2FzdHRhcmdldCA9PiAncG9p bnQnLCBjYXN0ZnVuYyA9PiAncG9pbnQocG9seWdvbiknLAotICBjYXN0Y29udGV4dCA9PiAnZScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9 PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3BvbHlnb24n LCBjYXN0dGFyZ2V0ID0+ICdwYXRoJywgY2FzdGZ1bmMgPT4gJ3BhdGgnLAotICBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J3BvbHlnb24nLCBjYXN0dGFyZ2V0ID0+ICdib3gnLCBjYXN0ZnVuYyA9PiAnYm94KHBvbHlnb24p JywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdwb2x5Z29uJywgY2FzdHRhcmdldCA9PiAnY2lyY2xlJywKLSAgY2Fz dGZ1bmMgPT4gJ2NpcmNsZShwb2x5Z29uKScsIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ2NpcmNsZShwb2x5Z29uKScsIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ2NpcmNsZScsIGNhc3R0YXJnZXQgPT4gJ3BvaW50JywgY2FzdGZ1bmMgPT4g J3BvaW50KGNpcmNsZSknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2NpcmNsZScsIGNhc3R0YXJnZXQgPT4gJ2Jv eCcsIGNhc3RmdW5jID0+ICdib3goY2lyY2xlKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdm JywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnY2lyY2xlJywgY2Fz dHRhcmdldCA9PiAncG9seWdvbicsCi0gIGNhc3RmdW5jID0+ICdwb2x5Z29uKGNpcmNsZSknLCBj YXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdw b2x5Z29uKGNpcmNsZSknLCBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnfSwK IAogIyBNQUMgYWRkcmVzcyBjYXRlZ29yeQogeyBjYXN0c291cmNlID0+ICdtYWNhZGRyJywgY2Fz dHRhcmdldCA9PiAnbWFjYWRkcjgnLCBjYXN0ZnVuYyA9PiAnbWFjYWRkcjgnLAotICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdtYWNhZGRyOCcsIGNhc3R0YXJnZXQgPT4gJ21hY2FkZHInLCBjYXN0ZnVuYyA9PiAnbWFj YWRkcicsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiAKICMgSU5FVCBjYXRlZ29yeQogeyBjYXN0c291cmNlID0+ICdjaWRyJywgY2FzdHRhcmdl dCA9PiAnaW5ldCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdpbmV0JywgY2FzdHRhcmdldCA9PiAn Y2lkcicsIGNhc3RmdW5jID0+ICdjaWRyJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBCaXRTdHJpbmcgY2F0ZWdvcnkKIHsgY2FzdHNv dXJjZSA9PiAnYml0JywgY2FzdHRhcmdldCA9PiAndmFyYml0JywgY2FzdGZ1bmMgPT4gJzAnLApA QCAtNDY4LDEzICs0NjgsMTMgQEAKIAogIyBDcm9zcy1jYXRlZ29yeSBjYXN0cyBiZXR3ZWVuIGJp dCBhbmQgaW50NCwgaW50OAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAn Yml0JywgY2FzdGZ1bmMgPT4gJ2JpdChpbnQ4LGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2Un LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcs IGNhc3R0YXJnZXQgPT4gJ2JpdCcsIGNhc3RmdW5jID0+ICdiaXQoaW50NCxpbnQ0KScsCi0gIGNh c3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2JpdCcsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChi aXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAnYml0JywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5j ID0+ICdpbnQ0KGJpdCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogCiAjIENyb3NzLWNhdGVnb3J5IGNhc3RzIHRvIGFuZCBmcm9tIFRFWFQK ICMgV2UgbmVlZCBlbnRyaWVzIGhlcmUgb25seSBmb3IgYSBmZXcgc3BlY2lhbGl6ZWQgY2FzZXMg d2hlcmUgdGhlIGJlaGF2aW9yCkBAIC00ODUsNjggKzQ4NSw2OCBAQAogIyBiZWhhdmlvciB3aWxs IGVuc3VlIHdoZW4gdGhlIGF1dG9tYXRpYyBjYXN0IGlzIGFwcGxpZWQgaW5zdGVhZCBvZiB0aGUK ICMgcGdfY2FzdCBlbnRyeSEKIHsgY2FzdHNvdXJjZSA9PiAnY2lkcicsIGNhc3R0YXJnZXQgPT4g J3RleHQnLCBjYXN0ZnVuYyA9PiAndGV4dChpbmV0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2luZXQnLCBj YXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJ3RleHQoaW5ldCknLAotICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdib29sJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICd0ZXh0KGJvb2wp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAneG1sJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0 c291cmNlID0+ICd0ZXh0JywgY2FzdHRhcmdldCA9PiAneG1sJywgY2FzdGZ1bmMgPT4gJ3htbCcs Ci0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAK ICMgQ3Jvc3MtY2F0ZWdvcnkgY2FzdHMgdG8gYW5kIGZyb20gVkFSQ0hBUgogIyBXZSBzdXBwb3J0 IGFsbCB0aGUgc2FtZSBjYXN0cyBhcyBmb3IgVEVYVC4KIHsgY2FzdHNvdXJjZSA9PiAnY2lkcics IGNhc3R0YXJnZXQgPT4gJ3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChpbmV0KScsCi0gIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2luZXQnLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJ3Rl eHQoaW5ldCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdib29sJywgY2FzdHRhcmdldCA9PiAndmFyY2hhcics IGNhc3RmdW5jID0+ICd0ZXh0KGJvb2wpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAneG1sJywgY2FzdHRhcmdl dCA9PiAndmFyY2hhcicsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdl dCA9PiAneG1sJywgY2FzdGZ1bmMgPT4gJ3htbCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgQ3Jvc3MtY2F0ZWdvcnkgY2FzdHMgdG8g YW5kIGZyb20gQlBDSEFSCiAjIFdlIHN1cHBvcnQgYWxsIHRoZSBzYW1lIGNhc3RzIGFzIGZvciBU RVhULgogeyBjYXN0c291cmNlID0+ICdjaWRyJywgY2FzdHRhcmdldCA9PiAnYnBjaGFyJywgY2Fz dGZ1bmMgPT4gJ3RleHQoaW5ldCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbmV0JywgY2FzdHRhcmdldCA9 PiAnYnBjaGFyJywgY2FzdGZ1bmMgPT4gJ3RleHQoaW5ldCknLAotICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdib29s JywgY2FzdHRhcmdldCA9PiAnYnBjaGFyJywgY2FzdGZ1bmMgPT4gJ3RleHQoYm9vbCknLAotICBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICd4bWwnLCBjYXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAnMCcs CiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnYnBjaGFyJywgY2FzdHRhcmdldCA9PiAneG1sJywgY2FzdGZ1bmMgPT4gJ3htbCcsCi0g IGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMg TGVuZ3RoLWNvZXJjaW9uIGZ1bmN0aW9ucwogeyBjYXN0c291cmNlID0+ICdicGNoYXInLCBjYXN0 dGFyZ2V0ID0+ICdicGNoYXInLAogICBjYXN0ZnVuYyA9PiAnYnBjaGFyKGJwY2hhcixpbnQ0LGJv b2wpJywgY2FzdGNvbnRleHQgPT4gJ2knLAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J3ZhcmNoYXInLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywKICAgY2FzdGZ1bmMgPT4gJ3ZhcmNo YXIodmFyY2hhcixpbnQ0LGJvb2wpJywgY2FzdGNvbnRleHQgPT4gJ2knLAotICBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWUnLCBjYXN0dGFyZ2V0ID0+ICd0aW1lJywgY2FzdGZ1bmMg PT4gJ3RpbWUodGltZSxpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcCcsIGNhc3R0YXJn ZXQgPT4gJ3RpbWVzdGFtcCcsCiAgIGNhc3RmdW5jID0+ICd0aW1lc3RhbXAodGltZXN0YW1wLGlu dDQpJywgY2FzdGNvbnRleHQgPT4gJ2knLAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J3RpbWVzdGFtcHR6JywgY2FzdHRhcmdldCA9PiAndGltZXN0YW1wdHonLAogICBjYXN0ZnVuYyA9 PiAndGltZXN0YW1wdHoodGltZXN0YW1wdHosaW50NCknLCBjYXN0Y29udGV4dCA9PiAnaScsCi0g IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50ZXJ2YWwnLCBjYXN0dGFyZ2V0ID0+ICdp bnRlcnZhbCcsCiAgIGNhc3RmdW5jID0+ICdpbnRlcnZhbChpbnRlcnZhbCxpbnQ0KScsIGNhc3Rj b250ZXh0ID0+ICdpJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1ldHonLCBj YXN0dGFyZ2V0ID0+ICd0aW1ldHonLAotICBjYXN0ZnVuYyA9PiAndGltZXR6KHRpbWV0eixpbnQ0 KScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMg PT4gJ3RpbWV0eih0aW1ldHosaW50NCknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYml0Jywg Y2FzdHRhcmdldCA9PiAnYml0JywgY2FzdGZ1bmMgPT4gJ2JpdChiaXQsaW50NCxib29sKScsCi0g IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ3ZhcmJpdCcsIGNhc3R0YXJnZXQgPT4gJ3ZhcmJpdCcsIGNhc3RmdW5jID0+ ICd2YXJiaXQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdudW1lcmljJywgY2FzdHRhcmdldCA9PiAnbnVtZXJp YycsCi0gIGNhc3RmdW5jID0+ICdudW1lcmljKG51bWVyaWMsaW50NCknLCBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdudW1lcmljKG51bWVy aWMsaW50NCknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIAogIyBqc29uIHRvL2Zyb20ganNvbmIKIHsgY2FzdHNvdXJjZSA9 PiAnanNvbicsIGNhc3R0YXJnZXQgPT4gJ2pzb25iJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtNTU2 LDM2ICs1NTYsMzYgQEAKIAogIyBqc29uYiB0byBudW1lcmljIGFuZCBib29sIHR5cGVzCiB7IGNh c3Rzb3VyY2UgPT4gJ2pzb25iJywgY2FzdHRhcmdldCA9PiAnYm9vbCcsIGNhc3RmdW5jID0+ICdi b29sKGpzb25iKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2pzb25iJywgY2FzdHRhcmdldCA9PiAnbnVtZXJp YycsIGNhc3RmdW5jID0+ICdudW1lcmljKGpzb25iKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2pzb25iJywg Y2FzdHRhcmdldCA9PiAnaW50MicsIGNhc3RmdW5jID0+ICdpbnQyKGpzb25iKScsCi0gIGNhc3Rj b250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2Un LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2pzb25iJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICdpbnQ0KGpz b25iKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2pzb25iJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3Rm dW5jID0+ICdpbnQ4KGpzb25iKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2pzb25iJywgY2FzdHRhcmdldCA9 PiAnZmxvYXQ0JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0NChqc29uYiknLAotICBjYXN0Y29udGV4dCA9 PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdq c29uYicsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0OCcsIGNhc3RmdW5jID0+ICdmbG9hdDgoanNvbmIp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IAogIyByYW5nZSB0byBtdWx0aXJhbmdlCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDRyYW5nZScsIGNh c3R0YXJnZXQgPT4gJ2ludDRtdWx0aXJhbmdlJywKICAgY2FzdGZ1bmMgPT4gJ2ludDRtdWx0aXJh bmdlKGludDRyYW5nZSknLCBjYXN0Y29udGV4dCA9PiAnZScsCi0gIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnaW50OHJhbmdlJywgY2FzdHRhcmdldCA9PiAnaW50OG11bHRpcmFuZ2UnLAog ICBjYXN0ZnVuYyA9PiAnaW50OG11bHRpcmFuZ2UoaW50OHJhbmdlKScsIGNhc3Rjb250ZXh0ID0+ ICdlJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdudW1yYW5nZScsIGNhc3R0YXJn ZXQgPT4gJ251bW11bHRpcmFuZ2UnLAogICBjYXN0ZnVuYyA9PiAnbnVtbXVsdGlyYW5nZShudW1y YW5nZSknLCBjYXN0Y29udGV4dCA9PiAnZScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnZGF0ZXJhbmdlJywgY2FzdHRhcmdldCA9PiAnZGF0ZW11bHRpcmFuZ2UnLAogICBjYXN0ZnVu YyA9PiAnZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKScsIGNhc3Rjb250ZXh0ID0+ICdlJywKLSAg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0c3JhbmdlJywgY2FzdHRhcmdldCA9PiAndHNt dWx0aXJhbmdlJywKLSAgY2FzdGZ1bmMgPT4gJ3RzbXVsdGlyYW5nZSh0c3JhbmdlKScsIGNhc3Rj b250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3RzbXVs dGlyYW5nZSh0c3JhbmdlKScsIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0c3R6cmFuZ2UnLCBj YXN0dGFyZ2V0ID0+ICd0c3R6bXVsdGlyYW5nZScsCiAgIGNhc3RmdW5jID0+ICd0c3R6bXVsdGly YW5nZSh0c3R6cmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLAotICBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiBdCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuaCBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfY2FzdC5oCmluZGV4IGQ4MTMxNDk0NmVlLi42ZGVkZWQzZTA0ZSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19jYXN0LmgKQEAgLTQ5LDYgKzQ5LDEwIEBAIENBVEFMT0cocGdfY2FzdCwyNjA1LENhc3RS ZWxhdGlvbklkKQogCiAJLyogY2FzdCBtZXRob2QgKi8KIAljaGFyCQljYXN0bWV0aG9kOworCisJ LyogY2FzdCBmdW5jdGlvbiBlcnJvciBzYWZlICovCisJYm9vbAkJY2FzdGVycm9yc2FmZSBCS0lf REVGQVVMVChmKTsKKwogfSBGb3JtRGF0YV9wZ19jYXN0OwogCiBFTkRfQ0FUQUxPR19TVFJVQ1QK QEAgLTEwNSw2ICsxMDksNyBAQCBleHRlcm4gT2JqZWN0QWRkcmVzcyBDYXN0Q3JlYXRlKE9pZCBz b3VyY2V0eXBlaWQsCiAJCQkJCQkJCU9pZCBvdXRjYXN0aWQsCiAJCQkJCQkJCWNoYXIgY2FzdGNv bnRleHQsCiAJCQkJCQkJCWNoYXIgY2FzdG1ldGhvZCwKKwkJCQkJCQkJYm9vbCBjYXN0ZXJyb3Jz YWZlLAogCQkJCQkJCQlEZXBlbmRlbmN5VHlwZSBiZWhhdmlvcik7CiAKICNlbmRpZgkJCQkJCQkv KiBQR19DQVNUX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMu aCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCA4YjBlZDNhZWZhNS4uMTAz OTQxMzllMGMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTQxODUsNiArNDE4NSw3IEBAIHR5 cGVkZWYgc3RydWN0IENyZWF0ZUNhc3RTdG10CiAJT2JqZWN0V2l0aEFyZ3MgKmZ1bmM7CiAJQ29l cmNpb25Db250ZXh0IGNvbnRleHQ7CiAJYm9vbAkJaW5vdXQ7CisJYm9vbAkJc2FmZTsKIH0gQ3Jl YXRlQ2FzdFN0bXQ7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaApp bmRleCA2Zjc0YThjMDVjNy4uYWZjZjlhNTNiNGMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Bh cnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKQEAgLTM5OCw2 ICszOTgsNyBAQCBQR19LRVlXT1JEKCJyb3V0aW5lcyIsIFJPVVRJTkVTLCBVTlJFU0VSVkVEX0tF WVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJyb3ciLCBST1csIENPTF9OQU1FX0tFWVdP UkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJyb3dzIiwgUk9XUywgVU5SRVNFUlZFRF9LRVlX T1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicnVsZSIsIFJVTEUsIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoInNhZmUiLCBTQUZFLCBVTlJFU0VSVkVEX0tF WVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJzYXZlcG9pbnQiLCBTQVZFUE9JTlQsIFVO UkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInNjYWxhciIsIFNDQUxB UiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgic2NoZW1hIiwg U0NIRU1BLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9jYXN0Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvY3JlYXRlX2Nhc3Qub3V0CmluZGV4IDY4ZTY5ZDFjNTg0Li5iM2M3ZDYyZTUyNiAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfY2FzdC5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfY2FzdC5vdXQKQEAgLTgxLDYgKzgx LDEyIEBAIE5PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gY2FzdCBmcm9tIGludGVnZXIgdG8gY2Fz dHRlc3R0eXBlCiAtLSBUcnkgaXQgd2l0aCBhIGZ1bmN0aW9uIHRoYXQgcmVxdWlyZXMgYW4gaW1w bGljaXQgY2FzdAogQ1JFQVRFIEZVTkNUSU9OIGJhcl9pbnQ0X3RleHQoaW50NCkgUkVUVVJOUyB0 ZXh0IExBTkdVQUdFIFNRTCBBUwogJCQgU0VMRUNUICgnYmFyJzo6dGV4dCB8fCAkMTo6dGV4dCk7 ICQkOworQ1JFQVRFIEZVTkNUSU9OIGJhcl9pbnQ0X3RleHRfcGxwZyhpbnQ0KSBSRVRVUk5TIHRl eHQgTEFOR1VBR0UgcGxwZ3NxbCBBUworJCQgQkVHSU4gUkVUVVJOICgnYmFyJzo6dGV4dCB8fCAk MTo6dGV4dCk7IEVORCAkJDsKK0NSRUFURSBDQVNUIChpbnQ0IEFTIGNhc3R0ZXN0dHlwZSkgV0lU SCBTQUZFIEZVTkNUSU9OIGJhcl9pbnQ0X3RleHQoaW50NCkgQVMgSU1QTElDSVQ7IC0tIGVycm9y CitFUlJPUjogIHNhZmUgdHlwZSBjYXN0IGZ1bmN0aW9ucyBhcmUgb25seSBzdXBwb3J0ZWQgZm9y IEMgYW5kIGludGVybmFsIGxhbmd1YWdlcworQ1JFQVRFIENBU1QgKGludDQgQVMgY2FzdHRlc3R0 eXBlKSBXSVRIIFNBRkUgRlVOQ1RJT04gYmFyX2ludDRfdGV4dF9wbHBnKGludDQpIEFTIElNUExJ Q0lUOyAtLSBlcnJvcgorRVJST1I6ICBzYWZlIHR5cGUgY2FzdCBmdW5jdGlvbnMgYXJlIG9ubHkg c3VwcG9ydGVkIGZvciBDIGFuZCBpbnRlcm5hbCBsYW5ndWFnZXMKIENSRUFURSBDQVNUIChpbnQ0 IEFTIGNhc3R0ZXN0dHlwZSkgV0lUSCBGVU5DVElPTiBiYXJfaW50NF90ZXh0KGludDQpIEFTIElN UExJQ0lUOwogU0VMRUNUIDEyMzQ6OmludDQ6OmNhc3R0ZXN0dHlwZTsgLS0gU2hvdWxkIHdvcmsg bm93CiAgY2FzdHRlc3R0eXBlIApAQCAtOTIsNyArOTgsNyBAQCBTRUxFQ1QgQ0FTVCgxMjM0Ojpp bnQ0IEFTIGNhc3R0ZXN0dHlwZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0t IGVycgogRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGludGVnZXIgdG8gY2FzdHRlc3R0eXBlIHdo ZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJT SU9OIEVSUk9SCiBMSU5FIDE6IFNFTEVDVCBDQVNUKDEyMzQ6OmludDQgQVMgY2FzdHRlc3R0eXBl IERFRkFVTFQgTlVMTCBPTiBDT05WRS4uLgogICAgICAgICAgICAgICAgICAgICBeCi1ISU5UOiAg U2FmZSB0eXBlIGNhc3QgZm9yIHVzZXItZGVmaW5lZCB0eXBlcyBhcmUgbm90IHlldCBzdXBwb3J0 ZWQuCitISU5UOiAgRXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZpbml0aW9uIGlzIG5v dCBlcnJvciBzYWZlLgogLS0gY2hlY2sgZGVwZW5kZW5jaWVzIGdlbmVyYXRlZCBmb3IgdGhhdAog U0VMRUNUIHBnX2Rlc2NyaWJlX29iamVjdChjbGFzc2lkLCBvYmppZCwgb2Jqc3ViaWQpIGFzIG9i aiwKICAgICAgICBwZ19kZXNjcmliZV9vYmplY3QocmVmY2xhc3NpZCwgcmVmb2JqaWQsIHJlZm9i anN1YmlkKSBhcyBvYmpyZWYsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L29wcl9zYW5pdHkub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91 dAppbmRleCA2ZmY0ZDdlZTkwMS4uOTk0M2E0MTk2OTUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9vcHJfc2FuaXR5Lm91dApAQCAtOTUwLDggKzk1MCw4IEBAIFNFTEVDVCAqCiBGUk9NIHBn X2Nhc3QgYwogV0hFUkUgY2FzdHNvdXJjZSA9IDAgT1IgY2FzdHRhcmdldCA9IDAgT1IgY2FzdGNv bnRleHQgTk9UIElOICgnZScsICdhJywgJ2knKQogICAgIE9SIGNhc3RtZXRob2QgTk9UIElOICgn ZicsICdiJyAsJ2knKTsKLSBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3RmdW5j IHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIAotLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgb2lkIHwgY2FzdHNv dXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8 IGNhc3RlcnJvcnNhZmUgCistLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQog CiAtLSBDaGVjayB0aGF0IGNhc3RmdW5jIGlzIG5vbnplcm8gb25seSBmb3IgY2FzdCBtZXRob2Rz IHRoYXQgbmVlZCBhIGZ1bmN0aW9uLApAQCAtOTYwLDggKzk2MCw4IEBAIFNFTEVDVCAqCiBGUk9N IHBnX2Nhc3QgYwogV0hFUkUgKGNhc3RtZXRob2QgPSAnZicgQU5EIGNhc3RmdW5jID0gMCkKICAg IE9SIChjYXN0bWV0aG9kIElOICgnYicsICdpJykgQU5EIGNhc3RmdW5jIDw+IDApOwotIG9pZCB8 IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3Rt ZXRob2QgCi0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0KKyBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNh c3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgY2FzdGVycm9yc2FmZSAKKy0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIExvb2sgZm9yIGNhc3RzIHRv L2Zyb20gdGhlIHNhbWUgdHlwZSB0aGF0IGFyZW4ndCBsZW5ndGggY29lcmNpb24gZnVuY3Rpb25z LgpAQCAtOTcwLDE1ICs5NzAsMTUgQEAgV0hFUkUgKGNhc3RtZXRob2QgPSAnZicgQU5EIGNhc3Rm dW5jID0gMCkKIFNFTEVDVCAqCiBGUk9NIHBnX2Nhc3QgYwogV0hFUkUgY2FzdHNvdXJjZSA9IGNh c3R0YXJnZXQgQU5EIGNhc3RmdW5jID0gMDsKLSBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdl dCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIAotLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisg b2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwg Y2FzdG1ldGhvZCB8IGNhc3RlcnJvcnNhZmUgCistLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t CiAoMCByb3dzKQogCiBTRUxFQ1QgYy4qCiBGUk9NIHBnX2Nhc3QgYywgcGdfcHJvYyBwCiBXSEVS RSBjLmNhc3RmdW5jID0gcC5vaWQgQU5EIHAucHJvbmFyZ3MgPCAyIEFORCBjYXN0c291cmNlID0g Y2FzdHRhcmdldDsKLSBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3RmdW5jIHwg Y2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIAotLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgb2lkIHwgY2FzdHNvdXJj ZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8IGNh c3RlcnJvcnNhZmUgCistLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAt LSBMb29rIGZvciBjYXN0IGZ1bmN0aW9ucyB0aGF0IGRvbid0IGhhdmUgdGhlIHJpZ2h0IHNpZ25h dHVyZS4gIFRoZQpAQCAtOTk2LDggKzk5Niw4IEBAIFdIRVJFIGMuY2FzdGZ1bmMgPSBwLm9pZCBB TkQKICAgICAgICAgICAgICBPUiAoYy5jYXN0c291cmNlID0gJ2NoYXJhY3Rlcic6OnJlZ3R5cGUg QU5ECiAgICAgICAgICAgICAgICAgIHAucHJvYXJndHlwZXNbMF0gPSAndGV4dCc6OnJlZ3R5cGUp KQogICAgICBPUiBOT1QgYmluYXJ5X2NvZXJjaWJsZShwLnByb3JldHR5cGUsIGMuY2FzdHRhcmdl dCkpOwotIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29u dGV4dCB8IGNhc3RtZXRob2QgCi0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBvaWQgfCBjYXN0c291cmNlIHwgY2Fz dHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgY2FzdGVycm9y c2FmZSAKKy0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIFNFTEVDVCBj LioKQEAgLTEwMDUsOCArMTAwNSw4IEBAIEZST00gcGdfY2FzdCBjLCBwZ19wcm9jIHAKIFdIRVJF IGMuY2FzdGZ1bmMgPSBwLm9pZCBBTkQKICAgICAoKHAucHJvbmFyZ3MgPiAxIEFORCBwLnByb2Fy Z3R5cGVzWzFdICE9ICdpbnQ0Jzo6cmVndHlwZSkgT1IKICAgICAgKHAucHJvbmFyZ3MgPiAyIEFO RCBwLnByb2FyZ3R5cGVzWzJdICE9ICdib29sJzo6cmVndHlwZSkpOwotIG9pZCB8IGNhc3Rzb3Vy Y2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgCi0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3RmdW5jIHwg Y2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgY2FzdGVycm9yc2FmZSAKKy0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIExvb2sgZm9yIGJpbmFyeSBjb21wYXRpYmxl IGNhc3RzIHRoYXQgZG8gbm90IGhhdmUgdGhlIHJldmVyc2UKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9jYXN0LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0 ZV9jYXN0LnNxbAppbmRleCAwYTE1YTc5NWQ4Ny4uMzBhMGZmMDc3YzkgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9jYXN0LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9jcmVhdGVfY2FzdC5zcWwKQEAgLTYwLDYgKzYwLDExIEBAIERST1AgRlVOQ1RJT04gaW50 NF9jYXN0dGVzdHR5cGUoaW50NCkgQ0FTQ0FERTsKIENSRUFURSBGVU5DVElPTiBiYXJfaW50NF90 ZXh0KGludDQpIFJFVFVSTlMgdGV4dCBMQU5HVUFHRSBTUUwgQVMKICQkIFNFTEVDVCAoJ2Jhcic6 OnRleHQgfHwgJDE6OnRleHQpOyAkJDsKIAorQ1JFQVRFIEZVTkNUSU9OIGJhcl9pbnQ0X3RleHRf cGxwZyhpbnQ0KSBSRVRVUk5TIHRleHQgTEFOR1VBR0UgcGxwZ3NxbCBBUworJCQgQkVHSU4gUkVU VVJOICgnYmFyJzo6dGV4dCB8fCAkMTo6dGV4dCk7IEVORCAkJDsKKworQ1JFQVRFIENBU1QgKGlu dDQgQVMgY2FzdHRlc3R0eXBlKSBXSVRIIFNBRkUgRlVOQ1RJT04gYmFyX2ludDRfdGV4dChpbnQ0 KSBBUyBJTVBMSUNJVDsgLS0gZXJyb3IKK0NSRUFURSBDQVNUIChpbnQ0IEFTIGNhc3R0ZXN0dHlw ZSkgV0lUSCBTQUZFIEZVTkNUSU9OIGJhcl9pbnQ0X3RleHRfcGxwZyhpbnQ0KSBBUyBJTVBMSUNJ VDsgLS0gZXJyb3IKIENSRUFURSBDQVNUIChpbnQ0IEFTIGNhc3R0ZXN0dHlwZSkgV0lUSCBGVU5D VElPTiBiYXJfaW50NF90ZXh0KGludDQpIEFTIElNUExJQ0lUOwogU0VMRUNUIDEyMzQ6OmludDQ6 OmNhc3R0ZXN0dHlwZTsgLS0gU2hvdWxkIHdvcmsgbm93CiBTRUxFQ1QgQ0FTVCgxMjM0OjppbnQ0 IEFTIGNhc3R0ZXN0dHlwZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVy cm9yCi0tIAoyLjM0LjEKCg== --000000000000549053064ce1dba3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20-0004-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v20-0004-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmoi9ly32 RnJvbSBkYTAyNjAzNjg0MzM0OWY3MzJiZGM0ZDYyYWMxMGZkODhkN2M0YjU0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgMTIgTWFyIDIwMjYgMDk6Mzg6NTMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MCAwNC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyB0ZXh0IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ3RleHQnOjpyZWd0 eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8IGNhc3R0YXJn ZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgIHByb3NyYyAgICAg fCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQogdGV4dCAgICAgICB8 IHJlZ2NsYXNzICAgfCAgICAgMTA3OSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRf cmVnY2xhc3MgfCByZWdjbGFzcwogdGV4dCAgICAgICB8ICJjaGFyIiAgICAgfCAgICAgIDk0NCB8 IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRfY2hhciAgICAgfCBjaGFyCiB0ZXh0ICAg ICAgIHwgbmFtZSAgICAgICB8ICAgICAgNDA3IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwg dGV4dF9uYW1lICAgICB8IG5hbWUKIHRleHQgICAgICAgfCB4bWwgICAgICAgIHwgICAgIDI4OTYg fCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0dG94bWwgICAgIHwgeG1sCig0IHJvd3Mp CgphbHJlYWR5IGVycm9yIHNhZmU6IHRleHRfbmFtZSwgdGV4dF9jaGFyLgp0ZXh0dG94bWwgaXMg cmVmYWN0b3JlZCBpbiBjaGFyYWN0ZXIgdHlwZSBlcnJvciBzYWZlIHBhdGNoLgoKZGlzY3Vzc2lv bjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tR OGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9jYXRhbG9n L25hbWVzcGFjZS5jIHwgNTggKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiBzcmMv YmFja2VuZC91dGlscy9hZHQvcmVncHJvYy5jIHwgMTMgKysrKysrLS0KIHNyYy9iYWNrZW5kL3V0 aWxzL2FkdC92YXJsZW5hLmMgfCAxMCArKysrLS0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNw YWNlLmggfCAgNiArKysrCiBzcmMvaW5jbHVkZS91dGlscy92YXJsZW5hLmggICAgIHwgIDEgKwog NSBmaWxlcyBjaGFuZ2VkLCA3MiBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jIGIvc3JjL2JhY2tlbmQvY2F0 YWxvZy9uYW1lc3BhY2UuYwppbmRleCA1NmI4N2Q4NzhlOC4uMTljOGI1ODZiNTUgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0 YWxvZy9uYW1lc3BhY2UuYwpAQCAtNDQyLDYgKzQ0MiwxNiBAQCBPaWQKIFJhbmdlVmFyR2V0UmVs aWRFeHRlbmRlZChjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sIExPQ0tNT0RFIGxvY2ttb2RlLAog CQkJCQkJIHVpbnQzMiBmbGFncywKIAkJCQkJCSBSYW5nZVZhckdldFJlbGlkQ2FsbGJhY2sgY2Fs bGJhY2ssIHZvaWQgKmNhbGxiYWNrX2FyZykKK3sKKwlyZXR1cm4gUmFuZ2VWYXJHZXRSZWxpZEV4 dGVuZGVkU2FmZShyZWxhdGlvbiwgbG9ja21vZGUsIGZsYWdzLAorCQkJCQkJCQkJCWNhbGxiYWNr LCBjYWxsYmFja19hcmcsCisJCQkJCQkJCQkJTlVMTCk7Cit9CisKK09pZAorUmFuZ2VWYXJHZXRS ZWxpZEV4dGVuZGVkU2FmZShjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sIExPQ0tNT0RFIGxvY2tt b2RlLCB1aW50MzIgZmxhZ3MsCisJCQkJCQkJIFJhbmdlVmFyR2V0UmVsaWRDYWxsYmFjayBjYWxs YmFjaywgdm9pZCAqY2FsbGJhY2tfYXJnLAorCQkJCQkJCSBOb2RlICplc2NvbnRleHQpCiB7CiAJ dWludDY0CQlpbnZhbF9jb3VudDsKIAlPaWQJCQlyZWxJZDsKQEAgLTQ1OCw3ICs0NjgsNyBAQCBS YW5nZVZhckdldFJlbGlkRXh0ZW5kZWQoY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLCBMT0NLTU9E RSBsb2NrbW9kZSwKIAlpZiAocmVsYXRpb24tPmNhdGFsb2duYW1lKQogCXsKIAkJaWYgKHN0cmNt cChyZWxhdGlvbi0+Y2F0YWxvZ25hbWUsIGdldF9kYXRhYmFzZV9uYW1lKE15RGF0YWJhc2VJZCkp ICE9IDApCi0JCQllcmVwb3J0KEVSUk9SLAorCQkJZXJldHVybihlc2NvbnRleHQsIEludmFsaWRP aWQsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkJ IGVycm1zZygiY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiBc IiVzLiVzLiVzXCIiLAogCQkJCQkJCXJlbGF0aW9uLT5jYXRhbG9nbmFtZSwgcmVsYXRpb24tPnNj aGVtYW5hbWUsCkBAIC01MTUsNyArNTI1LDcgQEAgUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKGNv bnN0IFJhbmdlVmFyICpyZWxhdGlvbiwgTE9DS01PREUgbG9ja21vZGUsCiAJCQkJCSAqIHJldHVy biBJbnZhbGlkT2lkLgogCQkJCQkgKi8KIAkJCQkJaWYgKG5hbWVzcGFjZUlkICE9IG15VGVtcE5h bWVzcGFjZSkKLQkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcmV0dXJuKGVzY29udGV4dCwg SW52YWxpZE9pZCwKIAkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RBQkxFX0RFRklO SVRJT04pLAogCQkJCQkJCQkgZXJybXNnKCJ0ZW1wb3JhcnkgdGFibGVzIGNhbm5vdCBzcGVjaWZ5 IGEgc2NoZW1hIG5hbWUiKSkpOwogCQkJCX0KQEAgLTU5NSwxMyArNjA1LDIzIEBAIFJhbmdlVmFy R2V0UmVsaWRFeHRlbmRlZChjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sIExPQ0tNT0RFIGxvY2tt b2RlLAogCQl7CiAJCQlpbnQJCQllbGV2ZWwgPSAoZmxhZ3MgJiBSVlJfU0tJUF9MT0NLRUQpID8g REVCVUcxIDogRVJST1I7CiAKLQkJCWlmIChyZWxhdGlvbi0+c2NoZW1hbmFtZSkKLQkJCQllcmVw b3J0KGVsZXZlbCwKKwkJCWlmIChyZWxhdGlvbi0+c2NoZW1hbmFtZSAmJiBlbGV2ZWwgPT0gREVC VUcxKQorCQkJCWVyZXBvcnQoREVCVUcxLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9MT0NLX05P VF9BVkFJTEFCTEUpLAogCQkJCQkJIGVycm1zZygiY291bGQgbm90IG9idGFpbiBsb2NrIG9uIHJl bGF0aW9uIFwiJXMuJXNcIiIsCiAJCQkJCQkJCXJlbGF0aW9uLT5zY2hlbWFuYW1lLCByZWxhdGlv bi0+cmVsbmFtZSkpKTsKLQkJCWVsc2UKLQkJCQllcmVwb3J0KGVsZXZlbCwKKwkJCWVsc2UgaWYg KHJlbGF0aW9uLT5zY2hlbWFuYW1lICYmIGVsZXZlbCA9PSBFUlJPUikKKwkJCQllcmV0dXJuKGVz Y29udGV4dCwgSW52YWxpZE9pZCwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9MT0NLX05PVF9BVkFJ TEFCTEUpLAorCQkJCQkJZXJybXNnKCJjb3VsZCBub3Qgb2J0YWluIGxvY2sgb24gcmVsYXRpb24g XCIlcy4lc1wiIiwKKwkJCQkJCQkgICByZWxhdGlvbi0+c2NoZW1hbmFtZSwgcmVsYXRpb24tPnJl bG5hbWUpKTsKKwkJCWVsc2UgaWYgKGVsZXZlbCA9PSBERUJVRzEpCisJCQkJZXJlcG9ydChERUJV RzEsCisJCQkJCQllcnJjb2RlKEVSUkNPREVfTE9DS19OT1RfQVZBSUxBQkxFKSwKKwkJCQkJCWVy cm1zZygiY291bGQgbm90IG9idGFpbiBsb2NrIG9uIHJlbGF0aW9uIFwiJXNcIiIsCisJCQkJCQkJ ICAgcmVsYXRpb24tPnJlbG5hbWUpKTsKKwkJCWVsc2UgaWYgKGVsZXZlbCA9PSBFUlJPUikKKwkJ CQllcmV0dXJuKGVzY29udGV4dCwgSW52YWxpZE9pZCwKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVf TE9DS19OT1RfQVZBSUxBQkxFKSwKIAkJCQkJCSBlcnJtc2coImNvdWxkIG5vdCBvYnRhaW4gbG9j ayBvbiByZWxhdGlvbiBcIiVzXCIiLAogCQkJCQkJCQlyZWxhdGlvbi0+cmVsbmFtZSkpKTsKQEAg LTYyOCwxMyArNjQ4LDIzIEBAIFJhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZChjb25zdCBSYW5nZVZh ciAqcmVsYXRpb24sIExPQ0tNT0RFIGxvY2ttb2RlLAogCXsKIAkJaW50CQkJZWxldmVsID0gbWlz c2luZ19vayA/IERFQlVHMSA6IEVSUk9SOwogCi0JCWlmIChyZWxhdGlvbi0+c2NoZW1hbmFtZSkK LQkJCWVyZXBvcnQoZWxldmVsLAorCQlpZiAocmVsYXRpb24tPnNjaGVtYW5hbWUgJiYgZWxldmVs ID09IERFQlVHMSkKKwkJCWVyZXBvcnQoREVCVUcxLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1VO REVGSU5FRF9UQUJMRSksCiAJCQkJCSBlcnJtc2coInJlbGF0aW9uIFwiJXMuJXNcIiBkb2VzIG5v dCBleGlzdCIsCiAJCQkJCQkJcmVsYXRpb24tPnNjaGVtYW5hbWUsIHJlbGF0aW9uLT5yZWxuYW1l KSkpOwotCQllbHNlCi0JCQllcmVwb3J0KGVsZXZlbCwKKwkJZWxzZSBpZiAocmVsYXRpb24tPnNj aGVtYW5hbWUgJiYgZWxldmVsID09IEVSUk9SKQorCQkJZXJldHVybihlc2NvbnRleHQsIEludmFs aWRPaWQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfVEFCTEUpLAorCQkJCQllcnJt c2coInJlbGF0aW9uIFwiJXMuJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQkgICByZWxhdGlv bi0+c2NoZW1hbmFtZSwgcmVsYXRpb24tPnJlbG5hbWUpKTsKKwkJZWxzZSBpZiAoZWxldmVsID09 IERFQlVHMSkKKwkJCWVyZXBvcnQoREVCVUcxLAorCQkJCQllcnJjb2RlKEVSUkNPREVfVU5ERUZJ TkVEX1RBQkxFKSwKKwkJCQkJZXJybXNnKCJyZWxhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3Qi LAorCQkJCQkJICAgcmVsYXRpb24tPnJlbG5hbWUpKTsKKwkJZWxzZSBpZiAoZWxldmVsID09IEVS Uk9SKQorCQkJZXJldHVybihlc2NvbnRleHQsIEludmFsaWRPaWQsCiAJCQkJCShlcnJjb2RlKEVS UkNPREVfVU5ERUZJTkVEX1RBQkxFKSwKIAkJCQkJIGVycm1zZygicmVsYXRpb24gXCIlc1wiIGRv ZXMgbm90IGV4aXN0IiwKIAkJCQkJCQlyZWxhdGlvbi0+cmVsbmFtZSkpKTsKQEAgLTM2MjQsNiAr MzY1NCwxMiBAQCBnZXRfbmFtZXNwYWNlX29pZChjb25zdCBjaGFyICpuc3BuYW1lLCBib29sIG1p c3Npbmdfb2spCiAgKi8KIFJhbmdlVmFyICoKIG1ha2VSYW5nZVZhckZyb21OYW1lTGlzdChjb25z dCBMaXN0ICpuYW1lcykKK3sKKwlyZXR1cm4gbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0U2FmZShu YW1lcywgTlVMTCk7Cit9CisKK1JhbmdlVmFyICoKK21ha2VSYW5nZVZhckZyb21OYW1lTGlzdFNh ZmUoY29uc3QgTGlzdCAqbmFtZXMsIE5vZGUgKmVzY29udGV4dCkKIHsKIAlSYW5nZVZhciAgICpy ZWwgPSBtYWtlUmFuZ2VWYXIoTlVMTCwgTlVMTCwgLTEpOwogCkBAIC0zNjQyLDcgKzM2NzgsNyBA QCBtYWtlUmFuZ2VWYXJGcm9tTmFtZUxpc3QoY29uc3QgTGlzdCAqbmFtZXMpCiAJCQlyZWwtPnJl bG5hbWUgPSBzdHJWYWwobHRoaXJkKG5hbWVzKSk7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKLQkJ CWVyZXBvcnQoRVJST1IsCisJCQllcmV0dXJuKGVzY29udGV4dCwgTlVMTCwKIAkJCQkJKGVycmNv ZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAogCQkJCQkgZXJybXNnKCJpbXByb3BlciByZWxhdGlv biBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAlcyIsCiAJCQkJCQkJTmFtZUxpc3RUb1N0 cmluZyhuYW1lcykpKSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcmVncHJv Yy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JlZ3Byb2MuYwppbmRleCBlZTM0ZDFkODVmOC4u NjA0ZTE5YTFjYjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yZWdwcm9jLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JlZ3Byb2MuYwpAQCAtMTkwMSwxMiArMTkwMSwx OSBAQCB0ZXh0X3JlZ2NsYXNzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJdGV4dAkgICAqcmVsbmFtZSA9 IFBHX0dFVEFSR19URVhUX1BQKDApOwogCU9pZAkJCXJlc3VsdDsKIAlSYW5nZVZhciAgICpydjsK KwlMaXN0CSAgICpuYW1lbGlzdDsKIAotCXJ2ID0gbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0KHRl eHRUb1F1YWxpZmllZE5hbWVMaXN0KHJlbG5hbWUpKTsKKwluYW1lbGlzdCA9IHRleHRUb1F1YWxp ZmllZE5hbWVMaXN0U2FmZShyZWxuYW1lLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VS Uk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwly diA9IG1ha2VSYW5nZVZhckZyb21OYW1lTGlzdFNhZmUobmFtZWxpc3QsIGZjaW5mby0+Y29udGV4 dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJUEdfUkVU VVJOX05VTEwoKTsKIAogCS8qIFdlIG1pZ2h0IG5vdCBldmVuIGhhdmUgcGVybWlzc2lvbnMgb24g dGhpcyByZWxhdGlvbjsgZG9uJ3QgbG9jayBpdC4gKi8KLQlyZXN1bHQgPSBSYW5nZVZhckdldFJl bGlkKHJ2LCBOb0xvY2ssIGZhbHNlKTsKLQorCXJlc3VsdCA9IFJhbmdlVmFyR2V0UmVsaWRFeHRl bmRlZFNhZmUocnYsIE5vTG9jaywgMCwgTlVMTCwgTlVMTCwKKwkJCQkJCQkJCQkgIGZjaW5mby0+ Y29udGV4dCk7CiAJUEdfUkVUVVJOX09JRChyZXN1bHQpOwogfQogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvdmFybGVuYS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Zhcmxl bmEuYwppbmRleCA3Y2FmNzAwZmQ2MS4uZDBmMjQxZDM3ZTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Zhcmxl bmEuYwpAQCAtMjcxNSw2ICsyNzE1LDEyIEBAIG5hbWVfdGV4dChQR19GVU5DVElPTl9BUkdTKQog ICovCiBMaXN0ICoKIHRleHRUb1F1YWxpZmllZE5hbWVMaXN0KHRleHQgKnRleHR2YWwpCit7CisJ cmV0dXJuIHRleHRUb1F1YWxpZmllZE5hbWVMaXN0U2FmZSh0ZXh0dmFsLCBOVUxMKTsKK30KKwor TGlzdCAqCit0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdFNhZmUodGV4dCAqdGV4dHZhbCwgTm9kZSAq ZXNjb250ZXh0KQogewogCWNoYXIJICAgKnJhd25hbWU7CiAJTGlzdAkgICAqcmVzdWx0ID0gTklM OwpAQCAtMjcyNiwxMiArMjczMiwxMiBAQCB0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdCh0ZXh0ICp0 ZXh0dmFsKQogCXJhd25hbWUgPSB0ZXh0X3RvX2NzdHJpbmcodGV4dHZhbCk7CiAKIAlpZiAoIVNw bGl0SWRlbnRpZmllclN0cmluZyhyYXduYW1lLCAnLicsICZuYW1lbGlzdCkpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZXNjb250ZXh0LCBOSUwsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9J TlZBTElEX05BTUUpLAogCQkJCSBlcnJtc2coImludmFsaWQgbmFtZSBzeW50YXgiKSkpOwogCiAJ aWYgKG5hbWVsaXN0ID09IE5JTCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihlc2NvbnRl eHQsIE5JTCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfTkFNRSksCiAJCQkJIGVycm1z ZygiaW52YWxpZCBuYW1lIHN5bnRheCIpKSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvbmFtZXNwYWNlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCmluZGV4 IDFhMjU5NzM2ODVjLi4xNTNhNDM5ZTM3NCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9uYW1lc3BhY2UuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCkBAIC0x MDMsNiArMTAzLDExIEBAIGV4dGVybiBPaWQJUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKGNvbnN0 IFJhbmdlVmFyICpyZWxhdGlvbiwKIAkJCQkJCQkJCSBMT0NLTU9ERSBsb2NrbW9kZSwgdWludDMy IGZsYWdzLAogCQkJCQkJCQkJIFJhbmdlVmFyR2V0UmVsaWRDYWxsYmFjayBjYWxsYmFjaywKIAkJ CQkJCQkJCSB2b2lkICpjYWxsYmFja19hcmcpOworZXh0ZXJuIE9pZCBSYW5nZVZhckdldFJlbGlk RXh0ZW5kZWRTYWZlKGNvbnN0IFJhbmdlVmFyICpyZWxhdGlvbiwKKwkJCQkJCQkJCQlMT0NLTU9E RSBsb2NrbW9kZSwgdWludDMyIGZsYWdzLAorCQkJCQkJCQkJCVJhbmdlVmFyR2V0UmVsaWRDYWxs YmFjayBjYWxsYmFjaywKKwkJCQkJCQkJCQl2b2lkICpjYWxsYmFja19hcmcsCisJCQkJCQkJCQkJ Tm9kZSAqZXNjb250ZXh0KTsKIGV4dGVybiBPaWQJUmFuZ2VWYXJHZXRDcmVhdGlvbk5hbWVzcGFj ZShjb25zdCBSYW5nZVZhciAqbmV3UmVsYXRpb24pOwogZXh0ZXJuIE9pZAlSYW5nZVZhckdldEFu ZENoZWNrQ3JlYXRpb25OYW1lc3BhY2UoUmFuZ2VWYXIgKnJlbGF0aW9uLAogCQkJCQkJCQkJCQkJ IExPQ0tNT0RFIGxvY2ttb2RlLApAQCAtMTY4LDYgKzE3Myw3IEBAIGV4dGVybiBPaWQJTG9va3Vw Q3JlYXRpb25OYW1lc3BhY2UoY29uc3QgY2hhciAqbnNwbmFtZSk7CiBleHRlcm4gdm9pZCBDaGVj a1NldE5hbWVzcGFjZShPaWQgb2xkTnNwT2lkLCBPaWQgbnNwT2lkKTsKIGV4dGVybiBPaWQJUXVh bGlmaWVkTmFtZUdldENyZWF0aW9uTmFtZXNwYWNlKGNvbnN0IExpc3QgKm5hbWVzLCBjaGFyICoq b2JqbmFtZV9wKTsKIGV4dGVybiBSYW5nZVZhciAqbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0KGNv bnN0IExpc3QgKm5hbWVzKTsKK2V4dGVybiBSYW5nZVZhciAqbWFrZVJhbmdlVmFyRnJvbU5hbWVM aXN0U2FmZShjb25zdCBMaXN0ICpuYW1lcywgTm9kZSAqZXNjb250ZXh0KTsKIGV4dGVybiBjaGFy ICpOYW1lTGlzdFRvU3RyaW5nKGNvbnN0IExpc3QgKm5hbWVzKTsKIGV4dGVybiBjaGFyICpOYW1l TGlzdFRvUXVvdGVkU3RyaW5nKGNvbnN0IExpc3QgKm5hbWVzKTsKIApkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvdXRpbHMvdmFybGVuYS5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvdmFybGVuYS5oCmlu ZGV4IDRiMzI1NzRhMDc1Li41YmM3OGFhMDJjMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRp bHMvdmFybGVuYS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3ZhcmxlbmEuaApAQCAtMjcsNiAr MjcsNyBAQCBleHRlcm4gaW50CXZhcnN0cl9sZXZlbnNodGVpbl9sZXNzX2VxdWFsKGNvbnN0IGNo YXIgKnNvdXJjZSwgaW50IHNsZW4sCiAJCQkJCQkJCQkJICBpbnQgaW5zX2MsIGludCBkZWxfYywg aW50IHN1Yl9jLAogCQkJCQkJCQkJCSAgaW50IG1heF9kLCBib29sIHRydXN0ZWQpOwogZXh0ZXJu IExpc3QgKnRleHRUb1F1YWxpZmllZE5hbWVMaXN0KHRleHQgKnRleHR2YWwpOworZXh0ZXJuIExp c3QgKnRleHRUb1F1YWxpZmllZE5hbWVMaXN0U2FmZSh0ZXh0ICp0ZXh0dmFsLCBOb2RlICplc2Nv bnRleHQpOwogZXh0ZXJuIGJvb2wgU3BsaXRJZGVudGlmaWVyU3RyaW5nKGNoYXIgKnJhd3N0cmlu ZywgY2hhciBzZXBhcmF0b3IsCiAJCQkJCQkJCSAgTGlzdCAqKm5hbWVsaXN0KTsKIGV4dGVybiBi b29sIFNwbGl0RGlyZWN0b3JpZXNTdHJpbmcoY2hhciAqcmF3c3RyaW5nLCBjaGFyIHNlcGFyYXRv ciwKLS0gCjIuMzQuMQoK --000000000000549053064ce1dba3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20-0019-introduce-float8-safe-function.patch" Content-Disposition: attachment; filename="v20-0019-introduce-float8-safe-function.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmoi9lya5 RnJvbSBkMzZjYzljMDI1NmI5ODU3MDcwYWY3ZDVmNzE3MWRlNjRkY2UwNjVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMiBKYW4gMjAyNiAxNjoxNDoyOCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjIw IDE5LzIzXSBpbnRyb2R1Y2UgZmxvYXQ4IHNhZmUgZnVuY3Rpb24KCnRoaXMgcGF0Y2ggaW50cm9k dWNlIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb246CmZsb2F0OF9wbF9zYWZlCmZsb2F0OF9taV9zYWZl CmZsb2F0OF9tdWxfc2FmZQpmbG9hdDhfZGl2X3NhZmUKCnJlZmFjdG9yaW5nIGV4aXN0aW5nIGZ1 bmN0aW9uIGlzIGJlIHRvbyBpbnZhc2l2ZS4gIHRodXMgYWRkIHRoZXNlIG5ldyBmdW5jdGlvbnMu Ckl0J3MgY2xvc2UgdG8gZXhpc3Rpbmcgbm9uLXNhZmUgdmVyc2lvbiBmdW5jdGlvbnMuCgpkaXNj dXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhO Vmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9pbmNsdWRlL3V0 aWxzL2Zsb2F0LmggfCA3OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCA1OCBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxv YXQuaAppbmRleCBkMmU5ODk5NjBhNS4uODcyM2I0YzAwYjAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3V0aWxzL2Zsb2F0LmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaApAQCAtMTA5 LDE2ICsxMDksMjQgQEAgZmxvYXQ0X3BsKGNvbnN0IGZsb2F0NCB2YWwxLCBjb25zdCBmbG9hdDQg dmFsMikKIAlyZXR1cm4gcmVzdWx0OwogfQogCitzdGF0aWMgaW5saW5lIGZsb2F0OAorZmxvYXQ4 X3BsX3NhZmUoY29uc3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyLCBzdHJ1Y3QgTm9k ZSAqZXNjb250ZXh0KQoreworCWZsb2F0OAkJcmVzdWx0OworCisJcmVzdWx0ID0gdmFsMSArIHZh bDI7CisJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZih2YWwxKSAmJiAhaXNp bmYodmFsMikpCisJeworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihlc2NvbnRleHQpOworCQlyZXR1 cm4gMC4wOworCX0KKwlyZXR1cm4gcmVzdWx0OworfQorCiBzdGF0aWMgaW5saW5lIGZsb2F0OAog ZmxvYXQ4X3BsKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIHsKLQlmbG9h dDgJCXJlc3VsdDsKLQotCXJlc3VsdCA9IHZhbDEgKyB2YWwyOwotCWlmICh1bmxpa2VseShpc2lu ZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVy Zmxvd19lcnJvcihOVUxMKTsKLQotCXJldHVybiByZXN1bHQ7CisJcmV0dXJuIGZsb2F0OF9wbF9z YWZlKHZhbDEsIHZhbDIsIE5VTEwpOzsKIH0KIAogc3RhdGljIGlubGluZSBmbG9hdDQKQEAgLTEz MywxNiArMTQxLDI0IEBAIGZsb2F0NF9taShjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0 IHZhbDIpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGljIGlubGluZSBmbG9hdDgKK2Zsb2F0 OF9taV9zYWZlKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMiwgc3RydWN0IE5v ZGUgKmVzY29udGV4dCkKK3sKKwlmbG9hdDgJCXJlc3VsdDsKKworCXJlc3VsdCA9IHZhbDEgLSB2 YWwyOworCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlz aW5mKHZhbDIpKQorCXsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoZXNjb250ZXh0KTsKKwkJcmV0 dXJuIDAuMDsKKwl9CisJcmV0dXJuIHJlc3VsdDsKK30KKwogc3RhdGljIGlubGluZSBmbG9hdDgK IGZsb2F0OF9taShjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCiB7Ci0JZmxv YXQ4CQlyZXN1bHQ7Ci0KLQlyZXN1bHQgPSB2YWwxIC0gdmFsMjsKLQlpZiAodW5saWtlbHkoaXNp bmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfb3Zl cmZsb3dfZXJyb3IoTlVMTCk7Ci0KLQlyZXR1cm4gcmVzdWx0OworCXJldHVybiBmbG9hdDhfbWlf c2FmZSh2YWwxLCB2YWwyLCBOVUxMKTsKIH0KIAogc3RhdGljIGlubGluZSBmbG9hdDQKQEAgLTE2 MCwxOSArMTc2LDMzIEBAIGZsb2F0NF9tdWwoY29uc3QgZmxvYXQ0IHZhbDEsIGNvbnN0IGZsb2F0 NCB2YWwyKQogfQogCiBzdGF0aWMgaW5saW5lIGZsb2F0OAotZmxvYXQ4X211bChjb25zdCBmbG9h dDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCitmbG9hdDhfbXVsX3NhZmUoY29uc3QgZmxvYXQ4 IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyLCBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQogewogCWZs b2F0OAkJcmVzdWx0OwogCiAJcmVzdWx0ID0gdmFsMSAqIHZhbDI7CiAJaWYgKHVubGlrZWx5KGlz aW5mKHJlc3VsdCkpICYmICFpc2luZih2YWwxKSAmJiAhaXNpbmYodmFsMikpCi0JCWZsb2F0X292 ZXJmbG93X2Vycm9yKE5VTEwpOworCXsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoZXNjb250ZXh0 KTsKKwkJcmV0dXJuIDAuMDsKKwl9CisKIAlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYg dmFsMSAhPSAwLjAgJiYgdmFsMiAhPSAwLjApCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcihOVUxM KTsKKwl7CisJCWZsb2F0X3VuZGVyZmxvd19lcnJvcihlc2NvbnRleHQpOworCQlyZXR1cm4gMC4w OworCX0KIAogCXJldHVybiByZXN1bHQ7CiB9CiAKK3N0YXRpYyBpbmxpbmUgZmxvYXQ4CitmbG9h dDhfbXVsKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKK3sKKwlyZXR1cm4g ZmxvYXQ4X211bF9zYWZlKHZhbDEsIHZhbDIsIE5VTEwpOworfQorCisKIHN0YXRpYyBpbmxpbmUg ZmxvYXQ0CiBmbG9hdDRfZGl2KGNvbnN0IGZsb2F0NCB2YWwxLCBjb25zdCBmbG9hdDQgdmFsMikK IHsKQEAgLTE5MCwyMSArMjIwLDI4IEBAIGZsb2F0NF9kaXYoY29uc3QgZmxvYXQ0IHZhbDEsIGNv bnN0IGZsb2F0NCB2YWwyKQogfQogCiBzdGF0aWMgaW5saW5lIGZsb2F0OAotZmxvYXQ4X2Rpdihj b25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCitmbG9hdDhfZGl2X3NhZmUoY29u c3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyLCBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0 KQogewogCWZsb2F0OAkJcmVzdWx0OwogCiAJaWYgKHVubGlrZWx5KHZhbDIgPT0gMC4wKSAmJiAh aXNuYW4odmFsMSkpCi0JCWZsb2F0X3plcm9fZGl2aWRlX2Vycm9yKE5VTEwpOworCQlmbG9hdF96 ZXJvX2RpdmlkZV9lcnJvcihlc2NvbnRleHQpOwogCXJlc3VsdCA9IHZhbDEgLyB2YWwyOwogCWlm ICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkpCi0JCWZsb2F0X292ZXJm bG93X2Vycm9yKE5VTEwpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihlc2NvbnRleHQpOwogCWlm ICh1bmxpa2VseShyZXN1bHQgPT0gMC4wKSAmJiB2YWwxICE9IDAuMCAmJiAhaXNpbmYodmFsMikp Ci0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9y KGVzY29udGV4dCk7CiAKIAlyZXR1cm4gcmVzdWx0OwogfQogCitzdGF0aWMgaW5saW5lIGZsb2F0 OAorZmxvYXQ4X2Rpdihjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCit7CisJ cmV0dXJuIGZsb2F0OF9kaXZfc2FmZSh2YWwxLCB2YWwyLCBOVUxMKTsKK30KKworCiAvKgogICog Um91dGluZXMgZm9yIE5hTi1hd2FyZSBjb21wYXJpc29ucwogICoKLS0gCjIuMzQuMQoK --000000000000549053064ce1dba3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v20-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmoi9lye7 RnJvbSA4OTYyMWJjMTg2YzMyOGIyYjcyOTU3OTQxYWI1MTQ2MWU2YjE0YmQyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjQgTm92IDIwMjUgMTQ6MjY6NTMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MCAxNy8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBqc29uYiB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l IGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdqc29uYic6OnJl Z3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgICAgY2Fz dHRhcmdldCAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgcHJv c3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0K IGpzb25iICAgICAgfCBib29sZWFuICAgICAgICAgIHwgICAgIDM1NTYgfCBlICAgICAgICAgICB8 IGYgICAgICAgICAgfCBqc29uYl9ib29sICAgIHwgYm9vbAoganNvbmIgICAgICB8IG51bWVyaWMg ICAgICAgICAgfCAgICAgMzQ0OSB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGpzb25iX251 bWVyaWMgfCBudW1lcmljCiBqc29uYiAgICAgIHwgc21hbGxpbnQgICAgICAgICB8ICAgICAzNDUw IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwganNvbmJfaW50MiAgICB8IGludDIKIGpzb25i ICAgICAgfCBpbnRlZ2VyICAgICAgICAgIHwgICAgIDM0NTEgfCBlICAgICAgICAgICB8IGYgICAg ICAgICAgfCBqc29uYl9pbnQ0ICAgIHwgaW50NAoganNvbmIgICAgICB8IGJpZ2ludCAgICAgICAg ICAgfCAgICAgMzQ1MiB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGpzb25iX2ludDggICAg fCBpbnQ4CiBqc29uYiAgICAgIHwgcmVhbCAgICAgICAgICAgICB8ICAgICAzNDUzIHwgZSAgICAg ICAgICAgfCBmICAgICAgICAgIHwganNvbmJfZmxvYXQ0ICB8IGZsb2F0NAoganNvbmIgICAgICB8 IGRvdWJsZSBwcmVjaXNpb24gfCAgICAgMjU4MCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8 IGpzb25iX2Zsb2F0OCAgfCBmbG9hdDgKKDcgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9z dGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1Nmlf NGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25iLmMgfCA3 NCArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDU4 IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9qc29uYi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25iLmMKaW5kZXgg MGEzYTc3ZWU3ODYuLjhlYTlmYTFjNzlkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvanNvbmIuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmIuYwpAQCAtMTgxOCw3 ICsxODE4LDcgQEAgSnNvbmJFeHRyYWN0U2NhbGFyKEpzb25iQ29udGFpbmVyICpqYmMsIEpzb25i VmFsdWUgKnJlcykKICAqIEVtaXQgY29ycmVjdCwgdHJhbnNsYXRhYmxlIGNhc3QgZXJyb3IgbWVz c2FnZQogICovCiBzdGF0aWMgdm9pZAotY2Fubm90Q2FzdEpzb25iVmFsdWUoZW51bSBqYnZUeXBl IHR5cGUsIGNvbnN0IGNoYXIgKnNxbHR5cGUpCitjYW5ub3RDYXN0SnNvbmJWYWx1ZShlbnVtIGpi dlR5cGUgdHlwZSwgY29uc3QgY2hhciAqc3FsdHlwZSwgTm9kZSAqZXNjb250ZXh0KQogewogCXN0 YXRpYyBjb25zdCBzdHJ1Y3QKIAl7CkBAIC0xODM5LDcgKzE4MzksNyBAQCBjYW5ub3RDYXN0SnNv bmJWYWx1ZShlbnVtIGpidlR5cGUgdHlwZSwgY29uc3QgY2hhciAqc3FsdHlwZSkKIAogCWZvciAo aSA9IDA7IGkgPCBsZW5ndGhvZihtZXNzYWdlcyk7IGkrKykKIAkJaWYgKG1lc3NhZ2VzW2ldLnR5 cGUgPT0gdHlwZSkKLQkJCWVyZXBvcnQoRVJST1IsCisJCQllcmV0dXJuKGVzY29udGV4dCwsCiAJ CQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAogCQkJCQkgZXJy bXNnKG1lc3NhZ2VzW2ldLm1zZywgc3FsdHlwZSkpKTsKIApAQCAtMTg1NCw3ICsxODU0LDEwIEBA IGpzb25iX2Jvb2woUEdfRlVOQ1RJT05fQVJHUykKIAlKc29uYlZhbHVlCXY7CiAKIAlpZiAoIUpz b25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUo di50eXBlLCAiYm9vbGVhbiIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi Ym9vbGVhbiIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJ aWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTE4NjMsNyArMTg2NiwxMCBAQCBqc29uYl9i b29sKFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJaWYgKHYudHlwZSAhPSBqYnZCb29sKQotCQlj YW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJib29sZWFuIik7CisJeworCQljYW5ub3RDYXN0 SnNvbmJWYWx1ZSh2LnR5cGUsICJib29sZWFuIiwgZmNpbmZvLT5jb250ZXh0KTsKKwkJUEdfUkVU VVJOX05VTEwoKTsKKwl9CiAKIAlQR19GUkVFX0lGX0NPUFkoaW4sIDApOwogCkBAIC0xODc4LDcg KzE4ODQsMTAgQEAganNvbmJfbnVtZXJpYyhQR19GVU5DVElPTl9BUkdTKQogCU51bWVyaWMJCXJl dFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290LCAmdikpCi0JCWNh bm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgIm51bWVyaWMiKTsKKwl7CisJCWNhbm5vdENhc3RK c29uYlZhbHVlKHYudHlwZSwgIm51bWVyaWMiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRV Uk5fTlVMTCgpOworCX0KIAogCWlmICh2LnR5cGUgPT0gamJ2TnVsbCkKIAl7CkBAIC0xODg3LDcg KzE4OTYsMTAgQEAganNvbmJfbnVtZXJpYyhQR19GVU5DVElPTl9BUkdTKQogCX0KIAogCWlmICh2 LnR5cGUgIT0gamJ2TnVtZXJpYykKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAibnVt ZXJpYyIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAibnVtZXJpYyIsIGZj aW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJLyoKIAkgKiB2LnZh bC5udW1lcmljIHBvaW50cyBpbnRvIGpzb25iIGJvZHksIHNvIHdlIG5lZWQgdG8gbWFrZSBhIGNv cHkgdG8KQEAgLTE5MDgsNyArMTkyMCwxMCBAQCBqc29uYl9pbnQyKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJRGF0dW0JCXJldFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290 LCAmdikpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgInNtYWxsaW50Iik7CisJewor CQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJzbWFsbGludCIsIGZjaW5mby0+Y29udGV4 dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQog CXsKQEAgLTE5MTcsNyArMTkzMiwxMCBAQCBqc29uYl9pbnQyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ fQogCiAJaWYgKHYudHlwZSAhPSBqYnZOdW1lcmljKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2 LnR5cGUsICJzbWFsbGludCIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi c21hbGxpbnQiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAog CXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2ludDIsCiAJCQkJCQkJCSAg IE51bWVyaWNHZXREYXR1bSh2LnZhbC5udW1lcmljKSk7CkBAIC0xOTM1LDcgKzE5NTMsMTAgQEAg anNvbmJfaW50NChQR19GVU5DVElPTl9BUkdTKQogCURhdHVtCQlyZXRWYWx1ZTsKIAogCWlmICgh SnNvbmJFeHRyYWN0U2NhbGFyKCZpbi0+cm9vdCwgJnYpKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1 ZSh2LnR5cGUsICJpbnRlZ2VyIik7CisJeworCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUs ICJpbnRlZ2VyIiwgZmNpbmZvLT5jb250ZXh0KTsKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAK IAlpZiAodi50eXBlID09IGpidk51bGwpCiAJewpAQCAtMTk0NCw3ICsxOTY1LDEwIEBAIGpzb25i X2ludDQoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVyaWMp Ci0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImludGVnZXIiKTsKKwl7CisJCWNhbm5v dENhc3RKc29uYlZhbHVlKHYudHlwZSwgImludGVnZXIiLCBmY2luZm8tPmNvbnRleHQpOworCQlQ R19SRVRVUk5fTlVMTCgpOworCX0KIAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShu dW1lcmljX2ludDQsCiAJCQkJCQkJCSAgIE51bWVyaWNHZXREYXR1bSh2LnZhbC5udW1lcmljKSk7 CkBAIC0xOTYyLDcgKzE5ODYsMTAgQEAganNvbmJfaW50OChQR19GVU5DVElPTl9BUkdTKQogCURh dHVtCQlyZXRWYWx1ZTsKIAogCWlmICghSnNvbmJFeHRyYWN0U2NhbGFyKCZpbi0+cm9vdCwgJnYp KQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJiaWdpbnQiKTsKKwl7CisJCWNhbm5v dENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJpZ2ludCIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBH X1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTE5 NzEsNyArMTk5OCwxMCBAQCBqc29uYl9pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJaWYg KHYudHlwZSAhPSBqYnZOdW1lcmljKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJi aWdpbnQiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJpZ2ludCIsIGZj aW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJcmV0VmFsdWUgPSBE aXJlY3RGdW5jdGlvbkNhbGwxKG51bWVyaWNfaW50OCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERh dHVtKHYudmFsLm51bWVyaWMpKTsKQEAgLTE5ODksNyArMjAxOSwxMCBAQCBqc29uYl9mbG9hdDQo UEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmV0VmFsdWU7CiAKIAlpZiAoIUpzb25iRXh0cmFj dFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi cmVhbCIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAicmVhbCIsIGZjaW5m by0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBq YnZOdWxsKQogCXsKQEAgLTE5OTgsNyArMjAzMSwxMCBAQCBqc29uYl9mbG9hdDQoUEdfRlVOQ1RJ T05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RK c29uYlZhbHVlKHYudHlwZSwgInJlYWwiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYu dHlwZSwgInJlYWwiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0K IAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2Zsb2F0NCwKIAkJCQkJ CQkJICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51bWVyaWMpKTsKQEAgLTIwMTYsNyArMjA1Miwx MCBAQCBqc29uYl9mbG9hdDgoUEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmV0VmFsdWU7CiAK IAlpZiAoIUpzb25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpz b25iVmFsdWUodi50eXBlLCAiZG91YmxlIHByZWNpc2lvbiIpOworCXsKKwkJY2Fubm90Q2FzdEpz b25iVmFsdWUodi50eXBlLCAiZG91YmxlIHByZWNpc2lvbiIsIGZjaW5mby0+Y29udGV4dCk7CisJ CVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAg LTIwMjUsNyArMjA2NCwxMCBAQCBqc29uYl9mbG9hdDgoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAK IAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlw ZSwgImRvdWJsZSBwcmVjaXNpb24iKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlw ZSwgImRvdWJsZSBwcmVjaXNpb24iLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVM TCgpOworCX0KIAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2Zsb2F0 OCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51bWVyaWMpKTsKLS0gCjIuMzQu MQoK --000000000000549053064ce1dba3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20-0018-refactor-float_overflow_error-float_underflow_error-float_zero_d.patch" Content-Disposition: attachment; filename="v20-0018-refactor-float_overflow_error-float_underflow_error-float_zero_d.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmoi9lyc6 RnJvbSA5MjgxMTIzM2FhOTJlYTE2ODBkMWYxYmUyZTM5ZmU5MDAxMjNhN2EzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgOSBEZWMgMjAyNSAxNDozNjozOSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjIw IDE4LzIzXSByZWZhY3RvcgogZmxvYXRfb3ZlcmZsb3dfZXJyb3IsZmxvYXRfdW5kZXJmbG93X2Vy cm9yLGZsb2F0X3plcm9fZGl2aWRlX2Vycm9yCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5l cy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBt YWlsLmdtYWlsLmNvbQotLS0KIGNvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9mbG9hdDQuYyB8ICAg MiArLQogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2Zsb2F0OC5jIHwgICA0ICstCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvZmxvYXQuYyAgICAgfCAxMDQgKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tCiBzcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oICAgICAgICAgfCAgMzQgKysrKystLS0t LQogNCBmaWxlcyBjaGFuZ2VkLCA3MiBpbnNlcnRpb25zKCspLCA3MiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ0LmMgYi9jb250cmliL2J0 cmVlX2dpc3QvYnRyZWVfZmxvYXQ0LmMKaW5kZXggYzA3NjkxOGZkNDguLmZhNmIzODUyZjkyIDEw MDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ0LmMKKysrIGIvY29udHJp Yi9idHJlZV9naXN0L2J0cmVlX2Zsb2F0NC5jCkBAIC0xMDEsNyArMTAxLDcgQEAgZmxvYXQ0X2Rp c3QoUEdfRlVOQ1RJT05fQVJHUykKIAogCXIgPSBhIC0gYjsKIAlpZiAodW5saWtlbHkoaXNpbmYo cikpICYmICFpc2luZihhKSAmJiAhaXNpbmYoYikpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7 CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUNChmYWJz ZihyKSk7CiB9CmRpZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMg Yi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMKaW5kZXggZDczODZlODg1YTIuLjc5 NzE5ZmRiNzI1IDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMK KysrIGIvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2Zsb2F0OC5jCkBAIC03OSw3ICs3OSw3IEBA IGdidF9mbG9hdDhfZGlzdChjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiLCBGbWdySW5mbyAq ZmxpbmZvKQogCiAJciA9IGFyZzEgLSBhcmcyOwogCWlmICh1bmxpa2VseShpc2luZihyKSkgJiYg IWlzaW5mKGFyZzEpICYmICFpc2luZihhcmcyKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsK KwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJcmV0dXJuIGZhYnMocik7CiB9CiAKQEAg LTEwOSw3ICsxMDksNyBAQCBmbG9hdDhfZGlzdChQR19GVU5DVElPTl9BUkdTKQogCiAJciA9IGEg LSBiOwogCWlmICh1bmxpa2VseShpc2luZihyKSkgJiYgIWlzaW5mKGEpICYmICFpc2luZihiKSkK LQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7 CiAKIAlQR19SRVRVUk5fRkxPQVQ4KGZhYnMocikpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2Zsb2F0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwppbmRl eCA5NzkyODBlMTQ3OC4uYjg2YTJiMDk3YTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9mbG9hdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCkBAIC04Mywy NSArODMsMjUgQEAgc3RhdGljIHZvaWQgaW5pdF9kZWdyZWVfY29uc3RhbnRzKHZvaWQpOwogICog VGhpcyBkb2VzIG1lYW4gdGhhdCB5b3UgZG9uJ3QgZ2V0IGEgdXNlZnVsIGVycm9yIGxvY2F0aW9u IGluZGljYXRvci4KICAqLwogcGdfbm9pbmxpbmUgdm9pZAotZmxvYXRfb3ZlcmZsb3dfZXJyb3Io dm9pZCkKK2Zsb2F0X292ZXJmbG93X2Vycm9yKHN0cnVjdCBOb2RlICplc2NvbnRleHQpCiB7Ci0J ZXJlcG9ydChFUlJPUiwKKwllcnJzYXZlKGVzY29udGV4dCwKIAkJCShlcnJjb2RlKEVSUkNPREVf TlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJIGVycm1zZygidmFsdWUgb3V0IG9mIHJh bmdlOiBvdmVyZmxvdyIpKSk7CiB9CiAKIHBnX25vaW5saW5lIHZvaWQKLWZsb2F0X3VuZGVyZmxv d19lcnJvcih2b2lkKQorZmxvYXRfdW5kZXJmbG93X2Vycm9yKHN0cnVjdCBOb2RlICplc2NvbnRl eHQpCiB7Ci0JZXJlcG9ydChFUlJPUiwKKwllcnJzYXZlKGVzY29udGV4dCwKIAkJCShlcnJjb2Rl KEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJIGVycm1zZygidmFsdWUg b3V0IG9mIHJhbmdlOiB1bmRlcmZsb3ciKSkpOwogfQogCiBwZ19ub2lubGluZSB2b2lkCi1mbG9h dF96ZXJvX2RpdmlkZV9lcnJvcih2b2lkKQorZmxvYXRfemVyb19kaXZpZGVfZXJyb3Ioc3RydWN0 IE5vZGUgKmVzY29udGV4dCkKIHsKLQllcmVwb3J0KEVSUk9SLAorCWVycnNhdmUoZXNjb250ZXh0 LAogCQkJKGVycmNvZGUoRVJSQ09ERV9ESVZJU0lPTl9CWV9aRVJPKSwKIAkJCSBlcnJtc2coImRp dmlzaW9uIGJ5IHplcm8iKSkpOwogfQpAQCAtMTQ2MCw5ICsxNDYwLDkgQEAgZHNxcnQoUEdfRlVO Q1RJT05fQVJHUykKIAogCXJlc3VsdCA9IHNxcnQoYXJnMSk7CiAJaWYgKHVubGlrZWx5KGlzaW5m KHJlc3VsdCkpICYmICFpc2luZihhcmcxKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJ ZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjAp ICYmIGFyZzEgIT0gMC4wKQotCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5k ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAt MTQ3OSw5ICsxNDc5LDkgQEAgZGNicnQoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IGNi cnQoYXJnMSk7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZihhcmcxKSkK LQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7 CiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjApICYmIGFyZzEgIT0gMC4wKQotCQlmbG9hdF91 bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdf UkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMTYxNywyNCArMTYxNywyNCBAQCBkcG93KFBH X0ZVTkNUSU9OX0FSR1MpCiAJCQkJaWYgKGFic3ggPT0gMS4wKQogCQkJCQlyZXN1bHQgPSAxLjA7 CiAJCQkJZWxzZSBpZiAoYXJnMiA+PSAwLjAgPyAoYWJzeCA+IDEuMCkgOiAoYWJzeCA8IDEuMCkp Ci0JCQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQkJCWZsb2F0X292ZXJmbG93X2Vycm9y KE5VTEwpOwogCQkJCWVsc2UKLQkJCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJCWZs b2F0X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKIAkJCX0KIAkJfQogCQllbHNlIGlmIChlcnJubyA9 PSBFUkFOR0UpCiAJCXsKIAkJCWlmIChyZXN1bHQgIT0gMC4wKQotCQkJCWZsb2F0X292ZXJmbG93 X2Vycm9yKCk7CisJCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJCQllbHNlCi0JCQkJ ZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwp OwogCQl9CiAJCWVsc2UKIAkJewogCQkJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQkJ CWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7 CiAJCQlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYgYXJnMSAhPSAwLjApCi0JCQkJZmxv YXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwog CQl9CiAJfQogCkBAIC0xNjc0LDE0ICsxNjc0LDE0IEBAIGRleHAoUEdfRlVOQ1RJT05fQVJHUykK IAkJaWYgKHVubGlrZWx5KGVycm5vID09IEVSQU5HRSkpCiAJCXsKIAkJCWlmIChyZXN1bHQgIT0g MC4wKQotCQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfb3ZlcmZsb3dfZXJy b3IoTlVMTCk7CiAJCQllbHNlCi0JCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJZmxv YXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCQl9CiAJCWVsc2UgaWYgKHVubGlrZWx5KGlzaW5m KHJlc3VsdCkpKQotCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93 X2Vycm9yKE5VTEwpOwogCQllbHNlIGlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wKSkKLQkJCWZs b2F0X3VuZGVyZmxvd19lcnJvcigpOworCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwog CX0KIAogCVBHX1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKQEAgLTE3MTIsOSArMTcxMiw5IEBAIGRs b2cxKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHQgPSBsb2coYXJnMSk7CiAJaWYgKHVubGlr ZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZihhcmcxKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJy b3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJaWYgKHVubGlrZWx5KHJlc3Vs dCA9PSAwLjApICYmIGFyZzEgIT0gMS4wKQotCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJ ZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQp OwogfQpAQCAtMTc0NSw5ICsxNzQ1LDkgQEAgZGxvZzEwKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAly ZXN1bHQgPSBsb2cxMChhcmcxKTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlz aW5mKGFyZzEpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19l cnJvcihOVUxMKTsKIAlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYgYXJnMSAhPSAxLjAp Ci0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVM TCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0xNzc4LDcgKzE3NzgsNyBA QCBkYWNvcyhQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gYWNvcyhhcmcxKTsKIAlpZiAo dW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZs b2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwog fQpAQCAtMTgwOSw3ICsxODA5LDcgQEAgZGFzaW4oUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3Vs dCA9IGFzaW4oYXJnMSk7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9hdF9v dmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JF VFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTE4MzUsNyArMTgzNSw3IEBAIGRhdGFuKFBHX0ZV TkNUSU9OX0FSR1MpCiAJICovCiAJcmVzdWx0ID0gYXRhbihhcmcxKTsKIAlpZiAodW5saWtlbHko aXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJm bG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMTg2 MSw3ICsxODYxLDcgQEAgZGF0YW4yKFBHX0ZVTkNUSU9OX0FSR1MpCiAJICovCiAJcmVzdWx0ID0g YXRhbjIoYXJnMSwgYXJnMik7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9h dF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBH X1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTE5MDIsNyArMTkwMiw3IEBAIGRjb3MoUEdf RlVOQ1RJT05fQVJHUykKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09G X1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnB1dCBpcyBvdXQgb2YgcmFuZ2UiKSkpOwogCWlmICh1 bmxpa2VseShpc2luZihyZXN1bHQpKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9 CkBAIC0xOTU3LDcgKzE5NTcsNyBAQCBkc2luKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiaW5w dXQgaXMgb3V0IG9mIHJhbmdlIikpKTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0J CWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwog CiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjEzNyw3ICsyMTM3LDcgQEAgZGFj b3NkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXJlc3VsdCA9IDkwLjAgKyBhc2luZF9xMSgtYXJnMSk7 CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9y KCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChy ZXN1bHQpOwogfQpAQCAtMjE3NCw3ICsyMTc0LDcgQEAgZGFzaW5kKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJCXJlc3VsdCA9IC1hc2luZF9xMSgtYXJnMSk7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVz dWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9y KE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjIwNiw3ICsyMjA2 LDcgQEAgZGF0YW5kKFBHX0ZVTkNUSU9OX0FSR1MpCiAJcmVzdWx0ID0gKGF0YW5fYXJnMSAvIGF0 YW5fMV8wKSAqIDQ1LjA7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0 X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdf UkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjI0Miw3ICsyMjQyLDcgQEAgZGF0YW4yZChQ R19GVU5DVElPTl9BUkdTKQogCXJlc3VsdCA9IChhdGFuMl9hcmcxX2FyZzIgLyBhdGFuXzFfMCkg KiA0NS4wOwogCiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9hdF9vdmVyZmxv d19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9G TE9BVDgocmVzdWx0KTsKIH0KQEAgLTIzNjUsNyArMjM2NSw3IEBAIGRjb3NkKFBHX0ZVTkNUSU9O X0FSR1MpCiAJcmVzdWx0ID0gc2lnbiAqIGNvc2RfcTEoYXJnMSk7CiAKIAlpZiAodW5saWtlbHko aXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJm bG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjQ4 Nyw3ICsyNDg3LDcgQEAgZHNpbmQoUEdfRlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSBzaWduICog c2luZF9xMShhcmcxKTsKIAogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSkKLQkJZmxvYXRf b3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19S RVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0yNjQ1LDcgKzI2NDUsNyBAQCBkY29zaChQR19G VU5DVElPTl9BUkdTKQogCQlyZXN1bHQgPSBnZXRfZmxvYXQ4X2luZmluaXR5KCk7CiAKIAlpZiAo dW5saWtlbHkocmVzdWx0ID09IDAuMCkpCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQlm bG9hdF91bmRlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7 CiB9CkBAIC0yNjY1LDcgKzI2NjUsNyBAQCBkdGFuaChQR19GVU5DVElPTl9BUkdTKQogCXJlc3Vs dCA9IHRhbmgoYXJnMSk7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0 X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdf UkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjc2NSw3ICsyNzY1LDcgQEAgZGVyZihQR19G VU5DVElPTl9BUkdTKQogCXJlc3VsdCA9IGVyZihhcmcxKTsKIAogCWlmICh1bmxpa2VseShpc2lu ZihyZXN1bHQpKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3df ZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0yNzg1LDcg KzI3ODUsNyBAQCBkZXJmYyhQR19GVU5DVElPTl9BUkdTKQogCXJlc3VsdCA9IGVyZmMoYXJnMSk7 CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9y KCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChy ZXN1bHQpOwogfQpAQCAtMjgxNCw3ICsyODE0LDcgQEAgZGdhbW1hKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJCS8qIFBlciBQT1NJWCwgYW4gaW5wdXQgb2YgLUluZiBjYXVzZXMgYSBkb21haW4gZXJyb3Ig Ki8KIAkJaWYgKGFyZzEgPCAwKQogCQl7Ci0JCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJ ZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJCQlyZXN1bHQgPSBnZXRfZmxvYXQ4X25hbigp OwkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCiAJCX0KIAkJZWxzZQpAQCAtMjgzNiwxMiArMjgz NiwxMiBAQCBkZ2FtbWEoUEdfRlVOQ1RJT05fQVJHUykKIAkJaWYgKGVycm5vICE9IDAgfHwgaXNp bmYocmVzdWx0KSB8fCBpc25hbihyZXN1bHQpKQogCQl7CiAJCQlpZiAocmVzdWx0ICE9IDAuMCkK LQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5V TEwpOwogCQkJZWxzZQotCQkJCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X3Vu ZGVyZmxvd19lcnJvcihOVUxMKTsKIAkJfQogCQllbHNlIGlmIChyZXN1bHQgPT0gMC4wKQotCQkJ ZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVMTCk7 CiAJfQogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwpAQCAtMjg3OSw3ICsyODc5LDcgQEAg ZGxnYW1tYShQR19GVU5DVElPTl9BUkdTKQogCSAqIHRvIHJlcG9ydCBvdmVyZmxvdywgYnV0IGl0 IHNob3VsZCBuZXZlciB1bmRlcmZsb3cuCiAJICovCiAJaWYgKGVycm5vID09IEVSQU5HRSB8fCAo aXNpbmYocmVzdWx0KSAmJiAhaXNpbmYoYXJnMSkpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigp OworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocmVz dWx0KTsKIH0KQEAgLTMwMTksNyArMzAxOSw3IEBAIGZsb2F0OF9jb21iaW5lKFBHX0ZVTkNUSU9O X0FSR1MpCiAJCXRtcCA9IFN4MSAvIE4xIC0gU3gyIC8gTjI7CiAJCVN4eCA9IFN4eDEgKyBTeHgy ICsgTjEgKiBOMiAqIHRtcCAqIHRtcCAvIE47CiAJCWlmICh1bmxpa2VseShpc2luZihTeHgpKSAm JiAhaXNpbmYoU3h4MSkgJiYgIWlzaW5mKFN4eDIpKQotCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3Io KTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCX0KIAogCS8qCkBAIC0zMDg2LDcg KzMwODYsNyBAQCBmbG9hdDhfYWNjdW0oUEdfRlVOQ1RJT05fQVJHUykKIAkJaWYgKGlzaW5mKFN4 KSB8fCBpc2luZihTeHgpKQogCQl7CiAJCQlpZiAoIWlzaW5mKHRyYW5zdmFsdWVzWzFdKSAmJiAh aXNpbmYobmV3dmFsKSkKLQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X292 ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJCQlTeHggPSBnZXRfZmxvYXQ4X25hbigpOwogCQl9CkBA IC0zMTY5LDcgKzMxNjksNyBAQCBmbG9hdDRfYWNjdW0oUEdfRlVOQ1RJT05fQVJHUykKIAkJaWYg KGlzaW5mKFN4KSB8fCBpc2luZihTeHgpKQogCQl7CiAJCQlpZiAoIWlzaW5mKHRyYW5zdmFsdWVz WzFdKSAmJiAhaXNpbmYobmV3dmFsKSkKLQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJ CWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJCQlTeHggPSBnZXRfZmxvYXQ4X25hbigp OwogCQl9CkBAIC0zNDM2LDcgKzM0MzYsNyBAQCBmbG9hdDhfcmVncl9hY2N1bShQR19GVU5DVElP Tl9BUkdTKQogCQkJCShpc2luZihTeHkpICYmCiAJCQkJICFpc2luZih0cmFuc3ZhbHVlc1sxXSkg JiYgIWlzaW5mKG5ld3ZhbFgpICYmCiAJCQkJICFpc2luZih0cmFuc3ZhbHVlc1szXSkgJiYgIWlz aW5mKG5ld3ZhbFkpKSkKLQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X292 ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJCQlpZiAoaXNpbmYoU3h4KSkKIAkJCQlTeHggPSBnZXRf ZmxvYXQ4X25hbigpOwpAQCAtMzYwOSwxNSArMzYwOSwxNSBAQCBmbG9hdDhfcmVncl9jb21iaW5l KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXRtcDEgPSBTeDEgLyBOMSAtIFN4MiAvIE4yOwogCQlTeHgg PSBTeHgxICsgU3h4MiArIE4xICogTjIgKiB0bXAxICogdG1wMSAvIE47CiAJCWlmICh1bmxpa2Vs eShpc2luZihTeHgpKSAmJiAhaXNpbmYoU3h4MSkgJiYgIWlzaW5mKFN4eDIpKQotCQkJZmxvYXRf b3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCQlTeSA9 IGZsb2F0OF9wbChTeTEsIFN5Mik7CiAJCXRtcDIgPSBTeTEgLyBOMSAtIFN5MiAvIE4yOwogCQlT eXkgPSBTeXkxICsgU3l5MiArIE4xICogTjIgKiB0bXAyICogdG1wMiAvIE47CiAJCWlmICh1bmxp a2VseShpc2luZihTeXkpKSAmJiAhaXNpbmYoU3l5MSkgJiYgIWlzaW5mKFN5eTIpKQotCQkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCQlT eHkgPSBTeHkxICsgU3h5MiArIE4xICogTjIgKiB0bXAxICogdG1wMiAvIE47CiAJCWlmICh1bmxp a2VseShpc2luZihTeHkpKSAmJiAhaXNpbmYoU3h5MSkgJiYgIWlzaW5mKFN4eTIpKQotCQkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCQlp ZiAoZmxvYXQ4X2VxKEN4MSwgQ3gyKSkKIAkJCUN4ID0gQ3gxOwogCQllbHNlCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaApp bmRleCBiMzQwNjc4Y2E5Mi4uZDJlOTg5OTYwYTUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0 aWxzL2Zsb2F0LmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaApAQCAtMzAsOSArMzAs OSBAQCBleHRlcm4gUEdETExJTVBPUlQgaW50IGV4dHJhX2Zsb2F0X2RpZ2l0czsKIC8qCiAgKiBV dGlsaXR5IGZ1bmN0aW9ucyBpbiBmbG9hdC5jCiAgKi8KLXBnX25vcmV0dXJuIGV4dGVybiB2b2lk IGZsb2F0X292ZXJmbG93X2Vycm9yKHZvaWQpOwotcGdfbm9yZXR1cm4gZXh0ZXJuIHZvaWQgZmxv YXRfdW5kZXJmbG93X2Vycm9yKHZvaWQpOwotcGdfbm9yZXR1cm4gZXh0ZXJuIHZvaWQgZmxvYXRf emVyb19kaXZpZGVfZXJyb3Iodm9pZCk7CitleHRlcm4gdm9pZCBmbG9hdF9vdmVyZmxvd19lcnJv cihzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KTsKK2V4dGVybiB2b2lkIGZsb2F0X3VuZGVyZmxvd19l cnJvcihzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KTsKK2V4dGVybiB2b2lkIGZsb2F0X3plcm9fZGl2 aWRlX2Vycm9yKHN0cnVjdCBOb2RlICplc2NvbnRleHQpOwogZXh0ZXJuIGludAlpc19pbmZpbml0 ZShmbG9hdDggdmFsKTsKIGV4dGVybiBmbG9hdDggZmxvYXQ4aW5faW50ZXJuYWwoY2hhciAqbnVt LCBjaGFyICoqZW5kcHRyX3AsCiAJCQkJCQkJCWNvbnN0IGNoYXIgKnR5cGVfbmFtZSwgY29uc3Qg Y2hhciAqb3JpZ19zdHJpbmcsCkBAIC0xMDQsNyArMTA0LDcgQEAgZmxvYXQ0X3BsKGNvbnN0IGZs b2F0NCB2YWwxLCBjb25zdCBmbG9hdDQgdmFsMikKIAogCXJlc3VsdCA9IHZhbDEgKyB2YWwyOwog CWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZh bDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihO VUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBAIC0xMTYsNyArMTE2LDcgQEAgZmxvYXQ4X3Bs KGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIAogCXJlc3VsdCA9IHZhbDEg KyB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYg IWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxv d19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBAIC0xMjgsNyArMTI4LDcgQEAg ZmxvYXQ0X21pKGNvbnN0IGZsb2F0NCB2YWwxLCBjb25zdCBmbG9hdDQgdmFsMikKIAogCXJlc3Vs dCA9IHZhbDEgLSB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYo dmFsMSkgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9h dF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBAIC0xNDAsNyAr MTQwLDcgQEAgZmxvYXQ4X21pKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikK IAogCXJlc3VsdCA9IHZhbDEgLSB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAm JiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigp OworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBA IC0xNTIsOSArMTUyLDkgQEAgZmxvYXQ0X211bChjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxv YXQ0IHZhbDIpCiAKIAlyZXN1bHQgPSB2YWwxICogdmFsMjsKIAlpZiAodW5saWtlbHkoaXNpbmYo cmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfb3ZlcmZs b3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJaWYgKHVubGlrZWx5 KHJlc3VsdCA9PSAwLjBmKSAmJiB2YWwxICE9IDAuMGYgJiYgdmFsMiAhPSAwLjBmKQotCQlmbG9h dF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJ cmV0dXJuIHJlc3VsdDsKIH0KQEAgLTE2Niw5ICsxNjYsOSBAQCBmbG9hdDhfbXVsKGNvbnN0IGZs b2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIAogCXJlc3VsdCA9IHZhbDEgKiB2YWwyOwog CWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZh bDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihO VUxMKTsKIAlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYgdmFsMSAhPSAwLjAgJiYgdmFs MiAhPSAwLjApCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQlmbG9hdF91bmRlcmZsb3df ZXJyb3IoTlVMTCk7CiAKIAlyZXR1cm4gcmVzdWx0OwogfQpAQCAtMTc5LDEyICsxNzksMTIgQEAg ZmxvYXQ0X2Rpdihjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIpCiAJZmxvYXQ0 CQlyZXN1bHQ7CiAKIAlpZiAodW5saWtlbHkodmFsMiA9PSAwLjBmKSAmJiAhaXNuYW4odmFsMSkp Ci0JCWZsb2F0X3plcm9fZGl2aWRlX2Vycm9yKCk7CisJCWZsb2F0X3plcm9fZGl2aWRlX2Vycm9y KE5VTEwpOwogCXJlc3VsdCA9IHZhbDEgLyB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1 bHQpKSAmJiAhaXNpbmYodmFsMSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0 X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCWlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wZikgJiYg dmFsMSAhPSAwLjBmICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7 CisJCWZsb2F0X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBA IC0xOTUsMTIgKzE5NSwxMiBAQCBmbG9hdDhfZGl2KGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBm bG9hdDggdmFsMikKIAlmbG9hdDgJCXJlc3VsdDsKIAogCWlmICh1bmxpa2VseSh2YWwyID09IDAu MCkgJiYgIWlzbmFuKHZhbDEpKQotCQlmbG9hdF96ZXJvX2RpdmlkZV9lcnJvcigpOworCQlmbG9h dF96ZXJvX2RpdmlkZV9lcnJvcihOVUxMKTsKIAlyZXN1bHQgPSB2YWwxIC8gdmFsMjsKIAlpZiAo dW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpKQotCQlmbG9hdF9vdmVyZmxv d19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAlpZiAodW5saWtlbHko cmVzdWx0ID09IDAuMCkgJiYgdmFsMSAhPSAwLjAgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF91 bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJcmV0 dXJuIHJlc3VsdDsKIH0KLS0gCjIuMzQuMQoK --000000000000549053064ce1dba3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v20-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmoi9lyh8 RnJvbSA1ZTVhYzgzNjMyYjhhMjZmYmVmNWRhNThlOTE5ZWI0ZTZlYzhhY2ViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxMjoxNDozNiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjIw IDE2LzIzXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIHRpbWVzdGFtcCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywKICAgICAgIGNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywg cHAucHJvbmFtZQpmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBj LmNhc3RmdW5jCmFuZCBwYy5jYXN0ZnVuYyA+IDAgYW5kIChjYXN0c291cmNlOjpyZWd0eXBlID0n dGltZXN0YW1wJzo6cmVndHlwZSkKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiAgICAg ICAgIGNhc3Rzb3VyY2UgICAgICAgICAgfCAgICAgICAgIGNhc3R0YXJnZXQgICAgICAgICAgfCBj YXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgICAgICBwcm9zcmMgICAgICAg ICB8ICAgcHJvbmFtZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KIHRpbWVzdGFtcCB3aXRob3V0IHRp bWUgem9uZSB8IGRhdGUgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAyMDI5IHwgYSAgICAg ICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wX2RhdGUgICAgICAgIHwgZGF0ZQogdGltZXN0 YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgdGltZSB3aXRob3V0IHRpbWUgem9uZSAgICAgIHwgICAg IDEzMTYgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCB0aW1lc3RhbXBfdGltZSAgICAgICAg fCB0aW1lCiB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUgfCB0aW1lc3RhbXAgd2l0aCB0aW1l IHpvbmUgICAgfCAgICAgMjAyOCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRpbWVzdGFt cF90aW1lc3RhbXB0eiB8IHRpbWVzdGFtcHR6CiB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUg fCB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUgfCAgICAgMTk2MSB8IGkgICAgICAgICAgIHwg ZiAgICAgICAgICB8IHRpbWVzdGFtcF9zY2FsZSAgICAgICB8IHRpbWVzdGFtcAooNCByb3dzKQoK ZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJq UWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvZGF0ZS5jICAgICAgfCAgNyArKysrKy0tCiBzcmMvYmFja2VuZC91dGlscy9h ZHQvdGltZXN0YW1wLmMgfCAxMCArKysrKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2Vy dGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2RhdGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKaW5kZXggYmU1Mjc3N2Q4 OGQuLmEwNTc0NzEwOTlkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKQEAgLTEzMzAsNyArMTMzMCwxMCBA QCB0aW1lc3RhbXBfZGF0ZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVzdGFtcAl0aW1lc3RhbXAg PSBQR19HRVRBUkdfVElNRVNUQU1QKDApOwogCURhdGVBRFQJCXJlc3VsdDsKIAotCXJlc3VsdCA9 IHRpbWVzdGFtcDJkYXRlX3NhZmUodGltZXN0YW1wLCBOVUxMKTsKKwlyZXN1bHQgPSB0aW1lc3Rh bXAyZGF0ZV9zYWZlKHRpbWVzdGFtcCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJP Ul9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOworCiAJUEdf UkVUVVJOX0RBVEVBRFQocmVzdWx0KTsKIH0KIApAQCAtMjAwOCw3ICsyMDExLDcgQEAgdGltZXN0 YW1wX3RpbWUoUEdfRlVOQ1RJT05fQVJHUykKIAkJUEdfUkVUVVJOX05VTEwoKTsKIAogCWlmICh0 aW1lc3RhbXAydG0odGltZXN0YW1wLCBOVUxMLCB0bSwgJmZzZWMsIE5VTEwsIE5VTEwpICE9IDAp Ci0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAs CiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRFVElNRV9WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJ CSBlcnJtc2coInRpbWVzdGFtcCBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdGlt ZXN0YW1wLmMKaW5kZXggMDQ4N2Y4NDU3ZjIuLjc0ZGYxM2M2MWM4IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3RpbWVzdGFtcC5jCkBAIC0zNTAsNyArMzUwLDggQEAgdGltZXN0YW1wX3NjYWxlKFBHX0ZVTkNU SU9OX0FSR1MpCiAKIAlyZXN1bHQgPSB0aW1lc3RhbXA7CiAKLQlBZGp1c3RUaW1lc3RhbXBGb3JU eXBtb2QoJnJlc3VsdCwgdHlwbW9kLCBOVUxMKTsKKwlpZiAoIUFkanVzdFRpbWVzdGFtcEZvclR5 cG1vZCgmcmVzdWx0LCB0eXBtb2QsIGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxM KCk7CiAKIAlQR19SRVRVUk5fVElNRVNUQU1QKHJlc3VsdCk7CiB9CkBAIC02NDMwLDggKzY0MzEs MTMgQEAgRGF0dW0KIHRpbWVzdGFtcF90aW1lc3RhbXB0eihQR19GVU5DVElPTl9BUkdTKQogewog CVRpbWVzdGFtcAl0aW1lc3RhbXAgPSBQR19HRVRBUkdfVElNRVNUQU1QKDApOworCVRpbWVzdGFt cFR6IHJlc3VsdDsKIAotCVBHX1JFVFVSTl9USU1FU1RBTVBUWih0aW1lc3RhbXAydGltZXN0YW1w dHoodGltZXN0YW1wKSk7CisJcmVzdWx0ID0gdGltZXN0YW1wMnRpbWVzdGFtcHR6X3NhZmUodGlt ZXN0YW1wLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5m by0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fVElNRVNUQU1Q VFoocmVzdWx0KTsKIH0KIAogLyoKLS0gCjIuMzQuMQoK --000000000000549053064ce1dba3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v20-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmoi9lyj9 RnJvbSAyMzAyZTc3YzViODcxMGYxMDM0Y2NmODQxOTg5YmY2NGU5YzAwZjEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxMjowNDo0MCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjIw IDE1LzIzXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIHRpbWVzdGFtcHR6IHRvIG90aGVyIHR5cGVz CiBwZXIgcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJl Z3R5cGUsIGNhc3RmdW5jLAogICAgICAgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgKGNhc3Rzb3VyY2U6OnJlZ3R5cGUg PSd0aW1lc3RhbXB0eic6OnJlZ3R5cGUpCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7Cgog ICAgICAgIGNhc3Rzb3VyY2UgICAgICAgIHwgICAgICAgICBjYXN0dGFyZ2V0ICAgICAgICAgIHwg Y2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAgICAgcHJvc3JjICAgICAg ICAgfCAgIHByb25hbWUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCiB0aW1lc3RhbXAgd2l0aCB0aW1lIHpv bmUgfCBkYXRlICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMTE3OCB8IGEgICAgICAgICAg IHwgZiAgICAgICAgICB8IHRpbWVzdGFtcHR6X2RhdGUgICAgICB8IGRhdGUKIHRpbWVzdGFtcCB3 aXRoIHRpbWUgem9uZSB8IHRpbWUgd2l0aG91dCB0aW1lIHpvbmUgICAgICB8ICAgICAyMDE5IHwg YSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wdHpfdGltZSAgICAgIHwgdGltZQog dGltZXN0YW1wIHdpdGggdGltZSB6b25lIHwgdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwg ICAgIDIwMjcgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCB0aW1lc3RhbXB0el90aW1lc3Rh bXAgfCB0aW1lc3RhbXAKIHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZSB8IHRpbWUgd2l0aCB0aW1l IHpvbmUgICAgICAgICB8ICAgICAxMzg4IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGlt ZXN0YW1wdHpfdGltZXR6ICAgIHwgdGltZXR6CiB0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUgfCB0 aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUgICAgfCAgICAgMTk2NyB8IGkgICAgICAgICAgIHwgZiAg ICAgICAgICB8IHRpbWVzdGFtcHR6X3NjYWxlICAgICB8IHRpbWVzdGFtcHR6Cig1IHJvd3MpCgpk aXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpR aXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5k L3V0aWxzL2FkdC9kYXRlLmMgICAgICB8ICA5ICsrKysrKy0tLQogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3RpbWVzdGFtcC5jIHwgMTAgKysrKysrKystLQogMiBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNl cnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9kYXRlLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCmluZGV4IGJjNGM2Nzc3 NWRkLi5iZTUyNzc3ZDg4ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCkBAIC0xNDA2LDcgKzE0MDYsMTAg QEAgdGltZXN0YW1wdHpfZGF0ZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVzdGFtcFR6IHRpbWVz dGFtcCA9IFBHX0dFVEFSR19USU1FU1RBTVAoMCk7CiAJRGF0ZUFEVAkJcmVzdWx0OwogCi0JcmVz dWx0ID0gdGltZXN0YW1wdHoyZGF0ZV9zYWZlKHRpbWVzdGFtcCwgTlVMTCk7CisJcmVzdWx0ID0g dGltZXN0YW1wdHoyZGF0ZV9zYWZlKHRpbWVzdGFtcCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAo U09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmFyZ3MpKQorCQlQR19SRVRVUk5fTlVMTCgpOwor CiAJUEdfUkVUVVJOX0RBVEVBRFQocmVzdWx0KTsKIH0KIApAQCAtMjAzNiw3ICsyMDM5LDcgQEAg dGltZXN0YW1wdHpfdGltZShQR19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fTlVMTCgpOwog CiAJaWYgKHRpbWVzdGFtcDJ0bSh0aW1lc3RhbXAsICZ0eiwgdG0sICZmc2VjLCBOVUxMLCBOVUxM KSAhPSAwKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERh dHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfREFURVRJTUVfVkFMVUVfT1VUX09GX1JBTkdF KSwKIAkJCQkgZXJybXNnKCJ0aW1lc3RhbXAgb3V0IG9mIHJhbmdlIikpKTsKIApAQCAtMjk1NSw3 ICsyOTU4LDcgQEAgdGltZXN0YW1wdHpfdGltZXR6KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCVBHX1JF VFVSTl9OVUxMKCk7CiAKIAlpZiAodGltZXN0YW1wMnRtKHRpbWVzdGFtcCwgJnR6LCB0bSwgJmZz ZWMsIE5VTEwsIE5VTEwpICE9IDApCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZv LT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRFVElNRV9WQUxV RV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coInRpbWVzdGFtcCBvdXQgb2YgcmFuZ2UiKSkp OwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKaW5kZXggOGNkOTdjY2E5MjYuLjA0ODdmODQ1 N2YyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCkBAIC04NzMsNyArODczLDggQEAgdGlt ZXN0YW1wdHpfc2NhbGUoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IHRpbWVzdGFtcDsK IAotCUFkanVzdFRpbWVzdGFtcEZvclR5cG1vZCgmcmVzdWx0LCB0eXBtb2QsIE5VTEwpOworCWlm ICghQWRqdXN0VGltZXN0YW1wRm9yVHlwbW9kKCZyZXN1bHQsIHR5cG1vZCwgZmNpbmZvLT5jb250 ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9USU1FU1RBTVBUWihyZXN1 bHQpOwogfQpAQCAtNjQ5Miw4ICs2NDkzLDEzIEBAIERhdHVtCiB0aW1lc3RhbXB0el90aW1lc3Rh bXAoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlUaW1lc3RhbXBUeiB0aW1lc3RhbXAgPSBQR19HRVRB UkdfVElNRVNUQU1QVFooMCk7CisJVGltZXN0YW1wCXJlc3VsdDsKIAotCVBHX1JFVFVSTl9USU1F U1RBTVAodGltZXN0YW1wdHoydGltZXN0YW1wKHRpbWVzdGFtcCkpOworCXJlc3VsdCA9IHRpbWVz dGFtcHR6MnRpbWVzdGFtcF9zYWZlKHRpbWVzdGFtcCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAo dW5saWtlbHkoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdfUkVU VVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9USU1FU1RBTVAocmVzdWx0KTsKIH0KIAogLyoKLS0g CjIuMzQuMQoK --000000000000549053064ce1dba3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v20-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmoi9lyl10 RnJvbSBkMTEzOGU4OGI3YmE0NTAwN2ZkMTJkNzQwMzUyNjkzODliZjhhMmYyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTIgRGVjIDIwMjUgMTU6MDU6MjYgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MCAxNC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbnRlcnZhbCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9u YW1lIGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1 bmMgYW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdpbnRlcnZh bCc6OnJlZ3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwg ICAgICAgY2FzdHRhcmdldCAgICAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0 aG9kIHwgICAgIHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KIGludGVydmFsICAgfCB0aW1lIHdpdGhvdXQgdGltZSB6b25l IHwgICAgIDE0MTkgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnRlcnZhbF90aW1lICB8 IHRpbWUKIGludGVydmFsICAgfCBpbnRlcnZhbCAgICAgICAgICAgICAgIHwgICAgIDEyMDAgfCBp ICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnRlcnZhbF9zY2FsZSB8IGludGVydmFsCigyIHJv d3MpCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpj d3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9i YWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMgICAgICB8IDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC90aW1lc3RhbXAuYyB8IDMgKystCiAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwppbmRleCBlOGRjOGQyNzZiZi4uYmM0YzY3 Nzc1ZGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwpAQCAtMjEwNiw3ICsyMTA2LDcgQEAgaW50ZXJ2YWxf dGltZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVBRFQJCXJlc3VsdDsKIAogCWlmIChJTlRFUlZB TF9OT1RfRklOSVRFKHNwYW4pKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+ Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfREFURVRJTUVfVkFMVUVf T1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJjYW5ub3QgY29udmVydCBpbmZpbml0ZSBpbnRl cnZhbCB0byB0aW1lIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Rp bWVzdGFtcC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCmluZGV4IDZmOGNm MjljOTEwLi44Y2Q5N2NjYTkyNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Rp bWVzdGFtcC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYwpAQCAtMTMz Miw3ICsxMzMyLDggQEAgaW50ZXJ2YWxfc2NhbGUoUEdfRlVOQ1RJT05fQVJHUykKIAlyZXN1bHQg PSBwYWxsb2Nfb2JqZWN0KEludGVydmFsKTsKIAkqcmVzdWx0ID0gKmludGVydmFsOwogCi0JQWRq dXN0SW50ZXJ2YWxGb3JUeXBtb2QocmVzdWx0LCB0eXBtb2QsIE5VTEwpOworCWlmICghQWRqdXN0 SW50ZXJ2YWxGb3JUeXBtb2QocmVzdWx0LCB0eXBtb2QsIGZjaW5mby0+Y29udGV4dCkpCisJCVBH X1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fSU5URVJWQUxfUChyZXN1bHQpOwogfQotLSAK Mi4zNC4xCgo= --000000000000549053064ce1dba3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v20-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmoi9lyo12 RnJvbSAzNGFiY2FmZmQ3YTM2OWJkYjFmMjVjNDIxMjFlN2I0ZmRmZjE1ZWY1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MzE6NTMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MCAxMi8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBmbG9hdDggdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZmxvYXQ4Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKICAgIGNhc3Rzb3VyY2UgICAg fCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAg cHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tCiBkb3VibGUgcHJlY2lzaW9uIHwgYmlnaW50ICAgICB8ICAgICAgNDgzIHwgYSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgZHRvaTggICAgICAgICAgfCBpbnQ4CiBkb3VibGUgcHJlY2lzaW9u IHwgc21hbGxpbnQgICB8ICAgICAgMjM3IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZHRv aTIgICAgICAgICAgfCBpbnQyCiBkb3VibGUgcHJlY2lzaW9uIHwgaW50ZWdlciAgICB8ICAgICAg MzE3IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZHRvaTQgICAgICAgICAgfCBpbnQ0CiBk b3VibGUgcHJlY2lzaW9uIHwgcmVhbCAgICAgICB8ICAgICAgMzEyIHwgYSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgZHRvZiAgICAgICAgICAgfCBmbG9hdDQKIGRvdWJsZSBwcmVjaXNpb24gfCBu dW1lcmljICAgIHwgICAgIDE3NDMgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBmbG9hdDhf bnVtZXJpYyB8IG51bWVyaWMKKDUgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1h aWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMgICB8IDEzICsr KysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMgICAgfCAgMiArLQogc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYyB8ICAzICsrLQogMyBmaWxlcyBjaGFuZ2VkLCAx MiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9mbG9hdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMKaW5kZXgg ZjY2MzNkZWQwOTIuLjk3OTI4MGUxNDc4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvZmxvYXQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwpAQCAtMTE5OSw5 ICsxMTk5LDE0IEBAIGR0b2YoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IChmbG9hdDQp IG51bTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKG51bSkpCi0JCWZs b2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0p IDAsCisJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKKwkJ CQllcnJtc2coInZhbHVlIG91dCBvZiByYW5nZTogb3ZlcmZsb3ciKSk7CisKIAlpZiAodW5saWtl bHkocmVzdWx0ID09IDAuMGYpICYmIG51bSAhPSAwLjApCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJv cigpOworCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAorCQkJCWVycmNvZGUo RVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCisJCQkJZXJybXNnKCJ2YWx1ZSBv dXQgb2YgcmFuZ2U6IHVuZGVyZmxvdyIpKTsKIAogCVBHX1JFVFVSTl9GTE9BVDQocmVzdWx0KTsK IH0KQEAgLTEyMjQsNyArMTIyOSw3IEBAIGR0b2k0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBS YW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDhfRklUU19J Tl9JTlQzMihudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRl eHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09G X1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnRlZ2VyIG91dCBvZiByYW5nZSIpKSk7CiAKQEAgLTEy NDksNyArMTI1NCw3IEBAIGR0b2kyKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBjaGVj ayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDhfRklUU19JTl9JTlQxNihu dW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1 bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwK IAkJCQkgZXJybXNnKCJzbWFsbGludCBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YwppbmRleCA4ZmQ1NTFiZDUyYi4uMTliYjMwZjJkMGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9pbnQ4LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYwpAQCAt MTMwNyw3ICsxMzA3LDcgQEAgZHRvaTgoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIFJhbmdlIGNo ZWNrICovCiAJaWYgKHVubGlrZWx5KGlzbmFuKG51bSkgfHwgIUZMT0FUOF9GSVRTX0lOX0lOVDY0 KG51bSkpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERh dHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0Up LAogCQkJCSBlcnJtc2coImJpZ2ludCBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251 bWVyaWMuYwppbmRleCA5MTYwNTMwMDdlYS4uNWMyZTEyZmU3OGUgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251 bWVyaWMuYwpAQCAtNDU1OSw3ICs0NTU5LDggQEAgZmxvYXQ4X251bWVyaWMoUEdfRlVOQ1RJT05f QVJHUykKIAlpbml0X3ZhcigmcmVzdWx0KTsKIAogCS8qIEFzc3VtZSB3ZSBuZWVkIG5vdCB3b3Jy eSBhYm91dCBsZWFkaW5nL3RyYWlsaW5nIHNwYWNlcyAqLwotCSh2b2lkKSBzZXRfdmFyX2Zyb21f c3RyKGJ1ZiwgYnVmLCAmcmVzdWx0LCAmZW5kcHRyLCBOVUxMKTsKKwlpZiAoIXNldF92YXJfZnJv bV9zdHIoYnVmLCBidWYsICZyZXN1bHQsICZlbmRwdHIsIGZjaW5mby0+Y29udGV4dCkpCisJCVBH X1JFVFVSTl9OVUxMKCk7CiAKIAlyZXMgPSBtYWtlX3Jlc3VsdCgmcmVzdWx0KTsKIAotLSAKMi4z NC4xCgo= --000000000000549053064ce1dba3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v20-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmoi9lyn11 RnJvbSBmY2VhMzBiZGMzNmRhZDg1Yjg0NDNmODEwYWU1NDEyNDJiMDIxYmUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxMzoxNTozMiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjIw IDEzLzIzXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGRhdGUgdG8gb3RoZXIgdHlwZXMgcGVyCiBw Z19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlwZSwg Y2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFtZSBm cm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5jIGFu ZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZGF0ZSc6OnJlZ3R5 cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCmNhc3Rzb3VyY2UgfCAgICAgICAgIGNh c3R0YXJnZXQgICAgICAgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8 ICAgICAgcHJvc3JjICAgICAgfCAgIHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KIGRhdGUgICAgICAgfCB0aW1lc3RhbXAgd2l0 aG91dCB0aW1lIHpvbmUgfCAgICAgMjAyNCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGRh dGVfdGltZXN0YW1wICAgfCB0aW1lc3RhbXAKIGRhdGUgICAgICAgfCB0aW1lc3RhbXAgd2l0aCB0 aW1lIHpvbmUgICAgfCAgICAgMTE3NCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGRhdGVf dGltZXN0YW1wdHogfCB0aW1lc3RhbXB0egooMiByb3dzKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9w b3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2 aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jIHwg MTcgKysrKysrLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDEx IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCmluZGV4IDYyMWI5MTc1YzEyLi5lOGRjOGQy NzZiZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCkBAIC03MzAsMTUgKzczMCw2IEBAIGRhdGUydGltZXN0 YW1wdHpfc2FmZShEYXRlQURUIGRhdGVWYWwsIE5vZGUgKmVzY29udGV4dCkKIAlyZXR1cm4gcmVz dWx0OwogfQogCi0vKgotICogUHJvbW90ZSBkYXRlIHRvIHRpbWVzdGFtcHR6LCB0aHJvd2luZyBl cnJvciBmb3Igb3ZlcmZsb3cuCi0gKi8KLXN0YXRpYyBUaW1lc3RhbXBUegotZGF0ZTJ0aW1lc3Rh bXB0eihEYXRlQURUIGRhdGVWYWwpCi17Ci0JcmV0dXJuIGRhdGUydGltZXN0YW1wdHpfc2FmZShk YXRlVmFsLCBOVUxMKTsKLX0KLQogLyoKICAqIGRhdGUydGltZXN0YW1wX25vX292ZXJmbG93CiAg KgpAQCAtMTMyMyw3ICsxMzE0LDkgQEAgZGF0ZV90aW1lc3RhbXAoUEdfRlVOQ1RJT05fQVJHUykK IAlEYXRlQURUCQlkYXRlVmFsID0gUEdfR0VUQVJHX0RBVEVBRFQoMCk7CiAJVGltZXN0YW1wCXJl c3VsdDsKIAotCXJlc3VsdCA9IGRhdGUydGltZXN0YW1wKGRhdGVWYWwpOworCXJlc3VsdCA9IGRh dGUydGltZXN0YW1wX3NhZmUoZGF0ZVZhbCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZihTT0ZUX0VS Uk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlQ R19SRVRVUk5fVElNRVNUQU1QKHJlc3VsdCk7CiB9CkBAIC0xMzk2LDcgKzEzODksOSBAQCBkYXRl X3RpbWVzdGFtcHR6KFBHX0ZVTkNUSU9OX0FSR1MpCiAJRGF0ZUFEVAkJZGF0ZVZhbCA9IFBHX0dF VEFSR19EQVRFQURUKDApOwogCVRpbWVzdGFtcFR6IHJlc3VsdDsKIAotCXJlc3VsdCA9IGRhdGUy dGltZXN0YW1wdHooZGF0ZVZhbCk7CisJcmVzdWx0ID0gZGF0ZTJ0aW1lc3RhbXB0el9zYWZlKGRh dGVWYWwsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZv LT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9USU1FU1RBTVAo cmVzdWx0KTsKIH0KLS0gCjIuMzQuMQoK --000000000000549053064ce1dba3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v20-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmoi9lyp13 RnJvbSBjMDYxMDhjYzY4YjY4MWE4OTQ0ZDYyZGNmNTBjNzcxYjUyZGZjOGE0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6Mjg6MjAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MCAxMS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBmbG9hdDQgdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZmxvYXQ0Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAgICBj YXN0dGFyZ2V0ICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAg cHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tCiByZWFsICAgICAgIHwgYmlnaW50ICAgICAgICAgICB8ICAgICAgNjUzIHwgYSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgZnRvaTggICAgICAgICAgfCBpbnQ4CiByZWFsICAgICAgIHwgc21h bGxpbnQgICAgICAgICB8ICAgICAgMjM4IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZnRv aTIgICAgICAgICAgfCBpbnQyCiByZWFsICAgICAgIHwgaW50ZWdlciAgICAgICAgICB8ICAgICAg MzE5IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZnRvaTQgICAgICAgICAgfCBpbnQ0CiBy ZWFsICAgICAgIHwgZG91YmxlIHByZWNpc2lvbiB8ICAgICAgMzExIHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgZnRvZCAgICAgICAgICAgfCBmbG9hdDgKIHJlYWwgICAgICAgfCBudW1lcmlj ICAgICAgICAgIHwgICAgIDE3NDIgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBmbG9hdDRf bnVtZXJpYyB8IG51bWVyaWMKKDUgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1h aWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMgICB8IDQgKyst LQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYyAgICB8IDIgKy0KIHNyYy9iYWNrZW5kL3V0 aWxzL2FkdC9udW1lcmljLmMgfCAzICsrLQogMyBmaWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMo KyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zs b2F0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwppbmRleCA2NDFlN2RlMjFhMC4u ZjY2MzNkZWQwOTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCkBAIC0xMjk4LDcgKzEyOTgsNyBAQCBm dG9pNChQR19GVU5DVElPTl9BUkdTKQogCiAJLyogUmFuZ2UgY2hlY2sgKi8KIAlpZiAodW5saWtl bHkoaXNuYW4obnVtKSB8fCAhRkxPQVQ0X0ZJVFNfSU5fSU5UMzIobnVtKSkpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiaW50 ZWdlciBvdXQgb2YgcmFuZ2UiKSkpOwogCkBAIC0xMzIzLDcgKzEzMjMsNyBAQCBmdG9pMihQR19G VU5DVElPTl9BUkdTKQogCiAJLyogUmFuZ2UgY2hlY2sgKi8KIAlpZiAodW5saWtlbHkoaXNuYW4o bnVtKSB8fCAhRkxPQVQ0X0ZJVFNfSU5fSU5UMTYobnVtKSkpCi0JCWVyZXBvcnQoRVJST1IsCisJ CWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09E RV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygic21hbGxpbnQgb3V0 IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKaW5kZXggZGEzOTIxODk3NDMuLjhmZDU1 MWJkNTJiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKQEAgLTEzNDIsNyArMTM0Miw3IEBAIGZ0b2k4KFBH X0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25h bihudW0pIHx8ICFGTE9BVDRfRklUU19JTl9JTlQ2NChudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwK KwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJD T0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJiaWdpbnQgb3V0 IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVy aWMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKaW5kZXggZDY2ZmI4NjY2MmYu LjkxNjA1MzAwN2VhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKQEAgLTQ2NTcsNyArNDY1Nyw4 IEBAIGZsb2F0NF9udW1lcmljKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW5pdF92YXIoJnJlc3VsdCk7 CiAKIAkvKiBBc3N1bWUgd2UgbmVlZCBub3Qgd29ycnkgYWJvdXQgbGVhZGluZy90cmFpbGluZyBz cGFjZXMgKi8KLQkodm9pZCkgc2V0X3Zhcl9mcm9tX3N0cihidWYsIGJ1ZiwgJnJlc3VsdCwgJmVu ZHB0ciwgTlVMTCk7CisJaWYgKCFzZXRfdmFyX2Zyb21fc3RyKGJ1ZiwgYnVmLCAmcmVzdWx0LCAm ZW5kcHRyLCBmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJcmVzID0g bWFrZV9yZXN1bHQoJnJlc3VsdCk7CiAKLS0gCjIuMzQuMQoK --000000000000549053064ce1dba3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v20-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmoi9lyr14 RnJvbSBiZjUwMjRiNzM0NjY1NjNmYTAzYzY0MDFlMzFmZDg5Yzg3ZThlMjViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjU6MzcgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MCAxMC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBudW1lcmljIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUgZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVu YyBhbmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ251bWVyaWMn OjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgpjYXN0c291cmNlIHwgICAg Y2FzdHRhcmdldCAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAg IHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLQogbnVtZXJpYyAgICB8IGJpZ2ludCAgICAgICAgICAgfCAgICAgMTc3OSB8IGEgICAgICAg ICAgIHwgZiAgICAgICAgICB8IG51bWVyaWNfaW50OCAgIHwgaW50OAogbnVtZXJpYyAgICB8IHNt YWxsaW50ICAgICAgICAgfCAgICAgMTc4MyB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IG51 bWVyaWNfaW50MiAgIHwgaW50MgogbnVtZXJpYyAgICB8IGludGVnZXIgICAgICAgICAgfCAgICAg MTc0NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IG51bWVyaWNfaW50NCAgIHwgaW50NAog bnVtZXJpYyAgICB8IHJlYWwgICAgICAgICAgICAgfCAgICAgMTc0NSB8IGkgICAgICAgICAgIHwg ZiAgICAgICAgICB8IG51bWVyaWNfZmxvYXQ0IHwgZmxvYXQ0CiBudW1lcmljICAgIHwgZG91Ymxl IHByZWNpc2lvbiB8ICAgICAxNzQ2IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgbnVtZXJp Y19mbG9hdDggfCBmbG9hdDgKIG51bWVyaWMgICAgfCBtb25leSAgICAgICAgICAgIHwgICAgIDM4 MjQgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBudW1lcmljX2Nhc2ggICB8IG1vbmV5CiBu dW1lcmljICAgIHwgbnVtZXJpYyAgICAgICAgICB8ICAgICAxNzAzIHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgbnVtZXJpYyAgICAgICAgfCBudW1lcmljCig3IHJvd3MpCgpkaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL0NBQ0p1ZnhIQ016ckhPVz13UmU4TDMwck1oQjNzandBdjFM RTkyOEZhN3N4TXUxVHgtZ0BtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC9udW1lcmljLmMgfCA1OCArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L251bWVyaWMuYwppbmRleCBkMjViOGFkNTA1ZC4uZDY2ZmI4NjY2MmYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L251bWVyaWMuYwpAQCAtMTI0NCw3ICsxMjQ0LDggQEAgbnVtZXJpYwkJKFBHX0ZVTkNUSU9OX0FS R1MpCiAJICovCiAJaWYgKE5VTUVSSUNfSVNfU1BFQ0lBTChudW0pKQogCXsKLQkJKHZvaWQpIGFw cGx5X3R5cG1vZF9zcGVjaWFsKG51bSwgdHlwbW9kLCBOVUxMKTsKKwkJaWYgKCFhcHBseV90eXBt b2Rfc3BlY2lhbChudW0sIHR5cG1vZCwgZmNpbmZvLT5jb250ZXh0KSkKKwkJCVBHX1JFVFVSTl9O VUxMKCk7CiAJCVBHX1JFVFVSTl9OVU1FUklDKGR1cGxpY2F0ZV9udW1lcmljKG51bSkpOwogCX0K IApAQCAtMTI5NSw4ICsxMjk2LDkgQEAgbnVtZXJpYwkJKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW5p dF92YXIoJnZhcik7CiAKIAlzZXRfdmFyX2Zyb21fbnVtKG51bSwgJnZhcik7Ci0JKHZvaWQpIGFw cGx5X3R5cG1vZCgmdmFyLCB0eXBtb2QsIE5VTEwpOwotCW5ldyA9IG1ha2VfcmVzdWx0KCZ2YXIp OworCWlmICghYXBwbHlfdHlwbW9kKCZ2YXIsIHR5cG1vZCwgZmNpbmZvLT5jb250ZXh0KSkKKwkJ UEdfUkVUVVJOX05VTEwoKTsKKwluZXcgPSBtYWtlX3Jlc3VsdF9zYWZlKCZ2YXIsIGZjaW5mby0+ Y29udGV4dCk7CiAKIAlmcmVlX3ZhcigmdmFyKTsKIApAQCAtMzAxOCw3ICszMDIwLDEwIEBAIG51 bWVyaWNfbXVsKFBHX0ZVTkNUSU9OX0FSR1MpCiAJTnVtZXJpYwkJbnVtMiA9IFBHX0dFVEFSR19O VU1FUklDKDEpOwogCU51bWVyaWMJCXJlczsKIAotCXJlcyA9IG51bWVyaWNfbXVsX3NhZmUobnVt MSwgbnVtMiwgTlVMTCk7CisJcmVzID0gbnVtZXJpY19tdWxfc2FmZShudW0xLCBudW0yLCBmY2lu Zm8tPmNvbnRleHQpOworCisJaWYgKHVubGlrZWx5KFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZv LT5jb250ZXh0KSkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fTlVNRVJJQyhy ZXMpOwogfQpAQCAtNDM5Miw5ICs0Mzk3LDE1IEBAIG51bWVyaWNfaW50NF9zYWZlKE51bWVyaWMg bnVtLCBOb2RlICplc2NvbnRleHQpCiBEYXR1bQogbnVtZXJpY19pbnQ0KFBHX0ZVTkNUSU9OX0FS R1MpCiB7CisJaW50MzIJCXJlc3VsdDsKIAlOdW1lcmljCQludW0gPSBQR19HRVRBUkdfTlVNRVJJ QygwKTsKIAotCVBHX1JFVFVSTl9JTlQzMihudW1lcmljX2ludDRfc2FmZShudW0sIE5VTEwpKTsK KwlyZXN1bHQgPSBudW1lcmljX2ludDRfc2FmZShudW0sIGZjaW5mby0+Y29udGV4dCk7CisKKwlp ZiAodW5saWtlbHkoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdf UkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9JTlQzMihyZXN1bHQpOwogfQogCiAvKgpAQCAt NDQ2Miw5ICs0NDczLDE1IEBAIG51bWVyaWNfaW50OF9zYWZlKE51bWVyaWMgbnVtLCBOb2RlICpl c2NvbnRleHQpCiBEYXR1bQogbnVtZXJpY19pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CisJaW50 NjQJCXJlc3VsdDsKIAlOdW1lcmljCQludW0gPSBQR19HRVRBUkdfTlVNRVJJQygwKTsKIAotCVBH X1JFVFVSTl9JTlQ2NChudW1lcmljX2ludDhfc2FmZShudW0sIE5VTEwpKTsKKwlyZXN1bHQgPSBu dW1lcmljX2ludDhfc2FmZShudW0sIGZjaW5mby0+Y29udGV4dCk7CisKKwlpZiAodW5saWtlbHko U09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdfUkVUVVJOX05VTEwo KTsKKworCVBHX1JFVFVSTl9JTlQ2NChyZXN1bHQpOwogfQogCiAKQEAgLTQ0ODgsMTEgKzQ1MDUs MTEgQEAgbnVtZXJpY19pbnQyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaWYgKE5VTUVSSUNfSVNfU1BF Q0lBTChudW0pKQogCXsKIAkJaWYgKE5VTUVSSUNfSVNfTkFOKG51bSkpCi0JCQllcmVwb3J0KEVS Uk9SLAorCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJjYW5ub3Qg Y29udmVydCBOYU4gdG8gJXMiLCAic21hbGxpbnQiKSkpOwogCQllbHNlCi0JCQllcmVwb3J0KEVS Uk9SLAorCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJjYW5ub3Qg Y29udmVydCBpbmZpbml0eSB0byAlcyIsICJzbWFsbGludCIpKSk7CiAJfQpAQCAtNDUwMSwxMiAr NDUxOCwxMiBAQCBudW1lcmljX2ludDIoUEdfRlVOQ1RJT05fQVJHUykKIAlpbml0X3Zhcl9mcm9t X251bShudW0sICZ4KTsKIAogCWlmICghbnVtZXJpY3Zhcl90b19pbnQ2NCgmeCwgJnZhbCkpCi0J CWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJ CQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVy cm1zZygic21hbGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIAogCWlmICh1bmxpa2VseSh2YWwgPCBQ R19JTlQxNl9NSU4pIHx8IHVubGlrZWx5KHZhbCA+IFBHX0lOVDE2X01BWCkpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygic21h bGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIApAQCAtNDU3MSwxMCArNDU4OCwxNCBAQCBudW1lcmlj X2Zsb2F0OChQR19GVU5DVElPTl9BUkdTKQogCiAJdG1wID0gRGF0dW1HZXRDU3RyaW5nKERpcmVj dEZ1bmN0aW9uQ2FsbDEobnVtZXJpY19vdXQsCiAJCQkJCQkJCQkJCSAgTnVtZXJpY0dldERhdHVt KG51bSkpKTsKLQotCXJlc3VsdCA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEoZmxvYXQ4aW4sIENTdHJp bmdHZXREYXR1bSh0bXApKTsKLQotCXBmcmVlKHRtcCk7CisJaWYgKCFEaXJlY3RJbnB1dEZ1bmN0 aW9uQ2FsbFNhZmUoZmxvYXQ4aW4sIHRtcCwKKwkJCQkJCQkJCSBJbnZhbGlkT2lkLCAtMSwKKwkJ CQkJCQkJCSAoTm9kZSAqKSBmY2luZm8tPmNvbnRleHQsCisJCQkJCQkJCQkgJnJlc3VsdCkpCisJ eworCQlwZnJlZSh0bXApOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCVBHX1JFVFVSTl9E QVRVTShyZXN1bHQpOwogfQpAQCAtNDY2Niw3ICs0Njg3LDE0IEBAIG51bWVyaWNfZmxvYXQ0KFBH X0ZVTkNUSU9OX0FSR1MpCiAJdG1wID0gRGF0dW1HZXRDU3RyaW5nKERpcmVjdEZ1bmN0aW9uQ2Fs bDEobnVtZXJpY19vdXQsCiAJCQkJCQkJCQkJCSAgTnVtZXJpY0dldERhdHVtKG51bSkpKTsKIAot CXJlc3VsdCA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEoZmxvYXQ0aW4sIENTdHJpbmdHZXREYXR1bSh0 bXApKTsKKwlpZiAoIURpcmVjdElucHV0RnVuY3Rpb25DYWxsU2FmZShmbG9hdDRpbiwgdG1wLAor CQkJCQkJCQkJIEludmFsaWRPaWQsIC0xLAorCQkJCQkJCQkJIChOb2RlICopIGZjaW5mby0+Y29u dGV4dCwKKwkJCQkJCQkJCSAmcmVzdWx0KSkKKwl7CisJCXBmcmVlKHRtcCk7CisJCVBHX1JFVFVS Tl9OVUxMKCk7CisJfQogCiAJcGZyZWUodG1wKTsKIAotLSAKMi4zNC4xCgo= --000000000000549053064ce1dba3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v20-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmoi9lys15 RnJvbSA0NzFmOWVmYmUzNjNjMTU5MjEwNmMzMTVjMjE0ODQzNGY0NjQ5MDM0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjI6MDAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MCAwOS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBiaWdpbnQgdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnYmlnaW50Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAgICBj YXN0dGFyZ2V0ICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBw cm9zcmMgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0K IGJpZ2ludCAgICAgfCBzbWFsbGludCAgICAgICAgIHwgICAgICA3MTQgfCBhICAgICAgICAgICB8 IGYgICAgICAgICAgfCBpbnQ4MiAgICAgICAgfCBpbnQyCiBiaWdpbnQgICAgIHwgaW50ZWdlciAg ICAgICAgICB8ICAgICAgNDgwIHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaW50ODQgICAg ICAgIHwgaW50NAogYmlnaW50ICAgICB8IHJlYWwgICAgICAgICAgICAgfCAgICAgIDY1MiB8IGkg ICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9mICAgICAgICB8IGZsb2F0NAogYmlnaW50ICAg ICB8IGRvdWJsZSBwcmVjaXNpb24gfCAgICAgIDQ4MiB8IGkgICAgICAgICAgIHwgZiAgICAgICAg ICB8IGk4dG9kICAgICAgICB8IGZsb2F0OAogYmlnaW50ICAgICB8IG51bWVyaWMgICAgICAgICAg fCAgICAgMTc4MSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDhfbnVtZXJpYyB8IG51 bWVyaWMKIGJpZ2ludCAgICAgfCBtb25leSAgICAgICAgICAgIHwgICAgIDM4MTIgfCBhICAgICAg ICAgICB8IGYgICAgICAgICAgfCBpbnQ4X2Nhc2ggICAgfCBtb25leQogYmlnaW50ICAgICB8IG9p ZCAgICAgICAgICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4 dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ3Byb2MgICAgICAgICAgfCAgICAgMTI4 NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50 ICAgICB8IHJlZ3Byb2NlZHVyZSAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAg ICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ29wZXIgICAgICAgICAg fCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9p ZAogYmlnaW50ICAgICB8IHJlZ29wZXJhdG9yICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAg IHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2NsYXNz ICAgICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQg ICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2NvbGxhdGlvbiAgICAgfCAgICAgMTI4NyB8IGkg ICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8 IHJlZ3R5cGUgICAgICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8 IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2NvbmZpZyAgICAgICAgfCAgICAg MTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmln aW50ICAgICB8IHJlZ2RpY3Rpb25hcnkgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAg ICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ3JvbGUgICAgICAg ICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8 IG9pZAogYmlnaW50ICAgICB8IHJlZ25hbWVzcGFjZSAgICAgfCAgICAgMTI4NyB8IGkgICAgICAg ICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2Rh dGFiYXNlICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9v aWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IGJ5dGVhICAgICAgICAgICAgfCAgICAgNjM2OSB8 IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDhfYnl0ZWEgICB8IGJ5dGVhCiBiaWdpbnQg ICAgIHwgYml0ICAgICAgICAgICAgICB8ICAgICAyMDc1IHwgZSAgICAgICAgICAgfCBmICAgICAg ICAgIHwgYml0ZnJvbWludDggIHwgYml0CigyMSByb3dzKQoKYWxyZWFkeSBlcnJvciBzYWZlOiBp OHRvZiwgaTh0b2QsIGludDhfbnVtZXJpYywgaW50OF9ieXRlYSwgYml0ZnJvbWludDgKZGlzY3Vz c2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZp c2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGls cy9hZHQvaW50OC5jIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKaW5kZXggNmM4ZmI3YjcyNzUuLmRhMzky MTg5NzQzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKQEAgLTEyNTEsNyArMTI1MSw3IEBAIGludDg0KFBH X0ZVTkNUSU9OX0FSR1MpCiAJaW50NjQJCWFyZyA9IFBHX0dFVEFSR19JTlQ2NCgwKTsKIAogCWlm ICh1bmxpa2VseShhcmcgPCBQR19JTlQzMl9NSU4pIHx8IHVubGlrZWx5KGFyZyA+IFBHX0lOVDMy X01BWCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0 dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSks CiAJCQkJIGVycm1zZygiaW50ZWdlciBvdXQgb2YgcmFuZ2UiKSkpOwogCkBAIC0xMjcyLDcgKzEy NzIsNyBAQCBpbnQ4MihQR19GVU5DVElPTl9BUkdTKQogCWludDY0CQlhcmcgPSBQR19HRVRBUkdf SU5UNjQoMCk7CiAKIAlpZiAodW5saWtlbHkoYXJnIDwgUEdfSU5UMTZfTUlOKSB8fCB1bmxpa2Vs eShhcmcgPiBQR19JTlQxNl9NQVgpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5m by0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxV RV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coInNtYWxsaW50IG91dCBvZiByYW5nZSIpKSk7 CiAKQEAgLTEzNTUsNyArMTM1NSw3IEBAIGk4dG9vaWQoUEdfRlVOQ1RJT05fQVJHUykKIAlpbnQ2 NAkJYXJnID0gUEdfR0VUQVJHX0lOVDY0KDApOwogCiAJaWYgKHVubGlrZWx5KGFyZyA8IDApIHx8 IHVubGlrZWx5KGFyZyA+IFBHX1VJTlQzMl9NQVgpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0 dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVN RVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coIk9JRCBvdXQgb2YgcmFuZ2Ui KSkpOwogCi0tIAoyLjM0LjEKCg== --000000000000549053064ce1dba3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v20-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmoi9lyw17 RnJvbSBlYTkwYTA1NWUwYzU2MjdkOGQ0OTU0ZTM0NzEwY2VmYjgyMGUxOGJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTIgRGVjIDIwMjUgMTU6MDM6MDYgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MCAwNy8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBtYWNhZGRyOCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9u YW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0gcGMuY2FzdGZ1 bmMKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9J21hY2FkZHI4 Jzo6cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCBj YXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAgIHBy b3NyYyAgICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t CiBtYWNhZGRyOCAgIHwgbWFjYWRkciAgICB8ICAgICA0MTI0IHwgaSAgICAgICAgICAgfCBmICAg ICAgICAgIHwgbWFjYWRkcjh0b21hY2FkZHIgfCBtYWNhZGRyCigxIHJvdykKCmRpc2N1c3Npb246 IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThq WnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L21hYzguYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9tYWM4LmMgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvbWFjOC5jCmluZGV4IGMxYmY5ZmQ1NzgzLi4wNDI1ZWE0NzNhNSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L21hYzguYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvbWFjOC5jCkBAIC01NTAsNyArNTUwLDcgQEAgbWFjYWRkcjh0b21hY2FkZHIoUEdf RlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSBwYWxsb2MwX29iamVjdChtYWNhZGRyKTsKIAogCWlm ICgoYWRkci0+ZCAhPSAweEZGKSB8fCAoYWRkci0+ZSAhPSAweEZFKSkKLQkJZXJlcG9ydChFUlJP UiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShF UlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJtYWNhZGRy OCBkYXRhIG91dCBvZiByYW5nZSB0byBjb252ZXJ0IHRvIG1hY2FkZHIiKSwKIAkJCQkgZXJyaGlu dCgiT25seSBhZGRyZXNzZXMgdGhhdCBoYXZlIEZGIGFuZCBGRSBhcyB2YWx1ZXMgaW4gdGhlICIK LS0gCjIuMzQuMQoK --000000000000549053064ce1dba3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v20-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmoi9lyx18 RnJvbSA2Yjg4OWU4OWFmOTU2Zjg1N2JiYzg3ZGI0ODlhYzcwMGQ1MDBkOWU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMTA6Mjg6NTQgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MCAwNi8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbmV0IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2luZXQnOjpyZWd0 eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAgIGNhc3R0 YXJnZXQgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBwcm9z cmMgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCiBp bmV0ICAgICAgIHwgY2lkciAgICAgICAgICAgICAgfCAgICAgMTcxNSB8IGEgICAgICAgICAgIHwg ZiAgICAgICAgICB8IGluZXRfdG9fY2lkciB8IGNpZHIKIGluZXQgICAgICAgfCB0ZXh0ICAgICAg ICAgICAgICB8ICAgICAgNzMwIHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgbmV0d29ya19z aG93IHwgdGV4dAogaW5ldCAgICAgICB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgICAgICA3MzAgfCBh ICAgICAgICAgICB8IGYgICAgICAgICAgfCBuZXR3b3JrX3Nob3cgfCB0ZXh0CiBpbmV0ICAgICAg IHwgY2hhcmFjdGVyICAgICAgICAgfCAgICAgIDczMCB8IGEgICAgICAgICAgIHwgZiAgICAgICAg ICB8IG5ldHdvcmtfc2hvdyB8IHRleHQKKDQgcm93cykKCmluZXRfdG9fY2lkciBpcyBhbHJlYWR5 IGVycm9yIHNhZmUuCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFK Zlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQot LS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9uZXR3b3JrLmMgfCAyICstCiAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvbmV0d29yay5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L25ldHdvcmsuYwpp bmRleCAzYTIwMDIwOTdkZC4uYzdlMDgyODc2NGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9uZXR3b3JrLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L25ldHdvcmsuYwpA QCAtMTEzNyw3ICsxMTM3LDcgQEAgbmV0d29ya19zaG93KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlp ZiAocGdfaW5ldF9uZXRfbnRvcChpcF9mYW1pbHkoaXApLCBpcF9hZGRyKGlwKSwgaXBfbWF4Yml0 cyhpcCksCiAJCQkJCQkgdG1wLCBzaXplb2YodG1wKSkgPT0gTlVMTCkKLQkJZXJlcG9ydChFUlJP UiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShF UlJDT0RFX0lOVkFMSURfQklOQVJZX1JFUFJFU0VOVEFUSU9OKSwKIAkJCQkgZXJybXNnKCJjb3Vs ZCBub3QgZm9ybWF0IGluZXQgdmFsdWU6ICVtIikpKTsKIAotLSAKMi4zNC4xCgo= --000000000000549053064ce1dba3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v20-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmoi9lyt16 RnJvbSAwMjEwNWIyZWZlNTc2Y2RlNTk5NTNhOTgzYTRlMmU4MTMwNTc1Y2Q2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjA6MTAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MCAwOC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbnRlZ2VyIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUgZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVu YyBhbmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2ludGVnZXIn OjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAg IGNhc3R0YXJnZXQgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAg IHByb3NyYyAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LQogaW50ZWdlciAgICB8IGJpZ2ludCAgICAgICAgICAgfCAgICAgIDQ4MSB8IGkgICAgICAgICAg IHwgZiAgICAgICAgICB8IGludDQ4ICAgICAgICB8IGludDgKIGludGVnZXIgICAgfCBzbWFsbGlu dCAgICAgICAgIHwgICAgICAzMTQgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBpNHRvaTIg ICAgICAgfCBpbnQyCiBpbnRlZ2VyICAgIHwgcmVhbCAgICAgICAgICAgICB8ICAgICAgMzE4IHwg aSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaTR0b2YgICAgICAgIHwgZmxvYXQ0CiBpbnRlZ2Vy ICAgIHwgZG91YmxlIHByZWNpc2lvbiB8ICAgICAgMzE2IHwgaSAgICAgICAgICAgfCBmICAgICAg ICAgIHwgaTR0b2QgICAgICAgIHwgZmxvYXQ4CiBpbnRlZ2VyICAgIHwgbnVtZXJpYyAgICAgICAg ICB8ICAgICAxNzQwIHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaW50NF9udW1lcmljIHwg bnVtZXJpYwogaW50ZWdlciAgICB8IG1vbmV5ICAgICAgICAgICAgfCAgICAgMzgxMSB8IGEgICAg ICAgICAgIHwgZiAgICAgICAgICB8IGludDRfY2FzaCAgICB8IG1vbmV5CiBpbnRlZ2VyICAgIHwg Ym9vbGVhbiAgICAgICAgICB8ICAgICAyNTU3IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwg aW50NF9ib29sICAgIHwgYm9vbAogaW50ZWdlciAgICB8IGJ5dGVhICAgICAgICAgICAgfCAgICAg NjM2OCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDRfYnl0ZWEgICB8IGJ5dGVhCiBp bnRlZ2VyICAgIHwgImNoYXIiICAgICAgICAgICB8ICAgICAgIDc4IHwgZSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgaTR0b2NoYXIgICAgIHwgY2hhcgogaW50ZWdlciAgICB8IGJpdCAgICAgICAg ICAgICAgfCAgICAgMTY4MyB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdGZyb21pbnQ0 ICB8IGJpdAooMTAgcm93cykKCm9ubHkgaW50NF9jYXNoLCBpNHRvaTIsIGk0dG9jaGFyIG5lZWQg dGFrZSBjYXJlIG9mIGVycm9yIGhhbmRsaW5nLiAgYnV0IHN1cHBvcnQKZm9yIGNhc2ggZGF0YSB0 eXBlIGlzIG5vdCBlYXN5LCBzbyBvbmx5IGk0dG9pMiwgaTR0b2NoYXIgZnVuY3Rpb24gcmVmYWN0 b3JpbmcuCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZh LWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNy Yy9iYWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMgfCAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQv aW50LmMgIHwgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2NoYXIuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMKaW5kZXggM2U0ZGVmNjhmZTQuLjY5ODg2MzkyNGVlIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvY2hhci5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9jaGFyLmMKQEAgLTE5Miw3ICsxOTIsNyBAQCBpNHRvY2hhcihQR19GVU5DVElP Tl9BUkdTKQogCWludDMyCQlhcmcxID0gUEdfR0VUQVJHX0lOVDMyKDApOwogCiAJaWYgKGFyZzEg PCBTQ0hBUl9NSU4gfHwgYXJnMSA+IFNDSEFSX01BWCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJl dHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05V TUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJcImNoYXJcIiBvdXQgb2Yg cmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMKaW5kZXggZmY1NGQ1MGVhOWQuLjRjODk0YTQ5ZDVk IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2ludC5jCkBAIC0zNzksNyArMzc5LDcgQEAgaTR0b2kyKFBHX0ZVTkNUSU9O X0FSR1MpCiAJaW50MzIJCWFyZzEgPSBQR19HRVRBUkdfSU5UMzIoMCk7CiAKIAlpZiAodW5saWtl bHkoYXJnMSA8IFNIUlRfTUlOKSB8fCB1bmxpa2VseShhcmcxID4gU0hSVF9NQVgpKQotCQllcmVw b3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShl cnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2co InNtYWxsaW50IG91dCBvZiByYW5nZSIpKSk7CiAKLS0gCjIuMzQuMQoK --000000000000549053064ce1dba3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_c.patch" Content-Disposition: attachment; filename="v20-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmoi9lyy19 RnJvbSA4OWViMWU1OGY3NTM3OGM4ODRmOWY5ZDY3ZGE5ODA2MjE2M2NlOWU4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MTM6NDUgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MCAwNS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBjaGFyYWN0ZXIgdmFyeWluZyB0byBvdGhl cgogdHlwZXMgcGVyIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFy Z2V0OjpyZWd0eXBlLCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMgYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQKKGNhc3Rzb3VyY2U6OnJlZ3R5cGUg PSAnY2hhcmFjdGVyIHZhcnlpbmcnOjpyZWd0eXBlKQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0 eXBlOwoKICAgIGNhc3Rzb3VyY2UgICAgIHwgICAgY2FzdHRhcmdldCAgICAgfCBjYXN0ZnVuYyB8 IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgIHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCiBjaGFyYWN0ZXIgdmFy eWluZyB8IHJlZ2NsYXNzICAgICAgICAgIHwgICAgIDEwNzkgfCBpICAgICAgICAgICB8IGYgICAg ICAgICAgfCB0ZXh0X3JlZ2NsYXNzIHwgcmVnY2xhc3MKIGNoYXJhY3RlciB2YXJ5aW5nIHwgImNo YXIiICAgICAgICAgICAgfCAgICAgIDk0NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRl eHRfY2hhciAgICAgfCBjaGFyCiBjaGFyYWN0ZXIgdmFyeWluZyB8IG5hbWUgICAgICAgICAgICAg IHwgICAgIDE0MDAgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0X25hbWUgICAgIHwg bmFtZQogY2hhcmFjdGVyIHZhcnlpbmcgfCB4bWwgICAgICAgICAgICAgICB8ICAgICAyODk2IHwg ZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dHRveG1sICAgICB8IHhtbAogY2hhcmFjdGVy IHZhcnlpbmcgfCBjaGFyYWN0ZXIgdmFyeWluZyB8ICAgICAgNjY5IHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgdmFyY2hhciAgICAgICB8IHZhcmNoYXIKKDUgcm93cykKCnRleHR0b3htbCwg dGV4dF9yZWdjbGFzcyB3YXMgcmVmYWN0b3JlZCBhcyBlcnJvciBzYWZlIGluIHByaW9yIHBhdGNo Lgp0ZXh0X2NoYXIsIHRleHRfbmFtZSBpcyBhbHJlYWR5IGVycm9yIHNhZmUuCnNvIGhlcmUgd2Ug b25seSBuZWVkIGhhbmRsZSBmdW5jdGlvbiAidmFyY2hhciIuCgpkaXNjdXNzaW9uOiBodHRwczov L3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2 NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFy LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwppbmRleCA2ZjA4Mzk3M2ZlNy4uYTYyZTU1ZWVjMTkgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwpAQCAtNjM0LDcgKzYzNCw3IEBAIHZhcmNoYXIoUEdfRlVO Q1RJT05fQVJHUykKIAl7CiAJCWZvciAoaSA9IG1heG1ibGVuOyBpIDwgbGVuOyBpKyspCiAJCQlp ZiAoc19kYXRhW2ldICE9ICcgJykKLQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCWVyZXR1cm4oZmNp bmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19E QVRBX1JJR0hUX1RSVU5DQVRJT04pLAogCQkJCQkJIGVycm1zZygidmFsdWUgdG9vIGxvbmcgZm9y IHR5cGUgY2hhcmFjdGVyIHZhcnlpbmcoJWQpIiwKIAkJCQkJCQkJbWF4bGVuKSkpOwotLSAKMi4z NC4xCgo= --000000000000549053064ce1dba3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v20-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmoi9lz020 RnJvbSBkMGU1MGE0N2Q1MzhiMWNkNjIyMjJlZmQyZGNjYzI3NWMwMTBjM2VhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgMTIgTWFyIDIwMjYgMDk6MzY6MDUgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MCAwMy8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBjaGFyYWN0ZXIgdG8gb3RoZXIgdHlwZXMg cGVyCiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVn dHlwZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJv bmFtZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3Rm dW5jIGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSdjaGFyYWN0 ZXInOjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8 ICAgIGNhc3R0YXJnZXQgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2Qg fCAgIHByb3NyYyAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLQogY2hhcmFjdGVyICB8IHRleHQgICAgICAgICAgICAgIHwgICAgICA0MDEgfCBpICAgICAg ICAgICB8IGYgICAgICAgICAgfCBydHJpbTEgICAgICB8IHRleHQKIGNoYXJhY3RlciAgfCBjaGFy YWN0ZXIgdmFyeWluZyB8ICAgICAgNDAxIHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgcnRy aW0xICAgICAgfCB0ZXh0CiBjaGFyYWN0ZXIgIHwgImNoYXIiICAgICAgICAgICAgfCAgICAgIDk0 NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRfY2hhciAgIHwgY2hhcgogY2hhcmFj dGVyICB8IG5hbWUgICAgICAgICAgICAgIHwgICAgICA0MDkgfCBpICAgICAgICAgICB8IGYgICAg ICAgICAgfCBicGNoYXJfbmFtZSB8IG5hbWUKIGNoYXJhY3RlciAgfCB4bWwgICAgICAgICAgICAg ICB8ICAgICAyODk2IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dHRveG1sICAgfCB4 bWwKIGNoYXJhY3RlciAgfCBjaGFyYWN0ZXIgICAgICAgICB8ICAgICAgNjY4IHwgaSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgYnBjaGFyICAgICAgfCBicGNoYXIKKDYgcm93cykKCm9ubHkgdGV4 dHRveG1sLCBicGNoYXIoUEdfRlVOQ1RJT05fQVJHUykgbmVlZCB0YWtlIGNhcmUgb2YgZXJyb3Ig aGFuZGxpbmcuCm90aGVyIGZ1bmN0aW9ucyBhbHJlYWR5IGVycm9yIHNhZmUuCgpkaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4 alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHBySW50ZXJwLmMgfCAgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIu YyAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQveG1sLmMgICAgICAgICAgIHwg MTggKysrKysrKysrKysrLS0tLS0tCiBzcmMvaW5jbHVkZS91dGlscy94bWwuaCAgICAgICAgICAg ICAgIHwgIDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5j IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwppbmRleCA2MWZmNWRkYzc0 Yy4uNjljMTdlMDI0ZjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBy SW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAt NDU0Niw3ICs0NTQ2LDcgQEAgRXhlY0V2YWxYbWxFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJF dmFsU3RlcCAqb3ApCiAKIAkJCQkqb3AtPnJlc3ZhbHVlID0gUG9pbnRlckdldERhdHVtKHhtbHBh cnNlKGRhdGEsCiAJCQkJCQkJCQkJCQkJCSB4ZXhwci0+eG1sb3B0aW9uLAotCQkJCQkJCQkJCQkJ CQkgcHJlc2VydmVfd2hpdGVzcGFjZSkpOworCQkJCQkJCQkJCQkJCQkgcHJlc2VydmVfd2hpdGVz cGFjZSwgTlVMTCkpOwogCQkJCSpvcC0+cmVzbnVsbCA9IGZhbHNlOwogCQkJfQogCQkJYnJlYWs7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwppbmRleCBkZjMwNTA5ODEzMC4uNmYwODM5NzNmZTcgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwpAQCAtMzA3LDcgKzMwNyw3IEBAIGJwY2hhcihQR19GVU5D VElPTl9BUkdTKQogCQl7CiAJCQlmb3IgKGkgPSBtYXhtYmxlbjsgaSA8IGxlbjsgaSsrKQogCQkJ CWlmIChzW2ldICE9ICcgJykKLQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJldHVybihmY2lu Zm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19E QVRBX1JJR0hUX1RSVU5DQVRJT04pLAogCQkJCQkJCSBlcnJtc2coInZhbHVlIHRvbyBsb25nIGZv ciB0eXBlIGNoYXJhY3RlciglZCkiLAogCQkJCQkJCQkJbWF4bGVuKSkpOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5j CmluZGV4IDc5ZjZjZjdiNGZhLi41MmY0ZjhmYzQ5MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3htbC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC94bWwuYwpAQCAtNjYw LDcgKzY2MCw3IEBAIHRleHR0b3htbChQR19GVU5DVElPTl9BUkdTKQogewogCXRleHQJICAgKmRh dGEgPSBQR19HRVRBUkdfVEVYVF9QUCgwKTsKIAotCVBHX1JFVFVSTl9YTUxfUCh4bWxwYXJzZShk YXRhLCB4bWxvcHRpb24sIHRydWUpKTsKKwlQR19SRVRVUk5fWE1MX1AoeG1scGFyc2UoZGF0YSwg eG1sb3B0aW9uLCB0cnVlLCBmY2luZm8tPmNvbnRleHQpKTsKIH0KIAogCkBAIC0xMDI5LDE5ICsx MDI5LDI1IEBAIHhtbGVsZW1lbnQoWG1sRXhwciAqeGV4cHIsCiAKIAogeG1sdHlwZSAqCi14bWxw YXJzZSh0ZXh0ICpkYXRhLCBYbWxPcHRpb25UeXBlIHhtbG9wdGlvbl9hcmcsIGJvb2wgcHJlc2Vy dmVfd2hpdGVzcGFjZSkKK3htbHBhcnNlKHRleHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0 aW9uX2FyZywgYm9vbCBwcmVzZXJ2ZV93aGl0ZXNwYWNlLCBOb2RlICplc2NvbnRleHQpCiB7CiAj aWZkZWYgVVNFX0xJQlhNTAogCXhtbERvY1B0cglkb2M7CiAKIAlkb2MgPSB4bWxfcGFyc2UoZGF0 YSwgeG1sb3B0aW9uX2FyZywgcHJlc2VydmVfd2hpdGVzcGFjZSwKLQkJCQkJR2V0RGF0YWJhc2VF bmNvZGluZygpLCBOVUxMLCBOVUxMLCBOVUxMKTsKLQl4bWxGcmVlRG9jKGRvYyk7CisJCQkJCUdl dERhdGFiYXNlRW5jb2RpbmcoKSwgTlVMTCwgTlVMTCwgZXNjb250ZXh0KTsKKwlpZiAoZG9jKQor CQl4bWxGcmVlRG9jKGRvYyk7CisKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQp KQorCQlyZXR1cm4gTlVMTDsKIAogCXJldHVybiAoeG1sdHlwZSAqKSBkYXRhOwogI2Vsc2UKLQlO T19YTUxfU1VQUE9SVCgpOwotCXJldHVybiBOVUxMOworCWVyZXR1cm4oZXNjb250ZXh0LCBOVUxM LAorCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQllcnJtc2co InVuc3VwcG9ydGVkIFhNTCBmZWF0dXJlIiksCisJCQllcnJkZXRhaWwoIlRoaXMgZnVuY3Rpb25h bGl0eSByZXF1aXJlcyB0aGUgc2VydmVyIHRvIGJlIGJ1aWx0IHdpdGggbGlieG1sIHN1cHBvcnQu IikpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3htbC5oIGIv c3JjL2luY2x1ZGUvdXRpbHMveG1sLmgKaW5kZXggMDIzZmRlYjQ1MzEuLmNhMjY2ZjQ0OGQ2IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy94bWwuaAorKysgYi9zcmMvaW5jbHVkZS91dGls cy94bWwuaApAQCAtNzMsNyArNzMsNyBAQCBleHRlcm4geG1sdHlwZSAqeG1sY29uY2F0KExpc3Qg KmFyZ3MpOwogZXh0ZXJuIHhtbHR5cGUgKnhtbGVsZW1lbnQoWG1sRXhwciAqeGV4cHIsCiAJCQkJ CQkgICBjb25zdCBEYXR1bSAqbmFtZWRfYXJndmFsdWUsIGNvbnN0IGJvb2wgKm5hbWVkX2FyZ251 bGwsCiAJCQkJCQkgICBjb25zdCBEYXR1bSAqYXJndmFsdWUsIGNvbnN0IGJvb2wgKmFyZ251bGwp OwotZXh0ZXJuIHhtbHR5cGUgKnhtbHBhcnNlKHRleHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1s b3B0aW9uX2FyZywgYm9vbCBwcmVzZXJ2ZV93aGl0ZXNwYWNlKTsKK2V4dGVybiB4bWx0eXBlICp4 bWxwYXJzZSh0ZXh0ICpkYXRhLCBYbWxPcHRpb25UeXBlIHhtbG9wdGlvbl9hcmcsIGJvb2wgcHJl c2VydmVfd2hpdGVzcGFjZSwgTm9kZSAqZXNjb250ZXh0KTsKIGV4dGVybiB4bWx0eXBlICp4bWxw aShjb25zdCBjaGFyICp0YXJnZXQsIHRleHQgKmFyZywgYm9vbCBhcmdfaXNfbnVsbCwgYm9vbCAq cmVzdWx0X2lzX251bGwpOwogZXh0ZXJuIHhtbHR5cGUgKnhtbHJvb3QoeG1sdHlwZSAqZGF0YSwg dGV4dCAqdmVyc2lvbiwgaW50IHN0YW5kYWxvbmUpOwogZXh0ZXJuIGJvb2wgeG1sX2lzX2RvY3Vt ZW50KHhtbHR5cGUgKmFyZyk7Ci0tIAoyLjM0LjEKCg== --000000000000549053064ce1dba3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v20-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmoi9lz622 RnJvbSAwMjU3NDIyZDQ3OTU4ZDlhM2JhMWE1MjAyZmI2MjAwMmQ4ZTQ0NDU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MDg6MDAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MCAwMS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBieXRlYSB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l CmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9J2J5dGVhJzo6cmVn dHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCBjYXN0dGFy Z2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgIHByb3NyYyAgIHwg cHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQogYnl0ZWEgICAgICB8IHNtYWxs aW50ICAgfCAgICAgNjM3MCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJ5dGVhX2ludDIg fCBpbnQyCiBieXRlYSAgICAgIHwgaW50ZWdlciAgICB8ICAgICA2MzcxIHwgZSAgICAgICAgICAg fCBmICAgICAgICAgIHwgYnl0ZWFfaW50NCB8IGludDQKIGJ5dGVhICAgICAgfCBiaWdpbnQgICAg IHwgICAgIDYzNzIgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBieXRlYV9pbnQ4IHwgaW50 OAooMyByb3dzKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZ NFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0t CiBzcmMvYmFja2VuZC91dGlscy9hZHQvYnl0ZWEuYyB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9ieXRlYS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2J5dGVhLmMKaW5k ZXggZmQ3NjYyZDQxZWUuLmEwMmIwNTRiODczIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hZHQvYnl0ZWEuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYnl0ZWEuYwpAQCAtMTI1 NSw3ICsxMjU1LDcgQEAgYnl0ZWFfaW50MihQR19GVU5DVElPTl9BUkdTKQogCiAJLyogQ2hlY2sg dGhhdCB0aGUgYnl0ZSBhcnJheSBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAobGVuID4gc2l6ZW9m KHJlc3VsdCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAo RGF0dW0pIDAsCiAJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdF KSwKIAkJCQllcnJtc2coInNtYWxsaW50IG91dCBvZiByYW5nZSIpKTsKIApAQCAtMTI4MCw3ICsx MjgwLDcgQEAgYnl0ZWFfaW50NChQR19GVU5DVElPTl9BUkdTKQogCiAJLyogQ2hlY2sgdGhhdCB0 aGUgYnl0ZSBhcnJheSBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAobGVuID4gc2l6ZW9mKHJlc3Vs dCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0p IDAsCiAJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJ CQllcnJtc2coImludGVnZXIgb3V0IG9mIHJhbmdlIikpOwogCkBAIC0xMzA1LDcgKzEzMDUsNyBA QCBieXRlYV9pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBDaGVjayB0aGF0IHRoZSBieXRl IGFycmF5IGlzIG5vdCB0b28gbG9uZyAqLwogCWlmIChsZW4gPiBzaXplb2YocmVzdWx0KSkKLQkJ ZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJ CQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCWVycm1z ZygiYmlnaW50IG91dCBvZiByYW5nZSIpKTsKIAotLSAKMi4zNC4xCgo= --000000000000549053064ce1dba3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v20-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmoi9lz421 RnJvbSBiMmE3YmE2M2NiMDdjZjI3YTJkODg0MGI4ZTYyOTZkNmQwMzQ2YzEyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMTA6MzM6MDggKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MCAwMi8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBiaXQvdmFyYml0IHRvIG90aGVyIHR5cGVz CiBwZXIgcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJl Z3R5cGUsIGNhc3RmdW5jLAogICAgICAgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMKd2hlcmUgcGMuY2FzdGZ1bmMgPiAwIGFuZCAoY2FzdHNvdXJjZTo6cmVndHlw ZSA9J2JpdCc6OnJlZ3R5cGUgb3IKY2FzdHNvdXJjZTo6cmVndHlwZSA9J3ZhcmJpdCc6OnJlZ3R5 cGUpCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSAgfCBjYXN0dGFy Z2V0ICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgIHByb3NyYyAgIHwg cHJvbmFtZQotLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0KIGJpdCAgICAgICAgIHwgYmln aW50ICAgICAgfCAgICAgMjA3NiB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdHRvaW50 OCB8IGludDgKIGJpdCAgICAgICAgIHwgaW50ZWdlciAgICAgfCAgICAgMTY4NCB8IGUgICAgICAg ICAgIHwgZiAgICAgICAgICB8IGJpdHRvaW50NCB8IGludDQKIGJpdCAgICAgICAgIHwgYml0ICAg ICAgICAgfCAgICAgMTY4NSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdCAgICAgICB8 IGJpdAogYml0IHZhcnlpbmcgfCBiaXQgdmFyeWluZyB8ICAgICAxNjg3IHwgaSAgICAgICAgICAg fCBmICAgICAgICAgIHwgdmFyYml0ICAgIHwgdmFyYml0Cig0IHJvd3MpCgpkaXNjdXNzaW9uOiBo dHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1 M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92 YXJiaXQuYyB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5jCmluZGV4IDY1YWQxYmZlMThmLi5jNDZi NWJhZTcwZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJiaXQuYwpAQCAtNDAxLDcgKzQwMSw3IEBAIGJpdChQ R19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fVkFSQklUX1AoYXJnKTsKIAogCWlmICghaXNF eHBsaWNpdCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChE YXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19EQVRBX0xFTkdUSF9NSVNNQVRD SCksCiAJCQkJIGVycm1zZygiYml0IHN0cmluZyBsZW5ndGggJWQgZG9lcyBub3QgbWF0Y2ggdHlw ZSBiaXQoJWQpIiwKIAkJCQkJCVZBUkJJVExFTihhcmcpLCBsZW4pKSk7CkBAIC03NTIsNyArNzUy LDcgQEAgdmFyYml0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCVBHX1JFVFVSTl9WQVJCSVRfUChhcmcp OwogCiAJaWYgKCFpc0V4cGxpY2l0KQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5m by0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfU1RSSU5HX0RBVEFf UklHSFRfVFJVTkNBVElPTiksCiAJCQkJIGVycm1zZygiYml0IHN0cmluZyB0b28gbG9uZyBmb3Ig dHlwZSBiaXQgdmFyeWluZyglZCkiLAogCQkJCQkJbGVuKSkpOwpAQCAtMTU5MSw3ICsxNTkxLDcg QEAgYml0dG9pbnQ0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBDaGVjayB0aGF0IHRoZSBiaXQg c3RyaW5nIGlzIG5vdCB0b28gbG9uZyAqLwogCWlmIChWQVJCSVRMRU4oYXJnKSA+IHNpemVvZihy ZXN1bHQpICogQklUU19QRVJfQllURSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2lu Zm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFM VUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnRlZ2VyIG91dCBvZiByYW5nZSIpKSk7 CiAKQEAgLTE2NzEsNyArMTY3MSw3IEBAIGJpdHRvaW50OChQR19GVU5DVElPTl9BUkdTKQogCiAJ LyogQ2hlY2sgdGhhdCB0aGUgYml0IHN0cmluZyBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAoVkFS QklUTEVOKGFyZykgPiBzaXplb2YocmVzdWx0KSAqIEJJVFNfUEVSX0JZVEUpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiYmln aW50IG91dCBvZiByYW5nZSIpKSk7CiAKLS0gCjIuMzQuMQoK --000000000000549053064ce1dba3--