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 1w716j-004sM9-0R for pgsql-hackers@arkaria.postgresql.org; Mon, 30 Mar 2026 01:07:57 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w716g-000Co6-1b for pgsql-hackers@arkaria.postgresql.org; Mon, 30 Mar 2026 01:07:54 +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 1w716c-000Cnw-2D for pgsql-hackers@lists.postgresql.org; Mon, 30 Mar 2026 01:07:54 +0000 Received: from mail-qt1-x82a.google.com ([2607:f8b0:4864:20::82a]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w716V-00000001izm-43o1 for pgsql-hackers@postgresql.org; Mon, 30 Mar 2026 01:07:47 +0000 Received: by mail-qt1-x82a.google.com with SMTP id d75a77b69052e-50b4001af28so43641951cf.1 for ; Sun, 29 Mar 2026 18:07:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774832863; cv=none; d=google.com; s=arc-20240605; b=I4rbcYHhgPImBPFNbbu1rqwZIsDQedWf0R2vEIMymwcPBT9GjTDpKurfbYNnw7C353 /VlBIwV8O+sGwoRtqM0tfeDGzPWobxi9Rkj67iyox9To4sq0AjuBe/CFSuy2Hz1AueGv dDsIx6VHCK2ieR+8mfcmgC1WnNkPU14d74zYGEbIL9eL6V5WoAydnmBRw+ZJH5YS4IPP 5V3vK/JXarL7cMdbQ6G4h/8W/OOr2PiXhA3ilofP3y3D3WbsJWzSfC5evBAV7pA5IFC9 0N8pSfF+Aay0BJCYZjPeOh6zttTiI4eJ2hpTvjw5Ec2WetMuCL/i45juZs+6hfXFuDG8 eg0A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=wC6b51qF8beiXG8Y+F93YLlHRI4lh9uFlJCgfrxDJrg=; fh=FIa6CnAOcDlblDMIqVQXhn30ONA1aoHzZ0tfczHgg8I=; b=hiulafZqSEs8MkCDkS9e00woUcesefjgMZzRmrF3qexlAjYZwGcok82vlToySNZKpf B/Y9j2CSp08IuoHrBerGtQRmlNRS9yrqvh37YyX43rZ2MYImIZg4fKJNaE2YLk3r/KQD 8I3iEHy2X4q6t8n559BjGHlDW6lR9uJxWaK5XkcEdBNjcCFzvYW81KcB5iMPtNz4z6Dq SxTTsCSHJoaLULNuHYHhE/nw0cLfe4LLjzTTTymKMww8VqmBqpD19HZzFa7Qv98vmFt/ GSdOKPpZL69xS+UharImcLkssaR7Q5gGgQ+434j4nNJZ4P5OV49FaQR0DNwtakkbp6gK nVNA==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=supabase.io; s=google; t=1774832863; x=1775437663; darn=postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=wC6b51qF8beiXG8Y+F93YLlHRI4lh9uFlJCgfrxDJrg=; b=QDHnnOe11sEuMWRN5YauuMXPYadWAsQW4abn2m7eoDdw+DDiLwglDXaHZKDxaHGroC vjY8fh4GT8Am9QnKTsYIcWd0+PjGYOMRBWLAfxyurNXG2zVBIhXHxHoQkJUUd6UXtzwb yzZBG/c9nwKjz/E/DjFBP2gTcPjNcmAtOdo5mpoOuxnqDZEEqB7DeQiOt3godPQorPYx +ipEeX/+O0i+XvGmQZrmmDsCqfLZ2+zLT6VPrvs37V5sjuhrhg7jybSSgo1/+KDSOEnj JFKxR6Ke7Tbb7LkoZ8X9SlGVL6l0Ouinm2QZw3qTSHlxyecN2Q1TMY5o7oFIQVVhowJn Asyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774832863; x=1775437663; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=wC6b51qF8beiXG8Y+F93YLlHRI4lh9uFlJCgfrxDJrg=; b=gdmwJkawr7s6NpZDkSlHxDqpw3Hcy82FRwd+XaQzP77ouHwEYN4iiRzB6xyu9s7tIn aHOAdkmoeJH/ao9e7QveaTPuTRXef6CEBSGkI3YoebKmq8TlA80RvMik0wsLA6d56Cqp o1qjukGTUojSGJFx1NnxDPlNnZUIqO67HfZP9A7u74l7g0hAdKidYVqWbSxYitxdo1CL 3KXSKbFVv7BymdN5vRZ58xfgUz6wxjnLlLAvLROfax5m6LJyY8YrZmVkXHmu65yVQCQK dLkNDXsKZcWlGX3R5fLtcAG6oFem3ClFTLmAPUjSWfy1kqZdT5GuiYYuySCRze69qVb9 qlpA== X-Gm-Message-State: AOJu0YxqkMAzs3RkBV58DMJGwDYMiqtwEdoAr43eaNHkOGTDWp8n5Nql t8wvKXmrfSbTcqj0+r6/yMN4aEdA33Sa6iWbsYYOwvXCK/O8o8/LCogmiHMWAlTHWaeUaLjxr2T Z9Znhj9L5767i6dwLXgbmUF/PnTx6wgQeLjs8k/wOXOw7THRzSEIUZDg= X-Gm-Gg: ATEYQzzWn497Ec+BPmVi4/bWyYCzX+UKjyY7A10BAStk1OQJaf/8F40fkUj2kmfL6gh /bz6ksqzh4yavtuKdTdmas6DnvrvADqPXFoSl2GR0jW7IzO06CNz5ls/HCeG4dk7mEDyQjtHog9 v0d5rwe/BLAGqqJNcBvgEeyf98aJ1yk5ypYZdadDAAyAfMCeF1ryhbyyX6VKWFGFanjP7GLdwm9 jIlUB0H6WeUQuBs4d79uIomMI/kysKDVL+1vZgsdXFv7lUrC+EMHL1MbnxF5/ncpWmFZi07hW/9 noEkR40= X-Received: by 2002:ac8:7d15:0:b0:509:4198:546a with SMTP id d75a77b69052e-50ba37d1a9fmr155456261cf.1.1774832862781; Sun, 29 Mar 2026 18:07:42 -0700 (PDT) MIME-Version: 1.0 From: Steve Chavez Date: Sun, 29 Mar 2026 20:07:31 -0500 X-Gm-Features: AQROBzAInbdsxO7CkyqB7JEY_LrwYAxqd3veblWTKL2c4x9Jo4htL8LWnC5EyDs Message-ID: Subject: [PATCH] Report column-level error when lacking privilege To: PostgreSQL-development Content-Type: multipart/mixed; boundary="00000000000053494e064e337aa6" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000053494e064e337aa6 Content-Type: multipart/alternative; boundary="00000000000053494d064e337aa4" --00000000000053494d064e337aa4 Content-Type: text/plain; charset="UTF-8" Hello hackers, When a role `xx` has `grant select (name) on items to xx;`, a generic table-level error is given: select * from items; ERROR: permission denied for table items With this patch, we now give: select * from items; ERROR: permission denied for column "id" of relation "items" This only when the user has column-level privileges, if it doesn't have any the same regular table-level error is given. This makes the most sense and also keeps current tests mostly the same. * It also works for UPDATE and INSERT. * Clears the TODO mentioned on lines https://github.com/postgres/postgres/blob/45cdaf3665bedfbabb908bb84284f3db26781ad3/src/backend/executor/execMain.c#L691-L693 * This patch is on top of the patch mentioned on https://www.postgresql.org/message-id/CAGRrpzYP%2B3zEk__KZu-a5uWySfwgRFk6eoPXKrA5AdtBTXR%3Dng%40mail.gmail.com, which refactors the code to make it simpler to review. Best regards, Steve --00000000000053494d064e337aa4 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello hackers,

When a role `xx` has `gr= ant select (name) on items to xx;`, a generic table-level error is given:
select * from items;
ERROR: =C2=A0permission denied for table item= s

With this patch, we now give:

select * from items;
ERROR= : =C2=A0permission denied for column "id" of relation "items= "

This only when the user has column-level privileges, if it do= esn't have any the same regular table-level error is given. This makes = the most sense and also keeps current tests mostly the same.

* It al= so works for UPDATE and INSERT.
* Clears the TODO mentioned on lines
= https://githu= b.com/postgres/postgres/blob/45cdaf3665bedfbabb908bb84284f3db26781ad3/src/b= ackend/executor/execMain.c#L691-L693
* This patch is on t= op of the patch mentioned on=C2=A0https://www.postgresql.org/message-id/CAGRrpzYP%2B3zEk__KZu-a5uWySfw= gRFk6eoPXKrA5AdtBTXR%3Dng%40mail.gmail.com, which refactors the code to= make it simpler to review.

Best regards,
Steve
--00000000000053494d064e337aa4-- --00000000000053494e064e337aa6 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Report-column-level-error-when-lacking-privilege.patch" Content-Disposition: attachment; filename="0001-Report-column-level-error-when-lacking-privilege.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnchluxj0 RnJvbSAzNmE1MmE5YWMwMGQ2MmI4NjQwZWEwNGNlY2JhZDU3ODM1MGI2ZTI4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBzdGV2ZS1jaGF2ZXogPHN0ZXZlY2hhdmV6YXN0QGdtYWlsLmNv bT4KRGF0ZTogVHVlLCAyNCBNYXIgMjAyNiAxNjo0MDowMSAtMDUwMApTdWJqZWN0OiBbUEFUQ0hd IFJlcG9ydCBjb2x1bW4tbGV2ZWwgZXJyb3Igd2hlbiBsYWNraW5nIHByaXZpbGVnZQoKV2hlbiBh IHJvbGUgYHh4YCBoYXMgYGdyYW50IHNlbGVjdCAobmFtZSkgb24gaXRlbXMgdG8geHg7YCwgYSBn ZW5lcmljCnRhYmxlLWxldmVsIGVycm9yIGlzIGdpdmVuOgoKc2VsZWN0ICogZnJvbSBpdGVtczsK RVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgaXRlbXMKCldpdGggdGhpcyBwYXRj aCwgd2Ugbm93IGdpdmU6CgpzZWxlY3QgKiBmcm9tIGl0ZW1zOwpFUlJPUjogIHBlcm1pc3Npb24g ZGVuaWVkIGZvciBjb2x1bW4gImlkIiBvZiByZWxhdGlvbiAiaXRlbXMiCgpUaGlzIG9ubHkgd2hl biB0aGUgdXNlciBoYXMgY29sdW1uLWxldmVsIHByaXZpbGVnZXMsIGlmIGl0IGRvZXNuJ3QgaGF2 ZQphbnkgdGhlIHNhbWUgcmVndWxhciB0YWJsZS1sZXZlbCBlcnJvciBpcyBnaXZlbi4gVGhpcyBt YWtlcyB0aGUgbW9zdApzZW5zZSBhbmQgYWxzbyBrZWVwcyBjdXJyZW50IHRlc3RzIG1vc3RseSB0 aGUgc2FtZS4KCiogSXQgYWxzbyB3b3JrcyBmb3IgVVBEQVRFIGFuZCBJTlNFUlQuCiogQ2xlYXJz IHRoZSBUT0RPIG1lbnRpb25lZCBvbiBsaW5lcwpodHRwczovL2dpdGh1Yi5jb20vcG9zdGdyZXMv cG9zdGdyZXMvYmxvYi80NWNkYWYzNjY1YmVkZmJhYmI5MDhiYjg0Mjg0ZjNkYjI2NzgxYWQzL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMjTDY5MS1MNjkzCi0tLQogc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY01haW4uYyAgICAgICAgICAgICAgIHwgIDUxICsrKysrKy0tLQogc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jICAgICAgICAgIHwgIDE3ICsrLQogc3JjL2lu Y2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaCAgICAgICAgICAgICAgIHwgICAzICstCiBzcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dCAgICAgICAgICAgfCAgIDYgKy0KIC4uLi9yZWdy ZXNzL2V4cGVjdGVkL2dlbmVyYXRlZF9zdG9yZWQub3V0ICAgICB8ICAgMiArLQogLi4uL3JlZ3Jl c3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3ZpcnR1YWwub3V0ICAgIHwgICAyICstCiBzcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3ByaXZpbGVnZXMub3V0ICAgICAgfCAxMDQgKysrKysrKysrLS0tLS0t LS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VwZGF0YWJsZV92aWV3cy5vdXQgfCAgODgg KysrKysrKy0tLS0tLS0tCiA4IGZpbGVzIGNoYW5nZWQsIDE1NCBpbnNlcnRpb25zKCspLCAxMTkg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4u YyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKaW5kZXggZGJiZjZlYjg5YmEuLjZm OWNjZDQ5MzBiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCisr KyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKQEAgLTg4LDcgKzg4LDggQEAgc3Rh dGljIHZvaWQgRXhlY3V0ZVBsYW4oUXVlcnlEZXNjICpxdWVyeURlc2MsCiAJCQkJCQlEZXN0UmVj ZWl2ZXIgKmRlc3QpOwogc3RhdGljIGJvb2wgRXhlY0NoZWNrUGVybWlzc2lvbnNNb2RpZmllZChP aWQgcmVsT2lkLCBPaWQgdXNlcmlkLAogCQkJCQkJCQkJCSBCaXRtYXBzZXQgKm1vZGlmaWVkQ29s cywKLQkJCQkJCQkJCQkgQWNsTW9kZSByZXF1aXJlZFBlcm1zKTsKKwkJCQkJCQkJCQkgQWNsTW9k ZSByZXF1aXJlZFBlcm1zLAorCQkJCQkJCQkJCSBBdHRyTnVtYmVyICptaXNzaW5nQ29sdW1uKTsK IHN0YXRpYyB2b2lkIEV4ZWNDaGVja1hhY3RSZWFkT25seShQbGFubmVkU3RtdCAqcGxhbm5lZHN0 bXQpOwogc3RhdGljIHZvaWQgRXZhbFBsYW5RdWFsU3RhcnQoRVBRU3RhdGUgKmVwcXN0YXRlLCBQ bGFuICpwbGFuVHJlZSk7CiBzdGF0aWMgdm9pZCBSZXBvcnROb3ROdWxsVmlvbGF0aW9uRXJyb3Io UmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKQEAgLTYyMSwxNSArNjIyLDI2IEBAIEV4ZWND aGVja1Blcm1pc3Npb25zKExpc3QgKnJhbmdlVGFibGUsIExpc3QgKnJ0ZXBlcm1pbmZvcywKIAlm b3JlYWNoKGwsIHJ0ZXBlcm1pbmZvcykKIAl7CiAJCVJURVBlcm1pc3Npb25JbmZvICpwZXJtaW5m byA9IGxmaXJzdF9ub2RlKFJURVBlcm1pc3Npb25JbmZvLCBsKTsKKwkJQXR0ck51bWJlcgltaXNz aW5nQ29sdW1uID0gSW52YWxpZEF0dHJOdW1iZXI7CiAKIAkJQXNzZXJ0KE9pZElzVmFsaWQocGVy bWluZm8tPnJlbGlkKSk7Ci0JCXJlc3VsdCA9IEV4ZWNDaGVja09uZVJlbFBlcm1zKHBlcm1pbmZv KTsKKwkJcmVzdWx0ID0gRXhlY0NoZWNrT25lUmVsUGVybXMocGVybWluZm8sICZtaXNzaW5nQ29s dW1uKTsKIAkJaWYgKCFyZXN1bHQpCiAJCXsKIAkJCWlmIChlcmVwb3J0X29uX3Zpb2xhdGlvbikK LQkJCQlhY2xjaGVja19lcnJvcihBQ0xDSEVDS19OT19QUklWLAotCQkJCQkJCSAgIGdldF9yZWxr aW5kX29ianR5cGUoZ2V0X3JlbF9yZWxraW5kKHBlcm1pbmZvLT5yZWxpZCkpLAotCQkJCQkJCSAg IGdldF9yZWxfbmFtZShwZXJtaW5mby0+cmVsaWQpKTsKKwkJCXsKKwkJCQlpZiAoQXR0cmlidXRl TnVtYmVySXNWYWxpZChtaXNzaW5nQ29sdW1uKSkKKwkJCQkJYWNsY2hlY2tfZXJyb3JfY29sKEFD TENIRUNLX05PX1BSSVYsCisJCQkJCQkJCQlPQkpFQ1RfQ09MVU1OLAorCQkJCQkJCQkJZ2V0X3Jl bF9uYW1lKHBlcm1pbmZvLT5yZWxpZCksCisJCQkJCQkJCQlnZXRfYXR0bmFtZShwZXJtaW5mby0+ cmVsaWQsCisJCQkJCQkJCQkJCQkJbWlzc2luZ0NvbHVtbiwKKwkJCQkJCQkJCQkJCQlmYWxzZSkp OworCQkJCWVsc2UKKwkJCQkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9fUFJJViwKKwkJCQkJ CQkJZ2V0X3JlbGtpbmRfb2JqdHlwZShnZXRfcmVsX3JlbGtpbmQocGVybWluZm8tPnJlbGlkKSks CisJCQkJCQkJCWdldF9yZWxfbmFtZShwZXJtaW5mby0+cmVsaWQpKTsKKwkJCX0KIAkJCXJldHVy biBmYWxzZTsKIAkJfQogCX0KQEAgLTY0Myw5ICs2NTUsMTEgQEAgRXhlY0NoZWNrUGVybWlzc2lv bnMoTGlzdCAqcmFuZ2VUYWJsZSwgTGlzdCAqcnRlcGVybWluZm9zLAogLyoKICAqIEV4ZWNDaGVj a09uZVJlbFBlcm1zCiAgKgkJQ2hlY2sgYWNjZXNzIHBlcm1pc3Npb25zIGZvciBhIHNpbmdsZSBy ZWxhdGlvbi4KKyAqCQlJZiB0aGUgdXNlciBoYXMgY29sdW1uLWxldmVsIHByaXZpbGVnZXMsIG1p c3NpbmdDb2x1bW4gd2lsbCBiZSBzZXQKKyAqCQlzbyB0aGUgY2FsbGVyIGNhbiBnaXZlIGEgc3Bl Y2lmaWMgZXJyb3IgbWVzc2FnZS4KICAqLwogYm9vbAotRXhlY0NoZWNrT25lUmVsUGVybXMoUlRF UGVybWlzc2lvbkluZm8gKnBlcm1pbmZvKQorRXhlY0NoZWNrT25lUmVsUGVybXMoUlRFUGVybWlz c2lvbkluZm8gKnBlcm1pbmZvLCBBdHRyTnVtYmVyICptaXNzaW5nQ29sdW1uKQogewogCUFjbE1v ZGUJCXJlcXVpcmVkUGVybXM7CiAJQWNsTW9kZQkJcmVsUGVybXM7CkBAIC02NTYsNiArNjcwLDkg QEAgRXhlY0NoZWNrT25lUmVsUGVybXMoUlRFUGVybWlzc2lvbkluZm8gKnBlcm1pbmZvKQogCXJl cXVpcmVkUGVybXMgPSBwZXJtaW5mby0+cmVxdWlyZWRQZXJtczsKIAlBc3NlcnQocmVxdWlyZWRQ ZXJtcyAhPSAwKTsKIAorCWlmIChtaXNzaW5nQ29sdW1uKQorCQkqbWlzc2luZ0NvbHVtbiA9IElu dmFsaWRBdHRyTnVtYmVyOworCiAJLyoKIAkgKiB1c2VyaWQgdG8gY2hlY2sgYXM6IGN1cnJlbnQg dXNlciB1bmxlc3Mgd2UgaGF2ZSBhIHNldHVpZCBpbmRpY2F0aW9uLgogCSAqCkBAIC02ODUsMzAg KzcwMiwyOSBAQCBFeGVjQ2hlY2tPbmVSZWxQZXJtcyhSVEVQZXJtaXNzaW9uSW5mbyAqcGVybWlu Zm8pCiAKIAkJLyoKIAkJICogQ2hlY2sgdG8gc2VlIGlmIHdlIGhhdmUgdGhlIG5lZWRlZCBwcml2 aWxlZ2VzIGF0IGNvbHVtbiBsZXZlbC4KLQkJICoKLQkJICogTm90ZTogZmFpbHVyZXMganVzdCBy ZXBvcnQgYSB0YWJsZS1sZXZlbCBlcnJvcjsgaXQgd291bGQgYmUgbmljZXIKLQkJICogdG8gcmVw b3J0IGEgY29sdW1uLWxldmVsIGVycm9yIGlmIHdlIGhhdmUgc29tZSBidXQgbm90IGFsbCBvZiB0 aGUKLQkJICogY29sdW1uIHByaXZpbGVnZXMuCiAJCSAqLwogCQlpZiAocmVtYWluaW5nUGVybXMg JiBBQ0xfU0VMRUNUICYmCiAJCQkhRXhlY0NoZWNrUGVybWlzc2lvbnNNb2RpZmllZChyZWxPaWQs CiAJCQkJCQkJCQkJICB1c2VyaWQsCiAJCQkJCQkJCQkJICBwZXJtaW5mby0+c2VsZWN0ZWRDb2xz LAotCQkJCQkJCQkJCSAgQUNMX1NFTEVDVCkpCisJCQkJCQkJCQkJICBBQ0xfU0VMRUNULAorCQkJ CQkJCQkJCSAgbWlzc2luZ0NvbHVtbikpCiAJCQlyZXR1cm4gZmFsc2U7CiAKIAkJaWYgKHJlbWFp bmluZ1Blcm1zICYgQUNMX0lOU0VSVCAmJgogCQkJIUV4ZWNDaGVja1Blcm1pc3Npb25zTW9kaWZp ZWQocmVsT2lkLAogCQkJCQkJCQkJCSAgdXNlcmlkLAogCQkJCQkJCQkJCSAgcGVybWluZm8tPmlu c2VydGVkQ29scywKLQkJCQkJCQkJCQkgIEFDTF9JTlNFUlQpKQorCQkJCQkJCQkJCSAgQUNMX0lO U0VSVCwKKwkJCQkJCQkJCQkgIG1pc3NpbmdDb2x1bW4pKQogCQkJcmV0dXJuIGZhbHNlOwogCiAJ CWlmIChyZW1haW5pbmdQZXJtcyAmIEFDTF9VUERBVEUgJiYKIAkJCSFFeGVjQ2hlY2tQZXJtaXNz aW9uc01vZGlmaWVkKHJlbE9pZCwKIAkJCQkJCQkJCQkgIHVzZXJpZCwKIAkJCQkJCQkJCQkgIHBl cm1pbmZvLT51cGRhdGVkQ29scywKLQkJCQkJCQkJCQkgIEFDTF9VUERBVEUpKQorCQkJCQkJCQkJ CSAgQUNMX1VQREFURSwKKwkJCQkJCQkJCQkgIG1pc3NpbmdDb2x1bW4pKQogCQkJcmV0dXJuIGZh bHNlOwogCX0KIAlyZXR1cm4gdHJ1ZTsKQEAgLTcyMSw3ICs3MzcsOCBAQCBFeGVjQ2hlY2tPbmVS ZWxQZXJtcyhSVEVQZXJtaXNzaW9uSW5mbyAqcGVybWluZm8pCiAgKi8KIHN0YXRpYyBib29sCiBF eGVjQ2hlY2tQZXJtaXNzaW9uc01vZGlmaWVkKE9pZCByZWxPaWQsIE9pZCB1c2VyaWQsIEJpdG1h cHNldCAqbW9kaWZpZWRDb2xzLAotCQkJCQkJCSBBY2xNb2RlIHJlcXVpcmVkUGVybXMpCisJCQkJ CQkJIEFjbE1vZGUgcmVxdWlyZWRQZXJtcywKKwkJCQkJCQkgQXR0ck51bWJlciAqbWlzc2luZ0Nv bHVtbikKIHsKIAlpbnQJCQljb2wgPSAtMTsKIApAQCAtNzYzLDcgKzc4MCwxMyBAQCBFeGVjQ2hl Y2tQZXJtaXNzaW9uc01vZGlmaWVkKE9pZCByZWxPaWQsIE9pZCB1c2VyaWQsIEJpdG1hcHNldCAq bW9kaWZpZWRDb2xzLAogCQl7CiAJCQlpZiAocGdfYXR0cmlidXRlX2FjbGNoZWNrKHJlbE9pZCwg YXR0bm8sIHVzZXJpZCwKIAkJCQkJCQkJCSAgcmVxdWlyZWRQZXJtcykgIT0gQUNMQ0hFQ0tfT0sp CisJCQl7CisgCQkJCS8qIHNldCB0aGUgbWlzc2luZyBjb2x1bW4gb25seSBpbiBjYXNlIHRoZSB1 c2VyIGhhcyBjb2x1bW4tbGV2ZWwgcHJpdmlsZWdlcyAqLworCQkJCWlmIChtaXNzaW5nQ29sdW1u ICYmIHBnX2F0dHJpYnV0ZV9hY2xjaGVja19hbGwocmVsT2lkLCB1c2VyaWQsIHJlcXVpcmVkUGVy bXMsCisJCQkJCQkJCQkgIEFDTE1BU0tfQU5ZKSA9PSBBQ0xDSEVDS19PSykKKwkJCQkJKm1pc3Np bmdDb2x1bW4gPSBhdHRubzsKIAkJCQlyZXR1cm4gZmFsc2U7CisJCQl9CiAJCX0KIAl9CiAJcmV0 dXJuIHRydWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVy LmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKaW5kZXggZDE5ODAwYWQ2 YTUuLjU0Y2NkNWEzNzJiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9w bGFubmVyLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCkBAIC05 NTksMTIgKzk1OSwyMyBAQCBzdWJxdWVyeV9wbGFubmVyKFBsYW5uZXJHbG9iYWwgKmdsb2IsIFF1 ZXJ5ICpwYXJzZSwgY2hhciAqcGxhbl9uYW1lLAogCQl7CiAJCQlSVEVQZXJtaXNzaW9uSW5mbyAq cGVybWluZm87CiAJCQlib29sCQlyZXN1bHQ7CisJCQlBdHRyTnVtYmVyCW1pc3NpbmdDb2x1bW4g PSBJbnZhbGlkQXR0ck51bWJlcjsKIAogCQkJcGVybWluZm8gPSBnZXRSVEVQZXJtaXNzaW9uSW5m byhwYXJzZS0+cnRlcGVybWluZm9zLCBydGUpOwotCQkJcmVzdWx0ID0gRXhlY0NoZWNrT25lUmVs UGVybXMocGVybWluZm8pOworCQkJcmVzdWx0ID0gRXhlY0NoZWNrT25lUmVsUGVybXMocGVybWlu Zm8sICZtaXNzaW5nQ29sdW1uKTsKIAkJCWlmICghcmVzdWx0KQotCQkJCWFjbGNoZWNrX2Vycm9y KEFDTENIRUNLX05PX1BSSVYsIE9CSkVDVF9WSUVXLAotCQkJCQkJCSAgIGdldF9yZWxfbmFtZShw ZXJtaW5mby0+cmVsaWQpKTsKKwkJCXsKKwkJCQlpZiAoQXR0cmlidXRlTnVtYmVySXNWYWxpZCht aXNzaW5nQ29sdW1uKSkKKwkJCQkJYWNsY2hlY2tfZXJyb3JfY29sKEFDTENIRUNLX05PX1BSSVYs CisJCQkJCQkJCQkgICBPQkpFQ1RfQ09MVU1OLAorCQkJCQkJCQkJICAgZ2V0X3JlbF9uYW1lKHBl cm1pbmZvLT5yZWxpZCksCisJCQkJCQkJCQkgICBnZXRfYXR0bmFtZShwZXJtaW5mby0+cmVsaWQs CisJCQkJCQkJCQkJCQkgICBtaXNzaW5nQ29sdW1uLAorCQkJCQkJCQkJCQkJICAgZmFsc2UpKTsK KwkJCQllbHNlCisJCQkJCWFjbGNoZWNrX2Vycm9yKEFDTENIRUNLX05PX1BSSVYsIE9CSkVDVF9W SUVXLAorCQkJCQkJCQkgICBnZXRfcmVsX25hbWUocGVybWluZm8tPnJlbGlkKSk7CisJCQl9CiAJ CX0KIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmggYi9z cmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oCmluZGV4IDA3ZjRiMWY3NDkwLi4yNDBhODRk MDY5OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaAorKysgYi9z cmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oCkBAIC0yNDYsNyArMjQ2LDggQEAgZXh0ZXJu IHZvaWQgc3RhbmRhcmRfRXhlY3V0b3JFbmQoUXVlcnlEZXNjICpxdWVyeURlc2MpOwogZXh0ZXJu IHZvaWQgRXhlY3V0b3JSZXdpbmQoUXVlcnlEZXNjICpxdWVyeURlc2MpOwogZXh0ZXJuIGJvb2wg RXhlY0NoZWNrUGVybWlzc2lvbnMoTGlzdCAqcmFuZ2VUYWJsZSwKIAkJCQkJCQkJIExpc3QgKnJ0 ZXBlcm1pbmZvcywgYm9vbCBlcmVwb3J0X29uX3Zpb2xhdGlvbik7Ci1leHRlcm4gYm9vbCBFeGVj Q2hlY2tPbmVSZWxQZXJtcyhSVEVQZXJtaXNzaW9uSW5mbyAqcGVybWluZm8pOworZXh0ZXJuIGJv b2wgRXhlY0NoZWNrT25lUmVsUGVybXMoUlRFUGVybWlzc2lvbkluZm8gKnBlcm1pbmZvLAorCQkJ CQkJCQkgQXR0ck51bWJlciAqbWlzc2luZ0NvbHVtbik7CiBleHRlcm4gdm9pZCBDaGVja1ZhbGlk UmVzdWx0UmVsKFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sIENtZFR5cGUgb3BlcmF0aW9u LAogCQkJCQkJCQlPbkNvbmZsaWN0QWN0aW9uIG9uQ29uZmxpY3RBY3Rpb24sCiAJCQkJCQkJCUxp c3QgKm1lcmdlQWN0aW9ucyk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2NvcHkyLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0CmluZGV4IDAx MTAxYzcxMDUxLi44NTE2ODU2MGVlMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9jb3B5Mi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQK QEAgLTcyMCwxMiArNzIwLDEyIEBAIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKIFNFVCBT RVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY29weV91c2VyX2NvbHBlcm1zOwogLS0g YXR0ZW1wdCBhbGwgY29sdW1ucyAoc2hvdWxkIGZhaWwpCiBDT1BZIHJsc190MSBUTyBzdGRvdXQ7 Ci1FUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSBybHNfdDEKK0VSUk9SOiAgcGVy bWlzc2lvbiBkZW5pZWQgZm9yIGNvbHVtbiAiYyIgb2YgcmVsYXRpb24gInJsc190MSIKIENPUFkg cmxzX3QxIChhLCBiLCBjKSBUTyBzdGRvdXQ7Ci1FUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZv ciB0YWJsZSBybHNfdDEKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIGNvbHVtbiAiYyIg b2YgcmVsYXRpb24gInJsc190MSIKIC0tIHRyeSB0byBjb3B5IGNvbHVtbiB3aXRoIG5vIHByaXZp bGVnZXMgKHNob3VsZCBmYWlsKQogQ09QWSBybHNfdDEgKGMpIFRPIHN0ZG91dDsKLUVSUk9SOiAg cGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIHJsc190MQorRVJST1I6ICBwZXJtaXNzaW9uIGRl bmllZCBmb3IgY29sdW1uICJjIiBvZiByZWxhdGlvbiAicmxzX3QxIgogLS0gc3Vic2V0IG9mIGNv bHVtbnMgKHNob3VsZCBzdWNjZWVkKQogQ09QWSBybHNfdDEgKGEpIFRPIHN0ZG91dDsKIDIKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3N0b3JlZC5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZF9zdG9yZWQub3V0CmluZGV4IDIz ODU1NzNkOTEzLi5mOWQzMjFjZTg0NiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9nZW5lcmF0ZWRfc3RvcmVkLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2dlbmVyYXRlZF9zdG9yZWQub3V0CkBAIC02MjEsNyArNjIxLDcgQEAgSU5TRVJUIElOVE8gZ3Rl c3QxMiBWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKTsKIEdSQU5UIFNFTEVDVCAoYSwgYyksIElOU0VS VCBPTiBndGVzdDEyIFRPIHJlZ3Jlc3NfdXNlcjExOwogU0VUIFJPTEUgcmVncmVzc191c2VyMTE7 CiBTRUxFQ1QgYSwgYiBGUk9NIGd0ZXN0MTE7ICAtLSBub3QgYWxsb3dlZAotRVJST1I6ICBwZXJt aXNzaW9uIGRlbmllZCBmb3IgdGFibGUgZ3Rlc3QxMQorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmll ZCBmb3IgY29sdW1uICJiIiBvZiByZWxhdGlvbiAiZ3Rlc3QxMSIKIFNFTEVDVCBhLCBjIEZST00g Z3Rlc3QxMTsgIC0tIGFsbG93ZWQKICBhIHwgYyAgCiAtLS0rLS0tLQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0ZWRfdmlydHVhbC5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZF92aXJ0dWFsLm91dAppbmRleCA5MzY1ZmQzYzU3Yi4u MzExYzMxNGMxNjAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJh dGVkX3ZpcnR1YWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVk X3ZpcnR1YWwub3V0CkBAIC02MTUsNyArNjE1LDcgQEAgREVUQUlMOiAgVmlydHVhbCBnZW5lcmF0 ZWQgY29sdW1ucyB0aGF0IG1ha2UgdXNlIG9mIHVzZXItZGVmaW5lZCBmdW5jdGlvbnMgYXJlIG4K IC0tR1JBTlQgU0VMRUNUIChhLCBjKSwgSU5TRVJUIE9OIGd0ZXN0MTIgVE8gcmVncmVzc191c2Vy MTE7CiBTRVQgUk9MRSByZWdyZXNzX3VzZXIxMTsKIFNFTEVDVCBhLCBiIEZST00gZ3Rlc3QxMTsg IC0tIG5vdCBhbGxvd2VkCi1FUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSBndGVz dDExCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBjb2x1bW4gImIiIG9mIHJlbGF0aW9u ICJndGVzdDExIgogU0VMRUNUIGEsIGMgRlJPTSBndGVzdDExOyAgLS0gYWxsb3dlZAogIGEgfCBj ICAKIC0tLSstLS0tCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ByaXZp bGVnZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wcml2aWxlZ2VzLm91dAppbmRl eCA3MDY5ZTlmZWJiOC4uNTcwMjZiYTNhZTAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcHJpdmlsZWdlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9w cml2aWxlZ2VzLm91dApAQCAtNzYxLDcgKzc2MSw3IEBAIFNFTEVDVCB1bm5lc3QocGdfZ2V0X2Fj bCgncGdfY2xhc3MnOjpyZWdjbGFzcywgJ2F0ZXN0NSc6OnJlZ2NsYXNzOjpvaWQsIDQpKTsKIElO U0VSVCBJTlRPIGF0ZXN0NSBWQUxVRVMgKDEsMiwzKTsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJ T04gcmVncmVzc19wcml2X3VzZXI0OwogU0VMRUNUICogRlJPTSBhdGVzdDU7IC0tIGZhaWwKLUVS Uk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIGF0ZXN0NQorRVJST1I6ICBwZXJtaXNz aW9uIGRlbmllZCBmb3IgY29sdW1uICJ0d28iIG9mIHJlbGF0aW9uICJhdGVzdDUiCiBTRUxFQ1Qg b25lIEZST00gYXRlc3Q1OyAtLSBvawogIG9uZSAKIC0tLS0tCkBAIC03NzEsMTMgKzc3MSwxMyBA QCBTRUxFQ1Qgb25lIEZST00gYXRlc3Q1OyAtLSBvawogQ09QWSBhdGVzdDUgKG9uZSkgVE8gc3Rk b3V0OyAtLSBvawogMQogU0VMRUNUIHR3byBGUk9NIGF0ZXN0NTsgLS0gZmFpbAotRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgYXRlc3Q1CitFUlJPUjogIHBlcm1pc3Npb24gZGVu aWVkIGZvciBjb2x1bW4gInR3byIgb2YgcmVsYXRpb24gImF0ZXN0NSIKIENPUFkgYXRlc3Q1ICh0 d28pIFRPIHN0ZG91dDsgLS0gZmFpbAotRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFi bGUgYXRlc3Q1CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBjb2x1bW4gInR3byIgb2Yg cmVsYXRpb24gImF0ZXN0NSIKIFNFTEVDVCBhdGVzdDUgRlJPTSBhdGVzdDU7IC0tIGZhaWwKIEVS Uk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIGF0ZXN0NQogQ09QWSBhdGVzdDUgKG9u ZSx0d28pIFRPIHN0ZG91dDsgLS0gZmFpbAotRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Ig dGFibGUgYXRlc3Q1CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBjb2x1bW4gInR3byIg b2YgcmVsYXRpb24gImF0ZXN0NSIKIFNFTEVDVCAxIEZST00gYXRlc3Q1OyAtLSBvawogID9jb2x1 bW4/IAogLS0tLS0tLS0tLQpAQCAtNzkxLDEzICs3OTEsMTMgQEAgU0VMRUNUIDEgRlJPTSBhdGVz dDUgYSBKT0lOIGF0ZXN0NSBiIFVTSU5HIChvbmUpOyAtLSBvawogKDEgcm93KQogCiBTRUxFQ1Qg MSBGUk9NIGF0ZXN0NSBhIEpPSU4gYXRlc3Q1IGIgVVNJTkcgKHR3byk7IC0tIGZhaWwKLUVSUk9S OiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIGF0ZXN0NQorRVJST1I6ICBwZXJtaXNzaW9u IGRlbmllZCBmb3IgY29sdW1uICJ0d28iIG9mIHJlbGF0aW9uICJhdGVzdDUiCiBTRUxFQ1QgMSBG Uk9NIGF0ZXN0NSBhIE5BVFVSQUwgSk9JTiBhdGVzdDUgYjsgLS0gZmFpbAotRVJST1I6ICBwZXJt aXNzaW9uIGRlbmllZCBmb3IgdGFibGUgYXRlc3Q1CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVk IGZvciBjb2x1bW4gInR3byIgb2YgcmVsYXRpb24gImF0ZXN0NSIKIFNFTEVDVCAqIEZST00gKGF0 ZXN0NSBhIEpPSU4gYXRlc3Q1IGIgVVNJTkcgKG9uZSkpIGo7IC0tIGZhaWwKLUVSUk9SOiAgcGVy bWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIGF0ZXN0NQorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmll ZCBmb3IgY29sdW1uICJ0d28iIG9mIHJlbGF0aW9uICJhdGVzdDUiCiBTRUxFQ1Qgai4qIEZST00g KGF0ZXN0NSBhIEpPSU4gYXRlc3Q1IGIgVVNJTkcgKG9uZSkpIGo7IC0tIGZhaWwKLUVSUk9SOiAg cGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIGF0ZXN0NQorRVJST1I6ICBwZXJtaXNzaW9uIGRl bmllZCBmb3IgY29sdW1uICJ0d28iIG9mIHJlbGF0aW9uICJhdGVzdDUiCiBTRUxFQ1QgKGouKikg SVMgTlVMTCBGUk9NIChhdGVzdDUgYSBKT0lOIGF0ZXN0NSBiIFVTSU5HIChvbmUpKSBqOyAtLSBm YWlsCiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSBhdGVzdDUKIFNFTEVDVCBv bmUgRlJPTSAoYXRlc3Q1IGEgSk9JTiBhdGVzdDUgYihvbmUseCx5LHopIFVTSU5HIChvbmUpKSBq OyAtLSBvawpAQCAtODEzLDM5ICs4MTMsMzkgQEAgU0VMRUNUIGoub25lIEZST00gKGF0ZXN0NSBh IEpPSU4gYXRlc3Q1IGIob25lLHgseSx6KSBVU0lORyAob25lKSkgajsgLS0gb2sKICgxIHJvdykK IAogU0VMRUNUIHR3byBGUk9NIChhdGVzdDUgYSBKT0lOIGF0ZXN0NSBiKG9uZSx4LHkseikgVVNJ TkcgKG9uZSkpIGo7IC0tIGZhaWwKLUVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxl IGF0ZXN0NQorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgY29sdW1uICJ0d28iIG9mIHJl bGF0aW9uICJhdGVzdDUiCiBTRUxFQ1Qgai50d28gRlJPTSAoYXRlc3Q1IGEgSk9JTiBhdGVzdDUg YihvbmUseCx5LHopIFVTSU5HIChvbmUpKSBqOyAtLSBmYWlsCi1FUlJPUjogIHBlcm1pc3Npb24g ZGVuaWVkIGZvciB0YWJsZSBhdGVzdDUKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIGNv bHVtbiAidHdvIiBvZiByZWxhdGlvbiAiYXRlc3Q1IgogU0VMRUNUIHkgRlJPTSAoYXRlc3Q1IGEg Sk9JTiBhdGVzdDUgYihvbmUseCx5LHopIFVTSU5HIChvbmUpKSBqOyAtLSBmYWlsCi1FUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSBhdGVzdDUKK0VSUk9SOiAgcGVybWlzc2lvbiBk ZW5pZWQgZm9yIGNvbHVtbiAidGhyZWUiIG9mIHJlbGF0aW9uICJhdGVzdDUiCiBTRUxFQ1Qgai55 IEZST00gKGF0ZXN0NSBhIEpPSU4gYXRlc3Q1IGIob25lLHgseSx6KSBVU0lORyAob25lKSkgajsg LS0gZmFpbAotRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgYXRlc3Q1CitFUlJP UjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBjb2x1bW4gInRocmVlIiBvZiByZWxhdGlvbiAiYXRl c3Q1IgogU0VMRUNUICogRlJPTSAoYXRlc3Q1IGEgSk9JTiBhdGVzdDUgYiBVU0lORyAob25lKSk7 IC0tIGZhaWwKLUVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIGF0ZXN0NQorRVJS T1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgY29sdW1uICJ0d28iIG9mIHJlbGF0aW9uICJhdGVz dDUiCiBTRUxFQ1QgYS4qIEZST00gKGF0ZXN0NSBhIEpPSU4gYXRlc3Q1IGIgVVNJTkcgKG9uZSkp OyAtLSBmYWlsCi1FUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSBhdGVzdDUKK0VS Uk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIGNvbHVtbiAidHdvIiBvZiByZWxhdGlvbiAiYXRl c3Q1IgogU0VMRUNUIChhLiopIElTIE5VTEwgRlJPTSAoYXRlc3Q1IGEgSk9JTiBhdGVzdDUgYiBV U0lORyAob25lKSk7IC0tIGZhaWwKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxl IGF0ZXN0NQogU0VMRUNUIHR3byBGUk9NIChhdGVzdDUgYSBKT0lOIGF0ZXN0NSBiKG9uZSx4LHks eikgVVNJTkcgKG9uZSkpOyAtLSBmYWlsCi1FUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0 YWJsZSBhdGVzdDUKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIGNvbHVtbiAidHdvIiBv ZiByZWxhdGlvbiAiYXRlc3Q1IgogU0VMRUNUIGEudHdvIEZST00gKGF0ZXN0NSBhIEpPSU4gYXRl c3Q1IGIob25lLHgseSx6KSBVU0lORyAob25lKSk7IC0tIGZhaWwKLUVSUk9SOiAgcGVybWlzc2lv biBkZW5pZWQgZm9yIHRhYmxlIGF0ZXN0NQorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Ig Y29sdW1uICJ0d28iIG9mIHJlbGF0aW9uICJhdGVzdDUiCiBTRUxFQ1QgeSBGUk9NIChhdGVzdDUg YSBKT0lOIGF0ZXN0NSBiKG9uZSx4LHkseikgVVNJTkcgKG9uZSkpOyAtLSBmYWlsCi1FUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSBhdGVzdDUKK0VSUk9SOiAgcGVybWlzc2lvbiBk ZW5pZWQgZm9yIGNvbHVtbiAidGhyZWUiIG9mIHJlbGF0aW9uICJhdGVzdDUiCiBTRUxFQ1QgYi55 IEZST00gKGF0ZXN0NSBhIEpPSU4gYXRlc3Q1IGIob25lLHgseSx6KSBVU0lORyAob25lKSk7IC0t IGZhaWwKLUVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIGF0ZXN0NQorRVJST1I6 ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgY29sdW1uICJ0aHJlZSIgb2YgcmVsYXRpb24gImF0ZXN0 NSIKIFNFTEVDVCB5IEZST00gKGF0ZXN0NSBhIExFRlQgSk9JTiBhdGVzdDUgYihvbmUseCx5LHop IFVTSU5HIChvbmUpKTsgLS0gZmFpbAotRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFi bGUgYXRlc3Q1CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBjb2x1bW4gInRocmVlIiBv ZiByZWxhdGlvbiAiYXRlc3Q1IgogU0VMRUNUIGIueSBGUk9NIChhdGVzdDUgYSBMRUZUIEpPSU4g YXRlc3Q1IGIob25lLHgseSx6KSBVU0lORyAob25lKSk7IC0tIGZhaWwKLUVSUk9SOiAgcGVybWlz c2lvbiBkZW5pZWQgZm9yIHRhYmxlIGF0ZXN0NQorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBm b3IgY29sdW1uICJ0aHJlZSIgb2YgcmVsYXRpb24gImF0ZXN0NSIKIFNFTEVDVCB5IEZST00gKGF0 ZXN0NSBhIEZVTEwgSk9JTiBhdGVzdDUgYihvbmUseCx5LHopIFVTSU5HIChvbmUpKTsgLS0gZmFp bAotRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgYXRlc3Q1CitFUlJPUjogIHBl cm1pc3Npb24gZGVuaWVkIGZvciBjb2x1bW4gInRocmVlIiBvZiByZWxhdGlvbiAiYXRlc3Q1Igog U0VMRUNUIGIueSBGUk9NIChhdGVzdDUgYSBGVUxMIEpPSU4gYXRlc3Q1IGIob25lLHgseSx6KSBV U0lORyAob25lKSk7IC0tIGZhaWwKLUVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxl IGF0ZXN0NQorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgY29sdW1uICJ0aHJlZSIgb2Yg cmVsYXRpb24gImF0ZXN0NSIKIFNFTEVDVCAxIEZST00gYXRlc3Q1IFdIRVJFIHR3byA9IDI7IC0t IGZhaWwKLUVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIGF0ZXN0NQorRVJST1I6 ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgY29sdW1uICJ0d28iIG9mIHJlbGF0aW9uICJhdGVzdDUi CiBTRUxFQ1QgKiBGUk9NIGF0ZXN0MSwgYXRlc3Q1OyAtLSBmYWlsCi1FUlJPUjogIHBlcm1pc3Np b24gZGVuaWVkIGZvciB0YWJsZSBhdGVzdDUKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9y IGNvbHVtbiAidHdvIiBvZiByZWxhdGlvbiAiYXRlc3Q1IgogU0VMRUNUIGF0ZXN0MS4qIEZST00g YXRlc3QxLCBhdGVzdDU7IC0tIG9rCiAgYSB8ICBiICAKIC0tLSstLS0tLQpAQCAtODYxLDcgKzg2 MSw3IEBAIFNFTEVDVCBhdGVzdDEuKixhdGVzdDUub25lIEZST00gYXRlc3QxLCBhdGVzdDU7IC0t IG9rCiAoMiByb3dzKQogCiBTRUxFQ1QgYXRlc3QxLiosYXRlc3Q1Lm9uZSBGUk9NIGF0ZXN0MSBK T0lOIGF0ZXN0NSBPTiAoYXRlc3QxLmEgPSBhdGVzdDUudHdvKTsgLS0gZmFpbAotRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgYXRlc3Q1CitFUlJPUjogIHBlcm1pc3Npb24gZGVu aWVkIGZvciBjb2x1bW4gInR3byIgb2YgcmVsYXRpb24gImF0ZXN0NSIKIFNFTEVDVCBhdGVzdDEu KixhdGVzdDUub25lIEZST00gYXRlc3QxIEpPSU4gYXRlc3Q1IE9OIChhdGVzdDEuYSA9IGF0ZXN0 NS5vbmUpOyAtLSBvawogIGEgfCAgYiAgfCBvbmUgCiAtLS0rLS0tLS0rLS0tLS0KQEAgLTg3MCwx MiArODcwLDEyIEBAIFNFTEVDVCBhdGVzdDEuKixhdGVzdDUub25lIEZST00gYXRlc3QxIEpPSU4g YXRlc3Q1IE9OIChhdGVzdDEuYSA9IGF0ZXN0NS5vbmUpOyAtCiAoMiByb3dzKQogCiBTRUxFQ1Qg b25lLCB0d28gRlJPTSBhdGVzdDU7IC0tIGZhaWwKLUVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQg Zm9yIHRhYmxlIGF0ZXN0NQorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgY29sdW1uICJ0 d28iIG9mIHJlbGF0aW9uICJhdGVzdDUiCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jl c3NfcHJpdl91c2VyMTsKIEdSQU5UIFNFTEVDVCAob25lLHR3bykgT04gYXRlc3Q2IFRPIHJlZ3Jl c3NfcHJpdl91c2VyNDsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3Vz ZXI0OwogU0VMRUNUIG9uZSwgdHdvIEZST00gYXRlc3Q1IE5BVFVSQUwgSk9JTiBhdGVzdDY7IC0t IGZhaWwgc3RpbGwKLUVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIGF0ZXN0NQor RVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgY29sdW1uICJ0d28iIG9mIHJlbGF0aW9uICJh dGVzdDUiCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcHJpdl91c2VyMTsKIEdS QU5UIFNFTEVDVCAodHdvKSBPTiBhdGVzdDUgVE8gcmVncmVzc19wcml2X3VzZXI0OwogU0VUIFNF U1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3ByaXZfdXNlcjQ7CkBAIC04ODcsMjMgKzg4Nywy MyBAQCBTRUxFQ1Qgb25lLCB0d28gRlJPTSBhdGVzdDUgTkFUVVJBTCBKT0lOIGF0ZXN0NjsgLS0g b2sgbm93CiAtLSB0ZXN0IGNvbHVtbi1sZXZlbCBwcml2aWxlZ2VzIGZvciBJTlNFUlQgYW5kIFVQ REFURQogSU5TRVJUIElOVE8gYXRlc3Q1ICh0d28pIFZBTFVFUyAoMyk7IC0tIG9rCiBDT1BZIGF0 ZXN0NSBGUk9NIHN0ZGluOyAtLSBmYWlsCi1FUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0 YWJsZSBhdGVzdDUKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIGNvbHVtbiAib25lIiBv ZiByZWxhdGlvbiAiYXRlc3Q1IgogQ09QWSBhdGVzdDUgKHR3bykgRlJPTSBzdGRpbjsgLS0gb2sK IElOU0VSVCBJTlRPIGF0ZXN0NSAodGhyZWUpIFZBTFVFUyAoNCk7IC0tIGZhaWwKLUVSUk9SOiAg cGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIGF0ZXN0NQorRVJST1I6ICBwZXJtaXNzaW9uIGRl bmllZCBmb3IgY29sdW1uICJ0aHJlZSIgb2YgcmVsYXRpb24gImF0ZXN0NSIKIElOU0VSVCBJTlRP IGF0ZXN0NSBWQUxVRVMgKDUsNSw1KTsgLS0gZmFpbAotRVJST1I6ICBwZXJtaXNzaW9uIGRlbmll ZCBmb3IgdGFibGUgYXRlc3Q1CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBjb2x1bW4g Im9uZSIgb2YgcmVsYXRpb24gImF0ZXN0NSIKIFVQREFURSBhdGVzdDUgU0VUIHRocmVlID0gMTA7 IC0tIG9rCiBVUERBVEUgYXRlc3Q1IFNFVCBvbmUgPSA4OyAtLSBmYWlsCi1FUlJPUjogIHBlcm1p c3Npb24gZGVuaWVkIGZvciB0YWJsZSBhdGVzdDUKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQg Zm9yIGNvbHVtbiAib25lIiBvZiByZWxhdGlvbiAiYXRlc3Q1IgogVVBEQVRFIGF0ZXN0NSBTRVQg dGhyZWUgPSA1LCBvbmUgPSAyOyAtLSBmYWlsCi1FUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZv ciB0YWJsZSBhdGVzdDUKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIGNvbHVtbiAib25l IiBvZiByZWxhdGlvbiAiYXRlc3Q1IgogLS0gQ2hlY2sgdGhhdCBjb2x1bW4gbGV2ZWwgcHJpdnMg YXJlIGVuZm9yY2VkIGluIFJFVFVSTklORwogLS0gT2suCiBJTlNFUlQgSU5UTyBhdGVzdDUodHdv KSBWQUxVRVMgKDYpIE9OIENPTkZMSUNUICh0d28pIERPIFVQREFURSBzZXQgdGhyZWUgPSAxMDsK IC0tIEVycm9yLiBObyBTRUxFQ1Qgb24gY29sdW1uIHRocmVlLgogSU5TRVJUIElOVE8gYXRlc3Q1 KHR3bykgVkFMVUVTICg2KSBPTiBDT05GTElDVCAodHdvKSBETyBVUERBVEUgc2V0IHRocmVlID0g MTAgUkVUVVJOSU5HIGF0ZXN0NS50aHJlZTsKLUVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9y IHRhYmxlIGF0ZXN0NQorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgY29sdW1uICJ0aHJl ZSIgb2YgcmVsYXRpb24gImF0ZXN0NSIKIC0tIE9rLiAgTWF5IFNFTEVDVCBvbiBjb2x1bW4gIm9u ZSI6CiBJTlNFUlQgSU5UTyBhdGVzdDUodHdvKSBWQUxVRVMgKDYpIE9OIENPTkZMSUNUICh0d28p IERPIFVQREFURSBzZXQgdGhyZWUgPSAxMCBSRVRVUk5JTkcgYXRlc3Q1Lm9uZTsKICBvbmUgCkBA IC05MTYsMTEgKzkxNiwxMSBAQCBJTlNFUlQgSU5UTyBhdGVzdDUodHdvKSBWQUxVRVMgKDYpIE9O IENPTkZMSUNUICh0d28pIERPIFVQREFURSBzZXQgdGhyZWUgPSAxMCBSRQogSU5TRVJUIElOVE8g YXRlc3Q1KHR3bykgVkFMVUVTICg2KSBPTiBDT05GTElDVCAodHdvKSBETyBVUERBVEUgc2V0IHRo cmVlID0gRVhDTFVERUQub25lOwogLS0gRXJyb3IuIE5vIHNlbGVjdCByaWdodHMgb24gdGhyZWUK IElOU0VSVCBJTlRPIGF0ZXN0NSh0d28pIFZBTFVFUyAoNikgT04gQ09ORkxJQ1QgKHR3bykgRE8g VVBEQVRFIHNldCB0aHJlZSA9IEVYQ0xVREVELnRocmVlOwotRVJST1I6ICBwZXJtaXNzaW9uIGRl bmllZCBmb3IgdGFibGUgYXRlc3Q1CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBjb2x1 bW4gInRocmVlIiBvZiByZWxhdGlvbiAiYXRlc3Q1IgogSU5TRVJUIElOVE8gYXRlc3Q1KHR3bykg VkFMVUVTICg2KSBPTiBDT05GTElDVCAodHdvKSBETyBVUERBVEUgc2V0IG9uZSA9IDg7IC0tIGZh aWxzIChkdWUgdG8gVVBEQVRFKQotRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUg YXRlc3Q1CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBjb2x1bW4gIm9uZSIgb2YgcmVs YXRpb24gImF0ZXN0NSIKIElOU0VSVCBJTlRPIGF0ZXN0NSh0aHJlZSkgVkFMVUVTICg0KSBPTiBD T05GTElDVCAodHdvKSBETyBVUERBVEUgc2V0IHRocmVlID0gMTA7IC0tIGZhaWxzIChkdWUgdG8g SU5TRVJUKQotRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgYXRlc3Q1CitFUlJP UjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBjb2x1bW4gInRocmVlIiBvZiByZWxhdGlvbiAiYXRl c3Q1IgogLS0gQ2hlY2sgdGhhdCBjb2x1bW4gbGV2ZWwgcHJpdmlsZWdlcyBhcmUgZW5mb3JjZWQg Zm9yIE9OIENPTkZMSUNUIC4uLiBXSEVSRQogLS0gT2suIHdlIG1heSBzZWxlY3Qgb25lCiBJTlNF UlQgSU5UTyBhdGVzdDUodHdvKSBWQUxVRVMgKDIpIE9OIENPTkZMSUNUICh0d28pIERPIFNFTEVD VCBXSEVSRSBhdGVzdDUub25lID0gMSBSRVRVUk5JTkcgYXRlc3Q1LnR3bzsKQEAgLTkzMSw3ICs5 MzEsNyBAQCBJTlNFUlQgSU5UTyBhdGVzdDUodHdvKSBWQUxVRVMgKDIpIE9OIENPTkZMSUNUICh0 d28pIERPIFNFTEVDVCBXSEVSRSBhdGVzdDUub25lCiAKIC0tIEVycm9yLiBObyBzZWxlY3Qgcmln aHRzIG9uIHRocmVlCiBJTlNFUlQgSU5UTyBhdGVzdDUodHdvKSBWQUxVRVMgKDIpIE9OIENPTkZM SUNUICh0d28pIERPIFNFTEVDVCBXSEVSRSBhdGVzdDUudGhyZWUgPSAxIFJFVFVSTklORyBhdGVz dDUudHdvOwotRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgYXRlc3Q1CitFUlJP UjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBjb2x1bW4gInRocmVlIiBvZiByZWxhdGlvbiAiYXRl c3Q1IgogLS0gQ2hlY2sgdGhhdCBPTiBDT05GTElDVCAuLi4gU0VMRUNUIEZPUiBVUERBVEUvU0hB UkUgcmVxdWlyZXMgYW4gdXBkYXRhYmxlIGNvbHVtbgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElP TiByZWdyZXNzX3ByaXZfdXNlcjE7CiBSRVZPS0UgVVBEQVRFICh0aHJlZSkgT04gYXRlc3Q1IEZS T00gcmVncmVzc19wcml2X3VzZXI0OwpAQCAtOTQ5LDE0ICs5NDksMTQgQEAgSU5TRVJUIElOVE8g YXRlc3Q1KHR3bykgVkFMVUVTICgyKSBPTiBDT05GTElDVCAodHdvKSBETyBTRUxFQ1QgRk9SIFVQ REFURSBSRVRVUk4KIAogLS0gQ2hlY2sgdGhhdCB0aGUgY29sdW1ucyBpbiB0aGUgaW5mZXJlbmNl IHJlcXVpcmUgc2VsZWN0IHByaXZpbGVnZXMKIElOU0VSVCBJTlRPIGF0ZXN0NShmb3VyKSBWQUxV RVMgKDQpOyAtLSBmYWlsCi1FUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSBhdGVz dDUKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIGNvbHVtbiAiZm91ciIgb2YgcmVsYXRp b24gImF0ZXN0NSIKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIx OwogR1JBTlQgSU5TRVJUIChmb3VyKSBPTiBhdGVzdDUgVE8gcmVncmVzc19wcml2X3VzZXI0Owog U0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3ByaXZfdXNlcjQ7CiBJTlNFUlQgSU5U TyBhdGVzdDUoZm91cikgVkFMVUVTICg0KSBPTiBDT05GTElDVCAoZm91cikgRE8gVVBEQVRFIHNl dCB0aHJlZSA9IDM7IC0tIGZhaWxzIChkdWUgdG8gU0VMRUNUKQotRVJST1I6ICBwZXJtaXNzaW9u IGRlbmllZCBmb3IgdGFibGUgYXRlc3Q1CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBj b2x1bW4gImZvdXIiIG9mIHJlbGF0aW9uICJhdGVzdDUiCiBJTlNFUlQgSU5UTyBhdGVzdDUoZm91 cikgVkFMVUVTICg0KSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIGF0ZXN0NV9mb3VyX2tleSBE TyBVUERBVEUgc2V0IHRocmVlID0gMzsgLS0gZmFpbHMgKGR1ZSB0byBTRUxFQ1QpCi1FUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSBhdGVzdDUKK0VSUk9SOiAgcGVybWlzc2lvbiBk ZW5pZWQgZm9yIGNvbHVtbiAiZm91ciIgb2YgcmVsYXRpb24gImF0ZXN0NSIKIElOU0VSVCBJTlRP IGF0ZXN0NShmb3VyKSBWQUxVRVMgKDQpOyAtLSBvawogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElP TiByZWdyZXNzX3ByaXZfdXNlcjE7CiBHUkFOVCBTRUxFQ1QgKGZvdXIpIE9OIGF0ZXN0NSBUTyBy ZWdyZXNzX3ByaXZfdXNlcjQ7CkBAIC05NjgsOSArOTY4LDkgQEAgUkVWT0tFIEFMTCAob25lKSBP TiBhdGVzdDUgRlJPTSByZWdyZXNzX3ByaXZfdXNlcjQ7CiBHUkFOVCBTRUxFQ1QgKG9uZSx0d28s Ymx1ZSkgT04gYXRlc3Q2IFRPIHJlZ3Jlc3NfcHJpdl91c2VyNDsKIFNFVCBTRVNTSU9OIEFVVEhP UklaQVRJT04gcmVncmVzc19wcml2X3VzZXI0OwogU0VMRUNUIG9uZSBGUk9NIGF0ZXN0NTsgLS0g ZmFpbAotRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgYXRlc3Q1CitFUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciBjb2x1bW4gIm9uZSIgb2YgcmVsYXRpb24gImF0ZXN0NSIK IFVQREFURSBhdGVzdDUgU0VUIG9uZSA9IDE7IC0tIGZhaWwKLUVSUk9SOiAgcGVybWlzc2lvbiBk ZW5pZWQgZm9yIHRhYmxlIGF0ZXN0NQorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgY29s dW1uICJvbmUiIG9mIHJlbGF0aW9uICJhdGVzdDUiCiBTRUxFQ1QgYXRlc3Q2IEZST00gYXRlc3Q2 OyAtLSBvawogIGF0ZXN0NiAKIC0tLS0tLS0tCkBAIC05OTcsMjEgKzk5NywyMSBAQCBXSEVOIE1B VENIRUQgVEhFTgogCVVQREFURSBTRVQgYiA9IHMuYgogV0hFTiBOT1QgTUFUQ0hFRCBUSEVOCiAJ SU5TRVJUIFZBTFVFUyAoYSwgTlVMTCk7Ci1FUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0 YWJsZSBtc291cmNlCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBjb2x1bW4gImIiIG9m IHJlbGF0aW9uICJtc291cmNlIgogLS0gZmFpbCAocy5iIHVzZWQgaW4gdGhlIElOU0VSVGVkIHZh bHVlcykKIE1FUkdFIElOVE8gbXRhcmdldCB0IFVTSU5HIG1zb3VyY2UgcyBPTiB0LmEgPSBzLmEK IFdIRU4gTUFUQ0hFRCBUSEVOCiAJVVBEQVRFIFNFVCBiID0gJ3gnCiBXSEVOIE5PVCBNQVRDSEVE IFRIRU4KIAlJTlNFUlQgVkFMVUVTIChhLCBiKTsKLUVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQg Zm9yIHRhYmxlIG1zb3VyY2UKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIGNvbHVtbiAi YiIgb2YgcmVsYXRpb24gIm1zb3VyY2UiCiAtLSBmYWlsIChzLmIgdXNlZCBpbiB0aGUgV0hFTiBx dWFscykKIE1FUkdFIElOVE8gbXRhcmdldCB0IFVTSU5HIG1zb3VyY2UgcyBPTiB0LmEgPSBzLmEK IFdIRU4gTUFUQ0hFRCBBTkQgcy5iID0gJ3gnIFRIRU4KIAlVUERBVEUgU0VUIGIgPSAneCcKIFdI RU4gTk9UIE1BVENIRUQgVEhFTgogCUlOU0VSVCBWQUxVRVMgKGEsIE5VTEwpOwotRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgbXNvdXJjZQorRVJST1I6ICBwZXJtaXNzaW9uIGRl bmllZCBmb3IgY29sdW1uICJiIiBvZiByZWxhdGlvbiAibXNvdXJjZSIKIC0tIHRoaXMgc2hvdWxk IGJlIG9rIHNpbmNlIG9ubHkgcy5hIGlzIGFjY2Vzc2VkCiBCRUdJTjsKIE1FUkdFIElOVE8gbXRh cmdldCB0IFVTSU5HIG1zb3VyY2UgcyBPTiB0LmEgPSBzLmEKQEAgLTEwNDAsMjEgKzEwNDAsMjEg QEAgV0hFTiBNQVRDSEVEIFRIRU4KIAlVUERBVEUgU0VUIGIgPSB0LmIKIFdIRU4gTk9UIE1BVENI RUQgVEhFTgogCUlOU0VSVCBWQUxVRVMgKGEsIE5VTEwpOwotRVJST1I6ICBwZXJtaXNzaW9uIGRl bmllZCBmb3IgdGFibGUgbXRhcmdldAorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgY29s dW1uICJiIiBvZiByZWxhdGlvbiAibXRhcmdldCIKIC0tIGZhaWwgKG5vIFVQREFURSBvbiB0LmEp CiBNRVJHRSBJTlRPIG10YXJnZXQgdCBVU0lORyBtc291cmNlIHMgT04gdC5hID0gcy5hCiBXSEVO IE1BVENIRUQgVEhFTgogCVVQREFURSBTRVQgYiA9IHMuYiwgYSA9IHQuYSArIDEKIFdIRU4gTk9U IE1BVENIRUQgVEhFTgogCUlOU0VSVCBWQUxVRVMgKGEsIGIpOwotRVJST1I6ICBwZXJtaXNzaW9u IGRlbmllZCBmb3IgdGFibGUgbXRhcmdldAorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Ig Y29sdW1uICJhIiBvZiByZWxhdGlvbiAibXRhcmdldCIKIC0tIGZhaWwgKG5vIFNFTEVDVCBvbiB0 LmIpCiBNRVJHRSBJTlRPIG10YXJnZXQgdCBVU0lORyBtc291cmNlIHMgT04gdC5hID0gcy5hCiBX SEVOIE1BVENIRUQgQU5EIHQuYiBJUyBOT1QgTlVMTCBUSEVOCiAJVVBEQVRFIFNFVCBiID0gcy5i CiBXSEVOIE5PVCBNQVRDSEVEIFRIRU4KIAlJTlNFUlQgVkFMVUVTIChhLCBiKTsKLUVSUk9SOiAg cGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIG10YXJnZXQKK0VSUk9SOiAgcGVybWlzc2lvbiBk ZW5pZWQgZm9yIGNvbHVtbiAiYiIgb2YgcmVsYXRpb24gIm10YXJnZXQiCiAtLSBvawogQkVHSU47 CiBNRVJHRSBJTlRPIG10YXJnZXQgdCBVU0lORyBtc291cmNlIHMgT04gdC5hID0gcy5hCkBAIC0x MTU2LDcgKzExNTYsNyBAQCBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcHJpdl91 c2VyNDsKIFNFTEVDVCBhdGVzdDYgRlJPTSBhdGVzdDY7IC0tIGZhaWwKIEVSUk9SOiAgcGVybWlz c2lvbiBkZW5pZWQgZm9yIHRhYmxlIGF0ZXN0NgogU0VMRUNUIG9uZSBGUk9NIGF0ZXN0NSBOQVRV UkFMIEpPSU4gYXRlc3Q2OyAtLSBmYWlsCi1FUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0 YWJsZSBhdGVzdDUKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIGNvbHVtbiAidGhyZWUi IG9mIHJlbGF0aW9uICJhdGVzdDUiCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nf cHJpdl91c2VyMTsKIEFMVEVSIFRBQkxFIGF0ZXN0NiBEUk9QIENPTFVNTiB0aHJlZTsKIFNFVCBT RVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXI0OwpAQCAtMTE4MCw3ICsxMTgw LDcgQEAgU0VMRUNUIDEgRlJPTSBhdGVzdDY7IC0tIGZhaWwKIEVSUk9SOiAgcGVybWlzc2lvbiBk ZW5pZWQgZm9yIHRhYmxlIGF0ZXN0NgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNz X3ByaXZfdXNlcjM7CiBERUxFVEUgRlJPTSBhdGVzdDUgV0hFUkUgb25lID0gMTsgLS0gZmFpbAot RVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgYXRlc3Q1CitFUlJPUjogIHBlcm1p c3Npb24gZGVuaWVkIGZvciBjb2x1bW4gIm9uZSIgb2YgcmVsYXRpb24gImF0ZXN0NSIKIERFTEVU RSBGUk9NIGF0ZXN0NSBXSEVSRSB0d28gPSAyOyAtLSBvawogLS0gY2hlY2sgaW5oZXJpdGFuY2Ug Y2FzZXMKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIxOwpAQCAt MTIxMSw3ICsxMjExLDcgQEAgU0VMRUNUIHRhYmxlb2lkIEZST00gYXRlc3RwMjsgLS0gb2sKICgw IHJvd3MpCiAKIFNFTEVDVCBmeSBGUk9NIGF0ZXN0YzsgLS0gZmFpbAotRVJST1I6ICBwZXJtaXNz aW9uIGRlbmllZCBmb3IgdGFibGUgYXRlc3RjCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZv ciBjb2x1bW4gImZ5IiBvZiByZWxhdGlvbiAiYXRlc3RjIgogU0VUIFNFU1NJT04gQVVUSE9SSVpB VElPTiByZWdyZXNzX3ByaXZfdXNlcjE7CiBHUkFOVCBTRUxFQ1QoZnksdGFibGVvaWQpIE9OIGF0 ZXN0YyBUTyByZWdyZXNzX3ByaXZfdXNlcjI7CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJl Z3Jlc3NfcHJpdl91c2VyMjsKQEAgLTMyMDIsNyArMzIwMiw3IEBAIHNlbGVjdCAqIGZyb20gZ3Jh cGhfdGFibGUgKHB0ZzEgbWF0Y2ggKGEgaXMgYXRlc3Q1KSBDT0xVTU5TIChhLmZvdXIpKSBsaW1p dCAwOyAtCiAoMCByb3dzKQogCiBzZWxlY3QgKiBmcm9tIGdyYXBoX3RhYmxlIChwdGcxIG1hdGNo ICh2IGlzIGx0dGMpIENPTFVNTlMgKHYubHR0Y2spKSBsaW1pdCAwOyAtLSBmYWlsCi1FUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSBhdGVzdDUKK0VSUk9SOiAgcGVybWlzc2lvbiBk ZW5pZWQgZm9yIGNvbHVtbiAidGhyZWUiIG9mIHJlbGF0aW9uICJhdGVzdDUiCiAtLSBhY2Nlc3Mg cHJvcGVydHkgZ3JhcGggdGhyb3VnaCBzZWN1cml0eSBkZWZpbmVyIHZpZXcKIHNldCBzZXNzaW9u IHJvbGUgcmVncmVzc19wcml2X3VzZXI0OwogY3JlYXRlIHZpZXcgYXRwZ3YxIGFzIHNlbGVjdCAq IGZyb20gZ3JhcGhfdGFibGUgKHB0ZzEgbWF0Y2ggKGlzIGF0ZXN0MSkgQ09MVU1OUyAoMSBhcyB2 YWx1ZSkpIGxpbWl0IDA7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Vw ZGF0YWJsZV92aWV3cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VwZGF0YWJsZV92 aWV3cy5vdXQKaW5kZXggOWNlYTUzOGI4ZTguLjQ5MGIzZTNkNWY3IDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VwZGF0YWJsZV92aWV3cy5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC91cGRhdGFibGVfdmlld3Mub3V0CkBAIC0xNDM5LDIzICsxNDM5LDIz IEBAIE1FUkdFIElOVE8gcndfdmlldzIgdAogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Ig dGFibGUgYmFzZV90YmwKIFVQREFURSBiYXNlX3RibCBTRVQgYT1hLCBjPWM7IC0tIG9rCiBVUERB VEUgYmFzZV90YmwgU0VUIGI9YjsgLS0gbm90IGFsbG93ZWQKLUVSUk9SOiAgcGVybWlzc2lvbiBk ZW5pZWQgZm9yIHRhYmxlIGJhc2VfdGJsCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBj b2x1bW4gImIiIG9mIHJlbGF0aW9uICJiYXNlX3RibCIKIFVQREFURSByd192aWV3MSBTRVQgYmI9 YmIsIGNjPWNjOyAtLSBvawogVVBEQVRFIHJ3X3ZpZXcxIFNFVCBhYT1hYTsgLS0gbm90IGFsbG93 ZWQKLUVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHZpZXcgcndfdmlldzEKK0VSUk9SOiAg cGVybWlzc2lvbiBkZW5pZWQgZm9yIGNvbHVtbiAiYWEiIG9mIHJlbGF0aW9uICJyd192aWV3MSIK IFVQREFURSByd192aWV3MiBTRVQgYWE9YWEsIGNjPWNjOyAtLSBvawogVVBEQVRFIHJ3X3ZpZXcy IFNFVCBiYj1iYjsgLS0gbm90IGFsbG93ZWQKLUVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9y IHRhYmxlIGJhc2VfdGJsCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBjb2x1bW4gImIi IG9mIHJlbGF0aW9uICJiYXNlX3RibCIKIE1FUkdFIElOVE8gcndfdmlldzEgdCBVU0lORyAoVkFM VUVTICgxKSkgQVMgdihhKSBPTiB0LmFhID0gdi5hCiAgIFdIRU4gTUFUQ0hFRCBUSEVOIFVQREFU RSBTRVQgYmIgPSBiYiwgY2MgPSBjYzsgLS0gb2sKIE1FUkdFIElOVE8gcndfdmlldzEgdCBVU0lO RyAoVkFMVUVTICgxKSkgQVMgdihhKSBPTiB0LmFhID0gdi5hCiAgIFdIRU4gTUFUQ0hFRCBUSEVO IFVQREFURSBTRVQgYWEgPSBhYTsgLS0gbm90IGFsbG93ZWQKLUVSUk9SOiAgcGVybWlzc2lvbiBk ZW5pZWQgZm9yIHZpZXcgcndfdmlldzEKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIGNv bHVtbiAiYWEiIG9mIHJlbGF0aW9uICJyd192aWV3MSIKIE1FUkdFIElOVE8gcndfdmlldzIgdCBV U0lORyAoVkFMVUVTICgxKSkgQVMgdihhKSBPTiB0LmFhID0gdi5hCiAgIFdIRU4gTUFUQ0hFRCBU SEVOIFVQREFURSBTRVQgYWEgPSBhYSwgY2MgPSBjYzsgLS0gb2sKIE1FUkdFIElOVE8gcndfdmll dzIgdCBVU0lORyAoVkFMVUVTICgxKSkgQVMgdihhKSBPTiB0LmFhID0gdi5hCiAgIFdIRU4gTUFU Q0hFRCBUSEVOIFVQREFURSBTRVQgYmIgPSBiYjsgLS0gbm90IGFsbG93ZWQKLUVSUk9SOiAgcGVy bWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIGJhc2VfdGJsCitFUlJPUjogIHBlcm1pc3Npb24gZGVu aWVkIGZvciBjb2x1bW4gImIiIG9mIHJlbGF0aW9uICJiYXNlX3RibCIKIERFTEVURSBGUk9NIGJh c2VfdGJsOyAtLSBub3QgYWxsb3dlZAogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFi bGUgYmFzZV90YmwKIERFTEVURSBGUk9NIHJ3X3ZpZXcxOyAtLSBub3QgYWxsb3dlZApAQCAtMTcy NCwyMCArMTcyNCwyMCBAQCBTRUxFQ1QgKiBGUk9NIHJ3X3ZpZXcxOyAtLSBvawogCiBVUERBVEUg YmFzZV90YmwgU0VUIGE9YSwgYz1jOyAtLSBvawogVVBEQVRFIGJhc2VfdGJsIFNFVCBiPWI7IC0t IG5vdCBhbGxvd2VkCi1FUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSBiYXNlX3Ri bAorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgY29sdW1uICJiIiBvZiByZWxhdGlvbiAi YmFzZV90YmwiCiBVUERBVEUgcndfdmlldzEgU0VUIGNjPWNjOyAtLSBvawogTUVSR0UgSU5UTyBy d192aWV3MSB0IFVTSU5HIChWQUxVRVMgKDEpKSBBUyB2KGEpIE9OIHQuYWEgPSB2LmEKICAgV0hF TiBNQVRDSEVEIFRIRU4gVVBEQVRFIFNFVCBjYyA9IGNjOyAtLSBvawogVVBEQVRFIHJ3X3ZpZXcx IFNFVCBhYT1hYTsgLS0gbm90IGFsbG93ZWQKLUVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9y IHZpZXcgcndfdmlldzEKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIGNvbHVtbiAiYWEi IG9mIHJlbGF0aW9uICJyd192aWV3MSIKIFVQREFURSByd192aWV3MSBTRVQgYmI9YmI7IC0tIG5v dCBhbGxvd2VkCi1FUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSBiYXNlX3RibAor RVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgY29sdW1uICJiIiBvZiByZWxhdGlvbiAiYmFz ZV90YmwiCiBNRVJHRSBJTlRPIHJ3X3ZpZXcxIHQgVVNJTkcgKFZBTFVFUyAoMSkpIEFTIHYoYSkg T04gdC5hYSA9IHYuYQogICBXSEVOIE1BVENIRUQgVEhFTiBVUERBVEUgU0VUIGFhID0gYWE7IC0t IG5vdCBhbGxvd2VkCi1FUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB2aWV3IHJ3X3ZpZXcx CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBjb2x1bW4gImFhIiBvZiByZWxhdGlvbiAi cndfdmlldzEiCiBNRVJHRSBJTlRPIHJ3X3ZpZXcxIHQgVVNJTkcgKFZBTFVFUyAoMSkpIEFTIHYo YSkgT04gdC5hYSA9IHYuYQogICBXSEVOIE1BVENIRUQgVEhFTiBVUERBVEUgU0VUIGJiID0gYmI7 IC0tIG5vdCBhbGxvd2VkCi1FUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSBiYXNl X3RibAorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgY29sdW1uICJiIiBvZiByZWxhdGlv biAiYmFzZV90YmwiCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nfdmlld191c2Vy MTsKIEdSQU5UIElOU0VSVCwgREVMRVRFIE9OIGJhc2VfdGJsIFRPIHJlZ3Jlc3Nfdmlld191c2Vy MjsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc192aWV3X3VzZXIyOwpAQCAtMTgx MiwxMiArMTgxMiwxMiBAQCBTRUxFQ1QgKiBGUk9NIHJ3X3ZpZXcxOyAtLSBvawogCiBVUERBVEUg cndfdmlldzEgU0VUIGFhPWFhLCBiYj1iYjsgIC0tIG9rCiBVUERBVEUgcndfdmlldzEgU0VUIGNj PWNjOyAgLS0gbm90IGFsbG93ZWQKLUVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxl IGJhc2VfdGJsCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBjb2x1bW4gImMiIG9mIHJl bGF0aW9uICJiYXNlX3RibCIKIE1FUkdFIElOVE8gcndfdmlldzEgdCBVU0lORyAoVkFMVUVTICgx KSkgQVMgdihhKSBPTiB0LmFhID0gdi5hCiAgIFdIRU4gTUFUQ0hFRCBUSEVOIFVQREFURSBTRVQg YWEgPSBhYSwgYmIgPSBiYjsgLS0gb2sKIE1FUkdFIElOVE8gcndfdmlldzEgdCBVU0lORyAoVkFM VUVTICgxKSkgQVMgdihhKSBPTiB0LmFhID0gdi5hCiAgIFdIRU4gTUFUQ0hFRCBUSEVOIFVQREFU RSBTRVQgY2MgPSBjYzsgLS0gbm90IGFsbG93ZWQKLUVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQg Zm9yIHRhYmxlIGJhc2VfdGJsCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBjb2x1bW4g ImMiIG9mIHJlbGF0aW9uICJiYXNlX3RibCIKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVn cmVzc192aWV3X3VzZXIyOwogU0VMRUNUICogRlJPTSByd192aWV3MjsgIC0tIG5vdCBhbGxvd2Vk CiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB2aWV3IHJ3X3ZpZXcxCkBAIC0xODY0LDMw ICsxODY0LDMwIEBAIFNFTEVDVCAqIEZST00gcndfdmlldzI7ICAtLSBvawogKDEgcm93KQogCiBV UERBVEUgcndfdmlldzIgU0VUIGFhYT1hYWE7ICAtLSBub3QgYWxsb3dlZAotRVJST1I6ICBwZXJt aXNzaW9uIGRlbmllZCBmb3IgdmlldyByd192aWV3MQorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmll ZCBmb3IgY29sdW1uICJhYSIgb2YgcmVsYXRpb24gInJ3X3ZpZXcxIgogVVBEQVRFIHJ3X3ZpZXcy IFNFVCBiYmI9YmJiOyAgLS0gbm90IGFsbG93ZWQKLUVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQg Zm9yIHRhYmxlIGJhc2VfdGJsCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBjb2x1bW4g ImIiIG9mIHJlbGF0aW9uICJiYXNlX3RibCIKIFVQREFURSByd192aWV3MiBTRVQgY2NjPWNjYzsg IC0tIG9rCiBNRVJHRSBJTlRPIHJ3X3ZpZXcyIHQgVVNJTkcgKFZBTFVFUyAoMSkpIEFTIHYoYSkg T04gdC5hYWEgPSB2LmEKICAgV0hFTiBNQVRDSEVEIFRIRU4gVVBEQVRFIFNFVCBhYWEgPSBhYWE7 IC0tIG5vdCBhbGxvd2VkCi1FUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB2aWV3IHJ3X3Zp ZXcxCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBjb2x1bW4gImFhIiBvZiByZWxhdGlv biAicndfdmlldzEiCiBNRVJHRSBJTlRPIHJ3X3ZpZXcyIHQgVVNJTkcgKFZBTFVFUyAoMSkpIEFT IHYoYSkgT04gdC5hYWEgPSB2LmEKICAgV0hFTiBNQVRDSEVEIFRIRU4gVVBEQVRFIFNFVCBiYmIg PSBiYmI7IC0tIG5vdCBhbGxvd2VkCi1FUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJs ZSBiYXNlX3RibAorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgY29sdW1uICJiIiBvZiBy ZWxhdGlvbiAiYmFzZV90YmwiCiBNRVJHRSBJTlRPIHJ3X3ZpZXcyIHQgVVNJTkcgKFZBTFVFUyAo MSkpIEFTIHYoYSkgT04gdC5hYWEgPSB2LmEKICAgV0hFTiBNQVRDSEVEIFRIRU4gVVBEQVRFIFNF VCBjY2MgPSBjY2M7IC0tIG9rCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nfdmll d191c2VyMzsKIFNFTEVDVCAqIEZST00gcndfdmlldzI7ICAtLSBub3QgYWxsb3dlZAogRVJST1I6 ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgYmFzZV90YmwKIFVQREFURSByd192aWV3MiBT RVQgYWFhPWFhYTsgIC0tIG5vdCBhbGxvd2VkCi1FUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZv ciB2aWV3IHJ3X3ZpZXcxCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBjb2x1bW4gImFh IiBvZiByZWxhdGlvbiAicndfdmlldzEiCiBVUERBVEUgcndfdmlldzIgU0VUIGJiYj1iYmI7ICAt LSBub3QgYWxsb3dlZAogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgYmFzZV90 YmwKIFVQREFURSByd192aWV3MiBTRVQgY2NjPWNjYzsgIC0tIG5vdCBhbGxvd2VkCiBFUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSBiYXNlX3RibAogTUVSR0UgSU5UTyByd192aWV3 MiB0IFVTSU5HIChWQUxVRVMgKDEpKSBBUyB2KGEpIE9OIHQuYWFhID0gdi5hCiAgIFdIRU4gTUFU Q0hFRCBUSEVOIFVQREFURSBTRVQgYWFhID0gYWFhOyAtLSBub3QgYWxsb3dlZAotRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3IgdmlldyByd192aWV3MQorRVJST1I6ICBwZXJtaXNzaW9uIGRl bmllZCBmb3IgY29sdW1uICJhYSIgb2YgcmVsYXRpb24gInJ3X3ZpZXcxIgogTUVSR0UgSU5UTyBy d192aWV3MiB0IFVTSU5HIChWQUxVRVMgKDEpKSBBUyB2KGEpIE9OIHQuYWFhID0gdi5hCiAgIFdI RU4gTUFUQ0hFRCBUSEVOIFVQREFURSBTRVQgYmJiID0gYmJiOyAtLSBub3QgYWxsb3dlZAogRVJS T1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgYmFzZV90YmwKQEAgLTE5MDUsMTYgKzE5 MDUsMTYgQEAgU0VMRUNUICogRlJPTSByd192aWV3MjsgIC0tIG9rCiAoMSByb3cpCiAKIFVQREFU RSByd192aWV3MiBTRVQgYWFhPWFhYTsgIC0tIG5vdCBhbGxvd2VkCi1FUlJPUjogIHBlcm1pc3Np b24gZGVuaWVkIGZvciB2aWV3IHJ3X3ZpZXcxCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZv ciBjb2x1bW4gImFhIiBvZiByZWxhdGlvbiAicndfdmlldzEiCiBVUERBVEUgcndfdmlldzIgU0VU IGJiYj1iYmI7ICAtLSBub3QgYWxsb3dlZAotRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Ig dGFibGUgYmFzZV90YmwKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIGNvbHVtbiAiYiIg b2YgcmVsYXRpb24gImJhc2VfdGJsIgogVVBEQVRFIHJ3X3ZpZXcyIFNFVCBjY2M9Y2NjOyAgLS0g b2sKIE1FUkdFIElOVE8gcndfdmlldzIgdCBVU0lORyAoVkFMVUVTICgxKSkgQVMgdihhKSBPTiB0 LmFhYSA9IHYuYQogICBXSEVOIE1BVENIRUQgVEhFTiBVUERBVEUgU0VUIGFhYSA9IGFhYTsgLS0g bm90IGFsbG93ZWQKLUVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHZpZXcgcndfdmlldzEK K0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIGNvbHVtbiAiYWEiIG9mIHJlbGF0aW9uICJy d192aWV3MSIKIE1FUkdFIElOVE8gcndfdmlldzIgdCBVU0lORyAoVkFMVUVTICgxKSkgQVMgdihh KSBPTiB0LmFhYSA9IHYuYQogICBXSEVOIE1BVENIRUQgVEhFTiBVUERBVEUgU0VUIGJiYiA9IGJi YjsgLS0gbm90IGFsbG93ZWQKLUVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIGJh c2VfdGJsCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBjb2x1bW4gImIiIG9mIHJlbGF0 aW9uICJiYXNlX3RibCIKIE1FUkdFIElOVE8gcndfdmlldzIgdCBVU0lORyAoVkFMVUVTICgxKSkg QVMgdihhKSBPTiB0LmFhYSA9IHYuYQogICBXSEVOIE1BVENIRUQgVEhFTiBVUERBVEUgU0VUIGNj YyA9IGNjYzsgLS0gb2sKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKQEAgLTE5MzUsMTYg KzE5MzUsMTYgQEAgU0VMRUNUICogRlJPTSByd192aWV3MjsgIC0tIG9rCiAoMSByb3cpCiAKIFVQ REFURSByd192aWV3MiBTRVQgYWFhPWFhYTsgIC0tIG5vdCBhbGxvd2VkCi1FUlJPUjogIHBlcm1p c3Npb24gZGVuaWVkIGZvciB2aWV3IHJ3X3ZpZXcxCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVk IGZvciBjb2x1bW4gImFhIiBvZiByZWxhdGlvbiAicndfdmlldzEiCiBVUERBVEUgcndfdmlldzIg U0VUIGJiYj1iYmI7ICAtLSBub3QgYWxsb3dlZAotRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBm b3IgdGFibGUgYmFzZV90YmwKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIGNvbHVtbiAi YiIgb2YgcmVsYXRpb24gImJhc2VfdGJsIgogVVBEQVRFIHJ3X3ZpZXcyIFNFVCBjY2M9Y2NjOyAg LS0gb2sKIE1FUkdFIElOVE8gcndfdmlldzIgdCBVU0lORyAoVkFMVUVTICgxKSkgQVMgdihhKSBP TiB0LmFhYSA9IHYuYQogICBXSEVOIE1BVENIRUQgVEhFTiBVUERBVEUgU0VUIGFhYSA9IGFhYTsg LS0gbm90IGFsbG93ZWQKLUVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHZpZXcgcndfdmll dzEKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIGNvbHVtbiAiYWEiIG9mIHJlbGF0aW9u ICJyd192aWV3MSIKIE1FUkdFIElOVE8gcndfdmlldzIgdCBVU0lORyAoVkFMVUVTICgxKSkgQVMg dihhKSBPTiB0LmFhYSA9IHYuYQogICBXSEVOIE1BVENIRUQgVEhFTiBVUERBVEUgU0VUIGJiYiA9 IGJiYjsgLS0gbm90IGFsbG93ZWQKLUVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxl IGJhc2VfdGJsCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBjb2x1bW4gImIiIG9mIHJl bGF0aW9uICJiYXNlX3RibCIKIE1FUkdFIElOVE8gcndfdmlldzIgdCBVU0lORyAoVkFMVUVTICgx KSkgQVMgdihhKSBPTiB0LmFhYSA9IHYuYQogICBXSEVOIE1BVENIRUQgVEhFTiBVUERBVEUgU0VU IGNjYyA9IGNjYzsgLS0gb2sKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc192aWV3 X3VzZXIzOwpAQCAtMTk1NSwxNiArMTk1NSwxNiBAQCBTRUxFQ1QgKiBGUk9NIHJ3X3ZpZXcyOyAg LS0gb2sKICgxIHJvdykKIAogVVBEQVRFIHJ3X3ZpZXcyIFNFVCBhYWE9YWFhOyAgLS0gbm90IGFs bG93ZWQKLUVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHZpZXcgcndfdmlldzEKK0VSUk9S OiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIGNvbHVtbiAiYWEiIG9mIHJlbGF0aW9uICJyd192aWV3 MSIKIFVQREFURSByd192aWV3MiBTRVQgYmJiPWJiYjsgIC0tIG5vdCBhbGxvd2VkCi1FUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSBiYXNlX3RibAorRVJST1I6ICBwZXJtaXNzaW9u IGRlbmllZCBmb3IgY29sdW1uICJiIiBvZiByZWxhdGlvbiAiYmFzZV90YmwiCiBVUERBVEUgcndf dmlldzIgU0VUIGNjYz1jY2M7ICAtLSBvawogTUVSR0UgSU5UTyByd192aWV3MiB0IFVTSU5HIChW QUxVRVMgKDEpKSBBUyB2KGEpIE9OIHQuYWFhID0gdi5hCiAgIFdIRU4gTUFUQ0hFRCBUSEVOIFVQ REFURSBTRVQgYWFhID0gYWFhOyAtLSBub3QgYWxsb3dlZAotRVJST1I6ICBwZXJtaXNzaW9uIGRl bmllZCBmb3IgdmlldyByd192aWV3MQorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgY29s dW1uICJhYSIgb2YgcmVsYXRpb24gInJ3X3ZpZXcxIgogTUVSR0UgSU5UTyByd192aWV3MiB0IFVT SU5HIChWQUxVRVMgKDEpKSBBUyB2KGEpIE9OIHQuYWFhID0gdi5hCiAgIFdIRU4gTUFUQ0hFRCBU SEVOIFVQREFURSBTRVQgYmJiID0gYmJiOyAtLSBub3QgYWxsb3dlZAotRVJST1I6ICBwZXJtaXNz aW9uIGRlbmllZCBmb3IgdGFibGUgYmFzZV90YmwKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQg Zm9yIGNvbHVtbiAiYiIgb2YgcmVsYXRpb24gImJhc2VfdGJsIgogTUVSR0UgSU5UTyByd192aWV3 MiB0IFVTSU5HIChWQUxVRVMgKDEpKSBBUyB2KGEpIE9OIHQuYWFhID0gdi5hCiAgIFdIRU4gTUFU Q0hFRCBUSEVOIFVQREFURSBTRVQgY2NjID0gY2NjOyAtLSBvawogUkVTRVQgU0VTU0lPTiBBVVRI T1JJWkFUSU9OOwpAQCAtMTk3MywxNCArMTk3MywxNCBAQCBTRVQgU0VTU0lPTiBBVVRIT1JJWkFU SU9OIHJlZ3Jlc3Nfdmlld191c2VyMjsKIFNFTEVDVCAqIEZST00gcndfdmlldzI7ICAtLSBub3Qg YWxsb3dlZAogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgYmFzZV90YmwKIFVQ REFURSByd192aWV3MiBTRVQgYWFhPWFhYTsgIC0tIG5vdCBhbGxvd2VkCi1FUlJPUjogIHBlcm1p c3Npb24gZGVuaWVkIGZvciB2aWV3IHJ3X3ZpZXcxCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVk IGZvciBjb2x1bW4gImFhIiBvZiByZWxhdGlvbiAicndfdmlldzEiCiBVUERBVEUgcndfdmlldzIg U0VUIGJiYj1iYmI7ICAtLSBub3QgYWxsb3dlZAogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBm b3IgdGFibGUgYmFzZV90YmwKIFVQREFURSByd192aWV3MiBTRVQgY2NjPWNjYzsgIC0tIG5vdCBh bGxvd2VkCiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSBiYXNlX3RibAogTUVS R0UgSU5UTyByd192aWV3MiB0IFVTSU5HIChWQUxVRVMgKDEpKSBBUyB2KGEpIE9OIHQuYWFhID0g di5hCiAgIFdIRU4gTUFUQ0hFRCBUSEVOIFVQREFURSBTRVQgYWFhID0gYWFhOyAtLSBub3QgYWxs b3dlZAotRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdmlldyByd192aWV3MQorRVJST1I6 ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgY29sdW1uICJhYSIgb2YgcmVsYXRpb24gInJ3X3ZpZXcx IgogTUVSR0UgSU5UTyByd192aWV3MiB0IFVTSU5HIChWQUxVRVMgKDEpKSBBUyB2KGEpIE9OIHQu YWFhID0gdi5hCiAgIFdIRU4gTUFUQ0hFRCBUSEVOIFVQREFURSBTRVQgYmJiID0gYmJiOyAtLSBu b3QgYWxsb3dlZAogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgYmFzZV90YmwK QEAgLTE5OTUsMTYgKzE5OTUsMTYgQEAgU0VMRUNUICogRlJPTSByd192aWV3MjsgIC0tIG9rCiAo MSByb3cpCiAKIFVQREFURSByd192aWV3MiBTRVQgYWFhPWFhYTsgIC0tIG5vdCBhbGxvd2VkCi1F UlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB2aWV3IHJ3X3ZpZXcxCitFUlJPUjogIHBlcm1p c3Npb24gZGVuaWVkIGZvciBjb2x1bW4gImFhIiBvZiByZWxhdGlvbiAicndfdmlldzEiCiBVUERB VEUgcndfdmlldzIgU0VUIGJiYj1iYmI7ICAtLSBub3QgYWxsb3dlZAotRVJST1I6ICBwZXJtaXNz aW9uIGRlbmllZCBmb3IgdGFibGUgYmFzZV90YmwKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQg Zm9yIGNvbHVtbiAiYiIgb2YgcmVsYXRpb24gImJhc2VfdGJsIgogVVBEQVRFIHJ3X3ZpZXcyIFNF VCBjY2M9Y2NjOyAgLS0gb2sKIE1FUkdFIElOVE8gcndfdmlldzIgdCBVU0lORyAoVkFMVUVTICgx KSkgQVMgdihhKSBPTiB0LmFhYSA9IHYuYQogICBXSEVOIE1BVENIRUQgVEhFTiBVUERBVEUgU0VU IGFhYSA9IGFhYTsgLS0gbm90IGFsbG93ZWQKLUVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9y IHZpZXcgcndfdmlldzEKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIGNvbHVtbiAiYWEi IG9mIHJlbGF0aW9uICJyd192aWV3MSIKIE1FUkdFIElOVE8gcndfdmlldzIgdCBVU0lORyAoVkFM VUVTICgxKSkgQVMgdihhKSBPTiB0LmFhYSA9IHYuYQogICBXSEVOIE1BVENIRUQgVEhFTiBVUERB VEUgU0VUIGJiYiA9IGJiYjsgLS0gbm90IGFsbG93ZWQKLUVSUk9SOiAgcGVybWlzc2lvbiBkZW5p ZWQgZm9yIHRhYmxlIGJhc2VfdGJsCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBjb2x1 bW4gImIiIG9mIHJlbGF0aW9uICJiYXNlX3RibCIKIE1FUkdFIElOVE8gcndfdmlldzIgdCBVU0lO RyAoVkFMVUVTICgxKSkgQVMgdihhKSBPTiB0LmFhYSA9IHYuYQogICBXSEVOIE1BVENIRUQgVEhF TiBVUERBVEUgU0VUIGNjYyA9IGNjYzsgLS0gb2sKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElP TjsKQEAgLTM4MzUsMjAgKzM4MzUsMjAgQEAgZ3JhbnQgdXBkYXRlIChiYikgb24gcndfdmlldzEg dG8gcmVncmVzc192aWV3X3VzZXIyOwogc2V0IHNlc3Npb24gYXV0aG9yaXphdGlvbiByZWdyZXNz X3ZpZXdfdXNlcjI7CiBpbnNlcnQgaW50byByd192aWV3MSB2YWx1ZXMgKCd5eXknLDIuMCwxKQog ICBvbiBjb25mbGljdCAoYWEpIGRvIHVwZGF0ZSBzZXQgYmIgPSBleGNsdWRlZC5jYzsgLS0gTm90 IGFsbG93ZWQKLUVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHZpZXcgcndfdmlldzEKK0VS Uk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIGNvbHVtbiAiY2MiIG9mIHJlbGF0aW9uICJyd192 aWV3MSIKIGluc2VydCBpbnRvIHJ3X3ZpZXcxIHZhbHVlcyAoJ3l5eScsMi4wLDEpCiAgIG9uIGNv bmZsaWN0IChhYSkgZG8gdXBkYXRlIHNldCBiYiA9IHJ3X3ZpZXcxLmNjOyAtLSBOb3QgYWxsb3dl ZAotRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdmlldyByd192aWV3MQorRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3IgY29sdW1uICJjYyIgb2YgcmVsYXRpb24gInJ3X3ZpZXcxIgog aW5zZXJ0IGludG8gcndfdmlldzEgdmFsdWVzICgneXl5JywyLjAsMSkKICAgb24gY29uZmxpY3Qg KGFhKSBkbyB1cGRhdGUgc2V0IGJiID0gZXhjbHVkZWQuYmI7IC0tIE9LCiBpbnNlcnQgaW50byBy d192aWV3MSB2YWx1ZXMgKCd6enonLDIuMCwxKQogICBvbiBjb25mbGljdCAoYWEpIGRvIHVwZGF0 ZSBzZXQgYmIgPSByd192aWV3MS5iYnx8J3h4eCc7IC0tIE9LCiBpbnNlcnQgaW50byByd192aWV3 MSB2YWx1ZXMgKCd6enonLDIuMCwxKQogICBvbiBjb25mbGljdCAoYWEpIGRvIHVwZGF0ZSBzZXQg Y2MgPSAzLjA7IC0tIE5vdCBhbGxvd2VkCi1FUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB2 aWV3IHJ3X3ZpZXcxCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBjb2x1bW4gImNjIiBv ZiByZWxhdGlvbiAicndfdmlldzEiCiBpbnNlcnQgaW50byByd192aWV3MSB2YWx1ZXMgKCd5eXkn LDIuMCwxKQogICBvbiBjb25mbGljdCAoYWEpIGRvIHNlbGVjdCBmb3IgdXBkYXRlIHJldHVybmlu ZyBjYzsgLS0gTm90IGFsbG93ZWQKLUVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHZpZXcg cndfdmlldzEKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIGNvbHVtbiAiY2MiIG9mIHJl bGF0aW9uICJyd192aWV3MSIKIGluc2VydCBpbnRvIHJ3X3ZpZXcxIHZhbHVlcyAoJ3l5eScsMi4w LDEpCiAgIG9uIGNvbmZsaWN0IChhYSkgZG8gc2VsZWN0IGZvciB1cGRhdGUgcmV0dXJuaW5nIGFh LCBiYjsKICBhYSB8ICAgYmIgICAKQEAgLTM4NzEsMTAgKzM4NzEsMTAgQEAgc2V0IHNlc3Npb24g YXV0aG9yaXphdGlvbiByZWdyZXNzX3ZpZXdfdXNlcjI7CiBjcmVhdGUgdmlldyByd192aWV3MiBh cyBzZWxlY3QgYiBhcyBiYiwgYyBhcyBjYywgYSBhcyBhYSBmcm9tIGJhc2VfdGJsOwogaW5zZXJ0 IGludG8gcndfdmlldzIgKGFhLGJiKSB2YWx1ZXMgKDEsJ3h4eCcpCiAgIG9uIGNvbmZsaWN0IChh YSkgZG8gdXBkYXRlIHNldCBiYiA9IGV4Y2x1ZGVkLmJiOyAtLSBOb3QgYWxsb3dlZAotRVJST1I6 ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgYmFzZV90YmwKK0VSUk9SOiAgcGVybWlzc2lv biBkZW5pZWQgZm9yIGNvbHVtbiAiYyIgb2YgcmVsYXRpb24gImJhc2VfdGJsIgogaW5zZXJ0IGlu dG8gcndfdmlldzIgKGFhLGJiKSB2YWx1ZXMgKDEsJ3h4eCcpCiAgIG9uIGNvbmZsaWN0IChhYSkg ZG8gc2VsZWN0IHJldHVybmluZyAxOyAgICAgICAgICAtLSBOb3QgYWxsb3dlZAotRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgYmFzZV90YmwKK0VSUk9SOiAgcGVybWlzc2lvbiBk ZW5pZWQgZm9yIGNvbHVtbiAiYyIgb2YgcmVsYXRpb24gImJhc2VfdGJsIgogY3JlYXRlIHZpZXcg cndfdmlldzMgYXMgc2VsZWN0IGIgYXMgYmIsIGEgYXMgYWEgZnJvbSBiYXNlX3RibDsKIGluc2Vy dCBpbnRvIHJ3X3ZpZXczIChhYSxiYikgdmFsdWVzICgxLCd4eHgnKQogICBvbiBjb25mbGljdCAo YWEpIGRvIHVwZGF0ZSBzZXQgYmIgPSBleGNsdWRlZC5iYjsgLS0gT0sKQEAgLTM4OTYsMTAgKzM4 OTYsMTAgQEAgc2V0IHNlc3Npb24gYXV0aG9yaXphdGlvbiByZWdyZXNzX3ZpZXdfdXNlcjI7CiBj cmVhdGUgdmlldyByd192aWV3NCBhcyBzZWxlY3QgYWEsIGJiLCBjYyBGUk9NIHJ3X3ZpZXcxOwog aW5zZXJ0IGludG8gcndfdmlldzQgKGFhLGJiKSB2YWx1ZXMgKDEsJ3l5eScpCiAgIG9uIGNvbmZs aWN0IChhYSkgZG8gdXBkYXRlIHNldCBiYiA9IGV4Y2x1ZGVkLmJiOyAtLSBOb3QgYWxsb3dlZAot RVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdmlldyByd192aWV3MQorRVJST1I6ICBwZXJt aXNzaW9uIGRlbmllZCBmb3IgY29sdW1uICJjYyIgb2YgcmVsYXRpb24gInJ3X3ZpZXcxIgogaW5z ZXJ0IGludG8gcndfdmlldzQgKGFhLGJiKSB2YWx1ZXMgKDEsJ3l5eScpCiAgIG9uIGNvbmZsaWN0 IChhYSkgZG8gc2VsZWN0IHJldHVybmluZyAxOyAtLSBOb3QgYWxsb3dlZAotRVJST1I6ICBwZXJt aXNzaW9uIGRlbmllZCBmb3IgdmlldyByd192aWV3MQorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmll ZCBmb3IgY29sdW1uICJjYyIgb2YgcmVsYXRpb24gInJ3X3ZpZXcxIgogY3JlYXRlIHZpZXcgcndf dmlldzUgYXMgc2VsZWN0IGFhLCBiYiBGUk9NIHJ3X3ZpZXcxOwogaW5zZXJ0IGludG8gcndfdmll dzUgKGFhLGJiKSB2YWx1ZXMgKDEsJ3l5eScpCiAgIG9uIGNvbmZsaWN0IChhYSkgZG8gdXBkYXRl IHNldCBiYiA9IGV4Y2x1ZGVkLmJiOyAtLSBPSwotLSAKMi40MC4xCgo= --00000000000053494e064e337aa6 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-refactor-ExecCheckPermissionsModified-for-ACL_SELECT.patch" Content-Disposition: attachment; filename="0001-refactor-ExecCheckPermissionsModified-for-ACL_SELECT.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnchm3pc1 RnJvbSA2MTExZDJlMDI0ODdlNmRlNjcyNmM2YTVmZTI3NDZjZTdmOWQ1NTlmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBzdGV2ZS1jaGF2ZXogPHN0ZXZlY2hhdmV6YXN0QGdtYWlsLmNv bT4KRGF0ZTogTW9uLCAyMyBNYXIgMjAyNiAxNzowODo0MSAtMDUwMApTdWJqZWN0OiBbUEFUQ0hd IHJlZmFjdG9yIEV4ZWNDaGVja1Blcm1pc3Npb25zTW9kaWZpZWQgZm9yIEFDTF9TRUxFQ1QKCkN1 cnJlbnRseSB0aGUgY29kZSBvbiBFeGVjQ2hlY2tPbmVSZWxQZXJtcyBkdXBsaWNhdGVzIHRoZSBs b2dpYwppbiBFeGVjQ2hlY2tQZXJtaXNzaW9uc01vZGlmaWVkLgoKVGhpcyBjaGFuZ2UgYWNjb21t b2RhdGVzIEV4ZWNDaGVja1Blcm1pc3Npb25zTW9kaWZpZWQgdG8gaGFuZGxlCkFDTF9TRUxFQ1Qg YW5kIG1ha2VzIEV4ZWNDaGVja09uZVJlbFBlcm1zIHJldXNlIGNvZGUuIEl0IGFsc28gbWVyZ2Vz CnNpbWlsYXIgY29tbWVudHMuCgpNYWluIGJlbmVmaXQgaXMgdGhhdCBpdCByZWR1Y2VzIExPQ3Mg YW5kIGNlbnRyYWxpemVzIGNvbHVtbiBwcml2aWxlZ2UKbG9naWMuCi0tLQogc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY01haW4uYyB8IDcwICsrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDQ2IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjTWFpbi5jCmluZGV4IDU4Yjg0OTU1YzJiLi5jMWNjODI1MTE4NiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYworKysgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjTWFpbi5jCkBAIC02NzYsOCArNjc2LDYgQEAgRXhlY0NoZWNrT25lUmVsUGVy bXMoUlRFUGVybWlzc2lvbkluZm8gKnBlcm1pbmZvKQogCXJlbWFpbmluZ1Blcm1zID0gcmVxdWly ZWRQZXJtcyAmIH5yZWxQZXJtczsKIAlpZiAocmVtYWluaW5nUGVybXMgIT0gMCkKIAl7Ci0JCWlu dAkJCWNvbCA9IC0xOwotCiAJCS8qCiAJCSAqIElmIHdlIGxhY2sgYW55IHBlcm1pc3Npb25zIHRo YXQgZXhpc3Qgb25seSBhcyByZWxhdGlvbiBwZXJtaXNzaW9ucywKIAkJICogd2UgY2FuIGZhaWwg c3RyYWlnaHQgYXdheS4KQEAgLTY5Miw0NSArNjkwLDEzIEBAIEV4ZWNDaGVja09uZVJlbFBlcm1z KFJURVBlcm1pc3Npb25JbmZvICpwZXJtaW5mbykKIAkJICogdG8gcmVwb3J0IGEgY29sdW1uLWxl dmVsIGVycm9yIGlmIHdlIGhhdmUgc29tZSBidXQgbm90IGFsbCBvZiB0aGUKIAkJICogY29sdW1u IHByaXZpbGVnZXMuCiAJCSAqLwotCQlpZiAocmVtYWluaW5nUGVybXMgJiBBQ0xfU0VMRUNUKQot CQl7Ci0JCQkvKgotCQkJICogV2hlbiB0aGUgcXVlcnkgZG9lc24ndCBleHBsaWNpdGx5IHJlZmVy ZW5jZSBhbnkgY29sdW1ucyAoZm9yCi0JCQkgKiBleGFtcGxlLCBTRUxFQ1QgQ09VTlQoKikgRlJP TSB0YWJsZSksIGFsbG93IHRoZSBxdWVyeSBpZiB3ZQotCQkJICogaGF2ZSBTRUxFQ1Qgb24gYW55 IGNvbHVtbiBvZiB0aGUgcmVsLCBhcyBwZXIgU1FMIHNwZWMuCi0JCQkgKi8KLQkJCWlmIChibXNf aXNfZW1wdHkocGVybWluZm8tPnNlbGVjdGVkQ29scykpCi0JCQl7Ci0JCQkJaWYgKHBnX2F0dHJp YnV0ZV9hY2xjaGVja19hbGwocmVsT2lkLCB1c2VyaWQsIEFDTF9TRUxFQ1QsCi0JCQkJCQkJCQkJ CSAgQUNMTUFTS19BTlkpICE9IEFDTENIRUNLX09LKQotCQkJCQlyZXR1cm4gZmFsc2U7Ci0JCQl9 Ci0KLQkJCXdoaWxlICgoY29sID0gYm1zX25leHRfbWVtYmVyKHBlcm1pbmZvLT5zZWxlY3RlZENv bHMsIGNvbCkpID49IDApCi0JCQl7Ci0JCQkJLyogYml0ICNzIGFyZSBvZmZzZXQgYnkgRmlyc3RM b3dJbnZhbGlkSGVhcEF0dHJpYnV0ZU51bWJlciAqLwotCQkJCUF0dHJOdW1iZXIJYXR0bm8gPSBj b2wgKyBGaXJzdExvd0ludmFsaWRIZWFwQXR0cmlidXRlTnVtYmVyOwotCi0JCQkJaWYgKGF0dG5v ID09IEludmFsaWRBdHRyTnVtYmVyKQotCQkJCXsKLQkJCQkJLyogV2hvbGUtcm93IHJlZmVyZW5j ZSwgbXVzdCBoYXZlIHByaXYgb24gYWxsIGNvbHMgKi8KLQkJCQkJaWYgKHBnX2F0dHJpYnV0ZV9h Y2xjaGVja19hbGwocmVsT2lkLCB1c2VyaWQsIEFDTF9TRUxFQ1QsCi0JCQkJCQkJCQkJCQkgIEFD TE1BU0tfQUxMKSAhPSBBQ0xDSEVDS19PSykKLQkJCQkJCXJldHVybiBmYWxzZTsKLQkJCQl9Ci0J CQkJZWxzZQotCQkJCXsKLQkJCQkJaWYgKHBnX2F0dHJpYnV0ZV9hY2xjaGVjayhyZWxPaWQsIGF0 dG5vLCB1c2VyaWQsCi0JCQkJCQkJCQkJCSAgQUNMX1NFTEVDVCkgIT0gQUNMQ0hFQ0tfT0spCi0J CQkJCQlyZXR1cm4gZmFsc2U7Ci0JCQkJfQotCQkJfQotCQl9CisJCWlmIChyZW1haW5pbmdQZXJt cyAmIEFDTF9TRUxFQ1QgJiYKKwkJCSFFeGVjQ2hlY2tQZXJtaXNzaW9uc01vZGlmaWVkKHJlbE9p ZCwKKwkJCQkJCQkJCQkgIHVzZXJpZCwKKwkJCQkJCQkJCQkgIHBlcm1pbmZvLT5zZWxlY3RlZENv bHMsCisJCQkJCQkJCQkJICBBQ0xfU0VMRUNUKSkKKwkJCXJldHVybiBmYWxzZTsKCi0JCS8qCi0J CSAqIEJhc2ljYWxseSB0aGUgc2FtZSBmb3IgdGhlIG1vZCBjb2x1bW5zLCBmb3IgYm90aCBJTlNF UlQgYW5kIFVQREFURQotCQkgKiBwcml2aWxlZ2UgYXMgc3BlY2lmaWVkIGJ5IHJlbWFpbmluZ1Bl cm1zLgotCQkgKi8KIAkJaWYgKHJlbWFpbmluZ1Blcm1zICYgQUNMX0lOU0VSVCAmJgogCQkJIUV4 ZWNDaGVja1Blcm1pc3Npb25zTW9kaWZpZWQocmVsT2lkLAogCQkJCQkJCQkJCSAgdXNlcmlkLApA QCAtNzUwLDcgKzcxNiw3IEBAIEV4ZWNDaGVja09uZVJlbFBlcm1zKFJURVBlcm1pc3Npb25JbmZv ICpwZXJtaW5mbykKCiAvKgogICogRXhlY0NoZWNrUGVybWlzc2lvbnNNb2RpZmllZAotICoJCUNo ZWNrIElOU0VSVCBvciBVUERBVEUgYWNjZXNzIHBlcm1pc3Npb25zIGZvciBhIHNpbmdsZSByZWxh dGlvbiAodGhlc2UKKyAqCQlDaGVjayBTRUxFQ1QsIElOU0VSVCBvciBVUERBVEUgYWNjZXNzIHBl cm1pc3Npb25zIGZvciBhIHNpbmdsZSByZWxhdGlvbiAodGhlc2UKICAqCQlhcmUgcHJvY2Vzc2Vk IHVuaWZvcm1seSkuCiAgKi8KIHN0YXRpYyBib29sCkBAIC03NjAsOSArNzI2LDExIEBAIEV4ZWND aGVja1Blcm1pc3Npb25zTW9kaWZpZWQoT2lkIHJlbE9pZCwgT2lkIHVzZXJpZCwgQml0bWFwc2V0 ICptb2RpZmllZENvbHMsCiAJaW50CQkJY29sID0gLTE7CgogCS8qCi0JICogV2hlbiB0aGUgcXVl cnkgZG9lc24ndCBleHBsaWNpdGx5IHVwZGF0ZSBhbnkgY29sdW1ucywgYWxsb3cgdGhlIHF1ZXJ5 Ci0JICogaWYgd2UgaGF2ZSBwZXJtaXNzaW9uIG9uIGFueSBjb2x1bW4gb2YgdGhlIHJlbC4gIFRo aXMgaXMgdG8gaGFuZGxlCi0JICogU0VMRUNUIEZPUiBVUERBVEUgYXMgd2VsbCBhcyBwb3NzaWJs ZSBjb3JuZXIgY2FzZXMgaW4gVVBEQVRFLgorCSAqIFdoZW4gdGhlIHF1ZXJ5IGRvZXNuJ3QgZXhw bGljaXRseSByZWZlcmVuY2UgYW55IGNvbHVtbnMgKGZvcgorCSAqIGV4YW1wbGUsIFNFTEVDVCBD T1VOVCgqKSBGUk9NIHRhYmxlIG9yIElOU0VSVCBERUZBVUxUIFZBTFVFUyksCisgICAqIGFsbG93 IHRoZSBxdWVyeSBpZiB3ZSBoYXZlIHBlcm1pc3Npb24gb24gYW55IGNvbHVtbiBvZiB0aGUgcmVs LCBhcyBwZXIgU1FMIHNwZWMuCisJICoKKwkgKiBUaGlzIGhhbmRsZXMgU0VMRUNUIEZPUiBVUERB VEUgYXMgd2VsbCBhcyBwb3NzaWJsZSBjb3JuZXIgY2FzZXMgaW4gVVBEQVRFLgogCSAqLwogCWlm IChibXNfaXNfZW1wdHkobW9kaWZpZWRDb2xzKSkKIAl7CkBAIC03NzYsMTAgKzc0NCwyMCBAQCBF eGVjQ2hlY2tQZXJtaXNzaW9uc01vZGlmaWVkKE9pZCByZWxPaWQsIE9pZCB1c2VyaWQsIEJpdG1h cHNldCAqbW9kaWZpZWRDb2xzLAogCQkvKiBiaXQgI3MgYXJlIG9mZnNldCBieSBGaXJzdExvd0lu dmFsaWRIZWFwQXR0cmlidXRlTnVtYmVyICovCiAJCUF0dHJOdW1iZXIJYXR0bm8gPSBjb2wgKyBG aXJzdExvd0ludmFsaWRIZWFwQXR0cmlidXRlTnVtYmVyOwoKKwkJLyogV2hvbGUtcm93IHJlZmVy ZW5jZSwgbXVzdCBoYXZlIHByaXYgb24gYWxsIGNvbHMgKi8KIAkJaWYgKGF0dG5vID09IEludmFs aWRBdHRyTnVtYmVyKQogCQl7Ci0JCQkvKiB3aG9sZS1yb3cgcmVmZXJlbmNlIGNhbid0IGhhcHBl biBoZXJlICovCi0JCQllbG9nKEVSUk9SLCAid2hvbGUtcm93IHVwZGF0ZSBpcyBub3QgaW1wbGVt ZW50ZWQiKTsKKworCQkJLyogSW4gdGhlIGNhc2Ugb2YgU0VMRUNUICogd2UgaGF2ZSB0byBjaGVj ayBmb3IgYWxsIGNvbHVtbiBwZXJtaXNzaW9ucyAqLworCQkJaWYgKHJlcXVpcmVkUGVybXMgPT0g QUNMX1NFTEVDVCkKKwkJCXsKKwkJCQlpZiAocGdfYXR0cmlidXRlX2FjbGNoZWNrX2FsbChyZWxP aWQsIHVzZXJpZCwgcmVxdWlyZWRQZXJtcywKKwkJCQkJCQkJCQkJICBBQ0xNQVNLX0FMTCkgIT0g QUNMQ0hFQ0tfT0spCisJCQkJCXJldHVybiBmYWxzZTsKKwkJCX0KKwkJCWVsc2UKKwkJCQkvKiB3 aG9sZS1yb3cgcmVmZXJlbmNlIGNhbid0IGhhcHBlbiBoZXJlICovCisJCQkJZWxvZyhFUlJPUiwg Indob2xlLXJvdyB1cGRhdGUgaXMgbm90IGltcGxlbWVudGVkIik7CiAJCX0KIAkJZWxzZQogCQl7 Ci0tCjIuNDAuMQoK --00000000000053494e064e337aa6--