From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail2.protonmail.ch (mail2.protonmail.ch [185.70.40.22]) by mx.groups.io with SMTP id smtpd.web12.11232.1582114522700537391 for ; Wed, 19 Feb 2020 04:15:23 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@protonmail.com header.s=default header.b=PfYX6RvN; spf=pass (domain: protonmail.com, ip: 185.70.40.22, mailfrom: vit9696@protonmail.com) Date: Wed, 19 Feb 2020 12:15:11 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=default; t=1582114519; bh=hRBniWVQrB9g3wAujoPqynLHU4mPJrDs8+5CSJZn8zM=; h=Date:To:From:Reply-To:Subject:In-Reply-To:References:Feedback-ID: From; b=PfYX6RvN05P2sK7giF5HyX5LBDDvef9X6pDJJdfNTSKFP1HvLzAlIbgYmgDHHSM9h K85L4bhRLyVAg8PZaU5N2/ufejcZi2C5zci0Hjad1KKHSX0iXFIG6tLs6BxS+l0p1j LsehuK+nhuInDn1+8nuvVxwrQVkX+eFb3l3H2uAs= To: "Gao, Zhichao" , "devel@edk2.groups.io" From: "Vitaly Cheptsov" Reply-To: vit9696 Subject: Re: [edk2-devel] [PATCH 1/1] ShellPkg: Add support for input with separately reported modifiers Message-ID: <_jqgwA58_jl6HqFJk6lb67C9nen1mEqrh_RbxOocaKH0G8J_QZ8mfAclsDvO-RcRB9YcmAtX8kNh2VJsFdPM9dTpvOgajbjZNKxsiOwGrBQ=@protonmail.com> In-Reply-To: References: <20200210101811.18741-1-vit9696@protonmail.com> <20200210101811.18741-2-vit9696@protonmail.com> Feedback-ID: p9QuX-L1wMgUm6nrSvNrf8juLupNs0VSnzXGVXuYDxlEahFdWtaedWDMB9zpwGDklGt7kzs1-RBc0cqz327Gcg==:Ext:ProtonMail MIME-Version: 1.0 X-Spam-Status: No, score=-0.7 required=7.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,FREEMAIL_REPLYTO_END_DIGIT,HTML_MESSAGE shortcircuit=no autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on mail.protonmail.ch Content-Type: multipart/alternative; boundary="b1_36e33b4d2a699d196d5fe0f90c6e1fec" --b1_36e33b4d2a699d196d5fe0f90c6e1fec Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 WmhpY2hhbywKClRoYW5rcyBmb3IgeW91ciByZXZpZXcuIFRoZSBjb21tZW50IGlzIGNvcnJlY3Qs IGFzIFNoaWZ0T25seVN0YXRlIG1lYW5zIHRoZSBzdGF0ZSB3aGVyZSBvbmx5IHNoaWZ0IChhbmQg bm8gb3RoZXIgbW9kaWZpZXJzKSBjYW4gYmUgcHJlc3NlZCBvciBub3QuCgpCZXN0IHdpc2hlcywK Vml0YWx5CgpPbiBXZWQsIEZlYiAxOSwgMjAyMCBhdCAwOTo1NSwgR2FvLCBaaGljaGFvIDx6aGlj aGFvLmdhb0BpbnRlbC5jb20+IHdyb3RlOgoKPiBIaSBWaXRhbHksCj4KPiBTZWUgdGhlIGNvbW1l bnQgYmVsb3c6Cj4KPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPj4gRnJvbTogZGV2ZWxA ZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgVml0YWx5 Cj4+IENoZXB0c292IHZpYSBHcm91cHMuSW8KPj4gU2VudDogTW9uZGF5LCBGZWJydWFyeSAxMCwg MjAyMCA2OjE4IFBNCj4+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbwo+PiBTdWJqZWN0OiBbZWRr Mi1kZXZlbF0gW1BBVENIIDEvMV0gU2hlbGxQa2c6IEFkZCBzdXBwb3J0IGZvciBpbnB1dCB3aXRo Cj4+IHNlcGFyYXRlbHkgcmVwb3J0ZWQgbW9kaWZpZXJzCj4+Cj4+IFJFRjogaHR0cHM6Ly9idWd6 aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTEwCj4+Cj4+IFNvbWUgZmlybXdh cmVzOgo+PiAtIFJlcG9ydCBTaGlmdCBtb2RpZmllciBldmVuIHdoZW4gdGhleSByZXBvcnQgdXBw ZXItY2FzZSB1bmljb2RlIGxldHRlci4KPj4gLSBSZXBvcnQgQ3RybCBtb2RpZmllciB3aXRoICJz aGlmdGVkIiBVbmlDaGFyIChpLmUuIFggLSAnQScgKyAxKS4KPj4KPj4gVGhpcyBjaGFuZ2UgcHJv dmlkZXMgc3VwcG9ydCBmb3IgdGhlc2UgZmlybXdhcmVzIHByZXNlcnZpbmcgdGhlIGNvbXBhdGli aWxpdHkKPj4gd2l0aCB0aGUgcHJldmlvdXMgaW5wdXQgaGFuZGxpbmcuCj4+Cj4+IFNpZ25lZC1v ZmYtYnk6IE1pY2hhZWwgQmVseWFldiA8dXNyc3NlMkBpY2xvdWQuY29tPgo+PiBSZXZpZXdlZC1i eTogVml0YWx5IENoZXB0c292IDx2aXQ5Njk2QHByb3Rvbm1haWwuY29tPgo+PiAtLS0KPj4gU2hl bGxQa2cvTGlicmFyeS9VZWZpU2hlbGxEZWJ1ZzFDb21tYW5kc0xpYi9FZGl0L01haW5UZXh0RWRp dG9yLmMgfCAzNwo+PiArKysrKysrKysrKysrKy0tLS0tLQo+PiBTaGVsbFBrZy9MaWJyYXJ5L1Vl ZmlTaGVsbERlYnVnMUNvbW1hbmRzTGliL0VkaXRJbnB1dEJhci5jIHwgMjgKPj4gKysrKysrKysr Ky0tLS0tCj4+IFNoZWxsUGtnL0xpYnJhcnkvVWVmaVNoZWxsRGVidWcxQ29tbWFuZHNMaWIvRWRp dE1lbnVCYXIuYyB8IDYgKysrKwo+PiBTaGVsbFBrZy9MaWJyYXJ5L1VlZmlTaGVsbERlYnVnMUNv bW1hbmRzTGliL0hleEVkaXQvTWFpbkhleEVkaXRvci5jIHwgMTEKPj4gKysrLS0tCj4+IDQgZmls ZXMgY2hhbmdlZCwgNTggaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYg LS1naXQKPj4gYS9TaGVsbFBrZy9MaWJyYXJ5L1VlZmlTaGVsbERlYnVnMUNvbW1hbmRzTGliL0Vk aXQvTWFpblRleHRFZGl0b3IuYwo+PiBiL1NoZWxsUGtnL0xpYnJhcnkvVWVmaVNoZWxsRGVidWcx Q29tbWFuZHNMaWIvRWRpdC9NYWluVGV4dEVkaXRvci5jCj4+IGluZGV4IGRmNTMwZjExMTkuLjk2 MTVhNGRmYmQgMTAwNjQ0Cj4+IC0tLSBhL1NoZWxsUGtnL0xpYnJhcnkvVWVmaVNoZWxsRGVidWcx Q29tbWFuZHNMaWIvRWRpdC9NYWluVGV4dEVkaXRvci5jCj4+ICsrKyBiL1NoZWxsUGtnL0xpYnJh cnkvVWVmaVNoZWxsRGVidWcxQ29tbWFuZHNMaWIvRWRpdC9NYWluVGV4dEVkaXRvci5jCj4+IEBA IC0xMzgxLDggKzEzODEsOCBAQCBNYWluQ29tbWFuZERpc3BsYXlIZWxwICgKPj4gY29udGludWU7 Cj4+IH0KPj4KPj4gLSBpZiAoKChLZXlEYXRhLktleVN0YXRlLktleVNoaWZ0U3RhdGUgJiBFRklf U0hJRlRfU1RBVEVfVkFMSUQpID09IDApIHx8Cj4+IC0gKEtleURhdGEuS2V5U3RhdGUuS2V5U2hp ZnRTdGF0ZSA9PSBFRklfU0hJRlRfU1RBVEVfVkFMSUQpKSB7Cj4+ICsgaWYgKCgoS2V5RGF0YS5L ZXlTdGF0ZS5LZXlTaGlmdFN0YXRlICYgRUZJX1NISUZUX1NUQVRFX1ZBTElEKSA9PSAwKQo+PiAr IHx8IChLZXlEYXRhLktleVN0YXRlLktleVNoaWZ0U3RhdGUgPT0gRUZJX1NISUZUX1NUQVRFX1ZB TElEKSkgewo+PiAvLwo+PiAvLyBGb3IgY29uc29sZXMgdGhhdCBkb24ndCBzdXBwb3J0L3JlcG9y dCBzaGlmdCBzdGF0ZSwKPj4gLy8gQ1RSTCtXIGlzIHRyYW5zbGF0ZWQgdG8gTCdXJyAtIEwnQScg KyAxLgo+PiBAQCAtMTM5MCwxNCArMTM5MCwxNyBAQCBNYWluQ29tbWFuZERpc3BsYXlIZWxwICgK Pj4gaWYgKEtleURhdGEuS2V5LlVuaWNvZGVDaGFyID09IEwnVycgLSBMJ0EnICsgMSkgewo+PiBi cmVhazsKPj4gfQo+PiAtIH0gZWxzZSBpZiAoKChLZXlEYXRhLktleVN0YXRlLktleVNoaWZ0U3Rh dGUgJiBFRklfU0hJRlRfU1RBVEVfVkFMSUQpICE9IDApCj4+ICYmCj4+IC0gKChLZXlEYXRhLktl eVN0YXRlLktleVNoaWZ0U3RhdGUgJiAoRUZJX0xFRlRfQ09OVFJPTF9QUkVTU0VEIHwKPj4gRUZJ X1JJR0hUX0NPTlRST0xfUFJFU1NFRCkpICE9IDApICYmCj4+IC0gKChLZXlEYXRhLktleVN0YXRl LktleVNoaWZ0U3RhdGUgJiB+KEVGSV9TSElGVF9TVEFURV9WQUxJRCB8Cj4+IEVGSV9MRUZUX0NP TlRST0xfUFJFU1NFRCB8IEVGSV9SSUdIVF9DT05UUk9MX1BSRVNTRUQpKSA9PSAwKSkgewo+PiAr IH0gZWxzZSBpZiAoKChLZXlEYXRhLktleVN0YXRlLktleVNoaWZ0U3RhdGUgJiBFRklfU0hJRlRf U1RBVEVfVkFMSUQpICE9IDApCj4+ICsgJiYgKChLZXlEYXRhLktleVN0YXRlLktleVNoaWZ0U3Rh dGUgJiAoRUZJX0xFRlRfQ09OVFJPTF9QUkVTU0VEIHwKPj4gRUZJX1JJR0hUX0NPTlRST0xfUFJF U1NFRCkpICE9IDApCj4+ICsgJiYgKChLZXlEYXRhLktleVN0YXRlLktleVNoaWZ0U3RhdGUgJgo+ PiArIH4oRUZJX1NISUZUX1NUQVRFX1ZBTElEIHwgRUZJX0xFRlRfQ09OVFJPTF9QUkVTU0VEIHwK Pj4gKyBFRklfUklHSFRfQ09OVFJPTF9QUkVTU0VEKSkgPT0gMCkpIHsKPj4gLy8KPj4gLy8gRm9y IGNvbnNvbGVzIHRoYXQgc3VwcG9ydHMvcmVwb3J0cyBzaGlmdCBzdGF0ZSwKPj4gLy8gbWFrZSBz dXJlIHRoYXQgb25seSBDT05UUk9MIHNoaWZ0IGtleSBpcyBwcmVzc2VkLgo+PiArIC8vIEZvciBz b21lIGNvbnNvbGVzIHRoYXQgcmVwb3J0IHNoaWZ0IHN0YXRlLAo+PiArIC8vIENUUkwrVyBpcyBz dGlsbCB0cmFuc2xhdGVkIHRvIEwnVycgLSBMJ0EnICsgMS4KPj4gLy8KPj4gLSBpZiAoKEtleURh dGEuS2V5LlVuaWNvZGVDaGFyID09ICd3JykgfHwgKEtleURhdGEuS2V5LlVuaWNvZGVDaGFyID09 ICdXJykpCj4+IHsKPj4gKyBpZiAoKEtleURhdGEuS2V5LlVuaWNvZGVDaGFyID09IEwndycpIHx8 IChLZXlEYXRhLktleS5Vbmljb2RlQ2hhciA9PSBMJ1cnKQo+PiArIHx8IChLZXlEYXRhLktleS5V bmljb2RlQ2hhciA9PSBMJ3cnIC0gTCdhJyArIDEpIHx8Cj4+ICsgKEtleURhdGEuS2V5LlVuaWNv ZGVDaGFyID09IEwnVycgLSBMJ0EnICsgMSkpIHsKPj4gYnJlYWs7Cj4+IH0KPj4gfQo+PiBAQCAt MTgzNCw3ICsxODM3LDggQEAgTWFpbkVkaXRvcktleUlucHV0ICgKPj4gRUZJX0tFWV9EQVRBIEtl eURhdGE7Cj4+IEVGSV9TVEFUVVMgU3RhdHVzOwo+PiBFRklfU0lNUExFX1BPSU5URVJfU1RBVEUg TW91c2VTdGF0ZTsKPj4gLSBCT09MRUFOIE5vU2hpZnRTdGF0ZTsKPj4gKyBCT09MRUFOIE5vTW9k aWZpZXJTdGF0ZTsKPj4gKyBCT09MRUFOIFNoaWZ0T25seVN0YXRlOwo+Pgo+PiBkbyB7Cj4+Cj4+ IEBAIC0xODg2LDE3ICsxODkwLDI4IEBAIE1haW5FZGl0b3JLZXlJbnB1dCAoCj4+IC8vCj4+IFN0 YXR1c0JhclNldFJlZnJlc2goKTsKPj4gLy8KPj4gLSAvLyBOb1NoaWZ0U3RhdGU6IFRSVUUgd2hl biBubyBzaGlmdCBrZXkgaXMgcHJlc3NlZC4KPj4gKyAvLyBOb01vZGlmaWVyU3RhdGU6IFRSVUUg d2hlbiBubyBtb2RpZmllciBrZXkgaXMgcHJlc3NlZC4KPj4gLy8KPj4gLSBOb1NoaWZ0U3RhdGUg PSAoKEtleURhdGEuS2V5U3RhdGUuS2V5U2hpZnRTdGF0ZSAmCj4+IEVGSV9TSElGVF9TVEFURV9W QUxJRCkgPT0gMCkgfHwgKEtleURhdGEuS2V5U3RhdGUuS2V5U2hpZnRTdGF0ZSA9PQo+PiBFRklf U0hJRlRfU1RBVEVfVkFMSUQpOwo+PiArIE5vTW9kaWZpZXJTdGF0ZSA9ICgoS2V5RGF0YS5LZXlT dGF0ZS5LZXlTaGlmdFN0YXRlICYKPj4gRUZJX1NISUZUX1NUQVRFX1ZBTElEKSA9PSAwKQo+PiAr IHx8IChLZXlEYXRhLktleVN0YXRlLktleVNoaWZ0U3RhdGUgPT0gRUZJX1NISUZUX1NUQVRFX1ZB TElEKTsKPj4gKyAvLwo+PiArIC8vIFNoaWZ0T25seVN0YXRlOiBUUlVFIHdoZW4gbm8gbW9kaWZp ZXIga2V5IGV4Y2VwdCBTaGlmdCBpcyBwcmVzc2VkLgo+PiArIC8vCj4+ICsgU2hpZnRPbmx5U3Rh dGUgPSAoKEtleURhdGEuS2V5U3RhdGUuS2V5U2hpZnRTdGF0ZSAmCj4+IEVGSV9TSElGVF9TVEFU RV9WQUxJRCkgPT0gMCkKPj4gKyB8fCAoKEtleURhdGEuS2V5U3RhdGUuS2V5U2hpZnRTdGF0ZQo+ PiArICYgfihFRklfU0hJRlRfU1RBVEVfVkFMSUQgfAo+PiArIEVGSV9MRUZUX1NISUZUX1BSRVNT RUQgfCBFRklfUklHSFRfU0hJRlRfUFJFU1NFRCkpID09IDApOwo+PiAvLwo+PiAvLyBkaXNwYXRj aCB0byBkaWZmZXJlbnQgY29tcG9uZW50cycga2V5IGhhbmRsaW5nIGZ1bmN0aW9uCj4+IC8vCj4+ IGlmIChFRklfTk9UX0ZPVU5EICE9IE1lbnVCYXJEaXNwYXRjaENvbnRyb2xIb3RLZXkoJktleURh dGEpKSB7Cj4+IFN0YXR1cyA9IEVGSV9TVUNDRVNTOwo+PiAtIH0gZWxzZSBpZiAoTm9TaGlmdFN0 YXRlICYmICgoS2V5RGF0YS5LZXkuU2NhbkNvZGUgPT0gU0NBTl9OVUxMKSB8fAo+PiAoKEtleURh dGEuS2V5LlNjYW5Db2RlID49IFNDQU5fVVApICYmIChLZXlEYXRhLktleS5TY2FuQ29kZSA8PQo+ PiBTQ0FOX1BBR0VfRE9XTikpKSkgewo+PiArIH0gZWxzZSBpZiAoKFNoaWZ0T25seVN0YXRlICYm IChLZXlEYXRhLktleS5TY2FuQ29kZSA9PSBTQ0FOX05VTEwpKQo+PiArIHx8IChOb01vZGlmaWVy U3RhdGUgJiYgKEtleURhdGEuS2V5LlNjYW5Db2RlID49IFNDQU5fVVApICYmCj4+IChLZXlEYXRh LktleS5TY2FuQ29kZSA8PSBTQ0FOX1BBR0VfRE9XTikpKSB7Cj4+ICsgLy8KPj4gKyAvLyBhbHBo YW51bWVyaWMga2V5cyB3aXRoIG9yIHdpdGhvdXQgc2hpZnQsIG9yIGFycm93IGtleXMgd2l0aG91 dCBzaGlmdAo+PiArIC8vCj4KPiBUaGlzIGlzIHVubWF0Y2hlZCB3aXRoIHRoZSBjb21tZW50cy4g SXQgb25seSBoYW5kbGVzIHRoZSBhbHBoYW51bWVyaWMga2V5cyB3aXRoIHNoaWZ0Lgo+Cj4gVGhh bmtzLAo+IFpoaWNoYW8KPgo+PiBTdGF0dXMgPSBGaWxlQnVmZmVySGFuZGxlSW5wdXQgKCZLZXlE YXRhLktleSk7Cj4+IC0gfSBlbHNlIGlmIChOb1NoaWZ0U3RhdGUgJiYgKEtleURhdGEuS2V5LlNj YW5Db2RlID49IFNDQU5fRjEpICYmCj4+IChLZXlEYXRhLktleS5TY2FuQ29kZSA8PSBTQ0FOX0Yx MikpIHsKPj4gKyB9IGVsc2UgaWYgKE5vTW9kaWZpZXJTdGF0ZSAmJiAoS2V5RGF0YS5LZXkuU2Nh bkNvZGUgPj0gU0NBTl9GMSkKPj4gKyAmJiAoS2V5RGF0YS5LZXkuU2NhbkNvZGUgPD0gU0NBTl9G MTIpKSB7Cj4+IFN0YXR1cyA9IE1lbnVCYXJEaXNwYXRjaEZ1bmN0aW9uS2V5ICgmS2V5RGF0YS5L ZXkpOwo+PiB9IGVsc2Ugewo+PiBTdGF0dXNCYXJTZXRTdGF0dXNTdHJpbmcgKEwiVW5rbm93biBD b21tYW5kIik7IGRpZmYgLS1naXQKPj4gYS9TaGVsbFBrZy9MaWJyYXJ5L1VlZmlTaGVsbERlYnVn MUNvbW1hbmRzTGliL0VkaXRJbnB1dEJhci5jCj4+IGIvU2hlbGxQa2cvTGlicmFyeS9VZWZpU2hl bGxEZWJ1ZzFDb21tYW5kc0xpYi9FZGl0SW5wdXRCYXIuYwo+PiBpbmRleCAzNWIwYjcwMWU4Li5k MDUzMDU5MjIwIDEwMDY0NAo+PiAtLS0gYS9TaGVsbFBrZy9MaWJyYXJ5L1VlZmlTaGVsbERlYnVn MUNvbW1hbmRzTGliL0VkaXRJbnB1dEJhci5jCj4+ICsrKyBiL1NoZWxsUGtnL0xpYnJhcnkvVWVm aVNoZWxsRGVidWcxQ29tbWFuZHNMaWIvRWRpdElucHV0QmFyLmMKPj4gQEAgLTEzMCw2ICsxMzAs OCBAQCBJbnB1dEJhclJlZnJlc2ggKAo+PiBVSU5UTiBFdmVudEluZGV4Owo+PiBVSU5UTiBDdXJz b3JSb3c7Cj4+IFVJTlROIEN1cnNvckNvbDsKPj4gKyBCT09MRUFOIFNoaWZ0UHJlc3NlZDsKPj4g KyBCT09MRUFOIE1vZGlmaWVyc1ByZXNzZWQ7Cj4+Cj4+IC8vCj4+IC8vIHZhcmlhYmxlIGluaXRp YWxpemF0aW9uCj4+IEBAIC0xODAsMTcgKzE4MiwyMyBAQCBJbnB1dEJhclJlZnJlc2ggKAo+PiBp ZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7Cj4+IGNvbnRpbnVlOwo+PiB9Cj4+IC0gaWYgKCgoS2V5 RGF0YS5LZXlTdGF0ZS5LZXlTaGlmdFN0YXRlICYgRUZJX1NISUZUX1NUQVRFX1ZBTElEKSAhPSAw KSAmJgo+PiAtIChLZXlEYXRhLktleVN0YXRlLktleVNoaWZ0U3RhdGUgIT0gRUZJX1NISUZUX1NU QVRFX1ZBTElEKSkgewo+PiAtIC8vCj4+IC0gLy8gU2hpZnQga2V5IHByZXNzZWQuCj4+IC0gLy8K Pj4gKyBNb2RpZmllcnNQcmVzc2VkID0gKChLZXlEYXRhLktleVN0YXRlLktleVNoaWZ0U3RhdGUg Jgo+PiBFRklfU0hJRlRfU1RBVEVfVkFMSUQpICE9IDApCj4+ICsgJiYgKEtleURhdGEuS2V5U3Rh dGUuS2V5U2hpZnRTdGF0ZSAhPQo+PiArIEVGSV9TSElGVF9TVEFURV9WQUxJRCk7Cj4+ICsKPj4g KyAvLwo+PiArIC8vIFRSVUUgaWYgU2hpZnQgaXMgcHJlc3NlZCBhbmQgbm8gb3RoZXIgbW9kaWZp ZXJzIGFyZSBwcmVzc2VkCj4+ICsgLy8KPj4gKyBTaGlmdFByZXNzZWQgPSBNb2RpZmllcnNQcmVz c2VkICYmCj4+ICsgKChLZXlEYXRhLktleVN0YXRlLktleVNoaWZ0U3RhdGUgJgo+PiArIH4oRUZJ X1NISUZUX1NUQVRFX1ZBTElEIHwgRUZJX0xFRlRfU0hJRlRfUFJFU1NFRCB8Cj4+ICsgRUZJX1JJ R0hUX1NISUZUX1BSRVNTRUQpKSA9PSAwKTsKPj4gKwo+PiArIGlmIChNb2RpZmllcnNQcmVzc2Vk ICYmICFTaGlmdFByZXNzZWQpIHsKPj4gY29udGludWU7Cj4+IH0KPj4gLy8KPj4gLy8gcHJlc3Nl ZCBFU0MKPj4gLy8KPj4gLSBpZiAoS2V5RGF0YS5LZXkuU2NhbkNvZGUgPT0gU0NBTl9FU0MpIHsK Pj4gKyBpZiAoIU1vZGlmaWVyc1ByZXNzZWQgJiYgS2V5RGF0YS5LZXkuU2NhbkNvZGUgPT0gU0NB Tl9FU0MpIHsKPj4gU2l6ZSA9IDA7Cj4+IFN0YXR1cyA9IEVGSV9OT1RfUkVBRFk7Cj4+IGJyZWFr Owo+PiBAQCAtMTk4LDkgKzIwNiwxMCBAQCBJbnB1dEJhclJlZnJlc2ggKAo+PiAvLwo+PiAvLyBy ZXR1cm4gcHJlc3NlZAo+PiAvLwo+PiAtIGlmIChLZXlEYXRhLktleS5Vbmljb2RlQ2hhciA9PSBD SEFSX0xJTkVGRUVEIHx8Cj4+IEtleURhdGEuS2V5LlVuaWNvZGVDaGFyID09IENIQVJfQ0FSUklB R0VfUkVUVVJOKSB7Cj4+ICsgaWYgKCFNb2RpZmllcnNQcmVzc2VkCj4+ICsgJiYgKEtleURhdGEu S2V5LlVuaWNvZGVDaGFyID09IENIQVJfTElORUZFRUQgfHwKPj4gKyBLZXlEYXRhLktleS5Vbmlj b2RlQ2hhciA9PSBDSEFSX0NBUlJJQUdFX1JFVFVSTikpIHsKPj4gYnJlYWs7Cj4+IC0gfSBlbHNl IGlmIChLZXlEYXRhLktleS5Vbmljb2RlQ2hhciA9PSBDSEFSX0JBQ0tTUEFDRSkgewo+PiArIH0g ZWxzZSBpZiAoIU1vZGlmaWVyc1ByZXNzZWQgJiYgS2V5RGF0YS5LZXkuVW5pY29kZUNoYXIgPT0K Pj4gKyBDSEFSX0JBQ0tTUEFDRSkgewo+PiAvLwo+PiAvLyBiYWNrc3BhY2UKPj4gLy8KPj4gQEAg LTIxMyw3ICsyMjIsOCBAQCBJbnB1dEJhclJlZnJlc2ggKAo+Pgo+PiB9Cj4+IH0KPj4gLSB9IGVs c2UgaWYgKEtleURhdGEuS2V5LlVuaWNvZGVDaGFyIDw9IDEyNyAmJiBLZXlEYXRhLktleS5Vbmlj b2RlQ2hhciA+PQo+PiAzMikgewo+PiArIH0gZWxzZSBpZiAoKCFNb2RpZmllcnNQcmVzc2VkIHx8 IFNoaWZ0UHJlc3NlZCkKPj4gKyAmJiBLZXlEYXRhLktleS5Vbmljb2RlQ2hhciA8PSAxMjcgJiYK Pj4gKyBLZXlEYXRhLktleS5Vbmljb2RlQ2hhciA+PSAzMikgewo+PiAvLwo+PiAvLyBWQUxJRCBB U0NJSSBjaGFyIHByZXNzZWQKPj4gLy8KPj4gZGlmZiAtLWdpdCBhL1NoZWxsUGtnL0xpYnJhcnkv VWVmaVNoZWxsRGVidWcxQ29tbWFuZHNMaWIvRWRpdE1lbnVCYXIuYwo+PiBiL1NoZWxsUGtnL0xp YnJhcnkvVWVmaVNoZWxsRGVidWcxQ29tbWFuZHNMaWIvRWRpdE1lbnVCYXIuYwo+PiBpbmRleCBj YThiYzUwNmQ5Li5lYWJiZjNjNTcxIDEwMDY0NAo+PiAtLS0gYS9TaGVsbFBrZy9MaWJyYXJ5L1Vl ZmlTaGVsbERlYnVnMUNvbW1hbmRzTGliL0VkaXRNZW51QmFyLmMKPj4gKysrIGIvU2hlbGxQa2cv TGlicmFyeS9VZWZpU2hlbGxEZWJ1ZzFDb21tYW5kc0xpYi9FZGl0TWVudUJhci5jCj4+IEBAIC0x OTAsMTEgKzE5MCwxNyBAQCBNZW51QmFyRGlzcGF0Y2hDb250cm9sSG90S2V5ICgKPj4gLy8KPj4g Ly8gRm9yIGNvbnNvbGVzIHRoYXQgc3VwcG9ydHMvcmVwb3J0cyBzaGlmdCBzdGF0ZSwKPj4gLy8g bWFrZSBzdXJlIG9ubHkgQ09OVFJPTCBpcyBwcmVzc2VkLgo+PiArIC8vIEZvciBzb21lIGNvbnNv bGVzIHRoYXQgcmVwb3J0IHNoaWZ0IHN0YXRlLAo+PiArIC8vIEN0cmwrQSBpcyBzdGlsbCB0cmFu c2xhdGVkIHRvIDEgKFVuaWNvZGVDaGFyKS4KPj4gLy8KPj4gaWYgKChLZXlEYXRhLT5LZXkuVW5p Y29kZUNoYXIgPj0gTCdBJykgJiYgKEtleURhdGEtPktleS5Vbmljb2RlQ2hhciA8PQo+PiBMJ1on KSkgewo+PiBDb250cm9sSW5kZXggPSBLZXlEYXRhLT5LZXkuVW5pY29kZUNoYXIgLSBMJ0EnICsg MTsKPj4gfSBlbHNlIGlmICgoS2V5RGF0YS0+S2V5LlVuaWNvZGVDaGFyID49IEwnYScpICYmIChL ZXlEYXRhLT5LZXkuVW5pY29kZUNoYXIKPj4gPD0gTCd6JykpIHsKPj4gQ29udHJvbEluZGV4ID0g S2V5RGF0YS0+S2V5LlVuaWNvZGVDaGFyIC0gTCdhJyArIDE7Cj4+ICsgfSBlbHNlIGlmICgoS2V5 RGF0YS0+S2V5LlVuaWNvZGVDaGFyID49IEwnQScgLSBMJ0EnICsgMSkgJiYgKEtleURhdGEtCj4+ ID5LZXkuVW5pY29kZUNoYXIgPD0gTCdaJyAtIEwnQScgKyAxKSkgewo+PiArIENvbnRyb2xJbmRl eCA9IEtleURhdGEtPktleS5Vbmljb2RlQ2hhcjsKPj4gKyB9IGVsc2UgaWYgKChLZXlEYXRhLT5L ZXkuVW5pY29kZUNoYXIgPj0gTCdhJyAtIEwnYScgKyAxKSAmJiAoS2V5RGF0YS0KPj4gPktleS5V bmljb2RlQ2hhciA8PSBMJ3onIC0gTCd6JyArIDEpKSB7Cj4+ICsgQ29udHJvbEluZGV4ID0gS2V5 RGF0YS0+S2V5LlVuaWNvZGVDaGFyOwo+PiB9Cj4+IH0KPj4gaWYgKChTQ0FOX0NPTlRST0xfWiA8 IENvbnRyb2xJbmRleCkKPj4gZGlmZiAtLWdpdAo+PiBhL1NoZWxsUGtnL0xpYnJhcnkvVWVmaVNo ZWxsRGVidWcxQ29tbWFuZHNMaWIvSGV4RWRpdC9NYWluSGV4RWRpdG9yLmMKPj4gYi9TaGVsbFBr Zy9MaWJyYXJ5L1VlZmlTaGVsbERlYnVnMUNvbW1hbmRzTGliL0hleEVkaXQvTWFpbkhleEVkaXRv ci5jCj4+IGluZGV4IGEwMGRmNDlkMzguLjM5NGU1MzFjMTYgMTAwNjQ0Cj4+IC0tLSBhL1NoZWxs UGtnL0xpYnJhcnkvVWVmaVNoZWxsRGVidWcxQ29tbWFuZHNMaWIvSGV4RWRpdC9NYWluSGV4RWRp dG9yLmMKPj4gKysrIGIvU2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxEZWJ1ZzFDb21tYW5kc0xp Yi9IZXhFZGl0L01haW5IZXhFZGl0b3IuCj4+ICsrKyBjCj4+IEBAIC0xMzcsMTQgKzEzNywxNyBA QCBITWFpbkNvbW1hbmREaXNwbGF5SGVscCAoCj4+IGlmIChLZXlEYXRhLktleS5Vbmljb2RlQ2hh ciA9PSBMJ1cnIC0gTCdBJyArIDEpIHsKPj4gYnJlYWs7Cj4+IH0KPj4gLSB9IGVsc2UgaWYgKCgo S2V5RGF0YS5LZXlTdGF0ZS5LZXlTaGlmdFN0YXRlICYgRUZJX1NISUZUX1NUQVRFX1ZBTElEKSAh PSAwKQo+PiAmJgo+PiAtICgoS2V5RGF0YS5LZXlTdGF0ZS5LZXlTaGlmdFN0YXRlICYgKEVGSV9M RUZUX0NPTlRST0xfUFJFU1NFRCB8Cj4+IEVGSV9SSUdIVF9DT05UUk9MX1BSRVNTRUQpKSAhPSAw KSAmJgo+PiAtICgoS2V5RGF0YS5LZXlTdGF0ZS5LZXlTaGlmdFN0YXRlICYgfihFRklfU0hJRlRf U1RBVEVfVkFMSUQgfAo+PiBFRklfTEVGVF9DT05UUk9MX1BSRVNTRUQgfCBFRklfUklHSFRfQ09O VFJPTF9QUkVTU0VEKSkgPT0gMCkpIHsKPj4gKyB9IGVsc2UgaWYgKCgoS2V5RGF0YS5LZXlTdGF0 ZS5LZXlTaGlmdFN0YXRlICYgRUZJX1NISUZUX1NUQVRFX1ZBTElEKSAhPSAwKQo+PiArICYmICgo S2V5RGF0YS5LZXlTdGF0ZS5LZXlTaGlmdFN0YXRlICYgKEVGSV9MRUZUX0NPTlRST0xfUFJFU1NF RCB8Cj4+IEVGSV9SSUdIVF9DT05UUk9MX1BSRVNTRUQpKSAhPSAwKQo+PiArICYmICgoS2V5RGF0 YS5LZXlTdGF0ZS5LZXlTaGlmdFN0YXRlICYKPj4gKyB+KEVGSV9TSElGVF9TVEFURV9WQUxJRCB8 IEVGSV9MRUZUX0NPTlRST0xfUFJFU1NFRCB8Cj4+ICsgRUZJX1JJR0hUX0NPTlRST0xfUFJFU1NF RCkpID09IDApKSB7Cj4+IC8vCj4+IC8vIEZvciBjb25zb2xlcyB0aGF0IHN1cHBvcnRzL3JlcG9y dHMgc2hpZnQgc3RhdGUsCj4+IC8vIG1ha2Ugc3VyZSB0aGF0IG9ubHkgQ09OVFJPTCBzaGlmdCBr ZXkgaXMgcHJlc3NlZC4KPj4gKyAvLyBGb3Igc29tZSBjb25zb2xlcyB0aGF0IHJlcG9ydCBzaGlm dCBzdGF0ZSwKPj4gKyAvLyBDVFJMK1cgaXMgc3RpbGwgdHJhbnNsYXRlZCB0byBMJ1cnIC0gTCdB JyArIDEuCj4+IC8vCj4+IC0gaWYgKChLZXlEYXRhLktleS5Vbmljb2RlQ2hhciA9PSAndycpIHx8 IChLZXlEYXRhLktleS5Vbmljb2RlQ2hhciA9PSAnVycpKQo+PiB7Cj4+ICsgaWYgKChLZXlEYXRh LktleS5Vbmljb2RlQ2hhciA9PSAndycpIHx8IChLZXlEYXRhLktleS5Vbmljb2RlQ2hhciA9PSAn VycpCj4+ICsgfHwgKEtleURhdGEuS2V5LlVuaWNvZGVDaGFyID09IEwndycgLSBMJ2EnICsgMSkg fHwKPj4gKyAoS2V5RGF0YS5LZXkuVW5pY29kZUNoYXIgPT0gTCdXJyAtIEwnQScgKyAxKSkgewo+ PiBicmVhazsKPj4gfQo+PiB9Cj4+IC0tCj4+IDIuMjEuMSAoQXBwbGUgR2l0LTEyMi4zKQo+Pgo+ Pgo+PiAtPS09LT0tPS09LT0KPj4gR3JvdXBzLmlvIExpbmtzOiBZb3UgcmVjZWl2ZSBhbGwgbWVz c2FnZXMgc2VudCB0byB0aGlzIGdyb3VwLgo+Pgo+PiBWaWV3L1JlcGx5IE9ubGluZSAoIzU0MTIy KTogaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2UvNTQxMjIKPj4gTXV0ZSBU aGlzIFRvcGljOiBodHRwczovL2dyb3Vwcy5pby9tdC83MTEzMzcyOS8xNzY4NzU2Cj4+IEdyb3Vw IE93bmVyOiBkZXZlbCtvd25lckBlZGsyLmdyb3Vwcy5pbwo+PiBVbnN1YnNjcmliZTogaHR0cHM6 Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL3Vuc3ViIFt6aGljaGFvLmdhb0BpbnRlbC5jb21dCj4+ IC09LT0tPS09LT0tPQ== --b1_36e33b4d2a699d196d5fe0f90c6e1fec Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: base64 ICAgIDxkaXY+WmhpY2hhbyw8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PlRoYW5rcyBmb3IgeW91 ciByZXZpZXcuIFRoZSBjb21tZW50IGlzIGNvcnJlY3QsIGFzIFNoaWZ0T25seVN0YXRlIG1lYW5z IHRoZSBzdGF0ZSB3aGVyZSBvbmx5IHNoaWZ0IChhbmQgbm8gb3RoZXIgbW9kaWZpZXJzKSBjYW4g YmUgcHJlc3NlZCBvciBub3QuPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5CZXN0IHdpc2hlcyw8 L2Rpdj48ZGl2PlZpdGFseTxjYXJldD48L2NhcmV0PjwvZGl2PjxkaXY+PGJyPjwvZGl2Pk9uIFdl ZCwgRmViIDE5LCAyMDIwIGF0IDA5OjU1LCBHYW8sIFpoaWNoYW8gJmx0OzxhIGhyZWY9Im1haWx0 bzp6aGljaGFvLmdhb0BpbnRlbC5jb20iIGNsYXNzPSIiPnpoaWNoYW8uZ2FvQGludGVsLmNvbTwv YT4mZ3Q7IHdyb3RlOjxibG9ja3F1b3RlIGNsYXNzPSJwcm90b25tYWlsX3F1b3RlIiB0eXBlPSJj aXRlIj4gIEhpIFZpdGFseSw8YnI+PGJyPlNlZSB0aGUgY29tbWVudCBiZWxvdzo8YnI+PGJyPiZn dDsgLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS08YnI+Jmd0OyBGcm9tOiBkZXZlbEBlZGsyLmdy b3Vwcy5pbyAmbHQ7ZGV2ZWxAZWRrMi5ncm91cHMuaW8mZ3Q7IE9uIEJlaGFsZiBPZiBWaXRhbHk8 YnI+Jmd0OyBDaGVwdHNvdiB2aWEgR3JvdXBzLklvPGJyPiZndDsgU2VudDogTW9uZGF5LCBGZWJy dWFyeSAxMCwgMjAyMCA2OjE4IFBNPGJyPiZndDsgVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvPGJy PiZndDsgU3ViamVjdDogW2VkazItZGV2ZWxdIFtQQVRDSCAxLzFdIFNoZWxsUGtnOiBBZGQgc3Vw cG9ydCBmb3IgaW5wdXQgd2l0aDxicj4mZ3Q7IHNlcGFyYXRlbHkgcmVwb3J0ZWQgbW9kaWZpZXJz PGJyPiZndDs8YnI+Jmd0OyBSRUY6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93 X2J1Zy5jZ2k/aWQ9MjUxMDxicj4mZ3Q7PGJyPiZndDsgU29tZSBmaXJtd2FyZXM6PGJyPiZndDsg LSBSZXBvcnQgU2hpZnQgbW9kaWZpZXIgZXZlbiB3aGVuIHRoZXkgcmVwb3J0IHVwcGVyLWNhc2Ug dW5pY29kZSBsZXR0ZXIuPGJyPiZndDsgLSBSZXBvcnQgQ3RybCBtb2RpZmllciB3aXRoICJzaGlm dGVkIiBVbmlDaGFyIChpLmUuIFggLSAnQScgKyAxKS48YnI+Jmd0Ozxicj4mZ3Q7IFRoaXMgY2hh bmdlIHByb3ZpZGVzIHN1cHBvcnQgZm9yIHRoZXNlIGZpcm13YXJlcyBwcmVzZXJ2aW5nIHRoZSBj b21wYXRpYmlsaXR5PGJyPiZndDsgd2l0aCB0aGUgcHJldmlvdXMgaW5wdXQgaGFuZGxpbmcuPGJy PiZndDs8YnI+Jmd0OyBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEJlbHlhZXYgJmx0O3VzcnNzZTJA aWNsb3VkLmNvbSZndDs8YnI+Jmd0OyBSZXZpZXdlZC1ieTogVml0YWx5IENoZXB0c292ICZsdDt2 aXQ5Njk2QHByb3Rvbm1haWwuY29tJmd0Ozxicj4mZ3Q7IC0tLTxicj4mZ3Q7ICBTaGVsbFBrZy9M aWJyYXJ5L1VlZmlTaGVsbERlYnVnMUNvbW1hbmRzTGliL0VkaXQvTWFpblRleHRFZGl0b3IuYyAg IHwgMzc8YnI+Jmd0OyArKysrKysrKysrKysrKy0tLS0tLTxicj4mZ3Q7ICBTaGVsbFBrZy9MaWJy YXJ5L1VlZmlTaGVsbERlYnVnMUNvbW1hbmRzTGliL0VkaXRJbnB1dEJhci5jICAgICAgICAgIHwg Mjg8YnI+Jmd0OyArKysrKysrKysrLS0tLS08YnI+Jmd0OyAgU2hlbGxQa2cvTGlicmFyeS9VZWZp U2hlbGxEZWJ1ZzFDb21tYW5kc0xpYi9FZGl0TWVudUJhci5jICAgICAgICAgICB8ICA2ICsrKys8 YnI+Jmd0OyAgU2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxEZWJ1ZzFDb21tYW5kc0xpYi9IZXhF ZGl0L01haW5IZXhFZGl0b3IuYyB8IDExPGJyPiZndDsgKysrLS0tPGJyPiZndDsgIDQgZmlsZXMg Y2hhbmdlZCwgNTggaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pPGJyPiZndDs8YnI+Jmd0 OyBkaWZmIC0tZ2l0PGJyPiZndDsgYS9TaGVsbFBrZy9MaWJyYXJ5L1VlZmlTaGVsbERlYnVnMUNv bW1hbmRzTGliL0VkaXQvTWFpblRleHRFZGl0b3IuYzxicj4mZ3Q7IGIvU2hlbGxQa2cvTGlicmFy eS9VZWZpU2hlbGxEZWJ1ZzFDb21tYW5kc0xpYi9FZGl0L01haW5UZXh0RWRpdG9yLmM8YnI+Jmd0 OyBpbmRleCBkZjUzMGYxMTE5Li45NjE1YTRkZmJkIDEwMDY0NDxicj4mZ3Q7IC0tLSBhL1NoZWxs UGtnL0xpYnJhcnkvVWVmaVNoZWxsRGVidWcxQ29tbWFuZHNMaWIvRWRpdC9NYWluVGV4dEVkaXRv ci5jPGJyPiZndDsgKysrIGIvU2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxEZWJ1ZzFDb21tYW5k c0xpYi9FZGl0L01haW5UZXh0RWRpdG9yLmM8YnI+Jmd0OyBAQCAtMTM4MSw4ICsxMzgxLDggQEAg TWFpbkNvbW1hbmREaXNwbGF5SGVscCAoPGJyPiZndDsgICAgICAgIGNvbnRpbnVlOzxicj4mZ3Q7 ICAgICAgfTxicj4mZ3Q7PGJyPiZndDsgLSAgICBpZiAoKChLZXlEYXRhLktleVN0YXRlLktleVNo aWZ0U3RhdGUgJmFtcDsgRUZJX1NISUZUX1NUQVRFX1ZBTElEKSA9PSAwKSB8fDxicj4mZ3Q7IC0g ICAgICAgIChLZXlEYXRhLktleVN0YXRlLktleVNoaWZ0U3RhdGUgPT0gRUZJX1NISUZUX1NUQVRF X1ZBTElEKSkgezxicj4mZ3Q7ICsgICAgaWYgKCgoS2V5RGF0YS5LZXlTdGF0ZS5LZXlTaGlmdFN0 YXRlICZhbXA7IEVGSV9TSElGVF9TVEFURV9WQUxJRCkgPT0gMCk8YnI+Jmd0OyArICAgICAgfHwg KEtleURhdGEuS2V5U3RhdGUuS2V5U2hpZnRTdGF0ZSA9PSBFRklfU0hJRlRfU1RBVEVfVkFMSUQp KSB7PGJyPiZndDsgICAgICAgIC8vPGJyPiZndDsgICAgICAgIC8vIEZvciBjb25zb2xlcyB0aGF0 IGRvbid0IHN1cHBvcnQvcmVwb3J0IHNoaWZ0IHN0YXRlLDxicj4mZ3Q7ICAgICAgICAvLyBDVFJM K1cgaXMgdHJhbnNsYXRlZCB0byBMJ1cnIC0gTCdBJyArIDEuPGJyPiZndDsgQEAgLTEzOTAsMTQg KzEzOTAsMTcgQEAgTWFpbkNvbW1hbmREaXNwbGF5SGVscCAoPGJyPiZndDsgICAgICAgIGlmIChL ZXlEYXRhLktleS5Vbmljb2RlQ2hhciA9PSBMJ1cnIC0gTCdBJyArIDEpIHs8YnI+Jmd0OyAgICAg ICAgICBicmVhazs8YnI+Jmd0OyAgICAgICAgfTxicj4mZ3Q7IC0gICAgfSBlbHNlIGlmICgoKEtl eURhdGEuS2V5U3RhdGUuS2V5U2hpZnRTdGF0ZSAmYW1wOyBFRklfU0hJRlRfU1RBVEVfVkFMSUQp ICE9IDApPGJyPiZndDsgJmFtcDsmYW1wOzxicj4mZ3Q7IC0gICAgICAgICAgICAgICAoKEtleURh dGEuS2V5U3RhdGUuS2V5U2hpZnRTdGF0ZSAmYW1wOyAoRUZJX0xFRlRfQ09OVFJPTF9QUkVTU0VE IHw8YnI+Jmd0OyBFRklfUklHSFRfQ09OVFJPTF9QUkVTU0VEKSkgIT0gMCkgJmFtcDsmYW1wOzxi cj4mZ3Q7IC0gICAgICAgICAgICAgICAoKEtleURhdGEuS2V5U3RhdGUuS2V5U2hpZnRTdGF0ZSAm YW1wOyB+KEVGSV9TSElGVF9TVEFURV9WQUxJRCB8PGJyPiZndDsgRUZJX0xFRlRfQ09OVFJPTF9Q UkVTU0VEIHwgRUZJX1JJR0hUX0NPTlRST0xfUFJFU1NFRCkpID09IDApKSB7PGJyPiZndDsgKyAg ICB9IGVsc2UgaWYgKCgoS2V5RGF0YS5LZXlTdGF0ZS5LZXlTaGlmdFN0YXRlICZhbXA7IEVGSV9T SElGVF9TVEFURV9WQUxJRCkgIT0gMCk8YnI+Jmd0OyArICAgICAgICAgICAgJmFtcDsmYW1wOyAo KEtleURhdGEuS2V5U3RhdGUuS2V5U2hpZnRTdGF0ZSAmYW1wOyAoRUZJX0xFRlRfQ09OVFJPTF9Q UkVTU0VEIHw8YnI+Jmd0OyBFRklfUklHSFRfQ09OVFJPTF9QUkVTU0VEKSkgIT0gMCk8YnI+Jmd0 OyArICAgICAgICAgICAgJmFtcDsmYW1wOyAoKEtleURhdGEuS2V5U3RhdGUuS2V5U2hpZnRTdGF0 ZSAmYW1wOzxicj4mZ3Q7ICsgfihFRklfU0hJRlRfU1RBVEVfVkFMSUQgfCBFRklfTEVGVF9DT05U Uk9MX1BSRVNTRUQgfDxicj4mZ3Q7ICsgRUZJX1JJR0hUX0NPTlRST0xfUFJFU1NFRCkpID09IDAp KSB7PGJyPiZndDsgICAgICAgIC8vPGJyPiZndDsgICAgICAgIC8vIEZvciBjb25zb2xlcyB0aGF0 IHN1cHBvcnRzL3JlcG9ydHMgc2hpZnQgc3RhdGUsPGJyPiZndDsgICAgICAgIC8vIG1ha2Ugc3Vy ZSB0aGF0IG9ubHkgQ09OVFJPTCBzaGlmdCBrZXkgaXMgcHJlc3NlZC48YnI+Jmd0OyArICAgICAg Ly8gRm9yIHNvbWUgY29uc29sZXMgdGhhdCByZXBvcnQgc2hpZnQgc3RhdGUsPGJyPiZndDsgKyAg ICAgIC8vIENUUkwrVyBpcyBzdGlsbCB0cmFuc2xhdGVkIHRvIEwnVycgLSBMJ0EnICsgMS48YnI+ Jmd0OyAgICAgICAgLy88YnI+Jmd0OyAtICAgICAgaWYgKChLZXlEYXRhLktleS5Vbmljb2RlQ2hh ciA9PSAndycpIHx8IChLZXlEYXRhLktleS5Vbmljb2RlQ2hhciA9PSAnVycpKTxicj4mZ3Q7IHs8 YnI+Jmd0OyArICAgICAgaWYgKChLZXlEYXRhLktleS5Vbmljb2RlQ2hhciA9PSBMJ3cnKSB8fCAo S2V5RGF0YS5LZXkuVW5pY29kZUNoYXIgPT0gTCdXJyk8YnI+Jmd0OyArICAgICAgICB8fCAoS2V5 RGF0YS5LZXkuVW5pY29kZUNoYXIgPT0gTCd3JyAtIEwnYScgKyAxKSB8fDxicj4mZ3Q7ICsgKEtl eURhdGEuS2V5LlVuaWNvZGVDaGFyID09IEwnVycgLSBMJ0EnICsgMSkpIHs8YnI+Jmd0OyAgICAg ICAgICBicmVhazs8YnI+Jmd0OyAgICAgICAgfTxicj4mZ3Q7ICAgICAgfTxicj4mZ3Q7IEBAIC0x ODM0LDcgKzE4MzcsOCBAQCBNYWluRWRpdG9yS2V5SW5wdXQgKDxicj4mZ3Q7ICAgIEVGSV9LRVlf REFUQSAgICAgICAgICAgICAgS2V5RGF0YTs8YnI+Jmd0OyAgICBFRklfU1RBVFVTICAgICAgICAg ICAgICAgIFN0YXR1czs8YnI+Jmd0OyAgICBFRklfU0lNUExFX1BPSU5URVJfU1RBVEUgIE1vdXNl U3RhdGU7PGJyPiZndDsgLSAgQk9PTEVBTiAgICAgICAgICAgICAgICAgICBOb1NoaWZ0U3RhdGU7 PGJyPiZndDsgKyAgQk9PTEVBTiAgICAgICAgICAgICAgICAgICBOb01vZGlmaWVyU3RhdGU7PGJy PiZndDsgKyAgQk9PTEVBTiAgICAgICAgICAgICAgICAgICBTaGlmdE9ubHlTdGF0ZTs8YnI+Jmd0 Ozxicj4mZ3Q7ICAgIGRvIHs8YnI+Jmd0Ozxicj4mZ3Q7IEBAIC0xODg2LDE3ICsxODkwLDI4IEBA IE1haW5FZGl0b3JLZXlJbnB1dCAoPGJyPiZndDsgICAgICAgICAgLy88YnI+Jmd0OyAgICAgICAg ICBTdGF0dXNCYXJTZXRSZWZyZXNoKCk7PGJyPiZndDsgICAgICAgICAgLy88YnI+Jmd0OyAtICAg ICAgICAvLyBOb1NoaWZ0U3RhdGU6IFRSVUUgd2hlbiBubyBzaGlmdCBrZXkgaXMgcHJlc3NlZC48 YnI+Jmd0OyArICAgICAgICAvLyBOb01vZGlmaWVyU3RhdGU6IFRSVUUgd2hlbiBubyBtb2RpZmll ciBrZXkgaXMgcHJlc3NlZC48YnI+Jmd0OyAgICAgICAgICAvLzxicj4mZ3Q7IC0gICAgICAgIE5v U2hpZnRTdGF0ZSA9ICgoS2V5RGF0YS5LZXlTdGF0ZS5LZXlTaGlmdFN0YXRlICZhbXA7PGJyPiZn dDsgRUZJX1NISUZUX1NUQVRFX1ZBTElEKSA9PSAwKSB8fCAoS2V5RGF0YS5LZXlTdGF0ZS5LZXlT aGlmdFN0YXRlID09PGJyPiZndDsgRUZJX1NISUZUX1NUQVRFX1ZBTElEKTs8YnI+Jmd0OyArICAg ICAgICBOb01vZGlmaWVyU3RhdGUgPSAoKEtleURhdGEuS2V5U3RhdGUuS2V5U2hpZnRTdGF0ZSAm YW1wOzxicj4mZ3Q7IEVGSV9TSElGVF9TVEFURV9WQUxJRCkgPT0gMCk8YnI+Jmd0OyArICAgICAg ICAgICAgICAgICAgICAgICAgfHwgKEtleURhdGEuS2V5U3RhdGUuS2V5U2hpZnRTdGF0ZSA9PSBF RklfU0hJRlRfU1RBVEVfVkFMSUQpOzxicj4mZ3Q7ICsgICAgICAgIC8vPGJyPiZndDsgKyAgICAg ICAgLy8gU2hpZnRPbmx5U3RhdGU6IFRSVUUgd2hlbiBubyBtb2RpZmllciBrZXkgZXhjZXB0IFNo aWZ0IGlzIHByZXNzZWQuPGJyPiZndDsgKyAgICAgICAgLy88YnI+Jmd0OyArICAgICAgICBTaGlm dE9ubHlTdGF0ZSA9ICgoS2V5RGF0YS5LZXlTdGF0ZS5LZXlTaGlmdFN0YXRlICZhbXA7PGJyPiZn dDsgRUZJX1NISUZUX1NUQVRFX1ZBTElEKSA9PSAwKTxicj4mZ3Q7ICsgICAgICAgICAgICAgICAg ICAgICAgICB8fCAoKEtleURhdGEuS2V5U3RhdGUuS2V5U2hpZnRTdGF0ZTxicj4mZ3Q7ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICZhbXA7IH4oRUZJX1NISUZUX1NUQVRFX1ZBTElEIHw8YnI+ Jmd0OyArIEVGSV9MRUZUX1NISUZUX1BSRVNTRUQgfCBFRklfUklHSFRfU0hJRlRfUFJFU1NFRCkp ID09IDApOzxicj4mZ3Q7ICAgICAgICAgIC8vPGJyPiZndDsgICAgICAgICAgLy8gZGlzcGF0Y2gg dG8gZGlmZmVyZW50IGNvbXBvbmVudHMnIGtleSBoYW5kbGluZyBmdW5jdGlvbjxicj4mZ3Q7ICAg ICAgICAgIC8vPGJyPiZndDsgICAgICAgICAgaWYgKEVGSV9OT1RfRk9VTkQgIT0gTWVudUJhckRp c3BhdGNoQ29udHJvbEhvdEtleSgmYW1wO0tleURhdGEpKSB7PGJyPiZndDsgICAgICAgICAgICBT dGF0dXMgPSBFRklfU1VDQ0VTUzs8YnI+Jmd0OyAtICAgICAgICB9IGVsc2UgaWYgKE5vU2hpZnRT dGF0ZSAmYW1wOyZhbXA7ICgoS2V5RGF0YS5LZXkuU2NhbkNvZGUgPT0gU0NBTl9OVUxMKSB8fDxi cj4mZ3Q7ICgoS2V5RGF0YS5LZXkuU2NhbkNvZGUgJmd0Oz0gU0NBTl9VUCkgJmFtcDsmYW1wOyAo S2V5RGF0YS5LZXkuU2NhbkNvZGUgJmx0Oz08YnI+Jmd0OyBTQ0FOX1BBR0VfRE9XTikpKSkgezxi cj4mZ3Q7ICsgICAgICAgIH0gZWxzZSBpZiAoKFNoaWZ0T25seVN0YXRlICZhbXA7JmFtcDsgKEtl eURhdGEuS2V5LlNjYW5Db2RlID09IFNDQU5fTlVMTCkpPGJyPiZndDsgKyAgICAgICAgICAgICAg ICB8fCAoTm9Nb2RpZmllclN0YXRlICZhbXA7JmFtcDsgKEtleURhdGEuS2V5LlNjYW5Db2RlICZn dDs9IFNDQU5fVVApICZhbXA7JmFtcDs8YnI+Jmd0OyAoS2V5RGF0YS5LZXkuU2NhbkNvZGUgJmx0 Oz0gU0NBTl9QQUdFX0RPV04pKSkgezxicj4mZ3Q7ICsgICAgICAgICAgLy88YnI+Jmd0OyArICAg ICAgICAgIC8vIGFscGhhbnVtZXJpYyBrZXlzIHdpdGggb3Igd2l0aG91dCBzaGlmdCwgb3IgYXJy b3cga2V5cyB3aXRob3V0IHNoaWZ0PGJyPiZndDsgKyAgICAgICAgICAvLzxicj48YnI+VGhpcyBp cyB1bm1hdGNoZWQgd2l0aCB0aGUgY29tbWVudHMuIEl0IG9ubHkgaGFuZGxlcyB0aGUgYWxwaGFu dW1lcmljIGtleXMgd2l0aCBzaGlmdC48YnI+PGJyPlRoYW5rcyw8YnI+WmhpY2hhbzxicj48YnI+ Jmd0OyAgICAgICAgICAgIFN0YXR1cyA9IEZpbGVCdWZmZXJIYW5kbGVJbnB1dCAoJmFtcDtLZXlE YXRhLktleSk7PGJyPiZndDsgLSAgICAgICAgfSBlbHNlIGlmIChOb1NoaWZ0U3RhdGUgJmFtcDsm YW1wOyAoS2V5RGF0YS5LZXkuU2NhbkNvZGUgJmd0Oz0gU0NBTl9GMSkgJmFtcDsmYW1wOzxicj4m Z3Q7IChLZXlEYXRhLktleS5TY2FuQ29kZSAmbHQ7PSBTQ0FOX0YxMikpIHs8YnI+Jmd0OyArICAg ICAgICB9IGVsc2UgaWYgKE5vTW9kaWZpZXJTdGF0ZSAmYW1wOyZhbXA7IChLZXlEYXRhLktleS5T Y2FuQ29kZSAmZ3Q7PSBTQ0FOX0YxKTxicj4mZ3Q7ICsgJmFtcDsmYW1wOyAoS2V5RGF0YS5LZXku U2NhbkNvZGUgJmx0Oz0gU0NBTl9GMTIpKSB7PGJyPiZndDsgICAgICAgICAgICBTdGF0dXMgPSBN ZW51QmFyRGlzcGF0Y2hGdW5jdGlvbktleSAoJmFtcDtLZXlEYXRhLktleSk7PGJyPiZndDsgICAg ICAgICAgfSBlbHNlIHs8YnI+Jmd0OyAgICAgICAgICAgIFN0YXR1c0JhclNldFN0YXR1c1N0cmlu ZyAoTCJVbmtub3duIENvbW1hbmQiKTsgZGlmZiAtLWdpdDxicj4mZ3Q7IGEvU2hlbGxQa2cvTGli cmFyeS9VZWZpU2hlbGxEZWJ1ZzFDb21tYW5kc0xpYi9FZGl0SW5wdXRCYXIuYzxicj4mZ3Q7IGIv U2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxEZWJ1ZzFDb21tYW5kc0xpYi9FZGl0SW5wdXRCYXIu Yzxicj4mZ3Q7IGluZGV4IDM1YjBiNzAxZTguLmQwNTMwNTkyMjAgMTAwNjQ0PGJyPiZndDsgLS0t IGEvU2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxEZWJ1ZzFDb21tYW5kc0xpYi9FZGl0SW5wdXRC YXIuYzxicj4mZ3Q7ICsrKyBiL1NoZWxsUGtnL0xpYnJhcnkvVWVmaVNoZWxsRGVidWcxQ29tbWFu ZHNMaWIvRWRpdElucHV0QmFyLmM8YnI+Jmd0OyBAQCAtMTMwLDYgKzEzMCw4IEBAIElucHV0QmFy UmVmcmVzaCAoPGJyPiZndDsgICAgVUlOVE4gICAgICAgICAgICAgICAgICAgRXZlbnRJbmRleDs8 YnI+Jmd0OyAgICBVSU5UTiAgICAgICAgICAgICAgICAgICBDdXJzb3JSb3c7PGJyPiZndDsgICAg VUlOVE4gICAgICAgICAgICAgICAgICAgQ3Vyc29yQ29sOzxicj4mZ3Q7ICsgIEJPT0xFQU4gICAg ICAgICAgICAgICAgIFNoaWZ0UHJlc3NlZDs8YnI+Jmd0OyArICBCT09MRUFOICAgICAgICAgICAg ICAgICBNb2RpZmllcnNQcmVzc2VkOzxicj4mZ3Q7PGJyPiZndDsgICAgLy88YnI+Jmd0OyAgICAv LyB2YXJpYWJsZSBpbml0aWFsaXphdGlvbjxicj4mZ3Q7IEBAIC0xODAsMTcgKzE4MiwyMyBAQCBJ bnB1dEJhclJlZnJlc2ggKDxicj4mZ3Q7ICAgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgezxi cj4mZ3Q7ICAgICAgICBjb250aW51ZTs8YnI+Jmd0OyAgICAgIH08YnI+Jmd0OyAtICAgIGlmICgo KEtleURhdGEuS2V5U3RhdGUuS2V5U2hpZnRTdGF0ZSAmYW1wOyBFRklfU0hJRlRfU1RBVEVfVkFM SUQpICE9IDApICZhbXA7JmFtcDs8YnI+Jmd0OyAtICAgICAgICAoS2V5RGF0YS5LZXlTdGF0ZS5L ZXlTaGlmdFN0YXRlICE9IEVGSV9TSElGVF9TVEFURV9WQUxJRCkpIHs8YnI+Jmd0OyAtICAgICAg Ly88YnI+Jmd0OyAtICAgICAgLy8gU2hpZnQga2V5IHByZXNzZWQuPGJyPiZndDsgLSAgICAgIC8v PGJyPiZndDsgKyAgICBNb2RpZmllcnNQcmVzc2VkID0gKChLZXlEYXRhLktleVN0YXRlLktleVNo aWZ0U3RhdGUgJmFtcDs8YnI+Jmd0OyBFRklfU0hJRlRfU1RBVEVfVkFMSUQpICE9IDApPGJyPiZn dDsgKyAgICAgICAgICAgICAgICAgICAgJmFtcDsmYW1wOyAoS2V5RGF0YS5LZXlTdGF0ZS5LZXlT aGlmdFN0YXRlICE9PGJyPiZndDsgKyBFRklfU0hJRlRfU1RBVEVfVkFMSUQpOzxicj4mZ3Q7ICs8 YnI+Jmd0OyArICAgIC8vPGJyPiZndDsgKyAgICAvLyBUUlVFIGlmIFNoaWZ0IGlzIHByZXNzZWQg YW5kIG5vIG90aGVyIG1vZGlmaWVycyBhcmUgcHJlc3NlZDxicj4mZ3Q7ICsgICAgLy88YnI+Jmd0 OyArICAgIFNoaWZ0UHJlc3NlZCA9IE1vZGlmaWVyc1ByZXNzZWQgJmFtcDsmYW1wOzxicj4mZ3Q7 ICsgICAgICAgICAgICAgICAgICAgKChLZXlEYXRhLktleVN0YXRlLktleVNoaWZ0U3RhdGUgJmFt cDs8YnI+Jmd0OyArICAgICAgICAgICAgICAgICAgICAgfihFRklfU0hJRlRfU1RBVEVfVkFMSUQg fCBFRklfTEVGVF9TSElGVF9QUkVTU0VEIHw8YnI+Jmd0OyArIEVGSV9SSUdIVF9TSElGVF9QUkVT U0VEKSkgPT0gMCk7PGJyPiZndDsgKzxicj4mZ3Q7ICsgICAgaWYgKE1vZGlmaWVyc1ByZXNzZWQg JmFtcDsmYW1wOyAhU2hpZnRQcmVzc2VkKSB7PGJyPiZndDsgICAgICAgIGNvbnRpbnVlOzxicj4m Z3Q7ICAgICAgfTxicj4mZ3Q7ICAgICAgLy88YnI+Jmd0OyAgICAgIC8vIHByZXNzZWQgRVNDPGJy PiZndDsgICAgICAvLzxicj4mZ3Q7IC0gICAgaWYgKEtleURhdGEuS2V5LlNjYW5Db2RlID09IFND QU5fRVNDKSB7PGJyPiZndDsgKyAgICBpZiAoIU1vZGlmaWVyc1ByZXNzZWQgJmFtcDsmYW1wOyBL ZXlEYXRhLktleS5TY2FuQ29kZSA9PSBTQ0FOX0VTQykgezxicj4mZ3Q7ICAgICAgICBTaXplICAg ID0gMDs8YnI+Jmd0OyAgICAgICAgU3RhdHVzICA9IEVGSV9OT1RfUkVBRFk7PGJyPiZndDsgICAg ICAgIGJyZWFrOzxicj4mZ3Q7IEBAIC0xOTgsOSArMjA2LDEwIEBAIElucHV0QmFyUmVmcmVzaCAo PGJyPiZndDsgICAgICAvLzxicj4mZ3Q7ICAgICAgLy8gcmV0dXJuIHByZXNzZWQ8YnI+Jmd0OyAg ICAgIC8vPGJyPiZndDsgLSAgICBpZiAoS2V5RGF0YS5LZXkuVW5pY29kZUNoYXIgPT0gQ0hBUl9M SU5FRkVFRCB8fDxicj4mZ3Q7IEtleURhdGEuS2V5LlVuaWNvZGVDaGFyID09IENIQVJfQ0FSUklB R0VfUkVUVVJOKSB7PGJyPiZndDsgKyAgICBpZiAoIU1vZGlmaWVyc1ByZXNzZWQ8YnI+Jmd0OyAr ICAgICAgJmFtcDsmYW1wOyAoS2V5RGF0YS5LZXkuVW5pY29kZUNoYXIgPT0gQ0hBUl9MSU5FRkVF RCB8fDxicj4mZ3Q7ICsgS2V5RGF0YS5LZXkuVW5pY29kZUNoYXIgPT0gQ0hBUl9DQVJSSUFHRV9S RVRVUk4pKSB7PGJyPiZndDsgICAgICAgIGJyZWFrOzxicj4mZ3Q7IC0gICAgfSBlbHNlIGlmIChL ZXlEYXRhLktleS5Vbmljb2RlQ2hhciA9PSBDSEFSX0JBQ0tTUEFDRSkgezxicj4mZ3Q7ICsgICAg fSBlbHNlIGlmICghTW9kaWZpZXJzUHJlc3NlZCAmYW1wOyZhbXA7IEtleURhdGEuS2V5LlVuaWNv ZGVDaGFyID09PGJyPiZndDsgKyBDSEFSX0JBQ0tTUEFDRSkgezxicj4mZ3Q7ICAgICAgICAvLzxi cj4mZ3Q7ICAgICAgICAvLyBiYWNrc3BhY2U8YnI+Jmd0OyAgICAgICAgLy88YnI+Jmd0OyBAQCAt MjEzLDcgKzIyMiw4IEBAIElucHV0QmFyUmVmcmVzaCAoPGJyPiZndDs8YnI+Jmd0OyAgICAgICAg ICB9PGJyPiZndDsgICAgICAgIH08YnI+Jmd0OyAtICAgIH0gZWxzZSBpZiAoS2V5RGF0YS5LZXku VW5pY29kZUNoYXIgJmx0Oz0gMTI3ICZhbXA7JmFtcDsgS2V5RGF0YS5LZXkuVW5pY29kZUNoYXIg Jmd0Oz08YnI+Jmd0OyAzMikgezxicj4mZ3Q7ICsgICAgfSBlbHNlIGlmICgoIU1vZGlmaWVyc1By ZXNzZWQgfHwgU2hpZnRQcmVzc2VkKTxicj4mZ3Q7ICsgICAgICAgICAgICAmYW1wOyZhbXA7IEtl eURhdGEuS2V5LlVuaWNvZGVDaGFyICZsdDs9IDEyNyAmYW1wOyZhbXA7PGJyPiZndDsgKyBLZXlE YXRhLktleS5Vbmljb2RlQ2hhciAmZ3Q7PSAzMikgezxicj4mZ3Q7ICAgICAgICAvLzxicj4mZ3Q7 ICAgICAgICAvLyBWQUxJRCBBU0NJSSBjaGFyIHByZXNzZWQ8YnI+Jmd0OyAgICAgICAgLy88YnI+ Jmd0OyBkaWZmIC0tZ2l0IGEvU2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxEZWJ1ZzFDb21tYW5k c0xpYi9FZGl0TWVudUJhci5jPGJyPiZndDsgYi9TaGVsbFBrZy9MaWJyYXJ5L1VlZmlTaGVsbERl YnVnMUNvbW1hbmRzTGliL0VkaXRNZW51QmFyLmM8YnI+Jmd0OyBpbmRleCBjYThiYzUwNmQ5Li5l YWJiZjNjNTcxIDEwMDY0NDxicj4mZ3Q7IC0tLSBhL1NoZWxsUGtnL0xpYnJhcnkvVWVmaVNoZWxs RGVidWcxQ29tbWFuZHNMaWIvRWRpdE1lbnVCYXIuYzxicj4mZ3Q7ICsrKyBiL1NoZWxsUGtnL0xp YnJhcnkvVWVmaVNoZWxsRGVidWcxQ29tbWFuZHNMaWIvRWRpdE1lbnVCYXIuYzxicj4mZ3Q7IEBA IC0xOTAsMTEgKzE5MCwxNyBAQCBNZW51QmFyRGlzcGF0Y2hDb250cm9sSG90S2V5ICg8YnI+Jmd0 OyAgICAgIC8vPGJyPiZndDsgICAgICAvLyBGb3IgY29uc29sZXMgdGhhdCBzdXBwb3J0cy9yZXBv cnRzIHNoaWZ0IHN0YXRlLDxicj4mZ3Q7ICAgICAgLy8gbWFrZSBzdXJlIG9ubHkgQ09OVFJPTCBp cyBwcmVzc2VkLjxicj4mZ3Q7ICsgICAgLy8gRm9yIHNvbWUgY29uc29sZXMgdGhhdCByZXBvcnQg c2hpZnQgc3RhdGUsPGJyPiZndDsgKyAgICAvLyBDdHJsK0EgaXMgc3RpbGwgdHJhbnNsYXRlZCB0 byAxIChVbmljb2RlQ2hhcikuPGJyPiZndDsgICAgICAvLzxicj4mZ3Q7ICAgICAgaWYgKChLZXlE YXRhLSZndDtLZXkuVW5pY29kZUNoYXIgJmd0Oz0gTCdBJykgJmFtcDsmYW1wOyAoS2V5RGF0YS0m Z3Q7S2V5LlVuaWNvZGVDaGFyICZsdDs9PGJyPiZndDsgTCdaJykpIHs8YnI+Jmd0OyAgICAgICAg Q29udHJvbEluZGV4ID0gS2V5RGF0YS0mZ3Q7S2V5LlVuaWNvZGVDaGFyIC0gTCdBJyArIDE7PGJy PiZndDsgICAgICB9IGVsc2UgaWYgKChLZXlEYXRhLSZndDtLZXkuVW5pY29kZUNoYXIgJmd0Oz0g TCdhJykgJmFtcDsmYW1wOyAoS2V5RGF0YS0mZ3Q7S2V5LlVuaWNvZGVDaGFyPGJyPiZndDsgJmx0 Oz0gTCd6JykpIHs8YnI+Jmd0OyAgICAgICAgQ29udHJvbEluZGV4ID0gS2V5RGF0YS0mZ3Q7S2V5 LlVuaWNvZGVDaGFyIC0gTCdhJyArIDE7PGJyPiZndDsgKyAgICB9IGVsc2UgaWYgKChLZXlEYXRh LSZndDtLZXkuVW5pY29kZUNoYXIgJmd0Oz0gTCdBJyAtIEwnQScgKyAxKSAmYW1wOyZhbXA7IChL ZXlEYXRhLTxicj4mZ3Q7ICZndDtLZXkuVW5pY29kZUNoYXIgJmx0Oz0gTCdaJyAtIEwnQScgKyAx KSkgezxicj4mZ3Q7ICsgICAgICBDb250cm9sSW5kZXggPSBLZXlEYXRhLSZndDtLZXkuVW5pY29k ZUNoYXI7PGJyPiZndDsgKyAgICB9IGVsc2UgaWYgKChLZXlEYXRhLSZndDtLZXkuVW5pY29kZUNo YXIgJmd0Oz0gTCdhJyAtIEwnYScgKyAxKSAmYW1wOyZhbXA7IChLZXlEYXRhLTxicj4mZ3Q7ICZn dDtLZXkuVW5pY29kZUNoYXIgJmx0Oz0gTCd6JyAtIEwneicgKyAxKSkgezxicj4mZ3Q7ICsgICAg ICBDb250cm9sSW5kZXggPSBLZXlEYXRhLSZndDtLZXkuVW5pY29kZUNoYXI7PGJyPiZndDsgICAg ICB9PGJyPiZndDsgICAgfTxicj4mZ3Q7ICAgIGlmICgoU0NBTl9DT05UUk9MX1ogJmx0OyBDb250 cm9sSW5kZXgpPGJyPiZndDsgZGlmZiAtLWdpdDxicj4mZ3Q7IGEvU2hlbGxQa2cvTGlicmFyeS9V ZWZpU2hlbGxEZWJ1ZzFDb21tYW5kc0xpYi9IZXhFZGl0L01haW5IZXhFZGl0b3IuYzxicj4mZ3Q7 IGIvU2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxEZWJ1ZzFDb21tYW5kc0xpYi9IZXhFZGl0L01h aW5IZXhFZGl0b3IuYzxicj4mZ3Q7IGluZGV4IGEwMGRmNDlkMzguLjM5NGU1MzFjMTYgMTAwNjQ0 PGJyPiZndDsgLS0tIGEvU2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxEZWJ1ZzFDb21tYW5kc0xp Yi9IZXhFZGl0L01haW5IZXhFZGl0b3IuYzxicj4mZ3Q7ICsrKyBiL1NoZWxsUGtnL0xpYnJhcnkv VWVmaVNoZWxsRGVidWcxQ29tbWFuZHNMaWIvSGV4RWRpdC9NYWluSGV4RWRpdG9yLjxicj4mZ3Q7 ICsrKyBjPGJyPiZndDsgQEAgLTEzNywxNCArMTM3LDE3IEBAIEhNYWluQ29tbWFuZERpc3BsYXlI ZWxwICg8YnI+Jmd0OyAgICAgICAgaWYgKEtleURhdGEuS2V5LlVuaWNvZGVDaGFyID09IEwnVycg LSBMJ0EnICsgMSkgezxicj4mZ3Q7ICAgICAgICAgIGJyZWFrOzxicj4mZ3Q7ICAgICAgICB9PGJy PiZndDsgLSAgICB9IGVsc2UgaWYgKCgoS2V5RGF0YS5LZXlTdGF0ZS5LZXlTaGlmdFN0YXRlICZh bXA7IEVGSV9TSElGVF9TVEFURV9WQUxJRCkgIT0gMCk8YnI+Jmd0OyAmYW1wOyZhbXA7PGJyPiZn dDsgLSAgICAgICAgICAgICAgICgoS2V5RGF0YS5LZXlTdGF0ZS5LZXlTaGlmdFN0YXRlICZhbXA7 IChFRklfTEVGVF9DT05UUk9MX1BSRVNTRUQgfDxicj4mZ3Q7IEVGSV9SSUdIVF9DT05UUk9MX1BS RVNTRUQpKSAhPSAwKSAmYW1wOyZhbXA7PGJyPiZndDsgLSAgICAgICAgICAgICAgICgoS2V5RGF0 YS5LZXlTdGF0ZS5LZXlTaGlmdFN0YXRlICZhbXA7IH4oRUZJX1NISUZUX1NUQVRFX1ZBTElEIHw8 YnI+Jmd0OyBFRklfTEVGVF9DT05UUk9MX1BSRVNTRUQgfCBFRklfUklHSFRfQ09OVFJPTF9QUkVT U0VEKSkgPT0gMCkpIHs8YnI+Jmd0OyArICAgIH0gZWxzZSBpZiAoKChLZXlEYXRhLktleVN0YXRl LktleVNoaWZ0U3RhdGUgJmFtcDsgRUZJX1NISUZUX1NUQVRFX1ZBTElEKSAhPSAwKTxicj4mZ3Q7 ICsgICAgICAgICAgICAmYW1wOyZhbXA7ICgoS2V5RGF0YS5LZXlTdGF0ZS5LZXlTaGlmdFN0YXRl ICZhbXA7IChFRklfTEVGVF9DT05UUk9MX1BSRVNTRUQgfDxicj4mZ3Q7IEVGSV9SSUdIVF9DT05U Uk9MX1BSRVNTRUQpKSAhPSAwKTxicj4mZ3Q7ICsgICAgICAgICAgICAmYW1wOyZhbXA7ICgoS2V5 RGF0YS5LZXlTdGF0ZS5LZXlTaGlmdFN0YXRlICZhbXA7PGJyPiZndDsgKyB+KEVGSV9TSElGVF9T VEFURV9WQUxJRCB8IEVGSV9MRUZUX0NPTlRST0xfUFJFU1NFRCB8PGJyPiZndDsgKyBFRklfUklH SFRfQ09OVFJPTF9QUkVTU0VEKSkgPT0gMCkpIHs8YnI+Jmd0OyAgICAgICAgLy88YnI+Jmd0OyAg ICAgICAgLy8gRm9yIGNvbnNvbGVzIHRoYXQgc3VwcG9ydHMvcmVwb3J0cyBzaGlmdCBzdGF0ZSw8 YnI+Jmd0OyAgICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgb25seSBDT05UUk9MIHNoaWZ0IGtleSBp cyBwcmVzc2VkLjxicj4mZ3Q7ICsgICAgICAvLyBGb3Igc29tZSBjb25zb2xlcyB0aGF0IHJlcG9y dCBzaGlmdCBzdGF0ZSw8YnI+Jmd0OyArICAgICAgLy8gQ1RSTCtXIGlzIHN0aWxsIHRyYW5zbGF0 ZWQgdG8gTCdXJyAtIEwnQScgKyAxLjxicj4mZ3Q7ICAgICAgICAvLzxicj4mZ3Q7IC0gICAgICBp ZiAoKEtleURhdGEuS2V5LlVuaWNvZGVDaGFyID09ICd3JykgfHwgKEtleURhdGEuS2V5LlVuaWNv ZGVDaGFyID09ICdXJykpPGJyPiZndDsgezxicj4mZ3Q7ICsgICAgICBpZiAoKEtleURhdGEuS2V5 LlVuaWNvZGVDaGFyID09ICd3JykgfHwgKEtleURhdGEuS2V5LlVuaWNvZGVDaGFyID09ICdXJyk8 YnI+Jmd0OyArICAgICAgICB8fCAoS2V5RGF0YS5LZXkuVW5pY29kZUNoYXIgPT0gTCd3JyAtIEwn YScgKyAxKSB8fDxicj4mZ3Q7ICsgKEtleURhdGEuS2V5LlVuaWNvZGVDaGFyID09IEwnVycgLSBM J0EnICsgMSkpIHs8YnI+Jmd0OyAgICAgICAgICBicmVhazs8YnI+Jmd0OyAgICAgICAgfTxicj4m Z3Q7ICAgICAgfTxicj4mZ3Q7IC0tPGJyPiZndDsgMi4yMS4xIChBcHBsZSBHaXQtMTIyLjMpPGJy PiZndDs8YnI+Jmd0Ozxicj4mZ3Q7IC09LT0tPS09LT0tPTxicj4mZ3Q7IEdyb3Vwcy5pbyBMaW5r czogWW91IHJlY2VpdmUgYWxsIG1lc3NhZ2VzIHNlbnQgdG8gdGhpcyBncm91cC48YnI+Jmd0Ozxi cj4mZ3Q7IFZpZXcvUmVwbHkgT25saW5lICgjNTQxMjIpOiBodHRwczovL2VkazIuZ3JvdXBzLmlv L2cvZGV2ZWwvbWVzc2FnZS81NDEyMjxicj4mZ3Q7IE11dGUgVGhpcyBUb3BpYzogaHR0cHM6Ly9n cm91cHMuaW8vbXQvNzExMzM3MjkvMTc2ODc1Njxicj4mZ3Q7IEdyb3VwIE93bmVyOiBkZXZlbCtv d25lckBlZGsyLmdyb3Vwcy5pbzxicj4mZ3Q7IFVuc3Vic2NyaWJlOiBodHRwczovL2VkazIuZ3Jv dXBzLmlvL2cvZGV2ZWwvdW5zdWIgIFt6aGljaGFvLmdhb0BpbnRlbC5jb21dPGJyPiZndDsgLT0t PS09LT0tPS09PGJyPjxicj48L2Jsb2NrcXVvdGU+PGRpdj48YnI+PC9kaXY+PGRpdj48YnI+PC9k aXY+ --b1_36e33b4d2a699d196d5fe0f90c6e1fec--