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 1vwEkB-00BWT1-0R for pgsql-hackers@arkaria.postgresql.org; Sat, 28 Feb 2026 07:28:07 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vwEk8-00AMi1-2j for pgsql-hackers@arkaria.postgresql.org; Sat, 28 Feb 2026 07:28:04 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vwEk8-00AMhs-1M for pgsql-hackers@lists.postgresql.org; Sat, 28 Feb 2026 07:28:04 +0000 Received: from mail-vs1-xe2b.google.com ([2607:f8b0:4864:20::e2b]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vwEk4-00000001hCj-3RlD for pgsql-hackers@postgresql.org; Sat, 28 Feb 2026 07:28:03 +0000 Received: by mail-vs1-xe2b.google.com with SMTP id ada2fe7eead31-5fdb47d6131so735347137.3 for ; Fri, 27 Feb 2026 23:28:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1772263680; cv=none; d=google.com; s=arc-20240605; b=FKrc3b8EA2qLn3Utg+9EH8aOlXgNFk1IqlOBCE9naGMjkEdSu43Ut7QbdzpojSWnWr K1jgD4xfZGYU2PrUaSt7n/KkV5oiGNNtXvIwjMMpdMHK3jcCnj8FU133aoQ0MXhTs+al V+53BAN4QFIWsKrSZ6XcuAlL1Wts30i4Ltu5LqR9vbxWfFR6Yu+kB6SC0sWnnKHZ0CpA EnNZkgo1MeNPcYqO88ahjtwf+dUwcsmONGeEQFxyYSNYsW2GeATg2nIuHtgMRHtqnvzI 0kEgoXwTk1ZLqGH7B40vO2lNVKHwLe5ojkzR273AwkIB7Ux31A2+A1Giw4d3AUdP3UZJ nD4g== 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=DZCwzfJl4hL/+GzaYnc+ORyrWjVmUB7cxlB1NEVNggo=; fh=dlhpMm+bQlVJnohgNWinM4EppW8ZzqJYrT6DLysv5C4=; b=lc6KvzCdCPb8CAvY4aTTlrpU0kcNhxyAoRmX6yphTIFZnmrp3OoTqDFTYeEobyVmFd ygtvtZ+OALgu3DCYiyKYD8CP7i199RDnqxd9X+V+YCzi1V0gY1lHtxQWnBS8fAWLaeZB AUs72C8ek8eh+TjxGwCpH0a5XTAof2RsaZDj/NhTc1NfbGkkiOlsu0Oeq6jAXbMZffrO HwSziHKzUi2PKqWshOxL8uGj/7iGcQdf+25uugIVFurhzPrMHwVjISJiRu5ZcZ+64Gup SnWJoLcxkTIegwUy8OSHihSnm+IuQz8bOFVMSWTehCCoSHvQWAS2BKVxwTmmbt3e/sT5 TK1Q==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772263680; x=1772868480; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=DZCwzfJl4hL/+GzaYnc+ORyrWjVmUB7cxlB1NEVNggo=; b=Da3DpRW52ntLue1yI71DmLU3tR4MUaXdLYeQ6fNz6iTD8TFe45gT+fyDAV5Q8GLhId nbSHwe9ZEuYQagoeTTcyXp43zi3tMjr9PBxiuucF/6IsnXHQBKRGmpJEVO4iIHztx70a 2cD/K+Xlk86VZdpzWRAfoVXvNZECMvLbbBgj2h/1GASXysXHm4bl5GXvEHzXQAb3BFmH EqJiM7YjgPO0u9d3Ur3GuCUr4OfBFkd30Rgjs/CgjzrCNhDot8ZLPnqKRYaHinf5VORS B713zeKOksAIgyVcdEgrMMyEcVxQ6z4TQt4NbFCGb0xni1uPmX0KL0xVn2ww1IYozshb rB+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772263680; x=1772868480; 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=DZCwzfJl4hL/+GzaYnc+ORyrWjVmUB7cxlB1NEVNggo=; b=Sxoc4UIQH5x1Trc7F7R6CdEVKVfrTW4oAhNCPsX5KRmwDZwuHv2xcmvfJ9x5AseUWf AWFy+tVl6mp5Qp9PCixscXKYFM8WZO6+ofnV1+cRU2qOecHdfcMPlaJ5icqNs1GdarCf cx3eXK1i7FWrRuSvRweHfq/If+cuZvfrW/64iVm6PvGJfGanCf+ML8rP86MJqGgeVImp A8uQ3krtyhqVL5V24uxhbJtxb8PNfc2py8nNx+FKEwSc91O8B/Z3u76ultdAvZf+B0Bp hqGvDsVHw01W9oK09KCd6PDPc8lxpmOW31xkGBG81K0gfcIsdnfUs11yGHdhmd/UY9u7 2JRw== X-Forwarded-Encrypted: i=1; AJvYcCXL2d5EmDdOwMs4E1LWZxODNojxqoPGdKYDd81YrBYW32hbJdkhYubuNFwb+rP41Y8ATh0y8wpEPtu/v2dd@postgresql.org X-Gm-Message-State: AOJu0YygbanE/xzAAA1q4yuXGY+NovuNKutDpJpe9Tda+ve1gri3jtnI TPtSvaYiI30rMi1+kUnbnT5hca/nmHWW2ojStXIywHiUnichJGqRrMFuzHeV6PPRYxkpuMuCSP5 BEDev8KoFul6kGduoXO/CsPg0MdvbokE= X-Gm-Gg: ATEYQzxN5iWO6xKn2MX+/6DINVWv6tz2GwvrXcyamUcF+ENz/e/nI3MghsjxxKDaWux 0R5c+Jbae+fNafIxFjxN7WLARVmQWjJEHMTIJp6ddHNn//3CbwokSjMFYQ2MnfcppL1TlvH+p66 Sktqk37L/MLiuSLkE4H7q9j6rDrmqNQDAw5r8NjFvO1AA6891NqCfUHpBWO6V6BLF1laHw7ZZKd u9ewDPCTSOMcodRlZU5tWi94snXl/pj1K814xgcRGclYoXgKPSwUo/73210f0dY12UJPljS0C4v EnAEPOogIo94230cyQ+L/9XR6ghqo7TPXxytqgsXKCM8JehfVDlsSuvdsWADNScNX3TgBSD5SD7 i0wkiEkhbUMQhDfoz8Y9daN0LT8E1O9BrSC9xs/3/3iRf+DfcgvhRzebxFF4WOI8D/5zxXf2zT1 psybIAxbRdntk9aqdidyYbOg== X-Received: by 2002:a05:6102:c47:b0:5ee:a7e9:f157 with SMTP id ada2fe7eead31-5ff325a93a7mr2308502137.40.1772263679626; Fri, 27 Feb 2026 23:27:59 -0800 (PST) MIME-Version: 1.0 References: <2B70C6CA-606B-438C-8EF2-84DCBA1C0813@gmail.com> <43c6b885.7d4a.19bd5b24501.Coremail.jinbinge@126.com> In-Reply-To: <43c6b885.7d4a.19bd5b24501.Coremail.jinbinge@126.com> From: jian he Date: Sat, 28 Feb 2026 15:27:21 +0800 X-Gm-Features: AaiRm535TZm3g-vU2r2DZzGMAaMh7jOFnSjmEcLilIoXxWiIPhqP-I2ex6GENt8 Message-ID: Subject: Re: let ALTER TABLE DROP COLUMN drop whole-row referenced object To: =?UTF-8?B?6YeR?= , Kirill Reshke Cc: Chao Li , PostgreSQL-development Content-Type: multipart/mixed; boundary="00000000000012aa9d064bdd4b08" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000012aa9d064bdd4b08 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Jan 19, 2026 at 2:56=E2=80=AFAM Kirill Reshke wrote: > > Hi! > I did take a look at v7. > > In 0001: > > > + indscan =3D systable_beginscan(pg_index, IndexIndrelidIndexId, true, > > + NULL, 1, &skey); > > + while (HeapTupleIsValid(htup =3D systable_getnext(indscan))) > > + { > > + Form_pg_index index =3D (Form_pg_index) GETSTRUCT(htup); > > + > > + /* add index's OID to result list */ > > + indexlist =3D lappend_oid(indexlist, index->indexrelid); > > + } > > + systable_endscan(indscan); > > + > > + table_close(pg_index, AccessShareLock); > > + > > + foreach_oid(indexoid, indexlist) > > + { > > Hmm, why is this not just a one cycle? Also, not sure how many > relations can be returned by pg_index scan. Maybe it is worth adding > CHECK_FOR_INTERRUPTS() here? > I refactored this part, I realized that v7 has some duplicated code in recordWholeRowDependencyOnOrError. After refactoring, CHECK_FOR_INTERRUPTS is not needed, I think. On Mon, Jan 19, 2026 at 6:00=E2=80=AFPM =E9=87=91 wrote: > > Hello, > > I did take a look at v7-0001 and v7-0002. > > In v7-0002: > > 1. > > + pull_varattnos(expr, PRS2_OLD_VARNO, &expr_attrs); > > + pull_varattnos(expr, PRS2_NEW_VARNO, &expr_attrs); > > The function "pull_varattnos" was called twice, with different varno para= meters each time (first using PRS2_NEW_VARNO, then using PRS2_OLD_VARNO). > I think it would be better to use PRS2_NEW_VARNO | PRS2_OLD_VARNO in a si= ngle call. > pull_varattnos(expr, PRS2_NEW_VARNO | PRS2_OLD_VARNO, &expr_attrs); > We are checking if the trig->tgqual expression referenced Var->varno equals PRS2_NEW_VARNO or PRS2_NEW_VARNO. PRS2_NEW_VARNO | PRS2_OLD_VARNO is equal to 3, So, I don't think it will work, see pull_varattnos_walker. > 2. > > > + if (trig->tgqual !=3D NULL) > > Should we first check if TRIGGER_FOR_ROW(trig->tgtype) before processing = trig->tgqual are more appropriate? I see. However, unconditionally checking the trigger's WHEN clause whole-row references seems better, IMHO. > 3. > Another issue is the Bitmapset set allocated by pull_varattnos will never= be released. This will cause a memory leak. > Please add the statement bms_free(expr_attrs); after each usage within th= e loops in recordWholeRowDependencyOnOrError. > > In v7-0001=EF=BC=9A > > As in v7-0002, the Bitmapset returned by pull_varattnos is never released= . > Please add the statement bms_free(expr_attrs); > Yech, In this case, we need ``bms_free(expr_attrs);`` because in the functi= on recordWholeRowDependencyOnOrError, we use the variable `expr_attrs` constan= tly. -- jian https://www.enterprisedb.com/ --00000000000012aa9d064bdd4b08 Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0002-disallow-drop-or-change-column-if-wholerow-trigger-exists.patch" Content-Disposition: attachment; filename="v8-0002-disallow-drop-or-change-column-if-wholerow-trigger-exists.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm5zz5zt1 RnJvbSAwMzA0YWNlYTgwZDBmMzM2YzQ3YzhkMWYzOGQ3MTYwMmJmMDhmNGRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjggRmViIDIwMjYgMTU6MTA6MTYgKzA4MDAKU3ViamVjdDogW1BBVENIIHY4 IDIvM10gZGlzYWxsb3cgZHJvcCBvciBjaGFuZ2UgY29sdW1uIGlmIHdob2xlcm93IHRyaWdnZXIK IGV4aXN0cwoKQUxURVIgVEFCTEUgRFJPUCBDT0xVTU4gd2lsbCBmYWlsIGlmIGFueSB0cmlnZ2Vy IFdIRU4gY2xhdXNlIGhhdmUgd2hvbGUtcm93IHJlZmVyZW5jZS4KSW4gdGhlIHJlY29yZFdob2xl Um93RGVwZW5kZW5jeU9uT3JFcnJvciBmdW5jdGlvbiwgd2UgcmVjb3JkIGEgZGVwZW5kZW5jeQpi ZXR3ZWVuIHRoZSByZWxhdGlvbiBhbmQgdGhlIHdob2xlLXJvdy1yZWZlcmVuY2VkIHRyaWdnZXIu ICBsYXRlcgpwZXJmb3JtTXVsdGlwbGVEZWxldGlvbnMgd2lsbCBkbyB0aGUgZGVsZWF0aW9uLgoK QUxURVIgQ09MVU1OIFNFVCBEQVRBIFRZUEUgZnVuZGFtZW50YWxseSBjaGFuZ2VzIHRoZSB0YWJs ZSdzIHJlY29yZCB0eXBlLiBBdApwcmVzZW50LCByZWNvcmRzIGNvbnRhaW5pbmcgY29sdW1ucyBv ZiBkaWZmZXJlbnQgZGF0YSB0eXBlcyBjYW5ub3QgYmUgY29tcGFyZWQKKHNlZSByZWNvcmRfZXEp LiBUaGVyZWZvcmUgQUxURVIgQ09MVU1OIFNFVCBEQVRBIFRZUEUgc2hvdWxkIGVycnIgb3V0IGlu IHRoaXMKY2FzZSwgb3RoZXJ3aXNlIGFueSB0cmlnZ2VyIFdIRU4gY2xhdXNlIHRoYXQgY29tcGFy ZXMgd2hvbGUtcm93IHZhbHVlcyBtYXkKYWx3YXlzIGV2YWx1YXRlIHRvIGVyb3JyIG91dC4KCmRp c2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FDSnVmeEdBNktWUXk3RGJIR0xWdzlzOUtL bXBHeVp0NU1FNkM3a0VmakRwcjJ3WkN3QG1haWwuZ21haWwuY29tCmNvbW1pdGZlc3Q6IGh0dHBz Oi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy9wYXRjaC82MDU1Ci0tLQogc3JjL2JhY2tlbmQv Y29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgIHwgMzUgKysrKysrKysrKysrKysrKysrKysr Kwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JlaWduX2RhdGEub3V0IHwgMTMgKysrKysr KysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHJpZ2dlcnMub3V0ICAgICB8IDI3ICsrKysr KysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JlaWduX2RhdGEuc3FsICAgICAg fCAgOSArKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RyaWdnZXJzLnNxbCAgICAgICAgICB8 IDE3ICsrKysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDEwMSBpbnNlcnRpb25zKCspCgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9j b21tYW5kcy90YWJsZWNtZHMuYwppbmRleCBkYTQzZTllZmVkNC4uZGU5YWQ0YWIxOTUgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0yMzU1MSw0ICsyMzU1MSwzOSBAQCByZWNvcmRXaG9s ZVJvd0RlcGVuZGVuY3lPbk9yRXJyb3IoUmVsYXRpb24gcmVsLCBjb25zdCBPYmplY3RBZGRyZXNz ICpvYmplY3QsCiAJc3lzdGFibGVfZW5kc2NhbihpbmRzY2FuKTsKIAogCXRhYmxlX2Nsb3NlKHBn X2luZGV4LCBBY2Nlc3NTaGFyZUxvY2spOworCisJLyogTm93IGNoZWNraW5nIHRyaWdnZXIgd2hv bGUtcm93IHJlZmVyZW5jZXMgKi8KKwlpZiAocmVsLT50cmlnZGVzYyAhPSBOVUxMKQorCXsKKwkJ Zm9yIChpbnQgaSA9IDA7IGkgPCByZWwtPnRyaWdkZXNjLT5udW10cmlnZ2VyczsgaSsrKQorCQl7 CisJCQlUcmlnZ2VyICAgICp0cmlnID0gJnJlbC0+dHJpZ2Rlc2MtPnRyaWdnZXJzW2ldOworCisJ CQlpZiAodHJpZy0+dGdxdWFsID09IE5VTEwpCisJCQkJY29udGludWU7CisKKwkJCWV4cHIgPSBz dHJpbmdUb05vZGUodHJpZy0+dGdxdWFsKTsKKworCQkJcHVsbF92YXJhdHRub3MoZXhwciwgUFJT Ml9PTERfVkFSTk8sICZleHByX2F0dHJzKTsKKworCQkJcHVsbF92YXJhdHRub3MoZXhwciwgUFJT Ml9ORVdfVkFSTk8sICZleHByX2F0dHJzKTsKKworCQkJaGF2ZV93aG9sZXJvdyA9IGJtc19pc19t ZW1iZXIoMCAtIEZpcnN0TG93SW52YWxpZEhlYXBBdHRyaWJ1dGVOdW1iZXIsCisJCQkJCQkJCQkJ ICBleHByX2F0dHJzKTsKKwkJCWJtc19mcmVlKGV4cHJfYXR0cnMpOworCQkJZXhwcl9hdHRycyA9 IE5VTEw7CisKKwkJCWlmIChoYXZlX3dob2xlcm93KQorCQkJeworCQkJCU9iamVjdEFkZHJlc3Mg dHJpZ19vYmo7CisKKwkJCQl0cmlnX29iai5jbGFzc0lkID0gVHJpZ2dlclJlbGF0aW9uSWQ7CisJ CQkJdHJpZ19vYmoub2JqZWN0SWQgPSB0cmlnLT50Z29pZDsKKwkJCQl0cmlnX29iai5vYmplY3RT dWJJZCA9IDA7CisKKwkJCQlyZWNvcmREZXBlbmRlbmN5T25PckVycm9yKHJlbCwgJnRyaWdfb2Jq LCBvYmplY3QsIGVycm9yX291dCwKKwkJCQkJCQkJCQkgIERFUEVOREVOQ1lfTk9STUFMKTsKKwkJ CX0KKwkJfQorCX0KIH0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9y ZWlnbl9kYXRhLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yZWlnbl9kYXRhLm91 dAppbmRleCBjY2U0OWU1MDlhYi4uMDMzYWVmYmI2NGYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvZm9yZWlnbl9kYXRhLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2ZvcmVpZ25fZGF0YS5vdXQKQEAgLTEzOTgsNiArMTM5OCwxOSBAQCBEUk9QIFRSSUdH RVIgdHJpZ3Rlc3RfYmVmb3JlX3N0bXQgT04gZm9yZWlnbl9zY2hlbWEuZm9yZWlnbl90YWJsZV8x OwogRFJPUCBUUklHR0VSIHRyaWd0ZXN0X2JlZm9yZV9yb3cgT04gZm9yZWlnbl9zY2hlbWEuZm9y ZWlnbl90YWJsZV8xOwogRFJPUCBUUklHR0VSIHRyaWd0ZXN0X2FmdGVyX3N0bXQgT04gZm9yZWln bl9zY2hlbWEuZm9yZWlnbl90YWJsZV8xOwogRFJPUCBUUklHR0VSIHRyaWd0ZXN0X2FmdGVyX3Jv dyBPTiBmb3JlaWduX3NjaGVtYS5mb3JlaWduX3RhYmxlXzE7CitDUkVBVEUgVFJJR0dFUiB0cmln dGVzdF9iZWZvcmVfc3RtdCBCRUZPUkUgSU5TRVJUIE9SIFVQREFURQorT04gZm9yZWlnbl9zY2hl bWEuZm9yZWlnbl90YWJsZV8xCitGT1IgRUFDSCBST1cKK1dIRU4gKG5ldyBJUyBOT1QgTlVMTCkK K0VYRUNVVEUgUFJPQ0VEVVJFIGR1bW15X3RyaWdnZXIoKTsKK0FMVEVSIEZPUkVJR04gVEFCTEUg Zm9yZWlnbl9zY2hlbWEuZm9yZWlnbl90YWJsZV8xIEFMVEVSIENPTFVNTiBjNyBTRVQgREFUQSBU WVBFIGJpZ2ludDsgLS0gZXJyb3IKK0VSUk9SOiAgY2Fubm90IGFsdGVyIHRhYmxlICJmb3JlaWdu X3RhYmxlXzEiIGJlY2F1c2UgdHJpZ2dlciB0cmlndGVzdF9iZWZvcmVfc3RtdCBvbiBmb3JlaWdu IHRhYmxlIGZvcmVpZ25fc2NoZW1hLmZvcmVpZ25fdGFibGVfMSB1c2VzIGl0cyByb3cgdHlwZQor SElOVDogIFlvdSBtaWdodCBuZWVkIHRvIGRyb3AgdHJpZ2dlciB0cmlndGVzdF9iZWZvcmVfc3Rt dCBvbiBmb3JlaWduIHRhYmxlIGZvcmVpZ25fc2NoZW1hLmZvcmVpZ25fdGFibGVfMSBmaXJzdAor QUxURVIgRk9SRUlHTiBUQUJMRSBmb3JlaWduX3NjaGVtYS5mb3JlaWduX3RhYmxlXzEgRFJPUCBD T0xVTU4gYzc7IC0tIGVycm9yCitFUlJPUjogIGNhbm5vdCBkcm9wIGNvbHVtbiBjNyBvZiBmb3Jl aWduIHRhYmxlIGZvcmVpZ25fc2NoZW1hLmZvcmVpZ25fdGFibGVfMSBiZWNhdXNlIG90aGVyIG9i amVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICB0cmlnZ2VyIHRyaWd0ZXN0X2JlZm9yZV9zdG10 IG9uIGZvcmVpZ24gdGFibGUgZm9yZWlnbl9zY2hlbWEuZm9yZWlnbl90YWJsZV8xIGRlcGVuZHMg b24gY29sdW1uIGM3IG9mIGZvcmVpZ24gdGFibGUgZm9yZWlnbl9zY2hlbWEuZm9yZWlnbl90YWJs ZV8xCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9i amVjdHMgdG9vLgorRFJPUCBUUklHR0VSIHRyaWd0ZXN0X2JlZm9yZV9zdG10IE9OIGZvcmVpZ25f c2NoZW1hLmZvcmVpZ25fdGFibGVfMTsKIERST1AgRlVOQ1RJT04gZHVtbXlfdHJpZ2dlcigpOwog LS0gVGFibGUgaW5oZXJpdGFuY2UKIENSRUFURSBUQUJMRSBmZF9wdDEgKApkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmlnZ2Vycy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3RyaWdnZXJzLm91dAppbmRleCA5OGRlZTYzYjUwYS4uNmQyMDJkY2NhZmYgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHJpZ2dlcnMub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHJpZ2dlcnMub3V0CkBAIC0yMjcsNiArMjI3LDMzIEBA IEVSUk9SOiAgdHJpZ2dlciAibm9fc3VjaF90cmlnZ2VyIiBmb3IgdGFibGUgIm1haW5fdGFibGUi IGRvZXMgbm90IGV4aXN0CiBDT01NRU5UIE9OIFRSSUdHRVIgYmVmb3JlX2luc19zdG10X3RyaWcg T04gbWFpbl90YWJsZSBJUyAncmlnaHQnOwogQ09NTUVOVCBPTiBUUklHR0VSIGJlZm9yZV9pbnNf c3RtdF90cmlnIE9OIG1haW5fdGFibGUgSVMgTlVMTDsKIC0tCistLSB0ZXN0IHRyaWdnZXJzIHdp dGggV0hFTiBjbGF1c2UgY29udGFpbiB3aG9sZXJvdyByZWZlcmVuY2UKKy0tCitDUkVBVEUgVEFC TEUgdGVzdF90YmwxIChhIGludCwgYiBpbnQpIFBBUlRJVElPTiBCWSBSQU5HRSAoYSk7CitDUkVB VEUgVEFCTEUgdGVzdF90YmwxcDEgUEFSVElUSU9OIE9GIHRlc3RfdGJsMSBGT1IgVkFMVUVTIEZS T00gKDApIFRPICgxMDAwKTsKK0NSRUFURSBUUklHR0VSIHRlc3RfdGJsMXAxX3RyaWcKKyAgICBC RUZPUkUgSU5TRVJUIE9SIFVQREFURSBPTiB0ZXN0X3RibDFwMSBGT1IgRUFDSCBST1cKKyAgICBX SEVOIChuZXcgPSBST1cgKDEsIDEpKQorICAgIEVYRUNVVEUgUFJPQ0VEVVJFIHRyaWdnZXJfZnVu YyAoJ3Rlc3RfdGJsMXAxJyk7CitBTFRFUiBUQUJMRSB0ZXN0X3RibDEgQUxURVIgQ09MVU1OIGIg U0VUIERBVEEgVFlQRSBiaWdpbnQ7IC0tIGVycm9yCitFUlJPUjogIGNhbm5vdCBhbHRlciB0YWJs ZSAidGVzdF90YmwxcDEiIGJlY2F1c2UgdHJpZ2dlciB0ZXN0X3RibDFwMV90cmlnIG9uIHRhYmxl IHRlc3RfdGJsMXAxIHVzZXMgaXRzIHJvdyB0eXBlCitISU5UOiAgWW91IG1pZ2h0IG5lZWQgdG8g ZHJvcCB0cmlnZ2VyIHRlc3RfdGJsMXAxX3RyaWcgb24gdGFibGUgdGVzdF90YmwxcDEgZmlyc3QK K0FMVEVSIFRBQkxFIHRlc3RfdGJsMSBEUk9QIENPTFVNTiBiOyAtLSBlcnJvcgorRVJST1I6ICBj YW5ub3QgZHJvcCBkZXNpcmVkIG9iamVjdChzKSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5k IG9uIHRoZW0KK0RFVEFJTDogIHRyaWdnZXIgdGVzdF90YmwxcDFfdHJpZyBvbiB0YWJsZSB0ZXN0 X3RibDFwMSBkZXBlbmRzIG9uIGNvbHVtbiBiIG9mIHRhYmxlIHRlc3RfdGJsMXAxCitISU5UOiAg VXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgor QUxURVIgVEFCTEUgdGVzdF90YmwxIERST1AgQ09MVU1OIGIgQ0FTQ0FERTsgLS0gb2sKK05PVElD RTogIGRyb3AgY2FzY2FkZXMgdG8gdHJpZ2dlciB0ZXN0X3RibDFwMV90cmlnIG9uIHRhYmxlIHRl c3RfdGJsMXAxCitcZCsgdGVzdF90YmwxCisgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJ0 aXRpb25lZCB0YWJsZSAicHVibGljLnRlc3RfdGJsMSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29s bGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgU3RvcmFnZSB8IFN0YXRzIHRhcmdldCB8IERl c2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgYSAgICAgIHwg aW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgfCAgICAg ICAgICAgICAgfCAKK1BhcnRpdGlvbiBrZXk6IFJBTkdFIChhKQorUGFydGl0aW9uczogdGVzdF90 YmwxcDEgRk9SIFZBTFVFUyBGUk9NICgwKSBUTyAoMTAwMCkKKworRFJPUCBUQUJMRSB0ZXN0X3Ri bDE7CistLQogLS0gdGVzdCB0cmlnZ2VycyB3aXRoIFdIRU4gY2xhdXNlCiAtLQogQ1JFQVRFIFRS SUdHRVIgbW9kaWZpZWRfYSBCRUZPUkUgVVBEQVRFIE9GIGEgT04gbWFpbl90YWJsZQpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yZWlnbl9kYXRhLnNxbCBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2ZvcmVpZ25fZGF0YS5zcWwKaW5kZXggYWExNDdiMTRhOTAuLmRhYTdiYzBkZjBm IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JlaWduX2RhdGEuc3FsCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2ZvcmVpZ25fZGF0YS5zcWwKQEAgLTYzMCw2ICs2MzAsMTUg QEAgRFJPUCBUUklHR0VSIHRyaWd0ZXN0X2JlZm9yZV9yb3cgT04gZm9yZWlnbl9zY2hlbWEuZm9y ZWlnbl90YWJsZV8xOwogRFJPUCBUUklHR0VSIHRyaWd0ZXN0X2FmdGVyX3N0bXQgT04gZm9yZWln bl9zY2hlbWEuZm9yZWlnbl90YWJsZV8xOwogRFJPUCBUUklHR0VSIHRyaWd0ZXN0X2FmdGVyX3Jv dyBPTiBmb3JlaWduX3NjaGVtYS5mb3JlaWduX3RhYmxlXzE7CiAKK0NSRUFURSBUUklHR0VSIHRy aWd0ZXN0X2JlZm9yZV9zdG10IEJFRk9SRSBJTlNFUlQgT1IgVVBEQVRFCitPTiBmb3JlaWduX3Nj aGVtYS5mb3JlaWduX3RhYmxlXzEKK0ZPUiBFQUNIIFJPVworV0hFTiAobmV3IElTIE5PVCBOVUxM KQorRVhFQ1VURSBQUk9DRURVUkUgZHVtbXlfdHJpZ2dlcigpOworQUxURVIgRk9SRUlHTiBUQUJM RSBmb3JlaWduX3NjaGVtYS5mb3JlaWduX3RhYmxlXzEgQUxURVIgQ09MVU1OIGM3IFNFVCBEQVRB IFRZUEUgYmlnaW50OyAtLSBlcnJvcgorQUxURVIgRk9SRUlHTiBUQUJMRSBmb3JlaWduX3NjaGVt YS5mb3JlaWduX3RhYmxlXzEgRFJPUCBDT0xVTU4gYzc7IC0tIGVycm9yCitEUk9QIFRSSUdHRVIg dHJpZ3Rlc3RfYmVmb3JlX3N0bXQgT04gZm9yZWlnbl9zY2hlbWEuZm9yZWlnbl90YWJsZV8xOwor CiBEUk9QIEZVTkNUSU9OIGR1bW15X3RyaWdnZXIoKTsKIAogLS0gVGFibGUgaW5oZXJpdGFuY2UK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RyaWdnZXJzLnNxbCBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3RyaWdnZXJzLnNxbAppbmRleCBlYTM5ODE3ZWUzZC4uYzIyMDBkNmFhOTYg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RyaWdnZXJzLnNxbAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC90cmlnZ2Vycy5zcWwKQEAgLTE1OCw2ICsxNTgsMjMgQEAgQ09NTUVO VCBPTiBUUklHR0VSIG5vX3N1Y2hfdHJpZ2dlciBPTiBtYWluX3RhYmxlIElTICd3cm9uZyc7CiBD T01NRU5UIE9OIFRSSUdHRVIgYmVmb3JlX2luc19zdG10X3RyaWcgT04gbWFpbl90YWJsZSBJUyAn cmlnaHQnOwogQ09NTUVOVCBPTiBUUklHR0VSIGJlZm9yZV9pbnNfc3RtdF90cmlnIE9OIG1haW5f dGFibGUgSVMgTlVMTDsKIAorLS0KKy0tIHRlc3QgdHJpZ2dlcnMgd2l0aCBXSEVOIGNsYXVzZSBj b250YWluIHdob2xlcm93IHJlZmVyZW5jZQorLS0KK0NSRUFURSBUQUJMRSB0ZXN0X3RibDEgKGEg aW50LCBiIGludCkgUEFSVElUSU9OIEJZIFJBTkdFIChhKTsKK0NSRUFURSBUQUJMRSB0ZXN0X3Ri bDFwMSBQQVJUSVRJT04gT0YgdGVzdF90YmwxIEZPUiBWQUxVRVMgRlJPTSAoMCkgVE8gKDEwMDAp OworCitDUkVBVEUgVFJJR0dFUiB0ZXN0X3RibDFwMV90cmlnCisgICAgQkVGT1JFIElOU0VSVCBP UiBVUERBVEUgT04gdGVzdF90YmwxcDEgRk9SIEVBQ0ggUk9XCisgICAgV0hFTiAobmV3ID0gUk9X ICgxLCAxKSkKKyAgICBFWEVDVVRFIFBST0NFRFVSRSB0cmlnZ2VyX2Z1bmMgKCd0ZXN0X3RibDFw MScpOworCitBTFRFUiBUQUJMRSB0ZXN0X3RibDEgQUxURVIgQ09MVU1OIGIgU0VUIERBVEEgVFlQ RSBiaWdpbnQ7IC0tIGVycm9yCitBTFRFUiBUQUJMRSB0ZXN0X3RibDEgRFJPUCBDT0xVTU4gYjsg LS0gZXJyb3IKK0FMVEVSIFRBQkxFIHRlc3RfdGJsMSBEUk9QIENPTFVNTiBiIENBU0NBREU7IC0t IG9rCitcZCsgdGVzdF90YmwxCitEUk9QIFRBQkxFIHRlc3RfdGJsMTsKKwogLS0KIC0tIHRlc3Qg dHJpZ2dlcnMgd2l0aCBXSEVOIGNsYXVzZQogLS0KLS0gCjIuMzQuMQoK --00000000000012aa9d064bdd4b08 Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0003-disallow-ALTER-TABLE-ALTER-COLUMN-when-wholerow-referenced-policy.patch" Content-Disposition: attachment; filename="v8-0003-disallow-ALTER-TABLE-ALTER-COLUMN-when-wholerow-referenced-policy.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm5zz5zk0 RnJvbSA0Y2JiNTQ0ODY4MzI3ODBhMTQ1NDA2NTg3OWJhMTk1N2EzYTc4YmVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjggRmViIDIwMjYgMTU6MTI6MTIgKzA4MDAKU3ViamVjdDogW1BBVENIIHY4 IDMvM10gZGlzYWxsb3cgQUxURVIgVEFCTEUgQUxURVIgQ09MVU1OIHdoZW4gd2hvbGVyb3cKIHJl ZmVyZW5jZWQgcG9saWN5IGV4aXN0cwoKUG9saWN5IGhhdmUgYSBERVBFTkRFTkNZX05PUk1BTCB0 eXBlIHdpdGggdGhlaXIgc291cmNlIHRhYmxlLiAgUG9saWN5J3MgcXVhbCBhbmQKd2l0aCBjaGVj ayBxdWFsIGFyZSBxdWl0ZSB1bmNvbnN0cmFpbmVkIChhbGxvd2luZyBzdWJxdWVyaWVzKSwgd2Ug Y2FuJ3QgcmVsaWFibHkKdXNlIHB1bGxfdmFyYXR0bm9zIHRvIGRldGVjdCBpZiB0aGV5IGNvbnRh aW4gc3VicXVlcmllcy4gIEEgZnVydGhlciBjb21wbGljYXRpb24KaXMgdGhhdCB0aGUgcXVhbCBh bmQgd2l0aCBjaGVjayBxdWFsIHdob2xlLXJvdyBWYXIgbWF5IG5vdCBvbmx5IHJlZmVyZW5jZXMg dGhlaXIKb3duIHRhYmxlIGJ1dCBhbHNvIGZvciBvdGhlciB1bnJlbGF0ZWQgdGFibGVzLgoKVGhl cmVmb3JlIFdlIHNob3VsZCBjaGVjayBwZ19kZXBlbmQsIG5vdCBwZ19wb2xpY3ksIHRvIHNlZSBp ZiBkcm9wcGluZyB0aGlzCnRhYmxlIGFmZmVjdHMgYW55IHBvbGljeSBvYmplY3RzLiBBZnRlciBj b2xsZWN0aW5nIHRoZSBwb2xpY2llcyBpbXBhY3RlZCBieSB0aGUKQUxURVIgVEFCTEUgY29tbWFu ZCwgY2hlY2sgZWFjaCBwb2xpY3kgcXVhbCBhbmQgd2l0aCBjaGVjayBxdWFsLCBzZWUgaWYKd2hv bGUtcm93IHJlZmVyZW5jZXMgb3Igbm90LgoKZGVtbzoKQ1JFQVRFIFRBQkxFIHJsc190YmwgKGEg aW50LCBiIGludCwgYyBpbnQpOwpDUkVBVEUgVEFCTEUgdCAoYSBpbnQpOwpDUkVBVEUgUE9MSUNZ IHAxIE9OIHJsc190YmwgVVNJTkcgKHJsc190YmwgPj0gUk9XKDEsMSwxKSBhbmQgKHNlbGVjdCB0 IGlzIG51bGwgZnJvbSB0KSk7CgpBTFRFUiBUQUJMRSB0IERST1AgQ09MVU1OIGE7IC0tZXJyb3IK RVJST1I6ICBjYW5ub3QgZHJvcCBjb2x1bW4gYSBvZiB0YWJsZSB0IGJlY2F1c2Ugb3RoZXIgb2Jq ZWN0cyBkZXBlbmQgb24gaXQKREVUQUlMOiAgcG9saWN5IHAxIG9uIHRhYmxlIHJsc190YmwgZGVw ZW5kcyBvbiBjb2x1bW4gYSBvZiB0YWJsZSB0CkhJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0 byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCgpBTFRFUiBUQUJMRSBybHNfdGJsIERS T1AgQ09MVU1OIGI7IC0tZXJyb3IKRVJST1I6ICBjYW5ub3QgZHJvcCBjb2x1bW4gYiBvZiB0YWJs ZSBybHNfdGJsIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKREVUQUlMOiAgcG9s aWN5IHAxIG9uIHRhYmxlIHJsc190YmwgZGVwZW5kcyBvbiBjb2x1bW4gYiBvZiB0YWJsZSBybHNf dGJsCkhJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2Jq ZWN0cyB0b28uCgpBTFRFUiBUQUJMRSBybHNfdGJsIEFMVEVSIENPTFVNTiBiIFNFVCBEQVRBIFRZ UEUgQklHSU5UOyAtLWVycm9yCkVSUk9SOiAgY2Fubm90IGFsdGVyIHRhYmxlICJybHNfdGJsIiBi ZWNhdXNlIHNlY3VyaXR5IHBvbGljeSAicDEiIHVzZXMgaXRzIHJvdyB0eXBlCkhJTlQ6ICBZb3Ug bWlnaHQgbmVlZCB0byBkcm9wIHBvbGljeSAicDEiIGZpcnN0CgpBTFRFUiBUQUJMRSB0IEFMVEVS IENPTFVNTiBhIFNFVCBEQVRBIFRZUEUgQklHSU5UOyAtLWVycm9yCkVSUk9SOiAgY2Fubm90IGFs dGVyIHRhYmxlICJ0IiBiZWNhdXNlIHNlY3VyaXR5IHBvbGljeSAicDEiIHVzZXMgaXRzIHJvdyB0 eXBlCkhJTlQ6ICBZb3UgbWlnaHQgbmVlZCB0byBkcm9wIHNlY3VyaXR5IHBvbGljeSAicDEiIGZp cnN0CgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBQ0p1ZnhHQTZLVlF5N0RiSEdM Vnc5czlLS21wR3ladDVNRTZDN2tFZmpEcHIyd1pDd0BtYWlsLmdtYWlsLmNvbQpjb21taXRmZXN0 OiBodHRwczovL2NvbW1pdGZlc3QucG9zdGdyZXNxbC5vcmcvcGF0Y2gvNjA1NQotLS0KIHNyYy9i YWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jICAgICAgICAgIHwgMTIzICsrKysrKysrKysrKysr KysrKysrKysKIHNyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3Zhci5jICAgICAgICAgIHwgIDU0 ICsrKysrKysrKysKIHNyYy9pbmNsdWRlL29wdGltaXplci9vcHRpbWl6ZXIuaCAgICAgICAgIHwg ICAxICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcm93c2VjdXJpdHkub3V0IHwgIDI5ICsr KystCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9yb3dzZWN1cml0eS5zcWwgICAgICB8ICAxNyArKysK IHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgIHwgICAxICsKIDYgZmls ZXMgY2hhbmdlZCwgMjIzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYwppbmRleCBkZTlhZDRhYjE5NS4uNGI0NTNiYmNhMDMgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jCkBAIC03NDksNiArNzQ5LDggQEAgc3RhdGljIHZvaWQgcmVjb3JkV2hv bGVSb3dEZXBlbmRlbmN5T25PckVycm9yKFJlbGF0aW9uIHJlbCwKIAkJCQkJCQkJCQkJICBjb25z dCBPYmplY3RBZGRyZXNzICpvYmplY3QsCiAJCQkJCQkJCQkJCSAgYm9vbCBlcnJvcl9vdXQpOwog CitzdGF0aWMgTGlzdCAqR2V0UmVsUG9saWNpZXMoUmVsYXRpb24gcmVsKTsKKwogLyogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogICoJCURlZmluZVJlbGF0aW9uCiAgKgkJCQlDcmVhdGVzIGEgbmV3IHJlbGF0aW9uLgpAQCAt MjM0MDQsNiArMjM0MDYsOSBAQCByZWNvcmRXaG9sZVJvd0RlcGVuZGVuY3lPbk9yRXJyb3IoUmVs YXRpb24gcmVsLCBjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsCiAJYm9vbAkJaGF2ZV93aG9s ZXJvdyA9IGZhbHNlOwogCUxpc3QJICAgKndob2xlcm93X2lkeG9pZHMgPSBOSUw7CiAJVHVwbGVD b25zdHIgKmNvbnN0ciA9IFJlbGF0aW9uR2V0RGVzY3IocmVsKS0+Y29uc3RyOworCUxpc3QJICAg KnBvbHMgPSBOSUw7CisJUmVsYXRpb24JcGdfcG9saWN5OworCU9pZAkJCXJlbHR5cGlkOwogCiAJ LyoKIAkgKiBMb29wIHRocm91Z2ggZWFjaCBDSEVDSyBjb25zdHJhaW50LCBzZWUgaWYgaXQgY29u dGFpbiB3aG9sZS1yb3cKQEAgLTIzNTg2LDQgKzIzNTkxLDEyMiBAQCByZWNvcmRXaG9sZVJvd0Rl cGVuZGVuY3lPbk9yRXJyb3IoUmVsYXRpb24gcmVsLCBjb25zdCBPYmplY3RBZGRyZXNzICpvYmpl Y3QsCiAJCQl9CiAJCX0KIAl9CisKKwkvKiBOb3cgY2hlY2tpbmcgcG9saWN5IHdob2xlLXJvdyBy ZWZlcmVuY2VzICovCisJcmVsdHlwaWQgPSBnZXRfcmVsX3R5cGVfaWQoUmVsYXRpb25HZXRSZWxp ZChyZWwpKTsKKworCXBnX3BvbGljeSA9IHRhYmxlX29wZW4oUG9saWN5UmVsYXRpb25JZCwgQWNj ZXNzU2hhcmVMb2NrKTsKKworCXBvbHMgPSBHZXRSZWxQb2xpY2llcyhyZWwpOworCisJZm9yZWFj aF9vaWQocG9saWN5b2lkLCBwb2xzKQorCXsKKwkJU3lzU2NhbkRlc2Mgc3NjYW47CisJCUhlYXBU dXBsZQlwb2xpY3lfdHVwbGU7CisJCVNjYW5LZXlEYXRhIHBvbHNrZXlbMV07CisJCU9iamVjdEFk ZHJlc3MgcG9sX29iajsKKworCQlTY2FuS2V5SW5pdCgmcG9sc2tleVswXSwKKwkJCQkJQW51bV9w Z19wb2xpY3lfb2lkLAorCQkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJ CU9iamVjdElkR2V0RGF0dW0ocG9saWN5b2lkKSk7CisJCXNzY2FuID0gc3lzdGFibGVfYmVnaW5z Y2FuKHBnX3BvbGljeSwKKwkJCQkJCQkJICAgUG9saWN5T2lkSW5kZXhJZCwgdHJ1ZSwgTlVMTCwg MSwKKwkJCQkJCQkJICAgcG9sc2tleSk7CisJCXdoaWxlIChIZWFwVHVwbGVJc1ZhbGlkKHBvbGlj eV90dXBsZSA9IHN5c3RhYmxlX2dldG5leHQoc3NjYW4pKSkKKwkJeworCQkJRm9ybV9wZ19wb2xp Y3kgcG9saWN5ID0gKEZvcm1fcGdfcG9saWN5KSBHRVRTVFJVQ1QocG9saWN5X3R1cGxlKTsKKwor CQkJZXhwckRhdHVtID0gaGVhcF9nZXRhdHRyKHBvbGljeV90dXBsZSwgQW51bV9wZ19wb2xpY3lf cG9scXVhbCwKKwkJCQkJCQkJCSBSZWxhdGlvbkdldERlc2NyKHBnX3BvbGljeSksCisJCQkJCQkJ CQkgJmlzbnVsbCk7CisJCQlpZiAoIWlzbnVsbCkKKwkJCXsKKwkJCQlleHByU3RyaW5nID0gVGV4 dERhdHVtR2V0Q1N0cmluZyhleHByRGF0dW0pOworCQkJCWV4cHIgPSAoTm9kZSAqKSBzdHJpbmdU b05vZGUoZXhwclN0cmluZyk7CisJCQkJcGZyZWUoZXhwclN0cmluZyk7CisKKwkJCQloYXZlX3do b2xlcm93ID0gZXhwckNvbnRhaW5XaG9sZVJvdyhleHByLCByZWx0eXBpZCk7CisKKwkJCQlpZiAo aGF2ZV93aG9sZXJvdykKKwkJCQl7CisJCQkJCXBvbF9vYmouY2xhc3NJZCA9IFBvbGljeVJlbGF0 aW9uSWQ7CisJCQkJCXBvbF9vYmoub2JqZWN0SWQgPSBwb2xpY3ktPm9pZDsKKwkJCQkJcG9sX29i ai5vYmplY3RTdWJJZCA9IDA7CisKKwkJCQkJcmVjb3JkRGVwZW5kZW5jeU9uT3JFcnJvcihyZWws ICZwb2xfb2JqLCBvYmplY3QsIGVycm9yX291dCwKKwkJCQkJCQkJCQkJICBERVBFTkRFTkNZX05P Uk1BTCk7CisKKwkJCQkJY29udGludWU7CisJCQkJfQorCQkJfQorCisJCQlleHByRGF0dW0gPSBo ZWFwX2dldGF0dHIocG9saWN5X3R1cGxlLCBBbnVtX3BnX3BvbGljeV9wb2x3aXRoY2hlY2ssCisJ CQkJCQkJCQkgUmVsYXRpb25HZXREZXNjcihwZ19wb2xpY3kpLAorCQkJCQkJCQkJICZpc251bGwp OworCQkJaWYgKCFpc251bGwpCisJCQl7CisJCQkJZXhwclN0cmluZyA9IFRleHREYXR1bUdldENT dHJpbmcoZXhwckRhdHVtKTsKKwkJCQlleHByID0gKE5vZGUgKikgc3RyaW5nVG9Ob2RlKGV4cHJT dHJpbmcpOworCQkJCXBmcmVlKGV4cHJTdHJpbmcpOworCisJCQkJaGF2ZV93aG9sZXJvdyA9IGV4 cHJDb250YWluV2hvbGVSb3coZXhwciwgcmVsdHlwaWQpOworCisJCQkJaWYgKGhhdmVfd2hvbGVy b3cpCisJCQkJeworCQkJCQlwb2xfb2JqLmNsYXNzSWQgPSBQb2xpY3lSZWxhdGlvbklkOworCQkJ CQlwb2xfb2JqLm9iamVjdElkID0gcG9saWN5LT5vaWQ7CisJCQkJCXBvbF9vYmoub2JqZWN0U3Vi SWQgPSAwOworCisJCQkJCXJlY29yZERlcGVuZGVuY3lPbk9yRXJyb3IocmVsLCAmcG9sX29iaiwg b2JqZWN0LCBlcnJvcl9vdXQsCisJCQkJCQkJCQkJCSAgREVQRU5ERU5DWV9OT1JNQUwpOworCQkJ CX0KKwkJCX0KKwkJfQorCQlzeXN0YWJsZV9lbmRzY2FuKHNzY2FuKTsKKwl9CisJdGFibGVfY2xv c2UocGdfcG9saWN5LCBBY2Nlc3NTaGFyZUxvY2spOworfQorCitzdGF0aWMgTGlzdCAqCitHZXRS ZWxQb2xpY2llcyhSZWxhdGlvbiByZWwpCit7CisJUmVsYXRpb24JZGVwUmVsOworCVNjYW5LZXlE YXRhIGtleVszXTsKKwlTeXNTY2FuRGVzYyBzY2FuOworCUhlYXBUdXBsZQlkZXBUdXA7CisJTGlz dAkgICAqcmVzdWx0ID0gTklMOworCisJZGVwUmVsID0gdGFibGVfb3BlbihEZXBlbmRSZWxhdGlv bklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwlTY2FuS2V5SW5pdCgma2V5WzBdLAorCQkJCUFudW1f cGdfZGVwZW5kX3JlZmNsYXNzaWQsCisJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX09JREVR LAorCQkJCU9iamVjdElkR2V0RGF0dW0oUmVsYXRpb25SZWxhdGlvbklkKSk7CisJU2NhbktleUlu aXQoJmtleVsxXSwKKwkJCQlBbnVtX3BnX2RlcGVuZF9yZWZvYmppZCwKKwkJCQlCVEVxdWFsU3Ry YXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJT2JqZWN0SWRHZXREYXR1bShSZWxhdGlvbkdldFJl bGlkKHJlbCkpKTsKKwlTY2FuS2V5SW5pdCgma2V5WzJdLAorCQkJCUFudW1fcGdfZGVwZW5kX3Jl Zm9ianN1YmlkLAorCQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwgRl9JTlQ0RVEsCisJCQkJSW50 MzJHZXREYXR1bSgoaW50MzIpIDApKTsKKworCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4oZGVw UmVsLCBEZXBlbmRSZWZlcmVuY2VJbmRleElkLCB0cnVlLAorCQkJCQkJCSAgTlVMTCwgMywga2V5 KTsKKwl3aGlsZSAoSGVhcFR1cGxlSXNWYWxpZChkZXBUdXAgPSBzeXN0YWJsZV9nZXRuZXh0KHNj YW4pKSkKKwl7CisJCUZvcm1fcGdfZGVwZW5kIGZvdW5kRGVwID0gKEZvcm1fcGdfZGVwZW5kKSBH RVRTVFJVQ1QoZGVwVHVwKTsKKwkJT2JqZWN0QWRkcmVzcyBmb3VuZE9iamVjdDsKKworCQlmb3Vu ZE9iamVjdC5jbGFzc0lkID0gZm91bmREZXAtPmNsYXNzaWQ7CisJCWZvdW5kT2JqZWN0Lm9iamVj dElkID0gZm91bmREZXAtPm9iamlkOworCQlmb3VuZE9iamVjdC5vYmplY3RTdWJJZCA9IGZvdW5k RGVwLT5vYmpzdWJpZDsKKworCQlpZiAoZm91bmRPYmplY3QuY2xhc3NJZCA9PSBQb2xpY3lSZWxh dGlvbklkKQorCQkJcmVzdWx0ID0gbGlzdF9hcHBlbmRfdW5pcXVlX29pZChyZXN1bHQsIGZvdW5k T2JqZWN0Lm9iamVjdElkKTsKKwl9CisJc3lzdGFibGVfZW5kc2NhbihzY2FuKTsKKwl0YWJsZV9j bG9zZShkZXBSZWwsIE5vTG9jayk7CisKKwlyZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvdmFyLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv dXRpbC92YXIuYwppbmRleCA2NmY1YjU5OGYwYy4uOTljZmU2NGJmOGIgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL3Zhci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci91dGlsL3Zhci5jCkBAIC00OSw2ICs0OSwxMSBAQCB0eXBlZGVmIHN0cnVjdAogCWludAkJCXN1 YmxldmVsc191cDsKIH0gcHVsbF92YXJzX2NvbnRleHQ7CiAKK3R5cGVkZWYgc3RydWN0Cit7CisJ T2lkCQkJcmVsdHlwaWQ7CQkvKiB0aGUgd2hvbGUtcm93IHR5cGVpZCAqLworfSBjb250YWluX3do b2xlcm93X2NvbnRleHQ7CisKIHR5cGVkZWYgc3RydWN0CiB7CiAJaW50CQkJdmFyX2xvY2F0aW9u OwpAQCAtNzMsNiArNzgsNyBAQCB0eXBlZGVmIHN0cnVjdAogc3RhdGljIGJvb2wgcHVsbF92YXJu b3Nfd2Fsa2VyKE5vZGUgKm5vZGUsCiAJCQkJCQkJICAgcHVsbF92YXJub3NfY29udGV4dCAqY29u dGV4dCk7CiBzdGF0aWMgYm9vbCBwdWxsX3ZhcmF0dG5vc193YWxrZXIoTm9kZSAqbm9kZSwgcHVs bF92YXJhdHRub3NfY29udGV4dCAqY29udGV4dCk7CitzdGF0aWMgYm9vbCBleHByQ29udGFpbldo b2xlUm93X3dhbGtlcihOb2RlICpub2RlLCBjb250YWluX3dob2xlcm93X2NvbnRleHQgKmNvbnRl eHQpOwogc3RhdGljIGJvb2wgcHVsbF92YXJzX3dhbGtlcihOb2RlICpub2RlLCBwdWxsX3ZhcnNf Y29udGV4dCAqY29udGV4dCk7CiBzdGF0aWMgYm9vbCBjb250YWluX3Zhcl9jbGF1c2Vfd2Fsa2Vy KE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpOwogc3RhdGljIGJvb2wgY29udGFpbl92YXJzX29m X2xldmVsX3dhbGtlcihOb2RlICpub2RlLCBpbnQgKnN1YmxldmVsc191cCk7CkBAIC0zMjcsNiAr MzMzLDU0IEBAIHB1bGxfdmFyYXR0bm9zX3dhbGtlcihOb2RlICpub2RlLCBwdWxsX3ZhcmF0dG5v c19jb250ZXh0ICpjb250ZXh0KQogCXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUs IHB1bGxfdmFyYXR0bm9zX3dhbGtlciwgY29udGV4dCk7CiB9CiAKK3N0YXRpYyBib29sCitleHBy Q29udGFpbldob2xlUm93X3dhbGtlcihOb2RlICpub2RlLCBjb250YWluX3dob2xlcm93X2NvbnRl eHQgKmNvbnRleHQpCit7CisJaWYgKG5vZGUgPT0gTlVMTCkKKwkJcmV0dXJuIGZhbHNlOworCisJ aWYgKElzQShub2RlLCBWYXIpKQorCXsKKwkJVmFyCQkgICAqdmFyID0gKFZhciAqKSBub2RlOwor CisJCWlmICh2YXItPnZhcmF0dG5vID09IEludmFsaWRBdHRyTnVtYmVyICYmCisJCQl2YXItPnZh cnR5cGUgPT0gY29udGV4dC0+cmVsdHlwaWQpCisJCQlyZXR1cm4gdHJ1ZTsKKworCQlyZXR1cm4g ZmFsc2U7CisJfQorCisJaWYgKElzQShub2RlLCBRdWVyeSkpCisJCXJldHVybiBxdWVyeV90cmVl X3dhbGtlcigoUXVlcnkgKikgbm9kZSwgZXhwckNvbnRhaW5XaG9sZVJvd193YWxrZXIsCisJCQkJ CQkJCSBjb250ZXh0LCAwKTsKKworCXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUs IGV4cHJDb250YWluV2hvbGVSb3dfd2Fsa2VyLCBjb250ZXh0KTsKK30KKworLyoKKyAqIGV4cHJD b250YWluV2hvbGVSb3cgLQorICoKKyAqIERldGVybWluZSB3aGV0aGVyIGFuIGV4cHJlc3Npb24g Y29udGFpbnMgd2hvbGUtcm93IFZhciByZWZlcmVuY2UsIHJlY3Vyc2luZyBhcyBuZWVkZWQuCisg KiBGb3Igc2ltcGxlIGV4cHJlc3Npb25zIHdpdGhvdXQgc3VibGlua3MsIHB1bGxfdmFyYXR0bm9z IGlzIHVzdWFsbHkgc3VmZmljaWVudAorICogdG8gZGV0ZWN0IGEgd2hvbGUtcm93IFZhci4gQnV0 IGlmIHRoZSBub2RlIGNvbnRhaW5zIHN1YmxpbmtzICh1bnBsYW5uZWQKKyAqIHN1YnF1ZXJpZXMp LCB0aGUgY2hlY2sgbXVzdCBpbnN0ZWFkIHJlbHkgb24gdGhlIHdob2xlLXJvdyB0eXBlIE9JRC4K KyAqIFVzZSBleHByQ29udGFpbldob2xlUm93IHRvIGNoZWNrIHdob2xlLXJvdyB2YXIgZXhpc3Rz ZW5jZSB3aGVuIGluIGRvdWJ0LgorICovCitib29sCitleHByQ29udGFpbldob2xlUm93KE5vZGUg Km5vZGUsIE9pZCByZWx0eXBpZCkKK3sKKwljb250YWluX3dob2xlcm93X2NvbnRleHQgY29udGV4 dDsKKworCWNvbnRleHQucmVsdHlwaWQgPSByZWx0eXBpZDsKKworCUFzc2VydChPaWRJc1ZhbGlk KHJlbHR5cGlkKSk7CisKKwlyZXR1cm4gcXVlcnlfb3JfZXhwcmVzc2lvbl90cmVlX3dhbGtlcihu b2RlLAorCQkJCQkJCQkJCSAgIGV4cHJDb250YWluV2hvbGVSb3dfd2Fsa2VyLAorCQkJCQkJCQkJ CSAgICZjb250ZXh0LAorCQkJCQkJCQkJCSAgIDApOworfQorCiAKIC8qCiAgKiBwdWxsX3ZhcnNf b2ZfbGV2ZWwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL29wdGltaXplci9vcHRpbWl6ZXIuaCBi L3NyYy9pbmNsdWRlL29wdGltaXplci9vcHRpbWl6ZXIuaAppbmRleCAzZDI3YTAxOTYwOS4uZGFk ZjRiMWQ2YzcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL29wdGltaXplci9vcHRpbWl6ZXIuaAor KysgYi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvb3B0aW1pemVyLmgKQEAgLTE5Nyw2ICsxOTcsNyBA QCBleHRlcm4gU29ydEdyb3VwQ2xhdXNlICpnZXRfc29ydGdyb3VwcmVmX2NsYXVzZV9ub2VycihJ bmRleCBzb3J0cmVmLAogZXh0ZXJuIEJpdG1hcHNldCAqcHVsbF92YXJub3MoUGxhbm5lckluZm8g KnJvb3QsIE5vZGUgKm5vZGUpOwogZXh0ZXJuIEJpdG1hcHNldCAqcHVsbF92YXJub3Nfb2ZfbGV2 ZWwoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUsIGludCBsZXZlbHN1cCk7CiBleHRlcm4g dm9pZCBwdWxsX3ZhcmF0dG5vcyhOb2RlICpub2RlLCBJbmRleCB2YXJubywgQml0bWFwc2V0ICoq dmFyYXR0bm9zKTsKK2V4dGVybiBib29sIGV4cHJDb250YWluV2hvbGVSb3coTm9kZSAqbm9kZSwg T2lkIHJlbHR5cGlkKTsKIGV4dGVybiBMaXN0ICpwdWxsX3ZhcnNfb2ZfbGV2ZWwoTm9kZSAqbm9k ZSwgaW50IGxldmVsc3VwKTsKIGV4dGVybiBib29sIGNvbnRhaW5fdmFyX2NsYXVzZShOb2RlICpu b2RlKTsKIGV4dGVybiBib29sIGNvbnRhaW5fdmFyc19vZl9sZXZlbChOb2RlICpub2RlLCBpbnQg bGV2ZWxzdXApOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9yb3dzZWN1 cml0eS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jvd3NlY3VyaXR5Lm91dAppbmRl eCAwN2Q5M2U3ZGVmMS4uNGIzZTY3NzhmZDMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcm93c2VjdXJpdHkub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cm93c2VjdXJpdHkub3V0CkBAIC0yNzMwLDYgKzI3MzAsMzIgQEAgU0VMRUNUICogRlJPTSBkb2N1 bWVudDsKICAgMTQgfCAgMTEgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19ib2IgICB8IG5ldyBub3Zl bCAgICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMTYgcm93cykKIAorLS1jaGVjayBkcm9wIGNv bHVtbiAobm8gQ0FTQ0FERSkgb3IgYWx0ZXIgY29sdW1uIGRhdGEgdHlwZSB3aWxsIGZhaWwgYmVj YXVzZSBvZgorLS13aG9sZS1yb3cgcmVmZXJlbmNlZCBzZWN1cml0eSBwb2xpY3kgZXhpc3RzLgor RFJPUCBUQUJMRSAgcGFydF9kb2N1bWVudDsKK0FMVEVSIFRBQkxFIGRvY3VtZW50IEFERCBDT0xV TU4gZHVtbXkgSU5UNCwgQUREIENPTFVNTiBkdW1teTEgSU5UNDsKK0NSRUFURSBQT0xJQ1kgcDcg T04gZG9jdW1lbnQgQVMgUEVSTUlTU0lWRQorICAgIFVTSU5HIChjaWQgSVMgTk9UIE5VTEwgQU5E CisgICAgKFdJVEggY3RlIEFTIChTRUxFQ1QgVFJVRSBGUk9NIHVhY2NvdW50CisgICAgICAgIFdI RVJFIEVYSVNUUyAoU0VMRUNUIGRvY3VtZW50IEZST00gdWFjY291bnQgV0hFUkUgdWFjY291bnQg SVMgTlVMTCkpCisgICAgU0VMRUNUICogRlJPTSBjdGUpKTsKK0FMVEVSIFRBQkxFIHVhY2NvdW50 IEFMVEVSIENPTFVNTiBzZWNsdiBTRVQgREFUQSBUWVBFIEJJR0lOVDsgLS0gZXJyb3IKK0VSUk9S OiAgY2Fubm90IGFsdGVyIHRhYmxlICJ1YWNjb3VudCIgYmVjYXVzZSBwb2xpY3kgcDcgb24gdGFi bGUgZG9jdW1lbnQgdXNlcyBpdHMgcm93IHR5cGUKK0hJTlQ6ICBZb3UgbWlnaHQgbmVlZCB0byBk cm9wIHBvbGljeSBwNyBvbiB0YWJsZSBkb2N1bWVudCBmaXJzdAorQUxURVIgVEFCTEUgZG9jdW1l bnQgQUxURVIgQ09MVU1OIGR1bW15IFNFVCBEQVRBIFRZUEUgQklHSU5UOyAtLSBlcnJvcgorRVJS T1I6ICBjYW5ub3QgYWx0ZXIgdGFibGUgImRvY3VtZW50IiBiZWNhdXNlIHBvbGljeSBwNyBvbiB0 YWJsZSBkb2N1bWVudCB1c2VzIGl0cyByb3cgdHlwZQorSElOVDogIFlvdSBtaWdodCBuZWVkIHRv IGRyb3AgcG9saWN5IHA3IG9uIHRhYmxlIGRvY3VtZW50IGZpcnN0CitBTFRFUiBUQUJMRSBkb2N1 bWVudCBEUk9QIENPTFVNTiBkdW1teTsgLS0gZXJyb3IKK0VSUk9SOiAgY2Fubm90IGRyb3AgY29s dW1uIGR1bW15IG9mIHRhYmxlIGRvY3VtZW50IGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQg b24gaXQKK0RFVEFJTDogIHBvbGljeSBwNyBvbiB0YWJsZSBkb2N1bWVudCBkZXBlbmRzIG9uIGNv bHVtbiBkdW1teSBvZiB0YWJsZSBkb2N1bWVudAorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURF IHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KK0FMVEVSIFRBQkxFIHVhY2NvdW50 IERST1AgQ09MVU1OIHNlY2x2OyAtLSBlcnJvcgorRVJST1I6ICBjYW5ub3QgZHJvcCBjb2x1bW4g c2VjbHYgb2YgdGFibGUgdWFjY291bnQgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBp dAorREVUQUlMOiAgcG9saWN5IHA3IG9uIHRhYmxlIGRvY3VtZW50IGRlcGVuZHMgb24gY29sdW1u IHNlY2x2IG9mIHRhYmxlIHVhY2NvdW50CitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8g ZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorQUxURVIgVEFCTEUgZG9jdW1lbnQgRFJP UCBDT0xVTU4gZHVtbXkgQ0FTQ0FERTsgLS0gb2sKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8g cG9saWN5IHA3IG9uIHRhYmxlIGRvY3VtZW50CitBTFRFUiBUQUJMRSB1YWNjb3VudCBEUk9QIENP TFVNTiBzZWNsdiBDQVNDQURFOyAtLSBvawogLS0KIC0tIFJPTEUvR1JPVVAKIC0tCkBAIC01MTk4 LDEyICs1MjI0LDExIEBAIGRyb3AgdGFibGUgcmxzX3QsIHRlc3RfdDsKIC0tCiBSRVNFVCBTRVNT SU9OIEFVVEhPUklaQVRJT047CiBEUk9QIFNDSEVNQSByZWdyZXNzX3Jsc19zY2hlbWEgQ0FTQ0FE RTsKLU5PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gMzAgb3RoZXIgb2JqZWN0cworTk9USUNFOiAg ZHJvcCBjYXNjYWRlcyB0byAyOSBvdGhlciBvYmplY3RzCiBERVRBSUw6ICBkcm9wIGNhc2NhZGVz IHRvIGZ1bmN0aW9uIGZfbGVhayh0ZXh0KQogZHJvcCBjYXNjYWRlcyB0byB0YWJsZSB1YWNjb3Vu dAogZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBjYXRlZ29yeQogZHJvcCBjYXNjYWRlcyB0byB0YWJs ZSBkb2N1bWVudAotZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBwYXJ0X2RvY3VtZW50CiBkcm9wIGNh c2NhZGVzIHRvIHRhYmxlIGRlcGVuZGVudAogZHJvcCBjYXNjYWRlcyB0byB0YWJsZSByZWMxCiBk cm9wIGNhc2NhZGVzIHRvIHRhYmxlIHJlYzIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Jvd3NlY3VyaXR5LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jvd3NlY3VyaXR5LnNx bAppbmRleCA2YjM1NjYyNzFkZi4uNjQ0NWZiMGY4ODMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Jvd3NlY3VyaXR5LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9yb3dz ZWN1cml0eS5zcWwKQEAgLTEyMTksNiArMTIxOSwyMyBAQCBEUk9QIFBPTElDWSBwMSBPTiBkb2N1 bWVudDsKIC0tIEp1c3QgY2hlY2sgZXZlcnl0aGluZyB3ZW50IHBlciBwbGFuCiBTRUxFQ1QgKiBG Uk9NIGRvY3VtZW50OwogCistLWNoZWNrIGRyb3AgY29sdW1uIChubyBDQVNDQURFKSBvciBhbHRl ciBjb2x1bW4gZGF0YSB0eXBlIHdpbGwgZmFpbCBiZWNhdXNlIG9mCistLXdob2xlLXJvdyByZWZl cmVuY2VkIHNlY3VyaXR5IHBvbGljeSBleGlzdHMuCitEUk9QIFRBQkxFICBwYXJ0X2RvY3VtZW50 OworQUxURVIgVEFCTEUgZG9jdW1lbnQgQUREIENPTFVNTiBkdW1teSBJTlQ0LCBBREQgQ09MVU1O IGR1bW15MSBJTlQ0OworQ1JFQVRFIFBPTElDWSBwNyBPTiBkb2N1bWVudCBBUyBQRVJNSVNTSVZF CisgICAgVVNJTkcgKGNpZCBJUyBOT1QgTlVMTCBBTkQKKyAgICAoV0lUSCBjdGUgQVMgKFNFTEVD VCBUUlVFIEZST00gdWFjY291bnQKKyAgICAgICAgV0hFUkUgRVhJU1RTIChTRUxFQ1QgZG9jdW1l bnQgRlJPTSB1YWNjb3VudCBXSEVSRSB1YWNjb3VudCBJUyBOVUxMKSkKKyAgICBTRUxFQ1QgKiBG Uk9NIGN0ZSkpOworQUxURVIgVEFCTEUgdWFjY291bnQgQUxURVIgQ09MVU1OIHNlY2x2IFNFVCBE QVRBIFRZUEUgQklHSU5UOyAtLSBlcnJvcgorQUxURVIgVEFCTEUgZG9jdW1lbnQgQUxURVIgQ09M VU1OIGR1bW15IFNFVCBEQVRBIFRZUEUgQklHSU5UOyAtLSBlcnJvcgorCitBTFRFUiBUQUJMRSBk b2N1bWVudCBEUk9QIENPTFVNTiBkdW1teTsgLS0gZXJyb3IKK0FMVEVSIFRBQkxFIHVhY2NvdW50 IERST1AgQ09MVU1OIHNlY2x2OyAtLSBlcnJvcgorQUxURVIgVEFCTEUgZG9jdW1lbnQgRFJPUCBD T0xVTU4gZHVtbXkgQ0FTQ0FERTsgLS0gb2sKK0FMVEVSIFRBQkxFIHVhY2NvdW50IERST1AgQ09M VU1OIHNlY2x2IENBU0NBREU7IC0tIG9rCisKIC0tCiAtLSBST0xFL0dST1VQCiAtLQpkaWZmIC0t Z2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdAppbmRleCA3N2UzYzA0MTQ0ZS4uM2JiZThkYWRmMzUgMTAwNjQ0Ci0t LSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CkBAIC0zNTkyLDYgKzM1OTIsNyBAQCBjb25uX29hdXRoX3Njb3Bl X2Z1bmMKIGNvbm5fc2FzbF9zdGF0ZV9mdW5jCiBjb250YWluX2FnZ3Nfb2ZfbGV2ZWxfY29udGV4 dAogY29udGFpbl9wbGFjZWhvbGRlcl9yZWZlcmVuY2VzX2NvbnRleHQKK2NvbnRhaW5fd2hvbGVy b3dfY29udGV4dAogY29udmVydF90ZXN0ZXhwcl9jb250ZXh0CiBjb3B5X2RhdGFfZGVzdF9jYgog Y29weV9kYXRhX3NvdXJjZV9jYgotLSAKMi4zNC4xCgo= --00000000000012aa9d064bdd4b08 Content-Type: text/x-patch; charset="UTF-8"; name="v8-0001-fix-DDL-wholerow-referenced-constraints-and-indexes.patch" Content-Disposition: attachment; filename="v8-0001-fix-DDL-wholerow-referenced-constraints-and-indexes.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm5zz5zx2 RnJvbSAxZWMxMmY4ODI4MWY0ZmI2NjljZjlkMjBmNmQzNmI1MjkwYTk5MTNkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjggRmViIDIwMjYgMTU6MDc6MjEgKzA4MDAKU3ViamVjdDogW1BBVENIIHY4 IDEvM10gZml4IERETCB3aG9sZXJvdyByZWZlcmVuY2VkIGNvbnN0cmFpbnRzIGFuZCBpbmRleGVz Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYt OApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgoxLiBBTFRFUiBUQUJMRSBEUk9QIENP TFVNTi4KQUxURVIgVEFCTEUgRFJPUCBDT0xVTU4gd2lsbCByZW1vdmUgaW5kZXhlcyBvciBjb25z dHJhaW50cyBjb250YWluIHdob2xlLXJvdwpleHByZXNzaW9uLgpXZSBlbnVtZXJhdGUgYWxsIGNv bnN0cmFpbnRzIGFuZCBpbmRleGVzIGFuZCBjaGVjayBvbmUgYnkgb25lIHRvIGRldGVybWluZQp3 aGV0aGVyIGl0IGNvbnRhaW5zIGEgd2hvbGUtcm93IFZhciByZWZlcmVuY2UuIElmIHN1Y2ggYSBy ZWZlcmVuY2UgaXMgZm91bmQsIHdlCnJlY29yZCB0aGUgZGVwZW5kZW5jeSBhbmQgbGF0ZXIgbGV0 IHBlcmZvcm1NdWx0aXBsZURlbGV0aW9ucyBkbyB0aGUgZGVsZWF0aW9uLgoKZm9yIGV4YW1wbGU6 CkNSRUFURSBUQUJMRSB0cyAoYSBpbnQsIGNvbnN0cmFpbnQgY2MgY2hlY2soKHRzID0gUk9XKDEp KSkpOwpDUkVBVEUgSU5ERVggdHNpMyBvbiB0cyAoKHRzIGlzIG51bGwpKTsKQUxURVIgVEFCTEUg RFJPUCBDT0xVTU4gc2hvdWxkIGRyb3AgYWJvdmUgYWxsIGluZGV4ZXMsIGNvbnN0cmFpbnRzIG9u IHRhYmxlIHRzLgoKMi4gQUxURVIgQ09MVU1OIFNFVCBEQVRBIFRZUEUKQUxURVIgQ09MVU1OIFNF VCBEQVRBIFRZUEUgZnVuZGFtZW50YWxseSBjaGFuZ2VzIHRoZSB0YWJsZeKAmXMgcmVjb3JkIHR5 cGU7IEF0CnByZXNlbnQsIHdlIGNhbm5vdCBjb21wYXJlIHJlY29yZHMgdGhhdCBjb250YWluIGNv bHVtbnMgb2YgZGlzc2ltaWxhciB0eXBlcywgc2VlCmZ1bmN0aW9uIHJlY29yZF9lcS4gIEFzIGEg cmVzdWx0LCBBTFRFUiBDT0xVTU4gU0VUIERBVEEgVFlQRSBkb2VzIG5vdCB3b3JrIGZvcgp3aG9s ZS1yb3cgcmVmZXJlbmNlIG9iamVjdHMgKHN1Y2ggYXMgY29uc3RyYWludHMgYW5kIGluZGV4ZXMp LCBhbmQgbXVzdAp0aGVyZWZvcmUgcmFpc2UgYW4gZXJyb3IuCgpGb3IgZXhhbXBsZSwgYmVsb3cg QUxURVIgQ09MVU1OIFNFVCBEQVRBIFRZUEUgc2hvdWxkIGZhaWwuCkNSRUFURSBUQUJMRSB0cyAo YSBpbnQsIENPTlNUUkFJTlQgY2MgQ0hFQ0sgKCh0cyA9IFJPVygxKSkpKTsKQ1JFQVRFIElOREVY IE9OIHRzICgodHMgSVMgTk9UIE5VTEwpKTsKQUxURVIgVEFCTEUgdHMgQUxURVIgQ09MVU1OIGEg U0VUIERBVEEgVFlQRSBpbnQ4OwoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUNK dWZ4R0E2S1ZReTdEYkhHTFZ3OXM5S0ttcEd5WnQ1TUU2QzdrRWZqRHByMndaQ3dAbWFpbC5nbWFp bC5jb20KY29tbWl0ZmVzdDogaHR0cHM6Ly9jb21taXRmZXN0LnBvc3RncmVzcWwub3JnL3BhdGNo LzYwNTUKLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICB8IDIy MSArKysrKysrKysrKysrKysrKysrKystCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbnN0 cmFpbnRzLm91dCB8ICAyMSArKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9pbmRleGluZy5v dXQgICAgfCAgMzUgKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29uc3RyYWludHMuc3FsICAg ICAgfCAgMTYgKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2luZGV4aW5nLnNxbCAgICAgICAgIHwg IDIwICsrCiA1IGZpbGVzIGNoYW5nZWQsIDMxMCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggYjA0YjBkYmQyYTAuLmRhNDNlOWVmZWQ0 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtNzQ1LDYgKzc0NSw5IEBAIHN0YXRpYyB2 b2lkIEFURXhlY01lcmdlUGFydGl0aW9ucyhMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZv ICp0YWIsIFJlbGF0aW9uCiBzdGF0aWMgdm9pZCBBVEV4ZWNTcGxpdFBhcnRpdGlvbihMaXN0ICoq d3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsCiAJCQkJCQkJCSBSZWxhdGlvbiByZWwsIFBh cnRpdGlvbkNtZCAqY21kLAogCQkJCQkJCQkgQWx0ZXJUYWJsZVV0aWxpdHlDb250ZXh0ICpjb250 ZXh0KTsKK3N0YXRpYyB2b2lkIHJlY29yZFdob2xlUm93RGVwZW5kZW5jeU9uT3JFcnJvcihSZWxh dGlvbiByZWwsCisJCQkJCQkJCQkJCSAgY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LAorCQkJ CQkJCQkJCQkgIGJvb2wgZXJyb3Jfb3V0KTsKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoJCURlZmluZVJlbGF0 aW9uCkBAIC05MzkxLDYgKzkzOTQsMjEgQEAgQVRFeGVjRHJvcENvbHVtbihMaXN0ICoqd3F1ZXVl LCBSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKmNvbE5hbWUsCiAKIAlSZWxlYXNlU3lzQ2FjaGUo dHVwbGUpOwogCisJb2JqZWN0LmNsYXNzSWQgPSBSZWxhdGlvblJlbGF0aW9uSWQ7CisJb2JqZWN0 Lm9iamVjdElkID0gUmVsYXRpb25HZXRSZWxpZChyZWwpOworCW9iamVjdC5vYmplY3RTdWJJZCA9 IGF0dG51bTsKKworCS8qCisJICogV2UgYWxzbyBuZWVkIHJlbW92ZSBpbmRleGVzIG9yIGNvbnN0 cmFpbnRzIHRoYXQgY29udGFpbiB3aG9sZS1yb3cgVmFyCisJICogcmVmZXJlbmNlLiBVc2luZyBy ZWNvcmRXaG9sZVJvd0RlcGVuZGVuY3lPbk9yRXJyb3IgdG8gZXN0YWJsaXNoIGEKKwkgKiBkZXBl bmRlbmN5IGJldHdlZW4gdGhlIGNvbHVtbiBhbmQgYW55IENIRUNLIGNvbnN0cmFpbnQgb3IgaW5k ZXgKKwkgKiBjb250YWlucyB3aG9sZS1yb3cgVmFycyByZWZlcmVuY2UuIEZ1bmN0aW9uIHBlcmZv cm1NdWx0aXBsZURlbGV0aW9ucworCSAqIHdpbGwgdGhlbiB0YWtlIGNhcmUgb2YgcmVtb3Zpbmcg dGhlbSBsYXRlci4KKwkgKi8KKwlyZWNvcmRXaG9sZVJvd0RlcGVuZGVuY3lPbk9yRXJyb3IocmVs LCAmb2JqZWN0LCBmYWxzZSk7CisKKwlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOworCiAJLyoK IAkgKiBQcm9wYWdhdGUgdG8gY2hpbGRyZW4gYXMgYXBwcm9wcmlhdGUuICBVbmxpa2UgbW9zdCBv dGhlciBBTFRFUgogCSAqIHJvdXRpbmVzLCB3ZSBoYXZlIHRvIGRvIHRoaXMgb25lIGxldmVsIG9m IHJlY3Vyc2lvbiBhdCBhIHRpbWU7IHdlIGNhbid0CkBAIC05NDg0LDkgKzk1MDIsNiBAQCBBVEV4 ZWNEcm9wQ29sdW1uKExpc3QgKip3cXVldWUsIFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAqY29s TmFtZSwKIAl9CiAKIAkvKiBBZGQgb2JqZWN0IHRvIGRlbGV0ZSAqLwotCW9iamVjdC5jbGFzc0lk ID0gUmVsYXRpb25SZWxhdGlvbklkOwotCW9iamVjdC5vYmplY3RJZCA9IFJlbGF0aW9uR2V0UmVs aWQocmVsKTsKLQlvYmplY3Qub2JqZWN0U3ViSWQgPSBhdHRudW07CiAJYWRkX2V4YWN0X29iamVj dF9hZGRyZXNzKCZvYmplY3QsIGFkZHJzKTsKIAogCWlmICghcmVjdXJzaW5nKQpAQCAtMTQ3NzIs NiArMTQ3ODcsNyBAQCBBVEV4ZWNBbHRlckNvbHVtblR5cGUoQWx0ZXJlZFRhYmxlSW5mbyAqdGFi LCBSZWxhdGlvbiByZWwsCiAJU3lzU2NhbkRlc2Mgc2NhbjsKIAlIZWFwVHVwbGUJZGVwVHVwOwog CU9iamVjdEFkZHJlc3MgYWRkcmVzczsKKwlPYmplY3RBZGRyZXNzIG9iamVjdDsKIAogCS8qCiAJ ICogQ2xlYXIgYWxsIHRoZSBtaXNzaW5nIHZhbHVlcyBpZiB3ZSdyZSByZXdyaXRpbmcgdGhlIHRh YmxlLCBzaW5jZSB0aGlzCkBAIC0xNDg2Nyw2ICsxNDg4MywxNiBAQCBBVEV4ZWNBbHRlckNvbHVt blR5cGUoQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJICovCiAJUmVtZW1i ZXJBbGxEZXBlbmRlbnRGb3JSZWJ1aWxkaW5nKHRhYiwgQVRfQWx0ZXJDb2x1bW5UeXBlLCByZWws IGF0dG51bSwgY29sTmFtZSk7CiAKKwlvYmplY3QuY2xhc3NJZCA9IFJlbGF0aW9uUmVsYXRpb25J ZDsKKwlvYmplY3Qub2JqZWN0SWQgPSBSZWxhdGlvbkdldFJlbGlkKHJlbCk7CisJb2JqZWN0Lm9i amVjdFN1YklkID0gYXR0bnVtOworCisJLyoKKwkgKiBDaGVjayBmb3Igd2hvbGUtcm93IHJlZmVy ZW5jZWQgb2JqZWN0cyAoY29uc3RyYWludHMsIGluZGV4ZXMgZXRjKSAtLQorCSAqIGNhbid0IGNv cGUKKwkgKi8KKwlyZWNvcmRXaG9sZVJvd0RlcGVuZGVuY3lPbk9yRXJyb3IocmVsLCAmb2JqZWN0 LCB0cnVlKTsKKwogCS8qCiAJICogTm93IHNjYW4gZm9yIGRlcGVuZGVuY2llcyBvZiB0aGlzIGNv bHVtbiBvbiBvdGhlciB0aGluZ3MuICBUaGUgb25seQogCSAqIHRoaW5ncyB3ZSBzaG91bGQgZmlu ZCBhcmUgdGhlIGRlcGVuZGVuY3kgb24gdGhlIGNvbHVtbiBkYXRhdHlwZSBhbmQKQEAgLTIzMzM3 LDMgKzIzMzYzLDE5MiBAQCBBVEV4ZWNTcGxpdFBhcnRpdGlvbihMaXN0ICoqd3F1ZXVlLCBBbHRl cmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAkvKiBSZXN0b3JlIHRoZSB1c2VyaWQg YW5kIHNlY3VyaXR5IGNvbnRleHQuICovCiAJU2V0VXNlcklkQW5kU2VjQ29udGV4dChzYXZlX3Vz ZXJpZCwgc2F2ZV9zZWNfY29udGV4dCk7CiB9CisKK3N0YXRpYyB2b2lkCityZWNvcmREZXBlbmRl bmN5T25PckVycm9yKFJlbGF0aW9uIHJlbCwgY29uc3QgT2JqZWN0QWRkcmVzcyAqZGVwZW5kZXIs CisJCQkJCQkgIGNvbnN0IE9iamVjdEFkZHJlc3MgKnJlZmVyZW5jZWQsIGJvb2wgZXJyb3Jfb3V0 LAorCQkJCQkJICBEZXBlbmRlbmN5VHlwZSBiZWhhdmlvcikKK3sKKwlpZiAoZXJyb3Jfb3V0KQor CQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCks CisJCQkJZXJybXNnKCJjYW5ub3QgYWx0ZXIgdGFibGUgXCIlc1wiIGJlY2F1c2UgJXMgdXNlcyBp dHMgcm93IHR5cGUiLAorCQkJCQkgICBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpLAorCQkJ CQkgICBnZXRPYmplY3REZXNjcmlwdGlvbihkZXBlbmRlciwgZmFsc2UpKSwKKwkJCQllcnJoaW50 KCJZb3UgbWlnaHQgbmVlZCB0byBkcm9wICVzIGZpcnN0IiwKKwkJCQkJCWdldE9iamVjdERlc2Ny aXB0aW9uKGRlcGVuZGVyLCBmYWxzZSkpKTsKKwllbHNlCisJCXJlY29yZERlcGVuZGVuY3lPbihk ZXBlbmRlciwgcmVmZXJlbmNlZCwgYmVoYXZpb3IpOworfQorCisvKgorICogUmVjb3JkIGRlcGVu ZGVuY2llcyBiZXR3ZWVuIHdob2xlLXJvdyBWYXIgcmVmZXJlbmNlZCBvYmplY3RzIChpbmRleGVz LCBDSEVDSworICogY29uc3RyYWludHMsIGV0YykgYW5kIHRoZSByZWxhdGlvbidzIE9iamVjdEFk ZHJlc3MuCisgKgorICogZXJyb3Jfb3V0IG1lYW5zIGNhbiBub3QgaW5zdGFsbCBzdWNoIGRlcGVu ZGVuY3ksIHdlIG5lZWQgZXJyb3Igb3V0IGV4cGxpY2l0bHkuCisgKi8KK3N0YXRpYyB2b2lkCity ZWNvcmRXaG9sZVJvd0RlcGVuZGVuY3lPbk9yRXJyb3IoUmVsYXRpb24gcmVsLCBjb25zdCBPYmpl Y3RBZGRyZXNzICpvYmplY3QsCisJCQkJCQkJCSAgYm9vbCBlcnJvcl9vdXQpCit7CisJTm9kZQkg ICAqZXhwciA9IE5VTEw7CisJU2NhbktleURhdGEgc2tleTsKKwlSZWxhdGlvbglwZ19pbmRleDsK KwlTeXNTY2FuRGVzYyBpbmRzY2FuOworCUhlYXBUdXBsZQlodHVwOworCUhlYXBUdXBsZQlpbmRl eFR1cGxlOworCUJpdG1hcHNldCAgKmV4cHJfYXR0cnMgPSBOVUxMOworCURhdHVtCQlleHByRGF0 dW07CisJY2hhcgkgICAqZXhwclN0cmluZzsKKwlib29sCQlpc251bGw7CisJYm9vbAkJaGF2ZV93 aG9sZXJvdyA9IGZhbHNlOworCUxpc3QJICAgKndob2xlcm93X2lkeG9pZHMgPSBOSUw7CisJVHVw bGVDb25zdHIgKmNvbnN0ciA9IFJlbGF0aW9uR2V0RGVzY3IocmVsKS0+Y29uc3RyOworCisJLyoK KwkgKiBMb29wIHRocm91Z2ggZWFjaCBDSEVDSyBjb25zdHJhaW50LCBzZWUgaWYgaXQgY29udGFp biB3aG9sZS1yb3cKKwkgKiByZWZlcmVuY2VzIG9yIG5vdAorCSAqLworCWlmIChjb25zdHIgJiYg Y29uc3RyLT5udW1fY2hlY2sgPiAwKQorCXsKKwkJUmVsYXRpb24JcGdfY29uc3RyYWludDsKKwkJ U3lzU2NhbkRlc2MgY29uc2NhbjsKKwkJT2JqZWN0QWRkcmVzcyBjb25fb2JqOworCisJCXBnX2Nv bnN0cmFpbnQgPSB0YWJsZV9vcGVuKENvbnN0cmFpbnRSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxv Y2spOworCisJCVNjYW5LZXlJbml0KCZza2V5LAorCQkJCQlBbnVtX3BnX2NvbnN0cmFpbnRfY29u cmVsaWQsCisJCQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwgRl9PSURFUSwKKwkJCQkJT2JqZWN0 SWRHZXREYXR1bShSZWxhdGlvbkdldFJlbGlkKHJlbCkpKTsKKworCQljb25zY2FuID0gc3lzdGFi bGVfYmVnaW5zY2FuKHBnX2NvbnN0cmFpbnQsIENvbnN0cmFpbnRSZWxpZFR5cGlkTmFtZUluZGV4 SWQsIHRydWUsCisJCQkJCQkJCQkgTlVMTCwgMSwgJnNrZXkpOworCQl3aGlsZSAoSGVhcFR1cGxl SXNWYWxpZChodHVwID0gc3lzdGFibGVfZ2V0bmV4dChjb25zY2FuKSkpCisJCXsKKwkJCUZvcm1f cGdfY29uc3RyYWludCBjb25mb3JtID0gKEZvcm1fcGdfY29uc3RyYWludCkgR0VUU1RSVUNUKGh0 dXApOworCisJCQlpZiAoY29uZm9ybS0+Y29udHlwZSAhPSBDT05TVFJBSU5UX0NIRUNLKQorCQkJ CWNvbnRpbnVlOworCisJCQlleHByRGF0dW0gPSBmYXN0Z2V0YXR0cihodHVwLAorCQkJCQkJCQkJ QW51bV9wZ19jb25zdHJhaW50X2NvbmJpbiwKKwkJCQkJCQkJCVJlbGF0aW9uR2V0RGVzY3IocGdf Y29uc3RyYWludCksICZpc251bGwpOworCQkJaWYgKGlzbnVsbCkKKwkJCQllbG9nKFdBUk5JTkcs ICJudWxsIGNvbmJpbiBmb3IgcmVsYXRpb24gXCIlc1wiIiwKKwkJCQkJIFJlbGF0aW9uR2V0UmVs YXRpb25OYW1lKHJlbCkpOworCQkJZWxzZQorCQkJeworCQkJCWNoYXIJICAgKnMgPSBUZXh0RGF0 dW1HZXRDU3RyaW5nKGV4cHJEYXR1bSk7CisKKwkJCQlleHByID0gc3RyaW5nVG9Ob2RlKHMpOwor CQkJCXBmcmVlKHMpOworCisJCQkJLyogRmluZCBhbGwgYXR0cmlidXRlcyByZWZlcmVuY2VkICov CisJCQkJcHVsbF92YXJhdHRub3MoZXhwciwgMSwgJmV4cHJfYXR0cnMpOworCisJCQkJaGF2ZV93 aG9sZXJvdyA9IGJtc19pc19tZW1iZXIoMCAtIEZpcnN0TG93SW52YWxpZEhlYXBBdHRyaWJ1dGVO dW1iZXIsCisJCQkJCQkJCQkJCSAgZXhwcl9hdHRycyk7CisJCQkJYm1zX2ZyZWUoZXhwcl9hdHRy cyk7CisJCQkJZXhwcl9hdHRycyA9IE5VTEw7CisKKwkJCQlpZiAoaGF2ZV93aG9sZXJvdykKKwkJ CQl7CisJCQkJCWNvbl9vYmouY2xhc3NJZCA9IENvbnN0cmFpbnRSZWxhdGlvbklkOworCQkJCQlj b25fb2JqLm9iamVjdElkID0gY29uZm9ybS0+b2lkOworCQkJCQljb25fb2JqLm9iamVjdFN1Yklk ID0gMDsKKworCQkJCQlyZWNvcmREZXBlbmRlbmN5T25PckVycm9yKHJlbCwgJmNvbl9vYmosIG9i amVjdCwgZXJyb3Jfb3V0LAorCQkJCQkJCQkJCQkgIERFUEVOREVOQ1lfQVVUTyk7CisJCQkJfQor CQkJfQorCQl9CisJCXN5c3RhYmxlX2VuZHNjYW4oY29uc2Nhbik7CisJCXRhYmxlX2Nsb3NlKHBn X2NvbnN0cmFpbnQsIEFjY2Vzc1NoYXJlTG9jayk7CisJfQorCisJLyoKKwkgKiBOb3cgY2hlY2tp bmcgaW5kZXggd2hvbGUtcm93IHJlZmVyZW5jZXMuIFByZXBhcmUgdG8gc2NhbiBwZ19pbmRleCBm b3IKKwkgKiBlbnRyaWVzIGhhdmluZyBpbmRyZWxpZCA9IHRoaXMgcmVsCisJICovCisJU2Nhbktl eUluaXQoJnNrZXksCisJCQkJQW51bV9wZ19pbmRleF9pbmRyZWxpZCwKKwkJCQlCVEVxdWFsU3Ry YXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJT2JqZWN0SWRHZXREYXR1bShSZWxhdGlvbkdldFJl bGlkKHJlbCkpKTsKKworCXBnX2luZGV4ID0gdGFibGVfb3BlbihJbmRleFJlbGF0aW9uSWQsIEFj Y2Vzc1NoYXJlTG9jayk7CisKKwlpbmRzY2FuID0gc3lzdGFibGVfYmVnaW5zY2FuKHBnX2luZGV4 LCBJbmRleEluZHJlbGlkSW5kZXhJZCwgdHJ1ZSwKKwkJCQkJCQkJIE5VTEwsIDEsICZza2V5KTsK Kwl3aGlsZSAoSGVhcFR1cGxlSXNWYWxpZChpbmRleFR1cGxlID0gc3lzdGFibGVfZ2V0bmV4dChp bmRzY2FuKSkpCisJeworCQlPYmplY3RBZGRyZXNzIGlkeF9vYmo7CisJCUZvcm1fcGdfaW5kZXgg aW5kZXggPSAoRm9ybV9wZ19pbmRleCkgR0VUU1RSVUNUKGluZGV4VHVwbGUpOworCisJCWlmIChs aXN0X21lbWJlcl9vaWQod2hvbGVyb3dfaWR4b2lkcywgaW5kZXgtPmluZGV4cmVsaWQpKQorCQkJ Y29udGludWU7CisKKwkJaWYgKCFoZWFwX2F0dGlzbnVsbChpbmRleFR1cGxlLCBBbnVtX3BnX2lu ZGV4X2luZGV4cHJzLCBOVUxMKSkKKwkJeworCQkJZXhwckRhdHVtID0gU3lzQ2FjaGVHZXRBdHRy Tm90TnVsbChJTkRFWFJFTElELCBpbmRleFR1cGxlLAorCQkJCQkJCQkJCQkgICBBbnVtX3BnX2lu ZGV4X2luZGV4cHJzKTsKKwkJCWV4cHJTdHJpbmcgPSBUZXh0RGF0dW1HZXRDU3RyaW5nKGV4cHJE YXR1bSk7CisJCQlleHByID0gKE5vZGUgKikgc3RyaW5nVG9Ob2RlKGV4cHJTdHJpbmcpOworCQkJ cGZyZWUoZXhwclN0cmluZyk7CisKKwkJCS8qIEZpbmQgYWxsIGF0dHJpYnV0ZXMgcmVmZXJlbmNl ZCAqLworCQkJcHVsbF92YXJhdHRub3MoZXhwciwgMSwgJmV4cHJfYXR0cnMpOworCisJCQloYXZl X3dob2xlcm93ID0gYm1zX2lzX21lbWJlcigwIC0gRmlyc3RMb3dJbnZhbGlkSGVhcEF0dHJpYnV0 ZU51bWJlciwKKwkJCQkJCQkJCQkgIGV4cHJfYXR0cnMpOworCQkJYm1zX2ZyZWUoZXhwcl9hdHRy cyk7CisJCQlleHByX2F0dHJzID0gTlVMTDsKKworCQkJaWYgKGhhdmVfd2hvbGVyb3cpCisJCQl7 CisJCQkJaWR4X29iai5jbGFzc0lkID0gUmVsYXRpb25SZWxhdGlvbklkOworCQkJCWlkeF9vYmou b2JqZWN0SWQgPSBpbmRleC0+aW5kZXhyZWxpZDsKKwkJCQlpZHhfb2JqLm9iamVjdFN1YklkID0g MDsKKworCQkJCXdob2xlcm93X2lkeG9pZHMgPSBsYXBwZW5kX29pZCh3aG9sZXJvd19pZHhvaWRz LCBpbmRleC0+aW5kZXhyZWxpZCk7CisKKwkJCQlyZWNvcmREZXBlbmRlbmN5T25PckVycm9yKHJl bCwgJmlkeF9vYmosIG9iamVjdCwgZXJyb3Jfb3V0LAorCQkJCQkJCQkJCSAgREVQRU5ERU5DWV9B VVRPKTsKKworCQkJCWNvbnRpbnVlOworCQkJfQorCQl9CisKKwkJaWYgKCFoZWFwX2F0dGlzbnVs bChpbmRleFR1cGxlLCBBbnVtX3BnX2luZGV4X2luZHByZWQsIE5VTEwpKQorCQl7CisJCQlleHBy RGF0dW0gPSBTeXNDYWNoZUdldEF0dHJOb3ROdWxsKElOREVYUkVMSUQsIGluZGV4VHVwbGUsCisJ CQkJCQkJCQkJCSAgIEFudW1fcGdfaW5kZXhfaW5kcHJlZCk7CisJCQlleHByU3RyaW5nID0gVGV4 dERhdHVtR2V0Q1N0cmluZyhleHByRGF0dW0pOworCQkJZXhwciA9IChOb2RlICopIHN0cmluZ1Rv Tm9kZShleHByU3RyaW5nKTsKKwkJCXBmcmVlKGV4cHJTdHJpbmcpOworCisJCQkvKiBGaW5kIGFs bCBhdHRyaWJ1dGVzIHJlZmVyZW5jZWQgKi8KKwkJCXB1bGxfdmFyYXR0bm9zKGV4cHIsIDEsICZl eHByX2F0dHJzKTsKKworCQkJaGF2ZV93aG9sZXJvdyA9IGJtc19pc19tZW1iZXIoMCAtIEZpcnN0 TG93SW52YWxpZEhlYXBBdHRyaWJ1dGVOdW1iZXIsCisJCQkJCQkJCQkJICBleHByX2F0dHJzKTsK KwkJCWJtc19mcmVlKGV4cHJfYXR0cnMpOworCQkJZXhwcl9hdHRycyA9IE5VTEw7CisKKwkJCWlm IChoYXZlX3dob2xlcm93KQorCQkJeworCQkJCWlkeF9vYmouY2xhc3NJZCA9IFJlbGF0aW9uUmVs YXRpb25JZDsKKwkJCQlpZHhfb2JqLm9iamVjdElkID0gaW5kZXgtPmluZGV4cmVsaWQ7CisJCQkJ aWR4X29iai5vYmplY3RTdWJJZCA9IDA7CisKKwkJCQl3aG9sZXJvd19pZHhvaWRzID0gbGFwcGVu ZF9vaWQod2hvbGVyb3dfaWR4b2lkcywgaW5kZXgtPmluZGV4cmVsaWQpOworCisJCQkJcmVjb3Jk RGVwZW5kZW5jeU9uT3JFcnJvcihyZWwsICZpZHhfb2JqLCBvYmplY3QsIGVycm9yX291dCwKKwkJ CQkJCQkJCQkgIERFUEVOREVOQ1lfQVVUTyk7CisJCQl9CisJCX0KKwl9CisJc3lzdGFibGVfZW5k c2NhbihpbmRzY2FuKTsKKworCXRhYmxlX2Nsb3NlKHBnX2luZGV4LCBBY2Nlc3NTaGFyZUxvY2sp OworfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb25zdHJhaW50cy5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbnN0cmFpbnRzLm91dAppbmRleCBhNmZh OWNhY2I3Mi4uMzk2MDAzMzFiMzUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvY29uc3RyYWludHMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29uc3Ry YWludHMub3V0CkBAIC0yNTQsNiArMjU0LDI3IEBAIEVSUk9SOiAgc3lzdGVtIGNvbHVtbiAiY3Rp ZCIgcmVmZXJlbmNlIGluIGNoZWNrIGNvbnN0cmFpbnQgaXMgaW52YWxpZAogTElORSAzOiAgICAg ICBDSEVDSyAoTk9UIChpc19jYXBpdGFsIEFORCBjdGlkOjp0ZXh0ID0gJ3N5c19jb2xfY2hlY2su Li4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0KKy0tIERy b3AgY29sdW1uIGFsc28gZHJvcCBhbGwgY2hlY2sgY29uc3RyYWludHMgdGhhdCBoYXZlIHdob2xl LXJvdyByZWZlcmVuY2VzLgorLS0KKy0tIENoYW5nZSBjb2x1bW4gZGF0YSB0eXBlIHNob3VsZCBl cnJvciBvdXQgYmVjYXVzZSB0aGUgd2hvbGUtcm93IHJlZmVyZW5jZWQKKy0tIGNoZWNrIGNvbnN0 cmFpbnQgaXMgc3RpbGwgbmVlZGVkLgorLS0gbm8gbmVlZCB0byB3b3JyeSBhYm91dCBwYXJ0aXRp b25lZCB0YWJsZXMsIHNpbmNlIHRoZSB3aG9sZS1yb3cgY2hlY2sgY29uc3RyYWludAorLS0gY2Fu IG5vdCBzcGFuIG11bHRpIHJlbGF0aW9uLgorQ1JFQVRFIFRBQkxFIHdob2xlcm93X2NoZWNrX3Ri bCAoCisgICAgY2l0eSBpbnQsCisgICAgQ09OU1RSQUlOVCBjYzAgQ0hFQ0sgKHdob2xlcm93X2No ZWNrX3RibCBpcyBudWxsKSBOT1QgRU5GT1JDRUQsCisgICAgQ09OU1RSQUlOVCBjYzEgQ0hFQ0sg KHdob2xlcm93X2NoZWNrX3RibCBpcyBub3QgbnVsbCkgTk9UIEVORk9SQ0VEKTsKK0FMVEVSIFRB QkxFIHdob2xlcm93X2NoZWNrX3RibCBBTFRFUiBDT0xVTU4gY2l0eSBTRVQgREFUQSBUWVBFIElO VDg7CitFUlJPUjogIGNhbm5vdCBhbHRlciB0YWJsZSAid2hvbGVyb3dfY2hlY2tfdGJsIiBiZWNh dXNlIGNvbnN0cmFpbnQgY2MwIG9uIHRhYmxlIHdob2xlcm93X2NoZWNrX3RibCB1c2VzIGl0cyBy b3cgdHlwZQorSElOVDogIFlvdSBtaWdodCBuZWVkIHRvIGRyb3AgY29uc3RyYWludCBjYzAgb24g dGFibGUgd2hvbGVyb3dfY2hlY2tfdGJsIGZpcnN0CitBTFRFUiBUQUJMRSB3aG9sZXJvd19jaGVj a190YmwgRFJPUCBDT0xVTU4gY2l0eTsgLS0gb2sKK1xkIHdob2xlcm93X2NoZWNrX3RibAorICAg ICAgIFRhYmxlICJwdWJsaWMud2hvbGVyb3dfY2hlY2tfdGJsIgorIENvbHVtbiB8IFR5cGUgfCBD b2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKworRFJPUCBUQUJMRSB3aG9sZXJvd19jaGVja190Ymw7 CistLQogLS0gQ2hlY2sgaW5oZXJpdGFuY2Ugb2YgZGVmYXVsdHMgYW5kIGNvbnN0cmFpbnRzCiAt LQogQ1JFQVRFIFRBQkxFIElOU0VSVF9DSElMRCAoY3ggSU5UIGRlZmF1bHQgNDIsCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2luZGV4aW5nLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvaW5kZXhpbmcub3V0CmluZGV4IGRjNjI5OTI4YzhmLi5iNzZjOWZmYWVm YiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9pbmRleGluZy5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9pbmRleGluZy5vdXQKQEAgLTY1NCw2ICs2NTQs NDEgQEAgYWx0ZXIgdGFibGUgaWR4cGFydDIgZHJvcCBjb2x1bW4gYzsKICBiICAgICAgfCBpbnRl Z2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKIAogZHJvcCB0YWJsZSBpZHhwYXJ0LCBpZHhw YXJ0MjsKKy0tCistLSBEcm9wIGNvbHVtbiBhbHNvIGRyb3AgYWxsIGluZGV4ZXMgdGhhdCBoYXZl IHdob2xlLXJvdyByZWZlcmVuY2VzLgorLS0KKy0tIENoYW5nZSBjb2x1bW4gZGF0YSB0eXBlIHNo b3VsZCBlcnJvciBvdXQgYmVjYXVzZSB0aGUgd2hvbGUtcm93IHJlZmVyZW5jZWQKKy0tIGluZGV4 ZXggaXMgc3RpbGwgbmVlZGVkLgorY3JlYXRlIHRhYmxlIGlkeHBhcnQgKGEgaW50LCBiIGludCwg YyBpbnQpIHBhcnRpdGlvbiBieSByYW5nZSAoYSk7CitjcmVhdGUgdGFibGUgaWR4cGFydDEgcGFy dGl0aW9uIG9mIGlkeHBhcnQgZm9yIHZhbHVlcyBmcm9tICgyMDAwKSB0byAoMzAwMCk7CitjcmVh dGUgaW5kZXggaWR4cGFydF9pZHgxIG9uIGlkeHBhcnQxKChpZHhwYXJ0MSBpcyBub3QgbnVsbCkp OworYWx0ZXIgdGFibGUgaWR4cGFydCBhbHRlciBjb2x1bW4gYiBzZXQgZGF0YSB0eXBlIGludDg7 IC0tZXJyb3IKK0VSUk9SOiAgY2Fubm90IGFsdGVyIHRhYmxlICJpZHhwYXJ0MSIgYmVjYXVzZSBp bmRleCBpZHhwYXJ0X2lkeDEgdXNlcyBpdHMgcm93IHR5cGUKK0hJTlQ6ICBZb3UgbWlnaHQgbmVl ZCB0byBkcm9wIGluZGV4IGlkeHBhcnRfaWR4MSBmaXJzdAorZHJvcCBpbmRleCBpZHhwYXJ0X2lk eDE7CitjcmVhdGUgaW5kZXggaWR4cGFydF9pZHgyIG9uIGlkeHBhcnQxKGEpIHdoZXJlIGlkeHBh cnQxIGlzIG5vdCBudWxsOworYWx0ZXIgdGFibGUgaWR4cGFydCBhbHRlciBjb2x1bW4gYyBzZXQg ZGF0YSB0eXBlIGludDg7IC0tZXJyb3IKK0VSUk9SOiAgY2Fubm90IGFsdGVyIHRhYmxlICJpZHhw YXJ0MSIgYmVjYXVzZSBpbmRleCBpZHhwYXJ0X2lkeDIgdXNlcyBpdHMgcm93IHR5cGUKK0hJTlQ6 ICBZb3UgbWlnaHQgbmVlZCB0byBkcm9wIGluZGV4IGlkeHBhcnRfaWR4MiBmaXJzdAorYWx0ZXIg dGFibGUgaWR4cGFydCBkcm9wIGNvbHVtbiBjOworXGQgaWR4cGFydAorICAgICAgICBQYXJ0aXRp b25lZCB0YWJsZSAicHVibGljLmlkeHBhcnQiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlv biB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAg ICAgICB8IAorIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGFy dGl0aW9uIGtleTogUkFOR0UgKGEpCitOdW1iZXIgb2YgcGFydGl0aW9uczogMSAoVXNlIFxkKyB0 byBsaXN0IHRoZW0uKQorCitcZCBpZHhwYXJ0MQorICAgICAgICAgICAgICBUYWJsZSAicHVibGlj LmlkeHBhcnQxIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERl ZmF1bHQgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0KKyBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBiICAgICAg fCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK1BhcnRpdGlvbiBvZjogaWR4cGFy dCBGT1IgVkFMVUVTIEZST00gKDIwMDApIFRPICgzMDAwKQorCitkcm9wIHRhYmxlIGlkeHBhcnQ7 CiAtLSBWZXJpZnkgdGhhdCBleHByZXNzaW9uIGluZGV4ZXMgaW5oZXJpdCBjb3JyZWN0bHkKIGNy ZWF0ZSB0YWJsZSBpZHhwYXJ0IChhIGludCwgYiBpbnQpIHBhcnRpdGlvbiBieSByYW5nZSAoYSk7 CiBjcmVhdGUgdGFibGUgaWR4cGFydDEgKGxpa2UgaWR4cGFydCk7CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9jb25zdHJhaW50cy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9j b25zdHJhaW50cy5zcWwKaW5kZXggYjdmNmVmZGQ4MTQuLmNiMmYzZmM3ZDVlIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb25zdHJhaW50cy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvY29uc3RyYWludHMuc3FsCkBAIC0xNjUsNiArMTY1LDIyIEBAIENSRUFURSBUQUJM RSBTWVNfQ09MX0NIRUNLX1RCTCAoY2l0eSB0ZXh0LCBzdGF0ZSB0ZXh0LCBpc19jYXBpdGFsIGJv b2wsCiAgICAgICAgICAgICAgICAgICBhbHRpdHVkZSBpbnQsCiAJCQkJICBDSEVDSyAoTk9UIChp c19jYXBpdGFsIEFORCBjdGlkOjp0ZXh0ID0gJ3N5c19jb2xfY2hlY2tfdGJsJykpKTsKIAorLS0K Ky0tIERyb3AgY29sdW1uIGFsc28gZHJvcCBhbGwgY2hlY2sgY29uc3RyYWludHMgdGhhdCBoYXZl IHdob2xlLXJvdyByZWZlcmVuY2VzLgorLS0KKy0tIENoYW5nZSBjb2x1bW4gZGF0YSB0eXBlIHNo b3VsZCBlcnJvciBvdXQgYmVjYXVzZSB0aGUgd2hvbGUtcm93IHJlZmVyZW5jZWQKKy0tIGNoZWNr IGNvbnN0cmFpbnQgaXMgc3RpbGwgbmVlZGVkLgorLS0gbm8gbmVlZCB0byB3b3JyeSBhYm91dCBw YXJ0aXRpb25lZCB0YWJsZXMsIHNpbmNlIHRoZSB3aG9sZS1yb3cgY2hlY2sgY29uc3RyYWludAor LS0gY2FuIG5vdCBzcGFuIG11bHRpIHJlbGF0aW9uLgorQ1JFQVRFIFRBQkxFIHdob2xlcm93X2No ZWNrX3RibCAoCisgICAgY2l0eSBpbnQsCisgICAgQ09OU1RSQUlOVCBjYzAgQ0hFQ0sgKHdob2xl cm93X2NoZWNrX3RibCBpcyBudWxsKSBOT1QgRU5GT1JDRUQsCisgICAgQ09OU1RSQUlOVCBjYzEg Q0hFQ0sgKHdob2xlcm93X2NoZWNrX3RibCBpcyBub3QgbnVsbCkgTk9UIEVORk9SQ0VEKTsKK0FM VEVSIFRBQkxFIHdob2xlcm93X2NoZWNrX3RibCBBTFRFUiBDT0xVTU4gY2l0eSBTRVQgREFUQSBU WVBFIElOVDg7CitBTFRFUiBUQUJMRSB3aG9sZXJvd19jaGVja190YmwgRFJPUCBDT0xVTU4gY2l0 eTsgLS0gb2sKK1xkIHdob2xlcm93X2NoZWNrX3RibAorRFJPUCBUQUJMRSB3aG9sZXJvd19jaGVj a190Ymw7CisKIC0tCiAtLSBDaGVjayBpbmhlcml0YW5jZSBvZiBkZWZhdWx0cyBhbmQgY29uc3Ry YWludHMKIC0tCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9pbmRleGluZy5zcWwg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9pbmRleGluZy5zcWwKaW5kZXggYjVjYjAxYzJkNzAuLjBk ZmVmOTg4ZDBhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9pbmRleGluZy5zcWwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvaW5kZXhpbmcuc3FsCkBAIC0yOTUsNiArMjk1LDI2 IEBAIGFsdGVyIHRhYmxlIGlkeHBhcnQyIGRyb3AgY29sdW1uIGM7CiBcZCBpZHhwYXJ0MgogZHJv cCB0YWJsZSBpZHhwYXJ0LCBpZHhwYXJ0MjsKIAorLS0KKy0tIERyb3AgY29sdW1uIGFsc28gZHJv cCBhbGwgaW5kZXhlcyB0aGF0IGhhdmUgd2hvbGUtcm93IHJlZmVyZW5jZXMuCistLQorLS0gQ2hh bmdlIGNvbHVtbiBkYXRhIHR5cGUgc2hvdWxkIGVycm9yIG91dCBiZWNhdXNlIHRoZSB3aG9sZS1y b3cgcmVmZXJlbmNlZAorLS0gaW5kZXhleCBpcyBzdGlsbCBuZWVkZWQuCitjcmVhdGUgdGFibGUg aWR4cGFydCAoYSBpbnQsIGIgaW50LCBjIGludCkgcGFydGl0aW9uIGJ5IHJhbmdlIChhKTsKK2Ny ZWF0ZSB0YWJsZSBpZHhwYXJ0MSBwYXJ0aXRpb24gb2YgaWR4cGFydCBmb3IgdmFsdWVzIGZyb20g KDIwMDApIHRvICgzMDAwKTsKKworY3JlYXRlIGluZGV4IGlkeHBhcnRfaWR4MSBvbiBpZHhwYXJ0 MSgoaWR4cGFydDEgaXMgbm90IG51bGwpKTsKK2FsdGVyIHRhYmxlIGlkeHBhcnQgYWx0ZXIgY29s dW1uIGIgc2V0IGRhdGEgdHlwZSBpbnQ4OyAtLWVycm9yCitkcm9wIGluZGV4IGlkeHBhcnRfaWR4 MTsKKworY3JlYXRlIGluZGV4IGlkeHBhcnRfaWR4MiBvbiBpZHhwYXJ0MShhKSB3aGVyZSBpZHhw YXJ0MSBpcyBub3QgbnVsbDsKK2FsdGVyIHRhYmxlIGlkeHBhcnQgYWx0ZXIgY29sdW1uIGMgc2V0 IGRhdGEgdHlwZSBpbnQ4OyAtLWVycm9yCithbHRlciB0YWJsZSBpZHhwYXJ0IGRyb3AgY29sdW1u IGM7CisKK1xkIGlkeHBhcnQKK1xkIGlkeHBhcnQxCitkcm9wIHRhYmxlIGlkeHBhcnQ7CisKIC0t IFZlcmlmeSB0aGF0IGV4cHJlc3Npb24gaW5kZXhlcyBpbmhlcml0IGNvcnJlY3RseQogY3JlYXRl IHRhYmxlIGlkeHBhcnQgKGEgaW50LCBiIGludCkgcGFydGl0aW9uIGJ5IHJhbmdlIChhKTsKIGNy ZWF0ZSB0YWJsZSBpZHhwYXJ0MSAobGlrZSBpZHhwYXJ0KTsKLS0gCjIuMzQuMQoK --00000000000012aa9d064bdd4b08--