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 1viSm6-006zna-1E for pgsql-hackers@arkaria.postgresql.org; Wed, 21 Jan 2026 07:37:11 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1viSm4-005Sbv-21 for pgsql-hackers@arkaria.postgresql.org; Wed, 21 Jan 2026 07:37:08 +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 1viSm4-005Sbe-0D for pgsql-hackers@lists.postgresql.org; Wed, 21 Jan 2026 07:37:08 +0000 Received: from mail-vs1-xe36.google.com ([2607:f8b0:4864:20::e36]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1viSm0-001YRu-1Z for pgsql-hackers@lists.postgresql.org; Wed, 21 Jan 2026 07:37:07 +0000 Received: by mail-vs1-xe36.google.com with SMTP id ada2fe7eead31-5eb8f9be588so5473966137.3 for ; Tue, 20 Jan 2026 23:37:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1768981024; cv=none; d=google.com; s=arc-20240605; b=Pj1aouTZB+rfzK3MwJLrtB2HG+tM96s73Nh0DhYGbhfpmxwmy80BwXNTALKgfSSsng ultc9SkW/bpDv7nERg3csgpBCCI8ynFYI1Rr7+pPk3XJt1RuU/8TKKpsNLFGi2x9efPj iqREdV4QEeNR/glckYkyA2GTMikp/WKtCDCZ9uVzzQp6tMuTTIWqrEb0lPvTy9X6lAa+ baJ6PfsY9xAgg14N7dxu7WqS6i4wmQ79Rg003qqzU2Ym79LlaI8vjrh5lTdvfVS1N2is JqyxcRne8bSwbdrCMir2Gv/VP4NK1g+Hp0kDKwsZM47GICf08yFEs/UCAWxD4J9KmlIq rx0g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=oQ29FrJZ5z7D+3MbBXOEMmVWopeZqyinI2CpcjLsrkQ=; fh=KGArQ+y5ioqFYtfV55GX8rt9+yoarzdcXmesrnypqgs=; b=dtljn3Kt1aGBUwCOCRqY4/ArmFbSMQmPAL/0B3iyeJq7RvqzzXw3A16GXgaLgofCgW hynrI7wbvpeQ/IEeuDhhxS1IykgrYuUrh9vwQaeuF1WPIIGK6033SzKMsUube9TCXC9S BE8wmJCR9hlv81DZ47225KWVt7vCml2Q9vXpjlGsVPZ6FJHr0wjbTuIgqkRDQGAzmhMu 9/SyV5kiMxp4LWPQV9KvuIWYfXy2g6fwQMP/eXUQzp6CRtL/NkC2z1Tv6ZqKnPqzGY0b Mxzyqtew2XeTghLQRhePkQ1II5LxSMjl6tHVEMLWDJ1baSsxPug5ffaurEXGfMpkdh5R EeaA==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768981024; x=1769585824; 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=oQ29FrJZ5z7D+3MbBXOEMmVWopeZqyinI2CpcjLsrkQ=; b=j4OPP8DVKfvaVa6Uj+ArfG5Of68fTGBgcSgTKB+vR1znnk9zJXDcHwNhD5l8KQV8Fs Xj/xYrv7yvG5ezu/ikkWjELXaVKTmpY7LAR7lZyaDCtURwns4npIvGFNEvcLND6a2v9t Z3n8X5f6hYjflX2XPBx0C6cscvD2XZ8xNoTON8fyB6KMl91ZeoVNLUBHLHd8yCAe3yz/ 7qJglPrYIf4D5knmjP4w7DnI2bGp020qT4oYfBEEwY7kLe5287nNBaPkpw1CHGN2dsvb gUD+PxyR1ExoTlk5j1WB/IvTurMxWcm0QwKsAXp3aeMBph6wnPA7kdr/moEvT4aqNJIc IQvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768981024; x=1769585824; 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=oQ29FrJZ5z7D+3MbBXOEMmVWopeZqyinI2CpcjLsrkQ=; b=BShTDncA2VfBixTzkRa72DgAwHT4MdfivKdKTCNa8J9DkIz69GYr3boMnYKkEOpext aW7bAHTzj6mxPtk6FVmZt7UMcejC21WyJKEOqv4JKq5ePOjtM8uhgPHiCNGqjBicJCwh StYBiGWMJ1yDVUn0/xi+C4EygI+caA4rZbd41O51QGJa8KbYS8sDf+op+y02dm2PT6dj vJZeCoLFlhZpruV/KBURg3F2bAhh0m9xtIH++4wtf1ldqMFG9CW7VP1PysINXfcGf73k /QmlYlMyZ9CyVjedDV6nN8Kigiw5ntVV6Jap91xS800IItjTrQat2FR/0WbTz8bh1Ywv 4eUg== X-Forwarded-Encrypted: i=1; AJvYcCUD1bwnaBArHLZ1soMNJus0G6q4Nsph2E/tTCaIXK6bGbclu4Msb0YBIcFOHtdBhnnXCFKhoNAhFaIbbi1J@lists.postgresql.org X-Gm-Message-State: AOJu0YzOniqLljPHVwC85eBl4gFULN0dw69cRUDXVOGSsfgbr0ZV/IBE GUC5c6W/IeOfnM2NeNjMTK71UeaO8cD5sCbM/+mBSxOnqd1qGrgVCOBq1mSUIxGV9Pg8l5SibCI qMhxizNikOg8JHBSCBA3nYmd33zTUo+0= X-Gm-Gg: AZuq6aIRaGw2ee52hLAjGS2p/X5rUXW0UpInyDwjKymFNiLo4e2bS3rGC2BOev/Q1Ob dFimradZJ2r7DKzJN6nQm43zPvunx3eQXfqLcmjBTGhVwUGexXv9vV8kDGkIhwz/uqtZjbuUVav f8iAahwy2u6bHwfccIa3URSkKNZAFh62ijYQOmywsIp61M7EPMG88YUxZMFBBXbWJ6tRAQEyr7t IYMrGKSpLv+Hl4fyZl+EXKO7GdxcstGBH2K+mxsTlPLNtgpkeQm/AsSfl3uEEaA5z8ZqJI3oTKQ L2qVssFpF6RFCTDxlZhQ2rTY43yuM+dLGt1+VaAj3lZd1YNt6rtfLkDM/0m1d5bFzwR+UkbY7Fc x2zdFlGTZSFpmjJQ7NFAwXPqI2gIilCnfGCKeF44tVosKWRNfIEnjnX9eeeQ60vBbae18jIrs4l Lys9IWZNWkbw== X-Received: by 2002:a05:6102:3746:b0:5ee:a44d:e77e with SMTP id ada2fe7eead31-5f1a7005471mr5941334137.15.1768981024241; Tue, 20 Jan 2026 23:37:04 -0800 (PST) MIME-Version: 1.0 References: <901967e5-e5dc-42c6-b2bf-fb3a49d7e787@gmail.com> In-Reply-To: <901967e5-e5dc-42c6-b2bf-fb3a49d7e787@gmail.com> From: jian he Date: Wed, 21 Jan 2026 15:37:00 +0800 X-Gm-Features: AZwV_Qjq3Csy0jEo0KwcH3Ly2b-ZmQo1ln0p9m9amKebf9nmRPjDPViE3433t_8 Message-ID: Subject: Re: Change COPY ... ON_ERROR ignore to ON_ERROR ignore_row To: Matheus Alcantara Cc: torikoshia , Masahiko Sawada , vignesh C , Jim Jones , Kirill Reshke , Fujii Masao , "David G. Johnston" , Yugo NAGATA , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000908f0d0648e0fdad" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000908f0d0648e0fdad Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Jan 21, 2026 at 3:55=E2=80=AFAM Matheus Alcantara wrote: > Hi, > > The patch needs a new rebase, could you please send a new version? sure. please check the attached. --000000000000908f0d0648e0fdad Content-Type: text/x-patch; charset="US-ASCII"; name="v21-0001-COPY-on_error-set_null.patch" Content-Disposition: attachment; filename="v21-0001-COPY-on_error-set_null.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mknjfls20 RnJvbSAzMDA1NmJkYjU2ZDBkOGY2MzMzM2NjYzRjYjYwODA4YWJmYTkxNjQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMjEgSmFuIDIwMjYgMTE6MjI6NDcgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MSAxLzFdIENPUFkgKG9uX2Vycm9yIHNldF9udWxsKQoKSWYgT05fRVJST1IgU0VUX05VTEwgaXMg c3BlY2lmaWVkIGR1cmluZyBDT1BZIEZST00sIGFueSBkYXRhIHR5cGUgY29udmVyc2lvbgplcnJv cnMgd2lsbCByZXN1bHQgaW4gdGhlIGFmZmVjdGVkIGNvbHVtbiBiZWluZyBzZXQgdG8gTlVMTC4g SG93ZXZlciwgY29sdW1uJ3MKbm90LW51bGwgY29uc3RyYWludHMgYXJlIHN0aWxsIGVuZm9yY2Vk LCBhdHRlbXB0aW5nIHRvIHNldCBhIE5VTEwgdmFsdWUgaW4gc3VjaApjb2x1bW5zIHdpbGwgcmFp c2UgYSBjb25zdHJhaW50IHZpb2xhdGlvbiBlcnJvci4gIFRoaXMgYXBwbGllcyB0byBjb2x1bW4g ZGF0YQp0eXBlIGlzIGEgZG9tYWluIHdpdGggYSBOT1QgTlVMTCBjb25zdHJhaW50LgoKQXV0aG9y OiBKaWFuIEhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+CkF1dGhvcjogS2lyaWxsIFJl c2hrZSA8cmVzaGtla2lyaWxsQGdtYWlsLmNvbT4KClJldmlld2VkLWJ5OgpGdWppaSBNYXNhbyA8 bWFzYW8uZnVqaWlAb3NzLm50dGRhdGEuY29tPgpKaW0gSm9uZXMgPGppbS5qb25lc0B1bmktbXVl bnN0ZXIuZGU+CiJEYXZpZCBHLiBKb2huc3RvbiIgPGRhdmlkLmcuam9obnN0b25AZ21haWwuY29t PgpZdWdvIE5BR0FUQSA8bmFnYXRhQHNyYW9zcy5jby5qcD4KdG9yaWtvc2hpYSA8dG9yaWtvc2hp YUBvc3MubnR0ZGF0YS5jb20+Ck1hc2FoaWtvIFNhd2FkYSA8c2F3YWRhLm1zaGtAZ21haWwuY29t PgpBdHN1c2hpIFRvcmlrb3NoaSA8dG9yaWtvc2hpYUBvc3MubnR0ZGF0YS5jb20+CgpkaXNjdXNz aW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBS0ZRdXdhd3kxZTZZUjRTPWoreTdwWHFnX0R3MVdC VnJndmY9QlAzZDFfYVNmZV8rUUBtYWlsLmdtYWlsLmNvbQpjb21taXRmZXN0IGVudHJ5OiBodHRw czovL2NvbW1pdGZlc3QucG9zdGdyZXNxbC5vcmcvcGF0Y2gvNDgxMAotLS0KIGRvYy9zcmMvc2dt bC9yZWYvY29weS5zZ21sICAgICAgICAgICAgICAgfCAzNSArKysrKysrLS0tCiBzcmMvYmFja2Vu ZC9jb21tYW5kcy9jb3B5LmMgICAgICAgICAgICAgIHwgIDYgKy0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL2NvcHlmcm9tLmMgICAgICAgICAgfCA0NSArKysrKysrKysrLS0tCiBzcmMvYmFja2VuZC9j b21tYW5kcy9jb3B5ZnJvbXBhcnNlLmMgICAgIHwgODUgKysrKysrKysrKysrKysrKysrKystLS0t CiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgIHwgIDIgKy0KIHNyYy9p bmNsdWRlL2NvbW1hbmRzL2NvcHkuaCAgICAgICAgICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS9j b21tYW5kcy9jb3B5ZnJvbV9pbnRlcm5hbC5oIHwgIDcgKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvY29weTIub3V0ICAgICAgfCA1NSArKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2NvcHkyLnNxbCAgICAgICAgICAgfCA0MyArKysrKysrKysrKysKIDkgZmlsZXMgY2hh bmdlZCwgMjQ0IGluc2VydGlvbnMoKyksIDM1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9yZWYvY29weS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwKaW5k ZXggNTNiMGVhOGY1NzMuLjRkMDM5YjY2MjIxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVm L2NvcHkuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NvcHkuc2dtbApAQCAtNDEzLDIyICs0 MTMsMzggQEAgQ09QWSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1l PC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZQogICAgICAgaW5wdXQgdmFsdWUgaW50byBp dHMgZGF0YSB0eXBlLgogICAgICAgQW4gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVy cm9yX2FjdGlvbjwvcmVwbGFjZWFibGU+IHZhbHVlIG9mCiAgICAgICA8bGl0ZXJhbD5zdG9wPC9s aXRlcmFsPiBtZWFucyBmYWlsIHRoZSBjb21tYW5kLCB3aGlsZQotICAgICAgPGxpdGVyYWw+aWdu b3JlPC9saXRlcmFsPiBtZWFucyBkaXNjYXJkIHRoZSBpbnB1dCByb3cgYW5kIGNvbnRpbnVlIHdp dGggdGhlIG5leHQgb25lLgorICAgICAgPGxpdGVyYWw+aWdub3JlPC9saXRlcmFsPiBtZWFucyBk aXNjYXJkIHRoZSBpbnB1dCByb3cgYW5kIGNvbnRpbnVlIHdpdGggdGhlIG5leHQgb25lLAorICAg ICAgYW5kIDxsaXRlcmFsPnNldF9udWxsPC9saXRlcmFsPiBtZWFucyByZXBsYWNlIGNvbHVtbiBj b250YWluaW5nIGludmFsaWQKKyAgICAgIGlucHV0IHZhbHVlIHdpdGggPGxpdGVyYWw+TlVMTDwv bGl0ZXJhbD4gYW5kIGNvbnRpbnVlIHRvIHRoZSBuZXh0IGZpZWxkLgogICAgICAgVGhlIGRlZmF1 bHQgaXMgPGxpdGVyYWw+c3RvcDwvbGl0ZXJhbD4uCiAgICAgIDwvcGFyYT4KICAgICAgPHBhcmE+ Ci0gICAgICBUaGUgPGxpdGVyYWw+aWdub3JlPC9saXRlcmFsPiBvcHRpb24gaXMgYXBwbGljYWJs ZSBvbmx5IGZvciA8Y29tbWFuZD5DT1BZIEZST008L2NvbW1hbmQ+CisgICAgICBUaGUgPGxpdGVy YWw+aWdub3JlPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+c2V0X251bGw8L2xpdGVyYWw+CisgICAg ICBvcHRpb25zIGFyZSBhcHBsaWNhYmxlIG9ubHkgZm9yIDxjb21tYW5kPkNPUFkgRlJPTTwvY29t bWFuZD4KICAgICAgIHdoZW4gdGhlIDxsaXRlcmFsPkZPUk1BVDwvbGl0ZXJhbD4gaXMgPGxpdGVy YWw+dGV4dDwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+Y3N2PC9saXRlcmFsPi4KICAgICAgPC9wYXJh PgorCisgICAgPHBhcmE+CisgICAgICBGb3IgPGxpdGVyYWw+aWdub3JlPC9saXRlcmFsPiBvcHRp b24sIGEgPGxpdGVyYWw+Tk9USUNFPC9saXRlcmFsPiBtZXNzYWdlCisgICAgICBjb250YWluaW5n IHRoZSBpZ25vcmVkIHJvdyBjb3VudCBpcyBlbWl0dGVkIGF0IHRoZSBlbmQgb2YgdGhlIDxjb21t YW5kPkNPUFkgRlJPTTwvY29tbWFuZD4KKyAgICAgIGlmIGF0IGxlYXN0IG9uZSByb3cgd2FzIGRp c2NhcmRlZC4KKyAgICAgIEZvciA8bGl0ZXJhbD5zZXRfbnVsbDwvbGl0ZXJhbD4gb3B0aW9uLCBh IDxsaXRlcmFsPk5PVElDRTwvbGl0ZXJhbD4KKyAgICAgIG1lc3NhZ2UgaW5kaWNhdGluZyB0aGUg bnVtYmVyIG9mIHJvd3Mgd2hlcmUgaW52YWxpZCBpbnB1dCB2YWx1ZXMgd2VyZQorICAgICAgcmVw bGFjZWQgd2l0aCBudWxsIGlzIGVtaXR0ZWQgYXQgdGhlIGVuZCBvZiB0aGUgPGNvbW1hbmQ+Q09Q WSBGUk9NPC9jb21tYW5kPgorICAgICAgaWYgYXQgbGVhc3Qgb25lIHJvdyB3YXMgcmVwbGFjZWQu CisgICAgIDwvcGFyYT4KKwogICAgICA8cGFyYT4KLSAgICAgIEEgPGxpdGVyYWw+Tk9USUNFPC9s aXRlcmFsPiBtZXNzYWdlIGNvbnRhaW5pbmcgdGhlIGlnbm9yZWQgcm93IGNvdW50IGlzCi0gICAg ICBlbWl0dGVkIGF0IHRoZSBlbmQgb2YgdGhlIDxjb21tYW5kPkNPUFkgRlJPTTwvY29tbWFuZD4g aWYgYXQgbGVhc3Qgb25lCi0gICAgICByb3cgd2FzIGRpc2NhcmRlZC4gV2hlbiA8bGl0ZXJhbD5M T0dfVkVSQk9TSVRZPC9saXRlcmFsPiBvcHRpb24gaXMgc2V0IHRvCi0gICAgICA8bGl0ZXJhbD52 ZXJib3NlPC9saXRlcmFsPiwgYSA8bGl0ZXJhbD5OT1RJQ0U8L2xpdGVyYWw+IG1lc3NhZ2UKKyAg ICAgIFdoZW4gPGxpdGVyYWw+TE9HX1ZFUkJPU0lUWTwvbGl0ZXJhbD4gb3B0aW9uIGlzIHNldCB0 byA8bGl0ZXJhbD52ZXJib3NlPC9saXRlcmFsPiwKKyAgICAgIGZvciA8bGl0ZXJhbD5pZ25vcmU8 L2xpdGVyYWw+IG9wdGlvbiwgYSA8bGl0ZXJhbD5OT1RJQ0U8L2xpdGVyYWw+IG1lc3NhZ2UKICAg ICAgIGNvbnRhaW5pbmcgdGhlIGxpbmUgb2YgdGhlIGlucHV0IGZpbGUgYW5kIHRoZSBjb2x1bW4g bmFtZSB3aG9zZSBpbnB1dAotICAgICAgY29udmVyc2lvbiBoYXMgZmFpbGVkIGlzIGVtaXR0ZWQg Zm9yIGVhY2ggZGlzY2FyZGVkIHJvdy4KKyAgICAgIGNvbnZlcnNpb24gaGFzIGZhaWxlZCBpcyBl bWl0dGVkIGZvciBlYWNoIGRpc2NhcmRlZCByb3c7CisgICAgICBmb3IgPGxpdGVyYWw+c2V0X251 bGw8L2xpdGVyYWw+IG9wdGlvbiwgYSA8bGl0ZXJhbD5OT1RJQ0U8L2xpdGVyYWw+CisgICAgICBt ZXNzYWdlIGNvbnRhaW5pbmcgdGhlIGxpbmUgb2YgdGhlIGlucHV0IGZpbGUgYW5kIHRoZSBjb2x1 bW4gbmFtZSB3aGVyZQorICAgICAgdmFsdWUgd2FzIHJlcGxhY2VkIHdpdGggPGxpdGVyYWw+TlVM TDwvbGl0ZXJhbD4gZm9yIGVhY2ggaW5wdXQgY29udmVyc2lvbgorICAgICAgZmFpbHVyZS4KICAg ICAgIFdoZW4gaXQgaXMgc2V0IHRvIDxsaXRlcmFsPnNpbGVudDwvbGl0ZXJhbD4sIG5vIG1lc3Nh Z2UgaXMgZW1pdHRlZAotICAgICAgcmVnYXJkaW5nIGlnbm9yZWQgcm93cy4KKyAgICAgIHJlZ2Fy ZGluZyBpbnB1dCBjb252ZXJzaW9uIGZhaWxlZCByb3dzLgogICAgICA8L3BhcmE+CiAgICAgPC9s aXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpAQCAtNDc2LDcgKzQ5Miw4IEBAIENPUFkgeyA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsg KCA8cmVwbGFjZWFibGUKICAgICAgPC9wYXJhPgogICAgICA8cGFyYT4KICAgICAgIFRoaXMgaXMg Y3VycmVudGx5IHVzZWQgaW4gPGNvbW1hbmQ+Q09QWSBGUk9NPC9jb21tYW5kPiBjb21tYW5kIHdo ZW4KLSAgICAgIDxsaXRlcmFsPk9OX0VSUk9SPC9saXRlcmFsPiBvcHRpb24gaXMgc2V0IHRvIDxs aXRlcmFsPmlnbm9yZTwvbGl0ZXJhbD4uCisgICAgICA8bGl0ZXJhbD5PTl9FUlJPUjwvbGl0ZXJh bD4gb3B0aW9uIGlzIHNldCB0byA8bGl0ZXJhbD5pZ25vcmU8L2xpdGVyYWw+CisgICAgICBvciA8 bGl0ZXJhbD5zZXRfbnVsbDwvbGl0ZXJhbD4uCiAgICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRl bT4KICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv Y29weS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weS5jCmluZGV4IDljNTEzODRhYjkyLi5j M2ViMzE1NTZiOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weS5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHkuYwpAQCAtNDU2LDEyICs0NTYsMTQgQEAgZGVmR2V0 Q29weU9uRXJyb3JDaG9pY2UoRGVmRWxlbSAqZGVmLCBQYXJzZVN0YXRlICpwc3RhdGUsIGJvb2wg aXNfZnJvbSkKIAkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZGVmLT5sb2NhdGlvbikp KTsKIAogCS8qCi0JICogQWxsb3cgInN0b3AiLCBvciAiaWdub3JlIiB2YWx1ZXMuCisJICogQWxs b3cgInN0b3AiLCAiaWdub3JlIiwgInNldF9udWxsIiB2YWx1ZXMuCiAJICovCiAJaWYgKHBnX3N0 cmNhc2VjbXAoc3ZhbCwgInN0b3AiKSA9PSAwKQogCQlyZXR1cm4gQ09QWV9PTl9FUlJPUl9TVE9Q OwogCWlmIChwZ19zdHJjYXNlY21wKHN2YWwsICJpZ25vcmUiKSA9PSAwKQogCQlyZXR1cm4gQ09Q WV9PTl9FUlJPUl9JR05PUkU7CisJaWYgKHBnX3N0cmNhc2VjbXAoc3ZhbCwgInNldF9udWxsIikg PT0gMCkKKwkJcmV0dXJuIENPUFlfT05fRVJST1JfU0VUX05VTEw7CiAKIAllcmVwb3J0KEVSUk9S LAogCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCkBAIC05NzEs NyArOTczLDcgQEAgUHJvY2Vzc0NvcHlPcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQko ZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCiAJCQkJIGVycm1zZygib25seSBPTl9FUlJP UiBTVE9QIGlzIGFsbG93ZWQgaW4gQklOQVJZIG1vZGUiKSkpOwogCi0JaWYgKG9wdHNfb3V0LT5y ZWplY3RfbGltaXQgJiYgIW9wdHNfb3V0LT5vbl9lcnJvcikKKwlpZiAob3B0c19vdXQtPnJlamVj dF9saW1pdCAmJiBvcHRzX291dC0+b25fZXJyb3IgIT0gQ09QWV9PTl9FUlJPUl9JR05PUkUpCiAJ CWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9W QUxVRSksCiAJCS8qLSB0cmFuc2xhdG9yOiBmaXJzdCBhbmQgc2Vjb25kICVzIGFyZSB0aGUgbmFt ZXMgb2YgQ09QWSBvcHRpb24sIGUuZy4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2NvcHlmcm9tLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5jCmluZGV4IDI1ZWUy MGIyM2RiLi5mNTQxNjhmYmI3MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29w eWZyb20uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5jCkBAIC01MCw2ICs1 MCw3IEBACiAjaW5jbHVkZSAidXRpbHMvcG9ydGFsLmgiCiAjaW5jbHVkZSAidXRpbHMvcmVsLmgi CiAjaW5jbHVkZSAidXRpbHMvc25hcG1nci5oIgorI2luY2x1ZGUgInV0aWxzL3R5cGNhY2hlLmgi CiAKIC8qCiAgKiBObyBtb3JlIHRoYW4gdGhpcyBtYW55IHR1cGxlcyBwZXIgQ29weU11bHRpSW5z ZXJ0QnVmZmVyCkBAIC0xNDY3LDE0ICsxNDY4LDIyIEBAIENvcHlGcm9tKENvcHlGcm9tU3RhdGUg Y3N0YXRlKQogCS8qIERvbmUsIGNsZWFuIHVwICovCiAJZXJyb3JfY29udGV4dF9zdGFjayA9IGVy cmNhbGxiYWNrLnByZXZpb3VzOwogCi0JaWYgKGNzdGF0ZS0+b3B0cy5vbl9lcnJvciAhPSBDT1BZ X09OX0VSUk9SX1NUT1AgJiYKLQkJY3N0YXRlLT5udW1fZXJyb3JzID4gMCAmJgorCWlmIChjc3Rh dGUtPm51bV9lcnJvcnMgPiAwICYmCiAJCWNzdGF0ZS0+b3B0cy5sb2dfdmVyYm9zaXR5ID49IENP UFlfTE9HX1ZFUkJPU0lUWV9ERUZBVUxUKQotCQllcmVwb3J0KE5PVElDRSwKLQkJCQllcnJtc2df cGx1cmFsKCIlIiBQUkl1NjQgIiByb3cgd2FzIHNraXBwZWQgZHVlIHRvIGRhdGEgdHlwZSBpbmNv bXBhdGliaWxpdHkiLAotCQkJCQkJCSAgIiUiIFBSSXU2NCAiIHJvd3Mgd2VyZSBza2lwcGVkIGR1 ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRpYmlsaXR5IiwKLQkJCQkJCQkgIGNzdGF0ZS0+bnVtX2Vy cm9ycywKLQkJCQkJCQkgIGNzdGF0ZS0+bnVtX2Vycm9ycykpOworCXsKKwkJaWYgKGNzdGF0ZS0+ b3B0cy5vbl9lcnJvciA9PSBDT1BZX09OX0VSUk9SX0lHTk9SRSkKKwkJCWVyZXBvcnQoTk9USUNF LAorCQkJCQllcnJtc2dfcGx1cmFsKCIlIiBQUkl1NjQgIiByb3cgd2FzIHNraXBwZWQgZHVlIHRv IGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkiLAorCQkJCQkJCQkgICIlIiBQUkl1NjQgIiByb3dz IHdlcmUgc2tpcHBlZCBkdWUgdG8gZGF0YSB0eXBlIGluY29tcGF0aWJpbGl0eSIsCisJCQkJCQkJ CSAgY3N0YXRlLT5udW1fZXJyb3JzLAorCQkJCQkJCQkgIGNzdGF0ZS0+bnVtX2Vycm9ycykpOwor CQllbHNlIGlmIChjc3RhdGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJPUl9TRVRfTlVM TCkKKwkJCWVyZXBvcnQoTk9USUNFLAorCQkJCQllcnJtc2dfcGx1cmFsKCJpbnZhbGlkIHZhbHVl cyBpbiAlIiBQUkl1NjQgIiByb3cgd2FzIHJlcGxhY2VkIHdpdGggbnVsbCBkdWUgdG8gZGF0YSB0 eXBlIGluY29tcGF0aWJpbGl0eSIsCisJCQkJCQkJCSAgImludmFsaWQgdmFsdWVzIGluICUiIFBS SXU2NCAiIHJvd3Mgd2VyZSByZXBsYWNlZCB3aXRoIG51bGwgZHVlIHRvIGRhdGEgdHlwZSBpbmNv bXBhdGliaWxpdHkiLAorCQkJCQkJCQkgIGNzdGF0ZS0+bnVtX2Vycm9ycywKKwkJCQkJCQkJICBj c3RhdGUtPm51bV9lcnJvcnMpKTsKKwl9CiAKIAlpZiAoYmlzdGF0ZSAhPSBOVUxMKQogCQlGcmVl QnVsa0luc2VydFN0YXRlKGJpc3RhdGUpOwpAQCAtMTYyMiwxNSArMTYzMSwzMSBAQCBCZWdpbkNv cHlGcm9tKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJY3N0YXRlLT5lc2NvbnRleHQtPmVycm9yX29j Y3VycmVkID0gZmFsc2U7CiAKIAkJLyoKLQkJICogQ3VycmVudGx5IHdlIG9ubHkgc3VwcG9ydCBD T1BZX09OX0VSUk9SX0lHTk9SRS4gV2UnbGwgYWRkIG90aGVyCi0JCSAqIG9wdGlvbnMgbGF0ZXIK KwkJICogQ3VycmVudGx5IHdlIG9ubHkgc3VwcG9ydCBDT1BZX09OX0VSUk9SX0lHTk9SRSwKKwkJ ICogQ09QWV9PTl9FUlJPUl9TRVRfTlVMTC4gV2UnbGwgYWRkIG90aGVyIG9wdGlvbnMgbGF0ZXIK IAkJICovCi0JCWlmIChjc3RhdGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJPUl9JR05P UkUpCisJCWlmIChjc3RhdGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJPUl9JR05PUkUg fHwKKwkJCWNzdGF0ZS0+b3B0cy5vbl9lcnJvciA9PSBDT1BZX09OX0VSUk9SX1NFVF9OVUxMKQog CQkJY3N0YXRlLT5lc2NvbnRleHQtPmRldGFpbHNfd2FudGVkID0gZmFsc2U7CiAJfQogCWVsc2UK IAkJY3N0YXRlLT5lc2NvbnRleHQgPSBOVUxMOwogCisJaWYgKGNzdGF0ZS0+b3B0cy5vbl9lcnJv ciA9PSBDT1BZX09OX0VSUk9SX1NFVF9OVUxMKQorCXsKKwkJaW50CQkJYXR0cl9jb3VudCA9IGxp c3RfbGVuZ3RoKGNzdGF0ZS0+YXR0bnVtbGlzdCk7CisKKwkJY3N0YXRlLT5kb21haW5fd2l0aF9j b25zdHJhaW50ID0gKGJvb2wgKikgcGFsbG9jMChhdHRyX2NvdW50ICogc2l6ZW9mKGJvb2wpKTsK KwkJZm9yZWFjaF9pbnQoYXR0bm8sIGNzdGF0ZS0+YXR0bnVtbGlzdCkKKwkJeworCQkJaW50CQkJ aSA9IGZvcmVhY2hfY3VycmVudF9pbmRleChhdHRubyk7CisKKwkJCUZvcm1fcGdfYXR0cmlidXRl IGF0dCA9IFR1cGxlRGVzY0F0dHIodHVwRGVzYywgYXR0bm8gLSAxKTsKKworCQkJY3N0YXRlLT5k b21haW5fd2l0aF9jb25zdHJhaW50W2ldID0gRG9tYWluSGFzQ29uc3RyYWludHMoYXR0LT5hdHR0 eXBpZCk7CisJCX0KKwl9CisKIAkvKiBDb252ZXJ0IEZPUkNFX05VTEwgbmFtZSBsaXN0IHRvIHBl ci1jb2x1bW4gZmxhZ3MsIGNoZWNrIHZhbGlkaXR5ICovCiAJY3N0YXRlLT5vcHRzLmZvcmNlX251 bGxfZmxhZ3MgPSAoYm9vbCAqKSBwYWxsb2MwKG51bV9waHlzX2F0dHJzICogc2l6ZW9mKGJvb2wp KTsKIAlpZiAoY3N0YXRlLT5vcHRzLmZvcmNlX251bGxfYWxsKQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvY29weWZyb21wYXJzZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29w eWZyb21wYXJzZS5jCmluZGV4IDU4NjhhN2ZhMTFmLi4xZDhhOWRiYjc5MiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb21wYXJzZS5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2NvcHlmcm9tcGFyc2UuYwpAQCAtOTU2LDYgKzk1Niw3IEBAIENvcHlGcm9tVGV4dExp a2VPbmVSb3coQ29weUZyb21TdGF0ZSBjc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwKIAlp bnQJCQlmbGRjdDsKIAlpbnQJCQlmaWVsZG5vOwogCWNoYXIJICAgKnN0cmluZzsKKwlib29sCQlj dXJyZW50X3Jvd19lcnJvbmVvdXMgPSBmYWxzZTsKIAogCXR1cERlc2MgPSBSZWxhdGlvbkdldERl c2NyKGNzdGF0ZS0+cmVsKTsKIAlhdHRyX2NvdW50ID0gbGlzdF9sZW5ndGgoY3N0YXRlLT5hdHRu dW1saXN0KTsKQEAgLTEwMzMsNyArMTAzNCw4IEBAIENvcHlGcm9tVGV4dExpa2VPbmVSb3coQ29w eUZyb21TdGF0ZSBjc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwKIAkJfQogCiAJCS8qCi0J CSAqIElmIE9OX0VSUk9SIGlzIHNwZWNpZmllZCB3aXRoIElHTk9SRSwgc2tpcCByb3dzIHdpdGgg c29mdCBlcnJvcnMKKwkJICogSWYgT05fRVJST1IgaXMgc3BlY2lmaWVkIHdpdGggSUdOT1JFLCBz a2lwIHJvd3Mgd2l0aCBzb2Z0IGVycm9ycy4KKwkJICogSWYgT05fRVJST1IgaXMgc3BlY2lmaWVk IHdpdGggU0VUX05VTEwsIHRyeSB0byByZXBsYWNlIHdpdGggbnVsbC4KIAkJICovCiAJCWVsc2Ug aWYgKCFJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUoJmluX2Z1bmN0aW9uc1ttXSwKIAkJCQkJCQkJCQlz dHJpbmcsCkBAIC0xMDQ0LDcgKzEwNDYsNTEgQEAgQ29weUZyb21UZXh0TGlrZU9uZVJvdyhDb3B5 RnJvbVN0YXRlIGNzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0LAogCQl7CiAJCQlBc3NlcnQo Y3N0YXRlLT5vcHRzLm9uX2Vycm9yICE9IENPUFlfT05fRVJST1JfU1RPUCk7CiAKLQkJCWNzdGF0 ZS0+bnVtX2Vycm9ycysrOworCQkJaWYgKGNzdGF0ZS0+b3B0cy5vbl9lcnJvciA9PSBDT1BZX09O X0VSUk9SX0lHTk9SRSkKKwkJCQljc3RhdGUtPm51bV9lcnJvcnMrKzsKKwkJCWVsc2UgaWYgKGNz dGF0ZS0+b3B0cy5vbl9lcnJvciA9PSBDT1BZX09OX0VSUk9SX1NFVF9OVUxMKQorCQkJeworCQkJ CWNzdGF0ZS0+ZXNjb250ZXh0LT5lcnJvcl9vY2N1cnJlZCA9IGZhbHNlOworCisJCQkJQXNzZXJ0 KGNzdGF0ZS0+ZG9tYWluX3dpdGhfY29uc3RyYWludCAhPSBOVUxMKTsKKworCQkJCS8qCisJCQkJ ICogSWYgdGhlIGNvbHVtbiB0eXBlIGlzIGEgY29uc3RyYWluZWQgZG9tYWluLCBhbiBhZGRpdGlv bmFsCisJCQkJICogSW5wdXRGdW5jdGlvbkNhbGxTYWZlIG1heSBiZSBuZWVkZWQgdG8gcmFpc2Ug ZXJyb3IgZm9yCisJCQkJICogZG9tYWluIGNvbnN0cmFpbnQgdmlvbGF0aW9uLgorCQkJCSAqLwor CQkJCWlmICghY3N0YXRlLT5kb21haW5fd2l0aF9jb25zdHJhaW50W21dIHx8CisJCQkJCUlucHV0 RnVuY3Rpb25DYWxsU2FmZSgmaW5fZnVuY3Rpb25zW21dLAorCQkJCQkJCQkJCSAgTlVMTCwKKwkJ CQkJCQkJCQkgIHR5cGlvcGFyYW1zW21dLAorCQkJCQkJCQkJCSAgYXR0LT5hdHR0eXBtb2QsCisJ CQkJCQkJCQkJICAoTm9kZSAqKSBjc3RhdGUtPmVzY29udGV4dCwKKwkJCQkJCQkJCQkgICZ2YWx1 ZXNbbV0pKQorCQkJCXsKKwkJCQkJbnVsbHNbbV0gPSB0cnVlOworCQkJCQl2YWx1ZXNbbV0gPSAo RGF0dW0pIDA7CisJCQkJfQorCQkJCWVsc2UgaWYgKHN0cmluZyA9PSBOVUxMKQorCQkJCQllcmVw b3J0KEVSUk9SLAorCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9OT1RfTlVMTF9WSU9MQVRJT04pLAor CQkJCQkJCWVycm1zZygiZG9tYWluICVzIGRvZXMgbm90IGFsbG93IG51bGwgdmFsdWVzIiwgZm9y bWF0X3R5cGVfYmUodHlwaW9wYXJhbXNbbV0pKSwKKwkJCQkJCQllcnJkYXRhdHlwZSh0eXBpb3Bh cmFtc1ttXSkpOworCQkJCWVsc2UKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQllcnJjb2Rl KEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKKwkJCQkJCQllcnJtc2coImlu dmFsaWQgaW5wdXQgdmFsdWUgZm9yIGRvbWFpbiAlczogXCIlc1wiIiwKKwkJCQkJCQkJICAgZm9y bWF0X3R5cGVfYmUodHlwaW9wYXJhbXNbbV0pLCBzdHJpbmcpKTsKKworCQkJCS8qCisJCQkJICog V2UgY291bnQgb25seSB0aGUgbnVtYmVyIG9mIHJvd3MgKG5vdCBmaWVsZHMpIHdoZXJlCisJCQkJ ICogT05fRVJST1IgU0VUX05VTEwgd2FzIGFwcGxpZWQuCisJCQkJICovCisJCQkJaWYgKCFjdXJy ZW50X3Jvd19lcnJvbmVvdXMpCisJCQkJeworCQkJCQljdXJyZW50X3Jvd19lcnJvbmVvdXMgPSB0 cnVlOworCQkJCQljc3RhdGUtPm51bV9lcnJvcnMrKzsKKwkJCQl9CisJCQl9CiAKIAkJCWlmIChj c3RhdGUtPm9wdHMubG9nX3ZlcmJvc2l0eSA9PSBDT1BZX0xPR19WRVJCT1NJVFlfVkVSQk9TRSkK IAkJCXsKQEAgLTEwNjEsMjQgKzExMDcsMzcgQEAgQ29weUZyb21UZXh0TGlrZU9uZVJvdyhDb3B5 RnJvbVN0YXRlIGNzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0LAogCQkJCQljaGFyCSAgICph dHR2YWw7CiAKIAkJCQkJYXR0dmFsID0gQ29weUxpbWl0UHJpbnRvdXRMZW5ndGgoY3N0YXRlLT5j dXJfYXR0dmFsKTsKLQkJCQkJZXJlcG9ydChOT1RJQ0UsCi0JCQkJCQkJZXJybXNnKCJza2lwcGlu ZyByb3cgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkgYXQgbGluZSAlIiBQUkl1NjQg IiBmb3IgY29sdW1uIFwiJXNcIjogXCIlc1wiIiwKLQkJCQkJCQkJICAgY3N0YXRlLT5jdXJfbGlu ZW5vLAotCQkJCQkJCQkgICBjc3RhdGUtPmN1cl9hdHRuYW1lLAotCQkJCQkJCQkgICBhdHR2YWwp KTsKKworCQkJCQlpZiAoY3N0YXRlLT5vcHRzLm9uX2Vycm9yID09IENPUFlfT05fRVJST1JfSUdO T1JFKQorCQkJCQkJZXJlcG9ydChOT1RJQ0UsCisJCQkJCQkJCWVycm1zZygic2tpcHBpbmcgcm93 IGR1ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRpYmlsaXR5IGF0IGxpbmUgJSIgUFJJdTY0ICIgZm9y IGNvbHVtbiBcIiVzXCI6IFwiJXNcIiIsCisJCQkJCQkJCQkgICBjc3RhdGUtPmN1cl9saW5lbm8s CisJCQkJCQkJCQkgICBjc3RhdGUtPmN1cl9hdHRuYW1lLAorCQkJCQkJCQkJICAgYXR0dmFsKSk7 CisJCQkJCWVsc2UgaWYgKGNzdGF0ZS0+b3B0cy5vbl9lcnJvciA9PSBDT1BZX09OX0VSUk9SX1NF VF9OVUxMKQorCQkJCQkJZXJlcG9ydChOT1RJQ0UsCisJCQkJCQkJCWVycm1zZygic2V0dGluZyB0 byBudWxsIGR1ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRpYmlsaXR5IGF0IGxpbmUgJSIgUFJJdTY0 ICIgZm9yIGNvbHVtbiBcIiVzXCI6IFwiJXNcIiIsCisJCQkJCQkJCQkgICBjc3RhdGUtPmN1cl9s aW5lbm8sCisJCQkJCQkJCQkgICBjc3RhdGUtPmN1cl9hdHRuYW1lLAorCQkJCQkJCQkJICAgYXR0 dmFsKSk7CiAJCQkJCXBmcmVlKGF0dHZhbCk7CiAJCQkJfQogCQkJCWVsc2UKLQkJCQkJZXJlcG9y dChOT1RJQ0UsCi0JCQkJCQkJZXJybXNnKCJza2lwcGluZyByb3cgZHVlIHRvIGRhdGEgdHlwZSBp bmNvbXBhdGliaWxpdHkgYXQgbGluZSAlIiBQUkl1NjQgIiBmb3IgY29sdW1uIFwiJXNcIjogbnVs bCBpbnB1dCIsCi0JCQkJCQkJCSAgIGNzdGF0ZS0+Y3VyX2xpbmVubywKLQkJCQkJCQkJICAgY3N0 YXRlLT5jdXJfYXR0bmFtZSkpOwotCisJCQkJeworCQkJCQlpZiAoY3N0YXRlLT5vcHRzLm9uX2Vy cm9yID09IENPUFlfT05fRVJST1JfSUdOT1JFKQorCQkJCQkJZXJlcG9ydChOT1RJQ0UsCisJCQkJ CQkJCWVycm1zZygic2tpcHBpbmcgcm93IGR1ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRpYmlsaXR5 IGF0IGxpbmUgJSIgUFJJdTY0ICIgZm9yIGNvbHVtbiBcIiVzXCI6IG51bGwgaW5wdXQiLAorCQkJ CQkJCQkJICAgY3N0YXRlLT5jdXJfbGluZW5vLAorCQkJCQkJCQkJICAgY3N0YXRlLT5jdXJfYXR0 bmFtZSkpOworCQkJCX0KIAkJCQkvKiByZXNldCByZWxuYW1lX29ubHkgKi8KIAkJCQljc3RhdGUt PnJlbG5hbWVfb25seSA9IGZhbHNlOwogCQkJfQogCi0JCQlyZXR1cm4gdHJ1ZTsKKwkJCWlmIChj c3RhdGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJPUl9JR05PUkUpCisJCQkJcmV0dXJu IHRydWU7CisJCQllbHNlIGlmIChjc3RhdGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJP Ul9TRVRfTlVMTCkKKwkJCQljb250aW51ZTsKIAkJfQogCiAJCWNzdGF0ZS0+Y3VyX2F0dG5hbWUg PSBOVUxMOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDhiOTFiYzAwMDYyLi5lMmM3MmJkMzA1 OSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9i aW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMzQyNSw3ICszNDI1LDcgQEAgbWF0Y2hfcHJl dmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAKIAkJCS8qIENvbXBsZXRlIENPUFkgPHN0aD4g RlJPTSBmaWxlbmFtZSBXSVRIIChPTl9FUlJPUiAqLwogCQkJZWxzZSBpZiAoVGFpbE1hdGNoZXMo Ik9OX0VSUk9SIikpCi0JCQkJQ09NUExFVEVfV0lUSCgic3RvcCIsICJpZ25vcmUiKTsKKwkJCQlD T01QTEVURV9XSVRIKCJzdG9wIiwgImlnbm9yZSIsICJzZXRfbnVsbCIpOwogCiAJCQkvKiBDb21w bGV0ZSBDT1BZIDxzdGg+IEZST00gZmlsZW5hbWUgV0lUSCAoTE9HX1ZFUkJPU0lUWSAqLwogCQkJ ZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkxPR19WRVJCT1NJVFkiKSkKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NvbW1hbmRzL2NvcHkuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvcHkuaAppbmRl eCA0M2MyNTgwNTM5Zi4uODc3MjAyYWY2N2IgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1h bmRzL2NvcHkuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5LmgKQEAgLTM1LDYgKzM1 LDcgQEAgdHlwZWRlZiBlbnVtIENvcHlPbkVycm9yQ2hvaWNlCiB7CiAJQ09QWV9PTl9FUlJPUl9T VE9QID0gMCwJCS8qIGltbWVkaWF0ZWx5IHRocm93IGVycm9ycywgZGVmYXVsdCAqLwogCUNPUFlf T05fRVJST1JfSUdOT1JFLAkJLyogaWdub3JlIGVycm9ycyAqLworCUNPUFlfT05fRVJST1JfU0VU X05VTEwsCQkvKiBzZXQgZXJyb3IgZmllbGQgdG8gbnVsbCAqLwogfSBDb3B5T25FcnJvckNob2lj ZTsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvcHlmcm9tX2ludGVy bmFsLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5ZnJvbV9pbnRlcm5hbC5oCmluZGV4IDgy MmVmMzNjZjY5Li5mODkyYzM0MzE1NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMv Y29weWZyb21faW50ZXJuYWwuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5ZnJvbV9p bnRlcm5hbC5oCkBAIC0xMDgsNiArMTA4LDEzIEBAIHR5cGVkZWYgc3RydWN0IENvcHlGcm9tU3Rh dGVEYXRhCiAJCQkJCQkJCSAqIGF0dCAqLwogCWJvb2wJICAgKmRlZmF1bHRzOwkJLyogaWYgREVG QVVMVCBtYXJrZXIgd2FzIGZvdW5kIGZvcgogCQkJCQkJCQkgKiBjb3JyZXNwb25kaW5nIGF0dCAq LworCisJLyoKKwkgKiBUcnVlIGlmIHRoZSBjb3JyZXNwb25kaW5nIGF0dHJpYnV0ZSdzIGlzIGEg Y29uc3RyYWluZWQgZG9tYWluLiBUaGlzCisJICogd2lsbCBiZSBwb3B1bGF0ZWQgb25seSB3aGVu IE9OX0VSUk9SIGlzIFNFVF9OVUxMLCBvdGhlcndpc2UgTlVMTC4KKwkgKi8KKwlib29sCSAgICpk b21haW5fd2l0aF9jb25zdHJhaW50OworCiAJYm9vbAkJdm9sYXRpbGVfZGVmZXhwcnM7CS8qIGlz IGFueSBvZiBkZWZleHBycyB2b2xhdGlsZT8gKi8KIAlMaXN0CSAgICpyYW5nZV90YWJsZTsJLyog c2luZ2xlIGVsZW1lbnQgbGlzdCBvZiBSYW5nZVRibEVudHJ5ICovCiAJTGlzdAkgICAqcnRlcGVy bWluZm9zOwkvKiBzaW5nbGUgZWxlbWVudCBsaXN0IG9mIFJURVBlcm1pc3Npb25JbmZvICovCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0CmluZGV4IGYzZmRjZTIzNDU5Li4yZTE2MzdmMjEz NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQKQEAgLTgxLDYgKzgxLDEwIEBAIENP UFkgeCBmcm9tIHN0ZGluIChvbl9lcnJvciBpZ25vcmUsIG9uX2Vycm9yIGlnbm9yZSk7CiBFUlJP UjogIGNvbmZsaWN0aW5nIG9yIHJlZHVuZGFudCBvcHRpb25zCiBMSU5FIDE6IENPUFkgeCBmcm9t IHN0ZGluIChvbl9lcnJvciBpZ25vcmUsIG9uX2Vycm9yIGlnbm9yZSk7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0NPUFkgeCBmcm9tIHN0ZGluIChvbl9l cnJvciBzZXRfbnVsbCwgb25fZXJyb3Igc2V0X251bGwpOworRVJST1I6ICBjb25mbGljdGluZyBv ciByZWR1bmRhbnQgb3B0aW9ucworTElORSAxOiBDT1BZIHggZnJvbSBzdGRpbiAob25fZXJyb3Ig c2V0X251bGwsIG9uX2Vycm9yIHNldF9udWxsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCiBDT1BZIHggZnJvbSBzdGRpbiAobG9nX3ZlcmJvc2l0eSBk ZWZhdWx0LCBsb2dfdmVyYm9zaXR5IHZlcmJvc2UpOwogRVJST1I6ICBjb25mbGljdGluZyBvciBy ZWR1bmRhbnQgb3B0aW9ucwogTElORSAxOiBDT1BZIHggZnJvbSBzdGRpbiAobG9nX3ZlcmJvc2l0 eSBkZWZhdWx0LCBsb2dfdmVyYm9zaXR5IHZlcmIuLi4KQEAgLTkyLDYgKzk2LDEwIEBAIENPUFkg eCBmcm9tIHN0ZGluIChmb3JtYXQgQklOQVJZLCBudWxsICd4Jyk7CiBFUlJPUjogIGNhbm5vdCBz cGVjaWZ5IE5VTEwgaW4gQklOQVJZIG1vZGUKIENPUFkgeCBmcm9tIHN0ZGluIChmb3JtYXQgQklO QVJZLCBvbl9lcnJvciBpZ25vcmUpOwogRVJST1I6ICBvbmx5IE9OX0VSUk9SIFNUT1AgaXMgYWxs b3dlZCBpbiBCSU5BUlkgbW9kZQorQ09QWSB4IGZyb20gc3RkaW4gKGZvcm1hdCBCSU5BUlksIG9u X2Vycm9yIHNldF9udWxsKTsKK0VSUk9SOiAgb25seSBPTl9FUlJPUiBTVE9QIGlzIGFsbG93ZWQg aW4gQklOQVJZIG1vZGUKK0NPUFkgeCBmcm9tIHN0ZGluIChvbl9lcnJvciBzZXRfbnVsbCwgcmVq ZWN0X2xpbWl0IDIpOworRVJST1I6ICBDT1BZIFJFSkVDVF9MSU1JVCByZXF1aXJlcyBPTl9FUlJP UiB0byBiZSBzZXQgdG8gSUdOT1JFCiBDT1BZIHggZnJvbSBzdGRpbiAob25fZXJyb3IgdW5zdXBw b3J0ZWQpOwogRVJST1I6ICBDT1BZIE9OX0VSUk9SICJ1bnN1cHBvcnRlZCIgbm90IHJlY29nbml6 ZWQKIExJTkUgMTogQ09QWSB4IGZyb20gc3RkaW4gKG9uX2Vycm9yIHVuc3VwcG9ydGVkKTsKQEAg LTEyNCw2ICsxMzIsMTAgQEAgQ09QWSB4IHRvIHN0ZG91dCAoZm9ybWF0IEJJTkFSWSwgb25fZXJy b3IgdW5zdXBwb3J0ZWQpOwogRVJST1I6ICBDT1BZIE9OX0VSUk9SIGNhbm5vdCBiZSB1c2VkIHdp dGggQ09QWSBUTwogTElORSAxOiBDT1BZIHggdG8gc3Rkb3V0IChmb3JtYXQgQklOQVJZLCBvbl9l cnJvciB1bnN1cHBvcnRlZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KK0NPUFkgeCB0byBzdGRvdXQgKG9uX2Vycm9yIHNldF9udWxsKTsKK0VSUk9SOiAgQ09Q WSBPTl9FUlJPUiBjYW5ub3QgYmUgdXNlZCB3aXRoIENPUFkgVE8KK0xJTkUgMTogQ09QWSB4IHRv IHN0ZG91dCAob25fZXJyb3Igc2V0X251bGwpOworICAgICAgICAgICAgICAgICAgICAgICAgICBe CiBDT1BZIHggZnJvbSBzdGRpbiAobG9nX3ZlcmJvc2l0eSB1bnN1cHBvcnRlZCk7CiBFUlJPUjog IENPUFkgTE9HX1ZFUkJPU0lUWSAidW5zdXBwb3J0ZWQiIG5vdCByZWNvZ25pemVkCiBMSU5FIDE6 IENPUFkgeCBmcm9tIHN0ZGluIChsb2dfdmVyYm9zaXR5IHVuc3VwcG9ydGVkKTsKQEAgLTc3Niw2 ICs3ODgsNDYgQEAgQ09OVEVYVDogIENPUFkgY2hlY2tfaWduX2VycgogTk9USUNFOiAgc2tpcHBp bmcgcm93IGR1ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRpYmlsaXR5IGF0IGxpbmUgOCBmb3IgY29s dW1uICJrIjogImEiCiBDT05URVhUOiAgQ09QWSBjaGVja19pZ25fZXJyCiBOT1RJQ0U6ICA2IHJv d3Mgd2VyZSBza2lwcGVkIGR1ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRpYmlsaXR5CitDUkVBVEUg RE9NQUlOIGRfaW50X25vdF9udWxsIEFTIGludGVnZXIgTk9UIE5VTEwgQ0hFQ0sodmFsdWUgPiAw KTsKK0NSRUFURSBET01BSU4gZF9pbnRfcG9zaXRpdmVfbWF5YmVfbnVsbCBBUyBpbnRlZ2VyIENI RUNLKHZhbHVlID4gMCk7CitDUkVBVEUgVEFCTEUgdF9vbl9lcnJvcl9udWxsIChhIGRfaW50X25v dF9udWxsLCBiIGRfaW50X3Bvc2l0aXZlX21heWJlX251bGwsIGMgaW50ZWdlcik7CitccHNldCBu dWxsIE5VTEwKK0NPUFkgdF9vbl9lcnJvcl9udWxsIEZST00gU1RESU4gV0lUSCAob25fZXJyb3Ig c2V0X251bGwpOyAtLWZhaWwKK0VSUk9SOiAgZG9tYWluIGRfaW50X25vdF9udWxsIGRvZXMgbm90 IGFsbG93IG51bGwgdmFsdWVzCitDT05URVhUOiAgQ09QWSB0X29uX2Vycm9yX251bGwsIGxpbmUg MSwgY29sdW1uIGE6IG51bGwgaW5wdXQKK0NPUFkgdF9vbl9lcnJvcl9udWxsIEZST00gU1RESU4g V0lUSCAob25fZXJyb3Igc2V0X251bGwpOyAtLWZhaWwKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCB2 YWx1ZSBmb3IgZG9tYWluIGRfaW50X25vdF9udWxsOiAic3MiCitDT05URVhUOiAgQ09QWSB0X29u X2Vycm9yX251bGwsIGxpbmUgMSwgY29sdW1uIGE6ICJzcyIKK0NPUFkgdF9vbl9lcnJvcl9udWxs IEZST00gU1RESU4gV0lUSCAob25fZXJyb3Igc2V0X251bGwpOyAtLWZhaWwKK0VSUk9SOiAgaW52 YWxpZCBpbnB1dCB2YWx1ZSBmb3IgZG9tYWluIGRfaW50X25vdF9udWxsOiAiLTEiCitDT05URVhU OiAgQ09QWSB0X29uX2Vycm9yX251bGwsIGxpbmUgMSwgY29sdW1uIGE6ICItMSIKKy0tZmFpbCwg bGVzcyBkYXRhLgorQ09QWSB0X29uX2Vycm9yX251bGwgRlJPTSBTVERJTiBXSVRIIChkZWxpbWl0 ZXIgJywnLCBvbl9lcnJvciBzZXRfbnVsbCk7CitFUlJPUjogIG1pc3NpbmcgZGF0YSBmb3IgY29s dW1uICJjIgorQ09OVEVYVDogIENPUFkgdF9vbl9lcnJvcl9udWxsLCBsaW5lIDE6ICIxLDEiCist LWZhaWwsIGV4dHJhIGRhdGEuCitDT1BZIHRfb25fZXJyb3JfbnVsbCBGUk9NIFNURElOIFdJVEgg KGRlbGltaXRlciAnLCcsIG9uX2Vycm9yIHNldF9udWxsKTsKK0VSUk9SOiAgZXh0cmEgZGF0YSBh ZnRlciBsYXN0IGV4cGVjdGVkIGNvbHVtbgorQ09OVEVYVDogIENPUFkgdF9vbl9lcnJvcl9udWxs LCBsaW5lIDE6ICIxLDIsMyw0IgorQ09QWSB0X29uX2Vycm9yX251bGwgRlJPTSBTVERJTiBXSVRI IChvbl9lcnJvciBzZXRfbnVsbCwgbG9nX3ZlcmJvc2l0eSB2ZXJib3NlKTsgLS1vaworTk9USUNF OiAgc2V0dGluZyB0byBudWxsIGR1ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRpYmlsaXR5IGF0IGxp bmUgMSBmb3IgY29sdW1uICJiIjogIngxIgorQ09OVEVYVDogIENPUFkgdF9vbl9lcnJvcl9udWxs CitOT1RJQ0U6ICBzZXR0aW5nIHRvIG51bGwgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxp dHkgYXQgbGluZSAxIGZvciBjb2x1bW4gImMiOiAieXgiCitDT05URVhUOiAgQ09QWSB0X29uX2Vy cm9yX251bGwKK05PVElDRTogIHNldHRpbmcgdG8gbnVsbCBkdWUgdG8gZGF0YSB0eXBlIGluY29t cGF0aWJpbGl0eSBhdCBsaW5lIDIgZm9yIGNvbHVtbiAiYiI6ICJ6eCIKK0NPTlRFWFQ6ICBDT1BZ IHRfb25fZXJyb3JfbnVsbAorTk9USUNFOiAgc2V0dGluZyB0byBudWxsIGR1ZSB0byBkYXRhIHR5 cGUgaW5jb21wYXRpYmlsaXR5IGF0IGxpbmUgMyBmb3IgY29sdW1uICJjIjogImVhIgorQ09OVEVY VDogIENPUFkgdF9vbl9lcnJvcl9udWxsCitOT1RJQ0U6ICBpbnZhbGlkIHZhbHVlcyBpbiAzIHJv d3Mgd2VyZSByZXBsYWNlZCB3aXRoIG51bGwgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxp dHkKK1NFTEVDVCAqIEZST00gdF9vbl9lcnJvcl9udWxsIE9SREVSIEJZIGE7CisgYSAgfCAgYiAg IHwgIGMgICAKKy0tLS0rLS0tLS0tKy0tLS0tLQorIDEwIHwgTlVMTCB8IE5VTEwKKyAxMSB8IE5V TEwgfCAgIDEyCisgMTMgfCAgIDE0IHwgTlVMTAorKDMgcm93cykKKworXHBzZXQgbnVsbCAnJwog LS0gdGVzdHMgZm9yIG9uX2Vycm9yIG9wdGlvbiB3aXRoIGxvZ192ZXJib3NpdHkgYW5kIG51bGwg Y29uc3RyYWludCB2aWEgZG9tYWluCiBDUkVBVEUgRE9NQUlOIGRjaGVja19pZ25fZXJyMiB2YXJj aGFyKDE1KSBOT1QgTlVMTDsKIENSRUFURSBUQUJMRSBjaGVja19pZ25fZXJyMiAobiBpbnQsIG0g aW50W10sIGsgaW50LCBsIGRjaGVja19pZ25fZXJyMik7CkBAIC04MzUsNiArODg3LDkgQEAgRFJP UCBWSUVXIGluc3RlYWRfb2ZfaW5zZXJ0X3RibF92aWV3OwogRFJPUCBWSUVXIGluc3RlYWRfb2Zf aW5zZXJ0X3RibF92aWV3XzI7CiBEUk9QIEZVTkNUSU9OIGZ1bl9pbnN0ZWFkX29mX2luc2VydF90 YmwoKTsKIERST1AgVEFCTEUgY2hlY2tfaWduX2VycjsKK0RST1AgVEFCTEUgdF9vbl9lcnJvcl9u dWxsOworRFJPUCBET01BSU4gZF9pbnRfbm90X251bGw7CitEUk9QIERPTUFJTiBkX2ludF9wb3Np dGl2ZV9tYXliZV9udWxsOwogRFJPUCBUQUJMRSBjaGVja19pZ25fZXJyMjsKIERST1AgRE9NQUlO IGRjaGVja19pZ25fZXJyMjsKIERST1AgVEFCTEUgaGFyZF9lcnI7CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9jb3B5Mi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb3B5Mi5z cWwKaW5kZXggY2VmNDU4NjhkYjUuLjEzMmY2N2Q2YzExIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9jb3B5Mi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29weTIuc3Fs CkBAIC02NywxMiArNjcsMTUgQEAgQ09QWSB4IGZyb20gc3RkaW4gKGZvcmNlX251bGwgKGEpLCBm b3JjZV9udWxsIChiKSk7CiBDT1BZIHggZnJvbSBzdGRpbiAoY29udmVydF9zZWxlY3RpdmVseSAo YSksIGNvbnZlcnRfc2VsZWN0aXZlbHkgKGIpKTsKIENPUFkgeCBmcm9tIHN0ZGluIChlbmNvZGlu ZyAnc3FsX2FzY2lpJywgZW5jb2RpbmcgJ3NxbF9hc2NpaScpOwogQ09QWSB4IGZyb20gc3RkaW4g KG9uX2Vycm9yIGlnbm9yZSwgb25fZXJyb3IgaWdub3JlKTsKK0NPUFkgeCBmcm9tIHN0ZGluIChv bl9lcnJvciBzZXRfbnVsbCwgb25fZXJyb3Igc2V0X251bGwpOwogQ09QWSB4IGZyb20gc3RkaW4g KGxvZ192ZXJib3NpdHkgZGVmYXVsdCwgbG9nX3ZlcmJvc2l0eSB2ZXJib3NlKTsKIAogLS0gaW5j b3JyZWN0IG9wdGlvbnMKIENPUFkgeCBmcm9tIHN0ZGluIChmb3JtYXQgQklOQVJZLCBkZWxpbWl0 ZXIgJywnKTsKIENPUFkgeCBmcm9tIHN0ZGluIChmb3JtYXQgQklOQVJZLCBudWxsICd4Jyk7CiBD T1BZIHggZnJvbSBzdGRpbiAoZm9ybWF0IEJJTkFSWSwgb25fZXJyb3IgaWdub3JlKTsKK0NPUFkg eCBmcm9tIHN0ZGluIChmb3JtYXQgQklOQVJZLCBvbl9lcnJvciBzZXRfbnVsbCk7CitDT1BZIHgg ZnJvbSBzdGRpbiAob25fZXJyb3Igc2V0X251bGwsIHJlamVjdF9saW1pdCAyKTsKIENPUFkgeCBm cm9tIHN0ZGluIChvbl9lcnJvciB1bnN1cHBvcnRlZCk7CiBDT1BZIHggZnJvbSBzdGRpbiAoZm9y bWF0IFRFWFQsIGZvcmNlX3F1b3RlKGEpKTsKIENPUFkgeCBmcm9tIHN0ZGluIChmb3JtYXQgVEVY VCwgZm9yY2VfcXVvdGUgKik7CkBAIC04Nyw2ICs5MCw3IEBAIENPUFkgeCBmcm9tIHN0ZGluIChm b3JtYXQgVEVYVCwgZm9yY2VfbnVsbCAqKTsKIENPUFkgeCB0byBzdGRvdXQgKGZvcm1hdCBDU1Ys IGZvcmNlX251bGwoYSkpOwogQ09QWSB4IHRvIHN0ZG91dCAoZm9ybWF0IENTViwgZm9yY2VfbnVs bCAqKTsKIENPUFkgeCB0byBzdGRvdXQgKGZvcm1hdCBCSU5BUlksIG9uX2Vycm9yIHVuc3VwcG9y dGVkKTsKK0NPUFkgeCB0byBzdGRvdXQgKG9uX2Vycm9yIHNldF9udWxsKTsKIENPUFkgeCBmcm9t IHN0ZGluIChsb2dfdmVyYm9zaXR5IHVuc3VwcG9ydGVkKTsKIENPUFkgeCBmcm9tIHN0ZGluIHdp dGggKHJlamVjdF9saW1pdCAxKTsKIENPUFkgeCBmcm9tIHN0ZGluIHdpdGggKG9uX2Vycm9yIGln bm9yZSwgcmVqZWN0X2xpbWl0IDApOwpAQCAtNTM3LDYgKzU0MSw0MiBAQCBhCXsyfQkyCiA4CXs4 fQk4CiBcLgogCitDUkVBVEUgRE9NQUlOIGRfaW50X25vdF9udWxsIEFTIGludGVnZXIgTk9UIE5V TEwgQ0hFQ0sodmFsdWUgPiAwKTsKK0NSRUFURSBET01BSU4gZF9pbnRfcG9zaXRpdmVfbWF5YmVf bnVsbCBBUyBpbnRlZ2VyIENIRUNLKHZhbHVlID4gMCk7CitDUkVBVEUgVEFCTEUgdF9vbl9lcnJv cl9udWxsIChhIGRfaW50X25vdF9udWxsLCBiIGRfaW50X3Bvc2l0aXZlX21heWJlX251bGwsIGMg aW50ZWdlcik7CisKK1xwc2V0IG51bGwgTlVMTAorQ09QWSB0X29uX2Vycm9yX251bGwgRlJPTSBT VERJTiBXSVRIIChvbl9lcnJvciBzZXRfbnVsbCk7IC0tZmFpbAorXE4JMTEJMTMKK1wuCisKK0NP UFkgdF9vbl9lcnJvcl9udWxsIEZST00gU1RESU4gV0lUSCAob25fZXJyb3Igc2V0X251bGwpOyAt LWZhaWwKK3NzCTExCTE0CitcLgorCitDT1BZIHRfb25fZXJyb3JfbnVsbCBGUk9NIFNURElOIFdJ VEggKG9uX2Vycm9yIHNldF9udWxsKTsgLS1mYWlsCistMQkxMQkxMworXC4KKworLS1mYWlsLCBs ZXNzIGRhdGEuCitDT1BZIHRfb25fZXJyb3JfbnVsbCBGUk9NIFNURElOIFdJVEggKGRlbGltaXRl ciAnLCcsIG9uX2Vycm9yIHNldF9udWxsKTsKKzEsMQorXC4KKy0tZmFpbCwgZXh0cmEgZGF0YS4K K0NPUFkgdF9vbl9lcnJvcl9udWxsIEZST00gU1RESU4gV0lUSCAoZGVsaW1pdGVyICcsJywgb25f ZXJyb3Igc2V0X251bGwpOworMSwyLDMsNAorXC4KKworQ09QWSB0X29uX2Vycm9yX251bGwgRlJP TSBTVERJTiBXSVRIIChvbl9lcnJvciBzZXRfbnVsbCwgbG9nX3ZlcmJvc2l0eSB2ZXJib3NlKTsg LS1vaworMTAJeDEJeXgKKzExCXp4CTEyCisxMwkxNAllYQorXC4KKworU0VMRUNUICogRlJPTSB0 X29uX2Vycm9yX251bGwgT1JERVIgQlkgYTsKKworXHBzZXQgbnVsbCAnJworCiAtLSB0ZXN0cyBm b3Igb25fZXJyb3Igb3B0aW9uIHdpdGggbG9nX3ZlcmJvc2l0eSBhbmQgbnVsbCBjb25zdHJhaW50 IHZpYSBkb21haW4KIENSRUFURSBET01BSU4gZGNoZWNrX2lnbl9lcnIyIHZhcmNoYXIoMTUpIE5P VCBOVUxMOwogQ1JFQVRFIFRBQkxFIGNoZWNrX2lnbl9lcnIyIChuIGludCwgbSBpbnRbXSwgayBp bnQsIGwgZGNoZWNrX2lnbl9lcnIyKTsKQEAgLTYwNiw2ICs2NDYsOSBAQCBEUk9QIFZJRVcgaW5z dGVhZF9vZl9pbnNlcnRfdGJsX3ZpZXc7CiBEUk9QIFZJRVcgaW5zdGVhZF9vZl9pbnNlcnRfdGJs X3ZpZXdfMjsKIERST1AgRlVOQ1RJT04gZnVuX2luc3RlYWRfb2ZfaW5zZXJ0X3RibCgpOwogRFJP UCBUQUJMRSBjaGVja19pZ25fZXJyOworRFJPUCBUQUJMRSB0X29uX2Vycm9yX251bGw7CitEUk9Q IERPTUFJTiBkX2ludF9ub3RfbnVsbDsKK0RST1AgRE9NQUlOIGRfaW50X3Bvc2l0aXZlX21heWJl X251bGw7CiBEUk9QIFRBQkxFIGNoZWNrX2lnbl9lcnIyOwogRFJPUCBET01BSU4gZGNoZWNrX2ln bl9lcnIyOwogRFJPUCBUQUJMRSBoYXJkX2VycjsKLS0gCjIuMzQuMQoK --000000000000908f0d0648e0fdad--