Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nFJLs-0004gO-AX for pgsql-hackers@arkaria.postgresql.org; Wed, 02 Feb 2022 17:23:28 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nFJLq-0004ek-T6 for pgsql-hackers@arkaria.postgresql.org; Wed, 02 Feb 2022 17:23:26 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nFJLq-0004eb-27 for pgsql-hackers@lists.postgresql.org; Wed, 02 Feb 2022 17:23:26 +0000 Received: from mail-ej1-x62b.google.com ([2a00:1450:4864:20::62b]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1nFJLm-0004Lx-0g for pgsql-hackers@postgresql.org; Wed, 02 Feb 2022 17:23:25 +0000 Received: by mail-ej1-x62b.google.com with SMTP id jx6so68112133ejb.0 for ; Wed, 02 Feb 2022 09:23:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cybertec-at.20210112.gappssmtp.com; s=20210112; h=message-id:date:mime-version:user-agent:from:subject:to:cc :references:content-language:in-reply-to; bh=tCQFH3qRuRIczah6fkMExbSkmCx/ftx6ZFnoyEJ3M4w=; b=Ftmlux3ZsGlhjMn1REqpEByJlaA4ppua30HsO6OBSDYPf4Qu6233u9H1KspFDndtAJ qzaqSd0d9qMhfbaSC0SJ54HRjA5YJot7yGpVXYEMNuO1Si2oJHgLeSSXf/04KR7U4Zsr WAg/rNnLivTk2DcvecvTr9t+KoP4FqzuZzIDzF4pXnzWSvoA9ndukMtVkoAauRsxDymE FYMULeUsCzhridAyyacrzk0WjQRhFV09mPGY5mo9RsaWQDEnNXKQixgzqA/ENJAeJ3k7 HqHoyhKP7k7ADJP7tdjRoNrxeQmX8ByQE8AboXSPnR5W4gKjbvuGseONg6qYxNxiJ3An vhpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:from :subject:to:cc:references:content-language:in-reply-to; bh=tCQFH3qRuRIczah6fkMExbSkmCx/ftx6ZFnoyEJ3M4w=; b=n7AByb411ewFs22JF2uOlrZYtB0dJxj+u2WG1RtIpD8omt4IGG2rAHM9vtJXn+Qr4H AEx2fN05T24Jz1/wcX9VQQR57JSAUIK6UKiEK5UsFN8UxCGthEWCupwqrxHfiZDh+bSv n7Ooe6wXeSNFp+eNDgdR2UZV5SQmWgHlwWZNPDGG0AjwBjBjn7WNAoiUK9Ob1mKy13N9 dqMJg7ArIJLkIE+gIM1zjNC3bqBoPhTxnMU8Bu1GBn2uTJPdf3p4ISQARpj2GnNAoE2v fp/ezmVx+llTBaYxWLweHifxJzrtv562ZGsAuAPplzvWj0ejh+u1qCgnrXXJVwjJrC+m 1HBw== X-Gm-Message-State: AOAM533ZwO+NcNezzVDP+H5YotQ3Zrtj+Q0EftlDspRjW9a4LiebzAql Yammzo/Fyiiiq0v0OMtIE/nTuFsG4hPR7A== X-Google-Smtp-Source: ABdhPJxCiLTInc373BjQ/xwwpZrJ7zTgvlcS3GCI9Nbe0DL9zpbO9T8ed+W5L5+YSztNW2qUVKiOXg== X-Received: by 2002:a17:907:16a6:: with SMTP id hc38mr27311604ejc.291.1643822600053; Wed, 02 Feb 2022 09:23:20 -0800 (PST) Received: from [10.240.0.180] (84-115-234-85.cable.dynamic.surfer.at. [84.115.234.85]) by smtp.gmail.com with ESMTPSA id d23sm15576067eja.86.2022.02.02.09.23.19 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 02 Feb 2022 09:23:19 -0800 (PST) Content-Type: multipart/mixed; boundary="------------scGheX0yclmL0GZ5n5bhgC80" Message-ID: <9344a0d4-183e-e5fe-6bde-9fd9554ff059@cybertec.at> Date: Wed, 2 Feb 2022 18:23:18 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 From: Christoph Heiss Subject: Re: [PATCH] Add reloption for views to enable RLS To: Laurenz Albe , pgsql-hackers@postgresql.org Cc: =?UTF-8?B?SGFucy1Kw7xyZ2VuIFNjaMO2bmln?= References: <91ba25c33ca56b447e868a92a604060d577adb9f.camel@cybertec.at> <69ed8492b4e54baae1f550e9358a4f05e7b0feb6.camel@cybertec.at> Content-Language: en-US In-Reply-To: <69ed8492b4e54baae1f550e9358a4f05e7b0feb6.camel@cybertec.at> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------scGheX0yclmL0GZ5n5bhgC80 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi Laurenz, thank you again for the review! On 1/20/22 15:20, Laurenz Albe wrote: > [..] > I gave the new patch a spin, and got a surprising result: > > [..] > > INSERT INTO v VALUES (1); > INSERT 0 1 > > Huh? "duff" has no permission to insert into "tab"! That really should not happen, thanks for finding that and helping me investigating on how to fix that! This is now solved by checking the security_invoker property on the view in rewriteTargetView(). I've also added a testcase for this in v4 to catch that in future. > > [..] > > About the documentation: > > --- a/doc/src/sgml/ref/create_view.sgml > +++ b/doc/src/sgml/ref/create_view.sgml > + > + security_invoker (boolean) > + > + > + If this option is set, it will cause all access to the underlying > + tables to be checked as referenced by the invoking user, rather than > + the view owner. This will only take effect when row level security is > + enabled on the underlying tables (using > + ALTER TABLE ... ENABLE ROW LEVEL SECURITY). > + > > Why should this *only* take effect if (not "when") RLS is enabled? > The above test shows that there is an effect even without RLS. > > + This option can be changed on existing views using + linkend="sql-alterview">ALTER VIEW. See > + for more details on row level security. > + > > I don't think that it is necessary to mention that this can be changed with > ALTER VIEW - all storage parameters can be. I guess you copied that from > the "check_option" documentation, but I would say it need not be mentioned > there either. Exactly, I tried to fit it in with the existing parameters. I moved the link to ALTER VIEW to the end of the paragraph, as it applies to all options anyways. > > + > + If the security_invoker option is set on the view, > + access to tables is determined by permissions of the invoking user, rather > + than the view owner. This can be used to provide stricter permission > + checking to the underlying tables than by default. > > > Since you are talking about use cases here, RLS might deserve a mention. Expanded upon a little bit in v4. > > --- a/src/backend/access/common/reloptions.c > +++ b/src/backend/access/common/reloptions.c > + { > + { > + "security_invoker", > + "View subquery in invoked within the current security context.", > + RELOPT_KIND_VIEW, > + AccessExclusiveLock > + }, > + false > + }, > > That doesn't seem to be proper English. Yes, that happened when rewriting this for v1 -> v2. Fixed. Thanks, Christoph Heiss --------------scGheX0yclmL0GZ5n5bhgC80 Content-Type: text/x-patch; charset=UTF-8; name="v4-0001-Add-new-boolean-reloption-security_invoker-to-vie.patch" Content-Disposition: attachment; filename*0="v4-0001-Add-new-boolean-reloption-security_invoker-to-vie.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAwMTQzN2E0NWJmZDA2OTA4MGZmZTBlYjQ1Mjg4YmZkZGQzZGU2MDA5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpc3RvcGggSGVpc3MgPGNocmlzdG9waC5oZWlz c0BjeWJlcnRlYy5hdD4KRGF0ZTogV2VkLCAyIEZlYiAyMDIyIDE2OjQ0OjM4ICswMTAwClN1 YmplY3Q6IFtQQVRDSCB2NCAxLzNdIEFkZCBuZXcgYm9vbGVhbiByZWxvcHRpb24gc2VjdXJp dHlfaW52b2tlciB0byB2aWV3cwoKV2hlbiB0aGlzIHJlbG9wdGlvbiBpcyBzZXQgdG8gdHJ1 ZSwgYWxsIHJlZmVyZW5jZXMgdG8gdGhlIHVuZGVybHlpbmcgdGFibGVzIHdpbGwKYmUgY2hl Y2tlZCBhZ2FpbnN0IHRoZSBpbnZva2luZyB1c2VyIHJhdGhlciB0aGFuIHRoZSB2aWV3IG93 bmVyLCBhcyBpcyBjdXJyZW50bHkKaW1wbGVtZW50ZWQuCgpTaWduZWQtb2ZmLWJ5OiBDaHJp c3RvcGggSGVpc3MgPGNocmlzdG9waC5oZWlzc0BjeWJlcnRlYy5hdD4KLS0tCiBzcmMvYmFj a2VuZC9hY2Nlc3MvY29tbW9uL3JlbG9wdGlvbnMuYyAgICB8IDExICsrKysKIHNyYy9iYWNr ZW5kL25vZGVzL2NvcHlmdW5jcy5jICAgICAgICAgICAgIHwgIDEgKwogc3JjL2JhY2tlbmQv bm9kZXMvZXF1YWxmdW5jcy5jICAgICAgICAgICAgfCAgMSArCiBzcmMvYmFja2VuZC9ub2Rl cy9vdXRmdW5jcy5jICAgICAgICAgICAgICB8ICAxICsKIHNyYy9iYWNrZW5kL25vZGVzL3Jl YWRmdW5jcy5jICAgICAgICAgICAgIHwgIDEgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3Bs YW4vc3Vic2VsZWN0LmMgICAgfCAgMSArCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9w cmVwam9pbnRyZWUuYyB8ICAxICsKIHNyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUhhbmRs ZXIuYyAgICAgIHwgMTcgKysrKy0tCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNo ZS5jICAgICAgICB8IDYzICsrKysrKysrKysrKystLS0tLS0tLS0tCiBzcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3V0aWxz L3JlbC5oICAgICAgICAgICAgICAgICAgIHwgMTEgKysrKwogMTEgZmlsZXMgY2hhbmdlZCwg NzcgaW5zZXJ0aW9ucygrKSwgMzIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv Y29tbW9uL3JlbG9wdGlvbnMuYwppbmRleCBkNTkyNjU1MjU4Li5jN2M2MmEwMDc2IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3JlbG9wdGlvbnMuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3JlbG9wdGlvbnMuYwpAQCAtMTQwLDYgKzE0MCwx NSBAQCBzdGF0aWMgcmVsb3B0X2Jvb2wgYm9vbFJlbE9wdHNbXSA9CiAJCX0sCiAJCWZhbHNl CiAJfSwKKwl7CisJCXsKKwkJCSJzZWN1cml0eV9pbnZva2VyIiwKKwkJCSJDaGVjayBwZXJt aXNzaW9ucyBhZ2FpbnN0IHVuZGVybHlpbmcgdGFibGVzIGFzIHRoZSBjYWxsaW5nIHVzZXIs IG5vdCBhcyB2aWV3IG93bmVyIiwKKwkJCVJFTE9QVF9LSU5EX1ZJRVcsCisJCQlBY2Nlc3NF eGNsdXNpdmVMb2NrCisJCX0sCisJCWZhbHNlCisJfSwKIAl7CiAJCXsKIAkJCSJ2YWN1dW1f dHJ1bmNhdGUiLApAQCAtMTk5Niw2ICsyMDA1LDggQEAgdmlld19yZWxvcHRpb25zKERhdHVt IHJlbG9wdGlvbnMsIGJvb2wgdmFsaWRhdGUpCiAJc3RhdGljIGNvbnN0IHJlbG9wdF9wYXJz ZV9lbHQgdGFiW10gPSB7CiAJCXsic2VjdXJpdHlfYmFycmllciIsIFJFTE9QVF9UWVBFX0JP T0wsCiAJCW9mZnNldG9mKFZpZXdPcHRpb25zLCBzZWN1cml0eV9iYXJyaWVyKX0sCisJCXsi c2VjdXJpdHlfaW52b2tlciIsIFJFTE9QVF9UWVBFX0JPT0wsCisJCW9mZnNldG9mKFZpZXdP cHRpb25zLCBzZWN1cml0eV9pbnZva2VyKX0sCiAJCXsiY2hlY2tfb3B0aW9uIiwgUkVMT1BU X1RZUEVfRU5VTSwKIAkJb2Zmc2V0b2YoVmlld09wdGlvbnMsIGNoZWNrX29wdGlvbil9CiAJ fTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL2NvcHlmdW5jcy5jIGIvc3JjL2Jh Y2tlbmQvbm9kZXMvY29weWZ1bmNzLmMKaW5kZXggOTBiNWRhNTFjOS4uYjE3MTk5MmJhOCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvY29weWZ1bmNzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvbm9kZXMvY29weWZ1bmNzLmMKQEAgLTI0NjUsNiArMjQ2NSw3IEBAIF9jb3B5UmFu Z2VUYmxFbnRyeShjb25zdCBSYW5nZVRibEVudHJ5ICpmcm9tKQogCUNPUFlfTk9ERV9GSUVM RCh0YWJsZXNhbXBsZSk7CiAJQ09QWV9OT0RFX0ZJRUxEKHN1YnF1ZXJ5KTsKIAlDT1BZX1ND QUxBUl9GSUVMRChzZWN1cml0eV9iYXJyaWVyKTsKKwlDT1BZX1NDQUxBUl9GSUVMRChzZWN1 cml0eV9pbnZva2VyKTsKIAlDT1BZX1NDQUxBUl9GSUVMRChqb2ludHlwZSk7CiAJQ09QWV9T Q0FMQVJfRklFTEQoam9pbm1lcmdlZGNvbHMpOwogCUNPUFlfTk9ERV9GSUVMRChqb2luYWxp YXN2YXJzKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL2VxdWFsZnVuY3MuYyBi L3NyYy9iYWNrZW5kL25vZGVzL2VxdWFsZnVuY3MuYwppbmRleCAwNjM0NWRhM2JhLi5hODMy YzVmZWZlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9lcXVhbGZ1bmNzLmMKKysr IGIvc3JjL2JhY2tlbmQvbm9kZXMvZXF1YWxmdW5jcy5jCkBAIC0yNzY2LDYgKzI3NjYsNyBA QCBfZXF1YWxSYW5nZVRibEVudHJ5KGNvbnN0IFJhbmdlVGJsRW50cnkgKmEsIGNvbnN0IFJh bmdlVGJsRW50cnkgKmIpCiAJQ09NUEFSRV9OT0RFX0ZJRUxEKHRhYmxlc2FtcGxlKTsKIAlD T01QQVJFX05PREVfRklFTEQoc3VicXVlcnkpOwogCUNPTVBBUkVfU0NBTEFSX0ZJRUxEKHNl Y3VyaXR5X2JhcnJpZXIpOworCUNPTVBBUkVfU0NBTEFSX0ZJRUxEKHNlY3VyaXR5X2ludm9r ZXIpOwogCUNPTVBBUkVfU0NBTEFSX0ZJRUxEKGpvaW50eXBlKTsKIAlDT01QQVJFX1NDQUxB Ul9GSUVMRChqb2lubWVyZ2VkY29scyk7CiAJQ09NUEFSRV9OT0RFX0ZJRUxEKGpvaW5hbGlh c3ZhcnMpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvb3V0ZnVuY3MuYyBiL3Ny Yy9iYWNrZW5kL25vZGVzL291dGZ1bmNzLmMKaW5kZXggMmIwMjM2OTM3YS4uODgzMjg0YWQw ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvb3V0ZnVuY3MuYworKysgYi9zcmMv YmFja2VuZC9ub2Rlcy9vdXRmdW5jcy5jCkBAIC0zMjYxLDYgKzMyNjEsNyBAQCBfb3V0UmFu Z2VUYmxFbnRyeShTdHJpbmdJbmZvIHN0ciwgY29uc3QgUmFuZ2VUYmxFbnRyeSAqbm9kZSkK IAkJY2FzZSBSVEVfU1VCUVVFUlk6CiAJCQlXUklURV9OT0RFX0ZJRUxEKHN1YnF1ZXJ5KTsK IAkJCVdSSVRFX0JPT0xfRklFTEQoc2VjdXJpdHlfYmFycmllcik7CisJCQlXUklURV9CT09M X0ZJRUxEKHNlY3VyaXR5X2ludm9rZXIpOwogCQkJYnJlYWs7CiAJCWNhc2UgUlRFX0pPSU46 CiAJCQlXUklURV9FTlVNX0ZJRUxEKGpvaW50eXBlLCBKb2luVHlwZSk7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9ub2Rlcy9yZWFkZnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL3Jl YWRmdW5jcy5jCmluZGV4IDNmNjhmN2MxOGQuLmFkODI1YmIyN2YgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL25vZGVzL3JlYWRmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL3Jl YWRmdW5jcy5jCkBAIC0xNDQ0LDYgKzE0NDQsNyBAQCBfcmVhZFJhbmdlVGJsRW50cnkodm9p ZCkKIAkJY2FzZSBSVEVfU1VCUVVFUlk6CiAJCQlSRUFEX05PREVfRklFTEQoc3VicXVlcnkp OwogCQkJUkVBRF9CT09MX0ZJRUxEKHNlY3VyaXR5X2JhcnJpZXIpOworCQkJUkVBRF9CT09M X0ZJRUxEKHNlY3VyaXR5X2ludm9rZXIpOwogCQkJYnJlYWs7CiAJCWNhc2UgUlRFX0pPSU46 CiAJCQlSRUFEX0VOVU1fRklFTEQoam9pbnR5cGUsIEpvaW5UeXBlKTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3N1YnNlbGVjdC5jIGIvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3BsYW4vc3Vic2VsZWN0LmMKaW5kZXggNDFiZDFhZTdkNC4uMzBjNjZiOWM2 ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc3Vic2VsZWN0LmMK KysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc3Vic2VsZWN0LmMKQEAgLTEyMTYs NiArMTIxNiw3IEBAIGlubGluZV9jdGVfd2Fsa2VyKE5vZGUgKm5vZGUsIGlubGluZV9jdGVf d2Fsa2VyX2NvbnRleHQgKmNvbnRleHQpCiAJCQlydGUtPnJ0ZWtpbmQgPSBSVEVfU1VCUVVF Ulk7CiAJCQlydGUtPnN1YnF1ZXJ5ID0gbmV3cXVlcnk7CiAJCQlydGUtPnNlY3VyaXR5X2Jh cnJpZXIgPSBmYWxzZTsKKwkJCXJ0ZS0+c2VjdXJpdHlfaW52b2tlciA9IGZhbHNlOwogCiAJ CQkvKiBaZXJvIG91dCBDVEUtc3BlY2lmaWMgZmllbGRzICovCiAJCQlydGUtPmN0ZW5hbWUg PSBOVUxMOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpv aW50cmVlLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYwpp bmRleCAyODI1ODlkZWM4Li5iZDdkYzFjMzQ4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcHJlcC9wcmVwam9pbnRyZWUuYwpAQCAtNjYwLDYgKzY2MCw3IEBAIHByZXByb2Nlc3Nf ZnVuY3Rpb25fcnRlcyhQbGFubmVySW5mbyAqcm9vdCkKIAkJCQlydGUtPnJ0ZWtpbmQgPSBS VEVfU1VCUVVFUlk7CiAJCQkJcnRlLT5zdWJxdWVyeSA9IGZ1bmNxdWVyeTsKIAkJCQlydGUt PnNlY3VyaXR5X2JhcnJpZXIgPSBmYWxzZTsKKwkJCQlydGUtPnNlY3VyaXR5X2ludm9rZXIg PSBmYWxzZTsKIAkJCQkvKiBDbGVhciBmaWVsZHMgdGhhdCBzaG91bGQgbm90IGJlIHNldCBp biBhIHN1YnF1ZXJ5IFJURSAqLwogCQkJCXJ0ZS0+ZnVuY3Rpb25zID0gTklMOwogCQkJCXJ0 ZS0+ZnVuY29yZGluYWxpdHkgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jl d3JpdGUvcmV3cml0ZUhhbmRsZXIuYyBiL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUhh bmRsZXIuYwppbmRleCAzZDgyMTM4Y2IzLi4yMmE3ZGJiMGE1IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmV3 cml0ZS9yZXdyaXRlSGFuZGxlci5jCkBAIC0xODM4LDYgKzE4MzgsNyBAQCBBcHBseVJldHJp ZXZlUnVsZShRdWVyeSAqcGFyc2V0cmVlLAogCXJ0ZS0+cnRla2luZCA9IFJURV9TVUJRVUVS WTsKIAlydGUtPnN1YnF1ZXJ5ID0gcnVsZV9hY3Rpb247CiAJcnRlLT5zZWN1cml0eV9iYXJy aWVyID0gUmVsYXRpb25Jc1NlY3VyaXR5VmlldyhyZWxhdGlvbik7CisJcnRlLT5zZWN1cml0 eV9pbnZva2VyID0gUmVsYXRpb25IYXNTZWN1cml0eUludm9rZXIocmVsYXRpb24pOwogCS8q IENsZWFyIGZpZWxkcyB0aGF0IHNob3VsZCBub3QgYmUgc2V0IGluIGEgc3VicXVlcnkgUlRF ICovCiAJcnRlLT5yZWxpZCA9IEludmFsaWRPaWQ7CiAJcnRlLT5yZWxraW5kID0gMDsKQEAg LTMyNDIsOSArMzI0MywxMyBAQCByZXdyaXRlVGFyZ2V0VmlldyhRdWVyeSAqcGFyc2V0cmVl LCBSZWxhdGlvbiB2aWV3KQogCQkJCSAgIDApOwogCiAJLyoKLQkgKiBNYXJrIHRoZSBuZXcg dGFyZ2V0IFJURSBmb3IgdGhlIHBlcm1pc3Npb25zIGNoZWNrcyB0aGF0IHdlIHdhbnQgdG8K LQkgKiBlbmZvcmNlIGFnYWluc3QgdGhlIHZpZXcgb3duZXIsIGFzIGRpc3RpbmN0IGZyb20g dGhlIHF1ZXJ5IGNhbGxlci4gIEF0Ci0JICogdGhlIHJlbGF0aW9uIGxldmVsLCByZXF1aXJl IHRoZSBzYW1lIElOU0VSVC9VUERBVEUvREVMRVRFIHBlcm1pc3Npb25zCisJICogSWYgdGhl IHZpZXcgaGFzIHNlY3VyaXR5X2ludm9rZXIgc2V0LCBtYXJrIHRoZSBuZXcgdGFyZ2V0IFJU RSBmb3IgdGhlCisJICogcGVybWlzc2lvbnMgY2hlY2tzIHRoYXQgd2Ugd2FudCB0byBlbmZv cmNlIGFnYWluc3QgdGhlIHF1ZXJ5IGNhbGxlciwgYXMKKwkgKiBkaXN0aW5jZSBmcm9tIHRo ZSB2aWV3IG93bmVyLgorCSAqIEluIGFsbCBvdGhlciBjYXNlcywgd2Ugd2FudCB0byBlbmZv cmNlIHRoZW0gYWdhaW5zdCB0aGUgdmlldyBvd25lciwKKwkgKiBub3QgdGhlIHF1ZXJ5IGNh bGxlci4KKwkgKgorCSAqIEF0IHRoZSByZWxhdGlvbiBsZXZlbCwgcmVxdWlyZSB0aGUgc2Ft ZSBJTlNFUlQvVVBEQVRFL0RFTEVURSBwZXJtaXNzaW9ucwogCSAqIHRoYXQgdGhlIHF1ZXJ5 IGNhbGxlciBuZWVkcyBhZ2FpbnN0IHRoZSB2aWV3LiAgV2UgZHJvcCB0aGUgQUNMX1NFTEVD VAogCSAqIGJpdCB0aGF0IGlzIHByZXN1bWFibHkgaW4gbmV3X3J0ZS0+cmVxdWlyZWRQZXJt cyBpbml0aWFsbHkuCiAJICoKQEAgLTMyNTMsNyArMzI1OCwxMSBAQCByZXdyaXRlVGFyZ2V0 VmlldyhRdWVyeSAqcGFyc2V0cmVlLCBSZWxhdGlvbiB2aWV3KQogCSAqIHRoZSBleGVjdXRv ciBzdGlsbCBwZXJmb3JtcyBhcHByb3ByaWF0ZSBwZXJtaXNzaW9ucyBjaGVja3MgZm9yIHRo ZQogCSAqIHF1ZXJ5IGNhbGxlcidzIHVzZSBvZiB0aGUgdmlldy4KIAkgKi8KLQluZXdfcnRl LT5jaGVja0FzVXNlciA9IHZpZXctPnJkX3JlbC0+cmVsb3duZXI7CisJaWYgKFJlbGF0aW9u SGFzU2VjdXJpdHlJbnZva2VyKHZpZXcpKQorCQluZXdfcnRlLT5jaGVja0FzVXNlciA9IHZp ZXdfcnRlLT5jaGVja0FzVXNlcjsKKwllbHNlCisJCW5ld19ydGUtPmNoZWNrQXNVc2VyID0g dmlldy0+cmRfcmVsLT5yZWxvd25lcjsKKwogCW5ld19ydGUtPnJlcXVpcmVkUGVybXMgPSB2 aWV3X3J0ZS0+cmVxdWlyZWRQZXJtczsKIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVs Y2FjaGUuYwppbmRleCAyZTc2MGU4YTNiLi45YWUwM2UzZThkIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2NhY2hlL3JlbGNhY2hlLmMKQEAgLTgyNSwxMSArODI1LDE0IEBAIFJlbGF0aW9uQnVpbGRS dWxlTG9jayhSZWxhdGlvbiByZWxhdGlvbikKIAkJcGZyZWUocnVsZV9zdHIpOwogCiAJCS8q Ci0JCSAqIFdlIHdhbnQgdGhlIHJ1bGUncyB0YWJsZSByZWZlcmVuY2VzIHRvIGJlIGNoZWNr ZWQgYXMgdGhvdWdoIGJ5IHRoZQotCQkgKiB0YWJsZSBvd25lciwgbm90IHRoZSB1c2VyIHJl ZmVyZW5jaW5nIHRoZSBydWxlLiAgVGhlcmVmb3JlLCBzY2FuCi0JCSAqIHRocm91Z2ggdGhl IHJ1bGUncyBhY3Rpb25zIGFuZCBzZXQgdGhlIGNoZWNrQXNVc2VyIGZpZWxkIG9uIGFsbAot CQkgKiBydGFibGUgZW50cmllcy4gIFdlIGhhdmUgdG8gbG9vayBhdCB0aGUgcXVhbCBhcyB3 ZWxsLCBpbiBjYXNlIGl0Ci0JCSAqIGNvbnRhaW5zIHN1YmxpbmtzLgorCQkgKiBJZiB3ZSdy ZSBkZWFsaW5nIHdpdGggYSB2aWV3IHRoYXQgaGFzIHRoZSBzZWN1cml0eV9pbnZva2VyIHJl bG9wdAorCQkgKiBzZXQgdG8gdHJ1ZSwgd2Ugd2FudCB0aGUgcnVsZSdzIHRhYmxlIHJlZmVy ZW5jZXMgdG8gYmUgY2hlY2tlZCBhcworCQkgKiB0aGUgdXNlciByZWZlcmVuY2luZyB0aGUg cnVsZS4KKwkJICoKKwkJICogSW4gYWxsIG90aGVyIGNhc2VzLCB3ZSB3YW50IHRoZSBydWxl J3MgdGFibGUgcmVmZXJlbmNlcyB0byBiZSBjaGVja2VkCisJCSAqIGFzIHRob3VnaCBieSB0 aGUgdGFibGUgb3duZXIuICBUaGVyZWZvcmUsIHNjYW4gdGhyb3VnaCB0aGUgcnVsZSdzCisJ CSAqIGFjdGlvbnMgYW5kIHNldCB0aGUgY2hlY2tBc1VzZXIgZmllbGQgb24gYWxsIHJ0YWJs ZSBlbnRyaWVzLiAgV2UKKwkJICogaGF2ZSB0byBsb29rIGF0IHRoZSBxdWFsIGFzIHdlbGws IGluIGNhc2UgaXQgY29udGFpbnMgc3VibGlua3MuCiAJCSAqCiAJCSAqIFRoZSByZWFzb24g Zm9yIGRvaW5nIHRoaXMgd2hlbiB0aGUgcnVsZSBpcyBsb2FkZWQsIHJhdGhlciB0aGFuIHdo ZW4KIAkJICogaXQgaXMgc3RvcmVkLCBpcyB0aGF0IG90aGVyd2lzZSBBTFRFUiBUQUJMRSBP V05FUiB3b3VsZCBoYXZlIHRvCkBAIC04MzcsOCArODQwLDEyIEBAIFJlbGF0aW9uQnVpbGRS dWxlTG9jayhSZWxhdGlvbiByZWxhdGlvbikKIAkJICogdGhlIHJ1bGUgdHJlZSBkdXJpbmcg bG9hZCBpcyByZWxhdGl2ZWx5IGNoZWFwIChjb21wYXJlZCB0bwogCQkgKiBjb25zdHJ1Y3Rp bmcgaXQgaW4gdGhlIGZpcnN0IHBsYWNlKSwgc28gd2UgZG8gaXQgaGVyZS4KIAkJICovCi0J CXNldFJ1bGVDaGVja0FzVXNlcigoTm9kZSAqKSBydWxlLT5hY3Rpb25zLCByZWxhdGlvbi0+ cmRfcmVsLT5yZWxvd25lcik7Ci0JCXNldFJ1bGVDaGVja0FzVXNlcihydWxlLT5xdWFsLCBy ZWxhdGlvbi0+cmRfcmVsLT5yZWxvd25lcik7CisJCWlmICghKHJlbGF0aW9uLT5yZF9yZWwt PnJlbGtpbmQgPT0gUkVMS0lORF9WSUVXCisJCQkgICYmIFJlbGF0aW9uSGFzU2VjdXJpdHlJ bnZva2VyKHJlbGF0aW9uKSkpCisJCXsKKwkJCXNldFJ1bGVDaGVja0FzVXNlcigoTm9kZSAq KSBydWxlLT5hY3Rpb25zLCByZWxhdGlvbi0+cmRfcmVsLT5yZWxvd25lcik7CisJCQlzZXRS dWxlQ2hlY2tBc1VzZXIocnVsZS0+cXVhbCwgcmVsYXRpb24tPnJkX3JlbC0+cmVsb3duZXIp OworCQl9CiAKIAkJaWYgKG51bWxvY2tzID49IG1heGxvY2tzKQogCQl7CkBAIC0xMTYzLDI3 ICsxMTcwLDYgQEAgcmV0cnk6CiAJICovCiAJUmVsYXRpb25CdWlsZFR1cGxlRGVzYyhyZWxh dGlvbik7CiAKLQkvKgotCSAqIEZldGNoIHJ1bGVzIGFuZCB0cmlnZ2VycyB0aGF0IGFmZmVj dCB0aGlzIHJlbGF0aW9uCi0JICovCi0JaWYgKHJlbGF0aW9uLT5yZF9yZWwtPnJlbGhhc3J1 bGVzKQotCQlSZWxhdGlvbkJ1aWxkUnVsZUxvY2socmVsYXRpb24pOwotCWVsc2UKLQl7Ci0J CXJlbGF0aW9uLT5yZF9ydWxlcyA9IE5VTEw7Ci0JCXJlbGF0aW9uLT5yZF9ydWxlc2N4dCA9 IE5VTEw7Ci0JfQotCi0JaWYgKHJlbGF0aW9uLT5yZF9yZWwtPnJlbGhhc3RyaWdnZXJzKQot CQlSZWxhdGlvbkJ1aWxkVHJpZ2dlcnMocmVsYXRpb24pOwotCWVsc2UKLQkJcmVsYXRpb24t PnRyaWdkZXNjID0gTlVMTDsKLQotCWlmIChyZWxhdGlvbi0+cmRfcmVsLT5yZWxyb3dzZWN1 cml0eSkKLQkJUmVsYXRpb25CdWlsZFJvd1NlY3VyaXR5KHJlbGF0aW9uKTsKLQllbHNlCi0J CXJlbGF0aW9uLT5yZF9yc2Rlc2MgPSBOVUxMOwotCiAJLyogZm9yZWlnbiBrZXkgZGF0YSBp cyBub3QgbG9hZGVkIHRpbGwgYXNrZWQgZm9yICovCiAJcmVsYXRpb24tPnJkX2ZrZXlsaXN0 ID0gTklMOwogCXJlbGF0aW9uLT5yZF9ma2V5dmFsaWQgPSBmYWxzZTsKQEAgLTEyMTUsNiAr MTIwMSwyNyBAQCByZXRyeToKIAkvKiBleHRyYWN0IHJlbG9wdGlvbnMgaWYgYW55ICovCiAJ UmVsYXRpb25QYXJzZVJlbE9wdGlvbnMocmVsYXRpb24sIHBnX2NsYXNzX3R1cGxlKTsKIAor CS8qCisJICogRmV0Y2ggcnVsZXMgYW5kIHRyaWdnZXJzIHRoYXQgYWZmZWN0IHRoaXMgcmVs YXRpb24KKwkgKi8KKwlpZiAocmVsYXRpb24tPnJkX3JlbC0+cmVsaGFzcnVsZXMpCisJCVJl bGF0aW9uQnVpbGRSdWxlTG9jayhyZWxhdGlvbik7CisJZWxzZQorCXsKKwkJcmVsYXRpb24t PnJkX3J1bGVzID0gTlVMTDsKKwkJcmVsYXRpb24tPnJkX3J1bGVzY3h0ID0gTlVMTDsKKwl9 CisKKwlpZiAocmVsYXRpb24tPnJkX3JlbC0+cmVsaGFzdHJpZ2dlcnMpCisJCVJlbGF0aW9u QnVpbGRUcmlnZ2VycyhyZWxhdGlvbik7CisJZWxzZQorCQlyZWxhdGlvbi0+dHJpZ2Rlc2Mg PSBOVUxMOworCisJaWYgKHJlbGF0aW9uLT5yZF9yZWwtPnJlbHJvd3NlY3VyaXR5KQorCQlS ZWxhdGlvbkJ1aWxkUm93U2VjdXJpdHkocmVsYXRpb24pOworCWVsc2UKKwkJcmVsYXRpb24t PnJkX3JzZGVzYyA9IE5VTEw7CisKIAkvKgogCSAqIGluaXRpYWxpemUgdGhlIHJlbGF0aW9u IGxvY2sgbWFuYWdlciBpbmZvcm1hdGlvbgogCSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o CmluZGV4IDNlOWJkYzc4MWYuLjEzNjJmNWQxMTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmgKQEAgLTEwNDIsNiArMTA0Miw3IEBAIHR5cGVkZWYgc3RydWN0IFJhbmdlVGJsRW50cnkK IAkgKi8KIAlRdWVyeQkgICAqc3VicXVlcnk7CQkvKiB0aGUgc3ViLXF1ZXJ5ICovCiAJYm9v bAkJc2VjdXJpdHlfYmFycmllcjsJLyogaXMgZnJvbSBzZWN1cml0eV9iYXJyaWVyIHZpZXc/ ICovCisJYm9vbAkJc2VjdXJpdHlfaW52b2tlcjsJLyogZnJvbSBhIHZpZXcgd2l0aCBzZWN1 cml0eV9pbnZva2VyIHNldD8gKi8KIAogCS8qCiAJICogRmllbGRzIHZhbGlkIGZvciBhIGpv aW4gUlRFIChlbHNlIE5VTEwvemVybyk6CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGls cy9yZWwuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL3JlbC5oCmluZGV4IDZkYTFiMjIwY2QuLjlh ODg2NmM5MWQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3JlbC5oCisrKyBiL3Ny Yy9pbmNsdWRlL3V0aWxzL3JlbC5oCkBAIC0zOTgsNiArMzk4LDcgQEAgdHlwZWRlZiBzdHJ1 Y3QgVmlld09wdGlvbnMKIHsKIAlpbnQzMgkJdmxfbGVuXzsJCS8qIHZhcmxlbmEgaGVhZGVy IChkbyBub3QgdG91Y2ggZGlyZWN0bHkhKSAqLwogCWJvb2wJCXNlY3VyaXR5X2JhcnJpZXI7 CisJYm9vbAkJc2VjdXJpdHlfaW52b2tlcjsKIAlWaWV3T3B0Q2hlY2tPcHRpb24gY2hlY2tf b3B0aW9uOwogfSBWaWV3T3B0aW9uczsKIApAQCAtNDExLDYgKzQxMiwxNiBAQCB0eXBlZGVm IHN0cnVjdCBWaWV3T3B0aW9ucwogCSAocmVsYXRpb24pLT5yZF9vcHRpb25zID8JCQkJCQkJ CQkJCQlcCiAJICAoKFZpZXdPcHRpb25zICopIChyZWxhdGlvbiktPnJkX29wdGlvbnMpLT5z ZWN1cml0eV9iYXJyaWVyIDogZmFsc2UpCiAKKy8qCisgKiBSZWxhdGlvbkhhc1NlY3VyaXR5 UmVsYXRpb25QZXJtaXNzaW9ucworICoJCVJldHVybnMgdHJ1ZSBpZiB0aGUgcmVsYXRpb24g aGFzIHRoZSBzZWN1cml0eSBpbnZva2VyIHByb3BlcnR5IHNldCwgb3IKKyAqCQlub3QuICBO b3RlIG11bHRpcGxlIGV2YWwgb2YgYXJndW1lbnQhCisgKi8KKyNkZWZpbmUgUmVsYXRpb25I YXNTZWN1cml0eUludm9rZXIocmVsYXRpb24pCQkJCQkJCQlcCisJKEFzc2VydE1hY3JvKHJl bGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9WSUVXKSwJCQkJXAorCSAocmVs YXRpb24pLT5yZF9vcHRpb25zID8JCQkJCQkJCQkJCQlcCisJICAoKFZpZXdPcHRpb25zICop IChyZWxhdGlvbiktPnJkX29wdGlvbnMpLT5zZWN1cml0eV9pbnZva2VyIDogZmFsc2UpCisK IC8qCiAgKiBSZWxhdGlvbkhhc0NoZWNrT3B0aW9uCiAgKgkJUmV0dXJucyB0cnVlIGlmIHRo ZSByZWxhdGlvbiBpcyBhIHZpZXcgZGVmaW5lZCB3aXRoIGVpdGhlciB0aGUgbG9jYWwKLS0g CjIuMzUuMQoK --------------scGheX0yclmL0GZ5n5bhgC80 Content-Type: text/x-patch; charset=UTF-8; name="v4-0002-Add-regression-tests-for-new-security_invoker-rel.patch" Content-Disposition: attachment; filename*0="v4-0002-Add-regression-tests-for-new-security_invoker-rel.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBiMTJkODMyNDgwNDdlYTRlNWIwMWMwNzM5MmYyZmZiYzEzNDdiNDFjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpc3RvcGggSGVpc3MgPGNocmlzdG9waC5oZWlz c0BjeWJlcnRlYy5hdD4KRGF0ZTogV2VkLCAyIEZlYiAyMDIyIDE3OjMzOjAwICswMTAwClN1 YmplY3Q6IFtQQVRDSCB2NCAyLzNdIEFkZCByZWdyZXNzaW9uIHRlc3RzIGZvciBuZXcgc2Vj dXJpdHlfaW52b2tlcgogcmVsb3B0aW9uIG9uIHZpZXdzCgpUaGlzIGV4cGFuZHMgb24gdGhl IGN1cnJlbnQgcmVncmVzc2lvbnMgdGVzdHMgZm9yIENSRUFURSBWSUVXIGFuZApST1cgTEVW RUwgU0VDVVJJVFktcmVsYXRlZCBtYXR0ZXJzLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXN0b3Bo IEhlaXNzIDxjaHJpc3RvcGguaGVpc3NAY3liZXJ0ZWMuYXQ+Ci0tLQogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9jcmVhdGVfdmlldy5vdXQgfCA0MiArKysrKysrKysrKystLS0KIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcm93c2VjdXJpdHkub3V0IHwgNjUgKysrKysrKysr KysrKysrKysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV92aWV3LnNxbCAg ICAgIHwgMjYgKysrKysrKy0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9yb3dzZWN1cml0eS5z cWwgICAgICB8IDQ0ICsrKysrKysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAxNjUgaW5z ZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9jcmVhdGVfdmlldy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2NyZWF0ZV92aWV3Lm91dAppbmRleCA1MDllOTMwZmM3Li5mZWE4OTM1NjlmIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV92aWV3Lm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV92aWV3Lm91dApAQCAtMjYxLDE1 ICsyNjEsMjYgQEAgQ1JFQVRFIFZJRVcgbXlzZWN2aWV3MyBXSVRIIChzZWN1cml0eV9iYXJy aWVyPWZhbHNlKQogICAgICAgIEFTIFNFTEVDVCAqIEZST00gdGJsMSBXSEVSRSBhIDwgMDsK IENSRUFURSBWSUVXIG15c2VjdmlldzQgV0lUSCAoc2VjdXJpdHlfYmFycmllcikKICAgICAg ICBBUyBTRUxFQ1QgKiBGUk9NIHRibDEgV0hFUkUgYSA8PiAwOwotQ1JFQVRFIFZJRVcgbXlz ZWN2aWV3NSBXSVRIIChzZWN1cml0eV9iYXJyaWVyPTEwMCkJLS0gRXJyb3IKK0NSRUFURSBW SUVXIG15c2VjdmlldzUgV0lUSCAoc2VjdXJpdHlfaW52b2tlcj10cnVlKQorICAgICAgIEFT IFNFTEVDVCAqIEZST00gdGJsMSBXSEVSRSBhID0gMTAwOworQ1JFQVRFIFZJRVcgbXlzZWN2 aWV3NiBXSVRIIChzZWN1cml0eV9pbnZva2VyPWZhbHNlKQogICAgICAgIEFTIFNFTEVDVCAq IEZST00gdGJsMSBXSEVSRSBhID4gMTAwOworQ1JFQVRFIFZJRVcgbXlzZWN2aWV3NyBXSVRI IChzZWN1cml0eV9pbnZva2VyKQorICAgICAgIEFTIFNFTEVDVCAqIEZST00gdGJsMSBXSEVS RSBhIDwgMTAwOworQ1JFQVRFIFZJRVcgbXlzZWN2aWV3OCBXSVRIIChzZWN1cml0eV9iYXJy aWVyPTEwMCkJLS0gRXJyb3IKKyAgICAgICBBUyBTRUxFQ1QgKiBGUk9NIHRibDEgV0hFUkUg YSA8PiAxMDA7CiBFUlJPUjogIGludmFsaWQgdmFsdWUgZm9yIGJvb2xlYW4gb3B0aW9uICJz ZWN1cml0eV9iYXJyaWVyIjogMTAwCi1DUkVBVEUgVklFVyBteXNlY3ZpZXc2IFdJVEggKGlu dmFsaWRfb3B0aW9uKQkJLS0gRXJyb3IKK0NSRUFURSBWSUVXIG15c2VjdmlldzkgV0lUSCAo c2VjdXJpdHlfaW52b2tlcj0xMDApCS0tIEVycm9yCisgICAgICAgQVMgU0VMRUNUICogRlJP TSB0YmwxIFdIRVJFIGEgPSAxMDA7CitFUlJPUjogIGludmFsaWQgdmFsdWUgZm9yIGJvb2xl YW4gb3B0aW9uICJzZWN1cml0eV9pbnZva2VyIjogMTAwCitDUkVBVEUgVklFVyBteXNlY3Zp ZXcxMCBXSVRIIChpbnZhbGlkX29wdGlvbikJCS0tIEVycm9yCiAgICAgICAgQVMgU0VMRUNU ICogRlJPTSB0YmwxIFdIRVJFIGEgPCAxMDA7CiBFUlJPUjogIHVucmVjb2duaXplZCBwYXJh bWV0ZXIgImludmFsaWRfb3B0aW9uIgogU0VMRUNUIHJlbG5hbWUsIHJlbGtpbmQsIHJlbG9w dGlvbnMgRlJPTSBwZ19jbGFzcwogICAgICAgIFdIRVJFIG9pZCBpbiAoJ215c2VjdmlldzEn OjpyZWdjbGFzcywgJ215c2VjdmlldzInOjpyZWdjbGFzcywKLSAgICAgICAgICAgICAgICAg ICAgICdteXNlY3ZpZXczJzo6cmVnY2xhc3MsICdteXNlY3ZpZXc0Jzo6cmVnY2xhc3MpCisg ICAgICAgICAgICAgICAgICAgICAnbXlzZWN2aWV3Myc6OnJlZ2NsYXNzLCAnbXlzZWN2aWV3 NCc6OnJlZ2NsYXNzLAorICAgICAgICAgICAgICAgICAgICAgJ215c2VjdmlldzUnOjpyZWdj bGFzcywgJ215c2VjdmlldzYnOjpyZWdjbGFzcywKKyAgICAgICAgICAgICAgICAgICAgICdt eXNlY3ZpZXc3Jzo6cmVnY2xhc3MpCiAgICAgICAgT1JERVIgQlkgcmVsbmFtZTsKICAgcmVs bmFtZSAgIHwgcmVsa2luZCB8ICAgICAgICByZWxvcHRpb25zICAgICAgICAKIC0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI3Nyw3ICsy ODgsMTAgQEAgU0VMRUNUIHJlbG5hbWUsIHJlbGtpbmQsIHJlbG9wdGlvbnMgRlJPTSBwZ19j bGFzcwogIG15c2VjdmlldzIgfCB2ICAgICAgIHwge3NlY3VyaXR5X2JhcnJpZXI9dHJ1ZX0K ICBteXNlY3ZpZXczIHwgdiAgICAgICB8IHtzZWN1cml0eV9iYXJyaWVyPWZhbHNlfQogIG15 c2VjdmlldzQgfCB2ICAgICAgIHwge3NlY3VyaXR5X2JhcnJpZXI9dHJ1ZX0KLSg0IHJvd3Mp CisgbXlzZWN2aWV3NSB8IHYgICAgICAgfCB7c2VjdXJpdHlfaW52b2tlcj10cnVlfQorIG15 c2VjdmlldzYgfCB2ICAgICAgIHwge3NlY3VyaXR5X2ludm9rZXI9ZmFsc2V9CisgbXlzZWN2 aWV3NyB8IHYgICAgICAgfCB7c2VjdXJpdHlfaW52b2tlcj10cnVlfQorKDcgcm93cykKIAog Q1JFQVRFIE9SIFJFUExBQ0UgVklFVyBteXNlY3ZpZXcxCiAgICAgICAgQVMgU0VMRUNUICog RlJPTSB0YmwxIFdIRVJFIGEgPSAyNTY7CkBAIC0yODcsOSArMzAxLDE3IEBAIENSRUFURSBP UiBSRVBMQUNFIFZJRVcgbXlzZWN2aWV3MyBXSVRIIChzZWN1cml0eV9iYXJyaWVyPXRydWUp CiAgICAgICAgQVMgU0VMRUNUICogRlJPTSB0YmwxIFdIRVJFIGEgPCAyNTY7CiBDUkVBVEUg T1IgUkVQTEFDRSBWSUVXIG15c2VjdmlldzQgV0lUSCAoc2VjdXJpdHlfYmFycmllcj1mYWxz ZSkKICAgICAgICBBUyBTRUxFQ1QgKiBGUk9NIHRibDEgV0hFUkUgYSA8PiAyNTY7CitDUkVB VEUgT1IgUkVQTEFDRSBWSUVXIG15c2VjdmlldzUKKyAgICAgICBBUyBTRUxFQ1QgKiBGUk9N IHRibDEgV0hFUkUgYSA+IDI1NjsKK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcgbXlzZWN2aWV3 NiBXSVRIIChzZWN1cml0eV9pbnZva2VyPXRydWUpCisgICAgICAgQVMgU0VMRUNUICogRlJP TSB0YmwxIFdIRVJFIGEgPCAyNTY7CitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIG15c2Vjdmll dzcgV0lUSCAoc2VjdXJpdHlfaW52b2tlcj1mYWxzZSkKKyAgICAgICBBUyBTRUxFQ1QgKiBG Uk9NIHRibDEgV0hFUkUgYSA8PiAyNTY7CiBTRUxFQ1QgcmVsbmFtZSwgcmVsa2luZCwgcmVs b3B0aW9ucyBGUk9NIHBnX2NsYXNzCiAgICAgICAgV0hFUkUgb2lkIGluICgnbXlzZWN2aWV3 MSc6OnJlZ2NsYXNzLCAnbXlzZWN2aWV3Mic6OnJlZ2NsYXNzLAotICAgICAgICAgICAgICAg ICAgICAgJ215c2VjdmlldzMnOjpyZWdjbGFzcywgJ215c2VjdmlldzQnOjpyZWdjbGFzcykK KyAgICAgICAgICAgICAgICAgICAgICdteXNlY3ZpZXczJzo6cmVnY2xhc3MsICdteXNlY3Zp ZXc0Jzo6cmVnY2xhc3MsCisgICAgICAgICAgICAgICAgICAgICAnbXlzZWN2aWV3NSc6OnJl Z2NsYXNzLCAnbXlzZWN2aWV3Nic6OnJlZ2NsYXNzLAorICAgICAgICAgICAgICAgICAgICAg J215c2VjdmlldzcnOjpyZWdjbGFzcykKICAgICAgICBPUkRFUiBCWSByZWxuYW1lOwogICBy ZWxuYW1lICAgfCByZWxraW5kIHwgICAgICAgIHJlbG9wdGlvbnMgICAgICAgIAogLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjk3LDcg KzMxOSwxMCBAQCBTRUxFQ1QgcmVsbmFtZSwgcmVsa2luZCwgcmVsb3B0aW9ucyBGUk9NIHBn X2NsYXNzCiAgbXlzZWN2aWV3MiB8IHYgICAgICAgfCAKICBteXNlY3ZpZXczIHwgdiAgICAg ICB8IHtzZWN1cml0eV9iYXJyaWVyPXRydWV9CiAgbXlzZWN2aWV3NCB8IHYgICAgICAgfCB7 c2VjdXJpdHlfYmFycmllcj1mYWxzZX0KLSg0IHJvd3MpCisgbXlzZWN2aWV3NSB8IHYgICAg ICAgfCAKKyBteXNlY3ZpZXc2IHwgdiAgICAgICB8IHtzZWN1cml0eV9pbnZva2VyPXRydWV9 CisgbXlzZWN2aWV3NyB8IHYgICAgICAgfCB7c2VjdXJpdHlfaW52b2tlcj1mYWxzZX0KKyg3 IHJvd3MpCiAKIC0tIENoZWNrIHRoYXQgdW5rbm93biBsaXRlcmFscyBhcmUgY29udmVydGVk IHRvICJ0ZXh0IiBpbiBDUkVBVEUgVklFVywKIC0tIHNvIHRoYXQgd2UgZG9uJ3QgZW5kIHVw IHdpdGggdW5rbm93bi10eXBlIGNvbHVtbnMuCkBAIC0yMDEwLDcgKzIwMzUsNyBAQCBkcm9w IGNhc2NhZGVzIHRvIHZpZXcgYWxpYXNlZF92aWV3XzIKIGRyb3AgY2FzY2FkZXMgdG8gdmll dyBhbGlhc2VkX3ZpZXdfMwogZHJvcCBjYXNjYWRlcyB0byB2aWV3IGFsaWFzZWRfdmlld180 CiBEUk9QIFNDSEVNQSB0ZXN0dmlld3NjaG0yIENBU0NBREU7Ci1OT1RJQ0U6ICBkcm9wIGNh c2NhZGVzIHRvIDc0IG90aGVyIG9iamVjdHMKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8g Nzcgb3RoZXIgb2JqZWN0cwogREVUQUlMOiAgZHJvcCBjYXNjYWRlcyB0byB0YWJsZSB0MQog ZHJvcCBjYXNjYWRlcyB0byB2aWV3IHRlbXBvcmFsMQogZHJvcCBjYXNjYWRlcyB0byB2aWV3 IHRlbXBvcmFsMgpAQCAtMjAzMSw2ICsyMDU2LDkgQEAgZHJvcCBjYXNjYWRlcyB0byB2aWV3 IG15c2VjdmlldzEKIGRyb3AgY2FzY2FkZXMgdG8gdmlldyBteXNlY3ZpZXcyCiBkcm9wIGNh c2NhZGVzIHRvIHZpZXcgbXlzZWN2aWV3MwogZHJvcCBjYXNjYWRlcyB0byB2aWV3IG15c2Vj dmlldzQKK2Ryb3AgY2FzY2FkZXMgdG8gdmlldyBteXNlY3ZpZXc1Citkcm9wIGNhc2NhZGVz IHRvIHZpZXcgbXlzZWN2aWV3NgorZHJvcCBjYXNjYWRlcyB0byB2aWV3IG15c2VjdmlldzcK IGRyb3AgY2FzY2FkZXMgdG8gdmlldyB1bnNwZWNpZmllZF90eXBlcwogZHJvcCBjYXNjYWRl cyB0byB0YWJsZSB0dDEKIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgdHgxCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jvd3NlY3VyaXR5Lm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcm93c2VjdXJpdHkub3V0CmluZGV4IDg5Mzk3ZTQxZjAuLjg1 NmMyNWMwODUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcm93c2Vj dXJpdHkub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcm93c2VjdXJpdHku b3V0CkBAIC04LDkgKzgsMTEgQEAgRFJPUCBVU0VSIElGIEVYSVNUUyByZWdyZXNzX3Jsc19h bGljZTsKIERST1AgVVNFUiBJRiBFWElTVFMgcmVncmVzc19ybHNfYm9iOwogRFJPUCBVU0VS IElGIEVYSVNUUyByZWdyZXNzX3Jsc19jYXJvbDsKIERST1AgVVNFUiBJRiBFWElTVFMgcmVn cmVzc19ybHNfZGF2ZTsKK0RST1AgVVNFUiBJRiBFWElTVFMgcmVncmVzc19ybHNfZ3JhY2U7 CiBEUk9QIFVTRVIgSUYgRVhJU1RTIHJlZ3Jlc3NfcmxzX2V4ZW1wdF91c2VyOwogRFJPUCBS T0xFIElGIEVYSVNUUyByZWdyZXNzX3Jsc19ncm91cDE7CiBEUk9QIFJPTEUgSUYgRVhJU1RT IHJlZ3Jlc3NfcmxzX2dyb3VwMjsKK0RST1AgUk9MRSBJRiBFWElTVFMgcmVncmVzc19ybHNf Z3JvdXAzOwogRFJPUCBTQ0hFTUEgSUYgRVhJU1RTIHJlZ3Jlc3NfcmxzX3NjaGVtYSBDQVND QURFOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIC0tIGluaXRpYWwgc2V0dXAKQEAg LTE4LDExICsyMCwxNCBAQCBDUkVBVEUgVVNFUiByZWdyZXNzX3Jsc19hbGljZSBOT0xPR0lO OwogQ1JFQVRFIFVTRVIgcmVncmVzc19ybHNfYm9iIE5PTE9HSU47CiBDUkVBVEUgVVNFUiBy ZWdyZXNzX3Jsc19jYXJvbCBOT0xPR0lOOwogQ1JFQVRFIFVTRVIgcmVncmVzc19ybHNfZGF2 ZSBOT0xPR0lOOworQ1JFQVRFIFVTRVIgcmVncmVzc19ybHNfZ3JhY2UgTk9MT0dJTjsKIENS RUFURSBVU0VSIHJlZ3Jlc3NfcmxzX2V4ZW1wdF91c2VyIEJZUEFTU1JMUyBOT0xPR0lOOwog Q1JFQVRFIFJPTEUgcmVncmVzc19ybHNfZ3JvdXAxIE5PTE9HSU47CiBDUkVBVEUgUk9MRSBy ZWdyZXNzX3Jsc19ncm91cDIgTk9MT0dJTjsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfcmxzX2dy b3VwMyBOT0xPR0lOOwogR1JBTlQgcmVncmVzc19ybHNfZ3JvdXAxIFRPIHJlZ3Jlc3Nfcmxz X2JvYjsKIEdSQU5UIHJlZ3Jlc3NfcmxzX2dyb3VwMiBUTyByZWdyZXNzX3Jsc19jYXJvbDsK K0dSQU5UIHJlZ3Jlc3NfcmxzX2dyb3VwMyBUTyByZWdyZXNzX3Jsc19ncmFjZTsKIENSRUFU RSBTQ0hFTUEgcmVncmVzc19ybHNfc2NoZW1hOwogR1JBTlQgQUxMIE9OIFNDSEVNQSByZWdy ZXNzX3Jsc19zY2hlbWEgdG8gcHVibGljOwogU0VUIHNlYXJjaF9wYXRoID0gcmVncmVzc19y bHNfc2NoZW1hOwpAQCAtNjI3LDYgKzYzMiw1OSBAQCBTRUxFQ1QgKiBGUk9NIGNhdGVnb3J5 OwogICA0NCB8IG1hbmdhCiAoNCByb3dzKQogCistLSBUZXN0IHZpZXdzIHdpdGggc2VjdXJp dHlfaW52b2tlciByZWxvcHRpb24gc2V0CitSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047 CitTRVQgcm93X3NlY3VyaXR5IFRPIE9OOworQ1JFQVRFIFBPTElDWSBwMyBPTiBjYXRlZ29y eSBGT1IgQUxMIFRPIHJlZ3Jlc3NfcmxzX2dyb3VwMyBVU0lORyAoY25hbWUgPSAnbm92ZWwn KTsKK0NSRUFURSBWSUVXIHYxIFdJVEggKHNlY3VyaXR5X2ludm9rZXI9dHJ1ZSkgQVMKK1NF TEVDVCAqIEZST00gY2F0ZWdvcnk7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzZWN1 cml0eV9pbnZva2VyX2Z1bmMoKSBSRVRVUk5TIFNFVE9GIGNhdGVnb3J5CisgICAgQVMgJ1NF TEVDVCAqIEZST00gY2F0ZWdvcnknCisgICAgTEFOR1VBR0UgU1FMIFNUQUJMRSBTVFJJQ1Q7 CitDUkVBVEUgVklFVyB2MWYgV0lUSCAoc2VjdXJpdHlfaW52b2tlcj10cnVlKSBBUworU0VM RUNUICogRlJPTSBzZWN1cml0eV9pbnZva2VyX2Z1bmMoKTsKK0dSQU5UIFNFTEVDVCBPTiBj YXRlZ29yeSBUTyByZWdyZXNzX3Jsc19ncm91cDM7CitHUkFOVCBTRUxFQ1QgT04gdjEgVE8g cmVncmVzc19ybHNfZ3JvdXAzOworR1JBTlQgU0VMRUNUIE9OIHYxZiBUTyByZWdyZXNzX3Js c19ncm91cDM7CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2dyYWNl OworU0VMRUNUICogRlJPTSBjYXRlZ29yeTsKKyBjaWQgfCBjbmFtZSAKKy0tLS0tKy0tLS0t LS0KKyAgMTEgfCBub3ZlbAorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHYxOworIGNpZCB8 IGNuYW1lIAorLS0tLS0rLS0tLS0tLQorICAxMSB8IG5vdmVsCisoMSByb3cpCisKK1NFTEVD VCAqIEZST00gdjFmOworIGNpZCB8IGNuYW1lIAorLS0tLS0rLS0tLS0tLQorICAxMSB8IG5v dmVsCisoMSByb3cpCisKK1JFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKK0NSRUFURSBU QUJMRSBzaXZ0MSAoeCBpbnQpOworQ1JFQVRFIFZJRVcgdjF0IFdJVEggKHNlY3VyaXR5X2lu dm9rZXI9dHJ1ZSkgQVMKK1NFTEVDVCAqIEZST00gc2l2dDE7CitBTFRFUiBWSUVXIHYxdCBP V05FUiBUTyByZWdyZXNzX3Jsc19ncm91cDE7CitHUkFOVCBJTlNFUlQsIFVQREFURSwgREVM RVRFIE9OIHNpdnQxIFRPIHJlZ3Jlc3NfcmxzX2dyb3VwMTsKK0dSQU5UIFNFTEVDVCBPTiBz aXZ0MSBUTyByZWdyZXNzX3Jsc19ncm91cDI7CitHUkFOVCBTRUxFQ1QsIElOU0VSVCwgVVBE QVRFLCBERUxFVEUgT04gdjF0IFRPIHJlZ3Jlc3NfcmxzX2dyb3VwMjsKK1NFVCBTRVNTSU9O IEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CitTRUxFQ1QgKiBGUk9NIHYxdDsK KyB4IAorLS0tCisoMCByb3dzKQorCitJTlNFUlQgSU5UTyB2MXQgdmFsdWVzICgxKTsKK0VS Uk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIHNpdnQxCitVUERBVEUgdjF0IFNF VCB4ID0gMjsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIHNpdnQxCitE RUxFVEUgRlJPTSB2MXQ7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSBz aXZ0MQogLS0KIC0tIFRhYmxlIGluaGVyaXRhbmNlIGFuZCBSTFMgcG9saWN5CiAtLQpAQCAt Mzk4NywxMSArNDA0NSwxNiBAQCBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiAtLQog UkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwogRFJPUCBTQ0hFTUEgcmVncmVzc19ybHNf c2NoZW1hIENBU0NBREU7Ci1OT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDI5IG90aGVyIG9i amVjdHMKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gMzQgb3RoZXIgb2JqZWN0cwogREVU QUlMOiAgZHJvcCBjYXNjYWRlcyB0byBmdW5jdGlvbiBmX2xlYWsodGV4dCkKIGRyb3AgY2Fz Y2FkZXMgdG8gdGFibGUgdWFjY291bnQKIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgY2F0ZWdv cnkKIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgZG9jdW1lbnQKK2Ryb3AgY2FzY2FkZXMgdG8g dmlldyB2MQorZHJvcCBjYXNjYWRlcyB0byBmdW5jdGlvbiBzZWN1cml0eV9pbnZva2VyX2Z1 bmMoKQorZHJvcCBjYXNjYWRlcyB0byB2aWV3IHYxZgorZHJvcCBjYXNjYWRlcyB0byB0YWJs ZSBzaXZ0MQorZHJvcCBjYXNjYWRlcyB0byB2aWV3IHYxdAogZHJvcCBjYXNjYWRlcyB0byB0 YWJsZSBwYXJ0X2RvY3VtZW50CiBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIGRlcGVuZGVudAog ZHJvcCBjYXNjYWRlcyB0byB0YWJsZSByZWMxCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9jcmVhdGVfdmlldy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVf dmlldy5zcWwKaW5kZXggODJkZjRiN2NhYy4uMjkwYmY1OWMzMiAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX3ZpZXcuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2NyZWF0ZV92aWV3LnNxbApAQCAtMjE0LDEzICsyMTQsMjMgQEAgQ1JFQVRFIFZJ RVcgbXlzZWN2aWV3MyBXSVRIIChzZWN1cml0eV9iYXJyaWVyPWZhbHNlKQogICAgICAgIEFT IFNFTEVDVCAqIEZST00gdGJsMSBXSEVSRSBhIDwgMDsKIENSRUFURSBWSUVXIG15c2Vjdmll dzQgV0lUSCAoc2VjdXJpdHlfYmFycmllcikKICAgICAgICBBUyBTRUxFQ1QgKiBGUk9NIHRi bDEgV0hFUkUgYSA8PiAwOwotQ1JFQVRFIFZJRVcgbXlzZWN2aWV3NSBXSVRIIChzZWN1cml0 eV9iYXJyaWVyPTEwMCkJLS0gRXJyb3IKK0NSRUFURSBWSUVXIG15c2VjdmlldzUgV0lUSCAo c2VjdXJpdHlfaW52b2tlcj10cnVlKQorICAgICAgIEFTIFNFTEVDVCAqIEZST00gdGJsMSBX SEVSRSBhID0gMTAwOworQ1JFQVRFIFZJRVcgbXlzZWN2aWV3NiBXSVRIIChzZWN1cml0eV9p bnZva2VyPWZhbHNlKQogICAgICAgIEFTIFNFTEVDVCAqIEZST00gdGJsMSBXSEVSRSBhID4g MTAwOwotQ1JFQVRFIFZJRVcgbXlzZWN2aWV3NiBXSVRIIChpbnZhbGlkX29wdGlvbikJCS0t IEVycm9yCitDUkVBVEUgVklFVyBteXNlY3ZpZXc3IFdJVEggKHNlY3VyaXR5X2ludm9rZXIp CisgICAgICAgQVMgU0VMRUNUICogRlJPTSB0YmwxIFdIRVJFIGEgPCAxMDA7CitDUkVBVEUg VklFVyBteXNlY3ZpZXc4IFdJVEggKHNlY3VyaXR5X2JhcnJpZXI9MTAwKQktLSBFcnJvcgor ICAgICAgIEFTIFNFTEVDVCAqIEZST00gdGJsMSBXSEVSRSBhIDw+IDEwMDsKK0NSRUFURSBW SUVXIG15c2VjdmlldzkgV0lUSCAoc2VjdXJpdHlfaW52b2tlcj0xMDApCS0tIEVycm9yCisg ICAgICAgQVMgU0VMRUNUICogRlJPTSB0YmwxIFdIRVJFIGEgPSAxMDA7CitDUkVBVEUgVklF VyBteXNlY3ZpZXcxMCBXSVRIIChpbnZhbGlkX29wdGlvbikJCS0tIEVycm9yCiAgICAgICAg QVMgU0VMRUNUICogRlJPTSB0YmwxIFdIRVJFIGEgPCAxMDA7CiBTRUxFQ1QgcmVsbmFtZSwg cmVsa2luZCwgcmVsb3B0aW9ucyBGUk9NIHBnX2NsYXNzCiAgICAgICAgV0hFUkUgb2lkIGlu ICgnbXlzZWN2aWV3MSc6OnJlZ2NsYXNzLCAnbXlzZWN2aWV3Mic6OnJlZ2NsYXNzLAotICAg ICAgICAgICAgICAgICAgICAgJ215c2VjdmlldzMnOjpyZWdjbGFzcywgJ215c2VjdmlldzQn OjpyZWdjbGFzcykKKyAgICAgICAgICAgICAgICAgICAgICdteXNlY3ZpZXczJzo6cmVnY2xh c3MsICdteXNlY3ZpZXc0Jzo6cmVnY2xhc3MsCisgICAgICAgICAgICAgICAgICAgICAnbXlz ZWN2aWV3NSc6OnJlZ2NsYXNzLCAnbXlzZWN2aWV3Nic6OnJlZ2NsYXNzLAorICAgICAgICAg ICAgICAgICAgICAgJ215c2VjdmlldzcnOjpyZWdjbGFzcykKICAgICAgICBPUkRFUiBCWSBy ZWxuYW1lOwogCiBDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIG15c2VjdmlldzEKQEAgLTIzMSw5 ICsyNDEsMTcgQEAgQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBteXNlY3ZpZXczIFdJVEggKHNl Y3VyaXR5X2JhcnJpZXI9dHJ1ZSkKICAgICAgICBBUyBTRUxFQ1QgKiBGUk9NIHRibDEgV0hF UkUgYSA8IDI1NjsKIENSRUFURSBPUiBSRVBMQUNFIFZJRVcgbXlzZWN2aWV3NCBXSVRIIChz ZWN1cml0eV9iYXJyaWVyPWZhbHNlKQogICAgICAgIEFTIFNFTEVDVCAqIEZST00gdGJsMSBX SEVSRSBhIDw+IDI1NjsKK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcgbXlzZWN2aWV3NQorICAg ICAgIEFTIFNFTEVDVCAqIEZST00gdGJsMSBXSEVSRSBhID4gMjU2OworQ1JFQVRFIE9SIFJF UExBQ0UgVklFVyBteXNlY3ZpZXc2IFdJVEggKHNlY3VyaXR5X2ludm9rZXI9dHJ1ZSkKKyAg ICAgICBBUyBTRUxFQ1QgKiBGUk9NIHRibDEgV0hFUkUgYSA8IDI1NjsKK0NSRUFURSBPUiBS RVBMQUNFIFZJRVcgbXlzZWN2aWV3NyBXSVRIIChzZWN1cml0eV9pbnZva2VyPWZhbHNlKQor ICAgICAgIEFTIFNFTEVDVCAqIEZST00gdGJsMSBXSEVSRSBhIDw+IDI1NjsKIFNFTEVDVCBy ZWxuYW1lLCByZWxraW5kLCByZWxvcHRpb25zIEZST00gcGdfY2xhc3MKICAgICAgICBXSEVS RSBvaWQgaW4gKCdteXNlY3ZpZXcxJzo6cmVnY2xhc3MsICdteXNlY3ZpZXcyJzo6cmVnY2xh c3MsCi0gICAgICAgICAgICAgICAgICAgICAnbXlzZWN2aWV3Myc6OnJlZ2NsYXNzLCAnbXlz ZWN2aWV3NCc6OnJlZ2NsYXNzKQorICAgICAgICAgICAgICAgICAgICAgJ215c2VjdmlldzMn OjpyZWdjbGFzcywgJ215c2VjdmlldzQnOjpyZWdjbGFzcywKKyAgICAgICAgICAgICAgICAg ICAgICdteXNlY3ZpZXc1Jzo6cmVnY2xhc3MsICdteXNlY3ZpZXc2Jzo6cmVnY2xhc3MsCisg ICAgICAgICAgICAgICAgICAgICAnbXlzZWN2aWV3Nyc6OnJlZ2NsYXNzKQogICAgICAgIE9S REVSIEJZIHJlbG5hbWU7CiAKIC0tIENoZWNrIHRoYXQgdW5rbm93biBsaXRlcmFscyBhcmUg Y29udmVydGVkIHRvICJ0ZXh0IiBpbiBDUkVBVEUgVklFVywKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Jvd3NlY3VyaXR5LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Jvd3NlY3VyaXR5LnNxbAppbmRleCA0NGRlYjQyYmFkLi5mYzAwNWFmOThmIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9yb3dzZWN1cml0eS5zcWwKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvcm93c2VjdXJpdHkuc3FsCkBAIC0xMSw5ICsxMSwxMSBAQCBEUk9Q IFVTRVIgSUYgRVhJU1RTIHJlZ3Jlc3NfcmxzX2FsaWNlOwogRFJPUCBVU0VSIElGIEVYSVNU UyByZWdyZXNzX3Jsc19ib2I7CiBEUk9QIFVTRVIgSUYgRVhJU1RTIHJlZ3Jlc3NfcmxzX2Nh cm9sOwogRFJPUCBVU0VSIElGIEVYSVNUUyByZWdyZXNzX3Jsc19kYXZlOworRFJPUCBVU0VS IElGIEVYSVNUUyByZWdyZXNzX3Jsc19ncmFjZTsKIERST1AgVVNFUiBJRiBFWElTVFMgcmVn cmVzc19ybHNfZXhlbXB0X3VzZXI7CiBEUk9QIFJPTEUgSUYgRVhJU1RTIHJlZ3Jlc3Nfcmxz X2dyb3VwMTsKIERST1AgUk9MRSBJRiBFWElTVFMgcmVncmVzc19ybHNfZ3JvdXAyOworRFJP UCBST0xFIElGIEVYSVNUUyByZWdyZXNzX3Jsc19ncm91cDM7CiAKIERST1AgU0NIRU1BIElG IEVYSVNUUyByZWdyZXNzX3Jsc19zY2hlbWEgQ0FTQ0FERTsKIApAQCAtMjQsMTIgKzI2LDE1 IEBAIENSRUFURSBVU0VSIHJlZ3Jlc3NfcmxzX2FsaWNlIE5PTE9HSU47CiBDUkVBVEUgVVNF UiByZWdyZXNzX3Jsc19ib2IgTk9MT0dJTjsKIENSRUFURSBVU0VSIHJlZ3Jlc3NfcmxzX2Nh cm9sIE5PTE9HSU47CiBDUkVBVEUgVVNFUiByZWdyZXNzX3Jsc19kYXZlIE5PTE9HSU47CitD UkVBVEUgVVNFUiByZWdyZXNzX3Jsc19ncmFjZSBOT0xPR0lOOwogQ1JFQVRFIFVTRVIgcmVn cmVzc19ybHNfZXhlbXB0X3VzZXIgQllQQVNTUkxTIE5PTE9HSU47CiBDUkVBVEUgUk9MRSBy ZWdyZXNzX3Jsc19ncm91cDEgTk9MT0dJTjsKIENSRUFURSBST0xFIHJlZ3Jlc3NfcmxzX2dy b3VwMiBOT0xPR0lOOworQ1JFQVRFIFJPTEUgcmVncmVzc19ybHNfZ3JvdXAzIE5PTE9HSU47 CiAKIEdSQU5UIHJlZ3Jlc3NfcmxzX2dyb3VwMSBUTyByZWdyZXNzX3Jsc19ib2I7CiBHUkFO VCByZWdyZXNzX3Jsc19ncm91cDIgVE8gcmVncmVzc19ybHNfY2Fyb2w7CitHUkFOVCByZWdy ZXNzX3Jsc19ncm91cDMgVE8gcmVncmVzc19ybHNfZ3JhY2U7CiAKIENSRUFURSBTQ0hFTUEg cmVncmVzc19ybHNfc2NoZW1hOwogR1JBTlQgQUxMIE9OIFNDSEVNQSByZWdyZXNzX3Jsc19z Y2hlbWEgdG8gcHVibGljOwpAQCAtMjI1LDYgKzIzMCw0NSBAQCBTRVQgcm93X3NlY3VyaXR5 IFRPIE9GRjsKIFNFTEVDVCAqIEZST00gZG9jdW1lbnQ7CiBTRUxFQ1QgKiBGUk9NIGNhdGVn b3J5OwogCistLSBUZXN0IHZpZXdzIHdpdGggc2VjdXJpdHlfaW52b2tlciByZWxvcHRpb24g c2V0CitSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CitTRVQgcm93X3NlY3VyaXR5IFRP IE9OOworQ1JFQVRFIFBPTElDWSBwMyBPTiBjYXRlZ29yeSBGT1IgQUxMIFRPIHJlZ3Jlc3Nf cmxzX2dyb3VwMyBVU0lORyAoY25hbWUgPSAnbm92ZWwnKTsKK0NSRUFURSBWSUVXIHYxIFdJ VEggKHNlY3VyaXR5X2ludm9rZXI9dHJ1ZSkgQVMKK1NFTEVDVCAqIEZST00gY2F0ZWdvcnk7 CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzZWN1cml0eV9pbnZva2VyX2Z1bmMoKSBS RVRVUk5TIFNFVE9GIGNhdGVnb3J5CisgICAgQVMgJ1NFTEVDVCAqIEZST00gY2F0ZWdvcnkn CisgICAgTEFOR1VBR0UgU1FMIFNUQUJMRSBTVFJJQ1Q7CitDUkVBVEUgVklFVyB2MWYgV0lU SCAoc2VjdXJpdHlfaW52b2tlcj10cnVlKSBBUworU0VMRUNUICogRlJPTSBzZWN1cml0eV9p bnZva2VyX2Z1bmMoKTsKKworR1JBTlQgU0VMRUNUIE9OIGNhdGVnb3J5IFRPIHJlZ3Jlc3Nf cmxzX2dyb3VwMzsKK0dSQU5UIFNFTEVDVCBPTiB2MSBUTyByZWdyZXNzX3Jsc19ncm91cDM7 CitHUkFOVCBTRUxFQ1QgT04gdjFmIFRPIHJlZ3Jlc3NfcmxzX2dyb3VwMzsKKworU0VUIFNF U1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ncmFjZTsKK1NFTEVDVCAqIEZST00g Y2F0ZWdvcnk7CitTRUxFQ1QgKiBGUk9NIHYxOworU0VMRUNUICogRlJPTSB2MWY7CisKK1JF U0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKKworQ1JFQVRFIFRBQkxFIHNpdnQxICh4IGlu dCk7CitDUkVBVEUgVklFVyB2MXQgV0lUSCAoc2VjdXJpdHlfaW52b2tlcj10cnVlKSBBUwor U0VMRUNUICogRlJPTSBzaXZ0MTsKK0FMVEVSIFZJRVcgdjF0IE9XTkVSIFRPIHJlZ3Jlc3Nf cmxzX2dyb3VwMTsKKworR1JBTlQgSU5TRVJULCBVUERBVEUsIERFTEVURSBPTiBzaXZ0MSBU TyByZWdyZXNzX3Jsc19ncm91cDE7CitHUkFOVCBTRUxFQ1QgT04gc2l2dDEgVE8gcmVncmVz c19ybHNfZ3JvdXAyOworR1JBTlQgU0VMRUNULCBJTlNFUlQsIFVQREFURSwgREVMRVRFIE9O IHYxdCBUTyByZWdyZXNzX3Jsc19ncm91cDI7CisKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJ T04gcmVncmVzc19ybHNfY2Fyb2w7CisKK1NFTEVDVCAqIEZST00gdjF0OworSU5TRVJUIElO VE8gdjF0IHZhbHVlcyAoMSk7CitVUERBVEUgdjF0IFNFVCB4ID0gMjsKK0RFTEVURSBGUk9N IHYxdDsKKwogLS0KIC0tIFRhYmxlIGluaGVyaXRhbmNlIGFuZCBSTFMgcG9saWN5CiAtLQot LSAKMi4zNS4xCgo= --------------scGheX0yclmL0GZ5n5bhgC80 Content-Type: text/x-patch; charset=UTF-8; name="v4-0003-Add-documentation-for-new-security_invoker-relopt.patch" Content-Disposition: attachment; filename*0="v4-0003-Add-documentation-for-new-security_invoker-relopt.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA4ZjA0Yzc4MmI1MjUzMTVhNTUyNGRjNjc3OThmNDM0NjVmN2VmMGMwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpc3RvcGggSGVpc3MgPGNocmlzdG9waC5oZWlz c0BjeWJlcnRlYy5hdD4KRGF0ZTogV2VkLCAyIEZlYiAyMDIyIDE4OjExOjQ3ICswMTAwClN1 YmplY3Q6IFtQQVRDSCB2NCAzLzNdIEFkZCBkb2N1bWVudGF0aW9uIGZvciBuZXcgc2VjdXJp dHlfaW52b2tlciByZWxvcHRpb24KIG9uIHZpZXdzCgpTaWduZWQtb2ZmLWJ5OiBDaHJpc3Rv cGggSGVpc3MgPGNocmlzdG9waC5oZWlzc0BjeWJlcnRlYy5hdD4KLS0tCiBkb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX3ZpZXcuc2dtbCAgfCAxMCArKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV92aWV3LnNnbWwgfCA0MyArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t CiAyIGZpbGVzIGNoYW5nZWQsIDQzIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmlldy5zZ21sIGIvZG9jL3Ny Yy9zZ21sL3JlZi9hbHRlcl92aWV3LnNnbWwKaW5kZXggOThjMzEyYzViZi4uY2I5ZGYxODVl MiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92aWV3LnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92aWV3LnNnbWwKQEAgLTE2MSw2ICsxNjEsMTYgQEAg QUxURVIgVklFVyBbIElGIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT4gUkVTRVQKICAgICAgICAgIDwvcGFyYT4KICAgICAgICAg PC9saXN0aXRlbT4KICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgICA8dmFybGlzdGVu dHJ5PgorICAgICAgICA8dGVybT48bGl0ZXJhbD5zZWN1cml0eV9pbnZva2VyPC9saXRlcmFs PiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pPC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+Cisg ICAgICAgICA8cGFyYT4KKyAgICAgICAgICBDaGFuZ2VzIHRoZSBzZWN1cml0eS1pbnZva2Vy IHByb3BlcnR5IG9mIHRoZSB2aWV3LiAgVGhlIHZhbHVlIG11c3QKKyAgICAgICAgICBiZSBC b29sZWFuIHZhbHVlLCBzdWNoIGFzIDxsaXRlcmFsPnRydWU8L2xpdGVyYWw+CisgICAgICAg ICAgb3IgPGxpdGVyYWw+ZmFsc2U8L2xpdGVyYWw+LgorICAgICAgICAgPC9wYXJhPgorICAg ICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvdmFybGlzdGVudHJ5PgogICAgICAgPC92YXJp YWJsZWxpc3Q+PC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4K ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZpZXcuc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX3ZpZXcuc2dtbAppbmRleCBiZjAzMjg3NTkyLi4zM2Q0ZmRl NmZjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92aWV3LnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmlldy5zZ21sCkBAIC0xMzcsOCArMTM3LDYg QEAgQ1JFQVRFIFZJRVcgWyA8cmVwbGFjZWFibGU+c2NoZW1hPC9yZXBsYWNlYWJsZT4gLiBd IDxyZXBsYWNlYWJsZT52aWV3X25hbWU8L3JlcGwKICAgICAgICAgICBUaGlzIHBhcmFtZXRl ciBtYXkgYmUgZWl0aGVyIDxsaXRlcmFsPmxvY2FsPC9saXRlcmFsPiBvcgogICAgICAgICAg IDxsaXRlcmFsPmNhc2NhZGVkPC9saXRlcmFsPiwgYW5kIGlzIGVxdWl2YWxlbnQgdG8gc3Bl Y2lmeWluZwogICAgICAgICAgIDxsaXRlcmFsPldJVEggWyBDQVNDQURFRCB8IExPQ0FMIF0g Q0hFQ0sgT1BUSU9OPC9saXRlcmFsPiAoc2VlIGJlbG93KS4KLSAgICAgICAgICBUaGlzIG9w dGlvbiBjYW4gYmUgY2hhbmdlZCBvbiBleGlzdGluZyB2aWV3cyB1c2luZyA8bGluawotICAg ICAgICAgIGxpbmtlbmQ9InNxbC1hbHRlcnZpZXciPjxjb21tYW5kPkFMVEVSIFZJRVc8L2Nv bW1hbmQ+PC9saW5rPi4KICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4K ICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTE1Miw3ICsxNTAsMjIgQEAgQ1JFQVRFIFZJ RVcgWyA8cmVwbGFjZWFibGU+c2NoZW1hPC9yZXBsYWNlYWJsZT4gLiBdIDxyZXBsYWNlYWJs ZT52aWV3X25hbWU8L3JlcGwKICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRl bT4KICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KLSAgICAgIDwvdmFyaWFibGVsaXN0PjwvcGFy YT4KKworICAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPnNl Y3VyaXR5X2ludm9rZXI8L2xpdGVyYWw+ICg8dHlwZT5ib29sZWFuPC90eXBlPik8L3Rlcm0+ CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIElmIHRo aXMgb3B0aW9uIGlzIHNldCwgaXQgd2lsbCBjYXVzZSBhbGwgYWNjZXNzIHRvIHRoZSB1bmRl cmx5aW5nCisgICAgICAgICAgdGFibGVzIHRvIGJlIGNoZWNrZWQgYXMgcmVmZXJlbmNlZCBi eSB0aGUgaW52b2tpbmcgdXNlciwgcmF0aGVyIHRoYW4KKyAgICAgICAgICB0aGUgdmlldyBv d25lci4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICA8 L3Zhcmxpc3RlbnRyeT4KKyAgICAgIDwvdmFyaWFibGVsaXN0PgorCisgICAgICBBbGwgb2Yg dGhlIGFib3ZlIG9wdGlvbnMgY2FuIGJlIGNoYW5nZWQgb24gZXhpc3Rpbmcgdmlld3MgdXNp bmcgPGxpbmsKKyAgICAgIGxpbmtlbmQ9InNxbC1hbHRlcnZpZXciPjxjb21tYW5kPkFMVEVS IFZJRVc8L2NvbW1hbmQ+PC9saW5rPi4KKyAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+ CiAgICA8L3Zhcmxpc3RlbnRyeT4KIApAQCAtMjY1LDEzICsyNzgsMjMgQEAgQ1JFQVRFIFZJ RVcgdmlzdGEgQVMgU0VMRUNUIHRleHQgJ0hlbGxvIFdvcmxkJyBBUyBoZWxsbzsKICAgIDwv cGFyYT4KIAogICAgPHBhcmE+Ci0gICAgQWNjZXNzIHRvIHRhYmxlcyByZWZlcmVuY2VkIGlu IHRoZSB2aWV3IGlzIGRldGVybWluZWQgYnkgcGVybWlzc2lvbnMgb2YKLSAgICB0aGUgdmll dyBvd25lci4gIEluIHNvbWUgY2FzZXMsIHRoaXMgY2FuIGJlIHVzZWQgdG8gcHJvdmlkZSBz ZWN1cmUgYnV0Ci0gICAgcmVzdHJpY3RlZCBhY2Nlc3MgdG8gdGhlIHVuZGVybHlpbmcgdGFi bGVzLiAgSG93ZXZlciwgbm90IGFsbCB2aWV3cyBhcmUKLSAgICBzZWN1cmUgYWdhaW5zdCB0 YW1wZXJpbmc7IHNlZSA8eHJlZiBsaW5rZW5kPSJydWxlcy1wcml2aWxlZ2VzIi8+IGZvcgot ICAgIGRldGFpbHMuICBGdW5jdGlvbnMgY2FsbGVkIGluIHRoZSB2aWV3IGFyZSB0cmVhdGVk IHRoZSBzYW1lIGFzIGlmIHRoZXkgaGFkCi0gICAgYmVlbiBjYWxsZWQgZGlyZWN0bHkgZnJv bSB0aGUgcXVlcnkgdXNpbmcgdGhlIHZpZXcuICBUaGVyZWZvcmUgdGhlIHVzZXIgb2YKLSAg ICBhIHZpZXcgbXVzdCBoYXZlIHBlcm1pc3Npb25zIHRvIGNhbGwgYWxsIGZ1bmN0aW9ucyB1 c2VkIGJ5IHRoZSB2aWV3LgorICAgIEJ5IGRlZmF1bHQsIGFjY2VzcyB0byB0YWJsZXMgcmVm ZXJlbmNlZCBpbiB0aGUgdmlldyBpcyBkZXRlcm1pbmVkIGJ5CisgICAgcGVybWlzc2lvbnMg b2YgdGhlIHZpZXcgb3duZXIuICBJbiBzb21lIGNhc2VzLCB0aGlzIGNhbiBiZSB1c2VkIHRv IHByb3ZpZGUKKyAgICBzZWN1cmUgYnV0IHJlc3RyaWN0ZWQgYWNjZXNzIHRvIHRoZSB1bmRl cmx5aW5nIHRhYmxlcy4gIEhvd2V2ZXIsIG5vdCBhbGwKKyAgICB2aWV3cyBhcmUgc2VjdXJl IGFnYWluc3QgdGFtcGVyaW5nOyBzZWUgPHhyZWYgbGlua2VuZD0icnVsZXMtcHJpdmlsZWdl cyIvPgorICAgIGZvciBkZXRhaWxzLiAgRnVuY3Rpb25zIGNhbGxlZCBpbiB0aGUgdmlldyBh cmUgdHJlYXRlZCB0aGUgc2FtZSBhcyBpZiB0aGV5CisgICAgaGFkIGJlZW4gY2FsbGVkIGRp cmVjdGx5IGZyb20gdGhlIHF1ZXJ5IHVzaW5nIHRoZSB2aWV3LiAgVGhlcmVmb3JlIHRoZSB1 c2VyCisgICAgb2YgYSB2aWV3IG11c3QgaGF2ZSBwZXJtaXNzaW9ucyB0byBjYWxsIGFsbCBm dW5jdGlvbnMgdXNlZCBieSB0aGUgdmlldy4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+Cisg ICAgSWYgdGhlIDxmaXJzdHRlcm0+c2VjdXJpdHlfaW52b2tlcjwvZmlyc3R0ZXJtPiBvcHRp b24gaXMgc2V0IG9uIHRoZSB2aWV3LAorICAgIGFjY2VzcyB0byB0YWJsZXMgaXMgZGV0ZXJt aW5lZCBieSBwZXJtaXNzaW9ucyBvZiB0aGUgaW52b2tpbmcgdXNlciwgcmF0aGVyCisgICAg dGhhbiB0aGUgdmlldyBvd25lci4gIFRoaXMgY2FuIGJlIHVzZWQgdG8gcHJvdmlkZSBzdHJp Y3RlciBwZXJtaXNzaW9uCisgICAgY2hlY2tpbmcgdG8gdGhlIHVuZGVybHlpbmcgdGFibGVz IHRoYW4gYnkgZGVmYXVsdC4gIFBvbGljaWVzIGRlZmluZWQgb24gdGhlCisgICAgdW5kZXJs eWluZyB0YWJsZXMgYXJlIHRoZW4gYWxzbyBjaGVja2VkIGFnYWluc3QgdGhlIGludm9raW5n IHVzZXIgd2hlbgorICAgIDxsaW5rIGxpbmtlbmQ9ImRkbC1yb3dzZWN1cml0eSI+cm93LWxl dmVsIHNlY3VyaXR5PC9saW5rPiBpcyBlbmFibGVkIG9uCisgICAgdGhlc2UgdGFibGVzLgog ICAgPC9wYXJhPgogCiAgICA8cGFyYT4KLS0gCjIuMzUuMQoK --------------scGheX0yclmL0GZ5n5bhgC80--