Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1vIP3C-007YVd-5U for pgsql-hackers@arkaria.postgresql.org; Mon, 10 Nov 2025 10:23:06 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1vIP3A-00FloI-BY for pgsql-hackers@arkaria.postgresql.org; Mon, 10 Nov 2025 10:23:04 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1vIP39-00FloA-Kw for pgsql-hackers@lists.postgresql.org; Mon, 10 Nov 2025 10:23:04 +0000 Received: from mail-vk1-xa36.google.com ([2607:f8b0:4864:20::a36]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vIP37-006M9S-0T for pgsql-hackers@lists.postgresql.org; Mon, 10 Nov 2025 10:23:02 +0000 Received: by mail-vk1-xa36.google.com with SMTP id 71dfb90a1353d-559748bcf99so2712312e0c.3 for ; Mon, 10 Nov 2025 02:23:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1762770180; x=1763374980; 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=TbBuHMHZdG26/hhAFJZGwMXuyzJW8YiCfnjXRvWrt+k=; b=L1EAXGsqGBXilVW75VAS5tXdEnHvNqfBSeu2LCtzrLBZhwf6W22c6fkpuWByZ3tZBI 1TGqeSQJCDgEjdHXQhOozTOrxcibncD7MybTGUKfam9NcdJ3jF5RU+GjrW7IGVwoy5J2 Q5EBuGX9VDZ4e9ELmgh+LUOgrUlk8eflObiDaGVMKq3GK9vszMD99bJ9w3KVHk4yqhOi UV03wh9RfwOYvH10wh9WnF4cQcq3J80aTLoPZvG+R9sviLqpOlN13eICGNuMWSHVaUBN OMh+hYQe6XCV8TLGLmf1K3x1KDKir2B0qSxHE4P6rqeQ2tUMbgLGwmgHBrXuAcZ3CJeB nAEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762770180; x=1763374980; 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=TbBuHMHZdG26/hhAFJZGwMXuyzJW8YiCfnjXRvWrt+k=; b=e6dsB6jpq1kjPjowgIF8JzsdbOMP5r4ctEiiCLBCajjMPa52pnX0DoNiYa7Ms5PnBz FcfgCspmPKtertidkgb9vyJgdH2eH9wzSz18mGBjl+3bHwfbn8PHU/FNLaVXEb4kKmzH QOushv/q4zsJrpRENbqyCz1k+8USNrSR9rPuN2sUTDqgv6tVNTBAgKCMe+oJPDvGjjOE g7Uqb9es62BP/P393+PYs1Yp8E8zYGOxWddC4R3rRnE0SC8a0BOPivz8ktSxlY6H+CQS TWHxsbWQL8meARGE/yv5sD35jaN9t1kNV5ADwlH2zILAoHLYWMeXviKBu6TPtL2cJCOA DX7Q== X-Forwarded-Encrypted: i=1; AJvYcCUZM+F+4THTT2YFAqzRk+P4jVI7yr6ighenZgQO9EOrIb2jaBjyY0QPCgumkwaVsF6KaXKyFyaIhUPTRNUC@lists.postgresql.org X-Gm-Message-State: AOJu0Yy0L9BsHxAyNpA86BXWJ4R3ig4UqywZAzC6CfBomLfF6w8XWat7 eP3yeKm0wdU3i7VJaqSOzg+uB5XQaMdaD/QpPhC8EOKJ/VONZJy9JN66UcQqCW+Vj4omzqW18yr YemXgSBAxVgxEI7Qy99FSNEqeoNpsXa8= X-Gm-Gg: ASbGncuNlNvxJhOdi4NphfP6FuRPg7ldeI8ZNEhSzV3IiJr9WTAuqdG2wvfl/2tW6Td GmeiClSxsE8d6cRhOTZBxqvV3ZIRAlz1C3oMUCJzGt2Pa8kDAoJzLExTLjIBWhMyi1KFeAKPZXe z27U6gvcC0S9LYMMQaoTm80fui4w4qkDTPsOwiPfhq3850ZJIS0Zef45ekufLVdHnqPC/QJlJ/5 T68asTTbzXIy7W6k1UK7Gtl9SxqReKhayFT2pNhEr7VqCndUBitUSxu90NtUgXkhNlLEWZQe+qM 4kbyqJZ8IlQyGV+F06cqCHHI5xPNkx493gC/LSeFCeN0qedHNKCTFB2FQ3BoeOarvpU5lWleEeH ytk+vV5aJRQNxL5pEJ08e9G6Ps1l+IjGrE6xIERgzy1PzCNirYKiI+T0bhEiCLq9r0k5XF2M0yA == X-Google-Smtp-Source: AGHT+IGUTUtMlY8NwjlPpZg145QBloo/aN/x/1c17TeI32ohsW5X22++Jz3hRhCqJKEX+vidiadY5talACSfkOWt4TQ= X-Received: by 2002:a05:6102:4420:b0:5db:d60a:6b1a with SMTP id ada2fe7eead31-5ddc478497cmr2165205137.30.1762770180172; Mon, 10 Nov 2025 02:23:00 -0800 (PST) MIME-Version: 1.0 References: <90dc6e9d-9348-485a-b27c-7b1637f06c2e@uni-muenster.de> In-Reply-To: From: jian he Date: Mon, 10 Nov 2025 18:22:23 +0800 X-Gm-Features: AWmQ_bnWUqORTFbmaT5xy5hG9dHo_FAZvmmZqRzavg3xcVhJ1l8TpI6_Qce2BDk Message-ID: Subject: Re: Change COPY ... ON_ERROR ignore to ON_ERROR ignore_row To: torikoshia Cc: Masahiko Sawada , vignesh C , Jim Jones , Kirill Reshke , Fujii Masao , "David G. Johnston" , Yugo NAGATA , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000690f2206433aeafd" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000690f2206433aeafd Content-Type: text/plain; charset="UTF-8" hi. rebase and minor cosmetic changes. -- jian https://www.enterprisedb.com/ --000000000000690f2206433aeafd Content-Type: text/x-patch; charset="US-ASCII"; name="v20-0001-COPY-on_error-set_null.patch" Content-Disposition: attachment; filename="v20-0001-COPY-on_error-set_null.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhsztqlu0 RnJvbSAwNTU3NDkyMDc3NGM5YmIyZjkzZjljYjZlY2VhMTM2YWE2NzNjYmE3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMTAgTm92IDIwMjUgMTg6MTc6MDkgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MCAxLzFdIENPUFkgKG9uX2Vycm9yIHNldF9udWxsKQoKV2hlbiBDT1BZIEZST00sIGlmIE9OX0VS Uk9SIFNFVF9OVUxMIGlzIHNwZWNpZmllZCwgYW55IGRhdGEgdHlwZSBjb252ZXJzaW9uCmVycm9y cyB3aWxsIHJlc3VsdCBpbiB0aGUgYWZmZWN0ZWQgY29sdW1uIGJlaW5nIHNldCB0byBOVUxMLiBI b3dldmVyLCBjb2x1bW4ncwpub3QtbnVsbCBjb25zdHJhaW50cyBhcmUgc3RpbGwgZW5mb3JjZWQs IGF0dGVtcHRpbmcgdG8gc2V0IGEgTlVMTCB2YWx1ZSBpbiBzdWNoCmNvbHVtbnMgd2lsbCByYWlz ZSBhIGNvbnN0cmFpbnQgdmlvbGF0aW9uIGVycm9yLiAgVGhpcyBhcHBsaWVzIHRvIGNvbHVtbiBk YXRhCnR5cGUgaXMgYSBkb21haW4gd2l0aCBhIE5PVCBOVUxMIGNvbnN0cmFpbnQuCgpBdXRob3I6 IEppYW4gSGUgPGppYW4udW5pdmVyc2FsaXR5QGdtYWlsLmNvbT4KQXV0aG9yOiBLaXJpbGwgUmVz aGtlIDxyZXNoa2VraXJpbGxAZ21haWwuY29tPgoKUmV2aWV3ZWQtYnk6CkZ1amlpIE1hc2FvIDxt YXNhby5mdWppaUBvc3MubnR0ZGF0YS5jb20+CkppbSBKb25lcyA8amltLmpvbmVzQHVuaS1tdWVu c3Rlci5kZT4KIkRhdmlkIEcuIEpvaG5zdG9uIiA8ZGF2aWQuZy5qb2huc3RvbkBnbWFpbC5jb20+ Cll1Z28gTkFHQVRBIDxuYWdhdGFAc3Jhb3NzLmNvLmpwPgp0b3Jpa29zaGlhIDx0b3Jpa29zaGlh QG9zcy5udHRkYXRhLmNvbT4KTWFzYWhpa28gU2F3YWRhIDxzYXdhZGEubXNoa0BnbWFpbC5jb20+ CkF0c3VzaGkgVG9yaWtvc2hpIDx0b3Jpa29zaGlhQG9zcy5udHRkYXRhLmNvbT4KCmRpc2N1c3Np b246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FLRlF1d2F3eTFlNllSNFM9ait5N3BYcWdfRHcxV0JW cmd2Zj1CUDNkMV9hU2ZlXytRQG1haWwuZ21haWwuY29tCmNvbW1pdGZlc3QgZW50cnk6IGh0dHBz Oi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy9wYXRjaC80ODEwCi0tLQogZG9jL3NyYy9zZ21s L3JlZi9jb3B5LnNnbWwgICAgICAgICAgICAgICB8IDM1ICsrKysrKystLS0KIHNyYy9iYWNrZW5k L2NvbW1hbmRzL2NvcHkuYyAgICAgICAgICAgICAgfCAgNiArLQogc3JjL2JhY2tlbmQvY29tbWFu ZHMvY29weWZyb20uYyAgICAgICAgICB8IDQyICsrKysrKysrKy0tLQogc3JjL2JhY2tlbmQvY29t bWFuZHMvY29weWZyb21wYXJzZS5jICAgICB8IDg0ICsrKysrKysrKysrKysrKysrKysrLS0tLQog c3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICB8ICAyICstCiBzcmMvaW5j bHVkZS9jb21tYW5kcy9jb3B5LmggICAgICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvY29t bWFuZHMvY29weWZyb21faW50ZXJuYWwuaCB8ICA3ICsrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2NvcHkyLm91dCAgICAgIHwgNTUgKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVz cy9zcWwvY29weTIuc3FsICAgICAgICAgICB8IDQzICsrKysrKysrKysrKwogOSBmaWxlcyBjaGFu Z2VkLCAyMzkgaW5zZXJ0aW9ucygrKSwgMzYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NvcHkuc2dtbAppbmRl eCBmZGMyNGIzNmJiOC4uMWY0MmZkMDk3MmQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYv Y29weS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY29weS5zZ21sCkBAIC00MTIsMjMgKzQx MiwzNyBAQCBDT1BZIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8 L3JlcGxhY2VhYmxlPiBbICggPHJlcGxhY2VhYmxlCiAgICAgICBTcGVjaWZpZXMgaG93IHRvIGJl aGF2ZSB3aGVuIGVuY291bnRlcmluZyBhbiBlcnJvciBjb252ZXJ0aW5nIGEgY29sdW1uJ3MKICAg ICAgIGlucHV0IHZhbHVlIGludG8gaXRzIGRhdGEgdHlwZS4KICAgICAgIEFuIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5lcnJvcl9hY3Rpb248L3JlcGxhY2VhYmxlPiB2YWx1ZSBvZgot ICAgICAgPGxpdGVyYWw+c3RvcDwvbGl0ZXJhbD4gbWVhbnMgZmFpbCB0aGUgY29tbWFuZCwgd2hp bGUKLSAgICAgIDxsaXRlcmFsPmlnbm9yZTwvbGl0ZXJhbD4gbWVhbnMgZGlzY2FyZCB0aGUgaW5w dXQgcm93IGFuZCBjb250aW51ZSB3aXRoIHRoZSBuZXh0IG9uZS4KKyAgICAgIDxsaXRlcmFsPnN0 b3A8L2xpdGVyYWw+IG1lYW5zIGZhaWwgdGhlIGNvbW1hbmQsCisgICAgICA8bGl0ZXJhbD5pZ25v cmU8L2xpdGVyYWw+IG1lYW5zIGRpc2NhcmQgdGhlIGlucHV0IHJvdyBhbmQgY29udGludWUgd2l0 aCB0aGUgbmV4dCBvbmUsCisgICAgICBhbmQgPGxpdGVyYWw+c2V0X251bGw8L2xpdGVyYWw+IG1l YW5zIHJlcGxhY2UgY29sdW1uIGNvbnRhaW5pbmcgaW52YWxpZAorICAgICAgaW5wdXQgdmFsdWUg d2l0aCA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPiBhbmQgbW92ZSB0byB0aGUgbmV4dCBmaWVsZC4K ICAgICAgIFRoZSBkZWZhdWx0IGlzIDxsaXRlcmFsPnN0b3A8L2xpdGVyYWw+LgogICAgICA8L3Bh cmE+CiAgICAgIDxwYXJhPgotICAgICAgVGhlIDxsaXRlcmFsPmlnbm9yZTwvbGl0ZXJhbD4gb3B0 aW9uIGlzIGFwcGxpY2FibGUgb25seSBmb3IgPGNvbW1hbmQ+Q09QWSBGUk9NPC9jb21tYW5kPgor ICAgICAgVGhlIDxsaXRlcmFsPmlnbm9yZTwvbGl0ZXJhbD4gYW5kIDxsaXRlcmFsPnNldF9udWxs PC9saXRlcmFsPgorICAgICAgb3B0aW9ucyBhcmUgYXBwbGljYWJsZSBvbmx5IGZvciA8Y29tbWFu ZD5DT1BZIEZST008L2NvbW1hbmQ+CiAgICAgICB3aGVuIHRoZSA8bGl0ZXJhbD5GT1JNQVQ8L2xp dGVyYWw+IGlzIDxsaXRlcmFsPnRleHQ8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPmNzdjwvbGl0ZXJh bD4uCiAgICAgIDwvcGFyYT4KKyAgICA8cGFyYT4KKyAgICAgIEZvciA8bGl0ZXJhbD5pZ25vcmU8 L2xpdGVyYWw+IG9wdGlvbiwgYSA8bGl0ZXJhbD5OT1RJQ0U8L2xpdGVyYWw+IG1lc3NhZ2UKKyAg ICAgIGNvbnRhaW5pbmcgdGhlIGlnbm9yZWQgcm93IGNvdW50IGlzIGVtaXR0ZWQgYXQgdGhlIGVu ZCBvZiB0aGUgPGNvbW1hbmQ+Q09QWQorICAgICAgRlJPTTwvY29tbWFuZD4gaWYgYXQgbGVhc3Qg b25lIHJvdyB3YXMgZGlzY2FyZGVkLgorICAgICAgRm9yIDxsaXRlcmFsPnNldF9udWxsPC9saXRl cmFsPiBvcHRpb24sCisgICAgICBhIDxsaXRlcmFsPk5PVElDRTwvbGl0ZXJhbD4gbWVzc2FnZSBp bmRpY2F0aW5nIHRoZSBudW1iZXIgb2Ygcm93cworICAgICAgd2hlcmUgaW52YWxpZCBpbnB1dCB2 YWx1ZXMgd2VyZSByZXBsYWNlZCB3aXRoIG51bGwgaXMgZW1pdHRlZAorICAgICAgYXQgdGhlIGVu ZCBvZiB0aGUgPGNvbW1hbmQ+Q09QWSBGUk9NPC9jb21tYW5kPiBpZiBhdCBsZWFzdCBvbmUgcm93 IHdhcyByZXBsYWNlZC4KKyAgICAgPC9wYXJhPgogICAgICA8cGFyYT4KLSAgICAgIEEgPGxpdGVy YWw+Tk9USUNFPC9saXRlcmFsPiBtZXNzYWdlIGNvbnRhaW5pbmcgdGhlIGlnbm9yZWQgcm93IGNv dW50IGlzCi0gICAgICBlbWl0dGVkIGF0IHRoZSBlbmQgb2YgdGhlIDxjb21tYW5kPkNPUFkgRlJP TTwvY29tbWFuZD4gaWYgYXQgbGVhc3Qgb25lCi0gICAgICByb3cgd2FzIGRpc2NhcmRlZC4gV2hl biA8bGl0ZXJhbD5MT0dfVkVSQk9TSVRZPC9saXRlcmFsPiBvcHRpb24gaXMgc2V0IHRvCi0gICAg ICA8bGl0ZXJhbD52ZXJib3NlPC9saXRlcmFsPiwgYSA8bGl0ZXJhbD5OT1RJQ0U8L2xpdGVyYWw+ IG1lc3NhZ2UKKyAgICAgIFdoZW4gPGxpdGVyYWw+TE9HX1ZFUkJPU0lUWTwvbGl0ZXJhbD4gb3B0 aW9uIGlzIHNldCB0byA8bGl0ZXJhbD52ZXJib3NlPC9saXRlcmFsPiwKKyAgICAgIGZvciA8bGl0 ZXJhbD5pZ25vcmU8L2xpdGVyYWw+IG9wdGlvbiwgYSA8bGl0ZXJhbD5OT1RJQ0U8L2xpdGVyYWw+ IG1lc3NhZ2UKICAgICAgIGNvbnRhaW5pbmcgdGhlIGxpbmUgb2YgdGhlIGlucHV0IGZpbGUgYW5k IHRoZSBjb2x1bW4gbmFtZSB3aG9zZSBpbnB1dAotICAgICAgY29udmVyc2lvbiBoYXMgZmFpbGVk IGlzIGVtaXR0ZWQgZm9yIGVhY2ggZGlzY2FyZGVkIHJvdy4KKyAgICAgIGNvbnZlcnNpb24gaGFz IGZhaWxlZCBpcyBlbWl0dGVkIGZvciBlYWNoIGRpc2NhcmRlZCByb3c7CisgICAgICBmb3IgPGxp dGVyYWw+c2V0X251bGw8L2xpdGVyYWw+IG9wdGlvbiwgYSA8bGl0ZXJhbD5OT1RJQ0U8L2xpdGVy YWw+CisgICAgICBtZXNzYWdlIGNvbnRhaW5pbmcgdGhlIGxpbmUgb2YgdGhlIGlucHV0IGZpbGUg YW5kIHRoZSBjb2x1bW4gbmFtZSB3aGVyZQorICAgICAgdmFsdWUgd2FzIHJlcGxhY2VkIHdpdGgg PGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4gZm9yIGVhY2ggaW5wdXQgY29udmVyc2lvbgorICAgICAg ZmFpbHVyZS4KICAgICAgIFdoZW4gaXQgaXMgc2V0IHRvIDxsaXRlcmFsPnNpbGVudDwvbGl0ZXJh bD4sIG5vIG1lc3NhZ2UgaXMgZW1pdHRlZAotICAgICAgcmVnYXJkaW5nIGlnbm9yZWQgcm93cy4K KyAgICAgIHJlZ2FyZGluZyBpbnB1dCBjb252ZXJzaW9uIGZhaWxlZCByb3dzLgogICAgICA8L3Bh cmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpAQCAtNDc2LDcgKzQ5MCw4 IEBAIENPUFkgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVw bGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUKICAgICAgPC9wYXJhPgogICAgICA8cGFyYT4KICAg ICAgIFRoaXMgaXMgY3VycmVudGx5IHVzZWQgaW4gPGNvbW1hbmQ+Q09QWSBGUk9NPC9jb21tYW5k PiBjb21tYW5kIHdoZW4KLSAgICAgIDxsaXRlcmFsPk9OX0VSUk9SPC9saXRlcmFsPiBvcHRpb24g aXMgc2V0IHRvIDxsaXRlcmFsPmlnbm9yZTwvbGl0ZXJhbD4uCisgICAgICA8bGl0ZXJhbD5PTl9F UlJPUjwvbGl0ZXJhbD4gb3B0aW9uIGlzIHNldCB0byA8bGl0ZXJhbD5pZ25vcmU8L2xpdGVyYWw+ CisgICAgICBvciA8bGl0ZXJhbD5zZXRfbnVsbDwvbGl0ZXJhbD4uCiAgICAgICA8L3BhcmE+CiAg ICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvY29weS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weS5jCmluZGV4IDI4 ZTg3OGMzNjg4Li45ZDA0MTNmNGNmYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv Y29weS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHkuYwpAQCAtNDU2LDEyICs0NTYs MTQgQEAgZGVmR2V0Q29weU9uRXJyb3JDaG9pY2UoRGVmRWxlbSAqZGVmLCBQYXJzZVN0YXRlICpw c3RhdGUsIGJvb2wgaXNfZnJvbSkKIAkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZGVm LT5sb2NhdGlvbikpKTsKIAogCS8qCi0JICogQWxsb3cgInN0b3AiLCBvciAiaWdub3JlIiB2YWx1 ZXMuCisJICogQWxsb3cgInN0b3AiLCAiaWdub3JlIiwgInNldF9udWxsIiB2YWx1ZXMuCiAJICov CiAJaWYgKHBnX3N0cmNhc2VjbXAoc3ZhbCwgInN0b3AiKSA9PSAwKQogCQlyZXR1cm4gQ09QWV9P Tl9FUlJPUl9TVE9QOwogCWlmIChwZ19zdHJjYXNlY21wKHN2YWwsICJpZ25vcmUiKSA9PSAwKQog CQlyZXR1cm4gQ09QWV9PTl9FUlJPUl9JR05PUkU7CisJaWYgKHBnX3N0cmNhc2VjbXAoc3ZhbCwg InNldF9udWxsIikgPT0gMCkKKwkJcmV0dXJuIENPUFlfT05fRVJST1JfU0VUX05VTEw7CiAKIAll cmVwb3J0KEVSUk9SLAogCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxV RSksCkBAIC05NzEsNyArOTczLDcgQEAgUHJvY2Vzc0NvcHlPcHRpb25zKFBhcnNlU3RhdGUgKnBz dGF0ZSwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCiAJCQkJIGVycm1zZygi b25seSBPTl9FUlJPUiBTVE9QIGlzIGFsbG93ZWQgaW4gQklOQVJZIG1vZGUiKSkpOwogCi0JaWYg KG9wdHNfb3V0LT5yZWplY3RfbGltaXQgJiYgIW9wdHNfb3V0LT5vbl9lcnJvcikKKwlpZiAob3B0 c19vdXQtPnJlamVjdF9saW1pdCAmJiBvcHRzX291dC0+b25fZXJyb3IgIT0gQ09QWV9PTl9FUlJP Ul9JR05PUkUpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElE X1BBUkFNRVRFUl9WQUxVRSksCiAJCS8qLSB0cmFuc2xhdG9yOiBmaXJzdCBhbmQgc2Vjb25kICVz IGFyZSB0aGUgbmFtZXMgb2YgQ09QWSBvcHRpb24sIGUuZy4KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL2NvcHlmcm9tLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5j CmluZGV4IDEyNzgxOTYzYjRmLi44NzU4OGI2ODhmMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvY29weWZyb20uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5j CkBAIC0xNDY3LDE0ICsxNDY3LDIyIEBAIENvcHlGcm9tKENvcHlGcm9tU3RhdGUgY3N0YXRlKQog CS8qIERvbmUsIGNsZWFuIHVwICovCiAJZXJyb3JfY29udGV4dF9zdGFjayA9IGVycmNhbGxiYWNr LnByZXZpb3VzOwogCi0JaWYgKGNzdGF0ZS0+b3B0cy5vbl9lcnJvciAhPSBDT1BZX09OX0VSUk9S X1NUT1AgJiYKLQkJY3N0YXRlLT5udW1fZXJyb3JzID4gMCAmJgorCWlmIChjc3RhdGUtPm51bV9l cnJvcnMgPiAwICYmCiAJCWNzdGF0ZS0+b3B0cy5sb2dfdmVyYm9zaXR5ID49IENPUFlfTE9HX1ZF UkJPU0lUWV9ERUZBVUxUKQotCQllcmVwb3J0KE5PVElDRSwKLQkJCQllcnJtc2dfcGx1cmFsKCIl IiBQUkl1NjQgIiByb3cgd2FzIHNraXBwZWQgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxp dHkiLAotCQkJCQkJCSAgIiUiIFBSSXU2NCAiIHJvd3Mgd2VyZSBza2lwcGVkIGR1ZSB0byBkYXRh IHR5cGUgaW5jb21wYXRpYmlsaXR5IiwKLQkJCQkJCQkgIGNzdGF0ZS0+bnVtX2Vycm9ycywKLQkJ CQkJCQkgIGNzdGF0ZS0+bnVtX2Vycm9ycykpOworCXsKKwkJaWYgKGNzdGF0ZS0+b3B0cy5vbl9l cnJvciA9PSBDT1BZX09OX0VSUk9SX0lHTk9SRSkKKwkJCWVyZXBvcnQoTk9USUNFLAorCQkJCQll cnJtc2dfcGx1cmFsKCIlIiBQUkl1NjQgIiByb3cgd2FzIHNraXBwZWQgZHVlIHRvIGRhdGEgdHlw ZSBpbmNvbXBhdGliaWxpdHkiLAorCQkJCQkJCQkgICIlIiBQUkl1NjQgIiByb3dzIHdlcmUgc2tp cHBlZCBkdWUgdG8gZGF0YSB0eXBlIGluY29tcGF0aWJpbGl0eSIsCisJCQkJCQkJCSAgY3N0YXRl LT5udW1fZXJyb3JzLAorCQkJCQkJCQkgIGNzdGF0ZS0+bnVtX2Vycm9ycykpOworCQllbHNlIGlm IChjc3RhdGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJPUl9TRVRfTlVMTCkKKwkJCWVy ZXBvcnQoTk9USUNFLAorCQkJCQllcnJtc2dfcGx1cmFsKCJpbnZhbGlkIHZhbHVlcyBpbiAlIiBQ Ukl1NjQgIiByb3cgd2FzIHJlcGxhY2VkIHdpdGggbnVsbCBkdWUgdG8gZGF0YSB0eXBlIGluY29t cGF0aWJpbGl0eSIsCisJCQkJCQkJCSAgImludmFsaWQgdmFsdWVzIGluICUiIFBSSXU2NCAiIHJv d3Mgd2VyZSByZXBsYWNlZCB3aXRoIG51bGwgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxp dHkiLAorCQkJCQkJCQkgIGNzdGF0ZS0+bnVtX2Vycm9ycywKKwkJCQkJCQkJICBjc3RhdGUtPm51 bV9lcnJvcnMpKTsKKwl9CiAKIAlpZiAoYmlzdGF0ZSAhPSBOVUxMKQogCQlGcmVlQnVsa0luc2Vy dFN0YXRlKGJpc3RhdGUpOwpAQCAtMTYxNCw2ICsxNjIyLDE5IEBAIEJlZ2luQ29weUZyb20oUGFy c2VTdGF0ZSAqcHN0YXRlLAogCQl9CiAJfQogCisJaWYgKGNzdGF0ZS0+b3B0cy5vbl9lcnJvciA9 PSBDT1BZX09OX0VSUk9SX1NFVF9OVUxMKQorCXsKKwkJaW50CWF0dHJfY291bnQgPSBsaXN0X2xl bmd0aChjc3RhdGUtPmF0dG51bWxpc3QpOworCisJCWNzdGF0ZS0+ZG9tYWluX3dpdGhfY29uc3Ry YWludCA9IChib29sICopIHBhbGxvYzAoYXR0cl9jb3VudCAqIHNpemVvZihib29sKSk7CisJCWZv cmVhY2hfaW50KGF0dG5vLCBjc3RhdGUtPmF0dG51bWxpc3QpCisJCXsKKwkJCWludAkJCWkgPSBm b3JlYWNoX2N1cnJlbnRfaW5kZXgoYXR0bm8pOworCQkJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0ID0g VHVwbGVEZXNjQXR0cih0dXBEZXNjLCBhdHRubyAtIDEpOworCQkJY3N0YXRlLT5kb21haW5fd2l0 aF9jb25zdHJhaW50W2ldID0gRG9tYWluSGFzQ29uc3RyYWludHMoYXR0LT5hdHR0eXBpZCk7CisJ CX0KKwl9CisKIAkvKiBTZXQgdXAgc29mdCBlcnJvciBoYW5kbGVyIGZvciBPTl9FUlJPUiAqLwog CWlmIChjc3RhdGUtPm9wdHMub25fZXJyb3IgIT0gQ09QWV9PTl9FUlJPUl9TVE9QKQogCXsKQEAg LTE2MjIsMTAgKzE2NDMsMTEgQEAgQmVnaW5Db3B5RnJvbShQYXJzZVN0YXRlICpwc3RhdGUsCiAJ CWNzdGF0ZS0+ZXNjb250ZXh0LT5lcnJvcl9vY2N1cnJlZCA9IGZhbHNlOwogCiAJCS8qCi0JCSAq IEN1cnJlbnRseSB3ZSBvbmx5IHN1cHBvcnQgQ09QWV9PTl9FUlJPUl9JR05PUkUuIFdlJ2xsIGFk ZCBvdGhlcgotCQkgKiBvcHRpb25zIGxhdGVyCisJCSAqIEN1cnJlbnRseSB3ZSBvbmx5IHN1cHBv cnQgQ09QWV9PTl9FUlJPUl9JR05PUkUsIENPUFlfT05fRVJST1JfU0VUX05VTEwuCisJCSAqIFdl J2xsIGFkZCBvdGhlciBvcHRpb25zIGxhdGVyCiAJCSAqLwotCQlpZiAoY3N0YXRlLT5vcHRzLm9u X2Vycm9yID09IENPUFlfT05fRVJST1JfSUdOT1JFKQorCQlpZiAoY3N0YXRlLT5vcHRzLm9uX2Vy cm9yID09IENPUFlfT05fRVJST1JfSUdOT1JFIHx8CisJCQljc3RhdGUtPm9wdHMub25fZXJyb3Ig PT0gQ09QWV9PTl9FUlJPUl9TRVRfTlVMTCkKIAkJCWNzdGF0ZS0+ZXNjb250ZXh0LT5kZXRhaWxz X3dhbnRlZCA9IGZhbHNlOwogCX0KIAllbHNlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9jb3B5ZnJvbXBhcnNlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbXBhcnNl LmMKaW5kZXggYjFhZTk3YjgzM2QuLjdjMGQxM2FiMzhiIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9jb3B5ZnJvbXBhcnNlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29w eWZyb21wYXJzZS5jCkBAIC05NTYsNiArOTU2LDcgQEAgQ29weUZyb21UZXh0TGlrZU9uZVJvdyhD b3B5RnJvbVN0YXRlIGNzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0LAogCWludAkJCWZsZGN0 OwogCWludAkJCWZpZWxkbm87CiAJY2hhcgkgICAqc3RyaW5nOworCWJvb2wJCWN1cnJlbnRfcm93 X2Vycm9uZW91cyA9IGZhbHNlOwogCiAJdHVwRGVzYyA9IFJlbGF0aW9uR2V0RGVzY3IoY3N0YXRl LT5yZWwpOwogCWF0dHJfY291bnQgPSBsaXN0X2xlbmd0aChjc3RhdGUtPmF0dG51bWxpc3QpOwpA QCAtMTAzMyw3ICsxMDM0LDggQEAgQ29weUZyb21UZXh0TGlrZU9uZVJvdyhDb3B5RnJvbVN0YXRl IGNzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0LAogCQl9CiAKIAkJLyoKLQkJICogSWYgT05f RVJST1IgaXMgc3BlY2lmaWVkIHdpdGggSUdOT1JFLCBza2lwIHJvd3Mgd2l0aCBzb2Z0IGVycm9y cworCQkgKiBJZiBPTl9FUlJPUiBpcyBzcGVjaWZpZWQgd2l0aCBJR05PUkUsIHNraXAgcm93cyB3 aXRoIHNvZnQgZXJyb3JzLgorCQkgKiBJZiBPTl9FUlJPUiBpcyBzcGVjaWZpZWQgd2l0aCBTRVRf TlVMTCwgdHJ5IHRvIHJlcGxhY2Ugd2l0aCBudWxsLgogCQkgKi8KIAkJZWxzZSBpZiAoIUlucHV0 RnVuY3Rpb25DYWxsU2FmZSgmaW5fZnVuY3Rpb25zW21dLAogCQkJCQkJCQkJCXN0cmluZywKQEAg LTEwNDQsNyArMTA0Niw1MCBAQCBDb3B5RnJvbVRleHRMaWtlT25lUm93KENvcHlGcm9tU3RhdGUg Y3N0YXRlLCBFeHByQ29udGV4dCAqZWNvbnRleHQsCiAJCXsKIAkJCUFzc2VydChjc3RhdGUtPm9w dHMub25fZXJyb3IgIT0gQ09QWV9PTl9FUlJPUl9TVE9QKTsKIAotCQkJY3N0YXRlLT5udW1fZXJy b3JzKys7CisJCQlpZiAoY3N0YXRlLT5vcHRzLm9uX2Vycm9yID09IENPUFlfT05fRVJST1JfSUdO T1JFKQorCQkJCWNzdGF0ZS0+bnVtX2Vycm9ycysrOworCQkJZWxzZSBpZiAoY3N0YXRlLT5vcHRz Lm9uX2Vycm9yID09IENPUFlfT05fRVJST1JfU0VUX05VTEwpCisJCQl7CisJCQkJY3N0YXRlLT5l c2NvbnRleHQtPmVycm9yX29jY3VycmVkID0gZmFsc2U7CisJCQkJQXNzZXJ0KGNzdGF0ZS0+ZG9t YWluX3dpdGhfY29uc3RyYWludCAhPSBOVUxMKTsKKworCQkJCS8qCisJCQkJICogSWYgdGhlIGNv bHVtbiB0eXBlIGlzIGEgZG9tYWluIHdpdGggY29uc3RyYWludHMsIGFuCisJCQkJICogYWRkaXRp b25hbCBJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUgbWF5IGJlIG5lZWRlZCB0byByYWlzZQorCQkJCSAq IGVycm9ycyBmb3IgZG9tYWluIGNvbnN0cmFpbnQgdmlvbGF0aW9ucy4KKwkJCQkgKi8KKwkJCQlp ZiAoIWNzdGF0ZS0+ZG9tYWluX3dpdGhfY29uc3RyYWludFttXSB8fAorCQkJCQlJbnB1dEZ1bmN0 aW9uQ2FsbFNhZmUoJmluX2Z1bmN0aW9uc1ttXSwKKwkJCQkJCQkJCQkgIE5VTEwsCisJCQkJCQkJ CQkJICB0eXBpb3BhcmFtc1ttXSwKKwkJCQkJCQkJCQkgIGF0dC0+YXR0dHlwbW9kLAorCQkJCQkJ CQkJCSAgKE5vZGUgKikgY3N0YXRlLT5lc2NvbnRleHQsCisJCQkJCQkJCQkJICAmdmFsdWVzW21d KSkKKwkJCQl7CisJCQkJCW51bGxzW21dID0gdHJ1ZTsKKwkJCQkJdmFsdWVzW21dID0gKERhdHVt KSAwOworCQkJCX0KKwkJCQllbHNlIGlmIChzdHJpbmcgPT0gTlVMTCkKKwkJCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJCQllcnJjb2RlKEVSUkNPREVfTk9UX05VTExfVklPTEFUSU9OKSwKKwkJCQkJ CQllcnJtc2coImRvbWFpbiAlcyBkb2VzIG5vdCBhbGxvdyBudWxsIHZhbHVlcyIsIGZvcm1hdF90 eXBlX2JlKHR5cGlvcGFyYW1zW21dKSksCisJCQkJCQkJZXJyZGF0YXR5cGUodHlwaW9wYXJhbXNb bV0pKTsKKwkJCQllbHNlCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJZXJyY29kZShFUlJD T0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCisJCQkJCQkJZXJybXNnKCJpbnZhbGlk IGlucHV0IHZhbHVlIGZvciBkb21haW4gJXM6IFwiJXNcIiIsCisJCQkJCQkJCSAgIGZvcm1hdF90 eXBlX2JlKHR5cGlvcGFyYW1zW21dKSwgc3RyaW5nKSk7CisKKwkJCQkvKgorCQkJCSAqIFdlIGNv dW50IG9ubHkgdGhlIG51bWJlciBvZiByb3dzIChub3QgaW5kaXZpZHVhbCBmaWVsZHMpCisJCQkJ ICogd2hlcmUgT05fRVJST1IgU0VUX05VTEwgd2FzIHN1Y2Nlc3NmdWxseSBhcHBsaWVkLgorCQkJ CSAqLworCQkJCWlmICghY3VycmVudF9yb3dfZXJyb25lb3VzKQorCQkJCXsKKwkJCQkJY3VycmVu dF9yb3dfZXJyb25lb3VzID0gdHJ1ZTsKKwkJCQkJY3N0YXRlLT5udW1fZXJyb3JzKys7CisJCQkJ fQorCQkJfQogCiAJCQlpZiAoY3N0YXRlLT5vcHRzLmxvZ192ZXJib3NpdHkgPT0gQ09QWV9MT0df VkVSQk9TSVRZX1ZFUkJPU0UpCiAJCQl7CkBAIC0xMDYxLDI0ICsxMTA2LDM3IEBAIENvcHlGcm9t VGV4dExpa2VPbmVSb3coQ29weUZyb21TdGF0ZSBjc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4 dCwKIAkJCQkJY2hhcgkgICAqYXR0dmFsOwogCiAJCQkJCWF0dHZhbCA9IENvcHlMaW1pdFByaW50 b3V0TGVuZ3RoKGNzdGF0ZS0+Y3VyX2F0dHZhbCk7Ci0JCQkJCWVyZXBvcnQoTk9USUNFLAotCQkJ CQkJCWVycm1zZygic2tpcHBpbmcgcm93IGR1ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRpYmlsaXR5 IGF0IGxpbmUgJSIgUFJJdTY0ICIgZm9yIGNvbHVtbiBcIiVzXCI6IFwiJXNcIiIsCi0JCQkJCQkJ CSAgIGNzdGF0ZS0+Y3VyX2xpbmVubywKLQkJCQkJCQkJICAgY3N0YXRlLT5jdXJfYXR0bmFtZSwK LQkJCQkJCQkJICAgYXR0dmFsKSk7CisKKwkJCQkJaWYgKGNzdGF0ZS0+b3B0cy5vbl9lcnJvciA9 PSBDT1BZX09OX0VSUk9SX0lHTk9SRSkKKwkJCQkJCWVyZXBvcnQoTk9USUNFLAorCQkJCQkJCQll cnJtc2coInNraXBwaW5nIHJvdyBkdWUgdG8gZGF0YSB0eXBlIGluY29tcGF0aWJpbGl0eSBhdCBs aW5lICUiIFBSSXU2NCAiIGZvciBjb2x1bW4gXCIlc1wiOiBcIiVzXCIiLAorCQkJCQkJCQkJICAg Y3N0YXRlLT5jdXJfbGluZW5vLAorCQkJCQkJCQkJICAgY3N0YXRlLT5jdXJfYXR0bmFtZSwKKwkJ CQkJCQkJCSAgIGF0dHZhbCkpOworCQkJCQllbHNlIGlmIChjc3RhdGUtPm9wdHMub25fZXJyb3Ig PT0gQ09QWV9PTl9FUlJPUl9TRVRfTlVMTCkKKwkJCQkJCWVyZXBvcnQoTk9USUNFLAorCQkJCQkJ CQllcnJtc2coInNldHRpbmcgdG8gbnVsbCBkdWUgdG8gZGF0YSB0eXBlIGluY29tcGF0aWJpbGl0 eSBhdCBsaW5lICUiIFBSSXU2NCAiIGZvciBjb2x1bW4gXCIlc1wiOiBcIiVzXCIiLAorCQkJCQkJ CQkJICAgY3N0YXRlLT5jdXJfbGluZW5vLAorCQkJCQkJCQkJICAgY3N0YXRlLT5jdXJfYXR0bmFt ZSwKKwkJCQkJCQkJCSAgIGF0dHZhbCkpOwogCQkJCQlwZnJlZShhdHR2YWwpOwogCQkJCX0KIAkJ CQllbHNlCi0JCQkJCWVyZXBvcnQoTk9USUNFLAotCQkJCQkJCWVycm1zZygic2tpcHBpbmcgcm93 IGR1ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRpYmlsaXR5IGF0IGxpbmUgJSIgUFJJdTY0ICIgZm9y IGNvbHVtbiBcIiVzXCI6IG51bGwgaW5wdXQiLAotCQkJCQkJCQkgICBjc3RhdGUtPmN1cl9saW5l bm8sCi0JCQkJCQkJCSAgIGNzdGF0ZS0+Y3VyX2F0dG5hbWUpKTsKLQorCQkJCXsKKwkJCQkJaWYg KGNzdGF0ZS0+b3B0cy5vbl9lcnJvciA9PSBDT1BZX09OX0VSUk9SX0lHTk9SRSkKKwkJCQkJCWVy ZXBvcnQoTk9USUNFLAorCQkJCQkJCQllcnJtc2coInNraXBwaW5nIHJvdyBkdWUgdG8gZGF0YSB0 eXBlIGluY29tcGF0aWJpbGl0eSBhdCBsaW5lICUiIFBSSXU2NCAiIGZvciBjb2x1bW4gXCIlc1wi OiBudWxsIGlucHV0IiwKKwkJCQkJCQkJCSAgIGNzdGF0ZS0+Y3VyX2xpbmVubywKKwkJCQkJCQkJ CSAgIGNzdGF0ZS0+Y3VyX2F0dG5hbWUpKTsKKwkJCQl9CiAJCQkJLyogcmVzZXQgcmVsbmFtZV9v bmx5ICovCiAJCQkJY3N0YXRlLT5yZWxuYW1lX29ubHkgPSBmYWxzZTsKIAkJCX0KIAotCQkJcmV0 dXJuIHRydWU7CisJCQlpZiAoY3N0YXRlLT5vcHRzLm9uX2Vycm9yID09IENPUFlfT05fRVJST1Jf SUdOT1JFKQorCQkJCXJldHVybiB0cnVlOworCQkJZWxzZSBpZiAoY3N0YXRlLT5vcHRzLm9uX2Vy cm9yID09IENPUFlfT05fRVJST1JfU0VUX05VTEwpCisJCQkJY29udGludWU7CiAJCX0KIAogCQlj c3RhdGUtPmN1cl9hdHRuYW1lID0gTlVMTDsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCAzMTZh MmRhZmJmMS4uNzEyNGY0NjhiYTQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxl dGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTMzODEsNyAr MzM4MSw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCS8qIENvbXBs ZXRlIENPUFkgPHN0aD4gRlJPTSBbUFJPR1JBTV0gZmlsZW5hbWUgV0lUSCAoT05fRVJST1IgKi8K IAllbHNlIGlmIChNYXRjaGVzKCJDT1BZfFxcY29weSIsIE1hdGNoQW55LCAiRlJPTSIsIE1hdGNo QW55RXhjZXB0KCJQUk9HUkFNIiksICJXSVRIIiwgIigiLCAiT05fRVJST1IiKSB8fAogCQkJIE1h dGNoZXMoIkNPUFl8XFxjb3B5IiwgTWF0Y2hBbnksICJGUk9NIiwgIlBST0dSQU0iLCBNYXRjaEFu eSwgIldJVEgiLCAiKCIsICJPTl9FUlJPUiIpKQotCQlDT01QTEVURV9XSVRIKCJzdG9wIiwgImln bm9yZSIpOworCQlDT01QTEVURV9XSVRIKCJzdG9wIiwgImlnbm9yZSIsICJzZXRfbnVsbCIpOwog CiAJLyogQ29tcGxldGUgQ09QWSA8c3RoPiBGUk9NIFtQUk9HUkFNXSBmaWxlbmFtZSBXSVRIIChM T0dfVkVSQk9TSVRZICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQ09QWXxcXGNvcHkiLCBNYXRjaEFu eSwgIkZST00iLCBNYXRjaEFueUV4Y2VwdCgiUFJPR1JBTSIpLCAiV0lUSCIsICIoIiwgIkxPR19W RVJCT1NJVFkiKSB8fApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29weS5oIGIv c3JjL2luY2x1ZGUvY29tbWFuZHMvY29weS5oCmluZGV4IDU0MTE3NmUxOTgwLi5kYTM2MjIwMjhl NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29weS5oCisrKyBiL3NyYy9pbmNs dWRlL2NvbW1hbmRzL2NvcHkuaApAQCAtMzUsNiArMzUsNyBAQCB0eXBlZGVmIGVudW0gQ29weU9u RXJyb3JDaG9pY2UKIHsKIAlDT1BZX09OX0VSUk9SX1NUT1AgPSAwLAkJLyogaW1tZWRpYXRlbHkg dGhyb3cgZXJyb3JzLCBkZWZhdWx0ICovCiAJQ09QWV9PTl9FUlJPUl9JR05PUkUsCQkvKiBpZ25v cmUgZXJyb3JzICovCisJQ09QWV9PTl9FUlJPUl9TRVRfTlVMTCwJCS8qIHNldCBlcnJvciBmaWVs ZCB0byBudWxsICovCiB9IENvcHlPbkVycm9yQ2hvaWNlOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvY29tbWFuZHMvY29weWZyb21faW50ZXJuYWwuaCBiL3NyYy9pbmNsdWRlL2NvbW1h bmRzL2NvcHlmcm9tX2ludGVybmFsLmgKaW5kZXggYzhiMjJhZjIyZDguLmE2MDZhMzhjYzIzIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5ZnJvbV9pbnRlcm5hbC5oCisrKyBi L3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvcHlmcm9tX2ludGVybmFsLmgKQEAgLTEwOCw2ICsxMDgs MTMgQEAgdHlwZWRlZiBzdHJ1Y3QgQ29weUZyb21TdGF0ZURhdGEKIAkJCQkJCQkJICogYXR0ICov CiAJYm9vbAkgICAqZGVmYXVsdHM7CQkvKiBpZiBERUZBVUxUIG1hcmtlciB3YXMgZm91bmQgZm9y CiAJCQkJCQkJCSAqIGNvcnJlc3BvbmRpbmcgYXR0ICovCisJLyoKKwkgKiBTZXQgdG8gdHJ1ZSBp ZiB0aGUgY29ycmVzcG9uZGluZyBhdHRyaWJ1dGUncyBkYXRhIHR5cGUgaXMgYSBkb21haW4gd2l0 aAorCSAqIGNvbnN0cmFpbnRzLiAgVGhpcyBmaWVsZCBpcyB1c3VhbGx5IE5VTEwsIGV4Y2VwdCB3 aGVuIE9OX0VSUk9SIGlzIHNldCB0bworCSAqIFNFVF9OVUxMLgorCSAqLworCWJvb2wJICAgKmRv bWFpbl93aXRoX2NvbnN0cmFpbnQ7CisKIAlib29sCQl2b2xhdGlsZV9kZWZleHByczsJLyogaXMg YW55IG9mIGRlZmV4cHJzIHZvbGF0aWxlPyAqLwogCUxpc3QJICAgKnJhbmdlX3RhYmxlOwkvKiBz aW5nbGUgZWxlbWVudCBsaXN0IG9mIFJhbmdlVGJsRW50cnkgKi8KIAlMaXN0CSAgICpydGVwZXJt aW5mb3M7CS8qIHNpbmdsZSBlbGVtZW50IGxpc3Qgb2YgUlRFUGVybWlzc2lvbkluZm8gKi8KZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQKaW5kZXggZjNmZGNlMjM0NTkuLjE2ZTcwY2NiODEz IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dApAQCAtODEsNiArODEsMTAgQEAgQ09Q WSB4IGZyb20gc3RkaW4gKG9uX2Vycm9yIGlnbm9yZSwgb25fZXJyb3IgaWdub3JlKTsKIEVSUk9S OiAgY29uZmxpY3Rpbmcgb3IgcmVkdW5kYW50IG9wdGlvbnMKIExJTkUgMTogQ09QWSB4IGZyb20g c3RkaW4gKG9uX2Vycm9yIGlnbm9yZSwgb25fZXJyb3IgaWdub3JlKTsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorQ09QWSB4IGZyb20gc3RkaW4gKG9uX2Vy cm9yIHNldF9udWxsLCBvbl9lcnJvciBzZXRfbnVsbCk7CitFUlJPUjogIGNvbmZsaWN0aW5nIG9y IHJlZHVuZGFudCBvcHRpb25zCitMSU5FIDE6IENPUFkgeCBmcm9tIHN0ZGluIChvbl9lcnJvciBz ZXRfbnVsbCwgb25fZXJyb3Igc2V0X251bGwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KIENPUFkgeCBmcm9tIHN0ZGluIChsb2dfdmVyYm9zaXR5IGRl ZmF1bHQsIGxvZ192ZXJib3NpdHkgdmVyYm9zZSk7CiBFUlJPUjogIGNvbmZsaWN0aW5nIG9yIHJl ZHVuZGFudCBvcHRpb25zCiBMSU5FIDE6IENPUFkgeCBmcm9tIHN0ZGluIChsb2dfdmVyYm9zaXR5 IGRlZmF1bHQsIGxvZ192ZXJib3NpdHkgdmVyYi4uLgpAQCAtOTIsNiArOTYsMTAgQEAgQ09QWSB4 IGZyb20gc3RkaW4gKGZvcm1hdCBCSU5BUlksIG51bGwgJ3gnKTsKIEVSUk9SOiAgY2Fubm90IHNw ZWNpZnkgTlVMTCBpbiBCSU5BUlkgbW9kZQogQ09QWSB4IGZyb20gc3RkaW4gKGZvcm1hdCBCSU5B UlksIG9uX2Vycm9yIGlnbm9yZSk7CiBFUlJPUjogIG9ubHkgT05fRVJST1IgU1RPUCBpcyBhbGxv d2VkIGluIEJJTkFSWSBtb2RlCitDT1BZIHggZnJvbSBzdGRpbiAoZm9ybWF0IEJJTkFSWSwgb25f ZXJyb3Igc2V0X251bGwpOworRVJST1I6ICBvbmx5IE9OX0VSUk9SIFNUT1AgaXMgYWxsb3dlZCBp biBCSU5BUlkgbW9kZQorQ09QWSB4IGZyb20gc3RkaW4gKG9uX2Vycm9yIHNldF9udWxsLCByZWpl Y3RfbGltaXQgMik7CitFUlJPUjogIENPUFkgUkVKRUNUX0xJTUlUIHJlcXVpcmVzIE9OX0VSUk9S IHRvIGJlIHNldCB0byBJR05PUkUKIENPUFkgeCBmcm9tIHN0ZGluIChvbl9lcnJvciB1bnN1cHBv cnRlZCk7CiBFUlJPUjogIENPUFkgT05fRVJST1IgInVuc3VwcG9ydGVkIiBub3QgcmVjb2duaXpl ZAogTElORSAxOiBDT1BZIHggZnJvbSBzdGRpbiAob25fZXJyb3IgdW5zdXBwb3J0ZWQpOwpAQCAt MTI0LDYgKzEzMiwxMCBAQCBDT1BZIHggdG8gc3Rkb3V0IChmb3JtYXQgQklOQVJZLCBvbl9lcnJv ciB1bnN1cHBvcnRlZCk7CiBFUlJPUjogIENPUFkgT05fRVJST1IgY2Fubm90IGJlIHVzZWQgd2l0 aCBDT1BZIFRPCiBMSU5FIDE6IENPUFkgeCB0byBzdGRvdXQgKGZvcm1hdCBCSU5BUlksIG9uX2Vy cm9yIHVuc3VwcG9ydGVkKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgorQ09QWSB4IHRvIHN0ZG91dCAob25fZXJyb3Igc2V0X251bGwpOworRVJST1I6ICBDT1BZ IE9OX0VSUk9SIGNhbm5vdCBiZSB1c2VkIHdpdGggQ09QWSBUTworTElORSAxOiBDT1BZIHggdG8g c3Rkb3V0IChvbl9lcnJvciBzZXRfbnVsbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIF4K IENPUFkgeCBmcm9tIHN0ZGluIChsb2dfdmVyYm9zaXR5IHVuc3VwcG9ydGVkKTsKIEVSUk9SOiAg Q09QWSBMT0dfVkVSQk9TSVRZICJ1bnN1cHBvcnRlZCIgbm90IHJlY29nbml6ZWQKIExJTkUgMTog Q09QWSB4IGZyb20gc3RkaW4gKGxvZ192ZXJib3NpdHkgdW5zdXBwb3J0ZWQpOwpAQCAtNzc2LDYg Kzc4OCw0NiBAQCBDT05URVhUOiAgQ09QWSBjaGVja19pZ25fZXJyCiBOT1RJQ0U6ICBza2lwcGlu ZyByb3cgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkgYXQgbGluZSA4IGZvciBjb2x1 bW4gImsiOiAiYSIKIENPTlRFWFQ6ICBDT1BZIGNoZWNrX2lnbl9lcnIKIE5PVElDRTogIDYgcm93 cyB3ZXJlIHNraXBwZWQgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkKK0NSRUFURSBE T01BSU4gZF9pbnRfbm90X251bGwgQVMgSU5UIE5PVCBOVUxMIENIRUNLKHZhbHVlID4gMCk7CitD UkVBVEUgRE9NQUlOIGRfaW50X3Bvc2l0aXZlX21heWJlX251bGwgQVMgSU5UIENIRUNLKHZhbHVl ID4gMCk7CitDUkVBVEUgVEFCTEUgdF9vbl9lcnJvcl9udWxsIChhIGRfaW50X25vdF9udWxsLCBi IGRfaW50X3Bvc2l0aXZlX21heWJlX251bGwsIGMgSU5UKTsKK1xwc2V0IG51bGwgTlVMTAorQ09Q WSB0X29uX2Vycm9yX251bGwgRlJPTSBTVERJTiBXSVRIIChvbl9lcnJvciBzZXRfbnVsbCk7IC0t ZmFpbAorRVJST1I6ICBkb21haW4gZF9pbnRfbm90X251bGwgZG9lcyBub3QgYWxsb3cgbnVsbCB2 YWx1ZXMKK0NPTlRFWFQ6ICBDT1BZIHRfb25fZXJyb3JfbnVsbCwgbGluZSAxLCBjb2x1bW4gYTog bnVsbCBpbnB1dAorQ09QWSB0X29uX2Vycm9yX251bGwgRlJPTSBTVERJTiBXSVRIIChvbl9lcnJv ciBzZXRfbnVsbCk7IC0tZmFpbAorRVJST1I6ICBpbnZhbGlkIGlucHV0IHZhbHVlIGZvciBkb21h aW4gZF9pbnRfbm90X251bGw6ICJzcyIKK0NPTlRFWFQ6ICBDT1BZIHRfb25fZXJyb3JfbnVsbCwg bGluZSAxLCBjb2x1bW4gYTogInNzIgorQ09QWSB0X29uX2Vycm9yX251bGwgRlJPTSBTVERJTiBX SVRIIChvbl9lcnJvciBzZXRfbnVsbCk7IC0tZmFpbAorRVJST1I6ICBpbnZhbGlkIGlucHV0IHZh bHVlIGZvciBkb21haW4gZF9pbnRfbm90X251bGw6ICItMSIKK0NPTlRFWFQ6ICBDT1BZIHRfb25f ZXJyb3JfbnVsbCwgbGluZSAxLCBjb2x1bW4gYTogIi0xIgorLS1mYWlsLCBsZXNzIGRhdGEuCitD T1BZIHRfb25fZXJyb3JfbnVsbCBGUk9NIFNURElOIFdJVEggKGRlbGltaXRlciAnLCcsIG9uX2Vy cm9yIHNldF9udWxsKTsKK0VSUk9SOiAgbWlzc2luZyBkYXRhIGZvciBjb2x1bW4gImMiCitDT05U RVhUOiAgQ09QWSB0X29uX2Vycm9yX251bGwsIGxpbmUgMTogIjEsMSIKKy0tZmFpbCwgZXh0cmEg ZGF0YS4KK0NPUFkgdF9vbl9lcnJvcl9udWxsIEZST00gU1RESU4gV0lUSCAoZGVsaW1pdGVyICcs Jywgb25fZXJyb3Igc2V0X251bGwpOworRVJST1I6ICBleHRyYSBkYXRhIGFmdGVyIGxhc3QgZXhw ZWN0ZWQgY29sdW1uCitDT05URVhUOiAgQ09QWSB0X29uX2Vycm9yX251bGwsIGxpbmUgMTogIjEs MiwzLDQiCitDT1BZIHRfb25fZXJyb3JfbnVsbCBGUk9NIFNURElOIFdJVEggKG9uX2Vycm9yIHNl dF9udWxsLCBsb2dfdmVyYm9zaXR5IHZlcmJvc2UpOyAtLW9rCitOT1RJQ0U6ICBzZXR0aW5nIHRv IG51bGwgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkgYXQgbGluZSAxIGZvciBjb2x1 bW4gImIiOiAieDEiCitDT05URVhUOiAgQ09QWSB0X29uX2Vycm9yX251bGwKK05PVElDRTogIHNl dHRpbmcgdG8gbnVsbCBkdWUgdG8gZGF0YSB0eXBlIGluY29tcGF0aWJpbGl0eSBhdCBsaW5lIDEg Zm9yIGNvbHVtbiAiYyI6ICJ5eCIKK0NPTlRFWFQ6ICBDT1BZIHRfb25fZXJyb3JfbnVsbAorTk9U SUNFOiAgc2V0dGluZyB0byBudWxsIGR1ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRpYmlsaXR5IGF0 IGxpbmUgMiBmb3IgY29sdW1uICJiIjogInp4IgorQ09OVEVYVDogIENPUFkgdF9vbl9lcnJvcl9u dWxsCitOT1RJQ0U6ICBzZXR0aW5nIHRvIG51bGwgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGli aWxpdHkgYXQgbGluZSAzIGZvciBjb2x1bW4gImMiOiAiZWEiCitDT05URVhUOiAgQ09QWSB0X29u X2Vycm9yX251bGwKK05PVElDRTogIGludmFsaWQgdmFsdWVzIGluIDMgcm93cyB3ZXJlIHJlcGxh Y2VkIHdpdGggbnVsbCBkdWUgdG8gZGF0YSB0eXBlIGluY29tcGF0aWJpbGl0eQorU0VMRUNUICog RlJPTSB0X29uX2Vycm9yX251bGw7CisgYSAgfCAgYiAgIHwgIGMgICAKKy0tLS0rLS0tLS0tKy0t LS0tLQorIDEwIHwgTlVMTCB8IE5VTEwKKyAxMSB8IE5VTEwgfCAgIDEyCisgMTMgfCAgIDE0IHwg TlVMTAorKDMgcm93cykKKworXHBzZXQgbnVsbCAnJwogLS0gdGVzdHMgZm9yIG9uX2Vycm9yIG9w dGlvbiB3aXRoIGxvZ192ZXJib3NpdHkgYW5kIG51bGwgY29uc3RyYWludCB2aWEgZG9tYWluCiBD UkVBVEUgRE9NQUlOIGRjaGVja19pZ25fZXJyMiB2YXJjaGFyKDE1KSBOT1QgTlVMTDsKIENSRUFU RSBUQUJMRSBjaGVja19pZ25fZXJyMiAobiBpbnQsIG0gaW50W10sIGsgaW50LCBsIGRjaGVja19p Z25fZXJyMik7CkBAIC04MzUsNiArODg3LDkgQEAgRFJPUCBWSUVXIGluc3RlYWRfb2ZfaW5zZXJ0 X3RibF92aWV3OwogRFJPUCBWSUVXIGluc3RlYWRfb2ZfaW5zZXJ0X3RibF92aWV3XzI7CiBEUk9Q IEZVTkNUSU9OIGZ1bl9pbnN0ZWFkX29mX2luc2VydF90YmwoKTsKIERST1AgVEFCTEUgY2hlY2tf aWduX2VycjsKK0RST1AgVEFCTEUgdF9vbl9lcnJvcl9udWxsOworRFJPUCBET01BSU4gZF9pbnRf bm90X251bGw7CitEUk9QIERPTUFJTiBkX2ludF9wb3NpdGl2ZV9tYXliZV9udWxsOwogRFJPUCBU QUJMRSBjaGVja19pZ25fZXJyMjsKIERST1AgRE9NQUlOIGRjaGVja19pZ25fZXJyMjsKIERST1Ag VEFCTEUgaGFyZF9lcnI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb3B5Mi5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb3B5Mi5zcWwKaW5kZXggY2VmNDU4NjhkYjUuLjQ5 MjAwY2YwNjRkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb3B5Mi5zcWwKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29weTIuc3FsCkBAIC02NywxMiArNjcsMTUgQEAgQ09Q WSB4IGZyb20gc3RkaW4gKGZvcmNlX251bGwgKGEpLCBmb3JjZV9udWxsIChiKSk7CiBDT1BZIHgg ZnJvbSBzdGRpbiAoY29udmVydF9zZWxlY3RpdmVseSAoYSksIGNvbnZlcnRfc2VsZWN0aXZlbHkg KGIpKTsKIENPUFkgeCBmcm9tIHN0ZGluIChlbmNvZGluZyAnc3FsX2FzY2lpJywgZW5jb2Rpbmcg J3NxbF9hc2NpaScpOwogQ09QWSB4IGZyb20gc3RkaW4gKG9uX2Vycm9yIGlnbm9yZSwgb25fZXJy b3IgaWdub3JlKTsKK0NPUFkgeCBmcm9tIHN0ZGluIChvbl9lcnJvciBzZXRfbnVsbCwgb25fZXJy b3Igc2V0X251bGwpOwogQ09QWSB4IGZyb20gc3RkaW4gKGxvZ192ZXJib3NpdHkgZGVmYXVsdCwg bG9nX3ZlcmJvc2l0eSB2ZXJib3NlKTsKIAogLS0gaW5jb3JyZWN0IG9wdGlvbnMKIENPUFkgeCBm cm9tIHN0ZGluIChmb3JtYXQgQklOQVJZLCBkZWxpbWl0ZXIgJywnKTsKIENPUFkgeCBmcm9tIHN0 ZGluIChmb3JtYXQgQklOQVJZLCBudWxsICd4Jyk7CiBDT1BZIHggZnJvbSBzdGRpbiAoZm9ybWF0 IEJJTkFSWSwgb25fZXJyb3IgaWdub3JlKTsKK0NPUFkgeCBmcm9tIHN0ZGluIChmb3JtYXQgQklO QVJZLCBvbl9lcnJvciBzZXRfbnVsbCk7CitDT1BZIHggZnJvbSBzdGRpbiAob25fZXJyb3Igc2V0 X251bGwsIHJlamVjdF9saW1pdCAyKTsKIENPUFkgeCBmcm9tIHN0ZGluIChvbl9lcnJvciB1bnN1 cHBvcnRlZCk7CiBDT1BZIHggZnJvbSBzdGRpbiAoZm9ybWF0IFRFWFQsIGZvcmNlX3F1b3RlKGEp KTsKIENPUFkgeCBmcm9tIHN0ZGluIChmb3JtYXQgVEVYVCwgZm9yY2VfcXVvdGUgKik7CkBAIC04 Nyw2ICs5MCw3IEBAIENPUFkgeCBmcm9tIHN0ZGluIChmb3JtYXQgVEVYVCwgZm9yY2VfbnVsbCAq KTsKIENPUFkgeCB0byBzdGRvdXQgKGZvcm1hdCBDU1YsIGZvcmNlX251bGwoYSkpOwogQ09QWSB4 IHRvIHN0ZG91dCAoZm9ybWF0IENTViwgZm9yY2VfbnVsbCAqKTsKIENPUFkgeCB0byBzdGRvdXQg KGZvcm1hdCBCSU5BUlksIG9uX2Vycm9yIHVuc3VwcG9ydGVkKTsKK0NPUFkgeCB0byBzdGRvdXQg KG9uX2Vycm9yIHNldF9udWxsKTsKIENPUFkgeCBmcm9tIHN0ZGluIChsb2dfdmVyYm9zaXR5IHVu c3VwcG9ydGVkKTsKIENPUFkgeCBmcm9tIHN0ZGluIHdpdGggKHJlamVjdF9saW1pdCAxKTsKIENP UFkgeCBmcm9tIHN0ZGluIHdpdGggKG9uX2Vycm9yIGlnbm9yZSwgcmVqZWN0X2xpbWl0IDApOwpA QCAtNTM3LDYgKzU0MSw0MiBAQCBhCXsyfQkyCiA4CXs4fQk4CiBcLgogCitDUkVBVEUgRE9NQUlO IGRfaW50X25vdF9udWxsIEFTIElOVCBOT1QgTlVMTCBDSEVDSyh2YWx1ZSA+IDApOworQ1JFQVRF IERPTUFJTiBkX2ludF9wb3NpdGl2ZV9tYXliZV9udWxsIEFTIElOVCBDSEVDSyh2YWx1ZSA+IDAp OworQ1JFQVRFIFRBQkxFIHRfb25fZXJyb3JfbnVsbCAoYSBkX2ludF9ub3RfbnVsbCwgYiBkX2lu dF9wb3NpdGl2ZV9tYXliZV9udWxsLCBjIElOVCk7CisKK1xwc2V0IG51bGwgTlVMTAorQ09QWSB0 X29uX2Vycm9yX251bGwgRlJPTSBTVERJTiBXSVRIIChvbl9lcnJvciBzZXRfbnVsbCk7IC0tZmFp bAorXE4JMTEJMTMKK1wuCisKK0NPUFkgdF9vbl9lcnJvcl9udWxsIEZST00gU1RESU4gV0lUSCAo b25fZXJyb3Igc2V0X251bGwpOyAtLWZhaWwKK3NzCTExCTE0CitcLgorCitDT1BZIHRfb25fZXJy b3JfbnVsbCBGUk9NIFNURElOIFdJVEggKG9uX2Vycm9yIHNldF9udWxsKTsgLS1mYWlsCistMQkx MQkxMworXC4KKworLS1mYWlsLCBsZXNzIGRhdGEuCitDT1BZIHRfb25fZXJyb3JfbnVsbCBGUk9N IFNURElOIFdJVEggKGRlbGltaXRlciAnLCcsIG9uX2Vycm9yIHNldF9udWxsKTsKKzEsMQorXC4K Ky0tZmFpbCwgZXh0cmEgZGF0YS4KK0NPUFkgdF9vbl9lcnJvcl9udWxsIEZST00gU1RESU4gV0lU SCAoZGVsaW1pdGVyICcsJywgb25fZXJyb3Igc2V0X251bGwpOworMSwyLDMsNAorXC4KKworQ09Q WSB0X29uX2Vycm9yX251bGwgRlJPTSBTVERJTiBXSVRIIChvbl9lcnJvciBzZXRfbnVsbCwgbG9n X3ZlcmJvc2l0eSB2ZXJib3NlKTsgLS1vaworMTAJeDEJeXgKKzExCXp4CTEyCisxMwkxNAllYQor XC4KKworU0VMRUNUICogRlJPTSB0X29uX2Vycm9yX251bGw7CisKK1xwc2V0IG51bGwgJycKKwog LS0gdGVzdHMgZm9yIG9uX2Vycm9yIG9wdGlvbiB3aXRoIGxvZ192ZXJib3NpdHkgYW5kIG51bGwg Y29uc3RyYWludCB2aWEgZG9tYWluCiBDUkVBVEUgRE9NQUlOIGRjaGVja19pZ25fZXJyMiB2YXJj aGFyKDE1KSBOT1QgTlVMTDsKIENSRUFURSBUQUJMRSBjaGVja19pZ25fZXJyMiAobiBpbnQsIG0g aW50W10sIGsgaW50LCBsIGRjaGVja19pZ25fZXJyMik7CkBAIC02MDYsNiArNjQ2LDkgQEAgRFJP UCBWSUVXIGluc3RlYWRfb2ZfaW5zZXJ0X3RibF92aWV3OwogRFJPUCBWSUVXIGluc3RlYWRfb2Zf aW5zZXJ0X3RibF92aWV3XzI7CiBEUk9QIEZVTkNUSU9OIGZ1bl9pbnN0ZWFkX29mX2luc2VydF90 YmwoKTsKIERST1AgVEFCTEUgY2hlY2tfaWduX2VycjsKK0RST1AgVEFCTEUgdF9vbl9lcnJvcl9u dWxsOworRFJPUCBET01BSU4gZF9pbnRfbm90X251bGw7CitEUk9QIERPTUFJTiBkX2ludF9wb3Np dGl2ZV9tYXliZV9udWxsOwogRFJPUCBUQUJMRSBjaGVja19pZ25fZXJyMjsKIERST1AgRE9NQUlO IGRjaGVja19pZ25fZXJyMjsKIERST1AgVEFCTEUgaGFyZF9lcnI7Ci0tIAoyLjM0LjEKCg== --000000000000690f2206433aeafd--