Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rkPef-00CaFI-U8 for pgsql-hackers@arkaria.postgresql.org; Wed, 13 Mar 2024 14:32:30 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rkPee-005JJR-Gi for pgsql-hackers@arkaria.postgresql.org; Wed, 13 Mar 2024 14:32:29 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rkPed-005JCr-K3 for pgsql-hackers@lists.postgresql.org; Wed, 13 Mar 2024 14:32:28 +0000 Received: from mail-io1-xd29.google.com ([2607:f8b0:4864:20::d29]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rkPeY-004Isx-4N for pgsql-hackers@lists.postgresql.org; Wed, 13 Mar 2024 14:32:26 +0000 Received: by mail-io1-xd29.google.com with SMTP id ca18e2360f4ac-7c8d2e0e9cfso25264339f.1 for ; Wed, 13 Mar 2024 07:32:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710340342; x=1710945142; 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=hjb0g2ipAPX0RZLpmXuQnvi9961H3+IgM48BDbmQRto=; b=Nfi63RdLd1MX0zVwoa3I8j+V+KlTpZn4u/ALIuZ83tb0tZlgCuK7HhfzvsRKxOYlkI Uk6utmLOoUOqGZFXx/c/CYE8R8AV6VN4IXxO/VxP19GhuVyfELvhJlZ8HZ7vQXlGs/y3 xGq/s+EryoXOQqi0Q6lbSPT+kHNe4byYgh0YRXjNgohdalEKSZsnTGmEirWjyxLNV0oc Zn0bsIlGmyYGNN8K/pFtWRlXUH33BXmSPVcPM+rqtm4o2iQElmpzUHNd1sPPXmB0mHvj /TmiE0ONsTx7/jzZP1QXtTYFAVPATy/EyC8eES6cfO0MCGlq+kgg/6ruIUrL2Gpf4wde Spfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710340342; x=1710945142; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=hjb0g2ipAPX0RZLpmXuQnvi9961H3+IgM48BDbmQRto=; b=dNe/5yECRh0epHeL8o9w6j0Sk0wakAsox7aRHXEe0OeXJ80VzIskC4w7LZ1WRadfrt ElZX1eurZgO/HHmxG3955tD2/zA+01un+aiZMBKdzYj7Qck63Am+F/Q6GYd7Yjv9bCp7 ueNdoHwlCQ66d5kothQ1TnXznTR79mqGEQzeCpT3Bky1g7FgLmAARBAHEsHT54wemYXW CHvR8WsiAqQT3obDBcYT0YBrjqeeqSy99POpTZS6MeAF7V3BYvZsFgVrpa9IDWzpFQOj QHPkV+dKyOMWTfHbn70I3ZPQTRXm9Yw7R6KNNKSMJlC7+s7S2u82bu7bdlgHc1PdxJTk OVNQ== X-Forwarded-Encrypted: i=1; AJvYcCUIx3HHinQgG5K8kLIGXkwReWXrBu19AxmC7gP74HYZFFuvCiSYtcPh0nWvN3v1PpxP/DDXHs1uNiNF116j5i5gjQuijwmnkppNcY+oWtsN5AYF X-Gm-Message-State: AOJu0Yyrkp1SliMIzUE+HcwvxFlUmWZb1pQbuLXe7npjR0cZGCtrtdbz 2k9AuB0FfJIgl7jjUuVzEYnTu2EC4IXRim2RrCX4VXtKq6B8suDgFDW6ISyGEwBhEwb8zLYnEFw gGt7yQ0YPr/nk9B5ekc3Abto1BkQ= X-Google-Smtp-Source: AGHT+IH6crdthAT6o7CeSHzZ8OJ8Sv/RQ3UahsG1zHKGsojF/OWI2Ueu9gDulhNPdEBppR4gDjS09qFMTiPMXjpk2kg= X-Received: by 2002:a5d:83c6:0:b0:7c8:75d4:4e68 with SMTP id u6-20020a5d83c6000000b007c875d44e68mr153139ior.7.1710340342511; Wed, 13 Mar 2024 07:32:22 -0700 (PDT) MIME-Version: 1.0 References: <202401261557.4uvwutsn5dwa@alvherre.pgsql> In-Reply-To: From: Dean Rasheed Date: Wed, 13 Mar 2024 14:32:11 +0000 Message-ID: Subject: Re: MERGE ... WHEN NOT MATCHED BY SOURCE To: Alvaro Herrera Cc: Peter Smith , Vik Fearing , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000008fadbb06138ba433" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000008fadbb06138ba433 Content-Type: text/plain; charset="UTF-8" Rebased version attached. Regards, Dean --0000000000008fadbb06138ba433 Content-Type: text/x-patch; charset="US-ASCII"; name="support-merge-when-not-matched-by-source-v11.patch" Content-Disposition: attachment; filename="support-merge-when-not-matched-by-source-v11.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ltpwe2fr0 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9tdmNjLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbXZjYy5z Z21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4ZjgzZDQuLjM4MGQwYzkKLS0tIGEvZG9j L3NyYy9zZ21sL212Y2Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbXZjYy5zZ21sCkBAIC0zOTQs MTAgKzM5NCwxNCBAQAogICAgIGNvbmRpdGlvbnMgZm9yIGVhY2ggYWN0aW9uIGFyZSByZS1ldmFs dWF0ZWQgb24gdGhlIHVwZGF0ZWQgdmVyc2lvbiBvZgogICAgIHRoZSByb3csIHN0YXJ0aW5nIGZy b20gdGhlIGZpcnN0IGFjdGlvbiwgZXZlbiBpZiB0aGUgYWN0aW9uIHRoYXQgaGFkCiAgICAgb3Jp Z2luYWxseSBtYXRjaGVkIGFwcGVhcnMgbGF0ZXIgaW4gdGhlIGxpc3Qgb2YgYWN0aW9ucy4KLSAg ICBPbiB0aGUgb3RoZXIgaGFuZCwgaWYgdGhlIHJvdyBpcyBjb25jdXJyZW50bHkgdXBkYXRlZCBv ciBkZWxldGVkIHNvCi0gICAgdGhhdCB0aGUgam9pbiBjb25kaXRpb24gZmFpbHMsIHRoZW4gPGNv bW1hbmQ+TUVSR0U8L2NvbW1hbmQ+IHdpbGwKLSAgICBldmFsdWF0ZSB0aGUgY29uZGl0aW9uJ3Mg PGxpdGVyYWw+Tk9UIE1BVENIRUQ8L2xpdGVyYWw+IGFjdGlvbnMgbmV4dCwKLSAgICBhbmQgZXhl Y3V0ZSB0aGUgZmlyc3Qgb25lIHRoYXQgc3VjY2VlZHMuCisgICAgT24gdGhlIG90aGVyIGhhbmQs IGlmIHRoZSByb3cgaXMgY29uY3VycmVudGx5IHVwZGF0ZWQgc28gdGhhdCB0aGUgam9pbgorICAg IGNvbmRpdGlvbiBmYWlscywgdGhlbiA8Y29tbWFuZD5NRVJHRTwvY29tbWFuZD4gd2lsbCBldmFs dWF0ZSB0aGUKKyAgICBjb21tYW5kJ3MgPGxpdGVyYWw+Tk9UIE1BVENIRUQgQlkgU09VUkNFPC9s aXRlcmFsPiBhbmQKKyAgICA8bGl0ZXJhbD5OT1QgTUFUQ0hFRCBbQlkgVEFSR0VUXTwvbGl0ZXJh bD4gYWN0aW9ucyBuZXh0LCBhbmQgZXhlY3V0ZQorICAgIHRoZSBmaXJzdCBvbmUgb2YgZWFjaCBr aW5kIHRoYXQgc3VjY2VlZHMuCisgICAgSWYgdGhlIHJvdyBpcyBjb25jdXJyZW50bHkgZGVsZXRl ZCwgdGhlbiA8Y29tbWFuZD5NRVJHRTwvY29tbWFuZD4KKyAgICB3aWxsIGV2YWx1YXRlIHRoZSBj b21tYW5kJ3MgPGxpdGVyYWw+Tk9UIE1BVENIRUQgW0JZIFRBUkdFVF08L2xpdGVyYWw+CisgICAg YWN0aW9ucywgYW5kIGV4ZWN1dGUgdGhlIGZpcnN0IG9uZSB0aGF0IHN1Y2NlZWRzLgogICAgIElm IDxjb21tYW5kPk1FUkdFPC9jb21tYW5kPiBhdHRlbXB0cyBhbiA8Y29tbWFuZD5JTlNFUlQ8L2Nv bW1hbmQ+CiAgICAgYW5kIGEgdW5pcXVlIGluZGV4IGlzIHByZXNlbnQgYW5kIGEgZHVwbGljYXRl IHJvdyBpcyBjb25jdXJyZW50bHkKICAgICBpbnNlcnRlZCwgdGhlbiBhIHVuaXF1ZW5lc3Mgdmlv bGF0aW9uIGVycm9yIGlzIHJhaXNlZDsKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvbWVy Z2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvbWVyZ2Uuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCBlNzQ1ZmJkLi42ODQ1ZjE0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvbWVyZ2Uuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL21lcmdlLnNnbWwKQEAgLTMzLDcgKzMzLDggQEAgVVNJ TkcgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdAogPHBocmFzZT5hbmQgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPndoZW5fY2xhdXNlPC9yZXBsYWNlYWJsZT4gaXM6PC9w aHJhc2U+CiAKIHsgV0hFTiBNQVRDSEVEIFsgQU5EIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5jb25kaXRpb248L3JlcGxhY2VhYmxlPiBdIFRIRU4geyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bWVyZ2VfdXBkYXRlPC9yZXBsYWNlYWJsZT4gfCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bWVyZ2VfZGVsZXRlPC9yZXBsYWNlYWJsZT4gfCBETyBOT1RISU5HIH0g fAotICBXSEVOIE5PVCBNQVRDSEVEIFsgQU5EIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5jb25kaXRpb248L3JlcGxhY2VhYmxlPiBdIFRIRU4geyA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bWVyZ2VfaW5zZXJ0PC9yZXBsYWNlYWJsZT4gfCBETyBOT1RISU5HIH0gfQorICBX SEVOIE5PVCBNQVRDSEVEIEJZIFNPVVJDRSBbIEFORCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Y29uZGl0aW9uPC9yZXBsYWNlYWJsZT4gXSBUSEVOIHsgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm1lcmdlX3VwZGF0ZTwvcmVwbGFjZWFibGU+IHwgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm1lcmdlX2RlbGV0ZTwvcmVwbGFjZWFibGU+IHwgRE8gTk9USElORyB9 IHwKKyAgV0hFTiBOT1QgTUFUQ0hFRCBbQlkgVEFSR0VUXSBbIEFORCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+Y29uZGl0aW9uPC9yZXBsYWNlYWJsZT4gXSBUSEVOIHsgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm1lcmdlX2luc2VydDwvcmVwbGFjZWFibGU+IHwgRE8gTk9U SElORyB9IH0KIAogPHBocmFzZT5hbmQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm1l cmdlX2luc2VydDwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgogCkBAIC03Miw3ICs3Myw5IEBA IERFTEVURQogICAgZnJvbSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV9zb3Vy Y2U8L3JlcGxhY2VhYmxlPiB0bwogICAgdGhlIHRhcmdldCB0YWJsZQogICAgcHJvZHVjaW5nIHpl cm8gb3IgbW9yZSBjYW5kaWRhdGUgY2hhbmdlIHJvd3MuICBGb3IgZWFjaCBjYW5kaWRhdGUgY2hh bmdlCi0gICByb3csIHRoZSBzdGF0dXMgb2YgPGxpdGVyYWw+TUFUQ0hFRDwvbGl0ZXJhbD4gb3Ig PGxpdGVyYWw+Tk9UIE1BVENIRUQ8L2xpdGVyYWw+CisgICByb3csIHRoZSBzdGF0dXMgb2YgPGxp dGVyYWw+TUFUQ0hFRDwvbGl0ZXJhbD4sCisgICA8bGl0ZXJhbD5OT1QgTUFUQ0hFRCBCWSBTT1VS Q0U8L2xpdGVyYWw+LAorICAgb3IgPGxpdGVyYWw+Tk9UIE1BVENIRUQgW0JZIFRBUkdFVF08L2xp dGVyYWw+CiAgICBpcyBzZXQganVzdCBvbmNlLCBhZnRlciB3aGljaCA8bGl0ZXJhbD5XSEVOPC9s aXRlcmFsPiBjbGF1c2VzIGFyZSBldmFsdWF0ZWQKICAgIGluIHRoZSBvcmRlciBzcGVjaWZpZWQu ICBGb3IgZWFjaCBjYW5kaWRhdGUgY2hhbmdlIHJvdywgdGhlIGZpcnN0IGNsYXVzZSB0bwogICAg ZXZhbHVhdGUgYXMgdHJ1ZSBpcyBleGVjdXRlZC4gIE5vIG1vcmUgdGhhbiBvbmUgPGxpdGVyYWw+ V0hFTjwvbGl0ZXJhbD4KQEAgLTI1NCwxOCArMjU3LDQwIEBAIERFTEVURQogICAgICAgQXQgbGVh c3Qgb25lIDxsaXRlcmFsPldIRU48L2xpdGVyYWw+IGNsYXVzZSBpcyByZXF1aXJlZC4KICAgICAg PC9wYXJhPgogICAgICA8cGFyYT4KKyAgICAgIFRoZSA8bGl0ZXJhbD5XSEVOPC9saXRlcmFsPiBj bGF1c2UgbWF5IHNwZWNpZnkgPGxpdGVyYWw+V0hFTiBNQVRDSEVEPC9saXRlcmFsPiwKKyAgICAg IDxsaXRlcmFsPldIRU4gTk9UIE1BVENIRUQgQlkgU09VUkNFPC9saXRlcmFsPiwgb3IKKyAgICAg IDxsaXRlcmFsPldIRU4gTk9UIE1BVENIRUQgW0JZIFRBUkdFVF08L2xpdGVyYWw+LgorICAgICAg Tm90ZSB0aGF0IHRoZSA8YWNyb255bT5TUUw8L2Fjcm9ueW0+IHN0YW5kYXJkIG9ubHkgZGVmaW5l cworICAgICAgPGxpdGVyYWw+V0hFTiBNQVRDSEVEPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+V0hF TiBOT1QgTUFUQ0hFRDwvbGl0ZXJhbD4KKyAgICAgICh3aGljaCBpcyBkZWZpbmVkIHRvIG1lYW4g bm8gbWF0Y2hpbmcgdGFyZ2V0IHJvdykuCisgICAgICA8bGl0ZXJhbD5XSEVOIE5PVCBNQVRDSEVE IEJZIFNPVVJDRTwvbGl0ZXJhbD4gaXMgYW4gZXh0ZW5zaW9uIHRvIHRoZQorICAgICAgPGFjcm9u eW0+U1FMPC9hY3JvbnltPiBzdGFuZGFyZCwgYXMgaXMgdGhlIG9wdGlvbiB0byBhcHBlbmQKKyAg ICAgIDxsaXRlcmFsPkJZIFRBUkdFVDwvbGl0ZXJhbD4gdG8gPGxpdGVyYWw+V0hFTiBOT1QgTUFU Q0hFRDwvbGl0ZXJhbD4sIHRvCisgICAgICBtYWtlIGl0cyBtZWFuaW5nIG1vcmUgZXhwbGljaXQu CisgICAgIDwvcGFyYT4KKyAgICAgPHBhcmE+CiAgICAgICBJZiB0aGUgPGxpdGVyYWw+V0hFTjwv bGl0ZXJhbD4gY2xhdXNlIHNwZWNpZmllcyA8bGl0ZXJhbD5XSEVOIE1BVENIRUQ8L2xpdGVyYWw+ CiAgICAgICBhbmQgdGhlIGNhbmRpZGF0ZSBjaGFuZ2Ugcm93IG1hdGNoZXMgYSByb3cgaW4gdGhl Ci0gICAgICB0YXJnZXQgdGFibGUsCi0gICAgICB0aGUgPGxpdGVyYWw+V0hFTjwvbGl0ZXJhbD4g Y2xhdXNlIGlzIGV4ZWN1dGVkIGlmIHRoZQorICAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmRhdGFfc291cmNlPC9yZXBsYWNlYWJsZT4gdG8gYSByb3cgaW4gdGhlCisgICAgICB0 YXJnZXQgdGFibGUsIHRoZSA8bGl0ZXJhbD5XSEVOPC9saXRlcmFsPiBjbGF1c2UgaXMgZXhlY3V0 ZWQgaWYgdGhlCiAgICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29uZGl0aW9u PC9yZXBsYWNlYWJsZT4gaXMKICAgICAgIGFic2VudCBvciBpdCBldmFsdWF0ZXMgdG8gPGxpdGVy YWw+dHJ1ZTwvbGl0ZXJhbD4uCiAgICAgIDwvcGFyYT4KICAgICAgPHBhcmE+Ci0gICAgICBDb252 ZXJzZWx5LCBpZiB0aGUgPGxpdGVyYWw+V0hFTjwvbGl0ZXJhbD4gY2xhdXNlIHNwZWNpZmllcwot ICAgICAgPGxpdGVyYWw+V0hFTiBOT1QgTUFUQ0hFRDwvbGl0ZXJhbD4KLSAgICAgIGFuZCB0aGUg Y2FuZGlkYXRlIGNoYW5nZSByb3cgZG9lcyBub3QgbWF0Y2ggYSByb3cgaW4gdGhlCi0gICAgICB0 YXJnZXQgdGFibGUsCisgICAgICBJZiB0aGUgPGxpdGVyYWw+V0hFTjwvbGl0ZXJhbD4gY2xhdXNl IHNwZWNpZmllcworICAgICAgPGxpdGVyYWw+V0hFTiBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0U8L2xp dGVyYWw+IGFuZCB0aGUgY2FuZGlkYXRlIGNoYW5nZQorICAgICAgcm93IHJlcHJlc2VudHMgYSBy b3cgaW4gdGhlIHRhcmdldCB0YWJsZSB0aGF0IGRvZXMgbm90IG1hdGNoIGEgcm93IGluIHRoZQor ICAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfc291cmNlPC9yZXBsYWNl YWJsZT4sIHRoZQorICAgICAgPGxpdGVyYWw+V0hFTjwvbGl0ZXJhbD4gY2xhdXNlIGlzIGV4ZWN1 dGVkIGlmIHRoZQorICAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbmRpdGlv bjwvcmVwbGFjZWFibGU+IGlzCisgICAgICBhYnNlbnQgb3IgaXQgZXZhbHVhdGVzIHRvIDxsaXRl cmFsPnRydWU8L2xpdGVyYWw+LgorICAgICA8L3BhcmE+CisgICAgIDxwYXJhPgorICAgICAgSWYg dGhlIDxsaXRlcmFsPldIRU48L2xpdGVyYWw+IGNsYXVzZSBzcGVjaWZpZXMKKyAgICAgIDxsaXRl cmFsPldIRU4gTk9UIE1BVENIRUQgW0JZIFRBUkdFVF08L2xpdGVyYWw+IGFuZCB0aGUgY2FuZGlk YXRlIGNoYW5nZQorICAgICAgcm93IHJlcHJlc2VudHMgYSByb3cgaW4gdGhlCisgICAgICA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV9zb3VyY2U8L3JlcGxhY2VhYmxlPiB0aGF0 IGRvZXMgbm90CisgICAgICBtYXRjaCBhIHJvdyBpbiB0aGUgdGFyZ2V0IHRhYmxlLAogICAgICAg dGhlIDxsaXRlcmFsPldIRU48L2xpdGVyYWw+IGNsYXVzZSBpcyBleGVjdXRlZCBpZiB0aGUKICAg ICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb25kaXRpb248L3JlcGxhY2VhYmxl PiBpcwogICAgICAgYWJzZW50IG9yIGl0IGV2YWx1YXRlcyB0byA8bGl0ZXJhbD50cnVlPC9saXRl cmFsPi4KQEAgLTI4NSw3ICszMTAsMTAgQEAgREVMRVRFCiAgICAgIDxwYXJhPgogICAgICAgQSBj b25kaXRpb24gb24gYSA8bGl0ZXJhbD5XSEVOIE1BVENIRUQ8L2xpdGVyYWw+IGNsYXVzZSBjYW4g cmVmZXIgdG8gY29sdW1ucwogICAgICAgaW4gYm90aCB0aGUgc291cmNlIGFuZCB0aGUgdGFyZ2V0 IHJlbGF0aW9ucy4gQSBjb25kaXRpb24gb24gYQotICAgICAgPGxpdGVyYWw+V0hFTiBOT1QgTUFU Q0hFRDwvbGl0ZXJhbD4gY2xhdXNlIGNhbiBvbmx5IHJlZmVyIHRvIGNvbHVtbnMgZnJvbQorICAg ICAgPGxpdGVyYWw+V0hFTiBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0U8L2xpdGVyYWw+IGNsYXVzZSBj YW4gb25seSByZWZlciB0bworICAgICAgY29sdW1ucyBmcm9tIHRoZSB0YXJnZXQgcmVsYXRpb24s IHNpbmNlIGJ5IGRlZmluaXRpb24gdGhlcmUgaXMgbm8gbWF0Y2hpbmcKKyAgICAgIHNvdXJjZSBy b3cuIEEgY29uZGl0aW9uIG9uIGEgPGxpdGVyYWw+V0hFTiBOT1QgTUFUQ0hFRCBbQlkgVEFSR0VU XTwvbGl0ZXJhbD4KKyAgICAgIGNsYXVzZSBjYW4gb25seSByZWZlciB0byBjb2x1bW5zIGZyb20K ICAgICAgIHRoZSBzb3VyY2UgcmVsYXRpb24sIHNpbmNlIGJ5IGRlZmluaXRpb24gdGhlcmUgaXMg bm8gbWF0Y2hpbmcgdGFyZ2V0IHJvdy4KICAgICAgIE9ubHkgdGhlIHN5c3RlbSBhdHRyaWJ1dGVz IGZyb20gdGhlIHRhcmdldCB0YWJsZSBhcmUgYWNjZXNzaWJsZS4KICAgICAgPC9wYXJhPgpAQCAt NDA5LDggKzQzNywxMCBAQCBERUxFVEUKICAgICAgIDxsaXRlcmFsPldIRU4gTUFUQ0hFRDwvbGl0 ZXJhbD4gY2xhdXNlLCB0aGUgZXhwcmVzc2lvbiBjYW4gdXNlIHZhbHVlcwogICAgICAgZnJvbSB0 aGUgb3JpZ2luYWwgcm93IGluIHRoZSB0YXJnZXQgdGFibGUsIGFuZCB2YWx1ZXMgZnJvbSB0aGUK ICAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3NvdXJjZTwvcmVwbGFj ZWFibGU+IHJvdy4KLSAgICAgIElmIHVzZWQgaW4gYSA8bGl0ZXJhbD5XSEVOIE5PVCBNQVRDSEVE PC9saXRlcmFsPiBjbGF1c2UsIHRoZQotICAgICAgZXhwcmVzc2lvbiBjYW4gdXNlIHZhbHVlcyBm cm9tIHRoZQorICAgICAgSWYgdXNlZCBpbiBhIDxsaXRlcmFsPldIRU4gTk9UIE1BVENIRUQgQlkg U09VUkNFPC9saXRlcmFsPiBjbGF1c2UsIHRoZQorICAgICAgZXhwcmVzc2lvbiBjYW4gb25seSB1 c2UgdmFsdWVzIGZyb20gdGhlIG9yaWdpbmFsIHJvdyBpbiB0aGUgdGFyZ2V0IHRhYmxlLgorICAg ICAgSWYgdXNlZCBpbiBhIDxsaXRlcmFsPldIRU4gTk9UIE1BVENIRUQgW0JZIFRBUkdFVF08L2xp dGVyYWw+IGNsYXVzZSwgdGhlCisgICAgICBleHByZXNzaW9uIGNhbiBvbmx5IHVzZSB2YWx1ZXMg ZnJvbSB0aGUKICAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3NvdXJj ZTwvcmVwbGFjZWFibGU+IHJvdy4KICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CkBAIC00 ODQsOCArNTE0LDkgQEAgTUVSR0UgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRvdAog ICAgICAgIDxvcmRlcmVkbGlzdD4KICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgPHBhcmE+ Ci0gICAgICAgICAgRXZhbHVhdGUgd2hldGhlciBlYWNoIHJvdyBpcyA8bGl0ZXJhbD5NQVRDSEVE PC9saXRlcmFsPiBvcgotICAgICAgICAgIDxsaXRlcmFsPk5PVCBNQVRDSEVEPC9saXRlcmFsPi4K KyAgICAgICAgICBFdmFsdWF0ZSB3aGV0aGVyIGVhY2ggcm93IGlzIDxsaXRlcmFsPk1BVENIRUQ8 L2xpdGVyYWw+LAorICAgICAgICAgIDxsaXRlcmFsPk5PVCBNQVRDSEVEIEJZIFNPVVJDRTwvbGl0 ZXJhbD4sIG9yCisgICAgICAgICAgPGxpdGVyYWw+Tk9UIE1BVENIRUQgW0JZIFRBUkdFVF08L2xp dGVyYWw+LgogICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICA8 bGlzdGl0ZW0+CkBAIC01NjQsNyArNTk1LDggQEAgTUVSR0UgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnRvdAogICA8cGFyYT4KICAgIElmIGEgPGxpdGVyYWw+V0hFTjwvbGl0ZXJhbD4g Y2xhdXNlIG9taXRzIGFuIDxsaXRlcmFsPkFORDwvbGl0ZXJhbD4KICAgIHN1Yi1jbGF1c2UsIGl0 IGJlY29tZXMgdGhlIGZpbmFsIHJlYWNoYWJsZSBjbGF1c2Ugb2YgdGhhdAotICAga2luZCAoPGxp dGVyYWw+TUFUQ0hFRDwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+Tk9UIE1BVENIRUQ8L2xpdGVyYWw+ KS4KKyAgIGtpbmQgKDxsaXRlcmFsPk1BVENIRUQ8L2xpdGVyYWw+LCA8bGl0ZXJhbD5OT1QgTUFU Q0hFRCBCWSBTT1VSQ0U8L2xpdGVyYWw+LAorICAgb3IgPGxpdGVyYWw+Tk9UIE1BVENIRUQgW0JZ IFRBUkdFVF08L2xpdGVyYWw+KS4KICAgIElmIGEgbGF0ZXIgPGxpdGVyYWw+V0hFTjwvbGl0ZXJh bD4gY2xhdXNlIG9mIHRoYXQga2luZAogICAgaXMgc3BlY2lmaWVkIGl0IHdvdWxkIGJlIHByb3Zh Ymx5IHVucmVhY2hhYmxlIGFuZCBhbiBlcnJvciBpcyByYWlzZWQuCiAgICBJZiBubyBmaW5hbCBy ZWFjaGFibGUgY2xhdXNlIGlzIHNwZWNpZmllZCBvZiBlaXRoZXIga2luZCwgaXQgaXMKQEAgLTY1 NSw2ICs2ODcsMjMgQEAgV0hFTiBNQVRDSEVEIFRIRU4KICAgIHRlbXBvcmFyeSB0YWJsZSByZWNl bnRseSBsb2FkZWQgaW50byB0aGUgZGF0YWJhc2UuCiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAg IFVwZGF0ZSA8bGl0ZXJhbD53aW5lczwvbGl0ZXJhbD4gYmFzZWQgb24gYSByZXBsYWNlbWVudCB3 aW5lIGxpc3QsIGluc2VydGluZworICAgcm93cyBmb3IgYW55IG5ldyBzdG9jaywgdXBkYXRpbmcg bW9kaWZpZWQgc3RvY2sgZW50cmllcywgYW5kIGRlbGV0aW5nIGFueQorICAgd2luZXMgbm90IHBy ZXNlbnQgaW4gdGhlIG5ldyBsaXN0LgorPHByb2dyYW1saXN0aW5nPgorTUVSR0UgSU5UTyB3aW5l cyB3CitVU0lORyBuZXdfd2luZV9saXN0IHMKK09OIHMud2luZW5hbWUgPSB3LndpbmVuYW1lCitX SEVOIE5PVCBNQVRDSEVEIEJZIFRBUkdFVCBUSEVOCisgIElOU0VSVCBWQUxVRVMocy53aW5lbmFt ZSwgcy5zdG9jaykKK1dIRU4gTUFUQ0hFRCBBTkQgdy5zdG9jayAhPSBzLnN0b2NrIFRIRU4KKyAg VVBEQVRFIFNFVCBzdG9jayA9IHMuc3RvY2sKK1dIRU4gTk9UIE1BVENIRUQgQlkgU09VUkNFIFRI RU4KKyAgREVMRVRFOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCiAgPC9yZWZzZWN0 MT4KIAogIDxyZWZzZWN0MT4KQEAgLTY2Myw3ICs3MTIsOSBAQCBXSEVOIE1BVENIRUQgVEhFTgog ICAgIFRoaXMgY29tbWFuZCBjb25mb3JtcyB0byB0aGUgPGFjcm9ueW0+U1FMPC9hY3JvbnltPiBz dGFuZGFyZC4KICAgPC9wYXJhPgogICAgPHBhcmE+Ci0gICAgVGhlIDxsaXRlcmFsPldJVEg8L2xp dGVyYWw+IGNsYXVzZSBhbmQgPGxpdGVyYWw+RE8gTk9USElORzwvbGl0ZXJhbD4KKyAgICBUaGUg PGxpdGVyYWw+V0lUSDwvbGl0ZXJhbD4gY2xhdXNlLCA8bGl0ZXJhbD5CWSBTT1VSQ0U8L2xpdGVy YWw+IGFuZAorICAgIDxsaXRlcmFsPkJZIFRBUkdFVDwvbGl0ZXJhbD4gcXVhbGlmaWVycyB0bwor ICAgIDxsaXRlcmFsPldIRU4gTk9UIE1BVENIRUQ8L2xpdGVyYWw+LCBhbmQgPGxpdGVyYWw+RE8g Tk9USElORzwvbGl0ZXJhbD4KICAgICBhY3Rpb24gYXJlIGV4dGVuc2lvbnMgdG8gdGhlIDxhY3Jv bnltPlNRTDwvYWNyb255bT4gc3RhbmRhcmQuCiAgIDwvcGFyYT4KICA8L3JlZnNlY3QxPgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNNYWluLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTQwNDk5Yy4uMjRj YjE1MgotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCisrKyBiL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKQEAgLTEyNDUsOCArMTI0NSwxMCBAQCBJbml0UmVzdWx0 UmVsSW5mbyhSZXN1bHRSZWxJbmZvICpyZXN1bHRSCiAJcmVzdWx0UmVsSW5mby0+cmlfUmV0dXJu aW5nU2xvdCA9IE5VTEw7CiAJcmVzdWx0UmVsSW5mby0+cmlfVHJpZ09sZFNsb3QgPSBOVUxMOwog CXJlc3VsdFJlbEluZm8tPnJpX1RyaWdOZXdTbG90ID0gTlVMTDsKLQlyZXN1bHRSZWxJbmZvLT5y aV9tYXRjaGVkTWVyZ2VBY3Rpb24gPSBOSUw7Ci0JcmVzdWx0UmVsSW5mby0+cmlfbm90TWF0Y2hl ZE1lcmdlQWN0aW9uID0gTklMOworCXJlc3VsdFJlbEluZm8tPnJpX01lcmdlQWN0aW9uc1tNRVJH RV9XSEVOX01BVENIRURdID0gTklMOworCXJlc3VsdFJlbEluZm8tPnJpX01lcmdlQWN0aW9uc1tN RVJHRV9XSEVOX05PVF9NQVRDSEVEX0JZX1NPVVJDRV0gPSBOSUw7CisJcmVzdWx0UmVsSW5mby0+ cmlfTWVyZ2VBY3Rpb25zW01FUkdFX1dIRU5fTk9UX01BVENIRURfQllfVEFSR0VUXSA9IE5JTDsK KwlyZXN1bHRSZWxJbmZvLT5yaV9NZXJnZUpvaW5Db25kaXRpb24gPSBOVUxMOwogCiAJLyoKIAkg KiBPbmx5IEV4ZWNJbml0UGFydGl0aW9uSW5mbygpIGFuZCBFeGVjSW5pdFBhcnRpdGlvbkRpc3Bh dGNoSW5mbygpIHBhc3MKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJ0 aXRpb24uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJ0aXRpb24uYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCA4Y2E1MTJkLi4wZDgzYjJmCi0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNQYXJ0aXRpb24uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFydGl0 aW9uLmMKQEAgLTg3OCw2ICs4NzgsNyBAQCBFeGVjSW5pdFBhcnRpdGlvbkluZm8oTW9kaWZ5VGFi bGVTdGF0ZSAqCiAJCUxpc3QJICAgKmZpcnN0TWVyZ2VBY3Rpb25MaXN0ID0gbGluaXRpYWwobm9k ZS0+bWVyZ2VBY3Rpb25MaXN0cyk7CiAJCUxpc3RDZWxsICAgKmxjOwogCQlFeHByQ29udGV4dCAq ZWNvbnRleHQgPSBtdHN0YXRlLT5wcy5wc19FeHByQ29udGV4dDsKKwkJTm9kZQkgICAqam9pbkNv bmRpdGlvbjsKIAogCQlpZiAocGFydF9hdHRtYXAgPT0gTlVMTCkKIAkJCXBhcnRfYXR0bWFwID0K QEAgLTg4OCwyMyArODg5LDMxIEBAIEV4ZWNJbml0UGFydGl0aW9uSW5mbyhNb2RpZnlUYWJsZVN0 YXRlICoKIAkJaWYgKHVubGlrZWx5KCFsZWFmX3BhcnRfcnJpLT5yaV9wcm9qZWN0TmV3SW5mb1Zh bGlkKSkKIAkJCUV4ZWNJbml0TWVyZ2VUdXBsZVNsb3RzKG10c3RhdGUsIGxlYWZfcGFydF9ycmkp OwogCisJCS8qIEluaXRpYWxpemUgc3RhdGUgZm9yIGpvaW4gY29uZGl0aW9uLWNoZWNraW5nLiAq LworCQlqb2luQ29uZGl0aW9uID0KKwkJCW1hcF92YXJpYWJsZV9hdHRub3MobGluaXRpYWwobm9k ZS0+bWVyZ2VKb2luQ29uZGl0aW9ucyksCisJCQkJCQkJCWZpcnN0VmFybm8sIDAsCisJCQkJCQkJ CXBhcnRfYXR0bWFwLAorCQkJCQkJCQlSZWxhdGlvbkdldEZvcm0ocGFydHJlbCktPnJlbHR5cGUs CisJCQkJCQkJCSZmb3VuZF93aG9sZV9yb3cpOworCQkvKiBXZSBpZ25vcmUgdGhlIHZhbHVlIG9m IGZvdW5kX3dob2xlX3Jvdy4gKi8KKwkJbGVhZl9wYXJ0X3JyaS0+cmlfTWVyZ2VKb2luQ29uZGl0 aW9uID0KKwkJCUV4ZWNJbml0UXVhbCgoTGlzdCAqKSBqb2luQ29uZGl0aW9uLCAmbXRzdGF0ZS0+ cHMpOworCiAJCWZvcmVhY2gobGMsIGZpcnN0TWVyZ2VBY3Rpb25MaXN0KQogCQl7CiAJCQkvKiBN YWtlIGEgY29weSBmb3IgdGhpcyByZWxhdGlvbiB0byBiZSBzYWZlLiAgKi8KIAkJCU1lcmdlQWN0 aW9uICphY3Rpb24gPSBjb3B5T2JqZWN0KGxmaXJzdChsYykpOwogCQkJTWVyZ2VBY3Rpb25TdGF0 ZSAqYWN0aW9uX3N0YXRlOwotCQkJTGlzdAkgICoqbGlzdDsKIAogCQkJLyogR2VuZXJhdGUgdGhl IGFjdGlvbidzIHN0YXRlIGZvciB0aGlzIHJlbGF0aW9uICovCiAJCQlhY3Rpb25fc3RhdGUgPSBt YWtlTm9kZShNZXJnZUFjdGlvblN0YXRlKTsKIAkJCWFjdGlvbl9zdGF0ZS0+bWFzX2FjdGlvbiA9 IGFjdGlvbjsKIAogCQkJLyogQW5kIHB1dCB0aGUgYWN0aW9uIGluIHRoZSBhcHByb3ByaWF0ZSBs aXN0ICovCi0JCQlpZiAoYWN0aW9uLT5tYXRjaGVkKQotCQkJCWxpc3QgPSAmbGVhZl9wYXJ0X3Jy aS0+cmlfbWF0Y2hlZE1lcmdlQWN0aW9uOwotCQkJZWxzZQotCQkJCWxpc3QgPSAmbGVhZl9wYXJ0 X3JyaS0+cmlfbm90TWF0Y2hlZE1lcmdlQWN0aW9uOwotCQkJKmxpc3QgPSBsYXBwZW5kKCpsaXN0 LCBhY3Rpb25fc3RhdGUpOworCQkJbGVhZl9wYXJ0X3JyaS0+cmlfTWVyZ2VBY3Rpb25zW2FjdGlv bi0+bWF0Y2hLaW5kXSA9CisJCQkJbGFwcGVuZChsZWFmX3BhcnRfcnJpLT5yaV9NZXJnZUFjdGlv bnNbYWN0aW9uLT5tYXRjaEtpbmRdLAorCQkJCQkJYWN0aW9uX3N0YXRlKTsKIAogCQkJc3dpdGNo IChhY3Rpb24tPmNvbW1hbmRUeXBlKQogCQkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhl Y3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5 VGFibGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MzUxZmJjLi43ZTE5YmFlCi0tLSBh L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jCkBAIC0yNCwxMyArMjQsMTUgQEAKICAqCQl2YWx1 ZXMgcGx1cyByb3ctbG9jYXRpbmcgaW5mbyBmb3IgVVBEQVRFIGFuZCBNRVJHRSBjYXNlcywgb3Ig anVzdCB0aGUKICAqCQlyb3ctbG9jYXRpbmcgaW5mbyBmb3IgREVMRVRFIGNhc2VzLgogICoKLSAq CQlNRVJHRSBydW5zIGEgam9pbiBiZXR3ZWVuIHRoZSBzb3VyY2UgcmVsYXRpb24gYW5kIHRoZSB0 YXJnZXQKLSAqCQl0YWJsZTsgaWYgYW55IFdIRU4gTk9UIE1BVENIRUQgY2xhdXNlcyBhcmUgcHJl c2VudCwgdGhlbiB0aGUKLSAqCQlqb2luIGlzIGFuIG91dGVyIGpvaW4uICBJbiB0aGlzIGNhc2Us IGFueSB1bm1hdGNoZWQgdHVwbGVzIHdpbGwKLSAqCQloYXZlIE5VTEwgcm93LWxvY2F0aW5nIGlu Zm8sIGFuZCBvbmx5IElOU0VSVCBjYW4gYmUgcnVuLiBCdXQgZm9yCi0gKgkJbWF0Y2hlZCB0dXBs ZXMsIHRoZW4gcm93LWxvY2F0aW5nIGluZm8gaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlCi0gKgkJ dHVwbGUgdG8gVVBEQVRFIG9yIERFTEVURS4gV2hlbiBhbGwgY2xhdXNlcyBhcmUgV0hFTiBNQVRD SEVELAotICoJCXRoZW4gYW4gaW5uZXIgam9pbiBpcyB1c2VkLCBzbyBhbGwgdHVwbGVzIGNvbnRh aW4gcm93LWxvY2F0aW5nIGluZm8uCisgKgkJTUVSR0UgcnVucyBhIGpvaW4gYmV0d2VlbiB0aGUg c291cmNlIHJlbGF0aW9uIGFuZCB0aGUgdGFyZ2V0IHRhYmxlLgorICoJCUlmIGFueSBXSEVOIE5P VCBNQVRDSEVEIFtCWSBUQVJHRVRdIGNsYXVzZXMgYXJlIHByZXNlbnQsIHRoZW4gdGhlIGpvaW4K KyAqCQlpcyBhbiBvdXRlciBqb2luIHRoYXQgbWlnaHQgb3V0cHV0IHR1cGxlcyB3aXRob3V0IGEg bWF0Y2hpbmcgdGFyZ2V0CisgKgkJdHVwbGUuICBJbiB0aGlzIGNhc2UsIGFueSB1bm1hdGNoZWQg dGFyZ2V0IHR1cGxlcyB3aWxsIGhhdmUgTlVMTAorICoJCXJvdy1sb2NhdGluZyBpbmZvLCBhbmQg b25seSBJTlNFUlQgY2FuIGJlIHJ1bi4gIEJ1dCBmb3IgbWF0Y2hlZAorICoJCXRhcmdldCB0dXBs ZXMsIHRoZSByb3ctbG9jYXRpbmcgaW5mbyBpcyB1c2VkIHRvIGRldGVybWluZSB0aGUgdHVwbGUK KyAqCQl0byBVUERBVEUgb3IgREVMRVRFLiAgV2hlbiBhbGwgY2xhdXNlcyBhcmUgV0hFTiBNQVRD SEVEIG9yIFdIRU4gTk9UCisgKgkJTUFUQ0hFRCBCWSBTT1VSQ0UsIGFsbCB0dXBsZXMgcHJvZHVj ZWQgYnkgdGhlIGpvaW4gd2lsbCBpbmNsdWRlIGEKKyAqCQltYXRjaGluZyB0YXJnZXQgdHVwbGUs IHNvIGFsbCB0dXBsZXMgY29udGFpbiByb3ctbG9jYXRpbmcgaW5mby4KICAqCiAgKgkJSWYgdGhl IHF1ZXJ5IHNwZWNpZmllcyBSRVRVUk5JTkcsIHRoZW4gdGhlIE1vZGlmeVRhYmxlIHJldHVybnMg YQogICoJCVJFVFVSTklORyB0dXBsZSBhZnRlciBjb21wbGV0aW5nIGVhY2ggcm93IGluc2VydCwg dXBkYXRlLCBvciBkZWxldGUuCkBAIC0yNzE2LDQ4ICsyNzE4LDYxIEBAIEV4ZWNNZXJnZShNb2Rp ZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsIFIKIAlib29sCQltYXRjaGVkOwogCiAJLyotLS0tLQot CSAqIElmIHdlIGFyZSBkZWFsaW5nIHdpdGggYSBXSEVOIE1BVENIRUQgY2FzZSAodHVwbGVpZCBv ciBvbGR0dXBsZSBpcwotCSAqIHZhbGlkLCBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgcmVzdWx0 IHJlbGF0aW9uIGlzIGEgdGFibGUgb3IgYSB2aWV3KSwKLQkgKiB3ZSBleGVjdXRlIHRoZSBmaXJz dCBhY3Rpb24gZm9yIHdoaWNoIHRoZSBhZGRpdGlvbmFsIFdIRU4gTUFUQ0hFRCBBTkQKKwkgKiBJ ZiB3ZSBhcmUgZGVhbGluZyB3aXRoIGEgV0hFTiBNQVRDSEVEIGNhc2UsIHR1cGxlaWQgb3Igb2xk dHVwbGUgaXMKKwkgKiB2YWxpZCwgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIHJlc3VsdCByZWxh dGlvbiBpcyBhIHRhYmxlIG9yIGEgdmlldy4KKwkgKiBXZSBleGVjdXRlIHRoZSBmaXJzdCBhY3Rp b24gZm9yIHdoaWNoIHRoZSBhZGRpdGlvbmFsIFdIRU4gTUFUQ0hFRCBBTkQKIAkgKiBxdWFscyBw YXNzLiAgSWYgYW4gYWN0aW9uIHdpdGhvdXQgcXVhbHMgaXMgZm91bmQsIHRoYXQgYWN0aW9uIGlz CiAJICogZXhlY3V0ZWQuCiAJICoKLQkgKiBTaW1pbGFybHksIGlmIHdlIGFyZSBkZWFsaW5nIHdp dGggV0hFTiBOT1QgTUFUQ0hFRCBjYXNlLCB3ZSBsb29rIGF0Ci0JICogdGhlIGdpdmVuIFdIRU4g Tk9UIE1BVENIRUQgYWN0aW9ucyBpbiBzZXF1ZW5jZSB1bnRpbCBvbmUgcGFzc2VzLgorCSAqIFNp bWlsYXJseSwgaW4gdGhlIFdIRU4gTk9UIE1BVENIRUQgQlkgU09VUkNFIGNhc2UsIHR1cGxlaWQg b3Igb2xkdHVwbGUKKwkgKiBpcyB2YWxpZCwgYW5kIHdlIGxvb2sgYXQgdGhlIGdpdmVuIFdIRU4g Tk9UIE1BVENIRUQgQlkgU09VUkNFIGFjdGlvbnMKKwkgKiBpbiBzZXF1ZW5jZSB1bnRpbCBvbmUg cGFzc2VzLiAgVGhpcyBpcyBhbG1vc3QgaWRlbnRpY2FsIHRvIHRoZSBXSEVOCisJICogTUFUQ0hF RCBjYXNlLCBhbmQgYm90aCBjYXNlcyBhcmUgaGFuZGxlZCBieSBFeGVjTWVyZ2VNYXRjaGVkKCku CisJICoKKwkgKiBGaW5hbGx5LCBpbiB0aGUgV0hFTiBOT1QgTUFUQ0hFRCBbQlkgVEFSR0VUXSBj YXNlLCBib3RoIHR1cGxlaWQgYW5kCisJICogb2xkdHVwbGUgYXJlIGludmFsaWQsIGFuZCB3ZSBs b29rIGF0IHRoZSBnaXZlbiBXSEVOIE5PVCBNQVRDSEVEIFtCWQorCSAqIFRBUkdFVF0gYWN0aW9u cyBpbiBzZXF1ZW5jZSB1bnRpbCBvbmUgcGFzc2VzLgogCSAqCiAJICogVGhpbmdzIGdldCBpbnRl cmVzdGluZyBpbiBjYXNlIG9mIGNvbmN1cnJlbnQgdXBkYXRlL2RlbGV0ZSBvZiB0aGUKIAkgKiB0 YXJnZXQgdHVwbGUuIFN1Y2ggY29uY3VycmVudCB1cGRhdGUvZGVsZXRlIGlzIGRldGVjdGVkIHdo aWxlIHdlIGFyZQotCSAqIGV4ZWN1dGluZyBhIFdIRU4gTUFUQ0hFRCBhY3Rpb24uCisJICogZXhl Y3V0aW5nIGEgV0hFTiBNQVRDSEVEIG9yIFdIRU4gTk9UIE1BVENIRUQgQlkgU09VUkNFIGFjdGlv bi4KIAkgKgogCSAqIEEgY29uY3VycmVudCB1cGRhdGUgY2FuOgogCSAqCiAJICogMS4gbW9kaWZ5 IHRoZSB0YXJnZXQgdHVwbGUgc28gdGhhdCBpdCBubyBsb25nZXIgc2F0aXNmaWVzIHRoZQotCSAq ICAgIGFkZGl0aW9uYWwgcXVhbHMgYXR0YWNoZWQgdG8gdGhlIGN1cnJlbnQgV0hFTiBNQVRDSEVE IGFjdGlvbgorCSAqICAgIGFkZGl0aW9uYWwgcXVhbHMgYXR0YWNoZWQgdG8gdGhlIGN1cnJlbnQg V0hFTiBNQVRDSEVEIG9yIFdIRU4gTk9UCisJICogICAgTUFUQ0hFRCBCWSBTT1VSQ0UgYWN0aW9u LCBidXQgc3RpbGwgc2F0aXNmaWVzIHRoZSBqb2luIHF1YWxzLgogCSAqCi0JICogICAgSW4gdGhp cyBjYXNlLCB3ZSBhcmUgc3RpbGwgZGVhbGluZyB3aXRoIGEgV0hFTiBNQVRDSEVEIGNhc2UuCi0J ICogICAgV2UgcmVjaGVjayB0aGUgbGlzdCBvZiBXSEVOIE1BVENIRUQgYWN0aW9ucyBmcm9tIHRo ZSBzdGFydCBhbmQKLQkgKiAgICBjaG9vc2UgdGhlIGZpcnN0IG9uZSB0aGF0IHNhdGlzZmllcyB0 aGUgbmV3IHRhcmdldCB0dXBsZS4KKwkgKiAgICBJbiB0aGlzIGNhc2UsIHdlIGFyZSBzdGlsbCBk ZWFsaW5nIHdpdGggdGhlIHNhbWUga2luZCBvZiBtYXRjaAorCSAqICAgIChNQVRDSEVEIG9yIE5P VCBNQVRDSEVEIEJZIFNPVVJDRSkuICBXZSByZWNoZWNrIHRoZSBzYW1lIGxpc3Qgb2YKKwkgKiAg ICBhY3Rpb25zIGZyb20gdGhlIHN0YXJ0IGFuZCBjaG9vc2UgdGhlIGZpcnN0IG9uZSB0aGF0IHNh dGlzZmllcyB0aGUKKwkgKiAgICBuZXcgdGFyZ2V0IHR1cGxlLgogCSAqCiAJICogMi4gbW9kaWZ5 IHRoZSB0YXJnZXQgdHVwbGUgc28gdGhhdCB0aGUgam9pbiBxdWFscyBubyBsb25nZXIgcGFzcyBh bmQKLQkgKiAgICBoZW5jZSB0aGUgc291cmNlIHR1cGxlIG5vIGxvbmdlciBoYXMgYSBtYXRjaC4K KwkgKiAgICBoZW5jZSB0aGUgc291cmNlIGFuZCB0YXJnZXQgdHVwbGVzIG5vIGxvbmdlciBtYXRj aC4KIAkgKgotCSAqICAgIEluIHRoaXMgY2FzZSwgdGhlIHNvdXJjZSB0dXBsZSBubyBsb25nZXIg bWF0Y2hlcyB0aGUgdGFyZ2V0IHR1cGxlLAotCSAqICAgIHNvIHdlIG5vdyBpbnN0ZWFkIGZpbmQg YSBxdWFsaWZ5aW5nIFdIRU4gTk9UIE1BVENIRUQgYWN0aW9uIHRvCi0JICogICAgZXhlY3V0ZS4K KwkgKiAgICBJbiB0aGlzIGNhc2UsIHdlIGFyZSBub3cgZGVhbGluZyB3aXRoIGEgTk9UIE1BVENI RUQgY2FzZSwgYW5kIHdlCisJICogICAgcHJvY2VzcyBib3RoIFdIRU4gTk9UIE1BVENIRUQgQlkg U09VUkNFIGFuZCBXSEVOIE5PVCBNQVRDSEVEIFtCWQorCSAqICAgIFRBUkdFVF0gYWN0aW9ucy4g IEZpcnN0IEV4ZWNNZXJnZU1hdGNoZWQoKSBwcm9jZXNzZXMgdGhlIGxpc3Qgb2YKKwkgKiAgICBX SEVOIE5PVCBNQVRDSEVEIEJZIFNPVVJDRSBhY3Rpb25zIGluIHNlcXVlbmNlIHVudGlsIG9uZSBw YXNzZXMsCisJICogICAgdGhlbiBFeGVjTWVyZ2VOb3RNYXRjaGVkKCkgcHJvY2Vzc2VzIGFueSBX SEVOIE5PVCBNQVRDSEVEIFtCWQorCSAqICAgIFRBUkdFVF0gYWN0aW9ucyBpbiBzZXF1ZW5jZSB1 bnRpbCBvbmUgcGFzc2VzLiAgVGh1cyB3ZSBtYXkgZXhlY3V0ZQorCSAqICAgIHR3byBhY3Rpb25z OyBvbmUgb2YgZWFjaCBraW5kLgogCSAqCiAJICogWFhYIEhtbW0sIHdoYXQgaWYgdGhlIHVwZGF0 ZWQgdHVwbGUgd291bGQgbm93IG1hdGNoIG9uZSB0aGF0IHdhcwogCSAqIGNvbnNpZGVyZWQgTk9U IE1BVENIRUQgc28gZmFyPwogCSAqCi0JICogQSBjb25jdXJyZW50IGRlbGV0ZSBjaGFuZ2VzIGEg V0hFTiBNQVRDSEVEIGNhc2UgdG8gV0hFTiBOT1QgTUFUQ0hFRC4KKwkgKiBBIGNvbmN1cnJlbnQg ZGVsZXRlIGNoYW5nZXMgYSBXSEVOIE1BVENIRUQgY2FzZSB0byBXSEVOIE5PVCBNQVRDSEVECisJ ICogW0JZIFRBUkdFVF0uCiAJICoKIAkgKiBFeGVjTWVyZ2VNYXRjaGVkIHRha2VzIGNhcmUgb2Yg Zm9sbG93aW5nIHRoZSB1cGRhdGUgY2hhaW4gYW5kCi0JICogcmUtZmluZGluZyB0aGUgcXVhbGlm eWluZyBXSEVOIE1BVENIRUQgYWN0aW9uLCBhcyBsb25nIGFzIHRoZSB1cGRhdGVkCi0JICogdGFy Z2V0IHR1cGxlIHN0aWxsIHNhdGlzZmllcyB0aGUgam9pbiBxdWFscywgaS5lLiwgaXQgcmVtYWlu cyBhIFdIRU4KLQkgKiBNQVRDSEVEIGNhc2UuIElmIHRoZSB0dXBsZSBnZXRzIGRlbGV0ZWQgb3Ig dGhlIGpvaW4gcXVhbHMgZmFpbCwgaXQKLQkgKiByZXR1cm5zIGFuZCB3ZSB0cnkgRXhlY01lcmdl Tm90TWF0Y2hlZC4gR2l2ZW4gdGhhdCBFeGVjTWVyZ2VNYXRjaGVkCi0JICogYWx3YXlzIG1ha2Ug cHJvZ3Jlc3MgYnkgZm9sbG93aW5nIHRoZSB1cGRhdGUgY2hhaW4gYW5kIHdlIG5ldmVyIHN3aXRj aAotCSAqIGZyb20gRXhlY01lcmdlTm90TWF0Y2hlZCB0byBFeGVjTWVyZ2VNYXRjaGVkLCB0aGVy ZSBpcyBubyByaXNrIG9mIGEKLQkgKiBsaXZlbG9jay4KKwkgKiByZS1maW5kaW5nIHRoZSBxdWFs aWZ5aW5nIFdIRU4gTUFUQ0hFRCBvciBXSEVOIE5PVCBNQVRDSEVEIEJZIFNPVVJDRQorCSAqIGFj dGlvbiwgYXMgbG9uZyBhcyB0aGUgdGFyZ2V0IHR1cGxlIHN0aWxsIGV4aXN0cy4gSWYgdGhlIHRh cmdldCB0dXBsZQorCSAqIGdldHMgZGVsZXRlZCBvciBhIGNvbmN1cnJlbnQgdXBkYXRlIGNhdXNl cyB0aGUgam9pbiBxdWFscyB0byBmYWlsLCBpdAorCSAqIHJldHVybnMgYSBtYXRjaGVkIHN0YXR1 cyBvZiBmYWxzZSBhbmQgd2UgY2FsbCBFeGVjTWVyZ2VOb3RNYXRjaGVkLgorCSAqIEdpdmVuIHRo YXQgRXhlY01lcmdlTWF0Y2hlZCBhbHdheXMgbWFrZXMgcHJvZ3Jlc3MgYnkgZm9sbG93aW5nIHRo ZQorCSAqIHVwZGF0ZSBjaGFpbiBhbmQgd2UgbmV2ZXIgc3dpdGNoIGZyb20gRXhlY01lcmdlTm90 TWF0Y2hlZCB0bworCSAqIEV4ZWNNZXJnZU1hdGNoZWQsIHRoZXJlIGlzIG5vIHJpc2sgb2YgYSBs aXZlbG9jay4KIAkgKi8KIAltYXRjaGVkID0gdHVwbGVpZCAhPSBOVUxMIHx8IG9sZHR1cGxlICE9 IE5VTEw7CiAJaWYgKG1hdGNoZWQpCkBAIC0yNzc3LDg1ICsyNzkyLDEwMyBAQCBFeGVjTWVyZ2Uo TW9kaWZ5VGFibGVDb250ZXh0ICpjb250ZXh0LCBSCiB9CiAKIC8qCi0gKiBDaGVjayBhbmQgZXhl Y3V0ZSB0aGUgZmlyc3QgcXVhbGlmeWluZyBNQVRDSEVEIGFjdGlvbi4gIElmIHRoZSB0YXJnZXQK KyAqIENoZWNrIGFuZCBleGVjdXRlIHRoZSBmaXJzdCBxdWFsaWZ5aW5nIE1BVENIRUQgb3IgTk9U IE1BVENIRUQgQlkgU09VUkNFCisgKiBhY3Rpb24sIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBq b2luIHF1YWxzIGFyZSBzYXRpc2ZpZWQuICBJZiB0aGUgdGFyZ2V0CiAgKiByZWxhdGlvbiBpcyBh IHRhYmxlLCB0aGUgY3VycmVudCB0YXJnZXQgdHVwbGUgaXMgaWRlbnRpZmllZCBieSB0dXBsZWlk LgogICogT3RoZXJ3aXNlLCBpZiB0aGUgdGFyZ2V0IHJlbGF0aW9uIGlzIGEgdmlldywgb2xkdHVw bGUgaXMgdGhlIGN1cnJlbnQgdGFyZ2V0CiAgKiB0dXBsZSBmcm9tIHRoZSB2aWV3LgogICoKLSAq IFdlIHN0YXJ0IGZyb20gdGhlIGZpcnN0IFdIRU4gTUFUQ0hFRCBhY3Rpb24gYW5kIGNoZWNrIGlm IHRoZSBXSEVOIHF1YWxzCi0gKiBwYXNzLCBpZiBhbnkuIElmIHRoZSBXSEVOIHF1YWxzIGZvciB0 aGUgZmlyc3QgYWN0aW9uIGRvIG5vdCBwYXNzLCB3ZQotICogY2hlY2sgdGhlIHNlY29uZCwgdGhl biB0aGUgdGhpcmQgYW5kIHNvIG9uLiBJZiB3ZSByZWFjaCB0byB0aGUgZW5kLCBubwotICogYWN0 aW9uIGlzIHRha2VuIGFuZCB3ZSByZXR1cm4gdHJ1ZSwgaW5kaWNhdGluZyB0aGF0IG5vIGZ1cnRo ZXIgYWN0aW9uIGlzCi0gKiByZXF1aXJlZCBmb3IgdGhpcyB0dXBsZS4KKyAqIFdlIHN0YXJ0IGZy b20gdGhlIGZpcnN0IFdIRU4gTUFUQ0hFRCBvciBXSEVOIE5PVCBNQVRDSEVEIEJZIFNPVVJDRSBh Y3Rpb24KKyAqIGFuZCBjaGVjayBpZiB0aGUgV0hFTiBxdWFscyBwYXNzLCBpZiBhbnkuIElmIHRo ZSBXSEVOIHF1YWxzIGZvciB0aGUgZmlyc3QKKyAqIGFjdGlvbiBkbyBub3QgcGFzcywgd2UgY2hl Y2sgdGhlIHNlY29uZCwgdGhlbiB0aGUgdGhpcmQgYW5kIHNvIG9uLiBJZiB3ZQorICogcmVhY2gg dG8gdGhlIGVuZCwgbm8gYWN0aW9uIGlzIHRha2VuIGFuZCB3ZSByZXR1cm4gdHJ1ZSwgaW5kaWNh dGluZyB0aGF0IG5vCisgKiBmdXJ0aGVyIGFjdGlvbiBpcyByZXF1aXJlZCBmb3IgdGhpcyB0dXBs ZS4KICAqCiAgKiBJZiB3ZSBkbyBmaW5kIGEgcXVhbGlmeWluZyBhY3Rpb24sIHRoZW4gd2UgYXR0 ZW1wdCB0byBleGVjdXRlIHRoZSBhY3Rpb24uCiAgKgotICogSWYgdGhlIHR1cGxlIGlzIGNvbmN1 cnJlbnRseSB1cGRhdGVkLCBFdmFsUGxhblF1YWwgaXMgcnVuIHdpdGggdGhlIHVwZGF0ZWQKLSAq IHR1cGxlIHRvIHJlY2hlY2sgdGhlIGpvaW4gcXVhbHMuIE5vdGUgdGhhdCB0aGUgYWRkaXRpb25h bCBxdWFscyBhc3NvY2lhdGVkCi0gKiB3aXRoIGluZGl2aWR1YWwgYWN0aW9ucyBhcmUgZXZhbHVh dGVkIGJ5IHRoaXMgcm91dGluZSB2aWEgRXhlY1F1YWwsIHdoaWxlCi0gKiBFdmFsUGxhblF1YWwg Y2hlY2tzIGZvciB0aGUgam9pbiBxdWFscy4gSWYgRXZhbFBsYW5RdWFsIHRlbGxzIHVzIHRoYXQg dGhlCi0gKiB1cGRhdGVkIHR1cGxlIHN0aWxsIHBhc3NlcyB0aGUgam9pbiBxdWFscywgdGhlbiB3 ZSByZXN0YXJ0IGZyb20gdGhlIGZpcnN0Ci0gKiBhY3Rpb24gdG8gbG9vayBmb3IgYSBxdWFsaWZ5 aW5nIGFjdGlvbi4gT3RoZXJ3aXNlLCB3ZSByZXR1cm4gZmFsc2UgLS0KLSAqIG1lYW5pbmcgdGhh dCBhIE5PVCBNQVRDSEVEIGFjdGlvbiBtdXN0IG5vdyBiZSBleGVjdXRlZCBmb3IgdGhlIGN1cnJl bnQKLSAqIHNvdXJjZSB0dXBsZS4KKyAqIElmIHRoZSB0dXBsZSBpcyBjb25jdXJyZW50bHkgdXBk YXRlZCwgYW5kIHdlIHdlcmUgZGVhbGluZyB3aXRoIHRoZSBNQVRDSEVECisgKiBjYXNlLCBFdmFs UGxhblF1YWwgaXMgcnVuIHdpdGggdGhlIHVwZGF0ZWQgdHVwbGUgdG8gcmVjaGVjayB0aGUgam9p biBxdWFscy4KKyAqIElmIHRoZSBqb2luIHF1YWxzIG5vIGxvbmdlciBwYXNzLCB3ZSBzd2l0Y2gg ZnJvbSB0aGUgTUFUQ0hFRCBjYXNlIHRvIHRoZQorICogV0hFTiBOT1QgTUFUQ0hFRCBCWSBTT1VS Q0UgY2FzZS4gVGhlbiB3ZSByZXN0YXJ0IGZyb20gdGhlIGZpcnN0IGFjdGlvbiB0bworICogbG9v ayBmb3IgYSBxdWFsaWZ5aW5nIGFjdGlvbi4gSWYgd2Ugc3dpdGNoZWQgZnJvbSBtYXRjaGVkIHRv IG5vdCBtYXRjaGVkLAorICogdGhlbiB3ZSByZXR1cm4gZmFsc2UsIGluZGljYXRpbmcgdGhhdCBh IE5PVCBNQVRDSEVEIFtCWSBUQVJHRVRdIGFjdGlvbiBtdXN0CisgKiBub3cgYmUgZXhlY3V0ZWQg Zm9yIHRoZSBjdXJyZW50IHNvdXJjZSB0dXBsZSAocG9zc2libHkgaW4gYWRkaXRpb24gdG8gYW55 CisgKiBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0UgYWN0aW9uIGV4ZWN1dGVkIGhlcmUpLgogICovCiBz dGF0aWMgYm9vbAogRXhlY01lcmdlTWF0Y2hlZChNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQs IFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJCQkJIEl0ZW1Qb2ludGVyIHR1cGxlaWQs IEhlYXBUdXBsZSBvbGR0dXBsZSwgYm9vbCBjYW5TZXRUYWcpCiB7CiAJTW9kaWZ5VGFibGVTdGF0 ZSAqbXRzdGF0ZSA9IGNvbnRleHQtPm10c3RhdGU7CisJTGlzdAkgICoqbWVyZ2VBY3Rpb25zID0g cmVzdWx0UmVsSW5mby0+cmlfTWVyZ2VBY3Rpb25zOworCUxpc3QJICAgKmFjdGlvblN0YXRlczsK IAlUdXBsZVRhYmxlU2xvdCAqbmV3c2xvdDsKIAlFU3RhdGUJICAgKmVzdGF0ZSA9IGNvbnRleHQt PmVzdGF0ZTsKIAlFeHByQ29udGV4dCAqZWNvbnRleHQgPSBtdHN0YXRlLT5wcy5wc19FeHByQ29u dGV4dDsKIAlib29sCQlpc051bGw7CiAJRVBRU3RhdGUgICAqZXBxc3RhdGUgPSAmbXRzdGF0ZS0+ bXRfZXBxc3RhdGU7CisJYm9vbAkJZXBxX29rOwogCUxpc3RDZWxsICAgKmw7CiAKIAkvKgotCSAq IElmIHRoZXJlIGFyZSBubyBXSEVOIE1BVENIRUQgYWN0aW9ucywgd2UgYXJlIGRvbmUuCisJICog SWYgdGhlcmUgYXJlIG5vIFdIRU4gTUFUQ0hFRCBvciBXSEVOIE5PVCBNQVRDSEVEIEJZIFNPVVJD RSBhY3Rpb25zLCB3ZQorCSAqIGFyZSBkb25lLgogCSAqLwotCWlmIChyZXN1bHRSZWxJbmZvLT5y aV9tYXRjaGVkTWVyZ2VBY3Rpb24gPT0gTklMKQorCWlmIChtZXJnZUFjdGlvbnNbTUVSR0VfV0hF Tl9NQVRDSEVEXSA9PSBOSUwgJiYKKwkJbWVyZ2VBY3Rpb25zW01FUkdFX1dIRU5fTk9UX01BVENI RURfQllfU09VUkNFXSA9PSBOSUwpCiAJCXJldHVybiB0cnVlOwogCiAJLyoKIAkgKiBNYWtlIHR1 cGxlIGFuZCBhbnkgbmVlZGVkIGpvaW4gdmFyaWFibGVzIGF2YWlsYWJsZSB0byBFeGVjUXVhbCBh bmQKIAkgKiBFeGVjUHJvamVjdC4gVGhlIHRhcmdldCdzIGV4aXN0aW5nIHR1cGxlIGlzIGluc3Rh bGxlZCBpbiB0aGUgc2NhbnR1cGxlLgotCSAqIEFnYWluLCB0aGlzIHRhcmdldCByZWxhdGlvbidz IHNsb3QgaXMgcmVxdWlyZWQgb25seSBpbiB0aGUgY2FzZSBvZiBhCi0JICogTUFUQ0hFRCB0dXBs ZSBhbmQgVVBEQVRFL0RFTEVURSBhY3Rpb25zLgorCSAqIFRoaXMgdGFyZ2V0IHJlbGF0aW9uJ3Mg c2xvdCBpcyByZXF1aXJlZCBvbmx5IGluIHRoZSBjYXNlIG9mIGEgTUFUQ0hFRAorCSAqIG9yIE5P VCBNQVRDSEVEIEJZIFNPVVJDRSB0dXBsZSBhbmQgVVBEQVRFL0RFTEVURSBhY3Rpb25zLgogCSAq LwogCWVjb250ZXh0LT5lY3h0X3NjYW50dXBsZSA9IHJlc3VsdFJlbEluZm8tPnJpX29sZFR1cGxl U2xvdDsKIAllY29udGV4dC0+ZWN4dF9pbm5lcnR1cGxlID0gY29udGV4dC0+cGxhblNsb3Q7CiAJ ZWNvbnRleHQtPmVjeHRfb3V0ZXJ0dXBsZSA9IE5VTEw7CiAKIAkvKgotCSAqIFRoaXMgcm91dGlu ZSBpcyBvbmx5IGludm9rZWQgZm9yIG1hdGNoZWQgcm93cywgc28gd2Ugc2hvdWxkIGVpdGhlciBo YXZlCi0JICogdGhlIHR1cGxlaWQgb2YgdGhlIHRhcmdldCByb3csIG9yIGFuIG9sZCB0dXBsZSBm cm9tIHRoZSB0YXJnZXQgd2hvbGVyb3cKLQkgKiBqdW5rIGF0dHIuCisJICogVGhpcyByb3V0aW5l IGlzIG9ubHkgaW52b2tlZCBmb3IgbWF0Y2hlZCB0YXJnZXQgcm93cywgc28gd2Ugc2hvdWxkCisJ ICogZWl0aGVyIGhhdmUgdGhlIHR1cGxlaWQgb2YgdGhlIHRhcmdldCByb3csIG9yIGFuIG9sZCB0 dXBsZSBmcm9tIHRoZQorCSAqIHRhcmdldCB3aG9sZXJvdyBqdW5rIGF0dHIuCiAJICovCiAJQXNz ZXJ0KHR1cGxlaWQgIT0gTlVMTCB8fCBvbGR0dXBsZSAhPSBOVUxMKTsKIAlpZiAob2xkdHVwbGUg IT0gTlVMTCkKIAkJRXhlY0ZvcmNlU3RvcmVIZWFwVHVwbGUob2xkdHVwbGUsIHJlc3VsdFJlbElu Zm8tPnJpX29sZFR1cGxlU2xvdCwKIAkJCQkJCQkJZmFsc2UpOwotCi1sbWVyZ2VfbWF0Y2hlZDoK KwllbHNlIGlmICghdGFibGVfdHVwbGVfZmV0Y2hfcm93X3ZlcnNpb24ocmVzdWx0UmVsSW5mby0+ cmlfUmVsYXRpb25EZXNjLAorCQkJCQkJCQkJCQl0dXBsZWlkLAorCQkJCQkJCQkJCQlTbmFwc2hv dEFueSwKKwkJCQkJCQkJCQkJcmVzdWx0UmVsSW5mby0+cmlfb2xkVHVwbGVTbG90KSkKKwkJZWxv ZyhFUlJPUiwgImZhaWxlZCB0byBmZXRjaCB0aGUgdGFyZ2V0IHR1cGxlIik7CiAKIAkvKgotCSAq IElmIHBhc3NlZCBhIHR1cGxlaWQsIHVzZSBpdCB0byBmZXRjaCB0aGUgb2xkIHRhcmdldCByb3cu CisJICogVGVzdCB0aGUgam9pbiBjb25kaXRpb24uICBJZiBpdCdzIHNhdGlzZmllZCwgcGVyZm9y bSBhIE1BVENIRUQgYWN0aW9uOworCSAqIG90aGVyd2lzZSwgcGVyZm9ybSBhIE5PVCBNQVRDSEVE IEJZIFNPVVJDRSBhY3Rpb24uCiAJICoKLQkgKiBXZSB1c2UgU25hcHNob3RBbnkgZm9yIHRoaXMg YmVjYXVzZSB3ZSBtaWdodCBnZXQgY2FsbGVkIGFnYWluIGFmdGVyCi0JICogRXZhbFBsYW5RdWFs IHJldHVybnMgdXMgYSBuZXcgdHVwbGUsIHdoaWNoIG1heSBub3QgYmUgdmlzaWJsZSB0byBvdXIK LQkgKiBNVkNDIHNuYXBzaG90LgorCSAqIE5vdGUgdGhhdCB0aGlzIGpvaW4gY29uZGl0aW9uIHdp bGwgYmUgTlVMTCBpZiB0aGVyZSBhcmUgbm8gTk9UIE1BVENIRUQKKwkgKiBCWSBTT1VSQ0UgYWN0 aW9ucyAtLS0gc2VlIHRyYW5zZm9ybV9NRVJHRV90b19qb2luKCkuICBJbiB0aGF0IGNhc2UsIHRo ZQorCSAqIGpvaW4gc3VicGxhbiB3aWxsIG9ubHkgb3V0cHV0IE1BVENIRUQgYW5kIE5PVCBNQVRD SEVEIFtCWSBUQVJHRVRdIHJvd3MsCisJICogYW5kIHdlIG9ubHkgbmVlZCB0byBwcm9jZXNzIE1B VENIRUQgYWN0aW9ucyBoZXJlLgogCSAqLwotCWlmICh0dXBsZWlkICE9IE5VTEwpCi0JewotCQlp ZiAoIXRhYmxlX3R1cGxlX2ZldGNoX3Jvd192ZXJzaW9uKHJlc3VsdFJlbEluZm8tPnJpX1JlbGF0 aW9uRGVzYywKLQkJCQkJCQkJCQkgICB0dXBsZWlkLAotCQkJCQkJCQkJCSAgIFNuYXBzaG90QW55 LAotCQkJCQkJCQkJCSAgIHJlc3VsdFJlbEluZm8tPnJpX29sZFR1cGxlU2xvdCkpCi0JCQllbG9n KEVSUk9SLCAiZmFpbGVkIHRvIGZldGNoIHRoZSB0YXJnZXQgdHVwbGUiKTsKLQl9CisJaWYgKEV4 ZWNRdWFsKHJlc3VsdFJlbEluZm8tPnJpX01lcmdlSm9pbkNvbmRpdGlvbiwgZWNvbnRleHQpKQor CQlhY3Rpb25TdGF0ZXMgPSBtZXJnZUFjdGlvbnNbTUVSR0VfV0hFTl9NQVRDSEVEXTsKKwllbHNl CisJCWFjdGlvblN0YXRlcyA9IG1lcmdlQWN0aW9uc1tNRVJHRV9XSEVOX05PVF9NQVRDSEVEX0JZ X1NPVVJDRV07CiAKLQlmb3JlYWNoKGwsIHJlc3VsdFJlbEluZm8tPnJpX21hdGNoZWRNZXJnZUFj dGlvbikKKwkvKgorCSAqIEEgY29uY3VycmVudCB1cGRhdGUgbWF5IGNoYW5nZSB0aGUgdGFyZ2V0 IHR1cGxlIHNvIHRoYXQgYSBNQVRDSEVEIHJvdworCSAqIGJlY29tZXMgTk9UIE1BVENIRUQgQlkg U09VUkNFIChidXQgbm90IHZpY2UgdmVyc2EpLiAgSWYgdGhpcyBoYXBwZW5zLAorCSAqIHdlIHNl dCBlcHFfb2sgPSBmYWxzZSwgcHJvY2VzcyB0aGUgTk9UIE1BVENIRUQgQlkgU09VUkNFIGFjdGlv bnMsIGFuZAorCSAqIHRoZW4gcmV0dXJuIGZhbHNlIHRvIGluZGljYXRlIHRoYXQgdGhlIGNhbGxl ciBtdXN0IGFsc28gcHJvY2VzcyBhbnkgTk9UCisJICogTUFUQ0hFRCBbQlkgVEFSR0VUXSBhY3Rp b25zLgorCSAqLworCWVwcV9vayA9IHRydWU7CisKK2xtZXJnZV9tYXRjaGVkOgorCisJZm9yZWFj aChsLCBhY3Rpb25TdGF0ZXMpCiAJewogCQlNZXJnZUFjdGlvblN0YXRlICpyZWxhY3Rpb24gPSAo TWVyZ2VBY3Rpb25TdGF0ZSAqKSBsZmlyc3QobCk7CiAJCUNtZFR5cGUJCWNvbW1hbmRUeXBlID0g cmVsYWN0aW9uLT5tYXNfYWN0aW9uLT5jb21tYW5kVHlwZTsKQEAgLTI5MTAsNyArMjk0Myw3IEBA IGxtZXJnZV9tYXRjaGVkOgogCQkJCQkJCQkJCXR1cGxlaWQsIE5VTEwsIG5ld3Nsb3QsICZyZXN1 bHQpKQogCQkJCXsKIAkJCQkJaWYgKHJlc3VsdCA9PSBUTV9PaykKLQkJCQkJCXJldHVybiB0cnVl OwkvKiAiZG8gbm90aGluZyIgKi8KKwkJCQkJCXJldHVybiBlcHFfb2s7CS8qICJkbyBub3RoaW5n IiAqLwogCQkJCQlicmVhazsJCS8qIGNvbmN1cnJlbnQgdXBkYXRlL2RlbGV0ZSAqLwogCQkJCX0K IApAQCAtMjkyMCw3ICsyOTUzLDcgQEAgbG1lcmdlX21hdGNoZWQ6CiAJCQkJewogCQkJCQlpZiAo IUV4ZWNJUlVwZGF0ZVRyaWdnZXJzKGVzdGF0ZSwgcmVzdWx0UmVsSW5mbywKIAkJCQkJCQkJCQkJ ICBvbGR0dXBsZSwgbmV3c2xvdCkpCi0JCQkJCQlyZXR1cm4gdHJ1ZTsJLyogImRvIG5vdGhpbmci ICovCisJCQkJCQlyZXR1cm4gZXBxX29rOwkvKiAiZG8gbm90aGluZyIgKi8KIAkJCQl9CiAJCQkJ ZWxzZQogCQkJCXsKQEAgLTI5MzgsNyArMjk3MSw3IEBAIGxtZXJnZV9tYXRjaGVkOgogCQkJCQlp ZiAodXBkYXRlQ3h0LmNyb3NzUGFydFVwZGF0ZSkKIAkJCQkJewogCQkJCQkJbXRzdGF0ZS0+bXRf bWVyZ2VfdXBkYXRlZCArPSAxOwotCQkJCQkJcmV0dXJuIHRydWU7CisJCQkJCQlyZXR1cm4gZXBx X29rOwogCQkJCQl9CiAJCQkJfQogCkBAIC0yOTU2LDcgKzI5ODksNyBAQCBsbWVyZ2VfbWF0Y2hl ZDoKIAkJCQkJCQkJCQlOVUxMLCBOVUxMLCAmcmVzdWx0KSkKIAkJCQl7CiAJCQkJCWlmIChyZXN1 bHQgPT0gVE1fT2spCi0JCQkJCQlyZXR1cm4gdHJ1ZTsJLyogImRvIG5vdGhpbmciICovCisJCQkJ CQlyZXR1cm4gZXBxX29rOwkvKiAiZG8gbm90aGluZyIgKi8KIAkJCQkJYnJlYWs7CQkvKiBjb25j dXJyZW50IHVwZGF0ZS9kZWxldGUgKi8KIAkJCQl9CiAKQEAgLTI5NjYsNyArMjk5OSw3IEBAIGxt ZXJnZV9tYXRjaGVkOgogCQkJCXsKIAkJCQkJaWYgKCFFeGVjSVJEZWxldGVUcmlnZ2Vycyhlc3Rh dGUsIHJlc3VsdFJlbEluZm8sCiAJCQkJCQkJCQkJCSAgb2xkdHVwbGUpKQotCQkJCQkJcmV0dXJu IHRydWU7CS8qICJkbyBub3RoaW5nIiAqLworCQkJCQkJcmV0dXJuIGVwcV9vazsJLyogImRvIG5v dGhpbmciICovCiAJCQkJfQogCQkJCWVsc2UKIAkJCQkJcmVzdWx0ID0gRXhlY0RlbGV0ZUFjdChj b250ZXh0LCByZXN1bHRSZWxJbmZvLCB0dXBsZWlkLApAQCAtMjk4Niw3ICszMDE5LDcgQEAgbG1l cmdlX21hdGNoZWQ6CiAJCQkJYnJlYWs7CiAKIAkJCWRlZmF1bHQ6Ci0JCQkJZWxvZyhFUlJPUiwg InVua25vd24gYWN0aW9uIGluIE1FUkdFIFdIRU4gTUFUQ0hFRCBjbGF1c2UiKTsKKwkJCQllbG9n KEVSUk9SLCAidW5rbm93biBhY3Rpb24gaW4gTUVSR0UgV0hFTiBjbGF1c2UiKTsKIAkJfQogCiAJ CXN3aXRjaCAocmVzdWx0KQpAQCAtMzA0NCwxMiArMzA3NywxMyBAQCBsbWVyZ2VfbWF0Y2hlZDoK IAogCQkJCS8qCiAJCQkJICogSWYgdGhlIHR1cGxlIHdhcyBhbHJlYWR5IGRlbGV0ZWQsIHJldHVy biB0byBsZXQgY2FsbGVyCi0JCQkJICogaGFuZGxlIGl0IHVuZGVyIE5PVCBNQVRDSEVEIGNsYXVz ZXMuCisJCQkJICogaGFuZGxlIGl0IHVuZGVyIE5PVCBNQVRDSEVEIFtCWSBUQVJHRVRdIGNsYXVz ZXMuCiAJCQkJICovCiAJCQkJcmV0dXJuIGZhbHNlOwogCiAJCQljYXNlIFRNX1VwZGF0ZWQ6CiAJ CQkJeworCQkJCQlib29sCQl3YXNfbWF0Y2hlZDsKIAkJCQkJUmVsYXRpb24JcmVzdWx0UmVsYXRp b25EZXNjOwogCQkJCQlUdXBsZVRhYmxlU2xvdCAqZXBxc2xvdCwKIAkJCQkJCQkgICAqaW5wdXRz bG90OwpAQCAtMzA1NywxOSArMzA5MSwyMiBAQCBsbWVyZ2VfbWF0Y2hlZDoKIAogCQkJCQkvKgog CQkJCQkgKiBUaGUgdGFyZ2V0IHR1cGxlIHdhcyBjb25jdXJyZW50bHkgdXBkYXRlZCBieSBzb21l IG90aGVyCi0JCQkJCSAqIHRyYW5zYWN0aW9uLiBSdW4gRXZhbFBsYW5RdWFsKCkgd2l0aCB0aGUg bmV3IHZlcnNpb24gb2YKLQkJCQkJICogdGhlIHR1cGxlLiBJZiBpdCBkb2VzIG5vdCByZXR1cm4g YSB0dXBsZSwgdGhlbiB3ZQotCQkJCQkgKiBzd2l0Y2ggdG8gdGhlIE5PVCBNQVRDSEVEIGxpc3Qg b2YgYWN0aW9ucy4gSWYgaXQgZG9lcwotCQkJCQkgKiByZXR1cm4gYSB0dXBsZSBhbmQgdGhlIGpv aW4gcXVhbCBpcyBzdGlsbCBzYXRpc2ZpZWQsCi0JCQkJCSAqIHRoZW4gd2UganVzdCBuZWVkIHRv IHJlY2hlY2sgdGhlIE1BVENIRUQgYWN0aW9ucywKLQkJCQkJICogc3RhcnRpbmcgZnJvbSB0aGUg dG9wLCBhbmQgZXhlY3V0ZSB0aGUgZmlyc3QgcXVhbGlmeWluZwotCQkJCQkgKiBhY3Rpb24uCisJ CQkJCSAqIHRyYW5zYWN0aW9uLiAgSWYgd2UgYXJlIGN1cnJlbnRseSBwcm9jZXNzaW5nIGEgTUFU Q0hFRAorCQkJCQkgKiBhY3Rpb24sIHVzZSBFdmFsUGxhblF1YWwoKSB3aXRoIHRoZSBuZXcgdmVy c2lvbiBvZiB0aGUKKwkJCQkJICogdHVwbGUgYW5kIHJlY2hlY2sgdGhlIGpvaW4gcXVhbCwgdG8g ZGV0ZWN0IGEgY2hhbmdlCisJCQkJCSAqIGZyb20gdGhlIE1BVENIRUQgdG8gdGhlIE5PVCBNQVRD SEVEIGNhc2VzLiAgSWYgd2UgYXJlCisJCQkJCSAqIGFscmVhZHkgcHJvY2Vzc2luZyBhIE5PVCBN QVRDSEVEIEJZIFNPVVJDRSBhY3Rpb24sIHRoaXMKKwkJCQkJICogaXMgbm90IG5lY2Vzc2FyeS4K IAkJCQkJICovCisJCQkJCXdhc19tYXRjaGVkID0gcmVsYWN0aW9uLT5tYXNfYWN0aW9uLT5tYXRj aEtpbmQgPT0gTUVSR0VfV0hFTl9NQVRDSEVEOwogCQkJCQlyZXN1bHRSZWxhdGlvbkRlc2MgPSBy ZXN1bHRSZWxJbmZvLT5yaV9SZWxhdGlvbkRlc2M7CiAJCQkJCWxvY2ttb2RlID0gRXhlY1VwZGF0 ZUxvY2tNb2RlKGVzdGF0ZSwgcmVzdWx0UmVsSW5mbyk7CiAKLQkJCQkJaW5wdXRzbG90ID0gRXZh bFBsYW5RdWFsU2xvdChlcHFzdGF0ZSwgcmVzdWx0UmVsYXRpb25EZXNjLAotCQkJCQkJCQkJCQkJ IHJlc3VsdFJlbEluZm8tPnJpX1JhbmdlVGFibGVJbmRleCk7CisJCQkJCWlmICh3YXNfbWF0Y2hl ZCkKKwkJCQkJCWlucHV0c2xvdCA9IEV2YWxQbGFuUXVhbFNsb3QoZXBxc3RhdGUsIHJlc3VsdFJl bGF0aW9uRGVzYywKKwkJCQkJCQkJCQkJCQkgcmVzdWx0UmVsSW5mby0+cmlfUmFuZ2VUYWJsZUlu ZGV4KTsKKwkJCQkJZWxzZQorCQkJCQkJaW5wdXRzbG90ID0gcmVzdWx0UmVsSW5mby0+cmlfb2xk VHVwbGVTbG90OwogCiAJCQkJCXJlc3VsdCA9IHRhYmxlX3R1cGxlX2xvY2socmVzdWx0UmVsYXRp b25EZXNjLCB0dXBsZWlkLAogCQkJCQkJCQkJCQkgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCkBAIC0z MDgwLDI4ICszMTE3LDkgQEAgbG1lcmdlX21hdGNoZWQ6CiAJCQkJCXN3aXRjaCAocmVzdWx0KQog CQkJCQl7CiAJCQkJCQljYXNlIFRNX09rOgotCQkJCQkJCWVwcXNsb3QgPSBFdmFsUGxhblF1YWwo ZXBxc3RhdGUsCi0JCQkJCQkJCQkJCQkgICByZXN1bHRSZWxhdGlvbkRlc2MsCi0JCQkJCQkJCQkJ CQkgICByZXN1bHRSZWxJbmZvLT5yaV9SYW5nZVRhYmxlSW5kZXgsCi0JCQkJCQkJCQkJCQkgICBp bnB1dHNsb3QpOwotCi0JCQkJCQkJLyoKLQkJCQkJCQkgKiBJZiB3ZSBnb3Qgbm8gdHVwbGUsIG9y IHRoZSB0dXBsZSB3ZSBnZXQgaGFzIGEKLQkJCQkJCQkgKiBOVUxMIGN0aWQsIGdvIGJhY2sgdG8g Y2FsbGVyOiB0aGlzIG9uZSBpcyBub3QgYQotCQkJCQkJCSAqIE1BVENIRUQgdHVwbGUgYW55bW9y ZSwgc28gdGhleSBjYW4gcmV0cnkgd2l0aAotCQkJCQkJCSAqIE5PVCBNQVRDSEVEIGFjdGlvbnMu Ci0JCQkJCQkJICovCi0JCQkJCQkJaWYgKFR1cElzTnVsbChlcHFzbG90KSkKLQkJCQkJCQkJcmV0 dXJuIGZhbHNlOwotCi0JCQkJCQkJKHZvaWQpIEV4ZWNHZXRKdW5rQXR0cmlidXRlKGVwcXNsb3Qs Ci0JCQkJCQkJCQkJCQkJCXJlc3VsdFJlbEluZm8tPnJpX1Jvd0lkQXR0Tm8sCi0JCQkJCQkJCQkJ CQkJCSZpc051bGwpOwotCQkJCQkJCWlmIChpc051bGwpCi0JCQkJCQkJCXJldHVybiBmYWxzZTsK IAogCQkJCQkJCS8qCi0JCQkJCQkJICogV2hlbiBhIHR1cGxlIHdhcyB1cGRhdGVkIGFuZCBtaWdy YXRlZCB0bworCQkJCQkJCSAqIElmIHRoZSB0dXBsZSB3YXMgdXBkYXRlZCBhbmQgbWlncmF0ZWQg dG8KIAkJCQkJCQkgKiBhbm90aGVyIHBhcnRpdGlvbiBjb25jdXJyZW50bHksIHRoZSBjdXJyZW50 CiAJCQkJCQkJICogTUVSR0UgaW1wbGVtZW50YXRpb24gY2FuJ3QgZm9sbG93LiAgVGhlcmUncwog CQkJCQkJCSAqIHByb2JhYmx5IGEgYmV0dGVyIHdheSB0byBoYW5kbGUgdGhpcyBjYXNlLCBidXQK QEAgLTMxMTIsMjYgKzMxMzAsNzIgQEAgbG1lcmdlX21hdGNoZWQ6CiAJCQkJCQkJaWYgKEl0ZW1Q b2ludGVySW5kaWNhdGVzTW92ZWRQYXJ0aXRpb25zKCZjb250ZXh0LT50bWZkLmN0aWQpKQogCQkJ CQkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfVF9SX1NFUklB TElaQVRJT05fRkFJTFVSRSksCi0JCQkJCQkJCQkJIGVycm1zZygidHVwbGUgdG8gYmUgZGVsZXRl ZCB3YXMgYWxyZWFkeSBtb3ZlZCB0byBhbm90aGVyIHBhcnRpdGlvbiBkdWUgdG8gY29uY3VycmVu dCB1cGRhdGUiKSkpOworCQkJCQkJCQkJCSBlcnJtc2coInR1cGxlIHRvIGJlIG1lcmdlZCB3YXMg YWxyZWFkeSBtb3ZlZCB0byBhbm90aGVyIHBhcnRpdGlvbiBkdWUgdG8gY29uY3VycmVudCB1cGRh dGUiKSkpOwogCiAJCQkJCQkJLyoKLQkJCQkJCQkgKiBBIG5vbi1OVUxMIGN0aWQgbWVhbnMgdGhh dCB3ZSBhcmUgc3RpbGwgZGVhbGluZwotCQkJCQkJCSAqIHdpdGggTUFUQ0hFRCBjYXNlLiBSZXN0 YXJ0IHRoZSBsb29wIHNvIHRoYXQgd2UKLQkJCQkJCQkgKiBhcHBseSBhbGwgdGhlIE1BVENIRUQg cnVsZXMgYWdhaW4sIHRvIGVuc3VyZQotCQkJCQkJCSAqIHRoYXQgdGhlIGZpcnN0IHF1YWxpZnlp bmcgV0hFTiBNQVRDSEVEIGFjdGlvbgotCQkJCQkJCSAqIGlzIGV4ZWN1dGVkLgotCQkJCQkJCSAq Ci0JCQkJCQkJICogVXBkYXRlIHR1cGxlaWQgdG8gdGhhdCBvZiB0aGUgbmV3IHR1cGxlLCBmb3IK LQkJCQkJCQkgKiB0aGUgcmVmZXRjaCB3ZSBkbyBhdCB0aGUgdG9wLgorCQkJCQkJCSAqIElmIHRo aXMgd2FzIGEgTUFUQ0hFRCBjYXNlLCB1c2UgRXZhbFBsYW5RdWFsKCkKKwkJCQkJCQkgKiB0byBy ZWNoZWNrIHRoZSBqb2luIGNvbmRpdGlvbi4KKwkJCQkJCQkgKi8KKwkJCQkJCQlpZiAod2FzX21h dGNoZWQpCisJCQkJCQkJeworCQkJCQkJCQllcHFzbG90ID0gRXZhbFBsYW5RdWFsKGVwcXN0YXRl LAorCQkJCQkJCQkJCQkJCSAgIHJlc3VsdFJlbGF0aW9uRGVzYywKKwkJCQkJCQkJCQkJCQkgICBy ZXN1bHRSZWxJbmZvLT5yaV9SYW5nZVRhYmxlSW5kZXgsCisJCQkJCQkJCQkJCQkJICAgaW5wdXRz bG90KTsKKworCQkJCQkJCQkvKgorCQkJCQkJCQkgKiBJZiB0aGUgc3VicGxhbiBkaWRuJ3QgcmV0 dXJuIGEgdHVwbGUsIHRoZW4KKwkJCQkJCQkJICogd2UgbXVzdCBiZSBkZWFsaW5nIHdpdGggYW4g aW5uZXIgam9pbiBmb3IKKwkJCQkJCQkJICogd2hpY2ggdGhlIGpvaW4gY29uZGl0aW9uIG5vIGxv bmdlciBtYXRjaGVzLgorCQkJCQkJCQkgKiBUaGlzIGNhbiBvbmx5IGhhcHBlbiBpZiB0aGVyZSBh cmUgbm8gTk9UCisJCQkJCQkJCSAqIE1BVENIRUQgYWN0aW9ucywgYW5kIHNvIHRoZXJlIGlzIG5v dGhpbmcKKwkJCQkJCQkJICogbW9yZSBmb3IgdXMgdG8gZG8uCisJCQkJCQkJCSAqLworCQkJCQkJ CQlpZiAoVHVwSXNOdWxsKGVwcXNsb3QpKQorCQkJCQkJCQkJcmV0dXJuIHRydWU7CisKKwkJCQkJ CQkJLyoKKwkJCQkJCQkJICogSWYgd2UgZ290IGEgTlVMTCBjdGlkIGZyb20gdGhlIHN1YnBsYW4s IHRoZQorCQkJCQkJCQkgKiBqb2luIHF1YWxzIG5vIGxvbmdlciBwYXNzIGFuZCB3ZSBzd2l0Y2gg dG8KKwkJCQkJCQkJICogdGhlIE5PVCBNQVRDSEVEIEJZIFNPVVJDRSBjYXNlLgorCQkJCQkJCQkg Ki8KKwkJCQkJCQkJKHZvaWQpIEV4ZWNHZXRKdW5rQXR0cmlidXRlKGVwcXNsb3QsCisJCQkJCQkJ CQkJCQkJCQlyZXN1bHRSZWxJbmZvLT5yaV9Sb3dJZEF0dE5vLAorCQkJCQkJCQkJCQkJCQkJJmlz TnVsbCk7CisJCQkJCQkJCWlmIChpc051bGwpCisJCQkJCQkJCQllcHFfb2sgPSBmYWxzZTsKKwor CQkJCQkJCQkvKgorCQkJCQkJCQkgKiBPdGhlcndpc2UsIHJlY2hlY2sgdGhlIGpvaW4gcXVhbHMg dG8gc2VlIGlmCisJCQkJCQkJCSAqIHdlIG5lZWQgdG8gc3dpdGNoIHRvIHRoZSBOT1QgTUFUQ0hF RCBCWQorCQkJCQkJCQkgKiBTT1VSQ0UgY2FzZS4KKwkJCQkJCQkJICovCisJCQkJCQkJCWlmICgh dGFibGVfdHVwbGVfZmV0Y2hfcm93X3ZlcnNpb24ocmVzdWx0UmVsYXRpb25EZXNjLAorCQkJCQkJ CQkJCQkJCQkJCSAgICZjb250ZXh0LT50bWZkLmN0aWQsCisJCQkJCQkJCQkJCQkJCQkJICAgU25h cHNob3RBbnksCisJCQkJCQkJCQkJCQkJCQkJICAgcmVzdWx0UmVsSW5mby0+cmlfb2xkVHVwbGVT bG90KSkKKwkJCQkJCQkJCWVsb2coRVJST1IsICJmYWlsZWQgdG8gZmV0Y2ggdGhlIHRhcmdldCB0 dXBsZSIpOworCisJCQkJCQkJCWlmIChlcHFfb2spCisJCQkJCQkJCQllcHFfb2sgPSBFeGVjUXVh bChyZXN1bHRSZWxJbmZvLT5yaV9NZXJnZUpvaW5Db25kaXRpb24sCisJCQkJCQkJCQkJCQkJICBl Y29udGV4dCk7CisKKwkJCQkJCQkJLyogU3dpdGNoIGxpc3RzLCBpZiBuZWNlc3NhcnkgKi8KKwkJ CQkJCQkJaWYgKCFlcHFfb2spCisJCQkJCQkJCQlhY3Rpb25TdGF0ZXMgPSBtZXJnZUFjdGlvbnNb TUVSR0VfV0hFTl9OT1RfTUFUQ0hFRF9CWV9TT1VSQ0VdOworCQkJCQkJCX0KKworCQkJCQkJCS8q CisJCQkJCQkJICogTG9vcCBiYWNrIGFuZCBwcm9jZXNzIHRoZSBNQVRDSEVEIG9yIE5PVAorCQkJ CQkJCSAqIE1BVENIRUQgQlkgU09VUkNFIGFjdGlvbnMgZnJvbSB0aGUgc3RhcnQuCiAJCQkJCQkJ ICovCi0JCQkJCQkJSXRlbVBvaW50ZXJDb3B5KCZjb250ZXh0LT50bWZkLmN0aWQsIHR1cGxlaWQp OwogCQkJCQkJCWdvdG8gbG1lcmdlX21hdGNoZWQ7CiAKIAkJCQkJCWNhc2UgVE1fRGVsZXRlZDoK IAogCQkJCQkJCS8qCiAJCQkJCQkJICogdHVwbGUgYWxyZWFkeSBkZWxldGVkOyB0ZWxsIGNhbGxl ciB0byBydW4gTk9UCi0JCQkJCQkJICogTUFUQ0hFRCBhY3Rpb25zCisJCQkJCQkJICogTUFUQ0hF RCBbQlkgVEFSR0VUXSBhY3Rpb25zCiAJCQkJCQkJICovCiAJCQkJCQkJcmV0dXJuIGZhbHNlOwog CkBAIC0zMTg5LDExICszMjUzLDExIEBAIGxtZXJnZV9tYXRjaGVkOgogCS8qCiAJICogU3VjY2Vz c2Z1bGx5IGV4ZWN1dGVkIGFuIGFjdGlvbiBvciBubyBxdWFsaWZ5aW5nIGFjdGlvbiB3YXMgZm91 bmQuCiAJICovCi0JcmV0dXJuIHRydWU7CisJcmV0dXJuIGVwcV9vazsKIH0KIAogLyoKLSAqIEV4 ZWN1dGUgdGhlIGZpcnN0IHF1YWxpZnlpbmcgTk9UIE1BVENIRUQgYWN0aW9uLgorICogRXhlY3V0 ZSB0aGUgZmlyc3QgcXVhbGlmeWluZyBOT1QgTUFUQ0hFRCBbQlkgVEFSR0VUXSBhY3Rpb24uCiAg Ki8KIHN0YXRpYyB2b2lkCiBFeGVjTWVyZ2VOb3RNYXRjaGVkKE1vZGlmeVRhYmxlQ29udGV4dCAq Y29udGV4dCwgUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKQEAgLTMyMDEsNyArMzI2NSw3 IEBAIEV4ZWNNZXJnZU5vdE1hdGNoZWQoTW9kaWZ5VGFibGVDb250ZXh0ICoKIHsKIAlNb2RpZnlU YWJsZVN0YXRlICptdHN0YXRlID0gY29udGV4dC0+bXRzdGF0ZTsKIAlFeHByQ29udGV4dCAqZWNv bnRleHQgPSBtdHN0YXRlLT5wcy5wc19FeHByQ29udGV4dDsKLQlMaXN0CSAgICphY3Rpb25TdGF0 ZXMgPSBOSUw7CisJTGlzdAkgICAqYWN0aW9uU3RhdGVzOwogCUxpc3RDZWxsICAgKmw7CiAKIAkv KgpAQCAtMzIxMyw3ICszMjc3LDcgQEAgRXhlY01lcmdlTm90TWF0Y2hlZChNb2RpZnlUYWJsZUNv bnRleHQgKgogCSAqIFhYWCBkb2VzIHRoaXMgbWVhbiB0aGF0IHdlIGNhbiBhdm9pZCBjcmVhdGlu ZyBjb3BpZXMgb2YgYWN0aW9uU3RhdGVzIG9uCiAJICogcGFydGl0aW9uZWQgdGFibGVzLCBmb3Ig bm90LW1hdGNoZWQgYWN0aW9ucz8KIAkgKi8KLQlhY3Rpb25TdGF0ZXMgPSByZXN1bHRSZWxJbmZv LT5yaV9ub3RNYXRjaGVkTWVyZ2VBY3Rpb247CisJYWN0aW9uU3RhdGVzID0gcmVzdWx0UmVsSW5m by0+cmlfTWVyZ2VBY3Rpb25zW01FUkdFX1dIRU5fTk9UX01BVENIRURfQllfVEFSR0VUXTsKIAog CS8qCiAJICogTWFrZSBzb3VyY2UgdHVwbGUgYXZhaWxhYmxlIHRvIEV4ZWNRdWFsIGFuZCBFeGVj UHJvamVjdC4gV2UgZG9uJ3QgbmVlZApAQCAtMzMwNSw5ICszMzY5LDExIEBAIEV4ZWNJbml0TWVy Z2UoTW9kaWZ5VGFibGVTdGF0ZSAqbXRzdGF0ZSwKIAlmb3JlYWNoKGxjLCBub2RlLT5tZXJnZUFj dGlvbkxpc3RzKQogCXsKIAkJTGlzdAkgICAqbWVyZ2VBY3Rpb25MaXN0ID0gbGZpcnN0KGxjKTsK KwkJTm9kZQkgICAqam9pbkNvbmRpdGlvbjsKIAkJVHVwbGVEZXNjCXJlbGF0aW9uRGVzYzsKIAkJ TGlzdENlbGwgICAqbDsKIAorCQlqb2luQ29uZGl0aW9uID0gKE5vZGUgKikgbGlzdF9udGgobm9k ZS0+bWVyZ2VKb2luQ29uZGl0aW9ucywgaSk7CiAJCXJlc3VsdFJlbEluZm8gPSBtdHN0YXRlLT5y ZXN1bHRSZWxJbmZvICsgaTsKIAkJaSsrOwogCQlyZWxhdGlvbkRlc2MgPSBSZWxhdGlvbkdldERl c2NyKHJlc3VsdFJlbEluZm8tPnJpX1JlbGF0aW9uRGVzYyk7CkBAIC0zMzE2LDEzICszMzgyLDE2 IEBAIEV4ZWNJbml0TWVyZ2UoTW9kaWZ5VGFibGVTdGF0ZSAqbXRzdGF0ZSwKIAkJaWYgKHVubGlr ZWx5KCFyZXN1bHRSZWxJbmZvLT5yaV9wcm9qZWN0TmV3SW5mb1ZhbGlkKSkKIAkJCUV4ZWNJbml0 TWVyZ2VUdXBsZVNsb3RzKG10c3RhdGUsIHJlc3VsdFJlbEluZm8pOwogCisJCS8qIGluaXRpYWxp emUgc3RhdGUgZm9yIGpvaW4gY29uZGl0aW9uLWNoZWNraW5nICovCisJCXJlc3VsdFJlbEluZm8t PnJpX01lcmdlSm9pbkNvbmRpdGlvbiA9CisJCQlFeGVjSW5pdFF1YWwoKExpc3QgKikgam9pbkNv bmRpdGlvbiwgJm10c3RhdGUtPnBzKTsKKwogCQlmb3JlYWNoKGwsIG1lcmdlQWN0aW9uTGlzdCkK IAkJewogCQkJTWVyZ2VBY3Rpb24gKmFjdGlvbiA9IChNZXJnZUFjdGlvbiAqKSBsZmlyc3QobCk7 CiAJCQlNZXJnZUFjdGlvblN0YXRlICphY3Rpb25fc3RhdGU7CiAJCQlUdXBsZVRhYmxlU2xvdCAq dGd0c2xvdDsKIAkJCVR1cGxlRGVzYwl0Z3RkZXNjOwotCQkJTGlzdAkgICoqbGlzdDsKIAogCQkJ LyoKIAkJCSAqIEJ1aWxkIGFjdGlvbiBtZXJnZSBzdGF0ZSBmb3IgdGhpcyByZWwuICAoRm9yIHBh cnRpdGlvbnMsCkBAIC0zMzM0LDE1ICszNDAzLDEyIEBAIEV4ZWNJbml0TWVyZ2UoTW9kaWZ5VGFi bGVTdGF0ZSAqbXRzdGF0ZSwKIAkJCQkJCQkJCQkJCQkgICZtdHN0YXRlLT5wcyk7CiAKIAkJCS8q Ci0JCQkgKiBXZSBjcmVhdGUgdHdvIGxpc3RzIC0gb25lIGZvciBXSEVOIE1BVENIRUQgYWN0aW9u cyBhbmQgb25lIGZvcgotCQkJICogV0hFTiBOT1QgTUFUQ0hFRCBhY3Rpb25zIC0gYW5kIHN0aWNr IHRoZSBNZXJnZUFjdGlvblN0YXRlIGludG8KLQkJCSAqIHRoZSBhcHByb3ByaWF0ZSBsaXN0Lgor CQkJICogV2UgY3JlYXRlIHRocmVlIGxpc3RzIC0gb25lIGZvciBlYWNoIE1lcmdlTWF0Y2hLaW5k IC0gYW5kIHN0aWNrCisJCQkgKiB0aGUgTWVyZ2VBY3Rpb25TdGF0ZSBpbnRvIHRoZSBhcHByb3By aWF0ZSBsaXN0LgogCQkJICovCi0JCQlpZiAoYWN0aW9uX3N0YXRlLT5tYXNfYWN0aW9uLT5tYXRj aGVkKQotCQkJCWxpc3QgPSAmcmVzdWx0UmVsSW5mby0+cmlfbWF0Y2hlZE1lcmdlQWN0aW9uOwot CQkJZWxzZQotCQkJCWxpc3QgPSAmcmVzdWx0UmVsSW5mby0+cmlfbm90TWF0Y2hlZE1lcmdlQWN0 aW9uOwotCQkJKmxpc3QgPSBsYXBwZW5kKCpsaXN0LCBhY3Rpb25fc3RhdGUpOworCQkJcmVzdWx0 UmVsSW5mby0+cmlfTWVyZ2VBY3Rpb25zW2FjdGlvbi0+bWF0Y2hLaW5kXSA9CisJCQkJbGFwcGVu ZChyZXN1bHRSZWxJbmZvLT5yaV9NZXJnZUFjdGlvbnNbYWN0aW9uLT5tYXRjaEtpbmRdLAorCQkJ CQkJYWN0aW9uX3N0YXRlKTsKIAogCQkJc3dpdGNoIChhY3Rpb24tPmNvbW1hbmRUeXBlKQogCQkJ ewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2Vu ZC9ub2Rlcy9ub2RlRnVuY3MuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YmE4ZTczLi4x OTAwMTU2Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNr ZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC0yNTgzLDYgKzI1ODMsOCBAQCBxdWVyeV90cmVlX3dh bGtlcl9pbXBsKFF1ZXJ5ICpxdWVyeSwKIAkJcmV0dXJuIHRydWU7CiAJaWYgKFdBTEsocXVlcnkt Pm1lcmdlQWN0aW9uTGlzdCkpCiAJCXJldHVybiB0cnVlOworCWlmIChXQUxLKHF1ZXJ5LT5tZXJn ZUpvaW5Db25kaXRpb24pKQorCQlyZXR1cm4gdHJ1ZTsKIAlpZiAoV0FMSyhxdWVyeS0+cmV0dXJu aW5nTGlzdCkpCiAJCXJldHVybiB0cnVlOwogCWlmIChXQUxLKHF1ZXJ5LT5qb2ludHJlZSkpCkBA IC0zNjA3LDYgKzM2MDksNyBAQCBxdWVyeV90cmVlX211dGF0b3JfaW1wbChRdWVyeSAqcXVlcnks CiAJTVVUQVRFKHF1ZXJ5LT53aXRoQ2hlY2tPcHRpb25zLCBxdWVyeS0+d2l0aENoZWNrT3B0aW9u cywgTGlzdCAqKTsKIAlNVVRBVEUocXVlcnktPm9uQ29uZmxpY3QsIHF1ZXJ5LT5vbkNvbmZsaWN0 LCBPbkNvbmZsaWN0RXhwciAqKTsKIAlNVVRBVEUocXVlcnktPm1lcmdlQWN0aW9uTGlzdCwgcXVl cnktPm1lcmdlQWN0aW9uTGlzdCwgTGlzdCAqKTsKKwlNVVRBVEUocXVlcnktPm1lcmdlSm9pbkNv bmRpdGlvbiwgcXVlcnktPm1lcmdlSm9pbkNvbmRpdGlvbiwgTm9kZSAqKTsKIAlNVVRBVEUocXVl cnktPnJldHVybmluZ0xpc3QsIHF1ZXJ5LT5yZXR1cm5pbmdMaXN0LCBMaXN0ICopOwogCU1VVEFU RShxdWVyeS0+am9pbnRyZWUsIHF1ZXJ5LT5qb2ludHJlZSwgRnJvbUV4cHIgKik7CiAJTVVUQVRF KHF1ZXJ5LT5zZXRPcGVyYXRpb25zLCBxdWVyeS0+c2V0T3BlcmF0aW9ucywgTm9kZSAqKTsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYyBiL3NyYy9i YWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCA2MTBmNGE1Li4xZDM2NjY1Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2Ny ZWF0ZXBsYW4uYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMK QEAgLTMxMSw3ICszMTEsOCBAQCBzdGF0aWMgTW9kaWZ5VGFibGUgKm1ha2VfbW9kaWZ5dGFibGUo UGxhCiAJCQkJCQkJCQkgTGlzdCAqdXBkYXRlQ29sbm9zTGlzdHMsCiAJCQkJCQkJCQkgTGlzdCAq d2l0aENoZWNrT3B0aW9uTGlzdHMsIExpc3QgKnJldHVybmluZ0xpc3RzLAogCQkJCQkJCQkJIExp c3QgKnJvd01hcmtzLCBPbkNvbmZsaWN0RXhwciAqb25jb25mbGljdCwKLQkJCQkJCQkJCSBMaXN0 ICptZXJnZUFjdGlvbkxpc3RzLCBpbnQgZXBxUGFyYW0pOworCQkJCQkJCQkJIExpc3QgKm1lcmdl QWN0aW9uTGlzdHMsIExpc3QgKm1lcmdlSm9pbkNvbmRpdGlvbnMsCisJCQkJCQkJCQkgaW50IGVw cVBhcmFtKTsKIHN0YXRpYyBHYXRoZXJNZXJnZSAqY3JlYXRlX2dhdGhlcl9tZXJnZV9wbGFuKFBs YW5uZXJJbmZvICpyb290LAogCQkJCQkJCQkJCQkgR2F0aGVyTWVyZ2VQYXRoICpiZXN0X3BhdGgp OwogCkBAIC0yODM1LDYgKzI4MzYsNyBAQCBjcmVhdGVfbW9kaWZ5dGFibGVfcGxhbihQbGFubmVy SW5mbyAqcm9vCiAJCQkJCQkJYmVzdF9wYXRoLT5yb3dNYXJrcywKIAkJCQkJCQliZXN0X3BhdGgt Pm9uY29uZmxpY3QsCiAJCQkJCQkJYmVzdF9wYXRoLT5tZXJnZUFjdGlvbkxpc3RzLAorCQkJCQkJ CWJlc3RfcGF0aC0+bWVyZ2VKb2luQ29uZGl0aW9ucywKIAkJCQkJCQliZXN0X3BhdGgtPmVwcVBh cmFtKTsKIAogCWNvcHlfZ2VuZXJpY19wYXRoX2luZm8oJnBsYW4tPnBsYW4sICZiZXN0X3BhdGgt PnBhdGgpOwpAQCAtNzAxNCw3ICs3MDE2LDggQEAgbWFrZV9tb2RpZnl0YWJsZShQbGFubmVySW5m byAqcm9vdCwgUGxhbgogCQkJCSBMaXN0ICp1cGRhdGVDb2xub3NMaXN0cywKIAkJCQkgTGlzdCAq d2l0aENoZWNrT3B0aW9uTGlzdHMsIExpc3QgKnJldHVybmluZ0xpc3RzLAogCQkJCSBMaXN0ICpy b3dNYXJrcywgT25Db25mbGljdEV4cHIgKm9uY29uZmxpY3QsCi0JCQkJIExpc3QgKm1lcmdlQWN0 aW9uTGlzdHMsIGludCBlcHFQYXJhbSkKKwkJCQkgTGlzdCAqbWVyZ2VBY3Rpb25MaXN0cywgTGlz dCAqbWVyZ2VKb2luQ29uZGl0aW9ucywKKwkJCQkgaW50IGVwcVBhcmFtKQogewogCU1vZGlmeVRh YmxlICpub2RlID0gbWFrZU5vZGUoTW9kaWZ5VGFibGUpOwogCUxpc3QJICAgKmZkd19wcml2YXRl X2xpc3Q7CkBAIC03MDg0LDYgKzcwODcsNyBAQCBtYWtlX21vZGlmeXRhYmxlKFBsYW5uZXJJbmZv ICpyb290LCBQbGFuCiAJbm9kZS0+cmV0dXJuaW5nTGlzdHMgPSByZXR1cm5pbmdMaXN0czsKIAlu b2RlLT5yb3dNYXJrcyA9IHJvd01hcmtzOwogCW5vZGUtPm1lcmdlQWN0aW9uTGlzdHMgPSBtZXJn ZUFjdGlvbkxpc3RzOworCW5vZGUtPm1lcmdlSm9pbkNvbmRpdGlvbnMgPSBtZXJnZUpvaW5Db25k aXRpb25zOwogCW5vZGUtPmVwcVBhcmFtID0gZXBxUGFyYW07CiAKIAkvKgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1p emVyL3BsYW4vcGxhbm5lci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ0M2FiMDguLjk5 YzA2MDMKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCisrKyBiL3Ny Yy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYwpAQCAtOTA1LDYgKzkwNSw5IEBAIHN1 YnF1ZXJ5X3BsYW5uZXIoUGxhbm5lckdsb2JhbCAqZ2xvYiwgUXUKIAkJCQkJCQkJICBFWFBSS0lO RF9RVUFMKTsKIAl9CiAKKwlwYXJzZS0+bWVyZ2VKb2luQ29uZGl0aW9uID0KKwkJcHJlcHJvY2Vz c19leHByZXNzaW9uKHJvb3QsIHBhcnNlLT5tZXJnZUpvaW5Db25kaXRpb24sIEVYUFJLSU5EX1FV QUwpOworCiAJcm9vdC0+YXBwZW5kX3JlbF9saXN0ID0gKExpc3QgKikKIAkJcHJlcHJvY2Vzc19l eHByZXNzaW9uKHJvb3QsIChOb2RlICopIHJvb3QtPmFwcGVuZF9yZWxfbGlzdCwKIAkJCQkJCQkg IEVYUFJLSU5EX0FQUElORk8pOwpAQCAtMTc4Nyw2ICsxNzkwLDcgQEAgZ3JvdXBpbmdfcGxhbm5l cihQbGFubmVySW5mbyAqcm9vdCwgZG91YgogCQkJTGlzdAkgICAqd2l0aENoZWNrT3B0aW9uTGlz dHMgPSBOSUw7CiAJCQlMaXN0CSAgICpyZXR1cm5pbmdMaXN0cyA9IE5JTDsKIAkJCUxpc3QJICAg Km1lcmdlQWN0aW9uTGlzdHMgPSBOSUw7CisJCQlMaXN0CSAgICptZXJnZUpvaW5Db25kaXRpb25z ID0gTklMOwogCQkJTGlzdAkgICAqcm93TWFya3M7CiAKIAkJCWlmIChibXNfbWVtYmVyc2hpcChy b290LT5hbGxfcmVzdWx0X3JlbGlkcykgPT0gQk1TX01VTFRJUExFKQpAQCAtMTg5Myw2ICsxODk3 LDE5IEBAIGdyb3VwaW5nX3BsYW5uZXIoUGxhbm5lckluZm8gKnJvb3QsIGRvdWIKIAkJCQkJCW1l cmdlQWN0aW9uTGlzdHMgPSBsYXBwZW5kKG1lcmdlQWN0aW9uTGlzdHMsCiAJCQkJCQkJCQkJCQkg ICBtZXJnZUFjdGlvbkxpc3QpOwogCQkJCQl9CisJCQkJCWlmIChwYXJzZS0+Y29tbWFuZFR5cGUg PT0gQ01EX01FUkdFKQorCQkJCQl7CisJCQkJCQlOb2RlCSAgICptZXJnZUpvaW5Db25kaXRpb24g PSBwYXJzZS0+bWVyZ2VKb2luQ29uZGl0aW9uOworCisJCQkJCQlpZiAodGhpc19yZXN1bHRfcmVs ICE9IHRvcF9yZXN1bHRfcmVsKQorCQkJCQkJCW1lcmdlSm9pbkNvbmRpdGlvbiA9CisJCQkJCQkJ CWFkanVzdF9hcHBlbmRyZWxfYXR0cnNfbXVsdGlsZXZlbChyb290LAorCQkJCQkJCQkJCQkJCQkJ CSAgbWVyZ2VKb2luQ29uZGl0aW9uLAorCQkJCQkJCQkJCQkJCQkJCSAgdGhpc19yZXN1bHRfcmVs LAorCQkJCQkJCQkJCQkJCQkJCSAgdG9wX3Jlc3VsdF9yZWwpOworCQkJCQkJbWVyZ2VKb2luQ29u ZGl0aW9ucyA9IGxhcHBlbmQobWVyZ2VKb2luQ29uZGl0aW9ucywKKwkJCQkJCQkJCQkJCQkgIG1l cmdlSm9pbkNvbmRpdGlvbik7CisJCQkJCX0KIAkJCQl9CiAKIAkJCQlpZiAocmVzdWx0UmVsYXRp b25zID09IE5JTCkKQEAgLTE5MTcsNiArMTkzNCw4IEBAIGdyb3VwaW5nX3BsYW5uZXIoUGxhbm5l ckluZm8gKnJvb3QsIGRvdWIKIAkJCQkJCXJldHVybmluZ0xpc3RzID0gbGlzdF9tYWtlMShwYXJz ZS0+cmV0dXJuaW5nTGlzdCk7CiAJCQkJCWlmIChwYXJzZS0+bWVyZ2VBY3Rpb25MaXN0KQogCQkJ CQkJbWVyZ2VBY3Rpb25MaXN0cyA9IGxpc3RfbWFrZTEocGFyc2UtPm1lcmdlQWN0aW9uTGlzdCk7 CisJCQkJCWlmIChwYXJzZS0+Y29tbWFuZFR5cGUgPT0gQ01EX01FUkdFKQorCQkJCQkJbWVyZ2VK b2luQ29uZGl0aW9ucyA9IGxpc3RfbWFrZTEocGFyc2UtPm1lcmdlSm9pbkNvbmRpdGlvbik7CiAJ CQkJfQogCQkJfQogCQkJZWxzZQpAQCAtMTkzMiw2ICsxOTUxLDggQEAgZ3JvdXBpbmdfcGxhbm5l cihQbGFubmVySW5mbyAqcm9vdCwgZG91YgogCQkJCQlyZXR1cm5pbmdMaXN0cyA9IGxpc3RfbWFr ZTEocGFyc2UtPnJldHVybmluZ0xpc3QpOwogCQkJCWlmIChwYXJzZS0+bWVyZ2VBY3Rpb25MaXN0 KQogCQkJCQltZXJnZUFjdGlvbkxpc3RzID0gbGlzdF9tYWtlMShwYXJzZS0+bWVyZ2VBY3Rpb25M aXN0KTsKKwkJCQlpZiAocGFyc2UtPmNvbW1hbmRUeXBlID09IENNRF9NRVJHRSkKKwkJCQkJbWVy Z2VKb2luQ29uZGl0aW9ucyA9IGxpc3RfbWFrZTEocGFyc2UtPm1lcmdlSm9pbkNvbmRpdGlvbik7 CiAJCQl9CiAKIAkJCS8qCkBAIC0xOTU5LDYgKzE5ODAsNyBAQCBncm91cGluZ19wbGFubmVyKFBs YW5uZXJJbmZvICpyb290LCBkb3ViCiAJCQkJCQkJCQkJcm93TWFya3MsCiAJCQkJCQkJCQkJcGFy c2UtPm9uQ29uZmxpY3QsCiAJCQkJCQkJCQkJbWVyZ2VBY3Rpb25MaXN0cywKKwkJCQkJCQkJCQlt ZXJnZUpvaW5Db25kaXRpb25zLAogCQkJCQkJCQkJCWFzc2lnbl9zcGVjaWFsX2V4ZWNfcGFyYW0o cm9vdCkpOwogCQl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Nl dHJlZnMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCA0MjYwM2RiLi4zN2FiY2I0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGlt aXplci9wbGFuL3NldHJlZnMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRy ZWZzLmMKQEAgLTExNDMsNyArMTE0Myw5IEBAIHNldF9wbGFuX3JlZnMoUGxhbm5lckluZm8gKnJv b3QsIFBsYW4gKnAKIAkJCQkgKi8KIAkJCQlpZiAoc3BsYW4tPm1lcmdlQWN0aW9uTGlzdHMgIT0g TklMKQogCQkJCXsKKwkJCQkJTGlzdAkgICAqbmV3TUpDID0gTklMOwogCQkJCQlMaXN0Q2VsbCAg ICpsY2EsCisJCQkJCQkJICAgKmxjaiwKIAkJCQkJCQkgICAqbGNyOwogCiAJCQkJCS8qCkBAIC0x MTY0LDEwICsxMTY2LDEyIEBAIHNldF9wbGFuX3JlZnMoUGxhbm5lckluZm8gKnJvb3QsIFBsYW4g KnAKIAogCQkJCQlpdGxpc3QgPSBidWlsZF90bGlzdF9pbmRleChzdWJwbGFuLT50YXJnZXRsaXN0 KTsKIAotCQkJCQlmb3Jib3RoKGxjYSwgc3BsYW4tPm1lcmdlQWN0aW9uTGlzdHMsCi0JCQkJCQkJ bGNyLCBzcGxhbi0+cmVzdWx0UmVsYXRpb25zKQorCQkJCQlmb3J0aHJlZShsY2EsIHNwbGFuLT5t ZXJnZUFjdGlvbkxpc3RzLAorCQkJCQkJCSBsY2osIHNwbGFuLT5tZXJnZUpvaW5Db25kaXRpb25z LAorCQkJCQkJCSBsY3IsIHNwbGFuLT5yZXN1bHRSZWxhdGlvbnMpCiAJCQkJCXsKIAkJCQkJCUxp c3QJICAgKm1lcmdlQWN0aW9uTGlzdCA9IGxmaXJzdChsY2EpOworCQkJCQkJTm9kZQkgICAqbWVy Z2VKb2luQ29uZGl0aW9uID0gbGZpcnN0KGxjaik7CiAJCQkJCQlJbmRleAkJcmVzdWx0cmVsID0g bGZpcnN0X2ludChsY3IpOwogCiAJCQkJCQlmb3JlYWNoKGwsIG1lcmdlQWN0aW9uTGlzdCkKQEAg LTExOTIsNyArMTE5NiwxOSBAQCBzZXRfcGxhbl9yZWZzKFBsYW5uZXJJbmZvICpyb290LCBQbGFu ICpwCiAJCQkJCQkJCQkJCQkJCQkJICBOUk1fRVFVQUwsCiAJCQkJCQkJCQkJCQkJCQkJICBOVU1f RVhFQ19RVUFMKHBsYW4pKTsKIAkJCQkJCX0KKworCQkJCQkJLyogRml4IGpvaW4gY29uZGl0aW9u IHRvby4gKi8KKwkJCQkJCW1lcmdlSm9pbkNvbmRpdGlvbiA9IChOb2RlICopCisJCQkJCQkJZml4 X2pvaW5fZXhwcihyb290LAorCQkJCQkJCQkJCSAgKExpc3QgKikgbWVyZ2VKb2luQ29uZGl0aW9u LAorCQkJCQkJCQkJCSAgTlVMTCwgaXRsaXN0LAorCQkJCQkJCQkJCSAgcmVzdWx0cmVsLAorCQkJ CQkJCQkJCSAgcnRvZmZzZXQsCisJCQkJCQkJCQkJICBOUk1fRVFVQUwsCisJCQkJCQkJCQkJICBO VU1fRVhFQ19RVUFMKHBsYW4pKTsKKwkJCQkJCW5ld01KQyA9IGxhcHBlbmQobmV3TUpDLCBtZXJn ZUpvaW5Db25kaXRpb24pOwogCQkJCQl9CisJCQkJCXNwbGFuLT5tZXJnZUpvaW5Db25kaXRpb25z ID0gbmV3TUpDOwogCQkJCX0KIAogCQkJCXNwbGFuLT5ub21pbmFsUmVsYXRpb24gKz0gcnRvZmZz ZXQ7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUu YyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDMwMDY5MWMuLjJkODk1NmQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1p emVyL3ByZXAvcHJlcGpvaW50cmVlLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAv cHJlcGpvaW50cmVlLmMKQEAgLTE1Myw5ICsxNTMsMTEgQEAgdHJhbnNmb3JtX01FUkdFX3RvX2pv aW4oUXVlcnkgKnBhcnNlKQogewogCVJhbmdlVGJsRW50cnkgKmpvaW5ydGU7CiAJSm9pbkV4cHIg ICAqam9pbmV4cHI7CisJYm9vbAkJaGF2ZV9hY3Rpb25bM107CiAJSm9pblR5cGUJam9pbnR5cGU7 CiAJaW50CQkJam9pbnJ0aTsKIAlMaXN0CSAgICp2YXJzOworCVJhbmdlVGJsUmVmICpydHI7CiAK IAlpZiAocGFyc2UtPmNvbW1hbmRUeXBlICE9IENNRF9NRVJHRSkKIAkJcmV0dXJuOwpAQCAtMTY0 LDExICsxNjYsMjcgQEAgdHJhbnNmb3JtX01FUkdFX3RvX2pvaW4oUXVlcnkgKnBhcnNlKQogCXZh cnMgPSBOSUw7CiAKIAkvKgotCSAqIFdoZW4gYW55IFdIRU4gTk9UIE1BVENIRUQgVEhFTiBJTlNF UlQgY2xhdXNlcyBleGlzdCwgd2UgbmVlZCB0byB1c2UgYW4KLQkgKiBvdXRlciBqb2luIHNvIHRo YXQgd2UgcHJvY2VzcyBhbGwgdW5tYXRjaGVkIHR1cGxlcyBmcm9tIHRoZSBzb3VyY2UKLQkgKiBy ZWxhdGlvbi4gIElmIG5vbmUgZXhpc3QsIHdlIGNhbiB1c2UgYW4gaW5uZXIgam9pbi4KKwkgKiBX b3JrIG91dCB3aGF0IGtpbmQgb2Ygam9pbiBpcyByZXF1aXJlZC4gIElmIHRoZXJlIGFueSBXSEVO IE5PVCBNQVRDSEVECisJICogQlkgU09VUkNFL1RBUkdFVCBhY3Rpb25zLCBhbiBvdXRlciBqb2lu IGlzIHJlcXVpcmVkIHNvIHRoYXQgd2UgcHJvY2VzcworCSAqIGFsbCB1bm1hdGNoZWQgdHVwbGVz IGZyb20gdGhlIHNvdXJjZSBhbmQvb3IgdGFyZ2V0IHJlbGF0aW9ucy4KKwkgKiBPdGhlcndpc2Us IHdlIGNhbiB1c2UgYW4gaW5uZXIgam9pbi4KIAkgKi8KLQlpZiAocGFyc2UtPm1lcmdlVXNlT3V0 ZXJKb2luKQorCWhhdmVfYWN0aW9uW01FUkdFX1dIRU5fTUFUQ0hFRF0gPSBmYWxzZTsKKwloYXZl X2FjdGlvbltNRVJHRV9XSEVOX05PVF9NQVRDSEVEX0JZX1NPVVJDRV0gPSBmYWxzZTsKKwloYXZl X2FjdGlvbltNRVJHRV9XSEVOX05PVF9NQVRDSEVEX0JZX1RBUkdFVF0gPSBmYWxzZTsKKworCWZv cmVhY2hfbm9kZShNZXJnZUFjdGlvbiwgYWN0aW9uLCBwYXJzZS0+bWVyZ2VBY3Rpb25MaXN0KQor CXsKKwkJaWYgKGFjdGlvbi0+Y29tbWFuZFR5cGUgIT0gQ01EX05PVEhJTkcpCisJCQloYXZlX2Fj dGlvblthY3Rpb24tPm1hdGNoS2luZF0gPSB0cnVlOworCX0KKworCWlmIChoYXZlX2FjdGlvbltN RVJHRV9XSEVOX05PVF9NQVRDSEVEX0JZX1NPVVJDRV0gJiYKKwkJaGF2ZV9hY3Rpb25bTUVSR0Vf V0hFTl9OT1RfTUFUQ0hFRF9CWV9UQVJHRVRdKQorCQlqb2ludHlwZSA9IEpPSU5fRlVMTDsKKwll bHNlIGlmIChoYXZlX2FjdGlvbltNRVJHRV9XSEVOX05PVF9NQVRDSEVEX0JZX1NPVVJDRV0pCisJ CWpvaW50eXBlID0gSk9JTl9MRUZUOworCWVsc2UgaWYgKGhhdmVfYWN0aW9uW01FUkdFX1dIRU5f Tk9UX01BVENIRURfQllfVEFSR0VUXSkKIAkJam9pbnR5cGUgPSBKT0lOX1JJR0hUOwogCWVsc2UK IAkJam9pbnR5cGUgPSBKT0lOX0lOTkVSOwpAQCAtMjA0LDE2ICsyMjIsMTYgQEAgdHJhbnNmb3Jt X01FUkdFX3RvX2pvaW4oUXVlcnkgKnBhcnNlKQogCSAqIHRyaWdnZXItdXBkYXRhYmxlIHZpZXcs IGl0IHdpbGwgYmUgdGhlIGV4cGFuZGVkIHZpZXcgc3VicXVlcnkgdGhhdCB3ZQogCSAqIG5lZWQg dG8gcHVsbCBkYXRhIGZyb20uCiAJICovCisJcnRyID0gbWFrZU5vZGUoUmFuZ2VUYmxSZWYpOwor CXJ0ci0+cnRpbmRleCA9IHBhcnNlLT5tZXJnZVRhcmdldFJlbGF0aW9uOwogCWpvaW5leHByID0g bWFrZU5vZGUoSm9pbkV4cHIpOwogCWpvaW5leHByLT5qb2ludHlwZSA9IGpvaW50eXBlOwogCWpv aW5leHByLT5pc05hdHVyYWwgPSBmYWxzZTsKLQlqb2luZXhwci0+bGFyZyA9IChOb2RlICopIG1h a2VOb2RlKFJhbmdlVGJsUmVmKTsKLQkoKFJhbmdlVGJsUmVmICopIGpvaW5leHByLT5sYXJnKS0+ cnRpbmRleCA9IHBhcnNlLT5tZXJnZVRhcmdldFJlbGF0aW9uOwotCWpvaW5leHByLT5yYXJnID0g bGluaXRpYWwocGFyc2UtPmpvaW50cmVlLT5mcm9tbGlzdCk7CS8qIG9yaWdpbmFsIGpvaW4gKi8K Kwlqb2luZXhwci0+bGFyZyA9IChOb2RlICopIG1ha2VGcm9tRXhwcihsaXN0X21ha2UxKHJ0ciks IHBhcnNlLT5qb2ludHJlZS0+cXVhbHMpOworCWpvaW5leHByLT5yYXJnID0gbGluaXRpYWwocGFy c2UtPmpvaW50cmVlLT5mcm9tbGlzdCk7CS8qIHNvdXJjZSByZWwgKi8KIAlqb2luZXhwci0+dXNp bmdDbGF1c2UgPSBOSUw7CiAJam9pbmV4cHItPmpvaW5fdXNpbmdfYWxpYXMgPSBOVUxMOwotCS8q IFRoZSBxdWFscyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBqb2ludHJlZSBhbmQgaW50byB0aGlzIHNw ZWNpZmljIGpvaW4gKi8KLQlqb2luZXhwci0+cXVhbHMgPSBwYXJzZS0+am9pbnRyZWUtPnF1YWxz OworCWpvaW5leHByLT5xdWFscyA9IHBhcnNlLT5tZXJnZUpvaW5Db25kaXRpb247CiAJam9pbmV4 cHItPmFsaWFzID0gTlVMTDsKIAlqb2luZXhwci0+cnRpbmRleCA9IGpvaW5ydGk7CiAKQEAgLTIz Myw2ICsyNTEsMTUgQEAgdHJhbnNmb3JtX01FUkdFX3RvX2pvaW4oUXVlcnkgKnBhcnNlKQogCQkJ YWRkX251bGxpbmdfcmVsaWRzKChOb2RlICopIHBhcnNlLT50YXJnZXRMaXN0LAogCQkJCQkJCSAg IGJtc19tYWtlX3NpbmdsZXRvbihwYXJzZS0+bWVyZ2VUYXJnZXRSZWxhdGlvbiksCiAJCQkJCQkJ ICAgYm1zX21ha2Vfc2luZ2xldG9uKGpvaW5ydGkpKTsKKworCS8qCisJICogSWYgdGhlcmUgYXJl IGFueSBXSEVOIE5PVCBNQVRDSEVEIEJZIFNPVVJDRSBhY3Rpb25zLCB0aGUgZXhlY3V0b3Igd2ls bAorCSAqIHVzZSB0aGUgam9pbiBjb25kaXRpb24gdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBNQVRD SEVEIGFuZCBOT1QgTUFUQ0hFRAorCSAqIEJZIFNPVVJDRSBjYXNlcy4gIE90aGVyd2lzZSwgaXQn cyBubyBsb25nZXIgbmVlZGVkLCBhbmQgd2Ugc2V0IGl0IHRvCisJICogTlVMTCwgc2F2aW5nIGN5 Y2xlcyBkdXJpbmcgcGxhbm5pbmcgYW5kIGV4ZWN1dGlvbi4KKwkgKi8KKwlpZiAoIWhhdmVfYWN0 aW9uW01FUkdFX1dIRU5fTk9UX01BVENIRURfQllfU09VUkNFXSkKKwkJcGFyc2UtPm1lcmdlSm9p bkNvbmRpdGlvbiA9IE5VTEw7CiB9CiAKIC8qCkBAIC0yMTczLDYgKzIyMDAsOCBAQCBwZXJmb3Jt X3B1bGx1cF9yZXBsYWNlX3ZhcnMoUGxhbm5lckluZm8KIAkJCQlwdWxsdXBfcmVwbGFjZV92YXJz KChOb2RlICopIGFjdGlvbi0+dGFyZ2V0TGlzdCwgcnZjb250ZXh0KTsKIAkJfQogCX0KKwlwYXJz ZS0+bWVyZ2VKb2luQ29uZGl0aW9uID0gcHVsbHVwX3JlcGxhY2VfdmFycyhwYXJzZS0+bWVyZ2VK b2luQ29uZGl0aW9uLAorCQkJCQkJCQkJCQkJCXJ2Y29udGV4dCk7CiAJcmVwbGFjZV92YXJzX2lu X2pvaW50cmVlKChOb2RlICopIHBhcnNlLT5qb2ludHJlZSwgcnZjb250ZXh0KTsKIAlBc3NlcnQo cGFyc2UtPnNldE9wZXJhdGlvbnMgPT0gTlVMTCk7CiAJcGFyc2UtPmhhdmluZ1F1YWwgPSBwdWxs dXBfcmVwbGFjZV92YXJzKHBhcnNlLT5oYXZpbmdRdWFsLCBydmNvbnRleHQpOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcHRsaXN0LmMgYi9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcHJlcC9wcmVwdGxpc3QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3Njk4 YmZhLi45MzFiOWMwCi0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXB0bGlzdC5j CisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXB0bGlzdC5jCkBAIC0xMzQsNiAr MTM0LDcgQEAgcHJlcHJvY2Vzc190YXJnZXRsaXN0KFBsYW5uZXJJbmZvICpyb290KQogCWlmIChj b21tYW5kX3R5cGUgPT0gQ01EX01FUkdFKQogCXsKIAkJTGlzdENlbGwgICAqbDsKKwkJTGlzdAkg ICAqdmFyczsKIAogCQkvKgogCQkgKiBGb3IgTUVSR0UsIGhhbmRsZSB0YXJnZXRsaXN0IG9mIGVh Y2ggTWVyZ2VBY3Rpb24gc2VwYXJhdGVseS4gR2l2ZQpAQCAtMTQ0LDcgKzE0NSw2IEBAIHByZXBy b2Nlc3NfdGFyZ2V0bGlzdChQbGFubmVySW5mbyAqcm9vdCkKIAkJZm9yZWFjaChsLCBwYXJzZS0+ bWVyZ2VBY3Rpb25MaXN0KQogCQl7CiAJCQlNZXJnZUFjdGlvbiAqYWN0aW9uID0gKE1lcmdlQWN0 aW9uICopIGxmaXJzdChsKTsKLQkJCUxpc3QJICAgKnZhcnM7CiAJCQlMaXN0Q2VsbCAgICpsMjsK IAogCQkJaWYgKGFjdGlvbi0+Y29tbWFuZFR5cGUgPT0gQ01EX0lOU0VSVCkKQEAgLTE4Miw2ICsx ODIsMzAgQEAgcHJlcHJvY2Vzc190YXJnZXRsaXN0KFBsYW5uZXJJbmZvICpyb290KQogCQkJfQog CQkJbGlzdF9mcmVlKHZhcnMpOwogCQl9CisKKwkJLyoKKwkJICogQWRkIHJlc2p1bmsgZW50cmll cyBmb3IgYW55IFZhcnMgYW5kIFBsYWNlSG9sZGVyVmFycyB1c2VkIGluIHRoZQorCQkgKiBqb2lu IGNvbmRpdGlvbiB0aGF0IGJlbG9uZyB0byByZWxhdGlvbnMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0 LiAgV2UKKwkJICogZG9uJ3QgZXhwZWN0IHRvIHNlZSBhbnkgYWdncmVnYXRlcyBvciB3aW5kb3cg ZnVuY3Rpb25zIGhlcmUuCisJCSAqLworCQl2YXJzID0gcHVsbF92YXJfY2xhdXNlKHBhcnNlLT5t ZXJnZUpvaW5Db25kaXRpb24sCisJCQkJCQkJICAgUFZDX0lOQ0xVREVfUExBQ0VIT0xERVJTKTsK KwkJZm9yZWFjaChsLCB2YXJzKQorCQl7CisJCQlWYXIJCSAgICp2YXIgPSAoVmFyICopIGxmaXJz dChsKTsKKwkJCVRhcmdldEVudHJ5ICp0bGU7CisKKwkJCWlmIChJc0EodmFyLCBWYXIpICYmIHZh ci0+dmFybm8gPT0gcmVzdWx0X3JlbGF0aW9uKQorCQkJCWNvbnRpbnVlOwkJLyogZG9uJ3QgbmVl ZCBpdCAqLworCisJCQlpZiAodGxpc3RfbWVtYmVyKChFeHByICopIHZhciwgdGxpc3QpKQorCQkJ CWNvbnRpbnVlOwkJLyogYWxyZWFkeSBnb3QgaXQgKi8KKworCQkJdGxlID0gbWFrZVRhcmdldEVu dHJ5KChFeHByICopIHZhciwKKwkJCQkJCQkJICBsaXN0X2xlbmd0aCh0bGlzdCkgKyAxLAorCQkJ CQkJCQkgIE5VTEwsIHRydWUpOworCQkJdGxpc3QgPSBsYXBwZW5kKHRsaXN0LCB0bGUpOworCQl9 CiAJfQogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3BhdGhu b2RlLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wYXRobm9kZS5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDI0NmNkOGYuLmU3M2I4ODMKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1p emVyL3V0aWwvcGF0aG5vZGUuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wYXRo bm9kZS5jCkBAIC0zNzAyLDYgKzM3MDIsNyBAQCBjcmVhdGVfbG9ja3Jvd3NfcGF0aChQbGFubmVy SW5mbyAqcm9vdCwKICAqICdvbmNvbmZsaWN0JyBpcyB0aGUgT04gQ09ORkxJQ1QgY2xhdXNlLCBv ciBOVUxMCiAgKiAnZXBxUGFyYW0nIGlzIHRoZSBJRCBvZiBQYXJhbSBmb3IgRXZhbFBsYW5RdWFs IHJlLWV2YWwKICAqICdtZXJnZUFjdGlvbkxpc3RzJyBpcyBhIGxpc3Qgb2YgbGlzdHMgb2YgTUVS R0UgYWN0aW9ucyAob25lIHBlciByZWwpCisgKiAnbWVyZ2VKb2luQ29uZGl0aW9ucycgaXMgYSBs aXN0IG9mIGpvaW4gY29uZGl0aW9ucyBmb3IgTUVSR0UgKG9uZSBwZXIgcmVsKQogICovCiBNb2Rp ZnlUYWJsZVBhdGggKgogY3JlYXRlX21vZGlmeXRhYmxlX3BhdGgoUGxhbm5lckluZm8gKnJvb3Qs IFJlbE9wdEluZm8gKnJlbCwKQEAgLTM3MTMsNyArMzcxNCw4IEBAIGNyZWF0ZV9tb2RpZnl0YWJs ZV9wYXRoKFBsYW5uZXJJbmZvICpyb28KIAkJCQkJCUxpc3QgKnVwZGF0ZUNvbG5vc0xpc3RzLAog CQkJCQkJTGlzdCAqd2l0aENoZWNrT3B0aW9uTGlzdHMsIExpc3QgKnJldHVybmluZ0xpc3RzLAog CQkJCQkJTGlzdCAqcm93TWFya3MsIE9uQ29uZmxpY3RFeHByICpvbmNvbmZsaWN0LAotCQkJCQkJ TGlzdCAqbWVyZ2VBY3Rpb25MaXN0cywgaW50IGVwcVBhcmFtKQorCQkJCQkJTGlzdCAqbWVyZ2VB Y3Rpb25MaXN0cywgTGlzdCAqbWVyZ2VKb2luQ29uZGl0aW9ucywKKwkJCQkJCWludCBlcHFQYXJh bSkKIHsKIAlNb2RpZnlUYWJsZVBhdGggKnBhdGhub2RlID0gbWFrZU5vZGUoTW9kaWZ5VGFibGVQ YXRoKTsKIApAQCAtMzc4MSw2ICszNzgzLDcgQEAgY3JlYXRlX21vZGlmeXRhYmxlX3BhdGgoUGxh bm5lckluZm8gKnJvbwogCXBhdGhub2RlLT5vbmNvbmZsaWN0ID0gb25jb25mbGljdDsKIAlwYXRo bm9kZS0+ZXBxUGFyYW0gPSBlcHFQYXJhbTsKIAlwYXRobm9kZS0+bWVyZ2VBY3Rpb25MaXN0cyA9 IG1lcmdlQWN0aW9uTGlzdHM7CisJcGF0aG5vZGUtPm1lcmdlSm9pbkNvbmRpdGlvbnMgPSBtZXJn ZUpvaW5Db25kaXRpb25zOwogCiAJcmV0dXJuIHBhdGhub2RlOwogfQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggYzZlMmY2Ny4uMWNkMWYyMQotLS0gYS9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTI3NSw2ICsy NzUsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhCiAJc3RydWN0 IFNlbGVjdExpbWl0ICpzZWxlY3RsaW1pdDsKIAlTZXRRdWFudGlmaWVyIHNldHF1YW50aWZpZXI7 CiAJc3RydWN0IEdyb3VwQ2xhdXNlICpncm91cGNsYXVzZTsKKwlNZXJnZU1hdGNoS2luZCBtZXJn ZW1hdGNoOwogCU1lcmdlV2hlbkNsYXVzZSAqbWVyZ2V3aGVuOwogCXN0cnVjdCBLZXlBY3Rpb25z ICprZXlhY3Rpb25zOwogCXN0cnVjdCBLZXlBY3Rpb24gKmtleWFjdGlvbjsKQEAgLTUxNiw2ICs1 MTcsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhCiAldHlwZSA8 b25jb25mbGljdD4gb3B0X29uX2NvbmZsaWN0CiAldHlwZSA8bWVyZ2V3aGVuPgltZXJnZV9pbnNl cnQgbWVyZ2VfdXBkYXRlIG1lcmdlX2RlbGV0ZQogCisldHlwZSA8bWVyZ2VtYXRjaD4gbWVyZ2Vf d2hlbl90Z3RfbWF0Y2hlZCBtZXJnZV93aGVuX3RndF9ub3RfbWF0Y2hlZAogJXR5cGUgPG5vZGU+ CW1lcmdlX3doZW5fY2xhdXNlIG9wdF9tZXJnZV93aGVuX2NvbmRpdGlvbgogJXR5cGUgPGxpc3Q+ CW1lcmdlX3doZW5fbGlzdAogCkBAIC03NjAsMTEgKzc2MiwxMSBAQCBzdGF0aWMgTm9kZSAqbWFr ZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhCiAJU0FWRVBPSU5UIFNDQUxBUiBTQ0hFTUEgU0NIRU1B UyBTQ1JPTEwgU0VBUkNIIFNFQ09ORF9QIFNFQ1VSSVRZIFNFTEVDVAogCVNFUVVFTkNFIFNFUVVF TkNFUwogCVNFUklBTElaQUJMRSBTRVJWRVIgU0VTU0lPTiBTRVNTSU9OX1VTRVIgU0VUIFNFVFMg U0VUT0YgU0hBUkUgU0hPVwotCVNJTUlMQVIgU0lNUExFIFNLSVAgU01BTExJTlQgU05BUFNIT1Qg U09NRSBTUUxfUCBTVEFCTEUgU1RBTkRBTE9ORV9QCisJU0lNSUxBUiBTSU1QTEUgU0tJUCBTTUFM TElOVCBTTkFQU0hPVCBTT01FIFNPVVJDRSBTUUxfUCBTVEFCTEUgU1RBTkRBTE9ORV9QCiAJU1RB UlQgU1RBVEVNRU5UIFNUQVRJU1RJQ1MgU1RESU4gU1RET1VUIFNUT1JBR0UgU1RPUkVEIFNUUklD VF9QIFNUUklQX1AKIAlTVUJTQ1JJUFRJT04gU1VCU1RSSU5HIFNVUFBPUlQgU1lNTUVUUklDIFNZ U0lEIFNZU1RFTV9QIFNZU1RFTV9VU0VSCiAKLQlUQUJMRSBUQUJMRVMgVEFCTEVTQU1QTEUgVEFC TEVTUEFDRSBURU1QIFRFTVBMQVRFIFRFTVBPUkFSWSBURVhUX1AgVEhFTgorCVRBQkxFIFRBQkxF UyBUQUJMRVNBTVBMRSBUQUJMRVNQQUNFIFRBUkdFVCBURU1QIFRFTVBMQVRFIFRFTVBPUkFSWSBU RVhUX1AgVEhFTgogCVRJRVMgVElNRSBUSU1FU1RBTVAgVE8gVFJBSUxJTkcgVFJBTlNBQ1RJT04g VFJBTlNGT1JNCiAJVFJFQVQgVFJJR0dFUiBUUklNIFRSVUVfUAogCVRSVU5DQVRFIFRSVVNURUQg VFlQRV9QIFRZUEVTX1AKQEAgLTEyMzkyLDUwICsxMjM5NCw2NiBAQCBtZXJnZV93aGVuX2xpc3Q6 CiAJCQl8IG1lcmdlX3doZW5fbGlzdCBtZXJnZV93aGVuX2NsYXVzZQkJeyAkJCA9IGxhcHBlbmQo JDEsJDIpOyB9CiAJCTsKIAorLyoKKyAqIEEgV0hFTiBjbGF1c2UgbWF5IGJlIFdIRU4gTUFUQ0hF RCwgV0hFTiBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0UsIG9yIFdIRU4gTk9UCisgKiBNQVRDSEVEIFtC WSBUQVJHRVRdLiBUaGUgZmlyc3QgdHdvIGNhc2VzIG1hdGNoIHRhcmdldCB0dXBsZXMsIGFuZCBz dXBwb3J0CisgKiBVUERBVEUvREVMRVRFL0RPIE5PVEhJTkcgYWN0aW9ucy4gVGhlIHRoaXJkIGNh c2UgZG9lcyBub3QgbWF0Y2ggdGFyZ2V0CisgKiB0dXBsZXMsIGFuZCBvbmx5IHN1cHBvcnRzIElO U0VSVC9ETyBOT1RISU5HIGFjdGlvbnMuCisgKi8KIG1lcmdlX3doZW5fY2xhdXNlOgotCQkJV0hF TiBNQVRDSEVEIG9wdF9tZXJnZV93aGVuX2NvbmRpdGlvbiBUSEVOIG1lcmdlX3VwZGF0ZQorCQkJ bWVyZ2Vfd2hlbl90Z3RfbWF0Y2hlZCBvcHRfbWVyZ2Vfd2hlbl9jb25kaXRpb24gVEhFTiBtZXJn ZV91cGRhdGUKIAkJCQl7Ci0JCQkJCSQ1LT5tYXRjaGVkID0gdHJ1ZTsKLQkJCQkJJDUtPmNvbmRp dGlvbiA9ICQzOworCQkJCQkkNC0+bWF0Y2hLaW5kID0gJDE7CisJCQkJCSQ0LT5jb25kaXRpb24g PSAkMjsKIAotCQkJCQkkJCA9IChOb2RlICopICQ1OworCQkJCQkkJCA9IChOb2RlICopICQ0Owog CQkJCX0KLQkJCXwgV0hFTiBNQVRDSEVEIG9wdF9tZXJnZV93aGVuX2NvbmRpdGlvbiBUSEVOIG1l cmdlX2RlbGV0ZQorCQkJfCBtZXJnZV93aGVuX3RndF9tYXRjaGVkIG9wdF9tZXJnZV93aGVuX2Nv bmRpdGlvbiBUSEVOIG1lcmdlX2RlbGV0ZQogCQkJCXsKLQkJCQkJJDUtPm1hdGNoZWQgPSB0cnVl OwotCQkJCQkkNS0+Y29uZGl0aW9uID0gJDM7CisJCQkJCSQ0LT5tYXRjaEtpbmQgPSAkMTsKKwkJ CQkJJDQtPmNvbmRpdGlvbiA9ICQyOwogCi0JCQkJCSQkID0gKE5vZGUgKikgJDU7CisJCQkJCSQk ID0gKE5vZGUgKikgJDQ7CiAJCQkJfQotCQkJfCBXSEVOIE5PVCBNQVRDSEVEIG9wdF9tZXJnZV93 aGVuX2NvbmRpdGlvbiBUSEVOIG1lcmdlX2luc2VydAorCQkJfCBtZXJnZV93aGVuX3RndF9ub3Rf bWF0Y2hlZCBvcHRfbWVyZ2Vfd2hlbl9jb25kaXRpb24gVEhFTiBtZXJnZV9pbnNlcnQKIAkJCQl7 Ci0JCQkJCSQ2LT5tYXRjaGVkID0gZmFsc2U7Ci0JCQkJCSQ2LT5jb25kaXRpb24gPSAkNDsKKwkJ CQkJJDQtPm1hdGNoS2luZCA9ICQxOworCQkJCQkkNC0+Y29uZGl0aW9uID0gJDI7CiAKLQkJCQkJ JCQgPSAoTm9kZSAqKSAkNjsKKwkJCQkJJCQgPSAoTm9kZSAqKSAkNDsKIAkJCQl9Ci0JCQl8IFdI RU4gTUFUQ0hFRCBvcHRfbWVyZ2Vfd2hlbl9jb25kaXRpb24gVEhFTiBETyBOT1RISU5HCisJCQl8 IG1lcmdlX3doZW5fdGd0X21hdGNoZWQgb3B0X21lcmdlX3doZW5fY29uZGl0aW9uIFRIRU4gRE8g Tk9USElORwogCQkJCXsKIAkJCQkJTWVyZ2VXaGVuQ2xhdXNlICptID0gbWFrZU5vZGUoTWVyZ2VX aGVuQ2xhdXNlKTsKIAotCQkJCQltLT5tYXRjaGVkID0gdHJ1ZTsKKwkJCQkJbS0+bWF0Y2hLaW5k ID0gJDE7CiAJCQkJCW0tPmNvbW1hbmRUeXBlID0gQ01EX05PVEhJTkc7Ci0JCQkJCW0tPmNvbmRp dGlvbiA9ICQzOworCQkJCQltLT5jb25kaXRpb24gPSAkMjsKIAogCQkJCQkkJCA9IChOb2RlICop IG07CiAJCQkJfQotCQkJfCBXSEVOIE5PVCBNQVRDSEVEIG9wdF9tZXJnZV93aGVuX2NvbmRpdGlv biBUSEVOIERPIE5PVEhJTkcKKwkJCXwgbWVyZ2Vfd2hlbl90Z3Rfbm90X21hdGNoZWQgb3B0X21l cmdlX3doZW5fY29uZGl0aW9uIFRIRU4gRE8gTk9USElORwogCQkJCXsKIAkJCQkJTWVyZ2VXaGVu Q2xhdXNlICptID0gbWFrZU5vZGUoTWVyZ2VXaGVuQ2xhdXNlKTsKIAotCQkJCQltLT5tYXRjaGVk ID0gZmFsc2U7CisJCQkJCW0tPm1hdGNoS2luZCA9ICQxOwogCQkJCQltLT5jb21tYW5kVHlwZSA9 IENNRF9OT1RISU5HOwotCQkJCQltLT5jb25kaXRpb24gPSAkNDsKKwkJCQkJbS0+Y29uZGl0aW9u ID0gJDI7CiAKIAkJCQkJJCQgPSAoTm9kZSAqKSBtOwogCQkJCX0KIAkJOwogCittZXJnZV93aGVu X3RndF9tYXRjaGVkOgorCQkJV0hFTiBNQVRDSEVECQkJCQl7ICQkID0gTUVSR0VfV0hFTl9NQVRD SEVEOyB9CisJCQl8IFdIRU4gTk9UIE1BVENIRUQgQlkgU09VUkNFCXsgJCQgPSBNRVJHRV9XSEVO X05PVF9NQVRDSEVEX0JZX1NPVVJDRTsgfQorCQk7CisKK21lcmdlX3doZW5fdGd0X25vdF9tYXRj aGVkOgorCQkJV0hFTiBOT1QgTUFUQ0hFRAkJCQl7ICQkID0gTUVSR0VfV0hFTl9OT1RfTUFUQ0hF RF9CWV9UQVJHRVQ7IH0KKwkJCXwgV0hFTiBOT1QgTUFUQ0hFRCBCWSBUQVJHRVQJeyAkJCA9IE1F UkdFX1dIRU5fTk9UX01BVENIRURfQllfVEFSR0VUOyB9CisJCTsKKwogb3B0X21lcmdlX3doZW5f Y29uZGl0aW9uOgogCQkJQU5EIGFfZXhwcgkJCQl7ICQkID0gJDI7IH0KIAkJCXwJCQkJCQl7ICQk ID0gTlVMTDsgfQpAQCAtMTczOTQsNiArMTc0MTIsNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJ CQl8IFNJTVBMRQogCQkJfCBTS0lQCiAJCQl8IFNOQVBTSE9UCisJCQl8IFNPVVJDRQogCQkJfCBT UUxfUAogCQkJfCBTVEFCTEUKIAkJCXwgU1RBTkRBTE9ORV9QCkBAIC0xNzQxMiw2ICsxNzQzMSw3 IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgU1lTVEVNX1AKIAkJCXwgVEFCTEVTCiAJCQl8 IFRBQkxFU1BBQ0UKKwkJCXwgVEFSR0VUCiAJCQl8IFRFTVAKIAkJCXwgVEVNUExBVEUKIAkJCXwg VEVNUE9SQVJZCkBAIC0xODAwNyw2ICsxODAyNyw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJ CXwgU01BTExJTlQKIAkJCXwgU05BUFNIT1QKIAkJCXwgU09NRQorCQkJfCBTT1VSQ0UKIAkJCXwg U1FMX1AKIAkJCXwgU1RBQkxFCiAJCQl8IFNUQU5EQUxPTkVfUApAQCAtMTgwMzAsNiArMTgwNTEs NyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IFRBQkxFUwogCQkJfCBUQUJMRVNBTVBMRQog CQkJfCBUQUJMRVNQQUNFCisJCQl8IFRBUkdFVAogCQkJfCBURU1QCiAJCQl8IFRFTVBMQVRFCiAJ CQl8IFRFTVBPUkFSWQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21lcmdl LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCBhN2Q4YmE3Li4yNzJjZWY1Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9t ZXJnZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJnZS5jCkBAIC00MCw5ICs0 MCw5IEBAIHN0YXRpYyB2b2lkIHNldE5hbWVzcGFjZVZpc2liaWxpdHlGb3JSVEUKICAqIE1ha2Ug YXBwcm9wcmlhdGUgY2hhbmdlcyB0byB0aGUgbmFtZXNwYWNlIHZpc2liaWxpdHkgd2hpbGUgdHJh bnNmb3JtaW5nCiAgKiBpbmRpdmlkdWFsIGFjdGlvbidzIHF1YWxzIGFuZCB0YXJnZXRsaXN0IGV4 cHJlc3Npb25zLiBJbiBwYXJ0aWN1bGFyLCBmb3IKICAqIElOU0VSVCBhY3Rpb25zIHdlIG11c3Qg b25seSBzZWUgdGhlIHNvdXJjZSByZWxhdGlvbiAoc2luY2UgSU5TRVJUIGFjdGlvbiBpcwotICog aW52b2tlZCBmb3IgTk9UIE1BVENIRUQgdHVwbGVzIGFuZCBoZW5jZSB0aGVyZSBpcyBubyB0YXJn ZXQgdHVwbGUgdG8gZGVhbAotICogd2l0aCkuIE9uIHRoZSBvdGhlciBoYW5kLCBVUERBVEUgYW5k IERFTEVURSBhY3Rpb25zIGNhbiBzZWUgYm90aCBzb3VyY2UgYW5kCi0gKiB0YXJnZXQgcmVsYXRp b25zLgorICogaW52b2tlZCBmb3IgTk9UIE1BVENIRUQgW0JZIFRBUkdFVF0gdHVwbGVzIGFuZCBo ZW5jZSB0aGVyZSBpcyBubyB0YXJnZXQKKyAqIHR1cGxlIHRvIGRlYWwgd2l0aCkuIE9uIHRoZSBv dGhlciBoYW5kLCBVUERBVEUgYW5kIERFTEVURSBhY3Rpb25zIGNhbiBzZWUKKyAqIGJvdGggc291 cmNlIGFuZCB0YXJnZXQgcmVsYXRpb25zLCB1bmxlc3MgaW52b2tlZCBmb3IgTk9UIE1BVENIRUQg QlkgU09VUkNFLgogICoKICAqIEFsc28sIHNpbmNlIHRoZSBpbnRlcm5hbCBqb2luIG5vZGUgY2Fu IGhpZGUgdGhlIHNvdXJjZSBhbmQgdGFyZ2V0CiAgKiByZWxhdGlvbnMsIHdlIG11c3QgZXhwbGlj aXRseSBtYWtlIHRoZSByZXNwZWN0aXZlIHJlbGF0aW9uIGFzIHZpc2libGUgc28KQEAgLTU4LDcg KzU4LDcgQEAgc2V0TmFtZXNwYWNlRm9yTWVyZ2VXaGVuKFBhcnNlU3RhdGUgKnBzdAogCXRhcmdl dFJlbFJURSA9IHJ0X2ZldGNoKHRhcmdldFJUSSwgcHN0YXRlLT5wX3J0YWJsZSk7CiAJc291cmNl UmVsUlRFID0gcnRfZmV0Y2goc291cmNlUlRJLCBwc3RhdGUtPnBfcnRhYmxlKTsKIAotCWlmICht ZXJnZVdoZW5DbGF1c2UtPm1hdGNoZWQpCisJaWYgKG1lcmdlV2hlbkNsYXVzZS0+bWF0Y2hLaW5k ID09IE1FUkdFX1dIRU5fTUFUQ0hFRCkKIAl7CiAJCUFzc2VydChtZXJnZVdoZW5DbGF1c2UtPmNv bW1hbmRUeXBlID09IENNRF9VUERBVEUgfHwKIAkJCSAgIG1lcmdlV2hlbkNsYXVzZS0+Y29tbWFu ZFR5cGUgPT0gQ01EX0RFTEVURSB8fApAQCAtNzAsMTEgKzcwLDI1IEBAIHNldE5hbWVzcGFjZUZv ck1lcmdlV2hlbihQYXJzZVN0YXRlICpwc3QKIAkJc2V0TmFtZXNwYWNlVmlzaWJpbGl0eUZvclJU RShwc3RhdGUtPnBfbmFtZXNwYWNlLAogCQkJCQkJCQkJIHNvdXJjZVJlbFJURSwgdHJ1ZSwgdHJ1 ZSk7CiAJfQotCWVsc2UKKwllbHNlIGlmIChtZXJnZVdoZW5DbGF1c2UtPm1hdGNoS2luZCA9PSBN RVJHRV9XSEVOX05PVF9NQVRDSEVEX0JZX1NPVVJDRSkKIAl7CiAJCS8qCi0JCSAqIE5PVCBNQVRD SEVEIGFjdGlvbnMgY2FuJ3Qgc2VlIHRhcmdldCByZWxhdGlvbiwgYnV0IHRoZXkgY2FuIHNlZQot CQkgKiBzb3VyY2UgcmVsYXRpb24uCisJCSAqIE5PVCBNQVRDSEVEIEJZIFNPVVJDRSBhY3Rpb25z IGNhbiBzZWUgdGhlIHRhcmdldCByZWxhdGlvbiwgYnV0IHRoZXkKKwkJICogY2FuJ3Qgc2VlIHRo ZSBzb3VyY2UgcmVsYXRpb24uCisJCSAqLworCQlBc3NlcnQobWVyZ2VXaGVuQ2xhdXNlLT5jb21t YW5kVHlwZSA9PSBDTURfVVBEQVRFIHx8CisJCQkgICBtZXJnZVdoZW5DbGF1c2UtPmNvbW1hbmRU eXBlID09IENNRF9ERUxFVEUgfHwKKwkJCSAgIG1lcmdlV2hlbkNsYXVzZS0+Y29tbWFuZFR5cGUg PT0gQ01EX05PVEhJTkcpOworCQlzZXROYW1lc3BhY2VWaXNpYmlsaXR5Rm9yUlRFKHBzdGF0ZS0+ cF9uYW1lc3BhY2UsCisJCQkJCQkJCQkgdGFyZ2V0UmVsUlRFLCB0cnVlLCB0cnVlKTsKKwkJc2V0 TmFtZXNwYWNlVmlzaWJpbGl0eUZvclJURShwc3RhdGUtPnBfbmFtZXNwYWNlLAorCQkJCQkJCQkJ IHNvdXJjZVJlbFJURSwgZmFsc2UsIGZhbHNlKTsKKwl9CisJZWxzZQkJCQkJCS8qIE1FUkdFX1dI RU5fTk9UX01BVENIRURfQllfVEFSR0VUICovCisJeworCQkvKgorCQkgKiBOT1QgTUFUQ0hFRCBb QlkgVEFSR0VUXSBhY3Rpb25zIGNhbid0IHNlZSB0YXJnZXQgcmVsYXRpb24sIGJ1dCB0aGV5CisJ CSAqIGNhbiBzZWUgc291cmNlIHJlbGF0aW9uLgogCQkgKi8KIAkJQXNzZXJ0KG1lcmdlV2hlbkNs YXVzZS0+Y29tbWFuZFR5cGUgPT0gQ01EX0lOU0VSVCB8fAogCQkJICAgbWVyZ2VXaGVuQ2xhdXNl LT5jb21tYW5kVHlwZSA9PSBDTURfTk9USElORyk7CkBAIC05NSwxMCArMTA5LDkgQEAgdHJhbnNm b3JtTWVyZ2VTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTQogCVF1ZXJ5CSAgICpxcnkgPSBtYWtl Tm9kZShRdWVyeSk7CiAJTGlzdENlbGwgICAqbDsKIAlBY2xNb2RlCQl0YXJnZXRQZXJtcyA9IEFD TF9OT19SSUdIVFM7Ci0JYm9vbAkJaXNfdGVybWluYWxbMl07CisJYm9vbAkJaXNfdGVybWluYWxb M107CiAJSW5kZXgJCXNvdXJjZVJUSTsKIAlMaXN0CSAgICptZXJnZUFjdGlvbkxpc3Q7Ci0JTm9k ZQkgICAqam9pbkV4cHI7CiAJUGFyc2VOYW1lc3BhY2VJdGVtICpuc2l0ZW07CiAKIAkvKiBUaGVy ZSBjYW4ndCBiZSBhbnkgb3V0ZXIgV0lUSCB0byB3b3JyeSBhYm91dCAqLwpAQCAtMTIyLDEyICsx MzUsMTIgQEAgdHJhbnNmb3JtTWVyZ2VTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTQogCS8qCiAJ ICogQ2hlY2sgV0hFTiBjbGF1c2VzIGZvciBwZXJtaXNzaW9ucyBhbmQgc2FuaXR5CiAJICovCi0J aXNfdGVybWluYWxbMF0gPSBmYWxzZTsKLQlpc190ZXJtaW5hbFsxXSA9IGZhbHNlOworCWlzX3Rl cm1pbmFsW01FUkdFX1dIRU5fTUFUQ0hFRF0gPSBmYWxzZTsKKwlpc190ZXJtaW5hbFtNRVJHRV9X SEVOX05PVF9NQVRDSEVEX0JZX1NPVVJDRV0gPSBmYWxzZTsKKwlpc190ZXJtaW5hbFtNRVJHRV9X SEVOX05PVF9NQVRDSEVEX0JZX1RBUkdFVF0gPSBmYWxzZTsKIAlmb3JlYWNoKGwsIHN0bXQtPm1l cmdlV2hlbkNsYXVzZXMpCiAJewogCQlNZXJnZVdoZW5DbGF1c2UgKm1lcmdlV2hlbkNsYXVzZSA9 IChNZXJnZVdoZW5DbGF1c2UgKikgbGZpcnN0KGwpOwotCQlpbnQJCQl3aGVuX3R5cGUgPSAobWVy Z2VXaGVuQ2xhdXNlLT5tYXRjaGVkID8gMCA6IDEpOwogCiAJCS8qCiAJCSAqIENvbGxlY3QgcGVy bWlzc2lvbnMgdG8gY2hlY2ssIGFjY29yZGluZyB0byBhY3Rpb24gdHlwZXMuIFdlIHJlcXVpcmUK QEAgLTE1NywxMiArMTcwLDEyIEBAIHRyYW5zZm9ybU1lcmdlU3RtdChQYXJzZVN0YXRlICpwc3Rh dGUsIE0KIAkJLyoKIAkJICogQ2hlY2sgZm9yIHVucmVhY2hhYmxlIFdIRU4gY2xhdXNlcwogCQkg Ki8KLQkJaWYgKGlzX3Rlcm1pbmFsW3doZW5fdHlwZV0pCisJCWlmIChpc190ZXJtaW5hbFttZXJn ZVdoZW5DbGF1c2UtPm1hdGNoS2luZF0pCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29k ZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCiAJCQkJCSBlcnJtc2coInVucmVhY2hhYmxlIFdIRU4g Y2xhdXNlIHNwZWNpZmllZCBhZnRlciB1bmNvbmRpdGlvbmFsIFdIRU4gY2xhdXNlIikpKTsKIAkJ aWYgKG1lcmdlV2hlbkNsYXVzZS0+Y29uZGl0aW9uID09IE5VTEwpCi0JCQlpc190ZXJtaW5hbFt3 aGVuX3R5cGVdID0gdHJ1ZTsKKwkJCWlzX3Rlcm1pbmFsW21lcmdlV2hlbkNsYXVzZS0+bWF0Y2hL aW5kXSA9IHRydWU7CiAJfQogCiAJLyoKQEAgLTIyMywxNiArMjM2LDE1IEBAIHRyYW5zZm9ybU1l cmdlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIE0KIAkgKiBzaWRlLCBzbyBhZGQgdGhhdCB0byB0 aGUgbmFtZXNwYWNlLgogCSAqLwogCWFkZE5TSXRlbVRvUXVlcnkocHN0YXRlLCBwc3RhdGUtPnBf dGFyZ2V0X25zaXRlbSwgZmFsc2UsIHRydWUsIHRydWUpOwotCWpvaW5FeHByID0gdHJhbnNmb3Jt RXhwcihwc3RhdGUsIHN0bXQtPmpvaW5Db25kaXRpb24sCi0JCQkJCQkJIEVYUFJfS0lORF9KT0lO X09OKTsKKwlxcnktPm1lcmdlSm9pbkNvbmRpdGlvbiA9IHRyYW5zZm9ybUV4cHIocHN0YXRlLCBz dG10LT5qb2luQ29uZGl0aW9uLAorCQkJCQkJCQkJCQlFWFBSX0tJTkRfSk9JTl9PTik7CiAKIAkv KgogCSAqIENyZWF0ZSB0aGUgdGVtcG9yYXJ5IHF1ZXJ5J3Mgam9pbnRyZWUgdXNpbmcgdGhlIGpv aW5saXN0IHdlIGJ1aWx0IHVzaW5nCi0JICoganVzdCB0aGUgc291cmNlIHJlbGF0aW9uOyB0aGUg dGFyZ2V0IHJlbGF0aW9uIGlzIG5vdCBpbmNsdWRlZC4gIFRoZQotCSAqIHF1YWxzIHdlIHVzZSBh cmUgdGhlIGpvaW4gY29uZGl0aW9ucyB0byB0aGUgbWVyZ2UgdGFyZ2V0LiAgVGhlIGpvaW4KKwkg KiBqdXN0IHRoZSBzb3VyY2UgcmVsYXRpb247IHRoZSB0YXJnZXQgcmVsYXRpb24gaXMgbm90IGlu Y2x1ZGVkLiBUaGUgam9pbgogCSAqIHdpbGwgYmUgY29uc3RydWN0ZWQgZnVsbHkgYnkgdHJhbnNm b3JtX01FUkdFX3RvX2pvaW4uCiAJICovCi0JcXJ5LT5qb2ludHJlZSA9IG1ha2VGcm9tRXhwcihw c3RhdGUtPnBfam9pbmxpc3QsIGpvaW5FeHByKTsKKwlxcnktPmpvaW50cmVlID0gbWFrZUZyb21F eHByKHBzdGF0ZS0+cF9qb2lubGlzdCwgTlVMTCk7CiAKIAkvKgogCSAqIFdlIG5vdyBoYXZlIGEg Z29vZCBxdWVyeSBzaGFwZSwgc28gbm93IGxvb2sgYXQgdGhlIFdIRU4gY29uZGl0aW9ucyBhbmQK QEAgLTI1NiwxMSArMjY4LDcgQEAgdHJhbnNmb3JtTWVyZ2VTdG10KFBhcnNlU3RhdGUgKnBzdGF0 ZSwgTQogCiAJCWFjdGlvbiA9IG1ha2VOb2RlKE1lcmdlQWN0aW9uKTsKIAkJYWN0aW9uLT5jb21t YW5kVHlwZSA9IG1lcmdlV2hlbkNsYXVzZS0+Y29tbWFuZFR5cGU7Ci0JCWFjdGlvbi0+bWF0Y2hl ZCA9IG1lcmdlV2hlbkNsYXVzZS0+bWF0Y2hlZDsKLQotCQkvKiBVc2UgYW4gb3V0ZXIgam9pbiBp ZiBhbnkgSU5TRVJUIGFjdGlvbnMgZXhpc3QgaW4gdGhlIGNvbW1hbmQuICovCi0JCWlmIChhY3Rp b24tPmNvbW1hbmRUeXBlID09IENNRF9JTlNFUlQpCi0JCQlxcnktPm1lcmdlVXNlT3V0ZXJKb2lu ID0gdHJ1ZTsKKwkJYWN0aW9uLT5tYXRjaEtpbmQgPSBtZXJnZVdoZW5DbGF1c2UtPm1hdGNoS2lu ZDsKIAogCQkvKgogCQkgKiBTZXQgbmFtZXNwYWNlIGZvciB0aGUgc3BlY2lmaWMgYWN0aW9uLiBU aGlzIG11c3QgYmUgZG9uZSBiZWZvcmUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAyYTFlZTY5Li4zYzY0MjczCi0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxz LmMKQEAgLTcwOTAsNiArNzA5MCw3IEBAIGdldF9tZXJnZV9xdWVyeV9kZWYoUXVlcnkgKnF1ZXJ5 LCBkZXBhcnMKIAlTdHJpbmdJbmZvCWJ1ZiA9IGNvbnRleHQtPmJ1ZjsKIAlSYW5nZVRibEVudHJ5 ICpydGU7CiAJTGlzdENlbGwgICAqbGM7CisJYm9vbAkJaGF2ZU5vdE1hdGNoZWRCeVNvdXJjZTsK IAogCS8qIEluc2VydCB0aGUgV0lUSCBjbGF1c2UgaWYgZ2l2ZW4gKi8KIAlnZXRfd2l0aF9jbGF1 c2UocXVlcnksIGNvbnRleHQpOwpAQCAtNzExNSw3ICs3MTE2LDI2IEBAIGdldF9tZXJnZV9xdWVy eV9kZWYoUXVlcnkgKnF1ZXJ5LCBkZXBhcnMKIAlnZXRfZnJvbV9jbGF1c2UocXVlcnksICIgVVNJ TkcgIiwgY29udGV4dCk7CiAJYXBwZW5kQ29udGV4dEtleXdvcmQoY29udGV4dCwgIiBPTiAiLAog CQkJCQkJIC1QUkVUVFlJTkRFTlRfU1RELCBQUkVUVFlJTkRFTlRfU1RELCAyKTsKLQlnZXRfcnVs ZV9leHByKHF1ZXJ5LT5qb2ludHJlZS0+cXVhbHMsIGNvbnRleHQsIGZhbHNlKTsKKwlnZXRfcnVs ZV9leHByKHF1ZXJ5LT5tZXJnZUpvaW5Db25kaXRpb24sIGNvbnRleHQsIGZhbHNlKTsKKworCS8q CisJICogVGVzdCBmb3IgYW55IE5PVCBNQVRDSEVEIEJZIFNPVVJDRSBhY3Rpb25zLiAgSWYgdGhl cmUgYXJlIG5vbmUsIHRoZW4KKwkgKiBhbnkgTk9UIE1BVENIRUQgQlkgVEFSR0VUIGFjdGlvbnMg YXJlIG91dHB1dCBhcyAiV0hFTiBOT1QgTUFUQ0hFRCIsIHBlcgorCSAqIFNRTCBzdGFuZGFyZC4g IE90aGVyd2lzZSwgd2UgaGF2ZSBhIG5vbi1TUUwtc3RhbmRhcmQgcXVlcnksIHNvIG91dHB1dAor CSAqICJCWSBTT1VSQ0UiIC8gIkJZIFRBUkdFVCIgcXVhbGlmaWVycyBmb3IgYWxsIE5PVCBNQVRD SEVEIGFjdGlvbnMsIHRvIGJlCisJICogbW9yZSBleHBsaWNpdC4KKwkgKi8KKwloYXZlTm90TWF0 Y2hlZEJ5U291cmNlID0gZmFsc2U7CisJZm9yZWFjaChsYywgcXVlcnktPm1lcmdlQWN0aW9uTGlz dCkKKwl7CisJCU1lcmdlQWN0aW9uICphY3Rpb24gPSBsZmlyc3Rfbm9kZShNZXJnZUFjdGlvbiwg bGMpOworCisJCWlmIChhY3Rpb24tPm1hdGNoS2luZCA9PSBNRVJHRV9XSEVOX05PVF9NQVRDSEVE X0JZX1NPVVJDRSkKKwkJeworCQkJaGF2ZU5vdE1hdGNoZWRCeVNvdXJjZSA9IHRydWU7CisJCQli cmVhazsKKwkJfQorCX0KIAogCS8qIFByaW50IGVhY2ggbWVyZ2UgYWN0aW9uICovCiAJZm9yZWFj aChsYywgcXVlcnktPm1lcmdlQWN0aW9uTGlzdCkKQEAgLTcxMjQsNyArNzE0NCwyNCBAQCBnZXRf bWVyZ2VfcXVlcnlfZGVmKFF1ZXJ5ICpxdWVyeSwgZGVwYXJzCiAKIAkJYXBwZW5kQ29udGV4dEtl eXdvcmQoY29udGV4dCwgIiBXSEVOICIsCiAJCQkJCQkJIC1QUkVUVFlJTkRFTlRfU1RELCBQUkVU VFlJTkRFTlRfU1RELCAyKTsKLQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIlc01BVENIRUQiLCBh Y3Rpb24tPm1hdGNoZWQgPyAiIiA6ICJOT1QgIik7CisJCXN3aXRjaCAoYWN0aW9uLT5tYXRjaEtp bmQpCisJCXsKKwkJCWNhc2UgTUVSR0VfV0hFTl9NQVRDSEVEOgorCQkJCWFwcGVuZFN0cmluZ0lu Zm8oYnVmLCAiTUFUQ0hFRCIpOworCQkJCWJyZWFrOworCQkJY2FzZSBNRVJHRV9XSEVOX05PVF9N QVRDSEVEX0JZX1NPVVJDRToKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIk5PVCBNQVRDSEVE IEJZIFNPVVJDRSIpOworCQkJCWJyZWFrOworCQkJY2FzZSBNRVJHRV9XSEVOX05PVF9NQVRDSEVE X0JZX1RBUkdFVDoKKwkJCQlpZiAoaGF2ZU5vdE1hdGNoZWRCeVNvdXJjZSkKKwkJCQkJYXBwZW5k U3RyaW5nSW5mbyhidWYsICJOT1QgTUFUQ0hFRCBCWSBUQVJHRVQiKTsKKwkJCQllbHNlCisJCQkJ CWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiTk9UIE1BVENIRUQiKTsKKwkJCQlicmVhazsKKwkJCWRl ZmF1bHQ6CisJCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBtYXRjaEtpbmQ6ICVkIiwKKwkJ CQkJIChpbnQpIGFjdGlvbi0+bWF0Y2hLaW5kKTsKKwkJfQogCiAJCWlmIChhY3Rpb24tPnF1YWwp CiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYyBiL3NyYy9iaW4v cHNxbC90YWItY29tcGxldGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MzEzM2NlLi5l ZDJjYjE5Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYworKysgYi9zcmMvYmluL3Bz cWwvdGFiLWNvbXBsZXRlLmMKQEAgLTQzMzMsMTcgKzQzMzMsMzUgQEAgcHNxbF9jb21wbGV0aW9u KGNvbnN0IGNoYXIgKnRleHQsIGludCBzdAogCQkJIFRhaWxNYXRjaGVzKCJVU0lORyIsIE1hdGNo QW55LCBNYXRjaEFueSwgIk9OIiwgTWF0Y2hBbnksIE1hdGNoQW55LCBNYXRjaEFueSwgIldIRU4i KSkKIAkJQ09NUExFVEVfV0lUSCgiTUFUQ0hFRCIsICJOT1QgTUFUQ0hFRCIpOwogCi0JLyogQ29t cGxldGUgLi4uIFdIRU4gW05PVF0gTUFUQ0hFRCB3aXRoIFRIRU4vQU5EICovCisJLyoKKwkgKiBD b21wbGV0ZSAuLi4gV0hFTiBNQVRDSEVEIGFuZCBXSEVOIE5PVCBNQVRDSEVEIEJZIFNPVVJDRXxU QVJHRVQgd2l0aAorCSAqIFRIRU4vQU5ECisJICovCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIldI RU4iLCAiTUFUQ0hFRCIpIHx8Ci0JCQkgVGFpbE1hdGNoZXMoIldIRU4iLCAiTk9UIiwgIk1BVENI RUQiKSkKKwkJCSBUYWlsTWF0Y2hlcygiV0hFTiIsICJOT1QiLCAiTUFUQ0hFRCIsICJCWSIsICJT T1VSQ0V8VEFSR0VUIikpCiAJCUNPTVBMRVRFX1dJVEgoIlRIRU4iLCAiQU5EIik7CiAKLQkvKiBD b21wbGV0ZSAuLi4gV0hFTiBNQVRDSEVEIFRIRU4gd2l0aCBVUERBVEUgU0VUL0RFTEVURS9ETyBO T1RISU5HICovCi0JZWxzZSBpZiAoVGFpbE1hdGNoZXMoIldIRU4iLCAiTUFUQ0hFRCIsICJUSEVO IikpCisJLyogQ29tcGxldGUgLi4uIFdIRU4gTk9UIE1BVENIRUQgd2l0aCBCWS9USEVOL0FORCAq LworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJXSEVOIiwgIk5PVCIsICJNQVRDSEVEIikpCisJCUNP TVBMRVRFX1dJVEgoIkJZIiwgIlRIRU4iLCAiQU5EIik7CisKKwkvKiBDb21wbGV0ZSAuLi4gV0hF TiBOT1QgTUFUQ0hFRCBCWSB3aXRoIFNPVVJDRS9UQVJHRVQgKi8KKwllbHNlIGlmIChUYWlsTWF0 Y2hlcygiV0hFTiIsICJOT1QiLCAiTUFUQ0hFRCIsICJCWSIpKQorCQlDT01QTEVURV9XSVRIKCJT T1VSQ0UiLCAiVEFSR0VUIik7CisKKwkvKgorCSAqIENvbXBsZXRlIC4uLiBXSEVOIE1BVENIRUQg VEhFTiBhbmQgV0hFTiBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0UgVEhFTiB3aXRoCisJICogVVBEQVRF IFNFVC9ERUxFVEUvRE8gTk9USElORworCSAqLworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJXSEVO IiwgIk1BVENIRUQiLCAiVEhFTiIpIHx8CisJCQkgVGFpbE1hdGNoZXMoIldIRU4iLCAiTk9UIiwg Ik1BVENIRUQiLCAiQlkiLCAiU09VUkNFIiwgIlRIRU4iKSkKIAkJQ09NUExFVEVfV0lUSCgiVVBE QVRFIFNFVCIsICJERUxFVEUiLCAiRE8gTk9USElORyIpOwogCi0JLyogQ29tcGxldGUgLi4uIFdI RU4gTk9UIE1BVENIRUQgVEhFTiB3aXRoIElOU0VSVC9ETyBOT1RISU5HICovCi0JZWxzZSBpZiAo VGFpbE1hdGNoZXMoIldIRU4iLCAiTk9UIiwgIk1BVENIRUQiLCAiVEhFTiIpKQorCS8qCisJICog Q29tcGxldGUgLi4uIFdIRU4gTk9UIE1BVENIRUQgW0JZIFRBUkdFVF0gVEhFTiB3aXRoIElOU0VS VC9ETyBOT1RISU5HCisJICovCisJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIldIRU4iLCAiTk9UIiwg Ik1BVENIRUQiLCAiVEhFTiIpIHx8CisJCQkgVGFpbE1hdGNoZXMoIldIRU4iLCAiTk9UIiwgIk1B VENIRUQiLCAiQlkiLCAiVEFSR0VUIiwgIlRIRU4iKSkKIAkJQ09NUExFVEVfV0lUSCgiSU5TRVJU IiwgIkRPIE5PVEhJTkciKTsKIAogLyogTk9USUZZIC0tLSBjYW4gYmUgaW5zaWRlIEVYUExBSU4s IFJVTEUsIGV0YyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCA0NDRhNWYwLi45ZjY1Y2ZiCi0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCisr KyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBAIC01NDQsOSArNTQ0LDExIEBAIHR5 cGVkZWYgc3RydWN0IFJlc3VsdFJlbEluZm8KIAkvKiBPTiBDT05GTElDVCBldmFsdWF0aW9uIHN0 YXRlICovCiAJT25Db25mbGljdFNldFN0YXRlICpyaV9vbkNvbmZsaWN0OwogCi0JLyogZm9yIE1F UkdFLCBsaXN0cyBvZiBNZXJnZUFjdGlvblN0YXRlICovCi0JTGlzdAkgICAqcmlfbWF0Y2hlZE1l cmdlQWN0aW9uOwotCUxpc3QJICAgKnJpX25vdE1hdGNoZWRNZXJnZUFjdGlvbjsKKwkvKiBmb3Ig TUVSR0UsIGxpc3RzIG9mIE1lcmdlQWN0aW9uU3RhdGUgKG9uZSBwZXIgTWVyZ2VNYXRjaEtpbmQp ICovCisJTGlzdAkgICAqcmlfTWVyZ2VBY3Rpb25zWzNdOworCisJLyogZm9yIE1FUkdFLCBqb2lu IGNvbmRpdGlvbi1jaGVja2luZyBleHByIHN0YXRlICovCisJRXhwclN0YXRlICAqcmlfTWVyZ2VK b2luQ29uZGl0aW9uOwogCiAJLyogcGFydGl0aW9uIGNoZWNrIGV4cHJlc3Npb24gc3RhdGUgKE5V TEwgaWYgbm90IHNldCB1cCB5ZXQpICovCiAJRXhwclN0YXRlICAqcmlfUGFydGl0aW9uQ2hlY2tF eHByOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIzODA4 MjEuLjdjNTUzYTYKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMTc1LDggKzE3NSw2IEBAIHR5cGVkZWYg c3RydWN0IFF1ZXJ5CiAJCQkJCQkJCSAqIGFsc28gVVNJTkcgY2xhdXNlIGZvciBNRVJHRSAqLwog CiAJTGlzdAkgICAqbWVyZ2VBY3Rpb25MaXN0OwkvKiBsaXN0IG9mIGFjdGlvbnMgZm9yIE1FUkdF IChvbmx5KSAqLwotCS8qIHdoZXRoZXIgdG8gdXNlIG91dGVyIGpvaW4gKi8KLQlib29sCQltZXJn ZVVzZU91dGVySm9pbiBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAKIAkvKgog CSAqIHJ0YWJsZSBpbmRleCBvZiB0YXJnZXQgcmVsYXRpb24gZm9yIE1FUkdFIHRvIHB1bGwgZGF0 YS4gSW5pdGlhbGx5LCB0aGlzCkBAIC0xODYsNiArMTg0LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgUXVl cnkKIAkgKi8KIAlpbnQJCQltZXJnZVRhcmdldFJlbGF0aW9uIHBnX25vZGVfYXR0cihxdWVyeV9q dW1ibGVfaWdub3JlKTsKIAorCS8qIGpvaW4gY29uZGl0aW9uIGJldHdlZW4gc291cmNlIGFuZCB0 YXJnZXQgZm9yIE1FUkdFICovCisJTm9kZQkgICAqbWVyZ2VKb2luQ29uZGl0aW9uOworCiAJTGlz dAkgICAqdGFyZ2V0TGlzdDsJCS8qIHRhcmdldCBsaXN0IChvZiBUYXJnZXRFbnRyeSkgKi8KIAog CS8qIE9WRVJSSURJTkcgY2xhdXNlICovCkBAIC0xNjc2LDcgKzE2NzcsNyBAQCB0eXBlZGVmIHN0 cnVjdCBDb21tb25UYWJsZUV4cHIKIHR5cGVkZWYgc3RydWN0IE1lcmdlV2hlbkNsYXVzZQogewog CU5vZGVUYWcJCXR5cGU7Ci0JYm9vbAkJbWF0Y2hlZDsJCS8qIHRydWU9TUFUQ0hFRCwgZmFsc2U9 Tk9UIE1BVENIRUQgKi8KKwlNZXJnZU1hdGNoS2luZCBtYXRjaEtpbmQ7CS8qIE1BVENIRUQvTk9U IE1BVENIRUQgQlkgU09VUkNFL1RBUkdFVCAqLwogCUNtZFR5cGUJCWNvbW1hbmRUeXBlOwkvKiBJ TlNFUlQvVVBEQVRFL0RFTEVURS9ETyBOT1RISU5HICovCiAJT3ZlcnJpZGluZ0tpbmQgb3ZlcnJp ZGU7CS8qIE9WRVJSSURJTkcgY2xhdXNlICovCiAJTm9kZQkgICAqY29uZGl0aW9uOwkJLyogV0hF TiBjb25kaXRpb25zIChyYXcgcGFyc2VyKSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9k ZXMvcGF0aG5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCA1MzQ2OTJiLi41Y2NmYTVmCi0tLSBhL3NyYy9pbmNsdWRlL25vZGVz L3BhdGhub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCkBAIC0yMzY3 LDYgKzIzNjcsOCBAQCB0eXBlZGVmIHN0cnVjdCBNb2RpZnlUYWJsZVBhdGgKIAlpbnQJCQllcHFQ YXJhbTsJCS8qIElEIG9mIFBhcmFtIGZvciBFdmFsUGxhblF1YWwgcmUtZXZhbCAqLwogCUxpc3QJ ICAgKm1lcmdlQWN0aW9uTGlzdHM7CS8qIHBlci10YXJnZXQtdGFibGUgbGlzdHMgb2YgYWN0aW9u cyBmb3IKIAkJCQkJCQkJCSAqIE1FUkdFICovCisJTGlzdAkgICAqbWVyZ2VKb2luQ29uZGl0aW9u czsJLyogcGVyLXRhcmdldC10YWJsZSBqb2luIGNvbmRpdGlvbnMKKwkJCQkJCQkJCQkgKiBmb3Ig TUVSR0UgKi8KIH0gTW9kaWZ5VGFibGVQYXRoOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvbm9kZXMvcGxhbm5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNGVmNmJjLi5lYmVmZDY1Ci0tLSBhL3NyYy9pbmNsdWRl L25vZGVzL3BsYW5ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCkBA IC0yNTEsNiArMjUxLDggQEAgdHlwZWRlZiBzdHJ1Y3QgTW9kaWZ5VGFibGUKIAlMaXN0CSAgICpl eGNsUmVsVGxpc3Q7CS8qIHRsaXN0IG9mIHRoZSBFWENMVURFRCBwc2V1ZG8gcmVsYXRpb24gKi8K IAlMaXN0CSAgICptZXJnZUFjdGlvbkxpc3RzOwkvKiBwZXItdGFyZ2V0LXRhYmxlIGxpc3RzIG9m IGFjdGlvbnMgZm9yCiAJCQkJCQkJCQkgKiBNRVJHRSAqLworCUxpc3QJICAgKm1lcmdlSm9pbkNv bmRpdGlvbnM7CS8qIHBlci10YXJnZXQtdGFibGUgam9pbiBjb25kaXRpb25zCisJCQkJCQkJCQkJ ICogZm9yIE1FUkdFICovCiB9IE1vZGlmeVRhYmxlOwogCiBzdHJ1Y3QgUGFydGl0aW9uUHJ1bmVJ bmZvOwkJLyogZm9yd2FyZCByZWZlcmVuY2UgdG8gc3RydWN0IGJlbG93ICovCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1u b2Rlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRhMTU0NjAuLmY3ZWViZDgKLS0tIGEv c3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJp bW5vZGVzLmgKQEAgLTE3MzIsMTAgKzE3MzIsMTggQEAgdHlwZWRlZiBzdHJ1Y3QgQm9vbGVhblRl c3QKICAqCiAgKiBUcmFuc2Zvcm1lZCByZXByZXNlbnRhdGlvbiBvZiBhIFdIRU4gY2xhdXNlIGlu IGEgTUVSR0Ugc3RhdGVtZW50CiAgKi8KKwordHlwZWRlZiBlbnVtIE1lcmdlTWF0Y2hLaW5kCit7 CisJTUVSR0VfV0hFTl9NQVRDSEVELAorCU1FUkdFX1dIRU5fTk9UX01BVENIRURfQllfU09VUkNF LAorCU1FUkdFX1dIRU5fTk9UX01BVENIRURfQllfVEFSR0VUCit9IE1lcmdlTWF0Y2hLaW5kOwor CiB0eXBlZGVmIHN0cnVjdCBNZXJnZUFjdGlvbgogewogCU5vZGVUYWcJCXR5cGU7Ci0JYm9vbAkJ bWF0Y2hlZDsJCS8qIHRydWU9TUFUQ0hFRCwgZmFsc2U9Tk9UIE1BVENIRUQgKi8KKwlNZXJnZU1h dGNoS2luZCBtYXRjaEtpbmQ7CS8qIE1BVENIRUQvTk9UIE1BVENIRUQgQlkgU09VUkNFL1RBUkdF VCAqLwogCUNtZFR5cGUJCWNvbW1hbmRUeXBlOwkvKiBJTlNFUlQvVVBEQVRFL0RFTEVURS9ETyBO T1RISU5HICovCiAJLyogT1ZFUlJJRElORyBjbGF1c2UgKi8KIAlPdmVycmlkaW5nS2luZCBvdmVy cmlkZSBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9vcHRpbWl6ZXIvcGF0aG5vZGUuaCBiL3NyYy9pbmNsdWRlL29wdGltaXplci9wYXRo bm9kZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM0M2Q5N2IuLjFiM2RkNTIKLS0tIGEv c3JjL2luY2x1ZGUvb3B0aW1pemVyL3BhdGhub2RlLmgKKysrIGIvc3JjL2luY2x1ZGUvb3B0aW1p emVyL3BhdGhub2RlLmgKQEAgLTI4Myw3ICsyODMsOCBAQCBleHRlcm4gTW9kaWZ5VGFibGVQYXRo ICpjcmVhdGVfbW9kaWZ5dGFiCiAJCQkJCQkJCQkJCQlMaXN0ICp1cGRhdGVDb2xub3NMaXN0cywK IAkJCQkJCQkJCQkJCUxpc3QgKndpdGhDaGVja09wdGlvbkxpc3RzLCBMaXN0ICpyZXR1cm5pbmdM aXN0cywKIAkJCQkJCQkJCQkJCUxpc3QgKnJvd01hcmtzLCBPbkNvbmZsaWN0RXhwciAqb25jb25m bGljdCwKLQkJCQkJCQkJCQkJCUxpc3QgKm1lcmdlQWN0aW9uTGlzdHMsIGludCBlcHFQYXJhbSk7 CisJCQkJCQkJCQkJCQlMaXN0ICptZXJnZUFjdGlvbkxpc3RzLCBMaXN0ICptZXJnZUpvaW5Db25k aXRpb25zLAorCQkJCQkJCQkJCQkJaW50IGVwcVBhcmFtKTsKIGV4dGVybiBMaW1pdFBhdGggKmNy ZWF0ZV9saW1pdF9wYXRoKFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpyZWwsCiAJCQkJ CQkJCQlQYXRoICpzdWJwYXRoLAogCQkJCQkJCQkJTm9kZSAqbGltaXRPZmZzZXQsIE5vZGUgKmxp bWl0Q291bnQsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMv aW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjMzMWFj YS4uYjdkNTUxNQotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2lu Y2x1ZGUvcGFyc2VyL2t3bGlzdC5oCkBAIC00MDMsNiArNDAzLDcgQEAgUEdfS0VZV09SRCgic2tp cCIsIFNLSVAsIFVOUkVTRVJWRURfS0VZVwogUEdfS0VZV09SRCgic21hbGxpbnQiLCBTTUFMTElO VCwgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInNuYXBzaG90Iiwg U05BUFNIT1QsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInNv bWUiLCBTT01FLCBSRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgic291 cmNlIiwgU09VUkNFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JE KCJzcWwiLCBTUUxfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09S RCgic3RhYmxlIiwgU1RBQkxFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19L RVlXT1JEKCJzdGFuZGFsb25lIiwgU1RBTkRBTE9ORV9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJB UkVfTEFCRUwpCkBAIC00MjYsNiArNDI3LDcgQEAgUEdfS0VZV09SRCgidGFibGUiLCBUQUJMRSwg UkVTRVJWRURfS0VZVwogUEdfS0VZV09SRCgidGFibGVzIiwgVEFCTEVTLCBVTlJFU0VSVkVEX0tF WVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ0YWJsZXNhbXBsZSIsIFRBQkxFU0FNUExF LCBUWVBFX0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidGFibGVz cGFjZSIsIFRBQkxFU1BBQ0UsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tF WVdPUkQoInRhcmdldCIsIFRBUkdFVCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQog UEdfS0VZV09SRCgidGVtcCIsIFRFTVAsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkK IFBHX0tFWVdPUkQoInRlbXBsYXRlIiwgVEVNUExBVEUsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFS RV9MQUJFTCkKIFBHX0tFWVdPUkQoInRlbXBvcmFyeSIsIFRFTVBPUkFSWSwgVU5SRVNFUlZFRF9L RVlXT1JELCBCQVJFX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVj dGVkL21lcmdlLXVwZGF0ZS5vdXQgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvbWVyZ2Ut dXBkYXRlLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNWY3ZTNiLi5mZTM2ODlmCi0t LSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9tZXJnZS11cGRhdGUub3V0CisrKyBiL3Ny Yy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9tZXJnZS11cGRhdGUub3V0CkBAIC0zNywxMyArMzcs MTUgQEAgc3RlcCBtZXJnZTJhOgogICBXSEVOIE5PVCBNQVRDSEVEIFRIRU4KIAlJTlNFUlQgVkFM VUVTIChzLmtleSwgcy52YWwpCiAgIFdIRU4gTUFUQ0hFRCBUSEVOCi0JVVBEQVRFIHNldCBrZXkg PSB0LmtleSArIDEsIHZhbCA9IHQudmFsIHx8ICcgdXBkYXRlZCBieSAnIHx8IHMudmFsOworCVVQ REFURSBzZXQga2V5ID0gdC5rZXkgKyAxLCB2YWwgPSB0LnZhbCB8fCAnIHVwZGF0ZWQgYnkgJyB8 fCBzLnZhbAorICBXSEVOIE5PVCBNQVRDSEVEIEJZIFNPVVJDRSBUSEVOCisJVVBEQVRFIHNldCBr ZXkgPSB0LmtleSArIDEsIHZhbCA9IHQudmFsIHx8ICcgc291cmNlIG5vdCBtYXRjaGVkIGJ5IG1l cmdlMmEnOwogCiBzdGVwIHNlbGVjdDI6IFNFTEVDVCAqIEZST00gdGFyZ2V0Owota2V5fHZhbCAg ICAgICAgICAgICAgICAgICAgIAotLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAyfHNl dHVwMSB1cGRhdGVkIGJ5IG1lcmdlMQotICAxfG1lcmdlMmEgICAgICAgICAgICAgICAgIAora2V5 fHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICAzfHNldHVwMSB1cGRhdGVkIGJ5IG1lcmdlMSBzb3VyY2Ugbm90IG1hdGNoZWQgYnkgbWVy Z2UyYQorICAxfG1lcmdlMmEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAogKDIgcm93cykKIAogc3RlcCBjMjogQ09NTUlUOwpAQCAtODYsMTUgKzg4LDE3IEBA IHN0ZXAgbWVyZ2UyYToKICAgV0hFTiBOT1QgTUFUQ0hFRCBUSEVOCiAJSU5TRVJUIFZBTFVFUyAo cy5rZXksIHMudmFsKQogICBXSEVOIE1BVENIRUQgVEhFTgotCVVQREFURSBzZXQga2V5ID0gdC5r ZXkgKyAxLCB2YWwgPSB0LnZhbCB8fCAnIHVwZGF0ZWQgYnkgJyB8fCBzLnZhbDsKKwlVUERBVEUg c2V0IGtleSA9IHQua2V5ICsgMSwgdmFsID0gdC52YWwgfHwgJyB1cGRhdGVkIGJ5ICcgfHwgcy52 YWwKKyAgV0hFTiBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0UgVEhFTgorCVVQREFURSBzZXQga2V5ID0g dC5rZXkgKyAxLCB2YWwgPSB0LnZhbCB8fCAnIHNvdXJjZSBub3QgbWF0Y2hlZCBieSBtZXJnZTJh JzsKICA8d2FpdGluZyAuLi4+CiBzdGVwIGMxOiBDT01NSVQ7CiBzdGVwIG1lcmdlMmE6IDwuLi4g Y29tcGxldGVkPgogc3RlcCBzZWxlY3QyOiBTRUxFQ1QgKiBGUk9NIHRhcmdldDsKLWtleXx2YWwg ICAgICAgICAgICAgICAgICAgICAKLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgMnxz ZXR1cDEgdXBkYXRlZCBieSBtZXJnZTEKLSAgMXxtZXJnZTJhICAgICAgICAgICAgICAgICAKK2tl eXx2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAgM3xzZXR1cDEgdXBkYXRlZCBieSBtZXJnZTEgc291cmNlIG5vdCBtYXRjaGVkIGJ5IG1l cmdlMmEKKyAgMXxtZXJnZTJhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKICgyIHJvd3MpCiAKIHN0ZXAgYzI6IENPTU1JVDsKQEAgLTExNiw3ICsxMjAsOSBA QCBzdGVwIG1lcmdlMmE6CiAgIFdIRU4gTk9UIE1BVENIRUQgVEhFTgogCUlOU0VSVCBWQUxVRVMg KHMua2V5LCBzLnZhbCkKICAgV0hFTiBNQVRDSEVEIFRIRU4KLQlVUERBVEUgc2V0IGtleSA9IHQu a2V5ICsgMSwgdmFsID0gdC52YWwgfHwgJyB1cGRhdGVkIGJ5ICcgfHwgcy52YWw7CisJVVBEQVRF IHNldCBrZXkgPSB0LmtleSArIDEsIHZhbCA9IHQudmFsIHx8ICcgdXBkYXRlZCBieSAnIHx8IHMu dmFsCisgIFdIRU4gTk9UIE1BVENIRUQgQlkgU09VUkNFIFRIRU4KKwlVUERBVEUgc2V0IGtleSA9 IHQua2V5ICsgMSwgdmFsID0gdC52YWwgfHwgJyBzb3VyY2Ugbm90IG1hdGNoZWQgYnkgbWVyZ2Uy YSc7CiAgPHdhaXRpbmcgLi4uPgogc3RlcCBhMTogQUJPUlQ7CiBzdGVwIG1lcmdlMmE6IDwuLi4g Y29tcGxldGVkPgpAQCAtMjA1LDE1ICsyMTEsMTcgQEAgc3RlcCBwYV9tZXJnZTJhOgogICBXSEVO IE5PVCBNQVRDSEVEIFRIRU4KIAlJTlNFUlQgVkFMVUVTIChzLmtleSwgcy52YWwpCiAgIFdIRU4g TUFUQ0hFRCBUSEVOCi0JVVBEQVRFIHNldCBrZXkgPSB0LmtleSArIDEsIHZhbCA9IHQudmFsIHx8 ICcgdXBkYXRlZCBieSAnIHx8IHMudmFsOworCVVQREFURSBzZXQga2V5ID0gdC5rZXkgKyAxLCB2 YWwgPSB0LnZhbCB8fCAnIHVwZGF0ZWQgYnkgJyB8fCBzLnZhbAorICBXSEVOIE5PVCBNQVRDSEVE IEJZIFNPVVJDRSBUSEVOCisJVVBEQVRFIHNldCBrZXkgPSB0LmtleSArIDEsIHZhbCA9IHQudmFs IHx8ICcgc291cmNlIG5vdCBtYXRjaGVkIGJ5IHBhX21lcmdlMmEnOwogIDx3YWl0aW5nIC4uLj4K IHN0ZXAgYzE6IENPTU1JVDsKIHN0ZXAgcGFfbWVyZ2UyYTogPC4uLiBjb21wbGV0ZWQ+CiBzdGVw IHBhX3NlbGVjdDI6IFNFTEVDVCAqIEZST00gcGFfdGFyZ2V0Owoga2V5fHZhbCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAtLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgMnxpbml0aWFsICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAyfGluaXRpYWwgdXBkYXRlZCBi eSBwYV9tZXJnZTEgdXBkYXRlZCBieSBwYV9tZXJnZTJhCisgIDN8aW5pdGlhbCBzb3VyY2Ugbm90 IG1hdGNoZWQgYnkgcGFfbWVyZ2UyYSAgICAgICAgICAKICgyIHJvd3MpCiAKIHN0ZXAgYzI6IENP TU1JVDsKQEAgLTIzNSw3ICsyNDMsOSBAQCBzdGVwIHBhX21lcmdlMmE6CiAgIFdIRU4gTk9UIE1B VENIRUQgVEhFTgogCUlOU0VSVCBWQUxVRVMgKHMua2V5LCBzLnZhbCkKICAgV0hFTiBNQVRDSEVE IFRIRU4KLQlVUERBVEUgc2V0IGtleSA9IHQua2V5ICsgMSwgdmFsID0gdC52YWwgfHwgJyB1cGRh dGVkIGJ5ICcgfHwgcy52YWw7CisJVVBEQVRFIHNldCBrZXkgPSB0LmtleSArIDEsIHZhbCA9IHQu dmFsIHx8ICcgdXBkYXRlZCBieSAnIHx8IHMudmFsCisgIFdIRU4gTk9UIE1BVENIRUQgQlkgU09V UkNFIFRIRU4KKwlVUERBVEUgc2V0IGtleSA9IHQua2V5ICsgMSwgdmFsID0gdC52YWwgfHwgJyBz b3VyY2Ugbm90IG1hdGNoZWQgYnkgcGFfbWVyZ2UyYSc7CiAgPHdhaXRpbmcgLi4uPgogc3RlcCBj MTogQ09NTUlUOwogc3RlcCBwYV9tZXJnZTJhOiA8Li4uIGNvbXBsZXRlZD4KQEAgLTI2MiwxNCAr MjcyLDE2IEBAIHN0ZXAgcGFfbWVyZ2UyYToKICAgV0hFTiBOT1QgTUFUQ0hFRCBUSEVOCiAJSU5T RVJUIFZBTFVFUyAocy5rZXksIHMudmFsKQogICBXSEVOIE1BVENIRUQgVEhFTgotCVVQREFURSBz ZXQga2V5ID0gdC5rZXkgKyAxLCB2YWwgPSB0LnZhbCB8fCAnIHVwZGF0ZWQgYnkgJyB8fCBzLnZh bDsKKwlVUERBVEUgc2V0IGtleSA9IHQua2V5ICsgMSwgdmFsID0gdC52YWwgfHwgJyB1cGRhdGVk IGJ5ICcgfHwgcy52YWwKKyAgV0hFTiBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0UgVEhFTgorCVVQREFU RSBzZXQga2V5ID0gdC5rZXkgKyAxLCB2YWwgPSB0LnZhbCB8fCAnIHNvdXJjZSBub3QgbWF0Y2hl ZCBieSBwYV9tZXJnZTJhJzsKIAogc3RlcCBwYV9zZWxlY3QyOiBTRUxFQ1QgKiBGUk9NIHBhX3Rh cmdldDsKLWtleXx2YWwgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotICAxfHBhX21lcmdlMmEgICAgICAgICAgICAgICAgICAKLSAgMnxp bml0aWFsICAgICAgICAgICAgICAgICAgICAgCi0gIDJ8aW5pdGlhbCB1cGRhdGVkIGJ5IHBhX21l cmdlMgora2V5fHZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIDF8cGFfbWVyZ2UyYSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAzfGluaXRpYWwgc291cmNlIG5v dCBtYXRjaGVkIGJ5IHBhX21lcmdlMmEgICAgICAgICAgICAgICAgICAgICAKKyAgM3xpbml0aWFs IHVwZGF0ZWQgYnkgcGFfbWVyZ2UyIHNvdXJjZSBub3QgbWF0Y2hlZCBieSBwYV9tZXJnZTJhCiAo MyByb3dzKQogCiBzdGVwIGMyOiBDT01NSVQ7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRp b24vc3BlY3MvbWVyZ2UtdXBkYXRlLnNwZWMgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3MvbWVy Z2UtdXBkYXRlLnNwZWMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2NjZDQ2Ni4uNjU3YjRh YwotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3MvbWVyZ2UtdXBkYXRlLnNwZWMKKysrIGIv c3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL21lcmdlLXVwZGF0ZS5zcGVjCkBAIC05Miw3ICs5Miw5 IEBAIHN0ZXAgIm1lcmdlMmEiCiAgIFdIRU4gTk9UIE1BVENIRUQgVEhFTgogCUlOU0VSVCBWQUxV RVMgKHMua2V5LCBzLnZhbCkKICAgV0hFTiBNQVRDSEVEIFRIRU4KLQlVUERBVEUgc2V0IGtleSA9 IHQua2V5ICsgMSwgdmFsID0gdC52YWwgfHwgJyB1cGRhdGVkIGJ5ICcgfHwgcy52YWw7CisJVVBE QVRFIHNldCBrZXkgPSB0LmtleSArIDEsIHZhbCA9IHQudmFsIHx8ICcgdXBkYXRlZCBieSAnIHx8 IHMudmFsCisgIFdIRU4gTk9UIE1BVENIRUQgQlkgU09VUkNFIFRIRU4KKwlVUERBVEUgc2V0IGtl eSA9IHQua2V5ICsgMSwgdmFsID0gdC52YWwgfHwgJyBzb3VyY2Ugbm90IG1hdGNoZWQgYnkgbWVy Z2UyYSc7CiB9CiBzdGVwICJtZXJnZTJiIgogewpAQCAtMTIyLDcgKzEyNCw5IEBAIHN0ZXAgInBh X21lcmdlMmEiCiAgIFdIRU4gTk9UIE1BVENIRUQgVEhFTgogCUlOU0VSVCBWQUxVRVMgKHMua2V5 LCBzLnZhbCkKICAgV0hFTiBNQVRDSEVEIFRIRU4KLQlVUERBVEUgc2V0IGtleSA9IHQua2V5ICsg MSwgdmFsID0gdC52YWwgfHwgJyB1cGRhdGVkIGJ5ICcgfHwgcy52YWw7CisJVVBEQVRFIHNldCBr ZXkgPSB0LmtleSArIDEsIHZhbCA9IHQudmFsIHx8ICcgdXBkYXRlZCBieSAnIHx8IHMudmFsCisg IFdIRU4gTk9UIE1BVENIRUQgQlkgU09VUkNFIFRIRU4KKwlVUERBVEUgc2V0IGtleSA9IHQua2V5 ICsgMSwgdmFsID0gdC52YWwgfHwgJyBzb3VyY2Ugbm90IG1hdGNoZWQgYnkgcGFfbWVyZ2UyYSc7 CiB9CiAjIE1FUkdFIHByb2NlZWRzIG9ubHkgaWYgJ3ZhbCcgdW5jaGFuZ2VkCiBzdGVwICJwYV9t ZXJnZTJiX3doZW4iCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL21lcmdl Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbWVyZ2Uub3V0Cm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IGUzZWJmNDYuLjE3YzBjYmEKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9tZXJnZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9tZXJnZS5vdXQK QEAgLTcyLDYgKzcyLDE1IEBAIFdIRU4gTUFUQ0hFRCBUSEVOCiBFUlJPUjogIHN5bnRheCBlcnJv ciBhdCBvciBuZWFyICJJTlNFUlQiCiBMSU5FIDU6ICBJTlNFUlQgREVGQVVMVCBWQUxVRVM7CiAg ICAgICAgICBeCistLSBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0UvSU5TRVJUIGVycm9yCitNRVJHRSBJ TlRPIHRhcmdldCB0CitVU0lORyBzb3VyY2UgQVMgcworT04gdC50aWQgPSBzLnNpZAorV0hFTiBO T1QgTUFUQ0hFRCBCWSBTT1VSQ0UgVEhFTgorCUlOU0VSVCBERUZBVUxUIFZBTFVFUzsKK0VSUk9S OiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIklOU0VSVCIKK0xJTkUgNTogIElOU0VSVCBERUZB VUxUIFZBTFVFUzsKKyAgICAgICAgIF4KIC0tIGluY29ycmVjdGx5IHNwZWNpZnlpbmcgSU5UTyB0 YXJnZXQKIE1FUkdFIElOVE8gdGFyZ2V0IHQKIFVTSU5HIHNvdXJjZSBBUyBzCkBAIC0xMDgsNiAr MTE3LDE1IEBAIFdIRU4gTk9UIE1BVENIRUQgVEhFTgogRVJST1I6ICBzeW50YXggZXJyb3IgYXQg b3IgbmVhciAiVVBEQVRFIgogTElORSA1OiAgVVBEQVRFIFNFVCBiYWxhbmNlID0gMDsKICAgICAg ICAgIF4KKy0tIE5PVCBNQVRDSEVEIEJZIFRBUkdFVC9VUERBVEUKK01FUkdFIElOVE8gdGFyZ2V0 IHQKK1VTSU5HIHNvdXJjZSBBUyBzCitPTiB0LnRpZCA9IHMuc2lkCitXSEVOIE5PVCBNQVRDSEVE IEJZIFRBUkdFVCBUSEVOCisJVVBEQVRFIFNFVCBiYWxhbmNlID0gMDsKK0VSUk9SOiAgc3ludGF4 IGVycm9yIGF0IG9yIG5lYXIgIlVQREFURSIKK0xJTkUgNTogIFVQREFURSBTRVQgYmFsYW5jZSA9 IDA7CisgICAgICAgICBeCiAtLSBVUERBVEUgdGFibGVuYW1lCiBNRVJHRSBJTlRPIHRhcmdldCB0 CiBVU0lORyBzb3VyY2UgQVMgcwpAQCAtMjcwLDYgKzI4OCwyMiBAQCBTRUxFQ1QgKiBGUk9NIHRh cmdldCBPUkRFUiBCWSB0aWQ7CiAoNCByb3dzKQogCiBST0xMQkFDSzsKKy0tIERFTEVURS9JTlNF UlQgbm90IG1hdGNoZWQgYnkgc291cmNlL3RhcmdldAorQkVHSU47CitNRVJHRSBJTlRPIHRhcmdl dCB0CitVU0lORyBzb3VyY2UgQVMgcworT04gdC50aWQgPSBzLnNpZAorV0hFTiBOT1QgTUFUQ0hF RCBCWSBTT1VSQ0UgVEhFTgorCURFTEVURQorV0hFTiBOT1QgTUFUQ0hFRCBCWSBUQVJHRVQgVEhF TgorCUlOU0VSVCBWQUxVRVMgKHMuc2lkLCBzLmRlbHRhKTsKK1NFTEVDVCAqIEZST00gdGFyZ2V0 IE9SREVSIEJZIHRpZDsKKyB0aWQgfCBiYWxhbmNlIAorLS0tLS0rLS0tLS0tLS0tCisgICA0IHwg ICAgICA0MAorKDEgcm93KQorCitST0xMQkFDSzsKIC0tIGluZGV4IHBsYW5zCiBJTlNFUlQgSU5U TyB0YXJnZXQgU0VMRUNUIGdlbmVyYXRlX3NlcmllcygxMDAwLDI1MDApLCAwOwogQUxURVIgVEFC TEUgdGFyZ2V0IEFERCBQUklNQVJZIEtFWSAodGlkKTsKQEAgLTczNyw2ICs3NzEsMTkgQEAgU0VM RUNUICogRlJPTSB3cV90YXJnZXQ7CiAgICAxIHwgICAgICAtMQogKDEgcm93KQogCistLSBjb25k aXRpb25zIGluIE5PVCBNQVRDSEVEIEJZIFNPVVJDRSBjbGF1c2UgY2FuIG9ubHkgcmVmZXIgdG8g dGFyZ2V0IGNvbHVtbnMKK01FUkdFIElOVE8gd3FfdGFyZ2V0IHQKK1VTSU5HIHdxX3NvdXJjZSBz IE9OIHQudGlkID0gcy5zaWQKK1dIRU4gTk9UIE1BVENIRUQgQlkgU09VUkNFIEFORCBzLmJhbGFu Y2UgPSAxMDAgVEhFTgorCURFTEVURTsKK0VSUk9SOiAgaW52YWxpZCByZWZlcmVuY2UgdG8gRlJP TS1jbGF1c2UgZW50cnkgZm9yIHRhYmxlICJzIgorTElORSAzOiBXSEVOIE5PVCBNQVRDSEVEIEJZ IFNPVVJDRSBBTkQgcy5iYWxhbmNlID0gMTAwIFRIRU4KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIFRoZXJlIGlzIGFuIGVudHJ5IGZvciB0YWJsZSAi cyIsIGJ1dCBpdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVl cnkuCitNRVJHRSBJTlRPIHdxX3RhcmdldCB0CitVU0lORyB3cV9zb3VyY2UgcyBPTiB0LnRpZCA9 IHMuc2lkCitXSEVOIE5PVCBNQVRDSEVEIEJZIFNPVVJDRSBBTkQgdC5iYWxhbmNlID0gMTAwIFRI RU4KKyAgICBERUxFVEU7CiAtLSBjb25kaXRpb25zIGluIE1BVENIRUQgY2xhdXNlIGNhbiByZWZl ciB0byBib3RoIHNvdXJjZSBhbmQgdGFyZ2V0CiBTRUxFQ1QgKiBGUk9NIHdxX3NvdXJjZTsKICBi YWxhbmNlIHwgc2lkIApAQCAtOTIyLDYgKzk2OSw0NSBAQCBTRUxFQ1QgKiBGUk9NIHRhcmdldCBP UkRFUiBCWSB0aWQ7CiAoMyByb3dzKQogCiBST0xMQkFDSzsKKy0tIFVQU0VSVCB3aXRoIFVQREFU RS9ERUxFVEUgd2hlbiBub3QgbWF0Y2hlZCBieSBzb3VyY2UKK0JFR0lOOworREVMRVRFIEZST00g U09VUkNFIFdIRVJFIHNpZCA9IDI7CitNRVJHRSBJTlRPIHRhcmdldCB0CitVU0lORyBzb3VyY2Ug QVMgcworT04gdC50aWQgPSBzLnNpZAorV0hFTiBNQVRDSEVEIEFORCB0LmJhbGFuY2UgPiBzLmRl bHRhIFRIRU4KKyAgICBVUERBVEUgU0VUIGJhbGFuY2UgPSB0LmJhbGFuY2UgLSBzLmRlbHRhCitX SEVOIE1BVENIRUQgVEhFTgorCVVQREFURSBTRVQgYmFsYW5jZSA9IDAKK1dIRU4gTk9UIE1BVENI RUQgVEhFTgorICAgIElOU0VSVCBWQUxVRVMgKHMuc2lkLCBzLmRlbHRhKQorV0hFTiBOT1QgTUFU Q0hFRCBCWSBTT1VSQ0UgQU5EIHRpZCA9IDEgVEhFTgorCVVQREFURSBTRVQgYmFsYW5jZSA9IDAK K1dIRU4gTk9UIE1BVENIRUQgQlkgU09VUkNFIFRIRU4KKwlERUxFVEU7CitOT1RJQ0U6ICBCRUZP UkUgSU5TRVJUIFNUQVRFTUVOVCB0cmlnZ2VyCitOT1RJQ0U6ICBCRUZPUkUgVVBEQVRFIFNUQVRF TUVOVCB0cmlnZ2VyCitOT1RJQ0U6ICBCRUZPUkUgREVMRVRFIFNUQVRFTUVOVCB0cmlnZ2VyCitO T1RJQ0U6ICBCRUZPUkUgVVBEQVRFIFJPVyB0cmlnZ2VyIHJvdzogKDMsMzApIC0+ICgzLDEwKQor Tk9USUNFOiAgQkVGT1JFIElOU0VSVCBST1cgdHJpZ2dlciByb3c6ICg0LDQwKQorTk9USUNFOiAg QkVGT1JFIERFTEVURSBST1cgdHJpZ2dlciByb3c6ICgyLDIwKQorTk9USUNFOiAgQkVGT1JFIFVQ REFURSBST1cgdHJpZ2dlciByb3c6ICgxLDEwKSAtPiAoMSwwKQorTk9USUNFOiAgQUZURVIgVVBE QVRFIFJPVyB0cmlnZ2VyIHJvdzogKDMsMzApIC0+ICgzLDEwKQorTk9USUNFOiAgQUZURVIgSU5T RVJUIFJPVyB0cmlnZ2VyIHJvdzogKDQsNDApCitOT1RJQ0U6ICBBRlRFUiBERUxFVEUgUk9XIHRy aWdnZXIgcm93OiAoMiwyMCkKK05PVElDRTogIEFGVEVSIFVQREFURSBST1cgdHJpZ2dlciByb3c6 ICgxLDEwKSAtPiAoMSwwKQorTk9USUNFOiAgQUZURVIgREVMRVRFIFNUQVRFTUVOVCB0cmlnZ2Vy CitOT1RJQ0U6ICBBRlRFUiBVUERBVEUgU1RBVEVNRU5UIHRyaWdnZXIKK05PVElDRTogIEFGVEVS IElOU0VSVCBTVEFURU1FTlQgdHJpZ2dlcgorU0VMRUNUICogRlJPTSB0YXJnZXQgT1JERVIgQlkg dGlkOworIHRpZCB8IGJhbGFuY2UgCistLS0tLSstLS0tLS0tLS0KKyAgIDEgfCAgICAgICAwCisg ICAzIHwgICAgICAxMAorICAgNCB8ICAgICAgNDAKKygzIHJvd3MpCisKK1JPTExCQUNLOwogLS0g VGVzdCBiZWhhdmlvciBvZiB0cmlnZ2VycyB0aGF0IHR1cm4gVVBEQVRFL0RFTEVURSBpbnRvIG5v LW9wcwogY3JlYXRlIG9yIHJlcGxhY2UgZnVuY3Rpb24gc2tpcF9tZXJnZV9vcCgpIHJldHVybnMg dHJpZ2dlcgogbGFuZ3VhZ2UgcGxwZ3NxbCBhcwpAQCAtMTQ1MCw2ICsxNTM2LDUwIEBAIFdIRU4g Tk9UIE1BVENIRUQgQU5EIHMuYSA8IDIwIFRIRU4KICAgICAgICAgICAgICAgIC0+ICBTZXEgU2Nh biBvbiBleF9tdGFyZ2V0IHQgKGFjdHVhbCByb3dzPTQ5IGxvb3BzPTEpCiAoMTIgcm93cykKIAor LS0gbm90IG1hdGNoZWQgYnkgc291cmNlCitTRUxFQ1QgZXhwbGFpbl9tZXJnZSgnCitNRVJHRSBJ TlRPIGV4X210YXJnZXQgdCBVU0lORyBleF9tc291cmNlIHMgT04gdC5hID0gcy5hCitXSEVOIE5P VCBNQVRDSEVEIEJZIFNPVVJDRSBhbmQgdC5hIDwgMTAgVEhFTgorCURFTEVURScpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fbWVyZ2UgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIE1lcmdlIG9uIGV4X210YXJnZXQgdCAoYWN0dWFsIHJv d3M9MCBsb29wcz0xKQorICAgVHVwbGVzOiBza2lwcGVkPTU0CisgICAtPiAgTWVyZ2UgTGVmdCBK b2luIChhY3R1YWwgcm93cz01NCBsb29wcz0xKQorICAgICAgICAgTWVyZ2UgQ29uZDogKHQuYSA9 IHMuYSkKKyAgICAgICAgIC0+ICBTb3J0IChhY3R1YWwgcm93cz01NCBsb29wcz0xKQorICAgICAg ICAgICAgICAgU29ydCBLZXk6IHQuYQorICAgICAgICAgICAgICAgU29ydCBNZXRob2Q6IHF1aWNr c29ydCAgTWVtb3J5OiB4eHgKKyAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBleF9tdGFy Z2V0IHQgKGFjdHVhbCByb3dzPTU0IGxvb3BzPTEpCisgICAgICAgICAtPiAgU29ydCAoYWN0dWFs IHJvd3M9MTAwIGxvb3BzPTEpCisgICAgICAgICAgICAgICBTb3J0IEtleTogcy5hCisgICAgICAg ICAgICAgICBTb3J0IE1ldGhvZDogcXVpY2tzb3J0ICBNZW1vcnk6IHh4eAorICAgICAgICAgICAg ICAgLT4gIFNlcSBTY2FuIG9uIGV4X21zb3VyY2UgcyAoYWN0dWFsIHJvd3M9MTAwIGxvb3BzPTEp CisoMTIgcm93cykKKworLS0gbm90IG1hdGNoZWQgYnkgc291cmNlIGFuZCB0YXJnZXQKK1NFTEVD VCBleHBsYWluX21lcmdlKCcKK01FUkdFIElOVE8gZXhfbXRhcmdldCB0IFVTSU5HIGV4X21zb3Vy Y2UgcyBPTiB0LmEgPSBzLmEKK1dIRU4gTk9UIE1BVENIRUQgQlkgU09VUkNFIEFORCB0LmEgPCAx MCBUSEVOCisJREVMRVRFCitXSEVOIE5PVCBNQVRDSEVEIEJZIFRBUkdFVCBBTkQgcy5hIDwgMjAg VEhFTgorCUlOU0VSVCBWQUxVRVMgKGEsIGIpJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZXhwbGFpbl9tZXJnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgTWVyZ2Ugb24gZXhfbXRhcmdldCB0IChhY3R1YWwgcm93cz0wIGxvb3BzPTEpCisgICBU dXBsZXM6IHNraXBwZWQ9MTAwCisgICAtPiAgTWVyZ2UgRnVsbCBKb2luIChhY3R1YWwgcm93cz0x MDAgbG9vcHM9MSkKKyAgICAgICAgIE1lcmdlIENvbmQ6ICh0LmEgPSBzLmEpCisgICAgICAgICAt PiAgU29ydCAoYWN0dWFsIHJvd3M9NTQgbG9vcHM9MSkKKyAgICAgICAgICAgICAgIFNvcnQgS2V5 OiB0LmEKKyAgICAgICAgICAgICAgIFNvcnQgTWV0aG9kOiBxdWlja3NvcnQgIE1lbW9yeTogeHh4 CisgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gZXhfbXRhcmdldCB0IChhY3R1YWwgcm93 cz01NCBsb29wcz0xKQorICAgICAgICAgLT4gIFNvcnQgKGFjdHVhbCByb3dzPTEwMCBsb29wcz0x KQorICAgICAgICAgICAgICAgU29ydCBLZXk6IHMuYQorICAgICAgICAgICAgICAgU29ydCBNZXRo b2Q6IHF1aWNrc29ydCAgTWVtb3J5OiB4eHgKKyAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBv biBleF9tc291cmNlIHMgKGFjdHVhbCByb3dzPTEwMCBsb29wcz0xKQorKDEyIHJvd3MpCisKIC0t IG5vdGhpbmcKIFNFTEVDVCBleHBsYWluX21lcmdlKCcKIE1FUkdFIElOVE8gZXhfbXRhcmdldCB0 IFVTSU5HIGV4X21zb3VyY2UgcyBPTiB0LmEgPSBzLmEgQU5EIHQuYSA8IC0xMDAwCkBAIC0xNTI5 LDcgKzE2NTksNyBAQCBDUkVBVEUgVEFCTEUgcGFfc291cmNlIChzaWQgaW50ZWdlciwgZGVsCiAt LSBpbnNlcnQgbWFueSByb3dzIHRvIHRoZSBzb3VyY2UgdGFibGUKIElOU0VSVCBJTlRPIHBhX3Nv dXJjZSBTRUxFQ1QgaWQsIGlkICogMTAgIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTQpIEFTIGlk OwogLS0gaW5zZXJ0IGEgZmV3IHJvd3MgaW4gdGhlIHRhcmdldCB0YWJsZSAob2RkIG51bWJlcmVk IHRpZCkKLUlOU0VSVCBJTlRPIHBhX3RhcmdldCBTRUxFQ1QgaWQsIGlkICogMTAwLCAnaW5pdGlh bCcgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxNCwyKSBBUyBpZDsKK0lOU0VSVCBJTlRPIHBhX3Rh cmdldCBTRUxFQ1QgaWQsIGlkICogMTAwLCAnaW5pdGlhbCcgRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwxNSwyKSBBUyBpZDsKIC0tIHRyeSBzaW1wbGUgTUVSR0UKIEJFR0lOOwogTUVSR0UgSU5UTyBw YV90YXJnZXQgdApAQCAtMTUzOCwxMCArMTY2OCwxMiBAQCBNRVJHRSBJTlRPIHBhX3RhcmdldCB0 CiAgIFdIRU4gTUFUQ0hFRCBUSEVOCiAgICAgVVBEQVRFIFNFVCBiYWxhbmNlID0gYmFsYW5jZSAr IGRlbHRhLCB2YWwgPSB2YWwgfHwgJyB1cGRhdGVkIGJ5IG1lcmdlJwogICBXSEVOIE5PVCBNQVRD SEVEIFRIRU4KLSAgICBJTlNFUlQgVkFMVUVTIChzaWQsIGRlbHRhLCAnaW5zZXJ0ZWQgYnkgbWVy Z2UnKTsKLVNFTEVDVCAqIEZST00gcGFfdGFyZ2V0IE9SREVSIEJZIHRpZDsKLSB0aWQgfCBiYWxh bmNlIHwgICAgICAgICAgIHZhbCAgICAgICAgICAgIAotLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgSU5TRVJUIFZBTFVFUyAoc2lkLCBkZWx0YSwgJ2luc2Vy dGVkIGJ5IG1lcmdlJykKKyAgV0hFTiBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0UgVEhFTgorICAgIFVQ REFURSBTRVQgdmFsID0gdmFsIHx8ICcgbm90IG1hdGNoZWQgYnkgc291cmNlJzsKK1NFTEVDVCAq IEZST00gcGFfdGFyZ2V0IE9SREVSIEJZIHRpZCwgdmFsOworIHRpZCB8IGJhbGFuY2UgfCAgICAg ICAgICAgICAgdmFsICAgICAgICAgICAgICAKKy0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgICAxIHwgICAgIDExMCB8IGluaXRpYWwgdXBkYXRlZCBieSBt ZXJnZQogICAgMiB8ICAgICAgMjAgfCBpbnNlcnRlZCBieSBtZXJnZQogICAgMyB8ICAgICAzMzAg fCBpbml0aWFsIHVwZGF0ZWQgYnkgbWVyZ2UKQEAgLTE1NTYsNyArMTY4OCw4IEBAIFNFTEVDVCAq IEZST00gcGFfdGFyZ2V0IE9SREVSIEJZIHRpZDsKICAgMTIgfCAgICAgMTIwIHwgaW5zZXJ0ZWQg YnkgbWVyZ2UKICAgMTMgfCAgICAxNDMwIHwgaW5pdGlhbCB1cGRhdGVkIGJ5IG1lcmdlCiAgIDE0 IHwgICAgIDE0MCB8IGluc2VydGVkIGJ5IG1lcmdlCi0oMTQgcm93cykKKyAgMTUgfCAgICAxNTAw IHwgaW5pdGlhbCBub3QgbWF0Y2hlZCBieSBzb3VyY2UKKygxNSByb3dzKQogCiBST0xMQkFDSzsK IC0tIHNhbWUgd2l0aCBhIGNvbnN0YW50IHF1YWwKQEAgLTE1NjcsMzEgKzE3MDAsMzQgQEAgTUVS R0UgSU5UTyBwYV90YXJnZXQgdAogICBXSEVOIE1BVENIRUQgVEhFTgogICAgIFVQREFURSBTRVQg YmFsYW5jZSA9IGJhbGFuY2UgKyBkZWx0YSwgdmFsID0gdmFsIHx8ICcgdXBkYXRlZCBieSBtZXJn ZScKICAgV0hFTiBOT1QgTUFUQ0hFRCBUSEVOCi0gICAgSU5TRVJUIFZBTFVFUyAoc2lkLCBkZWx0 YSwgJ2luc2VydGVkIGJ5IG1lcmdlJyk7Ci1TRUxFQ1QgKiBGUk9NIHBhX3RhcmdldCBPUkRFUiBC WSB0aWQ7Ci0gdGlkIHwgYmFsYW5jZSB8ICAgICAgICAgICB2YWwgICAgICAgICAgICAKLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIElOU0VSVCBWQUxVRVMg KHNpZCwgZGVsdGEsICdpbnNlcnRlZCBieSBtZXJnZScpCisgIFdIRU4gTk9UIE1BVENIRUQgQlkg U09VUkNFIFRIRU4KKyAgICBVUERBVEUgU0VUIHZhbCA9IHZhbCB8fCAnIG5vdCBtYXRjaGVkIGJ5 IHNvdXJjZSc7CitTRUxFQ1QgKiBGUk9NIHBhX3RhcmdldCBPUkRFUiBCWSB0aWQsIHZhbDsKKyB0 aWQgfCBiYWxhbmNlIHwgICAgICAgICAgICAgIHZhbCAgICAgICAgICAgICAgCistLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgMSB8ICAgICAxMTAgfCBp bml0aWFsIHVwZGF0ZWQgYnkgbWVyZ2UKICAgIDIgfCAgICAgIDIwIHwgaW5zZXJ0ZWQgYnkgbWVy Z2UKKyAgIDMgfCAgICAgMzAwIHwgaW5pdGlhbCBub3QgbWF0Y2hlZCBieSBzb3VyY2UKICAgIDMg fCAgICAgIDMwIHwgaW5zZXJ0ZWQgYnkgbWVyZ2UKLSAgIDMgfCAgICAgMzAwIHwgaW5pdGlhbAog ICAgNCB8ICAgICAgNDAgfCBpbnNlcnRlZCBieSBtZXJnZQotICAgNSB8ICAgICA1MDAgfCBpbml0 aWFsCisgICA1IHwgICAgIDUwMCB8IGluaXRpYWwgbm90IG1hdGNoZWQgYnkgc291cmNlCiAgICA1 IHwgICAgICA1MCB8IGluc2VydGVkIGJ5IG1lcmdlCiAgICA2IHwgICAgICA2MCB8IGluc2VydGVk IGJ5IG1lcmdlCi0gICA3IHwgICAgIDcwMCB8IGluaXRpYWwKKyAgIDcgfCAgICAgNzAwIHwgaW5p dGlhbCBub3QgbWF0Y2hlZCBieSBzb3VyY2UKICAgIDcgfCAgICAgIDcwIHwgaW5zZXJ0ZWQgYnkg bWVyZ2UKICAgIDggfCAgICAgIDgwIHwgaW5zZXJ0ZWQgYnkgbWVyZ2UKKyAgIDkgfCAgICAgOTAw IHwgaW5pdGlhbCBub3QgbWF0Y2hlZCBieSBzb3VyY2UKICAgIDkgfCAgICAgIDkwIHwgaW5zZXJ0 ZWQgYnkgbWVyZ2UKLSAgIDkgfCAgICAgOTAwIHwgaW5pdGlhbAogICAxMCB8ICAgICAxMDAgfCBp bnNlcnRlZCBieSBtZXJnZQotICAxMSB8ICAgIDExMDAgfCBpbml0aWFsCisgIDExIHwgICAgMTEw MCB8IGluaXRpYWwgbm90IG1hdGNoZWQgYnkgc291cmNlCiAgIDExIHwgICAgIDExMCB8IGluc2Vy dGVkIGJ5IG1lcmdlCiAgIDEyIHwgICAgIDEyMCB8IGluc2VydGVkIGJ5IG1lcmdlCi0gIDEzIHwg ICAgMTMwMCB8IGluaXRpYWwKKyAgMTMgfCAgICAxMzAwIHwgaW5pdGlhbCBub3QgbWF0Y2hlZCBi eSBzb3VyY2UKICAgMTMgfCAgICAgMTMwIHwgaW5zZXJ0ZWQgYnkgbWVyZ2UKICAgMTQgfCAgICAg MTQwIHwgaW5zZXJ0ZWQgYnkgbWVyZ2UKLSgyMCByb3dzKQorICAxNSB8ICAgIDE1MDAgfCBpbml0 aWFsIG5vdCBtYXRjaGVkIGJ5IHNvdXJjZQorKDIxIHJvd3MpCiAKIFJPTExCQUNLOwogLS0gdHJ5 IHVwZGF0aW5nIHRoZSBwYXJ0aXRpb24ga2V5IGNvbHVtbgpAQCAtMTYwNiw3ICsxNzQyLDkgQEAg TUVSR0UgSU5UTyBwYV90YXJnZXQgdAogICBXSEVOIE1BVENIRUQgVEhFTgogICAgIFVQREFURSBT RVQgdGlkID0gdGlkICsgMSwgYmFsYW5jZSA9IGJhbGFuY2UgKyBkZWx0YSwgdmFsID0gdmFsIHx8 ICcgdXBkYXRlZCBieSBtZXJnZScKICAgV0hFTiBOT1QgTUFUQ0hFRCBUSEVOCi0gICAgSU5TRVJU IFZBTFVFUyAoc2lkLCBkZWx0YSwgJ2luc2VydGVkIGJ5IG1lcmdlJyk7CisgICAgSU5TRVJUIFZB TFVFUyAoc2lkLCBkZWx0YSwgJ2luc2VydGVkIGJ5IG1lcmdlJykKKyAgV0hFTiBOT1QgTUFUQ0hF RCBCWSBTT1VSQ0UgVEhFTgorICAgIFVQREFURSBTRVQgdGlkID0gMSwgdmFsID0gdmFsIHx8ICcg bm90IG1hdGNoZWQgYnkgc291cmNlJzsKIElGIEZPVU5EIFRIRU4KICAgR0VUIERJQUdOT1NUSUNT IHJlc3VsdCA6PSBST1dfQ09VTlQ7CiBFTkQgSUY7CkBAIC0xNjE2LDI3ICsxNzU0LDI4IEBAICQk OwogU0VMRUNUIG1lcmdlX2Z1bmMoKTsKICBtZXJnZV9mdW5jIAogLS0tLS0tLS0tLS0tCi0gICAg ICAgICAxNAorICAgICAgICAgMTUKICgxIHJvdykKIAotU0VMRUNUICogRlJPTSBwYV90YXJnZXQg T1JERVIgQlkgdGlkOwotIHRpZCB8IGJhbGFuY2UgfCAgICAgICAgICAgdmFsICAgICAgICAgICAg Ci0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1NFTEVDVCAqIEZS T00gcGFfdGFyZ2V0IE9SREVSIEJZIHRpZCwgdmFsOworIHRpZCB8IGJhbGFuY2UgfCAgICAgICAg ICAgICAgdmFsICAgICAgICAgICAgICAKKy0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICAxIHwgICAgMTUwMCB8IGluaXRpYWwgbm90IG1hdGNoZWQgYnkg c291cmNlCiAgICAyIHwgICAgIDExMCB8IGluaXRpYWwgdXBkYXRlZCBieSBtZXJnZQogICAgMiB8 ICAgICAgMjAgfCBpbnNlcnRlZCBieSBtZXJnZQotICAgNCB8ICAgICAgNDAgfCBpbnNlcnRlZCBi eSBtZXJnZQogICAgNCB8ICAgICAzMzAgfCBpbml0aWFsIHVwZGF0ZWQgYnkgbWVyZ2UKKyAgIDQg fCAgICAgIDQwIHwgaW5zZXJ0ZWQgYnkgbWVyZ2UKICAgIDYgfCAgICAgNTUwIHwgaW5pdGlhbCB1 cGRhdGVkIGJ5IG1lcmdlCiAgICA2IHwgICAgICA2MCB8IGluc2VydGVkIGJ5IG1lcmdlCi0gICA4 IHwgICAgICA4MCB8IGluc2VydGVkIGJ5IG1lcmdlCiAgICA4IHwgICAgIDc3MCB8IGluaXRpYWwg dXBkYXRlZCBieSBtZXJnZQorICAgOCB8ICAgICAgODAgfCBpbnNlcnRlZCBieSBtZXJnZQogICAx MCB8ICAgICA5OTAgfCBpbml0aWFsIHVwZGF0ZWQgYnkgbWVyZ2UKICAgMTAgfCAgICAgMTAwIHwg aW5zZXJ0ZWQgYnkgbWVyZ2UKICAgMTIgfCAgICAxMjEwIHwgaW5pdGlhbCB1cGRhdGVkIGJ5IG1l cmdlCiAgIDEyIHwgICAgIDEyMCB8IGluc2VydGVkIGJ5IG1lcmdlCiAgIDE0IHwgICAgMTQzMCB8 IGluaXRpYWwgdXBkYXRlZCBieSBtZXJnZQogICAxNCB8ICAgICAxNDAgfCBpbnNlcnRlZCBieSBt ZXJnZQotKDE0IHJvd3MpCisoMTUgcm93cykKIAogUk9MTEJBQ0s7CiBEUk9QIFRBQkxFIHBhX3Rh cmdldCBDQVNDQURFOwpAQCAtMTY1OCw3ICsxNzk3LDcgQEAgQUxURVIgVEFCTEUgcGFfdGFyZ2V0 IEFUVEFDSCBQQVJUSVRJT04gcAogQUxURVIgVEFCTEUgcGFfdGFyZ2V0IEFUVEFDSCBQQVJUSVRJ T04gcGFydDMgRk9SIFZBTFVFUyBJTiAoMyw4LDkpOwogQUxURVIgVEFCTEUgcGFfdGFyZ2V0IEFU VEFDSCBQQVJUSVRJT04gcGFydDQgREVGQVVMVDsKIC0tIGluc2VydCBhIGZldyByb3dzIGluIHRo ZSB0YXJnZXQgdGFibGUgKG9kZCBudW1iZXJlZCB0aWQpCi1JTlNFUlQgSU5UTyBwYV90YXJnZXQg U0VMRUNUIGlkLCBpZCAqIDEwMCwgJ2luaXRpYWwnIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTQs MikgQVMgaWQ7CitJTlNFUlQgSU5UTyBwYV90YXJnZXQgU0VMRUNUIGlkLCBpZCAqIDEwMCwgJ2lu aXRpYWwnIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTUsMikgQVMgaWQ7CiAtLSB0cnkgc2ltcGxl IE1FUkdFCiBCRUdJTjsKIERPICQkCkBAIC0xNjcxLDE1ICsxODEwLDE3IEBAIE1FUkdFIElOVE8g cGFfdGFyZ2V0IHQKICAgV0hFTiBNQVRDSEVEIFRIRU4KICAgICBVUERBVEUgU0VUIGJhbGFuY2Ug PSBiYWxhbmNlICsgZGVsdGEsIHZhbCA9IHZhbCB8fCAnIHVwZGF0ZWQgYnkgbWVyZ2UnCiAgIFdI RU4gTk9UIE1BVENIRUQgVEhFTgotICAgIElOU0VSVCBWQUxVRVMgKHNpZCwgZGVsdGEsICdpbnNl cnRlZCBieSBtZXJnZScpOworICAgIElOU0VSVCBWQUxVRVMgKHNpZCwgZGVsdGEsICdpbnNlcnRl ZCBieSBtZXJnZScpCisgIFdIRU4gTk9UIE1BVENIRUQgQlkgU09VUkNFIFRIRU4KKyAgICBVUERB VEUgU0VUIHZhbCA9IHZhbCB8fCAnIG5vdCBtYXRjaGVkIGJ5IHNvdXJjZSc7CiBHRVQgRElBR05P U1RJQ1MgcmVzdWx0IDo9IFJPV19DT1VOVDsKIFJBSVNFIE5PVElDRSAnUk9XX0NPVU5UID0gJScs IHJlc3VsdDsKIEVORDsKICQkOwotTk9USUNFOiAgUk9XX0NPVU5UID0gMTQKLVNFTEVDVCAqIEZS T00gcGFfdGFyZ2V0IE9SREVSIEJZIHRpZDsKLSB0aWQgfCBiYWxhbmNlIHwgICAgICAgICAgIHZh bCAgICAgICAgICAgIAotLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CitOT1RJQ0U6ICBST1dfQ09VTlQgPSAxNQorU0VMRUNUICogRlJPTSBwYV90YXJnZXQgT1JERVIg QlkgdGlkLCB2YWw7CisgdGlkIHwgYmFsYW5jZSB8ICAgICAgICAgICAgICB2YWwgICAgICAgICAg ICAgIAorLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAg IDEgfCAgICAgMTEwIHwgaW5pdGlhbCB1cGRhdGVkIGJ5IG1lcmdlCiAgICAyIHwgICAgICAyMCB8 IGluc2VydGVkIGJ5IG1lcmdlCiAgICAzIHwgICAgIDMzMCB8IGluaXRpYWwgdXBkYXRlZCBieSBt ZXJnZQpAQCAtMTY5NCw3ICsxODM1LDggQEAgU0VMRUNUICogRlJPTSBwYV90YXJnZXQgT1JERVIg QlkgdGlkOwogICAxMiB8ICAgICAxMjAgfCBpbnNlcnRlZCBieSBtZXJnZQogICAxMyB8ICAgIDE0 MzAgfCBpbml0aWFsIHVwZGF0ZWQgYnkgbWVyZ2UKICAgMTQgfCAgICAgMTQwIHwgaW5zZXJ0ZWQg YnkgbWVyZ2UKLSgxNCByb3dzKQorICAxNSB8ICAgIDE1MDAgfCBpbml0aWFsIG5vdCBtYXRjaGVk IGJ5IHNvdXJjZQorKDE1IHJvd3MpCiAKIFJPTExCQUNLOwogLS0gc2FtZSB3aXRoIGEgY29uc3Rh bnQgcXVhbApAQCAtMTcwNiwyOSArMTg0OCwzMiBAQCBNRVJHRSBJTlRPIHBhX3RhcmdldCB0CiAg IFdIRU4gTUFUQ0hFRCBUSEVOCiAgICAgVVBEQVRFIFNFVCBiYWxhbmNlID0gYmFsYW5jZSArIGRl bHRhLCB2YWwgPSB2YWwgfHwgJyB1cGRhdGVkIGJ5IG1lcmdlJwogICBXSEVOIE5PVCBNQVRDSEVE IFRIRU4KLSAgICBJTlNFUlQgVkFMVUVTIChzaWQsIGRlbHRhLCAnaW5zZXJ0ZWQgYnkgbWVyZ2Un KTsKLVNFTEVDVCAqIEZST00gcGFfdGFyZ2V0IE9SREVSIEJZIHRpZDsKLSB0aWQgfCBiYWxhbmNl IHwgICAgICAgICAgIHZhbCAgICAgICAgICAgIAotLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICAgSU5TRVJUIFZBTFVFUyAoc2lkLCBkZWx0YSwgJ2luc2VydGVk IGJ5IG1lcmdlJykKKyAgV0hFTiBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0UgVEhFTgorICAgIFVQREFU RSBTRVQgdmFsID0gdmFsIHx8ICcgbm90IG1hdGNoZWQgYnkgc291cmNlJzsKK1NFTEVDVCAqIEZS T00gcGFfdGFyZ2V0IE9SREVSIEJZIHRpZCwgdmFsOworIHRpZCB8IGJhbGFuY2UgfCAgICAgICAg ICAgICAgdmFsICAgICAgICAgICAgICAKKy0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAgICAxIHwgICAgIDExMCB8IGluaXRpYWwgdXBkYXRlZCBieSBtZXJn ZQogICAgMiB8ICAgICAgMjAgfCBpbnNlcnRlZCBieSBtZXJnZQorICAgMyB8ICAgICAzMDAgfCBp bml0aWFsIG5vdCBtYXRjaGVkIGJ5IHNvdXJjZQogICAgMyB8ICAgICAgMzAgfCBpbnNlcnRlZCBi eSBtZXJnZQotICAgMyB8ICAgICAzMDAgfCBpbml0aWFsCiAgICA0IHwgICAgICA0MCB8IGluc2Vy dGVkIGJ5IG1lcmdlCiAgICA2IHwgICAgICA2MCB8IGluc2VydGVkIGJ5IG1lcmdlCi0gICA3IHwg ICAgIDcwMCB8IGluaXRpYWwKKyAgIDcgfCAgICAgNzAwIHwgaW5pdGlhbCBub3QgbWF0Y2hlZCBi eSBzb3VyY2UKICAgIDcgfCAgICAgIDcwIHwgaW5zZXJ0ZWQgYnkgbWVyZ2UKICAgIDggfCAgICAg IDgwIHwgaW5zZXJ0ZWQgYnkgbWVyZ2UKLSAgIDkgfCAgICAgOTAwIHwgaW5pdGlhbAorICAgOSB8 ICAgICA5MDAgfCBpbml0aWFsIG5vdCBtYXRjaGVkIGJ5IHNvdXJjZQogICAgOSB8ICAgICAgOTAg fCBpbnNlcnRlZCBieSBtZXJnZQogICAxMCB8ICAgICAxMDAgfCBpbnNlcnRlZCBieSBtZXJnZQor ICAxMSB8ICAgIDExMDAgfCBpbml0aWFsIG5vdCBtYXRjaGVkIGJ5IHNvdXJjZQogICAxMSB8ICAg ICAxMTAgfCBpbnNlcnRlZCBieSBtZXJnZQotICAxMSB8ICAgIDExMDAgfCBpbml0aWFsCiAgIDEy IHwgICAgIDEyMCB8IGluc2VydGVkIGJ5IG1lcmdlCi0gIDEzIHwgICAgMTMwMCB8IGluaXRpYWwK KyAgMTMgfCAgICAxMzAwIHwgaW5pdGlhbCBub3QgbWF0Y2hlZCBieSBzb3VyY2UKICAgMTMgfCAg ICAgMTMwIHwgaW5zZXJ0ZWQgYnkgbWVyZ2UKICAgMTQgfCAgICAgMTQwIHwgaW5zZXJ0ZWQgYnkg bWVyZ2UKLSgxOCByb3dzKQorICAxNSB8ICAgIDE1MDAgfCBpbml0aWFsIG5vdCBtYXRjaGVkIGJ5 IHNvdXJjZQorKDE5IHJvd3MpCiAKIFJPTExCQUNLOwogLS0gdHJ5IHVwZGF0aW5nIHRoZSBwYXJ0 aXRpb24ga2V5IGNvbHVtbgpAQCAtMTc0MywzMCArMTg4OCwzMyBAQCBNRVJHRSBJTlRPIHBhX3Rh cmdldCB0CiAgIFdIRU4gTUFUQ0hFRCBUSEVOCiAgICAgVVBEQVRFIFNFVCB0aWQgPSB0aWQgKyAx LCBiYWxhbmNlID0gYmFsYW5jZSArIGRlbHRhLCB2YWwgPSB2YWwgfHwgJyB1cGRhdGVkIGJ5IG1l cmdlJwogICBXSEVOIE5PVCBNQVRDSEVEIFRIRU4KLSAgICBJTlNFUlQgVkFMVUVTIChzaWQsIGRl bHRhLCAnaW5zZXJ0ZWQgYnkgbWVyZ2UnKTsKKyAgICBJTlNFUlQgVkFMVUVTIChzaWQsIGRlbHRh LCAnaW5zZXJ0ZWQgYnkgbWVyZ2UnKQorICBXSEVOIE5PVCBNQVRDSEVEIEJZIFNPVVJDRSBUSEVO CisgICAgVVBEQVRFIFNFVCB0aWQgPSAxLCB2YWwgPSB2YWwgfHwgJyBub3QgbWF0Y2hlZCBieSBz b3VyY2UnOwogR0VUIERJQUdOT1NUSUNTIHJlc3VsdCA6PSBST1dfQ09VTlQ7CiBSQUlTRSBOT1RJ Q0UgJ1JPV19DT1VOVCA9ICUnLCByZXN1bHQ7CiBFTkQ7CiAkJDsKLU5PVElDRTogIFJPV19DT1VO VCA9IDE0Ci1TRUxFQ1QgKiBGUk9NIHBhX3RhcmdldCBPUkRFUiBCWSB0aWQ7Ci0gdGlkIHwgYmFs YW5jZSB8ICAgICAgICAgICB2YWwgICAgICAgICAgICAKLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorTk9USUNFOiAgUk9XX0NPVU5UID0gMTUKK1NFTEVDVCAqIEZS T00gcGFfdGFyZ2V0IE9SREVSIEJZIHRpZCwgdmFsOworIHRpZCB8IGJhbGFuY2UgfCAgICAgICAg ICAgICAgdmFsICAgICAgICAgICAgICAKKy0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICAxIHwgICAgMTUwMCB8IGluaXRpYWwgbm90IG1hdGNoZWQgYnkg c291cmNlCiAgICAyIHwgICAgIDExMCB8IGluaXRpYWwgdXBkYXRlZCBieSBtZXJnZQogICAgMiB8 ICAgICAgMjAgfCBpbnNlcnRlZCBieSBtZXJnZQotICAgNCB8ICAgICAgNDAgfCBpbnNlcnRlZCBi eSBtZXJnZQogICAgNCB8ICAgICAzMzAgfCBpbml0aWFsIHVwZGF0ZWQgYnkgbWVyZ2UKKyAgIDQg fCAgICAgIDQwIHwgaW5zZXJ0ZWQgYnkgbWVyZ2UKICAgIDYgfCAgICAgNTUwIHwgaW5pdGlhbCB1 cGRhdGVkIGJ5IG1lcmdlCiAgICA2IHwgICAgICA2MCB8IGluc2VydGVkIGJ5IG1lcmdlCi0gICA4 IHwgICAgICA4MCB8IGluc2VydGVkIGJ5IG1lcmdlCiAgICA4IHwgICAgIDc3MCB8IGluaXRpYWwg dXBkYXRlZCBieSBtZXJnZQorICAgOCB8ICAgICAgODAgfCBpbnNlcnRlZCBieSBtZXJnZQogICAx MCB8ICAgICA5OTAgfCBpbml0aWFsIHVwZGF0ZWQgYnkgbWVyZ2UKICAgMTAgfCAgICAgMTAwIHwg aW5zZXJ0ZWQgYnkgbWVyZ2UKICAgMTIgfCAgICAxMjEwIHwgaW5pdGlhbCB1cGRhdGVkIGJ5IG1l cmdlCiAgIDEyIHwgICAgIDEyMCB8IGluc2VydGVkIGJ5IG1lcmdlCiAgIDE0IHwgICAgMTQzMCB8 IGluaXRpYWwgdXBkYXRlZCBieSBtZXJnZQogICAxNCB8ICAgICAxNDAgfCBpbnNlcnRlZCBieSBt ZXJnZQotKDE0IHJvd3MpCisoMTUgcm93cykKIAogUk9MTEJBQ0s7CiAtLSBhcyBhYm92ZSwgYnV0 IGJsb2NrZWQgYnkgQkVGT1JFIERFTEVURSBST1cgdHJpZ2dlcgpAQCAtMTc4NSwxNSArMTkzMywx NyBAQCBNRVJHRSBJTlRPIHBhX3RhcmdldCB0CiAgIFdIRU4gTUFUQ0hFRCBUSEVOCiAgICAgVVBE QVRFIFNFVCB0aWQgPSB0aWQgKyAxLCBiYWxhbmNlID0gYmFsYW5jZSArIGRlbHRhLCB2YWwgPSB2 YWwgfHwgJyB1cGRhdGVkIGJ5IG1lcmdlJwogICBXSEVOIE5PVCBNQVRDSEVEIFRIRU4KLSAgICBJ TlNFUlQgVkFMVUVTIChzaWQsIGRlbHRhLCAnaW5zZXJ0ZWQgYnkgbWVyZ2UnKTsKKyAgICBJTlNF UlQgVkFMVUVTIChzaWQsIGRlbHRhLCAnaW5zZXJ0ZWQgYnkgbWVyZ2UnKQorICBXSEVOIE5PVCBN QVRDSEVEIEJZIFNPVVJDRSBUSEVOCisgICAgVVBEQVRFIFNFVCB2YWwgPSB2YWwgfHwgJyBub3Qg bWF0Y2hlZCBieSBzb3VyY2UnOwogR0VUIERJQUdOT1NUSUNTIHJlc3VsdCA6PSBST1dfQ09VTlQ7 CiBSQUlTRSBOT1RJQ0UgJ1JPV19DT1VOVCA9ICUnLCByZXN1bHQ7CiBFTkQ7CiAkJDsKLU5PVElD RTogIFJPV19DT1VOVCA9IDEwCi1TRUxFQ1QgKiBGUk9NIHBhX3RhcmdldCBPUkRFUiBCWSB0aWQ7 Ci0gdGlkIHwgYmFsYW5jZSB8ICAgICAgICAgICB2YWwgICAgICAgICAgICAKLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTk9USUNFOiAgUk9XX0NPVU5UID0gMTEK K1NFTEVDVCAqIEZST00gcGFfdGFyZ2V0IE9SREVSIEJZIHRpZCwgdmFsOworIHRpZCB8IGJhbGFu Y2UgfCAgICAgICAgICAgICAgdmFsICAgICAgICAgICAgICAKKy0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAxIHwgICAgIDEwMCB8IGluaXRpYWwKICAg IDIgfCAgICAgIDIwIHwgaW5zZXJ0ZWQgYnkgbWVyZ2UKICAgIDMgfCAgICAgMzAwIHwgaW5pdGlh bApAQCAtMTgwOCw3ICsxOTU4LDggQEAgU0VMRUNUICogRlJPTSBwYV90YXJnZXQgT1JERVIgQlkg dGlkOwogICAxMiB8ICAgICAxMjAgfCBpbnNlcnRlZCBieSBtZXJnZQogICAxNCB8ICAgIDE0MzAg fCBpbml0aWFsIHVwZGF0ZWQgYnkgbWVyZ2UKICAgMTQgfCAgICAgMTQwIHwgaW5zZXJ0ZWQgYnkg bWVyZ2UKLSgxNCByb3dzKQorICAxNSB8ICAgIDE1MDAgfCBpbml0aWFsIG5vdCBtYXRjaGVkIGJ5 IHNvdXJjZQorKDE1IHJvd3MpCiAKIFJPTExCQUNLOwogLS0gYXMgYWJvdmUsIGJ1dCBibG9ja2Vk IGJ5IEJFRk9SRSBJTlNFUlQgUk9XIHRyaWdnZXIKQEAgLTE4MjcsMTkgKzE5NzgsMjIgQEAgTUVS R0UgSU5UTyBwYV90YXJnZXQgdAogICBXSEVOIE1BVENIRUQgVEhFTgogICAgIFVQREFURSBTRVQg dGlkID0gdGlkICsgMSwgYmFsYW5jZSA9IGJhbGFuY2UgKyBkZWx0YSwgdmFsID0gdmFsIHx8ICcg dXBkYXRlZCBieSBtZXJnZScKICAgV0hFTiBOT1QgTUFUQ0hFRCBUSEVOCi0gICAgSU5TRVJUIFZB TFVFUyAoc2lkLCBkZWx0YSwgJ2luc2VydGVkIGJ5IG1lcmdlJyk7CisgICAgSU5TRVJUIFZBTFVF UyAoc2lkLCBkZWx0YSwgJ2luc2VydGVkIGJ5IG1lcmdlJykKKyAgV0hFTiBOT1QgTUFUQ0hFRCBC WSBTT1VSQ0UgVEhFTgorICAgIFVQREFURSBTRVQgdmFsID0gdmFsIHx8ICcgbm90IG1hdGNoZWQg Ynkgc291cmNlJzsKIEdFVCBESUFHTk9TVElDUyByZXN1bHQgOj0gUk9XX0NPVU5UOwogUkFJU0Ug Tk9USUNFICdST1dfQ09VTlQgPSAlJywgcmVzdWx0OwogRU5EOwogJCQ7Ci1OT1RJQ0U6ICBST1df Q09VTlQgPSAzCi1TRUxFQ1QgKiBGUk9NIHBhX3RhcmdldCBPUkRFUiBCWSB0aWQ7Ci0gdGlkIHwg YmFsYW5jZSB8ICAgICAgICAgICB2YWwgICAgICAgICAgICAKLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTk9USUNFOiAgUk9XX0NPVU5UID0gNAorU0VMRUNUICog RlJPTSBwYV90YXJnZXQgT1JERVIgQlkgdGlkLCB2YWw7CisgdGlkIHwgYmFsYW5jZSB8ICAgICAg ICAgICAgICB2YWwgICAgICAgICAgICAgIAorLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KICAgIDYgfCAgICAgNTUwIHwgaW5pdGlhbCB1cGRhdGVkIGJ5IG1l cmdlCiAgIDEyIHwgICAgMTIxMCB8IGluaXRpYWwgdXBkYXRlZCBieSBtZXJnZQogICAxNCB8ICAg IDE0MzAgfCBpbml0aWFsIHVwZGF0ZWQgYnkgbWVyZ2UKLSgzIHJvd3MpCisgIDE1IHwgICAgMTUw MCB8IGluaXRpYWwgbm90IG1hdGNoZWQgYnkgc291cmNlCisoNCByb3dzKQogCiBST0xMQkFDSzsK IC0tIHRlc3QgUkxTIGVuZm9yY2VtZW50CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3J1bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjZDJjNjQuLjRlNDU5NDEKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9ydWxlcy5vdXQKQEAgLTM3MTgsNyArMzcxOCwzOSBAQCBCRUdJTiBBVE9NSUMKICAgICAgVEhF TiBJTlNFUlQgKGZpbGxpbmdbMV0sIGlkKQogICAgICAgVkFMVUVTIChzLmEsIHMuYSk7CiBFTkQK K0NSRUFURSBGVU5DVElPTiBtZXJnZV9zZl90ZXN0MigpCisgUkVUVVJOUyB2b2lkCisgTEFOR1VB R0Ugc3FsCitCRUdJTiBBVE9NSUMKKyBNRVJHRSBJTlRPIHNmX3RhcmdldCB0CisgICBVU0lORyBy dWxlX21lcmdlMSBzCisgICBPTiAocy5hID0gdC5pZCkKK1dIRU4gTk9UIE1BVENIRUQKKyAgIFRI RU4gSU5TRVJUIChkYXRhLCBpZCkKKyAgIFZBTFVFUyAocy5hLCBzLmEpCitXSEVOIE1BVENIRUQK KyAgIFRIRU4gVVBEQVRFIFNFVCBkYXRhID0gcy5iCitXSEVOIE5PVCBNQVRDSEVEIEJZIFNPVVJD RQorICAgVEhFTiBERUxFVEU7CitFTkQ7Citcc2YgbWVyZ2Vfc2ZfdGVzdDIKK0NSRUFURSBPUiBS RVBMQUNFIEZVTkNUSU9OIHB1YmxpYy5tZXJnZV9zZl90ZXN0MigpCisgUkVUVVJOUyB2b2lkCisg TEFOR1VBR0Ugc3FsCitCRUdJTiBBVE9NSUMKKyBNRVJHRSBJTlRPIHNmX3RhcmdldCB0CisgICAg VVNJTkcgcnVsZV9tZXJnZTEgcworICAgIE9OIChzLmEgPSB0LmlkKQorICAgIFdIRU4gTk9UIE1B VENIRUQgQlkgVEFSR0VUCisgICAgIFRIRU4gSU5TRVJUIChkYXRhLCBpZCkKKyAgICAgIFZBTFVF UyAocy5hLCBzLmEpCisgICAgV0hFTiBNQVRDSEVECisgICAgIFRIRU4gVVBEQVRFIFNFVCBkYXRh ID0gcy5iCisgICAgV0hFTiBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0UKKyAgICAgVEhFTiBERUxFVEU7 CitFTkQKIERST1AgRlVOQ1RJT04gbWVyZ2Vfc2ZfdGVzdDsKK0RST1AgRlVOQ1RJT04gbWVyZ2Vf c2ZfdGVzdDI7CiBEUk9QIFRBQkxFIHNmX3RhcmdldDsKIC0tCiAtLSBUZXN0IGVuYWJsaW5nL2Rp c2FibGluZwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91cGRhdGFibGVf dmlld3Mub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91cGRhdGFibGVfdmlld3Mub3V0 Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5NGNmOWMuLjNhNDNjY2UKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC91cGRhdGFibGVfdmlld3Mub3V0CisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvdXBkYXRhYmxlX3ZpZXdzLm91dApAQCAtNDkxLDYgKzQ5MSwyMyBAQCBT RUxFQ1QgKiBGUk9NIGJhc2VfdGJsIE9SREVSIEJZIGE7CiAgIDUgfCBVbnNwZWNpZmllZAogKDYg cm93cykKIAorTUVSR0UgSU5UTyByd192aWV3MSB0CisgIFVTSU5HIChWQUxVRVMgKDAsICdSMCcp LCAoMSwgJ1IxJyksCisgICAgICAgICAgICAgICAgKDIsICdSMicpLCAoMywgJ1IzJykpIEFTIHYo YSxiKSBPTiB0LmEgPSB2LmEKKyAgV0hFTiBNQVRDSEVEIEFORCB0LmEgPD0gMSBUSEVOIFVQREFU RSBTRVQgYiA9IHYuYgorICBXSEVOIE1BVENIRUQgVEhFTiBERUxFVEUKKyAgV0hFTiBOT1QgTUFU Q0hFRCBCWSBTT1VSQ0UgVEhFTiBERUxFVEUKKyAgV0hFTiBOT1QgTUFUQ0hFRCBBTkQgYSA+IDAg VEhFTiBJTlNFUlQgKGEpIFZBTFVFUyAodi5hKTsKK1NFTEVDVCAqIEZST00gYmFzZV90YmwgT1JE RVIgQlkgYTsKKyBhICB8ICAgICAgYiAgICAgIAorLS0tLSstLS0tLS0tLS0tLS0tCisgLTIgfCBS b3cgLTIKKyAtMSB8IFJvdyAtMQorICAwIHwgUm93IDAKKyAgMSB8IFIxCisgIDMgfCBVbnNwZWNp ZmllZAorKDUgcm93cykKKwogRVhQTEFJTiAoY29zdHMgb2ZmKSBVUERBVEUgcndfdmlldzEgU0VU IGE9NiBXSEVSRSBhPTU7CiAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KQEAgLTUzNyw2ICs1NTQsMjMgQEAgTUVSR0UgSU5UTyByd192aWV3MSB0CiBFWFBMQUlO IChjb3N0cyBvZmYpCiBNRVJHRSBJTlRPIHJ3X3ZpZXcxIHQKICAgVVNJTkcgKFNFTEVDVCAqIEZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsNSkpIEFTIHMoYSkgT04gdC5hID0gcy5hCisgIFdIRU4gTk9U IE1BVENIRUQgQlkgU09VUkNFIFRIRU4gREVMRVRFOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IE1lcmdlIG9uIGJhc2VfdGJsCisgICAtPiAgSGFzaCBMZWZ0IEpvaW4KKyAgICAgICAgIEhhc2gg Q29uZDogKGJhc2VfdGJsLmEgPSBnZW5lcmF0ZV9zZXJpZXMuZ2VuZXJhdGVfc2VyaWVzKQorICAg ICAgICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYmFzZV90YmwKKyAgICAgICAgICAgICAgIFJl Y2hlY2sgQ29uZDogKGEgPiAwKQorICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2Fu IG9uIGJhc2VfdGJsX3BrZXkKKyAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID4g MCkKKyAgICAgICAgIC0+ICBIYXNoCisgICAgICAgICAgICAgICAtPiAgRnVuY3Rpb24gU2NhbiBv biBnZW5lcmF0ZV9zZXJpZXMKKyg5IHJvd3MpCisKK0VYUExBSU4gKGNvc3RzIG9mZikKK01FUkdF IElOVE8gcndfdmlldzEgdAorICBVU0lORyAoU0VMRUNUICogRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSw1KSkgQVMgcyhhKSBPTiB0LmEgPSBzLmEKICAgV0hFTiBOT1QgTUFUQ0hFRCBUSEVOIElOU0VS VCAoYSkgVkFMVUVTIChzLmEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNjQwLDYgKzY3 NCwyMCBAQCBTRUxFQ1QgKiBGUk9NIHJ3X3ZpZXcyIE9SREVSIEJZIGFhYTsKICAgIDUgfCBVbnNw ZWNpZmllZAogKDMgcm93cykKIAorTUVSR0UgSU5UTyByd192aWV3MiB0CisgIFVTSU5HIChWQUxV RVMgKDQsICdyNCcpLCAoNSwgJ3I1JyksICg2LCAncjYnKSkgQVMgdihhLGIpIE9OIGFhYSA9IHYu YQorICBXSEVOIE1BVENIRUQgQU5EIGFhYSA9IDQgVEhFTiBERUxFVEUKKyAgV0hFTiBNQVRDSEVE IFRIRU4gVVBEQVRFIFNFVCBiYmIgPSB2LmIKKyAgV0hFTiBOT1QgTUFUQ0hFRCBUSEVOIElOU0VS VCAoYWFhKSBWQUxVRVMgKHYuYSkKKyAgV0hFTiBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0UgVEhFTiBV UERBVEUgU0VUIGJiYiA9ICdOb3QgbWF0Y2hlZCBieSBzb3VyY2UnOworU0VMRUNUICogRlJPTSBy d192aWV3MiBPUkRFUiBCWSBhYWE7CisgYWFhIHwgICAgICAgICAgYmJiICAgICAgICAgIAorLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIDEgfCBOb3QgbWF0Y2hlZCBieSBzb3VyY2UK KyAgIDUgfCByNQorICAgNiB8IFVuc3BlY2lmaWVkCisoMyByb3dzKQorCiBFWFBMQUlOIChjb3N0 cyBvZmYpIFVQREFURSByd192aWV3MiBTRVQgYWFhPTUgV0hFUkUgYWFhPTQ7CiAgICAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTEwODIs NiArMTEzMCwyMiBAQCBTRUxFQ1QgKiBGUk9NIGJhc2VfdGJsIE9SREVSIEJZIGE7CiAgIDMgfCBS MwogKDUgcm93cykKIAorTUVSR0UgSU5UTyByd192aWV3MiB0CisgIFVTSU5HIChTRUxFQ1QgeCwg J3InfHx4IEZST00gZ2VuZXJhdGVfc2VyaWVzKDAsMikgeCkgQVMgcyhhLGIpIE9OIHQuYSA9IHMu YQorICBXSEVOIE1BVENIRUQgVEhFTiBVUERBVEUgU0VUIGIgPSBzLmIKKyAgV0hFTiBOT1QgTUFU Q0hFRCBBTkQgcy5hID4gMCBUSEVOIElOU0VSVCBWQUxVRVMgKHMuYSwgcy5iKQorICBXSEVOIE5P VCBNQVRDSEVEIEJZIFNPVVJDRSBUSEVOIFVQREFURSBTRVQgYiA9ICdOb3QgbWF0Y2hlZCBieSBz b3VyY2UnOworU0VMRUNUICogRlJPTSBiYXNlX3RibCBPUkRFUiBCWSBhOworIGEgIHwgICAgICAg ICAgIGIgICAgICAgICAgIAorLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIC0yIHwgUm93 IC0yCisgLTEgfCBSb3cgLTEKKyAgMCB8IFJvdyAwCisgIDEgfCByMQorICAyIHwgcjIKKyAgMyB8 IE5vdCBtYXRjaGVkIGJ5IHNvdXJjZQorKDYgcm93cykKKwogRVhQTEFJTiAoY29zdHMgb2ZmKSBV UERBVEUgcndfdmlldzIgU0VUIGE9MyBXSEVSRSBhPTI7CiAgICAgICAgICAgICAgICAgICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9tZXJnZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9tZXJnZS5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzlhMTg2OC4uYTQ2MDdhOAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9tZXJnZS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbWVy Z2Uuc3FsCkBAIC01Myw2ICs1MywxMiBAQCBVU0lORyBzb3VyY2UgQVMgcwogT04gdC50aWQgPSBz LnNpZAogV0hFTiBNQVRDSEVEIFRIRU4KIAlJTlNFUlQgREVGQVVMVCBWQUxVRVM7CistLSBOT1Qg TUFUQ0hFRCBCWSBTT1VSQ0UvSU5TRVJUIGVycm9yCitNRVJHRSBJTlRPIHRhcmdldCB0CitVU0lO RyBzb3VyY2UgQVMgcworT04gdC50aWQgPSBzLnNpZAorV0hFTiBOT1QgTUFUQ0hFRCBCWSBTT1VS Q0UgVEhFTgorCUlOU0VSVCBERUZBVUxUIFZBTFVFUzsKIC0tIGluY29ycmVjdGx5IHNwZWNpZnlp bmcgSU5UTyB0YXJnZXQKIE1FUkdFIElOVE8gdGFyZ2V0IHQKIFVTSU5HIHNvdXJjZSBBUyBzCkBA IC03Nyw2ICs4MywxMiBAQCBVU0lORyBzb3VyY2UgQVMgcwogT04gdC50aWQgPSBzLnNpZAogV0hF TiBOT1QgTUFUQ0hFRCBUSEVOCiAJVVBEQVRFIFNFVCBiYWxhbmNlID0gMDsKKy0tIE5PVCBNQVRD SEVEIEJZIFRBUkdFVC9VUERBVEUKK01FUkdFIElOVE8gdGFyZ2V0IHQKK1VTSU5HIHNvdXJjZSBB UyBzCitPTiB0LnRpZCA9IHMuc2lkCitXSEVOIE5PVCBNQVRDSEVEIEJZIFRBUkdFVCBUSEVOCisJ VVBEQVRFIFNFVCBiYWxhbmNlID0gMDsKIC0tIFVQREFURSB0YWJsZW5hbWUKIE1FUkdFIElOVE8g dGFyZ2V0IHQKIFVTSU5HIHNvdXJjZSBBUyBzCkBAIC0yMTQsNiArMjI2LDE4IEBAIFdIRU4gTk9U IE1BVENIRUQgVEhFTgogU0VMRUNUICogRlJPTSB0YXJnZXQgT1JERVIgQlkgdGlkOwogUk9MTEJB Q0s7CiAKKy0tIERFTEVURS9JTlNFUlQgbm90IG1hdGNoZWQgYnkgc291cmNlL3RhcmdldAorQkVH SU47CitNRVJHRSBJTlRPIHRhcmdldCB0CitVU0lORyBzb3VyY2UgQVMgcworT04gdC50aWQgPSBz LnNpZAorV0hFTiBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0UgVEhFTgorCURFTEVURQorV0hFTiBOT1Qg TUFUQ0hFRCBCWSBUQVJHRVQgVEhFTgorCUlOU0VSVCBWQUxVRVMgKHMuc2lkLCBzLmRlbHRhKTsK K1NFTEVDVCAqIEZST00gdGFyZ2V0IE9SREVSIEJZIHRpZDsKK1JPTExCQUNLOworCiAtLSBpbmRl eCBwbGFucwogSU5TRVJUIElOVE8gdGFyZ2V0IFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMTAwMCwy NTAwKSwgMDsKIEFMVEVSIFRBQkxFIHRhcmdldCBBREQgUFJJTUFSWSBLRVkgKHRpZCk7CkBAIC00 OTgsNiArNTIyLDE3IEBAIFdIRU4gTk9UIE1BVENIRUQgQU5EIHMuYmFsYW5jZSA9IDEwMCBUSEUK IAlJTlNFUlQgKHRpZCkgVkFMVUVTIChzLnNpZCk7CiBTRUxFQ1QgKiBGUk9NIHdxX3RhcmdldDsK IAorLS0gY29uZGl0aW9ucyBpbiBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0UgY2xhdXNlIGNhbiBvbmx5 IHJlZmVyIHRvIHRhcmdldCBjb2x1bW5zCitNRVJHRSBJTlRPIHdxX3RhcmdldCB0CitVU0lORyB3 cV9zb3VyY2UgcyBPTiB0LnRpZCA9IHMuc2lkCitXSEVOIE5PVCBNQVRDSEVEIEJZIFNPVVJDRSBB TkQgcy5iYWxhbmNlID0gMTAwIFRIRU4KKwlERUxFVEU7CisKK01FUkdFIElOVE8gd3FfdGFyZ2V0 IHQKK1VTSU5HIHdxX3NvdXJjZSBzIE9OIHQudGlkID0gcy5zaWQKK1dIRU4gTk9UIE1BVENIRUQg QlkgU09VUkNFIEFORCB0LmJhbGFuY2UgPSAxMDAgVEhFTgorICAgIERFTEVURTsKKwogLS0gY29u ZGl0aW9ucyBpbiBNQVRDSEVEIGNsYXVzZSBjYW4gcmVmZXIgdG8gYm90aCBzb3VyY2UgYW5kIHRh cmdldAogU0VMRUNUICogRlJPTSB3cV9zb3VyY2U7CiBNRVJHRSBJTlRPIHdxX3RhcmdldCB0CkBA IC02MjUsNiArNjYwLDI1IEBAIFdIRU4gTk9UIE1BVENIRUQgVEhFTgogU0VMRUNUICogRlJPTSB0 YXJnZXQgT1JERVIgQlkgdGlkOwogUk9MTEJBQ0s7CiAKKy0tIFVQU0VSVCB3aXRoIFVQREFURS9E RUxFVEUgd2hlbiBub3QgbWF0Y2hlZCBieSBzb3VyY2UKK0JFR0lOOworREVMRVRFIEZST00gU09V UkNFIFdIRVJFIHNpZCA9IDI7CitNRVJHRSBJTlRPIHRhcmdldCB0CitVU0lORyBzb3VyY2UgQVMg cworT04gdC50aWQgPSBzLnNpZAorV0hFTiBNQVRDSEVEIEFORCB0LmJhbGFuY2UgPiBzLmRlbHRh IFRIRU4KKyAgICBVUERBVEUgU0VUIGJhbGFuY2UgPSB0LmJhbGFuY2UgLSBzLmRlbHRhCitXSEVO IE1BVENIRUQgVEhFTgorCVVQREFURSBTRVQgYmFsYW5jZSA9IDAKK1dIRU4gTk9UIE1BVENIRUQg VEhFTgorICAgIElOU0VSVCBWQUxVRVMgKHMuc2lkLCBzLmRlbHRhKQorV0hFTiBOT1QgTUFUQ0hF RCBCWSBTT1VSQ0UgQU5EIHRpZCA9IDEgVEhFTgorCVVQREFURSBTRVQgYmFsYW5jZSA9IDAKK1dI RU4gTk9UIE1BVENIRUQgQlkgU09VUkNFIFRIRU4KKwlERUxFVEU7CitTRUxFQ1QgKiBGUk9NIHRh cmdldCBPUkRFUiBCWSB0aWQ7CitST0xMQkFDSzsKKwogLS0gVGVzdCBiZWhhdmlvciBvZiB0cmln Z2VycyB0aGF0IHR1cm4gVVBEQVRFL0RFTEVURSBpbnRvIG5vLW9wcwogY3JlYXRlIG9yIHJlcGxh Y2UgZnVuY3Rpb24gc2tpcF9tZXJnZV9vcCgpIHJldHVybnMgdHJpZ2dlcgogbGFuZ3VhZ2UgcGxw Z3NxbCBhcwpAQCAtOTMwLDYgKzk4NCwyMCBAQCBXSEVOIE1BVENIRUQgQU5EIHQuYSA+PSAzMCBB TkQgdC5hIDw9IDQwCiBXSEVOIE5PVCBNQVRDSEVEIEFORCBzLmEgPCAyMCBUSEVOCiAJSU5TRVJU IFZBTFVFUyAoYSwgYiknKTsKIAorLS0gbm90IG1hdGNoZWQgYnkgc291cmNlCitTRUxFQ1QgZXhw bGFpbl9tZXJnZSgnCitNRVJHRSBJTlRPIGV4X210YXJnZXQgdCBVU0lORyBleF9tc291cmNlIHMg T04gdC5hID0gcy5hCitXSEVOIE5PVCBNQVRDSEVEIEJZIFNPVVJDRSBhbmQgdC5hIDwgMTAgVEhF TgorCURFTEVURScpOworCistLSBub3QgbWF0Y2hlZCBieSBzb3VyY2UgYW5kIHRhcmdldAorU0VM RUNUIGV4cGxhaW5fbWVyZ2UoJworTUVSR0UgSU5UTyBleF9tdGFyZ2V0IHQgVVNJTkcgZXhfbXNv dXJjZSBzIE9OIHQuYSA9IHMuYQorV0hFTiBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0UgQU5EIHQuYSA8 IDEwIFRIRU4KKwlERUxFVEUKK1dIRU4gTk9UIE1BVENIRUQgQlkgVEFSR0VUIEFORCBzLmEgPCAy MCBUSEVOCisJSU5TRVJUIFZBTFVFUyAoYSwgYiknKTsKKwogLS0gbm90aGluZwogU0VMRUNUIGV4 cGxhaW5fbWVyZ2UoJwogTUVSR0UgSU5UTyBleF9tdGFyZ2V0IHQgVVNJTkcgZXhfbXNvdXJjZSBz IE9OIHQuYSA9IHMuYSBBTkQgdC5hIDwgLTEwMDAKQEAgLTk4NSw3ICsxMDUzLDcgQEAgQ1JFQVRF IFRBQkxFIHBhX3NvdXJjZSAoc2lkIGludGVnZXIsIGRlbAogLS0gaW5zZXJ0IG1hbnkgcm93cyB0 byB0aGUgc291cmNlIHRhYmxlCiBJTlNFUlQgSU5UTyBwYV9zb3VyY2UgU0VMRUNUIGlkLCBpZCAq IDEwICBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDE0KSBBUyBpZDsKIC0tIGluc2VydCBhIGZldyBy b3dzIGluIHRoZSB0YXJnZXQgdGFibGUgKG9kZCBudW1iZXJlZCB0aWQpCi1JTlNFUlQgSU5UTyBw YV90YXJnZXQgU0VMRUNUIGlkLCBpZCAqIDEwMCwgJ2luaXRpYWwnIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsMTQsMikgQVMgaWQ7CitJTlNFUlQgSU5UTyBwYV90YXJnZXQgU0VMRUNUIGlkLCBpZCAq IDEwMCwgJ2luaXRpYWwnIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTUsMikgQVMgaWQ7CiAKIC0t IHRyeSBzaW1wbGUgTUVSR0UKIEJFR0lOOwpAQCAtOTk1LDggKzEwNjMsMTAgQEAgTUVSR0UgSU5U TyBwYV90YXJnZXQgdAogICBXSEVOIE1BVENIRUQgVEhFTgogICAgIFVQREFURSBTRVQgYmFsYW5j ZSA9IGJhbGFuY2UgKyBkZWx0YSwgdmFsID0gdmFsIHx8ICcgdXBkYXRlZCBieSBtZXJnZScKICAg V0hFTiBOT1QgTUFUQ0hFRCBUSEVOCi0gICAgSU5TRVJUIFZBTFVFUyAoc2lkLCBkZWx0YSwgJ2lu c2VydGVkIGJ5IG1lcmdlJyk7Ci1TRUxFQ1QgKiBGUk9NIHBhX3RhcmdldCBPUkRFUiBCWSB0aWQ7 CisgICAgSU5TRVJUIFZBTFVFUyAoc2lkLCBkZWx0YSwgJ2luc2VydGVkIGJ5IG1lcmdlJykKKyAg V0hFTiBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0UgVEhFTgorICAgIFVQREFURSBTRVQgdmFsID0gdmFs IHx8ICcgbm90IG1hdGNoZWQgYnkgc291cmNlJzsKK1NFTEVDVCAqIEZST00gcGFfdGFyZ2V0IE9S REVSIEJZIHRpZCwgdmFsOwogUk9MTEJBQ0s7CiAKIC0tIHNhbWUgd2l0aCBhIGNvbnN0YW50IHF1 YWwKQEAgLTEwMDcsOCArMTA3NywxMCBAQCBNRVJHRSBJTlRPIHBhX3RhcmdldCB0CiAgIFdIRU4g TUFUQ0hFRCBUSEVOCiAgICAgVVBEQVRFIFNFVCBiYWxhbmNlID0gYmFsYW5jZSArIGRlbHRhLCB2 YWwgPSB2YWwgfHwgJyB1cGRhdGVkIGJ5IG1lcmdlJwogICBXSEVOIE5PVCBNQVRDSEVEIFRIRU4K LSAgICBJTlNFUlQgVkFMVUVTIChzaWQsIGRlbHRhLCAnaW5zZXJ0ZWQgYnkgbWVyZ2UnKTsKLVNF TEVDVCAqIEZST00gcGFfdGFyZ2V0IE9SREVSIEJZIHRpZDsKKyAgICBJTlNFUlQgVkFMVUVTIChz aWQsIGRlbHRhLCAnaW5zZXJ0ZWQgYnkgbWVyZ2UnKQorICBXSEVOIE5PVCBNQVRDSEVEIEJZIFNP VVJDRSBUSEVOCisgICAgVVBEQVRFIFNFVCB2YWwgPSB2YWwgfHwgJyBub3QgbWF0Y2hlZCBieSBz b3VyY2UnOworU0VMRUNUICogRlJPTSBwYV90YXJnZXQgT1JERVIgQlkgdGlkLCB2YWw7CiBST0xM QkFDSzsKIAogLS0gdHJ5IHVwZGF0aW5nIHRoZSBwYXJ0aXRpb24ga2V5IGNvbHVtbgpAQCAtMTAy Myw3ICsxMDk1LDkgQEAgTUVSR0UgSU5UTyBwYV90YXJnZXQgdAogICBXSEVOIE1BVENIRUQgVEhF TgogICAgIFVQREFURSBTRVQgdGlkID0gdGlkICsgMSwgYmFsYW5jZSA9IGJhbGFuY2UgKyBkZWx0 YSwgdmFsID0gdmFsIHx8ICcgdXBkYXRlZCBieSBtZXJnZScKICAgV0hFTiBOT1QgTUFUQ0hFRCBU SEVOCi0gICAgSU5TRVJUIFZBTFVFUyAoc2lkLCBkZWx0YSwgJ2luc2VydGVkIGJ5IG1lcmdlJyk7 CisgICAgSU5TRVJUIFZBTFVFUyAoc2lkLCBkZWx0YSwgJ2luc2VydGVkIGJ5IG1lcmdlJykKKyAg V0hFTiBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0UgVEhFTgorICAgIFVQREFURSBTRVQgdGlkID0gMSwg dmFsID0gdmFsIHx8ICcgbm90IG1hdGNoZWQgYnkgc291cmNlJzsKIElGIEZPVU5EIFRIRU4KICAg R0VUIERJQUdOT1NUSUNTIHJlc3VsdCA6PSBST1dfQ09VTlQ7CiBFTkQgSUY7CkBAIC0xMDMxLDcg KzExMDUsNyBAQCBSRVRVUk4gcmVzdWx0OwogRU5EOwogJCQ7CiBTRUxFQ1QgbWVyZ2VfZnVuYygp OwotU0VMRUNUICogRlJPTSBwYV90YXJnZXQgT1JERVIgQlkgdGlkOworU0VMRUNUICogRlJPTSBw YV90YXJnZXQgT1JERVIgQlkgdGlkLCB2YWw7CiBST0xMQkFDSzsKIAogRFJPUCBUQUJMRSBwYV90 YXJnZXQgQ0FTQ0FERTsKQEAgLTEwNTcsNyArMTEzMSw3IEBAIEFMVEVSIFRBQkxFIHBhX3Rhcmdl dCBBVFRBQ0ggUEFSVElUSU9OIHAKIEFMVEVSIFRBQkxFIHBhX3RhcmdldCBBVFRBQ0ggUEFSVElU SU9OIHBhcnQ0IERFRkFVTFQ7CiAKIC0tIGluc2VydCBhIGZldyByb3dzIGluIHRoZSB0YXJnZXQg dGFibGUgKG9kZCBudW1iZXJlZCB0aWQpCi1JTlNFUlQgSU5UTyBwYV90YXJnZXQgU0VMRUNUIGlk LCBpZCAqIDEwMCwgJ2luaXRpYWwnIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTQsMikgQVMgaWQ7 CitJTlNFUlQgSU5UTyBwYV90YXJnZXQgU0VMRUNUIGlkLCBpZCAqIDEwMCwgJ2luaXRpYWwnIEZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsMTUsMikgQVMgaWQ7CiAKIC0tIHRyeSBzaW1wbGUgTUVSR0UK IEJFR0lOOwpAQCAtMTA3MSwxMiArMTE0NSwxNCBAQCBNRVJHRSBJTlRPIHBhX3RhcmdldCB0CiAg IFdIRU4gTUFUQ0hFRCBUSEVOCiAgICAgVVBEQVRFIFNFVCBiYWxhbmNlID0gYmFsYW5jZSArIGRl bHRhLCB2YWwgPSB2YWwgfHwgJyB1cGRhdGVkIGJ5IG1lcmdlJwogICBXSEVOIE5PVCBNQVRDSEVE IFRIRU4KLSAgICBJTlNFUlQgVkFMVUVTIChzaWQsIGRlbHRhLCAnaW5zZXJ0ZWQgYnkgbWVyZ2Un KTsKKyAgICBJTlNFUlQgVkFMVUVTIChzaWQsIGRlbHRhLCAnaW5zZXJ0ZWQgYnkgbWVyZ2UnKQor ICBXSEVOIE5PVCBNQVRDSEVEIEJZIFNPVVJDRSBUSEVOCisgICAgVVBEQVRFIFNFVCB2YWwgPSB2 YWwgfHwgJyBub3QgbWF0Y2hlZCBieSBzb3VyY2UnOwogR0VUIERJQUdOT1NUSUNTIHJlc3VsdCA6 PSBST1dfQ09VTlQ7CiBSQUlTRSBOT1RJQ0UgJ1JPV19DT1VOVCA9ICUnLCByZXN1bHQ7CiBFTkQ7 CiAkJDsKLVNFTEVDVCAqIEZST00gcGFfdGFyZ2V0IE9SREVSIEJZIHRpZDsKK1NFTEVDVCAqIEZS T00gcGFfdGFyZ2V0IE9SREVSIEJZIHRpZCwgdmFsOwogUk9MTEJBQ0s7CiAKIC0tIHNhbWUgd2l0 aCBhIGNvbnN0YW50IHF1YWwKQEAgLTEwODgsOCArMTE2NCwxMCBAQCBNRVJHRSBJTlRPIHBhX3Rh cmdldCB0CiAgIFdIRU4gTUFUQ0hFRCBUSEVOCiAgICAgVVBEQVRFIFNFVCBiYWxhbmNlID0gYmFs YW5jZSArIGRlbHRhLCB2YWwgPSB2YWwgfHwgJyB1cGRhdGVkIGJ5IG1lcmdlJwogICBXSEVOIE5P VCBNQVRDSEVEIFRIRU4KLSAgICBJTlNFUlQgVkFMVUVTIChzaWQsIGRlbHRhLCAnaW5zZXJ0ZWQg YnkgbWVyZ2UnKTsKLVNFTEVDVCAqIEZST00gcGFfdGFyZ2V0IE9SREVSIEJZIHRpZDsKKyAgICBJ TlNFUlQgVkFMVUVTIChzaWQsIGRlbHRhLCAnaW5zZXJ0ZWQgYnkgbWVyZ2UnKQorICBXSEVOIE5P VCBNQVRDSEVEIEJZIFNPVVJDRSBUSEVOCisgICAgVVBEQVRFIFNFVCB2YWwgPSB2YWwgfHwgJyBu b3QgbWF0Y2hlZCBieSBzb3VyY2UnOworU0VMRUNUICogRlJPTSBwYV90YXJnZXQgT1JERVIgQlkg dGlkLCB2YWw7CiBST0xMQkFDSzsKIAogLS0gdHJ5IHVwZGF0aW5nIHRoZSBwYXJ0aXRpb24ga2V5 IGNvbHVtbgpAQCAtMTEwNCwxMiArMTE4MiwxNCBAQCBNRVJHRSBJTlRPIHBhX3RhcmdldCB0CiAg IFdIRU4gTUFUQ0hFRCBUSEVOCiAgICAgVVBEQVRFIFNFVCB0aWQgPSB0aWQgKyAxLCBiYWxhbmNl ID0gYmFsYW5jZSArIGRlbHRhLCB2YWwgPSB2YWwgfHwgJyB1cGRhdGVkIGJ5IG1lcmdlJwogICBX SEVOIE5PVCBNQVRDSEVEIFRIRU4KLSAgICBJTlNFUlQgVkFMVUVTIChzaWQsIGRlbHRhLCAnaW5z ZXJ0ZWQgYnkgbWVyZ2UnKTsKKyAgICBJTlNFUlQgVkFMVUVTIChzaWQsIGRlbHRhLCAnaW5zZXJ0 ZWQgYnkgbWVyZ2UnKQorICBXSEVOIE5PVCBNQVRDSEVEIEJZIFNPVVJDRSBUSEVOCisgICAgVVBE QVRFIFNFVCB0aWQgPSAxLCB2YWwgPSB2YWwgfHwgJyBub3QgbWF0Y2hlZCBieSBzb3VyY2UnOwog R0VUIERJQUdOT1NUSUNTIHJlc3VsdCA6PSBST1dfQ09VTlQ7CiBSQUlTRSBOT1RJQ0UgJ1JPV19D T1VOVCA9ICUnLCByZXN1bHQ7CiBFTkQ7CiAkJDsKLVNFTEVDVCAqIEZST00gcGFfdGFyZ2V0IE9S REVSIEJZIHRpZDsKK1NFTEVDVCAqIEZST00gcGFfdGFyZ2V0IE9SREVSIEJZIHRpZCwgdmFsOwog Uk9MTEJBQ0s7CiAKIC0tIGFzIGFib3ZlLCBidXQgYmxvY2tlZCBieSBCRUZPUkUgREVMRVRFIFJP VyB0cmlnZ2VyCkBAIC0xMTI4LDEyICsxMjA4LDE0IEBAIE1FUkdFIElOVE8gcGFfdGFyZ2V0IHQK ICAgV0hFTiBNQVRDSEVEIFRIRU4KICAgICBVUERBVEUgU0VUIHRpZCA9IHRpZCArIDEsIGJhbGFu Y2UgPSBiYWxhbmNlICsgZGVsdGEsIHZhbCA9IHZhbCB8fCAnIHVwZGF0ZWQgYnkgbWVyZ2UnCiAg IFdIRU4gTk9UIE1BVENIRUQgVEhFTgotICAgIElOU0VSVCBWQUxVRVMgKHNpZCwgZGVsdGEsICdp bnNlcnRlZCBieSBtZXJnZScpOworICAgIElOU0VSVCBWQUxVRVMgKHNpZCwgZGVsdGEsICdpbnNl cnRlZCBieSBtZXJnZScpCisgIFdIRU4gTk9UIE1BVENIRUQgQlkgU09VUkNFIFRIRU4KKyAgICBV UERBVEUgU0VUIHZhbCA9IHZhbCB8fCAnIG5vdCBtYXRjaGVkIGJ5IHNvdXJjZSc7CiBHRVQgRElB R05PU1RJQ1MgcmVzdWx0IDo9IFJPV19DT1VOVDsKIFJBSVNFIE5PVElDRSAnUk9XX0NPVU5UID0g JScsIHJlc3VsdDsKIEVORDsKICQkOwotU0VMRUNUICogRlJPTSBwYV90YXJnZXQgT1JERVIgQlkg dGlkOworU0VMRUNUICogRlJPTSBwYV90YXJnZXQgT1JERVIgQlkgdGlkLCB2YWw7CiBST0xMQkFD SzsKIAogLS0gYXMgYWJvdmUsIGJ1dCBibG9ja2VkIGJ5IEJFRk9SRSBJTlNFUlQgUk9XIHRyaWdn ZXIKQEAgLTExNTIsMTIgKzEyMzQsMTQgQEAgTUVSR0UgSU5UTyBwYV90YXJnZXQgdAogICBXSEVO IE1BVENIRUQgVEhFTgogICAgIFVQREFURSBTRVQgdGlkID0gdGlkICsgMSwgYmFsYW5jZSA9IGJh bGFuY2UgKyBkZWx0YSwgdmFsID0gdmFsIHx8ICcgdXBkYXRlZCBieSBtZXJnZScKICAgV0hFTiBO T1QgTUFUQ0hFRCBUSEVOCi0gICAgSU5TRVJUIFZBTFVFUyAoc2lkLCBkZWx0YSwgJ2luc2VydGVk IGJ5IG1lcmdlJyk7CisgICAgSU5TRVJUIFZBTFVFUyAoc2lkLCBkZWx0YSwgJ2luc2VydGVkIGJ5 IG1lcmdlJykKKyAgV0hFTiBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0UgVEhFTgorICAgIFVQREFURSBT RVQgdmFsID0gdmFsIHx8ICcgbm90IG1hdGNoZWQgYnkgc291cmNlJzsKIEdFVCBESUFHTk9TVElD UyByZXN1bHQgOj0gUk9XX0NPVU5UOwogUkFJU0UgTk9USUNFICdST1dfQ09VTlQgPSAlJywgcmVz dWx0OwogRU5EOwogJCQ7Ci1TRUxFQ1QgKiBGUk9NIHBhX3RhcmdldCBPUkRFUiBCWSB0aWQ7CitT RUxFQ1QgKiBGUk9NIHBhX3RhcmdldCBPUkRFUiBCWSB0aWQsIHZhbDsKIFJPTExCQUNLOwogCiAt LSB0ZXN0IFJMUyBlbmZvcmNlbWVudApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv cnVsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnVsZXMuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDY5MjQwMTIuLjE5OGI0Y2QKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv cnVsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3J1bGVzLnNxbApAQCAtMTMzNiw3 ICsxMzM2LDI2IEBAIEVORDsKIAogXHNmIG1lcmdlX3NmX3Rlc3QKIAorQ1JFQVRFIEZVTkNUSU9O IG1lcmdlX3NmX3Rlc3QyKCkKKyBSRVRVUk5TIHZvaWQKKyBMQU5HVUFHRSBzcWwKK0JFR0lOIEFU T01JQworIE1FUkdFIElOVE8gc2ZfdGFyZ2V0IHQKKyAgIFVTSU5HIHJ1bGVfbWVyZ2UxIHMKKyAg IE9OIChzLmEgPSB0LmlkKQorV0hFTiBOT1QgTUFUQ0hFRAorICAgVEhFTiBJTlNFUlQgKGRhdGEs IGlkKQorICAgVkFMVUVTIChzLmEsIHMuYSkKK1dIRU4gTUFUQ0hFRAorICAgVEhFTiBVUERBVEUg U0VUIGRhdGEgPSBzLmIKK1dIRU4gTk9UIE1BVENIRUQgQlkgU09VUkNFCisgICBUSEVOIERFTEVU RTsKK0VORDsKKworXHNmIG1lcmdlX3NmX3Rlc3QyCisKIERST1AgRlVOQ1RJT04gbWVyZ2Vfc2Zf dGVzdDsKK0RST1AgRlVOQ1RJT04gbWVyZ2Vfc2ZfdGVzdDI7CiBEUk9QIFRBQkxFIHNmX3Rhcmdl dDsKIAogLS0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3VwZGF0YWJsZV92aWV3 cy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC91cGRhdGFibGVfdmlld3Muc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IGFlMTFlNDYuLjI1MWVhYmYKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvdXBkYXRhYmxlX3ZpZXdzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC91cGRh dGFibGVfdmlld3Muc3FsCkBAIC0xNzgsNiArMTc4LDE1IEBAIE1FUkdFIElOVE8gcndfdmlldzEg dAogICBXSEVOIE5PVCBNQVRDSEVEIEFORCBhID4gMCBUSEVOIElOU0VSVCAoYSkgVkFMVUVTICh2 LmEpOwogU0VMRUNUICogRlJPTSBiYXNlX3RibCBPUkRFUiBCWSBhOwogCitNRVJHRSBJTlRPIHJ3 X3ZpZXcxIHQKKyAgVVNJTkcgKFZBTFVFUyAoMCwgJ1IwJyksICgxLCAnUjEnKSwKKyAgICAgICAg ICAgICAgICAoMiwgJ1IyJyksICgzLCAnUjMnKSkgQVMgdihhLGIpIE9OIHQuYSA9IHYuYQorICBX SEVOIE1BVENIRUQgQU5EIHQuYSA8PSAxIFRIRU4gVVBEQVRFIFNFVCBiID0gdi5iCisgIFdIRU4g TUFUQ0hFRCBUSEVOIERFTEVURQorICBXSEVOIE5PVCBNQVRDSEVEIEJZIFNPVVJDRSBUSEVOIERF TEVURQorICBXSEVOIE5PVCBNQVRDSEVEIEFORCBhID4gMCBUSEVOIElOU0VSVCAoYSkgVkFMVUVT ICh2LmEpOworU0VMRUNUICogRlJPTSBiYXNlX3RibCBPUkRFUiBCWSBhOworCiBFWFBMQUlOIChj b3N0cyBvZmYpIFVQREFURSByd192aWV3MSBTRVQgYT02IFdIRVJFIGE9NTsKIEVYUExBSU4gKGNv c3RzIG9mZikgREVMRVRFIEZST00gcndfdmlldzEgV0hFUkUgYT01OwogCkBAIC0xOTMsNiArMjAy LDExIEBAIE1FUkdFIElOVE8gcndfdmlldzEgdAogRVhQTEFJTiAoY29zdHMgb2ZmKQogTUVSR0Ug SU5UTyByd192aWV3MSB0CiAgIFVTSU5HIChTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3Nlcmllcygx LDUpKSBBUyBzKGEpIE9OIHQuYSA9IHMuYQorICBXSEVOIE5PVCBNQVRDSEVEIEJZIFNPVVJDRSBU SEVOIERFTEVURTsKKworRVhQTEFJTiAoY29zdHMgb2ZmKQorTUVSR0UgSU5UTyByd192aWV3MSB0 CisgIFVTSU5HIChTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDUpKSBBUyBzKGEpIE9O IHQuYSA9IHMuYQogICBXSEVOIE5PVCBNQVRDSEVEIFRIRU4gSU5TRVJUIChhKSBWQUxVRVMgKHMu YSk7CiAKIC0tIGl0J3Mgc3RpbGwgdXBkYXRhYmxlIGlmIHdlIGFkZCBhIERPIEFMU08gcnVsZQpA QCAtMjQ5LDYgKzI2MywxNCBAQCBNRVJHRSBJTlRPIHJ3X3ZpZXcyIHQKICAgV0hFTiBOT1QgTUFU Q0hFRCBUSEVOIElOU0VSVCAoYWFhKSBWQUxVRVMgKHYuYSk7CiBTRUxFQ1QgKiBGUk9NIHJ3X3Zp ZXcyIE9SREVSIEJZIGFhYTsKIAorTUVSR0UgSU5UTyByd192aWV3MiB0CisgIFVTSU5HIChWQUxV RVMgKDQsICdyNCcpLCAoNSwgJ3I1JyksICg2LCAncjYnKSkgQVMgdihhLGIpIE9OIGFhYSA9IHYu YQorICBXSEVOIE1BVENIRUQgQU5EIGFhYSA9IDQgVEhFTiBERUxFVEUKKyAgV0hFTiBNQVRDSEVE IFRIRU4gVVBEQVRFIFNFVCBiYmIgPSB2LmIKKyAgV0hFTiBOT1QgTUFUQ0hFRCBUSEVOIElOU0VS VCAoYWFhKSBWQUxVRVMgKHYuYSkKKyAgV0hFTiBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0UgVEhFTiBV UERBVEUgU0VUIGJiYiA9ICdOb3QgbWF0Y2hlZCBieSBzb3VyY2UnOworU0VMRUNUICogRlJPTSBy d192aWV3MiBPUkRFUiBCWSBhYWE7CisKIEVYUExBSU4gKGNvc3RzIG9mZikgVVBEQVRFIHJ3X3Zp ZXcyIFNFVCBhYWE9NSBXSEVSRSBhYWE9NDsKIEVYUExBSU4gKGNvc3RzIG9mZikgREVMRVRFIEZS T00gcndfdmlldzIgV0hFUkUgYWFhPTQ7CiAKQEAgLTQ2MSw2ICs0ODMsMTMgQEAgTUVSR0UgSU5U TyByd192aWV3MiB0CiAgIFdIRU4gTk9UIE1BVENIRUQgQU5EIHMuYSA+IDAgVEhFTiBJTlNFUlQg VkFMVUVTIChzLmEsIHMuYik7CiBTRUxFQ1QgKiBGUk9NIGJhc2VfdGJsIE9SREVSIEJZIGE7CiAK K01FUkdFIElOVE8gcndfdmlldzIgdAorICBVU0lORyAoU0VMRUNUIHgsICdyJ3x8eCBGUk9NIGdl bmVyYXRlX3NlcmllcygwLDIpIHgpIEFTIHMoYSxiKSBPTiB0LmEgPSBzLmEKKyAgV0hFTiBNQVRD SEVEIFRIRU4gVVBEQVRFIFNFVCBiID0gcy5iCisgIFdIRU4gTk9UIE1BVENIRUQgQU5EIHMuYSA+ IDAgVEhFTiBJTlNFUlQgVkFMVUVTIChzLmEsIHMuYikKKyAgV0hFTiBOT1QgTUFUQ0hFRCBCWSBT T1VSQ0UgVEhFTiBVUERBVEUgU0VUIGIgPSAnTm90IG1hdGNoZWQgYnkgc291cmNlJzsKK1NFTEVD VCAqIEZST00gYmFzZV90YmwgT1JERVIgQlkgYTsKKwogRVhQTEFJTiAoY29zdHMgb2ZmKSBVUERB VEUgcndfdmlldzIgU0VUIGE9MyBXSEVSRSBhPTI7CiBFWFBMQUlOIChjb3N0cyBvZmYpIERFTEVU RSBGUk9NIHJ3X3ZpZXcyIFdIRVJFIGE9MjsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYTdhMjViLi4wOGI3MmM1Ci0tLSBhL3NyYy90b29scy9w Z2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5s aXN0CkBAIC0xNTc0LDYgKzE1NzQsNyBAQCBNZXJnZUFwcGVuZFN0YXRlCiBNZXJnZUpvaW4KIE1l cmdlSm9pbkNsYXVzZQogTWVyZ2VKb2luU3RhdGUKK01lcmdlTWF0Y2hLaW5kCiBNZXJnZVBhdGgK IE1lcmdlU2NhblNlbENhY2hlCiBNZXJnZVN0bXQK --0000000000008fadbb06138ba433--