Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1v8ULl-001UL6-8O for pgsql-hackers@arkaria.postgresql.org; Tue, 14 Oct 2025 02:01:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1v8ULi-009cf1-W2 for pgsql-hackers@arkaria.postgresql.org; Tue, 14 Oct 2025 02:01:15 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1v8ULh-009cet-V6 for pgsql-hackers@lists.postgresql.org; Tue, 14 Oct 2025 02:01:15 +0000 Received: from mail-vs1-xe34.google.com ([2607:f8b0:4864:20::e34]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1v8ULb-001d64-0f for pgsql-hackers@lists.postgresql.org; Tue, 14 Oct 2025 02:01:13 +0000 Received: by mail-vs1-xe34.google.com with SMTP id ada2fe7eead31-5a3511312d6so2567626137.3 for ; Mon, 13 Oct 2025 19:01:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760407265; x=1761012065; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=PZ6GH/JG+9sDp6AeoinP7DNf771PrDNJXZx0LjL4Weg=; b=kNQkvGPC3CTwMBaFT83t1NU5N2sSLQRS4Tz3h5IAxfdNlFt9HIy7Z1TvqtHR8rh2xY ExMzbvplw+QA4lWF16kTty9any/NX2WckOK2sbDS3QBEHysyDVxgPu9TBVxWu4I8KX68 Ile6jTgSgB2Qp3v8LUfdfWwu1Y1lwA59jmj9aWS2BYyDezo4hGTaAANjlB6d7Xj5d7n2 TZKUxMsPxagTjPybgzgUTZBb3ZUnf3p4Vgdw3DCCzQxCAnHKhpAesAEPh35AIvRa3V5H 4nHcnrEOU+u9qQRxAMJpUShLGRmxIJiNeC3wWB3DMFCmhDaurawhQ8mvoyJsVUU5l8Yr QhSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760407265; x=1761012065; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=PZ6GH/JG+9sDp6AeoinP7DNf771PrDNJXZx0LjL4Weg=; b=d85+zKvXbsvOiudPGRiS3oemWtzqblS5+oF0r6bZ4Yv8eC6RrGx2V9/HBJaJr/s8h7 +0Dv5qu/5sSXt8f21T9sjZCfZn4tRDgWAhn/cyVM3TKNG3VrchCGZFW5lJI1P0KzSNko 4JKIvd2ObevApRvY5TppjsEtOQL7xGoVsCc06ob3BfACkpm22KbLOK2nHmXvmyyI9IG2 eOSDm6uN0aYgi/7AzkIKB4NYmtk3/09lgQa8rdTxXhE9Y62SGmet3PaQydUgr2yaFxfi VZCDvno8kpOhyrJpBA4rgz1uY1/QpfO5TvgY6qm65rPmPkqAO7HnhU/kDqmUXpWK/Rl1 hPhg== X-Forwarded-Encrypted: i=1; AJvYcCXIsE/TgcAbLU+egdPVcNZJQZh9psAt5uPDJtGLJQQqKvu73wRUIpmBWo1lrATqxg+PBhAyakxUnKNop+Tf@lists.postgresql.org X-Gm-Message-State: AOJu0YwTvnR1l2SIHwDZNWkybfelSb8cMB7hlaH0s3M47VhhfUz/TDRO XPbauJUaC9EtP2F9jKU7hsKYnU+qPecZ0qCl2Dwxo0vOTVo2dVfYM8oYGaVbS5o32n0q1iYt0Ez y+dStDxjgkzBH9hxlmwNdl2V9eytXJ70= X-Gm-Gg: ASbGncvuijOOez6xEtPhzAMWMn+FCEIMKo0DG2+eynq51c3Ad3gfSIggzn18cLRrHIP 7mzRg5XO63KWMq80mUKv1/g281On9P/Ju/0ba5CgCuLOX1UyXtBjnU1/q9bqfiIzOMVziaVA8t0 Rt/dBrcxSGBzrWorwfCoYQDNN/ZNLX7wVSX/s+gqa1hiIV2+w6RA3Ks+UPt9TD3IfvxmHPylqT8 l5Ci6N6qAfyOrXKc9PH4z8s/ZzPz3ZJMBY7Cjj4isEPw5Prx8hIF2y05wsaYzr/Ng1BfIeqam3j +WX2xajjK6mazGJhxiPGxfHLfm1AXIKjWGrYh/egBKmCheKl7qGVfYSFhTJyg4lBaY2BH0xppTy 3ibhC5/t74xacdbcegRmaVGrs/VODIUCclc1pHVsqeKA= X-Google-Smtp-Source: AGHT+IGbYNzLautEdHDWNcfWdGenTqsBjah17v2toAJQ46EDrNsYKEBgnbcQ8g8+Ts5/x2ZEQ6d40D74GAoP2RrfON8= X-Received: by 2002:a05:6102:818b:10b0:5d5:f3ed:bbf6 with SMTP id ada2fe7eead31-5d5f3edbc7amr4529268137.6.1760407265496; Mon, 13 Oct 2025 19:01:05 -0700 (PDT) MIME-Version: 1.0 References: <04afcd1f-ed7d-4c0a-add1-50e3719ccbf9@postgresfriends.org> <762ae707-7fdc-43d8-a77a-3a10d12ce21d@postgresfriends.org> In-Reply-To: From: jian he Date: Tue, 14 Oct 2025 10:00:26 +0800 X-Gm-Features: AS18NWC47dbcWiCB55Byw0LWX8yFAU-VhXAt8GvGdN3NXpt6i4av2eFNXFAC21I Message-ID: Subject: Re: CAST(... ON DEFAULT) - WIP build on top of Error-Safe User Functions To: Corey Huinker Cc: Vik Fearing , Isaac Morland , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000b88c47064114c15d" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000b88c47064114c15d Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Oct 10, 2025 at 8:23=E2=80=AFPM jian he wrote: > After applying the attached v7 patch patchset, > the below are cast functions that I didn't refactor to error safe yet. > > select pc.castsource::regtype, > pc.casttarget::regtype, castfunc::regproc, pp.prosrc > from pg_cast pc join pg_proc pp on pp.oid =3D pc.castfunc > join pg_type pt on pt.oid =3D castsource > join pg_type pt1 on pt1.oid =3D casttarget > and pc.castfunc > 0 and pt.typnamespace =3D 'pg_catalog'::regnamespace > and pt1.typnamespace =3D 'pg_catalog'::regnamespace and not pc.casterrors= afe; > > castsource | casttarget | castfunc | prosrc > ------------+------------+----------------------+-------------- > bigint | money | pg_catalog.money | int8_cash > integer | money | pg_catalog.money | int4_cash > numeric | money | pg_catalog.money | numeric_cash > money | numeric | pg_catalog."numeric" | cash_numeric > (4 rows) > > The reason I don't refactor these cast functions related to money data > type is because > 1. I am not sure if the PGLC_localeconv() function is error safe or not. > 2. refactoring such ``DirectFunctionCall1(numeric_int8, amount));`` > requires more effort. > > please check the attached v7 patch set: > 01-error-safe-for-casting-bytea-to-other-types > 02-error-safe-for-casting-bit-varbit-to-other-types > 03-error-safe-for-casting-character-to-other-types > 04-error-safe-for-casting-text-to-other-types > 05-error-safe-for-casting-character-varying-to-other-types > 06-error-safe-for-casting-inet-to-other-types > 07-error-safe-for-casting-macaddr8-to-other-types > 08-error-safe-for-casting-integer-to-other-types > 09-error-safe-for-casting-bigint-to-other-types > 10-error-safe-for-casting-numeric-to-other-types > 11-error-safe-for-casting-float4-to-other-types > 12-error-safe-for-casting-float8-to-other-types > 13-error-safe-for-casting-date-to-other-types > 14-error-safe-for-casting-interval-to-other-types > 15-error-safe-for-casting-timestamptz-to-other-types > 16-error-safe-for-casting-timestamp-to-other-types > 17-error-safe-for-casting-jsonb-to-other-types > 18-error-safe-for-casting-geometry-data-types > 19-invent_some_error_safe_function.patch > 20-CAST-expr-AS-newtype-DEFAULT-ON-ERROR.patch > > Each patch includes a commit message explaining which function is being > refactored to be error-safe. > Summary of what this patch set is doing: To implement the syntax: CAST(source_expr AS target_type DEFAULT def_expr ON CONVERSION ERROR) we need to ensure that the transformed cast expression is error-safe. A transformed cast expression can be either a CoerceViaIO or a FuncExpr. Since CoerceViaIO is already error-safe but FuncExpr cannot be rewritten as CoerceViaIO one of the example: SELECT ('11.1'::numeric::int) So we need to refactor how pg_cast.castfunc works to make it error-safe. We also need to query pg_cast to determine whether a given pg_cast.castfunc= is error-safe. For this, a new field casterrorsafe is added to pg_cast. Patches 01=E2=80=9318: Refactor all pg_cast.castfunc entries (except those = with the money data type) to be error-safe. Patches 19=E2=80=9320: Implement support for CAST(... AS ... DEFAULT def_ex= pr ON CONVERSION ERROR) Please check the attached v8. It includes minor changes compared to v7: mainly a small mistake fix in src/backend/jit/llvm/llvmjit_expr.c. Additionally, one occurrence of NO_XML_SUPPORT(); was replaced with errsave(escontext, =E2=80=A6). --000000000000b88c47064114c15d Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v8-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgpwv2493 RnJvbSBlMDE1YzA2YzJiNjIwODY0YzQyMDMzOTNkMzg4YTZiMTA5MWNiYmYzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODo1ODo0MCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjgg MTcvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcganNvbmIgdG8gb3RoZXIgdHlwZXMgcGVyCiBw Z19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlwZSwg Y2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFtZSBm cm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5jIGFu ZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnanNvbmInOjpyZWd0 eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAgIGNhc3R0 YXJnZXQgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgIHByb3Ny YyAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCiBq c29uYiAgICAgIHwgYm9vbGVhbiAgICAgICAgICB8ICAgICAzNTU2IHwgZSAgICAgICAgICAgfCBm ICAgICAgICAgIHwganNvbmJfYm9vbCAgICB8IGJvb2wKIGpzb25iICAgICAgfCBudW1lcmljICAg ICAgICAgIHwgICAgIDM0NDkgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBqc29uYl9udW1l cmljIHwgbnVtZXJpYwoganNvbmIgICAgICB8IHNtYWxsaW50ICAgICAgICAgfCAgICAgMzQ1MCB8 IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGpzb25iX2ludDIgICAgfCBpbnQyCiBqc29uYiAg ICAgIHwgaW50ZWdlciAgICAgICAgICB8ICAgICAzNDUxIHwgZSAgICAgICAgICAgfCBmICAgICAg ICAgIHwganNvbmJfaW50NCAgICB8IGludDQKIGpzb25iICAgICAgfCBiaWdpbnQgICAgICAgICAg IHwgICAgIDM0NTIgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBqc29uYl9pbnQ4ICAgIHwg aW50OAoganNvbmIgICAgICB8IHJlYWwgICAgICAgICAgICAgfCAgICAgMzQ1MyB8IGUgICAgICAg ICAgIHwgZiAgICAgICAgICB8IGpzb25iX2Zsb2F0NCAgfCBmbG9hdDQKIGpzb25iICAgICAgfCBk b3VibGUgcHJlY2lzaW9uIHwgICAgIDI1ODAgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBq c29uYl9mbG9hdDggIHwgZmxvYXQ4Cig3IHJvd3MpCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rn ci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRo UUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYi5jIHwgOTEg KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3NSBp bnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvanNvbmIuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYi5jCmluZGV4IGRh OTRkNDI0ZDYxLi4xZmYwMGY3MmY3OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2pzb25iLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25iLmMKQEAgLTIwMDUsNyAr MjAwNSw3IEBAIEpzb25iRXh0cmFjdFNjYWxhcihKc29uYkNvbnRhaW5lciAqamJjLCBKc29uYlZh bHVlICpyZXMpCiAgKiBFbWl0IGNvcnJlY3QsIHRyYW5zbGF0YWJsZSBjYXN0IGVycm9yIG1lc3Nh Z2UKICAqLwogc3RhdGljIHZvaWQKLWNhbm5vdENhc3RKc29uYlZhbHVlKGVudW0gamJ2VHlwZSB0 eXBlLCBjb25zdCBjaGFyICpzcWx0eXBlKQorY2Fubm90Q2FzdEpzb25iVmFsdWUoZW51bSBqYnZU eXBlIHR5cGUsIGNvbnN0IGNoYXIgKnNxbHR5cGUsIE5vZGUgKmVzY29udGV4dCkKIHsKIAlzdGF0 aWMgY29uc3Qgc3RydWN0CiAJewpAQCAtMjAyNiw5ICsyMDI2LDEyIEBAIGNhbm5vdENhc3RKc29u YlZhbHVlKGVudW0gamJ2VHlwZSB0eXBlLCBjb25zdCBjaGFyICpzcWx0eXBlKQogCiAJZm9yIChp ID0gMDsgaSA8IGxlbmd0aG9mKG1lc3NhZ2VzKTsgaSsrKQogCQlpZiAobWVzc2FnZXNbaV0udHlw ZSA9PSB0eXBlKQotCQkJZXJlcG9ydChFUlJPUiwKKwkJeworCQkJZXJyc2F2ZShlc2NvbnRleHQs CiAJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAogCQkJCQkg ZXJybXNnKG1lc3NhZ2VzW2ldLm1zZywgc3FsdHlwZSkpKTsKKwkJCXJldHVybjsKKwkJfQogCiAJ Lyogc2hvdWxkIGJlIHVucmVhY2hhYmxlICovCiAJZWxvZyhFUlJPUiwgInVua25vd24ganNvbmIg dHlwZTogJWQiLCAoaW50KSB0eXBlKTsKQEAgLTIwNDEsNyArMjA0NCwxMSBAQCBqc29uYl9ib29s KFBHX0ZVTkNUSU9OX0FSR1MpCiAJSnNvbmJWYWx1ZQl2OwogCiAJaWYgKCFKc29uYkV4dHJhY3RT Y2FsYXIoJmluLT5yb290LCAmdikpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJv b2xlYW4iKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJvb2xlYW4iLCBm Y2luZm8tPmNvbnRleHQpOworCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlw ZSA9PSBqYnZOdWxsKQogCXsKQEAgLTIwNTAsNyArMjA1NywxMSBAQCBqc29uYl9ib29sKFBHX0ZV TkNUSU9OX0FSR1MpCiAJfQogCiAJaWYgKHYudHlwZSAhPSBqYnZCb29sKQotCQljYW5ub3RDYXN0 SnNvbmJWYWx1ZSh2LnR5cGUsICJib29sZWFuIik7CisJeworCQljYW5ub3RDYXN0SnNvbmJWYWx1 ZSh2LnR5cGUsICJib29sZWFuIiwgZmNpbmZvLT5jb250ZXh0KTsKKworCQlQR19SRVRVUk5fTlVM TCgpOworCX0KIAogCVBHX0ZSRUVfSUZfQ09QWShpbiwgMCk7CiAKQEAgLTIwNjUsNyArMjA3Niwx MSBAQCBqc29uYl9udW1lcmljKFBHX0ZVTkNUSU9OX0FSR1MpCiAJTnVtZXJpYwkJcmV0VmFsdWU7 CiAKIAlpZiAoIUpzb25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2Fz dEpzb25iVmFsdWUodi50eXBlLCAibnVtZXJpYyIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFs dWUodi50eXBlLCAibnVtZXJpYyIsIGZjaW5mby0+Y29udGV4dCk7CisKKwkJUEdfUkVUVVJOX05V TEwoKTsKKwl9CiAKIAlpZiAodi50eXBlID09IGpidk51bGwpCiAJewpAQCAtMjA3NCw3ICsyMDg5 LDExIEBAIGpzb25iX251bWVyaWMoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBl ICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgIm51bWVyaWMi KTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgIm51bWVyaWMiLCBmY2luZm8t PmNvbnRleHQpOworCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJLyoKIAkgKiB2LnZhbC5u dW1lcmljIHBvaW50cyBpbnRvIGpzb25iIGJvZHksIHNvIHdlIG5lZWQgdG8gbWFrZSBhIGNvcHkg dG8KQEAgLTIwOTUsNyArMjExNCwxMSBAQCBqc29uYl9pbnQyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ RGF0dW0JCXJldFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290LCAm dikpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgInNtYWxsaW50Iik7CisJeworCQlj YW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJzbWFsbGludCIsIGZjaW5mby0+Y29udGV4dCk7 CisKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAKIAlpZiAodi50eXBlID09IGpidk51bGwpCiAJ ewpAQCAtMjEwNCw3ICsyMTI3LDExIEBAIGpzb25iX2ludDIoUEdfRlVOQ1RJT05fQVJHUykKIAl9 CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYu dHlwZSwgInNtYWxsaW50Iik7CisJeworCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJz bWFsbGludCIsIGZjaW5mby0+Y29udGV4dCk7CisKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAK IAlyZXRWYWx1ZSA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEobnVtZXJpY19pbnQyLAogCQkJCQkJCQkg ICBOdW1lcmljR2V0RGF0dW0odi52YWwubnVtZXJpYykpOwpAQCAtMjEyMiw3ICsyMTQ5LDExIEBA IGpzb25iX2ludDQoUEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmV0VmFsdWU7CiAKIAlpZiAo IUpzb25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFs dWUodi50eXBlLCAiaW50ZWdlciIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBl LCAiaW50ZWdlciIsIGZjaW5mby0+Y29udGV4dCk7CisKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9 CiAKIAlpZiAodi50eXBlID09IGpidk51bGwpCiAJewpAQCAtMjEzMSw3ICsyMTYyLDExIEBAIGpz b25iX2ludDQoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVy aWMpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImludGVnZXIiKTsKKwl7CisJCWNh bm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImludGVnZXIiLCBmY2luZm8tPmNvbnRleHQpOwor CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJcmV0VmFsdWUgPSBEaXJlY3RGdW5jdGlvbkNh bGwxKG51bWVyaWNfaW50NCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51bWVy aWMpKTsKQEAgLTIxNDksNyArMjE4NCwxMSBAQCBqc29uYl9pbnQ4KFBHX0ZVTkNUSU9OX0FSR1Mp CiAJRGF0dW0JCXJldFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290 LCAmdikpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJpZ2ludCIpOworCXsKKwkJ Y2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAiYmlnaW50IiwgZmNpbmZvLT5jb250ZXh0KTsK KworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCWlmICh2LnR5cGUgPT0gamJ2TnVsbCkKIAl7 CkBAIC0yMTU4LDcgKzIxOTcsMTEgQEAganNvbmJfaW50OChQR19GVU5DVElPTl9BUkdTKQogCX0K IAogCWlmICh2LnR5cGUgIT0gamJ2TnVtZXJpYykKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50 eXBlLCAiYmlnaW50Iik7CisJeworCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJiaWdp bnQiLCBmY2luZm8tPmNvbnRleHQpOworCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJcmV0 VmFsdWUgPSBEaXJlY3RGdW5jdGlvbkNhbGwxKG51bWVyaWNfaW50OCwKIAkJCQkJCQkJICAgTnVt ZXJpY0dldERhdHVtKHYudmFsLm51bWVyaWMpKTsKQEAgLTIxNzYsNyArMjIxOSwxMSBAQCBqc29u Yl9mbG9hdDQoUEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmV0VmFsdWU7CiAKIAlpZiAoIUpz b25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUo di50eXBlLCAicmVhbCIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAicmVh bCIsIGZjaW5mby0+Y29udGV4dCk7CisKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAKIAlpZiAo di50eXBlID09IGpidk51bGwpCiAJewpAQCAtMjE4NSw3ICsyMjMyLDExIEBAIGpzb25iX2Zsb2F0 NChQR19GVU5DVElPTl9BUkdTKQogCX0KIAogCWlmICh2LnR5cGUgIT0gamJ2TnVtZXJpYykKLQkJ Y2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAicmVhbCIpOworCXsKKwkJY2Fubm90Q2FzdEpz b25iVmFsdWUodi50eXBlLCAicmVhbCIsIGZjaW5mby0+Y29udGV4dCk7CisKKwkJUEdfUkVUVVJO X05VTEwoKTsKKwl9CiAKIAlyZXRWYWx1ZSA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEobnVtZXJpY19m bG9hdDQsCiAJCQkJCQkJCSAgIE51bWVyaWNHZXREYXR1bSh2LnZhbC5udW1lcmljKSk7CkBAIC0y MjAzLDcgKzIyNTQsMTEgQEAganNvbmJfZmxvYXQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiAJRGF0dW0J CXJldFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290LCAmdikpCi0J CWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImRvdWJsZSBwcmVjaXNpb24iKTsKKwl7CisJ CWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImRvdWJsZSBwcmVjaXNpb24iLCBmY2luZm8t PmNvbnRleHQpOworCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBq YnZOdWxsKQogCXsKQEAgLTIyMTIsNyArMjI2NywxMSBAQCBqc29uYl9mbG9hdDgoUEdfRlVOQ1RJ T05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RK c29uYlZhbHVlKHYudHlwZSwgImRvdWJsZSBwcmVjaXNpb24iKTsKKwl7CisJCWNhbm5vdENhc3RK c29uYlZhbHVlKHYudHlwZSwgImRvdWJsZSBwcmVjaXNpb24iLCBmY2luZm8tPmNvbnRleHQpOwor CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJcmV0VmFsdWUgPSBEaXJlY3RGdW5jdGlvbkNh bGwxKG51bWVyaWNfZmxvYXQ4LAogCQkJCQkJCQkgICBOdW1lcmljR2V0RGF0dW0odi52YWwubnVt ZXJpYykpOwotLSAKMi4zNC4xCgo= --000000000000b88c47064114c15d Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0019-invent-some-error-safe-functions.patch" Content-Disposition: attachment; filename="v8-0019-invent-some-error-safe-functions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgpwv2441 RnJvbSBmMDIwZTg0MGI1Y2Y2NDhmM2VmOGFjNzI2YWQ3MzNmZjhiNDk4M2M2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTAgT2N0IDIwMjUgMTg6NTc6MjEgKzA4MDAKU3ViamVjdDogW1BBVENIIHY4 IDE5LzIwXSBpbnZlbnQgc29tZSBlcnJvciBzYWZlIGZ1bmN0aW9ucwoKc3RyaW5nVHlwZURhdHVt U2FmZTogZXJyb3Igc2FmZSB2ZXJzaW9uIG9mIHN0cmluZ1R5cGVEYXR1bQpldmFsdWF0ZV9leHBy X3NhZmU6IGVycm9yIHNhZmUgdmVyc2lvbiBvZiBldmFsdWF0ZV9leHByCkV4ZWNJbml0RXhwclNh ZmU6IHNvZnQgZXJyb3IgdmFyaWFudCBvZiBFeGVjSW5pdEV4cHIKT2lkSW5wdXRGdW5jdGlvbkNh bGxTYWZlOiBzb2Z0IGVycm9yIHZhcmlhbnQgb2YgT2lkSW5wdXRGdW5jdGlvbkNhbGwKCmRpc2N1 c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5W aXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY0V4cHIuYyAgICAgIHwgNDEgKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5k L29wdGltaXplci91dGlsL2NsYXVzZXMuYyB8IDY5ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90eXBlLmMgICAgICB8IDE0ICsrKysrKwogc3Jj L2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMgICAgICAgIHwgMTMgKysrKysrCiBzcmMvaW5jbHVk ZS9leGVjdXRvci9leGVjdXRvci5oICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS9mbWdyLmggICAg ICAgICAgICAgICAgICAgfCAgMyArKwogc3JjL2luY2x1ZGUvb3B0aW1pemVyL29wdGltaXplci5o ICAgIHwgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3R5cGUuaCAgICAgIHwgIDIgKwog OCBmaWxlcyBjaGFuZ2VkLCAxNDUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5j CmluZGV4IGYxNTY5ODc5YjUyLi5iMzAyYmUzNmY3MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY0V4cHIuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5j CkBAIC0xNzAsNiArMTcwLDQ3IEBAIEV4ZWNJbml0RXhwcihFeHByICpub2RlLCBQbGFuU3RhdGUg KnBhcmVudCkKIAlyZXR1cm4gc3RhdGU7CiB9CiAKKy8qCisgKiBFeGVjSW5pdEV4cHJTYWZlOiBz b2Z0IGVycm9yIHZhcmlhbnQgb2YgRXhlY0luaXRFeHByLgorICoKKyAqIHVzZSBpdCBvbmx5IGZv ciBleHByZXNzaW9uIG5vZGVzIHN1cHBvcnQgc29mdCBlcnJvcnMsIG5vdCBhbGwgZXhwcmVzc2lv bgorICogbm9kZXMgc3VwcG9ydCBpdC4KKyovCitFeHByU3RhdGUgKgorRXhlY0luaXRFeHByU2Fm ZShFeHByICpub2RlLCBQbGFuU3RhdGUgKnBhcmVudCkKK3sKKwlFeHByU3RhdGUgICpzdGF0ZTsK KwlFeHByRXZhbFN0ZXAgc2NyYXRjaCA9IHswfTsKKworCS8qIFNwZWNpYWwgY2FzZTogTlVMTCBl eHByZXNzaW9uIHByb2R1Y2VzIGEgTlVMTCBFeHByU3RhdGUgcG9pbnRlciAqLworCWlmIChub2Rl ID09IE5VTEwpCisJCXJldHVybiBOVUxMOworCisJLyogSW5pdGlhbGl6ZSBFeHByU3RhdGUgd2l0 aCBlbXB0eSBzdGVwIGxpc3QgKi8KKwlzdGF0ZSA9IG1ha2VOb2RlKEV4cHJTdGF0ZSk7CisJc3Rh dGUtPmV4cHIgPSBub2RlOworCXN0YXRlLT5wYXJlbnQgPSBwYXJlbnQ7CisJc3RhdGUtPmV4dF9w YXJhbXMgPSBOVUxMOworCXN0YXRlLT5lc2NvbnRleHQgPSBtYWtlTm9kZShFcnJvclNhdmVDb250 ZXh0KTsKKwlzdGF0ZS0+ZXNjb250ZXh0LT50eXBlID0gVF9FcnJvclNhdmVDb250ZXh0OworCXN0 YXRlLT5lc2NvbnRleHQtPmVycm9yX29jY3VycmVkID0gZmFsc2U7CisJc3RhdGUtPmVzY29udGV4 dC0+ZGV0YWlsc193YW50ZWQgPSBmYWxzZTsKKworCS8qIEluc2VydCBzZXR1cCBzdGVwcyBhcyBu ZWVkZWQgKi8KKwlFeGVjQ3JlYXRlRXhwclNldHVwU3RlcHMoc3RhdGUsIChOb2RlICopIG5vZGUp OworCisJLyogQ29tcGlsZSB0aGUgZXhwcmVzc2lvbiBwcm9wZXIgKi8KKwlFeGVjSW5pdEV4cHJS ZWMobm9kZSwgc3RhdGUsICZzdGF0ZS0+cmVzdmFsdWUsICZzdGF0ZS0+cmVzbnVsbCk7CisKKwkv KiBGaW5hbGx5LCBhcHBlbmQgYSBET05FIHN0ZXAgKi8KKwlzY3JhdGNoLm9wY29kZSA9IEVFT1Bf RE9ORV9SRVRVUk47CisJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgJnNjcmF0Y2gpOworCisJRXhl Y1JlYWR5RXhwcihzdGF0ZSk7CisKKwlyZXR1cm4gc3RhdGU7Cit9CisKIC8qCiAgKiBFeGVjSW5p dEV4cHJXaXRoUGFyYW1zOiBwcmVwYXJlIGEgc3RhbmRhbG9uZSBleHByZXNzaW9uIHRyZWUgZm9y IGV4ZWN1dGlvbgogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2Ns YXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwppbmRleCA4MWQ3 NjhmZjJhMi4uM2Y5ZmY0NTViYTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91 dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMK QEAgLTUxNDcsNiArNTE0Nyw3NSBAQCBldmFsdWF0ZV9leHByKEV4cHIgKmV4cHIsIE9pZCByZXN1 bHRfdHlwZSwgaW50MzIgcmVzdWx0X3R5cG1vZCwKIAkJCQkJCQkgIHJlc3VsdFR5cEJ5VmFsKTsK IH0KIAorLyoKKyAqIGV2YWx1YXRlX2V4cHJfc2FmZTogZXJyb3Igc2FmZSB2ZXJzaW9uIG9mIGV2 YWx1YXRlX2V4cHIKKyAqCisgKiBXZSB1c2UgdGhlIGV4ZWN1dG9yJ3Mgcm91dGluZSBFeGVjRXZh bEV4cHIoKSB0byBhdm9pZCBkdXBsaWNhdGlvbiBvZgorICogY29kZSBhbmQgZW5zdXJlIHdlIGdl dCB0aGUgc2FtZSByZXN1bHQgYXMgdGhlIGV4ZWN1dG9yIHdvdWxkIGdldC4KKyAqCisgKiByZXR1 cm4gTlVMTCB3aGVuIGV2YXVsYXRpb24gZmFpbGVkLiBFbnN1cmUgdGhlIGV4cHJlc3Npb24gZXhw ciBjYW4gYmUgZXZhdWxhdGVkCisgKiBpbiBhIHNvZnQgZXJyb3Igd2F5LgorICoKKyAqIFNlZSBj b21tZW50cyBvbiBldmFsdWF0ZV9leHByIHRvby4KKyAqLworRXhwciAqCitldmFsdWF0ZV9leHBy X3NhZmUoRXhwciAqZXhwciwgT2lkIHJlc3VsdF90eXBlLCBpbnQzMiByZXN1bHRfdHlwbW9kLAor CQkJCSAgIE9pZCByZXN1bHRfY29sbGF0aW9uKQoreworCUVTdGF0ZQkgICAqZXN0YXRlOworCUV4 cHJTdGF0ZSAgKmV4cHJzdGF0ZTsKKwlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CisJRGF0dW0J CWNvbnN0X3ZhbDsKKwlib29sCQljb25zdF9pc19udWxsOworCWludDE2CQlyZXN1bHRUeXBMZW47 CisJYm9vbAkJcmVzdWx0VHlwQnlWYWw7CisKKwllc3RhdGUgPSBDcmVhdGVFeGVjdXRvclN0YXRl KCk7CisKKwkvKiBXZSBjYW4gdXNlIHRoZSBlc3RhdGUncyB3b3JraW5nIGNvbnRleHQgdG8gYXZv aWQgbWVtb3J5IGxlYWtzLiAqLworCW9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8o ZXN0YXRlLT5lc19xdWVyeV9jeHQpOworCisJLyogTWFrZSBzdXJlIGFueSBvcGZ1bmNpZHMgYXJl IGZpbGxlZCBpbi4gKi8KKwlmaXhfb3BmdW5jaWRzKChOb2RlICopIGV4cHIpOworCisJLyoKKwkg KiBQcmVwYXJlIGV4cHIgZm9yIGV4ZWN1dGlvbi4gIChOb3RlOiB3ZSBjYW4ndCB1c2UgRXhlY1By ZXBhcmVFeHByCisJICogYmVjYXVzZSBpdCdkIHJlc3VsdCBpbiByZWN1cnNpdmVseSBpbnZva2lu ZyBldmFsX2NvbnN0X2V4cHJlc3Npb25zLikKKwkgKi8KKwlleHByc3RhdGUgPSBFeGVjSW5pdEV4 cHJTYWZlKGV4cHIsIE5VTEwpOworCisJY29uc3RfdmFsID0gRXhlY0V2YWxFeHByU3dpdGNoQ29u dGV4dChleHByc3RhdGUsCisJCQkJCQkJCQkJICBHZXRQZXJUdXBsZUV4cHJDb250ZXh0KGVzdGF0 ZSksCisJCQkJCQkJCQkJICAmY29uc3RfaXNfbnVsbCk7CisKKwkvKiBHZXQgaW5mbyBuZWVkZWQg YWJvdXQgcmVzdWx0IGRhdGF0eXBlICovCisJZ2V0X3R5cGxlbmJ5dmFsKHJlc3VsdF90eXBlLCAm cmVzdWx0VHlwTGVuLCAmcmVzdWx0VHlwQnlWYWwpOworCisJLyogR2V0IGJhY2sgdG8gb3V0ZXIg bWVtb3J5IGNvbnRleHQgKi8KKwlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CisK KwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChleHByc3RhdGUtPmVzY29udGV4dCkpCisJeworCQlG cmVlRXhlY3V0b3JTdGF0ZShlc3RhdGUpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlpZiAoIWNv bnN0X2lzX251bGwpCisJeworCQlpZiAocmVzdWx0VHlwTGVuID09IC0xKQorCQkJY29uc3RfdmFs ID0gUG9pbnRlckdldERhdHVtKFBHX0RFVE9BU1RfREFUVU1fQ09QWShjb25zdF92YWwpKTsKKwkJ ZWxzZQorCQkJY29uc3RfdmFsID0gZGF0dW1Db3B5KGNvbnN0X3ZhbCwgcmVzdWx0VHlwQnlWYWws IHJlc3VsdFR5cExlbik7CisJfQorCisJRnJlZUV4ZWN1dG9yU3RhdGUoZXN0YXRlKTsKKworCXJl dHVybiAoRXhwciAqKSBtYWtlQ29uc3QocmVzdWx0X3R5cGUsIHJlc3VsdF90eXBtb2QsIHJlc3Vs dF9jb2xsYXRpb24sCisJCQkJCQkJICByZXN1bHRUeXBMZW4sCisJCQkJCQkJICBjb25zdF92YWws IGNvbnN0X2lzX251bGwsCisJCQkJCQkJICByZXN1bHRUeXBCeVZhbCk7Cit9CisKIAogLyoKICAq IGlubGluZV9zZXRfcmV0dXJuaW5nX2Z1bmN0aW9uCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfdHlwZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3R5cGUuYwppbmRl eCA3NzEzYmRjNmFmMC4uZDI2MGFlZWM1ZGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV90eXBlLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3R5cGUuYwpAQCAt MTksNiArMTksNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImxp Yi9zdHJpbmdpbmZvLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCisjaW5jbHVkZSAi bm9kZXMvbWlzY25vZGVzLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKICNpbmNs dWRlICJwYXJzZXIvcGFyc2VyLmgiCiAjaW5jbHVkZSAidXRpbHMvYXJyYXkuaCIKQEAgLTY2MCw2 ICs2NjEsMTkgQEAgc3RyaW5nVHlwZURhdHVtKFR5cGUgdHAsIGNoYXIgKnN0cmluZywgaW50MzIg YXR0dHlwbW9kKQogCXJldHVybiBPaWRJbnB1dEZ1bmN0aW9uQ2FsbCh0eXBpbnB1dCwgc3RyaW5n LCB0eXBpb3BhcmFtLCBhdHR0eXBtb2QpOwogfQogCisvKiBlcnJvciBzYWZlIHZlcnNpb24gb2Yg c3RyaW5nVHlwZURhdHVtICovCitib29sCitzdHJpbmdUeXBlRGF0dW1TYWZlKFR5cGUgdHAsIGNo YXIgKnN0cmluZywgaW50MzIgYXR0dHlwbW9kLCBEYXR1bSAqcmVzdWx0KQoreworCUZvcm1fcGdf dHlwZSB0eXBmb3JtID0gKEZvcm1fcGdfdHlwZSkgR0VUU1RSVUNUKHRwKTsKKwlPaWQJCQl0eXBp bnB1dCA9IHR5cGZvcm0tPnR5cGlucHV0OworCU9pZAkJCXR5cGlvcGFyYW0gPSBnZXRUeXBlSU9Q YXJhbSh0cCk7CisJRXJyb3JTYXZlQ29udGV4dCBlc2NvbnRleHQgPSB7VF9FcnJvclNhdmVDb250 ZXh0fTsKKworCXJldHVybiBPaWRJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUodHlwaW5wdXQsIHN0cmlu ZywgdHlwaW9wYXJhbSwgYXR0dHlwbW9kLAorCQkJCQkJCQkJKE5vZGUgKikgJmVzY29udGV4dCwg cmVzdWx0KTsKK30KKwogLyoKICAqIEdpdmVuIGEgdHlwZWlkLCByZXR1cm4gdGhlIHR5cGUncyB0 eXByZWxpZCAoYXNzb2NpYXRlZCByZWxhdGlvbiksIGlmIGFueS4KICAqIFJldHVybnMgSW52YWxp ZE9pZCBpZiB0eXBlIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlLgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvZm1nci9mbWdyLmMgYi9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYwpp bmRleCAwZmU2M2M2YmI4My4uYWFhNGE0MmIxZWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2ZtZ3IvZm1nci5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCkBAIC0x NzU5LDYgKzE3NTksMTkgQEAgT2lkSW5wdXRGdW5jdGlvbkNhbGwoT2lkIGZ1bmN0aW9uSWQsIGNo YXIgKnN0ciwgT2lkIHR5cGlvcGFyYW0sIGludDMyIHR5cG1vZCkKIAlyZXR1cm4gSW5wdXRGdW5j dGlvbkNhbGwoJmZsaW5mbywgc3RyLCB0eXBpb3BhcmFtLCB0eXBtb2QpOwogfQogCitib29sCitP aWRJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUoT2lkIGZ1bmN0aW9uSWQsIGNoYXIgKnN0ciwgT2lkIHR5 cGlvcGFyYW0sCisJCQkJCQkgaW50MzIgdHlwbW9kLCBOb2RlICplc2NvbnRleHQsCisJCQkJCQkg RGF0dW0gKnJlc3VsdCkKK3sKKwlGbWdySW5mbwkJCWZsaW5mbzsKKworCWZtZ3JfaW5mbyhmdW5j dGlvbklkLCAmZmxpbmZvKTsKKworCXJldHVybiBJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUoJmZsaW5m bywgc3RyLCB0eXBpb3BhcmFtLCB0eXBtb2QsCisJCQkJCQkJCSBlc2NvbnRleHQsIHJlc3VsdCk7 Cit9CisKIGNoYXIgKgogT2lkT3V0cHV0RnVuY3Rpb25DYWxsKE9pZCBmdW5jdGlvbklkLCBEYXR1 bSB2YWwpCiB7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oIGIv c3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaAppbmRleCAzMjQ4ZTc4Y2QyOC4uZmY5OTk3 ZTFjYzEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgKKysrIGIv c3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaApAQCAtMzIxLDYgKzMyMSw3IEBAIEV4ZWNQ cm9jTm9kZShQbGFuU3RhdGUgKm5vZGUpCiAgKiBwcm90b3R5cGVzIGZyb20gZnVuY3Rpb25zIGlu IGV4ZWNFeHByLmMKICAqLwogZXh0ZXJuIEV4cHJTdGF0ZSAqRXhlY0luaXRFeHByKEV4cHIgKm5v ZGUsIFBsYW5TdGF0ZSAqcGFyZW50KTsKK2V4dGVybiBFeHByU3RhdGUgKkV4ZWNJbml0RXhwclNh ZmUoRXhwciAqbm9kZSwgUGxhblN0YXRlICpwYXJlbnQpOwogZXh0ZXJuIEV4cHJTdGF0ZSAqRXhl Y0luaXRFeHByV2l0aFBhcmFtcyhFeHByICpub2RlLCBQYXJhbUxpc3RJbmZvIGV4dF9wYXJhbXMp OwogZXh0ZXJuIEV4cHJTdGF0ZSAqRXhlY0luaXRRdWFsKExpc3QgKnF1YWwsIFBsYW5TdGF0ZSAq cGFyZW50KTsKIGV4dGVybiBFeHByU3RhdGUgKkV4ZWNJbml0Q2hlY2soTGlzdCAqcXVhbCwgUGxh blN0YXRlICpwYXJlbnQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZm1nci5oIGIvc3JjL2lu Y2x1ZGUvZm1nci5oCmluZGV4IDc0ZmUzZWEwNTc1Li45OTFlMTQwMzRkMyAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvZm1nci5oCisrKyBiL3NyYy9pbmNsdWRlL2ZtZ3IuaApAQCAtNzUwLDYgKzc1 MCw5IEBAIGV4dGVybiBib29sIERpcmVjdElucHV0RnVuY3Rpb25DYWxsU2FmZShQR0Z1bmN0aW9u IGZ1bmMsIGNoYXIgKnN0ciwKIAkJCQkJCQkJCQlEYXR1bSAqcmVzdWx0KTsKIGV4dGVybiBEYXR1 bSBPaWRJbnB1dEZ1bmN0aW9uQ2FsbChPaWQgZnVuY3Rpb25JZCwgY2hhciAqc3RyLAogCQkJCQkJ CQkgIE9pZCB0eXBpb3BhcmFtLCBpbnQzMiB0eXBtb2QpOworZXh0ZXJuIGJvb2wgT2lkSW5wdXRG dW5jdGlvbkNhbGxTYWZlKE9pZCBmdW5jdGlvbklkLCBjaGFyICpzdHIsIE9pZCB0eXBpb3BhcmFt LAorCQkJCQkJCQkJIGludDMyIHR5cG1vZCwgTm9kZSAqZXNjb250ZXh0LAorCQkJCQkJCQkJIERh dHVtICpyZXN1bHQpOwogZXh0ZXJuIGNoYXIgKk91dHB1dEZ1bmN0aW9uQ2FsbChGbWdySW5mbyAq ZmxpbmZvLCBEYXR1bSB2YWwpOwogZXh0ZXJuIGNoYXIgKk9pZE91dHB1dEZ1bmN0aW9uQ2FsbChP aWQgZnVuY3Rpb25JZCwgRGF0dW0gdmFsKTsKIGV4dGVybiBEYXR1bSBSZWNlaXZlRnVuY3Rpb25D YWxsKEZtZ3JJbmZvICpmbGluZm8sIFN0cmluZ0luZm8gYnVmLApkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvb3B0aW1pemVyL29wdGltaXplci5oIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL29wdGlt aXplci5oCmluZGV4IGEzNDExMzkwM2MwLi5mMWI2MzgxZDA4NCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvb3B0aW1pemVyL29wdGltaXplci5oCisrKyBiL3NyYy9pbmNsdWRlL29wdGltaXplci9v cHRpbWl6ZXIuaApAQCAtMTQ2LDYgKzE0Niw4IEBAIGV4dGVybiBOb2RlICplc3RpbWF0ZV9leHBy ZXNzaW9uX3ZhbHVlKFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpub2RlKTsKIGV4dGVybiBFeHBy ICpldmFsdWF0ZV9leHByKEV4cHIgKmV4cHIsIE9pZCByZXN1bHRfdHlwZSwgaW50MzIgcmVzdWx0 X3R5cG1vZCwKIAkJCQkJCSAgIE9pZCByZXN1bHRfY29sbGF0aW9uKTsKIAorZXh0ZXJuIEV4cHIg KmV2YWx1YXRlX2V4cHJfc2FmZShFeHByICpleHByLCBPaWQgcmVzdWx0X3R5cGUsIGludDMyIHJl c3VsdF90eXBtb2QsCisJCQkJCQkJCU9pZCByZXN1bHRfY29sbGF0aW9uKTsKIGV4dGVybiBib29s IHZhcl9pc19ub25udWxsYWJsZShQbGFubmVySW5mbyAqcm9vdCwgVmFyICp2YXIsIGJvb2wgdXNl X3JlbF9pbmZvKTsKIAogZXh0ZXJuIExpc3QgKmV4cGFuZF9mdW5jdGlvbl9hcmd1bWVudHMoTGlz dCAqYXJncywgYm9vbCBpbmNsdWRlX291dF9hcmd1bWVudHMsCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2VfdHlwZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3R5cGUu aAppbmRleCAwZDkxOWQ4YmZhMi4uMTIzODFhZWQ2NGMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV90eXBlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3R5cGUu aApAQCAtNDcsNiArNDcsOCBAQCBleHRlcm4gY2hhciAqdHlwZVR5cGVOYW1lKFR5cGUgdCk7CiBl eHRlcm4gT2lkCXR5cGVUeXBlUmVsaWQoVHlwZSB0eXApOwogZXh0ZXJuIE9pZAl0eXBlVHlwZUNv bGxhdGlvbihUeXBlIHR5cCk7CiBleHRlcm4gRGF0dW0gc3RyaW5nVHlwZURhdHVtKFR5cGUgdHAs IGNoYXIgKnN0cmluZywgaW50MzIgYXR0dHlwbW9kKTsKK2V4dGVybiBib29sIHN0cmluZ1R5cGVE YXR1bVNhZmUoVHlwZSB0cCwgY2hhciAqc3RyaW5nLCBpbnQzMiBhdHR0eXBtb2QsCisJCQkJCQkJ CURhdHVtICpyZXN1bHQpOwogCiBleHRlcm4gT2lkCXR5cGVpZFR5cGVSZWxpZChPaWQgdHlwZV9p ZCk7CiBleHRlcm4gT2lkCXR5cGVPckRvbWFpblR5cGVSZWxpZChPaWQgdHlwZV9pZCk7Ci0tIAoy LjM0LjEKCg== --000000000000b88c47064114c15d Content-Type: text/x-patch; charset="UTF-8"; name="v8-0020-CAST-expr-AS-newtype-DEFAULT-ON-ERROR.patch" Content-Disposition: attachment; filename="v8-0020-CAST-expr-AS-newtype-DEFAULT-ON-ERROR.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgpwv23w0 RnJvbSA3ZTMwMjA2NjE1NmJmYmI5ZmUyMTU5MTM5MjU5ZGRkMjAyN2FhZWNhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMTEgT2N0IDIwMjUgMDk6MzU6MzMgKzA4MDAKU3ViamVjdDogW1BBVENIIHY4 IDIwLzIwXSBDQVNUKGV4cHIgQVMgbmV3dHlwZSBERUZBVUxUIE9OIEVSUk9SKQoKTm93IHRoYXQg dGhlIHR5cGUgY29lcmNpb24gbm9kZSBpcyBlcnJvci1zYWZlLCB3ZSBhbHNvIG5lZWQgdG8gZW5z dXJlIHRoYXQgd2hlbgphIGNvZXJjaW9uIGZhaWxzLCBpdCBmYWxscyBiYWNrIHRvIGV2YWx1YXRp bmcgdGhlIGRlZmF1bHQgbm9kZS4KZHJhZnQgZG9jIGFsc28gYWRkZWQuCgpXZSBjYW5ub3Qgc2lt cGx5IHByb2hpYml0IHVzZXItZGVmaW5lZCBmdW5jdGlvbnMgaW4gcGdfY2FzdCBmb3Igc2FmZSBj YXN0CmV2YWx1YXRpb24gYmVjYXVzZSBDUkVBVEUgQ0FTVCBjYW4gYWxzbyB1dGlsaXplIGJ1aWx0 LWluIGZ1bmN0aW9ucy4gU28sIHRvCmNvbXBsZXRlbHkgZGlzYWxsb3cgY3VzdG9tIGNhc3RzIGNy ZWF0ZWQgdmlhIENSRUFURSBDQVNUIHVzZWQgaW4gc2FmZSBjYXN0CmV2YWx1YXRpb24sIGEgbmV3 IGZpZWxkIGluIHBnX2Nhc3Qgd291bGQgdW5mb3J0dW5hdGVseSBiZSBuZWNlc3NhcnkuCgpkZW1v OgpTRUxFQ1QgQ0FTVCgnMScgQVMgZGF0ZSAgREVGQVVMVCAnMjAxMS0wMS0wMScgT04gRVJST1Ip LAogICAgICAgQ0FTVCgnezIzNCxkZWYsNTY3fSc6OnRleHRbXSBBUyBpbnRlZ2VyW10gREVGQVVM VCAney0xMDExfScgT04gRVJST1IpOwogICAgZGF0ZSAgICB8ICBpbnQ0Ci0tLS0tLS0tLS0tLSst LS0tLS0tLS0KIDIwMTEtMDEtMDEgfCB7LTEwMTF9CgpbMF06IGh0dHBzOi8vZ2l0LnBvc3RncmVz cWwub3JnL2NnaXQvcG9zdGdyZXNxbC5naXQvY29tbWl0Lz9pZD1hYWFmOTQ0OWVjNmJlNjJjYjBk MzBlZDM1ODhkYzM4NGY1NjI3NGIKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FE a0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21h aWwuY29tCi0tLQogLi4uL3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC9zZWxlY3Qub3V0ICAg IHwgIDIzICstCiBjb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9zcWwvc2VsZWN0LnNxbCAgICAg fCAgIDUgKwogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwg IDEyICsKIGRvYy9zcmMvc2dtbC9zeW50YXguc2dtbCAgICAgICAgICAgICAgICAgICAgICB8ICAx NiArCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nhc3QuYyAgICAgICAgICAgICAgICAgfCAgIDEg Kwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYyAgICAgICAgICAgICAgIHwgIDc2ICst CiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jICAgICAgICAgfCAgMzcgKwog c3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMgICAgICAgICAgIHwgIDQ5ICsrCiBz cmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgNjcgKysKIHNy Yy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyAgICAgICAgICB8ICAyNCArCiBzcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgMjQgKy0KIHNyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCAzODMgKysrKysrKysrLQog c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyAgICAgICAgICAgICAgIHwgICAzICsKIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyAgICAgICAgICAgICB8ICAxNCArCiBzcmMv YmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jICAgICAgICAgICAgfCAgMTMgKwogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAgICAgIHwgIDE2ICsKIHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQgICAgICAgICAgICAgICB8IDMzMCArKysrLS0tLS0KIHNy Yy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5oICAgICAgICAgICAgICAgICB8ICAgNCArCiBzcmMv aW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oICAgICAgICAgICAgICAgfCAgIDggKwogc3JjL2lu Y2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggICAgICAgICAgICAgICAgIHwgIDMwICsKIHNyYy9pbmNs dWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAgNiArCiBzcmMvaW5jbHVk ZS9ub2Rlcy9wcmltbm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgMzMgKwogc3JjL2luY2x1ZGUv cGFyc2VyL3BhcnNlX25vZGUuaCAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvY2FzdC5vdXQgICAgICAgICAgICB8IDY4MSArKysrKysrKysrKysrKysrKysK IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2Nhc3Qub3V0ICAgICB8ICAgNSArCiBz cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0ICAgICAgfCAgMjQgKy0KIHNy Yy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgICAgICAgICAgICB8ICAgMiArLQogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvY2FzdC5zcWwgICAgICAgICAgICAgICAgIHwgMzAxICsrKysrKysr CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwgICAgICAgICAgfCAgIDEgKwog c3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgICAzICsKIDMx IGZpbGVzIGNoYW5nZWQsIDIwMTIgaW5zZXJ0aW9ucygrKSwgMTkwIGRlbGV0aW9ucygtKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY2FzdC5vdXQKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jYXN0LnNxbAoKZGlmZiAtLWdpdCBh L2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL3NlbGVjdC5vdXQgYi9jb250cmli L3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC9zZWxlY3Qub3V0CmluZGV4IDc1Yzg5NmYzODg1 Li42ZTY3OTk3ZjBhMiAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvZXhw ZWN0ZWQvc2VsZWN0Lm91dAorKysgYi9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3Rl ZC9zZWxlY3Qub3V0CkBAIC03Myw2ICs3MywyNSBAQCBTRUxFQ1QgMSBBUyAiaW50IiBPRkZTRVQg MiBGRVRDSCBGSVJTVCAzIFJPVyBPTkxZOwogLS0tLS0KICgwIHJvd3MpCiAKKy0tZXJyb3Igc2Fm ZSB0eXBlIGNhc3QKK1NFTEVDVCBDQVNUKCdhJyBBUyBpbnQgREVGQVVMVCAyIE9OIENPTlZFUlNJ T04gRVJST1IpOworIGludDQgCistLS0tLS0KKyAgICAyCisoMSByb3cpCisKK1NFTEVDVCBDQVNU KCcxMScgQVMgaW50IERFRkFVTFQgMiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ0IAorLS0t LS0tCisgICAxMQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnMTInIEFTIG51bWVyaWMgREVGQVVM VCAyIE9OIENPTlZFUlNJT04gRVJST1IpOworIG51bWVyaWMgCistLS0tLS0tLS0KKyAgICAgIDEy CisoMSByb3cpCisKIC0tIERJU1RJTkNUIGFuZCBPUkRFUiBCWSBwYXR0ZXJucwogLS0gVHJ5IHNv bWUgcXVlcnkgcGVybXV0YXRpb25zIHdoaWNoIG9uY2UgcHJvZHVjZWQgaWRlbnRpY2FsIHF1ZXJ5 IElEcwogU0VMRUNUIERJU1RJTkNUIDEgQVMgImludCI7CkBAIC0yMjIsNiArMjQxLDggQEAgU0VM RUNUIGNhbGxzLCByb3dzLCBxdWVyeSBGUk9NIHBnX3N0YXRfc3RhdGVtZW50cyBPUkRFUiBCWSBx dWVyeSBDT0xMQVRFICJDIjsKICAgICAgMiB8ICAgIDIgfCBTRUxFQ1QgJDEgQVMgImludCIgT1JE RVIgQlkgMQogICAgICAxIHwgICAgMiB8IFNFTEVDVCAkMSBBUyBpIFVOSU9OIFNFTEVDVCAkMiBP UkRFUiBCWSBpCiAgICAgIDEgfCAgICAxIHwgU0VMRUNUICQxIHx8ICQyCisgICAgIDIgfCAgICAy IHwgU0VMRUNUIENBU1QoJDEgQVMgaW50IERFRkFVTFQgJDIgT04gQ09OVkVSU0lPTiBFUlJPUikK KyAgICAgMSB8ICAgIDEgfCBTRUxFQ1QgQ0FTVCgkMSBBUyBudW1lcmljIERFRkFVTFQgJDIgT04g Q09OVkVSU0lPTiBFUlJPUikKICAgICAgMiB8ICAgIDIgfCBTRUxFQ1QgRElTVElOQ1QgJDEgQVMg ImludCIKICAgICAgMCB8ICAgIDAgfCBTRUxFQ1QgY2FsbHMsIHJvd3MsIHF1ZXJ5IEZST00gcGdf c3RhdF9zdGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5IENPTExBVEUgIkMiCiAgICAgIDEgfCAgICAx IHwgU0VMRUNUIHBnX3N0YXRfc3RhdGVtZW50c19yZXNldCgpIElTIE5PVCBOVUxMIEFTIHQKQEAg LTIzMCw3ICsyNTEsNyBAQCBTRUxFQ1QgY2FsbHMsIHJvd3MsIHF1ZXJ5IEZST00gcGdfc3RhdF9z dGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5IENPTExBVEUgIkMiOwogICAgICAgIHwgICAgICB8ICkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCiAgICAgICAgfCAgICAgIHwgICBTRUxFQ1QgZiBGUk9NIHQgT1JE RVIgQlkgZgogICAgICAxIHwgICAgMSB8IHNlbGVjdCAkMTo6anNvbmIgPyAkMgotKDE3IHJvd3Mp CisoMTkgcm93cykKIAogU0VMRUNUIHBnX3N0YXRfc3RhdGVtZW50c19yZXNldCgpIElTIE5PVCBO VUxMIEFTIHQ7CiAgdCAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3Nx bC9zZWxlY3Quc3FsIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvc3FsL3NlbGVjdC5zcWwK aW5kZXggMTE2NjJjZGUwOGMuLjdlZTgxNjBmZDg0IDEwMDY0NAotLS0gYS9jb250cmliL3BnX3N0 YXRfc3RhdGVtZW50cy9zcWwvc2VsZWN0LnNxbAorKysgYi9jb250cmliL3BnX3N0YXRfc3RhdGVt ZW50cy9zcWwvc2VsZWN0LnNxbApAQCAtMjUsNiArMjUsMTEgQEAgU0VMRUNUIDEgQVMgImludCIg TElNSVQgMyBPRkZTRVQgMzsKIFNFTEVDVCAxIEFTICJpbnQiIE9GRlNFVCAxIEZFVENIIEZJUlNU IDIgUk9XIE9OTFk7CiBTRUxFQ1QgMSBBUyAiaW50IiBPRkZTRVQgMiBGRVRDSCBGSVJTVCAzIFJP VyBPTkxZOwogCistLWVycm9yIHNhZmUgdHlwZSBjYXN0CitTRUxFQ1QgQ0FTVCgnYScgQVMgaW50 IERFRkFVTFQgMiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcxMScgQVMgaW50 IERFRkFVTFQgMiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcxMicgQVMgbnVt ZXJpYyBERUZBVUxUIDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKIC0tIERJU1RJTkNUIGFuZCBP UkRFUiBCWSBwYXR0ZXJucwogLS0gVHJ5IHNvbWUgcXVlcnkgcGVybXV0YXRpb25zIHdoaWNoIG9u Y2UgcHJvZHVjZWQgaWRlbnRpY2FsIHF1ZXJ5IElEcwogU0VMRUNUIERJU1RJTkNUIDEgQVMgImlu dCI7CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dt bC9jYXRhbG9ncy5zZ21sCmluZGV4IDliM2FhZTg2MDNiLi45NTcwNDFhZGQ3YiAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dz LnNnbWwKQEAgLTE4NDksNiArMTg0OSwxOCBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4m bHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAg ICAgIDxsaXRlcmFsPmI8L2xpdGVyYWw+IG1lYW5zIHRoYXQgdGhlIHR5cGVzIGFyZSBiaW5hcnkt Y29lcmNpYmxlLCB0aHVzIG5vIGNvbnZlcnNpb24gaXMgcmVxdWlyZWQuCiAgICAgICA8L3BhcmE+ PC9lbnRyeT4KICAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPmNhc3RlcnJvcnNhZmU8L3N0cnVjdGZpZWxkPiA8dHlwZT5ib29sPC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhpcyBpbmRpY2F0ZXMg d2hldGhlciB0aGUgPHN0cnVjdGZpZWxkPmNhc3RmdW5jPC9zdHJ1Y3RmaWVsZD4gZnVuY3Rpb24g aXMgZXJyb3Igc2FmZS4KKyAgICAgICBJZiB0aGUgPHN0cnVjdGZpZWxkPmNhc3RmdW5jPC9zdHJ1 Y3RmaWVsZD4gZnVuY3Rpb24gaXMgZXJyb3Igc2FmZSwgaXQgY2FuIGJlIHVzZWQgaW4KKyAgICAg ICAgIEZvciBmdXJ0aGVyIGRldGFpbHMgc2VlIDx4cmVmIGxpbmtlbmQ9InNxbC1zeW50YXgtdHlw ZS1jYXN0cyIvPi4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgIDwv dGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9zeW50YXguc2dtbCBiL2RvYy9zcmMvc2dtbC9zeW50YXguc2dtbAppbmRleCAyMzdkNzMwNmZl OC4uOWFjYjdkNjk2NDUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9zeW50YXguc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwKQEAgLTIxMDYsNiArMjEwNiwyMiBAQCBDQVNUICgg PHJlcGxhY2VhYmxlPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiBBUyA8cmVwbGFjZWFibGU+dHlw ZTwvcmVwbGFjZWFibGU+CiAgICAgVGhlIDxsaXRlcmFsPkNBU1Q8L2xpdGVyYWw+IHN5bnRheCBj b25mb3JtcyB0byBTUUw7IHRoZSBzeW50YXggd2l0aAogICAgIDxsaXRlcmFsPjo6PC9saXRlcmFs PiBpcyBoaXN0b3JpY2FsIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4KICAg ICB1c2FnZS4KKyAgICBJdCBjYW4gYWxzbyBiZSB3cml0dGVuIGFzOgorPHN5bm9wc2lzPgorQ0FT VCAoIDxyZXBsYWNlYWJsZT5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxl PnR5cGU8L3JlcGxhY2VhYmxlPiBFUlJPUiBPTiBDT05WRVJTSU9OIEVSUk9SICkKKzwvc3lub3Bz aXM+CisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorVHlwZSBjYXN0IGNhbiBhbHNvIGJlIGVycm9y IHNhZmUuCis8c3lub3BzaXM+CitDQVNUICggPHJlcGxhY2VhYmxlPmV4cHJlc3Npb248L3JlcGxh Y2VhYmxlPiBBUyA8cmVwbGFjZWFibGU+dHlwZTwvcmVwbGFjZWFibGU+IERFRkFVTFQgPHJlcGxh Y2VhYmxlPmRlZmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiBPTiBDT05WRVJTSU9OIEVSUk9SICkK Kzwvc3lub3BzaXM+CisgICAgRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgcXVlcnkgd2lsbCBl dmFsdWF0ZSB0aGUgZGVmYXVsdCBleHByZXNzaW9uIGFuZCByZXR1cm4gNDIuCisgICAgVE9ETzog bW9yZSBleHBsYW5hdGlvbgorPHByb2dyYW1saXN0aW5nPgorU0VMRUNUIENBU1QoJ2Vycm9yJyBB UyBpbnRlZ2VyIERFRkFVTFQgNDIgT04gQ09OVkVSU0lPTiBFUlJPUik7Cis8L3Byb2dyYW1saXN0 aW5nPgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nh dGFsb2cvcGdfY2FzdC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jYXN0LmMKaW5kZXggMTc3 M2M5YzU0OTEuLjZmZTY1ZDI0ZDMxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X2Nhc3QuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nhc3QuYwpAQCAtODQsNiArODQs NyBAQCBDYXN0Q3JlYXRlKE9pZCBzb3VyY2V0eXBlaWQsIE9pZCB0YXJnZXR0eXBlaWQsCiAJdmFs dWVzW0FudW1fcGdfY2FzdF9jYXN0ZnVuYyAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShmdW5jaWQp OwogCXZhbHVlc1tBbnVtX3BnX2Nhc3RfY2FzdGNvbnRleHQgLSAxXSA9IENoYXJHZXREYXR1bShj YXN0Y29udGV4dCk7CiAJdmFsdWVzW0FudW1fcGdfY2FzdF9jYXN0bWV0aG9kIC0gMV0gPSBDaGFy R2V0RGF0dW0oY2FzdG1ldGhvZCk7CisJdmFsdWVzW0FudW1fcGdfY2FzdF9jYXN0ZXJyb3JzYWZl IC0gMV0gPSBCb29sR2V0RGF0dW0oZmFsc2UpOwogCiAJdHVwbGUgPSBoZWFwX2Zvcm1fdHVwbGUo UmVsYXRpb25HZXREZXNjcihyZWxhdGlvbiksIHZhbHVlcywgbnVsbHMpOwogCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0V4cHIuYwppbmRleCBiMzAyYmUzNmY3My4uODhhNjQ3ZTQ0ZmEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0V4cHIuYwpAQCAtOTksNiArOTksOSBAQCBzdGF0aWMgdm9pZCBFeGVjQnVpbGRBZ2dUcmFu c0NhbGwoRXhwclN0YXRlICpzdGF0ZSwgQWdnU3RhdGUgKmFnZ3N0YXRlLAogc3RhdGljIHZvaWQg RXhlY0luaXRKc29uRXhwcihKc29uRXhwciAqanNleHByLCBFeHByU3RhdGUgKnN0YXRlLAogCQkJ CQkJCSBEYXR1bSAqcmVzdiwgYm9vbCAqcmVzbnVsbCwKIAkJCQkJCQkgRXhwckV2YWxTdGVwICpz Y3JhdGNoKTsKK3N0YXRpYyB2b2lkIEV4ZWNJbml0U2FmZVR5cGVDYXN0RXhwcihTYWZlVHlwZUNh c3RFeHByICpzdGNleHByLCBFeHByU3RhdGUgKnN0YXRlLAorCQkJCQkJCQkJIERhdHVtICpyZXN2 LCBib29sICpyZXNudWxsLAorCQkJCQkJCQkJIEV4cHJFdmFsU3RlcCAqc2NyYXRjaCk7CiBzdGF0 aWMgdm9pZCBFeGVjSW5pdEpzb25Db2VyY2lvbihFeHByU3RhdGUgKnN0YXRlLCBKc29uUmV0dXJu aW5nICpyZXR1cm5pbmcsCiAJCQkJCQkJCSBFcnJvclNhdmVDb250ZXh0ICplc2NvbnRleHQsIGJv b2wgb21pdF9xdW90ZXMsCiAJCQkJCQkJCSBib29sIGV4aXN0c19jb2VyY2UsCkBAIC0xNzQyLDYg KzE3NDUsNyBAQCBFeGVjSW5pdEV4cHJSZWMoRXhwciAqbm9kZSwgRXhwclN0YXRlICpzdGF0ZSwK IAogCQkJCWVsZW1zdGF0ZS0+aW5uZXJtb3N0X2Nhc2V2YWwgPSAoRGF0dW0gKikgcGFsbG9jKHNp emVvZihEYXR1bSkpOwogCQkJCWVsZW1zdGF0ZS0+aW5uZXJtb3N0X2Nhc2VudWxsID0gKGJvb2wg KikgcGFsbG9jKHNpemVvZihib29sKSk7CisJCQkJZWxlbXN0YXRlLT5lc2NvbnRleHQgPSBzdGF0 ZS0+ZXNjb250ZXh0OwogCiAJCQkJRXhlY0luaXRFeHByUmVjKGFjb2VyY2UtPmVsZW1leHByLCBl bGVtc3RhdGUsCiAJCQkJCQkJCSZlbGVtc3RhdGUtPnJlc3ZhbHVlLCAmZWxlbXN0YXRlLT5yZXNu dWxsKTsKQEAgLTIyMTgsNiArMjIyMiwxNCBAQCBFeGVjSW5pdEV4cHJSZWMoRXhwciAqbm9kZSwg RXhwclN0YXRlICpzdGF0ZSwKIAkJCQlicmVhazsKIAkJCX0KIAorCQljYXNlIFRfU2FmZVR5cGVD YXN0RXhwcjoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3RFeHByICAgKnN0Y2V4cHIgPSBjYXN0Tm9k ZShTYWZlVHlwZUNhc3RFeHByLCBub2RlKTsKKworCQkJCUV4ZWNJbml0U2FmZVR5cGVDYXN0RXhw cihzdGNleHByLCBzdGF0ZSwgcmVzdiwgcmVzbnVsbCwgJnNjcmF0Y2gpOworCQkJCWJyZWFrOwor CQkJfQorCiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJCQl7CiAJCQkJQ29hbGVzY2VFeHByICpj b2FsZXNjZSA9IChDb2FsZXNjZUV4cHIgKikgbm9kZTsKQEAgLTI3ODQsNyArMjc5Niw3IEBAIEV4 ZWNJbml0RnVuYyhFeHByRXZhbFN0ZXAgKnNjcmF0Y2gsIEV4cHIgKm5vZGUsIExpc3QgKmFyZ3Ms IE9pZCBmdW5jaWQsCiAKIAkvKiBJbml0aWFsaXplIGZ1bmN0aW9uIGNhbGwgcGFyYW1ldGVyIHN0 cnVjdHVyZSB0b28gKi8KIAlJbml0RnVuY3Rpb25DYWxsSW5mb0RhdGEoKmZjaW5mbywgZmxpbmZv LAotCQkJCQkJCSBuYXJncywgaW5wdXRjb2xsaWQsIE5VTEwsIE5VTEwpOworCQkJCQkJCSBuYXJn cywgaW5wdXRjb2xsaWQsIChOb2RlICopIHN0YXRlLT5lc2NvbnRleHQsIE5VTEwpOwogCiAJLyog S2VlcCBleHRyYSBjb3BpZXMgb2YgdGhpcyBpbmZvIHRvIHNhdmUgYW4gaW5kaXJlY3Rpb24gYXQg cnVudGltZSAqLwogCXNjcmF0Y2gtPmQuZnVuYy5mbl9hZGRyID0gZmxpbmZvLT5mbl9hZGRyOwpA QCAtNDc4Miw2ICs0Nzk0LDY4IEBAIEV4ZWNCdWlsZFBhcmFtU2V0RXF1YWwoVHVwbGVEZXNjIGRl c2MsCiAJcmV0dXJuIHN0YXRlOwogfQogCisvKgorICogUHVzaCBzdGVwcyB0byBldmFsdWF0ZSBh IFNhZmVUeXBlQ2FzdEV4cHIgYW5kIGl0cyB2YXJpb3VzIHN1YnNpZGlhcnkKKyAqIGV4cHJlc3Np b25zLgorICovCitzdGF0aWMgdm9pZAorRXhlY0luaXRTYWZlVHlwZUNhc3RFeHByKFNhZmVUeXBl Q2FzdEV4cHIgKnN0Y2V4cHIgLCBFeHByU3RhdGUgKnN0YXRlLAorCQkJCQkJIERhdHVtICpyZXN2 LCBib29sICpyZXNudWxsLAorCQkJCQkJIEV4cHJFdmFsU3RlcCAqc2NyYXRjaCkKK3sKKwkvKgor CSAqIElmIGNvZXJjaW9uIHRvIHRoZSB0YXJnZXQgdHlwZSBmYWlscywgZmFsbGJhY2sgdG8gdGhl IERFRkFVTFQgZXhwcmVzc2lvbgorCSAqIHNwZWNpZmllZCBpbiB0aGUgT04gQ09OVkVSU0lPTiBF UlJPUiBjbGF1c2UuCisJKi8KKwlpZiAoc3RjZXhwci0+Y2FzdF9leHByID09IE5VTEwpCisJewor CQlFeGVjSW5pdEV4cHJSZWMoKEV4cHIgKikgc3RjZXhwci0+ZGVmYXVsdF9leHByLAorCQkJCQkJ c3RhdGUsIHJlc3YsIHJlc251bGwpOworCQlyZXR1cm47CisJfQorCWVsc2UKKwl7CisJCUV4cHJF dmFsU3RlcCAqYXM7CisJCVNhZmVUeXBlQ2FzdFN0YXRlICpzdGNzdGF0ZTsKKwkJRXJyb3JTYXZl Q29udGV4dCAqc2F2ZWRfZXNjb250ZXh0OworCQlpbnQJCQkJanVtcHNfdG9fZW5kOworCisJCXN0 Y3N0YXRlID0gcGFsbG9jMChzaXplb2YoU2FmZVR5cGVDYXN0U3RhdGUpKTsKKwkJc3Rjc3RhdGUt PnN0Y2V4cHIgPSBzdGNleHByOworCQlzdGNzdGF0ZS0+ZXNjb250ZXh0LnR5cGUgPSBUX0Vycm9y U2F2ZUNvbnRleHQ7CisJCXN0YXRlLT5lc2NvbnRleHQgPSAmc3Rjc3RhdGUtPmVzY29udGV4dDsK KworCQkvKiBldmFsdWF0ZSBhcmd1bWVudCBleHByZXNzaW9uIGludG8gc3RlcCdzIHJlc3VsdCBh cmVhICovCisJCUV4ZWNJbml0RXhwclJlYygoRXhwciAqKSBzdGNleHByLT5jYXN0X2V4cHIsCisJ CQkJCQlzdGF0ZSwgcmVzdiwgcmVzbnVsbCk7CisKKwkJc2NyYXRjaC0+b3Bjb2RlID0gRUVPUF9T QUZFVFlQRV9DQVNUOworCQlzY3JhdGNoLT5kLnN0Y2V4cHIuc3Rjc3RhdGUgPSBzdGNzdGF0ZTsK KwkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgc2NyYXRjaCk7CisJCXN0Y3N0YXRlLT5qdW1wX2Vy cm9yID0gc3RhdGUtPnN0ZXBzX2xlbjsKKworCQkvKiBKVU1QIHRvIGVuZCBpZiBmYWxzZSwgdGhh dCBpcywgc2tpcCB0aGUgT04gRVJST1IgZXhwcmVzc2lvbi4gKi8KKwkJanVtcHNfdG9fZW5kID0g c3RhdGUtPnN0ZXBzX2xlbjsKKwkJc2NyYXRjaC0+b3Bjb2RlID0gRUVPUF9KVU1QX0lGX05PVF9U UlVFOworCQlzY3JhdGNoLT5yZXN2YWx1ZSA9ICZzdGNzdGF0ZS0+ZXJyb3IudmFsdWU7CisJCXNj cmF0Y2gtPnJlc251bGwgPSAmc3Rjc3RhdGUtPmVycm9yLmlzbnVsbDsKKwkJc2NyYXRjaC0+ZC5q dW1wLmp1bXBkb25lID0gLTE7CS8qIHNldCBiZWxvdyAqLworCQlFeHByRXZhbFB1c2hTdGVwKHN0 YXRlLCBzY3JhdGNoKTsKKworCQkvKiBTdGVwcyB0byBldmFsdWF0ZSB0aGUgT04gRVJST1IgZXhw cmVzc2lvbiAqLworCQlzYXZlZF9lc2NvbnRleHQgPSBzdGF0ZS0+ZXNjb250ZXh0OworCQlzdGF0 ZS0+ZXNjb250ZXh0ID0gTlVMTDsKKwkJRXhlY0luaXRFeHByUmVjKChFeHByICopIHN0Y3N0YXRl LT5zdGNleHByLT5kZWZhdWx0X2V4cHIsCisJCQkJCQlzdGF0ZSwgcmVzdiwgcmVzbnVsbCk7CisJ CXN0YXRlLT5lc2NvbnRleHQgPSBzYXZlZF9lc2NvbnRleHQ7CisKKwkJYXMgPSAmc3RhdGUtPnN0 ZXBzW2p1bXBzX3RvX2VuZF07CisJCWFzLT5kLmp1bXAuanVtcGRvbmUgPSBzdGF0ZS0+c3RlcHNf bGVuOworCisJCXN0Y3N0YXRlLT5qdW1wX2VuZCA9IHN0YXRlLT5zdGVwc19sZW47CisJfQorfQor CiAvKgogICogUHVzaCBzdGVwcyB0byBldmFsdWF0ZSBhIEpzb25FeHByIGFuZCBpdHMgdmFyaW91 cyBzdWJzaWRpYXJ5IGV4cHJlc3Npb25zLgogICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwckludGVycC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJ bnRlcnAuYwppbmRleCA2N2Y0ZTAwZWFjNC4uNDlkYTI5MDU4MTAgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAtNTY4LDYgKzU2OCw3IEBAIEV4ZWNJbnRlcnBFeHByKEV4 cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwgYm9vbCAqaXNudWxsKQogCQkm JkNBU0VfRUVPUF9YTUxFWFBSLAogCQkmJkNBU0VfRUVPUF9KU09OX0NPTlNUUlVDVE9SLAogCQkm JkNBU0VfRUVPUF9JU19KU09OLAorCQkmJkNBU0VfRUVPUF9TQUZFVFlQRV9DQVNULAogCQkmJkNB U0VfRUVPUF9KU09ORVhQUl9QQVRILAogCQkmJkNBU0VfRUVPUF9KU09ORVhQUl9DT0VSQ0lPTiwK IAkJJiZDQVNFX0VFT1BfSlNPTkVYUFJfQ09FUkNJT05fRklOSVNILApAQCAtMTkyNiw2ICsxOTI3 LDEyIEBAIEV4ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29u dGV4dCwgYm9vbCAqaXNudWxsKQogCQkJRUVPX05FWFQoKTsKIAkJfQogCisJCUVFT19DQVNFKEVF T1BfU0FGRVRZUEVfQ0FTVCkKKwkJeworCQkJLyogdG9vIGNvbXBsZXggZm9yIGFuIGlubGluZSBp bXBsZW1lbnRhdGlvbiAqLworCQkJRUVPX0pVTVAoRXhlY0V2YWxTYWZlVHlwZUNhc3Qoc3RhdGUs IG9wKSk7CisJCX0KKwogCQlFRU9fQ0FTRShFRU9QX0pTT05FWFBSX1BBVEgpCiAJCXsKIAkJCS8q IHRvbyBjb21wbGV4IGZvciBhbiBpbmxpbmUgaW1wbGVtZW50YXRpb24gKi8KQEAgLTM2NDQsNiAr MzY1MSwxMiBAQCBFeGVjRXZhbEFycmF5Q29lcmNlKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFs U3RlcCAqb3AsIEV4cHJDb250ZXh0ICplY29udGV4dCkKIAkJCQkJCQkgIGVjb250ZXh0LAogCQkJ CQkJCSAgb3AtPmQuYXJyYXljb2VyY2UucmVzdWx0ZWxlbXR5cGUsCiAJCQkJCQkJICBvcC0+ZC5h cnJheWNvZXJjZS5hbXN0YXRlKTsKKworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKG9wLT5kLmFy cmF5Y29lcmNlLmVsZW1leHByc3RhdGUtPmVzY29udGV4dCkpCisJeworCQkqb3AtPnJlc3ZhbHVl ID0gKERhdHVtKSAwOworCQkqb3AtPnJlc251bGwgPSB0cnVlOworCX0KIH0KIAogLyoKQEAgLTUx ODMsNiArNTE5NiwzMCBAQCBHZXRKc29uQmVoYXZpb3JWYWx1ZVN0cmluZyhKc29uQmVoYXZpb3Ig KmJlaGF2aW9yKQogCXJldHVybiBwc3RyZHVwKGJlaGF2aW9yX25hbWVzW2JlaGF2aW9yLT5idHlw ZV0pOwogfQogCitpbnQKK0V4ZWNFdmFsU2FmZVR5cGVDYXN0KEV4cHJTdGF0ZSAqc3RhdGUsIEV4 cHJFdmFsU3RlcCAqb3ApCit7CisJU2FmZVR5cGVDYXN0U3RhdGUgKnN0Y3N0YXRlID0gb3AtPmQu c3RjZXhwci5zdGNzdGF0ZTsKKworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKCZzdGNzdGF0ZS0+ ZXNjb250ZXh0KSkKKwl7CisJCSpvcC0+cmVzdmFsdWUgPSAoRGF0dW0pIDA7CisJCSpvcC0+cmVz bnVsbCA9IHRydWU7CisKKwkJc3Rjc3RhdGUtPmVycm9yLnZhbHVlID0gQm9vbEdldERhdHVtKHRy dWUpOworCisJCS8qCisJCSAqIFJlc2V0IGZvciBuZXh0IHVzZSBzdWNoIGFzIGZvciBjYXRjaGlu ZyBlcnJvcnMgd2hlbiBjb2VyY2luZyBhCisJCSAqIHN0Y2V4cHIgZXhwcmVzc2lvbi4KKwkJICov CisJCXN0Y3N0YXRlLT5lc2NvbnRleHQuZXJyb3Jfb2NjdXJyZWQgPSBmYWxzZTsKKwkJc3Rjc3Rh dGUtPmVzY29udGV4dC5kZXRhaWxzX3dhbnRlZCA9IGZhbHNlOworCisJCXJldHVybiBzdGNzdGF0 ZS0+anVtcF9lcnJvcjsKKwl9CisJcmV0dXJuIHN0Y3N0YXRlLT5qdW1wX2VuZDsKK30KKwogLyoK ICAqIENoZWNrcyBpZiBhbiBlcnJvciBvY2N1cnJlZCBpbiBFeGVjRXZhbEpzb25Db2VyY2lvbigp LiAgSWYgc28sIHRoaXMgc2V0cwogICogSnNvbkV4cHJTdGF0ZS5lcnJvciB0byB0cmlnZ2VyIHRo ZSBPTiBFUlJPUiBoYW5kbGluZyBzdGVwcywgdW5sZXNzIHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMgYi9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZt aml0X2V4cHIuYwppbmRleCA3MTJiMzVkZjdlNS4uZjU0ZmU1NjM1NDMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2ppdC9s bHZtL2xsdm1qaXRfZXhwci5jCkBAIC0yMjU2LDYgKzIyNTYsNTUgQEAgbGx2bV9jb21waWxlX2V4 cHIoRXhwclN0YXRlICpzdGF0ZSkKIAkJCQlMTFZNQnVpbGRCcihiLCBvcGJsb2Nrc1tvcG5vICsg MV0pOwogCQkJCWJyZWFrOwogCisJCQljYXNlIEVFT1BfU0FGRVRZUEVfQ0FTVDoKKwkJCQl7CisJ CQkJCVNhZmVUeXBlQ2FzdFN0YXRlICpzdGNzdGF0ZSA9IG9wLT5kLnN0Y2V4cHIuc3Rjc3RhdGU7 CisJCQkJCUxMVk1WYWx1ZVJlZiB2X3JldDsKKworCQkJCQkvKgorCQkJCQkgKiBDYWxsIEV4ZWNF dmFsU2FmZVR5cGVDYXN0KCkuICBJdCByZXR1cm5zIHRoZSBhZGRyZXNzIG9mCisJCQkJCSAqIHRo ZSBzdGVwIHRvIHBlcmZvcm0gbmV4dC4KKwkJCQkJICovCisJCQkJCXZfcmV0ID0gYnVpbGRfRXZh bFhGdW5jKGIsIG1vZCwgIkV4ZWNFdmFsU2FmZVR5cGVDYXN0IiwKKwkJCQkJCQkJCQkJdl9zdGF0 ZSwgb3AsIHZfZWNvbnRleHQpOworCisJCQkJCS8qCisJCQkJCSAqIEJ1aWxkIGEgc3dpdGNoIHRv IG1hcCB0aGUgcmV0dXJuIHZhbHVlICh2X3JldCBhYm92ZSksCisJCQkJCSAqIHdoaWNoIGlzIGEg cnVudGltZSB2YWx1ZSBvZiB0aGUgc3RlcCBhZGRyZXNzIHRvIHBlcmZvcm0KKwkJCQkJICogbmV4 dCB0byBqdW1wX2Vycm9yCisJCQkJCSAqLworCQkJCQlpZiAoc3Rjc3RhdGUtPmp1bXBfZXJyb3Ig Pj0gMCkKKwkJCQkJeworCQkJCQkJTExWTVZhbHVlUmVmIHZfanVtcF9lcnJvcjsKKwkJCQkJCUxM Vk1WYWx1ZVJlZiB2X3N3aXRjaDsKKwkJCQkJCUxMVk1CYXNpY0Jsb2NrUmVmIGJfZG9uZSwKKwkJ CQkJCQkJCWJfZXJyb3I7CisKKwkJCQkJCWJfZXJyb3IgPQorCQkJCQkJCWxfYmJfYmVmb3JlX3Yo b3BibG9ja3Nbb3BubyArIDFdLAorCQkJCQkJCQkJCSAgIm9wLiVkLnN0Y2V4cHJfZXJyb3IiLCBv cG5vKTsKKwkJCQkJCWJfZG9uZSA9CisJCQkJCQkJbF9iYl9iZWZvcmVfdihvcGJsb2Nrc1tvcG5v ICsgMV0sCisJCQkJCQkJCQkJICAib3AuJWQuc3RjZXhwcl9kb25lIiwgb3Bubyk7CisKKwkJCQkJ CXZfc3dpdGNoID0gTExWTUJ1aWxkU3dpdGNoKGIsCisJCQkJCQkJCQkJCQkgICB2X3JldCwKKwkJ CQkJCQkJCQkJCSAgIGJfZG9uZSwKKwkJCQkJCQkJCQkJCSAgIDEpOworCisJCQkJCQkvKiBSZXR1 cm5lZCBzdGNzdGF0ZS0+anVtcF9lcnJvcj8gKi8KKwkJCQkJCXZfanVtcF9lcnJvciA9IGxfaW50 MzJfY29uc3QobGMsIHN0Y3N0YXRlLT5qdW1wX2Vycm9yKTsKKwkJCQkJCUxMVk1BZGRDYXNlKHZf c3dpdGNoLCB2X2p1bXBfZXJyb3IsIGJfZXJyb3IpOworCisJCQkJCQkvKiBPTiBFUlJPUiBjb2Rl ICovCisJCQkJCQlMTFZNUG9zaXRpb25CdWlsZGVyQXRFbmQoYiwgYl9lcnJvcik7CisJCQkJCQlM TFZNQnVpbGRCcihiLCBvcGJsb2Nrc1tzdGNzdGF0ZS0+anVtcF9lcnJvcl0pOworCisJCQkJCQlM TFZNUG9zaXRpb25CdWlsZGVyQXRFbmQoYiwgYl9kb25lKTsKKwkJCQkJfQorCQkJCQlMTFZNQnVp bGRCcihiLCBvcGJsb2Nrc1tzdGNzdGF0ZS0+anVtcF9lbmRdKTsKKwkJCQkJYnJlYWs7CisJCQkJ fQogCQkJY2FzZSBFRU9QX0pTT05FWFBSX1BBVEg6CiAJCQkJewogCQkJCQlKc29uRXhwclN0YXRl ICpqc2VzdGF0ZSA9IG9wLT5kLmpzb25leHByLmpzZXN0YXRlOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwpp bmRleCBlZGU4MzhjZDQwYy4uNTMzZTIxMTIwYTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25v ZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC0y MDYsNiArMjA2LDkgQEAgZXhwclR5cGUoY29uc3QgTm9kZSAqZXhwcikKIAkJY2FzZSBUX1Jvd0Nv bXBhcmVFeHByOgogCQkJdHlwZSA9IEJPT0xPSUQ7CiAJCQlicmVhazsKKwkJY2FzZSBUX1NhZmVU eXBlQ2FzdEV4cHI6CisJCQl0eXBlID0gKChjb25zdCBTYWZlVHlwZUNhc3RFeHByICopIGV4cHIp LT5yZXN1bHR0eXBlOworCQkJYnJlYWs7CiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJCQl0eXBl ID0gKChjb25zdCBDb2FsZXNjZUV4cHIgKikgZXhwciktPmNvYWxlc2NldHlwZTsKIAkJCWJyZWFr OwpAQCAtNDUwLDYgKzQ1Myw4IEBAIGV4cHJUeXBtb2QoY29uc3QgTm9kZSAqZXhwcikKIAkJCQly ZXR1cm4gdHlwbW9kOwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHBy OgorCQkJcmV0dXJuICgoY29uc3QgU2FmZVR5cGVDYXN0RXhwciAqKSBleHByKS0+cmVzdWx0dHlw bW9kOwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgogCQkJewogCQkJCS8qCkBAIC05NjUsNiArOTcw LDkgQEAgZXhwckNvbGxhdGlvbihjb25zdCBOb2RlICpleHByKQogCQkJLyogUm93Q29tcGFyZUV4 cHIncyByZXN1bHQgaXMgYm9vbGVhbiAuLi4gKi8KIAkJCWNvbGwgPSBJbnZhbGlkT2lkOwkvKiAu Li4gc28gaXQgaGFzIG5vIGNvbGxhdGlvbiAqLwogCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlw ZUNhc3RFeHByOgorCQkJY29sbCA9ICgoY29uc3QgU2FmZVR5cGVDYXN0RXhwciAqKSBleHByKS0+ cmVzdWx0Y29sbGlkOworCQkJYnJlYWs7CiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJCQljb2xs ID0gKChjb25zdCBDb2FsZXNjZUV4cHIgKikgZXhwciktPmNvYWxlc2NlY29sbGlkOwogCQkJYnJl YWs7CkBAIC0xMjMyLDYgKzEyNDAsOSBAQCBleHByU2V0Q29sbGF0aW9uKE5vZGUgKmV4cHIsIE9p ZCBjb2xsYXRpb24pCiAJCQkvKiBSb3dDb21wYXJlRXhwcidzIHJlc3VsdCBpcyBib29sZWFuIC4u LiAqLwogCQkJQXNzZXJ0KCFPaWRJc1ZhbGlkKGNvbGxhdGlvbikpOyAvKiAuLi4gc28gbmV2ZXIg c2V0IGEgY29sbGF0aW9uICovCiAJCQlicmVhazsKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6 CisJCQkoKFNhZmVUeXBlQ2FzdEV4cHIgKikgZXhwciktPnJlc3VsdGNvbGxpZCA9IGNvbGxhdGlv bjsKKwkJCWJyZWFrOwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgogCQkJKChDb2FsZXNjZUV4cHIg KikgZXhwciktPmNvYWxlc2NlY29sbGlkID0gY29sbGF0aW9uOwogCQkJYnJlYWs7CkBAIC0xNTUw LDYgKzE1NjEsMTUgQEAgZXhwckxvY2F0aW9uKGNvbnN0IE5vZGUgKmV4cHIpCiAJCQkvKiBqdXN0 IHVzZSBsZWZ0bW9zdCBhcmd1bWVudCdzIGxvY2F0aW9uICovCiAJCQlsb2MgPSBleHByTG9jYXRp b24oKE5vZGUgKikgKChjb25zdCBSb3dDb21wYXJlRXhwciAqKSBleHByKS0+bGFyZ3MpOwogCQkJ YnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJeworCQkJCWNvbnN0IFNhZmVU eXBlQ2FzdEV4cHIgKmNhc3RfZXhwciA9IChjb25zdCBTYWZlVHlwZUNhc3RFeHByICopIGV4cHI7 CisJCQkJaWYgKGNhc3RfZXhwci0+Y2FzdF9leHByKQorCQkJCQlsb2MgPSBleHByTG9jYXRpb24o Y2FzdF9leHByLT5jYXN0X2V4cHIpOworCQkJCWVsc2UKKwkJCQkJbG9jID0gZXhwckxvY2F0aW9u KGNhc3RfZXhwci0+ZGVmYXVsdF9leHByKTsKKwkJCQlicmVhazsKKwkJCX0KIAkJY2FzZSBUX0Nv YWxlc2NlRXhwcjoKIAkJCS8qIENPQUxFU0NFIGtleXdvcmQgc2hvdWxkIGFsd2F5cyBiZSB0aGUg Zmlyc3QgdGhpbmcgKi8KIAkJCWxvYyA9ICgoY29uc3QgQ29hbGVzY2VFeHByICopIGV4cHIpLT5s b2NhdGlvbjsKQEAgLTIzMjEsNiArMjM0MSwxOCBAQCBleHByZXNzaW9uX3RyZWVfd2Fsa2VyX2lt cGwoTm9kZSAqbm9kZSwKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQl9CiAJCQlicmVhazsKKwkJY2Fz ZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQl7CisJCQkJU2FmZVR5cGVDYXN0RXhwciAgICpzY2V4 cHIgPSAoU2FmZVR5cGVDYXN0RXhwciAqKSBub2RlOworCisJCQkJaWYgKFdBTEsoc2NleHByLT5z b3VyY2VfZXhwcikpCisJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChXQUxLKHNjZXhwci0+Y2Fz dF9leHByKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEsoc2NleHByLT5kZWZhdWx0 X2V4cHIpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfQ29h bGVzY2VFeHByOgogCQkJcmV0dXJuIFdBTEsoKChDb2FsZXNjZUV4cHIgKikgbm9kZSktPmFyZ3Mp OwogCQljYXNlIFRfTWluTWF4RXhwcjoKQEAgLTMzMzAsNiArMzM2MiwxOSBAQCBleHByZXNzaW9u X3RyZWVfbXV0YXRvcl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJcmV0dXJuIChOb2RlICopIG5ld25v ZGU7CiAJCQl9CiAJCQlicmVhazsKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQl7CisJ CQkJU2FmZVR5cGVDYXN0RXhwciAgICpzY2V4cHIgPSAoU2FmZVR5cGVDYXN0RXhwciAqKSBub2Rl OworCQkJCVNhZmVUeXBlQ2FzdEV4cHIgICAqbmV3bm9kZTsKKworCQkJCUZMQVRDT1BZKG5ld25v ZGUsIHNjZXhwciwgU2FmZVR5cGVDYXN0RXhwcik7CisJCQkJTVVUQVRFKG5ld25vZGUtPnNvdXJj ZV9leHByLCBzY2V4cHItPnNvdXJjZV9leHByLCBOb2RlICopOworCQkJCU1VVEFURShuZXdub2Rl LT5jYXN0X2V4cHIsIHNjZXhwci0+Y2FzdF9leHByLCBOb2RlICopOworCQkJCU1VVEFURShuZXdu b2RlLT5kZWZhdWx0X2V4cHIsIHNjZXhwci0+ZGVmYXVsdF9leHByLCBOb2RlICopOworCisJCQkJ cmV0dXJuIChOb2RlICopIG5ld25vZGU7CisJCQl9CisJCQlicmVhazsKIAkJY2FzZSBUX0NvYWxl c2NlRXhwcjoKIAkJCXsKIAkJCQlDb2FsZXNjZUV4cHIgKmNvYWxlc2NlZXhwciA9IChDb2FsZXNj ZUV4cHIgKikgbm9kZTsKQEAgLTQ0NjQsNiArNDUwOSwyOCBAQCByYXdfZXhwcmVzc2lvbl90cmVl X3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiB0cnVlOwogCQkJfQogCQkJYnJl YWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3Q6CisJCQl7CisJCQkJU2FmZVR5cGVDYXN0ICAgKnNj ID0gKFNhZmVUeXBlQ2FzdCAqKSBub2RlOworCisJCQkJaWYgKFdBTEsoc2MtPmNhc3QpKQorCQkJ CQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhzYy0+ZGVmX2V4cHIpKQorCQkJCQlyZXR1cm4g dHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCXsK KwkJCQlTYWZlVHlwZUNhc3RFeHByICAgKnN0YyA9IChTYWZlVHlwZUNhc3RFeHByICopIG5vZGU7 CisKKwkJCQlpZiAoV0FMSyhzdGMtPnNvdXJjZV9leHByKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJ CQkJaWYgKFdBTEsoc3RjLT5jYXN0X2V4cHIpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAo V0FMSyhzdGMtPmRlZmF1bHRfZXhwcikpCisJCQkJCXJldHVybiB0cnVlOworCQkJfQorCQkJYnJl YWs7CiAJCWNhc2UgVF9Db2xsYXRlQ2xhdXNlOgogCQkJcmV0dXJuIFdBTEsoKChDb2xsYXRlQ2xh dXNlICopIG5vZGUpLT5hcmcpOwogCQljYXNlIFRfU29ydEJ5OgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0 aWwvY2xhdXNlcy5jCmluZGV4IDNmOWZmNDU1YmE2Li4xNGUwZGYzYmVlMiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCisrKyBiL3NyYy9iYWNrZW5kL29w dGltaXplci91dGlsL2NsYXVzZXMuYwpAQCAtMjk0NSw2ICsyOTQ1LDMwIEBAIGV2YWxfY29uc3Rf ZXhwcmVzc2lvbnNfbXV0YXRvcihOb2RlICpub2RlLAogCQkJCQkJCQkJCQkJICBjb3B5T2JqZWN0 KGp2ZS0+Zm9ybWF0KSk7CiAJCQl9CiAKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQl7 CisJCQkJU2FmZVR5cGVDYXN0RXhwciAqc3RjID0gKFNhZmVUeXBlQ2FzdEV4cHIgKikgbm9kZTsK KwkJCQlTYWZlVHlwZUNhc3RFeHByCSAgICpuZXdleHByOworCQkJCU5vZGUJICAgKnNvdXJjZV9l eHByID0gc3RjLT5zb3VyY2VfZXhwcjsKKwkJCQlOb2RlCSAgICpkZWZhdWx0X2V4cHIgPSBzdGMt PmRlZmF1bHRfZXhwcjsKKworCQkJCXNvdXJjZV9leHByID0gZXZhbF9jb25zdF9leHByZXNzaW9u c19tdXRhdG9yKHNvdXJjZV9leHByLCBjb250ZXh0KTsKKwkJCQlkZWZhdWx0X2V4cHIgPSBldmFs X2NvbnN0X2V4cHJlc3Npb25zX211dGF0b3IoZGVmYXVsdF9leHByLCBjb250ZXh0KTsKKworCQkJ CS8qCisJCQkJICogV2UgbXVzdCBub3QgcmVkdWNlIGFueSByZWNvZ25pemFibHkgY29uc3RhbnQg c3ViZXhwcmVzc2lvbnMKKwkJCQkgKiBpbiBjYXN0X2V4cHIgaGVyZSwgc2luY2Ugd2UgZG9u4oCZ dCB3YW50IGl0IHRvIGZhaWwKKwkJCQkgKiBwcmVtYXR1cmVseS4KKwkJCQkqLworCQkJCW5ld2V4 cHIgPSBtYWtlTm9kZShTYWZlVHlwZUNhc3RFeHByKTsKKwkJCQluZXdleHByLT5zb3VyY2VfZXhw ciA9IHNvdXJjZV9leHByOworCQkJCW5ld2V4cHItPmNhc3RfZXhwciA9IHN0Yy0+Y2FzdF9leHBy OworCQkJCW5ld2V4cHItPmRlZmF1bHRfZXhwciA9IGRlZmF1bHRfZXhwcjsKKwkJCQluZXdleHBy LT5yZXN1bHR0eXBlID0gc3RjLT5yZXN1bHR0eXBlOworCQkJCW5ld2V4cHItPnJlc3VsdHR5cG1v ZCA9IHN0Yy0+cmVzdWx0dHlwbW9kOworCQkJCW5ld2V4cHItPnJlc3VsdGNvbGxpZCA9IHN0Yy0+ cmVzdWx0Y29sbGlkOworCQkJCXJldHVybiAoTm9kZSAqKSBuZXdleHByOworCQkJfQogCQljYXNl IFRfU3ViUGxhbjoKIAkJY2FzZSBUX0FsdGVybmF0aXZlU3ViUGxhbjoKIApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5k ZXggMjFjYWYyZDQzYmYuLmM2MmU5YWM4ZWRmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTY0OSw2ICs2NDks NyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwg TGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogJXR5cGUgPHBhcnRib3VuZHNwZWM+IFBhcnRp dGlvbkJvdW5kU3BlYwogJXR5cGUgPGxpc3Q+CQloYXNoX3BhcnRib3VuZAogJXR5cGUgPGRlZmVs dD4JCWhhc2hfcGFydGJvdW5kX2VsZW0KKyV0eXBlIDxub2RlPgljYXN0X29uX2Vycm9yX2NsYXVz ZV9vcHQKIAogJXR5cGUgPG5vZGU+CWpzb25fZm9ybWF0X2NsYXVzZQogCQkJCWpzb25fZm9ybWF0 X2NsYXVzZV9vcHQKQEAgLTE1OTgyLDggKzE1OTgzLDIwIEBAIGZ1bmNfZXhwcl9jb21tb25fc3Vi ZXhwcjoKIAkJCQl7CiAJCQkJCSQkID0gbWFrZVNRTFZhbHVlRnVuY3Rpb24oU1ZGT1BfQ1VSUkVO VF9TQ0hFTUEsIC0xLCBAMSk7CiAJCQkJfQotCQkJfCBDQVNUICcoJyBhX2V4cHIgQVMgVHlwZW5h bWUgJyknCi0JCQkJeyAkJCA9IG1ha2VUeXBlQ2FzdCgkMywgJDUsIEAxKTsgfQorCQkJfCBDQVNU ICcoJyBhX2V4cHIgQVMgVHlwZW5hbWUgY2FzdF9vbl9lcnJvcl9jbGF1c2Vfb3B0ICcpJworCQkJ CXsKKwkJCQkJVHlwZUNhc3QgKmNhc3QgPSAoVHlwZUNhc3QgKikgbWFrZVR5cGVDYXN0KCQzLCAk NSwgQDEpOworCQkJCQlpZiAoJDYgPT0gTlVMTCkKKwkJCQkJCSQkID0gKE5vZGUgKikgY2FzdDsK KwkJCQkJZWxzZQorCQkJCQl7CisJCQkJCQlTYWZlVHlwZUNhc3QgKnNhZmVjYXN0ID0gbWFrZU5v ZGUoU2FmZVR5cGVDYXN0KTsKKwkJCQkJCXNhZmVjYXN0LT5jYXN0ID0gKE5vZGUgKikgY2FzdDsK KwkJCQkJCXNhZmVjYXN0LT5kZWZfZXhwciA9ICQ2OworCisJCQkJCQkkJCA9IChOb2RlICopIHNh ZmVjYXN0OworCQkJCQl9CisJCQkJfQogCQkJfCBFWFRSQUNUICcoJyBleHRyYWN0X2xpc3QgJykn CiAJCQkJewogCQkJCQkkJCA9IChOb2RlICopIG1ha2VGdW5jQ2FsbChTeXN0ZW1GdW5jTmFtZSgi ZXh0cmFjdCIpLApAQCAtMTYzNzAsNiArMTYzODMsMTMgQEAgZnVuY19leHByX2NvbW1vbl9zdWJl eHByOgogCQkJOwogCiAKK2Nhc3Rfb25fZXJyb3JfY2xhdXNlX29wdDoKKwkJCURFRkFVTFQgYV9l eHByIE9OIENPTlZFUlNJT05fUCBFUlJPUl9QIAkJCXsgJCQgPSAkMjsgfQorCQkJfCBFUlJPUl9Q IE9OIENPTlZFUlNJT05fUCBFUlJPUl9QIAkJCQl7ICQkID0gTlVMTDsgfQorCQkJfCBOVUxMX1Ag T04gQ09OVkVSU0lPTl9QIEVSUk9SX1AgCQkJCXsgJCQgPSBtYWtlTnVsbEFDb25zdCgtMSk7IH0K KwkJCXwgLyogRU1QVFkgKi8gCQkJCQkJCQkgCXsgJCQgPSBOVUxMOyB9CisJCTsKKwogLyoKICAq IFNRTC9YTUwgc3VwcG9ydAogICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfYWdnLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKaW5kZXggMzI1NGM4M2Nj NmMuLjY1NzNlMmE5M2VhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdn LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCkBAIC00ODYsNiArNDg2LDEy IEBAIGNoZWNrX2FnZ2xldmVsc19hbmRfY29uc3RyYWludHMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBO b2RlICpleHByKQogCQkJCWVyciA9IF8oImdyb3VwaW5nIG9wZXJhdGlvbnMgYXJlIG5vdCBhbGxv d2VkIGluIGNoZWNrIGNvbnN0cmFpbnRzIik7CiAKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lO RF9DQVNUX0RFRkFVTFQ6CisJCQlpZiAoaXNBZ2cpCisJCQkJZXJyID0gXygiYWdncmVnYXRlIGZ1 bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gQ0FTVCBERUZBVUxUIGV4cHJlc3Npb25zIik7CisJ CQllbHNlCisJCQkJZXJyID0gXygiZ3JvdXBpbmcgb3BlcmF0aW9ucyBhcmUgbm90IGFsbG93ZWQg aW4gQ0FTVCBERUZBVUxUIGV4cHJlc3Npb25zIik7CisJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJ TkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CiAK QEAgLTk1Niw2ICs5NjIsOSBAQCB0cmFuc2Zvcm1XaW5kb3dGdW5jQ2FsbChQYXJzZVN0YXRlICpw c3RhdGUsIFdpbmRvd0Z1bmMgKndmdW5jLAogCQljYXNlIEVYUFJfS0lORF9ET01BSU5fQ0hFQ0s6 CiAJCQllcnIgPSBfKCJ3aW5kb3cgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBjaGVjayBj b25zdHJhaW50cyIpOwogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX0NBU1RfREVGQVVMVDoK KwkJCWVyciA9IF8oIndpbmRvdyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIENBU1QgREVG QVVMVCBleHByZXNzaW9ucyIpOworCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9E RUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgogCQkJZXJyID0gXygi d2luZG93IGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gREVGQVVMVCBleHByZXNzaW9ucyIp OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggMTIxMTlmMTQ3ZmMuLmFjNjBiNzRkY2ViIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTE3LDYgKzE3LDggQEAKIAogI2luY2x1ZGUgImFj Y2Vzcy9odHVwX2RldGFpbHMuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2FnZ3JlZ2F0ZS5oIgor I2luY2x1ZGUgImNhdGFsb2cvcGdfY2FzdC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgog I2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgpAQCAtMzcsNiArMzksNyBAQAogI2luY2x1ZGUg InV0aWxzL2RhdGUuaCIKICNpbmNsdWRlICJ1dGlscy9mbWdyb2lkcy5oIgogI2luY2x1ZGUgInV0 aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAjaW5jbHVkZSAi dXRpbHMvdGltZXN0YW1wLmgiCiAjaW5jbHVkZSAidXRpbHMveG1sLmgiCiAKQEAgLTYwLDcgKzYz LDggQEAgc3RhdGljIE5vZGUgKnRyYW5zZm9ybU11bHRpQXNzaWduUmVmKFBhcnNlU3RhdGUgKnBz dGF0ZSwgTXVsdGlBc3NpZ25SZWYgKm1hcmVmKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1DYXNl RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIENhc2VFeHByICpjKTsKIHN0YXRpYyBOb2RlICp0cmFu c2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGluayk7CiBzdGF0 aWMgTm9kZSAqdHJhbnNmb3JtQXJyYXlFeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9BcnJheUV4 cHIgKmEsCi0JCQkJCQkJCU9pZCBhcnJheV90eXBlLCBPaWQgZWxlbWVudF90eXBlLCBpbnQzMiB0 eXBtb2QpOworCQkJCQkJCQlPaWQgYXJyYXlfdHlwZSwgT2lkIGVsZW1lbnRfdHlwZSwgaW50MzIg dHlwbW9kLAorCQkJCQkJCQlib29sICpjYW5fY29lcmNlKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zv cm1Sb3dFeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUm93RXhwciAqciwgYm9vbCBhbGxvd0RlZmF1 bHQpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUNvYWxlc2NlRXhwcihQYXJzZVN0YXRlICpwc3Rh dGUsIENvYWxlc2NlRXhwciAqYyk7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtTWluTWF4RXhwcihQ YXJzZVN0YXRlICpwc3RhdGUsIE1pbk1heEV4cHIgKm0pOwpAQCAtNzYsNiArODAsNyBAQCBzdGF0 aWMgTm9kZSAqdHJhbnNmb3JtV2hvbGVSb3dSZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJ CQkgIGludCBzdWJsZXZlbHNfdXAsIGludCBsb2NhdGlvbik7CiBzdGF0aWMgTm9kZSAqdHJhbnNm b3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpOwog c3RhdGljIE5vZGUgKnRyYW5zZm9ybVR5cGVDYXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVHlwZUNh c3QgKnRjKTsKK3N0YXRpYyBOb2RlICp0cmFuc2Zvcm1UeXBlU2FmZUNhc3QoUGFyc2VTdGF0ZSAq cHN0YXRlLCBTYWZlVHlwZUNhc3QgKnRjKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Db2xsYXRl Q2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sbGF0ZUNsYXVzZSAqYyk7CiBzdGF0aWMgTm9k ZSAqdHJhbnNmb3JtSnNvbk9iamVjdENvbnN0cnVjdG9yKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJ CQkJCQkJCQkJSnNvbk9iamVjdENvbnN0cnVjdG9yICpjdG9yKTsKQEAgLTEwNyw2ICsxMTIsOCBA QCBzdGF0aWMgRXhwciAqbWFrZV9kaXN0aW5jdF9vcChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3Qg Km9wbmFtZSwKIAkJCQkJCQkgIE5vZGUgKmx0cmVlLCBOb2RlICpydHJlZSwgaW50IGxvY2F0aW9u KTsKIHN0YXRpYyBOb2RlICptYWtlX251bGx0ZXN0X2Zyb21fZGlzdGluY3QoUGFyc2VTdGF0ZSAq cHN0YXRlLAogCQkJCQkJCQkJCSBBX0V4cHIgKmRpc3RpbmN0YSwgTm9kZSAqYXJnKTsKK3N0YXRp YyBib29sIENvZXJjZVVua25vd25Db25zdFNhZmUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpu b2RlLAorCQkJCQkJCQkgICBPaWQgdGFyZ2V0VHlwZSwgaW50MzIgdGFyZ2V0VHlwZU1vZCk7CiAK IAogLyoKQEAgLTE2NCwxMyArMTcxLDE3IEBAIHRyYW5zZm9ybUV4cHJSZWN1cnNlKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgTm9kZSAqZXhwcikKIAogCQljYXNlIFRfQV9BcnJheUV4cHI6CiAJCQlyZXN1 bHQgPSB0cmFuc2Zvcm1BcnJheUV4cHIocHN0YXRlLCAoQV9BcnJheUV4cHIgKikgZXhwciwKLQkJ CQkJCQkJCQlJbnZhbGlkT2lkLCBJbnZhbGlkT2lkLCAtMSk7CisJCQkJCQkJCQkJSW52YWxpZE9p ZCwgSW52YWxpZE9pZCwgLTEsIE5VTEwpOwogCQkJYnJlYWs7CiAKIAkJY2FzZSBUX1R5cGVDYXN0 OgogCQkJcmVzdWx0ID0gdHJhbnNmb3JtVHlwZUNhc3QocHN0YXRlLCAoVHlwZUNhc3QgKikgZXhw cik7CiAJCQlicmVhazsKIAorCQljYXNlIFRfU2FmZVR5cGVDYXN0OgorCQkJcmVzdWx0ID0gdHJh bnNmb3JtVHlwZVNhZmVDYXN0KHBzdGF0ZSwgKFNhZmVUeXBlQ2FzdCAqKSBleHByKTsKKwkJCWJy ZWFrOworCiAJCWNhc2UgVF9Db2xsYXRlQ2xhdXNlOgogCQkJcmVzdWx0ID0gdHJhbnNmb3JtQ29s bGF0ZUNsYXVzZShwc3RhdGUsIChDb2xsYXRlQ2xhdXNlICopIGV4cHIpOwogCQkJYnJlYWs7CkBA IC01NzYsNiArNTg3LDcgQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwg Q29sdW1uUmVmICpjcmVmKQogCQljYXNlIEVYUFJfS0lORF9DT1BZX1dIRVJFOgogCQljYXNlIEVY UFJfS0lORF9HRU5FUkFURURfQ09MVU1OOgogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgor CQljYXNlIEVYUFJfS0lORF9DQVNUX0RFRkFVTFQ6CiAJCQkvKiBva2F5ICovCiAJCQlicmVhazsK IApAQCAtMTgyNCw2ICsxODM2LDcgQEAgdHJhbnNmb3JtU3ViTGluayhQYXJzZVN0YXRlICpwc3Rh dGUsIFN1YkxpbmsgKnN1YmxpbmspCiAJCWNhc2UgRVhQUl9LSU5EX0RPTUFJTl9DSEVDSzoKIAkJ CWVyciA9IF8oImNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gY2hlY2sgY29uc3RyYWludCIpOwogCQkJ YnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX0NBU1RfREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRf Q09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CiAJCQll cnIgPSBfKCJjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIERFRkFVTFQgZXhwcmVzc2lvbiIpOwpAQCAt MjAwNSwxNiArMjAxOCw3MyBAQCB0cmFuc2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwg U3ViTGluayAqc3VibGluaykKIAlyZXR1cm4gcmVzdWx0OwogfQogCisvKgorICogUmV0dXJuIHRy dWUgaWYgc3VjY2Vzc2Z1bHkgY29lcmNlZCBhIFVua25vd24gQ29uc3QgdG8gdGFyZ2V0VHlwZQor Ki8KK3N0YXRpYyBib29sCitDb2VyY2VVbmtub3duQ29uc3RTYWZlKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgTm9kZSAqbm9kZSwKKwkJCQkJICAgT2lkIHRhcmdldFR5cGUsIGludDMyIHRhcmdldFR5cGVN b2QpCit7CisJT2lkCQkJYmFzZVR5cGVJZDsKKwlpbnQzMgkJYmFzZVR5cGVNb2Q7CisJaW50MzIJ CWlucHV0VHlwZU1vZDsKKwlUeXBlCQliYXNlVHlwZTsKKwljaGFyCQkqc3RyaW5nOworCURhdHVt CQlkYXR1bTsKKwlib29sCQljb252ZXJ0ZWQ7CisJQ29uc3QJICAgKmNvbjsKKworCUFzc2VydChJ c0Eobm9kZSwgQ29uc3QpKTsKKwlBc3NlcnQoZXhwclR5cGUobm9kZSkgPT0gVU5LTk9XTk9JRCk7 CisKKwljb24gPSAoQ29uc3QgKikgbm9kZTsKKwliYXNlVHlwZU1vZCA9IHRhcmdldFR5cGVNb2Q7 CisJYmFzZVR5cGVJZCA9IGdldEJhc2VUeXBlQW5kVHlwbW9kKHRhcmdldFR5cGUsICZiYXNlVHlw ZU1vZCk7CisKKwlpZiAoYmFzZVR5cGVJZCA9PSBJTlRFUlZBTE9JRCkKKwkJaW5wdXRUeXBlTW9k ID0gYmFzZVR5cGVNb2Q7CisJZWxzZQorCQlpbnB1dFR5cGVNb2QgPSAtMTsKKworCWJhc2VUeXBl ID0gdHlwZWlkVHlwZShiYXNlVHlwZUlkKTsKKworCS8qCisJICogV2UgYXNzdW1lIGhlcmUgdGhh dCBVTktOT1dOJ3MgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gaXMgdGhlIHNhbWUgYXMKKwkgKiBD U1RSSU5HLgorCSovCisJaWYgKCFjb24tPmNvbnN0aXNudWxsKQorCQlzdHJpbmcgPSBEYXR1bUdl dENTdHJpbmcoY29uLT5jb25zdHZhbHVlKTsKKwllbHNlCisJCXN0cmluZyA9IE5VTEw7CisKKwlj b252ZXJ0ZWQgPSBzdHJpbmdUeXBlRGF0dW1TYWZlKGJhc2VUeXBlLAorCQkJCQkJCQkJc3RyaW5n LAorCQkJCQkJCQkJaW5wdXRUeXBlTW9kLAorCQkJCQkJCQkJJmRhdHVtKTsKKworCVJlbGVhc2VT eXNDYWNoZShiYXNlVHlwZSk7CisKKwlyZXR1cm4gY29udmVydGVkOworfQorCisKIC8qCiAgKiB0 cmFuc2Zvcm1BcnJheUV4cHIKICAqCiAgKiBJZiB0aGUgY2FsbGVyIHNwZWNpZmllcyB0aGUgdGFy Z2V0IHR5cGUsIHRoZSByZXN1bHRpbmcgYXJyYXkgd2lsbAogICogYmUgb2YgZXhhY3RseSB0aGF0 IHR5cGUuICBPdGhlcndpc2Ugd2UgdHJ5IHRvIGluZmVyIGEgY29tbW9uIHR5cGUKICAqIGZvciB0 aGUgZWxlbWVudHMgdXNpbmcgc2VsZWN0X2NvbW1vbl90eXBlKCkuCisgKgorICogTW9zdCBvZiB0 aGUgdGltZSwgdGhlIGNhbGxlciB3aWxsIHBhc3MgY2FuX2NvZXJjZSBhcyBOVUxMLgorICogY2Fu X2NvZXJjZSBpcyBub3QgTlVMTCBvbmx5IHdoZW4gcGVyZm9ybWluZyBwYXJzZSBhbmFseXNpcyBm b3IgZXhwcmVzc2lvbnMKKyAqIGxpa2UgQ0FTVChERUZBVUxUIC4uLiBPTiBDT05WRVJTSU9OIEVS Uk9SKS4KKyAqIFdoZW4gY2FuX2NvZXJjZSBpcyBub3QgTlVMTCwgaXQgc2hvdWxkIGJlIGFzc3Vt ZWQgdG8gZGVmYXVsdCB0byB0cnVlLiAgSWYKKyAqIGNvZXJjZSBhcnJheSBlbGVtZW50cyB0byB0 aGUgdGFyZ2V0IHR5cGUgZmFpbHMsIGNhbl9jb2VyY2Ugd2lsbCBiZSBzZXQgdG8KKyAqIGZhbHNl LgogICovCiBzdGF0aWMgTm9kZSAqCiB0cmFuc2Zvcm1BcnJheUV4cHIoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBBX0FycmF5RXhwciAqYSwKLQkJCQkgICBPaWQgYXJyYXlfdHlwZSwgT2lkIGVsZW1lbnRf dHlwZSwgaW50MzIgdHlwbW9kKQorCQkJCSAgIE9pZCBhcnJheV90eXBlLCBPaWQgZWxlbWVudF90 eXBlLCBpbnQzMiB0eXBtb2QsIGJvb2wgKmNhbl9jb2VyY2UpCiB7CiAJQXJyYXlFeHByICAqbmV3 YSA9IG1ha2VOb2RlKEFycmF5RXhwcik7CiAJTGlzdAkgICAqbmV3ZWxlbXMgPSBOSUw7CkBAIC0y MDIyLDYgKzIwOTIsNyBAQCB0cmFuc2Zvcm1BcnJheUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBB X0FycmF5RXhwciAqYSwKIAlMaXN0Q2VsbCAgICplbGVtZW50OwogCU9pZAkJCWNvZXJjZV90eXBl OwogCWJvb2wJCWNvZXJjZV9oYXJkOworCWJvb2wJCWV4cHJfaXNfY29uc3QgPSBmYWxzZTsKIAog CS8qCiAJICogVHJhbnNmb3JtIHRoZSBlbGVtZW50IGV4cHJlc3Npb25zCkBAIC0yMDQ1LDkgKzIx MTYsMTAgQEAgdHJhbnNmb3JtQXJyYXlFeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9BcnJheUV4 cHIgKmEsCiAJCQkJCQkJCQkgIChBX0FycmF5RXhwciAqKSBlLAogCQkJCQkJCQkJICBhcnJheV90 eXBlLAogCQkJCQkJCQkJICBlbGVtZW50X3R5cGUsCi0JCQkJCQkJCQkgIHR5cG1vZCk7CisJCQkJ CQkJCQkgIHR5cG1vZCwKKwkJCQkJCQkJCSAgY2FuX2NvZXJjZSk7CiAJCQkvKiB3ZSBjZXJ0YWlu bHkgaGF2ZSBhbiBhcnJheSBoZXJlICovCi0JCQlBc3NlcnQoYXJyYXlfdHlwZSA9PSBJbnZhbGlk T2lkIHx8IGFycmF5X3R5cGUgPT0gZXhwclR5cGUobmV3ZSkpOworCQkJQXNzZXJ0KGNhbl9jb2Vy Y2UgfHwgYXJyYXlfdHlwZSA9PSBJbnZhbGlkT2lkIHx8IGFycmF5X3R5cGUgPT0gZXhwclR5cGUo bmV3ZSkpOwogCQkJbmV3YS0+bXVsdGlkaW1zID0gdHJ1ZTsKIAkJfQogCQllbHNlCkBAIC0yMDg4 LDYgKzIxNjAsOSBAQCB0cmFuc2Zvcm1BcnJheUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0Fy cmF5RXhwciAqYSwKIAl9CiAJZWxzZQogCXsKKwkJLyogV2Ugb2J2aW91c2x5IGtub3cgdGhlIHRh cmdldCB0eXBlIHdoZW4gcGVyZm9ybWluZyB0eXBlLXNhZmUgY2FzdCAqLworCQlBc3NlcnQoY2Fu X2NvZXJjZSA9PSBOVUxMKTsKKwogCQkvKiBDYW4ndCBoYW5kbGUgYW4gZW1wdHkgYXJyYXkgd2l0 aG91dCBhIHRhcmdldCB0eXBlICovCiAJCWlmIChuZXdlbGVtcyA9PSBOSUwpCiAJCQllcmVwb3J0 KEVSUk9SLApAQCAtMjE0MCw3ICsyMjE1LDM2IEBAIHRyYW5zZm9ybUFycmF5RXhwcihQYXJzZVN0 YXRlICpwc3RhdGUsIEFfQXJyYXlFeHByICphLAogCQlOb2RlCSAgICplID0gKE5vZGUgKikgbGZp cnN0KGVsZW1lbnQpOwogCQlOb2RlCSAgICpuZXdlOwogCi0JCWlmIChjb2VyY2VfaGFyZCkKKwkJ LyoKKwkJICogRm9yIGVycm9yLXNhZmUgdHlwZSBjYXN0aW5nLCB3ZSBuZWVkIHRvIHNhZmVseSBj aGVjayB3aGV0aGVyIHRoZQorCQkgKiBVTktOT1dOIGNvbnN0YW50IGNhbiBiZSBjb2VyY2VkIHRv IHRoZSB0YXJnZXQgdHlwZS4gSWYgaXQgY2Fubm90LCBzZXQKKwkJICogY2FuX2NvZXJjZSB0byBm YWxzZSBhbmQgY29lcmNlIHNvdXJjZSBlbGVtZW50IHRvIFRFWFQgZGF0YSB0eXBlLgorCQkgKiBz ZWUgY29lcmNlX3R5cGUgZnVuY3Rpb24gYWxzby4KKwkJKi8KKwkJaWYgKGNhbl9jb2VyY2UgIT0g TlVMTCAmJiBJc0EoZSwgQ29uc3QpKQorCQl7CisJCQlpZiAoZXhwclR5cGUoZSkgPT0gVU5LTk9X Tk9JRCkKKwkJCXsKKwkJCQlpZiAoIUNvZXJjZVVua25vd25Db25zdFNhZmUocHN0YXRlLCBlLCBj b2VyY2VfdHlwZSwgdHlwbW9kKSkKKwkJCQl7CisJCQkJCSpjYW5fY29lcmNlID0gZmFsc2U7CisK KwkJCQkJLyogc2VlIHJlc29sdmVUYXJnZXRMaXN0VW5rbm93bnMgYWxzbyAqLworCQkJCQllID0g IGNvZXJjZV90b190YXJnZXRfdHlwZShwc3RhdGUsIGUsCisJCQkJCQkJCQkJCSAgIFVOS05PV05P SUQsCisJCQkJCQkJCQkJCSAgIFRFWFRPSUQsCisJCQkJCQkJCQkJCSAgIC0xLAorCQkJCQkJCQkJ CQkgICBDT0VSQ0lPTl9JTVBMSUNJVCwKKwkJCQkJCQkJCQkJICAgQ09FUkNFX0lNUExJQ0lUX0NB U1QsCisJCQkJCQkJCQkJCSAgIC0xKTsKKwkJCQl9CisJCQl9CisJCQlleHByX2lzX2NvbnN0ID0g dHJ1ZTsKKwkJfQorCisJCWlmIChjYW5fY29lcmNlICE9IE5VTEwgJiYgKCEqY2FuX2NvZXJjZSkp CisJCQluZXdlID0gZTsKKwkJZWxzZSBpZiAoY29lcmNlX2hhcmQpCiAJCXsKIAkJCW5ld2UgPSBj b2VyY2VfdG9fdGFyZ2V0X3R5cGUocHN0YXRlLCBlLAogCQkJCQkJCQkJCSBleHByVHlwZShlKSwK QEAgLTIxNDksMTMgKzIyNTMsNTEgQEAgdHJhbnNmb3JtQXJyYXlFeHByKFBhcnNlU3RhdGUgKnBz dGF0ZSwgQV9BcnJheUV4cHIgKmEsCiAJCQkJCQkJCQkJIENPRVJDSU9OX0VYUExJQ0lULAogCQkJ CQkJCQkJCSBDT0VSQ0VfRVhQTElDSVRfQ0FTVCwKIAkJCQkJCQkJCQkgLTEpOwotCQkJaWYgKG5l d2UgPT0gTlVMTCkKKwkJCWlmIChuZXdlID09IE5VTEwgJiYgY2FuX2NvZXJjZSA9PSBOVUxMKQog CQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0NBTk5PVF9DT0VSQ0Up LAogCQkJCQkJIGVycm1zZygiY2Fubm90IGNhc3QgdHlwZSAlcyB0byAlcyIsCiAJCQkJCQkJCWZv cm1hdF90eXBlX2JlKGV4cHJUeXBlKGUpKSwKIAkJCQkJCQkJZm9ybWF0X3R5cGVfYmUoY29lcmNl X3R5cGUpKSwKIAkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24o ZSkpKSk7CisKKwkJCWlmIChjYW5fY29lcmNlICE9IE5VTEwpCisJCQl7CisJCQkJaWYgKG5ld2Ug PT0gTlVMTCkKKwkJCQl7CisJCQkJCW5ld2UgPSBlOworCQkJCQkqY2FuX2NvZXJjZSA9IGZhbHNl OworCQkJCX0KKwkJCQllbHNlIGlmIChleHByX2lzX2NvbnN0ICYmICFJc0EobmV3ZSwgQ29uc3Qp KQorCQkJCXsKKwkJCQkJLyoKKwkJCQkJICogVXNlIGV2YWx1YXRlX2V4cHJfc2FmZSB0byBwcmUt ZXZhbHVhdGUgc2ltcGxlIGNvbnN0YW50CisJCQkJCSAqIGNhc3QgZXhwcmVzc2lvbnMgZWFybHks IGluIGEgd2F5IHRoYXQgdG9sdGVyIGVycm9ycyAuCisJCQkJCSAqCisJCQkJCSAqIFJhdGlvbmFs ZToKKwkJCQkJICogMS4gV2hlbiBkZXBhcnNpbmcgc2FmZSBjYXN0IGV4cHJlc3Npb25zIChvciBp biBvdGhlcgorCQkJCQkgKiAgICBjYXNlcyksIGV2YWxfY29uc3RfZXhwcmVzc2lvbnMgbWlnaHQg YmUgaW52b2tlZCwgYnV0CisJCQkJCSAqICAgIGl0IGNhbm5vdCBoYW5kbGUgZXJyb3JzIGdyYWNl ZnVsbHkuCisJCQkJCSAqIDIuIElmIHRoZSBjYXN0IGV4cHJlc3Npb24gaW52b2x2ZXMgb25seSBz aW1wbGUgY29uc3RhbnRzLAorCQkJCQkgKiAgICB3ZSBjYW4gc2FmZWx5IGV2YWx1YXRlIGl0IGFo ZWFkIG9mIHRpbWUuIElmIHRoZQorCQkJCQkgKiAgICBldmFsdWF0aW9uIGZhaWxzLCBpdCBpbmRp Y2F0ZXMgdGhhdCBzdWNoIGEgY2FzdCBpcyBub3QKKwkJCQkJICogICAgcG9zc2libGUsIGFuZCB3 ZSBjYW4gdGhlbiBmYWxsIGJhY2sgdG8gdGhlIENBU1QKKwkJCQkJICogICAgREVGQVVMVCBleHBy ZXNzaW9uLgorCQkJCQkqLworCQkJCQlFeHByICpuZXdlX2NvcHkgPSAoRXhwciAqKSBjb3B5T2Jq ZWN0KG5ld2UpOworCisJCQkJCW5ld2UgPSAoTm9kZSAqKSBldmFsdWF0ZV9leHByX3NhZmUobmV3 ZV9jb3B5LAorCQkJCQkJCQkJCQkJCSAgIGNvZXJjZV90eXBlLAorCQkJCQkJCQkJCQkJCSAgIHR5 cG1vZCwKKwkJCQkJCQkJCQkJCQkgICBleHByQ29sbGF0aW9uKG5ld2UpKTsKKwkJCQkJaWYgKG5l d2UgPT0gTlVMTCkKKwkJCQkJeworCQkJCQkJbmV3ZSA9IGU7CisJCQkJCQkqY2FuX2NvZXJjZSA9 IGZhbHNlOworCQkJCQl9CisJCQkJfQorCQkJCWV4cHJfaXNfY29uc3QgPSBmYWxzZTsKKwkJCX0K IAkJfQogCQllbHNlCiAJCQluZXdlID0gY29lcmNlX3RvX2NvbW1vbl90eXBlKHBzdGF0ZSwgZSwK QEAgLTI3NDMsNyArMjg4NSw4IEBAIHRyYW5zZm9ybVR5cGVDYXN0KFBhcnNlU3RhdGUgKnBzdGF0 ZSwgVHlwZUNhc3QgKnRjKQogCQkJCQkJCQkJICAoQV9BcnJheUV4cHIgKikgYXJnLAogCQkJCQkJ CQkJICB0YXJnZXRCYXNlVHlwZSwKIAkJCQkJCQkJCSAgZWxlbWVudFR5cGUsCi0JCQkJCQkJCQkg IHRhcmdldEJhc2VUeXBtb2QpOworCQkJCQkJCQkJICB0YXJnZXRCYXNlVHlwbW9kLAorCQkJCQkJ CQkJICBOVUxMKTsKIAkJfQogCQllbHNlCiAJCQlleHByID0gdHJhbnNmb3JtRXhwclJlY3Vyc2Uo cHN0YXRlLCBhcmcpOwpAQCAtMjc4MCw2ICsyOTIzLDIyOCBAQCB0cmFuc2Zvcm1UeXBlQ2FzdChQ YXJzZVN0YXRlICpwc3RhdGUsIFR5cGVDYXN0ICp0YykKIAlyZXR1cm4gcmVzdWx0OwogfQogCisv KgorICogSGFuZGxlIGFuIGV4cGxpY2l0IENBU1QoLi4uIERFRkFVTFQgLi4uIE9OIENPTlZFUlNJ T04gRVJST1IpIGNvbnN0cnVjdC4KKyAqCisgKiBUcmFuc2Zvcm0gU2FmZVR5cGVDYXN0IG5vZGUs IGxvb2sgdXAgdGhlIHR5cGUgbmFtZSwgYW5kIGFwcGx5IGFueSBuZWNlc3NhcnkKKyAqIGNvZXJj aW9uIGZ1bmN0aW9uKHMpLgorICovCitzdGF0aWMgTm9kZSAqCit0cmFuc2Zvcm1UeXBlU2FmZUNh c3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTYWZlVHlwZUNhc3QgKnRjKQoreworCVNhZmVUeXBlQ2Fz dEV4cHIgICAqcmVzdWx0OworCVR5cGVDYXN0ICAgKnRjYXN0ID0gKFR5cGVDYXN0ICopIHRjLT5j YXN0OworCU5vZGUJICAgKmRlZl9leHByID0gTlVMTDsKKwlOb2RlCSAgICpjYXN0X2V4cHIgPSBO VUxMOworCU5vZGUJICAgKnNvdXJjZV9leHByID0gTlVMTDsKKwlPaWQJCQlpbnB1dFR5cGUgPSBJ bnZhbGlkT2lkOworCU9pZAkJCXRhcmdldFR5cGU7CisJT2lkCQkJdGFyZ2V0QmFzZVR5cGU7CisJ T2lkCQkJdHlwZUNvbGw7CisJaW50MzIJCXRhcmdldFR5cG1vZDsKKwlpbnQzMgkJdGFyZ2V0QmFz ZVR5cG1vZDsKKwlib29sCQljYW5fY29lcmNlID0gdHJ1ZTsKKwlib29sCQlleHByX2lzX2NvbnN0 ID0gZmFsc2U7CisJaW50CQkJbG9jYXRpb247CisKKwkvKiBMb29rIHVwIHRoZSB0eXBlIG5hbWUg Zmlyc3QgKi8KKwl0eXBlbmFtZVR5cGVJZEFuZE1vZChwc3RhdGUsIHRjYXN0LT50eXBlTmFtZSwg JnRhcmdldFR5cGUsICZ0YXJnZXRUeXBtb2QpOworCXRhcmdldEJhc2VUeXBtb2QgPSB0YXJnZXRU eXBtb2Q7CisKKwl0eXBlQ29sbCA9IGdldF90eXBjb2xsYXRpb24odGFyZ2V0VHlwZSk7CisJdGFy Z2V0QmFzZVR5cGUgPSBnZXRCYXNlVHlwZUFuZFR5cG1vZCh0YXJnZXRUeXBlLCAmdGFyZ2V0QmFz ZVR5cG1vZCk7CisKKwkvKiBub3cgbG9va2luZyBhdCBjYXN0IGRlZmF1bHQgZXhwcmVzc2lvbiAq LworCWRlZl9leHByID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIHRjLT5kZWZfZXhwciwgRVhQUl9L SU5EX0NBU1RfREVGQVVMVCk7CisKKwlkZWZfZXhwciA9IGNvZXJjZV90b190YXJnZXRfdHlwZShw c3RhdGUsIGRlZl9leHByLCBleHByVHlwZShkZWZfZXhwciksCisJCQkJCQkJCQkgdGFyZ2V0VHlw ZSwgdGFyZ2V0VHlwbW9kLAorCQkJCQkJCQkJIENPRVJDSU9OX0VYUExJQ0lULAorCQkJCQkJCQkJ IENPRVJDRV9FWFBMSUNJVF9DQVNULAorCQkJCQkJCQkJIGV4cHJMb2NhdGlvbihkZWZfZXhwcikp OworCisJYXNzaWduX2V4cHJfY29sbGF0aW9ucyhwc3RhdGUsIGRlZl9leHByKTsKKworCWlmIChk ZWZfZXhwciA9PSBOVUxMKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9D QU5OT1RfQ09FUkNFKSwKKwkJCQllcnJtc2coImNhbm5vdCBjb2VyY2UgJXMgZXhwcmVzc2lvbiB0 byB0eXBlICVzIiwKKwkJCQkJICAgIkNBU1QgREVGQVVMVCIsCisJCQkJCSAgIGZvcm1hdF90eXBl X2JlKHRhcmdldFR5cGUpKSwKKwkJCQlwYXJzZXJfY29lcmNpb25fZXJycG9zaXRpb24ocHN0YXRl LCBleHByTG9jYXRpb24odGMtPmRlZl9leHByKSwgZGVmX2V4cHIpKTsKKworCS8qCisJICogVGhl IGNvbGxhdGlvbiBvZiBERUZBVUxUIGV4cHJlc3Npb24gbXVzdCBtYXRjaCB0aGUgY29sbGF0aW9u IG9mIHRoZQorCSAqIHRhcmdldCB0eXBlLgorCSovCisJaWYgKE9pZElzVmFsaWQodHlwZUNvbGwp KQorCXsKKwkJT2lkCQkJZGVmQ29sbDsKKworCQlkZWZDb2xsID0gZXhwckNvbGxhdGlvbihkZWZf ZXhwcik7CisKKwkJaWYgKE9pZElzVmFsaWQoZGVmQ29sbCkgJiYgdHlwZUNvbGwgIT0gZGVmQ29s bCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNN QVRDSCksCisJCQkJCWVycm1zZygidGhlIGNvbGxhdGlvbiBvZiBDQVNUIERFRkFVTFQgZXhwcmVz c2lvbiBjb25mbGljdHMgd2l0aCB0YXJnZXQgdHlwZSBjb2xsYXRpb24iKSwKKwkJCQkJZXJyZGV0 YWlsKCJcIiVzXCIgdmVyc3VzIFwiJXNcIiIsCisJCQkJCQkJICBnZXRfY29sbGF0aW9uX25hbWUo dHlwZUNvbGwpLAorCQkJCQkJCSAgZ2V0X2NvbGxhdGlvbl9uYW1lKGRlZkNvbGwpKSwKKwkJCQkJ cGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGRlZl9leHByKSkpOworCX0K KworCS8qCisJICogSWYgdGhlIHR5cGUgY2FzdCB0YXJnZXQgdHlwZSBpcyBhbiBhcnJheSB0eXBl LCB3ZSBpbnZva2UKKwkgKiB0cmFuc2Zvcm1BcnJheUV4cHIoKSBkaXJlY3RseSBzbyB0aGF0IHdl IGNhbiBwYXNzIGRvd24gdGhlIHR5cGUKKwkgKiBpbmZvcm1hdGlvbi4gIFRoaXMgYXZvaWRzIHNv bWUgY2FzZXMgd2hlcmUgdHJhbnNmb3JtQXJyYXlFeHByKCkgbWlnaHQgbm90CisJICogaW5mZXIg dGhlIGNvcnJlY3QgdHlwZS4gIE90aGVyd2lzZSwganVzdCB0cmFuc2Zvcm0gdGhlIGFyZ3VtZW50 IG5vcm1hbGx5LgorCSAqLworCWlmIChJc0EodGNhc3QtPmFyZywgQV9BcnJheUV4cHIpKQorCXsK KwkJT2lkCQkJZWxlbWVudFR5cGU7CisKKwkJLyoKKwkJICogSWYgdGFyZ2V0IGlzIGEgZG9tYWlu IG92ZXIgYXJyYXksIHdvcmsgd2l0aCB0aGUgYmFzZSBhcnJheSB0eXBlCisJCSAqIGhlcmUuICBC ZWxvdywgd2UnbGwgY2FzdCB0aGUgYXJyYXkgdHlwZSB0byB0aGUgZG9tYWluLiAgSW4gdGhlCisJ CSAqIHVzdWFsIGNhc2UgdGhhdCB0aGUgdGFyZ2V0IGlzIG5vdCBhIGRvbWFpbiwgdGhlIHJlbWFp bmluZyBzdGVwcworCQkgKiB3aWxsIGJlIGEgbm8tb3AuCisJCSAqLworCQllbGVtZW50VHlwZSA9 IGdldF9lbGVtZW50X3R5cGUodGFyZ2V0QmFzZVR5cGUpOworCisJCWlmIChPaWRJc1ZhbGlkKGVs ZW1lbnRUeXBlKSkKKwkJeworCQkJc291cmNlX2V4cHIgPSB0cmFuc2Zvcm1BcnJheUV4cHIocHN0 YXRlLAorCQkJCQkJCQkJCQkgKEFfQXJyYXlFeHByICopIHRjYXN0LT5hcmcsCisJCQkJCQkJCQkJ CSB0YXJnZXRCYXNlVHlwZSwKKwkJCQkJCQkJCQkJIGVsZW1lbnRUeXBlLAorCQkJCQkJCQkJCQkg dGFyZ2V0QmFzZVR5cG1vZCwKKwkJCQkJCQkJCQkJICZjYW5fY29lcmNlKTsKKwkJfQorCQllbHNl CisJCQlzb3VyY2VfZXhwciA9IHRyYW5zZm9ybUV4cHJSZWN1cnNlKHBzdGF0ZSwgdGNhc3QtPmFy Zyk7CisJfQorCWVsc2UKKwkJc291cmNlX2V4cHIgPSB0cmFuc2Zvcm1FeHByUmVjdXJzZShwc3Rh dGUsIHRjYXN0LT5hcmcpOworCisJaW5wdXRUeXBlID0gZXhwclR5cGUoc291cmNlX2V4cHIpOwor CWlmIChpbnB1dFR5cGUgPT0gSW52YWxpZE9pZCkKKwkJcmV0dXJuIChOb2RlICopIE5VTEw7CQkJ LyogcmV0dXJuIE5VTEwgaWYgTlVMTCBpbnB1dCAqLworCisJaWYgKGNhbl9jb2VyY2UgJiYgSXNB KHNvdXJjZV9leHByLCBDb25zdCkpCisJeworCQlpZiAoZXhwclR5cGUoc291cmNlX2V4cHIpID09 IFVOS05PV05PSUQpCisJCQljYW5fY29lcmNlID0gQ29lcmNlVW5rbm93bkNvbnN0U2FmZShwc3Rh dGUsCisJCQkJCQkJCQkJCQlzb3VyY2VfZXhwciwKKwkJCQkJCQkJCQkJCXRhcmdldFR5cGUsCisJ CQkJCQkJCQkJCQl0YXJnZXRUeXBtb2QpOworCQlleHByX2lzX2NvbnN0ID0gdHJ1ZTsKKwl9CisK KwkvKgorCSAqIExvY2F0aW9uIG9mIHRoZSBjb2VyY2lvbiBpcyBwcmVmZXJlbnRpYWxseSB0aGUg bG9jYXRpb24gb2YgQ0FTVCBzeW1ib2wsCisJICogYnV0IGlmIHRoZXJlIGlzIG5vbmUgdGhlbiB1 c2UgdGhlIGxvY2F0aW9uIG9mIHRoZSB0eXBlIG5hbWUgKHRoaXMgY2FuCisJICogaGFwcGVuIGlu IFR5cGVOYW1lICdzdHJpbmcnIHN5bnRheCwgZm9yIGluc3RhbmNlKS4KKwkgKi8KKwlsb2NhdGlv biA9IHRjYXN0LT5sb2NhdGlvbjsKKwlpZiAobG9jYXRpb24gPCAwKQorCQlsb2NhdGlvbiA9IHRj YXN0LT50eXBlTmFtZS0+bG9jYXRpb247CisKKwlpZiAoY2FuX2NvZXJjZSkKKwl7CisJCU5vZGUJ ICAgKm9yaWdleHByOworCisJCWNhc3RfZXhwciA9IGNvZXJjZV90b190YXJnZXRfdHlwZShwc3Rh dGUsIHNvdXJjZV9leHByLCBpbnB1dFR5cGUsCisJCQkJCQkJCQkJICB0YXJnZXRUeXBlLCB0YXJn ZXRUeXBtb2QsCisJCQkJCQkJCQkJICBDT0VSQ0lPTl9FWFBMSUNJVCwKKwkJCQkJCQkJCQkgIENP RVJDRV9FWFBMSUNJVF9DQVNULAorCQkJCQkJCQkJCSAgbG9jYXRpb24pOworCQlvcmlnZXhwciA9 IGNhc3RfZXhwcjsKKworCQl3aGlsZSAoY2FzdF9leHByICYmIElzQShjYXN0X2V4cHIsIENvbGxh dGVFeHByKSkKKwkJCWNhc3RfZXhwciA9IChOb2RlICopICgoQ29sbGF0ZUV4cHIgKikgY2FzdF9l eHByKS0+YXJnOworCisJCWlmIChjYXN0X2V4cHIgIT0gTlVMTCAmJiBJc0EoY2FzdF9leHByLCBG dW5jRXhwcikpCisJCXsKKwkJCUhlYXBUdXBsZQl0dXBsZTsKKwkJCUxpc3RDZWxsICAgKmxjOwor CQkJTm9kZQkgICAqc2V4cHI7CisJCQlGdW5jRXhwciAgICpmZXhwciA9IChGdW5jRXhwciAqKSBj YXN0X2V4cHI7CisKKwkJCWxjID0gbGlzdF9oZWFkKGZleHByLT5hcmdzKTsKKwkJCXNleHByID0g KE5vZGUgKikgbGZpcnN0KGxjKTsKKworCQkJLyogTG9vayBpbiBwZ19jYXN0ICovCisJCQl0dXBs ZSA9IFNlYXJjaFN5c0NhY2hlMihDQVNUU09VUkNFVEFSR0VULAorCQkJCQkJCQkJT2JqZWN0SWRH ZXREYXR1bShleHByVHlwZShzZXhwcikpLAorCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bSh0YXJn ZXRUeXBlKSk7CisKKwkJCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlKSkKKwkJCXsKKwkJCQlG b3JtX3BnX2Nhc3QgY2FzdEZvcm0gPSAoRm9ybV9wZ19jYXN0KSBHRVRTVFJVQ1QodHVwbGUpOwor CQkJCWlmICghY2FzdEZvcm0tPmNhc3RlcnJvcnNhZmUpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkJZXJy bXNnKCJjYW5ub3QgY2FzdCB0eXBlICVzIHRvICVzIHdoZW4gJXMgZXhwcmVzc2lvbiBpcyBzcGVj aWZpZWQgaW4gJXMiLAorCQkJCQkJCQkgICBmb3JtYXRfdHlwZV9iZShpbnB1dFR5cGUpLAorCQkJ CQkJCQkgICBmb3JtYXRfdHlwZV9iZSh0YXJnZXRUeXBlKSwKKwkJCQkJCQkJICAgIkRFRkFVTFQi LAorCQkJCQkJCQkgICAiQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUiIpLAorCQkJCQkJCWVy cmhpbnQoIkN1cnJlbnRseSBDQVNUIC4uLiBERUZBVUxUIE9OIENPTlZFUlNJT04gRVJST1IgZG9l cyBub3Qgc3VwcG9ydCB0aGlzIGNhc3QiKSwKKwkJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0 YXRlLCBleHByTG9jYXRpb24oc291cmNlX2V4cHIpKSk7CisJCQl9CisJCQllbHNlCisJCQkJZWxv ZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHBnX2Nhc3QgZW50cnkgKCVzIGNhc3Qg dG8gJXMpIiwKKwkJCQkJCQlmb3JtYXRfdHlwZV9iZShpbnB1dFR5cGUpLAorCQkJCQkJCWZvcm1h dF90eXBlX2JlKHRhcmdldFR5cGUpKTsKKwkJCVJlbGVhc2VTeXNDYWNoZSh0dXBsZSk7CisKKwkJ CWlmIChleHByX2lzX2NvbnN0KQorCQkJeworCQkJCS8qCisJCQkJICogVXNlIGV2YWx1YXRlX2V4 cHJfc2FmZSB0byBwcmUtZXZhbHVhdGUgc2ltcGxlIGNvbnN0YW50IGNhc3QKKwkJCQkgKiBleHBy ZXNzaW9ucyBlYXJseSwgaW4gYSB3YXkgdGhhdCB0b2x0ZXIgZXJyb3JzIC4KKwkJCQkgKgorCQkJ CSAqIFJhdGlvbmFsZToKKwkJCQkgKiAxLiBXaGVuIGRlcGFyc2luZyBzYWZlIGNhc3QgZXhwcmVz c2lvbnMgKG9yIGluIG90aGVyIGNhc2VzKSwKKwkJCQkgKiAgICBldmFsX2NvbnN0X2V4cHJlc3Np b25zIG1pZ2h0IGJlIGludm9rZWQsIGJ1dCBpdCBjYW5ub3QKKwkJCQkgKiAgICBoYW5kbGUgZXJy b3JzIGdyYWNlZnVsbHkuCisJCQkJICogMi4gSWYgdGhlIGNhc3QgZXhwcmVzc2lvbiBpbnZvbHZl cyBvbmx5IHNpbXBsZSBjb25zdGFudHMsIHdlCisJCQkJICogICAgY2FuIHNhZmVseSBldmFsdWF0 ZSBpdCBhaGVhZCBvZiB0aW1lLiBJZiB0aGUgZXZhbHVhdGlvbgorCQkJCSAqICAgIGZhaWxzLCBp dCBpbmRpY2F0ZXMgdGhhdCBzdWNoIGEgY2FzdCBpcyBub3QgcG9zc2libGUsIGFuZAorCQkJCSAq ICAgIHdlIGNhbiB0aGVuIGZhbGwgYmFjayB0byB0aGUgQ0FTVCBERUZBVUxUIGV4cHJlc3Npb24u CisJCQkJICovCisJCQkJRnVuY0V4cHIgKm5ld2V4cHIgPSAoRnVuY0V4cHIgKikgY29weU9iamVj dChjYXN0X2V4cHIpOworCisJCQkJYXNzaWduX2V4cHJfY29sbGF0aW9ucyhwc3RhdGUsIChOb2Rl ICopIG5ld2V4cHIpOworCisJCQkJY2FzdF9leHByID0gKE5vZGUgKikgZXZhbHVhdGVfZXhwcl9z YWZlKChFeHByICopIG5ld2V4cHIsCisJCQkJCQkJCQkJCQkJCXRhcmdldFR5cGUsCisJCQkJCQkJ CQkJCQkJCXRhcmdldFR5cG1vZCwKKwkJCQkJCQkJCQkJCQkJdHlwZUNvbGwpOworCQkJfQorCQl9 CisKKwkJLyoKKwkJICogc2V0IGNhc3RfZXhwciBiYWNrIGFzIGlzLCBjYXN0X2V4cHIgY2FuIGJl IE5VTEwgYWZ0ZXIKKwkJICogZXZhbHVhdGVfZXhwcl9zYWZlCisJCSAqLworCQlpZiAoY2FzdF9l eHByICE9IE5VTEwpCisJCQljYXN0X2V4cHIgPSBvcmlnZXhwcjsKKwl9CisKKwlBc3NlcnQoY2Fu X2NvZXJjZSB8fCBjYXN0X2V4cHIgPT0gTlVMTCk7CisKKwlyZXN1bHQgPSBtYWtlTm9kZShTYWZl VHlwZUNhc3RFeHByKTsKKwlyZXN1bHQtPnNvdXJjZV9leHByID0gc291cmNlX2V4cHI7CisJcmVz dWx0LT5jYXN0X2V4cHIgPSBjYXN0X2V4cHI7CisJcmVzdWx0LT5kZWZhdWx0X2V4cHIgPSBkZWZf ZXhwcjsKKwlyZXN1bHQtPnJlc3VsdHR5cGUgPSB0YXJnZXRUeXBlOworCXJlc3VsdC0+cmVzdWx0 dHlwbW9kID0gdGFyZ2V0VHlwbW9kOworCXJlc3VsdC0+cmVzdWx0Y29sbGlkID0gdHlwZUNvbGw7 CisKKwlyZXR1cm4gKE5vZGUgKikgcmVzdWx0OworfQorCiAvKgogICogSGFuZGxlIGFuIGV4cGxp Y2l0IENPTExBVEUgY2xhdXNlLgogICoKQEAgLTMxOTMsNiArMzU1OCw4IEBAIFBhcnNlRXhwcktp bmROYW1lKFBhcnNlRXhwcktpbmQgZXhwcktpbmQpCiAJCWNhc2UgRVhQUl9LSU5EX0NIRUNLX0NP TlNUUkFJTlQ6CiAJCWNhc2UgRVhQUl9LSU5EX0RPTUFJTl9DSEVDSzoKIAkJCXJldHVybiAiQ0hF Q0siOworCQljYXNlIEVYUFJfS0lORF9DQVNUX0RFRkFVTFQ6CisJCQlyZXR1cm4gIkNBU1QgREVG QVVMVCI7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lO RF9GVU5DVElPTl9ERUZBVUxUOgogCQkJcmV0dXJuICJERUZBVUxUIjsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf ZnVuYy5jCmluZGV4IDc3OGQ2OWM2ZjNjLi5hOTA3MDViOTg0NyAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf ZnVuYy5jCkBAIC0yNzQzLDYgKzI3NDMsOSBAQCBjaGVja19zcmZfY2FsbF9wbGFjZW1lbnQoUGFy c2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpsYXN0X3NyZiwgaW50IGxvY2F0aW9uKQogCQljYXNlIEVY UFJfS0lORF9ET01BSU5fQ0hFQ0s6CiAJCQllcnIgPSBfKCJzZXQtcmV0dXJuaW5nIGZ1bmN0aW9u cyBhcmUgbm90IGFsbG93ZWQgaW4gY2hlY2sgY29uc3RyYWludHMiKTsKIAkJCWJyZWFrOworCQlj YXNlIEVYUFJfS0lORF9DQVNUX0RFRkFVTFQ6CisJCQllcnIgPSBfKCJzZXQtcmV0dXJuaW5nIGZ1 bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gQ0FTVCBERUZBVUxUIGV4cHJlc3Npb25zIik7CisJ CQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9L SU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CiAJCQllcnIgPSBfKCJzZXQtcmV0dXJuaW5nIGZ1bmN0aW9u cyBhcmUgbm90IGFsbG93ZWQgaW4gREVGQVVMVCBleHByZXNzaW9ucyIpOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX3RhcmdldC5jCmluZGV4IDkwNWM5NzVkODNiLi5kNjdlNWY4YTViNyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV90YXJnZXQuYwpAQCAtMTgyMiw2ICsxODIyLDIwIEBAIEZpZ3VyZUNvbG5hbWVJbnRl cm5hbChOb2RlICpub2RlLCBjaGFyICoqbmFtZSkKIAkJCQl9CiAJCQl9CiAJCQlicmVhazsKKwkJ Y2FzZSBUX1NhZmVUeXBlQ2FzdDoKKwkJCXN0cmVuZ3RoID0gRmlndXJlQ29sbmFtZUludGVybmFs KCgoU2FmZVR5cGVDYXN0ICopIG5vZGUpLT5jYXN0LAorCQkJCQkJCQkJCQkgbmFtZSk7CisJCQlp ZiAoc3RyZW5ndGggPD0gMSkKKwkJCXsKKwkJCQlUeXBlQ2FzdCAqbm9kZV9jYXN0OworCQkJCW5v ZGVfY2FzdCA9IChUeXBlQ2FzdCAqKSgoU2FmZVR5cGVDYXN0ICopIG5vZGUpLT5jYXN0OworCQkJ CWlmIChub2RlX2Nhc3QtPnR5cGVOYW1lICE9IE5VTEwpCisJCQkJeworCQkJCQkqbmFtZSA9IHN0 clZhbChsbGFzdChub2RlX2Nhc3QtPnR5cGVOYW1lLT5uYW1lcykpOworCQkJCQlyZXR1cm4gMTsK KwkJCQl9CisJCQl9CisJCQlicmVhazsKIAkJY2FzZSBUX0NvbGxhdGVDbGF1c2U6CiAJCQlyZXR1 cm4gRmlndXJlQ29sbmFtZUludGVybmFsKCgoQ29sbGF0ZUNsYXVzZSAqKSBub2RlKS0+YXJnLCBu YW1lKTsKIAkJY2FzZSBUX0dyb3VwaW5nRnVuYzoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9hcnJheWZ1bmNzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5j CmluZGV4IGE4OTUxZjU1YjkzLi4zMWNiMzZhNTZlNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2FycmF5ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlm dW5jcy5jCkBAIC0zMjg5LDYgKzMyODksMTkgQEAgYXJyYXlfbWFwKERhdHVtIGFycmF5ZCwKIAkJ LyogQXBwbHkgdGhlIGdpdmVuIGV4cHJlc3Npb24gdG8gc291cmNlIGVsZW1lbnQgKi8KIAkJdmFs dWVzW2ldID0gRXhlY0V2YWxFeHByKGV4cHJzdGF0ZSwgZWNvbnRleHQsICZudWxsc1tpXSk7CiAK KwkJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXhwcnN0YXRlLT5lc2NvbnRleHQpKQorCQl7CisJ CQlwZnJlZSh2YWx1ZXMpOworCQkJcGZyZWUobnVsbHMpOworCQkJcmV0dXJuIChEYXR1bSkgMDsK KwkJfQorCisJCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGV4cHJzdGF0ZS0+ZXNjb250ZXh0KSkK KwkJeworCQkJcGZyZWUodmFsdWVzKTsKKwkJCXBmcmVlKG51bGxzKTsKKwkJCXJldHVybiAoRGF0 dW0pIDA7CisJCX0KIAkJaWYgKG51bGxzW2ldKQogCQkJaGFzbnVsbHMgPSB0cnVlOwogCQllbHNl CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKaW5kZXggMDUwZWVmOTdhNGMuLjQyNzhlNDRiNGE5 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCkBAIC0xMDU1OCw2ICsxMDU1OCwyMiBAQCBn ZXRfcnVsZV9leHByKE5vZGUgKm5vZGUsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCwKIAkJCX0K IAkJCWJyZWFrOwogCisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJeworCQkJCVNhZmVU eXBlQ2FzdEV4cHIgICAqc3RjZXhwciA9IGNhc3ROb2RlKFNhZmVUeXBlQ2FzdEV4cHIsIG5vZGUp OworCisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJDQVNUKCIpOworCQkJCWdldF9y dWxlX2V4cHIoc3RjZXhwci0+c291cmNlX2V4cHIsIGNvbnRleHQsIHNob3dpbXBsaWNpdCk7CisK KwkJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiBBUyAlcyAiLAorCQkJCQkJCQkgZm9ybWF0X3R5 cGVfd2l0aF90eXBlbW9kKHN0Y2V4cHItPnJlc3VsdHR5cGUsCisJCQkJCQkJCQkJCQkJCSAgc3Rj ZXhwci0+cmVzdWx0dHlwbW9kKSk7CisKKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1Ziwg IkRFRkFVTFQgIik7CisJCQkJZ2V0X3J1bGVfZXhwcihzdGNleHByLT5kZWZhdWx0X2V4cHIsIGNv bnRleHQsIHNob3dpbXBsaWNpdCk7CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIg T04gQ09OVkVSU0lPTiBFUlJPUikiKTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfSnNvbkV4 cHI6CiAJCQl7CiAJCQkJSnNvbkV4cHIgICAqamV4cHIgPSAoSnNvbkV4cHIgKikgbm9kZTsKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2Nhc3QuZGF0CmluZGV4IGZiZmQ2Njk1ODdmLi4xZWY1OWE5ODJhZiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdAorKysgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2Nhc3QuZGF0CkBAIC0xOSw2NSArMTksNjUgQEAKICMgaW50Mi0+aW50NC0+aW50 OC0+bnVtZXJpYy0+ZmxvYXQ0LT5mbG9hdDgsIHdoaWxlIGNhc3RzIGluIHRoZQogIyByZXZlcnNl IGRpcmVjdGlvbiBhcmUgYXNzaWdubWVudC1vbmx5LgogeyBjYXN0c291cmNlID0+ICdpbnQ4Jywg Y2FzdHRhcmdldCA9PiAnaW50MicsIGNhc3RmdW5jID0+ICdpbnQyKGludDgpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQ4 KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDQnLCBjYXN0ZnVu YyA9PiAnZmxvYXQ0KGludDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4g J2Zsb2F0OCcsIGNhc3RmdW5jID0+ICdmbG9hdDgoaW50OCknLAotICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4 JywgY2FzdHRhcmdldCA9PiAnbnVtZXJpYycsIGNhc3RmdW5jID0+ICdudW1lcmljKGludDgpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAn aW50OChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0Jywg Y2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdl dCA9PiAnZmxvYXQ0JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDInLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDgnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ4KGludDIp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ251bWVyaWMnLCBjYXN0ZnVu YyA9PiAnbnVtZXJpYyhpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgoaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0Jywg Y2FzdHRhcmdldCA9PiAnaW50MicsIGNhc3RmdW5jID0+ICdpbnQyKGludDQpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0NCcsIGNhc3RmdW5jID0+ICdmbG9hdDQo aW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnZmxvYXQ4JywgY2Fz dGZ1bmMgPT4gJ2Zsb2F0OChpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0 ID0+ICdudW1lcmljJywgY2FzdGZ1bmMgPT4gJ251bWVyaWMoaW50NCknLAotICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdmbG9hdDQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgoZmxvYXQ0 KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0NCcsIGNhc3R0YXJnZXQgPT4gJ2ludDInLCBjYXN0ZnVu YyA9PiAnaW50MihmbG9hdDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ0JywgY2FzdHRhcmdldCA9 PiAnaW50NCcsIGNhc3RmdW5jID0+ICdpbnQ0KGZsb2F0NCknLAotICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdmbG9h dDQnLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDgnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ4KGZsb2F0NCkn LAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdmbG9hdDQnLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywKLSAgY2Fz dGZ1bmMgPT4gJ251bWVyaWMoZmxvYXQ0KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ251bWVyaWMoZmxvYXQ0KScsIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdmbG9hdDgnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4g J2ludDgoZmxvYXQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0OCcsIGNhc3R0YXJnZXQgPT4gJ2lu dDInLCBjYXN0ZnVuYyA9PiAnaW50MihmbG9hdDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ4Jywg Y2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICdpbnQ0KGZsb2F0OCknLAotICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdmbG9hdDgnLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDQnLCBjYXN0ZnVuYyA9PiAnZmxv YXQ0KGZsb2F0OCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdmbG9hdDgnLCBjYXN0dGFyZ2V0ID0+ICdudW1l cmljJywKLSAgY2FzdGZ1bmMgPT4gJ251bWVyaWMoZmxvYXQ4KScsIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ251bWVyaWMoZmxvYXQ4KScs IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdudW1lcmljJywgY2FzdHRhcmdldCA9PiAnaW50OCcs IGNhc3RmdW5jID0+ICdpbnQ4KG51bWVyaWMpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVtZXJpYycsIGNh c3R0YXJnZXQgPT4gJ2ludDInLCBjYXN0ZnVuYyA9PiAnaW50MihudW1lcmljKScsCi0gIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQo bnVtZXJpYyknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdudW1lcmljJywgY2FzdHRhcmdldCA9PiAnZmxvYXQ0 JywKLSAgY2FzdGZ1bmMgPT4gJ2Zsb2F0NChudW1lcmljKScsIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ2Zsb2F0NChudW1lcmljKScsIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdudW1lcmljJywgY2FzdHRhcmdldCA9PiAnZmxvYXQ4JywK LSAgY2FzdGZ1bmMgPT4gJ2Zsb2F0OChudW1lcmljKScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ2Zsb2F0OChudW1lcmljKScsIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdtb25leScsIGNhc3R0YXJnZXQgPT4gJ251bWVyaWMnLCBjYXN0 ZnVuYyA9PiAnbnVtZXJpYyhtb25leSknLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ICdt b25leScsIGNhc3RmdW5jID0+ICdtb25leShudW1lcmljKScsCkBAIC04OSwxMyArODksMTMgQEAK IAogIyBBbGxvdyBleHBsaWNpdCBjb2VyY2lvbnMgYmV0d2VlbiBpbnQ0IGFuZCBib29sCiB7IGNh c3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdib29sJywgY2FzdGZ1bmMgPT4gJ2Jv b2woaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdib29sJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNh c3RmdW5jID0+ICdpbnQ0KGJvb2wpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBBbGxvdyBleHBsaWNpdCBjb2VyY2lvbnMgYmV0d2Vl biB4aWQ4IGFuZCB4aWQKIHsgY2FzdHNvdXJjZSA9PiAneGlkOCcsIGNhc3R0YXJnZXQgPT4gJ3hp ZCcsIGNhc3RmdW5jID0+ICd4aWQoeGlkOCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIE9JRCBjYXRlZ29yeTogYWxsb3cgaW1wbGlj aXQgY29udmVyc2lvbiBmcm9tIGFueSBpbnRlZ3JhbCB0eXBlIChpbmNsdWRpbmcKICMgaW50OCwg dG8gc3VwcG9ydCBPSUQgbGl0ZXJhbHMgPiAyRykgdG8gT0lELCBhcyB3ZWxsIGFzIGFzc2lnbm1l bnQgY29lcmNpb24KQEAgLTEwNiwxMyArMTA2LDEzIEBACiAjIGNhc3RzIGZyb20gdGV4dCBhbmQg dmFyY2hhciB0byByZWdjbGFzcywgd2hpY2ggZXhpc3QgbWFpbmx5IHRvIHN1cHBvcnQKICMgbGVn YWN5IGZvcm1zIG9mIG5leHR2YWwoKSBhbmQgcmVsYXRlZCBmdW5jdGlvbnMuCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICdpbnQ0 KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3Rm dW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAog eyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4g J2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBj YXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicg fSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAncmVncHJvYycsIGNhc3Rm dW5jID0+ICcwJywKQEAgLTEyMCwxMyArMTIwLDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3By b2MnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNh c3R0YXJnZXQgPT4gJ3JlZ3Byb2MnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn aW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ3Byb2MnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScs Ci0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9jJywgY2FzdGZ1bmMg PT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ3JlZ3Byb2MnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4g J2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3Byb2MnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0 JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3Byb2MnLCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9j ZWR1cmUnLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0xMzgsMTMgKzEzOCwxMyBAQAogeyBjYXN0c291 cmNlID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAn MCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNv dXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3Byb2NlZHVyZScsIGNhc3RmdW5jID0+ ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVncHJvY2VkdXJl JywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRh cmdldCA9PiAncmVncHJvY2VkdXJlJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3Byb2NlZHVy ZScsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAncmVncHJvY2VkdXJlJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0 c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyJywgY2FzdGZ1bmMgPT4gJzAn LApAQCAtMTUyLDEzICsxNTIsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVnb3BlcicsIGNhc3R0 YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9 PiAncmVnb3BlcicsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2Fz dHRhcmdldCA9PiAncmVnb3BlcicsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ29wZXInLCBjYXN0ZnVuYyA9PiAnMCcsCiAg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9 PiAncmVnb3BlcicsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAncmVnb3BlcicsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVu YyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsg Y2FzdHNvdXJjZSA9PiAncmVnb3BlcicsIGNhc3R0YXJnZXQgPT4gJ3JlZ29wZXJhdG9yJywgY2Fz dGZ1bmMgPT4gJzAnLApAQCAtMTcwLDEzICsxNzAsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVn b3BlcmF0b3InLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50 OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ29wZXJhdG9yJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyYXRvcicsIGNhc3RmdW5jID0+ ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ29w ZXJhdG9yJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ29wZXJhdG9yJywgY2FzdHRhcmdldCA9 PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVy YXRvcicsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywg Y2FzdHRhcmdldCA9PiAncmVnY2xhc3MnLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0xODQsMTMgKzE4 NCwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWdjbGFzcycsIGNhc3R0YXJnZXQgPT4gJ29pZCcs IGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdi JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVnY2xhc3MnLCBj YXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3Jl Z2NsYXNzJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0Jywg Y2FzdHRhcmdldCA9PiAncmVnY2xhc3MnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnY2xhc3Mn LCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ3JlZ2NsYXNzJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywK ICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNl ID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb2xsYXRpb24nLCBjYXN0ZnVuYyA9PiAnMCcs CkBAIC0xOTgsMTMgKzE5OCwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWdjb2xsYXRpb24nLCBj YXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJn ZXQgPT4gJ3JlZ2NvbGxhdGlvbicsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQyJywgY2FzdHRhcmdldCA9PiAncmVnY29sbGF0aW9uJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50 MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVnY29sbGF0aW9uJywg Y2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2In IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NvbGxhdGlvbicsIGNhc3R0YXJnZXQgPT4gJ2ludDgn LCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnY29sbGF0aW9uJywg Y2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFy Z2V0ID0+ICdyZWd0eXBlJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMjEyLDEzICsyMTIsMTMgQEAK IHsgY2FzdHNvdXJjZSA9PiAncmVndHlwZScsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5j ID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBj YXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVndHlwZScsIGNhc3RmdW5jID0+ ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVndHlwZScsIGNh c3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQg PT4gJ3JlZ3R5cGUnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVndHlwZScsIGNhc3R0YXJnZXQg PT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVndHlw ZScsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2Fz dHRhcmdldCA9PiAncmVnY29uZmlnJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMjI2LDEzICsyMjYs MTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVnY29uZmlnJywgY2FzdHRhcmdldCA9PiAnb2lkJywg Y2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2In IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb25maWcnLCBj YXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3Jl Z2NvbmZpZycsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcs IGNhc3R0YXJnZXQgPT4gJ3JlZ2NvbmZpZycsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdjb25m aWcnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ3JlZ2NvbmZpZycsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAn MCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNv dXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAncmVnZGljdGlvbmFyeScsIGNhc3RmdW5jID0+ ICcwJywKQEAgLTI0MCwzMSArMjQwLDMxIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2RpY3Rpb25h cnknLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNh c3R0YXJnZXQgPT4gJ3JlZ2RpY3Rpb25hcnknLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ2RpY3Rpb25hcnknLCBjYXN0ZnVuYyA9PiAn aW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdkaWN0 aW9uYXJ5JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2RpY3Rpb25hcnknLCBjYXN0dGFyZ2V0 ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2Rp Y3Rpb25hcnknLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3Rl eHQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjbGFzcycsIGNhc3RmdW5jID0+ICdyZWdjbGFzcycsCi0g IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ3ZhcmNoYXInLCBjYXN0dGFyZ2V0ID0+ICdyZWdjbGFzcycsIGNhc3RmdW5j ID0+ICdyZWdjbGFzcycsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3Jv bGUnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVncm9sZScsIGNhc3R0YXJnZXQgPT4gJ29pZCcs IGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdi JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVncm9sZScsIGNh c3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVn cm9sZScsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNh c3R0YXJnZXQgPT4gJ3JlZ3JvbGUnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVncm9sZScsIGNh c3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAncmVncm9sZScsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAn b2lkJywgY2FzdHRhcmdldCA9PiAncmVnbmFtZXNwYWNlJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAt MjcyLDEzICsyNzIsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVnbmFtZXNwYWNlJywgY2FzdHRh cmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ ICdyZWduYW1lc3BhY2UnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50Mics IGNhc3R0YXJnZXQgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3Rm dW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAog eyBjYXN0c291cmNlID0+ICdyZWduYW1lc3BhY2UnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2Fz dGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3R0 YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9 PiAncmVnZGF0YWJhc2UnLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0yODYsMTMgKzI4NiwxMyBAQAog eyBjYXN0c291cmNlID0+ICdyZWdkYXRhYmFzZScsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3Rm dW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAog eyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVnZGF0YWJhc2UnLCBjYXN0 ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ2Rh dGFiYXNlJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0Jywg Y2FzdHRhcmdldCA9PiAncmVnZGF0YWJhc2UnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnZGF0 YWJhc2UnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0g IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ3JlZ2RhdGFiYXNlJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5j ID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogCkBA IC0zMDIsNTcgKzMwMiw1NyBAQAogeyBjYXN0c291cmNlID0+ICd0ZXh0JywgY2FzdHRhcmdldCA9 PiAndmFyY2hhcicsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdicGNoYXInLCBjYXN0dGFyZ2V0ID0+ ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJ3RleHQoYnBjaGFyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JwY2hh cicsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChicGNoYXIpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAndmFyY2hhcicsIGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVuYyA9 PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2Fz dHNvdXJjZSA9PiAndmFyY2hhcicsIGNhc3R0YXJnZXQgPT4gJ2JwY2hhcicsIGNhc3RmdW5jID0+ ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0 c291cmNlID0+ICdjaGFyJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICd0ZXh0 KGNoYXIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnY2hhcicsIGNhc3R0YXJnZXQgPT4gJ2JwY2hhcicsIGNh c3RmdW5jID0+ICdicGNoYXIoY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdjaGFyJywgY2FzdHRhcmdl dCA9PiAndmFyY2hhcicsIGNhc3RmdW5jID0+ICd0ZXh0KGNoYXIpJywKLSAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn bmFtZScsIGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAndGV4dChuYW1lKScsCi0g IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ25hbWUnLCBjYXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAn YnBjaGFyKG5hbWUpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbmFtZScsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNo YXInLCBjYXN0ZnVuYyA9PiAndmFyY2hhcihuYW1lKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RleHQnLCBj YXN0dGFyZ2V0ID0+ICdjaGFyJywgY2FzdGZ1bmMgPT4gJ2NoYXIodGV4dCknLAotICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdicGNoYXInLCBjYXN0dGFyZ2V0ID0+ICdjaGFyJywgY2FzdGZ1bmMgPT4gJ2NoYXIodGV4 dCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAnY2hhcicsIGNhc3Rm dW5jID0+ICdjaGFyKHRleHQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGV4dCcsIGNhc3R0YXJnZXQgPT4g J25hbWUnLCBjYXN0ZnVuYyA9PiAnbmFtZSh0ZXh0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JwY2hhcics IGNhc3R0YXJnZXQgPT4gJ25hbWUnLCBjYXN0ZnVuYyA9PiAnbmFtZShicGNoYXIpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAndmFyY2hhcicsIGNhc3R0YXJnZXQgPT4gJ25hbWUnLCBjYXN0ZnVuYyA9PiAnbmFt ZSh2YXJjaGFyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiAKICMgQWxsb3cgZXhwbGljaXQgY29lcmNpb25zIGJldHdlZW4gYnl0ZWEgYW5k IGludGVnZXIgdHlwZXMKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ2J5 dGVhJywgY2FzdGZ1bmMgPT4gJ2J5dGVhKGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNh c3R0YXJnZXQgPT4gJ2J5dGVhJywgY2FzdGZ1bmMgPT4gJ2J5dGVhKGludDQpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ2J5dGVhJywgY2FzdGZ1bmMgPT4gJ2J5dGVhKGlu dDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAnYnl0ZWEnLCBjYXN0dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1 bmMgPT4gJ2ludDIoYnl0ZWEpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYnl0ZWEnLCBjYXN0dGFyZ2V0ID0+ ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoYnl0ZWEpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2Un LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYnl0ZWEn LCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgoYnl0ZWEpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn ZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBBbGxv dyBleHBsaWNpdCBjb2VyY2lvbnMgYmV0d2VlbiBpbnQ0IGFuZCAiY2hhciIKIHsgY2FzdHNvdXJj ZSA9PiAnY2hhcicsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChjaGFy KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdjaGFyJywgY2FzdGZ1bmMg PT4gJ2NoYXIoaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogCiAjIHBnX25vZGVfdHJlZSBjYW4gYmUgY29lcmNlZCB0bywgYnV0IG5v dCBmcm9tLCB0ZXh0CiB7IGNhc3Rzb3VyY2UgPT4gJ3BnX25vZGVfdHJlZScsIGNhc3R0YXJnZXQg PT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0zNzgsNzMgKzM3OCw3MyBAQAogCiAjIERh dGV0aW1lIGNhdGVnb3J5CiB7IGNhc3Rzb3VyY2UgPT4gJ2RhdGUnLCBjYXN0dGFyZ2V0ID0+ICd0 aW1lc3RhbXAnLAotICBjYXN0ZnVuYyA9PiAndGltZXN0YW1wKGRhdGUpJywgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZXN0YW1wKGRh dGUpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2RhdGUnLCBjYXN0dGFyZ2V0ID0+ICd0aW1l c3RhbXB0eicsCi0gIGNhc3RmdW5jID0+ICd0aW1lc3RhbXB0eihkYXRlKScsIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcHR6 KGRhdGUpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWUnLCBjYXN0dGFyZ2V0ID0+ICdp bnRlcnZhbCcsIGNhc3RmdW5jID0+ICdpbnRlcnZhbCh0aW1lKScsCi0gIGNhc3Rjb250ZXh0ID0+ ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3Rp bWUnLCBjYXN0dGFyZ2V0ID0+ICd0aW1ldHonLCBjYXN0ZnVuYyA9PiAndGltZXR6KHRpbWUpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAndGltZXN0YW1wJywgY2FzdHRhcmdldCA9PiAnZGF0ZScsCi0gIGNhc3Rm dW5jID0+ICdkYXRlKHRpbWVzdGFtcCknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdkYXRlKHRpbWVzdGFtcCknLCBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAndGltZXN0YW1wJywgY2FzdHRhcmdldCA9PiAndGltZScsCi0gIGNhc3RmdW5j ID0+ICd0aW1lKHRpbWVzdGFtcCknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1lKHRpbWVzdGFtcCknLCBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAndGltZXN0YW1wJywgY2FzdHRhcmdldCA9PiAndGltZXN0YW1wdHonLAotICBjYXN0 ZnVuYyA9PiAndGltZXN0YW1wdHoodGltZXN0YW1wKScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcHR6KHRpbWVzdGFtcCkn LCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZXN0YW1wdHonLCBjYXN0dGFyZ2V0ID0+ICdk YXRlJywKLSAgY2FzdGZ1bmMgPT4gJ2RhdGUodGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnZGF0ZSh0aW1lc3RhbXB0 eiknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZXN0YW1wdHonLCBjYXN0dGFyZ2V0ID0+ ICd0aW1lJywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWUodGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZSh0aW1lc3Rh bXB0eiknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZXN0YW1wdHonLCBjYXN0dGFyZ2V0 ID0+ICd0aW1lc3RhbXAnLAotICBjYXN0ZnVuYyA9PiAndGltZXN0YW1wKHRpbWVzdGFtcHR6KScs IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4g J3RpbWVzdGFtcCh0aW1lc3RhbXB0eiknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZXN0 YW1wdHonLCBjYXN0dGFyZ2V0ID0+ICd0aW1ldHonLAotICBjYXN0ZnVuYyA9PiAndGltZXR6KHRp bWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGZ1bmMgPT4gJ3RpbWV0eih0aW1lc3RhbXB0eiknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnaW50ZXJ2YWwnLCBjYXN0dGFyZ2V0ID0+ICd0aW1lJywgY2FzdGZ1bmMgPT4gJ3RpbWUoaW50 ZXJ2YWwpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZXR6JywgY2FzdHRhcmdldCA9PiAndGltZScsIGNh c3RmdW5jID0+ICd0aW1lKHRpbWV0eiknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIEdlb21ldHJpYyBjYXRlZ29yeQogeyBjYXN0c291 cmNlID0+ICdwb2ludCcsIGNhc3R0YXJnZXQgPT4gJ2JveCcsIGNhc3RmdW5jID0+ICdib3gocG9p bnQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdsc2VnJywgY2FzdHRhcmdldCA9PiAncG9pbnQnLCBjYXN0ZnVu YyA9PiAncG9pbnQobHNlZyknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3BhdGgnLCBjYXN0dGFyZ2V0ID0+ICdw b2x5Z29uJywgY2FzdGZ1bmMgPT4gJ3BvbHlnb24ocGF0aCknLAotICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JveCcs IGNhc3R0YXJnZXQgPT4gJ3BvaW50JywgY2FzdGZ1bmMgPT4gJ3BvaW50KGJveCknLAotICBjYXN0 Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdl JywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2JveCcsIGNhc3R0YXJnZXQgPT4gJ2xzZWcnLCBjYXN0ZnVuYyA9PiAnbHNlZyhib3gp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdib3gnLCBjYXN0dGFyZ2V0ID0+ICdwb2x5Z29uJywgY2FzdGZ1bmMg PT4gJ3BvbHlnb24oYm94KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYm94JywgY2FzdHRhcmdldCA9PiAnY2ly Y2xlJywgY2FzdGZ1bmMgPT4gJ2NpcmNsZShib3gpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4g J2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdwb2x5Z29uJywg Y2FzdHRhcmdldCA9PiAncG9pbnQnLCBjYXN0ZnVuYyA9PiAncG9pbnQocG9seWdvbiknLAotICBj YXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ3BvbHlnb24nLCBjYXN0dGFyZ2V0ID0+ICdwYXRoJywgY2FzdGZ1bmMgPT4gJ3Bh dGgnLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ3BvbHlnb24nLCBjYXN0dGFyZ2V0ID0+ICdib3gnLCBjYXN0ZnVu YyA9PiAnYm94KHBvbHlnb24pJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdwb2x5Z29uJywgY2FzdHRhcmdldCA9 PiAnY2lyY2xlJywKLSAgY2FzdGZ1bmMgPT4gJ2NpcmNsZShwb2x5Z29uKScsIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ2NpcmNsZShwb2x5 Z29uKScsIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2NpcmNsZScsIGNhc3R0YXJnZXQgPT4gJ3Bv aW50JywgY2FzdGZ1bmMgPT4gJ3BvaW50KGNpcmNsZSknLAotICBjYXN0Y29udGV4dCA9PiAnZScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9 PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2NpcmNsZScs IGNhc3R0YXJnZXQgPT4gJ2JveCcsIGNhc3RmdW5jID0+ICdib3goY2lyY2xlKScsCi0gIGNhc3Rj b250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2Un LCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnY2lyY2xlJywgY2FzdHRhcmdldCA9PiAncG9seWdvbicsCi0gIGNhc3RmdW5jID0+ICdw b2x5Z29uKGNpcmNsZSknLCBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3RmdW5jID0+ICdwb2x5Z29uKGNpcmNsZSknLCBjYXN0Y29udGV4dCA9PiAnZScsIGNh c3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIE1BQyBhZGRyZXNz IGNhdGVnb3J5CiB7IGNhc3Rzb3VyY2UgPT4gJ21hY2FkZHInLCBjYXN0dGFyZ2V0ID0+ICdtYWNh ZGRyOCcsIGNhc3RmdW5jID0+ICdtYWNhZGRyOCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ21hY2FkZHI4Jywg Y2FzdHRhcmdldCA9PiAnbWFjYWRkcicsIGNhc3RmdW5jID0+ICdtYWNhZGRyJywKLSAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBJTkVUIGNh dGVnb3J5CiB7IGNhc3Rzb3VyY2UgPT4gJ2NpZHInLCBjYXN0dGFyZ2V0ID0+ICdpbmV0JywgY2Fz dGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2luZXQnLCBjYXN0dGFyZ2V0ID0+ICdjaWRyJywgY2FzdGZ1bmMg PT4gJ2NpZHInLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogCiAjIEJpdFN0cmluZyBjYXRlZ29yeQogeyBjYXN0c291cmNlID0+ICdiaXQnLCBj YXN0dGFyZ2V0ID0+ICd2YXJiaXQnLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC00NTQsMTMgKzQ1NCwx MyBAQAogCiAjIENyb3NzLWNhdGVnb3J5IGNhc3RzIGJldHdlZW4gYml0IGFuZCBpbnQ0LCBpbnQ4 CiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdiaXQnLCBjYXN0ZnVuYyA9 PiAnYml0KGludDgsaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAn Yml0JywgY2FzdGZ1bmMgPT4gJ2JpdChpbnQ0LGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2Un LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYml0Jywg Y2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGJpdCknLAotICBjYXN0Y29u dGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdiaXQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoYml0KScs Ci0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAK ICMgQ3Jvc3MtY2F0ZWdvcnkgY2FzdHMgdG8gYW5kIGZyb20gVEVYVAogIyBXZSBuZWVkIGVudHJp ZXMgaGVyZSBvbmx5IGZvciBhIGZldyBzcGVjaWFsaXplZCBjYXNlcyB3aGVyZSB0aGUgYmVoYXZp b3IKQEAgLTQ3MSw2OCArNDcxLDY4IEBACiAjIGJlaGF2aW9yIHdpbGwgZW5zdWUgd2hlbiB0aGUg YXV0b21hdGljIGNhc3QgaXMgYXBwbGllZCBpbnN0ZWFkIG9mIHRoZQogIyBwZ19jYXN0IGVudHJ5 IQogeyBjYXN0c291cmNlID0+ICdjaWRyJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5j ID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW5ldCcsIGNhc3R0YXJnZXQgPT4gJ3Rl eHQnLCBjYXN0ZnVuYyA9PiAndGV4dChpbmV0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jvb2wnLCBjYXN0 dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJ3RleHQoYm9vbCknLAotICBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICd4bWwnLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RleHQn LCBjYXN0dGFyZ2V0ID0+ICd4bWwnLCBjYXN0ZnVuYyA9PiAneG1sJywKLSAgY2FzdGNvbnRleHQg PT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBDcm9zcy1jYXRlZ29y eSBjYXN0cyB0byBhbmQgZnJvbSBWQVJDSEFSCiAjIFdlIHN1cHBvcnQgYWxsIHRoZSBzYW1lIGNh c3RzIGFzIGZvciBURVhULgogeyBjYXN0c291cmNlID0+ICdjaWRyJywgY2FzdHRhcmdldCA9PiAn dmFyY2hhcicsIGNhc3RmdW5jID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW5ldCcs IGNhc3R0YXJnZXQgPT4gJ3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChpbmV0KScsCi0gIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2Jvb2wnLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJ3Rl eHQoYm9vbCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd4bWwnLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywg Y2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2In IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3ZhcmNoYXInLCBjYXN0dGFyZ2V0ID0+ICd4bWwnLCBjYXN0 ZnVuYyA9PiAneG1sJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIAogIyBDcm9zcy1jYXRlZ29yeSBjYXN0cyB0byBhbmQgZnJvbSBCUENIQVIK ICMgV2Ugc3VwcG9ydCBhbGwgdGhlIHNhbWUgY2FzdHMgYXMgZm9yIFRFWFQuCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2NpZHInLCBjYXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChp bmV0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2luZXQnLCBjYXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0 ZnVuYyA9PiAndGV4dChpbmV0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jvb2wnLCBjYXN0dGFyZ2V0ID0+ ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChib29sKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3htbCcs IGNhc3R0YXJnZXQgPT4gJ2JwY2hhcicsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdicGNoYXInLCBj YXN0dGFyZ2V0ID0+ICd4bWwnLCBjYXN0ZnVuYyA9PiAneG1sJywKLSAgY2FzdGNvbnRleHQgPT4g J2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBMZW5ndGgtY29lcmNpb24g ZnVuY3Rpb25zCiB7IGNhc3Rzb3VyY2UgPT4gJ2JwY2hhcicsIGNhc3R0YXJnZXQgPT4gJ2JwY2hh cicsCiAgIGNhc3RmdW5jID0+ICdicGNoYXIoYnBjaGFyLGludDQsYm9vbCknLCBjYXN0Y29udGV4 dCA9PiAnaScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyY2hhcicsIGNhc3R0 YXJnZXQgPT4gJ3ZhcmNoYXInLAogICBjYXN0ZnVuYyA9PiAndmFyY2hhcih2YXJjaGFyLGludDQs Ym9vbCknLCBjYXN0Y29udGV4dCA9PiAnaScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAndGltZScsIGNhc3R0YXJnZXQgPT4gJ3RpbWUnLCBjYXN0ZnVuYyA9PiAndGltZSh0aW1lLGlu dDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZXN0YW1wJywgY2FzdHRhcmdldCA9PiAndGltZXN0YW1w JywKICAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcCh0aW1lc3RhbXAsaW50NCknLCBjYXN0Y29udGV4 dCA9PiAnaScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZXN0YW1wdHonLCBj YXN0dGFyZ2V0ID0+ICd0aW1lc3RhbXB0eicsCiAgIGNhc3RmdW5jID0+ICd0aW1lc3RhbXB0eih0 aW1lc3RhbXB0eixpbnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdpJywKLSAgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdpbnRlcnZhbCcsIGNhc3R0YXJnZXQgPT4gJ2ludGVydmFsJywKICAgY2Fz dGZ1bmMgPT4gJ2ludGVydmFsKGludGVydmFsLGludDQpJywgY2FzdGNvbnRleHQgPT4gJ2knLAot ICBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWV0eicsIGNhc3R0YXJnZXQgPT4gJ3Rp bWV0eicsCi0gIGNhc3RmdW5jID0+ICd0aW1ldHoodGltZXR6LGludDQpJywgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZXR6KHRpbWV0 eixpbnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdiaXQnLCBjYXN0dGFyZ2V0ID0+ICdi aXQnLCBjYXN0ZnVuYyA9PiAnYml0KGJpdCxpbnQ0LGJvb2wpJywKLSAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFy Yml0JywgY2FzdHRhcmdldCA9PiAndmFyYml0JywgY2FzdGZ1bmMgPT4gJ3ZhcmJpdCcsCi0gIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywKLSAgY2FzdGZ1bmMg PT4gJ251bWVyaWMobnVtZXJpYyxpbnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ251bWVyaWMobnVtZXJpYyxpbnQ0KScsIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogCiAjIGpzb24gdG8vZnJvbSBqc29uYgogeyBjYXN0c291cmNlID0+ICdqc29uJywgY2FzdHRh cmdldCA9PiAnanNvbmInLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC01NDIsMzYgKzU0MiwzNiBAQAog CiAjIGpzb25iIHRvIG51bWVyaWMgYW5kIGJvb2wgdHlwZXMKIHsgY2FzdHNvdXJjZSA9PiAnanNv bmInLCBjYXN0dGFyZ2V0ID0+ICdib29sJywgY2FzdGZ1bmMgPT4gJ2Jvb2woanNvbmIpJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywgY2FzdGZ1bmMgPT4g J251bWVyaWMoanNvbmIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdp bnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIoanNvbmIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBj YXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoanNvbmIpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgoanNv bmIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDQnLCBjYXN0 ZnVuYyA9PiAnZmxvYXQ0KGpzb25iKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2pzb25iJywgY2FzdHRhcmdl dCA9PiAnZmxvYXQ4JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0OChqc29uYiknLAotICBjYXN0Y29udGV4 dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIHJhbmdlIHRvIG11 bHRpcmFuZ2UKIHsgY2FzdHNvdXJjZSA9PiAnaW50NHJhbmdlJywgY2FzdHRhcmdldCA9PiAnaW50 NG11bHRpcmFuZ2UnLAogICBjYXN0ZnVuYyA9PiAnaW50NG11bHRpcmFuZ2UoaW50NHJhbmdlKScs IGNhc3Rjb250ZXh0ID0+ICdlJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4 cmFuZ2UnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4bXVsdGlyYW5nZScsCiAgIGNhc3RmdW5jID0+ICdp bnQ4bXVsdGlyYW5nZShpbnQ4cmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLAotICBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bXJhbmdlJywgY2FzdHRhcmdldCA9PiAnbnVtbXVsdGly YW5nZScsCiAgIGNhc3RmdW5jID0+ICdudW1tdWx0aXJhbmdlKG51bXJhbmdlKScsIGNhc3Rjb250 ZXh0ID0+ICdlJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdkYXRlcmFuZ2UnLCBj YXN0dGFyZ2V0ID0+ICdkYXRlbXVsdGlyYW5nZScsCiAgIGNhc3RmdW5jID0+ICdkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLAotICBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ3RzcmFuZ2UnLCBjYXN0dGFyZ2V0ID0+ICd0c211bHRpcmFuZ2UnLAotICBj YXN0ZnVuYyA9PiAndHNtdWx0aXJhbmdlKHRzcmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndHNtdWx0aXJhbmdlKHRzcmFuZ2Up JywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RzdHpyYW5nZScsIGNhc3R0YXJnZXQgPT4gJ3Rz dHptdWx0aXJhbmdlJywKICAgY2FzdGZ1bmMgPT4gJ3RzdHptdWx0aXJhbmdlKHRzdHpyYW5nZSkn LCBjYXN0Y29udGV4dCA9PiAnZScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIF0KZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmgK aW5kZXggNmEwY2EzMzcxNTMuLjIxOGQ4MWQ1MzVhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2Nhc3QuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuaApAQCAt NDcsNiArNDcsMTAgQEAgQ0FUQUxPRyhwZ19jYXN0LDI2MDUsQ2FzdFJlbGF0aW9uSWQpCiAKIAkv KiBjYXN0IG1ldGhvZCAqLwogCWNoYXIJCWNhc3RtZXRob2Q7CisKKwkvKiBjYXN0IGZ1bmN0aW9u IGVycm9yIHNhZmUgKi8KKwlib29sCQljYXN0ZXJyb3JzYWZlIEJLSV9ERUZBVUxUKGYpOworCiB9 IEZvcm1EYXRhX3BnX2Nhc3Q7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVj RXhwci5oCmluZGV4IDc1MzY2MjAzNzA2Li4zNGE4ODRlMzE5NiAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVj RXhwci5oCkBAIC0yNjUsNiArMjY1LDcgQEAgdHlwZWRlZiBlbnVtIEV4cHJFdmFsT3AKIAlFRU9Q X1hNTEVYUFIsCiAJRUVPUF9KU09OX0NPTlNUUlVDVE9SLAogCUVFT1BfSVNfSlNPTiwKKwlFRU9Q X1NBRkVUWVBFX0NBU1QsCiAJRUVPUF9KU09ORVhQUl9QQVRILAogCUVFT1BfSlNPTkVYUFJfQ09F UkNJT04sCiAJRUVPUF9KU09ORVhQUl9DT0VSQ0lPTl9GSU5JU0gsCkBAIC03NTAsNiArNzUxLDEy IEBAIHR5cGVkZWYgc3RydWN0IEV4cHJFdmFsU3RlcAogCQkJSnNvbklzUHJlZGljYXRlICpwcmVk OwkvKiBvcmlnaW5hbCBleHByZXNzaW9uIG5vZGUgKi8KIAkJfQkJCWlzX2pzb247CiAKKwkJLyog Zm9yIEVFT1BfU0FGRVRZUEVfQ0FTVCAqLworCQlzdHJ1Y3QKKwkJeworCQkJc3RydWN0IFNhZmVU eXBlQ2FzdFN0YXRlICpzdGNzdGF0ZTsJLyogb3JpZ2luYWwgZXhwcmVzc2lvbiBub2RlICovCisJ CX0JCQlzdGNleHByOworCiAJCS8qIGZvciBFRU9QX0pTT05FWFBSX1BBVEggKi8KIAkJc3RydWN0 CiAJCXsKQEAgLTg5Miw2ICs4OTksNyBAQCBleHRlcm4gaW50CUV4ZWNFdmFsSnNvbkV4cHJQYXRo KEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3AsCiAJCQkJCQkJCSBFeHByQ29udGV4 dCAqZWNvbnRleHQpOwogZXh0ZXJuIHZvaWQgRXhlY0V2YWxKc29uQ29lcmNpb24oRXhwclN0YXRl ICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwKIAkJCQkJCQkJIEV4cHJDb250ZXh0ICplY29udGV4 dCk7CitleHRlcm4gaW50IEV4ZWNFdmFsU2FmZVR5cGVDYXN0KEV4cHJTdGF0ZSAqc3RhdGUsIEV4 cHJFdmFsU3RlcCAqb3ApOwogZXh0ZXJuIHZvaWQgRXhlY0V2YWxKc29uQ29lcmNpb25GaW5pc2go RXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCk7CiBleHRlcm4gdm9pZCBFeGVjRXZh bEdyb3VwaW5nRnVuYyhFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wKTsKIGV4dGVy biB2b2lkIEV4ZWNFdmFsTWVyZ2VTdXBwb3J0RnVuYyhFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZh bFN0ZXAgKm9wLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9z cmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRleCBhMzY2NTNjMzdmOS4uMDE1Y2Q5ZjQ3 ZTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9p bmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBAIC0xMDUzLDYgKzEwNTMsMzYgQEAgdHlwZWRlZiBz dHJ1Y3QgRG9tYWluQ29uc3RyYWludFN0YXRlCiAJRXhwclN0YXRlICAqY2hlY2tfZXhwcnN0YXRl OwkvKiBjaGVja19leHByJ3MgZXZhbCBzdGF0ZSwgb3IgTlVMTCAqLwogfSBEb21haW5Db25zdHJh aW50U3RhdGU7CiAKK3R5cGVkZWYgc3RydWN0IFNhZmVUeXBlQ2FzdFN0YXRlCit7CisJU2FmZVR5 cGVDYXN0RXhwciAqc3RjZXhwcjsKKworCS8qIFNldCB0byB0cnVlIGlmIHR5cGUgY2FzdCBjYXVz ZSBhbiBlcnJvci4gKi8KKwlOdWxsYWJsZURhdHVtIGVycm9yOworCisJLyoKKwkgKiBBZGRyZXNz ZXMgb2Ygc3RlcHMgdGhhdCBpbXBsZW1lbnQgREVGQVVMVCBleHByIE9OIENPTlZFUlNJT04gRVJS T1IgZm9yCisJICogc2FmZSB0eXBlIGNhc3QuCisJICovCisJaW50IAkJanVtcF9lcnJvcjsKKwor CS8qCisJICogQWRkcmVzcyB0byBqdW1wIHRvIHdoZW4gc2tpcHBpbmcgYWxsIHRoZSBzdGVwcyB0 byBldmF1bGF0ZSB0aGUgZGVmYXVsdAorCSAqIGV4cHJlc3Npb24gYWZ0ZXIgcGVyZm9ybWluZyBF eGVjRXZhbFNhZmVUeXBlQ2FzdCgpLgorCSAqLworCWludCAJCWp1bXBfZW5kOworCisJLyoKKwkg KiBGb3IgZXJyb3Itc2FmZSBldmFsdWF0aW9uIG9mIGNvZXJjaW9ucy4gIFdoZW4gREVGQVVMVCBl eHByIE9OIENPTlZFUlNJT04KKwkgKiBPTiBFUlJPUiBpcyBzcGVjaWZpZWQsIGEgcG9pbnRlciB0 byB0aGlzIGlzIHBhc3NlZCB0byBFeGVjSW5pdEV4cHJSZWMoKQorCSAqIHdoZW4gaW5pdGlhbGl6 aW5nIHRoZSBjb2VyY2lvbiBleHByZXNzaW9ucywgc2VlIEV4ZWNJbml0U2FmZVR5cGVDYXN0RXhw ci4KKwkgKgorCSAqIFJlc2V0IGZvciBlYWNoIGV2YWx1YXRpb24gb2YgRUVPUF9TQUZFVFlQRV9D QVNULgorCSAqLworCUVycm9yU2F2ZUNvbnRleHQgZXNjb250ZXh0OworCit9IFNhZmVUeXBlQ2Fz dFN0YXRlOworCiAvKgogICogU3RhdGUgZm9yIEpzb25FeHByIGV2YWx1YXRpb24sIHRvbyBiaWcg dG8gaW5saW5lLgogICoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMu aCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCBkYzA5ZDFhM2YwMy4uODM1 NDkxNTFiZmIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTQwMCw2ICs0MDAsMTIgQEAgdHlw ZWRlZiBzdHJ1Y3QgVHlwZUNhc3QKIAlQYXJzZUxvYwlsb2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0 aW9uLCBvciAtMSBpZiB1bmtub3duICovCiB9IFR5cGVDYXN0OwogCit0eXBlZGVmIHN0cnVjdCBT YWZlVHlwZUNhc3QKK3sKKwlOb2RlVGFnCQl0eXBlOworCU5vZGUJCSpjYXN0OworCU5vZGUJICAg CSpkZWZfZXhwcjsJCS8qIGRlZmF1bHQgZXhwciAqLworfSBTYWZlVHlwZUNhc3Q7CiAvKgogICog Q29sbGF0ZUNsYXVzZSAtIGEgQ09MTEFURSBleHByZXNzaW9uCiAgKi8KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVz LmgKaW5kZXggMWI0NDM2ZjJmZjYuLjcwYjcyZWQyZjQwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9ub2Rlcy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApA QCAtNzY5LDYgKzc2OSwzOSBAQCB0eXBlZGVmIGVudW0gQ29lcmNpb25Gb3JtCiAJQ09FUkNFX1NR TF9TWU5UQVgsCQkJLyogZGlzcGxheSB3aXRoIFNRTC1tYW5kYXRlZCBzcGVjaWFsIHN5bnRheCAq LwogfSBDb2VyY2lvbkZvcm07CiAKKy8qCisgKiBTYWZlVHlwZUNhc3RFeHByIC0KKyAqCQlUcmFu c2Zvcm1lZCByZXByZXNlbnRhdGlvbiBvZgorICogQ0FTVChleHByIEFTIHR5cGVuYW1lIERFRkFV TFQgZXhwcjIgT04gRVJST1IpCisgKiBDQVNUKGV4cHIgQVMgdHlwZW5hbWUgTlVMTCBPTiBFUlJP UikKKyAqLwordHlwZWRlZiBzdHJ1Y3QgU2FmZVR5cGVDYXN0RXhwcgoreworCUV4cHIJCXhwcjsK KworCS8qIHRyYW5zZm9ybWVkIGV4cHJlc3Npb24gYmVpbmcgY2FzdGVkICovCisJTm9kZQkgICAq c291cmNlX2V4cHI7CisKKwkvKgorCSAqIFRoZSB0cmFuc2Zvcm1lZCBjYXN0IGV4cHJlc3Npb247 IEl0IHdpbGwgTlVMTCBpZiBjYW4gbm90IGNhc3Qgc291cmNlIHR5cGUKKwkgKiB0byB0YXJnZXQg dHlwZQorCSAqLworCU5vZGUJICAgKmNhc3RfZXhwciAJcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJs ZV9pZ25vcmUpOworCisJLyogRmFsbCBiYWNrIHRvIHRoZSBkZWZhdWx0IGV4cHJlc3Npb24gaWYg Y2FzdCBldmFsdWF0aW9uIGZhaWxzICovCisJTm9kZQkgICAqZGVmYXVsdF9leHByOworCisJLyog Y2FzdCByZXN1bHQgZGF0YSB0eXBlICovCisJT2lkCQkJcmVzdWx0dHlwZTsKKworCS8qIGNhc3Qg cmVzdWx0IGRhdGEgdHlwZSB0eXBtb2QgKHVzdWFsbHkgLTEpICovCisJaW50MzIJCXJlc3VsdHR5 cG1vZDsKKworCS8qIGNhc3QgcmVzdWx0IGRhdGEgdHlwZSBjb2xsYXRpb24gKi8KKwlPaWQJCQly ZXN1bHRjb2xsaWQ7CisKK30gU2FmZVR5cGVDYXN0RXhwcjsKKwogLyoKICAqIEZ1bmNFeHByIC0g ZXhwcmVzc2lvbiBub2RlIGZvciBhIGZ1bmN0aW9uIGNhbGwKICAqCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25v ZGUuaAppbmRleCBmN2QwN2M4NDU0Mi4uOWY1YjMyZTAzNjAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25v ZGUuaApAQCAtNjcsNiArNjcsOCBAQCB0eXBlZGVmIGVudW0gUGFyc2VFeHByS2luZAogCUVYUFJf S0lORF9WQUxVRVNfU0lOR0xFLAkvKiBzaW5nbGUtcm93IFZBTFVFUyAoaW4gSU5TRVJUIG9ubHkp ICovCiAJRVhQUl9LSU5EX0NIRUNLX0NPTlNUUkFJTlQsIC8qIENIRUNLIGNvbnN0cmFpbnQgZm9y IGEgdGFibGUgKi8KIAlFWFBSX0tJTkRfRE9NQUlOX0NIRUNLLAkJLyogQ0hFQ0sgY29uc3RyYWlu dCBmb3IgYSBkb21haW4gKi8KKwlFWFBSX0tJTkRfQ0FTVF9ERUZBVUxULAkJLyogZGVmYXVsdCBl eHByZXNzaW9uIGluCisJCQkJCQkJCSAgIENBU1QgREVGQVVMVCBPTiBDT05WRVJTSU9OIEVSUk9S ICovCiAJRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxULAkvKiBkZWZhdWx0IHZhbHVlIGZvciBhIHRh YmxlIGNvbHVtbiAqLwogCUVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxULCAvKiBkZWZhdWx0IHBh cmFtZXRlciB2YWx1ZSBmb3IgZnVuY3Rpb24gKi8KIAlFWFBSX0tJTkRfSU5ERVhfRVhQUkVTU0lP TiwgLyogaW5kZXggZXhwcmVzc2lvbiAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9jYXN0Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY2FzdC5vdXQKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjY2MTRiYTMzNzBjCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jYXN0Lm91dApAQCAtMCwwICsx LDY4MSBAQAorU0VUIGV4dHJhX2Zsb2F0X2RpZ2l0cyA9IDA7CistLSBDQVNUIERFRkFVTFQgT04g Q09OVkVSU0lPTiBFUlJPUgorVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdlciBFUlJPUiBP TiBDT05WRVJTSU9OIEVSUk9SKSk7IC0tZXJyb3IKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50 YXggZm9yIHR5cGUgaW50ZWdlcjogImVycm9yIgorTElORSAxOiBWQUxVRVMgKENBU1QoJ2Vycm9y JyBBUyBpbnRlZ2VyIEVSUk9SIE9OIENPTlZFUlNJT04gRVJST1IpKTsKKyAgICAgICAgICAgICAg ICAgICAgIF4KK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludGVnZXIgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSk7CisgY29sdW1uMSAKKy0tLS0tLS0tLQorICAgICAgICAKKygxIHJvdykKKwor VkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdlciBERUZBVUxUIDQyIE9OIENPTlZFUlNJT04g RVJST1IpKTsKKyBjb2x1bW4xIAorLS0tLS0tLS0tCisgICAgICA0MgorKDEgcm93KQorCitTRUxF Q1QgQ0FTVCgxIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGRh dGUgCistLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1QoMTo6bnVtZXJpYyBBUyBtb25l eSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5vdCBjYXN0 IHR5cGUgbnVtZXJpYyB0byBtb25leSB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZp ZWQgaW4gQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVCgx OjpudW1lcmljIEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEUuLi4KKyAgICAg ICAgICAgICAgICAgICAgXgorSElOVDogIEN1cnJlbnRseSBDQVNUIC4uLiBERUZBVUxUIE9OIENP TlZFUlNJT04gRVJST1IgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGNhc3QKK1NFTEVDVCBDQVNUKDEx MTEgQVMgImNoYXIiIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBjaGFyIAor LS0tLS0tCisgCisoMSByb3cpCisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHJldF9pbnQ4 KCkgUkVUVVJOUyBiaWdpbnQgQVMKKyQkCitCRUdJTiBSRVRVUk4gMjE0NzQ4MzY0ODsgRU5EOwor JCQKK0xBTkdVQUdFIHBscGdzcWwgSU1NVVRBQkxFOworU0VMRUNUIENBU1QoJ2EnIGFzIGludCBE RUZBVUxUIHJldF9pbnQ4KCkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAg aW50ZWdlciBvdXQgb2YgcmFuZ2UKK1NFTEVDVCBDQVNUKCdhJyBhcyBkYXRlIERFRkFVTFQgcmV0 X2ludDgoKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBjYW5ub3QgY29l cmNlIENBU1QgREVGQVVMVCBleHByZXNzaW9uIHRvIHR5cGUgZGF0ZQorTElORSAxOiBTRUxFQ1Qg Q0FTVCgnYScgYXMgZGF0ZSBERUZBVUxUIHJldF9pbnQ4KCkgT04gQ09OVkVSU0lPTiBFUlIuLi4K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSB0ZXN0IGFycmF5 IGNvZXJjZQorU0VMRUNUIENBU1QoYXJyYXlbMTEuMTJdIEFTIGludFtdIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKTsKKyBhcnJheSAKKy0tLS0tLS0KKyB7MTF9CisoMSByb3cpCisK K1NFTEVDVCBDQVNUKGFycmF5WzExLjEyXSBBUyBkYXRlW10gREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FT VChhcnJheVsxMTExMTExMTExMTExMTExMV0gQVMgaW50W10gREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FT VChhcnJheVtbJ2FiYyddLFs0NTZdXSBBUyBpbnRbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCd7 MTIzLGFiYyw0NTZ9JyBBUyBpbnRlZ2VyW10gREVGQVVMVCAney03ODl9JyBPTiBDT05WRVJTSU9O IEVSUk9SKTsKKyAgaW50NCAgCistLS0tLS0tLQorIHstNzg5fQorKDEgcm93KQorCitTRUxFQ1Qg Q0FTVCgnezIzNCxkZWYsNTY3fSc6OnRleHRbXSBBUyBpbnRlZ2VyW10gREVGQVVMVCAney0xMDEx fScgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgIGludDQgICAKKy0tLS0tLS0tLQorIHstMTAxMX0K KygxIHJvdykKKworU0VMRUNUIENBU1QoQVJSQVlbWycxJ10sIFsndGhyZWUnXSxbJ2EnXV0gQVMg SU5URUdFUltdIERFRkFVTFQgJ3sxLDJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBhcnJheSAK Ky0tLS0tLS0KKyB7MSwyfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnLCAnMidd LCBbJ3RocmVlJywgJ2EnXV0gQVMgdGV4dFtdIERFRkFVTFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJ T04gRVJST1IpOworICAgICAgIGFycmF5ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLQorIHt7 MSwyfSx7dGhyZWUsYX19CisoMSByb3cpCisKKy0tIHRlc3QgdmFsaWQgREVGQVVMVCBleHByZXNz aW9uIGZvciBDQVNUID0gT04gQ09OVkVSU0lPTiBFUlJPUgorQ1JFQVRFIE9SIFJFUExBQ0UgRlVO Q1RJT04gcmV0X3NldGludCgpIFJFVFVSTlMgU0VUT0YgaW50ZWdlciBBUworJCQKK0JFR0lOIFJF VFVSTiBRVUVSWSBFWEVDVVRFICdzZWxlY3QgMSB1bmlvbiBhbGwgc2VsZWN0IDEnOyBFTkQ7Cisk JAorTEFOR1VBR0UgcGxwZ3NxbCBJTU1VVEFCTEU7CitDUkVBVEUgVEFCTEUgdGNhc3QoYSB0ZXh0 W10sIGIgaW50IEdFTkVSQVRFRCBCWSBERUZBVUxUIEFTIElERU5USVRZLCBjIHRleHQgZGVmYXVs dCAnMScpOworSU5TRVJUIElOVE8gdGNhc3QgVkFMVUVTICgnezEyfScpLCAoJ3sxLGEsIGJ9Jyks ICgne3sxLDJ9LCB7YyxkfX0nKSwgKCd7MTN9Jyk7CitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERF RkFVTFQgcmV0X3NldGludCgpIE9OIENPTlZFUlNJT04gRVJST1IpIEZST00gdGNhc3Q7IC0tZXJy b3IKK0VSUk9SOiAgc2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIENB U1QgREVGQVVMVCBleHByZXNzaW9ucworTElORSAxOiBTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERF RkFVTFQgcmV0X3NldGludCgpIE9OIENPTlZFUlNJT04gRVIuLi4KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBz dW0oMSkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgYWdncmVnYXRlIGZ1 bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gQ0FTVCBERUZBVUxUIGV4cHJlc3Npb25zCitMSU5F IDE6IFNFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0oMSkgT04gQ09OVkVSU0lPTiBF UlJPUik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1Qg Q0FTVCgnYScgYXMgaW50IERFRkFVTFQgc3VtKDEpIG92ZXIoKSBPTiBDT05WRVJTSU9OIEVSUk9S KTsgLS1lcnJvcgorRVJST1I6ICB3aW5kb3cgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBD QVNUIERFRkFVTFQgZXhwcmVzc2lvbnMKK0xJTkUgMTogU0VMRUNUIENBU1QoJ2EnIGFzIGludCBE RUZBVUxUIHN1bSgxKSBvdmVyKCkgT04gQ09OVkVSU0lPTiBFLi4uCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQg J2InIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIGludmFsaWQgaW5wdXQg c3ludGF4IGZvciB0eXBlIGludGVnZXI6ICJiIgorTElORSAxOiBTRUxFQ1QgQ0FTVCgnYScgYXMg aW50IERFRkFVTFQgJ2InIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgorU0VMRUNUIENBU1QodCBBUyB0ZXh0W10gREVGQVVMVCAn ezIxLDIyLCAnIHx8IGIgfHwgJ30nIE9OIENPTlZFUlNJT04gRVJST1IpIEZST00gdGNhc3QgYXMg dDsKKyAgICAgdCAgICAgCistLS0tLS0tLS0tLQorIHsyMSwyMiwxfQorIHsyMSwyMiwyfQorIHsy MSwyMiwzfQorIHsyMSwyMiw0fQorKDQgcm93cykKKworU0VMRUNUIENBU1QodC5hIEFTIGludFtd IERFRkFVTFQgJ3syMSwyMn0nOjppbnRbXSB8fCBiIE9OIENPTlZFUlNJT04gRVJST1IpIEZST00g dGNhc3QgYXMgdDsKKyAgICAgYSAgICAgCistLS0tLS0tLS0tLQorIHsxMn0KKyB7MjEsMjIsMn0K KyB7MjEsMjIsM30KKyB7MTN9CisoNCByb3dzKQorCistLSB0ZXN0IHdpdGggZG9tYWluCitDUkVB VEUgRE9NQUlOIGRfaW50NDIgYXMgaW50IGNoZWNrICh2YWx1ZSA9IDQyKSBOT1QgTlVMTDsKK0NS RUFURSBET01BSU4gZF9jaGFyM19ub3RfbnVsbCBhcyBjaGFyKDMpIE5PVCBOVUxMOworQ1JFQVRF IERPTUFJTiBkX3ZhcmNoYXIgYXMgdmFyY2hhcigzKSBOT1QgTlVMTDsKK0NSRUFURSBUWVBFIGNv bXBfZG9tYWluX3dpdGhfdHlwbW9kIEFTIChhIGRfY2hhcjNfbm90X251bGwsIGIgaW50KTsKK0NS RUFURSBUWVBFIGNvbXAyIEFTIChhIGRfdmFyY2hhcik7CitTRUxFQ1QgQ0FTVCgnKE5VTEwpJyBB UyBjb21wMiBERUZBVUxUICcoMTIzMiknIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitF UlJPUjogIHZhbHVlIHRvbyBsb25nIGZvciB0eXBlIGNoYXJhY3RlciB2YXJ5aW5nKDMpCitMSU5F IDE6IFNFTEVDVCBDQVNUKCcoTlVMTCknIEFTIGNvbXAyIERFRkFVTFQgJygxMjMyKScgT04gQ09O VkVSU0lPTi4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KK1NFTEVDVCBDQVNUKCcoTlVMTCknIEFTIGNvbXAyIERFRkFVTFQgJygxMjMpJyBPTiBDT05W RVJTSU9OIEVSUk9SKTsgLS1vaworIGNvbXAyIAorLS0tLS0tLQorICgxMjMpCisoMSByb3cpCisK K1NFTEVDVCBDQVNUKDExIEFTIGRfaW50NDIgREVGQVVMVCA0MSBPTiBDT05WRVJTSU9OIEVSUk9S KTsgLS1lcnJvcgorRVJST1I6ICB2YWx1ZSBmb3IgZG9tYWluIGRfaW50NDIgdmlvbGF0ZXMgY2hl Y2sgY29uc3RyYWludCAiZF9pbnQ0Ml9jaGVjayIKK1NFTEVDVCBDQVNUKDExIEFTIGRfaW50NDIg REVGQVVMVCA0MiBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1vaworIGRfaW50NDIgCistLS0tLS0t LS0KKyAgICAgIDQyCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKE5VTEwgQVMgZF9pbnQ0MiBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgZG9tYWluIGRf aW50NDIgZG9lcyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMKK1NFTEVDVCBDQVNUKE5VTEwgQVMgZF9p bnQ0MiBERUZBVUxUIDQyIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLW9rCisgZF9pbnQ0MiAKKy0t LS0tLS0tLQorICAgICAgNDIKKygxIHJvdykKKworU0VMRUNUIENBU1QoJygsNDIpJyBBUyBjb21w X2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7Cisg Y29tcF9kb21haW5fd2l0aF90eXBtb2QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCiso MSByb3cpCisKK1NFTEVDVCBDQVNUKCcoTlVMTCw0MiknIEFTIGNvbXBfZG9tYWluX3dpdGhfdHlw bW9kIERFRkFVTFQgJygxLDIpJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBjb21wX2RvbWFpbl93 aXRoX3R5cG1vZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoIjEgICIsMikKKygxIHJv dykKKworU0VMRUNUIENBU1QoJyhOVUxMLDQyKScgQVMgY29tcF9kb21haW5fd2l0aF90eXBtb2Qg REVGQVVMVCAnKDEyMzQsMiknIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjog IHZhbHVlIHRvbyBsb25nIGZvciB0eXBlIGNoYXJhY3RlcigzKQorTElORSAxOiAuLi5TVCgnKE5V TEwsNDIpJyBBUyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxUICcoMTIzNCwyKScuLi4K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCistLS0tLXNhZmUgY2FzdCB3aXRoIGdlb21ldHJ5IGRhdGEgdHlwZQorU0VMRUNUIENB U1QoJygxLDIpJzo6cG9pbnQgQVMgYm94IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKKyAgICAgYm94ICAgICAKKy0tLS0tLS0tLS0tLS0KKyAoMSwyKSwoMSwyKQorKDEgcm93KQor CitTRUxFQ1QgQ0FTVCgnWyhOYU4sMSksKE5hTixpbmZpbml0eSldJzo6bHNlZyBBUyBwb2ludCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIHBvaW50ICAgICAgCistLS0t LS0tLS0tLS0tLS0tCisgKE5hTixJbmZpbml0eSkKKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1so MWUrMzAwLEluZmluaXR5KSwoMWUrMzAwLEluZmluaXR5KV0nOjpsc2VnIEFTIHBvaW50IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgICBwb2ludCAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0KKyAoMWUrMzAwLEluZmluaXR5KQorKDEgcm93KQorCitTRUxFQ1QgQ0FT VCgnWygxLDIpLCgzLDQpXSc6OnBhdGggYXMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7CisgcG9seWdvbiAKKy0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1Qg Q0FTVCgnKE5hTiwxLjAsTmFOLGluZmluaXR5KSc6OmJveCBBUyBwb2ludCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIHBvaW50ICAgICAgCistLS0tLS0tLS0tLS0tLS0t CisgKE5hTixJbmZpbml0eSkKKygxIHJvdykKKworU0VMRUNUIENBU1QoJygyLjAsMi4wLDAuMCww LjApJzo6Ym94IEFTIGxzZWcgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAg ICBsc2VnICAgICAgCistLS0tLS0tLS0tLS0tLS0KKyBbKDIsMiksKDAsMCldCisoMSByb3cpCisK K1NFTEVDVCBDQVNUKCcoMi4wLDIuMCwwLjAsMC4wKSc6OmJveCBBUyBwb2x5Z29uIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgICAgICBwb2x5Z29uICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKCgwLDApLCgwLDIpLCgyLDIpLCgyLDApKQor KDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKDIuMCwyLjAsMC4wLDAuMCknOjpib3ggQVMgcGF0aCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgcGF0aCAKKy0tLS0tLQorIAorKDEg cm93KQorCitTRUxFQ1QgQ0FTVCgnKDIuMCxpbmZpbml0eSxOYU4saW5maW5pdHkpJzo6Ym94IEFT IGNpcmNsZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgICAgIGNpcmNs ZSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgPChOYU4sSW5maW5pdHkpLE5hTj4K KygxIHJvdykKKworU0VMRUNUIENBU1QoJyhOYU4sMC4wKSwoMi4wLDQuMCksKDAuMCxpbmZpbml0 eSknOjpwb2x5Z29uIEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK KyAgICAgcG9pbnQgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyAoTmFOLEluZmluaXR5KQorKDEg cm93KQorCitTRUxFQ1QgQ0FTVCgnKDIuMCwwLjApLCgyLjAsNC4wKSwoMC4wLDAuMCknOjpwb2x5 Z29uIEFTIHBhdGggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICAgICBw YXRoICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoKDIsMCksKDIsNCksKDAsMCkp CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoMi4wLDAuMCksKDIuMCw0LjApLCgwLjAsMC4wKSc6 OnBvbHlnb24gQVMgYm94IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAg Ym94ICAgICAKKy0tLS0tLS0tLS0tLS0KKyAoMiw0KSwoMCwwKQorKDEgcm93KQorCitTRUxFQ1Qg Q0FTVCgnKE5hTixpbmZpbml0eSksKDIuMCw0LjApLCgwLjAsaW5maW5pdHkpJzo6cG9seWdvbiBB UyBjaXJjbGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICAgICBjaXJj bGUgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDwoTmFOLEluZmluaXR5KSxOYU4+ CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCc8KDUsMSksMz4nOjpjaXJjbGUgQVMgcG9pbnQgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIHBvaW50IAorLS0tLS0tLQorICg1LDEp CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCc8KDMsNSksMD4nOjpjaXJjbGUgYXMgYm94IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgYm94ICAgICAKKy0tLS0tLS0tLS0t LS0KKyAoMyw1KSwoMyw1KQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnPCgzLDUpLDA+Jzo6Y2ly Y2xlIGFzIHBvbHlnb24gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworRVJST1I6 ICBjYW5ub3QgY29udmVydCBjaXJjbGUgd2l0aCByYWRpdXMgemVybyB0byBwb2x5Z29uCitDT05U RVhUOiAgU1FMIGZ1bmN0aW9uICJwb2x5Z29uIiBzdGF0ZW1lbnQgMQorLS0tLS1zYWZlIGNhc3Qg ZnJvbS90byBtb25leSB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQsIGFsbCB0aGUgZm9sbG93aW5nIHdv dWxkIHJlc3VsdCBlcnJvcgorU0VMRUNUIENBU1QoTlVMTDo6aW50OCBBUyBtb25leSBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgYmln aW50IHRvIG1vbmV5IHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNU IC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKE5VTEw6OmludDgg QVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRS4uLgorICAgICAgICAgICAgICAg ICAgICBeCitISU5UOiAgQ3VycmVudGx5IENBU1QgLi4uIERFRkFVTFQgT04gQ09OVkVSU0lPTiBF UlJPUiBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgY2FzdAorU0VMRUNUIENBU1QoTlVMTDo6aW50NCBB UyBtb25leSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5v dCBjYXN0IHR5cGUgaW50ZWdlciB0byBtb25leSB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBz cGVjaWZpZWQgaW4gQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1Qg Q0FTVChOVUxMOjppbnQ0IEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEUuLi4K KyAgICAgICAgICAgICAgICAgICAgXgorSElOVDogIEN1cnJlbnRseSBDQVNUIC4uLiBERUZBVUxU IE9OIENPTlZFUlNJT04gRVJST1IgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGNhc3QKK1NFTEVDVCBD QVNUKE5VTEw6Om51bWVyaWMgQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpOworRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIG51bWVyaWMgdG8gbW9uZXkgd2hlbiBERUZB VUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJS T1IKK0xJTkUgMTogU0VMRUNUIENBU1QoTlVMTDo6bnVtZXJpYyBBUyBtb25leSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBDdXJyZW50 bHkgQ0FTVCAuLi4gREVGQVVMVCBPTiBDT05WRVJTSU9OIEVSUk9SIGRvZXMgbm90IHN1cHBvcnQg dGhpcyBjYXN0CitTRUxFQ1QgQ0FTVChOVUxMOjptb25leSBBUyBudW1lcmljIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBtb25leSB0 byBudW1lcmljIHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNUIC4u LiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKE5VTEw6Om1vbmV5IEFT IG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJTy4uLgorICAgICAgICAgICAgICAgICAg ICBeCitISU5UOiAgQ3VycmVudGx5IENBU1QgLi4uIERFRkFVTFQgT04gQ09OVkVSU0lPTiBFUlJP UiBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgY2FzdAorLyoKK3RoZSBmb2xsb3dpbmcgYXJlIHNhZmUg Y2FzdCB0ZXN0IHdpdGggdHlwZQoreworIGJ5dGVhLCBiaXQgY2hhcmFjdGVyLCB0ZXh0LCBjaGFy YWN0ZXItdmFyeWluZywKKyBpbmV0LCBtYWNhZGRyOAorIGludDIsIGludGVnZXIsIGJpZ2ludCwg bnVtZXJpYywgZmxvYXQ0LCBmbG9hdDgsCisgZGF0ZSwgaW50ZXJ2YWwsIHRpbWVzdGFtcHR6LCB0 aW1lc3RhbXAKKyBqc29uYgorfQorKi8KKy0tLS0tc2FmZSBjYXN0IGZyb20gYnl0ZWEgdHlwZSB0 byBvdGhlciB0eXBlCitTRUxFQ1QgQ0FTVCAoJ1x4MTEyMjMzNDQ1NTY2Nzc4ODk5Jzo6Ynl0ZWEg QVMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50OCAKKy0tLS0t LQorICAgICAKKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1x4MTIzNDU2Nzg5QSc6OmJ5dGVhIEFT IGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGludDQgCistLS0tLS0K KyAgICAgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdceDEyMzQ1Nic6OmJ5dGVhIEFTIGludDIg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGludDIgCistLS0tLS0KKyAgICAg CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcxMTExMTExMTExMDAwMDEnOjpiaXQoMTAwKSBBUyBJ TlQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGludDQgCistLS0tLS0KKyAg ICAgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUICgnMTExMTExMTExMTAwMDAxJzo6Yml0KDEwMCkg QVMgSU5UOCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50OCAKKy0tLS0t LQorICAgICAKKygxIHJvdykKKworc2VsZWN0IENBU1QoJ2EuYi5jLmQnOjp0ZXh0IGFzIHJlZ2Ns YXNzIGRlZmF1bHQgTlVMTCBvbiBjb252ZXJzaW9uIGVycm9yKTsKKyByZWdjbGFzcyAKKy0tLS0t LS0tLS0KKyAKKygxIHJvdykKKworQ1JFQVRFIFRBQkxFIHRlc3Rfc2FmZWNhc3QoY29sMCB0ZXh0 KTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QoY29sMCkgVkFMVUVTICgnPHZhbHVlPm9uZTwv dmFsdWUnKTsKK1NFTEVDVCBjb2wwIGFzIHRleHQsCisgICAgICAgQ0FTVChjb2wwIEFTIHJlZ2Ns YXNzIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19yZWdjbGFzcywKKyAg ICAgICBDQVNUKGNvbDAgQVMgcmVnY2xhc3MgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIElTIE5VTEwgYXMgZXhwZWN0X3RydWUsCisgICAgICAgQ0FTVChjb2wwIEFTICJjaGFyIiAg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2NoYXIsCisgICAgICAgQ0FT VChjb2wwIEFTIG5hbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX25h bWUsCisgICAgICAgQ0FTVChjb2wwIEFTIHhtbCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9feG1sCitGUk9NIHRlc3Rfc2FmZWNhc3Q7CisgICAgICAgdGV4dCAgICAgICAg fCB0b19yZWdjbGFzcyB8IGV4cGVjdF90cnVlIHwgdG9fY2hhciB8ICAgICAgdG9fbmFtZSAgICAg IHwgdG9feG1sIAorLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0KKyA8dmFsdWU+b25lPC92 YWx1ZSB8ICAgICAgICAgICAgIHwgdCAgICAgICAgICAgfCA8ICAgICAgIHwgPHZhbHVlPm9uZTwv dmFsdWUgfCAKKygxIHJvdykKKworLS0tLS1zYWZlIGNhc3QgZnJvbSBvdGhlciB0eXBlIHRvIGlu ZXQvY2lkcgorU0VMRUNUIENBU1QoJzE5Mi4xNjguMS54JyBhcyBpbmV0IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbmV0IAorLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVD VCBDQVNUKCcxOTIuMTY4LjEuMi8zMCcgYXMgY2lkciBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7CisgY2lkciAKKy0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnMjI6 MDA6NWM6MDg6NTU6MDg6MDE6MDInOjptYWNhZGRyOCBhcyBtYWNhZGRyIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKTsKKyBtYWNhZGRyIAorLS0tLS0tLS0tCisgCisoMSByb3cpCisK Ky0tLS0tc2FmZSBjYXN0IGZyb20gcmFuZ2UgdHlwZSB0byBvdGhlciB0eXBlCitTRUxFQ1QgQ0FT VCgnWzEsMl0nOjppbnQ0cmFuZ2UgQVMgaW50NG11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworIGludDRtdWx0aXJhbmdlIAorLS0tLS0tLS0tLS0tLS0tLQorIHtb MSwzKX0KKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1sxLDJdJzo6aW50OHJhbmdlIEFTIGludDht dWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ4bXVsdGly YW5nZSAKKy0tLS0tLS0tLS0tLS0tLS0KKyB7WzEsMyl9CisoMSByb3cpCisKK1NFTEVDVCBDQVNU KCdbMSwyXSc6Om51bXJhbmdlICBBUyBudW1tdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKTsKKyBudW1tdWx0aXJhbmdlIAorLS0tLS0tLS0tLS0tLS0tCisge1sxLDJd fQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnWy1pbmZpbml0eSxpbmZpbml0eV0nOjpkYXRlcmFu Z2UgQVMgZGF0ZW11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwor ICAgICBkYXRlbXVsdGlyYW5nZSAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7Wy1p bmZpbml0eSxpbmZpbml0eV19CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdbLWluZmluaXR5LGlu ZmluaXR5XSc6OnRzcmFuZ2UgQVMgdHNtdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKTsKKyAgICAgIHRzbXVsdGlyYW5nZSAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisge1staW5maW5pdHksaW5maW5pdHldfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgn Wy1pbmZpbml0eSxpbmZpbml0eV0nOjp0c3R6cmFuZ2UgQVMgdHN0em11bHRpcmFuZ2UgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICB0c3R6bXVsdGlyYW5nZSAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7Wy1pbmZpbml0eSxpbmZpbml0eV19CisoMSByb3cp CisKKy0tdGVzdCBjYXN0IG51bWVyaWMgdmFsdWUgd2l0aCBmcmFjdGlvbiB0byBhbm90aGVyIG51 bWVyaWMgdmFsdWUKK0NSRUFURSBUQUJMRSBzYWZlY2FzdChjb2wxIGZsb2F0NCwgY29sMiBmbG9h dDgsIGNvbDMgbnVtZXJpYywgY29sNCBudW1lcmljW10sCisgICAgICAgICAgICAgICAgICAgICAg ICBjb2w1IGludDIgZGVmYXVsdCAzMjc2NywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbDYg aW50NCBkZWZhdWx0IDMyNzY4LAorICAgICAgICAgICAgICAgICAgICAgICAgY29sNyBpbnQ4IGRl ZmF1bHQgNDI5NDk2NzI5Nik7CitJTlNFUlQgSU5UTyBzYWZlY2FzdCBWQUxVRVMoJzExLjEyMzQn LCAnMTEuMTIzNCcsICc5MjIzMzcyMDM2ODU0Nzc1ODA4JywgJ3sxMS4xMjM0fSc6Om51bWVyaWNb XSk7CitJTlNFUlQgSU5UTyBzYWZlY2FzdCBWQUxVRVMoJ2luZicsICdpbmYnLCAnaW5mJywgJ3sx MS4xMjM0LCAxMiwgaW5mLCBOYU59Jzo6bnVtZXJpY1tdKTsKK0lOU0VSVCBJTlRPIHNhZmVjYXN0 IFZBTFVFUygnLWluZicsICctaW5mJywgJy1pbmYnLCAnezExLjEyMzQsIDEyLCAtaW5mLCBOYU59 Jzo6bnVtZXJpY1tdKTsKK0lOU0VSVCBJTlRPIHNhZmVjYXN0IFZBTFVFUygnTmFOJywgJ05hTics ICdOYU4nLCAnezExLjEyMzQsIDEyLCAtaW5mLCBOYU59Jzo6bnVtZXJpY1tdKTsKK1NFTEVDVCBj b2w1IGFzIGludDIsCisgICAgICAgQ0FTVChjb2w1IEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChjb2w1IEFTIGludDQgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChj b2w1IEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAor ICAgICAgIENBU1QoY29sNSBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sNSBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDUgYXMgZmxv YXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAg ICAgQ0FTVChjb2w1IGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2w1IGFzIG51bWVyaWMoMTAsMSkgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gc2Fm ZWNhc3Q7CisgaW50MiAgfCB0b19pbnQyIHwgdG9faW50NCB8IHRvX29pZCB8IHRvX2ludDggfCB0 b19mbG9hdDQgfCB0b19mbG9hdDggfCB0b19udW1lcmljIHwgdG9fbnVtZXJpY19zY2FsZSAKKy0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIDMyNzY3IHwgICAz Mjc2NyB8ICAgMzI3NjcgfCAgMzI3NjcgfCAgIDMyNzY3IHwgICAgIDMyNzY3IHwgICAgIDMyNzY3 IHwgICAgICAzMjc2NyB8ICAgICAgICAgIDMyNzY3LjAKKyAzMjc2NyB8ICAgMzI3NjcgfCAgIDMy NzY3IHwgIDMyNzY3IHwgICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAgMzI3 NjcgfCAgICAgICAgICAzMjc2Ny4wCisgMzI3NjcgfCAgIDMyNzY3IHwgICAzMjc2NyB8ICAzMjc2 NyB8ICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgIDMyNzY3IHwgICAgICAg ICAgMzI3NjcuMAorIDMyNzY3IHwgICAzMjc2NyB8ICAgMzI3NjcgfCAgMzI3NjcgfCAgIDMyNzY3 IHwgICAgIDMyNzY3IHwgICAgIDMyNzY3IHwgICAgICAzMjc2NyB8ICAgICAgICAgIDMyNzY3LjAK Kyg0IHJvd3MpCisKK1NFTEVDVCBjb2w2IGFzIGludDQsCisgICAgICAgQ0FTVChjb2w2IEFTIGlu dDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAg Q0FTVChjb2w2IEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2ludDQsCisgICAgICAgQ0FTVChjb2w2IEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sNiBhcyBpbnQ4IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sNiBhcyBm bG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAg ICAgICBDQVNUKGNvbDYgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2w2IGFzIG51bWVyaWMgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2w2IGFz IG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251 bWVyaWNfc2NhbGUKK0ZST00gc2FmZWNhc3Q7CisgaW50NCAgfCB0b19pbnQyIHwgdG9faW50NCB8 IHRvX29pZCB8IHRvX2ludDggfCB0b19mbG9hdDQgfCB0b19mbG9hdDggfCB0b19udW1lcmljIHwg dG9fbnVtZXJpY19zY2FsZSAKKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLQorIDMyNzY4IHwgICAgICAgICB8ICAgMzI3NjggfCAgMzI3NjggfCAgIDMyNzY4IHwg ICAgIDMyNzY4IHwgICAgIDMyNzY4IHwgICAgICAzMjc2OCB8ICAgICAgICAgIDMyNzY4LjAKKyAz Mjc2OCB8ICAgICAgICAgfCAgIDMyNzY4IHwgIDMyNzY4IHwgICAzMjc2OCB8ICAgICAzMjc2OCB8 ICAgICAzMjc2OCB8ICAgICAgMzI3NjggfCAgICAgICAgICAzMjc2OC4wCisgMzI3NjggfCAgICAg ICAgIHwgICAzMjc2OCB8ICAzMjc2OCB8ICAgMzI3NjggfCAgICAgMzI3NjggfCAgICAgMzI3Njgg fCAgICAgIDMyNzY4IHwgICAgICAgICAgMzI3NjguMAorIDMyNzY4IHwgICAgICAgICB8ICAgMzI3 NjggfCAgMzI3NjggfCAgIDMyNzY4IHwgICAgIDMyNzY4IHwgICAgIDMyNzY4IHwgICAgICAzMjc2 OCB8ICAgICAgICAgIDMyNzY4LjAKKyg0IHJvd3MpCisKK1NFTEVDVCBjb2w3IGFzIGludDgsCisg ICAgICAgQ0FTVChjb2w3IEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChjb2w3IEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2w3IEFTIG9pZCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29s NyBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAor ICAgICAgIENBU1QoY29sNyBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDcgYXMgZmxvYXQ4IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2w3IGFz IG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMs CisgICAgICAgQ0FTVChjb2w3IGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gc2FmZWNhc3Q7CisgICAgaW50 OCAgICB8IHRvX2ludDIgfCB0b19pbnQ0IHwgdG9fb2lkIHwgIHRvX2ludDggICB8ICB0b19mbG9h dDQgIHwgdG9fZmxvYXQ4ICB8IHRvX251bWVyaWMgfCB0b19udW1lcmljX3NjYWxlIAorLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyA0Mjk0 OTY3Mjk2IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCA0Mjk0OTY3Mjk2IHwgNC4yOTQ5 N2UrMDkgfCA0Mjk0OTY3Mjk2IHwgNDI5NDk2NzI5NiB8ICAgICAgICAgICAgICAgICAKKyA0Mjk0 OTY3Mjk2IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCA0Mjk0OTY3Mjk2IHwgNC4yOTQ5 N2UrMDkgfCA0Mjk0OTY3Mjk2IHwgNDI5NDk2NzI5NiB8ICAgICAgICAgICAgICAgICAKKyA0Mjk0 OTY3Mjk2IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCA0Mjk0OTY3Mjk2IHwgNC4yOTQ5 N2UrMDkgfCA0Mjk0OTY3Mjk2IHwgNDI5NDk2NzI5NiB8ICAgICAgICAgICAgICAgICAKKyA0Mjk0 OTY3Mjk2IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCA0Mjk0OTY3Mjk2IHwgNC4yOTQ5 N2UrMDkgfCA0Mjk0OTY3Mjk2IHwgNDI5NDk2NzI5NiB8ICAgICAgICAgICAgICAgICAKKyg0IHJv d3MpCisKK1NFTEVDVCBjb2wzIGFzIG51bWVyaWMsCisgICAgICAgQ0FTVChjb2wzIEFTIGludDIg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FT VChjb2wzIEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2lu dDQsCisgICAgICAgQ0FTVChjb2wzIEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sMyBhcyBpbnQ4IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sMyBhcyBmbG9h dDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAg ICBDQVNUKGNvbDMgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wzIGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2wzIGFzIG51 bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVy aWNfc2NhbGUKK0ZST00gc2FmZWNhc3Q7CisgICAgICAgbnVtZXJpYyAgICAgICB8IHRvX2ludDIg fCB0b19pbnQ0IHwgdG9fb2lkIHwgdG9faW50OCB8ICB0b19mbG9hdDQgIHwgICAgICB0b19mbG9h dDggICAgICAgfCAgICAgdG9fbnVtZXJpYyAgICAgIHwgdG9fbnVtZXJpY19zY2FsZSAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLQorIDkyMjMzNzIwMzY4NTQ3NzU4MDggfCAgICAgICAgIHwgICAg ICAgICB8ICAgICAgICB8ICAgICAgICAgfCA5LjIyMzM3ZSsxOCB8IDkuMjIzMzcyMDM2ODU0Nzhl KzE4IHwgOTIyMzM3MjAzNjg1NDc3NTgwOCB8ICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg IEluZmluaXR5IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwgICAgSW5m aW5pdHkgfCAgICAgICAgICAgICBJbmZpbml0eSB8ICAgICAgICAgICAgSW5maW5pdHkgfCAgICAg ICAgICAgICAgICAgCisgICAgICAgICAgIC1JbmZpbml0eSB8ICAgICAgICAgfCAgICAgICAgIHwg ICAgICAgIHwgICAgICAgICB8ICAgLUluZmluaXR5IHwgICAgICAgICAgICAtSW5maW5pdHkgfCAg ICAgICAgICAgLUluZmluaXR5IHwgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICBO YU4gfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIE5hTiB8 ICAgICAgICAgICAgICAgICAgTmFOIHwgICAgICAgICAgICAgICAgIE5hTiB8ICAgICAgICAgICAg ICBOYU4KKyg0IHJvd3MpCisKK1NFTEVDVCBjb2w0IGFzIG51bV9hcnIsCisgICAgICAgQ0FTVChj b2w0IEFTIGludDJbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgaW50MmFy ciwKKyAgICAgICBDQVNUKGNvbDQgQVMgaW50NFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyBpbnQ0YXJyLAorICAgICAgIENBU1QoY29sNCBhcyBpbnQ4W10gREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGludDhhcnIsCisgICAgICAgQ0FTVChjb2w0IGFz IGZsb2F0NFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBmNGFyciwKKyAg ICAgICBDQVNUKGNvbDQgYXMgZmxvYXQ4W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIGY4YXJyLAorICAgICAgIENBU1QoY29sNCBhcyBudW1lcmljKDEwLDEpW10gREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIG51bWFycgorRlJPTSBzYWZlY2FzdDsKKyAg ICAgICAgICBudW1fYXJyICAgICAgICAgICB8IGludDJhcnIgfCBpbnQ0YXJyIHwgaW50OGFyciB8 ICAgICAgICAgICBmNGFyciAgICAgICAgICAgIHwgICAgICAgICAgIGY4YXJyICAgICAgICAgICAg fCBudW1hcnIgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLQorIHsxMS4xMjM0fSAgICAgICAgICAgICAgICAgIHwgezEx fSAgICB8IHsxMX0gICAgfCB7MTF9ICAgIHwgezExLjEyMzR9ICAgICAgICAgICAgICAgICAgfCB7 MTEuMTIzNH0gICAgICAgICAgICAgICAgICB8IHsxMS4xfQorIHsxMS4xMjM0LDEyLEluZmluaXR5 LE5hTn0gIHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIHwgezExLjEyMzQsMTIsSW5maW5p dHksTmFOfSAgfCB7MTEuMTIzNCwxMixJbmZpbml0eSxOYU59ICB8IAorIHsxMS4xMjM0LDEyLC1J bmZpbml0eSxOYU59IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIHwgezExLjEyMzQsMTIs LUluZmluaXR5LE5hTn0gfCB7MTEuMTIzNCwxMiwtSW5maW5pdHksTmFOfSB8IAorIHsxMS4xMjM0 LDEyLC1JbmZpbml0eSxOYU59IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIHwgezExLjEy MzQsMTIsLUluZmluaXR5LE5hTn0gfCB7MTEuMTIzNCwxMiwtSW5maW5pdHksTmFOfSB8IAorKDQg cm93cykKKworU0VMRUNUIGNvbDEgYXMgZmxvYXQ0LAorICAgICAgIENBU1QoY29sMSBBUyBpbnQy IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENB U1QoY29sMSBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19p bnQ0LAorICAgICAgIENBU1QoY29sMSBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDEgYXMgaW50OCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDEgYXMgZmxv YXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAg ICAgQ0FTVChjb2wxIGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sMSBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sMSBhcyBu dW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1l cmljX3NjYWxlCitGUk9NIHNhZmVjYXN0OworICBmbG9hdDQgICB8IHRvX2ludDIgfCB0b19pbnQ0 IHwgdG9fb2lkIHwgdG9faW50OCB8IHRvX2Zsb2F0NCB8ICAgIHRvX2Zsb2F0OCAgICAgfCB0b19u dW1lcmljIHwgdG9fbnVtZXJpY19zY2FsZSAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgICAxMS4xMjM0IHwgICAgICAxMSB8ICAgICAg MTEgfCAgICAgICAgfCAgICAgIDExIHwgICAxMS4xMjM0IHwgMTEuMTIzMzk5NzM0NDk3MSB8ICAg IDExLjEyMzQgfCAgICAgICAgICAgICAxMS4xCisgIEluZmluaXR5IHwgICAgICAgICB8ICAgICAg ICAgfCAgICAgICAgfCAgICAgICAgIHwgIEluZmluaXR5IHwgICAgICAgICBJbmZpbml0eSB8ICAg SW5maW5pdHkgfCAgICAgICAgICAgICAgICAgCisgLUluZmluaXR5IHwgICAgICAgICB8ICAgICAg ICAgfCAgICAgICAgfCAgICAgICAgIHwgLUluZmluaXR5IHwgICAgICAgIC1JbmZpbml0eSB8ICAt SW5maW5pdHkgfCAgICAgICAgICAgICAgICAgCisgICAgICAgTmFOIHwgICAgICAgICB8ICAgICAg ICAgfCAgICAgICAgfCAgICAgICAgIHwgICAgICAgTmFOIHwgICAgICAgICAgICAgIE5hTiB8ICAg ICAgICBOYU4gfCAgICAgICAgICAgICAgTmFOCisoNCByb3dzKQorCitTRUxFQ1QgY29sMiBhcyBm bG9hdDgsCisgICAgICAgQ0FTVChjb2wyIEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChjb2wyIEFTIGludDQgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2wyIEFT IG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAg IENBU1QoY29sMiBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19pbnQ4LAorICAgICAgIENBU1QoY29sMiBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDIgYXMgZmxvYXQ4IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FT VChjb2wyIGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X251bWVyaWMsCisgICAgICAgQ0FTVChjb2wyIGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gc2FmZWNhc3Q7 CisgIGZsb2F0OCAgIHwgdG9faW50MiB8IHRvX2ludDQgfCB0b19vaWQgfCB0b19pbnQ4IHwgdG9f ZmxvYXQ0IHwgdG9fZmxvYXQ4IHwgdG9fbnVtZXJpYyB8IHRvX251bWVyaWNfc2NhbGUgCistLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgICAxMS4xMjM0 IHwgICAgICAxMSB8ICAgICAgMTEgfCAgICAgICAgfCAgICAgIDExIHwgICAxMS4xMjM0IHwgICAx MS4xMjM0IHwgICAgMTEuMTIzNCB8ICAgICAgICAgICAgIDExLjEKKyAgSW5maW5pdHkgfCAgICAg ICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAgSW5maW5pdHkgfCAgSW5maW5pdHkg fCAgIEluZmluaXR5IHwgICAgICAgICAgICAgICAgIAorIC1JbmZpbml0eSB8ICAgICAgICAgfCAg ICAgICAgIHwgICAgICAgIHwgICAgICAgICB8IC1JbmZpbml0eSB8IC1JbmZpbml0eSB8ICAtSW5m aW5pdHkgfCAgICAgICAgICAgICAgICAgCisgICAgICAgTmFOIHwgICAgICAgICB8ICAgICAgICAg fCAgICAgICAgfCAgICAgICAgIHwgICAgICAgTmFOIHwgICAgICAgTmFOIHwgICAgICAgIE5hTiB8 ICAgICAgICAgICAgICBOYU4KKyg0IHJvd3MpCisKKy0tdGVzdCBkYXRlL3RpbWVzdGFtcC9pbnRl cnZhbCByZWFsdGVkIGNhc3QKK0NSRUFURSBUQUJMRSBzYWZlY2FzdDEoY29sMCBkYXRlLCBjb2wx IHRpbWVzdGFtcCwgY29sMiB0aW1lc3RhbXB0eiwgY29sMyBpbnRlcnZhbCwgY29sNCB0aW1lLCBj b2w1IHRpbWV0eik7CitpbnNlcnQgaW50byBzYWZlY2FzdDEgVkFMVUVTCisoJy1pbmZpbml0eScs ICctaW5maW5pdHknLCAnLWluZmluaXR5JywgJy1pbmZpbml0eScsCisgICcyMDAzLTAzLTA3IDE1 OjM2OjM5IEFtZXJpY2EvTmV3X1lvcmsnLCAnMjAwMy0wNy0wNyAxNTozNjozOSBBbWVyaWNhL05l d19Zb3JrJyksCisoJy1pbmZpbml0eScsICdpbmZpbml0eScsICdpbmZpbml0eScsICdpbmZpbml0 eScsCisgICcxMTo1OTo1OS45OSBQTScsICcxMTo1OTo1OS45OSBQTSBQRFQnKTsKK1NFTEVDVCBj b2wwIGFzIGRhdGUsCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWVzdGFtcHR6IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNv bDAgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0ZSwK KyAgICAgICBDQVNUKGNvbDAgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWV0eiBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sMCBBUyB0 aW1lc3RhbXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVz dGFtcF9zY2FsZQorRlJPTSBzYWZlY2FzdDE7CisgICBkYXRlICAgIHwgdG9fdGltZXN0YW1wdHog fCAgdG9fZGF0ZSAgfCB0b190aW1lcyB8IHRvX3RpbWV0eiB8IHRvX3RpbWVzdGFtcF9zY2FsZSAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIC1pbmZpbml0eSB8IC1pbmZpbml0eSAgICAg IHwgLWluZmluaXR5IHwgICAgICAgICAgfCAgICAgICAgICAgfCAtaW5maW5pdHkKKyAtaW5maW5p dHkgfCAtaW5maW5pdHkgICAgICB8IC1pbmZpbml0eSB8ICAgICAgICAgIHwgICAgICAgICAgIHwg LWluZmluaXR5CisoMiByb3dzKQorCitTRUxFQ1QgY29sMSBhcyB0aW1lc3RhbXAsCisgICAgICAg Q0FTVChjb2wxIEFTIHRpbWVzdGFtcHR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDEgQVMgZGF0ZSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0ZSwKKyAgICAgICBDQVNUKGNvbDEgQVMg dGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAg ICAgQ0FTVChjb2wxIEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sMSBBUyB0aW1lc3RhbXAoMikgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcF9zY2FsZQorRlJPTSBzYWZl Y2FzdDE7CisgdGltZXN0YW1wIHwgdG9fdGltZXN0YW1wdHogfCAgdG9fZGF0ZSAgfCB0b190aW1l cyB8IHRvX3RpbWV0eiB8IHRvX3RpbWVzdGFtcF9zY2FsZSAKKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLQorIC1pbmZpbml0eSB8IC1pbmZpbml0eSAgICAgIHwgLWluZmluaXR5IHwgICAgICAg ICAgfCAgICAgICAgICAgfCAtaW5maW5pdHkKKyBpbmZpbml0eSAgfCBpbmZpbml0eSAgICAgICB8 IGluZmluaXR5ICB8ICAgICAgICAgIHwgICAgICAgICAgIHwgaW5maW5pdHkKKygyIHJvd3MpCisK K1NFTEVDVCBjb2wyIGFzIHRpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMiBBUyB0aW1lc3Rh bXB0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wdHos CisgICAgICAgQ0FTVChjb2wyIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX2RhdGUsCisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWUgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sMiBBUyB0aW1l dHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAg ICBDQVNUKGNvbDIgQVMgdGltZXN0YW1wKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b190aW1lc3RhbXBfc2NhbGUKK0ZST00gc2FmZWNhc3QxOworIHRpbWVzdGFtcHR6 IHwgdG9fdGltZXN0YW1wdHogfCAgdG9fZGF0ZSAgfCB0b190aW1lcyB8IHRvX3RpbWV0eiB8IHRv X3RpbWVzdGFtcF9zY2FsZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgLWluZmlu aXR5ICAgfCAtaW5maW5pdHkgICAgICB8IC1pbmZpbml0eSB8ICAgICAgICAgIHwgICAgICAgICAg IHwgLWluZmluaXR5CisgaW5maW5pdHkgICAgfCBpbmZpbml0eSAgICAgICB8IGluZmluaXR5ICB8 ICAgICAgICAgIHwgICAgICAgICAgIHwgaW5maW5pdHkKKygyIHJvd3MpCisKK1NFTEVDVCBjb2wz IGFzIGludGVydmFsLAorICAgICAgIENBU1QoY29sMyBBUyB0aW1lc3RhbXB0eiBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wdHosCisgICAgICAgQ0FTVChj b2wzIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2RhdGUs CisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sMyBBUyB0aW1ldHogREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDMgQVMg dGltZXN0YW1wKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1l c3RhbXBfc2NhbGUsCisgICAgICAgQ0FTVChjb2wzIEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbF9zY2FsZQorRlJPTSBzYWZlY2Fz dDE7CisgaW50ZXJ2YWwgIHwgdG9fdGltZXN0YW1wdHogfCB0b19kYXRlIHwgdG9fdGltZXMgfCB0 b190aW1ldHogfCB0b190aW1lc3RhbXBfc2NhbGUgfCB0b19pbnRlcnZhbF9zY2FsZSAKKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLQorIC1pbmZpbml0eSB8ICAg ICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgIHwgLWluZmluaXR5CisgaW5maW5pdHkgIHwgICAgICAgICAgICAgICAgfCAgICAg ICAgIHwgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCBpbmZpbml0 eQorKDIgcm93cykKKworU0VMRUNUIGNvbDQgYXMgdGltZSwKKyAgICAgICBDQVNUKGNvbDQgQVMg dGltZSgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisg ICAgICAgQ0FTVChjb2w0IEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sNCBBUyBpbnRlcnZhbCgyKSBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWwsCisgICAgICAgQ0FTVChj b2w0IEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19pbnRlcnZhbF9zY2FsZQorRlJPTSBzYWZlY2FzdDE7CisgICAgdGltZSAgICAgfCAgdG9fdGlt ZXMgICB8ICAgdG9fdGltZXR6ICAgIHwgICAgICAgICAgdG9faW50ZXJ2YWwgICAgICAgICAgfCAg ICAgICB0b19pbnRlcnZhbF9zY2FsZSAgICAgICAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDE1OjM2OjM5ICAgIHwgMTU6MzY6MzkgICAgfCAx NTozNjozOS0wNyAgICB8IEAgMTUgaG91cnMgMzYgbWlucyAzOSBzZWNzICAgIHwgQCAxNSBob3Vy cyAzNiBtaW5zIDM5IHNlY3MKKyAyMzo1OTo1OS45OSB8IDIzOjU5OjU5Ljk5IHwgMjM6NTk6NTku OTktMDcgfCBAIDIzIGhvdXJzIDU5IG1pbnMgNTkuOTkgc2VjcyB8IEAgMjMgaG91cnMgNTkgbWlu cyA1OS45OSBzZWNzCisoMiByb3dzKQorCitTRUxFQ1QgY29sNSBhcyB0aW1ldHosCisgICAgICAg Q0FTVChjb2w1IEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X3RpbWUsCisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWUoMikgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX3RpbWVfc2NhbGUsCisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWV0 eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAg IENBU1QoY29sNSBBUyB0aW1ldHooNikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX3RpbWV0el9zY2FsZSwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50ZXJ2YWwgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsLAorICAgICAgIENBU1Qo Y29sNSBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9faW50ZXJ2YWxfc2NhbGUKK0ZST00gc2FmZWNhc3QxOworICAgICB0aW1ldHogICAgIHwgICB0 b190aW1lICAgfCB0b190aW1lX3NjYWxlIHwgICB0b190aW1ldHogICAgfCB0b190aW1ldHpfc2Nh bGUgfCB0b19pbnRlcnZhbCB8IHRvX2ludGVydmFsX3NjYWxlIAorLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLQorIDE1OjM2OjM5LTA0ICAg IHwgMTU6MzY6MzkgICAgfCAxNTozNjozOSAgICAgIHwgMTU6MzY6MzktMDQgICAgfCAxNTozNjoz OS0wNCAgICAgfCAgICAgICAgICAgICB8IAorIDIzOjU5OjU5Ljk5LTA3IHwgMjM6NTk6NTkuOTkg fCAyMzo1OTo1OS45OSAgIHwgMjM6NTk6NTkuOTktMDcgfCAyMzo1OTo1OS45OS0wNyAgfCAgICAg ICAgICAgICB8IAorKDIgcm93cykKKworQ1JFQVRFIFRFTVAgVEFCTEUgdGVzdF9zYWZlY2FzdDEo Y29sMCBqc29uYik7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0MShjb2wwKSBWQUxVRVMgKCci dGVzdCInKTsKK1NFTEVDVCBjb2wwIGFzIGpzb25iLAorICAgICAgIENBU1QoY29sMCBBUyBpbnRl Z2VyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlZ2VyLAorICAg ICAgIENBU1QoY29sMCBBUyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sMCBBUyBiaWdpbnQgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2wwIEFTIGZs b2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAg ICAgIENBU1QoY29sMCBBUyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDAgQVMgYm9vbGVhbiBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fYm9vbCwKKyAgICAgICBDQVNUKGNvbDAgQVMgc21h bGxpbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3NtYWxsaW50CitG Uk9NIHRlc3Rfc2FmZWNhc3QxOworIGpzb25iICB8IHRvX2ludGVnZXIgfCB0b19udW1lcmljIHwg dG9faW50OCB8IHRvX2Zsb2F0NCB8IHRvX2Zsb2F0OCB8IHRvX2Jvb2wgfCB0b19zbWFsbGludCAK Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgInRlc3QiIHwgICAgICAgICAg ICB8ICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAg ICB8ICAgICAgICAgICAgCisoMSByb3cpCisKKy0tIHRlc3QgZGVwYXJzZQorQ1JFQVRFIERPTUFJ TiBkX2ludF9hcnIgYXMgaW50W107CitDUkVBVEUgVklFVyBzYWZlY2FzdHZpZXcgQVMKK1NFTEVD VCBDQVNUKCcxMjM0JyBhcyBjaGFyKDMpIERFRkFVTFQgLTExMTEgT04gQ09OVkVSU0lPTiBFUlJP UiksCisgICAgICAgQ0FTVCgxIGFzIGRhdGUgREVGQVVMVCAoKG5vdygpOjpkYXRlICsgcmFuZG9t KG1pbj0+MSwgbWF4PT4xOjppbnQpKSkgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgc2FmZWNhc3Qs CisgICAgICAgQ0FTVChBUlJBWVtbJzEnXSwgWyd0aHJlZSddLFsnYSddXSBBUyBJTlRFR0VSW10g REVGQVVMVCAnezEsMn0nIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3QxLAorICAgICAgIENB U1QoQVJSQVlbWycxJywgJzInXSwgWyd0aHJlZScsICdhJ11dIEFTIHRleHRbXSBERUZBVUxUICd7 MjEsMjJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MjsKK1xzdiBzYWZlY2FzdHZpZXcK K0NSRUFURSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLnNhZmVjYXN0dmlldyBBUworIFNFTEVDVCBD QVNUKCcxMjM0JyBBUyBjaGFyYWN0ZXIoMykgREVGQVVMVCAnLTExMTEnOjppbnRlZ2VyOjpjaGFy YWN0ZXIoMykgT04gQ09OVkVSU0lPTiBFUlJPUikgQVMgYnBjaGFyLAorICAgIENBU1QoMSBBUyBk YXRlIERFRkFVTFQgbm93KCk6OmRhdGUgKyByYW5kb20obWluID0+IDEsIG1heCA9PiAxKSBPTiBD T05WRVJTSU9OIEVSUk9SKSBBUyBzYWZlY2FzdCwKKyAgICBDQVNUKEFSUkFZW0FSUkFZWzFdLCBB UlJBWVsndGhyZWUnOjp0ZXh0XSwgQVJSQVlbJ2EnOjp0ZXh0XV0gQVMgaW50ZWdlcltdIERFRkFV TFQgJ3sxLDJ9Jzo6aW50ZWdlcltdIE9OIENPTlZFUlNJT04gRVJST1IpIEFTIGNhc3QxLAorICAg IENBU1QoQVJSQVlbQVJSQVlbJzEnOjp0ZXh0LCAnMic6OnRleHRdLCBBUlJBWVsndGhyZWUnOjp0 ZXh0LCAnYSc6OnRleHRdXSBBUyB0ZXh0W10gREVGQVVMVCAnezIxLDIyfSc6OnRleHRbXSBPTiBD T05WRVJTSU9OIEVSUk9SKSBBUyBjYXN0MgorQ1JFQVRFIFZJRVcgc2FmZWNhc3R2aWV3MSBBUwor U0VMRUNUIENBU1QoQVJSQVlbWycxJ10sIFsndGhyZWUnXSxbJ2EnXV0gQVMgZF9pbnRfYXJyIERF RkFVTFQgJ3sxLDJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MSwKKyAgICAgICBDQVNU KEFSUkFZW1snMScsICcyJ10sIFsndGhyZWUnLCAnYSddXSBBUyBkX2ludF9hcnIgREVGQVVMVCAn ezIxLDIyfScgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDI7Citcc3Ygc2FmZWNhc3R2aWV3 MQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBwdWJsaWMuc2FmZWNhc3R2aWV3MSBBUworIFNFTEVD VCBDQVNUKEFSUkFZW0FSUkFZWzFdLCBBUlJBWVsndGhyZWUnOjp0ZXh0XSwgQVJSQVlbJ2EnOjp0 ZXh0XV0gQVMgZF9pbnRfYXJyIERFRkFVTFQgJ3sxLDJ9Jzo6aW50ZWdlcltdOjpkX2ludF9hcnIg T04gQ09OVkVSU0lPTiBFUlJPUikgQVMgY2FzdDEsCisgICAgQ0FTVChBUlJBWVtBUlJBWVsxLCAy XSwgQVJSQVlbJ3RocmVlJzo6dGV4dCwgJ2EnOjp0ZXh0XV0gQVMgZF9pbnRfYXJyIERFRkFVTFQg J3syMSwyMn0nOjppbnRlZ2VyW106OmRfaW50X2FyciBPTiBDT05WRVJTSU9OIEVSUk9SKSBBUyBj YXN0MgorU0VMRUNUICogRlJPTSBzYWZlY2FzdHZpZXcxOworIGNhc3QxIHwgIGNhc3QyICAKKy0t LS0tLS0rLS0tLS0tLS0tCisgezEsMn0gfCB7MjEsMjJ9CisoMSByb3cpCisKK0NSRUFURSBJTkRF WCBjYXN0X2Vycm9yX2lkeCAgT04gdGNhc3QoKGNhc3QoYyBhcyBpbnQgREVGQVVMVCByYW5kb20o bWluPT4xLCBtYXg9PjEpIE9OIENPTlZFUlNJT04gRVJST1IpKSk7IC0tZXJyb3IKK0VSUk9SOiAg ZnVuY3Rpb25zIGluIGluZGV4IGV4cHJlc3Npb24gbXVzdCBiZSBtYXJrZWQgSU1NVVRBQkxFCitS RVNFVCBleHRyYV9mbG9hdF9kaWdpdHM7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2NyZWF0ZV9jYXN0Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRl X2Nhc3Qub3V0CmluZGV4IDBlNjk2NDRiY2EyLi4zOGVhYjQ1MzM0NCAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfY2FzdC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9jcmVhdGVfY2FzdC5vdXQKQEAgLTg4LDYgKzg4LDExIEBAIFNFTEVDVCAx MjM0OjppbnQ0OjpjYXN0dGVzdHR5cGU7IC0tIFNob3VsZCB3b3JrIG5vdwogIGJhcjEyMzQKICgx IHJvdykKIAorU0VMRUNUIENBU1QoMTIzNDo6aW50NCBBUyBjYXN0dGVzdHR5cGUgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgorRVJST1I6ICBjYW5ub3QgY2FzdCB0 eXBlIGludGVnZXIgdG8gY2FzdHRlc3R0eXBlIHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNw ZWNpZmllZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBD QVNUKDEyMzQ6OmludDQgQVMgY2FzdHRlc3R0eXBlIERFRkFVTFQgTlVMTCBPTiBDT05WRS4uLgor ICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAgQ3VycmVudGx5IENBU1QgLi4uIERFRkFVTFQg T04gQ09OVkVSU0lPTiBFUlJPUiBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgY2FzdAogLS0gY2hlY2sg ZGVwZW5kZW5jaWVzIGdlbmVyYXRlZCBmb3IgdGhhdAogU0VMRUNUIHBnX2Rlc2NyaWJlX29iamVj dChjbGFzc2lkLCBvYmppZCwgb2Jqc3ViaWQpIGFzIG9iaiwKICAgICAgICBwZ19kZXNjcmliZV9v YmplY3QocmVmY2xhc3NpZCwgcmVmb2JqaWQsIHJlZm9ianN1YmlkKSBhcyBvYmpyZWYsCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dAppbmRleCBhMzU3ZTFkMGMwZS4uODFl YTI0NDg1OWYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0 eS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dApAQCAt OTQzLDggKzk0Myw4IEBAIFNFTEVDVCAqCiBGUk9NIHBnX2Nhc3QgYwogV0hFUkUgY2FzdHNvdXJj ZSA9IDAgT1IgY2FzdHRhcmdldCA9IDAgT1IgY2FzdGNvbnRleHQgTk9UIElOICgnZScsICdhJywg J2knKQogICAgIE9SIGNhc3RtZXRob2QgTk9UIElOICgnZicsICdiJyAsJ2knKTsKLSBvaWQgfCBj YXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0 aG9kIAotLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tCisgb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0 ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8IGNhc3RlcnJvcnNhZmUgCistLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBDaGVjayB0aGF0IGNhc3RmdW5j IGlzIG5vbnplcm8gb25seSBmb3IgY2FzdCBtZXRob2RzIHRoYXQgbmVlZCBhIGZ1bmN0aW9uLApA QCAtOTUzLDggKzk1Myw4IEBAIFNFTEVDVCAqCiBGUk9NIHBnX2Nhc3QgYwogV0hFUkUgKGNhc3Rt ZXRob2QgPSAnZicgQU5EIGNhc3RmdW5jID0gMCkKICAgIE9SIChjYXN0bWV0aG9kIElOICgnYics ICdpJykgQU5EIGNhc3RmdW5jIDw+IDApOwotIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0 IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgCi0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBv aWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBj YXN0bWV0aG9kIHwgY2FzdGVycm9yc2FmZSAKKy0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0K ICgwIHJvd3MpCiAKIC0tIExvb2sgZm9yIGNhc3RzIHRvL2Zyb20gdGhlIHNhbWUgdHlwZSB0aGF0 IGFyZW4ndCBsZW5ndGggY29lcmNpb24gZnVuY3Rpb25zLgpAQCAtOTYzLDE1ICs5NjMsMTUgQEAg V0hFUkUgKGNhc3RtZXRob2QgPSAnZicgQU5EIGNhc3RmdW5jID0gMCkKIFNFTEVDVCAqCiBGUk9N IHBnX2Nhc3QgYwogV0hFUkUgY2FzdHNvdXJjZSA9IGNhc3R0YXJnZXQgQU5EIGNhc3RmdW5jID0g MDsKLSBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRl eHQgfCBjYXN0bWV0aG9kIAotLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0 YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8IGNhc3RlcnJvcnNh ZmUgCistLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiBTRUxFQ1QgYy4q CiBGUk9NIHBnX2Nhc3QgYywgcGdfcHJvYyBwCiBXSEVSRSBjLmNhc3RmdW5jID0gcC5vaWQgQU5E IHAucHJvbmFyZ3MgPCAyIEFORCBjYXN0c291cmNlID0gY2FzdHRhcmdldDsKLSBvaWQgfCBjYXN0 c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9k IAotLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVu YyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8IGNhc3RlcnJvcnNhZmUgCistLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBMb29rIGZvciBjYXN0IGZ1bmN0aW9u cyB0aGF0IGRvbid0IGhhdmUgdGhlIHJpZ2h0IHNpZ25hdHVyZS4gIFRoZQpAQCAtOTg5LDggKzk4 OSw4IEBAIFdIRVJFIGMuY2FzdGZ1bmMgPSBwLm9pZCBBTkQKICAgICAgICAgICAgICBPUiAoYy5j YXN0c291cmNlID0gJ2NoYXJhY3Rlcic6OnJlZ3R5cGUgQU5ECiAgICAgICAgICAgICAgICAgIHAu cHJvYXJndHlwZXNbMF0gPSAndGV4dCc6OnJlZ3R5cGUpKQogICAgICBPUiBOT1QgYmluYXJ5X2Nv ZXJjaWJsZShwLnByb3JldHR5cGUsIGMuY2FzdHRhcmdldCkpOwotIG9pZCB8IGNhc3Rzb3VyY2Ug fCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgCi0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0KKyBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3RmdW5jIHwgY2Fz dGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgY2FzdGVycm9yc2FmZSAKKy0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIFNFTEVDVCBjLioKQEAgLTk5OCw4ICs5OTgsOCBAQCBG Uk9NIHBnX2Nhc3QgYywgcGdfcHJvYyBwCiBXSEVSRSBjLmNhc3RmdW5jID0gcC5vaWQgQU5ECiAg ICAgKChwLnByb25hcmdzID4gMSBBTkQgcC5wcm9hcmd0eXBlc1sxXSAhPSAnaW50NCc6OnJlZ3R5 cGUpIE9SCiAgICAgIChwLnByb25hcmdzID4gMiBBTkQgcC5wcm9hcmd0eXBlc1syXSAhPSAnYm9v bCc6OnJlZ3R5cGUpKTsKLSBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3RmdW5j IHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIAotLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgb2lkIHwgY2FzdHNv dXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8 IGNhc3RlcnJvcnNhZmUgCistLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQog CiAtLSBMb29rIGZvciBiaW5hcnkgY29tcGF0aWJsZSBjYXN0cyB0aGF0IGRvIG5vdCBoYXZlIHRo ZSByZXZlcnNlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxl IGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQppbmRleCBmOTQ1MGNkYzQ3Ny4u NTczYTY2OTlhNjMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1 bGUKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQpAQCAtODEsNyArODEs NyBAQCB0ZXN0OiBicmluX2Jsb29tIGJyaW5fbXVsdGkKIHRlc3Q6IGNyZWF0ZV90YWJsZV9saWtl IGFsdGVyX2dlbmVyaWMgYWx0ZXJfb3BlcmF0b3IgbWlzYyBhc3luYyBkYnNpemUgbWVyZ2UgbWlz Y19mdW5jdGlvbnMgc3lzdmlld3MgdHNyZiB0aWQgdGlkc2NhbiB0aWRyYW5nZXNjYW4gY29sbGF0 ZS51dGY4IGNvbGxhdGUuaWN1LnV0ZjggaW5jcmVtZW50YWxfc29ydCBjcmVhdGVfcm9sZSB3aXRo b3V0X292ZXJsYXBzIGdlbmVyYXRlZF92aXJ0dWFsCiAKICMgY29sbGF0ZS5saW51eC51dGY4IGFu ZCBjb2xsYXRlLmljdS51dGY4IHRlc3RzIGNhbm5vdCBiZSBydW4gaW4gcGFyYWxsZWwgd2l0aCBl YWNoIG90aGVyCi10ZXN0OiBydWxlcyBwc3FsIHBzcWxfY3Jvc3N0YWIgcHNxbF9waXBlbGluZSBh bXV0aWxzIHN0YXRzX2V4dCBjb2xsYXRlLmxpbnV4LnV0ZjggY29sbGF0ZS53aW5kb3dzLndpbjEy NTIKK3Rlc3Q6IHJ1bGVzIHBzcWwgcHNxbF9jcm9zc3RhYiBwc3FsX3BpcGVsaW5lIGFtdXRpbHMg c3RhdHNfZXh0IGNvbGxhdGUubGludXgudXRmOCBjb2xsYXRlLndpbmRvd3Mud2luMTI1MiBjYXN0 CiAKICMgLS0tLS0tLS0tLQogIyBSdW4gdGhlc2UgYWxvbmUgc28gdGhleSBkb24ndCBydW4gb3V0 IG9mIHBhcmFsbGVsIHdvcmtlcnMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Nh c3Quc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY2FzdC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLmViNjhlYzIxODU5Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvY2FzdC5zcWwKQEAgLTAsMCArMSwzMDEgQEAKK1NFVCBleHRyYV9m bG9hdF9kaWdpdHMgPSAwOworCistLSBDQVNUIERFRkFVTFQgT04gQ09OVkVSU0lPTiBFUlJPUgor VkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdlciBFUlJPUiBPTiBDT05WRVJTSU9OIEVSUk9S KSk7IC0tZXJyb3IKK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludGVnZXIgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSk7CitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnRlZ2VyIERFRkFVTFQg NDIgT04gQ09OVkVSU0lPTiBFUlJPUikpOworU0VMRUNUIENBU1QoMSBBUyBkYXRlIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKDE6Om51bWVyaWMgQVMgbW9u ZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoMTExMSBB UyAiY2hhciIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworCitDUkVBVEUgT1Ig UkVQTEFDRSBGVU5DVElPTiByZXRfaW50OCgpIFJFVFVSTlMgYmlnaW50IEFTCiskJAorQkVHSU4g UkVUVVJOIDIxNDc0ODM2NDg7IEVORDsKKyQkCitMQU5HVUFHRSBwbHBnc3FsIElNTVVUQUJMRTsK KworU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHJldF9pbnQ4KCkgT04gQ09OVkVSU0lP TiBFUlJPUik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKCdhJyBhcyBkYXRlIERFRkFVTFQgcmV0X2lu dDgoKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorCistLSB0ZXN0IGFycmF5IGNvZXJj ZQorU0VMRUNUIENBU1QoYXJyYXlbMTEuMTJdIEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKGFycmF5WzExLjEyXSBBUyBkYXRlW10gREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoYXJyYXlbMTExMTExMTEx MTExMTExMTFdIEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NF TEVDVCBDQVNUKGFycmF5W1snYWJjJ10sWzQ1Nl1dIEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCd7MTIzLGFiYyw0NTZ9JyBBUyBpbnRlZ2Vy W10gREVGQVVMVCAney03ODl9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCd7 MjM0LGRlZiw1Njd9Jzo6dGV4dFtdIEFTIGludGVnZXJbXSBERUZBVUxUICd7LTEwMTF9JyBPTiBD T05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKEFSUkFZW1snMSddLCBbJ3RocmVlJ10sWydh J11dIEFTIElOVEVHRVJbXSBERUZBVUxUICd7MSwyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7CitT RUxFQ1QgQ0FTVChBUlJBWVtbJzEnLCAnMiddLCBbJ3RocmVlJywgJ2EnXV0gQVMgdGV4dFtdIERF RkFVTFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJT04gRVJST1IpOworCistLSB0ZXN0IHZhbGlkIERF RkFVTFQgZXhwcmVzc2lvbiBmb3IgQ0FTVCA9IE9OIENPTlZFUlNJT04gRVJST1IKK0NSRUFURSBP UiBSRVBMQUNFIEZVTkNUSU9OIHJldF9zZXRpbnQoKSBSRVRVUk5TIFNFVE9GIGludGVnZXIgQVMK KyQkCitCRUdJTiBSRVRVUk4gUVVFUlkgRVhFQ1VURSAnc2VsZWN0IDEgdW5pb24gYWxsIHNlbGVj dCAxJzsgRU5EOworJCQKK0xBTkdVQUdFIHBscGdzcWwgSU1NVVRBQkxFOworCitDUkVBVEUgVEFC TEUgdGNhc3QoYSB0ZXh0W10sIGIgaW50IEdFTkVSQVRFRCBCWSBERUZBVUxUIEFTIElERU5USVRZ LCBjIHRleHQgZGVmYXVsdCAnMScpOworSU5TRVJUIElOVE8gdGNhc3QgVkFMVUVTICgnezEyfScp LCAoJ3sxLGEsIGJ9JyksICgne3sxLDJ9LCB7YyxkfX0nKSwgKCd7MTN9Jyk7CitTRUxFQ1QgQ0FT VCgnYScgYXMgaW50IERFRkFVTFQgcmV0X3NldGludCgpIE9OIENPTlZFUlNJT04gRVJST1IpIEZS T00gdGNhc3Q7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0oMSkg T04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVG QVVMVCBzdW0oMSkgb3ZlcigpIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1Qg Q0FTVCgnYScgYXMgaW50IERFRkFVTFQgJ2InIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9y CisKK1NFTEVDVCBDQVNUKHQgQVMgdGV4dFtdIERFRkFVTFQgJ3syMSwyMiwgJyB8fCBiIHx8ICd9 JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBGUk9NIHRjYXN0IGFzIHQ7CitTRUxFQ1QgQ0FTVCh0LmEg QVMgaW50W10gREVGQVVMVCAnezIxLDIyfSc6OmludFtdIHx8IGIgT04gQ09OVkVSU0lPTiBFUlJP UikgRlJPTSB0Y2FzdCBhcyB0OworCistLSB0ZXN0IHdpdGggZG9tYWluCitDUkVBVEUgRE9NQUlO IGRfaW50NDIgYXMgaW50IGNoZWNrICh2YWx1ZSA9IDQyKSBOT1QgTlVMTDsKK0NSRUFURSBET01B SU4gZF9jaGFyM19ub3RfbnVsbCBhcyBjaGFyKDMpIE5PVCBOVUxMOworQ1JFQVRFIERPTUFJTiBk X3ZhcmNoYXIgYXMgdmFyY2hhcigzKSBOT1QgTlVMTDsKK0NSRUFURSBUWVBFIGNvbXBfZG9tYWlu X3dpdGhfdHlwbW9kIEFTIChhIGRfY2hhcjNfbm90X251bGwsIGIgaW50KTsKK0NSRUFURSBUWVBF IGNvbXAyIEFTIChhIGRfdmFyY2hhcik7CitTRUxFQ1QgQ0FTVCgnKE5VTEwpJyBBUyBjb21wMiBE RUZBVUxUICcoMTIzMiknIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FT VCgnKE5VTEwpJyBBUyBjb21wMiBERUZBVUxUICcoMTIzKScgT04gQ09OVkVSU0lPTiBFUlJPUik7 IC0tb2sKK1NFTEVDVCBDQVNUKDExIEFTIGRfaW50NDIgREVGQVVMVCA0MSBPTiBDT05WRVJTSU9O IEVSUk9SKTsgLS1lcnJvcgorU0VMRUNUIENBU1QoMTEgQVMgZF9pbnQ0MiBERUZBVUxUIDQyIE9O IENPTlZFUlNJT04gRVJST1IpOyAtLW9rCitTRUxFQ1QgQ0FTVChOVUxMIEFTIGRfaW50NDIgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVChOVUxM IEFTIGRfaW50NDIgREVGQVVMVCA0MiBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1vaworU0VMRUNU IENBU1QoJygsNDIpJyBBUyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKE5VTEwsNDIpJyBBUyBjb21wX2RvbWFp bl93aXRoX3R5cG1vZCBERUZBVUxUICcoMSwyKScgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxF Q1QgQ0FTVCgnKE5VTEwsNDIpJyBBUyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxUICco MTIzNCwyKScgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKKworLS0tLS1zYWZlIGNhc3Qg d2l0aCBnZW9tZXRyeSBkYXRhIHR5cGUKK1NFTEVDVCBDQVNUKCcoMSwyKSc6OnBvaW50IEFTIGJv eCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnWyhOYU4s MSksKE5hTixpbmZpbml0eSldJzo6bHNlZyBBUyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnWygxZSszMDAsSW5maW5pdHkpLCgxZSszMDAsSW5m aW5pdHkpXSc6OmxzZWcgQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworU0VMRUNUIENBU1QoJ1soMSwyKSwoMyw0KV0nOjpwYXRoIGFzIHBvbHlnb24gREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJyhOYU4sMS4wLE5hTixpbmZp bml0eSknOjpib3ggQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwor U0VMRUNUIENBU1QoJygyLjAsMi4wLDAuMCwwLjApJzo6Ym94IEFTIGxzZWcgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJygyLjAsMi4wLDAuMCwwLjApJzo6 Ym94IEFTIHBvbHlnb24gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNU IENBU1QoJygyLjAsMi4wLDAuMCwwLjApJzo6Ym94IEFTIHBhdGggREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJygyLjAsaW5maW5pdHksTmFOLGluZmluaXR5 KSc6OmJveCBBUyBjaXJjbGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VM RUNUIENBU1QoJyhOYU4sMC4wKSwoMi4wLDQuMCksKDAuMCxpbmZpbml0eSknOjpwb2x5Z29uIEFT IHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCco Mi4wLDAuMCksKDIuMCw0LjApLCgwLjAsMC4wKSc6OnBvbHlnb24gQVMgcGF0aCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKDIuMCwwLjApLCgyLjAsNC4w KSwoMC4wLDAuMCknOjpwb2x5Z29uIEFTIGJveCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CitTRUxFQ1QgQ0FTVCgnKE5hTixpbmZpbml0eSksKDIuMCw0LjApLCgwLjAsaW5maW5p dHkpJzo6cG9seWdvbiBBUyBjaXJjbGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworU0VMRUNUIENBU1QoJzwoNSwxKSwzPic6OmNpcmNsZSBBUyBwb2ludCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnPCgzLDUpLDA+Jzo6Y2lyY2xlIGFz IGJveCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnPCgz LDUpLDA+Jzo6Y2lyY2xlIGFzIHBvbHlnb24gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpOworCistLS0tLXNhZmUgY2FzdCBmcm9tL3RvIG1vbmV5IHR5cGUgaXMgbm90IHN1cHBvcnRl ZCwgYWxsIHRoZSBmb2xsb3dpbmcgd291bGQgcmVzdWx0IGVycm9yCitTRUxFQ1QgQ0FTVChOVUxM OjppbnQ4IEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVD VCBDQVNUKE5VTEw6OmludDQgQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpOworU0VMRUNUIENBU1QoTlVMTDo6bnVtZXJpYyBBUyBtb25leSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChOVUxMOjptb25leSBBUyBudW1lcmljIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworLyoKK3RoZSBmb2xsb3dpbmcgYXJl IHNhZmUgY2FzdCB0ZXN0IHdpdGggdHlwZQoreworIGJ5dGVhLCBiaXQgY2hhcmFjdGVyLCB0ZXh0 LCBjaGFyYWN0ZXItdmFyeWluZywKKyBpbmV0LCBtYWNhZGRyOAorIGludDIsIGludGVnZXIsIGJp Z2ludCwgbnVtZXJpYywgZmxvYXQ0LCBmbG9hdDgsCisgZGF0ZSwgaW50ZXJ2YWwsIHRpbWVzdGFt cHR6LCB0aW1lc3RhbXAKKyBqc29uYgorfQorKi8KKy0tLS0tc2FmZSBjYXN0IGZyb20gYnl0ZWEg dHlwZSB0byBvdGhlciB0eXBlCitTRUxFQ1QgQ0FTVCAoJ1x4MTEyMjMzNDQ1NTY2Nzc4ODk5Jzo6 Ynl0ZWEgQVMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1Qg Q0FTVCgnXHgxMjM0NTY3ODlBJzo6Ynl0ZWEgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnXHgxMjM0NTYnOjpieXRlYSBBUyBpbnQyIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworU0VMRUNUIENBU1QoJzExMTExMTExMTEw MDAwMSc6OmJpdCgxMDApIEFTIElOVCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7 CitTRUxFQ1QgQ0FTVCAoJzExMTExMTExMTEwMDAwMSc6OmJpdCgxMDApIEFTIElOVDggREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworCitzZWxlY3QgQ0FTVCgnYS5iLmMuZCc6OnRl eHQgYXMgcmVnY2xhc3MgZGVmYXVsdCBOVUxMIG9uIGNvbnZlcnNpb24gZXJyb3IpOworCitDUkVB VEUgVEFCTEUgdGVzdF9zYWZlY2FzdChjb2wwIHRleHQpOworSU5TRVJUIElOVE8gdGVzdF9zYWZl Y2FzdChjb2wwKSBWQUxVRVMgKCc8dmFsdWU+b25lPC92YWx1ZScpOworCitTRUxFQ1QgY29sMCBh cyB0ZXh0LAorICAgICAgIENBU1QoY29sMCBBUyByZWdjbGFzcyBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fcmVnY2xhc3MsCisgICAgICAgQ0FTVChjb2wwIEFTIHJlZ2Ns YXNzIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBJUyBOVUxMIGFzIGV4cGVjdF90 cnVlLAorICAgICAgIENBU1QoY29sMCBBUyAiY2hhciIgIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19jaGFyLAorICAgICAgIENBU1QoY29sMCBBUyBuYW1lIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19uYW1lLAorICAgICAgIENBU1QoY29sMCBB UyB4bWwgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3htbAorRlJPTSB0 ZXN0X3NhZmVjYXN0OworCistLS0tLXNhZmUgY2FzdCBmcm9tIG90aGVyIHR5cGUgdG8gaW5ldC9j aWRyCitTRUxFQ1QgQ0FTVCgnMTkyLjE2OC4xLngnIGFzIGluZXQgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJzE5Mi4xNjguMS4yLzMwJyBhcyBjaWRyIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcyMjowMDo1Yzow ODo1NTowODowMTowMic6Om1hY2FkZHI4IGFzIG1hY2FkZHIgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworCistLS0tLXNhZmUgY2FzdCBmcm9tIHJhbmdlIHR5cGUgdG8gb3RoZXIg dHlwZQorU0VMRUNUIENBU1QoJ1sxLDJdJzo6aW50NHJhbmdlIEFTIGludDRtdWx0aXJhbmdlIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdbMSwyXSc6Omlu dDhyYW5nZSBBUyBpbnQ4bXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP Uik7CitTRUxFQ1QgQ0FTVCgnWzEsMl0nOjpudW1yYW5nZSAgQVMgbnVtbXVsdGlyYW5nZSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnWy1pbmZpbml0eSxp bmZpbml0eV0nOjpkYXRlcmFuZ2UgQVMgZGF0ZW11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1staW5maW5pdHksaW5maW5pdHldJzo6dHNy YW5nZSBBUyB0c211bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwor U0VMRUNUIENBU1QoJ1staW5maW5pdHksaW5maW5pdHldJzo6dHN0enJhbmdlIEFTIHRzdHptdWx0 aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworLS10ZXN0IGNhc3Qg bnVtZXJpYyB2YWx1ZSB3aXRoIGZyYWN0aW9uIHRvIGFub3RoZXIgbnVtZXJpYyB2YWx1ZQorQ1JF QVRFIFRBQkxFIHNhZmVjYXN0KGNvbDEgZmxvYXQ0LCBjb2wyIGZsb2F0OCwgY29sMyBudW1lcmlj LCBjb2w0IG51bWVyaWNbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbDUgaW50MiBkZWZh dWx0IDMyNzY3LAorICAgICAgICAgICAgICAgICAgICAgICAgY29sNiBpbnQ0IGRlZmF1bHQgMzI3 NjgsCisgICAgICAgICAgICAgICAgICAgICAgICBjb2w3IGludDggZGVmYXVsdCA0Mjk0OTY3Mjk2 KTsKK0lOU0VSVCBJTlRPIHNhZmVjYXN0IFZBTFVFUygnMTEuMTIzNCcsICcxMS4xMjM0JywgJzky MjMzNzIwMzY4NTQ3NzU4MDgnLCAnezExLjEyMzR9Jzo6bnVtZXJpY1tdKTsKK0lOU0VSVCBJTlRP IHNhZmVjYXN0IFZBTFVFUygnaW5mJywgJ2luZicsICdpbmYnLCAnezExLjEyMzQsIDEyLCBpbmYs IE5hTn0nOjpudW1lcmljW10pOworSU5TRVJUIElOVE8gc2FmZWNhc3QgVkFMVUVTKCctaW5mJywg Jy1pbmYnLCAnLWluZicsICd7MTEuMTIzNCwgMTIsIC1pbmYsIE5hTn0nOjpudW1lcmljW10pOwor SU5TRVJUIElOVE8gc2FmZWNhc3QgVkFMVUVTKCdOYU4nLCAnTmFOJywgJ05hTicsICd7MTEuMTIz NCwgMTIsIC1pbmYsIE5hTn0nOjpudW1lcmljW10pOworCitTRUxFQ1QgY29sNSBhcyBpbnQyLAor ICAgICAgIENBU1QoY29sNSBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sNSBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sNSBBUyBvaWQgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNv bDUgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwK KyAgICAgICBDQVNUKGNvbDUgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2w1IGFzIGZsb2F0OCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sNSBh cyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmlj LAorICAgICAgIENBU1QoY29sNSBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHNhZmVjYXN0OworCitTRUxF Q1QgY29sNiBhcyBpbnQ0LAorICAgICAgIENBU1QoY29sNiBBUyBpbnQyIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sNiBBUyBpbnQ0 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENB U1QoY29sNiBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29p ZCwKKyAgICAgICBDQVNUKGNvbDYgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDYgYXMgZmxvYXQ0IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2w2IGFz IGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAor ICAgICAgIENBU1QoY29sNiBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sNiBhcyBudW1lcmljKDEwLDEpIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9N IHNhZmVjYXN0OworCitTRUxFQ1QgY29sNyBhcyBpbnQ4LAorICAgICAgIENBU1QoY29sNyBBUyBp bnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAg IENBU1QoY29sNyBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19pbnQ0LAorICAgICAgIENBU1QoY29sNyBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDcgYXMgaW50OCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDcgYXMg ZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisg ICAgICAgQ0FTVChjb2w3IGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sNyBhcyBudW1lcmljIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sNyBh cyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19u dW1lcmljX3NjYWxlCitGUk9NIHNhZmVjYXN0OworCitTRUxFQ1QgY29sMyBhcyBudW1lcmljLAor ICAgICAgIENBU1QoY29sMyBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sMyBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sMyBBUyBvaWQgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNv bDMgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwK KyAgICAgICBDQVNUKGNvbDMgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2wzIGFzIGZsb2F0OCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sMyBh cyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmlj LAorICAgICAgIENBU1QoY29sMyBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHNhZmVjYXN0OworCitTRUxF Q1QgY29sNCBhcyBudW1fYXJyLAorICAgICAgIENBU1QoY29sNCBBUyBpbnQyW10gREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGludDJhcnIsCisgICAgICAgQ0FTVChjb2w0IEFT IGludDRbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgaW50NGFyciwKKyAg ICAgICBDQVNUKGNvbDQgYXMgaW50OFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyBpbnQ4YXJyLAorICAgICAgIENBU1QoY29sNCBhcyBmbG9hdDRbXSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgZjRhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIGZsb2F0 OFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBmOGFyciwKKyAgICAgICBD QVNUKGNvbDQgYXMgbnVtZXJpYygxMCwxKVtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyBudW1hcnIKK0ZST00gc2FmZWNhc3Q7CisKK1NFTEVDVCBjb2wxIGFzIGZsb2F0NCwK KyAgICAgICBDQVNUKGNvbDEgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDEgQVMgaW50NCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDEgQVMgb2lkIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChj b2wxIGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgs CisgICAgICAgQ0FTVChjb2wxIGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sMSBhcyBmbG9hdDggREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDEg YXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJp YywKKyAgICAgICBDQVNUKGNvbDEgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSBzYWZlY2FzdDsKKworU0VM RUNUIGNvbDIgYXMgZmxvYXQ4LAorICAgICAgIENBU1QoY29sMiBBUyBpbnQyIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sMiBBUyBp bnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAg IENBU1QoY29sMiBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X29pZCwKKyAgICAgICBDQVNUKGNvbDIgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDIgYXMgZmxvYXQ0IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2wy IGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4 LAorICAgICAgIENBU1QoY29sMiBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sMiBhcyBudW1lcmljKDEwLDEp IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitG Uk9NIHNhZmVjYXN0OworCistLXRlc3QgZGF0ZS90aW1lc3RhbXAvaW50ZXJ2YWwgcmVhbHRlZCBj YXN0CitDUkVBVEUgVEFCTEUgc2FmZWNhc3QxKGNvbDAgZGF0ZSwgY29sMSB0aW1lc3RhbXAsIGNv bDIgdGltZXN0YW1wdHosIGNvbDMgaW50ZXJ2YWwsIGNvbDQgdGltZSwgY29sNSB0aW1ldHopOwor aW5zZXJ0IGludG8gc2FmZWNhc3QxIFZBTFVFUworKCctaW5maW5pdHknLCAnLWluZmluaXR5Jywg Jy1pbmZpbml0eScsICctaW5maW5pdHknLAorICAnMjAwMy0wMy0wNyAxNTozNjozOSBBbWVyaWNh L05ld19Zb3JrJywgJzIwMDMtMDctMDcgMTU6MzY6MzkgQW1lcmljYS9OZXdfWW9yaycpLAorKCct aW5maW5pdHknLCAnaW5maW5pdHknLCAnaW5maW5pdHknLCAnaW5maW5pdHknLAorICAnMTE6NTk6 NTkuOTkgUE0nLCAnMTE6NTk6NTkuOTkgUE0gUERUJyk7CisKK1NFTEVDVCBjb2wwIGFzIGRhdGUs CisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWVzdGFtcHR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDAgQVMgZGF0ZSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0ZSwKKyAgICAgICBDQVNU KGNvbDAgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGlt ZXMsCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sMCBBUyB0aW1lc3RhbXAoMikg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcF9zY2FsZQor RlJPTSBzYWZlY2FzdDE7CisKK1NFTEVDVCBjb2wxIGFzIHRpbWVzdGFtcCwKKyAgICAgICBDQVNU KGNvbDEgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMSBBUyBkYXRlIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAgIENBU1QoY29sMSBBUyB0aW1l IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAgICBD QVNUKGNvbDEgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b190aW1ldHosCisgICAgICAgQ0FTVChjb2wxIEFTIHRpbWVzdGFtcCgyKSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3NjYWxlCitGUk9NIHNhZmVjYXN0 MTsKKworU0VMRUNUIGNvbDIgYXMgdGltZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wyIEFTIHRp bWVzdGFtcHR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3Rh bXB0eiwKKyAgICAgICBDQVNUKGNvbDIgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fZGF0ZSwKKyAgICAgICBDQVNUKGNvbDIgQVMgdGltZSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wyIEFT IHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAor ICAgICAgIENBU1QoY29sMiBBUyB0aW1lc3RhbXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcF9zY2FsZQorRlJPTSBzYWZlY2FzdDE7CisKK1NFTEVD VCBjb2wzIGFzIGludGVydmFsLAorICAgICAgIENBU1QoY29sMyBBUyB0aW1lc3RhbXB0eiBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wdHosCisgICAgICAg Q0FTVChjb2wzIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2RhdGUsCisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sMyBBUyB0aW1ldHogREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNv bDMgQVMgdGltZXN0YW1wKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b190aW1lc3RhbXBfc2NhbGUsCisgICAgICAgQ0FTVChjb2wzIEFTIGludGVydmFsKDIpIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbF9zY2FsZQorRlJPTSBz YWZlY2FzdDE7CisKK1NFTEVDVCBjb2w0IGFzIHRpbWUsCisgICAgICAgQ0FTVChjb2w0IEFTIHRp bWUoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAg ICAgIENBU1QoY29sNCBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDQgQVMgaW50ZXJ2YWwoMikgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsLAorICAgICAgIENBU1QoY29s NCBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f aW50ZXJ2YWxfc2NhbGUKK0ZST00gc2FmZWNhc3QxOworCitTRUxFQ1QgY29sNSBhcyB0aW1ldHos CisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX3RpbWUsCisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWUoMikgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVfc2NhbGUsCisgICAgICAgQ0FTVChjb2w1 IEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6 LAorICAgICAgIENBU1QoY29sNSBBUyB0aW1ldHooNikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX3RpbWV0el9zY2FsZSwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50ZXJ2 YWwgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsLAorICAg ICAgIENBU1QoY29sNSBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9faW50ZXJ2YWxfc2NhbGUKK0ZST00gc2FmZWNhc3QxOworCitDUkVBVEUgVEVN UCBUQUJMRSB0ZXN0X3NhZmVjYXN0MShjb2wwIGpzb25iKTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2Fm ZWNhc3QxKGNvbDApIFZBTFVFUyAoJyJ0ZXN0IicpOworU0VMRUNUIGNvbDAgYXMganNvbmIsCisg ICAgICAgQ0FTVChjb2wwIEFTIGludGVnZXIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX2ludGVnZXIsCisgICAgICAgQ0FTVChjb2wwIEFTIG51bWVyaWMgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2ww IEFTIGJpZ2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwK KyAgICAgICBDQVNUKGNvbDAgQVMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2wwIEFTIGZsb2F0OCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sMCBB UyBib29sZWFuIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19ib29sLAor ICAgICAgIENBU1QoY29sMCBBUyBzbWFsbGludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fc21hbGxpbnQKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisKKy0tIHRlc3QgZGVw YXJzZQorQ1JFQVRFIERPTUFJTiBkX2ludF9hcnIgYXMgaW50W107CitDUkVBVEUgVklFVyBzYWZl Y2FzdHZpZXcgQVMKK1NFTEVDVCBDQVNUKCcxMjM0JyBhcyBjaGFyKDMpIERFRkFVTFQgLTExMTEg T04gQ09OVkVSU0lPTiBFUlJPUiksCisgICAgICAgQ0FTVCgxIGFzIGRhdGUgREVGQVVMVCAoKG5v dygpOjpkYXRlICsgcmFuZG9tKG1pbj0+MSwgbWF4PT4xOjppbnQpKSkgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgc2FmZWNhc3QsCisgICAgICAgQ0FTVChBUlJBWVtbJzEnXSwgWyd0aHJlZSddLFsn YSddXSBBUyBJTlRFR0VSW10gREVGQVVMVCAnezEsMn0nIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IGNhc3QxLAorICAgICAgIENBU1QoQVJSQVlbWycxJywgJzInXSwgWyd0aHJlZScsICdhJ11dIEFT IHRleHRbXSBERUZBVUxUICd7MjEsMjJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MjsK K1xzdiBzYWZlY2FzdHZpZXcKKworQ1JFQVRFIFZJRVcgc2FmZWNhc3R2aWV3MSBBUworU0VMRUNU IENBU1QoQVJSQVlbWycxJ10sIFsndGhyZWUnXSxbJ2EnXV0gQVMgZF9pbnRfYXJyIERFRkFVTFQg J3sxLDJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MSwKKyAgICAgICBDQVNUKEFSUkFZ W1snMScsICcyJ10sIFsndGhyZWUnLCAnYSddXSBBUyBkX2ludF9hcnIgREVGQVVMVCAnezIxLDIy fScgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDI7Citcc3Ygc2FmZWNhc3R2aWV3MQorU0VM RUNUICogRlJPTSBzYWZlY2FzdHZpZXcxOworCitDUkVBVEUgSU5ERVggY2FzdF9lcnJvcl9pZHgg IE9OIHRjYXN0KChjYXN0KGMgYXMgaW50IERFRkFVTFQgcmFuZG9tKG1pbj0+MSwgbWF4PT4xKSBP TiBDT05WRVJTSU9OIEVSUk9SKSkpOyAtLWVycm9yCitSRVNFVCBleHRyYV9mbG9hdF9kaWdpdHM7 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwKaW5kZXggMzIxODc4NTNjYzcuLjBhMTVh Nzk1ZDg3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsCkBAIC02Miw2ICs2Miw3 IEBAICQkIFNFTEVDVCAoJ2Jhcic6OnRleHQgfHwgJDE6OnRleHQpOyAkJDsKIAogQ1JFQVRFIENB U1QgKGludDQgQVMgY2FzdHRlc3R0eXBlKSBXSVRIIEZVTkNUSU9OIGJhcl9pbnQ0X3RleHQoaW50 NCkgQVMgSU1QTElDSVQ7CiBTRUxFQ1QgMTIzNDo6aW50NDo6Y2FzdHRlc3R0eXBlOyAtLSBTaG91 bGQgd29yayBub3cKK1NFTEVDVCBDQVNUKDEyMzQ6OmludDQgQVMgY2FzdHRlc3R0eXBlIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKIAogLS0gY2hlY2sgZGVwZW5k ZW5jaWVzIGdlbmVyYXRlZCBmb3IgdGhhdAogU0VMRUNUIHBnX2Rlc2NyaWJlX29iamVjdChjbGFz c2lkLCBvYmppZCwgb2Jqc3ViaWQpIGFzIG9iaiwKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5k ZXggNTI5MGI5MWU4M2UuLjc5OTY4NTRiM2E1IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApA QCAtMjY2MCw2ICsyNjYwLDkgQEAgU1RSTEVOCiBTVgogU1lOQ0hST05JWkFUSU9OX0JBUlJJRVIK IFNZU1RFTV9JTkZPCitTYWZlVHlwZUNhc3QKK1NhZmVUeXBlQ2FzdEV4cHIKK1NhZmVUeXBlQ2Fz dFN0YXRlCiBTYW1wbGVTY2FuCiBTYW1wbGVTY2FuR2V0U2FtcGxlU2l6ZV9mdW5jdGlvbgogU2Ft cGxlU2NhblN0YXRlCi0tIAoyLjM0LjEKCg== --000000000000b88c47064114c15d Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0018-error-safe-for-casting-geometry-data-type.patch" Content-Disposition: attachment; filename="v8-0018-error-safe-for-casting-geometry-data-type.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgpwv2472 RnJvbSBlZDUzZGUwZDY0MDIxMTg1YmM1MWVjMGVmZDBkNTY2Y2UzNTYzYTdlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxOToxOTowNCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjgg MTgvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgZ2VvbWV0cnkgZGF0YSB0eXBlCgpzZWxlY3Qg Y2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlwZSwgcHAucHJvc3JjCmZyb20g cGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0gcGMuY2FzdGZ1bmMKam9pbiBw Z190eXBlIHB0IG9uIHB0Lm9pZCA9IGNhc3Rzb3VyY2UKam9pbiBwZ190eXBlIHB0MSBvbiBwdDEu b2lkID0gY2FzdHRhcmdldAphbmQgcGMuY2FzdGZ1bmMgPiAwIGFuZCAgcHQudHlwYXJyYXkgPD4g MAphbmQgcHQudHlwbmFtZXNwYWNlID0gJ3BnX2NhdGFsb2cnOjpyZWduYW1lc3BhY2UKYW5kIHB0 MS50eXBuYW1lc3BhY2UgPSAncGdfY2F0YWxvZyc6OnJlZ25hbWVzcGFjZQphbmQgKHB0LnR5cGNh dGVnb3J5ICA9ICdHJyBvciBwdDEudHlwY2F0ZWdvcnkgID0gJ0cnKQpvcmRlciBieSBjYXN0c291 cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCBjYXN0dGFy Z2V0IHwgICAgcHJvc3JjCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t CiBwb2ludCAgICAgIHwgYm94ICAgICAgICB8IHBvaW50X2JveAogbHNlZyAgICAgICB8IHBvaW50 ICAgICAgfCBsc2VnX2NlbnRlcgogcGF0aCAgICAgICB8IHBvbHlnb24gICAgfCBwYXRoX3BvbHkK IGJveCAgICAgICAgfCBwb2ludCAgICAgIHwgYm94X2NlbnRlcgogYm94ICAgICAgICB8IGxzZWcg ICAgICAgfCBib3hfZGlhZ29uYWwKIGJveCAgICAgICAgfCBwb2x5Z29uICAgIHwgYm94X3BvbHkK IGJveCAgICAgICAgfCBjaXJjbGUgICAgIHwgYm94X2NpcmNsZQogcG9seWdvbiAgICB8IHBvaW50 ICAgICAgfCBwb2x5X2NlbnRlcgogcG9seWdvbiAgICB8IHBhdGggICAgICAgfCBwb2x5X3BhdGgK IHBvbHlnb24gICAgfCBib3ggICAgICAgIHwgcG9seV9ib3gKIHBvbHlnb24gICAgfCBjaXJjbGUg ICAgIHwgcG9seV9jaXJjbGUKIGNpcmNsZSAgICAgfCBwb2ludCAgICAgIHwgY2lyY2xlX2NlbnRl cgogY2lyY2xlICAgICB8IGJveCAgICAgICAgfCBjaXJjbGVfYm94CiBjaXJjbGUgICAgIHwgcG9s eWdvbiAgICB8CigxNCByb3dzKQoKYWxyZWFkeSBlcnJvciBzYWZlOiBwb2ludF9ib3gsIGJveF9k aWFnb25hbCwgYm94X3BvbHksIHBvbHlfcGF0aCwgcG9seV9ib3gsIGNpcmNsZV9jZW50ZXIKYWxt b3N0IGVycm9yIHNhZmU6IHBhdGhfcG9seQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMv bS9DQUNKdWZ4SENNenJIT1c9d1JlOEwzMHJNaEIzc2p3QXYxTEU5MjhGYTdzeE11MVR4LWdAbWFp bC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3Byb2MuYyB8ICAg MiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMgICAgICAgfCAgIDggKy0KIHNyYy9i YWNrZW5kL3V0aWxzL2FkdC9nZW9fb3BzLmMgICAgIHwgMjgyICsrKysrKysrKysrKysrKysrKysr KysrKy0tLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9fc3BnaXN0LmMgIHwgICAyICstCiBz cmMvaW5jbHVkZS91dGlscy9mbG9hdC5oICAgICAgICAgICB8IDEwNyArKysrKysrKysrKwogc3Jj L2luY2x1ZGUvdXRpbHMvZ2VvX2RlY2xzLmggICAgICAgfCAgIDQgKy0KIDYgZmlsZXMgY2hhbmdl ZCwgMzU4IGluc2VydGlvbnMoKyksIDQ3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BncHJvYy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lz dC9zcGdwcm9jLmMKaW5kZXggNjYwMDA5MjkxZGEuLmIzZTBmYmM1OWJhIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3Byb2MuYworKysgYi9zcmMvYmFja2VuZC9hY2Nl c3Mvc3BnaXN0L3NwZ3Byb2MuYwpAQCAtNTEsNyArNTEsNyBAQCBwb2ludF9ib3hfZGlzdGFuY2Uo UG9pbnQgKnBvaW50LCBCT1ggKmJveCkKIAllbHNlCiAJCWR5ID0gMC4wOwogCi0JcmV0dXJuIEhZ UE9UKGR4LCBkeSk7CisJcmV0dXJuIEhZUE9UKGR4LCBkeSwgTlVMTCk7CiB9CiAKIC8qCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9mbG9hdC5jCmluZGV4IDY3NDc1NDRiNjc5Li4wNmIyYjZhZTI5NSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2Zsb2F0LmMKQEAgLTc3Miw3ICs3NzIsNyBAQCBmbG9hdDhwbChQR19GVU5DVElPTl9BUkdTKQog CWZsb2F0OAkJYXJnMSA9IFBHX0dFVEFSR19GTE9BVDgoMCk7CiAJZmxvYXQ4CQlhcmcyID0gUEdf R0VUQVJHX0ZMT0FUOCgxKTsKIAotCVBHX1JFVFVSTl9GTE9BVDgoZmxvYXQ4X3BsKGFyZzEsIGFy ZzIpKTsKKwlQR19SRVRVUk5fRkxPQVQ4KGZsb2F0OF9wbF9zYWZlKGFyZzEsIGFyZzIsIGZjaW5m by0+Y29udGV4dCkpOwogfQogCiBEYXR1bQpAQCAtNzgxLDcgKzc4MSw3IEBAIGZsb2F0OG1pKFBH X0ZVTkNUSU9OX0FSR1MpCiAJZmxvYXQ4CQlhcmcxID0gUEdfR0VUQVJHX0ZMT0FUOCgwKTsKIAlm bG9hdDgJCWFyZzIgPSBQR19HRVRBUkdfRkxPQVQ4KDEpOwogCi0JUEdfUkVUVVJOX0ZMT0FUOChm bG9hdDhfbWkoYXJnMSwgYXJnMikpOworCVBHX1JFVFVSTl9GTE9BVDgoZmxvYXQ4X21pX3NhZmUo YXJnMSwgYXJnMiwgZmNpbmZvLT5jb250ZXh0KSk7CiB9CiAKIERhdHVtCkBAIC03OTAsNyArNzkw LDcgQEAgZmxvYXQ4bXVsKFBHX0ZVTkNUSU9OX0FSR1MpCiAJZmxvYXQ4CQlhcmcxID0gUEdfR0VU QVJHX0ZMT0FUOCgwKTsKIAlmbG9hdDgJCWFyZzIgPSBQR19HRVRBUkdfRkxPQVQ4KDEpOwogCi0J UEdfUkVUVVJOX0ZMT0FUOChmbG9hdDhfbXVsKGFyZzEsIGFyZzIpKTsKKwlQR19SRVRVUk5fRkxP QVQ4KGZsb2F0OF9tdWxfc2FmZShhcmcxLCBhcmcyLCBmY2luZm8tPmNvbnRleHQpKTsKIH0KIAog RGF0dW0KQEAgLTc5OSw3ICs3OTksNyBAQCBmbG9hdDhkaXYoUEdfRlVOQ1RJT05fQVJHUykKIAlm bG9hdDgJCWFyZzEgPSBQR19HRVRBUkdfRkxPQVQ4KDApOwogCWZsb2F0OAkJYXJnMiA9IFBHX0dF VEFSR19GTE9BVDgoMSk7CiAKLQlQR19SRVRVUk5fRkxPQVQ4KGZsb2F0OF9kaXYoYXJnMSwgYXJn MikpOworCVBHX1JFVFVSTl9GTE9BVDgoZmxvYXQ4X2Rpdl9zYWZlKGFyZzEsIGFyZzIsIGZjaW5m by0+Y29udGV4dCkpOwogfQogCiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9n ZW9fb3BzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jCmluZGV4IDM3N2ExYjNm M2FkLi5hNWYyNTM3ZGEyNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19v cHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jCkBAIC03OCwxMSArNzgs MTQgQEAgZW51bSBwYXRoX2RlbGltCiAvKiBSb3V0aW5lcyBmb3IgcG9pbnRzICovCiBzdGF0aWMg aW5saW5lIHZvaWQgcG9pbnRfY29uc3RydWN0KFBvaW50ICpyZXN1bHQsIGZsb2F0OCB4LCBmbG9h dDggeSk7CiBzdGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfYWRkX3BvaW50KFBvaW50ICpyZXN1bHQs IFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOworc3RhdGljIGlubGluZSBib29sIHBvaW50X2FkZF9w b2ludF9zYWZlKFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIsCisJCQkJCQkJ CQkJTm9kZSAqZXNjb250ZXh0KTsKIHN0YXRpYyBpbmxpbmUgdm9pZCBwb2ludF9zdWJfcG9pbnQo UG9pbnQgKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMgaW5saW5lIHZv aWQgcG9pbnRfbXVsX3BvaW50KFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIp Owogc3RhdGljIGlubGluZSB2b2lkIHBvaW50X2Rpdl9wb2ludChQb2ludCAqcmVzdWx0LCBQb2lu dCAqcHQxLCBQb2ludCAqcHQyKTsKIHN0YXRpYyBpbmxpbmUgYm9vbCBwb2ludF9lcV9wb2ludChQ b2ludCAqcHQxLCBQb2ludCAqcHQyKTsKIHN0YXRpYyBpbmxpbmUgZmxvYXQ4IHBvaW50X2R0KFBv aW50ICpwdDEsIFBvaW50ICpwdDIpOworc3RhdGljIGlubGluZSBib29sIHBvaW50X2R0X3NhZmUo UG9pbnQgKnB0MSwgUG9pbnQgKnB0MiwgTm9kZSAqZXNjb250ZXh0LCBmbG9hdDggKnJlc3VsdCk7 CiBzdGF0aWMgaW5saW5lIGZsb2F0OCBwb2ludF9zbChQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsK IHN0YXRpYyBpbnQJcG9pbnRfaW5zaWRlKFBvaW50ICpwLCBpbnQgbnB0cywgUG9pbnQgKnBsaXN0 KTsKIApAQCAtMTA5LDYgKzExMiw3IEBAIHN0YXRpYyBmbG9hdDggbHNlZ19jbG9zZXB0X2xzZWco UG9pbnQgKnJlc3VsdCwgTFNFRyAqb25fbHNlZywgTFNFRyAqdG9fbHNlZyk7CiAvKiBSb3V0aW5l cyBmb3IgYm94ZXMgKi8KIHN0YXRpYyBpbmxpbmUgdm9pZCBib3hfY29uc3RydWN0KEJPWCAqcmVz dWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsKIHN0YXRpYyB2b2lkIGJveF9jbihQb2ludCAq Y2VudGVyLCBCT1ggKmJveCk7CitzdGF0aWMgYm9vbCBib3hfY25fc2FmZShQb2ludCAqY2VudGVy LCBCT1ggKmJveCwgTm9kZSogZXNjb250ZXh0KTsKIHN0YXRpYyBib29sIGJveF9vdihCT1ggKmJv eDEsIEJPWCAqYm94Mik7CiBzdGF0aWMgZmxvYXQ4IGJveF9hcihCT1ggKmJveCk7CiBzdGF0aWMg ZmxvYXQ4IGJveF9odChCT1ggKmJveCk7CkBAIC0xMjUsNyArMTI5LDcgQEAgc3RhdGljIGZsb2F0 OCBjaXJjbGVfYXIoQ0lSQ0xFICpjaXJjbGUpOwogCiAvKiBSb3V0aW5lcyBmb3IgcG9seWdvbnMg Ki8KIHN0YXRpYyB2b2lkIG1ha2VfYm91bmRfYm94KFBPTFlHT04gKnBvbHkpOwotc3RhdGljIHZv aWQgcG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHkpOworc3RhdGlj IGJvb2wgcG9seV90b19jaXJjbGVfc2FmZShDSVJDTEUgKnJlc3VsdCwgUE9MWUdPTiAqcG9seSwg Tm9kZSAqZXNjb250ZXh0KTsKIHN0YXRpYyBib29sIGxzZWdfaW5zaWRlX3BvbHkoUG9pbnQgKmEs IFBvaW50ICpiLCBQT0xZR09OICpwb2x5LCBpbnQgc3RhcnQpOwogc3RhdGljIGJvb2wgcG9seV9j b250YWluX3BvbHkoUE9MWUdPTiAqY29udGFpbnNfcG9seSwgUE9MWUdPTiAqY29udGFpbmVkX3Bv bHkpOwogc3RhdGljIGJvb2wgcGxpc3Rfc2FtZShpbnQgbnB0cywgUG9pbnQgKnAxLCBQb2ludCAq cDIpOwpAQCAtODUxLDcgKzg1NSw4IEBAIGJveF9jZW50ZXIoUEdfRlVOQ1RJT05fQVJHUykKIAlC T1gJCSAgICpib3ggPSBQR19HRVRBUkdfQk9YX1AoMCk7CiAJUG9pbnQJICAgKnJlc3VsdCA9IChQ b2ludCAqKSBwYWxsb2Moc2l6ZW9mKFBvaW50KSk7CiAKLQlib3hfY24ocmVzdWx0LCBib3gpOwor CWlmICghYm94X2NuX3NhZmUocmVzdWx0LCBib3gsIGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JF VFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fUE9JTlRfUChyZXN1bHQpOwogfQpAQCAtODc1LDYg Kzg4MCwzMSBAQCBib3hfY24oUG9pbnQgKmNlbnRlciwgQk9YICpib3gpCiAJY2VudGVyLT55ID0g ZmxvYXQ4X2RpdihmbG9hdDhfcGwoYm94LT5oaWdoLnksIGJveC0+bG93LnkpLCAyLjApOwogfQog CisvKiBzYWZlIHZlcnNpb24gb2YgYm94X2NuICovCitzdGF0aWMgYm9vbAorYm94X2NuX3NhZmUo UG9pbnQgKmNlbnRlciwgQk9YICpib3gsIE5vZGUqIGVzY29udGV4dCkKK3sKKwlmbG9hdDgJCXg7 CisJZmxvYXQ4CQl5OworCisJeCA9IGZsb2F0OF9wbF9zYWZlKGJveC0+aGlnaC54LCBib3gtPmxv dy54LCBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJ CXJldHVybiBmYWxzZTsKKworCWNlbnRlci0+eCA9IGZsb2F0OF9kaXZfc2FmZSh4LCAyLjAsIGVz Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJu IGZhbHNlOworCisJeSA9IGZsb2F0OF9wbF9zYWZlKGJveC0+aGlnaC55LCBib3gtPmxvdy55LCBl c2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVy biBmYWxzZTsKKworCWNlbnRlci0+eSA9IGZsb2F0OF9kaXZfc2FmZSh5LCAyLjAsIGVzY29udGV4 dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJuIGZhbHNl OworCisJcmV0dXJuIHRydWU7Cit9CiAKIC8qCQlib3hfd2QJLQkJcmV0dXJucyB0aGUgd2lkdGgg KGxlbmd0aCkgb2YgdGhlIGJveAogICoJCQkJCQkJCSAgKGhvcml6b250YWwgbWFnbml0dWRlKS4K QEAgLTEyNzYsNyArMTMwNiw3IEBAIGxpbmVfZGlzdGFuY2UoUEdfRlVOQ1RJT05fQVJHUykKIAog CVBHX1JFVFVSTl9GTE9BVDgoZmxvYXQ4X2RpdihmYWJzKGZsb2F0OF9taShsMS0+QywKIAkJCQkJ CQkJCQkJICAgZmxvYXQ4X211bChyYXRpbywgbDItPkMpKSksCi0JCQkJCQkJCUhZUE9UKGwxLT5B LCBsMS0+QikpKTsKKwkJCQkJCQkJSFlQT1QobDEtPkEsIGwxLT5CLCBOVUxMKSkpOwogfQogCiAv KiBsaW5lX2ludGVycHQoKQpAQCAtMjAwMSw5ICsyMDMxLDM0IEBAIHBvaW50X2Rpc3RhbmNlKFBH X0ZVTkNUSU9OX0FSR1MpCiBzdGF0aWMgaW5saW5lIGZsb2F0OAogcG9pbnRfZHQoUG9pbnQgKnB0 MSwgUG9pbnQgKnB0MikKIHsKLQlyZXR1cm4gSFlQT1QoZmxvYXQ4X21pKHB0MS0+eCwgcHQyLT54 KSwgZmxvYXQ4X21pKHB0MS0+eSwgcHQyLT55KSk7CisJcmV0dXJuIEhZUE9UKGZsb2F0OF9taShw dDEtPngsIHB0Mi0+eCksIGZsb2F0OF9taShwdDEtPnksIHB0Mi0+eSksIE5VTEwpOwogfQogCisv KiBlcnJyb3Igc2FmZSB2ZXJzaW9uIG9mIHBvaW50X2R0ICovCitzdGF0aWMgaW5saW5lIGJvb2wK K3BvaW50X2R0X3NhZmUoUG9pbnQgKnB0MSwgUG9pbnQgKnB0MiwgTm9kZSAqZXNjb250ZXh0LCBm bG9hdDggKnJlc3VsdCkKK3sKKwlmbG9hdDgJCXg7CisJZmxvYXQ4CQl5OworCisJQXNzZXJ0KHJl c3VsdCAhPSBOVUxMKTsKKworCXggPSBmbG9hdDhfbWlfc2FmZShwdDEtPngsIHB0Mi0+eCwgZXNj b250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQlyZXR1cm4g ZmFsc2U7CisKKwl5ICA9IGZsb2F0OF9taV9zYWZlKHB0MS0+eSwgcHQyLT55LCBlc2NvbnRleHQp OworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsK KworCSpyZXN1bHQgPSBIWVBPVCh4LCB5LCBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09D Q1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB0cnVlOworfQor CisKIERhdHVtCiBwb2ludF9zbG9wZShQR19GVU5DVElPTl9BUkdTKQogewpAQCAtMjMxNywxMyAr MjM3MiwzMSBAQCBsc2VnX2NlbnRlcihQR19GVU5DVElPTl9BUkdTKQogewogCUxTRUcJICAgKmxz ZWcgPSBQR19HRVRBUkdfTFNFR19QKDApOwogCVBvaW50CSAgICpyZXN1bHQ7CisJZmxvYXQ4CQl4 OworCWZsb2F0OAkJeTsKIAogCXJlc3VsdCA9IChQb2ludCAqKSBwYWxsb2Moc2l6ZW9mKFBvaW50 KSk7CiAKLQlyZXN1bHQtPnggPSBmbG9hdDhfZGl2KGZsb2F0OF9wbChsc2VnLT5wWzBdLngsIGxz ZWctPnBbMV0ueCksIDIuMCk7Ci0JcmVzdWx0LT55ID0gZmxvYXQ4X2RpdihmbG9hdDhfcGwobHNl Zy0+cFswXS55LCBsc2VnLT5wWzFdLnkpLCAyLjApOworCXggPSBmbG9hdDhfcGxfc2FmZShsc2Vn LT5wWzBdLngsIGxzZWctPnBbMV0ueCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJP Ul9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwlyZXN1bHQtPngg PSBmbG9hdDhfZGl2X3NhZmUoeCwgMi4wLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VS Uk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKKworCXkgPSBmbG9h dDhfcGxfc2FmZShsc2VnLT5wWzBdLnksIGxzZWctPnBbMV0ueSwgZmNpbmZvLT5jb250ZXh0KTsK KwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7 CisKKwlyZXN1bHQtPnkgPSBmbG9hdDhfZGl2X3NhZmUoeSwgMi4wLCBmY2luZm8tPmNvbnRleHQp OworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFp bDsKIAogCVBHX1JFVFVSTl9QT0lOVF9QKHJlc3VsdCk7CisKK2ZhaWw6CisJUEdfUkVUVVJOX05V TEwoKTsKIH0KIAogCkBAIC00MTE1LDYgKzQxODgsMjcgQEAgcG9pbnRfYWRkX3BvaW50KFBvaW50 ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIpCiAJCQkJCWZsb2F0OF9wbChwdDEtPnks IHB0Mi0+eSkpOwogfQogCisvKiBlcnJvciBzYWZlIHZlcnNpb24gb2YgcG9pbnRfYWRkX3BvaW50 ICovCitzdGF0aWMgaW5saW5lIGJvb2wKK3BvaW50X2FkZF9wb2ludF9zYWZlKFBvaW50ICpyZXN1 bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIsCisJCQkJCSBOb2RlICplc2NvbnRleHQpCit7CisJ ZmxvYXQ4CQl4OworCWZsb2F0OAkJeTsKKworCXggPSBmbG9hdDhfcGxfc2FmZShwdDEtPngsIHB0 Mi0+eCwgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQor CQlyZXR1cm4gZmFsc2U7CisKKwl5ID0gZmxvYXQ4X3BsX3NhZmUocHQxLT55LCBwdDItPnksIGVz Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJu IGZhbHNlOworCisJcG9pbnRfY29uc3RydWN0KHJlc3VsdCwgeCwgeSk7CisKKwlyZXR1cm4gdHJ1 ZTsKK30KKwogRGF0dW0KIHBvaW50X2FkZChQR19GVU5DVElPTl9BUkdTKQogewpAQCAtNDQ1OCwx MCArNDU1MiwxNCBAQCBwYXRoX3BvbHkoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIFRoaXMgaXMg bm90IHZlcnkgY29uc2lzdGVudCAtLS0gb3RoZXIgc2ltaWxhciBjYXNlcyByZXR1cm4gTlVMTCAu Li4gKi8KIAlpZiAoIXBhdGgtPmNsb3NlZCkKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVycnNh dmUoZmNpbmZvLT5jb250ZXh0LAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVU RVJfVkFMVUUpLAogCQkJCSBlcnJtc2coIm9wZW4gcGF0aCBjYW5ub3QgYmUgY29udmVydGVkIHRv IHBvbHlnb24iKSkpOwogCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQorCiAJLyoKIAkgKiBOZXZl ciBvdmVyZmxvd3M6IHRoZSBvbGQgc2l6ZSBmaXQgaW4gTWF4QWxsb2NTaXplLCBhbmQgdGhlIG5l dyBzaXplIGlzCiAJICoganVzdCBhIHNtYWxsIGNvbnN0YW50IGxhcmdlci4KQEAgLTQ1MDgsNyAr NDYwNiw5IEBAIHBvbHlfY2VudGVyKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHQgPSAoUG9p bnQgKikgcGFsbG9jKHNpemVvZihQb2ludCkpOwogCi0JcG9seV90b19jaXJjbGUoJmNpcmNsZSwg cG9seSk7CisJaWYgKCFwb2x5X3RvX2NpcmNsZV9zYWZlKCZjaXJjbGUsIHBvbHksIGZjaW5mby0+ Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKIAkqcmVzdWx0ID0gY2lyY2xlLmNlbnRl cjsKIAogCVBHX1JFVFVSTl9QT0lOVF9QKHJlc3VsdCk7CkBAIC01MDA1LDcgKzUxMDUsNyBAQCBj aXJjbGVfbXVsX3B0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJcmVzdWx0ID0gKENJUkNMRSAqKSBwYWxs b2Moc2l6ZW9mKENJUkNMRSkpOwogCiAJcG9pbnRfbXVsX3BvaW50KCZyZXN1bHQtPmNlbnRlciwg JmNpcmNsZS0+Y2VudGVyLCBwb2ludCk7Ci0JcmVzdWx0LT5yYWRpdXMgPSBmbG9hdDhfbXVsKGNp cmNsZS0+cmFkaXVzLCBIWVBPVChwb2ludC0+eCwgcG9pbnQtPnkpKTsKKwlyZXN1bHQtPnJhZGl1 cyA9IGZsb2F0OF9tdWwoY2lyY2xlLT5yYWRpdXMsIEhZUE9UKHBvaW50LT54LCBwb2ludC0+eSwg TlVMTCkpOwogCiAJUEdfUkVUVVJOX0NJUkNMRV9QKHJlc3VsdCk7CiB9CkBAIC01MDIwLDcgKzUx MjAsNyBAQCBjaXJjbGVfZGl2X3B0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJcmVzdWx0ID0gKENJUkNM RSAqKSBwYWxsb2Moc2l6ZW9mKENJUkNMRSkpOwogCiAJcG9pbnRfZGl2X3BvaW50KCZyZXN1bHQt PmNlbnRlciwgJmNpcmNsZS0+Y2VudGVyLCBwb2ludCk7Ci0JcmVzdWx0LT5yYWRpdXMgPSBmbG9h dDhfZGl2KGNpcmNsZS0+cmFkaXVzLCBIWVBPVChwb2ludC0+eCwgcG9pbnQtPnkpKTsKKwlyZXN1 bHQtPnJhZGl1cyA9IGZsb2F0OF9kaXYoY2lyY2xlLT5yYWRpdXMsIEhZUE9UKHBvaW50LT54LCBw b2ludC0+eSwgTlVMTCkpOwogCiAJUEdfUkVUVVJOX0NJUkNMRV9QKHJlc3VsdCk7CiB9CkBAIC01 MTkxLDE0ICs1MjkxLDMwIEBAIGNpcmNsZV9ib3goUEdfRlVOQ1RJT05fQVJHUykKIAogCWJveCA9 IChCT1ggKikgcGFsbG9jKHNpemVvZihCT1gpKTsKIAotCWRlbHRhID0gZmxvYXQ4X2RpdihjaXJj bGUtPnJhZGl1cywgc3FydCgyLjApKTsKKwlkZWx0YSA9IGZsb2F0OF9kaXZfc2FmZShjaXJjbGUt PnJhZGl1cywgc3FydCgyLjApLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09D Q1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKIAotCWJveC0+aGlnaC54ID0g ZmxvYXQ4X3BsKGNpcmNsZS0+Y2VudGVyLngsIGRlbHRhKTsKLQlib3gtPmxvdy54ID0gZmxvYXQ4 X21pKGNpcmNsZS0+Y2VudGVyLngsIGRlbHRhKTsKLQlib3gtPmhpZ2gueSA9IGZsb2F0OF9wbChj aXJjbGUtPmNlbnRlci55LCBkZWx0YSk7Ci0JYm94LT5sb3cueSA9IGZsb2F0OF9taShjaXJjbGUt PmNlbnRlci55LCBkZWx0YSk7CisJYm94LT5oaWdoLnggPSBmbG9hdDhfcGxfc2FmZShjaXJjbGUt PmNlbnRlci54LCBkZWx0YSwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NV UlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwlib3gtPmxvdy54ID0gZmxv YXQ4X21pX3NhZmUoY2lyY2xlLT5jZW50ZXIueCwgZGVsdGEsIGZjaW5mby0+Y29udGV4dCk7CisJ aWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOwor CisJYm94LT5oaWdoLnkgPSBmbG9hdDhfcGxfc2FmZShjaXJjbGUtPmNlbnRlci55LCBkZWx0YSwg ZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRl eHQpKQorCQlnb3RvIGZhaWw7CisKKwlib3gtPmxvdy55ID0gZmxvYXQ4X21pX3NhZmUoY2lyY2xl LT5jZW50ZXIueSwgZGVsdGEsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0ND VVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOwogCiAJUEdfUkVUVVJOX0JPWF9Q KGJveCk7CisKK2ZhaWw6CisJUEdfUkVUVVJOX05VTEwoKTsKIH0KIAogLyogYm94X2NpcmNsZSgp CkBAIC01MjA5LDE1ICs1MzI1LDM1IEBAIGJveF9jaXJjbGUoUEdfRlVOQ1RJT05fQVJHUykKIHsK IAlCT1gJCSAgICpib3ggPSBQR19HRVRBUkdfQk9YX1AoMCk7CiAJQ0lSQ0xFCSAgICpjaXJjbGU7 CisJZmxvYXQ4CQl4OworCWZsb2F0OAkJeTsKIAogCWNpcmNsZSA9IChDSVJDTEUgKikgcGFsbG9j KHNpemVvZihDSVJDTEUpKTsKIAotCWNpcmNsZS0+Y2VudGVyLnggPSBmbG9hdDhfZGl2KGZsb2F0 OF9wbChib3gtPmhpZ2gueCwgYm94LT5sb3cueCksIDIuMCk7Ci0JY2lyY2xlLT5jZW50ZXIueSA9 IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGJveC0+aGlnaC55LCBib3gtPmxvdy55KSwgMi4wKTsKKwl4 ID0gZmxvYXQ4X3BsX3NhZmUoYm94LT5oaWdoLngsIGJveC0+bG93LngsIGZjaW5mby0+Y29udGV4 dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBm YWlsOwogCi0JY2lyY2xlLT5yYWRpdXMgPSBwb2ludF9kdCgmY2lyY2xlLT5jZW50ZXIsICZib3gt PmhpZ2gpOworCWNpcmNsZS0+Y2VudGVyLnggPSBmbG9hdDhfZGl2X3NhZmUoeCwgMi4wLCBmY2lu Zm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkp CisJCWdvdG8gZmFpbDsKKworCXkgPSBmbG9hdDhfcGxfc2FmZShib3gtPmhpZ2gueSwgYm94LT5s b3cueSwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8t PmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwljaXJjbGUtPmNlbnRlci55ID0gZmxvYXQ4X2Rp dl9zYWZlKHksIDIuMCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJF RChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwlpZiAoIXBvaW50X2R0X3NhZmUo JmNpcmNsZS0+Y2VudGVyLCAmYm94LT5oaWdoLCBmY2luZm8tPmNvbnRleHQsCisJCQkJCSAgICZj aXJjbGUtPnJhZGl1cykpCisJCWdvdG8gZmFpbDsKIAogCVBHX1JFVFVSTl9DSVJDTEVfUChjaXJj bGUpOworCitmYWlsOgorCVBHX1JFVFVSTl9OVUxMKCk7CiB9CiAKIApAQCAtNTIzMCwyOCArNTM2 NiwzOCBAQCBjaXJjbGVfcG9seShQR19GVU5DVElPTl9BUkdTKQogCWludAkJCWJhc2Vfc2l6ZSwK IAkJCQlzaXplOwogCWludAkJCWk7CisJZmxvYXQ4CQl4OworCWZsb2F0OAkJeTsKIAlmbG9hdDgJ CWFuZ2xlOwogCWZsb2F0OAkJYW5nbGVzdGVwOwogCiAJaWYgKEZQemVybyhjaXJjbGUtPnJhZGl1 cykpCi0JCWVyZXBvcnQoRVJST1IsCisJeworCQllcnJzYXZlKGZjaW5mby0+Y29udGV4dCwKIAkJ CQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJIGVycm1zZygi Y2Fubm90IGNvbnZlcnQgY2lyY2xlIHdpdGggcmFkaXVzIHplcm8gdG8gcG9seWdvbiIpKSk7CisJ CWdvdG8gZmFpbDsKKwl9CiAKIAlpZiAobnB0cyA8IDIpCi0JCWVyZXBvcnQoRVJST1IsCisJewor CQllcnJzYXZlKGZjaW5mby0+Y29udGV4dCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURf UEFSQU1FVEVSX1ZBTFVFKSwKIAkJCQkgZXJybXNnKCJtdXN0IHJlcXVlc3QgYXQgbGVhc3QgMiBw b2ludHMiKSkpOworCQlnb3RvIGZhaWw7CisJfQogCiAJYmFzZV9zaXplID0gc2l6ZW9mKHBvbHkt PnBbMF0pICogbnB0czsKIAlzaXplID0gb2Zmc2V0b2YoUE9MWUdPTiwgcCkgKyBiYXNlX3NpemU7 CiAKIAkvKiBDaGVjayBmb3IgaW50ZWdlciBvdmVyZmxvdyAqLwogCWlmIChiYXNlX3NpemUgLyBu cHRzICE9IHNpemVvZihwb2x5LT5wWzBdKSB8fCBzaXplIDw9IGJhc2Vfc2l6ZSkKLQkJZXJlcG9y dChFUlJPUiwKKwl7CisJCWVycnNhdmUoZmNpbmZvLT5jb250ZXh0LAogCQkJCShlcnJjb2RlKEVS UkNPREVfUFJPR1JBTV9MSU1JVF9FWENFRURFRCksCiAJCQkJIGVycm1zZygidG9vIG1hbnkgcG9p bnRzIHJlcXVlc3RlZCIpKSk7Ci0KKwkJZ290byBmYWlsOworCX0KIAlwb2x5ID0gKFBPTFlHT04g KikgcGFsbG9jMChzaXplKTsJLyogemVybyBhbnkgaG9sZXMgKi8KIAlTRVRfVkFSU0laRShwb2x5 LCBzaXplKTsKIAlwb2x5LT5ucHRzID0gbnB0czsKQEAgLTUyNjAsMTcgKzU0MDYsMzMgQEAgY2ly Y2xlX3BvbHkoUEdfRlVOQ1RJT05fQVJHUykKIAogCWZvciAoaSA9IDA7IGkgPCBucHRzOyBpKysp CiAJewotCQlhbmdsZSA9IGZsb2F0OF9tdWwoYW5nbGVzdGVwLCBpKTsKKwkJYW5nbGUgPSBmbG9h dDhfbXVsX3NhZmUoYW5nbGVzdGVwLCBpLCBmY2luZm8tPmNvbnRleHQpOworCQlpZiAoU09GVF9F UlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQkJZ290byBmYWlsOwogCi0JCXBvbHkt PnBbaV0ueCA9IGZsb2F0OF9taShjaXJjbGUtPmNlbnRlci54LAotCQkJCQkJCQkgZmxvYXQ4X211 bChjaXJjbGUtPnJhZGl1cywgY29zKGFuZ2xlKSkpOwotCQlwb2x5LT5wW2ldLnkgPSBmbG9hdDhf cGwoY2lyY2xlLT5jZW50ZXIueSwKLQkJCQkJCQkJIGZsb2F0OF9tdWwoY2lyY2xlLT5yYWRpdXMs IHNpbihhbmdsZSkpKTsKKwkJeCA9IGZsb2F0OF9tdWxfc2FmZShjaXJjbGUtPnJhZGl1cywgY29z KGFuZ2xlKSwgZmNpbmZvLT5jb250ZXh0KTsKKwkJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNp bmZvLT5jb250ZXh0KSkKKwkJCWdvdG8gZmFpbDsKKworCQlwb2x5LT5wW2ldLnggPSBmbG9hdDhf bWlfc2FmZShjaXJjbGUtPmNlbnRlci54LCB4LCBmY2luZm8tPmNvbnRleHQpOworCQlpZiAoU09G VF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQkJZ290byBmYWlsOworCisJCXkg PSBmbG9hdDhfbXVsX3NhZmUoY2lyY2xlLT5yYWRpdXMsIHNpbihhbmdsZSksZmNpbmZvLT5jb250 ZXh0KTsKKwkJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJCWdv dG8gZmFpbDsKKworCQlwb2x5LT5wW2ldLnkgPSBmbG9hdDhfcGxfc2FmZShjaXJjbGUtPmNlbnRl ci55LCB5LCBmY2luZm8tPmNvbnRleHQpOworCQlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2lu Zm8tPmNvbnRleHQpKQorCQkJZ290byBmYWlsOwogCX0KIAogCW1ha2VfYm91bmRfYm94KHBvbHkp OwogCiAJUEdfUkVUVVJOX1BPTFlHT05fUChwb2x5KTsKKworZmFpbDoKKwlQR19SRVRVUk5fTlVM TCgpOwogfQogCiAvKgpAQCAtNTI4MSwxMCArNTQ0MywxMSBAQCBjaXJjbGVfcG9seShQR19GVU5D VElPTl9BUkdTKQogICogWFhYIFRoaXMgYWxnb3JpdGhtIHNob3VsZCB1c2Ugd2VpZ2h0ZWQgbWVh bnMgb2YgbGluZSBzZWdtZW50cwogICoJcmF0aGVyIHRoYW4gc3RyYWlnaHQgYXZlcmFnZSB2YWx1 ZXMgb2YgcG9pbnRzIC0gdGdsIDk3LzAxLzIxLgogICovCi1zdGF0aWMgdm9pZAotcG9seV90b19j aXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHkpCitzdGF0aWMgYm9vbAorcG9seV90 b19jaXJjbGVfc2FmZShDSVJDTEUgKnJlc3VsdCwgUE9MWUdPTiAqcG9seSwgTm9kZSAqZXNjb250 ZXh0KQogewogCWludAkJCWk7CisJZmxvYXQ4CQl4OwogCiAJQXNzZXJ0KHBvbHktPm5wdHMgPiAw KTsKIApAQCAtNTI5MywxNCArNTQ1Niw0MSBAQCBwb2x5X3RvX2NpcmNsZShDSVJDTEUgKnJlc3Vs dCwgUE9MWUdPTiAqcG9seSkKIAlyZXN1bHQtPnJhZGl1cyA9IDA7CiAKIAlmb3IgKGkgPSAwOyBp IDwgcG9seS0+bnB0czsgaSsrKQotCQlwb2ludF9hZGRfcG9pbnQoJnJlc3VsdC0+Y2VudGVyLCAm cmVzdWx0LT5jZW50ZXIsICZwb2x5LT5wW2ldKTsKLQlyZXN1bHQtPmNlbnRlci54ID0gZmxvYXQ4 X2RpdihyZXN1bHQtPmNlbnRlci54LCBwb2x5LT5ucHRzKTsKLQlyZXN1bHQtPmNlbnRlci55ID0g ZmxvYXQ4X2RpdihyZXN1bHQtPmNlbnRlci55LCBwb2x5LT5ucHRzKTsKKwl7CisJCWlmICghcG9p bnRfYWRkX3BvaW50X3NhZmUoJnJlc3VsdC0+Y2VudGVyLAorCQkJCQkJCQkgICZyZXN1bHQtPmNl bnRlciwKKwkJCQkJCQkJICAmcG9seS0+cFtpXSwKKwkJCQkJCQkJICBlc2NvbnRleHQpKQorCQkJ cmV0dXJuIGZhbHNlOworCX0KKworCXJlc3VsdC0+Y2VudGVyLnggPSBmbG9hdDhfZGl2X3NhZmUo cmVzdWx0LT5jZW50ZXIueCwKKwkJCQkJCQkJCSAgIHBvbHktPm5wdHMsCisJCQkJCQkJCQkgICBl c2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVy biBmYWxzZTsKKworCXJlc3VsdC0+Y2VudGVyLnkgPSBmbG9hdDhfZGl2X3NhZmUocmVzdWx0LT5j ZW50ZXIueSwKKwkJCQkJCQkJCSAgIHBvbHktPm5wdHMsCisJCQkJCQkJCQkgICBlc2NvbnRleHQp OworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsK IAogCWZvciAoaSA9IDA7IGkgPCBwb2x5LT5ucHRzOyBpKyspCi0JCXJlc3VsdC0+cmFkaXVzID0g ZmxvYXQ4X3BsKHJlc3VsdC0+cmFkaXVzLAotCQkJCQkJCQkgICBwb2ludF9kdCgmcG9seS0+cFtp XSwgJnJlc3VsdC0+Y2VudGVyKSk7Ci0JcmVzdWx0LT5yYWRpdXMgPSBmbG9hdDhfZGl2KHJlc3Vs dC0+cmFkaXVzLCBwb2x5LT5ucHRzKTsKKwl7CisJCWlmICghcG9pbnRfZHRfc2FmZSgmcG9seS0+ cFtpXSwgJnJlc3VsdC0+Y2VudGVyLCBlc2NvbnRleHQsICZ4KSkKKwkJCXJldHVybiBmYWxzZTsK KworCQlyZXN1bHQtPnJhZGl1cyA9IGZsb2F0OF9wbF9zYWZlKHJlc3VsdC0+cmFkaXVzLCB4LCBl c2NvbnRleHQpOworCQlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQkJcmV0 dXJuIGZhbHNlOworCX0KKworCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X2Rpdl9zYWZlKHJlc3Vs dC0+cmFkaXVzLCBwb2x5LT5ucHRzLCBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VS UkVEKGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB0cnVlOwogfQogCiBE YXR1bQpAQCAtNTMxMSw3ICs1NTAxLDggQEAgcG9seV9jaXJjbGUoUEdfRlVOQ1RJT05fQVJHUykK IAogCXJlc3VsdCA9IChDSVJDTEUgKikgcGFsbG9jKHNpemVvZihDSVJDTEUpKTsKIAotCXBvbHlf dG9fY2lyY2xlKHJlc3VsdCwgcG9seSk7CisJaWYgKCFwb2x5X3RvX2NpcmNsZV9zYWZlKHJlc3Vs dCwgcG9seSwgZmNpbmZvLT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JF VFVSTl9DSVJDTEVfUChyZXN1bHQpOwogfQpAQCAtNTUxNiw3ICs1NzA3LDcgQEAgcGxpc3Rfc2Ft ZShpbnQgbnB0cywgUG9pbnQgKnAxLCBQb2ludCAqcDIpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8K IGZsb2F0OAotcGdfaHlwb3QoZmxvYXQ4IHgsIGZsb2F0OCB5KQorcGdfaHlwb3QoZmxvYXQ4IHgs IGZsb2F0OCB5LCBOb2RlICplc2NvbnRleHQpCiB7CiAJZmxvYXQ4CQl5eCwKIAkJCQlyZXN1bHQ7 CkBAIC01NTU0LDkgKzU3NDUsMjIgQEAgcGdfaHlwb3QoZmxvYXQ4IHgsIGZsb2F0OCB5KQogCXJl c3VsdCA9IHggKiBzcXJ0KDEuMCArICh5eCAqIHl4KSk7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYo cmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJeworCQllcnJzYXZlKGVzY29u dGV4dCwKKwkJCWVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCisJ CQllcnJtc2coInZhbHVlIG91dCBvZiByYW5nZTogb3ZlcmZsb3ciKSk7CisKKwkJcmVzdWx0ID0g MC4wOworCX0KKwogCWlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wKSkKLQkJZmxvYXRfdW5kZXJm bG93X2Vycm9yKCk7CisJeworCQllcnJzYXZlKGVzY29udGV4dCwKKwkJCQllcnJjb2RlKEVSUkNP REVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAorCQkJCWVycm1zZygidmFsdWUgb3V0IG9m IHJhbmdlOiB1bmRlcmZsb3ciKSk7CisKKwkJcmVzdWx0ID0gMC4wOworCX0KIAogCXJldHVybiBy ZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX3NwZ2lzdC5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19zcGdpc3QuYwppbmRleCBmZWMzM2U5NTM3Mi4u ZmZmZmQzY2QyZGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9fc3BnaXN0 LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19zcGdpc3QuYwpAQCAtMzkwLDcgKzM5 MCw3IEBAIHBvaW50VG9SZWN0Qm94RGlzdGFuY2UoUG9pbnQgKnBvaW50LCBSZWN0Qm94ICpyZWN0 X2JveCkKIAllbHNlCiAJCWR5ID0gMDsKIAotCXJldHVybiBIWVBPVChkeCwgZHkpOworCXJldHVy biBIWVBPVChkeCwgZHksIE5VTEwpOwogfQogCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0 aWxzL2Zsb2F0LmggYi9zcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oCmluZGV4IGZjMmE5Y2Y2NDc1 Li41YTcwMzNmMmE2MCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaAorKysg Yi9zcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oCkBAIC0xMDksNiArMTA5LDI0IEBAIGZsb2F0NF9w bChjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIpCiAJcmV0dXJuIHJlc3VsdDsK IH0KIAorLyogZXJyb3Igc2FmZSB2ZXJzaW9uIG9mIGZsb2F0OF9wbCAqLworc3RhdGljIGlubGlu ZSBmbG9hdDgKK2Zsb2F0OF9wbF9zYWZlKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDgg dmFsMiwgc3RydWN0IE5vZGUgKmVzY29udGV4dCkKK3sKKwlmbG9hdDgJCXJlc3VsdDsKKworCXJl c3VsdCA9IHZhbDEgKyB2YWwyOworCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNp bmYodmFsMSkgJiYgIWlzaW5mKHZhbDIpKQorCXsKKwkJZXJyc2F2ZShlc2NvbnRleHQsCisJCQkJ ZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKKwkJCQllcnJtc2co InZhbHVlIG91dCBvZiByYW5nZTogb3ZlcmZsb3ciKSk7CisJCXJlc3VsdCA9IDAuMGY7CisJfQor CisJcmV0dXJuIHJlc3VsdDsKK30KKwogc3RhdGljIGlubGluZSBmbG9hdDgKIGZsb2F0OF9wbChj b25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCiB7CkBAIC0xMzMsNiArMTUxLDI0 IEBAIGZsb2F0NF9taShjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIpCiAJcmV0 dXJuIHJlc3VsdDsKIH0KIAorLyogZXJyb3Igc2FmZSB2ZXJzaW9uIG9mIGZsb2F0OF9taSAqLwor c3RhdGljIGlubGluZSBmbG9hdDgKK2Zsb2F0OF9taV9zYWZlKGNvbnN0IGZsb2F0OCB2YWwxLCBj b25zdCBmbG9hdDggdmFsMiwgc3RydWN0IE5vZGUgKmVzY29udGV4dCkKK3sKKwlmbG9hdDgJCXJl c3VsdDsKKworCXJlc3VsdCA9IHZhbDEgLSB2YWwyOworCWlmICh1bmxpa2VseShpc2luZihyZXN1 bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZhbDIpKQorCXsKKwkJZXJyc2F2ZShlc2Nv bnRleHQsCisJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwK KwkJCQllcnJtc2coInZhbHVlIG91dCBvZiByYW5nZTogb3ZlcmZsb3ciKSk7CisJCXJlc3VsdCAg PSAwLjBmOworCX0KKworCXJldHVybiByZXN1bHQ7Cit9CisKIHN0YXRpYyBpbmxpbmUgZmxvYXQ4 CiBmbG9hdDhfbWkoY29uc3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyKQogewpAQCAt MTU5LDYgKzE5NSwzNiBAQCBmbG9hdDRfbXVsKGNvbnN0IGZsb2F0NCB2YWwxLCBjb25zdCBmbG9h dDQgdmFsMikKIAlyZXR1cm4gcmVzdWx0OwogfQogCisvKiBlcnJvciBzYWZlIHZlcnNpb24gb2Yg ZmxvYXQ4X211bCAqLworc3RhdGljIGlubGluZSBmbG9hdDgKK2Zsb2F0OF9tdWxfc2FmZShjb25z dCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIsIHN0cnVjdCBOb2RlICplc2NvbnRleHQp Cit7CisJZmxvYXQ4CQlyZXN1bHQ7CisKKwlyZXN1bHQgPSB2YWwxICogdmFsMjsKKwlpZiAodW5s aWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKKwl7 CisJCWVycnNhdmUoZXNjb250ZXh0LAorCQkJCWVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVF X09VVF9PRl9SQU5HRSksCisJCQkJZXJybXNnKCJ2YWx1ZSBvdXQgb2YgcmFuZ2U6IG92ZXJmbG93 IikpOworCisJCXJlc3VsdCA9IDAuMDsKKwkJcmV0dXJuIHJlc3VsdDsKKwl9CisKKwlpZiAodW5s aWtlbHkocmVzdWx0ID09IDAuMCkgJiYgdmFsMSAhPSAwLjAgJiYgdmFsMiAhPSAwLjApCisJewor CQllcnJzYXZlKGVzY29udGV4dCwKKwkJCQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9P VVRfT0ZfUkFOR0UpLAorCQkJCWVycm1zZygidmFsdWUgb3V0IG9mIHJhbmdlOiB1bmRlcmZsb3ci KSk7CisKKwkJcmVzdWx0ID0gMC4wOworCQlyZXR1cm4gcmVzdWx0OworCX0KKworCXJldHVybiBy ZXN1bHQ7Cit9CisKIHN0YXRpYyBpbmxpbmUgZmxvYXQ4CiBmbG9hdDhfbXVsKGNvbnN0IGZsb2F0 OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIHsKQEAgLTE4OSw2ICsyNTUsNDcgQEAgZmxvYXQ0 X2Rpdihjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIpCiAJcmV0dXJuIHJlc3Vs dDsKIH0KIAorLyogZXJyb3Igc2FmZSB2ZXJzaW9uIG9mIGZsb2F0OF9kaXYgKi8KK3N0YXRpYyBp bmxpbmUgZmxvYXQ4CitmbG9hdDhfZGl2X3NhZmUoY29uc3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZs b2F0OCB2YWwyLCBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQoreworCWZsb2F0OAkJcmVzdWx0Owor CisJaWYgKHVubGlrZWx5KHZhbDIgPT0gMC4wKSAmJiAhaXNuYW4odmFsMSkpCisJeworCQllcnJz YXZlKGVzY29udGV4dCwKKwkJCQllcnJjb2RlKEVSUkNPREVfRElWSVNJT05fQllfWkVSTyksCisJ CQkJZXJybXNnKCJkaXZpc2lvbiBieSB6ZXJvIikpOworCisJCXJlc3VsdCA9IDAuMDsKKwkJcmV0 dXJuIHJlc3VsdDsKKwl9CisKKwlyZXN1bHQgPSB2YWwxIC8gdmFsMjsKKworCWlmICh1bmxpa2Vs eShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkpCisJeworCQllcnJzYXZlKGVzY29udGV4 dCwKKwkJCQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAorCQkJ CWVycm1zZygidmFsdWUgb3V0IG9mIHJhbmdlOiBvdmVyZmxvdyIpKTsKKworCQlyZXN1bHQgPSAw LjA7CisJCXJldHVybiByZXN1bHQ7CisJfQorCisJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjAp ICYmIHZhbDEgIT0gMC4wICYmICFpc2luZih2YWwyKSkKKwl7CisJCWVycnNhdmUoZXNjb250ZXh0 LAorCQkJCWVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCisJCQkJ ZXJybXNnKCJ2YWx1ZSBvdXQgb2YgcmFuZ2U6IHVuZGVyZmxvdyIpKTsKKworCQlyZXN1bHQgPSAw LjA7CisJCXJldHVybiByZXN1bHQ7CisJfQorCisJcmV0dXJuIHJlc3VsdDsKK30KKwogc3RhdGlj IGlubGluZSBmbG9hdDgKIGZsb2F0OF9kaXYoY29uc3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0 OCB2YWwyKQogewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvZ2VvX2RlY2xzLmggYi9z cmMvaW5jbHVkZS91dGlscy9nZW9fZGVjbHMuaAppbmRleCA4YTlkZjc1YzkzYy4uMDA1NmEyNjYz OWYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2dlb19kZWNscy5oCisrKyBiL3NyYy9p bmNsdWRlL3V0aWxzL2dlb19kZWNscy5oCkBAIC04OCw3ICs4OCw3IEBAIEZQZ2UoZG91YmxlIEEs IGRvdWJsZSBCKQogI2RlZmluZSBGUGdlKEEsQikJCQkJKChBKSA+PSAoQikpCiAjZW5kaWYKIAot I2RlZmluZSBIWVBPVChBLCBCKQkJCQlwZ19oeXBvdChBLCBCKQorI2RlZmluZSBIWVBPVChBLCBC LCBlc2NvbnRleHQpCQkJCXBnX2h5cG90KEEsIEIsIGVzY29udGV4dCkKIAogLyotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAqIFBvaW50IC0gKHgseSkKQEAgLTI4MCw2ICsyODAsNiBAQCBDaXJjbGVQR2V0RGF0dW0o Y29uc3QgQ0lSQ0xFICpYKQogICogaW4gZ2VvX29wcy5jCiAgKi8KIAotZXh0ZXJuIGZsb2F0OCBw Z19oeXBvdChmbG9hdDggeCwgZmxvYXQ4IHkpOworZXh0ZXJuIGZsb2F0OCBwZ19oeXBvdChmbG9h dDggeCwgZmxvYXQ4IHksIE5vZGUgKmVzY29udGV4dCk7CiAKICNlbmRpZgkJCQkJCQkvKiBHRU9f REVDTFNfSCAqLwotLSAKMi4zNC4xCgo= --000000000000b88c47064114c15d Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v8-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgpwv24b4 RnJvbSBhMTZlMDM4ODAzY2M2NGY4MzVlZDM3MTc0ZTA2NjUyZjE3YzI2MDg4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODo0NDozNSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjgg MTYvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgdGltZXN0YW1wIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLCBjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUKZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbiBwcC5vaWQgPSBwYy5jYXN0ZnVu YwphbmQgcGMuY2FzdGZ1bmMgPiAwIGFuZCAoY2FzdHNvdXJjZTo6cmVndHlwZSA9J3RpbWVzdGFt cCc6OnJlZ3R5cGUpCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogICAgICAgICBjYXN0 c291cmNlICAgICAgICAgIHwgICAgICAgICBjYXN0dGFyZ2V0ICAgICAgICAgIHwgY2FzdGZ1bmMg fCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAgICAgcHJvc3JjICAgICAgICAgfCAgIHBy b25hbWUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCiB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUg fCBkYXRlICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMjAyOSB8IGEgICAgICAgICAgIHwg ZiAgICAgICAgICB8IHRpbWVzdGFtcF9kYXRlICAgICAgICB8IGRhdGUKIHRpbWVzdGFtcCB3aXRo b3V0IHRpbWUgem9uZSB8IHRpbWUgd2l0aG91dCB0aW1lIHpvbmUgICAgICB8ICAgICAxMzE2IHwg YSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wX3RpbWUgICAgICAgIHwgdGltZQog dGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgdGltZXN0YW1wIHdpdGggdGltZSB6b25lICAg IHwgICAgIDIwMjggfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCB0aW1lc3RhbXBfdGltZXN0 YW1wdHogfCB0aW1lc3RhbXB0egogdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgdGltZXN0 YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgICAgIDE5NjEgfCBpICAgICAgICAgICB8IGYgICAgICAg ICAgfCB0aW1lc3RhbXBfc2NhbGUgICAgICAgfCB0aW1lc3RhbXAKKDQgcm93cykKCmRpc2N1c3Np b246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNr UThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2RhdGUuYyAgICAgIHwgMTMgKysrKysrKysrKystLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3RpbWVzdGFtcC5jIHwgMTcgKysrKysrKysrKysrKysrLS0KIDIgZmlsZXMgY2hhbmdlZCwgMjYg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvZGF0ZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwppbmRleCAxMTFi ZmQ4ZjUxOS4uYzU1NjJiNTYzZTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9k YXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwpAQCAtMTM3Myw3ICsxMzcz LDE2IEBAIHRpbWVzdGFtcF9kYXRlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJVGltZXN0YW1wCXRpbWVz dGFtcCA9IFBHX0dFVEFSR19USU1FU1RBTVAoMCk7CiAJRGF0ZUFEVAkJcmVzdWx0OwogCi0JcmVz dWx0ID0gdGltZXN0YW1wMmRhdGVfb3B0X292ZXJmbG93KHRpbWVzdGFtcCwgTlVMTCk7CisJaWYg KGxpa2VseSghZmNpbmZvLT5jb250ZXh0KSkKKwkJcmVzdWx0ID0gdGltZXN0YW1wdHoyZGF0ZV9v cHRfb3ZlcmZsb3codGltZXN0YW1wLCBOVUxMKTsKKwllbHNlCisJeworCQlpbnQJCQlvdmVyZmxv dzsKKwkJcmVzdWx0ID0gdGltZXN0YW1wMmRhdGVfb3B0X292ZXJmbG93KHRpbWVzdGFtcCwgJm92 ZXJmbG93KTsKKworCQlpZiAob3ZlcmZsb3cgIT0gMCkKKwkJCVBHX1JFVFVSTl9OVUxMKCk7CisJ fQogCVBHX1JFVFVSTl9EQVRFQURUKHJlc3VsdCk7CiB9CiAKQEAgLTIwODksNyArMjA5OCw3IEBA IHRpbWVzdGFtcF90aW1lKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCVBHX1JFVFVSTl9OVUxMKCk7CiAK IAlpZiAodGltZXN0YW1wMnRtKHRpbWVzdGFtcCwgTlVMTCwgdG0sICZmc2VjLCBOVUxMLCBOVUxM KSAhPSAwKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERh dHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfREFURVRJTUVfVkFMVUVfT1VUX09GX1JBTkdF KSwKIAkJCQkgZXJybXNnKCJ0aW1lc3RhbXAgb3V0IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3RpbWVzdGFtcC5jCmluZGV4IDExNmUzZWYyOGZjLi43YTU3YWMzZWFmNiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC90aW1lc3RhbXAuYwpAQCAtMzUyLDcgKzM1Miw4IEBAIHRpbWVzdGFtcF9zY2FsZShQ R19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gdGltZXN0YW1wOwogCi0JQWRqdXN0VGltZXN0 YW1wRm9yVHlwbW9kKCZyZXN1bHQsIHR5cG1vZCwgTlVMTCk7CisJaWYgKCFBZGp1c3RUaW1lc3Rh bXBGb3JUeXBtb2QoJnJlc3VsdCwgdHlwbW9kLCBmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRV Uk5fTlVMTCgpOwogCiAJUEdfUkVUVVJOX1RJTUVTVEFNUChyZXN1bHQpOwogfQpAQCAtNjQzMCw3 ICs2NDMxLDE5IEBAIHRpbWVzdGFtcF90aW1lc3RhbXB0eihQR19GVU5DVElPTl9BUkdTKQogewog CVRpbWVzdGFtcAl0aW1lc3RhbXAgPSBQR19HRVRBUkdfVElNRVNUQU1QKDApOwogCi0JUEdfUkVU VVJOX1RJTUVTVEFNUFRaKHRpbWVzdGFtcDJ0aW1lc3RhbXB0eih0aW1lc3RhbXApKTsKKwlpZiAo bGlrZWx5KCFmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fVElNRVNUQU1QVFoodGltZXN0 YW1wMnRpbWVzdGFtcHR6KHRpbWVzdGFtcCkpOworCWVsc2UKKwl7CisJCVRpbWVzdGFtcFR6IHJl c3VsdDsKKwkJaW50CQkJb3ZlcmZsb3c7CisKKwkJcmVzdWx0ID0gdGltZXN0YW1wMnRpbWVzdGFt cHR6X29wdF9vdmVyZmxvdyh0aW1lc3RhbXAsICZvdmVyZmxvdyk7CisJCWlmIChvdmVyZmxvdyAh PSAwKQorCQkJUEdfUkVUVVJOX05VTEwoKTsKKwkJZWxzZQorCQkJUEdfUkVUVVJOX1RJTUVTVEFN UFRaKHJlc3VsdCk7CisJfQogfQogCiAvKgotLSAKMi4zNC4xCgo= --000000000000b88c47064114c15d Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v8-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgpwv24d5 RnJvbSA4MjMwODc2YzM4NDYzYTdmZjA3NzhhNThkYTgyMDg1OTNlMmY2ZjU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgNiBPY3QgMjAyNSAxMjozOToyMiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjgg MTUvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgdGltZXN0YW1wdHogdG8gb3RoZXIgdHlwZXMK IHBlciBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVn dHlwZSwgY2FzdGZ1bmMsIGNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJv bmFtZQpmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uIHBwLm9pZCA9IHBjLmNhc3Rm dW5jCmFuZCBwYy5jYXN0ZnVuYyA+IDAgYW5kIChjYXN0c291cmNlOjpyZWd0eXBlID0ndGltZXN0 YW1wdHonOjpyZWd0eXBlKQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKICAgICAgICBj YXN0c291cmNlICAgICAgICB8ICAgICAgICAgY2FzdHRhcmdldCAgICAgICAgICB8IGNhc3RmdW5j IHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgICAgIHByb3NyYyAgICAgICAgIHwgICBw cm9uYW1lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQogdGltZXN0YW1wIHdpdGggdGltZSB6b25lIHwgZGF0 ZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIDExNzggfCBhICAgICAgICAgICB8IGYgICAg ICAgICAgfCB0aW1lc3RhbXB0el9kYXRlICAgICAgfCBkYXRlCiB0aW1lc3RhbXAgd2l0aCB0aW1l IHpvbmUgfCB0aW1lIHdpdGhvdXQgdGltZSB6b25lICAgICAgfCAgICAgMjAxOSB8IGEgICAgICAg ICAgIHwgZiAgICAgICAgICB8IHRpbWVzdGFtcHR6X3RpbWUgICAgICB8IHRpbWUKIHRpbWVzdGFt cCB3aXRoIHRpbWUgem9uZSB8IHRpbWVzdGFtcCB3aXRob3V0IHRpbWUgem9uZSB8ICAgICAyMDI3 IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wdHpfdGltZXN0YW1wIHwgdGlt ZXN0YW1wCiB0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUgfCB0aW1lIHdpdGggdGltZSB6b25lICAg ICAgICAgfCAgICAgMTM4OCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRpbWVzdGFtcHR6 X3RpbWV0eiAgICB8IHRpbWV0egogdGltZXN0YW1wIHdpdGggdGltZSB6b25lIHwgdGltZXN0YW1w IHdpdGggdGltZSB6b25lICAgIHwgICAgIDE5NjcgfCBpICAgICAgICAgICB8IGYgICAgICAgICAg fCB0aW1lc3RhbXB0el9zY2FsZSAgICAgfCB0aW1lc3RhbXB0egooNSByb3dzKQoKZGlzY3Vzc2lv bjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tR OGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9h ZHQvZGF0ZS5jICAgICAgfCAxNiArKysrKysrKysrKysrLS0tCiBzcmMvYmFja2VuZC91dGlscy9h ZHQvdGltZXN0YW1wLmMgfCAxNyArKysrKysrKysrKysrKystLQogMiBmaWxlcyBjaGFuZ2VkLCAy OCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9kYXRlLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCmluZGV4IDRm MGYzZDI2OTg5Li4xMTFiZmQ4ZjUxOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2RhdGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCkBAIC0xNDY4LDcgKzE0 NjgsMTcgQEAgdGltZXN0YW1wdHpfZGF0ZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVzdGFtcFR6 IHRpbWVzdGFtcCA9IFBHX0dFVEFSR19USU1FU1RBTVAoMCk7CiAJRGF0ZUFEVAkJcmVzdWx0Owog Ci0JcmVzdWx0ID0gdGltZXN0YW1wdHoyZGF0ZV9vcHRfb3ZlcmZsb3codGltZXN0YW1wLCBOVUxM KTsKKwlpZiAobGlrZWx5KCFmY2luZm8tPmNvbnRleHQpKQorCQlyZXN1bHQgPSB0aW1lc3RhbXB0 ejJkYXRlX29wdF9vdmVyZmxvdyh0aW1lc3RhbXAsIE5VTEwpOworCWVsc2UKKwl7CisJCWludAkJ CW92ZXJmbG93OworCQlyZXN1bHQgPSB0aW1lc3RhbXB0ejJkYXRlX29wdF9vdmVyZmxvdyh0aW1l c3RhbXAsICZvdmVyZmxvdyk7CisKKwkJaWYgKG92ZXJmbG93ICE9IDApCisJCQlQR19SRVRVUk5f TlVMTCgpOworCX0KKwogCVBHX1JFVFVSTl9EQVRFQURUKHJlc3VsdCk7CiB9CiAKQEAgLTIxMTAs NyArMjEyMCw3IEBAIHRpbWVzdGFtcHR6X3RpbWUoUEdfRlVOQ1RJT05fQVJHUykKIAkJUEdfUkVU VVJOX05VTEwoKTsKIAogCWlmICh0aW1lc3RhbXAydG0odGltZXN0YW1wLCAmdHosIHRtLCAmZnNl YywgTlVMTCwgTlVMTCkgIT0gMCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8t PmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEVUSU1FX1ZBTFVF X09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygidGltZXN0YW1wIG91dCBvZiByYW5nZSIpKSk7 CiAKQEAgLTMwMjksNyArMzAzOSw3IEBAIHRpbWVzdGFtcHR6X3RpbWV0eihQR19GVU5DVElPTl9B UkdTKQogCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJaWYgKHRpbWVzdGFtcDJ0bSh0aW1lc3RhbXAs ICZ0eiwgdG0sICZmc2VjLCBOVUxMLCBOVUxMKSAhPSAwKQotCQllcmVwb3J0KEVSUk9SLAorCQll cmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVf REFURVRJTUVfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJ0aW1lc3RhbXAgb3V0 IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVz dGFtcC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCmluZGV4IDdiNTY1Y2M2 ZDY2Li4xMTZlM2VmMjhmYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVz dGFtcC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYwpAQCAtODc1LDcg Kzg3NSw4IEBAIHRpbWVzdGFtcHR6X3NjYWxlKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHQg PSB0aW1lc3RhbXA7CiAKLQlBZGp1c3RUaW1lc3RhbXBGb3JUeXBtb2QoJnJlc3VsdCwgdHlwbW9k LCBOVUxMKTsKKwlpZiAoIUFkanVzdFRpbWVzdGFtcEZvclR5cG1vZCgmcmVzdWx0LCB0eXBtb2Qs IGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fVElN RVNUQU1QVFoocmVzdWx0KTsKIH0KQEAgLTY1MDcsNyArNjUwOCwxOSBAQCB0aW1lc3RhbXB0el90 aW1lc3RhbXAoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlUaW1lc3RhbXBUeiB0aW1lc3RhbXAgPSBQ R19HRVRBUkdfVElNRVNUQU1QVFooMCk7CiAKLQlQR19SRVRVUk5fVElNRVNUQU1QKHRpbWVzdGFt cHR6MnRpbWVzdGFtcCh0aW1lc3RhbXApKTsKKwlpZiAobGlrZWx5KCFmY2luZm8tPmNvbnRleHQp KQorCQlQR19SRVRVUk5fVElNRVNUQU1QKHRpbWVzdGFtcHR6MnRpbWVzdGFtcCh0aW1lc3RhbXAp KTsKKwllbHNlCisJeworCQlpbnQJCQlvdmVyZmxvdzsKKwkJVGltZXN0YW1wCXJlc3VsdDsKKwor CQlyZXN1bHQgPSB0aW1lc3RhbXB0ejJ0aW1lc3RhbXBfb3B0X292ZXJmbG93KHRpbWVzdGFtcCwg Jm92ZXJmbG93KTsKKwkJaWYgKG92ZXJmbG93ICE9IDApCisJCQlQR19SRVRVUk5fTlVMTCgpOwor CQllbHNlCisJCQlQR19SRVRVUk5fVElNRVNUQU1QKHJlc3VsdCk7CisJfQogfQogCiAvKgotLSAK Mi4zNC4xCgo= --000000000000b88c47064114c15d Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v8-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgpwv24g7 RnJvbSA3MTdmZGVmNDZhOGFhOTYyOGRlYTE5ZjIzNjg0YTRhNmVhMmY4NjU5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODo0Mjo1MCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjgg MTMvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgZGF0ZSB0byBvdGhlciB0eXBlcyBwZXIKIHBn X2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBlLCBj YXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1lIGZy b20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1bmMgYW5k IHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdkYXRlJzo6cmVndHlw ZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKY2FzdHNvdXJjZSB8ICAgICAgICAgY2Fz dHRhcmdldCAgICAgICAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwg ICAgICBwcm9zcmMgICAgICB8ICAgcHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQogZGF0ZSAgICAgICB8IHRpbWVzdGFtcCB3aXRo b3V0IHRpbWUgem9uZSB8ICAgICAyMDI0IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZGF0 ZV90aW1lc3RhbXAgICB8IHRpbWVzdGFtcAogZGF0ZSAgICAgICB8IHRpbWVzdGFtcCB3aXRoIHRp bWUgem9uZSAgICB8ICAgICAxMTc0IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZGF0ZV90 aW1lc3RhbXB0eiB8IHRpbWVzdGFtcHR6CigyIHJvd3MpCgpkaXNjdXNzaW9uOiBodHRwczovL3Bv c3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZp XzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMgfCAy MiArKysrKysrKysrKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0 ZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwppbmRleCAzNDRmNThiOTJmNy4uYzdh M2NkZTJkODEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwpAQCAtMTM1MCw3ICsxMzUwLDE2IEBAIGRhdGVf dGltZXN0YW1wKFBHX0ZVTkNUSU9OX0FSR1MpCiAJRGF0ZUFEVAkJZGF0ZVZhbCA9IFBHX0dFVEFS R19EQVRFQURUKDApOwogCVRpbWVzdGFtcAlyZXN1bHQ7CiAKLQlyZXN1bHQgPSBkYXRlMnRpbWVz dGFtcChkYXRlVmFsKTsKKwlpZiAobGlrZWx5KCFmY2luZm8tPmNvbnRleHQpKQorCQlyZXN1bHQg PSBkYXRlMnRpbWVzdGFtcChkYXRlVmFsKTsKKwllbHNlCisJeworCQlpbnQJCQlvdmVyZmxvdzsK KworCQlyZXN1bHQgPSBkYXRlMnRpbWVzdGFtcF9vcHRfb3ZlcmZsb3coZGF0ZVZhbCwgJm92ZXJm bG93KTsKKwkJaWYgKG92ZXJmbG93ICE9IDApCisJCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAog CVBHX1JFVFVSTl9USU1FU1RBTVAocmVzdWx0KTsKIH0KQEAgLTE0MzUsNyArMTQ0NCwxNiBAQCBk YXRlX3RpbWVzdGFtcHR6KFBHX0ZVTkNUSU9OX0FSR1MpCiAJRGF0ZUFEVAkJZGF0ZVZhbCA9IFBH X0dFVEFSR19EQVRFQURUKDApOwogCVRpbWVzdGFtcFR6IHJlc3VsdDsKIAotCXJlc3VsdCA9IGRh dGUydGltZXN0YW1wdHooZGF0ZVZhbCk7CisJaWYgKGxpa2VseSghZmNpbmZvLT5jb250ZXh0KSkK KwkJcmVzdWx0ID0gZGF0ZTJ0aW1lc3RhbXB0eihkYXRlVmFsKTsKKwllbHNlCisJeworCQlpbnQJ CQlvdmVyZmxvdzsKKwkJcmVzdWx0ID0gZGF0ZTJ0aW1lc3RhbXB0el9vcHRfb3ZlcmZsb3coZGF0 ZVZhbCwgJm92ZXJmbG93KTsKKworCQlpZiAob3ZlcmZsb3cgIT0gMCkKKwkJCVBHX1JFVFVSTl9O VUxMKCk7CisJfQogCiAJUEdfUkVUVVJOX1RJTUVTVEFNUChyZXN1bHQpOwogfQotLSAKMi4zNC4x Cgo= --000000000000b88c47064114c15d Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v8-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgpwv24f6 RnJvbSA0ODhmYWI4ZmI2ZDRmM2JlMjViMzQ3MTM3ZDc0MzYzMWNmZjNhN2I3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODo0MzoyOSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjgg MTQvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgaW50ZXJ2YWwgdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnaW50ZXJ2YWwn OjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAg ICAgIGNhc3R0YXJnZXQgICAgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhv ZCB8ICAgICBwcm9zcmMgICAgIHwgcHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tCiBpbnRlcnZhbCAgIHwgdGltZSB3aXRob3V0IHRpbWUgem9uZSB8 ICAgICAxNDE5IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaW50ZXJ2YWxfdGltZSAgfCB0 aW1lCiBpbnRlcnZhbCAgIHwgaW50ZXJ2YWwgICAgICAgICAgICAgICB8ICAgICAxMjAwIHwgaSAg ICAgICAgICAgfCBmICAgICAgICAgIHwgaW50ZXJ2YWxfc2NhbGUgfCBpbnRlcnZhbAooMiByb3dz KQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3 TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvZGF0ZS5jICAgICAgfCAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQv dGltZXN0YW1wLmMgfCAzICsrLQogMiBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKaW5kZXggYzdhM2NkZTJkODEuLjRmMGYzZDI2 OTg5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCisrKyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKQEAgLTIxODAsNyArMjE4MCw3IEBAIGludGVydmFsX3Rp bWUoUEdfRlVOQ1RJT05fQVJHUykKIAlUaW1lQURUCQlyZXN1bHQ7CiAKIAlpZiAoSU5URVJWQUxf Tk9UX0ZJTklURShzcGFuKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNv bnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEVUSU1FX1ZBTFVFX09V VF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiY2Fubm90IGNvbnZlcnQgaW5maW5pdGUgaW50ZXJ2 YWwgdG8gdGltZSIpKSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1l c3RhbXAuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYwppbmRleCAxNTZhNDgz MGZmZC4uN2I1NjVjYzZkNjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1l c3RhbXAuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKQEAgLTEzMzQs NyArMTMzNCw4IEBAIGludGVydmFsX3NjYWxlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJcmVzdWx0ID0g cGFsbG9jKHNpemVvZihJbnRlcnZhbCkpOwogCSpyZXN1bHQgPSAqaW50ZXJ2YWw7CiAKLQlBZGp1 c3RJbnRlcnZhbEZvclR5cG1vZChyZXN1bHQsIHR5cG1vZCwgTlVMTCk7CisJaWYgKCFBZGp1c3RJ bnRlcnZhbEZvclR5cG1vZChyZXN1bHQsIHR5cG1vZCwgZmNpbmZvLT5jb250ZXh0KSkKKwkJUEdf UkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9JTlRFUlZBTF9QKHJlc3VsdCk7CiB9Ci0tIAoy LjM0LjEKCg== --000000000000b88c47064114c15d Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v8-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgpwv24k9 RnJvbSAwZmNkOWY1ZmFjMWExZDQxOGQzNWZlNjQyNzc1YjJkYjY5MzJkM2Y4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODozMzo1NyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjgg MTEvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgZmxvYXQ0IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2Zsb2F0NCc6OnJl Z3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgICAgY2Fz dHRhcmdldCAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgIHBy b3NyYyAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LQogcmVhbCAgICAgICB8IGJpZ2ludCAgICAgICAgICAgfCAgICAgIDY1MyB8IGEgICAgICAgICAg IHwgZiAgICAgICAgICB8IGZ0b2k4ICAgICAgICAgIHwgaW50OAogcmVhbCAgICAgICB8IHNtYWxs aW50ICAgICAgICAgfCAgICAgIDIzOCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IGZ0b2ky ICAgICAgICAgIHwgaW50MgogcmVhbCAgICAgICB8IGludGVnZXIgICAgICAgICAgfCAgICAgIDMx OSB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IGZ0b2k0ICAgICAgICAgIHwgaW50NAogcmVh bCAgICAgICB8IGRvdWJsZSBwcmVjaXNpb24gfCAgICAgIDMxMSB8IGkgICAgICAgICAgIHwgZiAg ICAgICAgICB8IGZ0b2QgICAgICAgICAgIHwgZmxvYXQ4CiByZWFsICAgICAgIHwgbnVtZXJpYyAg ICAgICAgICB8ICAgICAxNzQyIHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZmxvYXQ0X251 bWVyaWMgfCBudW1lcmljCig1IHJvd3MpCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9t L0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWls LmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jICAgfCAxMiArKysr KysrKysrLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMgICAgfCAgNiArKysrKy0KIHNy Yy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMgfCAgMyArKy0KIDMgZmlsZXMgY2hhbmdlZCwg MTcgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvZmxvYXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCmluZGV4 IDdiOTdkMmJlNmNhLi5kZDhhMmZmMzc4YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2Zsb2F0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMKQEAgLTEyOTgs MTAgKzEyOTgsMTQgQEAgZnRvaTQoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIFJhbmdlIGNoZWNr ICovCiAJaWYgKHVubGlrZWx5KGlzbmFuKG51bSkgfHwgIUZMT0FUNF9GSVRTX0lOX0lOVDMyKG51 bSkpKQotCQllcmVwb3J0KEVSUk9SLAorCXsKKwkJZXJyc2F2ZShmY2luZm8tPmNvbnRleHQsCiAJ CQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVy cm1zZygiaW50ZWdlciBvdXQgb2YgcmFuZ2UiKSkpOwogCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJ fQorCiAJUEdfUkVUVVJOX0lOVDMyKChpbnQzMikgbnVtKTsKIH0KIApAQCAtMTMyMywxMCArMTMy NywxNCBAQCBmdG9pMihQR19GVU5DVElPTl9BUkdTKQogCiAJLyogUmFuZ2UgY2hlY2sgKi8KIAlp ZiAodW5saWtlbHkoaXNuYW4obnVtKSB8fCAhRkxPQVQ0X0ZJVFNfSU5fSU5UMTYobnVtKSkpCi0J CWVyZXBvcnQoRVJST1IsCisJeworCQllcnJzYXZlKGZjaW5mby0+Y29udGV4dCwKIAkJCQkoZXJy Y29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJz bWFsbGludCBvdXQgb2YgcmFuZ2UiKSkpOwogCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQorCiAJ UEdfUkVUVVJOX0lOVDE2KChpbnQxNikgbnVtKTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2ludDguYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKaW5kZXgg M2IyZDEwMGJlOTIuLmJjZGIwMjBhOTFjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvaW50OC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKQEAgLTEzMDMsMTAg KzEzMDMsMTQgQEAgZnRvaTgoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIFJhbmdlIGNoZWNrICov CiAJaWYgKHVubGlrZWx5KGlzbmFuKG51bSkgfHwgIUZMT0FUNF9GSVRTX0lOX0lOVDY0KG51bSkp KQotCQllcmVwb3J0KEVSUk9SLAorCXsKKwkJZXJyc2F2ZShmY2luZm8tPmNvbnRleHQsCiAJCQkJ KGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1z ZygiYmlnaW50IG91dCBvZiByYW5nZSIpKSk7CiAKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CisK IAlQR19SRVRVUk5fSU5UNjQoKGludDY0KSBudW0pOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvbnVtZXJpYy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMu YwppbmRleCBjZTVmNzExMDllNy4uODgzOWIwOTVmNjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9udW1lcmljLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMu YwpAQCAtNDY2OCw3ICs0NjY4LDggQEAgZmxvYXQ0X251bWVyaWMoUEdfRlVOQ1RJT05fQVJHUykK IAlpbml0X3ZhcigmcmVzdWx0KTsKIAogCS8qIEFzc3VtZSB3ZSBuZWVkIG5vdCB3b3JyeSBhYm91 dCBsZWFkaW5nL3RyYWlsaW5nIHNwYWNlcyAqLwotCSh2b2lkKSBzZXRfdmFyX2Zyb21fc3RyKGJ1 ZiwgYnVmLCAmcmVzdWx0LCAmZW5kcHRyLCBOVUxMKTsKKwlpZiAoIXNldF92YXJfZnJvbV9zdHIo YnVmLCBidWYsICZyZXN1bHQsICZlbmRwdHIsIGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVS Tl9OVUxMKCk7CiAKIAlyZXMgPSBtYWtlX3Jlc3VsdCgmcmVzdWx0KTsKIAotLSAKMi4zNC4xCgo= --000000000000b88c47064114c15d Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v8-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgpwv24i8 RnJvbSBjMDlkNzFkMGJlM2U0YjM1ZGRhMmI4M2YzZmRlZWRkMzE4ZGY3NmI5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODo0MTo1NSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjgg MTIvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgZmxvYXQ4IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2Zsb2F0OCc6OnJl Z3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiAgICBjYXN0c291cmNlICAgIHwg Y2FzdHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgIHBy b3NyYyAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LQogZG91YmxlIHByZWNpc2lvbiB8IGJpZ2ludCAgICAgfCAgICAgIDQ4MyB8IGEgICAgICAgICAg IHwgZiAgICAgICAgICB8IGR0b2k4ICAgICAgICAgIHwgaW50OAogZG91YmxlIHByZWNpc2lvbiB8 IHNtYWxsaW50ICAgfCAgICAgIDIzNyB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IGR0b2ky ICAgICAgICAgIHwgaW50MgogZG91YmxlIHByZWNpc2lvbiB8IGludGVnZXIgICAgfCAgICAgIDMx NyB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IGR0b2k0ICAgICAgICAgIHwgaW50NAogZG91 YmxlIHByZWNpc2lvbiB8IHJlYWwgICAgICAgfCAgICAgIDMxMiB8IGEgICAgICAgICAgIHwgZiAg ICAgICAgICB8IGR0b2YgICAgICAgICAgIHwgZmxvYXQ0CiBkb3VibGUgcHJlY2lzaW9uIHwgbnVt ZXJpYyAgICB8ICAgICAxNzQzIHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZmxvYXQ4X251 bWVyaWMgfCBudW1lcmljCig1IHJvd3MpCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9t L0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWls LmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jICAgfCAyOSArKysr KysrKysrKysrKysrKysrKysrKysrLS0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYyAg ICB8ICA2ICsrKysrLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYyB8ICAzICsrLQog MyBmaWxlcyBjaGFuZ2VkLCAzMiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2Zsb2F0LmMKaW5kZXggZGQ4YTJmZjM3OGIuLjY3NDc1NDRiNjc5IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQv ZmxvYXQuYwpAQCAtMTE5OSw5ICsxMTk5LDIyIEBAIGR0b2YoUEdfRlVOQ1RJT05fQVJHUykKIAog CXJlc3VsdCA9IChmbG9hdDQpIG51bTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYg IWlzaW5mKG51bSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJeworCQllcnJzYXZlKGZj aW5mby0+Y29udGV4dCwKKwkJCQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0Zf UkFOR0UpLAorCQkJCWVycm1zZygidmFsdWUgb3V0IG9mIHJhbmdlOiBvdmVyZmxvdyIpKTsKKwor CQlQR19SRVRVUk5fTlVMTCgpOworCX0KKwogCWlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wZikg JiYgbnVtICE9IDAuMCkKLQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJeworCQllcnJzYXZl KGZjaW5mby0+Y29udGV4dCwKKwkJCQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRf T0ZfUkFOR0UpLAorCQkJCWVycm1zZygidmFsdWUgb3V0IG9mIHJhbmdlOiB1bmRlcmZsb3ciKSk7 CisKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAKIAlQR19SRVRVUk5fRkxPQVQ0KHJlc3VsdCk7 CiB9CkBAIC0xMjI0LDEwICsxMjM3LDE0IEBAIGR0b2k0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkv KiBSYW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDhfRklU U19JTl9JTlQzMihudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVycnNhdmUoZmNpbmZv LT5jb250ZXh0LAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFO R0UpLAogCQkJCSBlcnJtc2coImludGVnZXIgb3V0IG9mIHJhbmdlIikpKTsKIAorCQlQR19SRVRV Uk5fTlVMTCgpOworCX0KKwogCVBHX1JFVFVSTl9JTlQzMigoaW50MzIpIG51bSk7CiB9CiAKQEAg LTEyNDksMTAgKzEyNjYsMTQgQEAgZHRvaTIoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIFJhbmdl IGNoZWNrICovCiAJaWYgKHVubGlrZWx5KGlzbmFuKG51bSkgfHwgIUZMT0FUOF9GSVRTX0lOX0lO VDE2KG51bSkpKQotCQllcmVwb3J0KEVSUk9SLAorCXsKKwkJZXJyc2F2ZShmY2luZm8tPmNvbnRl eHQsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJ CQkJIGVycm1zZygic21hbGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIAorCQlQR19SRVRVUk5fTlVM TCgpOworCX0KKwogCVBHX1JFVFVSTl9JTlQxNigoaW50MTYpIG51bSk7CiB9CiAKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQv aW50OC5jCmluZGV4IGJjZGIwMjBhOTFjLi40MzdkYmJjY2Q0YSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2ludDguYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5j CkBAIC0xMjY4LDEwICsxMjY4LDE0IEBAIGR0b2k4KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBS YW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDhfRklUU19J Tl9JTlQ2NChudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVycnNhdmUoZmNpbmZvLT5j b250ZXh0LAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0Up LAogCQkJCSBlcnJtc2coImJpZ2ludCBvdXQgb2YgcmFuZ2UiKSkpOwogCisJCVBHX1JFVFVSTl9O VUxMKCk7CisJfQorCiAJUEdfUkVUVVJOX0lOVDY0KChpbnQ2NCkgbnVtKTsKIH0KIApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9udW1lcmljLmMKaW5kZXggODgzOWIwOTVmNjAuLjc2Y2Q5ODAwYzJhIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9udW1lcmljLmMKQEAgLTQ1NzAsNyArNDU3MCw4IEBAIGZsb2F0OF9udW1lcmljKFBHX0ZV TkNUSU9OX0FSR1MpCiAJaW5pdF92YXIoJnJlc3VsdCk7CiAKIAkvKiBBc3N1bWUgd2UgbmVlZCBu b3Qgd29ycnkgYWJvdXQgbGVhZGluZy90cmFpbGluZyBzcGFjZXMgKi8KLQkodm9pZCkgc2V0X3Zh cl9mcm9tX3N0cihidWYsIGJ1ZiwgJnJlc3VsdCwgJmVuZHB0ciwgTlVMTCk7CisJaWYgKCFzZXRf dmFyX2Zyb21fc3RyKGJ1ZiwgYnVmLCAmcmVzdWx0LCAmZW5kcHRyLCBmY2luZm8tPmNvbnRleHQp KQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJcmVzID0gbWFrZV9yZXN1bHQoJnJlc3VsdCk7CiAK LS0gCjIuMzQuMQoK --000000000000b88c47064114c15d Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v8-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgpwv24l10 RnJvbSBjMTg5MzE2OWQ5Mzk0MDA1MzczNTMwM2QwMDkzNjMyYjAzMGZmOGMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAyMTo1NzozMSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjgg MTAvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgbnVtZXJpYyB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l IGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdudW1lcmljJzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKY2FzdHNvdXJjZSB8ICAgIGNh c3R0YXJnZXQgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgICBw cm9zcmMgICAgIHwgcHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0KIG51bWVyaWMgICAgfCBiaWdpbnQgICAgICAgICAgIHwgICAgIDE3NzkgfCBhICAgICAgICAg ICB8IGYgICAgICAgICAgfCBudW1lcmljX2ludDggICB8IGludDgKIG51bWVyaWMgICAgfCBzbWFs bGludCAgICAgICAgIHwgICAgIDE3ODMgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBudW1l cmljX2ludDIgICB8IGludDIKIG51bWVyaWMgICAgfCBpbnRlZ2VyICAgICAgICAgIHwgICAgIDE3 NDQgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBudW1lcmljX2ludDQgICB8IGludDQKIG51 bWVyaWMgICAgfCByZWFsICAgICAgICAgICAgIHwgICAgIDE3NDUgfCBpICAgICAgICAgICB8IGYg ICAgICAgICAgfCBudW1lcmljX2Zsb2F0NCB8IGZsb2F0NAogbnVtZXJpYyAgICB8IGRvdWJsZSBw cmVjaXNpb24gfCAgICAgMTc0NiB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IG51bWVyaWNf ZmxvYXQ4IHwgZmxvYXQ4CiBudW1lcmljICAgIHwgbW9uZXkgICAgICAgICAgICB8ICAgICAzODI0 IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgbnVtZXJpY19jYXNoICAgfCBtb25leQogbnVt ZXJpYyAgICB8IG51bWVyaWMgICAgICAgICAgfCAgICAgMTcwMyB8IGkgICAgICAgICAgIHwgZiAg ICAgICAgICB8IG51bWVyaWMgICAgICAgIHwgbnVtZXJpYwooNyByb3dzKQoKZGlzY3Vzc2lvbjog aHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUNKdWZ4SENNenJIT1c9d1JlOEwzMHJNaEIzc2p3QXYxTEU5 MjhGYTdzeE11MVR4LWdAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQv bnVtZXJpYy5jIHwgNjggKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgNTMgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9u dW1lcmljLmMKaW5kZXggMjUwMTAwN2Q5ODEuLmNlNWY3MTEwOWU3IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9u dW1lcmljLmMKQEAgLTEyNDQsNyArMTI0NCw4IEBAIG51bWVyaWMJCShQR19GVU5DVElPTl9BUkdT KQogCSAqLwogCWlmIChOVU1FUklDX0lTX1NQRUNJQUwobnVtKSkKIAl7Ci0JCSh2b2lkKSBhcHBs eV90eXBtb2Rfc3BlY2lhbChudW0sIHR5cG1vZCwgTlVMTCk7CisJCWlmICghYXBwbHlfdHlwbW9k X3NwZWNpYWwobnVtLCB0eXBtb2QsIGZjaW5mby0+Y29udGV4dCkpCisJCQlQR19SRVRVUk5fTlVM TCgpOwogCQlQR19SRVRVUk5fTlVNRVJJQyhkdXBsaWNhdGVfbnVtZXJpYyhudW0pKTsKIAl9CiAK QEAgLTEyOTUsOCArMTI5Niw5IEBAIG51bWVyaWMJCShQR19GVU5DVElPTl9BUkdTKQogCWluaXRf dmFyKCZ2YXIpOwogCiAJc2V0X3Zhcl9mcm9tX251bShudW0sICZ2YXIpOwotCSh2b2lkKSBhcHBs eV90eXBtb2QoJnZhciwgdHlwbW9kLCBOVUxMKTsKLQluZXcgPSBtYWtlX3Jlc3VsdCgmdmFyKTsK KwlpZiAoIWFwcGx5X3R5cG1vZCgmdmFyLCB0eXBtb2QsIGZjaW5mby0+Y29udGV4dCkpCisJCVBH X1JFVFVSTl9OVUxMKCk7CisJbmV3ID0gbWFrZV9yZXN1bHRfc2FmZSgmdmFyLCBmY2luZm8tPmNv bnRleHQpOwogCiAJZnJlZV92YXIoJnZhcik7CiAKQEAgLTMwMTksNyArMzAyMSwxMCBAQCBudW1l cmljX211bChQR19GVU5DVElPTl9BUkdTKQogCU51bWVyaWMJCW51bTIgPSBQR19HRVRBUkdfTlVN RVJJQygxKTsKIAlOdW1lcmljCQlyZXM7CiAKLQlyZXMgPSBudW1lcmljX211bF9zYWZlKG51bTEs IG51bTIsIE5VTEwpOworCXJlcyA9IG51bWVyaWNfbXVsX3NhZmUobnVtMSwgbnVtMiwgZmNpbmZv LT5jb250ZXh0KTsKKworCWlmICh1bmxpa2VseShTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+ Y29udGV4dCkpKQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJUEdfUkVUVVJOX05VTUVSSUMocmVz KTsKIH0KQEAgLTQzOTMsOSArNDM5OCwxNSBAQCBudW1lcmljX2ludDRfc2FmZShOdW1lcmljIG51 bSwgTm9kZSAqZXNjb250ZXh0KQogRGF0dW0KIG51bWVyaWNfaW50NChQR19GVU5DVElPTl9BUkdT KQogeworCWludDMyCQlyZXN1bHQ7CiAJTnVtZXJpYwkJbnVtID0gUEdfR0VUQVJHX05VTUVSSUMo MCk7CiAKLQlQR19SRVRVUk5fSU5UMzIobnVtZXJpY19pbnQ0X3NhZmUobnVtLCBOVUxMKSk7CisJ cmVzdWx0ID0gbnVtZXJpY19pbnQ0X3NhZmUobnVtLCBmY2luZm8tPmNvbnRleHQpOworCisJaWYg KHVubGlrZWx5KFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkpCisJCVBHX1JF VFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fSU5UMzIocmVzdWx0KTsKIH0KIAogLyoKQEAgLTQ0 NjMsOSArNDQ3NCwxNSBAQCBudW1lcmljX2ludDhfc2FmZShOdW1lcmljIG51bSwgTm9kZSAqZXNj b250ZXh0KQogRGF0dW0KIG51bWVyaWNfaW50OChQR19GVU5DVElPTl9BUkdTKQogeworCWludDY0 CQlyZXN1bHQ7CiAJTnVtZXJpYwkJbnVtID0gUEdfR0VUQVJHX05VTUVSSUMoMCk7CiAKLQlQR19S RVRVUk5fSU5UNjQobnVtZXJpY19pbnQ4X3NhZmUobnVtLCBOVUxMKSk7CisJcmVzdWx0ID0gbnVt ZXJpY19pbnQ4X3NhZmUobnVtLCBmY2luZm8tPmNvbnRleHQpOworCisJaWYgKHVubGlrZWx5KFNP RlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkpCisJCVBHX1JFVFVSTl9OVUxMKCk7 CisKKwlQR19SRVRVUk5fSU5UNjQocmVzdWx0KTsKIH0KIAogCkBAIC00NDg5LDI4ICs0NTA2LDM4 IEBAIG51bWVyaWNfaW50MihQR19GVU5DVElPTl9BUkdTKQogCWlmIChOVU1FUklDX0lTX1NQRUNJ QUwobnVtKSkKIAl7CiAJCWlmIChOVU1FUklDX0lTX05BTihudW0pKQotCQkJZXJlcG9ydChFUlJP UiwKKwkJCWVycnNhdmUoZmNpbmZvLT5jb250ZXh0LAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZF QVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJCSBlcnJtc2coImNhbm5vdCBjb252ZXJ0IE5hTiB0 byAlcyIsICJzbWFsbGludCIpKSk7CiAJCWVsc2UKLQkJCWVyZXBvcnQoRVJST1IsCisJCQllcnJz YXZlKGZjaW5mby0+Y29udGV4dCwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9T VVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJjYW5ub3QgY29udmVydCBpbmZpbml0eSB0byAlcyIs ICJzbWFsbGludCIpKSk7CisKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAl9CiAKIAkvKiBDb252ZXJ0 IHRvIHZhcmlhYmxlIGZvcm1hdCBhbmQgdGhlbmNlIHRvIGludDggKi8KIAlpbml0X3Zhcl9mcm9t X251bShudW0sICZ4KTsKIAogCWlmICghbnVtZXJpY3Zhcl90b19pbnQ2NCgmeCwgJnZhbCkpCi0J CWVyZXBvcnQoRVJST1IsCisJeworCQllcnJzYXZlKGZjaW5mby0+Y29udGV4dCwKIAkJCQkoZXJy Y29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJz bWFsbGludCBvdXQgb2YgcmFuZ2UiKSkpOwogCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQorCiAJ aWYgKHVubGlrZWx5KHZhbCA8IFBHX0lOVDE2X01JTikgfHwgdW5saWtlbHkodmFsID4gUEdfSU5U MTZfTUFYKSkKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVycnNhdmUoZmNpbmZvLT5jb250ZXh0 LAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJ CSBlcnJtc2coInNtYWxsaW50IG91dCBvZiByYW5nZSIpKSk7CiAKKwkJUEdfUkVUVVJOX05VTEwo KTsKKwl9CisKIAkvKiBEb3duLWNvbnZlcnQgdG8gaW50MiAqLwogCXJlc3VsdCA9IChpbnQxNikg dmFsOwogCkBAIC00NTcyLDEwICs0NTk5LDE0IEBAIG51bWVyaWNfZmxvYXQ4KFBHX0ZVTkNUSU9O X0FSR1MpCiAKIAl0bXAgPSBEYXR1bUdldENTdHJpbmcoRGlyZWN0RnVuY3Rpb25DYWxsMShudW1l cmljX291dCwKIAkJCQkJCQkJCQkJICBOdW1lcmljR2V0RGF0dW0obnVtKSkpOwotCi0JcmVzdWx0 ID0gRGlyZWN0RnVuY3Rpb25DYWxsMShmbG9hdDhpbiwgQ1N0cmluZ0dldERhdHVtKHRtcCkpOwot Ci0JcGZyZWUodG1wKTsKKwlpZiAoIURpcmVjdElucHV0RnVuY3Rpb25DYWxsU2FmZShmbG9hdDhp biwgdG1wLAorCQkJCQkJCQkJIEludmFsaWRPaWQsIC0xLAorCQkJCQkJCQkJIChOb2RlICopIGZj aW5mby0+Y29udGV4dCwKKwkJCQkJCQkJCSAmcmVzdWx0KSkKKwl7CisJCXBmcmVlKHRtcCk7CisJ CVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJUEdfUkVUVVJOX0RBVFVNKHJlc3VsdCk7CiB9CkBA IC00NjY3LDcgKzQ2OTgsMTQgQEAgbnVtZXJpY19mbG9hdDQoUEdfRlVOQ1RJT05fQVJHUykKIAl0 bXAgPSBEYXR1bUdldENTdHJpbmcoRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX291dCwKIAkJ CQkJCQkJCQkJICBOdW1lcmljR2V0RGF0dW0obnVtKSkpOwogCi0JcmVzdWx0ID0gRGlyZWN0RnVu Y3Rpb25DYWxsMShmbG9hdDRpbiwgQ1N0cmluZ0dldERhdHVtKHRtcCkpOworCWlmICghRGlyZWN0 SW5wdXRGdW5jdGlvbkNhbGxTYWZlKGZsb2F0NGluLCB0bXAsCisJCQkJCQkJCQkgSW52YWxpZE9p ZCwgLTEsCisJCQkJCQkJCQkgKE5vZGUgKikgZmNpbmZvLT5jb250ZXh0LAorCQkJCQkJCQkJICZy ZXN1bHQpKQorCXsKKwkJcGZyZWUodG1wKTsKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAKIAlw ZnJlZSh0bXApOwogCi0tIAoyLjM0LjEKCg== --000000000000b88c47064114c15d Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v8-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgpwv24o12 RnJvbSA4ZmU2MDc3MDhjODI5MTY0OWU2ZWFiMWRiYWE0MTU5YmFjMDZiNGI3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxNjowNDowNyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjgg MDgvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgaW50ZWdlciB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l IGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdpbnRlZ2VyJzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAgICBj YXN0dGFyZ2V0ICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBw cm9zcmMgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0K IGludGVnZXIgICAgfCBiaWdpbnQgICAgICAgICAgIHwgICAgICA0ODEgfCBpICAgICAgICAgICB8 IGYgICAgICAgICAgfCBpbnQ0OCAgICAgICAgfCBpbnQ4CiBpbnRlZ2VyICAgIHwgc21hbGxpbnQg ICAgICAgICB8ICAgICAgMzE0IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaTR0b2kyICAg ICAgIHwgaW50MgogaW50ZWdlciAgICB8IHJlYWwgICAgICAgICAgICAgfCAgICAgIDMxOCB8IGkg ICAgICAgICAgIHwgZiAgICAgICAgICB8IGk0dG9mICAgICAgICB8IGZsb2F0NAogaW50ZWdlciAg ICB8IGRvdWJsZSBwcmVjaXNpb24gfCAgICAgIDMxNiB8IGkgICAgICAgICAgIHwgZiAgICAgICAg ICB8IGk0dG9kICAgICAgICB8IGZsb2F0OAogaW50ZWdlciAgICB8IG51bWVyaWMgICAgICAgICAg fCAgICAgMTc0MCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDRfbnVtZXJpYyB8IG51 bWVyaWMKIGludGVnZXIgICAgfCBtb25leSAgICAgICAgICAgIHwgICAgIDM4MTEgfCBhICAgICAg ICAgICB8IGYgICAgICAgICAgfCBpbnQ0X2Nhc2ggICAgfCBtb25leQogaW50ZWdlciAgICB8IGJv b2xlYW4gICAgICAgICAgfCAgICAgMjU1NyB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGlu dDRfYm9vbCAgICB8IGJvb2wKIGludGVnZXIgICAgfCBieXRlYSAgICAgICAgICAgIHwgICAgIDYz NjggfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnQ0X2J5dGVhICAgfCBieXRlYQogaW50 ZWdlciAgICB8ICJjaGFyIiAgICAgICAgICAgfCAgICAgICA3OCB8IGUgICAgICAgICAgIHwgZiAg ICAgICAgICB8IGk0dG9jaGFyICAgICB8IGNoYXIKIGludGVnZXIgICAgfCBiaXQgICAgICAgICAg ICAgIHwgICAgIDE2ODMgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBiaXRmcm9taW50NCAg fCBiaXQKKDEwIHJvd3MpCgpvbmx5IGludDRfY2FzaCwgaTR0b2kyLCBpNHRvY2hhciBuZWVkIHRh a2UgY2FyZSBvZiBlcnJvciBoYW5kbGluZy4gIGJ1dCBzdXBwb3J0CmZvciBjYXNoIGRhdGEgdHlw ZSBpcyBub3QgZWFzeSwgc28gb25seSBpNHRvaTIsIGk0dG9jaGFyIGZ1bmN0aW9uIHJlZmFjdG9y aW5nLgoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1q Y3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMv YmFja2VuZC91dGlscy9hZHQvY2hhci5jIHwgNiArKysrKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC9pbnQuYyAgfCA1ICsrKystCiAyIGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvY2hhci5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2NoYXIuYwppbmRleCAyMmRiZmM5NTBiMS4uN2NmMDlkOTU0 ZTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2NoYXIuYwpAQCAtMTkyLDEwICsxOTIsMTQgQEAgaTR0b2NoYXIoUEdf RlVOQ1RJT05fQVJHUykKIAlpbnQzMgkJYXJnMSA9IFBHX0dFVEFSR19JTlQzMigwKTsKIAogCWlm IChhcmcxIDwgU0NIQVJfTUlOIHx8IGFyZzEgPiBTQ0hBUl9NQVgpCi0JCWVyZXBvcnQoRVJST1Is CisJeworCQllcnJzYXZlKGZjaW5mby0+Y29udGV4dCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05V TUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJcImNoYXJcIiBvdXQgb2Yg cmFuZ2UiKSkpOwogCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQorCiAJUEdfUkVUVVJOX0NIQVIo KGludDgpIGFyZzEpOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50 LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMKaW5kZXggYjU3ODE5ODlhNjQuLjRkM2Nl MjNhNGFmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2ludC5jCkBAIC0zNTAsMTAgKzM1MCwxMyBAQCBpNHRvaTIoUEdf RlVOQ1RJT05fQVJHUykKIAlpbnQzMgkJYXJnMSA9IFBHX0dFVEFSR19JTlQzMigwKTsKIAogCWlm ICh1bmxpa2VseShhcmcxIDwgU0hSVF9NSU4pIHx8IHVubGlrZWx5KGFyZzEgPiBTSFJUX01BWCkp Ci0JCWVyZXBvcnQoRVJST1IsCisJeworCQllcnJzYXZlKGZjaW5mby0+Y29udGV4dCwKIAkJCQko ZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNn KCJzbWFsbGludCBvdXQgb2YgcmFuZ2UiKSkpOwogCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQog CVBHX1JFVFVSTl9JTlQxNigoaW50MTYpIGFyZzEpOwogfQogCi0tIAoyLjM0LjEKCg== --000000000000b88c47064114c15d Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v8-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgpwv24n11 RnJvbSA1MWU0MGQ1YTBhYjFlNDFkZjk5MGQ4NjU3NWExNzM0ZTk5NTRmOTRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxNjozODozNyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjgg MDkvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgYmlnaW50IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2JpZ2ludCc6OnJl Z3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgICAgY2Fz dHRhcmdldCAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgcHJv c3JjICAgIHwgcHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCiBi aWdpbnQgICAgIHwgc21hbGxpbnQgICAgICAgICB8ICAgICAgNzE0IHwgYSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgaW50ODIgICAgICAgIHwgaW50MgogYmlnaW50ICAgICB8IGludGVnZXIgICAg ICAgICAgfCAgICAgIDQ4MCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDg0ICAgICAg ICB8IGludDQKIGJpZ2ludCAgICAgfCByZWFsICAgICAgICAgICAgIHwgICAgICA2NTIgfCBpICAg ICAgICAgICB8IGYgICAgICAgICAgfCBpOHRvZiAgICAgICAgfCBmbG9hdDQKIGJpZ2ludCAgICAg fCBkb3VibGUgcHJlY2lzaW9uIHwgICAgICA0ODIgfCBpICAgICAgICAgICB8IGYgICAgICAgICAg fCBpOHRvZCAgICAgICAgfCBmbG9hdDgKIGJpZ2ludCAgICAgfCBudW1lcmljICAgICAgICAgIHwg ICAgIDE3ODEgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnQ4X251bWVyaWMgfCBudW1l cmljCiBiaWdpbnQgICAgIHwgbW9uZXkgICAgICAgICAgICB8ICAgICAzODEyIHwgYSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgaW50OF9jYXNoICAgIHwgbW9uZXkKIGJpZ2ludCAgICAgfCBvaWQg ICAgICAgICAgICAgIHwgICAgIDEyODcgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBpOHRv b2lkICAgICAgfCBvaWQKIGJpZ2ludCAgICAgfCByZWdwcm9jICAgICAgICAgIHwgICAgIDEyODcg fCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBpOHRvb2lkICAgICAgfCBvaWQKIGJpZ2ludCAg ICAgfCByZWdwcm9jZWR1cmUgICAgIHwgICAgIDEyODcgfCBpICAgICAgICAgICB8IGYgICAgICAg ICAgfCBpOHRvb2lkICAgICAgfCBvaWQKIGJpZ2ludCAgICAgfCByZWdvcGVyICAgICAgICAgIHwg ICAgIDEyODcgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBpOHRvb2lkICAgICAgfCBvaWQK IGJpZ2ludCAgICAgfCByZWdvcGVyYXRvciAgICAgIHwgICAgIDEyODcgfCBpICAgICAgICAgICB8 IGYgICAgICAgICAgfCBpOHRvb2lkICAgICAgfCBvaWQKIGJpZ2ludCAgICAgfCByZWdjbGFzcyAg ICAgICAgIHwgICAgIDEyODcgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBpOHRvb2lkICAg ICAgfCBvaWQKIGJpZ2ludCAgICAgfCByZWdjb2xsYXRpb24gICAgIHwgICAgIDEyODcgfCBpICAg ICAgICAgICB8IGYgICAgICAgICAgfCBpOHRvb2lkICAgICAgfCBvaWQKIGJpZ2ludCAgICAgfCBy ZWd0eXBlICAgICAgICAgIHwgICAgIDEyODcgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBp OHRvb2lkICAgICAgfCBvaWQKIGJpZ2ludCAgICAgfCByZWdjb25maWcgICAgICAgIHwgICAgIDEy ODcgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBpOHRvb2lkICAgICAgfCBvaWQKIGJpZ2lu dCAgICAgfCByZWdkaWN0aW9uYXJ5ICAgIHwgICAgIDEyODcgfCBpICAgICAgICAgICB8IGYgICAg ICAgICAgfCBpOHRvb2lkICAgICAgfCBvaWQKIGJpZ2ludCAgICAgfCByZWdyb2xlICAgICAgICAg IHwgICAgIDEyODcgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBpOHRvb2lkICAgICAgfCBv aWQKIGJpZ2ludCAgICAgfCByZWduYW1lc3BhY2UgICAgIHwgICAgIDEyODcgfCBpICAgICAgICAg ICB8IGYgICAgICAgICAgfCBpOHRvb2lkICAgICAgfCBvaWQKIGJpZ2ludCAgICAgfCByZWdkYXRh YmFzZSAgICAgIHwgICAgIDEyODcgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBpOHRvb2lk ICAgICAgfCBvaWQKIGJpZ2ludCAgICAgfCBieXRlYSAgICAgICAgICAgIHwgICAgIDYzNjkgfCBl ICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnQ4X2J5dGVhICAgfCBieXRlYQogYmlnaW50ICAg ICB8IGJpdCAgICAgICAgICAgICAgfCAgICAgMjA3NSB8IGUgICAgICAgICAgIHwgZiAgICAgICAg ICB8IGJpdGZyb21pbnQ4ICB8IGJpdAooMjEgcm93cykKCmFscmVhZHkgZXJyb3Igc2FmZTogaTh0 b2YsIGk4dG9kLCBpbnQ4X251bWVyaWMsIGludDhfYnl0ZWEsIGJpdGZyb21pbnQ4CmRpc2N1c3Np b246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNr UThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2ludDguYyB8IDE4ICsrKysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDE1IGlu c2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L2ludDguYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKaW5kZXggYmRlYTQ5 MDIwMmEuLjNiMmQxMDBiZTkyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50 OC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKQEAgLTEyMDQsMTAgKzEyMDQs MTQgQEAgaW50ODQoUEdfRlVOQ1RJT05fQVJHUykKIAlpbnQ2NAkJYXJnID0gUEdfR0VUQVJHX0lO VDY0KDApOwogCiAJaWYgKHVubGlrZWx5KGFyZyA8IFBHX0lOVDMyX01JTikgfHwgdW5saWtlbHko YXJnID4gUEdfSU5UMzJfTUFYKSkKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVycnNhdmUoZmNp bmZvLT5jb250ZXh0LAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0Zf UkFOR0UpLAogCQkJCSBlcnJtc2coImludGVnZXIgb3V0IG9mIHJhbmdlIikpKTsKIAorCQlQR19S RVRVUk5fTlVMTCgpOworCX0KKwogCVBHX1JFVFVSTl9JTlQzMigoaW50MzIpIGFyZyk7CiB9CiAK QEAgLTEyMjUsMTAgKzEyMjksMTQgQEAgaW50ODIoUEdfRlVOQ1RJT05fQVJHUykKIAlpbnQ2NAkJ YXJnID0gUEdfR0VUQVJHX0lOVDY0KDApOwogCiAJaWYgKHVubGlrZWx5KGFyZyA8IFBHX0lOVDE2 X01JTikgfHwgdW5saWtlbHkoYXJnID4gUEdfSU5UMTZfTUFYKSkKLQkJZXJlcG9ydChFUlJPUiwK Kwl7CisJCWVycnNhdmUoZmNpbmZvLT5jb250ZXh0LAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVN RVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coInNtYWxsaW50IG91dCBvZiBy YW5nZSIpKSk7CiAKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CisKIAlQR19SRVRVUk5fSU5UMTYo KGludDE2KSBhcmcpOwogfQogCkBAIC0xMzA4LDEwICsxMzE2LDE0IEBAIGk4dG9vaWQoUEdfRlVO Q1RJT05fQVJHUykKIAlpbnQ2NAkJYXJnID0gUEdfR0VUQVJHX0lOVDY0KDApOwogCiAJaWYgKHVu bGlrZWx5KGFyZyA8IDApIHx8IHVubGlrZWx5KGFyZyA+IFBHX1VJTlQzMl9NQVgpKQotCQllcmVw b3J0KEVSUk9SLAorCXsKKwkJZXJyc2F2ZShmY2luZm8tPmNvbnRleHQsCiAJCQkJKGVycmNvZGUo RVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiT0lEIG91 dCBvZiByYW5nZSIpKSk7CiAKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CisKIAlQR19SRVRVUk5f T0lEKChPaWQpIGFyZyk7CiB9CiAKLS0gCjIuMzQuMQoK --000000000000b88c47064114c15d Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v8-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgpwv24q13 RnJvbSA2M2ZlYWZmYmY5NzFkMTEwZTU3Mjc2ZTA5ZTdhMjhkYzVjYmI2YTU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxOToxMjoxMiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjgg MDcvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgbWFjYWRkcjggdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsIGNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZQpmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uIHBwLm9pZCA9IHBjLmNhc3RmdW5j CmFuZCBwYy5jYXN0ZnVuYyA+IDAgYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSdtYWNhZGRyOCc6 OnJlZ3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgY2Fz dHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgICBwcm9z cmMgICAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQog bWFjYWRkcjggICB8IG1hY2FkZHIgICAgfCAgICAgNDEyNCB8IGkgICAgICAgICAgIHwgZiAgICAg ICAgICB8IG1hY2FkZHI4dG9tYWNhZGRyIHwgbWFjYWRkcgooMSByb3cpCgpkaXNjdXNzaW9uOiBo dHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1 M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9t YWM4LmMgfCA2ICsrKysrLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9tYWM4LmMgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvbWFjOC5jCmluZGV4IDA4ZTQxYmE0ZWVhLi5lMmE3YTkwZTQyYyAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L21hYzguYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvbWFjOC5jCkBAIC01NTAsNyArNTUwLDggQEAgbWFjYWRkcjh0b21hY2FkZHIo UEdfRlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSAobWFjYWRkciAqKSBwYWxsb2MwKHNpemVvZiht YWNhZGRyKSk7CiAKIAlpZiAoKGFkZHItPmQgIT0gMHhGRikgfHwgKGFkZHItPmUgIT0gMHhGRSkp Ci0JCWVyZXBvcnQoRVJST1IsCisJeworCQllcnJzYXZlKGZjaW5mby0+Y29udGV4dCwKIAkJCQko ZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNn KCJtYWNhZGRyOCBkYXRhIG91dCBvZiByYW5nZSB0byBjb252ZXJ0IHRvIG1hY2FkZHIiKSwKIAkJ CQkgZXJyaGludCgiT25seSBhZGRyZXNzZXMgdGhhdCBoYXZlIEZGIGFuZCBGRSBhcyB2YWx1ZXMg aW4gdGhlICIKQEAgLTU1OCw2ICs1NTksOSBAQCBtYWNhZGRyOHRvbWFjYWRkcihQR19GVU5DVElP Tl9BUkdTKQogCQkJCQkJICJ4eDp4eDp4eDpmZjpmZTp4eDp4eDp4eCwgYXJlIGVsaWdpYmxlIHRv IGJlIGNvbnZlcnRlZCAiCiAJCQkJCQkgImZyb20gbWFjYWRkcjggdG8gbWFjYWRkci4iKSkpOwog CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQorCiAJcmVzdWx0LT5hID0gYWRkci0+YTsKIAlyZXN1 bHQtPmIgPSBhZGRyLT5iOwogCXJlc3VsdC0+YyA9IGFkZHItPmM7Ci0tIAoyLjM0LjEKCg== --000000000000b88c47064114c15d Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_ca.patch" Content-Disposition: attachment; filename="v8-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_ca.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgpwv24t15 RnJvbSBkYzVjZmQzODkxZDc2ZGUyYWE3ZWI1ZDBkNjk0YTBlZWViOWFmOWY1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxOToxNzowMCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjgg MDUvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgY2hhcmFjdGVyIHZhcnlpbmcgdG8gb3RoZXIK IHR5cGVzIHBlciBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdl dDo6cmVndHlwZSwgY2FzdGZ1bmMsIGNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywg cHAucHJvbmFtZQpmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uIHBwLm9pZCA9IHBj LmNhc3RmdW5jIGFuZCBwYy5jYXN0ZnVuYyA+IDAgYW5kCihjYXN0c291cmNlOjpyZWd0eXBlID0g J2NoYXJhY3RlciB2YXJ5aW5nJzo6cmVndHlwZSkKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlw ZTsKCiAgICBjYXN0c291cmNlICAgICB8ICAgIGNhc3R0YXJnZXQgICAgIHwgY2FzdGZ1bmMgfCBj YXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBwcm9zcmMgICAgIHwgcHJvbmFtZQotLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQogY2hhcmFjdGVyIHZhcnlp bmcgfCByZWdjbGFzcyAgICAgICAgICB8ICAgICAxMDc5IHwgaSAgICAgICAgICAgfCBmICAgICAg ICAgIHwgdGV4dF9yZWdjbGFzcyB8IHJlZ2NsYXNzCiBjaGFyYWN0ZXIgdmFyeWluZyB8ICJjaGFy IiAgICAgICAgICAgIHwgICAgICA5NDQgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0 X2NoYXIgICAgIHwgY2hhcgogY2hhcmFjdGVyIHZhcnlpbmcgfCBuYW1lICAgICAgICAgICAgICB8 ICAgICAxNDAwIHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dF9uYW1lICAgICB8IG5h bWUKIGNoYXJhY3RlciB2YXJ5aW5nIHwgeG1sICAgICAgICAgICAgICAgfCAgICAgMjg5NiB8IGUg ICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHR0b3htbCAgICAgfCB4bWwKIGNoYXJhY3RlciB2 YXJ5aW5nIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCAgICAgIDY2OSB8IGkgICAgICAgICAgIHwgZiAg ICAgICAgICB8IHZhcmNoYXIgICAgICAgfCB2YXJjaGFyCig1IHJvd3MpCgp0ZXh0dG94bWwsIHRl eHRfcmVnY2xhc3Mgd2FzIHJlZmFjdG9yZWQgYXMgZXJyb3Igc2FmZSBpbiBwcmlvciBwYXRjaC4K dGV4dF9jaGFyLCB0ZXh0X25hbWUgaXMgYWxyZWFkeSBlcnJvciBzYWZlLgpzbyBoZXJlIHdlIG9u bHkgbmVlZCBoYW5kbGUgZnVuY3Rpb24gInZhcmNoYXIiLgoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9w b3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2 aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5j IHwgNiArKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwppbmRleCBhOTVlNGJkMDk0ZS4uZmRiZWYyNzJjMzkg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwpAQCAtNjM4LDEwICs2MzgsMTQgQEAgdmFyY2hhcihQ R19GVU5DVElPTl9BUkdTKQogCXsKIAkJZm9yIChpID0gbWF4bWJsZW47IGkgPCBsZW47IGkrKykK IAkJCWlmIChzX2RhdGFbaV0gIT0gJyAnKQotCQkJCWVyZXBvcnQoRVJST1IsCisJCQl7CisJCQkJ ZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJCShlcnJjb2RlKEVSUkNP REVfU1RSSU5HX0RBVEFfUklHSFRfVFJVTkNBVElPTiksCiAJCQkJCQkgZXJybXNnKCJ2YWx1ZSB0 b28gbG9uZyBmb3IgdHlwZSBjaGFyYWN0ZXIgdmFyeWluZyglZCkiLAogCQkJCQkJCQltYXhsZW4p KSk7CisKKwkJCQlQR19SRVRVUk5fTlVMTCgpOworCQkJfQogCX0KIAogCVBHX1JFVFVSTl9WQVJD SEFSX1AoKFZhckNoYXIgKikgY3N0cmluZ190b190ZXh0X3dpdGhfbGVuKHNfZGF0YSwKLS0gCjIu MzQuMQoK --000000000000b88c47064114c15d Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v8-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgpwv24r14 RnJvbSBlZjY5MTA2MGJiYjA3YTBjOGUzZDk5NWE3MDQzNzY3NmJkOWRjNWYyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxNTo1NTo1NSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjgg MDYvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgaW5ldCB0byBvdGhlciB0eXBlcyBwZXIKIHBn X2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBlLCBj YXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1lIGZy b20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1bmMgYW5k IHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdpbmV0Jzo6cmVndHlw ZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAgICBjYXN0dGFy Z2V0ICAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgcHJvc3Jj ICAgIHwgcHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQogaW5l dCAgICAgICB8IGNpZHIgICAgICAgICAgICAgIHwgICAgIDE3MTUgfCBhICAgICAgICAgICB8IGYg ICAgICAgICAgfCBpbmV0X3RvX2NpZHIgfCBjaWRyCiBpbmV0ICAgICAgIHwgdGV4dCAgICAgICAg ICAgICAgfCAgICAgIDczMCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IG5ldHdvcmtfc2hv dyB8IHRleHQKIGluZXQgICAgICAgfCBjaGFyYWN0ZXIgdmFyeWluZyB8ICAgICAgNzMwIHwgYSAg ICAgICAgICAgfCBmICAgICAgICAgIHwgbmV0d29ya19zaG93IHwgdGV4dAogaW5ldCAgICAgICB8 IGNoYXJhY3RlciAgICAgICAgIHwgICAgICA3MzAgfCBhICAgICAgICAgICB8IGYgICAgICAgICAg fCBuZXR3b3JrX3Nob3cgfCB0ZXh0Cig0IHJvd3MpCgppbmV0X3RvX2NpZHIgaXMgYWxyZWFkeSBl cnJvciBzYWZlLgoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZ NFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0t CiBzcmMvYmFja2VuZC91dGlscy9hZHQvbmV0d29yay5jIHwgNiArKysrKy0KIDEgZmlsZSBjaGFu Z2VkLCA1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvbmV0d29yay5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L25ldHdvcmsu YwppbmRleCAzY2IwYWI2ODI5YS4uZjM0MjI4NzYzZGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9uZXR3b3JrLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L25ldHdvcmsu YwpAQCAtMTEzNywxMCArMTEzNywxNCBAQCBuZXR3b3JrX3Nob3coUEdfRlVOQ1RJT05fQVJHUykK IAogCWlmIChwZ19pbmV0X25ldF9udG9wKGlwX2ZhbWlseShpcCksIGlwX2FkZHIoaXApLCBpcF9t YXhiaXRzKGlwKSwKIAkJCQkJCSB0bXAsIHNpemVvZih0bXApKSA9PSBOVUxMKQotCQllcmVwb3J0 KEVSUk9SLAorCXsKKwkJZXJyc2F2ZShmY2luZm8tPmNvbnRleHQsCiAJCQkJKGVycmNvZGUoRVJS Q09ERV9JTlZBTElEX0JJTkFSWV9SRVBSRVNFTlRBVElPTiksCiAJCQkJIGVycm1zZygiY291bGQg bm90IGZvcm1hdCBpbmV0IHZhbHVlOiAlbSIpKSk7CiAKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9 CisKIAkvKiBBZGQgL24gaWYgbm90IHByZXNlbnQgKHdoaWNoIGl0IHdvbid0IGJlKSAqLwogCWlm IChzdHJjaHIodG1wLCAnLycpID09IE5VTEwpCiAJewotLSAKMi4zNC4xCgo= --000000000000b88c47064114c15d Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v8-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgpwv24w17 RnJvbSBlMTdjNDNkZWFmZTExNTczZGE1OWYyYzkwMjJkZTA0MTJkMWVlY2M2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMTEgT2N0IDIwMjUgMTA6MTE6MzcgKzA4MDAKU3ViamVjdDogW1BBVENIIHY4 IDAzLzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGNoYXJhY3RlciB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9u YW1lIGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1 bmMgYW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9J2NoYXJhY3Rl cic6OnJlZ3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwg ICAgY2FzdHRhcmdldCAgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8 ICAgcHJvc3JjICAgIHwgcHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tCiBjaGFyYWN0ZXIgIHwgdGV4dCAgICAgICAgICAgICAgfCAgICAgIDQwMSB8IGkgICAgICAg ICAgIHwgZiAgICAgICAgICB8IHJ0cmltMSAgICAgIHwgdGV4dAogY2hhcmFjdGVyICB8IGNoYXJh Y3RlciB2YXJ5aW5nIHwgICAgICA0MDEgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBydHJp bTEgICAgICB8IHRleHQKIGNoYXJhY3RlciAgfCAiY2hhciIgICAgICAgICAgICB8ICAgICAgOTQ0 IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dF9jaGFyICAgfCBjaGFyCiBjaGFyYWN0 ZXIgIHwgbmFtZSAgICAgICAgICAgICAgfCAgICAgIDQwOSB8IGkgICAgICAgICAgIHwgZiAgICAg ICAgICB8IGJwY2hhcl9uYW1lIHwgbmFtZQogY2hhcmFjdGVyICB8IHhtbCAgICAgICAgICAgICAg IHwgICAgIDI4OTYgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0dG94bWwgICB8IHht bAogY2hhcmFjdGVyICB8IGNoYXJhY3RlciAgICAgICAgIHwgICAgICA2NjggfCBpICAgICAgICAg ICB8IGYgICAgICAgICAgfCBicGNoYXIgICAgICB8IGJwY2hhcgooNiByb3dzKQoKb25seSB0ZXh0 dG94bWwsIGJwY2hhcihQR19GVU5DVElPTl9BUkdTKSBuZWVkIHRha2UgY2FyZSBvZiBlcnJvciBo YW5kbGluZy4Kb3RoZXIgZnVuY3Rpb25zIGFscmVhZHkgZXJyb3Igc2FmZS4KCmRpc2N1c3Npb246 IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThq WnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0V4cHJJbnRlcnAuYyB8ICAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5j ICAgICAgIHwgIDYgKysrKystCiBzcmMvYmFja2VuZC91dGlscy9hZHQveG1sLmMgICAgICAgICAg IHwgMTcgKysrKysrKysrKysrLS0tLS0KIHNyYy9pbmNsdWRlL3V0aWxzL3htbC5oICAgICAgICAg ICAgICAgfCAgMiArLQogNCBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCA4IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJw LmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCmluZGV4IDBlMWE3NDk3 NmY3Li42N2Y0ZTAwZWFjNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHJJbnRlcnAuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCkBA IC00NTQyLDcgKzQ1NDIsNyBAQCBFeGVjRXZhbFhtbEV4cHIoRXhwclN0YXRlICpzdGF0ZSwgRXhw ckV2YWxTdGVwICpvcCkKIAogCQkJCSpvcC0+cmVzdmFsdWUgPSBQb2ludGVyR2V0RGF0dW0oeG1s cGFyc2UoZGF0YSwKIAkJCQkJCQkJCQkJCQkJIHhleHByLT54bWxvcHRpb24sCi0JCQkJCQkJCQkJ CQkJCSBwcmVzZXJ2ZV93aGl0ZXNwYWNlKSk7CisJCQkJCQkJCQkJCQkJCSBwcmVzZXJ2ZV93aGl0 ZXNwYWNlLCBOVUxMKSk7CiAJCQkJKm9wLT5yZXNudWxsID0gZmFsc2U7CiAJCQl9CiAJCQlicmVh azsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvdmFyY2hhci5jCmluZGV4IDNmNDBjOWRhMWEwLi5hOTVlNGJkMDk0ZSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIuYworKysgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvdmFyY2hhci5jCkBAIC0zMDcsMTAgKzMwNywxNCBAQCBicGNoYXIoUEdf RlVOQ1RJT05fQVJHUykKIAkJewogCQkJZm9yIChpID0gbWF4bWJsZW47IGkgPCBsZW47IGkrKykK IAkJCQlpZiAoc1tpXSAhPSAnICcpCi0JCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJeworCQkJCQll cnJzYXZlKGZjaW5mby0+Y29udGV4dCwKIAkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19E QVRBX1JJR0hUX1RSVU5DQVRJT04pLAogCQkJCQkJCSBlcnJtc2coInZhbHVlIHRvbyBsb25nIGZv ciB0eXBlIGNoYXJhY3RlciglZCkiLAogCQkJCQkJCQkJbWF4bGVuKSkpOworCisJCQkJCVBHX1JF VFVSTl9OVUxMKCk7CisJCQkJfQogCQl9CiAKIAkJbGVuID0gbWF4bWJsZW47CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9hZHQveG1sLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQveG1s LmMKaW5kZXggNjZiNDQxODM2OTUuLmJhNThjMzU0ZTUwIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQveG1sLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jCkBAIC02 NTksNyArNjU5LDcgQEAgdGV4dHRveG1sKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJdGV4dAkgICAq ZGF0YSA9IFBHX0dFVEFSR19URVhUX1BQKDApOwogCi0JUEdfUkVUVVJOX1hNTF9QKHhtbHBhcnNl KGRhdGEsIHhtbG9wdGlvbiwgdHJ1ZSkpOworCVBHX1JFVFVSTl9YTUxfUCh4bWxwYXJzZShkYXRh LCB4bWxvcHRpb24sIHRydWUsIGZjaW5mby0+Y29udGV4dCkpOwogfQogCiAKQEAgLTEwMjgsMTgg KzEwMjgsMjUgQEAgeG1sZWxlbWVudChYbWxFeHByICp4ZXhwciwKIAogCiB4bWx0eXBlICoKLXht bHBhcnNlKHRleHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0aW9uX2FyZywgYm9vbCBwcmVz ZXJ2ZV93aGl0ZXNwYWNlKQoreG1scGFyc2UodGV4dCAqZGF0YSwgWG1sT3B0aW9uVHlwZSB4bWxv cHRpb25fYXJnLCBib29sIHByZXNlcnZlX3doaXRlc3BhY2UsIE5vZGUgKmVzY29udGV4dCkKIHsK ICNpZmRlZiBVU0VfTElCWE1MCiAJeG1sRG9jUHRyCWRvYzsKIAogCWRvYyA9IHhtbF9wYXJzZShk YXRhLCB4bWxvcHRpb25fYXJnLCBwcmVzZXJ2ZV93aGl0ZXNwYWNlLAotCQkJCQlHZXREYXRhYmFz ZUVuY29kaW5nKCksIE5VTEwsIE5VTEwsIE5VTEwpOwotCXhtbEZyZWVEb2MoZG9jKTsKKwkJCQkJ R2V0RGF0YWJhc2VFbmNvZGluZygpLCBOVUxMLCBOVUxMLCBlc2NvbnRleHQpOworCWlmIChkb2Mp CisJCXhtbEZyZWVEb2MoZG9jKTsKKworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4 dCkpCisJCXJldHVybiBOVUxMOwogCiAJcmV0dXJuICh4bWx0eXBlICopIGRhdGE7CiAjZWxzZQot CU5PX1hNTF9TVVBQT1JUKCk7CisJZXJyc2F2ZShlc2NvbnRleHQsCisJCQllcnJjb2RlKEVSUkNP REVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCWVycm1zZygidW5zdXBwb3J0ZWQgWE1MIGZl YXR1cmUiKSwKKwkJCWVycmRldGFpbCgiVGhpcyBmdW5jdGlvbmFsaXR5IHJlcXVpcmVzIHRoZSBz ZXJ2ZXIgdG8gYmUgYnVpbHQgd2l0aCBsaWJ4bWwgc3VwcG9ydC4iKSk7CiAJcmV0dXJuIE5VTEw7 CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3htbC5oIGIvc3JjL2lu Y2x1ZGUvdXRpbHMveG1sLmgKaW5kZXggMGQ3YTgxNmI5ZjkuLmIzZDNmMTFmYWM0IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS91dGlscy94bWwuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy94bWwu aApAQCAtNzMsNyArNzMsNyBAQCBleHRlcm4geG1sdHlwZSAqeG1sY29uY2F0KExpc3QgKmFyZ3Mp OwogZXh0ZXJuIHhtbHR5cGUgKnhtbGVsZW1lbnQoWG1sRXhwciAqeGV4cHIsCiAJCQkJCQkgICBE YXR1bSAqbmFtZWRfYXJndmFsdWUsIGJvb2wgKm5hbWVkX2FyZ251bGwsCiAJCQkJCQkgICBEYXR1 bSAqYXJndmFsdWUsIGJvb2wgKmFyZ251bGwpOwotZXh0ZXJuIHhtbHR5cGUgKnhtbHBhcnNlKHRl eHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0aW9uX2FyZywgYm9vbCBwcmVzZXJ2ZV93aGl0 ZXNwYWNlKTsKK2V4dGVybiB4bWx0eXBlICp4bWxwYXJzZSh0ZXh0ICpkYXRhLCBYbWxPcHRpb25U eXBlIHhtbG9wdGlvbl9hcmcsIGJvb2wgcHJlc2VydmVfd2hpdGVzcGFjZSwgTm9kZSAqZXNjb250 ZXh0KTsKIGV4dGVybiB4bWx0eXBlICp4bWxwaShjb25zdCBjaGFyICp0YXJnZXQsIHRleHQgKmFy ZywgYm9vbCBhcmdfaXNfbnVsbCwgYm9vbCAqcmVzdWx0X2lzX251bGwpOwogZXh0ZXJuIHhtbHR5 cGUgKnhtbHJvb3QoeG1sdHlwZSAqZGF0YSwgdGV4dCAqdmVyc2lvbiwgaW50IHN0YW5kYWxvbmUp OwogZXh0ZXJuIGJvb2wgeG1sX2lzX2RvY3VtZW50KHhtbHR5cGUgKmFyZyk7Ci0tIAoyLjM0LjEK Cg== --000000000000b88c47064114c15d Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0004-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v8-0004-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgpwv24u16 RnJvbSAyYTVjNzM1MDljODAzMGI1NTkwNmQyNTRmMzQ1N2NlZTg5YzM3NjM5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxNTo0OTo0NiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjgg MDQvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgdGV4dCB0byBvdGhlciB0eXBlcyBwZXIKIHBn X2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBlLCBj YXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1lIGZy b20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1bmMgYW5k IHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICd0ZXh0Jzo6cmVndHlw ZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0 IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBwcm9zcmMgICAgIHwg cHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KIHRleHQgICAgICAgfCBy ZWdjbGFzcyAgIHwgICAgIDEwNzkgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0X3Jl Z2NsYXNzIHwgcmVnY2xhc3MKIHRleHQgICAgICAgfCAiY2hhciIgICAgIHwgICAgICA5NDQgfCBh ICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0X2NoYXIgICAgIHwgY2hhcgogdGV4dCAgICAg ICB8IG5hbWUgICAgICAgfCAgICAgIDQwNyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRl eHRfbmFtZSAgICAgfCBuYW1lCiB0ZXh0ICAgICAgIHwgeG1sICAgICAgICB8ICAgICAyODk2IHwg ZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dHRveG1sICAgICB8IHhtbAooNCByb3dzKQoK YWxyZWFkeSBlcnJvciBzYWZlOiB0ZXh0X25hbWUsIHRleHRfY2hhci4KdGV4dHRveG1sIGlzIHJl ZmFjdG9yZWQgaW4gY2hhcmFjdGVyIHR5cGUgZXJyb3Igc2FmZSBwYXRjaC4KCmRpc2N1c3Npb246 IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThq WnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9u YW1lc3BhY2UuYyB8IDE2NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3JlZ3Byb2MuYyB8ICAzMyArKysrKystCiBzcmMvYmFja2VuZC91dGls cy9hZHQvdmFybGVuYS5jIHwgIDQyICsrKysrKysrCiBzcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVz cGFjZS5oIHwgICA2ICsrCiBzcmMvaW5jbHVkZS91dGlscy92YXJsZW5hLmggICAgIHwgICAxICsK IDUgZmlsZXMgY2hhbmdlZCwgMjQ2IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvbmFtZXNwYWNlLmMKaW5kZXggZDIzNDc0ZGE0ZmIuLmEwNGQxNzljN2ZiIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCisrKyBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvbmFtZXNwYWNlLmMKQEAgLTY0MCw2ICs2NDAsMTM3IEBAIFJhbmdlVmFyR2V0UmVsaWRF eHRlbmRlZChjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sIExPQ0tNT0RFIGxvY2ttb2RlLAogCXJl dHVybiByZWxJZDsKIH0KIAorLyogc2FmZSB2ZXJzaW9uIG9mIFJhbmdlVmFyR2V0UmVsaWRFeHRl bmRlZCAqLworT2lkCitSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWRTYWZlKGNvbnN0IFJhbmdlVmFy ICpyZWxhdGlvbiwgTE9DS01PREUgbG9ja21vZGUsCisJCQkJCQkJIHVpbnQzMiBmbGFncywgUmFu Z2VWYXJHZXRSZWxpZENhbGxiYWNrIGNhbGxiYWNrLCB2b2lkICpjYWxsYmFja19hcmcsCisJCQkJ CQkJIE5vZGUgKmVzY29udGV4dCkKK3sKKwl1aW50NjQJCWludmFsX2NvdW50OworCU9pZAkJCXJl bElkOworCU9pZAkJCW9sZFJlbElkID0gSW52YWxpZE9pZDsKKwlib29sCQlyZXRyeSA9IGZhbHNl OworCWJvb2wJCW1pc3Npbmdfb2sgPSAoZmxhZ3MgJiBSVlJfTUlTU0lOR19PSykgIT0gMDsKKwor CS8qIHZlcmlmeSB0aGF0IGZsYWdzIGRvIG5vIGNvbmZsaWN0ICovCisJQXNzZXJ0KCEoKGZsYWdz ICYgUlZSX05PV0FJVCkgJiYgKGZsYWdzICYgUlZSX1NLSVBfTE9DS0VEKSkpOworCisJLyoKKwkg KiBXZSBjaGVjayB0aGUgY2F0YWxvZyBuYW1lIGFuZCB0aGVuIGlnbm9yZSBpdC4KKwkgKi8KKwlp ZiAocmVsYXRpb24tPmNhdGFsb2duYW1lKQorCXsKKwkJaWYgKHN0cmNtcChyZWxhdGlvbi0+Y2F0 YWxvZ25hbWUsIGdldF9kYXRhYmFzZV9uYW1lKE15RGF0YWJhc2VJZCkpICE9IDApCisJCQllcmV0 dXJuKGVzY29udGV4dCwgSW52YWxpZE9pZCwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVf Tk9UX1NVUFBPUlRFRCksCisJCQkJCWVycm1zZygiY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBh cmUgbm90IGltcGxlbWVudGVkOiBcIiVzLiVzLiVzXCIiLAorCQkJCQkJCXJlbGF0aW9uLT5jYXRh bG9nbmFtZSwgcmVsYXRpb24tPnNjaGVtYW5hbWUsCisJCQkJCQkJcmVsYXRpb24tPnJlbG5hbWUp KTsKKwl9CisKKwlmb3IgKDs7KQorCXsKKwkJaW52YWxfY291bnQgPSBTaGFyZWRJbnZhbGlkTWVz c2FnZUNvdW50ZXI7CisKKwkJaWYgKHJlbGF0aW9uLT5yZWxwZXJzaXN0ZW5jZSA9PSBSRUxQRVJT SVNURU5DRV9URU1QKQorCQl7CisJCQlpZiAoIU9pZElzVmFsaWQobXlUZW1wTmFtZXNwYWNlKSkK KwkJCQlyZWxJZCA9IEludmFsaWRPaWQ7CisJCQllbHNlCisJCQl7CisJCQkJaWYgKHJlbGF0aW9u LT5zY2hlbWFuYW1lKQorCQkJCXsKKwkJCQkJT2lkCQkJbmFtZXNwYWNlSWQ7CisKKwkJCQkJbmFt ZXNwYWNlSWQgPSBMb29rdXBFeHBsaWNpdE5hbWVzcGFjZShyZWxhdGlvbi0+c2NoZW1hbmFtZSwg bWlzc2luZ19vayk7CisKKwkJCQkJLyoKKwkJCQkJICogRm9yIG1pc3Npbmdfb2ssIGFsbG93IGEg bm9uLWV4aXN0ZW50IHNjaGVtYSBuYW1lIHRvCisJCQkJCSAqIHJldHVybiBJbnZhbGlkT2lkLgor CQkJCQkgKi8KKwkJCQkJaWYgKG5hbWVzcGFjZUlkICE9IG15VGVtcE5hbWVzcGFjZSkKKwkJCQkJ CWVyZXR1cm4oZXNjb250ZXh0LCBJbnZhbGlkT2lkLAorCQkJCQkJCQllcnJjb2RlKEVSUkNPREVf SU5WQUxJRF9UQUJMRV9ERUZJTklUSU9OKSwKKwkJCQkJCQkJZXJybXNnKCJ0ZW1wb3JhcnkgdGFi bGVzIGNhbm5vdCBzcGVjaWZ5IGEgc2NoZW1hIG5hbWUiKSk7CisJCQkJfQorCisJCQkJcmVsSWQg PSBnZXRfcmVsbmFtZV9yZWxpZChyZWxhdGlvbi0+cmVsbmFtZSwgbXlUZW1wTmFtZXNwYWNlKTsK KwkJCX0KKwkJfQorCQllbHNlIGlmIChyZWxhdGlvbi0+c2NoZW1hbmFtZSkKKwkJeworCQkJT2lk CQkJbmFtZXNwYWNlSWQ7CisKKwkJCS8qIHVzZSBleGFjdCBzY2hlbWEgZ2l2ZW4gKi8KKwkJCW5h bWVzcGFjZUlkID0gTG9va3VwRXhwbGljaXROYW1lc3BhY2UocmVsYXRpb24tPnNjaGVtYW5hbWUs IG1pc3Npbmdfb2spOworCQkJaWYgKG1pc3Npbmdfb2sgJiYgIU9pZElzVmFsaWQobmFtZXNwYWNl SWQpKQorCQkJCXJlbElkID0gSW52YWxpZE9pZDsKKwkJCWVsc2UKKwkJCQlyZWxJZCA9IGdldF9y ZWxuYW1lX3JlbGlkKHJlbGF0aW9uLT5yZWxuYW1lLCBuYW1lc3BhY2VJZCk7CisJCX0KKwkJZWxz ZQorCQl7CisJCQkvKiBzZWFyY2ggdGhlIG5hbWVzcGFjZSBwYXRoICovCisJCQlyZWxJZCA9IFJl bG5hbWVHZXRSZWxpZChyZWxhdGlvbi0+cmVsbmFtZSk7CisJCX0KKworCQlpZiAoY2FsbGJhY2sp CisJCQljYWxsYmFjayhyZWxhdGlvbiwgcmVsSWQsIG9sZFJlbElkLCBjYWxsYmFja19hcmcpOwor CisJCWlmIChsb2NrbW9kZSA9PSBOb0xvY2spCisJCQlicmVhazsKKworCQlpZiAocmV0cnkpCisJ CXsKKwkJCWlmIChyZWxJZCA9PSBvbGRSZWxJZCkKKwkJCQlicmVhazsKKwkJCWlmIChPaWRJc1Zh bGlkKG9sZFJlbElkKSkKKwkJCQlVbmxvY2tSZWxhdGlvbk9pZChvbGRSZWxJZCwgbG9ja21vZGUp OworCQl9CisKKwkJaWYgKCFPaWRJc1ZhbGlkKHJlbElkKSkKKwkJCUFjY2VwdEludmFsaWRhdGlv bk1lc3NhZ2VzKCk7CisJCWVsc2UgaWYgKCEoZmxhZ3MgJiAoUlZSX05PV0FJVCB8IFJWUl9TS0lQ X0xPQ0tFRCkpKQorCQkJTG9ja1JlbGF0aW9uT2lkKHJlbElkLCBsb2NrbW9kZSk7CisJCWVsc2Ug aWYgKCFDb25kaXRpb25hbExvY2tSZWxhdGlvbk9pZChyZWxJZCwgbG9ja21vZGUpKQorCQl7CisJ CQlpZiAocmVsYXRpb24tPnNjaGVtYW5hbWUpCisJCQkJZXJlcG9ydChERUJVRzEsCisJCQkJCQll cnJjb2RlKEVSUkNPREVfTE9DS19OT1RfQVZBSUxBQkxFKSwKKwkJCQkJCWVycm1zZygiY291bGQg bm90IG9idGFpbiBsb2NrIG9uIHJlbGF0aW9uIFwiJXMuJXNcIiIsCisJCQkJCQkJCXJlbGF0aW9u LT5zY2hlbWFuYW1lLCByZWxhdGlvbi0+cmVsbmFtZSkpOworCQkJZWxzZQorCQkJCWVyZXBvcnQo REVCVUcxLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX0xPQ0tfTk9UX0FWQUlMQUJMRSksCisJCQkJ CQllcnJtc2coImNvdWxkIG5vdCBvYnRhaW4gbG9jayBvbiByZWxhdGlvbiBcIiVzXCIiLAorCQkJ CQkJCSAgIHJlbGF0aW9uLT5yZWxuYW1lKSk7CisKKwkJCXJldHVybiBJbnZhbGlkT2lkOworCQl9 CisKKwkJaWYgKGludmFsX2NvdW50ID09IFNoYXJlZEludmFsaWRNZXNzYWdlQ291bnRlcikKKwkJ CWJyZWFrOworCisJCXJldHJ5ID0gdHJ1ZTsKKwkJb2xkUmVsSWQgPSByZWxJZDsKKwl9CisKKwlp ZiAoIU9pZElzVmFsaWQocmVsSWQpKQorCXsKKwkJaWYgKHJlbGF0aW9uLT5zY2hlbWFuYW1lKQor CQkJZXJldHVybihlc2NvbnRleHQsIEludmFsaWRPaWQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9V TkRFRklORURfVEFCTEUpLAorCQkJCQllcnJtc2coInJlbGF0aW9uIFwiJXMuJXNcIiBkb2VzIG5v dCBleGlzdCIsCisJCQkJCQkJcmVsYXRpb24tPnNjaGVtYW5hbWUsIHJlbGF0aW9uLT5yZWxuYW1l KSk7CisJCWVsc2UKKwkJCWVyZXR1cm4oZXNjb250ZXh0LCBJbnZhbGlkT2lkLAorCQkJCQllcnJj b2RlKEVSUkNPREVfVU5ERUZJTkVEX1RBQkxFKSwKKwkJCQkJZXJybXNnKCJyZWxhdGlvbiBcIiVz XCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJCXJlbGF0aW9uLT5yZWxuYW1lKSk7CisJfQorCXJl dHVybiByZWxJZDsKK30KKwogLyoKICAqIFJhbmdlVmFyR2V0Q3JlYXRpb25OYW1lc3BhY2UKICAq CQlHaXZlbiBhIFJhbmdlVmFyIGRlc2NyaWJpbmcgYSB0by1iZS1jcmVhdGVkIHJlbGF0aW9uLApA QCAtMzY1MCw2ICszNzgxLDQyIEBAIG1ha2VSYW5nZVZhckZyb21OYW1lTGlzdChjb25zdCBMaXN0 ICpuYW1lcykKIAlyZXR1cm4gcmVsOwogfQogCisvKgorICogbWFrZVJhbmdlVmFyRnJvbU5hbWVM aXN0U2FmZQorICoJCVV0aWxpdHkgcm91dGluZSB0byBjb252ZXJ0IGEgcXVhbGlmaWVkLW5hbWUg bGlzdCBpbnRvIFJhbmdlVmFyIGZvcm0uCisgKiBUaGUgcmVzdWx0IG1heWJlIE5VTEwuCisgKi8K K1JhbmdlVmFyICoKK21ha2VSYW5nZVZhckZyb21OYW1lTGlzdFNhZmUoY29uc3QgTGlzdCAqbmFt ZXMsIE5vZGUgKmVzY29udGV4dCkKK3sKKwlSYW5nZVZhciAgICpyZWwgPSBtYWtlUmFuZ2VWYXIo TlVMTCwgTlVMTCwgLTEpOworCisJc3dpdGNoIChsaXN0X2xlbmd0aChuYW1lcykpCisJeworCQlj YXNlIDE6CisJCQlyZWwtPnJlbG5hbWUgPSBzdHJWYWwobGluaXRpYWwobmFtZXMpKTsKKwkJCWJy ZWFrOworCQljYXNlIDI6CisJCQlyZWwtPnNjaGVtYW5hbWUgPSBzdHJWYWwobGluaXRpYWwobmFt ZXMpKTsKKwkJCXJlbC0+cmVsbmFtZSA9IHN0clZhbChsc2Vjb25kKG5hbWVzKSk7CisJCQlicmVh azsKKwkJY2FzZSAzOgorCQkJcmVsLT5jYXRhbG9nbmFtZSA9IHN0clZhbChsaW5pdGlhbChuYW1l cykpOworCQkJcmVsLT5zY2hlbWFuYW1lID0gc3RyVmFsKGxzZWNvbmQobmFtZXMpKTsKKwkJCXJl bC0+cmVsbmFtZSA9IHN0clZhbChsdGhpcmQobmFtZXMpKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0 OgorCQkJZXJyc2F2ZShlc2NvbnRleHQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJS T1IpLAorCQkJCQllcnJtc2coImltcHJvcGVyIHJlbGF0aW9uIG5hbWUgKHRvbyBtYW55IGRvdHRl ZCBuYW1lcyk6ICVzIiwKKwkJCQkJCSAgIE5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKSk7CisJCQly ZWwgPSBOVUxMOworCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIHJlbDsKK30KKwogLyoKICAqIE5h bWVMaXN0VG9TdHJpbmcKICAqCQlVdGlsaXR5IHJvdXRpbmUgdG8gY29udmVydCBhIHF1YWxpZmll ZC1uYW1lIGxpc3QgaW50byBhIHN0cmluZy4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9yZWdwcm9jLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcmVncHJvYy5jCmluZGV4IGU1 YzIyNDZmMmM5Li4wNTlkMDE1NDMzNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3JlZ3Byb2MuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcmVncHJvYy5jCkBAIC0xOTAy LDEwICsxOTAyLDM3IEBAIHRleHRfcmVnY2xhc3MoUEdfRlVOQ1RJT05fQVJHUykKIAlPaWQJCQly ZXN1bHQ7CiAJUmFuZ2VWYXIgICAqcnY7CiAKLQlydiA9IG1ha2VSYW5nZVZhckZyb21OYW1lTGlz dCh0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdChyZWxuYW1lKSk7CisJaWYgKGxpa2VseSghZmNpbmZv LT5jb250ZXh0KSkKKwl7CisJCXJ2ID0gbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0KHRleHRUb1F1 YWxpZmllZE5hbWVMaXN0KHJlbG5hbWUpKTsKIAotCS8qIFdlIG1pZ2h0IG5vdCBldmVuIGhhdmUg cGVybWlzc2lvbnMgb24gdGhpcyByZWxhdGlvbjsgZG9uJ3QgbG9jayBpdC4gKi8KLQlyZXN1bHQg PSBSYW5nZVZhckdldFJlbGlkKHJ2LCBOb0xvY2ssIGZhbHNlKTsKKwkJLyoKKwkJICogV2UgbWln aHQgbm90IGV2ZW4gaGF2ZSBwZXJtaXNzaW9ucyBvbiB0aGlzIHJlbGF0aW9uOyBkb24ndCBsb2Nr IGl0LgorCQkgKi8KKwkJcmVzdWx0ID0gUmFuZ2VWYXJHZXRSZWxpZChydiwgTm9Mb2NrLCBmYWxz ZSk7CisJfQorCWVsc2UKKwl7CisJCUxpc3QgICAJCSpydm5hbWVzOworCisJCXJ2bmFtZXMgPSB0 ZXh0VG9RdWFsaWZpZWROYW1lTGlzdFNhZmUocmVsbmFtZSwgZmNpbmZvLT5jb250ZXh0KTsKKwkJ aWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJCVBHX1JFVFVSTl9O VUxMKCk7CisKKwkJcnYgPSBtYWtlUmFuZ2VWYXJGcm9tTmFtZUxpc3RTYWZlKHJ2bmFtZXMsIGZj aW5mby0+Y29udGV4dCk7CisJCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4 dCkpCisJCQlQR19SRVRVUk5fTlVMTCgpOworCisJCXJlc3VsdCA9IFJhbmdlVmFyR2V0UmVsaWRF eHRlbmRlZFNhZmUocnYsCisJCQkJCQkJCQkJCSAgTm9Mb2NrLAorCQkJCQkJCQkJCQkgIDAsCisJ CQkJCQkJCQkJCSAgTlVMTCwKKwkJCQkJCQkJCQkJICBOVUxMLAorCQkJCQkJCQkJCQkgIGZjaW5m by0+Y29udGV4dCk7CisKKwkJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0 KSkKKwkJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJUEdfUkVUVVJOX09JRChyZXN1bHQpOwog fQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMKaW5kZXggMmMzOThjZDllNWMuLjExMTc5Mzk0MzBhIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFybGVuYS5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMKQEAgLTI3MTcsNiArMjcxNyw0OCBAQCB0ZXh0VG9RdWFs aWZpZWROYW1lTGlzdCh0ZXh0ICp0ZXh0dmFsKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qIGVy cm9yIHNhZmUgdmVyc2lvbiBvZiB0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdCAqLworTGlzdCAqCit0 ZXh0VG9RdWFsaWZpZWROYW1lTGlzdFNhZmUodGV4dCAqdGV4dHZhbCwgTm9kZSAqZXNjb250ZXh0 KQoreworCWNoYXIJICAgKnJhd25hbWU7CisJTGlzdAkgICAqcmVzdWx0ID0gTklMOworCUxpc3QJ ICAgKm5hbWVsaXN0OworCUxpc3RDZWxsICAgKmw7CisKKwkvKiBDb252ZXJ0IHRvIEMgc3RyaW5n IChoYW5kbGVzIHBvc3NpYmxlIGRldG9hc3RpbmcpLiAqLworCS8qIE5vdGUgd2UgcmVseSBvbiBi ZWluZyBhYmxlIHRvIG1vZGlmeSByYXduYW1lIGJlbG93LiAqLworCXJhd25hbWUgPSB0ZXh0X3Rv X2NzdHJpbmcodGV4dHZhbCk7CisKKwlpZiAoIVNwbGl0SWRlbnRpZmllclN0cmluZyhyYXduYW1l LCAnLicsICZuYW1lbGlzdCkpCisJeworCQllcnJzYXZlKGVzY29udGV4dCwKKwkJCQllcnJjb2Rl KEVSUkNPREVfSU5WQUxJRF9OQU1FKSwKKwkJCQllcnJtc2coImludmFsaWQgbmFtZSBzeW50YXgi KSk7CisJCXJldHVybiBOSUw7CisJfQorCisJaWYgKG5hbWVsaXN0ID09IE5JTCkKKwl7CisJCWVy cnNhdmUoZXNjb250ZXh0LAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX05BTUUpLAorCQkJ CWVycm1zZygiaW52YWxpZCBuYW1lIHN5bnRheCIpKTsKKwkJcmV0dXJuIE5JTDsKKwl9CisKKwlm b3JlYWNoKGwsIG5hbWVsaXN0KQorCXsKKwkJY2hhcgkgICAqY3VybmFtZSA9IChjaGFyICopIGxm aXJzdChsKTsKKworCQlyZXN1bHQgPSBsYXBwZW5kKHJlc3VsdCwgbWFrZVN0cmluZyhwc3RyZHVw KGN1cm5hbWUpKSk7CisJfQorCisJcGZyZWUocmF3bmFtZSk7CisJbGlzdF9mcmVlKG5hbWVsaXN0 KTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKIC8qCiAgKiBTcGxpdElkZW50aWZpZXJTdHJpbmcg LS0tIHBhcnNlIGEgc3RyaW5nIGNvbnRhaW5pbmcgaWRlbnRpZmllcnMKICAqCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9u YW1lc3BhY2UuaAppbmRleCBmMTQyM2YyOGMzMi4uYWI2MWFmNTVkZGMgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9u YW1lc3BhY2UuaApAQCAtMTAzLDYgKzEwMywxMSBAQCBleHRlcm4gT2lkCVJhbmdlVmFyR2V0UmVs aWRFeHRlbmRlZChjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sCiAJCQkJCQkJCQkgTE9DS01PREUg bG9ja21vZGUsIHVpbnQzMiBmbGFncywKIAkJCQkJCQkJCSBSYW5nZVZhckdldFJlbGlkQ2FsbGJh Y2sgY2FsbGJhY2ssCiAJCQkJCQkJCQkgdm9pZCAqY2FsbGJhY2tfYXJnKTsKK2V4dGVybiBPaWQg UmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkU2FmZShjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sCisJ CQkJCQkJCQkJTE9DS01PREUgbG9ja21vZGUsIHVpbnQzMiBmbGFncywKKwkJCQkJCQkJCQlSYW5n ZVZhckdldFJlbGlkQ2FsbGJhY2sgY2FsbGJhY2ssCisJCQkJCQkJCQkJdm9pZCAqY2FsbGJhY2tf YXJnLAorCQkJCQkJCQkJCU5vZGUgKmVzY29udGV4dCk7CiBleHRlcm4gT2lkCVJhbmdlVmFyR2V0 Q3JlYXRpb25OYW1lc3BhY2UoY29uc3QgUmFuZ2VWYXIgKm5ld1JlbGF0aW9uKTsKIGV4dGVybiBP aWQJUmFuZ2VWYXJHZXRBbmRDaGVja0NyZWF0aW9uTmFtZXNwYWNlKFJhbmdlVmFyICpyZWxhdGlv biwKIAkJCQkJCQkJCQkJCSBMT0NLTU9ERSBsb2NrbW9kZSwKQEAgLTE2OCw2ICsxNzMsNyBAQCBl eHRlcm4gT2lkCUxvb2t1cENyZWF0aW9uTmFtZXNwYWNlKGNvbnN0IGNoYXIgKm5zcG5hbWUpOwog ZXh0ZXJuIHZvaWQgQ2hlY2tTZXROYW1lc3BhY2UoT2lkIG9sZE5zcE9pZCwgT2lkIG5zcE9pZCk7 CiBleHRlcm4gT2lkCVF1YWxpZmllZE5hbWVHZXRDcmVhdGlvbk5hbWVzcGFjZShjb25zdCBMaXN0 ICpuYW1lcywgY2hhciAqKm9iam5hbWVfcCk7CiBleHRlcm4gUmFuZ2VWYXIgKm1ha2VSYW5nZVZh ckZyb21OYW1lTGlzdChjb25zdCBMaXN0ICpuYW1lcyk7CitleHRlcm4gUmFuZ2VWYXIgKm1ha2VS YW5nZVZhckZyb21OYW1lTGlzdFNhZmUoY29uc3QgTGlzdCAqbmFtZXMsIE5vZGUgKmVzY29udGV4 dCk7CiBleHRlcm4gY2hhciAqTmFtZUxpc3RUb1N0cmluZyhjb25zdCBMaXN0ICpuYW1lcyk7CiBl eHRlcm4gY2hhciAqTmFtZUxpc3RUb1F1b3RlZFN0cmluZyhjb25zdCBMaXN0ICpuYW1lcyk7CiAK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3ZhcmxlbmEuaCBiL3NyYy9pbmNsdWRlL3V0 aWxzL3ZhcmxlbmEuaAppbmRleCBkYjlmZGY3Mjk0MS4uMGNmMDFhZTUyODEgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3V0aWxzL3ZhcmxlbmEuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy92YXJs ZW5hLmgKQEAgLTI3LDYgKzI3LDcgQEAgZXh0ZXJuIGludAl2YXJzdHJfbGV2ZW5zaHRlaW5fbGVz c19lcXVhbChjb25zdCBjaGFyICpzb3VyY2UsIGludCBzbGVuLAogCQkJCQkJCQkJCSAgaW50IGlu c19jLCBpbnQgZGVsX2MsIGludCBzdWJfYywKIAkJCQkJCQkJCQkgIGludCBtYXhfZCwgYm9vbCB0 cnVzdGVkKTsKIGV4dGVybiBMaXN0ICp0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdCh0ZXh0ICp0ZXh0 dmFsKTsKK2V4dGVybiBMaXN0ICp0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdFNhZmUodGV4dCAqdGV4 dHZhbCwgTm9kZSAqZXNjb250ZXh0KTsKIGV4dGVybiBib29sIFNwbGl0SWRlbnRpZmllclN0cmlu ZyhjaGFyICpyYXdzdHJpbmcsIGNoYXIgc2VwYXJhdG9yLAogCQkJCQkJCQkgIExpc3QgKipuYW1l bGlzdCk7CiBleHRlcm4gYm9vbCBTcGxpdERpcmVjdG9yaWVzU3RyaW5nKGNoYXIgKnJhd3N0cmlu ZywgY2hhciBzZXBhcmF0b3IsCi0tIAoyLjM0LjEKCg== --000000000000b88c47064114c15d Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v8-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgpwv24x18 RnJvbSBlYjRhNmVjMzEwZjUwY2VlZmFlZWY5OGZjMzE5MTRjZjhlNDhmNjgzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxOTowOTo1MyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjgg MDIvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgYml0L3ZhcmJpdCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywKICAgICAgIGNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywg cHAucHJvbmFtZQpmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uIHBwLm9pZCA9IHBj LmNhc3RmdW5jCndoZXJlIHBjLmNhc3RmdW5jID4gMCBhbmQgKGNhc3Rzb3VyY2U6OnJlZ3R5cGUg PSdiaXQnOjpyZWd0eXBlIG9yCmNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSd2YXJiaXQnOjpyZWd0eXBl KQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgIHwgY2FzdHRhcmdl dCAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICBwcm9zcmMgICB8IHBy b25hbWUKLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tCiBiaXQgICAgICAgICB8IGJpZ2lu dCAgICAgIHwgICAgIDIwNzYgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBiaXR0b2ludDgg fCBpbnQ4CiBiaXQgICAgICAgICB8IGludGVnZXIgICAgIHwgICAgIDE2ODQgfCBlICAgICAgICAg ICB8IGYgICAgICAgICAgfCBiaXR0b2ludDQgfCBpbnQ0CiBiaXQgICAgICAgICB8IGJpdCAgICAg ICAgIHwgICAgIDE2ODUgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBiaXQgICAgICAgfCBi aXQKIGJpdCB2YXJ5aW5nIHwgYml0IHZhcnlpbmcgfCAgICAgMTY4NyB8IGkgICAgICAgICAgIHwg ZiAgICAgICAgICB8IHZhcmJpdCAgICB8IHZhcmJpdAooNCByb3dzKQoKZGlzY3Vzc2lvbjogaHR0 cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNU el9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvdmFy Yml0LmMgfCAyNCArKysrKysrKysrKysrKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyMCBp bnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC92YXJiaXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJiaXQuYwppbmRleCAy MDVhNjdkYWZjNS4uYmZjZWExOGY0YjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC92YXJiaXQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFyYml0LmMKQEAgLTQwMSwx MSArNDAxLDE1IEBAIGJpdChQR19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fVkFSQklUX1Ao YXJnKTsKIAogCWlmICghaXNFeHBsaWNpdCkKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVycnNh dmUoZmNpbmZvLT5jb250ZXh0LAogCQkJCShlcnJjb2RlKEVSUkNPREVfU1RSSU5HX0RBVEFfTEVO R1RIX01JU01BVENIKSwKIAkJCQkgZXJybXNnKCJiaXQgc3RyaW5nIGxlbmd0aCAlZCBkb2VzIG5v dCBtYXRjaCB0eXBlIGJpdCglZCkiLAogCQkJCQkJVkFSQklUTEVOKGFyZyksIGxlbikpKTsKIAor CQlQR19SRVRVUk5fTlVMTCgpOworCX0KKwogCXJsZW4gPSBWQVJCSVRUT1RBTExFTihsZW4pOwog CS8qIHNldCB0byAwIHNvIHRoYXQgc3RyaW5nIGlzIHplcm8tcGFkZGVkICovCiAJcmVzdWx0ID0g KFZhckJpdCAqKSBwYWxsb2MwKHJsZW4pOwpAQCAtNzUyLDExICs3NTYsMTUgQEAgdmFyYml0KFBH X0ZVTkNUSU9OX0FSR1MpCiAJCVBHX1JFVFVSTl9WQVJCSVRfUChhcmcpOwogCiAJaWYgKCFpc0V4 cGxpY2l0KQotCQllcmVwb3J0KEVSUk9SLAorCXsKKwkJZXJyc2F2ZShmY2luZm8tPmNvbnRleHQs CiAJCQkJKGVycmNvZGUoRVJSQ09ERV9TVFJJTkdfREFUQV9SSUdIVF9UUlVOQ0FUSU9OKSwKIAkJ CQkgZXJybXNnKCJiaXQgc3RyaW5nIHRvbyBsb25nIGZvciB0eXBlIGJpdCB2YXJ5aW5nKCVkKSIs CiAJCQkJCQlsZW4pKSk7CiAKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CisKIAlybGVuID0gVkFS QklUVE9UQUxMRU4obGVuKTsKIAlyZXN1bHQgPSAoVmFyQml0ICopIHBhbGxvYyhybGVuKTsKIAlT RVRfVkFSU0laRShyZXN1bHQsIHJsZW4pOwpAQCAtMTU5MSwxMCArMTU5OSwxNCBAQCBiaXR0b2lu dDQoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIENoZWNrIHRoYXQgdGhlIGJpdCBzdHJpbmcgaXMg bm90IHRvbyBsb25nICovCiAJaWYgKFZBUkJJVExFTihhcmcpID4gc2l6ZW9mKHJlc3VsdCkgKiBC SVRTX1BFUl9CWVRFKQotCQllcmVwb3J0KEVSUk9SLAorCXsKKwkJZXJyc2F2ZShmY2luZm8tPmNv bnRleHQsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSks CiAJCQkJIGVycm1zZygiaW50ZWdlciBvdXQgb2YgcmFuZ2UiKSkpOwogCisJCVBHX1JFVFVSTl9O VUxMKCk7CisJfQorCiAJcmVzdWx0ID0gMDsKIAlmb3IgKHIgPSBWQVJCSVRTKGFyZyk7IHIgPCBW QVJCSVRFTkQoYXJnKTsgcisrKQogCXsKQEAgLTE2NzEsMTAgKzE2ODMsMTQgQEAgYml0dG9pbnQ4 KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBDaGVjayB0aGF0IHRoZSBiaXQgc3RyaW5nIGlzIG5v dCB0b28gbG9uZyAqLwogCWlmIChWQVJCSVRMRU4oYXJnKSA+IHNpemVvZihyZXN1bHQpICogQklU U19QRVJfQllURSkKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVycnNhdmUoZmNpbmZvLT5jb250 ZXh0LAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAog CQkJCSBlcnJtc2coImJpZ2ludCBvdXQgb2YgcmFuZ2UiKSkpOwogCisJCVBHX1JFVFVSTl9OVUxM KCk7CisJfQorCiAJcmVzdWx0ID0gMDsKIAlmb3IgKHIgPSBWQVJCSVRTKGFyZyk7IHIgPCBWQVJC SVRFTkQoYXJnKTsgcisrKQogCXsKLS0gCjIuMzQuMQoK --000000000000b88c47064114c15d Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v8-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgpwv24z19 RnJvbSA2NzY1ZDYwOTFiYzNmOTI3MjgzM2VmMzgyY2Q0MWRlYjQ4ZjNiMDFkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxNTozNjozNSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjgg MDEvMjBdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgYnl0ZWEgdG8gb3RoZXIgdHlwZXMgcGVyCiBw Z19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlwZSwg Y2FzdGZ1bmMsIGNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFtZQpm cm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uIHBwLm9pZCA9IHBjLmNhc3RmdW5jIGFu ZCBwYy5jYXN0ZnVuYyA+IDAgYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSdieXRlYSc6OnJlZ3R5 cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgY2FzdHRhcmdl dCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICBwcm9zcmMgICB8IHBy b25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0KIGJ5dGVhICAgICAgfCBzbWFsbGlu dCAgIHwgICAgIDYzNzAgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBieXRlYV9pbnQyIHwg aW50MgogYnl0ZWEgICAgICB8IGludGVnZXIgICAgfCAgICAgNjM3MSB8IGUgICAgICAgICAgIHwg ZiAgICAgICAgICB8IGJ5dGVhX2ludDQgfCBpbnQ0CiBieXRlYSAgICAgIHwgYmlnaW50ICAgICB8 ICAgICA2MzcyIHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgYnl0ZWFfaW50OCB8IGludDgK KDMgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRV ZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQog c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2J5dGVhLmMgfCAxOCArKysrKysrKysrKysrKystLS0KIDEg ZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ieXRlYS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2J5dGVhLmMKaW5kZXggNmU3YjkxNGM1NjMuLjRhOGFkY2I4MjA0IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvYnl0ZWEuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYnl0 ZWEuYwpAQCAtMTAyNywxMCArMTAyNywxNCBAQCBieXRlYV9pbnQyKFBHX0ZVTkNUSU9OX0FSR1Mp CiAKIAkvKiBDaGVjayB0aGF0IHRoZSBieXRlIGFycmF5IGlzIG5vdCB0b28gbG9uZyAqLwogCWlm IChsZW4gPiBzaXplb2YocmVzdWx0KSkKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVycnNhdmUo ZmNpbmZvLT5jb250ZXh0LAogCQkJCWVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9P Rl9SQU5HRSksCiAJCQkJZXJybXNnKCJzbWFsbGludCBvdXQgb2YgcmFuZ2UiKSk7CiAKKwkJUEdf UkVUVVJOX05VTEwoKTsKKwl9CisKIAkvKiBDb252ZXJ0IGl0IHRvIGFuIGludGVnZXI7IG1vc3Qg c2lnbmlmaWNhbnQgYnl0ZXMgY29tZSBmaXJzdCAqLwogCXJlc3VsdCA9IDA7CiAJZm9yIChpbnQg aSA9IDA7IGkgPCBsZW47IGkrKykKQEAgLTEwNTIsMTAgKzEwNTYsMTQgQEAgYnl0ZWFfaW50NChQ R19GVU5DVElPTl9BUkdTKQogCiAJLyogQ2hlY2sgdGhhdCB0aGUgYnl0ZSBhcnJheSBpcyBub3Qg dG9vIGxvbmcgKi8KIAlpZiAobGVuID4gc2l6ZW9mKHJlc3VsdCkpCi0JCWVyZXBvcnQoRVJST1Is CisJeworCQllcnJzYXZlKGZjaW5mby0+Y29udGV4dCwKIAkJCQllcnJjb2RlKEVSUkNPREVfTlVN RVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCWVycm1zZygiaW50ZWdlciBvdXQgb2YgcmFu Z2UiKSk7CiAKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CisKIAkvKiBDb252ZXJ0IGl0IHRvIGFu IGludGVnZXI7IG1vc3Qgc2lnbmlmaWNhbnQgYnl0ZXMgY29tZSBmaXJzdCAqLwogCXJlc3VsdCA9 IDA7CiAJZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47IGkrKykKQEAgLTEwNzcsMTAgKzEwODUsMTQg QEAgYnl0ZWFfaW50OChQR19GVU5DVElPTl9BUkdTKQogCiAJLyogQ2hlY2sgdGhhdCB0aGUgYnl0 ZSBhcnJheSBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAobGVuID4gc2l6ZW9mKHJlc3VsdCkpCi0J CWVyZXBvcnQoRVJST1IsCisJeworCQllcnJzYXZlKGZjaW5mby0+Y29udGV4dCwKIAkJCQllcnJj b2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCWVycm1zZygiYmln aW50IG91dCBvZiByYW5nZSIpKTsKIAorCQlQR19SRVRVUk5fTlVMTCgpOworCX0KKwogCS8qIENv bnZlcnQgaXQgdG8gYW4gaW50ZWdlcjsgbW9zdCBzaWduaWZpY2FudCBieXRlcyBjb21lIGZpcnN0 ICovCiAJcmVzdWx0ID0gMDsKIAlmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgaSsrKQotLSAKMi4z NC4xCgo= --000000000000b88c47064114c15d--