Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wecQi-004uET-1m for pgsql-hackers@arkaria.postgresql.org; Tue, 30 Jun 2026 17:39:29 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wecQh-009WDN-1L for pgsql-hackers@arkaria.postgresql.org; Tue, 30 Jun 2026 17:39:27 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wecQg-009WDF-2u for pgsql-hackers@lists.postgresql.org; Tue, 30 Jun 2026 17:39:27 +0000 Received: from mail-yx1-xb135.google.com ([2607:f8b0:4864:20::b135]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wecQd-000000013aT-3TZ0 for pgsql-hackers@postgresql.org; Tue, 30 Jun 2026 17:39:26 +0000 Received: by mail-yx1-xb135.google.com with SMTP id 956f58d0204a3-664c7dc6830so1991751d50.0 for ; Tue, 30 Jun 2026 10:39:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1782841162; cv=none; d=google.com; s=arc-20260327; b=dmiWpvZkHXPZ6q0nu9RsJqaAeUZ2Vchc88YcPTlVlmnWROqaNiHl0QOEnTg7Qv7RPY orf3GEG01QgFzLZEbgrvSjsLoJRqd+yTouFsJxok+kQXelytwY1Lb4/k2AqsoB4/2UBR vgUYap3KmS8fK4x//rgDEHkUy1+30DZRzvc1WrKjSNcXXjHBRpUJh9PzC+OvzhMpkKLJ Fs5ilIwVFTlbPG/qws8RXuIiFKZatSpJT2PrFNGxE1ZLzhGGIi/1BMLXEnsSJd7TTxPH 6sLl+MztEumzvBhPZVDLnrupt2CxakO4tTYaRpOoTcmJgMELobXmXlu7RNpX9p48LKCa E/VA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=Dp54MmSCRxRPxNh15BbEXuRM+5HwY6xBnzJxtkGFkUI=; fh=wGEyUYjLz78fnltEDq0437DmGJoMcI6CPFMsbpHeA5w=; b=hV3nSsswDS8uh2wuUOogopB091ECGqlvOoDQkAHej/I/ufHoabAp+rBN1B+gs5Sc5e 1E4y1FYJ4lA7uu71nAgKcMYtR2KOSBf7KCy8k2SdaBa0ueK8tcjvo1fnJhOPV6LZPrGK tZYL7xdz6vwxFoXd17NOGILacHycVvGxLsbL72mTuoKlewq0VLf78897ab7fke2m7yji 9bQQRq/ad5ya60wjfKw/V6F2nSP/tg7lTXpHB9zua2Dac36JRXp9Vj8m55uuOMRCXqFl xPUA2Aq5UQNxDGtawUpZ2N7ST9CSzbFUomvO909PZD0ZXzllARl1VBLZJckk+slUf7FZ 8IIg==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782841162; x=1783445962; darn=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=Dp54MmSCRxRPxNh15BbEXuRM+5HwY6xBnzJxtkGFkUI=; b=GXXemJ6y4h5PWyvGu9uLbGCtM7eCSZqZ9x8TgprHQuJJWnCfiS6oS5APgjz+DUy59p auWQ9ovArAQE+herh+dtNmpJ8VtI5/LtunOsxS8oVFj4YmAqcfQw+0x5IrxU9lS4kGyL GdMAg1PswHvhm8f5/RjtSP2F1pdKwKaPX4XZSHdVm0zVnwqCYggkJwhsOL5T1OjRZGUl qJHHcjiNQIwqowxtDueGG2IlIcSNQv4+cW9SeBbs7aQPK/dsjJc9uNI14EWw/FxjG/fh BkMpEo835th7QyXdXkOkhOXa1iY32fX/ZbbukkfveuAPxFJ3lpApoGj9D7v14bd8p34S pb1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782841162; x=1783445962; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Dp54MmSCRxRPxNh15BbEXuRM+5HwY6xBnzJxtkGFkUI=; b=fDP5xfC/sBeNFRegTTiAYXvzKl9WOnwoRK8dKZ8vM29P9UmPJo0J4kKCvQq95UqvRd q2aljCIXM+tZwatbTHNFZBFnjN2yn+sHmWUQ2GScivIKOfwkuRL8G+Xt+t8vjnOQshmy WxzQ2erhcWjf2yMNFigi+RWsJyL0ezT5EhWT0XuwXFVAGtQjGCV/x3p/QVLcaTsa8qJ2 SadKjVKMWJawG9RXV0ey3aj5nPGtRJdbg9fy+gnK+rmFeoIsegMXL+IdvCHAvt+piYoI puHKqpL+Zvs8LyHClz3AMmGolOYUyHNKlDXzg1vllF22d5pKryP8P27qLpIOY3P/qfrL BDWg== X-Forwarded-Encrypted: i=1; AHgh+RpsthorL4RwPGrFRRUxe7SVkfRZ4ZOrU1aLrUWGYeijGkl3ATkVlFzMY4BrhE/TQ4sek+lT711HMzc0qTc+@postgresql.org X-Gm-Message-State: AOJu0YyAYEEP+rjzl/23K6XO8/CmZUBMoAhziBuYDei7sIJBNx6s0kGc D854S2C4P03bPoMS7H+tDHpyV3PO4IX38o/IAXD54vfe/pXFy/dDw6HTSuEzT2MhVxetLm4W3Fc ZmZe7YMnPxVIrYijzfxu/HY7K0SoUfYo= X-Gm-Gg: AfdE7cmAdkz3qitdwnmkjFGPCoD97X06+AFcJQQSPEpN+olTbmDU7VQlE6ouK2usC4S tbTGUS8nJ1j4B+kbaxjhGg8/nOaFVaNhPzH+boX5hv8Bp5a1NMwSRTp3nFkK9/mZGuh1UydaTYO u//wmDr9oN+ZwnAofxOsXCD5YqJINHa2va59OgxHeynGlU4h6UX56/59s/loPiL5VnCzT+qH9od 4Sn+DN/WkZgxKVwtwL6MgQiUrZgi5Yz91Il6XgBzRO53+MWC94BkvhuBgDQPYiN3kEP6uHxQljk iBsTBp5JZQfVOaRFh8XrobiE0JPNRVxASjw= X-Received: by 2002:a05:690e:440f:b0:664:aa85:a7e2 with SMTP id 956f58d0204a3-664f979535emr3504339d50.28.1782841162152; Tue, 30 Jun 2026 10:39:22 -0700 (PDT) MIME-Version: 1.0 References: <4c358bf8-87e8-4760-83d5-a6f9fcd88907@postgresfriends.org> <1b702de4-86b0-4144-a2d0-38266296894f@postgresfriends.org> <82b4223e-84d4-432d-8167-dd698ce489f5@postgresfriends.org> In-Reply-To: From: Haibo Yan Date: Tue, 30 Jun 2026 10:39:10 -0700 X-Gm-Features: AVVi8CfDprX0j9hcXYq_giHfKiXZU6tPoHPQkPMDEABV5lqiUeb-M1_KAa4lya4 Message-ID: Subject: Re: implement CAST(expr AS type FORMAT 'template') To: Robert Haas Cc: Corey Huinker , jian he , Zsolt Parragi , Vik Fearing , "David G. Johnston" , PostgreSQL-development Content-Type: multipart/mixed; boundary="00000000000029b62906557c0e56" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000029b62906557c0e56 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Jun 29, 2026 at 11:14=E2=80=AFAM Robert Haas wrote: > > On Mon, Jun 29, 2026 at 1:20=E2=80=AFAM Haibo Yan = wrote: > > I have attached the full patch series for review. Comments are welcome= . > > This looks good! > > I haven't done a detailed review, but I skimmed over all of the > patches and I like the direction. I think we should consider calling > it a "format cast" instead of a "formatter". It would avoid needing to > make "formatter" a parser keyword. > > -- > Robert Haas > EDB: http://www.enterprisedb.com Hi Robert, Thanks for looking at the patches. I liked your suggestion to call these =E2=80=9Cformat casts=E2=80=9D rather= than =E2=80=9Cformatters=E2=80=9D, so I changed the series in that direction. T= he DDL is now: ------------------------------------------------------ CREATE FORMAT CAST (...) DROP FORMAT CAST (...) ------------------------------------------------------ rather than CREATE/DROP FORMATTER, so the patch no longer adds FORMATTER as a keyword. I also renamed the related catalog and node names, so this now uses pg_format_cast and CoerceViaFormatCast. The pg_dump/object-address/comment/extension code and the regression tests have been updated to use the new terminology as well. The rest of the design is the same as before: format casts are still catalog-driven, and both built-in and user-defined cases go through the same lookup path. Attached is the updated v2 series. Regards, Haibo --00000000000029b62906557c0e56 Content-Type: application/octet-stream; name="v2-0004-Add-built-in-format-casts-for-CAST-FORMAT.patch" Content-Disposition: attachment; filename="v2-0004-Add-built-in-format-casts-for-CAST-FORMAT.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mr0xl5w13 RnJvbSAwZTFlODk5OTU1ZGJlZGJhZGM5MDljNmNhNTRjOWRkY2ZiNTQ1YjczIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIYWlibyBZYW4gPHRyaXN0YW4ueWltQGdtYWlsLmNvbT4KRGF0 ZTogU3VuLCAyOCBKdW4gMjAyNiAxMzoyODoxOSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggNC80XSBB ZGQgYnVpbHQtaW4gZm9ybWF0IGNhc3RzIGZvciBDQVNUIC4uLiBGT1JNQVQKCkFkZCBidWlsdC1p biBmb3JtYXQgY2FzdCBmdW5jdGlvbnMgYW5kIHBnX2Zvcm1hdF9jYXN0IGJvb3RzdHJhcCByb3dz IGZvciB0aGUKaW5pdGlhbCBkYXRldGltZS9zdHJpbmcgZm9ybWF0dGVkIGNhc3RzOgoKICAgIHRl eHQvdmFyY2hhci9icGNoYXIgPC0+IGRhdGUKICAgIHRleHQvdmFyY2hhci9icGNoYXIgPC0+IHRp bWVzdGFtcAogICAgdGV4dC92YXJjaGFyL2JwY2hhciA8LT4gdGltZXN0YW1wdHoKClRoZSB3cmFw cGVycyByZXVzZSBQb3N0Z3JlU1FMJ3MgZXhpc3RpbmcgZm9ybWF0dGluZyBjb2RlIGFuZCBhcmUg cmVhY2hlZAp0aHJvdWdoIHBnX2Zvcm1hdF9jYXN0LCBub3QgYnkgcGFyc2VyIG9yIGFuYWx5emVy IHNwZWNpYWwgY2FzZXMuICBUaGV5IGFyZQpTVFJJQ1QsIHNvIE5VTEwgaW5wdXQgb3IgTlVMTCBG T1JNQVQgcmV0dXJucyBOVUxMLgoKVGhpcyBwcm92aWRlcyBTUUwtc3RhbmRhcmQtc3R5bGUgQ0FT VCAuLi4gRk9STUFUIHN1cHBvcnQgZm9yIHRoZSBjb21tb24KZGF0ZXRpbWUvc3RyaW5nIGNhc2Vz LCB3aGlsZSBrZWVwaW5nIFBvc3RncmVTUUwgZXh0ZW5zaW9ucyBmcm9tIHRoZQpnZW5lcmljIGlu ZnJhc3RydWN0dXJlOiBGT1JNQVQgbWF5IGJlIGFueSBleHByZXNzaW9uIGNvZXJjaWJsZSB0byB0 ZXh0LAphbmQgZm9ybWF0IGNhc3QgbG9va3VwIHJlbWFpbnMgY2F0YWxvZy1kcml2ZW4uICBUaGUg cGF0Y2ggZG9lcyBub3QgY2xhaW0KY29tcGxldGUgU1FMLXN0YW5kYXJkIGRhdGV0aW1lLXRlbXBs YXRlIGNvbmZvcm1hbmNlOyB0aW1lLCB0aW1ldHosCm51bWVyaWMsIGludGVydmFsLCBhbmQgZnVs bGVyIHRlbXBsYXRlIGNvdmVyYWdlIGFyZSBsZWZ0IGZvciBmdXR1cmUgd29yay4KCkJ1aWx0LWlu IGZvcm1hdCBjYXN0IHJvd3MgYXJlIHRyZWF0ZWQgYXMgc3lzdGVtIG9iamVjdHMgYW5kIGFyZSBu b3QgZHVtcGVkCmJ5IHBnX2R1bXAuCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zvcm1hdHRp bmcuYyAgICAgICAgIHwgMzE3ICsrKysrKysrKysrKysrKysrKysrKwogc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgIHwgIDI1ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9n L3BnX2Zvcm1hdF9jYXN0LmRhdCAgICAgfCAgNzEgKysrKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQgICAgICAgICAgICB8ICA3NSArKysrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9leHByZXNzaW9ucy5vdXQgIHwgIDI1ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2Zvcm1hdF9jYXN0cy5vdXQgfCAyNzkgKysrKysrKysrKysrKysrKystCiBzcmMvdGVzdC9yZWdy ZXNzL3NxbC9leHByZXNzaW9ucy5zcWwgICAgICAgfCAgMTcgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2Zvcm1hdF9jYXN0cy5zcWwgICAgICB8IDEyOCArKysrKysrKy0KIDggZmlsZXMgY2hhbmdl ZCwgOTE0IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZm9ybWF0X2Nhc3QuZGF0CgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2Zvcm1hdHRpbmcuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9m b3JtYXR0aW5nLmMKaW5kZXggZDUyZDcxYjBhOGMuLmQ0MmRlYTE2NmI2IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9hZHQvZm9ybWF0dGluZy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9mb3JtYXR0aW5nLmMKQEAgLTQxMzgsNiArNDEzOCwzMjMgQEAgdG9fZGF0ZShQR19GVU5D VElPTl9BUkdTKQogCVBHX1JFVFVSTl9EQVRFQURUKHJlc3VsdCk7CiB9CiAKKy8qIC0tLS0tLS0t LS0KKyAqIEJ1aWx0LWluIGZvcm1hdCBjYXN0cyBmb3IgQ0FTVCAoIDxvcGVyYW5kPiBBUyA8dHlw ZT4gRk9STUFUIDx0ZW1wbGF0ZT4gKQorICoKKyAqIFRoZXNlIHdyYXBwZXJzIGFyZSByZWdpc3Rl cmVkIGluIHBnX2Zvcm1hdF9jYXN0IChzZWUgcGdfZm9ybWF0X2Nhc3QuZGF0KSBhbmQKKyAqIHJl YWNoZWQgdGhyb3VnaCBhIENvZXJjZVZpYUZvcm1hdENhc3Qgbm9kZS4gIFRoZXkgcmV1c2UgUG9z dGdyZVNRTCdzIGV4aXN0aW5nCisgKiBmb3JtYXR0aW5nIGNvZGU6IHRvX2RhdGUoKS90b190aW1l c3RhbXAoKS9wYXJzZV9kYXRldGltZSgpIGZvciB0aGUKKyAqIHN0cmluZyAtPiBkYXRldGltZSBk aXJlY3Rpb24gYW5kIHRpbWVzdGFtcF90b19jaGFyKCkvdGltZXN0YW1wdHpfdG9fY2hhcigpCisg KiBmb3IgdGhlIGRhdGV0aW1lIC0+IHN0cmluZyBkaXJlY3Rpb24sIHNvIHRoZSBhY2NlcHRlZCB0 ZW1wbGF0ZSB0b2tlbnMgYXJlCisgKiB0aG9zZSBvZiB0b19jaGFyKCkvdG9fZGF0ZSgpLgorICoK KyAqIFRoZXJlIGlzIGEgc2VwYXJhdGUgd3JhcHBlciBwZXIgZXhhY3Qgc291cmNlL3RhcmdldCB0 eXBlIHBhaXIsIGJlY2F1c2UKKyAqIHBnX2Zvcm1hdF9jYXN0IGxvb2t1cCBtYXRjaGVzIHRoZSBl eGFjdCBzb3VyY2UgYW5kIHRhcmdldCB0eXBlcyBhbmQgdGV4dCwKKyAqIHZhcmNoYXIgYW5kIGJw Y2hhciBhcmUgZGlzdGluY3Qgb24gZWFjaCBzaWRlLiAgYnBjaGFyIHNvdXJjZXMgYXJlCisgKiBy aWdodC10cmltbWVkIGZpcnN0LiAgVGhlIHJldHVybmVkIHRleHQgdmFybGVuYSBpcyBhIHZhbGlk IHZhcmNoYXIvYnBjaGFyCisgKiB2YWx1ZTsgYW55IGRlY2xhcmVkIGxlbmd0aC90eXBtb2QgaXMg ZW5mb3JjZWQgYnkgdGhlIG9yZGluYXJ5IGNvZXJjaW9uCisgKiBsYXllcmVkIGFib3ZlIHRoZSBD b2VyY2VWaWFGb3JtYXRDYXN0IG5vZGUuCisgKgorICogQWxsIG9mIHRoZXNlIGZ1bmN0aW9ucyBh cmUgU1RSSUNULCBzbyBhIE5VTEwgc291cmNlIHZhbHVlIG9yIE5VTEwgRk9STUFUCisgKiBleHBy ZXNzaW9uIHlpZWxkcyBOVUxMIHdpdGhvdXQgdGhlIEMgY29kZSBiZWluZyBjYWxsZWQuCisgKiAt LS0tLS0tLS0tCisgKi8KKworLyoKKyAqIFN0cmlwIGJsYW5rIHBhZGRpbmcgZnJvbSBhIGJwY2hh ciBhcmd1bWVudCwgcmV0dXJuaW5nIGEgcGxhaW4gdGV4dCB2YWx1ZS4KKyAqIFN0YW5kYXJkLXN0 eWxlIGNoYXJhY3RlciBjYXN0cyBtdXN0IG5vdCBmYWlsIG1lcmVseSBiZWNhdXNlIGEgZml4ZWQt bGVuZ3RoCisgKiBDSEFSKG4pIHNvdXJjZSBjYXJyaWVzIHRyYWlsaW5nIHNwYWNlcywgc28gYnBj aGFyIHNvdXJjZXMgYXJlIHJpZ2h0LXRyaW1tZWQKKyAqIGJlZm9yZSB0aGUgZm9ybWF0IHRlbXBs YXRlIGlzIGFwcGxpZWQuCisgKgorICogYnBjaGFyIHBhZGRpbmcgdXNlcyBvcmRpbmFyeSBBU0NJ SSBzcGFjZSBieXRlcywgc28gd2UgdHJpbSBvbmx5IHRyYWlsaW5nCisgKiAnICcgYnl0ZXMgaGVy ZS4gIFRoaXMgaXMgZGVsaWJlcmF0ZWx5IG5vdCBhIGdlbmVyYWwgVW5pY29kZSB3aGl0ZXNwYWNl IHRyaW0uCisgKi8KK3N0YXRpYyB0ZXh0ICoKK2Zvcm1hdGNhc3RfcnRyaW1fYmxhbmtzKHRleHQg KnNyYykKK3sKKwljaGFyCSAgICpkYXRhID0gVkFSREFUQV9BTlkoc3JjKTsKKwlpbnQJCQlsZW4g PSBWQVJTSVpFX0FOWV9FWEhEUihzcmMpOworCWludAkJCW9yaWdfbGVuID0gbGVuOworCisJd2hp bGUgKGxlbiA+IDAgJiYgZGF0YVtsZW4gLSAxXSA9PSAnICcpCisJCWxlbi0tOworCisJLyogQXZv aWQgYSBjb3B5IHdoZW4gdGhlcmUgd2FzIG5vIHRyYWlsaW5nIHBhZGRpbmcgdG8gdHJpbS4gKi8K KwlpZiAobGVuID09IG9yaWdfbGVuKQorCQlyZXR1cm4gc3JjOworCisJcmV0dXJuIGNzdHJpbmdf dG9fdGV4dF93aXRoX2xlbihkYXRhLCBsZW4pOworfQorCisvKgorICogc3RyaW5nIC0+IGRhdGU6 IHJldXNlIHRvX2RhdGUoKSB2ZXJiYXRpbSwgc28gYmVoYXZpb3IgbWF0Y2hlcyB0aGUKKyAqIFNR TC1jYWxsYWJsZSB0b19kYXRlKHRleHQsIHRleHQpLgorICovCitzdGF0aWMgRGF0dW0KK2Zvcm1h dGNhc3RfaW5fZGF0ZSh0ZXh0ICpzcmMsIHRleHQgKmZtdCwgT2lkIGNvbGxpZCkKK3sKKwlyZXR1 cm4gRGlyZWN0RnVuY3Rpb25DYWxsMkNvbGwodG9fZGF0ZSwgY29sbGlkLAorCQkJCQkJCQkgICBQ b2ludGVyR2V0RGF0dW0oc3JjKSwgUG9pbnRlckdldERhdHVtKGZtdCkpOworfQorCisvKgorICog c3RyaW5nIC0+IHRpbWVzdGFtcCB3aXRob3V0IHRpbWUgem9uZS4gIFRoZXJlIGlzIG5vIFNRTC1j YWxsYWJsZSBmdW5jdGlvbgorICogZm9yIHRoaXMgKHRvX3RpbWVzdGFtcCgpIHJldHVybnMgdGlt ZXN0YW1wdHopLCBzbyB3ZSBwYXJzZSB3aXRoCisgKiBwYXJzZV9kYXRldGltZSgpIGFuZCBidWls ZCB0aGUgcmVzdWx0IGZyb20gdGhlIGxvY2FsIGRhdGV0aW1lIGZpZWxkcyB3aXRob3V0CisgKiBj b25zdWx0aW5nIHRoZSBzZXNzaW9uIHRpbWUgem9uZS4gIEEgZGF0ZS1vbmx5IHRlbXBsYXRlIGlz IHdpZGVuZWQgdG8KKyAqIHRpbWVzdGFtcDsgYSB6b25lZCB0ZW1wbGF0ZSBpcyByZWplY3RlZCwg c2luY2UgdGhlIHJlc3VsdCB0eXBlIGNhcnJpZXMgbm8KKyAqIHpvbmUgYW5kIHdlIG11c3Qgbm90 IHNpbGVudGx5IGZvbGQgYSB0aW1lIHpvbmUgdGhyb3VnaCB0aGUgc2Vzc2lvbiBzZXR0aW5nLgor ICovCitzdGF0aWMgRGF0dW0KK2Zvcm1hdGNhc3RfaW5fdGltZXN0YW1wKHRleHQgKnNyYywgdGV4 dCAqZm10LCBPaWQgY29sbGlkKQoreworCU9pZAkJCXR5cGlkOworCWludDMyCQl0eXBtb2Q7CisJ aW50CQkJdHo7CisJRGF0dW0JCWQ7CisKKwlkID0gcGFyc2VfZGF0ZXRpbWUoc3JjLCBmbXQsIGNv bGxpZCwgZmFsc2UsICZ0eXBpZCwgJnR5cG1vZCwgJnR6LCBOVUxMKTsKKworCXN3aXRjaCAodHlw aWQpCisJeworCQljYXNlIFRJTUVTVEFNUE9JRDoKKwkJCXJldHVybiBkOworCQljYXNlIERBVEVP SUQ6CisJCQlyZXR1cm4gVGltZXN0YW1wR2V0RGF0dW0oZGF0ZTJ0aW1lc3RhbXBfc2FmZShEYXR1 bUdldERhdGVBRFQoZCksCisJCQkJCQkJCQkJCQkJCSBOVUxMKSk7CisJCWRlZmF1bHQ6CisJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfREFURVRJTUVfRk9S TUFUKSwKKwkJCQkJIGVycm1zZygiRk9STUFUIHRlbXBsYXRlIGZvciBhIGNhc3QgdG8gdGltZXN0 YW1wIHdpdGhvdXQgdGltZSB6b25lIG11c3Qgbm90IHNwZWNpZnkgYSB0aW1lIHpvbmUiKSkpOwor CQkJcmV0dXJuIChEYXR1bSkgMDsJLyoga2VlcCBjb21waWxlciBxdWlldCAqLworCX0KK30KKwor LyoKKyAqIHN0cmluZyAtPiB0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmU6IHJldXNlIHRvX3RpbWVz dGFtcCgpIHZlcmJhdGltLCBtYXRjaGluZworICogdGhlIFNRTC1jYWxsYWJsZSB0b190aW1lc3Rh bXAodGV4dCwgdGV4dCkuCisgKi8KK3N0YXRpYyBEYXR1bQorZm9ybWF0Y2FzdF9pbl90aW1lc3Rh bXB0eih0ZXh0ICpzcmMsIHRleHQgKmZtdCwgT2lkIGNvbGxpZCkKK3sKKwlyZXR1cm4gRGlyZWN0 RnVuY3Rpb25DYWxsMkNvbGwodG9fdGltZXN0YW1wLCBjb2xsaWQsCisJCQkJCQkJCSAgIFBvaW50 ZXJHZXREYXR1bShzcmMpLCBQb2ludGVyR2V0RGF0dW0oZm10KSk7Cit9CisKKy8qIHN0cmluZyAt PiBkYXRlICh0ZXh0IGFuZCB2YXJjaGFyIHNvdXJjZXMpICovCitEYXR1bQorZm9ybWF0Y2FzdF9z dHJfdG9fZGF0ZShQR19GVU5DVElPTl9BUkdTKQoreworCXJldHVybiBmb3JtYXRjYXN0X2luX2Rh dGUoUEdfR0VUQVJHX1RFWFRfUFAoMCksIFBHX0dFVEFSR19URVhUX1BQKDEpLAorCQkJCQkJCSAg UEdfR0VUX0NPTExBVElPTigpKTsKK30KKworLyogc3RyaW5nIC0+IGRhdGUgKGJwY2hhciBzb3Vy Y2U7IHRyYWlsaW5nIGJsYW5rcyB0cmltbWVkKSAqLworRGF0dW0KK2Zvcm1hdGNhc3RfYnBjaGFy X3RvX2RhdGUoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlyZXR1cm4gZm9ybWF0Y2FzdF9pbl9kYXRl KGZvcm1hdGNhc3RfcnRyaW1fYmxhbmtzKFBHX0dFVEFSR19URVhUX1BQKDApKSwKKwkJCQkJCQkg IFBHX0dFVEFSR19URVhUX1BQKDEpLCBQR19HRVRfQ09MTEFUSU9OKCkpOworfQorCisvKiBzdHJp bmcgLT4gdGltZXN0YW1wICh0ZXh0IGFuZCB2YXJjaGFyIHNvdXJjZXMpICovCitEYXR1bQorZm9y bWF0Y2FzdF9zdHJfdG9fdGltZXN0YW1wKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJcmV0dXJuIGZv cm1hdGNhc3RfaW5fdGltZXN0YW1wKFBHX0dFVEFSR19URVhUX1BQKDApLCBQR19HRVRBUkdfVEVY VF9QUCgxKSwKKwkJCQkJCQkJICAgUEdfR0VUX0NPTExBVElPTigpKTsKK30KKworLyogc3RyaW5n IC0+IHRpbWVzdGFtcCAoYnBjaGFyIHNvdXJjZTsgdHJhaWxpbmcgYmxhbmtzIHRyaW1tZWQpICov CitEYXR1bQorZm9ybWF0Y2FzdF9icGNoYXJfdG9fdGltZXN0YW1wKFBHX0ZVTkNUSU9OX0FSR1Mp Cit7CisJcmV0dXJuIGZvcm1hdGNhc3RfaW5fdGltZXN0YW1wKGZvcm1hdGNhc3RfcnRyaW1fYmxh bmtzKFBHX0dFVEFSR19URVhUX1BQKDApKSwKKwkJCQkJCQkJICAgUEdfR0VUQVJHX1RFWFRfUFAo MSksIFBHX0dFVF9DT0xMQVRJT04oKSk7Cit9CisKKy8qIHN0cmluZyAtPiB0aW1lc3RhbXB0eiAo dGV4dCBhbmQgdmFyY2hhciBzb3VyY2VzKSAqLworRGF0dW0KK2Zvcm1hdGNhc3Rfc3RyX3RvX3Rp bWVzdGFtcHR6KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJcmV0dXJuIGZvcm1hdGNhc3RfaW5fdGlt ZXN0YW1wdHooUEdfR0VUQVJHX1RFWFRfUFAoMCksIFBHX0dFVEFSR19URVhUX1BQKDEpLAorCQkJ CQkJCQkJIFBHX0dFVF9DT0xMQVRJT04oKSk7Cit9CisKKy8qIHN0cmluZyAtPiB0aW1lc3RhbXB0 eiAoYnBjaGFyIHNvdXJjZTsgdHJhaWxpbmcgYmxhbmtzIHRyaW1tZWQpICovCitEYXR1bQorZm9y bWF0Y2FzdF9icGNoYXJfdG9fdGltZXN0YW1wdHooUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlyZXR1 cm4gZm9ybWF0Y2FzdF9pbl90aW1lc3RhbXB0eihmb3JtYXRjYXN0X3J0cmltX2JsYW5rcyhQR19H RVRBUkdfVEVYVF9QUCgwKSksCisJCQkJCQkJCQkgUEdfR0VUQVJHX1RFWFRfUFAoMSksIFBHX0dF VF9DT0xMQVRJT04oKSk7Cit9CisKKy8qCisgKiBDYWxsIGEgY29sbGF0aW9uLWF3YXJlIChkYXRl dGltZSwgdGV4dCkgLT4gdGV4dCBmb3JtYXR0aW5nIGZ1bmN0aW9uLAorICogcHJvcGFnYXRpbmcg YSBTUUwgTlVMTCByZXN1bHQuICBEaXJlY3RGdW5jdGlvbkNhbGwgY2Fubm90IGhhbmRsZSBhIFNR TCBOVUxMCisgKiByZXN1bHQsIHNvIGJ1aWxkIGEgbG9jYWwgRnVuY3Rpb25DYWxsSW5mby4gIFBh c3MgdGhlIGNhbGxlcidzIGZsaW5mbyB0bworICogcHJvdmlkZSBhIG5vcm1hbCBmbWdyIGNvbnRl eHQ7IHRoZSBjYWxsZWVzIHVzZWQgaGVyZSBkbyBub3QgZGVwZW5kIG9uCisgKiBmdW5jdGlvbi1z cGVjaWZpYyBmbGluZm8gc3RhdGUuCisgKi8KK3N0YXRpYyBEYXR1bQorZm9ybWF0Y2FzdF90b19j aGFyX2NhbGwoRnVuY3Rpb25DYWxsSW5mbyBjYWxsZXJfZmNpbmZvLCBQR0Z1bmN0aW9uIGZuLAor CQkJCQkJT2lkIGNvbGxpZCwgRGF0dW0gdmFsdWUsIERhdHVtIGZtdCwgYm9vbCAqcmVzdWx0bnVs bCkKK3sKKwlMT0NBTF9GQ0lORk8oZmNpbmZvLCAyKTsKKwlEYXR1bQkJcmVzdWx0OworCisJSW5p dEZ1bmN0aW9uQ2FsbEluZm9EYXRhKCpmY2luZm8sIGNhbGxlcl9mY2luZm8tPmZsaW5mbywgMiwg Y29sbGlkLAorCQkJCQkJCSBOVUxMLCBOVUxMKTsKKwlmY2luZm8tPmFyZ3NbMF0udmFsdWUgPSB2 YWx1ZTsKKwlmY2luZm8tPmFyZ3NbMF0uaXNudWxsID0gZmFsc2U7CisJZmNpbmZvLT5hcmdzWzFd LnZhbHVlID0gZm10OworCWZjaW5mby0+YXJnc1sxXS5pc251bGwgPSBmYWxzZTsKKworCXJlc3Vs dCA9ICgqZm4pIChmY2luZm8pOworCSpyZXN1bHRudWxsID0gZmNpbmZvLT5pc251bGw7CisJcmV0 dXJuIHJlc3VsdDsKK30KKworLyoKKyAqIFBlci1zb3VyY2UtdHlwZSBoZWxwZXJzIHNoYXJlZCBi eSB0aGUgZGF0ZXRpbWUgLT4gc3RyaW5nIHdyYXBwZXJzIGJlbG93LgorICogRWFjaCBmb3JtYXRz IHRoZSBzb3VyY2UgdmFsdWUgd2l0aCB0aGUgZ2l2ZW4gdGVtcGxhdGUsIHJldHVybmluZyB0aGUg cmVzdWx0CisgKiB0ZXh0ICh3aXRoICpyZXN1bHRudWxsIHNldCBvbiBhbiBlbXB0eSB0ZW1wbGF0 ZSwgYXMgZm9yIHRvX2NoYXIoKSkuCisgKi8KK3N0YXRpYyBEYXR1bQorZm9ybWF0Y2FzdF9kYXRl X291dChGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywgYm9vbCAqcmVzdWx0bnVsbCkKK3sKKwlEYXRl QURUCQlkYXRlVmFsID0gUEdfR0VUQVJHX0RBVEVBRFQoMCk7CisJdGV4dAkgICAqZm10ID0gUEdf R0VUQVJHX1RFWFRfUFAoMSk7CisJVGltZXN0YW1wCXRzID0gZGF0ZTJ0aW1lc3RhbXBfc2FmZShk YXRlVmFsLCBOVUxMKTsKKworCXJldHVybiBmb3JtYXRjYXN0X3RvX2NoYXJfY2FsbChmY2luZm8s IHRpbWVzdGFtcF90b19jaGFyLCBQR19HRVRfQ09MTEFUSU9OKCksCisJCQkJCQkJCSAgIFRpbWVz dGFtcEdldERhdHVtKHRzKSwgUG9pbnRlckdldERhdHVtKGZtdCksCisJCQkJCQkJCSAgIHJlc3Vs dG51bGwpOworfQorCitzdGF0aWMgRGF0dW0KK2Zvcm1hdGNhc3RfdGltZXN0YW1wX291dChGdW5j dGlvbkNhbGxJbmZvIGZjaW5mbywgYm9vbCAqcmVzdWx0bnVsbCkKK3sKKwlyZXR1cm4gZm9ybWF0 Y2FzdF90b19jaGFyX2NhbGwoZmNpbmZvLCB0aW1lc3RhbXBfdG9fY2hhciwgUEdfR0VUX0NPTExB VElPTigpLAorCQkJCQkJCQkgICBQR19HRVRBUkdfREFUVU0oMCksIFBHX0dFVEFSR19EQVRVTSgx KSwKKwkJCQkJCQkJICAgcmVzdWx0bnVsbCk7Cit9CisKK3N0YXRpYyBEYXR1bQorZm9ybWF0Y2Fz dF90aW1lc3RhbXB0el9vdXQoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIGJvb2wgKnJlc3VsdG51 bGwpCit7CisJcmV0dXJuIGZvcm1hdGNhc3RfdG9fY2hhcl9jYWxsKGZjaW5mbywgdGltZXN0YW1w dHpfdG9fY2hhciwgUEdfR0VUX0NPTExBVElPTigpLAorCQkJCQkJCQkgICBQR19HRVRBUkdfREFU VU0oMCksIFBHX0dFVEFSR19EQVRVTSgxKSwKKwkJCQkJCQkJICAgcmVzdWx0bnVsbCk7Cit9CisK Ky8qCisgKiBFeHBvcnRlZCBkYXRldGltZSAtPiBzdHJpbmcgd3JhcHBlcnMuICBUaGUgdGV4dCwg dmFyY2hhciBhbmQgYnBjaGFyIHRhcmdldHMKKyAqIGVhY2ggZ2V0IGEgZGlzdGluY3QgQyBzeW1i b2wgc28gdGhhdCBubyB0d28gYnVpbHQtaW4gZnVuY3Rpb25zIHNoYXJlIGEKKyAqIHByb3NyYyB3 aXRoIGEgZGlmZmVyZW50IHJldHVybiB0eXBlOyB0aGV5IGFsbCBkZWxlZ2F0ZSB0byB0aGUgcGVy LXNvdXJjZQorICogaGVscGVyIGFib3ZlLCBzbyB0aGVyZSBpcyBubyBkdXBsaWNhdGVkIGxvZ2lj LiAgVGhlIHJldHVybmVkIHRleHQgdmFybGVuYSBpcworICogYSB2YWxpZCB2YXJjaGFyL2JwY2hh ciB2YWx1ZTsgYW55IGRlY2xhcmVkIGxlbmd0aC90eXBtb2QgaXMgZW5mb3JjZWQgYnkgdGhlCisg KiBvcmRpbmFyeSBjb2VyY2lvbiBsYXllcmVkIGFib3ZlIHRoZSBDb2VyY2VWaWFGb3JtYXRDYXN0 IG5vZGUuCisgKi8KK0RhdHVtCitmb3JtYXRjYXN0X2RhdGVfdG9fdGV4dChQR19GVU5DVElPTl9B UkdTKQoreworCWJvb2wJCXJlc3VsdG51bGw7CisJRGF0dW0JCXJlc3VsdCA9IGZvcm1hdGNhc3Rf ZGF0ZV9vdXQoZmNpbmZvLCAmcmVzdWx0bnVsbCk7CisKKwlpZiAocmVzdWx0bnVsbCkKKwkJUEdf UkVUVVJOX05VTEwoKTsKKwlQR19SRVRVUk5fREFUVU0ocmVzdWx0KTsKK30KKworRGF0dW0KK2Zv cm1hdGNhc3RfZGF0ZV90b192YXJjaGFyKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJYm9vbAkJcmVz dWx0bnVsbDsKKwlEYXR1bQkJcmVzdWx0ID0gZm9ybWF0Y2FzdF9kYXRlX291dChmY2luZm8sICZy ZXN1bHRudWxsKTsKKworCWlmIChyZXN1bHRudWxsKQorCQlQR19SRVRVUk5fTlVMTCgpOworCVBH X1JFVFVSTl9EQVRVTShyZXN1bHQpOworfQorCitEYXR1bQorZm9ybWF0Y2FzdF9kYXRlX3RvX2Jw Y2hhcihQR19GVU5DVElPTl9BUkdTKQoreworCWJvb2wJCXJlc3VsdG51bGw7CisJRGF0dW0JCXJl c3VsdCA9IGZvcm1hdGNhc3RfZGF0ZV9vdXQoZmNpbmZvLCAmcmVzdWx0bnVsbCk7CisKKwlpZiAo cmVzdWx0bnVsbCkKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwlQR19SRVRVUk5fREFUVU0ocmVzdWx0 KTsKK30KKworRGF0dW0KK2Zvcm1hdGNhc3RfdGltZXN0YW1wX3RvX3RleHQoUEdfRlVOQ1RJT05f QVJHUykKK3sKKwlib29sCQlyZXN1bHRudWxsOworCURhdHVtCQlyZXN1bHQgPSBmb3JtYXRjYXN0 X3RpbWVzdGFtcF9vdXQoZmNpbmZvLCAmcmVzdWx0bnVsbCk7CisKKwlpZiAocmVzdWx0bnVsbCkK KwkJUEdfUkVUVVJOX05VTEwoKTsKKwlQR19SRVRVUk5fREFUVU0ocmVzdWx0KTsKK30KKworRGF0 dW0KK2Zvcm1hdGNhc3RfdGltZXN0YW1wX3RvX3ZhcmNoYXIoUEdfRlVOQ1RJT05fQVJHUykKK3sK Kwlib29sCQlyZXN1bHRudWxsOworCURhdHVtCQlyZXN1bHQgPSBmb3JtYXRjYXN0X3RpbWVzdGFt cF9vdXQoZmNpbmZvLCAmcmVzdWx0bnVsbCk7CisKKwlpZiAocmVzdWx0bnVsbCkKKwkJUEdfUkVU VVJOX05VTEwoKTsKKwlQR19SRVRVUk5fREFUVU0ocmVzdWx0KTsKK30KKworRGF0dW0KK2Zvcm1h dGNhc3RfdGltZXN0YW1wX3RvX2JwY2hhcihQR19GVU5DVElPTl9BUkdTKQoreworCWJvb2wJCXJl c3VsdG51bGw7CisJRGF0dW0JCXJlc3VsdCA9IGZvcm1hdGNhc3RfdGltZXN0YW1wX291dChmY2lu Zm8sICZyZXN1bHRudWxsKTsKKworCWlmIChyZXN1bHRudWxsKQorCQlQR19SRVRVUk5fTlVMTCgp OworCVBHX1JFVFVSTl9EQVRVTShyZXN1bHQpOworfQorCitEYXR1bQorZm9ybWF0Y2FzdF90aW1l c3RhbXB0el90b190ZXh0KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJYm9vbAkJcmVzdWx0bnVsbDsK KwlEYXR1bQkJcmVzdWx0ID0gZm9ybWF0Y2FzdF90aW1lc3RhbXB0el9vdXQoZmNpbmZvLCAmcmVz dWx0bnVsbCk7CisKKwlpZiAocmVzdWx0bnVsbCkKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwlQR19S RVRVUk5fREFUVU0ocmVzdWx0KTsKK30KKworRGF0dW0KK2Zvcm1hdGNhc3RfdGltZXN0YW1wdHpf dG9fdmFyY2hhcihQR19GVU5DVElPTl9BUkdTKQoreworCWJvb2wJCXJlc3VsdG51bGw7CisJRGF0 dW0JCXJlc3VsdCA9IGZvcm1hdGNhc3RfdGltZXN0YW1wdHpfb3V0KGZjaW5mbywgJnJlc3VsdG51 bGwpOworCisJaWYgKHJlc3VsdG51bGwpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJUEdfUkVUVVJO X0RBVFVNKHJlc3VsdCk7Cit9CisKK0RhdHVtCitmb3JtYXRjYXN0X3RpbWVzdGFtcHR6X3RvX2Jw Y2hhcihQR19GVU5DVElPTl9BUkdTKQoreworCWJvb2wJCXJlc3VsdG51bGw7CisJRGF0dW0JCXJl c3VsdCA9IGZvcm1hdGNhc3RfdGltZXN0YW1wdHpfb3V0KGZjaW5mbywgJnJlc3VsdG51bGwpOwor CisJaWYgKHJlc3VsdG51bGwpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJUEdfUkVUVVJOX0RBVFVN KHJlc3VsdCk7Cit9CisKIC8qCiAgKiBDb252ZXJ0IHRoZSAnZGF0ZV90eHQnIGlucHV0IHRvIGEg ZGF0ZXRpbWUgdHlwZSB1c2luZyBhcmd1bWVudCAnZm10JwogICogYXMgYSBmb3JtYXQgc3RyaW5n LiAgVGhlIGNvbGxhdGlvbiAnY29sbGlkJyBtYXkgYmUgdXNlZCBmb3IgY2FzZS1mb2xkaW5nCmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuYwppbmRleCA2NTE3YTQ1MGRhYS4uM2MwMzg3YWIzNDcgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAt MjE4OCw2ICsyMTg4LDI5IEBAIHNlbGVjdER1bXBhYmxlQ2FzdChDYXN0SW5mbyAqY2FzdCwgQXJj aGl2ZSAqZm91dCkKIAkJCURVTVBfQ09NUE9ORU5UX0FMTCA6IERVTVBfQ09NUE9ORU5UX05PTkU7 CiB9CiAKKy8qCisgKiBzZWxlY3REdW1wYWJsZUZvcm1hdENhc3Q6IHBvbGljeS1zZXR0aW5nIHN1 YnJvdXRpbmUKKyAqCQlNYXJrIGEgZm9ybWF0IGNhc3QgYXMgdG8gYmUgZHVtcGVkIG9yIG5vdAor ICoKKyAqIExpa2UgY2FzdHMsIGZvcm1hdF9jYXN0cyBoYXZlIG5vIG5hbWVzcGFjZSBhbmQgbm8g aWRlbnRpZmlhYmxlIG93bmVyLCBzbyB3ZQorICogZGlzdGluZ3Vpc2ggdGhlIGJ1aWx0LWluIChp bml0ZGItY3JlYXRlZCkgZm9ybWF0X2Nhc3RzIGZyb20gdXNlci1kZWZpbmVkIG9uZXMKKyAqIGJ5 IGNoZWNraW5nIHdoZXRoZXIgdGhlIGZvcm1hdCBjYXN0J3MgT0lEIGlzIGluIHRoZSByYW5nZSBy ZXNlcnZlZCBmb3IgaW5pdGRiLgorICogQnVpbHQtaW4gZm9ybWF0IGNhc3RzIGFyZSBwYXJ0IG9m IHRoZSBzeXN0ZW0gY2F0YWxvZ3MgYW5kIG11c3Qgbm90IGJlIGR1bXBlZAorICogYXMgQ1JFQVRF IEZPUk1BVCBDQVNUIGNvbW1hbmRzLgorICovCitzdGF0aWMgdm9pZAorc2VsZWN0RHVtcGFibGVG b3JtYXRDYXN0KEZvcm1hdENhc3RJbmZvICpmb3JtYXRjYXN0LCBBcmNoaXZlICpmb3V0KQorewor CWlmIChjaGVja0V4dGVuc2lvbk1lbWJlcnNoaXAoJmZvcm1hdGNhc3QtPmRvYmosIGZvdXQpKQor CQlyZXR1cm47CQkJCQkvKiBleHRlbnNpb24gbWVtYmVyc2hpcCBvdmVycmlkZXMgYWxsIGVsc2Ug Ki8KKworCWlmIChmb3JtYXRjYXN0LT5kb2JqLmNhdElkLm9pZCA8PSBnX2xhc3RfYnVpbHRpbl9v aWQpCisJCWZvcm1hdGNhc3QtPmRvYmouZHVtcCA9IERVTVBfQ09NUE9ORU5UX05PTkU7CisJZWxz ZQorCQlmb3JtYXRjYXN0LT5kb2JqLmR1bXAgPSBmb3V0LT5kb3B0LT5pbmNsdWRlX2V2ZXJ5dGhp bmcgPworCQkJRFVNUF9DT01QT05FTlRfQUxMIDogRFVNUF9DT01QT05FTlRfTk9ORTsKK30KKwog LyoKICAqIHNlbGVjdER1bXBhYmxlUHJvY0xhbmc6IHBvbGljeS1zZXR0aW5nIHN1YnJvdXRpbmUK ICAqCQlNYXJrIGEgcHJvY2VkdXJhbCBsYW5ndWFnZSBhcyB0byBiZSBkdW1wZWQgb3Igbm90CkBA IC05MzkwLDcgKzk0MTMsNyBAQCBnZXRGb3JtYXRDYXN0cyhBcmNoaXZlICpmb3V0KQogCQlmb3Jt YXRjYXN0aW5mb1tpXS5kb2JqLm5hbWUgPSBuYW1lYnVmLmRhdGE7CiAKIAkJLyogRGVjaWRlIHdo ZXRoZXIgd2Ugd2FudCB0byBkdW1wIGl0ICovCi0JCXNlbGVjdER1bXBhYmxlT2JqZWN0KCYoZm9y bWF0Y2FzdGluZm9baV0uZG9iaiksIGZvdXQpOworCQlzZWxlY3REdW1wYWJsZUZvcm1hdENhc3Qo Jihmb3JtYXRjYXN0aW5mb1tpXSksIGZvdXQpOwogCX0KIAogCVBRY2xlYXIocmVzKTsKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZm9ybWF0X2Nhc3QuZGF0IGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19mb3JtYXRfY2FzdC5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjM5ZDNlZTUyM2FkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19mb3JtYXRfY2FzdC5kYXQKQEAgLTAsMCArMSw3MSBAQAorIy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyMKKyMgcGdfZm9ybWF0X2Nhc3QuZGF0CisjICAgIEluaXRpYWwgY29udGVudHMgb2YgdGhl IHBnX2Zvcm1hdF9jYXN0IHN5c3RlbSBjYXRhbG9nLgorIworIyBUaGVzZSBhcmUgdGhlIGJ1aWx0 LWluIGZvcm1hdCBjYXN0cyBmb3IgQ0FTVCAoIDxvcGVyYW5kPiBBUyA8dHlwZT4KKyMgRk9STUFU IDx0ZW1wbGF0ZT4gKS4gIEVhY2ggcm93IG1hcHMgYW4gZXhhY3QgKHNvdXJjZSB0eXBlLCB0YXJn ZXQgdHlwZSkgcGFpcgorIyB0byBhIHdyYXBwZXIgZnVuY3Rpb24gd2l0aCB0aGUgc2lnbmF0dXJl CisjICAgICBmdW5jdGlvbihzb3VyY2VfdHlwZSwgdGV4dCkgcmV0dXJucyB0YXJnZXRfdHlwZQor IyBMb29rdXAgaXMgYnkgZXhhY3Qgc291cmNlIGFuZCB0YXJnZXQgdHlwZSwgc28gdGV4dCwgdmFy Y2hhciBhbmQgYnBjaGFyIGFyZQorIyByZWdpc3RlcmVkIHNlcGFyYXRlbHkgb24gZWFjaCBzaWRl LiAgVGhlIHdyYXBwZXIgZnVuY3Rpb25zIGxpdmUgaW4KKyMgZm9ybWF0dGluZy5jIGFuZCByZXVz ZSBQb3N0Z3JlU1FMJ3MgZXhpc3RpbmcgZm9ybWF0dGluZyBjb2RlLgorIworIyBQb3J0aW9ucyBD b3B5cmlnaHQgKGMpIDE5OTYtMjAyNiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3Jv dXAKKyMgUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJz aXR5IG9mIENhbGlmb3JuaWEKKyMKKyMgc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19mb3JtYXRfY2Fz dC5kYXQKKyMKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1sKKworIyBzdHJpbmcgLT4gZGF0ZQoreyBvaWQg PT4gJzg2NjgnLCBmbXRzb3VyY2UgPT4gJ3RleHQnLCBmbXR0YXJnZXQgPT4gJ2RhdGUnLAorICBm bXRmdW5jID0+ICdwZ19mb3JtYXRfdGV4dF90b19kYXRlKHRleHQsdGV4dCknIH0sCit7IG9pZCA9 PiAnODY2OScsIGZtdHNvdXJjZSA9PiAndmFyY2hhcicsIGZtdHRhcmdldCA9PiAnZGF0ZScsCisg IGZtdGZ1bmMgPT4gJ3BnX2Zvcm1hdF92YXJjaGFyX3RvX2RhdGUodmFyY2hhcix0ZXh0KScgfSwK K3sgb2lkID0+ICc4NjcwJywgZm10c291cmNlID0+ICdicGNoYXInLCBmbXR0YXJnZXQgPT4gJ2Rh dGUnLAorICBmbXRmdW5jID0+ICdwZ19mb3JtYXRfYnBjaGFyX3RvX2RhdGUoYnBjaGFyLHRleHQp JyB9LAorCisjIHN0cmluZyAtPiB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUKK3sgb2lkID0+ ICc4NjcxJywgZm10c291cmNlID0+ICd0ZXh0JywgZm10dGFyZ2V0ID0+ICd0aW1lc3RhbXAnLAor ICBmbXRmdW5jID0+ICdwZ19mb3JtYXRfdGV4dF90b190aW1lc3RhbXAodGV4dCx0ZXh0KScgfSwK K3sgb2lkID0+ICc4NjcyJywgZm10c291cmNlID0+ICd2YXJjaGFyJywgZm10dGFyZ2V0ID0+ICd0 aW1lc3RhbXAnLAorICBmbXRmdW5jID0+ICdwZ19mb3JtYXRfdmFyY2hhcl90b190aW1lc3RhbXAo dmFyY2hhcix0ZXh0KScgfSwKK3sgb2lkID0+ICc4NjczJywgZm10c291cmNlID0+ICdicGNoYXIn LCBmbXR0YXJnZXQgPT4gJ3RpbWVzdGFtcCcsCisgIGZtdGZ1bmMgPT4gJ3BnX2Zvcm1hdF9icGNo YXJfdG9fdGltZXN0YW1wKGJwY2hhcix0ZXh0KScgfSwKKworIyBzdHJpbmcgLT4gdGltZXN0YW1w IHdpdGggdGltZSB6b25lCit7IG9pZCA9PiAnODY3NCcsIGZtdHNvdXJjZSA9PiAndGV4dCcsIGZt dHRhcmdldCA9PiAndGltZXN0YW1wdHonLAorICBmbXRmdW5jID0+ICdwZ19mb3JtYXRfdGV4dF90 b190aW1lc3RhbXB0eih0ZXh0LHRleHQpJyB9LAoreyBvaWQgPT4gJzg2NzUnLCBmbXRzb3VyY2Ug PT4gJ3ZhcmNoYXInLCBmbXR0YXJnZXQgPT4gJ3RpbWVzdGFtcHR6JywKKyAgZm10ZnVuYyA9PiAn cGdfZm9ybWF0X3ZhcmNoYXJfdG9fdGltZXN0YW1wdHoodmFyY2hhcix0ZXh0KScgfSwKK3sgb2lk ID0+ICc4Njc2JywgZm10c291cmNlID0+ICdicGNoYXInLCBmbXR0YXJnZXQgPT4gJ3RpbWVzdGFt cHR6JywKKyAgZm10ZnVuYyA9PiAncGdfZm9ybWF0X2JwY2hhcl90b190aW1lc3RhbXB0eihicGNo YXIsdGV4dCknIH0sCisKKyMgZGF0ZSAtPiBzdHJpbmcKK3sgb2lkID0+ICc4Njc3JywgZm10c291 cmNlID0+ICdkYXRlJywgZm10dGFyZ2V0ID0+ICd0ZXh0JywKKyAgZm10ZnVuYyA9PiAncGdfZm9y bWF0X2RhdGVfdG9fdGV4dChkYXRlLHRleHQpJyB9LAoreyBvaWQgPT4gJzg2NzgnLCBmbXRzb3Vy Y2UgPT4gJ2RhdGUnLCBmbXR0YXJnZXQgPT4gJ3ZhcmNoYXInLAorICBmbXRmdW5jID0+ICdwZ19m b3JtYXRfZGF0ZV90b192YXJjaGFyKGRhdGUsdGV4dCknIH0sCit7IG9pZCA9PiAnODY3OScsIGZt dHNvdXJjZSA9PiAnZGF0ZScsIGZtdHRhcmdldCA9PiAnYnBjaGFyJywKKyAgZm10ZnVuYyA9PiAn cGdfZm9ybWF0X2RhdGVfdG9fYnBjaGFyKGRhdGUsdGV4dCknIH0sCisKKyMgdGltZXN0YW1wIHdp dGhvdXQgdGltZSB6b25lIC0+IHN0cmluZworeyBvaWQgPT4gJzg2ODAnLCBmbXRzb3VyY2UgPT4g J3RpbWVzdGFtcCcsIGZtdHRhcmdldCA9PiAndGV4dCcsCisgIGZtdGZ1bmMgPT4gJ3BnX2Zvcm1h dF90aW1lc3RhbXBfdG9fdGV4dCh0aW1lc3RhbXAsdGV4dCknIH0sCit7IG9pZCA9PiAnODY4MScs IGZtdHNvdXJjZSA9PiAndGltZXN0YW1wJywgZm10dGFyZ2V0ID0+ICd2YXJjaGFyJywKKyAgZm10 ZnVuYyA9PiAncGdfZm9ybWF0X3RpbWVzdGFtcF90b192YXJjaGFyKHRpbWVzdGFtcCx0ZXh0KScg fSwKK3sgb2lkID0+ICc4NjgyJywgZm10c291cmNlID0+ICd0aW1lc3RhbXAnLCBmbXR0YXJnZXQg PT4gJ2JwY2hhcicsCisgIGZtdGZ1bmMgPT4gJ3BnX2Zvcm1hdF90aW1lc3RhbXBfdG9fYnBjaGFy KHRpbWVzdGFtcCx0ZXh0KScgfSwKKworIyB0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUgLT4gc3Ry aW5nCit7IG9pZCA9PiAnODY4MycsIGZtdHNvdXJjZSA9PiAndGltZXN0YW1wdHonLCBmbXR0YXJn ZXQgPT4gJ3RleHQnLAorICBmbXRmdW5jID0+ICdwZ19mb3JtYXRfdGltZXN0YW1wdHpfdG9fdGV4 dCh0aW1lc3RhbXB0eix0ZXh0KScgfSwKK3sgb2lkID0+ICc4Njg0JywgZm10c291cmNlID0+ICd0 aW1lc3RhbXB0eicsIGZtdHRhcmdldCA9PiAndmFyY2hhcicsCisgIGZtdGZ1bmMgPT4gJ3BnX2Zv cm1hdF90aW1lc3RhbXB0el90b192YXJjaGFyKHRpbWVzdGFtcHR6LHRleHQpJyB9LAoreyBvaWQg PT4gJzg2ODUnLCBmbXRzb3VyY2UgPT4gJ3RpbWVzdGFtcHR6JywgZm10dGFyZ2V0ID0+ICdicGNo YXInLAorICBmbXRmdW5jID0+ICdwZ19mb3JtYXRfdGltZXN0YW1wdHpfdG9fYnBjaGFyKHRpbWVz dGFtcHR6LHRleHQpJyB9LAorCitdCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA0MDJkODY5 NzEwYi4uNGMwYzc1OTA5MzkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJv Yy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtNDg0Nyw2ICs0 ODQ3LDgxIEBACiB7IG9pZCA9PiAnMTc4MCcsIGRlc2NyID0+ICdjb252ZXJ0IHRleHQgdG8gZGF0 ZScsCiAgIHByb25hbWUgPT4gJ3RvX2RhdGUnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5 cGUgPT4gJ2RhdGUnLAogICBwcm9hcmd0eXBlcyA9PiAndGV4dCB0ZXh0JywgcHJvc3JjID0+ICd0 b19kYXRlJyB9LAorCisjIEJ1aWx0LWluIGZvcm1hdCBjYXN0IHN1cHBvcnQgZnVuY3Rpb25zLiAg VGhlc2UgYXJlIHJlZ2lzdGVyZWQgaW4KKyMgcGdfZm9ybWF0X2Nhc3QgYW5kIGNhbGxlZCB0aHJv dWdoIENvZXJjZVZpYUZvcm1hdENhc3QuCit7IG9pZCA9PiAnODY1MCcsIGRlc2NyID0+ICdmb3Jt YXR0ZWQgY2FzdDogdGV4dCB0byBkYXRlJywKKyAgcHJvbmFtZSA9PiAncGdfZm9ybWF0X3RleHRf dG9fZGF0ZScsIHByb2lzc3RyaWN0ID0+ICd0JywgcHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9y ZXR0eXBlID0+ICdkYXRlJywgcHJvYXJndHlwZXMgPT4gJ3RleHQgdGV4dCcsCisgIHByb3NyYyA9 PiAnZm9ybWF0Y2FzdF9zdHJfdG9fZGF0ZScgfSwKK3sgb2lkID0+ICc4NjUxJywgZGVzY3IgPT4g J2Zvcm1hdHRlZCBjYXN0OiB2YXJjaGFyIHRvIGRhdGUnLAorICBwcm9uYW1lID0+ICdwZ19mb3Jt YXRfdmFyY2hhcl90b19kYXRlJywgcHJvaXNzdHJpY3QgPT4gJ3QnLCBwcm92b2xhdGlsZSA9PiAn cycsCisgIHByb3JldHR5cGUgPT4gJ2RhdGUnLCBwcm9hcmd0eXBlcyA9PiAndmFyY2hhciB0ZXh0 JywKKyAgcHJvc3JjID0+ICdmb3JtYXRjYXN0X3N0cl90b19kYXRlJyB9LAoreyBvaWQgPT4gJzg2 NTInLCBkZXNjciA9PiAnZm9ybWF0dGVkIGNhc3Q6IGJwY2hhciB0byBkYXRlJywKKyAgcHJvbmFt ZSA9PiAncGdfZm9ybWF0X2JwY2hhcl90b19kYXRlJywgcHJvaXNzdHJpY3QgPT4gJ3QnLCBwcm92 b2xhdGlsZSA9PiAncycsCisgIHByb3JldHR5cGUgPT4gJ2RhdGUnLCBwcm9hcmd0eXBlcyA9PiAn YnBjaGFyIHRleHQnLAorICBwcm9zcmMgPT4gJ2Zvcm1hdGNhc3RfYnBjaGFyX3RvX2RhdGUnIH0s Cit7IG9pZCA9PiAnODY1MycsIGRlc2NyID0+ICdmb3JtYXR0ZWQgY2FzdDogdGV4dCB0byB0aW1l c3RhbXAnLAorICBwcm9uYW1lID0+ICdwZ19mb3JtYXRfdGV4dF90b190aW1lc3RhbXAnLCBwcm9p c3N0cmljdCA9PiAndCcsIHByb3ZvbGF0aWxlID0+ICdzJywKKyAgcHJvcmV0dHlwZSA9PiAndGlt ZXN0YW1wJywgcHJvYXJndHlwZXMgPT4gJ3RleHQgdGV4dCcsCisgIHByb3NyYyA9PiAnZm9ybWF0 Y2FzdF9zdHJfdG9fdGltZXN0YW1wJyB9LAoreyBvaWQgPT4gJzg2NTQnLCBkZXNjciA9PiAnZm9y bWF0dGVkIGNhc3Q6IHZhcmNoYXIgdG8gdGltZXN0YW1wJywKKyAgcHJvbmFtZSA9PiAncGdfZm9y bWF0X3ZhcmNoYXJfdG9fdGltZXN0YW1wJywgcHJvaXNzdHJpY3QgPT4gJ3QnLCBwcm92b2xhdGls ZSA9PiAncycsCisgIHByb3JldHR5cGUgPT4gJ3RpbWVzdGFtcCcsIHByb2FyZ3R5cGVzID0+ICd2 YXJjaGFyIHRleHQnLAorICBwcm9zcmMgPT4gJ2Zvcm1hdGNhc3Rfc3RyX3RvX3RpbWVzdGFtcCcg fSwKK3sgb2lkID0+ICc4NjU1JywgZGVzY3IgPT4gJ2Zvcm1hdHRlZCBjYXN0OiBicGNoYXIgdG8g dGltZXN0YW1wJywKKyAgcHJvbmFtZSA9PiAncGdfZm9ybWF0X2JwY2hhcl90b190aW1lc3RhbXAn LCBwcm9pc3N0cmljdCA9PiAndCcsIHByb3ZvbGF0aWxlID0+ICdzJywKKyAgcHJvcmV0dHlwZSA9 PiAndGltZXN0YW1wJywgcHJvYXJndHlwZXMgPT4gJ2JwY2hhciB0ZXh0JywKKyAgcHJvc3JjID0+ ICdmb3JtYXRjYXN0X2JwY2hhcl90b190aW1lc3RhbXAnIH0sCit7IG9pZCA9PiAnODY1NicsIGRl c2NyID0+ICdmb3JtYXR0ZWQgY2FzdDogdGV4dCB0byB0aW1lc3RhbXB0eicsCisgIHByb25hbWUg PT4gJ3BnX2Zvcm1hdF90ZXh0X3RvX3RpbWVzdGFtcHR6JywgcHJvaXNzdHJpY3QgPT4gJ3QnLCBw cm92b2xhdGlsZSA9PiAncycsCisgIHByb3JldHR5cGUgPT4gJ3RpbWVzdGFtcHR6JywgcHJvYXJn dHlwZXMgPT4gJ3RleHQgdGV4dCcsCisgIHByb3NyYyA9PiAnZm9ybWF0Y2FzdF9zdHJfdG9fdGlt ZXN0YW1wdHonIH0sCit7IG9pZCA9PiAnODY1NycsIGRlc2NyID0+ICdmb3JtYXR0ZWQgY2FzdDog dmFyY2hhciB0byB0aW1lc3RhbXB0eicsCisgIHByb25hbWUgPT4gJ3BnX2Zvcm1hdF92YXJjaGFy X3RvX3RpbWVzdGFtcHR6JywgcHJvaXNzdHJpY3QgPT4gJ3QnLCBwcm92b2xhdGlsZSA9PiAncycs CisgIHByb3JldHR5cGUgPT4gJ3RpbWVzdGFtcHR6JywgcHJvYXJndHlwZXMgPT4gJ3ZhcmNoYXIg dGV4dCcsCisgIHByb3NyYyA9PiAnZm9ybWF0Y2FzdF9zdHJfdG9fdGltZXN0YW1wdHonIH0sCit7 IG9pZCA9PiAnODY1OCcsIGRlc2NyID0+ICdmb3JtYXR0ZWQgY2FzdDogYnBjaGFyIHRvIHRpbWVz dGFtcHR6JywKKyAgcHJvbmFtZSA9PiAncGdfZm9ybWF0X2JwY2hhcl90b190aW1lc3RhbXB0eics IHByb2lzc3RyaWN0ID0+ICd0JywgcHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9yZXR0eXBlID0+ ICd0aW1lc3RhbXB0eicsIHByb2FyZ3R5cGVzID0+ICdicGNoYXIgdGV4dCcsCisgIHByb3NyYyA9 PiAnZm9ybWF0Y2FzdF9icGNoYXJfdG9fdGltZXN0YW1wdHonIH0sCit7IG9pZCA9PiAnODY1OScs IGRlc2NyID0+ICdmb3JtYXR0ZWQgY2FzdDogZGF0ZSB0byB0ZXh0JywKKyAgcHJvbmFtZSA9PiAn cGdfZm9ybWF0X2RhdGVfdG9fdGV4dCcsIHByb2lzc3RyaWN0ID0+ICd0JywgcHJvdm9sYXRpbGUg PT4gJ3MnLAorICBwcm9yZXR0eXBlID0+ICd0ZXh0JywgcHJvYXJndHlwZXMgPT4gJ2RhdGUgdGV4 dCcsCisgIHByb3NyYyA9PiAnZm9ybWF0Y2FzdF9kYXRlX3RvX3RleHQnIH0sCit7IG9pZCA9PiAn ODY2MCcsIGRlc2NyID0+ICdmb3JtYXR0ZWQgY2FzdDogZGF0ZSB0byB2YXJjaGFyJywKKyAgcHJv bmFtZSA9PiAncGdfZm9ybWF0X2RhdGVfdG9fdmFyY2hhcicsIHByb2lzc3RyaWN0ID0+ICd0Jywg cHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9yZXR0eXBlID0+ICd2YXJjaGFyJywgcHJvYXJndHlw ZXMgPT4gJ2RhdGUgdGV4dCcsCisgIHByb3NyYyA9PiAnZm9ybWF0Y2FzdF9kYXRlX3RvX3ZhcmNo YXInIH0sCit7IG9pZCA9PiAnODY2MScsIGRlc2NyID0+ICdmb3JtYXR0ZWQgY2FzdDogZGF0ZSB0 byBicGNoYXInLAorICBwcm9uYW1lID0+ICdwZ19mb3JtYXRfZGF0ZV90b19icGNoYXInLCBwcm9p c3N0cmljdCA9PiAndCcsIHByb3ZvbGF0aWxlID0+ICdzJywKKyAgcHJvcmV0dHlwZSA9PiAnYnBj aGFyJywgcHJvYXJndHlwZXMgPT4gJ2RhdGUgdGV4dCcsCisgIHByb3NyYyA9PiAnZm9ybWF0Y2Fz dF9kYXRlX3RvX2JwY2hhcicgfSwKK3sgb2lkID0+ICc4NjYyJywgZGVzY3IgPT4gJ2Zvcm1hdHRl ZCBjYXN0OiB0aW1lc3RhbXAgdG8gdGV4dCcsCisgIHByb25hbWUgPT4gJ3BnX2Zvcm1hdF90aW1l c3RhbXBfdG9fdGV4dCcsIHByb2lzc3RyaWN0ID0+ICd0JywgcHJvdm9sYXRpbGUgPT4gJ3MnLAor ICBwcm9yZXR0eXBlID0+ICd0ZXh0JywgcHJvYXJndHlwZXMgPT4gJ3RpbWVzdGFtcCB0ZXh0JywK KyAgcHJvc3JjID0+ICdmb3JtYXRjYXN0X3RpbWVzdGFtcF90b190ZXh0JyB9LAoreyBvaWQgPT4g Jzg2NjMnLCBkZXNjciA9PiAnZm9ybWF0dGVkIGNhc3Q6IHRpbWVzdGFtcCB0byB2YXJjaGFyJywK KyAgcHJvbmFtZSA9PiAncGdfZm9ybWF0X3RpbWVzdGFtcF90b192YXJjaGFyJywgcHJvaXNzdHJp Y3QgPT4gJ3QnLCBwcm92b2xhdGlsZSA9PiAncycsCisgIHByb3JldHR5cGUgPT4gJ3ZhcmNoYXIn LCBwcm9hcmd0eXBlcyA9PiAndGltZXN0YW1wIHRleHQnLAorICBwcm9zcmMgPT4gJ2Zvcm1hdGNh c3RfdGltZXN0YW1wX3RvX3ZhcmNoYXInIH0sCit7IG9pZCA9PiAnODY2NCcsIGRlc2NyID0+ICdm b3JtYXR0ZWQgY2FzdDogdGltZXN0YW1wIHRvIGJwY2hhcicsCisgIHByb25hbWUgPT4gJ3BnX2Zv cm1hdF90aW1lc3RhbXBfdG9fYnBjaGFyJywgcHJvaXNzdHJpY3QgPT4gJ3QnLCBwcm92b2xhdGls ZSA9PiAncycsCisgIHByb3JldHR5cGUgPT4gJ2JwY2hhcicsIHByb2FyZ3R5cGVzID0+ICd0aW1l c3RhbXAgdGV4dCcsCisgIHByb3NyYyA9PiAnZm9ybWF0Y2FzdF90aW1lc3RhbXBfdG9fYnBjaGFy JyB9LAoreyBvaWQgPT4gJzg2NjUnLCBkZXNjciA9PiAnZm9ybWF0dGVkIGNhc3Q6IHRpbWVzdGFt cHR6IHRvIHRleHQnLAorICBwcm9uYW1lID0+ICdwZ19mb3JtYXRfdGltZXN0YW1wdHpfdG9fdGV4 dCcsIHByb2lzc3RyaWN0ID0+ICd0JywgcHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9yZXR0eXBl ID0+ICd0ZXh0JywgcHJvYXJndHlwZXMgPT4gJ3RpbWVzdGFtcHR6IHRleHQnLAorICBwcm9zcmMg PT4gJ2Zvcm1hdGNhc3RfdGltZXN0YW1wdHpfdG9fdGV4dCcgfSwKK3sgb2lkID0+ICc4NjY2Jywg ZGVzY3IgPT4gJ2Zvcm1hdHRlZCBjYXN0OiB0aW1lc3RhbXB0eiB0byB2YXJjaGFyJywKKyAgcHJv bmFtZSA9PiAncGdfZm9ybWF0X3RpbWVzdGFtcHR6X3RvX3ZhcmNoYXInLCBwcm9pc3N0cmljdCA9 PiAndCcsIHByb3ZvbGF0aWxlID0+ICdzJywKKyAgcHJvcmV0dHlwZSA9PiAndmFyY2hhcicsIHBy b2FyZ3R5cGVzID0+ICd0aW1lc3RhbXB0eiB0ZXh0JywKKyAgcHJvc3JjID0+ICdmb3JtYXRjYXN0 X3RpbWVzdGFtcHR6X3RvX3ZhcmNoYXInIH0sCit7IG9pZCA9PiAnODY2NycsIGRlc2NyID0+ICdm b3JtYXR0ZWQgY2FzdDogdGltZXN0YW1wdHogdG8gYnBjaGFyJywKKyAgcHJvbmFtZSA9PiAncGdf Zm9ybWF0X3RpbWVzdGFtcHR6X3RvX2JwY2hhcicsIHByb2lzc3RyaWN0ID0+ICd0JywgcHJvdm9s YXRpbGUgPT4gJ3MnLAorICBwcm9yZXR0eXBlID0+ICdicGNoYXInLCBwcm9hcmd0eXBlcyA9PiAn dGltZXN0YW1wdHogdGV4dCcsCisgIHByb3NyYyA9PiAnZm9ybWF0Y2FzdF90aW1lc3RhbXB0el90 b19icGNoYXInIH0sCiB7IG9pZCA9PiAnMTc2OCcsIGRlc2NyID0+ICdmb3JtYXQgaW50ZXJ2YWwg dG8gdGV4dCcsCiAgIHByb25hbWUgPT4gJ3RvX2NoYXInLCBwcm92b2xhdGlsZSA9PiAncycsIHBy b3JldHR5cGUgPT4gJ3RleHQnLAogICBwcm9hcmd0eXBlcyA9PiAnaW50ZXJ2YWwgdGV4dCcsIHBy b3NyYyA9PiAnaW50ZXJ2YWxfdG9fY2hhcicgfSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvZXhwcmVzc2lvbnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9l eHByZXNzaW9ucy5vdXQKaW5kZXggMWNiZDA1MTM1ZGQuLjA2YjFjOThhYzM2IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2V4cHJlc3Npb25zLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2V4cHJlc3Npb25zLm91dApAQCAtNTY1LDIxICs1NjUsMjIgQEAg cm9sbGJhY2s7CiAtLSBDQVNUKGV4cHIgQVMgdHlwZSBGT1JNQVQgZm9ybWF0X2V4cHIpCiAtLQog LS0gQSBGT1JNQVQgY2xhdXNlIGlzIHJlc29sdmVkIHRocm91Z2ggYSByZWdpc3RlcmVkIGZvcm1h dCBjYXN0IChzZWUgQ1JFQVRFCi0tLSBGT1JNQVQgQ0FTVCkgYW5kIG5ldmVyIGZhbGxzIGJhY2sg dG8gYW4gb3JkaW5hcnkgY2FzdC4gIE5vIGZvcm1hdF9jYXN0cyBhcmUKLS0tIGRlZmluZWQgaW4g dGhpcyB0ZXN0LCBzbyB0aGVzZSBjYXN0cyBmYWlsIHdpdGggYSBtaXNzaW5nLWZvcm1hdCBjYXN0 IGVycm9yOwotLS0gdGhpcyBjb25maXJtcyB0aGUgRk9STUFUIGNsYXVzZSBpcyBuZWl0aGVyIGln bm9yZWQgbm9yIHRyZWF0ZWQgYXMgYW4KLS0tIG9yZGluYXJ5IGNhc3QuICBBbiB1bmtub3duLXR5 cGUgc291cmNlIGxpdGVyYWwgaXMgY29lcmNlZCB0byB0ZXh0IGZpcnN0LAotLS0gc28gdGhlIGxv b2t1cCBrZXkgaXMgKHRleHQsIHRhcmdldCkuCi0tLSBiYXNpYyBmb3JtIChsb29rcyB1cCBhIGZv cm1hdCBjYXN0IGZvciAodGV4dCwgZGF0ZSkpCi1TRUxFQ1QgQ0FTVCgnMjAyNi0wNi0yNCcgQVMg ZGF0ZSBGT1JNQVQgJ1lZWVktTU0tREQnKTsKLUVSUk9SOiAgZm9ybWF0IGNhc3QgZnJvbSB0eXBl IHRleHQgdG8gdHlwZSBkYXRlIGRvZXMgbm90IGV4aXN0Ci1MSU5FIDE6IFNFTEVDVCBDQVNUKCcy MDI2LTA2LTI0JyBBUyBkYXRlIEZPUk1BVCAnWVlZWS1NTS1ERCcpOworLS0gRk9STUFUIENBU1Qp IGFuZCBuZXZlciBmYWxscyBiYWNrIHRvIGFuIG9yZGluYXJ5IGNhc3QuICBUaGUgdHlwZSBwYWly cyB1c2VkCistLSBoZXJlIGhhdmUgbm8gZm9ybWF0IGNhc3QgKHRoZSBidWlsdC1pbiBmb3JtYXQg Y2FzdHMgY292ZXIgZGF0ZXRpbWUvc3RyaW5nIHBhaXJzLAorLS0gbm90IHRoZXNlKSwgc28gdGhl c2UgY2FzdHMgZmFpbCB3aXRoIGEgbWlzc2luZy1mb3JtYXQgY2FzdCBlcnJvciBldmVuIHRob3Vn aCBhbgorLS0gb3JkaW5hcnkgY2FzdCB3b3VsZCBzdWNjZWVkOyB0aGlzIGNvbmZpcm1zIHRoZSBG T1JNQVQgY2xhdXNlIGlzIG5laXRoZXIKKy0tIGlnbm9yZWQgbm9yIHRyZWF0ZWQgYXMgYW4gb3Jk aW5hcnkgY2FzdC4gIEFuIHVua25vd24tdHlwZSBzb3VyY2UgbGl0ZXJhbCBpcworLS0gY29lcmNl ZCB0byB0ZXh0IGZpcnN0LCBzbyB0aGUgbG9va3VwIGtleSBpcyAodGV4dCwgdGFyZ2V0KS4KKy0t IGJhc2ljIGZvcm0gKGxvb2tzIHVwIGEgZm9ybWF0IGNhc3QgZm9yICh0ZXh0LCBpbnRlZ2VyKTsg bm9uZSBleGlzdHMpCitTRUxFQ1QgQ0FTVCgnNDInIEFTIGludGVnZXIgRk9STUFUICd3aGF0ZXZl cicpOworRVJST1I6ICBmb3JtYXQgY2FzdCBmcm9tIHR5cGUgdGV4dCB0byB0eXBlIGludGVnZXIg ZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUIENBU1QoJzQyJyBBUyBpbnRlZ2VyIEZPUk1B VCAnd2hhdGV2ZXInKTsKICAgICAgICAgICAgICAgIF4KIEhJTlQ6ICBVc2UgQ1JFQVRFIEZPUk1B VCBDQVNUIHRvIGRlZmluZSBhIGZvcm1hdCBjYXN0IGZvciB0aGlzIHR5cGUgcGFpci4KIC0tIHRo ZSBmb3JtYXQgbWF5IGJlIGEgZ2VuZXJhbCBleHByZXNzaW9uLCBub3QganVzdCBhIHN0cmluZyBs aXRlcmFsCi1TRUxFQ1QgQ0FTVCgnMjAyNi0wNi0yNCcgQVMgZGF0ZSBGT1JNQVQgJ1lZWVknIHx8 ICctTU0tREQnKTsKLUVSUk9SOiAgZm9ybWF0IGNhc3QgZnJvbSB0eXBlIHRleHQgdG8gdHlwZSBk YXRlIGRvZXMgbm90IGV4aXN0Ci1MSU5FIDE6IFNFTEVDVCBDQVNUKCcyMDI2LTA2LTI0JyBBUyBk YXRlIEZPUk1BVCAnWVlZWScgfHwgJy1NTS1ERCcpOworU0VMRUNUIENBU1QoJzQyJyBBUyBpbnRl Z2VyIEZPUk1BVCAnd2hhdCcgfHwgJ2V2ZXInKTsKK0VSUk9SOiAgZm9ybWF0IGNhc3QgZnJvbSB0 eXBlIHRleHQgdG8gdHlwZSBpbnRlZ2VyIGRvZXMgbm90IGV4aXN0CitMSU5FIDE6IFNFTEVDVCBD QVNUKCc0MicgQVMgaW50ZWdlciBGT1JNQVQgJ3doYXQnIHx8ICdldmVyJyk7CiAgICAgICAgICAg ICAgICBeCiBISU5UOiAgVXNlIENSRUFURSBGT1JNQVQgQ0FTVCB0byBkZWZpbmUgYSBmb3JtYXQg Y2FzdCBmb3IgdGhpcyB0eXBlIHBhaXIuCiAtLSBhIG5vLW9wLWxvb2tpbmcgY2FzdCBtdXN0IG5v dCBiZSByZWxhYmVsZWQgYXdheTsgaXQgbmVlZHMgYSAodGV4dCwgdGV4dCkgZm9ybWF0IGNhc3QK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9ybWF0X2Nhc3RzLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9ybWF0X2Nhc3RzLm91dAppbmRleCBjYjg2ODQw ODBlZi4uNTQ4OTdlZWY0ZDcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv Zm9ybWF0X2Nhc3RzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcm1hdF9j YXN0cy5vdXQKQEAgLTk5LDcgKzk5LDkgQEAgQ1JFQVRFIEZVTkNUSU9OIGZtdF9iYWRfc2V0KGlu dGVnZXIsIHRleHQpIFJFVFVSTlMgU0VUT0YgdGV4dAogQ1JFQVRFIEZPUk1BVCBDQVNUIChpbnRl Z2VyIEFTIHRleHQpCiAJV0lUSCBGVU5DVElPTiBmbXRfYmFkX3NldChpbnRlZ2VyLCB0ZXh0KTsJ CS0tIHNldC1yZXR1cm5pbmcgcmVqZWN0ZWQKIEVSUk9SOiAgZm9ybWF0IGNhc3QgZnVuY3Rpb24g bXVzdCBub3QgcmV0dXJuIGEgc2V0Ci0tLSBObyBwc2V1ZG8tdHlwZXMKKy0tIE5vIHBzZXVkby10 eXBlczogYSBmb3JtYXQgY2FzdCdzIHNvdXJjZS90YXJnZXQgbWF5IG5vdCBiZSBhIHBzZXVkby10 eXBlLCBzbworLS0gQ1JFQVRFIEZPUk1BVCBDQVNUIG9uIGEgcG9seW1vcnBoaWMgKGFueWVsZW1l bnQpIHNvdXJjZSBpcyBpbnRlbnRpb25hbGx5CistLSByZWplY3RlZC4KIENSRUFURSBGVU5DVElP TiBmbXRfYW55ZWwoYW55ZWxlbWVudCwgdGV4dCkgUkVUVVJOUyB0ZXh0CiAJTEFOR1VBR0Ugc3Fs IElNTVVUQUJMRSBBUyAkJCBTRUxFQ1QgJDIgJCQ7CiBDUkVBVEUgRk9STUFUIENBU1QgKGFueWVs ZW1lbnQgQVMgdGV4dCkKQEAgLTM5NywzICszOTksMjc4IEBAIFNFTEVDVCBjb3VudCgqKSBGUk9N IHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAnZm9ybWF0X2Nhc3RfY2hhaW5fdmlldyc7CiAgICAg IDAKICgxIHJvdykKIAorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEJ1aWx0LWluIGRhdGV0aW1lL3N0cmlu ZyBmb3JtYXQgY2FzdHMuCistLSBUaGVzZSByb3dzIGFyZSByZWdpc3RlcmVkIGluIHBnX2Zvcm1h dF9jYXN0IGFuZCByZXVzZSBQb3N0Z3JlU1FMJ3MKKy0tIGV4aXN0aW5nIGZvcm1hdHRpbmcgdGVt cGxhdGUgYmVoYXZpb3IuCistLSBUaGlzIGluaXRpYWwgc2V0IGNvdmVycyBkYXRlLCB0aW1lc3Rh bXAgYW5kIHRpbWVzdGFtcHR6IHdpdGgKKy0tIHRleHQvdmFyY2hhci9icGNoYXIuCistLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0gUGluIHRoZSB0aW1lIHpvbmUgYW5kIGRhdGUgc3R5bGUgc28gcmVzdWx0cyBh cmUgc3RhYmxlIGFjcm9zcyBtYWNoaW5lcy4KK1NFVCBUaW1lWm9uZSA9ICdVVEMnOworU0VUIERh dGVTdHlsZSA9ICdJU08sIFlNRCc7CistLSB0ZXh0IC0+IGRhdGUuICBUaGUgdW5rbm93bi10eXBl IGxpdGVyYWwgaXMgY29lcmNlZCB0byB0ZXh0IGJlZm9yZSBmb3JtYXQKKy0tIGNhc3QgbG9va3Vw LgorU0VMRUNUIENBU1QoJzIwMjYtMDYtMjgnIEFTIGRhdGUgRk9STUFUICdZWVlZLU1NLUREJyk7 CisgICAgZGF0ZSAgICAKKy0tLS0tLS0tLS0tLQorIDIwMjYtMDYtMjgKKygxIHJvdykKKworLS0g dmFyY2hhciBzb3VyY2UgLT4gZGF0ZQorU0VMRUNUIENBU1QoJzIwMjYtMDYtMjgnOjp2YXJjaGFy IEFTIGRhdGUgRk9STUFUICdZWVlZLU1NLUREJyk7CisgICAgZGF0ZSAgICAKKy0tLS0tLS0tLS0t LQorIDIwMjYtMDYtMjgKKygxIHJvdykKKworLS0gYnBjaGFyIHNvdXJjZSAtPiBkYXRlOiBhIENI QVIoMTApIGhvbGRzIHRoZSB2YWx1ZSBleGFjdGx5LCBhbmQgYSB3aWRlcgorLS0gQ0hBUigyMCkg cGFkcyB3aXRoIGJsYW5rcyB0aGF0IHRoZSBmb3JtYXQgY2FzdCB0cmltcyBiZWZvcmUgcGFyc2lu Zy4KK1NFTEVDVCBDQVNUKCcyMDI2LTA2LTI4Jzo6Y2hhcigxMCkgQVMgZGF0ZSBGT1JNQVQgJ1lZ WVktTU0tREQnKTsKKyAgICBkYXRlICAgIAorLS0tLS0tLS0tLS0tCisgMjAyNi0wNi0yOAorKDEg cm93KQorCitTRUxFQ1QgQ0FTVCgnMjAyNi0wNi0yOCc6OmNoYXIoMjApIEFTIGRhdGUgRk9STUFU ICdZWVlZLU1NLUREJyk7CisgICAgZGF0ZSAgICAKKy0tLS0tLS0tLS0tLQorIDIwMjYtMDYtMjgK KygxIHJvdykKKworLS0gVGhlIGJ1aWx0LWluIGZvcm1hdCBjYXN0IGZ1bmN0aW9ucyBhcmUgU1RS SUNUOiBhIE5VTEwgc291cmNlIG9yIGEgTlVMTCBGT1JNQVQKKy0tIGV4cHJlc3Npb24geWllbGRz IE5VTEwgd2l0aG91dCBpbnZva2luZyB0aGUgZm9ybWF0IGNhc3QuCitTRUxFQ1QgQ0FTVChOVUxM Ojp0ZXh0IEFTIGRhdGUgRk9STUFUICdZWVlZLU1NLUREJykgSVMgTlVMTCBBUyBudWxsX3NyYzsK KyBudWxsX3NyYyAKKy0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcyMDI2 LTA2LTI4JyBBUyBkYXRlIEZPUk1BVCBOVUxMOjp0ZXh0KSBJUyBOVUxMIEFTIG51bGxfZm10Owor IG51bGxfZm10IAorLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIENBU1QoTlVMTDo6 ZGF0ZSBBUyB0ZXh0IEZPUk1BVCAnWVlZWS1NTS1ERCcpIElTIE5VTEwgQVMgbnVsbF9zcmNfb3V0 OworIG51bGxfc3JjX291dCAKKy0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCistLSBkYXRl IC0+IHRleHQgLyB2YXJjaGFyCitTRUxFQ1QgQ0FTVChkYXRlICcyMDI2LTA2LTI4JyBBUyB0ZXh0 IEZPUk1BVCAnWVlZWS1NTS1ERCcpOworICAgIHRleHQgICAgCistLS0tLS0tLS0tLS0KKyAyMDI2 LTA2LTI4CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKGRhdGUgJzIwMjYtMDYtMjgnIEFTIHZhcmNo YXIgRk9STUFUICdZWVlZLU1NLUREJyk7CisgIHZhcmNoYXIgICAKKy0tLS0tLS0tLS0tLQorIDIw MjYtMDYtMjgKKygxIHJvdykKKworLS0gZGF0ZSAtPiB2YXJjaGFyIHdpdGggYSB0eXBtb2Q6IHRo ZSBkZWNsYXJlZCBsZW5ndGggaXMgZW5mb3JjZWQgYnkgdGhlCistLSBvcmRpbmFyeSBjb2VyY2lv biBsYXllcmVkIGFib3ZlIHRoZSBmb3JtYXQgY2FzdCAoaGVyZSBpdCB0cnVuY2F0ZXMgdG8gNyku CitTRUxFQ1QgQ0FTVChkYXRlICcyMDI2LTA2LTI4JyBBUyB2YXJjaGFyKDcpIEZPUk1BVCAnWVlZ WS1NTS1ERCcpOworIHZhcmNoYXIgCistLS0tLS0tLS0KKyAyMDI2LTA2CisoMSByb3cpCisKKy0t IGRhdGUgLT4gYnBjaGFyOiBBUyBjaGFyKDEyKSBwYWRzIHRvIHRoZSBkZWNsYXJlZCBsZW5ndGg7 IGJhcmUgQVMgY2hhciBpcworLS0gY2hhcigxKSwgc28gdGhlIG9yZGluYXJ5IGNvZXJjaW9uIHRy dW5jYXRlcyB0byBvbmUgY2hhcmFjdGVyLiAgVGhlIHdyYXBwZXIKKy0tIHJldHVybnMgYSB0ZXh0 IHZhcmxlbmEgdGhhdCBpcyBhIHZhbGlkIGJwY2hhciB2YWx1ZS4KK1NFTEVDVCBDQVNUKGRhdGUg JzIwMjYtMDYtMjgnIEFTIGNoYXIoMTIpIEZPUk1BVCAnWVlZWS1NTS1ERCcpOworICAgIGJwY2hh ciAgICAKKy0tLS0tLS0tLS0tLS0tCisgMjAyNi0wNi0yOCAgCisoMSByb3cpCisKK1NFTEVDVCBD QVNUKGRhdGUgJzIwMjYtMDYtMjgnIEFTIGNoYXIgRk9STUFUICdZWVlZLU1NLUREJyk7CisgYnBj aGFyIAorLS0tLS0tLS0KKyAyCisoMSByb3cpCisKKy0tIENvbGxhdGlvbjogYSBmb3JtYXR0ZWQg Y2FzdCBpcyBjb2xsYXRlZCBsaWtlIHRoZSBmdW5jdGlvbiBjYWxsIGl0IGV4ZWN1dGVzLgorLS0g QSBjb2xsYXRhYmxlIHJlc3VsdCB0eXBlICh0ZXh0KSBtdXN0IGdldCBhIHJlYWwgcmVzdWx0IGNv bGxhdGlvbiwgbm90CistLSBJbnZhbGlkT2lkOyAiY29sbGF0aW9uIGZvciIgcmVwb3J0cyAiZGVm YXVsdCIgKGl0IHdvdWxkIGJlIE5VTEwgaWYgdGhlCistLSByZXN1bHQgY29sbGF0aW9uIHdlcmUg dW5zZXQpLCBhbmQgYW4gZXhwbGljaXQgQ09MTEFURSBvbiB0aGUgcmVzdWx0IHdvcmtzLgorU0VM RUNUIHBnX2NvbGxhdGlvbl9mb3IoQ0FTVChkYXRlICcyMDI2LTA2LTI4JyBBUyB0ZXh0IEZPUk1B VCAnWVlZWS1NTS1ERCcpKTsKKyBwZ19jb2xsYXRpb25fZm9yIAorLS0tLS0tLS0tLS0tLS0tLS0t CisgImRlZmF1bHQiCisoMSByb3cpCisKK1NFTEVDVCBwZ19jb2xsYXRpb25fZm9yKENBU1QoZGF0 ZSAnMjAyNi0wNi0yOCcgQVMgdGV4dCBGT1JNQVQgJ1lZWVktTU0tREQnKSBDT0xMQVRFICJDIik7 CisgcGdfY29sbGF0aW9uX2ZvciAKKy0tLS0tLS0tLS0tLS0tLS0tLQorICJDIgorKDEgcm93KQor CistLSBBbiBleHBsaWNpdCBDT0xMQVRFIG9uIHRoZSBGT1JNQVQgYXJndW1lbnQgZmxvd3MgaW4g YXMgdGhlIGlucHV0IGNvbGxhdGlvbi4KK1NFTEVDVCBwZ19jb2xsYXRpb25fZm9yKENBU1QoZGF0 ZSAnMjAyNi0wNi0yOCcgQVMgdGV4dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGT1JN QVQgJ1lZWVktTU0tREQnOjp0ZXh0IENPTExBVEUgIkMiKSk7CisgcGdfY29sbGF0aW9uX2ZvciAK Ky0tLS0tLS0tLS0tLS0tLS0tLQorICJDIgorKDEgcm93KQorCistLSB0aW1lc3RhbXAgd2l0aG91 dCB0aW1lIHpvbmUsIGJvdGggZGlyZWN0aW9ucworU0VMRUNUIENBU1QoJzIwMjYtMDYtMjggMTM6 NDU6MzAnIEFTIHRpbWVzdGFtcCBGT1JNQVQgJ1lZWVktTU0tREQgSEgyNDpNSTpTUycpOworICAg ICAgdGltZXN0YW1wICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAyMDI2LTA2LTI4IDEz OjQ1OjMwCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKHRpbWVzdGFtcCAnMjAyNi0wNi0yOCAxMzo0 NTozMCcgQVMgdGV4dCBGT1JNQVQgJ1lZWVktTU0tREQgSEgyNDpNSTpTUycpOworICAgICAgICB0 ZXh0ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAyMDI2LTA2LTI4IDEzOjQ1OjMw CisoMSByb3cpCisKKy0tIGEgZGF0ZS1vbmx5IHRlbXBsYXRlIGlzIHdpZGVuZWQgdG8gdGltZXN0 YW1wIChtaWRuaWdodCkKK1NFTEVDVCBDQVNUKCcyMDI2LTA2LTI4JyBBUyB0aW1lc3RhbXAgRk9S TUFUICdZWVlZLU1NLUREJyk7CisgICAgICB0aW1lc3RhbXAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIDIwMjYtMDYtMjggMDA6MDA6MDAKKygxIHJvdykKKworLS0gVGhlIGJ1aWx0LWlu cyByZXVzZSBQb3N0Z3JlU1FMJ3MgZXhpc3RpbmcgZm9ybWF0dGluZyBwYXJzZXI6IGEgdGVtcGxh dGUgd2l0aAorLS0gbm8gdGltZS16b25lIGZpZWxkIGNvbnN1bWVzIG9ubHkgdGhlIGZpZWxkcyBp dCBuYW1lcywgc28gYSB0cmFpbGluZyB0aW1lIHpvbmUKKy0tIGluIHRoZSBpbnB1dCBpcyBzaW1w bHkgaWdub3JlZCAoZXhpc3RpbmcgdG9fdGltZXN0YW1wKCkgYmVoYXZpb3IsIHVuY2hhbmdlZCku CitTRUxFQ1QgQ0FTVCgnMjAyNi0wNi0yOCAxMzo0NTozMCswNScgQVMgdGltZXN0YW1wIEZPUk1B VCAnWVlZWS1NTS1ERCBISDI0Ok1JOlNTJyk7CisgICAgICB0aW1lc3RhbXAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIDIwMjYtMDYtMjggMTM6NDU6MzAKKygxIHJvdykKKworLS0gQnV0 IGEgdGVtcGxhdGUgdGhhdCBleHBsaWNpdGx5IGNvbnRhaW5zIGEgdGltZS16b25lIGZpZWxkIGlz IHJlamVjdGVkIGZvciBhCistLSB0aW1lc3RhbXAtd2l0aG91dC10aW1lLXpvbmUgdGFyZ2V0ICh3 ZSBtdXN0IG5vdCBmb2xkIGEgem9uZSBpbnRvIGEgem9uZWxlc3MKKy0tIHJlc3VsdCB2aWEgdGhl IHNlc3Npb24gVGltZVpvbmUpLgorU0VMRUNUIENBU1QoJzIwMjYtMDYtMjggMTM6NDU6MzArMDUn IEFTIHRpbWVzdGFtcCBGT1JNQVQgJ1lZWVktTU0tREQgSEgyNDpNSTpTUyBUWkgnKTsKK0VSUk9S OiAgRk9STUFUIHRlbXBsYXRlIGZvciBhIGNhc3QgdG8gdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6 b25lIG11c3Qgbm90IHNwZWNpZnkgYSB0aW1lIHpvbmUKKy0tIHRpbWVzdGFtcCBXSVRIT1VUIHRp bWUgem9uZSBtdXN0IG5vdCBkZXBlbmQgb24gdGhlIHNlc3Npb24gVGltZVpvbmU6IHRoZSBzYW1l CistLSAodW56b25lZCkgaW5wdXQvdGVtcGxhdGUgeWllbGRzIHRoZSBzYW1lIHdhbGwtY2xvY2sg dmFsdWUgdW5kZXIgYW55IHpvbmUuCitTRVQgVGltZVpvbmUgPSAnQW1lcmljYS9Mb3NfQW5nZWxl cyc7CitTRUxFQ1QgQ0FTVCgnMjAyNi0wNi0yOCAxMzo0NTozMCcgQVMgdGltZXN0YW1wIEZPUk1B VCAnWVlZWS1NTS1ERCBISDI0Ok1JOlNTJyk7CisgICAgICB0aW1lc3RhbXAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIDIwMjYtMDYtMjggMTM6NDU6MzAKKygxIHJvdykKKworU0VUIFRp bWVab25lID0gJ1VUQyc7CitTRUxFQ1QgQ0FTVCgnMjAyNi0wNi0yOCAxMzo0NTozMCcgQVMgdGlt ZXN0YW1wIEZPUk1BVCAnWVlZWS1NTS1ERCBISDI0Ok1JOlNTJyk7CisgICAgICB0aW1lc3RhbXAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDIwMjYtMDYtMjggMTM6NDU6MzAKKygxIHJv dykKKworLS0gdGltZXN0YW1wIHdpdGggdGltZSB6b25lLCBib3RoIGRpcmVjdGlvbnMgKFRpbWVa b25lIGlzIFVUQywgc2V0IGFib3ZlKQorU0VMRUNUIENBU1QoJzIwMjYtMDYtMjggMTM6NDU6MzAg KzAwJyBBUyB0aW1lc3RhbXB0eiBGT1JNQVQgJ1lZWVktTU0tREQgSEgyNDpNSTpTUyBUWkgnKTsK KyAgICAgIHRpbWVzdGFtcHR6ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMjAy Ni0wNi0yOCAxMzo0NTozMCswMAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCh0aW1lc3RhbXB0eiAn MjAyNi0wNi0yOCAxMzo0NTozMCswMCcgQVMgdGV4dCBGT1JNQVQgJ1lZWVktTU0tREQgSEgyNDpN STpTUyBUWkgnKTsKKyAgICAgICAgICB0ZXh0ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAyMDI2LTA2LTI4IDEzOjQ1OjMwICswMAorKDEgcm93KQorCistLSBBIHNhbXBs aW5nIG9mIGRhdGV0aW1lIHRlbXBsYXRlIHRva2VucywgZXhlcmNpc2VkIHRocm91Z2ggdGhlIGV4 aXN0aW5nCistLSB0b19jaGFyL3RvX3RpbWVzdGFtcCBlbmdpbmUuICBUWk0gYW5kIFNTU1NTIGFy ZSBzdXBwb3J0ZWQgaGVyZS4KK1NFTEVDVCBDQVNUKHRpbWVzdGFtcHR6ICcyMDI2LTA2LTI4IDEz OjQ1OjMwKzAwJyBBUyB0ZXh0CisgICAgICAgICAgICBGT1JNQVQgJ1lZWVktTU0tREQiVCJISDI0 Ok1JOlNTIFRaSDpUWk0nKTsKKyAgICAgICAgICAgIHRleHQgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAyMDI2LTA2LTI4VDEzOjQ1OjMwICswMDowMAorKDEgcm93 KQorCitTRUxFQ1QgQ0FTVCh0aW1lc3RhbXAgJzIwMjYtMDYtMjggMTM6NDU6MzAnIEFTIHRleHQg Rk9STUFUICdTU1NTUycpOworIHRleHQgIAorLS0tLS0tLQorIDQ5NTMwCisoMSByb3cpCisKKy0t IEZyYWN0aW9uYWwgc2Vjb25kcyAoRkZuKSBhcmUgYWNjZXB0ZWQgYnkgdG9fY2hhciBpbiB0aGUg b3V0cHV0IGRpcmVjdGlvbi4KK1NFTEVDVCBDQVNUKHRpbWVzdGFtcCAnMjAyNi0wNi0yOCAxMzo0 NTozMC4xMjM0NTYnIEFTIHRleHQKKyAgICAgICAgICAgIEZPUk1BVCAnSEgyNDpNSTpTUy5GRjYn KTsKKyAgICAgIHRleHQgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLQorIDEzOjQ1OjMwLjEyMzQ1 NgorKDEgcm93KQorCistLSBFbXB0eSBGT1JNQVQgdGVtcGxhdGUgYmVoYXZpb3IgZm9sbG93cyB0 aGUgdW5kZXJseWluZyBmb3JtYXR0aW5nIGZ1bmN0aW9ucy4KKy0tIEluIHRoZSBwYXJzZSBkaXJl Y3Rpb24gdGhlIHVuZGVybHlpbmcgdG9fZGF0ZSgpIGVuZ2luZSBwYXJzZXMgbm8gZmllbGRzIGFu ZAorLS0gcmV0dXJucyB0aGUgYWxsLWRlZmF1bHRzIGRhdGU7IGluIHRoZSBmb3JtYXQgZGlyZWN0 aW9uIHRoZSB3cmFwcGVycyBtaXJyb3IKKy0tIHRvX2NoYXIodmFsdWUsICcnKSwgd2hpY2ggaXMg TlVMTC4KK1NFTEVDVCBDQVNUKCcyMDI2LTA2LTI4JyBBUyBkYXRlIEZPUk1BVCAnJyk7CisgICAg IGRhdGUgICAgICAKKy0tLS0tLS0tLS0tLS0tLQorIDAwMDEtMDEtMDEgQkMKKygxIHJvdykKKwor U0VMRUNUIENBU1QoZGF0ZSAnMjAyNi0wNi0yOCcgQVMgdGV4dCBGT1JNQVQgJycpIElTIE5VTEwg QVMgZW1wdHlfZm10X291dDsKKyBlbXB0eV9mbXRfb3V0IAorLS0tLS0tLS0tLS0tLS0tCisgdAor KDEgcm93KQorCistLSBUaGUgRk9STUFUIGNsYXVzZSByZW1haW5zIGEgUG9zdGdyZVNRTCBleHRl bnNpb246IGl0IG1heSBiZSBhbnkgZXhwcmVzc2lvbgorLS0gY29lcmNpYmxlIHRvIHRleHQsIG5v dCBqdXN0IGEgc3RyaW5nIGxpdGVyYWwuCitTRUxFQ1QgQ0FTVCgnMjAyNi0nIHx8ICcwNi0yOCcg QVMgZGF0ZSBGT1JNQVQgJ1lZWVktJyB8fCAnTU0tREQnKTsKKyAgICBkYXRlICAgIAorLS0tLS0t LS0tLS0tCisgMjAyNi0wNi0yOAorKDEgcm93KQorCistLSBBIEZPUk1BVCBjbGF1c2UgbmV2ZXIg ZmFsbHMgYmFjayB0byBhbiBvcmRpbmFyeSBjYXN0OiBhbiBpbnRlZ2VyIC0+IGRhdGUKKy0tIHBh aXIgaGFzIG5vIGZvcm1hdCBjYXN0IChhbmQgbm8gb3JkaW5hcnkgY2FzdCksIHNvIGl0IGVycm9y cy4KK1NFTEVDVCBDQVNUKDUgQVMgZGF0ZSBGT1JNQVQgJ1lZWVknKTsKK0VSUk9SOiAgZm9ybWF0 IGNhc3QgZnJvbSB0eXBlIGludGVnZXIgdG8gdHlwZSBkYXRlIGRvZXMgbm90IGV4aXN0CitMSU5F IDE6IFNFTEVDVCBDQVNUKDUgQVMgZGF0ZSBGT1JNQVQgJ1lZWVknKTsKKyAgICAgICAgICAgICAg IF4KK0hJTlQ6ICBVc2UgQ1JFQVRFIEZPUk1BVCBDQVNUIHRvIGRlZmluZSBhIGZvcm1hdCBjYXN0 IGZvciB0aGlzIHR5cGUgcGFpci4KKy0tIEEgYnVpbHQtaW4gZm9ybWF0IGNhc3Qgb2NjdXBpZXMg aXRzIChzb3VyY2UsIHRhcmdldCkgcGFpciwgc28gYSB1c2VyCistLSBDUkVBVEUgRk9STUFUIENB U1QgZm9yIHRoZSBzYW1lIHBhaXIgZmFpbHMgd2l0aCB0aGUgdXN1YWwgZHVwbGljYXRlIGVycm9y LgorQ1JFQVRFIEZVTkNUSU9OIG15X3RleHRfdG9fZGF0ZSh0ZXh0LCB0ZXh0KSBSRVRVUk5TIGRh dGUKKwlMQU5HVUFHRSBzcWwgSU1NVVRBQkxFIFJFVFVSTiB0b19kYXRlKCQxLCAkMik7CitDUkVB VEUgRk9STUFUIENBU1QgKHRleHQgQVMgZGF0ZSkKKwlXSVRIIEZVTkNUSU9OIG15X3RleHRfdG9f ZGF0ZSh0ZXh0LCB0ZXh0KTsJCS0tIGZhaWxzOiBhbHJlYWR5IGV4aXN0cworRVJST1I6ICBmb3Jt YXQgY2FzdCBmcm9tIHR5cGUgdGV4dCB0byB0eXBlIGRhdGUgYWxyZWFkeSBleGlzdHMKK0RST1Ag RlVOQ1RJT04gbXlfdGV4dF90b19kYXRlKHRleHQsIHRleHQpOworLS0gQnVpbHQtaW4gZm9ybWF0 IGNhc3Qgcm93cyBhcmUgc3lzdGVtIG9iamVjdHMgKHRoZWlyIE9JRHMgYXJlIGluIHRoZSBwaW5u ZWQKKy0tIHJhbmdlKSwgc28gdGhleSBjYW5ub3QgYmUgZHJvcHBlZC4KK0RST1AgRk9STUFUIENB U1QgKHRleHQgQVMgZGF0ZSk7CQkJCS0tIGZhaWxzOiBwaW5uZWQgc3lzdGVtIG9iamVjdAorRVJS T1I6ICBjYW5ub3QgZHJvcCBmb3JtYXQgY2FzdCBmcm9tIHRleHQgdG8gZGF0ZSBiZWNhdXNlIGl0 IGlzIHJlcXVpcmVkIGJ5IHRoZSBkYXRhYmFzZSBzeXN0ZW0KKy0tIEEgdmlldyBvdmVyIGEgYnVp bHQtaW4gZm9ybWF0dGVkIGNhc3QgZGVwYXJzZXMgYmFjayB0byBDQVNUKC4uLiBGT1JNQVQgLi4u KS4KK0NSRUFURSBWSUVXIGJ1aWx0aW5fZm9ybWF0X2Nhc3RfdmlldyBBUworCVNFTEVDVCBDQVNU KCcyMDI2LTA2LTI4JyBBUyBkYXRlIEZPUk1BVCAnWVlZWS1NTS1ERCcpIEFTIGQ7CitTRUxFQ1Qg cGdfZ2V0X3ZpZXdkZWYoJ2J1aWx0aW5fZm9ybWF0X2Nhc3Rfdmlldyc6OnJlZ2NsYXNzLCB0cnVl KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF92aWV3ZGVmICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICBTRUxFQ1QgQ0FTVCgn MjAyNi0wNi0yOCc6OnRleHQgQVMgZGF0ZSBGT1JNQVQgJ1lZWVktTU0tREQnOjp0ZXh0KSBBUyBk OworKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIGJ1aWx0aW5fZm9ybWF0X2Nhc3RfdmlldzsKKyAg ICAgZCAgICAgIAorLS0tLS0tLS0tLS0tCisgMjAyNi0wNi0yOAorKDEgcm93KQorCitEUk9QIFZJ RVcgYnVpbHRpbl9mb3JtYXRfY2FzdF92aWV3OworLS0gTWFrZSBzdXJlIHF1ZXJ5IGp1bWJsaW5n IGhhbmRsZXMgQ29lcmNlVmlhRm9ybWF0Q2FzdC4KK1NFVCBjb21wdXRlX3F1ZXJ5X2lkID0gb247 CitTRUxFQ1QgQ0FTVCgnMjAyNi0wNi0yOCcgQVMgZGF0ZSBGT1JNQVQgJ1lZWVktTU0tREQnKTsK KyAgICBkYXRlICAgIAorLS0tLS0tLS0tLS0tCisgMjAyNi0wNi0yOAorKDEgcm93KQorCitSRVNF VCBjb21wdXRlX3F1ZXJ5X2lkOworUkVTRVQgVGltZVpvbmU7CitSRVNFVCBEYXRlU3R5bGU7CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9leHByZXNzaW9ucy5zcWwgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9leHByZXNzaW9ucy5zcWwKaW5kZXggZGY0ZjViMjA0NjYuLjYwY2EyZDQ5 ZDA2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9leHByZXNzaW9ucy5zcWwKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZXhwcmVzc2lvbnMuc3FsCkBAIC0zMDYsMTcgKzMwNiwx OCBAQCByb2xsYmFjazsKIC0tIENBU1QoZXhwciBBUyB0eXBlIEZPUk1BVCBmb3JtYXRfZXhwcikK IC0tCiAtLSBBIEZPUk1BVCBjbGF1c2UgaXMgcmVzb2x2ZWQgdGhyb3VnaCBhIHJlZ2lzdGVyZWQg Zm9ybWF0IGNhc3QgKHNlZSBDUkVBVEUKLS0tIEZPUk1BVCBDQVNUKSBhbmQgbmV2ZXIgZmFsbHMg YmFjayB0byBhbiBvcmRpbmFyeSBjYXN0LiAgTm8gZm9ybWF0X2Nhc3RzIGFyZQotLS0gZGVmaW5l ZCBpbiB0aGlzIHRlc3QsIHNvIHRoZXNlIGNhc3RzIGZhaWwgd2l0aCBhIG1pc3NpbmctZm9ybWF0 IGNhc3QgZXJyb3I7Ci0tLSB0aGlzIGNvbmZpcm1zIHRoZSBGT1JNQVQgY2xhdXNlIGlzIG5laXRo ZXIgaWdub3JlZCBub3IgdHJlYXRlZCBhcyBhbgotLS0gb3JkaW5hcnkgY2FzdC4gIEFuIHVua25v d24tdHlwZSBzb3VyY2UgbGl0ZXJhbCBpcyBjb2VyY2VkIHRvIHRleHQgZmlyc3QsCi0tLSBzbyB0 aGUgbG9va3VwIGtleSBpcyAodGV4dCwgdGFyZ2V0KS4KKy0tIEZPUk1BVCBDQVNUKSBhbmQgbmV2 ZXIgZmFsbHMgYmFjayB0byBhbiBvcmRpbmFyeSBjYXN0LiAgVGhlIHR5cGUgcGFpcnMgdXNlZAor LS0gaGVyZSBoYXZlIG5vIGZvcm1hdCBjYXN0ICh0aGUgYnVpbHQtaW4gZm9ybWF0IGNhc3RzIGNv dmVyIGRhdGV0aW1lL3N0cmluZyBwYWlycywKKy0tIG5vdCB0aGVzZSksIHNvIHRoZXNlIGNhc3Rz IGZhaWwgd2l0aCBhIG1pc3NpbmctZm9ybWF0IGNhc3QgZXJyb3IgZXZlbiB0aG91Z2ggYW4KKy0t IG9yZGluYXJ5IGNhc3Qgd291bGQgc3VjY2VlZDsgdGhpcyBjb25maXJtcyB0aGUgRk9STUFUIGNs YXVzZSBpcyBuZWl0aGVyCistLSBpZ25vcmVkIG5vciB0cmVhdGVkIGFzIGFuIG9yZGluYXJ5IGNh c3QuICBBbiB1bmtub3duLXR5cGUgc291cmNlIGxpdGVyYWwgaXMKKy0tIGNvZXJjZWQgdG8gdGV4 dCBmaXJzdCwgc28gdGhlIGxvb2t1cCBrZXkgaXMgKHRleHQsIHRhcmdldCkuCiAKLS0tIGJhc2lj IGZvcm0gKGxvb2tzIHVwIGEgZm9ybWF0IGNhc3QgZm9yICh0ZXh0LCBkYXRlKSkKLVNFTEVDVCBD QVNUKCcyMDI2LTA2LTI0JyBBUyBkYXRlIEZPUk1BVCAnWVlZWS1NTS1ERCcpOworLS0gYmFzaWMg Zm9ybSAobG9va3MgdXAgYSBmb3JtYXQgY2FzdCBmb3IgKHRleHQsIGludGVnZXIpOyBub25lIGV4 aXN0cykKK1NFTEVDVCBDQVNUKCc0MicgQVMgaW50ZWdlciBGT1JNQVQgJ3doYXRldmVyJyk7CiAK IC0tIHRoZSBmb3JtYXQgbWF5IGJlIGEgZ2VuZXJhbCBleHByZXNzaW9uLCBub3QganVzdCBhIHN0 cmluZyBsaXRlcmFsCi1TRUxFQ1QgQ0FTVCgnMjAyNi0wNi0yNCcgQVMgZGF0ZSBGT1JNQVQgJ1lZ WVknIHx8ICctTU0tREQnKTsKK1NFTEVDVCBDQVNUKCc0MicgQVMgaW50ZWdlciBGT1JNQVQgJ3do YXQnIHx8ICdldmVyJyk7CiAKIC0tIGEgbm8tb3AtbG9va2luZyBjYXN0IG11c3Qgbm90IGJlIHJl bGFiZWxlZCBhd2F5OyBpdCBuZWVkcyBhICh0ZXh0LCB0ZXh0KSBmb3JtYXQgY2FzdAogU0VMRUNU IENBU1QoJ2FiYyc6OnRleHQgQVMgdGV4dCBGT1JNQVQgJ3doYXRldmVyJyk7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JtYXRfY2FzdHMuc3FsIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvZm9ybWF0X2Nhc3RzLnNxbAppbmRleCAwNWQzMjM2YjVhYy4uYThjNzMxNGNmYmIgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcm1hdF9jYXN0cy5zcWwKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvZm9ybWF0X2Nhc3RzLnNxbApAQCAtODEsNyArODEsOSBAQCBDUkVB VEUgRlVOQ1RJT04gZm10X2JhZF9zZXQoaW50ZWdlciwgdGV4dCkgUkVUVVJOUyBTRVRPRiB0ZXh0 CiBDUkVBVEUgRk9STUFUIENBU1QgKGludGVnZXIgQVMgdGV4dCkKIAlXSVRIIEZVTkNUSU9OIGZt dF9iYWRfc2V0KGludGVnZXIsIHRleHQpOwkJLS0gc2V0LXJldHVybmluZyByZWplY3RlZAogCi0t LSBObyBwc2V1ZG8tdHlwZXMKKy0tIE5vIHBzZXVkby10eXBlczogYSBmb3JtYXQgY2FzdCdzIHNv dXJjZS90YXJnZXQgbWF5IG5vdCBiZSBhIHBzZXVkby10eXBlLCBzbworLS0gQ1JFQVRFIEZPUk1B VCBDQVNUIG9uIGEgcG9seW1vcnBoaWMgKGFueWVsZW1lbnQpIHNvdXJjZSBpcyBpbnRlbnRpb25h bGx5CistLSByZWplY3RlZC4KIENSRUFURSBGVU5DVElPTiBmbXRfYW55ZWwoYW55ZWxlbWVudCwg dGV4dCkgUkVUVVJOUyB0ZXh0CiAJTEFOR1VBR0Ugc3FsIElNTVVUQUJMRSBBUyAkJCBTRUxFQ1Qg JDIgJCQ7CiBDUkVBVEUgRk9STUFUIENBU1QgKGFueWVsZW1lbnQgQVMgdGV4dCkKQEAgLTI2Mywz ICsyNjUsMTI3IEBAIERST1AgRlVOQ1RJT04gaTJ0X2NoYWluKGludGVnZXIsIHRleHQpIENBU0NB REU7CQkJLS0gZHJvcHMgZm9ybWF0IGNhc3QgYW5kIHZpZXcKIFNFTEVDVCBjb3VudCgqKSBGUk9N IHBnX2Zvcm1hdF9jYXN0CiAJV0hFUkUgZm10c291cmNlID0gJ2ludGVnZXInOjpyZWd0eXBlIEFO RCBmbXR0YXJnZXQgPSAndGV4dCc6OnJlZ3R5cGU7CiBTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19j bGFzcyBXSEVSRSByZWxuYW1lID0gJ2Zvcm1hdF9jYXN0X2NoYWluX3ZpZXcnOworCistLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0gQnVpbHQtaW4gZGF0ZXRpbWUvc3RyaW5nIGZvcm1hdCBjYXN0cy4KKy0tIFRo ZXNlIHJvd3MgYXJlIHJlZ2lzdGVyZWQgaW4gcGdfZm9ybWF0X2Nhc3QgYW5kIHJldXNlIFBvc3Rn cmVTUUwncworLS0gZXhpc3RpbmcgZm9ybWF0dGluZyB0ZW1wbGF0ZSBiZWhhdmlvci4KKy0tIFRo aXMgaW5pdGlhbCBzZXQgY292ZXJzIGRhdGUsIHRpbWVzdGFtcCBhbmQgdGltZXN0YW1wdHogd2l0 aAorLS0gdGV4dC92YXJjaGFyL2JwY2hhci4KKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBQaW4gdGhlIHRp bWUgem9uZSBhbmQgZGF0ZSBzdHlsZSBzbyByZXN1bHRzIGFyZSBzdGFibGUgYWNyb3NzIG1hY2hp bmVzLgorU0VUIFRpbWVab25lID0gJ1VUQyc7CitTRVQgRGF0ZVN0eWxlID0gJ0lTTywgWU1EJzsK KworLS0gdGV4dCAtPiBkYXRlLiAgVGhlIHVua25vd24tdHlwZSBsaXRlcmFsIGlzIGNvZXJjZWQg dG8gdGV4dCBiZWZvcmUgZm9ybWF0CistLSBjYXN0IGxvb2t1cC4KK1NFTEVDVCBDQVNUKCcyMDI2 LTA2LTI4JyBBUyBkYXRlIEZPUk1BVCAnWVlZWS1NTS1ERCcpOworLS0gdmFyY2hhciBzb3VyY2Ug LT4gZGF0ZQorU0VMRUNUIENBU1QoJzIwMjYtMDYtMjgnOjp2YXJjaGFyIEFTIGRhdGUgRk9STUFU ICdZWVlZLU1NLUREJyk7CistLSBicGNoYXIgc291cmNlIC0+IGRhdGU6IGEgQ0hBUigxMCkgaG9s ZHMgdGhlIHZhbHVlIGV4YWN0bHksIGFuZCBhIHdpZGVyCistLSBDSEFSKDIwKSBwYWRzIHdpdGgg YmxhbmtzIHRoYXQgdGhlIGZvcm1hdCBjYXN0IHRyaW1zIGJlZm9yZSBwYXJzaW5nLgorU0VMRUNU IENBU1QoJzIwMjYtMDYtMjgnOjpjaGFyKDEwKSBBUyBkYXRlIEZPUk1BVCAnWVlZWS1NTS1ERCcp OworU0VMRUNUIENBU1QoJzIwMjYtMDYtMjgnOjpjaGFyKDIwKSBBUyBkYXRlIEZPUk1BVCAnWVlZ WS1NTS1ERCcpOworCistLSBUaGUgYnVpbHQtaW4gZm9ybWF0IGNhc3QgZnVuY3Rpb25zIGFyZSBT VFJJQ1Q6IGEgTlVMTCBzb3VyY2Ugb3IgYSBOVUxMIEZPUk1BVAorLS0gZXhwcmVzc2lvbiB5aWVs ZHMgTlVMTCB3aXRob3V0IGludm9raW5nIHRoZSBmb3JtYXQgY2FzdC4KK1NFTEVDVCBDQVNUKE5V TEw6OnRleHQgQVMgZGF0ZSBGT1JNQVQgJ1lZWVktTU0tREQnKSBJUyBOVUxMIEFTIG51bGxfc3Jj OworU0VMRUNUIENBU1QoJzIwMjYtMDYtMjgnIEFTIGRhdGUgRk9STUFUIE5VTEw6OnRleHQpIElT IE5VTEwgQVMgbnVsbF9mbXQ7CitTRUxFQ1QgQ0FTVChOVUxMOjpkYXRlIEFTIHRleHQgRk9STUFU ICdZWVlZLU1NLUREJykgSVMgTlVMTCBBUyBudWxsX3NyY19vdXQ7CisKKy0tIGRhdGUgLT4gdGV4 dCAvIHZhcmNoYXIKK1NFTEVDVCBDQVNUKGRhdGUgJzIwMjYtMDYtMjgnIEFTIHRleHQgRk9STUFU ICdZWVlZLU1NLUREJyk7CitTRUxFQ1QgQ0FTVChkYXRlICcyMDI2LTA2LTI4JyBBUyB2YXJjaGFy IEZPUk1BVCAnWVlZWS1NTS1ERCcpOworLS0gZGF0ZSAtPiB2YXJjaGFyIHdpdGggYSB0eXBtb2Q6 IHRoZSBkZWNsYXJlZCBsZW5ndGggaXMgZW5mb3JjZWQgYnkgdGhlCistLSBvcmRpbmFyeSBjb2Vy Y2lvbiBsYXllcmVkIGFib3ZlIHRoZSBmb3JtYXQgY2FzdCAoaGVyZSBpdCB0cnVuY2F0ZXMgdG8g NykuCitTRUxFQ1QgQ0FTVChkYXRlICcyMDI2LTA2LTI4JyBBUyB2YXJjaGFyKDcpIEZPUk1BVCAn WVlZWS1NTS1ERCcpOworLS0gZGF0ZSAtPiBicGNoYXI6IEFTIGNoYXIoMTIpIHBhZHMgdG8gdGhl IGRlY2xhcmVkIGxlbmd0aDsgYmFyZSBBUyBjaGFyIGlzCistLSBjaGFyKDEpLCBzbyB0aGUgb3Jk aW5hcnkgY29lcmNpb24gdHJ1bmNhdGVzIHRvIG9uZSBjaGFyYWN0ZXIuICBUaGUgd3JhcHBlcgor LS0gcmV0dXJucyBhIHRleHQgdmFybGVuYSB0aGF0IGlzIGEgdmFsaWQgYnBjaGFyIHZhbHVlLgor U0VMRUNUIENBU1QoZGF0ZSAnMjAyNi0wNi0yOCcgQVMgY2hhcigxMikgRk9STUFUICdZWVlZLU1N LUREJyk7CitTRUxFQ1QgQ0FTVChkYXRlICcyMDI2LTA2LTI4JyBBUyBjaGFyIEZPUk1BVCAnWVlZ WS1NTS1ERCcpOworCistLSBDb2xsYXRpb246IGEgZm9ybWF0dGVkIGNhc3QgaXMgY29sbGF0ZWQg bGlrZSB0aGUgZnVuY3Rpb24gY2FsbCBpdCBleGVjdXRlcy4KKy0tIEEgY29sbGF0YWJsZSByZXN1 bHQgdHlwZSAodGV4dCkgbXVzdCBnZXQgYSByZWFsIHJlc3VsdCBjb2xsYXRpb24sIG5vdAorLS0g SW52YWxpZE9pZDsgImNvbGxhdGlvbiBmb3IiIHJlcG9ydHMgImRlZmF1bHQiIChpdCB3b3VsZCBi ZSBOVUxMIGlmIHRoZQorLS0gcmVzdWx0IGNvbGxhdGlvbiB3ZXJlIHVuc2V0KSwgYW5kIGFuIGV4 cGxpY2l0IENPTExBVEUgb24gdGhlIHJlc3VsdCB3b3Jrcy4KK1NFTEVDVCBwZ19jb2xsYXRpb25f Zm9yKENBU1QoZGF0ZSAnMjAyNi0wNi0yOCcgQVMgdGV4dCBGT1JNQVQgJ1lZWVktTU0tREQnKSk7 CitTRUxFQ1QgcGdfY29sbGF0aW9uX2ZvcihDQVNUKGRhdGUgJzIwMjYtMDYtMjgnIEFTIHRleHQg Rk9STUFUICdZWVlZLU1NLUREJykgQ09MTEFURSAiQyIpOworLS0gQW4gZXhwbGljaXQgQ09MTEFU RSBvbiB0aGUgRk9STUFUIGFyZ3VtZW50IGZsb3dzIGluIGFzIHRoZSBpbnB1dCBjb2xsYXRpb24u CitTRUxFQ1QgcGdfY29sbGF0aW9uX2ZvcihDQVNUKGRhdGUgJzIwMjYtMDYtMjgnIEFTIHRleHQK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRk9STUFUICdZWVlZLU1NLUREJzo6dGV4dCBD T0xMQVRFICJDIikpOworCistLSB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUsIGJvdGggZGly ZWN0aW9ucworU0VMRUNUIENBU1QoJzIwMjYtMDYtMjggMTM6NDU6MzAnIEFTIHRpbWVzdGFtcCBG T1JNQVQgJ1lZWVktTU0tREQgSEgyNDpNSTpTUycpOworU0VMRUNUIENBU1QodGltZXN0YW1wICcy MDI2LTA2LTI4IDEzOjQ1OjMwJyBBUyB0ZXh0IEZPUk1BVCAnWVlZWS1NTS1ERCBISDI0Ok1JOlNT Jyk7CistLSBhIGRhdGUtb25seSB0ZW1wbGF0ZSBpcyB3aWRlbmVkIHRvIHRpbWVzdGFtcCAobWlk bmlnaHQpCitTRUxFQ1QgQ0FTVCgnMjAyNi0wNi0yOCcgQVMgdGltZXN0YW1wIEZPUk1BVCAnWVlZ WS1NTS1ERCcpOworLS0gVGhlIGJ1aWx0LWlucyByZXVzZSBQb3N0Z3JlU1FMJ3MgZXhpc3Rpbmcg Zm9ybWF0dGluZyBwYXJzZXI6IGEgdGVtcGxhdGUgd2l0aAorLS0gbm8gdGltZS16b25lIGZpZWxk IGNvbnN1bWVzIG9ubHkgdGhlIGZpZWxkcyBpdCBuYW1lcywgc28gYSB0cmFpbGluZyB0aW1lIHpv bmUKKy0tIGluIHRoZSBpbnB1dCBpcyBzaW1wbHkgaWdub3JlZCAoZXhpc3RpbmcgdG9fdGltZXN0 YW1wKCkgYmVoYXZpb3IsIHVuY2hhbmdlZCkuCitTRUxFQ1QgQ0FTVCgnMjAyNi0wNi0yOCAxMzo0 NTozMCswNScgQVMgdGltZXN0YW1wIEZPUk1BVCAnWVlZWS1NTS1ERCBISDI0Ok1JOlNTJyk7Cist LSBCdXQgYSB0ZW1wbGF0ZSB0aGF0IGV4cGxpY2l0bHkgY29udGFpbnMgYSB0aW1lLXpvbmUgZmll bGQgaXMgcmVqZWN0ZWQgZm9yIGEKKy0tIHRpbWVzdGFtcC13aXRob3V0LXRpbWUtem9uZSB0YXJn ZXQgKHdlIG11c3Qgbm90IGZvbGQgYSB6b25lIGludG8gYSB6b25lbGVzcworLS0gcmVzdWx0IHZp YSB0aGUgc2Vzc2lvbiBUaW1lWm9uZSkuCitTRUxFQ1QgQ0FTVCgnMjAyNi0wNi0yOCAxMzo0NToz MCswNScgQVMgdGltZXN0YW1wIEZPUk1BVCAnWVlZWS1NTS1ERCBISDI0Ok1JOlNTIFRaSCcpOwor LS0gdGltZXN0YW1wIFdJVEhPVVQgdGltZSB6b25lIG11c3Qgbm90IGRlcGVuZCBvbiB0aGUgc2Vz c2lvbiBUaW1lWm9uZTogdGhlIHNhbWUKKy0tICh1bnpvbmVkKSBpbnB1dC90ZW1wbGF0ZSB5aWVs ZHMgdGhlIHNhbWUgd2FsbC1jbG9jayB2YWx1ZSB1bmRlciBhbnkgem9uZS4KK1NFVCBUaW1lWm9u ZSA9ICdBbWVyaWNhL0xvc19BbmdlbGVzJzsKK1NFTEVDVCBDQVNUKCcyMDI2LTA2LTI4IDEzOjQ1 OjMwJyBBUyB0aW1lc3RhbXAgRk9STUFUICdZWVlZLU1NLUREIEhIMjQ6TUk6U1MnKTsKK1NFVCBU aW1lWm9uZSA9ICdVVEMnOworU0VMRUNUIENBU1QoJzIwMjYtMDYtMjggMTM6NDU6MzAnIEFTIHRp bWVzdGFtcCBGT1JNQVQgJ1lZWVktTU0tREQgSEgyNDpNSTpTUycpOworCistLSB0aW1lc3RhbXAg d2l0aCB0aW1lIHpvbmUsIGJvdGggZGlyZWN0aW9ucyAoVGltZVpvbmUgaXMgVVRDLCBzZXQgYWJv dmUpCitTRUxFQ1QgQ0FTVCgnMjAyNi0wNi0yOCAxMzo0NTozMCArMDAnIEFTIHRpbWVzdGFtcHR6 IEZPUk1BVCAnWVlZWS1NTS1ERCBISDI0Ok1JOlNTIFRaSCcpOworU0VMRUNUIENBU1QodGltZXN0 YW1wdHogJzIwMjYtMDYtMjggMTM6NDU6MzArMDAnIEFTIHRleHQgRk9STUFUICdZWVlZLU1NLURE IEhIMjQ6TUk6U1MgVFpIJyk7CisKKy0tIEEgc2FtcGxpbmcgb2YgZGF0ZXRpbWUgdGVtcGxhdGUg dG9rZW5zLCBleGVyY2lzZWQgdGhyb3VnaCB0aGUgZXhpc3RpbmcKKy0tIHRvX2NoYXIvdG9fdGlt ZXN0YW1wIGVuZ2luZS4gIFRaTSBhbmQgU1NTU1MgYXJlIHN1cHBvcnRlZCBoZXJlLgorU0VMRUNU IENBU1QodGltZXN0YW1wdHogJzIwMjYtMDYtMjggMTM6NDU6MzArMDAnIEFTIHRleHQKKyAgICAg ICAgICAgIEZPUk1BVCAnWVlZWS1NTS1ERCJUIkhIMjQ6TUk6U1MgVFpIOlRaTScpOworU0VMRUNU IENBU1QodGltZXN0YW1wICcyMDI2LTA2LTI4IDEzOjQ1OjMwJyBBUyB0ZXh0IEZPUk1BVCAnU1NT U1MnKTsKKy0tIEZyYWN0aW9uYWwgc2Vjb25kcyAoRkZuKSBhcmUgYWNjZXB0ZWQgYnkgdG9fY2hh ciBpbiB0aGUgb3V0cHV0IGRpcmVjdGlvbi4KK1NFTEVDVCBDQVNUKHRpbWVzdGFtcCAnMjAyNi0w Ni0yOCAxMzo0NTozMC4xMjM0NTYnIEFTIHRleHQKKyAgICAgICAgICAgIEZPUk1BVCAnSEgyNDpN STpTUy5GRjYnKTsKKworLS0gRW1wdHkgRk9STUFUIHRlbXBsYXRlIGJlaGF2aW9yIGZvbGxvd3Mg dGhlIHVuZGVybHlpbmcgZm9ybWF0dGluZyBmdW5jdGlvbnMuCistLSBJbiB0aGUgcGFyc2UgZGly ZWN0aW9uIHRoZSB1bmRlcmx5aW5nIHRvX2RhdGUoKSBlbmdpbmUgcGFyc2VzIG5vIGZpZWxkcyBh bmQKKy0tIHJldHVybnMgdGhlIGFsbC1kZWZhdWx0cyBkYXRlOyBpbiB0aGUgZm9ybWF0IGRpcmVj dGlvbiB0aGUgd3JhcHBlcnMgbWlycm9yCistLSB0b19jaGFyKHZhbHVlLCAnJyksIHdoaWNoIGlz IE5VTEwuCitTRUxFQ1QgQ0FTVCgnMjAyNi0wNi0yOCcgQVMgZGF0ZSBGT1JNQVQgJycpOworU0VM RUNUIENBU1QoZGF0ZSAnMjAyNi0wNi0yOCcgQVMgdGV4dCBGT1JNQVQgJycpIElTIE5VTEwgQVMg ZW1wdHlfZm10X291dDsKKworLS0gVGhlIEZPUk1BVCBjbGF1c2UgcmVtYWlucyBhIFBvc3RncmVT UUwgZXh0ZW5zaW9uOiBpdCBtYXkgYmUgYW55IGV4cHJlc3Npb24KKy0tIGNvZXJjaWJsZSB0byB0 ZXh0LCBub3QganVzdCBhIHN0cmluZyBsaXRlcmFsLgorU0VMRUNUIENBU1QoJzIwMjYtJyB8fCAn MDYtMjgnIEFTIGRhdGUgRk9STUFUICdZWVlZLScgfHwgJ01NLUREJyk7CisKKy0tIEEgRk9STUFU IGNsYXVzZSBuZXZlciBmYWxscyBiYWNrIHRvIGFuIG9yZGluYXJ5IGNhc3Q6IGFuIGludGVnZXIg LT4gZGF0ZQorLS0gcGFpciBoYXMgbm8gZm9ybWF0IGNhc3QgKGFuZCBubyBvcmRpbmFyeSBjYXN0 KSwgc28gaXQgZXJyb3JzLgorU0VMRUNUIENBU1QoNSBBUyBkYXRlIEZPUk1BVCAnWVlZWScpOwor CistLSBBIGJ1aWx0LWluIGZvcm1hdCBjYXN0IG9jY3VwaWVzIGl0cyAoc291cmNlLCB0YXJnZXQp IHBhaXIsIHNvIGEgdXNlcgorLS0gQ1JFQVRFIEZPUk1BVCBDQVNUIGZvciB0aGUgc2FtZSBwYWly IGZhaWxzIHdpdGggdGhlIHVzdWFsIGR1cGxpY2F0ZSBlcnJvci4KK0NSRUFURSBGVU5DVElPTiBt eV90ZXh0X3RvX2RhdGUodGV4dCwgdGV4dCkgUkVUVVJOUyBkYXRlCisJTEFOR1VBR0Ugc3FsIElN TVVUQUJMRSBSRVRVUk4gdG9fZGF0ZSgkMSwgJDIpOworQ1JFQVRFIEZPUk1BVCBDQVNUICh0ZXh0 IEFTIGRhdGUpCisJV0lUSCBGVU5DVElPTiBteV90ZXh0X3RvX2RhdGUodGV4dCwgdGV4dCk7CQkt LSBmYWlsczogYWxyZWFkeSBleGlzdHMKK0RST1AgRlVOQ1RJT04gbXlfdGV4dF90b19kYXRlKHRl eHQsIHRleHQpOworCistLSBCdWlsdC1pbiBmb3JtYXQgY2FzdCByb3dzIGFyZSBzeXN0ZW0gb2Jq ZWN0cyAodGhlaXIgT0lEcyBhcmUgaW4gdGhlIHBpbm5lZAorLS0gcmFuZ2UpLCBzbyB0aGV5IGNh bm5vdCBiZSBkcm9wcGVkLgorRFJPUCBGT1JNQVQgQ0FTVCAodGV4dCBBUyBkYXRlKTsJCQkJLS0g ZmFpbHM6IHBpbm5lZCBzeXN0ZW0gb2JqZWN0CisKKy0tIEEgdmlldyBvdmVyIGEgYnVpbHQtaW4g Zm9ybWF0dGVkIGNhc3QgZGVwYXJzZXMgYmFjayB0byBDQVNUKC4uLiBGT1JNQVQgLi4uKS4KK0NS RUFURSBWSUVXIGJ1aWx0aW5fZm9ybWF0X2Nhc3RfdmlldyBBUworCVNFTEVDVCBDQVNUKCcyMDI2 LTA2LTI4JyBBUyBkYXRlIEZPUk1BVCAnWVlZWS1NTS1ERCcpIEFTIGQ7CitTRUxFQ1QgcGdfZ2V0 X3ZpZXdkZWYoJ2J1aWx0aW5fZm9ybWF0X2Nhc3Rfdmlldyc6OnJlZ2NsYXNzLCB0cnVlKTsKK1NF TEVDVCAqIEZST00gYnVpbHRpbl9mb3JtYXRfY2FzdF92aWV3OworRFJPUCBWSUVXIGJ1aWx0aW5f Zm9ybWF0X2Nhc3RfdmlldzsKKworLS0gTWFrZSBzdXJlIHF1ZXJ5IGp1bWJsaW5nIGhhbmRsZXMg Q29lcmNlVmlhRm9ybWF0Q2FzdC4KK1NFVCBjb21wdXRlX3F1ZXJ5X2lkID0gb247CitTRUxFQ1Qg Q0FTVCgnMjAyNi0wNi0yOCcgQVMgZGF0ZSBGT1JNQVQgJ1lZWVktTU0tREQnKTsKK1JFU0VUIGNv bXB1dGVfcXVlcnlfaWQ7CisKK1JFU0VUIFRpbWVab25lOworUkVTRVQgRGF0ZVN0eWxlOwotLSAK Mi41NC4wCgo= --00000000000029b62906557c0e56 Content-Type: application/octet-stream; name="v2-0002-Add-pg_format_cast-and-CREATE-DROP-FORMAT-CAST.patch" Content-Disposition: attachment; filename="v2-0002-Add-pg_format_cast-and-CREATE-DROP-FORMAT-CAST.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mr0xl5vx1 RnJvbSAzZGE1MTAwNjE0ODY4MzQzYjZlNmZkMmZmMzk1YWEzMDIxYmE4NmM0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIYWlibyBZYW4gPHRyaXN0YW4ueWltQGdtYWlsLmNvbT4KRGF0 ZTogV2VkLCAyNCBKdW4gMjAyNiAxNDo1Mjo0NiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMi80XSBB ZGQgcGdfZm9ybWF0X2Nhc3QgYW5kIENSRUFURS9EUk9QIEZPUk1BVCBDQVNUCgpBZGQgcGdfZm9y bWF0X2Nhc3QsIGEgY2F0YWxvZyBmb3IgcmVnaXN0ZXJpbmcgZm9ybWF0dGVkIGNvbnZlcnNpb25z IGJ5CnNvdXJjZSBhbmQgdGFyZ2V0IHR5cGUuICBBIGZvcm1hdCBjYXN0IGZ1bmN0aW9uIGhhcyB0 aGUgc2lnbmF0dXJlCgogICAgZnVuY3Rpb24oc291cmNlX3R5cGUsIHRleHQpIHJldHVybnMgdGFy Z2V0X3R5cGUKCndoZXJlIHRoZSBzZWNvbmQgYXJndW1lbnQgcmVjZWl2ZXMgdGhlIEZPUk1BVCBl eHByZXNzaW9uIGNvZXJjZWQgdG8gdGV4dC4KCkFkZCBDUkVBVEUgRk9STUFUIENBU1QgYW5kIERS T1AgRk9STUFUIENBU1QsIHN5c2NhY2hlIHN1cHBvcnQsIG9iamVjdC1hZGRyZXNzCmFuZCBkZXBl bmRlbmN5IGhhbmRsaW5nLCBhbmQgcGdfZHVtcCBzdXBwb3J0LiAgRm9ybWF0IGNhc3Qgb2JqZWN0 cyBhcmUKc2VwYXJhdGUgZnJvbSBwZ19jYXN0IGJlY2F1c2UgZm9ybWF0dGVkIGNhc3RzIGFyZSBh bHdheXMgZXhwbGljaXQsCmZ1bmN0aW9uLWJhY2tlZCwgYW5kIGtleWVkIGJ5IGEgc291cmNlL3Rh cmdldCB0eXBlIHBhaXIgcmF0aGVyIHRoYW4gYnkKb3JkaW5hcnkgY2FzdCBzZW1hbnRpY3Mgc3Vj aCBhcyBpbXBsaWNpdCwgYXNzaWdubWVudCwgYmluYXJ5LCBvciBpbi9vdXQKY2FzdHMuCgpUaGlz IHBhdGNoIG9ubHkgYWRkcyBjYXRhbG9nIGFuZCBEREwgaW5mcmFzdHJ1Y3R1cmUuICBDQVNUIC4u LiBGT1JNQVQKZXhlY3V0aW9uIGlzIGFkZGVkIHNlcGFyYXRlbHkuCi0tLQogZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgIHwgIDgzICsrKysrKysKIGRvYy9zcmMvc2dt bC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICB8ICAgMiArCiBkb2Mvc3JjL3NnbWwvcmVm L2FsdGVyX2V4dGVuc2lvbi5zZ21sICAgICAgfCAgIDEgKwogZG9jL3NyYy9zZ21sL3JlZi9jb21t ZW50LnNnbWwgICAgICAgICAgICAgIHwgICAyICsKIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2Zv cm1hdF9jYXN0LnNnbWwgICB8IDEzMSArKysrKysrKysrKwogZG9jL3NyYy9zZ21sL3JlZi9kcm9w X2Zvcm1hdF9jYXN0LnNnbWwgICAgIHwgMTI2ICsrKysrKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVm ZXJlbmNlLnNnbWwgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9h Y2xjaGsuYyAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5k ZW5jeS5jICAgICAgICAgICB8ICAgMiArCiBzcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJl c3MuYyAgICAgICAgfCAxMDUgKysrKysrKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmls ZSAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYyAg ICAgICAgICAgIHwgIDIyICsrCiBzcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMg ICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvZm9ybWF0Y2FzdGNtZHMuYyAgICAg IHwgMjQ1ICsrKysrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24u YnVpbGQgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMg ICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAg ICAgICAgfCAgNTYgKysrKy0KIHNyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jICAgICAgICAgICAg ICAgICB8ICAxNyArKwogc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jICAgICAgICAgICAgICAgICAg IHwgICAzICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICB8IDE2 NiArKysrKysrKysrKysrKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAg ICAgIHwgIDEwICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyAgICAgICAgICAgICB8 ICAgOSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlICAgICAgICAgICAgICAgfCAgIDEg Kwogc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXR2ZXJzaW9uLmggICAgICAgICAgIHwgICAyICstCiBz cmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkICAgICAgICAgICAgfCAgIDEgKwogc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19mb3JtYXRfY2FzdC5oICAgICAgIHwgIDYyICsrKysrKwogc3JjL2lu Y2x1ZGUvY29tbWFuZHMvZm9ybWF0Y2FzdC5oICAgICAgICAgIHwgIDI0ICsrCiBzcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgfCAgMTcgKysKIHNyYy9pbmNsdWRlL3Rj b3AvY21kdGFnbGlzdC5oICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2Zvcm1hdF9jYXN0cy5vdXQgfCAxNTYgKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQgICAgIHwgICAzICsKIHNyYy90ZXN0L3JlZ3Jlc3Mv cGFyYWxsZWxfc2NoZWR1bGUgICAgICAgICB8ICAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwv Zm9ybWF0X2Nhc3RzLnNxbCAgICAgIHwgMTI2ICsrKysrKysrKysrCiBzcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgfCAgIDQgKwogMzQgZmlsZXMgY2hhbmdlZCwgMTM4 NiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX2Zvcm1hdF9jYXN0LnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBk b2Mvc3JjL3NnbWwvcmVmL2Ryb3BfZm9ybWF0X2Nhc3Quc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy9iYWNrZW5kL2NvbW1hbmRzL2Zvcm1hdGNhc3RjbWRzLmMKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Zvcm1hdF9jYXN0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmMvaW5jbHVkZS9jb21tYW5kcy9mb3JtYXRjYXN0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcm1hdF9jYXN0cy5vdXQKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JtYXRfY2FzdHMuc3FsCgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApp bmRleCA0YjQ3NGMxMzkxNy4uZGUxYTkwODIyMWEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC0xNzAsNiAr MTcwLDExIEBACiAgICAgICA8ZW50cnk+YWRkaXRpb25hbCBmb3JlaWduIHRhYmxlIGluZm9ybWF0 aW9uPC9lbnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGlu ayBsaW5rZW5kPSJjYXRhbG9nLXBnLWZvcm1hdC1jYXN0Ij48c3RydWN0bmFtZT5wZ19mb3JtYXRf Y2FzdDwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5mb3JtYXQgY2Fz dCBmdW5jdGlvbnMgZm9yIGZvcm1hdHRlZCBjYXN0czwvZW50cnk+CisgICAgIDwvcm93PgorCiAg ICAgIDxyb3c+CiAgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1pbmRleCI+ PHN0cnVjdG5hbWU+cGdfaW5kZXg8L3N0cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+CiAgICAgICA8 ZW50cnk+YWRkaXRpb25hbCBpbmRleCBpbmZvcm1hdGlvbjwvZW50cnk+CkBAIC00MzkxLDYgKzQz OTYsODQgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZn dDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICA8L3NlY3QxPgogCiAKKyA8c2VjdDEg aWQ9ImNhdGFsb2ctcGctZm9ybWF0LWNhc3QiPgorICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfZm9y bWF0X2Nhc3Q8L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJtIHpvbmU9ImNhdGFs b2ctcGctZm9ybWF0LWNhc3QiPgorICAgPHByaW1hcnk+cGdfZm9ybWF0X2Nhc3Q8L3ByaW1hcnk+ CisgIDwvaW5kZXh0ZXJtPgorCisgIDxwYXJhPgorICAgVGhlIGNhdGFsb2cgPHN0cnVjdG5hbWU+ cGdfZm9ybWF0X2Nhc3Q8L3N0cnVjdG5hbWU+IHN0b3JlcyBmb3JtYXR0aW5nCisgICBjb252ZXJz aW9uIGZ1bmN0aW9ucyBmb3IgZm9ybWF0dGVkIGNhc3RzLiAgQSBmb3JtYXQgY2FzdCBpcyBpZGVu dGlmaWVkIGJ5IGEKKyAgIHNvdXJjZSB0eXBlIGFuZCBhIHRhcmdldCB0eXBlLiAgVGhlIGFzc29j aWF0ZWQgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGggdGhlCisgICBzb3VyY2UgdmFsdWUgYW5kIHRo ZSA8bGl0ZXJhbD5GT1JNQVQ8L2xpdGVyYWw+IGV4cHJlc3Npb24gY29lcmNlZCB0bworICAgPHR5 cGU+dGV4dDwvdHlwZT4sIGFuZCByZXR1cm5zIHRoZSB0YXJnZXQgdHlwZS4gIEF0IG1vc3Qgb25l IGZvcm1hdCBjYXN0CisgICBleGlzdHMgZm9yIGFueSBnaXZlbiBwYWlyIG9mIHNvdXJjZSBhbmQg dGFyZ2V0IHR5cGVzLiAgU2VlIDx4cmVmCisgICBsaW5rZW5kPSJzcWwtY3JlYXRlZm9ybWF0Y2Fz dCIvPiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0 aXRsZT48c3RydWN0bmFtZT5wZ19mb3JtYXRfY2FzdDwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0 bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJh PgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4K KyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJvdyBpZGVudGlmaWVyCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPmZtdHNvdXJjZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm9p ZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXR5 cGUiPjxzdHJ1Y3RuYW1lPnBnX3R5cGU8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+ b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBP SUQgb2YgdGhlIHNvdXJjZSBkYXRhIHR5cGUgb2YgdGhlIGZvcm1hdHRlZCBjYXN0CisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPmZtdHRhcmdldDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwv dHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXR5cGUi PjxzdHJ1Y3RuYW1lPnBnX3R5cGU8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lk PC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBPSUQg b2YgdGhlIHRhcmdldCBkYXRhIHR5cGUgb2YgdGhlIGZvcm1hdHRlZCBjYXN0CisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgPHN0cnVjdGZpZWxkPmZtdGZ1bmM8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+ CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1wcm9jIj48c3Ry dWN0bmFtZT5wZ19wcm9jPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3Ry dWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgT0lEIG9mIHRo ZSBmb3JtYXQgY2FzdCBmdW5jdGlvbiwgd2hpY2ggaGFzIHRoZSBzaWduYXR1cmUKKyAgICAgICA8 cmVwbGFjZWFibGU+ZnVuY3Rpb248L3JlcGxhY2VhYmxlPig8cmVwbGFjZWFibGU+c291cmNlX3R5 cGU8L3JlcGxhY2VhYmxlPiwgPHR5cGU+dGV4dDwvdHlwZT4pCisgICAgICAgcmV0dXJuaW5nIDxy ZXBsYWNlYWJsZT50YXJnZXRfdHlwZTwvcmVwbGFjZWFibGU+CisgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgPC9yb3c+CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgor IDwvc2VjdDE+CisKKwogIDxzZWN0MSBpZD0iY2F0YWxvZy1wZy1pbmRleCI+CiAgIDx0aXRsZT48 c3RydWN0bmFtZT5wZ19pbmRleDwvc3RydWN0bmFtZT48L3RpdGxlPgogCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVz LnNnbWwKaW5kZXggZTFhNTZjMzYyMjEuLjA3ZjZhZmYzN2ZjIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5z Z21sCkBAIC03MCw2ICs3MCw3IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxlIHNnbWwgc291cmNl IGZpbGVzIGluIHRoaXMgZGlyZWN0b3J5LgogPCFFTlRJVFkgY3JlYXRlRXh0ZW5zaW9uICAgIFNZ U1RFTSAiY3JlYXRlX2V4dGVuc2lvbi5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZUZvcmVpZ25EYXRh V3JhcHBlciBTWVNURU0gImNyZWF0ZV9mb3JlaWduX2RhdGFfd3JhcHBlci5zZ21sIj4KIDwhRU5U SVRZIGNyZWF0ZUZvcmVpZ25UYWJsZSBTWVNURU0gImNyZWF0ZV9mb3JlaWduX3RhYmxlLnNnbWwi PgorPCFFTlRJVFkgY3JlYXRlRm9ybWF0Q2FzdCAgICBTWVNURU0gImNyZWF0ZV9mb3JtYXRfY2Fz dC5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZUZ1bmN0aW9uICAgICBTWVNURU0gImNyZWF0ZV9mdW5j dGlvbi5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZUdyb3VwICAgICAgICBTWVNURU0gImNyZWF0ZV9n cm91cC5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZUluZGV4ICAgICAgICBTWVNURU0gImNyZWF0ZV9p bmRleC5zZ21sIj4KQEAgLTExOCw2ICsxMTksNyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVzYWJsZSBz Z21sIHNvdXJjZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZIGRyb3BFeHRlbnNp b24gICAgICBTWVNURU0gImRyb3BfZXh0ZW5zaW9uLnNnbWwiPgogPCFFTlRJVFkgZHJvcEZvcmVp Z25EYXRhV3JhcHBlciBTWVNURU0gImRyb3BfZm9yZWlnbl9kYXRhX3dyYXBwZXIuc2dtbCI+CiA8 IUVOVElUWSBkcm9wRm9yZWlnblRhYmxlICAgU1lTVEVNICJkcm9wX2ZvcmVpZ25fdGFibGUuc2dt bCI+Cis8IUVOVElUWSBkcm9wRm9ybWF0Q2FzdCAgICAgIFNZU1RFTSAiZHJvcF9mb3JtYXRfY2Fz dC5zZ21sIj4KIDwhRU5USVRZIGRyb3BGdW5jdGlvbiAgICAgICBTWVNURU0gImRyb3BfZnVuY3Rp b24uc2dtbCI+CiA8IUVOVElUWSBkcm9wR3JvdXAgICAgICAgICAgU1lTVEVNICJkcm9wX2dyb3Vw LnNnbWwiPgogPCFFTlRJVFkgZHJvcEluZGV4ICAgICAgICAgIFNZU1RFTSAiZHJvcF9pbmRleC5z Z21sIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfZXh0ZW5zaW9uLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2V4dGVuc2lvbi5zZ21sCmluZGV4IDYwMjE4ZmNkMDFj Li5hZmM4ZWJhNTAyMSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9leHRlbnNp b24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2V4dGVuc2lvbi5zZ21sCkBAIC0z OSw2ICszOSw3IEBAIEFMVEVSIEVYVEVOU0lPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmFtZTwvcmVwbGFjZWFibGU+IERST1AgPHJlcGxhY2VhCiAgIEVWRU5UIFRSSUdHRVIgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gfAog ICBGT1JFSUdOIERBVEEgV1JBUFBFUiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2Jq ZWN0X25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIEZPUkVJR04gVEFCTEUgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gfAorICBGT1JNQVQgQ0FT VCAoPHJlcGxhY2VhYmxlPnNvdXJjZV90eXBlPC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxl PnRhcmdldF90eXBlPC9yZXBsYWNlYWJsZT4pIHwKICAgRlVOQ1RJT04gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmZ1bmN0aW9uX25hbWU8L3JlcGxhY2VhYmxlPiBbICggWyBbIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hcmdtb2RlPC9yZXBsYWNlYWJsZT4gXSBbIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hcmduYW1lPC9yZXBsYWNlYWJsZT4gXSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YXJndHlwZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gXSAp IF0gfAogICBNQVRFUklBTElaRUQgVklFVyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIE9QRVJBVE9SIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5vcGVyYXRvcl9uYW1lPC9yZXBsYWNlYWJsZT4gKDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5sZWZ0X3R5cGU8L3JlcGxhY2VhYmxlPiwgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnJpZ2h0X3R5cGU8L3JlcGxhY2VhYmxlPikgfApkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQu c2dtbAppbmRleCA2ZDg0NzlkNjgyOS4uYTk5ZDA4ODc1NzYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9yZWYvY29tbWVudC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21s CkBAIC0zNyw2ICszNyw3IEBAIENPTU1FTlQgT04KICAgRVZFTlQgVFJJR0dFUiA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIEZPUkVJ R04gREFUQSBXUkFQUEVSIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3RfbmFt ZTwvcmVwbGFjZWFibGU+IHwKICAgRk9SRUlHTiBUQUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiB8CisgIEZPUk1BVCBDQVNUICg8cmVw bGFjZWFibGU+c291cmNlX3R5cGU8L3JlcGxhY2VhYmxlPiBBUyA8cmVwbGFjZWFibGU+dGFyZ2V0 X3R5cGU8L3JlcGxhY2VhYmxlPikgfAogICBGVU5DVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZnVuY3Rpb25fbmFtZTwvcmVwbGFjZWFibGU+IFsgKCBbIFsgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmFyZ21vZGU8L3JlcGxhY2VhYmxlPiBdIFsgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmFyZ25hbWU8L3JlcGxhY2VhYmxlPiBdIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5hcmd0eXBlPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBdICkgXSB8CiAg IElOREVYIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3RfbmFtZTwvcmVwbGFj ZWFibGU+IHwKICAgTEFSR0UgT0JKRUNUIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5s YXJnZV9vYmplY3Rfb2lkPC9yZXBsYWNlYWJsZT4gfApAQCAtMzM2LDYgKzMzNyw3IEBAIENPTU1F TlQgT04gRVZFTlQgVFJJR0dFUiBhYm9ydF9kZGwgSVMgJ0Fib3J0cyBhbGwgRERMIGNvbW1hbmRz JzsKIENPTU1FTlQgT04gRVhURU5TSU9OIGhzdG9yZSBJUyAnaW1wbGVtZW50cyB0aGUgaHN0b3Jl IGRhdGEgdHlwZSc7CiBDT01NRU5UIE9OIEZPUkVJR04gREFUQSBXUkFQUEVSIG15d3JhcHBlciBJ UyAnbXkgZm9yZWlnbiBkYXRhIHdyYXBwZXInOwogQ09NTUVOVCBPTiBGT1JFSUdOIFRBQkxFIG15 X2ZvcmVpZ25fdGFibGUgSVMgJ0VtcGxveWVlIEluZm9ybWF0aW9uIGluIG90aGVyIGRhdGFiYXNl JzsKK0NPTU1FTlQgT04gRk9STUFUIENBU1QgKGludGVnZXIgQVMgdGV4dCkgSVMgJ0FsbG93IGZv cm1hdHRlZCBjYXN0cyBmcm9tIGludGVnZXIgdG8gdGV4dCc7CiBDT01NRU5UIE9OIEZVTkNUSU9O IG15X2Z1bmN0aW9uICh0aW1lc3RhbXApIElTICdSZXR1cm5zIFJvbWFuIE51bWVyYWwnOwogQ09N TUVOVCBPTiBJTkRFWCBteV9pbmRleCBJUyAnRW5mb3JjZXMgdW5pcXVlbmVzcyBvbiBlbXBsb3ll ZSBJRCc7CiBDT01NRU5UIE9OIExBTkdVQUdFIHBscHl0aG9uIElTICdQeXRob24gc3VwcG9ydCBm b3Igc3RvcmVkIHByb2NlZHVyZXMnOwpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVfZm9ybWF0X2Nhc3Quc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2Zvcm1hdF9jYXN0 LnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBlMGNmMGY3YjFi Ci0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZm9ybWF0X2Nhc3Qu c2dtbApAQCAtMCwwICsxLDEzMSBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZm9y bWF0X2Nhc3Quc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5 IGlkPSJzcWwtY3JlYXRlZm9ybWF0Y2FzdCI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtY3JlYXRl Zm9ybWF0Y2FzdCI+CisgIDxwcmltYXJ5PkNSRUFURSBGT1JNQVQgQ0FTVDwvcHJpbWFyeT4KKyA8 L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5DUkVBVEUgRk9STUFU IENBU1Q8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVm bWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZt ZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkNSRUFURSBGT1JNQVQgQ0FTVDwvcmVm bmFtZT4KKyAgPHJlZnB1cnBvc2U+ZGVmaW5lIGEgbmV3IGZvcm1hdCBjYXN0IGZvciBhIGZvcm1h dHRlZCBjYXN0PC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rp dj4KKzxzeW5vcHNpcz4KK0NSRUFURSBGT1JNQVQgQ0FTVCAoPHJlcGxhY2VhYmxlPnNvdXJjZV90 eXBlPC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxlPnRhcmdldF90eXBlPC9yZXBsYWNlYWJs ZT4pCisgICAgV0lUSCBGVU5DVElPTiA8cmVwbGFjZWFibGU+ZnVuY3Rpb25fbmFtZTwvcmVwbGFj ZWFibGU+IFsgKDxyZXBsYWNlYWJsZT5hcmd1bWVudF90eXBlPC9yZXBsYWNlYWJsZT4gWywgLi4u XSkgXQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxIGlkPSJz cWwtY3JlYXRlZm9ybWF0Y2FzdC1kZXNjcmlwdGlvbiI+CisgIDx0aXRsZT5EZXNjcmlwdGlvbjwv dGl0bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5DUkVBVEUgRk9STUFUIENBU1Q8L2NvbW1h bmQ+IGRlZmluZXMgYSBmb3JtYXR0aW5nIGNvbnZlcnNpb24gZm9yCisgICA8bGl0ZXJhbD5DQVNU KDxyZXBsYWNlYWJsZT5leHByPC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxlPnRhcmdldF90 eXBlPC9yZXBsYWNlYWJsZT4gRk9STUFUIDxyZXBsYWNlYWJsZT5mb3JtYXRfZXhwcjwvcmVwbGFj ZWFibGU+KTwvbGl0ZXJhbD4uCisgICBBIGZvcm1hdCBjYXN0IGlzIHNlbGVjdGVkIGJ5IHRoZSBz b3VyY2UgdHlwZSBhbmQgdGFyZ2V0IHR5cGUgb2YgdGhlIGNhc3QuCisgICBVbmxpa2UgYW4gb3Jk aW5hcnkgY2FzdCAoc2VlIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGVjYXN0Ii8+KSwgYSBmb3Jt YXR0ZWQKKyAgIGNhc3QgaXMgYWx3YXlzIGV4cGxpY2l0IGFuZCBhbHdheXMgdXNlcyBhIGZ1bmN0 aW9uLCBhbmQgdGhlIGZ1bmN0aW9uCisgICBhZGRpdGlvbmFsbHkgcmVjZWl2ZXMgdGhlIDxsaXRl cmFsPkZPUk1BVDwvbGl0ZXJhbD4gZXhwcmVzc2lvbi4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgor ICAgVGhlIGZvcm1hdCBjYXN0IGZ1bmN0aW9uIG11c3QgdGFrZSBleGFjdGx5IHR3byBhcmd1bWVu dHMgYW5kIHJldHVybiB0aGUKKyAgIHRhcmdldCB0eXBlOgorPHN5bm9wc2lzPgorPHJlcGxhY2Vh YmxlPmZ1bmN0aW9uX25hbWU8L3JlcGxhY2VhYmxlPig8cmVwbGFjZWFibGU+c291cmNlX3R5cGU8 L3JlcGxhY2VhYmxlPiwgdGV4dCkgUkVUVVJOUyA8cmVwbGFjZWFibGU+dGFyZ2V0X3R5cGU8L3Jl cGxhY2VhYmxlPgorPC9zeW5vcHNpcz4KKyAgIFRoZSBmaXJzdCBhcmd1bWVudCBpcyB0aGUgdmFs dWUgYmVpbmcgZm9ybWF0dGVkLCBhbmQgdGhlIHNlY29uZCBhcmd1bWVudAorICAgcmVjZWl2ZXMg dGhlIDxsaXRlcmFsPkZPUk1BVDwvbGl0ZXJhbD4gZXhwcmVzc2lvbiBjb2VyY2VkIHRvCisgICA8 dHlwZT50ZXh0PC90eXBlPi4gIE9ubHkgb25lIGZvcm1hdCBjYXN0IG1heSBiZSByZWdpc3RlcmVk IGZvciBhIGdpdmVuCisgICA8bGl0ZXJhbD4oPHJlcGxhY2VhYmxlPnNvdXJjZV90eXBlPC9yZXBs YWNlYWJsZT4sCisgICA8cmVwbGFjZWFibGU+dGFyZ2V0X3R5cGU8L3JlcGxhY2VhYmxlPik8L2xp dGVyYWw+IHBhaXIuICBOZWl0aGVyIHRoZSBzb3VyY2UKKyAgIHR5cGUgbm9yIHRoZSB0YXJnZXQg dHlwZSBtYXkgYmUgYSBwc2V1ZG8tdHlwZS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVG8g Y3JlYXRlIGEgZm9ybWF0IGNhc3QsIHlvdSBtdXN0IGJlIHRoZSBvd25lciBvZiB0aGUgc291cmNl IHR5cGUgb3IgdGhlCisgICB0YXJnZXQgdHlwZSwgYW5kIHlvdSBtdXN0IGhhdmUgPGxpdGVyYWw+ RVhFQ1VURTwvbGl0ZXJhbD4gcHJpdmlsZWdlIG9uIHRoZQorICAgZm9ybWF0IGNhc3QgZnVuY3Rp b24uCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFy YW1ldGVyczwvdGl0bGU+CisKKyAgIDx2YXJpYWJsZWxpc3Q+CisgICAgPHZhcmxpc3RlbnRyeT4K KyAgICAgPHRlcm0+PHJlcGxhY2VhYmxlPnNvdXJjZV90eXBlPC9yZXBsYWNlYWJsZT48L3Rlcm0+ CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBkYXRhIHR5cGUgb2Yg dGhlIHZhbHVlIHBhc3NlZCB0byB0aGUgZm9ybWF0IGNhc3QgKHRoZSBzb3VyY2Ugb2YgdGhlCisg ICAgICAgY2FzdCkuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJs aXN0ZW50cnk+CisKKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48cmVwbGFjZWFibGU+ dGFyZ2V0X3R5cGU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAg PHBhcmE+CisgICAgICAgVGhlIGRhdGEgdHlwZSByZXR1cm5lZCBieSB0aGUgZm9ybWF0IGNhc3Qg KHRoZSB0YXJnZXQgb2YgdGhlIGNhc3QpLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVt PgorICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+ PHJlcGxhY2VhYmxlPmZ1bmN0aW9uX25hbWU8L3JlcGxhY2VhYmxlPlsoPHJlcGxhY2VhYmxlPmFy Z3VtZW50X3R5cGU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dKV08L3Rlcm0+CisgICAgIDxsaXN0aXRl bT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBmdW5jdGlvbiB1c2VkIHRvIHBlcmZvcm0gdGhl IGZvcm1hdHRlZCBjYXN0LiAgVGhlIGFyZ3VtZW50IGxpc3QsIGlmCisgICAgICAgZ2l2ZW4sIG11 c3QgbmFtZSB0aGUgdHdvIGFyZ3VtZW50IHR5cGVzCisgICAgICAgKDxyZXBsYWNlYWJsZT5zb3Vy Y2VfdHlwZTwvcmVwbGFjZWFibGU+IGFuZCA8dHlwZT50ZXh0PC90eXBlPikuCisgICAgICA8L3Bh cmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisgICA8L3ZhcmlhYmxl bGlzdD4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxIGlkPSJzcWwtY3JlYXRlZm9ybWF0Y2Fz dC1leGFtcGxlcyI+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBS ZWdpc3RlciBhIGZvcm1hdCBjYXN0IHRoYXQgY29udmVydHMgYW4gPHR5cGU+aW50ZWdlcjwvdHlw ZT4gdG8KKyAgIDx0eXBlPnRleHQ8L3R5cGU+IHVzaW5nIHRoZSBzdXBwbGllZCBmb3JtYXQgc3Ry aW5nOgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIEZVTkNUSU9OIGludDRfdG9fdGV4dF9mbXQo aW50ZWdlciwgdGV4dCkgUkVUVVJOUyB0ZXh0CisgICAgTEFOR1VBR0Ugc3FsIElNTVVUQUJMRSBS RVRVUk4gJDE6OnRleHQgfHwgJzonIHx8ICQyOworCitDUkVBVEUgRk9STUFUIENBU1QgKGludGVn ZXIgQVMgdGV4dCkKKyAgICBXSVRIIEZVTkNUSU9OIGludDRfdG9fdGV4dF9mbXQoaW50ZWdlciwg dGV4dCk7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNl Y3QxIGlkPSJzcWwtY3JlYXRlZm9ybWF0Y2FzdC1jb21wYXQiPgorICA8dGl0bGU+Q29tcGF0aWJp bGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5DUkVBVEUgRk9STUFUIENBU1Q8 L2NvbW1hbmQ+IGlzIGEKKyAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4g ZXh0ZW5zaW9uLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRp dGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAg PG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcGZvcm1hdGNhc3QiLz48L21lbWJlcj4KKyAg IDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZWNhc3QiLz48L21lbWJlcj4KKyAgPC9z aW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvcmVmL2Ryb3BfZm9ybWF0X2Nhc3Quc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZHJv cF9mb3JtYXRfY2FzdC5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li44ZGNlMDJmYTg4MgotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF9m b3JtYXRfY2FzdC5zZ21sCkBAIC0wLDAgKzEsMTI2IEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVm L2Ryb3BfZm9ybWF0X2Nhc3Quc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKwor PHJlZmVudHJ5IGlkPSJzcWwtZHJvcGZvcm1hdGNhc3QiPgorIDxpbmRleHRlcm0gem9uZT0ic3Fs LWRyb3Bmb3JtYXRjYXN0Ij4KKyAgPHByaW1hcnk+RFJPUCBGT1JNQVQgQ0FTVDwvcHJpbWFyeT4K KyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5EUk9QIEZPUk1B VCBDQVNUPC9yZWZlbnRyeXRpdGxlPgorICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJl Zm1pc2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVm bWV0YT4KKworIDxyZWZuYW1lZGl2PgorICA8cmVmbmFtZT5EUk9QIEZPUk1BVCBDQVNUPC9yZWZu YW1lPgorICA8cmVmcHVycG9zZT5yZW1vdmUgYSBmb3JtYXQgY2FzdDwvcmVmcHVycG9zZT4KKyA8 L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitEUk9QIEZPUk1B VCBDQVNUIFsgSUYgRVhJU1RTIF0gKDxyZXBsYWNlYWJsZT5zb3VyY2VfdHlwZTwvcmVwbGFjZWFi bGU+IEFTIDxyZXBsYWNlYWJsZT50YXJnZXRfdHlwZTwvcmVwbGFjZWFibGU+KSBbIENBU0NBREUg fCBSRVNUUklDVCBdCis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2Vj dDEgaWQ9InNxbC1kcm9wZm9ybWF0Y2FzdC1kZXNjcmlwdGlvbiI+CisgIDx0aXRsZT5EZXNjcmlw dGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5EUk9QIEZPUk1BVCBDQVNUPC9j b21tYW5kPiByZW1vdmVzIGEgcHJldmlvdXNseSBkZWZpbmVkIGZvcm1hdCBjYXN0IGZvcgorICAg dGhlIGdpdmVuIHBhaXIgb2Ygc291cmNlIGFuZCB0YXJnZXQgdHlwZXMuCisgIDwvcGFyYT4KKwor ICA8cGFyYT4KKyAgIERyb3BwaW5nIGEgZm9ybWF0IGNhc3QgcmVxdWlyZXMgb3duZXJzaGlwIG9m IGVpdGhlciB0aGUgc291cmNlIHR5cGUgb3IgdGhlCisgICB0YXJnZXQgdHlwZS4KKyAgPC9wYXJh PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRs ZT4KKworICAgPHZhcmlhYmxlbGlzdD4KKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48 bGl0ZXJhbD5JRiBFWElTVFM8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAg ICA8cGFyYT4KKyAgICAgICBEbyBub3QgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIGZvcm1hdCBjYXN0 IGRvZXMgbm90IGV4aXN0LiAgQSBub3RpY2UgaXMKKyAgICAgICBpc3N1ZWQgaW4gdGhpcyBjYXNl LgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5Pgor CisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PHJlcGxhY2VhYmxlPnNvdXJjZV90eXBl PC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAg ICAgIFRoZSBzb3VyY2UgZGF0YSB0eXBlIG9mIHRoZSBmb3JtYXQgY2FzdC4KKyAgICAgIDwvcGFy YT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2YXJsaXN0 ZW50cnk+CisgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZT50YXJnZXRfdHlwZTwvcmVwbGFjZWFibGU+ PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgdGFyZ2V0 IGRhdGEgdHlwZSBvZiB0aGUgZm9ybWF0IGNhc3QuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlz dGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8 dGVybT48bGl0ZXJhbD5DQVNDQURFPC9saXRlcmFsPjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgor ICAgICAgPHBhcmE+CisgICAgICAgQXV0b21hdGljYWxseSBkcm9wIG9iamVjdHMgdGhhdCBkZXBl bmQgb24gdGhlIGZvcm1hdCBjYXN0LAorICAgICAgIGFuZCBpbiB0dXJuIGFsbCBvYmplY3RzIHRo YXQgZGVwZW5kIG9uIHRob3NlIG9iamVjdHMKKyAgICAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9ImRk bC1kZXBlbmQiLz4pLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFy bGlzdGVudHJ5PgorCisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+UkVT VFJJQ1Q8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAg ICAgICBSZWZ1c2UgdG8gZHJvcCB0aGUgZm9ybWF0IGNhc3QgaWYgYW55IG9iamVjdHMgZGVwZW5k IG9uIGl0LiAgVGhpcyBpcyB0aGUKKyAgICAgICBkZWZhdWx0LgorICAgICAgPC9wYXJhPgorICAg ICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorICAgPC92YXJpYWJsZWxpc3Q+Cisg PC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MSBpZD0ic3FsLWRyb3Bmb3JtYXRjYXN0LWV4YW1wbGVz Ij4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRvIGRyb3AgdGhl IGZvcm1hdCBjYXN0IGZvciB0aGUgY2FzdCBmcm9tIDx0eXBlPmludGVnZXI8L3R5cGU+IHRvCisg ICA8dHlwZT50ZXh0PC90eXBlPjoKKzxwcm9ncmFtbGlzdGluZz4KK0RST1AgRk9STUFUIENBU1Qg KGludGVnZXIgQVMgdGV4dCk7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKyA8L3JlZnNlY3Qx PgorCisgPHJlZnNlY3QxIGlkPSJzcWwtZHJvcGZvcm1hdGNhc3QtY29tcGF0Ij4KKyAgPHRpdGxl PkNvbXBhdGliaWxpdHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgPGNvbW1hbmQ+RFJPUCBGT1JN QVQgQ0FTVDwvY29tbWFuZD4gaXMgYQorICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1 Y3RuYW1lPiBleHRlbnNpb24uICBTZWUgPHhyZWYKKyAgIGxpbmtlbmQ9InNxbC1jcmVhdGVmb3Jt YXRjYXN0Ii8+IGZvciBkZXRhaWxzLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZz ZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJp bmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRlZm9ybWF0Y2FzdCIv PjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworPC9yZWZlbnRyeT4K ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9y ZWZlcmVuY2Uuc2dtbAppbmRleCA2NzRhYzE3ZTgyYy4uZmZlMDEyY2UwZWQgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNl LnNnbWwKQEAgLTk4LDYgKzk4LDcgQEAKICAgICZjcmVhdGVFeHRlbnNpb247CiAgICAmY3JlYXRl Rm9yZWlnbkRhdGFXcmFwcGVyOwogICAgJmNyZWF0ZUZvcmVpZ25UYWJsZTsKKyAgICZjcmVhdGVG b3JtYXRDYXN0OwogICAgJmNyZWF0ZUZ1bmN0aW9uOwogICAgJmNyZWF0ZUdyb3VwOwogICAgJmNy ZWF0ZUluZGV4OwpAQCAtMTQ2LDYgKzE0Nyw3IEBACiAgICAmZHJvcEV4dGVuc2lvbjsKICAgICZk cm9wRm9yZWlnbkRhdGFXcmFwcGVyOwogICAgJmRyb3BGb3JlaWduVGFibGU7CisgICAmZHJvcEZv cm1hdENhc3Q7CiAgICAmZHJvcEZ1bmN0aW9uOwogICAgJmRyb3BHcm91cDsKICAgICZkcm9wSW5k ZXg7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9hY2xjaGsuYwppbmRleCAwMDdlZGU5OTdjNS4uMjY3Y2JhZWY5YTQgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0 YWxvZy9hY2xjaGsuYwpAQCAtMjc5NCw2ICsyNzk0LDcgQEAgYWNsY2hlY2tfZXJyb3IoQWNsUmVz dWx0IGFjbGVyciwgT2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQljYXNlIE9CSkVDVF9BTVBST0M6 CiAJCQkJCWNhc2UgT0JKRUNUX0FUVFJJQlVURToKIAkJCQkJY2FzZSBPQkpFQ1RfQ0FTVDoKKwkJ CQkJY2FzZSBPQkpFQ1RfRk9STUFUX0NBU1Q6CiAJCQkJCWNhc2UgT0JKRUNUX0RFRkFVTFQ6CiAJ CQkJCWNhc2UgT0JKRUNUX0RFRkFDTDoKIAkJCQkJY2FzZSBPQkpFQ1RfRE9NQ09OU1RSQUlOVDoK QEAgLTI5MzcsNiArMjkzOCw3IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9i amVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJY2FzZSBPQkpFQ1RfQU1QUk9DOgogCQkJCQljYXNlIE9C SkVDVF9BVFRSSUJVVEU6CiAJCQkJCWNhc2UgT0JKRUNUX0NBU1Q6CisJCQkJCWNhc2UgT0JKRUNU X0ZPUk1BVF9DQVNUOgogCQkJCQljYXNlIE9CSkVDVF9ERUZBVUxUOgogCQkJCQljYXNlIE9CSkVD VF9ERUZBQ0w6CiAJCQkJCWNhc2UgT0JKRUNUX0RPTUNPTlNUUkFJTlQ6CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVw ZW5kZW5jeS5jCmluZGV4IGM1NDc3NGIzMjc1Li5mZjdhYjYwNmJjYyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9k ZXBlbmRlbmN5LmMKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX2V4dGVu c2lvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZm9yZWlnbl9kYXRhX3dyYXBwZXIuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX2ZvcmVpZ25fc2VydmVyLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9w Z19mb3JtYXRfY2FzdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfaW5pdF9wcml2cy5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfbGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2xhcmdl b2JqZWN0LmgiCkBAIC0xNTM0LDYgKzE1MzUsNyBAQCBkb0RlbGV0aW9uKGNvbnN0IE9iamVjdEFk ZHJlc3MgKm9iamVjdCwgaW50IGZsYWdzKQogCQljYXNlIERlZmF1bHRBY2xSZWxhdGlvbklkOgog CQljYXNlIEV2ZW50VHJpZ2dlclJlbGF0aW9uSWQ6CiAJCWNhc2UgVHJhbnNmb3JtUmVsYXRpb25J ZDoKKwkJY2FzZSBGb3JtYXRDYXN0UmVsYXRpb25JZDoKIAkJY2FzZSBBdXRoTWVtUmVsYXRpb25J ZDoKIAkJCURyb3BPYmplY3RCeUlkKG9iamVjdCk7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9v YmplY3RhZGRyZXNzLmMKaW5kZXggYWYwZTQ3MDM2MTYuLjFkODRiZTgyZTBkIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYworKysgYi9zcmMvYmFja2VuZC9j YXRhbG9nL29iamVjdGFkZHJlc3MuYwpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgImNhdGFs b2cvcGdfZXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19mb3JlaWduX2RhdGFfd3Jh cHBlci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZm9yZWlnbl9zZXJ2ZXIuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX2Zvcm1hdF9jYXN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19sYW5ndWFn ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfbGFyZ2VvYmplY3QuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX2xhcmdlb2JqZWN0X21ldGFkYXRhLmgiCkBAIC03MCw2ICs3MSw3IEBACiAjaW5jbHVk ZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5o IgogI2luY2x1ZGUgImNvbW1hbmRzL2V4dGVuc2lvbi5oIgorI2luY2x1ZGUgImNvbW1hbmRzL2Zv cm1hdGNhc3QuaCIKICNpbmNsdWRlICJjb21tYW5kcy9wb2xpY3kuaCIKICNpbmNsdWRlICJjb21t YW5kcy9wcm9jbGFuZy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlc3BhY2UuaCIKQEAgLTE3 OSw2ICsxODEsMjAgQEAgc3RhdGljIGNvbnN0IE9iamVjdFByb3BlcnR5VHlwZSBPYmplY3RQcm9w ZXJ0eVtdID0KIAkJT0JKRUNUX0NBU1QsCiAJCWZhbHNlCiAJfSwKKwl7CisJCSJmb3JtYXQgY2Fz dCIsCisJCUZvcm1hdENhc3RSZWxhdGlvbklkLAorCQlGb3JtYXRDYXN0T2lkSW5kZXhJZCwKKwkJ Rk9STUFUQ0FTVE9JRCwKKwkJU1lTQ0FDSEVJRF9JTlZBTElELAorCQlBbnVtX3BnX2Zvcm1hdF9j YXN0X29pZCwKKwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCUludmFsaWRBdHRyTnVtYmVyLAorCQlJ bnZhbGlkQXR0ck51bWJlciwKKwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCU9CSkVDVF9GT1JNQVRf Q0FTVCwKKwkJZmFsc2UKKwl9LAogCXsKIAkJImNvbGxhdGlvbiIsCiAJCUNvbGxhdGlvblJlbGF0 aW9uSWQsCkBAIC03OTYsNiArODEyLDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvYmplY3RfdHlw ZV9tYXAKIAl7CiAJCSJjYXN0IiwgT0JKRUNUX0NBU1QKIAl9LAorCXsKKwkJImZvcm1hdCBjYXN0 IiwgT0JKRUNUX0ZPUk1BVF9DQVNUCisJfSwKIAl7CiAJCSJjb2xsYXRpb24iLCBPQkpFQ1RfQ09M TEFUSU9OCiAJfSwKQEAgLTExNjUsNiArMTE4NCwyMSBAQCBnZXRfb2JqZWN0X2FkZHJlc3MoT2Jq ZWN0VHlwZSBvYmp0eXBlLCBOb2RlICpvYmplY3QsCiAJCQkJCWFkZHJlc3Mub2JqZWN0U3ViSWQg PSAwOwogCQkJCX0KIAkJCQlicmVhazsKKwkJCWNhc2UgT0JKRUNUX0ZPUk1BVF9DQVNUOgorCQkJ CXsKKwkJCQkJVHlwZU5hbWUgICAqc291cmNldHlwZSA9IGxpbml0aWFsX25vZGUoVHlwZU5hbWUs IGNhc3ROb2RlKExpc3QsIG9iamVjdCkpOworCQkJCQlUeXBlTmFtZSAgICp0YXJnZXR0eXBlID0g bHNlY29uZF9ub2RlKFR5cGVOYW1lLCBjYXN0Tm9kZShMaXN0LCBvYmplY3QpKTsKKwkJCQkJT2lk CQkJc291cmNldHlwZWlkOworCQkJCQlPaWQJCQl0YXJnZXR0eXBlaWQ7CisKKwkJCQkJc291cmNl dHlwZWlkID0gTG9va3VwVHlwZU5hbWVPaWQoTlVMTCwgc291cmNldHlwZSwgbWlzc2luZ19vayk7 CisJCQkJCXRhcmdldHR5cGVpZCA9IExvb2t1cFR5cGVOYW1lT2lkKE5VTEwsIHRhcmdldHR5cGUs IG1pc3Npbmdfb2spOworCQkJCQlhZGRyZXNzLmNsYXNzSWQgPSBGb3JtYXRDYXN0UmVsYXRpb25J ZDsKKwkJCQkJYWRkcmVzcy5vYmplY3RJZCA9CisJCQkJCQlnZXRfZm9ybWF0X2Nhc3Rfb2lkKHNv dXJjZXR5cGVpZCwgdGFyZ2V0dHlwZWlkLCBtaXNzaW5nX29rKTsKKwkJCQkJYWRkcmVzcy5vYmpl Y3RTdWJJZCA9IDA7CisJCQkJfQorCQkJCWJyZWFrOwogCQkJY2FzZSBPQkpFQ1RfVFJBTlNGT1JN OgogCQkJCXsKIAkJCQkJVHlwZU5hbWUgICAqdHlwZW5hbWUgPSBsaW5pdGlhbF9ub2RlKFR5cGVO YW1lLCBjYXN0Tm9kZShMaXN0LCBvYmplY3QpKTsKQEAgLTIyMzksNiArMjI3Myw3IEBAIHBnX2dl dF9vYmplY3RfYWRkcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCSAqIGV4Y2VwdGlvbnMuCiAJICov CiAJaWYgKHR5cGUgPT0gT0JKRUNUX1RZUEUgfHwgdHlwZSA9PSBPQkpFQ1RfRE9NQUlOIHx8IHR5 cGUgPT0gT0JKRUNUX0NBU1QgfHwKKwkJdHlwZSA9PSBPQkpFQ1RfRk9STUFUX0NBU1QgfHwKIAkJ dHlwZSA9PSBPQkpFQ1RfVFJBTlNGT1JNIHx8IHR5cGUgPT0gT0JKRUNUX0RPTUNPTlNUUkFJTlQp CiAJewogCQlEYXR1bQkgICAqZWxlbXM7CkBAIC0yMjkxLDYgKzIzMjYsNyBAQCBwZ19nZXRfb2Jq ZWN0X2FkZHJlc3MoUEdfRlVOQ1RJT05fQVJHUykKIAkJdHlwZSA9PSBPQkpFQ1RfUk9VVElORSB8 fAogCQl0eXBlID09IE9CSkVDVF9PUEVSQVRPUiB8fAogCQl0eXBlID09IE9CSkVDVF9DQVNUIHx8 CisJCXR5cGUgPT0gT0JKRUNUX0ZPUk1BVF9DQVNUIHx8CiAJCXR5cGUgPT0gT0JKRUNUX0FNT1Ag fHwKIAkJdHlwZSA9PSBPQkpFQ1RfQU1QUk9DKQogCXsKQEAgLTIzMzYsNiArMjM3Miw3IEBAIHBn X2dldF9vYmplY3RfYWRkcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCQkJcGdfZmFsbHRocm91Z2g7 CiAJCWNhc2UgT0JKRUNUX0RPTUNPTlNUUkFJTlQ6CiAJCWNhc2UgT0JKRUNUX0NBU1Q6CisJCWNh c2UgT0JKRUNUX0ZPUk1BVF9DQVNUOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9SRUw6CiAJ CWNhc2UgT0JKRUNUX0RFRkFDTDoKIAkJY2FzZSBPQkpFQ1RfVFJBTlNGT1JNOgpAQCAtMjQyNCw2 ICsyNDYxLDcgQEAgcGdfZ2V0X29iamVjdF9hZGRyZXNzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQlv Ympub2RlID0gKE5vZGUgKikgdHlwZW5hbWU7CiAJCQlicmVhazsKIAkJY2FzZSBPQkpFQ1RfQ0FT VDoKKwkJY2FzZSBPQkpFQ1RfRk9STUFUX0NBU1Q6CiAJCWNhc2UgT0JKRUNUX0RPTUNPTlNUUkFJ TlQ6CiAJCWNhc2UgT0JKRUNUX1RSQU5TRk9STToKIAkJCW9iam5vZGUgPSAoTm9kZSAqKSBsaXN0 X21ha2UyKHR5cGVuYW1lLCBsaW5pdGlhbChhcmdzKSk7CkBAIC0yNTgzLDYgKzI2MjEsNyBAQCBj aGVja19vYmplY3Rfb3duZXJzaGlwKE9pZCByb2xlaWQsIE9iamVjdFR5cGUgb2JqdHlwZSwgT2Jq ZWN0QWRkcmVzcyBhZGRyZXNzLAogCQkJCQkJCQlhZGRyZXNzLm9iamVjdElkKSkpOwogCQkJYnJl YWs7CiAJCWNhc2UgT0JKRUNUX0NBU1Q6CisJCWNhc2UgT0JKRUNUX0ZPUk1BVF9DQVNUOgogCQkJ ewogCQkJCS8qIFdlIGNhbiBvbmx5IGNoZWNrIHBlcm1pc3Npb25zIG9uIHRoZSBzb3VyY2UvdGFy Z2V0IHR5cGVzICovCiAJCQkJVHlwZU5hbWUgICAqc291cmNldHlwZSA9IGxpbml0aWFsX25vZGUo VHlwZU5hbWUsIGNhc3ROb2RlKExpc3QsIG9iamVjdCkpOwpAQCAtMzExMSw2ICszMTUwLDMxIEBA IGdldE9iamVjdERlc2NyaXB0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBt aXNzaW5nX29rKQogCQkJCWJyZWFrOwogCQkJfQogCisJCWNhc2UgRm9ybWF0Q2FzdFJlbGF0aW9u SWQ6CisJCQl7CisJCQkJSGVhcFR1cGxlCWZtdFR1cDsKKwkJCQlGb3JtX3BnX2Zvcm1hdF9jYXN0 IGZtdEZvcm07CisKKwkJCQlmbXRUdXAgPSBTZWFyY2hTeXNDYWNoZTEoRk9STUFUQ0FTVE9JRCwK KwkJCQkJCQkJCQkgT2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYg KCFIZWFwVHVwbGVJc1ZhbGlkKGZtdFR1cCkpCisJCQkJeworCQkJCQlpZiAoIW1pc3Npbmdfb2sp CisJCQkJCQllbG9nKEVSUk9SLCAiY291bGQgbm90IGZpbmQgdHVwbGUgZm9yIGZvcm1hdCBjYXN0 ICV1IiwKKwkJCQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisJCQkJCWJyZWFrOworCQkJCX0KKwor CQkJCWZtdEZvcm0gPSAoRm9ybV9wZ19mb3JtYXRfY2FzdCkgR0VUU1RSVUNUKGZtdFR1cCk7CisK KwkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsIF8oImZvcm1hdCBjYXN0IGZyb20gJXMgdG8g JXMiKSwKKwkJCQkJCQkJIGZvcm1hdF90eXBlX2JlKGZtdEZvcm0tPmZtdHNvdXJjZSksCisJCQkJ CQkJCSBmb3JtYXRfdHlwZV9iZShmbXRGb3JtLT5mbXR0YXJnZXQpKTsKKworCQkJCVJlbGVhc2VT eXNDYWNoZShmbXRUdXApOworCQkJCWJyZWFrOworCQkJfQorCiAJCWNhc2UgQ29sbGF0aW9uUmVs YXRpb25JZDoKIAkJCXsKIAkJCQlIZWFwVHVwbGUJY29sbFR1cDsKQEAgLTQ3NjIsNiArNDgyNiwx MCBAQCBnZXRPYmplY3RUeXBlRGVzY3JpcHRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0 LCBib29sIG1pc3Npbmdfb2spCiAJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJj YXN0Iik7CiAJCQlicmVhazsKIAorCQljYXNlIEZvcm1hdENhc3RSZWxhdGlvbklkOgorCQkJYXBw ZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLCAiZm9ybWF0IGNhc3QiKTsKKwkJCWJyZWFrOwor CiAJCWNhc2UgQ29sbGF0aW9uUmVsYXRpb25JZDoKIAkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmco JmJ1ZmZlciwgImNvbGxhdGlvbiIpOwogCQkJYnJlYWs7CkBAIC01MjI1LDYgKzUyOTMsNDMgQEAg Z2V0T2JqZWN0SWRlbnRpdHlQYXJ0cyhjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsCiAJCQkJ YnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBGb3JtYXRDYXN0UmVsYXRpb25JZDoKKwkJCXsKKwkJCQlS ZWxhdGlvbglmbXRSZWw7CisJCQkJSGVhcFR1cGxlCXR1cDsKKwkJCQlGb3JtX3BnX2Zvcm1hdF9j YXN0IGZtdEZvcm07CisKKwkJCQlmbXRSZWwgPSB0YWJsZV9vcGVuKEZvcm1hdENhc3RSZWxhdGlv bklkLCBBY2Nlc3NTaGFyZUxvY2spOworCisJCQkJdHVwID0gZ2V0X2NhdGFsb2dfb2JqZWN0X2J5 X29pZChmbXRSZWwsIEFudW1fcGdfZm9ybWF0X2Nhc3Rfb2lkLAorCQkJCQkJCQkJCQkJb2JqZWN0 LT5vYmplY3RJZCk7CisKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJCQl7CisJ CQkJCWlmICghbWlzc2luZ19vaykKKwkJCQkJCWVsb2coRVJST1IsICJjb3VsZCBub3QgZmluZCB0 dXBsZSBmb3IgZm9ybWF0IGNhc3QgJXUiLAorCQkJCQkJCSBvYmplY3QtPm9iamVjdElkKTsKKwor CQkJCQl0YWJsZV9jbG9zZShmbXRSZWwsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJCWJyZWFrOwor CQkJCX0KKworCQkJCWZtdEZvcm0gPSAoRm9ybV9wZ19mb3JtYXRfY2FzdCkgR0VUU1RSVUNUKHR1 cCk7CisKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsICIoJXMgQVMgJXMpIiwKKwkJCQkJ CQkJIGZvcm1hdF90eXBlX2JlX3F1YWxpZmllZChmbXRGb3JtLT5mbXRzb3VyY2UpLAorCQkJCQkJ CQkgZm9ybWF0X3R5cGVfYmVfcXVhbGlmaWVkKGZtdEZvcm0tPmZtdHRhcmdldCkpOworCisJCQkJ aWYgKG9iam5hbWUpCisJCQkJeworCQkJCQkqb2JqbmFtZSA9IGxpc3RfbWFrZTEoZm9ybWF0X3R5 cGVfYmVfcXVhbGlmaWVkKGZtdEZvcm0tPmZtdHNvdXJjZSkpOworCQkJCQkqb2JqYXJncyA9IGxp c3RfbWFrZTEoZm9ybWF0X3R5cGVfYmVfcXVhbGlmaWVkKGZtdEZvcm0tPmZtdHRhcmdldCkpOwor CQkJCX0KKworCQkJCXRhYmxlX2Nsb3NlKGZtdFJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJCQli cmVhazsKKwkJCX0KKwogCQljYXNlIENvbGxhdGlvblJlbGF0aW9uSWQ6CiAJCQl7CiAJCQkJSGVh cFR1cGxlCWNvbGxUdXA7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmls ZSBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCmluZGV4IDViOWQwODQ5NzdlLi5iNjky OGRkNjAxNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUKQEAgLTM4LDYgKzM4LDcgQEAgT0JKUyA9IFwK IAlleHBsYWluX3N0YXRlLm8gXAogCWV4dGVuc2lvbi5vIFwKIAlmb3JlaWduY21kcy5vIFwKKwlm b3JtYXRjYXN0Y21kcy5vIFwKIAlmdW5jdGlvbmNtZHMubyBcCiAJaW5kZXhjbWRzLm8gXAogCWxv Y2tjbWRzLm8gXApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKaW5kZXggODhhMmRmNjVjNjkuLjc3NjM1 OWRmZGJmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNs dWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfdHlwZS5oIgogI2luY2x1 ZGUgInV0aWxzL2FjbC5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAi dXRpbHMvbHN5c2NhY2hlLmgiCiAKIApAQCAtNDAxLDYgKzQwMiwyNyBAQCBkb2VzX25vdF9leGlz dF9za2lwcGluZyhPYmplY3RUeXBlIG9ianR5cGUsIE5vZGUgKm9iamVjdCkKIAkJCQl9CiAJCQl9 CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfRk9STUFUX0NBU1Q6CisJCQl7CisJCQkJaWYgKCF0 eXBlX2luX2xpc3RfZG9lc19ub3RfZXhpc3Rfc2tpcHBpbmcobGlzdF9tYWtlMShsaW5pdGlhbChj YXN0Tm9kZShMaXN0LCBvYmplY3QpKSksICZtc2csICZuYW1lKSAmJgorCQkJCQkhdHlwZV9pbl9s aXN0X2RvZXNfbm90X2V4aXN0X3NraXBwaW5nKGxpc3RfbWFrZTEobHNlY29uZChjYXN0Tm9kZShM aXN0LCBvYmplY3QpKSksICZtc2csICZuYW1lKSkKKwkJCQl7CisJCQkJCS8qCisJCQkJCSAqIEJv dGggdHlwZXMgZXhpc3QgKGVsc2UgdGhlIGNoZWNrcyBhYm92ZSB3b3VsZCBoYXZlCisJCQkJCSAq IHByb2R1Y2VkIGEgbWVzc2FnZSksIHNvIHJlc29sdmUgdGhlbSB0byBPSURzIGFuZCByZXBvcnQK KwkJCQkJICogdGhlbSB3aXRoIGZvcm1hdF90eXBlX2JlKCkuICBUaGlzIGtlZXBzIHRoZSB3b3Jk aW5nCisJCQkJCSAqIGNvbnNpc3RlbnQgd2l0aCB0aGUgZHVwbGljYXRlLW9iamVjdCBhbmQgdW5k ZWZpbmVkLW9iamVjdAorCQkJCQkgKiBlcnJvcnMsIHdoaWNoIGFsc28gdXNlIGZvcm1hdF90eXBl X2JlKCkuCisJCQkJCSAqLworCQkJCQlPaWQJCQlzb3VyY2V0eXBlaWQgPSB0eXBlbmFtZVR5cGVJ ZChOVUxMLCBsaW5pdGlhbF9ub2RlKFR5cGVOYW1lLCBjYXN0Tm9kZShMaXN0LCBvYmplY3QpKSk7 CisJCQkJCU9pZAkJCXRhcmdldHR5cGVpZCA9IHR5cGVuYW1lVHlwZUlkKE5VTEwsIGxzZWNvbmRf bm9kZShUeXBlTmFtZSwgY2FzdE5vZGUoTGlzdCwgb2JqZWN0KSkpOworCisJCQkJCW1zZyA9IGdl dHRleHRfbm9vcCgiZm9ybWF0IGNhc3QgZnJvbSB0eXBlICVzIHRvIHR5cGUgJXMgZG9lcyBub3Qg ZXhpc3QsIHNraXBwaW5nIik7CisJCQkJCW5hbWUgPSBmb3JtYXRfdHlwZV9iZShzb3VyY2V0eXBl aWQpOworCQkJCQlhcmdzID0gZm9ybWF0X3R5cGVfYmUodGFyZ2V0dHlwZWlkKTsKKwkJCQl9CisJ CQl9CisJCQlicmVhazsKIAkJY2FzZSBPQkpFQ1RfVFJBTlNGT1JNOgogCQkJaWYgKCF0eXBlX2lu X2xpc3RfZG9lc19ub3RfZXhpc3Rfc2tpcHBpbmcobGlzdF9tYWtlMShsaW5pdGlhbChjYXN0Tm9k ZShMaXN0LCBvYmplY3QpKSksICZtc2csICZuYW1lKSkKIAkJCXsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2 ZW50X3RyaWdnZXIuYwppbmRleCBhZGM2ZWFiYzBmNC4uNDdhMDVhNzcxMjIgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9ldmVudF90cmlnZ2VyLmMKQEAgLTIzMDEsNiArMjMwMSw3IEBAIHN0cmluZ2lmeV9n cmFudF9vYmp0eXBlKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJY2FzZSBPQkpFQ1RfQU1QUk9DOgog CQljYXNlIE9CSkVDVF9BVFRSSUJVVEU6CiAJCWNhc2UgT0JKRUNUX0NBU1Q6CisJCWNhc2UgT0JK RUNUX0ZPUk1BVF9DQVNUOgogCQljYXNlIE9CSkVDVF9DT0xMQVRJT046CiAJCWNhc2UgT0JKRUNU X0NPTlZFUlNJT046CiAJCWNhc2UgT0JKRUNUX0RFRkFVTFQ6CkBAIC0yMzg1LDYgKzIzODYsNyBA QCBzdHJpbmdpZnlfYWRlZnByaXZzX29ianR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQljYXNl IE9CSkVDVF9BTVBST0M6CiAJCWNhc2UgT0JKRUNUX0FUVFJJQlVURToKIAkJY2FzZSBPQkpFQ1Rf Q0FTVDoKKwkJY2FzZSBPQkpFQ1RfRk9STUFUX0NBU1Q6CiAJCWNhc2UgT0JKRUNUX0NPTExBVElP TjoKIAkJY2FzZSBPQkpFQ1RfQ09OVkVSU0lPTjoKIAkJY2FzZSBPQkpFQ1RfREVGQVVMVDoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Zvcm1hdGNhc3RjbWRzLmMgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9mb3JtYXRjYXN0Y21kcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi5iYmVlMGU3NDQ5MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2Zvcm1hdGNhc3RjbWRzLmMKQEAgLTAsMCArMSwyNDUgQEAKKy8qLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICoKKyAqIGZvcm1hdGNhc3RjbWRzLmMKKyAqCSAgUm91dGluZXMgZm9yIFNRTCBj b21tYW5kcyB0aGF0IG1hbmlwdWxhdGUgZm9ybWF0IGNhc3RzLgorICoKKyAqIEEgZm9ybWF0IGNh c3QgYXNzb2NpYXRlcyBhIGZ1bmN0aW9uIHdpdGggYSAoc291cmNlIHR5cGUsIHRhcmdldCB0eXBl KSBwYWlyLgorICogVGhlIGZ1bmN0aW9uIGltcGxlbWVudHMgQ0FTVChleHByIEFTIHRhcmdldCBG T1JNQVQgZm9ybWF0X2V4cHIpOiBpdAorICogcmVjZWl2ZXMgdGhlIHNvdXJjZSB2YWx1ZSBhbmQg dGhlIEZPUk1BVCBleHByZXNzaW9uIChwYXNzZWQgYXMgdGV4dCkgYW5kCisgKiByZXR1cm5zIHRo ZSB0YXJnZXQgdHlwZS4gIEZvcm1hdCBjYXN0cyBhcmUgcmVnaXN0ZXJlZCBpbiB0aGUgcGdfZm9y bWF0X2Nhc3QKKyAqIGNhdGFsb2cgYW5kIGFyZSBpbnRlbnRpb25hbGx5IHNlcGFyYXRlIGZyb20g cGdfY2FzdCAoc2VlIHBnX2Zvcm1hdF9jYXN0LmgpLgorICoKKyAqIFRoaXMgZmlsZSBwcm92aWRl cyB0aGUgY2F0YWxvZyByZWdpc3RyYXRpb24gbWFjaGluZXJ5IChDUkVBVEUvRFJPUAorICogRk9S TUFUIENBU1QpLiAgSXQgZG9lcyBub3QgcGVyZm9ybSBleHByZXNzaW9uIHRyYW5zZm9ybWF0aW9u IG9yIGV4ZWN1dGlvbiBvZgorICogZm9ybWF0dGVkIGNhc3RzLgorICoKKyAqIFBvcnRpb25zIENv cHlyaWdodCAoYykgMTk5Ni0yMDI2LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91 cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJz aXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2Jh Y2tlbmQvY29tbWFuZHMvZm9ybWF0Y2FzdGNtZHMuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICovCisjaW5jbHVkZSAicG9zdGdyZXMuaCIKKworI2luY2x1ZGUgImFjY2Vzcy9odHVwX2RldGFp bHMuaCIKKyNpbmNsdWRlICJhY2Nlc3MvdGFibGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2NhdGFs b2cuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2RlcGVuZGVuY3kuaCIKKyNpbmNsdWRlICJjYXRhbG9n L2luZGV4aW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhY2Nlc3MuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL29iamVjdGFkZHJlc3MuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2Zvcm1hdF9j YXN0LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9w Z190eXBlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvZm9ybWF0Y2FzdC5oIgorI2luY2x1ZGUgIm1p c2NhZG1pbi5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9mdW5jLmgiCisjaW5jbHVkZSAicGFy c2VyL3BhcnNlX3R5cGUuaCIKKyNpbmNsdWRlICJ1dGlscy9hY2wuaCIKKyNpbmNsdWRlICJ1dGls cy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0 aWxzL3JlbC5oIgorI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKKy8qCisgKiBWYWxpZGF0 ZSB0aGUgc2lnbmF0dXJlIG9mIGEgZm9ybWF0IGNhc3QgZnVuY3Rpb246IGl0IG11c3QgYmUgYSBu b3JtYWwKKyAqIGZ1bmN0aW9uIChub3QgYSBwcm9jZWR1cmUsIGFnZ3JlZ2F0ZSBvciB3aW5kb3cg ZnVuY3Rpb24pLCBtdXN0IG5vdCByZXR1cm4KKyAqIGEgc2V0LCBhbmQgbXVzdCBoYXZlIHRoZSBz aWduYXR1cmUKKyAqCisgKgkJZnVuY3Rpb24oc291cmNlX3R5cGUsIHRleHQpIHJldHVybnMgdGFy Z2V0X3R5cGUKKyAqCisgKiBOQjogdGhlIGZvcm1hdCBjYXN0IHNpZ25hdHVyZSBpcyBmaXhlZCBh dCB0d28gYXJndW1lbnRzIGFuZCBkb2VzIG5vdCBpbmNsdWRlCisgKiB0aGUgdGFyZ2V0IHR5cGUg bW9kaWZpZXI7IHR5cG1vZC1hd2FyZSBmb3JtYXQgY2FzdCBzaWduYXR1cmVzIGFyZSBub3QKKyAq IHN1cHBvcnRlZC4KKyAqLworc3RhdGljIHZvaWQKK2NoZWNrX2Zvcm1hdF9jYXN0X2Z1bmN0aW9u KEZvcm1fcGdfcHJvYyBwcm9jc3RydWN0LAorCQkJCQkJIE9pZCBzb3VyY2V0eXBlaWQsIE9pZCB0 YXJnZXR0eXBlaWQpCit7CisJaWYgKHByb2NzdHJ1Y3QtPnByb2tpbmQgIT0gUFJPS0lORF9GVU5D VElPTikKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JK RUNUX0RFRklOSVRJT04pLAorCQkJCSBlcnJtc2coImZvcm1hdCBjYXN0IGZ1bmN0aW9uIG11c3Qg YmUgYSBub3JtYWwgZnVuY3Rpb24iKSkpOworCWlmIChwcm9jc3RydWN0LT5wcm9yZXRzZXQpCisJ CWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJ TklUSU9OKSwKKwkJCQkgZXJybXNnKCJmb3JtYXQgY2FzdCBmdW5jdGlvbiBtdXN0IG5vdCByZXR1 cm4gYSBzZXQiKSkpOworCWlmIChwcm9jc3RydWN0LT5wcm9uYXJncyAhPSAyKQorCQllcmVwb3J0 KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiks CisJCQkJIGVycm1zZygiZm9ybWF0IGNhc3QgZnVuY3Rpb24gbXVzdCB0YWtlIGV4YWN0bHkgdHdv IGFyZ3VtZW50cyIpKSk7CisJaWYgKHByb2NzdHJ1Y3QtPnByb2FyZ3R5cGVzLnZhbHVlc1swXSAh PSBzb3VyY2V0eXBlaWQpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9J TlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkgZXJybXNnKCJmaXJzdCBhcmd1bWVudCBv ZiBmb3JtYXQgY2FzdCBmdW5jdGlvbiBtdXN0IGJlIHR5cGUgJXMiLAorCQkJCQkJZm9ybWF0X3R5 cGVfYmUoc291cmNldHlwZWlkKSkpKTsKKwlpZiAocHJvY3N0cnVjdC0+cHJvYXJndHlwZXMudmFs dWVzWzFdICE9IFRFWFRPSUQpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09E RV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkgZXJybXNnKCJzZWNvbmQgYXJndW1l bnQgb2YgZm9ybWF0IGNhc3QgZnVuY3Rpb24gbXVzdCBiZSB0eXBlICVzIiwKKwkJCQkJCSJ0ZXh0 IikpKTsKKwlpZiAocHJvY3N0cnVjdC0+cHJvcmV0dHlwZSAhPSB0YXJnZXR0eXBlaWQpCisJCWVy ZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklU SU9OKSwKKwkJCQkgZXJybXNnKCJyZXR1cm4gZGF0YSB0eXBlIG9mIGZvcm1hdCBjYXN0IGZ1bmN0 aW9uIG11c3QgYmUgdHlwZSAlcyIsCisJCQkJCQlmb3JtYXRfdHlwZV9iZSh0YXJnZXR0eXBlaWQp KSkpOworfQorCisvKgorICogQ1JFQVRFIEZPUk1BVCBDQVNUCisgKi8KK09iamVjdEFkZHJlc3MK K0NyZWF0ZUZvcm1hdENhc3QoQ3JlYXRlRm9ybWF0Q2FzdFN0bXQgKnN0bXQpCit7CisJT2lkCQkJ c291cmNldHlwZWlkOworCU9pZAkJCXRhcmdldHR5cGVpZDsKKwljaGFyCQlzb3VyY2V0eXB0eXBl OworCWNoYXIJCXRhcmdldHR5cHR5cGU7CisJT2lkCQkJZnVuY2lkOworCUFjbFJlc3VsdAlhY2xy ZXN1bHQ7CisJRm9ybV9wZ19wcm9jIHByb2NzdHJ1Y3Q7CisJSGVhcFR1cGxlCXR1cGxlOworCUhl YXBUdXBsZQluZXd0dXBsZTsKKwlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX2Zvcm1hdF9jYXN0XTsK Kwlib29sCQludWxsc1tOYXR0c19wZ19mb3JtYXRfY2FzdF0gPSB7MH07CisJT2lkCQkJZm9ybWF0 Y2FzdGlkOworCVJlbGF0aW9uCXJlbGF0aW9uOworCU9iamVjdEFkZHJlc3MgbXlzZWxmLAorCQkJ CXJlZmVyZW5jZWQ7CisJT2JqZWN0QWRkcmVzc2VzICphZGRyczsKKworCXNvdXJjZXR5cGVpZCA9 IHR5cGVuYW1lVHlwZUlkKE5VTEwsIHN0bXQtPnNvdXJjZXR5cGUpOworCXRhcmdldHR5cGVpZCA9 IHR5cGVuYW1lVHlwZUlkKE5VTEwsIHN0bXQtPnRhcmdldHR5cGUpOworCXNvdXJjZXR5cHR5cGUg PSBnZXRfdHlwdHlwZShzb3VyY2V0eXBlaWQpOworCXRhcmdldHR5cHR5cGUgPSBnZXRfdHlwdHlw ZSh0YXJnZXR0eXBlaWQpOworCisJLyogTm8gcHNldWRvLXR5cGVzIGFsbG93ZWQgKi8KKwlpZiAo c291cmNldHlwdHlwZSA9PSBUWVBUWVBFX1BTRVVETykKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJybXNnKCJzb3VyY2Ug ZGF0YSB0eXBlICVzIGlzIGEgcHNldWRvLXR5cGUiLAorCQkJCQkJVHlwZU5hbWVUb1N0cmluZyhz dG10LT5zb3VyY2V0eXBlKSkpKTsKKwlpZiAodGFyZ2V0dHlwdHlwZSA9PSBUWVBUWVBFX1BTRVVE TykKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9U WVBFKSwKKwkJCQkgZXJybXNnKCJ0YXJnZXQgZGF0YSB0eXBlICVzIGlzIGEgcHNldWRvLXR5cGUi LAorCQkJCQkJVHlwZU5hbWVUb1N0cmluZyhzdG10LT50YXJnZXR0eXBlKSkpKTsKKworCS8qCisJ ICogUGVybWlzc2lvbiBjaGVjay4gIEFzIGZvciBDUkVBVEUgQ0FTVCwgdGhlIGNhbGxlciBtdXN0 IG93biBhdCBsZWFzdCBvbmUKKwkgKiBvZiB0aGUgdHdvIHR5cGVzIGludm9sdmVkOyBvd25pbmcg YSB0eXBlIGlzIHdoYXQgYXV0aG9yaXplcyBkZWZpbmluZworCSAqIGNvbnZlcnNpb24gYmVoYXZp b3IgZm9yIGl0LiAgSW4gYWRkaXRpb24sIGFuZCBmb2xsb3dpbmcgQ1JFQVRFIE9QRVJBVE9SCisJ ICogYW5kIENSRUFURSBBR0dSRUdBVEUsIHdlIHJlcXVpcmUgRVhFQ1VURSBwZXJtaXNzaW9uIG9u IHRoZSBmb3JtYXQgY2FzdAorCSAqIGZ1bmN0aW9uICh0aGlzIHdpbGwgYWxzbyBiZSBjaGVja2Vk IHdoZW4gdGhlIGZvcm1hdCBjYXN0IGlzIHVzZWQsIGJ1dCBpdAorCSAqIGlzIGEgZ29vZCBpZGVh IHRvIHZlcmlmeSBpdCB1cCBmcm9udCkuICBXZSBpbnRlbnRpb25hbGx5IGRvIG5vdCByZXF1aXJl CisJICogb3duZXJzaGlwIG9mIHRoZSBmdW5jdGlvbiwgdW5saWtlIENSRUFURSBUUkFOU0ZPUk0s IGJlY2F1c2UgYSBmb3JtYXQgY2FzdAorCSAqIGlzIGEgZGF0YSBjb252ZXJzaW9uIHJhdGhlciB0 aGFuIGEgcHJvY2VkdXJhbC1sYW5ndWFnZSBiaW5kaW5nLgorCSAqLworCWlmICghb2JqZWN0X293 bmVyY2hlY2soVHlwZVJlbGF0aW9uSWQsIHNvdXJjZXR5cGVpZCwgR2V0VXNlcklkKCkpCisJCSYm ICFvYmplY3Rfb3duZXJjaGVjayhUeXBlUmVsYXRpb25JZCwgdGFyZ2V0dHlwZWlkLCBHZXRVc2Vy SWQoKSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lF TlRfUFJJVklMRUdFKSwKKwkJCQkgZXJybXNnKCJtdXN0IGJlIG93bmVyIG9mIHR5cGUgJXMgb3Ig dHlwZSAlcyIsCisJCQkJCQlmb3JtYXRfdHlwZV9iZShzb3VyY2V0eXBlaWQpLAorCQkJCQkJZm9y bWF0X3R5cGVfYmUodGFyZ2V0dHlwZWlkKSkpKTsKKworCS8qCisJICogTG9vayB1cCBhbmQgdmFs aWRhdGUgdGhlIGZvcm1hdCBjYXN0IGZ1bmN0aW9uLgorCSAqLworCWZ1bmNpZCA9IExvb2t1cEZ1 bmNXaXRoQXJncyhPQkpFQ1RfRlVOQ1RJT04sIHN0bXQtPmZ1bmMsIGZhbHNlKTsKKworCWFjbHJl c3VsdCA9IG9iamVjdF9hY2xjaGVjayhQcm9jZWR1cmVSZWxhdGlvbklkLCBmdW5jaWQsIEdldFVz ZXJJZCgpLCBBQ0xfRVhFQ1VURSk7CisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJ YWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfRlVOQ1RJT04sCisJCQkJCSAgIE5hbWVM aXN0VG9TdHJpbmcoc3RtdC0+ZnVuYy0+b2JqbmFtZSkpOworCisJdHVwbGUgPSBTZWFyY2hTeXND YWNoZTEoUFJPQ09JRCwgT2JqZWN0SWRHZXREYXR1bShmdW5jaWQpKTsKKwlpZiAoIUhlYXBUdXBs ZUlzVmFsaWQodHVwbGUpKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Ig ZnVuY3Rpb24gJXUiLCBmdW5jaWQpOworCXByb2NzdHJ1Y3QgPSAoRm9ybV9wZ19wcm9jKSBHRVRT VFJVQ1QodHVwbGUpOworCWNoZWNrX2Zvcm1hdF9jYXN0X2Z1bmN0aW9uKHByb2NzdHJ1Y3QsIHNv dXJjZXR5cGVpZCwgdGFyZ2V0dHlwZWlkKTsKKwlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOworCisJ LyoKKwkgKiBDaGVjayBmb3IgYSBwcmUtZXhpc3RpbmcgZm9ybWF0IGNhc3QgZm9yIHRoaXMgKHNv dXJjZSwgdGFyZ2V0KSBwYWlyLiAgRm9yCisJICogdGhpcyB2ZXJzaW9uIG9ubHkgb25lIGZvcm1h dCBjYXN0IHBlciBwYWlyIGlzIGFsbG93ZWQuCisJICovCisJcmVsYXRpb24gPSB0YWJsZV9vcGVu KEZvcm1hdENhc3RSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCWlmIChTZWFyY2hT eXNDYWNoZUV4aXN0czIoRk9STUFUQ0FTVFNPVVJDRVRBUkdFVCwKKwkJCQkJCQkgIE9iamVjdElk R2V0RGF0dW0oc291cmNldHlwZWlkKSwKKwkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0odGFyZ2V0 dHlwZWlkKSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNB VEVfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJmb3JtYXQgY2FzdCBmcm9tIHR5cGUgJXMgdG8gdHlw ZSAlcyBhbHJlYWR5IGV4aXN0cyIsCisJCQkJCQlmb3JtYXRfdHlwZV9iZShzb3VyY2V0eXBlaWQp LAorCQkJCQkJZm9ybWF0X3R5cGVfYmUodGFyZ2V0dHlwZWlkKSkpKTsKKworCS8qCisJICogQnVp bGQgYW5kIGluc2VydCB0aGUgY2F0YWxvZyB0dXBsZS4KKwkgKi8KKwlmb3JtYXRjYXN0aWQgPSBH ZXROZXdPaWRXaXRoSW5kZXgocmVsYXRpb24sIEZvcm1hdENhc3RPaWRJbmRleElkLAorCQkJCQkJ CQkJIEFudW1fcGdfZm9ybWF0X2Nhc3Rfb2lkKTsKKwl2YWx1ZXNbQW51bV9wZ19mb3JtYXRfY2Fz dF9vaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oZm9ybWF0Y2FzdGlkKTsKKwl2YWx1ZXNbQW51 bV9wZ19mb3JtYXRfY2FzdF9mbXRzb3VyY2UgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oc291cmNl dHlwZWlkKTsKKwl2YWx1ZXNbQW51bV9wZ19mb3JtYXRfY2FzdF9mbXR0YXJnZXQgLSAxXSA9IE9i amVjdElkR2V0RGF0dW0odGFyZ2V0dHlwZWlkKTsKKwl2YWx1ZXNbQW51bV9wZ19mb3JtYXRfY2Fz dF9mbXRmdW5jIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGZ1bmNpZCk7CisKKwluZXd0dXBsZSA9 IGhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2NyKHJlbGF0aW9uKSwgdmFsdWVzLCBudWxs cyk7CisJQ2F0YWxvZ1R1cGxlSW5zZXJ0KHJlbGF0aW9uLCBuZXd0dXBsZSk7CisKKwlhZGRycyA9 IG5ld19vYmplY3RfYWRkcmVzc2VzKCk7CisKKwlPYmplY3RBZGRyZXNzU2V0KG15c2VsZiwgRm9y bWF0Q2FzdFJlbGF0aW9uSWQsIGZvcm1hdGNhc3RpZCk7CisKKwkvKiBkZXBlbmRlbmN5IG9uIHNv dXJjZSB0eXBlICovCisJT2JqZWN0QWRkcmVzc1NldChyZWZlcmVuY2VkLCBUeXBlUmVsYXRpb25J ZCwgc291cmNldHlwZWlkKTsKKwlhZGRfZXhhY3Rfb2JqZWN0X2FkZHJlc3MoJnJlZmVyZW5jZWQs IGFkZHJzKTsKKworCS8qIGRlcGVuZGVuY3kgb24gdGFyZ2V0IHR5cGUgKi8KKwlPYmplY3RBZGRy ZXNzU2V0KHJlZmVyZW5jZWQsIFR5cGVSZWxhdGlvbklkLCB0YXJnZXR0eXBlaWQpOworCWFkZF9l eGFjdF9vYmplY3RfYWRkcmVzcygmcmVmZXJlbmNlZCwgYWRkcnMpOworCisJLyogZGVwZW5kZW5j eSBvbiB0aGUgZm9ybWF0IGNhc3QgZnVuY3Rpb24gKi8KKwlPYmplY3RBZGRyZXNzU2V0KHJlZmVy ZW5jZWQsIFByb2NlZHVyZVJlbGF0aW9uSWQsIGZ1bmNpZCk7CisJYWRkX2V4YWN0X29iamVjdF9h ZGRyZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7CisKKwlyZWNvcmRfb2JqZWN0X2FkZHJlc3NfZGVw ZW5kZW5jaWVzKCZteXNlbGYsIGFkZHJzLCBERVBFTkRFTkNZX05PUk1BTCk7CisJZnJlZV9vYmpl Y3RfYWRkcmVzc2VzKGFkZHJzKTsKKworCS8qIGRlcGVuZGVuY3kgb24gZXh0ZW5zaW9uICovCisJ cmVjb3JkRGVwZW5kZW5jeU9uQ3VycmVudEV4dGVuc2lvbigmbXlzZWxmLCBmYWxzZSk7CisKKwkv KiBQb3N0IGNyZWF0aW9uIGhvb2sgZm9yIG5ldyBmb3JtYXQgY2FzdCAqLworCUludm9rZU9iamVj dFBvc3RDcmVhdGVIb29rKEZvcm1hdENhc3RSZWxhdGlvbklkLCBmb3JtYXRjYXN0aWQsIDApOwor CisJaGVhcF9mcmVldHVwbGUobmV3dHVwbGUpOworCisJdGFibGVfY2xvc2UocmVsYXRpb24sIFJv d0V4Y2x1c2l2ZUxvY2spOworCisJcmV0dXJuIG15c2VsZjsKK30KKworLyoKKyAqIGdldF9mb3Jt YXRfY2FzdF9vaWQgLSBnaXZlbiBzb3VyY2UgYW5kIHRhcmdldCB0eXBlIE9JRHMsIGxvb2sgdXAg YQorICogZm9ybWF0IGNhc3QgT0lECisgKi8KK09pZAorZ2V0X2Zvcm1hdF9jYXN0X29pZChPaWQg c291cmNldHlwZWlkLCBPaWQgdGFyZ2V0dHlwZWlkLCBib29sIG1pc3Npbmdfb2spCit7CisJT2lk CQkJb2lkOworCisJb2lkID0gR2V0U3lzQ2FjaGVPaWQyKEZPUk1BVENBU1RTT1VSQ0VUQVJHRVQs IEFudW1fcGdfZm9ybWF0X2Nhc3Rfb2lkLAorCQkJCQkJICBPYmplY3RJZEdldERhdHVtKHNvdXJj ZXR5cGVpZCksCisJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0odGFyZ2V0dHlwZWlkKSk7CisJaWYg KCFPaWRJc1ZhbGlkKG9pZCkgJiYgIW1pc3Npbmdfb2spCisJCWVyZXBvcnQoRVJST1IsCisJCQkJ KGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJmb3JtYXQg Y2FzdCBmcm9tIHR5cGUgJXMgdG8gdHlwZSAlcyBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQlmb3Jt YXRfdHlwZV9iZShzb3VyY2V0eXBlaWQpLAorCQkJCQkJZm9ybWF0X3R5cGVfYmUodGFyZ2V0dHlw ZWlkKSkpKTsKKwlyZXR1cm4gb2lkOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZAppbmRleCA5 ZjI1OGQ1NjZlYi4uNjg5YWQwYzE2ZGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L21lc29uLmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCkBAIC0y Niw2ICsyNiw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ2V4cGxhaW5fc3RhdGUu YycsCiAgICdleHRlbnNpb24uYycsCiAgICdmb3JlaWduY21kcy5jJywKKyAgJ2Zvcm1hdGNhc3Rj bWRzLmMnLAogICAnZnVuY3Rpb25jbWRzLmMnLAogICAnaW5kZXhjbWRzLmMnLAogICAnbG9ja2Nt ZHMuYycsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYwppbmRleCA3NzU0MmQwNDIwMC4uZjU3YTZkNmFj YzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYwpAQCAtNjYsNiArNjYsNyBAQCBTZWNMYWJlbFN1 cHBvcnRzT2JqZWN0VHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX0FNUFJP QzoKIAkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgogCQljYXNlIE9CSkVDVF9DQVNUOgorCQljYXNl IE9CSkVDVF9GT1JNQVRfQ0FTVDoKIAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQljYXNlIE9C SkVDVF9DT05WRVJTSU9OOgogCQljYXNlIE9CSkVDVF9ERUZBVUxUOgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXgg ZWY0ODgxZWZjODEuLjhlZjRkMjJlY2JhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTI5NSwxMyArMjk1LDE0 IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBM aXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCUNyZWF0ZVNjaGVtYVN0bXQgQ3JlYXRlU2Vx U3RtdCBDcmVhdGVTdG10IENyZWF0ZVN0YXRzU3RtdCBDcmVhdGVUYWJsZVNwYWNlU3RtdAogCQlD cmVhdGVGZHdTdG10IENyZWF0ZUZvcmVpZ25TZXJ2ZXJTdG10IENyZWF0ZUZvcmVpZ25UYWJsZVN0 bXQKIAkJQ3JlYXRlQXNzZXJ0aW9uU3RtdCBDcmVhdGVUcmFuc2Zvcm1TdG10IENyZWF0ZVRyaWdT dG10IENyZWF0ZUV2ZW50VHJpZ1N0bXQKKwkJQ3JlYXRlRm9ybWF0Q2FzdFN0bXQKIAkJQ3JlYXRl UHJvcEdyYXBoU3RtdCBBbHRlclByb3BHcmFwaFN0bXQKIAkJQ3JlYXRlVXNlclN0bXQgQ3JlYXRl VXNlck1hcHBpbmdTdG10IENyZWF0ZVJvbGVTdG10IENyZWF0ZVBvbGljeVN0bXQKIAkJQ3JlYXRl ZGJTdG10IERlY2xhcmVDdXJzb3JTdG10IERlZmluZVN0bXQgRGVsZXRlU3RtdCBEaXNjYXJkU3Rt dCBEb1N0bXQKIAkJRHJvcE9wQ2xhc3NTdG10IERyb3BPcEZhbWlseVN0bXQgRHJvcFN0bXQKIAkJ RHJvcENhc3RTdG10IERyb3BSb2xlU3RtdAogCQlEcm9wZGJTdG10IERyb3BUYWJsZVNwYWNlU3Rt dAotCQlEcm9wVHJhbnNmb3JtU3RtdAorCQlEcm9wVHJhbnNmb3JtU3RtdCBEcm9wRm9ybWF0Q2Fz dFN0bXQKIAkJRHJvcFVzZXJNYXBwaW5nU3RtdCBFeHBsYWluU3RtdCBGZXRjaFN0bXQKIAkJR3Jh bnRTdG10IEdyYW50Um9sZVN0bXQgSW1wb3J0Rm9yZWlnblNjaGVtYVN0bXQgSW5kZXhTdG10IElu c2VydFN0bXQKIAkJTGlzdGVuU3RtdCBMb2FkU3RtdCBMb2NrU3RtdCBNZXJnZVN0bXQgTm90aWZ5 U3RtdCBFeHBsYWluYWJsZVN0bXQgUHJlcGFyYWJsZVN0bXQKQEAgLTExMDUsNiArMTEwNiw3IEBA IHN0bXQ6CiAJCQl8IENyZWF0ZVN0YXRzU3RtdAogCQkJfCBDcmVhdGVUYWJsZVNwYWNlU3RtdAog CQkJfCBDcmVhdGVUcmFuc2Zvcm1TdG10CisJCQl8IENyZWF0ZUZvcm1hdENhc3RTdG10CiAJCQl8 IENyZWF0ZVRyaWdTdG10CiAJCQl8IENyZWF0ZUV2ZW50VHJpZ1N0bXQKIAkJCXwgQ3JlYXRlUm9s ZVN0bXQKQEAgLTExMjUsNiArMTEyNyw3IEBAIHN0bXQ6CiAJCQl8IERyb3BTdWJzY3JpcHRpb25T dG10CiAJCQl8IERyb3BUYWJsZVNwYWNlU3RtdAogCQkJfCBEcm9wVHJhbnNmb3JtU3RtdAorCQkJ fCBEcm9wRm9ybWF0Q2FzdFN0bXQKIAkJCXwgRHJvcFJvbGVTdG10CiAJCQl8IERyb3BVc2VyTWFw cGluZ1N0bXQKIAkJCXwgRHJvcGRiU3RtdApAQCAtNTUyMiw2ICs1NTI1LDE2IEBAIEFsdGVyRXh0 ZW5zaW9uQ29udGVudHNTdG10OgogCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSBsaXN0X21ha2Uy KCQ3LCAkOSk7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJCQl8IEFMVEVSIEVYVEVO U0lPTiBuYW1lIGFkZF9kcm9wIEZPUk1BVCBDQVNUICcoJyBUeXBlbmFtZSBBUyBUeXBlbmFtZSAn KScKKwkJCQl7CisJCQkJCUFsdGVyRXh0ZW5zaW9uQ29udGVudHNTdG10ICpuID0gbWFrZU5vZGUo QWx0ZXJFeHRlbnNpb25Db250ZW50c1N0bXQpOworCisJCQkJCW4tPmV4dG5hbWUgPSAkMzsKKwkJ CQkJbi0+YWN0aW9uID0gJDQ7CisJCQkJCW4tPm9ianR5cGUgPSBPQkpFQ1RfRk9STUFUX0NBU1Q7 CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopIGxpc3RfbWFrZTIoJDgsICQxMCk7CisJCQkJCSQk ID0gKE5vZGUgKikgbjsKKwkJCQl9CiAJCQl8IEFMVEVSIEVYVEVOU0lPTiBuYW1lIGFkZF9kcm9w IERPTUFJTl9QIFR5cGVuYW1lCiAJCQkJewogCQkJCQlBbHRlckV4dGVuc2lvbkNvbnRlbnRzU3Rt dCAqbiA9IG1ha2VOb2RlKEFsdGVyRXh0ZW5zaW9uQ29udGVudHNTdG10KTsKQEAgLTc1MTIsNiAr NzUyNSwxNSBAQCBDb21tZW50U3RtdDoKIAkJCQkJbi0+Y29tbWVudCA9ICQxMDsKIAkJCQkJJCQg PSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQ09NTUVOVCBPTiBGT1JNQVQgQ0FTVCAnKCcgVHlw ZW5hbWUgQVMgVHlwZW5hbWUgJyknIElTIGNvbW1lbnRfdGV4dAorCQkJCXsKKwkJCQkJQ29tbWVu dFN0bXQgKm4gPSBtYWtlTm9kZShDb21tZW50U3RtdCk7CisKKwkJCQkJbi0+b2JqdHlwZSA9IE9C SkVDVF9GT1JNQVRfQ0FTVDsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgbGlzdF9tYWtlMigk NiwgJDgpOworCQkJCQluLT5jb21tZW50ID0gJDExOworCQkJCQkkJCA9IChOb2RlICopIG47CisJ CQkJfQogCQk7CiAKIGNvbW1lbnRfdGV4dDoKQEAgLTk4OTMsNiArOTkxNSwzOCBAQCBEcm9wVHJh bnNmb3JtU3RtdDogRFJPUCBUUkFOU0ZPUk0gb3B0X2lmX2V4aXN0cyBGT1IgVHlwZW5hbWUgTEFO R1VBR0UgbmFtZSBvcHRfZAogCQk7CiAKIAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICoJ CUNSRUFURSBGT1JNQVQgQ0FTVCAvIERST1AgRk9STUFUIENBU1QKKyAqCisgKiBBIGZvcm1hdCBj YXN0IHJlZ2lzdGVycyB0aGUgZnVuY3Rpb24gaW1wbGVtZW50aW5nCisgKiBDQVNUKGV4cHIgQVMg dGFyZ2V0IEZPUk1BVCBmb3JtYXRfZXhwcikgZm9yIGEgKHNvdXJjZSwgdGFyZ2V0KSB0eXBlIHBh aXIuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK0NyZWF0ZUZvcm1hdENhc3RTdG10OiBDUkVB VEUgRk9STUFUIENBU1QgJygnIFR5cGVuYW1lIEFTIFR5cGVuYW1lICcpJyBXSVRIIEZVTkNUSU9O IGZ1bmN0aW9uX3dpdGhfYXJndHlwZXMKKwkJCQl7CisJCQkJCUNyZWF0ZUZvcm1hdENhc3RTdG10 ICpuID0gbWFrZU5vZGUoQ3JlYXRlRm9ybWF0Q2FzdFN0bXQpOworCisJCQkJCW4tPnNvdXJjZXR5 cGUgPSAkNTsKKwkJCQkJbi0+dGFyZ2V0dHlwZSA9ICQ3OworCQkJCQluLT5mdW5jID0gJDExOwor CQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQk7CisKK0Ryb3BGb3JtYXRDYXN0U3RtdDog RFJPUCBGT1JNQVQgQ0FTVCBvcHRfaWZfZXhpc3RzICcoJyBUeXBlbmFtZSBBUyBUeXBlbmFtZSAn KScgb3B0X2Ryb3BfYmVoYXZpb3IKKwkJCQl7CisJCQkJCURyb3BTdG10ICpuID0gbWFrZU5vZGUo RHJvcFN0bXQpOworCisJCQkJCW4tPnJlbW92ZVR5cGUgPSBPQkpFQ1RfRk9STUFUX0NBU1Q7CisJ CQkJCW4tPm9iamVjdHMgPSBsaXN0X21ha2UxKGxpc3RfbWFrZTIoJDYsICQ4KSk7CisJCQkJCW4t PmJlaGF2aW9yID0gJDEwOworCQkJCQluLT5taXNzaW5nX29rID0gJDQ7CisJCQkJCSQkID0gKE5v ZGUgKikgbjsKKwkJCQl9CisJCTsKKworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKgkJ UVVFUlk6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3NyYy9iYWNr ZW5kL3Rjb3AvdXRpbGl0eS5jCmluZGV4IDczYTU2ZjFkZjFkLi41ZWNlYTIzNDU4ZiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC91 dGlsaXR5LmMKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJjb21tYW5kcy9ldmVudF90cmln Z2VyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXhwbGFpbi5oIgogI2luY2x1ZGUgImNvbW1hbmRz L2V4dGVuc2lvbi5oIgorI2luY2x1ZGUgImNvbW1hbmRzL2Zvcm1hdGNhc3QuaCIKICNpbmNsdWRl ICJjb21tYW5kcy9sb2NrY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL21hdHZpZXcuaCIKICNp bmNsdWRlICJjb21tYW5kcy9wb2xpY3kuaCIKQEAgLTE5Myw2ICsxOTQsNyBAQCBDbGFzc2lmeVV0 aWxpdHlDb21tYW5kQXNSZWFkT25seShOb2RlICpwYXJzZXRyZWUpCiAJCWNhc2UgVF9DcmVhdGVU YWJsZUFzU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVRhYmxlU3BhY2VTdG10OgogCQljYXNlIFRfQ3Jl YXRlVHJhbnNmb3JtU3RtdDoKKwkJY2FzZSBUX0NyZWF0ZUZvcm1hdENhc3RTdG10OgogCQljYXNl IFRfQ3JlYXRlVHJpZ1N0bXQ6CiAJCWNhc2UgVF9DcmVhdGVVc2VyTWFwcGluZ1N0bXQ6CiAJCWNh c2UgVF9DcmVhdGVkYlN0bXQ6CkBAIC0xNzU1LDYgKzE3NTcsMTAgQEAgUHJvY2Vzc1V0aWxpdHlT bG93KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQlhZGRyZXNzID0gQ3JlYXRlVHJhbnNmb3JtKChD cmVhdGVUcmFuc2Zvcm1TdG10ICopIHBhcnNldHJlZSk7CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2Ug VF9DcmVhdGVGb3JtYXRDYXN0U3RtdDoKKwkJCQlhZGRyZXNzID0gQ3JlYXRlRm9ybWF0Q2FzdCgo Q3JlYXRlRm9ybWF0Q2FzdFN0bXQgKikgcGFyc2V0cmVlKTsKKwkJCQlicmVhazsKKwogCQkJY2Fz ZSBUX0FsdGVyT3BGYW1pbHlTdG10OgogCQkJCUFsdGVyT3BGYW1pbHkoKEFsdGVyT3BGYW1pbHlT dG10ICopIHBhcnNldHJlZSk7CiAJCQkJLyogY29tbWFuZHMgYXJlIHN0YXNoZWQgaW4gQWx0ZXJP cEZhbWlseSAqLwpAQCAtMjY2Niw2ICsyNjcyLDkgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpw YXJzZXRyZWUpCiAJCQkJY2FzZSBPQkpFQ1RfVFJBTlNGT1JNOgogCQkJCQl0YWcgPSBDTURUQUdf RFJPUF9UUkFOU0ZPUk07CiAJCQkJCWJyZWFrOworCQkJCWNhc2UgT0JKRUNUX0ZPUk1BVF9DQVNU OgorCQkJCQl0YWcgPSBDTURUQUdfRFJPUF9GT1JNQVRfQ0FTVDsKKwkJCQkJYnJlYWs7CiAJCQkJ Y2FzZSBPQkpFQ1RfQUNDRVNTX01FVEhPRDoKIAkJCQkJdGFnID0gQ01EVEFHX0RST1BfQUNDRVNT X01FVEhPRDsKIAkJCQkJYnJlYWs7CkBAIC0yOTgxLDYgKzI5OTAsMTAgQEAgQ3JlYXRlQ29tbWFu ZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQl0YWcgPSBDTURUQUdfQ1JFQVRFX1RSQU5TRk9STTsK IAkJCWJyZWFrOwogCisJCWNhc2UgVF9DcmVhdGVGb3JtYXRDYXN0U3RtdDoKKwkJCXRhZyA9IENN RFRBR19DUkVBVEVfRk9STUFUX0NBU1Q7CisJCQlicmVhazsKKwogCQljYXNlIFRfQ3JlYXRlVHJp Z1N0bXQ6CiAJCQl0YWcgPSBDTURUQUdfQ1JFQVRFX1RSSUdHRVI7CiAJCQlicmVhazsKQEAgLTM2 OTAsNiArMzcwMywxMCBAQCBHZXRDb21tYW5kTG9nTGV2ZWwoTm9kZSAqcGFyc2V0cmVlKQogCQkJ bGV2ID0gTE9HU1RNVF9EREw7CiAJCQlicmVhazsKIAorCQljYXNlIFRfQ3JlYXRlRm9ybWF0Q2Fz dFN0bXQ6CisJCQlsZXYgPSBMT0dTVE1UX0RETDsKKwkJCWJyZWFrOworCiAJCWNhc2UgVF9BbHRl ck9wRmFtaWx5U3RtdDoKIAkJCWxldiA9IExPR1NUTVRfRERMOwogCQkJYnJlYWs7CmRpZmYgLS1n aXQgYS9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMgYi9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMK aW5kZXggZGM5OGM1YzVjMDkuLjU0Y2Y5YzA3ZjY4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1 bXAvY29tbW9uLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jCkBAIC0xODgsNiArMTg4 LDkgQEAgZ2V0U2NoZW1hRGF0YShBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlc1B0cikKIAlw Z19sb2dfaW5mbygicmVhZGluZyB0cmFuc2Zvcm1zIik7CiAJZ2V0VHJhbnNmb3Jtcyhmb3V0KTsK IAorCXBnX2xvZ19pbmZvKCJyZWFkaW5nIGZvcm1hdCBjYXN0cyIpOworCWdldEZvcm1hdENhc3Rz KGZvdXQpOworCiAJcGdfbG9nX2luZm8oInJlYWRpbmcgdGFibGUgaW5oZXJpdGFuY2UgaW5mb3Jt YXRpb24iKTsKIAlpbmhpbmZvID0gZ2V0SW5oZXJpdHMoZm91dCwgJm51bUluaGVyaXRzKTsKIApk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmMKaW5kZXggYzU2NDM3ZDYwNTcuLjY1MTdhNDUwZGFhIDEwMDY0NAotLS0gYS9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAg LTMwMCw2ICszMDAsNyBAQCBzdGF0aWMgdm9pZCBkdW1wUHJvY0xhbmcoQXJjaGl2ZSAqZm91dCwg Y29uc3QgUHJvY0xhbmdJbmZvICpwbGFuZyk7CiBzdGF0aWMgdm9pZCBkdW1wRnVuYyhBcmNoaXZl ICpmb3V0LCBjb25zdCBGdW5jSW5mbyAqZmluZm8pOwogc3RhdGljIHZvaWQgZHVtcENhc3QoQXJj aGl2ZSAqZm91dCwgY29uc3QgQ2FzdEluZm8gKmNhc3QpOwogc3RhdGljIHZvaWQgZHVtcFRyYW5z Zm9ybShBcmNoaXZlICpmb3V0LCBjb25zdCBUcmFuc2Zvcm1JbmZvICp0cmFuc2Zvcm0pOworc3Rh dGljIHZvaWQgZHVtcEZvcm1hdENhc3QoQXJjaGl2ZSAqZm91dCwgY29uc3QgRm9ybWF0Q2FzdElu Zm8gKmZvcm1hdGNhc3QpOwogc3RhdGljIHZvaWQgZHVtcE9wcihBcmNoaXZlICpmb3V0LCBjb25z dCBPcHJJbmZvICpvcHJpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBBY2Nlc3NNZXRob2QoQXJjaGl2 ZSAqZm91dCwgY29uc3QgQWNjZXNzTWV0aG9kSW5mbyAqYW1pbmZvKTsKIHN0YXRpYyB2b2lkIGR1 bXBPcGNsYXNzKEFyY2hpdmUgKmZvdXQsIGNvbnN0IE9wY2xhc3NJbmZvICpvcGNpbmZvKTsKQEAg LTkzMjAsNiArOTMyMSw4MyBAQCBnZXRUcmFuc2Zvcm1zKEFyY2hpdmUgKmZvdXQpCiAJZGVzdHJv eVBRRXhwQnVmZmVyKHF1ZXJ5KTsKIH0KIAorLyoKKyAqIGdldEZvcm1hdENhc3RzCisgKgkgIGdl dCBiYXNpYyBpbmZvcm1hdGlvbiBhYm91dCBldmVyeSBmb3JtYXQgY2FzdCBpbiB0aGUgc3lzdGVt CisgKi8KK3ZvaWQKK2dldEZvcm1hdENhc3RzKEFyY2hpdmUgKmZvdXQpCit7CisJUEdyZXN1bHQg ICAqcmVzOworCWludAkJCW50dXBzOworCWludAkJCWk7CisJUFFFeHBCdWZmZXIgcXVlcnk7CisJ Rm9ybWF0Q2FzdEluZm8gKmZvcm1hdGNhc3RpbmZvOworCWludAkJCWlfdGFibGVvaWQ7CisJaW50 CQkJaV9vaWQ7CisJaW50CQkJaV9mbXRzb3VyY2U7CisJaW50CQkJaV9mbXR0YXJnZXQ7CisJaW50 CQkJaV9mbXRmdW5jOworCisJLyogRm9ybWF0IGNhc3RzIHdlcmUgaW50cm9kdWNlZCBpbiB2MTkg Ki8KKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA8IDE5MDAwMCkKKwkJcmV0dXJuOworCisJcXVl cnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnks ICJTRUxFQ1QgdGFibGVvaWQsIG9pZCwgIgorCQkJCQkJICJmbXRzb3VyY2UsIGZtdHRhcmdldCwg Zm10ZnVuYyAiCisJCQkJCQkgIkZST00gcGdfZm9ybWF0X2Nhc3QgIgorCQkJCQkJICJPUkRFUiBC WSAzLDQiKTsKKworCXJlcyA9IEV4ZWN1dGVTcWxRdWVyeShmb3V0LCBxdWVyeS0+ZGF0YSwgUEdS RVNfVFVQTEVTX09LKTsKKworCW50dXBzID0gUFFudHVwbGVzKHJlcyk7CisKKwlmb3JtYXRjYXN0 aW5mbyA9IHBnX21hbGxvY19hcnJheShGb3JtYXRDYXN0SW5mbywgbnR1cHMpOworCisJaV90YWJs ZW9pZCA9IFBRZm51bWJlcihyZXMsICJ0YWJsZW9pZCIpOworCWlfb2lkID0gUFFmbnVtYmVyKHJl cywgIm9pZCIpOworCWlfZm10c291cmNlID0gUFFmbnVtYmVyKHJlcywgImZtdHNvdXJjZSIpOwor CWlfZm10dGFyZ2V0ID0gUFFmbnVtYmVyKHJlcywgImZtdHRhcmdldCIpOworCWlfZm10ZnVuYyA9 IFBRZm51bWJlcihyZXMsICJmbXRmdW5jIik7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnR1cHM7IGkr KykKKwl7CisJCVBRRXhwQnVmZmVyRGF0YSBuYW1lYnVmOworCQlUeXBlSW5mbyAgICpzVHlwZUlu Zm87CisJCVR5cGVJbmZvICAgKnRUeXBlSW5mbzsKKworCQlmb3JtYXRjYXN0aW5mb1tpXS5kb2Jq Lm9ialR5cGUgPSBET19GT1JNQVRfQ0FTVDsKKwkJZm9ybWF0Y2FzdGluZm9baV0uZG9iai5jYXRJ ZC50YWJsZW9pZCA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV90YWJsZW9pZCkpOworCQlm b3JtYXRjYXN0aW5mb1tpXS5kb2JqLmNhdElkLm9pZCA9IGF0b29pZChQUWdldHZhbHVlKHJlcywg aSwgaV9vaWQpKTsKKwkJQXNzaWduRHVtcElkKCZmb3JtYXRjYXN0aW5mb1tpXS5kb2JqKTsKKwkJ Zm9ybWF0Y2FzdGluZm9baV0uZm10c291cmNlID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBp X2ZtdHNvdXJjZSkpOworCQlmb3JtYXRjYXN0aW5mb1tpXS5mbXR0YXJnZXQgPSBhdG9vaWQoUFFn ZXR2YWx1ZShyZXMsIGksIGlfZm10dGFyZ2V0KSk7CisJCWZvcm1hdGNhc3RpbmZvW2ldLmZtdGZ1 bmMgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfZm10ZnVuYykpOworCisJCS8qCisJCSAq IFRyeSB0byBuYW1lIHRoZSBmb3JtYXQgY2FzdCBhcyBhIGNvbmNhdGVuYXRpb24gb2YgdGhlIHR5 cGUgbmFtZXMuCisJCSAqIFRoaXMgaXMgb25seSB1c2VkIGZvciBwdXJwb3NlcyBvZiBzb3J0aW5n LiAgSWYgd2UgZmFpbCB0byBmaW5kCisJCSAqIGVpdGhlciB0eXBlLCB0aGUgbmFtZSB3aWxsIGJl IGFuIGVtcHR5IHN0cmluZy4KKwkJICovCisJCWluaXRQUUV4cEJ1ZmZlcigmbmFtZWJ1Zik7CisJ CXNUeXBlSW5mbyA9IGZpbmRUeXBlQnlPaWQoZm9ybWF0Y2FzdGluZm9baV0uZm10c291cmNlKTsK KwkJdFR5cGVJbmZvID0gZmluZFR5cGVCeU9pZChmb3JtYXRjYXN0aW5mb1tpXS5mbXR0YXJnZXQp OworCQlpZiAoc1R5cGVJbmZvICYmIHRUeXBlSW5mbykKKwkJCWFwcGVuZFBRRXhwQnVmZmVyKCZu YW1lYnVmLCAiJXMgJXMiLAorCQkJCQkJCSAgc1R5cGVJbmZvLT5kb2JqLm5hbWUsIHRUeXBlSW5m by0+ZG9iai5uYW1lKTsKKwkJZm9ybWF0Y2FzdGluZm9baV0uZG9iai5uYW1lID0gbmFtZWJ1Zi5k YXRhOworCisJCS8qIERlY2lkZSB3aGV0aGVyIHdlIHdhbnQgdG8gZHVtcCBpdCAqLworCQlzZWxl Y3REdW1wYWJsZU9iamVjdCgmKGZvcm1hdGNhc3RpbmZvW2ldLmRvYmopLCBmb3V0KTsKKwl9CisK KwlQUWNsZWFyKHJlcyk7CisKKwlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkpOworfQorCiAvKgog ICogZ2V0VGFibGVBdHRycyAtCiAgKgkgIGZvciBlYWNoIGludGVyZXN0aW5nIHRhYmxlLCByZWFk IGluZm8gYWJvdXQgaXRzIGF0dHJpYnV0ZXMKQEAgLTExOTEzLDYgKzExOTkxLDkgQEAgZHVtcER1 bXBhYmxlT2JqZWN0KEFyY2hpdmUgKmZvdXQsIER1bXBhYmxlT2JqZWN0ICpkb2JqKQogCQljYXNl IERPX1RSQU5TRk9STToKIAkJCWR1bXBUcmFuc2Zvcm0oZm91dCwgKGNvbnN0IFRyYW5zZm9ybUlu Zm8gKikgZG9iaik7CiAJCQlicmVhazsKKwkJY2FzZSBET19GT1JNQVRfQ0FTVDoKKwkJCWR1bXBG b3JtYXRDYXN0KGZvdXQsIChjb25zdCBGb3JtYXRDYXN0SW5mbyAqKSBkb2JqKTsKKwkJCWJyZWFr OwogCQljYXNlIERPX1NFUVVFTkNFX1NFVDoKIAkJCWR1bXBTZXF1ZW5jZURhdGEoZm91dCwgKGNv bnN0IFRhYmxlRGF0YUluZm8gKikgZG9iaik7CiAJCQlicmVhazsKQEAgLTE0MjU1LDYgKzE0MzM2 LDkwIEBAIGR1bXBUcmFuc2Zvcm0oQXJjaGl2ZSAqZm91dCwgY29uc3QgVHJhbnNmb3JtSW5mbyAq dHJhbnNmb3JtKQogCWRlc3Ryb3lQUUV4cEJ1ZmZlcih0cmFuc2Zvcm1hcmdzKTsKIH0KIAorLyoK KyAqIER1bXAgYSBmb3JtYXQgY2FzdAorICovCitzdGF0aWMgdm9pZAorZHVtcEZvcm1hdENhc3Qo QXJjaGl2ZSAqZm91dCwgY29uc3QgRm9ybWF0Q2FzdEluZm8gKmZvcm1hdGNhc3QpCit7CisJRHVt cE9wdGlvbnMgKmRvcHQgPSBmb3V0LT5kb3B0OworCVBRRXhwQnVmZmVyIGRlZnFyeTsKKwlQUUV4 cEJ1ZmZlciBkZWxxcnk7CisJUFFFeHBCdWZmZXIgbGFiZWxxOworCVBRRXhwQnVmZmVyIGZvcm1h dGNhc3RhcmdzOworCUZ1bmNJbmZvICAgKmZ1bmNJbmZvOworCWNvbnN0IGNoYXIgKnNvdXJjZVR5 cGU7CisJY29uc3QgY2hhciAqdGFyZ2V0VHlwZTsKKworCS8qIERvIG5vdGhpbmcgaWYgbm90IGR1 bXBpbmcgc2NoZW1hICovCisJaWYgKCFkb3B0LT5kdW1wU2NoZW1hKQorCQlyZXR1cm47CisKKwkv KiBDYW5ub3QgZHVtcCBpZiB3ZSBkb24ndCBoYXZlIHRoZSBmb3JtYXQgY2FzdCBmdW5jdGlvbidz IGluZm8gKi8KKwlmdW5jSW5mbyA9IGZpbmRGdW5jQnlPaWQoZm9ybWF0Y2FzdC0+Zm10ZnVuYyk7 CisJaWYgKGZ1bmNJbmZvID09IE5VTEwpCisJCXBnX2ZhdGFsKCJjb3VsZCBub3QgZmluZCBmdW5j dGlvbiBkZWZpbml0aW9uIGZvciBmdW5jdGlvbiB3aXRoIE9JRCAldSIsCisJCQkJIGZvcm1hdGNh c3QtPmZtdGZ1bmMpOworCisJZGVmcXJ5ID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKwlkZWxxcnkg PSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCWxhYmVscSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisJ Zm9ybWF0Y2FzdGFyZ3MgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCisJc291cmNlVHlwZSA9IGdl dEZvcm1hdHRlZFR5cGVOYW1lKGZvdXQsIGZvcm1hdGNhc3QtPmZtdHNvdXJjZSwgemVyb0FzTm9u ZSk7CisJdGFyZ2V0VHlwZSA9IGdldEZvcm1hdHRlZFR5cGVOYW1lKGZvdXQsIGZvcm1hdGNhc3Qt PmZtdHRhcmdldCwgemVyb0FzTm9uZSk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxxcnksICJE Uk9QIEZPUk1BVCBDQVNUICglcyBBUyAlcyk7XG4iLAorCQkJCQkgIHNvdXJjZVR5cGUsIHRhcmdl dFR5cGUpOworCisJYXBwZW5kUFFFeHBCdWZmZXIoZGVmcXJ5LCAiQ1JFQVRFIEZPUk1BVCBDQVNU ICglcyBBUyAlcykgIiwKKwkJCQkJICBzb3VyY2VUeXBlLCB0YXJnZXRUeXBlKTsKKworCXsKKwkJ Y2hhcgkgICAqZnNpZyA9IGZvcm1hdF9mdW5jdGlvbl9zaWduYXR1cmUoZm91dCwgZnVuY0luZm8s IHRydWUpOworCisJCS8qCisJCSAqIEFsd2F5cyBxdWFsaWZ5IHRoZSBmdW5jdGlvbiBuYW1lIChm b3JtYXRfZnVuY3Rpb25fc2lnbmF0dXJlIHdvbid0CisJCSAqIHF1YWxpZnkgaXQpLgorCQkgKi8K KwkJYXBwZW5kUFFFeHBCdWZmZXIoZGVmcXJ5LCAiV0lUSCBGVU5DVElPTiAlcy4lcyIsCisJCQkJ CQkgIGZtdElkKGZ1bmNJbmZvLT5kb2JqLm5hbWVzcGFjZS0+ZG9iai5uYW1lKSwgZnNpZyk7CisJ CWZyZWUoZnNpZyk7CisJfQorCWFwcGVuZFBRRXhwQnVmZmVyU3RyKGRlZnFyeSwgIjtcbiIpOwor CisJYXBwZW5kUFFFeHBCdWZmZXIobGFiZWxxLCAiRk9STUFUIENBU1QgKCVzIEFTICVzKSIsCisJ CQkJCSAgc291cmNlVHlwZSwgdGFyZ2V0VHlwZSk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihmb3Jt YXRjYXN0YXJncywgIiglcyBBUyAlcykiLAorCQkJCQkgIHNvdXJjZVR5cGUsIHRhcmdldFR5cGUp OworCisJaWYgKGRvcHQtPmJpbmFyeV91cGdyYWRlKQorCQliaW5hcnlfdXBncmFkZV9leHRlbnNp b25fbWVtYmVyKGRlZnFyeSwgJmZvcm1hdGNhc3QtPmRvYmosCisJCQkJCQkJCQkJIkZPUk1BVCBD QVNUIiwgZm9ybWF0Y2FzdGFyZ3MtPmRhdGEsIE5VTEwpOworCisJaWYgKGZvcm1hdGNhc3QtPmRv YmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0RFRklOSVRJT04pCisJCUFyY2hpdmVFbnRyeShmb3V0 LCBmb3JtYXRjYXN0LT5kb2JqLmNhdElkLCBmb3JtYXRjYXN0LT5kb2JqLmR1bXBJZCwKKwkJCQkJ IEFSQ0hJVkVfT1BUUygudGFnID0gbGFiZWxxLT5kYXRhLAorCQkJCQkJCQkgIC5kZXNjcmlwdGlv biA9ICJGT1JNQVQgQ0FTVCIsCisJCQkJCQkJCSAgLnNlY3Rpb24gPSBTRUNUSU9OX1BSRV9EQVRB LAorCQkJCQkJCQkgIC5jcmVhdGVTdG10ID0gZGVmcXJ5LT5kYXRhLAorCQkJCQkJCQkgIC5kcm9w U3RtdCA9IGRlbHFyeS0+ZGF0YSwKKwkJCQkJCQkJICAuZGVwcyA9IGZvcm1hdGNhc3QtPmRvYmou ZGVwZW5kZW5jaWVzLAorCQkJCQkJCQkgIC5uRGVwcyA9IGZvcm1hdGNhc3QtPmRvYmoubkRlcHMp KTsKKworCS8qIER1bXAgRm9ybWF0IGNhc3QgQ29tbWVudHMgKi8KKwlpZiAoZm9ybWF0Y2FzdC0+ ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfQ09NTUVOVCkKKwkJZHVtcENvbW1lbnQoZm91dCwg IkZPUk1BVCBDQVNUIiwgZm9ybWF0Y2FzdGFyZ3MtPmRhdGEsCisJCQkJCU5VTEwsICIiLAorCQkJ CQlmb3JtYXRjYXN0LT5kb2JqLmNhdElkLCAwLCBmb3JtYXRjYXN0LT5kb2JqLmR1bXBJZCk7CisK KwlkZXN0cm95UFFFeHBCdWZmZXIoZGVmcXJ5KTsKKwlkZXN0cm95UFFFeHBCdWZmZXIoZGVscXJ5 KTsKKwlkZXN0cm95UFFFeHBCdWZmZXIobGFiZWxxKTsKKwlkZXN0cm95UFFFeHBCdWZmZXIoZm9y bWF0Y2FzdGFyZ3MpOworfQorCiAKIC8qCiAgKiBkdW1wT3ByCkBAIC0yMDY5Niw2ICsyMDg2MSw3 IEBAIGFkZEJvdW5kYXJ5RGVwZW5kZW5jaWVzKER1bXBhYmxlT2JqZWN0ICoqZG9ianMsIGludCBu dW1PYmpzLAogCQkJY2FzZSBET19GRFc6CiAJCQljYXNlIERPX0ZPUkVJR05fU0VSVkVSOgogCQkJ Y2FzZSBET19UUkFOU0ZPUk06CisJCQljYXNlIERPX0ZPUk1BVF9DQVNUOgogCQkJCS8qIFByZS1k YXRhIG9iamVjdHM6IG11c3QgY29tZSBiZWZvcmUgdGhlIHByZS1kYXRhIGJvdW5kYXJ5ICovCiAJ CQkJYWRkT2JqZWN0RGVwZW5kZW5jeShwcmVEYXRhQm91bmQsIGRvYmotPmR1bXBJZCk7CiAJCQkJ YnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuaAppbmRleCA1YTY3MjZkOGIxMi4uYzc2NzE4NWVjMTUgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuaApAQCAtNzMsNiArNzMsNyBAQCB0eXBlZGVmIGVudW0KIAlET19GT1JFSUdOX1NFUlZFUiwK IAlET19ERUZBVUxUX0FDTCwKIAlET19UUkFOU0ZPUk0sCisJRE9fRk9STUFUX0NBU1QsCiAJRE9f TEFSR0VfT0JKRUNULAogCURPX0xBUkdFX09CSkVDVF9EQVRBLAogCURPX1BSRV9EQVRBX0JPVU5E QVJZLApAQCAtNTU5LDYgKzU2MCwxNCBAQCB0eXBlZGVmIHN0cnVjdCBfdHJhbnNmb3JtSW5mbwog CU9pZAkJCXRyZnRvc3FsOwogfSBUcmFuc2Zvcm1JbmZvOwogCit0eXBlZGVmIHN0cnVjdCBfZm9y bWF0Q2FzdEluZm8KK3sKKwlEdW1wYWJsZU9iamVjdCBkb2JqOworCU9pZAkJCWZtdHNvdXJjZTsK KwlPaWQJCQlmbXR0YXJnZXQ7CisJT2lkCQkJZm10ZnVuYzsKK30gRm9ybWF0Q2FzdEluZm87CisK IC8qIEluaEluZm8gaXNuJ3QgYSBEdW1wYWJsZU9iamVjdCwganVzdCB0ZW1wb3Jhcnkgc3RhdGUg Ki8KIHR5cGVkZWYgc3RydWN0IF9pbmhJbmZvCiB7CkBAIC04MTQsNiArODIzLDcgQEAgZXh0ZXJu IHZvaWQgZ2V0VHJpZ2dlcnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50 IG51bVRhYmxlcyk7CiBleHRlcm4gdm9pZCBnZXRQcm9jTGFuZ3MoQXJjaGl2ZSAqZm91dCk7CiBl eHRlcm4gdm9pZCBnZXRDYXN0cyhBcmNoaXZlICpmb3V0KTsKIGV4dGVybiB2b2lkIGdldFRyYW5z Zm9ybXMoQXJjaGl2ZSAqZm91dCk7CitleHRlcm4gdm9pZCBnZXRGb3JtYXRDYXN0cyhBcmNoaXZl ICpmb3V0KTsKIGV4dGVybiB2b2lkIGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJ bmZvICp0YmxpbmZvLCBpbnQgbnVtVGFibGVzKTsKIGV4dGVybiBib29sIHNob3VsZFByaW50Q29s dW1uKGNvbnN0IER1bXBPcHRpb25zICpkb3B0LCBjb25zdCBUYWJsZUluZm8gKnRiaW5mbywgaW50 IGNvbG5vKTsKIGV4dGVybiB2b2lkIGdldFRTUGFyc2VycyhBcmNoaXZlICpmb3V0KTsKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyBiL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wX3NvcnQuYwppbmRleCAwM2U1YzFjMTExNi4uMzYwM2Y1ZjVmZTMgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcF9zb3J0LmMKQEAgLTYwLDYgKzYwLDcgQEAgZW51bSBkYk9iamVjdFR5cGVQcmlvcml0aWVz CiAJUFJJT19FWFRFTlNJT04sCiAJUFJJT19UWVBFLAkJCQkJLyogdXNlZCBmb3IgRE9fVFlQRSBh bmQgRE9fU0hFTExfVFlQRSAqLwogCVBSSU9fQ0FTVCwKKwlQUklPX0ZPUk1BVF9DQVNULAogCVBS SU9fRlVOQywKIAlQUklPX0FHRywKIAlQUklPX0FDQ0VTU19NRVRIT0QsCkBAIC0xMjgsNiArMTI5 LDcgQEAgc3RhdGljIGNvbnN0IGludCBkYk9iamVjdFR5cGVQcmlvcml0eVtdID0KIAlbRE9fRktf Q09OU1RSQUlOVF0gPSBQUklPX0ZLX0NPTlNUUkFJTlQsCiAJW0RPX1BST0NMQU5HXSA9IFBSSU9f UFJPQ0xBTkcsCiAJW0RPX0NBU1RdID0gUFJJT19DQVNULAorCVtET19GT1JNQVRfQ0FTVF0gPSBQ UklPX0ZPUk1BVF9DQVNULAogCVtET19UQUJMRV9EQVRBXSA9IFBSSU9fVEFCTEVfREFUQSwKIAlb RE9fU0VRVUVOQ0VfU0VUXSA9IFBSSU9fU0VRVUVOQ0VfU0VULAogCVtET19EVU1NWV9UWVBFXSA9 IFBSSU9fRFVNTVlfVFlQRSwKQEAgLTE2NDksNiArMTY1MSwxMyBAQCBkZXNjcmliZUR1bXBhYmxl T2JqZWN0KER1bXBhYmxlT2JqZWN0ICpvYmosIGNoYXIgKmJ1ZiwgaW50IGJ1ZnNpemUpCiAJCQkJ CSAoKENhc3RJbmZvICopIG9iaiktPmNhc3R0YXJnZXQsCiAJCQkJCSBvYmotPmR1bXBJZCwgb2Jq LT5jYXRJZC5vaWQpOwogCQkJcmV0dXJuOworCQljYXNlIERPX0ZPUk1BVF9DQVNUOgorCQkJc25w cmludGYoYnVmLCBidWZzaXplLAorCQkJCQkgIkZPUk1BVCBDQVNUICV1IHRvICV1ICAoSUQgJWQg T0lEICV1KSIsCisJCQkJCSAoKEZvcm1hdENhc3RJbmZvICopIG9iaiktPmZtdHNvdXJjZSwKKwkJ CQkJICgoRm9ybWF0Q2FzdEluZm8gKikgb2JqKS0+Zm10dGFyZ2V0LAorCQkJCQkgb2JqLT5kdW1w SWQsIG9iai0+Y2F0SWQub2lkKTsKKwkJCXJldHVybjsKIAkJY2FzZSBET19UUkFOU0ZPUk06CiAJ CQlzbnByaW50ZihidWYsIGJ1ZnNpemUsCiAJCQkJCSAiVFJBTlNGT1JNICV1IGxhbmcgJXUgIChJ RCAlZCBPSUQgJXUpIiwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCmluZGV4IGJhYjU3MzcyYjg4Li44Mzk3Y2Yw NzU2YSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZQorKysgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCkBAIC03NSw2ICs3NSw3IEBAIENBVEFMT0dfSEVBREVS UyA6PSBcCiAJcGdfcGFyYW1ldGVyX2FjbC5oIFwKIAlwZ19wYXJ0aXRpb25lZF90YWJsZS5oIFwK IAlwZ19yYW5nZS5oIFwKKwlwZ19mb3JtYXRfY2FzdC5oIFwKIAlwZ190cmFuc2Zvcm0uaCBcCiAJ cGdfc2VxdWVuY2UuaCBcCiAJcGdfcHVibGljYXRpb24uaCBcCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9jYXRhbG9nL2NhdHZlcnNpb24uaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvY2F0dmVyc2lv bi5oCmluZGV4IDYzNWMwZDljYjEzLi42NDAyY2M3NmM4NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9jYXR2ZXJzaW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXR2ZXJz aW9uLmgKQEAgLTU3LDYgKzU3LDYgQEAKICAqLwogCiAvKgkJCQkJCQl5eXl5bW1kZE4gKi8KLSNk ZWZpbmUgQ0FUQUxPR19WRVJTSU9OX05PCTIwMjYwNjI4MQorI2RlZmluZSBDQVRBTE9HX1ZFUlNJ T05fTk8JMjAyNjA2MjgyCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9tZXNvbi5idWlsZCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKaW5kZXggZmE4 MzZlNGVlMjUuLjNjYjYzZjg1ZGQyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL21l c29uLmJ1aWxkCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKQEAgLTYyLDYg KzYyLDcgQEAgY2F0YWxvZ19oZWFkZXJzID0gWwogICAncGdfcGFyYW1ldGVyX2FjbC5oJywKICAg J3BnX3BhcnRpdGlvbmVkX3RhYmxlLmgnLAogICAncGdfcmFuZ2UuaCcsCisgICdwZ19mb3JtYXRf Y2FzdC5oJywKICAgJ3BnX3RyYW5zZm9ybS5oJywKICAgJ3BnX3NlcXVlbmNlLmgnLAogICAncGdf cHVibGljYXRpb24uaCcsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Zvcm1h dF9jYXN0LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Zvcm1hdF9jYXN0LmgKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmY0NjQ3ZDgyYWEwCi0tLSAvZGV2L251bGwK KysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19mb3JtYXRfY2FzdC5oCkBAIC0wLDAgKzEsNjIg QEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX2Zvcm1hdF9jYXN0LmgKKyAqCSAgZGVm aW5pdGlvbiBvZiB0aGUgImZvcm1hdCBjYXN0IiBzeXN0ZW0gY2F0YWxvZyAocGdfZm9ybWF0X2Nh c3QpCisgKgorICogQSBmb3JtYXQgY2FzdCByZWdpc3RlcnMgYSBmdW5jdGlvbiB0aGF0IGltcGxl bWVudHMKKyAqIENBU1QoZXhwciBBUyB0YXJnZXQgRk9STUFUIGZvcm1hdF9leHByKSBmb3IgYSBw YXJ0aWN1bGFyCisgKiAoc291cmNlIHR5cGUsIHRhcmdldCB0eXBlKSBwYWlyLiAgVGhlIGZvcm1h dCBjYXN0IGZ1bmN0aW9uIHJlY2VpdmVzIHRoZQorICogc291cmNlIHZhbHVlIGFuZCB0aGUgRk9S TUFUIGV4cHJlc3Npb24gKGFzIHRleHQpIGFuZCByZXR1cm5zIHRoZSB0YXJnZXQKKyAqIHR5cGUu ICBUaGlzIGlzIGludGVudGlvbmFsbHkgc2VwYXJhdGUgZnJvbSBwZ19jYXN0OiBvcmRpbmFyeSBj YXN0cyBoYXZlCisgKiBpbXBsaWNpdC9hc3NpZ25tZW50L2V4cGxpY2l0IGNvbnRleHRzIGFuZCBi aW5hcnktY29lcmNpYmxlL1dJVEggSU5PVVQvCisgKiBXSVRIT1VUIEZVTkNUSU9OIG1ldGhvZHMs IHdoZXJlYXMgYSBmb3JtYXR0ZWQgY2FzdCBpcyBhbHdheXMgZXhwbGljaXQgYW5kCisgKiBhbHdh eXMgcmVxdWlyZXMgYSBmdW5jdGlvbi4KKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5 OTYtMjAyNiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25z IENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9y bmlhCisgKgorICogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19mb3JtYXRfY2FzdC5oCisgKgorICog Tk9URVMKKyAqCSAgVGhlIENhdGFsb2cucG0gbW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQgZGVy aXZlcyBzY2hlbWEKKyAqCSAgaW5mb3JtYXRpb24uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg Ki8KKyNpZm5kZWYgUEdfRk9STUFUX0NBU1RfSAorI2RlZmluZSBQR19GT1JNQVRfQ0FTVF9ICisK KyNpbmNsdWRlICJjYXRhbG9nL2dlbmJraS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfZm9ybWF0 X2Nhc3RfZC5oIgkvKiBJV1lVIHByYWdtYTogZXhwb3J0ICovCisKKy8qIC0tLS0tLS0tLS0tLS0t LS0KKyAqCQlwZ19mb3JtYXRfY2FzdCBkZWZpbml0aW9uLiAgY3BwIHR1cm5zIHRoaXMgaW50bwor ICoJCXR5cGVkZWYgc3RydWN0IEZvcm1EYXRhX3BnX2Zvcm1hdF9jYXN0CisgKiAtLS0tLS0tLS0t LS0tLS0tCisgKi8KK0JFR0lOX0NBVEFMT0dfU1RSVUNUCisKK0NBVEFMT0cocGdfZm9ybWF0X2Nh c3QsODY0NyxGb3JtYXRDYXN0UmVsYXRpb25JZCkKK3sKKwlPaWQJCQlvaWQ7CQkJLyogb2lkICov CisJT2lkCQkJZm10c291cmNlIEJLSV9MT09LVVAocGdfdHlwZSk7CS8qIHNvdXJjZSB0eXBlICov CisJT2lkCQkJZm10dGFyZ2V0IEJLSV9MT09LVVAocGdfdHlwZSk7CS8qIHRhcmdldCB0eXBlICov CisJT2lkCQkJZm10ZnVuYyBCS0lfTE9PS1VQKHBnX3Byb2MpOwkvKiBmb3JtYXQgY2FzdCBmdW5j dGlvbiAqLworfSBGb3JtRGF0YV9wZ19mb3JtYXRfY2FzdDsKKworRU5EX0NBVEFMT0dfU1RSVUNU CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAqCQlGb3JtX3BnX2Zvcm1hdF9jYXN0IGNvcnJlc3Bv bmRzIHRvIGEgcG9pbnRlciB0byBhIHR1cGxlIHdpdGgKKyAqCQl0aGUgZm9ybWF0IG9mIHBnX2Zv cm1hdF9jYXN0IHJlbGF0aW9uLgorICogLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIEZv cm1EYXRhX3BnX2Zvcm1hdF9jYXN0ICpGb3JtX3BnX2Zvcm1hdF9jYXN0OworCitERUNMQVJFX1VO SVFVRV9JTkRFWF9QS0VZKHBnX2Zvcm1hdF9jYXN0X29pZF9pbmRleCwgODY0OCwgRm9ybWF0Q2Fz dE9pZEluZGV4SWQsIHBnX2Zvcm1hdF9jYXN0LCBidHJlZShvaWQgb2lkX29wcykpOworREVDTEFS RV9VTklRVUVfSU5ERVgocGdfZm9ybWF0X2Nhc3Rfc291cmNlX3RhcmdldF9pbmRleCwgODY0OSwg Rm9ybWF0Q2FzdFNvdXJjZVRhcmdldEluZGV4SWQsIHBnX2Zvcm1hdF9jYXN0LCBidHJlZShmbXRz b3VyY2Ugb2lkX29wcywgZm10dGFyZ2V0IG9pZF9vcHMpKTsKKworTUFLRV9TWVNDQUNIRShGT1JN QVRDQVNUT0lELCBwZ19mb3JtYXRfY2FzdF9vaWRfaW5kZXgsIDgpOworTUFLRV9TWVNDQUNIRShG T1JNQVRDQVNUU09VUkNFVEFSR0VULCBwZ19mb3JtYXRfY2FzdF9zb3VyY2VfdGFyZ2V0X2luZGV4 LCA4KTsKKworI2VuZGlmCQkJCQkJCS8qIFBHX0ZPUk1BVF9DQVNUX0ggKi8KZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2NvbW1hbmRzL2Zvcm1hdGNhc3QuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRz L2Zvcm1hdGNhc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOGNh ODRhM2I4ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9mb3JtYXRj YXN0LmgKQEAgLTAsMCArMSwyNCBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogZm9ybWF0 Y2FzdC5oCisgKgkgIHByb3RvdHlwZXMgZm9yIGZvcm1hdGNhc3RjbWRzLmMuCisgKgorICoKKyAq IFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI2LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZl bG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9m IHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9jb21tYW5k cy9mb3JtYXRjYXN0LmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lmbmRlZiBGT1JN QVRDQVNUX0gKKyNkZWZpbmUgRk9STUFUQ0FTVF9ICisKKyNpbmNsdWRlICJjYXRhbG9nL29iamVj dGFkZHJlc3MuaCIKKyNpbmNsdWRlICJub2Rlcy9wYXJzZW5vZGVzLmgiCisKK2V4dGVybiBPYmpl Y3RBZGRyZXNzIENyZWF0ZUZvcm1hdENhc3QoQ3JlYXRlRm9ybWF0Q2FzdFN0bXQgKnN0bXQpOwor ZXh0ZXJuIE9pZAlnZXRfZm9ybWF0X2Nhc3Rfb2lkKE9pZCBzb3VyY2V0eXBlaWQsIE9pZCB0YXJn ZXR0eXBlaWQsCisJCQkJCQkJICBib29sIG1pc3Npbmdfb2spOworCisjZW5kaWYJCQkJCQkJLyog Rk9STUFUQ0FTVF9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggNzU5YzZiZmFlNTQuLjcx Mzc0ZGFiMjJlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysr IGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0yNDQ1LDYgKzI0NDUsNyBAQCB0 eXBlZGVmIGVudW0gT2JqZWN0VHlwZQogCU9CSkVDVF9GRFcsCiAJT0JKRUNUX0ZPUkVJR05fU0VS VkVSLAogCU9CSkVDVF9GT1JFSUdOX1RBQkxFLAorCU9CSkVDVF9GT1JNQVRfQ0FTVCwKIAlPQkpF Q1RfRlVOQ1RJT04sCiAJT0JKRUNUX0lOREVYLAogCU9CSkVDVF9MQU5HVUFHRSwKQEAgLTQzNTYs NiArNDM1NywyMiBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVUcmFuc2Zvcm1TdG10CiAJT2JqZWN0 V2l0aEFyZ3MgKnRvc3FsOwogfSBDcmVhdGVUcmFuc2Zvcm1TdG10OwogCisvKiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgKglDUkVBVEUgRk9STUFUIENBU1QgU3RhdGVtZW50CisgKgorICogUmVn aXN0ZXJzIGEgZm9ybWF0IGNhc3QgZnVuY3Rpb24gZm9yIENBU1QoLi4uIEFTIHRhcmdldCBGT1JN QVQgLi4uKSBvbiBhCisgKiAoc291cmNldHlwZSwgdGFyZ2V0dHlwZSkgcGFpci4gIERST1AgRk9S TUFUIENBU1QgcmV1c2VzIHRoZSBnZW5lcmljCisgKiBEcm9wU3RtdCBwYXRoIHdpdGggcmVtb3Zl VHlwZSA9PSBPQkpFQ1RfRk9STUFUX0NBU1QuCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg Ki8KK3R5cGVkZWYgc3RydWN0IENyZWF0ZUZvcm1hdENhc3RTdG10Cit7CisJTm9kZVRhZwkJdHlw ZTsKKwlUeXBlTmFtZSAgICpzb3VyY2V0eXBlOwkJLyogc291cmNlIGRhdGEgdHlwZSAqLworCVR5 cGVOYW1lICAgKnRhcmdldHR5cGU7CQkvKiB0YXJnZXQgZGF0YSB0eXBlICovCisJT2JqZWN0V2l0 aEFyZ3MgKmZ1bmM7CQkvKiBmb3JtYXQgY2FzdCBmdW5jdGlvbiAqLworfSBDcmVhdGVGb3JtYXRD YXN0U3RtdDsKKwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoJCVBSRVBBUkUgU3RhdGVt ZW50CiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90 Y29wL2NtZHRhZ2xpc3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCmluZGV4IGJl ZmFlNWY2YjRmLi5jMWRkYThhYjk1OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0 YWdsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKQEAgLTk1LDYgKzk1 LDcgQEAgUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfRVZFTlRfVFJJR0dFUiwgIkNSRUFURSBFVkVO VCBUUklHR0VSIiwgZmFsc2UsIGZhbHNlLCBmYWwKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX0VY VEVOU0lPTiwgIkNSRUFURSBFWFRFTlNJT04iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURU QUcoQ01EVEFHX0NSRUFURV9GT1JFSUdOX0RBVEFfV1JBUFBFUiwgIkNSRUFURSBGT1JFSUdOIERB VEEgV1JBUFBFUiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRF X0ZPUkVJR05fVEFCTEUsICJDUkVBVEUgRk9SRUlHTiBUQUJMRSIsIHRydWUsIGZhbHNlLCBmYWxz ZSkKK1BHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX0ZPUk1BVF9DQVNULCAiQ1JFQVRFIEZPUk1BVCBD QVNUIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfRlVOQ1RJ T04sICJDUkVBVEUgRlVOQ1RJT04iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01E VEFHX0NSRUFURV9JTkRFWCwgIkNSRUFURSBJTkRFWCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBH X0NNRFRBRyhDTURUQUdfQ1JFQVRFX0xBTkdVQUdFLCAiQ1JFQVRFIExBTkdVQUdFIiwgdHJ1ZSwg ZmFsc2UsIGZhbHNlKQpAQCAtMTQ4LDYgKzE0OSw3IEBAIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9F VkVOVF9UUklHR0VSLCAiRFJPUCBFVkVOVCBUUklHR0VSIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkK IFBHX0NNRFRBRyhDTURUQUdfRFJPUF9FWFRFTlNJT04sICJEUk9QIEVYVEVOU0lPTiIsIHRydWUs IGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9GT1JFSUdOX0RBVEFfV1JBUFBF UiwgIkRST1AgRk9SRUlHTiBEQVRBIFdSQVBQRVIiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19D TURUQUcoQ01EVEFHX0RST1BfRk9SRUlHTl9UQUJMRSwgIkRST1AgRk9SRUlHTiBUQUJMRSIsIHRy dWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfRFJPUF9GT1JNQVRfQ0FTVCwgIkRS T1AgRk9STUFUIENBU1QiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RS T1BfRlVOQ1RJT04sICJEUk9QIEZVTkNUSU9OIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01E VEFHKENNRFRBR19EUk9QX0lOREVYLCAiRFJPUCBJTkRFWCIsIHRydWUsIGZhbHNlLCBmYWxzZSkK IFBHX0NNRFRBRyhDTURUQUdfRFJPUF9MQU5HVUFHRSwgIkRST1AgTEFOR1VBR0UiLCB0cnVlLCBm YWxzZSwgZmFsc2UpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcm1h dF9jYXN0cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcm1hdF9jYXN0cy5vdXQK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJhZTRjYTBkMGQwCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JtYXRfY2FzdHMub3V0 CkBAIC0wLDAgKzEsMTU2IEBACistLQorLS0gRk9STUFUIENBU1RTCistLQorLS0gQ1JFQVRFL0RS T1AgRk9STUFUIENBU1QgcmVnaXN0ZXJzIGZvcm1hdCBjYXN0IG1ldGFkYXRhIGluIHBnX2Zvcm1h dF9jYXN0LAorLS0ga2V5ZWQgYnkgYSAoc291cmNlIHR5cGUsIHRhcmdldCB0eXBlKSBwYWlyLiAg VGhpcyBpcyBjYXRhbG9nIGFuZCBEREwKKy0tIGluZnJhc3RydWN0dXJlIG9ubHk7IGl0IGRvZXMg bm90IHRyYW5zZm9ybSBvciBleGVjdXRlIGZvcm1hdHRlZCBjYXN0cy4KKy0tIEEgc2ltcGxlIGZv cm1hdCBjYXN0IGZ1bmN0aW9uIHdpdGggdGhlIHJlcXVpcmVkIHNpZ25hdHVyZQorLS0gICBmdW5j dGlvbihzb3VyY2VfdHlwZSwgdGV4dCkgcmV0dXJucyB0YXJnZXRfdHlwZQorQ1JFQVRFIEZVTkNU SU9OIGludDRfdG9fdGV4dF9mbXQoaW50ZWdlciwgdGV4dCkgUkVUVVJOUyB0ZXh0CisJTEFOR1VB R0Ugc3FsIElNTVVUQUJMRSBSRVRVUk4gJDE6OnRleHQgfHwgJzonIHx8ICQyOworQ1JFQVRFIEZP Uk1BVCBDQVNUIChpbnRlZ2VyIEFTIHRleHQpCisJV0lUSCBGVU5DVElPTiBpbnQ0X3RvX3RleHRf Zm10KGludGVnZXIsIHRleHQpOworLS0gSXQgc2hvd3MgdXAgaW4gdGhlIGNhdGFsb2cgKHVzZSBy ZWd0eXBlL3JlZ3Byb2NlZHVyZSwgbm90IHJhdyBPSURzKQorU0VMRUNUIGZtdHNvdXJjZTo6cmVn dHlwZSwgZm10dGFyZ2V0OjpyZWd0eXBlLCBmbXRmdW5jOjpyZWdwcm9jZWR1cmUKKwlGUk9NIHBn X2Zvcm1hdF9jYXN0CisJV0hFUkUgZm10c291cmNlID0gJ2ludGVnZXInOjpyZWd0eXBlIEFORCBm bXR0YXJnZXQgPSAndGV4dCc6OnJlZ3R5cGU7CisgZm10c291cmNlIHwgZm10dGFyZ2V0IHwgICAg ICAgICAgICBmbXRmdW5jICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBpbnRlZ2VyICAgfCB0ZXh0ICAgICAgfCBp bnQ0X3RvX3RleHRfZm10KGludGVnZXIsdGV4dCkKKygxIHJvdykKKworLS0gLi4uIGFuZCBhcyBh IGZpcnN0LWNsYXNzIG9iamVjdAorU0VMRUNUIHBnX2Rlc2NyaWJlX29iamVjdCgncGdfZm9ybWF0 X2Nhc3QnOjpyZWdjbGFzcywgb2lkLCAwKQorCUZST00gcGdfZm9ybWF0X2Nhc3QKKwlXSEVSRSBm bXRzb3VyY2UgPSAnaW50ZWdlcic6OnJlZ3R5cGUgQU5EIGZtdHRhcmdldCA9ICd0ZXh0Jzo6cmVn dHlwZTsKKyAgICAgICAgcGdfZGVzY3JpYmVfb2JqZWN0ICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmb3JtYXQgY2FzdCBmcm9tIGludGVnZXIgdG8gdGV4dAor KDEgcm93KQorCistLSBPYmplY3QgaWRlbnRpdHkgYW5kIENPTU1FTlQgdXNlICJGT1JNQVQgQ0FT VCAoc291cmNlIEFTIHRhcmdldCkiIChubyAiRk9SIENBU1QiKS4KK1NFTEVDVCBpZGVudGl0eSBG Uk9NIHBnX2lkZW50aWZ5X29iamVjdCgncGdfZm9ybWF0X2Nhc3QnOjpyZWdjbGFzcywKKwkoU0VM RUNUIG9pZCBGUk9NIHBnX2Zvcm1hdF9jYXN0CisJIFdIRVJFIGZtdHNvdXJjZSA9ICdpbnRlZ2Vy Jzo6cmVndHlwZSBBTkQgZm10dGFyZ2V0ID0gJ3RleHQnOjpyZWd0eXBlKSwgMCk7CisgICAgICAg ICAgIGlkZW50aXR5ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IChpbnRlZ2VyIEFTIHBnX2NhdGFsb2cudGV4dCkKKygxIHJvdykKKworQ09NTUVOVCBPTiBGT1JN QVQgQ0FTVCAoaW50ZWdlciBBUyB0ZXh0KSBJUyAnZGVtbyBmb3JtYXQgY2FzdCc7CitTRUxFQ1Qg b2JqX2Rlc2NyaXB0aW9uKChTRUxFQ1Qgb2lkIEZST00gcGdfZm9ybWF0X2Nhc3QKKwlXSEVSRSBm bXRzb3VyY2UgPSAnaW50ZWdlcic6OnJlZ3R5cGUgQU5EIGZtdHRhcmdldCA9ICd0ZXh0Jzo6cmVn dHlwZSksCisJJ3BnX2Zvcm1hdF9jYXN0Jyk7Cisgb2JqX2Rlc2NyaXB0aW9uICAKKy0tLS0tLS0t LS0tLS0tLS0tLQorIGRlbW8gZm9ybWF0IGNhc3QKKygxIHJvdykKKworQ09NTUVOVCBPTiBGT1JN QVQgQ0FTVCAoaW50ZWdlciBBUyB0ZXh0KSBJUyBOVUxMOworLS0gcGdfaWRlbnRpZnlfb2JqZWN0 X2FzX2FkZHJlc3MoKSBtdXN0IHJvdW5kLXRyaXAgYmFjayB0aHJvdWdoCistLSBwZ19nZXRfb2Jq ZWN0X2FkZHJlc3MoKSB0byB0aGUgc2FtZSBjYXRhbG9nIG9iamVjdC4KK1dJVEggZm10IEFTICgK KwlTRUxFQ1Qgb2lkIEZST00gcGdfZm9ybWF0X2Nhc3QKKwlXSEVSRSBmbXRzb3VyY2UgPSAnaW50 ZWdlcic6OnJlZ3R5cGUgQU5EIGZtdHRhcmdldCA9ICd0ZXh0Jzo6cmVndHlwZQorKSwgYWRkciBB UyAoCisJU0VMRUNUICogRlJPTSBwZ19pZGVudGlmeV9vYmplY3RfYXNfYWRkcmVzcygncGdfZm9y bWF0X2Nhc3QnOjpyZWdjbGFzcywKKwkJCQkJCQkJCQkJCShTRUxFQ1Qgb2lkIEZST00gZm10KSwg MCkKKykKK1NFTEVDVCBhZGRyLnR5cGUsIGFkZHIub2JqZWN0X25hbWVzLCBhZGRyLm9iamVjdF9h cmdzLAorCSAgIChTRUxFQ1QgY2xhc3NpZCA9ICdwZ19mb3JtYXRfY2FzdCc6OnJlZ2NsYXNzCisJ CQkgICBBTkQgb2JqaWQgPSAoU0VMRUNUIG9pZCBGUk9NIGZtdCkKKwkJCSAgIEFORCBvYmpzdWJp ZCA9IDAKKwkJRlJPTSBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoYWRkci50eXBlLCBhZGRyLm9iamVj dF9uYW1lcywgYWRkci5vYmplY3RfYXJncykpCisJICAgQVMgcm91bmRfdHJpcHMKKwlGUk9NIGFk ZHI7CisgICAgdHlwZSAgICAgfCBvYmplY3RfbmFtZXMgfCAgICBvYmplY3RfYXJncyAgICB8IHJv dW5kX3RyaXBzIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0KKyBmb3JtYXQgY2FzdCB8IHtpbnRlZ2VyfSAgICB8IHtwZ19jYXRh bG9nLnRleHR9IHwgdAorKDEgcm93KQorCistLSBPbmx5IG9uZSBmb3JtYXQgY2FzdCBwZXIgKHNv dXJjZSwgdGFyZ2V0KSBwYWlyCitDUkVBVEUgRk9STUFUIENBU1QgKGludGVnZXIgQVMgdGV4dCkK KwlXSVRIIEZVTkNUSU9OIGludDRfdG9fdGV4dF9mbXQoaW50ZWdlciwgdGV4dCk7CitFUlJPUjog IGZvcm1hdCBjYXN0IGZyb20gdHlwZSBpbnRlZ2VyIHRvIHR5cGUgdGV4dCBhbHJlYWR5IGV4aXN0 cworLS0gRnVuY3Rpb24gc2lnbmF0dXJlIHZhbGlkYXRpb24KK0NSRUFURSBGVU5DVElPTiBmbXRf YmFkX25hcmdzKGludGVnZXIpIFJFVFVSTlMgdGV4dAorCUxBTkdVQUdFIHNxbCBJTU1VVEFCTEUg UkVUVVJOICQxOjp0ZXh0OworQ1JFQVRFIEZPUk1BVCBDQVNUIChpbnRlZ2VyIEFTIHRleHQpCisJ V0lUSCBGVU5DVElPTiBmbXRfYmFkX25hcmdzKGludGVnZXIpOwkJCS0tIHdyb25nICMgb2YgYXJn dW1lbnRzCitFUlJPUjogIGZvcm1hdCBjYXN0IGZ1bmN0aW9uIG11c3QgdGFrZSBleGFjdGx5IHR3 byBhcmd1bWVudHMKK0NSRUFURSBGVU5DVElPTiBmbXRfYmFkX2FyZzIoaW50ZWdlciwgaW50ZWdl cikgUkVUVVJOUyB0ZXh0CisJTEFOR1VBR0Ugc3FsIElNTVVUQUJMRSBSRVRVUk4gJDE6OnRleHQ7 CitDUkVBVEUgRk9STUFUIENBU1QgKGludGVnZXIgQVMgdGV4dCkKKwlXSVRIIEZVTkNUSU9OIGZt dF9iYWRfYXJnMihpbnRlZ2VyLCBpbnRlZ2VyKTsJLS0gc2Vjb25kIGFyZyBub3QgdGV4dAorRVJS T1I6ICBzZWNvbmQgYXJndW1lbnQgb2YgZm9ybWF0IGNhc3QgZnVuY3Rpb24gbXVzdCBiZSB0eXBl IHRleHQKK0NSRUFURSBGVU5DVElPTiBmbXRfYmFkX2FyZzEoYmlnaW50LCB0ZXh0KSBSRVRVUk5T IHRleHQKKwlMQU5HVUFHRSBzcWwgSU1NVVRBQkxFIFJFVFVSTiAkMTo6dGV4dDsKK0NSRUFURSBG T1JNQVQgQ0FTVCAoaW50ZWdlciBBUyB0ZXh0KQorCVdJVEggRlVOQ1RJT04gZm10X2JhZF9hcmcx KGJpZ2ludCwgdGV4dCk7CQktLSBmaXJzdCBhcmcgbWlzbWF0Y2gKK0VSUk9SOiAgZmlyc3QgYXJn dW1lbnQgb2YgZm9ybWF0IGNhc3QgZnVuY3Rpb24gbXVzdCBiZSB0eXBlIGludGVnZXIKK0NSRUFU RSBGVU5DVElPTiBmbXRfYmFkX3JldChpbnRlZ2VyLCB0ZXh0KSBSRVRVUk5TIGJvb2xlYW4KKwlM QU5HVUFHRSBzcWwgSU1NVVRBQkxFIFJFVFVSTiB0cnVlOworQ1JFQVRFIEZPUk1BVCBDQVNUIChp bnRlZ2VyIEFTIHRleHQpCisJV0lUSCBGVU5DVElPTiBmbXRfYmFkX3JldChpbnRlZ2VyLCB0ZXh0 KTsJCS0tIHJldHVybiB0eXBlIG1pc21hdGNoCitFUlJPUjogIHJldHVybiBkYXRhIHR5cGUgb2Yg Zm9ybWF0IGNhc3QgZnVuY3Rpb24gbXVzdCBiZSB0eXBlIHRleHQKK0NSRUFURSBGVU5DVElPTiBm bXRfYmFkX3NldChpbnRlZ2VyLCB0ZXh0KSBSRVRVUk5TIFNFVE9GIHRleHQKKwlMQU5HVUFHRSBz cWwgSU1NVVRBQkxFIEFTICQkIFNFTEVDVCAkMTo6dGV4dCAkJDsKK0NSRUFURSBGT1JNQVQgQ0FT VCAoaW50ZWdlciBBUyB0ZXh0KQorCVdJVEggRlVOQ1RJT04gZm10X2JhZF9zZXQoaW50ZWdlciwg dGV4dCk7CQktLSBzZXQtcmV0dXJuaW5nIHJlamVjdGVkCitFUlJPUjogIGZvcm1hdCBjYXN0IGZ1 bmN0aW9uIG11c3Qgbm90IHJldHVybiBhIHNldAorLS0gTm8gcHNldWRvLXR5cGVzCitDUkVBVEUg RlVOQ1RJT04gZm10X2FueWVsKGFueWVsZW1lbnQsIHRleHQpIFJFVFVSTlMgdGV4dAorCUxBTkdV QUdFIHNxbCBJTU1VVEFCTEUgQVMgJCQgU0VMRUNUICQyICQkOworQ1JFQVRFIEZPUk1BVCBDQVNU IChhbnllbGVtZW50IEFTIHRleHQpCisJV0lUSCBGVU5DVElPTiBmbXRfYW55ZWwoYW55ZWxlbWVu dCwgdGV4dCk7CitFUlJPUjogIHNvdXJjZSBkYXRhIHR5cGUgYW55ZWxlbWVudCBpcyBhIHBzZXVk by10eXBlCistLSBSZWdpc3RlcmluZyBhIGZvcm1hdCBjYXN0IGRvZXMgbm90IGVuYWJsZSBhIGZv cm1hdHRlZCBjYXN0OiB0aGUgRk9STUFUCistLSBjbGF1c2UgbXVzdCBub3QgYmUgc2lsZW50bHkg aWdub3JlZCBvciByZXdyaXR0ZW4gdG8gYSBidWlsdC1pbiBmdW5jdGlvbiwKKy0tIHNvIENBU1Qo Li4uIEZPUk1BVCAuLi4pIGlzIHJlamVjdGVkIGR1cmluZyBwYXJzZSBhbmFseXNpcy4KK1NFTEVD VCBDQVNUKDUgQVMgdGV4dCBGT1JNQVQgJ1lZWVknKTsKK0VSUk9SOiAgZm9ybWF0dGVkIGNhc3Rz IGFyZSBub3QgaW1wbGVtZW50ZWQgeWV0CitMSU5FIDE6IFNFTEVDVCBDQVNUKDUgQVMgdGV4dCBG T1JNQVQgJ1lZWVknKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitE RVRBSUw6ICBObyBmb3JtYXQgY2FzdCByZXNvbHV0aW9uIG1lY2hhbmlzbSBpcyBhdmFpbGFibGUu CistLSBEZXBlbmRlbmN5IGJlaGF2aW9yOiB0aGUgZm9ybWF0IGNhc3QgZGVwZW5kcyBvbiBpdHMg ZnVuY3Rpb24uCitEUk9QIEZVTkNUSU9OIGludDRfdG9fdGV4dF9mbXQoaW50ZWdlciwgdGV4dCk7 CQkJCS0tIGZhaWxzIChSRVNUUklDVCkKK0VSUk9SOiAgY2Fubm90IGRyb3AgZnVuY3Rpb24gaW50 NF90b190ZXh0X2ZtdChpbnRlZ2VyLHRleHQpIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQg b24gaXQKK0RFVEFJTDogIGZvcm1hdCBjYXN0IGZyb20gaW50ZWdlciB0byB0ZXh0IGRlcGVuZHMg b24gZnVuY3Rpb24gaW50NF90b190ZXh0X2ZtdChpbnRlZ2VyLHRleHQpCitISU5UOiAgVXNlIERS T1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorRFJPUCBG VU5DVElPTiBpbnQ0X3RvX3RleHRfZm10KGludGVnZXIsIHRleHQpIENBU0NBREU7CQktLSBkcm9w cyBmb3JtYXQgY2FzdAorTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBmb3JtYXQgY2FzdCBmcm9t IGludGVnZXIgdG8gdGV4dAorU0VMRUNUIGNvdW50KCopIEZST00gcGdfZm9ybWF0X2Nhc3QKKwlX SEVSRSBmbXRzb3VyY2UgPSAnaW50ZWdlcic6OnJlZ3R5cGUgQU5EIGZtdHRhcmdldCA9ICd0ZXh0 Jzo6cmVndHlwZTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCistLSBQcml2 aWxlZ2VzOiB0aGUgY3JlYXRvciBtdXN0IG93biB0aGUgc291cmNlIG9yIHRoZSB0YXJnZXQgdHlw ZS4gIChUaGUKKy0tIG93bmVyc2hpcCBjaGVjayBoYXBwZW5zIGJlZm9yZSB0aGUgZnVuY3Rpb24g aXMgbG9va2VkIHVwLCBzbyB0aGUgZnVuY3Rpb24KKy0tIG5hbWUgaGVyZSBpcyBpcnJlbGV2YW50 LikKK0NSRUFURSBST0xFIHJlZ3Jlc3NfZm9ybWF0X2Nhc3RfdXNlcjsKK1NFVCBST0xFIHJlZ3Jl c3NfZm9ybWF0X2Nhc3RfdXNlcjsKK0NSRUFURSBGT1JNQVQgQ0FTVCAodGV4dCBBUyBpbnRlZ2Vy KQorCVdJVEggRlVOQ1RJT04gcGdfY2F0YWxvZy5sZW5ndGgodGV4dCk7CitFUlJPUjogIG11c3Qg YmUgb3duZXIgb2YgdHlwZSB0ZXh0IG9yIHR5cGUgaW50ZWdlcgorUkVTRVQgUk9MRTsKK0RST1Ag Uk9MRSByZWdyZXNzX2Zvcm1hdF9jYXN0X3VzZXI7CistLSBEUk9QIEZPUk1BVCBDQVNULCBpbmNs dWRpbmcgSUYgRVhJU1RTCitDUkVBVEUgRlVOQ1RJT04gaW50NF90b190ZXh0X2ZtdChpbnRlZ2Vy LCB0ZXh0KSBSRVRVUk5TIHRleHQKKwlMQU5HVUFHRSBzcWwgSU1NVVRBQkxFIFJFVFVSTiAkMTo6 dGV4dCB8fCAnOicgfHwgJDI7CitDUkVBVEUgRk9STUFUIENBU1QgKGludGVnZXIgQVMgdGV4dCkK KwlXSVRIIEZVTkNUSU9OIGludDRfdG9fdGV4dF9mbXQoaW50ZWdlciwgdGV4dCk7CitEUk9QIEZP Uk1BVCBDQVNUIChpbnRlZ2VyIEFTIHRleHQpOworRFJPUCBGT1JNQVQgQ0FTVCAoaW50ZWdlciBB UyB0ZXh0KTsJCQkJCS0tIGZhaWxzLCBnb25lCitFUlJPUjogIGZvcm1hdCBjYXN0IGZyb20gdHlw ZSBpbnRlZ2VyIHRvIHR5cGUgdGV4dCBkb2VzIG5vdCBleGlzdAorRFJPUCBGT1JNQVQgQ0FTVCBJ RiBFWElTVFMgKGludGVnZXIgQVMgdGV4dCk7CQktLSBub3RpY2UsIG5vIGVycm9yCitOT1RJQ0U6 ICBmb3JtYXQgY2FzdCBmcm9tIHR5cGUgaW50ZWdlciB0byB0eXBlIHRleHQgZG9lcyBub3QgZXhp c3QsIHNraXBwaW5nCistLSBDbGVhbiB1cAorRFJPUCBGVU5DVElPTiBpbnQ0X3RvX3RleHRfZm10 KGludGVnZXIsIHRleHQpOworRFJPUCBGVU5DVElPTiBmbXRfYmFkX25hcmdzKGludGVnZXIpOwor RFJPUCBGVU5DVElPTiBmbXRfYmFkX2FyZzIoaW50ZWdlciwgaW50ZWdlcik7CitEUk9QIEZVTkNU SU9OIGZtdF9iYWRfYXJnMShiaWdpbnQsIHRleHQpOworRFJPUCBGVU5DVElPTiBmbXRfYmFkX3Jl dChpbnRlZ2VyLCB0ZXh0KTsKK0RST1AgRlVOQ1RJT04gZm10X2JhZF9zZXQoaW50ZWdlciwgdGV4 dCk7CitEUk9QIEZVTkNUSU9OIGZtdF9hbnllbChhbnllbGVtZW50LCB0ZXh0KTsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKaW5kZXggZDY0MTY5YjdiZjAuLmNmZTNlMzk3NzBl IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dApAQCAtMjU3LDYgKzI1Nyw5 IEBAIE5PVElDRTogIGNoZWNraW5nIHBnX3JhbmdlIHtybmdtbHRjb25zdHJ1Y3QxfSA9PiBwZ19w cm9jIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19yYW5nZSB7cm5nbWx0Y29uc3RydWN0Mn0g PT4gcGdfcHJvYyB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfcmFuZ2Uge3JuZ2Nhbm9uaWNh bH0gPT4gcGdfcHJvYyB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfcmFuZ2Uge3JuZ3N1YmRp ZmZ9ID0+IHBnX3Byb2Mge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX2Zvcm1hdF9jYXN0IHtm bXRzb3VyY2V9ID0+IHBnX3R5cGUge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX2Zvcm1hdF9j YXN0IHtmbXR0YXJnZXR9ID0+IHBnX3R5cGUge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX2Zv cm1hdF9jYXN0IHtmbXRmdW5jfSA9PiBwZ19wcm9jIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBw Z190cmFuc2Zvcm0ge3RyZnR5cGV9ID0+IHBnX3R5cGUge29pZH0KIE5PVElDRTogIGNoZWNraW5n IHBnX3RyYW5zZm9ybSB7dHJmbGFuZ30gPT4gcGdfbGFuZ3VhZ2Uge29pZH0KIE5PVElDRTogIGNo ZWNraW5nIHBnX3RyYW5zZm9ybSB7dHJmZnJvbXNxbH0gPT4gcGdfcHJvYyB7b2lkfQpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jl c3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggOGZhMGE2YzQ3ZmIuLmYxYmY4ZjY1MDRiIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTQ4LDcgKzQ4LDcgQEAgdGVzdDogY3JlYXRl X2luZGV4IGNyZWF0ZV9pbmRleF9zcGdpc3QgY3JlYXRlX3ZpZXcgaW5kZXhfaW5jbHVkaW5nIGlu ZGV4X2luY2x1ZGkKICMgLS0tLS0tLS0tLQogIyBBbm90aGVyIGdyb3VwIG9mIHBhcmFsbGVsIHRl c3RzCiAjIC0tLS0tLS0tLS0KLXRlc3Q6IGNyZWF0ZV9hZ2dyZWdhdGUgY3JlYXRlX2Z1bmN0aW9u X3NxbCBjcmVhdGVfY2FzdCBjb25zdHJhaW50cyB0cmlnZ2VycyBzZWxlY3QgaW5oZXJpdCB0eXBl ZF90YWJsZSB2YWN1dW0gZHJvcF9pZl9leGlzdHMgdXBkYXRhYmxlX3ZpZXdzIHJvbGVhdHRyaWJ1 dGVzIGNyZWF0ZV9hbSBoYXNoX2Z1bmMgZXJyb3JzIGluZmluaXRlX3JlY3Vyc2UgY3JlYXRlX3By b3BlcnR5X2dyYXBoIGZvcl9wb3J0aW9uX29mCit0ZXN0OiBjcmVhdGVfYWdncmVnYXRlIGNyZWF0 ZV9mdW5jdGlvbl9zcWwgY3JlYXRlX2Nhc3QgZm9ybWF0X2Nhc3RzIGNvbnN0cmFpbnRzIHRyaWdn ZXJzIHNlbGVjdCBpbmhlcml0IHR5cGVkX3RhYmxlIHZhY3V1bSBkcm9wX2lmX2V4aXN0cyB1cGRh dGFibGVfdmlld3Mgcm9sZWF0dHJpYnV0ZXMgY3JlYXRlX2FtIGhhc2hfZnVuYyBlcnJvcnMgaW5m aW5pdGVfcmVjdXJzZSBjcmVhdGVfcHJvcGVydHlfZ3JhcGggZm9yX3BvcnRpb25fb2YKIAogIyAt LS0tLS0tLS0tCiAjIHNhbml0eV9jaGVjayBkb2VzIGEgdmFjdXVtLCBhZmZlY3RpbmcgdGhlIHNv cnQgb3JkZXIgb2YgU0VMRUNUICoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zv cm1hdF9jYXN0cy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JtYXRfY2FzdHMuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40NDUzYTA5Nzg0ZQotLS0gL2Rl di9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcm1hdF9jYXN0cy5zcWwKQEAgLTAs MCArMSwxMjYgQEAKKy0tCistLSBGT1JNQVQgQ0FTVFMKKy0tCistLSBDUkVBVEUvRFJPUCBGT1JN QVQgQ0FTVCByZWdpc3RlcnMgZm9ybWF0IGNhc3QgbWV0YWRhdGEgaW4gcGdfZm9ybWF0X2Nhc3Qs CistLSBrZXllZCBieSBhIChzb3VyY2UgdHlwZSwgdGFyZ2V0IHR5cGUpIHBhaXIuICBUaGlzIGlz IGNhdGFsb2cgYW5kIERETAorLS0gaW5mcmFzdHJ1Y3R1cmUgb25seTsgaXQgZG9lcyBub3QgdHJh bnNmb3JtIG9yIGV4ZWN1dGUgZm9ybWF0dGVkIGNhc3RzLgorCistLSBBIHNpbXBsZSBmb3JtYXQg Y2FzdCBmdW5jdGlvbiB3aXRoIHRoZSByZXF1aXJlZCBzaWduYXR1cmUKKy0tICAgZnVuY3Rpb24o c291cmNlX3R5cGUsIHRleHQpIHJldHVybnMgdGFyZ2V0X3R5cGUKK0NSRUFURSBGVU5DVElPTiBp bnQ0X3RvX3RleHRfZm10KGludGVnZXIsIHRleHQpIFJFVFVSTlMgdGV4dAorCUxBTkdVQUdFIHNx bCBJTU1VVEFCTEUgUkVUVVJOICQxOjp0ZXh0IHx8ICc6JyB8fCAkMjsKKworQ1JFQVRFIEZPUk1B VCBDQVNUIChpbnRlZ2VyIEFTIHRleHQpCisJV0lUSCBGVU5DVElPTiBpbnQ0X3RvX3RleHRfZm10 KGludGVnZXIsIHRleHQpOworCistLSBJdCBzaG93cyB1cCBpbiB0aGUgY2F0YWxvZyAodXNlIHJl Z3R5cGUvcmVncHJvY2VkdXJlLCBub3QgcmF3IE9JRHMpCitTRUxFQ1QgZm10c291cmNlOjpyZWd0 eXBlLCBmbXR0YXJnZXQ6OnJlZ3R5cGUsIGZtdGZ1bmM6OnJlZ3Byb2NlZHVyZQorCUZST00gcGdf Zm9ybWF0X2Nhc3QKKwlXSEVSRSBmbXRzb3VyY2UgPSAnaW50ZWdlcic6OnJlZ3R5cGUgQU5EIGZt dHRhcmdldCA9ICd0ZXh0Jzo6cmVndHlwZTsKKworLS0gLi4uIGFuZCBhcyBhIGZpcnN0LWNsYXNz IG9iamVjdAorU0VMRUNUIHBnX2Rlc2NyaWJlX29iamVjdCgncGdfZm9ybWF0X2Nhc3QnOjpyZWdj bGFzcywgb2lkLCAwKQorCUZST00gcGdfZm9ybWF0X2Nhc3QKKwlXSEVSRSBmbXRzb3VyY2UgPSAn aW50ZWdlcic6OnJlZ3R5cGUgQU5EIGZtdHRhcmdldCA9ICd0ZXh0Jzo6cmVndHlwZTsKKworLS0g T2JqZWN0IGlkZW50aXR5IGFuZCBDT01NRU5UIHVzZSAiRk9STUFUIENBU1QgKHNvdXJjZSBBUyB0 YXJnZXQpIiAobm8gIkZPUiBDQVNUIikuCitTRUxFQ1QgaWRlbnRpdHkgRlJPTSBwZ19pZGVudGlm eV9vYmplY3QoJ3BnX2Zvcm1hdF9jYXN0Jzo6cmVnY2xhc3MsCisJKFNFTEVDVCBvaWQgRlJPTSBw Z19mb3JtYXRfY2FzdAorCSBXSEVSRSBmbXRzb3VyY2UgPSAnaW50ZWdlcic6OnJlZ3R5cGUgQU5E IGZtdHRhcmdldCA9ICd0ZXh0Jzo6cmVndHlwZSksIDApOworQ09NTUVOVCBPTiBGT1JNQVQgQ0FT VCAoaW50ZWdlciBBUyB0ZXh0KSBJUyAnZGVtbyBmb3JtYXQgY2FzdCc7CitTRUxFQ1Qgb2JqX2Rl c2NyaXB0aW9uKChTRUxFQ1Qgb2lkIEZST00gcGdfZm9ybWF0X2Nhc3QKKwlXSEVSRSBmbXRzb3Vy Y2UgPSAnaW50ZWdlcic6OnJlZ3R5cGUgQU5EIGZtdHRhcmdldCA9ICd0ZXh0Jzo6cmVndHlwZSks CisJJ3BnX2Zvcm1hdF9jYXN0Jyk7CitDT01NRU5UIE9OIEZPUk1BVCBDQVNUIChpbnRlZ2VyIEFT IHRleHQpIElTIE5VTEw7CisKKy0tIHBnX2lkZW50aWZ5X29iamVjdF9hc19hZGRyZXNzKCkgbXVz dCByb3VuZC10cmlwIGJhY2sgdGhyb3VnaAorLS0gcGdfZ2V0X29iamVjdF9hZGRyZXNzKCkgdG8g dGhlIHNhbWUgY2F0YWxvZyBvYmplY3QuCitXSVRIIGZtdCBBUyAoCisJU0VMRUNUIG9pZCBGUk9N IHBnX2Zvcm1hdF9jYXN0CisJV0hFUkUgZm10c291cmNlID0gJ2ludGVnZXInOjpyZWd0eXBlIEFO RCBmbXR0YXJnZXQgPSAndGV4dCc6OnJlZ3R5cGUKKyksIGFkZHIgQVMgKAorCVNFTEVDVCAqIEZS T00gcGdfaWRlbnRpZnlfb2JqZWN0X2FzX2FkZHJlc3MoJ3BnX2Zvcm1hdF9jYXN0Jzo6cmVnY2xh c3MsCisJCQkJCQkJCQkJCQkoU0VMRUNUIG9pZCBGUk9NIGZtdCksIDApCispCitTRUxFQ1QgYWRk ci50eXBlLCBhZGRyLm9iamVjdF9uYW1lcywgYWRkci5vYmplY3RfYXJncywKKwkgICAoU0VMRUNU IGNsYXNzaWQgPSAncGdfZm9ybWF0X2Nhc3QnOjpyZWdjbGFzcworCQkJICAgQU5EIG9iamlkID0g KFNFTEVDVCBvaWQgRlJPTSBmbXQpCisJCQkgICBBTkQgb2Jqc3ViaWQgPSAwCisJCUZST00gcGdf Z2V0X29iamVjdF9hZGRyZXNzKGFkZHIudHlwZSwgYWRkci5vYmplY3RfbmFtZXMsIGFkZHIub2Jq ZWN0X2FyZ3MpKQorCSAgIEFTIHJvdW5kX3RyaXBzCisJRlJPTSBhZGRyOworCistLSBPbmx5IG9u ZSBmb3JtYXQgY2FzdCBwZXIgKHNvdXJjZSwgdGFyZ2V0KSBwYWlyCitDUkVBVEUgRk9STUFUIENB U1QgKGludGVnZXIgQVMgdGV4dCkKKwlXSVRIIEZVTkNUSU9OIGludDRfdG9fdGV4dF9mbXQoaW50 ZWdlciwgdGV4dCk7CisKKy0tIEZ1bmN0aW9uIHNpZ25hdHVyZSB2YWxpZGF0aW9uCitDUkVBVEUg RlVOQ1RJT04gZm10X2JhZF9uYXJncyhpbnRlZ2VyKSBSRVRVUk5TIHRleHQKKwlMQU5HVUFHRSBz cWwgSU1NVVRBQkxFIFJFVFVSTiAkMTo6dGV4dDsKK0NSRUFURSBGT1JNQVQgQ0FTVCAoaW50ZWdl ciBBUyB0ZXh0KQorCVdJVEggRlVOQ1RJT04gZm10X2JhZF9uYXJncyhpbnRlZ2VyKTsJCQktLSB3 cm9uZyAjIG9mIGFyZ3VtZW50cworCitDUkVBVEUgRlVOQ1RJT04gZm10X2JhZF9hcmcyKGludGVn ZXIsIGludGVnZXIpIFJFVFVSTlMgdGV4dAorCUxBTkdVQUdFIHNxbCBJTU1VVEFCTEUgUkVUVVJO ICQxOjp0ZXh0OworQ1JFQVRFIEZPUk1BVCBDQVNUIChpbnRlZ2VyIEFTIHRleHQpCisJV0lUSCBG VU5DVElPTiBmbXRfYmFkX2FyZzIoaW50ZWdlciwgaW50ZWdlcik7CS0tIHNlY29uZCBhcmcgbm90 IHRleHQKKworQ1JFQVRFIEZVTkNUSU9OIGZtdF9iYWRfYXJnMShiaWdpbnQsIHRleHQpIFJFVFVS TlMgdGV4dAorCUxBTkdVQUdFIHNxbCBJTU1VVEFCTEUgUkVUVVJOICQxOjp0ZXh0OworQ1JFQVRF IEZPUk1BVCBDQVNUIChpbnRlZ2VyIEFTIHRleHQpCisJV0lUSCBGVU5DVElPTiBmbXRfYmFkX2Fy ZzEoYmlnaW50LCB0ZXh0KTsJCS0tIGZpcnN0IGFyZyBtaXNtYXRjaAorCitDUkVBVEUgRlVOQ1RJ T04gZm10X2JhZF9yZXQoaW50ZWdlciwgdGV4dCkgUkVUVVJOUyBib29sZWFuCisJTEFOR1VBR0Ug c3FsIElNTVVUQUJMRSBSRVRVUk4gdHJ1ZTsKK0NSRUFURSBGT1JNQVQgQ0FTVCAoaW50ZWdlciBB UyB0ZXh0KQorCVdJVEggRlVOQ1RJT04gZm10X2JhZF9yZXQoaW50ZWdlciwgdGV4dCk7CQktLSBy ZXR1cm4gdHlwZSBtaXNtYXRjaAorCitDUkVBVEUgRlVOQ1RJT04gZm10X2JhZF9zZXQoaW50ZWdl ciwgdGV4dCkgUkVUVVJOUyBTRVRPRiB0ZXh0CisJTEFOR1VBR0Ugc3FsIElNTVVUQUJMRSBBUyAk JCBTRUxFQ1QgJDE6OnRleHQgJCQ7CitDUkVBVEUgRk9STUFUIENBU1QgKGludGVnZXIgQVMgdGV4 dCkKKwlXSVRIIEZVTkNUSU9OIGZtdF9iYWRfc2V0KGludGVnZXIsIHRleHQpOwkJLS0gc2V0LXJl dHVybmluZyByZWplY3RlZAorCistLSBObyBwc2V1ZG8tdHlwZXMKK0NSRUFURSBGVU5DVElPTiBm bXRfYW55ZWwoYW55ZWxlbWVudCwgdGV4dCkgUkVUVVJOUyB0ZXh0CisJTEFOR1VBR0Ugc3FsIElN TVVUQUJMRSBBUyAkJCBTRUxFQ1QgJDIgJCQ7CitDUkVBVEUgRk9STUFUIENBU1QgKGFueWVsZW1l bnQgQVMgdGV4dCkKKwlXSVRIIEZVTkNUSU9OIGZtdF9hbnllbChhbnllbGVtZW50LCB0ZXh0KTsK KworLS0gUmVnaXN0ZXJpbmcgYSBmb3JtYXQgY2FzdCBkb2VzIG5vdCBlbmFibGUgYSBmb3JtYXR0 ZWQgY2FzdDogdGhlIEZPUk1BVAorLS0gY2xhdXNlIG11c3Qgbm90IGJlIHNpbGVudGx5IGlnbm9y ZWQgb3IgcmV3cml0dGVuIHRvIGEgYnVpbHQtaW4gZnVuY3Rpb24sCistLSBzbyBDQVNUKC4uLiBG T1JNQVQgLi4uKSBpcyByZWplY3RlZCBkdXJpbmcgcGFyc2UgYW5hbHlzaXMuCitTRUxFQ1QgQ0FT VCg1IEFTIHRleHQgRk9STUFUICdZWVlZJyk7CisKKy0tIERlcGVuZGVuY3kgYmVoYXZpb3I6IHRo ZSBmb3JtYXQgY2FzdCBkZXBlbmRzIG9uIGl0cyBmdW5jdGlvbi4KK0RST1AgRlVOQ1RJT04gaW50 NF90b190ZXh0X2ZtdChpbnRlZ2VyLCB0ZXh0KTsJCQkJLS0gZmFpbHMgKFJFU1RSSUNUKQorRFJP UCBGVU5DVElPTiBpbnQ0X3RvX3RleHRfZm10KGludGVnZXIsIHRleHQpIENBU0NBREU7CQktLSBk cm9wcyBmb3JtYXQgY2FzdAorU0VMRUNUIGNvdW50KCopIEZST00gcGdfZm9ybWF0X2Nhc3QKKwlX SEVSRSBmbXRzb3VyY2UgPSAnaW50ZWdlcic6OnJlZ3R5cGUgQU5EIGZtdHRhcmdldCA9ICd0ZXh0 Jzo6cmVndHlwZTsKKworLS0gUHJpdmlsZWdlczogdGhlIGNyZWF0b3IgbXVzdCBvd24gdGhlIHNv dXJjZSBvciB0aGUgdGFyZ2V0IHR5cGUuICAoVGhlCistLSBvd25lcnNoaXAgY2hlY2sgaGFwcGVu cyBiZWZvcmUgdGhlIGZ1bmN0aW9uIGlzIGxvb2tlZCB1cCwgc28gdGhlIGZ1bmN0aW9uCistLSBu YW1lIGhlcmUgaXMgaXJyZWxldmFudC4pCitDUkVBVEUgUk9MRSByZWdyZXNzX2Zvcm1hdF9jYXN0 X3VzZXI7CitTRVQgUk9MRSByZWdyZXNzX2Zvcm1hdF9jYXN0X3VzZXI7CitDUkVBVEUgRk9STUFU IENBU1QgKHRleHQgQVMgaW50ZWdlcikKKwlXSVRIIEZVTkNUSU9OIHBnX2NhdGFsb2cubGVuZ3Ro KHRleHQpOworUkVTRVQgUk9MRTsKK0RST1AgUk9MRSByZWdyZXNzX2Zvcm1hdF9jYXN0X3VzZXI7 CisKKy0tIERST1AgRk9STUFUIENBU1QsIGluY2x1ZGluZyBJRiBFWElTVFMKK0NSRUFURSBGVU5D VElPTiBpbnQ0X3RvX3RleHRfZm10KGludGVnZXIsIHRleHQpIFJFVFVSTlMgdGV4dAorCUxBTkdV QUdFIHNxbCBJTU1VVEFCTEUgUkVUVVJOICQxOjp0ZXh0IHx8ICc6JyB8fCAkMjsKK0NSRUFURSBG T1JNQVQgQ0FTVCAoaW50ZWdlciBBUyB0ZXh0KQorCVdJVEggRlVOQ1RJT04gaW50NF90b190ZXh0 X2ZtdChpbnRlZ2VyLCB0ZXh0KTsKK0RST1AgRk9STUFUIENBU1QgKGludGVnZXIgQVMgdGV4dCk7 CitEUk9QIEZPUk1BVCBDQVNUIChpbnRlZ2VyIEFTIHRleHQpOwkJCQkJLS0gZmFpbHMsIGdvbmUK K0RST1AgRk9STUFUIENBU1QgSUYgRVhJU1RTIChpbnRlZ2VyIEFTIHRleHQpOwkJLS0gbm90aWNl LCBubyBlcnJvcgorCistLSBDbGVhbiB1cAorRFJPUCBGVU5DVElPTiBpbnQ0X3RvX3RleHRfZm10 KGludGVnZXIsIHRleHQpOworRFJPUCBGVU5DVElPTiBmbXRfYmFkX25hcmdzKGludGVnZXIpOwor RFJPUCBGVU5DVElPTiBmbXRfYmFkX2FyZzIoaW50ZWdlciwgaW50ZWdlcik7CitEUk9QIEZVTkNU SU9OIGZtdF9iYWRfYXJnMShiaWdpbnQsIHRleHQpOworRFJPUCBGVU5DVElPTiBmbXRfYmFkX3Jl dChpbnRlZ2VyLCB0ZXh0KTsKK0RST1AgRlVOQ1RJT04gZm10X2JhZF9zZXQoaW50ZWdlciwgdGV4 dCk7CitEUk9QIEZVTkNUSU9OIGZtdF9hbnllbChhbnllbGVtZW50LCB0ZXh0KTsKZGlmZiAtLWdp dCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50 L3R5cGVkZWZzLmxpc3QKaW5kZXggYzVkYjZjYTY3MDUuLmI4ZjUwODU1ZTE4IDEwMDY0NAotLS0g YS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdApAQCAtNTc1LDYgKzU3NSw3IEBAIENyZWF0ZUV4dGVuc2lvblN0bXQK IENyZWF0ZUZkd1N0bXQKIENyZWF0ZUZvcmVpZ25TZXJ2ZXJTdG10CiBDcmVhdGVGb3JlaWduVGFi bGVTdG10CitDcmVhdGVGb3JtYXRDYXN0U3RtdAogQ3JlYXRlRnVuY3Rpb25TdG10CiBDcmVhdGVP cENsYXNzSXRlbQogQ3JlYXRlT3BDbGFzc1N0bXQKQEAgLTkyMSw2ICs5MjIsNyBAQCBGb3JtRGF0 YV9wZ19leHRlbnNpb24KIEZvcm1EYXRhX3BnX2ZvcmVpZ25fZGF0YV93cmFwcGVyCiBGb3JtRGF0 YV9wZ19mb3JlaWduX3NlcnZlcgogRm9ybURhdGFfcGdfZm9yZWlnbl90YWJsZQorRm9ybURhdGFf cGdfZm9ybWF0X2Nhc3QKIEZvcm1EYXRhX3BnX2luZGV4CiBGb3JtRGF0YV9wZ19pbmhlcml0cwog Rm9ybURhdGFfcGdfbGFuZ3VhZ2UKQEAgLTk4Niw2ICs5ODgsNyBAQCBGb3JtX3BnX2V4dGVuc2lv bgogRm9ybV9wZ19mb3JlaWduX2RhdGFfd3JhcHBlcgogRm9ybV9wZ19mb3JlaWduX3NlcnZlcgog Rm9ybV9wZ19mb3JlaWduX3RhYmxlCitGb3JtX3BnX2Zvcm1hdF9jYXN0CiBGb3JtX3BnX2luZGV4 CiBGb3JtX3BnX2luaGVyaXRzCiBGb3JtX3BnX2xhbmd1YWdlCkBAIC0xMDI3LDYgKzEwMzAsNyBA QCBGb3JtX3BnX3RzX3BhcnNlcgogRm9ybV9wZ190c190ZW1wbGF0ZQogRm9ybV9wZ190eXBlCiBG b3JtX3BnX3VzZXJfbWFwcGluZworRm9ybWF0Q2FzdEluZm8KIEZvcm1hdE5vZGUKIEZyZWVCbG9j a051bWJlckFycmF5CiBGcmVlTGlzdERhdGEKLS0gCjIuNTQuMAoK --00000000000029b62906557c0e56 Content-Type: application/octet-stream; name="v2-0003-Resolve-CAST-FORMAT-with-CoerceViaFormatCast.patch" Content-Disposition: attachment; filename="v2-0003-Resolve-CAST-FORMAT-with-CoerceViaFormatCast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mr0xl5vz2 RnJvbSBmYTExZTAwNDZhYmZiNTE4YjY1YjA5MTZjMzNlNjY0MDRiZWYzNDkyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIYWlibyBZYW4gPHRyaXN0YW4ueWltQGdtYWlsLmNvbT4KRGF0 ZTogV2VkLCAyNCBKdW4gMjAyNiAyMDo0NjowMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMy80XSBS ZXNvbHZlIENBU1QgLi4uIEZPUk1BVCB3aXRoIENvZXJjZVZpYUZvcm1hdENhc3QKClJlc29sdmUg Zm9ybWF0dGVkIGNhc3RzIHRocm91Z2ggcGdfZm9ybWF0X2Nhc3QgZHVyaW5nIHBhcnNlIGFuYWx5 c2lzLiAgVGhlCkZPUk1BVCBleHByZXNzaW9uIGlzIHRyYW5zZm9ybWVkIGFuZCBjb2VyY2VkIHRv IHRleHQsIHVua25vd24gc291cmNlCmxpdGVyYWxzIGFyZSB0cmVhdGVkIGFzIHRleHQsIGFuZCBm b3JtYXQgY2FzdCBsb29rdXAgaXMgcGVyZm9ybWVkIGJ5IGV4YWN0CnNvdXJjZSBhbmQgdGFyZ2V0 IHR5cGUuICBJZiBubyBmb3JtYXQgY2FzdCBleGlzdHMsIHRoZSBjYXN0IGZhaWxzOyBhIEZPUk1B VApjbGF1c2UgbmV2ZXIgZmFsbHMgYmFjayB0byBvcmRpbmFyeSBjYXN0IHJlc29sdXRpb24uCgpS ZXByZXNlbnQgdGhlIGFuYWx5emVkIGV4cHJlc3Npb24gd2l0aCBhIENvZXJjZVZpYUZvcm1hdENh c3Qgbm9kZS4gIFRoZQpub2RlIHByZXNlcnZlcyBDQVNUIC4uLiBGT1JNQVQgc3ludGF4IGZvciBy dWxldXRpbHMgYW5kIHBnX2R1bXAsIGFuZApyZWNvcmRzIGEgZGVwZW5kZW5jeSBvbiB0aGUgcGdf Zm9ybWF0X2Nhc3Qgcm93IGFzIHdlbGwgYXMgb24gdGhlIGZvcm1hdCBjYXN0CmZ1bmN0aW9uLiAg RXhlY3V0aW9uIHN0aWxsIHVzZXMgdGhlIG9yZGluYXJ5IGZ1bmN0aW9uLWNhbGwgbWFjaGluZXJ5 IHZpYQpFeGVjSW5pdEZ1bmMsIHNvIG5vIG5ldyBleGVjdXRvciBvcGNvZGUgb3IgSklUIHN1cHBv cnQgaXMgbmVlZGVkLgoKVGFyZ2V0IHR5cG1vZHMgYW5kIGRvbWFpbiBjaGVja3MgYXJlIGVuZm9y Y2VkIGJ5IHRoZSBleGlzdGluZyBjb2VyY2lvbgptYWNoaW5lcnkgbGF5ZXJlZCBhYm92ZSB0aGUg bm9kZS4KLS0tCiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyAgICAgICAgICAgfCAg MjMgKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICB8ICAxOCAr Kwogc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgICAgICAgICAgICAgIHwgIDUzICsrKysr CiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgfCAxMzYgKysrKysr KysrKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyAgICAgICAgICB8ICAxOSAr Kwogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMgICAgICAgIHwgIDM3ICsrKwog c3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgICAgIHwgIDM4ICsrKwogc3Jj L2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggICAgICAgICAgICAgIHwgICAyICsKIHNyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvZXhwcmVzc2lvbnMub3V0ICB8ICAzMCArKy0KIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvZm9ybWF0X2Nhc3RzLm91dCB8IDI2MyArKysrKysrKysrKysrKysrKysr Ky0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2V4cHJlc3Npb25zLnNxbCAgICAgICB8ICAxNCArLQog c3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9ybWF0X2Nhc3RzLnNxbCAgICAgIHwgMTUzICsrKysrKysr KysrLQogMTIgZmlsZXMgY2hhbmdlZCwgNzQyIGluc2VydGlvbnMoKyksIDQ0IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKaW5kZXggZmY3YWI2MDZiY2MuLjM0YmUxNjU4NDlh IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYworKysgYi9zcmMv YmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwpAQCAtMjEzMSw2ICsyMTMxLDI5IEBAIGZpbmRf ZXhwcl9yZWZlcmVuY2VzX3dhbGtlcihOb2RlICpub2RlLAogCQkJYWRkX29iamVjdF9hZGRyZXNz KENvbGxhdGlvblJlbGF0aW9uSWQsIGlvY29lcmNlLT5yZXN1bHRjb2xsaWQsIDAsCiAJCQkJCQkJ ICAgY29udGV4dC0+YWRkcnMpOwogCX0KKwllbHNlIGlmIChJc0Eobm9kZSwgQ29lcmNlVmlhRm9y bWF0Q2FzdCkpCisJeworCQlDb2VyY2VWaWFGb3JtYXRDYXN0ICpmbXQgPSAoQ29lcmNlVmlhRm9y bWF0Q2FzdCAqKSBub2RlOworCisJCS8qIGRlcGVuZCBvbiB0aGUgcmVzdWx0IHR5cGUgKi8KKwkJ YWRkX29iamVjdF9hZGRyZXNzKFR5cGVSZWxhdGlvbklkLCBmbXQtPnJlc3VsdHR5cGUsIDAsCisJ CQkJCQkgICBjb250ZXh0LT5hZGRycyk7CisJCS8qIGRlcGVuZCBvbiB0aGUgZm9ybWF0IGNhc3Qg ZnVuY3Rpb24gKi8KKwkJYWRkX29iamVjdF9hZGRyZXNzKFByb2NlZHVyZVJlbGF0aW9uSWQsIGZt dC0+Zm9ybWF0ZnVuYywgMCwKKwkJCQkJCSAgIGNvbnRleHQtPmFkZHJzKTsKKwkJLyoKKwkJICog QWxzbyBkZXBlbmQgb24gdGhlIHBnX2Zvcm1hdF9jYXN0IHJvdyBpdHNlbGYsIHNvIHRoYXQgRFJP UCBGT1JNQVQgQ0FTVAorCQkgKiBpcyByZWZ1c2VkIChvciBjYXNjYWRlcykgd2hpbGUgYSBzdG9y ZWQgZXhwcmVzc2lvbiB1c2VzIGl0LgorCQkgKi8KKwkJaWYgKE9pZElzVmFsaWQoZm10LT5mb3Jt YXRjYXN0aWQpKQorCQkJYWRkX29iamVjdF9hZGRyZXNzKEZvcm1hdENhc3RSZWxhdGlvbklkLCBm bXQtPmZvcm1hdGNhc3RpZCwgMCwKKwkJCQkJCQkgICBjb250ZXh0LT5hZGRycyk7CisJCS8qIHRo ZSBjb2xsYXRpb24gbWlnaHQgbm90IGJlIHJlZmVyZW5jZWQgYW55d2hlcmUgZWxzZSwgZWl0aGVy ICovCisJCWlmIChPaWRJc1ZhbGlkKGZtdC0+cmVzdWx0Y29sbGlkKSAmJgorCQkJZm10LT5yZXN1 bHRjb2xsaWQgIT0gREVGQVVMVF9DT0xMQVRJT05fT0lEKQorCQkJYWRkX29iamVjdF9hZGRyZXNz KENvbGxhdGlvblJlbGF0aW9uSWQsIGZtdC0+cmVzdWx0Y29sbGlkLCAwLAorCQkJCQkJCSAgIGNv bnRleHQtPmFkZHJzKTsKKwl9CiAJZWxzZSBpZiAoSXNBKG5vZGUsIEFycmF5Q29lcmNlRXhwcikp CiAJewogCQlBcnJheUNvZXJjZUV4cHIgKmFjb2VyY2UgPSAoQXJyYXlDb2VyY2VFeHByICopIG5v ZGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwppbmRleCBjZmVhN2UxNjBjMi4uYmM5YzExYzJhNDUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpAQCAtMTIwMCw2ICsxMjAwLDI0IEBAIEV4ZWNJbml0 RXhwclJlYyhFeHByICpub2RlLCBFeHByU3RhdGUgKnN0YXRlLAogCQkJCWJyZWFrOwogCQkJfQog CisJCWNhc2UgVF9Db2VyY2VWaWFGb3JtYXRDYXN0OgorCQkJeworCQkJCUNvZXJjZVZpYUZvcm1h dENhc3QgKmZtdCA9IChDb2VyY2VWaWFGb3JtYXRDYXN0ICopIG5vZGU7CisKKwkJCQkvKgorCQkJ CSAqIEEgZm9ybWF0dGVkIGNhc3QgaXMgZXhlY3V0ZWQgZXhhY3RseSBsaWtlIGEgY2FsbCB0byBp dHMKKwkJCQkgKiBmb3JtYXQgY2FzdCBmdW5jdGlvbjogZm9ybWF0ZnVuYyhhcmcsIGZvcm1hdCku ICBSZXVzZSB0aGUKKwkJCQkgKiBvcmRpbmFyeSBmdW5jdGlvbi1jYWxsIHNldHVwLCB3aGljaCBh bHNvIHBlcmZvcm1zIHRoZQorCQkJCSAqIHJ1bi10aW1lIEVYRUNVVEUgcGVybWlzc2lvbiBjaGVj ayBvbiB0aGUgZm9ybWF0IGNhc3QgZnVuY3Rpb24uCisJCQkJICovCisJCQkJRXhlY0luaXRGdW5j KCZzY3JhdGNoLCBub2RlLAorCQkJCQkJCSBsaXN0X21ha2UyKGZtdC0+YXJnLCBmbXQtPmZvcm1h dCksCisJCQkJCQkJIGZtdC0+Zm9ybWF0ZnVuYywgZm10LT5pbnB1dGNvbGxpZCwKKwkJCQkJCQkg c3RhdGUpOworCQkJCUV4cHJFdmFsUHVzaFN0ZXAoc3RhdGUsICZzY3JhdGNoKTsKKwkJCQlicmVh azsKKwkJCX0KKwogCQljYXNlIFRfT3BFeHByOgogCQkJewogCQkJCU9wRXhwcgkgICAqb3AgPSAo T3BFeHByICopIG5vZGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3Mu YyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmluZGV4IDY2NDk1NTQ2MTc5Li4yOGZl MDgxNDczMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysrIGIv c3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTE4Miw2ICsxODIsOSBAQCBleHByVHlw ZShjb25zdCBOb2RlICpleHByKQogCQljYXNlIFRfQ29lcmNlVmlhSU86CiAJCQl0eXBlID0gKChj b25zdCBDb2VyY2VWaWFJTyAqKSBleHByKS0+cmVzdWx0dHlwZTsKIAkJCWJyZWFrOworCQljYXNl IFRfQ29lcmNlVmlhRm9ybWF0Q2FzdDoKKwkJCXR5cGUgPSAoKGNvbnN0IENvZXJjZVZpYUZvcm1h dENhc3QgKikgZXhwciktPnJlc3VsdHR5cGU7CisJCQlicmVhazsKIAkJY2FzZSBUX0FycmF5Q29l cmNlRXhwcjoKIAkJCXR5cGUgPSAoKGNvbnN0IEFycmF5Q29lcmNlRXhwciAqKSBleHByKS0+cmVz dWx0dHlwZTsKIAkJCWJyZWFrOwpAQCAtNTMxLDYgKzUzNCw4IEBAIGV4cHJUeXBtb2QoY29uc3Qg Tm9kZSAqZXhwcikKIAkJCWJyZWFrOwogCQljYXNlIFRfQ29lcmNlVG9Eb21haW46CiAJCQlyZXR1 cm4gKChjb25zdCBDb2VyY2VUb0RvbWFpbiAqKSBleHByKS0+cmVzdWx0dHlwbW9kOworCQljYXNl IFRfQ29lcmNlVmlhRm9ybWF0Q2FzdDoKKwkJCXJldHVybiAoKGNvbnN0IENvZXJjZVZpYUZvcm1h dENhc3QgKikgZXhwciktPnJlc3VsdHR5cG1vZDsKIAkJY2FzZSBUX0NvZXJjZVRvRG9tYWluVmFs dWU6CiAJCQlyZXR1cm4gKChjb25zdCBDb2VyY2VUb0RvbWFpblZhbHVlICopIGV4cHIpLT50eXBl TW9kOwogCQljYXNlIFRfU2V0VG9EZWZhdWx0OgpAQCAtOTQzLDYgKzk0OCw5IEBAIGV4cHJDb2xs YXRpb24oY29uc3QgTm9kZSAqZXhwcikKIAkJY2FzZSBUX0NvZXJjZVZpYUlPOgogCQkJY29sbCA9 ICgoY29uc3QgQ29lcmNlVmlhSU8gKikgZXhwciktPnJlc3VsdGNvbGxpZDsKIAkJCWJyZWFrOwor CQljYXNlIFRfQ29lcmNlVmlhRm9ybWF0Q2FzdDoKKwkJCWNvbGwgPSAoKGNvbnN0IENvZXJjZVZp YUZvcm1hdENhc3QgKikgZXhwciktPnJlc3VsdGNvbGxpZDsKKwkJCWJyZWFrOwogCQljYXNlIFRf QXJyYXlDb2VyY2VFeHByOgogCQkJY29sbCA9ICgoY29uc3QgQXJyYXlDb2VyY2VFeHByICopIGV4 cHIpLT5yZXN1bHRjb2xsaWQ7CiAJCQlicmVhazsKQEAgLTEyMjcsNiArMTIzNSw5IEBAIGV4cHJT ZXRDb2xsYXRpb24oTm9kZSAqZXhwciwgT2lkIGNvbGxhdGlvbikKIAkJY2FzZSBUX0NvZXJjZVZp YUlPOgogCQkJKChDb2VyY2VWaWFJTyAqKSBleHByKS0+cmVzdWx0Y29sbGlkID0gY29sbGF0aW9u OwogCQkJYnJlYWs7CisJCWNhc2UgVF9Db2VyY2VWaWFGb3JtYXRDYXN0OgorCQkJKChDb2VyY2VW aWFGb3JtYXRDYXN0ICopIGV4cHIpLT5yZXN1bHRjb2xsaWQgPSBjb2xsYXRpb247CisJCQlicmVh azsKIAkJY2FzZSBUX0FycmF5Q29lcmNlRXhwcjoKIAkJCSgoQXJyYXlDb2VyY2VFeHByICopIGV4 cHIpLT5yZXN1bHRjb2xsaWQgPSBjb2xsYXRpb247CiAJCQlicmVhazsKQEAgLTEzNDksNiArMTM2 MCw5IEBAIGV4cHJTZXRJbnB1dENvbGxhdGlvbihOb2RlICpleHByLCBPaWQgaW5wdXRjb2xsYXRp b24pCiAJCWNhc2UgVF9GdW5jRXhwcjoKIAkJCSgoRnVuY0V4cHIgKikgZXhwciktPmlucHV0Y29s bGlkID0gaW5wdXRjb2xsYXRpb247CiAJCQlicmVhazsKKwkJY2FzZSBUX0NvZXJjZVZpYUZvcm1h dENhc3Q6CisJCQkoKENvZXJjZVZpYUZvcm1hdENhc3QgKikgZXhwciktPmlucHV0Y29sbGlkID0g aW5wdXRjb2xsYXRpb247CisJCQlicmVhazsKIAkJY2FzZSBUX09wRXhwcjoKIAkJCSgoT3BFeHBy ICopIGV4cHIpLT5pbnB1dGNvbGxpZCA9IGlucHV0Y29sbGF0aW9uOwogCQkJYnJlYWs7CkBAIC0x NTI3LDYgKzE1NDEsMTUgQEAgZXhwckxvY2F0aW9uKGNvbnN0IE5vZGUgKmV4cHIpCiAJCQkJCQkJ CSAgZXhwckxvY2F0aW9uKChOb2RlICopIGNleHByLT5hcmcpKTsKIAkJCX0KIAkJCWJyZWFrOwor CQljYXNlIFRfQ29lcmNlVmlhRm9ybWF0Q2FzdDoKKwkJCXsKKwkJCQljb25zdCBDb2VyY2VWaWFG b3JtYXRDYXN0ICpjZXhwciA9IChjb25zdCBDb2VyY2VWaWFGb3JtYXRDYXN0ICopIGV4cHI7CisK KwkJCQkvKiBNdWNoIGFzIGFib3ZlICovCisJCQkJbG9jID0gbGVmdG1vc3RMb2MoY2V4cHItPmxv Y2F0aW9uLAorCQkJCQkJCQkgIGV4cHJMb2NhdGlvbigoTm9kZSAqKSBjZXhwci0+YXJnKSk7CisJ CQl9CisJCQlicmVhazsKIAkJY2FzZSBUX0FycmF5Q29lcmNlRXhwcjoKIAkJCXsKIAkJCQljb25z dCBBcnJheUNvZXJjZUV4cHIgKmNleHByID0gKGNvbnN0IEFycmF5Q29lcmNlRXhwciAqKSBleHBy OwpAQCAtMTk5NCw2ICsyMDE3LDE1IEBAIGNoZWNrX2Z1bmN0aW9uc19pbl9ub2RlKE5vZGUgKm5v ZGUsIGNoZWNrX2Z1bmN0aW9uX2NhbGxiYWNrIGNoZWNrZXIsCiAJCQkJCXJldHVybiB0cnVlOwog CQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9Db2VyY2VWaWFGb3JtYXRDYXN0OgorCQkJeworCQkJ CUNvZXJjZVZpYUZvcm1hdENhc3QgKmV4cHIgPSAoQ29lcmNlVmlhRm9ybWF0Q2FzdCAqKSBub2Rl OworCisJCQkJLyogY2hlY2sgdGhlIGZvcm1hdCBjYXN0IGZ1bmN0aW9uICovCisJCQkJaWYgKGNo ZWNrZXIoZXhwci0+Zm9ybWF0ZnVuYywgY29udGV4dCkpCisJCQkJCXJldHVybiB0cnVlOworCQkJ fQorCQkJYnJlYWs7CiAJCWNhc2UgVF9Sb3dDb21wYXJlRXhwcjoKIAkJCXsKIAkJCQlSb3dDb21w YXJlRXhwciAqcmNleHByID0gKFJvd0NvbXBhcmVFeHByICopIG5vZGU7CkBAIC0yMjk2LDYgKzIz MjgsMTYgQEAgZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUsCiAJCQlyZXR1 cm4gV0FMSygoKFJlbGFiZWxUeXBlICopIG5vZGUpLT5hcmcpOwogCQljYXNlIFRfQ29lcmNlVmlh SU86CiAJCQlyZXR1cm4gV0FMSygoKENvZXJjZVZpYUlPICopIG5vZGUpLT5hcmcpOworCQljYXNl IFRfQ29lcmNlVmlhRm9ybWF0Q2FzdDoKKwkJCXsKKwkJCQlDb2VyY2VWaWFGb3JtYXRDYXN0ICpm bXQgPSAoQ29lcmNlVmlhRm9ybWF0Q2FzdCAqKSBub2RlOworCisJCQkJaWYgKFdBTEsoZm10LT5h cmcpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhmbXQtPmZvcm1hdCkpCisJCQkJ CXJldHVybiB0cnVlOworCQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgVF9BcnJheUNvZXJjZUV4cHI6 CiAJCQl7CiAJCQkJQXJyYXlDb2VyY2VFeHByICphY29lcmNlID0gKEFycmF5Q29lcmNlRXhwciAq KSBub2RlOwpAQCAtMzMxOCw2ICszMzYwLDE3IEBAIGV4cHJlc3Npb25fdHJlZV9tdXRhdG9yX2lt cGwoTm9kZSAqbm9kZSwKIAkJCQlyZXR1cm4gKE5vZGUgKikgbmV3bm9kZTsKIAkJCX0KIAkJCWJy ZWFrOworCQljYXNlIFRfQ29lcmNlVmlhRm9ybWF0Q2FzdDoKKwkJCXsKKwkJCQlDb2VyY2VWaWFG b3JtYXRDYXN0ICpmbXRjb2VyY2UgPSAoQ29lcmNlVmlhRm9ybWF0Q2FzdCAqKSBub2RlOworCQkJ CUNvZXJjZVZpYUZvcm1hdENhc3QgKm5ld25vZGU7CisKKwkJCQlGTEFUQ09QWShuZXdub2RlLCBm bXRjb2VyY2UsIENvZXJjZVZpYUZvcm1hdENhc3QpOworCQkJCU1VVEFURShuZXdub2RlLT5hcmcs IGZtdGNvZXJjZS0+YXJnLCBFeHByICopOworCQkJCU1VVEFURShuZXdub2RlLT5mb3JtYXQsIGZt dGNvZXJjZS0+Zm9ybWF0LCBFeHByICopOworCQkJCXJldHVybiAoTm9kZSAqKSBuZXdub2RlOwor CQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgVF9BcnJheUNvZXJjZUV4cHI6CiAJCQl7CiAJCQkJQXJy YXlDb2VyY2VFeHByICphY29lcmNlID0gKEFycmF5Q29lcmNlRXhwciAqKSBub2RlOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9leHByLmMKaW5kZXggYmE2NDgwYWNmMTIuLjNkNDgxMTE5ZDE2IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9leHByLmMKQEAgLTc4LDYgKzc4LDcgQEAgc3RhdGljIE5vZGUgKnRyYW5zZm9ybVdo b2xlUm93UmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJICBpbnQgc3VibGV2ZWxzX3Vw LCBpbnQgbG9jYXRpb24pOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNl U3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zv cm1UeXBlQ2FzdChQYXJzZVN0YXRlICpwc3RhdGUsIFR5cGVDYXN0ICp0Yyk7CitzdGF0aWMgTm9k ZSAqdHJhbnNmb3JtRm9ybWF0dGVkVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBlQ2Fz dCAqdGMpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUNvbGxhdGVDbGF1c2UoUGFyc2VTdGF0ZSAq cHN0YXRlLCBDb2xsYXRlQ2xhdXNlICpjKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Kc29uT2Jq ZWN0Q29uc3RydWN0b3IoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCQlKc29uT2JqZWN0 Q29uc3RydWN0b3IgKmN0b3IpOwpAQCAtMjc0NCwxNyArMjc0NSwxMiBAQCB0cmFuc2Zvcm1UeXBl Q2FzdChQYXJzZVN0YXRlICpwc3RhdGUsIFR5cGVDYXN0ICp0YykKIAlpbnQJCQlsb2NhdGlvbjsK IAogCS8qCi0JICogRm9ybWF0dGVkIGNhc3RzIChDQVNUKGV4cHIgQVMgdHlwZSBGT1JNQVQgZm9y bWF0X2V4cHIpKSBhcmUgcGFyc2VkIGFuZAotCSAqIHJlcHJlc2VudGVkIGluIHRoZSBwYXJzZSB0 cmVlLCBidXQgZm9ybWF0IGNhc3QgcmVzb2x1dGlvbiBpcyBub3QgeWV0Ci0JICogaW1wbGVtZW50 ZWQuICBSZWplY3Qgc3VjaCBjYXN0cyBoZXJlIHJhdGhlciB0aGFuIHNpbGVudGx5IGlnbm9yaW5n IHRoZQotCSAqIEZPUk1BVCBjbGF1c2UuCisJICogQSBGT1JNQVQgY2xhdXNlIHR1cm5zIHRoaXMg aW50byBhIGZvcm1hdHRlZCBjYXN0LCB3aGljaCBpcyByZXNvbHZlZAorCSAqIGV4Y2x1c2l2ZWx5 IHRocm91Z2ggdGhlIHBnX2Zvcm1hdF9jYXN0IGNhdGFsb2cgKG5ldmVyIHRocm91Z2ggb3JkaW5h cnkKKwkgKiBjYXN0IHJ1bGVzKS4gIEhhbmRsZSBpdCBpbiBhIHNlcGFyYXRlIGNvZGUgcGF0aC4K IAkgKi8KIAlpZiAodGMtPmZvcm1hdCAhPSBOVUxMKQotCQllcmVwb3J0KEVSUk9SLAotCQkJCShl cnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkgZXJybXNnKCJmb3Jt YXR0ZWQgY2FzdHMgYXJlIG5vdCBpbXBsZW1lbnRlZCB5ZXQiKSwKLQkJCQkgZXJyZGV0YWlsKCJO byBmb3JtYXQgY2FzdCByZXNvbHV0aW9uIG1lY2hhbmlzbSBpcyBhdmFpbGFibGUuIiksCi0JCQkJ IHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbih0Yy0+Zm9ybWF0KSkpKTsK KwkJcmV0dXJuIHRyYW5zZm9ybUZvcm1hdHRlZFR5cGVDYXN0KHBzdGF0ZSwgdGMpOwogCiAJLyog TG9vayB1cCB0aGUgdHlwZSBuYW1lIGZpcnN0ICovCiAJdHlwZW5hbWVUeXBlSWRBbmRNb2QocHN0 YXRlLCB0Yy0+dHlwZU5hbWUsICZ0YXJnZXRUeXBlLCAmdGFyZ2V0VHlwbW9kKTsKQEAgLTI4MjQs NiArMjgyMCwxMjggQEAgdHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBl Q2FzdCAqdGMpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyoKKyAqIEhhbmRsZSBhIGZvcm1hdHRl ZCBjYXN0OiBDQVNUKGFyZyBBUyB0eXBlTmFtZSBGT1JNQVQgZm9ybWF0KS4KKyAqCisgKiBSZXNv bHZlZCBleGNsdXNpdmVseSB0aHJvdWdoIHRoZSBwZ19mb3JtYXRfY2FzdCBjYXRhbG9nLCBrZXll ZCBieQorICogKHNvdXJjZSB0eXBlLCB0YXJnZXQgdHlwZSkuICBXZSBidWlsZCBhIENvZXJjZVZp YUZvcm1hdENhc3Qgbm9kZSwgd2hpY2ggYXQKKyAqIGV4ZWN1dGlvbiB0aW1lIGNhbGxzIHRoZSBy ZWdpc3RlcmVkIGZvcm1hdCBjYXN0IGZ1bmN0aW9uIHdpdGggdGhlIHNvdXJjZQorICogdmFsdWUg YW5kIHRoZSBGT1JNQVQgZXhwcmVzc2lvbiAoY29lcmNlZCB0byB0ZXh0KS4gIFVzaW5nIGEgZGVk aWNhdGVkIG5vZGUKKyAqIChyYXRoZXIgdGhhbiBhIGJhcmUgRnVuY0V4cHIpIGxldHMgdGhlIGV4 cHJlc3Npb24gZGVwYXJzZSBiYWNrIHRvCisgKiBDQVNUIC4uLiBGT1JNQVQgYW5kIGRlcGVuZCBv biB0aGUgcGdfZm9ybWF0X2Nhc3Qgcm93LgorICovCitzdGF0aWMgTm9kZSAqCit0cmFuc2Zvcm1G b3JtYXR0ZWRUeXBlQ2FzdChQYXJzZVN0YXRlICpwc3RhdGUsIFR5cGVDYXN0ICp0YykKK3sKKwlO b2RlCSAgICpleHByOworCU5vZGUJICAgKmZtdDsKKwlPaWQJCQlzb3VyY2VUeXBlOworCU9pZAkJ CXRhcmdldFR5cGU7CisJaW50MzIJCXRhcmdldFR5cG1vZDsKKwlPaWQJCQlmb3JtYXRjYXN0aWQ7 CisJT2lkCQkJZm10ZnVuY2lkID0gSW52YWxpZE9pZDsKKwlPaWQJCQlmdW5jcmV0dHlwZTsKKwlD b2VyY2VWaWFGb3JtYXRDYXN0ICpjdmY7CisJTm9kZQkgICAqcmVzdWx0OworCWludAkJCWxvY2F0 aW9uOworCisJLyogUmVzb2x2ZSB0aGUgZGVjbGFyZWQgdGFyZ2V0IHR5cGUsIGV4YWN0bHkgYXMg YW4gb3JkaW5hcnkgY2FzdCBkb2VzLiAqLworCXR5cGVuYW1lVHlwZUlkQW5kTW9kKHBzdGF0ZSwg dGMtPnR5cGVOYW1lLCAmdGFyZ2V0VHlwZSwgJnRhcmdldFR5cG1vZCk7CisKKwkvKiBUcmFuc2Zv cm0gdGhlIHNvdXJjZSBleHByZXNzaW9uLiAqLworCWV4cHIgPSB0cmFuc2Zvcm1FeHByUmVjdXJz ZShwc3RhdGUsIHRjLT5hcmcpOworCXNvdXJjZVR5cGUgPSBleHByVHlwZShleHByKTsKKworCS8q CisJICogQW4gdW5rbm93bi10eXBlIHNvdXJjZSAodHlwaWNhbGx5IGEgYmFyZSBzdHJpbmcgbGl0 ZXJhbCBvciB1bnR5cGVkCisJICogTlVMTCkgaXMgY29lcmNlZCB0byB0ZXh0IGJlZm9yZSB0aGUg Zm9ybWF0IGNhc3QgbG9va3VwLCBzbyB0aGF0LCBlLmcuLAorCSAqIENBU1QoJzIwMjYtMDYtMjQn IEFTIGRhdGUgRk9STUFUICdZWVlZLU1NLUREJykgdXNlcyBhIGZvcm1hdCBjYXN0CisJICogcmVn aXN0ZXJlZCBmb3IgKHRleHQsIGRhdGUpIHJhdGhlciB0aGFuIHJlcXVpcmluZyBvbmUgZm9yICh1 bmtub3duLAorCSAqIGRhdGUpLgorCSAqLworCWlmIChzb3VyY2VUeXBlID09IFVOS05PV05PSUQp CisJeworCQlleHByID0gY29lcmNlX3RvX3NwZWNpZmljX3R5cGUocHN0YXRlLCBleHByLCBURVhU T0lELCAiQ0FTVCIpOworCQlzb3VyY2VUeXBlID0gZXhwclR5cGUoZXhwcik7CisJfQorCisJbG9j YXRpb24gPSB0Yy0+bG9jYXRpb247CisJaWYgKGxvY2F0aW9uIDwgMCkKKwkJbG9jYXRpb24gPSB0 Yy0+dHlwZU5hbWUtPmxvY2F0aW9uOworCisJLyoKKwkgKiBUcmFuc2Zvcm0gdGhlIEZPUk1BVCBl eHByZXNzaW9uIGFuZCBjb2VyY2UgaXQgdG8gdGV4dCBiZWZvcmUgdGhlCisJICogZm9ybWF0IGNh c3QgbG9va3VwLCBzbyBhbiBpbnZhbGlkIEZPUk1BVCBleHByZXNzaW9uIHJlcG9ydHMgYSBub3Jt YWwKKwkgKiBlcnJvciByYXRoZXIgdGhhbiBiZWluZyBtYXNrZWQgYnkgYSBtaXNzaW5nLWZvcm1h dCBjYXN0IGVycm9yLgorCSAqLworCWZtdCA9IHRyYW5zZm9ybUV4cHJSZWN1cnNlKHBzdGF0ZSwg dGMtPmZvcm1hdCk7CisJZm10ID0gY29lcmNlX3RvX3NwZWNpZmljX3R5cGUocHN0YXRlLCBmbXQs IFRFWFRPSUQsICJGT1JNQVQiKTsKKworCS8qCisJICogTG9vayB1cCB0aGUgZm9ybWF0IGNhc3Qg Zm9yIHRoaXMgKHNvdXJjZSwgdGFyZ2V0KSBwYWlyLiAgQSBGT1JNQVQgY2xhdXNlCisJICogbmV2 ZXIgZmFsbHMgYmFjayB0byBvcmRpbmFyeSBjYXN0IHJlc29sdXRpb24uCisJICovCisJZm9ybWF0 Y2FzdGlkID0gZ2V0X2Zvcm1hdF9jYXN0X2Z1bmN0aW9uKHNvdXJjZVR5cGUsIHRhcmdldFR5cGUs ICZmbXRmdW5jaWQpOworCWlmICghT2lkSXNWYWxpZChmb3JtYXRjYXN0aWQpKQorCQllcmVwb3J0 KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJIGVy cm1zZygiZm9ybWF0IGNhc3QgZnJvbSB0eXBlICVzIHRvIHR5cGUgJXMgZG9lcyBub3QgZXhpc3Qi LAorCQkJCQkJZm9ybWF0X3R5cGVfYmUoc291cmNlVHlwZSksCisJCQkJCQlmb3JtYXRfdHlwZV9i ZSh0YXJnZXRUeXBlKSksCisJCQkJIGVycmhpbnQoIlVzZSBDUkVBVEUgRk9STUFUIENBU1QgdG8g ZGVmaW5lIGEgZm9ybWF0IGNhc3QgZm9yIHRoaXMgdHlwZSBwYWlyLiIpLAorCQkJCSBwYXJzZXJf ZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKKworCS8qCisJICogQnVpbGQgdGhlIENv ZXJjZVZpYUZvcm1hdENhc3Qgbm9kZS4gIEl0cyByZXN1bHQgdHlwZSBpcyB0aGUgZm9ybWF0IGNh c3QKKwkgKiBmdW5jdGlvbidzIHJldHVybiB0eXBlLCB3aGljaCBDUkVBVEUgRk9STUFUIENBU1Qg Z3VhcmFudGVlcyBlcXVhbHMgdGhlCisJICogdGFyZ2V0IHR5cGUuCisJICoKKwkgKiBUaGUgY29s bGF0aW9uIGZpZWxkcyBhcmUgbGVmdCB1bnNldCBoZXJlOyB0aGV5IGFyZSBhc3NpZ25lZCBsYXRl ciBieQorCSAqIHBhcnNlX2NvbGxhdGUuYywgd2hlcmUgQ29lcmNlVmlhRm9ybWF0Q2FzdCB0YWtl cyB0aGUgc2FtZSBnZW5lcmFsIG4tYXJ5CisJICogZXhwcmVzc2lvbiBwYXRoIGFzIEZ1bmNFeHBy IChpdHMgcmVzdWx0L2lucHV0IGNvbGxhdGlvbiBnZXQvc2V0IGhvb2tzCisJICogbGl2ZSBpbiBu b2RlRnVuY3MuYykuCisJICovCisJZnVuY3JldHR5cGUgPSBnZXRfZnVuY19yZXR0eXBlKGZtdGZ1 bmNpZCk7CisJaWYgKCFPaWRJc1ZhbGlkKGZ1bmNyZXR0eXBlKSkKKwkJZWxvZyhFUlJPUiwgImNh Y2hlIGxvb2t1cCBmYWlsZWQgZm9yIGZ1bmN0aW9uICV1IiwgZm10ZnVuY2lkKTsKKwlBc3NlcnQo ZnVuY3JldHR5cGUgPT0gdGFyZ2V0VHlwZSk7CisKKwljdmYgPSBtYWtlTm9kZShDb2VyY2VWaWFG b3JtYXRDYXN0KTsKKwljdmYtPmFyZyA9IChFeHByICopIGV4cHI7CisJY3ZmLT5mb3JtYXQgPSAo RXhwciAqKSBmbXQ7CisJY3ZmLT5yZXN1bHR0eXBlID0gZnVuY3JldHR5cGU7CisJY3ZmLT5yZXN1 bHR0eXBtb2QgPSAtMTsJCS8qIHR5cG1vZCBlbmZvcmNlZCBiZWxvdywgaWYgYW55ICovCisJY3Zm LT5yZXN1bHRjb2xsaWQgPSBJbnZhbGlkT2lkOworCWN2Zi0+aW5wdXRjb2xsaWQgPSBJbnZhbGlk T2lkOworCWN2Zi0+Zm9ybWF0ZnVuYyA9IGZtdGZ1bmNpZDsKKwljdmYtPmZvcm1hdGNhc3RpZCA9 IGZvcm1hdGNhc3RpZDsKKwljdmYtPmNvZXJjaW9uZm9ybWF0ID0gQ09FUkNFX0VYUExJQ0lUX0NB U1Q7CisJY3ZmLT5sb2NhdGlvbiA9IGxvY2F0aW9uOworCXJlc3VsdCA9IChOb2RlICopIGN2ZjsK KworCS8qCisJICogRW5mb3JjZSB0aGUgZGVjbGFyZWQgdGFyZ2V0IHR5cGUgbW9kaWZpZXIgKGFu ZCBhbnkgZG9tYWluIGNvbnN0cmFpbnRzKQorCSAqIHVzaW5nIHRoZSBvcmRpbmFyeSBjb2VyY2lv biBtYWNoaW5lcnkuICBJbiB0aGUgY29tbW9uIGNhc2Ugd2hlcmUgdGhlCisJICogdGFyZ2V0IGhh cyBubyB0eXBtb2QgYW5kIGlzIG5vdCBhIGRvbWFpbiB0aGlzIGlzIGEgbm8tb3A7IG90aGVyd2lz ZSBpdAorCSAqIGxheWVycyB0aGUgc2FtZSBsZW5ndGggY29lcmNpb24gLyBkb21haW4gY2hlY2sg dGhhdCBhbiBvcmRpbmFyeSBjYXN0IHRvCisJICogdGhlIHNhbWUgdGFyZ2V0IHdvdWxkIGFwcGx5 LgorCSAqLworCXJlc3VsdCA9IGNvZXJjZV90b190YXJnZXRfdHlwZShwc3RhdGUsIHJlc3VsdCwg ZnVuY3JldHR5cGUsCisJCQkJCQkJCSAgIHRhcmdldFR5cGUsIHRhcmdldFR5cG1vZCwKKwkJCQkJ CQkJICAgQ09FUkNJT05fRVhQTElDSVQsCisJCQkJCQkJCSAgIENPRVJDRV9FWFBMSUNJVF9DQVNU LAorCQkJCQkJCQkgICBsb2NhdGlvbik7CisJaWYgKHJlc3VsdCA9PSBOVUxMKQorCQllcmVwb3J0 KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfQ0FOTk9UX0NPRVJDRSksCisJCQkJIGVycm1z ZygiY2Fubm90IGNhc3QgdHlwZSAlcyB0byAlcyIsCisJCQkJCQlmb3JtYXRfdHlwZV9iZShmdW5j cmV0dHlwZSksCisJCQkJCQlmb3JtYXRfdHlwZV9iZSh0YXJnZXRUeXBlKSksCisJCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOworCisJcmV0dXJuIHJlc3VsdDsKK30K KwogLyoKICAqIEhhbmRsZSBhbiBleHBsaWNpdCBDT0xMQVRFIGNsYXVzZS4KICAqCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgYi9zcmMvYmFja2VuZC91dGls cy9hZHQvcnVsZXV0aWxzLmMKaW5kZXggODhkZTVjMDQ4MWMuLmViMGVhZjM3ZGE4IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3J1bGV1dGlscy5jCkBAIC05NDQ3LDYgKzk0NDcsMTAgQEAgaXNTaW1wbGVOb2Rl KE5vZGUgKm5vZGUsIE5vZGUgKnBhcmVudE5vZGUsIGludCBwcmV0dHlGbGFncykKIAkJCS8qIGZ1 bmN0aW9uLWxpa2U6IG5hbWUoLi4pIG9yIG5hbWVbLi5dICovCiAJCQlyZXR1cm4gdHJ1ZTsKIAor CQljYXNlIFRfQ29lcmNlVmlhRm9ybWF0Q2FzdDoKKwkJCS8qIGRlcGFyc2VzIGFzIENBU1QoLi4g Rk9STUFUIC4uKSwgc2VsZi1kZWxpbWl0aW5nICovCisJCQlyZXR1cm4gdHJ1ZTsKKwogCQkJLyog Q0FTRSBrZXl3b3JkcyBhY3QgYXMgcGFyZW50aGVzZXMgKi8KIAkJY2FzZSBUX0Nhc2VFeHByOgog CQkJcmV0dXJuIHRydWU7CkBAIC0xMDMxMCw2ICsxMDMxNCwyMSBAQCBnZXRfcnVsZV9leHByKE5v ZGUgKm5vZGUsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCwKIAkJCX0KIAkJCWJyZWFrOwogCisJ CWNhc2UgVF9Db2VyY2VWaWFGb3JtYXRDYXN0OgorCQkJeworCQkJCUNvZXJjZVZpYUZvcm1hdENh c3QgKmZtdCA9IChDb2VyY2VWaWFGb3JtYXRDYXN0ICopIG5vZGU7CisKKwkJCQkvKiBhbHdheXMg cHJpbnQgdGhlIFNRTC1zdGFuZGFyZCBDQVNUKC4uLiBGT1JNQVQgLi4uKSBzeW50YXggKi8KKwkJ CQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIkNBU1QoIik7CisJCQkJZ2V0X3J1bGVfZXhw cigoTm9kZSAqKSBmbXQtPmFyZywgY29udGV4dCwgZmFsc2UpOworCQkJCWFwcGVuZFN0cmluZ0lu Zm8oYnVmLCAiIEFTICVzIEZPUk1BVCAiLAorCQkJCQkJCQkgZm9ybWF0X3R5cGVfd2l0aF90eXBl bW9kKGZtdC0+cmVzdWx0dHlwZSwKKwkJCQkJCQkJCQkJCQkJICBmbXQtPnJlc3VsdHR5cG1vZCkp OworCQkJCWdldF9ydWxlX2V4cHIoKE5vZGUgKikgZm10LT5mb3JtYXQsIGNvbnRleHQsIGZhbHNl KTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICcpJyk7CisJCQl9CisJCQlicmVhazsK KwogCQljYXNlIFRfQXJyYXlDb2VyY2VFeHByOgogCQkJewogCQkJCUFycmF5Q29lcmNlRXhwciAq YWNvZXJjZSA9IChBcnJheUNvZXJjZUV4cHIgKikgbm9kZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5 c2NhY2hlLmMKaW5kZXggMDM2ZGU1Zjc5ZWYuLjc2YjcyMDY2OGI1IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9j YWNoZS9sc3lzY2FjaGUuYwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdf Y29sbGF0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb25zdHJhaW50LmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19kYXRhYmFzZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfZm9ybWF0X2Nh c3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2luZGV4LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19sYW5ndWFnZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfbmFtZXNwYWNlLmgiCkBAIC0xMjM4 LDYgKzEyMzksNDIgQEAgZ2V0X2Nhc3Rfb2lkKE9pZCBzb3VyY2V0eXBlaWQsIE9pZCB0YXJnZXR0 eXBlaWQsIGJvb2wgbWlzc2luZ19vaykKIAlyZXR1cm4gb2lkOwogfQogCisvKgkJCQktLS0tLS0t LS0tIFBHX0ZPUk1BVF9DQVNUIENBQ0hFIC0tLS0tLS0tLS0JCQkJICovCisKKy8qCisgKiBnZXRf Zm9ybWF0X2Nhc3RfZnVuY3Rpb24KKyAqCisgKgkJR2l2ZW4gc291cmNlIGFuZCB0YXJnZXQgdHlw ZSBPSURzLCBsb29rIHVwIHRoZSBmb3JtYXQgY2FzdCByZWdpc3RlcmVkCisgKgkJZm9yIHRoYXQg KHNvdXJjZSwgdGFyZ2V0KSBwYWlyLiAgUmV0dXJucyB0aGUgcGdfZm9ybWF0X2Nhc3Qgcm93IE9J RCwgb3IKKyAqCQlJbnZhbGlkT2lkIGlmIG5vbmUgaXMgcmVnaXN0ZXJlZC4gIElmIGZvdW5kIGFu ZCBmb3JtYXRmdW5jIGlzIG5vdAorICoJCU5VTEwsICpmb3JtYXRmdW5jIGlzIHNldCB0byB0aGUg Zm9ybWF0IGNhc3QgZnVuY3Rpb24gT0lELgorICovCitPaWQKK2dldF9mb3JtYXRfY2FzdF9mdW5j dGlvbihPaWQgc291cmNldHlwZWlkLCBPaWQgdGFyZ2V0dHlwZWlkLCBPaWQgKmZvcm1hdGZ1bmMp Cit7CisJSGVhcFR1cGxlCXRwOworCU9pZAkJCXJlc3VsdDsKKworCXRwID0gU2VhcmNoU3lzQ2Fj aGUyKEZPUk1BVENBU1RTT1VSQ0VUQVJHRVQsCisJCQkJCQkgT2JqZWN0SWRHZXREYXR1bShzb3Vy Y2V0eXBlaWQpLAorCQkJCQkJIE9iamVjdElkR2V0RGF0dW0odGFyZ2V0dHlwZWlkKSk7CisJaWYg KCFIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwkJcmV0dXJuIEludmFsaWRPaWQ7CisKKwl7CisJCUZv cm1fcGdfZm9ybWF0X2Nhc3QgZm10ID0gKEZvcm1fcGdfZm9ybWF0X2Nhc3QpIEdFVFNUUlVDVCh0 cCk7CisKKwkJLyogQSB2YWxpZCBwZ19mb3JtYXRfY2FzdCByb3cgYWx3YXlzIG5hbWVzIGEgZm9y bWF0IGNhc3QgZnVuY3Rpb24uICovCisJCUFzc2VydChPaWRJc1ZhbGlkKGZtdC0+Zm10ZnVuYykp OworCisJCXJlc3VsdCA9IGZtdC0+b2lkOworCQlpZiAoZm9ybWF0ZnVuYyAhPSBOVUxMKQorCQkJ KmZvcm1hdGZ1bmMgPSBmbXQtPmZtdGZ1bmM7CisJfQorCVJlbGVhc2VTeXNDYWNoZSh0cCk7CisJ cmV0dXJuIHJlc3VsdDsKK30KKwogLyoJCQkJLS0tLS0tLS0tLSBDT0xMQVRJT04gQ0FDSEUgLS0t LS0tLS0tLQkJCQkJICovCiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmlt bm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCmluZGV4IGJiMDVhZWViZWU0 Li40YWFlYmNiMDMwNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgK KysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKQEAgLTEyMzAsNiArMTIzMCw0NCBA QCB0eXBlZGVmIHN0cnVjdCBDb2VyY2VWaWFJTwogCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9r ZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KIH0gQ29lcmNlVmlhSU87CiAKKy8qIC0t LS0tLS0tLS0tLS0tLS0KKyAqIENvZXJjZVZpYUZvcm1hdENhc3QKKyAqCisgKiBDb2VyY2VWaWFG b3JtYXRDYXN0IHJlcHJlc2VudHMgQ0FTVChhcmcgQVMgcmVzdWx0dHlwZSBGT1JNQVQgZm9ybWF0 KSwgYQorICogZm9ybWF0dGVkIGNhc3QgcmVzb2x2ZWQgdGhyb3VnaCB0aGUgcGdfZm9ybWF0X2Nh c3QgY2F0YWxvZy4gIEl0IGNhbGxzIHRoZQorICogcmVnaXN0ZXJlZCBmb3JtYXQgY2FzdCBmdW5j dGlvbiB3aXRoIHRoZSBzb3VyY2UgdmFsdWUgYW5kIHRoZSBGT1JNQVQKKyAqIGV4cHJlc3Npb24g KGFscmVhZHkgY29lcmNlZCB0byB0ZXh0KSwgcmV0dXJuaW5nIHRoZSB0YXJnZXQgdHlwZToKKyAq CisgKgkJZm9ybWF0ZnVuYyhhcmcsIGZvcm1hdCkgcmV0dXJucyByZXN1bHR0eXBlCisgKgorICog VW5saWtlIGEgcGxhaW4gRnVuY0V4cHIsIHRoaXMgbm9kZSByZW1lbWJlcnMgdGhhdCBpdCBjYW1l IGZyb20KKyAqIENBU1QgLi4uIEZPUk1BVCAoc28gaXQgZGVwYXJzZXMgYmFjayB0byB0aGF0IHN5 bnRheCkgYW5kIHdoaWNoCisgKiBwZ19mb3JtYXRfY2FzdCByb3cgaXQgcmVzb2x2ZWQgdG8gKHNv IGEgc3RvcmVkIGV4cHJlc3Npb24gY2FuIGRlcGVuZCBvbiB0aGUKKyAqIGZvcm1hdCBjYXN0IG9i amVjdCkuICBJdCBpcyBleGVjdXRlZCBieSByZXVzaW5nIG9yZGluYXJ5IGZ1bmN0aW9uLWNhbGwK KyAqIGV2YWx1YXRpb24sIHNvIEVYRUNVVEUgcGVybWlzc2lvbiBvbiBmb3JtYXRmdW5jIGlzIGNo ZWNrZWQgYXQgcnVuIHRpbWUsCisgKiBhcyBmb3IgYW4gb3JkaW5hcnkgZnVuY3Rpb24tYmFja2Vk IGNhc3QuCisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IENvZXJjZVZp YUZvcm1hdENhc3QKK3sKKwlFeHByCQl4cHI7CisJRXhwcgkgICAqYXJnOwkJCS8qIHNvdXJjZSBl eHByZXNzaW9uICovCisJRXhwcgkgICAqZm9ybWF0OwkJCS8qIEZPUk1BVCBleHByZXNzaW9uLCBh bHJlYWR5IGNvZXJjZWQgdG8gdGV4dCAqLworCU9pZAkJCXJlc3VsdHR5cGU7CQkvKiBvdXRwdXQg dHlwZSBvZiB0aGUgY2FzdCAqLworCS8qIG91dHB1dCB0eXBtb2QgKHVzdWFsbHkgLTE7IHR5cG1v ZCBlbmZvcmNlbWVudCBpcyBsYXllcmVkIGFib3ZlKSAqLworCWludDMyCQlyZXN1bHR0eXBtb2Qg cGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOworCS8qIE9JRCBvZiByZXN1bHQgY29s bGF0aW9uLCBvciBJbnZhbGlkT2lkIGlmIG5vbmUgKi8KKwlPaWQJCQlyZXN1bHRjb2xsaWQgcGdf bm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOworCS8qIGlucHV0IGNvbGxhdGlvbiBmb3Ig dGhlIGZvcm1hdCBjYXN0IGZ1bmN0aW9uIGNhbGwgKi8KKwlPaWQJCQlpbnB1dGNvbGxpZCBwZ19u b2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CisJT2lkCQkJZm9ybWF0ZnVuYzsJLyogcGdf Zm9ybWF0X2Nhc3QuZm10ZnVuYyAqLworCS8qIHBnX2Zvcm1hdF9jYXN0IHJvdyBPSUQgdGhpcyBy ZXNvbHZlZCB0byAoZm9yIGRlcGVuZGVuY2llcykgKi8KKwlPaWQJCQlmb3JtYXRjYXN0aWQgcGdf bm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOworCS8qIGhvdyB0byBkaXNwbGF5IHRoaXMg bm9kZSAqLworCUNvZXJjaW9uRm9ybSBjb2VyY2lvbmZvcm1hdCBwZ19ub2RlX2F0dHIocXVlcnlf anVtYmxlX2lnbm9yZSk7CisJUGFyc2VMb2MJbG9jYXRpb247CQkvKiB0b2tlbiBsb2NhdGlvbiwg b3IgLTEgaWYgdW5rbm93biAqLworfSBDb2VyY2VWaWFGb3JtYXRDYXN0OworCiAvKiAtLS0tLS0t LS0tLS0tLS0tCiAgKiBBcnJheUNvZXJjZUV4cHIKICAqCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS91dGlscy9sc3lzY2FjaGUuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCmluZGV4 IDg2NTk4MGNiMGYxLi41MzAyNmIwOTBhMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMv bHN5c2NhY2hlLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKQEAgLTEwMyw2 ICsxMDMsOCBAQCBleHRlcm4gdm9pZCBnZXRfYXR0dHlwZXR5cG1vZGNvbGwoT2lkIHJlbGlkLCBB dHRyTnVtYmVyIGF0dG51bSwKIAkJCQkJCQkJICBPaWQgKnR5cGlkLCBpbnQzMiAqdHlwbW9kLCBP aWQgKmNvbGxpZCk7CiBleHRlcm4gRGF0dW0gZ2V0X2F0dG9wdGlvbnMoT2lkIHJlbGlkLCBpbnQx NiBhdHRudW0pOwogZXh0ZXJuIE9pZAlnZXRfY2FzdF9vaWQoT2lkIHNvdXJjZXR5cGVpZCwgT2lk IHRhcmdldHR5cGVpZCwgYm9vbCBtaXNzaW5nX29rKTsKK2V4dGVybiBPaWQJZ2V0X2Zvcm1hdF9j YXN0X2Z1bmN0aW9uKE9pZCBzb3VyY2V0eXBlaWQsIE9pZCB0YXJnZXR0eXBlaWQsCisJCQkJCQkJ CSAgIE9pZCAqZm9ybWF0ZnVuYyk7CiBleHRlcm4gY2hhciAqZ2V0X2NvbGxhdGlvbl9uYW1lKE9p ZCBjb2xsb2lkKTsKIGV4dGVybiBib29sIGdldF9jb2xsYXRpb25faXNkZXRlcm1pbmlzdGljKE9p ZCBjb2xsb2lkKTsKIGV4dGVybiBjaGFyICpnZXRfY29uc3RyYWludF9uYW1lKE9pZCBjb25vaWQp OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9leHByZXNzaW9ucy5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2V4cHJlc3Npb25zLm91dAppbmRleCBkMzljZDFi N2ZiZC4uMWNiZDA1MTM1ZGQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv ZXhwcmVzc2lvbnMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXhwcmVzc2lv bnMub3V0CkBAIC01NjQsMjMgKzU2NCwyNyBAQCByb2xsYmFjazsKIC0tCiAtLSBDQVNUKGV4cHIg QVMgdHlwZSBGT1JNQVQgZm9ybWF0X2V4cHIpCiAtLQotLS0gVGhlIEZPUk1BVCBjbGF1c2UgaXMg cGFyc2VkIGFuZCBzdG9yZWQsIGJ1dCBmb3JtYXQgY2FzdCByZXNvbHV0aW9uIGlzIG5vdAotLS0g aW1wbGVtZW50ZWQgeWV0LCBzbyBwYXJzZSBhbmFseXNpcyBtdXN0IHJlamVjdCBpdCAobm90IGln bm9yZSBpdCkuCi0tLSBiYXNpYyBmb3JtCistLSBBIEZPUk1BVCBjbGF1c2UgaXMgcmVzb2x2ZWQg dGhyb3VnaCBhIHJlZ2lzdGVyZWQgZm9ybWF0IGNhc3QgKHNlZSBDUkVBVEUKKy0tIEZPUk1BVCBD QVNUKSBhbmQgbmV2ZXIgZmFsbHMgYmFjayB0byBhbiBvcmRpbmFyeSBjYXN0LiAgTm8gZm9ybWF0 X2Nhc3RzIGFyZQorLS0gZGVmaW5lZCBpbiB0aGlzIHRlc3QsIHNvIHRoZXNlIGNhc3RzIGZhaWwg d2l0aCBhIG1pc3NpbmctZm9ybWF0IGNhc3QgZXJyb3I7CistLSB0aGlzIGNvbmZpcm1zIHRoZSBG T1JNQVQgY2xhdXNlIGlzIG5laXRoZXIgaWdub3JlZCBub3IgdHJlYXRlZCBhcyBhbgorLS0gb3Jk aW5hcnkgY2FzdC4gIEFuIHVua25vd24tdHlwZSBzb3VyY2UgbGl0ZXJhbCBpcyBjb2VyY2VkIHRv IHRleHQgZmlyc3QsCistLSBzbyB0aGUgbG9va3VwIGtleSBpcyAodGV4dCwgdGFyZ2V0KS4KKy0t IGJhc2ljIGZvcm0gKGxvb2tzIHVwIGEgZm9ybWF0IGNhc3QgZm9yICh0ZXh0LCBkYXRlKSkKIFNF TEVDVCBDQVNUKCcyMDI2LTA2LTI0JyBBUyBkYXRlIEZPUk1BVCAnWVlZWS1NTS1ERCcpOwotRVJS T1I6ICBmb3JtYXR0ZWQgY2FzdHMgYXJlIG5vdCBpbXBsZW1lbnRlZCB5ZXQKK0VSUk9SOiAgZm9y bWF0IGNhc3QgZnJvbSB0eXBlIHRleHQgdG8gdHlwZSBkYXRlIGRvZXMgbm90IGV4aXN0CiBMSU5F IDE6IFNFTEVDVCBDQVNUKCcyMDI2LTA2LTI0JyBBUyBkYXRlIEZPUk1BVCAnWVlZWS1NTS1ERCcp OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgotREVU QUlMOiAgTm8gZm9ybWF0IGNhc3QgcmVzb2x1dGlvbiBtZWNoYW5pc20gaXMgYXZhaWxhYmxlLgor ICAgICAgICAgICAgICAgXgorSElOVDogIFVzZSBDUkVBVEUgRk9STUFUIENBU1QgdG8gZGVmaW5l IGEgZm9ybWF0IGNhc3QgZm9yIHRoaXMgdHlwZSBwYWlyLgogLS0gdGhlIGZvcm1hdCBtYXkgYmUg YSBnZW5lcmFsIGV4cHJlc3Npb24sIG5vdCBqdXN0IGEgc3RyaW5nIGxpdGVyYWwKIFNFTEVDVCBD QVNUKCcyMDI2LTA2LTI0JyBBUyBkYXRlIEZPUk1BVCAnWVlZWScgfHwgJy1NTS1ERCcpOwotRVJS T1I6ICBmb3JtYXR0ZWQgY2FzdHMgYXJlIG5vdCBpbXBsZW1lbnRlZCB5ZXQKK0VSUk9SOiAgZm9y bWF0IGNhc3QgZnJvbSB0eXBlIHRleHQgdG8gdHlwZSBkYXRlIGRvZXMgbm90IGV4aXN0CiBMSU5F IDE6IFNFTEVDVCBDQVNUKCcyMDI2LTA2LTI0JyBBUyBkYXRlIEZPUk1BVCAnWVlZWScgfHwgJy1N TS1ERCcpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgotREVUQUlMOiAgTm8gZm9ybWF0IGNhc3QgcmVzb2x1dGlvbiBtZWNoYW5pc20gaXMgYXZhaWxh YmxlLgotLS0gYSBuby1vcC1sb29raW5nIGNhc3QgbXVzdCBzdGlsbCBiZSByZWplY3RlZCwgbm90 IHJlbGFiZWxlZCBhd2F5CisgICAgICAgICAgICAgICBeCitISU5UOiAgVXNlIENSRUFURSBGT1JN QVQgQ0FTVCB0byBkZWZpbmUgYSBmb3JtYXQgY2FzdCBmb3IgdGhpcyB0eXBlIHBhaXIuCistLSBh IG5vLW9wLWxvb2tpbmcgY2FzdCBtdXN0IG5vdCBiZSByZWxhYmVsZWQgYXdheTsgaXQgbmVlZHMg YSAodGV4dCwgdGV4dCkgZm9ybWF0IGNhc3QKIFNFTEVDVCBDQVNUKCdhYmMnOjp0ZXh0IEFTIHRl eHQgRk9STUFUICd3aGF0ZXZlcicpOwotRVJST1I6ICBmb3JtYXR0ZWQgY2FzdHMgYXJlIG5vdCBp bXBsZW1lbnRlZCB5ZXQKK0VSUk9SOiAgZm9ybWF0IGNhc3QgZnJvbSB0eXBlIHRleHQgdG8gdHlw ZSB0ZXh0IGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IFNFTEVDVCBDQVNUKCdhYmMnOjp0ZXh0IEFT IHRleHQgRk9STUFUICd3aGF0ZXZlcicpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi1ERVRBSUw6ICBObyBmb3JtYXQgY2FzdCByZXNvbHV0aW9uIG1l Y2hhbmlzbSBpcyBhdmFpbGFibGUuCisgICAgICAgICAgICAgICBeCitISU5UOiAgVXNlIENSRUFU RSBGT1JNQVQgQ0FTVCB0byBkZWZpbmUgYSBmb3JtYXQgY2FzdCBmb3IgdGhpcyB0eXBlIHBhaXIu CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcm1hdF9jYXN0cy5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcm1hdF9jYXN0cy5vdXQKaW5kZXggMmFlNGNh MGQwZDAuLmNiODY4NDA4MGVmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2Zvcm1hdF9jYXN0cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JtYXRf Y2FzdHMub3V0CkBAIC0xLDkgKzEsMTAgQEAKIC0tCiAtLSBGT1JNQVQgQ0FTVFMKIC0tCi0tLSBD UkVBVEUvRFJPUCBGT1JNQVQgQ0FTVCByZWdpc3RlcnMgZm9ybWF0IGNhc3QgbWV0YWRhdGEgaW4g cGdfZm9ybWF0X2Nhc3QsCi0tLSBrZXllZCBieSBhIChzb3VyY2UgdHlwZSwgdGFyZ2V0IHR5cGUp IHBhaXIuICBUaGlzIGlzIGNhdGFsb2cgYW5kIERETAotLS0gaW5mcmFzdHJ1Y3R1cmUgb25seTsg aXQgZG9lcyBub3QgdHJhbnNmb3JtIG9yIGV4ZWN1dGUgZm9ybWF0dGVkIGNhc3RzLgorLS0gQSBm b3JtYXQgY2FzdCByZWdpc3RlcnMgYSBmdW5jdGlvbiBmb3IgYSAoc291cmNlIHR5cGUsIHRhcmdl dCB0eXBlKSBwYWlyOyBhCistLSBDQVNUKC4uLiBBUyB0YXJnZXQgRk9STUFUIGZvcm1hdF9leHBy KSBpcyByZXNvbHZlZCB0aHJvdWdoIHBnX2Zvcm1hdF9jYXN0IGFuZAorLS0gY2FsbHMgdGhhdCBm dW5jdGlvbi4gIFRoaXMgdGVzdCBjb3ZlcnMgYm90aCB0aGUgQ1JFQVRFL0RST1AgRk9STUFUIENB U1QKKy0tIGNhdGFsb2cgRERMIGFuZCB0aGUgZXhlY3V0aW9uIG9mIGZvcm1hdHRlZCBjYXN0cy4K IC0tIEEgc2ltcGxlIGZvcm1hdCBjYXN0IGZ1bmN0aW9uIHdpdGggdGhlIHJlcXVpcmVkIHNpZ25h dHVyZQogLS0gICBmdW5jdGlvbihzb3VyY2VfdHlwZSwgdGV4dCkgcmV0dXJucyB0YXJnZXRfdHlw ZQogQ1JFQVRFIEZVTkNUSU9OIGludDRfdG9fdGV4dF9mbXQoaW50ZWdlciwgdGV4dCkgUkVUVVJO UyB0ZXh0CkBAIC0xMDQsMTQgKzEwNSwxMjQgQEAgQ1JFQVRFIEZVTkNUSU9OIGZtdF9hbnllbChh bnllbGVtZW50LCB0ZXh0KSBSRVRVUk5TIHRleHQKIENSRUFURSBGT1JNQVQgQ0FTVCAoYW55ZWxl bWVudCBBUyB0ZXh0KQogCVdJVEggRlVOQ1RJT04gZm10X2FueWVsKGFueWVsZW1lbnQsIHRleHQp OwogRVJST1I6ICBzb3VyY2UgZGF0YSB0eXBlIGFueWVsZW1lbnQgaXMgYSBwc2V1ZG8tdHlwZQot LS0gUmVnaXN0ZXJpbmcgYSBmb3JtYXQgY2FzdCBkb2VzIG5vdCBlbmFibGUgYSBmb3JtYXR0ZWQg Y2FzdDogdGhlIEZPUk1BVAotLS0gY2xhdXNlIG11c3Qgbm90IGJlIHNpbGVudGx5IGlnbm9yZWQg b3IgcmV3cml0dGVuIHRvIGEgYnVpbHQtaW4gZnVuY3Rpb24sCi0tLSBzbyBDQVNUKC4uLiBGT1JN QVQgLi4uKSBpcyByZWplY3RlZCBkdXJpbmcgcGFyc2UgYW5hbHlzaXMuCi1TRUxFQ1QgQ0FTVCg1 IEFTIHRleHQgRk9STUFUICdZWVlZJyk7Ci1FUlJPUjogIGZvcm1hdHRlZCBjYXN0cyBhcmUgbm90 IGltcGxlbWVudGVkIHlldAotTElORSAxOiBTRUxFQ1QgQ0FTVCg1IEFTIHRleHQgRk9STUFUICdZ WVlZJyk7CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0gRXhlY3V0aW9uOiBhIGZvcm1hdHRlZCBjYXN0IHJl c29sdmVzIHRocm91Z2ggcGdfZm9ybWF0X2Nhc3QgYW5kIGNhbGxzIHRoZQorLS0gcmVnaXN0ZXJl ZCBmb3JtYXQgY2FzdCBmdW5jdGlvbi4KKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBiYXNpYyBleGVjdXRp b24sIHVzaW5nIHRoZSAoaW50ZWdlciwgdGV4dCkgZm9ybWF0IGNhc3QgY3JlYXRlZCBhYm92ZQor U0VMRUNUIENBU1QoNSBBUyB0ZXh0IEZPUk1BVCAnYWJjJyk7CisgdGV4dCAgCistLS0tLS0tCisg NTphYmMKKygxIHJvdykKKworLS0gdGhlIEZPUk1BVCBleHByZXNzaW9uIG1heSBiZSBhbnkgZXhw cmVzc2lvbiwgY29lcmNlZCB0byB0ZXh0CitTRUxFQ1QgQ0FTVCg1IEFTIHRleHQgRk9STUFUICdh JyB8fCAnYicpOworIHRleHQgCistLS0tLS0KKyA1OmFiCisoMSByb3cpCisKK1NFTEVDVCBDQVNU KDUgQVMgdGV4dCBGT1JNQVQgMTIzKTsKKyB0ZXh0ICAKKy0tLS0tLS0KKyA1OjEyMworKDEgcm93 KQorCistLSBUaGUgRk9STUFUIGV4cHJlc3Npb24gaXMgcGFyc2UtYW5hbHl6ZWQgaW5kZXBlbmRl bnRseSBvZiAoYW5kIGJlZm9yZSkgdGhlCistLSBmb3JtYXQgY2FzdCBsb29rdXAsIHNvIGFuIGlu dmFsaWQgRk9STUFUIGV4cHJlc3Npb24gcmVwb3J0cyBhIG5vcm1hbCBlcnJvci4KK1NFTEVDVCBD QVNUKDUgQVMgdGV4dCBGT1JNQVQgbm9fc3VjaF9jb2x1bW4pOworRVJST1I6ICBjb2x1bW4gIm5v X3N1Y2hfY29sdW1uIiBkb2VzIG5vdCBleGlzdAorTElORSAxOiBTRUxFQ1QgQ0FTVCg1IEFTIHRl eHQgRk9STUFUIG5vX3N1Y2hfY29sdW1uKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi1ERVRBSUw6ICBObyBmb3JtYXQgY2FzdCByZXNvbHV0aW9uIG1lY2hhbmlzbSBp cyBhdmFpbGFibGUuCistLSBMaWtlIGFuIG9yZGluYXJ5IGNhc3QgdGhhdCB1c2VzIGEgY2FzdCBm dW5jdGlvbiwgYSBmb3JtYXR0ZWQgY2FzdCBjaGVja3MKKy0tIEVYRUNVVEUgb24gdGhlIGZvcm1h dCBjYXN0IGZ1bmN0aW9uIGF0IHVzZSB0aW1lLgorUkVWT0tFIEVYRUNVVEUgT04gRlVOQ1RJT04g aW50NF90b190ZXh0X2ZtdChpbnRlZ2VyLCB0ZXh0KSBGUk9NIFBVQkxJQzsKK0NSRUFURSBST0xF IHJlZ3Jlc3NfZm9ybWF0X2Nhc3Rfbm9leGVjIE5PTE9HSU47CitTRVQgUk9MRSByZWdyZXNzX2Zv cm1hdF9jYXN0X25vZXhlYzsKK1NFTEVDVCBDQVNUKDUgQVMgdGV4dCBGT1JNQVQgJ3AnKTsJCQkt LSBmYWlsczogbm8gRVhFQ1VURSBvbiBmb3JtYXQgY2FzdCBmdW5jdGlvbgorRVJST1I6ICBwZXJt aXNzaW9uIGRlbmllZCBmb3IgZnVuY3Rpb24gaW50NF90b190ZXh0X2ZtdAorUkVTRVQgUk9MRTsK K0RST1AgUk9MRSByZWdyZXNzX2Zvcm1hdF9jYXN0X25vZXhlYzsKK0dSQU5UIEVYRUNVVEUgT04g RlVOQ1RJT04gaW50NF90b190ZXh0X2ZtdChpbnRlZ2VyLCB0ZXh0KSBUTyBQVUJMSUM7CistLSBB IEZPUk1BVCBjbGF1c2UgbmV2ZXIgZmFsbHMgYmFjayB0byBhbiBvcmRpbmFyeSBjYXN0OiB0ZXh0 IC0+IHRleHQgaXMgYQorLS0gdHJpdmlhbCBvcmRpbmFyeSBjYXN0LCBidXQgYSBmb3JtYXR0ZWQg Y2FzdCBzdGlsbCByZXF1aXJlcyBhIGZvcm1hdCBjYXN0LgorU0VMRUNUIENBU1QoJ2FiYyc6OnRl eHQgQVMgdGV4dCBGT1JNQVQgJ3doYXRldmVyJyk7CitFUlJPUjogIGZvcm1hdCBjYXN0IGZyb20g dHlwZSB0ZXh0IHRvIHR5cGUgdGV4dCBkb2VzIG5vdCBleGlzdAorTElORSAxOiBTRUxFQ1QgQ0FT VCgnYWJjJzo6dGV4dCBBUyB0ZXh0IEZPUk1BVCAnd2hhdGV2ZXInKTsKKyAgICAgICAgICAgICAg IF4KK0hJTlQ6ICBVc2UgQ1JFQVRFIEZPUk1BVCBDQVNUIHRvIGRlZmluZSBhIGZvcm1hdCBjYXN0 IGZvciB0aGlzIHR5cGUgcGFpci4KKy0tIEFuIHVua25vd24tdHlwZSBzb3VyY2UgbGl0ZXJhbCBp cyBjb2VyY2VkIHRvIHRleHQgZmlyc3QsIHNvIHRoaXMgYWxzbyBsb29rcworLS0gdXAgKHRleHQs IHRleHQpLCBub3QgKHVua25vd24sIHRleHQpLgorU0VMRUNUIENBU1QoJ2FiYycgQVMgdGV4dCBG T1JNQVQgJ2ZtdCcpOworRVJST1I6ICBmb3JtYXQgY2FzdCBmcm9tIHR5cGUgdGV4dCB0byB0eXBl IHRleHQgZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUIENBU1QoJ2FiYycgQVMgdGV4dCBG T1JNQVQgJ2ZtdCcpOworICAgICAgICAgICAgICAgXgorSElOVDogIFVzZSBDUkVBVEUgRk9STUFU IENBU1QgdG8gZGVmaW5lIGEgZm9ybWF0IGNhc3QgZm9yIHRoaXMgdHlwZSBwYWlyLgorLS0gQSBt aXNzaW5nIGZvcm1hdCBjYXN0IGlzIGFuIGVycm9yIGV2ZW4gd2hlcmUgYW4gb3JkaW5hcnkgY2Fz dCB3b3VsZCBiZSB2YWxpZC4KK1NFTEVDVCBDQVNUKDUgQVMgaW50ZWdlciBGT1JNQVQgJ3gnKTsK K0VSUk9SOiAgZm9ybWF0IGNhc3QgZnJvbSB0eXBlIGludGVnZXIgdG8gdHlwZSBpbnRlZ2VyIGRv ZXMgbm90IGV4aXN0CitMSU5FIDE6IFNFTEVDVCBDQVNUKDUgQVMgaW50ZWdlciBGT1JNQVQgJ3gn KTsKKyAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBVc2UgQ1JFQVRFIEZPUk1BVCBDQVNUIHRvIGRl ZmluZSBhIGZvcm1hdCBjYXN0IGZvciB0aGlzIHR5cGUgcGFpci4KKy0tIERlZmluZSB0aGUgKHRl eHQsIHRleHQpIGZvcm1hdCBjYXN0IGFuZCByZS1ydW4gdGhlIHRleHQtc291cmNlIGNhc2VzLgor Q1JFQVRFIEZVTkNUSU9OIHRleHRfdG9fdGV4dF9mbXQodGV4dCwgdGV4dCkgUkVUVVJOUyB0ZXh0 CisJTEFOR1VBR0Ugc3FsIElNTVVUQUJMRSBSRVRVUk4gJDEgfHwgJy8nIHx8ICQyOworQ1JFQVRF IEZPUk1BVCBDQVNUICh0ZXh0IEFTIHRleHQpCisJV0lUSCBGVU5DVElPTiB0ZXh0X3RvX3RleHRf Zm10KHRleHQsIHRleHQpOworU0VMRUNUIENBU1QoJ2FiYyc6OnRleHQgQVMgdGV4dCBGT1JNQVQg J3doYXRldmVyJyk7CisgICAgIHRleHQgICAgIAorLS0tLS0tLS0tLS0tLS0KKyBhYmMvd2hhdGV2 ZXIKKygxIHJvdykKKworU0VMRUNUIENBU1QoJ2FiYycgQVMgdGV4dCBGT1JNQVQgJ2ZtdCcpOwor ICB0ZXh0ICAgCistLS0tLS0tLS0KKyBhYmMvZm10CisoMSByb3cpCisKKy0tIEEgdHlwZSBtb2Rp ZmllciBvbiB0aGUgdGFyZ2V0IGlzIGVuZm9yY2VkIHRocm91Z2ggdGhlIG9yZGluYXJ5IGNvZXJj aW9uIHBhdGguCitDUkVBVEUgRlVOQ1RJT04gaW50NF90b192Y19mbXQoaW50ZWdlciwgdGV4dCkg UkVUVVJOUyB2YXJjaGFyCisJTEFOR1VBR0Ugc3FsIElNTVVUQUJMRSBSRVRVUk4gJDE6OnRleHQg fHwgJDI7CitDUkVBVEUgRk9STUFUIENBU1QgKGludGVnZXIgQVMgdmFyY2hhcikKKwlXSVRIIEZV TkNUSU9OIGludDRfdG9fdmNfZm10KGludGVnZXIsIHRleHQpOworU0VMRUNUIENBU1QoNSBBUyB2 YXJjaGFyIEZPUk1BVCAnWFhYWCcpOworIHZhcmNoYXIgCistLS0tLS0tLS0KKyA1WFhYWAorKDEg cm93KQorCitTRUxFQ1QgQ0FTVCg1IEFTIHZhcmNoYXIoMykgRk9STUFUICdYWFhYJyk7CQkJLS0g bGVuZ3RoIDMgZW5mb3JjZWQKKyB2YXJjaGFyIAorLS0tLS0tLS0tCisgNVhYCisoMSByb3cpCisK Ky0tIERvbWFpbiB0YXJnZXQ6IHRoZSBmb3JtYXQgY2FzdCBtdXN0IHJldHVybiB0aGUgZG9tYWlu IHR5cGUsIHNvIHRoZSBkb21haW4ncworLS0gY29uc3RyYWludHMgYXJlIGVuZm9yY2VkIGJ5IHRo ZSBmdW5jdGlvbidzIHJlc3VsdC4KK0NSRUFURSBET01BSU4gbm9uZW1wdHlfdGV4dCBBUyB0ZXh0 IENIRUNLIChWQUxVRSA8PiAnJyk7CitDUkVBVEUgRlVOQ1RJT04gdGV4dF90b19uZXRleHRfZm10 KHRleHQsIHRleHQpIFJFVFVSTlMgbm9uZW1wdHlfdGV4dAorCUxBTkdVQUdFIHNxbCBJTU1VVEFC TEUgUkVUVVJOICQyOjpub25lbXB0eV90ZXh0OworQ1JFQVRFIEZPUk1BVCBDQVNUICh0ZXh0IEFT IG5vbmVtcHR5X3RleHQpCisJV0lUSCBGVU5DVElPTiB0ZXh0X3RvX25ldGV4dF9mbXQodGV4dCwg dGV4dCk7CitTRUxFQ1QgQ0FTVCgneic6OnRleHQgQVMgbm9uZW1wdHlfdGV4dCBGT1JNQVQgJ29r Jyk7Cisgbm9uZW1wdHlfdGV4dCAKKy0tLS0tLS0tLS0tLS0tLQorIG9rCisoMSByb3cpCisKK1NF TEVDVCBDQVNUKCd6Jzo6dGV4dCBBUyBub25lbXB0eV90ZXh0IEZPUk1BVCAnJyk7CS0tIGRvbWFp biBjaGVjayB2aW9sYXRpb24KK0VSUk9SOiAgdmFsdWUgZm9yIGRvbWFpbiBub25lbXB0eV90ZXh0 IHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgIm5vbmVtcHR5X3RleHRfY2hlY2siCitDT05URVhU OiAgU1FMIGZ1bmN0aW9uICJ0ZXh0X3RvX25ldGV4dF9mbXQiIHN0YXRlbWVudCAxCistLSBEcm9w IHRoZSBvYmplY3RzIGNyZWF0ZWQgaW4gdGhpcyBleGVjdXRpb24gc2VjdGlvbi4KK0RST1AgRk9S TUFUIENBU1QgKHRleHQgQVMgdGV4dCk7CitEUk9QIEZVTkNUSU9OIHRleHRfdG9fdGV4dF9mbXQo dGV4dCwgdGV4dCk7CitEUk9QIEZPUk1BVCBDQVNUIChpbnRlZ2VyIEFTIHZhcmNoYXIpOworRFJP UCBGVU5DVElPTiBpbnQ0X3RvX3ZjX2ZtdChpbnRlZ2VyLCB0ZXh0KTsKK0RST1AgRk9STUFUIENB U1QgKHRleHQgQVMgbm9uZW1wdHlfdGV4dCk7CitEUk9QIEZVTkNUSU9OIHRleHRfdG9fbmV0ZXh0 X2ZtdCh0ZXh0LCB0ZXh0KTsKK0RST1AgRE9NQUlOIG5vbmVtcHR5X3RleHQ7CiAtLSBEZXBlbmRl bmN5IGJlaGF2aW9yOiB0aGUgZm9ybWF0IGNhc3QgZGVwZW5kcyBvbiBpdHMgZnVuY3Rpb24uCiBE Uk9QIEZVTkNUSU9OIGludDRfdG9fdGV4dF9mbXQoaW50ZWdlciwgdGV4dCk7CQkJCS0tIGZhaWxz IChSRVNUUklDVCkKIEVSUk9SOiAgY2Fubm90IGRyb3AgZnVuY3Rpb24gaW50NF90b190ZXh0X2Zt dChpbnRlZ2VyLHRleHQpIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKQEAgLTE1 NCwzICsyNjUsMTM1IEBAIERST1AgRlVOQ1RJT04gZm10X2JhZF9hcmcxKGJpZ2ludCwgdGV4dCk7 CiBEUk9QIEZVTkNUSU9OIGZtdF9iYWRfcmV0KGludGVnZXIsIHRleHQpOwogRFJPUCBGVU5DVElP TiBmbXRfYmFkX3NldChpbnRlZ2VyLCB0ZXh0KTsKIERST1AgRlVOQ1RJT04gZm10X2FueWVsKGFu eWVsZW1lbnQsIHRleHQpOworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIENvZXJjZVZpYUZvcm1hdENhc3Q6 IGRlcGFyc2UgZmlkZWxpdHkgYW5kIGRlcGVuZGVuY3kgb24gdGhlIGZvcm1hdCBjYXN0IHJvdwor LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KK0NSRUFURSBGVU5DVElPTiBpMnRfdmlldyhpbnRlZ2VyLCB0ZXh0KSBS RVRVUk5TIHRleHQKKwlMQU5HVUFHRSBzcWwgSU1NVVRBQkxFIFJFVFVSTiAkMTo6dGV4dCB8fCAn OicgfHwgJDI7CitDUkVBVEUgRk9STUFUIENBU1QgKGludGVnZXIgQVMgdGV4dCkKKwlXSVRIIEZV TkNUSU9OIGkydF92aWV3KGludGVnZXIsIHRleHQpOworLS0gQSB2aWV3IG92ZXIgYSBmb3JtYXR0 ZWQgY2FzdCBkZXBhcnNlcyBiYWNrIHRvIENBU1QoLi4uIEZPUk1BVCAuLi4pLgorQ1JFQVRFIFZJ RVcgZm9ybWF0X2Nhc3RfdmlldyBBUyBTRUxFQ1QgQ0FTVCg1IEFTIHRleHQgRk9STUFUICdhYmMn KSBBUyB4OworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdmb3JtYXRfY2FzdF92aWV3Jzo6cmVnY2xh c3MsIHRydWUpOworICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgIFNFTEVDVCBDQVNUKDUgQVMgdGV4dCBGT1JNQVQgJ2FiYyc6OnRleHQpIEFTIHg7CisoMSBy b3cpCisKK1NFTEVDVCAqIEZST00gZm9ybWF0X2Nhc3RfdmlldzsKKyAgIHggICAKKy0tLS0tLS0K KyA1OmFiYworKDEgcm93KQorCistLSBUaGUgdmlldyBkZXBlbmRzIG9uIHRoZSBwZ19mb3JtYXRf Y2FzdCByb3csIHNvIERST1AgRk9STUFUIENBU1QgUkVTVFJJQ1QgZmFpbHMuCitEUk9QIEZPUk1B VCBDQVNUIChpbnRlZ2VyIEFTIHRleHQpOwkJCQkJLS0gZmFpbHMgKFJFU1RSSUNULCB2aWV3IGRl cGVuZHMpCitFUlJPUjogIGNhbm5vdCBkcm9wIGZvcm1hdCBjYXN0IGZyb20gaW50ZWdlciB0byB0 ZXh0IGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHZpZXcgZm9y bWF0X2Nhc3RfdmlldyBkZXBlbmRzIG9uIGZvcm1hdCBjYXN0IGZyb20gaW50ZWdlciB0byB0ZXh0 CitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVj dHMgdG9vLgorLS0gLi4uIGFuZCBDQVNDQURFIGRyb3BzIHRoZSBkZXBlbmRlbnQgdmlldy4KK0RS T1AgRk9STUFUIENBU1QgKGludGVnZXIgQVMgdGV4dCkgQ0FTQ0FERTsKK05PVElDRTogIGRyb3Ag Y2FzY2FkZXMgdG8gdmlldyBmb3JtYXRfY2FzdF92aWV3CitTRUxFQ1QgY291bnQoKikgRlJPTSBw Z19jbGFzcyBXSEVSRSByZWxuYW1lID0gJ2Zvcm1hdF9jYXN0X3ZpZXcnOworIGNvdW50IAorLS0t LS0tLQorICAgICAwCisoMSByb3cpCisKK0RST1AgRlVOQ1RJT04gaTJ0X3ZpZXcoaW50ZWdlciwg dGV4dCk7CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0gQ29sbGF0aW9uOiBhIGZvcm1hdHRlZCBjYXN0IGJl aGF2ZXMgbGlrZSBjYWxsaW5nIHRoZSBmb3JtYXQgY2FzdCBmdW5jdGlvbgorLS0gZm9ybWF0ZnVu YyhhcmcsIGZvcm1hdCkuICBJdHMgcmVzdWx0IGNvbGxhdGlvbiBpcyB0aGUgcmVzdWx0IHR5cGUn cworLS0gY29sbGF0aW9uLCBhbmQgdGhlIGlucHV0IGNvbGxhdGlvbiBpcyBkZXJpdmVkIGZyb20g dGhlIGFyZyBhbmQgRk9STUFUCistLSBleHByZXNzaW9ucyBleGFjdGx5IGFzIGZvciBhbiBvcmRp bmFyeSB0d28tYXJndW1lbnQgZnVuY3Rpb24gY2FsbC4KKy0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSB0ZXh0 X2xhcmdlcih0ZXh0LCB0ZXh0KSByZXR1cm5zIHRleHQgYW5kIGlzIGNvbGxhdGlvbi1zZW5zaXRp dmUgYXQgdGhlIEMKKy0tIGxldmVsIChpdCByZWFkcyBQR19HRVRfQ09MTEFUSU9OKSwgc28gaXQg ZXhlcmNpc2VzIHRoZSBpbnB1dCBjb2xsYXRpb24uCitDUkVBVEUgRk9STUFUIENBU1QgKHRleHQg QVMgdGV4dCkKKwlXSVRIIEZVTkNUSU9OIHBnX2NhdGFsb2cudGV4dF9sYXJnZXIodGV4dCwgdGV4 dCk7CistLSBUaGUgZGVmYXVsdCBjb2xsYXRpb24gZmxvd3MgaW50byB0aGUgZm9ybWF0IGNhc3Qg Y2FsbDsgaWYgdGhlIGlucHV0IGNvbGxhdGlvbgorLS0gd2VyZSBsZWZ0IHVuc2V0IHRoaXMgd291 bGQgZmFpbCB3aXRoICJjb3VsZCBub3QgZGV0ZXJtaW5lIHdoaWNoIGNvbGxhdGlvbiIuCitTRUxF Q1QgQ0FTVCgnYXBwbGUnOjp0ZXh0IEFTIHRleHQgRk9STUFUICdiYW5hbmEnOjp0ZXh0KTsKKyAg dGV4dCAgCistLS0tLS0tLQorIGJhbmFuYQorKDEgcm93KQorCistLSBBbiBleHBsaWNpdCBDT0xM QVRFIG9uIGFuIG9wZXJhbmQgaXMgaG9ub3JlZCBhcyB0aGUgaW5wdXQgY29sbGF0aW9uLgorU0VM RUNUIENBU1QoJ2FwcGxlJzo6dGV4dCBBUyB0ZXh0IEZPUk1BVCAnYmFuYW5hJzo6dGV4dCBDT0xM QVRFICJDIik7CisgIHRleHQgIAorLS0tLS0tLS0KKyBiYW5hbmEKKygxIHJvdykKKworLS0gVGhl IHJlc3VsdCBpcyBjb2xsYXRhYmxlLCBzbyBhbiBleHBsaWNpdCBDT0xMQVRFIG9uIHRoZSBjYXN0 IGl0c2VsZiB3b3Jrcy4KK1NFTEVDVCBDQVNUKCdhcHBsZSc6OnRleHQgQVMgdGV4dCBGT1JNQVQg J2JhbmFuYSc6OnRleHQpIENPTExBVEUgIkMiIDwgJ3p6eic7CisgP2NvbHVtbj8gCistLS0tLS0t LS0tCisgdAorKDEgcm93KQorCistLSBDb25mbGljdGluZyBleHBsaWNpdCBpbnB1dCBjb2xsYXRp b25zIGFyZSByZWplY3RlZCwganVzdCBsaWtlIGEgcGxhaW4KKy0tIGZ1bmN0aW9uIGNhbGwgdGV4 dF9sYXJnZXIoJ2EnIENPTExBVEUgIkMiLCAnYicgQ09MTEFURSAiUE9TSVgiKS4KK1NFTEVDVCBD QVNUKCdhJzo6dGV4dCBDT0xMQVRFICJDIiBBUyB0ZXh0IEZPUk1BVCAnYic6OnRleHQgQ09MTEFU RSAiUE9TSVgiKTsKK0VSUk9SOiAgY29sbGF0aW9uIG1pc21hdGNoIGJldHdlZW4gZXhwbGljaXQg Y29sbGF0aW9ucyAiQyIgYW5kICJQT1NJWCIKK0xJTkUgMTogLi4uU1QoJ2EnOjp0ZXh0IENPTExB VEUgIkMiIEFTIHRleHQgRk9STUFUICdiJzo6dGV4dCBDT0xMQVRFICJQLi4uCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorRFJP UCBGT1JNQVQgQ0FTVCAodGV4dCBBUyB0ZXh0KTsKKy0tID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBydWxldXRp bHM6IGFyZyBhbmQgRk9STUFUIHN1YmV4cHJlc3Npb25zIGRlcGFyc2UgdW5hbWJpZ3VvdXNseSBp bnNpZGUKKy0tIENBU1QoLi4uKSwgbmVlZGluZyBubyBleHRyYSBwYXJlbnRoZXNlcywgYW5kIHJl LXBhcnNlIHRvIHRoZSBzYW1lIHRoaW5nLgorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK0NSRUFURSBGVU5DVElP TiBpMnRfcGFyZW4oaW50ZWdlciwgdGV4dCkgUkVUVVJOUyB0ZXh0CisJTEFOR1VBR0Ugc3FsIElN TVVUQUJMRSBSRVRVUk4gJDE6OnRleHQgfHwgJDI7CitDUkVBVEUgRk9STUFUIENBU1QgKGludGVn ZXIgQVMgdGV4dCkKKwlXSVRIIEZVTkNUSU9OIGkydF9wYXJlbihpbnRlZ2VyLCB0ZXh0KTsKK0NS RUFURSBWSUVXIGZvcm1hdF9jYXN0X3BhcmVuX3ZpZXcgQVMKKwlTRUxFQ1QgQ0FTVCgoMSArIDIp IEFTIHRleHQgRk9STUFUICgnYScgfHwgJ2InKSkgQVMgeDsKK1NFTEVDVCBwZ19nZXRfdmlld2Rl ZignZm9ybWF0X2Nhc3RfcGFyZW5fdmlldyc6OnJlZ2NsYXNzLCB0cnVlKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICBwZ19nZXRfdmlld2RlZiAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICBTRUxFQ1QgQ0FTVCgxICsgMiBBUyB0ZXh0IEZPUk1BVCAnYSc6OnRleHQgfHwg J2InOjp0ZXh0KSBBUyB4OworKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIGZvcm1hdF9jYXN0X3Bh cmVuX3ZpZXc7CisgIHggIAorLS0tLS0KKyAzYWIKKygxIHJvdykKKworRFJPUCBWSUVXIGZvcm1h dF9jYXN0X3BhcmVuX3ZpZXc7CitEUk9QIEZPUk1BVCBDQVNUIChpbnRlZ2VyIEFTIHRleHQpOwor RFJPUCBGVU5DVElPTiBpMnRfcGFyZW4oaW50ZWdlciwgdGV4dCk7CistLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0gRGVwZW5kZW5jeSBjb21wbGV0ZW5lc3M6IGEgdmlldyBvdmVyIGEgZm9ybWF0dGVkIGNhc3Qg ZGVwZW5kcyAodGhyb3VnaCB0aGUKKy0tIHBnX2Zvcm1hdF9jYXN0IHJvdykgb24gdGhlIGZvcm1h dCBjYXN0IGZ1bmN0aW9uLCBzbyBkcm9wcGluZyB0aGUgZnVuY3Rpb24gd2l0aAorLS0gQ0FTQ0FE RSByZW1vdmVzIGJvdGggdGhlIGZvcm1hdCBjYXN0IHJvdyBhbmQgdGhlIHZpZXcgaW4gb25lIHN0 ZXAuCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorQ1JFQVRFIEZVTkNUSU9OIGkydF9jaGFpbihpbnRlZ2VyLCB0 ZXh0KSBSRVRVUk5TIHRleHQKKwlMQU5HVUFHRSBzcWwgSU1NVVRBQkxFIFJFVFVSTiAkMTo6dGV4 dCB8fCAkMjsKK0NSRUFURSBGT1JNQVQgQ0FTVCAoaW50ZWdlciBBUyB0ZXh0KQorCVdJVEggRlVO Q1RJT04gaTJ0X2NoYWluKGludGVnZXIsIHRleHQpOworQ1JFQVRFIFZJRVcgZm9ybWF0X2Nhc3Rf Y2hhaW5fdmlldyBBUyBTRUxFQ1QgQ0FTVCg3IEFTIHRleHQgRk9STUFUICdxJykgQVMgeDsKK0RS T1AgRlVOQ1RJT04gaTJ0X2NoYWluKGludGVnZXIsIHRleHQpOwkJCQkJLS0gZmFpbHM6IGZvcm1h dCBjYXN0ICsgdmlldyBkZXBlbmQKK0VSUk9SOiAgY2Fubm90IGRyb3AgZnVuY3Rpb24gaTJ0X2No YWluKGludGVnZXIsdGV4dCkgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVU QUlMOiAgZm9ybWF0IGNhc3QgZnJvbSBpbnRlZ2VyIHRvIHRleHQgZGVwZW5kcyBvbiBmdW5jdGlv biBpMnRfY2hhaW4oaW50ZWdlcix0ZXh0KQordmlldyBmb3JtYXRfY2FzdF9jaGFpbl92aWV3IGRl cGVuZHMgb24gZnVuY3Rpb24gaTJ0X2NoYWluKGludGVnZXIsdGV4dCkKK0hJTlQ6ICBVc2UgRFJP UCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCitEUk9QIEZV TkNUSU9OIGkydF9jaGFpbihpbnRlZ2VyLCB0ZXh0KSBDQVNDQURFOwkJCS0tIGRyb3BzIGZvcm1h dCBjYXN0IGFuZCB2aWV3CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDIgb3RoZXIgb2JqZWN0 cworREVUQUlMOiAgZHJvcCBjYXNjYWRlcyB0byBmb3JtYXQgY2FzdCBmcm9tIGludGVnZXIgdG8g dGV4dAorZHJvcCBjYXNjYWRlcyB0byB2aWV3IGZvcm1hdF9jYXN0X2NoYWluX3ZpZXcKK1NFTEVD VCBjb3VudCgqKSBGUk9NIHBnX2Zvcm1hdF9jYXN0CisJV0hFUkUgZm10c291cmNlID0gJ2ludGVn ZXInOjpyZWd0eXBlIEFORCBmbXR0YXJnZXQgPSAndGV4dCc6OnJlZ3R5cGU7CisgY291bnQgCist LS0tLS0tCisgICAgIDAKKygxIHJvdykKKworU0VMRUNUIGNvdW50KCopIEZST00gcGdfY2xhc3Mg V0hFUkUgcmVsbmFtZSA9ICdmb3JtYXRfY2FzdF9jaGFpbl92aWV3JzsKKyBjb3VudCAKKy0tLS0t LS0KKyAgICAgMAorKDEgcm93KQorCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9l eHByZXNzaW9ucy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9leHByZXNzaW9ucy5zcWwKaW5k ZXggMzZlYWU4YzNmMDQuLmRmNGY1YjIwNDY2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9leHByZXNzaW9ucy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZXhwcmVzc2lv bnMuc3FsCkBAIC0zMDUsMTQgKzMwNSwxOCBAQCByb2xsYmFjazsKIC0tCiAtLSBDQVNUKGV4cHIg QVMgdHlwZSBGT1JNQVQgZm9ybWF0X2V4cHIpCiAtLQotLS0gVGhlIEZPUk1BVCBjbGF1c2UgaXMg cGFyc2VkIGFuZCBzdG9yZWQsIGJ1dCBmb3JtYXQgY2FzdCByZXNvbHV0aW9uIGlzIG5vdAotLS0g aW1wbGVtZW50ZWQgeWV0LCBzbyBwYXJzZSBhbmFseXNpcyBtdXN0IHJlamVjdCBpdCAobm90IGln bm9yZSBpdCkuCi0KLS0tIGJhc2ljIGZvcm0KKy0tIEEgRk9STUFUIGNsYXVzZSBpcyByZXNvbHZl ZCB0aHJvdWdoIGEgcmVnaXN0ZXJlZCBmb3JtYXQgY2FzdCAoc2VlIENSRUFURQorLS0gRk9STUFU IENBU1QpIGFuZCBuZXZlciBmYWxscyBiYWNrIHRvIGFuIG9yZGluYXJ5IGNhc3QuICBObyBmb3Jt YXRfY2FzdHMgYXJlCistLSBkZWZpbmVkIGluIHRoaXMgdGVzdCwgc28gdGhlc2UgY2FzdHMgZmFp bCB3aXRoIGEgbWlzc2luZy1mb3JtYXQgY2FzdCBlcnJvcjsKKy0tIHRoaXMgY29uZmlybXMgdGhl IEZPUk1BVCBjbGF1c2UgaXMgbmVpdGhlciBpZ25vcmVkIG5vciB0cmVhdGVkIGFzIGFuCistLSBv cmRpbmFyeSBjYXN0LiAgQW4gdW5rbm93bi10eXBlIHNvdXJjZSBsaXRlcmFsIGlzIGNvZXJjZWQg dG8gdGV4dCBmaXJzdCwKKy0tIHNvIHRoZSBsb29rdXAga2V5IGlzICh0ZXh0LCB0YXJnZXQpLgor CistLSBiYXNpYyBmb3JtIChsb29rcyB1cCBhIGZvcm1hdCBjYXN0IGZvciAodGV4dCwgZGF0ZSkp CiBTRUxFQ1QgQ0FTVCgnMjAyNi0wNi0yNCcgQVMgZGF0ZSBGT1JNQVQgJ1lZWVktTU0tREQnKTsK IAogLS0gdGhlIGZvcm1hdCBtYXkgYmUgYSBnZW5lcmFsIGV4cHJlc3Npb24sIG5vdCBqdXN0IGEg c3RyaW5nIGxpdGVyYWwKIFNFTEVDVCBDQVNUKCcyMDI2LTA2LTI0JyBBUyBkYXRlIEZPUk1BVCAn WVlZWScgfHwgJy1NTS1ERCcpOwogCi0tLSBhIG5vLW9wLWxvb2tpbmcgY2FzdCBtdXN0IHN0aWxs IGJlIHJlamVjdGVkLCBub3QgcmVsYWJlbGVkIGF3YXkKKy0tIGEgbm8tb3AtbG9va2luZyBjYXN0 IG11c3Qgbm90IGJlIHJlbGFiZWxlZCBhd2F5OyBpdCBuZWVkcyBhICh0ZXh0LCB0ZXh0KSBmb3Jt YXQgY2FzdAogU0VMRUNUIENBU1QoJ2FiYyc6OnRleHQgQVMgdGV4dCBGT1JNQVQgJ3doYXRldmVy Jyk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JtYXRfY2FzdHMuc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9ybWF0X2Nhc3RzLnNxbAppbmRleCA0NDUzYTA5Nzg0ZS4u MDVkMzIzNmI1YWMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcm1hdF9jYXN0 cy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9ybWF0X2Nhc3RzLnNxbApAQCAtMSw5 ICsxLDEwIEBACiAtLQogLS0gRk9STUFUIENBU1RTCiAtLQotLS0gQ1JFQVRFL0RST1AgRk9STUFU IENBU1QgcmVnaXN0ZXJzIGZvcm1hdCBjYXN0IG1ldGFkYXRhIGluIHBnX2Zvcm1hdF9jYXN0LAot LS0ga2V5ZWQgYnkgYSAoc291cmNlIHR5cGUsIHRhcmdldCB0eXBlKSBwYWlyLiAgVGhpcyBpcyBj YXRhbG9nIGFuZCBEREwKLS0tIGluZnJhc3RydWN0dXJlIG9ubHk7IGl0IGRvZXMgbm90IHRyYW5z Zm9ybSBvciBleGVjdXRlIGZvcm1hdHRlZCBjYXN0cy4KKy0tIEEgZm9ybWF0IGNhc3QgcmVnaXN0 ZXJzIGEgZnVuY3Rpb24gZm9yIGEgKHNvdXJjZSB0eXBlLCB0YXJnZXQgdHlwZSkgcGFpcjsgYQor LS0gQ0FTVCguLi4gQVMgdGFyZ2V0IEZPUk1BVCBmb3JtYXRfZXhwcikgaXMgcmVzb2x2ZWQgdGhy b3VnaCBwZ19mb3JtYXRfY2FzdCBhbmQKKy0tIGNhbGxzIHRoYXQgZnVuY3Rpb24uICBUaGlzIHRl c3QgY292ZXJzIGJvdGggdGhlIENSRUFURS9EUk9QIEZPUk1BVCBDQVNUCistLSBjYXRhbG9nIERE TCBhbmQgdGhlIGV4ZWN1dGlvbiBvZiBmb3JtYXR0ZWQgY2FzdHMuCiAKIC0tIEEgc2ltcGxlIGZv cm1hdCBjYXN0IGZ1bmN0aW9uIHdpdGggdGhlIHJlcXVpcmVkIHNpZ25hdHVyZQogLS0gICBmdW5j dGlvbihzb3VyY2VfdHlwZSwgdGV4dCkgcmV0dXJucyB0YXJnZXRfdHlwZQpAQCAtODYsMTAgKzg3 LDc0IEBAIENSRUFURSBGVU5DVElPTiBmbXRfYW55ZWwoYW55ZWxlbWVudCwgdGV4dCkgUkVUVVJO UyB0ZXh0CiBDUkVBVEUgRk9STUFUIENBU1QgKGFueWVsZW1lbnQgQVMgdGV4dCkKIAlXSVRIIEZV TkNUSU9OIGZtdF9hbnllbChhbnllbGVtZW50LCB0ZXh0KTsKIAotLS0gUmVnaXN0ZXJpbmcgYSBm b3JtYXQgY2FzdCBkb2VzIG5vdCBlbmFibGUgYSBmb3JtYXR0ZWQgY2FzdDogdGhlIEZPUk1BVAot LS0gY2xhdXNlIG11c3Qgbm90IGJlIHNpbGVudGx5IGlnbm9yZWQgb3IgcmV3cml0dGVuIHRvIGEg YnVpbHQtaW4gZnVuY3Rpb24sCi0tLSBzbyBDQVNUKC4uLiBGT1JNQVQgLi4uKSBpcyByZWplY3Rl ZCBkdXJpbmcgcGFyc2UgYW5hbHlzaXMuCi1TRUxFQ1QgQ0FTVCg1IEFTIHRleHQgRk9STUFUICdZ WVlZJyk7CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0gRXhlY3V0aW9uOiBhIGZvcm1hdHRlZCBjYXN0IHJl c29sdmVzIHRocm91Z2ggcGdfZm9ybWF0X2Nhc3QgYW5kIGNhbGxzIHRoZQorLS0gcmVnaXN0ZXJl ZCBmb3JtYXQgY2FzdCBmdW5jdGlvbi4KKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0tIGJhc2ljIGV4ZWN1 dGlvbiwgdXNpbmcgdGhlIChpbnRlZ2VyLCB0ZXh0KSBmb3JtYXQgY2FzdCBjcmVhdGVkIGFib3Zl CitTRUxFQ1QgQ0FTVCg1IEFTIHRleHQgRk9STUFUICdhYmMnKTsKKy0tIHRoZSBGT1JNQVQgZXhw cmVzc2lvbiBtYXkgYmUgYW55IGV4cHJlc3Npb24sIGNvZXJjZWQgdG8gdGV4dAorU0VMRUNUIENB U1QoNSBBUyB0ZXh0IEZPUk1BVCAnYScgfHwgJ2InKTsKK1NFTEVDVCBDQVNUKDUgQVMgdGV4dCBG T1JNQVQgMTIzKTsKKworLS0gVGhlIEZPUk1BVCBleHByZXNzaW9uIGlzIHBhcnNlLWFuYWx5emVk IGluZGVwZW5kZW50bHkgb2YgKGFuZCBiZWZvcmUpIHRoZQorLS0gZm9ybWF0IGNhc3QgbG9va3Vw LCBzbyBhbiBpbnZhbGlkIEZPUk1BVCBleHByZXNzaW9uIHJlcG9ydHMgYSBub3JtYWwgZXJyb3Iu CitTRUxFQ1QgQ0FTVCg1IEFTIHRleHQgRk9STUFUIG5vX3N1Y2hfY29sdW1uKTsKKworLS0gTGlr ZSBhbiBvcmRpbmFyeSBjYXN0IHRoYXQgdXNlcyBhIGNhc3QgZnVuY3Rpb24sIGEgZm9ybWF0dGVk IGNhc3QgY2hlY2tzCistLSBFWEVDVVRFIG9uIHRoZSBmb3JtYXQgY2FzdCBmdW5jdGlvbiBhdCB1 c2UgdGltZS4KK1JFVk9LRSBFWEVDVVRFIE9OIEZVTkNUSU9OIGludDRfdG9fdGV4dF9mbXQoaW50 ZWdlciwgdGV4dCkgRlJPTSBQVUJMSUM7CitDUkVBVEUgUk9MRSByZWdyZXNzX2Zvcm1hdF9jYXN0 X25vZXhlYyBOT0xPR0lOOworU0VUIFJPTEUgcmVncmVzc19mb3JtYXRfY2FzdF9ub2V4ZWM7CitT RUxFQ1QgQ0FTVCg1IEFTIHRleHQgRk9STUFUICdwJyk7CQkJLS0gZmFpbHM6IG5vIEVYRUNVVEUg b24gZm9ybWF0IGNhc3QgZnVuY3Rpb24KK1JFU0VUIFJPTEU7CitEUk9QIFJPTEUgcmVncmVzc19m b3JtYXRfY2FzdF9ub2V4ZWM7CitHUkFOVCBFWEVDVVRFIE9OIEZVTkNUSU9OIGludDRfdG9fdGV4 dF9mbXQoaW50ZWdlciwgdGV4dCkgVE8gUFVCTElDOworCistLSBBIEZPUk1BVCBjbGF1c2UgbmV2 ZXIgZmFsbHMgYmFjayB0byBhbiBvcmRpbmFyeSBjYXN0OiB0ZXh0IC0+IHRleHQgaXMgYQorLS0g dHJpdmlhbCBvcmRpbmFyeSBjYXN0LCBidXQgYSBmb3JtYXR0ZWQgY2FzdCBzdGlsbCByZXF1aXJl cyBhIGZvcm1hdCBjYXN0LgorU0VMRUNUIENBU1QoJ2FiYyc6OnRleHQgQVMgdGV4dCBGT1JNQVQg J3doYXRldmVyJyk7CistLSBBbiB1bmtub3duLXR5cGUgc291cmNlIGxpdGVyYWwgaXMgY29lcmNl ZCB0byB0ZXh0IGZpcnN0LCBzbyB0aGlzIGFsc28gbG9va3MKKy0tIHVwICh0ZXh0LCB0ZXh0KSwg bm90ICh1bmtub3duLCB0ZXh0KS4KK1NFTEVDVCBDQVNUKCdhYmMnIEFTIHRleHQgRk9STUFUICdm bXQnKTsKKy0tIEEgbWlzc2luZyBmb3JtYXQgY2FzdCBpcyBhbiBlcnJvciBldmVuIHdoZXJlIGFu IG9yZGluYXJ5IGNhc3Qgd291bGQgYmUgdmFsaWQuCitTRUxFQ1QgQ0FTVCg1IEFTIGludGVnZXIg Rk9STUFUICd4Jyk7CisKKy0tIERlZmluZSB0aGUgKHRleHQsIHRleHQpIGZvcm1hdCBjYXN0IGFu ZCByZS1ydW4gdGhlIHRleHQtc291cmNlIGNhc2VzLgorQ1JFQVRFIEZVTkNUSU9OIHRleHRfdG9f dGV4dF9mbXQodGV4dCwgdGV4dCkgUkVUVVJOUyB0ZXh0CisJTEFOR1VBR0Ugc3FsIElNTVVUQUJM RSBSRVRVUk4gJDEgfHwgJy8nIHx8ICQyOworQ1JFQVRFIEZPUk1BVCBDQVNUICh0ZXh0IEFTIHRl eHQpCisJV0lUSCBGVU5DVElPTiB0ZXh0X3RvX3RleHRfZm10KHRleHQsIHRleHQpOworU0VMRUNU IENBU1QoJ2FiYyc6OnRleHQgQVMgdGV4dCBGT1JNQVQgJ3doYXRldmVyJyk7CitTRUxFQ1QgQ0FT VCgnYWJjJyBBUyB0ZXh0IEZPUk1BVCAnZm10Jyk7CisKKy0tIEEgdHlwZSBtb2RpZmllciBvbiB0 aGUgdGFyZ2V0IGlzIGVuZm9yY2VkIHRocm91Z2ggdGhlIG9yZGluYXJ5IGNvZXJjaW9uIHBhdGgu CitDUkVBVEUgRlVOQ1RJT04gaW50NF90b192Y19mbXQoaW50ZWdlciwgdGV4dCkgUkVUVVJOUyB2 YXJjaGFyCisJTEFOR1VBR0Ugc3FsIElNTVVUQUJMRSBSRVRVUk4gJDE6OnRleHQgfHwgJDI7CitD UkVBVEUgRk9STUFUIENBU1QgKGludGVnZXIgQVMgdmFyY2hhcikKKwlXSVRIIEZVTkNUSU9OIGlu dDRfdG9fdmNfZm10KGludGVnZXIsIHRleHQpOworU0VMRUNUIENBU1QoNSBBUyB2YXJjaGFyIEZP Uk1BVCAnWFhYWCcpOworU0VMRUNUIENBU1QoNSBBUyB2YXJjaGFyKDMpIEZPUk1BVCAnWFhYWCcp OwkJCS0tIGxlbmd0aCAzIGVuZm9yY2VkCisKKy0tIERvbWFpbiB0YXJnZXQ6IHRoZSBmb3JtYXQg Y2FzdCBtdXN0IHJldHVybiB0aGUgZG9tYWluIHR5cGUsIHNvIHRoZSBkb21haW4ncworLS0gY29u c3RyYWludHMgYXJlIGVuZm9yY2VkIGJ5IHRoZSBmdW5jdGlvbidzIHJlc3VsdC4KK0NSRUFURSBE T01BSU4gbm9uZW1wdHlfdGV4dCBBUyB0ZXh0IENIRUNLIChWQUxVRSA8PiAnJyk7CitDUkVBVEUg RlVOQ1RJT04gdGV4dF90b19uZXRleHRfZm10KHRleHQsIHRleHQpIFJFVFVSTlMgbm9uZW1wdHlf dGV4dAorCUxBTkdVQUdFIHNxbCBJTU1VVEFCTEUgUkVUVVJOICQyOjpub25lbXB0eV90ZXh0Owor Q1JFQVRFIEZPUk1BVCBDQVNUICh0ZXh0IEFTIG5vbmVtcHR5X3RleHQpCisJV0lUSCBGVU5DVElP TiB0ZXh0X3RvX25ldGV4dF9mbXQodGV4dCwgdGV4dCk7CitTRUxFQ1QgQ0FTVCgneic6OnRleHQg QVMgbm9uZW1wdHlfdGV4dCBGT1JNQVQgJ29rJyk7CitTRUxFQ1QgQ0FTVCgneic6OnRleHQgQVMg bm9uZW1wdHlfdGV4dCBGT1JNQVQgJycpOwktLSBkb21haW4gY2hlY2sgdmlvbGF0aW9uCisKKy0t IERyb3AgdGhlIG9iamVjdHMgY3JlYXRlZCBpbiB0aGlzIGV4ZWN1dGlvbiBzZWN0aW9uLgorRFJP UCBGT1JNQVQgQ0FTVCAodGV4dCBBUyB0ZXh0KTsKK0RST1AgRlVOQ1RJT04gdGV4dF90b190ZXh0 X2ZtdCh0ZXh0LCB0ZXh0KTsKK0RST1AgRk9STUFUIENBU1QgKGludGVnZXIgQVMgdmFyY2hhcik7 CitEUk9QIEZVTkNUSU9OIGludDRfdG9fdmNfZm10KGludGVnZXIsIHRleHQpOworRFJPUCBGT1JN QVQgQ0FTVCAodGV4dCBBUyBub25lbXB0eV90ZXh0KTsKK0RST1AgRlVOQ1RJT04gdGV4dF90b19u ZXRleHRfZm10KHRleHQsIHRleHQpOworRFJPUCBET01BSU4gbm9uZW1wdHlfdGV4dDsKIAogLS0g RGVwZW5kZW5jeSBiZWhhdmlvcjogdGhlIGZvcm1hdCBjYXN0IGRlcGVuZHMgb24gaXRzIGZ1bmN0 aW9uLgogRFJPUCBGVU5DVElPTiBpbnQ0X3RvX3RleHRfZm10KGludGVnZXIsIHRleHQpOwkJCQkt LSBmYWlscyAoUkVTVFJJQ1QpCkBAIC0xMjQsMyArMTg5LDc3IEBAIERST1AgRlVOQ1RJT04gZm10 X2JhZF9hcmcxKGJpZ2ludCwgdGV4dCk7CiBEUk9QIEZVTkNUSU9OIGZtdF9iYWRfcmV0KGludGVn ZXIsIHRleHQpOwogRFJPUCBGVU5DVElPTiBmbXRfYmFkX3NldChpbnRlZ2VyLCB0ZXh0KTsKIERS T1AgRlVOQ1RJT04gZm10X2FueWVsKGFueWVsZW1lbnQsIHRleHQpOworCistLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0gQ29lcmNlVmlhRm9ybWF0Q2FzdDogZGVwYXJzZSBmaWRlbGl0eSBhbmQgZGVwZW5kZW5j eSBvbiB0aGUgZm9ybWF0IGNhc3Qgcm93CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorQ1JFQVRFIEZVTkNUSU9O IGkydF92aWV3KGludGVnZXIsIHRleHQpIFJFVFVSTlMgdGV4dAorCUxBTkdVQUdFIHNxbCBJTU1V VEFCTEUgUkVUVVJOICQxOjp0ZXh0IHx8ICc6JyB8fCAkMjsKK0NSRUFURSBGT1JNQVQgQ0FTVCAo aW50ZWdlciBBUyB0ZXh0KQorCVdJVEggRlVOQ1RJT04gaTJ0X3ZpZXcoaW50ZWdlciwgdGV4dCk7 CisKKy0tIEEgdmlldyBvdmVyIGEgZm9ybWF0dGVkIGNhc3QgZGVwYXJzZXMgYmFjayB0byBDQVNU KC4uLiBGT1JNQVQgLi4uKS4KK0NSRUFURSBWSUVXIGZvcm1hdF9jYXN0X3ZpZXcgQVMgU0VMRUNU IENBU1QoNSBBUyB0ZXh0IEZPUk1BVCAnYWJjJykgQVMgeDsKK1NFTEVDVCBwZ19nZXRfdmlld2Rl ZignZm9ybWF0X2Nhc3Rfdmlldyc6OnJlZ2NsYXNzLCB0cnVlKTsKK1NFTEVDVCAqIEZST00gZm9y bWF0X2Nhc3RfdmlldzsKKworLS0gVGhlIHZpZXcgZGVwZW5kcyBvbiB0aGUgcGdfZm9ybWF0X2Nh c3Qgcm93LCBzbyBEUk9QIEZPUk1BVCBDQVNUIFJFU1RSSUNUIGZhaWxzLgorRFJPUCBGT1JNQVQg Q0FTVCAoaW50ZWdlciBBUyB0ZXh0KTsJCQkJCS0tIGZhaWxzIChSRVNUUklDVCwgdmlldyBkZXBl bmRzKQorLS0gLi4uIGFuZCBDQVNDQURFIGRyb3BzIHRoZSBkZXBlbmRlbnQgdmlldy4KK0RST1Ag Rk9STUFUIENBU1QgKGludGVnZXIgQVMgdGV4dCkgQ0FTQ0FERTsKK1NFTEVDVCBjb3VudCgqKSBG Uk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAnZm9ybWF0X2Nhc3Rfdmlldyc7CitEUk9QIEZV TkNUSU9OIGkydF92aWV3KGludGVnZXIsIHRleHQpOworCistLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQ29s bGF0aW9uOiBhIGZvcm1hdHRlZCBjYXN0IGJlaGF2ZXMgbGlrZSBjYWxsaW5nIHRoZSBmb3JtYXQg Y2FzdCBmdW5jdGlvbgorLS0gZm9ybWF0ZnVuYyhhcmcsIGZvcm1hdCkuICBJdHMgcmVzdWx0IGNv bGxhdGlvbiBpcyB0aGUgcmVzdWx0IHR5cGUncworLS0gY29sbGF0aW9uLCBhbmQgdGhlIGlucHV0 IGNvbGxhdGlvbiBpcyBkZXJpdmVkIGZyb20gdGhlIGFyZyBhbmQgRk9STUFUCistLSBleHByZXNz aW9ucyBleGFjdGx5IGFzIGZvciBhbiBvcmRpbmFyeSB0d28tYXJndW1lbnQgZnVuY3Rpb24gY2Fs bC4KKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLSB0ZXh0X2xhcmdlcih0ZXh0LCB0ZXh0KSByZXR1cm5zIHRl eHQgYW5kIGlzIGNvbGxhdGlvbi1zZW5zaXRpdmUgYXQgdGhlIEMKKy0tIGxldmVsIChpdCByZWFk cyBQR19HRVRfQ09MTEFUSU9OKSwgc28gaXQgZXhlcmNpc2VzIHRoZSBpbnB1dCBjb2xsYXRpb24u CitDUkVBVEUgRk9STUFUIENBU1QgKHRleHQgQVMgdGV4dCkKKwlXSVRIIEZVTkNUSU9OIHBnX2Nh dGFsb2cudGV4dF9sYXJnZXIodGV4dCwgdGV4dCk7CistLSBUaGUgZGVmYXVsdCBjb2xsYXRpb24g Zmxvd3MgaW50byB0aGUgZm9ybWF0IGNhc3QgY2FsbDsgaWYgdGhlIGlucHV0IGNvbGxhdGlvbgor LS0gd2VyZSBsZWZ0IHVuc2V0IHRoaXMgd291bGQgZmFpbCB3aXRoICJjb3VsZCBub3QgZGV0ZXJt aW5lIHdoaWNoIGNvbGxhdGlvbiIuCitTRUxFQ1QgQ0FTVCgnYXBwbGUnOjp0ZXh0IEFTIHRleHQg Rk9STUFUICdiYW5hbmEnOjp0ZXh0KTsKKy0tIEFuIGV4cGxpY2l0IENPTExBVEUgb24gYW4gb3Bl cmFuZCBpcyBob25vcmVkIGFzIHRoZSBpbnB1dCBjb2xsYXRpb24uCitTRUxFQ1QgQ0FTVCgnYXBw bGUnOjp0ZXh0IEFTIHRleHQgRk9STUFUICdiYW5hbmEnOjp0ZXh0IENPTExBVEUgIkMiKTsKKy0t IFRoZSByZXN1bHQgaXMgY29sbGF0YWJsZSwgc28gYW4gZXhwbGljaXQgQ09MTEFURSBvbiB0aGUg Y2FzdCBpdHNlbGYgd29ya3MuCitTRUxFQ1QgQ0FTVCgnYXBwbGUnOjp0ZXh0IEFTIHRleHQgRk9S TUFUICdiYW5hbmEnOjp0ZXh0KSBDT0xMQVRFICJDIiA8ICd6enonOworLS0gQ29uZmxpY3Rpbmcg ZXhwbGljaXQgaW5wdXQgY29sbGF0aW9ucyBhcmUgcmVqZWN0ZWQsIGp1c3QgbGlrZSBhIHBsYWlu CistLSBmdW5jdGlvbiBjYWxsIHRleHRfbGFyZ2VyKCdhJyBDT0xMQVRFICJDIiwgJ2InIENPTExB VEUgIlBPU0lYIikuCitTRUxFQ1QgQ0FTVCgnYSc6OnRleHQgQ09MTEFURSAiQyIgQVMgdGV4dCBG T1JNQVQgJ2InOjp0ZXh0IENPTExBVEUgIlBPU0lYIik7CitEUk9QIEZPUk1BVCBDQVNUICh0ZXh0 IEFTIHRleHQpOworCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gcnVsZXV0aWxzOiBhcmcgYW5kIEZPUk1B VCBzdWJleHByZXNzaW9ucyBkZXBhcnNlIHVuYW1iaWd1b3VzbHkgaW5zaWRlCistLSBDQVNUKC4u LiksIG5lZWRpbmcgbm8gZXh0cmEgcGFyZW50aGVzZXMsIGFuZCByZS1wYXJzZSB0byB0aGUgc2Ft ZSB0aGluZy4KKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CitDUkVBVEUgRlVOQ1RJT04gaTJ0X3BhcmVuKGludGVn ZXIsIHRleHQpIFJFVFVSTlMgdGV4dAorCUxBTkdVQUdFIHNxbCBJTU1VVEFCTEUgUkVUVVJOICQx Ojp0ZXh0IHx8ICQyOworQ1JFQVRFIEZPUk1BVCBDQVNUIChpbnRlZ2VyIEFTIHRleHQpCisJV0lU SCBGVU5DVElPTiBpMnRfcGFyZW4oaW50ZWdlciwgdGV4dCk7CitDUkVBVEUgVklFVyBmb3JtYXRf Y2FzdF9wYXJlbl92aWV3IEFTCisJU0VMRUNUIENBU1QoKDEgKyAyKSBBUyB0ZXh0IEZPUk1BVCAo J2EnIHx8ICdiJykpIEFTIHg7CitTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ2Zvcm1hdF9jYXN0X3Bh cmVuX3ZpZXcnOjpyZWdjbGFzcywgdHJ1ZSk7CitTRUxFQ1QgKiBGUk9NIGZvcm1hdF9jYXN0X3Bh cmVuX3ZpZXc7CitEUk9QIFZJRVcgZm9ybWF0X2Nhc3RfcGFyZW5fdmlldzsKK0RST1AgRk9STUFU IENBU1QgKGludGVnZXIgQVMgdGV4dCk7CitEUk9QIEZVTkNUSU9OIGkydF9wYXJlbihpbnRlZ2Vy LCB0ZXh0KTsKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIERlcGVuZGVuY3kgY29tcGxldGVuZXNzOiBh IHZpZXcgb3ZlciBhIGZvcm1hdHRlZCBjYXN0IGRlcGVuZHMgKHRocm91Z2ggdGhlCistLSBwZ19m b3JtYXRfY2FzdCByb3cpIG9uIHRoZSBmb3JtYXQgY2FzdCBmdW5jdGlvbiwgc28gZHJvcHBpbmcg dGhlIGZ1bmN0aW9uIHdpdGgKKy0tIENBU0NBREUgcmVtb3ZlcyBib3RoIHRoZSBmb3JtYXQgY2Fz dCByb3cgYW5kIHRoZSB2aWV3IGluIG9uZSBzdGVwLgorLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK0NSRUFURSBG VU5DVElPTiBpMnRfY2hhaW4oaW50ZWdlciwgdGV4dCkgUkVUVVJOUyB0ZXh0CisJTEFOR1VBR0Ug c3FsIElNTVVUQUJMRSBSRVRVUk4gJDE6OnRleHQgfHwgJDI7CitDUkVBVEUgRk9STUFUIENBU1Qg KGludGVnZXIgQVMgdGV4dCkKKwlXSVRIIEZVTkNUSU9OIGkydF9jaGFpbihpbnRlZ2VyLCB0ZXh0 KTsKK0NSRUFURSBWSUVXIGZvcm1hdF9jYXN0X2NoYWluX3ZpZXcgQVMgU0VMRUNUIENBU1QoNyBB UyB0ZXh0IEZPUk1BVCAncScpIEFTIHg7CitEUk9QIEZVTkNUSU9OIGkydF9jaGFpbihpbnRlZ2Vy LCB0ZXh0KTsJCQkJCS0tIGZhaWxzOiBmb3JtYXQgY2FzdCArIHZpZXcgZGVwZW5kCitEUk9QIEZV TkNUSU9OIGkydF9jaGFpbihpbnRlZ2VyLCB0ZXh0KSBDQVNDQURFOwkJCS0tIGRyb3BzIGZvcm1h dCBjYXN0IGFuZCB2aWV3CitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19mb3JtYXRfY2FzdAorCVdI RVJFIGZtdHNvdXJjZSA9ICdpbnRlZ2VyJzo6cmVndHlwZSBBTkQgZm10dGFyZ2V0ID0gJ3RleHQn OjpyZWd0eXBlOworU0VMRUNUIGNvdW50KCopIEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9 ICdmb3JtYXRfY2FzdF9jaGFpbl92aWV3JzsKLS0gCjIuNTQuMAoK --00000000000029b62906557c0e56 Content-Type: application/octet-stream; name="v2-0001-Add-parser-support-for-CAST-FORMAT.patch" Content-Disposition: attachment; filename="v2-0001-Add-parser-support-for-CAST-FORMAT.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mr0xl5vq0 RnJvbSA4MjY1OGRjYmJkNGE0NTg0NGFlNjcwZTI3Y2Y1N2ZhZjFhYjFkYjdmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIYWlibyBZYW4gPHRyaXN0YW4ueWltQGdtYWlsLmNvbT4KRGF0 ZTogV2VkLCAyNCBKdW4gMjAyNiAxMjoyNDowMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMS80XSBB ZGQgcGFyc2VyIHN1cHBvcnQgZm9yIENBU1QgLi4uIEZPUk1BVAoKQWRkIGdyYW1tYXIgYW5kIHJh dyBwYXJzZS10cmVlIHN1cHBvcnQgZm9yCgogICAgQ0FTVChleHByIEFTIHR5cGUgRk9STUFUIGZv cm1hdF9leHByKQoKYnkgc3RvcmluZyB0aGUgRk9STUFUIGV4cHJlc3Npb24gaW4gVHlwZUNhc3Qu ICBPcmRpbmFyeSBjYXN0cyBsZWF2ZSB0aGUKbmV3IGZpZWxkIHVuc2V0LgoKUGFyc2UgYW5hbHlz aXMgc3RpbGwgcmVqZWN0cyBmb3JtYXR0ZWQgY2FzdHMgaW4gdGhpcyBwYXRjaC4gIEZvcm1hdCBj YXN0CnJlc29sdXRpb24gYW5kIGV4ZWN1dGlvbiBhcmUgYWRkZWQgbGF0ZXIsIHNvIHRoaXMgcGF0 Y2ggb25seSBlc3RhYmxpc2hlcwp0aGUgc3ludGF4IGFuZCBwYXJzZS1ub2RlIHJlcHJlc2VudGF0 aW9uLgotLS0KIHNyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgIHwgIDIg KysKIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgIHwgIDcgKysrKysr Kwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgICAgICAgICAgfCAxMyArKysrKysr KysrKysrCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICB8ICAxICsK IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXhwcmVzc2lvbnMub3V0IHwgMjMgKysrKysrKysr KysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2V4cHJlc3Npb25zLnNxbCAgICAg IHwgMTUgKysrKysrKysrKysrKysrCiA2IGZpbGVzIGNoYW5nZWQsIDYxIGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5k L25vZGVzL25vZGVGdW5jcy5jCmluZGV4IDJhMmUwMGIzNzJlLi42NjQ5NTU0NjE3OSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9k ZXMvbm9kZUZ1bmNzLmMKQEAgLTQ1ODEsNiArNDU4MSw4IEBAIHJhd19leHByZXNzaW9uX3RyZWVf d2Fsa2VyX2ltcGwoTm9kZSAqbm9kZSwKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQkJaWYgKFdBTEso dGMtPnR5cGVOYW1lKSkKIAkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEsodGMtPmZvcm1h dCkpCisJCQkJCXJldHVybiB0cnVlOwogCQkJfQogCQkJYnJlYWs7CiAJCWNhc2UgVF9Db2xsYXRl Q2xhdXNlOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggZmY0ZTEzODhjNTUuLmVmNDg4MWVmYzgxIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKQEAgLTE2Nzg3LDYgKzE2Nzg3LDEzIEBAIGZ1bmNfZXhwcl9jb21tb25fc3ViZXhwcjoK IAkJCQl9CiAJCQl8IENBU1QgJygnIGFfZXhwciBBUyBUeXBlbmFtZSAnKScKIAkJCQl7ICQkID0g bWFrZVR5cGVDYXN0KCQzLCAkNSwgQDEpOyB9CisJCQl8IENBU1QgJygnIGFfZXhwciBBUyBUeXBl bmFtZSBGT1JNQVQgYV9leHByICcpJworCQkJCXsKKwkJCQkJVHlwZUNhc3QgICAqbiA9IChUeXBl Q2FzdCAqKSBtYWtlVHlwZUNhc3QoJDMsICQ1LCBAMSk7CisKKwkJCQkJbi0+Zm9ybWF0ID0gJDc7 CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CiAJCQl8IEVYVFJBQ1QgJygnIGV4dHJhY3Rf bGlzdCAnKScKIAkJCQl7CiAJCQkJCSQkID0gKE5vZGUgKikgbWFrZUZ1bmNDYWxsKFN5c3RlbUZ1 bmNOYW1lKCJleHRyYWN0IiksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf ZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCA5YWRjOWQ0YzBm Ni4uYmE2NDgwYWNmMTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHBy LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtMjc0Myw2ICsyNzQz LDE5IEBAIHRyYW5zZm9ybVR5cGVDYXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVHlwZUNhc3QgKnRj KQogCWludDMyCQl0YXJnZXRUeXBtb2Q7CiAJaW50CQkJbG9jYXRpb247CiAKKwkvKgorCSAqIEZv cm1hdHRlZCBjYXN0cyAoQ0FTVChleHByIEFTIHR5cGUgRk9STUFUIGZvcm1hdF9leHByKSkgYXJl IHBhcnNlZCBhbmQKKwkgKiByZXByZXNlbnRlZCBpbiB0aGUgcGFyc2UgdHJlZSwgYnV0IGZvcm1h dCBjYXN0IHJlc29sdXRpb24gaXMgbm90IHlldAorCSAqIGltcGxlbWVudGVkLiAgUmVqZWN0IHN1 Y2ggY2FzdHMgaGVyZSByYXRoZXIgdGhhbiBzaWxlbnRseSBpZ25vcmluZyB0aGUKKwkgKiBGT1JN QVQgY2xhdXNlLgorCSAqLworCWlmICh0Yy0+Zm9ybWF0ICE9IE5VTEwpCisJCWVyZXBvcnQoRVJS T1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBl cnJtc2coImZvcm1hdHRlZCBjYXN0cyBhcmUgbm90IGltcGxlbWVudGVkIHlldCIpLAorCQkJCSBl cnJkZXRhaWwoIk5vIGZvcm1hdCBjYXN0IHJlc29sdXRpb24gbWVjaGFuaXNtIGlzIGF2YWlsYWJs ZS4iKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKHRjLT5m b3JtYXQpKSkpOworCiAJLyogTG9vayB1cCB0aGUgdHlwZSBuYW1lIGZpcnN0ICovCiAJdHlwZW5h bWVUeXBlSWRBbmRNb2QocHN0YXRlLCB0Yy0+dHlwZU5hbWUsICZ0YXJnZXRUeXBlLCAmdGFyZ2V0 VHlwbW9kKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIv c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDQxMzNjNDA0YTZiLi43NTljNmJm YWU1NCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDAyLDYgKzQwMiw3IEBAIHR5cGVkZWYg c3RydWN0IFR5cGVDYXN0CiAJTm9kZVRhZwkJdHlwZTsKIAlOb2RlCSAgICphcmc7CQkJLyogdGhl IGV4cHJlc3Npb24gYmVpbmcgY2FzdGVkICovCiAJVHlwZU5hbWUgICAqdHlwZU5hbWU7CQkvKiB0 aGUgdGFyZ2V0IHR5cGUgKi8KKwlOb2RlCSAgICpmb3JtYXQ7CQkJLyogRk9STUFUIGV4cHJlc3Np b24sIG9yIE5VTEwgaWYgbm9uZSAqLwogCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9j YXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KIH0gVHlwZUNhc3Q7CiAKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXhwcmVzc2lvbnMub3V0IGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9leHByZXNzaW9ucy5vdXQKaW5kZXggNzMwZjdiYzdlYmEuLmQzOWNkMWI3ZmJk IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2V4cHJlc3Npb25zLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2V4cHJlc3Npb25zLm91dApAQCAtNTYxLDMg KzU2MSwyNiBAQCBmcm9tIGludHRlc3Q7CiAoMyByb3dzKQogCiByb2xsYmFjazsKKy0tCistLSBD QVNUKGV4cHIgQVMgdHlwZSBGT1JNQVQgZm9ybWF0X2V4cHIpCistLQorLS0gVGhlIEZPUk1BVCBj bGF1c2UgaXMgcGFyc2VkIGFuZCBzdG9yZWQsIGJ1dCBmb3JtYXQgY2FzdCByZXNvbHV0aW9uIGlz IG5vdAorLS0gaW1wbGVtZW50ZWQgeWV0LCBzbyBwYXJzZSBhbmFseXNpcyBtdXN0IHJlamVjdCBp dCAobm90IGlnbm9yZSBpdCkuCistLSBiYXNpYyBmb3JtCitTRUxFQ1QgQ0FTVCgnMjAyNi0wNi0y NCcgQVMgZGF0ZSBGT1JNQVQgJ1lZWVktTU0tREQnKTsKK0VSUk9SOiAgZm9ybWF0dGVkIGNhc3Rz IGFyZSBub3QgaW1wbGVtZW50ZWQgeWV0CitMSU5FIDE6IFNFTEVDVCBDQVNUKCcyMDI2LTA2LTI0 JyBBUyBkYXRlIEZPUk1BVCAnWVlZWS1NTS1ERCcpOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgorREVUQUlMOiAgTm8gZm9ybWF0IGNhc3QgcmVzb2x1 dGlvbiBtZWNoYW5pc20gaXMgYXZhaWxhYmxlLgorLS0gdGhlIGZvcm1hdCBtYXkgYmUgYSBnZW5l cmFsIGV4cHJlc3Npb24sIG5vdCBqdXN0IGEgc3RyaW5nIGxpdGVyYWwKK1NFTEVDVCBDQVNUKCcy MDI2LTA2LTI0JyBBUyBkYXRlIEZPUk1BVCAnWVlZWScgfHwgJy1NTS1ERCcpOworRVJST1I6ICBm b3JtYXR0ZWQgY2FzdHMgYXJlIG5vdCBpbXBsZW1lbnRlZCB5ZXQKK0xJTkUgMTogU0VMRUNUIENB U1QoJzIwMjYtMDYtMjQnIEFTIGRhdGUgRk9STUFUICdZWVlZJyB8fCAnLU1NLUREJyk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitERVRBSUw6ICBO byBmb3JtYXQgY2FzdCByZXNvbHV0aW9uIG1lY2hhbmlzbSBpcyBhdmFpbGFibGUuCistLSBhIG5v LW9wLWxvb2tpbmcgY2FzdCBtdXN0IHN0aWxsIGJlIHJlamVjdGVkLCBub3QgcmVsYWJlbGVkIGF3 YXkKK1NFTEVDVCBDQVNUKCdhYmMnOjp0ZXh0IEFTIHRleHQgRk9STUFUICd3aGF0ZXZlcicpOwor RVJST1I6ICBmb3JtYXR0ZWQgY2FzdHMgYXJlIG5vdCBpbXBsZW1lbnRlZCB5ZXQKK0xJTkUgMTog U0VMRUNUIENBU1QoJ2FiYyc6OnRleHQgQVMgdGV4dCBGT1JNQVQgJ3doYXRldmVyJyk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIE5v IGZvcm1hdCBjYXN0IHJlc29sdXRpb24gbWVjaGFuaXNtIGlzIGF2YWlsYWJsZS4KZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2V4cHJlc3Npb25zLnNxbCBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2V4cHJlc3Npb25zLnNxbAppbmRleCAzYjMwNDhmOTczMS4uMzZlYWU4YzNmMDQgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2V4cHJlc3Npb25zLnNxbAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9leHByZXNzaW9ucy5zcWwKQEAgLTMwMSwzICszMDEsMTggQEAgc2Vs ZWN0CiBmcm9tIGludHRlc3Q7CiAKIHJvbGxiYWNrOworCistLQorLS0gQ0FTVChleHByIEFTIHR5 cGUgRk9STUFUIGZvcm1hdF9leHByKQorLS0KKy0tIFRoZSBGT1JNQVQgY2xhdXNlIGlzIHBhcnNl ZCBhbmQgc3RvcmVkLCBidXQgZm9ybWF0IGNhc3QgcmVzb2x1dGlvbiBpcyBub3QKKy0tIGltcGxl bWVudGVkIHlldCwgc28gcGFyc2UgYW5hbHlzaXMgbXVzdCByZWplY3QgaXQgKG5vdCBpZ25vcmUg aXQpLgorCistLSBiYXNpYyBmb3JtCitTRUxFQ1QgQ0FTVCgnMjAyNi0wNi0yNCcgQVMgZGF0ZSBG T1JNQVQgJ1lZWVktTU0tREQnKTsKKworLS0gdGhlIGZvcm1hdCBtYXkgYmUgYSBnZW5lcmFsIGV4 cHJlc3Npb24sIG5vdCBqdXN0IGEgc3RyaW5nIGxpdGVyYWwKK1NFTEVDVCBDQVNUKCcyMDI2LTA2 LTI0JyBBUyBkYXRlIEZPUk1BVCAnWVlZWScgfHwgJy1NTS1ERCcpOworCistLSBhIG5vLW9wLWxv b2tpbmcgY2FzdCBtdXN0IHN0aWxsIGJlIHJlamVjdGVkLCBub3QgcmVsYWJlbGVkIGF3YXkKK1NF TEVDVCBDQVNUKCdhYmMnOjp0ZXh0IEFTIHRleHQgRk9STUFUICd3aGF0ZXZlcicpOwotLSAKMi41 NC4wCgo= --00000000000029b62906557c0e56--