From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Daniel Hackney Newsgroups: gmane.emacs.devel Subject: Lexical byte-compilation warnings cleanup Date: Mon, 19 Aug 2013 19:33:00 -0400 Message-ID: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a11c1b6d6a0cd2504e4555da8 X-Trace: ger.gmane.org 1376955207 7204 80.91.229.3 (19 Aug 2013 23:33:27 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 19 Aug 2013 23:33:27 +0000 (UTC) To: Emacs development discussions Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Aug 20 01:33:31 2013 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1VBYx0-0003K2-7G for ged-emacs-devel@m.gmane.org; Tue, 20 Aug 2013 01:33:30 +0200 Original-Received: from localhost ([::1]:45271 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VBYwz-0004zT-Rh for ged-emacs-devel@m.gmane.org; Mon, 19 Aug 2013 19:33:29 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:41938) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VBYwu-0004zB-5C for emacs-devel@gnu.org; Mon, 19 Aug 2013 19:33:26 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VBYws-0002Rg-U0 for emacs-devel@gnu.org; Mon, 19 Aug 2013 19:33:24 -0400 Original-Received: from mail-wi0-x233.google.com ([2a00:1450:400c:c05::233]:61224) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VBYws-0002RI-Ae for emacs-devel@gnu.org; Mon, 19 Aug 2013 19:33:22 -0400 Original-Received: by mail-wi0-f179.google.com with SMTP id hr7so3559346wib.0 for ; Mon, 19 Aug 2013 16:33:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=haxney.org; s=google; h=mime-version:from:date:message-id:subject:to:content-type; bh=KTOEZR+CKaTcbY7nYLicYnJoWztmZ9ny5HrAgEXOfbc=; b=mVPW9jqmox+LkFxoEw4Atx5Y1Gi+t5a0LPU3AbyhuS0WSYZQnAbrm35dz5TnXoXQGv 0CuBJZ1mJADqnr58tY2UE3qiodHNz7mG4c8O08b205wefTVkpgTrnR1Nri8V5tWlX2xF d1XiBGyrcMyLdNyD74zgqe4f1hkfrmc9OJ3LY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-gm-message-state:mime-version:from:date:message-id:subject:to :content-type; bh=KTOEZR+CKaTcbY7nYLicYnJoWztmZ9ny5HrAgEXOfbc=; b=oul8En5XzKY/zy1DorWQb3YXlgS9UDhy/0KeqOkA7e/FxmH7jW9cJ6kfrwNnCrVCdu TAlfNlDWjBJiRfUvCGjTpgoPiogL+Qr43CVRrAbDxMhYWVi5omrUfn0gyNsRBQP00lq6 jVh/xILqShLib2/929Yfmb5Ncqaozkk4ZGUnp0TuFoIjeFpsxDHKMzch97I5clTaulpW uthXXw3jJ1NWD6Dm35V5v6KMXC3PjfYN3wHH5+szS/9DQ4P92hKT3nEdNsTplN8rGEdC nGaS9Z9in7r34hk7QwTWxVzkDS/R/tBz+flr7+iFD9MpKP7XGQFd8SUL9YB8y6fRcCrI tDPA== X-Gm-Message-State: ALoCoQmeEMSpJHN+NqiB+Br/RoNDcERqFtyTgrff/Icuoeu2r4BOCD4cgMcE8/eeDNyOOqNY/tTk X-Received: by 10.194.220.103 with SMTP id pv7mr10766951wjc.14.1376955201010; Mon, 19 Aug 2013 16:33:21 -0700 (PDT) Original-Received: by 10.194.164.131 with HTTP; Mon, 19 Aug 2013 16:33:00 -0700 (PDT) X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:400c:c05::233 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:162898 Archived-At: --001a11c1b6d6a0cd2504e4555da8 Content-Type: text/plain; charset=UTF-8 I'm taking the advice Stafan gave in [1] and squashing lexical-scoping bugs identified by the byte compiler. I've attached a patch which starts making a dent in the warnings. There were some things which were relatively easy, such as adding a leading underscore to `&rest _ignore', but there were a lot what seem to be false positives. I've taken some notes on what I've found. - `condition-case': The byte-compiler doesn't recognize the handler forms and so gives warnings about unused lexical arguments. Consider the following code (adapted from `widget-sexp-validate'): #+BEGIN_SRC emacs-lisp ;; -*- lexical-binding: t; -*- (defun foo () (let (err) (condition-case data (skip-syntax-forward "\\s-") (end-of-file (setq err "Unbalanced sexp")) ;; 1 (error (setq err (error-message-string data)))) ;; 2 err)) #+END_SRC Byte-compiling that with `byte-compile-force-lexical-warnings' set to `t' warns of "Unused lexical argument `data'". Switching lines 1 and 2 gives the warning "the function `end-of-file' is not known to be defined." Removing line 1 makes it compile without errors. It would seem that the byte-compiler is not treating `condition-case' as specially as it should. - I'm seeing a lot of "Argument foo is not a lexical variable", such as in vc/ediff-diff.el:532:56. What does this mean and is this something I should "fix"? In some cases, this is because `foo' is defined with `defvar' but also used as a function argument. What should be done in this case? For example, here is the definition of `emerge-remote-exit': #+BEGIN_SRC emacs-lisp (defun emerge-remote-exit (file-out emerge-exit-func) (emerge-write-and-delete file-out) (kill-buffer emerge-merge-buffer) (funcall emerge-exit-func (if emerge-prefix-argument 1 0))) #+END_SRC Note that `emerge-exit-func' is a `defvar'ed variable. Should it be replaced with something like this: #+BEGIN_SRC emacs-lisp (defun emerge-remote-exit (file-out exit-func) (let ((emerge-exit-func exit-func)) (emerge-write-and-delete file-out) (kill-buffer emerge-merge-buffer) (funcall emerge-exit-func (if emerge-prefix-argument 1 0)))) #+END_SRC - In `emerge-revisions-with-ancestor', the variable `cmd' is let-bound, but does not appear to be used. Could it be safely removed? - Similarly, `cvs-fileinfo<' binds variables `subtypea' and `subtypeb' but never uses them. Can they be removed? - Superfluously-bound variables: In, for example, `ange-ftp-file-attributes', the variables `host', `user', and `name' are bound but never used. Should these be prefixed with an underscore (to make the byte compiler shut up) or removed altogether (since they aren't actually used)? It seems like they should just be removed, but I don't want to trample on something needed. [1] http://article.gmane.org/gmane.emacs.devel/162466 -- Daniel Hackney --001a11c1b6d6a0cd2504e4555da8 Content-Type: application/octet-stream; name="byte-silence.patch" Content-Disposition: attachment; filename="byte-silence.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hkkbjkcx0 ZGlmZiAtLWdpdCBhL2xpc3AvQ2hhbmdlTG9nIGIvbGlzcC9DaGFuZ2VMb2cKaW5kZXggOGM5YTIx ZC4uNWI2NjY1ZSAxMDA2NDQKLS0tIGEvbGlzcC9DaGFuZ2VMb2cKKysrIGIvbGlzcC9DaGFuZ2VM b2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMy0wOC0xOSBEYW5pZWwgSGFja25leSAgPGRhbkBoYXhu ZXkub3JnPgorCisJKiBkaXJlZC14LmVsOgorCSogbmV0L2FuZ2UtZnRwLmVsOgorCSogbmV0L2Jy b3dzZS11cmwuZWw6CisJKiBuZXQvZGJ1cy5lbDoKKwkqIG5ldC9ldWRjLmVsOgorCSogbmV0L2V1 ZGNiLWxkYXAuZWw6CisJKiBuZXQvZXd3LmVsOgorCSogbmV0L2ltYXAuZWw6CisJKiBwcmludGlu Zy5lbDoKKwkqIHZjL2VkaWZmLWRpZmYuZWw6CisJKiB2Yy9lZGlmZi1pbml0LmVsOgorCSogdmMv ZWRpZmYtbWVyZy5lbDoKKwkqIHZjL2VkaWZmLW11bHQuZWw6CisJKiB2Yy9lZGlmZi11dGlsLmVs OgorCSogdmMvZWRpZmYtd2luZC5lbDoKKwkqIHZjL2VkaWZmLmVsOgorCSogdmMvZW1lcmdlLmVs OgorCSogdmMvcGN2cy5lbDoKKwkqIHZjL3ZjLWFubm90YXRlLmVsOiBQcmVmaXggdW51c2VkIGFy Z3VtZW50cyB3aXRoIGBfJyB0byBzaWxlbmNlCisJYnl0ZSBjb21waWxlci4gUmVtb3ZlIHNvbWUg dW51c2VkIGxldC1ib3VuZCB2YXJpYWJsZXMuCisKKwogMjAxMy0wOC0xNyAgTWljaGFlbCBBbGJp bnVzICA8bWljaGFlbC5hbGJpbnVzQGdteC5kZT4KIAogCSogbmV0L3RyYW1wLmVsOgpkaWZmIC0t Z2l0IGEvbGlzcC9kaXJlZC14LmVsIGIvbGlzcC9kaXJlZC14LmVsCmluZGV4IDBjNDMyNTkuLjM1 MjdhM2YgMTAwNjQ0Ci0tLSBhL2xpc3AvZGlyZWQteC5lbAorKysgYi9saXNwL2RpcmVkLXguZWwK QEAgLTExODUsNyArMTE4NSw3IEBAIHJlc3VsdHMgaW4KICAgICAgICAgICAoc2V0cSBjb3VudCAo MSsgY291bnQpCiAgICAgICAgICAgICAgICAgc3RhcnQgKDErIHN0YXJ0KSkpCiAgICAgICAgIDs7 IC4uLiBhbmQgcHJlcGVuZCBhICIuLi8iIGZvciBlYWNoIHNsYXNoIGZvdW5kOgotICAgICAgICAo ZG90aW1lcyAoX24gY291bnQpCisgICAgICAgIChkb3RpbWVzIChuIGNvdW50KQogICAgICAgICAg IChzZXRxIG5hbWUxIChjb25jYXQgIi4uLyIgbmFtZTEpKSkpKQogICAgIChtYWtlLXN5bWJvbGlj LWxpbmsKICAgICAgKGRpcmVjdG9yeS1maWxlLW5hbWUgbmFtZTEpICAgICAgICA7IG11c3Qgbm90 IGxpbmsgdG8gZm9vLwpkaWZmIC0tZ2l0IGEvbGlzcC9uZXQvYW5nZS1mdHAuZWwgYi9saXNwL25l dC9hbmdlLWZ0cC5lbAppbmRleCAxNzdmZGFjLi42N2M3NGY4IDEwMDY0NAotLS0gYS9saXNwL25l dC9hbmdlLWZ0cC5lbAorKysgYi9saXNwL25ldC9hbmdlLWZ0cC5lbApAQCAtMzczMyw3ICszNzMz LDcgQEAgc28gcmV0dXJuIHRoZSBzaXplIG9uIHRoZSByZW1vdGUgaG9zdCBleGFjdGx5LiBTZWUg UkZDIDM2NTkuIgogOzsgbmV4dCBwYXJ0IG9mIGNvcHlpbmcgcm91dGluZS4KIChkZWZ1biBhbmdl LWZ0cC1jZjEgKHJlc3VsdCBsaW5lCiAJCQkgICAgZmlsZW5hbWUgbmV3bmFtZSBiaW5hcnkgbXNn Ci0JCQkgICAgZi1wYXJzZWQgZi1ob3N0IGYtdXNlciBmLW5hbWUgZi1hYmJyCisJCQkgICAgZi1w YXJzZWQgZi1ob3N0IGYtdXNlciBfZi1uYW1lIGYtYWJicgogCQkJICAgIHQtcGFyc2VkIHQtaG9z dCB0LXVzZXIgdC1uYW1lIHQtYWJicgogCQkJICAgIHRlbXAxIHRlbXAyIGNvbnQgbm93YWl0KQog ICAoaWYgbGluZQpAQCAtMzgzNSw3ICszODM1LDcgQEAgc28gcmV0dXJuIHRoZSBzaXplIG9uIHRo ZSByZW1vdGUgaG9zdCBleGFjdGx5LiBTZWUgUkZDIDM2NTkuIgogCiAoZGVmdW4gYW5nZS1mdHAt Y29weS1maWxlIChmaWxlbmFtZSBuZXduYW1lICZvcHRpb25hbCBvay1pZi1hbHJlYWR5LWV4aXN0 cwogCQkJCSAgICBrZWVwLWRhdGUgcHJlc2VydmUtdWlkLWdpZAotCQkJCSAgICBwcmVzZXJ2ZS1z ZWxpbnV4LWNvbnRleHQpCisJCQkJICAgIF9wcmVzZXJ2ZS1zZWxpbnV4LWNvbnRleHQpCiAgIChp bnRlcmFjdGl2ZSAiZkNvcHkgZmlsZTogXG5GQ29weSAlcyB0byBmaWxlOiBcbnAiKQogICAoYW5n ZS1mdHAtY29weS1maWxlLWludGVybmFsIGZpbGVuYW1lCiAJCQkgICAgICAgbmV3bmFtZQpAQCAt NDIwMCw3ICs0MjAwLDcgQEAgZGlyZWN0b3J5LCBzbyB0aGF0IEVtYWNzIHdpbGwga25vdyBpdHMg Y3VycmVudCBjb250ZW50cy4iCiAJKHdoaWxlIChhbmQgdHJ5ZmlsZXMgKG5vdCBjb3B5KSkKIAkg IChjYXRjaCAnZnRwLWVycm9yCiAJICAgIChsZXQgKChhbmdlLWZ0cC13YWl0aW5nLWZsYWcgdCkp Ci0JICAgICAgKGNvbmRpdGlvbi1jYXNlIGVycm9yCisJICAgICAgKGNvbmRpdGlvbi1jYXNlIF9l cnJvcgogCQkgIChzZXRxIGNvcHkgKGFuZ2UtZnRwLWZpbGUtbG9jYWwtY29weSAoY2FyIHRyeWZp bGVzKSkpCiAJCShmdHAtZXJyb3IgbmlsKSkpKQogCSAgKHNldHEgdHJ5ZmlsZXMgKGNkciB0cnlm aWxlcykpKQpAQCAtNDIxNCw3ICs0MjE0LDcgQEAgZGlyZWN0b3J5LCBzbyB0aGF0IEVtYWNzIHdp bGwga25vdyBpdHMgY3VycmVudCBjb250ZW50cy4iCiAgICAgKGFuZ2UtZnRwLXJlYWwtbG9hZCBm aWxlIG5vZXJyb3Igbm9tZXNzYWdlIG5vc3VmZml4KSkpCiAKIDs7IENhbGN1bGF0ZSBkZWZhdWx0 LXVuaGFuZGxlZC1kaXJlY3RvcnkgZm9yIGEgZ2l2ZW4gYW5nZS1mdHAgYnVmZmVyLgotKGRlZnVu IGFuZ2UtZnRwLXVuaGFuZGxlZC1maWxlLW5hbWUtZGlyZWN0b3J5IChmaWxlbmFtZSkKKyhkZWZ1 biBhbmdlLWZ0cC11bmhhbmRsZWQtZmlsZS1uYW1lLWRpcmVjdG9yeSAoX2ZpbGVuYW1lKQogICBu aWwpCiAKIAwKQEAgLTQ2MDUsNyArNDYwNSw2IEBAIE5FV05BTUUgc2hvdWxkIGJlIHRoZSBuYW1l IHRvIGdpdmUgdGhlIG5ldyBjb21wcmVzc2VkIG9yIHVuY29tcHJlc3NlZCBmaWxlLiIpCiAoZGVm dW4gYW5nZS1mdHAtc2hlbGwtY29tbWFuZCAoY29tbWFuZCAmb3B0aW9uYWwgb3V0cHV0LWJ1ZmZl ciBlcnJvci1idWZmZXIpCiAgIChsZXQqICgocGFyc2VkIChhbmdlLWZ0cC1mdHAtbmFtZSBkZWZh dWx0LWRpcmVjdG9yeSkpCiAJIChob3N0IChudGggMCBwYXJzZWQpKQotCSAodXNlciAobnRoIDEg cGFyc2VkKSkKIAkgKG5hbWUgKG50aCAyIHBhcnNlZCkpKQogICAgIChpZiAobm90IHBhcnNlZCkK IAkoYW5nZS1mdHAtcmVhbC1zaGVsbC1jb21tYW5kIGNvbW1hbmQgb3V0cHV0LWJ1ZmZlciBlcnJv ci1idWZmZXIpCkBAIC01MTc2LDcgKzUxNzUsNyBAQCBPdGhlciBvcmRlcnMgb2YgJCBhbmQgXyBz ZWVtIHRvIGFsbCB3b3JrIGp1c3QgZmluZS4iKQogCQkgICAgOzsgdmVyc2lvbnMgbGVmdC4gSWYg bm90LCB0aGVuIGRlbGV0ZSB0aGUKIAkJICAgIDs7IHJvb3QgZW50cnkuCiAJCSAgICAobWFwaGFz aAotCQkgICAgIChsYW1iZGEgKGtleSB2YWwpCisJCSAgICAgKGxhbWJkYSAoa2V5IF92YWwpCiAJ CSAgICAgICAoYW5kIChzdHJpbmctbWF0Y2ggcmVnZXhwIGtleSkKIAkJCSAgICAoc2V0cSB2ZXJz aW9ucyB0KSkpCiAJCSAgICAgZmlsZXMpCkBAIC01MzU4LDcgKzUzNTcsNyBAQCBPdGhlciBvcmRl cnMgb2YgJCBhbmQgXyBzZWVtIHRvIGFsbCB3b3JrIGp1c3QgZmluZS4iKQogOzsgY29tcHJlc3Nl ZCBmaWxlcy4gSW5zdGVhZCwgd2UgdHVybiAiRklMRS5UWVBFIiBpbnRvCiA7OyAiRklMRS5UWVBF LVoiLiBIb3BlIHRoYXQgdGhpcyBpcyBhIHJlYXNvbmFibGUgdGhpbmcgdG8gZG8uCiAKLShkZWZ1 biBhbmdlLWZ0cC12bXMtbWFrZS1jb21wcmVzc2VkLWZpbGVuYW1lIChuYW1lICZvcHRpb25hbCBy ZXZlcnNlKQorKGRlZnVuIGFuZ2UtZnRwLXZtcy1tYWtlLWNvbXByZXNzZWQtZmlsZW5hbWUgKG5h bWUgJm9wdGlvbmFsIF9yZXZlcnNlKQogICAoY29uZAogICAgKChzdHJpbmctbWF0Y2ggIi1aO1sw LTldK1xcJyIgbmFtZSkKICAgICAobGlzdCBuaWwgKHN1YnN0cmluZyBuYW1lIDAgKG1hdGNoLWJl Z2lubmluZyAwKSkpKQpAQCAtNTM5OSw3ICs1Mzk4LDcgQEAgT3RoZXIgb3JkZXJzIG9mICQgYW5k IF8gc2VlbSB0byBhbGwgd29yayBqdXN0IGZpbmUuIikKIDs7CSAgKGNvbnMgJyh2bXMgLiBhbmdl LWZ0cC1kaXJlZC12bXMtbHMtdHJpbSkKIDs7CQlhbmdlLWZ0cC1kaXJlZC1scy10cmltLWFsaXN0 KSkpCiAKLShkZWZ1biBhbmdlLWZ0cC12bXMtc2Fucy12ZXJzaW9uIChuYW1lICZyZXN0IGFyZ3Mp CisoZGVmdW4gYW5nZS1mdHAtdm1zLXNhbnMtdmVyc2lvbiAobmFtZSAmcmVzdCBfYXJncykKICAg KHNhdmUtbWF0Y2gtZGF0YQogICAgIChpZiAoc3RyaW5nLW1hdGNoICI7WzAtOV0rXFwnIiBuYW1l KQogCShzdWJzdHJpbmcgbmFtZSAwIChtYXRjaC1iZWdpbm5pbmcgMCkpCkBAIC01OTIwLDcgKzU5 MTksNyBAQCBPdGhlciBvcmRlcnMgb2YgJCBhbmQgXyBzZWVtIHRvIGFsbCB3b3JrIGp1c3QgZmlu ZS4iKQogOzsJICAoY29ucyAnKGNtcyAuIGFuZ2UtZnRwLWRpcmVkLWNtcy1tb3ZlLXRvLWVuZC1v Zi1maWxlbmFtZSkKIDs7CQlhbmdlLWZ0cC1kaXJlZC1tb3ZlLXRvLWVuZC1vZi1maWxlbmFtZS1h bGlzdCkpKQogCi0oZGVmdW4gYW5nZS1mdHAtY21zLW1ha2UtY29tcHJlc3NlZC1maWxlbmFtZSAo bmFtZSAmb3B0aW9uYWwgcmV2ZXJzZSkKKyhkZWZ1biBhbmdlLWZ0cC1jbXMtbWFrZS1jb21wcmVz c2VkLWZpbGVuYW1lIChuYW1lICZvcHRpb25hbCBfcmV2ZXJzZSkKICAgKGlmIChzdHJpbmctbWF0 Y2ggIi1aXFwnIiBuYW1lKQogICAgICAgKGxpc3QgbmlsIChzdWJzdHJpbmcgbmFtZSAwIC0yKSkK ICAgICAobGlzdCB0IChjb25jYXQgbmFtZSAiLVoiKSkpKQpkaWZmIC0tZ2l0IGEvbGlzcC9uZXQv YnJvd3NlLXVybC5lbCBiL2xpc3AvbmV0L2Jyb3dzZS11cmwuZWwKaW5kZXggNzAxNzNkYi4uZmY2 NTRmMiAxMDA2NDQKLS0tIGEvbGlzcC9uZXQvYnJvd3NlLXVybC5lbAorKysgYi9saXNwL25ldC9i cm93c2UtdXJsLmVsCkBAIC04NjgsNyArODY4LDcgQEAgdG8gdXNlLiIKIChkZWZ2YXIgZG9zLXdp bmRvd3MtdmVyc2lvbikKIChkZWNsYXJlLWZ1bmN0aW9uIHczMi1zaGVsbC1leGVjdXRlICJ3MzJm bnMuYyIpICAgIDs7IERlZmluZWQgaW4gQy4KIAotKGRlZnVuIGJyb3dzZS11cmwtZGVmYXVsdC13 aW5kb3dzLWJyb3dzZXIgKHVybCAmb3B0aW9uYWwgbmV3LXdpbmRvdykKKyhkZWZ1biBicm93c2Ut dXJsLWRlZmF1bHQtd2luZG93cy1icm93c2VyICh1cmwgJm9wdGlvbmFsIF9uZXctd2luZG93KQog ICAoaW50ZXJhY3RpdmUgKGJyb3dzZS11cmwtaW50ZXJhY3RpdmUtYXJnICJVUkw6ICIpKQogICAo Y29uZCAoKGVxIHN5c3RlbS10eXBlICdtcy1kb3MpCiAJIChpZiBkb3Mtd2luZG93cy12ZXJzaW9u CkBAIC04NzgsNyArODc4LDcgQEAgdG8gdXNlLiIKIAkgKGNhbGwtcHJvY2VzcyAiY3lnc3RhcnQi IG5pbCBuaWwgbmlsIHVybCkpCiAJKHQgKHczMi1zaGVsbC1leGVjdXRlICJvcGVuIiB1cmwpKSkp CiAKLShkZWZ1biBicm93c2UtdXJsLWRlZmF1bHQtbWFjb3N4LWJyb3dzZXIgKHVybCAmb3B0aW9u YWwgbmV3LXdpbmRvdykKKyhkZWZ1biBicm93c2UtdXJsLWRlZmF1bHQtbWFjb3N4LWJyb3dzZXIg KHVybCAmb3B0aW9uYWwgX25ldy13aW5kb3cpCiAgIChpbnRlcmFjdGl2ZSAoYnJvd3NlLXVybC1p bnRlcmFjdGl2ZS1hcmcgIlVSTDogIikpCiAgIChzdGFydC1wcm9jZXNzIChjb25jYXQgIm9wZW4g IiB1cmwpIG5pbCAib3BlbiIgdXJsKSkKIApAQCAtOTMzLDcgKzkzMyw3IEBAIHVzZWQgaW5zdGVh ZCBvZiBgYnJvd3NlLXVybC1uZXctd2luZG93LWZsYWcnLiIKICAgICAoKGV4ZWN1dGFibGUtZmlu ZCBicm93c2UtdXJsLXh0ZXJtLXByb2dyYW0pICdicm93c2UtdXJsLXRleHQteHRlcm0pCiAgICAg KChsb2NhdGUtbGlicmFyeSAidzMiKSAnYnJvd3NlLXVybC13MykKICAgICAodAotICAgICAobGFt YmRhICgmcmVzdCBpZ25vcmUpIChlcnJvciAiTm8gdXNhYmxlIGJyb3dzZXIgZm91bmQiKSkpKQor ICAgICAobGFtYmRhICgmcmVzdCBfaWdub3JlKSAoZXJyb3IgIk5vIHVzYWJsZSBicm93c2VyIGZv dW5kIikpKSkKICAgIHVybCBhcmdzKSkKIAogKGRlZnVuIGJyb3dzZS11cmwtY2FuLXVzZS14ZGct b3BlbiAoKQpAQCAtMTE2Myw3ICsxMTYzLDcgQEAgVVJMIGluIGEgbmV3IHdpbmRvdy4iCiAJICAg ICAgIChhcHBlbmQgYnJvd3NlLXVybC1maXJlZm94LXN0YXJ0dXAtYXJndW1lbnRzIChsaXN0IHVy bCkpKSkpKQogCiA7OzsjIyNhdXRvbG9hZAotKGRlZnVuIGJyb3dzZS11cmwtY2hyb21pdW0gKHVy bCAmb3B0aW9uYWwgbmV3LXdpbmRvdykKKyhkZWZ1biBicm93c2UtdXJsLWNocm9taXVtICh1cmwg Jm9wdGlvbmFsIF9uZXctd2luZG93KQogICAiQXNrIHRoZSBDaHJvbWl1bSBXV1cgYnJvd3NlciB0 byBsb2FkIFVSTC4KIERlZmF1bHQgdG8gdGhlIFVSTCBhcm91bmQgb3IgYmVmb3JlIHBvaW50LiAg VGhlIHN0cmluZ3MgaW4KIHZhcmlhYmxlIGBicm93c2UtdXJsLWNocm9taXVtLWFyZ3VtZW50cycg YXJlIGFsc28gcGFzc2VkIHRvCkBAIC0xMjcyLDcgKzEyNzIsNyBAQCB1c2VkIGluc3RlYWQgb2Yg YGJyb3dzZS11cmwtbmV3LXdpbmRvdy1mbGFnJy4iCiAoZGVmdmFyIHVybC1oYW5kbGVyLXJlZ2V4 cCkKIAogOzs7IyMjYXV0b2xvYWQKLShkZWZ1biBicm93c2UtdXJsLWVtYWNzICh1cmwgJm9wdGlv bmFsIG5ldy13aW5kb3cpCisoZGVmdW4gYnJvd3NlLXVybC1lbWFjcyAodXJsICZvcHRpb25hbCBf bmV3LXdpbmRvdykKICAgIkFzayBFbWFjcyB0byBsb2FkIFVSTCBpbnRvIGEgYnVmZmVyIGFuZCBz aG93IGl0IGluIGFub3RoZXIgd2luZG93LiIKICAgKGludGVyYWN0aXZlIChicm93c2UtdXJsLWlu dGVyYWN0aXZlLWFyZyAiVVJMOiAiKSkKICAgKHJlcXVpcmUgJ3VybC1oYW5kbGVycykKQEAgLTE0 MTMsNyArMTQxMyw3IEBAIHVzZWQgaW5zdGVhZCBvZiBgYnJvd3NlLXVybC1uZXctd2luZG93LWZs YWcnLiIKICAgICAodzMtZmV0Y2ggdXJsKSkpCiAKIDs7OyMjI2F1dG9sb2FkCi0oZGVmdW4gYnJv d3NlLXVybC13My1nbnVkb2l0ICh1cmwgJm9wdGlvbmFsIG5ldy13aW5kb3cpCisoZGVmdW4gYnJv d3NlLXVybC13My1nbnVkb2l0ICh1cmwgJm9wdGlvbmFsIF9uZXctd2luZG93KQogICA7OyBuZXct d2luZG93IGlnbm9yZWQKICAgIkFzayBhbm90aGVyIEVtYWNzIHJ1bm5pbmcgZ251c2VydiB0byBs b2FkIHRoZSBVUkwgdXNpbmcgdGhlIFczIGJyb3dzZXIuCiBUaGUgYGJyb3dzZS11cmwtZ251ZG9p dC1wcm9ncmFtJyBwcm9ncmFtIGlzIHVzZWQgd2l0aCBvcHRpb25zIGdpdmVuIGJ5CkBAIC0xNDI4 LDcgKzE0MjgsNyBAQCBUaGUgYGJyb3dzZS11cmwtZ251ZG9pdC1wcm9ncmFtJyBwcm9ncmFtIGlz IHVzZWQgd2l0aCBvcHRpb25zIGdpdmVuIGJ5CiA7OyAtLS0gTHlueCBpbiBhbiB4dGVybSAtLS0K IAogOzs7IyMjYXV0b2xvYWQKLShkZWZ1biBicm93c2UtdXJsLXRleHQteHRlcm0gKHVybCAmb3B0 aW9uYWwgbmV3LXdpbmRvdykKKyhkZWZ1biBicm93c2UtdXJsLXRleHQteHRlcm0gKHVybCAmb3B0 aW9uYWwgX25ldy13aW5kb3cpCiAgIDs7IG5ldy13aW5kb3cgaWdub3JlZAogICAiQXNrIGEgdGV4 dCBicm93c2VyIHRvIGxvYWQgVVJMLgogVVJMIGRlZmF1bHRzIHRvIHRoZSBVUkwgYXJvdW5kIG9y IGJlZm9yZSBwb2ludC4KQEAgLTE0OTIsNyArMTQ5Miw3IEBAIHVzZWQgaW5zdGVhZCBvZiBgYnJv d3NlLXVybC1uZXctd2luZG93LWZsYWcnLiIKICAgICAgICAgICAgKGdldC1idWZmZXItcHJvY2Vz cyBidWYpCiAgICAgICAgICAgIDs7IERvbid0IGxlYXZlIGFyb3VuZCBhIGRlYWQgb25lIChlc3Bl Y2lhbGx5IGJlY2F1c2Ugb2YgaXRzCiAgICAgICAgICAgIDs7IG11bmdlZCBrZXltYXAuKQotICAg ICAgICAgICAobGFtYmRhIChwcm9jZXNzIGV2ZW50KQorICAgICAgICAgICAobGFtYmRhIChwcm9j ZXNzIF9ldmVudCkKICAgICAgICAgICAgICAoaWYgKG5vdCAobWVtcSAocHJvY2Vzcy1zdGF0dXMg cHJvY2VzcykgJyhydW4gc3RvcCkpKQogICAgICAgICAgICAgICAgICAobGV0ICgoYnVmIChwcm9j ZXNzLWJ1ZmZlciBwcm9jZXNzKSkpCiAgICAgICAgICAgICAgICAgICAgKGlmIGJ1ZiAoa2lsbC1i dWZmZXIgYnVmKSkpKSkpKQpAQCAtMTU2NSw3ICsxNTY1LDcgQEAgdXNlZCBpbnN0ZWFkIG9mIGBi cm93c2UtdXJsLW5ldy13aW5kb3ctZmxhZycuIgogOzsgLS0tIFJhbmRvbSBicm93c2VyIC0tLQog CiA7OzsjIyNhdXRvbG9hZAotKGRlZnVuIGJyb3dzZS11cmwtZ2VuZXJpYyAodXJsICZvcHRpb25h bCBuZXctd2luZG93KQorKGRlZnVuIGJyb3dzZS11cmwtZ2VuZXJpYyAodXJsICZvcHRpb25hbCBf bmV3LXdpbmRvdykKICAgOzsgbmV3LXdpbmRvdyBpZ25vcmVkCiAgICJBc2sgdGhlIFdXVyBicm93 c2VyIGRlZmluZWQgYnkgYGJyb3dzZS11cmwtZ2VuZXJpYy1wcm9ncmFtJyB0byBsb2FkIFVSTC4K IERlZmF1bHQgdG8gdGhlIFVSTCBhcm91bmQgb3IgYmVmb3JlIHBvaW50LiAgQSBmcmVzaCBjb3B5 IG9mIHRoZQpAQCAtMTU4MCw3ICsxNTgwLDcgQEAgZG9uJ3Qgb2ZmZXIgYSBmb3JtIG9mIHJlbW90 ZSBjb250cm9sLiIKIAkgKGFwcGVuZCBicm93c2UtdXJsLWdlbmVyaWMtYXJncyAobGlzdCB1cmwp KSkpCiAKIDs7OyMjI2F1dG9sb2FkCi0oZGVmdW4gYnJvd3NlLXVybC1rZGUgKHVybCAmb3B0aW9u YWwgbmV3LXdpbmRvdykKKyhkZWZ1biBicm93c2UtdXJsLWtkZSAodXJsICZvcHRpb25hbCBfbmV3 LXdpbmRvdykKICAgIkFzayB0aGUgS0RFIFdXVyBicm93c2VyIHRvIGxvYWQgVVJMLgogRGVmYXVs dCB0byB0aGUgVVJMIGFyb3VuZCBvciBiZWZvcmUgcG9pbnQuIgogICAoaW50ZXJhY3RpdmUgKGJy b3dzZS11cmwtaW50ZXJhY3RpdmUtYXJnICJLREUgVVJMOiAiKSkKZGlmZiAtLWdpdCBhL2xpc3Av bmV0L2RidXMuZWwgYi9saXNwL25ldC9kYnVzLmVsCmluZGV4IDBlOWM0ZmMuLjYzN2U5MmYgMTAw NjQ0Ci0tLSBhL2xpc3AvbmV0L2RidXMuZWwKKysrIGIvbGlzcC9uZXQvZGJ1cy5lbApAQCAtODE4 LDEzICs4MTgsMTMgQEAgYXNzb2NpYXRpb24gdG8gdGhlIHNlcnZpY2UgZnJvbSBELUJ1cy4iCiAM CiA7OzsgRC1CdXMgdHlwZSBjb252ZXJzaW9uLgogCi0oZGVmdW4gZGJ1cy1zdHJpbmctdG8tYnl0 ZS1hcnJheSAoc3RyaW5nKQotICAiVHJhbnNmb3JtcyBTVFJJTkcgdG8gbGlzdCAoOmFycmF5IDpi eXRlIGMxIDpieXRlIGMyIC4uLikuCi1TVFJJTkcgc2hhbGwgYmUgVVRGOCBjb2RlZC4iCi0gIChp ZiAoemVyb3AgKGxlbmd0aCBzdHJpbmcpKQorKGRlZnVuIGRidXMtc3RyaW5nLXRvLWJ5dGUtYXJy YXkgKHN0cikKKyAgIlRyYW5zZm9ybXMgU1RSIHRvIGxpc3QgKDphcnJheSA6Ynl0ZSBjMSA6Ynl0 ZSBjMiAuLi4pLgorU1RSIHNoYWxsIGJlIFVURjggY29kZWQuIgorICAoaWYgKHplcm9wIChsZW5n dGggc3RyKSkKICAgICAgICcoOmFycmF5IDpzaWduYXR1cmUgInkiKQogICAgIChsZXQgKHJlc3Vs dCkKLSAgICAgIChkb2xpc3QgKGVsdCAoc3RyaW5nLXRvLWxpc3Qgc3RyaW5nKSAoYXBwZW5kICco OmFycmF5KSByZXN1bHQpKQorICAgICAgKGRvbGlzdCAoZWx0IChzdHJpbmctdG8tbGlzdCBzdHIp IChhcHBlbmQgJyg6YXJyYXkpIHJlc3VsdCkpCiAJKHNldHEgcmVzdWx0IChhcHBlbmQgcmVzdWx0 IChsaXN0IDpieXRlIGVsdCkpKSkpKSkKIAogKGRlZnVuIGRidXMtYnl0ZS1hcnJheS10by1zdHJp bmcgKGJ5dGUtYXJyYXkpCkBAIC0xNjA5LDcgKzE2MDksNiBAQCBhbmQgXCJvcmcuZnJlZWRlc2t0 b3AuREJ1cy5Qcm9wZXJ0aWVzLkdldEFsbFwiLCB3aGljaCBpcyBzbG93LiIKIEl0IHdpbGwgYmUg cmVnaXN0ZXJlZCBmb3IgYWxsIG9iamVjdHMgY3JlYXRlZCBieSBgZGJ1cy1yZWdpc3Rlci1tZXRo b2QnLiIKICAgKGxldCogKChsYXN0LWlucHV0LWV2ZW50IGxhc3QtaW5wdXQtZXZlbnQpCiAJIChi dXMgKGRidXMtZXZlbnQtYnVzLW5hbWUgbGFzdC1pbnB1dC1ldmVudCkpCi0JIChzZXJ2aWNlIChk YnVzLWV2ZW50LXNlcnZpY2UtbmFtZSBsYXN0LWlucHV0LWV2ZW50KSkKIAkgKHBhdGggKGRidXMt ZXZlbnQtcGF0aC1uYW1lIGxhc3QtaW5wdXQtZXZlbnQpKSkKICAgICA7OyAiR2V0TWFuYWdlZE9i amVjdHMiIHJldHVybnMgImF7b2F7c2F7c3Z9fX0iLgogICAgIChsZXQgKGludGVyZmFjZXMgcmVz dWx0KQpAQCAtMTYyNSw4ICsxNjI0LDcgQEAgSXQgd2lsbCBiZSByZWdpc3RlcmVkIGZvciBhbGwg b2JqZWN0cyBjcmVhdGVkIGJ5IGBkYnVzLXJlZ2lzdGVyLW1ldGhvZCcuIgogICAgICAgOzsgQ2hl Y2sgYWxsIHJlZ2lzdGVyZWQgb2JqZWN0IHBhdGhzLgogICAgICAgKG1hcGhhc2gKICAgICAgICAo bGFtYmRhIChrZXkgdmFsKQotCSAobGV0ICgob2JqZWN0IChvciAobnRoIDIgKGNhci1zYWZlIHZh bCkpICIiKSkKLQkgICAgICAgKGludGVyZmFjZSAobnRoIDIga2V5KSkpCisJIChsZXQgKChvYmpl Y3QgKG9yIChudGggMiAoY2FyLXNhZmUgdmFsKSkgIiIpKSkKIAkgICAod2hlbiAoYW5kIChlcXVh bCAoYnV0bGFzdCBrZXkgMikgKGxpc3QgOm1ldGhvZCBidXMpKQogCQkgICAgICAoc3RyaW5nLXBy ZWZpeC1wIHBhdGggb2JqZWN0KSkKIAkgICAgIChkb2xpc3QgKGludGVyZmFjZSAoY29ucyAobnRo IDIga2V5KSBpbnRlcmZhY2VzKSkKZGlmZiAtLWdpdCBhL2xpc3AvbmV0L2V1ZGMuZWwgYi9saXNw L25ldC9ldWRjLmVsCmluZGV4IGVmMDkyNjcuLmM0NzRhYzkgMTAwNjQ0Ci0tLSBhL2xpc3AvbmV0 L2V1ZGMuZWwKKysrIGIvbGlzcC9uZXQvZXVkYy5lbApAQCAtNTE4LDEyICs1MTgsMTIgQEAgb3Ro ZXJ3aXNlIHRoZXkgYXJlIGZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gYGV1ZGMtdXNlci1hdHRyaWJ1 dGUtbmFtZXMtYWxpc3QnLiIKIAkgICBwcmVjb3JkcykpCiAJKGluc2VydCAiXG4iKQogCSh3aWRn ZXQtY3JlYXRlICdwdXNoLWJ1dHRvbgotCQkgICAgICAgOm5vdGlmeSAobGFtYmRhICgmcmVzdCBp Z25vcmUpCisJCSAgICAgICA6bm90aWZ5IChsYW1iZGEgKCZyZXN0IF9pZ25vcmUpCiAJCQkJIChl dWRjLXF1ZXJ5LWZvcm0pKQogCQkgICAgICAgIk5ldyBxdWVyeSIpCiAJKHdpZGdldC1pbnNlcnQg IiAiKQogCSh3aWRnZXQtY3JlYXRlICdwdXNoLWJ1dHRvbgotCQkgICAgICAgOm5vdGlmeSAobGFt YmRhICgmcmVzdCBpZ25vcmUpCisJCSAgICAgICA6bm90aWZ5IChsYW1iZGEgKCZyZXN0IF9pZ25v cmUpCiAJCQkJIChraWxsLXRoaXMtYnVmZmVyKSkKIAkJICAgICAgICJRdWl0IikKIAkoZXVkYy1t b2RlKQpAQCAtOTk1LDE3ICs5OTUsMTcgQEAgcXVlcmllcyB0aGUgc2VydmVyIGZvciB0aGUgZXhp c3RpbmcgZmllbGRzIGFuZCBkaXNwbGF5cyBhIGNvcnJlc3BvbmRpbmcgZm9ybS4iCiAJICBmaWVs ZHMpCiAgICAgKHdpZGdldC1pbnNlcnQgIlxuXG4iKQogICAgICh3aWRnZXQtY3JlYXRlICdwdXNo LWJ1dHRvbgotCQkgICA6bm90aWZ5IChsYW1iZGEgKCZyZXN0IGlnbm9yZSkKKwkJICAgOm5vdGlm eSAobGFtYmRhICgmcmVzdCBfaWdub3JlKQogCQkJICAgICAoZXVkYy1wcm9jZXNzLWZvcm0pKQog CQkgICAiUXVlcnkgU2VydmVyIikKICAgICAod2lkZ2V0LWluc2VydCAiICIpCiAgICAgKHdpZGdl dC1jcmVhdGUgJ3B1c2gtYnV0dG9uCi0JCSAgIDpub3RpZnkgKGxhbWJkYSAoJnJlc3QgaWdub3Jl KQorCQkgICA6bm90aWZ5IChsYW1iZGEgKCZyZXN0IF9pZ25vcmUpCiAJCQkgICAgIChldWRjLXF1 ZXJ5LWZvcm0pKQogCQkgICAiUmVzZXQgRm9ybSIpCiAgICAgKHdpZGdldC1pbnNlcnQgIiAiKQog ICAgICh3aWRnZXQtY3JlYXRlICdwdXNoLWJ1dHRvbgotCQkgICA6bm90aWZ5IChsYW1iZGEgKCZy ZXN0IGlnbm9yZSkKKwkJICAgOm5vdGlmeSAobGFtYmRhICgmcmVzdCBfaWdub3JlKQogCQkJICAg ICAoa2lsbC10aGlzLWJ1ZmZlcikpCiAJCSAgICJRdWl0IikKICAgICAoZ290by1jaGFyIHB0KQpk aWZmIC0tZ2l0IGEvbGlzcC9uZXQvZXVkY2ItbGRhcC5lbCBiL2xpc3AvbmV0L2V1ZGNiLWxkYXAu ZWwKaW5kZXggZDBiYTQ3YS4uYTY3OGVjMyAxMDA2NDQKLS0tIGEvbGlzcC9uZXQvZXVkY2ItbGRh cC5lbAorKysgYi9saXNwL25ldC9ldWRjYi1sZGFwLmVsCkBAIC0xMzYsNyArMTM2LDcgQEAgUkVU VVJOLUFUVFJTIGlzIGEgbGlzdCBvZiBhdHRyaWJ1dGVzIHRvIHJldHVybiwgZGVmYXVsdGluZyB0 bwogCSByZXN1bHQpKQogICAgIGZpbmFsLXJlc3VsdCkpCiAKLShkZWZ1biBldWRjLWxkYXAtZ2V0 LWZpZWxkLWxpc3QgKGR1bW15ICZvcHRpb25hbCBvYmplY3RjbGFzcykKKyhkZWZ1biBldWRjLWxk YXAtZ2V0LWZpZWxkLWxpc3QgKF9kdW1teSAmb3B0aW9uYWwgb2JqZWN0Y2xhc3MpCiAgICJSZXR1 cm4gYSBsaXN0IG9mIHZhbGlkIGF0dHJpYnV0ZSBuYW1lcyBmb3IgdGhlIGN1cnJlbnQgc2VydmVy LgogT0JKRUNUQ0xBU1MgaXMgdGhlIExEQVAgb2JqZWN0IGNsYXNzIGZvciB3aGljaCB0aGUgdmFs aWQKIGF0dHJpYnV0ZSBuYW1lcyBhcmUgcmV0dXJuZWQuIERlZmF1bHQgdG8gYHBlcnNvbiciCmRp ZmYgLS1naXQgYS9saXNwL25ldC9ld3cuZWwgYi9saXNwL25ldC9ld3cuZWwKaW5kZXggMzQ5MzRh MC4uNDhlM2UyNiAxMDA2NDQKLS0tIGEvbGlzcC9uZXQvZXd3LmVsCisrKyBiL2xpc3AvbmV0L2V3 dy5lbApAQCAtMjk2LDcgKzI5Niw3IEBAIHdvcmQocykgd2lsbCBiZSBzZWFyY2hlZCBmb3Igdmlh IGBld3ctc2VhcmNoLXByZWZpeCcuIgogCQkJCSAgKGxpc3QgOmJhY2tncm91bmQgKGNhciBuZXct Y29sb3JzKSkKIAkJCQkgIHQpKSkpKSkKIAotKGRlZnVuIGV3dy1kaXNwbGF5LXJhdyAoY2hhcnNl dCkKKyhkZWZ1biBld3ctZGlzcGxheS1yYXcgKF9jaGFyc2V0KQogICAobGV0ICgoZGF0YSAoYnVm ZmVyLXN1YnN0cmluZyAocG9pbnQpIChwb2ludC1tYXgpKSkpCiAgICAgKGV3dy1zZXR1cC1idWZm ZXIpCiAgICAgKGxldCAoKGluaGliaXQtcmVhZC1vbmx5IHQpKQpAQCAtMzgxLDcgKzM4MSw3IEBA IHdvcmQocykgd2lsbCBiZSBzZWFyY2hlZCBmb3IgdmlhIGBld3ctc2VhcmNoLXByZWZpeCcuIgog CWV3dy1oaXN0b3J5KSkKIAogOzs7IyMjYXV0b2xvYWQKLShkZWZ1biBld3ctYnJvd3NlLXVybCAo dXJsICZvcHRpb25hbCBuZXctd2luZG93KQorKGRlZnVuIGV3dy1icm93c2UtdXJsICh1cmwgJm9w dGlvbmFsIF9uZXctd2luZG93KQogICAod2hlbiAoYW5kIChlcXVhbCBtYWpvci1tb2RlICdld3ct bW9kZSkKIAkgICAgIGV3dy1jdXJyZW50LXVybCkKICAgICAoZXd3LXNhdmUtaGlzdG9yeSkpCkBA IC05MzAsOCArOTMwLDcgQEAgVGhlIGJyb3dzZXIgdG8gdXNlZCBpcyBzcGVjaWZpZWQgYnkgdGhl IGBzaHItZXh0ZXJuYWwtYnJvd3NlcicgdmFyaWFibGUuIgogICAgICAgKHNldHEgZmlsZSAiISIp KQogICAgICAoKHN0cmluZy1tYXRjaCAiXFxgWy5dIiBmaWxlKQogICAgICAgKHNldHEgZmlsZSAo Y29uY2F0ICIhIiBmaWxlKSkpKQotICAgIChsZXQgKChiYXNlIGZpbGUpCi0JICAoY291bnQgMSkp CisgICAgKGxldCAoKGNvdW50IDEpKQogICAgICAgKHdoaWxlIChmaWxlLWV4aXN0cy1wIChleHBh bmQtZmlsZS1uYW1lIGZpbGUgZGlyZWN0b3J5KSkKIAkoc2V0cSBmaWxlCiAJICAgICAgKGlmIChz dHJpbmctbWF0Y2ggIlxcYFxcKC4qXFwpXFwoWy5dW14uXStcXCkiIGZpbGUpCmRpZmYgLS1naXQg YS9saXNwL25ldC9pbWFwLmVsIGIvbGlzcC9uZXQvaW1hcC5lbAppbmRleCA5NTg0Y2ViLi4yNTZh ZjcyIDEwMDY0NAotLS0gYS9saXNwL25ldC9pbWFwLmVsCisrKyBiL2xpc3AvbmV0L2ltYXAuZWwK QEAgLTEzOSw3ICsxMzksNyBAQAogKGV2YWwtd2hlbi1jb21waWxlIChyZXF1aXJlICdjbCkpCiAo ZXZhbC1hbmQtY29tcGlsZQogICA7OyBGb3IgRW1hY3MgPDIyLjIgYW5kIFhFbWFjcy4KLSAgKHVu bGVzcyAoZmJvdW5kcCAnZGVjbGFyZS1mdW5jdGlvbikgKGRlZm1hY3JvIGRlY2xhcmUtZnVuY3Rp b24gKCZyZXN0IHIpKSkKKyAgKHVubGVzcyAoZmJvdW5kcCAnZGVjbGFyZS1mdW5jdGlvbikgKGRl Zm1hY3JvIGRlY2xhcmUtZnVuY3Rpb24gKCZyZXN0IF9yKSkpCiAgIChhdXRvbG9hZCAnc3RhcnR0 bHMtb3Blbi1zdHJlYW0gInN0YXJ0dGxzIikKICAgKGF1dG9sb2FkICdzdGFydHRscy1uZWdvdGlh dGUgInN0YXJ0dGxzIikKICAgKGF1dG9sb2FkICdzYXNsLWZpbmQtbWVjaGFuaXNtICJzYXNsIikK QEAgLTY2MSw3ICs2NjEsNyBAQCBzdXJlIG9mIGNoYW5naW5nIHRoZSB2YWx1ZSBvZiBgZm9vJy4i CiAJICAgICAgbmlsKSkpKSkKICAgICBkb25lKSkKIAotKGRlZnVuIGltYXAtc3NsLXAgKGJ1ZmZl cikKKyhkZWZ1biBpbWFwLXNzbC1wIChfYnVmZmVyKQogICBuaWwpCiAKIChkZWZ1biBpbWFwLXNz bC1vcGVuIChuYW1lIGJ1ZmZlciBzZXJ2ZXIgcG9ydCkKQEAgLTcxMSw3ICs3MTEsNyBAQCBzdXJl IG9mIGNoYW5naW5nIHRoZSB2YWx1ZSBvZiBgZm9vJy4iCiAgICAgICAobWVzc2FnZSAiaW1hcDog T3BlbmluZyBTU0wgY29ubmVjdGlvbiB3aXRoIGAlcycuLi5mYWlsZWQiIGNtZCkKICAgICAgIG5p bCkpKQogCi0oZGVmdW4gaW1hcC10bHMtcCAoYnVmZmVyKQorKGRlZnVuIGltYXAtdGxzLXAgKF9i dWZmZXIpCiAgIG5pbCkKIAogKGRlZnVuIGltYXAtdGxzLW9wZW4gKG5hbWUgYnVmZmVyIHNlcnZl ciBwb3J0KQpAQCAtNzM4LDcgKzczOCw3IEBAIHN1cmUgb2YgY2hhbmdpbmcgdGhlIHZhbHVlIG9m IGBmb28nLiIKICAgICAgICh3aGVuIChtZW1xIChwcm9jZXNzLXN0YXR1cyBwcm9jZXNzKSAnKG9w ZW4gcnVuKSkKIAlwcm9jZXNzKSkpKQogCi0oZGVmdW4gaW1hcC1uZXR3b3JrLXAgKGJ1ZmZlcikK KyhkZWZ1biBpbWFwLW5ldHdvcmstcCAoX2J1ZmZlcikKICAgdCkKIAogKGRlZnVuIGltYXAtbmV0 d29yay1vcGVuIChuYW1lIGJ1ZmZlciBzZXJ2ZXIgcG9ydCkKQEAgLTc1Nyw3ICs3NTcsNyBAQCBz dXJlIG9mIGNoYW5naW5nIHRoZSB2YWx1ZSBvZiBgZm9vJy4iCiAgICAgICAod2hlbiAobWVtcSAo cHJvY2Vzcy1zdGF0dXMgcHJvY2VzcykgJyhvcGVuIHJ1bikpCiAJcHJvY2VzcykpKSkKIAotKGRl ZnVuIGltYXAtc2hlbGwtcCAoYnVmZmVyKQorKGRlZnVuIGltYXAtc2hlbGwtcCAoX2J1ZmZlcikK ICAgbmlsKQogCiAoZGVmdW4gaW1hcC1zaGVsbC1vcGVuIChuYW1lIGJ1ZmZlciBzZXJ2ZXIgcG9y dCkKQEAgLTg4MSwxMCArODgxLDEwIEBAIHQgaWYgaXQgc3VjY2Vzc2Z1bGx5IGF1dGhlbnRpY2F0 ZXMsIG5pbCBvdGhlcndpc2UuIgogICAgICAgOzsJCSAgICAgICBwYXNzd2QgbmlsKSkpKQogICAg ICAgcmV0KSkpCiAKLShkZWZ1biBpbWFwLWdzc2FwaS1hdXRoLXAgKGJ1ZmZlcikKKyhkZWZ1biBp bWFwLWdzc2FwaS1hdXRoLXAgKF9idWZmZXIpCiAgIChlcSBpbWFwLXN0cmVhbSAnZ3NzYXBpKSkK IAotKGRlZnVuIGltYXAtZ3NzYXBpLWF1dGggKGJ1ZmZlcikKKyhkZWZ1biBpbWFwLWdzc2FwaS1h dXRoIChfYnVmZmVyKQogICAobWVzc2FnZSAiaW1hcDogQXV0aGVudGljYXRpbmcgdXNpbmcgR1NT QVBJLi4uJXMiCiAJICAgKGlmIChlcSBpbWFwLXN0cmVhbSAnZ3NzYXBpKSAiZG9uZSIgImZhaWxl ZCIpKQogICAoZXEgaW1hcC1zdHJlYW0gJ2dzc2FwaSkpCkBAIC04OTMsNyArODkzLDcgQEAgdCBp ZiBpdCBzdWNjZXNzZnVsbHkgYXV0aGVudGljYXRlcywgbmlsIG90aGVyd2lzZS4iCiAgIChhbmQg KGltYXAtY2FwYWJpbGl0eSAnQVVUSD1LRVJCRVJPU19WNCBidWZmZXIpCiAgICAgICAgKGVxIGlt YXAtc3RyZWFtICdrZXJiZXJvczQpKSkKIAotKGRlZnVuIGltYXAta2VyYmVyb3M0LWF1dGggKGJ1 ZmZlcikKKyhkZWZ1biBpbWFwLWtlcmJlcm9zNC1hdXRoIChfYnVmZmVyKQogICAobWVzc2FnZSAi aW1hcDogQXV0aGVudGljYXRpbmcgdXNpbmcgS2VyYmVyb3MgNC4uLiVzIgogCSAgIChpZiAoZXEg aW1hcC1zdHJlYW0gJ2tlcmJlcm9zNCkgImRvbmUiICJmYWlsZWQiKSkKICAgKGVxIGltYXAtc3Ry ZWFtICdrZXJiZXJvczQpKQpAQCAtOTQ3LDcgKzk0Nyw3IEBAIHQgaWYgaXQgc3VjY2Vzc2Z1bGx5 IGF1dGhlbnRpY2F0ZXMsIG5pbCBvdGhlcndpc2UuIgogCQkJCQkJKGltYXAtcXVvdGUtc3BlY2lh bHMgcGFzc3dkKQogCQkJCQkJIlwiIikpKSkpKQogCi0oZGVmdW4gaW1hcC1hbm9ueW1vdXMtcCAo YnVmZmVyKQorKGRlZnVuIGltYXAtYW5vbnltb3VzLXAgKF9idWZmZXIpCiAgIHQpCiAKIChkZWZ1 biBpbWFwLWFub255bW91cy1hdXRoIChidWZmZXIpCkBAIC0xODM4LDcgKzE4MzgsNyBAQCBTZWUg YGltYXAtZW5hYmxlLWV4Y2hhbmdlLWJ1Zy13b3JrYXJvdW5kJy4iCiAJICAgIChhbmQgKGltYXAt ZmV0Y2gtc2FmZSAnKCIqIiAuICIqOioiKSAiVUlEIikKIAkJIChsaXN0IChpbWFwLW1haWxib3gt Z2V0LTEgJ3VpZHZhbGlkaXR5IG1haWxib3gpCiAJCSAgICAgICAoYXBwbHkgJ21heCAoaW1hcC1t ZXNzYWdlLW1hcAotCQkJCSAgICAobGFtYmRhICh1aWQgcHJvcCkgdWlkKSAnVUlEKSkpKQorCQkJ CSAgICAobGFtYmRhICh1aWQgX3Byb3ApIHVpZCkgJ1VJRCkpKSkKIAkgIChpZiBvbGQtbWFpbGJv eAogCSAgICAgIChpbWFwLW1haWxib3gtc2VsZWN0IG9sZC1tYWlsYm94IChlcSBzdGF0ZSAnZXhh bWluZSkpCiAJICAgIChpbWFwLW1haWxib3gtdW5zZWxlY3QpKSkpKSkpCkBAIC0xODg0LDcgKzE4 ODQsNyBAQCBmaXJzdCBlbGVtZW50LiAgVGhlIHJlc3Qgb2YgbGlzdCBjb250YWlucyB0aGUgc2F2 ZWQgYXJ0aWNsZXMnIFVJRHMuIgogCSAgICAoYW5kIChpbWFwLWZldGNoLXNhZmUgJygiKiIgLiAi KjoqIikgIlVJRCIpCiAJCSAobGlzdCAoaW1hcC1tYWlsYm94LWdldC0xICd1aWR2YWxpZGl0eSBt YWlsYm94KQogCQkgICAgICAgKGFwcGx5ICdtYXggKGltYXAtbWVzc2FnZS1tYXAKLQkJCQkgICAg KGxhbWJkYSAodWlkIHByb3ApIHVpZCkgJ1VJRCkpKSkKKwkJCQkgICAgKGxhbWJkYSAodWlkIF9w cm9wKSB1aWQpICdVSUQpKSkpCiAJICAoaWYgb2xkLW1haWxib3gKIAkgICAgICAoaW1hcC1tYWls Ym94LXNlbGVjdCBvbGQtbWFpbGJveCAoZXEgc3RhdGUgJ2V4YW1pbmUpKQogCSAgICAoaW1hcC1t YWlsYm94LXVuc2VsZWN0KSkpKSkpKQpAQCAtMTg5Myw3ICsxODkzLDcgQEAgZmlyc3QgZWxlbWVu dC4gIFRoZSByZXN0IG9mIGxpc3QgY29udGFpbnMgdGhlIHNhdmVkIGFydGljbGVzJyBVSURzLiIK ICAgKHdpdGgtY3VycmVudC1idWZmZXIgKG9yIGJ1ZmZlciAoY3VycmVudC1idWZmZXIpKQogICAg IChpbWFwLW1lc3NhZ2UtYXBwZW5kdWlkLTEgKGltYXAtdXRmNy1lbmNvZGUgbWFpbGJveCkpKSkK IAotKGRlZnVuIGltYXAtbWVzc2FnZS1hcHBlbmQgKG1haWxib3ggYXJ0aWNsZSAmb3B0aW9uYWwg ZmxhZ3MgZGF0ZS10aW1lIGJ1ZmZlcikKKyhkZWZ1biBpbWFwLW1lc3NhZ2UtYXBwZW5kIChtYWls Ym94IGFydGljbGUgJm9wdGlvbmFsIF9mbGFncyBfZGF0ZS10aW1lIGJ1ZmZlcikKICAgIkFwcGVu ZCBBUlRJQ0xFIChhIGJ1ZmZlcikgdG8gTUFJTEJPWCBvbiBzZXJ2ZXIgaW4gQlVGRkVSLgogRkxB R1MgYW5kIERBVEUtVElNRSBpcyBjdXJyZW50bHkgbm90IHVzZWQuICBSZXR1cm4gYSBjb25zIGhv bGRpbmcKIHVpZHZhbGlkaXR5IG9mIE1BSUxCT1ggYW5kIFVJRCB0aGUgbmV3bHkgY3JlYXRlZCBh cnRpY2xlIGdvdCwgb3IgbmlsCmRpZmYgLS1naXQgYS9saXNwL3ByaW50aW5nLmVsIGIvbGlzcC9w cmludGluZy5lbAppbmRleCAyYzgwN2IwLi5lODE0YzNhIDEwMDY0NAotLS0gYS9saXNwL3ByaW50 aW5nLmVsCisrKyBiL2xpc3AvcHJpbnRpbmcuZWwKQEAgLTQ2MjcsMjEgKzQ2MjcsMjEgQEAgYm90 dG9tLiIKIAogCiA7OzsjIyNhdXRvbG9hZAotKGRlZnVuIHByLWN1c3RvbWl6ZSAoJnJlc3QgaWdu b3JlKQorKGRlZnVuIHByLWN1c3RvbWl6ZSAoJnJlc3QgX2lnbm9yZSkKICAgIkN1c3RvbWl6YXRp b24gb2YgdGhlIGBwcmludGluZycgZ3JvdXAuIgogICAoaW50ZXJhY3RpdmUpCiAgIChjdXN0b21p emUtZ3JvdXAgJ3ByaW50aW5nKSkKIAogCiA7OzsjIyNhdXRvbG9hZAotKGRlZnVuIGxwci1jdXN0 b21pemUgKCZyZXN0IGlnbm9yZSkKKyhkZWZ1biBscHItY3VzdG9taXplICgmcmVzdCBfaWdub3Jl KQogICAiQ3VzdG9taXphdGlvbiBvZiB0aGUgYGxwcicgZ3JvdXAuIgogICAoaW50ZXJhY3RpdmUp CiAgIChjdXN0b21pemUtZ3JvdXAgJ2xwcikpCiAKIAogOzs7IyMjYXV0b2xvYWQKLShkZWZ1biBw ci1oZWxwICgmcmVzdCBpZ25vcmUpCisoZGVmdW4gcHItaGVscCAoJnJlc3QgX2lnbm9yZSkKICAg IkhlbHAgZm9yIHRoZSBwcmludGluZyBwYWNrYWdlLiIKICAgKGludGVyYWN0aXZlKQogICAocHIt c2hvdy1zZXR1cCBwci1oZWxwLW1lc3NhZ2UgIipQcmludGluZyBIZWxwKiIpKQpAQCAtNDY3NSwy MSArNDY3NSwyMSBAQCBib3R0b20uIgogCiAKIDs7OyMjI2F1dG9sb2FkCi0oZGVmdW4gcHItc2hv dy1wcy1zZXR1cCAoJnJlc3QgaWdub3JlKQorKGRlZnVuIHByLXNob3ctcHMtc2V0dXAgKCZyZXN0 IF9pZ25vcmUpCiAgICJTaG93IGN1cnJlbnQgcHMtcHJpbnQgc2V0dGluZ3MuIgogICAoaW50ZXJh Y3RpdmUpCiAgIChwci1zaG93LXNldHVwIChwcy1zZXR1cCkgIipQUyBTZXR1cCoiKSkKIAogCiA7 OzsjIyNhdXRvbG9hZAotKGRlZnVuIHByLXNob3ctcHItc2V0dXAgKCZyZXN0IGlnbm9yZSkKKyhk ZWZ1biBwci1zaG93LXByLXNldHVwICgmcmVzdCBfaWdub3JlKQogICAiU2hvdyBjdXJyZW50IHBy aW50aW5nIHNldHRpbmdzLiIKICAgKGludGVyYWN0aXZlKQogICAocHItc2hvdy1zZXR1cCAocHIt c2V0dXApICIqUFIgU2V0dXAqIikpCiAKIAogOzs7IyMjYXV0b2xvYWQKLShkZWZ1biBwci1zaG93 LWxwci1zZXR1cCAoJnJlc3QgaWdub3JlKQorKGRlZnVuIHByLXNob3ctbHByLXNldHVwICgmcmVz dCBfaWdub3JlKQogICAiU2hvdyBjdXJyZW50IGxwciBzZXR0aW5ncy4iCiAgIChpbnRlcmFjdGl2 ZSkKICAgKHByLXNob3ctc2V0dXAgKGxwci1zZXR1cCkgIipMUFIgU2V0dXAqIikpCkBAIC02MTI1 LDcgKzYxMjUsNyBAQCBDT01NQU5ELmV4ZSwgQ09NTUFORC5iYXQgYW5kIENPTU1BTkQuY29tIGlu IHRoaXMgb3JkZXIuIgogICAgICAgIChwci1pbnNlcnQtY2hlY2tib3gKIAkiXG4gICAgICAgICAg ICAgICAiCiAJJ3ByLWktcmVnaW9uCi0JIycobGFtYmRhICh3aWRnZXQgJnJlc3QgaWdub3JlKQor CSMnKGxhbWJkYSAod2lkZ2V0ICZyZXN0IF9pZ25vcmUpCiAJICAgIChsZXQgKChyZWdpb24tcCAo cHItaW50ZXJmYWNlLXNhdmUKIAkJCSAgICAgKHBzLW1hcmstYWN0aXZlLXApKSkpCiAJICAgICAg KGNvbmQgKChudWxsICh3aWRnZXQtdmFsdWUgd2lkZ2V0KSkgOyB3aWRnZXQgaXMgbmlsCkBAIC02 MTQ2LDcgKzYxNDYsNyBAQCBDT01NQU5ELmV4ZSwgQ09NTUFORC5iYXQgYW5kIENPTU1BTkQuY29t IGluIHRoaXMgb3JkZXIuIgogICAgICAgIChwci1pbnNlcnQtY2hlY2tib3gKIAkiICAgICIKIAkn cHItaS1tb2RlCi0JIycobGFtYmRhICh3aWRnZXQgJnJlc3QgaWdub3JlKQorCSMnKGxhbWJkYSAo d2lkZ2V0ICZyZXN0IF9pZ25vcmUpCiAJICAgIChsZXQgKChtb2RlLXAgKHByLWludGVyZmFjZS1z YXZlCiAJCQkgICAocHItbW9kZS1hbGlzdC1wKSkpKQogCSAgICAgIChjb25kCkBAIC02MTgyLDcg KzYxODIsNyBAQCBDT01NQU5ELmV4ZSwgQ09NTUFORC5iYXQgYW5kIENPTU1BTkQuY29tIGluIHRo aXMgb3JkZXIuIgogICAod2lkZ2V0LWNyZWF0ZSAncmVnZXhwCiAJCSA6c2l6ZSA1OAogCQkgOmZv cm1hdCAiXG4gICAgICBGaWxlIFJlZ2V4cCA6ICV2XG4iCi0JCSA6bm90aWZ5IChsYW1iZGEgKHdp ZGdldCAmcmVzdCBpZ25vcmUpCisJCSA6bm90aWZ5IChsYW1iZGEgKHdpZGdldCAmcmVzdCBfaWdu b3JlKQogCQkJICAgKHNldHEgcHItaS1yZWdleHAgKHdpZGdldC12YWx1ZSB3aWRnZXQpKSkKIAkJ IHByLWktcmVnZXhwKQogICA7OyAgICAxYi4gRGlyZWN0b3J5OiBMaXN0IERpcmVjdG9yeSBFbnRy eQpAQCAtNjIyMiw3ICs2MjIyLDcgQEAgQ09NTUFORC5leGUsIENPTU1BTkQuYmF0IGFuZCBDT01N QU5ELmNvbSBpbiB0aGlzIG9yZGVyLiIKICAgICAgICAocHItaW5zZXJ0LWNoZWNrYm94CiAJIiAg ICAiCiAJJ3ByLWktZGVzcG9vbAotCSMnKGxhbWJkYSAod2lkZ2V0ICZyZXN0IGlnbm9yZSkKKwkj JyhsYW1iZGEgKHdpZGdldCAmcmVzdCBfaWdub3JlKQogCSAgICAoaWYgcHItc3Bvb2wtcAogCQko c2V0cSBwci1pLWRlc3Bvb2wgKG5vdCBwci1pLWRlc3Bvb2wpKQogCSAgICAgIChkaW5nKQpAQCAt NjI1OSw3ICs2MjU5LDcgQEAgQ09NTUFORC5leGUsIENPTU1BTkQuYmF0IGFuZCBDT01NQU5ELmNv bSBpbiB0aGlzIG9yZGVyLiIKICAgICdpbnRlZ2VyCiAgICA6c2l6ZSAzCiAgICA6Zm9ybWF0ICJc biAgTi1VcCA6ICV2IgotICAgOm5vdGlmeSAobGFtYmRhICh3aWRnZXQgJnJlc3QgaWdub3JlKQor ICAgOm5vdGlmeSAobGFtYmRhICh3aWRnZXQgJnJlc3QgX2lnbm9yZSkKIAkgICAgIChsZXQgKCh2 YWx1ZSAoaWYgKHN0cmluZz0gKHdpZGdldC1hcHBseSB3aWRnZXQgOnZhbHVlLWdldCkgIiIpCiAJ CQkgICAgICAwCiAJCQkgICAgKHdpZGdldC12YWx1ZSB3aWRnZXQpKSkpCkBAIC02Mjg4LDcgKzYy ODgsNyBAQCBDT01NQU5ELmV4ZSwgQ09NTUFORC5iYXQgYW5kIENPTU1BTkQuY29tIGluIHRoaXMg b3JkZXIuIgogICA7OyA0LiBTZXR0aW5nczoKICAgOzsgNC4gU2V0dGluZ3M6IExhbmRzY2FwZSAg ICAgICAgICAgICBBdXRvIFJlZ2lvbiAgICBWZXJib3NlCiAgIChwci1pbnNlcnQtY2hlY2tib3gg IlxuXG4gICIgJ3BzLWxhbmRzY2FwZS1tb2RlCi0JCSAgICAgICMnKGxhbWJkYSAoJnJlc3QgaWdu b3JlKQorCQkgICAgICAjJyhsYW1iZGEgKCZyZXN0IF9pZ25vcmUpCiAJCQkgIChzZXRxIHBzLWxh bmRzY2FwZS1tb2RlIChub3QgcHMtbGFuZHNjYXBlLW1vZGUpCiAJCQkJcHItZmlsZS1sYW5kc2Nh cGUgcHMtbGFuZHNjYXBlLW1vZGUpKQogCQkgICAgICAiIExhbmRzY2FwZSAgICAgICAgICAgICAi KQpAQCAtNjMxMCw3ICs2MzEwLDcgQEAgQ09NTUFORC5leGUsIENPTU1BTkQuYmF0IGFuZCBDT01N QU5ELmNvbSBpbiB0aGlzIG9yZGVyLiIKICAgKHByLWluc2VydC10b2dnbGUgJ3BzLXplYnJhLXN0 cmlwZXMgIiBaZWJyYSBTdHJpcGVzIikKICAgKHByLWluc2VydC1jaGVja2JveCAiICAgICAgICAg IgogCQkgICAgICAncHItc3Bvb2wtcAotCQkgICAgICAjJyhsYW1iZGEgKCZyZXN0IGlnbm9yZSkK KwkJICAgICAgIycobGFtYmRhICgmcmVzdCBfaWdub3JlKQogCQkJICAoc2V0cSBwci1zcG9vbC1w IChub3QgcHItc3Bvb2wtcCkpCiAJCQkgICh1bmxlc3MgcHItc3Bvb2wtcAogCQkJICAgIChzZXRx IHByLWktZGVzcG9vbCBuaWwpCkBAIC02MzIwLDcgKzYzMjAsNyBAQCBDT01NQU5ELmV4ZSwgQ09N TUFORC5iYXQgYW5kIENPTU1BTkQuY29tIGluIHRoaXMgb3JkZXIuIgogICA7OyA0LiBTZXR0aW5n czogRHVwbGV4ICAgICAgICAgICAgICAgIFByaW50IHdpdGggZmFjZXMKICAgKHByLWluc2VydC1j aGVja2JveCAiXG4gICIKIAkJICAgICAgJ3BzLXNwb29sLWR1cGxleAotCQkgICAgICAjJyhsYW1i ZGEgKCZyZXN0IGlnbm9yZSkKKwkJICAgICAgIycobGFtYmRhICgmcmVzdCBfaWdub3JlKQogCQkJ ICAoc2V0cSBwcy1zcG9vbC1kdXBsZXggKG5vdCBwcy1zcG9vbC1kdXBsZXgpCiAJCQkJcHItZmls ZS1kdXBsZXggIHBzLXNwb29sLWR1cGxleCkpCiAJCSAgICAgICIgRHVwbGV4ICAgICAgICAgICAg ICAgICIpCkBAIC02MzI5LDcgKzYzMjksNyBAQCBDT01NQU5ELmV4ZSwgQ09NTUFORC5iYXQgYW5k IENPTU1BTkQuY29tIGluIHRoaXMgb3JkZXIuIgogICA7OyA0LiBTZXR0aW5nczogVHVtYmxlICAg ICAgICAgICAgICAgIFByaW50IHZpYSBHaG9zdHNjcmlwdAogICAocHItaW5zZXJ0LWNoZWNrYm94 ICJcbiAgIgogCQkgICAgICAncHMtc3Bvb2wtdHVtYmxlCi0JCSAgICAgICMnKGxhbWJkYSAoJnJl c3QgaWdub3JlKQorCQkgICAgICAjJyhsYW1iZGEgKCZyZXN0IF9pZ25vcmUpCiAJCQkgIChzZXRx IHBzLXNwb29sLXR1bWJsZSAobm90IHBzLXNwb29sLXR1bWJsZSkKIAkJCQlwci1maWxlLXR1bWJs ZSAgcHMtc3Bvb2wtdHVtYmxlKSkKIAkJICAgICAgIiBUdW1ibGUgICAgICAgICAgICAgICAgIikK QEAgLTYzNTIsNyArNjM1Miw3IEBAIENPTU1BTkQuZXhlLCBDT01NQU5ELmJhdCBhbmQgQ09NTUFO RC5jb20gaW4gdGhpcyBvcmRlci4iCiAgIDs7IDUuIEN1c3RvbWl6ZToKICAgKHByLWluc2VydC1p dGFsaWMgIlxuXG5DdXN0b21pemUgICAgIDogICAiIDIgMTEpCiAgIChwci1pbnNlcnQtYnV0dG9u ICdwci1jdXN0b21pemUgInByaW50aW5nIiAiICAgIikKLSAgKHByLWluc2VydC1idXR0b24gIyco bGFtYmRhICgmcmVzdCBpZ25vcmUpIChwcy1wcmludC1jdXN0b21pemUpKQorICAocHItaW5zZXJ0 LWJ1dHRvbiAjJyhsYW1iZGEgKCZyZXN0IF9pZ25vcmUpIChwcy1wcmludC1jdXN0b21pemUpKQog CQkgICAgInBzLXByaW50IiAiICAgIikKICAgKHByLWluc2VydC1idXR0b24gJ2xwci1jdXN0b21p emUgImxwciIpKQogCkBAIC02Mzc0LDcgKzYzNzQsNyBAQCBDT01NQU5ELmV4ZSwgQ09NTUFORC5i YXQgYW5kIENPTU1BTkQuY29tIGluIHRoaXMgb3JkZXIuIgogICAocHItaW5zZXJ0LWJ1dHRvbiAn cHIta2lsbC1oZWxwICJLaWxsIEFsbCBQcmludGluZyBIZWxwIEJ1ZmZlciIpKQogCiAKLShkZWZ1 biBwci1raWxsLWhlbHAgKCZyZXN0IGlnbm9yZSkKKyhkZWZ1biBwci1raWxsLWhlbHAgKCZyZXN0 IF9pZ25vcmUpCiAgICJLaWxsIGFsbCBwcmludGluZyBoZWxwIGJ1ZmZlci4iCiAgIChpbnRlcmFj dGl2ZSkKICAgKGxldCAoKGhlbHAgJygiKlByaW50aW5nIEludGVyZmFjZSBIZWxwKiIgIipQcmlu dGluZyBIZWxwKiIKQEAgLTYzODgsMjAgKzYzODgsMjAgQEAgQ09NTUFORC5leGUsIENPTU1BTkQu YmF0IGFuZCBDT01NQU5ELmNvbSBpbiB0aGlzIG9yZGVyLiIKICAgKHJlY2VudGVyICgtICh3aW5k b3ctaGVpZ2h0KSAyKSkpCiAKIAotKGRlZnVuIHByLWludGVyZmFjZS1xdWl0ICgmcmVzdCBpZ25v cmUpCisoZGVmdW4gcHItaW50ZXJmYWNlLXF1aXQgKCZyZXN0IF9pZ25vcmUpCiAgICJLaWxsIHRo ZSBwcmludGluZyBidWZmZXIgaW50ZXJmYWNlIGFuZCBxdWl0LiIKICAgKGludGVyYWN0aXZlKQog ICAoa2lsbC1idWZmZXIgcHItYnVmZmVyLW5hbWUpCiAgIChzZXQtd2luZG93LWNvbmZpZ3VyYXRp b24gcHItaS13aW5kb3ctY29uZmlndXJhdGlvbikpCiAKIAotKGRlZnVuIHByLWludGVyZmFjZS1o ZWxwICgmcmVzdCBpZ25vcmUpCisoZGVmdW4gcHItaW50ZXJmYWNlLWhlbHAgKCZyZXN0IF9pZ25v cmUpCiAgICJwcmludGluZyBidWZmZXIgaW50ZXJmYWNlIGhlbHAuIgogICAoaW50ZXJhY3RpdmUp CiAgIChwci1zaG93LXNldHVwIHByLWludGVyZmFjZS1oZWxwLW1lc3NhZ2UgIipQcmludGluZyBJ bnRlcmZhY2UgSGVscCoiKSkKIAogCi0oZGVmdW4gcHItaW50ZXJmYWNlLXR4dC1wcmludCAoJnJl c3QgaWdub3JlKQorKGRlZnVuIHByLWludGVyZmFjZS10eHQtcHJpbnQgKCZyZXN0IF9pZ25vcmUp CiAgICJQcmludCB1c2luZyBscHIgcGFja2FnZS4iCiAgIChpbnRlcmFjdGl2ZSkKICAgKGNvbmRp dGlvbi1jYXNlIGRhdGEKQEAgLTY0MzMsNyArNjQzMyw3IEBAIENPTU1BTkQuZXhlLCBDT01NQU5E LmJhdCBhbmQgQ09NTUFORC5jb20gaW4gdGhpcyBvcmRlci4iCiAgICAgIChtZXNzYWdlICIlcyIg KGVycm9yLW1lc3NhZ2Utc3RyaW5nIGRhdGEpKSkpKQogCiAKLShkZWZ1biBwci1pbnRlcmZhY2Ut cHJpbnRpZnkgKCZyZXN0IGlnbm9yZSkKKyhkZWZ1biBwci1pbnRlcmZhY2UtcHJpbnRpZnkgKCZy ZXN0IF9pZ25vcmUpCiAgICJQcmludGlmeSBhIGJ1ZmZlci4iCiAgIChpbnRlcmFjdGl2ZSkKICAg KGNvbmRpdGlvbi1jYXNlIGRhdGEKQEAgLTY0NTgsNyArNjQ1OCw3IEBAIENPTU1BTkQuZXhlLCBD T01NQU5ELmJhdCBhbmQgQ09NTUFORC5jb20gaW4gdGhpcyBvcmRlci4iCiAgICAgIChtZXNzYWdl ICIlcyIgKGVycm9yLW1lc3NhZ2Utc3RyaW5nIGRhdGEpKSkpKQogCiAKLShkZWZ1biBwci1pbnRl cmZhY2UtcHMtcHJpbnQgKCZyZXN0IGlnbm9yZSkKKyhkZWZ1biBwci1pbnRlcmZhY2UtcHMtcHJp bnQgKCZyZXN0IF9pZ25vcmUpCiAgICJQcmludCB1c2luZyBwcy1wcmludCBwYWNrYWdlLiIKICAg KGludGVyYWN0aXZlKQogICAocHItaW50ZXJmYWNlLXBzICdwci1kZXNwb29sLXBzLXByaW50ICdw ci1wcy1kaXJlY3RvcnktcHMtcHJpbnQKQEAgLTY0NjcsNyArNjQ2Nyw3IEBAIENPTU1BTkQuZXhl LCBDT01NQU5ELmJhdCBhbmQgQ09NTUFORC5jb20gaW4gdGhpcyBvcmRlci4iCiAJCSAgICdwci1w cy1idWZmZXItcHMtcHJpbnQpKQogCiAKLShkZWZ1biBwci1pbnRlcmZhY2UtcHJldmlldyAoJnJl c3QgaWdub3JlKQorKGRlZnVuIHByLWludGVyZmFjZS1wcmV2aWV3ICgmcmVzdCBfaWdub3JlKQog ICAiUHJldmlldyBhIFBvc3RTY3JpcHQgZmlsZS4iCiAgIChpbnRlcmFjdGl2ZSkKICAgKHByLWlu dGVyZmFjZS1wcyAncHItZGVzcG9vbC1wcmV2aWV3ICdwci1wcy1kaXJlY3RvcnktcHJldmlldwpA QCAtNjU0OCw3ICs2NTQ4LDcgQEAgQ09NTUFORC5leGUsIENPTU1BTkQuYmF0IGFuZCBDT01NQU5E LmNvbSBpbiB0aGlzIG9yZGVyLiIKICAgICAgIChlcnJvciAiUGxlYXNlIHNwZWNpZnkgYmUgYSBy ZWFkYWJsZSBkaXJlY3RvcnkiKSkpCiAKIAotKGRlZnVuIHByLWludGVyZmFjZS1kaXJlY3Rvcnkg KHdpZGdldCAmcmVzdCBpZ25vcmUpCisoZGVmdW4gcHItaW50ZXJmYWNlLWRpcmVjdG9yeSAod2lk Z2V0ICZyZXN0IF9pZ25vcmUpCiAgIChhbmQgcHItYnVmZmVyLXZlcmJvc2UKICAgICAgICAobWVz c2FnZSAiWW91IGNhbiB1c2UgTS1UQUIgb3IgRVNDIFRBQiBmb3IgZmlsZSBjb21wbGV0aW9uIikp CiAgIChsZXQgKChkaXIgKHdpZGdldC12YWx1ZSB3aWRnZXQpKSkKQEAgLTY1NTcsNyArNjU1Nyw3 IEBAIENPTU1BTkQuZXhlLCBDT01NQU5ELmJhdCBhbmQgQ09NTUFORC5jb20gaW4gdGhpcyBvcmRl ci4iCiAJIChzZXRxIHByLWktZGlyZWN0b3J5IGRpcikpKSkKIAogCi0oZGVmdW4gcHItaW50ZXJm YWNlLWluZmlsZSAod2lkZ2V0ICZyZXN0IGlnbm9yZSkKKyhkZWZ1biBwci1pbnRlcmZhY2UtaW5m aWxlICh3aWRnZXQgJnJlc3QgX2lnbm9yZSkKICAgKGFuZCBwci1idWZmZXItdmVyYm9zZQogICAg ICAgIChtZXNzYWdlICJZb3UgY2FuIHVzZSBNLVRBQiBvciBFU0MgVEFCIGZvciBmaWxlIGNvbXBs ZXRpb24iKSkKICAgKGxldCAoKGZpbGUgKHdpZGdldC12YWx1ZSB3aWRnZXQpKSkKQEAgLTY1NjYs NyArNjU2Niw3IEBAIENPTU1BTkQuZXhlLCBDT01NQU5ELmJhdCBhbmQgQ09NTUFORC5jb20gaW4g dGhpcyBvcmRlci4iCiAJIChzZXRxIHByLWktcHMtZmlsZSBmaWxlKSkpKQogCiAKLShkZWZ1biBw ci1pbnRlcmZhY2Utb3V0ZmlsZSAod2lkZ2V0ICZyZXN0IGlnbm9yZSkKKyhkZWZ1biBwci1pbnRl cmZhY2Utb3V0ZmlsZSAod2lkZ2V0ICZyZXN0IF9pZ25vcmUpCiAgIChzZXRxIHByLWktYW5zd2Vy LXllcyBuaWwpCiAgIChhbmQgcHItYnVmZmVyLXZlcmJvc2UKICAgICAgICAobWVzc2FnZSAiWW91 IGNhbiB1c2UgTS1UQUIgb3IgRVNDIFRBQiBmb3IgZmlsZSBjb21wbGV0aW9uIikpCkBAIC02NjAy LDcgKzY2MDIsNyBAQCBDT01NQU5ELmV4ZSwgQ09NTUFORC5iYXQgYW5kIENPTU1BTkQuY29tIGlu IHRoaXMgb3JkZXIuIgogCiAoZGVmdW4gcHItaW5zZXJ0LXRvZ2dsZSAodmFyLXN5bSBsYWJlbCkK ICAgKHdpZGdldC1jcmVhdGUgJ2NoZWNrYm94Ci0JCSA6bm90aWZ5IGAobGFtYmRhICgmcmVzdCBp Z25vcmUpCisJCSA6bm90aWZ5IGAobGFtYmRhICgmcmVzdCBfaWdub3JlKQogCQkJICAgIChzZXRx ICx2YXItc3ltIChub3QgLHZhci1zeW0pKSkKIAkJIChzeW1ib2wtdmFsdWUgdmFyLXN5bSkpCiAg ICh3aWRnZXQtaW5zZXJ0IGxhYmVsKSkKQEAgLTY2MjMsNyArNjYyMyw3IEBAIENPTU1BTkQuZXhl LCBDT01NQU5ELmJhdCBhbmQgQ09NTUFORC5jb20gaW4gdGhpcyBvcmRlci4iCiAJCQk6Zm9ybWF0 ICIldiIKIAkJCTppbmxpbmUgdAogCQkJOnZhbHVlICx2YXItc3ltCi0JCQk6bm90aWZ5IChsYW1i ZGEgKHdpZGdldCAmcmVzdCBpZ25vcmUpCisJCQk6bm90aWZ5IChsYW1iZGEgKHdpZGdldCAmcmVz dCBfaWdub3JlKQogCQkJCSAgKHNldHEgLHZhci1zeW0gKHdpZGdldC12YWx1ZSB3aWRnZXQpKQog CQkJCSAgLEBib2R5KQogCQkJOnZvaWQgJyhjaG9pY2UtaXRlbSA6Zm9ybWF0ICIlWyV0JV0iCkBA IC02NjM5LDcgKzY2MzksNyBAQCBDT01NQU5ELmV4ZSwgQ09NTUFORC5iYXQgYW5kIENPTU1BTkQu Y29tIGluIHRoaXMgb3JkZXIuIgogCQkgICAgICdyYWRpby1idXR0b24KIAkJICAgICA6Zm9ybWF0 ICIgICVbJXYlXSIKIAkJICAgICA6dmFsdWUgKGVxICx2YXItc3ltIChxdW90ZSAsc3ltKSkKLQkJ ICAgICA6bm90aWZ5IChsYW1iZGEgKCZyZXN0IGlnbm9yZSkKKwkJICAgICA6bm90aWZ5IChsYW1i ZGEgKCZyZXN0IF9pZ25vcmUpCiAJCQkgICAgICAgKHNldHEgLHZhci1zeW0gKHF1b3RlICxzeW0p KQogCQkJICAgICAgIChwci11cGRhdGUtcmFkaW8tYnV0dG9uIChxdW90ZSAsdmFyLXN5bSkpKSkp KSkKICAgICAocHV0IHZhci1zeW0gJ3ByLXdpZGdldC1saXN0IChjb25zIChjb25zIHdpZCBzeW0p IHdpZC1saXN0KSkpKQpkaWZmIC0tZ2l0IGEvbGlzcC92Yy9lZGlmZi1kaWZmLmVsIGIvbGlzcC92 Yy9lZGlmZi1kaWZmLmVsCmluZGV4IDNlNjQyNTAuLjNmMGVmM2EgMTAwNjQ0Ci0tLSBhL2xpc3Av dmMvZWRpZmYtZGlmZi5lbAorKysgYi9saXNwL3ZjL2VkaWZmLWRpZmYuZWwKQEAgLTIxMSw3ICsy MTEsNyBAQCBvbmUgb3B0aW9uYWwgYXJndW1lbnRzLCBkaWZmLW51bWJlciB0byByZWZpbmUuIikK IDs7IGVkaWZmLXNldHVwLWRpZmYtcmVnaW9ucyBpcyBjYWxsZWQgdmlhIGEgZnVuY2FsbCB0bwog OzsgZWRpZmYtc2V0dXAtZGlmZi1yZWdpb25zLWZ1bmN0aW9uLCB3aGljaCBjYW4gYWxzbyBoYXZl IHRoZSB2YWx1ZQogOzsgZWRpZmYtc2V0dXAtZGlmZi1yZWdpb25zMywgd2hpY2ggdGFrZXMgNCBh cmd1bWVudHMuCi0oZGVmdW4gZWRpZmYtc2V0dXAtZGlmZi1yZWdpb25zIChmaWxlLUEgZmlsZS1C IGZpbGUtQykKKyhkZWZ1biBlZGlmZi1zZXR1cC1kaWZmLXJlZ2lvbnMgKGZpbGUtQSBmaWxlLUIg X2ZpbGUtQykKICAgOzsgbG9va2luZyBmb3IgJy1jJywgJy1pJywgJy11Jywgb3IgJ2MnLCAnaScs ICd1JyBhbW9uZyBjbHVzdGVyZWQgbm9uLWxvbmcgb3B0aW9ucwogICAoaWYgKHN0cmluZy1tYXRj aCAiXi1bY2l1XVxcfCAtW2NpdV1cXHxcXCheXFx8IFxcKS1bXi0gXStbY2l1XSIKIAkJICAgIGVk aWZmLWRpZmYtb3B0aW9ucykKQEAgLTEyMjMsNyArMTIyMyw3IEBAIGRlbGltaXRlciByZWdpb25z IikpCiA7OyBsaWtlIHNoZWxsLWNvbW1hbmQtc2VudGluZWwgYnV0IGRvZXNuJ3QgcHJpbnQgYW4g ZXhpdCBzdGF0dXMgbWVzc2FnZQogOzsgd2UgZG8gdGhpcyBiZWNhdXNlIGRpZmYgYWx3YXlzIGV4 aXRzIHdpdGggc3RhdHVzIDEsIGlmIGRpZmZzIGFyZSBmb3VuZAogOzsgc28gc2hlbGwtY29tbWFu ZC1zZW50aW5lbCBkaXNwbGF5cyBhIGNvbmZ1c2luZyBtZXNzYWdlIHRvIHRoZSB1c2VyCi0oZGVm dW4gZWRpZmYtcHJvY2Vzcy1zZW50aW5lbCAocHJvY2VzcyBzaWduYWwpCisoZGVmdW4gZWRpZmYt cHJvY2Vzcy1zZW50aW5lbCAocHJvY2VzcyBfc2lnbmFsKQogICAoaWYgKGFuZCAobWVtcSAocHJv Y2Vzcy1zdGF0dXMgcHJvY2VzcykgJyhleGl0IHNpZ25hbCkpCiAgICAgICAgICAgIChidWZmZXIt bmFtZSAocHJvY2Vzcy1idWZmZXIgcHJvY2VzcykpKQogICAgICAgKHByb2duCmRpZmYgLS1naXQg YS9saXNwL3ZjL2VkaWZmLWluaXQuZWwgYi9saXNwL3ZjL2VkaWZmLWluaXQuZWwKaW5kZXggMDc1 Nzc1OS4uYzlmMzU4MyAxMDA2NDQKLS0tIGEvbGlzcC92Yy9lZGlmZi1pbml0LmVsCisrKyBiL2xp c3AvdmMvZWRpZmYtaW5pdC5lbApAQCAtODEwLDcgKzgxMCw3IEBAIFRZUEUtT0YtRU1BQ1MgaXMg ZWl0aGVyICd4ZW1hY3Mgb3IgJ2VtYWNzLiIKICAgKGVkaWZmLW92ZXJsYXktcHV0IGV4dGVudCAn ZmFjZSBmYWNlKQogICAoZWRpZmYtb3ZlcmxheS1wdXQgZXh0ZW50ICdoZWxwLWVjaG8gJ2VkaWZm LXJlZ2lvbi1oZWxwLWVjaG8pKQogCi0oZGVmdW4gZWRpZmYtcmVnaW9uLWhlbHAtZWNobyAoZXh0 ZW50LW9yLXdpbmRvdyAmb3B0aW9uYWwgb3ZlcmxheSBwb2ludCkKKyhkZWZ1biBlZGlmZi1yZWdp b24taGVscC1lY2hvIChleHRlbnQtb3Itd2luZG93ICZvcHRpb25hbCBvdmVybGF5IF9wb2ludCkK ICAgKHVubGVzcyBvdmVybGF5CiAgICAgKHNldHEgb3ZlcmxheSBleHRlbnQtb3Itd2luZG93KSkK ICAgKGxldCAoKGlzLWN1cnJlbnQgKGVkaWZmLW92ZXJsYXktZ2V0IG92ZXJsYXkgJ2VkaWZmKSkK QEAgLTE3NjgsNyArMTc2OCw3IEBAIFVubGVzcyBvcHRpb25hbCBhcmd1bWVudCBJTlBMQUNFIGlz IG5vbi1uaWwsIHJldHVybiBhIG5ldyBzdHJpbmcuIgogICAob3IgbiAoc2V0cSBuIGVkaWZmLWN1 cnJlbnQtZGlmZmVyZW5jZSkpCiAgIChhbmQgKD49IG4gMCkgKDwgbiBlZGlmZi1udW1iZXItb2Yt ZGlmZmVyZW5jZXMpKSkKIAotKGRlZnN1YnN0IGVkaWZmLXNob3ctYWxsLWRpZmZzIChuKQorKGRl ZnN1YnN0IGVkaWZmLXNob3ctYWxsLWRpZmZzIChfbikKICAgIkRvbid0IHNraXAgZGlmZmVyZW5j ZSByZWdpb25zLiIKICAgbmlsKQogCmRpZmYgLS1naXQgYS9saXNwL3ZjL2VkaWZmLW1lcmcuZWwg Yi9saXNwL3ZjL2VkaWZmLW1lcmcuZWwKaW5kZXggYTFmNGQ0Zi4uYTMxOWQ4ZCAxMDA2NDQKLS0t IGEvbGlzcC92Yy9lZGlmZi1tZXJnLmVsCisrKyBiL2xpc3AvdmMvZWRpZmYtbWVyZy5lbApAQCAt OTIsNiArOTIsOCBAQCBCdWZmZXIgQi4iCiAgICkKIChtYWtlLXZhcmlhYmxlLWJ1ZmZlci1sb2Nh bCAnZWRpZmYtc2tpcC1tZXJnZS1yZWdpb25zLXRoYXQtZGlmZmVyLWZyb20tZGVmYXVsdCkKIAor KGRlZnZhciBzdGF0ZS1vZi1tZXJnZSkJCQk7IGR5bmFtaWMgdmFyCisKIDs7IGNoZWNrIGlmIHRo ZXJlIGlzIG5vIGNsYXNoIGJldHdlZW4gdGhlIGFuY2VzdG9yIGFuZCBvbmUgb2YgdGhlIHZhcmlh bnRzLgogOzsgaWYgaXQgaXMgbm90IGEgbWVyZ2Ugam9iIHRoZW4gcmV0dXJuIHRydWUKIChkZWZ1 biBlZGlmZi1tZXJnZS1yZWdpb24taXMtbm9uLWNsYXNoIChuKQpAQCAtMzUxLDggKzM1Myw2IEBA IENvbWJpbmluZyBpcyBkb25lIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWNhdGlvbnMgaW4gdmFy aWFibGUKIAkocmV2ZXJzZSBkZWxpbS1yZWdzLWxpc3QpCiAJKSkpCiAKLShkZWZ2YXIgc3RhdGUt b2YtbWVyZ2UpCQkJOyBkeW5hbWljIHZhcgotCiA7OyBDaGVjayBpZiB0aGUgbm9uLXByZWZlcnJl ZCBtZXJnZSBoYXMgYmVlbiBtb2RpZmllZCBzaW5jZSBvcmlnaW5hbGx5IHNldC4KIDs7IFRoaXMg YWZmZWN0cyBvbmx5IHRoZSByZWdpb25zIHRoYXQgYXJlIG1hcmtlZCBhcyBkZWZhdWx0LUEvQiBv ciBjb21iaW5lZC4KIDs7IElmIFBSRUZFUlMtVE9PIGlzIG5vbi1uaWwsIHRoZW4gbG9vayBhdCB0 aGUgcmVnaW9ucyBtYXJrZWQgYXMgcHJlZmVycy1BL0IgYXMKZGlmZiAtLWdpdCBhL2xpc3AvdmMv ZWRpZmYtbXVsdC5lbCBiL2xpc3AvdmMvZWRpZmYtbXVsdC5lbAppbmRleCA1OGUxMDgxLi41NWU5 NDY1IDEwMDY0NAotLS0gYS9saXNwL3ZjL2VkaWZmLW11bHQuZWwKKysrIGIvbGlzcC92Yy9lZGlm Zi1tdWx0LmVsCkBAIC0xMTE1LDcgKzExMTUsNyBAQCBiZWhhdmlvci4iCiAgICAgKHNldHEgb3Zl cmwKIAkgIChpZiAoZmVhdHVyZXAgJ3hlbWFjcykKIAkgICAgICAobWFwLWV4dGVudHMKLQkgICAg ICAgKGxhbWJkYSAoZXh0IG1hcGFyZykKKwkgICAgICAgKGxhbWJkYSAoZXh0IF9tYXBhcmcpCiAJ CSAoaWYgKGFuZAogCQkgICAgICAoZWRpZmYtb3ZlcmxheS1nZXQgZXh0ICdlZGlmZi1tZXRhLWlu Zm8pCiAJCSAgICAgIChlcSAoZWRpZmYtb3ZlcmxheS1nZXQgZXh0ICdlZGlmZi1tZXRhLXNlc3Np b24tbnVtYmVyKQpAQCAtMTQ0NCw3ICsxNDQ0LDcgQEAgVXNlZnVsIGNvbW1hbmRzOgogCiAKIDs7 IGFyZ3VtZW50IGlzIGlnbm9yZWQKLShkZWZ1biBlZGlmZi1yZWRyYXctcmVnaXN0cnktYnVmZmVy ICgmb3B0aW9uYWwgaWdub3JlKQorKGRlZnVuIGVkaWZmLXJlZHJhdy1yZWdpc3RyeS1idWZmZXIg KCZvcHRpb25hbCBfaWdub3JlKQogICAoZWRpZmYtd2l0aC1jdXJyZW50LWJ1ZmZlciBlZGlmZi1y ZWdpc3RyeS1idWZmZXIKICAgICAobGV0ICgocG9pbnQgKHBvaW50KSkKIAkgIGVsdCBidWZBbmFt ZSBidWZCbmFtZSBidWZDbmFtZSBjdXItZGlmZiB0b3RhbC1kaWZmcyBwdApkaWZmIC0tZ2l0IGEv bGlzcC92Yy9lZGlmZi11dGlsLmVsIGIvbGlzcC92Yy9lZGlmZi11dGlsLmVsCmluZGV4IDJmMmM3 MWEuLmZlNzkxZjYgMTAwNjQ0Ci0tLSBhL2xpc3AvdmMvZWRpZmYtdXRpbC5lbAorKysgYi9saXNw L3ZjL2VkaWZmLXV0aWwuZWwKQEAgLTQwLDcgKzQwLDcgQEAKIChkZWZ2YXIgZWRpZmYtYWZ0ZXIt cXVpdC1ob29rLWludGVybmFsIG5pbCkKIAogKGV2YWwtYW5kLWNvbXBpbGUKLSAgKHVubGVzcyAo ZmJvdW5kcCAnZGVjbGFyZS1mdW5jdGlvbikgKGRlZm1hY3JvIGRlY2xhcmUtZnVuY3Rpb24gKCZy ZXN0ICByKSkpKQorICAodW5sZXNzIChmYm91bmRwICdkZWNsYXJlLWZ1bmN0aW9uKSAoZGVmbWFj cm8gZGVjbGFyZS1mdW5jdGlvbiAoJnJlc3QgIF9yKSkpKQogCiA7OyBlbmQgcGFjaWZpZXIKIApA QCAtMTYwMiw3ICsxNjAyLDcgQEAgdGhlIHdpZHRoIG9mIHRoZSBBL0IvQyB3aW5kb3dzLiIKIDs7 QkVHLCBFTkQgc2hvdyB0aGUgcmVnaW9uIHRvIGJlIHBvc2l0aW9uZWQuCiA7O0pPQi1OQU1FIGhv bGRzIGVkaWZmLWpvYi1uYW1lLiAgVGhlIGVkaWZmLXdpbmRvd3Mgam9iIHBvc2l0aW9ucyByZWdp b25zCiA7O2RpZmZlcmVudGx5LgotKGRlZnVuIGVkaWZmLXBvc2l0aW9uLXJlZ2lvbiAoYmVnIGVu ZCBwb3Mgam9iLW5hbWUpCisoZGVmdW4gZWRpZmYtcG9zaXRpb24tcmVnaW9uIChiZWcgZW5kIHBv cyBfam9iLW5hbWUpCiAgIChpZiAoPiBlbmQgKHBvaW50LW1heCkpCiAgICAgICAoc2V0cSBlbmQg KHBvaW50LW1heCkpKQogICAoaWYgZWRpZmYtd2luZG93cy1qb2IKQEAgLTE2ODUsNyArMTY4NSw3 IEBAIHRoZSB3aWR0aCBvZiB0aGUgQS9CL0Mgd2luZG93cy4iCiAJCQkgICAgJ2VkaWZmLWdldC1s aW5lcy10by1yZWdpb24tc3RhcnQpCiAJCQkgICAoKGVxIG9wICdzY3JvbGwtdXApCiAJCQkgICAg J2VkaWZmLWdldC1saW5lcy10by1yZWdpb24tZW5kKQotCQkJICAgKHQgKGxhbWJkYSAoYSBiIGMp IDApKSkpCisJCQkgICAodCAobGFtYmRhIChfYSBfYiBfYykgMCkpKSkKIAkgICAgICAgKG1heC1s aW5lcyAobWF4IChmdW5jYWxsIGZ1bmMgJ0EgbiBjdGwtYnVmKQogCQkJICAgICAgIChmdW5jYWxs IGZ1bmMgJ0IgbiBjdGwtYnVmKQogCQkJICAgICAgIChpZiAoZWRpZmYtYnVmZmVyLWxpdmUtcCBl ZGlmZi1idWZmZXItQykKZGlmZiAtLWdpdCBhL2xpc3AvdmMvZWRpZmYtd2luZC5lbCBiL2xpc3Av dmMvZWRpZmYtd2luZC5lbAppbmRleCA1YTE0YzE5Li43ODU1MzViIDEwMDY0NAotLS0gYS9saXNw L3ZjL2VkaWZmLXdpbmQuZWwKKysrIGIvbGlzcC92Yy9lZGlmZi13aW5kLmVsCkBAIC00MCw3ICs0 MCw3IEBACiAKIDs7IGRlY2xhcmUtZnVuY3Rpb24gZG9lcyBub3QgZXhpc3QgaW4gWEVtYWNzCiAo ZXZhbC1hbmQtY29tcGlsZQotICAodW5sZXNzIChmYm91bmRwICdkZWNsYXJlLWZ1bmN0aW9uKSAo ZGVmbWFjcm8gZGVjbGFyZS1mdW5jdGlvbiAoJnJlc3QgIHIpKSkpCisgICh1bmxlc3MgKGZib3Vu ZHAgJ2RlY2xhcmUtZnVuY3Rpb24pIChkZWZtYWNybyBkZWNsYXJlLWZ1bmN0aW9uICgmcmVzdCAg X3IpKSkpCiAKIChyZXF1aXJlICdlZGlmZi1pbml0KQogKHJlcXVpcmUgJ2VkaWZmLWhlbHApCkBA IC0yODAsNyArMjgwLDcgQEAgaW50byBpY29ucywgcmVnYXJkbGVzcyBvZiB0aGUgd2luZG93IG1h bmFnZXIuIgogCiA7OzsgRnVuY3Rpb25zCiAKLShkZWZ1biBlZGlmZi1nZXQtd2luZG93LWJ5LWNs aWNraW5nICh3aW5kIHByZXYtd2luZCB3aW5kLW51bWJlcikKKyhkZWZ1biBlZGlmZi1nZXQtd2lu ZG93LWJ5LWNsaWNraW5nIChfd2luZCBfcHJldi13aW5kIHdpbmQtbnVtYmVyKQogICAobGV0IChl dmVudCkKICAgICAobWVzc2FnZQogICAgICAiU2VsZWN0IHdpbmRvd3MgYnkgY2xpY2tpbmcuICBQ bGVhc2UgY2xpY2sgb24gV2luZG93ICVkICIgd2luZC1udW1iZXIpCkBAIC0yODksOSArMjg5LDkg QEAgaW50byBpY29ucywgcmVnYXJkbGVzcyBvZiB0aGUgd2luZG93IG1hbmFnZXIuIgogCSAgKGJl ZXAgMSkpCiAgICAgICAobWVzc2FnZSAiUGxlYXNlIGNsaWNrIG9uIFdpbmRvdyAlZCAiIHdpbmQt bnVtYmVyKSkKICAgICAoZWRpZmYtcmVhZC1ldmVudCkgOyBkaXNjYXJkIGV2ZW50Ci0gICAgKHNl dHEgd2luZCAoaWYgKGZlYXR1cmVwICd4ZW1hY3MpCi0JCSAgIChldmVudC13aW5kb3cgZXZlbnQp Ci0JCSAocG9zbi13aW5kb3cgKGV2ZW50LXN0YXJ0IGV2ZW50KSkpKSkpCisgICAgKGlmIChmZWF0 dXJlcCAneGVtYWNzKQorICAgICAgICAoZXZlbnQtd2luZG93IGV2ZW50KQorICAgICAgKHBvc24t d2luZG93IChldmVudC1zdGFydCBldmVudCkpKSkpCiAKIAogOzsgU2VsZWN0IHRoZSBsb3dlc3Qg d2luZG93IG9uIHRoZSBmcmFtZS4KZGlmZiAtLWdpdCBhL2xpc3AvdmMvZWRpZmYuZWwgYi9saXNw L3ZjL2VkaWZmLmVsCmluZGV4IGQzNWMzZTUuLjlhYjU5MjUgMTAwNjQ0Ci0tLSBhL2xpc3AvdmMv ZWRpZmYuZWwKKysrIGIvbGlzcC92Yy9lZGlmZi5lbApAQCAtMTE0LDcgKzExNCw3IEBACiAKIDs7 IENvbXBpbGVyIHBhY2lmaWVyCiAoZXZhbC1hbmQtY29tcGlsZQotICAodW5sZXNzIChmYm91bmRw ICdkZWNsYXJlLWZ1bmN0aW9uKSAoZGVmbWFjcm8gZGVjbGFyZS1mdW5jdGlvbiAoJnJlc3QgIHIp KSkpCisgICh1bmxlc3MgKGZib3VuZHAgJ2RlY2xhcmUtZnVuY3Rpb24pIChkZWZtYWNybyBkZWNs YXJlLWZ1bmN0aW9uICgmcmVzdCAgX3IpKSkpCiAKIChyZXF1aXJlICdlZGlmZi11dGlsKQogOzsg ZW5kIHBhY2lmaWVyCmRpZmYgLS1naXQgYS9saXNwL3ZjL2VtZXJnZS5lbCBiL2xpc3AvdmMvZW1l cmdlLmVsCmluZGV4IDhkMGU4ZWYuLmFmMTM2NjUgMTAwNjQ0Ci0tLSBhL2xpc3AvdmMvZW1lcmdl LmVsCisrKyBiL2xpc3AvdmMvZW1lcmdlLmVsCkBAIC04NDksNyArODQ5LDcgQEAgVGhpcyBpcyAq bm90KiBhIHVzZXIgb3B0aW9uLCBzaW5jZSBFbWVyZ2UgdXNlcyBpdCBmb3IgaXRzIG93biBwcm9j ZXNzaW5nLiIpCiA7OzsgRnVuY3Rpb25zIHRvIHN0YXJ0IEVtZXJnZSBvbiBmaWxlcwogCiA7Ozsj IyNhdXRvbG9hZAotKGRlZnVuIGVtZXJnZS1maWxlcyAoYXJnIGZpbGUtQSBmaWxlLUIgZmlsZS1v dXQgJm9wdGlvbmFsIHN0YXJ0dXAtaG9va3MKKyhkZWZ1biBlbWVyZ2UtZmlsZXMgKF9hcmcgZmls ZS1BIGZpbGUtQiBmaWxlLW91dCAmb3B0aW9uYWwgc3RhcnR1cC1ob29rcwogCQkgICAgIHF1aXQt aG9va3MpCiAgICJSdW4gRW1lcmdlIG9uIHR3byBmaWxlcy4iCiAgIChpbnRlcmFjdGl2ZQpAQCAt ODY5LDcgKzg2OSw3IEBAIFRoaXMgaXMgKm5vdCogYSB1c2VyIG9wdGlvbiwgc2luY2UgRW1lcmdl IHVzZXMgaXQgZm9yIGl0cyBvd24gcHJvY2Vzc2luZy4iKQogICAgZmlsZS1vdXQpKQogCiA7Ozsj IyNhdXRvbG9hZAotKGRlZnVuIGVtZXJnZS1maWxlcy13aXRoLWFuY2VzdG9yIChhcmcgZmlsZS1B IGZpbGUtQiBmaWxlLWFuY2VzdG9yIGZpbGUtb3V0CisoZGVmdW4gZW1lcmdlLWZpbGVzLXdpdGgt YW5jZXN0b3IgKF9hcmcgZmlsZS1BIGZpbGUtQiBmaWxlLWFuY2VzdG9yIGZpbGUtb3V0CiAJCQkJ ICAgJm9wdGlvbmFsIHN0YXJ0dXAtaG9va3MgcXVpdC1ob29rcykKICAgIlJ1biBFbWVyZ2Ugb24g dHdvIGZpbGVzLCBnaXZpbmcgYW5vdGhlciBmaWxlIGFzIHRoZSBhbmNlc3Rvci4iCiAgIChpbnRl cmFjdGl2ZQpAQCAtMTA2Myw3ICsxMDYzLDcgQEAgVGhpcyBpcyAqbm90KiBhIHVzZXIgb3B0aW9u LCBzaW5jZSBFbWVyZ2UgdXNlcyBpdCBmb3IgaXRzIG93biBwcm9jZXNzaW5nLiIpCiAgICAgICAg cXVpdC1ob29rcykpKQogCiAoZGVmdW4gZW1lcmdlLXJldmlzaW9ucy1pbnRlcm5hbCAoZmlsZSBy ZXZpc2lvbi1BIHJldmlzaW9uLUIgJm9wdGlvbmFsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RhcnR1cC1ob29rcyBxdWl0LWhvb2tzIG91dHB1dC1maWxlKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0dXAtaG9va3MgcXVpdC1ob29rcyBfb3V0cHV0 LWZpbGUpCiAgIChsZXQgKChidWZmZXItQSAoZ2V0LWJ1ZmZlci1jcmVhdGUgKGZvcm1hdCAiJXMs JXMiIGZpbGUgcmV2aXNpb24tQSkpKQogCShidWZmZXItQiAoZ2V0LWJ1ZmZlci1jcmVhdGUgKGZv cm1hdCAiJXMsJXMiIGZpbGUgcmV2aXNpb24tQikpKQogCShlbWVyZ2UtZmlsZS1BIChlbWVyZ2Ut bWFrZS10ZW1wLWZpbGUgIkEiKSkKZGlmZiAtLWdpdCBhL2xpc3AvdmMvcGN2cy5lbCBiL2xpc3Av dmMvcGN2cy5lbAppbmRleCBmYjkxMTg1Li45MTRlZWY0IDEwMDY0NAotLS0gYS9saXNwL3ZjL3Bj dnMuZWwKKysrIGIvbGlzcC92Yy9wY3ZzLmVsCkBAIC02NDgsNyArNjQ4LDcgQEAgSWYgbm9uLW5p bCwgTkVXIG1lYW5zIHRvIGNyZWF0ZSBhIG5ldyBidWZmZXIgbm8gbWF0dGVyIHdoYXQuIgogCQkJ ICAgICBkb25lKSkpKQogCiAKLShkZWZ1biBjdnMtc2VudGluZWwgKHByb2MgbXNnKQorKGRlZnVu IGN2cy1zZW50aW5lbCAocHJvYyBfbXNnKQogICAiU2VudGluZWwgZm9yIHRoZSBjdnMgdXBkYXRl IHByb2Nlc3MuCiBUaGlzIGlzIHJlc3BvbnNpYmxlIGZvciBwYXJzaW5nIHRoZSBvdXRwdXQgZnJv bSB0aGUgY3ZzIHVwZGF0ZSB3aGVuCiBpdCBpcyBmaW5pc2hlZC4iCkBAIC05ODEsNyArOTgxLDcg QEAgVGhlIGZpbGVzIGFyZSBzdG9yZWQgdG8gRElSLiIKIDs7OzsKIAogKGRlZnVuLWN2cy1tb2Rl IChjdnMtbW9kZS1yZXZlcnQtYnVmZmVyIC4gU0lNUExFKQotICAgICAgICAgICAgICAgICgmb3B0 aW9uYWwgaWdub3JlLWF1dG8gbm9jb25maXJtKQorICAgICAgICAgICAgICAgICgmb3B0aW9uYWwg X2lnbm9yZS1hdXRvIF9ub2NvbmZpcm0pCiAgICJSZXJ1biBgY3ZzLWV4YW1pbmUnIG9uIHRoZSBj dXJyZW50IGRpcmVjdG9yeSB3aXRoIHRoZSBkZWZhdWx0IGZsYWdzLiIKICAgKGludGVyYWN0aXZl KQogICAoY3ZzLWV4YW1pbmUgZGVmYXVsdC1kaXJlY3RvcnkgdCkpCkBAIC05OTUsNyArOTk1LDcg QEAgSWYgaW4gYSAqY3ZzKiBidWZmZXIsIGRvbid0IHByb21wdCB1bmxlc3MgYSBwcmVmaXggYXJn dW1lbnQgaXMgZ2l2ZW4uIgogICAgIChyZWFkLWRpcmVjdG9yeS1uYW1lIHByb21wdCBuaWwgZGVm YXVsdC1kaXJlY3RvcnkgbmlsKSkpCiAKIDs7OyMjI2F1dG9sb2FkCi0oZGVmdW4gY3ZzLXF1aWNr ZGlyIChkaXIgJm9wdGlvbmFsIGZsYWdzIG5vc2hvdykKKyhkZWZ1biBjdnMtcXVpY2tkaXIgKGRp ciAmb3B0aW9uYWwgX2ZsYWdzIG5vc2hvdykKICAgIk9wZW4gYSAqY3ZzKiBidWZmZXIgb24gRElS IHdpdGhvdXQgcnVubmluZyBjdnMuCiBXaXRoIGEgcHJlZml4IGFyZ3VtZW50LCBwcm9tcHQgZm9y IGEgZGlyZWN0b3J5IHRvIHVzZS4KIEEgcHJlZml4IGFyZyA+OCAoZXg6IFxcW3VuaXZlcnNhbC1h cmd1bWVudF0gXFxbdW5pdmVyc2FsLWFyZ3VtZW50XSksCmRpZmYgLS1naXQgYS9saXNwL3ZjL3Zj LWFubm90YXRlLmVsIGIvbGlzcC92Yy92Yy1hbm5vdGF0ZS5lbAppbmRleCA4YWY0ODg3Li5lM2Y3 ZjM5IDEwMDY0NAotLS0gYS9saXNwL3ZjL3ZjLWFubm90YXRlLmVsCisrKyBiL2xpc3AvdmMvdmMt YW5ub3RhdGUuZWwKQEAgLTYzMCw3ICs2MzAsNyBAQCBvciBPRkZTRVQgaWYgcHJlc2VudC4iCiAJ ICAgICAgKHZjLWNhbGwtYmFja2VuZCB2Yy1hbm5vdGF0ZS1iYWNrZW5kICdhbm5vdGF0ZS1jdXJy ZW50LXRpbWUpKQogCSAgbmV4dC10aW1lKSkpKQogCi0oZGVmdW4gdmMtZGVmYXVsdC1hbm5vdGF0 ZS1jdXJyZW50LXRpbWUgKGJhY2tlbmQpCisoZGVmdW4gdmMtZGVmYXVsdC1hbm5vdGF0ZS1jdXJy ZW50LXRpbWUgKF9iYWNrZW5kKQogICAiUmV0dXJuIHRoZSBjdXJyZW50IHRpbWUsIGVuY29kZWQg YXMgZnJhY3Rpb25hbCBkYXlzLiIKICAgKHZjLWFubm90YXRlLWNvbnZlcnQtdGltZSAoY3VycmVu dC10aW1lKSkpCiAK --001a11c1b6d6a0cd2504e4555da8--