Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vQLCl-005ttN-2Y for pgsql-hackers@arkaria.postgresql.org; Tue, 02 Dec 2025 07:53:48 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vQLCk-006UGU-1m for pgsql-hackers@arkaria.postgresql.org; Tue, 02 Dec 2025 07:53:46 +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.96) (envelope-from ) id 1vQLCj-006UGK-1g for pgsql-hackers@lists.postgresql.org; Tue, 02 Dec 2025 07:53:46 +0000 Received: from mail-vs1-xe2f.google.com ([2607:f8b0:4864:20::e2f]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vQLCa-002i2y-0X for pgsql-hackers@lists.postgresql.org; Tue, 02 Dec 2025 07:53:44 +0000 Received: by mail-vs1-xe2f.google.com with SMTP id ada2fe7eead31-5dbd1421182so4266960137.1 for ; Mon, 01 Dec 2025 23:53:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764662016; x=1765266816; 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=HBJQM9GdcIKea01V1bigmPCpsDCgIp7u45Shd8BH+WU=; b=nnMd3ZKFn1BSRdQSil6N+lKaLscMxEbr5J6VvI1iTxBW/OSeFPRnR3yncwneKaqa81 SooGmCW/Qc+ZaOSKxQFkSMSakalfflk4+bii8f+vmcob6BmPXZjAxTGNH74zoudQtJXX bOnwcMrFsF5Gu/7ulJrsCnMYAN6KcBzqcvjAa1jW04LcuczI5qdrUx7jeyvhKQZwVp4p hCgmeHrfG1iXosq0l93oRk4EmkOBjlNG1uLAe74Ijiga1o8KBZ75A/QFTu3gJC8zXmzA vXWSj37Fp33/gntVk0Mz4/iYYjPZeKgl7U96cQpfUkf9VoJePjcrEShy98t1HEPnGEDY NXKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764662016; x=1765266816; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=HBJQM9GdcIKea01V1bigmPCpsDCgIp7u45Shd8BH+WU=; b=apIK8scDjDbOR9Cdz9FmLbK4ENxlvPB5LtsAUlrHLid/79wNdp4+Fy+SBQ6Lb0+JZy WV3hrXbYdmDjnonmpEPcPEyQJqLYOFLMfkWRzktfuRm03WJQbLEAu/ToTE/yXh/w3MwJ VicQPy+ct2D7LlqTYNndHH+mRsr2mPUaDinubHOv4JSVIyfIi9qMdBbeT7RIlZh4xrKd nqZ+fRjw1sb0LS26tauQEemFxj9oobL9o4g1MOZQ7aUOtMiq3SM6P+s/dAjQuyeD2YwT a7cKPzozgzZNR4uOslDg7hbl6E15VhyHIZl51RHSF1u5v0ckcs8CUQc72wcrQxSwuZXn T8GQ== X-Forwarded-Encrypted: i=1; AJvYcCX2MjXa68thie1YTUe+1WjfXICqrJxN/aFEfFYI3kEplTww1cyEMLlSSDJ8EKPMB3oHxFSVtUe7GRCfwky1@lists.postgresql.org X-Gm-Message-State: AOJu0YzBBYjQiq03sViWTdgw8J/9NDoPWxJS5eP3KpLi6wWZXV57DoET dV3HL7erRGjjqsQKQnG7KaO/kjdP6QEiNAPPUHsAGZYHXvaMCVtfXGrcUqNoCY0433uqTxTFdA8 Ur45Bh8NAli0MW02wyfnoSJX2YmWihDM= X-Gm-Gg: ASbGncui+4uxPuFIaQ+TVXC07N4EdqYyhFBvDCT4kcY/P4vTfo+XyakMyVv0sBUI4sT Qi1sSGnYIRRNTyV23i8LZ4r9vZ7Yf9zfEgyU6vrMlP6qDaGRSrTBERUivQ7Uz+OH2nG+OoxpGWZ UffnNPju6Z7RaJdZGw3H+LOoWvanmis0/YdYvE0VqKtvSlJfVR44F2DOKWCNq5QDPbqpeqYEb7+ qgTN3yE6LAFUG8ivvwstED7ZNEVU+6qdb7UnH0LMK8hU7ZOSuYklImUgDp6fMp3V8gblvfmKGUD iAkDSCb/Ot895Qqt4olQojoKnQjorZ4Y8UFEMQARP82MW3uhyGnDl5UFALr9MyUdMT40wzjCvBs BQ74/T6qlJDSmqsAsZrqzxgusAcT8C6QVvon4HLNTXUWi8aMZTWvPj0KNyrQymHQgHRV22zzNx4 FnPhy47QE= X-Google-Smtp-Source: AGHT+IF7JkRn0bNGqUbkTguZ/WVzYs6dLrxbqS+jorrf/0Vl28WbpNGzXDSsnHb7rechO2HboM4fnTeRWJovbTd0eV4= X-Received: by 2002:a05:6102:5805:b0:5dd:c3ec:b66 with SMTP id ada2fe7eead31-5e2243dc73fmr12307345137.30.1764662015876; Mon, 01 Dec 2025 23:53:35 -0800 (PST) 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, 2 Dec 2025 15:52:57 +0800 X-Gm-Features: AWmQ_bkO-Q-G3Y28-UgCqe6N2Wddv7Hhnxeh-OvO-4CISvOqoI3YP8dRKLjVogM Message-ID: Subject: Re: CAST(... ON DEFAULT) - WIP build on top of Error-Safe User Functions To: Amul Sul Cc: Corey Huinker , Vik Fearing , Isaac Morland , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="0000000000009b0f2c0644f36491" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000009b0f2c0644f36491 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Dec 1, 2025 at 8:09=E2=80=AFPM Amul Sul wrote: > > Since you declared float8_div_safe() as static inline, I believe it > wouldn't have any performance degradation since most compilers > optimize it. Also, I suggest you pass the ErrorSafeContext to > float_overflow_error(), float_underflow_error(), and > float_zero_divide_error() so that you can avoid duplicating error > messages. > hi. First I want to use ereturn, then I found out float_overflow_error, float_underflow_error, float_zero_divide_error used both in float4, float8. ereturn would not be appropriate for both types. so I choose errsave. for these 3 functions, now it looks like: pg_noinline void float_overflow_error(struct Node *escontext) { errsave(escontext, (errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), errmsg("value out of range: overflow"))); } pg_noinline void float_underflow_error(struct Node *escontext) { errsave(escontext, (errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), errmsg("value out of range: underflow"))); } pg_noinline void float_zero_divide_error(struct Node *escontext) { errsave(escontext, (errcode(ERRCODE_DIVISION_BY_ZERO), errmsg("division by zero"))); } -- jian https://www.enterprisedb.com/ --0000000000009b0f2c0644f36491 Content-Type: text/x-patch; charset="US-ASCII"; name="v13-0018-error-safe-for-casting-geometry-data-type.patch" Content-Disposition: attachment; filename="v13-0018-error-safe-for-casting-geometry-data-type.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mioa5q9x2 RnJvbSA0OTRhMmMxOWE2MjMxMDRhYzdlNWQxYmNjN2Q0ZjRmYjU3YjE3OGUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxNToyNToyOSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEz IDE4LzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGdlb21ldHJ5IGRhdGEgdHlwZQoKc2VsZWN0 IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUsIHBwLnByb3NyYwpmcm9t IHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uIHBwLm9pZCA9IHBjLmNhc3RmdW5jCmpvaW4g cGdfdHlwZSBwdCBvbiBwdC5vaWQgPSBjYXN0c291cmNlCmpvaW4gcGdfdHlwZSBwdDEgb24gcHQx Lm9pZCA9IGNhc3R0YXJnZXQKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgIHB0LnR5cGFycmF5IDw+ IDAKYW5kIHB0LnR5cG5hbWVzcGFjZSA9ICdwZ19jYXRhbG9nJzo6cmVnbmFtZXNwYWNlCmFuZCBw dDEudHlwbmFtZXNwYWNlID0gJ3BnX2NhdGFsb2cnOjpyZWduYW1lc3BhY2UKYW5kIChwdC50eXBj YXRlZ29yeSAgPSAnRycgb3IgcHQxLnR5cGNhdGVnb3J5ICA9ICdHJykKb3JkZXIgYnkgY2FzdHNv dXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgY2FzdHRh cmdldCB8ICAgIHByb3NyYwotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LQogcG9pbnQgICAgICB8IGJveCAgICAgICAgfCBwb2ludF9ib3gKIGxzZWcgICAgICAgfCBwb2lu dCAgICAgIHwgbHNlZ19jZW50ZXIKIHBhdGggICAgICAgfCBwb2x5Z29uICAgIHwgcGF0aF9wb2x5 CiBib3ggICAgICAgIHwgcG9pbnQgICAgICB8IGJveF9jZW50ZXIKIGJveCAgICAgICAgfCBsc2Vn ICAgICAgIHwgYm94X2RpYWdvbmFsCiBib3ggICAgICAgIHwgcG9seWdvbiAgICB8IGJveF9wb2x5 CiBib3ggICAgICAgIHwgY2lyY2xlICAgICB8IGJveF9jaXJjbGUKIHBvbHlnb24gICAgfCBwb2lu dCAgICAgIHwgcG9seV9jZW50ZXIKIHBvbHlnb24gICAgfCBwYXRoICAgICAgIHwgcG9seV9wYXRo CiBwb2x5Z29uICAgIHwgYm94ICAgICAgICB8IHBvbHlfYm94CiBwb2x5Z29uICAgIHwgY2lyY2xl ICAgICB8IHBvbHlfY2lyY2xlCiBjaXJjbGUgICAgIHwgcG9pbnQgICAgICB8IGNpcmNsZV9jZW50 ZXIKIGNpcmNsZSAgICAgfCBib3ggICAgICAgIHwgY2lyY2xlX2JveAogY2lyY2xlICAgICB8IHBv bHlnb24gICAgfAooMTQgcm93cykKCmFscmVhZHkgZXJyb3Igc2FmZTogcG9pbnRfYm94LCBib3hf ZGlhZ29uYWwsIGJveF9wb2x5LCBwb2x5X3BhdGgsIHBvbHlfYm94LCBjaXJjbGVfY2VudGVyCmFs bW9zdCBlcnJvciBzYWZlOiBwYXRoX3BvbHkKcGF0Y2ggbWFrZSB0aGVzZSBmdW5jdGlvbnMgZXJy b3Igc2FmZTogbHNlZ19jZW50ZXIsIGJveF9jZW50ZXIsIGJveF9jaXJjbGUsIHBvbHlfY2VudGVy LCBwb2x5X2NpcmNsZQpjaXJjbGVfYm94CgpjYW4gbm90IGVycm9yIHNhZmU6IGNhc3QgY2lyY2xl IHRvIHBvbHlnb24sIGJlY2F1c2UgaXQncyBhIFNRTCBmdW5jdGlvbgpkaXNjdXNzaW9uOiBodHRw czovL3Bvc3Rnci5lcy9tL0NBQ0p1ZnhIQ016ckhPVz13UmU4TDMwck1oQjNzandBdjFMRTkyOEZh N3N4TXUxVHgtZ0BtYWlsLmdtYWlsLmNvbQotLS0KIGNvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9m bG9hdDQuYyB8ICAgMiArLQogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2Zsb2F0OC5jIHwgICA0 ICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYyAgICAgfCAxMDQgKysrKysrKy0tLS0t LS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jICAgfCAyMDUgKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tCiBzcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oICAgICAgICAgfCAx MTIgKysrKysrKysrKystLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCAzMTMgaW5zZXJ0aW9ucygrKSwg MTE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9m bG9hdDQuYyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9mbG9hdDQuYwppbmRleCBkOWM4NTk4 MzVkYS4uYTczMjVhN2JiMjkgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9m bG9hdDQuYworKysgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ0LmMKQEAgLTEwMSw3 ICsxMDEsNyBAQCBmbG9hdDRfZGlzdChQR19GVU5DVElPTl9BUkdTKQogCiAJciA9IGEgLSBiOwog CWlmICh1bmxpa2VseShpc2luZihyKSkgJiYgIWlzaW5mKGEpICYmICFpc2luZihiKSkKLQkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQ R19SRVRVUk5fRkxPQVQ0KGZhYnNmKHIpKTsKIH0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVf Z2lzdC9idHJlZV9mbG9hdDguYyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9mbG9hdDguYwpp bmRleCA1NjdiZWVkZTE3OC4uN2M5OWI4NGRlMzUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYnRyZWVf Z2lzdC9idHJlZV9mbG9hdDguYworKysgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4 LmMKQEAgLTc5LDcgKzc5LDcgQEAgZ2J0X2Zsb2F0OF9kaXN0KGNvbnN0IHZvaWQgKmEsIGNvbnN0 IHZvaWQgKmIsIEZtZ3JJbmZvICpmbGluZm8pCiAKIAlyID0gYXJnMSAtIGFyZzI7CiAJaWYgKHVu bGlrZWx5KGlzaW5mKHIpKSAmJiAhaXNpbmYoYXJnMSkgJiYgIWlzaW5mKGFyZzIpKQotCQlmbG9h dF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAlyZXR1 cm4gZmFicyhyKTsKIH0KIApAQCAtMTA5LDcgKzEwOSw3IEBAIGZsb2F0OF9kaXN0KFBHX0ZVTkNU SU9OX0FSR1MpCiAKIAlyID0gYSAtIGI7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHIpKSAmJiAhaXNp bmYoYSkgJiYgIWlzaW5mKGIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9v dmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgoZmFicyhyKSk7CiB9CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9mbG9hdC5jCmluZGV4IGQ3NDZmOTYxZmQzLi40YTc2MjNiMTQ1NiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2Zsb2F0LmMKQEAgLTgzLDI1ICs4MywyNSBAQCBzdGF0aWMgdm9pZCBpbml0X2RlZ3JlZV9j b25zdGFudHModm9pZCk7CiAgKiBUaGlzIGRvZXMgbWVhbiB0aGF0IHlvdSBkb24ndCBnZXQgYSB1 c2VmdWwgZXJyb3IgbG9jYXRpb24gaW5kaWNhdG9yLgogICovCiBwZ19ub2lubGluZSB2b2lkCi1m bG9hdF9vdmVyZmxvd19lcnJvcih2b2lkKQorZmxvYXRfb3ZlcmZsb3dfZXJyb3Ioc3RydWN0IE5v ZGUgKmVzY29udGV4dCkKIHsKLQllcmVwb3J0KEVSUk9SLAorCWVycnNhdmUoZXNjb250ZXh0LAog CQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkgZXJy bXNnKCJ2YWx1ZSBvdXQgb2YgcmFuZ2U6IG92ZXJmbG93IikpKTsKIH0KIAogcGdfbm9pbmxpbmUg dm9pZAotZmxvYXRfdW5kZXJmbG93X2Vycm9yKHZvaWQpCitmbG9hdF91bmRlcmZsb3dfZXJyb3Io c3RydWN0IE5vZGUgKmVzY29udGV4dCkKIHsKLQllcmVwb3J0KEVSUk9SLAorCWVycnNhdmUoZXNj b250ZXh0LAogCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSks CiAJCQkgZXJybXNnKCJ2YWx1ZSBvdXQgb2YgcmFuZ2U6IHVuZGVyZmxvdyIpKSk7CiB9CiAKIHBn X25vaW5saW5lIHZvaWQKLWZsb2F0X3plcm9fZGl2aWRlX2Vycm9yKHZvaWQpCitmbG9hdF96ZXJv X2RpdmlkZV9lcnJvcihzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQogewotCWVyZXBvcnQoRVJST1Is CisJZXJyc2F2ZShlc2NvbnRleHQsCiAJCQkoZXJyY29kZShFUlJDT0RFX0RJVklTSU9OX0JZX1pF Uk8pLAogCQkJIGVycm1zZygiZGl2aXNpb24gYnkgemVybyIpKSk7CiB9CkBAIC0xNDYwLDkgKzE0 NjAsOSBAQCBkc3FydChQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gc3FydChhcmcxKTsK IAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKGFyZzEpKQotCQlmbG9hdF9v dmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAlpZiAodW5s aWtlbHkocmVzdWx0ID09IDAuMCkgJiYgYXJnMSAhPSAwLjApCi0JCWZsb2F0X3VuZGVyZmxvd19l cnJvcigpOworCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxP QVQ4KHJlc3VsdCk7CiB9CkBAIC0xNDc5LDkgKzE0NzksOSBAQCBkY2JydChQR19GVU5DVElPTl9B UkdTKQogCiAJcmVzdWx0ID0gY2JydChhcmcxKTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0 KSkgJiYgIWlzaW5mKGFyZzEpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9v dmVyZmxvd19lcnJvcihOVUxMKTsKIAlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYgYXJn MSAhPSAwLjApCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQlmbG9hdF91bmRlcmZsb3df ZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0xNjE3LDI0 ICsxNjE3LDI0IEBAIGRwb3coUEdfRlVOQ1RJT05fQVJHUykKIAkJCQlpZiAoYWJzeCA9PSAxLjAp CiAJCQkJCXJlc3VsdCA9IDEuMDsKIAkJCQllbHNlIGlmIChhcmcyID49IDAuMCA/IChhYnN4ID4g MS4wKSA6IChhYnN4IDwgMS4wKSkKLQkJCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJCQkJ ZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJCQkJZWxzZQotCQkJCQlmbG9hdF91bmRlcmZs b3dfZXJyb3IoKTsKKwkJCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCQkJfQogCQl9 CiAJCWVsc2UgaWYgKGVycm5vID09IEVSQU5HRSkKIAkJewogCQkJaWYgKHJlc3VsdCAhPSAwLjAp Ci0JCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcihO VUxMKTsKIAkJCWVsc2UKLQkJCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJCQlmbG9hdF91 bmRlcmZsb3dfZXJyb3IoTlVMTCk7CiAJCX0KIAkJZWxzZQogCQl7CiAJCQlpZiAodW5saWtlbHko aXNpbmYocmVzdWx0KSkpCi0JCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJCQlmbG9hdF9v dmVyZmxvd19lcnJvcihOVUxMKTsKIAkJCWlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wKSAmJiBh cmcxICE9IDAuMCkKLQkJCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJCQlmbG9hdF91bmRl cmZsb3dfZXJyb3IoTlVMTCk7CiAJCX0KIAl9CiAKQEAgLTE2NzQsMTQgKzE2NzQsMTQgQEAgZGV4 cChQR19GVU5DVElPTl9BUkdTKQogCQlpZiAodW5saWtlbHkoZXJybm8gPT0gRVJBTkdFKSkKIAkJ ewogCQkJaWYgKHJlc3VsdCAhPSAwLjApCi0JCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJ CQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAkJCWVsc2UKLQkJCQlmbG9hdF91bmRlcmZs b3dfZXJyb3IoKTsKKwkJCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVMTCk7CiAJCX0KIAkJZWxz ZSBpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCQlmbG9hdF9vdmVyZmxvd19lcnJvcigp OworCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJCWVsc2UgaWYgKHVubGlrZWx5KHJl c3VsdCA9PSAwLjApKQotCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQlmbG9hdF91bmRl cmZsb3dfZXJyb3IoTlVMTCk7CiAJfQogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwpAQCAt MTcxMiw5ICsxNzEyLDkgQEAgZGxvZzEoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IGxv ZyhhcmcxKTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKGFyZzEpKQot CQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsK IAlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYgYXJnMSAhPSAxLjApCi0JCWZsb2F0X3Vu ZGVyZmxvd19lcnJvcigpOworCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19S RVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0xNzQ1LDkgKzE3NDUsOSBAQCBkbG9nMTAoUEdf RlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IGxvZzEwKGFyZzEpOwogCWlmICh1bmxpa2VseShp c2luZihyZXN1bHQpKSAmJiAhaXNpbmYoYXJnMSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7 CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCWlmICh1bmxpa2VseShyZXN1bHQgPT0g MC4wKSAmJiBhcmcxICE9IDEuMCkKLQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0 X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKIH0K QEAgLTE3NzgsNyArMTc3OCw3IEBAIGRhY29zKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHQg PSBhY29zKGFyZzEpOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSkKLQkJZmxvYXRfb3Zl cmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRV Uk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0xODA5LDcgKzE4MDksNyBAQCBkYXNpbihQR19GVU5D VElPTl9BUkdTKQogCiAJcmVzdWx0ID0gYXNpbihhcmcxKTsKIAlpZiAodW5saWtlbHkoaXNpbmYo cmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vy cm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMTgzNSw3ICsx ODM1LDcgQEAgZGF0YW4oUEdfRlVOQ1RJT05fQVJHUykKIAkgKi8KIAlyZXN1bHQgPSBhdGFuKGFy ZzEpOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJy b3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4 KHJlc3VsdCk7CiB9CkBAIC0xODYxLDcgKzE4NjEsNyBAQCBkYXRhbjIoUEdfRlVOQ1RJT05fQVJH UykKIAkgKi8KIAlyZXN1bHQgPSBhdGFuMihhcmcxLCBhcmcyKTsKIAlpZiAodW5saWtlbHkoaXNp bmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93 X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMTkwMiw3 ICsxOTAyLDcgQEAgZGNvcyhQR19GVU5DVElPTl9BUkdTKQogCQkJCShlcnJjb2RlKEVSUkNPREVf TlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coImlucHV0IGlzIG91dCBv ZiByYW5nZSIpKSk7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9hdF9vdmVy Zmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVS Tl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTE5NTcsNyArMTk1Nyw3IEBAIGRzaW4oUEdfRlVOQ1RJ T05fQVJHUykKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdF KSwKIAkJCQkgZXJybXNnKCJpbnB1dCBpcyBvdXQgb2YgcmFuZ2UiKSkpOwogCWlmICh1bmxpa2Vs eShpc2luZihyZXN1bHQpKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3Zl cmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0y MTM3LDcgKzIxMzcsNyBAQCBkYWNvc2QoUEdfRlVOQ1RJT05fQVJHUykKIAkJcmVzdWx0ID0gOTAu MCArIGFzaW5kX3ExKC1hcmcxKTsKIAogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSkKLQkJ ZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAK IAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0yMTc0LDcgKzIxNzQsNyBAQCBkYXNp bmQoUEdfRlVOQ1RJT05fQVJHUykKIAkJcmVzdWx0ID0gLWFzaW5kX3ExKC1hcmcxKTsKIAogCWlm ICh1bmxpa2VseShpc2luZihyZXN1bHQpKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJ ZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7 CiB9CkBAIC0yMjA2LDcgKzIyMDYsNyBAQCBkYXRhbmQoUEdfRlVOQ1RJT05fQVJHUykKIAlyZXN1 bHQgPSAoYXRhbl9hcmcxIC8gYXRhbl8xXzApICogNDUuMDsKIAogCWlmICh1bmxpa2VseShpc2lu ZihyZXN1bHQpKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3df ZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0yMjQyLDcg KzIyNDIsNyBAQCBkYXRhbjJkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJcmVzdWx0ID0gKGF0YW4yX2Fy ZzFfYXJnMiAvIGF0YW5fMV8wKSAqIDQ1LjA7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0 KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5V TEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjM2NSw3ICsyMzY1LDcg QEAgZGNvc2QoUEdfRlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSBzaWduICogY29zZF9xMShhcmcx KTsKIAogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJy b3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4 KHJlc3VsdCk7CiB9CkBAIC0yNDg3LDcgKzI0ODcsNyBAQCBkc2luZChQR19GVU5DVElPTl9BUkdT KQogCXJlc3VsdCA9IHNpZ24gKiBzaW5kX3ExKGFyZzEpOwogCiAJaWYgKHVubGlrZWx5KGlzaW5m KHJlc3VsdCkpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19l cnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTI2NDUsNyAr MjY0NSw3IEBAIGRjb3NoKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXJlc3VsdCA9IGdldF9mbG9hdDhf aW5maW5pdHkoKTsKIAogCWlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wKSkKLQkJZmxvYXRfdW5k ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JF VFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTI2NjUsNyArMjY2NSw3IEBAIGR0YW5oKFBHX0ZV TkNUSU9OX0FSR1MpCiAJcmVzdWx0ID0gdGFuaChhcmcxKTsKIAogCWlmICh1bmxpa2VseShpc2lu ZihyZXN1bHQpKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3df ZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0yNzY1LDcg KzI3NjUsNyBAQCBkZXJmKFBHX0ZVTkNUSU9OX0FSR1MpCiAJcmVzdWx0ID0gZXJmKGFyZzEpOwog CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigp OworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocmVz dWx0KTsKIH0KQEAgLTI3ODUsNyArMjc4NSw3IEBAIGRlcmZjKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ cmVzdWx0ID0gZXJmYyhhcmcxKTsKIAogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSkKLQkJ ZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAK IAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0yODE0LDcgKzI4MTQsNyBAQCBkZ2Ft bWEoUEdfRlVOQ1RJT05fQVJHUykKIAkJLyogUGVyIFBPU0lYLCBhbiBpbnB1dCBvZiAtSW5mIGNh dXNlcyBhIGRvbWFpbiBlcnJvciAqLwogCQlpZiAoYXJnMSA8IDApCiAJCXsKLQkJCWZsb2F0X292 ZXJmbG93X2Vycm9yKCk7CisJCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAkJCXJlc3Vs dCA9IGdldF9mbG9hdDhfbmFuKCk7CS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KIAkJfQogCQll bHNlCkBAIC0yODM2LDEyICsyODM2LDEyIEBAIGRnYW1tYShQR19GVU5DVElPTl9BUkdTKQogCQlp ZiAoZXJybm8gIT0gMCB8fCBpc2luZihyZXN1bHQpIHx8IGlzbmFuKHJlc3VsdCkpCiAJCXsKIAkJ CWlmIChyZXN1bHQgIT0gMC4wKQotCQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJCQllbHNlCi0JCQkJZmxvYXRfdW5kZXJmbG93X2Vy cm9yKCk7CisJCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCQl9CiAJCWVsc2UgaWYg KHJlc3VsdCA9PSAwLjApCi0JCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X3Vu ZGVyZmxvd19lcnJvcihOVUxMKTsKIAl9CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CkBA IC0yODczLDcgKzI4NzMsNyBAQCBkbGdhbW1hKFBHX0ZVTkNUSU9OX0FSR1MpCiAJICogdG8gcmVw b3J0IG92ZXJmbG93LCBidXQgaXQgc2hvdWxkIG5ldmVyIHVuZGVyZmxvdy4KIAkgKi8KIAlpZiAo ZXJybm8gPT0gRVJBTkdFIHx8IChpc2luZihyZXN1bHQpICYmICFpc2luZihhcmcxKSkpCi0JCWZs b2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJ UEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMzAxMyw3ICszMDEzLDcgQEAgZmxvYXQ4 X2NvbWJpbmUoUEdfRlVOQ1RJT05fQVJHUykKIAkJdG1wID0gU3gxIC8gTjEgLSBTeDIgLyBOMjsK IAkJU3h4ID0gU3h4MSArIFN4eDIgKyBOMSAqIE4yICogdG1wICogdG1wIC8gTjsKIAkJaWYgKHVu bGlrZWx5KGlzaW5mKFN4eCkpICYmICFpc2luZihTeHgxKSAmJiAhaXNpbmYoU3h4MikpCi0JCQlm bG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJ fQogCiAJLyoKQEAgLTMwODAsNyArMzA4MCw3IEBAIGZsb2F0OF9hY2N1bShQR19GVU5DVElPTl9B UkdTKQogCQlpZiAoaXNpbmYoU3gpIHx8IGlzaW5mKFN4eCkpCiAJCXsKIAkJCWlmICghaXNpbmYo dHJhbnN2YWx1ZXNbMV0pICYmICFpc2luZihuZXd2YWwpKQotCQkJCWZsb2F0X292ZXJmbG93X2Vy cm9yKCk7CisJCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAkJCVN4eCA9IGdldF9m bG9hdDhfbmFuKCk7CiAJCX0KQEAgLTMxNjMsNyArMzE2Myw3IEBAIGZsb2F0NF9hY2N1bShQR19G VU5DVElPTl9BUkdTKQogCQlpZiAoaXNpbmYoU3gpIHx8IGlzaW5mKFN4eCkpCiAJCXsKIAkJCWlm ICghaXNpbmYodHJhbnN2YWx1ZXNbMV0pICYmICFpc2luZihuZXd2YWwpKQotCQkJCWZsb2F0X292 ZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAkJCVN4 eCA9IGdldF9mbG9hdDhfbmFuKCk7CiAJCX0KQEAgLTMzOTMsNyArMzM5Myw3IEBAIGZsb2F0OF9y ZWdyX2FjY3VtKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJKGlzaW5mKFN4eSkgJiYKIAkJCQkgIWlz aW5mKHRyYW5zdmFsdWVzWzFdKSAmJiAhaXNpbmYobmV3dmFsWCkgJiYKIAkJCQkgIWlzaW5mKHRy YW5zdmFsdWVzWzNdKSAmJiAhaXNpbmYobmV3dmFsWSkpKQotCQkJCWZsb2F0X292ZXJmbG93X2Vy cm9yKCk7CisJCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAkJCWlmIChpc2luZihT eHgpKQogCQkJCVN4eCA9IGdldF9mbG9hdDhfbmFuKCk7CkBAIC0zNTQ1LDE1ICszNTQ1LDE1IEBA IGZsb2F0OF9yZWdyX2NvbWJpbmUoUEdfRlVOQ1RJT05fQVJHUykKIAkJdG1wMSA9IFN4MSAvIE4x IC0gU3gyIC8gTjI7CiAJCVN4eCA9IFN4eDEgKyBTeHgyICsgTjEgKiBOMiAqIHRtcDEgKiB0bXAx IC8gTjsKIAkJaWYgKHVubGlrZWx5KGlzaW5mKFN4eCkpICYmICFpc2luZihTeHgxKSAmJiAhaXNp bmYoU3h4MikpCi0JCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJZmxvYXRfb3ZlcmZsb3df ZXJyb3IoTlVMTCk7CiAJCVN5ID0gZmxvYXQ4X3BsKFN5MSwgU3kyKTsKIAkJdG1wMiA9IFN5MSAv IE4xIC0gU3kyIC8gTjI7CiAJCVN5eSA9IFN5eTEgKyBTeXkyICsgTjEgKiBOMiAqIHRtcDIgKiB0 bXAyIC8gTjsKIAkJaWYgKHVubGlrZWx5KGlzaW5mKFN5eSkpICYmICFpc2luZihTeXkxKSAmJiAh aXNpbmYoU3l5MikpCi0JCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJZmxvYXRfb3ZlcmZs b3dfZXJyb3IoTlVMTCk7CiAJCVN4eSA9IFN4eTEgKyBTeHkyICsgTjEgKiBOMiAqIHRtcDEgKiB0 bXAyIC8gTjsKIAkJaWYgKHVubGlrZWx5KGlzaW5mKFN4eSkpICYmICFpc2luZihTeHkxKSAmJiAh aXNpbmYoU3h5MikpCi0JCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJZmxvYXRfb3ZlcmZs b3dfZXJyb3IoTlVMTCk7CiAJfQogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9nZW9fb3BzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jCmluZGV4IDkx MDFhNzIwNzQ0Li4wYzc5MmMxN2U4MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2dlb19vcHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jCkBAIC03OCwx MSArNzgsMTQgQEAgZW51bSBwYXRoX2RlbGltCiAvKiBSb3V0aW5lcyBmb3IgcG9pbnRzICovCiBz dGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfY29uc3RydWN0KFBvaW50ICpyZXN1bHQsIGZsb2F0OCB4 LCBmbG9hdDggeSk7CiBzdGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfYWRkX3BvaW50KFBvaW50ICpy ZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOworc3RhdGljIGlubGluZSBib29sIHBvaW50 X2FkZF9wb2ludF9zYWZlKFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIsCisJ CQkJCQkJCQkJTm9kZSAqZXNjb250ZXh0KTsKIHN0YXRpYyBpbmxpbmUgdm9pZCBwb2ludF9zdWJf cG9pbnQoUG9pbnQgKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMgaW5s aW5lIHZvaWQgcG9pbnRfbXVsX3BvaW50KFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50 ICpwdDIpOwogc3RhdGljIGlubGluZSB2b2lkIHBvaW50X2Rpdl9wb2ludChQb2ludCAqcmVzdWx0 LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsKIHN0YXRpYyBpbmxpbmUgYm9vbCBwb2ludF9lcV9w b2ludChQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsKIHN0YXRpYyBpbmxpbmUgZmxvYXQ4IHBvaW50 X2R0KFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOworc3RhdGljIGlubGluZSBmbG9hdDggcG9pbnRf ZHRfc2FmZShQb2ludCAqcHQxLCBQb2ludCAqcHQyLCBOb2RlICplc2NvbnRleHQpOwogc3RhdGlj IGlubGluZSBmbG9hdDggcG9pbnRfc2woUG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMg aW50CXBvaW50X2luc2lkZShQb2ludCAqcCwgaW50IG5wdHMsIFBvaW50ICpwbGlzdCk7CiAKQEAg LTEwOSw2ICsxMTIsNyBAQCBzdGF0aWMgZmxvYXQ4IGxzZWdfY2xvc2VwdF9sc2VnKFBvaW50ICpy ZXN1bHQsIExTRUcgKm9uX2xzZWcsIExTRUcgKnRvX2xzZWcpOwogLyogUm91dGluZXMgZm9yIGJv eGVzICovCiBzdGF0aWMgaW5saW5lIHZvaWQgYm94X2NvbnN0cnVjdChCT1ggKnJlc3VsdCwgUG9p bnQgKnB0MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMgdm9pZCBib3hfY24oUG9pbnQgKmNlbnRlciwg Qk9YICpib3gpOworc3RhdGljIGJvb2wgYm94X2NuX3NhZmUoUG9pbnQgKmNlbnRlciwgQk9YICpi b3gsIE5vZGUqIGVzY29udGV4dCk7CiBzdGF0aWMgYm9vbCBib3hfb3YoQk9YICpib3gxLCBCT1gg KmJveDIpOwogc3RhdGljIGZsb2F0OCBib3hfYXIoQk9YICpib3gpOwogc3RhdGljIGZsb2F0OCBi b3hfaHQoQk9YICpib3gpOwpAQCAtMTI1LDcgKzEyOSw3IEBAIHN0YXRpYyBmbG9hdDggY2lyY2xl X2FyKENJUkNMRSAqY2lyY2xlKTsKIAogLyogUm91dGluZXMgZm9yIHBvbHlnb25zICovCiBzdGF0 aWMgdm9pZCBtYWtlX2JvdW5kX2JveChQT0xZR09OICpwb2x5KTsKLXN0YXRpYyB2b2lkIHBvbHlf dG9fY2lyY2xlKENJUkNMRSAqcmVzdWx0LCBQT0xZR09OICpwb2x5KTsKK3N0YXRpYyBib29sIHBv bHlfdG9fY2lyY2xlX3NhZmUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHksIE5vZGUgKmVz Y29udGV4dCk7CiBzdGF0aWMgYm9vbCBsc2VnX2luc2lkZV9wb2x5KFBvaW50ICphLCBQb2ludCAq YiwgUE9MWUdPTiAqcG9seSwgaW50IHN0YXJ0KTsKIHN0YXRpYyBib29sIHBvbHlfY29udGFpbl9w b2x5KFBPTFlHT04gKmNvbnRhaW5zX3BvbHksIFBPTFlHT04gKmNvbnRhaW5lZF9wb2x5KTsKIHN0 YXRpYyBib29sIHBsaXN0X3NhbWUoaW50IG5wdHMsIFBvaW50ICpwMSwgUG9pbnQgKnAyKTsKQEAg LTg1MSw3ICs4NTUsOCBAQCBib3hfY2VudGVyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJQk9YCQkgICAq Ym94ID0gUEdfR0VUQVJHX0JPWF9QKDApOwogCVBvaW50CSAgICpyZXN1bHQgPSAoUG9pbnQgKikg cGFsbG9jKHNpemVvZihQb2ludCkpOwogCi0JYm94X2NuKHJlc3VsdCwgYm94KTsKKwlpZiAoIWJv eF9jbl9zYWZlKHJlc3VsdCwgYm94LCBmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVM TCgpOwogCiAJUEdfUkVUVVJOX1BPSU5UX1AocmVzdWx0KTsKIH0KQEAgLTg3MSwxMCArODc2LDMz IEBAIGJveF9hcihCT1ggKmJveCkKIHN0YXRpYyB2b2lkCiBib3hfY24oUG9pbnQgKmNlbnRlciwg Qk9YICpib3gpCiB7Ci0JY2VudGVyLT54ID0gZmxvYXQ4X2RpdihmbG9hdDhfcGwoYm94LT5oaWdo LngsIGJveC0+bG93LngpLCAyLjApOwotCWNlbnRlci0+eSA9IGZsb2F0OF9kaXYoZmxvYXQ4X3Bs KGJveC0+aGlnaC55LCBib3gtPmxvdy55KSwgMi4wKTsKKwkodm9pZCkgYm94X2NuX3NhZmUoY2Vu dGVyLCBib3gsIE5VTEwpOwogfQogCitzdGF0aWMgYm9vbAorYm94X2NuX3NhZmUoUG9pbnQgKmNl bnRlciwgQk9YICpib3gsIE5vZGUqIGVzY29udGV4dCkKK3sKKwlmbG9hdDgJCXg7CisJZmxvYXQ4 CQl5OworCisJeCA9IGZsb2F0OF9wbF9zYWZlKGJveC0+aGlnaC54LCBib3gtPmxvdy54LCBlc2Nv bnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybiBm YWxzZTsKKworCWNlbnRlci0+eCA9IGZsb2F0OF9kaXZfc2FmZSh4LCAyLjAsIGVzY29udGV4dCk7 CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJuIGZhbHNlOwor CisJeSA9IGZsb2F0OF9wbF9zYWZlKGJveC0+aGlnaC55LCBib3gtPmxvdy55LCBlc2NvbnRleHQp OworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsK KworCWNlbnRlci0+eSA9IGZsb2F0OF9kaXZfc2FmZSh5LCAyLjAsIGVzY29udGV4dCk7CisJaWYg KFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0 dXJuIHRydWU7Cit9CiAKIC8qCQlib3hfd2QJLQkJcmV0dXJucyB0aGUgd2lkdGggKGxlbmd0aCkg b2YgdGhlIGJveAogICoJCQkJCQkJCSAgKGhvcml6b250YWwgbWFnbml0dWRlKS4KQEAgLTIwMDQs NiArMjAzMiwyMyBAQCBwb2ludF9kdChQb2ludCAqcHQxLCBQb2ludCAqcHQyKQogCXJldHVybiBo eXBvdChmbG9hdDhfbWkocHQxLT54LCBwdDItPngpLCBmbG9hdDhfbWkocHQxLT55LCBwdDItPnkp KTsKIH0KIAorc3RhdGljIGlubGluZSBmbG9hdDgKK3BvaW50X2R0X3NhZmUoUG9pbnQgKnB0MSwg UG9pbnQgKnB0MiwgTm9kZSAqZXNjb250ZXh0KQoreworCWZsb2F0OAkJeDsKKwlmbG9hdDgJCXk7 CisKKwl4ID0gZmxvYXQ4X21pX3NhZmUocHQxLT54LCBwdDItPngsIGVzY29udGV4dCk7CisJaWYg KFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJuIDAuMDsKKworCXkgID0g ZmxvYXQ4X21pX3NhZmUocHQxLT55LCBwdDItPnksIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJS T1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJuIDAuMDsKKworCXJldHVybiBoeXBvdCh4 LCB5KTsKK30KKwogRGF0dW0KIHBvaW50X3Nsb3BlKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CkBAIC0y MzE3LDEzICsyMzYyLDMxIEBAIGxzZWdfY2VudGVyKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJTFNF RwkgICAqbHNlZyA9IFBHX0dFVEFSR19MU0VHX1AoMCk7CiAJUG9pbnQJICAgKnJlc3VsdDsKKwlm bG9hdDgJCXg7CisJZmxvYXQ4CQl5OwogCiAJcmVzdWx0ID0gKFBvaW50ICopIHBhbGxvYyhzaXpl b2YoUG9pbnQpKTsKIAotCXJlc3VsdC0+eCA9IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGxzZWctPnBb MF0ueCwgbHNlZy0+cFsxXS54KSwgMi4wKTsKLQlyZXN1bHQtPnkgPSBmbG9hdDhfZGl2KGZsb2F0 OF9wbChsc2VnLT5wWzBdLnksIGxzZWctPnBbMV0ueSksIDIuMCk7CisJeCA9IGZsb2F0OF9wbF9z YWZlKGxzZWctPnBbMF0ueCwgbHNlZy0+cFsxXS54LCBmY2luZm8tPmNvbnRleHQpOworCWlmIChT T0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKKworCXJl c3VsdC0+eCA9IGZsb2F0OF9kaXZfc2FmZSh4LCAyLjAsIGZjaW5mby0+Y29udGV4dCk7CisJaWYg KFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOworCisJ eSA9IGZsb2F0OF9wbF9zYWZlKGxzZWctPnBbMF0ueSwgbHNlZy0+cFsxXS55LCBmY2luZm8tPmNv bnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdv dG8gZmFpbDsKKworCXJlc3VsdC0+eSA9IGZsb2F0OF9kaXZfc2FmZSh5LCAyLjAsIGZjaW5mby0+ Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJ Z290byBmYWlsOwogCiAJUEdfUkVUVVJOX1BPSU5UX1AocmVzdWx0KTsKKworZmFpbDoKKwlQR19S RVRVUk5fTlVMTCgpOwogfQogCiAKQEAgLTQxMTAsOSArNDE3MywyNyBAQCBjb25zdHJ1Y3RfcG9p bnQoUEdfRlVOQ1RJT05fQVJHUykKIHN0YXRpYyBpbmxpbmUgdm9pZAogcG9pbnRfYWRkX3BvaW50 KFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIpCiB7Ci0JcG9pbnRfY29uc3Ry dWN0KHJlc3VsdCwKLQkJCQkJZmxvYXQ4X3BsKHB0MS0+eCwgcHQyLT54KSwKLQkJCQkJZmxvYXQ4 X3BsKHB0MS0+eSwgcHQyLT55KSk7CisJKHZvaWQpIHBvaW50X2FkZF9wb2ludF9zYWZlKHJlc3Vs dCwgcHQxLCBwdDIsIE5VTEwpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wKK3BvaW50X2FkZF9w b2ludF9zYWZlKFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIsCisJCQkJCSBO b2RlICplc2NvbnRleHQpCit7CisJZmxvYXQ4CQl4OworCWZsb2F0OAkJeTsKKworCXggPSBmbG9h dDhfcGxfc2FmZShwdDEtPngsIHB0Mi0+eCwgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9P Q0NVUlJFRChlc2NvbnRleHQpKQorCQlyZXR1cm4gZmFsc2U7CisKKwl5ID0gZmxvYXQ4X3BsX3Nh ZmUocHQxLT55LCBwdDItPnksIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQo ZXNjb250ZXh0KSkKKwkJcmV0dXJuIGZhbHNlOworCisJcG9pbnRfY29uc3RydWN0KHJlc3VsdCwg eCwgeSk7CisKKwlyZXR1cm4gdHJ1ZTsKIH0KIAogRGF0dW0KQEAgLTQ0NTgsNyArNDUzOSw3IEBA IHBhdGhfcG9seShQR19GVU5DVElPTl9BUkdTKQogCiAJLyogVGhpcyBpcyBub3QgdmVyeSBjb25z aXN0ZW50IC0tLSBvdGhlciBzaW1pbGFyIGNhc2VzIHJldHVybiBOVUxMIC4uLiAqLwogCWlmICgh cGF0aC0+Y2xvc2VkKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4 dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFM VUUpLAogCQkJCSBlcnJtc2coIm9wZW4gcGF0aCBjYW5ub3QgYmUgY29udmVydGVkIHRvIHBvbHln b24iKSkpOwogCkBAIC00NTA4LDcgKzQ1ODksOSBAQCBwb2x5X2NlbnRlcihQR19GVU5DVElPTl9B UkdTKQogCiAJcmVzdWx0ID0gKFBvaW50ICopIHBhbGxvYyhzaXplb2YoUG9pbnQpKTsKIAotCXBv bHlfdG9fY2lyY2xlKCZjaXJjbGUsIHBvbHkpOworCWlmICghcG9seV90b19jaXJjbGVfc2FmZSgm Y2lyY2xlLCBwb2x5LCBmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOworCiAJ KnJlc3VsdCA9IGNpcmNsZS5jZW50ZXI7CiAKIAlQR19SRVRVUk5fUE9JTlRfUChyZXN1bHQpOwpA QCAtNTE5MSwxNCArNTI3NCwzMCBAQCBjaXJjbGVfYm94KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAli b3ggPSAoQk9YICopIHBhbGxvYyhzaXplb2YoQk9YKSk7CiAKLQlkZWx0YSA9IGZsb2F0OF9kaXYo Y2lyY2xlLT5yYWRpdXMsIHNxcnQoMi4wKSk7CisJZGVsdGEgPSBmbG9hdDhfZGl2X3NhZmUoY2ly Y2xlLT5yYWRpdXMsIHNxcnQoMi4wKSwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJP Ul9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CiAKLQlib3gtPmhpZ2gu eCA9IGZsb2F0OF9wbChjaXJjbGUtPmNlbnRlci54LCBkZWx0YSk7Ci0JYm94LT5sb3cueCA9IGZs b2F0OF9taShjaXJjbGUtPmNlbnRlci54LCBkZWx0YSk7Ci0JYm94LT5oaWdoLnkgPSBmbG9hdDhf cGwoY2lyY2xlLT5jZW50ZXIueSwgZGVsdGEpOwotCWJveC0+bG93LnkgPSBmbG9hdDhfbWkoY2ly Y2xlLT5jZW50ZXIueSwgZGVsdGEpOworCWJveC0+aGlnaC54ID0gZmxvYXQ4X3BsX3NhZmUoY2ly Y2xlLT5jZW50ZXIueCwgZGVsdGEsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1Jf T0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOworCisJYm94LT5sb3cueCA9 IGZsb2F0OF9taV9zYWZlKGNpcmNsZS0+Y2VudGVyLngsIGRlbHRhLCBmY2luZm8tPmNvbnRleHQp OworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFp bDsKKworCWJveC0+aGlnaC55ID0gZmxvYXQ4X3BsX3NhZmUoY2lyY2xlLT5jZW50ZXIueSwgZGVs dGEsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5j b250ZXh0KSkKKwkJZ290byBmYWlsOworCisJYm94LT5sb3cueSA9IGZsb2F0OF9taV9zYWZlKGNp cmNsZS0+Y2VudGVyLnksIGRlbHRhLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9S X09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKIAogCVBHX1JFVFVSTl9C T1hfUChib3gpOworCitmYWlsOgorCVBHX1JFVFVSTl9OVUxMKCk7CiB9CiAKIC8qIGJveF9jaXJj bGUoKQpAQCAtNTIwOSwxNSArNTMwOCwzNSBAQCBib3hfY2lyY2xlKFBHX0ZVTkNUSU9OX0FSR1Mp CiB7CiAJQk9YCQkgICAqYm94ID0gUEdfR0VUQVJHX0JPWF9QKDApOwogCUNJUkNMRQkgICAqY2ly Y2xlOworCWZsb2F0OAkJeDsKKwlmbG9hdDgJCXk7CiAKIAljaXJjbGUgPSAoQ0lSQ0xFICopIHBh bGxvYyhzaXplb2YoQ0lSQ0xFKSk7CiAKLQljaXJjbGUtPmNlbnRlci54ID0gZmxvYXQ4X2Rpdihm bG9hdDhfcGwoYm94LT5oaWdoLngsIGJveC0+bG93LngpLCAyLjApOwotCWNpcmNsZS0+Y2VudGVy LnkgPSBmbG9hdDhfZGl2KGZsb2F0OF9wbChib3gtPmhpZ2gueSwgYm94LT5sb3cueSksIDIuMCk7 CisJeCA9IGZsb2F0OF9wbF9zYWZlKGJveC0+aGlnaC54LCBib3gtPmxvdy54LCBmY2luZm8tPmNv bnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdv dG8gZmFpbDsKIAotCWNpcmNsZS0+cmFkaXVzID0gcG9pbnRfZHQoJmNpcmNsZS0+Y2VudGVyLCAm Ym94LT5oaWdoKTsKKwljaXJjbGUtPmNlbnRlci54ID0gZmxvYXQ4X2Rpdl9zYWZlKHgsIDIuMCwg ZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRl eHQpKQorCQlnb3RvIGZhaWw7CisKKwl5ID0gZmxvYXQ4X3BsX3NhZmUoYm94LT5oaWdoLnksIGJv eC0+bG93LnksIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNp bmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOworCisJY2lyY2xlLT5jZW50ZXIueSA9IGZsb2F0 OF9kaXZfc2FmZSh5LCAyLjAsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0ND VVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOworCisJY2lyY2xlLT5yYWRpdXMg PSBwb2ludF9kdF9zYWZlKCZjaXJjbGUtPmNlbnRlciwgJmJveC0+aGlnaCwgZmNpbmZvLT5jb250 ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3Rv IGZhaWw7CiAKIAlQR19SRVRVUk5fQ0lSQ0xFX1AoY2lyY2xlKTsKKworZmFpbDoKKwlQR19SRVRV Uk5fTlVMTCgpOwogfQogCiAKQEAgLTUyODEsMTAgKzU0MDAsMTEgQEAgY2lyY2xlX3BvbHkoUEdf RlVOQ1RJT05fQVJHUykKICAqIFhYWCBUaGlzIGFsZ29yaXRobSBzaG91bGQgdXNlIHdlaWdodGVk IG1lYW5zIG9mIGxpbmUgc2VnbWVudHMKICAqCXJhdGhlciB0aGFuIHN0cmFpZ2h0IGF2ZXJhZ2Ug dmFsdWVzIG9mIHBvaW50cyAtIHRnbCA5Ny8wMS8yMS4KICAqLwotc3RhdGljIHZvaWQKLXBvbHlf dG9fY2lyY2xlKENJUkNMRSAqcmVzdWx0LCBQT0xZR09OICpwb2x5KQorc3RhdGljIGJvb2wKK3Bv bHlfdG9fY2lyY2xlX3NhZmUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHksIE5vZGUgKmVz Y29udGV4dCkKIHsKIAlpbnQJCQlpOworCWZsb2F0OAkJeDsKIAogCUFzc2VydChwb2x5LT5ucHRz ID4gMCk7CiAKQEAgLTUyOTMsMTQgKzU0MTMsNDIgQEAgcG9seV90b19jaXJjbGUoQ0lSQ0xFICpy ZXN1bHQsIFBPTFlHT04gKnBvbHkpCiAJcmVzdWx0LT5yYWRpdXMgPSAwOwogCiAJZm9yIChpID0g MDsgaSA8IHBvbHktPm5wdHM7IGkrKykKLQkJcG9pbnRfYWRkX3BvaW50KCZyZXN1bHQtPmNlbnRl ciwgJnJlc3VsdC0+Y2VudGVyLCAmcG9seS0+cFtpXSk7Ci0JcmVzdWx0LT5jZW50ZXIueCA9IGZs b2F0OF9kaXYocmVzdWx0LT5jZW50ZXIueCwgcG9seS0+bnB0cyk7Ci0JcmVzdWx0LT5jZW50ZXIu eSA9IGZsb2F0OF9kaXYocmVzdWx0LT5jZW50ZXIueSwgcG9seS0+bnB0cyk7CisJeworCQlpZiAo IXBvaW50X2FkZF9wb2ludF9zYWZlKCZyZXN1bHQtPmNlbnRlciwKKwkJCQkJCQkJICAmcmVzdWx0 LT5jZW50ZXIsCisJCQkJCQkJCSAgJnBvbHktPnBbaV0sCisJCQkJCQkJCSAgZXNjb250ZXh0KSkK KwkJCXJldHVybiBmYWxzZTsKKwl9CisKKwlyZXN1bHQtPmNlbnRlci54ID0gZmxvYXQ4X2Rpdl9z YWZlKHJlc3VsdC0+Y2VudGVyLngsCisJCQkJCQkJCQkgICBwb2x5LT5ucHRzLAorCQkJCQkJCQkJ ICAgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQly ZXR1cm4gZmFsc2U7CisKKwlyZXN1bHQtPmNlbnRlci55ID0gZmxvYXQ4X2Rpdl9zYWZlKHJlc3Vs dC0+Y2VudGVyLnksCisJCQkJCQkJCQkgICBwb2x5LT5ucHRzLAorCQkJCQkJCQkJICAgZXNjb250 ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQlyZXR1cm4gZmFs c2U7CiAKIAlmb3IgKGkgPSAwOyBpIDwgcG9seS0+bnB0czsgaSsrKQotCQlyZXN1bHQtPnJhZGl1 cyA9IGZsb2F0OF9wbChyZXN1bHQtPnJhZGl1cywKLQkJCQkJCQkJICAgcG9pbnRfZHQoJnBvbHkt PnBbaV0sICZyZXN1bHQtPmNlbnRlcikpOwotCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X2Rpdihy ZXN1bHQtPnJhZGl1cywgcG9seS0+bnB0cyk7CisJeworCQl4ID0gcG9pbnRfZHRfc2FmZSgmcG9s eS0+cFtpXSwgJnJlc3VsdC0+Y2VudGVyLCBlc2NvbnRleHQpOworCQlpZiAoU09GVF9FUlJPUl9P Q0NVUlJFRChlc2NvbnRleHQpKQorCQkJcmV0dXJuIGZhbHNlOworCisJCXJlc3VsdC0+cmFkaXVz ID0gZmxvYXQ4X3BsX3NhZmUocmVzdWx0LT5yYWRpdXMsIHgsIGVzY29udGV4dCk7CisJCWlmIChT T0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCQlyZXR1cm4gZmFsc2U7CisJfQorCisJ cmVzdWx0LT5yYWRpdXMgPSBmbG9hdDhfZGl2X3NhZmUocmVzdWx0LT5yYWRpdXMsIHBvbHktPm5w dHMsIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJ cmV0dXJuIGZhbHNlOworCisJcmV0dXJuIHRydWU7CiB9CiAKIERhdHVtCkBAIC01MzExLDcgKzU0 NTksOCBAQCBwb2x5X2NpcmNsZShQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gKENJUkNM RSAqKSBwYWxsb2Moc2l6ZW9mKENJUkNMRSkpOwogCi0JcG9seV90b19jaXJjbGUocmVzdWx0LCBw b2x5KTsKKwlpZiAoIXBvbHlfdG9fY2lyY2xlX3NhZmUocmVzdWx0LCBwb2x5LCBmY2luZm8tPmNv bnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJUEdfUkVUVVJOX0NJUkNMRV9QKHJlc3Vs dCk7CiB9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oIGIvc3JjL2luY2x1 ZGUvdXRpbHMvZmxvYXQuaAppbmRleCBmYzJhOWNmNjQ3NS4uYzhhYmM3YjNkNzggMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3V0aWxzL2Zsb2F0LmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxv YXQuaApAQCAtMzAsOSArMzAsOSBAQCBleHRlcm4gUEdETExJTVBPUlQgaW50IGV4dHJhX2Zsb2F0 X2RpZ2l0czsKIC8qCiAgKiBVdGlsaXR5IGZ1bmN0aW9ucyBpbiBmbG9hdC5jCiAgKi8KLXBnX25v cmV0dXJuIGV4dGVybiB2b2lkIGZsb2F0X292ZXJmbG93X2Vycm9yKHZvaWQpOwotcGdfbm9yZXR1 cm4gZXh0ZXJuIHZvaWQgZmxvYXRfdW5kZXJmbG93X2Vycm9yKHZvaWQpOwotcGdfbm9yZXR1cm4g ZXh0ZXJuIHZvaWQgZmxvYXRfemVyb19kaXZpZGVfZXJyb3Iodm9pZCk7CitleHRlcm4gdm9pZCBm bG9hdF9vdmVyZmxvd19lcnJvcihzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KTsKK2V4dGVybiB2b2lk IGZsb2F0X3VuZGVyZmxvd19lcnJvcihzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KTsKK2V4dGVybiB2 b2lkIGZsb2F0X3plcm9fZGl2aWRlX2Vycm9yKHN0cnVjdCBOb2RlICplc2NvbnRleHQpOwogZXh0 ZXJuIGludAlpc19pbmZpbml0ZShmbG9hdDggdmFsKTsKIGV4dGVybiBmbG9hdDggZmxvYXQ4aW5f aW50ZXJuYWwoY2hhciAqbnVtLCBjaGFyICoqZW5kcHRyX3AsCiAJCQkJCQkJCWNvbnN0IGNoYXIg KnR5cGVfbmFtZSwgY29uc3QgY2hhciAqb3JpZ19zdHJpbmcsCkBAIC0xMDQsNyArMTA0LDIyIEBA IGZsb2F0NF9wbChjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIpCiAKIAlyZXN1 bHQgPSB2YWwxICsgdmFsMjsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5m KHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMg aW5saW5lIGZsb2F0OAorZmxvYXQ4X3BsX3NhZmUoY29uc3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZs b2F0OCB2YWwyLCBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQoreworCWZsb2F0OAkJcmVzdWx0Owor CisJcmVzdWx0ID0gdmFsMSArIHZhbDI7CisJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpICYm ICFpc2luZih2YWwxKSAmJiAhaXNpbmYodmFsMikpCisJeworCQlmbG9hdF9vdmVyZmxvd19lcnJv cihlc2NvbnRleHQpOworCQlyZXR1cm4gMC4wOworCX0KIAogCXJldHVybiByZXN1bHQ7CiB9CkBA IC0xMTIsMTUgKzEyNywxMCBAQCBmbG9hdDRfcGwoY29uc3QgZmxvYXQ0IHZhbDEsIGNvbnN0IGZs b2F0NCB2YWwyKQogc3RhdGljIGlubGluZSBmbG9hdDgKIGZsb2F0OF9wbChjb25zdCBmbG9hdDgg dmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCiB7Ci0JZmxvYXQ4CQlyZXN1bHQ7Ci0KLQlyZXN1bHQg PSB2YWwxICsgdmFsMjsKLQlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKHZh bDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKLQotCXJldHVy biByZXN1bHQ7CisJcmV0dXJuIGZsb2F0OF9wbF9zYWZlKHZhbDEsIHZhbDIsIE5VTEwpOwogfQog CisKIHN0YXRpYyBpbmxpbmUgZmxvYXQ0CiBmbG9hdDRfbWkoY29uc3QgZmxvYXQ0IHZhbDEsIGNv bnN0IGZsb2F0NCB2YWwyKQogewpAQCAtMTI4LDcgKzEzOCwyMiBAQCBmbG9hdDRfbWkoY29uc3Qg ZmxvYXQ0IHZhbDEsIGNvbnN0IGZsb2F0NCB2YWwyKQogCiAJcmVzdWx0ID0gdmFsMSAtIHZhbDI7 CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZih2YWwxKSAmJiAhaXNpbmYo dmFsMikpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9y KE5VTEwpOworCisJcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIGlubGluZSBmbG9hdDgKK2Zs b2F0OF9taV9zYWZlKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMiwgc3RydWN0 IE5vZGUgKmVzY29udGV4dCkKK3sKKwlmbG9hdDgJCXJlc3VsdDsKKworCXJlc3VsdCA9IHZhbDEg LSB2YWwyOworCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYg IWlzaW5mKHZhbDIpKQorCXsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoZXNjb250ZXh0KTsKKwkJ cmV0dXJuIDAuMDsKKwl9CiAKIAlyZXR1cm4gcmVzdWx0OwogfQpAQCAtMTM2LDE1ICsxNjEsMTAg QEAgZmxvYXQ0X21pKGNvbnN0IGZsb2F0NCB2YWwxLCBjb25zdCBmbG9hdDQgdmFsMikKIHN0YXRp YyBpbmxpbmUgZmxvYXQ4CiBmbG9hdDhfbWkoY29uc3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0 OCB2YWwyKQogewotCWZsb2F0OAkJcmVzdWx0OwotCi0JcmVzdWx0ID0gdmFsMSAtIHZhbDI7Ci0J aWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZih2YWwxKSAmJiAhaXNpbmYodmFs MikpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7Ci0KLQlyZXR1cm4gcmVzdWx0OworCXJldHVy biBmbG9hdDhfbWlfc2FmZSh2YWwxLCB2YWwyLCBOVUxMKTsKIH0KIAorCiBzdGF0aWMgaW5saW5l IGZsb2F0NAogZmxvYXQ0X211bChjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIp CiB7CkBAIC0xNTIsNTkgKzE3Miw4OSBAQCBmbG9hdDRfbXVsKGNvbnN0IGZsb2F0NCB2YWwxLCBj b25zdCBmbG9hdDQgdmFsMikKIAogCXJlc3VsdCA9IHZhbDEgKiB2YWwyOwogCWlmICh1bmxpa2Vs eShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9h dF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAlpZiAo dW5saWtlbHkocmVzdWx0ID09IDAuMGYpICYmIHZhbDEgIT0gMC4wZiAmJiB2YWwyICE9IDAuMGYp Ci0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVM TCk7CiAKIAlyZXR1cm4gcmVzdWx0OwogfQogCiBzdGF0aWMgaW5saW5lIGZsb2F0OAotZmxvYXQ4 X211bChjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCitmbG9hdDhfbXVsX3Nh ZmUoY29uc3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyLCBzdHJ1Y3QgTm9kZSAqZXNj b250ZXh0KQogewogCWZsb2F0OAkJcmVzdWx0OwogCiAJcmVzdWx0ID0gdmFsMSAqIHZhbDI7CiAJ aWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZih2YWwxKSAmJiAhaXNpbmYodmFs MikpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJeworCQlmbG9hdF9vdmVyZmxvd19lcnJv cihlc2NvbnRleHQpOworCQlyZXR1cm4gMC4wOworCX0KKwogCWlmICh1bmxpa2VseShyZXN1bHQg PT0gMC4wKSAmJiB2YWwxICE9IDAuMCAmJiB2YWwyICE9IDAuMCkKLQkJZmxvYXRfdW5kZXJmbG93 X2Vycm9yKCk7CisJeworCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoZXNjb250ZXh0KTsKKwkJcmV0 dXJuIDAuMDsKKwl9CiAKIAlyZXR1cm4gcmVzdWx0OwogfQogCitzdGF0aWMgaW5saW5lIGZsb2F0 OAorZmxvYXQ4X211bChjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCit7CisJ cmV0dXJuIGZsb2F0OF9tdWxfc2FmZSh2YWwxLCB2YWwyLCBOVUxMKTsKK30KKwogc3RhdGljIGlu bGluZSBmbG9hdDQKIGZsb2F0NF9kaXYoY29uc3QgZmxvYXQ0IHZhbDEsIGNvbnN0IGZsb2F0NCB2 YWwyKQogewogCWZsb2F0NAkJcmVzdWx0OwogCiAJaWYgKHVubGlrZWx5KHZhbDIgPT0gMC4wZikg JiYgIWlzbmFuKHZhbDEpKQotCQlmbG9hdF96ZXJvX2RpdmlkZV9lcnJvcigpOworCQlmbG9hdF96 ZXJvX2RpdmlkZV9lcnJvcihOVUxMKTsKIAlyZXN1bHQgPSB2YWwxIC8gdmFsMjsKIAlpZiAodW5s aWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpKQotCQlmbG9hdF9vdmVyZmxvd19l cnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAlpZiAodW5saWtlbHkocmVz dWx0ID09IDAuMGYpICYmIHZhbDEgIT0gMC4wZiAmJiAhaXNpbmYodmFsMikpCi0JCWZsb2F0X3Vu ZGVyZmxvd19lcnJvcigpOworCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlyZXR1 cm4gcmVzdWx0OwogfQogCiBzdGF0aWMgaW5saW5lIGZsb2F0OAotZmxvYXQ4X2Rpdihjb25zdCBm bG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCitmbG9hdDhfZGl2X3NhZmUoY29uc3QgZmxv YXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyLCBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQogewog CWZsb2F0OAkJcmVzdWx0OwogCiAJaWYgKHVubGlrZWx5KHZhbDIgPT0gMC4wKSAmJiAhaXNuYW4o dmFsMSkpCi0JCWZsb2F0X3plcm9fZGl2aWRlX2Vycm9yKCk7CisJeworCQlmbG9hdF96ZXJvX2Rp dmlkZV9lcnJvcihlc2NvbnRleHQpOworCQlyZXR1cm4gMC4wOworCX0KKwogCXJlc3VsdCA9IHZh bDEgLyB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkp Ci0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJeworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihl c2NvbnRleHQpOworCQlyZXR1cm4gMC4wOworCX0KKwogCWlmICh1bmxpa2VseShyZXN1bHQgPT0g MC4wKSAmJiB2YWwxICE9IDAuMCAmJiAhaXNpbmYodmFsMikpCi0JCWZsb2F0X3VuZGVyZmxvd19l cnJvcigpOworCXsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKGVzY29udGV4dCk7CisJCXJldHVy biAwLjA7CisJfQogCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGljIGlubGluZSBmbG9hdDgK K2Zsb2F0OF9kaXYoY29uc3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyKQoreworCXJl dHVybiBmbG9hdDhfZGl2X3NhZmUodmFsMSwgdmFsMiwgTlVMTCk7Cit9CisKIC8qCiAgKiBSb3V0 aW5lcyBmb3IgTmFOLWF3YXJlIGNvbXBhcmlzb25zCiAgKgotLSAKMi4zNC4xCgo= --0000000000009b0f2c0644f36491 Content-Type: text/x-patch; charset="UTF-8"; name="v13-0020-CAST-expr-AS-newtype-DEFAULT-ON-ERROR.patch" Content-Disposition: attachment; filename="v13-0020-CAST-expr-AS-newtype-DEFAULT-ON-ERROR.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mioa5q9k0 RnJvbSA3NTY3MWE5ZTc5ZTJiZTQwMjE4ODEyYTk3NTRiNmVmYzhhZDBjYjA2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxNTo0Nzo0MiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEz IDIwLzIwXSBDQVNUKGV4cHIgQVMgbmV3dHlwZSBERUZBVUxUIE9OIEVSUk9SKQoKTm93IHRoYXQg dGhlIHR5cGUgY29lcmNpb24gbm9kZSBpcyBlcnJvci1zYWZlLCB3ZSBhbHNvIG5lZWQgdG8gZW5z dXJlIHRoYXQgd2hlbgphIGNvZXJjaW9uIGZhaWxzLCBpdCBmYWxscyBiYWNrIHRvIGV2YWx1YXRp bmcgdGhlIGRlZmF1bHQgbm9kZS4KZHJhZnQgZG9jIGFsc28gYWRkZWQuCgpXZSBjYW5ub3Qgc2lt cGx5IHByb2hpYml0IHVzZXItZGVmaW5lZCBmdW5jdGlvbnMgaW4gcGdfY2FzdCBmb3Igc2FmZSBj YXN0CmV2YWx1YXRpb24gYmVjYXVzZSBDUkVBVEUgQ0FTVCBjYW4gYWxzbyB1dGlsaXplIGJ1aWx0 LWluIGZ1bmN0aW9ucy4gU28sIHRvCmNvbXBsZXRlbHkgZGlzYWxsb3cgY3VzdG9tIGNhc3RzIGNy ZWF0ZWQgdmlhIENSRUFURSBDQVNUIHVzZWQgaW4gc2FmZSBjYXN0CmV2YWx1YXRpb24sIGEgbmV3 IGZpZWxkIGluIHBnX2Nhc3Qgd291bGQgdW5mb3J0dW5hdGVseSBiZSBuZWNlc3NhcnkuCgpkZW1v OgpTRUxFQ1QgQ0FTVCgnMScgQVMgZGF0ZSAgREVGQVVMVCAnMjAxMS0wMS0wMScgT04gRVJST1Ip LAogICAgICAgQ0FTVCgnezIzNCxkZWYsNTY3fSc6OnRleHRbXSBBUyBpbnRlZ2VyW10gREVGQVVM VCAney0xMDExfScgT04gRVJST1IpOwogICAgZGF0ZSAgICB8ICBpbnQ0Ci0tLS0tLS0tLS0tLSst LS0tLS0tLS0KIDIwMTEtMDEtMDEgfCB7LTEwMTF9CgpbMF06IGh0dHBzOi8vZ2l0LnBvc3RncmVz cWwub3JnL2NnaXQvcG9zdGdyZXNxbC5naXQvY29tbWl0Lz9pZD1hYWFmOTQ0OWVjNmJlNjJjYjBk MzBlZDM1ODhkYzM4NGY1NjI3NGIKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FE a0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21h aWwuY29tCi0tLQogLi4uL3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC9zZWxlY3Qub3V0ICAg IHwgIDIzICstCiBjb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9zcWwvc2VsZWN0LnNxbCAgICAg fCAgIDUgKwogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwg IDEyICsKIGRvYy9zcmMvc2dtbC9zeW50YXguc2dtbCAgICAgICAgICAgICAgICAgICAgICB8ICAy OSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nhc3QuYyAgICAgICAgICAgICAgICAgfCAgIDEg Kwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYyAgICAgICAgICAgICAgIHwgIDYxICst CiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jICAgICAgICAgfCAgMjkgKwog c3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMgICAgICAgICAgIHwgIDI2ICsKIHNy Yy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICA2MSArKwogc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jICAgICAgICAgIHwgIDI2ICsKIHNyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICAyMiArCiBzcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMgICAgICAgICAgICAgICAgfCAgIDkgKwogc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgICAgICAgICAgICAgIHwgNDE3ICsrKysrKysrLQogc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyAgICAgICAgICAgICB8ICAxNCArCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jICAgICAgICAgICAgfCAgIDggKwogc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAgICAgIHwgIDIxICsKIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfY2FzdC5kYXQgICAgICAgICAgICAgICB8IDMzMCArKysrLS0tLQogc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmggICAgICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9pbmNs dWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmggICAgICAgICAgICAgICB8ICAgNyArCiBzcmMvaW5jbHVk ZS9ub2Rlcy9leGVjbm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgMjEgKwogc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgIDExICsKIHNyYy9pbmNsdWRlL25v ZGVzL3ByaW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAzNiArCiBzcmMvaW5jbHVkZS9wYXJz ZXIvcGFyc2Vfbm9kZS5oICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9jYXN0Lm91dCAgICAgICAgICAgIHwgNzkxICsrKysrKysrKysrKysrKysrKwogc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfY2FzdC5vdXQgICAgIHwgICA1ICsKIHNyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQgICAgICB8ICAyNCArLQogc3JjL3Rl c3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAyICstCiBzcmMvdGVz dC9yZWdyZXNzL3NxbC9jYXN0LnNxbCAgICAgICAgICAgICAgICAgfCAzNDAgKysrKysrKysKIHNy Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9jYXN0LnNxbCAgICAgICAgICB8ICAgMSArCiBzcmMv dG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgIDMgKwogMzEgZmls ZXMgY2hhbmdlZCwgMjE1MCBpbnNlcnRpb25zKCspLCAxOTQgZGVsZXRpb25zKC0pCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jYXN0Lm91dAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Nhc3Quc3FsCgpkaWZmIC0tZ2l0IGEvY29u dHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvZXhwZWN0ZWQvc2VsZWN0Lm91dCBiL2NvbnRyaWIvcGdf c3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL3NlbGVjdC5vdXQKaW5kZXggNzVjODk2ZjM4ODUuLjZl Njc5OTdmMGEyIDEwMDY0NAotLS0gYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3Rl ZC9zZWxlY3Qub3V0CisrKyBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL3Nl bGVjdC5vdXQKQEAgLTczLDYgKzczLDI1IEBAIFNFTEVDVCAxIEFTICJpbnQiIE9GRlNFVCAyIEZF VENIIEZJUlNUIDMgUk9XIE9OTFk7CiAtLS0tLQogKDAgcm93cykKIAorLS1lcnJvciBzYWZlIHR5 cGUgY2FzdAorU0VMRUNUIENBU1QoJ2EnIEFTIGludCBERUZBVUxUIDIgT04gQ09OVkVSU0lPTiBF UlJPUik7CisgaW50NCAKKy0tLS0tLQorICAgIDIKKygxIHJvdykKKworU0VMRUNUIENBU1QoJzEx JyBBUyBpbnQgREVGQVVMVCAyIE9OIENPTlZFUlNJT04gRVJST1IpOworIGludDQgCistLS0tLS0K KyAgIDExCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcxMicgQVMgbnVtZXJpYyBERUZBVUxUIDIg T04gQ09OVkVSU0lPTiBFUlJPUik7CisgbnVtZXJpYyAKKy0tLS0tLS0tLQorICAgICAgMTIKKygx IHJvdykKKwogLS0gRElTVElOQ1QgYW5kIE9SREVSIEJZIHBhdHRlcm5zCiAtLSBUcnkgc29tZSBx dWVyeSBwZXJtdXRhdGlvbnMgd2hpY2ggb25jZSBwcm9kdWNlZCBpZGVudGljYWwgcXVlcnkgSURz CiBTRUxFQ1QgRElTVElOQ1QgMSBBUyAiaW50IjsKQEAgLTIyMiw2ICsyNDEsOCBAQCBTRUxFQ1Qg Y2FsbHMsIHJvd3MsIHF1ZXJ5IEZST00gcGdfc3RhdF9zdGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5 IENPTExBVEUgIkMiOwogICAgICAyIHwgICAgMiB8IFNFTEVDVCAkMSBBUyAiaW50IiBPUkRFUiBC WSAxCiAgICAgIDEgfCAgICAyIHwgU0VMRUNUICQxIEFTIGkgVU5JT04gU0VMRUNUICQyIE9SREVS IEJZIGkKICAgICAgMSB8ICAgIDEgfCBTRUxFQ1QgJDEgfHwgJDIKKyAgICAgMiB8ICAgIDIgfCBT RUxFQ1QgQ0FTVCgkMSBBUyBpbnQgREVGQVVMVCAkMiBPTiBDT05WRVJTSU9OIEVSUk9SKQorICAg ICAxIHwgICAgMSB8IFNFTEVDVCBDQVNUKCQxIEFTIG51bWVyaWMgREVGQVVMVCAkMiBPTiBDT05W RVJTSU9OIEVSUk9SKQogICAgICAyIHwgICAgMiB8IFNFTEVDVCBESVNUSU5DVCAkMSBBUyAiaW50 IgogICAgICAwIHwgICAgMCB8IFNFTEVDVCBjYWxscywgcm93cywgcXVlcnkgRlJPTSBwZ19zdGF0 X3N0YXRlbWVudHMgT1JERVIgQlkgcXVlcnkgQ09MTEFURSAiQyIKICAgICAgMSB8ICAgIDEgfCBT RUxFQ1QgcGdfc3RhdF9zdGF0ZW1lbnRzX3Jlc2V0KCkgSVMgTk9UIE5VTEwgQVMgdApAQCAtMjMw LDcgKzI1MSw3IEBAIFNFTEVDVCBjYWxscywgcm93cywgcXVlcnkgRlJPTSBwZ19zdGF0X3N0YXRl bWVudHMgT1JERVIgQlkgcXVlcnkgQ09MTEFURSAiQyI7CiAgICAgICAgfCAgICAgIHwgKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKICAgICAgICB8ICAgICAgfCAgIFNFTEVDVCBmIEZST00gdCBPUkRFUiBC WSBmCiAgICAgIDEgfCAgICAxIHwgc2VsZWN0ICQxOjpqc29uYiA/ICQyCi0oMTcgcm93cykKKygx OSByb3dzKQogCiBTRUxFQ1QgcGdfc3RhdF9zdGF0ZW1lbnRzX3Jlc2V0KCkgSVMgTk9UIE5VTEwg QVMgdDsKICB0IApkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvc3FsL3Nl bGVjdC5zcWwgYi9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9zcWwvc2VsZWN0LnNxbAppbmRl eCAxMTY2MmNkZTA4Yy4uN2VlODE2MGZkODQgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfc3RhdF9z dGF0ZW1lbnRzL3NxbC9zZWxlY3Quc3FsCisrKyBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRz L3NxbC9zZWxlY3Quc3FsCkBAIC0yNSw2ICsyNSwxMSBAQCBTRUxFQ1QgMSBBUyAiaW50IiBMSU1J VCAzIE9GRlNFVCAzOwogU0VMRUNUIDEgQVMgImludCIgT0ZGU0VUIDEgRkVUQ0ggRklSU1QgMiBS T1cgT05MWTsKIFNFTEVDVCAxIEFTICJpbnQiIE9GRlNFVCAyIEZFVENIIEZJUlNUIDMgUk9XIE9O TFk7CiAKKy0tZXJyb3Igc2FmZSB0eXBlIGNhc3QKK1NFTEVDVCBDQVNUKCdhJyBBUyBpbnQgREVG QVVMVCAyIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJzExJyBBUyBpbnQgREVG QVVMVCAyIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJzEyJyBBUyBudW1lcmlj IERFRkFVTFQgMiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKwogLS0gRElTVElOQ1QgYW5kIE9SREVS IEJZIHBhdHRlcm5zCiAtLSBUcnkgc29tZSBxdWVyeSBwZXJtdXRhdGlvbnMgd2hpY2ggb25jZSBw cm9kdWNlZCBpZGVudGljYWwgcXVlcnkgSURzCiBTRUxFQ1QgRElTVElOQ1QgMSBBUyAiaW50IjsK ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Nh dGFsb2dzLnNnbWwKaW5kZXggMmZjNjM0NDI5ODAuLmNjZDFkMjU2MDAzIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bApAQCAtMTg0OSw2ICsxODQ5LDE4IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtp dGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICAg PGxpdGVyYWw+YjwvbGl0ZXJhbD4gbWVhbnMgdGhhdCB0aGUgdHlwZXMgYXJlIGJpbmFyeS1jb2Vy Y2libGUsIHRodXMgbm8gY29udmVyc2lvbiBpcyByZXF1aXJlZC4KICAgICAgIDwvcGFyYT48L2Vu dHJ5PgogICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8 c3RydWN0ZmllbGQ+Y2FzdGVycm9yc2FmZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2w8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGlzIGluZGljYXRlcyB3aGV0 aGVyIHRoZSA8c3RydWN0ZmllbGQ+Y2FzdGZ1bmM8L3N0cnVjdGZpZWxkPiBmdW5jdGlvbiBpcyBl cnJvciBzYWZlLgorICAgICAgIElmIHRoZSA8c3RydWN0ZmllbGQ+Y2FzdGZ1bmM8L3N0cnVjdGZp ZWxkPiBmdW5jdGlvbiBpcyBlcnJvciBzYWZlLCBpdCBjYW4gYmUgdXNlZCBpbiBlcnJvciBzYWZl IHR5cGUgY2FzdC4KKyAgICAgICBGb3IgZnVydGhlciBkZXRhaWxzIHNlZSA8eHJlZiBsaW5rZW5k PSJzcWwtc3ludGF4LXR5cGUtY2FzdHMtc2FmZSIvPi4KKyAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKwogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9zeW50YXguc2dtbCBiL2RvYy9zcmMvc2dtbC9zeW50YXgu c2dtbAppbmRleCAzNGM4Mzg4MGE2Ni4uOWIyNDgyZTliOTkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9zeW50YXguc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwKQEAgLTIxMDYs NiArMjEwNiwxMCBAQCBDQVNUICggPHJlcGxhY2VhYmxlPmV4cHJlc3Npb248L3JlcGxhY2VhYmxl PiBBUyA8cmVwbGFjZWFibGU+dHlwZTwvcmVwbGFjZWFibGU+CiAgICAgVGhlIDxsaXRlcmFsPkNB U1Q8L2xpdGVyYWw+IHN5bnRheCBjb25mb3JtcyB0byBTUUw7IHRoZSBzeW50YXggd2l0aAogICAg IDxsaXRlcmFsPjo6PC9saXRlcmFsPiBpcyBoaXN0b3JpY2FsIDxwcm9kdWN0bmFtZT5Qb3N0Z3Jl U1FMPC9wcm9kdWN0bmFtZT4KICAgICB1c2FnZS4KKyAgICBUaGUgZXF1aXZhbGVudCBPTiBDT05W RVJTSU9OIEVSUk9SIGJlaGF2aW9yIGlzOgorPHN5bm9wc2lzPgorQ0FTVCAoIDxyZXBsYWNlYWJs ZT5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxlPnR5cGU8L3JlcGxhY2Vh YmxlPiBFUlJPUiBPTiBDT05WRVJTSU9OIEVSUk9SICkKKzwvc3lub3BzaXM+CiAgICA8L3BhcmE+ CiAKICAgIDxwYXJhPgpAQCAtMjE2MCw2ICsyMTY0LDMxIEBAIENBU1QgKCA8cmVwbGFjZWFibGU+ ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IEFTIDxyZXBsYWNlYWJsZT50eXBlPC9yZXBsYWNlYWJs ZT4KICAgICAgPHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZWNhc3QiLz4uCiAgICAgPC9wYXJhPgog ICAgPC9ub3RlPgorCisgPHNlY3QzIGlkPSJzcWwtc3ludGF4LXR5cGUtY2FzdHMtc2FmZSI+Cisg IDx0aXRsZT5TYWZlIFR5cGUgQ2FzdDwvdGl0bGU+CisgICA8cGFyYT4KK1NvbWV0aW1lcyBhIHR5 cGUgY2FzdCBtYXkgZmFpbDsgdG8gaGFuZGxlIHN1Y2ggY2FzZXMsIGFuIDxsaXRlcmFsPk9OIEVS Uk9SPC9saXRlcmFsPiBjbGF1c2UgY2FuIGJlCitzcGVjaWZpZWQgdG8gYXZvaWQgcG90ZW50aWFs IGVycm9ycy4gVGhlIHN5bnRheCBpczoKKzxzeW5vcHNpcz4KK0NBU1QgKCA8cmVwbGFjZWFibGU+ ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IEFTIDxyZXBsYWNlYWJsZT50eXBlPC9yZXBsYWNlYWJs ZT4gREVGQVVMVCA8cmVwbGFjZWFibGU+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IE9OIENPTlZF UlNJT04gRVJST1IgKQorPC9zeW5vcHNpcz4KKyAgICBJZiBjYXN0IHRoZSBzb3VyY2UgZXhwcmVz c2lvbiB0byB0YXJnZXQgdHlwZSBmYWlscywgaXQgZmFsbHMgYmFjayB0bworICAgIGV2YWx1YXRp bmcgdGhlIG9wdGlvbmFsbHkgc3VwcGxpZWQgZGVmYXVsdCA8cmVwbGFjZWFibGU+ZXhwcmVzc2lv bjwvcmVwbGFjZWFibGU+CisgICAgc3BlY2lmaWVkIGluIE9OIDxsaXRlcmFsPk9OIEVSUk9SPC9s aXRlcmFsPiBjbGF1c2UuCisgICAgQ3VycmVudGx5LCB0aGlzIG9ubHkgc3VwcG9ydCBidWlsdC1p biBzeXN0ZW0gdHlwZSBjYXN0cywKKyAgICBjYXN0cyBjcmVhdGVkIHVzaW5nIDxsaW5rIGxpbmtl bmQ9InNxbC1jcmVhdGVjYXN0Ij5DUkVBVEUgQ0FTVDwvbGluaz4gYXJlIG5vdCBzdXBwb3J0ZWQu CisgIDwvcGFyYT4KKworICAgIDxwYXJhPgorICAgICBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2lu ZyBxdWVyeSBhdHRlbXB0cyB0byBjYXN0IGEgPHR5cGU+dGV4dDwvdHlwZT4gdHlwZSB2YWx1ZSB0 byA8dHlwZT5pbnRlZ2VyPC90eXBlPiB0eXBlLAorICAgICBidXQgd2hlbiB0aGUgY29udmVyc2lv biBmYWlscywgaXQgZmFsbHMgYmFjayB0byBldmFsdWF0ZSB0aGUgc3VwcGxpZWQgZGVmYXVsdCBl eHByZXNzaW9uLgorPHByb2dyYW1saXN0aW5nPgorU0VMRUNUIENBU1QoVEVYVCAnZXJyb3InIEFT IGludGVnZXIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIElTIE5VTEw7ICA8bGlu ZWFubm90YXRpb24+dHJ1ZTwvbGluZWFubm90YXRpb24+Cis8L3Byb2dyYW1saXN0aW5nPgorICAg IDwvcGFyYT4KKyAgPC9zZWN0Mz4KKwogICA8L3NlY3QyPgogCiAgIDxzZWN0MiBpZD0ic3FsLXN5 bnRheC1jb2xsYXRlLWV4cHJzIj4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdf Y2FzdC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jYXN0LmMKaW5kZXggMTc3M2M5YzU0OTEu LjZmZTY1ZDI0ZDMxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nhc3QuYwor KysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nhc3QuYwpAQCAtODQsNiArODQsNyBAQCBDYXN0 Q3JlYXRlKE9pZCBzb3VyY2V0eXBlaWQsIE9pZCB0YXJnZXR0eXBlaWQsCiAJdmFsdWVzW0FudW1f cGdfY2FzdF9jYXN0ZnVuYyAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShmdW5jaWQpOwogCXZhbHVl c1tBbnVtX3BnX2Nhc3RfY2FzdGNvbnRleHQgLSAxXSA9IENoYXJHZXREYXR1bShjYXN0Y29udGV4 dCk7CiAJdmFsdWVzW0FudW1fcGdfY2FzdF9jYXN0bWV0aG9kIC0gMV0gPSBDaGFyR2V0RGF0dW0o Y2FzdG1ldGhvZCk7CisJdmFsdWVzW0FudW1fcGdfY2FzdF9jYXN0ZXJyb3JzYWZlIC0gMV0gPSBC b29sR2V0RGF0dW0oZmFsc2UpOwogCiAJdHVwbGUgPSBoZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25H ZXREZXNjcihyZWxhdGlvbiksIHZhbHVlcywgbnVsbHMpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIu YwppbmRleCBiMzAyYmUzNmY3My4uMWRlMGQ0NjVmNTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIu YwpAQCAtOTksNiArOTksOSBAQCBzdGF0aWMgdm9pZCBFeGVjQnVpbGRBZ2dUcmFuc0NhbGwoRXhw clN0YXRlICpzdGF0ZSwgQWdnU3RhdGUgKmFnZ3N0YXRlLAogc3RhdGljIHZvaWQgRXhlY0luaXRK c29uRXhwcihKc29uRXhwciAqanNleHByLCBFeHByU3RhdGUgKnN0YXRlLAogCQkJCQkJCSBEYXR1 bSAqcmVzdiwgYm9vbCAqcmVzbnVsbCwKIAkJCQkJCQkgRXhwckV2YWxTdGVwICpzY3JhdGNoKTsK K3N0YXRpYyB2b2lkIEV4ZWNJbml0U2FmZVR5cGVDYXN0RXhwcihTYWZlVHlwZUNhc3RFeHByICpz dGNleHByLCBFeHByU3RhdGUgKnN0YXRlLAorCQkJCQkJCQkJIERhdHVtICpyZXN2LCBib29sICpy ZXNudWxsLAorCQkJCQkJCQkJIEV4cHJFdmFsU3RlcCAqc2NyYXRjaCk7CiBzdGF0aWMgdm9pZCBF eGVjSW5pdEpzb25Db2VyY2lvbihFeHByU3RhdGUgKnN0YXRlLCBKc29uUmV0dXJuaW5nICpyZXR1 cm5pbmcsCiAJCQkJCQkJCSBFcnJvclNhdmVDb250ZXh0ICplc2NvbnRleHQsIGJvb2wgb21pdF9x dW90ZXMsCiAJCQkJCQkJCSBib29sIGV4aXN0c19jb2VyY2UsCkBAIC0xNzQyLDYgKzE3NDUsNyBA QCBFeGVjSW5pdEV4cHJSZWMoRXhwciAqbm9kZSwgRXhwclN0YXRlICpzdGF0ZSwKIAogCQkJCWVs ZW1zdGF0ZS0+aW5uZXJtb3N0X2Nhc2V2YWwgPSAoRGF0dW0gKikgcGFsbG9jKHNpemVvZihEYXR1 bSkpOwogCQkJCWVsZW1zdGF0ZS0+aW5uZXJtb3N0X2Nhc2VudWxsID0gKGJvb2wgKikgcGFsbG9j KHNpemVvZihib29sKSk7CisJCQkJZWxlbXN0YXRlLT5lc2NvbnRleHQgPSBzdGF0ZS0+ZXNjb250 ZXh0OwogCiAJCQkJRXhlY0luaXRFeHByUmVjKGFjb2VyY2UtPmVsZW1leHByLCBlbGVtc3RhdGUs CiAJCQkJCQkJCSZlbGVtc3RhdGUtPnJlc3ZhbHVlLCAmZWxlbXN0YXRlLT5yZXNudWxsKTsKQEAg LTIyMTgsNiArMjIyMiwxNCBAQCBFeGVjSW5pdEV4cHJSZWMoRXhwciAqbm9kZSwgRXhwclN0YXRl ICpzdGF0ZSwKIAkJCQlicmVhazsKIAkJCX0KIAorCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoK KwkJCXsKKwkJCQlTYWZlVHlwZUNhc3RFeHByICAgKnN0Y2V4cHIgPSBjYXN0Tm9kZShTYWZlVHlw ZUNhc3RFeHByLCBub2RlKTsKKworCQkJCUV4ZWNJbml0U2FmZVR5cGVDYXN0RXhwcihzdGNleHBy LCBzdGF0ZSwgcmVzdiwgcmVzbnVsbCwgJnNjcmF0Y2gpOworCQkJCWJyZWFrOworCQkJfQorCiAJ CWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJCQl7CiAJCQkJQ29hbGVzY2VFeHByICpjb2FsZXNjZSA9 IChDb2FsZXNjZUV4cHIgKikgbm9kZTsKQEAgLTI3ODQsNyArMjc5Niw3IEBAIEV4ZWNJbml0RnVu YyhFeHByRXZhbFN0ZXAgKnNjcmF0Y2gsIEV4cHIgKm5vZGUsIExpc3QgKmFyZ3MsIE9pZCBmdW5j aWQsCiAKIAkvKiBJbml0aWFsaXplIGZ1bmN0aW9uIGNhbGwgcGFyYW1ldGVyIHN0cnVjdHVyZSB0 b28gKi8KIAlJbml0RnVuY3Rpb25DYWxsSW5mb0RhdGEoKmZjaW5mbywgZmxpbmZvLAotCQkJCQkJ CSBuYXJncywgaW5wdXRjb2xsaWQsIE5VTEwsIE5VTEwpOworCQkJCQkJCSBuYXJncywgaW5wdXRj b2xsaWQsIChOb2RlICopIHN0YXRlLT5lc2NvbnRleHQsIE5VTEwpOwogCiAJLyogS2VlcCBleHRy YSBjb3BpZXMgb2YgdGhpcyBpbmZvIHRvIHNhdmUgYW4gaW5kaXJlY3Rpb24gYXQgcnVudGltZSAq LwogCXNjcmF0Y2gtPmQuZnVuYy5mbl9hZGRyID0gZmxpbmZvLT5mbl9hZGRyOwpAQCAtNDc4Miw2 ICs0Nzk0LDUzIEBAIEV4ZWNCdWlsZFBhcmFtU2V0RXF1YWwoVHVwbGVEZXNjIGRlc2MsCiAJcmV0 dXJuIHN0YXRlOwogfQogCisvKgorICogUHVzaCBzdGVwcyB0byBldmFsdWF0ZSBhIFNhZmVUeXBl Q2FzdEV4cHIgYW5kIGl0cyB2YXJpb3VzIHN1YnNpZGlhcnkKKyAqIGV4cHJlc3Npb25zLgorICov CitzdGF0aWMgdm9pZAorRXhlY0luaXRTYWZlVHlwZUNhc3RFeHByKFNhZmVUeXBlQ2FzdEV4cHIg KnN0Y2V4cHIgLCBFeHByU3RhdGUgKnN0YXRlLAorCQkJCQkJIERhdHVtICpyZXN2LCBib29sICpy ZXNudWxsLAorCQkJCQkJIEV4cHJFdmFsU3RlcCAqc2NyYXRjaCkKK3sKKwkvKgorCSAqIElmIHdl IGNhbiBub3QgY29lcmNlIHRvIHRoZSB0YXJnZXQgdHlwZSwgZmFsbGJhY2sgdG8gdGhlIERFRkFV TFQKKwkgKiBleHByZXNzaW9uIHNwZWNpZmllZCBpbiB0aGUgT04gQ09OVkVSU0lPTiBFUlJPUiBj bGF1c2UsIGFuZCB3ZSBhcmUgZG9uZS4KKwkgKi8KKwlpZiAoc3RjZXhwci0+Y2FzdF9leHByID09 IE5VTEwpCisJeworCQlFeGVjSW5pdEV4cHJSZWMoKEV4cHIgKikgc3RjZXhwci0+ZGVmYXVsdF9l eHByLAorCQkJCQkJc3RhdGUsIHJlc3YsIHJlc251bGwpOworCQlyZXR1cm47CisJfQorCWVsc2UK Kwl7CisJCVNhZmVUeXBlQ2FzdFN0YXRlICpzdGNzdGF0ZTsKKwkJRXJyb3JTYXZlQ29udGV4dCAq c2F2ZWRfZXNjb250ZXh0OworCisJCXN0Y3N0YXRlID0gcGFsbG9jMChzaXplb2YoU2FmZVR5cGVD YXN0U3RhdGUpKTsKKwkJc3Rjc3RhdGUtPnN0Y2V4cHIgPSBzdGNleHByOworCQlzdGNzdGF0ZS0+ ZXNjb250ZXh0LnR5cGUgPSBUX0Vycm9yU2F2ZUNvbnRleHQ7CisJCXN0YXRlLT5lc2NvbnRleHQg PSAmc3Rjc3RhdGUtPmVzY29udGV4dDsKKworCQkvKiBldmFsdWF0ZSBhcmd1bWVudCBleHByZXNz aW9uIGludG8gc3RlcCdzIHJlc3VsdCBhcmVhICovCisJCUV4ZWNJbml0RXhwclJlYygoRXhwciAq KSBzdGNleHByLT5jYXN0X2V4cHIsCisJCQkJCQlzdGF0ZSwgcmVzdiwgcmVzbnVsbCk7CisJCXNj cmF0Y2gtPm9wY29kZSA9IEVFT1BfU0FGRVRZUEVfQ0FTVDsKKwkJc2NyYXRjaC0+ZC5zdGNleHBy LnN0Y3N0YXRlID0gc3Rjc3RhdGU7CisJCUV4cHJFdmFsUHVzaFN0ZXAoc3RhdGUsIHNjcmF0Y2gp OworCisJCS8qIFN0ZXBzIHRvIGV2YWx1YXRlIHRoZSBERUZBVUxUIGV4cHJlc3Npb24gKi8KKwkJ c2F2ZWRfZXNjb250ZXh0ID0gc3RhdGUtPmVzY29udGV4dDsKKwkJc3RhdGUtPmVzY29udGV4dCA9 IE5VTEw7CisJCUV4ZWNJbml0RXhwclJlYygoRXhwciAqKSBzdGNzdGF0ZS0+c3RjZXhwci0+ZGVm YXVsdF9leHByLAorCQkJCQkJc3RhdGUsIHJlc3YsIHJlc251bGwpOworCQlzdGF0ZS0+ZXNjb250 ZXh0ID0gc2F2ZWRfZXNjb250ZXh0OworCisJCXN0Y3N0YXRlLT5qdW1wX2VuZCA9IHN0YXRlLT5z dGVwc19sZW47CisJfQorfQorCiAvKgogICogUHVzaCBzdGVwcyB0byBldmFsdWF0ZSBhIEpzb25F eHByIGFuZCBpdHMgdmFyaW91cyBzdWJzaWRpYXJ5IGV4cHJlc3Npb25zLgogICovCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwppbmRleCA2N2Y0ZTAwZWFjNC4uZjFkOGRmMWFjNDEg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKKysrIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAtNTY4LDYgKzU2OCw3IEBA IEV4ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwg Ym9vbCAqaXNudWxsKQogCQkmJkNBU0VfRUVPUF9YTUxFWFBSLAogCQkmJkNBU0VfRUVPUF9KU09O X0NPTlNUUlVDVE9SLAogCQkmJkNBU0VfRUVPUF9JU19KU09OLAorCQkmJkNBU0VfRUVPUF9TQUZF VFlQRV9DQVNULAogCQkmJkNBU0VfRUVPUF9KU09ORVhQUl9QQVRILAogCQkmJkNBU0VfRUVPUF9K U09ORVhQUl9DT0VSQ0lPTiwKIAkJJiZDQVNFX0VFT1BfSlNPTkVYUFJfQ09FUkNJT05fRklOSVNI LApAQCAtMTkyNiw2ICsxOTI3LDI4IEBAIEV4ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3RhdGUs IEV4cHJDb250ZXh0ICplY29udGV4dCwgYm9vbCAqaXNudWxsKQogCQkJRUVPX05FWFQoKTsKIAkJ fQogCisJCUVFT19DQVNFKEVFT1BfU0FGRVRZUEVfQ0FTVCkKKwkJeworCQkJU2FmZVR5cGVDYXN0 U3RhdGUgKnN0Y3N0YXRlID0gb3AtPmQuc3RjZXhwci5zdGNzdGF0ZTsKKworCQkJaWYgKFNPRlRf RVJST1JfT0NDVVJSRUQoJnN0Y3N0YXRlLT5lc2NvbnRleHQpKQorCQkJeworCQkJCSpvcC0+cmVz dmFsdWUgPSAoRGF0dW0pIDA7CisJCQkJKm9wLT5yZXNudWxsID0gdHJ1ZTsKKworCQkJCS8qCisJ CQkJICogUmVzZXQgZm9yIG5leHQgdXNlIHN1Y2ggYXMgZm9yIGNhdGNoaW5nIGVycm9ycyB3aGVu IGNvZXJjaW5nCisJCQkJICogYSBleHByZXNzaW9uLgorCQkJCSAqLworCQkJCXN0Y3N0YXRlLT5l c2NvbnRleHQuZXJyb3Jfb2NjdXJyZWQgPSBmYWxzZTsKKwkJCQlzdGNzdGF0ZS0+ZXNjb250ZXh0 LmRldGFpbHNfd2FudGVkID0gZmFsc2U7CisKKwkJCQlFRU9fTkVYVCgpOworCQkJfQorCQkJZWxz ZQorCQkJCUVFT19KVU1QKHN0Y3N0YXRlLT5qdW1wX2VuZCk7CisJCX0KKwogCQlFRU9fQ0FTRShF RU9QX0pTT05FWFBSX1BBVEgpCiAJCXsKIAkJCS8qIHRvbyBjb21wbGV4IGZvciBhbiBpbmxpbmUg aW1wbGVtZW50YXRpb24gKi8KQEAgLTM2NDQsNiArMzY2NywxMiBAQCBFeGVjRXZhbEFycmF5Q29l cmNlKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3AsIEV4cHJDb250ZXh0ICplY29u dGV4dCkKIAkJCQkJCQkgIGVjb250ZXh0LAogCQkJCQkJCSAgb3AtPmQuYXJyYXljb2VyY2UucmVz dWx0ZWxlbXR5cGUsCiAJCQkJCQkJICBvcC0+ZC5hcnJheWNvZXJjZS5hbXN0YXRlKTsKKworCWlm IChTT0ZUX0VSUk9SX09DQ1VSUkVEKG9wLT5kLmFycmF5Y29lcmNlLmVsZW1leHByc3RhdGUtPmVz Y29udGV4dCkpCisJeworCQkqb3AtPnJlc3ZhbHVlID0gKERhdHVtKSAwOworCQkqb3AtPnJlc251 bGwgPSB0cnVlOworCX0KIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2ppdC9sbHZt L2xsdm1qaXRfZXhwci5jIGIvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMKaW5k ZXggYWM4ODg4MWU5OTUuLmJjN2NkMzI4M2E1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9qaXQv bGx2bS9sbHZtaml0X2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4 cHIuYwpAQCAtMjI1Niw2ICsyMjU2LDMyIEBAIGxsdm1fY29tcGlsZV9leHByKEV4cHJTdGF0ZSAq c3RhdGUpCiAJCQkJTExWTUJ1aWxkQnIoYiwgb3BibG9ja3Nbb3BubyArIDFdKTsKIAkJCQlicmVh azsKIAorCQkJY2FzZSBFRU9QX1NBRkVUWVBFX0NBU1Q6CisJCQkJeworCQkJCQlTYWZlVHlwZUNh c3RTdGF0ZSAqc3Rjc3RhdGUgPSBvcC0+ZC5zdGNleHByLnN0Y3N0YXRlOworCisJCQkJCWlmIChT T0ZUX0VSUk9SX09DQ1VSUkVEKCZzdGNzdGF0ZS0+ZXNjb250ZXh0KSkKKwkJCQkJeworCQkJCQkJ LyoKKwkJCQkJCSAqIFJlc2V0IGZvciBuZXh0IHVzZSBzdWNoIGFzIGZvciBjYXRjaGluZyBlcnJv cnMgd2hlbgorCQkJCQkJICogY29lcmNpbmcgYSBleHByZXNzaW9uLgorCQkJCQkJICovCisJCQkJ CQlzdGNzdGF0ZS0+ZXNjb250ZXh0LmVycm9yX29jY3VycmVkID0gZmFsc2U7CisJCQkJCQlzdGNz dGF0ZS0+ZXNjb250ZXh0LmRldGFpbHNfd2FudGVkID0gZmFsc2U7CisKKwkJCQkJCS8qIHNldCBy ZXNudWxsIHRvIHRydWUgKi8KKwkJCQkJCUxMVk1CdWlsZFN0b3JlKGIsIGxfc2Jvb2xfY29uc3Qo MSksIHZfcmVzbnVsbHApOworCQkJCQkJLyogcmVzZXQgcmVzdmFsdWUgKi8KKwkJCQkJCUxMVk1C dWlsZFN0b3JlKGIsIGxfZGF0dW1fY29uc3QoMCksIHZfcmVzdmFsdWVwKTsKKworCQkJCQkJTExW TUJ1aWxkQnIoYiwgb3BibG9ja3Nbb3BubyArIDFdKTsKKwkJCQkJfQorCQkJCQllbHNlCisJCQkJ CQlMTFZNQnVpbGRCcihiLCBvcGJsb2Nrc1tzdGNzdGF0ZS0+anVtcF9lbmRdKTsKKworCQkJCQli cmVhazsKKwkJCQl9CisKIAkJCWNhc2UgRUVPUF9KU09ORVhQUl9QQVRIOgogCQkJCXsKIAkJCQkJ SnNvbkV4cHJTdGF0ZSAqanNlc3RhdGUgPSBvcC0+ZC5qc29uZXhwci5qc2VzdGF0ZTsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMv bm9kZUZ1bmNzLmMKaW5kZXggZDIyODMxOGRjNzIuLmIzYWU2OTA2OGQwIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2Rl RnVuY3MuYwpAQCAtMjA2LDYgKzIwNiw5IEBAIGV4cHJUeXBlKGNvbnN0IE5vZGUgKmV4cHIpCiAJ CWNhc2UgVF9Sb3dDb21wYXJlRXhwcjoKIAkJCXR5cGUgPSBCT09MT0lEOwogCQkJYnJlYWs7CisJ CWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJdHlwZSA9ICgoY29uc3QgU2FmZVR5cGVDYXN0 RXhwciAqKSBleHByKS0+cmVzdWx0dHlwZTsKKwkJCWJyZWFrOwogCQljYXNlIFRfQ29hbGVzY2VF eHByOgogCQkJdHlwZSA9ICgoY29uc3QgQ29hbGVzY2VFeHByICopIGV4cHIpLT5jb2FsZXNjZXR5 cGU7CiAJCQlicmVhazsKQEAgLTQ1MCw2ICs0NTMsOCBAQCBleHByVHlwbW9kKGNvbnN0IE5vZGUg KmV4cHIpCiAJCQkJcmV0dXJuIHR5cG1vZDsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfU2Fm ZVR5cGVDYXN0RXhwcjoKKwkJCXJldHVybiAoKGNvbnN0IFNhZmVUeXBlQ2FzdEV4cHIgKikgZXhw ciktPnJlc3VsdHR5cG1vZDsKIAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJCXsKIAkJCQkvKgpA QCAtOTY1LDYgKzk3MCw5IEBAIGV4cHJDb2xsYXRpb24oY29uc3QgTm9kZSAqZXhwcikKIAkJCS8q IFJvd0NvbXBhcmVFeHByJ3MgcmVzdWx0IGlzIGJvb2xlYW4gLi4uICovCiAJCQljb2xsID0gSW52 YWxpZE9pZDsJLyogLi4uIHNvIGl0IGhhcyBubyBjb2xsYXRpb24gKi8KIAkJCWJyZWFrOworCQlj YXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCWNvbGwgPSAoKGNvbnN0IFNhZmVUeXBlQ2FzdEV4 cHIgKikgZXhwciktPnJlc3VsdGNvbGxpZDsKKwkJCWJyZWFrOwogCQljYXNlIFRfQ29hbGVzY2VF eHByOgogCQkJY29sbCA9ICgoY29uc3QgQ29hbGVzY2VFeHByICopIGV4cHIpLT5jb2FsZXNjZWNv bGxpZDsKIAkJCWJyZWFrOwpAQCAtMTIzMiw2ICsxMjQwLDkgQEAgZXhwclNldENvbGxhdGlvbihO b2RlICpleHByLCBPaWQgY29sbGF0aW9uKQogCQkJLyogUm93Q29tcGFyZUV4cHIncyByZXN1bHQg aXMgYm9vbGVhbiAuLi4gKi8KIAkJCUFzc2VydCghT2lkSXNWYWxpZChjb2xsYXRpb24pKTsgLyog Li4uIHNvIG5ldmVyIHNldCBhIGNvbGxhdGlvbiAqLwogCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZl VHlwZUNhc3RFeHByOgorCQkJKChTYWZlVHlwZUNhc3RFeHByICopIGV4cHIpLT5yZXN1bHRjb2xs aWQgPSBjb2xsYXRpb247CisJCQlicmVhazsKIAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJCSgo Q29hbGVzY2VFeHByICopIGV4cHIpLT5jb2FsZXNjZWNvbGxpZCA9IGNvbGxhdGlvbjsKIAkJCWJy ZWFrOwpAQCAtMTU1MCw2ICsxNTYxLDkgQEAgZXhwckxvY2F0aW9uKGNvbnN0IE5vZGUgKmV4cHIp CiAJCQkvKiBqdXN0IHVzZSBsZWZ0bW9zdCBhcmd1bWVudCdzIGxvY2F0aW9uICovCiAJCQlsb2Mg PSBleHByTG9jYXRpb24oKE5vZGUgKikgKChjb25zdCBSb3dDb21wYXJlRXhwciAqKSBleHByKS0+ bGFyZ3MpOwogCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJbG9jID0g KChjb25zdCBTYWZlVHlwZUNhc3RFeHByICopIGV4cHIpLT5sb2NhdGlvbjsKKwkJCWJyZWFrOwog CQljYXNlIFRfQ29hbGVzY2VFeHByOgogCQkJLyogQ09BTEVTQ0Uga2V5d29yZCBzaG91bGQgYWx3 YXlzIGJlIHRoZSBmaXJzdCB0aGluZyAqLwogCQkJbG9jID0gKChjb25zdCBDb2FsZXNjZUV4cHIg KikgZXhwciktPmxvY2F0aW9uOwpAQCAtMjMyMSw2ICsyMzM1LDE4IEBAIGV4cHJlc3Npb25fdHJl ZV93YWxrZXJfaW1wbChOb2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJy ZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3RF eHByICAgKnNjZXhwciA9IChTYWZlVHlwZUNhc3RFeHByICopIG5vZGU7CisKKwkJCQlpZiAoV0FM SyhzY2V4cHItPnNvdXJjZV9leHByKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEso c2NleHByLT5jYXN0X2V4cHIpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhzY2V4 cHItPmRlZmF1bHRfZXhwcikpCisJCQkJCXJldHVybiB0cnVlOworCQkJfQorCQkJYnJlYWs7CiAJ CWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJCQlyZXR1cm4gV0FMSygoKENvYWxlc2NlRXhwciAqKSBu b2RlKS0+YXJncyk7CiAJCWNhc2UgVF9NaW5NYXhFeHByOgpAQCAtMzMzMCw2ICszMzU2LDE5IEBA IGV4cHJlc3Npb25fdHJlZV9tdXRhdG9yX2ltcGwoTm9kZSAqbm9kZSwKIAkJCQlyZXR1cm4gKE5v ZGUgKikgbmV3bm9kZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhw cjoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3RFeHByICAgKnNjZXhwciA9IChTYWZlVHlwZUNhc3RF eHByICopIG5vZGU7CisJCQkJU2FmZVR5cGVDYXN0RXhwciAgICpuZXdub2RlOworCisJCQkJRkxB VENPUFkobmV3bm9kZSwgc2NleHByLCBTYWZlVHlwZUNhc3RFeHByKTsKKwkJCQlNVVRBVEUobmV3 bm9kZS0+c291cmNlX2V4cHIsIHNjZXhwci0+c291cmNlX2V4cHIsIE5vZGUgKik7CisJCQkJTVVU QVRFKG5ld25vZGUtPmNhc3RfZXhwciwgc2NleHByLT5jYXN0X2V4cHIsIE5vZGUgKik7CisJCQkJ TVVUQVRFKG5ld25vZGUtPmRlZmF1bHRfZXhwciwgc2NleHByLT5kZWZhdWx0X2V4cHIsIE5vZGUg Kik7CisKKwkJCQlyZXR1cm4gKE5vZGUgKikgbmV3bm9kZTsKKwkJCX0KKwkJCWJyZWFrOwogCQlj YXNlIFRfQ29hbGVzY2VFeHByOgogCQkJewogCQkJCUNvYWxlc2NlRXhwciAqY29hbGVzY2VleHBy ID0gKENvYWxlc2NlRXhwciAqKSBub2RlOwpAQCAtNDQ2NCw2ICs0NTAzLDI4IEBAIHJhd19leHBy ZXNzaW9uX3RyZWVfd2Fsa2VyX2ltcGwoTm9kZSAqbm9kZSwKIAkJCQkJcmV0dXJuIHRydWU7CiAJ CQl9CiAJCQlicmVhazsKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdDoKKwkJCXsKKwkJCQlTYWZlVHlw ZUNhc3QgICAqc2MgPSAoU2FmZVR5cGVDYXN0ICopIG5vZGU7CisKKwkJCQlpZiAoV0FMSyhzYy0+ Y2FzdCkpCisJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChXQUxLKHNjLT5yYXdfZGVmYXVsdCkp CisJCQkJCXJldHVybiB0cnVlOworCQkJfQorCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNh c3RFeHByOgorCQkJeworCQkJCVNhZmVUeXBlQ2FzdEV4cHIgICAqc3RjID0gKFNhZmVUeXBlQ2Fz dEV4cHIgKikgbm9kZTsKKworCQkJCWlmIChXQUxLKHN0Yy0+c291cmNlX2V4cHIpKQorCQkJCQly ZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhzdGMtPmNhc3RfZXhwcikpCisJCQkJCXJldHVybiB0 cnVlOworCQkJCWlmIChXQUxLKHN0Yy0+ZGVmYXVsdF9leHByKSkKKwkJCQkJcmV0dXJuIHRydWU7 CisJCQl9CisJCQlicmVhazsKIAkJY2FzZSBUX0NvbGxhdGVDbGF1c2U6CiAJCQlyZXR1cm4gV0FM SygoKENvbGxhdGVDbGF1c2UgKikgbm9kZSktPmFyZyk7CiAJCWNhc2UgVF9Tb3J0Qnk6CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMgYi9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKaW5kZXggZTVkYmQ0MGNkYTIuLjA0YThjYTYzNDU5 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKKysrIGIv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCkBAIC0yOTU4LDYgKzI5NTgsMzIg QEAgZXZhbF9jb25zdF9leHByZXNzaW9uc19tdXRhdG9yKE5vZGUgKm5vZGUsCiAJCQkJCQkJCQkJ CQkgIGNvcHlPYmplY3QoanZlLT5mb3JtYXQpKTsKIAkJCX0KIAorCQljYXNlIFRfU2FmZVR5cGVD YXN0RXhwcjoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3RFeHByIAkqc3RjID0gKFNhZmVUeXBlQ2Fz dEV4cHIgKikgbm9kZTsKKwkJCQlTYWZlVHlwZUNhc3RFeHByCSpuZXdleHByOworCQkJCU5vZGUJ ICAgKnNvdXJjZV9leHByID0gc3RjLT5zb3VyY2VfZXhwcjsKKwkJCQlOb2RlCSAgICpkZWZhdWx0 X2V4cHIgPSBzdGMtPmRlZmF1bHRfZXhwcjsKKworCQkJCXNvdXJjZV9leHByID0gZXZhbF9jb25z dF9leHByZXNzaW9uc19tdXRhdG9yKHNvdXJjZV9leHByLCBjb250ZXh0KTsKKwkJCQlkZWZhdWx0 X2V4cHIgPSBldmFsX2NvbnN0X2V4cHJlc3Npb25zX211dGF0b3IoZGVmYXVsdF9leHByLCBjb250 ZXh0KTsKKworCQkJCS8qCisJCQkJICogV2UgbXVzdCBub3QgcmVkdWNlIGFueSByZWNvZ25pemFi bHkgY29uc3RhbnQgc3ViZXhwcmVzc2lvbnMKKwkJCQkgKiBpbiBjYXN0X2V4cHIgaGVyZSwgc2lu Y2Ugd2UgZG9u4oCZdCB3YW50IGl0IHRvIGZhaWwKKwkJCQkgKiBwcmVtYXR1cmVseS4KKwkJCQkg Ki8KKwkJCQluZXdleHByID0gbWFrZU5vZGUoU2FmZVR5cGVDYXN0RXhwcik7CisJCQkJbmV3ZXhw ci0+c291cmNlX2V4cHIgPSBzb3VyY2VfZXhwcjsKKwkJCQluZXdleHByLT5jYXN0X2V4cHIgPSBz dGMtPmNhc3RfZXhwcjsKKwkJCQluZXdleHByLT5kZWZhdWx0X2V4cHIgPSBkZWZhdWx0X2V4cHI7 CisJCQkJbmV3ZXhwci0+cmVzdWx0dHlwZSA9IHN0Yy0+cmVzdWx0dHlwZTsKKwkJCQluZXdleHBy LT5yZXN1bHR0eXBtb2QgPSBzdGMtPnJlc3VsdHR5cG1vZDsKKwkJCQluZXdleHByLT5yZXN1bHRj b2xsaWQgPSBzdGMtPnJlc3VsdGNvbGxpZDsKKworCQkJCXJldHVybiAoTm9kZSAqKSBuZXdleHBy OworCQkJfQorCiAJCWNhc2UgVF9TdWJQbGFuOgogCQljYXNlIFRfQWx0ZXJuYXRpdmVTdWJQbGFu OgogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQv cGFyc2VyL2dyYW0ueQppbmRleCBjM2EwYTM1NGE5Yy4uOGEyN2UwNDViYzAgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eQpAQCAtMTYwMTMsNiArMTYwMTMsMjggQEAgZnVuY19leHByX2NvbW1vbl9zdWJleHByOgogCQkJ CX0KIAkJCXwgQ0FTVCAnKCcgYV9leHByIEFTIFR5cGVuYW1lICcpJwogCQkJCXsgJCQgPSBtYWtl VHlwZUNhc3QoJDMsICQ1LCBAMSk7IH0KKwkJCXwgQ0FTVCAnKCcgYV9leHByIEFTIFR5cGVuYW1l IEVSUk9SX1AgT04gQ09OVkVSU0lPTl9QIEVSUk9SX1AgJyknCisJCQkJeyAkJCA9IG1ha2VUeXBl Q2FzdCgkMywgJDUsIEAxKTsgfQorCQkJfCBDQVNUICcoJyBhX2V4cHIgQVMgVHlwZW5hbWUgTlVM TF9QIE9OIENPTlZFUlNJT05fUCBFUlJPUl9QICcpJworCQkJCXsKKwkJCQkJVHlwZUNhc3QgKmNh c3QgPSAoVHlwZUNhc3QgKikgbWFrZVR5cGVDYXN0KCQzLCAkNSwgQDEpOworCisJCQkJCVNhZmVU eXBlQ2FzdCAqc2FmZWNhc3QgPSBtYWtlTm9kZShTYWZlVHlwZUNhc3QpOworCQkJCQlzYWZlY2Fz dC0+Y2FzdCA9IChOb2RlICopIGNhc3Q7CisJCQkJCXNhZmVjYXN0LT5yYXdfZGVmYXVsdCA9IG1h a2VOdWxsQUNvbnN0KC0xKTs7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBzYWZlY2FzdDsKKwkJCQl9 CisJCQl8IENBU1QgJygnIGFfZXhwciBBUyBUeXBlbmFtZSBERUZBVUxUIGFfZXhwciBPTiBDT05W RVJTSU9OX1AgRVJST1JfUCAnKScKKwkJCQl7CisJCQkJCVR5cGVDYXN0ICpjYXN0ID0gKFR5cGVD YXN0ICopIG1ha2VUeXBlQ2FzdCgkMywgJDUsIEAxKTsKKworCQkJCQlTYWZlVHlwZUNhc3QgKnNh ZmVjYXN0ID0gbWFrZU5vZGUoU2FmZVR5cGVDYXN0KTsKKwkJCQkJc2FmZWNhc3QtPmNhc3QgPSAo Tm9kZSAqKSBjYXN0OworCQkJCQlzYWZlY2FzdC0+cmF3X2RlZmF1bHQgPSAkNzsKKworCQkJCQkk JCA9IChOb2RlICopIHNhZmVjYXN0OworCQkJCX0KIAkJCXwgRVhUUkFDVCAnKCcgZXh0cmFjdF9s aXN0ICcpJwogCQkJCXsKIAkJCQkJJCQgPSAoTm9kZSAqKSBtYWtlRnVuY0NhbGwoU3lzdGVtRnVu Y05hbWUoImV4dHJhY3QiKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9h Z2cuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwppbmRleCBiODM0MDU1N2IzNC4u ZGU3N2Y2ZTkzMDIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwor KysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKQEAgLTQ5MCw2ICs0OTAsMTIgQEAg Y2hlY2tfYWdnbGV2ZWxzX2FuZF9jb25zdHJhaW50cyhQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUg KmV4cHIpCiAJCQkJZXJyID0gXygiZ3JvdXBpbmcgb3BlcmF0aW9ucyBhcmUgbm90IGFsbG93ZWQg aW4gY2hlY2sgY29uc3RyYWludHMiKTsKIAogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX0NB U1RfREVGQVVMVDoKKwkJCWlmIChpc0FnZykKKwkJCQllcnIgPSBfKCJhZ2dyZWdhdGUgZnVuY3Rp b25zIGFyZSBub3QgYWxsb3dlZCBpbiBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbnMiKTsKKwkJCWVs c2UKKwkJCQllcnIgPSBfKCJncm91cGluZyBvcGVyYXRpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBD QVNUIERFRkFVTFQgZXhwcmVzc2lvbnMiKTsKKwkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9D T0xVTU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKIApAQCAt OTgzLDYgKzk4OSw5IEBAIHRyYW5zZm9ybVdpbmRvd0Z1bmNDYWxsKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgV2luZG93RnVuYyAqd2Z1bmMsCiAJCWNhc2UgRVhQUl9LSU5EX0RPTUFJTl9DSEVDSzoKIAkJ CWVyciA9IF8oIndpbmRvdyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIGNoZWNrIGNvbnN0 cmFpbnRzIik7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfQ0FTVF9ERUZBVUxUOgorCQkJ ZXJyID0gXygid2luZG93IGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gQ0FTVCBERUZBVUxU IGV4cHJlc3Npb25zIik7CisJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFV TFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CiAJCQllcnIgPSBfKCJ3aW5k b3cgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBERUZBVUxUIGV4cHJlc3Npb25zIik7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCA0NGZkMTM4NWY4Yy4uNTcwMTBkNjQzNGUgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtMTcsNiArMTcsOCBAQAogCiAjaW5jbHVkZSAiYWNjZXNz L2h0dXBfZGV0YWlscy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYWdncmVnYXRlLmgiCisjaW5j bHVkZSAiY2F0YWxvZy9wZ19jYXN0LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5j bHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCkBAIC0zNyw2ICszOSw3IEBACiAjaW5jbHVkZSAidXRp bHMvZGF0ZS5oIgogI2luY2x1ZGUgInV0aWxzL2ZtZ3JvaWRzLmgiCiAjaW5jbHVkZSAidXRpbHMv bHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGls cy90aW1lc3RhbXAuaCIKICNpbmNsdWRlICJ1dGlscy94bWwuaCIKIApAQCAtNjAsNyArNjMsOCBA QCBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtTXVsdGlBc3NpZ25SZWYoUGFyc2VTdGF0ZSAqcHN0YXRl LCBNdWx0aUFzc2lnblJlZiAqbWFyZWYpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUNhc2VFeHBy KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ2FzZUV4cHIgKmMpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9y bVN1YkxpbmsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJsaW5rKTsKIHN0YXRpYyBO b2RlICp0cmFuc2Zvcm1BcnJheUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0FycmF5RXhwciAq YSwKLQkJCQkJCQkJT2lkIGFycmF5X3R5cGUsIE9pZCBlbGVtZW50X3R5cGUsIGludDMyIHR5cG1v ZCk7CisJCQkJCQkJCU9pZCBhcnJheV90eXBlLCBPaWQgZWxlbWVudF90eXBlLCBpbnQzMiB0eXBt b2QsCisJCQkJCQkJCWJvb2wgKmNhbl9jb2VyY2UpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybVJv d0V4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSb3dFeHByICpyLCBib29sIGFsbG93RGVmYXVsdCk7 CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtQ29hbGVzY2VFeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwg Q29hbGVzY2VFeHByICpjKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1NaW5NYXhFeHByKFBhcnNl U3RhdGUgKnBzdGF0ZSwgTWluTWF4RXhwciAqbSk7CkBAIC03Niw2ICs4MCw3IEBAIHN0YXRpYyBO b2RlICp0cmFuc2Zvcm1XaG9sZVJvd1JlZihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCSAg aW50IHN1YmxldmVsc191cCwgaW50IGxvY2F0aW9uKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1J bmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCk7CiBzdGF0 aWMgTm9kZSAqdHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBlQ2FzdCAq dGMpOworc3RhdGljIE5vZGUgKnRyYW5zZm9ybVR5cGVTYWZlQ2FzdChQYXJzZVN0YXRlICpwc3Rh dGUsIFNhZmVUeXBlQ2FzdCAqdGMpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUNvbGxhdGVDbGF1 c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2xsYXRlQ2xhdXNlICpjKTsKIHN0YXRpYyBOb2RlICp0 cmFuc2Zvcm1Kc29uT2JqZWN0Q29uc3RydWN0b3IoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJ CQkJCQlKc29uT2JqZWN0Q29uc3RydWN0b3IgKmN0b3IpOwpAQCAtMTY0LDEzICsxNjksMTcgQEAg dHJhbnNmb3JtRXhwclJlY3Vyc2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByKQogCiAJ CWNhc2UgVF9BX0FycmF5RXhwcjoKIAkJCXJlc3VsdCA9IHRyYW5zZm9ybUFycmF5RXhwcihwc3Rh dGUsIChBX0FycmF5RXhwciAqKSBleHByLAotCQkJCQkJCQkJCUludmFsaWRPaWQsIEludmFsaWRP aWQsIC0xKTsKKwkJCQkJCQkJCQlJbnZhbGlkT2lkLCBJbnZhbGlkT2lkLCAtMSwgTlVMTCk7CiAJ CQlicmVhazsKIAogCQljYXNlIFRfVHlwZUNhc3Q6CiAJCQlyZXN1bHQgPSB0cmFuc2Zvcm1UeXBl Q2FzdChwc3RhdGUsIChUeXBlQ2FzdCAqKSBleHByKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgVF9T YWZlVHlwZUNhc3Q6CisJCQlyZXN1bHQgPSB0cmFuc2Zvcm1UeXBlU2FmZUNhc3QocHN0YXRlLCAo U2FmZVR5cGVDYXN0ICopIGV4cHIpOworCQkJYnJlYWs7CisKIAkJY2FzZSBUX0NvbGxhdGVDbGF1 c2U6CiAJCQlyZXN1bHQgPSB0cmFuc2Zvcm1Db2xsYXRlQ2xhdXNlKHBzdGF0ZSwgKENvbGxhdGVD bGF1c2UgKikgZXhwcik7CiAJCQlicmVhazsKQEAgLTU2NCw2ICs1NzMsNyBAQCB0cmFuc2Zvcm1D b2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJCWNhc2UgRVhQ Ul9LSU5EX1ZBTFVFU19TSU5HTEU6CiAJCWNhc2UgRVhQUl9LSU5EX0NIRUNLX0NPTlNUUkFJTlQ6 CiAJCWNhc2UgRVhQUl9LSU5EX0RPTUFJTl9DSEVDSzoKKwkJY2FzZSBFWFBSX0tJTkRfQ0FTVF9E RUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgogCQljYXNlIEVYUFJf S0lORF9JTkRFWF9FWFBSRVNTSU9OOgogCQljYXNlIEVYUFJfS0lORF9JTkRFWF9QUkVESUNBVEU6 CkBAIC0xODI0LDYgKzE4MzQsOSBAQCB0cmFuc2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgU3ViTGluayAqc3VibGluaykKIAkJY2FzZSBFWFBSX0tJTkRfRE9NQUlOX0NIRUNLOgogCQkJ ZXJyID0gXygiY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBjaGVjayBjb25zdHJhaW50Iik7CiAJCQli cmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfQ0FTVF9ERUZBVUxUOgorCQkJZXJyID0gXygiY2Fubm90 IHVzZSBzdWJxdWVyeSBpbiBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbiIpOworCQkJYnJlYWs7CiAJ CWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElP Tl9ERUZBVUxUOgogCQkJZXJyID0gXygiY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBERUZBVUxUIGV4 cHJlc3Npb24iKTsKQEAgLTIwMTEsMTYgKzIwMjQsMjIgQEAgdHJhbnNmb3JtU3ViTGluayhQYXJz ZVN0YXRlICpwc3RhdGUsIFN1YkxpbmsgKnN1YmxpbmspCiAgKiBJZiB0aGUgY2FsbGVyIHNwZWNp ZmllcyB0aGUgdGFyZ2V0IHR5cGUsIHRoZSByZXN1bHRpbmcgYXJyYXkgd2lsbAogICogYmUgb2Yg ZXhhY3RseSB0aGF0IHR5cGUuICBPdGhlcndpc2Ugd2UgdHJ5IHRvIGluZmVyIGEgY29tbW9uIHR5 cGUKICAqIGZvciB0aGUgZWxlbWVudHMgdXNpbmcgc2VsZWN0X2NvbW1vbl90eXBlKCkuCisgKgor ICogTW9zdCBvZiB0aGUgdGltZSwgY2FuX2NvZXJjZSB3aWxsIGJlIE5VTEwuICBJdCBpcyBub3Qg TlVMTCBvbmx5IHdoZW4KKyAqIHBlcmZvcm1pbmcgcGFyc2UgYW5hbHlzaXMgZm9yIENBU1QoREVG QVVMVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUikKKyAqIGV4cHJlc3Npb24uIEl0J3MgZGVmYXVs dCB0byB0cnVlLiBJZiBjb2VyY2luZyBhcnJheSBlbGVtZW50cyBmYWlscywgaXQgd2lsbAorICog YmUgc2V0IHRvIGZhbHNlLgogICovCiBzdGF0aWMgTm9kZSAqCiB0cmFuc2Zvcm1BcnJheUV4cHIo UGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0FycmF5RXhwciAqYSwKLQkJCQkgICBPaWQgYXJyYXlfdHlw ZSwgT2lkIGVsZW1lbnRfdHlwZSwgaW50MzIgdHlwbW9kKQorCQkJCSAgIE9pZCBhcnJheV90eXBl LCBPaWQgZWxlbWVudF90eXBlLCBpbnQzMiB0eXBtb2QsIGJvb2wgKmNhbl9jb2VyY2UpCiB7CiAJ QXJyYXlFeHByICAqbmV3YSA9IG1ha2VOb2RlKEFycmF5RXhwcik7CiAJTGlzdAkgICAqbmV3ZWxl bXMgPSBOSUw7CiAJTGlzdAkgICAqbmV3Y29lcmNlZGVsZW1zID0gTklMOwogCUxpc3RDZWxsICAg KmVsZW1lbnQ7CiAJT2lkCQkJY29lcmNlX3R5cGU7CisJT2lkCQkJY29lcmNlX3R5cGVfY29sbDsK IAlib29sCQljb2VyY2VfaGFyZDsKIAogCS8qCkBAIC0yMDQ1LDkgKzIwNjQsMTAgQEAgdHJhbnNm b3JtQXJyYXlFeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9BcnJheUV4cHIgKmEsCiAJCQkJCQkJ CQkgIChBX0FycmF5RXhwciAqKSBlLAogCQkJCQkJCQkJICBhcnJheV90eXBlLAogCQkJCQkJCQkJ ICBlbGVtZW50X3R5cGUsCi0JCQkJCQkJCQkgIHR5cG1vZCk7CisJCQkJCQkJCQkgIHR5cG1vZCwK KwkJCQkJCQkJCSAgY2FuX2NvZXJjZSk7CiAJCQkvKiB3ZSBjZXJ0YWlubHkgaGF2ZSBhbiBhcnJh eSBoZXJlICovCi0JCQlBc3NlcnQoYXJyYXlfdHlwZSA9PSBJbnZhbGlkT2lkIHx8IGFycmF5X3R5 cGUgPT0gZXhwclR5cGUobmV3ZSkpOworCQkJQXNzZXJ0KGNhbl9jb2VyY2UgfHwgYXJyYXlfdHlw ZSA9PSBJbnZhbGlkT2lkIHx8IGFycmF5X3R5cGUgPT0gZXhwclR5cGUobmV3ZSkpOwogCQkJbmV3 YS0+bXVsdGlkaW1zID0gdHJ1ZTsKIAkJfQogCQllbHNlCkBAIC0yMDg4LDYgKzIxMDgsOSBAQCB0 cmFuc2Zvcm1BcnJheUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0FycmF5RXhwciAqYSwKIAl9 CiAJZWxzZQogCXsKKwkJLyogVGFyZ2V0IHR5cGUgbXVzdCB2YWxpZCBmb3IgQ0FTVCBERUZBVUxU ICovCisJCUFzc2VydChjYW5fY29lcmNlID09IE5VTEwpOworCiAJCS8qIENhbid0IGhhbmRsZSBh biBlbXB0eSBhcnJheSB3aXRob3V0IGEgdGFyZ2V0IHR5cGUgKi8KIAkJaWYgKG5ld2VsZW1zID09 IE5JTCkKIAkJCWVyZXBvcnQoRVJST1IsCkBAIC0yMTI1LDYgKzIxNDgsOCBAQCB0cmFuc2Zvcm1B cnJheUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0FycmF5RXhwciAqYSwKIAkJY29lcmNlX2hh cmQgPSBmYWxzZTsKIAl9CiAKKwljb2VyY2VfdHlwZV9jb2xsID0gZ2V0X3R5cGNvbGxhdGlvbihj b2VyY2VfdHlwZSk7CisKIAkvKgogCSAqIENvZXJjZSBlbGVtZW50cyB0byB0YXJnZXQgdHlwZQog CSAqCkBAIC0yMTM0LDEzICsyMTU5LDU1IEBAIHRyYW5zZm9ybUFycmF5RXhwcihQYXJzZVN0YXRl ICpwc3RhdGUsIEFfQXJyYXlFeHByICphLAogCSAqIElmIHRoZSBhcnJheSdzIHR5cGUgd2FzIG1l cmVseSBkZXJpdmVkIGZyb20gdGhlIGNvbW1vbiB0eXBlIG9mIGl0cwogCSAqIGVsZW1lbnRzLCB0 aGVuIHRoZSBlbGVtZW50cyBhcmUgaW1wbGljaXRseSBjb2VyY2VkIHRvIHRoZSBjb21tb24gdHlw ZS4KIAkgKiBUaGlzIGlzIGNvbnNpc3RlbnQgd2l0aCBvdGhlciB1c2VzIG9mIHNlbGVjdF9jb21t b25fdHlwZSgpLgorCSAqCisJICogSWYgY2FuX2NvZXJjZSBpcyBub3QgTlVMTCwgd2UgbmVlZCB0 byBzYWZlbHkgdGVzdCB3aGV0aGVyIGVhY2ggZWxlbWVudAorCSAqIGNhbiBiZSBjb2VyY2VkIHRv IHRoZSB0YXJnZXQgdHlwZSwgc2ltaWxhciB0byB3aGF0IGlzIGRvbmUgaW4KKwkgKiB0cmFuc2Zv cm1UeXBlU2FmZUNhc3QuCiAJICovCiAJZm9yZWFjaChlbGVtZW50LCBuZXdlbGVtcykKIAl7CiAJ CU5vZGUJICAgKmUgPSAoTm9kZSAqKSBsZmlyc3QoZWxlbWVudCk7Ci0JCU5vZGUJICAgKm5ld2U7 CisJCWJvb2wJCWV4cHJfaXNfY29uc3QgPSBmYWxzZTsKKwkJTm9kZQkgICAqbmV3ZSA9IE5VTEw7 CiAKLQkJaWYgKGNvZXJjZV9oYXJkKQorCQlpZiAoY2FuX2NvZXJjZSAhPSBOVUxMICYmIElzQShl LCBDb25zdCkpCisJCQlleHByX2lzX2NvbnN0ID0gdHJ1ZTsKKworCQlpZiAoZXhwcl9pc19jb25z dCkKKwkJeworCQkJLyoKKwkJCSAqIFdlIGhhdmUgdG8gdG8gdXNlIENvZXJjZVVua25vd25Db25z dFNhZmUgcmF0aGVyIHRoYW4KKwkJCSAqIGNvZXJjZV90b190YXJnZXRfdHlwZS4gYmVjYXVzZSBj b2VyY2VfdG9fdGFyZ2V0X3R5cGUgaXMgbm90IGVycm9yCisJCQkgKiBzYWZlLgorCQkJICovCisJ CQlpZiAoKmNhbl9jb2VyY2UgJiYgZXhwclR5cGUoZSkgPT0gVU5LTk9XTk9JRCkKKwkJCXsKKwkJ CQluZXdlID0gQ29lcmNlVW5rbm93bkNvbnN0U2FmZShwc3RhdGUsIGUsIGNvZXJjZV90eXBlLCB0 eXBtb2QsCisJCQkJCQkJCQkJCSAgQ09FUkNJT05fSU1QTElDSVQsCisJCQkJCQkJCQkJCSAgQ09F UkNFX0lNUExJQ0lUX0NBU1QsCisJCQkJCQkJCQkJCSAgLTEsCisJCQkJCQkJCQkJCSAgZmFsc2Up OworCQkJCWlmIChuZXdlID09IE5VTEwpCisJCQkJeworCQkJCQluZXdlID0gZTsKKwkJCQkJKmNh bl9jb2VyY2UgPSBmYWxzZTsKKwkJCQl9CisKKwkJCQluZXdjb2VyY2VkZWxlbXMgPSBsYXBwZW5k KG5ld2NvZXJjZWRlbGVtcywgbmV3ZSk7CisKKwkJCQljb250aW51ZTsKKwkJCX0KKwkJfQorCisJ CWlmIChjYW5fY29lcmNlICE9IE5VTEwgJiYgKCEqY2FuX2NvZXJjZSkpCisJCXsKKwkJCS8qCisJ CQkgKiBDYW4gbm90IGNvZXJjZSwganVzdCBhcHBlbmQgdGhlIHRyYW5zZm9ybWVkIGVsZW1lbnQg ZXhwcmVzc2lvbiB0bworCQkJICogdGhlIGxpc3QuCisJCQkgKi8KKwkJCW5ld2UgPSBlOworCQl9 CisJCWVsc2UgaWYgKGNvZXJjZV9oYXJkKQogCQl7CiAJCQluZXdlID0gY29lcmNlX3RvX3Rhcmdl dF90eXBlKHBzdGF0ZSwgZSwKIAkJCQkJCQkJCQkgZXhwclR5cGUoZSksCkBAIC0yMTUwLDEyICsy MjE3LDc0IEBAIHRyYW5zZm9ybUFycmF5RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIEFfQXJyYXlF eHByICphLAogCQkJCQkJCQkJCSBDT0VSQ0VfRVhQTElDSVRfQ0FTVCwKIAkJCQkJCQkJCQkgLTEp OwogCQkJaWYgKG5ld2UgPT0gTlVMTCkKLQkJCQllcmVwb3J0KEVSUk9SLAotCQkJCQkJKGVycmNv ZGUoRVJSQ09ERV9DQU5OT1RfQ09FUkNFKSwKLQkJCQkJCSBlcnJtc2coImNhbm5vdCBjYXN0IHR5 cGUgJXMgdG8gJXMiLAotCQkJCQkJCQlmb3JtYXRfdHlwZV9iZShleHByVHlwZShlKSksCi0JCQkJ CQkJCWZvcm1hdF90eXBlX2JlKGNvZXJjZV90eXBlKSksCi0JCQkJCQkgcGFyc2VyX2VycnBvc2l0 aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGUpKSkpOworCQkJeworCQkJCWlmIChjYW5fY29lcmNl ID09IE5VTEwpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9D QU5OT1RfQ09FUkNFKSwKKwkJCQkJCQllcnJtc2coImNhbm5vdCBjYXN0IHR5cGUgJXMgdG8gJXMi LAorCQkJCQkJCQkgICBmb3JtYXRfdHlwZV9iZShleHByVHlwZShlKSksCisJCQkJCQkJCSAgIGZv cm1hdF90eXBlX2JlKGNvZXJjZV90eXBlKSksCisJCQkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHBz dGF0ZSwgZXhwckxvY2F0aW9uKGUpKSkpOworCQkJCWVsc2UKKwkJCQl7CisJCQkJCS8qCisJCQkJ CSAqIENhbiBub3QgY29lcmNlLCBqdXN0IGFwcGVuZCB0aGUgdHJhbnNmb3JtZWQgZWxlbWVudAor CQkJCQkgKiBleHByZXNzaW9uIHRvIHRoZSBsaXN0LgorCQkJCQkgKi8KKwkJCQkJbmV3ZSA9IGU7 CisJCQkJCSpjYW5fY29lcmNlID0gZmFsc2U7CisJCQkJfQorCQkJfQorCQkJZWxzZSBpZiAoZXhw cl9pc19jb25zdCkKKwkJCXsKKwkJCQlOb2RlCSAgICpvcmlnZXhwciA9IG5ld2U7CisJCQkJTm9k ZQkgICAqcmVzdWx0OworCQkJCWJvb2wJCWhhdmVfY29sbGF0ZV9leHByID0gZmFsc2U7CisKKwkJ CQlpZiAoSXNBKG5ld2UsIENvbGxhdGVFeHByKSkKKwkJCQkJaGF2ZV9jb2xsYXRlX2V4cHIgPSB0 cnVlOworCisJCQkJd2hpbGUgKG5ld2UgJiYgSXNBKG5ld2UsIENvbGxhdGVFeHByKSkKKwkJCQkJ bmV3ZSA9IChOb2RlICopICgoQ29sbGF0ZUV4cHIgKikgbmV3ZSktPmFyZzsKKworCQkJCWlmICgh SXNBKG5ld2UsIEZ1bmNFeHByKSkKKwkJCQkJbmV3ZSA9IG9yaWdleHByOworCQkJCWVsc2UKKwkJ CQl7CisJCQkJCS8qCisJCQkJCSAqIHByZS1ldmFsdWF0ZSBzaW1wbGUgY29uc3RhbnQgY2FzdCBl eHByZXNzaW9ucyBpbiBhIHdheQorCQkJCQkgKiB0aGF0IHRvbGVyYXRlIGVycm9ycy4KKwkJCQkJ ICovCisJCQkJCUZ1bmNFeHByICpuZXdleHByID0gKEZ1bmNFeHByICopIGNvcHlPYmplY3QobmV3 ZSk7CisKKwkJCQkJYXNzaWduX2V4cHJfY29sbGF0aW9ucyhwc3RhdGUsIChOb2RlICopIG5ld2V4 cHIpOworCisJCQkJCXJlc3VsdCA9IChOb2RlICopIGV2YWx1YXRlX2V4cHJfZXh0ZW5kZWQoKEV4 cHIgKikgbmV3ZXhwciwKKwkJCQkJCQkJCQkJCQkJCSBjb2VyY2VfdHlwZSwKKwkJCQkJCQkJCQkJ CQkJCSB0eXBtb2QsCisJCQkJCQkJCQkJCQkJCQkgY29lcmNlX3R5cGVfY29sbCwKKwkJCQkJCQkJ CQkJCQkJCSB0cnVlKTsKKworCQkJCQlpZiAocmVzdWx0ID09IE5VTEwpCisJCQkJCXsKKwkJCQkJ CW5ld2UgPSBlOworCQkJCQkJKmNhbl9jb2VyY2UgPSBmYWxzZTsKKwkJCQkJfQorCQkJCQllbHNl IGlmIChoYXZlX2NvbGxhdGVfZXhwcikKKwkJCQkJeworCQkJCQkJLyogUmVpbnN0YWxsIHRvcCBD b2xsYXRlRXhwciAqLworCQkJCQkJQ29sbGF0ZUV4cHIgKmNvbGwgPSAoQ29sbGF0ZUV4cHIgKikg b3JpZ2V4cHI7CisJCQkJCQlDb2xsYXRlRXhwciAqbmV3Y29sbCA9IG1ha2VOb2RlKENvbGxhdGVF eHByKTsKKworCQkJCQkJbmV3Y29sbC0+YXJnID0gKEV4cHIgKikgcmVzdWx0OworCQkJCQkJbmV3 Y29sbC0+Y29sbE9pZCA9IGNvbGwtPmNvbGxPaWQ7CisJCQkJCQluZXdjb2xsLT5sb2NhdGlvbiA9 IGNvbGwtPmxvY2F0aW9uOworCQkJCQkJbmV3ZSA9IChOb2RlICopIG5ld2NvbGw7CisJCQkJCX0K KwkJCQkJZWxzZQorCQkJCQkJbmV3ZSA9IHJlc3VsdDsKKwkJCQl9CisJCQl9CiAJCX0KIAkJZWxz ZQogCQkJbmV3ZSA9IGNvZXJjZV90b19jb21tb25fdHlwZShwc3RhdGUsIGUsCkBAIC0yNzQzLDcg KzI4NzIsOCBAQCB0cmFuc2Zvcm1UeXBlQ2FzdChQYXJzZVN0YXRlICpwc3RhdGUsIFR5cGVDYXN0 ICp0YykKIAkJCQkJCQkJCSAgKEFfQXJyYXlFeHByICopIGFyZywKIAkJCQkJCQkJCSAgdGFyZ2V0 QmFzZVR5cGUsCiAJCQkJCQkJCQkgIGVsZW1lbnRUeXBlLAotCQkJCQkJCQkJICB0YXJnZXRCYXNl VHlwbW9kKTsKKwkJCQkJCQkJCSAgdGFyZ2V0QmFzZVR5cG1vZCwKKwkJCQkJCQkJCSAgTlVMTCk7 CiAJCX0KIAkJZWxzZQogCQkJZXhwciA9IHRyYW5zZm9ybUV4cHJSZWN1cnNlKHBzdGF0ZSwgYXJn KTsKQEAgLTI3ODAsNiArMjkxMCwyNjMgQEAgdHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAq cHN0YXRlLCBUeXBlQ2FzdCAqdGMpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyoKKyAqIEhhbmRs ZSBhbiBleHBsaWNpdCBDQVNUKC4uLiBERUZBVUxUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SKSBj b25zdHJ1Y3QuCisgKgorICogVHJhbnNmb3JtIFNhZmVUeXBlQ2FzdCBub2RlLCBsb29rIHVwIHRo ZSB0eXBlIG5hbWUsIGFuZCBhcHBseSBhbnkgbmVjZXNzYXJ5CisgKiBjb2VyY2lvbiBmdW5jdGlv bihzKS4KKyAqLworc3RhdGljIE5vZGUgKgordHJhbnNmb3JtVHlwZVNhZmVDYXN0KFBhcnNlU3Rh dGUgKnBzdGF0ZSwgU2FmZVR5cGVDYXN0ICp0YykKK3sKKwlTYWZlVHlwZUNhc3RFeHByICAgKnJl c3VsdDsKKwlUeXBlQ2FzdCAgICp0Y2FzdCA9IChUeXBlQ2FzdCAqKSB0Yy0+Y2FzdDsKKwlOb2Rl CSAgICpzb3VyY2VfZXhwcjsKKwlOb2RlCSAgICpkZWZfZXhwcjsKKwlOb2RlCSAgICpjYXN0X2V4 cHIgPSBOVUxMOworCU9pZAkJCWlucHV0VHlwZTsKKwlPaWQJCQl0YXJnZXRUeXBlOworCU9pZAkJ CXRhcmdldEJhc2VUeXBlOworCU9pZAkJCXR5cGVDb2xsOworCWludDMyCQl0YXJnZXRUeXBtb2Q7 CisJaW50MzIJCXRhcmdldEJhc2VUeXBtb2Q7CisJYm9vbAkJY2FuX2NvZXJjZSA9IHRydWU7CisJ Ym9vbAkJZXhwcl9pc19jb25zdCA9IGZhbHNlOworCVBhcnNlTG9jCWxvY2F0aW9uOworCisJLyog TG9vayB1cCB0aGUgdHlwZSBuYW1lIGZpcnN0ICovCisJdHlwZW5hbWVUeXBlSWRBbmRNb2QocHN0 YXRlLCB0Y2FzdC0+dHlwZU5hbWUsICZ0YXJnZXRUeXBlLCAmdGFyZ2V0VHlwbW9kKTsKKwl0YXJn ZXRCYXNlVHlwbW9kID0gdGFyZ2V0VHlwbW9kOworCisJdHlwZUNvbGwgPSBnZXRfdHlwY29sbGF0 aW9uKHRhcmdldFR5cGUpOworCisJdGFyZ2V0QmFzZVR5cGUgPSBnZXRCYXNlVHlwZUFuZFR5cG1v ZCh0YXJnZXRUeXBlLCAmdGFyZ2V0QmFzZVR5cG1vZCk7CisKKwkvKiBub3cgbG9va2luZyBhdCBE RUZBVUxUIGV4cHJlc3Npb24gKi8KKwlkZWZfZXhwciA9IHRyYW5zZm9ybUV4cHIocHN0YXRlLCB0 Yy0+cmF3X2RlZmF1bHQsIEVYUFJfS0lORF9DQVNUX0RFRkFVTFQpOworCisJZGVmX2V4cHIgPSBj b2VyY2VfdG9fdGFyZ2V0X3R5cGUocHN0YXRlLCBkZWZfZXhwciwgZXhwclR5cGUoZGVmX2V4cHIp LAorCQkJCQkJCQkJIHRhcmdldFR5cGUsIHRhcmdldFR5cG1vZCwKKwkJCQkJCQkJCSBDT0VSQ0lP Tl9FWFBMSUNJVCwKKwkJCQkJCQkJCSBDT0VSQ0VfRVhQTElDSVRfQ0FTVCwKKwkJCQkJCQkJCSBl eHByTG9jYXRpb24oZGVmX2V4cHIpKTsKKwlpZiAoZGVmX2V4cHIgPT0gTlVMTCkKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfQ0FOTk9UX0NPRVJDRSksCisJCQkJZXJybXNn KCJjYW5ub3QgY29lcmNlICVzIGV4cHJlc3Npb24gdG8gdHlwZSAlcyIsCisJCQkJCSAgICJDQVNU IERFRkFVTFQiLAorCQkJCQkgICBmb3JtYXRfdHlwZV9iZSh0YXJnZXRUeXBlKSksCisJCQkJcGFy c2VyX2NvZXJjaW9uX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKHRjLT5yYXdfZGVm YXVsdCksIGRlZl9leHByKSk7CisKKwlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgZGVm X2V4cHIpOworCisJLyoKKwkgKiBUaGUgY29sbGF0aW9uIG9mIERFRkFVTFQgZXhwcmVzc2lvbiBt dXN0IG1hdGNoIHRoZSBjb2xsYXRpb24gb2YgdGhlCisJICogdGFyZ2V0IHR5cGUuCisJICovCisJ aWYgKE9pZElzVmFsaWQodHlwZUNvbGwpKQorCXsKKwkJT2lkCQkJZGVmQ29sbDsKKworCQlkZWZD b2xsID0gZXhwckNvbGxhdGlvbihkZWZfZXhwcik7CisKKwkJaWYgKE9pZElzVmFsaWQoZGVmQ29s bCkgJiYgdHlwZUNvbGwgIT0gZGVmQ29sbCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNv ZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJCWVycm1zZygidGhlIGNvbGxhdGlv biBvZiBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbiBjb25mbGljdHMgd2l0aCB0YXJnZXQgdHlwZSBj b2xsYXRpb24iKSwKKwkJCQkJZXJyZGV0YWlsKCJcIiVzXCIgdmVyc3VzIFwiJXNcIiIsCisJCQkJ CQkJICBnZXRfY29sbGF0aW9uX25hbWUodHlwZUNvbGwpLAorCQkJCQkJCSAgZ2V0X2NvbGxhdGlv bl9uYW1lKGRlZkNvbGwpKSwKKwkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxv Y2F0aW9uKGRlZl9leHByKSkpOworCX0KKworCS8qCisJICogSWYgdGhlIHR5cGUgY2FzdCB0YXJn ZXQgdHlwZSBpcyBhbiBhcnJheSB0eXBlLCB3ZSBpbnZva2UKKwkgKiB0cmFuc2Zvcm1BcnJheUV4 cHIoKSBkaXJlY3RseSBzbyB0aGF0IHdlIGNhbiBwYXNzIGRvd24gdGhlIHR5cGUKKwkgKiBpbmZv cm1hdGlvbi4gIFRoaXMgYXZvaWRzIHNvbWUgY2FzZXMgd2hlcmUgdHJhbnNmb3JtQXJyYXlFeHBy KCkgbWlnaHQgbm90CisJICogaW5mZXIgdGhlIGNvcnJlY3QgdHlwZS4gIE90aGVyd2lzZSwganVz dCB0cmFuc2Zvcm0gdGhlIGFyZ3VtZW50IG5vcm1hbGx5LgorCSAqLworCWlmIChJc0EodGNhc3Qt PmFyZywgQV9BcnJheUV4cHIpKQorCXsKKwkJT2lkCQkJZWxlbWVudFR5cGU7CisKKwkJLyoKKwkJ ICogSWYgdGFyZ2V0IGlzIGEgZG9tYWluIG92ZXIgYXJyYXksIHdvcmsgd2l0aCB0aGUgYmFzZSBh cnJheSB0eXBlCisJCSAqIGhlcmUuICBCZWxvdywgd2UnbGwgY2FzdCB0aGUgYXJyYXkgdHlwZSB0 byB0aGUgZG9tYWluLiAgSW4gdGhlCisJCSAqIHVzdWFsIGNhc2UgdGhhdCB0aGUgdGFyZ2V0IGlz IG5vdCBhIGRvbWFpbiwgdGhlIHJlbWFpbmluZyBzdGVwcworCQkgKiB3aWxsIGJlIGEgbm8tb3Au CisJCSAqLworCQllbGVtZW50VHlwZSA9IGdldF9lbGVtZW50X3R5cGUodGFyZ2V0QmFzZVR5cGUp OworCisJCWlmIChPaWRJc1ZhbGlkKGVsZW1lbnRUeXBlKSkKKwkJeworCQkJc291cmNlX2V4cHIg PSB0cmFuc2Zvcm1BcnJheUV4cHIocHN0YXRlLAorCQkJCQkJCQkJCQkgKEFfQXJyYXlFeHByICop IHRjYXN0LT5hcmcsCisJCQkJCQkJCQkJCSB0YXJnZXRCYXNlVHlwZSwKKwkJCQkJCQkJCQkJIGVs ZW1lbnRUeXBlLAorCQkJCQkJCQkJCQkgdGFyZ2V0QmFzZVR5cG1vZCwKKwkJCQkJCQkJCQkJICZj YW5fY29lcmNlKTsKKwkJfQorCQllbHNlCisJCQlzb3VyY2VfZXhwciA9IHRyYW5zZm9ybUV4cHJS ZWN1cnNlKHBzdGF0ZSwgdGNhc3QtPmFyZyk7CisJfQorCWVsc2UKKwkJc291cmNlX2V4cHIgPSB0 cmFuc2Zvcm1FeHByUmVjdXJzZShwc3RhdGUsIHRjYXN0LT5hcmcpOworCisJaW5wdXRUeXBlID0g ZXhwclR5cGUoc291cmNlX2V4cHIpOworCWlmIChpbnB1dFR5cGUgPT0gSW52YWxpZE9pZCkKKwkJ cmV0dXJuIChOb2RlICopIE5VTEw7CQkJLyogcmV0dXJuIE5VTEwgaWYgTlVMTCBpbnB1dCAqLwor CisJLyogTG9jYXRpb24gb2YgdGhlIGNvZXJjaW9uIGlzIHRoZSBsb2NhdGlvbiBvZiBDQVNUIHN5 bWJvbC4gKi8KKwlsb2NhdGlvbiA9IHRjYXN0LT5sb2NhdGlvbjsKKworCWlmIChjYW5fY29lcmNl ICYmIElzQShzb3VyY2VfZXhwciwgQ29uc3QpKQorCXsKKwkJZXhwcl9pc19jb25zdCA9IHRydWU7 CisKKwkJLyogY29lcmNlIFVOS05PV04gQ29uc3QgdG8gdGhlIHRhcmdldCB0eXBlICovCisJCWlm IChleHByVHlwZShzb3VyY2VfZXhwcikgPT0gVU5LTk9XTk9JRCkKKwkJeworCQkJY2FzdF9leHBy ID0gQ29lcmNlVW5rbm93bkNvbnN0U2FmZShwc3RhdGUsIHNvdXJjZV9leHByLAorCQkJCQkJCQkJ CQkgICB0YXJnZXRUeXBlLCB0YXJnZXRUeXBtb2QsCisJCQkJCQkJCQkJCSAgIENPRVJDSU9OX0VY UExJQ0lULAorCQkJCQkJCQkJCQkgICBDT0VSQ0VfRVhQTElDSVRfQ0FTVCwKKwkJCQkJCQkJCQkJ ICAgbG9jYXRpb24sIGZhbHNlKTsKKwkJCWlmIChjYXN0X2V4cHIgPT0gTlVMTCkKKwkJCQljYW5f Y29lcmNlID0gZmFsc2U7CisJCX0KKwl9CisKKwlpZiAoY2FuX2NvZXJjZSAmJiBjYXN0X2V4cHIg PT0gTlVMTCkKKwl7CisJCWNhc3RfZXhwciA9IGNvZXJjZV90b190YXJnZXRfdHlwZShwc3RhdGUs IHNvdXJjZV9leHByLCBpbnB1dFR5cGUsCisJCQkJCQkJCQkJICB0YXJnZXRUeXBlLCB0YXJnZXRU eXBtb2QsCisJCQkJCQkJCQkJICBDT0VSQ0lPTl9FWFBMSUNJVCwKKwkJCQkJCQkJCQkgIENPRVJD RV9FWFBMSUNJVF9DQVNULAorCQkJCQkJCQkJCSAgbG9jYXRpb24pOworCQlpZiAoY2FzdF9leHBy ID09IE5VTEwpCisJCQljYW5fY29lcmNlID0gZmFsc2U7CisJfQorCisJaWYgKGNhbl9jb2VyY2Up CisJeworCQlOb2RlCSpvcmlnZXhwciA9IGNhc3RfZXhwcjsKKwkJYm9vbAloYXZlX2NvbGxhdGVf ZXhwciA9IGZhbHNlOworCisJCUFzc2VydChjYXN0X2V4cHIgIT0gTlVMTCk7CisKKwkJaWYgKElz QShjYXN0X2V4cHIsIENvbGxhdGVFeHByKSkKKwkJCWhhdmVfY29sbGF0ZV9leHByID0gdHJ1ZTsK KworCQl3aGlsZSAoY2FzdF9leHByICYmIElzQShjYXN0X2V4cHIsIENvbGxhdGVFeHByKSkKKwkJ CWNhc3RfZXhwciA9IChOb2RlICopICgoQ29sbGF0ZUV4cHIgKikgY2FzdF9leHByKS0+YXJnOwor CisJCWlmIChJc0EoY2FzdF9leHByLCBGdW5jRXhwcikpCisJCXsKKwkJCUhlYXBUdXBsZQl0dXBs ZTsKKwkJCUxpc3RDZWxsICAgKmxjOworCQkJTm9kZQkgICAqc2V4cHI7CisJCQlOb2RlCSAgICpy ZXN1bHQ7CisJCQlGdW5jRXhwciAgICpmZXhwciA9IChGdW5jRXhwciAqKSBjYXN0X2V4cHI7CisK KwkJCWxjID0gbGlzdF9oZWFkKGZleHByLT5hcmdzKTsKKwkJCXNleHByID0gKE5vZGUgKikgbGZp cnN0KGxjKTsKKworCQkJLyogTG9vayBpbiBwZ19jYXN0ICovCisJCQl0dXBsZSA9IFNlYXJjaFN5 c0NhY2hlMihDQVNUU09VUkNFVEFSR0VULAorCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShleHBy VHlwZShzZXhwcikpLAorCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bSh0YXJnZXRUeXBlKSk7CisK KwkJCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlKSkKKwkJCXsKKwkJCQlGb3JtX3BnX2Nhc3Qg Y2FzdEZvcm0gPSAoRm9ybV9wZ19jYXN0KSBHRVRTVFJVQ1QodHVwbGUpOworCQkJCWlmICghY2Fz dEZvcm0tPmNhc3RlcnJvcnNhZmUpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkJZXJybXNnKCJjYW5ub3Qg Y2FzdCB0eXBlICVzIHRvICVzIHdoZW4gJXMgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gJXMi LAorCQkJCQkJCQkgICBmb3JtYXRfdHlwZV9iZShpbnB1dFR5cGUpLAorCQkJCQkJCQkgICBmb3Jt YXRfdHlwZV9iZSh0YXJnZXRUeXBlKSwKKwkJCQkJCQkJICAgIkRFRkFVTFQiLAorCQkJCQkJCQkg ICAiQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUiIpLAorCQkJCQkJCWVycmhpbnQoIkV4cGxp Y2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBpcyBub3QgZGVjbGFyZWQgYXMgc2Fm ZSIpLAorCQkJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihzb3Vy Y2VfZXhwcikpKTsKKwkJCX0KKwkJCWVsc2UKKwkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3Vw IGZhaWxlZCBmb3IgcGdfY2FzdCBlbnRyeSAoJXMgY2FzdCB0byAlcykiLAorCQkJCQkJCWZvcm1h dF90eXBlX2JlKGlucHV0VHlwZSksCisJCQkJCQkJZm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlwZSkp OworCQkJUmVsZWFzZVN5c0NhY2hlKHR1cGxlKTsKKworCQkJaWYgKCFleHByX2lzX2NvbnN0KQor CQkJCWNhc3RfZXhwciA9IG9yaWdleHByOworCQkJZWxzZQorCQkJeworCQkJCS8qCisJCQkJICog cHJlLWV2YWx1YXRlIHNpbXBsZSBjb25zdGFudCBjYXN0IGV4cHJlc3Npb25zIGluIGEgd2F5IHRo YXQKKwkJCQkgKiB0b2xlcmF0ZSBlcnJvcnMuCisJCQkJICoKKwkJCQkgKiBSYXRpb25hbGU6CisJ CQkJICogMS4gV2hlbiBkZXBhcnNpbmcgc2FmZSBjYXN0IGV4cHJlc3Npb25zIChvciBpbiBvdGhl ciBjYXNlcyksCisJCQkJICogICAgZXZhbF9jb25zdF9leHByZXNzaW9ucyBtaWdodCBiZSBpbnZv a2VkLCBidXQgaXQgY2Fubm90CisJCQkJICogICAgaGFuZGxlIGVycm9ycyBncmFjZWZ1bGx5Lgor CQkJCSAqIDIuIElmIHRoZSBjYXN0IGV4cHJlc3Npb24gaW52b2x2ZXMgb25seSBzaW1wbGUgY29u c3RhbnRzLCB3ZQorCQkJCSAqICAgIGNhbiBzYWZlbHkgZXZhbHVhdGUgaXQgYWhlYWQgb2YgdGlt ZS4gSWYgdGhlIGV2YWx1YXRpb24KKwkJCQkgKiAgICBmYWlscywgaXQgaW5kaWNhdGVzIHRoYXQg c3VjaCBhIGNhc3QgaXMgbm90IHBvc3NpYmxlLCBhbmQKKwkJCQkgKiAgICB3ZSBjYW4gdGhlbiBm YWxsIGJhY2sgdG8gdGhlIENBU1QgREVGQVVMVCBleHByZXNzaW9uLgorCQkJCSAqIDMuIEV2ZW4g aWYgRnVuY0V4cHIgKGZvciBjYXN0ZnVuYykgbm9kZSBoYXMgdGhyZWUgYXJndW1lbnRzLAorCQkJ CSAqICAgIHRoZSBzZWNvbmQgYW5kIHRoaXJkIGFyZ3VtZW50cyB3aWxsIGFsc28gYmUgY29uc3Rh bnRzIHBlcgorCQkJCSAqICAgIGNvZXJjZV90b190YXJnZXRfdHlwZS4gRXZhbHVhdGluZyBhIEZ1 bmNFeHByIHdob3NlCisJCQkJICogICAgYXJndW1lbnRzIGFyZSBhbGwgQ29uc3QgaXMgc2FmZS4K KwkJCQkgKi8KKwkJCQlGdW5jRXhwciAqbmV3ZXhwciA9IChGdW5jRXhwciAqKSBjb3B5T2JqZWN0 KGNhc3RfZXhwcik7CisKKwkJCQlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgKE5vZGUg KikgbmV3ZXhwcik7CisKKwkJCQlyZXN1bHQgPSAoTm9kZSAqKSBldmFsdWF0ZV9leHByX2V4dGVu ZGVkKChFeHByICopIG5ld2V4cHIsCisJCQkJCQkJCQkJCQkJCSB0YXJnZXRUeXBlLAorCQkJCQkJ CQkJCQkJCQkgdGFyZ2V0VHlwbW9kLAorCQkJCQkJCQkJCQkJCQkgdHlwZUNvbGwsCisJCQkJCQkJ CQkJCQkJCSB0cnVlKTsKKwkJCQlpZiAocmVzdWx0ID09IE5VTEwpCisJCQkJeworCQkJCQkvKiBj YW4gbm90IGNvZXJjZSwgc2V0IGNhbl9jb2VyY2UgdG8gZmFsc2UgKi8KKwkJCQkJY2FuX2NvZXJj ZSA9IGZhbHNlOworCQkJCQljYXN0X2V4cHIgPSBOVUxMOworCQkJCX0KKwkJCQllbHNlIGlmICho YXZlX2NvbGxhdGVfZXhwcikKKwkJCQl7CisJCQkJCS8qIFJlaW5zdGFsbCB0b3AgQ29sbGF0ZUV4 cHIgKi8KKwkJCQkJQ29sbGF0ZUV4cHIgKmNvbGwgPSAoQ29sbGF0ZUV4cHIgKikgb3JpZ2V4cHI7 CisJCQkJCUNvbGxhdGVFeHByICpuZXdjb2xsID0gbWFrZU5vZGUoQ29sbGF0ZUV4cHIpOworCisJ CQkJCW5ld2NvbGwtPmFyZyA9IChFeHByICopIHJlc3VsdDsKKwkJCQkJbmV3Y29sbC0+Y29sbE9p ZCA9IGNvbGwtPmNvbGxPaWQ7CisJCQkJCW5ld2NvbGwtPmxvY2F0aW9uID0gY29sbC0+bG9jYXRp b247CisJCQkJCWNhc3RfZXhwciA9IChOb2RlICopIG5ld2NvbGw7CisJCQkJfQorCQkJCWVsc2UK KwkJCQkJY2FzdF9leHByID0gcmVzdWx0OworCQkJfQorCQl9CisJCWVsc2UKKwkJCS8qIE5vdGhp bmcgdG8gZG8sIHJlc3RvcmUgY2FzdF9leHByIHRvIGl0cyBvcmlnaW5hbCB2YWx1ZSAqLworCQkJ Y2FzdF9leHByID0gb3JpZ2V4cHI7CisJfQorCisJQXNzZXJ0KGNhbl9jb2VyY2UgfHwgY2FzdF9l eHByID09IE5VTEwpOworCisJcmVzdWx0ID0gbWFrZU5vZGUoU2FmZVR5cGVDYXN0RXhwcik7CisJ cmVzdWx0LT5zb3VyY2VfZXhwciA9IHNvdXJjZV9leHByOworCXJlc3VsdC0+Y2FzdF9leHByID0g Y2FzdF9leHByOworCXJlc3VsdC0+ZGVmYXVsdF9leHByID0gZGVmX2V4cHI7CisJcmVzdWx0LT5y ZXN1bHR0eXBlID0gdGFyZ2V0VHlwZTsKKwlyZXN1bHQtPnJlc3VsdHR5cG1vZCA9IHRhcmdldFR5 cG1vZDsKKwlyZXN1bHQtPnJlc3VsdGNvbGxpZCA9IHR5cGVDb2xsOworCXJlc3VsdC0+bG9jYXRp b24gPSBsb2NhdGlvbjsKKworCXJldHVybiAoTm9kZSAqKSByZXN1bHQ7Cit9CisKIC8qCiAgKiBI YW5kbGUgYW4gZXhwbGljaXQgQ09MTEFURSBjbGF1c2UuCiAgKgpAQCAtMzE5Myw2ICszNTgwLDgg QEAgUGFyc2VFeHByS2luZE5hbWUoUGFyc2VFeHByS2luZCBleHByS2luZCkKIAkJY2FzZSBFWFBS X0tJTkRfQ0hFQ0tfQ09OU1RSQUlOVDoKIAkJY2FzZSBFWFBSX0tJTkRfRE9NQUlOX0NIRUNLOgog CQkJcmV0dXJuICJDSEVDSyI7CisJCWNhc2UgRVhQUl9LSU5EX0NBU1RfREVGQVVMVDoKKwkJCXJl dHVybiAiQ0FTVCBERUZBVUxUIjsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CiAJ CWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CiAJCQlyZXR1cm4gIkRFRkFVTFQiOwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyBiL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9mdW5jLmMKaW5kZXggNzc4ZDY5YzZmM2MuLmE5MDcwNWI5ODQ3IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCisrKyBiL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9mdW5jLmMKQEAgLTI3NDMsNiArMjc0Myw5IEBAIGNoZWNrX3NyZl9jYWxs X3BsYWNlbWVudChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmxhc3Rfc3JmLCBpbnQgbG9jYXRp b24pCiAJCWNhc2UgRVhQUl9LSU5EX0RPTUFJTl9DSEVDSzoKIAkJCWVyciA9IF8oInNldC1yZXR1 cm5pbmcgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBjaGVjayBjb25zdHJhaW50cyIpOwog CQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX0NBU1RfREVGQVVMVDoKKwkJCWVyciA9IF8oInNl dC1yZXR1cm5pbmcgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBDQVNUIERFRkFVTFQgZXhw cmVzc2lvbnMiKTsKKwkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoK IAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKIAkJCWVyciA9IF8oInNldC1yZXR1 cm5pbmcgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBERUZBVUxUIGV4cHJlc3Npb25zIik7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKaW5kZXggOTA1Yzk3NWQ4M2IuLmRjMDNjZjRjZTc0 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKKysrIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCkBAIC0xODIyLDYgKzE4MjIsMjAgQEAgRmln dXJlQ29sbmFtZUludGVybmFsKE5vZGUgKm5vZGUsIGNoYXIgKipuYW1lKQogCQkJCX0KIAkJCX0K IAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0OgorCQkJc3RyZW5ndGggPSBGaWd1cmVD b2xuYW1lSW50ZXJuYWwoKChTYWZlVHlwZUNhc3QgKikgbm9kZSktPmNhc3QsCisJCQkJCQkJCQkJ CSBuYW1lKTsKKwkJCWlmIChzdHJlbmd0aCA8PSAxKQorCQkJeworCQkJCVR5cGVDYXN0IAkqbm9k ZV9jYXN0OworCQkJCW5vZGVfY2FzdCA9IChUeXBlQ2FzdCAqKSgoU2FmZVR5cGVDYXN0ICopIG5v ZGUpLT5jYXN0OworCQkJCWlmIChub2RlX2Nhc3QtPnR5cGVOYW1lICE9IE5VTEwpCisJCQkJewor CQkJCQkqbmFtZSA9IHN0clZhbChsbGFzdChub2RlX2Nhc3QtPnR5cGVOYW1lLT5uYW1lcykpOwor CQkJCQlyZXR1cm4gMTsKKwkJCQl9CisJCQl9CisJCQlicmVhazsKIAkJY2FzZSBUX0NvbGxhdGVD bGF1c2U6CiAJCQlyZXR1cm4gRmlndXJlQ29sbmFtZUludGVybmFsKCgoQ29sbGF0ZUNsYXVzZSAq KSBub2RlKS0+YXJnLCBuYW1lKTsKIAkJY2FzZSBUX0dyb3VwaW5nRnVuYzoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMgYi9zcmMvYmFja2VuZC91dGlscy9h ZHQvYXJyYXlmdW5jcy5jCmluZGV4IGE0NjQzNDllZTMzLi5jMWE3MDMxYTk2YyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvYXJyYXlmdW5jcy5jCkBAIC0zMjg5LDYgKzMyODksMTQgQEAgYXJyYXlfbWFwKERh dHVtIGFycmF5ZCwKIAkJLyogQXBwbHkgdGhlIGdpdmVuIGV4cHJlc3Npb24gdG8gc291cmNlIGVs ZW1lbnQgKi8KIAkJdmFsdWVzW2ldID0gRXhlY0V2YWxFeHByKGV4cHJzdGF0ZSwgZWNvbnRleHQs ICZudWxsc1tpXSk7CiAKKwkJLyogRXhpdCBlYXJseSBpZiB0aGUgZXZhbHVhdGlvbiBmYWlscyAq LworCQlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChleHByc3RhdGUtPmVzY29udGV4dCkpCisJCXsK KwkJCXBmcmVlKHZhbHVlcyk7CisJCQlwZnJlZShudWxscyk7CisJCQlyZXR1cm4gKERhdHVtKSAw OworCQl9CisKIAkJaWYgKG51bGxzW2ldKQogCQkJaGFzbnVsbHMgPSB0cnVlOwogCQllbHNlCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKaW5kZXggNTU2YWIwNTdlNWEuLjI0ODIwYTczOWYzIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCkBAIC0xMDU2Miw2ICsxMDU2MiwyNyBAQCBnZXRf cnVsZV9leHByKE5vZGUgKm5vZGUsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCwKIAkJCX0KIAkJ CWJyZWFrOwogCisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJeworCQkJCVNhZmVUeXBl Q2FzdEV4cHIgICAqc3RjZXhwciA9IGNhc3ROb2RlKFNhZmVUeXBlQ2FzdEV4cHIsIG5vZGUpOwor CisJCQkJLyoKKwkJCQkgKiBIZXJlLCB3ZSBjYW5ub3QgZGVwYXJzaW5nIGNhc3RfZXhwciBkaXJl Y3RseSwgc2luY2UKKwkJCQkgKiB0cmFuc2Zvcm1UeXBlU2FmZUNhc3QgbWF5IGhhdmUgZm9sZGVk IGl0IGludG8gYSBzaW1wbGUKKwkJCQkgKiBjb25zdGFudCBvciBOVUxMLiBJbnN0ZWFkLCB3ZSB1 c2Ugc291cmNlX2V4cHIgYW5kCisJCQkJICogZGVmYXVsdF9leHByIHRvIHJlY29uc3RydWN0IHRo ZSBDQVNUIERFRkFVTFQgY2xhdXNlLgorCQkJCSAqLworCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJp bmcoYnVmLCAiQ0FTVCgiKTsKKwkJCQlnZXRfcnVsZV9leHByKHN0Y2V4cHItPnNvdXJjZV9leHBy LCBjb250ZXh0LCBzaG93aW1wbGljaXQpOworCisJCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIg QVMgJXMgIiwKKwkJCQkJCQkJIGZvcm1hdF90eXBlX3dpdGhfdHlwZW1vZChzdGNleHByLT5yZXN1 bHR0eXBlLAorCQkJCQkJCQkJCQkJCQkgIHN0Y2V4cHItPnJlc3VsdHR5cG1vZCkpOworCQkJCWFw cGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiREVGQVVMVCAiKTsKKwkJCQlnZXRfcnVsZV9leHBy KHN0Y2V4cHItPmRlZmF1bHRfZXhwciwgY29udGV4dCwgc2hvd2ltcGxpY2l0KTsKKwkJCQlhcHBl bmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIiBPTiBDT05WRVJTSU9OIEVSUk9SKSIpOworCQkJfQor CQkJYnJlYWs7CiAJCWNhc2UgVF9Kc29uRXhwcjoKIAkJCXsKIAkJCQlKc29uRXhwciAgICpqZXhw ciA9IChKc29uRXhwciAqKSBub2RlOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19jYXN0LmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQKaW5kZXggZmJmZDY2 OTU4N2YuLmNhNTJjZmNkMDg2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nh c3QuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQKQEAgLTE5LDY1ICsx OSw2NSBAQAogIyBpbnQyLT5pbnQ0LT5pbnQ4LT5udW1lcmljLT5mbG9hdDQtPmZsb2F0OCwgd2hp bGUgY2FzdHMgaW4gdGhlCiAjIHJldmVyc2UgZGlyZWN0aW9uIGFyZSBhc3NpZ25tZW50LW9ubHku CiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMg PT4gJ2ludDIoaW50OCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAnaW50 NCcsIGNhc3RmdW5jID0+ICdpbnQ0KGludDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0 YXJnZXQgPT4gJ2Zsb2F0NCcsIGNhc3RmdW5jID0+ICdmbG9hdDQoaW50OCknLAotICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAnZmxvYXQ4JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0OChp bnQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywgY2Fz dGZ1bmMgPT4gJ251bWVyaWMoaW50OCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdl dCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50 MicsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDQnLCBjYXN0ZnVuYyA9PiAnZmxv YXQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0OCcs IGNhc3RmdW5jID0+ICdmbG9hdDgoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRh cmdldCA9PiAnbnVtZXJpYycsIGNhc3RmdW5jID0+ICdudW1lcmljKGludDIpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChpbnQ0 KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMg PT4gJ2ludDIoaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnZmxv YXQ0JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0NChpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBj YXN0dGFyZ2V0ID0+ICdmbG9hdDgnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ4KGludDQpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ251bWVyaWMnLCBjYXN0ZnVuYyA9PiAnbnVt ZXJpYyhpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0NCcsIGNhc3R0YXJnZXQgPT4gJ2ludDgn LCBjYXN0ZnVuYyA9PiAnaW50OChmbG9hdDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ0JywgY2Fz dHRhcmdldCA9PiAnaW50MicsIGNhc3RmdW5jID0+ICdpbnQyKGZsb2F0NCknLAotICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdmbG9hdDQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoZmxv YXQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0NCcsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0OCcsIGNh c3RmdW5jID0+ICdmbG9hdDgoZmxvYXQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywg IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0NCcsIGNhc3R0 YXJnZXQgPT4gJ251bWVyaWMnLAotICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhmbG9hdDQpJywgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnbnVt ZXJpYyhmbG9hdDQpJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0OCcsIGNhc3R0YXJn ZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChmbG9hdDgpJywKLSAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn ZmxvYXQ4JywgY2FzdHRhcmdldCA9PiAnaW50MicsIGNhc3RmdW5jID0+ICdpbnQyKGZsb2F0OCkn LAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdmbG9hdDgnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMg PT4gJ2ludDQoZmxvYXQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0OCcsIGNhc3R0YXJnZXQgPT4g J2Zsb2F0NCcsIGNhc3RmdW5jID0+ICdmbG9hdDQoZmxvYXQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zs b2F0OCcsIGNhc3R0YXJnZXQgPT4gJ251bWVyaWMnLAotICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhm bG9hdDgpJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 ZnVuYyA9PiAnbnVtZXJpYyhmbG9hdDgpJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVy aWMnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgobnVtZXJpYyknLAot ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdudW1lcmljJywgY2FzdHRhcmdldCA9PiAnaW50MicsIGNhc3RmdW5jID0+ ICdpbnQyKG51bWVyaWMpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJnZXQgPT4g J2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChudW1lcmljKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVy aWMnLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDQnLAotICBjYXN0ZnVuYyA9PiAnZmxvYXQ0KG51bWVy aWMpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVu YyA9PiAnZmxvYXQ0KG51bWVyaWMpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMn LCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDgnLAotICBjYXN0ZnVuYyA9PiAnZmxvYXQ4KG51bWVyaWMp JywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9 PiAnZmxvYXQ4KG51bWVyaWMpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ21vbmV5JywgY2Fz dHRhcmdldCA9PiAnbnVtZXJpYycsIGNhc3RmdW5jID0+ICdudW1lcmljKG1vbmV5KScsCiAgIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKIHsgY2FzdHNvdXJjZSA9PiAn bnVtZXJpYycsIGNhc3R0YXJnZXQgPT4gJ21vbmV5JywgY2FzdGZ1bmMgPT4gJ21vbmV5KG51bWVy aWMpJywKQEAgLTg5LDEzICs4OSwxMyBAQAogCiAjIEFsbG93IGV4cGxpY2l0IGNvZXJjaW9ucyBi ZXR3ZWVuIGludDQgYW5kIGJvb2wKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQg PT4gJ2Jvb2wnLCBjYXN0ZnVuYyA9PiAnYm9vbChpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdl JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jvb2wn LCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoYm9vbCknLAotICBjYXN0 Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdl JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIEFsbG93 IGV4cGxpY2l0IGNvZXJjaW9ucyBiZXR3ZWVuIHhpZDggYW5kIHhpZAogeyBjYXN0c291cmNlID0+ ICd4aWQ4JywgY2FzdHRhcmdldCA9PiAneGlkJywgY2FzdGZ1bmMgPT4gJ3hpZCh4aWQ4KScsCi0g IGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMg T0lEIGNhdGVnb3J5OiBhbGxvdyBpbXBsaWNpdCBjb252ZXJzaW9uIGZyb20gYW55IGludGVncmFs IHR5cGUgKGluY2x1ZGluZwogIyBpbnQ4LCB0byBzdXBwb3J0IE9JRCBsaXRlcmFscyA+IDJHKSB0 byBPSUQsIGFzIHdlbGwgYXMgYXNzaWdubWVudCBjb2VyY2lvbgpAQCAtMTA2LDEzICsxMDYsMTMg QEAKICMgY2FzdHMgZnJvbSB0ZXh0IGFuZCB2YXJjaGFyIHRvIHJlZ2NsYXNzLCB3aGljaCBleGlz dCBtYWlubHkgdG8gc3VwcG9ydAogIyBsZWdhY3kgZm9ybXMgb2YgbmV4dHZhbCgpIGFuZCByZWxh dGVkIGZ1bmN0aW9ucy4KIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ29p ZCcsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9 PiAnb2lkJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0Jywg Y2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJn ZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lk JywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0 dGFyZ2V0ID0+ICdyZWdwcm9jJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMTIwLDEzICsxMjAsMTMg QEAKIHsgY2FzdHNvdXJjZSA9PiAncmVncHJvYycsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3Rm dW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAog eyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVncHJvYycsIGNhc3RmdW5j ID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVncHJvYycs IGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJn ZXQgPT4gJ3JlZ3Byb2MnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVncHJvYycsIGNhc3R0YXJn ZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVn cHJvYycsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVncHJv YycsIGNhc3R0YXJnZXQgPT4gJ3JlZ3Byb2NlZHVyZScsIGNhc3RmdW5jID0+ICcwJywKQEAgLTEz OCwxMyArMTM4LDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3Byb2NlZHVyZScsIGNhc3R0YXJn ZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAn cmVncHJvY2VkdXJlJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBj YXN0dGFyZ2V0ID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0g IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0ZnVu YyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsg Y2FzdHNvdXJjZSA9PiAncmVncHJvY2VkdXJlJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3Rm dW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0dGFy Z2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4g J3JlZ29wZXInLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0xNTIsMTMgKzE1MiwxMyBAQAogeyBjYXN0 c291cmNlID0+ICdyZWdvcGVyJywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAn LAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyJywgY2FzdGZ1bmMgPT4gJ29pZCcs Ci0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyJywgY2FzdGZ1bmMg PT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVn b3BlcicsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVyJywgY2FzdHRhcmdldCA9PiAnaW50 OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVyJywgY2Fz dHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVyJywgY2FzdHRh cmdldCA9PiAncmVnb3BlcmF0b3InLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0xNzAsMTMgKzE3MCwx MyBAQAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVyYXRvcicsIGNhc3R0YXJnZXQgPT4gJ29pZCcs IGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdi JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVnb3BlcmF0b3In LCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4g J3JlZ29wZXJhdG9yJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQ0JywgY2FzdHRhcmdldCA9PiAncmVnb3BlcmF0b3InLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAn cmVnb3BlcmF0b3InLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lk KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ29wZXJhdG9yJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNh c3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9 LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjbGFzcycsIGNhc3Rm dW5jID0+ICcwJywKQEAgLTE4NCwxMyArMTg0LDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2Ns YXNzJywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBj YXN0dGFyZ2V0ID0+ICdyZWdjbGFzcycsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVnY2xhc3MnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQy KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjbGFzcycsIGNhc3Rm dW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAog eyBjYXN0c291cmNlID0+ICdyZWdjbGFzcycsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVu YyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnY2xhc3MnLCBjYXN0dGFyZ2V0ID0+ ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRo b2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2Nv bGxhdGlvbicsIGNhc3RmdW5jID0+ICcwJywKQEAgLTE5OCwxMyArMTk4LDEzIEBACiB7IGNhc3Rz b3VyY2UgPT4gJ3JlZ2NvbGxhdGlvbicsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0 c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVnY29sbGF0aW9uJywgY2FzdGZ1bmMg PT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb2xsYXRp b24nLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0 dGFyZ2V0ID0+ICdyZWdjb2xsYXRpb24nLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnY29sbGF0 aW9uJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICdyZWdjb2xsYXRpb24nLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMg PT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3R5cGUnLCBjYXN0ZnVuYyA9PiAn MCcsCkBAIC0yMTIsMTMgKzIxMiwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWd0eXBlJywgY2Fz dHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0 ID0+ICdyZWd0eXBlJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBj YXN0dGFyZ2V0ID0+ICdyZWd0eXBlJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVndHlwZScsIGNhc3RmdW5jID0+ICcwJywK ICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNl ID0+ICdyZWd0eXBlJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9p ZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdyZWd0eXBlJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3Rm dW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAog eyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb25maWcnLCBjYXN0ZnVu YyA9PiAnMCcsCkBAIC0yMjYsMTMgKzIyNiwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWdjb25m aWcnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNh c3R0YXJnZXQgPT4gJ3JlZ2NvbmZpZycsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVnY29uZmlnJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50 MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVnY29uZmlnJywgY2Fz dGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NvbmZpZycsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0 ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnY29uZmlnJywgY2FzdHRhcmdl dCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdy ZWdkaWN0aW9uYXJ5JywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMjQwLDMxICsyNDAsMzEgQEAKIHsg Y2FzdHNvdXJjZSA9PiAncmVnZGljdGlvbmFyeScsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3Rm dW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAog eyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVnZGljdGlvbmFyeScsIGNh c3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVn ZGljdGlvbmFyeScsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50 NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2RpY3Rpb25hcnknLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAn cmVnZGljdGlvbmFyeScsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChv aWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnZGljdGlvbmFyeScsIGNhc3R0YXJnZXQgPT4gJ2ludDQn LCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn YicgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGV4dCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NsYXNzJywg Y2FzdGZ1bmMgPT4gJ3JlZ2NsYXNzJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyY2hhcicsIGNhc3R0YXJn ZXQgPT4gJ3JlZ2NsYXNzJywgY2FzdGZ1bmMgPT4gJ3JlZ2NsYXNzJywKLSAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn b2lkJywgY2FzdHRhcmdldCA9PiAncmVncm9sZScsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdy b2xlJywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBj YXN0dGFyZ2V0ID0+ICdyZWdyb2xlJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdyb2xlJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50Mikn LAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVncm9sZScsIGNhc3RmdW5j ID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBj YXN0c291cmNlID0+ICdyZWdyb2xlJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdyb2xlJywgY2FzdHRhcmdldCA9PiAnaW50 NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWduYW1lc3Bh Y2UnLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0yNzIsMTMgKzI3MiwxMyBAQAogeyBjYXN0c291cmNl ID0+ICdyZWduYW1lc3BhY2UnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcs CiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3RmdW5jID0+ICdv aWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVnbmFtZXNwYWNlJywg Y2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdl dCA9PiAncmVnbmFtZXNwYWNlJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ25hbWVzcGFjZScs IGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAncmVnbmFtZXNwYWNlJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcw JywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291 cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdkYXRhYmFzZScsIGNhc3RmdW5jID0+ICcw JywKQEAgLTI4NiwxMyArMjg2LDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2RhdGFiYXNlJywg Y2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFy Z2V0ID0+ICdyZWdkYXRhYmFzZScsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQyJywgY2FzdHRhcmdldCA9PiAncmVnZGF0YWJhc2UnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQy KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdkYXRhYmFzZScsIGNh c3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9 LAogeyBjYXN0c291cmNlID0+ICdyZWdkYXRhYmFzZScsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBj YXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnZGF0YWJhc2UnLCBjYXN0 dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2InIH0sCiAKQEAgLTMwMiw1NyArMzAyLDU3IEBACiB7IGNhc3Rzb3Vy Y2UgPT4gJ3RleHQnLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJzAnLAog ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ2JwY2hhcicsIGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAndGV4dChicGNo YXIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAnYnBjaGFyJywgY2FzdHRhcmdldCA9PiAndmFyY2hhcicsIGNh c3RmdW5jID0+ICd0ZXh0KGJwY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRh cmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdl dCA9PiAnYnBjaGFyJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2NoYXInLCBjYXN0dGFyZ2V0ID0+ ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJ3RleHQoY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdjaGFyJywg Y2FzdHRhcmdldCA9PiAnYnBjaGFyJywgY2FzdGZ1bmMgPT4gJ2JwY2hhcihjaGFyKScsCi0gIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2NoYXInLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJ3Rl eHQoY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICduYW1lJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNh c3RmdW5jID0+ICd0ZXh0KG5hbWUpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbmFtZScsIGNhc3R0YXJnZXQg PT4gJ2JwY2hhcicsIGNhc3RmdW5jID0+ICdicGNoYXIobmFtZSknLAotICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdu YW1lJywgY2FzdHRhcmdldCA9PiAndmFyY2hhcicsIGNhc3RmdW5jID0+ICd2YXJjaGFyKG5hbWUp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAndGV4dCcsIGNhc3R0YXJnZXQgPT4gJ2NoYXInLCBjYXN0ZnVuYyA9 PiAnY2hhcih0ZXh0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JwY2hhcicsIGNhc3R0YXJnZXQgPT4gJ2No YXInLCBjYXN0ZnVuYyA9PiAnY2hhcih0ZXh0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3ZhcmNoYXInLCBj YXN0dGFyZ2V0ID0+ICdjaGFyJywgY2FzdGZ1bmMgPT4gJ2NoYXIodGV4dCknLAotICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICd0ZXh0JywgY2FzdHRhcmdldCA9PiAnbmFtZScsIGNhc3RmdW5jID0+ICduYW1lKHRleHQp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnYnBjaGFyJywgY2FzdHRhcmdldCA9PiAnbmFtZScsIGNhc3RmdW5j ID0+ICduYW1lKGJwY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9 PiAnbmFtZScsIGNhc3RmdW5jID0+ICduYW1lKHZhcmNoYXIpJywKLSAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBBbGxvdyBleHBsaWNpdCBj b2VyY2lvbnMgYmV0d2VlbiBieXRlYSBhbmQgaW50ZWdlciB0eXBlcwogeyBjYXN0c291cmNlID0+ ICdpbnQyJywgY2FzdHRhcmdldCA9PiAnYnl0ZWEnLCBjYXN0ZnVuYyA9PiAnYnl0ZWEoaW50Mikn LAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnYnl0ZWEnLCBjYXN0ZnVuYyA9 PiAnYnl0ZWEoaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAnYnl0 ZWEnLCBjYXN0ZnVuYyA9PiAnYnl0ZWEoaW50OCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdieXRlYScsIGNh c3R0YXJnZXQgPT4gJ2ludDInLCBjYXN0ZnVuYyA9PiAnaW50MihieXRlYSknLAotICBjYXN0Y29u dGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdieXRlYScsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChieXRl YSknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdieXRlYScsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVu YyA9PiAnaW50OChieXRlYSknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogCiAjIEFsbG93IGV4cGxpY2l0IGNvZXJjaW9ucyBiZXR3ZWVuIGlu dDQgYW5kICJjaGFyIgogeyBjYXN0c291cmNlID0+ICdjaGFyJywgY2FzdHRhcmdldCA9PiAnaW50 NCcsIGNhc3RmdW5jID0+ICdpbnQ0KGNoYXIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0 YXJnZXQgPT4gJ2NoYXInLCBjYXN0ZnVuYyA9PiAnY2hhcihpbnQ0KScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgcGdfbm9kZV90cmVl IGNhbiBiZSBjb2VyY2VkIHRvLCBidXQgbm90IGZyb20sIHRleHQKIHsgY2FzdHNvdXJjZSA9PiAn cGdfbm9kZV90cmVlJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICcwJywKQEAg LTM3OCw3MyArMzc4LDczIEBACiAKICMgRGF0ZXRpbWUgY2F0ZWdvcnkKIHsgY2FzdHNvdXJjZSA9 PiAnZGF0ZScsIGNhc3R0YXJnZXQgPT4gJ3RpbWVzdGFtcCcsCi0gIGNhc3RmdW5jID0+ICd0aW1l c3RhbXAoZGF0ZSknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3RmdW5jID0+ICd0aW1lc3RhbXAoZGF0ZSknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn ZGF0ZScsIGNhc3R0YXJnZXQgPT4gJ3RpbWVzdGFtcHR6JywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWVz dGFtcHR6KGRhdGUpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0ZnVuYyA9PiAndGltZXN0YW1wdHooZGF0ZSknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAndGltZScsIGNhc3R0YXJnZXQgPT4gJ2ludGVydmFsJywgY2FzdGZ1bmMgPT4gJ2ludGVydmFs KHRpbWUpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZScsIGNhc3R0YXJnZXQgPT4gJ3RpbWV0eicsIGNh c3RmdW5jID0+ICd0aW1ldHoodGltZSknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXAnLCBjYXN0 dGFyZ2V0ID0+ICdkYXRlJywKLSAgY2FzdGZ1bmMgPT4gJ2RhdGUodGltZXN0YW1wKScsIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ2RhdGUo dGltZXN0YW1wKScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXAnLCBjYXN0dGFy Z2V0ID0+ICd0aW1lJywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWUodGltZXN0YW1wKScsIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3RpbWUodGlt ZXN0YW1wKScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXAnLCBjYXN0dGFyZ2V0 ID0+ICd0aW1lc3RhbXB0eicsCi0gIGNhc3RmdW5jID0+ICd0aW1lc3RhbXB0eih0aW1lc3RhbXAp JywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9 PiAndGltZXN0YW1wdHoodGltZXN0YW1wKScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1l c3RhbXB0eicsIGNhc3R0YXJnZXQgPT4gJ2RhdGUnLAotICBjYXN0ZnVuYyA9PiAnZGF0ZSh0aW1l c3RhbXB0eiknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3RmdW5jID0+ICdkYXRlKHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0 aW1lc3RhbXB0eicsIGNhc3R0YXJnZXQgPT4gJ3RpbWUnLAotICBjYXN0ZnVuYyA9PiAndGltZSh0 aW1lc3RhbXB0eiknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3RmdW5jID0+ICd0aW1lKHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICd0aW1lc3RhbXB0eicsIGNhc3R0YXJnZXQgPT4gJ3RpbWVzdGFtcCcsCi0gIGNhc3RmdW5jID0+ ICd0aW1lc3RhbXAodGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZXN0YW1wKHRpbWVzdGFtcHR6KScsIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXB0eicsIGNhc3R0YXJnZXQgPT4gJ3RpbWV0eics Ci0gIGNhc3RmdW5jID0+ICd0aW1ldHoodGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZXR6KHRpbWVzdGFtcHR6 KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnRlcnZhbCcsIGNhc3R0YXJnZXQgPT4gJ3Rp bWUnLCBjYXN0ZnVuYyA9PiAndGltZShpbnRlcnZhbCknLAotICBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1ldHon LCBjYXN0dGFyZ2V0ID0+ICd0aW1lJywgY2FzdGZ1bmMgPT4gJ3RpbWUodGltZXR6KScsCi0gIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgR2Vv bWV0cmljIGNhdGVnb3J5CiB7IGNhc3Rzb3VyY2UgPT4gJ3BvaW50JywgY2FzdHRhcmdldCA9PiAn Ym94JywgY2FzdGZ1bmMgPT4gJ2JveChwb2ludCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2xzZWcnLCBjYXN0 dGFyZ2V0ID0+ICdwb2ludCcsIGNhc3RmdW5jID0+ICdwb2ludChsc2VnKScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBj YXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAncGF0aCcsIGNhc3R0YXJnZXQgPT4gJ3BvbHlnb24nLCBjYXN0ZnVuYyA9PiAncG9seWdvbihw YXRoKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAnYm94JywgY2FzdHRhcmdldCA9PiAncG9pbnQnLCBjYXN0ZnVu YyA9PiAncG9pbnQoYm94KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYm94JywgY2FzdHRhcmdldCA9PiAnbHNl ZycsIGNhc3RmdW5jID0+ICdsc2VnKGJveCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZics IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JveCcsIGNhc3R0YXJn ZXQgPT4gJ3BvbHlnb24nLCBjYXN0ZnVuYyA9PiAncG9seWdvbihib3gpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdib3gnLCBjYXN0dGFyZ2V0ID0+ICdjaXJjbGUnLCBjYXN0ZnVuYyA9PiAnY2lyY2xlKGJveCkn LAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ3BvbHlnb24nLCBjYXN0dGFyZ2V0ID0+ICdwb2ludCcsIGNhc3RmdW5j ID0+ICdwb2ludChwb2x5Z29uKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncG9seWdvbicsIGNhc3R0YXJnZXQg PT4gJ3BhdGgnLCBjYXN0ZnVuYyA9PiAncGF0aCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncG9seWdvbicsIGNh c3R0YXJnZXQgPT4gJ2JveCcsIGNhc3RmdW5jID0+ICdib3gocG9seWdvbiknLAotICBjYXN0Y29u dGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywg Y2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ3BvbHlnb24nLCBjYXN0dGFyZ2V0ID0+ICdjaXJjbGUnLAotICBjYXN0ZnVuYyA9PiAnY2ly Y2xlKHBvbHlnb24pJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0ZnVuYyA9PiAnY2lyY2xlKHBvbHlnb24pJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0 bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn Y2lyY2xlJywgY2FzdHRhcmdldCA9PiAncG9pbnQnLCBjYXN0ZnVuYyA9PiAncG9pbnQoY2lyY2xl KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnY2lyY2xlJywgY2FzdHRhcmdldCA9PiAnYm94JywgY2FzdGZ1bmMg PT4gJ2JveChjaXJjbGUpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdjaXJjbGUnLCBjYXN0dGFyZ2V0ID0+ICdw b2x5Z29uJywKLSAgY2FzdGZ1bmMgPT4gJ3BvbHlnb24oY2lyY2xlKScsIGNhc3Rjb250ZXh0ID0+ ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3BvbHlnb24oY2lyY2xl KScsIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZid9LAogCiAjIE1BQyBhZGRy ZXNzIGNhdGVnb3J5CiB7IGNhc3Rzb3VyY2UgPT4gJ21hY2FkZHInLCBjYXN0dGFyZ2V0ID0+ICdt YWNhZGRyOCcsIGNhc3RmdW5jID0+ICdtYWNhZGRyOCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ21hY2FkZHI4 JywgY2FzdHRhcmdldCA9PiAnbWFjYWRkcicsIGNhc3RmdW5jID0+ICdtYWNhZGRyJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBJTkVU IGNhdGVnb3J5CiB7IGNhc3Rzb3VyY2UgPT4gJ2NpZHInLCBjYXN0dGFyZ2V0ID0+ICdpbmV0Jywg Y2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2In IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2luZXQnLCBjYXN0dGFyZ2V0ID0+ICdjaWRyJywgY2FzdGZ1 bmMgPT4gJ2NpZHInLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogCiAjIEJpdFN0cmluZyBjYXRlZ29yeQogeyBjYXN0c291cmNlID0+ICdiaXQn LCBjYXN0dGFyZ2V0ID0+ICd2YXJiaXQnLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC00NTQsMTMgKzQ1 NCwxMyBAQAogCiAjIENyb3NzLWNhdGVnb3J5IGNhc3RzIGJldHdlZW4gYml0IGFuZCBpbnQ0LCBp bnQ4CiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdiaXQnLCBjYXN0ZnVu YyA9PiAnYml0KGludDgsaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9 PiAnYml0JywgY2FzdGZ1bmMgPT4gJ2JpdChpbnQ0LGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4g J2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYml0 JywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGJpdCknLAotICBjYXN0 Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdl JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdiaXQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoYml0 KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiAKICMgQ3Jvc3MtY2F0ZWdvcnkgY2FzdHMgdG8gYW5kIGZyb20gVEVYVAogIyBXZSBuZWVkIGVu dHJpZXMgaGVyZSBvbmx5IGZvciBhIGZldyBzcGVjaWFsaXplZCBjYXNlcyB3aGVyZSB0aGUgYmVo YXZpb3IKQEAgLTQ3MSw2OCArNDcxLDY4IEBACiAjIGJlaGF2aW9yIHdpbGwgZW5zdWUgd2hlbiB0 aGUgYXV0b21hdGljIGNhc3QgaXMgYXBwbGllZCBpbnN0ZWFkIG9mIHRoZQogIyBwZ19jYXN0IGVu dHJ5IQogeyBjYXN0c291cmNlID0+ICdjaWRyJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3Rm dW5jID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW5ldCcsIGNhc3R0YXJnZXQgPT4g J3RleHQnLCBjYXN0ZnVuYyA9PiAndGV4dChpbmV0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jvb2wnLCBj YXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJ3RleHQoYm9vbCknLAotICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICd4bWwnLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3Rl eHQnLCBjYXN0dGFyZ2V0ID0+ICd4bWwnLCBjYXN0ZnVuYyA9PiAneG1sJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBDcm9zcy1jYXRl Z29yeSBjYXN0cyB0byBhbmQgZnJvbSBWQVJDSEFSCiAjIFdlIHN1cHBvcnQgYWxsIHRoZSBzYW1l IGNhc3RzIGFzIGZvciBURVhULgogeyBjYXN0c291cmNlID0+ICdjaWRyJywgY2FzdHRhcmdldCA9 PiAndmFyY2hhcicsIGNhc3RmdW5jID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW5l dCcsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChpbmV0KScsCi0g IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ2Jvb2wnLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4g J3RleHQoYm9vbCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd4bWwnLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFy JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3ZhcmNoYXInLCBjYXN0dGFyZ2V0ID0+ICd4bWwnLCBj YXN0ZnVuYyA9PiAneG1sJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIAogIyBDcm9zcy1jYXRlZ29yeSBjYXN0cyB0byBhbmQgZnJvbSBCUENI QVIKICMgV2Ugc3VwcG9ydCBhbGwgdGhlIHNhbWUgY2FzdHMgYXMgZm9yIFRFWFQuCiB7IGNhc3Rz b3VyY2UgPT4gJ2NpZHInLCBjYXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAndGV4 dChpbmV0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2luZXQnLCBjYXN0dGFyZ2V0ID0+ICdicGNoYXInLCBj YXN0ZnVuYyA9PiAndGV4dChpbmV0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jvb2wnLCBjYXN0dGFyZ2V0 ID0+ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChib29sKScsCi0gIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3ht bCcsIGNhc3R0YXJnZXQgPT4gJ2JwY2hhcicsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdicGNoYXIn LCBjYXN0dGFyZ2V0ID0+ICd4bWwnLCBjYXN0ZnVuYyA9PiAneG1sJywKLSAgY2FzdGNvbnRleHQg PT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBMZW5ndGgtY29lcmNp b24gZnVuY3Rpb25zCiB7IGNhc3Rzb3VyY2UgPT4gJ2JwY2hhcicsIGNhc3R0YXJnZXQgPT4gJ2Jw Y2hhcicsCiAgIGNhc3RmdW5jID0+ICdicGNoYXIoYnBjaGFyLGludDQsYm9vbCknLCBjYXN0Y29u dGV4dCA9PiAnaScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyY2hhcicsIGNh c3R0YXJnZXQgPT4gJ3ZhcmNoYXInLAogICBjYXN0ZnVuYyA9PiAndmFyY2hhcih2YXJjaGFyLGlu dDQsYm9vbCknLCBjYXN0Y29udGV4dCA9PiAnaScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAndGltZScsIGNhc3R0YXJnZXQgPT4gJ3RpbWUnLCBjYXN0ZnVuYyA9PiAndGltZSh0aW1l LGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZXN0YW1wJywgY2FzdHRhcmdldCA9PiAndGltZXN0 YW1wJywKICAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcCh0aW1lc3RhbXAsaW50NCknLCBjYXN0Y29u dGV4dCA9PiAnaScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZXN0YW1wdHon LCBjYXN0dGFyZ2V0ID0+ICd0aW1lc3RhbXB0eicsCiAgIGNhc3RmdW5jID0+ICd0aW1lc3RhbXB0 eih0aW1lc3RhbXB0eixpbnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdpJywKLSAgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdpbnRlcnZhbCcsIGNhc3R0YXJnZXQgPT4gJ2ludGVydmFsJywKICAg Y2FzdGZ1bmMgPT4gJ2ludGVydmFsKGludGVydmFsLGludDQpJywgY2FzdGNvbnRleHQgPT4gJ2kn LAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWV0eicsIGNhc3R0YXJnZXQgPT4g J3RpbWV0eicsCi0gIGNhc3RmdW5jID0+ICd0aW1ldHoodGltZXR6LGludDQpJywgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZXR6KHRp bWV0eixpbnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdiaXQnLCBjYXN0dGFyZ2V0ID0+ ICdiaXQnLCBjYXN0ZnVuYyA9PiAnYml0KGJpdCxpbnQ0LGJvb2wpJywKLSAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn dmFyYml0JywgY2FzdHRhcmdldCA9PiAndmFyYml0JywgY2FzdGZ1bmMgPT4gJ3ZhcmJpdCcsCi0g IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywKLSAgY2FzdGZ1 bmMgPT4gJ251bWVyaWMobnVtZXJpYyxpbnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ251bWVyaWMobnVtZXJpYyxpbnQ0KScsIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogCiAjIGpzb24gdG8vZnJvbSBqc29uYgogeyBjYXN0c291cmNlID0+ICdqc29uJywgY2Fz dHRhcmdldCA9PiAnanNvbmInLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC01NDIsMzYgKzU0MiwzNiBA QAogCiAjIGpzb25iIHRvIG51bWVyaWMgYW5kIGJvb2wgdHlwZXMKIHsgY2FzdHNvdXJjZSA9PiAn anNvbmInLCBjYXN0dGFyZ2V0ID0+ICdib29sJywgY2FzdGZ1bmMgPT4gJ2Jvb2woanNvbmIpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywgY2FzdGZ1bmMg PT4gJ251bWVyaWMoanNvbmIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ ICdpbnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIoanNvbmIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2Un LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmIn LCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoanNvbmIpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn ZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgo anNvbmIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDQnLCBj YXN0ZnVuYyA9PiAnZmxvYXQ0KGpzb25iKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywg IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2pzb25iJywgY2FzdHRh cmdldCA9PiAnZmxvYXQ4JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0OChqc29uYiknLAotICBjYXN0Y29u dGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIHJhbmdlIHRv IG11bHRpcmFuZ2UKIHsgY2FzdHNvdXJjZSA9PiAnaW50NHJhbmdlJywgY2FzdHRhcmdldCA9PiAn aW50NG11bHRpcmFuZ2UnLAogICBjYXN0ZnVuYyA9PiAnaW50NG11bHRpcmFuZ2UoaW50NHJhbmdl KScsIGNhc3Rjb250ZXh0ID0+ICdlJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQ4cmFuZ2UnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4bXVsdGlyYW5nZScsCiAgIGNhc3RmdW5jID0+ ICdpbnQ4bXVsdGlyYW5nZShpbnQ4cmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLAotICBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bXJhbmdlJywgY2FzdHRhcmdldCA9PiAnbnVtbXVs dGlyYW5nZScsCiAgIGNhc3RmdW5jID0+ICdudW1tdWx0aXJhbmdlKG51bXJhbmdlKScsIGNhc3Rj b250ZXh0ID0+ICdlJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdkYXRlcmFuZ2Un LCBjYXN0dGFyZ2V0ID0+ICdkYXRlbXVsdGlyYW5nZScsCiAgIGNhc3RmdW5jID0+ICdkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLAotICBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ3RzcmFuZ2UnLCBjYXN0dGFyZ2V0ID0+ICd0c211bHRpcmFuZ2UnLAot ICBjYXN0ZnVuYyA9PiAndHNtdWx0aXJhbmdlKHRzcmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2Un LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndHNtdWx0aXJhbmdlKHRzcmFu Z2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RzdHpyYW5nZScsIGNhc3R0YXJnZXQgPT4g J3RzdHptdWx0aXJhbmdlJywKICAgY2FzdGZ1bmMgPT4gJ3RzdHptdWx0aXJhbmdlKHRzdHpyYW5n ZSknLCBjYXN0Y29udGV4dCA9PiAnZScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIF0KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0 LmgKaW5kZXggNmEwY2EzMzcxNTMuLjIxOGQ4MWQ1MzVhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2Nhc3QuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuaApA QCAtNDcsNiArNDcsMTAgQEAgQ0FUQUxPRyhwZ19jYXN0LDI2MDUsQ2FzdFJlbGF0aW9uSWQpCiAK IAkvKiBjYXN0IG1ldGhvZCAqLwogCWNoYXIJCWNhc3RtZXRob2Q7CisKKwkvKiBjYXN0IGZ1bmN0 aW9uIGVycm9yIHNhZmUgKi8KKwlib29sCQljYXN0ZXJyb3JzYWZlIEJLSV9ERUZBVUxUKGYpOwor CiB9IEZvcm1EYXRhX3BnX2Nhc3Q7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9l eGVjRXhwci5oCmluZGV4IDc1MzY2MjAzNzA2Li45MzdjYmYzYmM5YiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9l eGVjRXhwci5oCkBAIC0yNjUsNiArMjY1LDcgQEAgdHlwZWRlZiBlbnVtIEV4cHJFdmFsT3AKIAlF RU9QX1hNTEVYUFIsCiAJRUVPUF9KU09OX0NPTlNUUlVDVE9SLAogCUVFT1BfSVNfSlNPTiwKKwlF RU9QX1NBRkVUWVBFX0NBU1QsCiAJRUVPUF9KU09ORVhQUl9QQVRILAogCUVFT1BfSlNPTkVYUFJf Q09FUkNJT04sCiAJRUVPUF9KU09ORVhQUl9DT0VSQ0lPTl9GSU5JU0gsCkBAIC03NTAsNiArNzUx LDEyIEBAIHR5cGVkZWYgc3RydWN0IEV4cHJFdmFsU3RlcAogCQkJSnNvbklzUHJlZGljYXRlICpw cmVkOwkvKiBvcmlnaW5hbCBleHByZXNzaW9uIG5vZGUgKi8KIAkJfQkJCWlzX2pzb247CiAKKwkJ LyogZm9yIEVFT1BfU0FGRVRZUEVfQ0FTVCAqLworCQlzdHJ1Y3QKKwkJeworCQkJc3RydWN0IFNh ZmVUeXBlQ2FzdFN0YXRlICpzdGNzdGF0ZTsKKwkJfQkJCXN0Y2V4cHI7CisKIAkJLyogZm9yIEVF T1BfSlNPTkVYUFJfUEFUSCAqLwogCQlzdHJ1Y3QKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRl eCA2NGZmNjk5NjQzMS4uOTAxOGUxOTBjYzcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVz L2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBAIC0xMDU5 LDYgKzEwNTksMjcgQEAgdHlwZWRlZiBzdHJ1Y3QgRG9tYWluQ29uc3RyYWludFN0YXRlCiAJRXhw clN0YXRlICAqY2hlY2tfZXhwcnN0YXRlOwkvKiBjaGVja19leHByJ3MgZXZhbCBzdGF0ZSwgb3Ig TlVMTCAqLwogfSBEb21haW5Db25zdHJhaW50U3RhdGU7CiAKK3R5cGVkZWYgc3RydWN0IFNhZmVU eXBlQ2FzdFN0YXRlCit7CisJU2FmZVR5cGVDYXN0RXhwciAqc3RjZXhwcjsKKworCS8qCisJICog QWRkcmVzcyB0byBqdW1wIHRvIHdoZW4gc2tpcHBpbmcgYWxsIHRoZSBzdGVwcyB0byBldmF1bGF0 ZSB0aGUgZGVmYXVsdAorCSAqIGV4cHJlc3Npb24uCisJICovCisJaW50IAkJanVtcF9lbmQ7CisK KwkvKgorCSAqIEZvciBlcnJvci1zYWZlIGV2YWx1YXRpb24gb2YgY29lcmNpb25zLiBBIHBvaW50 ZXIgdG8gdGhpcyBpcyBwYXNzZWQgdG8KKwkgKiBFeGVjSW5pdEV4cHJSZWMoKSB3aGVuIGluaXRp YWxpemluZyB0aGUgY29lcmNpb24gZXhwcmVzc2lvbnMsIHNlZQorCSAqIEV4ZWNJbml0U2FmZVR5 cGVDYXN0RXhwci4KKwkgKgorCSAqIFJlc2V0IGZvciBlYWNoIGV2YWx1YXRpb24gb2YgRUVPUF9T QUZFVFlQRV9DQVNULgorCSAqLworCUVycm9yU2F2ZUNvbnRleHQgZXNjb250ZXh0OworCit9IFNh ZmVUeXBlQ2FzdFN0YXRlOworCiAvKgogICogU3RhdGUgZm9yIEpzb25FeHByIGV2YWx1YXRpb24s IHRvbyBiaWcgdG8gaW5saW5lLgogICoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCBkMTQyOTRh NGVjZS4uNGIyZWIzNDBmOTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTQwMCw2ICs0MDAs MTcgQEAgdHlwZWRlZiBzdHJ1Y3QgVHlwZUNhc3QKIAlQYXJzZUxvYwlsb2NhdGlvbjsJCS8qIHRv a2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiB9IFR5cGVDYXN0OwogCisvKgorICog U2FmZVR5cGVDYXN0IC0gYSBDQVNUKHNvdXJjZV9leHByIEFTIHRhcmdldF90eXBlKSBERUZBVUxU IE9OIENPTlZFUlNJT04gRVJST1IKKyAqIGNvbnN0cnVjdAorICovCit0eXBlZGVmIHN0cnVjdCBT YWZlVHlwZUNhc3QKK3sKKwlOb2RlVGFnCQl0eXBlOworCU5vZGUJCSpjYXN0OwkJCS8qIFR5cGVD YXN0IGV4cHJlc3Npb24gKi8KKwlOb2RlCSAgIAkqcmF3X2RlZmF1bHQ7CS8qIERFRkFVTFQgZXhw cmVzc2lvbiAqLworfSBTYWZlVHlwZUNhc3Q7CisKIC8qCiAgKiBDb2xsYXRlQ2xhdXNlIC0gYSBD T0xMQVRFIGV4cHJlc3Npb24KICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJp bW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRleCAxYjQ0MzZmMmZm Ni4uYzNiZDcyMmNiMmYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5o CisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBAIC03NjksNiArNzY5LDQyIEBA IHR5cGVkZWYgZW51bSBDb2VyY2lvbkZvcm0KIAlDT0VSQ0VfU1FMX1NZTlRBWCwJCQkvKiBkaXNw bGF5IHdpdGggU1FMLW1hbmRhdGVkIHNwZWNpYWwgc3ludGF4ICovCiB9IENvZXJjaW9uRm9ybTsK IAorLyoKKyAqIFNhZmVUeXBlQ2FzdEV4cHIgLQorICoJCVRyYW5zZm9ybWVkIHJlcHJlc2VudGF0 aW9uIG9mCisgKiAJCUNBU1QoZXhwciBBUyB0eXBlbmFtZSBERUZBVUxUIGV4cHIyIE9OIEVSUk9S KQorICogCQlDQVNUKGV4cHIgQVMgdHlwZW5hbWUgTlVMTCBPTiBFUlJPUikKKyAqLwordHlwZWRl ZiBzdHJ1Y3QgU2FmZVR5cGVDYXN0RXhwcgoreworCUV4cHIJCXhwcjsKKworCS8qIHRyYW5zZm9y bWVkIGV4cHJlc3Npb24gYmVpbmcgY2FzdGVkICovCisJTm9kZQkgICAqc291cmNlX2V4cHI7CisK KwkvKgorCSAqIFRoZSB0cmFuc2Zvcm1lZCBjYXN0IGV4cHJlc3Npb247IE5VTEwgaWYgd2UgY2Fu IG5vdCBjb2NlcmNlIHNvdXJjZQorCSAqIGV4cHJlc3Npb24gdG8gdGhlIHRhcmdldCB0eXBlCisJ ICovCisJTm9kZQkgICAqY2FzdF9leHByIAlwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9y ZSk7CisKKwkvKiBGYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHQgZXhwcmVzc2lvbiBpZiBjYXN0IGV2 YWx1YXRpb24gZmFpbHMgKi8KKwlOb2RlCSAgICpkZWZhdWx0X2V4cHI7CisKKwkvKiBjYXN0IHJl c3VsdCBkYXRhIHR5cGUgKi8KKwlPaWQJCQlyZXN1bHR0eXBlOworCisJLyogY2FzdCByZXN1bHQg ZGF0YSB0eXBlIHR5cG1vZCAodXN1YWxseSAtMSkgKi8KKwlpbnQzMgkJcmVzdWx0dHlwbW9kOwor CisJLyogY2FzdCByZXN1bHQgZGF0YSB0eXBlIGNvbGxhdGlvbiAqLworCU9pZAkJCXJlc3VsdGNv bGxpZDsKKworCS8qIE9yaWdpbmFsIFNhZmVUeXBlQ2FzdEV4cHIncyBsb2NhdGlvbiAqLworCVBh cnNlTG9jCWxvY2F0aW9uOworCit9IFNhZmVUeXBlQ2FzdEV4cHI7CisKIC8qCiAgKiBGdW5jRXhw ciAtIGV4cHJlc3Npb24gbm9kZSBmb3IgYSBmdW5jdGlvbiBjYWxsCiAgKgpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV9ub2RlLmgKaW5kZXggZjdkMDdjODQ1NDIuLjlmNWIzMmUwMzYwIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV9ub2RlLmgKQEAgLTY3LDYgKzY3LDggQEAgdHlwZWRlZiBlbnVtIFBhcnNlRXhwcktpbmQKIAlF WFBSX0tJTkRfVkFMVUVTX1NJTkdMRSwJLyogc2luZ2xlLXJvdyBWQUxVRVMgKGluIElOU0VSVCBv bmx5KSAqLwogCUVYUFJfS0lORF9DSEVDS19DT05TVFJBSU5ULCAvKiBDSEVDSyBjb25zdHJhaW50 IGZvciBhIHRhYmxlICovCiAJRVhQUl9LSU5EX0RPTUFJTl9DSEVDSywJCS8qIENIRUNLIGNvbnN0 cmFpbnQgZm9yIGEgZG9tYWluICovCisJRVhQUl9LSU5EX0NBU1RfREVGQVVMVCwJCS8qIGRlZmF1 bHQgZXhwcmVzc2lvbiBpbgorCQkJCQkJCQkgICBDQVNUIERFRkFVTFQgT04gQ09OVkVSU0lPTiBF UlJPUiAqLwogCUVYUFJfS0lORF9DT0xVTU5fREVGQVVMVCwJLyogZGVmYXVsdCB2YWx1ZSBmb3Ig YSB0YWJsZSBjb2x1bW4gKi8KIAlFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVCwgLyogZGVmYXVs dCBwYXJhbWV0ZXIgdmFsdWUgZm9yIGZ1bmN0aW9uICovCiAJRVhQUl9LSU5EX0lOREVYX0VYUFJF U1NJT04sIC8qIGluZGV4IGV4cHJlc3Npb24gKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvY2FzdC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Nhc3Qub3V0 Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jYjQwZmYwZjIwMAotLS0g L2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY2FzdC5vdXQKQEAgLTAs MCArMSw3OTEgQEAKK1NFVCBleHRyYV9mbG9hdF9kaWdpdHMgPSAwOworLS0gQ0FTVCBERUZBVUxU IE9OIENPTlZFUlNJT04gRVJST1IKK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludGVnZXIgRVJS T1IgT04gQ09OVkVSU0lPTiBFUlJPUikpOyAtLWVycm9yCitFUlJPUjogIGludmFsaWQgaW5wdXQg c3ludGF4IGZvciB0eXBlIGludGVnZXI6ICJlcnJvciIKK0xJTkUgMTogVkFMVUVTIChDQVNUKCdl cnJvcicgQVMgaW50ZWdlciBFUlJPUiBPTiBDT05WRVJTSU9OIEVSUk9SKSk7CisgICAgICAgICAg ICAgICAgICAgICBeCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnRlZ2VyIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikpOworIGNvbHVtbjEgCistLS0tLS0tLS0KKyAgICAgICAgCisoMSByb3cp CisKK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludGVnZXIgREVGQVVMVCA0MiBPTiBDT05WRVJT SU9OIEVSUk9SKSk7CisgY29sdW1uMSAKKy0tLS0tLS0tLQorICAgICAgNDIKKygxIHJvdykKKwor U0VMRUNUIENBU1QoQicwMScgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP Uik7CisgZGF0ZSAKKy0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChCSVQnMDEnIEFT IGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGRhdGUgCistLS0tLS0K KyAKKygxIHJvdykKKworU0VMRUNUIENBU1QoVFJVRSBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKTsKKyBkYXRlIAorLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBD QVNUKDEuMSBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBkYXRl IAorLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKDEgQVMgZGF0ZSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgZGF0ZSAKKy0tLS0tLQorIAorKDEgcm93KQorCitT RUxFQ1QgQ0FTVCgxOjpudW1lcmljIEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBudW1lcmljIHRvIG1vbmV5IHdoZW4g REVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJTSU9O IEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKDE6Om51bWVyaWMgQVMgbW9uZXkgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRS4uLgorICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAgRXhw bGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZpbml0aW9uIGlzIG5vdCBkZWNsYXJlZCBhcyBz YWZlCitTRUxFQ1QgQ0FTVCgxMTExIEFTICJjaGFyIiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7CisgY2hhciAKKy0tLS0tLQorIAorKDEgcm93KQorCistLXRoZSBkZWZhdWx0IGV4 cHJlc3Npb27igJlzIGNvbGxhdGlvbiBzaG91bGQgbWF0Y2ggdGhlIGNvbGxhdGlvbiBvZiB0aGUg Y2FzdAorLS10YXJnZXQgdHlwZQorVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgdGV4dCBERUZBVUxU ICcxJyBDT0xMQVRFICJDIiBPTiBDT05WRVJTSU9OIEVSUk9SKSk7CitFUlJPUjogIHRoZSBjb2xs YXRpb24gb2YgQ0FTVCBERUZBVUxUIGV4cHJlc3Npb24gY29uZmxpY3RzIHdpdGggdGFyZ2V0IHR5 cGUgY29sbGF0aW9uCitMSU5FIDE6IFZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIHRleHQgREVGQVVM VCAnMScgQ09MTEFURSAiQyIgT04gQ09OVi4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgorREVUQUlMOiAgImRlZmF1bHQiIHZlcnN1cyAiQyIKK1ZBTFVF UyAoQ0FTVCgnZXJyb3InIEFTIGludDJ2ZWN0b3IgREVGQVVMVCAnMSAzJyAgT04gQ09OVkVSU0lP TiBFUlJPUikpOworIGNvbHVtbjEgCistLS0tLS0tLS0KKyAxIDMKKygxIHJvdykKKworVkFMVUVT IChDQVNUKCdlcnJvcicgQVMgaW50MnZlY3RvcltdIERFRkFVTFQgJ3sxIDN9JyAgT04gQ09OVkVS U0lPTiBFUlJPUikpOworIGNvbHVtbjEgCistLS0tLS0tLS0KKyB7IjEgMyJ9CisoMSByb3cpCisK Ky0tIHRlc3Qgc291cmNlIGV4cHJlc3Npb24gY29udGFpbiBzdWJxdWVyeQorU0VMRUNUIENBU1Qo KFNFTEVDVCBiIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEpLCAoVkFMVUVTKCdIJykpIHMoYikp CisgICAgICAgICAgICBBUyBpbnQydmVjdG9yW10gREVGQVVMVCAnezEgM30nICBPTiBDT05WRVJT SU9OIEVSUk9SKTsKKyAgICBiICAgIAorLS0tLS0tLS0tCisgeyIxIDMifQorKDEgcm93KQorCitT RUxFQ1QgQ0FTVCgoU0VMRUNUIEFSUkFZKChTRUxFQ1QgYiBGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCAyKSBnLCAoVkFMVUVTKCdIJykpIHMoYikpKSkKKyAgICAgICAgICAgIEFTIElOVFtdCisgICAg ICAgICAgICBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgYXJyYXkgCistLS0t LS0tCisgCisoMSByb3cpCisKK0NSRUFURSBGVU5DVElPTiByZXRfaW50OCgpIFJFVFVSTlMgQklH SU5UIEFTCiskJAorQkVHSU4gUkVUVVJOIDIxNDc0ODM2NDg7IEVORDsKKyQkCitMQU5HVUFHRSBw bHBnc3FsIElNTVVUQUJMRTsKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCByZXRfaW50 OCgpIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIGludGVnZXIgb3V0IG9m IHJhbmdlCitTRUxFQ1QgQ0FTVCgnYScgYXMgZGF0ZSBERUZBVUxUIHJldF9pbnQ4KCkgT04gQ09O VkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgY2Fubm90IGNvZXJjZSBDQVNUIERFRkFV TFQgZXhwcmVzc2lvbiB0byB0eXBlIGRhdGUKK0xJTkUgMTogU0VMRUNUIENBU1QoJ2EnIGFzIGRh dGUgREVGQVVMVCByZXRfaW50OCgpIE9OIENPTlZFUlNJT04gRVJSLi4uCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gdGVzdCBhcnJheSBjb2VyY2UKK1NFTEVD VCBDQVNUKGFycmF5WydhJzo6dGV4dF0gQVMgaW50W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIGludmFsaWQgaW5wdXQgc3ludGF4IGZvciB0eXBl IGludGVnZXI6ICJhIgorU0VMRUNUIENBU1QoYXJyYXlbJ2EnXSBBUyBpbnRbXSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tb2sKKyBhcnJheSAKKy0tLS0tLS0KKyAKKygxIHJv dykKKworU0VMRUNUIENBU1QoYXJyYXlbMTEuMTJdIEFTIGRhdGVbXSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVD VCBDQVNUKGFycmF5WzExMTExMTExMTExMTExMTExXSBBUyBpbnRbXSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVD VCBDQVNUKGFycmF5W1snYWJjJ10sWzQ1Nl1dIEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKTsKKyBhcnJheSAKKy0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENB U1QoJ3sxMjMsYWJjLDQ1Nn0nIEFTIGludFtdIERFRkFVTFQgJ3stNzg5fScgT04gQ09OVkVSU0lP TiBFUlJPUik7CisgIGludDQgIAorLS0tLS0tLS0KKyB7LTc4OX0KKygxIHJvdykKKworU0VMRUNU IENBU1QoJ3syMzQsZGVmLDU2N30nOjp0ZXh0W10gQVMgaW50ZWdlcltdIERFRkFVTFQgJ3stMTAx MX0nIE9OIENPTlZFUlNJT04gRVJST1IpOworICBpbnQ0ICAgCistLS0tLS0tLS0KKyB7LTEwMTF9 CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKEFSUkFZW1snMSddLCBbJ3RocmVlJ10sWydhJ11dIEFT IGludFtdIERFRkFVTFQgJ3sxLDJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBhcnJheSAKKy0t LS0tLS0KKyB7MSwyfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnLCAnMiddLCBb J3RocmVlJywgJ2EnXV0gQVMgaW50W10gREVGQVVMVCAnezIxLDIyfScgT04gQ09OVkVSU0lPTiBF UlJPUik7IC0tb2sKKyAgYXJyYXkgIAorLS0tLS0tLS0tCisgezIxLDIyfQorKDEgcm93KQorCitT RUxFQ1QgQ0FTVChBUlJBWVtbJzEnLCAnMiddLCBbJ3RocmVlJzo6aW50LCAnYSddXSBBUyBpbnRb XSBERUZBVUxUICd7MjEsMjJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6 ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlwZSBpbnRlZ2VyOiAidGhyZWUiCitMSU5FIDE6 IFNFTEVDVCBDQVNUKEFSUkFZW1snMScsICcyJ10sIFsndGhyZWUnOjppbnQsICdhJ11dIEFTIGlu dFtdIC4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorU0VMRUNU IENBU1QoQVJSQVlbMSwgJ3RocmVlJzo6aW50XSBBUyBpbnRbXSBERUZBVUxUICd7MjEsMjJ9JyBP TiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRh eCBmb3IgdHlwZSBpbnRlZ2VyOiAidGhyZWUiCitMSU5FIDE6IFNFTEVDVCBDQVNUKEFSUkFZWzEs ICd0aHJlZSc6OmludF0gQVMgaW50W10gREVGQVVMVCAnezIxLDIyfS4uLgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCistLSB0ZXN0IHZhbGlkIERFRkFVTFQgZXhwcmVzc2lvbiBmb3Ig Q0FTVCA9IE9OIENPTlZFUlNJT04gRVJST1IKK0NSRUFURSBGVU5DVElPTiByZXRfc2V0aW50KCkg UkVUVVJOUyBTRVRPRiBpbnRlZ2VyIEFTCiskJAorQkVHSU4gUkVUVVJOIFFVRVJZIEVYRUNVVEUg J3NlbGVjdCAxIHVuaW9uIGFsbCBzZWxlY3QgMSc7IEVORDsKKyQkCitMQU5HVUFHRSBwbHBnc3Fs IElNTVVUQUJMRTsKK0NSRUFURSBUQUJMRSB0Y2FzdChhIHRleHRbXSwgYiBpbnQgR0VORVJBVEVE IEJZIERFRkFVTFQgQVMgSURFTlRJVFksIGMgdGV4dCBkZWZhdWx0ICcxJyk7CitJTlNFUlQgSU5U TyB0Y2FzdCBWQUxVRVMgKCd7MTJ9JyksICgnezEsYSwgYn0nKSwgKCd7ezEsMn0sIHtjLGR9fScp LCAoJ3sxM30nKTsKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCByZXRfc2V0aW50KCkg T04gQ09OVkVSU0lPTiBFUlJPUikgRlJPTSB0Y2FzdDsgLS1lcnJvcgorRVJST1I6ICBzZXQtcmV0 dXJuaW5nIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gQ0FTVCBERUZBVUxUIGV4cHJlc3Np b25zCitMSU5FIDE6IFNFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCByZXRfc2V0aW50KCkg T04gQ09OVkVSU0lPTiBFUi4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgorU0VMRUNUIENBU1QoYzo6ZGF0ZTo6anNvbiBhcyBkYXRlIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBGUk9NIHRjYXN0OyAtLWVycm9yCitFUlJPUjogIGNhbm5vdCBjYXN0 IHR5cGUgZGF0ZSB0byBqc29uCitMSU5FIDE6IFNFTEVDVCBDQVNUKGM6OmRhdGU6Ompzb24gYXMg ZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTi4uLgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgorU0VMRUNUIENBU1QoJ2EnOjppbnQgYXMgaW50IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3Ig dHlwZSBpbnRlZ2VyOiAiYSIKK0xJTkUgMTogU0VMRUNUIENBU1QoJ2EnOjppbnQgYXMgaW50IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SLi4uCisgICAgICAgICAgICAgICAgICAgIF4K K1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OyAtLW9rCisgaW50NCAKKy0tLS0tLQorICAgICAKKygxIHJvdykKKworU0VMRUNUIENBU1QoJ2En IGFzIGludCBERUZBVUxUIHN1bSgxKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJS T1I6ICBhZ2dyZWdhdGUgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBDQVNUIERFRkFVTFQg ZXhwcmVzc2lvbnMKK0xJTkUgMTogU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHN1bSgx KSBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0oMSkgb3ZlcigpIE9O IENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIHdpbmRvdyBmdW5jdGlvbnMgYXJl IG5vdCBhbGxvd2VkIGluIENBU1QgREVGQVVMVCBleHByZXNzaW9ucworTElORSAxOiBTRUxFQ1Qg Q0FTVCgnYScgYXMgaW50IERFRkFVTFQgc3VtKDEpIG92ZXIoKSBPTiBDT05WRVJTSU9OIEUuLi4K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBDQVNUKCdh JyBhcyBpbnQgREVGQVVMVCAoU0VMRUNUIE5VTEwpIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVy cm9yCitFUlJPUjogIGNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gQ0FTVCBERUZBVUxUIGV4cHJlc3Np b24KK0xJTkUgMTogU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIChTRUxFQ1QgTlVMTCkg T04gQ09OVkVSU0lPTiBFLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgJ2InIE9OIENPTlZFUlNJT04gRVJS T1IpOyAtLWVycm9yCitFUlJPUjogIGludmFsaWQgaW5wdXQgc3ludGF4IGZvciB0eXBlIGludGVn ZXI6ICJiIgorTElORSAxOiBTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgJ2InIE9OIENP TlZFUlNJT04gRVJST1IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgorU0VMRUNUIENBU1QodCBBUyB0ZXh0W10gREVGQVVMVCAnezIxLDIyLCAnIHx8IGIgfHwgJ30n IE9OIENPTlZFUlNJT04gRVJST1IpIEZST00gdGNhc3QgYXMgdDsKKyAgICAgdCAgICAgCistLS0t LS0tLS0tLQorIHsyMSwyMiwxfQorIHsyMSwyMiwyfQorIHsyMSwyMiwzfQorIHsyMSwyMiw0fQor KDQgcm93cykKKworU0VMRUNUIENBU1QodC5hIEFTIGludFtdIERFRkFVTFQgJ3syMSwyMn0nOjpp bnRbXSB8fCBiIE9OIENPTlZFUlNJT04gRVJST1IpIEZST00gdGNhc3QgYXMgdDsKKyAgICAgYSAg ICAgCistLS0tLS0tLS0tLQorIHsxMn0KKyB7MjEsMjIsMn0KKyB7MjEsMjIsM30KKyB7MTN9Ciso NCByb3dzKQorCistLSB0ZXN0IHdpdGggZG9tYWluCitDUkVBVEUgRE9NQUlOIGRfaW50NDIgYXMg aW50IGNoZWNrICh2YWx1ZSA9IDQyKSBOT1QgTlVMTDsKK0NSRUFURSBET01BSU4gZF9jaGFyM19u b3RfbnVsbCBhcyBjaGFyKDMpIE5PVCBOVUxMOworQ1JFQVRFIERPTUFJTiBkX3ZhcmNoYXIgYXMg dmFyY2hhcigzKSBOT1QgTlVMTDsKK0NSRUFURSBUWVBFIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9k IEFTIChhIGRfY2hhcjNfbm90X251bGwsIGIgaW50KTsKK0NSRUFURSBUWVBFIGNvbXAyIEFTIChh IGRfdmFyY2hhcik7CitTRUxFQ1QgQ0FTVCgnKE5VTEwpJyBBUyBjb21wMiBERUZBVUxUICcoMTIz MiknIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIHZhbHVlIHRvbyBsb25n IGZvciB0eXBlIGNoYXJhY3RlciB2YXJ5aW5nKDMpCitMSU5FIDE6IFNFTEVDVCBDQVNUKCcoTlVM TCknIEFTIGNvbXAyIERFRkFVTFQgJygxMjMyKScgT04gQ09OVkVSU0lPTi4uLgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBDQVNUKCcoTlVM TCknIEFTIGNvbXAyIERFRkFVTFQgJygxMjMpJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1vawor IGNvbXAyIAorLS0tLS0tLQorICgxMjMpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKDExIEFTIGRf aW50NDIgREVGQVVMVCA0MSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICB2 YWx1ZSBmb3IgZG9tYWluIGRfaW50NDIgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAiZF9pbnQ0 Ml9jaGVjayIKK1NFTEVDVCBDQVNUKDExIEFTIGRfaW50NDIgREVGQVVMVCA0MiBPTiBDT05WRVJT SU9OIEVSUk9SKTsgLS1vaworIGRfaW50NDIgCistLS0tLS0tLS0KKyAgICAgIDQyCisoMSByb3cp CisKK1NFTEVDVCBDQVNUKE5VTEwgQVMgZF9pbnQ0MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgZG9tYWluIGRfaW50NDIgZG9lcyBub3QgYWxsb3cg bnVsbCB2YWx1ZXMKK1NFTEVDVCBDQVNUKE5VTEwgQVMgZF9pbnQ0MiBERUZBVUxUIDQyIE9OIENP TlZFUlNJT04gRVJST1IpOyAtLW9rCisgZF9pbnQ0MiAKKy0tLS0tLS0tLQorICAgICAgNDIKKygx IHJvdykKKworU0VMRUNUIENBU1QoJygsNDIpJyBBUyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgY29tcF9kb21haW5fd2l0aF90eXBt b2QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNU KCcoTlVMTCw0MiknIEFTIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQgJygxLDIpJyBP TiBDT05WRVJTSU9OIEVSUk9SKTsKKyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAoIjEgICIsMikKKygxIHJvdykKKworU0VMRUNUIENBU1QoJyhO VUxMLDQyKScgQVMgY29tcF9kb21haW5fd2l0aF90eXBtb2QgREVGQVVMVCAnKDEyMzQsMiknIE9O IENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIHZhbHVlIHRvbyBsb25nIGZvciB0 eXBlIGNoYXJhY3RlcigzKQorTElORSAxOiAuLi5TVCgnKE5VTEwsNDIpJyBBUyBjb21wX2RvbWFp bl93aXRoX3R5cG1vZCBERUZBVUxUICcoMTIzNCwyKScuLi4KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLS0tLXNhZmUgY2Fz dCB3aXRoIGdlb21ldHJ5IGRhdGEgdHlwZQorU0VMRUNUIENBU1QoJygxLDIpJzo6cG9pbnQgQVMg Ym94IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgYm94ICAgICAKKy0t LS0tLS0tLS0tLS0KKyAoMSwyKSwoMSwyKQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnWyhOYU4s MSksKE5hTixpbmZpbml0eSldJzo6bHNlZyBBUyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7CisgICAgIHBvaW50ICAgICAgCistLS0tLS0tLS0tLS0tLS0tCisgKE5hTixJ bmZpbml0eSkKKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1soMWUrMzAwLEluZmluaXR5KSwoMWUr MzAwLEluZmluaXR5KV0nOjpsc2VnIEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKKyAgICAgICBwb2ludCAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoMWUr MzAwLEluZmluaXR5KQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnWygxLDIpLCgzLDQpXSc6OnBh dGggYXMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgcG9seWdv biAKKy0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKE5hTiwxLjAsTmFOLGlu ZmluaXR5KSc6OmJveCBBUyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7 CisgICAgIHBvaW50ICAgICAgCistLS0tLS0tLS0tLS0tLS0tCisgKE5hTixJbmZpbml0eSkKKygx IHJvdykKKworU0VMRUNUIENBU1QoJygyLjAsMi4wLDAuMCwwLjApJzo6Ym94IEFTIGxzZWcgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICBsc2VnICAgICAgCistLS0tLS0t LS0tLS0tLS0KKyBbKDIsMiksKDAsMCldCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoMi4wLDIu MCwwLjAsMC4wKSc6OmJveCBBUyBwb2x5Z29uIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKKyAgICAgICAgICBwb2x5Z29uICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgKCgwLDApLCgwLDIpLCgyLDIpLCgyLDApKQorKDEgcm93KQorCitTRUxFQ1QgQ0FT VCgnKDIuMCwyLjAsMC4wLDAuMCknOjpib3ggQVMgcGF0aCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7CisgcGF0aCAKKy0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgn KDIuMCxpbmZpbml0eSxOYU4saW5maW5pdHkpJzo6Ym94IEFTIGNpcmNsZSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgICAgIGNpcmNsZSAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgPChOYU4sSW5maW5pdHkpLE5hTj4KKygxIHJvdykKKworU0VMRUNUIENB U1QoJyhOYU4sMC4wKSwoMi4wLDQuMCksKDAuMCxpbmZpbml0eSknOjpwb2x5Z29uIEFTIHBvaW50 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgcG9pbnQgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0KKyAoTmFOLEluZmluaXR5KQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgn KDIuMCwwLjApLCgyLjAsNC4wKSwoMC4wLDAuMCknOjpwb2x5Z29uIEFTIHBhdGggREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICAgICBwYXRoICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAoKDIsMCksKDIsNCksKDAsMCkpCisoMSByb3cpCisKK1NFTEVDVCBD QVNUKCcoMi4wLDAuMCksKDIuMCw0LjApLCgwLjAsMC4wKSc6OnBvbHlnb24gQVMgYm94IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgYm94ICAgICAKKy0tLS0tLS0tLS0t LS0KKyAoMiw0KSwoMCwwKQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKE5hTixpbmZpbml0eSks KDIuMCw0LjApLCgwLjAsaW5maW5pdHkpJzo6cG9seWdvbiBBUyBjaXJjbGUgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICAgICBjaXJjbGUgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIDwoTmFOLEluZmluaXR5KSxOYU4+CisoMSByb3cpCisKK1NFTEVDVCBD QVNUKCc8KDUsMSksMz4nOjpjaXJjbGUgQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOworIHBvaW50IAorLS0tLS0tLQorICg1LDEpCisoMSByb3cpCisKK1NFTEVDVCBD QVNUKCc8KDMsNSksMD4nOjpjaXJjbGUgYXMgYm94IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKKyAgICAgYm94ICAgICAKKy0tLS0tLS0tLS0tLS0KKyAoMyw1KSwoMyw1KQorKDEg cm93KQorCistLSBub3Qgc3VwcG9ydGVkIGJlY2F1c2UgdGhlIGNhc3QgZnJvbSBjaXJjbGUgdG8g cG9seWdvbiBpcyBpbXBsZW1lbnRlZCBhcyBhIFNRTAorLS0gZnVuY3Rpb24sIHdoaWNoIGNhbm5v dCBiZSBlcnJvci1zYWZlLgorU0VMRUNUIENBU1QoJzwoMyw1KSwwPic6OmNpcmNsZSBhcyBwb2x5 Z29uIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK0VSUk9SOiAgY2Fubm90IGNh c3QgdHlwZSBjaXJjbGUgdG8gcG9seWdvbiB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVj aWZpZWQgaW4gQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FT VCgnPCgzLDUpLDA+Jzo6Y2lyY2xlIGFzIHBvbHlnb24gREVGQVVMVCBOVUxMIE9OIEMuLi4KKyAg ICAgICAgICAgICAgICAgICAgXgorSElOVDogIEV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQg ZGVmaW5pdGlvbiBpcyBub3QgZGVjbGFyZWQgYXMgc2FmZQorLS0tLS1zYWZlIGNhc3QgZnJvbS90 byBtb25leSB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQsIGFsbCB0aGUgZm9sbG93aW5nIHdvdWxkIHJl c3VsdCBlcnJvcgorU0VMRUNUIENBU1QoTlVMTDo6aW50OCBBUyBtb25leSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgYmlnaW50IHRv IG1vbmV5IHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNUIC4uLiBP TiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKE5VTEw6OmludDggQVMgbW9u ZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRS4uLgorICAgICAgICAgICAgICAgICAgICBe CitISU5UOiAgRXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZpbml0aW9uIGlzIG5vdCBk ZWNsYXJlZCBhcyBzYWZlCitTRUxFQ1QgQ0FTVChOVUxMOjppbnQ0IEFTIG1vbmV5IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBpbnRl Z2VyIHRvIG1vbmV5IHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNU IC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKE5VTEw6OmludDQg QVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRS4uLgorICAgICAgICAgICAgICAg ICAgICBeCitISU5UOiAgRXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZpbml0aW9uIGlz IG5vdCBkZWNsYXJlZCBhcyBzYWZlCitTRUxFQ1QgQ0FTVChOVUxMOjpudW1lcmljIEFTIG1vbmV5 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK0VSUk9SOiAgY2Fubm90IGNhc3Qg dHlwZSBudW1lcmljIHRvIG1vbmV5IHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmll ZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKE5V TEw6Om51bWVyaWMgQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJTy4uLgorICAgICAg ICAgICAgICAgICAgICBeCitISU5UOiAgRXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZp bml0aW9uIGlzIG5vdCBkZWNsYXJlZCBhcyBzYWZlCitTRUxFQ1QgQ0FTVChOVUxMOjptb25leSBB UyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK0VSUk9SOiAgY2Fu bm90IGNhc3QgdHlwZSBtb25leSB0byBudW1lcmljIHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlz IHNwZWNpZmllZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVD VCBDQVNUKE5VTEw6Om1vbmV5IEFTIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJTy4u LgorICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAgRXhwbGljaXQgY2FzdCBpcyBkZWZpbmVk IGJ1dCBkZWZpbml0aW9uIGlzIG5vdCBkZWNsYXJlZCBhcyBzYWZlCistLS0tLXNhZmUgY2FzdCBm cm9tIGJ5dGVhIHR5cGUgdG8gb3RoZXIgZGF0YSB0eXBlcworU0VMRUNUIENBU1QgKCdceDExMjIz MzQ0NTU2Njc3ODg5OSc6OmJ5dGVhIEFTIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOworIGludDggCistLS0tLS0KKyAgICAgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdc eDEyMzQ1Njc4OUEnOjpieXRlYSBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKKyBpbnQ0IAorLS0tLS0tCisgICAgIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnXHgx MjM0NTYnOjpieXRlYSBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK KyBpbnQyIAorLS0tLS0tCisgICAgIAorKDEgcm93KQorCistLS0tLXNhZmUgY2FzdCBmcm9tIGJp dCB0eXBlIHRvIG90aGVyIGRhdGEgdHlwZXMKK1NFTEVDVCBDQVNUKCcxMTExMTExMTExMDAwMDEn OjpiaXQoMTAwKSBBUyBJTlQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGlu dDQgCistLS0tLS0KKyAgICAgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUICgnMTExMTExMTExMTAw MDAxJzo6Yml0KDEwMCkgQVMgSU5UOCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7 CisgaW50OCAKKy0tLS0tLQorICAgICAKKygxIHJvdykKKworLS0tLS1zYWZlIGNhc3QgZnJvbSB0 ZXh0IHR5cGUgdG8gb3RoZXIgZGF0YSB0eXBlcworc2VsZWN0IENBU1QoJ2EuYi5jLmQnOjp0ZXh0 IGFzIHJlZ2NsYXNzIGRlZmF1bHQgTlVMTCBvbiBjb252ZXJzaW9uIGVycm9yKTsKKyByZWdjbGFz cyAKKy0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworQ1JFQVRFIFRBQkxFIHRlc3Rfc2FmZWNhc3Qo Y29sMCB0ZXh0KTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QoY29sMCkgVkFMVUVTICgnPHZh bHVlPm9uZTwvdmFsdWUnKTsKK1NFTEVDVCBjb2wwIGFzIHRleHQsCisgICAgICAgQ0FTVChjb2ww IEFTIHJlZ2NsYXNzIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19yZWdj bGFzcywKKyAgICAgICBDQVNUKGNvbDAgQVMgcmVnY2xhc3MgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIElTIE5VTEwgYXMgZXhwZWN0X3RydWUsCisgICAgICAgQ0FTVChjb2wwIEFT ICJjaGFyIiAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2NoYXIsCisg ICAgICAgQ0FTVChjb2wwIEFTIG5hbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX25hbWUsCisgICAgICAgQ0FTVChjb2wwIEFTIHhtbCBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9feG1sCitGUk9NIHRlc3Rfc2FmZWNhc3Q7CisgICAgICAgdGV4 dCAgICAgICAgfCB0b19yZWdjbGFzcyB8IGV4cGVjdF90cnVlIHwgdG9fY2hhciB8ICAgICAgdG9f bmFtZSAgICAgIHwgdG9feG1sIAorLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0KKyA8dmFs dWU+b25lPC92YWx1ZSB8ICAgICAgICAgICAgIHwgdCAgICAgICAgICAgfCA8ICAgICAgIHwgPHZh bHVlPm9uZTwvdmFsdWUgfCAKKygxIHJvdykKKworU0VMRUNUIENBU1QoJzE5Mi4xNjguMS54JyBh cyBpbmV0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbmV0IAorLS0tLS0t CisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcxOTIuMTY4LjEuMi8zMCcgYXMgY2lkciBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgY2lkciAKKy0tLS0tLQorIAorKDEgcm93 KQorCitTRUxFQ1QgQ0FTVCgnMjI6MDA6NWM6MDg6NTU6MDg6MDE6MDInOjptYWNhZGRyOCBhcyBt YWNhZGRyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBtYWNhZGRyIAorLS0t LS0tLS0tCisgCisoMSByb3cpCisKKy0tLS0tc2FmZSBjYXN0IGJldHdlZWVuIHJhbmdlIGRhdGEg dHlwZXMKK1NFTEVDVCBDQVNUKCdbMSwyXSc6OmludDRyYW5nZSBBUyBpbnQ0bXVsdGlyYW5nZSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50NG11bHRpcmFuZ2UgCistLS0t LS0tLS0tLS0tLS0tCisge1sxLDMpfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnWzEsMl0nOjpp bnQ4cmFuZ2UgQVMgaW50OG11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpOworIGludDhtdWx0aXJhbmdlIAorLS0tLS0tLS0tLS0tLS0tLQorIHtbMSwzKX0KKygxIHJv dykKKworU0VMRUNUIENBU1QoJ1sxLDJdJzo6bnVtcmFuZ2UgIEFTIG51bW11bHRpcmFuZ2UgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIG51bW11bHRpcmFuZ2UgCistLS0tLS0t LS0tLS0tLS0KKyB7WzEsMl19CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdbLWluZmluaXR5LGlu ZmluaXR5XSc6OmRhdGVyYW5nZSBBUyBkYXRlbXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7CisgICAgIGRhdGVtdWx0aXJhbmdlICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIHtbLWluZmluaXR5LGluZmluaXR5XX0KKygxIHJvdykKKworU0VMRUNUIENB U1QoJ1staW5maW5pdHksaW5maW5pdHldJzo6dHNyYW5nZSBBUyB0c211bHRpcmFuZ2UgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICAgdHNtdWx0aXJhbmdlICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7Wy1pbmZpbml0eSxpbmZpbml0eV19CisoMSByb3cp CisKK1NFTEVDVCBDQVNUKCdbLWluZmluaXR5LGluZmluaXR5XSc6OnRzdHpyYW5nZSBBUyB0c3R6 bXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIHRzdHpt dWx0aXJhbmdlICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtbLWluZmluaXR5LGlu ZmluaXR5XX0KKygxIHJvdykKKworLS0tLS1zYWZlIGNhc3QgYmV0d2VlZW4gbnVtZXJpYyBkYXRh IHR5cGVzCitDUkVBVEUgVEFCTEUgdGVzdF9zYWZlY2FzdDEoCisgIGNvbDEgZmxvYXQ0LCBjb2wy IGZsb2F0OCwgY29sMyBudW1lcmljLCBjb2w0IG51bWVyaWNbXSwKKyAgY29sNSBpbnQyIGRlZmF1 bHQgMzI3NjcsCisgIGNvbDYgaW50NCBkZWZhdWx0IDMyNzY4LAorICBjb2w3IGludDggZGVmYXVs dCA0Mjk0OTY3Mjk2KTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QxIFZBTFVFUygnMTEuMTIz NCcsICcxMS4xMjM0JywgJzkyMjMzNzIwMzY4NTQ3NzU4MDgnLCAnezExLjEyMzR9Jzo6bnVtZXJp Y1tdKTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QxIFZBTFVFUygnaW5mJywgJ2luZicsICdp bmYnLCAnezExLjEyMzQsIDEyLCBpbmYsIE5hTn0nOjpudW1lcmljW10pOworSU5TRVJUIElOVE8g dGVzdF9zYWZlY2FzdDEgVkFMVUVTKCctaW5mJywgJy1pbmYnLCAnLWluZicsICd7MTEuMTIzNCwg MTIsIC1pbmYsIE5hTn0nOjpudW1lcmljW10pOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDEg VkFMVUVTKCdOYU4nLCAnTmFOJywgJ05hTicsICd7MTEuMTIzNCwgMTIsIC1pbmYsIE5hTn0nOjpu dW1lcmljW10pOworU0VMRUNUIGNvbDUgYXMgaW50MiwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50 MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBD QVNUKGNvbDUgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f aW50NCwKKyAgICAgICBDQVNUKGNvbDUgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2w1IGFzIGludDggREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2w1IGFzIGZs b2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAg ICAgIENBU1QoY29sNSBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDUgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDUgYXMg bnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVt ZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKyBpbnQyICB8IHRvX2ludDIgfCB0b19p bnQ0IHwgdG9fb2lkIHwgdG9faW50OCB8IHRvX2Zsb2F0NCB8IHRvX2Zsb2F0OCB8IHRvX251bWVy aWMgfCB0b19udW1lcmljX3NjYWxlIAorLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tCisgMzI3NjcgfCAgIDMyNzY3IHwgICAzMjc2NyB8ICAzMjc2NyB8ICAgMzI3 NjcgfCAgICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgIDMyNzY3IHwgICAgICAgICAgMzI3Njcu MAorIDMyNzY3IHwgICAzMjc2NyB8ICAgMzI3NjcgfCAgMzI3NjcgfCAgIDMyNzY3IHwgICAgIDMy NzY3IHwgICAgIDMyNzY3IHwgICAgICAzMjc2NyB8ICAgICAgICAgIDMyNzY3LjAKKyAzMjc2NyB8 ICAgMzI3NjcgfCAgIDMyNzY3IHwgIDMyNzY3IHwgICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAz Mjc2NyB8ICAgICAgMzI3NjcgfCAgICAgICAgICAzMjc2Ny4wCisgMzI3NjcgfCAgIDMyNzY3IHwg ICAzMjc2NyB8ICAzMjc2NyB8ICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAg IDMyNzY3IHwgICAgICAgICAgMzI3NjcuMAorKDQgcm93cykKKworU0VMRUNUIGNvbDYgYXMgaW50 NCwKKyAgICAgICBDQVNUKGNvbDYgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDYgQVMgaW50NCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDYgQVMgb2lk IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FT VChjb2w2IGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2lu dDgsCisgICAgICAgQ0FTVChjb2w2IGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sNiBhcyBmbG9hdDggREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNv bDYgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVt ZXJpYywKKyAgICAgICBDQVNUKGNvbDYgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0 MTsKKyBpbnQ0ICB8IHRvX2ludDIgfCB0b19pbnQ0IHwgdG9fb2lkIHwgdG9faW50OCB8IHRvX2Zs b2F0NCB8IHRvX2Zsb2F0OCB8IHRvX251bWVyaWMgfCB0b19udW1lcmljX3NjYWxlIAorLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgMzI3NjggfCAgICAgICAg IHwgICAzMjc2OCB8ICAzMjc2OCB8ICAgMzI3NjggfCAgICAgMzI3NjggfCAgICAgMzI3NjggfCAg ICAgIDMyNzY4IHwgICAgICAgICAgMzI3NjguMAorIDMyNzY4IHwgICAgICAgICB8ICAgMzI3Njgg fCAgMzI3NjggfCAgIDMyNzY4IHwgICAgIDMyNzY4IHwgICAgIDMyNzY4IHwgICAgICAzMjc2OCB8 ICAgICAgICAgIDMyNzY4LjAKKyAzMjc2OCB8ICAgICAgICAgfCAgIDMyNzY4IHwgIDMyNzY4IHwg ICAzMjc2OCB8ICAgICAzMjc2OCB8ICAgICAzMjc2OCB8ICAgICAgMzI3NjggfCAgICAgICAgICAz Mjc2OC4wCisgMzI3NjggfCAgICAgICAgIHwgICAzMjc2OCB8ICAzMjc2OCB8ICAgMzI3NjggfCAg ICAgMzI3NjggfCAgICAgMzI3NjggfCAgICAgIDMyNzY4IHwgICAgICAgICAgMzI3NjguMAorKDQg cm93cykKKworU0VMRUNUIGNvbDcgYXMgaW50OCwKKyAgICAgICBDQVNUKGNvbDcgQVMgaW50MiBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNU KGNvbDcgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50 NCwKKyAgICAgICBDQVNUKGNvbDcgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2w3IGFzIGludDggREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2w3IGFzIGZsb2F0 NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAg IENBU1QoY29sNyBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDcgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDcgYXMgbnVt ZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJp Y19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKyAgICBpbnQ4ICAgIHwgdG9faW50MiB8IHRv X2ludDQgfCB0b19vaWQgfCAgdG9faW50OCAgIHwgIHRvX2Zsb2F0NCAgfCB0b19mbG9hdDggIHwg dG9fbnVtZXJpYyB8IHRvX251bWVyaWNfc2NhbGUgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIDQyOTQ5NjcyOTYgfCAgICAgICAgIHwg ICAgICAgICB8ICAgICAgICB8IDQyOTQ5NjcyOTYgfCA0LjI5NDk3ZSswOSB8IDQyOTQ5NjcyOTYg fCA0Mjk0OTY3Mjk2IHwgICAgICAgICAgICAgICAgIAorIDQyOTQ5NjcyOTYgfCAgICAgICAgIHwg ICAgICAgICB8ICAgICAgICB8IDQyOTQ5NjcyOTYgfCA0LjI5NDk3ZSswOSB8IDQyOTQ5NjcyOTYg fCA0Mjk0OTY3Mjk2IHwgICAgICAgICAgICAgICAgIAorIDQyOTQ5NjcyOTYgfCAgICAgICAgIHwg ICAgICAgICB8ICAgICAgICB8IDQyOTQ5NjcyOTYgfCA0LjI5NDk3ZSswOSB8IDQyOTQ5NjcyOTYg fCA0Mjk0OTY3Mjk2IHwgICAgICAgICAgICAgICAgIAorIDQyOTQ5NjcyOTYgfCAgICAgICAgIHwg ICAgICAgICB8ICAgICAgICB8IDQyOTQ5NjcyOTYgfCA0LjI5NDk3ZSswOSB8IDQyOTQ5NjcyOTYg fCA0Mjk0OTY3Mjk2IHwgICAgICAgICAgICAgICAgIAorKDQgcm93cykKKworU0VMRUNUIGNvbDMg YXMgbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDMgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDMgQVMgaW50NCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNv bDMgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisg ICAgICAgQ0FTVChjb2wzIGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2wzIGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sMyBhcyBmbG9h dDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAg ICBDQVNUKGNvbDMgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDMgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0 X3NhZmVjYXN0MTsKKyAgICAgICBudW1lcmljICAgICAgIHwgdG9faW50MiB8IHRvX2ludDQgfCB0 b19vaWQgfCB0b19pbnQ4IHwgIHRvX2Zsb2F0NCAgfCAgICAgIHRvX2Zsb2F0OCAgICAgICB8ICAg ICB0b19udW1lcmljICAgICAgfCB0b19udW1lcmljX3NjYWxlIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tCisgOTIyMzM3MjAzNjg1NDc3NTgwOCB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAg IHwgICAgICAgICB8IDkuMjIzMzdlKzE4IHwgOS4yMjMzNzIwMzY4NTQ3OGUrMTggfCA5MjIzMzcy MDM2ODU0Nzc1ODA4IHwgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgSW5maW5pdHkgfCAg ICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAgICBJbmZpbml0eSB8ICAgICAg ICAgICAgIEluZmluaXR5IHwgICAgICAgICAgICBJbmZpbml0eSB8ICAgICAgICAgICAgICAgICAK KyAgICAgICAgICAgLUluZmluaXR5IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAg ICAgIHwgICAtSW5maW5pdHkgfCAgICAgICAgICAgIC1JbmZpbml0eSB8ICAgICAgICAgICAtSW5m aW5pdHkgfCAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgIE5hTiB8ICAgICAgICAg fCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgTmFOIHwgICAgICAgICAgICAg ICAgICBOYU4gfCAgICAgICAgICAgICAgICAgTmFOIHwgICAgICAgICAgICAgIE5hTgorKDQgcm93 cykKKworU0VMRUNUIGNvbDQgYXMgbnVtX2FyciwKKyAgICAgICBDQVNUKGNvbDQgQVMgaW50Mltd IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBpbnQyYXJyLAorICAgICAgIENB U1QoY29sNCBBUyBpbnQ0W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGlu dDRhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIGludDhbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgaW50OGFyciwKKyAgICAgICBDQVNUKGNvbDQgYXMgZmxvYXQ0W10gREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGY0YXJyLAorICAgICAgIENBU1QoY29s NCBhcyBmbG9hdDhbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgZjhhcnIs CisgICAgICAgQ0FTVChjb2w0IGFzIG51bWVyaWMoMTAsMSlbXSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgbnVtYXJyCitGUk9NIHRlc3Rfc2FmZWNhc3QxOworICAgICAgICAg IG51bV9hcnIgICAgICAgICAgIHwgaW50MmFyciB8IGludDRhcnIgfCBpbnQ4YXJyIHwgICAgICAg ICAgIGY0YXJyICAgICAgICAgICAgfCAgICAgICAgICAgZjhhcnIgICAgICAgICAgICB8IG51bWFy ciAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tCisgezExLjEyMzR9ICAgICAgICAgICAgICAgICAgfCB7MTF9ICAgIHwg ezExfSAgICB8IHsxMX0gICAgfCB7MTEuMTIzNH0gICAgICAgICAgICAgICAgICB8IHsxMS4xMjM0 fSAgICAgICAgICAgICAgICAgIHwgezExLjF9CisgezExLjEyMzQsMTIsSW5maW5pdHksTmFOfSAg fCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfCB7MTEuMTIzNCwxMixJbmZpbml0eSxOYU59 ICB8IHsxMS4xMjM0LDEyLEluZmluaXR5LE5hTn0gIHwgCisgezExLjEyMzQsMTIsLUluZmluaXR5 LE5hTn0gfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfCB7MTEuMTIzNCwxMiwtSW5maW5p dHksTmFOfSB8IHsxMS4xMjM0LDEyLC1JbmZpbml0eSxOYU59IHwgCisgezExLjEyMzQsMTIsLUlu ZmluaXR5LE5hTn0gfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfCB7MTEuMTIzNCwxMiwt SW5maW5pdHksTmFOfSB8IHsxMS4xMjM0LDEyLC1JbmZpbml0eSxOYU59IHwgCisoNCByb3dzKQor CitTRUxFQ1QgY29sMSBhcyBmbG9hdDQsCisgICAgICAgQ0FTVChjb2wxIEFTIGludDIgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChjb2wx IEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisg ICAgICAgQ0FTVChjb2wxIEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sMSBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sMSBhcyBmbG9hdDQgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNU KGNvbDEgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19m bG9hdDgsCisgICAgICAgQ0FTVChjb2wxIGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2wxIGFzIG51bWVyaWMo MTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2Nh bGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisgIGZsb2F0NCAgIHwgdG9faW50MiB8IHRvX2ludDQg fCB0b19vaWQgfCB0b19pbnQ4IHwgdG9fZmxvYXQ0IHwgICAgdG9fZmxvYXQ4ICAgICB8IHRvX251 bWVyaWMgfCB0b19udW1lcmljX3NjYWxlIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyAgIDExLjEyMzQgfCAgICAgIDExIHwgICAgICAx MSB8ICAgICAgICB8ICAgICAgMTEgfCAgIDExLjEyMzQgfCAxMS4xMjMzOTk3MzQ0OTcxIHwgICAg MTEuMTIzNCB8ICAgICAgICAgICAgIDExLjEKKyAgSW5maW5pdHkgfCAgICAgICAgIHwgICAgICAg ICB8ICAgICAgICB8ICAgICAgICAgfCAgSW5maW5pdHkgfCAgICAgICAgIEluZmluaXR5IHwgICBJ bmZpbml0eSB8ICAgICAgICAgICAgICAgICAKKyAtSW5maW5pdHkgfCAgICAgICAgIHwgICAgICAg ICB8ICAgICAgICB8ICAgICAgICAgfCAtSW5maW5pdHkgfCAgICAgICAgLUluZmluaXR5IHwgIC1J bmZpbml0eSB8ICAgICAgICAgICAgICAgICAKKyAgICAgICBOYU4gfCAgICAgICAgIHwgICAgICAg ICB8ICAgICAgICB8ICAgICAgICAgfCAgICAgICBOYU4gfCAgICAgICAgICAgICAgTmFOIHwgICAg ICAgIE5hTiB8ICAgICAgICAgICAgICBOYU4KKyg0IHJvd3MpCisKK1NFTEVDVCBjb2wyIGFzIGZs b2F0OCwKKyAgICAgICBDQVNUKGNvbDIgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDIgQVMgaW50NCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDIgQVMg b2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAg Q0FTVChjb2wyIGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2ludDgsCisgICAgICAgQ0FTVChjb2wyIGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sMiBhcyBmbG9hdDggREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNU KGNvbDIgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f bnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDIgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVj YXN0MTsKKyAgZmxvYXQ4ICAgfCB0b19pbnQyIHwgdG9faW50NCB8IHRvX29pZCB8IHRvX2ludDgg fCB0b19mbG9hdDQgfCB0b19mbG9hdDggfCB0b19udW1lcmljIHwgdG9fbnVtZXJpY19zY2FsZSAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyAgIDEx LjEyMzQgfCAgICAgIDExIHwgICAgICAxMSB8ICAgICAgICB8ICAgICAgMTEgfCAgIDExLjEyMzQg fCAgIDExLjEyMzQgfCAgICAxMS4xMjM0IHwgICAgICAgICAgICAgMTEuMQorICBJbmZpbml0eSB8 ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICBJbmZpbml0eSB8ICBJbmZp bml0eSB8ICAgSW5maW5pdHkgfCAgICAgICAgICAgICAgICAgCisgLUluZmluaXR5IHwgICAgICAg ICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwgLUluZmluaXR5IHwgLUluZmluaXR5IHwg IC1JbmZpbml0eSB8ICAgICAgICAgICAgICAgICAKKyAgICAgICBOYU4gfCAgICAgICAgIHwgICAg ICAgICB8ICAgICAgICB8ICAgICAgICAgfCAgICAgICBOYU4gfCAgICAgICBOYU4gfCAgICAgICAg TmFOIHwgICAgICAgICAgICAgIE5hTgorKDQgcm93cykKKworLS0gZGF0ZS90aW1lc3RhbXAvaW50 ZXJ2YWwgcmVsYXRlZCBzYWZlIHR5cGUgY2FzdAorQ1JFQVRFIFRBQkxFIHRlc3Rfc2FmZWNhc3Qy KAorICBjb2wwIGRhdGUsIGNvbDEgdGltZXN0YW1wLCBjb2wyIHRpbWVzdGFtcHR6LAorICBjb2wz IGludGVydmFsLCBjb2w0IHRpbWUsIGNvbDUgdGltZXR6KTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2Fm ZWNhc3QyIFZBTFVFUworKCctaW5maW5pdHknLCAnLWluZmluaXR5JywgJy1pbmZpbml0eScsICct aW5maW5pdHknLAorICAnMjAwMy0wMy0wNyAxNTozNjozOSBBbWVyaWNhL05ld19Zb3JrJywgJzIw MDMtMDctMDcgMTU6MzY6MzkgQW1lcmljYS9OZXdfWW9yaycpLAorKCctaW5maW5pdHknLCAnaW5m aW5pdHknLCAnaW5maW5pdHknLCAnaW5maW5pdHknLAorICAnMTE6NTk6NTkuOTkgUE0nLCAnMTE6 NTk6NTkuOTkgUE0gUERUJyk7CitTRUxFQ1QgY29sMCBhcyBkYXRlLAorICAgICAgIENBU1QoY29s MCBBUyB0aW1lc3RhbXB0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f dGltZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wwIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2RhdGUsCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWUgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1Qo Y29sMCBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3Rp bWV0eiwKKyAgICAgICBDQVNUKGNvbDAgQVMgdGltZXN0YW1wKDIpIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXBfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2Fz dDI7CisgICBkYXRlICAgIHwgdG9fdGltZXN0YW1wdHogfCAgdG9fZGF0ZSAgfCB0b190aW1lcyB8 IHRvX3RpbWV0eiB8IHRvX3RpbWVzdGFtcF9zY2FsZSAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLQorIC1pbmZpbml0eSB8IC1pbmZpbml0eSAgICAgIHwgLWluZmluaXR5IHwgICAgICAgICAg fCAgICAgICAgICAgfCAtaW5maW5pdHkKKyAtaW5maW5pdHkgfCAtaW5maW5pdHkgICAgICB8IC1p bmZpbml0eSB8ICAgICAgICAgIHwgICAgICAgICAgIHwgLWluZmluaXR5CisoMiByb3dzKQorCitT RUxFQ1QgY29sMSBhcyB0aW1lc3RhbXAsCisgICAgICAgQ0FTVChjb2wxIEFTIHRpbWVzdGFtcHR6 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAg ICAgICBDQVNUKGNvbDEgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fZGF0ZSwKKyAgICAgICBDQVNUKGNvbDEgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wxIEFTIHRpbWV0eiBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENB U1QoY29sMSBBUyB0aW1lc3RhbXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX3RpbWVzdGFtcF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKyB0aW1lc3RhbXAg fCB0b190aW1lc3RhbXB0eiB8ICB0b19kYXRlICB8IHRvX3RpbWVzIHwgdG9fdGltZXR6IHwgdG9f dGltZXN0YW1wX3NjYWxlIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgLWluZmluaXR5 IHwgLWluZmluaXR5ICAgICAgfCAtaW5maW5pdHkgfCAgICAgICAgICB8ICAgICAgICAgICB8IC1p bmZpbml0eQorIGluZmluaXR5ICB8IGluZmluaXR5ICAgICAgIHwgaW5maW5pdHkgIHwgICAgICAg ICAgfCAgICAgICAgICAgfCBpbmZpbml0eQorKDIgcm93cykKKworU0VMRUNUIGNvbDIgYXMgdGlt ZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWVzdGFtcHR6IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDIg QVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0ZSwKKyAg ICAgICBDQVNUKGNvbDIgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sMiBBUyB0aW1l c3RhbXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFt cF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKyB0aW1lc3RhbXB0eiB8IHRvX3RpbWVzdGFt cHR6IHwgIHRvX2RhdGUgIHwgdG9fdGltZXMgfCB0b190aW1ldHogfCB0b190aW1lc3RhbXBfc2Nh bGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIC1pbmZpbml0eSAgIHwgLWluZmlu aXR5ICAgICAgfCAtaW5maW5pdHkgfCAgICAgICAgICB8ICAgICAgICAgICB8IC1pbmZpbml0eQor IGluZmluaXR5ICAgIHwgaW5maW5pdHkgICAgICAgfCBpbmZpbml0eSAgfCAgICAgICAgICB8ICAg ICAgICAgICB8IGluZmluaXR5CisoMiByb3dzKQorCitTRUxFQ1QgY29sMyBhcyBpbnRlcnZhbCwK KyAgICAgICBDQVNUKGNvbDMgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMyBBUyBkYXRlIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAgIENBU1Qo Y29sMyBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1l cywKKyAgICAgICBDQVNUKGNvbDMgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWVzdGFtcCgyKSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3NjYWxlLAor ICAgICAgIENBU1QoY29sMyBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9faW50ZXJ2YWxfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisgaW50 ZXJ2YWwgIHwgdG9fdGltZXN0YW1wdHogfCB0b19kYXRlIHwgdG9fdGltZXMgfCB0b190aW1ldHog fCB0b190aW1lc3RhbXBfc2NhbGUgfCB0b19pbnRlcnZhbF9zY2FsZSAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLQorIC1pbmZpbml0eSB8ICAgICAgICAgICAg ICAgIHwgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg IHwgLWluZmluaXR5CisgaW5maW5pdHkgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgIHwgICAg ICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCBpbmZpbml0eQorKDIgcm93 cykKKworU0VMRUNUIGNvbDQgYXMgdGltZSwKKyAgICAgICBDQVNUKGNvbDQgQVMgdGltZSgyKSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FT VChjb2w0IEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgSVMgTk9U IE5VTEwgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sNCBBUyBpbnRlcnZhbCgyKSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWwsCisgICAgICAgQ0FT VChjb2w0IEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19pbnRlcnZhbF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKyAgICB0aW1lICAgICB8 ICB0b190aW1lcyAgIHwgdG9fdGltZXR6IHwgICAgICAgICAgdG9faW50ZXJ2YWwgICAgICAgICAg fCAgICAgICB0b19pbnRlcnZhbF9zY2FsZSAgICAgICAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAxNTozNjozOSAgICB8IDE1OjM2OjM5ICAgIHwgdCAg ICAgICAgIHwgQCAxNSBob3VycyAzNiBtaW5zIDM5IHNlY3MgICAgfCBAIDE1IGhvdXJzIDM2IG1p bnMgMzkgc2VjcworIDIzOjU5OjU5Ljk5IHwgMjM6NTk6NTkuOTkgfCB0ICAgICAgICAgfCBAIDIz IGhvdXJzIDU5IG1pbnMgNTkuOTkgc2VjcyB8IEAgMjMgaG91cnMgNTkgbWlucyA1OS45OSBzZWNz CisoMiByb3dzKQorCitTRUxFQ1QgY29sNSBhcyB0aW1ldHosCisgICAgICAgQ0FTVChjb2w1IEFT IHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWUsCisgICAg ICAgQ0FTVChjb2w1IEFTIHRpbWUoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX3RpbWVfc2NhbGUsCisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWV0eiBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sNSBB UyB0aW1ldHooNikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0 el9zY2FsZSwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50ZXJ2YWwgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsLAorICAgICAgIENBU1QoY29sNSBBUyBpbnRl cnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWxf c2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisgICAgIHRpbWV0eiAgICAgfCAgIHRvX3RpbWUg ICB8IHRvX3RpbWVfc2NhbGUgfCAgIHRvX3RpbWV0eiAgICB8IHRvX3RpbWV0el9zY2FsZSB8IHRv X2ludGVydmFsIHwgdG9faW50ZXJ2YWxfc2NhbGUgCistLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCisgMTU6MzY6MzktMDQgICAgfCAxNToz NjozOSAgICB8IDE1OjM2OjM5ICAgICAgfCAxNTozNjozOS0wNCAgICB8IDE1OjM2OjM5LTA0ICAg ICB8ICAgICAgICAgICAgIHwgCisgMjM6NTk6NTkuOTktMDcgfCAyMzo1OTo1OS45OSB8IDIzOjU5 OjU5Ljk5ICAgfCAyMzo1OTo1OS45OS0wNyB8IDIzOjU5OjU5Ljk5LTA3ICB8ICAgICAgICAgICAg IHwgCisoMiByb3dzKQorCitDUkVBVEUgVEFCTEUgdGVzdF9zYWZlY2FzdDMoY29sMCBqc29uYik7 CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0Myhjb2wwKSBWQUxVRVMgKCcidGVzdCInKTsKK1NF TEVDVCBjb2wwIGFzIGpzb25iLAorICAgICAgIENBU1QoY29sMCBBUyBpbnRlZ2VyIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlZ2VyLAorICAgICAgIENBU1QoY29s MCBBUyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1l cmljLAorICAgICAgIENBU1QoY29sMCBBUyBiaWdpbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2wwIEFTIGZsb2F0NCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29s MCBBUyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0 OCwKKyAgICAgICBDQVNUKGNvbDAgQVMgYm9vbGVhbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fYm9vbCwKKyAgICAgICBDQVNUKGNvbDAgQVMgc21hbGxpbnQgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3NtYWxsaW50CitGUk9NIHRlc3Rfc2Fm ZWNhc3QzOworIGpzb25iICB8IHRvX2ludGVnZXIgfCB0b19udW1lcmljIHwgdG9faW50OCB8IHRv X2Zsb2F0NCB8IHRvX2Zsb2F0OCB8IHRvX2Jvb2wgfCB0b19zbWFsbGludCAKKy0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgInRlc3QiIHwgICAgICAgICAgICB8ICAgICAgICAg ICAgfCAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAg ICAgCisoMSByb3cpCisKKy0tIHRlc3QgZGVwYXJzZQorQ1JFQVRFIERPTUFJTiBkX2ludF9hcnIg YXMgaW50W107CitDUkVBVEUgVklFVyBzYWZlY2FzdHZpZXcgQVMKK1NFTEVDVCBDQVNUKCcxMjM0 JyBhcyBjaGFyKDMpIERFRkFVTFQgLTExMTEgT04gQ09OVkVSU0lPTiBFUlJPUiksCisgICAgICAg Q0FTVCgxIGFzIGRhdGUgREVGQVVMVCAoKG5vdygpOjpkYXRlICsgcmFuZG9tKG1pbj0+MSwgbWF4 PT4xOjppbnQpKSkgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdGVzdF9zYWZlY2FzdDEsCisgICAg ICAgQ0FTVChBUlJBWVtbJzEnXSwgWyd0aHJlZSddLFsnYSddXSBBUyBpbnRbXSBERUZBVUxUICd7 MSwyfScgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDEsCisgICAgICAgQ0FTVChBUlJBWVtb JzEnLCAnMiddLCBbJ3RocmVlJywgJ2EnXV0gQVMgZGF0ZVtdIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyBjYXN0MiwKKyAgICAgICBDQVNUKEFSUkFZWyd0aHJlZSddIEFTIElO VFtdIERFRkFVTFQgJ3sxLDJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MzsKK1xzdiBz YWZlY2FzdHZpZXcKK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLnNhZmVjYXN0dmlldyBB UworIFNFTEVDVCBDQVNUKCcxMjM0JyBBUyBjaGFyYWN0ZXIoMykgREVGQVVMVCAnLTExMTEnOjpp bnRlZ2VyOjpjaGFyYWN0ZXIoMykgT04gQ09OVkVSU0lPTiBFUlJPUikgQVMgYnBjaGFyLAorICAg IENBU1QoMSBBUyBkYXRlIERFRkFVTFQgbm93KCk6OmRhdGUgKyByYW5kb20obWluID0+IDEsIG1h eCA9PiAxKSBPTiBDT05WRVJTSU9OIEVSUk9SKSBBUyB0ZXN0X3NhZmVjYXN0MSwKKyAgICBDQVNU KEFSUkFZW0FSUkFZWzFdLCBBUlJBWVsndGhyZWUnXSwgQVJSQVlbJ2EnXV0gQVMgaW50ZWdlcltd IERFRkFVTFQgJ3sxLDJ9Jzo6aW50ZWdlcltdIE9OIENPTlZFUlNJT04gRVJST1IpIEFTIGNhc3Qx LAorICAgIENBU1QoQVJSQVlbQVJSQVlbJzEnLCAnMiddLCBBUlJBWVsndGhyZWUnLCAnYSddXSBB UyBkYXRlW10gREVGQVVMVCBOVUxMOjpkYXRlW10gT04gQ09OVkVSU0lPTiBFUlJPUikgQVMgY2Fz dDIsCisgICAgQ0FTVChBUlJBWVsndGhyZWUnXSBBUyBpbnRlZ2VyW10gREVGQVVMVCAnezEsMn0n OjppbnRlZ2VyW10gT04gQ09OVkVSU0lPTiBFUlJPUikgQVMgY2FzdDMKK0NSRUFURSBWSUVXIHNh ZmVjYXN0dmlldzEgQVMKK1NFTEVDVCBDQVNUKEFSUkFZW1snMSddLCBbJ3RocmVlJ10sWydhJ11d IEFTIGRfaW50X2FyciBERUZBVUxUICd7MSwyfScgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2Fz dDEsCisgICAgICAgQ0FTVChBUlJBWVtbJzEnLCAnMiddLCBbJ3RocmVlJywgJ2EnXV0gQVMgZF9p bnRfYXJyIERFRkFVTFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3QyOwor XHN2IHNhZmVjYXN0dmlldzEKK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLnNhZmVjYXN0 dmlldzEgQVMKKyBTRUxFQ1QgQ0FTVChBUlJBWVtBUlJBWVsxXSwgQVJSQVlbJ3RocmVlJ10sIEFS UkFZWydhJ11dIEFTIGRfaW50X2FyciBERUZBVUxUICd7MSwyfSc6OmludGVnZXJbXTo6ZF9pbnRf YXJyIE9OIENPTlZFUlNJT04gRVJST1IpIEFTIGNhc3QxLAorICAgIENBU1QoQVJSQVlbQVJSQVlb MSwgMl0sIEFSUkFZWyd0aHJlZScsICdhJ11dIEFTIGRfaW50X2FyciBERUZBVUxUICd7MjEsMjJ9 Jzo6aW50ZWdlcltdOjpkX2ludF9hcnIgT04gQ09OVkVSU0lPTiBFUlJPUikgQVMgY2FzdDIKK1NF TEVDVCAqIEZST00gc2FmZWNhc3R2aWV3MTsKKyBjYXN0MSB8ICBjYXN0MiAgCistLS0tLS0tKy0t LS0tLS0tLQorIHsxLDJ9IHwgezIxLDIyfQorKDEgcm93KQorCistLWVycm9yLCBkZWZhdWx0IGV4 cHJlc3Npb24gaXMgbXV0YWJsZQorQ1JFQVRFIElOREVYIGNhc3RfZXJyb3JfaWR4IE9OIHRlc3Rf c2FmZWNhc3QzKChDQVNUKGNvbDAgYXMgaW50IERFRkFVTFQgcmFuZG9tKG1pbj0+MSwgbWF4PT4x KSBPTiBDT05WRVJTSU9OIEVSUk9SKSkpOworRVJST1I6ICBmdW5jdGlvbnMgaW4gaW5kZXggZXhw cmVzc2lvbiBtdXN0IGJlIG1hcmtlZCBJTU1VVEFCTEUKK0NSRUFURSBJTkRFWCBjYXN0X2Vycm9y X2lkeCBPTiB0ZXN0X3NhZmVjYXN0MygoQ0FTVChjb2wwIGFzIHhpZCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikpKTsKK0VSUk9SOiAgZGF0YSB0eXBlIHhpZCBoYXMgbm8gZGVmYXVs dCBvcGVyYXRvciBjbGFzcyBmb3IgYWNjZXNzIG1ldGhvZCAiYnRyZWUiCitISU5UOiAgWW91IG11 c3Qgc3BlY2lmeSBhbiBvcGVyYXRvciBjbGFzcyBmb3IgdGhlIGluZGV4IG9yIGRlZmluZSBhIGRl ZmF1bHQgb3BlcmF0b3IgY2xhc3MgZm9yIHRoZSBkYXRhIHR5cGUuCitDUkVBVEUgSU5ERVggdGVz dF9zYWZlY2FzdDNfaWR4IE9OIHRlc3Rfc2FmZWNhc3QzKChDQVNUKGNvbDAgYXMgaW50IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSkpOyAtLW9rCitTRUxFQ1QgcGdfZ2V0X2luZGV4 ZGVmKCd0ZXN0X3NhZmVjYXN0M19pZHgnOjpyZWdjbGFzcyk7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X2luZGV4ZGVm ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENSRUFURSBJTkRFWCB0ZXN0X3NhZmVj YXN0M19pZHggT04gcHVibGljLnRlc3Rfc2FmZWNhc3QzIFVTSU5HIGJ0cmVlICgoQ0FTVChjb2ww IEFTIGludGVnZXIgREVGQVVMVCBOVUxMOjppbnRlZ2VyIE9OIENPTlZFUlNJT04gRVJST1IpKSkK KygxIHJvdykKKworRFJPUCBUQUJMRSB0ZXN0X3NhZmVjYXN0OworRFJPUCBUQUJMRSB0ZXN0X3Nh ZmVjYXN0MTsKK0RST1AgVEFCTEUgdGVzdF9zYWZlY2FzdDI7CitEUk9QIFRBQkxFIHRlc3Rfc2Fm ZWNhc3QzOworRFJPUCBUQUJMRSB0Y2FzdDsKK0RST1AgRlVOQ1RJT04gcmV0X2ludDg7CitEUk9Q IEZVTkNUSU9OIHJldF9zZXRpbnQ7CitEUk9QIFRZUEUgY29tcF9kb21haW5fd2l0aF90eXBtb2Q7 CitEUk9QIFRZUEUgY29tcDI7CitEUk9QIERPTUFJTiBkX3ZhcmNoYXI7CitEUk9QIERPTUFJTiBk X2ludDQyOworRFJPUCBET01BSU4gZF9jaGFyM19ub3RfbnVsbDsKK1JFU0VUIGV4dHJhX2Zsb2F0 X2RpZ2l0czsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2Nh c3Qub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfY2FzdC5vdXQKaW5kZXgg MGU2OTY0NGJjYTIuLmY0MDM1YzMzOGFhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2NyZWF0ZV9jYXN0Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Ny ZWF0ZV9jYXN0Lm91dApAQCAtODgsNiArODgsMTEgQEAgU0VMRUNUIDEyMzQ6OmludDQ6OmNhc3R0 ZXN0dHlwZTsgLS0gU2hvdWxkIHdvcmsgbm93CiAgYmFyMTIzNAogKDEgcm93KQogCitTRUxFQ1Qg Q0FTVCgxMjM0OjppbnQ0IEFTIGNhc3R0ZXN0dHlwZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7IC0tIGVycm9yCitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgaW50ZWdlciB0byBj YXN0dGVzdHR5cGUgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1Qg Li4uIE9OIENPTlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENBU1QoMTIzNDo6aW50NCBB UyBjYXN0dGVzdHR5cGUgREVGQVVMVCBOVUxMIE9OIENPTlZFLi4uCisgICAgICAgICAgICAgICAg ICAgIF4KK0hJTlQ6ICBFeHBsaWNpdCBjYXN0IGlzIGRlZmluZWQgYnV0IGRlZmluaXRpb24gaXMg bm90IGRlY2xhcmVkIGFzIHNhZmUKIC0tIGNoZWNrIGRlcGVuZGVuY2llcyBnZW5lcmF0ZWQgZm9y IHRoYXQKIFNFTEVDVCBwZ19kZXNjcmliZV9vYmplY3QoY2xhc3NpZCwgb2JqaWQsIG9ianN1Ymlk KSBhcyBvYmosCiAgICAgICAgcGdfZGVzY3JpYmVfb2JqZWN0KHJlZmNsYXNzaWQsIHJlZm9iamlk LCByZWZvYmpzdWJpZCkgYXMgb2JqcmVmLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9vcHJfc2FuaXR5Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nh bml0eS5vdXQKaW5kZXggYTM1N2UxZDBjMGUuLjgxZWEyNDQ4NTlmIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKQEAgLTk0Myw4ICs5NDMsOCBAQCBTRUxFQ1QgKgog RlJPTSBwZ19jYXN0IGMKIFdIRVJFIGNhc3Rzb3VyY2UgPSAwIE9SIGNhc3R0YXJnZXQgPSAwIE9S IGNhc3Rjb250ZXh0IE5PVCBJTiAoJ2UnLCAnYScsICdpJykKICAgICBPUiBjYXN0bWV0aG9kIE5P VCBJTiAoJ2YnLCAnYicgLCdpJyk7Ci0gb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBj YXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIG9pZCB8 IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3Rt ZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQogKDAg cm93cykKIAogLS0gQ2hlY2sgdGhhdCBjYXN0ZnVuYyBpcyBub256ZXJvIG9ubHkgZm9yIGNhc3Qg bWV0aG9kcyB0aGF0IG5lZWQgYSBmdW5jdGlvbiwKQEAgLTk1Myw4ICs5NTMsOCBAQCBTRUxFQ1Qg KgogRlJPTSBwZ19jYXN0IGMKIFdIRVJFIChjYXN0bWV0aG9kID0gJ2YnIEFORCBjYXN0ZnVuYyA9 IDApCiAgICBPUiAoY2FzdG1ldGhvZCBJTiAoJ2InLCAnaScpIEFORCBjYXN0ZnVuYyA8PiAwKTsK LSBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQg fCBjYXN0bWV0aG9kIAotLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJn ZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8IGNhc3RlcnJvcnNhZmUg CistLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBMb29rIGZvciBj YXN0cyB0by9mcm9tIHRoZSBzYW1lIHR5cGUgdGhhdCBhcmVuJ3QgbGVuZ3RoIGNvZXJjaW9uIGZ1 bmN0aW9ucy4KQEAgLTk2MywxNSArOTYzLDE1IEBAIFdIRVJFIChjYXN0bWV0aG9kID0gJ2YnIEFO RCBjYXN0ZnVuYyA9IDApCiBTRUxFQ1QgKgogRlJPTSBwZ19jYXN0IGMKIFdIRVJFIGNhc3Rzb3Vy Y2UgPSBjYXN0dGFyZ2V0IEFORCBjYXN0ZnVuYyA9IDA7Ci0gb2lkIHwgY2FzdHNvdXJjZSB8IGNh c3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29u dGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLQogKDAgcm93cykKIAogU0VMRUNUIGMuKgogRlJPTSBwZ19jYXN0IGMsIHBnX3Byb2Mg cAogV0hFUkUgYy5jYXN0ZnVuYyA9IHAub2lkIEFORCBwLnByb25hcmdzIDwgMiBBTkQgY2FzdHNv dXJjZSA9IGNhc3R0YXJnZXQ7Ci0gb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0 ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIG9pZCB8IGNh c3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRo b2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQogKDAgcm93 cykKIAogLS0gTG9vayBmb3IgY2FzdCBmdW5jdGlvbnMgdGhhdCBkb24ndCBoYXZlIHRoZSByaWdo dCBzaWduYXR1cmUuICBUaGUKQEAgLTk4OSw4ICs5ODksOCBAQCBXSEVSRSBjLmNhc3RmdW5jID0g cC5vaWQgQU5ECiAgICAgICAgICAgICAgT1IgKGMuY2FzdHNvdXJjZSA9ICdjaGFyYWN0ZXInOjpy ZWd0eXBlIEFORAogICAgICAgICAgICAgICAgICBwLnByb2FyZ3R5cGVzWzBdID0gJ3RleHQnOjpy ZWd0eXBlKSkKICAgICAgT1IgTk9UIGJpbmFyeV9jb2VyY2libGUocC5wcm9yZXR0eXBlLCBjLmNh c3R0YXJnZXQpKTsKLSBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3RmdW5jIHwg Y2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIAotLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgb2lkIHwgY2FzdHNvdXJj ZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8IGNh c3RlcnJvcnNhZmUgCistLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiBT RUxFQ1QgYy4qCkBAIC05OTgsOCArOTk4LDggQEAgRlJPTSBwZ19jYXN0IGMsIHBnX3Byb2MgcAog V0hFUkUgYy5jYXN0ZnVuYyA9IHAub2lkIEFORAogICAgICgocC5wcm9uYXJncyA+IDEgQU5EIHAu cHJvYXJndHlwZXNbMV0gIT0gJ2ludDQnOjpyZWd0eXBlKSBPUgogICAgICAocC5wcm9uYXJncyA+ IDIgQU5EIHAucHJvYXJndHlwZXNbMl0gIT0gJ2Jvb2wnOjpyZWd0eXBlKSk7Ci0gb2lkIHwgY2Fz dHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhv ZCAKLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQorIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1 bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gTG9vayBmb3IgYmluYXJ5IGNvbXBh dGlibGUgY2FzdHMgdGhhdCBkbyBub3QgaGF2ZSB0aGUgcmV2ZXJzZQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxs ZWxfc2NoZWR1bGUKaW5kZXggY2M2ZDc5OWJjZWEuLjBiMDMxYTM3YzM2IDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv cGFyYWxsZWxfc2NoZWR1bGUKQEAgLTgxLDcgKzgxLDcgQEAgdGVzdDogY3JlYXRlX3RhYmxlX2xp a2UgYWx0ZXJfZ2VuZXJpYyBhbHRlcl9vcGVyYXRvciBtaXNjIGFzeW5jIGRic2l6ZSBtZXJnZSBt aXMKICMgY29sbGF0ZS5saW51eC51dGY4IGFuZCBjb2xsYXRlLmljdS51dGY4IHRlc3RzIGNhbm5v dCBiZSBydW4gaW4gcGFyYWxsZWwgd2l0aCBlYWNoIG90aGVyCiAjIHBzcWwgZGVwZW5kcyBvbiBj cmVhdGVfYW0KICMgYW11dGlscyBkZXBlbmRzIG9uIGdlb21ldHJ5LCBjcmVhdGVfaW5kZXhfc3Bn aXN0LCBoYXNoX2luZGV4LCBicmluCi10ZXN0OiBydWxlcyBwc3FsIHBzcWxfY3Jvc3N0YWIgcHNx bF9waXBlbGluZSBhbXV0aWxzIHN0YXRzX2V4dCBjb2xsYXRlLmxpbnV4LnV0ZjggY29sbGF0ZS53 aW5kb3dzLndpbjEyNTIKK3Rlc3Q6IHJ1bGVzIHBzcWwgcHNxbF9jcm9zc3RhYiBwc3FsX3BpcGVs aW5lIGFtdXRpbHMgc3RhdHNfZXh0IGNvbGxhdGUubGludXgudXRmOCBjb2xsYXRlLndpbmRvd3Mu d2luMTI1MiBjYXN0CiAKICMgLS0tLS0tLS0tLQogIyBSdW4gdGhlc2UgYWxvbmUgc28gdGhleSBk b24ndCBydW4gb3V0IG9mIHBhcmFsbGVsIHdvcmtlcnMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2Nhc3Quc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY2FzdC5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjkwNWQxZjMxOGI1Ci0tLSAvZGV2L251 bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY2FzdC5zcWwKQEAgLTAsMCArMSwzNDAgQEAK K1NFVCBleHRyYV9mbG9hdF9kaWdpdHMgPSAwOworCistLSBDQVNUIERFRkFVTFQgT04gQ09OVkVS U0lPTiBFUlJPUgorVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdlciBFUlJPUiBPTiBDT05W RVJTSU9OIEVSUk9SKSk7IC0tZXJyb3IKK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludGVnZXIg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSk7CitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnRl Z2VyIERFRkFVTFQgNDIgT04gQ09OVkVSU0lPTiBFUlJPUikpOworU0VMRUNUIENBU1QoQicwMScg QVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChC SVQnMDEnIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNU IENBU1QoVFJVRSBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NF TEVDVCBDQVNUKDEuMSBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK K1NFTEVDVCBDQVNUKDEgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7 CitTRUxFQ1QgQ0FTVCgxOjpudW1lcmljIEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKDExMTEgQVMgImNoYXIiIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKTsKKworLS10aGUgZGVmYXVsdCBleHByZXNzaW9u4oCZcyBjb2xsYXRp b24gc2hvdWxkIG1hdGNoIHRoZSBjb2xsYXRpb24gb2YgdGhlIGNhc3QKKy0tdGFyZ2V0IHR5cGUK K1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIHRleHQgREVGQVVMVCAnMScgQ09MTEFURSAiQyIgT04g Q09OVkVSU0lPTiBFUlJPUikpOworCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnQydmVjdG9y IERFRkFVTFQgJzEgMycgIE9OIENPTlZFUlNJT04gRVJST1IpKTsKK1ZBTFVFUyAoQ0FTVCgnZXJy b3InIEFTIGludDJ2ZWN0b3JbXSBERUZBVUxUICd7MSAzfScgIE9OIENPTlZFUlNJT04gRVJST1Ip KTsKKworLS0gdGVzdCBzb3VyY2UgZXhwcmVzc2lvbiBjb250YWluIHN1YnF1ZXJ5CitTRUxFQ1Qg Q0FTVCgoU0VMRUNUIGIgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMSksIChWQUxVRVMoJ0gnKSkg cyhiKSkKKyAgICAgICAgICAgIEFTIGludDJ2ZWN0b3JbXSBERUZBVUxUICd7MSAzfScgIE9OIENP TlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoKFNFTEVDVCBBUlJBWSgoU0VMRUNUIGIgRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwgMikgZywgKFZBTFVFUygnSCcpKSBzKGIpKSkpCisgICAgICAg ICAgICBBUyBJTlRbXQorICAgICAgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpOworCitDUkVBVEUgRlVOQ1RJT04gcmV0X2ludDgoKSBSRVRVUk5TIEJJR0lOVCBBUworJCQK K0JFR0lOIFJFVFVSTiAyMTQ3NDgzNjQ4OyBFTkQ7CiskJAorTEFOR1VBR0UgcGxwZ3NxbCBJTU1V VEFCTEU7CisKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCByZXRfaW50OCgpIE9OIENP TlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVCgnYScgYXMgZGF0ZSBERUZBVUxU IHJldF9pbnQ4KCkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKKworLS0gdGVzdCBhcnJh eSBjb2VyY2UKK1NFTEVDVCBDQVNUKGFycmF5WydhJzo6dGV4dF0gQVMgaW50W10gREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVChhcnJheVsnYSdd IEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1vaworU0VMRUNU IENBU1QoYXJyYXlbMTEuMTJdIEFTIGRhdGVbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CitTRUxFQ1QgQ0FTVChhcnJheVsxMTExMTExMTExMTExMTExMV0gQVMgaW50W10gREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoYXJyYXlbWydhYmMn XSxbNDU2XV0gQVMgaW50W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VM RUNUIENBU1QoJ3sxMjMsYWJjLDQ1Nn0nIEFTIGludFtdIERFRkFVTFQgJ3stNzg5fScgT04gQ09O VkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnezIzNCxkZWYsNTY3fSc6OnRleHRbXSBBUyBp bnRlZ2VyW10gREVGQVVMVCAney0xMDExfScgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1Qg Q0FTVChBUlJBWVtbJzEnXSwgWyd0aHJlZSddLFsnYSddXSBBUyBpbnRbXSBERUZBVUxUICd7MSwy fScgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnLCAnMiddLCBb J3RocmVlJywgJ2EnXV0gQVMgaW50W10gREVGQVVMVCAnezIxLDIyfScgT04gQ09OVkVSU0lPTiBF UlJPUik7IC0tb2sKK1NFTEVDVCBDQVNUKEFSUkFZW1snMScsICcyJ10sIFsndGhyZWUnOjppbnQs ICdhJ11dIEFTIGludFtdIERFRkFVTFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJT04gRVJST1IpOyAt LWVycm9yCitTRUxFQ1QgQ0FTVChBUlJBWVsxLCAndGhyZWUnOjppbnRdIEFTIGludFtdIERFRkFV TFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCisKKy0tIHRlc3QgdmFs aWQgREVGQVVMVCBleHByZXNzaW9uIGZvciBDQVNUID0gT04gQ09OVkVSU0lPTiBFUlJPUgorQ1JF QVRFIEZVTkNUSU9OIHJldF9zZXRpbnQoKSBSRVRVUk5TIFNFVE9GIGludGVnZXIgQVMKKyQkCitC RUdJTiBSRVRVUk4gUVVFUlkgRVhFQ1VURSAnc2VsZWN0IDEgdW5pb24gYWxsIHNlbGVjdCAxJzsg RU5EOworJCQKK0xBTkdVQUdFIHBscGdzcWwgSU1NVVRBQkxFOworCitDUkVBVEUgVEFCTEUgdGNh c3QoYSB0ZXh0W10sIGIgaW50IEdFTkVSQVRFRCBCWSBERUZBVUxUIEFTIElERU5USVRZLCBjIHRl eHQgZGVmYXVsdCAnMScpOworSU5TRVJUIElOVE8gdGNhc3QgVkFMVUVTICgnezEyfScpLCAoJ3sx LGEsIGJ9JyksICgne3sxLDJ9LCB7YyxkfX0nKSwgKCd7MTN9Jyk7CitTRUxFQ1QgQ0FTVCgnYScg YXMgaW50IERFRkFVTFQgcmV0X3NldGludCgpIE9OIENPTlZFUlNJT04gRVJST1IpIEZST00gdGNh c3Q7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKGM6OmRhdGU6Ompzb24gYXMgZGF0ZSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgRlJPTSB0Y2FzdDsgLS1lcnJvcgorU0VMRUNUIENBU1Qo J2EnOjppbnQgYXMgaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJv cgorU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP Uik7IC0tb2sKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0oMSkgT04gQ09OVkVS U0lPTiBFUlJPUik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0o MSkgb3ZlcigpIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVCgnYScg YXMgaW50IERFRkFVTFQgKFNFTEVDVCBOVUxMKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJv cgorU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUICdiJyBPTiBDT05WRVJTSU9OIEVSUk9S KTsgLS1lcnJvcgorCitTRUxFQ1QgQ0FTVCh0IEFTIHRleHRbXSBERUZBVUxUICd7MjEsMjIsICcg fHwgYiB8fCAnfScgT04gQ09OVkVSU0lPTiBFUlJPUikgRlJPTSB0Y2FzdCBhcyB0OworU0VMRUNU IENBU1QodC5hIEFTIGludFtdIERFRkFVTFQgJ3syMSwyMn0nOjppbnRbXSB8fCBiIE9OIENPTlZF UlNJT04gRVJST1IpIEZST00gdGNhc3QgYXMgdDsKKworLS0gdGVzdCB3aXRoIGRvbWFpbgorQ1JF QVRFIERPTUFJTiBkX2ludDQyIGFzIGludCBjaGVjayAodmFsdWUgPSA0MikgTk9UIE5VTEw7CitD UkVBVEUgRE9NQUlOIGRfY2hhcjNfbm90X251bGwgYXMgY2hhcigzKSBOT1QgTlVMTDsKK0NSRUFU RSBET01BSU4gZF92YXJjaGFyIGFzIHZhcmNoYXIoMykgTk9UIE5VTEw7CitDUkVBVEUgVFlQRSBj b21wX2RvbWFpbl93aXRoX3R5cG1vZCBBUyAoYSBkX2NoYXIzX25vdF9udWxsLCBiIGludCk7CitD UkVBVEUgVFlQRSBjb21wMiBBUyAoYSBkX3ZhcmNoYXIpOworU0VMRUNUIENBU1QoJyhOVUxMKScg QVMgY29tcDIgREVGQVVMVCAnKDEyMzIpJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgor U0VMRUNUIENBU1QoJyhOVUxMKScgQVMgY29tcDIgREVGQVVMVCAnKDEyMyknIE9OIENPTlZFUlNJ T04gRVJST1IpOyAtLW9rCitTRUxFQ1QgQ0FTVCgxMSBBUyBkX2ludDQyIERFRkFVTFQgNDEgT04g Q09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKDExIEFTIGRfaW50NDIgREVG QVVMVCA0MiBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1vaworU0VMRUNUIENBU1QoTlVMTCBBUyBk X2ludDQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorU0VMRUNU IENBU1QoTlVMTCBBUyBkX2ludDQyIERFRkFVTFQgNDIgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0t b2sKK1NFTEVDVCBDQVNUKCcoLDQyKScgQVMgY29tcF9kb21haW5fd2l0aF90eXBtb2QgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJyhOVUxMLDQyKScgQVMg Y29tcF9kb21haW5fd2l0aF90eXBtb2QgREVGQVVMVCAnKDEsMiknIE9OIENPTlZFUlNJT04gRVJS T1IpOworU0VMRUNUIENBU1QoJyhOVUxMLDQyKScgQVMgY29tcF9kb21haW5fd2l0aF90eXBtb2Qg REVGQVVMVCAnKDEyMzQsMiknIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCisKKy0tLS0t c2FmZSBjYXN0IHdpdGggZ2VvbWV0cnkgZGF0YSB0eXBlCitTRUxFQ1QgQ0FTVCgnKDEsMiknOjpw b2ludCBBUyBib3ggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENB U1QoJ1soTmFOLDEpLChOYU4saW5maW5pdHkpXSc6OmxzZWcgQVMgcG9pbnQgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1soMWUrMzAwLEluZmluaXR5KSwo MWUrMzAwLEluZmluaXR5KV0nOjpsc2VnIEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdbKDEsMiksKDMsNCldJzo6cGF0aCBhcyBwb2x5Z29u IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoTmFOLDEu MCxOYU4saW5maW5pdHkpJzo6Ym94IEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoMi4wLDIuMCwwLjAsMC4wKSc6OmJveCBBUyBsc2VnIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoMi4wLDIuMCww LjAsMC4wKSc6OmJveCBBUyBwb2x5Z29uIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKK1NFTEVDVCBDQVNUKCcoMi4wLDIuMCwwLjAsMC4wKSc6OmJveCBBUyBwYXRoIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoMi4wLGluZmluaXR5LE5h TixpbmZpbml0eSknOjpib3ggQVMgY2lyY2xlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKK1NFTEVDVCBDQVNUKCcoTmFOLDAuMCksKDIuMCw0LjApLCgwLjAsaW5maW5pdHkpJzo6 cG9seWdvbiBBUyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxF Q1QgQ0FTVCgnKDIuMCwwLjApLCgyLjAsNC4wKSwoMC4wLDAuMCknOjpwb2x5Z29uIEFTIHBhdGgg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJygyLjAsMC4w KSwoMi4wLDQuMCksKDAuMCwwLjApJzo6cG9seWdvbiBBUyBib3ggREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJyhOYU4saW5maW5pdHkpLCgyLjAsNC4wKSwo MC4wLGluZmluaXR5KSc6OnBvbHlnb24gQVMgY2lyY2xlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCc8KDUsMSksMz4nOjpjaXJjbGUgQVMgcG9pbnQgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJzwoMyw1KSwwPic6 OmNpcmNsZSBhcyBib3ggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworLS0gbm90 IHN1cHBvcnRlZCBiZWNhdXNlIHRoZSBjYXN0IGZyb20gY2lyY2xlIHRvIHBvbHlnb24gaXMgaW1w bGVtZW50ZWQgYXMgYSBTUUwKKy0tIGZ1bmN0aW9uLCB3aGljaCBjYW5ub3QgYmUgZXJyb3Itc2Fm ZS4KK1NFTEVDVCBDQVNUKCc8KDMsNSksMD4nOjpjaXJjbGUgYXMgcG9seWdvbiBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tLS0tc2FmZSBjYXN0IGZyb20vdG8gbW9uZXkg dHlwZSBpcyBub3Qgc3VwcG9ydGVkLCBhbGwgdGhlIGZvbGxvd2luZyB3b3VsZCByZXN1bHQgZXJy b3IKK1NFTEVDVCBDQVNUKE5VTEw6OmludDggQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoTlVMTDo6aW50NCBBUyBtb25leSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChOVUxMOjpudW1lcmljIEFTIG1v bmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKE5VTEw6 Om1vbmV5IEFTIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworCist LS0tLXNhZmUgY2FzdCBmcm9tIGJ5dGVhIHR5cGUgdG8gb3RoZXIgZGF0YSB0eXBlcworU0VMRUNU IENBU1QgKCdceDExMjIzMzQ0NTU2Njc3ODg5OSc6OmJ5dGVhIEFTIGludDggREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1x4MTIzNDU2Nzg5QSc6OmJ5dGVh IEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1Qo J1x4MTIzNDU2Jzo6Ynl0ZWEgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP Uik7CisKKy0tLS0tc2FmZSBjYXN0IGZyb20gYml0IHR5cGUgdG8gb3RoZXIgZGF0YSB0eXBlcwor U0VMRUNUIENBU1QoJzExMTExMTExMTEwMDAwMSc6OmJpdCgxMDApIEFTIElOVCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCAoJzExMTExMTExMTEwMDAwMSc6 OmJpdCgxMDApIEFTIElOVDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworCist LS0tLXNhZmUgY2FzdCBmcm9tIHRleHQgdHlwZSB0byBvdGhlciBkYXRhIHR5cGVzCitzZWxlY3Qg Q0FTVCgnYS5iLmMuZCc6OnRleHQgYXMgcmVnY2xhc3MgZGVmYXVsdCBOVUxMIG9uIGNvbnZlcnNp b24gZXJyb3IpOworCitDUkVBVEUgVEFCTEUgdGVzdF9zYWZlY2FzdChjb2wwIHRleHQpOworSU5T RVJUIElOVE8gdGVzdF9zYWZlY2FzdChjb2wwKSBWQUxVRVMgKCc8dmFsdWU+b25lPC92YWx1ZScp OworCitTRUxFQ1QgY29sMCBhcyB0ZXh0LAorICAgICAgIENBU1QoY29sMCBBUyByZWdjbGFzcyBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fcmVnY2xhc3MsCisgICAgICAg Q0FTVChjb2wwIEFTIHJlZ2NsYXNzIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBJ UyBOVUxMIGFzIGV4cGVjdF90cnVlLAorICAgICAgIENBU1QoY29sMCBBUyAiY2hhciIgIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19jaGFyLAorICAgICAgIENBU1QoY29s MCBBUyBuYW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19uYW1lLAor ICAgICAgIENBU1QoY29sMCBBUyB4bWwgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX3htbAorRlJPTSB0ZXN0X3NhZmVjYXN0OworCitTRUxFQ1QgQ0FTVCgnMTkyLjE2OC4x LngnIGFzIGluZXQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENB U1QoJzE5Mi4xNjguMS4yLzMwJyBhcyBjaWRyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKK1NFTEVDVCBDQVNUKCcyMjowMDo1YzowODo1NTowODowMTowMic6Om1hY2FkZHI4IGFz IG1hY2FkZHIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworCistLS0tLXNhZmUg Y2FzdCBiZXR3ZWVlbiByYW5nZSBkYXRhIHR5cGVzCitTRUxFQ1QgQ0FTVCgnWzEsMl0nOjppbnQ0 cmFuZ2UgQVMgaW50NG11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworU0VMRUNUIENBU1QoJ1sxLDJdJzo6aW50OHJhbmdlIEFTIGludDhtdWx0aXJhbmdlIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdbMSwyXSc6Om51bXJh bmdlICBBUyBudW1tdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK K1NFTEVDVCBDQVNUKCdbLWluZmluaXR5LGluZmluaXR5XSc6OmRhdGVyYW5nZSBBUyBkYXRlbXVs dGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgn Wy1pbmZpbml0eSxpbmZpbml0eV0nOjp0c3JhbmdlIEFTIHRzbXVsdGlyYW5nZSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnWy1pbmZpbml0eSxpbmZpbml0 eV0nOjp0c3R6cmFuZ2UgQVMgdHN0em11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOworCistLS0tLXNhZmUgY2FzdCBiZXR3ZWVlbiBudW1lcmljIGRhdGEgdHlwZXMK K0NSRUFURSBUQUJMRSB0ZXN0X3NhZmVjYXN0MSgKKyAgY29sMSBmbG9hdDQsIGNvbDIgZmxvYXQ4 LCBjb2wzIG51bWVyaWMsIGNvbDQgbnVtZXJpY1tdLAorICBjb2w1IGludDIgZGVmYXVsdCAzMjc2 NywKKyAgY29sNiBpbnQ0IGRlZmF1bHQgMzI3NjgsCisgIGNvbDcgaW50OCBkZWZhdWx0IDQyOTQ5 NjcyOTYpOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDEgVkFMVUVTKCcxMS4xMjM0JywgJzEx LjEyMzQnLCAnOTIyMzM3MjAzNjg1NDc3NTgwOCcsICd7MTEuMTIzNH0nOjpudW1lcmljW10pOwor SU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDEgVkFMVUVTKCdpbmYnLCAnaW5mJywgJ2luZicsICd7 MTEuMTIzNCwgMTIsIGluZiwgTmFOfSc6Om51bWVyaWNbXSk7CitJTlNFUlQgSU5UTyB0ZXN0X3Nh ZmVjYXN0MSBWQUxVRVMoJy1pbmYnLCAnLWluZicsICctaW5mJywgJ3sxMS4xMjM0LCAxMiwgLWlu ZiwgTmFOfSc6Om51bWVyaWNbXSk7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0MSBWQUxVRVMo J05hTicsICdOYU4nLCAnTmFOJywgJ3sxMS4xMjM0LCAxMiwgLWluZiwgTmFOfSc6Om51bWVyaWNb XSk7CisKK1NFTEVDVCBjb2w1IGFzIGludDIsCisgICAgICAgQ0FTVChjb2w1IEFTIGludDIgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChj b2w1IEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQs CisgICAgICAgQ0FTVChjb2w1IEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sNSBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sNSBhcyBmbG9hdDQg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBD QVNUKGNvbDUgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2w1IGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2w1IGFzIG51bWVy aWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNf c2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisKK1NFTEVDVCBjb2w2IGFzIGludDQsCisgICAg ICAgQ0FTVChjb2w2IEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2ludDIsCisgICAgICAgQ0FTVChjb2w2IEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2w2IEFTIG9pZCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sNiBh cyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAg ICAgIENBU1QoY29sNiBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDYgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2w2IGFzIG51 bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisg ICAgICAgQ0FTVChjb2w2IGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisKK1NF TEVDVCBjb2w3IGFzIGludDgsCisgICAgICAgQ0FTVChjb2w3IEFTIGludDIgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChjb2w3IEFTIGlu dDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAg Q0FTVChjb2w3IEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f b2lkLAorICAgICAgIENBU1QoY29sNyBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sNyBhcyBmbG9hdDQgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDcg YXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgs CisgICAgICAgQ0FTVChjb2w3IGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2w3IGFzIG51bWVyaWMoMTAsMSkg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZS T00gdGVzdF9zYWZlY2FzdDE7CisKK1NFTEVDVCBjb2wzIGFzIG51bWVyaWMsCisgICAgICAgQ0FT VChjb2wzIEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2lu dDIsCisgICAgICAgQ0FTVChjb2wzIEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2wzIEFTIG9pZCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sMyBhcyBpbnQ4 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENB U1QoY29sMyBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDMgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wzIGFzIG51bWVyaWMg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAg Q0FTVChjb2wzIGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisKK1NFTEVDVCBj b2w0IGFzIG51bV9hcnIsCisgICAgICAgQ0FTVChjb2w0IEFTIGludDJbXSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgaW50MmFyciwKKyAgICAgICBDQVNUKGNvbDQgQVMgaW50 NFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBpbnQ0YXJyLAorICAgICAg IENBU1QoY29sNCBhcyBpbnQ4W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IGludDhhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIGZsb2F0NFtdIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyBmNGFyciwKKyAgICAgICBDQVNUKGNvbDQgYXMgZmxvYXQ4W10g REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGY4YXJyLAorICAgICAgIENBU1Qo Y29sNCBhcyBudW1lcmljKDEwLDEpW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIG51bWFycgorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKworU0VMRUNUIGNvbDEgYXMgZmxvYXQ0 LAorICAgICAgIENBU1QoY29sMSBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sMSBBUyBpbnQ0IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sMSBBUyBvaWQg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNU KGNvbDEgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50 OCwKKyAgICAgICBDQVNUKGNvbDEgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2wxIGFzIGZsb2F0OCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29s MSBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1l cmljLAorICAgICAgIENBU1QoY29sMSBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3Qx OworCitTRUxFQ1QgY29sMiBhcyBmbG9hdDgsCisgICAgICAgQ0FTVChjb2wyIEFTIGludDIgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChj b2wyIEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQs CisgICAgICAgQ0FTVChjb2wyIEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sMiBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sMiBhcyBmbG9hdDQg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBD QVNUKGNvbDIgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wyIGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2wyIGFzIG51bWVy aWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNf c2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisKKy0tIGRhdGUvdGltZXN0YW1wL2ludGVydmFs IHJlbGF0ZWQgc2FmZSB0eXBlIGNhc3QKK0NSRUFURSBUQUJMRSB0ZXN0X3NhZmVjYXN0MigKKyAg Y29sMCBkYXRlLCBjb2wxIHRpbWVzdGFtcCwgY29sMiB0aW1lc3RhbXB0eiwKKyAgY29sMyBpbnRl cnZhbCwgY29sNCB0aW1lLCBjb2w1IHRpbWV0eik7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0 MiBWQUxVRVMKKygnLWluZmluaXR5JywgJy1pbmZpbml0eScsICctaW5maW5pdHknLCAnLWluZmlu aXR5JywKKyAgJzIwMDMtMDMtMDcgMTU6MzY6MzkgQW1lcmljYS9OZXdfWW9yaycsICcyMDAzLTA3 LTA3IDE1OjM2OjM5IEFtZXJpY2EvTmV3X1lvcmsnKSwKKygnLWluZmluaXR5JywgJ2luZmluaXR5 JywgJ2luZmluaXR5JywgJ2luZmluaXR5JywKKyAgJzExOjU5OjU5Ljk5IFBNJywgJzExOjU5OjU5 Ljk5IFBNIFBEVCcpOworCitTRUxFQ1QgY29sMCBhcyBkYXRlLAorICAgICAgIENBU1QoY29sMCBB UyB0aW1lc3RhbXB0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGlt ZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wwIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX2RhdGUsCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWUgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29s MCBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0 eiwKKyAgICAgICBDQVNUKGNvbDAgQVMgdGltZXN0YW1wKDIpIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXBfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7 CisKK1NFTEVDVCBjb2wxIGFzIHRpbWVzdGFtcCwKKyAgICAgICBDQVNUKGNvbDEgQVMgdGltZXN0 YW1wdHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6 LAorICAgICAgIENBU1QoY29sMSBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19kYXRlLAorICAgICAgIENBU1QoY29sMSBBUyB0aW1lIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDEgQVMgdGlt ZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAg ICAgQ0FTVChjb2wxIEFTIHRpbWVzdGFtcCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fdGltZXN0YW1wX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworCitTRUxF Q1QgY29sMiBhcyB0aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDIgQVMgdGltZXN0YW1wdHog REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAg ICAgIENBU1QoY29sMiBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19kYXRlLAorICAgICAgIENBU1QoY29sMiBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDIgQVMgdGltZXR6IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FT VChjb2wyIEFTIHRpbWVzdGFtcCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fdGltZXN0YW1wX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworCitTRUxFQ1QgY29s MyBhcyBpbnRlcnZhbCwKKyAgICAgICBDQVNUKGNvbDMgQVMgdGltZXN0YW1wdHogREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1Qo Y29sMyBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRl LAorICAgICAgIENBU1QoY29sMyBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDMgQVMgdGltZXR6IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wzIEFT IHRpbWVzdGFtcCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGlt ZXN0YW1wX3NjYWxlLAorICAgICAgIENBU1QoY29sMyBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWxfc2NhbGUKK0ZST00gdGVzdF9z YWZlY2FzdDI7CisKK1NFTEVDVCBjb2w0IGFzIHRpbWUsCisgICAgICAgQ0FTVChjb2w0IEFTIHRp bWUoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAg ICAgIENBU1QoY29sNCBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IElTIE5PVCBOVUxMIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDQgQVMgaW50ZXJ2YWwo MikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsLAorICAg ICAgIENBU1QoY29sNCBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9faW50ZXJ2YWxfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisKK1NFTEVD VCBjb2w1IGFzIHRpbWV0eiwKKyAgICAgICBDQVNUKGNvbDUgQVMgdGltZSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZSwKKyAgICAgICBDQVNUKGNvbDUgQVMgdGlt ZSgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZV9zY2FsZSwK KyAgICAgICBDQVNUKGNvbDUgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWV0eig2KSBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6X3NjYWxlLAorICAgICAgIENB U1QoY29sNSBBUyBpbnRlcnZhbCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9faW50ZXJ2YWwsCisgICAgICAgQ0FTVChjb2w1IEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbF9zY2FsZQorRlJPTSB0ZXN0X3Nh ZmVjYXN0MjsKKworQ1JFQVRFIFRBQkxFIHRlc3Rfc2FmZWNhc3QzKGNvbDAganNvbmIpOworSU5T RVJUIElOVE8gdGVzdF9zYWZlY2FzdDMoY29sMCkgVkFMVUVTICgnInRlc3QiJyk7CitTRUxFQ1Qg Y29sMCBhcyBqc29uYiwKKyAgICAgICBDQVNUKGNvbDAgQVMgaW50ZWdlciBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZWdlciwKKyAgICAgICBDQVNUKGNvbDAgQVMg bnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywK KyAgICAgICBDQVNUKGNvbDAgQVMgYmlnaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sMCBBUyBmbG9hdDQgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDAgQVMg ZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisg ICAgICAgQ0FTVChjb2wwIEFTIGJvb2xlYW4gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX2Jvb2wsCisgICAgICAgQ0FTVChjb2wwIEFTIHNtYWxsaW50IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19zbWFsbGludAorRlJPTSB0ZXN0X3NhZmVjYXN0 MzsKKworLS0gdGVzdCBkZXBhcnNlCitDUkVBVEUgRE9NQUlOIGRfaW50X2FyciBhcyBpbnRbXTsK K0NSRUFURSBWSUVXIHNhZmVjYXN0dmlldyBBUworU0VMRUNUIENBU1QoJzEyMzQnIGFzIGNoYXIo MykgREVGQVVMVCAtMTExMSBPTiBDT05WRVJTSU9OIEVSUk9SKSwKKyAgICAgICBDQVNUKDEgYXMg ZGF0ZSBERUZBVUxUICgobm93KCk6OmRhdGUgKyByYW5kb20obWluPT4xLCBtYXg9PjE6OmludCkp KSBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0ZXN0X3NhZmVjYXN0MSwKKyAgICAgICBDQVNUKEFS UkFZW1snMSddLCBbJ3RocmVlJ10sWydhJ11dIEFTIGludFtdIERFRkFVTFQgJ3sxLDJ9JyBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MSwKKyAgICAgICBDQVNUKEFSUkFZW1snMScsICcyJ10s IFsndGhyZWUnLCAnYSddXSBBUyBkYXRlW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIGNhc3QyLAorICAgICAgIENBU1QoQVJSQVlbJ3RocmVlJ10gQVMgSU5UW10gREVGQVVM VCAnezEsMn0nIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3QzOworXHN2IHNhZmVjYXN0dmll dworCitDUkVBVEUgVklFVyBzYWZlY2FzdHZpZXcxIEFTCitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEn XSwgWyd0aHJlZSddLFsnYSddXSBBUyBkX2ludF9hcnIgREVGQVVMVCAnezEsMn0nIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIGNhc3QxLAorICAgICAgIENBU1QoQVJSQVlbWycxJywgJzInXSwgWyd0 aHJlZScsICdhJ11dIEFTIGRfaW50X2FyciBERUZBVUxUICd7MjEsMjJ9JyBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyBjYXN0MjsKK1xzdiBzYWZlY2FzdHZpZXcxCitTRUxFQ1QgKiBGUk9NIHNhZmVj YXN0dmlldzE7CisKKy0tZXJyb3IsIGRlZmF1bHQgZXhwcmVzc2lvbiBpcyBtdXRhYmxlCitDUkVB VEUgSU5ERVggY2FzdF9lcnJvcl9pZHggT04gdGVzdF9zYWZlY2FzdDMoKENBU1QoY29sMCBhcyBp bnQgREVGQVVMVCByYW5kb20obWluPT4xLCBtYXg9PjEpIE9OIENPTlZFUlNJT04gRVJST1IpKSk7 CitDUkVBVEUgSU5ERVggY2FzdF9lcnJvcl9pZHggT04gdGVzdF9zYWZlY2FzdDMoKENBU1QoY29s MCBhcyB4aWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpKSk7CitDUkVBVEUgSU5E RVggdGVzdF9zYWZlY2FzdDNfaWR4IE9OIHRlc3Rfc2FmZWNhc3QzKChDQVNUKGNvbDAgYXMgaW50 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSkpOyAtLW9rCitTRUxFQ1QgcGdfZ2V0 X2luZGV4ZGVmKCd0ZXN0X3NhZmVjYXN0M19pZHgnOjpyZWdjbGFzcyk7CisKK0RST1AgVEFCTEUg dGVzdF9zYWZlY2FzdDsKK0RST1AgVEFCTEUgdGVzdF9zYWZlY2FzdDE7CitEUk9QIFRBQkxFIHRl c3Rfc2FmZWNhc3QyOworRFJPUCBUQUJMRSB0ZXN0X3NhZmVjYXN0MzsKK0RST1AgVEFCTEUgdGNh c3Q7CitEUk9QIEZVTkNUSU9OIHJldF9pbnQ4OworRFJPUCBGVU5DVElPTiByZXRfc2V0aW50Owor RFJPUCBUWVBFIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kOworRFJPUCBUWVBFIGNvbXAyOworRFJP UCBET01BSU4gZF92YXJjaGFyOworRFJPUCBET01BSU4gZF9pbnQ0MjsKK0RST1AgRE9NQUlOIGRf Y2hhcjNfbm90X251bGw7CitSRVNFVCBleHRyYV9mbG9hdF9kaWdpdHM7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9jcmVhdGVfY2FzdC5zcWwKaW5kZXggMzIxODc4NTNjYzcuLjBhMTVhNzk1ZDg3IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsCkBAIC02Miw2ICs2Miw3IEBAICQkIFNFTEVDVCAo J2Jhcic6OnRleHQgfHwgJDE6OnRleHQpOyAkJDsKIAogQ1JFQVRFIENBU1QgKGludDQgQVMgY2Fz dHRlc3R0eXBlKSBXSVRIIEZVTkNUSU9OIGJhcl9pbnQ0X3RleHQoaW50NCkgQVMgSU1QTElDSVQ7 CiBTRUxFQ1QgMTIzNDo6aW50NDo6Y2FzdHRlc3R0eXBlOyAtLSBTaG91bGQgd29yayBub3cKK1NF TEVDVCBDQVNUKDEyMzQ6OmludDQgQVMgY2FzdHRlc3R0eXBlIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKIAogLS0gY2hlY2sgZGVwZW5kZW5jaWVzIGdlbmVyYXRl ZCBmb3IgdGhhdAogU0VMRUNUIHBnX2Rlc2NyaWJlX29iamVjdChjbGFzc2lkLCBvYmppZCwgb2Jq c3ViaWQpIGFzIG9iaiwKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5s aXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggY2YzZjZhN2RhZmQu LmNmNGJhYjYzYzg5IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlz dAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMjY3Miw2ICsyNjcy LDkgQEAgU1RSTEVOCiBTVgogU1lOQ0hST05JWkFUSU9OX0JBUlJJRVIKIFNZU1RFTV9JTkZPCitT YWZlVHlwZUNhc3QKK1NhZmVUeXBlQ2FzdEV4cHIKK1NhZmVUeXBlQ2FzdFN0YXRlCiBTYW1wbGVT Y2FuCiBTYW1wbGVTY2FuR2V0U2FtcGxlU2l6ZV9mdW5jdGlvbgogU2FtcGxlU2NhblN0YXRlCi0t IAoyLjM0LjEKCg== --0000000000009b0f2c0644f36491 Content-Type: text/x-patch; charset="US-ASCII"; name="v13-0019-invent-some-error-safe-functions.patch" Content-Disposition: attachment; filename="v13-0019-invent-some-error-safe-functions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mioa5q9t1 RnJvbSA5MTU0ODM2MmI0M2NhYzZjYTYyMWNhNTQ3MTUxN2I5OTY0NGMxMzJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjQgTm92IDIwMjUgMTc6MDM6NDUgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MyAxOS8yMF0gaW52ZW50IHNvbWUgZXJyb3Igc2FmZSBmdW5jdGlvbnMKCnN0cmluZ1R5cGVEYXR1 bVNhZmU6IGVycm9yIHNhZmUgdmVyc2lvbiBvZiBzdHJpbmdUeXBlRGF0dW0KCmV2YWx1YXRlX2V4 cHJfZXh0ZW5kZWQ6IElmIHlvdSB3aXNoIHRvIGV2YWx1YXRlIGEgY29uc3RhbnQgZXhwcmVzc2lv biBpbiBhCm1hbm5lciB0aGF0IGlzIHNhZmUgZnJvbSBwb3RlbnRpYWwgZXJyb3JzLCBzZXQgdGhl IGVycm9yX3NhZmUgcGFyYW1ldGVyIHRvIHRydWUKCkV4ZWNJbml0RXhwclNhZmU6IHNvZnQgZXJy b3IgdmFyaWFudCBvZiBFeGVjSW5pdEV4cHIKCk9pZElucHV0RnVuY3Rpb25DYWxsU2FmZTogc29m dCBlcnJvciB2YXJpYW50IG9mIE9pZElucHV0RnVuY3Rpb25DYWxsCgpDb2VyY2VVbmtub3duQ29u c3RTYWZlOiBhdHRlbXB0cyB0byBjb2VyY2UgYW4gVU5LTk9XTiBDb25zdCB0byB0aGUgdGFyZ2V0 IHR5cGUuClJldHVybnMgTlVMTCBpZiB0aGUgY29lcmNpb24gaXMgbm90IHBvc3NpYmxlLgoKZGlz Y3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4 TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwci5jICAgICAgfCA0MSArKysrKysrKysrKysrCiBzcmMvYmFja2VuZC9v cHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMgfCAyMSArKysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfY29lcmNlLmMgICAgfCA5MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfdHlwZS5jICAgICAgfCAxNCArKysrKwogc3JjL2JhY2tlbmQv dXRpbHMvZm1nci9mbWdyLmMgICAgICAgIHwgMTMgKysrKwogc3JjL2luY2x1ZGUvZXhlY3V0b3Iv ZXhlY3V0b3IuaCAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvZm1nci5oICAgICAgICAgICAgICAg ICAgIHwgIDMgKwogc3JjL2luY2x1ZGUvb3B0aW1pemVyL29wdGltaXplci5oICAgIHwgIDMgKwog c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2NvZXJjZS5oICAgIHwgIDQgKysKIHNyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV90eXBlLmggICAgICB8ICAyICsKIDEwIGZpbGVzIGNoYW5nZWQsIDE5MyBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY0V4cHIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKaW5kZXgg ZjE1Njk4NzliNTIuLmIzMDJiZTM2ZjczIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjRXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKQEAgLTE3 MCw2ICsxNzAsNDcgQEAgRXhlY0luaXRFeHByKEV4cHIgKm5vZGUsIFBsYW5TdGF0ZSAqcGFyZW50 KQogCXJldHVybiBzdGF0ZTsKIH0KIAorLyoKKyAqIEV4ZWNJbml0RXhwclNhZmU6IHNvZnQgZXJy b3IgdmFyaWFudCBvZiBFeGVjSW5pdEV4cHIuCisgKgorICogdXNlIGl0IG9ubHkgZm9yIGV4cHJl c3Npb24gbm9kZXMgc3VwcG9ydCBzb2Z0IGVycm9ycywgbm90IGFsbCBleHByZXNzaW9uCisgKiBu b2RlcyBzdXBwb3J0IGl0LgorKi8KK0V4cHJTdGF0ZSAqCitFeGVjSW5pdEV4cHJTYWZlKEV4cHIg Km5vZGUsIFBsYW5TdGF0ZSAqcGFyZW50KQoreworCUV4cHJTdGF0ZSAgKnN0YXRlOworCUV4cHJF dmFsU3RlcCBzY3JhdGNoID0gezB9OworCisJLyogU3BlY2lhbCBjYXNlOiBOVUxMIGV4cHJlc3Np b24gcHJvZHVjZXMgYSBOVUxMIEV4cHJTdGF0ZSBwb2ludGVyICovCisJaWYgKG5vZGUgPT0gTlVM TCkKKwkJcmV0dXJuIE5VTEw7CisKKwkvKiBJbml0aWFsaXplIEV4cHJTdGF0ZSB3aXRoIGVtcHR5 IHN0ZXAgbGlzdCAqLworCXN0YXRlID0gbWFrZU5vZGUoRXhwclN0YXRlKTsKKwlzdGF0ZS0+ZXhw ciA9IG5vZGU7CisJc3RhdGUtPnBhcmVudCA9IHBhcmVudDsKKwlzdGF0ZS0+ZXh0X3BhcmFtcyA9 IE5VTEw7CisJc3RhdGUtPmVzY29udGV4dCA9IG1ha2VOb2RlKEVycm9yU2F2ZUNvbnRleHQpOwor CXN0YXRlLT5lc2NvbnRleHQtPnR5cGUgPSBUX0Vycm9yU2F2ZUNvbnRleHQ7CisJc3RhdGUtPmVz Y29udGV4dC0+ZXJyb3Jfb2NjdXJyZWQgPSBmYWxzZTsKKwlzdGF0ZS0+ZXNjb250ZXh0LT5kZXRh aWxzX3dhbnRlZCA9IGZhbHNlOworCisJLyogSW5zZXJ0IHNldHVwIHN0ZXBzIGFzIG5lZWRlZCAq LworCUV4ZWNDcmVhdGVFeHByU2V0dXBTdGVwcyhzdGF0ZSwgKE5vZGUgKikgbm9kZSk7CisKKwkv KiBDb21waWxlIHRoZSBleHByZXNzaW9uIHByb3BlciAqLworCUV4ZWNJbml0RXhwclJlYyhub2Rl LCBzdGF0ZSwgJnN0YXRlLT5yZXN2YWx1ZSwgJnN0YXRlLT5yZXNudWxsKTsKKworCS8qIEZpbmFs bHksIGFwcGVuZCBhIERPTkUgc3RlcCAqLworCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9ET05FX1JF VFVSTjsKKwlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CisKKwlFeGVjUmVhZHlF eHByKHN0YXRlKTsKKworCXJldHVybiBzdGF0ZTsKK30KKwogLyoKICAqIEV4ZWNJbml0RXhwcldp dGhQYXJhbXM6IHByZXBhcmUgYSBzdGFuZGFsb25lIGV4cHJlc3Npb24gdHJlZSBmb3IgZXhlY3V0 aW9uCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5j IGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCmluZGV4IGJkYTRjNGViMjky Li5lNWRiZDQwY2RhMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xh dXNlcy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwpAQCAtNTE1 Niw2ICs1MTU2LDE2IEBAIHNxbF9pbmxpbmVfZXJyb3JfY2FsbGJhY2sodm9pZCAqYXJnKQogRXhw ciAqCiBldmFsdWF0ZV9leHByKEV4cHIgKmV4cHIsIE9pZCByZXN1bHRfdHlwZSwgaW50MzIgcmVz dWx0X3R5cG1vZCwKIAkJCSAgT2lkIHJlc3VsdF9jb2xsYXRpb24pCit7CisJcmV0dXJuIGV2YWx1 YXRlX2V4cHJfZXh0ZW5kZWQoZXhwciwKKwkJCQkJCQkJICByZXN1bHRfdHlwZSwKKwkJCQkJCQkJ ICByZXN1bHRfdHlwbW9kLAorCQkJCQkJCQkgIHJlc3VsdF9jb2xsYXRpb24sCisJCQkJCQkJCSAg ZmFsc2UpOworfQorRXhwciAqCitldmFsdWF0ZV9leHByX2V4dGVuZGVkKEV4cHIgKmV4cHIsIE9p ZCByZXN1bHRfdHlwZSwgaW50MzIgcmVzdWx0X3R5cG1vZCwKKwkJCQkJICAgT2lkIHJlc3VsdF9j b2xsYXRpb24sIGJvb2wgZXJyb3Jfc2FmZSkKIHsKIAlFU3RhdGUJICAgKmVzdGF0ZTsKIAlFeHBy U3RhdGUgICpleHByc3RhdGU7CkBAIC01MTgwLDcgKzUxOTAsMTAgQEAgZXZhbHVhdGVfZXhwcihF eHByICpleHByLCBPaWQgcmVzdWx0X3R5cGUsIGludDMyIHJlc3VsdF90eXBtb2QsCiAJICogUHJl cGFyZSBleHByIGZvciBleGVjdXRpb24uICAoTm90ZTogd2UgY2FuJ3QgdXNlIEV4ZWNQcmVwYXJl RXhwcgogCSAqIGJlY2F1c2UgaXQnZCByZXN1bHQgaW4gcmVjdXJzaXZlbHkgaW52b2tpbmcgZXZh bF9jb25zdF9leHByZXNzaW9ucy4pCiAJICovCi0JZXhwcnN0YXRlID0gRXhlY0luaXRFeHByKGV4 cHIsIE5VTEwpOworCWlmIChlcnJvcl9zYWZlKQorCQlleHByc3RhdGUgPSBFeGVjSW5pdEV4cHJT YWZlKGV4cHIsIE5VTEwpOworCWVsc2UKKwkJZXhwcnN0YXRlID0gRXhlY0luaXRFeHByKGV4cHIs IE5VTEwpOwogCiAJLyoKIAkgKiBBbmQgZXZhbHVhdGUgaXQuCkBAIC01MjAwLDYgKzUyMTMsMTIg QEAgZXZhbHVhdGVfZXhwcihFeHByICpleHByLCBPaWQgcmVzdWx0X3R5cGUsIGludDMyIHJlc3Vs dF90eXBtb2QsCiAJLyogR2V0IGJhY2sgdG8gb3V0ZXIgbWVtb3J5IGNvbnRleHQgKi8KIAlNZW1v cnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CiAKKwlpZiAoZXJyb3Jfc2FmZSAmJiBTT0ZU X0VSUk9SX09DQ1VSUkVEKGV4cHJzdGF0ZS0+ZXNjb250ZXh0KSkKKwl7CisJCUZyZWVFeGVjdXRv clN0YXRlKGVzdGF0ZSk7CisJCXJldHVybiBOVUxMOworCX0KKwogCS8qCiAJICogTXVzdCBjb3B5 IHJlc3VsdCBvdXQgb2Ygc3ViLWNvbnRleHQgdXNlZCBieSBleHByZXNzaW9uIGV2YWwuCiAJICoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2VyY2UuYyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9jb2VyY2UuYwppbmRleCA3OGIxZTM2NmFkNy4uY2RjZGQ0NGE3OTkg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2VyY2UuYworKysgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfY29lcmNlLmMKQEAgLTY1Nyw2ICs2NTcsOTggQEAgY2FuX2Nv ZXJjZV90eXBlKGludCBuYXJncywgY29uc3QgT2lkICppbnB1dF90eXBlaWRzLCBjb25zdCBPaWQg KnRhcmdldF90eXBlaWRzLAogCXJldHVybiB0cnVlOwogfQogCisvKgorICogQ3JlYXRlIGFuIGV4 cHJlc3Npb24gdHJlZSB0byByZXByZXNlbnQgY29lcmNpb24gYSBVTktOT1dOIENvbnN0IG5vZGUu CisgKgorICogJ25vZGUnOiB0aGUgaW5wdXQgZXhwcmVzc2lvbgorICogJ2Jhc2VUeXBlSWQnOiBi YXNlIHR5cGUgb2YgZG9tYWluCisgKiAnYmFzZVR5cGVNb2QnOiBiYXNlIHR5cGUgdHlwbW9kIG9m IGRvbWFpbgorICogJ3RhcmdldFR5cGUnOiB0YXJnZXQgdHlwZSB0byBjb2VyY2UgdG8KKyAqICd0 YXJnZXRUeXBlTW9kJzogdGFyZ2V0IHR5cGUgdHlwbW9kCisgKiAnY2NvbnRleHQnOiBjb250ZXh0 IGluZGljYXRvciB0byBjb250cm9sIGNvZXJjaW9ucworICogJ2Nmb3JtYXQnOiBjb2VyY2lvbiBk aXNwbGF5IGZvcm1hdAorICogJ2xvY2F0aW9uJzogY29lcmNpb24gcmVxdWVzdCBsb2NhdGlvbgor ICogJ2hpZGVJbnB1dENvZXJjaW9uJzogaWYgdHJ1ZSwgaGlkZSB0aGUgaW5wdXQgY29lcmNpb24g dW5kZXIgdGhpcyBvbmUuCisgKi8KK05vZGUgKgorQ29lcmNlVW5rbm93bkNvbnN0U2FmZShQYXJz ZVN0YXRlICpwc3RhdGUsIE5vZGUgKm5vZGUsIE9pZCB0YXJnZXRUeXBlLCBpbnQzMiB0YXJnZXRU eXBlTW9kLAorCQkJCQkgICBDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQsIENvZXJjaW9uRm9ybSBj Zm9ybWF0LCBpbnQgbG9jYXRpb24sCisJCQkJCSAgIGJvb2wgaGlkZUlucHV0Q29lcmNpb24pCit7 CisJT2lkCQkJYmFzZVR5cGVJZDsKKwlpbnQzMgkJYmFzZVR5cGVNb2Q7CisJaW50MzIJCWlucHV0 VHlwZU1vZDsKKwlUeXBlCQliYXNlVHlwZTsKKwljaGFyCQkqc3RyaW5nOworCURhdHVtCQlkYXR1 bTsKKwlDb25zdAkgICAqbmV3Y29uOworCU5vZGUJICAgKnJlc3VsdCA9IE5VTEw7CisJQ29uc3QJ ICAgKmNvbiA9IChDb25zdCAqKSBub2RlOworCisJQXNzZXJ0KElzQShub2RlLCBDb25zdCkpOwor CUFzc2VydChleHByVHlwZShub2RlKSA9PSBVTktOT1dOT0lEKTsKKworCWJhc2VUeXBlTW9kID0g dGFyZ2V0VHlwZU1vZDsKKwliYXNlVHlwZUlkID0gZ2V0QmFzZVR5cGVBbmRUeXBtb2QodGFyZ2V0 VHlwZSwgJmJhc2VUeXBlTW9kKTsKKworCWlmIChiYXNlVHlwZUlkID09IElOVEVSVkFMT0lEKQor CQlpbnB1dFR5cGVNb2QgPSBiYXNlVHlwZU1vZDsKKwllbHNlCisJCWlucHV0VHlwZU1vZCA9IC0x OworCisJYmFzZVR5cGUgPSB0eXBlaWRUeXBlKGJhc2VUeXBlSWQpOworCisJLyoKKwkgKiBXZSBh c3N1bWUgaGVyZSB0aGF0IFVOS05PV04ncyBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiBpcyB0aGUg c2FtZSBhcworCSAqIENTVFJJTkcuCisJICovCisJaWYgKCFjb24tPmNvbnN0aXNudWxsKQorCQlz dHJpbmcgPSBEYXR1bUdldENTdHJpbmcoY29uLT5jb25zdHZhbHVlKTsKKwllbHNlCisJCXN0cmlu ZyA9IE5VTEw7CisKKwlpZiAoIXN0cmluZ1R5cGVEYXR1bVNhZmUoYmFzZVR5cGUsCisJCQkJCQkJ IHN0cmluZywKKwkJCQkJCQkgaW5wdXRUeXBlTW9kLAorCQkJCQkJCSAmZGF0dW0pKQorCXsKKwkJ UmVsZWFzZVN5c0NhY2hlKGJhc2VUeXBlKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJbmV3Y29u ID0gbWFrZU5vZGUoQ29uc3QpOworCW5ld2Nvbi0+Y29uc3R0eXBlID0gYmFzZVR5cGVJZDsKKwlu ZXdjb24tPmNvbnN0dHlwbW9kID0gaW5wdXRUeXBlTW9kOworCW5ld2Nvbi0+Y29uc3Rjb2xsaWQg PSB0eXBlVHlwZUNvbGxhdGlvbihiYXNlVHlwZSk7CisJbmV3Y29uLT5jb25zdGxlbiA9IHR5cGVM ZW4oYmFzZVR5cGUpOworCW5ld2Nvbi0+Y29uc3RieXZhbCA9IHR5cGVCeVZhbChiYXNlVHlwZSk7 CisJbmV3Y29uLT5jb25zdGlzbnVsbCA9IGNvbi0+Y29uc3Rpc251bGw7CisJbmV3Y29uLT5jb25z dHZhbHVlID0gZGF0dW07CisKKwkvKgorCSAqIElmIGl0J3MgYSB2YXJsZW5hIHZhbHVlLCBmb3Jj ZSBpdCB0byBiZSBpbiBub24tZXhwYW5kZWQKKwkgKiAobm9uLXRvYXN0ZWQpIGZvcm1hdDsgdGhp cyBhdm9pZHMgYW55IHBvc3NpYmxlIGRlcGVuZGVuY3kgb24KKwkgKiBleHRlcm5hbCB2YWx1ZXMg YW5kIGltcHJvdmVzIGNvbnNpc3RlbmN5IG9mIHJlcHJlc2VudGF0aW9uLgorCSAqLworCWlmICgh Y29uLT5jb25zdGlzbnVsbCAmJiBuZXdjb24tPmNvbnN0bGVuID09IC0xKQorCQluZXdjb24tPmNv bnN0dmFsdWUgPQorCQkJUG9pbnRlckdldERhdHVtKFBHX0RFVE9BU1RfREFUVU0obmV3Y29uLT5j b25zdHZhbHVlKSk7CisKKwlyZXN1bHQgPSAoTm9kZSAqKSBuZXdjb247CisKKwkvKiBJZiB0YXJn ZXQgaXMgYSBkb21haW4sIGFwcGx5IGNvbnN0cmFpbnRzLiAqLworCWlmIChiYXNlVHlwZUlkICE9 IHRhcmdldFR5cGUpCisJCXJlc3VsdCA9IGNvZXJjZV90b19kb21haW4ocmVzdWx0LAorCQkJCQkJ CQkgIGJhc2VUeXBlSWQsIGJhc2VUeXBlTW9kLAorCQkJCQkJCQkgIHRhcmdldFR5cGUsCisJCQkJ CQkJCSAgY2NvbnRleHQsIGNmb3JtYXQsIGxvY2F0aW9uLAorCQkJCQkJCQkgIGZhbHNlKTsKKwor CVJlbGVhc2VTeXNDYWNoZShiYXNlVHlwZSk7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiAKIC8q CiAgKiBDcmVhdGUgYW4gZXhwcmVzc2lvbiB0cmVlIHRvIHJlcHJlc2VudCBjb2VyY2lvbiB0byBh IGRvbWFpbiB0eXBlLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3R5cGUu YyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90eXBlLmMKaW5kZXggNzcxM2JkYzZhZjAuLmQy NjBhZWVjNWRjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdHlwZS5jCisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90eXBlLmMKQEAgLTE5LDYgKzE5LDcgQEAKICNp bmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJsaWIvc3RyaW5naW5mby5oIgog I2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgorI2luY2x1ZGUgIm5vZGVzL21pc2Nub2Rlcy5o IgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNl ci5oIgogI2luY2x1ZGUgInV0aWxzL2FycmF5LmgiCkBAIC02NjAsNiArNjYxLDE5IEBAIHN0cmlu Z1R5cGVEYXR1bShUeXBlIHRwLCBjaGFyICpzdHJpbmcsIGludDMyIGF0dHR5cG1vZCkKIAlyZXR1 cm4gT2lkSW5wdXRGdW5jdGlvbkNhbGwodHlwaW5wdXQsIHN0cmluZywgdHlwaW9wYXJhbSwgYXR0 dHlwbW9kKTsKIH0KIAorLyogZXJyb3Igc2FmZSB2ZXJzaW9uIG9mIHN0cmluZ1R5cGVEYXR1bSAq LworYm9vbAorc3RyaW5nVHlwZURhdHVtU2FmZShUeXBlIHRwLCBjaGFyICpzdHJpbmcsIGludDMy IGF0dHR5cG1vZCwgRGF0dW0gKnJlc3VsdCkKK3sKKwlGb3JtX3BnX3R5cGUgdHlwZm9ybSA9IChG b3JtX3BnX3R5cGUpIEdFVFNUUlVDVCh0cCk7CisJT2lkCQkJdHlwaW5wdXQgPSB0eXBmb3JtLT50 eXBpbnB1dDsKKwlPaWQJCQl0eXBpb3BhcmFtID0gZ2V0VHlwZUlPUGFyYW0odHApOworCUVycm9y U2F2ZUNvbnRleHQgZXNjb250ZXh0ID0ge1RfRXJyb3JTYXZlQ29udGV4dH07CisKKwlyZXR1cm4g T2lkSW5wdXRGdW5jdGlvbkNhbGxTYWZlKHR5cGlucHV0LCBzdHJpbmcsIHR5cGlvcGFyYW0sIGF0 dHR5cG1vZCwKKwkJCQkJCQkJCShOb2RlICopICZlc2NvbnRleHQsIHJlc3VsdCk7Cit9CisKIC8q CiAgKiBHaXZlbiBhIHR5cGVpZCwgcmV0dXJuIHRoZSB0eXBlJ3MgdHlwcmVsaWQgKGFzc29jaWF0 ZWQgcmVsYXRpb24pLCBpZiBhbnkuCiAgKiBSZXR1cm5zIEludmFsaWRPaWQgaWYgdHlwZSBpcyBu b3QgYSBjb21wb3NpdGUgdHlwZS4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3Iv Zm1nci5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMKaW5kZXggMGZlNjNjNmJiODMu LmFhYTRhNDJiMWVhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYwor KysgYi9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYwpAQCAtMTc1OSw2ICsxNzU5LDE5IEBA IE9pZElucHV0RnVuY3Rpb25DYWxsKE9pZCBmdW5jdGlvbklkLCBjaGFyICpzdHIsIE9pZCB0eXBp b3BhcmFtLCBpbnQzMiB0eXBtb2QpCiAJcmV0dXJuIElucHV0RnVuY3Rpb25DYWxsKCZmbGluZm8s IHN0ciwgdHlwaW9wYXJhbSwgdHlwbW9kKTsKIH0KIAorYm9vbAorT2lkSW5wdXRGdW5jdGlvbkNh bGxTYWZlKE9pZCBmdW5jdGlvbklkLCBjaGFyICpzdHIsIE9pZCB0eXBpb3BhcmFtLAorCQkJCQkJ IGludDMyIHR5cG1vZCwgTm9kZSAqZXNjb250ZXh0LAorCQkJCQkJIERhdHVtICpyZXN1bHQpCit7 CisJRm1nckluZm8JCQlmbGluZm87CisKKwlmbWdyX2luZm8oZnVuY3Rpb25JZCwgJmZsaW5mbyk7 CisKKwlyZXR1cm4gSW5wdXRGdW5jdGlvbkNhbGxTYWZlKCZmbGluZm8sIHN0ciwgdHlwaW9wYXJh bSwgdHlwbW9kLAorCQkJCQkJCQkgZXNjb250ZXh0LCByZXN1bHQpOworfQorCiBjaGFyICoKIE9p ZE91dHB1dEZ1bmN0aW9uQ2FsbChPaWQgZnVuY3Rpb25JZCwgRGF0dW0gdmFsKQogewpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1 dG9yL2V4ZWN1dG9yLmgKaW5kZXggZmEyYjY1N2ZiMmYuLmY5OWZjMjZlYjFmIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1 dG9yL2V4ZWN1dG9yLmgKQEAgLTMyNCw2ICszMjQsNyBAQCBFeGVjUHJvY05vZGUoUGxhblN0YXRl ICpub2RlKQogICogcHJvdG90eXBlcyBmcm9tIGZ1bmN0aW9ucyBpbiBleGVjRXhwci5jCiAgKi8K IGV4dGVybiBFeHByU3RhdGUgKkV4ZWNJbml0RXhwcihFeHByICpub2RlLCBQbGFuU3RhdGUgKnBh cmVudCk7CitleHRlcm4gRXhwclN0YXRlICpFeGVjSW5pdEV4cHJTYWZlKEV4cHIgKm5vZGUsIFBs YW5TdGF0ZSAqcGFyZW50KTsKIGV4dGVybiBFeHByU3RhdGUgKkV4ZWNJbml0RXhwcldpdGhQYXJh bXMoRXhwciAqbm9kZSwgUGFyYW1MaXN0SW5mbyBleHRfcGFyYW1zKTsKIGV4dGVybiBFeHByU3Rh dGUgKkV4ZWNJbml0UXVhbChMaXN0ICpxdWFsLCBQbGFuU3RhdGUgKnBhcmVudCk7CiBleHRlcm4g RXhwclN0YXRlICpFeGVjSW5pdENoZWNrKExpc3QgKnF1YWwsIFBsYW5TdGF0ZSAqcGFyZW50KTsK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2ZtZ3IuaCBiL3NyYy9pbmNsdWRlL2ZtZ3IuaAppbmRl eCA3NGZlM2VhMDU3NS4uOTkxZTE0MDM0ZDMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2ZtZ3Iu aAorKysgYi9zcmMvaW5jbHVkZS9mbWdyLmgKQEAgLTc1MCw2ICs3NTAsOSBAQCBleHRlcm4gYm9v bCBEaXJlY3RJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUoUEdGdW5jdGlvbiBmdW5jLCBjaGFyICpzdHIs CiAJCQkJCQkJCQkJRGF0dW0gKnJlc3VsdCk7CiBleHRlcm4gRGF0dW0gT2lkSW5wdXRGdW5jdGlv bkNhbGwoT2lkIGZ1bmN0aW9uSWQsIGNoYXIgKnN0ciwKIAkJCQkJCQkJICBPaWQgdHlwaW9wYXJh bSwgaW50MzIgdHlwbW9kKTsKK2V4dGVybiBib29sIE9pZElucHV0RnVuY3Rpb25DYWxsU2FmZShP aWQgZnVuY3Rpb25JZCwgY2hhciAqc3RyLCBPaWQgdHlwaW9wYXJhbSwKKwkJCQkJCQkJCSBpbnQz MiB0eXBtb2QsIE5vZGUgKmVzY29udGV4dCwKKwkJCQkJCQkJCSBEYXR1bSAqcmVzdWx0KTsKIGV4 dGVybiBjaGFyICpPdXRwdXRGdW5jdGlvbkNhbGwoRm1nckluZm8gKmZsaW5mbywgRGF0dW0gdmFs KTsKIGV4dGVybiBjaGFyICpPaWRPdXRwdXRGdW5jdGlvbkNhbGwoT2lkIGZ1bmN0aW9uSWQsIERh dHVtIHZhbCk7CiBleHRlcm4gRGF0dW0gUmVjZWl2ZUZ1bmN0aW9uQ2FsbChGbWdySW5mbyAqZmxp bmZvLCBTdHJpbmdJbmZvIGJ1ZiwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL29wdGltaXplci9v cHRpbWl6ZXIuaCBiL3NyYy9pbmNsdWRlL29wdGltaXplci9vcHRpbWl6ZXIuaAppbmRleCA0NGVj NTI5NmExOC4uZjdhOGMzNTNhNmIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL29wdGltaXplci9v cHRpbWl6ZXIuaAorKysgYi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvb3B0aW1pemVyLmgKQEAgLTE0 NCw2ICsxNDQsOSBAQCBleHRlcm4gTm9kZSAqZXN0aW1hdGVfZXhwcmVzc2lvbl92YWx1ZShQbGFu bmVySW5mbyAqcm9vdCwgTm9kZSAqbm9kZSk7CiAKIGV4dGVybiBFeHByICpldmFsdWF0ZV9leHBy KEV4cHIgKmV4cHIsIE9pZCByZXN1bHRfdHlwZSwgaW50MzIgcmVzdWx0X3R5cG1vZCwKIAkJCQkJ CSAgIE9pZCByZXN1bHRfY29sbGF0aW9uKTsKK2V4dGVybiBFeHByICpldmFsdWF0ZV9leHByX2V4 dGVuZGVkKEV4cHIgKmV4cHIsIE9pZCByZXN1bHRfdHlwZSwKKwkJCQkJCQkJCWludDMyIHJlc3Vs dF90eXBtb2QsIE9pZCByZXN1bHRfY29sbGF0aW9uLAorCQkJCQkJCQkJYm9vbCBlcnJvcl9zYWZl KTsKIAogZXh0ZXJuIGJvb2wgdmFyX2lzX25vbm51bGxhYmxlKFBsYW5uZXJJbmZvICpyb290LCBW YXIgKnZhciwgYm9vbCB1c2VfcmVsX2luZm8pOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2VfY29lcmNlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfY29lcmNlLmgK aW5kZXggOGQ3NzVjNzJjNTkuLmFkMTZjZGQ3MDIyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2VfY29lcmNlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2NvZXJj ZS5oCkBAIC00OCw2ICs0OCwxMCBAQCBleHRlcm4gYm9vbCBjYW5fY29lcmNlX3R5cGUoaW50IG5h cmdzLCBjb25zdCBPaWQgKmlucHV0X3R5cGVpZHMsIGNvbnN0IE9pZCAqdGFyZwogZXh0ZXJuIE5v ZGUgKmNvZXJjZV90eXBlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwKIAkJCQkJCSBP aWQgaW5wdXRUeXBlSWQsIE9pZCB0YXJnZXRUeXBlSWQsIGludDMyIHRhcmdldFR5cGVNb2QsCiAJ CQkJCQkgQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LCBDb2VyY2lvbkZvcm0gY2Zvcm1hdCwgaW50 IGxvY2F0aW9uKTsKK2V4dGVybiBOb2RlICpDb2VyY2VVbmtub3duQ29uc3RTYWZlKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwKKwkJCQkJCQkJCU9pZCB0YXJnZXRUeXBlLCBpbnQzMiB0 YXJnZXRUeXBlTW9kLAorCQkJCQkJCQkJQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LCBDb2VyY2lv bkZvcm0gY2Zvcm1hdCwKKwkJCQkJCQkJCWludCBsb2NhdGlvbiwgYm9vbCBoaWRlSW5wdXRDb2Vy Y2lvbik7CiBleHRlcm4gTm9kZSAqY29lcmNlX3RvX2RvbWFpbihOb2RlICphcmcsIE9pZCBiYXNl VHlwZUlkLCBpbnQzMiBiYXNlVHlwZU1vZCwKIAkJCQkJCQkgIE9pZCB0eXBlSWQsCiAJCQkJCQkJ ICBDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQsIENvZXJjaW9uRm9ybSBjZm9ybWF0LCBpbnQgbG9j YXRpb24sCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfdHlwZS5oIGIvc3Jj L2luY2x1ZGUvcGFyc2VyL3BhcnNlX3R5cGUuaAppbmRleCAwZDkxOWQ4YmZhMi4uMTIzODFhZWQ2 NGMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV90eXBlLmgKKysrIGIvc3Jj L2luY2x1ZGUvcGFyc2VyL3BhcnNlX3R5cGUuaApAQCAtNDcsNiArNDcsOCBAQCBleHRlcm4gY2hh ciAqdHlwZVR5cGVOYW1lKFR5cGUgdCk7CiBleHRlcm4gT2lkCXR5cGVUeXBlUmVsaWQoVHlwZSB0 eXApOwogZXh0ZXJuIE9pZAl0eXBlVHlwZUNvbGxhdGlvbihUeXBlIHR5cCk7CiBleHRlcm4gRGF0 dW0gc3RyaW5nVHlwZURhdHVtKFR5cGUgdHAsIGNoYXIgKnN0cmluZywgaW50MzIgYXR0dHlwbW9k KTsKK2V4dGVybiBib29sIHN0cmluZ1R5cGVEYXR1bVNhZmUoVHlwZSB0cCwgY2hhciAqc3RyaW5n LCBpbnQzMiBhdHR0eXBtb2QsCisJCQkJCQkJCURhdHVtICpyZXN1bHQpOwogCiBleHRlcm4gT2lk CXR5cGVpZFR5cGVSZWxpZChPaWQgdHlwZV9pZCk7CiBleHRlcm4gT2lkCXR5cGVPckRvbWFpblR5 cGVSZWxpZChPaWQgdHlwZV9pZCk7Ci0tIAoyLjM0LjEKCg== --0000000000009b0f2c0644f36491 Content-Type: text/x-patch; charset="US-ASCII"; name="v13-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v13-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mioa5qa34 RnJvbSAyNjdlM2E5NTBmYWEyODEwMTdhZmZhNmQ3OWY5OTg3N2NhNjMyOWNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxMjoxNDozNiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEz IDE2LzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIHRpbWVzdGFtcCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywKICAgICAgIGNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywg cHAucHJvbmFtZQpmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBj LmNhc3RmdW5jCmFuZCBwYy5jYXN0ZnVuYyA+IDAgYW5kIChjYXN0c291cmNlOjpyZWd0eXBlID0n dGltZXN0YW1wJzo6cmVndHlwZSkKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiAgICAg ICAgIGNhc3Rzb3VyY2UgICAgICAgICAgfCAgICAgICAgIGNhc3R0YXJnZXQgICAgICAgICAgfCBj YXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgICAgICBwcm9zcmMgICAgICAg ICB8ICAgcHJvbmFtZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KIHRpbWVzdGFtcCB3aXRob3V0IHRp bWUgem9uZSB8IGRhdGUgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAyMDI5IHwgYSAgICAg ICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wX2RhdGUgICAgICAgIHwgZGF0ZQogdGltZXN0 YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgdGltZSB3aXRob3V0IHRpbWUgem9uZSAgICAgIHwgICAg IDEzMTYgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCB0aW1lc3RhbXBfdGltZSAgICAgICAg fCB0aW1lCiB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUgfCB0aW1lc3RhbXAgd2l0aCB0aW1l IHpvbmUgICAgfCAgICAgMjAyOCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRpbWVzdGFt cF90aW1lc3RhbXB0eiB8IHRpbWVzdGFtcHR6CiB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUg fCB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUgfCAgICAgMTk2MSB8IGkgICAgICAgICAgIHwg ZiAgICAgICAgICB8IHRpbWVzdGFtcF9zY2FsZSAgICAgICB8IHRpbWVzdGFtcAooNCByb3dzKQoK ZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJq UWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvZGF0ZS5jICAgICAgfCAgNyArKysrKy0tCiBzcmMvYmFja2VuZC91dGlscy9h ZHQvdGltZXN0YW1wLmMgfCAxMCArKysrKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2Vy dGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2RhdGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKaW5kZXggYmJjODY0YTgw Y2QuLjkxY2M4Y2M4NWYwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKQEAgLTEzMzAsNyArMTMzMCwxMCBA QCB0aW1lc3RhbXBfZGF0ZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVzdGFtcAl0aW1lc3RhbXAg PSBQR19HRVRBUkdfVElNRVNUQU1QKDApOwogCURhdGVBRFQJCXJlc3VsdDsKIAotCXJlc3VsdCA9 IHRpbWVzdGFtcDJkYXRlX3NhZmUodGltZXN0YW1wLCBOVUxMKTsKKwlyZXN1bHQgPSB0aW1lc3Rh bXAyZGF0ZV9zYWZlKHRpbWVzdGFtcCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJP Ul9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOworCiAJUEdf UkVUVVJOX0RBVEVBRFQocmVzdWx0KTsKIH0KIApAQCAtMjAwOCw3ICsyMDExLDcgQEAgdGltZXN0 YW1wX3RpbWUoUEdfRlVOQ1RJT05fQVJHUykKIAkJUEdfUkVUVVJOX05VTEwoKTsKIAogCWlmICh0 aW1lc3RhbXAydG0odGltZXN0YW1wLCBOVUxMLCB0bSwgJmZzZWMsIE5VTEwsIE5VTEwpICE9IDAp Ci0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAs CiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRFVElNRV9WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJ CSBlcnJtc2coInRpbWVzdGFtcCBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdGlt ZXN0YW1wLmMKaW5kZXggNmFkY2Y5NTA0MjYuLjQ0MmJjMDYxYmEyIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3RpbWVzdGFtcC5jCkBAIC0zNTIsNyArMzUyLDggQEAgdGltZXN0YW1wX3NjYWxlKFBHX0ZVTkNU SU9OX0FSR1MpCiAKIAlyZXN1bHQgPSB0aW1lc3RhbXA7CiAKLQlBZGp1c3RUaW1lc3RhbXBGb3JU eXBtb2QoJnJlc3VsdCwgdHlwbW9kLCBOVUxMKTsKKwlpZiAoIUFkanVzdFRpbWVzdGFtcEZvclR5 cG1vZCgmcmVzdWx0LCB0eXBtb2QsIGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxM KCk7CiAKIAlQR19SRVRVUk5fVElNRVNUQU1QKHJlc3VsdCk7CiB9CkBAIC02NDMyLDggKzY0MzMs MTMgQEAgRGF0dW0KIHRpbWVzdGFtcF90aW1lc3RhbXB0eihQR19GVU5DVElPTl9BUkdTKQogewog CVRpbWVzdGFtcAl0aW1lc3RhbXAgPSBQR19HRVRBUkdfVElNRVNUQU1QKDApOworCVRpbWVzdGFt cFR6IHJlc3VsdDsKIAotCVBHX1JFVFVSTl9USU1FU1RBTVBUWih0aW1lc3RhbXAydGltZXN0YW1w dHoodGltZXN0YW1wKSk7CisJcmVzdWx0ID0gdGltZXN0YW1wMnRpbWVzdGFtcHR6X3NhZmUodGlt ZXN0YW1wLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5m by0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fVElNRVNUQU1Q VFoocmVzdWx0KTsKIH0KIAogLyoKLS0gCjIuMzQuMQoK --0000000000009b0f2c0644f36491 Content-Type: text/x-patch; charset="US-ASCII"; name="v13-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v13-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mioa5qa55 RnJvbSA3NDA0YWU3OTBjYjgwYjgwNTBlZjMyMjhlMDFkZmZjYTk1YzY2MDQ4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxMjowNDo0MCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEz IDE1LzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIHRpbWVzdGFtcHR6IHRvIG90aGVyIHR5cGVz CiBwZXIgcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJl Z3R5cGUsIGNhc3RmdW5jLAogICAgICAgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgKGNhc3Rzb3VyY2U6OnJlZ3R5cGUg PSd0aW1lc3RhbXB0eic6OnJlZ3R5cGUpCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7Cgog ICAgICAgIGNhc3Rzb3VyY2UgICAgICAgIHwgICAgICAgICBjYXN0dGFyZ2V0ICAgICAgICAgIHwg Y2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAgICAgcHJvc3JjICAgICAg ICAgfCAgIHByb25hbWUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCiB0aW1lc3RhbXAgd2l0aCB0aW1lIHpv bmUgfCBkYXRlICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMTE3OCB8IGEgICAgICAgICAg IHwgZiAgICAgICAgICB8IHRpbWVzdGFtcHR6X2RhdGUgICAgICB8IGRhdGUKIHRpbWVzdGFtcCB3 aXRoIHRpbWUgem9uZSB8IHRpbWUgd2l0aG91dCB0aW1lIHpvbmUgICAgICB8ICAgICAyMDE5IHwg YSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wdHpfdGltZSAgICAgIHwgdGltZQog dGltZXN0YW1wIHdpdGggdGltZSB6b25lIHwgdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwg ICAgIDIwMjcgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCB0aW1lc3RhbXB0el90aW1lc3Rh bXAgfCB0aW1lc3RhbXAKIHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZSB8IHRpbWUgd2l0aCB0aW1l IHpvbmUgICAgICAgICB8ICAgICAxMzg4IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGlt ZXN0YW1wdHpfdGltZXR6ICAgIHwgdGltZXR6CiB0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUgfCB0 aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUgICAgfCAgICAgMTk2NyB8IGkgICAgICAgICAgIHwgZiAg ICAgICAgICB8IHRpbWVzdGFtcHR6X3NjYWxlICAgICB8IHRpbWVzdGFtcHR6Cig1IHJvd3MpCgpk aXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpR aXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5k L3V0aWxzL2FkdC9kYXRlLmMgICAgICB8ICA5ICsrKysrKy0tLQogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3RpbWVzdGFtcC5jIHwgMTAgKysrKysrKystLQogMiBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNl cnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9kYXRlLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCmluZGV4IDhmYTMzNmRh MjUwLi5iYmM4NjRhODBjZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCkBAIC0xNDA2LDcgKzE0MDYsMTAg QEAgdGltZXN0YW1wdHpfZGF0ZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVzdGFtcFR6IHRpbWVz dGFtcCA9IFBHX0dFVEFSR19USU1FU1RBTVAoMCk7CiAJRGF0ZUFEVAkJcmVzdWx0OwogCi0JcmVz dWx0ID0gdGltZXN0YW1wdHoyZGF0ZV9zYWZlKHRpbWVzdGFtcCwgTlVMTCk7CisJcmVzdWx0ID0g dGltZXN0YW1wdHoyZGF0ZV9zYWZlKHRpbWVzdGFtcCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAo U09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmFyZ3MpKQorCQlQR19SRVRVUk5fTlVMTCgpOwor CiAJUEdfUkVUVVJOX0RBVEVBRFQocmVzdWx0KTsKIH0KIApAQCAtMjAzNiw3ICsyMDM5LDcgQEAg dGltZXN0YW1wdHpfdGltZShQR19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fTlVMTCgpOwog CiAJaWYgKHRpbWVzdGFtcDJ0bSh0aW1lc3RhbXAsICZ0eiwgdG0sICZmc2VjLCBOVUxMLCBOVUxM KSAhPSAwKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERh dHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfREFURVRJTUVfVkFMVUVfT1VUX09GX1JBTkdF KSwKIAkJCQkgZXJybXNnKCJ0aW1lc3RhbXAgb3V0IG9mIHJhbmdlIikpKTsKIApAQCAtMjk1NSw3 ICsyOTU4LDcgQEAgdGltZXN0YW1wdHpfdGltZXR6KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCVBHX1JF VFVSTl9OVUxMKCk7CiAKIAlpZiAodGltZXN0YW1wMnRtKHRpbWVzdGFtcCwgJnR6LCB0bSwgJmZz ZWMsIE5VTEwsIE5VTEwpICE9IDApCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZv LT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRFVElNRV9WQUxV RV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coInRpbWVzdGFtcCBvdXQgb2YgcmFuZ2UiKSkp OwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKaW5kZXggMWU2OWU2YWRiNzcuLjZhZGNmOTUw NDI2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCkBAIC04NzUsNyArODc1LDggQEAgdGlt ZXN0YW1wdHpfc2NhbGUoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IHRpbWVzdGFtcDsK IAotCUFkanVzdFRpbWVzdGFtcEZvclR5cG1vZCgmcmVzdWx0LCB0eXBtb2QsIE5VTEwpOworCWlm ICghQWRqdXN0VGltZXN0YW1wRm9yVHlwbW9kKCZyZXN1bHQsIHR5cG1vZCwgZmNpbmZvLT5jb250 ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9USU1FU1RBTVBUWihyZXN1 bHQpOwogfQpAQCAtNjQ5NCw4ICs2NDk1LDEzIEBAIERhdHVtCiB0aW1lc3RhbXB0el90aW1lc3Rh bXAoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlUaW1lc3RhbXBUeiB0aW1lc3RhbXAgPSBQR19HRVRB UkdfVElNRVNUQU1QVFooMCk7CisJVGltZXN0YW1wCXJlc3VsdDsKIAotCVBHX1JFVFVSTl9USU1F U1RBTVAodGltZXN0YW1wdHoydGltZXN0YW1wKHRpbWVzdGFtcCkpOworCXJlc3VsdCA9IHRpbWVz dGFtcHR6MnRpbWVzdGFtcF9zYWZlKHRpbWVzdGFtcCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAo dW5saWtlbHkoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdfUkVU VVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9USU1FU1RBTVAocmVzdWx0KTsKIH0KIAogLyoKLS0g CjIuMzQuMQoK --0000000000009b0f2c0644f36491 Content-Type: text/x-patch; charset="US-ASCII"; name="v13-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v13-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mioa5qa03 RnJvbSA4ZTI5MmUxMWQ5ZTc3MDAxMTE1MWI2YmNiMmNjNDliYWE4MTg2ODhjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjQgTm92IDIwMjUgMTQ6MjY6NTMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MyAxNy8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBqc29uYiB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l IGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdqc29uYic6OnJl Z3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgICAgY2Fz dHRhcmdldCAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgcHJv c3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0K IGpzb25iICAgICAgfCBib29sZWFuICAgICAgICAgIHwgICAgIDM1NTYgfCBlICAgICAgICAgICB8 IGYgICAgICAgICAgfCBqc29uYl9ib29sICAgIHwgYm9vbAoganNvbmIgICAgICB8IG51bWVyaWMg ICAgICAgICAgfCAgICAgMzQ0OSB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGpzb25iX251 bWVyaWMgfCBudW1lcmljCiBqc29uYiAgICAgIHwgc21hbGxpbnQgICAgICAgICB8ICAgICAzNDUw IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwganNvbmJfaW50MiAgICB8IGludDIKIGpzb25i ICAgICAgfCBpbnRlZ2VyICAgICAgICAgIHwgICAgIDM0NTEgfCBlICAgICAgICAgICB8IGYgICAg ICAgICAgfCBqc29uYl9pbnQ0ICAgIHwgaW50NAoganNvbmIgICAgICB8IGJpZ2ludCAgICAgICAg ICAgfCAgICAgMzQ1MiB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGpzb25iX2ludDggICAg fCBpbnQ4CiBqc29uYiAgICAgIHwgcmVhbCAgICAgICAgICAgICB8ICAgICAzNDUzIHwgZSAgICAg ICAgICAgfCBmICAgICAgICAgIHwganNvbmJfZmxvYXQ0ICB8IGZsb2F0NAoganNvbmIgICAgICB8 IGRvdWJsZSBwcmVjaXNpb24gfCAgICAgMjU4MCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8 IGpzb25iX2Zsb2F0OCAgfCBmbG9hdDgKKDcgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9z dGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1Nmlf NGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25iLmMgfCA3 NCArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDU4 IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9qc29uYi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25iLmMKaW5kZXgg OTM5OWNkYjQ5MWEuLmFiMjRkNmRjODEzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvanNvbmIuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmIuYwpAQCAtMjAwNiw3 ICsyMDA2LDcgQEAgSnNvbmJFeHRyYWN0U2NhbGFyKEpzb25iQ29udGFpbmVyICpqYmMsIEpzb25i VmFsdWUgKnJlcykKICAqIEVtaXQgY29ycmVjdCwgdHJhbnNsYXRhYmxlIGNhc3QgZXJyb3IgbWVz c2FnZQogICovCiBzdGF0aWMgdm9pZAotY2Fubm90Q2FzdEpzb25iVmFsdWUoZW51bSBqYnZUeXBl IHR5cGUsIGNvbnN0IGNoYXIgKnNxbHR5cGUpCitjYW5ub3RDYXN0SnNvbmJWYWx1ZShlbnVtIGpi dlR5cGUgdHlwZSwgY29uc3QgY2hhciAqc3FsdHlwZSwgTm9kZSAqZXNjb250ZXh0KQogewogCXN0 YXRpYyBjb25zdCBzdHJ1Y3QKIAl7CkBAIC0yMDI3LDcgKzIwMjcsNyBAQCBjYW5ub3RDYXN0SnNv bmJWYWx1ZShlbnVtIGpidlR5cGUgdHlwZSwgY29uc3QgY2hhciAqc3FsdHlwZSkKIAogCWZvciAo aSA9IDA7IGkgPCBsZW5ndGhvZihtZXNzYWdlcyk7IGkrKykKIAkJaWYgKG1lc3NhZ2VzW2ldLnR5 cGUgPT0gdHlwZSkKLQkJCWVyZXBvcnQoRVJST1IsCisJCQllcmV0dXJuKGVzY29udGV4dCwsCiAJ CQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAogCQkJCQkgZXJy bXNnKG1lc3NhZ2VzW2ldLm1zZywgc3FsdHlwZSkpKTsKIApAQCAtMjA0Miw3ICsyMDQyLDEwIEBA IGpzb25iX2Jvb2woUEdfRlVOQ1RJT05fQVJHUykKIAlKc29uYlZhbHVlCXY7CiAKIAlpZiAoIUpz b25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUo di50eXBlLCAiYm9vbGVhbiIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi Ym9vbGVhbiIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJ aWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTIwNTEsNyArMjA1NCwxMCBAQCBqc29uYl9i b29sKFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJaWYgKHYudHlwZSAhPSBqYnZCb29sKQotCQlj YW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJib29sZWFuIik7CisJeworCQljYW5ub3RDYXN0 SnNvbmJWYWx1ZSh2LnR5cGUsICJib29sZWFuIiwgZmNpbmZvLT5jb250ZXh0KTsKKwkJUEdfUkVU VVJOX05VTEwoKTsKKwl9CiAKIAlQR19GUkVFX0lGX0NPUFkoaW4sIDApOwogCkBAIC0yMDY2LDcg KzIwNzIsMTAgQEAganNvbmJfbnVtZXJpYyhQR19GVU5DVElPTl9BUkdTKQogCU51bWVyaWMJCXJl dFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290LCAmdikpCi0JCWNh bm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgIm51bWVyaWMiKTsKKwl7CisJCWNhbm5vdENhc3RK c29uYlZhbHVlKHYudHlwZSwgIm51bWVyaWMiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRV Uk5fTlVMTCgpOworCX0KIAogCWlmICh2LnR5cGUgPT0gamJ2TnVsbCkKIAl7CkBAIC0yMDc1LDcg KzIwODQsMTAgQEAganNvbmJfbnVtZXJpYyhQR19GVU5DVElPTl9BUkdTKQogCX0KIAogCWlmICh2 LnR5cGUgIT0gamJ2TnVtZXJpYykKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAibnVt ZXJpYyIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAibnVtZXJpYyIsIGZj aW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJLyoKIAkgKiB2LnZh bC5udW1lcmljIHBvaW50cyBpbnRvIGpzb25iIGJvZHksIHNvIHdlIG5lZWQgdG8gbWFrZSBhIGNv cHkgdG8KQEAgLTIwOTYsNyArMjEwOCwxMCBAQCBqc29uYl9pbnQyKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJRGF0dW0JCXJldFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290 LCAmdikpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgInNtYWxsaW50Iik7CisJewor CQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJzbWFsbGludCIsIGZjaW5mby0+Y29udGV4 dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQog CXsKQEAgLTIxMDUsNyArMjEyMCwxMCBAQCBqc29uYl9pbnQyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ fQogCiAJaWYgKHYudHlwZSAhPSBqYnZOdW1lcmljKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2 LnR5cGUsICJzbWFsbGludCIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi c21hbGxpbnQiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAog CXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2ludDIsCiAJCQkJCQkJCSAg IE51bWVyaWNHZXREYXR1bSh2LnZhbC5udW1lcmljKSk7CkBAIC0yMTIzLDcgKzIxNDEsMTAgQEAg anNvbmJfaW50NChQR19GVU5DVElPTl9BUkdTKQogCURhdHVtCQlyZXRWYWx1ZTsKIAogCWlmICgh SnNvbmJFeHRyYWN0U2NhbGFyKCZpbi0+cm9vdCwgJnYpKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1 ZSh2LnR5cGUsICJpbnRlZ2VyIik7CisJeworCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUs ICJpbnRlZ2VyIiwgZmNpbmZvLT5jb250ZXh0KTsKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAK IAlpZiAodi50eXBlID09IGpidk51bGwpCiAJewpAQCAtMjEzMiw3ICsyMTUzLDEwIEBAIGpzb25i X2ludDQoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVyaWMp Ci0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImludGVnZXIiKTsKKwl7CisJCWNhbm5v dENhc3RKc29uYlZhbHVlKHYudHlwZSwgImludGVnZXIiLCBmY2luZm8tPmNvbnRleHQpOworCQlQ R19SRVRVUk5fTlVMTCgpOworCX0KIAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShu dW1lcmljX2ludDQsCiAJCQkJCQkJCSAgIE51bWVyaWNHZXREYXR1bSh2LnZhbC5udW1lcmljKSk7 CkBAIC0yMTUwLDcgKzIxNzQsMTAgQEAganNvbmJfaW50OChQR19GVU5DVElPTl9BUkdTKQogCURh dHVtCQlyZXRWYWx1ZTsKIAogCWlmICghSnNvbmJFeHRyYWN0U2NhbGFyKCZpbi0+cm9vdCwgJnYp KQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJiaWdpbnQiKTsKKwl7CisJCWNhbm5v dENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJpZ2ludCIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBH X1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTIx NTksNyArMjE4NiwxMCBAQCBqc29uYl9pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJaWYg KHYudHlwZSAhPSBqYnZOdW1lcmljKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJi aWdpbnQiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJpZ2ludCIsIGZj aW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJcmV0VmFsdWUgPSBE aXJlY3RGdW5jdGlvbkNhbGwxKG51bWVyaWNfaW50OCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERh dHVtKHYudmFsLm51bWVyaWMpKTsKQEAgLTIxNzcsNyArMjIwNywxMCBAQCBqc29uYl9mbG9hdDQo UEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmV0VmFsdWU7CiAKIAlpZiAoIUpzb25iRXh0cmFj dFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi cmVhbCIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAicmVhbCIsIGZjaW5m by0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBq YnZOdWxsKQogCXsKQEAgLTIxODYsNyArMjIxOSwxMCBAQCBqc29uYl9mbG9hdDQoUEdfRlVOQ1RJ T05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RK c29uYlZhbHVlKHYudHlwZSwgInJlYWwiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYu dHlwZSwgInJlYWwiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0K IAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2Zsb2F0NCwKIAkJCQkJ CQkJICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51bWVyaWMpKTsKQEAgLTIyMDQsNyArMjI0MCwx MCBAQCBqc29uYl9mbG9hdDgoUEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmV0VmFsdWU7CiAK IAlpZiAoIUpzb25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpz b25iVmFsdWUodi50eXBlLCAiZG91YmxlIHByZWNpc2lvbiIpOworCXsKKwkJY2Fubm90Q2FzdEpz b25iVmFsdWUodi50eXBlLCAiZG91YmxlIHByZWNpc2lvbiIsIGZjaW5mby0+Y29udGV4dCk7CisJ CVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAg LTIyMTMsNyArMjI1MiwxMCBAQCBqc29uYl9mbG9hdDgoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAK IAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlw ZSwgImRvdWJsZSBwcmVjaXNpb24iKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlw ZSwgImRvdWJsZSBwcmVjaXNpb24iLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVM TCgpOworCX0KIAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2Zsb2F0 OCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51bWVyaWMpKTsKLS0gCjIuMzQu MQoK --0000000000009b0f2c0644f36491 Content-Type: text/x-patch; charset="US-ASCII"; name="v13-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v13-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mioa5qa97 RnJvbSBmMTViNWJjMWMwNmRkZGJkZjJjMDlmN2JhZjRlYzk5MjJiYmM4MWNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxMzoxNTozMiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEz IDEzLzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGRhdGUgdG8gb3RoZXIgdHlwZXMgcGVyCiBw Z19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlwZSwg Y2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFtZSBm cm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5jIGFu ZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZGF0ZSc6OnJlZ3R5 cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCmNhc3Rzb3VyY2UgfCAgICAgICAgIGNh c3R0YXJnZXQgICAgICAgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8 ICAgICAgcHJvc3JjICAgICAgfCAgIHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KIGRhdGUgICAgICAgfCB0aW1lc3RhbXAgd2l0 aG91dCB0aW1lIHpvbmUgfCAgICAgMjAyNCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGRh dGVfdGltZXN0YW1wICAgfCB0aW1lc3RhbXAKIGRhdGUgICAgICAgfCB0aW1lc3RhbXAgd2l0aCB0 aW1lIHpvbmUgICAgfCAgICAgMTE3NCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGRhdGVf dGltZXN0YW1wdHogfCB0aW1lc3RhbXB0egooMiByb3dzKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9w b3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2 aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jIHwg MTcgKysrKysrLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDEx IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCmluZGV4IGM0YjgxMjVkZDY2Li5jZjI0MWVh OTc5NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCkBAIC03MzAsMTUgKzczMCw2IEBAIGRhdGUydGltZXN0 YW1wdHpfc2FmZShEYXRlQURUIGRhdGVWYWwsIE5vZGUgKmVzY29udGV4dCkKIAlyZXR1cm4gcmVz dWx0OwogfQogCi0vKgotICogUHJvbW90ZSBkYXRlIHRvIHRpbWVzdGFtcHR6LCB0aHJvd2luZyBl cnJvciBmb3Igb3ZlcmZsb3cuCi0gKi8KLXN0YXRpYyBUaW1lc3RhbXBUegotZGF0ZTJ0aW1lc3Rh bXB0eihEYXRlQURUIGRhdGVWYWwpCi17Ci0JcmV0dXJuIGRhdGUydGltZXN0YW1wdHpfc2FmZShk YXRlVmFsLCBOVUxMKTsKLX0KLQogLyoKICAqIGRhdGUydGltZXN0YW1wX25vX292ZXJmbG93CiAg KgpAQCAtMTMyMyw3ICsxMzE0LDkgQEAgZGF0ZV90aW1lc3RhbXAoUEdfRlVOQ1RJT05fQVJHUykK IAlEYXRlQURUCQlkYXRlVmFsID0gUEdfR0VUQVJHX0RBVEVBRFQoMCk7CiAJVGltZXN0YW1wCXJl c3VsdDsKIAotCXJlc3VsdCA9IGRhdGUydGltZXN0YW1wKGRhdGVWYWwpOworCXJlc3VsdCA9IGRh dGUydGltZXN0YW1wX3NhZmUoZGF0ZVZhbCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZihTT0ZUX0VS Uk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlQ R19SRVRVUk5fVElNRVNUQU1QKHJlc3VsdCk7CiB9CkBAIC0xMzk2LDcgKzEzODksOSBAQCBkYXRl X3RpbWVzdGFtcHR6KFBHX0ZVTkNUSU9OX0FSR1MpCiAJRGF0ZUFEVAkJZGF0ZVZhbCA9IFBHX0dF VEFSR19EQVRFQURUKDApOwogCVRpbWVzdGFtcFR6IHJlc3VsdDsKIAotCXJlc3VsdCA9IGRhdGUy dGltZXN0YW1wdHooZGF0ZVZhbCk7CisJcmVzdWx0ID0gZGF0ZTJ0aW1lc3RhbXB0el9zYWZlKGRh dGVWYWwsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZv LT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9USU1FU1RBTVAo cmVzdWx0KTsKIH0KLS0gCjIuMzQuMQoK --0000000000009b0f2c0644f36491 Content-Type: text/x-patch; charset="US-ASCII"; name="v13-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v13-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mioa5qa76 RnJvbSA0ODE1ZmE2NzNhZTVkYTQ2MDk1NDZjMmNhNzkzZjNlMDBmZjZkZWFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODo0MzoyOSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEz IDE0LzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGludGVydmFsIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUgZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVu YyBhbmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2ludGVydmFs Jzo6cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAg ICAgICBjYXN0dGFyZ2V0ICAgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRo b2QgfCAgICAgcHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQogaW50ZXJ2YWwgICB8IHRpbWUgd2l0aG91dCB0aW1lIHpvbmUg fCAgICAgMTQxOSB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludGVydmFsX3RpbWUgIHwg dGltZQogaW50ZXJ2YWwgICB8IGludGVydmFsICAgICAgICAgICAgICAgfCAgICAgMTIwMCB8IGkg ICAgICAgICAgIHwgZiAgICAgICAgICB8IGludGVydmFsX3NjYWxlIHwgaW50ZXJ2YWwKKDIgcm93 cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3 d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2RhdGUuYyAgICAgIHwgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3RpbWVzdGFtcC5jIHwgMyArKy0KIDIgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCmluZGV4IGNmMjQxZWE5Nzk0Li44ZmEzMzZk YTI1MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCkBAIC0yMTA2LDcgKzIxMDYsNyBAQCBpbnRlcnZhbF90 aW1lKFBHX0ZVTkNUSU9OX0FSR1MpCiAJVGltZUFEVAkJcmVzdWx0OwogCiAJaWYgKElOVEVSVkFM X05PVF9GSU5JVEUoc3BhbikpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5j b250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRFVElNRV9WQUxVRV9P VVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coImNhbm5vdCBjb252ZXJ0IGluZmluaXRlIGludGVy dmFsIHRvIHRpbWUiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGlt ZXN0YW1wLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKaW5kZXggYWY0ODUy N2Q0MzYuLjFlNjllNmFkYjc3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGlt ZXN0YW1wLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCkBAIC0xMzM0 LDcgKzEzMzQsOCBAQCBpbnRlcnZhbF9zY2FsZShQR19GVU5DVElPTl9BUkdTKQogCXJlc3VsdCA9 IHBhbGxvYyhzaXplb2YoSW50ZXJ2YWwpKTsKIAkqcmVzdWx0ID0gKmludGVydmFsOwogCi0JQWRq dXN0SW50ZXJ2YWxGb3JUeXBtb2QocmVzdWx0LCB0eXBtb2QsIE5VTEwpOworCWlmICghQWRqdXN0 SW50ZXJ2YWxGb3JUeXBtb2QocmVzdWx0LCB0eXBtb2QsIGZjaW5mby0+Y29udGV4dCkpCisJCVBH X1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fSU5URVJWQUxfUChyZXN1bHQpOwogfQotLSAK Mi4zNC4xCgo= --0000000000009b0f2c0644f36491 Content-Type: text/x-patch; charset="US-ASCII"; name="v13-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v13-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mioa5qaf10 RnJvbSAxNGVjYWQ0YzhjNmUxYjg3ZGZhYzkzYmM5NTE4NjliNGU1YjY1ZTJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjU6MzcgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MyAxMC8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBudW1lcmljIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUgZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVu YyBhbmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ251bWVyaWMn OjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgpjYXN0c291cmNlIHwgICAg Y2FzdHRhcmdldCAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAg IHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLQogbnVtZXJpYyAgICB8IGJpZ2ludCAgICAgICAgICAgfCAgICAgMTc3OSB8IGEgICAgICAg ICAgIHwgZiAgICAgICAgICB8IG51bWVyaWNfaW50OCAgIHwgaW50OAogbnVtZXJpYyAgICB8IHNt YWxsaW50ICAgICAgICAgfCAgICAgMTc4MyB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IG51 bWVyaWNfaW50MiAgIHwgaW50MgogbnVtZXJpYyAgICB8IGludGVnZXIgICAgICAgICAgfCAgICAg MTc0NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IG51bWVyaWNfaW50NCAgIHwgaW50NAog bnVtZXJpYyAgICB8IHJlYWwgICAgICAgICAgICAgfCAgICAgMTc0NSB8IGkgICAgICAgICAgIHwg ZiAgICAgICAgICB8IG51bWVyaWNfZmxvYXQ0IHwgZmxvYXQ0CiBudW1lcmljICAgIHwgZG91Ymxl IHByZWNpc2lvbiB8ICAgICAxNzQ2IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgbnVtZXJp Y19mbG9hdDggfCBmbG9hdDgKIG51bWVyaWMgICAgfCBtb25leSAgICAgICAgICAgIHwgICAgIDM4 MjQgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBudW1lcmljX2Nhc2ggICB8IG1vbmV5CiBu dW1lcmljICAgIHwgbnVtZXJpYyAgICAgICAgICB8ICAgICAxNzAzIHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgbnVtZXJpYyAgICAgICAgfCBudW1lcmljCig3IHJvd3MpCgpkaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL0NBQ0p1ZnhIQ016ckhPVz13UmU4TDMwck1oQjNzandBdjFM RTkyOEZhN3N4TXUxVHgtZ0BtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC9udW1lcmljLmMgfCA1OCArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L251bWVyaWMuYwppbmRleCAyNTAxMDA3ZDk4MS4uNDBkMjcwOWI2NGEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L251bWVyaWMuYwpAQCAtMTI0NCw3ICsxMjQ0LDggQEAgbnVtZXJpYwkJKFBHX0ZVTkNUSU9OX0FS R1MpCiAJICovCiAJaWYgKE5VTUVSSUNfSVNfU1BFQ0lBTChudW0pKQogCXsKLQkJKHZvaWQpIGFw cGx5X3R5cG1vZF9zcGVjaWFsKG51bSwgdHlwbW9kLCBOVUxMKTsKKwkJaWYgKCFhcHBseV90eXBt b2Rfc3BlY2lhbChudW0sIHR5cG1vZCwgZmNpbmZvLT5jb250ZXh0KSkKKwkJCVBHX1JFVFVSTl9O VUxMKCk7CiAJCVBHX1JFVFVSTl9OVU1FUklDKGR1cGxpY2F0ZV9udW1lcmljKG51bSkpOwogCX0K IApAQCAtMTI5NSw4ICsxMjk2LDkgQEAgbnVtZXJpYwkJKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW5p dF92YXIoJnZhcik7CiAKIAlzZXRfdmFyX2Zyb21fbnVtKG51bSwgJnZhcik7Ci0JKHZvaWQpIGFw cGx5X3R5cG1vZCgmdmFyLCB0eXBtb2QsIE5VTEwpOwotCW5ldyA9IG1ha2VfcmVzdWx0KCZ2YXIp OworCWlmICghYXBwbHlfdHlwbW9kKCZ2YXIsIHR5cG1vZCwgZmNpbmZvLT5jb250ZXh0KSkKKwkJ UEdfUkVUVVJOX05VTEwoKTsKKwluZXcgPSBtYWtlX3Jlc3VsdF9zYWZlKCZ2YXIsIGZjaW5mby0+ Y29udGV4dCk7CiAKIAlmcmVlX3ZhcigmdmFyKTsKIApAQCAtMzAxOSw3ICszMDIxLDEwIEBAIG51 bWVyaWNfbXVsKFBHX0ZVTkNUSU9OX0FSR1MpCiAJTnVtZXJpYwkJbnVtMiA9IFBHX0dFVEFSR19O VU1FUklDKDEpOwogCU51bWVyaWMJCXJlczsKIAotCXJlcyA9IG51bWVyaWNfbXVsX3NhZmUobnVt MSwgbnVtMiwgTlVMTCk7CisJcmVzID0gbnVtZXJpY19tdWxfc2FmZShudW0xLCBudW0yLCBmY2lu Zm8tPmNvbnRleHQpOworCisJaWYgKHVubGlrZWx5KFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZv LT5jb250ZXh0KSkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fTlVNRVJJQyhy ZXMpOwogfQpAQCAtNDM5Myw5ICs0Mzk4LDE1IEBAIG51bWVyaWNfaW50NF9zYWZlKE51bWVyaWMg bnVtLCBOb2RlICplc2NvbnRleHQpCiBEYXR1bQogbnVtZXJpY19pbnQ0KFBHX0ZVTkNUSU9OX0FS R1MpCiB7CisJaW50MzIJCXJlc3VsdDsKIAlOdW1lcmljCQludW0gPSBQR19HRVRBUkdfTlVNRVJJ QygwKTsKIAotCVBHX1JFVFVSTl9JTlQzMihudW1lcmljX2ludDRfc2FmZShudW0sIE5VTEwpKTsK KwlyZXN1bHQgPSBudW1lcmljX2ludDRfc2FmZShudW0sIGZjaW5mby0+Y29udGV4dCk7CisKKwlp ZiAodW5saWtlbHkoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdf UkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9JTlQzMihyZXN1bHQpOwogfQogCiAvKgpAQCAt NDQ2Myw5ICs0NDc0LDE1IEBAIG51bWVyaWNfaW50OF9zYWZlKE51bWVyaWMgbnVtLCBOb2RlICpl c2NvbnRleHQpCiBEYXR1bQogbnVtZXJpY19pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CisJaW50 NjQJCXJlc3VsdDsKIAlOdW1lcmljCQludW0gPSBQR19HRVRBUkdfTlVNRVJJQygwKTsKIAotCVBH X1JFVFVSTl9JTlQ2NChudW1lcmljX2ludDhfc2FmZShudW0sIE5VTEwpKTsKKwlyZXN1bHQgPSBu dW1lcmljX2ludDhfc2FmZShudW0sIGZjaW5mby0+Y29udGV4dCk7CisKKwlpZiAodW5saWtlbHko U09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdfUkVUVVJOX05VTEwo KTsKKworCVBHX1JFVFVSTl9JTlQ2NChyZXN1bHQpOwogfQogCiAKQEAgLTQ0ODksMTEgKzQ1MDYs MTEgQEAgbnVtZXJpY19pbnQyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaWYgKE5VTUVSSUNfSVNfU1BF Q0lBTChudW0pKQogCXsKIAkJaWYgKE5VTUVSSUNfSVNfTkFOKG51bSkpCi0JCQllcmVwb3J0KEVS Uk9SLAorCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJjYW5ub3Qg Y29udmVydCBOYU4gdG8gJXMiLCAic21hbGxpbnQiKSkpOwogCQllbHNlCi0JCQllcmVwb3J0KEVS Uk9SLAorCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJjYW5ub3Qg Y29udmVydCBpbmZpbml0eSB0byAlcyIsICJzbWFsbGludCIpKSk7CiAJfQpAQCAtNDUwMiwxMiAr NDUxOSwxMiBAQCBudW1lcmljX2ludDIoUEdfRlVOQ1RJT05fQVJHUykKIAlpbml0X3Zhcl9mcm9t X251bShudW0sICZ4KTsKIAogCWlmICghbnVtZXJpY3Zhcl90b19pbnQ2NCgmeCwgJnZhbCkpCi0J CWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJ CQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVy cm1zZygic21hbGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIAogCWlmICh1bmxpa2VseSh2YWwgPCBQ R19JTlQxNl9NSU4pIHx8IHVubGlrZWx5KHZhbCA+IFBHX0lOVDE2X01BWCkpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygic21h bGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIApAQCAtNDU3MiwxMCArNDU4OSwxNCBAQCBudW1lcmlj X2Zsb2F0OChQR19GVU5DVElPTl9BUkdTKQogCiAJdG1wID0gRGF0dW1HZXRDU3RyaW5nKERpcmVj dEZ1bmN0aW9uQ2FsbDEobnVtZXJpY19vdXQsCiAJCQkJCQkJCQkJCSAgTnVtZXJpY0dldERhdHVt KG51bSkpKTsKLQotCXJlc3VsdCA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEoZmxvYXQ4aW4sIENTdHJp bmdHZXREYXR1bSh0bXApKTsKLQotCXBmcmVlKHRtcCk7CisJaWYgKCFEaXJlY3RJbnB1dEZ1bmN0 aW9uQ2FsbFNhZmUoZmxvYXQ4aW4sIHRtcCwKKwkJCQkJCQkJCSBJbnZhbGlkT2lkLCAtMSwKKwkJ CQkJCQkJCSAoTm9kZSAqKSBmY2luZm8tPmNvbnRleHQsCisJCQkJCQkJCQkgJnJlc3VsdCkpCisJ eworCQlwZnJlZSh0bXApOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCVBHX1JFVFVSTl9E QVRVTShyZXN1bHQpOwogfQpAQCAtNDY2Nyw3ICs0Njg4LDE0IEBAIG51bWVyaWNfZmxvYXQ0KFBH X0ZVTkNUSU9OX0FSR1MpCiAJdG1wID0gRGF0dW1HZXRDU3RyaW5nKERpcmVjdEZ1bmN0aW9uQ2Fs bDEobnVtZXJpY19vdXQsCiAJCQkJCQkJCQkJCSAgTnVtZXJpY0dldERhdHVtKG51bSkpKTsKIAot CXJlc3VsdCA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEoZmxvYXQ0aW4sIENTdHJpbmdHZXREYXR1bSh0 bXApKTsKKwlpZiAoIURpcmVjdElucHV0RnVuY3Rpb25DYWxsU2FmZShmbG9hdDRpbiwgdG1wLAor CQkJCQkJCQkJIEludmFsaWRPaWQsIC0xLAorCQkJCQkJCQkJIChOb2RlICopIGZjaW5mby0+Y29u dGV4dCwKKwkJCQkJCQkJCSAmcmVzdWx0KSkKKwl7CisJCXBmcmVlKHRtcCk7CisJCVBHX1JFVFVS Tl9OVUxMKCk7CisJfQogCiAJcGZyZWUodG1wKTsKIAotLSAKMi4zNC4xCgo= --0000000000009b0f2c0644f36491 Content-Type: text/x-patch; charset="US-ASCII"; name="v13-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v13-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mioa5qad9 RnJvbSBhNzkxMTVlOWZlYjUzMDQwNzAwNDczMDgzYWJjY2QyZmNiMDRmODg5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6Mjg6MjAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MyAxMS8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBmbG9hdDQgdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZmxvYXQ0Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAgICBj YXN0dGFyZ2V0ICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAg cHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tCiByZWFsICAgICAgIHwgYmlnaW50ICAgICAgICAgICB8ICAgICAgNjUzIHwgYSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgZnRvaTggICAgICAgICAgfCBpbnQ4CiByZWFsICAgICAgIHwgc21h bGxpbnQgICAgICAgICB8ICAgICAgMjM4IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZnRv aTIgICAgICAgICAgfCBpbnQyCiByZWFsICAgICAgIHwgaW50ZWdlciAgICAgICAgICB8ICAgICAg MzE5IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZnRvaTQgICAgICAgICAgfCBpbnQ0CiBy ZWFsICAgICAgIHwgZG91YmxlIHByZWNpc2lvbiB8ICAgICAgMzExIHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgZnRvZCAgICAgICAgICAgfCBmbG9hdDgKIHJlYWwgICAgICAgfCBudW1lcmlj ICAgICAgICAgIHwgICAgIDE3NDIgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBmbG9hdDRf bnVtZXJpYyB8IG51bWVyaWMKKDUgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1h aWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMgICB8IDQgKyst LQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYyAgICB8IDIgKy0KIHNyYy9iYWNrZW5kL3V0 aWxzL2FkdC9udW1lcmljLmMgfCAzICsrLQogMyBmaWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMo KyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zs b2F0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwppbmRleCA3Yjk3ZDJiZTZjYS4u YWI1YzM4ZDcyM2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCkBAIC0xMjk4LDcgKzEyOTgsNyBAQCBm dG9pNChQR19GVU5DVElPTl9BUkdTKQogCiAJLyogUmFuZ2UgY2hlY2sgKi8KIAlpZiAodW5saWtl bHkoaXNuYW4obnVtKSB8fCAhRkxPQVQ0X0ZJVFNfSU5fSU5UMzIobnVtKSkpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiaW50 ZWdlciBvdXQgb2YgcmFuZ2UiKSkpOwogCkBAIC0xMzIzLDcgKzEzMjMsNyBAQCBmdG9pMihQR19G VU5DVElPTl9BUkdTKQogCiAJLyogUmFuZ2UgY2hlY2sgKi8KIAlpZiAodW5saWtlbHkoaXNuYW4o bnVtKSB8fCAhRkxPQVQ0X0ZJVFNfSU5fSU5UMTYobnVtKSkpCi0JCWVyZXBvcnQoRVJST1IsCisJ CWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09E RV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygic21hbGxpbnQgb3V0 IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKaW5kZXggZDU2MzFmMzU0NjUuLjY4Mjk5 ZTkxNTEyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKQEAgLTEzNDIsNyArMTM0Miw3IEBAIGZ0b2k4KFBH X0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25h bihudW0pIHx8ICFGTE9BVDRfRklUU19JTl9JTlQ2NChudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwK KwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJD T0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJiaWdpbnQgb3V0 IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVy aWMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKaW5kZXggNDBkMjcwOWI2NGEu LmI4OWMzNWVlZTY1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKQEAgLTQ2NTgsNyArNDY1OCw4 IEBAIGZsb2F0NF9udW1lcmljKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW5pdF92YXIoJnJlc3VsdCk7 CiAKIAkvKiBBc3N1bWUgd2UgbmVlZCBub3Qgd29ycnkgYWJvdXQgbGVhZGluZy90cmFpbGluZyBz cGFjZXMgKi8KLQkodm9pZCkgc2V0X3Zhcl9mcm9tX3N0cihidWYsIGJ1ZiwgJnJlc3VsdCwgJmVu ZHB0ciwgTlVMTCk7CisJaWYgKCFzZXRfdmFyX2Zyb21fc3RyKGJ1ZiwgYnVmLCAmcmVzdWx0LCAm ZW5kcHRyLCBmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJcmVzID0g bWFrZV9yZXN1bHQoJnJlc3VsdCk7CiAKLS0gCjIuMzQuMQoK --0000000000009b0f2c0644f36491 Content-Type: text/x-patch; charset="US-ASCII"; name="v13-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v13-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mioa5qab8 RnJvbSAxMWUwYzM1ZjVkZWE0MDY4Mjk5MTRhNTgzMzRmNTIxYjAwM2E1OWRkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MzE6NTMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MyAxMi8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBmbG9hdDggdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZmxvYXQ4Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKICAgIGNhc3Rzb3VyY2UgICAg fCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAg cHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tCiBkb3VibGUgcHJlY2lzaW9uIHwgYmlnaW50ICAgICB8ICAgICAgNDgzIHwgYSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgZHRvaTggICAgICAgICAgfCBpbnQ4CiBkb3VibGUgcHJlY2lzaW9u IHwgc21hbGxpbnQgICB8ICAgICAgMjM3IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZHRv aTIgICAgICAgICAgfCBpbnQyCiBkb3VibGUgcHJlY2lzaW9uIHwgaW50ZWdlciAgICB8ICAgICAg MzE3IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZHRvaTQgICAgICAgICAgfCBpbnQ0CiBk b3VibGUgcHJlY2lzaW9uIHwgcmVhbCAgICAgICB8ICAgICAgMzEyIHwgYSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgZHRvZiAgICAgICAgICAgfCBmbG9hdDQKIGRvdWJsZSBwcmVjaXNpb24gfCBu dW1lcmljICAgIHwgICAgIDE3NDMgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBmbG9hdDhf bnVtZXJpYyB8IG51bWVyaWMKKDUgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1h aWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMgICB8IDEzICsr KysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMgICAgfCAgMiArLQogc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYyB8ICAzICsrLQogMyBmaWxlcyBjaGFuZ2VkLCAx MiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9mbG9hdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMKaW5kZXgg YWI1YzM4ZDcyM2QuLmQ3NDZmOTYxZmQzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvZmxvYXQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwpAQCAtMTE5OSw5 ICsxMTk5LDE0IEBAIGR0b2YoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IChmbG9hdDQp IG51bTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKG51bSkpCi0JCWZs b2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0p IDAsCisJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKKwkJ CQllcnJtc2coInZhbHVlIG91dCBvZiByYW5nZTogb3ZlcmZsb3ciKSk7CisKIAlpZiAodW5saWtl bHkocmVzdWx0ID09IDAuMGYpICYmIG51bSAhPSAwLjApCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJv cigpOworCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAorCQkJCWVycmNvZGUo RVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCisJCQkJZXJybXNnKCJ2YWx1ZSBv dXQgb2YgcmFuZ2U6IHVuZGVyZmxvdyIpKTsKIAogCVBHX1JFVFVSTl9GTE9BVDQocmVzdWx0KTsK IH0KQEAgLTEyMjQsNyArMTIyOSw3IEBAIGR0b2k0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBS YW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDhfRklUU19J Tl9JTlQzMihudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRl eHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09G X1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnRlZ2VyIG91dCBvZiByYW5nZSIpKSk7CiAKQEAgLTEy NDksNyArMTI1NCw3IEBAIGR0b2kyKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBjaGVj ayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDhfRklUU19JTl9JTlQxNihu dW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1 bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwK IAkJCQkgZXJybXNnKCJzbWFsbGludCBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YwppbmRleCA2ODI5OWU5MTUxMi4uN2ZmN2YyNjdiN2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9pbnQ4LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYwpAQCAt MTMwNyw3ICsxMzA3LDcgQEAgZHRvaTgoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIFJhbmdlIGNo ZWNrICovCiAJaWYgKHVubGlrZWx5KGlzbmFuKG51bSkgfHwgIUZMT0FUOF9GSVRTX0lOX0lOVDY0 KG51bSkpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERh dHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0Up LAogCQkJCSBlcnJtc2coImJpZ2ludCBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251 bWVyaWMuYwppbmRleCBiODljMzVlZWU2NS4uNTA3YzYwN2E3OTkgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251 bWVyaWMuYwpAQCAtNDU2MCw3ICs0NTYwLDggQEAgZmxvYXQ4X251bWVyaWMoUEdfRlVOQ1RJT05f QVJHUykKIAlpbml0X3ZhcigmcmVzdWx0KTsKIAogCS8qIEFzc3VtZSB3ZSBuZWVkIG5vdCB3b3Jy eSBhYm91dCBsZWFkaW5nL3RyYWlsaW5nIHNwYWNlcyAqLwotCSh2b2lkKSBzZXRfdmFyX2Zyb21f c3RyKGJ1ZiwgYnVmLCAmcmVzdWx0LCAmZW5kcHRyLCBOVUxMKTsKKwlpZiAoIXNldF92YXJfZnJv bV9zdHIoYnVmLCBidWYsICZyZXN1bHQsICZlbmRwdHIsIGZjaW5mby0+Y29udGV4dCkpCisJCVBH X1JFVFVSTl9OVUxMKCk7CiAKIAlyZXMgPSBtYWtlX3Jlc3VsdCgmcmVzdWx0KTsKIAotLSAKMi4z NC4xCgo= --0000000000009b0f2c0644f36491 Content-Type: text/x-patch; charset="US-ASCII"; name="v13-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v13-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mioa5qag11 RnJvbSA2ZWZiMGVhMWY1NjY0OGI5NDMyMTA3NTZkMzllMzVjMTY0ZGYyNmYzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjI6MDAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MyAwOS8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBiaWdpbnQgdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnYmlnaW50Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAgICBj YXN0dGFyZ2V0ICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBw cm9zcmMgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0K IGJpZ2ludCAgICAgfCBzbWFsbGludCAgICAgICAgIHwgICAgICA3MTQgfCBhICAgICAgICAgICB8 IGYgICAgICAgICAgfCBpbnQ4MiAgICAgICAgfCBpbnQyCiBiaWdpbnQgICAgIHwgaW50ZWdlciAg ICAgICAgICB8ICAgICAgNDgwIHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaW50ODQgICAg ICAgIHwgaW50NAogYmlnaW50ICAgICB8IHJlYWwgICAgICAgICAgICAgfCAgICAgIDY1MiB8IGkg ICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9mICAgICAgICB8IGZsb2F0NAogYmlnaW50ICAg ICB8IGRvdWJsZSBwcmVjaXNpb24gfCAgICAgIDQ4MiB8IGkgICAgICAgICAgIHwgZiAgICAgICAg ICB8IGk4dG9kICAgICAgICB8IGZsb2F0OAogYmlnaW50ICAgICB8IG51bWVyaWMgICAgICAgICAg fCAgICAgMTc4MSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDhfbnVtZXJpYyB8IG51 bWVyaWMKIGJpZ2ludCAgICAgfCBtb25leSAgICAgICAgICAgIHwgICAgIDM4MTIgfCBhICAgICAg ICAgICB8IGYgICAgICAgICAgfCBpbnQ4X2Nhc2ggICAgfCBtb25leQogYmlnaW50ICAgICB8IG9p ZCAgICAgICAgICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4 dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ3Byb2MgICAgICAgICAgfCAgICAgMTI4 NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50 ICAgICB8IHJlZ3Byb2NlZHVyZSAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAg ICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ29wZXIgICAgICAgICAg fCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9p ZAogYmlnaW50ICAgICB8IHJlZ29wZXJhdG9yICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAg IHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2NsYXNz ICAgICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQg ICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2NvbGxhdGlvbiAgICAgfCAgICAgMTI4NyB8IGkg ICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8 IHJlZ3R5cGUgICAgICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8 IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2NvbmZpZyAgICAgICAgfCAgICAg MTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmln aW50ICAgICB8IHJlZ2RpY3Rpb25hcnkgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAg ICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ3JvbGUgICAgICAg ICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8 IG9pZAogYmlnaW50ICAgICB8IHJlZ25hbWVzcGFjZSAgICAgfCAgICAgMTI4NyB8IGkgICAgICAg ICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2Rh dGFiYXNlICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9v aWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IGJ5dGVhICAgICAgICAgICAgfCAgICAgNjM2OSB8 IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDhfYnl0ZWEgICB8IGJ5dGVhCiBiaWdpbnQg ICAgIHwgYml0ICAgICAgICAgICAgICB8ICAgICAyMDc1IHwgZSAgICAgICAgICAgfCBmICAgICAg ICAgIHwgYml0ZnJvbWludDggIHwgYml0CigyMSByb3dzKQoKYWxyZWFkeSBlcnJvciBzYWZlOiBp OHRvZiwgaTh0b2QsIGludDhfbnVtZXJpYywgaW50OF9ieXRlYSwgYml0ZnJvbWludDgKZGlzY3Vz c2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZp c2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGls cy9hZHQvaW50OC5jIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKaW5kZXggOWNkNDIwYjRiOWQuLmQ1NjMx ZjM1NDY1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKQEAgLTEyNTEsNyArMTI1MSw3IEBAIGludDg0KFBH X0ZVTkNUSU9OX0FSR1MpCiAJaW50NjQJCWFyZyA9IFBHX0dFVEFSR19JTlQ2NCgwKTsKIAogCWlm ICh1bmxpa2VseShhcmcgPCBQR19JTlQzMl9NSU4pIHx8IHVubGlrZWx5KGFyZyA+IFBHX0lOVDMy X01BWCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0 dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSks CiAJCQkJIGVycm1zZygiaW50ZWdlciBvdXQgb2YgcmFuZ2UiKSkpOwogCkBAIC0xMjcyLDcgKzEy NzIsNyBAQCBpbnQ4MihQR19GVU5DVElPTl9BUkdTKQogCWludDY0CQlhcmcgPSBQR19HRVRBUkdf SU5UNjQoMCk7CiAKIAlpZiAodW5saWtlbHkoYXJnIDwgUEdfSU5UMTZfTUlOKSB8fCB1bmxpa2Vs eShhcmcgPiBQR19JTlQxNl9NQVgpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5m by0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxV RV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coInNtYWxsaW50IG91dCBvZiByYW5nZSIpKSk7 CiAKQEAgLTEzNTUsNyArMTM1NSw3IEBAIGk4dG9vaWQoUEdfRlVOQ1RJT05fQVJHUykKIAlpbnQ2 NAkJYXJnID0gUEdfR0VUQVJHX0lOVDY0KDApOwogCiAJaWYgKHVubGlrZWx5KGFyZyA8IDApIHx8 IHVubGlrZWx5KGFyZyA+IFBHX1VJTlQzMl9NQVgpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0 dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVN RVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coIk9JRCBvdXQgb2YgcmFuZ2Ui KSkpOwogCi0tIAoyLjM0LjEKCg== --0000000000009b0f2c0644f36491 Content-Type: text/x-patch; charset="US-ASCII"; name="v13-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v13-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mioa5qan14 RnJvbSBhYTdhZjk3N2E5MTJhNmEwYzlhMTdlNTY0ZjlkYTU2MzI3ZWNmMDhlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMTA6Mjg6NTQgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MyAwNi8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbmV0IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2luZXQnOjpyZWd0 eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAgIGNhc3R0 YXJnZXQgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBwcm9z cmMgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCiBp bmV0ICAgICAgIHwgY2lkciAgICAgICAgICAgICAgfCAgICAgMTcxNSB8IGEgICAgICAgICAgIHwg ZiAgICAgICAgICB8IGluZXRfdG9fY2lkciB8IGNpZHIKIGluZXQgICAgICAgfCB0ZXh0ICAgICAg ICAgICAgICB8ICAgICAgNzMwIHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgbmV0d29ya19z aG93IHwgdGV4dAogaW5ldCAgICAgICB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgICAgICA3MzAgfCBh ICAgICAgICAgICB8IGYgICAgICAgICAgfCBuZXR3b3JrX3Nob3cgfCB0ZXh0CiBpbmV0ICAgICAg IHwgY2hhcmFjdGVyICAgICAgICAgfCAgICAgIDczMCB8IGEgICAgICAgICAgIHwgZiAgICAgICAg ICB8IG5ldHdvcmtfc2hvdyB8IHRleHQKKDQgcm93cykKCmluZXRfdG9fY2lkciBpcyBhbHJlYWR5 IGVycm9yIHNhZmUuCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFK Zlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQot LS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9uZXR3b3JrLmMgfCAyICstCiAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvbmV0d29yay5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L25ldHdvcmsuYwpp bmRleCAzY2IwYWI2ODI5YS4uNjQ4YzhkOTVmNTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9uZXR3b3JrLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L25ldHdvcmsuYwpA QCAtMTEzNyw3ICsxMTM3LDcgQEAgbmV0d29ya19zaG93KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlp ZiAocGdfaW5ldF9uZXRfbnRvcChpcF9mYW1pbHkoaXApLCBpcF9hZGRyKGlwKSwgaXBfbWF4Yml0 cyhpcCksCiAJCQkJCQkgdG1wLCBzaXplb2YodG1wKSkgPT0gTlVMTCkKLQkJZXJlcG9ydChFUlJP UiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShF UlJDT0RFX0lOVkFMSURfQklOQVJZX1JFUFJFU0VOVEFUSU9OKSwKIAkJCQkgZXJybXNnKCJjb3Vs ZCBub3QgZm9ybWF0IGluZXQgdmFsdWU6ICVtIikpKTsKIAotLSAKMi4zNC4xCgo= --0000000000009b0f2c0644f36491 Content-Type: text/x-patch; charset="US-ASCII"; name="v13-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v13-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mioa5qal13 RnJvbSBmMjFkYTYzZDE1OWFiZTgxYTJhMzk0OTY2MmYzNDkyOTZhZjMzY2M4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MTc6MTEgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MyAwNy8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBtYWNhZGRyOCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9u YW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0gcGMuY2FzdGZ1 bmMKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9J21hY2FkZHI4 Jzo6cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCBj YXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAgIHBy b3NyYyAgICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t CiBtYWNhZGRyOCAgIHwgbWFjYWRkciAgICB8ICAgICA0MTI0IHwgaSAgICAgICAgICAgfCBmICAg ICAgICAgIHwgbWFjYWRkcjh0b21hY2FkZHIgfCBtYWNhZGRyCigxIHJvdykKCmRpc2N1c3Npb246 IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThq WnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L21hYzguYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9tYWM4LmMgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvbWFjOC5jCmluZGV4IDA4ZTQxYmE0ZWVhLi4xYzkwM2YxNTJkZSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L21hYzguYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvbWFjOC5jCkBAIC01NTAsNyArNTUwLDcgQEAgbWFjYWRkcjh0b21hY2FkZHIoUEdf RlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSAobWFjYWRkciAqKSBwYWxsb2MwKHNpemVvZihtYWNh ZGRyKSk7CiAKIAlpZiAoKGFkZHItPmQgIT0gMHhGRikgfHwgKGFkZHItPmUgIT0gMHhGRSkpCi0J CWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJ CQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVy cm1zZygibWFjYWRkcjggZGF0YSBvdXQgb2YgcmFuZ2UgdG8gY29udmVydCB0byBtYWNhZGRyIiks CiAJCQkJIGVycmhpbnQoIk9ubHkgYWRkcmVzc2VzIHRoYXQgaGF2ZSBGRiBhbmQgRkUgYXMgdmFs dWVzIGluIHRoZSAiCi0tIAoyLjM0LjEKCg== --0000000000009b0f2c0644f36491 Content-Type: text/x-patch; charset="US-ASCII"; name="v13-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v13-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mioa5qai12 RnJvbSBlYWMxZmQwZTBmYWViZjhlYmQwYjkwZjAxZDUzOGMzMDllNDA0ZTE3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjA6MTAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MyAwOC8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbnRlZ2VyIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUgZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVu YyBhbmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2ludGVnZXIn OjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAg IGNhc3R0YXJnZXQgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAg IHByb3NyYyAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LQogaW50ZWdlciAgICB8IGJpZ2ludCAgICAgICAgICAgfCAgICAgIDQ4MSB8IGkgICAgICAgICAg IHwgZiAgICAgICAgICB8IGludDQ4ICAgICAgICB8IGludDgKIGludGVnZXIgICAgfCBzbWFsbGlu dCAgICAgICAgIHwgICAgICAzMTQgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBpNHRvaTIg ICAgICAgfCBpbnQyCiBpbnRlZ2VyICAgIHwgcmVhbCAgICAgICAgICAgICB8ICAgICAgMzE4IHwg aSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaTR0b2YgICAgICAgIHwgZmxvYXQ0CiBpbnRlZ2Vy ICAgIHwgZG91YmxlIHByZWNpc2lvbiB8ICAgICAgMzE2IHwgaSAgICAgICAgICAgfCBmICAgICAg ICAgIHwgaTR0b2QgICAgICAgIHwgZmxvYXQ4CiBpbnRlZ2VyICAgIHwgbnVtZXJpYyAgICAgICAg ICB8ICAgICAxNzQwIHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaW50NF9udW1lcmljIHwg bnVtZXJpYwogaW50ZWdlciAgICB8IG1vbmV5ICAgICAgICAgICAgfCAgICAgMzgxMSB8IGEgICAg ICAgICAgIHwgZiAgICAgICAgICB8IGludDRfY2FzaCAgICB8IG1vbmV5CiBpbnRlZ2VyICAgIHwg Ym9vbGVhbiAgICAgICAgICB8ICAgICAyNTU3IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwg aW50NF9ib29sICAgIHwgYm9vbAogaW50ZWdlciAgICB8IGJ5dGVhICAgICAgICAgICAgfCAgICAg NjM2OCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDRfYnl0ZWEgICB8IGJ5dGVhCiBp bnRlZ2VyICAgIHwgImNoYXIiICAgICAgICAgICB8ICAgICAgIDc4IHwgZSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgaTR0b2NoYXIgICAgIHwgY2hhcgogaW50ZWdlciAgICB8IGJpdCAgICAgICAg ICAgICAgfCAgICAgMTY4MyB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdGZyb21pbnQ0 ICB8IGJpdAooMTAgcm93cykKCm9ubHkgaW50NF9jYXNoLCBpNHRvaTIsIGk0dG9jaGFyIG5lZWQg dGFrZSBjYXJlIG9mIGVycm9yIGhhbmRsaW5nLiAgYnV0IHN1cHBvcnQKZm9yIGNhc2ggZGF0YSB0 eXBlIGlzIG5vdCBlYXN5LCBzbyBvbmx5IGk0dG9pMiwgaTR0b2NoYXIgZnVuY3Rpb24gcmVmYWN0 b3JpbmcuCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZh LWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNy Yy9iYWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMgfCAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQv aW50LmMgIHwgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2NoYXIuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMKaW5kZXggMjJkYmZjOTUwYjEuLmU5MDg0NGEyOWYwIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvY2hhci5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9jaGFyLmMKQEAgLTE5Miw3ICsxOTIsNyBAQCBpNHRvY2hhcihQR19GVU5DVElP Tl9BUkdTKQogCWludDMyCQlhcmcxID0gUEdfR0VUQVJHX0lOVDMyKDApOwogCiAJaWYgKGFyZzEg PCBTQ0hBUl9NSU4gfHwgYXJnMSA+IFNDSEFSX01BWCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJl dHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05V TUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJcImNoYXJcIiBvdXQgb2Yg cmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMKaW5kZXggYjU3ODE5ODlhNjQuLmI0NTU5OWQ0MDJk IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2ludC5jCkBAIC0zNTAsNyArMzUwLDcgQEAgaTR0b2kyKFBHX0ZVTkNUSU9O X0FSR1MpCiAJaW50MzIJCWFyZzEgPSBQR19HRVRBUkdfSU5UMzIoMCk7CiAKIAlpZiAodW5saWtl bHkoYXJnMSA8IFNIUlRfTUlOKSB8fCB1bmxpa2VseShhcmcxID4gU0hSVF9NQVgpKQotCQllcmVw b3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShl cnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2co InNtYWxsaW50IG91dCBvZiByYW5nZSIpKSk7CiAKLS0gCjIuMzQuMQoK --0000000000009b0f2c0644f36491 Content-Type: text/x-patch; charset="US-ASCII"; name="v13-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_c.patch" Content-Disposition: attachment; filename="v13-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mioa5qao15 RnJvbSA0ZTUwNDc5Yjg5MmJhZDY2NzI1MWYyZDBlODEwYzRhOGQwNDhiOThiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MTM6NDUgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MyAwNS8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBjaGFyYWN0ZXIgdmFyeWluZyB0byBvdGhl cgogdHlwZXMgcGVyIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFy Z2V0OjpyZWd0eXBlLCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMgYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQKKGNhc3Rzb3VyY2U6OnJlZ3R5cGUg PSAnY2hhcmFjdGVyIHZhcnlpbmcnOjpyZWd0eXBlKQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0 eXBlOwoKICAgIGNhc3Rzb3VyY2UgICAgIHwgICAgY2FzdHRhcmdldCAgICAgfCBjYXN0ZnVuYyB8 IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgIHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCiBjaGFyYWN0ZXIgdmFy eWluZyB8IHJlZ2NsYXNzICAgICAgICAgIHwgICAgIDEwNzkgfCBpICAgICAgICAgICB8IGYgICAg ICAgICAgfCB0ZXh0X3JlZ2NsYXNzIHwgcmVnY2xhc3MKIGNoYXJhY3RlciB2YXJ5aW5nIHwgImNo YXIiICAgICAgICAgICAgfCAgICAgIDk0NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRl eHRfY2hhciAgICAgfCBjaGFyCiBjaGFyYWN0ZXIgdmFyeWluZyB8IG5hbWUgICAgICAgICAgICAg IHwgICAgIDE0MDAgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0X25hbWUgICAgIHwg bmFtZQogY2hhcmFjdGVyIHZhcnlpbmcgfCB4bWwgICAgICAgICAgICAgICB8ICAgICAyODk2IHwg ZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dHRveG1sICAgICB8IHhtbAogY2hhcmFjdGVy IHZhcnlpbmcgfCBjaGFyYWN0ZXIgdmFyeWluZyB8ICAgICAgNjY5IHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgdmFyY2hhciAgICAgICB8IHZhcmNoYXIKKDUgcm93cykKCnRleHR0b3htbCwg dGV4dF9yZWdjbGFzcyB3YXMgcmVmYWN0b3JlZCBhcyBlcnJvciBzYWZlIGluIHByaW9yIHBhdGNo Lgp0ZXh0X2NoYXIsIHRleHRfbmFtZSBpcyBhbHJlYWR5IGVycm9yIHNhZmUuCnNvIGhlcmUgd2Ug b25seSBuZWVkIGhhbmRsZSBmdW5jdGlvbiAidmFyY2hhciIuCgpkaXNjdXNzaW9uOiBodHRwczov L3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2 NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFy LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwppbmRleCA1Y2I1YzhjNDZmOS4uMDhmMWJmNWEyNGQgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwpAQCAtNjM0LDcgKzYzNCw3IEBAIHZhcmNoYXIoUEdfRlVO Q1RJT05fQVJHUykKIAl7CiAJCWZvciAoaSA9IG1heG1ibGVuOyBpIDwgbGVuOyBpKyspCiAJCQlp ZiAoc19kYXRhW2ldICE9ICcgJykKLQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCWVyZXR1cm4oZmNp bmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19E QVRBX1JJR0hUX1RSVU5DQVRJT04pLAogCQkJCQkJIGVycm1zZygidmFsdWUgdG9vIGxvbmcgZm9y IHR5cGUgY2hhcmFjdGVyIHZhcnlpbmcoJWQpIiwKIAkJCQkJCQkJbWF4bGVuKSkpOwotLSAKMi4z NC4xCgo= --0000000000009b0f2c0644f36491 Content-Type: text/x-patch; charset="US-ASCII"; name="v13-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v13-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mioa5qar17 RnJvbSAzMDY5YTMyZWM4YTQzNjAyODZjYTc4MmFlNjAzMzMzNGU3YTMwZTM0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjQgTm92IDIwMjUgMTI6NTI6MTYgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MyAwMy8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBjaGFyYWN0ZXIgdG8gb3RoZXIgdHlwZXMg cGVyCiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVn dHlwZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJv bmFtZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3Rm dW5jIGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSdjaGFyYWN0 ZXInOjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8 ICAgIGNhc3R0YXJnZXQgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2Qg fCAgIHByb3NyYyAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLQogY2hhcmFjdGVyICB8IHRleHQgICAgICAgICAgICAgIHwgICAgICA0MDEgfCBpICAgICAg ICAgICB8IGYgICAgICAgICAgfCBydHJpbTEgICAgICB8IHRleHQKIGNoYXJhY3RlciAgfCBjaGFy YWN0ZXIgdmFyeWluZyB8ICAgICAgNDAxIHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgcnRy aW0xICAgICAgfCB0ZXh0CiBjaGFyYWN0ZXIgIHwgImNoYXIiICAgICAgICAgICAgfCAgICAgIDk0 NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRfY2hhciAgIHwgY2hhcgogY2hhcmFj dGVyICB8IG5hbWUgICAgICAgICAgICAgIHwgICAgICA0MDkgfCBpICAgICAgICAgICB8IGYgICAg ICAgICAgfCBicGNoYXJfbmFtZSB8IG5hbWUKIGNoYXJhY3RlciAgfCB4bWwgICAgICAgICAgICAg ICB8ICAgICAyODk2IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dHRveG1sICAgfCB4 bWwKIGNoYXJhY3RlciAgfCBjaGFyYWN0ZXIgICAgICAgICB8ICAgICAgNjY4IHwgaSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgYnBjaGFyICAgICAgfCBicGNoYXIKKDYgcm93cykKCm9ubHkgdGV4 dHRveG1sLCBicGNoYXIoUEdfRlVOQ1RJT05fQVJHUykgbmVlZCB0YWtlIGNhcmUgb2YgZXJyb3Ig aGFuZGxpbmcuCm90aGVyIGZ1bmN0aW9ucyBhbHJlYWR5IGVycm9yIHNhZmUuCgpkaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4 alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHBySW50ZXJwLmMgfCAgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIu YyAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQveG1sLmMgICAgICAgICAgIHwg MTggKysrKysrKysrKysrLS0tLS0tCiBzcmMvaW5jbHVkZS91dGlscy94bWwuaCAgICAgICAgICAg ICAgIHwgIDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5j IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwppbmRleCAwZTFhNzQ5NzZm Ny4uNjdmNGUwMGVhYzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBy SW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAt NDU0Miw3ICs0NTQyLDcgQEAgRXhlY0V2YWxYbWxFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJF dmFsU3RlcCAqb3ApCiAKIAkJCQkqb3AtPnJlc3ZhbHVlID0gUG9pbnRlckdldERhdHVtKHhtbHBh cnNlKGRhdGEsCiAJCQkJCQkJCQkJCQkJCSB4ZXhwci0+eG1sb3B0aW9uLAotCQkJCQkJCQkJCQkJ CQkgcHJlc2VydmVfd2hpdGVzcGFjZSkpOworCQkJCQkJCQkJCQkJCQkgcHJlc2VydmVfd2hpdGVz cGFjZSwgTlVMTCkpOwogCQkJCSpvcC0+cmVzbnVsbCA9IGZhbHNlOwogCQkJfQogCQkJYnJlYWs7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwppbmRleCAzZjQwYzlkYTFhMC4uNWNiNWM4YzQ2ZjkgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwpAQCAtMzA3LDcgKzMwNyw3IEBAIGJwY2hhcihQR19GVU5D VElPTl9BUkdTKQogCQl7CiAJCQlmb3IgKGkgPSBtYXhtYmxlbjsgaSA8IGxlbjsgaSsrKQogCQkJ CWlmIChzW2ldICE9ICcgJykKLQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJldHVybihmY2lu Zm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19E QVRBX1JJR0hUX1RSVU5DQVRJT04pLAogCQkJCQkJCSBlcnJtc2coInZhbHVlIHRvbyBsb25nIGZv ciB0eXBlIGNoYXJhY3RlciglZCkiLAogCQkJCQkJCQkJbWF4bGVuKSkpOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5j CmluZGV4IDQxZTc3NTU3MGVjLi45ZTgwMTY0NTZjZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3htbC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC94bWwuYwpAQCAtNjU5 LDcgKzY1OSw3IEBAIHRleHR0b3htbChQR19GVU5DVElPTl9BUkdTKQogewogCXRleHQJICAgKmRh dGEgPSBQR19HRVRBUkdfVEVYVF9QUCgwKTsKIAotCVBHX1JFVFVSTl9YTUxfUCh4bWxwYXJzZShk YXRhLCB4bWxvcHRpb24sIHRydWUpKTsKKwlQR19SRVRVUk5fWE1MX1AoeG1scGFyc2UoZGF0YSwg eG1sb3B0aW9uLCB0cnVlLCBmY2luZm8tPmNvbnRleHQpKTsKIH0KIAogCkBAIC0xMDI4LDE5ICsx MDI4LDI1IEBAIHhtbGVsZW1lbnQoWG1sRXhwciAqeGV4cHIsCiAKIAogeG1sdHlwZSAqCi14bWxw YXJzZSh0ZXh0ICpkYXRhLCBYbWxPcHRpb25UeXBlIHhtbG9wdGlvbl9hcmcsIGJvb2wgcHJlc2Vy dmVfd2hpdGVzcGFjZSkKK3htbHBhcnNlKHRleHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0 aW9uX2FyZywgYm9vbCBwcmVzZXJ2ZV93aGl0ZXNwYWNlLCBOb2RlICplc2NvbnRleHQpCiB7CiAj aWZkZWYgVVNFX0xJQlhNTAogCXhtbERvY1B0cglkb2M7CiAKIAlkb2MgPSB4bWxfcGFyc2UoZGF0 YSwgeG1sb3B0aW9uX2FyZywgcHJlc2VydmVfd2hpdGVzcGFjZSwKLQkJCQkJR2V0RGF0YWJhc2VF bmNvZGluZygpLCBOVUxMLCBOVUxMLCBOVUxMKTsKLQl4bWxGcmVlRG9jKGRvYyk7CisJCQkJCUdl dERhdGFiYXNlRW5jb2RpbmcoKSwgTlVMTCwgTlVMTCwgZXNjb250ZXh0KTsKKwlpZiAoZG9jKQor CQl4bWxGcmVlRG9jKGRvYyk7CisKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQp KQorCQlyZXR1cm4gTlVMTDsKIAogCXJldHVybiAoeG1sdHlwZSAqKSBkYXRhOwogI2Vsc2UKLQlO T19YTUxfU1VQUE9SVCgpOwotCXJldHVybiBOVUxMOworCWVyZXR1cm4oZXNjb250ZXh0LCBOVUxM CisJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCWVycm1zZygi dW5zdXBwb3J0ZWQgWE1MIGZlYXR1cmUiKSwKKwkJCWVycmRldGFpbCgiVGhpcyBmdW5jdGlvbmFs aXR5IHJlcXVpcmVzIHRoZSBzZXJ2ZXIgdG8gYmUgYnVpbHQgd2l0aCBsaWJ4bWwgc3VwcG9ydC4i KSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMveG1sLmggYi9z cmMvaW5jbHVkZS91dGlscy94bWwuaAppbmRleCA3MzJkYWM0N2JjNC4uYjE1MTY4YzQzMGUgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3htbC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxz L3htbC5oCkBAIC03Myw3ICs3Myw3IEBAIGV4dGVybiB4bWx0eXBlICp4bWxjb25jYXQoTGlzdCAq YXJncyk7CiBleHRlcm4geG1sdHlwZSAqeG1sZWxlbWVudChYbWxFeHByICp4ZXhwciwKIAkJCQkJ CSAgIGNvbnN0IERhdHVtICpuYW1lZF9hcmd2YWx1ZSwgY29uc3QgYm9vbCAqbmFtZWRfYXJnbnVs bCwKIAkJCQkJCSAgIGNvbnN0IERhdHVtICphcmd2YWx1ZSwgY29uc3QgYm9vbCAqYXJnbnVsbCk7 Ci1leHRlcm4geG1sdHlwZSAqeG1scGFyc2UodGV4dCAqZGF0YSwgWG1sT3B0aW9uVHlwZSB4bWxv cHRpb25fYXJnLCBib29sIHByZXNlcnZlX3doaXRlc3BhY2UpOworZXh0ZXJuIHhtbHR5cGUgKnht bHBhcnNlKHRleHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0aW9uX2FyZywgYm9vbCBwcmVz ZXJ2ZV93aGl0ZXNwYWNlLCBOb2RlICplc2NvbnRleHQpOwogZXh0ZXJuIHhtbHR5cGUgKnhtbHBp KGNvbnN0IGNoYXIgKnRhcmdldCwgdGV4dCAqYXJnLCBib29sIGFyZ19pc19udWxsLCBib29sICpy ZXN1bHRfaXNfbnVsbCk7CiBleHRlcm4geG1sdHlwZSAqeG1scm9vdCh4bWx0eXBlICpkYXRhLCB0 ZXh0ICp2ZXJzaW9uLCBpbnQgc3RhbmRhbG9uZSk7CiBleHRlcm4gYm9vbCB4bWxfaXNfZG9jdW1l bnQoeG1sdHlwZSAqYXJnKTsKLS0gCjIuMzQuMQoK --0000000000009b0f2c0644f36491 Content-Type: text/x-patch; charset="US-ASCII"; name="v13-0004-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v13-0004-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mioa5qap16 RnJvbSA1NTEwNjA2MzU4OWMzNTYyNzZhNmM1Yjk0NzViNTE2Y2U0YjA5Y2MwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMjUgTm92IDIwMjUgMjA6MDc6MjggKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MyAwNC8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBjaGFyYWN0ZXIgdG8gb3RoZXIgdHlwZXMg cGVyCiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVn dHlwZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJv bmFtZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3Rm dW5jIGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSdjaGFyYWN0 ZXInOjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8 ICAgIGNhc3R0YXJnZXQgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2Qg fCAgIHByb3NyYyAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLQogY2hhcmFjdGVyICB8IHRleHQgICAgICAgICAgICAgIHwgICAgICA0MDEgfCBpICAgICAg ICAgICB8IGYgICAgICAgICAgfCBydHJpbTEgICAgICB8IHRleHQKIGNoYXJhY3RlciAgfCBjaGFy YWN0ZXIgdmFyeWluZyB8ICAgICAgNDAxIHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgcnRy aW0xICAgICAgfCB0ZXh0CiBjaGFyYWN0ZXIgIHwgImNoYXIiICAgICAgICAgICAgfCAgICAgIDk0 NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRfY2hhciAgIHwgY2hhcgogY2hhcmFj dGVyICB8IG5hbWUgICAgICAgICAgICAgIHwgICAgICA0MDkgfCBpICAgICAgICAgICB8IGYgICAg ICAgICAgfCBicGNoYXJfbmFtZSB8IG5hbWUKIGNoYXJhY3RlciAgfCB4bWwgICAgICAgICAgICAg ICB8ICAgICAyODk2IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dHRveG1sICAgfCB4 bWwKIGNoYXJhY3RlciAgfCBjaGFyYWN0ZXIgICAgICAgICB8ICAgICAgNjY4IHwgaSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgYnBjaGFyICAgICAgfCBicGNoYXIKKDYgcm93cykKCm9ubHkgdGV4 dHRveG1sLCBicGNoYXIoUEdfRlVOQ1RJT05fQVJHUykgbmVlZCB0YWtlIGNhcmUgb2YgZXJyb3Ig aGFuZGxpbmcuCm90aGVyIGZ1bmN0aW9ucyBhbHJlYWR5IGVycm9yIHNhZmUuCgpkaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4 alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2NhdGFsb2cv bmFtZXNwYWNlLmMgfCA1OCArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIHNyYy9i YWNrZW5kL3V0aWxzL2FkdC9yZWdwcm9jLmMgfCAxMyArKysrKystLQogc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3ZhcmxlbmEuYyB8IDEwICsrKystLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5j ICAgICB8ICAyICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oIHwgIDYgKysrKwog c3JjL2luY2x1ZGUvdXRpbHMvdmFybGVuYS5oICAgICB8ICAxICsKIDYgZmlsZXMgY2hhbmdlZCwg NzMgaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9uYW1lc3BhY2UuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMK aW5kZXggZDIzNDc0ZGE0ZmIuLmJlZjJkZTVkZDM5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j YXRhbG9nL25hbWVzcGFjZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMK QEAgLTQ0MCw2ICs0NDAsMTYgQEAgT2lkCiBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWQoY29uc3Qg UmFuZ2VWYXIgKnJlbGF0aW9uLCBMT0NLTU9ERSBsb2NrbW9kZSwKIAkJCQkJCSB1aW50MzIgZmxh Z3MsCiAJCQkJCQkgUmFuZ2VWYXJHZXRSZWxpZENhbGxiYWNrIGNhbGxiYWNrLCB2b2lkICpjYWxs YmFja19hcmcpCit7CisJcmV0dXJuIFJhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZFNhZmUocmVsYXRp b24sIGxvY2ttb2RlLCBmbGFncywKKwkJCQkJCQkJCQljYWxsYmFjaywgY2FsbGJhY2tfYXJnLAor CQkJCQkJCQkJCU5VTEwpOworfQorCitPaWQKK1JhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZFNhZmUo Y29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLCBMT0NLTU9ERSBsb2NrbW9kZSwgdWludDMyIGZsYWdz LAorCQkJCQkJCSBSYW5nZVZhckdldFJlbGlkQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQgKmNhbGxi YWNrX2FyZywKKwkJCQkJCQkgTm9kZSAqZXNjb250ZXh0KQogewogCXVpbnQ2NAkJaW52YWxfY291 bnQ7CiAJT2lkCQkJcmVsSWQ7CkBAIC00NTYsNyArNDY2LDcgQEAgUmFuZ2VWYXJHZXRSZWxpZEV4 dGVuZGVkKGNvbnN0IFJhbmdlVmFyICpyZWxhdGlvbiwgTE9DS01PREUgbG9ja21vZGUsCiAJaWYg KHJlbGF0aW9uLT5jYXRhbG9nbmFtZSkKIAl7CiAJCWlmIChzdHJjbXAocmVsYXRpb24tPmNhdGFs b2duYW1lLCBnZXRfZGF0YWJhc2VfbmFtZShNeURhdGFiYXNlSWQpKSAhPSAwKQotCQkJZXJlcG9y dChFUlJPUiwKKwkJCWVyZXR1cm4oZXNjb250ZXh0LCBJbnZhbGlkT2lkLAogCQkJCQkoZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJCSBlcnJtc2coImNyb3NzLWRh dGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogXCIlcy4lcy4lc1wiIiwKIAkJ CQkJCQlyZWxhdGlvbi0+Y2F0YWxvZ25hbWUsIHJlbGF0aW9uLT5zY2hlbWFuYW1lLApAQCAtNTEz LDcgKzUyMyw3IEBAIFJhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZChjb25zdCBSYW5nZVZhciAqcmVs YXRpb24sIExPQ0tNT0RFIGxvY2ttb2RlLAogCQkJCQkgKiByZXR1cm4gSW52YWxpZE9pZC4KIAkJ CQkJICovCiAJCQkJCWlmIChuYW1lc3BhY2VJZCAhPSBteVRlbXBOYW1lc3BhY2UpCi0JCQkJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkJZXJldHVybihlc2NvbnRleHQsIEludmFsaWRPaWQsCiAJCQkJ CQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9UQUJMRV9ERUZJTklUSU9OKSwKIAkJCQkJCQkJ IGVycm1zZygidGVtcG9yYXJ5IHRhYmxlcyBjYW5ub3Qgc3BlY2lmeSBhIHNjaGVtYSBuYW1lIikp KTsKIAkJCQl9CkBAIC01OTMsMTMgKzYwMywyMyBAQCBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWQo Y29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLCBMT0NLTU9ERSBsb2NrbW9kZSwKIAkJewogCQkJaW50 CQkJZWxldmVsID0gKGZsYWdzICYgUlZSX1NLSVBfTE9DS0VEKSA/IERFQlVHMSA6IEVSUk9SOwog Ci0JCQlpZiAocmVsYXRpb24tPnNjaGVtYW5hbWUpCi0JCQkJZXJlcG9ydChlbGV2ZWwsCisJCQlp ZiAocmVsYXRpb24tPnNjaGVtYW5hbWUgJiYgZWxldmVsID09IERFQlVHMSkKKwkJCQllcmVwb3J0 KERFQlVHMSwKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVfTE9DS19OT1RfQVZBSUxBQkxFKSwKIAkJ CQkJCSBlcnJtc2coImNvdWxkIG5vdCBvYnRhaW4gbG9jayBvbiByZWxhdGlvbiBcIiVzLiVzXCIi LAogCQkJCQkJCQlyZWxhdGlvbi0+c2NoZW1hbmFtZSwgcmVsYXRpb24tPnJlbG5hbWUpKSk7Ci0J CQllbHNlCi0JCQkJZXJlcG9ydChlbGV2ZWwsCisJCQllbHNlIGlmIChyZWxhdGlvbi0+c2NoZW1h bmFtZSAmJiBlbGV2ZWwgPT0gRVJST1IpCisJCQkJZXJldHVybihlc2NvbnRleHQsIEludmFsaWRP aWQsCisJCQkJCQllcnJjb2RlKEVSUkNPREVfTE9DS19OT1RfQVZBSUxBQkxFKSwKKwkJCQkJCWVy cm1zZygiY291bGQgbm90IG9idGFpbiBsb2NrIG9uIHJlbGF0aW9uIFwiJXMuJXNcIiIsCisJCQkJ CQkJICAgcmVsYXRpb24tPnNjaGVtYW5hbWUsIHJlbGF0aW9uLT5yZWxuYW1lKSk7CisJCQllbHNl IGlmIChlbGV2ZWwgPT0gREVCVUcxKQorCQkJCWVyZXBvcnQoREVCVUcxLAorCQkJCQkJZXJyY29k ZShFUlJDT0RFX0xPQ0tfTk9UX0FWQUlMQUJMRSksCisJCQkJCQllcnJtc2coImNvdWxkIG5vdCBv YnRhaW4gbG9jayBvbiByZWxhdGlvbiBcIiVzXCIiLAorCQkJCQkJCSAgIHJlbGF0aW9uLT5yZWxu YW1lKSk7CisJCQllbHNlIGlmIChlbGV2ZWwgPT0gRVJST1IpCisJCQkJZXJldHVybihlc2NvbnRl eHQsIEludmFsaWRPaWQsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0xPQ0tfTk9UX0FWQUlMQUJM RSksCiAJCQkJCQkgZXJybXNnKCJjb3VsZCBub3Qgb2J0YWluIGxvY2sgb24gcmVsYXRpb24gXCIl c1wiIiwKIAkJCQkJCQkJcmVsYXRpb24tPnJlbG5hbWUpKSk7CkBAIC02MjYsMTMgKzY0NiwyMyBA QCBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWQoY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLCBMT0NL TU9ERSBsb2NrbW9kZSwKIAl7CiAJCWludAkJCWVsZXZlbCA9IG1pc3Npbmdfb2sgPyBERUJVRzEg OiBFUlJPUjsKIAotCQlpZiAocmVsYXRpb24tPnNjaGVtYW5hbWUpCi0JCQllcmVwb3J0KGVsZXZl bCwKKwkJaWYgKHJlbGF0aW9uLT5zY2hlbWFuYW1lICYmIGVsZXZlbCA9PSBERUJVRzEpCisJCQll cmVwb3J0KERFQlVHMSwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfVEFCTEUpLAog CQkJCQkgZXJybXNnKCJyZWxhdGlvbiBcIiVzLiVzXCIgZG9lcyBub3QgZXhpc3QiLAogCQkJCQkJ CXJlbGF0aW9uLT5zY2hlbWFuYW1lLCByZWxhdGlvbi0+cmVsbmFtZSkpKTsKLQkJZWxzZQotCQkJ ZXJlcG9ydChlbGV2ZWwsCisJCWVsc2UgaWYgKHJlbGF0aW9uLT5zY2hlbWFuYW1lICYmIGVsZXZl bCA9PSBFUlJPUikKKwkJCWVyZXR1cm4oZXNjb250ZXh0LCBJbnZhbGlkT2lkLAorCQkJCQllcnJj b2RlKEVSUkNPREVfVU5ERUZJTkVEX1RBQkxFKSwKKwkJCQkJZXJybXNnKCJyZWxhdGlvbiBcIiVz LiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJICAgcmVsYXRpb24tPnNjaGVtYW5hbWUsIHJl bGF0aW9uLT5yZWxuYW1lKSk7CisJCWVsc2UgaWYgKGVsZXZlbCA9PSBERUJVRzEpCisJCQllcmVw b3J0KERFQlVHMSwKKwkJCQkJZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9UQUJMRSksCisJCQkJ CWVycm1zZygicmVsYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCSAgIHJlbGF0 aW9uLT5yZWxuYW1lKSk7CisJCWVsc2UgaWYgKGVsZXZlbCA9PSBFUlJPUikKKwkJCWVyZXR1cm4o ZXNjb250ZXh0LCBJbnZhbGlkT2lkLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9U QUJMRSksCiAJCQkJCSBlcnJtc2coInJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCiAJ CQkJCQkJcmVsYXRpb24tPnJlbG5hbWUpKSk7CkBAIC0zNjIyLDYgKzM2NTIsMTIgQEAgZ2V0X25h bWVzcGFjZV9vaWQoY29uc3QgY2hhciAqbnNwbmFtZSwgYm9vbCBtaXNzaW5nX29rKQogICovCiBS YW5nZVZhciAqCiBtYWtlUmFuZ2VWYXJGcm9tTmFtZUxpc3QoY29uc3QgTGlzdCAqbmFtZXMpCit7 CisJcmV0dXJuIG1ha2VSYW5nZVZhckZyb21OYW1lTGlzdFNhZmUobmFtZXMsIE5VTEwpOworfQor CitSYW5nZVZhciAqCittYWtlUmFuZ2VWYXJGcm9tTmFtZUxpc3RTYWZlKGNvbnN0IExpc3QgKm5h bWVzLCBOb2RlICplc2NvbnRleHQpCiB7CiAJUmFuZ2VWYXIgICAqcmVsID0gbWFrZVJhbmdlVmFy KE5VTEwsIE5VTEwsIC0xKTsKIApAQCAtMzY0MCw3ICszNjc2LDcgQEAgbWFrZVJhbmdlVmFyRnJv bU5hbWVMaXN0KGNvbnN0IExpc3QgKm5hbWVzKQogCQkJcmVsLT5yZWxuYW1lID0gc3RyVmFsKGx0 aGlyZChuYW1lcykpOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6Ci0JCQllcmVwb3J0KEVSUk9SLAor CQkJZXJldHVybihlc2NvbnRleHQsIE5VTEwsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFY X0VSUk9SKSwKIAkJCQkJIGVycm1zZygiaW1wcm9wZXIgcmVsYXRpb24gbmFtZSAodG9vIG1hbnkg ZG90dGVkIG5hbWVzKTogJXMiLAogCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKSkpOwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JlZ3Byb2MuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9yZWdwcm9jLmMKaW5kZXggZTVjMjI0NmYyYzkuLjU5Y2M1MDhmODA1IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcmVncHJvYy5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9yZWdwcm9jLmMKQEAgLTE5MDEsMTIgKzE5MDEsMTkgQEAgdGV4dF9yZWdjbGFz cyhQR19GVU5DVElPTl9BUkdTKQogCXRleHQJICAgKnJlbG5hbWUgPSBQR19HRVRBUkdfVEVYVF9Q UCgwKTsKIAlPaWQJCQlyZXN1bHQ7CiAJUmFuZ2VWYXIgICAqcnY7CisJTGlzdAkgICAqbmFtZWxp c3Q7CiAKLQlydiA9IG1ha2VSYW5nZVZhckZyb21OYW1lTGlzdCh0ZXh0VG9RdWFsaWZpZWROYW1l TGlzdChyZWxuYW1lKSk7CisJbmFtZWxpc3QgPSB0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdFNhZmUo cmVsbmFtZSwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2lu Zm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJcnYgPSBtYWtlUmFuZ2VWYXJG cm9tTmFtZUxpc3RTYWZlKG5hbWVsaXN0LCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VS Uk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAkv KiBXZSBtaWdodCBub3QgZXZlbiBoYXZlIHBlcm1pc3Npb25zIG9uIHRoaXMgcmVsYXRpb247IGRv bid0IGxvY2sgaXQuICovCi0JcmVzdWx0ID0gUmFuZ2VWYXJHZXRSZWxpZChydiwgTm9Mb2NrLCBm YWxzZSk7Ci0KKwlyZXN1bHQgPSBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWRTYWZlKHJ2LCBOb0xv Y2ssIDAsIE5VTEwsIE5VTEwsCisJCQkJCQkJCQkJICBmY2luZm8tPmNvbnRleHQpOwogCVBHX1JF VFVSTl9PSUQocmVzdWx0KTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3ZhcmxlbmEuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMKaW5kZXggMzg5NDQ1 N2FiNDAuLmY4YmVjYmNkZTUxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFy bGVuYS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMKQEAgLTI2ODQsNiAr MjY4NCwxMiBAQCBuYW1lX3RleHQoUEdfRlVOQ1RJT05fQVJHUykKICAqLwogTGlzdCAqCiB0ZXh0 VG9RdWFsaWZpZWROYW1lTGlzdCh0ZXh0ICp0ZXh0dmFsKQoreworCXJldHVybiB0ZXh0VG9RdWFs aWZpZWROYW1lTGlzdFNhZmUodGV4dHZhbCwgTlVMTCk7Cit9CisKK0xpc3QgKgordGV4dFRvUXVh bGlmaWVkTmFtZUxpc3RTYWZlKHRleHQgKnRleHR2YWwsIE5vZGUgKmVzY29udGV4dCkKIHsKIAlj aGFyCSAgICpyYXduYW1lOwogCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKQEAgLTI2OTUsMTIgKzI3 MDEsMTIgQEAgdGV4dFRvUXVhbGlmaWVkTmFtZUxpc3QodGV4dCAqdGV4dHZhbCkKIAlyYXduYW1l ID0gdGV4dF90b19jc3RyaW5nKHRleHR2YWwpOwogCiAJaWYgKCFTcGxpdElkZW50aWZpZXJTdHJp bmcocmF3bmFtZSwgJy4nLCAmbmFtZWxpc3QpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJu KGVzY29udGV4dCwgTklMLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9OQU1FKSwKIAkJ CQkgZXJybXNnKCJpbnZhbGlkIG5hbWUgc3ludGF4IikpKTsKIAogCWlmIChuYW1lbGlzdCA9PSBO SUwpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZXNjb250ZXh0LCBOSUwsCiAJCQkJKGVy cmNvZGUoRVJSQ09ERV9JTlZBTElEX05BTUUpLAogCQkJCSBlcnJtc2coImludmFsaWQgbmFtZSBz eW50YXgiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQveG1sLmMgYi9z cmMvYmFja2VuZC91dGlscy9hZHQveG1sLmMKaW5kZXggOWU4MDE2NDU2Y2UuLjhkZTFmMWZjNzQx IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQveG1sLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3htbC5jCkBAIC0xMDQzLDcgKzEwNDMsNyBAQCB4bWxwYXJzZSh0ZXh0ICpk YXRhLCBYbWxPcHRpb25UeXBlIHhtbG9wdGlvbl9hcmcsIGJvb2wgcHJlc2VydmVfd2hpdGVzcGFj ZSwgTm9kZQogCiAJcmV0dXJuICh4bWx0eXBlICopIGRhdGE7CiAjZWxzZQotCWVyZXR1cm4oZXNj b250ZXh0LCBOVUxMCisJZXJldHVybihlc2NvbnRleHQsIE5VTEwsCiAJCQllcnJjb2RlKEVSUkNP REVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCWVycm1zZygidW5zdXBwb3J0ZWQgWE1MIGZl YXR1cmUiKSwKIAkJCWVycmRldGFpbCgiVGhpcyBmdW5jdGlvbmFsaXR5IHJlcXVpcmVzIHRoZSBz ZXJ2ZXIgdG8gYmUgYnVpbHQgd2l0aCBsaWJ4bWwgc3VwcG9ydC4iKSk7CmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1l c3BhY2UuaAppbmRleCBmMTQyM2YyOGMzMi4uYWI2MWFmNTVkZGMgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1l c3BhY2UuaApAQCAtMTAzLDYgKzEwMywxMSBAQCBleHRlcm4gT2lkCVJhbmdlVmFyR2V0UmVsaWRF eHRlbmRlZChjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sCiAJCQkJCQkJCQkgTE9DS01PREUgbG9j a21vZGUsIHVpbnQzMiBmbGFncywKIAkJCQkJCQkJCSBSYW5nZVZhckdldFJlbGlkQ2FsbGJhY2sg Y2FsbGJhY2ssCiAJCQkJCQkJCQkgdm9pZCAqY2FsbGJhY2tfYXJnKTsKK2V4dGVybiBPaWQgUmFu Z2VWYXJHZXRSZWxpZEV4dGVuZGVkU2FmZShjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sCisJCQkJ CQkJCQkJTE9DS01PREUgbG9ja21vZGUsIHVpbnQzMiBmbGFncywKKwkJCQkJCQkJCQlSYW5nZVZh ckdldFJlbGlkQ2FsbGJhY2sgY2FsbGJhY2ssCisJCQkJCQkJCQkJdm9pZCAqY2FsbGJhY2tfYXJn LAorCQkJCQkJCQkJCU5vZGUgKmVzY29udGV4dCk7CiBleHRlcm4gT2lkCVJhbmdlVmFyR2V0Q3Jl YXRpb25OYW1lc3BhY2UoY29uc3QgUmFuZ2VWYXIgKm5ld1JlbGF0aW9uKTsKIGV4dGVybiBPaWQJ UmFuZ2VWYXJHZXRBbmRDaGVja0NyZWF0aW9uTmFtZXNwYWNlKFJhbmdlVmFyICpyZWxhdGlvbiwK IAkJCQkJCQkJCQkJCSBMT0NLTU9ERSBsb2NrbW9kZSwKQEAgLTE2OCw2ICsxNzMsNyBAQCBleHRl cm4gT2lkCUxvb2t1cENyZWF0aW9uTmFtZXNwYWNlKGNvbnN0IGNoYXIgKm5zcG5hbWUpOwogZXh0 ZXJuIHZvaWQgQ2hlY2tTZXROYW1lc3BhY2UoT2lkIG9sZE5zcE9pZCwgT2lkIG5zcE9pZCk7CiBl eHRlcm4gT2lkCVF1YWxpZmllZE5hbWVHZXRDcmVhdGlvbk5hbWVzcGFjZShjb25zdCBMaXN0ICpu YW1lcywgY2hhciAqKm9iam5hbWVfcCk7CiBleHRlcm4gUmFuZ2VWYXIgKm1ha2VSYW5nZVZhckZy b21OYW1lTGlzdChjb25zdCBMaXN0ICpuYW1lcyk7CitleHRlcm4gUmFuZ2VWYXIgKm1ha2VSYW5n ZVZhckZyb21OYW1lTGlzdFNhZmUoY29uc3QgTGlzdCAqbmFtZXMsIE5vZGUgKmVzY29udGV4dCk7 CiBleHRlcm4gY2hhciAqTmFtZUxpc3RUb1N0cmluZyhjb25zdCBMaXN0ICpuYW1lcyk7CiBleHRl cm4gY2hhciAqTmFtZUxpc3RUb1F1b3RlZFN0cmluZyhjb25zdCBMaXN0ICpuYW1lcyk7CiAKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3ZhcmxlbmEuaCBiL3NyYy9pbmNsdWRlL3V0aWxz L3ZhcmxlbmEuaAppbmRleCBkYjlmZGY3Mjk0MS4uMGNmMDFhZTUyODEgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL3V0aWxzL3ZhcmxlbmEuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy92YXJsZW5h LmgKQEAgLTI3LDYgKzI3LDcgQEAgZXh0ZXJuIGludAl2YXJzdHJfbGV2ZW5zaHRlaW5fbGVzc19l cXVhbChjb25zdCBjaGFyICpzb3VyY2UsIGludCBzbGVuLAogCQkJCQkJCQkJCSAgaW50IGluc19j LCBpbnQgZGVsX2MsIGludCBzdWJfYywKIAkJCQkJCQkJCQkgIGludCBtYXhfZCwgYm9vbCB0cnVz dGVkKTsKIGV4dGVybiBMaXN0ICp0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdCh0ZXh0ICp0ZXh0dmFs KTsKK2V4dGVybiBMaXN0ICp0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdFNhZmUodGV4dCAqdGV4dHZh bCwgTm9kZSAqZXNjb250ZXh0KTsKIGV4dGVybiBib29sIFNwbGl0SWRlbnRpZmllclN0cmluZyhj aGFyICpyYXdzdHJpbmcsIGNoYXIgc2VwYXJhdG9yLAogCQkJCQkJCQkgIExpc3QgKipuYW1lbGlz dCk7CiBleHRlcm4gYm9vbCBTcGxpdERpcmVjdG9yaWVzU3RyaW5nKGNoYXIgKnJhd3N0cmluZywg Y2hhciBzZXBhcmF0b3IsCi0tIAoyLjM0LjEKCg== --0000000000009b0f2c0644f36491 Content-Type: text/x-patch; charset="US-ASCII"; name="v13-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v13-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mioa5qat18 RnJvbSBjYzE4MjRiNDNkYzAzNDBmNDc0ZmM4MGUyN2NmYTgxYTdlZGFkYTI2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMTA6MzM6MDggKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MyAwMi8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBiaXQvdmFyYml0IHRvIG90aGVyIHR5cGVz CiBwZXIgcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJl Z3R5cGUsIGNhc3RmdW5jLAogICAgICAgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMKd2hlcmUgcGMuY2FzdGZ1bmMgPiAwIGFuZCAoY2FzdHNvdXJjZTo6cmVndHlw ZSA9J2JpdCc6OnJlZ3R5cGUgb3IKY2FzdHNvdXJjZTo6cmVndHlwZSA9J3ZhcmJpdCc6OnJlZ3R5 cGUpCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSAgfCBjYXN0dGFy Z2V0ICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgIHByb3NyYyAgIHwg cHJvbmFtZQotLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0KIGJpdCAgICAgICAgIHwgYmln aW50ICAgICAgfCAgICAgMjA3NiB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdHRvaW50 OCB8IGludDgKIGJpdCAgICAgICAgIHwgaW50ZWdlciAgICAgfCAgICAgMTY4NCB8IGUgICAgICAg ICAgIHwgZiAgICAgICAgICB8IGJpdHRvaW50NCB8IGludDQKIGJpdCAgICAgICAgIHwgYml0ICAg ICAgICAgfCAgICAgMTY4NSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdCAgICAgICB8 IGJpdAogYml0IHZhcnlpbmcgfCBiaXQgdmFyeWluZyB8ICAgICAxNjg3IHwgaSAgICAgICAgICAg fCBmICAgICAgICAgIHwgdmFyYml0ICAgIHwgdmFyYml0Cig0IHJvd3MpCgpkaXNjdXNzaW9uOiBo dHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1 M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92 YXJiaXQuYyB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5jCmluZGV4IDIwNWE2N2RhZmM1Li42ZTli ODA4ZTIwYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJiaXQuYwpAQCAtNDAxLDcgKzQwMSw3IEBAIGJpdChQ R19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fVkFSQklUX1AoYXJnKTsKIAogCWlmICghaXNF eHBsaWNpdCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChE YXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19EQVRBX0xFTkdUSF9NSVNNQVRD SCksCiAJCQkJIGVycm1zZygiYml0IHN0cmluZyBsZW5ndGggJWQgZG9lcyBub3QgbWF0Y2ggdHlw ZSBiaXQoJWQpIiwKIAkJCQkJCVZBUkJJVExFTihhcmcpLCBsZW4pKSk7CkBAIC03NTIsNyArNzUy LDcgQEAgdmFyYml0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCVBHX1JFVFVSTl9WQVJCSVRfUChhcmcp OwogCiAJaWYgKCFpc0V4cGxpY2l0KQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5m by0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfU1RSSU5HX0RBVEFf UklHSFRfVFJVTkNBVElPTiksCiAJCQkJIGVycm1zZygiYml0IHN0cmluZyB0b28gbG9uZyBmb3Ig dHlwZSBiaXQgdmFyeWluZyglZCkiLAogCQkJCQkJbGVuKSkpOwpAQCAtMTU5MSw3ICsxNTkxLDcg QEAgYml0dG9pbnQ0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBDaGVjayB0aGF0IHRoZSBiaXQg c3RyaW5nIGlzIG5vdCB0b28gbG9uZyAqLwogCWlmIChWQVJCSVRMRU4oYXJnKSA+IHNpemVvZihy ZXN1bHQpICogQklUU19QRVJfQllURSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2lu Zm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFM VUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnRlZ2VyIG91dCBvZiByYW5nZSIpKSk7 CiAKQEAgLTE2NzEsNyArMTY3MSw3IEBAIGJpdHRvaW50OChQR19GVU5DVElPTl9BUkdTKQogCiAJ LyogQ2hlY2sgdGhhdCB0aGUgYml0IHN0cmluZyBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAoVkFS QklUTEVOKGFyZykgPiBzaXplb2YocmVzdWx0KSAqIEJJVFNfUEVSX0JZVEUpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiYmln aW50IG91dCBvZiByYW5nZSIpKSk7CiAKLS0gCjIuMzQuMQoK --0000000000009b0f2c0644f36491 Content-Type: text/x-patch; charset="US-ASCII"; name="v13-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v13-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mioa5qav19 RnJvbSBmNGYwZTA5M2U2MGY1MGI1ZWUwZGE1YTk0MWJkMmUxMDE1YmUzMjM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MDg6MDAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MyAwMS8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBieXRlYSB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l CmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9J2J5dGVhJzo6cmVn dHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCBjYXN0dGFy Z2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgIHByb3NyYyAgIHwg cHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQogYnl0ZWEgICAgICB8IHNtYWxs aW50ICAgfCAgICAgNjM3MCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJ5dGVhX2ludDIg fCBpbnQyCiBieXRlYSAgICAgIHwgaW50ZWdlciAgICB8ICAgICA2MzcxIHwgZSAgICAgICAgICAg fCBmICAgICAgICAgIHwgYnl0ZWFfaW50NCB8IGludDQKIGJ5dGVhICAgICAgfCBiaWdpbnQgICAg IHwgICAgIDYzNzIgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBieXRlYV9pbnQ4IHwgaW50 OAooMyByb3dzKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZ NFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0t CiBzcmMvYmFja2VuZC91dGlscy9hZHQvYnl0ZWEuYyB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9ieXRlYS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2J5dGVhLmMKaW5k ZXggNmU3YjkxNGM1NjMuLmY0M2FkNmI0YWZmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hZHQvYnl0ZWEuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYnl0ZWEuYwpAQCAtMTAy Nyw3ICsxMDI3LDcgQEAgYnl0ZWFfaW50MihQR19GVU5DVElPTl9BUkdTKQogCiAJLyogQ2hlY2sg dGhhdCB0aGUgYnl0ZSBhcnJheSBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAobGVuID4gc2l6ZW9m KHJlc3VsdCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAo RGF0dW0pIDAsCiAJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdF KSwKIAkJCQllcnJtc2coInNtYWxsaW50IG91dCBvZiByYW5nZSIpKTsKIApAQCAtMTA1Miw3ICsx MDUyLDcgQEAgYnl0ZWFfaW50NChQR19GVU5DVElPTl9BUkdTKQogCiAJLyogQ2hlY2sgdGhhdCB0 aGUgYnl0ZSBhcnJheSBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAobGVuID4gc2l6ZW9mKHJlc3Vs dCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0p IDAsCiAJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJ CQllcnJtc2coImludGVnZXIgb3V0IG9mIHJhbmdlIikpOwogCkBAIC0xMDc3LDcgKzEwNzcsNyBA QCBieXRlYV9pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBDaGVjayB0aGF0IHRoZSBieXRl IGFycmF5IGlzIG5vdCB0b28gbG9uZyAqLwogCWlmIChsZW4gPiBzaXplb2YocmVzdWx0KSkKLQkJ ZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJ CQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCWVycm1z ZygiYmlnaW50IG91dCBvZiByYW5nZSIpKTsKIAotLSAKMi4zNC4xCgo= --0000000000009b0f2c0644f36491--