Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1on0Kb-0005Va-Fa for pgsql-hackers@arkaria.postgresql.org; Mon, 24 Oct 2022 16:29:42 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1on0KZ-0008E6-MH for pgsql-hackers@arkaria.postgresql.org; Mon, 24 Oct 2022 16:29:39 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1on0KY-000894-2P for pgsql-hackers@lists.postgresql.org; Mon, 24 Oct 2022 16:29:39 +0000 Received: from mail-qk1-x72b.google.com ([2607:f8b0:4864:20::72b]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1on0KS-0003n4-Bz for pgsql-hackers@postgresql.org; Mon, 24 Oct 2022 16:29:36 +0000 Received: by mail-qk1-x72b.google.com with SMTP id 8so6396740qka.1 for ; Mon, 24 Oct 2022 09:29:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crunchydata.com; s=google; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=ldRFvRel74ZonHOEuT2C8mYzQ5p73AyEsVVTq28bbkU=; b=MBcQm8rH+TkAZCvNqYTYvpHzS0VNWdXm+22lH3pBQ63n6xwdH+wkG9TzX0rHoCuuI2 95100Vnmx6tbQeNAX7znbRGnUjjCoj4fA+XP1raZp9umYREWbDdii9itBYrIDQw/eheb r8YT1EaAK+w0mH3C6mLc5H07QB4tdgzinlZSwS4W85WjzxegypU3unYhu7XqNq5wN8wu NMZhvncL6fz0cAh4IolK0NnGTy5pZNbn5S977h5v8tGq5b3/dX/+004n+W7OLUd4X7JV GkeQB40YQLQzppImOGdOj7pFaw857caQqOjp2dfcE1b7wS9+V/8lJSq6xQhIcKppdzP0 DujA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=ldRFvRel74ZonHOEuT2C8mYzQ5p73AyEsVVTq28bbkU=; b=fjrHJOPKoDt09/KbhxeLhcOTu+A8XqfMSkWTLbHhlMZPf3XY8aKhoxul+SSwleFFRD sYTp24RgnPEScNZv5bVIFos3Nqvk2lb+AYMd5qddnEEj3TvxW7o3xMqevmc+VEPujpqw UA+7jGY9A3pYkJXYpBpwHVzjR7vxxRwpR6rwpQ2FXdWRolZbPQp7SQsj5HahUsYOAtg1 bBWA24fQAx8cfr0n6mzQgtoWBf8UJrBYl81+7Mz9KwJmHo/MPI9G24h7AwRMAZFu7+gL 4Vbh6lx57vSh9myqoV4gWgMhP8gHLhXyTP9DdWgfe6yRQhXv+qLz2K5aQduKUArcWKX0 /6Jg== X-Gm-Message-State: ACrzQf1JDjjpMCcnb0A3QNARCc+5Q+q7dtJ8HMw+ue6Gp3BmTdCdwZTl EWKXs3Rb35q0PEr66isJ77H2vasCqsy0wyCjVRMdGAHy9LI5qT1y X-Google-Smtp-Source: AMsMyM4/jvG6+Q5A95hFCDh/y5JiJKyZIRMu12VLbvm7KhV/89j3j9h8utAknXOxLjdNDvOHDU3ecAdUVZFH0cwahMU= X-Received: by 2002:a05:620a:bc5:b0:6ce:bc87:9253 with SMTP id s5-20020a05620a0bc500b006cebc879253mr24449555qki.486.1666628971083; Mon, 24 Oct 2022 09:29:31 -0700 (PDT) MIME-Version: 1.0 From: David Christensen Date: Mon, 24 Oct 2022 11:29:19 -0500 Message-ID: Subject: Moving forward with TDE To: PostgreSQL-development Cc: Stephen Frost Content-Type: multipart/mixed; boundary="000000000000cbfbc705ebca4b20" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000cbfbc705ebca4b20 Content-Type: text/plain; charset="UTF-8" Hi -hackers, Working with Stephen, I am attempting to pick up some of the work that was left off with TDE and the key management infrastructure. I have rebased Bruce's KMS/TDE patches as they existed on the https://wiki.postgresql.org/wiki/Transparent_Data_Encryption wiki page, which are enclosed in this email. I would love to open a discussion about how to move forward and get some of these features built out. The historical threads here are quite long and complicated; is there a "current state" other than the wiki that reflects the general thinking on this feature? Any major developments in direction that would not be reflected in the code from May 2021? Thanks, David --000000000000cbfbc705ebca4b20 Content-Type: application/octet-stream; name="0001-cfe-01-doc_over_master-squash-commit.patch" Content-Disposition: attachment; filename="0001-cfe-01-doc_over_master-squash-commit.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l9mzt88h0 RnJvbSBhMTJmZDAxYzg2ZTE3NjgzMTBhOTE2NDBjZGQ0NjdlOTc5YmViZDk0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCcnVjZSBNb21qaWFuIDxicnVjZUBtb21qaWFuLnVzPgpEYXRl OiBGcmksIDI1IEp1biAyMDIxIDE2OjU2OjQzIC0wNDAwClN1YmplY3Q6IFtQQVRDSCAwMS8xMl0g Y2ZlLTAxLWRvY19vdmVyX21hc3RlciBzcXVhc2ggY29tbWl0CgotLS0KIGRvYy9zcmMvc2dtbC9k YXRhYmFzZS1lbmNyeXB0aW9uLnNnbWwgfCAxNDkgKysrKysrKysrKysrKysrKysrKysrKysrKysK IGRvYy9zcmMvc2dtbC9maWxlbGlzdC5zZ21sICAgICAgICAgICAgfCAgIDEgKwogZG9jL3NyYy9z Z21sL2luc3RhbGxhdGlvbi5zZ21sICAgICAgICB8ICAgMiArLQogZG9jL3NyYy9zZ21sL21vbml0 b3Jpbmcuc2dtbCAgICAgICAgICB8ICAxMyArKysKIGRvYy9zcmMvc2dtbC9wb3N0Z3Jlcy5zZ21s ICAgICAgICAgICAgfCAgIDEgKwogNSBmaWxlcyBjaGFuZ2VkLCAxNjUgaW5zZXJ0aW9ucygrKSwg MSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9kYXRhYmFzZS1l bmNyeXB0aW9uLnNnbWwKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGF0YWJhc2UtZW5jcnlw dGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL2RhdGFiYXNlLWVuY3J5cHRpb24uc2dtbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5jNDM3N2FkYTY0Ci0tLSAvZGV2L251bGwK KysrIGIvZG9jL3NyYy9zZ21sL2RhdGFiYXNlLWVuY3J5cHRpb24uc2dtbApAQCAtMCwwICsxLDE0 OSBAQAorPCEtLSBkb2Mvc3JjL3NnbWwvZGF0YWJhc2UtZW5jcnlwdGlvbi5zZ21sIC0tPgorCis8 Y2hhcHRlciBpZD0iY2x1c3Rlci1maWxlLWVuY3J5cHRpb24iPgorIDx0aXRsZT5DbHVzdGVyIEZp bGUgRW5jcnlwdGlvbjwvdGl0bGU+CisKKyA8aW5kZXh0ZXJtIHpvbmU9ImNsdXN0ZXItZmlsZS1l bmNyeXB0aW9uIj4KKyAgPHByaW1hcnk+Q2x1c3RlciBGaWxlIEVuY3J5cHRpb248L3ByaW1hcnk+ CisgPC9pbmRleHRlcm0+CisKKyA8cGFyYT4KKyAgVGhlIHB1cnBvc2Ugb2YgY2x1c3RlciBmaWxl IGVuY3J5cHRpb24gaXMgdG8gcHJldmVudCB1c2VycyB3aXRoIHJlYWQKKyAgYWNjZXNzIG9uIHRo ZSBkaXJlY3RvcmllcyB1c2VkIHRvIHN0b3JlIGRhdGFiYXNlIGZpbGVzIGFuZCB3cml0ZS1haGVh ZAorICBsb2cgZmlsZXMgZnJvbSBiZWluZyBhYmxlIHRvIGFjY2VzcyB0aGUgZGF0YSBzdG9yZWQg aW4gdGhvc2UgZmlsZXMuCisgIEZvciBleGFtcGxlLCB3aGVuIHVzaW5nIGNsdXN0ZXIgZmlsZSBl bmNyeXB0aW9uLCB1c2VycyB3aG8gaGF2ZSByZWFkCisgIGFjY2VzcyB0byB0aGUgY2x1c3RlciBk aXJlY3RvcmllcyBmb3IgYmFja3VwIHB1cnBvc2VzIHdpbGwgbm90IGJlIGFibGUKKyAgdG8gZGVj cnlwdCB0aGUgZGF0YSBzdG9yZWQgaW4gdGhlc2UgZmlsZXMuICBSZWFkLW9ubHkgYWNjZXNzIGZv ciBhIGdyb3VwCisgIG9mIHVzZXJzIGNhbiBiZSBlbmFibGVkIHVzaW5nIHRoZSA8YXBwbGljYXRp b24+aW5pdGRiPC9hcHBsaWNhdGlvbj4KKyAgPG9wdGlvbj4tLWFsbG93LWdyb3VwLWFjY2Vzczwv b3B0aW9uPiBvcHRpb24uICBDbHVzdGVyIGZpbGUgZW5jcnlwdGlvbgorICBhbHNvIHByb3ZpZGVz IGRhdGEtYXQtcmVzdCBzZWN1cml0eSwgcHJvdGVjdGluZyB1c2VycyBmcm9tIGRhdGEgbG9zcwor ICBzaG91bGQgdGhlIHBoeXNpY2FsIHN0b3JhZ2UgbWVkaWEgYmUgc3RvbGVuIG9yIGltcHJvcGVy bHkgZXJhc2VkIGJlZm9yZQorICBkaXNwb3NhbC4KKyA8L3BhcmE+CisKKyA8cGFyYT4KKyAgQ2x1 c3RlciBmaWxlIGVuY3J5cHRpb24gZG9lcyBub3QgcHJvdGVjdCBhZ2FpbnN0IHVuYXV0aG9yaXpl ZCBmaWxlCisgIHN5c3RlbSB3cml0ZXMuICBTdWNoIHdyaXRlcyBjYW4gYWxsb3cgZGF0YSBkZWNy eXB0aW9uIGlmIHVzZWQgdG8gd2Vha2VuCisgIHRoZSBzeXN0ZW0ncyBzZWN1cml0eSBhbmQgdGhl IHdlYWtlbmVkIHN5c3RlbSBpcyBsYXRlciBzdXBwbGllZCB3aXRoCisgIHRoZSBleHRlcm5hbGx5 LXN0b3JlZCBjbHVzdGVyIGVuY3J5cHRpb24ga2V5LiAgVGhpcyBhbHNvIGRvZXMgbm90IGFsd2F5 cworICBkZXRlY3QgaWYgdXNlcnMgd2l0aCB3cml0ZSBhY2Nlc3MgcmVtb3ZlIG9yIG1vZGlmeSBk YXRhYmFzZSBmaWxlcy4KKyA8L3BhcmE+CisKKyA8cGFyYT4KKyAgVGhpcyBhbHNvIGRvZXMgbm90 IHByb3RlY3QgYWdhaW5zdCB1c2VycyB3aG8gaGF2ZSByZWFkIGFjY2VzcyB0byBkYXRhYmFzZQor ICBwcm9jZXNzIG1lbW9yeSBiZWNhdXNlIGFsbCBpbi1tZW1vcnkgZGF0YSBwYWdlcyBhbmQgZGF0 YSBlbmNyeXB0aW9uIGtleXMKKyAgYXJlIHN0b3JlZCB1bmVuY3J5cHRlZCBpbiBtZW1vcnkuICBU aGVyZWZvcmUsIGFuIGF0dGFja2VyIHdobyBpcyBhYmxlCisgIHRvIHJlYWQgbWVtb3J5IGNhbiBy ZWFkIHRoZSBkYXRhIGVuY3J5cHRpb24ga2V5cyBhbmQgZGVjcnlwdCB0aGUgZW50aXJlCisgIGNs dXN0ZXIuICBUaGUgUG9zdGdyZXMgb3BlcmF0aW5nIHN5c3RlbSB1c2VyIGFuZCB0aGUgb3BlcmF0 aW5nIHN5c3RlbQorICBhZG1pbmlzdHJhdG9yLCBlLmcuLCB0aGUgPGxpdGVyYWw+cm9vdDwvbGl0 ZXJhbD4gdXNlciwgaGF2ZSBzdWNoIGFjY2Vzcy4KKyA8L3BhcmE+CisKKyA8c2VjdDEgaWQ9ImNs dXN0ZXItZW5jcnlwdGlvbi1rZXlzIj4KKyAgPHRpdGxlPktleXM8L3RpdGxlPgorCisgIDxwYXJh PgorICAgQ2x1c3RlciBmaWxlIGVuY3J5cHRpb24gdXNlcyB0d28gbGV2ZWxzIG9mIGVuY3J5cHRp b24gJm1kYXNoOyBhbiB1cHBlcgorICAga2V5IHdoaWNoIGVuY3J5cHRzIGxvd2VyLWxldmVsIGtl eXMuICBUaGUgdXBwZXItbGV2ZWwga2V5IGlzIG9mdGVuCisgICByZWZlcnJlZCB0byBhcyBhIEtl eSBFbmNyeXB0aW9uIEtleSAoPGFjcm9ueW0+S0VLPC9hY3JvbnltPikuICBUaGlzIGtleQorICAg aXMgPGVtcGhhc2lzPm5vdDwvZW1waGFzaXM+IHN0b3JlZCBpbiB0aGUgZmlsZSBzeXN0ZW0sIGJ1 dCBwcm92aWRlZCBhdAorICAgPGNvbW1hbmQ+aW5pdGRiPC9jb21tYW5kPiB0aW1lIGFuZCBlYWNo IHRpbWUgdGhlIHNlcnZlciBpcyBzdGFydGVkLiAgVGhpcworICAga2V5IGNhbiBiZSBlYXNpbHkg Y2hhbmdlZCB2aWEgPGNvbW1hbmQ+cGdfYWx0ZXJja2V5PC9jb21tYW5kPiB3aXRob3V0CisgICBy ZXF1aXJpbmcgYW55IGNoYW5nZXMgdG8gdGhlIHRoZSBkYXRhIGZpbGVzIG9yIDxjb21tYW5kPldB TDwvY29tbWFuZD4KKyAgIGZpbGVzLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUgbG93 ZXIgbGV2ZWwga2V5cyBhcmUgZGF0YSBlbmNyeXB0aW9uIGtleXMsIHNwZWNpZmljYWxseSBmb3Ig cmVsYXRpb25zCisgICBhbmQgPGFjcm9ueW0+V0FMPC9hY3JvbnltPi4gIFRoZSByZWxhdGlvbiBr ZXkgaXMgdXNlZCB0byBlbmNyeXB0IGRhdGFiYXNlCisgICBoZWFwIGFuZCBpbmRleCBmaWxlcy4g IFRoZSBXQUwga2V5IGlzIHVzZWQgdG8gZW5jcnlwdCB3cml0ZS1haGVhZCBsb2cKKyAgIChXQUwp IGZpbGVzLiAgVHdvIGRpZmZlcmVudCBrZXlzIGFyZSB1c2VkIHNvIHRoYXQgcHJpbWFyeSBhbmQg c3RhbmRieQorICAgc2VydmVycyBjYW4gdXNlIGRpZmZlcmVudCByZWxhdGlvbiBrZXlzLCBidXQg dGhlIHNhbWUgV0FMIGtleSwgc28gdGhhdAorICAgdGhlc2Uga2V5cyBjYW4gKGluIGEgZnV0dXJl IHJlbGVhc2UpIGJlIHJvdGF0ZWQgYnkgc3dpdGNoaW5nIHRoZQorICAgcHJpbWFyeSB0byB0aGUg c3RhbmRieSBhbmQgdGhlbiBjaGFuZ2luZyB0aGUgV0FMIGtleS4gIEV2ZW50dWFsbHksCisgICBl bmNyeXB0aW9uIHdpbGwgYmUgYWJsZSB0byBhZGRlZCB0byBub24tZW5jcnlwdGVkIGNsdXN0ZXJz IGJ5IGNyZWF0aW5nCisgICBlbmNyeXB0ZWQgcmVwbGljYXMgYW5kIHN3aXRjaGluZyBvdmVyIHRv IHRoZW0uCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFBvc3RncmVzIHN0b3JlcyB0aGUgZGF0 YSBlbmNyeXB0aW9uIChsb3dlci1sZXZlbCkga2V5cyBpbiB0aGUgZGF0YQorICAgZGlyZWN0b3J5 IGVuY3J5cHRlZCAod3JhcHBlZCkgYnkga2V5IGVuY3J5cHRpb24gKHVwcGVyLWxldmVsKSBrZXku CisgICBUaG91Z2ggdGhlIGRhdGEgZW5jcnlwdGlvbiBrZXlzIHRlY2huaWNhbGx5IGV4aXN0IGlu IHRoZSBmaWxlIHN5c3RlbSwKKyAgIHRoZSBrZXkgZW5jcnlwdGlvbiBrZXkgZG9lcyBub3QsIHNv IHRoZSBkYXRhIGVuY3J5cHRpb24ga2V5cyBhcmUKKyAgIHNlY3VyZWx5IHN0b3JlZC4gIERhdGEg ZW5jcnlwdGlvbiBrZXlzIGFyZSB1c2VkIHRvIHNlY3VyaXR5IGVuY3J5cHQKKyAgIG90aGVyIGRh dGFiYXNlIGZpbGVzLgorICA8L3BhcmE+CisgPC9zZWN0MT4KKworIDxzZWN0MSBpZD0iY2x1c3Rl ci1lbmNyeXB0aW9uLWluaXRpYWxpemF0aW9uIj4KKyAgPHRpdGxlPkluaXRpYWxpemF0aW9uPC90 aXRsZT4KKworICA8cGFyYT4KKyAgIENsdXN0ZXIgZmlsZSBlbmNyeXB0aW9uIGlzIGVuYWJsZWQg d2hlbgorICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBpcyBidWlsdAor ICAgd2l0aCA8bGl0ZXJhbD4tLXdpdGgtb3BlbnNzbDwvbGl0ZXJhbD4gYW5kIDx4cmVmCisgICBs aW5rZW5kPSJhcHAtaW5pdGRiLWNsdXN0ZXIta2V5LWNvbW1hbmQiLz4gaXMgc3BlY2lmaWVkCisg ICBkdXJpbmcgPGNvbW1hbmQ+aW5pdGRiPC9jb21tYW5kPi4gIFRoZSBjbHVzdGVyIGtleQorICAg cHJvdmlkZWQgYnkgdGhlIDxvcHRpb24+LS1jbHVzdGVyLWtleS1jb21tYW5kPC9vcHRpb24+Cisg ICBvcHRpb24gZHVyaW5nIDxjb21tYW5kPmluaXRkYjwvY29tbWFuZD4gYW5kIHRoZSBvbmUgZ2Vu ZXJhdGVkCisgICBieSA8eHJlZiBsaW5rZW5kPSJndWMtY2x1c3Rlci1rZXktY29tbWFuZCIvPiBp biB0aGUKKyAgIDxmaWxlbmFtZT5wb3N0Z3Jlc3FsLmNvbmY8L2ZpbGVuYW1lPiBtdXN0IG1hdGNo IGZvciB0aGUgZGF0YWJhc2UKKyAgIGNsdXN0ZXIgdG8gc3RhcnQuIE5vdGUgdGhhdCB0aGUgY2x1 c3RlciBrZXkgY29tbWFuZAorICAgcGFzc2VkIHRvIDxjb21tYW5kPmluaXRkYjwvY29tbWFuZD4g bXVzdCByZXR1cm4gYSBrZXkgb2YKKyAgIDY0IGhleGFkZWNpbWFsIGNoYXJhY3RlcnMuIEZvciBl eGFtcGxlOgorPHByb2dyYW1saXN0aW5nPgoraW5pdGRiIC1EIGRibmFtZSAtLWNsdXN0ZXIta2V5 LWNvbW1hbmQ9J2NrZXlfcGFzc3BocmFzZS5zaCcKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICBDbHVz dGVyIGZpbGUgZW5jcnlwdGlvbiBkb2VzIG5vdCBzdXBwb3J0IGEgPHZhcm5hbWU+d2FsX2xldmVs PC92YXJuYW1lPgorICAgb2YgPGxpdGVyYWw+bWluaW1hbDwvbGl0ZXJhbD4uCisgIDwvcGFyYT4K KyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJjbHVzdGVyLWVuY3J5cHRpb24tb3BlcmF0aW9uIj4K KyAgPHRpdGxlPk9wZXJhdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBEdXJpbmcgdGhlIDxj b21tYW5kPmluaXRkYjwvY29tbWFuZD4gcHJvY2VzcywgaWYKKyAgIDxvcHRpb24+LS1jbHVzdGVy LWtleS1jb21tYW5kPC9vcHRpb24+IGlzIHNwZWNpZmllZCwgdHdvIGRhdGEtbGV2ZWwKKyAgIGVu Y3J5cHRpb24ga2V5cyBhcmUgY3JlYXRlZC4gICBUaGVzZSB0d28ga2V5cyBhcmUgdGhlbiBlbmNy eXB0ZWQgd2l0aAorICAgdGhlIGtleSBlbmNyeXB0aW9uIGtleSAoS0VLKSBzdXBwbGllZCBieSB0 aGUgY2x1c3RlciBrZXkgY29tbWFuZCBiZWZvcmUKKyAgIGJlaW5nIHN0b3JlZCBpbiB0aGUgZGF0 YWJhc2UgZGlyZWN0b3J5LiAgVGhlIGtleSBvciBwYXNzcGhyYXNlIHRoYXQKKyAgIGRlcml2ZXMg dGhlIGtleSBtdXN0IGJlIHN1cHBsaWVkIGZyb20gdGhlIHRlcm1pbmFsIG9yIHN0b3JlZCBpbiBh CisgICB0cnVzdGVkIGtleSBzdG9yZSwgc3VjaCBhcyBrZXkgdmF1bHQgc29mdHdhcmUgb3IgYSBo YXJkd2FyZSBzZWN1cml0eQorICAgbW9kdWxlLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBJ ZiB0aGUgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBzZXJ2ZXIgaGFzCisg ICBiZWVuIGluaXRpYWxpemVkIHRvIHJlcXVpcmUgYSBjbHVzdGVyIGtleSwgZWFjaCB0aW1lIHRo ZQorICAgc2VydmVyIHN0YXJ0cyB0aGUgPGZpbGVuYW1lPnBvc3RncmVzcWwuY29uZjwvZmlsZW5h bWU+CisgICA8dmFybmFtZT5jbHVzdGVyX2tleV9jb21tYW5kPC92YXJuYW1lPiBjb21tYW5kIHdp bGwgYmUgZXhlY3V0ZWQKKyAgIGFuZCB0aGUgY2x1c3RlciBrZXkgcmV0cmlldmVkLiAgVGhlIGRh dGEgZW5jcnlwdGlvbiBrZXlzIGluIHRoZQorICAgPGZpbGVuYW1lPnBnX2NyeXB0b2tleXM8L2Zp bGVuYW1lPiBkaXJlY3Rvcnkgd2lsbCB0aGVuIGJlIGRlY3J5cHRlZAorICAgdXNpbmcgdGhlIHN1 cHBsaWVkIGtleSBhbmQgaW50ZWdyaXR5LWNoZWNrZWQgdG8gZW5zdXJlIGl0IG1hdGNoZXMgdGhl CisgICBpbml0ZGItc3VwcGxpZWQga2V5LiAgKElmIHRoaXMgY2hlY2sgZmFpbHMsIHRoZSBzZXJ2 ZXIgd2lsbCByZWZ1c2UKKyAgIHRvIHN0YXJ0LikgIFRoZSBjbHVzdGVyIGVuY3J5cHRpb24ga2V5 IHdpbGwgdGhlbiBiZSByZW1vdmVkIGZyb20KKyAgIHN5c3RlbSBtZW1vcnkuICBUaGUgZGVjcnlw dGVkIGRhdGEgZW5jcnlwdGlvbiBrZXlzIHdpbGwgcmVtYWluIGluCisgICBzaGFyZWQgbWVtb3J5 IHVudGlsIHRoZSBzZXJ2ZXIgaXMgc3RvcHBlZC4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAg VGhlIGRhdGEgZW5jcnlwdGlvbiBrZXlzIGFyZSByYW5kb21seSBnZW5lcmF0ZWQgYW5kIGNhbiBi ZSAxMjgsIDE5MiwKKyAgIG9yIDI1Ni1iaXRzIGluIGxlbmd0aCwgZGVwZW5kaW5nIG9uIHdoZXRo ZXIgPGxpdGVyYWw+QUVTMTI4PC9saXRlcmFsPiwKKyAgIDxsaXRlcmFsPkFFUzE5MjwvbGl0ZXJh bD4sIG9yIDxsaXRlcmFsPkFFUzI1NjwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkLgorICAgVGhleSBh cmUgZW5jcnlwdGVkIGJ5IHRoZSBrZXkgZW5jcnlwdGlvbiBrZXkgKEtFSykgdXNpbmcgQWR2YW5j ZWQKKyAgIEVuY3J5cHRpb24gU3RhbmRhcmQgKDxhY3JvbnltPkFFUzI1NjwvYWNyb255bT4pIGVu Y3J5cHRpb24gaW4gS2V5CisgICBXcmFwIFBhZGRlZCBNb2RlLCB3aGljaCBhbHNvIHByb3ZpZGVz IEtFSyBhdXRoZW50aWNhdGlvbjsgIHNlZSA8dWxpbmsKKyAgIHVybD0iaHR0cHM6Ly90b29scy5p ZXRmLm9yZy9odG1sL3JmYzU2NDkiPlJGQyA1NjQ5PC91bGluaz4uIFdoaWxlCisgICAxMjgtYml0 IGVuY3J5cHRpb24gaXMgc3VmZmljaWVudCBmb3IgbW9zdCBzaXRlcywgMjU2LWJpdCBlbmNyeXB0 aW9uCisgICBpcyB0aG91Z2h0IHRvIGJlIG1vcmUgaW1tdW5lIHRvIGZ1dHVyZSBxdWFudHVtIGNy eXB0b2dyYXBoaWMgYXR0YWNrcy4KKyAgPC9wYXJhPgorCisgIDxwYXJhPi4KKyAgIElmIHlvdSBw cmVmZXIgdG8gY3JlYXRlIHRoZSByYW5kb20ga2V5cyBvbiB5b3VyIG93biwgeW91IGNhbiBjcmVh dGUKKyAgIGEgZW1wdHkgZGlyZWN0b3J5IHdpdGggYSA8ZmlsZW5hbWU+cGdfY3J5cHRva2V5cy9s aXZlPC9maWxlbmFtZT4KKyAgIHN1YmRpcmVjdG9yeSwgZ2VuZXJhdGUgdGhlIGtleXMgdGhlcmUg dXNpbmcgeW91ciB0b29scy4gYW5kIHVzZSB0aGUKKyAgIDxjb21tYW5kPmluaXRkYjwvY29tbWFu ZD4gPG9wdGlvbj4tLWNvcHktZW5jcnlwdGlvbi1rZXlzPC9vcHRpb24+CisgICB0byBjb3B5IHRo b3NlIGtleXMgaW50byB0aGUgbmV3bHktY3JlYXRlZCAgY2x1c3Rlci4KKyAgPC9wYXJhPgorIDwv c2VjdDE+Cis8L2NoYXB0ZXI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZmlsZWxpc3Quc2dt bCBiL2RvYy9zcmMvc2dtbC9maWxlbGlzdC5zZ21sCmluZGV4IGRlNDUwY2Q2NjEuLmVmZWI1NDJj ZjcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9maWxlbGlzdC5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9maWxlbGlzdC5zZ21sCkBAIC00OSw2ICs0OSw3IEBACiA8IUVOVElUWSB3YWwgICAgICAg ICAgIFNZU1RFTSAid2FsLnNnbWwiPgogPCFFTlRJVFkgbG9naWNhbC1yZXBsaWNhdGlvbiAgICBT WVNURU0gImxvZ2ljYWwtcmVwbGljYXRpb24uc2dtbCI+CiA8IUVOVElUWSBqaXQgICAgU1lTVEVN ICJqaXQuc2dtbCI+Cis8IUVOVElUWSBkYXRhYmFzZS1lbmNyeXB0aW9uIFNZU1RFTSAiZGF0YWJh c2UtZW5jcnlwdGlvbi5zZ21sIj4KIAogPCEtLSBwcm9ncmFtbWVyJ3MgZ3VpZGUgLS0+CiA8IUVO VElUWSBiZ3dvcmtlciAgIFNZU1RFTSAiYmd3b3JrZXIuc2dtbCI+CmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvaW5zdGFsbGF0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvaW5zdGFsbGF0aW9uLnNn bWwKaW5kZXggMzE5YzdlNjk2Ni4uYjY3ZDNiN2ZmYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L2luc3RhbGxhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9pbnN0YWxsYXRpb24uc2dtbApA QCAtMTAxMSw3ICsxMDExLDcgQEAgYnVpbGQtcG9zdGdyZXNxbDoKICAgICAgICA8bGlzdGl0ZW0+ CiAgICAgICAgIDxwYXJhPgogICAgICAgICAgQnVpbGQgd2l0aCBzdXBwb3J0IGZvciA8YWNyb255 bT5TU0w8L2Fjcm9ueW0+IChlbmNyeXB0ZWQpCi0gICAgICAgICBjb25uZWN0aW9ucy4gVGhlIG9u bHkgPHJlcGxhY2VhYmxlPkxJQlJBUlk8L3JlcGxhY2VhYmxlPgorICAgICAgICAgY29ubmVjdGlv bnMgYW5kIGNsdXN0ZXIgZmlsZSBlbmNyeXB0aW9uLiAgVGhlIG9ubHkgPHJlcGxhY2VhYmxlPkxJ QlJBUlk8L3JlcGxhY2VhYmxlPgogICAgICAgICAgc3VwcG9ydGVkIGlzIDxvcHRpb24+b3BlbnNz bDwvb3B0aW9uPi4gVGhpcyByZXF1aXJlcyB0aGUKICAgICAgICAgIDxwcm9kdWN0bmFtZT5PcGVu U1NMPC9wcm9kdWN0bmFtZT4gcGFja2FnZSB0byBiZSBpbnN0YWxsZWQuCiAgICAgICAgICA8Zmls ZW5hbWU+Y29uZmlndXJlPC9maWxlbmFtZT4gd2lsbCBjaGVjayBmb3IgdGhlIHJlcXVpcmVkCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sIGIvZG9jL3NyYy9zZ21sL21v bml0b3Jpbmcuc2dtbAppbmRleCBlNWQ2MjJkNTE0Li4zZTNlMWFkZWE2IDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5n LnNnbWwKQEAgLTEzNDAsNiArMTM0MCwxOSBAQCBwb3N0Z3JlcyAgIDI3MDkzICAwLjAgIDAuMCAg MzAwOTYgIDI3NTIgPyAgICAgICAgU3MgICAxMTozNCAgIDA6MDAgcG9zdGdyZXM6IHNlcgogICAg ICAgPGVudHJ5PjxsaXRlcmFsPkRhdGFGaWxlV3JpdGU8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAg IDxlbnRyeT5XYWl0aW5nIGZvciBhIHdyaXRlIHRvIGEgcmVsYXRpb24gZGF0YSBmaWxlLjwvZW50 cnk+CiAgICAgIDwvcm93PgorICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPktleUZp bGVSZWFkPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+V2FpdGluZyBmb3IgYSByZWFk IG9mIHRoZSB3cmFwcGVkIGRhdGEgZW5jcnlwdGlvbiBrZXlzLjwvZW50cnk+CisgICAgIDwvcm93 PgorICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPktleUZpbGVXcml0ZTwvbGl0ZXJh bD48L2VudHJ5PgorICAgICAgPGVudHJ5PldhaXRpbmcgZm9yIGEgd3JpdGUgb2YgdGhlIHdyYXBw ZWQgZGF0YSBlbmNyeXB0aW9uIGtleXMuPC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+ CisgICAgICA8ZW50cnk+PGxpdGVyYWw+S2V5RmlsZVN5bmM8L2xpdGVyYWw+PC9lbnRyeT4KKyAg ICAgIDxlbnRyeT5XYWl0aW5nIGZvciBjaGFuZ2VzIHRvIHRoZSB3cmFwcGVkIGRhdGEgZW5jcnlw dGlvbiBrZXlzIHRvIHJlYWNoCisgICAgICAgZHVyYWJsZSBzdG9yYWdlLjwvZW50cnk+CisgICAg IDwvcm93PgogICAgICA8cm93PgogICAgICAgPGVudHJ5PjxsaXRlcmFsPkxvY2tGaWxlQWRkVG9E YXRhRGlyUmVhZDwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgPGVudHJ5PldhaXRpbmcgZm9yIGEg cmVhZCB3aGlsZSBhZGRpbmcgYSBsaW5lIHRvIHRoZSBkYXRhIGRpcmVjdG9yeSBsb2NrCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvcG9zdGdyZXMuc2dtbCBiL2RvYy9zcmMvc2dtbC9wb3N0Z3Jl cy5zZ21sCmluZGV4IDczNDM5YzA0OWUuLmQ5OWIyNDYwNWYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9wb3N0Z3Jlcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9wb3N0Z3Jlcy5zZ21sCkBAIC0x NzEsNiArMTcxLDcgQEAgYnJlYWsgaXMgbm90IG5lZWRlZCBpbiBhIHdpZGVyIG91dHB1dCByZW5k ZXJpbmcuCiAgICZ3YWw7CiAgICZsb2dpY2FsLXJlcGxpY2F0aW9uOwogICAmaml0OworICAmZGF0 YWJhc2UtZW5jcnlwdGlvbjsKICAgJnJlZ3Jlc3M7CiAKICA8L3BhcnQ+Ci0tIAoyLjM3LjAgKEFw cGxlIEdpdC0xMzYpCgo= --000000000000cbfbc705ebca4b20 Content-Type: application/octet-stream; name="0002-cfe-02-internaldoc_over_cfe-01-doc-squash-commit.patch" Content-Disposition: attachment; filename="0002-cfe-02-internaldoc_over_cfe-01-doc-squash-commit.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l9mztb291 RnJvbSAyOTcxYWI2ZTFmYzQyMTAyZjNiMWY4YmU3MmJmZTMwNGMyZmFlZjYzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCcnVjZSBNb21qaWFuIDxicnVjZUBtb21qaWFuLnVzPgpEYXRl OiBGcmksIDI1IEp1biAyMDIxIDE2OjU2OjQ1IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAwMi8xMl0g Y2ZlLTAyLWludGVybmFsZG9jX292ZXJfY2ZlLTAxLWRvYyBzcXVhc2ggY29tbWl0CgotLS0KIHNy Yy9iYWNrZW5kL2NyeXB0by9SRUFETUUgfCAyMzEgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAyMzEgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL2NyeXB0by9SRUFETUUKCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jcnlwdG8vUkVBRE1FIGIvc3JjL2JhY2tlbmQvY3J5cHRvL1JFQURNRQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5iZTVlNTU1N2JhCi0tLSAvZGV2L251bGwKKysr IGIvc3JjL2JhY2tlbmQvY3J5cHRvL1JFQURNRQpAQCAtMCwwICsxLDIzMSBAQAorQ2x1c3RlciBG aWxlIEVuY3J5cHRpb24KKz09PT09PT09PT09PT09PT09PT09PT09CisKK1RoaXMgZGlyZWN0b3J5 IGNvbnRhaW5zIHN1cHBvcnQgZnVuY3Rpb25zIGFuZCBzYW1wbGUgc2NyaXB0cyB0byBiZSB1c2Vk Citmb3IgY2x1c3RlciBmaWxlIGVuY3J5cHRpb24uCisKK0FyY2hpdGVjdHVyZQorLS0tLS0tLS0t LS0tCisKK0Z1bmRhbWVudGFsbHksIGNsdXN0ZXIgZmlsZSBlbmNyeXB0aW9uIG11c3Qgc3RvcmUg ZGF0YSBpbiBhIGZpbGUgc3lzdGVtCitpbiBzdWNoIGEgd2F5IHRoYXQgdGhlIGtleXMgcmVxdWly ZWQgdG8gZGVjcnlwdCB0aGUgZmlsZSBzeXN0ZW0gZGF0YSBjYW4KK29ubHkgYmUgYWNjZXNzZWQg dXNpbmcgc29tZXdoZXJlIG91dHNpZGUgb2YgdGhlIGZpbGUgc3lzdGVtIGl0c2VsZi4gIFRoZQor ZXh0ZXJuYWwgcmVxdWlyZW1lbnQgY2FuIGJlIHNvbWVvbmUgdHlwaW5nIGluIGEgcGFzc3BocmFz ZSwgZ2V0dGluZyBhCitrZXkgZnJvbSBhIGtleSBtYW5hZ2VtZW50IHNlcnZlciAoS01TKSwgb3Ig ZGVjcnlwdGluZyBhIGtleSBzdG9yZWQgaW4KK3RoZSBmaWxlIHN5c3RlbSB1c2luZyBhIGhhcmR3 YXJlIHNlY3VyaXR5IG1vZHVsZSAoSFNNKS4gIFRoZSBjdXJyZW50CithcmNoaXRlY3R1cmUgc3Vw cG9ydHMgYWxsIG9mIHRoZXNlIG1ldGhvZHMsIGFuZCBpbmNsdWRlcyBzYW1wbGUgc2NyaXB0cwor Zm9yIHRoZW0uCisKK1RoZSBzaW1wbGVzdCBtZXRob2QgZm9yIGFjY2Vzc2luZyBkYXRhIGtleXMg dXNpbmcgc29tZSBleHRlcm5hbAorcmVxdWlyZW1lbnQgd291bGQgYmUgdG8gcmV0cmlldmUgYWxs IGRhdGEgZW5jcnlwdGlvbiBrZXlzIGZyb20gYSBLTVMuCitIb3dldmVyLCByZXRyaWV2ZWQga2V5 cyB3b3VsZCBzdGlsbCBuZWVkIHRvIGJlIHZlcmlmaWVkIGFzIHZhbGlkLiAgVGhpcworbWV0aG9k IGFsc28gaW50cm9kdWNlcyB1bmFjY2VwdGFibGUgY29tcGxleGl0eSBmb3Igc2ltcGxlciB1c2Ut Y2FzZXMsCitsaWtlIHVzZXItc3VwcGxpZWQgcGFzc3BocmFzZXMgb3IgSFNNIHVzYWdlLiAgRXh0 ZXJuYWwga2V5IHJvdGF0aW9uCit3b3VsZCBhbHNvIGJlIHZlcnkgaGFyZCBzaW5jZSBpdCB3b3Vs ZCByZXF1aXJlIHJlLWVuY3J5cHRpbmcgYWxsIHRoZQorZmlsZSBzeXN0ZW0gZGF0YSB3aXRoIHRo ZSBuZXcgZXh0ZXJuYWxseS1zdG9yZWQga2V5cy4KKworRm9yIHRoZXNlIHJlYXNvbiwgYSB0d28t dGllcmVkIGFyY2hpdGVjdHVyZSBpcyB1c2VkLCB3aGljaCB1c2VzIHR3bwordHlwZXMgb2YgZW5j cnlwdGlvbiBrZXlzOiBhIGtleSBlbmNyeXB0aW9uIGtleSAoS0VLKSBhbmQgZGF0YSBlbmNyeXB0 aW9uCitrZXlzIChERUspLiBUaGUgS0VLIHNob3VsZCBub3QgYmUgcHJlc2VudCB1bmVuY3J5cHRl ZCBpbiB0aGUgZmlsZSBzeXN0ZW0KKy0tLSBpdCBzaG91bGQgYmUgc3VwcGxpZWQgdGhlIHVzZXIs IHN0b3JlZCBleHRlcm5hbGx5IChlLmcuLCBpbiBhIEtNUykKK29yIHN0b3JlZCBpbiB0aGUgZmls ZSBzeXN0ZW0gZW5jcnlwdGVkIHdpdGggYSBIU00gKGUuZy4sIFBJViBkZXZpY2UpLgorVGhlIERF SyBpcyB1c2VkIHRvIGVuY3J5cHQgZGF0YWJhc2UgZmlsZXMgYW5kIGlzIHN0b3JlZCBpbiB0aGUg c2FtZSBmaWxlCitzeXN0ZW0gYXMgdGhlIGRhdGFiYXNlIGJ1dCBpcyBlbmNyeXB0ZWQgdXNpbmcg dGhlIEtFSy4gIEJlY2F1c2UgdGhlIERFSworaXMgZW5jcnlwdGVkLCBpdHMgc3RvcmFnZSBpbiB0 aGUgZmlsZSBzeXN0ZW0gaXMgbm8gbW9yZSBvZiBhIHNlY3VyaXR5Cit3ZWFrbmVzcyBhbmQgdGhl IHN0b3JhZ2Ugb2YgdGhlIGVuY3J5cHRlZCBkYXRhYmFzZSBmaWxlcyBpbiB0aGUgc2FtZQorZmls ZSBzeXN0ZW0uCisKK0ltcGxlbWVudGF0aW9uCistLS0tLS0tLS0tLS0tLQorCitUbyBlbmFibGUg Y2x1c3RlciBmaWxlIGVuY3J5cHRpb24sIHRoZSBpbml0ZGIgb3B0aW9uCistLWNsdXN0ZXIta2V5 LWNvbW1hbmQgbXVzdCBiZSB1c2VkLCB3aGljaCBzcGVjaWZpZXMgYSBjb21tYW5kIHRvCityZXRy aWV2ZSB0aGUgS0VLLiAgaW5pdGRiIHJlY29yZHMgdGhlIGNsdXN0ZXJfa2V5X2NvbW1hbmQgaW4K K3Bvc3RncmVzcWwuY29uZi4gIEV2ZXJ5IHRpbWUgdGhlIEtFSyBpcyBuZWVkZWQsIHRoZSBjb21t YW5kIGlzIHJ1biBhbmQKK211c3QgcmV0dXJuIDY0IGhleCBjaGFyYWN0ZXJzIHdoaWNoIGFyZSBk ZWNvZGVkIGludG8gdGhlIEtFSy4gIFRoZQorY29tbWFuZCBpcyBjYWxsZWQgdHdpY2UgZHVyaW5n IGluaXRkYiwgYW5kIGV2ZXJ5IHRpbWUgdGhlIHNlcnZlciBzdGFydHMuCitpbml0ZGIgYWxzbyBz ZXRzIHRoZSBlbmNyeXB0aW9uIG1ldGhvZCBpbiBjb250cm9sZGF0YSBkdXJpbmcgc2VydmVyCiti b290c3RyYXAuCisKK2luaXRkYiBydW5zICJwb3N0Z3JlcyAtLWJvb3QiLCB3aGljaCBjYWxscyBm dW5jdGlvbgora21nci5jOjpCb290U3RyYXBLbWdyKCksIHdoaWNoIGNhbGxzIHRoZSBjbHVzdGVy IGtleSBjb21tYW5kLiAgVGhlCitjbHVzdGVyIGtleSBjb21tYW5kIHJldHVybnMgYSBLRUsgd2hp Y2ggaXMgdXNlZCB0byBlbmNyeXB0IHJhbmRvbSBieXRlcworZm9yIGVhY2ggREVLIGFuZCB3cml0 ZXMgdGhlbSB0byB0aGUgZmlsZSBzeXN0ZW0gYnkKK2ttZ3IuYzo6S21ncldyaXRlQ3J5cHRvS2V5 cygpICh1bmxlc3MgLS1jb3B5LWVuY3J5cHRpb24ta2V5cyBpcyB1c2VkKS4KK0N1cnJlbnRseSB0 aGUgREVLIGZpbGVzIGFyZSAwIGFuZCAxIGFuZCBhcmUgc3RvcmVkIGluCiskUEdEQVRBL3BnX2Ny eXB0b2tleXMvbGl2ZS4gIFRoZSB3cmFwcGVkIERFSyBmaWxlcyB1c2UgS2V5IFdyYXBwaW5nIHdp dGgKK1BhZGRpbmcgd2hpY2ggdmVyaWZpZXMgdGhlIHZhbGlkaXR5IG9mIHRoZSBLRUsuCisKK2lu aXRkYiBhbHNvIGRvZXMgYSBub24tYm9vdCBiYWNrZW5kIHN0YXJ0IHdoaWNoIGNhbGxzCitrbWdy LmM6OkluaXRpYWxpemVLbWdyKCksIHdoaWNoIGNhbGxzIHRoZSBjbHVzdGVyIGtleSBjb21tYW5k IGEgc2Vjb25kCit0aW1lLiAgVGhpcyBkZWNyeXB0cy91bndyYXBzIHRoZSBERUsga2V5cyBhbmQg c3RvcmVzIHRoZW0gaW4gdGhlIHNoYXJlZAorbWVtb3J5IHN0cnVjdHVyZSBLbWdyU2htZW0uIFRo aXMgc3RlcCBhbHNvIGhhcHBlbnMgZXZlcnkgdGltZSB0aGUgc2VydmVyCitzdGFydHMuIExhdGVy IHBhdGNoZXMgd2lsbCB1c2UgdGhlIGtleXMgc3RvcmVkIGluIEttZ3JTaG1lbSB0bworZW5jcnlw dC9kZWNyeXB0IGRhdGFiYXNlIGZpbGVzLiAgS21nclNobWVtIGlzIGVyYXNlZCB2aWEKK2V4cGxp Y2l0X2J6ZXJvKCkgb24gc2VydmVyIHNodXRkb3duLgorCitMaW1pdGF0aW9ucworLS0tLS0tLS0t LS0KKworVGhlcmUgZG9lc24ndCBzZWVtIHRvIGJlIGEgcmVhc29uYWJsZSB3YXkgdG8gZGV0ZWN0 IGFsbCBtYWxpY2lvdXMgZGF0YQorbW9kaWZpY2F0aW9uIG9yIGtleSBleHRyYWN0aW9uIGlmIGEg dXNlciBoYXMgd3JpdGUgcGVybWlzc2lvbiBvbiB0aGUKK2ZpbGVzIGluIFBHREFUQS4gSXQgbWln aHQgYmUgcG9zc2libGUgdG8gbGltaXQgdGhlIGtleSBleHRyYWN0aW9uIHJpc2sKK2lmIHBvc3Rn cmVzcWwuYXV0by5jb25mIHdlcmUgYWJsZSB0byBiZSBtb3ZlZCB0byBhIGRpcmVjdG9yeSBvdXRz aWRlIG9mCitQR0RBVEEsIGFuZCBpZiBwb3N0bWFzdGVyLm9wdHMgY291bGQgYmUgbW92ZWQgb3Ig aWdub3JlZCB3aGVuIGNsdXN0ZXIKK2ZpbGUgZW5jcnlwdGlvbiBpcyB1c2VkLiAoVGhpcyBmaWxl IGlzIHVzZWQgYnkgcGdfY3RsIHJlc3RhcnQuKQorCitJdCBkb2Vzbid0IGFwcGVhciBwb3NzaWJs ZSB0byBkZXRlY3QgYWxsIG1hbGljaW91cyB3cml0ZXMgLS0tIGV2ZW4gaWYKK3lvdSBhZGQgbWVz c2FnZSBhdXRoZW50aWNhdGlvbiBjb2RlIChNQUMpIGNoZWNrcyB0byBlbmNyeXB0ZWQgZmlsZXMs Cittb2RpZnlpbmcgbm9uLWVuY3J5cHRlZCBmaWxlcyBjb3VsZCBzdGlsbCBhZmZlY3QgZW5jcnlw dGVkIG9uZXMsIGUuZy4sCittb2RpZnlpbmcgZmlsZXMgaW4gcGdfeGFjdCBjb3VsZCBhZmZlY3Qg aG93IGhlYXAgcm93cyBhcmUgaW50ZXJwcmV0ZWQuCitCYXNpY2FsbHkgeW91IHdvdWxkIG5lZWQg dG8gZW5jcnlwdCBhbGwgZmlsZXMsIGFuZCBhdCB0aGF0IHBvaW50IHlvdQorbWlnaHQgYXMgd2Vs bCBqdXN0IHVzZSBhbiBlbmNyeXB0ZWQgZmlsZSBzeXN0ZW0uIFRoZXJlIGFsc28gZG9lc24ndCBz ZWVtCit0byBiZSBhIHdheSB0byBwcmV2ZW50IGtleSBleHRyYWN0aW9uIGlmIHNvbWVvbmUgaGFz IHJlYWQgcGVybWlzc2lvbiBvbgorcG9zdGdyZXMgcHJvY2VzcyBtZW1vcnkuCisKK0luaXRpYWxp emF0aW9uIFZlY3RvcgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK05vbmNlIG1lYW5zICJudW1i ZXIgdXNlZCBvbmNlIi4gQW4gSW5pdGlhbGl6YXRpb24gVmVjdG9yIChJVikgaXMgYQorc3BlY2lm aWMgdHlwZSBvZiBub25jZS4gVGhhdCBpcywgdW5pcXVlIGJ1dCBub3QgbmVjZXNzYXJpbHkgcmFu ZG9tIG9yCitzZWNyZXQsIGFzIHNwZWNpZmllZCBieSB0aGUgTklTVAorKGh0dHBzOi8vbnZscHVi cy5uaXN0Lmdvdi9uaXN0cHVicy9MZWdhY3kvU1AvbmlzdHNwZWNpYWxwdWJsaWNhdGlvbjgwMC0z OGEucGRmKS4KK1RvIGdlbmVyYXRlIHVuaXF1ZSBJVnMsIHRoZSBOSVNUIHJlY29tbWVuZHMgdHdv IG1ldGhvZHM6CisKKwlUaGUgZmlyc3QgbWV0aG9kIGlzIHRvIGFwcGx5IHRoZSBmb3J3YXJkIGNp cGhlciBmdW5jdGlvbiwgdW5kZXIKKwl0aGUgc2FtZSBrZXkgdGhhdCBpcyB1c2VkIGZvciB0aGUg ZW5jcnlwdGlvbiBvZiB0aGUgcGxhaW50ZXh0LAorCXRvIGEgbm9uY2UuIFRoZSBub25jZSBtdXN0 IGJlIGEgZGF0YSBibG9jayB0aGF0IGlzIHVuaXF1ZSB0bworCWVhY2ggZXhlY3V0aW9uIG9mIHRo ZSBlbmNyeXB0aW9uIG9wZXJhdGlvbi4gRm9yIGV4YW1wbGUsIHRoZQorCW5vbmNlIG1heSBiZSBh IGNvdW50ZXIsIGFzIGRlc2NyaWJlZCBpbiBBcHBlbmRpeCBCLCBvciBhIG1lc3NhZ2UKKwludW1i ZXIuIFRoZSBzZWNvbmQgbWV0aG9kIGlzIHRvIGdlbmVyYXRlIGEgcmFuZG9tIGRhdGEgYmxvY2sK Kwl1c2luZyBhIEZJUFMtYXBwcm92ZWQgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IuCisKK1dlIHdp bGwgdXNlIHRoZSBmaXJzdCBtZXRob2QgdG8gZ2VuZXJhdGUgSVZzLiBUaGF0IGlzLCBzZWxlY3Qg bm9uY2UKK2NhcmVmdWxseSBhbmQgdXNlIGEgY2lwaGVyIHdpdGggdGhlIGtleSB0byBtYWtlIGl0 IHVuaXF1ZSBlbm91Z2ggdG8gdXNlCithcyBhbiBJVi4gVGhlIG5vbmNlIHNlbGVjdGlvbiBmb3Ig YnVmZmVyIGVuY3J5cHRpb24gYW5kIFdBTCBlbmNyeXB0aW9uCithcmUgZGVzY3JpYmVkIGJlbG93 LgorCitJZiB0aGUgSVYgd2FzIHVzZWQgbW9yZSB0aGFuIG9uY2Ugd2l0aCB0aGUgc2FtZSBrZXkg KGFuZCB3ZSBvbmx5IHVzZSBvbmUKK2RhdGEgZW5jcnlwdGlvbiBrZXkpLCBjaGFuZ2VzIGluIHRo ZSB1bmVuY3J5cHRlZCBkYXRhIHdvdWxkIGJlIHZpc2libGUKK2luIHRoZSBlbmNyeXB0ZWQgZGF0 YS4KKworSVYgZm9yIEhlYXAvSW5kZXggRW5jcnlwdGlvbgorLSAtIC0gLSAtIC0gLSAtIC0gLSAt IC0gLSAtCisKK1RvIGNyZWF0ZSB0aGUgMTYtYnl0ZSBJViBuZWVkZWQgYnkgQUVTIGZvciBlYWNo IHBhZ2UgdmVyc2lvbiwgd2Ugd2lsbAordXNlIHRoZSBwYWdlIExTTiAoOCBieXRlcykgYW5kIHBh Z2UgbnVtYmVyICg0IGJ5dGVzKS4gIEluIHRoZSByZW1haW5pbmcKK2ZvdXIgYnl0ZXMsIG9uZSBi aXQgd2lsbCBiZSB1c2VkIHRvIGluZGljYXRlIGlmIHRoZSBMU04gaXMgV0FMIChyZWFsKSBvcgor ZmFrZSAoc2VlIGJlbG93KS4gVGhlIExTTiBpcyBpZGVhbCBmb3IgdXNlIGluIHRoZSBJViBiZWNh dXNlIGl0IGlzCithbHdheXMgaW5jcmVhc2luZywgYW5kIGlzIGNoYW5nZWQgZXZlcnkgdGltZSBh IHBhZ2UgaXMgdXBkYXRlZC4gIFRoZQorc2FtZSBMU04gaXMgbmV2ZXIgdXNlZCBmb3IgdHdvIHJl bGF0aW9ucyB3aXRoIGRpZmZlcmVudCBwYWdlIGNvbnRlbnRzLgorCitIb3dldmVyLCB0aGUgc2Ft ZSBMU04gY2FuIGJlIHVzZWQgaW4gbXVsdGlwbGUgcGFnZXMgaW4gdGhlIHNhbWUgcmVsYXRpb24K Ky0tLSB0aGlzIGNhbiBoYXBwZW4gd2hlbiBhIGhlYXAgdXBkYXRlIGV4cGlyZXMgYW4gb2xkIHR1 cGxlIGFuZCBhZGRzIGEKK25ldyB0dXBsZSB0byBhbm90aGVyIHBhZ2UuICBCeSBhZGRpbmcgdGhl IHBhZ2UgbnVtYmVyIHRvIHRoZSBJViwgd2Uga2VlcAordGhlIElWIHVuaXF1ZS4KKworQnkgbm90 IHVzaW5nIHRoZSBkYXRhYmFzZSBpZCBpbiB0aGUgSVYsIENSRUFURSBEQVRBQkFTRSBjYW4gY29w eSB0aGUKK2hlYXAvaW5kZXggZmlsZXMgZnJvbSB0aGUgb2xkIGRhdGFiYXNlIHRvIGEgbmV3IG9u ZSB3aXRob3V0CitkZWNyeXB0aW9uL2VuY3J5cHRpb24uICBCb3RoIHBhZ2UgY29waWVzIGFyZSB2 YWxpZC4gIE9uY2UgYSBkYXRhYmFzZQorY2hhbmdlcyBpdHMgcGFnZXMsIGl0IGdldHMgbmV3IExT TnMsIGFuZCBoZW5jZSBuZXcgSVYuICBVc2luZyBvbmx5IHRoZQorTFNOIGFuZCBwYWdlIG51bWJl ciBhbHNvIGF2b2lkcyByZXF1aXJpbmcgcGdfdXBncmFkZSB0byBwcmVzZXJ2ZQorZGF0YWJhc2Ug b2lkcywgdGFibGVzcGFjZSBvaWRzLCBhbmQgcmVsZmlsZW5vZGVzLgorCitBcyBwYXJ0IG9mIFdB TCBsb2dnaW5nLCBldmVyeSBjaGFuZ2Ugb2YgYSBXQUwtbG9nZ2VkIHBhZ2UgZ2V0cyBhIG5ldwor TFNOLCBhbmQgdGhlcmVmb3JlIGEgbmV3IElWIGF1dG9tYXRpY2FsbHkuCisKK0hvd2V2ZXIsIHRo ZSBMU04gbXVzdCB0aGVuIGJlIHZpc2libGUgb24gZW5jcnlwdGVkIHBhZ2VzLCBzbyB3ZSB3aWxs IG5vdAorZW5jcnlwdCB0aGUgTFNOIG9uIHRoZSBwYWdlLiBXZSB3aWxsIGFsc28gbm90IGVuY3J5 cHQgdGhlIENSQyBzbworcGdfY2hlY2tzdW1zIGNhbiBzdGlsbCBjaGVjayBwYWdlcyBvZmZsaW5l IHdpdGhvdXQgYWNjZXNzIHRvIHRoZSBrZXlzLgorCitOb24tUGVybWFuZW50IFJlbGF0aW9ucwor LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0KKworVG8gYXZvaWQgdGhlIG92ZXJoZWFkIG9mIGdlbmVy YXRpbmcgV0FMIGZvciBub24tcGVybWFuZW50ICh1bmxvZ2dlZCBhbmQKK3RlbXBvcmFyeSkgcmVs YXRpb25zLCB3ZSBhc3NpZ24gZmFrZSBMU05zIHRoYXQgYXJlIGRlcml2ZWQgZnJvbSBhCitjb3Vu dGVyIHZpYSB4bG9nLmM6OkdldEZha2VMU05Gb3JVbmxvZ2dlZFJlbCgpLiAgKEdpU1QgYWxzbyB1 c2VzIHRoaXMKK2NvdW50ZXIgZm9yIExTTnMuKSAgV2UgYWxzbyBzZXQgYSBiaXQgaW4gdGhlIElW IHNvIHRoZSB1c2Ugb2YgdGhlIHNhbWUKK3ZhbHVlIGZvciBXQUwgKHJlYWwpIGFuZCBmYWtlIExT TnMgd2lsbCBzdGlsbCBnZW5lcmF0ZSB1bmlxdWUgSVZzLiAgT25seQorbWFpbiBmb3JrcyBhcmUg ZW5jcnlwdGVkLCBub3QgaW5pdCwgdm0sIG9yIGZzbSBmaWxlcy4KKworSW4gdGhlIGNvZGUsIHdl IG5lZWQgdG8gaWRlbnRpZnkgaWYgYSBwYWdlIHVzZXMgV0FMIG9yIGZha2UgTFNOcyBpbgorZm91 ciBwbGFjZXMsIHdoZW46CisKKzEuICBSZWFkaW5nIGEgcGFnZSBmcm9tIHRoZSBmaWxlIHN5c3Rl bSBhbmQgZGVjcnlwdGluZworMi4gIFNldHRpbmcgdGhlIFdBTCBvciBmYWtlIExTTiBvbiBhIHBh Z2UKKzMuICBIaW50IGJpdHMgY2hhbmdlcyByZXF1aXJpbmcgbmV3IExTTnMgZm9yIHRoZSBlbmNy eXB0aW9uIElWCis0LiAgRW5jcnlwdGluZyBhbmQgd3JpdGluZyBhIHBhZ2UgdG8gdGhlIGZpbGUg c3lzdGVtCisKK0ZvciBhbGwgdGhlc2UgY2FzZSwgd2UgaGF2ZSBhY2Nlc3MgdG8gdGhlIGZvcmsg bnVtYmVyIGFuZCBlaXRoZXIgdGhlCityZWxhdGlvbidzIHBlcnNpc3RlbmNlIHN0YXRlIG9yIHRo ZSBidWZmZXIgc3RhdGUuICBJZiBpdCBpcyBhICJtYWluIgorZm9yayBhbmQgdGhlIHJlbGF0aW9u IHBlcnNpc3RlbmNlIHN0YXRlIGlzIFJFTFBFUlNJU1RFTkNFX1BFUk1BTkVOVCwgb3IKK2lmIGl0 IGlzIGFuICJpbml0IiBmb3JrLCB3ZSB1c2UgYSByZWFsIExTTi4gIElmIGl0IGlzIGEgbWFpbiBm b3JrIGFuZAorUkVMUEVSU0lTVEVOQ0VfUEVSTUFORU5UIGlzIGZhbHNlLCB3ZSB1c2UgYSBmYWtl IExTTi4gIFRoZSBidWZmZXIgc3RhdGUKK0JNX1BFUk1BTkVOVCBpcyB0cnVlIGlmIHRoZSByZWxh dGlvbiBpcyBQRVJNQU5FTlQgb3IgaXMgYW4gaW5pdCBmb3JrLgorCitJbml0IEZvcmtzCistIC0g LSAtIC0gCisKK0luaXQgZm9ya3MgZm9yIHVubG9nZ2VkIHJlbGF0aW9ucyBnZXQgcGVybWFuZW50 IExTTnMgYmVjYXVzZSB1bmxvZ2dlZAorcmVsYXRpb24gY3JlYXRpb24gaXMgV0FMIGxvZ2dlZC9j cmFzaCBzYWZlLCBldmVuIHRob3VnaCB0aGUgcmVsYXRpb24ncworY29udGVudHMgYXJlIG5vdC4g IFdoZW4gdGhlIGluaXQgZm9yayBpcyBjb3BpZWQgdG8gcmVwcmVzZW50IGFuIGVtcHR5CityZWxh dGlvbiBkdXJpbmcgY3Jhc2ggcmVjb3ZlcnksIGl0IGJlY29tZXMgYSBub24tcGVybWFuZW50IHBh Z2UgYW5kIG11c3QKK2JlIHN1Y2Nlc3NmdWxseSBkZWNyeXB0ZWQgYXMgc3VjaC4gIFRoZXJlZm9y ZSwgd2hlbiBpdCBpcyBjb3BpZWQsIGl0cworTFNOIGlzIGNoYW5nZWQgdG8gZSBmYWtlIExTTiBh bmQgdGhlbiBlbmNyeXB0ZWQuICBUaGlzIHByZXZlbnRzIGEgcmVhbAorTFNOIGZyb20gYmVpbmcg ZW5jcnlwdGVkIHdpdGggdGhlIGZha2Ugbm9uY2UgYml0LgorCitMU04gQXNzaWdubWVudCwgR2lT VCwgJiBOb24tUGVybWFuZW50IFJlbGF0aW9ucworLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAt IC0gLSAtIC0gLSAtIC0gLSAtIC0KKworTFNOIGFzc2lnbm1lbnQgaGFzIHRvIGJlIHNsaWdodGx5 IG1vZGlmaWVkIGZvciBlbmNyeXB0aW9uLiAgSW4gbm9ybWFsLAorbm9uLWVuY3J5cHRpb24gbW9k ZSwgTFNOcyBhcmUgYXNzaWduZWQgdG8gcGFnZXMgZm9sbG93aW5nIHRoZXNlIHJ1bGVzOgorCisx LiAgRHVyaW5nIEdpU1QgYnVpbGRzLCBzb21lIHBhZ2VzIGFyZSBhc3NpZ25lZCBmaXhlZCBMU05z IChHaXN0QnVpbGRMU04pCisKKzIuICBEdXJpbmcgR2lTVCBidWlsZHMsIG5vbi1wZXJtYW5lbnQg cGFnZXMgbm90IGFzc2lnbmVkIGZpeGVkIExTTnMgaW4KKyMxIGFyZSBhc3NpZ25lZCBmYWtlIExT TnMsIHZpYSBnaXN0dXRpbC5jOjpnaXN0R2V0RmFrZUxTTigpLgorCiszLiAgQWxsIG90aGVyIHBl cm1hbmVudCBwYWdlcyBhcmUgYXNzaWduZWQgV0FMLWJhc2VkIExTTnMgYmFzZWQgb24gdGhlCitX QUwgcG9zaXRpb24gb2YgdGhlaXIgV0FMIHJlY29yZHMuCisKKzQuICBBbGwgb3RoZXIgbm9uLXBl cm1hbmVudCBwYWdlcyBoYXZlIExTTnMgb2YgemVyby4KKworV2hlbiBlbmNyeXB0aW9uIGlzIGVu YWJsZWQ6CisKKzEuICBEdXJpbmcgR2lTVCBidWlsZHMsIHBlcm1hbmVudCBwYWdlcyBhcmUgYXNz aWduZWQgV0FMLWJhc2VkIExTTnMKK2dlbmVyYXRlZCBieSB4bG9naW5zZXJ0LmM6OkxTTkZvckVu Y3J5cHRpb24oKS4KKworMi4gIER1cmluZyBHaVNUIGJ1aWxkcywgbm9uLXBlcm1hbmVudCBwYWdl cyBhcmUgYXNzaWduZWQgZmFrZSBMU05zLiAKKyhObyBjb25zdGFudCBMU05zIGFyZSB1c2VkIGlu ICMxIG9yICMyLikKKworMy4gIHNhbWUgYXMgIzMgYWJvdmUKKworNC4gIEFsbCBvdGhlciBub24t cGVybWFuZW50IHBhZ2VzIGFyZSBhc3NpZ25lZCBmYWtlIExTTnMgYmVmb3JlIHBhZ2UKK2VuY3J5 cHRpb24uCisKK1doZW4gc3dpdGNoaW5nIHRvIGFuIGVuY3J5cHRlZCByZXBsaWNhIGZyb20gYSBu b24tZW5jcnlwdGVkIHByaW1hcnksCitHaVNUIGluZGV4ZXMgd2lsbCBiZSB1c2luZyBmaXhlZCBM U05zIGZvciBwZXJtYW5lbnQgdGFibGVzLCBzbyBpdCBpcworcmVjb21tZW5kZWQgdG8gcmVidWls ZCBHaVNUIGluZGV4ZXMuICBOb24tcGVybWFuZW50IHJlbGF0aW9ucyBhcmUgbm90CityZXBsaWNh dGVkLCBzbyB0aGV5IGFyZSBub3QgYW4gaXNzdWUuCisKK0hpbnQgQml0cworLSAtIC0gLSAtCisK K0ZvciBoaW50IGJpdCBjaGFuZ2VzLCB0aGUgTFNOIG5vcm1hbGx5IGRvZXNuJ3QgY2hhbmdlLCB3 aGljaCBpcyBhCitwcm9ibGVtLiAgQnkgZW5hYmxpbmcgd2FsX2xvZ19oaW50cywgeW91IGdldCBm dWxsIHBhZ2Ugd3JpdGVzIHRvIHRoZSBXQUwKK2FmdGVyIHRoZSBmaXJzdCBoaW50IGJpdCBjaGFu Z2Ugb2YgdGhlIGNoZWNrcG9pbnQuICBUaGlzIGlzIHVzZWZ1bCBmb3IKK3R3byByZWFzb25zLiAg Rmlyc3QsIGl0IGdlbmVyYXRlcyBhIG5ldyBMU04sIHdoaWNoIGlzIG5lZWRlZCBmb3IgdGhlIElW Cit0byBiZSBzZWN1cmUuICBTZWNvbmQsIGZ1bGwgcGFnZSBpbWFnZXMgcHJvdGVjdCBhZ2FpbnN0 IHRvcm4gcGFnZXMsCit3aGljaCBpcyBhbiBldmVuIGJpZ2dlciByZXF1aXJlbWVudCBmb3IgZW5j cnlwdGlvbiBiZWNhdXNlIHRoZSBuZXcgTFNOCitpcyByZS1lbmNyeXB0aW5nIHRoZSBlbnRpcmUg cGFnZSwgbm90IGp1c3QgdGhlIGhpbnQgYml0IGNoYW5nZXMuICBZb3UKK2NhbiBzYWZlbHkgbG9z ZSB0aGUgaGludCBiaXQgY2hhbmdlcywgYnV0IHlvdSBuZWVkIHRvIHVzZSB0aGUgc2FtZSBMU04K K3RvIGRlY3J5cHQgdGhlIGVudGlyZSBwYWdlLCBzbyBhIHRvcm4gcGFnZSB3aXRoIGFuIExTTiBj aGFuZ2UgY2Fubm90IGJlCitkZWNyeXB0ZWQuICBUbyBwcmV2ZW50IHRoaXMsIHdhbF9sb2dfaGlu dHMgZ3VhcmFudGVlcyB0aGF0IHRoZQorcHJlLWhpbnQtYml0IHZlcnNpb24gKGFuZCBwcmV2aW91 cyBMU04gdmVyc2lvbikgb2YgdGhlIHBhZ2UgaXMgcmVzdG9yZWQuCisKK0hvd2V2ZXIsIGlmIGEg aGludC1iaXQtbW9kaWZpZWQgcGFnZSBpcyB3cml0dGVuIHRvIHRoZSBmaWxlIHN5c3RlbQorZHVy aW5nIGEgY2hlY2twb2ludCwgYW5kIHRoZXJlIGlzIGEgbGF0ZXIgaGludCBiaXQgY2hhbmdlIHN3 aXRjaGluZyB0aGUKK3NhbWUgcGFnZSBmcm9tIGNsZWFuIHRvIGRpcnR5IGR1cmluZyB0aGUgc2Ft ZSBjaGVja3BvaW50LCB3ZSBuZWVkIGEgbmV3CitMU04sIGFuZCB3YWxfbG9nX2hpbnRzIGRvZXNu J3QgZ2l2ZSB1cyBhIG5ldyBMU04gaGVyZS4gIFRoZSBmaXggZm9yIHRoaXMKK2lzIHRvIHVwZGF0 ZSB0aGUgcGFnZSBMU04gYnkgd3JpdGluZyBhIGR1bW15IFdBTCByZWNvcmQgdmlhCit4bG9naW5z ZXJ0LmM6OkxTTkZvckVuY3J5cHRpb24oKSBpbiBzdWNoIGNhc2VzLgotLSAKMi4zNy4wIChBcHBs ZSBHaXQtMTM2KQoK --000000000000cbfbc705ebca4b20 Content-Type: application/octet-stream; name="0003-cfe-03-scripts_over_cfe-02-internaldoc-squash-commit.patch" Content-Disposition: attachment; filename="0003-cfe-03-scripts_over_cfe-02-internaldoc-squash-commit.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l9mztcp82 RnJvbSAyOGJhMjFmMWQ4ZTljYmZmZTRiZjdlNmZlYTA3ZTY1ZWQ4MDYxMTEyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCcnVjZSBNb21qaWFuIDxicnVjZUBtb21qaWFuLnVzPgpEYXRl OiBGcmksIDI1IEp1biAyMDIxIDE2OjU2OjQ3IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAwMy8xMl0g Y2ZlLTAzLXNjcmlwdHNfb3Zlcl9jZmUtMDItaW50ZXJuYWxkb2Mgc3F1YXNoIGNvbW1pdAoKLS0t CiBzcmMvYmFja2VuZC9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICB8IDE1ICsrKy0K IHNyYy9iYWNrZW5kL2NyeXB0by9ja2V5X2F3cy5zaC5zYW1wbGUgICAgICAgIHwgNTMgKysrKysr KysrKysrKwogc3JjL2JhY2tlbmQvY3J5cHRvL2NrZXlfZGlyZWN0LnNoLnNhbXBsZSAgICAgfCAz OSArKysrKysrKysrCiBzcmMvYmFja2VuZC9jcnlwdG8vY2tleV9wYXNzcGhyYXNlLnNoLnNhbXBs ZSB8IDM1ICsrKysrKysrKwogc3JjL2JhY2tlbmQvY3J5cHRvL2NrZXlfcGl2X25vcGluLnNoLnNh bXBsZSAgfCA2OCArKysrKysrKysrKysrKysrCiBzcmMvYmFja2VuZC9jcnlwdG8vY2tleV9waXZf cGluLnNoLnNhbXBsZSAgICB8IDgxICsrKysrKysrKysrKysrKysrKysrCiBzcmMvYmFja2VuZC9j cnlwdG8vc3NsX3Bhc3NwaHJhc2Uuc2guc2FtcGxlICB8IDM1ICsrKysrKysrKwogNyBmaWxlcyBj aGFuZ2VkLCAzMjUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy9iYWNrZW5kL2NyeXB0by9ja2V5X2F3cy5zaC5zYW1wbGUKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvYmFja2VuZC9jcnlwdG8vY2tleV9kaXJlY3Quc2guc2FtcGxlCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjL2JhY2tlbmQvY3J5cHRvL2NrZXlfcGFzc3BocmFzZS5zaC5zYW1wbGUKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9jcnlwdG8vY2tleV9waXZfbm9waW4uc2guc2Ft cGxlCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvY3J5cHRvL2NrZXlfcGl2X3Bpbi5z aC5zYW1wbGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9jcnlwdG8vc3NsX3Bhc3Nw aHJhc2Uuc2guc2FtcGxlCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvTWFrZWZpbGUgYi9zcmMv YmFja2VuZC9NYWtlZmlsZQppbmRleCAxODFjMjE3ZmFlLi4xYTUyMzliODIyIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC9NYWtlZmlsZQpAQCAtMTk4 LDYgKzE5OCwxMiBAQCBlbmRpZgogCSQoSU5TVEFMTF9EQVRBKSAkKHNyY2RpcikvbGlicHEvcGdf aGJhLmNvbmYuc2FtcGxlICckKERFU1RESVIpJChkYXRhZGlyKS9wZ19oYmEuY29uZi5zYW1wbGUn CiAJJChJTlNUQUxMX0RBVEEpICQoc3JjZGlyKS9saWJwcS9wZ19pZGVudC5jb25mLnNhbXBsZSAn JChERVNURElSKSQoZGF0YWRpcikvcGdfaWRlbnQuY29uZi5zYW1wbGUnCiAJJChJTlNUQUxMX0RB VEEpICQoc3JjZGlyKS91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgJyQoREVTVERJ UikkKGRhdGFkaXIpL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUnCisJJChJTlNUQUxMX0RBVEEpICQo c3JjZGlyKS9jcnlwdG8vY2tleV9hd3Muc2guc2FtcGxlICckKERFU1RESVIpJChkYXRhZGlyKS9h dXRoX2NvbW1hbmRzL2NrZXlfYXdzLnNoLnNhbXBsZScKKwkkKElOU1RBTExfREFUQSkgJChzcmNk aXIpL2NyeXB0by9ja2V5X2RpcmVjdC5zaC5zYW1wbGUgJyQoREVTVERJUikkKGRhdGFkaXIpL2F1 dGhfY29tbWFuZHMvY2tleV9kaXJlY3Quc2guc2FtcGxlJworCSQoSU5TVEFMTF9EQVRBKSAkKHNy Y2RpcikvY3J5cHRvL2NrZXlfcGFzc3BocmFzZS5zaC5zYW1wbGUgJyQoREVTVERJUikkKGRhdGFk aXIpL2F1dGhfY29tbWFuZHMvY2tleV9wYXNzcGhyYXNlLnNoLnNhbXBsZScKKwkkKElOU1RBTExf REFUQSkgJChzcmNkaXIpL2NyeXB0by9ja2V5X3Bpdl9ub3Bpbi5zaC5zYW1wbGUgJyQoREVTVERJ UikkKGRhdGFkaXIpL2F1dGhfY29tbWFuZHMvY2tleV9waXZfbm9waW4uc2guc2FtcGxlJworCSQo SU5TVEFMTF9EQVRBKSAkKHNyY2RpcikvY3J5cHRvL2NrZXlfcGl2X3Bpbi5zaC5zYW1wbGUgJyQo REVTVERJUikkKGRhdGFkaXIpL2F1dGhfY29tbWFuZHMvY2tleV9waXZfcGluLnNoLnNhbXBsZScK KwkkKElOU1RBTExfREFUQSkgJChzcmNkaXIpL2NyeXB0by9zc2xfcGFzc3BocmFzZS5zaC5zYW1w bGUgJyQoREVTVERJUikkKGRhdGFkaXIpL2F1dGhfY29tbWFuZHMvc3NsX3Bhc3NwaHJhc2Uuc2gu c2FtcGxlJwogCiBpZmVxICgkKHdpdGhfbGx2bSksIHllcykKIGluc3RhbGwtYmluOiBpbnN0YWxs LXBvc3RncmVzLWJpdGNvZGUKQEAgLTIyMyw2ICsyMjksNyBAQCBlbmRpZgogCiBpbnN0YWxsZGly czoKIAkkKE1LRElSX1ApICckKERFU1RESVIpJChiaW5kaXIpJyAnJChERVNURElSKSQoZGF0YWRp ciknCisJJChNS0RJUl9QKSAnJChERVNURElSKSQoZGF0YWRpciknICckKERFU1RESVIpJChkYXRh ZGlyKS9hdXRoX2NvbW1hbmRzJwogaWZlcSAoJChQT1JUTkFNRSksIGN5Z3dpbikKIGlmZXEgKCQo TUFLRV9ETEwpLCB0cnVlKQogCSQoTUtESVJfUCkgJyQoREVTVERJUikkKGxpYmRpciknCkBAIC0y NjIsNyArMjY5LDEzIEBAIGVuZGlmCiAJJChNQUtFKSAtQyB1dGlscyB1bmluc3RhbGwtZGF0YQog CXJtIC1mICckKERFU1RESVIpJChkYXRhZGlyKS9wZ19oYmEuY29uZi5zYW1wbGUnIFwKIAkgICAg ICAnJChERVNURElSKSQoZGF0YWRpcikvcGdfaWRlbnQuY29uZi5zYW1wbGUnIFwKLQkgICAgICAn JChERVNURElSKSQoZGF0YWRpcikvcG9zdGdyZXNxbC5jb25mLnNhbXBsZScKKwkgICAgICAnJChE RVNURElSKSQoZGF0YWRpcikvcG9zdGdyZXNxbC5jb25mLnNhbXBsZScgXAorCSAgICAgICckKERF U1RESVIpJChkYXRhZGlyKS9hdXRoX2NvbW1hbmRzL2NrZXlfYXdzLnNoLnNhbXBsZScgXAorCSAg ICAgICckKERFU1RESVIpJChkYXRhZGlyKS9hdXRoX2NvbW1hbmRzL2NrZXlfZGlyZWN0LnNoLnNh bXBsZScgXAorCSAgICAgICckKERFU1RESVIpJChkYXRhZGlyKS9hdXRoX2NvbW1hbmRzL2NrZXlf cGFzc3BocmFzZS5zaC5zYW1wbGUnIFwKKwkgICAgICAnJChERVNURElSKSQoZGF0YWRpcikvYXV0 aF9jb21tYW5kcy9ja2V5X3Bpdl9ub3Bpbi5zaC5zYW1wbGUnIFwKKwkgICAgICAnJChERVNURElS KSQoZGF0YWRpcikvYXV0aF9jb21tYW5kcy9ja2V5X3Bpdl9waW4uc2guc2FtcGxlJyBcCisJICAg ICAgJyQoREVTVERJUikkKGRhdGFkaXIpL2F1dGhfY29tbWFuZHMvc3NsX3Bhc3NwaHJhc2Uuc2gu c2FtcGxlJwogaWZlcSAoJCh3aXRoX2xsdm0pLCB5ZXMpCiAJJChjYWxsIHVuaW5zdGFsbF9sbHZt X21vZHVsZSxwb3N0Z3JlcykKIGVuZGlmCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jcnlwdG8v Y2tleV9hd3Muc2guc2FtcGxlIGIvc3JjL2JhY2tlbmQvY3J5cHRvL2NrZXlfYXdzLnNoLnNhbXBs ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5kOWJlZTUzMTMyCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvY3J5cHRvL2NrZXlfYXdzLnNoLnNhbXBsZQpAQCAt MCwwICsxLDUzIEBACisjIS9iaW4vc2gKKworIyBUaGlzIHVzZXMgdGhlIEFXUyBTZWNyZXRzIE1h bmFnZXIgdXNpbmcgdGhlIEFXUyBDTEkgYW5kIE9wZW5TU0wuCisjIFRoaXMgc3RvcmVzIHRoZSBB V1Mgc2VjcmV0IElkIGluICRESVIuCisjIERvIG5vdCBjcmVhdGUgYW55IGZpbGUgd2l0aCBleHRl bnNpb24gIndrZXkiIGluICRESVI7ICB0aGVzZSBhcmUKKyMgcmVzZXJ2ZWQgZm9yIHdyYXBwZWQg ZGF0YSBrZXkgZmlsZXMuICAKKworWyAiJCMiIC1uZSAxIF0gJiYgZWNobyAiY2x1c3Rlcl9rZXlf Y29tbWFuZCB1c2FnZTogJDAgXCIlZFwiIiAxPiYyICYmIGV4aXQgMQorIyBObyBuZWVkIGZvciAl UiBvciAtUiBzaW5jZSB3ZSBhcmUgbm90IHByb21wdGluZworCitESVI9IiQxIgorWyAhIC1lICIk RElSIiBdICYmIGVjaG8gIiRESVIgZG9lcyBub3QgZXhpc3QiIDE+JjIgJiYgZXhpdCAxCitbICEg LWQgIiRESVIiIF0gJiYgZWNobyAiJERJUiBpcyBub3QgYSBkaXJlY3RvcnkiIDE+JjIgJiYgZXhp dCAxCisKKyMgRmlsZSBjb250YWluaW5nIHRoZSBpZCBvZiB0aGUgQVdTIHNlY3JldAorQVdTX0lE X0ZJTEU9IiRESVIvYXdzLXNlY3JldC5pZCIKKworCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworCisjIENy ZWF0ZSBhbiBBV1MgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldD8KK2lmIFsgISAtZSAiJEFXU19JRF9G SUxFIiBdCit0aGVuCSMgVGhlICdwb3N0Z3Jlcycgb3BlcmF0aW5nIHN5c3RlbSB1c2VyIG11c3Qg aGF2ZSBwZXJtaXNzaW9uIHRvCisJIyBhY2Nlc3MgdGhlIEFXUyBDTEkKKworCSMgVGhlIGVwb2No LXRpbWUvZGlyZWN0b3J5L2hvc3RuYW1lIGNvbWJpbmF0aW9uIGlzIHVuaXF1ZQorCUhBU0g9JChl Y2hvIC1uICIkKGRhdGUgJyslcycpJERJUiQoaG9zdG5hbWUpIiB8IHNoYTFzdW0gfCBjdXQgLWQn ICcgLWYxKQorCUFXU19TRUNSRVRfSUQ9IlBvc3RncmVzLWNsdXN0ZXIta2V5LSRIQVNIIgorCisJ IyBVc2Ugc3RkaW4gdG8gYXZvaWQgcGFzc2luZyB0aGUgc2VjcmV0IG9uIHRoZSBjb21tYW5kIGxp bmUKKwlvcGVuc3NsIHJhbmQgLWhleCAzMiB8CisJYXdzIHNlY3JldHNtYW5hZ2VyIGNyZWF0ZS1z ZWNyZXQgXAorCQktLW5hbWUgIiRBV1NfU0VDUkVUX0lEIiBcCisJCS0tZGVzY3JpcHRpb24gIlBv c3RncmVzIGNsdXN0ZXIgZmlsZSBlbmNyeXB0aW9uIG9uICQoaG9zdG5hbWUpIiBcCisJCS0tc2Vj cmV0LXN0cmluZyAnZmlsZTovLy9kZXYvc3RkaW4nIFwKKwkJLS1vdXRwdXQgdGV4dCA+IC9kZXYv bnVsbAorCWlmIFsgIiQ/IiAtbmUgMCBdCisJdGhlbgllY2hvICdjbHVzdGVyIGtleSBnZW5lcmF0 aW9uIGZhaWxlZCcgMT4mMgorCQlleGl0IDEKKwlmaQorCisJZWNobyAiJEFXU19TRUNSRVRfSUQi ID4gIiRBV1NfSURfRklMRSIKK2ZpCisKK2lmICEgYXdzIHNlY3JldHNtYW5hZ2VyIGdldC1zZWNy ZXQtdmFsdWUgXAorCS0tc2VjcmV0LWlkICIkKGNhdCAiJEFXU19JRF9GSUxFIikiIFwKKwktLW91 dHB1dCB0ZXh0Cit0aGVuCWVjaG8gJ2NsdXN0ZXIga2V5IHJldHJpZXZhbCBmYWlsZWQnIDE+JjIK KwlleGl0IDEKK2ZpIHwgYXdrIC1GJ1x0JyAnTlIgPT0gMSB7cHJpbnQgJDR9JworCitleGl0IDAK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NyeXB0by9ja2V5X2RpcmVjdC5zaC5zYW1wbGUgYi9z cmMvYmFja2VuZC9jcnlwdG8vY2tleV9kaXJlY3Quc2guc2FtcGxlCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAuLjQ5MmRlZmNmZmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMv YmFja2VuZC9jcnlwdG8vY2tleV9kaXJlY3Quc2guc2FtcGxlCkBAIC0wLDAgKzEsMzkgQEAKKyMh L2Jpbi9zaAorCisjIFRoaXMgdXNlcyBhIDY0LWNoYXJhY3RlciBoZXgga2V5IHN1cHBsaWVkIGJ5 IHRoZSB1c2VyLgorIyBJZiBPcGVuU1NMIGlzIGluc3RhbGxlZCwgeW91IGNhbiBnZW5lcmF0ZSBh IHBzZXVkby1yYW5kb20ga2V5IGJ5IHJ1bm5pbmc6CisjCW9wZW5zc2wgcmFuZCAtaGV4IDMyCisj IFRvIGdldCBhIHRydWUgcmFuZG9tIGtleSwgcnVuOgorIwl3Z2V0IC1xIC1PIC0gJ2h0dHBzOi8v d3d3LnJhbmRvbS5vcmcvY2dpLWJpbi9yYW5kYnl0ZT9uYnl0ZXM9MzImZm9ybWF0PWgnIHwgdHIg LWQgJyBcbic7IGVjaG8KKyMgRG8gbm90IGNyZWF0ZSBhbnkgZmllIHdpdGggZXh0ZW5zaW9uICJ3 a2V5IiBpbiAkRElSOyAgdGhlc2UgYXJlCisjIHJlc2VydmVkIGZvciB3cmFwcGVkIGRhdGEga2V5 IGZpbGVzLgorCitbICIkIyIgLWx0IDEgXSAmJiBlY2hvICJjbHVzdGVyX2tleV9jb21tYW5kIHVz YWdlOiAkMCAlUiBbJXBdIiAxPiYyICYmIGV4aXQgMQorIyBTdXBwb3J0cyBlbnZpcm9ubWVudCB2 YXJpYWJsZSBQUk9NUFQKKworRkQ9IiQxIgorWyAhIC10ICIkRkQiIF0gJiYgZWNobyAiZmlsZSBk ZXNjcmlwdG9yICRGRCBkb2VzIG5vdCByZWZlciB0byBhIHRlcm1pbmFsIiAxPiYyICYmIGV4aXQg MQorCitbICIkMiIgXSAmJiBQUk9NUFQ9IiQyIgorCisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitbICEg IiRQUk9NUFQiIF0gJiYgUFJPTVBUPSdFbnRlciBjbHVzdGVyIGtleSBhcyA2NCBoZXhhZGVjaW1h bCBjaGFyYWN0ZXJzOiAnCisKK3N0dHkgLWVjaG8gPCYiJEZEIgorCitlY2hvIDE+JiIkRkQiCitl Y2hvIC1uICIkUFJPTVBUIiAxPiYiJEZEIgorcmVhZCBLRVkgPCYiJEZEIgorCitzdHR5IGVjaG8g PCYiJEZEIgorCitpZiBbICIkKGV4cHIgIiRLRVkiIDogJ1swLTlhLWZBLUZdKiQnKSIgLW5lIDY0 IF0KK3RoZW4JZWNobyAnaW52YWxpZDsgIG11c3QgYmUgNjQgaGV4YWRlY2ltYWwgY2hhcmFjdGVy cycgMT4mMgorCWV4aXQgMQorZmkKKworZWNobyAiJEtFWSIKKworZXhpdCAwCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jcnlwdG8vY2tleV9wYXNzcGhyYXNlLnNoLnNhbXBsZSBiL3NyYy9iYWNr ZW5kL2NyeXB0by9ja2V5X3Bhc3NwaHJhc2Uuc2guc2FtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAuLmE1ZDgzN2I0NWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFj a2VuZC9jcnlwdG8vY2tleV9wYXNzcGhyYXNlLnNoLnNhbXBsZQpAQCAtMCwwICsxLDM1IEBACisj IS9iaW4vc2gKKworIyBUaGlzIHVzZXMgYSBwYXNzcGhyYXNlIHN1cHBsaWVkIGJ5IHRoZSB1c2Vy LgorIyBEbyBub3QgY3JlYXRlIGFueSBmaWUgd2l0aCBleHRlbnNpb24gIndrZXkiIGluICRESVI7 ICB0aGVzZSBhcmUKKyMgcmVzZXJ2ZWQgZm9yIHdyYXBwZWQgZGF0YSBrZXkgZmlsZXMuCisKK1sg IiQjIiAtbHQgMSBdICYmIGVjaG8gImNsdXN0ZXJfa2V5X2NvbW1hbmQgdXNhZ2U6ICQwICVSIFtc IiVwXCJdIiAxPiYyICYmIGV4aXQgMQorCitGRD0iJDEiCitbICEgLXQgIiRGRCIgXSAmJiBlY2hv ICJmaWxlIGRlc2NyaXB0b3IgJEZEIGRvZXMgbm90IHJlZmVyIHRvIGEgdGVybWluYWwiIDE+JjIg JiYgZXhpdCAxCisjIFN1cHBvcnRzIGVudmlyb25tZW50IHZhcmlhYmxlIFBST01QVAorCitbICIk MiIgXSAmJiBQUk9NUFQ9IiQyIgorCisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitbICEgIiRQUk9NUFQi IF0gJiYgUFJPTVBUPSdFbnRlciBjbHVzdGVyIHBhc3NwaHJhc2U6ICcKKworc3R0eSAtZWNobyA8 JiIkRkQiCisKK2VjaG8gMT4mIiRGRCIKK2VjaG8gLW4gIiRQUk9NUFQiIDE+JiIkRkQiCityZWFk IFBBU1MgPCYiJEZEIgorCitzdHR5IGVjaG8gPCYiJEZEIgorCitpZiBbICEgIiRQQVNTIiBdCit0 aGVuCWVjaG8gJ2ludmFsaWQ6ICBlbXB0eSBwYXNzcGhyYXNlJyAxPiYyCisJZXhpdCAxCitmaQor CitlY2hvICIkUEFTUyIgfCBzaGEyNTZzdW0gfCBjdXQgLWQnICcgLWYxCisKK2V4aXQgMApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY3J5cHRvL2NrZXlfcGl2X25vcGluLnNoLnNhbXBsZSBiL3Ny Yy9iYWNrZW5kL2NyeXB0by9ja2V5X3Bpdl9ub3Bpbi5zaC5zYW1wbGUKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZTkwYTU3OWRlYQotLS0gL2Rldi9udWxsCisrKyBiL3Ny Yy9iYWNrZW5kL2NyeXB0by9ja2V5X3Bpdl9ub3Bpbi5zaC5zYW1wbGUKQEAgLTAsMCArMSw2OCBA QAorIyEvYmluL3NoCisKKyMgVGhpcyB1c2VzIHRoZSBwdWJsaWMvcHJpdmF0ZSBrZXlzIG9uIGEg UElWIGRldmljZSwgbGlrZSBhIENBQyBvciBZdWJpa2V5LgorIyBJdCAgdXNlcyBhIFBJTiBzdG9y ZWQgaW4gYSBmaWxlLgorIyBJdCB1c2VzIE9wZW5TU0wgd2l0aCBQS0NTMTEgZW5hYmxlZCB2aWEg T3BlblNDLgorIyBUaGlzIHN0b3JlcyB0aGUgY2x1c3RlciBlbmNyeXB0aW9uIGtleSBlbmNyeXB0 ZWQgd2l0aCB0aGUgUElWIHB1YmxpYworIyBrZXkgaW4gJERJUi4gIFRoaXMgaXMgdGVjaG5pY2Fs bHkgYSB0aHJlZS1sZXZlbCBlbmNyeXB0aW9uCisjIGFyY2hpdGVjdHVyZSwgd2l0aCB0aGUgdGhp cmQgbGV2ZWwgcmVxdWlyaW5nIHRoZSBQSVYgYW5kIFBJTi4KKyMgRG8gbm90IGNyZWF0ZSBhbnkg ZmllIHdpdGggZXh0ZW5zaW9uICJ3a2V5IiBpbiAkRElSOyAgdGhlc2UgYXJlCisjIHJlc2VydmVk IGZvciB3cmFwcGVkIGRhdGEga2V5IGZpbGVzLgorCitbICIkIyIgLW5lIDEgXSAmJiBlY2hvICJj bHVzdGVyX2tleV9jb21tYW5kIHVzYWdlOiAkMCBcIiVkXCIiIDE+JjIgJiYgZXhpdCAxCisjIFN1 cHBvcnRzIGVudmlyb25tZW50IHZhcmlhYmxlIFBJVl9QSU5fRklMRQorIyBObyBuZWVkIGZvciAl UiBvciAtUiBzaW5jZSB3ZSBhcmUgbm90IHByb21wdGluZyBmb3IgYSBQSU4KKworRElSPSIkMSIK K1sgISAtZSAiJERJUiIgXSAmJiBlY2hvICIkRElSIGRvZXMgbm90IGV4aXN0IiAxPiYyICYmIGV4 aXQgMQorWyAhIC1kICIkRElSIiBdICYmIGVjaG8gIiRESVIgaXMgbm90IGEgZGlyZWN0b3J5IiAx PiYyICYmIGV4aXQgMQorCisjIFNldCB0aGVzZSBoZXJlIG9yIHBhc3MgaW4gYXMgZW52aXJvbm1l bnQgdmFyaWFibGVzLgorIyBGaWxlIHRoYXQgc3RvcmVzIHRoZSBQSU4gdG8gdW5sb2NrIHRoZSBQ SVYKKyNQSVZfUElOX0ZJTEU9JycKKyMgUElWIHNsb3QgMyBpcyB0aGUgIktleSBNYW5hZ2VtZW50 IiBzbG90LCBzbyB3ZSB1c2UgJzA6MycKK1BJVl9TTE9UPScwOjMnCisKKyMgRmlsZSBjb250YWlu aW5nIHRoZSBjbHVzdGVyIGtleSBlbmNyeXB0ZWQgd2l0aCB0aGUgUElWX1NMT1QncyBwdWJsaWMg a2V5CitLRVlfRklMRT0iJERJUi9waXZwYXNzLmtleSIKKworCisjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor WyAhICIkUElWX1BJTl9GSUxFIiBdICYmIGVjaG8gJ1BJVl9QSU5fRklMRSB1bmRlZmluZWQnIDE+ JjIgJiYgZXhpdCAxCitbICEgLWUgIiRQSVZfUElOX0ZJTEUiIF0gJiYgZWNobyAiJFBJVl9QSU5f RklMRSBkb2VzIG5vdCBleGlzdCIgMT4mMiAmJiBleGl0IDEKK1sgLWQgIiRQSVZfUElOX0ZJTEUi IF0gJiYgZWNobyAiJFBJVl9QSU5fRklMRSBpcyBhIGRpcmVjdG9yeSIgMT4mMiAmJiBleGl0IDEK KworWyAhICIkS0VZX0ZJTEUiIF0gJiYgZWNobyAnS0VZX0ZJTEUgdW5kZWZpbmVkJyAxPiYyICYm IGV4aXQgMQorWyAtZCAiJEtFWV9GSUxFIiBdICYmIGVjaG8gIiRLRVlfRklMRSBpcyBhIGRpcmVj dG9yeSIgMT4mMiAmJiBleGl0IDEKKworIyBDcmVhdGUgYSBjbHVzdGVyIGtleSBlbmNyeXB0ZWQg d2l0aCB0aGUgUElWX1NMT1QncyBwdWJsaWMga2V5PworaWYgWyAhIC1lICIkS0VZX0ZJTEUiIF0K K3RoZW4JIyBUaGUgJ3Bvc3RncmVzJyBvcGVyYXRpbmcgc3lzdGVtIHVzZXIgbXVzdCBoYXZlIHBl cm1pc3Npb24gdG8KKwkjIGFjY2VzcyB0aGUgUElWIGRldmljZS4KKworCW9wZW5zc2wgcmFuZCAt aGV4IDMyIHwKKwlpZiAhIG9wZW5zc2wgcnNhdXRsIC1lbmdpbmUgcGtjczExIC1rZXlmb3JtIGVu Z2luZSAtZW5jcnlwdCBcCisJCS1pbmtleSAiJFBJVl9TTE9UIiAtcGFzc2luIGZpbGU6IiRQSVZf UElOX0ZJTEUiIC1vdXQgIiRLRVlfRklMRSIKKwl0aGVuCWVjaG8gJ2NsdXN0ZXIga2V5IGdlbmVy YXRpb24gZmFpbGVkJyAxPiYyCisJCWV4aXQgMQorCWZpCisKKwkjIFdhcm4gdGhlIHVzZXIgdG8g c2F2ZSB0aGUgY2x1c3RlciBrZXkgaW4gYSBzYWZlIHBsYWNlCisJY2F0IDE+JjIgPDxFTkQKKwor V0FSTklORzogIFRoZSBQSVYgZGV2aWNlIGNhbiBiZSBsb2NrZWQgYW5kIHJlcXVpcmUgYSByZXNl dCBpZiB0b28gbWFueSBQSU4KK2F0dGVtcHRzIGZhaWwuICBJdCBpcyByZWNvbW1lbmRlZCB0byBy dW4gdGhpcyBjb21tYW5kIG1hbnVhbGx5IGFuZCBzYXZlCit0aGUgY2x1c3RlciBrZXkgaW4gYSBz ZWN1cmUgbG9jYXRpb24gZm9yIHBvc3NpYmxlIHJlY292ZXJ5LgorRU5ECisKK2ZpCisKKyMgRGVj cnlwdCB0aGUgY2x1c3RlciBrZXkgZW5jcnlwdGVkIHdpdGggdGhlIFBJVl9TTE9UJ3MgcHVibGlj IGtleQoraWYgISBvcGVuc3NsIHJzYXV0bCAtZW5naW5lIHBrY3MxMSAta2V5Zm9ybSBlbmdpbmUg LWRlY3J5cHQgXAorCS1pbmtleSAiJFBJVl9TTE9UIiAtcGFzc2luIGZpbGU6IiRQSVZfUElOX0ZJ TEUiIC1pbiAiJEtFWV9GSUxFIgordGhlbgllY2hvICdjbHVzdGVyIGtleSBkZWNyeXB0aW9uIGZh aWxlZCcgMT4mMgorCWV4aXQgMQorZmkKKworZXhpdCAwCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jcnlwdG8vY2tleV9waXZfcGluLnNoLnNhbXBsZSBiL3NyYy9iYWNrZW5kL2NyeXB0by9ja2V5 X3Bpdl9waW4uc2guc2FtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAu LmU2OTNhYzMxYmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9jcnlwdG8vY2tleV9w aXZfcGluLnNoLnNhbXBsZQpAQCAtMCwwICsxLDgxIEBACisjIS9iaW4vc2gKKworIyBUaGlzIHVz ZXMgdGhlIHB1YmxpYy9wcml2YXRlIGtleXMgb24gYSBQSVYgZGV2aWNlLCBsaWtlIGEgQ0FDIG9y IFl1YmlrZXkuCisjIEl0IHJlcXVpcmVzIGEgdXNlci1lbnRlcmVkIFBJTi4KKyMgSXQgdXNlcyBP cGVuU1NMIHdpdGggUEtDUzExIGVuYWJsZWQgdmlhIE9wZW5TQy4KKyMgVGhpcyBzdG9yZXMgdGhl IGNsdXN0ZXIgZW5jcnlwdGlvbiBrZXkgZW5jcnlwdGVkIHdpdGggdGhlIFBJViBwdWJsaWMKKyMg a2V5IGluICRESVIuICBUaGlzIGlzIHRlY2huaWNhbGx5IGEgdGhyZWUtbGV2ZWwgZW5jcnlwdGlv bgorIyBhcmNoaXRlY3R1cmUsIHdpdGggdGhlIHRoaXJkIGxldmVsIHJlcXVpcmluZyB0aGUgUElW IGFuZCBQSU4uCisjIERvIG5vdCBjcmVhdGUgYW55IGZpZSB3aXRoIGV4dGVuc2lvbiAid2tleSIg aW4gJERJUjsgIHRoZXNlIGFyZQorIyByZXNlcnZlZCBmb3Igd3JhcHBlZCBkYXRhIGtleSBmaWxl cy4KKworWyAiJCMiIC1sdCAyIF0gJiYgZWNobyAiY2x1c3Rlcl9rZXlfY29tbWFuZCB1c2FnZTog JDAgXCIlZFwiICVSIFtcIiVwXCJdIiAxPiYyICYmIGV4aXQgMQorIyBTdXBwb3J0cyBlbnZpcm9u bWVudCB2YXJpYWJsZSBQUk9NUFQKKworRElSPSIkMSIKK1sgISAtZSAiJERJUiIgXSAmJiBlY2hv ICIkRElSIGRvZXMgbm90IGV4aXN0IiAxPiYyICYmIGV4aXQgMQorWyAhIC1kICIkRElSIiBdICYm IGVjaG8gIiRESVIgaXMgbm90IGEgZGlyZWN0b3J5IiAxPiYyICYmIGV4aXQgMQorCitGRD0iJDIi CitbICEgLXQgIiRGRCIgXSAmJiBlY2hvICJmaWxlIGRlc2NyaXB0b3IgJEZEIGRvZXMgbm90IHJl ZmVyIHRvIGEgdGVybWluYWwiIDE+JjIgJiYgZXhpdCAxCisKK1sgIiQzIiBdICYmIFBST01QVD0i JDMiCisKKyMgUElWIHNsb3QgMyBpcyB0aGUgIktleSBNYW5hZ2VtZW50IiBzbG90LCBzbyB3ZSB1 c2UgJzA6MycKK1BJVl9TTE9UPScwOjMnCisKKyMgRmlsZSBjb250YWluaW5nIHRoZSBjbHVzdGVy IGtleSBlbmNyeXB0ZWQgd2l0aCB0aGUgUElWX1NMT1QncyBwdWJsaWMga2V5CitLRVlfRklMRT0i JERJUi9waXZwYXNzLmtleSIKKworCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworWyAhICIkUFJPTVBUIiBd ICYmIFBST01QVD0nRW50ZXIgUElWIFBJTjogJworCitzdHR5IC1lY2hvIDwmIiRGRCIKKworIyBD cmVhdGUgYSBjbHVzdGVyIGtleSBlbmNyeXB0ZWQgd2l0aCB0aGUgUElWX1NMT1QncyBwdWJsaWMg a2V5PworaWYgWyAhIC1lICIkS0VZX0ZJTEUiIF0KK3RoZW4JZWNobyAxPiYiJEZEIgorCWVjaG8g LW4gIiRQUk9NUFQiIDE+JiIkRkQiCisKKwkjIFRoZSAncG9zdGdyZXMnIG9wZXJhdGluZyBzeXN0 ZW0gdXNlciBtdXN0IGhhdmUgcGVybWlzc2lvbiB0bworCSMgYWNjZXNzIHRoZSBQSVYgZGV2aWNl LgorCisJb3BlbnNzbCByYW5kIC1oZXggMzIgfAorCSMgJ2VuZ2luZSAicGtjczExIiBzZXQuJyBt ZXNzYWdlIGNvbmZ1c2VzIHByb21wdGluZworCWlmICEgb3BlbnNzbCByc2F1dGwgLWVuZ2luZSBw a2NzMTEgLWtleWZvcm0gZW5naW5lIC1lbmNyeXB0IFwKKwkJLWlua2V5ICIkUElWX1NMT1QiIC1w YXNzaW4gZmQ6IiRGRCIgLW91dCAiJEtFWV9GSUxFIiAyPiYxCisJdGhlbglzdHR5IGVjaG8gPCYi JEZEIgorCQllY2hvICdjbHVzdGVyIGtleSBnZW5lcmF0aW9uIGZhaWxlZCcgMT4mMgorCQlleGl0 IDEKKwlmaSB8IGdyZXAgLXYgJ2VuZ2luZSAicGtjczExIiBzZXRcLicKKworCWVjaG8gMT4mIiRG RCIKKworCSMgV2FybiB0aGUgdXNlciB0byBzYXZlIHRoZSBjbHVzdGVyIGtleSBpbiBhIHNhZmUg cGxhY2UKKwljYXQgMT4mIiRGRCIgPDxFTkQKKworV0FSTklORzogIFRoZSBQSVYgY2FuIGJlIGxv Y2tlZCBhbmQgcmVxdWlyZSBhIHJlc2V0IGlmIHRvbyBtYW55IFBJTgorYXR0ZW1wdHMgZmFpbC4g IEl0IGlzIHJlY29tbWVuZGVkIHRvIHJ1biB0aGlzIGNvbW1hbmQgbWFudWFsbHkgYW5kIHNhdmUK K3RoZSBjbHVzdGVyIGtleSBpbiBhIHNlY3VyZSBsb2NhdGlvbiBmb3IgcG9zc2libGUgcmVjb3Zl cnkuCitFTkQKKworZmkKKworZWNobyAxPiYiJEZEIgorZWNobyAtbiAiJFBST01QVCIgMT4mIiRG RCIKKworIyBEZWNyeXB0IHRoZSBjbHVzdGVyIGtleSBlbmNyeXB0ZWQgd2l0aCB0aGUgUElWX1NM T1QncyBwdWJsaWMga2V5CitpZiAhIG9wZW5zc2wgcnNhdXRsIC1lbmdpbmUgcGtjczExIC1rZXlm b3JtIGVuZ2luZSAtZGVjcnlwdCBcCisJLWlua2V5ICIkUElWX1NMT1QiIC1wYXNzaW4gZmQ6IiRG RCIgLWluICIkS0VZX0ZJTEUiIDI+JjEKK3RoZW4Jc3R0eSBlY2hvIDwmIiRGRCIKKwllY2hvICdj bHVzdGVyIGtleSByZXRyaWV2YWwgZmFpbGVkJyAxPiYyCisJZXhpdCAxCitmaSB8IGdyZXAgLXYg J2VuZ2luZSAicGtjczExIiBzZXRcLicKKworZWNobyAxPiYiJEZEIgorCitzdHR5IGVjaG8gPCYi JEZEIgorCitleGl0IDAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NyeXB0by9zc2xfcGFzc3Bo cmFzZS5zaC5zYW1wbGUgYi9zcmMvYmFja2VuZC9jcnlwdG8vc3NsX3Bhc3NwaHJhc2Uuc2guc2Ft cGxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmVmYmY1YzA3MjAKLS0t IC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9jcnlwdG8vc3NsX3Bhc3NwaHJhc2Uuc2guc2Ft cGxlCkBAIC0wLDAgKzEsMzUgQEAKKyMhL2Jpbi9zaAorCisjIFRoaXMgdXNlcyBhIHBhc3NwaHJh c2Ugc3VwcGxpZWQgYnkgdGhlIHVzZXIuCisjIERvIG5vdCBjcmVhdGUgYW55IGZpZSB3aXRoIGV4 dGVuc2lvbiAid2tleSIgaW4gJERJUjsgIHRoZXNlIGFyZQorIyByZXNlcnZlZCBmb3Igd3JhcHBl ZCBkYXRhIGtleSBmaWxlcy4KKworWyAiJCMiIC1sdCAxIF0gJiYgZWNobyAic3NsX3Bhc3NwaHJh c2VfY29tbWFuZCB1c2FnZTogJDAgJVIgW1wiJXBcIl0iIDE+JjIgJiYgZXhpdCAxCisKK0ZEPSIk MSIKK1sgISAtdCAiJEZEIiBdICYmIGVjaG8gImZpbGUgZGVzY3JpcHRvciAkRkQgZG9lcyBub3Qg cmVmZXIgdG8gYSB0ZXJtaW5hbCIgMT4mMiAmJiBleGl0IDEKKyMgU3VwcG9ydHMgZW52aXJvbm1l bnQgdmFyaWFibGUgUFJPTVBUCisKK1sgIiQyIiBdICYmIFBST01QVD0iJDIiCisKKworIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisKK1sgISAiJFBST01QVCIgXSAmJiBQUk9NUFQ9J0VudGVyIGNsdXN0ZXIgcGFz c3BocmFzZTogJworCitzdHR5IC1lY2hvIDwmIiRGRCIKKworZWNobyAxPiYiJEZEIgorZWNobyAt biAiJFBST01QVCIgMT4mIiRGRCIKK3JlYWQgUEFTUyA8JiIkRkQiCisKK3N0dHkgZWNobyA8JiIk RkQiCisKK2lmIFsgISAiJFBBU1MiIF0KK3RoZW4JZWNobyAnaW52YWxpZDogIGVtcHR5IHBhc3Nw aHJhc2UnIDE+JjIKKwlleGl0IDEKK2ZpCisKK2VjaG8gIiRQQVNTIgorCitleGl0IDAKLS0gCjIu MzcuMCAoQXBwbGUgR2l0LTEzNikKCg== --000000000000cbfbc705ebca4b20 Content-Type: application/octet-stream; name="0004-cfe-04-common_over_cfe-03-scripts-squash-commit.patch" Content-Disposition: attachment; filename="0004-cfe-04-common_over_cfe-03-scripts-squash-commit.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l9mztg993 RnJvbSA2NGQ2YTg5NDA1YWViZTc2ODNlNWEzN2ZlYWI5NDAzOWEzYTNjMjc0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCcnVjZSBNb21qaWFuIDxicnVjZUBtb21qaWFuLnVzPgpEYXRl OiBGcmksIDI1IEp1biAyMDIxIDE2OjU2OjQ5IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAwNC8xMl0g Y2ZlLTA0LWNvbW1vbl9vdmVyX2NmZS0wMy1zY3JpcHRzIHNxdWFzaCBjb21taXQKCi0tLQogc3Jj L2NvbW1vbi9NYWtlZmlsZSAgICAgICAgICAgICB8ICAgMyArCiBzcmMvY29tbW9uL2NpcGhlci5j ICAgICAgICAgICAgIHwgIDk4ICsrKysrKysKIHNyYy9jb21tb24vY2lwaGVyX29wZW5zc2wuYyAg ICAgfCA0MTkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2NvbW1vbi9rbWdyX3V0 aWxzLmMgICAgICAgICB8IDQ2NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3Jj L2luY2x1ZGUvY29tbW9uL2NpcGhlci5oICAgICB8ICA3NCArKysrKwogc3JjL2luY2x1ZGUvY29t bW9uL2ttZ3JfdXRpbHMuaCB8ICA5NCArKysrKysrCiBzcmMvaW5jbHVkZS91dGlscy93YWl0X2V2 ZW50LmggIHwgICAzICsKIHNyYy90b29scy9tc3ZjL01rdmNidWlsZC5wbSAgICAgfCAgIDQgKy0K IDggZmlsZXMgY2hhbmdlZCwgMTE1OSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjL2NvbW1vbi9jaXBoZXIuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy9jb21tb24vY2lwaGVyX29wZW5zc2wuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9jb21tb24v a21ncl91dGlscy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvY29tbW9uL2NpcGhl ci5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvY29tbW9uL2ttZ3JfdXRpbHMuaAoK ZGlmZiAtLWdpdCBhL3NyYy9jb21tb24vTWFrZWZpbGUgYi9zcmMvY29tbW9uL01ha2VmaWxlCmlu ZGV4IGU5YWY3MzQ2YzkuLjlmNjNiMDE2MDkgMTAwNjQ0Ci0tLSBhL3NyYy9jb21tb24vTWFrZWZp bGUKKysrIGIvc3JjL2NvbW1vbi9NYWtlZmlsZQpAQCAtNjIsNiArNjIsNyBAQCBPQkpTX0NPTU1P TiA9IFwKIAlpcC5vIFwKIAlqc29uYXBpLm8gXAogCWtleXdvcmRzLm8gXAorCWttZ3JfdXRpbHMu byBcCiAJa3dsb29rdXAubyBcCiAJbGluay1jYW5hcnkubyBcCiAJbWQ1X2NvbW1vbi5vIFwKQEAg LTgzLDExICs4NCwxMyBAQCBPQkpTX0NPTU1PTiA9IFwKIAogaWZlcSAoJCh3aXRoX3NzbCksb3Bl bnNzbCkKIE9CSlNfQ09NTU9OICs9IFwKKwljaXBoZXJfb3BlbnNzbC5vIFwKIAlwcm90b2NvbF9v cGVuc3NsLm8gXAogCWNyeXB0b2hhc2hfb3BlbnNzbC5vIFwKIAlobWFjX29wZW5zc2wubwogZWxz ZQogT0JKU19DT01NT04gKz0gXAorCWNpcGhlci5vIFwKIAljcnlwdG9oYXNoLm8gXAogCWhtYWMu byBcCiAJbWQ1Lm8gXApkaWZmIC0tZ2l0IGEvc3JjL2NvbW1vbi9jaXBoZXIuYyBiL3NyYy9jb21t b24vY2lwaGVyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uN2FhM2Vh NjEzOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb21tb24vY2lwaGVyLmMKQEAgLTAsMCArMSw5 OCBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogY2lwaGVyLmMKKyAqCSAgU2hhcmVkIGZy b250ZW5kL2JhY2tlbmQgZm9yIGNyeXB0b2dyYXBoaWMgZnVuY3Rpb25zCisgKgorICogVGhpcyBp cyB0aGUgc2V0IG9mIGluLWNvcmUgZnVuY3Rpb25zIHVzZWQgd2hlbiB0aGVyZSBhcmUgbm8gb3Ro ZXIKKyAqIGFsdGVybmF0aXZlIG9wdGlvbnMgbGlrZSBPcGVuU1NMLgorICoKKyAqIENvcHlyaWdo dCAoYykgMjAyMSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqCisgKiBJ REVOVElGSUNBVElPTgorICoJICBzcmMvY29tbW9uL2NpcGhlci5jCisgKgorICotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgKi8KKworI2lmbmRlZiBGUk9OVEVORAorI2luY2x1ZGUgInBvc3RncmVzLmgiCisj ZWxzZQorI2luY2x1ZGUgInBvc3RncmVzX2ZlLmgiCisjZW5kaWYKKworI2luY2x1ZGUgImNvbW1v bi9jaXBoZXIuaCIKKworc3RhdGljIHZvaWQgY2lwaGVyX2ZhaWx1cmUodm9pZCkgcGdfYXR0cmli dXRlX25vcmV0dXJuKCk7CisKKworUGdDaXBoZXJDdHggKgorcGdfY2lwaGVyX2N0eF9jcmVhdGUo aW50IGNpcGhlciwgdW5zaWduZWQgY2hhciAqa2V5LCBpbnQga2xlbiwgYm9vbCBlbmMpCit7CisJ Y2lwaGVyX2ZhaWx1cmUoKTsKKwlyZXR1cm4gTlVMTDsJCQkJLyoga2VlcCBjb21waWxlciBxdWll dCAqLworfQorCit2b2lkCitwZ19jaXBoZXJfY3R4X2ZyZWUoUGdDaXBoZXJDdHggKmN0eCkKK3sK KwljaXBoZXJfZmFpbHVyZSgpOworfQorCitpbnQKK3BnX2NpcGhlcl9ibG9ja3NpemUoUGdDaXBo ZXJDdHggKmN0eCkKK3sKKwljaXBoZXJfZmFpbHVyZSgpOworCXJldHVybiAtMTsJCQkJCS8qIGtl ZXAgY29tcGlsZXIgcXVpZXQgKi8KK30KKworYm9vbAorcGdfY2lwaGVyX2VuY3J5cHQoUGdDaXBo ZXJDdHggKmN0eCwgY29uc3QgaW50IGNpcGhlciwKKwkJCQkgIGNvbnN0IHVuc2lnbmVkIGNoYXIg KnBsYWludGV4dCwKKwkJCQkgIGNvbnN0IGludCBpbmxlbiwgdW5zaWduZWQgY2hhciAqY2lwaGVy dGV4dCwgaW50ICpvdXRsZW4sCisJCQkJICBjb25zdCB1bnNpZ25lZCBjaGFyICppdiwgY29uc3Qg aW50IGl2bGVuLAorCQkJCSAgdW5zaWduZWQgY2hhciAqb3V0dGFnLCBjb25zdCBpbnQgdGFnbGVu KQoreworCWNpcGhlcl9mYWlsdXJlKCk7CisJcmV0dXJuIGZhbHNlOwkJCQkvKiBrZWVwIGNvbXBp bGVyIHF1aWV0ICovCit9CisKK2Jvb2wKK3BnX2NpcGhlcl9kZWNyeXB0KFBnQ2lwaGVyQ3R4ICpj dHgsIGNvbnN0IGludCBjaXBoZXIsCisJCQkJICBjb25zdCB1bnNpZ25lZCBjaGFyICpjaXBoZXJ0 ZXh0LAorCQkJCSAgY29uc3QgaW50IGlubGVuLCB1bnNpZ25lZCBjaGFyICpwbGFpbnRleHQsIGlu dCAqb3V0bGVuLAorCQkJCSAgY29uc3QgdW5zaWduZWQgY2hhciAqaXYsIGNvbnN0IGludCBpdmxl biwKKwkJCQkgIHVuc2lnbmVkIGNoYXIgKmludGFnLCBjb25zdCBpbnQgdGFnbGVuKQoreworCWNp cGhlcl9mYWlsdXJlKCk7CisJcmV0dXJuIGZhbHNlOwkJCQkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0 ICovCit9CisKK2Jvb2wKK3BnX2NpcGhlcl9rZXl3cmFwKFBnQ2lwaGVyQ3R4ICpjdHgsIGNvbnN0 IHVuc2lnbmVkIGNoYXIgKnBsYWludGV4dCwKKwkJCQkgIGNvbnN0IGludCBpbmxlbiwgdW5zaWdu ZWQgY2hhciAqY2lwaGVydGV4dCwgaW50ICpvdXRsZW4pCit7CisJY2lwaGVyX2ZhaWx1cmUoKTsK KwlyZXR1cm4gZmFsc2U7CQkJCS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KK30KKworYm9vbAor cGdfY2lwaGVyX2tleXVud3JhcChQZ0NpcGhlckN0eCAqY3R4LCBjb25zdCB1bnNpZ25lZCBjaGFy ICpjaXBoZXJ0ZXh0LAorCQkJCQljb25zdCBpbnQgaW5sZW4sIHVuc2lnbmVkIGNoYXIgKnBsYWlu dGV4dCwgaW50ICpvdXRsZW4pCit7CisJY2lwaGVyX2ZhaWx1cmUoKTsKKwlyZXR1cm4gZmFsc2U7 CQkJCS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KK30KKworc3RhdGljIHZvaWQKK2NpcGhlcl9m YWlsdXJlKHZvaWQpCit7CisjaWZuZGVmIEZST05URU5ECisJZXJlcG9ydChFUlJPUiwKKwkJCShl cnJjb2RlKEVSUkNPREVfQ09ORklHX0ZJTEVfRVJST1IpLAorCQkJIChlcnJtc2coImNsdXN0ZXIg ZmlsZSBlbmNyeXB0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgYmVjYXVzZSBPcGVuU1NMIGlzIG5vdCBz dXBwb3J0ZWQgYnkgdGhpcyBidWlsZCIpLAorCQkJICBlcnJoaW50KCJDb21waWxlIHdpdGggLS13 aXRoLW9wZW5zc2wgdG8gdXNlIHRoaXMgZmVhdHVyZS4iKSkpKTsKKyNlbHNlCisJZnByaW50Zihz dGRlcnIsIF8oImNsdXN0ZXIgZmlsZSBlbmNyeXB0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgYmVjYXVz ZSBPcGVuU1NMIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBidWlsZCIpKTsKKwlleGl0KDEpOwor I2VuZGlmCit9CmRpZmYgLS1naXQgYS9zcmMvY29tbW9uL2NpcGhlcl9vcGVuc3NsLmMgYi9zcmMv Y29tbW9uL2NpcGhlcl9vcGVuc3NsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMC4uYTAzZmJlNDM1ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb21tb24vY2lwaGVyX29w ZW5zc2wuYwpAQCAtMCwwICsxLDQxOSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBjaXBoZXJf b3BlbnNzbC5jCisgKgkJQ3J5cHRvZ3JhcGhpYyBmdW5jdGlvbiB1c2luZyBPcGVuU1NMCisgKgor ICogVGhpcyBjb250YWlucyB0aGUgY29tbW9uIGxvdy1sZXZlbCBmdW5jdGlvbnMgbmVlZGVkIGlu IGJvdGggZnJvbnRlbmQgYW5kCisgKiBiYWNrZW5kLCBmb3IgaW1wbGVtZW50IHRoZSBkYXRhYmFz ZSBlbmNyeXB0aW9uLgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAyMSwgUG9zdGdy ZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJ ICBzcmMvY29tbW9uL2NpcGhlcl9vcGVuc3NsLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq LworI2lmbmRlZiBGUk9OVEVORAorI2luY2x1ZGUgInBvc3RncmVzLmgiCisjZWxzZQorI2luY2x1 ZGUgInBvc3RncmVzX2ZlLmgiCisjZW5kaWYKKworI2luY2x1ZGUgImNvbW1vbi9jaXBoZXIuaCIK KyNpbmNsdWRlIDxvcGVuc3NsL2NvbmYuaD4KKyNpbmNsdWRlIDxvcGVuc3NsL2Vyci5oPgorI2lu Y2x1ZGUgPG9wZW5zc2wvZXZwLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9zc2wuaD4KKworLyoKKyAq IHByb3RvdHlwZSBmb3IgdGhlIEVWUCBmdW5jdGlvbnMgdGhhdCByZXR1cm4gYW4gYWxnb3JpdGht LCBlLmcuCisgKiBFVlBfYWVzXzEyOF9nY20oKS4KKyAqLwordHlwZWRlZiBjb25zdCBFVlBfQ0lQ SEVSICooKm9zc2xfRVZQX2NpcGhlcl9mdW5jKSAodm9pZCk7CisKK3N0YXRpYyBvc3NsX0VWUF9j aXBoZXJfZnVuYyBnZXRfZXZwX2Flc19nY20oaW50IGtsZW4pOworc3RhdGljIEVWUF9DSVBIRVJf Q1RYICpvc3NsX2NpcGhlcl9jdHhfY3JlYXRlKGludCBjaXBoZXIsIHVuc2lnbmVkIGNoYXIgKmtl eSwKKwkJCQkJCQkJCQkJICBpbnQga2xlbiwgYm9vbCBlbmMpOworCisvKgorICogUmV0dXJuIGEg bmV3bHkgY3JlYXRlZCBjaXBoZXIgY29udGV4dC4gICdjaXBoZXInIHNwZWNpZmllcyBjaXBoZXIg YWxnb3JpdGhtCisgKiBieSBpZGVudGlmaWVyIGxpa2UgUEdfQ0lQSEVSX1hYWC4KKyAqLworUGdD aXBoZXJDdHggKgorcGdfY2lwaGVyX2N0eF9jcmVhdGUoaW50IGNpcGhlciwgdW5zaWduZWQgY2hh ciAqa2V5LCBpbnQga2xlbiwgYm9vbCBlbmMpCit7CisJUGdDaXBoZXJDdHggKmN0eCA9IE5VTEw7 CisKKwlpZiAoY2lwaGVyID4gUEdfTUFYX0NJUEhFUl9JRCkKKwkJcmV0dXJuIE5VTEw7CisKKwlj dHggPSBvc3NsX2NpcGhlcl9jdHhfY3JlYXRlKGNpcGhlciwga2V5LCBrbGVuLCBlbmMpOworCisJ cmV0dXJuIGN0eDsKK30KKwordm9pZAorcGdfY2lwaGVyX2N0eF9mcmVlKFBnQ2lwaGVyQ3R4ICpj dHgpCit7CisJRVZQX0NJUEhFUl9DVFhfZnJlZShjdHgpOworfQorCitpbnQKK3BnX2NpcGhlcl9i bG9ja3NpemUoUGdDaXBoZXJDdHggKmN0eCkKK3sKKwlBc3NlcnQoY3R4KTsKKworCXJldHVybiBF VlBfQ0lQSEVSX0NUWF9ibG9ja19zaXplKGN0eCk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uIHJv dXRpbmUgdG8gZW5jcnlwdCBkYXRhIHByb3ZpZGVkLgorICoKKyAqIGN0eCBpcyB0aGUgZW5jcnlw dGlvbiBjb250ZXh0IHdoaWNoIG11c3QgaGF2ZSBiZWVuIGNyZWF0ZWQgcHJldmlvdXNseS4KKyAq CisgKiBwbGFpbnRleHQgaXMgdGhlIGRhdGEgd2UgYXJlIGdvaW5nIHRvIGVuY3J5cHQKKyAqIGlu bGVuIGlzIHRoZSBsZW5ndGggb2YgdGhlIGRhdGEgdG8gZW5jcnlwdAorICoKKyAqIGNpcGhlcnRl eHQgaXMgdGhlIGVuY3J5cHRlZCByZXN1bHQKKyAqIG91dGxlbiBpcyB0aGUgZW5jcnlwdGVkIGxl bmd0aAorICoKKyAqIGl2IGlzIHRoZSBJViB0byB1c2UuCisgKiBpdmxlbiBpcyB0aGUgSVYgbGVu Z3RoIHRvIHVzZS4KKyAqCisgKiBvdXR0YWcgaXMgdGhlIHJlc3VsdGluZyB0YWcuCisgKiB0YWds ZW4gaXMgdGhlIGxlbmd0aCBvZiB0aGUgdGFnLgorICovCitib29sCitwZ19jaXBoZXJfZW5jcnlw dChQZ0NpcGhlckN0eCAqY3R4LCBpbnQgY2lwaGVyLAorCQkJCSAgY29uc3QgdW5zaWduZWQgY2hh ciAqcGxhaW50ZXh0LCBjb25zdCBpbnQgaW5sZW4sCisJCQkJICB1bnNpZ25lZCBjaGFyICpjaXBo ZXJ0ZXh0LCBpbnQgKm91dGxlbiwKKwkJCQkgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKml2LCBjb25z dCBpbnQgaXZsZW4sCisJCQkJICB1bnNpZ25lZCBjaGFyICpvdXR0YWcsIGNvbnN0IGludCB0YWds ZW4pCit7CisJaW50CQkJbGVuOworCWludAkJCWVuY2xlbjsKKworCUFzc2VydChjdHggIT0gTlVM TCk7CisKKwkvKgorCSAqIEhlcmUgd2UgYXJlIHNldHRpbmcgdGhlIElWIGZvciB0aGUgY29udGV4 dCB3aGljaCB3YXMgcGFzc2VkIGluLiAgTm90ZQorCSAqIHRoYXQgd2Ugc2lnbmFsIHRvIE9wZW5T U0wgdGhhdCB3ZSBhcmUgY29uZmlndXJpbmcgYSBuZXcgdmFsdWUgZm9yIHRoZQorCSAqIGNvbnRl eHQgYnkgcGFzc2luZyBpbiAnTlVMTCcgZm9yIHRoZSAybmQgKCd0eXBlJykgcGFyYW1ldGVyLgor CSAqLworCisJLyoKKwkgKiBXZSBkb24ndCB1c2UgR0NNIG1vZGUsIGJ1dCBpdCBoYXMgYSBNQUMs IHNvIHdlIHN1cHBvcnQgaXQgYW5kIHRlc3QgaXQKKwkgKiBpbiBjYXNlIHdlIG5lZWQgaXQgbGF0 ZXIuICBYWFggaXMgdGhpcyBjb3JyZWN0IGZvciBHQ00gYW5kIENUUj8KKwkgKi8KKwkvKiBTZXQg dGhlIEdDTSBJViBsZW5ndGggZmlyc3QgKi8KKwlpZiAoY2lwaGVyID09IFBHX0NJUEhFUl9BRVNf R0NNICYmCisJCSFFVlBfQ0lQSEVSX0NUWF9jdHJsKGN0eCwgRVZQX0NUUkxfR0NNX1NFVF9JVkxF TiwgaXZsZW4sIE5VTEwpKQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKiBTZXQgdGhlIElWIGZvciB0 aGlzIGVuY3J5cHRpb24uICovCisJaWYgKCFFVlBfRW5jcnlwdEluaXRfZXgoY3R4LCBOVUxMLCBO VUxMLCBOVUxMLCBpdikpCisJCXJldHVybiBmYWxzZTsKKworCS8qCisJICogVGhpcyBpcyB0aGUg ZnVuY3Rpb24gd2hpY2ggaXMgYWN0dWFsbHkgcGVyZm9ybWluZyB0aGUgZW5jcnlwdGlvbiBmb3IK KwkgKiB1cy4KKwkgKi8KKwlpZiAoIUVWUF9FbmNyeXB0VXBkYXRlKGN0eCwgY2lwaGVydGV4dCwg JmxlbiwgcGxhaW50ZXh0LCBpbmxlbikpCisJCXJldHVybiBmYWxzZTsKKworCWVuY2xlbiA9IGxl bjsKKworCS8qIEZpbmFsaXplIHRoZSBlbmNyeXB0aW9uLCB3aGljaCBjb3VsZCBhZGQgbW9yZSB0 byBvdXRwdXQuICovCisJaWYgKCFFVlBfRW5jcnlwdEZpbmFsX2V4KGN0eCwgY2lwaGVydGV4dCAr IGVuY2xlbiwgJmxlbikpCisJCXJldHVybiBmYWxzZTsKKworCSpvdXRsZW4gPSBlbmNsZW4gKyBs ZW47CisKKwkvKgorCSAqIE9uY2UgYWxsIG9mIHRoZSBlbmNyeXB0aW9uIGhhcyBiZWVuIGNvbXBs ZXRlZCB3ZSBncmFiIHRoZSB0YWcuCisJICovCisJaWYgKGNpcGhlciA9PSBQR19DSVBIRVJfQUVT X0dDTSAmJgorCQkhRVZQX0NJUEhFUl9DVFhfY3RybChjdHgsIEVWUF9DVFJMX0dDTV9HRVRfVEFH LCB0YWdsZW4sIG91dHRhZykpCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB0cnVlOworfQor CisvKgorICogRGVjcnlwdGlvbiByb3V0aW5lCisgKgorICogY3R4IGlzIHRoZSBlbmNyeXB0aW9u IGNvbnRleHQgd2hpY2ggbXVzdCBoYXZlIGJlZW4gY3JlYXRlZCBwcmV2aW91c2x5LgorICoKKyAq IGNpcGhlcnRleHQgaXMgdGhlIGRhdGEgd2UgYXJlIGdvaW5nIHRvIGRlY3J5cHQKKyAqIGlubGVu IGlzIHRoZSBsZW5ndGggb2YgdGhlIGRhdGEgdG8gZGVjcnlwdAorICoKKyAqIHBsYWludGV4dCBp cyB0aGUgZGVjcnlwdGVkIHJlc3VsdAorICogb3V0bGVuIGlzIHRoZSBkZWNyeXB0ZWQgbGVuZ3Ro CisgKgorICogaXYgaXMgdGhlIElWIHRvIHVzZS4KKyAqIGl2bGVuIGlzIHRoZSBsZW5ndGggb2Yg dGhlIElWLgorICoKKyAqIGludGFnIGlzIHRoZSB0YWcgdG8gdXNlIHRvIHZlcmlmeS4KKyAqIHRh Z2xlbiBpcyB0aGUgbGVuZ3RoIG9mIHRoZSB0YWcuCisgKi8KK2Jvb2wKK3BnX2NpcGhlcl9kZWNy eXB0KFBnQ2lwaGVyQ3R4ICpjdHgsIGNvbnN0IGludCBjaXBoZXIsCisJCQkJICBjb25zdCB1bnNp Z25lZCBjaGFyICpjaXBoZXJ0ZXh0LCBjb25zdCBpbnQgaW5sZW4sCisJCQkJICB1bnNpZ25lZCBj aGFyICpwbGFpbnRleHQsIGludCAqb3V0bGVuLAorCQkJCSAgY29uc3QgdW5zaWduZWQgY2hhciAq aXYsIGNvbnN0IGludCBpdmxlbiwKKwkJCQkgIHVuc2lnbmVkIGNoYXIgKmludGFnLCBjb25zdCBp bnQgdGFnbGVuKQoreworCWludAkJCWRlY2xlbjsKKwlpbnQJCQlsZW47CisKKwkvKgorCSAqIEhl cmUgd2UgYXJlIHNldHRpbmcgdGhlIElWIGZvciB0aGUgY29udGV4dCB3aGljaCB3YXMgcGFzc2Vk IGluLiAgTm90ZQorCSAqIHRoYXQgd2Ugc2lnbmFsIHRvIE9wZW5TU0wgdGhhdCB3ZSBhcmUgY29u ZmlndXJpbmcgYSBuZXcgdmFsdWUgZm9yIHRoZQorCSAqIGNvbnRleHQgYnkgcGFzc2luZyBpbiAn TlVMTCcgZm9yIHRoZSAybmQgKCd0eXBlJykgcGFyYW1ldGVyLgorCSAqLworCisJLyogWFhYIGlz IHRoaXMgY29ycmVjdCBmb3IgR0NNIGFuZCBDVFI/ICovCisJLyogU2V0IHRoZSBHQ00gSVYgbGVu Z3RoIGZpcnN0ICovCisJaWYgKGNpcGhlciA9PSBQR19DSVBIRVJfQUVTX0dDTSAmJgorCQkhRVZQ X0NJUEhFUl9DVFhfY3RybChjdHgsIEVWUF9DVFJMX0dDTV9TRVRfSVZMRU4sIGl2bGVuLCBOVUxM KSkKKwkJcmV0dXJuIGZhbHNlOworCisJLyogU2V0IHRoZSBJViBmb3IgdGhpcyBkZWNyeXB0aW9u LiAqLworCWlmICghRVZQX0RlY3J5cHRJbml0X2V4KGN0eCwgTlVMTCwgTlVMTCwgTlVMTCwgaXYp KQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKgorCSAqIFRoaXMgaXMgdGhlIGZ1bmN0aW9uIHdoaWNo IGlzIGFjdHVhbGx5IHBlcmZvcm1pbmcgdGhlIGRlY3J5cHRpb24gZm9yCisJICogdXMuCisJICov CisJaWYgKCFFVlBfRGVjcnlwdFVwZGF0ZShjdHgsIHBsYWludGV4dCwgJmxlbiwgY2lwaGVydGV4 dCwgaW5sZW4pKQorCQlyZXR1cm4gZmFsc2U7CisKKwlkZWNsZW4gPSBsZW47CisKKwkvKiBTZXQg dGhlIGV4cGVjdGVkIHRhZyB2YWx1ZS4gKi8KKwlpZiAoY2lwaGVyID09IFBHX0NJUEhFUl9BRVNf R0NNICYmCisJCSFFVlBfQ0lQSEVSX0NUWF9jdHJsKGN0eCwgRVZQX0NUUkxfR0NNX1NFVF9UQUcs IHRhZ2xlbiwgaW50YWcpKQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKgorCSAqIEZpbmFsaXplIHRo ZSBkZWNyeXB0aW9uLCB3aGljaCBjb3VsZCBhZGQgbW9yZSB0byBvdXRwdXQsIHRoaXMgaXMgYWxz bworCSAqIHRoZSBzdGVwIHdoaWNoIGNoZWNrcyB0aGUgdGFnIGFuZCB3ZSBNVVNUIGZhaWwgaWYg dGhpcyBpbmRpY2F0ZXMgYW4KKwkgKiBpbnZhbGlkIHRhZyEKKwkgKi8KKwlpZiAoIUVWUF9EZWNy eXB0RmluYWxfZXgoY3R4LCBwbGFpbnRleHQgKyBkZWNsZW4sICZsZW4pKQorCQlyZXR1cm4gZmFs c2U7CisKKwkqb3V0bGVuID0gZGVjbGVuICsgbGVuOworCisJcmV0dXJuIHRydWU7Cit9CisKKy8q CisgKiBSb3V0aW5lIHRvIHBlcmZvcm0ga2V5IHdyYXBwaW5nIGZvciBkYXRhIHByb3ZpZGVkLgor ICoKKyAqIGN0eCBpcyB0aGUgZW5jcnlwdGlvbiBjb250ZXh0IHdoaWNoIG11c3QgaGF2ZSBiZWVu IGNyZWF0ZWQgcHJldmlvdXNseS4KKyAqCisgKiBwbGFpbnRleHQgaXMgdGhlIGRhdGEva2V5IHdl IGFyZSBnb2luZyB0byBlbmNyeXB0L3dyYXAKKyAqIGlubGVuIGlzIHRoZSBsZW5ndGggb2YgdGhl IGRhdGEKKyAqCisgKiBjaXBoZXJ0ZXh0IGlzIHRoZSB3cmFwcGVkIHJlc3VsdAorICogb3V0bGVu IGlzIHRoZSBlbmNyeXB0ZWQgbGVuZ3RoICh3aWxsIGJlIGxhcmdlciB0aGFuIGlucHV0ISkKKyAq LworYm9vbAorcGdfY2lwaGVyX2tleXdyYXAoUGdDaXBoZXJDdHggKmN0eCwKKwkJCQkgIGNvbnN0 IHVuc2lnbmVkIGNoYXIgKnBsYWludGV4dCwgY29uc3QgaW50IGlubGVuLAorCQkJCSAgdW5zaWdu ZWQgY2hhciAqY2lwaGVydGV4dCwgaW50ICpvdXRsZW4pCit7CisJaW50CQkJbGVuOworCWludAkJ CWVuY2xlbjsKKworCUFzc2VydChjdHggIT0gTlVMTCk7CisKKwkvKgorCSAqIFRoaXMgaXMgdGhl IGZ1bmN0aW9uIHdoaWNoIGlzIGFjdHVhbGx5IHBlcmZvcm1pbmcgdGhlIGVuY3J5cHRpb24gZm9y CisJICogdXMuCisJICovCisJaWYgKCFFVlBfRW5jcnlwdFVwZGF0ZShjdHgsIGNpcGhlcnRleHQs ICZsZW4sIHBsYWludGV4dCwgaW5sZW4pKQorCQlyZXR1cm4gZmFsc2U7CisKKwllbmNsZW4gPSBs ZW47CisKKwkvKiBGaW5hbGl6ZSB0aGUgZW5jcnlwdGlvbiwgd2hpY2ggY291bGQgYWRkIG1vcmUg dG8gb3V0cHV0LiAqLworCWlmICghRVZQX0VuY3J5cHRGaW5hbF9leChjdHgsIGNpcGhlcnRleHQg KyBlbmNsZW4sICZsZW4pKQorCQlyZXR1cm4gZmFsc2U7CisKKwkqb3V0bGVuID0gZW5jbGVuICsg bGVuOworCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBSb3V0aW5lIHRvIHBlcmZvcm0ga2V5 IHVud3JhcHBpbmcgb2YgdGhlIGRhdGEgcHJvdmlkZWQuCisgKgorICogY3R4IGlzIHRoZSBlbmNy eXB0aW9uIGNvbnRleHQgd2hpY2ggbXVzdCBoYXZlIGJlZW4gY3JlYXRlZCBwcmV2aW91c2x5Lgor ICoKKyAqIGNpcGhlcnRleHQgaXMgdGhlIHdyYXBwZWQga2V5IHdlIGFyZSBnb2luZyB0byB1bndy YXAKKyAqIGlubGVuIGlzIHRoZSBsZW5ndGggb2YgdGhlIGRhdGEgdG8gZGVjcnlwdC91bndyYXAK KyAqCisgKiBwbGFpbnRleHQgaXMgdGhlIGRlY3J5cHRlZCByZXN1bHQKKyAqIG91dGxlbiBpcyB0 aGUgZGVjcnlwdGVkIGxlbmd0aCAod2lsbCBiZSBzbWFsbGVyIHRoYW4gaW5wdXQhKQorICovCiti b29sCitwZ19jaXBoZXJfa2V5dW53cmFwKFBnQ2lwaGVyQ3R4ICpjdHgsCisJCQkJCWNvbnN0IHVu c2lnbmVkIGNoYXIgKmNpcGhlcnRleHQsIGNvbnN0IGludCBpbmxlbiwKKwkJCQkJdW5zaWduZWQg Y2hhciAqcGxhaW50ZXh0LCBpbnQgKm91dGxlbikKK3sKKwlpbnQJCQlkZWNsZW47CisJaW50CQkJ bGVuOworCisJLyoKKwkgKiBUaGlzIGlzIHRoZSBmdW5jdGlvbiB3aGljaCBpcyBhY3R1YWxseSBw ZXJmb3JtaW5nIHRoZSBkZWNyeXB0aW9uIGZvcgorCSAqIHVzLgorCSAqLworCWlmICghRVZQX0Rl Y3J5cHRVcGRhdGUoY3R4LCBwbGFpbnRleHQsICZsZW4sIGNpcGhlcnRleHQsIGlubGVuKSkKKwkJ cmV0dXJuIGZhbHNlOworCisJZGVjbGVuID0gbGVuOworCisJLyoKKwkgKiBGaW5hbGl6ZSB0aGUg ZGVjcnlwdGlvbiwgd2hpY2ggY291bGQgYWRkIG1vcmUgdG8gb3V0cHV0LCB0aGlzIGlzIGFsc28K KwkgKiB0aGUgc3RlcCB3aGljaCBjaGVja3MgdGhlIHRhZyBhbmQgd2UgTVVTVCBmYWlsIGlmIHRo aXMgaW5kaWNhdGVzIGFuCisJICogaW52YWxpZCByZXN1bHQhCisJICovCisJaWYgKCFFVlBfRGVj cnlwdEZpbmFsX2V4KGN0eCwgcGxhaW50ZXh0ICsgZGVjbGVuLCAmbGVuKSkKKwkJcmV0dXJuIGZh bHNlOworCisJKm91dGxlbiA9IGRlY2xlbiArIGxlbjsKKworCXJldHVybiB0cnVlOworfQorCisv KgorICogUmV0dXJucyB0aGUgY29ycmVjdCBHQ00gY2lwaGVyIGZ1bmN0aW9ucyBmb3IgT3BlblNT TCBiYXNlZAorICogb24gdGhlIGtleSBsZW5ndGggcmVxdWVzdGVkLgorICovCitzdGF0aWMgb3Nz bF9FVlBfY2lwaGVyX2Z1bmMKK2dldF9ldnBfYWVzX2djbShpbnQga2xlbikKK3sKKwlzd2l0Y2gg KGtsZW4pCisJeworCQljYXNlIFBHX0FFUzEyOF9LRVlfTEVOOgorCQkJcmV0dXJuIEVWUF9hZXNf MTI4X2djbTsKKwkJY2FzZSBQR19BRVMxOTJfS0VZX0xFTjoKKwkJCXJldHVybiBFVlBfYWVzXzE5 Ml9nY207CisJCWNhc2UgUEdfQUVTMjU2X0tFWV9MRU46CisJCQlyZXR1cm4gRVZQX2Flc18yNTZf Z2NtOworCQlkZWZhdWx0OgorCQkJcmV0dXJuIE5VTEw7CisJfQorfQorCisvKgorICogUmV0dXJu cyB0aGUgY29ycmVjdCBLV1AgY2lwaGVyIGZ1bmN0aW9ucyBmb3IgT3BlblNTTCBiYXNlZAorICog b24gdGhlIGtleSBsZW5ndGggcmVxdWVzdGVkLgorICovCitzdGF0aWMgb3NzbF9FVlBfY2lwaGVy X2Z1bmMKK2dldF9ldnBfYWVzX2t3cChpbnQga2xlbikKK3sKKwlzd2l0Y2ggKGtsZW4pCisJewor CQljYXNlIFBHX0FFUzEyOF9LRVlfTEVOOgorCQkJcmV0dXJuIEVWUF9hZXNfMTI4X3dyYXBfcGFk OworCQljYXNlIFBHX0FFUzE5Ml9LRVlfTEVOOgorCQkJcmV0dXJuIEVWUF9hZXNfMTkyX3dyYXBf cGFkOworCQljYXNlIFBHX0FFUzI1Nl9LRVlfTEVOOgorCQkJcmV0dXJuIEVWUF9hZXNfMjU2X3dy YXBfcGFkOworCQlkZWZhdWx0OgorCQkJcmV0dXJuIE5VTEw7CisJfQorfQorCisvKgorICogUmV0 dXJucyB0aGUgY29ycmVjdCBDVFIgY2lwaGVyIGZ1bmN0aW9ucyBmb3IgT3BlblNTTCBiYXNlZAor ICogb24gdGhlIGtleSBsZW5ndGggcmVxdWVzdGVkLgorICovCitzdGF0aWMgb3NzbF9FVlBfY2lw aGVyX2Z1bmMKK2dldF9ldnBfYWVzX2N0cihpbnQga2xlbikKK3sKKwlzd2l0Y2ggKGtsZW4pCisJ eworCQljYXNlIFBHX0FFUzEyOF9LRVlfTEVOOgorCQkJcmV0dXJuIEVWUF9hZXNfMTI4X2N0cjsK KwkJY2FzZSBQR19BRVMxOTJfS0VZX0xFTjoKKwkJCXJldHVybiBFVlBfYWVzXzE5Ml9jdHI7CisJ CWNhc2UgUEdfQUVTMjU2X0tFWV9MRU46CisJCQlyZXR1cm4gRVZQX2Flc18yNTZfY3RyOworCQlk ZWZhdWx0OgorCQkJcmV0dXJuIE5VTEw7CisJfQorfQorCisvKgorICogSW5pdGlhbGl6ZSBhbmQg cmV0dXJuIGFuIEVWUF9DSVBIRVJfQ1RYLiBSZXR1cm5zIE5VTEwgaWYgdGhlIGdpdmVuCisgKiBj aXBoZXIgYWxnb3JpdGhtIGlzIG5vdCBzdXBwb3J0ZWQgb3Igb24gZmFpbHVyZS4KKyAqLworc3Rh dGljIEVWUF9DSVBIRVJfQ1RYICoKK29zc2xfY2lwaGVyX2N0eF9jcmVhdGUoaW50IGNpcGhlciwg dW5zaWduZWQgY2hhciAqa2V5LCBpbnQga2xlbiwgYm9vbCBlbmMpCit7CisJRVZQX0NJUEhFUl9D VFggKmN0eDsKKwlvc3NsX0VWUF9jaXBoZXJfZnVuYyBmdW5jOworCWludAkJCXJldDsKKworCWN0 eCA9IEVWUF9DSVBIRVJfQ1RYX25ldygpOworCisJLyoKKwkgKiBXZSBjdXJyZW50bHkgb25seSBz dXBwb3J0IEFFUyBHQ00gYnV0IG90aGVycyBjb3VsZCBiZSBhZGRlZCBpbiB0aGUKKwkgKiBmdXR1 cmUuCisJICovCisJc3dpdGNoIChjaXBoZXIpCisJeworCQljYXNlIFBHX0NJUEhFUl9BRVNfR0NN OgorCQkJZnVuYyA9IGdldF9ldnBfYWVzX2djbShrbGVuKTsKKwkJCWlmICghZnVuYykKKwkJCQln b3RvIGZhaWxlZDsKKwkJCWJyZWFrOworCQljYXNlIFBHX0NJUEhFUl9BRVNfS1dQOgorCQkJZnVu YyA9IGdldF9ldnBfYWVzX2t3cChrbGVuKTsKKworCQkJLyoKKwkJCSAqIFNpbmNlIHdyYXBwaW5n IHdpbGwgcHJvZHVjZSBtb3JlIG91dHB1dCB0aGVuIGlucHV0LCBhbmQgd2UgaGF2ZQorCQkJICog dG8gYmUgcmVhZHkgZm9yIHRoYXQsIE9wZW5TU0wgcmVxdWlyZXMgdGhhdCB3ZSBleHBsaWNpdGx5 CisJCQkgKiBlbmFibGUgd3JhcHBpbmcgZm9yIHRoZSBjb250ZXh0LgorCQkJICovCisJCQlFVlBf Q0lQSEVSX0NUWF9zZXRfZmxhZ3MoY3R4LCBFVlBfQ0lQSEVSX0NUWF9GTEFHX1dSQVBfQUxMT1cp OworCQkJaWYgKCFmdW5jKQorCQkJCWdvdG8gZmFpbGVkOworCQkJYnJlYWs7CisJCWNhc2UgUEdf Q0lQSEVSX0FFU19DVFI6CisJCQlmdW5jID0gZ2V0X2V2cF9hZXNfY3RyKGtsZW4pOworCQkJaWYg KCFmdW5jKQorCQkJCWdvdG8gZmFpbGVkOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlnb3Rv IGZhaWxlZDsKKwl9CisKKwkvKgorCSAqIFdlIGNyZWF0ZSB0aGUgY29udGV4dCBoZXJlIGJhc2Vk IG9uIHRoZSBjaXBoZXIgcmVxdWVzdGVkIGFuZCB0aGUKKwkgKiBwcm92aWRlZCBrZXkuICBOb3Rl IHRoYXQgdGhlIElWIHdpbGwgYmUgcHJvdmlkZWQgaW4gdGhlIGFjdHVhbAorCSAqIGVuY3J5cHRp b24gY2FsbCB0aHJvdWdoIGFub3RoZXIgRVZQX0VuY3J5cHRJbml0X2V4IGNhbGwtIHRoaXMgaXMg ZmluZQorCSAqIGFzIGxvbmcgYXMgJ3R5cGUnIGlzIHBhc3NlZCBpbiBhcyBOVUxMIQorCSAqLwor CWlmIChlbmMpCisJCXJldCA9IEVWUF9FbmNyeXB0SW5pdF9leChjdHgsIChjb25zdCBFVlBfQ0lQ SEVSICopIGZ1bmMoKSwgTlVMTCwga2V5LCBOVUxMKTsKKwllbHNlCisJCXJldCA9IEVWUF9EZWNy eXB0SW5pdF9leChjdHgsIChjb25zdCBFVlBfQ0lQSEVSICopIGZ1bmMoKSwgTlVMTCwga2V5LCBO VUxMKTsKKworCWlmICghcmV0KQorCQlnb3RvIGZhaWxlZDsKKworCS8qIFNldCB0aGUga2V5IGxl bmd0aCBiYXNlZCBvbiB0aGUga2V5IGxlbmd0aCByZXF1ZXN0ZWQuICovCisJaWYgKCFFVlBfQ0lQ SEVSX0NUWF9zZXRfa2V5X2xlbmd0aChjdHgsIGtsZW4pKQorCQlnb3RvIGZhaWxlZDsKKworCXJl dHVybiBjdHg7CisKK2ZhaWxlZDoKKwlFVlBfQ0lQSEVSX0NUWF9mcmVlKGN0eCk7CisJcmV0dXJu IE5VTEw7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tbW9uL2ttZ3JfdXRpbHMuYyBiL3NyYy9jb21t b24va21ncl91dGlscy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjZj NTBjYjA5M2IKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tbW9uL2ttZ3JfdXRpbHMuYwpAQCAt MCwwICsxLDQ2NSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICoga21ncl91dGlscy5jCisg KgkgIFNoYXJlZCBmcm9udGVuZC9iYWNrZW5kIGZvciBjbHVzdGVyIGZpbGUgZW5jcnlwdGlvbgor ICoKKyAqIFRoZXNlIGZ1bmN0aW9ucyBoYW5kbGUgcmVhZGluZyB0aGUgd3JhcHBlZCBERUsgZmls ZXMgZnJvbSB0aGUKKyAqIGZpbGUgc3lzdGVtLCBhbmQgd3JhcHBpbmcgYW5kIHVud3JhcHBpbmcg dGhlbS4gIEl0IGFsc28gaGFuZGxlcworICogcnVubmluZyB0aGUgY2x1c3Rlcl9rZXlfY29tbWFu ZC4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3Bt ZW50IEdyb3VwCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2NvbW1vbi9rbWdyX3V0 aWxzLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaWZuZGVmIEZST05URU5ECisj aW5jbHVkZSAicG9zdGdyZXMuaCIKKyNlbHNlCisjaW5jbHVkZSAicG9zdGdyZXNfZmUuaCIKKyNl bmRpZgorCisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNs dWRlIDxmY250bC5oPgorCisjaWZkZWYgRlJPTlRFTkQKKyNpbmNsdWRlICJjb21tb24vbG9nZ2lu Zy5oIgorI2VuZGlmCisjaW5jbHVkZSAiY29tbW9uL2NyeXB0b2hhc2guaCIKKyNpbmNsdWRlICJj b21tb24vZmlsZV9wZXJtLmgiCisjaW5jbHVkZSAiY29tbW9uL2hleC5oIgorI2luY2x1ZGUgImNv bW1vbi9zdHJpbmcuaCIKKyNpbmNsdWRlICJjcnlwdG8va21nci5oIgorI2luY2x1ZGUgImxpYi9z dHJpbmdpbmZvLmgiCisjaW5jbHVkZSAic3RvcmFnZS9mZC5oIgorCisjaWZuZGVmIEZST05URU5E CisjaW5jbHVkZSAicGdzdGF0LmgiCisjaW5jbHVkZSAic3RvcmFnZS9mZC5oIgorI2VuZGlmCisK KyNkZWZpbmUgS01HUl9QUk9NUFRfTVNHICJFbnRlciBhdXRoZW50aWNhdGlvbiBuZWVkZWQgdG8g Z2VuZXJhdGUgdGhlIGNsdXN0ZXIga2V5OiAiCisKKyNpZmRlZiBGUk9OVEVORAorc3RhdGljIEZJ TEUgKm9wZW5fcGlwZV9zdHJlYW0oY29uc3QgY2hhciAqY29tbWFuZCk7CitzdGF0aWMgaW50CWNs b3NlX3BpcGVfc3RyZWFtKEZJTEUgKmZpbGUpOworI2VuZGlmCisKK3N0YXRpYyB2b2lkIHJlYWRf d3JhcHBlZF9kYXRhX2tleShjb25zdCBjaGFyICpjcnlwdG9LZXlEaXIsIHVpbnQzMiBpZCwgdW5z aWduZWQgY2hhciAqKmtleV9wLCBpbnQgKmtleV9sZW4pOworCisvKgorICogV2UgbmVlZCB0aGlz IGFycmF5IGluIGZyb250ZW5kIGFuZCBiYWNrZW5kIGNvZGUsIHNvIGRlZmluZSBpdCBoZXJlLgor ICogWW91IGNhbiBvbmx5IGFkZCB0byB0aGUgZW5kIG9mIHRoaXMgYXJyYXkgc2luY2UgdGhlIGFy cmF5IGluZGV4IGlzCisgKiBzdG9yZWQgaW4gcGdfY29udHJvbC4KKyAqLworZW5jcnlwdGlvbl9t ZXRob2QgZW5jcnlwdGlvbl9tZXRob2RzW05VTV9FTkNSWVBUSU9OX01FVEhPRFNdID0geworCXsi IiwgMH0sCisJeyJBRVMxMjgiLCAxMjh9LAorCXsiQUVTMTkyIiwgMTkyfSwKKwl7IkFFUzI1NiIs IDI1Nn0KK307CisKKy8qIFRoaXMgbWFwcyB3cmFwcGVkIGtleSBmaWxlc25hbWVzIHRvIHRoZWly IGFycmF5IHNsb3RzICovCitjaGFyCSAgICp3a2V5X2ZpbGVuYW1lc1tLTUdSX05VTV9EQVRBX0tF WVNdID0geworCSJyZWxhdGlvbiIsCisJIndhbCIKK307CisKKworLyoKKyAqIFdyYXAgdGhlIGdp dmVuIENyeXB0b0tleS4KKyAqCisgKiBSZXR1cm5zIHRydWUgYW5kIHdyaXRlcyBlbmNyeXB0ZWQv d3JhcHBlZC9wYWRkZWQgZGF0YSB0byAnb3V0JywgYW5kIHRoZSBsZW5ndGgKKyAqIG9mIHRoZSBy ZXN1bHQgdG8gb3V0bGVuLCBpZiBzdWNjZXNzZnVsLgorICoKKyAqIE90aGVyd2lzZSByZXR1cm5z IGZhbHNlLiBUaGUgY2FsbGVyIG11c3QgYWxsb2NhdGUgc3VmZmljaWVudCBzcGFjZQorICogZm9y IGNpcGhlciBkYXRhIGNhbGN1bGF0ZWQgYnkgdXNpbmcgS21nclNpemVPZkNpcGhlclRleHQoKS4g UGxlYXNlIG5vdGUgdGhhdAorICogdGhpcyBmdW5jdGlvbiBtb2RpZmllcyAnb3V0JyBkYXRhIGV2 ZW4gb24gZmFpbHVyZS4KKyAqLworYm9vbAora21ncl93cmFwX2RhdGFfa2V5KFBnQ2lwaGVyQ3R4 ICpjdHgsIENyeXB0b0tleSAqaW4sIHVuc2lnbmVkIGNoYXIgKm91dCwgaW50ICpvdXRsZW4pCit7 CisJQXNzZXJ0KGN0eCAmJiBpbiAmJiBvdXQpOworCisJaWYgKCFwZ19jaXBoZXJfa2V5d3JhcChj dHgsICh1bnNpZ25lZCBjaGFyICopIGluLCBzaXplb2YoQ3J5cHRvS2V5KSwgb3V0LCBvdXRsZW4p KQorCQlyZXR1cm4gZmFsc2U7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoKKyAqIERlY3J5cHQg dGhlIGdpdmVuIGRhdGEuIFJldHVybiB0cnVlIGFuZCBzZXQgcGxhaW4gdGV4dCBkYXRhIHRvIGBv dXRgIGlmCisgKiBzdWNjZXNzZnVsLiAgT3RoZXJ3aXNlIHJldHVybiBmYWxzZS4gVGhlIGNhbGxl ciBtdXN0IGFsbG9jYXRlIHN1ZmZpY2llbnQKKyAqIHNwYWNlIGZvciBjaXBoZXIgZGF0YSBjYWxj dWxhdGVkIGJ5IHVzaW5nIEttZ3JTaXplT2ZQbGFpblRleHQoKS4gUGxlYXNlCisgKiBub3RlIHRo YXQgdGhpcyBmdW5jdGlvbiBtb2RpZmllcyAnb3V0JyBkYXRhIGV2ZW4gb24gZmFpbHVyZS4KKyAq LworYm9vbAora21ncl91bndyYXBfZGF0YV9rZXkoUGdDaXBoZXJDdHggKmN0eCwgdW5zaWduZWQg Y2hhciAqaW4sIGludCBpbmxlbiwgQ3J5cHRvS2V5ICpvdXQpCit7CisJaW50CQkJb3V0bGVuOwor CisJQXNzZXJ0KGN0eCAmJiBpbiAmJiBvdXQpOworCisJaWYgKCFwZ19jaXBoZXJfa2V5dW53cmFw KGN0eCwgaW4sIGlubGVuLCAodW5zaWduZWQgY2hhciAqKSBvdXQsICZvdXRsZW4pKQorCQlyZXR1 cm4gZmFsc2U7CisKKwlBc3NlcnQob3V0bGVuID09IHNpemVvZihDcnlwdG9LZXkpKTsKKworCXJl dHVybiB0cnVlOworfQorCisvKgorICogVmVyaWZ5IHRoZSBjb3JyZWN0bmVzcyBvZiB0aGUgZ2l2 ZW4gY2x1c3RlciBrZXkgYnkgdW53cmFwcGluZyB0aGUgZ2l2ZW4ga2V5cy4KKyAqIElmIHRoZSBn aXZlbiBjbHVzdGVyIGtleSBpcyBjb3JyZWN0IHdlIHNldCB1bndyYXBwZWQga2V5cyB0byBvdXRf a2V5cyBhbmQgcmV0dXJuCisgKiB0cnVlLiAgT3RoZXJ3aXNlIHJldHVybiBmYWxzZS4gIFBsZWFz ZSBub3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBjaGFuZ2VzIHRoZQorICogY29udGVudHMgb2Ygb3V0 X2tleXMgZXZlbiBvbiBmYWlsdXJlLiAgQm90aCBpbl9rZXlzIGFuZCBvdXRfa2V5cyBtdXN0IGJl IHRoZQorICogc2FtZSBsZW5ndGguCisgKi8KK2Jvb2wKK2ttZ3JfdmVyaWZ5X2NsdXN0ZXJfa2V5 KHVuc2lnbmVkIGNoYXIgKmNsdXN0ZXJfa2V5LAorCQkJCQkJdW5zaWduZWQgY2hhciAqKmluX2tl eXMsIGludCAqa2V5X2xlbnMsIENyeXB0b0tleSAqb3V0X2tleXMpCit7CisJUGdDaXBoZXJDdHgg KmN0eDsKKworCS8qIENyZWF0ZSBkZWNyeXB0aW9uIGNvbnRleHQgd2l0aCB0aGUgS0VLLiAqLwor CWN0eCA9IHBnX2NpcGhlcl9jdHhfY3JlYXRlKFBHX0NJUEhFUl9BRVNfS1dQLCBjbHVzdGVyX2tl eSwKKwkJCQkJCQkgICBLTUdSX0NMVVNURVJfS0VZX0xFTiwgZmFsc2UpOworCisJLyogdW53cmFw IGVhY2ggREVLICovCisJZm9yIChpbnQgaSA9IDA7IGkgPCBLTUdSX05VTV9EQVRBX0tFWVM7IGkr KykKKwl7CisJCWlmICgha21ncl91bndyYXBfZGF0YV9rZXkoY3R4LCBpbl9rZXlzW2ldLCBrZXlf bGVuc1tpXSwgJihvdXRfa2V5c1tpXSkpKQorCQl7CisJCQkvKiBUaGUgY2x1c3RlciBrZXkgaXMg bm90IGNvcnJlY3QgKi8KKwkJCXBnX2NpcGhlcl9jdHhfZnJlZShjdHgpOworCQkJcmV0dXJuIGZh bHNlOworCQl9CisJCWV4cGxpY2l0X2J6ZXJvKGluX2tleXNbaV0sIGtleV9sZW5zW2ldKTsKKwl9 CisKKwkvKiBUaGUgY2x1c3RlciBrZXkgaXMgY29ycmVjdCwgZnJlZSB0aGUgY2lwaGVyIGNvbnRl eHQgKi8KKwlwZ19jaXBoZXJfY3R4X2ZyZWUoY3R4KTsKKworCXJldHVybiB0cnVlOworfQorCisv KgorICogUnVuIGNsdXN0ZXIga2V5IGNvbW1hbmQuCisgKgorICogU3Vic3RpdHV0ZSAlZCBmb3Ig ZGlyZWN0b3J5LCAlcCBmb3IgcHJvbXB0LCAlUiBmb3IgZmlsZSBkZXNjcmlwdG9yLgorICoKKyAq IFRoZSByZXN1bHQgd2lsbCBiZSBwdXQgaW4gYnVmZmVyIGJ1Ziwgd2hpY2ggaXMgb2Ygc2l6ZSAi c2l6ZSIuCisgKiBUaGUgcmV0dXJuIHZhbHVlIGlzIHRoZSBsZW5ndGggb2YgdGhlIGFjdHVhbCBy ZXN1bHQuCisgKi8KK2ludAora21ncl9ydW5fY2x1c3Rlcl9rZXlfY29tbWFuZChjaGFyICpjbHVz dGVyX2tleV9jb21tYW5kLCBjaGFyICpidWYsCisJCQkJCQkJIGludCBzaXplLCBjaGFyICpkaXIs IGludCB0ZXJtaW5hbF9mZCkKK3sKKwlTdHJpbmdJbmZvRGF0YSBjb21tYW5kOworCWNvbnN0IGNo YXIgKnNwOworCUZJTEUJICAgKmZoOworCWludAkJCXBjbG9zZV9yYzsKKwlzaXplX3QJCWxlbiA9 IDA7CisKKwlidWZbMF0gPSAnXDAnOworCisJQXNzZXJ0KHNpemUgPiAwKTsKKworCS8qCisJICog QnVpbGQgdGhlIGNvbW1hbmQgdG8gYmUgZXhlY3V0ZWQuCisJICovCisJaW5pdFN0cmluZ0luZm8o JmNvbW1hbmQpOworCisJZm9yIChzcCA9IGNsdXN0ZXJfa2V5X2NvbW1hbmQ7ICpzcDsgc3ArKykK Kwl7CisJCWlmICgqc3AgPT0gJyUnKQorCQl7CisJCQlzd2l0Y2ggKHNwWzFdKQorCQkJeworCQkJ CQkvKiBkaXJlY3RvcnkgKi8KKwkJCQljYXNlICdkJzoKKwkJCQkJeworCQkJCQkJY2hhcgkgICAq bmF0aXZlUGF0aDsKKworCQkJCQkJc3ArKzsKKworCQkJCQkJLyoKKwkJCQkJCSAqIFRoaXMgbmVl ZHMgdG8gdXNlIGEgcGxhY2Vob2xkZXIgdG8gbm90IG1vZGlmeSB0aGUKKwkJCQkJCSAqIGlucHV0 IHdpdGggdGhlIGNvbnZlcnNpb24gZG9uZSB2aWEKKwkJCQkJCSAqIG1ha2VfbmF0aXZlX3BhdGgo KS4KKwkJCQkJCSAqLworCQkJCQkJbmF0aXZlUGF0aCA9IHBzdHJkdXAoZGlyKTsKKwkJCQkJCW1h a2VfbmF0aXZlX3BhdGgobmF0aXZlUGF0aCk7CisJCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5n KCZjb21tYW5kLCBuYXRpdmVQYXRoKTsKKwkJCQkJCXBmcmVlKG5hdGl2ZVBhdGgpOworCQkJCQkJ YnJlYWs7CisJCQkJCX0KKwkJCQkJLyogcHJvbXB0IHN0cmluZyAqLworCQkJCWNhc2UgJ3AnOgor CQkJCQlzcCsrOworCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZjb21tYW5kLCBLTUdSX1BS T01QVF9NU0cpOworCQkJCQlicmVhazsKKwkJCQkJLyogZmlsZSBkZXNjcmlwdG9yIG51bWJlciAq LworCQkJCWNhc2UgJ1InOgorCQkJCQl7CisJCQkJCQljaGFyCQlmZF9zdHJbMjBdOworCisJCQkJ CQlpZiAodGVybWluYWxfZmQgPT0gLTEpCisJCQkJCQl7CisjaWZkZWYgRlJPTlRFTkQKKwkJCQkJ CQlwZ19mYXRhbCgiY2x1c3RlciBrZXkgY29tbWFuZCByZWZlcmVuY2VkICUlUiwgYnV0IC0tYXV0 aHByb21wdCBub3Qgc3BlY2lmaWVkIik7CisjZWxzZQorCQkJCQkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVEVSTkFMX0VSUk9SKSwKKwkJCQkJCQkJCSBlcnJt c2coImNsdXN0ZXIga2V5IGNvbW1hbmQgcmVmZXJlbmNlZCAlJVIsIGJ1dCAtLWF1dGhwcm9tcHQg bm90IHNwZWNpZmllZCIpKSk7CisjZW5kaWYKKwkJCQkJCX0KKworCQkJCQkJc3ArKzsKKwkJCQkJ CXNucHJpbnRmKGZkX3N0ciwgc2l6ZW9mKGZkX3N0ciksICIlZCIsIHRlcm1pbmFsX2ZkKTsKKwkJ CQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmNvbW1hbmQsIGZkX3N0cik7CisJCQkJCQlicmVh azsKKwkJCQkJfQorCQkJCQkvKiBsaXRlcmFsICIlIiAqLworCQkJCWNhc2UgJyUnOgorCQkJCQkv KiBjb252ZXJ0ICUlIHRvIGEgc2luZ2xlICUgKi8KKwkJCQkJc3ArKzsKKwkJCQkJYXBwZW5kU3Ry aW5nSW5mb0NoYXIoJmNvbW1hbmQsICpzcCk7CisJCQkJCWJyZWFrOworCQkJCWRlZmF1bHQ6CisJ CQkJCS8qIG90aGVyd2lzZSB0cmVhdCB0aGUgJSBhcyBub3Qgc3BlY2lhbCAqLworCQkJCQlhcHBl bmRTdHJpbmdJbmZvQ2hhcigmY29tbWFuZCwgKnNwKTsKKwkJCQkJYnJlYWs7CisJCQl9CisJCX0K KwkJZWxzZQorCQl7CisJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcigmY29tbWFuZCwgKnNwKTsKKwkJ fQorCX0KKworI2lmZGVmIEZST05URU5ECisJZmggPSBvcGVuX3BpcGVfc3RyZWFtKGNvbW1hbmQu ZGF0YSk7CisJaWYgKGZoID09IE5VTEwpCisJeworCQlwZ19mYXRhbCgiY291bGQgbm90IGV4ZWN1 dGUgY29tbWFuZCBcIiVzXCI6ICVtIiwKKwkJCQkJIGNvbW1hbmQuZGF0YSk7CisJfQorI2Vsc2UK KwlmaCA9IE9wZW5QaXBlU3RyZWFtKGNvbW1hbmQuZGF0YSwgInIiKTsKKwlpZiAoZmggPT0gTlVM TCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZV9mb3JfZmlsZV9hY2Nlc3MoKSwKKwkJ CQkgZXJybXNnKCJjb3VsZCBub3QgZXhlY3V0ZSBjb21tYW5kIFwiJXNcIjogJW0iLAorCQkJCQkJ Y29tbWFuZC5kYXRhKSkpOworI2VuZGlmCisKKwlpZiAoIWZnZXRzKGJ1Ziwgc2l6ZSwgZmgpKQor CXsKKwkJaWYgKGZlcnJvcihmaCkpCisJCXsKKyNpZmRlZiBGUk9OVEVORAorCQkJcGdfZmF0YWwo ImNvdWxkIG5vdCByZWFkIGZyb20gY29tbWFuZCBcIiVzXCI6ICVtIiwKKwkJCQkJCSBjb21tYW5k LmRhdGEpOworI2Vsc2UKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlX2Zvcl9maWxl X2FjY2VzcygpLAorCQkJCQkgZXJybXNnKCJjb3VsZCBub3QgcmVhZCBmcm9tIGNvbW1hbmQgXCIl c1wiOiAlbSIsCisJCQkJCQkJY29tbWFuZC5kYXRhKSkpOworI2VuZGlmCisJCX0KKwl9CisKKyNp ZmRlZiBGUk9OVEVORAorCXBjbG9zZV9yYyA9IGNsb3NlX3BpcGVfc3RyZWFtKGZoKTsKKyNlbHNl CisJcGNsb3NlX3JjID0gQ2xvc2VQaXBlU3RyZWFtKGZoKTsKKyNlbmRpZgorCisJaWYgKHBjbG9z ZV9yYyA9PSAtMSkKKwl7CisjaWZkZWYgRlJPTlRFTkQKKwkJcGdfZmF0YWwoImNvdWxkIG5vdCBj bG9zZSBwaXBlIHRvIGV4dGVybmFsIGNvbW1hbmQ6ICVtIik7CisjZWxzZQorCQllcmVwb3J0KEVS Uk9SLAorCQkJCShlcnJjb2RlX2Zvcl9maWxlX2FjY2VzcygpLAorCQkJCSBlcnJtc2coImNvdWxk IG5vdCBjbG9zZSBwaXBlIHRvIGV4dGVybmFsIGNvbW1hbmQ6ICVtIikpKTsKKyNlbmRpZgorCX0K KwllbHNlIGlmIChwY2xvc2VfcmMgIT0gMCkKKwl7CisjaWZkZWYgRlJPTlRFTkQKKwkJcGdfZmF0 YWwoImNvbW1hbmQgXCIlc1wiIGZhaWxlZCIsIGNvbW1hbmQuZGF0YSk7CisjZWxzZQorCQllcmVw b3J0KEVSUk9SLAorCQkJCShlcnJjb2RlX2Zvcl9maWxlX2FjY2VzcygpLAorCQkJCSBlcnJtc2co ImNvbW1hbmQgXCIlc1wiIGZhaWxlZCIsCisJCQkJCQljb21tYW5kLmRhdGEpLAorCQkJCSBlcnJk ZXRhaWxfaW50ZXJuYWwoIiVzIiwgd2FpdF9yZXN1bHRfdG9fc3RyKHBjbG9zZV9yYykpKSk7Cisj ZW5kaWYKKwl9CisKKwkvKiBzdHJpcCB0cmFpbGluZyBuZXdsaW5lIGFuZCBjYXJyaWFnZSByZXR1 cm5zICovCisJbGVuID0gcGdfc3RyaXBfY3JsZihidWYpOworCisJcGZyZWUoY29tbWFuZC5kYXRh KTsKKworCXJldHVybiBsZW47Cit9CisKKyNpZmRlZiBGUk9OVEVORAorc3RhdGljIEZJTEUgKgor b3Blbl9waXBlX3N0cmVhbShjb25zdCBjaGFyICpjb21tYW5kKQoreworCUZJTEUJICAgKnJlczsK KworI2lmZGVmIFdJTjMyCisJc2l6ZV90CQljbWRsZW4gPSBzdHJsZW4oY29tbWFuZCk7CisJY2hh cgkgICAqYnVmOworCWludAkJCXNhdmVfZXJybm87CisKKwlidWYgPSBtYWxsb2MoY21kbGVuICsg MiArIDEpOworCWlmIChidWYgPT0gTlVMTCkKKwl7CisJCWVycm5vID0gRU5PTUVNOworCQlyZXR1 cm4gTlVMTDsKKwl9CisJYnVmWzBdID0gJyInOworCW1lbWNweSgmYnVmWzFdLCBjb21tYW5kLCBj bWRsZW4pOworCWJ1ZltjbWRsZW4gKyAxXSA9ICciJzsKKwlidWZbY21kbGVuICsgMl0gPSAnXDAn OworCisJcmVzID0gX3BvcGVuKGJ1ZiwgInIiKTsKKworCXNhdmVfZXJybm8gPSBlcnJubzsKKwlm cmVlKGJ1Zik7CisJZXJybm8gPSBzYXZlX2Vycm5vOworI2Vsc2UKKwlyZXMgPSBwb3Blbihjb21t YW5kLCAiciIpOworI2VuZGlmCQkJCQkJCS8qIFdJTjMyICovCisJcmV0dXJuIHJlczsKK30KKwor c3RhdGljIGludAorY2xvc2VfcGlwZV9zdHJlYW0oRklMRSAqZmlsZSkKK3sKKyNpZmRlZiBXSU4z MgorCXJldHVybiBfcGNsb3NlKGZpbGUpOworI2Vsc2UKKwlyZXR1cm4gcGNsb3NlKGZpbGUpOwor I2VuZGlmCQkJCQkJCS8qIFdJTjMyICovCit9CisjZW5kaWYJCQkJCQkJLyogRlJPTlRFTkQgKi8K KworLyoKKyAqIFJlYWRzIHRoZSBrZXlzIGF0IHBhdGguCisgKgorICogVGhpcyByb3V0aW5lIHNp bXBseSByZWFkcyBpbiB0aGUgcmF3IGVuY3J5cHRlZC93cmFwcGVkIGtleXM7CisgKiBpdCBkb2Vz IG5vdCBoYW5kbGUgYW55IGRlY3J5cHRpb24sIHNlZSBrbWdyX2tleV91bndyYXAoKS4KKyAqCisg KiBGb3IgZWFjaCBrZXkgcmV0dXJuZWQsIHRoZSBrZXkgYW5kIGtleSBsZW5ndGggYXJlIHJldHVy bmVkCisgKiBpbiB0aGUga2V5cyBhbmQga2V5X2xlbnMgYXJyYXlzIHJlc3BlY3RmdWxseS4KKyAq CisgKiBOb3RlIHRoYXQga2V5cyBhbmQga2V5X2xlbnMgbXVzdCBiZSBhbGxvY2F0ZWQgYmVmb3Jl IGNhbGxpbmcKKyAqIHRoaXMgZnVuY3Rpb24gYXMgYXJyYXlzIG9mIGF0IGxlYXN0IEtNR1JfTlVN X0RBVEFfS0VZUyBsZW5ndGguCisgKi8KK3ZvaWQKK2ttZ3JfcmVhZF93cmFwcGVkX2RhdGFfa2V5 cyhjb25zdCBjaGFyICpwYXRoLCB1bnNpZ25lZCBjaGFyICoqa2V5cywgaW50ICprZXlfbGVucykK K3sKKy8qCVN0YXRpY0Fzc2VydFN0bXQobGVuZ3Rob2Yod2tleV9maWxlbmFtZXMpID09IEtNR1Jf TlVNX0RBVEFfS0VZUywKKwkJCQkJICJ3a2V5X2ZpbGVuYW1lc1tdIG11c3QgbWF0Y2ggS01HUl9O VU1fREFUQV9LRVlTIik7CisqLworCVN0YXRpY0Fzc2VydFN0bXQoMSA9PSAxLAorCQkJCQkgIndr ZXlfZmlsZW5hbWVzW10gbXVzdCBtYXRjaCBLTUdSX05VTV9EQVRBX0tFWVMiKTsKKworCWZvciAo aW50IGlkID0gMDsgaWQgPCBLTUdSX05VTV9EQVRBX0tFWVM7IGlkKyspCisJCXJlYWRfd3JhcHBl ZF9kYXRhX2tleShwYXRoLCBpZCwgJihrZXlzW2lkXSksICYoa2V5X2xlbnNbaWRdKSk7CisKKwly ZXR1cm47Cit9CisKKy8qIFJlYWQgYSB3cmFwcGVkIERFSyBmaWxlICovCitzdGF0aWMgdm9pZAor cmVhZF93cmFwcGVkX2RhdGFfa2V5KGNvbnN0IGNoYXIgKmNyeXB0b0tleURpciwgdWludDMyIGlk LCB1bnNpZ25lZCBjaGFyICoqa2V5X3AsIGludCAqa2V5X2xlbikKK3sKKwljaGFyCQlwYXRoW01B WFBHUEFUSF07CisJaW50CQkJZmQ7CisJaW50CQkJcjsKKwlzdHJ1Y3Qgc3RhdCBzdDsKKworCUNy eXB0b0tleUZpbGVQYXRoKHBhdGgsIGNyeXB0b0tleURpciwgaWQpOworCisjaWZuZGVmIEZST05U RU5ECisJaWYgKChmZCA9IE9wZW5UcmFuc2llbnRGaWxlKHBhdGgsIE9fUkRPTkxZIHwgUEdfQklO QVJZKSkgPT0gLTEpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGVfZm9yX2ZpbGVfYWNj ZXNzKCksCisJCQkJIGVycm1zZygiY291bGQgbm90IG9wZW4gZmlsZSBcIiVzXCIgZm9yIHJlYWRp bmc6ICVtIiwKKwkJCQkJCXBhdGgpKSk7CisJZWxzZSBpZiAoZnN0YXQoZmQsICZzdCkpCisJCWVy ZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGVfZm9yX2ZpbGVfYWNjZXNzKCksCisJCQkJIGVycm1z ZygiY291bGQgbm90IHN0YXQgZmlsZSBcIiVzXCI6ICVtIiwKKwkJCQkJCXBhdGgpKSk7CisjZWxz ZQorCWlmICgoZmQgPSBvcGVuKHBhdGgsIE9fUkRPTkxZIHwgUEdfQklOQVJZLCAwKSkgPT0gLTEp CisJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgb3BlbiBmaWxlIFwiJXNcIiBmb3IgcmVhZGluZzogJW0i LAorCQkJCQkgcGF0aCk7CisJZWxzZSBpZiAoZnN0YXQoZmQsICZzdCkpCisJCXBnX2ZhdGFsKCJj b3VsZCBub3Qgc3RhdCBmaWxlIFwiJXNcIjogJW0iLAorCQkJCQkgcGF0aCk7CisjZW5kaWYKKwor CSprZXlfbGVuID0gc3Quc3Rfc2l6ZTsKKworI2lmbmRlZiBGUk9OVEVORAorCXBnc3RhdF9yZXBv cnRfd2FpdF9zdGFydChXQUlUX0VWRU5UX0tFWV9GSUxFX1JFQUQpOworI2VuZGlmCisKKwkqa2V5 X3AgPSAodW5zaWduZWQgY2hhciAqKSBwYWxsb2MwKCprZXlfbGVuKTsKKworCS8qIEdldCBrZXkg Ynl0ZXMgKi8KKwlyID0gcmVhZChmZCwgKmtleV9wLCAqa2V5X2xlbik7CisJaWYgKHIgIT0gKmtl eV9sZW4pCisJeworCQlpZiAociA8IDApCisJCXsKKyNpZm5kZWYgRlJPTlRFTkQKKwkJCWVyZXBv cnQoRVJST1IsCisJCQkJCShlcnJjb2RlX2Zvcl9maWxlX2FjY2VzcygpLAorCQkJCQkgZXJybXNn KCJjb3VsZCBub3QgcmVhZCBmaWxlIFwiJXNcIjogJW0iLCBwYXRoKSkpOworI2Vsc2UKKwkJCXBn X2ZhdGFsKCJjb3VsZCBub3QgcmVhZCBmaWxlIFwiJXNcIjogJW0iLCBwYXRoKTsKKyNlbmRpZgor CQl9CisJCWVsc2UKKwkJeworI2lmbmRlZiBGUk9OVEVORAorCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBX0NPUlJVUFRFRCksCisJCQkJCSBlcnJtc2coImNvdWxk IG5vdCByZWFkIGZpbGUgXCIlc1wiOiByZWFkICVkIG9mICV1IiwKKwkJCQkJCQlwYXRoLCByLCAq a2V5X2xlbikpKTsKKyNlbHNlCisJCQlwZ19mYXRhbCgiY291bGQgbm90IHJlYWQgZmlsZSBcIiVz XCI6IHJlYWQgJWQgb2YgJXUiLAorCQkJCQkJIHBhdGgsIHIsICprZXlfbGVuKTsKKyNlbmRpZgor CQl9CisJfQorCisjaWZuZGVmIEZST05URU5ECisJcGdzdGF0X3JlcG9ydF93YWl0X2VuZCgpOwor I2VuZGlmCisKKyNpZm5kZWYgRlJPTlRFTkQKKwlpZiAoQ2xvc2VUcmFuc2llbnRGaWxlKGZkKSAh PSAwKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlX2Zvcl9maWxlX2FjY2VzcygpLAor CQkJCSBlcnJtc2coImNvdWxkIG5vdCBjbG9zZSBmaWxlIFwiJXNcIjogJW0iLAorCQkJCQkJcGF0 aCkpKTsKKyNlbHNlCisJaWYgKGNsb3NlKGZkKSAhPSAwKQorCQlwZ19mYXRhbCgiY291bGQgbm90 IGNsb3NlIGZpbGUgXCIlc1wiOiAlbSIsIHBhdGgpOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jb21tb24vY2lwaGVyLmggYi9zcmMvaW5jbHVkZS9jb21tb24vY2lwaGVyLmgK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZGE5N2NhMzc3NgotLS0gL2Rl di9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1vbi9jaXBoZXIuaApAQCAtMCwwICsxLDc0IEBA CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBjaXBoZXIuaAorICoJCURlY2xhcmF0aW9ucyBm b3IgY3J5cHRvZ3JhcGhpYyBmdW5jdGlvbnMKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp IDIwMjEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKgorICogc3JjL2lu Y2x1ZGUvY29tbW9uL2NpcGhlci5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpZm5k ZWYgUEdfQ0lQSEVSX0gKKyNkZWZpbmUgUEdfQ0lQSEVSX0gKKworI2lmZGVmIFVTRV9PUEVOU1NM CisjaW5jbHVkZSA8b3BlbnNzbC9ldnAuaD4KKyNpbmNsdWRlIDxvcGVuc3NsL2NvbmYuaD4KKyNp bmNsdWRlIDxvcGVuc3NsL2Vyci5oPgorI2VuZGlmCisKKy8qCisgKiBTdXBwb3J0ZWQgc3ltbWV0 cmljIGVuY3J5cHRpb24gYWxnb3JpdGhtLiBUaGVzZSBpZGVudGlmaWVycyBhcmUgcGFzc2VkCisg KiB0byBwZ19jaXBoZXJfY3R4X2NyZWF0ZSgpIGZ1bmN0aW9uLCBhbmQgdGhlbiBhY3R1YWwgZW5j cnlwdGlvbgorICogaW1wbGVtZW50YXRpb25zIG5lZWQgdG8gaW5pdGlhbGl6ZSB0aGVpciBjb250 ZXh0IG9mIHRoZSBnaXZlbiBlbmNyeXB0aW9uCisgKiBhbGdvcml0aG0uCisgKi8KKyNkZWZpbmUg UEdfQ0lQSEVSX0FFU19HQ00JCQkwCisjZGVmaW5lIFBHX0NJUEhFUl9BRVNfQ1RSCQkJMQorI2Rl ZmluZSBQR19DSVBIRVJfQUVTX0tXUAkJCTIKKyNkZWZpbmUgUEdfTUFYX0NJUEhFUl9JRAkJCTIK KworLyogQUVTMTI4LzE5Mi8yNTYgdmFyaW91cyBsZW5ndGggZGVmaW5pdGlvbnMgKi8KKyNkZWZp bmUgUEdfQUVTMTI4X0tFWV9MRU4JCQkoMTI4IC8gOCkKKyNkZWZpbmUgUEdfQUVTMTkyX0tFWV9M RU4JCQkoMTkyIC8gOCkKKyNkZWZpbmUgUEdfQUVTMjU2X0tFWV9MRU4JCQkoMjU2IC8gOCkKKwor LyoKKyAqIFRoZSBlbmNyeXB0ZWQgZGF0YSBpcyBhIHNlcmllcyBvZiBibG9ja3Mgb2Ygc2l6ZS4g SW5pdGlhbGl6YXRpb24KKyAqIHZlY3RvcihJVikgaXMgdGhlIHNhbWUgc2l6ZSBvZiBjaXBoZXIg YmxvY2suCisgKi8KKyNkZWZpbmUgUEdfQUVTX0JMT0NLX1NJWkUJCQkxNgorI2RlZmluZSBQR19B RVNfSVZfU0laRQkJCQkoUEdfQUVTX0JMT0NLX1NJWkUpCisKKyNpZmRlZiBVU0VfT1BFTlNTTAor dHlwZWRlZiBFVlBfQ0lQSEVSX0NUWCBQZ0NpcGhlckN0eDsKKyNlbHNlCit0eXBlZGVmIHZvaWQg UGdDaXBoZXJDdHg7CisjZW5kaWYKKworZXh0ZXJuIFBnQ2lwaGVyQ3R4ICpwZ19jaXBoZXJfY3R4 X2NyZWF0ZShpbnQgY2lwaGVyLCB1bnNpZ25lZCBjaGFyICprZXksIGludCBrbGVuLAorCQkJCQkJ CQkJCSBib29sIGVuYyk7CisKK2V4dGVybiB2b2lkIHBnX2NpcGhlcl9jdHhfZnJlZShQZ0NpcGhl ckN0eCAqY3R4KTsKK2V4dGVybiBib29sIHBnX2NpcGhlcl9lbmNyeXB0KFBnQ2lwaGVyQ3R4ICpj dHgsIGludCBjaXBoZXIsCisJCQkJCQkJICBjb25zdCB1bnNpZ25lZCBjaGFyICpwbGFpbnRleHQs IGNvbnN0IGludCBpbmxlbiwKKwkJCQkJCQkgIHVuc2lnbmVkIGNoYXIgKmNpcGhlcnRleHQsIGlu dCAqb3V0bGVuLAorCQkJCQkJCSAgY29uc3QgdW5zaWduZWQgY2hhciAqaXYsIGNvbnN0IGludCBp dmxlbiwKKwkJCQkJCQkgIHVuc2lnbmVkIGNoYXIgKnRhZywgY29uc3QgaW50IHRhZ2xlbik7Citl eHRlcm4gYm9vbCBwZ19jaXBoZXJfZGVjcnlwdChQZ0NpcGhlckN0eCAqY3R4LCBjb25zdCBpbnQg Y2lwaGVyLAorCQkJCQkJCSAgY29uc3QgdW5zaWduZWQgY2hhciAqY2lwaGVydGV4dCwgY29uc3Qg aW50IGlubGVuLAorCQkJCQkJCSAgdW5zaWduZWQgY2hhciAqcGxhaW50ZXh0LCBpbnQgKm91dGxl biwKKwkJCQkJCQkgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKml2LCBjb25zdCBpbnQgaXZsZW4sCisJ CQkJCQkJICB1bnNpZ25lZCBjaGFyICppbnRhZywgY29uc3QgaW50IHRhZ2xlbik7CisKK2V4dGVy biBib29sIHBnX2NpcGhlcl9rZXl3cmFwKFBnQ2lwaGVyQ3R4ICpjdHgsCisJCQkJCQkJICBjb25z dCB1bnNpZ25lZCBjaGFyICpwbGFpbnRleHQsIGNvbnN0IGludCBpbmxlbiwKKwkJCQkJCQkgIHVu c2lnbmVkIGNoYXIgKmNpcGhlcnRleHQsIGludCAqb3V0bGVuKTsKK2V4dGVybiBib29sIHBnX2Np cGhlcl9rZXl1bndyYXAoUGdDaXBoZXJDdHggKmN0eCwKKwkJCQkJCQkJY29uc3QgdW5zaWduZWQg Y2hhciAqY2lwaGVydGV4dCwgY29uc3QgaW50IGlubGVuLAorCQkJCQkJCQl1bnNpZ25lZCBjaGFy ICpwbGFpbnRleHQsIGludCAqb3V0bGVuKTsKKworZXh0ZXJuIGludAlwZ19jaXBoZXJfYmxvY2tz aXplKFBnQ2lwaGVyQ3R4ICpjdHgpOworCisjZW5kaWYJCQkJCQkJLyogUEdfQ0lQSEVSX0ggKi8K ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1vbi9rbWdyX3V0aWxzLmggYi9zcmMvaW5jbHVk ZS9jb21tb24va21ncl91dGlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAuLmNhMjY0ZGI3MjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jb21tb24va21n cl91dGlscy5oCkBAIC0wLDAgKzEsOTQgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIGtt Z3JfdXRpbHMuaAorICoJCURlY2xhcmF0aW9ucyBmb3IgdXRpbGl0eSBmdW5jdGlvbiBmb3IgZmls ZSBlbmNyeXB0aW9uIGtleQorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAyMSwgUG9z dGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqCisgKiBzcmMvaW5jbHVkZS9jb21t b24va21ncl91dGlscy5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpZm5kZWYgS01H Ul9VVElMU19ICisjZGVmaW5lIEtNR1JfVVRJTFNfSAorCisjaW5jbHVkZSAiY29tbW9uL2NpcGhl ci5oIgorCisvKiBDdXJyZW50IHZlcnNpb24gbnVtYmVyICovCisjZGVmaW5lIEtNR1JfVkVSU0lP TiAxCisKKy8qCisgKiBEaXJlY3RvcmllcyB3aGVyZSBjbHVzdGVyIGZpbGUgZW5jcnlwdGlvbiBr ZXlzIHJlc2lkZSB3aXRoaW4gUEdEQVRBLgorICovCisjZGVmaW5lIEtNR1JfRElSCQkJInBnX2Ny eXB0b2tleXMiCisjZGVmaW5lIEtNR1JfRElSX1BJRAkJS01HUl9ESVIiL3BnX2FsdGVyY2tleS5w aWQiCisjZGVmaW5lIExJVkVfS01HUl9ESVIJCUtNR1JfRElSIi9saXZlIgorLyogdXNlZCBkdXJp bmcgY2x1c3RlciBrZXkgcm90YXRpb24gKi8KKyNkZWZpbmUgTkVXX0tNR1JfRElSCQlLTUdSX0RJ UiIvbmV3IgorI2RlZmluZSBPTERfS01HUl9ESVIJCUtNR1JfRElSIi9vbGQiCisKKy8qIENyeXB0 b0tleSBmaWxlIG5hbWUgaXMga2V5cyBpZCAqLworI2RlZmluZSBDcnlwdG9LZXlGaWxlUGF0aChw YXRoLCBkaXIsIGlkKSBcCisJc25wcmludGYoKHBhdGgpLCBNQVhQR1BBVEgsICIlcy8lcy53a2V5 IiwgKGRpciksICh3a2V5X2ZpbGVuYW1lc1tpZF0pKQorCisvKgorICogSWRlbnRpZmllcnMgb2Yg aW50ZXJuYWwga2V5cy4KKyAqLworI2RlZmluZSBLTUdSX0tFWV9JRF9SRUwgCQkwCisjZGVmaW5l IEtNR1JfS0VZX0lEX1dBTCAJCTEKKyNkZWZpbmUgS01HUl9OVU1fREFUQV9LRVlTCTIKKworLyog V2UgYWx3YXlzLCB0b2RheSwgdXNlIGEgMjU2LWJpdCBBRVMga2V5LiAqLworI2RlZmluZSBLTUdS X0NMVVNURVJfS0VZX0xFTiAJUEdfQUVTMjU2X0tFWV9MRU4KKworLyogZG91YmxlIGZvciBoZXgg Zm9ybWF0LCBwbHVzIHNvbWUgZm9yIHNwYWNlcywgXHIsXG4sIGFuZCBudWxsIGJ5dGUgKi8KKyNk ZWZpbmUgQUxMT0NfS01HUl9DTFVTVEVSX0tFWV9MRU4JKEtNR1JfQ0xVU1RFUl9LRVlfTEVOICog MiArIDEwICsgMiArIDEpCisKKy8qIE1heGltdW0gbGVuZ3RoIG9mIGtleSB0aGUga2V5IG1hbmFn ZXIgY2FuIHN0b3JlICovCisjZGVmaW5lIEtNR1JfTUFYX0tFWV9MRU4JCQkyNTYKKyNkZWZpbmUg S01HUl9NQVhfS0VZX0xFTl9CWVRFUwkJS01HUl9NQVhfS0VZX0xFTiAvIDgKKworCisvKgorICog Q3J5cHRvZ3JhcGhpYyBrZXkgZGF0YSBzdHJ1Y3R1cmUuCisgKgorICogVGhpcyBpcyB0aGUgc3Ry dWN0dXJlIHdlIHVzZSB0byB3cml0ZSBvdXQgdGhlIGVuY3J5cHRlZCBrZXlzIGFuZAorICogd2hp Y2ggd2UgdXNlIHRvIHN0b3JlIHRoZSBrZXlzIGluIHNoYXJlZCBtZW1vcnkuCisgKgorICogTm90 ZSB0aGF0IHdyYXBwaW5nIHRoaXMgc3RydWN0dXJlIHJlc3VsdHMgaW4gYW4gZW5jcnlwdGVkIGJ5 dGUKKyAqIHN0cmluZyB3aGljaCBpcyB3aGF0IHdlIGFjdHVhbGx5IHdyaXRlIGFuZCB0aGVuIHJl YWQgYmFjayBpbi4KKyAqCisgKiBrbGVuIGlzIHRoZSBrZXkgbGVuZ3RoIGluIGJ5dGVzCisgKiBr ZXkgaXMgdGhlIGVuY3J5cHRpb24ga2V5IG9mIGtsZW4gbGVuZ3RoCisgKi8KK3R5cGVkZWYgc3Ry dWN0IENyeXB0b0tleQoreworCWludAkJCWtsZW47CQkJLyoga2V5IGxlbmd0aCBpbiBieXRlcyAq LworCXVuc2lnbmVkIGNoYXIga2V5W0tNR1JfTUFYX0tFWV9MRU5fQllURVNdOworfSBDcnlwdG9L ZXk7CisKKy8qIEVuY3J5cHRpb24gbWV0aG9kIGFycmF5ICovCit0eXBlZGVmIHN0cnVjdCBlbmNy eXB0aW9uX21ldGhvZAoreworCWNvbnN0IGNoYXIgKm5hbWU7CisJY29uc3QgaW50CWJpdF9sZW5n dGg7Cit9IGVuY3J5cHRpb25fbWV0aG9kOworCisjZGVmaW5lIE5VTV9FTkNSWVBUSU9OX01FVEhP RFMJNAorI2RlZmluZSBESVNBQkxFRF9FTkNSWVBUSU9OX01FVEhPRCAwCisjZGVmaW5lIERFRkFV TFRfRU5BQkxFRF9FTkNSWVBUSU9OX01FVEhPRCAxCisKK2V4dGVybiBlbmNyeXB0aW9uX21ldGhv ZCBlbmNyeXB0aW9uX21ldGhvZHNbTlVNX0VOQ1JZUFRJT05fTUVUSE9EU107CitleHRlcm4gY2hh ciAqd2tleV9maWxlbmFtZXNbS01HUl9OVU1fREFUQV9LRVlTXTsKKworZXh0ZXJuIGJvb2wga21n cl93cmFwX2RhdGFfa2V5KFBnQ2lwaGVyQ3R4ICpjdHgsIENyeXB0b0tleSAqaW4sIHVuc2lnbmVk IGNoYXIgKm91dCwgaW50ICpvdXRsZW4pOworZXh0ZXJuIGJvb2wga21ncl91bndyYXBfZGF0YV9r ZXkoUGdDaXBoZXJDdHggKmN0eCwgdW5zaWduZWQgY2hhciAqaW4sIGludCBpbmxlbiwgQ3J5cHRv S2V5ICpvdXQpOworZXh0ZXJuIGJvb2wga21ncl92ZXJpZnlfY2x1c3Rlcl9rZXkodW5zaWduZWQg Y2hhciAqY2x1c3Rlcl9rZXksCisJCQkJCQkJCQl1bnNpZ25lZCBjaGFyICoqaW5fa2V5cywgaW50 ICprbGVucywgQ3J5cHRvS2V5ICpvdXRfa2V5cyk7CitleHRlcm4gaW50CWttZ3JfcnVuX2NsdXN0 ZXJfa2V5X2NvbW1hbmQoY2hhciAqY2x1c3Rlcl9rZXlfY29tbWFuZCwKKwkJCQkJCQkJCQkgY2hh ciAqYnVmLCBpbnQgc2l6ZSwgY2hhciAqZGlyLAorCQkJCQkJCQkJCSBpbnQgdGVybWluYWxfZmQp OworZXh0ZXJuIHZvaWQga21ncl9yZWFkX3dyYXBwZWRfZGF0YV9rZXlzKGNvbnN0IGNoYXIgKnBh dGgsIHVuc2lnbmVkIGNoYXIgKiprZXlzLAorCQkJCQkJCQkJCWludCAqa2V5X2xlbnMpOworCisj ZW5kaWYJCQkJCQkJLyogS01HUl9VVElMU19IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91 dGlscy93YWl0X2V2ZW50LmggYi9zcmMvaW5jbHVkZS91dGlscy93YWl0X2V2ZW50LmgKaW5kZXgg NmYyZDU2MTJlMC4uNGIwNDlmMmFiNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvd2Fp dF9ldmVudC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3dhaXRfZXZlbnQuaApAQCAtMTgwLDYg KzE4MCw5IEBAIHR5cGVkZWYgZW51bQogCVdBSVRfRVZFTlRfREFUQV9GSUxFX1dSSVRFLAogCVdB SVRfRVZFTlRfRFNNX0FMTE9DQVRFLAogCVdBSVRfRVZFTlRfRFNNX0ZJTExfWkVST19XUklURSwK KwlXQUlUX0VWRU5UX0tFWV9GSUxFX1JFQUQsCisJV0FJVF9FVkVOVF9LRVlfRklMRV9XUklURSwK KwlXQUlUX0VWRU5UX0tFWV9GSUxFX1NZTkMsCiAJV0FJVF9FVkVOVF9MT0NLX0ZJTEVfQUREVE9E QVRBRElSX1JFQUQsCiAJV0FJVF9FVkVOVF9MT0NLX0ZJTEVfQUREVE9EQVRBRElSX1NZTkMsCiAJ V0FJVF9FVkVOVF9MT0NLX0ZJTEVfQUREVE9EQVRBRElSX1dSSVRFLApkaWZmIC0tZ2l0IGEvc3Jj L3Rvb2xzL21zdmMvTWt2Y2J1aWxkLnBtIGIvc3JjL3Rvb2xzL21zdmMvTWt2Y2J1aWxkLnBtCmlu ZGV4IDgzYTNlNDA0MjUuLjdjNDQ4MTgzZjQgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9tc3ZjL01r dmNidWlsZC5wbQorKysgYi9zcmMvdG9vbHMvbXN2Yy9Na3ZjYnVpbGQucG0KQEAgLTEzNiwxOSAr MTM2LDIxIEBAIHN1YiBta3ZjYnVpbGQKIAkgIGFyY2hpdmUuYyBiYXNlNjQuYyBjaGVja3N1bV9o ZWxwZXIuYyBjb21wcmVzc2lvbi5jCiAJICBjb25maWdfaW5mby5jIGNvbnRyb2xkYXRhX3V0aWxz LmMgZDJzLmMgZW5jbmFtZXMuYyBleGVjLmMKIAkgIGYycy5jIGZpbGVfcGVybS5jIGZpbGVfdXRp bHMuYyBoYXNoZm4uYyBpcC5jIGpzb25hcGkuYwotCSAga2V5d29yZHMuYyBrd2xvb2t1cC5jIGxp bmstY2FuYXJ5LmMgbWQ1X2NvbW1vbi5jCisJICBrZXl3b3Jkcy5jIGttZ3JfdXRpbHMuYyBrd2xv b2t1cC5jIGxpbmstY2FuYXJ5LmMgbWQ1X2NvbW1vbi5jCiAJICBwZ19nZXRfbGluZS5jIHBnX2x6 Y29tcHJlc3MuYyBwZ19wcm5nLmMgcGdmbmFtZXMuYyBwc3ByaW50Zi5jIHJlbHBhdGguYwogCSAg cm10cmVlLmMgc2FzbHByZXAuYyBzY3JhbS1jb21tb24uYyBzdHJpbmcuYyBzdHJpbmdpbmZvLmMg dW5pY29kZV9ub3JtLmMKIAkgIHVzZXJuYW1lLmMgd2FpdF9lcnJvci5jIHdjaGFyLmMpOwogCiAJ aWYgKCRzb2x1dGlvbi0+e29wdGlvbnN9LT57b3BlbnNzbH0pCiAJeworCQlwdXNoKEBwZ2NvbW1v bmFsbGZpbGVzLCAnY2lwaGVyX29wZW5zc2wuYycpOwogCQlwdXNoKEBwZ2NvbW1vbmFsbGZpbGVz LCAnY3J5cHRvaGFzaF9vcGVuc3NsLmMnKTsKIAkJcHVzaChAcGdjb21tb25hbGxmaWxlcywgJ2ht YWNfb3BlbnNzbC5jJyk7CiAJCXB1c2goQHBnY29tbW9uYWxsZmlsZXMsICdwcm90b2NvbF9vcGVu c3NsLmMnKTsKIAl9CiAJZWxzZQogCXsKKwkJcHVzaChAcGdjb21tb25hbGxmaWxlcywgJ2NpcGhl ci5jJyk7CiAJCXB1c2goQHBnY29tbW9uYWxsZmlsZXMsICdjcnlwdG9oYXNoLmMnKTsKIAkJcHVz aChAcGdjb21tb25hbGxmaWxlcywgJ2htYWMuYycpOwogCQlwdXNoKEBwZ2NvbW1vbmFsbGZpbGVz LCAnbWQ1LmMnKTsKLS0gCjIuMzcuMCAoQXBwbGUgR2l0LTEzNikKCg== --000000000000cbfbc705ebca4b20 Content-Type: application/octet-stream; name="0005-cfe-05-crypto_over_cfe-04-common-squash-commit.patch" Content-Disposition: attachment; filename="0005-cfe-05-crypto_over_cfe-04-common-squash-commit.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l9mztifv4 RnJvbSA0MWM0OTY5M2FiNGRmNDVkNDBlYmRkNjJhMjI3ZTY3MzJlN2ZlYzlhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCcnVjZSBNb21qaWFuIDxicnVjZUBtb21qaWFuLnVzPgpEYXRl OiBGcmksIDI1IEp1biAyMDIxIDE2OjU2OjUxIC0wNDAwClN1YmplY3Q6IFtQQVRDSCAwNS8xMl0g Y2ZlLTA1LWNyeXB0b19vdmVyX2NmZS0wNC1jb21tb24gc3F1YXNoIGNvbW1pdAoKLS0tCiBkb2Mv c3JjL3NnbWwvY29uZmlnLnNnbWwgICAgfCAxMjAgKysrKysrKystLQogc3JjL2JhY2tlbmQvY3J5 cHRvL01ha2VmaWxlIHwgIDE4ICsrCiBzcmMvYmFja2VuZC9jcnlwdG8va21nci5jICAgfCA0Mzgg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvY29tbW9uL2ttZ3JfdXRp bHMuYyAgICAgfCAgIDMgKy0KIHNyYy9pbmNsdWRlL2NyeXB0by9rbWdyLmggICB8ICAyNSArKwog NSBmaWxlcyBjaGFuZ2VkLCA1ODggaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvY3J5cHRvL01ha2VmaWxlCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjL2JhY2tlbmQvY3J5cHRvL2ttZ3IuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9p bmNsdWRlL2NyeXB0by9rbWdyLmgKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNn bWwgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggNmM2NDkzMzZlMS4uNjllZTU1YTU2 OCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9jb25maWcuc2dtbApAQCAtMTU1OCwxOSArMTU1OCwzMSBAQCBpbmNsdWRlX2RpciAnY29uZi5k JwogICAgICAgICBtZWNoYW5pc20gaXMgdXNlZC4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBh cmE+Ci0gICAgICAgIFRoZSBjb21tYW5kIG11c3QgcHJpbnQgdGhlIHBhc3NwaHJhc2UgdG8gdGhl IHN0YW5kYXJkIG91dHB1dCBhbmQgZXhpdAotICAgICAgICB3aXRoIGNvZGUgMC4gIEluIHRoZSBw YXJhbWV0ZXIgdmFsdWUsIDxsaXRlcmFsPiVwPC9saXRlcmFsPiBpcwotICAgICAgICByZXBsYWNl ZCBieSBhIHByb21wdCBzdHJpbmcuICAoV3JpdGUgPGxpdGVyYWw+JSU8L2xpdGVyYWw+IGZvciBh Ci0gICAgICAgIGxpdGVyYWwgPGxpdGVyYWw+JTwvbGl0ZXJhbD4uKSAgTm90ZSB0aGF0IHRoZSBw cm9tcHQgc3RyaW5nIHdpbGwKLSAgICAgICAgcHJvYmFibHkgY29udGFpbiB3aGl0ZXNwYWNlLCBz byBiZSBzdXJlIHRvIHF1b3RlIGFkZXF1YXRlbHkuICBBIHNpbmdsZQotICAgICAgICBuZXdsaW5l IGlzIHN0cmlwcGVkIGZyb20gdGhlIGVuZCBvZiB0aGUgb3V0cHV0IGlmIHByZXNlbnQuCisgICAg ICAgIFRoZSBjb21tYW5kIG11c3QgcHJpbnQgdGhlIHBhc3NwaHJhc2UgdG8gdGhlIHN0YW5kYXJk IG91dHB1dAorICAgICAgICBhbmQgZXhpdCB3aXRoIGNvZGUgMC4gIEl0IGNhbiBwcm9tcHQgZnJv bSB0aGUgdGVybWluYWwgaWYKKyAgICAgICAgPG9wdGlvbj4tLWF1dGhwcm9tcHQ8L29wdGlvbj4g aXMgdXNlZC4gIEluIHRoZSBwYXJhbWV0ZXIKKyAgICAgICAgdmFsdWUsIDxsaXRlcmFsPiVSPC9s aXRlcmFsPiBpcyByZXBsYWNlZCBieSBhIGZpbGUgZGVzY3JpcHRvcgorICAgICAgICBudW1iZXIg b3BlbmVkIHRvIHRoZSB0ZXJtaW5hbCB0aGF0IHN0YXJ0ZWQgdGhlIHNlcnZlci4gIEEgZmlsZQor ICAgICAgICBkZXNjcmlwdG9yIGlzIG9ubHkgYXZhaWxhYmxlIGlmIGVuYWJsZWQgYXQgc2VydmVy IHN0YXJ0IHZpYQorICAgICAgICA8b3B0aW9uPi1SPC9vcHRpb24+LiAgSWYgPGxpdGVyYWw+JVI8 L2xpdGVyYWw+IGlzIHNwZWNpZmllZCBhbmQKKyAgICAgICAgbm8gZmlsZSBkZXNjcmlwdG9yIGlz IGF2YWlsYWJsZSwgdGhlIHNlcnZlciB3aWxsIG5vdCBzdGFydC4gIFZhbHVlCisgICAgICAgIDxs aXRlcmFsPiVwPC9saXRlcmFsPiBpcyByZXBsYWNlZCBieSBhIHByZS1kZWZpbmVkIHByb21wdCBz dHJpbmcuCisgICAgICAgIChXcml0ZSA8bGl0ZXJhbD4lJTwvbGl0ZXJhbD4gZm9yIGEgbGl0ZXJh bCA8bGl0ZXJhbD4lPC9saXRlcmFsPi4pCisgICAgICAgIE5vdGUgdGhhdCB0aGUgcHJvbXB0IHN0 cmluZyB3aWxsIHByb2JhYmx5IGNvbnRhaW4gd2hpdGVzcGFjZSwKKyAgICAgICAgc28gYmUgc3Vy ZSB0byBxdW90ZSBpdHMgdXNlIGFkZXF1YXRlbHkuICBOZXdsaW5lcyBhcmUgc3RyaXBwZWQKKyAg ICAgICAgZnJvbSB0aGUgZW5kIG9mIHRoZSBvdXRwdXQgaWYgcHJlc2VudC4KICAgICAgICA8L3Bh cmE+CisKICAgICAgICA8cGFyYT4KLSAgICAgICAgVGhlIGNvbW1hbmQgZG9lcyBub3QgYWN0dWFs bHkgaGF2ZSB0byBwcm9tcHQgdGhlIHVzZXIgZm9yIGEKLSAgICAgICAgcGFzc3BocmFzZS4gIEl0 IGNhbiByZWFkIGl0IGZyb20gYSBmaWxlLCBvYnRhaW4gaXQgZnJvbSBhIGtleWNoYWluCi0gICAg ICAgIGZhY2lsaXR5LCBvciBzaW1pbGFyLiAgSXQgaXMgdXAgdG8gdGhlIHVzZXIgdG8gbWFrZSBz dXJlIHRoZSBjaG9zZW4KLSAgICAgICAgbWVjaGFuaXNtIGlzIGFkZXF1YXRlbHkgc2VjdXJlLgor ICAgICAgICBTYW1wbGUgc2NyaXB0cyBjYW4gYmUgZm91bmQgaW4KKyAgICAgICAgPGZpbGVuYW1l PiRTSEFSRURJUi9hdXRoX2NvbW1hbmRzPC9maWxlbmFtZT4sCisgICAgICAgIHdoZXJlIDxsaXRl cmFsPiRTSEFSRURJUjwvbGl0ZXJhbD4gbWVhbnMgdGhlCisgICAgICAgIDxwcm9kdWN0bmFtZT5Q b3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gaW5zdGFsbGF0aW9uJ3Mgc2hhcmVkLWRhdGEKKyAgICAg ICAgZGlyZWN0b3J5LCBvZnRlbiA8ZmlsZW5hbWU+L3Vzci9sb2NhbC9zaGFyZS9wb3N0Z3Jlc3Fs PC9maWxlbmFtZT4KKyAgICAgICAgKHVzZSA8Y29tbWFuZD5wZ19jb25maWcgLS1zaGFyZWRpcjwv Y29tbWFuZD4gdG8gZGV0ZXJtaW5lIGl0IGlmCisgICAgICAgIHlvdSdyZSBub3Qgc3VyZSkuCiAg ICAgICAgPC9wYXJhPgorCiAgICAgICAgPHBhcmE+CiAgICAgICAgIFRoaXMgcGFyYW1ldGVyIGNh biBvbmx5IGJlIHNldCBpbiB0aGUgPGZpbGVuYW1lPnBvc3RncmVzcWwuY29uZjwvZmlsZW5hbWU+ CiAgICAgICAgIGZpbGUgb3Igb24gdGhlIHNlcnZlciBjb21tYW5kIGxpbmUuCkBAIC0xNTkyLDEw ICsxNjA0LDEyIEBAIGluY2x1ZGVfZGlyICdjb25mLmQnCiAgICAgICAgIHBhcmFtZXRlciBpcyBv ZmYgKHRoZSBkZWZhdWx0KSwgdGhlbgogICAgICAgICA8dmFybmFtZT5zc2xfcGFzc3BocmFzZV9j b21tYW5kPC92YXJuYW1lPiB3aWxsIGJlIGlnbm9yZWQgZHVyaW5nIGEKICAgICAgICAgcmVsb2Fk IGFuZCB0aGUgU1NMIGNvbmZpZ3VyYXRpb24gd2lsbCBub3QgYmUgcmVsb2FkZWQgaWYgYSBwYXNz cGhyYXNlCi0gICAgICAgIGlzIG5lZWRlZC4gIFRoYXQgc2V0dGluZyBpcyBhcHByb3ByaWF0ZSBm b3IgYSBjb21tYW5kIHRoYXQgcmVxdWlyZXMgYQotICAgICAgICBUVFkgZm9yIHByb21wdGluZywg d2hpY2ggbWlnaHQgbm90IGJlIGF2YWlsYWJsZSB3aGVuIHRoZSBzZXJ2ZXIgaXMKLSAgICAgICAg cnVubmluZy4gIFNldHRpbmcgdGhpcyBwYXJhbWV0ZXIgdG8gb24gbWlnaHQgYmUgYXBwcm9wcmlh dGUgaWYgdGhlCi0gICAgICAgIHBhc3NwaHJhc2UgaXMgb2J0YWluZWQgZnJvbSBhIGZpbGUsIGZv ciBleGFtcGxlLgorICAgICAgICBpcyBuZWVkZWQuICBUaGlzIHNldHRpbmcgaXMgYXBwcm9wcmlh dGUgZm9yIGEgY29tbWFuZCB0aGF0IHJlcXVpcmVzIGEKKyAgICAgICAgdGVybWluYWwgZm9yIHBy b21wdGluZywgd2hpY2ggd2lsbCBsaWtlbHkgbm90IGJlIGF2YWlsYWJsZSB3aGVuIHRoZSBzZXJ2 ZXIgaXMKKyAgICAgICAgcnVubmluZy4gICg8b3B0aW9uPi0tYXV0aHByb21wdDwvb3B0aW9uPiBj bG9zZXMgdGhlIHRlcm1pbmFsIGZpbGUKKyAgICAgICAgZGVzY3JpcHRvciBzb29uIGFmdGVyIHNl cnZlciBzdGFydC4pICAgU2V0dGluZyB0aGlzIHBhcmFtZXRlciBvbgorICAgICAgICBtaWdodCBi ZSBhcHByb3ByaWF0ZSwgZm9yIGV4YW1wbGUsIGlmIHRoZSBwYXNzcGhyYXNlIGlzIG9idGFpbmVk CisgICAgICAgIGZyb20gYSBmaWxlLgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAg ICAgICAgVGhpcyBwYXJhbWV0ZXIgY2FuIG9ubHkgYmUgc2V0IGluIHRoZSA8ZmlsZW5hbWU+cG9z dGdyZXNxbC5jb25mPC9maWxlbmFtZT4KQEAgLTI3OTQsNyArMjgwOCw5IEBAIGluY2x1ZGVfZGly ICdjb25mLmQnCiAgICAgICAgIDx2YXJuYW1lPm1heF93YWxfc2VuZGVyczwvdmFybmFtZT4gaXMg bm9uLXplcm8uCiAgICAgICAgIE5vdGUgdGhhdCBjaGFuZ2luZyA8dmFybmFtZT53YWxfbGV2ZWw8 L3Zhcm5hbWU+IHRvCiAgICAgICAgIDxsaXRlcmFsPm1pbmltYWw8L2xpdGVyYWw+IG1ha2VzIHBy ZXZpb3VzIGJhc2UgYmFja3VwcyB1bnVzYWJsZQotICAgICAgICBmb3IgcG9pbnQtaW4tdGltZSBy ZWNvdmVyeSBhbmQgc3RhbmRieSBzZXJ2ZXJzLgorICAgICAgICBmb3IgcG9pbnQtaW4tdGltZSBy ZWNvdmVyeSBhbmQgc3RhbmRieSBzZXJ2ZXJzLCB3aGljaCBtYXkKKyAgICAgICAgbGVhZCB0byBk YXRhIGxvc3MuICBDbHVzdGVyIGZpbGUgZW5jcnlwdGlvbiBhbHNvIGRvZXMgbm90IHN1cHBvcnQK KyAgICAgICAgPHZhcm5hbWU+d2FsX2xldmVsPC92YXJuYW1lPiA8bGl0ZXJhbD5taW5pbWFsPC9s aXRlcmFsPi4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgIEluIDxsaXRl cmFsPmxvZ2ljYWw8L2xpdGVyYWw+IGxldmVsLCB0aGUgc2FtZSBpbmZvcm1hdGlvbiBpcyBsb2dn ZWQgYXMKQEAgLTg0ODMsNiArODQ5OSw2NCBAQCBDT1BZIHBvc3RncmVzX2xvZyBGUk9NICcvZnVs bC9wYXRoL3RvL2xvZ2ZpbGUuY3N2JyBXSVRIIGNzdjsKICAgICA8L3ZhcmlhYmxlbGlzdD4KICAg IDwvc2VjdDE+CiAKKyAgIDxzZWN0MSBpZD0icnVudGltZS1jb25maWctZW5jcnlwdGlvbiI+Cisg ICAgPHRpdGxlPkNsdXN0ZXIgRmlsZSBFbmNyeXB0aW9uPC90aXRsZT4KKworICAgIDx2YXJpYWJs ZWxpc3Q+CisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1jbHVzdGVyLWtleS1jb21tYW5kIiB4 cmVmbGFiZWw9ImNsdXN0ZXJfa2V5X2NvbW1hbmQiPgorICAgICAgPHRlcm0+PHZhcm5hbWU+Y2x1 c3Rlcl9rZXlfY29tbWFuZDwvdmFybmFtZT4gKDx0eXBlPnN0cmluZzwvdHlwZT4pCisgICAgICA8 aW5kZXh0ZXJtPgorICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPmNsdXN0ZXJfa2V5X2NvbW1hbmQ8 L3Zhcm5hbWU+IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgPC9pbmRl eHRlcm0+CisgICAgICA8L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+Cisg ICAgICAgIFRoaXMgb3B0aW9uIHNwZWNpZmllcyBhbiBleHRlcm5hbCBjb21tYW5kIHRvIG9idGFp biB0aGUgY2x1c3Rlci1sZXZlbAorICAgICAgICBrZXkgZm9yIGNsdXN0ZXIgZmlsZSBlbmNyeXB0 aW9uIGR1cmluZyBzZXJ2ZXIgaW5pdGlhbGl6YXRpb24gYW5kCisgICAgICAgIHNlcnZlciBzdGFy dC4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBjb21tYW5kIG11 c3QgcHJpbnQgdGhlIGNsdXN0ZXIga2V5IHRvIHRoZSBzdGFuZGFyZAorICAgICAgICBvdXRwdXQg YXMgNjQgaGV4YWRlY2ltYWwgY2hhcmFjdGVycywgYW5kIGV4aXQgd2l0aCBjb2RlIDAuCisgICAg ICAgIFRoZSBjb21tYW5kIGNhbiBwcm9tcHQgZm9yIHRoZSBwYXNzcGhyYXNlIG9yIFBJTiBmcm9t IHRoZQorICAgICAgICB0ZXJtaW5hbCBpZiA8b3B0aW9uPi0tYXV0aHByb21wdDwvb3B0aW9uPiBp cyB1c2VkLiAgSW4gdGhlCisgICAgICAgIHBhcmFtZXRlciB2YWx1ZSwgPGxpdGVyYWw+JVI8L2xp dGVyYWw+IGlzIHJlcGxhY2VkIGJ5IGEgZmlsZQorICAgICAgICBkZXNjcmlwdG9yIG51bWJlciBv cGVuZWQgdG8gdGhlIHRlcm1pbmFsIHRoYXQgc3RhcnRlZCB0aGUgc2VydmVyLgorICAgICAgICBB IGZpbGUgZGVzY3JpcHRvciBpcyBvbmx5IGF2YWlsYWJsZSBpZiBlbmFibGVkIGF0IHNlcnZlciBz dGFydAorICAgICAgICB2aWEgPG9wdGlvbj4tUjwvb3B0aW9uPi4gIElmIDxsaXRlcmFsPiVSPC9s aXRlcmFsPiBpcyBzcGVjaWZpZWQKKyAgICAgICAgYW5kIG5vIGZpbGUgZGVzY3JpcHRvciBpcyBh dmFpbGFibGUsIHRoZSBzZXJ2ZXIgd2lsbCBub3Qgc3RhcnQuCisgICAgICAgIFZhbHVlIDxsaXRl cmFsPiVwPC9saXRlcmFsPiBpcyByZXBsYWNlZCBieSBhIHByZS1kZWZpbmVkCisgICAgICAgIHBy b21wdCBzdHJpbmcuICBWYWx1ZSA8bGl0ZXJhbD4lZDwvbGl0ZXJhbD4gaXMgcmVwbGFjZWQgYnkg dGhlCisgICAgICAgIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBrZXlzOyAgdGhpcyBpcyB1c2Vm dWwgaWYgdGhlIGNvbW1hbmQKKyAgICAgICAgbXVzdCBjcmVhdGUgZmlsZXMgd2l0aCB0aGUga2V5 cywgZS5nLiwgdG8gc3RvcmUgYSBjbHVzdGVyLWxldmVsCisgICAgICAgIGtleSBlbmNyeXB0ZWQg YnkgYSBrZXkgc3RvcmVkIGluIGEgaGFyZHdhcmUgc2VjdXJpdHkgbW9kdWxlLgorICAgICAgICAo V3JpdGUgPGxpdGVyYWw+JSU8L2xpdGVyYWw+IGZvciBhIGxpdGVyYWwgPGxpdGVyYWw+JTwvbGl0 ZXJhbD4uKQorICAgICAgICBOb3RlIHRoYXQgdGhlIHByb21wdCBzdHJpbmcgd2lsbCBwcm9iYWJs eSBjb250YWluIHdoaXRlc3BhY2UsCisgICAgICAgIHNvIGJlIHN1cmUgdG8gcXVvdGUgaXRzIHVz ZSBhZGVxdWF0ZWx5LiAgTmV3bGluZXMgYXJlIHN0cmlwcGVkCisgICAgICAgIGZyb20gdGhlIGVu ZCBvZiB0aGUgb3V0cHV0IGlmIHByZXNlbnQuCisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBh cmE+CisgICAgICAgIFNhbXBsZSBzY3JpcHQgY2FuIGJlIGZvdW5kIGluCisgICAgICAgIDxmaWxl bmFtZT4kU0hBUkVESVIvYXV0aF9jb21tYW5kczwvZmlsZW5hbWU+LAorICAgICAgICB3aGVyZSA8 bGl0ZXJhbD4kU0hBUkVESVI8L2xpdGVyYWw+IG1lYW5zIHRoZQorICAgICAgICA8cHJvZHVjdG5h bWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGluc3RhbGxhdGlvbidzIHNoYXJlZC1kYXRhCisg ICAgICAgIGRpcmVjdG9yeSwgb2Z0ZW4gPGZpbGVuYW1lPi91c3IvbG9jYWwvc2hhcmUvcG9zdGdy ZXNxbDwvZmlsZW5hbWU+CisgICAgICAgICh1c2UgPGNvbW1hbmQ+cGdfY29uZmlnIC0tc2hhcmVk aXI8L2NvbW1hbmQ+IHRvIGRldGVybWluZSBpdCBpZgorICAgICAgICB5b3UncmUgbm90IHN1cmUp LgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBUaGlzIHBhcmFtZXRl ciBjYW4gb25seSBiZSBzZXQgYnkKKyAgICAgICAgPGFwcGxpY2F0aW9uPmluaXRkYjwvYXBwbGlj YXRpb24+LCBpbiB0aGUKKyAgICAgICAgPGZpbGVuYW1lPnBvc3RncmVzcWwuY29uZjwvZmlsZW5h bWU+IGZpbGUsIG9yIG9uIHRoZSBzZXJ2ZXIKKyAgICAgICAgY29tbWFuZCBsaW5lLgorICAgICAg IDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorICAgIDwv dmFyaWFibGVsaXN0PgorICAgPC9zZWN0MT4KKwogICAgPHNlY3QxIGlkPSJydW50aW1lLWNvbmZp Zy1jbGllbnQiPgogICAgIDx0aXRsZT5DbGllbnQgQ29ubmVjdGlvbiBEZWZhdWx0czwvdGl0bGU+ CiAKQEAgLTEwNTA4LDYgKzEwNTgyLDIyIEBAIGR5bmFtaWNfbGlicmFyeV9wYXRoID0gJ0M6XHRv b2xzXHBvc3RncmVzcWw7SDpcbXlfcHJvamVjdFxsaWI7JGxpYmRpcicKICAgICAgIDwvbGlzdGl0 ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1m aWxlLWVuY3J5cHRpb24tbWV0aG9kIiB4cmVmbGFiZWw9ImZpbGVfZW5jcnlwdGlvbl9tZXRob2Qi PgorICAgICAgPHRlcm0+PHZhcm5hbWU+ZmlsZV9lbmNyeXB0aW9uX21ldGhvZDwvdmFybmFtZT4g KDx0eXBlPmJvb2xlYW48L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4KKyAgICAgICA8cHJpbWFy eT5DbHVzdGVyIGZpbGUgZW5jcnlwdGlvbiBtZXRob2Q8L3ByaW1hcnk+CisgICAgICA8L2luZGV4 dGVybT4KKyAgICAgIDwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAg ICAgICAgUmVwb3J0cyB0aGUgY2x1c3RlciBmaWxlCisgICAgICAgIGVuY3J5cHRpb24gbWV0aG9k LiAgU2VlIDx4cmVmCisgICAgICAgIGxpbmtlbmQ9ImFwcC1pbml0ZGItY2x1c3Rlci1rZXktY29t bWFuZCIvPiBmb3IgbW9yZQorICAgICAgICBpbmZvcm1hdGlvbi4KKyAgICAgICA8L3BhcmE+Cisg ICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8dmFybGlzdGVu dHJ5IGlkPSJndWMtZGF0YS1kaXJlY3RvcnktbW9kZSIgeHJlZmxhYmVsPSJkYXRhX2RpcmVjdG9y eV9tb2RlIj4KICAgICAgIDx0ZXJtPjx2YXJuYW1lPmRhdGFfZGlyZWN0b3J5X21vZGU8L3Zhcm5h bWU+ICg8dHlwZT5pbnRlZ2VyPC90eXBlPikKICAgICAgIDxpbmRleHRlcm0+CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jcnlwdG8vTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9jcnlwdG8vTWFrZWZp bGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYzI3MzYyMDI5ZAotLS0g L2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5kL2NyeXB0by9NYWtlZmlsZQpAQCAtMCwwICsxLDE4 IEBACisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIworIyBNYWtlZmlsZQorIyAgICBNYWtlZmlsZSBmb3Ig c3JjL2JhY2tlbmQvY3J5cHRvCisjCisjIElERU5USUZJQ0FUSU9OCisjICAgIHNyYy9iYWNrZW5k L2NyeXB0by9NYWtlZmlsZQorIworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworc3ViZGlyID0gc3JjL2Jh Y2tlbmQvY3J5cHRvCit0b3BfYnVpbGRkaXIgPSAuLi8uLi8uLgoraW5jbHVkZSAkKHRvcF9idWls ZGRpcikvc3JjL01ha2VmaWxlLmdsb2JhbAorCitPQkpTID0gXAorCWttZ3IubworCitpbmNsdWRl ICQodG9wX3NyY2Rpcikvc3JjL2JhY2tlbmQvY29tbW9uLm1rCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jcnlwdG8va21nci5jIGIvc3JjL2JhY2tlbmQvY3J5cHRvL2ttZ3IuYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi40Yjc0OTYxMzIzCi0tLSAvZGV2L251bGwKKysr IGIvc3JjL2JhY2tlbmQvY3J5cHRvL2ttZ3IuYwpAQCAtMCwwICsxLDQzOCBAQAorLyotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgKgorICoga21nci5jCisgKgkgQ2x1c3RlciBmaWxlIGVuY3J5cHRpb24gcm91 dGluZXMKKyAqCisgKiBDbHVzdGVyIGZpbGUgZW5jcnlwdGlvbiBpcyBlbmFibGVkIGlmIHVzZXIg cmVxdWVzdHMgaXQgZHVyaW5nIGluaXRkYi4KKyAqIER1cmluZyBib290c3RyYXAsIHdlIGdlbmVy YXRlIGRhdGEgZW5jcnlwdGlvbiBrZXlzLCB3cmFwIHRoZW0gd2l0aCB0aGUKKyAqIGNsdXN0ZXIt bGV2ZWwga2V5LCBhbmQgc3RvcmUgdGhlbSBpbnRvIGVhY2ggZmlsZSBsb2NhdGVkIGF0IEtNR1Jf RElSLgorICogRHVyaW5nIHN0YXJ0dXAsIHdlIGRlY3J5cHQgYWxsIGludGVybmFsIGtleXMgYW5k IGxvYWQgdGhlbSB0byB0aGUgc2hhcmVkCisgKiBtZW1vcnkuICBJbnRlcm5hbCBrZXlzIGluIHRo ZSBzaGFyZWQgbWVtb3J5IGFyZSByZWFkLW9ubHkuICBUaGUgd3JhcHBpbmcKKyAqIGFuZCB1bndy YXBwaW5nIGtleSByb3V0aW5lcyByZXF1aXJlIHRoZSBPcGVuU1NMIGxpYnJhcnkuCisgKgorICog Q29weXJpZ2h0IChjKSAyMDIxLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAor ICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNyYy9iYWNrZW5kL2NyeXB0by9rbWdyLmMKKyAq LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVk ZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworI2luY2x1ZGUgImZ1bmNhcGku aCIKKyNpbmNsdWRlICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJwZ3N0YXQuaCIKKworI2luY2x1 ZGUgImFjY2Vzcy94bG9nLmgiCisjaW5jbHVkZSAiY29tbW9uL2ZpbGVfcGVybS5oIgorI2luY2x1 ZGUgImNvbW1vbi9rbWdyX3V0aWxzLmgiCisjaW5jbHVkZSAiY29tbW9uL3NoYTIuaCIKKyNpbmNs dWRlICJhY2Nlc3MveGxvZy5oIgorI2luY2x1ZGUgImNvbW1vbi9jb250cm9sZGF0YV91dGlscy5o IgorI2luY2x1ZGUgImNyeXB0by9rbWdyLmgiCisjaW5jbHVkZSAicG9zdG1hc3Rlci9wb3N0bWFz dGVyLmgiCisjaW5jbHVkZSAic3RvcmFnZS9jb3B5ZGlyLmgiCisjaW5jbHVkZSAic3RvcmFnZS9m ZC5oIgorI2luY2x1ZGUgInN0b3JhZ2UvaXBjLmgiCisjaW5jbHVkZSAic3RvcmFnZS9zaG1lbS5o IgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMu aCIKKy8qIFN0cnVjdCBzdG9yZXMgZmlsZSBlbmNyeXB0aW9uIGtleXMgaW4gcGxhaW50ZXh0IGZv cm1hdCAqLwordHlwZWRlZiBzdHJ1Y3QgS21nclNobWVtRGF0YQoreworCUNyeXB0b0tleQlpbnRs S2V5c1tLTUdSX05VTV9EQVRBX0tFWVNdOworfSBLbWdyU2htZW1EYXRhOworc3RhdGljIEttZ3JT aG1lbURhdGEgKkttZ3JTaG1lbTsKKworLyogR1VDIHZhcmlhYmxlcyAqLworY2hhcgkgICAqY2x1 c3Rlcl9rZXlfY29tbWFuZCA9IE5VTEw7CisKK0NyeXB0b0tleQlib290c3RyYXBfa2V5c1tLTUdS X05VTV9EQVRBX0tFWVNdOworCitleHRlcm4gY2hhciAqYm9vdHN0cmFwX29sZF9rZXlfZGF0YWRp cjsKK2V4dGVybiBpbnQJYm9vdHN0cmFwX2ZpbGVfZW5jcnlwdGlvbl9tZXRob2Q7CisKK3N0YXRp YyB2b2lkIGJ6ZXJvS21ncktleXMoaW50IHN0YXR1cywgRGF0dW0gYXJnKTsKK3N0YXRpYyB2b2lk IEttZ3JXcml0ZUNyeXB0b0tleXMoY29uc3QgY2hhciAqZGlyLCB1bnNpZ25lZCBjaGFyICoqa2V5 cywgaW50ICprZXlfbGVucyk7CitzdGF0aWMgQ3J5cHRvS2V5ICpnZW5lcmF0ZV9jcnlwdG9fa2V5 KGludCBsZW4pOworCisvKgorICogVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCBPTkNFIGR1 cmluZyBpbml0ZGIuICBJdCBjcmVhdGVzIHRoZSBERUsKKyAqIGZpbGVzIHdyYXBwZWQgd2l0aCB0 aGUgS0VLIHN1cHBsaWVkIGJ5IGttZ3JfcnVuX2NsdXN0ZXJfa2V5X2NvbW1hbmQoKS4KKyAqIFRo ZXJlIGlzIGFsc28gYW4gb3B0aW9uIGZvciB0aGUga2V5cyB0byBiZSBjb3BpZWQgZnJvbSBhbm90 aGVyIGNsdXN0ZXIuCisgKi8KK3ZvaWQKK0Jvb3RTdHJhcEttZ3Iodm9pZCkKK3sKKwljaGFyCQls aXZlX3BhdGhbTUFYUEdQQVRIXTsKKwl1bnNpZ25lZCBjaGFyICprZXlzX3dyYXBbS01HUl9OVU1f REFUQV9LRVlTXTsKKwlpbnQJCQlrZXlfbGVuc1tLTUdSX05VTV9EQVRBX0tFWVNdOworCWNoYXIJ CWNsdXN0ZXJfa2V5X2hleFtBTExPQ19LTUdSX0NMVVNURVJfS0VZX0xFTl07CisJaW50CQkJY2x1 c3Rlcl9rZXlfaGV4X2xlbjsKKwl1bnNpZ25lZCBjaGFyIGNsdXN0ZXJfa2V5W0tNR1JfQ0xVU1RF Ul9LRVlfTEVOXTsKKworCWlmICghRmlsZUVuY3J5cHRpb25FbmFibGVkKQorCQlyZXR1cm47CisK KyNpZm5kZWYgVVNFX09QRU5TU0wKKwllcmVwb3J0KEVSUk9SLAorCQkJKGVycmNvZGUoRVJSQ09E RV9DT05GSUdfRklMRV9FUlJPUiksCisJCQkgKGVycm1zZygiY2x1c3RlciBmaWxlIGVuY3J5cHRp b24gaXMgbm90IHN1cHBvcnRlZCBiZWNhdXNlIE9wZW5TU0wgaXMgbm90IHN1cHBvcnRlZCBieSB0 aGlzIGJ1aWxkIiksCisJCQkgIGVycmhpbnQoIkNvbXBpbGUgd2l0aCAtLXdpdGgtb3BlbnNzbCB0 byB1c2UgdGhpcyBmZWF0dXJlLiIpKSkpOworI2VuZGlmCisKKwkvKgorCSAqIFRoZXJlIGFyZSB0 b28gbWFueSBvcHRpbWl6YXRpb25zIGZvciB3YWxfbGV2ZWw9bWluaW1hbCB0aGF0IGRvbid0IHNl dAorCSAqIExTTnMgZm9yIHBlcm1hbmVudCB0YWJsZXMsIHNvIGp1c3QgZGlzYWxsb3cgaXQuCisJ ICovCisJaWYgKCFYTG9nSXNOZWVkZWQoKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29k ZShFUlJDT0RFX0NPTkZJR19GSUxFX0VSUk9SKSwKKwkJCQkgKGVycm1zZygiY2x1c3RlciBmaWxl IGVuY3J5cHRpb24gaXMgbm90IHN1cHBvcnRlZCB3aXRoIGEgd2FsX2xldmVsIG9mIFwibWluaW1h bFwiIikpKSk7CisKKwlzbnByaW50ZihsaXZlX3BhdGgsIHNpemVvZihsaXZlX3BhdGgpLCAiJXMv JXMiLCBEYXRhRGlyLCBMSVZFX0tNR1JfRElSKTsKKworCS8qCisJICogQ29weSBjbHVzdGVyIGZp bGUgZW5jcnlwdGlvbiBrZXlzIGZyb20gYW4gb2xkIGNsdXN0ZXI/IFRoaXMgaXMgdXNlZnVsCisJ ICogZm9yIHBnX3VwZ3JhZGUgdXBncmFkZXMgd2hlcmUgdGhlIGNvcGllZCBkYXRhYmFzZSBmaWxl cyBhcmUgYWxyZWFkeQorCSAqIGVuY3J5cHRlZCB1c2luZyB0aGUgb2xkIGNsdXN0ZXIncyBERUsg a2V5cy4KKwkgKi8KKwlpZiAoYm9vdHN0cmFwX29sZF9rZXlfZGF0YWRpciAhPSBOVUxMKQorCXsK KwkJY2hhcgkJb2xkX2tleV9kaXJbTUFYUEdQQVRIXTsKKworCQlzbnByaW50ZihvbGRfa2V5X2Rp ciwgc2l6ZW9mKG9sZF9rZXlfZGlyKSwgIiVzLyVzIiwKKwkJCQkgYm9vdHN0cmFwX29sZF9rZXlf ZGF0YWRpciwgTElWRV9LTUdSX0RJUik7CisJCWNvcHlkaXIob2xkX2tleV9kaXIsIExJVkVfS01H Ul9ESVIsIHRydWUpOworCX0KKwkvKiBjcmVhdGUgYW4gZW1wdHkgZGlyZWN0b3J5ICovCisJZWxz ZQorCXsKKwkJaWYgKG1rZGlyKExJVkVfS01HUl9ESVIsIHBnX2Rpcl9jcmVhdGVfbW9kZSkgPCAw KQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGVfZm9yX2ZpbGVfYWNjZXNzKCksCisJ CQkJCSBlcnJtc2coImNvdWxkIG5vdCBjcmVhdGUgY2x1c3RlciBmaWxlIGVuY3J5cHRpb24gZGly ZWN0b3J5IFwiJXNcIjogJW0iLAorCQkJCQkJCUxJVkVfS01HUl9ESVIpKSk7CisJfQorCisJLyoK KwkgKiBHZXQga2V5IGVuY3J5cHRpb24ga2V5IChLRUspIGZyb20gdGhlIGNsdXN0ZXJfa2V5IGNv bW1hbmQuICBUaGUgY2x1c3RlcgorCSAqIGtleSBjb21tYW5kIG1pZ2h0IG5lZWQgdG8gY2hlY2sg Zm9yIHRoZSBleGlzdGVuY2Ugb2YgZmlsZXMgaW4gdGhlIGxpdmUKKwkgKiBkaXJlY3RvcnksIGUu Zy4sIFBJViwgc28gcnVuIHRoaXMgX2FmdGVyXyBjb3B5aW5nIHRoZSBkaXJlY3RvcnkgaW4KKwkg KiBwbGFjZS4KKwkgKi8KKwljbHVzdGVyX2tleV9oZXhfbGVuID0ga21ncl9ydW5fY2x1c3Rlcl9r ZXlfY29tbWFuZChjbHVzdGVyX2tleV9jb21tYW5kLAorCQkJCQkJCQkJCQkJCSAgIGNsdXN0ZXJf a2V5X2hleCwKKwkJCQkJCQkJCQkJCQkgICBBTExPQ19LTUdSX0NMVVNURVJfS0VZX0xFTiwKKwkJ CQkJCQkJCQkJCQkgICBsaXZlX3BhdGgsIHRlcm1pbmFsX2ZkKTsKKworCS8qIGRlY29kZSBzdXBw bGllZCBoZXggKi8KKwlpZiAoaGV4X2RlY29kZShjbHVzdGVyX2tleV9oZXgsIGNsdXN0ZXJfa2V5 X2hleF9sZW4sCisJCQkJCSAgKGNoYXIgKikgY2x1c3Rlcl9rZXkpICE9CisJCUtNR1JfQ0xVU1RF Ul9LRVlfTEVOKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJtc2coImNsdXN0ZXIga2V5IG11 c3QgYmUgJWQgaGV4YWRlY2ltYWwgY2hhcmFjdGVycyIsCisJCQkJCQlLTUdSX0NMVVNURVJfS0VZ X0xFTiAqIDIpKSk7CisKKwkvKiBXZSBhcmUgbm90IGluIGNvcHkgbW9kZT8gIEdlbmVyYXRlIG5l dyBjbHVzdGVyIGZpbGUgZW5jcnlwdGlvbiBrZXlzLiAqLworCWlmIChib290c3RyYXBfb2xkX2tl eV9kYXRhZGlyID09IE5VTEwpCisJeworCQl1bnNpZ25lZCBjaGFyICpib290c3RyYXBfa2V5c193 cmFwW0tNR1JfTlVNX0RBVEFfS0VZU107CisJCWludAkJCWtleV9sZW5zW0tNR1JfTlVNX0RBVEFf S0VZU107CisJCVBnQ2lwaGVyQ3R4ICpjbHVzdGVyX2tleV9jdHg7CisKKwkJLyogQ3JlYXRlIEtF SyBlbmNyeXB0aW9uIGNvbnRleHQgKi8KKwkJY2x1c3Rlcl9rZXlfY3R4ID0gcGdfY2lwaGVyX2N0 eF9jcmVhdGUoUEdfQ0lQSEVSX0FFU19LV1AsIGNsdXN0ZXJfa2V5LAorCQkJCQkJCQkJCQkgICBL TUdSX0NMVVNURVJfS0VZX0xFTiwgdHJ1ZSk7CisJCWlmICghY2x1c3Rlcl9rZXlfY3R4KQorCQkJ ZWxvZyhFUlJPUiwgImNvdWxkIG5vdCBpbml0aWFsaXplIGVuY3J5cHRpb24gY29udGV4dCIpOwor CisJCS8qIFdyYXAgZGF0YSBlbmNyeXB0aW9uIGtleXMgKERFSykgdXNpbmcgdGhlIGtleSBlbmNy eXB0aW9uIGtleSAoS0VLKSAqLworCQlmb3IgKGludCBpZCA9IDA7IGlkIDwgS01HUl9OVU1fREFU QV9LRVlTOyBpZCsrKQorCQl7CisJCQlDcnlwdG9LZXkgICprZXk7CisKKwkJCS8qIGdlbmVyYXRl IGEgREVLICovCisJCQlrZXkgPSBnZW5lcmF0ZV9jcnlwdG9fa2V5KAorCQkJCQkJCQkJICBlbmNy eXB0aW9uX21ldGhvZHNbYm9vdHN0cmFwX2ZpbGVfZW5jcnlwdGlvbl9tZXRob2RdLmJpdF9sZW5n dGggLyA4KTsKKworCQkJLyogb3V0cHV0IGdlbmVyYXRlZCByYW5kb20gc3RyaW5nIGFzIGhleCwg Zm9yIHRlc3RpbmcgKi8KKwkJCXsKKwkJCQljaGFyCQlzdHJbTUFYUEdQQVRIXTsKKwkJCQlpbnQJ CQlvdXRfbGVuOworCisJCQkJb3V0X2xlbiA9IGhleF9lbmNvZGUoKGNoYXIgKikgKGtleS0+a2V5 KSwga2V5LT5rbGVuLAorCQkJCQkJCQkJCXN0cik7CisJCQkJc3RyW291dF9sZW5dID0gJ1wwJzsK KwkJCX0KKworCQkJYm9vdHN0cmFwX2tleXNfd3JhcFtpZF0gPSBwYWxsb2MwKEtNR1JfTUFYX0tF WV9MRU5fQllURVMgKworCQkJCQkJCQkJCQkgIHBnX2NpcGhlcl9ibG9ja3NpemUoY2x1c3Rlcl9r ZXlfY3R4KSk7CisKKwkJCS8qIHdyYXAgREVLIHdpdGggS0VLICovCisJCQlpZiAoIWttZ3Jfd3Jh cF9kYXRhX2tleShjbHVzdGVyX2tleV9jdHgsIGtleSwgYm9vdHN0cmFwX2tleXNfd3JhcFtpZF0s ICYoa2V5X2xlbnNbaWRdKSkpCisJCQl7CisJCQkJcGdfY2lwaGVyX2N0eF9mcmVlKGNsdXN0ZXJf a2V5X2N0eCk7CisJCQkJZWxvZyhFUlJPUiwgImZhaWxlZCB0byB3cmFwIGRhdGEgZW5jcnlwdGlv biBrZXkiKTsKKwkJCX0KKworCQkJLyogcmVtb3ZlIERFSyBmcm9tIG1lbW9yeSAqLworCQkJZXhw bGljaXRfYnplcm8oa2V5LCBzaXplb2YoQ3J5cHRvS2V5KSk7CisJCX0KKworCQkvKiBXcml0ZSBk YXRhIGVuY3J5cHRpb24ga2V5cyB0byB0aGUgZGlzayAqLworCQlLbWdyV3JpdGVDcnlwdG9LZXlz KExJVkVfS01HUl9ESVIsIGJvb3RzdHJhcF9rZXlzX3dyYXAsIGtleV9sZW5zKTsKKworCQlwZ19j aXBoZXJfY3R4X2ZyZWUoY2x1c3Rlcl9rZXlfY3R4KTsKKwl9CisKKwkvKgorCSAqIFdlIGFyZSBl aXRoZXIgZGVjcnlwdGluZyBrZXlzIHdlIGNvcGllZCBmcm9tIGFuIG9sZCBjbHVzdGVyLCBvcgor CSAqIGRlY3J5cHRpbmcga2V5cyB3ZSBqdXN0IHdyb3RlIGFib3ZlIC0tLSBlaXRoZXIgd2F5LCB3 ZSBkZWNyeXB0IHRoZW0KKwkgKiBoZXJlIGFuZCBzdG9yZSB0aGVtIGluIGEgZmlsZS1zY29wZWQg dmFyaWFibGUgZm9yIHVzZSBpbiBsYXRlcgorCSAqIGVuY3J5cHRpbmcgZHVyaW5nIGJvb3RzdHJh cCBtb2RlLgorCSAqLworCisJLyogR2V0IHRoZSBjcnlwdG8ga2V5cyBmcm9tIHRoZSBsaXZlIGRp cmVjdG9yeSAqLworCWttZ3JfcmVhZF93cmFwcGVkX2RhdGFfa2V5cyhMSVZFX0tNR1JfRElSLCBr ZXlzX3dyYXAsIGtleV9sZW5zKTsKKworCWlmICgha21ncl92ZXJpZnlfY2x1c3Rlcl9rZXkoY2x1 c3Rlcl9rZXksIGtleXNfd3JhcCwga2V5X2xlbnMsIGJvb3RzdHJhcF9rZXlzKSkKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwK KwkJCQkgZXJybXNnKCJzdXBwbGllZCBjbHVzdGVyIGtleSBkb2VzIG5vdCBtYXRjaCBleHBlY3Rl ZCBjbHVzdGVyX2tleSIpKSk7CisKKwkvKiBiemVybyBERUsgb24gZXhpdCAqLworCW9uX3Byb2Nf ZXhpdChiemVyb0ttZ3JLZXlzLCAwKTsKKworCS8qIGJ6ZXJvIEtFSyAqLworCWV4cGxpY2l0X2J6 ZXJvKGNsdXN0ZXJfa2V5X2hleCwgY2x1c3Rlcl9rZXlfaGV4X2xlbik7CisJZXhwbGljaXRfYnpl cm8oY2x1c3Rlcl9rZXksIEtNR1JfQ0xVU1RFUl9LRVlfTEVOKTsKK30KKworLyogUmVwb3J0IHNo YXJlZC1tZW1vcnkgc3BhY2UgbmVlZGVkIGJ5IEttZ3JTaG1lbSAqLworU2l6ZQorS21nclNobWVt U2l6ZSh2b2lkKQoreworCWlmICghRmlsZUVuY3J5cHRpb25FbmFibGVkKQorCQlyZXR1cm4gMDsK KworCXJldHVybiBNQVhBTElHTihzaXplb2YoS21nclNobWVtRGF0YSkpOworfQorCisvKiBBbGxv Y2F0ZSBhbmQgaW5pdGlhbGl6ZSBrZXkgbWFuYWdlciBtZW1vcnkgKi8KK3ZvaWQKK0ttZ3JTaG1l bUluaXQodm9pZCkKK3sKKwlib29sCQlmb3VuZDsKKworCWlmICghRmlsZUVuY3J5cHRpb25FbmFi bGVkKQorCQlyZXR1cm47CisKKwlLbWdyU2htZW0gPSAoS21nclNobWVtRGF0YSAqKSBTaG1lbUlu aXRTdHJ1Y3QoIkZpbGUgZW5jcnlwdGlvbiBrZXkgbWFuYWdlciIsCisJCQkJCQkJCQkJCQkgIEtt Z3JTaG1lbVNpemUoKSwgJmZvdW5kKTsKKworCS8qIGJ6ZXJvIERFSyBvbiBleGl0ICovCisJb25f c2htZW1fZXhpdChiemVyb0ttZ3JLZXlzLCAwKTsKK30KKworLyoKKyAqIEdldCBjbHVzdGVyIGtl eSBhbmQgdmVyaWZ5IGl0LCB0aGVuIGdldCB0aGUgZGF0YSBlbmNyeXB0aW9uIGtleXMuCisgKiBU aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBwb3N0bWFzdGVyIGF0IHN0YXJ0dXAgdGltZS4KKyAq Lwordm9pZAorSW5pdGlhbGl6ZUttZ3Iodm9pZCkKK3sKKwl1bnNpZ25lZCBjaGFyICprZXlzX3dy YXBbS01HUl9OVU1fREFUQV9LRVlTXTsKKwlpbnQJCQlrZXlfbGVuc1tLTUdSX05VTV9EQVRBX0tF WVNdOworCWNoYXIJCWNsdXN0ZXJfa2V5X2hleFtBTExPQ19LTUdSX0NMVVNURVJfS0VZX0xFTl07 CisJaW50CQkJY2x1c3Rlcl9rZXlfaGV4X2xlbjsKKwlzdHJ1Y3Qgc3RhdCBidWZmZXI7CisJY2hh cgkJbGl2ZV9wYXRoW01BWFBHUEFUSF07CisJdW5zaWduZWQgY2hhciBjbHVzdGVyX2tleVtLTUdS X0NMVVNURVJfS0VZX0xFTl07CisKKyNpZm5kZWYgVVNFX09QRU5TU0wKKwllcmVwb3J0KEVSUk9S LAorCQkJKGVycmNvZGUoRVJSQ09ERV9DT05GSUdfRklMRV9FUlJPUiksCisJCQkgKGVycm1zZygi Y2x1c3RlciBmaWxlIGVuY3J5cHRpb24gaXMgbm90IHN1cHBvcnRlZCBiZWNhdXNlIE9wZW5TU0wg aXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGJ1aWxkIiksCisJCQkgIGVycmhpbnQoIkNvbXBpbGUg d2l0aCAtLXdpdGgtb3BlbnNzbCB0byB1c2UgdGhpcyBmZWF0dXJlLiIpKSkpOworI2VuZGlmCisK KwkvKgorCSAqIFRoZXJlIGFyZSB0b28gbWFueSBvcHRpbWl6YXRpb25zIGZvciB3YWxfbGV2ZWw9 bWluaW1hbCB0aGF0IGRvbid0IHNldAorCSAqIExTTnMgZm9yIHBlcm1hbmVudCB0YWJsZXMsIHNv IGp1c3QgZGlzYWxsb3cgaXQuCisJICovCisJaWYgKCFYTG9nSXNOZWVkZWQoKSkKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0NPTkZJR19GSUxFX0VSUk9SKSwKKwkJCQkg KGVycm1zZygiY2x1c3RlciBmaWxlIGVuY3J5cHRpb24gaXMgbm90IHN1cHBvcnRlZCB3aXRoIGEg d2FsX2xldmVsIG9mIFwibWluaW1hbFwiIikpKSk7CisKKwllbG9nKERFQlVHMSwgInN0YXJ0aW5n IHVwIGNsdXN0ZXIgZmlsZSBlbmNyeXB0aW9uIG1hbmFnZXIiKTsKKworCWlmIChzdGF0KEtNR1Jf RElSLCAmYnVmZmVyKSAhPSAwIHx8ICFTX0lTRElSKGJ1ZmZlci5zdF9tb2RlKSkKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOVEVSTkFMX0VSUk9SKSwKKwkJCQkgKGVy cm1zZygiY2x1c3RlciBmaWxlIGVuY3J5cHRpb24gZGlyZWN0b3J5ICVzIGlzIG1pc3NpbmciLCBL TUdSX0RJUikpKSk7CisKKwlpZiAoc3RhdChLTUdSX0RJUl9QSUQsICZidWZmZXIpID09IDApCisJ CWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlRFUk5BTF9FUlJPUiksCisJ CQkJIChlcnJtc2coImNsdXN0ZXIgaGFkIGEgcGdfYWx0ZXJja2V5IGZhaWx1cmUgdGhhdCBuZWVk cyByZXBhaXIgb3IgcGdfYWx0ZXJja2V5IGlzIHJ1bm5pbmciKSwKKwkJCQkgIGVycmhpbnQoIlJ1 biBwZ19hbHRlcmNrZXkgLS1yZXBhaXIgb3Igd2FpdCBmb3IgaXQgdG8gY29tcGxldGUuIikpKSk7 CisKKwkvKgorCSAqIFdlIHdhbnQgT0xEIGRlbGV0ZWQgc2luY2UgaXQgYWxsb3dzIGFjY2VzcyB0 byB0aGUgZGF0YSBlbmNyeXB0aW9uIGtleXMKKwkgKiB1c2luZyB0aGUgb2xkIGNsdXN0ZXIga2V5 LiAgSWYgTkVXIGV4aXN0cywgaXQgbWVhbnMgZWl0aGVyIHRoZSBuZXcKKwkgKiBkaXJlY3Rvcnkg aXMgcGFydGx5IHdyaXR0ZW4sIG9yIE5FVyB3YXNuJ3QgcmVuYW1lZCB0byBMSVZFIC0tLSBpbgor CSAqIGVpdGhlciBjYXNlLCBpdCBuZWVkcyB0byBiZSByZXBhaXJlZC4gIFNlZSBzcmMvYmluL3Bn X2FsdGVyY2tleS9SRUFETUUKKwkgKiBmb3IgbW9yZSBkZXRhaWxzLgorCSAqLworCWlmIChzdGF0 KE9MRF9LTUdSX0RJUiwgJmJ1ZmZlcikgPT0gMCB8fCBzdGF0KE5FV19LTUdSX0RJUiwgJmJ1ZmZl cikgPT0gMCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOVEVSTkFM X0VSUk9SKSwKKwkJCQkgKGVycm1zZygiY2x1c3RlciBoYWQgYSBwZ19hbHRlcmNrZXkgZmFpbHVy ZSB0aGF0IG5lZWRzIHJlcGFpciIpLAorCQkJCSAgZXJyaGludCgiUnVuIHBnX2FsdGVyY2tleSAt LXJlcGFpci4iKSkpKTsKKworCS8qIElmIE9MRCwgTkVXLCBhbmQgTElWRSBkbyBub3QgZXhpc3Qs IHRoZXJlIGlzIGEgc2VyaW91cyBwcm9ibGVtLiAqLworCWlmIChzdGF0KExJVkVfS01HUl9ESVIs ICZidWZmZXIpICE9IDAgfHwgIVNfSVNESVIoYnVmZmVyLnN0X21vZGUpKQorCQllcmVwb3J0KEVS Uk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5URVJOQUxfRVJST1IpLAorCQkJCSAoZXJybXNn KCJjbHVzdGVyIGhhcyBubyBkYXRhIGVuY3J5cHRpb24ga2V5cyIpKSkpOworCisJLyogR2V0IHRo ZSBjbHVzdGVyIGtleSAoS0VLKSAqLworCXNucHJpbnRmKGxpdmVfcGF0aCwgc2l6ZW9mKGxpdmVf cGF0aCksICIlcy8lcyIsIERhdGFEaXIsIExJVkVfS01HUl9ESVIpOworCWNsdXN0ZXJfa2V5X2hl eF9sZW4gPSBrbWdyX3J1bl9jbHVzdGVyX2tleV9jb21tYW5kKGNsdXN0ZXJfa2V5X2NvbW1hbmQs CisJCQkJCQkJCQkJCQkJICAgY2x1c3Rlcl9rZXlfaGV4LAorCQkJCQkJCQkJCQkJCSAgIEFMTE9D X0tNR1JfQ0xVU1RFUl9LRVlfTEVOLAorCQkJCQkJCQkJCQkJCSAgIGxpdmVfcGF0aCwgdGVybWlu YWxfZmQpOworCisJLyogZGVjb2RlIHN1cHBsaWVkIGhleCAqLworCWlmIChoZXhfZGVjb2RlKGNs dXN0ZXJfa2V5X2hleCwgY2x1c3Rlcl9rZXlfaGV4X2xlbiwKKwkJCQkJICAoY2hhciAqKSBjbHVz dGVyX2tleSkgIT0KKwkJS01HUl9DTFVTVEVSX0tFWV9MRU4pCisJCWVyZXBvcnQoRVJST1IsCisJ CQkJKGVycm1zZygiY2x1c3RlciBrZXkgbXVzdCBiZSAlZCBoZXhhZGVjaW1hbCBjaGFyYWN0ZXJz IiwKKwkJCQkJCUtNR1JfQ0xVU1RFUl9LRVlfTEVOICogMikpKTsKKworCS8qIExvYWQgd3JhcHBl ZCBERUtzIGZyb20gdGhlaXIgZmlsZXMgaW50byBhbiBhcnJheSAqLworCWttZ3JfcmVhZF93cmFw cGVkX2RhdGFfa2V5cyhMSVZFX0tNR1JfRElSLCBrZXlzX3dyYXAsIGtleV9sZW5zKTsKKworCS8q CisJICogVmVyaWZ5IGNsdXN0ZXIga2V5IGFuZCBzdG9yZSB0aGUgdW53cmFwcGVkIGRhdGEgZW5j cnlwdGlvbiBrZXlzIGluCisJICogc2hhcmVkIG1lbW9yeS4KKwkgKi8KKwlpZiAoIWttZ3JfdmVy aWZ5X2NsdXN0ZXJfa2V5KGNsdXN0ZXJfa2V5LCBrZXlzX3dyYXAsIGtleV9sZW5zLCBLbWdyU2ht ZW0tPmludGxLZXlzKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lO VkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkgZXJybXNnKCJzdXBwbGllZCBjbHVzdGVyIGtl eSBkb2VzIG5vdCBtYXRjaCBleHBlY3RlZCBjbHVzdGVyIGtleSIpKSk7CisKKwkvKiBDaGVjayB0 aGF0IHJldHJpZXZlZCBrZXkgbGVuZ3RocyBtYXRjaCBjb250cm9sZGF0YSBsZW5ndGguICovCisJ Zm9yIChpbnQgaWQgPSAwOyBpZCA8IEtNR1JfTlVNX0RBVEFfS0VZUzsgaWQrKykKKwkJaWYgKEtt Z3JTaG1lbS0+aW50bEtleXNbaWRdLmtsZW4gKiA4ICE9CisJCQllbmNyeXB0aW9uX21ldGhvZHNb R2V0RmlsZUVuY3J5cHRpb25NZXRob2QoKV0uYml0X2xlbmd0aCkKKwkJeworCQkJY2hhcgkJcGF0 aFtNQVhQR1BBVEhdOworCisJCQlDcnlwdG9LZXlGaWxlUGF0aChwYXRoLCBEYXRhRGlyLCBpZCk7 CisKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJB TUVURVJfVkFMVUUpLAorCQkJCQkgZXJybXNnKCJkYXRhIGVuY3J5cHRpb24ga2V5ICVzIG9mIGxl bmd0aCAlZCBkb2VzIG5vdCBtYXRjaCBjb250cm9sZGF0YSBrZXkgbGVuZ3RoICVkIiwKKwkJCQkJ CQlwYXRoLCBLbWdyU2htZW0tPmludGxLZXlzW2lkXS5rbGVuICogOCwKKwkJCQkJCQllbmNyeXB0 aW9uX21ldGhvZHNbR2V0RmlsZUVuY3J5cHRpb25NZXRob2QoKV0uYml0X2xlbmd0aCkpKTsKKwkJ fQorCisJLyogYnplcm8gS0VLICovCisJZXhwbGljaXRfYnplcm8oY2x1c3Rlcl9rZXlfaGV4LCBj bHVzdGVyX2tleV9oZXhfbGVuKTsKKwlleHBsaWNpdF9iemVybyhjbHVzdGVyX2tleSwgS01HUl9D TFVTVEVSX0tFWV9MRU4pOworfQorCitzdGF0aWMgdm9pZAorYnplcm9LbWdyS2V5cyhpbnQgc3Rh dHVzLCBEYXR1bSBhcmcpCit7CisJaWYgKElzQm9vdHN0cmFwUHJvY2Vzc2luZ01vZGUoKSkKKwkJ ZXhwbGljaXRfYnplcm8oYm9vdHN0cmFwX2tleXMsIHNpemVvZihib290c3RyYXBfa2V5cykpOwor CWVsc2UKKwkJZXhwbGljaXRfYnplcm8oS21nclNobWVtLT5pbnRsS2V5cywgc2l6ZW9mKEttZ3JT aG1lbS0+aW50bEtleXMpKTsKK30KKworLyogcmV0dXJuIHJlcXVlc3RlZCBERUsgKi8KK2NvbnN0 IENyeXB0b0tleSAqCitLbWdyR2V0S2V5KGludCBpZCkKK3sKKwlBc3NlcnQoaWQgPCBLTUdSX05V TV9EQVRBX0tFWVMpOworCisJcmV0dXJuIChjb25zdCBDcnlwdG9LZXkgKikgKElzQm9vdHN0cmFw UHJvY2Vzc2luZ01vZGUoKSA/CisJCQkJCQkJCSYoYm9vdHN0cmFwX2tleXNbaWRdKSA6ICYoS21n clNobWVtLT5pbnRsS2V5c1tpZF0pKTsKK30KKworLyogR2VuZXJhdGUgYSBERUsgaW5zaWRlIGEg Q3J5cHRvS2V5ICovCitzdGF0aWMgQ3J5cHRvS2V5ICoKK2dlbmVyYXRlX2NyeXB0b19rZXkoaW50 IGxlbikKK3sKKwlDcnlwdG9LZXkgICpuZXdrZXk7CisKKwlBc3NlcnQobGVuIDw9IEtNR1JfTUFY X0tFWV9MRU4pOworCW5ld2tleSA9IChDcnlwdG9LZXkgKikgcGFsbG9jMChzaXplb2YoQ3J5cHRv S2V5KSk7CisKKwluZXdrZXktPmtsZW4gPSBsZW47CisKKwlpZiAoIXBnX3N0cm9uZ19yYW5kb20o bmV3a2V5LT5rZXksIGxlbikpCisJCWVsb2coRVJST1IsICJmYWlsZWQgdG8gZ2VuZXJhdGUgbmV3 IGZpbGUgZW5jcnlwdGlvbiBrZXkiKTsKKworCXJldHVybiBuZXdrZXk7Cit9CisKKy8qCisgKiBX cml0ZSB0aGUgREVLcyB0byB0aGUgZGlzay4KKyAqLworc3RhdGljIHZvaWQKK0ttZ3JXcml0ZUNy eXB0b0tleXMoY29uc3QgY2hhciAqZGlyLCB1bnNpZ25lZCBjaGFyICoqa2V5cywgaW50ICprZXlf bGVucykKK3sKKwllbG9nKERFQlVHMiwgIndyaXRpbmcgZGF0YSBlbmNyeXB0aW9uIGtleXMgd3Jh cHBlZCB1c2luZyB0aGUgY2x1c3RlciBrZXkiKTsKKworCWZvciAoaW50IGkgPSAwOyBpIDwgS01H Ul9OVU1fREFUQV9LRVlTOyBpKyspCisJeworCQlpbnQJCQlmZDsKKwkJY2hhcgkJcGF0aFtNQVhQ R1BBVEhdOworCisJCUNyeXB0b0tleUZpbGVQYXRoKHBhdGgsIGRpciwgaSk7CisKKwkJaWYgKChm ZCA9IEJhc2ljT3BlbkZpbGUocGF0aCwgT19SRFdSIHwgT19DUkVBVCB8IE9fRVhDTCB8IFBHX0JJ TkFSWSkpIDwgMCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlX2Zvcl9maWxlX2Fj Y2VzcygpLAorCQkJCQkgZXJybXNnKCJjb3VsZCBub3Qgb3BlbiBmaWxlIFwiJXNcIjogJW0iLAor CQkJCQkJCXBhdGgpKSk7CisKKwkJZXJybm8gPSAwOworCQlwZ3N0YXRfcmVwb3J0X3dhaXRfc3Rh cnQoV0FJVF9FVkVOVF9LRVlfRklMRV9XUklURSk7CisJCWlmICh3cml0ZShmZCwga2V5c1tpXSwg a2V5X2xlbnNbaV0pICE9IGtleV9sZW5zW2ldKQorCQl7CisJCQkvKiBpZiB3cml0ZSBkaWRuJ3Qg c2V0IGVycm5vLCBhc3N1bWUgcHJvYmxlbSBpcyBubyBkaXNrIHNwYWNlICovCisJCQlpZiAoZXJy bm8gPT0gMCkKKwkJCQllcnJubyA9IEVOT1NQQzsKKworCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ KGVycmNvZGVfZm9yX2ZpbGVfYWNjZXNzKCksCisJCQkJCSBlcnJtc2coImNvdWxkIG5vdCB3cml0 ZSBmaWxlIFwiJXNcIjogJW0iLAorCQkJCQkJCXBhdGgpKSk7CisJCX0KKwkJcGdzdGF0X3JlcG9y dF93YWl0X2VuZCgpOworCisJCXBnc3RhdF9yZXBvcnRfd2FpdF9zdGFydChXQUlUX0VWRU5UX0tF WV9GSUxFX1NZTkMpOworCQlpZiAocGdfZnN5bmMoZmQpICE9IDApCisJCQllcmVwb3J0KFBBTklD LAorCQkJCQkoZXJyY29kZV9mb3JfZmlsZV9hY2Nlc3MoKSwKKwkJCQkJIGVycm1zZygiY291bGQg bm90IGZzeW5jIGZpbGUgXCIlc1wiOiAlbSIsCisJCQkJCQkJcGF0aCkpKTsKKwkJcGdzdGF0X3Jl cG9ydF93YWl0X2VuZCgpOworCisJCWlmIChjbG9zZShmZCkgIT0gMCkKKwkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCShlcnJjb2RlX2Zvcl9maWxlX2FjY2VzcygpLAorCQkJCQkgZXJybXNnKCJjb3Vs ZCBub3QgY2xvc2UgZmlsZSBcIiVzXCI6ICVtIiwKKwkJCQkJCQlwYXRoKSkpOworCX0KK30KZGlm ZiAtLWdpdCBhL3NyYy9jb21tb24va21ncl91dGlscy5jIGIvc3JjL2NvbW1vbi9rbWdyX3V0aWxz LmMKaW5kZXggNmM1MGNiMDkzYi4uOTJiNjQ0MTE4NiAxMDA2NDQKLS0tIGEvc3JjL2NvbW1vbi9r bWdyX3V0aWxzLmMKKysrIGIvc3JjL2NvbW1vbi9rbWdyX3V0aWxzLmMKQEAgLTMwLDExICszMCwx MiBAQAogI2VuZGlmCiAjaW5jbHVkZSAiY29tbW9uL2NyeXB0b2hhc2guaCIKICNpbmNsdWRlICJj b21tb24vZmlsZV9wZXJtLmgiCi0jaW5jbHVkZSAiY29tbW9uL2hleC5oIgogI2luY2x1ZGUgImNv bW1vbi9zdHJpbmcuaCIKICNpbmNsdWRlICJjcnlwdG8va21nci5oIgogI2luY2x1ZGUgImxpYi9z dHJpbmdpbmZvLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9mZC5oIgorI2luY2x1ZGUgInBvc3RncmVz LmgiCisjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKIAogI2lmbmRlZiBGUk9OVEVORAogI2lu Y2x1ZGUgInBnc3RhdC5oIgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY3J5cHRvL2ttZ3IuaCBi L3NyYy9pbmNsdWRlL2NyeXB0by9rbWdyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMC4uZWMzNDFjNzBiOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NyeXB0 by9rbWdyLmgKQEAgLTAsMCArMSwyNSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICoga21n ci5oCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDIxLCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAorICoKKyAqIHNyYy9pbmNsdWRlL2NyeXB0by9rbWdyLmgKKyAq CisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lmbmRlZiBLTUdSX0gKKyNkZWZpbmUgS01HUl9I CisKKyNpbmNsdWRlICJjb21tb24va21ncl91dGlscy5oIgorCisvKiBHVUMgcGFyYW1ldGVycyAq LworZXh0ZXJuIGNoYXIgKmNsdXN0ZXJfa2V5X2NvbW1hbmQ7CisKK2V4dGVybiBTaXplIEttZ3JT aG1lbVNpemUodm9pZCk7CitleHRlcm4gdm9pZCBLbWdyU2htZW1Jbml0KHZvaWQpOworZXh0ZXJu IHZvaWQgQm9vdFN0cmFwS21ncih2b2lkKTsKK2V4dGVybiB2b2lkIEluaXRpYWxpemVLbWdyKHZv aWQpOworZXh0ZXJuIGNvbnN0IENyeXB0b0tleSAqS21nckdldEtleShpbnQgaWQpOworCisjZW5k aWYJCQkJCQkJLyogS01HUl9IICovCi0tIAoyLjM3LjAgKEFwcGxlIEdpdC0xMzYpCgo= --000000000000cbfbc705ebca4b20 Content-Type: application/octet-stream; name="0006-cfe-06-backend_over_cfe-05-crypto-squash-commit.patch" Content-Disposition: attachment; filename="0006-cfe-06-backend_over_cfe-05-crypto-squash-commit.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l9mztk875 RnJvbSAyMDhkNGI3ZWNlY2M3NWVmOTNiZGI5Yjk0ODM0OWJhNmYwYjY5MzYzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCcnVjZSBNb21qaWFuIDxicnVjZUBtb21qaWFuLnVzPgpEYXRl OiBGcmksIDI1IEp1biAyMDIxIDE2OjU2OjUzIC0wNDAwClN1YmplY3Q6IFtQQVRDSCAwNi8xMl0g Y2ZlLTA2LWJhY2tlbmRfb3Zlcl9jZmUtMDUtY3J5cHRvIHNxdWFzaCBjb21taXQKCi0tLQogZG9j L3NyYy9zZ21sL3N0b3JhZ2Uuc2dtbCAgICAgICAgICAgICAgICAgICAgIHwgIDUgKysrCiBzcmMv YmFja2VuZC9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogc3JjL2Jh Y2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jICAgICAgICAgICAgIHwgMzMgKysrKysrKysrKysr KysrKysrKwogc3JjL2JhY2tlbmQvYmFja3VwL2Jhc2ViYWNrdXAuYyAgICAgICAgICAgICAgIHwg IDUgKysrCiBzcmMvYmFja2VuZC9ib290c3RyYXAvYm9vdHN0cmFwLmMgICAgICAgICAgICAgfCAy OSArKysrKysrKysrKysrKystCiBzcmMvYmFja2VuZC9jcnlwdG8va21nci5jICAgICAgICAgICAg ICAgICAgICAgfCAgMyArKwogc3JjL2JhY2tlbmQvbGlicHEvYmUtc2VjdXJlLWNvbW1vbi5jICAg ICAgICAgIHwgMTQgKysrKysrKysKIHNyYy9iYWNrZW5kL21haW4vbWFpbi5jICAgICAgICAgICAg ICAgICAgICAgICB8ICAzICsrCiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYyAg ICAgICAgICAgfCAxMyArKysrKysrLQogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvaXBjaS5jICAg ICAgICAgICAgICAgIHwgIDMgKysKIHNyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9sd2xvY2tuYW1l cy50eHQgICAgICB8ICAxICsKIHNyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyAgICAgICAgICAg ICAgICAgICB8IDI4ICsrKysrKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5 L3dhaXRfZXZlbnQuYyAgICAgICB8ICA5ICsrKysrCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1 Y190YWJsZXMuYyAgICAgICAgICAgfCAyNSArKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9wZ19jb250cm9sZGF0YS5jICAgICAgIHwgMTEgKysrKystLQogc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIHwgIDUgKysrCiBzcmMvaW5jbHVkZS9h Y2Nlc3MveGxvZy5oICAgICAgICAgICAgICAgICAgICAgfCAgNSArKysKIHNyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfY29udHJvbC5oICAgICAgICAgICAgICB8ICA1ICsrLQogc3JjL2luY2x1ZGUvcG9z dG1hc3Rlci9wb3N0bWFzdGVyLmggICAgICAgICAgIHwgIDIgKysKIHNyYy9pbmNsdWRlL3V0aWxz L2d1Y190YWJsZXMuaCAgICAgICAgICAgICAgICB8ICAxICsKIDIwIGZpbGVzIGNoYW5nZWQsIDE5 NCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9zdG9yYWdlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvc3RvcmFnZS5zZ21sCmluZGV4IGU1YjlmM2Yx ZmYuLmY5ZGJmMDQ3MzUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9zdG9yYWdlLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3N0b3JhZ2Uuc2dtbApAQCAtNzcsNiArNzcsMTEgQEAgSXRlbQogIDxl bnRyeT5TdWJkaXJlY3RvcnkgY29udGFpbmluZyB0cmFuc2FjdGlvbiBjb21taXQgdGltZXN0YW1w IGRhdGE8L2VudHJ5PgogPC9yb3c+CiAKKzxyb3c+CisgPGVudHJ5PjxmaWxlbmFtZT5wZ19jcnlw dG9rZXlzPC9maWxlbmFtZT48L2VudHJ5PgorIDxlbnRyeT5TdWJkaXJlY3RvcnkgY29udGFpbmlu ZyBmaWxlIGVuY3J5cHRpb24ga2V5czwvZW50cnk+Cis8L3Jvdz4KKwogPHJvdz4KICA8ZW50cnk+ PGZpbGVuYW1lPnBnX2R5bnNobWVtPC9maWxlbmFtZT48L2VudHJ5PgogIDxlbnRyeT5TdWJkaXJl Y3RvcnkgY29udGFpbmluZyBmaWxlcyB1c2VkIGJ5IHRoZSBkeW5hbWljIHNoYXJlZCBtZW1vcnkK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvTWFrZWZpbGUK aW5kZXggMWE1MjM5YjgyMi4uNGI4Y2RkMWI0NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvTWFr ZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvTWFrZWZpbGUKQEAgLTIyLDcgKzIyLDcgQEAgU1VCRElS UyA9IGFjY2VzcyBiYWNrdXAgYm9vdHN0cmFwIGNhdGFsb2cgcGFyc2VyIGNvbW1hbmRzIGV4ZWN1 dG9yIFwKIAltYWluIG5vZGVzIG9wdGltaXplciBwYXJ0aXRpb25pbmcgcG9ydCBwb3N0bWFzdGVy IFwKIAlyZWdleCByZXBsaWNhdGlvbiByZXdyaXRlIFwKIAlzdGF0aXN0aWNzIHN0b3JhZ2UgdGNv cCB0c2VhcmNoIHV0aWxzICQodG9wX2J1aWxkZGlyKS9zcmMvdGltZXpvbmUgXAotCWppdAorCWpp dCBjcnlwdG8KIAogaW5jbHVkZSAkKHNyY2RpcikvY29tbW9uLm1rCiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFu c2FtL3hsb2cuYwppbmRleCBkZWE5NzhhOTYyLi5kZTkyZTg4ZDgxIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3Ry YW5zYW0veGxvZy5jCkBAIC02OSw2ICs2OSw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kYXRh YmFzZS5oIgogI2luY2x1ZGUgImNvbW1vbi9jb250cm9sZGF0YV91dGlscy5oIgogI2luY2x1ZGUg ImNvbW1vbi9maWxlX3V0aWxzLmgiCisjaW5jbHVkZSAiY3J5cHRvL2ttZ3IuaCIKICNpbmNsdWRl ICJleGVjdXRvci9pbnN0cnVtZW50LmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVk ZSAicGdfdHJhY2UuaCIKQEAgLTc2LDYgKzc3LDcgQEAKICNpbmNsdWRlICJwb3J0L2F0b21pY3Mu aCIKICNpbmNsdWRlICJwb3J0L3BnX2lvdmVjLmgiCiAjaW5jbHVkZSAicG9zdG1hc3Rlci9iZ3dy aXRlci5oIgorI2luY2x1ZGUgInBvc3RtYXN0ZXIvcG9zdG1hc3Rlci5oIgogI2luY2x1ZGUgInBv c3RtYXN0ZXIvc3RhcnR1cC5oIgogI2luY2x1ZGUgInBvc3RtYXN0ZXIvd2Fsd3JpdGVyLmgiCiAj aW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNhbC5oIgpAQCAtMTA5LDYgKzExMSw3IEBACiAjaW5j bHVkZSAidXRpbHMvdmFybGVuYS5oIgogCiBleHRlcm4gdWludDMyIGJvb3RzdHJhcF9kYXRhX2No ZWNrc3VtX3ZlcnNpb247CitleHRlcm4gaW50IGJvb3RzdHJhcF9maWxlX2VuY3J5cHRpb25fbWV0 aG9kOwogCiAvKiB0aW1lbGluZSBJRCB0byBiZSB1c2VkIHdoZW4gYm9vdHN0cmFwcGluZyAqLwog I2RlZmluZSBCb290c3RyYXBUaW1lTGluZUlECQkxCkBAIC0zODk4LDYgKzM5MDEsNyBAQCBJbml0 Q29udHJvbEZpbGUodWludDY0IHN5c2lkZW50aWZpZXIpCiAJQ29udHJvbEZpbGUtPndhbF9sb2df aGludHMgPSB3YWxfbG9nX2hpbnRzOwogCUNvbnRyb2xGaWxlLT50cmFja19jb21taXRfdGltZXN0 YW1wID0gdHJhY2tfY29tbWl0X3RpbWVzdGFtcDsKIAlDb250cm9sRmlsZS0+ZGF0YV9jaGVja3N1 bV92ZXJzaW9uID0gYm9vdHN0cmFwX2RhdGFfY2hlY2tzdW1fdmVyc2lvbjsKKwlDb250cm9sRmls ZS0+ZmlsZV9lbmNyeXB0aW9uX21ldGhvZCA9IGJvb3RzdHJhcF9maWxlX2VuY3J5cHRpb25fbWV0 aG9kOwogfQogCiBzdGF0aWMgdm9pZApAQCAtNDE4NSw2ICs0MTg5LDEyIEBAIFJlYWRDb250cm9s RmlsZSh2b2lkKQogCS8qIE1ha2UgdGhlIGluaXRkYiBzZXR0aW5ncyB2aXNpYmxlIGFzIEdVQyB2 YXJpYWJsZXMsIHRvbyAqLwogCVNldENvbmZpZ09wdGlvbigiZGF0YV9jaGVja3N1bXMiLCBEYXRh Q2hlY2tzdW1zRW5hYmxlZCgpID8gInllcyIgOiAibm8iLAogCQkJCQlQR0NfSU5URVJOQUwsIFBH Q19TX0RZTkFNSUNfREVGQVVMVCk7CisgCisgCVN0YXRpY0Fzc2VydFN0bXQobGVuZ3Rob2YoZW5j cnlwdGlvbl9tZXRob2RzKSA9PSBOVU1fRU5DUllQVElPTl9NRVRIT0RTLAorIAkJCQkJCQkgImVu Y3J5cHRpb25fbWV0aG9kc1tdIG11c3QgbWF0Y2ggTlVNX0VOQ1JZUFRJT05fTUVUSE9EUyIpOwor IAlTZXRDb25maWdPcHRpb24oImZpbGVfZW5jcnlwdGlvbl9tZXRob2QiLAorIAkJCQkJZW5jcnlw dGlvbl9tZXRob2RzW0NvbnRyb2xGaWxlLT5maWxlX2VuY3J5cHRpb25fbWV0aG9kXS5uYW1lLAor IAkJCQkJUEdDX0lOVEVSTkFMLCBQR0NfU19PVkVSUklERSk7CiB9CiAKIC8qCkBAIC00MjI3LDYg KzQyMzcsMjEgQEAgRGF0YUNoZWNrc3Vtc0VuYWJsZWQodm9pZCkKIAlyZXR1cm4gKENvbnRyb2xG aWxlLT5kYXRhX2NoZWNrc3VtX3ZlcnNpb24gPiAwKTsKIH0KIAorLyoKKyAqIElzIGNsdXN0ZXIg ZmlsZSBlbmNyeXB0aW9uIGVuYWJsZWQ/CisgKi8KK2ludAorR2V0RmlsZUVuY3J5cHRpb25NZXRo b2Qodm9pZCkKK3sKKwlpZiAoSXNCb290c3RyYXBQcm9jZXNzaW5nTW9kZSgpKQorCQlyZXR1cm4g Ym9vdHN0cmFwX2ZpbGVfZW5jcnlwdGlvbl9tZXRob2Q7CisJZWxzZQorCXsKKwkJQXNzZXJ0KENv bnRyb2xGaWxlICE9IE5VTEwpOworCQlyZXR1cm4gQ29udHJvbEZpbGUtPmZpbGVfZW5jcnlwdGlv bl9tZXRob2Q7CisJfQorfQorCiAvKgogICogUmV0dXJucyBhIGZha2UgTFNOIGZvciB1bmxvZ2dl ZCByZWxhdGlvbnMuCiAgKgpAQCAtNDgwNiw2ICs0ODMxLDE0IEBAIEJvb3RTdHJhcFhMT0codm9p ZCkKIAkvKiBzb21lIGFkZGl0aW9uYWwgQ29udHJvbEZpbGUgZmllbGRzIGFyZSBzZXQgaW4gV3Jp dGVDb250cm9sRmlsZSgpICovCiAJV3JpdGVDb250cm9sRmlsZSgpOwogCisJQm9vdFN0cmFwS21n cigpOworCisJaWYgKHRlcm1pbmFsX2ZkICE9IC0xKQorCXsKKwkJY2xvc2UodGVybWluYWxfZmQp OworCQl0ZXJtaW5hbF9mZCA9IC0xOworCX0KKwogCS8qIEJvb3RzdHJhcCB0aGUgY29tbWl0IGxv ZywgdG9vICovCiAJQm9vdFN0cmFwQ0xPRygpOwogCUJvb3RTdHJhcENvbW1pdFRzKCk7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9iYWNrdXAvYmFzZWJhY2t1cC5jIGIvc3JjL2JhY2tlbmQvYmFj a3VwL2Jhc2ViYWNrdXAuYwppbmRleCA3NGZiNTI5MzgwLi4zNWU5NTVlMDM2IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9iYWNrdXAvYmFzZWJhY2t1cC5jCisrKyBiL3NyYy9iYWNrZW5kL2JhY2t1 cC9iYXNlYmFja3VwLmMKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJiYWNrdXAvYmFzZWJh Y2t1cF90YXJnZXQuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNpbmNsdWRlICJj b21tb24vY29tcHJlc3Npb24uaCIKKyNpbmNsdWRlICJjb21tb24va21ncl91dGlscy5oIgogI2lu Y2x1ZGUgImNvbW1vbi9maWxlX3Blcm0uaCIKICNpbmNsdWRlICJsaWIvc3RyaW5naW5mby5oIgog I2luY2x1ZGUgIm1pc2NhZG1pbi5oIgpAQCAtMTI5LDYgKzEzMCwxMCBAQCBzdHJ1Y3QgZXhjbHVk ZV9saXN0X2l0ZW0KICAqLwogc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IGV4Y2x1ZGVEaXJDb250 ZW50c1tdID0KIHsKKwkvKiBTa2lwIHRlbXBvcmFyeSBjcnlwdG8ga2V5IGRpcmVjdG9yaWVzICov CisJTkVXX0tNR1JfRElSLAorCU9MRF9LTUdSX0RJUiwKKwogCS8qCiAJICogU2tpcCB0ZW1wb3Jh cnkgc3RhdGlzdGljcyBmaWxlcy4gUEdfU1RBVF9UTVBfRElSIG11c3QgYmUgc2tpcHBlZAogCSAq IGJlY2F1c2UgZXh0ZW5zaW9ucyBsaWtlIHBnX3N0YXRfc3RhdGVtZW50cyBzdG9yZSBkYXRhIHRo ZXJlLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYm9vdHN0cmFwL2Jvb3RzdHJhcC5jIGIvc3Jj L2JhY2tlbmQvYm9vdHN0cmFwL2Jvb3RzdHJhcC5jCmluZGV4IDU4MjQ3ZDgyNmQuLjlmYzA5YjM0 ZGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Jvb3RzdHJhcC9ib290c3RyYXAuYworKysgYi9z cmMvYmFja2VuZC9ib290c3RyYXAvYm9vdHN0cmFwLmMKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNs dWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRl ICJwZ19nZXRvcHQuaCIKKyNpbmNsdWRlICJwb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuaCIgLyogVE9E TzogdmVyaWZ5IHdlIG5lZWQgdGhpcyBzdGlsbCAqLwogI2luY2x1ZGUgInN0b3JhZ2UvYnVmbWdy LmgiCiAjaW5jbHVkZSAic3RvcmFnZS9idWZwYWdlLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9jb25k aXRpb25fdmFyaWFibGUuaCIKQEAgLTQ2LDYgKzQ3LDggQEAKICNpbmNsdWRlICJ1dGlscy9yZWxt YXBwZXIuaCIKIAogdWludDMyCQlib290c3RyYXBfZGF0YV9jaGVja3N1bV92ZXJzaW9uID0gMDsJ LyogTm8gY2hlY2tzdW0gKi8KK2ludAkJCWJvb3RzdHJhcF9maWxlX2VuY3J5cHRpb25fbWV0aG9k ID0gRElTQUJMRURfRU5DUllQVElPTl9NRVRIT0Q7CitjaGFyCQkqYm9vdHN0cmFwX29sZF9rZXlf ZGF0YWRpciA9IE5VTEw7CS8qIGRpc2FibGVkICovCiAKIAogc3RhdGljIHZvaWQgQ2hlY2tlck1v ZGVNYWluKHZvaWQpOwpAQCAtMjIxLDcgKzIyNCw3IEBAIEJvb3RzdHJhcE1vZGVNYWluKGludCBh cmdjLCBjaGFyICphcmd2W10sIGJvb2wgY2hlY2tfb25seSkKIAlhcmd2Kys7CiAJYXJnYy0tOwog Ci0Jd2hpbGUgKChmbGFnID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJCOmM6ZDpEOkZrcjpYOi06Iikp ICE9IC0xKQorIAl3aGlsZSAoKGZsYWcgPSBnZXRvcHQoYXJnYywgYXJndiwgIkI6YzpkOkQ6RmtL OnI6Ujp1Olg6LToiKSkgIT0gLTEpCiAJewogCQlzd2l0Y2ggKGZsYWcpCiAJCXsKQEAgLTI1MCw5 ICsyNTMsMzMgQEAgQm9vdHN0cmFwTW9kZU1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSwgYm9v bCBjaGVja19vbmx5KQogCQkJY2FzZSAnayc6CiAJCQkJYm9vdHN0cmFwX2RhdGFfY2hlY2tzdW1f dmVyc2lvbiA9IFBHX0RBVEFfQ0hFQ0tTVU1fVkVSU0lPTjsKIAkJCQlicmVhazsKKyAJCQljYXNl ICdLJzoKKyAJCQkJeworIAkJCQkJaW50IGk7CisgCisgCQkJCQkvKiBtZXRob2QgMC9kaXNhYmxl ZCBjYW5ub3QgYmUgc3BlY2lmaWVkICovCisgCQkJCQlmb3IgKGkgPSBESVNBQkxFRF9FTkNSWVBU SU9OX01FVEhPRCArIDE7CisgCQkJCQkJIGkgPCBOVU1fRU5DUllQVElPTl9NRVRIT0RTOyBpKysp CisgCQkJCQkJaWYgKHBnX3N0cmNhc2VjbXAob3B0YXJnLCBlbmNyeXB0aW9uX21ldGhvZHNbaV0u bmFtZSkgPT0gMCkKKyAJCQkJCQl7CisgCQkJCQkJCWJvb3RzdHJhcF9maWxlX2VuY3J5cHRpb25f bWV0aG9kID0gaTsKKyAJCQkJCQkJYnJlYWs7CisgCQkJCQkJfQorIAkJCQkJaWYgKGkgPT0gTlVN X0VOQ1JZUFRJT05fTUVUSE9EUykKKyAJCQkJCQllcmVwb3J0KEVSUk9SLAorIAkJCQkJCQkJKGVy cmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisgCQkJCQkJCQkgZXJybXNn KCJpbnZhbGlkIGVuY3J5cHRpb24gbWV0aG9kIHNwZWNpZmllZCIpKSk7CisgCQkJCX0KKyAJCQkJ YnJlYWs7CiAJCQljYXNlICdyJzoKIAkJCQlzdHJsY3B5KE91dHB1dEZpbGVOYW1lLCBvcHRhcmcs IE1BWFBHUEFUSCk7CiAJCQkJYnJlYWs7CisgCQkJY2FzZSAnUic6CisgCQkJCXRlcm1pbmFsX2Zk ID0gYXRvaShvcHRhcmcpOworIAkJCQlicmVhazsKKyAJCQljYXNlICd1JzoKKyAJCQkJYm9vdHN0 cmFwX29sZF9rZXlfZGF0YWRpciA9IHBzdHJkdXAob3B0YXJnKTsKKyAJCQkJYnJlYWs7CiAJCQlj YXNlICdYJzoKIAkJCQl7CiAJCQkJCWludAkJCVdhbFNlZ1N6ID0gc3RydG91bChvcHRhcmcsIE5V TEwsIDApOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY3J5cHRvL2ttZ3IuYyBiL3NyYy9iYWNr ZW5kL2NyeXB0by9rbWdyLmMKaW5kZXggNGI3NDk2MTMyMy4uYTgzZWZmYmNhOCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY3J5cHRvL2ttZ3IuYworKysgYi9zcmMvYmFja2VuZC9jcnlwdG8va21n ci5jCkBAIC0yNTMsNiArMjUzLDkgQEAgSW5pdGlhbGl6ZUttZ3Iodm9pZCkKIAljaGFyCQlsaXZl X3BhdGhbTUFYUEdQQVRIXTsKIAl1bnNpZ25lZCBjaGFyIGNsdXN0ZXJfa2V5W0tNR1JfQ0xVU1RF Ul9LRVlfTEVOXTsKIAorCWlmICghRmlsZUVuY3J5cHRpb25FbmFibGVkKQorCQlyZXR1cm47CisK ICNpZm5kZWYgVVNFX09QRU5TU0wKIAllcmVwb3J0KEVSUk9SLAogCQkJKGVycmNvZGUoRVJSQ09E RV9DT05GSUdfRklMRV9FUlJPUiksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9saWJwcS9iZS1z ZWN1cmUtY29tbW9uLmMgYi9zcmMvYmFja2VuZC9saWJwcS9iZS1zZWN1cmUtY29tbW9uLmMKaW5k ZXggMjcxOWNlMTQwMy4uOTM1N2M4MGVhNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbGlicHEv YmUtc2VjdXJlLWNvbW1vbi5jCisrKyBiL3NyYy9iYWNrZW5kL2xpYnBxL2JlLXNlY3VyZS1jb21t b24uYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CiAjaW5jbHVkZSA8 dW5pc3RkLmg+CiAKKyNpbmNsdWRlICJwb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuaCIKICNpbmNsdWRl ICJjb21tb24vc3RyaW5nLmgiCiAjaW5jbHVkZSAibGlicHEvbGlicHEuaCIKICNpbmNsdWRlICJz dG9yYWdlL2ZkLmgiCkBAIC02MSw2ICs2MiwxOSBAQCBydW5fc3NsX3Bhc3NwaHJhc2VfY29tbWFu ZChjb25zdCBjaGFyICpwcm9tcHQsIGJvb2wgaXNfc2VydmVyX3N0YXJ0LCBjaGFyICpidWYsCiAJ CQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmNvbW1hbmQsIHByb21wdCk7CiAJCQkJCXArKzsK IAkJCQkJYnJlYWs7CisJCQkJY2FzZSAnUic6CisJCQkJCXsKKwkJCQkJCWNoYXIgZmRfc3RyWzIw XTsKKworCQkJCQkJaWYgKHRlcm1pbmFsX2ZkID09IC0xKQorCQkJCQkJCWVyZXBvcnQoRVJST1Is CisJCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVEVSTkFMX0VSUk9SKSwKKwkJCQkJCQkJCSBl cnJtc2coInNzbF9wYXNzcGhyYXNlX2NvbW1hbmQgcmVmZXJlbmNlZCAlJVIsIGJ1dCAtUiBub3Qg c3BlY2lmaWVkIikpKTsKKwkJCQkJCXArKzsKKwkJCQkJCXNucHJpbnRmKGZkX3N0ciwgc2l6ZW9m KGZkX3N0ciksICIlZCIsIHRlcm1pbmFsX2ZkKTsKKwkJCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJp bmcoJmNvbW1hbmQsIGZkX3N0cik7CisJCQkJCQlicmVhazsKKwkJCQkJfQogCQkJCWNhc2UgJyUn OgogCQkJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcigmY29tbWFuZCwgJyUnKTsKIAkJCQkJcCsrOwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbWFpbi9tYWluLmMgYi9zcmMvYmFja2VuZC9tYWluL21h aW4uYwppbmRleCBmNWRhNDI2MGExLi5kZGYzZmNiNmZiIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9tYWluL21haW4uYworKysgYi9zcmMvYmFja2VuZC9tYWluL21haW4uYwpAQCAtMzQzLDYgKzM0 Myw3IEBAIGhlbHAoY29uc3QgY2hhciAqcHJvZ25hbWUpCiAjZW5kaWYKIAlwcmludGYoXygiICAt TiBNQVgtQ09OTkVDVCAgICAgbWF4aW11bSBudW1iZXIgb2YgYWxsb3dlZCBjb25uZWN0aW9uc1xu IikpOwogCXByaW50ZihfKCIgIC1wIFBPUlQgICAgICAgICAgICBwb3J0IG51bWJlciB0byBsaXN0 ZW4gb25cbiIpKTsKKwlwcmludGYoXygiICAtUiBmZCAgICAgICAgICAgICAgcHJvbXB0IGZvciB0 aGUgY2x1c3RlciBrZXlcbiIpKTsKIAlwcmludGYoXygiICAtcyAgICAgICAgICAgICAgICAgc2hv dyBzdGF0aXN0aWNzIGFmdGVyIGVhY2ggcXVlcnlcbiIpKTsKIAlwcmludGYoXygiICAtUyBXT1JL LU1FTSAgICAgICAgc2V0IGFtb3VudCBvZiBtZW1vcnkgZm9yIHNvcnRzIChpbiBrQilcbiIpKTsK IAlwcmludGYoXygiICAtViwgLS12ZXJzaW9uICAgICAgb3V0cHV0IHZlcnNpb24gaW5mb3JtYXRp b24sIHRoZW4gZXhpdFxuIikpOwpAQCAtMzcxLDcgKzM3Miw5IEBAIGhlbHAoY29uc3QgY2hhciAq cHJvZ25hbWUpCiAJcHJpbnRmKF8oIiAgLS1ib290ICAgICAgICAgICAgIHNlbGVjdHMgYm9vdHN0 cmFwcGluZyBtb2RlIChtdXN0IGJlIGZpcnN0IGFyZ3VtZW50KVxuIikpOwogCXByaW50ZihfKCIg IC0tY2hlY2sgICAgICAgICAgICBzZWxlY3RzIGNoZWNrIG1vZGUgKG11c3QgYmUgZmlyc3QgYXJn dW1lbnQpXG4iKSk7CiAJcHJpbnRmKF8oIiAgREJOQU1FICAgICAgICAgICAgIGRhdGFiYXNlIG5h bWUgKG1hbmRhdG9yeSBhcmd1bWVudCBpbiBib290c3RyYXBwaW5nIG1vZGUpXG4iKSk7CisgCXBy aW50ZihfKCIgIC1LIExFTiAgICAgICAgICAgICBlbmFibGUgY2x1c3RlciBmaWxlIGVuY3J5cHRp b24gd2l0aCBzcGVjaWZpZWQga2V5IGJpdCBsZW5ndGhcbiIpKTsKIAlwcmludGYoXygiICAtciBG SUxFTkFNRSAgICAgICAgc2VuZCBzdGRvdXQgYW5kIHN0ZGVyciB0byBnaXZlbiBmaWxlXG4iKSk7 CisgCXByaW50ZihfKCIgIC11IERBVEFESVIgICAgICAgICBjb3B5IGVuY3J5cHRpb24ga2V5cyBm cm9tIGRhdGFkaXJcbiIpKTsKIAogCXByaW50ZihfKCJcblBsZWFzZSByZWFkIHRoZSBkb2N1bWVu dGF0aW9uIGZvciB0aGUgY29tcGxldGUgbGlzdCBvZiBydW4tdGltZVxuIgogCQkJICJjb25maWd1 cmF0aW9uIHNldHRpbmdzIGFuZCBob3cgdG8gc2V0IHRoZW0gb24gdGhlIGNvbW1hbmQgbGluZSBv ciBpblxuIgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMg Yi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYwppbmRleCAzMGZiNTc2YWMzLi5h ZWM5YjA5NGJkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIu YworKysgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYwpAQCAtOTgsNiArOTgs NyBAQAogI2luY2x1ZGUgImNvbW1vbi9pcC5oIgogI2luY2x1ZGUgImNvbW1vbi9wZ19wcm5nLmgi CiAjaW5jbHVkZSAiY29tbW9uL3N0cmluZy5oIgorI2luY2x1ZGUgImNyeXB0by9rbWdyLmgiCiAj aW5jbHVkZSAibGliL2lsaXN0LmgiCiAjaW5jbHVkZSAibGlicHEvYXV0aC5oIgogI2luY2x1ZGUg ImxpYnBxL2xpYnBxLmgiCkBAIC0yMzEsNiArMjMyLDcgQEAgc3RhdGljIGludAlTZW5kU3RvcCA9 IGZhbHNlOwogCiAvKiBzdGlsbCBtb3JlIG9wdGlvbiB2YXJpYWJsZXMgKi8KIGJvb2wJCUVuYWJs ZVNTTCA9IGZhbHNlOworaW50CQkJdGVybWluYWxfZmQgPSAtMTsKIAogaW50CQkJUHJlQXV0aERl bGF5ID0gMDsKIGludAkJCUF1dGhlbnRpY2F0aW9uVGltZW91dCA9IDYwOwpAQCAtNjk3LDcgKzY5 OSw3IEBAIFBvc3RtYXN0ZXJNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJICogdGNvcC9w b3N0Z3Jlcy5jICh0aGUgb3B0aW9uIHNldHMgc2hvdWxkIG5vdCBjb25mbGljdCkgYW5kIHdpdGgg dGhlCiAJICogY29tbW9uIGhlbHAoKSBmdW5jdGlvbiBpbiBtYWluL21haW4uYy4KIAkgKi8KLQl3 aGlsZSAoKG9wdCA9IGdldG9wdChhcmdjLCBhcmd2LCAiQjpiYzpDOkQ6ZDpFZUZmOmg6aWprOmxO Om5PUHA6cjpTOnNUdDpXOi06IikpICE9IC0xKQorCXdoaWxlICgob3B0ID0gZ2V0b3B0KGFyZ2Ms IGFyZ3YsICJCOmJjOkM6RDpkOkVlRmY6aDppams6bE46bk9QcDpyOlI6UzpzVHQ6VzotOiIpKSAh PSAtMSkKIAl7CiAJCXN3aXRjaCAob3B0KQogCQl7CkBAIC03ODgsNiArNzkwLDEwIEBAIFBvc3Rt YXN0ZXJNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCQkJLyogb25seSB1c2VkIGJ5IHNp bmdsZS11c2VyIGJhY2tlbmQgKi8KIAkJCQlicmVhazsKIAorCQkJY2FzZSAnUic6CisJCQkJdGVy bWluYWxfZmQgPSBhdG9pKG9wdGFyZyk7CisJCQkJYnJlYWs7CisKIAkJCWNhc2UgJ1MnOgogCQkJ CVNldENvbmZpZ09wdGlvbigid29ya19tZW0iLCBvcHRhcmcsIFBHQ19QT1NUTUFTVEVSLCBQR0Nf U19BUkdWKTsKIAkJCQlicmVhazsKQEAgLTEzNDcsNiArMTM1MywxMSBAQCBQb3N0bWFzdGVyTWFp bihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQlwZnJlZShyYXdzdHJpbmcpOwogCX0KIAorCUlu aXRpYWxpemVLbWdyKCk7CisKKwlpZiAodGVybWluYWxfZmQgIT0gLTEpCisJCWNsb3NlKHRlcm1p bmFsX2ZkKTsKKwogCS8qCiAJICogY2hlY2sgdGhhdCB3ZSBoYXZlIHNvbWUgc29ja2V0IHRvIGxp c3RlbiBvbgogCSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvaXBjaS5j IGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvaXBjaS5jCmluZGV4IGIyMDRlY2RiYzMuLjA2MWRh MTFhNTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2lwY2kuYworKysgYi9z cmMvYmFja2VuZC9zdG9yYWdlL2lwYy9pcGNpLmMKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRl ICJhY2Nlc3MveGxvZ3ByZWZldGNoZXIuaCIKICNpbmNsdWRlICJhY2Nlc3MveGxvZ3JlY292ZXJ5 LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvYXN5bmMuaCIKKyNpbmNsdWRlICJjcnlwdG8va21nci5o IgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInBnc3RhdC5oIgogI2luY2x1ZGUg InBvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5oIgpAQCAtMTQyLDYgKzE0Myw3IEBAIENhbGN1bGF0ZVNo bWVtU2l6ZShpbnQgKm51bV9zZW1hcGhvcmVzKQogCXNpemUgPSBhZGRfc2l6ZShzaXplLCBTeW5j U2NhblNobWVtU2l6ZSgpKTsKIAlzaXplID0gYWRkX3NpemUoc2l6ZSwgQXN5bmNTaG1lbVNpemUo KSk7CiAJc2l6ZSA9IGFkZF9zaXplKHNpemUsIFN0YXRzU2htZW1TaXplKCkpOworCXNpemUgPSBh ZGRfc2l6ZShzaXplLCBLbWdyU2htZW1TaXplKCkpOwogI2lmZGVmIEVYRUNfQkFDS0VORAogCXNp emUgPSBhZGRfc2l6ZShzaXplLCBTaG1lbUJhY2tlbmRBcnJheVNpemUoKSk7CiAjZW5kaWYKQEAg LTI5NCw2ICsyOTYsNyBAQCBDcmVhdGVTaGFyZWRNZW1vcnlBbmRTZW1hcGhvcmVzKHZvaWQpCiAJ U3luY1NjYW5TaG1lbUluaXQoKTsKIAlBc3luY1NobWVtSW5pdCgpOwogCVN0YXRzU2htZW1Jbml0 KCk7CisgCUttZ3JTaG1lbUluaXQoKTsKIAogI2lmZGVmIEVYRUNfQkFDS0VORAogCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvbHdsb2NrbmFtZXMudHh0IGIvc3JjL2JhY2tl bmQvc3RvcmFnZS9sbWdyL2x3bG9ja25hbWVzLnR4dAppbmRleCA2YzdjZjZjMjk1Li41NmFjMzI0 MDdmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvbHdsb2NrbmFtZXMudHh0 CisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9sd2xvY2tuYW1lcy50eHQKQEAgLTUzLDMg KzUzLDQgQEAgWGFjdFRydW5jYXRpb25Mb2NrCQkJCQk0NAogIyA0NSB3YXMgWGFjdFRydW5jYXRp b25Mb2NrIHVudGlsIHJlbW92YWwgb2YgQmFja2VuZFJhbmRvbUxvY2sKIFdyYXBMaW1pdHNWYWN1 dW1Mb2NrCQkJCTQ2CiBOb3RpZnlRdWV1ZVRhaWxMb2NrCQkJCQk0NworS21nckZpbGVMb2NrCQkJ CQk0OApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jIGIvc3JjL2JhY2tl bmQvdGNvcC9wb3N0Z3Jlcy5jCmluZGV4IGE5YTE4NTFjOTQuLjU5NzBlYzk3YTUgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3Bv c3RncmVzLmMKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJjb21tYW5kcy9hc3luYy5oIgog I2luY2x1ZGUgImNvbW1hbmRzL3ByZXBhcmUuaCIKICNpbmNsdWRlICJjb21tb24vcGdfcHJuZy5o IgorI2luY2x1ZGUgImNyeXB0by9rbWdyLmgiCiAjaW5jbHVkZSAiaml0L2ppdC5oIgogI2luY2x1 ZGUgImxpYnBxL2xpYnBxLmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQuaCIKQEAgLTM3MTgs NyArMzcxOSw3IEBAIHByb2Nlc3NfcG9zdGdyZXNfc3dpdGNoZXMoaW50IGFyZ2MsIGNoYXIgKmFy Z3ZbXSwgR3VjQ29udGV4dCBjdHgsCiAJICogcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMgKHRoZSBv cHRpb24gc2V0cyBzaG91bGQgbm90IGNvbmZsaWN0KSBhbmQgd2l0aAogCSAqIHRoZSBjb21tb24g aGVscCgpIGZ1bmN0aW9uIGluIG1haW4vbWFpbi5jLgogCSAqLwotCXdoaWxlICgoZmxhZyA9IGdl dG9wdChhcmdjLCBhcmd2LCAiQjpiYzpDOkQ6ZDpFZUZmOmg6aWprOmxOOm5PUHA6cjpTOnNUdDp2 Olc6LToiKSkgIT0gLTEpCisJd2hpbGUgKChmbGFnID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJCOmJj OkM6RDpkOkVlRmY6aDppams6bE46bk9QcDpyOlI6UzpzVHQ6djpXOi06IikpICE9IC0xKQogCXsK IAkJc3dpdGNoIChmbGFnKQogCQl7CkBAIC0zODEwLDYgKzM4MTEsMTkgQEAgcHJvY2Vzc19wb3N0 Z3Jlc19zd2l0Y2hlcyhpbnQgYXJnYywgY2hhciAqYXJndltdLCBHdWNDb250ZXh0IGN0eCwKIAkJ CQkJc3RybGNweShPdXRwdXRGaWxlTmFtZSwgb3B0YXJnLCBNQVhQR1BBVEgpOwogCQkJCWJyZWFr OwogCisJCQljYXNlICdSJzoKKwkJCQl0ZXJtaW5hbF9mZCA9IGF0b2kob3B0YXJnKTsKKwkJCQlp ZiAodGVybWluYWxfZmQgPT0gLTEpCisJCQkJeworCQkJCQkvKgorCQkJCQkgKiBBbGxvdyBmaWxl IGRlc2NyaXB0b3IgY2xvc2luZyB0byBiZSBieXBhc3NlZCB2aWEgLTEuCisJCQkJCSAqIFdlIGp1 c3QgZHVwbGljYXRlIHN0ZXJyLiAgVGhpcyBpcyB1c2VmdWwgZm9yCisJCQkJCSAqIHNpbmdsZS11 c2VyIG1vZGUuCisJCQkJCSAqLworCQkJCQl0ZXJtaW5hbF9mZCA9IGR1cCgyKTsKKwkJCQl9CisJ CQkJYnJlYWs7CisKIAkJCWNhc2UgJ1MnOgogCQkJCVNldENvbmZpZ09wdGlvbigid29ya19tZW0i LCBvcHRhcmcsIGN0eCwgZ3Vjc291cmNlKTsKIAkJCQlicmVhazsKQEAgLTQwNTUsNiArNDA2OSwx OCBAQCBQb3N0Z3Jlc01haW4oY29uc3QgY2hhciAqZGJuYW1lLCBjb25zdCBjaGFyICp1c2VybmFt ZSkKIAogCVNldFByb2Nlc3NpbmdNb2RlKEluaXRQcm9jZXNzaW5nKTsKIAorCS8qCisJICogSW5p dGlhbGl6ZSBrbWdyIGZvciBjbHVzdGVyIGVuY3J5cHRpb24uIFNpbmNlIGttZ3IgbmVlZHMgdG8g YXR0YWNoIHRvCisJICogc2hhcmVkIG1lbW9yeSB0aGUgaW5pdGlhbGl6YXRpb24gbXVzdCBiZSBj YWxsZWQgYWZ0ZXIgQmFzZUluaXQoKS4KKwkgKi8KKwlpZiAoIUlzVW5kZXJQb3N0bWFzdGVyKQor CXsKKwkJSW5pdGlhbGl6ZUttZ3IoKTsKKworCQlpZiAodGVybWluYWxfZmQgIT0gLTEpCisJCQlj bG9zZSh0ZXJtaW5hbF9mZCk7CisJfQorCiAJLyoKIAkgKiBTZXQgdXAgc2lnbmFsIGhhbmRsZXJz LiAgKEluaXRQb3N0bWFzdGVyQ2hpbGQgb3IgSW5pdFN0YW5kYWxvbmVQcm9jZXNzCiAJICogaGFz IGFscmVhZHkgc2V0IHVwIEJsb2NrU2lnIGFuZCBtYWRlIHRoYXQgdGhlIGFjdGl2ZSBzaWduYWwg bWFzay4pCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50 LmMgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50LmMKaW5kZXggOTJmMjRh NmM5Yi4uNmY3OTUzYWNjYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkv d2FpdF9ldmVudC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnQu YwpAQCAtNTkxLDYgKzU5MSwxNSBAQCBwZ3N0YXRfZ2V0X3dhaXRfaW8oV2FpdEV2ZW50SU8gdykK IAkJY2FzZSBXQUlUX0VWRU5UX0RTTV9GSUxMX1pFUk9fV1JJVEU6CiAJCQlldmVudF9uYW1lID0g IkRTTUZpbGxaZXJvV3JpdGUiOwogCQkJYnJlYWs7CisJCWNhc2UgV0FJVF9FVkVOVF9LRVlfRklM RV9SRUFEOgorCQkJZXZlbnRfbmFtZSA9ICJLZXlGaWxlUmVhZCI7CisJCQlicmVhazsKKwkJY2Fz ZSBXQUlUX0VWRU5UX0tFWV9GSUxFX1dSSVRFOgorCQkJZXZlbnRfbmFtZSA9ICJLZXlGaWxlV3Jp dGUiOworCQkJYnJlYWs7CisJCWNhc2UgV0FJVF9FVkVOVF9LRVlfRklMRV9TWU5DOgorCQkJZXZl bnRfbmFtZSA9ICJLZXlGaWxlU3luYyI7CisJCQlicmVhazsKIAkJY2FzZSBXQUlUX0VWRU5UX0xP Q0tfRklMRV9BRERUT0RBVEFESVJfUkVBRDoKIAkJCWV2ZW50X25hbWUgPSAiTG9ja0ZpbGVBZGRU b0RhdGFEaXJSZWFkIjsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv bWlzYy9ndWNfdGFibGVzLmMgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwpp bmRleCAwNWFiMDg3OTM0Li40MDJmMWFhOGYwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9taXNjL2d1Y190YWJsZXMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJs ZXMuYwpAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKICNp bmNsdWRlICJjb21tYW5kcy91c2VyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdmFjdXVtLmgiCisj aW5jbHVkZSAiY3J5cHRvL2ttZ3IuaCIKICNpbmNsdWRlICJqaXQvaml0LmgiCiAjaW5jbHVkZSAi bGlicHEvYXV0aC5oIgogI2luY2x1ZGUgImxpYnBxL2xpYnBxLmgiCkBAIC01NjUsNiArNTY2LDcg QEAgc3RhdGljIGNoYXIgKnJlY292ZXJ5X3RhcmdldF9zdHJpbmc7CiBzdGF0aWMgY2hhciAqcmVj b3ZlcnlfdGFyZ2V0X3hpZF9zdHJpbmc7CiBzdGF0aWMgY2hhciAqcmVjb3ZlcnlfdGFyZ2V0X25h bWVfc3RyaW5nOwogc3RhdGljIGNoYXIgKnJlY292ZXJ5X3RhcmdldF9sc25fc3RyaW5nOworc3Rh dGljIGNoYXIgKmZpbGVfZW5jcnlwdGlvbl9tZXRob2Rfc3RyOwogCiAvKiBzaG91bGQgYmUgc3Rh dGljLCBidXQgY29tbWFuZHMvdmFyaWFibGUuYyBuZWVkcyB0byBnZXQgYXQgdGhpcyAqLwogY2hh cgkgICAqcm9sZV9zdHJpbmc7CkBAIC02ODcsNiArNjg5LDggQEAgY29uc3QgY2hhciAqY29uc3Qg Y29uZmlnX2dyb3VwX25hbWVzW10gPQogCWdldHRleHRfbm9vcCgiU3RhdGlzdGljcyAvIE1vbml0 b3JpbmciKSwKIAkvKiBTVEFUU19DVU1VTEFUSVZFICovCiAJZ2V0dGV4dF9ub29wKCJTdGF0aXN0 aWNzIC8gQ3VtdWxhdGl2ZSBRdWVyeSBhbmQgSW5kZXggU3RhdGlzdGljcyIpLAorCS8qIEVOQ1JZ UFRJT04gKi8KKwlnZXR0ZXh0X25vb3AoIkVuY3J5cHRpb24iKSwKIAkvKiBBVVRPVkFDVVVNICov CiAJZ2V0dGV4dF9ub29wKCJBdXRvdmFjdXVtIiksCiAJLyogQ0xJRU5UX0NPTk5fU1RBVEVNRU5U ICovCkBAIC00NDA1LDYgKzQ0MDksMjcgQEAgc3RydWN0IGNvbmZpZ19zdHJpbmcgQ29uZmlndXJl TmFtZXNTdHJpbmdbXSA9CiAJCU5VTEwsIE5VTEwsIE5VTEwKIAl9LAogCisJeworCQl7ImNsdXN0 ZXJfa2V5X2NvbW1hbmQiLCBQR0NfU0lHSFVQLCBFTkNSWVBUSU9OLAorCQkJZ2V0dGV4dF9ub29w KCJDb21tYW5kIHRvIG9idGFpbiBjbHVzdGVyIGtleSBmb3IgY2x1c3RlciBmaWxlIGVuY3J5cHRp b24uIiksCisJCQlOVUxMCisJCX0sCisJCSZjbHVzdGVyX2tleV9jb21tYW5kLAorCQkiIiwKKwkJ TlVMTCwgTlVMTCwgTlVMTAorCX0sCisKKwl7CisJCXsiZmlsZV9lbmNyeXB0aW9uX21ldGhvZCIs IFBHQ19JTlRFUk5BTCwgUFJFU0VUX09QVElPTlMsCisJCSBnZXR0ZXh0X25vb3AoIlNob3dzIHRo ZSBjbHVzdGVyIGZpbGUgZW5jcnlwdGlvbiBtZXRob2QuIiksCisJCSBOVUxMLAorCQkgR1VDX05P VF9JTl9TQU1QTEUgfCBHVUNfRElTQUxMT1dfSU5fRklMRQorIAkJfSwKKwkJJmZpbGVfZW5jcnlw dGlvbl9tZXRob2Rfc3RyLAorCQkiIiwKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCisKIAl7CiAJ CXsiYXBwbGljYXRpb25fbmFtZSIsIFBHQ19VU0VSU0VULCBMT0dHSU5HX1dIQVQsCiAJCQlnZXR0 ZXh0X25vb3AoIlNldHMgdGhlIGFwcGxpY2F0aW9uIG5hbWUgdG8gYmUgcmVwb3J0ZWQgaW4gc3Rh dGlzdGljcyBhbmQgbG9ncy4iKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2Mv cGdfY29udHJvbGRhdGEuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcGdfY29udHJvbGRhdGEu YwppbmRleCA3ODFmOGI4NzU4Li5kNWZiZjhmN2RmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91 dGlscy9taXNjL3BnX2NvbnRyb2xkYXRhLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9w Z19jb250cm9sZGF0YS5jCkBAIC0yNjMsOCArMjYzLDggQEAgcGdfY29udHJvbF9yZWNvdmVyeShQ R19GVU5DVElPTl9BUkdTKQogRGF0dW0KIHBnX2NvbnRyb2xfaW5pdChQR19GVU5DVElPTl9BUkdT KQogewotCURhdHVtCQl2YWx1ZXNbMTFdOwotCWJvb2wJCW51bGxzWzExXTsKKwlEYXR1bQkJdmFs dWVzWzEyXTsKKwlib29sCQludWxsc1sxMl07CiAJVHVwbGVEZXNjCXR1cGRlc2M7CiAJSGVhcFR1 cGxlCWh0dXA7CiAJQ29udHJvbEZpbGVEYXRhICpDb250cm9sRmlsZTsKQEAgLTI3NCw3ICsyNzQs NyBAQCBwZ19jb250cm9sX2luaXQoUEdfRlVOQ1RJT05fQVJHUykKIAkgKiBDb25zdHJ1Y3QgYSB0 dXBsZSBkZXNjcmlwdG9yIGZvciB0aGUgcmVzdWx0IHJvdy4gIFRoaXMgbXVzdCBtYXRjaCB0aGlz CiAJICogZnVuY3Rpb24ncyBwZ19wcm9jIGVudHJ5IQogCSAqLwotCXR1cGRlc2MgPSBDcmVhdGVU ZW1wbGF0ZVR1cGxlRGVzYygxMSk7CisJdHVwZGVzYyA9IENyZWF0ZVRlbXBsYXRlVHVwbGVEZXNj KDEyKTsKIAlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpIDEsICJtYXhf ZGF0YV9hbGlnbm1lbnQiLAogCQkJCQkgICBJTlQ0T0lELCAtMSwgMCk7CiAJVHVwbGVEZXNjSW5p dEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSAyLCAiZGF0YWJhc2VfYmxvY2tfc2l6ZSIsCkBA IC0yOTcsNiArMjk3LDggQEAgcGdfY29udHJvbF9pbml0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJ CSAgIEJPT0xPSUQsIC0xLCAwKTsKIAlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJO dW1iZXIpIDExLCAiZGF0YV9wYWdlX2NoZWNrc3VtX3ZlcnNpb24iLAogCQkJCQkgICBJTlQ0T0lE LCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSAxMiwg ImZpbGVfZW5jcnlwdGlvbl9tZXRob2QiLAorCQkJCQkgICBJTlQ0T0lELCAtMSwgMCk7CiAJdHVw ZGVzYyA9IEJsZXNzVHVwbGVEZXNjKHR1cGRlc2MpOwogCiAJLyogcmVhZCB0aGUgY29udHJvbCBm aWxlICovCkBAIC0zMzgsNiArMzQwLDkgQEAgcGdfY29udHJvbF9pbml0KFBHX0ZVTkNUSU9OX0FS R1MpCiAJdmFsdWVzWzEwXSA9IEludDMyR2V0RGF0dW0oQ29udHJvbEZpbGUtPmRhdGFfY2hlY2tz dW1fdmVyc2lvbik7CiAJbnVsbHNbMTBdID0gZmFsc2U7CiAKKwl2YWx1ZXNbMTFdID0gSW50MzJH ZXREYXR1bShDb250cm9sRmlsZS0+ZmlsZV9lbmNyeXB0aW9uX21ldGhvZCk7CisJbnVsbHNbMTFd ID0gZmFsc2U7CisKIAlodHVwID0gaGVhcF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVlcywgbnVs bHMpOwogCiAJUEdfUkVUVVJOX0RBVFVNKEhlYXBUdXBsZUdldERhdHVtKGh0dXApKTsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSBiL3Ny Yy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQppbmRleCA4NjhkMjFj MzUxLi45NmI1Yzg2OWUxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3Rn cmVzcWwuY29uZi5zYW1wbGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3Fs LmNvbmYuc2FtcGxlCkBAIC02NTksNiArNjU5LDExIEBACiAJCQkJCSMgYXV0b3ZhY3V1bSwgLTEg bWVhbnMgdXNlCiAJCQkJCSMgdmFjdXVtX2Nvc3RfbGltaXQKIAorIy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIyBFTkNSWVBUSU9OCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNjbHVzdGVyX2tl eV9jb21tYW5kID0gJycKIAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBDTElFTlQgQ09OTkVD VElPTiBERUZBVUxUUwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2cuaCBiL3Ny Yy9pbmNsdWRlL2FjY2Vzcy94bG9nLmgKaW5kZXggMWZiZDQ4ZmJkYS4uOGYyMTlmYmFjYyAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nl c3MveGxvZy5oCkBAIC0xMyw2ICsxMyw3IEBACiAKICNpbmNsdWRlICJhY2Nlc3MveGxvZ2JhY2t1 cC5oIgogI2luY2x1ZGUgImFjY2Vzcy94bG9nZGVmcy5oIgorI2luY2x1ZGUgImNvbW1vbi9rbWdy X3V0aWxzLmgiCiAjaW5jbHVkZSAiZGF0YXR5cGUvdGltZXN0YW1wLmgiCiAjaW5jbHVkZSAibGli L3N0cmluZ2luZm8uaCIKICNpbmNsdWRlICJub2Rlcy9wZ19saXN0LmgiCkBAIC0yMjQsNiArMjI1 LDEwIEBAIGV4dGVybiBYTG9nUmVjUHRyIEdldFhMb2dXcml0ZVJlY1B0cih2b2lkKTsKIGV4dGVy biB1aW50NjQgR2V0U3lzdGVtSWRlbnRpZmllcih2b2lkKTsKIGV4dGVybiBjaGFyICpHZXRNb2Nr QXV0aGVudGljYXRpb25Ob25jZSh2b2lkKTsKIGV4dGVybiBib29sIERhdGFDaGVja3N1bXNFbmFi bGVkKHZvaWQpOworCisjZGVmaW5lIEZpbGVFbmNyeXB0aW9uRW5hYmxlZCAoR2V0RmlsZUVuY3J5 cHRpb25NZXRob2QoKSAhPSBESVNBQkxFRF9FTkNSWVBUSU9OX01FVEhPRCkKK2V4dGVybiBpbnQg R2V0RmlsZUVuY3J5cHRpb25NZXRob2Qodm9pZCk7CisKIGV4dGVybiBYTG9nUmVjUHRyIEdldEZh a2VMU05Gb3JVbmxvZ2dlZFJlbCh2b2lkKTsKIGV4dGVybiBTaXplIFhMT0dTaG1lbVNpemUodm9p ZCk7CiBleHRlcm4gdm9pZCBYTE9HU2htZW1Jbml0KHZvaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19jb250cm9sLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnRy b2wuaAppbmRleCAwNjM2OGUyMzY2Li5kYjdkZTc3Mjg3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2NvbnRyb2wuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnRy b2wuaApAQCAtMjIsNyArMjIsNyBAQAogCiAKIC8qIFZlcnNpb24gaWRlbnRpZmllciBmb3IgdGhp cyBwZ19jb250cm9sIGZvcm1hdCAqLwotI2RlZmluZSBQR19DT05UUk9MX1ZFUlNJT04JMTMwMAor I2RlZmluZSBQR19DT05UUk9MX1ZFUlNJT04JMTQwMAogCiAvKiBOb25jZSBrZXkgbGVuZ3RoLCBz ZWUgYmVsb3cgKi8KICNkZWZpbmUgTU9DS19BVVRIX05PTkNFX0xFTgkJMzIKQEAgLTIyNiw2ICsy MjYsOSBAQCB0eXBlZGVmIHN0cnVjdCBDb250cm9sRmlsZURhdGEKIAkgKi8KIAljaGFyCQltb2Nr X2F1dGhlbnRpY2F0aW9uX25vbmNlW01PQ0tfQVVUSF9OT05DRV9MRU5dOwogCisJLyogRmlsZSBl bmNyeXB0aW9uIG1ldGhvZDsgIGluZGV4IGludG8gZW5jcnlwdGlvbl9tZXRob2RzW10uICovCisJ aW50CQlmaWxlX2VuY3J5cHRpb25fbWV0aG9kOworCiAJLyogQ1JDIG9mIGFsbCBhYm92ZSAuLi4g TVVTVCBCRSBMQVNUISAqLwogCXBnX2NyYzMyYwljcmM7CiB9IENvbnRyb2xGaWxlRGF0YTsKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5oIGIvc3JjL2luY2x1 ZGUvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmgKaW5kZXggOTBlMzMzY2NkMi4uZGVhYzI1ZTExNSAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmgKKysrIGIvc3Jj L2luY2x1ZGUvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmgKQEAgLTMxLDYgKzMxLDggQEAgZXh0ZXJu IFBHRExMSU1QT1JUIGNoYXIgKmJvbmpvdXJfbmFtZTsKIGV4dGVybiBQR0RMTElNUE9SVCBib29s IHJlc3RhcnRfYWZ0ZXJfY3Jhc2g7CiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCByZW1vdmVfdGVt cF9maWxlc19hZnRlcl9jcmFzaDsKIAorZXh0ZXJuIGludAl0ZXJtaW5hbF9mZDsKKwogI2lmZGVm IFdJTjMyCiBleHRlcm4gUEdETExJTVBPUlQgSEFORExFIFBvc3RtYXN0ZXJIYW5kbGU7CiAjZWxz ZQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvZ3VjX3RhYmxlcy5oIGIvc3JjL2luY2x1 ZGUvdXRpbHMvZ3VjX3RhYmxlcy5oCmluZGV4IDUxZjdmMDlmZGUuLjE0NDZiMzM0YjEgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2d1Y190YWJsZXMuaAorKysgYi9zcmMvaW5jbHVkZS91 dGlscy9ndWNfdGFibGVzLmgKQEAgLTg2LDYgKzg2LDcgQEAgZW51bSBjb25maWdfZ3JvdXAKIAlQ Uk9DRVNTX1RJVExFLAogCVNUQVRTX01PTklUT1JJTkcsCiAJU1RBVFNfQ1VNVUxBVElWRSwKKwlF TkNSWVBUSU9OLAogCUFVVE9WQUNVVU0sCiAJQ0xJRU5UX0NPTk5fU1RBVEVNRU5ULAogCUNMSUVO VF9DT05OX0xPQ0FMRSwKLS0gCjIuMzcuMCAoQXBwbGUgR2l0LTEzNikKCg== --000000000000cbfbc705ebca4b20 Content-Type: application/octet-stream; name="0007-cfe-07-bin_over_cfe-06-backend-squash-commit.patch" Content-Disposition: attachment; filename="0007-cfe-07-bin_over_cfe-06-backend-squash-commit.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l9mztmnk6 RnJvbSBlNjA4MTA4NzRiYjY4YWY3YTg0Y2ViZGI4YmExNjc0ZTJjZTIyMzlmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCcnVjZSBNb21qaWFuIDxicnVjZUBtb21qaWFuLnVzPgpEYXRl OiBGcmksIDI1IEp1biAyMDIxIDE2OjU2OjU2IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAwNy8xMl0g Y2ZlLTA3LWJpbl9vdmVyX2NmZS0wNi1iYWNrZW5kIHNxdWFzaCBjb21taXQKCi0tLQogZG9jL3Ny Yy9zZ21sL3JlZi9pbml0ZGIuc2dtbCAgICAgICAgICAgIHwgIDQ3ICsrKysrKysrKwogZG9jL3Ny Yy9zZ21sL3JlZi9wZ19jdGwtcmVmLnNnbWwgICAgICAgIHwgIDE0ICsrKwogZG9jL3NyYy9zZ21s L3JlZi9wZ3VwZ3JhZGUuc2dtbCAgICAgICAgIHwgIDIwICsrKy0KIGRvYy9zcmMvc2dtbC9yZWYv cG9zdGdyZXMtcmVmLnNnbWwgICAgICB8ICAxMyArKysKIHNyYy9iaW4vaW5pdGRiL2luaXRkYi5j ICAgICAgICAgICAgICAgICB8IDEyNSArKysrKysrKysrKysrKysrKysrKysrLS0KIHNyYy9iaW4v cGdfY29udHJvbGRhdGEvcGdfY29udHJvbGRhdGEuYyB8ICAgMyArCiBzcmMvYmluL3BnX2N0bC9w Z19jdGwuYyAgICAgICAgICAgICAgICAgfCAgNTkgKysrKysrKysrLS0KIHNyYy9iaW4vcGdfcmVz ZXR3YWwvcGdfcmVzZXR3YWwuYyAgICAgICB8ICAgMyArCiBzcmMvYmluL3BnX3Jld2luZC9maWxl bWFwLmMgICAgICAgICAgICAgfCAgIDggKysKIHNyYy9iaW4vcGdfdXBncmFkZS9jaGVjay5jICAg ICAgICAgICAgICB8ICAzNCArKysrKysrCiBzcmMvYmluL3BnX3VwZ3JhZGUvY29udHJvbGRhdGEu YyAgICAgICAgfCAgNDEgKysrKysrKy0KIHNyYy9iaW4vcGdfdXBncmFkZS9maWxlLmMgICAgICAg ICAgICAgICB8ICAgMiArCiBzcmMvYmluL3BnX3VwZ3JhZGUvb3B0aW9uLmMgICAgICAgICAgICAg fCAgIDcgKy0KIHNyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmggICAgICAgICB8ICAgNCAr CiBzcmMvYmluL3BnX3VwZ3JhZGUvc2VydmVyLmMgICAgICAgICAgICAgfCAgIDIgKy0KIDE1IGZp bGVzIGNoYW5nZWQsIDM2MSBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2luaXRkYi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9pbml0 ZGIuc2dtbAppbmRleCA4MTU4ODk2Mjk4Li4wNmIxMGZiYWFmIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvcmVmL2luaXRkYi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvaW5pdGRiLnNnbWwK QEAgLTE4Niw2ICsxODYsMTggQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgICAgICA8L2xp c3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICA8dmFybGlzdGVudHJ5IGlkPSJh cHAtaW5pdGRiLWNsdXN0ZXIta2V5LWNvbW1hbmQiIHhyZWZsYWJlbD0iY2x1c3RlciBrZXkgY29t bWFuZCI+CisgICAgICA8dGVybT48b3B0aW9uPi1jIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5jb21tYW5kPC9yZXBsYWNlYWJsZT48L29wdGlvbj48L3Rlcm0+CisgICAgICA8dGVybT48 b3B0aW9uPi0tY2x1c3Rlci1rZXktY29tbWFuZD08cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+Y29tbWFuZDwvcmVwbGFjZWFibGU+PC9vcHRpb24+PC90ZXJtPgorICAgICAgPGxpc3RpdGVt PgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGlzIG9wdGlvbiBzcGVjaWZpZXMgYW4gZXh0ZXJu YWwgY29tbWFuZCB0byBvYnRhaW4gdGhlIGNsdXN0ZXItbGV2ZWwKKyAgICAgICAga2V5IGZvciBj bHVzdGVyIGZpbGUgZW5jcnlwdGlvbiBkdXJpbmcgc2VydmVyIGluaXRpYWxpemF0aW9uIGFuZAor ICAgICAgICBzZXJ2ZXIgc3RhcnQ7ICBzZWUgPHhyZWYgbGlua2VuZD0iZ3VjLWNsdXN0ZXIta2V5 LWNvbW1hbmQiLz4gZm9yIGRldGFpbHMuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRl bT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxpc3RlbnRyeT4KICAgICAgIDx0 ZXJtPjxvcHRpb24+LUQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRpcmVjdG9yeTwv cmVwbGFjZWFibGU+PC9vcHRpb24+PC90ZXJtPgogICAgICAgPHRlcm0+PG9wdGlvbj4tLXBnZGF0 YT08cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGlyZWN0b3J5PC9yZXBsYWNlYWJsZT48 L29wdGlvbj48L3Rlcm0+CkBAIC0yNTcsNiArMjY5LDE4IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRh dGlvbgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZh cmxpc3RlbnRyeSBpZD0iYXBwLWluaXRkYi1maWxlLWVuY3J5cHRpb24tbWV0aG9kIgorICAgICAg eHJlZmxhYmVsPSJmaWxlIGVuY3J5cHRpb24iPgorICAgICAgPHRlcm0+PG9wdGlvbj4tSyA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZW5jcnlwdGlvbl9tZXRob2Q8L3JlcGxhY2VhYmxl Pjwvb3B0aW9uPjwvdGVybT4KKyAgICAgIDx0ZXJtPjxvcHRpb24+LS1maWxlLWVuY3J5cHRpb24t bWV0aG9kPTxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lbmNyeXB0aW9uX21ldGhvZDwv cmVwbGFjZWFibGU+PC9vcHRpb24+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxw YXJhPgorICAgICAgICBTcGVjaWZpZXMgdGhlIGNsdXN0ZXIgZmlsZSBlbmNyeXB0aW9uIG1ldGhv ZC4gIFRoZQorICAgICAgICB2YWx1ZSB2YWx1ZXMgYXJlIDxsaXRlcmFsPkFFUzEyODwvbGl0ZXJh bD4gKHRoZSBkZWZhdWx0KSwgPGxpdGVyYWw+QUVTMTkyPC9saXRlcmFsPiwgYW5kIDxsaXRlcmFs PkFFUzI1NjwvbGl0ZXJhbD4uCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAg ICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxpc3RlbnRyeT4KICAgICAgIDx0ZXJtPjxv cHRpb24+LS1sb2NhbGU9PHJlcGxhY2VhYmxlPmxvY2FsZTwvcmVwbGFjZWFibGU+PC9vcHRpb24+ PC90ZXJtPgogICAgICAgPGxpc3RpdGVtPgpAQCAtMzQ0LDYgKzM2OCwxNyBAQCBQb3N0Z3JlU1FM IGRvY3VtZW50YXRpb24KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5Pgog CisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48b3B0aW9uPi1SPC9vcHRpb24+PC90 ZXJtPgorICAgICAgPHRlcm0+PG9wdGlvbj4tLWF1dGhwcm9tcHQ8L29wdGlvbj48L3Rlcm0+Cisg ICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIEFsbG93cyB0aGUgPG9wdGlv bj4tLWNsdXN0ZXIta2V5LWNvbW1hbmQ8L29wdGlvbj4gY29tbWFuZAorICAgICAgICB0byBwcm9t cHQgZm9yIGEgcGFzc3BocmFzZSBvciBQSU4uCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0 aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxpc3RlbnRyeT4KICAgICAg IDx0ZXJtPjxvcHRpb24+LVM8L29wdGlvbj48L3Rlcm0+CiAgICAgICA8dGVybT48b3B0aW9uPi0t c3luYy1vbmx5PC9vcHRpb24+PC90ZXJtPgpAQCAtMzY5LDYgKzQwNCwxOCBAQCBQb3N0Z3JlU1FM IGRvY3VtZW50YXRpb24KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5Pgog CisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48b3B0aW9uPi11IDxyZXBsYWNlYWJs ZT5kYXRhZGlyPC9yZXBsYWNlYWJsZT48L29wdGlvbj48L3Rlcm0+CisgICAgICA8dGVybT48b3B0 aW9uPi0tY29weS1lbmNyeXB0aW9uLWtleXM9PHJlcGxhY2VhYmxlPmRhdGFkaXI8L3JlcGxhY2Vh YmxlPjwvb3B0aW9uPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAg ICAgICAgQ29waWVzIGNsdXN0ZXIgZmlsZSBlbmNyeXB0aW9uIGtleXMgZnJvbSBhbm90aGVyIGNs dXN0ZXI7IHJlcXVpcmVkCisgICAgICAgIHdoZW4gdXNpbmcgPGFwcGxpY2F0aW9uPnBnX3VwZ3Jh ZGU8L2FwcGxpY2F0aW9uPiBvbiBhIGNsdXN0ZXIKKyAgICAgICAgd2l0aCBjbHVzdGVyIGZpbGUg ZW5jcnlwdGlvbiBlbmFibGVkLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+Cisg ICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgICA8dGVybT48 b3B0aW9uPi1VIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj51c2VybmFtZTwvcmVwbGFj ZWFibGU+PC9vcHRpb24+PC90ZXJtPgogICAgICAgPHRlcm0+PG9wdGlvbj4tLXVzZXJuYW1lPTxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj51c2VybmFtZTwvcmVwbGFjZWFibGU+PC9vcHRp b24+PC90ZXJtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19jdGwtcmVmLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL3BnX2N0bC1yZWYuc2dtbAppbmRleCA0NjkwNjk2NmViLi5lMzcw NWM3MjRlIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX2N0bC1yZWYuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL3BnX2N0bC1yZWYuc2dtbApAQCAtMzgsNiArMzgsNyBAQCBQb3N0 Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgIDxhcmcgY2hvaWNlPSJvcHQiPjxvcHRpb24+LXM8L29w dGlvbj48L2FyZz4KICAgIDxhcmcgY2hvaWNlPSJvcHQiPjxvcHRpb24+LW88L29wdGlvbj4gPHJl cGxhY2VhYmxlPm9wdGlvbnM8L3JlcGxhY2VhYmxlPjwvYXJnPgogICAgPGFyZyBjaG9pY2U9Im9w dCI+PG9wdGlvbj4tcDwvb3B0aW9uPiA8cmVwbGFjZWFibGU+cGF0aDwvcmVwbGFjZWFibGU+PC9h cmc+CisgICA8YXJnIGNob2ljZT0ib3B0Ij48b3B0aW9uPi1SPC9vcHRpb24+PC9hcmc+CiAgICA8 YXJnIGNob2ljZT0ib3B0Ij48b3B0aW9uPi1jPC9vcHRpb24+PC9hcmc+CiAgIDwvY21kc3lub3Bz aXM+CiAKQEAgLTcyLDYgKzczLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgICA8YXJn IGNob2ljZT0ib3B0Ij48b3B0aW9uPi10PC9vcHRpb24+IDxyZXBsYWNlYWJsZT5zZWNvbmRzPC9y ZXBsYWNlYWJsZT48L2FyZz4KICAgIDxhcmcgY2hvaWNlPSJvcHQiPjxvcHRpb24+LXM8L29wdGlv bj48L2FyZz4KICAgIDxhcmcgY2hvaWNlPSJvcHQiPjxvcHRpb24+LW88L29wdGlvbj4gPHJlcGxh Y2VhYmxlPm9wdGlvbnM8L3JlcGxhY2VhYmxlPjwvYXJnPgorICAgPGFyZyBjaG9pY2U9Im9wdCI+ PG9wdGlvbj4tUjwvb3B0aW9uPjwvYXJnPgogICAgPGFyZyBjaG9pY2U9Im9wdCI+PG9wdGlvbj4t Yzwvb3B0aW9uPjwvYXJnPgogICA8L2NtZHN5bm9wc2lzPgogCkBAIC0zNzMsNiArMzc1LDE4IEBA IFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJs aXN0ZW50cnk+CiAKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxvcHRpb24+LVI8 L29wdGlvbj48L3Rlcm0+CisgICAgICA8dGVybT48b3B0aW9uPi0tYXV0aHByb21wdDwvb3B0aW9u PjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgQWxsb3dz IDxvcHRpb24+c3NsX3Bhc3NwaHJhc2VfY29tbWFuZDwvb3B0aW9uPiBvcgorICAgICAgICA8b3B0 aW9uPmNsdXN0ZXJfa2V5X2NvbW1hbmQ8L29wdGlvbj4gdG8gcHJvbXB0IGZvciBhIHBhc3NwaHJh c2UKKyAgICAgICAgb3IgUElOLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+Cisg ICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgICA8dGVybT48 b3B0aW9uPi1zPC9vcHRpb24+PC90ZXJtPgogICAgICAgPHRlcm0+PG9wdGlvbj4tLXNpbGVudDwv b3B0aW9uPjwvdGVybT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGd1cGdyYWRlLnNn bWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BndXBncmFkZS5zZ21sCmluZGV4IDhmN2EzMDI1YzMuLjQz NjJlNTUxYzkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcGd1cGdyYWRlLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZi9wZ3VwZ3JhZGUuc2dtbApAQCAtMTgyLDYgKzE4MiwxNSBAQCBQ b3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgICAgIDwvcGFyYT48L2xpc3RpdGVtPgogICAgICA8 L3Zhcmxpc3RlbnRyeT4KIAorICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PG9wdGlv bj4tUjwvb3B0aW9uPjwvdGVybT4KKyAgICAgIDx0ZXJtPjxvcHRpb24+LS1hdXRocHJvbXB0PC9v cHRpb24+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPjxwYXJhPmFsbG93cyA8b3B0aW9uPnNzbF9w YXNzcGhyYXNlX2NvbW1hbmQ8L29wdGlvbj4gb3IKKyAgICAgIDxvcHRpb24+Y2x1c3Rlcl9rZXlf Y29tbWFuZDwvb3B0aW9uPiB0byBwcm9tcHQgZm9yIGEgcGFzc3BocmFzZQorICAgICAgb3IgUElO LgorICAgICAgPC9wYXJhPjwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAg IDx2YXJsaXN0ZW50cnk+CiAgICAgICA8dGVybT48b3B0aW9uPi1zPC9vcHRpb24+IDxyZXBsYWNl YWJsZT5kaXI8L3JlcGxhY2VhYmxlPjwvdGVybT4KICAgICAgIDx0ZXJtPjxvcHRpb24+LS1zb2Nr ZXRkaXI9PC9vcHRpb24+PHJlcGxhY2VhYmxlPmRpcjwvcmVwbGFjZWFibGU+PC90ZXJtPgpAQCAt MzA5LDcgKzMxOCw5IEBAIG1ha2UgcHJlZml4PS91c3IvbG9jYWwvcGdzcWwubmV3IGluc3RhbGwK ICAgICAgQWdhaW4sIHVzZSBjb21wYXRpYmxlIDxjb21tYW5kPmluaXRkYjwvY29tbWFuZD4KICAg ICAgZmxhZ3MgdGhhdCBtYXRjaCB0aGUgb2xkIGNsdXN0ZXIuIE1hbnkKICAgICAgcHJlYnVpbHQg aW5zdGFsbGVycyBkbyB0aGlzIHN0ZXAgYXV0b21hdGljYWxseS4gVGhlcmUgaXMgbm8gbmVlZCB0 bwotICAgICBzdGFydCB0aGUgbmV3IGNsdXN0ZXIuCisgICAgIHN0YXJ0IHRoZSBuZXcgY2x1c3Rl ci4gIElmIHVwZ3JhZGluZyBhIGNsdXN0ZXIgdGhhdCB1c2VzCisgICAgIGNsdXN0ZXIgZmlsZSBl bmNyeXB0aW9uLCB0aGUgPGNvbW1hbmQ+aW5pdGRiPC9jb21tYW5kPiBvcHRpb24KKyAgICAgPG9w dGlvbj4tLWNvcHktZW5jcnlwdGlvbi1rZXlzPC9vcHRpb24+IG11c3QgYmUgc3BlY2lmaWVkLgog ICAgIDwvcGFyYT4KICAgIDwvc3RlcD4KIApAQCAtODQyLDYgKzg1MywxMyBAQCBwc3FsIC0tdXNl cm5hbWU9cG9zdGdyZXMgLS1maWxlPXNjcmlwdC5zcWwgcG9zdGdyZXMKICAgIGlzIGRvd24uCiAg IDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIElmIHRoZSBvbGQgY2x1c3RlciB1c2VzIGZpbGUgZW5j cnlwdGlvbiwgdGhlIG5ldyBjbHVzdGVyIG11c3QgdXNlCisgICB0aGUgc2FtZSBrZXlzLCBzbyA8 Y29tbWFuZD5wZ191cGdyYWRlPC9jb21tYW5kPiBjb3BpZXMgdGhlbSB0byB0aGUKKyAgIG5ldyBj bHVzdGVyLiAgSXQgaXMgbmVjZXNzYXJ5IHRvIGluaXRpYWxpemUgdGhlIG5ldyBjbHVzdGVyIHdp dGgKKyAgIHRoZSBzYW1lIDx2YXJuYW1lPmNsdXN0ZXJfa2V5X2NvbW1hbmQ8L3Zhcm5hbWU+IGFu ZCB0aGUgc2FtZQorICAgZmlsZSBlbmNyeXB0aW9uIG1ldGhvZC4KKyAgPC9wYXJhPgogIDwvcmVm c2VjdDE+CiAKICA8cmVmc2VjdDE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3Bvc3Rn cmVzLXJlZi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9wb3N0Z3Jlcy1yZWYuc2dtbAppbmRleCA1 NWEzZjZjNjlkLi5mMGZhNTJlYmRjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3Bvc3Rn cmVzLXJlZi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcG9zdGdyZXMtcmVmLnNnbWwKQEAg LTMwNSw2ICszMDUsMTkgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgICAgICA8L2xpc3Rp dGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICA8dmFybGlzdGVudHJ5PgorICAgICAg PHRlcm0+PG9wdGlvbj4tUiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZmlsZS1kZXNj cmlwdG9yPC9yZXBsYWNlYWJsZT48L29wdGlvbj48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+Cisg ICAgICAgPHBhcmE+CisgICAgICAgIE1ha2VzIDxjb21tYW5kPnBvc3RncmVzPC9jb21tYW5kPiBw cm9tcHQgZm9yIGEgcGFzc3BocmFzZSBvciBQSU4KKyAgICAgICAgZnJvbSB0aGUgc3BlY2lmaWVk IG9wZW4gbnVtZXJpYyBmaWxlIGRlc2NyaXB0b3IuICBUaGUgZGVzY3JpcHRvcgorICAgICAgICBp cyBjbG9zZWQgYWZ0ZXIgdGhlIGtleSBpcyByZWFkLiAgVGhlIGZpbGUgZGVzY3JpcHRvciBudW1i ZXIKKyAgICAgICAgPGxpdGVyYWw+LTE8L2xpdGVyYWw+IGR1cGxpY2F0ZXMgc3RhbmRhcmQgZXJy b3IgZm9yIHRoZSB0ZXJtaW5hbDsKKyAgICAgICAgdGhpcyBpcyB1c2VmdWwgZm9yIHNpbmdsZS11 c2VyIG1vZGUuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJs aXN0ZW50cnk+CisKICAgICAgPHZhcmxpc3RlbnRyeT4KICAgICAgIDx0ZXJtPjxvcHRpb24+LXM8 L29wdGlvbj48L3Rlcm0+CiAgICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9zcmMvYmluL2lu aXRkYi9pbml0ZGIuYyBiL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jCmluZGV4IGY2MWEwNDMwNTUu LjhjN2UxZTM5YzUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jCisrKyBiL3Ny Yy9iaW4vaW5pdGRiL2luaXRkYi5jCkBAIC02OCw2ICs2OCw3IEBACiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19kYXRhYmFzZV9kLmgiCS8qIHBncm1pbmNsdWRlIGlnbm9yZSAqLwogI2luY2x1ZGUgImNv bW1vbi9maWxlX3Blcm0uaCIKICNpbmNsdWRlICJjb21tb24vZmlsZV91dGlscy5oIgorI2luY2x1 ZGUgImNvbW1vbi9rbWdyX3V0aWxzLmgiCiAjaW5jbHVkZSAiY29tbW9uL2xvZ2dpbmcuaCIKICNp bmNsdWRlICJjb21tb24vcGdfcHJuZy5oIgogI2luY2x1ZGUgImNvbW1vbi9yZXN0cmljdGVkX3Rv a2VuLmgiCkBAIC0xNDcsMTEgKzE0OCwxNiBAQCBzdGF0aWMgYm9vbCBub2NsZWFuID0gZmFsc2U7 CiBzdGF0aWMgYm9vbCBub2luc3RydWN0aW9ucyA9IGZhbHNlOwogc3RhdGljIGJvb2wgZG9fc3lu YyA9IHRydWU7CiBzdGF0aWMgYm9vbCBzeW5jX29ubHkgPSBmYWxzZTsKK3N0YXRpYyBib29sIHBh c3NfdGVybWluYWxfZmQgPSBmYWxzZTsKK3N0YXRpYyBjaGFyICp0ZXJtX2ZkX29wdCA9IE5VTEw7 CitzdGF0aWMgaW50IGZpbGVfZW5jcnlwdGlvbl9tZXRob2QgPSBESVNBQkxFRF9FTkNSWVBUSU9O X01FVEhPRDsKIHN0YXRpYyBib29sIHNob3dfc2V0dGluZyA9IGZhbHNlOwogc3RhdGljIGJvb2wg ZGF0YV9jaGVja3N1bXMgPSBmYWxzZTsKIHN0YXRpYyBjaGFyICp4bG9nX2RpciA9IE5VTEw7CiBz dGF0aWMgY2hhciAqc3RyX3dhbF9zZWdtZW50X3NpemVfbWIgPSBOVUxMOwogc3RhdGljIGludAl3 YWxfc2VnbWVudF9zaXplX21iOworc3RhdGljIGNoYXIgKmNsdXN0ZXJfa2V5X2NtZCA9IE5VTEw7 CitzdGF0aWMgY2hhciAqb2xkX2tleV9kYXRhZGlyID0gTlVMTDsKIAogCiAvKiBpbnRlcm5hbCB2 YXJzICovCkBAIC0yMTQsNiArMjIwLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IHN1YmRp cnNbXSA9IHsKIAkiZ2xvYmFsIiwKIAkicGdfd2FsL2FyY2hpdmVfc3RhdHVzIiwKIAkicGdfY29t bWl0X3RzIiwKKwkicGdfY3J5cHRva2V5cyIsCiAJInBnX2R5bnNobWVtIiwKIAkicGdfbm90aWZ5 IiwKIAkicGdfc2VyaWFsIiwKQEAgLTkwNCwxMiArOTExLDEzIEBAIHRlc3RfY29uZmlnX3NldHRp bmdzKHZvaWQpCiAJCXRlc3RfYnVmZnMgPSBNSU5fQlVGU19GT1JfQ09OTlModGVzdF9jb25ucyk7 CiAKIAkJc25wcmludGYoY21kLCBzaXplb2YoY21kKSwKLQkJCQkgIlwiJXNcIiAtLWNoZWNrICVz ICVzICIKKwkJCQkgIlwiJXNcIiAtLWNoZWNrIC14MCAlcyAlcyAlcyAiCiAJCQkJICItYyBtYXhf Y29ubmVjdGlvbnM9JWQgIgogCQkJCSAiLWMgc2hhcmVkX2J1ZmZlcnM9JWQgIgogCQkJCSAiLWMg ZHluYW1pY19zaGFyZWRfbWVtb3J5X3R5cGU9JXMgIgogCQkJCSAiPCBcIiVzXCIgPiBcIiVzXCIg Mj4mMSIsCiAJCQkJIGJhY2tlbmRfZXhlYywgYm9vdF9vcHRpb25zLCBleHRyYV9vcHRpb25zLAor CQkJCSB0ZXJtX2ZkX29wdCA/IHRlcm1fZmRfb3B0IDogIiIsCiAJCQkJIHRlc3RfY29ubnMsIHRl c3RfYnVmZnMsCiAJCQkJIGR5bmFtaWNfc2hhcmVkX21lbW9yeV90eXBlLAogCQkJCSBERVZOVUxM LCBERVZOVUxMKTsKQEAgLTk0MSwxMiArOTQ5LDEzIEBAIHRlc3RfY29uZmlnX3NldHRpbmdzKHZv aWQpCiAJCX0KIAogCQlzbnByaW50ZihjbWQsIHNpemVvZihjbWQpLAotCQkJCSAiXCIlc1wiIC0t Y2hlY2sgJXMgJXMgIgorCQkJCSAiXCIlc1wiIC0tY2hlY2sgJXMgJXMgJXMgIgogCQkJCSAiLWMg bWF4X2Nvbm5lY3Rpb25zPSVkICIKIAkJCQkgIi1jIHNoYXJlZF9idWZmZXJzPSVkICIKIAkJCQkg Ii1jIGR5bmFtaWNfc2hhcmVkX21lbW9yeV90eXBlPSVzICIKIAkJCQkgIjwgXCIlc1wiID4gXCIl c1wiIDI+JjEiLAogCQkJCSBiYWNrZW5kX2V4ZWMsIGJvb3Rfb3B0aW9ucywgZXh0cmFfb3B0aW9u cywKKwkJCQkgdGVybV9mZF9vcHQgPyB0ZXJtX2ZkX29wdCA6ICIiLAogCQkJCSBuX2Nvbm5lY3Rp b25zLCB0ZXN0X2J1ZmZzLAogCQkJCSBkeW5hbWljX3NoYXJlZF9tZW1vcnlfdHlwZSwKIAkJCQkg REVWTlVMTCwgREVWTlVMTCk7CkBAIC0xMTMzLDYgKzExNDIsMTMgQEAgc2V0dXBfY29uZmlnKHZv aWQpCiAJCQkJCQkJCSAgInBhc3N3b3JkX2VuY3J5cHRpb24gPSBtZDUiKTsKIAl9CiAKKwlpZiAo Y2x1c3Rlcl9rZXlfY21kKQorCXsKKwkJc25wcmludGYocmVwbHRvaywgc2l6ZW9mKHJlcGx0b2sp LCAiY2x1c3Rlcl9rZXlfY29tbWFuZCA9ICclcyciLAorCQkJCSBlc2NhcGVfcXVvdGVzKGNsdXN0 ZXJfa2V5X2NtZCkpOworCQljb25mbGluZXMgPSByZXBsYWNlX3Rva2VuKGNvbmZsaW5lcywgIiNj bHVzdGVyX2tleV9jb21tYW5kID0gJyciLCByZXBsdG9rKTsKKwl9CisKIAkvKgogCSAqIElmIGdy b3VwIGFjY2VzcyBoYXMgYmVlbiBlbmFibGVkIGZvciB0aGUgY2x1c3RlciB0aGVuIGl0IG1ha2Vz IHNlbnNlIHRvCiAJICogZW5zdXJlIHRoYXQgdGhlIGxvZyBmaWxlcyBhbHNvIGFsbG93IGdyb3Vw IGFjY2Vzcy4gIE90aGVyd2lzZSBhIGJhY2t1cApAQCAtMTMyMSwxMSArMTMzNywxNyBAQCBib290 c3RyYXBfdGVtcGxhdGUxKHZvaWQpCiAJdW5zZXRlbnYoIlBHQ0xJRU5URU5DT0RJTkciKTsKIAog CXNucHJpbnRmKGNtZCwgc2l6ZW9mKGNtZCksCi0JCQkgIlwiJXNcIiAtLWJvb3QgLVggJWQgJXMg JXMgJXMgJXMiLAorCQkJICJcIiVzXCIgLS1ib290IC1YICVkICVzICVzICVzICVzICVzICVzICVz ICVzICVzIiwKIAkJCSBiYWNrZW5kX2V4ZWMsCiAJCQkgd2FsX3NlZ21lbnRfc2l6ZV9tYiAqICgx MDI0ICogMTAyNCksCiAJCQkgZGF0YV9jaGVja3N1bXMgPyAiLWsiIDogIiIsCi0JCQkgYm9vdF9v cHRpb25zLCBleHRyYV9vcHRpb25zLAorCQkJIGNsdXN0ZXJfa2V5X2NtZCA/ICItSyIgOiAiIiwK KwkJCSBjbHVzdGVyX2tleV9jbWQgPyBlbmNyeXB0aW9uX21ldGhvZHNbZmlsZV9lbmNyeXB0aW9u X21ldGhvZF0ubmFtZSA6ICIiLAorCQkJIG9sZF9rZXlfZGF0YWRpciA/ICItdSIgOiAiIiwKKwkJ CSBvbGRfa2V5X2RhdGFkaXIgPyBvbGRfa2V5X2RhdGFkaXIgOiAiIiwKKwkJCSBib290X29wdGlv bnMsCisJCQkgZXh0cmFfb3B0aW9ucywKKwkJCSB0ZXJtX2ZkX29wdCA/IHRlcm1fZmRfb3B0IDog IiIsCiAJCQkgZGVidWcgPyAiLWQgNSIgOiAiIik7CiAKIApAQCAtMjE1OSwxOCArMjE4MSwyNiBA QCB1c2FnZShjb25zdCBjaGFyICpwcm9nbmFtZSkKIAlwcmludGYoXygiICAtVCwgLS10ZXh0LXNl YXJjaC1jb25maWc9Q0ZHXG4iCiAJCQkgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZh dWx0IHRleHQgc2VhcmNoIGNvbmZpZ3VyYXRpb25cbiIpKTsKIAlwcmludGYoXygiICAtVSwgLS11 c2VybmFtZT1OQU1FICAgICAgIGRhdGFiYXNlIHN1cGVydXNlciBuYW1lXG4iKSk7Ci0JcHJpbnRm KF8oIiAgLVcsIC0tcHdwcm9tcHQgICAgICAgICAgICBwcm9tcHQgZm9yIGEgcGFzc3dvcmQgZm9y IHRoZSBuZXcgc3VwZXJ1c2VyXG4iKSk7CisJcHJpbnRmKF8oIiAgLVcsIC0tcHdwcm9tcHQgICAg ICAgICAgICBwcm9tcHQgZm9yIHRoZSBuZXcgc3VwZXJ1c2VyIHBhc3N3b3JkXG4iKSk7CiAJcHJp bnRmKF8oIiAgLVgsIC0td2FsZGlyPVdBTERJUiAgICAgICBsb2NhdGlvbiBmb3IgdGhlIHdyaXRl LWFoZWFkIGxvZyBkaXJlY3RvcnlcbiIpKTsKIAlwcmludGYoXygiICAgICAgLS13YWwtc2Vnc2l6 ZT1TSVpFICAgIHNpemUgb2YgV0FMIHNlZ21lbnRzLCBpbiBtZWdhYnl0ZXNcbiIpKTsKIAlwcmlu dGYoXygiXG5MZXNzIGNvbW1vbmx5IHVzZWQgb3B0aW9uczpcbiIpKTsKKwlwcmludGYoXygiICAt YywgLS1jbHVzdGVyLWtleS1jb21tYW5kPUNPTU1BTkRcbiIKKwkJCSAiICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGVuYWJsZSBjbHVzdGVyIGZpbGUgZW5jcnlwdGlvbiBhbmQgc2V0IGNvbW1h bmRcbiIKKwkJCSAiICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIG9idGFpbiB0aGUgY2x1 c3RlciBrZXlcbiIpKTsKIAlwcmludGYoXygiICAtZCwgLS1kZWJ1ZyAgICAgICAgICAgICAgIGdl bmVyYXRlIGxvdHMgb2YgZGVidWdnaW5nIG91dHB1dFxuIikpOwogCXByaW50ZihfKCIgICAgICAt LWRpc2NhcmQtY2FjaGVzICAgICAgc2V0IGRlYnVnX2Rpc2NhcmRfY2FjaGVzPTFcbiIpKTsKKwlw cmludGYoXygiICAtSywgLS1maWxlLWVuY3J5cHRpb24tbWV0aG9kPU1FVEhPRFxuIgorCQkJICIg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3RlciBmaWxlIGVuY3J5cHRpb24gbWV0aG9k XG4iKSk7CiAJcHJpbnRmKF8oIiAgLUwgRElSRUNUT1JZICAgICAgICAgICAgICB3aGVyZSB0byBm aW5kIHRoZSBpbnB1dCBmaWxlc1xuIikpOwogCXByaW50ZihfKCIgIC1uLCAtLW5vLWNsZWFuICAg ICAgICAgICAgZG8gbm90IGNsZWFuIHVwIGFmdGVyIGVycm9yc1xuIikpOwogCXByaW50ZihfKCIg IC1OLCAtLW5vLXN5bmMgICAgICAgICAgICAgZG8gbm90IHdhaXQgZm9yIGNoYW5nZXMgdG8gYmUg d3JpdHRlbiBzYWZlbHkgdG8gZGlza1xuIikpOworCXByaW50ZihfKCIgIC1SLCAtLWF1dGhwcm9t cHQgICAgICAgICAgcHJvbXB0IGZvciBhIHBhc3NwaHJhc2Ugb3IgUElOXG4iKSk7CiAJcHJpbnRm KF8oIiAgICAgIC0tbm8taW5zdHJ1Y3Rpb25zICAgICBkbyBub3QgcHJpbnQgaW5zdHJ1Y3Rpb25z IGZvciBuZXh0IHN0ZXBzXG4iKSk7CiAJcHJpbnRmKF8oIiAgLXMsIC0tc2hvdyAgICAgICAgICAg ICAgICBzaG93IGludGVybmFsIHNldHRpbmdzXG4iKSk7CiAJcHJpbnRmKF8oIiAgLVMsIC0tc3lu Yy1vbmx5ICAgICAgICAgICBvbmx5IHN5bmMgZGF0YWJhc2UgZmlsZXMgdG8gZGlzaywgdGhlbiBl eGl0XG4iKSk7CisJcHJpbnRmKF8oIiAgLXUsIC0tY29weS1lbmNyeXB0aW9uLWtleXM9REFUQURJ UlxuIgorCQkJICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29weSB0aGUgZmlsZSBlbmNy eXB0aW9uIGtleSBmcm9tIGFub3RoZXIgY2x1c3RlclxuIikpOwogCXByaW50ZihfKCJcbk90aGVy IG9wdGlvbnM6XG4iKSk7CiAJcHJpbnRmKF8oIiAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgICBv dXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvbiwgdGhlbiBleGl0XG4iKSk7CiAJcHJpbnRmKF8oIiAg LT8sIC0taGVscCAgICAgICAgICAgICAgICBzaG93IHRoaXMgaGVscCwgdGhlbiBleGl0XG4iKSk7 CkBAIC0yNzAwLDYgKzI3MzAsMjMgQEAgaW5pdGlhbGl6ZV9kYXRhX2RpcmVjdG9yeSh2b2lkKQog CS8qIFRvcCBsZXZlbCBQR19WRVJTSU9OIGlzIGNoZWNrZWQgYnkgYm9vdHN0cmFwcGVyLCBzbyBt YWtlIGl0IGZpcnN0ICovCiAJd3JpdGVfdmVyc2lvbl9maWxlKE5VTEwpOwogCisJaWYgKHBhc3Nf dGVybWluYWxfZmQpCisJeworI2lmbmRlZiBXSU4zMgorCQlpbnQgdGVybWluYWxfZmQgPSBvcGVu KCIvZGV2L3R0eSIsIE9fUkRXUiwgMCk7CisjZWxzZQorCQlpbnQgdGVybWluYWxfZmQgPSBvcGVu KCJDT05PVVQkIiwgT19SRFdSLCAwKTsKKyNlbmRpZgorCisJCWlmICh0ZXJtaW5hbF9mZCA8IDAp CisJCXsKKwkJCXBnX2xvZ19lcnJvcihfKCIlczogY291bGQgbm90IG9wZW4gdGVybWluYWw6ICVz XG4iKSwKKwkJCQkJCSBwcm9nbmFtZSwgc3RyZXJyb3IoZXJybm8pKTsKKwkJCWV4aXQoMSk7CisJ CX0KKwkJdGVybV9mZF9vcHQgPSBwc3ByaW50ZigiLVIgJWQiLCB0ZXJtaW5hbF9mZCk7CisJfQor CiAJLyogU2VsZWN0IHN1aXRhYmxlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgKi8KIAlzZXRfbnVs bF9jb25mKCk7CiAJdGVzdF9jb25maWdfc2V0dGluZ3MoKTsKQEAgLTI3MjMsOCArMjc3MCw5IEBA IGluaXRpYWxpemVfZGF0YV9kaXJlY3Rvcnkodm9pZCkKIAlmZmx1c2goc3Rkb3V0KTsKIAogCXNu cHJpbnRmKGNtZCwgc2l6ZW9mKGNtZCksCi0JCQkgIlwiJXNcIiAlcyAlcyB0ZW1wbGF0ZTEgPiVz IiwKKwkJCSAiXCIlc1wiICVzICVzICVzIHRlbXBsYXRlMSA+JXMiLAogCQkJIGJhY2tlbmRfZXhl YywgYmFja2VuZF9vcHRpb25zLCBleHRyYV9vcHRpb25zLAorCQkJIHRlcm1fZmRfb3B0ID8gdGVy bV9mZF9vcHQgOiAiIiwKIAkJCSBERVZOVUxMKTsKIAogCVBHX0NNRF9PUEVOOwpAQCAtMjgwMiwx MCArMjg1MCwxNCBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCXsid2FsZGlyIiwg cmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICdYJ30sCiAJCXsid2FsLXNlZ3NpemUiLCByZXF1aXJl ZF9hcmd1bWVudCwgTlVMTCwgMTJ9LAogCQl7ImRhdGEtY2hlY2tzdW1zIiwgbm9fYXJndW1lbnQs IE5VTEwsICdrJ30sCisJCXsiYXV0aHByb21wdCIsIG5vX2FyZ3VtZW50LCBOVUxMLCAnUid9LAor CQl7ImZpbGUtZW5jcnlwdGlvbi1tZXRob2QiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ0sn fSwKIAkJeyJhbGxvdy1ncm91cC1hY2Nlc3MiLCBub19hcmd1bWVudCwgTlVMTCwgJ2cnfSwKIAkJ eyJkaXNjYXJkLWNhY2hlcyIsIG5vX2FyZ3VtZW50LCBOVUxMLCAxNH0sCiAJCXsibG9jYWxlLXBy b3ZpZGVyIiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsIDE1fSwKIAkJeyJpY3UtbG9jYWxlIiwg cmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsIDE2fSwKKwkJeyJjbHVzdGVyLWtleS1jb21tYW5kIiwg cmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICdjJ30sCisJCXsiY29weS1lbmNyeXB0aW9uLWtleXMi LCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ3UnfSwKIAkJe05VTEwsIDAsIE5VTEwsIDB9CiAJ fTsKIApAQCAtMjg0Nyw3ICsyODk5LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQog CiAJLyogcHJvY2VzcyBjb21tYW5kLWxpbmUgb3B0aW9ucyAqLwogCi0Jd2hpbGUgKChjID0gZ2V0 b3B0X2xvbmcoYXJnYywgYXJndiwgIkE6ZEQ6RTpna0w6bk5zU1Q6VTpXWDoiLCBsb25nX29wdGlv bnMsICZvcHRpb25faW5kZXgpKSAhPSAtMSkKKwl3aGlsZSAoKGMgPSBnZXRvcHRfbG9uZyhhcmdj LCBhcmd2LCAiQTpjOmREOkU6Z2tLOkw6bk5Sc1NUOnU6VTpXWDoiLCBsb25nX29wdGlvbnMsICZv cHRpb25faW5kZXgpKSAhPSAtMSkKIAl7CiAJCXN3aXRjaCAoYykKIAkJewpAQCAtMjg5Myw2ICsy OTQ1LDI4IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJCWNhc2UgJ04nOgogCQkJ CWRvX3N5bmMgPSBmYWxzZTsKIAkJCQlicmVhazsKKwkJCWNhc2UgJ1InOgorCQkJCXBhc3NfdGVy bWluYWxfZmQgPSB0cnVlOworCQkJCWJyZWFrOworCQkJY2FzZSAnSyc6CisJCQkJeworCQkJCQlp bnQgaTsKKworCQkJCQkvKiBtZXRob2QgMC9kaXNhYmxlZCBjYW5ub3QgYmUgc3BlY2lmaWVkICov CisJCQkJCWZvciAoaSA9IERJU0FCTEVEX0VOQ1JZUFRJT05fTUVUSE9EICsgMTsKKwkJCQkJCSBp IDwgTlVNX0VOQ1JZUFRJT05fTUVUSE9EUzsgaSsrKQorCQkJCQkJaWYgKHBnX3N0cmNhc2VjbXAo b3B0YXJnLCBlbmNyeXB0aW9uX21ldGhvZHNbaV0ubmFtZSkgPT0gMCkKKwkJCQkJCXsKKwkJCQkJ CQlmaWxlX2VuY3J5cHRpb25fbWV0aG9kID0gaTsKKwkJCQkJCQlicmVhazsKKwkJCQkJCX0KKwkJ CQkJaWYgKGkgPT0gTlVNX0VOQ1JZUFRJT05fTUVUSE9EUykKKwkJCQkJeworCQkJCQkJZnByaW50 ZihzdGRlcnIsIF8oImludmFsaWQgY2x1c3RlciBlbmNyeXB0aW9uIG1ldGhvZFxuIikpOworCQkJ CQkJZXhpdCgxKTsKKwkJCQkJfQorCQkJCX0KKwkJCQlicmVhazsKIAkJCWNhc2UgJ1MnOgogCQkJ CXN5bmNfb25seSA9IHRydWU7CiAJCQkJYnJlYWs7CkBAIC0yOTI5LDYgKzMwMDMsMTIgQEAgbWFp bihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQkJY2FzZSA5OgogCQkJCXB3ZmlsZW5hbWUgPSBw Z19zdHJkdXAob3B0YXJnKTsKIAkJCQlicmVhazsKKwkJCWNhc2UgJ2MnOgorCQkJCWNsdXN0ZXJf a2V5X2NtZCA9IHBnX3N0cmR1cChvcHRhcmcpOworCQkJCWJyZWFrOworCQkJY2FzZSAndSc6CisJ CQkJb2xkX2tleV9kYXRhZGlyID0gcGdfc3RyZHVwKG9wdGFyZyk7CisJCQkJYnJlYWs7CiAJCQlj YXNlICdzJzoKIAkJCQlzaG93X3NldHRpbmcgPSB0cnVlOwogCQkJCWJyZWFrOwpAQCAtMzAxNCw2 ICszMDk0LDMyIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAlpZiAocHdwcm9tcHQg JiYgcHdmaWxlbmFtZSkKIAkJcGdfZmF0YWwoInBhc3N3b3JkIHByb21wdCBhbmQgcGFzc3dvcmQg ZmlsZSBjYW5ub3QgYmUgc3BlY2lmaWVkIHRvZ2V0aGVyIik7CiAKKyNpZm5kZWYgVVNFX09QRU5T U0wKKwlpZiAoY2x1c3Rlcl9rZXlfY21kKQorCXsKKwkJcGdfbG9nX2Vycm9yKCJjbHVzdGVyIGZp bGUgZW5jcnlwdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGJlY2F1c2UgT3BlblNTTCBpcyBub3Qgc3Vw cG9ydGVkIGJ5IHRoaXMgYnVpbGQiKTsKKwkJZXhpdCgxKTsKKwl9CisjZW5kaWYKKworCWlmIChv bGRfa2V5X2RhdGFkaXIgIT0gTlVMTCAmJiBjbHVzdGVyX2tleV9jbWQgPT0gTlVMTCkKKwl7CisJ CXBnX2xvZ19lcnJvcigiY29weWluZyBlbmNyeXB0aW9uIGtleXMgcmVxdWlyZXMgdGhlIGNsdXN0 ZXIga2V5IGNvbW1hbmQgdG8gYmUgc3BlY2lmaWVkIik7CisJCWV4aXQoMSk7CisJfQorCisJaWYg KGZpbGVfZW5jcnlwdGlvbl9tZXRob2QgIT0gRElTQUJMRURfRU5DUllQVElPTl9NRVRIT0QgJiYK KwkJY2x1c3Rlcl9rZXlfY21kID09IE5VTEwpCisJeworCQlwZ19sb2dfZXJyb3IoImEgZmlsZSBl bmNyeXB0aW9uIG1ldGhvZCByZXF1aXJlcyB0aGUgY2x1c3RlciBrZXkgY29tbWFuZCB0byBiZSBz cGVjaWZpZWQiKTsKKwkJZXhpdCgxKTsKKwl9CisKKwkvKiBzZXQgdGhlIGRlZmF1bHQgKi8KKwlp ZiAoZmlsZV9lbmNyeXB0aW9uX21ldGhvZCA9PSBESVNBQkxFRF9FTkNSWVBUSU9OX01FVEhPRCAm JgorCQljbHVzdGVyX2tleV9jbWQgIT0gTlVMTCkKKwkJZmlsZV9lbmNyeXB0aW9uX21ldGhvZCA9 IERFRkFVTFRfRU5BQkxFRF9FTkNSWVBUSU9OX01FVEhPRDsKKwogCWNoZWNrX2F1dGhtZXRob2Rf dW5zcGVjaWZpZWQoJmF1dGhtZXRob2Rsb2NhbCk7CiAJY2hlY2tfYXV0aG1ldGhvZF91bnNwZWNp ZmllZCgmYXV0aG1ldGhvZGhvc3QpOwogCkBAIC0zMDcyLDYgKzMxNzgsMTEgQEAgbWFpbihpbnQg YXJnYywgY2hhciAqYXJndltdKQogCWVsc2UKIAkJcHJpbnRmKF8oIkRhdGEgcGFnZSBjaGVja3N1 bXMgYXJlIGRpc2FibGVkLlxuIikpOwogCisJaWYgKGNsdXN0ZXJfa2V5X2NtZCkKKwkJcHJpbnRm KF8oIkNsdXN0ZXIgZmlsZSBlbmNyeXB0aW9uIGlzIGVuYWJsZWQuXG4iKSk7CisJZWxzZQorCQlw cmludGYoXygiQ2x1c3RlciBmaWxlIGVuY3J5cHRpb24gaXMgZGlzYWJsZWQuXG4iKSk7CisKIAlp ZiAocHdwcm9tcHQgfHwgcHdmaWxlbmFtZSkKIAkJZ2V0X3N1X3B3ZCgpOwogCmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2NvbnRyb2xkYXRhL3BnX2NvbnRyb2xkYXRhLmMgYi9zcmMvYmluL3BnX2Nv bnRyb2xkYXRhL3BnX2NvbnRyb2xkYXRhLmMKaW5kZXggYzM5MGVjNTFjZS4uZDI1ZDEzYzk5MiAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19jb250cm9sZGF0YS9wZ19jb250cm9sZGF0YS5jCisrKyBi L3NyYy9iaW4vcGdfY29udHJvbGRhdGEvcGdfY29udHJvbGRhdGEuYwpAQCAtMjUsNiArMjUsNyBA QAogI2luY2x1ZGUgImFjY2Vzcy94bG9nX2ludGVybmFsLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19jb250cm9sLmgiCiAjaW5jbHVkZSAiY29tbW9uL2NvbnRyb2xkYXRhX3V0aWxzLmgiCisjaW5j bHVkZSAiY29tbW9uL2ttZ3JfdXRpbHMuaCIKICNpbmNsdWRlICJjb21tb24vbG9nZ2luZy5oIgog I2luY2x1ZGUgImdldG9wdF9sb25nLmgiCiAjaW5jbHVkZSAicGdfZ2V0b3B0LmgiCkBAIC0zMjgs NSArMzI5LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQkgICBDb250cm9sRmls ZS0+ZGF0YV9jaGVja3N1bV92ZXJzaW9uKTsKIAlwcmludGYoXygiTW9jayBhdXRoZW50aWNhdGlv biBub25jZTogICAgICAgICAgICAlc1xuIiksCiAJCSAgIG1vY2tfYXV0aF9ub25jZV9zdHIpOwor CXByaW50ZihfKCJGaWxlIGVuY3J5cHRpb24gbWV0aG9kOiAgICAgICAgICAgICAgICVzXG4iKSwK KwkJICAgZW5jcnlwdGlvbl9tZXRob2RzW0NvbnRyb2xGaWxlLT5maWxlX2VuY3J5cHRpb25fbWV0 aG9kXS5uYW1lKTsKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfY3RsL3Bn X2N0bC5jIGIvc3JjL2Jpbi9wZ19jdGwvcGdfY3RsLmMKaW5kZXggYTUwOWZjOTEwOS4uZDkwYzA3 ZGIxMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19jdGwvcGdfY3RsLmMKKysrIGIvc3JjL2Jpbi9w Z19jdGwvcGdfY3RsLmMKQEAgLTc0LDYgKzc0LDcgQEAgdHlwZWRlZiBlbnVtCiBzdGF0aWMgYm9v bCBkb193YWl0ID0gdHJ1ZTsKIHN0YXRpYyBpbnQJd2FpdF9zZWNvbmRzID0gREVGQVVMVF9XQUlU Owogc3RhdGljIGJvb2wgd2FpdF9zZWNvbmRzX2FyZyA9IGZhbHNlOworc3RhdGljIGJvb2wgcGFz c190ZXJtaW5hbF9mZCA9IGZhbHNlOwogc3RhdGljIGJvb2wgc2lsZW50X21vZGUgPSBmYWxzZTsK IHN0YXRpYyBTaHV0ZG93bk1vZGUgc2h1dGRvd25fbW9kZSA9IEZBU1RfTU9ERTsKIHN0YXRpYyBp bnQJc2lnID0gU0lHSU5UOwkJLyogZGVmYXVsdCAqLwpAQCAtNDM5LDcgKzQ0MCw3IEBAIGZyZWVf cmVhZGZpbGUoY2hhciAqKm9wdGxpbmVzKQogc3RhdGljIHBpZF90CiBzdGFydF9wb3N0bWFzdGVy KHZvaWQpCiB7Ci0JY2hhcgkgICAqY21kOworCWNoYXIJICAgKmNtZCwgKnRlcm1fZmRfb3B0ID0g TlVMTDsKIAogI2lmbmRlZiBXSU4zMgogCXBpZF90CQlwbV9waWQ7CkBAIC00NjcsNiArNDY4LDE5 IEBAIHN0YXJ0X3Bvc3RtYXN0ZXIodm9pZCkKIAogCS8qIGZvcmsgc3VjY2VlZGVkLCBpbiBjaGls ZCAqLwogCisJaWYgKHBhc3NfdGVybWluYWxfZmQpCisJeworCQlpbnQgdGVybWluYWxfZmQgPSBv cGVuKCIvZGV2L3R0eSIsIE9fUkRXUiwgMCk7CisKKwkJaWYgKHRlcm1pbmFsX2ZkIDwgMCkKKwkJ eworCQkJd3JpdGVfc3RkZXJyKF8oIiVzOiBjb3VsZCBub3Qgb3BlbiB0ZXJtaW5hbDogJXNcbiIp LAorCQkJCQkJIHByb2duYW1lLCBzdHJlcnJvcihlcnJubykpOworCQkJZXhpdCgxKTsKKwkJfQor CQl0ZXJtX2ZkX29wdCA9IHBzcHJpbnRmKCIgLVIgJWQiLCB0ZXJtaW5hbF9mZCk7CisJfQorCiAJ LyoKIAkgKiBJZiBwb3NzaWJsZSwgZGV0YWNoIHRoZSBwb3N0bWFzdGVyIHByb2Nlc3MgZnJvbSB0 aGUgbGF1bmNoaW5nIHByb2Nlc3MKIAkgKiBncm91cCBhbmQgbWFrZSBpdCBhIGdyb3VwIGxlYWRl ciwgc28gdGhhdCBpdCBkb2Vzbid0IGdldCBzaWduYWxlZCBhbG9uZwpAQCAtNDg3LDEyICs1MDEs MTQgQEAgc3RhcnRfcG9zdG1hc3Rlcih2b2lkKQogCSAqIGhhcyB0aGUgc2FtZSBQSUQgYXMgdGhl IGN1cnJlbnQgY2hpbGQgcHJvY2Vzcy4KIAkgKi8KIAlpZiAobG9nX2ZpbGUgIT0gTlVMTCkKLQkJ Y21kID0gcHNwcmludGYoImV4ZWMgXCIlc1wiICVzJXMgPCBcIiVzXCIgPj4gXCIlc1wiIDI+JjEi LAorCQljbWQgPSBwc3ByaW50ZigiZXhlYyBcIiVzXCIgJXMlcyVzIDwgXCIlc1wiID4+IFwiJXNc IiAyPiYxIiwKIAkJCQkJICAgZXhlY19wYXRoLCBwZ2RhdGFfb3B0LCBwb3N0X29wdHMsCisJCQkJ CSAgIHRlcm1fZmRfb3B0ID8gdGVybV9mZF9vcHQgOiAiIiwKIAkJCQkJICAgREVWTlVMTCwgbG9n X2ZpbGUpOwogCWVsc2UKLQkJY21kID0gcHNwcmludGYoImV4ZWMgXCIlc1wiICVzJXMgPCBcIiVz XCIgMj4mMSIsCi0JCQkJCSAgIGV4ZWNfcGF0aCwgcGdkYXRhX29wdCwgcG9zdF9vcHRzLCBERVZO VUxMKTsKKwkJY21kID0gcHNwcmludGYoImV4ZWMgXCIlc1wiICVzJXMlcyA8IFwiJXNcIiAyPiYx IiwKKwkJCQkJICAgZXhlY19wYXRoLCBwZ2RhdGFfb3B0LCBwb3N0X29wdHMsCisJCQkJCSAgIHRl cm1fZmRfb3B0ID8gdGVybV9mZF9vcHQgOiAiIiwgREVWTlVMTCk7CiAKIAkodm9pZCkgZXhlY2wo Ii9iaW4vc2giLCAiL2Jpbi9zaCIsICItYyIsIGNtZCwgKGNoYXIgKikgTlVMTCk7CiAKQEAgLTUx Myw2ICs1MjksMjEgQEAgc3RhcnRfcG9zdG1hc3Rlcih2b2lkKQogCVBST0NFU1NfSU5GT1JNQVRJ T04gcGk7CiAJY29uc3QgY2hhciAqY29tc3BlYzsKIAorCWlmIChwYXNzX3Rlcm1pbmFsX2ZkKQor CXsKKwkJLyogIEhvcGVmdWxseSB3ZSBjYW4gcmVhZCBhbmQgd3JpdGUgQ09OT1VULCBzZWUgc2lt cGxlX3Byb21wdCgpIFhYWCAqLworCQkvKiAgRG8gQ3JlYXRlUmVzdHJpY3RlZFByb2Nlc3MoKSBj aGlsZHJlbiBldmVuIGluaGVyaXQgb3BlbiBmaWxlIGRlc2NyaXB0b3JzPyBYWFggKi8KKwkJaW50 IHRlcm1pbmFsX2ZkID0gb3BlbigiQ09OT1VUJCIsIE9fUkRXUiwgMCk7CisKKwkJaWYgKHRlcm1p bmFsX2ZkIDwgMCkKKwkJeworCQkJd3JpdGVfc3RkZXJyKF8oIiVzOiBjb3VsZCBub3Qgb3BlbiB0 ZXJtaW5hbDogJXNcbiIpLAorCQkJCQkJIHByb2duYW1lLCBzdHJlcnJvcihlcnJubykpOworCQkJ ZXhpdCgxKTsKKwkJfQorCQl0ZXJtX2ZkX29wdCA9IHBzcHJpbnRmKCIgLVIgJWQiLCB0ZXJtaW5h bF9mZCk7CisJfQorCiAJLyogRmluZCBDTUQuRVhFIGxvY2F0aW9uIHVzaW5nIENPTVNQRUMsIGlm IGl0J3Mgc2V0ICovCiAJY29tc3BlYyA9IGdldGVudigiQ09NU1BFQyIpOwogCWlmIChjb21zcGVj ID09IE5VTEwpCkBAIC01NTMsMTIgKzU4NCwxNCBAQCBzdGFydF9wb3N0bWFzdGVyKHZvaWQpCiAJ CWVsc2UKIAkJCWNsb3NlKGZkKTsKIAotCQljbWQgPSBwc3ByaW50ZigiXCIlc1wiIC9DIFwiXCIl c1wiICVzJXMgPCBcIiVzXCIgPj4gXCIlc1wiIDI+JjFcIiIsCi0JCQkJCSAgIGNvbXNwZWMsIGV4 ZWNfcGF0aCwgcGdkYXRhX29wdCwgcG9zdF9vcHRzLCBERVZOVUxMLCBsb2dfZmlsZSk7CisJCWNt ZCA9IHBzcHJpbnRmKCJcIiVzXCIgL0MgXCJcIiVzXCIgJXMlcyVzIDwgXCIlc1wiID4+IFwiJXNc IiAyPiYxXCIiLAorCQkJCQkgICBjb21zcGVjLCBleGVjX3BhdGgsIHBnZGF0YV9vcHQsIHBvc3Rf b3B0cywKKwkJCQkJICAgdGVybV9mZF9vcHQgPyB0ZXJtX2ZkX29wdCA6ICIiLCBERVZOVUxMLCBs b2dfZmlsZSk7CiAJfQogCWVsc2UKLQkJY21kID0gcHNwcmludGYoIlwiJXNcIiAvQyBcIlwiJXNc IiAlcyVzIDwgXCIlc1wiIDI+JjFcIiIsCi0JCQkJCSAgIGNvbXNwZWMsIGV4ZWNfcGF0aCwgcGdk YXRhX29wdCwgcG9zdF9vcHRzLCBERVZOVUxMKTsKKwkJY21kID0gcHNwcmludGYoIlwiJXNcIiAv QyBcIlwiJXNcIiAlcyVzJXMgPCBcIiVzXCIgMj4mMVwiIiwKKwkJCQkJICAgY29tc3BlYywgZXhl Y19wYXRoLCBwZ2RhdGFfb3B0LCBwb3N0X29wdHMsCisJCQkJCSAgIHRlcm1fZmRfb3B0ID8gdGVy bV9mZF9vcHQgOiAiIiwgREVWTlVMTCk7CiAKIAlpZiAoIUNyZWF0ZVJlc3RyaWN0ZWRQcm9jZXNz KGNtZCwgJnBpLCBmYWxzZSkpCiAJewpAQCAtNjg5LDcgKzcyMiw4IEBAIHdhaXRfZm9yX3Bvc3Rt YXN0ZXJfc3RhcnQocGlkX3QgcG1fcGlkLCBib29sIGRvX2NoZWNrcG9pbnQpCiAJCQl9CiAJCQll bHNlCiAjZW5kaWYKLQkJCQlwcmludF9tc2coIi4iKTsKKwkJCQlpZiAoIXBhc3NfdGVybWluYWxf ZmQpCisJCQkJCXByaW50X21zZygiLiIpOwogCQl9CiAKIAkJcGdfdXNsZWVwKFVTRUNfUEVSX1NF QyAvIFdBSVRTX1BFUl9TRUMpOwpAQCAtMjAwNSw2ICsyMDM5LDcgQEAgZG9faGVscCh2b2lkKQog CXByaW50ZihfKCIgIC1vLCAtLW9wdGlvbnM9T1BUSU9OUyAgY29tbWFuZCBsaW5lIG9wdGlvbnMg dG8gcGFzcyB0byBwb3N0Z3Jlc1xuIgogCQkJICIgICAgICAgICAgICAgICAgICAgICAgICAgKFBv c3RncmVTUUwgc2VydmVyIGV4ZWN1dGFibGUpIG9yIGluaXRkYlxuIikpOwogCXByaW50ZihfKCIg IC1wIFBBVEgtVE8tUE9TVEdSRVMgICAgbm9ybWFsbHkgbm90IG5lY2Vzc2FyeVxuIikpOworCXBy aW50ZihfKCIgIC1SLCAtLWF1dGhwcm9tcHQgICAgICAgcHJvbXB0IGZvciBhIHBhc3NwaHJhc2Ug b3IgUElOXG4iKSk7CiAJcHJpbnRmKF8oIlxuT3B0aW9ucyBmb3Igc3RvcCBvciByZXN0YXJ0Olxu IikpOwogCXByaW50ZihfKCIgIC1tLCAtLW1vZGU9TU9ERSAgICAgICAgTU9ERSBjYW4gYmUgXCJz bWFydFwiLCBcImZhc3RcIiwgb3IgXCJpbW1lZGlhdGVcIlxuIikpOwogCkBAIC0yMjAwLDYgKzIy MzUsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJeyJtb2RlIiwgcmVxdWlyZWRf YXJndW1lbnQsIE5VTEwsICdtJ30sCiAJCXsicGdkYXRhIiwgcmVxdWlyZWRfYXJndW1lbnQsIE5V TEwsICdEJ30sCiAJCXsib3B0aW9ucyIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAnbyd9LAor CQl7ImF1dGhwcm9tcHQiLCBub19hcmd1bWVudCwgTlVMTCwgJ1InfSwKIAkJeyJzaWxlbnQiLCBu b19hcmd1bWVudCwgTlVMTCwgJ3MnfSwKIAkJeyJ0aW1lb3V0IiwgcmVxdWlyZWRfYXJndW1lbnQs IE5VTEwsICd0J30sCiAJCXsiY29yZS1maWxlcyIsIG5vX2FyZ3VtZW50LCBOVUxMLCAnYyd9LApA QCAtMjI3Miw3ICsyMzA4LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJLyogcHJv Y2VzcyBjb21tYW5kLWxpbmUgb3B0aW9ucyAqLwogCXdoaWxlIChvcHRpbmQgPCBhcmdjKQogCXsK LQkJd2hpbGUgKChjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgImNEOmU6bDptOk46bzpwOlA6 c1M6dDpVOndXIiwKKwkJd2hpbGUgKChjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgImNEOmU6 bDptOk46bzpwOlA6UnNTOnQ6VTp3VyIsCiAJCQkJCQkJCWxvbmdfb3B0aW9ucywgJm9wdGlvbl9p bmRleCkpICE9IC0xKQogCQl7CiAJCQlzd2l0Y2ggKGMpCkBAIC0yMzI0LDYgKzIzNjAsOSBAQCBt YWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJCQljYXNlICdQJzoKIAkJCQkJcmVnaXN0ZXJf cGFzc3dvcmQgPSBwZ19zdHJkdXAob3B0YXJnKTsKIAkJCQkJYnJlYWs7CisJCQkJY2FzZSAnUic6 CisJCQkJCXBhc3NfdGVybWluYWxfZmQgPSB0cnVlOworCQkJCQlicmVhazsKIAkJCQljYXNlICdz JzoKIAkJCQkJc2lsZW50X21vZGUgPSB0cnVlOwogCQkJCQlicmVhazsKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfcmVzZXR3YWwvcGdfcmVzZXR3YWwuYyBiL3NyYy9iaW4vcGdfcmVzZXR3YWwvcGdf cmVzZXR3YWwuYwppbmRleCAwODkwNjNmNDcxLi43M2NiMDQ4YjNlIDEwMDY0NAotLS0gYS9zcmMv YmluL3BnX3Jlc2V0d2FsL3BnX3Jlc2V0d2FsLmMKKysrIGIvc3JjL2Jpbi9wZ19yZXNldHdhbC9w Z19yZXNldHdhbC5jCkBAIC01Miw2ICs1Miw3IEBACiAjaW5jbHVkZSAiY29tbW9uL2NvbnRyb2xk YXRhX3V0aWxzLmgiCiAjaW5jbHVkZSAiY29tbW9uL2ZlX21lbXV0aWxzLmgiCiAjaW5jbHVkZSAi Y29tbW9uL2ZpbGVfcGVybS5oIgorI2luY2x1ZGUgImNvbW1vbi9rbWdyX3V0aWxzLmgiCiAjaW5j bHVkZSAiY29tbW9uL2xvZ2dpbmcuaCIKICNpbmNsdWRlICJjb21tb24vcmVzdHJpY3RlZF90b2tl bi5oIgogI2luY2x1ZGUgImNvbW1vbi9zdHJpbmcuaCIKQEAgLTc3Miw2ICs3NzMsOCBAQCBQcmlu dENvbnRyb2xWYWx1ZXMoYm9vbCBndWVzc2VkKQogCQkgICAoQ29udHJvbEZpbGUuZmxvYXQ4QnlW YWwgPyBfKCJieSB2YWx1ZSIpIDogXygiYnkgcmVmZXJlbmNlIikpKTsKIAlwcmludGYoXygiRGF0 YSBwYWdlIGNoZWNrc3VtIHZlcnNpb246ICAgICAgICAgICAldVxuIiksCiAJCSAgIENvbnRyb2xG aWxlLmRhdGFfY2hlY2tzdW1fdmVyc2lvbik7CisJcHJpbnRmKF8oIkZpbGUgZW5jcnlwdGlvbiBt ZXRob2Q6ICAgICAgICAgICAgICAgJXNcbiIpLAorCQkgICBlbmNyeXB0aW9uX21ldGhvZHNbQ29u dHJvbEZpbGUuZmlsZV9lbmNyeXB0aW9uX21ldGhvZF0ubmFtZSk7CiB9CiAKIApkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19yZXdpbmQvZmlsZW1hcC5jIGIvc3JjL2Jpbi9wZ19yZXdpbmQvZmlsZW1h cC5jCmluZGV4IDI2OWVkNjQ0NmUuLmQwYjcxZjk3MmEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf cmV3aW5kL2ZpbGVtYXAuYworKysgYi9zcmMvYmluL3BnX3Jld2luZC9maWxlbWFwLmMKQEAgLTI4 LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFjZV9kLmgiCiAjaW5j bHVkZSAiY29tbW9uL2hhc2hmbi5oIgorI2luY2x1ZGUgImNvbW1vbi9rbWdyX3V0aWxzLmgiCiAj aW5jbHVkZSAiY29tbW9uL3N0cmluZy5oIgogI2luY2x1ZGUgImRhdGFwYWdlbWFwLmgiCiAjaW5j bHVkZSAiZmlsZW1hcC5oIgpAQCAtMTA2LDYgKzEwNywxMyBAQCBzdGF0aWMgY29uc3QgY2hhciAq ZXhjbHVkZURpckNvbnRlbnRzW10gPQogCS8qIENvbnRlbnRzIHJlbW92ZWQgb24gc3RhcnR1cCwg c2VlIEFzeW5jU2htZW1Jbml0KCkuICovCiAJInBnX25vdGlmeSIsCiAKKwkvKgorCSAqIFNraXAg Y3J5cHRvZ3JhcGhpYyBrZXlzLiBJdCdzIGdlbmVyYWxseSBub3QgYSBnb29kIGlkZWEgdG8gY29w eSB0aGUKKwkgKiBjcnlwdG9ncmFwaGljIGtleXMgZnJvbSBzb3VyY2UgZGF0YWJhc2UgYmVjYXVz ZSB0aGVzZSBtaWdodCB1c2UKKwkgKiBkaWZmZXJlbnQgY2x1c3RlciBrZXkuCisJICovCisJS01H Ul9ESVIsCisKIAkvKgogCSAqIE9sZCBjb250ZW50cyBhcmUgbG9hZGVkIGZvciBwb3NzaWJsZSBk ZWJ1Z2dpbmcgYnV0IGFyZSBub3QgcmVxdWlyZWQgZm9yCiAJICogbm9ybWFsIG9wZXJhdGlvbiwg c2VlIFNlcmlhbEluaXQoKS4KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9jaGVjay5j IGIvc3JjL2Jpbi9wZ191cGdyYWRlL2NoZWNrLmMKaW5kZXggZjFiYzFlNjg4Ni4uYWU3YWE2MDFh NyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL2NoZWNrLmMKKysrIGIvc3JjL2Jpbi9w Z191cGdyYWRlL2NoZWNrLmMKQEAgLTExLDYgKzExLDcgQEAKIAogI2luY2x1ZGUgImNhdGFsb2cv cGdfYXV0aGlkX2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbi5oIgorI2luY2x1 ZGUgImNvbW1vbi9rbWdyX3V0aWxzLmgiCiAjaW5jbHVkZSAiZmVfdXRpbHMvc3RyaW5nX3V0aWxz LmgiCiAjaW5jbHVkZSAibWIvcGdfd2NoYXIuaCIKICNpbmNsdWRlICJwZ191cGdyYWRlLmgiCkBA IC0zMCw2ICszMSw3IEBAIHN0YXRpYyB2b2lkIGNoZWNrX2Zvcl9jb21wb3NpdGVfZGF0YV90eXBl X3VzYWdlKENsdXN0ZXJJbmZvICpjbHVzdGVyKTsKIHN0YXRpYyB2b2lkIGNoZWNrX2Zvcl9yZWdf ZGF0YV90eXBlX3VzYWdlKENsdXN0ZXJJbmZvICpjbHVzdGVyKTsKIHN0YXRpYyB2b2lkIGNoZWNr X2Zvcl9qc29uYl85XzRfdXNhZ2UoQ2x1c3RlckluZm8gKmNsdXN0ZXIpOwogc3RhdGljIHZvaWQg Y2hlY2tfZm9yX3BnX3JvbGVfcHJlZml4KENsdXN0ZXJJbmZvICpjbHVzdGVyKTsKK3N0YXRpYyB2 b2lkIGNoZWNrX2Zvcl9jbHVzdGVyX2tleV9mYWlsdXJlKENsdXN0ZXJJbmZvICpjbHVzdGVyKTsK IHN0YXRpYyB2b2lkIGNoZWNrX2Zvcl9uZXdfdGFibGVzcGFjZV9kaXIoQ2x1c3RlckluZm8gKm5l d19jbHVzdGVyKTsKIHN0YXRpYyB2b2lkIGNoZWNrX2Zvcl91c2VyX2RlZmluZWRfZW5jb2Rpbmdf Y29udmVyc2lvbnMoQ2x1c3RlckluZm8gKmNsdXN0ZXIpOwogc3RhdGljIGNoYXIgKmdldF9jYW5v bmljYWxfbG9jYWxlX25hbWUoaW50IGNhdGVnb3J5LCBjb25zdCBjaGFyICpsb2NhbGUpOwpAQCAt MTYwLDYgKzE2Miw5IEBAIGNoZWNrX2FuZF9kdW1wX29sZF9jbHVzdGVyKGJvb2wgbGl2ZV9jaGVj aykKIAlpZiAoR0VUX01BSk9SX1ZFUlNJT04ob2xkX2NsdXN0ZXIubWFqb3JfdmVyc2lvbikgPD0g OTA1KQogCQljaGVja19mb3JfcGdfcm9sZV9wcmVmaXgoJm9sZF9jbHVzdGVyKTsKIAorCWlmIChH RVRfTUFKT1JfVkVSU0lPTihvbGRfY2x1c3Rlci5tYWpvcl92ZXJzaW9uKSA+PSAxNDAwKQorCQlj aGVja19mb3JfY2x1c3Rlcl9rZXlfZmFpbHVyZSgmb2xkX2NsdXN0ZXIpOworCiAJaWYgKEdFVF9N QUpPUl9WRVJTSU9OKG9sZF9jbHVzdGVyLm1ham9yX3ZlcnNpb24pID09IDkwNCAmJgogCQlvbGRf Y2x1c3Rlci5jb250cm9sZGF0YS5jYXRfdmVyIDwgSlNPTkJfRk9STUFUX0NIQU5HRV9DQVRfVkVS KQogCQljaGVja19mb3JfanNvbmJfOV80X3VzYWdlKCZvbGRfY2x1c3Rlcik7CkBAIC0xOTAsNiAr MTk1LDkgQEAgY2hlY2tfbmV3X2NsdXN0ZXIodm9pZCkKIAogCWNoZWNrX2xvYWRhYmxlX2xpYnJh cmllcygpOwogCisJaWYgKEdFVF9NQUpPUl9WRVJTSU9OKG9sZF9jbHVzdGVyLm1ham9yX3ZlcnNp b24pID49IDE0MDApCisJCWNoZWNrX2Zvcl9jbHVzdGVyX2tleV9mYWlsdXJlKCZuZXdfY2x1c3Rl cik7CisKIAlzd2l0Y2ggKHVzZXJfb3B0cy50cmFuc2Zlcl9tb2RlKQogCXsKIAkJY2FzZSBUUkFO U0ZFUl9NT0RFX0NMT05FOgpAQCAtMTQ2Niw2ICsxNDc0LDMyIEBAIGNoZWNrX2Zvcl91c2VyX2Rl ZmluZWRfZW5jb2RpbmdfY29udmVyc2lvbnMoQ2x1c3RlckluZm8gKmNsdXN0ZXIpCiB9CiAKIAor LyoKKyAqIGNoZWNrX2Zvcl9jbHVzdGVyX2tleV9mYWlsdXJlKCkKKyAqCisgKglNYWtlIHN1cmUg dGhlcmUgd2FzIG5vIHVucmVwYWlyZWQgcGdfYWx0ZXJja2V5IGZhaWx1cmUKKyAqLworc3RhdGlj IHZvaWQKK2NoZWNrX2Zvcl9jbHVzdGVyX2tleV9mYWlsdXJlKENsdXN0ZXJJbmZvICpjbHVzdGVy KQoreworCXN0cnVjdCBzdGF0IGJ1ZmZlcjsKKworCWlmIChzdGF0IChLTUdSX0RJUl9QSUQsICZi dWZmZXIpID09IDApCisJeworCQlpZiAoY2x1c3RlciA9PSAmb2xkX2NsdXN0ZXIpCisJCQlwZ19m YXRhbCgiVGhlIHNvdXJjZSBjbHVzdGVyIGhhZCBhIHBnX2FsdGVyY2tleSBmYWlsdXJlIHRoYXQg bmVlZHMgcmVwYWlyIG9yXG4iCisJCQkJCSAicGdfYWx0ZXJja2V5IGlzIHJ1bm5pbmcuICBSdW4g cGdfYWx0ZXJja2V5IC0tcmVwYWlyIG9yIHdhaXQgZm9yIGl0XG4iCisJCQkJCSAidG8gY29tcGxl dGUuXG4iKTsKKwkJZWxzZQorCQkJcGdfZmF0YWwoIlRoZSB0YXJnZXQgY2x1c3RlciBoYWQgYSBw Z19hbHRlcmNrZXkgZmFpbHVyZSB0aGF0IG5lZWRzIHJlcGFpciBvclxuIgorCQkJCQkgInBnX2Fs dGVyY2tleSBpcyBydW5uaW5nLiAgUnVuIHBnX2FsdGVyY2tleSAtLXJlcGFpciBvciB3YWl0IGZv ciBpdFxuIgorCQkJCQkgInRvIGNvbXBsZXRlLlxuIik7CisJfQorCisJY2hlY2tfb2soKTsKK30K KworCiAvKgogICogZ2V0X2Nhbm9uaWNhbF9sb2NhbGVfbmFtZQogICoKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfdXBncmFkZS9jb250cm9sZGF0YS5jIGIvc3JjL2Jpbi9wZ191cGdyYWRlL2NvbnRy b2xkYXRhLmMKaW5kZXggMDE4Y2QzMTBmNy4uZWU2YTQ4NDM4YiAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ191cGdyYWRlL2NvbnRyb2xkYXRhLmMKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL2NvbnRy b2xkYXRhLmMKQEAgLTksMTIgKzksMTggQEAKIAogI2luY2x1ZGUgInBvc3RncmVzX2ZlLmgiCiAK KyNpbmNsdWRlIDxkaXJlbnQuaD4KICNpbmNsdWRlIDxjdHlwZS5oPgogCiAjaW5jbHVkZSAicGdf dXBncmFkZS5oIgogI2luY2x1ZGUgImNvbW1vbi9zdHJpbmcuaCIKIAogCisjaW5jbHVkZSAiYWNj ZXNzL3hsb2dfaW50ZXJuYWwuaCIKKyNpbmNsdWRlICJjb21tb24vY29udHJvbGRhdGFfdXRpbHMu aCIKKyNpbmNsdWRlICJjb21tb24vZmlsZV91dGlscy5oIgorI2luY2x1ZGUgImNvbW1vbi9rbWdy X3V0aWxzLmgiCisKIC8qCiAgKiBnZXRfY29udHJvbF9kYXRhKCkKICAqCkBAIC02Miw2ICs2OCw3 IEBAIGdldF9jb250cm9sX2RhdGEoQ2x1c3RlckluZm8gKmNsdXN0ZXIsIGJvb2wgbGl2ZV9jaGVj aykKIAlib29sCQlnb3RfZGF0ZV9pc19pbnQgPSBmYWxzZTsKIAlib29sCQlnb3RfZGF0YV9jaGVj a3N1bV92ZXJzaW9uID0gZmFsc2U7CiAJYm9vbAkJZ290X2NsdXN0ZXJfc3RhdGUgPSBmYWxzZTsK KwlpbnQJCQlnb3RfZmlsZV9lbmNyeXB0aW9uX21ldGhvZCA9IGZhbHNlOwogCWNoYXIJICAgKmxj X2NvbGxhdGUgPSBOVUxMOwogCWNoYXIJICAgKmxjX2N0eXBlID0gTlVMTDsKIAljaGFyCSAgICps Y19tb25ldGFyeSA9IE5VTEw7CkBAIC0yMDMsNiArMjEwLDEzIEBAIGdldF9jb250cm9sX2RhdGEo Q2x1c3RlckluZm8gKmNsdXN0ZXIsIGJvb2wgbGl2ZV9jaGVjaykKIAkJZ290X2RhdGFfY2hlY2tz dW1fdmVyc2lvbiA9IHRydWU7CiAJfQogCisJLyogT25seSBpbiA8PSAxNCAqLworCWlmIChHRVRf TUFKT1JfVkVSU0lPTihjbHVzdGVyLT5tYWpvcl92ZXJzaW9uKSA8PSAxNDAwKQorCXsKKwkJY2x1 c3Rlci0+Y29udHJvbGRhdGEuZmlsZV9lbmNyeXB0aW9uX21ldGhvZCA9IERJU0FCTEVEX0VOQ1JZ UFRJT05fTUVUSE9EOworCQlnb3RfZmlsZV9lbmNyeXB0aW9uX21ldGhvZCA9IHRydWU7CisJfQor CiAJLyogd2UgaGF2ZSB0aGUgcmVzdWx0IG9mIGNtZCBpbiAib3V0cHV0Ii4gc28gcGFyc2UgaXQg bGluZSBieSBsaW5lIG5vdyAqLwogCXdoaWxlIChmZ2V0cyhidWZpbiwgc2l6ZW9mKGJ1ZmluKSwg b3V0cHV0KSkKIAl7CkBAIC00OTgsNiArNTEyLDE4IEBAIGdldF9jb250cm9sX2RhdGEoQ2x1c3Rl ckluZm8gKmNsdXN0ZXIsIGJvb2wgbGl2ZV9jaGVjaykKIAkJCWNsdXN0ZXItPmNvbnRyb2xkYXRh LmRhdGFfY2hlY2tzdW1fdmVyc2lvbiA9IHN0cjJ1aW50KHApOwogCQkJZ290X2RhdGFfY2hlY2tz dW1fdmVyc2lvbiA9IHRydWU7CiAJCX0KKwkJZWxzZSBpZiAoKHAgPSBzdHJzdHIoYnVmaW4sICJD bHVzdGVyIGZpbGUgZW5jcnlwdGlvbiBtZXRob2Q6IikpICE9IE5VTEwpCisJCXsKKwkJCXAgPSBz dHJjaHIocCwgJzonKTsKKworCQkJaWYgKHAgPT0gTlVMTCB8fCBzdHJsZW4ocCkgPD0gMSkKKwkJ CQlwZ19mYXRhbCgiJWQ6IGNvbnRyb2xkYXRhIHJldHJpZXZhbCBwcm9ibGVtXG4iLCBfX0xJTkVf Xyk7CisKKwkJCXArKzsJCQkJLyogcmVtb3ZlICc6JyBjaGFyICovCisJCQkvKiB1c2VkIGxhdGVy IGZvciBjb250cmliIGNoZWNrICovCisJCQljbHVzdGVyLT5jb250cm9sZGF0YS5maWxlX2VuY3J5 cHRpb25fbWV0aG9kID0gYXRvaShwKTsKKwkJCWdvdF9maWxlX2VuY3J5cHRpb25fbWV0aG9kID0g dHJ1ZTsKKwkJfQogCX0KIAogCXBjbG9zZShvdXRwdXQpOwpAQCAtNTY2LDcgKzU5Miw4IEBAIGdl dF9jb250cm9sX2RhdGEoQ2x1c3RlckluZm8gKmNsdXN0ZXIsIGJvb2wgbGl2ZV9jaGVjaykKIAkJ IWdvdF9pbmRleCB8fCAhZ290X3RvYXN0IHx8CiAJCSghZ290X2xhcmdlX29iamVjdCAmJgogCQkg Y2x1c3Rlci0+Y29udHJvbGRhdGEuY3RybF92ZXIgPj0gTEFSR0VfT0JKRUNUX1NJWkVfUEdfQ09O VFJPTF9WRVIpIHx8Ci0JCSFnb3RfZGF0ZV9pc19pbnQgfHwgIWdvdF9kYXRhX2NoZWNrc3VtX3Zl cnNpb24pCisJCSFnb3RfZGF0ZV9pc19pbnQgfHwgIWdvdF9kYXRhX2NoZWNrc3VtX3ZlcnNpb24g fHwKKwkJIWdvdF9maWxlX2VuY3J5cHRpb25fbWV0aG9kKQogCXsKIAkJaWYgKGNsdXN0ZXIgPT0g Jm9sZF9jbHVzdGVyKQogCQkJcGdfbG9nKFBHX1JFUE9SVCwKQEAgLTYzNSw2ICs2NjIsMTAgQEAg Z2V0X2NvbnRyb2xfZGF0YShDbHVzdGVySW5mbyAqY2x1c3RlciwgYm9vbCBsaXZlX2NoZWNrKQog CQlpZiAoIWdvdF9kYXRhX2NoZWNrc3VtX3ZlcnNpb24pCiAJCQlwZ19sb2coUEdfUkVQT1JULCAi ICBkYXRhIGNoZWNrc3VtIHZlcnNpb24iKTsKIAorCQkvKiB2YWx1ZSBhZGRlZCBpbiBQb3N0Z3Jl cyAxNCAqLworCQlpZiAoIWdvdF9maWxlX2VuY3J5cHRpb25fbWV0aG9kKQorCQkJcGdfbG9nKFBH X1JFUE9SVCwgIiAgZmlsZSBlbmNyeXB0aW9uIG1ldGhvZFxuIik7CisKIAkJcGdfZmF0YWwoIkNh bm5vdCBjb250aW51ZSB3aXRob3V0IHJlcXVpcmVkIGNvbnRyb2wgaW5mb3JtYXRpb24sIHRlcm1p bmF0aW5nIik7CiAJfQogfQpAQCAtNjk5LDYgKzczMCwxNCBAQCBjaGVja19jb250cm9sX2RhdGEo Q29udHJvbERhdGEgKm9sZGN0cmwsCiAJCXBnX2ZhdGFsKCJvbGQgY2x1c3RlciB1c2VzIGRhdGEg Y2hlY2tzdW1zIGJ1dCB0aGUgbmV3IG9uZSBkb2VzIG5vdCIpOwogCWVsc2UgaWYgKG9sZGN0cmwt PmRhdGFfY2hlY2tzdW1fdmVyc2lvbiAhPSBuZXdjdHJsLT5kYXRhX2NoZWNrc3VtX3ZlcnNpb24p CiAJCXBnX2ZhdGFsKCJvbGQgYW5kIG5ldyBjbHVzdGVyIHBnX2NvbnRyb2xkYXRhIGNoZWNrc3Vt IHZlcnNpb25zIGRvIG5vdCBtYXRjaCIpOworCisJLyoKKwkgKiBXZSBjYW5ub3QgdXBncmFkZSBp ZiB0aGUgb2xkIGNsdXN0ZXIgZmlsZSBlbmNyeXB0aW9uIG1ldGhvZAorCSAqIGRvZXNuJ3QgbWF0 Y2ggdGhlIG5ldyBvbmUuCisJICovCisJaWYgKG9sZGN0cmwtPmZpbGVfZW5jcnlwdGlvbl9tZXRo b2QgIT0gbmV3Y3RybC0+ZmlsZV9lbmNyeXB0aW9uX21ldGhvZCkKKwkJcGdfZmF0YWwoIm9sZCBh bmQgbmV3IGNsdXN0ZXJzIHVzZSBkaWZmZXJlbnQgZmlsZSBlbmNyeXB0aW9uIG1ldGhvZHMgb3Jc biIKKwkJCQkgIm9uZSBjbHVzdGVyIHVzZXMgZW5jcnlwdGlvbiBhbmQgdGhlIG90aGVyIGRvZXMg bm90Iik7CiB9CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL2ZpbGUuYyBiL3Ny Yy9iaW4vcGdfdXBncmFkZS9maWxlLmMKaW5kZXggMDc5ZmJkYTgzOC4uMjlmZDAwMzMxOCAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL2ZpbGUuYworKysgYi9zcmMvYmluL3BnX3VwZ3Jh ZGUvZmlsZS5jCkBAIC0xMSw2ICsxMSw3IEBACiAKICNpbmNsdWRlIDxzeXMvc3RhdC5oPgogI2lu Y2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8ZGlyZW50Lmg+CiAjaWZkZWYgSEFWRV9DT1BZRklM RV9ICiAjaW5jbHVkZSA8Y29weWZpbGUuaD4KICNlbmRpZgpAQCAtMjEsNiArMjIsNyBAQAogCiAj aW5jbHVkZSAiYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgiCiAjaW5jbHVkZSAiY29tbW9uL2Zp bGVfcGVybS5oIgorI2luY2x1ZGUgImNvbW1vbi9maWxlX3V0aWxzLmgiCiAjaW5jbHVkZSAicGdf dXBncmFkZS5oIgogI2luY2x1ZGUgInN0b3JhZ2UvYnVmcGFnZS5oIgogI2luY2x1ZGUgInN0b3Jh Z2UvY2hlY2tzdW0uaCIKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9vcHRpb24uYyBi L3NyYy9iaW4vcGdfdXBncmFkZS9vcHRpb24uYwppbmRleCAzZjcxOWYxNzYyLi5iNjI4NWQ2OGVk IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvb3B0aW9uLmMKKysrIGIvc3JjL2Jpbi9w Z191cGdyYWRlL29wdGlvbi5jCkBAIC01Miw2ICs1Miw3IEBAIHBhcnNlQ29tbWFuZExpbmUoaW50 IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJeyJjaGVjayIsIG5vX2FyZ3VtZW50LCBOVUxMLCAnYyd9 LAogCQl7ImxpbmsiLCBub19hcmd1bWVudCwgTlVMTCwgJ2snfSwKIAkJeyJyZXRhaW4iLCBub19h cmd1bWVudCwgTlVMTCwgJ3InfSwKKwkJeyJhdXRocHJvbXB0Iiwgbm9fYXJndW1lbnQsIE5VTEws ICdSJ30sCiAJCXsiam9icyIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAnaid9LAogCQl7InNv Y2tldGRpciIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAncyd9LAogCQl7InZlcmJvc2UiLCBu b19hcmd1bWVudCwgTlVMTCwgJ3YnfSwKQEAgLTk5LDcgKzEwMCw3IEBAIHBhcnNlQ29tbWFuZExp bmUoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAlpZiAob3NfdXNlcl9lZmZlY3RpdmVfaWQgPT0g MCkKIAkJcGdfZmF0YWwoIiVzOiBjYW5ub3QgYmUgcnVuIGFzIHJvb3QiLCBvc19pbmZvLnByb2du YW1lKTsKIAotCXdoaWxlICgob3B0aW9uID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgImQ6RDpi OkI6Y2o6a05vOk86cDpQOnJzOlU6diIsCisJd2hpbGUgKChvcHRpb24gPSBnZXRvcHRfbG9uZyhh cmdjLCBhcmd2LCAiZDpEOmI6QjpjajprTm86TzpwOlA6clJzOlU6diIsCiAJCQkJCQkJCSBsb25n X29wdGlvbnMsICZvcHRpbmRleCkpICE9IC0xKQogCXsKIAkJc3dpdGNoIChvcHRpb24pCkBAIC0x NzYsNiArMTc3LDEwIEBAIHBhcnNlQ29tbWFuZExpbmUoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkK IAkJCQlsb2dfb3B0cy5yZXRhaW4gPSB0cnVlOwogCQkJCWJyZWFrOwogCisJCQljYXNlICdSJzoK KwkJCQl1c2VyX29wdHMucGFzc190ZXJtaW5hbF9mZCA9IHRydWU7CisJCQkJYnJlYWs7CisKIAkJ CWNhc2UgJ3MnOgogCQkJCXVzZXJfb3B0cy5zb2NrZXRkaXIgPSBwZ19zdHJkdXAob3B0YXJnKTsK IAkJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmgg Yi9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oCmluZGV4IDMxNTg5YjBmZGMuLjg3OGY4 ZTgwMzIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmgKKysrIGIv c3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaApAQCAtMTIsNiArMTIsNyBAQAogCiAjaW5j bHVkZSAiY29tbW9uL3JlbHBhdGguaCIKICNpbmNsdWRlICJsaWJwcS1mZS5oIgorI2luY2x1ZGUg ImNvbW1vbi9rbWdyX3V0aWxzLmgiCiAKIC8qIEZvciBub3csIHBnX3VwZ3JhZGUgZG9lcyBub3Qg dXNlIGNvbW1vbi9sb2dnaW5nLmM7IHVzZSBvdXIgb3duIHBnX2ZhdGFsICovCiAjdW5kZWYgcGdf ZmF0YWwKQEAgLTIxOCw2ICsyMTksNyBAQCB0eXBlZGVmIHN0cnVjdAogCWJvb2wJCWRhdGVfaXNf aW50OwogCWJvb2wJCWZsb2F0OF9wYXNzX2J5X3ZhbHVlOwogCXVpbnQzMgkJZGF0YV9jaGVja3N1 bV92ZXJzaW9uOworCWludAkJCWZpbGVfZW5jcnlwdGlvbl9tZXRob2Q7CiB9IENvbnRyb2xEYXRh OwogCiAvKgpAQCAtMjk2LDYgKzI5OCw4IEBAIHR5cGVkZWYgc3RydWN0CiAJdHJhbnNmZXJNb2Rl IHRyYW5zZmVyX21vZGU7IC8qIGNvcHkgZmlsZXMgb3IgbGluayB0aGVtPyAqLwogCWludAkJCWpv YnM7CQkJLyogbnVtYmVyIG9mIHByb2Nlc3Nlcy90aHJlYWRzIHRvIHVzZSAqLwogCWNoYXIJICAg KnNvY2tldGRpcjsJCS8qIGRpcmVjdG9yeSB0byB1c2UgZm9yIFVuaXggc29ja2V0cyAqLworCWJv b2wJCWluZF9jb2xsX3Vua25vd247CS8qIG1hcmsgdW5rbm93biBpbmRleCBjb2xsYXRpb24gdmVy c2lvbnMgKi8KKwlib29sCQlwYXNzX3Rlcm1pbmFsX2ZkOyAvKiBwYXNzIC1SIHRvIHBnX2N0bD8g Ki8KIH0gVXNlck9wdHM7CiAKIHR5cGVkZWYgc3RydWN0CmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X3VwZ3JhZGUvc2VydmVyLmMgYi9zcmMvYmluL3BnX3VwZ3JhZGUvc2VydmVyLmMKaW5kZXggOWEx YTIwZmIyNy4uMDc3NTAxMDM3OSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL3NlcnZl ci5jCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9zZXJ2ZXIuYwpAQCAtMjM5LDcgKzIzOSw3IEBA IHN0YXJ0X3Bvc3RtYXN0ZXIoQ2x1c3RlckluZm8gKmNsdXN0ZXIsIGJvb2wgcmVwb3J0X2FuZF9l eGl0X29uX2Vycm9yKQogCSAqIHZhY3V1bWRiIC0tZnJlZXplIGFjdHVhbGx5IGZyZWV6ZXMgdGhl IHR1cGxlcy4KIAkgKi8KIAlzbnByaW50ZihjbWQsIHNpemVvZihjbWQpLAotCQkJICJcIiVzL3Bn X2N0bFwiIC13IC1sIFwiJXMvJXNcIiAtRCBcIiVzXCIgLW8gXCItcCAlZCAtYiVzICVzJXNcIiBz dGFydCIsCisJCQkgIlwiJXMvcGdfY3RsXCIgLXcgLWwgXCIlcy8lc1wiIC1EIFwiJXNcIiAtbyBc Ii1wICVkJXMgLWIgJXMlc1wiIHN0YXJ0IiwKIAkJCSBjbHVzdGVyLT5iaW5kaXIsCiAJCQkgbG9n X29wdHMubG9nZGlyLAogCQkJIFNFUlZFUl9MT0dfRklMRSwgY2x1c3Rlci0+cGdjb25maWcsIGNs dXN0ZXItPnBvcnQsCi0tIAoyLjM3LjAgKEFwcGxlIEdpdC0xMzYpCgo= --000000000000cbfbc705ebca4b20 Content-Type: application/octet-stream; name="0008-cfe-08-pg_alterckey_over_cfe-07-bin-squash-commit.patch" Content-Disposition: attachment; filename="0008-cfe-08-pg_alterckey_over_cfe-07-bin-squash-commit.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l9mzto1h7 RnJvbSA2NzcyZTg4Y2RlY2Y0ZGI1M2IwYmJmYzU1ZDlkNmI2MjZhYzdiMDFkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCcnVjZSBNb21qaWFuIDxicnVjZUBtb21qaWFuLnVzPgpEYXRl OiBGcmksIDI1IEp1biAyMDIxIDE2OjU2OjU4IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAwOC8xMl0g Y2ZlLTA4LXBnX2FsdGVyY2tleV9vdmVyX2NmZS0wNy1iaW4gc3F1YXNoIGNvbW1pdAoKLS0tCiBk b2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwgICAgICB8ICAgMSArCiBkb2Mvc3JjL3NnbWwv cmVmL3BnX2FsdGVyY2tleS5zZ21sICB8IDIxMCArKysrKysrKwogZG9jL3NyYy9zZ21sL3JlZmVy ZW5jZS5zZ21sICAgICAgICAgfCAgIDEgKwogc3JjL2Jpbi9NYWtlZmlsZSAgICAgICAgICAgICAg ICAgICAgfCAgIDEgKwogc3JjL2Jpbi9wZ19hbHRlcmNrZXkvLmdpdGlnbm9yZSAgICAgfCAgIDEg Kwogc3JjL2Jpbi9wZ19hbHRlcmNrZXkvTWFrZWZpbGUgICAgICAgfCAgMzggKysKIHNyYy9iaW4v cGdfYWx0ZXJja2V5L1JFQURNRSAgICAgICAgIHwgIDI0ICsKIHNyYy9iaW4vcGdfYWx0ZXJja2V5 L3BnX2FsdGVyY2tleS5jIHwgNzI0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDggZmls ZXMgY2hhbmdlZCwgMTAwMCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3Ny Yy9zZ21sL3JlZi9wZ19hbHRlcmNrZXkuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iaW4v cGdfYWx0ZXJja2V5Ly5naXRpZ25vcmUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmluL3BnX2Fs dGVyY2tleS9NYWtlZmlsZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iaW4vcGdfYWx0ZXJja2V5 L1JFQURNRQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iaW4vcGdfYWx0ZXJja2V5L3BnX2FsdGVy Y2tleS5jCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sIGIvZG9j L3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCmluZGV4IGU5MGEwZTFmODMuLmEyYjk2MTI5YmEg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKQEAgLTE5Nyw2ICsxOTcsNyBAQCBDb21wbGV0ZSBsaXN0 IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZ IGRyb3B1c2VyICAgICAgICAgICBTWVNURU0gImRyb3B1c2VyLnNnbWwiPgogPCFFTlRJVFkgZWNw Z1JlZiAgICAgICAgICAgIFNZU1RFTSAiZWNwZy1yZWYuc2dtbCI+CiA8IUVOVElUWSBpbml0ZGIg ICAgICAgICAgICAgU1lTVEVNICJpbml0ZGIuc2dtbCI+Cis8IUVOVElUWSBwZ2FsdGVyY2tleSAg ICAgICAgU1lTVEVNICJwZ19hbHRlcmNrZXkuc2dtbCI+CiA8IUVOVElUWSBwZ2FtY2hlY2sgICAg ICAgICAgU1lTVEVNICJwZ19hbWNoZWNrLnNnbWwiPgogPCFFTlRJVFkgcGdhcmNoaXZlY2xlYW51 cCAgIFNZU1RFTSAicGdhcmNoaXZlY2xlYW51cC5zZ21sIj4KIDwhRU5USVRZIHBnQmFzZWJhY2t1 cCAgICAgICBTWVNURU0gInBnX2Jhc2ViYWNrdXAuc2dtbCI+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcmVmL3BnX2FsdGVyY2tleS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ19hbHRlcmNr ZXkuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44NjdjNDM5Yjhl Ci0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ19hbHRlcmNrZXkuc2dtbApA QCAtMCwwICsxLDIxMCBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9wZ19hbHRlcmNrZXkuc2dt bAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJhcHAtcGdf YWx0ZXJja2V5Ij4KKyA8aW5kZXh0ZXJtIHpvbmU9ImFwcC1wZ19hbHRlcmNrZXkiPgorICA8cHJp bWFyeT5wZ19hbHRlcmNrZXk8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4K KyAgPHJlZmVudHJ5dGl0bGU+PGFwcGxpY2F0aW9uPnBnX2FsdGVyY2tleTwvYXBwbGljYXRpb24+ PC9yZWZlbnRyeXRpdGxlPgorICA8bWFudm9sbnVtPjE8L21hbnZvbG51bT4KKyAgPHJlZm1pc2Np bmZvPkFwcGxpY2F0aW9uPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRp dj4KKyAgPHJlZm5hbWU+cGdfYWx0ZXJja2V5PC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5hbHRl ciB0aGUgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBjbHVzdGVyIGtleTwv cmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+CisgIDxjbWRz eW5vcHNpcz4KKyAgIDxjb21tYW5kPnBnX2FsdGVyY2tleTwvY29tbWFuZD4KKworICAgPGdyb3Vw IGNob2ljZT0icGxhaW4iPgorICAgIDxhcmcgY2hvaWNlPSJwbGFpbiI+PG9wdGlvbj4tUjwvb3B0 aW9uPjwvYXJnPgorICAgIDxhcmcgY2hvaWNlPSJwbGFpbiI+PG9wdGlvbj4tLWF1dGhwcm9tcHQ8 L29wdGlvbj48L2FyZz4KKyAgIDwvZ3JvdXA+CisKKyAgIDxhcmcgY2hvaWNlPSJwbGFpbiI+Cisg ICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9sZF9jbHVzdGVyX2tleV9jb21tYW5k PC9yZXBsYWNlYWJsZT4KKyAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X2Ns dXN0ZXJfa2V5X2NvbW1hbmQ8L3JlcGxhY2VhYmxlPgorICAgPC9hcmc+CisKKyAgIDxhcmcgY2hv aWNlPSJvcHQiPgorICAgIDxncm91cCBjaG9pY2U9InBsYWluIj4KKyAgICAgPGFyZyBjaG9pY2U9 InBsYWluIj48b3B0aW9uPi1EPC9vcHRpb24+PC9hcmc+CisgICAgIDxhcmcgY2hvaWNlPSJwbGFp biI+PG9wdGlvbj4tLXBnZGF0YTwvb3B0aW9uPjwvYXJnPgorICAgIDwvZ3JvdXA+CisgICAgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFkaXI8L3JlcGxhY2VhYmxlPgorICAgPC9h cmc+CisKKyAgPC9jbWRzeW5vcHNpcz4KKworICA8Y21kc3lub3BzaXM+CisgICA8Y29tbWFuZD5w Z19hbHRlcmNrZXk8L2NvbW1hbmQ+CisKKyAgIDxncm91cCBjaG9pY2U9Im9wdCI+CisgICAgPGFy ZyBjaG9pY2U9InBsYWluIj48b3B0aW9uPi1SPC9vcHRpb24+PC9hcmc+CisgICAgPGFyZyBjaG9p Y2U9InBsYWluIj48b3B0aW9uPi0tYXV0aHByb21wdDwvb3B0aW9uPjwvYXJnPgorICAgPC9ncm91 cD4KKworICAgPGdyb3VwIGNob2ljZT0icGxhaW4iPgorICAgIDxhcmcgY2hvaWNlPSJwbGFpbiI+ PG9wdGlvbj4tcjwvb3B0aW9uPjwvYXJnPgorICAgIDxhcmcgY2hvaWNlPSJwbGFpbiI+PG9wdGlv bj4tLXJlcGFpcjwvb3B0aW9uPjwvYXJnPgorICAgPC9ncm91cD4KKworICAgPGFyZyBjaG9pY2U9 Im9wdCI+CisgICAgPGdyb3VwIGNob2ljZT0ib3B0Ij4KKyAgICAgPGFyZyBjaG9pY2U9InBsYWlu Ij48b3B0aW9uPi1EPC9vcHRpb24+PC9hcmc+CisgICAgIDxhcmcgY2hvaWNlPSJwbGFpbiI+PG9w dGlvbj4tLXBnZGF0YTwvb3B0aW9uPjwvYXJnPgorICAgIDwvZ3JvdXA+CisgICAgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFkaXI8L3JlcGxhY2VhYmxlPgorICAgPC9hcmc+CisK KyAgPC9jbWRzeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxIGlkPSJy MS1hcHAtcGdfYWx0ZXJja2V5LTEiPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorICA8 cGFyYT4KKyAgIDxjb21tYW5kPnBnX2FsdGVyY2tleTwvY29tbWFuZD4gYWx0ZXJzIHRoZSBjbHVz dGVyIGtleSB1c2VkCisgICBmb3IgY2x1c3RlciBmaWxlIGVuY3J5cHRpb24uICBUaGUgY2x1c3Rl ciBrZXkgaXMgaW5pdGlhbGx5IHNldAorICAgZHVyaW5nIDx4cmVmIGxpbmtlbmQ9ImFwcC1pbml0 ZGIiLz4uICBUaGUgY29tbWFuZCBjYW4gYmUgcnVuIHdoaWxlIHRoZQorICAgc2VydmVyIGlzIHJ1 bm5pbmcgb3Igc3RvcHBlZC4gIFRoZSBuZXcgcGFzc3dvcmQgbXVzdCBiZSB1c2VkIHRoZSBuZXh0 CisgICB0aW1lIHRoZSBzZXJ2ZXIgaXMgc3RhcnRlZC4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgor ICAgPGNvbW1hbmQ+cGdfYWx0ZXJja2V5PC9jb21tYW5kPiBjaGFuZ2VzIHRoZSBrZXkgZW5jcnlw dGlvbiBrZXkKKyAgICg8YWNyb255bT5LRUs8L2Fjcm9ueW0+KSB3aGljaCBlbmNyeXB0cyB0aGUg ZGF0YSBlbmNyeXB0aW9uIGtleXM7CisgICBpdCBkb2VzIG5vdCBjaGFuZ2UgdGhlIGRhdGEgZW5j cnlwdGlvbiBrZXlzLiAgSXQgZG9lcyB0aGlzIGJ5CisgICBkZWNyeXB0aW5nIGVhY2ggZGF0YSBl bmNyeXB0aW9uIGtleSB1c2luZyB0aGUgPHJlcGxhY2VhYmxlCisgICBjbGFzcz0icGFyYW1ldGVy Ij5vbGRfY2x1c3Rlcl9rZXlfY29tbWFuZDwvcmVwbGFjZWFibGU+LAorICAgcmUtZW5jcnlwdGlu ZyBpdCB1c2luZyB0aGUgPHJlcGxhY2VhYmxlCisgICBjbGFzcz0icGFyYW1ldGVyIj5uZXdfY2x1 c3Rlcl9rZXlfY29tbWFuZDwvcmVwbGFjZWFibGU+LCBhbmQgdGhlbgorICAgd3JpdGVzIHRoZSBy ZXN1bHQgYmFjayB0byB0aGUgY2x1c3RlciBkaXJlY3RvcnkuCisgIDwvcGFyYT4KKworICA8cGFy YT4KKyAgIFNlZSB0aGUgPHhyZWYgbGlua2VuZD0iYXBwLWluaXRkYiIvPiBkb2N1bWVudGF0aW9u IGZvciBob3cgdG8gZGVmaW5lCisgICB0aGUgb2xkIGFuZCBuZXcgcGFzc3BocmFzZSBjb21tYW5k cy4gIFlvdSBjYW4gdXNlIGRpZmZlcmVudCBleGVjdXRhYmxlcworICAgZm9yIHRoZXNlIGNvbW1h bmRzLCBvciB5b3UgY2FuIHVzZSB0aGUgc2FtZSBleGVjdXRhYmxlIHdpdGggZGlmZmVyZW50Cisg ICBhcmd1bWVudHMgdG8gc3BlY2lmeSByZXRyaWV2YWwgb2YgdGhlIG9sZCBvciBuZXcga2V5Lgor ICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5wZ19hbHRlcmNrZXk8L2NvbW1hbmQ+ IG1hbmFnZXMgZGF0YSBlbmNyeXB0aW9uIGtleXMsCisgICB3aGljaCBhcmUgY3JpdGljYWwgdG8g YWxsb3dpbmcgUG9zdGdyZXMgdG8gYWNjZXNzIGl0cyBkZWNyeXB0ZWQKKyAgIGRhdGEuICBGb3Ig dGhpcyByZWFzb24sIGl0IGlzIHZlcnkgY2FyZWZ1bCB0byBwcmVzZXJ2ZSB0aGVzZQorICAga2V5 cyBpbiBtb3N0IHBvc3NpYmxlIGZhaWx1cmUgY29uZGl0aW9ucywgZS5nLiwgb3BlcmF0aW5nIHN5 c3RlbQorICAgZmFpbHVyZSBkdXJpbmcgY2x1c3RlciBlbmNyeXB0aW9uIGtleSByb3RhdGlvbi4K KyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgV2hlbiBzdGFydGVkLCA8Y29tbWFuZD5wZ19hbHRl cmNrZXk8L2NvbW1hbmQ+IHJlcGFpcnMgYW55IGZpbGVzIHRoYXQKKyAgIHJlbWFpbiBmcm9tIHBy ZXZpb3VzIGZhaWx1cmVzIGJlZm9yZSBhbHRlcmluZyB0aGUgY2x1c3RlciBlbmNyeXB0aW9uCisg ICBrZXkuICBEdXJpbmcgdGhpcyByZXBhaXIgcGhhc2UsIDxjb21tYW5kPnBnX2FsdGVyY2tleTwv Y29tbWFuZD4gd2lsbAorICAgZWl0aGVyIHJvbGwgYmFjayB0aGUgY2x1c3RlciBrZXkgb3Igcm9s bCBmb3J3YXJkIHRoZSBjaGFuZ2VzIHRoYXQKKyAgIHdlcmUgcHJldmlvdXNseSByZXF1ZXN0ZWQu ICBUaGUgc2VydmVyIHdpbGwgbm90IHN0YXJ0IGlmIHJlcGFpciBpcworICAgbmVlZGVkLCB0aG91 Z2ggYSBydW5uaW5nIHNlcnZlciBpcyB1bmFmZmVjdGVkIGJ5IGFuIHVucmVwYWlyZWQgY2x1c3Rl cgorICAga2V5IGNvbmZpZ3VyYXRpb24uICBUaGVyZWZvcmUsIGlmIDxjb21tYW5kPnBnX2FsdGVy Y2tleTwvY29tbWFuZD4KKyAgIGZhaWxzIGZvciBhbnkgcmVhc29uLCBpdCBpcyByZWNvbW1lbmRl ZCB5b3UgcnVuIHRoZSBjb21tYW5kIHdpdGgKKyAgIDxvcHRpb24+LS1yZXBhaXI8L29wdGlvbj4g dG8gc2ltcGx5IHJvbGwgYmFjayBvciBmb3J3YXJkIGFueSBwcmV2aW91cworICAgY2hhbmdlcy4g IFRoaXMgd2lsbCByZXBvcnQgaWYgaXQgcm9sbGVkIHRoZSBjbHVzdGVyIGtleSBiYWNrIG9yIGZv cndhcmQsCisgICBhbmQgdGhlbiBydW4gdGhlIGNvbW1hbmQgYWdhaW4gdG8gY2hhbmdlIHRoZSBj bHVzdGVyIGtleSBpZiBuZWVkZWQuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFlvdSBjYW4g c3BlY2lmeSB0aGUgZGF0YSBkaXJlY3Rvcnkgb24gdGhlIGNvbW1hbmQgbGluZSwgb3IgdXNlCisg ICB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgPGVudmFyPlBHREFUQTwvZW52YXI+LgorICA8L3Bh cmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPk9wdGlvbnM8L3RpdGxl PgorCisgICA8cGFyYT4KKyAgICA8dmFyaWFibGVsaXN0PgorICAgICA8dmFybGlzdGVudHJ5Pgor ICAgICAgPHRlcm0+PG9wdGlvbj4tUjwvb3B0aW9uPjwvdGVybT4KKyAgICAgIDx0ZXJtPjxvcHRp b24+LS1hdXRocHJvbXB0PC9vcHRpb24+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAg IDxwYXJhPgorICAgICAgICBBbGxvd3MgdGhlIDxvcHRpb24+b2xkX2NsdXN0ZXJfa2V5X2NvbW1h bmQ8L29wdGlvbj4gYW5kCisgICAgICAgIDxvcHRpb24+bmV3X2NsdXN0ZXJfa2V5X2NvbW1hbmQ8 L29wdGlvbj4gY29tbWFuZHMKKyAgICAgICAgdG8gcHJvbXB0IGZvciBhIHBhc3NwaHJhc2Ugb3Ig UElOLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVu dHJ5PgorICAgIDwvdmFyaWFibGVsaXN0PgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBP dGhlciBvcHRpb25zOgorCisgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgPHZhcmxpc3RlbnRyeT4K KyAgICAgICA8dGVybT48b3B0aW9uPi1WPC9vcHRpb24+PC90ZXJtPgorICAgICAgIDx0ZXJtPjxv cHRpb24+LS12ZXJzaW9uPC9vcHRpb24+PC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICA8cGFyYT4KKyAgICAgICBQcmludCB0aGUgPGFwcGxpY2F0aW9uPnBnX2FsdGVyY2tleTwvYXBw bGljYXRpb24+IHZlcnNpb24gYW5kIGV4aXQuCisgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlz dGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAg ICAgPHRlcm0+PG9wdGlvbj4tPzwvb3B0aW9uPjwvdGVybT4KKyAgICAgICA8dGVybT48b3B0aW9u Pi0taGVscDwvb3B0aW9uPjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+ CisgICAgICAgU2hvdyBoZWxwIGFib3V0IDxhcHBsaWNhdGlvbj5wZ19hbHRlcmNrZXk8L2FwcGxp Y2F0aW9uPiBjb21tYW5kIGxpbmUKKyAgICAgICBhcmd1bWVudHMsIGFuZCBleGl0LgorICAgICAg IDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAg IDwvdmFyaWFibGVsaXN0PgorICAgPC9wYXJhPgorCisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0 MT4KKyAgPHRpdGxlPkVudmlyb25tZW50PC90aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorICAg PHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48ZW52YXI+UEdEQVRBPC9lbnZhcj48L3Rlcm0+CisK KyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgRGVmYXVsdCBkYXRhIGRpcmVjdG9y eSBsb2NhdGlvbgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVu dHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxlbnZhcj5QR19DT0xPUjwvZW52 YXI+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBTcGVjaWZpZXMg d2hldGhlciB0byB1c2UgY29sb3IgaW4gZGlhZ25vc3RpYyBtZXNzYWdlcy4gUG9zc2libGUgdmFs dWVzCisgICAgICBhcmUgPGxpdGVyYWw+YWx3YXlzPC9saXRlcmFsPiwgPGxpdGVyYWw+YXV0bzwv bGl0ZXJhbD4gYW5kCisgICAgICA8bGl0ZXJhbD5uZXZlcjwvbGl0ZXJhbD4uCisgICAgIDwvcGFy YT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisgIDwvdmFyaWFibGVsaXN0 PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+ CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2Vu ZD0iYXBwLWluaXRkYiIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4K KworPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAppbmRleCBhM2I3NDNlOGMxLi40NmY3ODM0Zjcy IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL3JlZmVyZW5jZS5zZ21sCkBAIC0yNDEsNiArMjQxLDcgQEAKICAgIDwvcGFyYT4KICAgPC9w YXJ0aW50cm8+CiAKKyAgICZwZ2FsdGVyY2tleTsKICAgICZjbHVzdGVyZGI7CiAgICAmY3JlYXRl ZGI7CiAgICAmY3JlYXRldXNlcjsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vTWFrZWZpbGUgYi9zcmMv YmluL01ha2VmaWxlCmluZGV4IDdmOWRkZTkyNGUuLjAxOGVlNjU5MmYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vTWFrZWZpbGUKKysrIGIvc3JjL2Jpbi9NYWtlZmlsZQpAQCAtMTcsNiArMTcsNyBAQCBT VUJESVJTID0gXAogCWluaXRkYiBcCiAJcGdfYW1jaGVjayBcCiAJcGdfYXJjaGl2ZWNsZWFudXAg XAorCXBnX2FsdGVyY2tleSBcCiAJcGdfYmFzZWJhY2t1cCBcCiAJcGdfY2hlY2tzdW1zIFwKIAlw Z19jb25maWcgXApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19hbHRlcmNrZXkvLmdpdGlnbm9yZSBi L3NyYy9iaW4vcGdfYWx0ZXJja2V5Ly5naXRpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMC4uNGM0ZjM5ZjJjYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iaW4vcGdf YWx0ZXJja2V5Ly5naXRpZ25vcmUKQEAgLTAsMCArMSBAQAorL3BnX2FsdGVyY2tleQpkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wZ19hbHRlcmNrZXkvTWFrZWZpbGUgYi9zcmMvYmluL3BnX2FsdGVyY2tl eS9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4yMTMzYTRi YTA2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2Jpbi9wZ19hbHRlcmNrZXkvTWFrZWZpbGUKQEAg LTAsMCArMSwzOCBAQAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMKKyMgTWFrZWZpbGUgZm9yIHNyYy9i aW4vcGdfYWx0ZXJja2V5CisjCisjIENvcHlyaWdodCAoYykgMTk5OC0yMDIxLCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorIworIyBzcmMvYmluL3BnX2FsdGVyY2tleS9NYWtl ZmlsZQorIworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworUEdGSUxFREVTQyA9ICJwZ19hbHRlcmNrZXkg LSBhbHRlciB0aGUgY2x1c3RlciBrZXkiCitQR0FQUElDT049d2luMzIKKworc3ViZGlyID0gc3Jj L2Jpbi9wZ19hbHRlcmNrZXkKK3RvcF9idWlsZGRpciA9IC4uLy4uLy4uCitpbmNsdWRlICQodG9w X2J1aWxkZGlyKS9zcmMvTWFrZWZpbGUuZ2xvYmFsCisKK09CSlMgPSBcCisJJChXSU4zMlJFUykg XAorCXBnX2FsdGVyY2tleS5vCisKK2FsbDogcGdfYWx0ZXJja2V5CisKK3BnX2FsdGVyY2tleTog JChPQkpTKSB8IHN1Ym1ha2UtbGlicGdwb3J0CisJJChDQykgJChDRkxBR1MpICReICQoTERGTEFH UykgJChMREZMQUdTX0VYKSAkKExJQlMpIC1vICRAJChYKQorCitpbnN0YWxsOiBhbGwgaW5zdGFs bGRpcnMKKwkkKElOU1RBTExfUFJPR1JBTSkgcGdfYWx0ZXJja2V5JChYKSAnJChERVNURElSKSQo YmluZGlyKS9wZ19hbHRlcmNrZXkkKFgpJworCitpbnN0YWxsZGlyczoKKwkkKE1LRElSX1ApICck KERFU1RESVIpJChiaW5kaXIpJworCit1bmluc3RhbGw6CisJcm0gLWYgJyQoREVTVERJUikkKGJp bmRpcikvcGdfYWx0ZXJja2V5JChYKScKKworY2xlYW4gZGlzdGNsZWFuIG1haW50YWluZXItY2xl YW46CisJcm0gLWYgcGdfYWx0ZXJja2V5JChYKSAkKE9CSlMpCisJcm0gLXJmIHRtcF9jaGVjawpk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19hbHRlcmNrZXkvUkVBRE1FIGIvc3JjL2Jpbi9wZ19hbHRl cmNrZXkvUkVBRE1FCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjZkYjM3 MzkyNzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmluL3BnX2FsdGVyY2tleS9SRUFETUUKQEAg LTAsMCArMSwyNCBAQAorcGdfYWx0ZXJja2V5Cis9PT09PT09PT09PT0KKworVGhpcyBkaXJlY3Rv cnkgY29udGFpbnMgdGhlIGNvZGUgdG8gZ2VuZXJhdGUgdGhlIHBnX2FsdGVyY2tleSBiaW5hcnku CisKK0FyY2hpdGVjdHVyZQorLS0tLS0tLS0tLS0tCisKK3BnX2FsdGVyY2tleSBhbGxvd3MgYWx0 ZXJpbmcgb2YgdGhlIGNsdXN0ZXIgZW5jcnlwdGlvbiBrZXkgKGtleQorZW5jcnlwdGlvbiBrZXkg b3IgS0VLKSB3aGljaCBpcyBzdG9yZWQgb3V0c2lkZSBvZiB0aGUgZmlsZSBzeXN0ZW07ICBzZWUK K3NyYy9iYWNrZW5kL2NyeXB0by9SRUFETUUgZm9yIG1vcmUgZGV0YWlscy4gIFRoaXMgbXVzdCBi ZSBkb25lIGluIGEKK2NyYXNoLXNhZmUgbWFubmVyIHNpbmNlIHRoZSBrZXlzIGFyZSBjcml0aWNh bCB0byByZWFkaW5nIGFuIGVuY3J5cHRlZAorY2x1c3Rlci4gIFRoZSBhY3RpdmUgZGF0YSBlbmNy eXB0aW9uIGtleXMgKERFSykgYXJlIGVuY3J5cHRlZC93cmFwcGVkIGJ5Cit0aGUgS0VLIGFuZCBz dG9yZWQgaW4gUEdEQVRBL3BnX2NyeXB0b2tleXMvbGl2ZSBhcyBzZXBhcmF0ZSBmaWxlcywKK2N1 cnJlbnRseSBmaWxlcyAwIGFuZCAxLgorCitUaGlzIHByb2Nlc3MgY2FuIGJlIGludGVycnVwdGVk IGF0IGFueXRpbWU7ICB0aGUgbmV3IGV4ZWN1dGlvbiBvZgorcGdfYWx0ZXJja2V5IHdpbGwgcmVw YWlyIGFueSBwcmV2aW91c2x5IGludGVycnVwdGVkIGV4ZWN1dGlvbiBvZgorcGdfYWx0ZXJja2V5 LgorCitwZ19hbHRlcmNrZXkgc2hvdWxkIG5ldmVyIGJlIHJ1biBjb25jdXJyZW50bHkuICBBIGxv Y2sgZmlsZSBwcmV2ZW50cworYWxtb3N0IGFsbCBjb25jdXJyZW50IGV4ZWN1dGlvbi4gIHBnX2Fs dGVyY2tleSBjYW4gYmUgcnVuIGlmIHRoZQorZGF0YWJhc2Ugc2VydmVyIGlzIHJ1bm5pbmcgb3Ig c3RvcHBlZCwgc28gaXQgY2FuJ3QgdXNlIGRhdGFiYXNlIGxvY2tpbmcKK3RoYXQgaXMgb25seSBh dmFpbGFibGUgd2hlbiB0aGUgc2VydmVyIGlzIHJ1bm5pbmcuCmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX2FsdGVyY2tleS9wZ19hbHRlcmNrZXkuYyBiL3NyYy9iaW4vcGdfYWx0ZXJja2V5L3BnX2Fs dGVyY2tleS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjdlM2Q0YWQ5 MTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmluL3BnX2FsdGVyY2tleS9wZ19hbHRlcmNrZXku YwpAQCAtMCwwICsxLDcyNCBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfYWx0ZXJj a2V5LmMKKyAqICAgIEEgdXRpbGl0eSB0byBjaGFuZ2UgdGhlIGNsdXN0ZXIga2V5IChrZXkgZW5j cnlwdGlvbiBrZXksIEtFSykKKyAqICAgIHVzZWQgZm9yIGNsdXN0ZXIgZmlsZSBlbmNyeXB0aW9u LiAgVGhlIEtFSyB3cmFwIGRhdGEgZW5jcnlwdGlvbgorICogICAga2V5cyAoREVLKS4KKyAqCisg KiBUaGUgdGhlb3J5IG9mIG9wZXJhdGlvbiBpcyBmYWlybHkgc2ltcGxlOgorICogICAgMS4gQ3Jl YXRlIGxvY2sgZmlsZQorICogICAgMi4gUmV0cmlldmUgY3VycmVudCBhbmQgbmV3IGNsdXN0ZXIg a2V5IHVzaW5nIHRoZSBzdXBwbGllZAorICogICAgICAgY29tbWFuZHMuCisgKiAgICAzLiBSZXZl cnQgYW55IGZhaWxlZCBhbHRlciBvcGVyYXRpb24uCisgKiAgICA0LiBDcmVhdGUgYSAibmV3IiBk aXJlY3RvcnkKKyAqICAgIDUuIFVud3JhcCBlYWNoIERFSyBpbiAibGl2ZSIgdXNpbmcgdGhlIG9s ZCBLRUsKKyAqICAgIDYuIFdyYXAgZWFjaCBERUsgdXNpbmcgdGhlIG5ldyBLRUsgYW5kIHdyaXRl IGl0IHRvICJuZXciCisgKiAgICA3LiBSZW5hbWUgImxpdmUiIHRvICJvbGQiCisgKiAgICA4LiBS ZW5hbWUgIm5ldyIgdG8gImxpdmUiCisgKiAgICA5LiBSZW1vdmUgIm9sZCIKKyAqICAgMTAuIFJl bW92ZSBsb2NrIGZpbGUKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMSwg UG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgor ICogc3JjL2Jpbi9wZ19hbHRlcmNrZXkvcGdfYWx0ZXJja2V5LmMKKyAqCisgKi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAqLworCisKKyNkZWZpbmUgRlJPTlRFTkQgMQorCisjaW5jbHVkZSAicG9zdGdyZXNf ZmUuaCIKKworI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1 ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKworI2luY2x1ZGUgImNvbW1vbi9m aWxlX3Blcm0uaCIKKyNpbmNsdWRlICJjb21tb24vZmlsZV91dGlscy5oIgorI2luY2x1ZGUgImNv bW1vbi9oZXguaCIKKyNpbmNsdWRlICJjb21tb24vcmVzdHJpY3RlZF90b2tlbi5oIgorI2luY2x1 ZGUgImNyeXB0by9rbWdyLmgiCisjaW5jbHVkZSAiY29tbW9uL2xvZ2dpbmcuaCIKKyNpbmNsdWRl ICJnZXRvcHRfbG9uZy5oIgorI2luY2x1ZGUgInBnX2dldG9wdC5oIgorCit0eXBlZGVmIGVudW0K K3sKKwlTVUNDRVNTX0VYSVQgPSAwLAorCUVSUk9SX0VYSVQsCisJUk1ESVJfRVhJVCwKKwlSRVBB SVJfRVhJVAorfSBleGl0X2FjdGlvbjsKKworI2RlZmluZSBNQVhfV1JBUFBFRF9LRVlfTEVOR1RI IDY0CisKK3N0YXRpYyBpbnQJbG9ja19mZCA9IC0xOworc3RhdGljIGJvb2wgcGFzc190ZXJtaW5h bF9mZCA9IGZhbHNlOworaW50CQkJdGVybWluYWxfZmQgPSAtMTsKK3N0YXRpYyBib29sIHJlcGFp cl9tb2RlID0gZmFsc2U7CitzdGF0aWMgY2hhciAqb2xkX2NsdXN0ZXJfa2V5X2NtZCA9IE5VTEws CisJCSAgICpuZXdfY2x1c3Rlcl9rZXlfY21kID0gTlVMTDsKK3N0YXRpYyBjaGFyIG9sZF9jbHVz dGVyX2tleVtLTUdSX0NMVVNURVJfS0VZX0xFTl0sCisJCQluZXdfY2x1c3Rlcl9rZXlbS01HUl9D TFVTVEVSX0tFWV9MRU5dOworc3RhdGljIENyeXB0b0tleSBkYXRhX2tleTsKK3Vuc2lnbmVkIGNo YXIgaW5fa2V5W01BWF9XUkFQUEVEX0tFWV9MRU5HVEhdLAorCQkJb3V0X2tleVtNQVhfV1JBUFBF RF9LRVlfTEVOR1RIXTsKK2ludAkJCWluX2tsZW4sCisJCQlvdXRfa2xlbjsKK3N0YXRpYyBjaGFy IHRvcF9wYXRoW01BWFBHUEFUSF0sCisJCQlwaWRfcGF0aFtNQVhQR1BBVEhdLAorCQkJbGl2ZV9w YXRoW01BWFBHUEFUSF0sCisJCQluZXdfcGF0aFtNQVhQR1BBVEhdLAorCQkJb2xkX3BhdGhbTUFY UEdQQVRIXTsKKworc3RhdGljIGNoYXIgKkRhdGFEaXIgPSBOVUxMOworc3RhdGljIGNvbnN0IGNo YXIgKnByb2duYW1lOworCitzdGF0aWMgdm9pZCBjcmVhdGVfbG9ja2ZpbGUodm9pZCk7CitzdGF0 aWMgdm9pZCByZWNvdmVyX2ZhaWx1cmUodm9pZCk7CitzdGF0aWMgdm9pZCByZXRyaWV2ZV9jbHVz dGVyX2tleXModm9pZCk7CitzdGF0aWMgdm9pZCBiemVyb19rZXlzX2FuZF9leGl0KGV4aXRfYWN0 aW9uIGFjdGlvbik7CitzdGF0aWMgdm9pZCByZWVuY3J5cHRfZGF0YV9rZXlzKHZvaWQpOworc3Rh dGljIHZvaWQgaW5zdGFsbF9uZXdfa2V5cyh2b2lkKTsKKworc3RhdGljIHZvaWQKK3VzYWdlKGNv bnN0IGNoYXIgKnByb2duYW1lKQoreworCXByaW50ZihfKCIlcyBjaGFuZ2VzIHRoZSBjbHVzdGVy IGtleSBvZiBhIFBvc3RncmVTUUwgZGF0YWJhc2UgY2x1c3Rlci5cblxuIiksIHByb2duYW1lKTsK KwlwcmludGYoXygiVXNhZ2U6XG4iKSk7CisJcHJpbnRmKF8oIiAgJXMgW09QVElPTl0gb2xkX2Ns dXN0ZXJfa2V5X2NvbW1hbmQgbmV3X2NsdXN0ZXJfa2V5X2NvbW1hbmQgW0RBVEFESVJdXG4iKSwg cHJvZ25hbWUpOworCXByaW50ZihfKCIgICVzIFtyZXBhaXJfb3B0aW9uXSBbREFUQURJUl1cbiIp LCBwcm9nbmFtZSk7CisJcHJpbnRmKF8oIlxuT3B0aW9uczpcbiIpKTsKKwlwcmludGYoXygiICAt UiwgLS1hdXRocHJvbXB0ICAgICAgIHByb21wdCBmb3IgYSBwYXNzcGhyYXNlIG9yIFBJTlxuIikp OworCXByaW50ZihfKCIgWy1ELCAtLXBnZGF0YT1dREFUQURJUiAgZGF0YSBkaXJlY3RvcnlcbiIp KTsKKwlwcmludGYoXygiICAtViwgLS12ZXJzaW9uICAgICAgICAgIG91dHB1dCB2ZXJzaW9uIGlu Zm9ybWF0aW9uLCB0aGVuIGV4aXRcbiIpKTsKKwlwcmludGYoXygiICAtPywgLS1oZWxwICAgICAg ICAgICAgIHNob3cgdGhpcyBoZWxwLCB0aGVuIGV4aXRcbiIpKTsKKwlwcmludGYoXygiXG5SZXBh aXIgb3B0aW9uczpcbiIpKTsKKwlwcmludGYoXygiICAtciwgLS1yZXBhaXIgICAgICAgICAgIHJl cGFpciBwcmV2aW91cyBmYWlsdXJlXG4iKSk7CisJcHJpbnRmKF8oIlxuSWYgbm8gZGF0YSBkaXJl Y3RvcnkgKERBVEFESVIpIGlzIHNwZWNpZmllZCwgIgorCQkJICJ0aGUgZW52aXJvbm1lbnQgdmFy aWFibGUgUEdEQVRBXG5pcyB1c2VkLlxuXG4iKSk7CisJcHJpbnRmKF8oIlJlcG9ydCBidWdzIHRv IDwlcz4uXG4iKSwgUEFDS0FHRV9CVUdSRVBPUlQpOworCXByaW50ZihfKCIlcyBob21lIHBhZ2U6 IDwlcz5cbiIpLCBQQUNLQUdFX05BTUUsIFBBQ0tBR0VfVVJMKTsKK30KKworCitpbnQKK21haW4o aW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKwlzdGF0aWMgc3RydWN0IG9wdGlvbiBsb25nX29w dGlvbnNbXSA9IHsKKwkJeyJhdXRocHJvbXB0IiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICdS J30sCisJCXsicmVwYWlyIiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICdyJ30sCisJCXsicGdk YXRhIiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICdEJ30sCisJCXtOVUxMLCAwLCBOVUxMLCAw fQorCX07CisKKwlpbnQJCQljOworCisJcGdfbG9nZ2luZ19pbml0KGFyZ3ZbMF0pOworCXNldF9w Z2xvY2FsZV9wZ3NlcnZpY2UoYXJndlswXSwgUEdfVEVYVERPTUFJTigicGdfYWx0ZXJja2V5Iikp OworCXByb2duYW1lID0gZ2V0X3Byb2duYW1lKGFyZ3ZbMF0pOworCisJaWYgKGFyZ2MgPiAxKQor CXsKKwkJaWYgKHN0cmNtcChhcmd2WzFdLCAiLS1oZWxwIikgPT0gMCB8fCBzdHJjbXAoYXJndlsx XSwgIi0/IikgPT0gMCkKKwkJeworCQkJdXNhZ2UocHJvZ25hbWUpOworCQkJZXhpdCgwKTsKKwkJ fQorCQlpZiAoc3RyY21wKGFyZ3ZbMV0sICItLXZlcnNpb24iKSA9PSAwIHx8IHN0cmNtcChhcmd2 WzFdLCAiLVYiKSA9PSAwKQorCQl7CisJCQlwdXRzKCJwZ19hbHRlcmNrZXkgKFBvc3RncmVTUUwp ICIgUEdfVkVSU0lPTik7CisJCQlleGl0KDApOworCQl9CisJfQorCisJLyogY2hlY2sgZm9yIC1y Ly1SICovCisJd2hpbGUgKChjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgIkQ6clIiLCBsb25n X29wdGlvbnMsIE5VTEwpKSAhPSAtMSkKKwl7CisJCXN3aXRjaCAoYykKKwkJeworCQkJY2FzZSAn RCc6CisJCQkJRGF0YURpciA9IG9wdGFyZzsKKwkJCQlicmVhazsKKwkJCWNhc2UgJ3InOgorCQkJ CXJlcGFpcl9tb2RlID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJCWNhc2UgJ1InOgorCQkJCXBhc3Nf dGVybWluYWxfZmQgPSB0cnVlOworCQkJCWJyZWFrOworCQkJZGVmYXVsdDoKKwkJCQlmcHJpbnRm KHN0ZGVyciwgXygiVHJ5IFwiJXMgLS1oZWxwXCIgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iKSwg cHJvZ25hbWUpOworCQkJCWV4aXQoMSk7CisJCX0KKwl9CisKKwlpZiAoIXJlcGFpcl9tb2RlKQor CXsKKwkJLyogZ2V0IGNsdXN0ZXIga2V5IGNvbW1hbmRzICovCisJCWlmIChvcHRpbmQgPCBhcmdj KQorCQkJb2xkX2NsdXN0ZXJfa2V5X2NtZCA9IGFyZ3Zbb3B0aW5kKytdOworCQllbHNlCisJCXsK KwkJCXBnX2xvZ19lcnJvcigibWlzc2luZyBvbGRfY2x1c3Rlcl9rZXlfY29tbWFuZCIpOworCQkJ ZnByaW50ZihzdGRlcnIsIF8oIlRyeSBcIiVzIC0taGVscFwiIGZvciBtb3JlIGluZm9ybWF0aW9u LlxuIiksCisJCQkJCXByb2duYW1lKTsKKwkJCWV4aXQoMSk7CisJCX0KKworCQlpZiAob3B0aW5k IDwgYXJnYykKKwkJCW5ld19jbHVzdGVyX2tleV9jbWQgPSBhcmd2W29wdGluZCsrXTsKKwkJZWxz ZQorCQl7CisJCQlwZ19sb2dfZXJyb3IoIm1pc3NpbmcgbmV3X2NsdXN0ZXJfa2V5X2NvbW1hbmQi KTsKKwkJCWZwcmludGYoc3RkZXJyLCBfKCJUcnkgXCIlcyAtLWhlbHBcIiBmb3IgbW9yZSBpbmZv cm1hdGlvbi5cbiIpLAorCQkJCQlwcm9nbmFtZSk7CisJCQlleGl0KDEpOworCQl9CisJfQorCisJ aWYgKERhdGFEaXIgPT0gTlVMTCkKKwl7CisJCWlmIChvcHRpbmQgPCBhcmdjKQorCQkJRGF0YURp ciA9IGFyZ3Zbb3B0aW5kKytdOworCQllbHNlCisJCQlEYXRhRGlyID0gZ2V0ZW52KCJQR0RBVEEi KTsKKworCQkvKiBJZiBubyBEYXRhRGlyIHdhcyBzcGVjaWZpZWQsIGFuZCBub25lIGNvdWxkIGJl IGZvdW5kLCBlcnJvciBvdXQgKi8KKwkJaWYgKERhdGFEaXIgPT0gTlVMTCkKKwkJeworCQkJcGdf bG9nX2Vycm9yKCJubyBkYXRhIGRpcmVjdG9yeSBzcGVjaWZpZWQiKTsKKwkJCWZwcmludGYoc3Rk ZXJyLCBfKCJUcnkgXCIlcyAtLWhlbHBcIiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIpLCBwcm9n bmFtZSk7CisJCQlleGl0KDEpOworCQl9CisJfQorCisJLyogQ29tcGxhaW4gaWYgYW55IGFyZ3Vt ZW50cyByZW1haW4gKi8KKwlpZiAob3B0aW5kIDwgYXJnYykKKwl7CisJCXBnX2xvZ19lcnJvcigi dG9vIG1hbnkgY29tbWFuZC1saW5lIGFyZ3VtZW50cyAoZmlyc3QgaXMgXCIlc1wiKSIsCisJCQkJ CSBhcmd2W29wdGluZF0pOworCQlmcHJpbnRmKHN0ZGVyciwgXygiVHJ5IFwiJXMgLS1oZWxwXCIg Zm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iKSwKKwkJCQlwcm9nbmFtZSk7CisJCWV4aXQoMSk7CisJ fQorCisJLyoKKwkgKiBEaXNhbGxvdyBydW5uaW5nIGFzIHJvb3QgYmVjYXVzZSB3ZSBjcmVhdGUg ZGlyZWN0b3JpZXMgaW4gUEdEQVRBCisJICovCisjaWZuZGVmIFdJTjMyCisJaWYgKGdldGV1aWQo KSA9PSAwKQorCXsKKwkJcGdfbG9nX2Vycm9yKCIlczogY2Fubm90IGJlIHJ1biBhcyByb290XG4i CisJCQkJCSAiUGxlYXNlIGxvZyBpbiAodXNpbmcsIGUuZy4sIFwic3VcIikgYXMgdGhlICIKKwkJ CQkJICIodW5wcml2aWxlZ2VkKSB1c2VyIHRoYXQgd2lsbFxuIgorCQkJCQkgIm93biB0aGUgc2Vy dmVyIHByb2Nlc3MuXG4iLAorCQkJCQkgcHJvZ25hbWUpOworCQlleGl0KDEpOworCX0KKyNlbmRp ZgorCisJZ2V0X3Jlc3RyaWN0ZWRfdG9rZW4oKTsKKworCS8qIFNldCBtYXNrIGJhc2VkIG9uIFBH REFUQSBwZXJtaXNzaW9ucyAqLworCWlmICghR2V0RGF0YURpcmVjdG9yeUNyZWF0ZVBlcm0oRGF0 YURpcikpCisJeworCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCByZWFkIHBlcm1pc3Npb25zIG9m IGRpcmVjdG9yeSBcIiVzXCI6ICVtIiwKKwkJCQkJIERhdGFEaXIpOworCQlleGl0KDEpOworCX0K KworCXVtYXNrKHBnX21vZGVfbWFzayk7CisKKwlzbnByaW50Zih0b3BfcGF0aCwgc2l6ZW9mKHRv cF9wYXRoKSwgIiVzLyVzIiwgRGF0YURpciwgS01HUl9ESVIpOworCXNucHJpbnRmKHBpZF9wYXRo LCBzaXplb2YocGlkX3BhdGgpLCAiJXMvJXMiLCBEYXRhRGlyLCBLTUdSX0RJUl9QSUQpOworCXNu cHJpbnRmKGxpdmVfcGF0aCwgc2l6ZW9mKGxpdmVfcGF0aCksICIlcy8lcyIsIERhdGFEaXIsIExJ VkVfS01HUl9ESVIpOworCXNucHJpbnRmKG5ld19wYXRoLCBzaXplb2YobmV3X3BhdGgpLCAiJXMv JXMiLCBEYXRhRGlyLCBORVdfS01HUl9ESVIpOworCXNucHJpbnRmKG9sZF9wYXRoLCBzaXplb2Yo b2xkX3BhdGgpLCAiJXMvJXMiLCBEYXRhRGlyLCBPTERfS01HUl9ESVIpOworCisJLyogQ29tcGxh aW4gaWYgYW55IGFyZ3VtZW50cyByZW1haW4gKi8KKwlpZiAob3B0aW5kIDwgYXJnYykKKwl7CisJ CXBnX2xvZ19lcnJvcigidG9vIG1hbnkgY29tbWFuZC1saW5lIGFyZ3VtZW50cyAoZmlyc3QgaXMg XCIlc1wiKSIsCisJCQkJCSBhcmd2W29wdGluZF0pOworCQlmcHJpbnRmKHN0ZGVyciwgXygiVHJ5 IFwiJXMgLS1oZWxwXCIgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iKSwKKwkJCQlwcm9nbmFtZSk7 CisJCWV4aXQoMSk7CisJfQorCisJaWYgKERhdGFEaXIgPT0gTlVMTCkKKwl7CisJCXBnX2xvZ19l cnJvcigibm8gZGF0YSBkaXJlY3Rvcnkgc3BlY2lmaWVkIik7CisJCWZwcmludGYoc3RkZXJyLCBf KCJUcnkgXCIlcyAtLWhlbHBcIiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIpLCBwcm9nbmFtZSk7 CisJCWV4aXQoMSk7CisJfQorCisJY3JlYXRlX2xvY2tmaWxlKCk7CisKKwlyZWNvdmVyX2ZhaWx1 cmUoKTsKKworCWlmICghcmVwYWlyX21vZGUpCisJeworCQlyZXRyaWV2ZV9jbHVzdGVyX2tleXMo KTsKKwkJcmVlbmNyeXB0X2RhdGFfa2V5cygpOworCQlpbnN0YWxsX25ld19rZXlzKCk7CisJfQor CisjaWZuZGVmIFdJTjMyCisJLyogcmVtb3ZlIGZpbGUgc3lzdGVtIHJlZmVyZW5jZSB0byBmaWxl ICovCisJaWYgKHVubGluayhwaWRfcGF0aCkgPCAwKQorCXsKKwkJcGdfbG9nX2Vycm9yKCJjb3Vs ZCBub3QgZGVsZXRlIGxvY2sgZmlsZSBcIiVzXCI6ICVtIiwgS01HUl9ESVJfUElEKTsKKwkJZXhp dCgxKTsKKwl9CisjZW5kaWYKKworCWNsb3NlKGxvY2tfZmQpOworCisJYnplcm9fa2V5c19hbmRf ZXhpdChTVUNDRVNTX0VYSVQpOworfQorCisvKiBDcmVhdGUgYSBsb2NrIGZpbGU7ICB0aGlzIHBy ZXZlbnRzIGFsbW9zdCBhbGwgY2FzZXMgb2YgY29uY3VycmVudCBhY2Nlc3MgKi8KK3ZvaWQKK2Ny ZWF0ZV9sb2NrZmlsZSh2b2lkKQoreworCXN0cnVjdCBzdGF0IGJ1ZmZlcjsKKwljaGFyCQlsb2Nr X3BpZF9zdHJbMjBdOworCisJaWYgKHN0YXQodG9wX3BhdGgsICZidWZmZXIpICE9IDAgfHwgIVNf SVNESVIoYnVmZmVyLnN0X21vZGUpKQorCXsKKwkJcGdfbG9nX2Vycm9yKCJjbHVzdGVyIGZpbGUg ZW5jcnlwdGlvbiBkaXJlY3RvcnkgXCIlc1wiIGlzIG1pc3Npbmc7ICBpcyBpdCBlbmFibGVkPyIs IEtNR1JfRElSX1BJRCk7CisJCWZwcmludGYoc3RkZXJyLCBfKCJFeGl0aW5nIHdpdGggbm8gY2hh bmdlcyBtYWRlLlxuIikpOworCQlleGl0KDEpOworCX0KKworCS8qIERvZXMgYSBsb2NrZmlsZSBl eGlzdD8gKi8KKwlpZiAoKGxvY2tfZmQgPSBvcGVuKHBpZF9wYXRoLCBPX1JET05MWSwgMCkpICE9 IC0xKQorCXsKKwkJaW50CQkJbG9ja19waWQ7CisJCWludAkJCWxlbjsKKworCQkvKiByZWFkIHRo ZSBQSUQgKi8KKwkJaWYgKChsZW4gPSByZWFkKGxvY2tfZmQsIGxvY2tfcGlkX3N0ciwgc2l6ZW9m KGxvY2tfcGlkX3N0cikgLSAxKSkgPT0gMCkKKwkJeworCQkJcGdfbG9nX2Vycm9yKCJjYW5ub3Qg cmVhZCBwaWQgZnJvbSBsb2NrIGZpbGUgXCIlc1wiOiAlbSIsIEtNR1JfRElSX1BJRCk7CisJCQlm cHJpbnRmKHN0ZGVyciwgXygiRXhpdGluZyB3aXRoIG5vIGNoYW5nZXMgbWFkZS5cbiIpKTsKKwkJ CWV4aXQoMSk7CisJCX0KKwkJbG9ja19waWRfc3RyW2xlbl0gPSAnXDAnOworCisJCWlmICgobG9j a19waWQgPSBhdG9pKGxvY2tfcGlkX3N0cikpID09IDApCisJCXsKKwkJCXBnX2xvZ19lcnJvcigi aW52YWxpZCBwaWQgaW4gbG9jayBmaWxlIFwiJXNcIjogJW0iLCBLTUdSX0RJUl9QSUQpOworCQkJ ZnByaW50ZihzdGRlcnIsIF8oIkV4aXRpbmcgd2l0aCBubyBjaGFuZ2VzIG1hZGUuXG4iKSk7CisJ CQlleGl0KDEpOworCQl9CisKKwkJLyogSXMgdGhlIFBJRCBydW5uaW5nPyAqLworCQlpZiAoa2ls bChsb2NrX3BpZCwgMCkgPT0gMCkKKwkJeworCQkJcGdfbG9nX2Vycm9yKCJhY3RpdmUgcHJvY2Vz cyAlZCBjdXJyZW50bHkgaG9sZHMgYSBsb2NrIG9uIHRoaXMgb3BlcmF0aW9uLCByZWNvcmRlZCBp biBcIiVzXCIiLAorCQkJCQkJIGxvY2tfcGlkLCBLTUdSX0RJUl9QSUQpOworCQkJZnByaW50Zihz dGRlcnIsIF8oIkV4aXRpbmcgd2l0aCBubyBjaGFuZ2VzIG1hZGUuXG4iKSk7CisJCQlleGl0KDEp OworCQl9CisKKwkJY2xvc2UobG9ja19mZCk7CisKKwkJaWYgKHJlcGFpcl9tb2RlKQorCQkJcHJp bnRmKCJvbGQgbG9jayBmaWxlIHJlbW92ZWRcbiIpOworCisJCS8qIC0tLS0tLS0tLS0KKwkJICog cGlkIGlzIG5vIGxvbmdlciBydW5uaW5nLCBzbyByZW1vdmUgdGhlIGxvY2sgZmlsZS4KKwkJICog VGhpcyBpcyBub3QgMTAwJSBzYWZlIGZyb20gY29uY3VycmVudCBhY2Nlc3MsIGUuZy46CisJCSAq CisJCSAqICAgIHByb2Nlc3MgMSBleGl0cyBhbmQgbGVhdmVzIHN0YWxlIGxvY2sgZmlsZQorCQkg KiAgICBwcm9jZXNzIDIgY2hlY2tzIHN0YWxlIGxvY2sgZmlsZSBvZiBwcm9jZXNzIDEKKwkJICog ICAgcHJvY2VzcyAzIGNoZWNrcyBzdGFsZSBsb2NrIGZpbGUgb2YgcHJvY2VzcyAxCisJCSAqICAg IHByb2Nlc3MgMiByZW1vdmUgdGhlIGxvY2sgZmlsZSBvZiBwcm9jZXNzIDEKKwkJICogICAgcHJv Y2VzcyA0IGNyZWF0ZXMgYSBsb2NrIGZpbGUKKwkJICogICAgcHJvY2VzcyAzIHJlbW92ZSB0aGUg bG9jayBmaWxlIG9mIHByb2Nlc3MgNAorCQkgKiAgICBwcm9jZXNzIDUgY3JlYXRlcyBhIGxvY2sg ZmlsZQorCQkgKgorCQkgKiBUaGUgc2xlZXAoMikgaGVscHMgd2l0aCB0aGlzIHNpbmNlIGl0IHJl ZHVjZXMgdGhlIGxpa2VsaWhvb2QKKwkJICogYSBwcm9jZXNzIHRoYXQgZGlkIGFuIHVubG9jayB3 aWxsIGludGVyZmVyZSB3aXRoIGFub3RoZXIgdW5sb2NrCisJCSAqIHByb2Nlc3MuICBXZSBjb3Vs ZCBhc2sgdXNlcnMgdG8gcmVtb3ZlIHRoZSBsb2NrLCBidXQgdGhhdCBzZWVtcworCQkgKiBldmVu IG1vcmUgZXJyb3ItcHJvbmUsIGVzcGVjaWFsbHkgc2luY2UgdGhpcyBtaWdodCBoYXBwZW4KKwkJ ICogb24gc2VydmVyIHN0YXJ0LiAgTWFueSBQRyB0b29scyBzZWVtIHRvIGhhdmUgcHJvYmxlbXMg d2l0aAorCQkgKiBjb25jdXJyZW50IGFjY2Vzcy4KKwkJICogLS0tLS0tLS0tLQorCQkgKi8KKwkJ dW5saW5rKHBpZF9wYXRoKTsKKworCQkvKiBTbGVlcCB0byByZWR1Y2UgdGhlIGxpa2VsaWhvb2Qg b2YgY29uY3VycmVudCB1bmxpbmsgKi8KKwkJcGdfdXNsZWVwKDIwMDAwMDBMKTsJLyogMiBzZWNv bmRzICovCisJfQorCisJLyogQ3JlYXRlIG91ciBvd24gbG9ja2ZpbGU/ICovCisjaWZuZGVmIFdJ TjMyCisJbG9ja19mZCA9IG9wZW4ocGlkX3BhdGgsIE9fUkRXUiB8IE9fQ1JFQVQgfCBPX0VYQ0ws IHBnX2ZpbGVfY3JlYXRlX21vZGUpOworI2Vsc2UKKwkvKiBkZWxldGUgb24gY2xvc2UgKi8KKwls b2NrX2ZkID0gb3BlbihwaWRfcGF0aCwgT19SRFdSIHwgT19DUkVBVCB8IE9fRVhDTCB8IE9fVEVN UE9SQVJZLAorCQkJCSAgIHBnX2ZpbGVfY3JlYXRlX21vZGUpOworI2VuZGlmCisKKwlpZiAobG9j a19mZCA9PSAtMSkKKwl7CisJCWlmIChlcnJubyA9PSBFRVhJU1QpCisJCQlwZ19sb2dfZXJyb3Io ImFuIGFjdGl2ZSBwcm9jZXNzIGN1cnJlbnRseSBob2xkcyBhIGxvY2sgb24gdGhpcyBvcGVyYXRp b24sIHJlY29yZGVkIGluIFwiJXNcIiIsCisJCQkJCQkgS01HUl9ESVJfUElEKTsKKwkJZWxzZQor CQkJcGdfbG9nX2Vycm9yKCJ1bmFibGUgdG8gY3JlYXRlIGxvY2sgZmlsZSBcIiVzXCI6ICVtIiwg S01HUl9ESVJfUElEKTsKKwkJZnByaW50ZihzdGRlcnIsIF8oIkV4aXRpbmcgd2l0aCBubyBjaGFu Z2VzIG1hZGUuXG4iKSk7CisJCWV4aXQoMSk7CisJfQorCisJc25wcmludGYobG9ja19waWRfc3Ry LCBzaXplb2YobG9ja19waWRfc3RyKSwgIiVkXG4iLCBnZXRwaWQoKSk7CisJaWYgKHdyaXRlKGxv Y2tfZmQsIGxvY2tfcGlkX3N0ciwgc3RybGVuKGxvY2tfcGlkX3N0cikpICE9IHN0cmxlbihsb2Nr X3BpZF9zdHIpKQorCXsKKwkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qgd3JpdGUgcGlkIHRvIGxv Y2sgZmlsZSBcIiVzXCI6ICVtIiwgS01HUl9ESVJfUElEKTsKKwkJZnByaW50ZihzdGRlcnIsIF8o IkV4aXRpbmcgd2l0aCBubyBjaGFuZ2VzIG1hZGUuXG4iKSk7CisJCWV4aXQoMSk7CisJfQorfQor CisvKgorICogLS0tLS0tLS0tLQorICoJcmVjb3Zlcl9mYWlsdXJlCisgKgorICogQSBwcmV2aW91 cyBwZ19hbHRlcmNrZXkgbWlnaHQgaGF2ZSBmYWlsZWQsIHNvIGl0IG1pZ2h0IG5lZWQgcmVjb3Zl cnkuCisgKiBUaGUgbm9ybWFsIG9wZXJhdGlvbiBpczoKKyAqIDEuICAgICByZWVuY3J5cHQgIExJ VkVfS01HUl9ESVIgLT4gTkVXX0tNR1JfRElSCisgKiAyLiAgICAgcmVuYW1lICAgICBLTUdSX0RJ UiAgICAgIC0+IE9MRF9LTUdSX0RJUgorICogMy4gICAgIHJlbmFtZSAgICAgTkVXX0tNR1JfRElS ICAtPiBMSVZFX0tNR1JfRElSCisgKiAgICAgICAgcmVtb3ZlICAgICBPTERfS01HUl9ESVIKKyAq CisgKiBUaGVyZSBhcmUgZWlnaHQgcG9zc2libGUgZGlyZWN0b3J5IGNvbmZpZ3VyYXRpb25zOgor ICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJVkVfS01HUl9ESVIgICBORVdfS01H Ul9ESVIgICAgT0xEX0tNR1JfRElSCisgKgorICogTm9ybWFsOgorICogMC4gbm9ybWFsICAgICAg ICAgICAgICAgICAgICAgICBYCisgKiAxLiByZW1vdmUgbmV3ICAgICAgICAgICAgICAgICAgIFgg ICAgICAgICAgICAgICBYCisgKiAyLiBpbnN0YWxsIG5ldyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBYICAgICAgICAgICAgICAgWAorICogMy4gcmVtb3ZlIG9sZCAgICAgICAgICAg ICAgICAgICBYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFgKKyAqCisgKiBBYm5vcm1h bDoKKyAqICAgIGZhdGFsCisgKiAgICByZXN0b3JlIG9sZCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgWAorICogICAgaW5zdGFsbCBuZXcgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgWAorICogICAgcmVtb3ZlIG9sZCBhbmQgbmV3ICAgICAg ICAgICBYICAgICAgICAgICAgICAgWCAgICAgICAgICAgICAgIFgKKyAqCisgKiBXZSBkb24ndCBo YW5kbGUgdGhlIGFibm9ybWFsIGNhc2VzLCBqdXN0IHJlcG9ydCBhbiBlcnJvci4KKyAqIC0tLS0t LS0tLS0KKyAqLworc3RhdGljIHZvaWQKK3JlY292ZXJfZmFpbHVyZSh2b2lkKQoreworCXN0cnVj dCBzdGF0IGJ1ZmZlcjsKKwlib29sCQlpc19saXZlLAorCQkJCWlzX25ldywKKwkJCQlpc19vbGQ7 CisKKwlpc19saXZlID0gIXN0YXQobGl2ZV9wYXRoLCAmYnVmZmVyKTsKKwlpc19uZXcgPSAhc3Rh dChuZXdfcGF0aCwgJmJ1ZmZlcik7CisJaXNfb2xkID0gIXN0YXQob2xkX3BhdGgsICZidWZmZXIp OworCisJLyogbm9ybWFsICMwICovCisJaWYgKGlzX2xpdmUgJiYgIWlzX25ldyAmJiAhaXNfb2xk KQorCXsKKwkJaWYgKHJlcGFpcl9tb2RlKQorCQkJcHJpbnRmKCJyZXBhaXIgdW5uZWNlc3Nhcnlc biIpOworCQlyZXR1cm47CisJfQorCS8qIHJlbW92ZSBuZXcgIzEgKi8KKwllbHNlIGlmIChpc19s aXZlICYmIGlzX25ldyAmJiAhaXNfb2xkKQorCXsKKwkJaWYgKCFybXRyZWUobmV3X3BhdGgsIHRy dWUpKQorCQl7CisJCQlwZ19sb2dfZXJyb3IoInVuYWJsZSB0byByZW1vdmUgbmV3IGRpcmVjdG9y eSBcIiVzXCI6ICVtIiwgTkVXX0tNR1JfRElSKTsKKwkJCWZwcmludGYoc3RkZXJyLCBfKCJFeGl0 aW5nIHdpdGggbm8gY2hhbmdlcyBtYWRlLlxuIikpOworCQkJZXhpdCgxKTsKKwkJfQorCQlwcmlu dGYoXygicmVtb3ZlZCBmaWxlcyBjcmVhdGVkIGR1cmluZyBwcmV2aW91c2x5IGFib3J0ZWQgYWx0 ZXIgb3BlcmF0aW9uXG4iKSk7CisJCXJldHVybjsKKwl9CisJLyogaW5zdGFsbCBuZXcgIzIgKi8K KwllbHNlIGlmICghaXNfbGl2ZSAmJiBpc19uZXcgJiYgaXNfb2xkKQorCXsKKwkJaWYgKHJlbmFt ZShuZXdfcGF0aCwgbGl2ZV9wYXRoKSAhPSAwKQorCQl7CisJCQlwZ19sb2dfZXJyb3IoInVuYWJs ZSB0byByZW5hbWUgZGlyZWN0b3J5IFwiJXNcIiB0byBcIiVzXCI6ICVtIiwKKwkJCQkJCSBORVdf S01HUl9ESVIsIExJVkVfS01HUl9ESVIpOworCQkJZnByaW50ZihzdGRlcnIsIF8oIkV4aXRpbmcg d2l0aCBubyBjaGFuZ2VzIG1hZGUuXG4iKSk7CisJCQlleGl0KDEpOworCQl9CisJCXByaW50Zihf KCJJbnN0YWxsZWQgbmV3IGNsdXN0ZXIgcGFzc3dvcmQgc3VwcGxpZWQgaW4gcHJldmlvdXMgYWx0 ZXIgb3BlcmF0aW9uXG4iKSk7CisJCXJldHVybjsKKwl9CisJLyogcmVtb3ZlIG9sZCAjMyAqLwor CWVsc2UgaWYgKGlzX2xpdmUgJiYgIWlzX25ldyAmJiBpc19vbGQpCisJeworCQlpZiAoIXJtdHJl ZShvbGRfcGF0aCwgdHJ1ZSkpCisJCXsKKwkJCXBnX2xvZ19lcnJvcigidW5hYmxlIHRvIHJlbW92 ZSBvbGQgZGlyZWN0b3J5IFwiJXNcIjogJW0iLCBPTERfS01HUl9ESVIpOworCQkJZnByaW50Zihz dGRlcnIsIF8oIkV4aXRpbmcgd2l0aCBubyBjaGFuZ2VzIG1hZGUuXG4iKSk7CisJCQlleGl0KDEp OworCQl9CisJCXByaW50ZihfKCJSZW1vdmVkIG9sZCBmaWxlcyBpbnZhbGlkYXRlZCBkdXJpbmcg cHJldmlvdXMgYWx0ZXIgb3BlcmF0aW9uXG4iKSk7CisJCXJldHVybjsKKwl9CisJZWxzZQorCXsK KwkJcGdfbG9nX2Vycm9yKCJjbHVzdGVyIGZpbGUgZW5jcnlwdGlvbiBkaXJlY3RvcnkgXCIlc1wi IGlzIGluIGFuIGFibm9ybWFsIHN0YXRlIGFuZCBjYW5ub3QgYmUgcHJvY2Vzc2VkIiwKKwkJCQkJ IEtNR1JfRElSKTsKKwkJZnByaW50ZihzdGRlcnIsIF8oIkV4aXRpbmcgd2l0aCBubyBjaGFuZ2Vz IG1hZGUuXG4iKSk7CisJCWV4aXQoMSk7CisJfQorfQorCisvKiBSZXRyaWV2ZSBvbGQgYW5kIG5l dyBjbHVzdGVyIGtleXMgKi8KK3ZvaWQKK3JldHJpZXZlX2NsdXN0ZXJfa2V5cyh2b2lkKQorewor CWludAkJCWNsdXN0ZXJfa2V5X2xlbjsKKwljaGFyCQljbHVzdGVyX2tleV9oZXhbQUxMT0NfS01H Ul9DTFVTVEVSX0tFWV9MRU5dOworCisJLyoKKwkgKiBJZiB3ZSBoYXZlIGJlZW4gYXNrZWQgdG8g cGFzcyBhbiBvcGVuIGZpbGUgZGVzY3JpcHRvciB0byB0aGUgdXNlcgorCSAqIHRlcm1pbmFsIHRv IHRoZSBjb21tYW5kcywgc2V0IG9uZSB1cC4KKwkgKi8KKwlpZiAocGFzc190ZXJtaW5hbF9mZCkK Kwl7CisjaWZuZGVmIFdJTjMyCisJCXRlcm1pbmFsX2ZkID0gb3BlbigiL2Rldi90dHkiLCBPX1JE V1IsIDApOworI2Vsc2UKKwkJdGVybWluYWxfZmQgPSBvcGVuKCJDT05PVVQkIiwgT19SRFdSLCAw KTsKKyNlbmRpZgorCQlpZiAodGVybWluYWxfZmQgPCAwKQorCQl7CisJCQlwZ19sb2dfZXJyb3Io XygiJXM6IGNvdWxkIG5vdCBvcGVuIHRlcm1pbmFsOiAlc1xuIiksCisJCQkJCQkgcHJvZ25hbWUs IHN0cmVycm9yKGVycm5vKSk7CisJCQlleGl0KDEpOworCQl9CisJfQorCisJLyogR2V0IG9sZCBr ZXkgZW5jcnlwdGlvbiBrZXkgZnJvbSB0aGUgY2x1c3RlciBrZXkgY29tbWFuZCAqLworCWNsdXN0 ZXJfa2V5X2xlbiA9IGttZ3JfcnVuX2NsdXN0ZXJfa2V5X2NvbW1hbmQob2xkX2NsdXN0ZXJfa2V5 X2NtZCwKKwkJCQkJCQkJCQkJCSAgIChjaGFyICopIGNsdXN0ZXJfa2V5X2hleCwKKwkJCQkJCQkJ CQkJCSAgIEFMTE9DX0tNR1JfQ0xVU1RFUl9LRVlfTEVOLAorCQkJCQkJCQkJCQkJICAgbGl2ZV9w YXRoLCB0ZXJtaW5hbF9mZCk7CisJaWYgKHBnX2hleF9kZWNvZGUoY2x1c3Rlcl9rZXlfaGV4LCBj bHVzdGVyX2tleV9sZW4sCisJCQkJCSAgKGNoYXIgKikgb2xkX2NsdXN0ZXJfa2V5LCBLTUdSX0NM VVNURVJfS0VZX0xFTikgIT0KKwkJS01HUl9DTFVTVEVSX0tFWV9MRU4pCisJeworCQlwZ19sb2df ZXJyb3IoImNsdXN0ZXIga2V5IG11c3QgYmUgYXQgJWQgaGV4IGJ5dGVzIiwgS01HUl9DTFVTVEVS X0tFWV9MRU4pOworCQliemVyb19rZXlzX2FuZF9leGl0KEVSUk9SX0VYSVQpOworCX0KKworCS8q CisJICogQ3JlYXRlIG5ldyBrZXkgZGlyZWN0b3J5IGhlcmUgaW4gY2FzZSB0aGUgbmV3IGNsdXN0 ZXIga2V5IGNvbW1hbmQgbmVlZHMKKwkgKiBpdCB0byBleGlzdC4KKwkgKi8KKwlpZiAobWtkaXIo bmV3X3BhdGgsIHBnX2Rpcl9jcmVhdGVfbW9kZSkgIT0gMCkKKwl7CisJCXBnX2xvZ19lcnJvcigi dW5hYmxlIHRvIGNyZWF0ZSBuZXcgY2x1c3RlciBrZXkgZGlyZWN0b3J5IFwiJXNcIjogJW0iLCBO RVdfS01HUl9ESVIpOworCQliemVyb19rZXlzX2FuZF9leGl0KEVSUk9SX0VYSVQpOworCX0KKwor CS8qIEdldCBuZXcga2V5ICovCisJY2x1c3Rlcl9rZXlfbGVuID0ga21ncl9ydW5fY2x1c3Rlcl9r ZXlfY29tbWFuZChuZXdfY2x1c3Rlcl9rZXlfY21kLAorCQkJCQkJCQkJCQkJICAgKGNoYXIgKikg Y2x1c3Rlcl9rZXlfaGV4LAorCQkJCQkJCQkJCQkJICAgQUxMT0NfS01HUl9DTFVTVEVSX0tFWV9M RU4sCisJCQkJCQkJCQkJCQkgICBuZXdfcGF0aCwgdGVybWluYWxfZmQpOworCWlmIChwZ19oZXhf ZGVjb2RlKGNsdXN0ZXJfa2V5X2hleCwgY2x1c3Rlcl9rZXlfbGVuLAorCQkJCQkgIChjaGFyICop IG5ld19jbHVzdGVyX2tleSwgS01HUl9DTFVTVEVSX0tFWV9MRU4pICE9CisJCUtNR1JfQ0xVU1RF Ul9LRVlfTEVOKQorCXsKKwkJcGdfbG9nX2Vycm9yKCJjbHVzdGVyIGtleSBtdXN0IGJlIGF0ICVk IGhleCBieXRlcyIsIEtNR1JfQ0xVU1RFUl9LRVlfTEVOKTsKKwkJYnplcm9fa2V5c19hbmRfZXhp dChFUlJPUl9FWElUKTsKKwl9CisKKwlpZiAocGFzc190ZXJtaW5hbF9mZCkKKwkJY2xvc2UodGVy bWluYWxfZmQpOworCisJLyogb3V0cHV0IG5ld2xpbmUgKi8KKwlwdXRzKCIiKTsKKworCWlmICht ZW1jbXAob2xkX2NsdXN0ZXJfa2V5LCBuZXdfY2x1c3Rlcl9rZXksIEtNR1JfQ0xVU1RFUl9LRVlf TEVOKSA9PSAwKQorCXsKKwkJcGdfbG9nX2Vycm9yKCJjbHVzdGVyIGtleXMgYXJlIGlkZW50aWNh bCwgZXhpdGluZ1xuIik7CisJCWJ6ZXJvX2tleXNfYW5kX2V4aXQoUk1ESVJfRVhJVCk7CisJfQor fQorCisvKiBEZWNyeXB0IG9sZCBrZXlzIGVuY3J5cHRlZCB3aXRoIG9sZCBwYXNzIHBocmFzZSBh bmQgcmVlbmNyeXB0IHdpdGggbmV3IG9uZSAqLwordm9pZAorcmVlbmNyeXB0X2RhdGFfa2V5cyh2 b2lkKQoreworCVBnQ2lwaGVyQ3R4ICpvbGRfY3R4LAorCQkJICAgKm5ld19jdHg7CisKKwlvbGRf Y3R4ID0gcGdfY2lwaGVyX2N0eF9jcmVhdGUoUEdfQ0lQSEVSX0FFU19LV1AsCisJCQkJCQkJCSAg ICh1bnNpZ25lZCBjaGFyICopIG9sZF9jbHVzdGVyX2tleSwKKwkJCQkJCQkJICAgS01HUl9DTFVT VEVSX0tFWV9MRU4sIGZhbHNlKTsKKwlpZiAoIW9sZF9jdHgpCisJCXBnX2xvZ19lcnJvcigiY291 bGQgbm90IGluaXRpYWxpemUgZW5jcnlwdGlvbiBjb250ZXh0Iik7CisKKwluZXdfY3R4ID0gcGdf Y2lwaGVyX2N0eF9jcmVhdGUoUEdfQ0lQSEVSX0FFU19LV1AsCisJCQkJCQkJCSAgICh1bnNpZ25l ZCBjaGFyICopIG5ld19jbHVzdGVyX2tleSwKKwkJCQkJCQkJICAgS01HUl9DTFVTVEVSX0tFWV9M RU4sIHRydWUpOworCWlmICghbmV3X2N0eCkKKwkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3QgaW5p dGlhbGl6ZSBlbmNyeXB0aW9uIGNvbnRleHQiKTsKKworCWZvciAoaW50IGlkID0gMDsgaWQgPCBL TUdSX05VTV9EQVRBX0tFWVM7IGlkKyspCisJeworCQljaGFyCQlzcmNfcGF0aFtNQVhQR1BBVEhd LAorCQkJCQlkc3RfcGF0aFtNQVhQR1BBVEhdOworCQlpbnQJCQlzcmNfZmQsCisJCQkJCWRzdF9m ZDsKKwkJaW50CQkJbGVuOworCQlzdHJ1Y3Qgc3RhdCBzdDsKKworCQlDcnlwdG9LZXlGaWxlUGF0 aChzcmNfcGF0aCwgbGl2ZV9wYXRoLCBpZCk7CisJCUNyeXB0b0tleUZpbGVQYXRoKGRzdF9wYXRo LCBuZXdfcGF0aCwgaWQpOworCisJCWlmICgoc3JjX2ZkID0gb3BlbihzcmNfcGF0aCwgT19SRE9O TFkgfCBQR19CSU5BUlksIDApKSA8IDApCisJCXsKKwkJCXBnX2xvZ19lcnJvcigiY291bGQgbm90 IG9wZW4gZmlsZSBcIiVzXCI6ICVtIiwgc3JjX3BhdGgpOworCQkJYnplcm9fa2V5c19hbmRfZXhp dChSTURJUl9FWElUKTsKKwkJfQorCisJCWlmICgoZHN0X2ZkID0gb3Blbihkc3RfcGF0aCwgT19S RFdSIHwgT19DUkVBVCB8IE9fVFJVTkMgfCBQR19CSU5BUlksCisJCQkJCQkgICBwZ19maWxlX2Ny ZWF0ZV9tb2RlKSkgPCAwKQorCQl7CisJCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBvcGVuIGZp bGUgXCIlc1wiOiAlbSIsIGRzdF9wYXRoKTsKKwkJCWJ6ZXJvX2tleXNfYW5kX2V4aXQoUk1ESVJf RVhJVCk7CisJCX0KKworCQlpZiAoZnN0YXQoc3JjX2ZkLCAmc3QpKQorCQl7CisJCQlwZ19sb2df ZXJyb3IoImNvdWxkIG5vdCBzdGF0IGZpbGUgXCIlc1wiOiAlbSIsIHNyY19wYXRoKTsKKwkJCWJ6 ZXJvX2tleXNfYW5kX2V4aXQoUk1ESVJfRVhJVCk7CisJCX0KKworCQlpbl9rbGVuID0gc3Quc3Rf c2l6ZTsKKworCQlpZiAoaW5fa2xlbiA+IE1BWF9XUkFQUEVEX0tFWV9MRU5HVEgpCisJCXsKKwkJ CXBnX2xvZ19lcnJvcigiaW52YWxpZCB3cmFwcGVkIGtleSBsZW5ndGggKCVkKSBmb3IgZmlsZSBc IiVzXCIiLCBpbl9rbGVuLCBzcmNfcGF0aCk7CisJCQliemVyb19rZXlzX2FuZF9leGl0KFJNRElS X0VYSVQpOworCQl9CisKKwkJLyogUmVhZCB0aGUgc291cmNlIGtleSAqLworCQlsZW4gPSByZWFk KHNyY19mZCwgaW5fa2V5LCBpbl9rbGVuKTsKKwkJaWYgKGxlbiAhPSBpbl9rbGVuKQorCQl7CisJ CQlpZiAobGVuIDwgMCkKKwkJCQlwZ19sb2dfZXJyb3IoImNvdWxkIHJlYWQgZmlsZSBcIiVzXCI6 ICVtIiwgc3JjX3BhdGgpOworCQkJZWxzZQorCQkJCXBnX2xvZ19lcnJvcigiY291bGQgcmVhZCBm aWxlIFwiJXNcIjogcmVhZCAlZCBvZiAldSIsCisJCQkJCQkJIHNyY19wYXRoLCBsZW4sIGluX2ts ZW4pOworCQkJYnplcm9fa2V5c19hbmRfZXhpdChSTURJUl9FWElUKTsKKwkJfQorCisJCS8qIGRl Y3J5cHQgd2l0aCBvbGQga2V5ICovCisJCWlmICgha21ncl91bndyYXBfZGF0YV9rZXkob2xkX2N0 eCwgaW5fa2V5LCBpbl9rbGVuLCAmZGF0YV9rZXkpKQorCQl7CisJCQlwZ19sb2dfZXJyb3IoImlu Y29ycmVjdCBvbGQga2V5IHNwZWNpZmllZCIpOworCQkJYnplcm9fa2V5c19hbmRfZXhpdChSTURJ Ul9FWElUKTsKKwkJfQorCisJCWlmIChLTUdSX01BWF9LRVlfTEVOX0JZVEVTICsgcGdfY2lwaGVy X2Jsb2Nrc2l6ZShuZXdfY3R4KSA+IE1BWF9XUkFQUEVEX0tFWV9MRU5HVEgpCisJCXsKKwkJCXBn X2xvZ19lcnJvcigiaW52YWxpZCBtYXggd3JhcHBlZCBrZXkgbGVuZ3RoIik7CisJCQliemVyb19r ZXlzX2FuZF9leGl0KFJNRElSX0VYSVQpOworCQl9CisKKwkJLyogZW5jcnlwdCB3aXRoIG5ldyBr ZXkgKi8KKwkJaWYgKCFrbWdyX3dyYXBfZGF0YV9rZXkobmV3X2N0eCwgJmRhdGFfa2V5LCBvdXRf a2V5LCAmb3V0X2tsZW4pKQorCQl7CisJCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBlbmNyeXB0 IG5ldyBrZXkiKTsKKwkJCWJ6ZXJvX2tleXNfYW5kX2V4aXQoUk1ESVJfRVhJVCk7CisJCX0KKwor CQkvKiBXcml0ZSB0byB0aGUgZGVzdCBrZXkgKi8KKwkJbGVuID0gd3JpdGUoZHN0X2ZkLCBvdXRf a2V5LCBvdXRfa2xlbik7CisJCWlmIChsZW4gIT0gb3V0X2tsZW4pCisJCXsKKwkJCXBnX2xvZ19l cnJvcigiY291bGQgbm90IHdyaXRlIGZpZSBcIiVzXCIiLCBkc3RfcGF0aCk7CisJCQliemVyb19r ZXlzX2FuZF9leGl0KFJNRElSX0VYSVQpOworCQl9CisKKwkJY2xvc2Uoc3JjX2ZkKTsKKwkJY2xv c2UoZHN0X2ZkKTsKKwl9CisKKwkvKiBUaGUgY2x1c3RlciBrZXkgaXMgY29ycmVjdCwgZnJlZSB0 aGUgY2lwaGVyIGNvbnRleHQgKi8KKwlwZ19jaXBoZXJfY3R4X2ZyZWUob2xkX2N0eCk7CisJcGdf Y2lwaGVyX2N0eF9mcmVlKG5ld19jdHgpOworfQorCisvKiBJbnN0YWxsIG5ldyBrZXlzICovCit2 b2lkCitpbnN0YWxsX25ld19rZXlzKHZvaWQpCit7CisJLyoKKwkgKiBJc3N1ZSBmc3luYydzIHNv IGtleSByb3RhdGlvbiBpcyBsZXNzIGxpa2VseSB0byBiZSBsZWZ0IGluIGFuCisJICogaW5jb25z aXN0ZW50IHN0YXRlIGluIGNhc2Ugb2YgYSBjcmFzaCBkdXJpbmcgdGhpcyBvcGVyYXRpb24uCisJ ICovCisJCisJaWYgKHJlbmFtZShsaXZlX3BhdGgsIG9sZF9wYXRoKSAhPSAwKQorCXsKKwkJcGdf bG9nX2Vycm9yKCJ1bmFibGUgdG8gcmVuYW1lIGRpcmVjdG9yeSBcIiVzXCIgdG8gXCIlc1wiOiAl bSIsCisJCQkJCSBMSVZFX0tNR1JfRElSLCBPTERfS01HUl9ESVIpOworCQliemVyb19rZXlzX2Fu ZF9leGl0KFJNRElSX0VYSVQpOworCX0KKwlmc3luY19kaXJfcmVjdXJzZSh0b3BfcGF0aCk7CisK KwlpZiAocmVuYW1lKG5ld19wYXRoLCBsaXZlX3BhdGgpICE9IDApCisJeworCQlwZ19sb2dfZXJy b3IoInVuYWJsZSB0byByZW5hbWUgZGlyZWN0b3J5IFwiJXNcIiB0byBcIiVzXCI6ICVtIiwKKwkJ CQkJIE5FV19LTUdSX0RJUiwgTElWRV9LTUdSX0RJUik7CisJCWJ6ZXJvX2tleXNfYW5kX2V4aXQo UkVQQUlSX0VYSVQpOworCX0KKwlmc3luY19kaXJfcmVjdXJzZSh0b3BfcGF0aCk7CisKKwlpZiAo IXJtdHJlZShvbGRfcGF0aCwgdHJ1ZSkpCisJeworCQlwZ19sb2dfZXJyb3IoInVuYWJsZSB0byBy ZW1vdmUgb2xkIGRpcmVjdG9yeSBcIiVzXCI6ICVtIiwgT0xEX0tNR1JfRElSKTsKKwkJYnplcm9f a2V5c19hbmRfZXhpdChSRVBBSVJfRVhJVCk7CisJfQorCWZzeW5jX2Rpcl9yZWN1cnNlKHRvcF9w YXRoKTsKK30KKworLyogRXJhc2UgbWVtb3J5IGFuZCBleGl0ICovCit2b2lkCitiemVyb19rZXlz X2FuZF9leGl0KGV4aXRfYWN0aW9uIGFjdGlvbikKK3sKKwlleHBsaWNpdF9iemVybyhvbGRfY2x1 c3Rlcl9rZXksIHNpemVvZihvbGRfY2x1c3Rlcl9rZXkpKTsKKwlleHBsaWNpdF9iemVybyhuZXdf Y2x1c3Rlcl9rZXksIHNpemVvZihuZXdfY2x1c3Rlcl9rZXkpKTsKKworCWV4cGxpY2l0X2J6ZXJv KGluX2tleSwgc2l6ZW9mKGluX2tleSkpOworCWV4cGxpY2l0X2J6ZXJvKCZkYXRhX2tleSwgc2l6 ZW9mKGRhdGFfa2V5KSk7CisJZXhwbGljaXRfYnplcm8ob3V0X2tleSwgc2l6ZW9mKG91dF9rZXkp KTsKKworCWlmIChhY3Rpb24gPT0gUk1ESVJfRVhJVCkKKwl7CisJCWlmICghcm10cmVlKG5ld19w YXRoLCB0cnVlKSkKKwkJCXBnX2xvZ19lcnJvcigidW5hYmxlIHRvIHJlbW92ZSBuZXcgZGlyZWN0 b3J5IFwiJXNcIjogJW0iLCBORVdfS01HUl9ESVIpOworCQlwcmludGYoIlJlLXJ1bm5pbmcgcGdf YWx0ZXJja2V5IHRvIHJlcGFpciBtaWdodCBiZSBuZWVkZWQgYmVmb3JlIHRoZSBuZXh0IHNlcnZl ciBzdGFydFxuIik7CisJCWV4aXQoMSk7CisJfQorCWVsc2UgaWYgKGFjdGlvbiA9PSBSRVBBSVJf RVhJVCkKKwl7CisJCXVubGluayhwaWRfcGF0aCk7CisJCXByaW50ZigiUmUtcnVubmluZyBwZ19h bHRlcmNrZXkgdG8gcmVwYWlyIG1pZ2h0IGJlIG5lZWRlZCBiZWZvcmUgdGhlIG5leHQgc2VydmVy IHN0YXJ0XG4iKTsKKwl9CisKKwkvKiByZXR1cm4gMCBvciAxICovCisJZXhpdChhY3Rpb24gIT0g U1VDQ0VTU19FWElUKTsKK30KLS0gCjIuMzcuMCAoQXBwbGUgR2l0LTEzNikKCg== --000000000000cbfbc705ebca4b20 Content-Type: application/octet-stream; name="0009-cfe-09-test_over_cfe-08-pg_alterckey-squash-commit.patch" Content-Disposition: attachment; filename="0009-cfe-09-test_over_cfe-08-pg_alterckey-squash-commit.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l9mzts6b8 RnJvbSA5MmVjNDhmMzhjNDA1ZDZkYTgyYTcyZDlhNTQyOWY0YjNhNGIxZmMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCcnVjZSBNb21qaWFuIDxicnVjZUBtb21qaWFuLnVzPgpEYXRl OiBGcmksIDI1IEp1biAyMDIxIDE2OjU3OjAwIC0wNDAwClN1YmplY3Q6IFtQQVRDSCAwOS8xMl0g Y2ZlLTA5LXRlc3Rfb3Zlcl9jZmUtMDgtcGdfYWx0ZXJja2V5IHNxdWFzaCBjb21taXQKCi0tLQog c3JjL3Rlc3QvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL3Rlc3Qv UkVBRE1FICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL3Rlc3QvY3J5cHRvLy5n aXRpZ25vcmUgICAgICAgICAgICAgfCAgIDQgKwogc3JjL3Rlc3QvY3J5cHRvL0tXUF9BRF8xMjgu dHh0ICAgICAgICAgfCAgMzUgKysKIHNyYy90ZXN0L2NyeXB0by9LV1BfQURfMjU2LnR4dCAgICAg ICAgIHwgIDM1ICsrCiBzcmMvdGVzdC9jcnlwdG8vS1dQX0FFXzEyOC50eHQgICAgICAgICB8ICAz NSArKwogc3JjL3Rlc3QvY3J5cHRvL0tXUF9BRV8yNTYudHh0ICAgICAgICAgfCAgMzUgKysKIHNy Yy90ZXN0L2NyeXB0by9NYWtlZmlsZSAgICAgICAgICAgICAgIHwgIDM5ICsrKwogc3JjL3Rlc3Qv Y3J5cHRvL1JFQURNRSAgICAgICAgICAgICAgICAgfCAgMzMgKysKIHNyYy90ZXN0L2NyeXB0by9n Y21EZWNyeXB0MTI4LnJzcCAgICAgIHwgMTI5ICsrKysrKysKIHNyYy90ZXN0L2NyeXB0by9nY21E ZWNyeXB0MjU2LnJzcCAgICAgIHwgMTI5ICsrKysrKysKIHNyYy90ZXN0L2NyeXB0by9nY21FbmNy eXB0RXh0SVYxMjgucnNwIHwgMTI5ICsrKysrKysKIHNyYy90ZXN0L2NyeXB0by9nY21FbmNyeXB0 RXh0SVYyNTYucnNwIHwgMTI5ICsrKysrKysKIHNyYy90ZXN0L2NyeXB0by90LzAwMV90ZXN0Y3J5 cHRvLnBsICAgIHwgMTM3ICsrKysrKysrCiBzcmMvdGVzdC9jcnlwdG8vdC8wMDJfdGVzdGt3cC5w bCAgICAgICB8IDEyNiArKysrKysrCiBzcmMvdGVzdC9jcnlwdG8vdC8wMDNfY2x1c3RlcmtleS5w bCAgICB8ICA5MyArKysrKwogc3JjL3Rlc3QvY3J5cHRvL3QvMDA0X2J1ZmZlcnMucGwgICAgICAg fCAxNTcgKysrKysrKysrCiBzcmMvdGVzdC9jcnlwdG8vdGVzdGNyeXB0by5jICAgICAgICAgICB8 IDQ1OCArKysrKysrKysrKysrKysrKysrKysrKysrCiAxOCBmaWxlcyBjaGFuZ2VkLCAxNzA5IGlu c2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9jcnlwdG8vLmdpdGlnbm9y ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2NyeXB0by9LV1BfQURfMTI4LnR4dAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2NyeXB0by9LV1BfQURfMjU2LnR4dAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyYy90ZXN0L2NyeXB0by9LV1BfQUVfMTI4LnR4dAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy90ZXN0L2NyeXB0by9LV1BfQUVfMjU2LnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy90ZXN0L2NyeXB0by9NYWtlZmlsZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2NyeXB0 by9SRUFETUUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9jcnlwdG8vZ2NtRGVjcnlwdDEy OC5yc3AKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9jcnlwdG8vZ2NtRGVjcnlwdDI1Ni5y c3AKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9jcnlwdG8vZ2NtRW5jcnlwdEV4dElWMTI4 LnJzcAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2NyeXB0by9nY21FbmNyeXB0RXh0SVYy NTYucnNwCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvY3J5cHRvL3QvMDAxX3Rlc3Rjcnlw dG8ucGwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9jcnlwdG8vdC8wMDJfdGVzdGt3cC5w bAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2NyeXB0by90LzAwM19jbHVzdGVya2V5LnBs CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvY3J5cHRvL3QvMDA0X2J1ZmZlcnMucGwKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9jcnlwdG8vdGVzdGNyeXB0by5jCgpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvTWFrZWZpbGUgYi9zcmMvdGVzdC9NYWtlZmlsZQppbmRleCBkYmQzMTkyODc0 Li42MTdmMWRmYTI5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9NYWtlZmlsZQorKysgYi9zcmMvdGVz dC9NYWtlZmlsZQpAQCAtMTcsNiArMTcsOSBAQCBTVUJESVJTID0gcGVybCByZWdyZXNzIGlzb2xh dGlvbiBtb2R1bGVzIGF1dGhlbnRpY2F0aW9uIHJlY292ZXJ5IHN1YnNjcmlwdGlvbgogaWZlcSAo JCh3aXRoX2ljdSkseWVzKQogU1VCRElSUyArPSBpY3UKIGVuZGlmCitpZmVxICgkKHdpdGhfb3Bl bnNzbCkseWVzKQorU1VCRElSUyArPSBjcnlwdG8KK2VuZGlmCiBpZmVxICgkKHdpdGhfZ3NzYXBp KSx5ZXMpCiBTVUJESVJTICs9IGtlcmJlcm9zCiBlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv UkVBRE1FIGIvc3JjL3Rlc3QvUkVBRE1FCmluZGV4IGFmZGM3Njc2NTEuLjA5NTVhNzY0ZTMgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L1JFQURNRQorKysgYi9zcmMvdGVzdC9SRUFETUUKQEAgLTExLDYg KzExLDkgQEAgd2hpY2ggdGVzdHMgZ2V0IHJ1biBhdXRvbWF0aWNhbGx5LgogYXV0aGVudGljYXRp b24vCiAgIFRlc3RzIGZvciBhdXRoZW50aWNhdGlvbiAoYnV0IHNlZSBhbHNvIGJlbG93KQogCitj cnlwdG8vCisgIFRlc3RzIGZvciBjbHVzdGVyIGZpbGUgZW5jcnlwdGlvbgorCiBleGFtcGxlcy8K ICAgRGVtb25zdHJhdGlvbiBwcm9ncmFtcyBmb3IgbGlicHEgdGhhdCBkb3VibGUgYXMgcmVncmVz c2lvbiB0ZXN0cyB2aWEKICAgIm1ha2UgY2hlY2siCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9jcnlw dG8vLmdpdGlnbm9yZSBiL3NyYy90ZXN0L2NyeXB0by8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjdiOTIyMThhZDIKLS0tIC9kZXYvbnVsbAorKysgYi9z cmMvdGVzdC9jcnlwdG8vLmdpdGlnbm9yZQpAQCAtMCwwICsxLDQgQEAKKyMgR2VuZXJhdGVkIGJ5 IHRlc3Qgc3VpdGUKKy90bXBfY2hlY2svCisvbG9nLworL3Rlc3RjcnlwdG8KZGlmZiAtLWdpdCBh L3NyYy90ZXN0L2NyeXB0by9LV1BfQURfMTI4LnR4dCBiL3NyYy90ZXN0L2NyeXB0by9LV1BfQURf MTI4LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5kNzdhZWFiNzE5 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvY3J5cHRvL0tXUF9BRF8xMjgudHh0CkBAIC0w LDAgKzEsMzUgQEAKKyMgQ0FWUyAyMS40CisjICdOSVNUIFNQIDgwMC0zOEYgS1dQLUFEIHdpdGgg QUVTLTEyOCBjaXBoZXIgZnVuY3Rpb24nIGluZm9ybWF0aW9uIGZvciB0ZXN0LWZpbGVzCisjIFNl ZWQgPSAwZjBjNmI2NjAyZDk1OWQyMmZmMjMwNTQ3OGVhNDc3YTg1ZDE5NmQ5Njk1YWJmNWI0NDUw MTBiNDVjZTA0NmM1MDFiYzA0ZTZjYTRmYWY0NjEzN2FkZjZlYWM0NTJkOTczMTRjZDkxMTM3ZTMz ZmMzMGNjNmRmMzE2MTE3ZmVkMworIyBHZW5lcmF0ZWQgb24gRnJpIEFwciAgNiAxNDo0Njo0NSAy MDE4CitbUExBSU5URVhUIExFTkdUSCA9IDQwOTZdCisKK0NPVU5UID0gMAorSyA9IDFkZDUxZjBk M2EwYTc4NDE3NGJhODFiMmM5Zjg5MDA1CitDID0gZTFiZGU2ZDJkZjNiOGU0OGNhMTI3Zjk3YjU2 YjVkYzI2NzJiMzczNmNjMzE1N2M3YjgwYTAzMTZlZjFlZmJkYmJjZTE5ZmVhMjNkYTgzMTgzNmNj ZDJlMDAyYjJjMWRmYWQyMDZiNWNlYzM1ODQ0NmI4NDM0ZDdmNGMzOWU2NWIwZTBiNTA4OTc2NDJm ZmMzNGJmYjNjYjNlMjMzYWE5YzEwNThmZjBkNGZkNDhlOThiYzhjYzNkMjE0YzA2ZDUxNGRkOTdk YjIyNzgwOTNhMzA4ZjkxZjRhZTkyNjI2ZDg1NzcxZmIxNDQ3YjM2YTM0NjdmZmYwMmFjN2U4MWRk YmQwZmRiY2QwMmQxYWNkNGYwNTNjOTg5ZWYzZGNjMmMwMWUyM2JjMmY2MDkwZjNlOGMwYmE1ZjAw ODIzNDEyMDBiMWMzN2I5OWRhYTljYjZmZWM3OGJjZTM0MjlhZWM1YmFkYjlmZDI4ZmRiZGJkYzVk NTM1NzA2NzVhOWUzOTUzNWI0NTk0MDk1NjU4ZWY5NTBlY2Q3OWExNjIyMjNiNjBkMmViOTE3NjVl MDIyZGM2ZTFiYmRkODZmMWJjYzI4MGVkOWRmMzUwZGEwOGE4MDFmYTE2YTFiZjI3MDE5NDdhY2Zi MDhmMTlmZGZjYWExZDc2ZjQ2NmE1ZGUyNDU4YTc4ZmI4MmY2YWYzZTFiZTY4ZjQwNWE0Mjg5ZjI1 ODk2ZjRjOTgzMDAwNWM5ZTg5NWM4NmU2N2VjZWFiMGFkNTQ0ODU2MDcxYjhkOTU4NTgzNWI1ZTg1 YTA3YWIwMTUxNWY3YWI1NGY5OGRmZmI0Y2E0OWExNTA2OGVlZmM2YTAxZjdmNTJmZDFhZGJlMzYz MWM1OWY2ZjQzZjc5ZDJiNGYyYTY5MWUyYjMwYmIxZDQzYTg0OGRjM2VlMzljN2YyZTUwZjBjOWRl YjdhYjUxZTMzYmY0MDkwM2FjMjU1YmIxNTEwZmQ2MTY3NmE2YzEzYzNjNzc2YjhhYWNjNmNlZmI5 NWUyNDk3M2ViYjExMTkyZTI2OTJkZDBjNmEwODViNThmODZlMTFjYzI4ZWUyMTk0OTg4YzEyM2Uz NjY2ZGE3MzM5YzBhNGFjNmFmYmFjYzgzZjFmMTAwZmJiMzllZmZmN2NjNjA1YzkyMTM4MjgyMjRh MTdjNDc2Mzk1YWViOWJiMGEzMTUwZmI4ODg5YThjMmE0OTRjOGM1MjYyMDNmMjYxNjQyYmZhNjlh OTRiODZkZTllNmQzZDkzMmZlMjBmZmZlNGJkNzZkNTAyYzBkNDM3YTNlMWQwZDg3MjdiN2E4ZGMw ZTM2MTk2NzEwOWU5MzU2NjMyNmI2YzUxNzY2MzczMWM0YzliZGQwMjk1ZDgKK1AgPSAxYTRlZWQ0 YmY1YjhkMmUyYTU4ZjFmMTI3N2YxNjRjYzMyY2RhZGFlZDg0OGY3NmZlNjM0MDM0MDgyZmY5YWEx NzExODcwYmYzOTM2ZDAxYTJhYTQ4ZGUzMGRlNTE0M2I5MTQ4Y2Y1NmY0NDkwZjlkNDgwZGRhMGI2 NzJlOGUxN2EwMTJjZDI2Y2VjM2M2ODgzN2JkNWIyZjliZWIxM2UwMTEwZjIxYzZjMzYzNDNlMDll MDI3ZjM5NTU3ZDE1OTZkNGNhNDA2ZTNlN2FhMTEzZTliYjg2MjMxMDZiYWUyNWYwZWEyM2Q0NmJj Mjk5NzBiYTI1OTZmODNmZTRmNzNhNmY5NzhhNGQ5NDlmYTdjMjcxNTcwYTJhZTVkMmI1MDc5MmQ1 YWI1YzQzZDQ1NWYzNTlmYjgzYzM1Y2EzZGEzN2NkNzNjZDY2YjZhZGNlOTRkNzhlY2RlYWJmNjY3 ZGFhNDdlYTcwNzk5YWYyOTllMWQ4OThjY2YzZmNhNmM0MmM2ZmZmOGNmMmVjOTkyZjU5NmZlZDRh MGNkYjUwMmEwMGY5YjU2ODkzMDI5MzFkMTVjYmE2OTFlMmY4MDc5YTA0MTEzMzI0MzhiNzE0YWNl NTIzNGI5MWU0YWViZWU4ZjhkZGEwZTE5NjhjMjAxNmZlZDM1MDQzMGE2NWQ4ZDIwNmM5NDM2ZjQw Yjc5Y2UwMzA4M2I4ZGMyMDdkNjk2MGJlMWNlOTcwMDdlZDIyYTM4OGViYjdiM2Q4ZjdkMmI3ZDlm OGY0OTczMWZiY2IyMWUyMWRiMGNkZDE1Njc0Yzc5NWQ1YWYyYjJjZDcyN2Y4M2U2MzRlOGM0NzE1 N2VkMGM2ODczYTVjOTQxOWU2ODNmMTZmNGE3ODI3YjQ0NDk2NzgxMmY5ZDFhZGI5MjAxYjg5YTBl NjZiYmNmMDU5MTQ2NWY1ZDcwMzZhMjFjZGRhMGUxMDA5OWZlYjgxOWRmYzM3ZmRkMzEwNTEyMDA0 NGRhYjcxNjg4MmQzOTcxZjMxMmUzZjQ0NTkwMDZmZDVhMWVhYjA4ZmY2M2VkZjY3MThmNDdkZGFh MzdmN2Y0MGM5YzM3Mjk5NWYzYWVjOTdiYzQ1ZTI4N2I2NGZjOGNmNTU1OWFiMDRhNGQ0ZDNlZDQ4 MmY1ZDYxZDNhYmQ5OWNjODdlZTQwNmRhM2FiOWM5Y2QyMmJhM2I4ZDE5MWIyNjc1NGFhOTRhMjQx MmYzOWUzMzJkNzdmZTcyMjEwYWRiMGNiYjVjOTZhZGViZGJkZTAzNmYxZjFhYWFmYWQ3NGE3YWMy NTk0ZjgxZWZhNzM0MDU0ZTJlMTZkYzkzMWQ0OWI5NzBiODE3NTY4NjI3MDVmY2Q0CisKK0NPVU5U ID0gMQorSyA9IGIzZmEwMDhiNTk0N2NlNThkZmJkMzU0ZGQwMWYyZDQzCitDID0gNTVjZDhlNDUx MzhmNDc3Y2UwYTg0ZjA3YmQyOGE5M2Q3ZDYyOGJiNDg2MDIwN2EyZjZkYzQyNTZiZDc5ODQzZTMy Yzg1NmE0ZmE4MzFkMTYwMzY5OWQ0OWU2YzM2MjkxYjYwYWE4MDYzNTkwMGNjNmM3OGNmMGEyZGRj NDU3YmViNDE3ODJkZTBkZTAzZjA4YTA2NGRmOTBiNDFmMmU5OGNlNjExODVkNzM1MzgwNDAzZmU1 NmI2OGY4MzQzYTgwMWExNGFmYjhhN2JhNzk2ODRkYzJhNTg1MTEwZGE4M2U5YTgzNmNhZTFmZDll MWEyMjBkZDZkYzkyMmI0ZjAyYjE1Y2E4OGQ0M2FiNjFlMWRhMjRhOWIzY2I5OWM0ZTUwMjRjZTU2 NjdmNDg0MWNhMmEzMDViMWY0YzFhZTlmYjYzZDFkNGRjYjgzODcwNzU1YTFhNjQ2YjE2YzA4OGU2 MTJkODJiYTJiZjBlN2UyZmEwZTgwMzVjM2JhZWI1OTVmMWFjOWJiNDliMDFmNmY3MTM5MmUyMTdj MDQ5YzBlOWJkNzk0YjlhYTIzODNjZjU5ZWUwYTkwZjk2NTYxMGM2NWVjZDYyOWExN2NiYTJiZGYy NDU4ZTNhOGUxYTlkMjE5Y2I2NmViOWVjOGU1MjI2YjM0Zjk1MDAzMDY0OTUyNTIzOTIwYTBiNGU5 NGVjOGVjZDFiZGNhOGE2NWZlNDZlZDI1ZmQ0ZDA3NmU0NmZhNjJhOGNkZTZlYWJjNTkzMDQ1ZDE3 Y2VmOTk2ZWJiZWNhNGI1MzdmNjVjNGY2ODNhMTBiYWViNGM0MmI5ODY3YmJiNDljYTdlYTFjNTQz N2JjMTE0OTQ4YzU0MmNmZmNlZDliYjFlYmUzYzk0NmViMjRmZjU1YmU4OWJlMDA0NTk2YmE2NDhi MjY0MTY3MjE3ZDI2N2I4ODEwMjBiOTA1ZjUwOGU0ZjBlMWE1OGVjYTA1MWQ1NmZmMzBkOTE4OTE4 MzhjNTc0YzNkZTU0ZTNmZWFmY2RmNTE0NzQwZGRjOTRiYTkyY2I4NWZlODYwMzNlNjdmMTRkOTBi ZTdhMDIyMmU0YmQxNjI0Y2VhODg5NGRmNjZhMzZhOGU4NDhkZmU5MTY4ZDgwMjRiN2JhNTYzNmFm YmNmNmI5NDVhNTNlNmIyNzc4ZjIyOWFmN2RjMmU1OWJlYmJmOGJkYmRmZGUxZTIxNDY1ZjZiNjM0 NGIxM2FmYTBlNWNlYWMyMTJiM2I4ODkzMmYyMWIxYWUwNDI2ODQ3NjU5N2M5MmU2NGZmN2MxNGI5 ZWY2NzhmMTBhMzViNTZjZDcwYmEwMzA2M2Y5NGFlZDk3YjBhNmNmODgzZDFmMDdmYWNmYTM3YjZl NWIwNzAKK1AgPSBhMDY3YWIzOWNlZGU0YWM2YzZjYjc2MzBjYmE0OGM1MmE3OTRhYzhlYmVjMDM3 MTI1YmNkOTdkMWEzYzUyYThlZDY0NzY0ODk5ZjkwMzVhNjk0NGQwNjA1YTVkOTc3MTcyYTU1YmJm ODZjZDgxYWVmNWQ2YmFmYjFhYzg2YmZhNjVkYTJiM2MzOWJmNWRhOTRhOThmN2I2ZGJjNWRmMTZh N2IzODA2MWUwNjY1YWQxNmIyMGZiNmFlZGM5Y2U3ZjZkMzQ5N2MzYzU1Y2VhOTJlNjM0M2YyMTI1 MTA5MmVmMmVhMzA3YjM1Zjk5OTY4MzI5ODA5OGJlZGFlYTg0N2QxY2NiZjhiZGExOGRjNDc3ZThk NDlmZWU0ZTM1NzI3MzM5NmFkMjI0NTcwMzQ4NWI5N2I1YTdkOTcwNTdiYWQ4NzVhM2U3NmI2N2Fk NWFkYmM2ZWYzYjhiYTlhMTc4NmFhOTMxNDlmMGY4ZGQxNjY1MzVhY2JmOTNmMWI5ODM5NzU0ZDUz N2RhM2ZhZTFhYjAyOTczNDI3YzNmMzUzZmU5YWE2YzVhMTAwYmYwZTZjY2IwOGRjMWZkYjBmYzM2 M2E5NWM3N2M1NzU4ZDQ0MGRiMGE3MGYwMzQwYTRjNDg4ZGU1MWUxZWNiOTMyY2UyZmNiMmM5NWVh MjhjOWY1NTY5NWQ5N2JhMTc2NWM4ZjExZTUyM2FlM2U0ZTFlZmNlYjY5MDAwYTE5MmMwNDdhYjE5 N2Y0ODQwYzY2NGMwMzUwNjRlY2MxMjkyNmZkM2JjYTA1MjdhMTYwYjViNWEyYmJhZjVkYjExNDM3 ZjJjMzhhMWM3NTM1ZTg3ZjU1MmI5ZjA0ZjJmZGQzMDlhODI2ZTRlYzc3MDgyMTcwMjJmYjA3NWNk ZmM2Y2MyM2U5MzAxZTMzMDY4Y2FhNjllZjc0NmYzNTdiMDljY2MwOTg0NDNhM2EyOTc5YTIyNWU3 MGJlMWU3MjJlOGQ2ZmJiNTdkMGRkZWQyNDU2YzFkNDdlZWIwYWYyMjQxZjc2OTgzNjAyNmZlYzhm YzUxZDk3YzRhYmJlOTcxMGE0YWE1Yjk1YWFhYzgzYmVlNTdlMTMzM2ZhMjQ0Y2NjOTcxYjYyNjBh OWJlMTZlMzFjYzJmZDI4M2ZlYzFiMjQ3YTczNDBkMTQ5ZmU1MzA5YWNiNDdjOWNkYjk1NWI3YmNj NGRmMjc3ZWFmNjExZThhZjI4MWZmMGJjZDY0YjQ1MzQzMDkyODJkMWI1Y2IxNGVmYTkzMTQxODY5 ZDY3Y2U3ZTQxOGYwNmJiNGMyZmVlYmNiN2ExMTUxYWVhMmViOGJjMmZjNGRjZWU1M2RlOWIyZmIx ODAzNDkwY2FmCisKK0NPVU5UID0gMgorSyA9IDRiNGM0M2M5ZGU0ZmI0YTJhN2E3YWRhZmVhYmUy ZGJkCitDID0gNmU0ZDA4YjgxMjRmN2QzZTIzMzAzZmFjMWE4NDIwMTRmOTVlM2Q3MWM0MzhmOGYx OTkwMzA3ODQyNzk2ZGM1ZTQwNGFkODE4MDJlMzVjMTgzZmUwMDAzOTBhMTJjODFlZTY4NGM1Y2Yy NmMxZDkwZTQxNGNmZmZlNjkzMWIwZjM1MjkzNmZjZjBiMzE0MjllYjVjNzYxMmNjMzU5YTE1Mzcx MzkwZTUxOGNmNWM2YTZiZmYxYmIwMzQ4ZDE0ZTJjMzliOThjOWYzMDY3MmVkMmFmMWQ5NjI5NmRm OGI1NTY3ZGIyNWI5NTEwYTIwODM0NjE4MTBlMTE5NzM1NDkwMDU4ZWQxYjQ2YjdmZGZhODg1MDQx ZDg3NDlmOTBhMDcyYjQzYmE0OWYyZjUxZmJjZGEwZGJmM2NmOTlmY2ExZDhmNDYzMzBlNWY2ZmUw NzlkNjY3OWNmYTI2MjE0Yzg4MzFiNzgyYWFhMDIzYTJlMGVhOTEwNTBkMjc3ZGFiODc2YWE2ODY1 ZjJiYjNmYzFhNGE3N2RiNTJmNjE3OWQ1ZTUzMjU5OTMyODA5NDhiNmI3MDAyYjU3MjgyOTY0MWQz NWVkM2Q3MzVkODQyM2U1YjI0NjczYzQ1NzBjYTI1MDY0ZmMyYzJhZDQ4NDA2MzI1MzZiY2ZhZjJh N2E4MTRmM2VhZWQ5MmI0ZDUwMWJjNTFjMTcxOWEwZDhkOGY0MjBiNjZkYjg0NTY4MmJiNDFjODgw MzhjZmVkZjEzNDE3MTQzYTNhNzAxYjUyMWE5YmYwYmI2Mzk4NzVhNzI4YzNiNWNlNmNhN2U3YTQ1 YmM3NTI4NWMxOTM5MDJlNmI1ZTdhNGM2ZTcyMDQ5M2QzOTM3YmY0ODVlNTg3YmZmODk0ZjcwZmQ2 MTY1YTFkMDEyOWNjNjczYTk5MmUwYTRmNTQ4OWQyMjhhMDY2YjFkZjYwMDAyZWMwNTIxOTI0Zjhk NjcyY2QxNDUyZmVjOTI3ZTU4ZTc1ODA3YjJhMzkwMjU2ZjkyMDc0M2ZhNGQwZmM4ZjU5ZjI0Njlh NTk1ZWY2NTA5NWNhMGM4MGFkZmM4NDNlOWU2OWI2ZDRhM2Y4MjRhZjQ3YjJiZmJmMmE3YTZjMWI2 NTAzNzhmMDk2ZjZmMGJmYWJjNzUyYzhmMjc5ZDRmNDVkNTZkMDlkY2U5Nzk2MmMxMTlkZTNhNjRk ODNiOTNlYTU1MDY2ZjI0ZDQyMzhhMjI5YWU4NmU2YTc4NTdhZjFkOGFiYTgyMzM3MGE3MmZlMzU4 MDQ2MDQ5YTg0YTcwMjEzZWYzMWQ5ZTc3YTcyMmRlZjhlMjE0ODBlNzliNzEyOTk0MzgwNzA5NDZi ZDQ1OWE3MjUxNzA3NDQ2YzkxMWUzODEKK0ZBSUwKKworQ09VTlQgPSAzCitLID0gOTZhYjcxOWEz ZDA4ZGYyMzkzZWJjMzMwZTE1MWRhYjEKK0MgPSBkNTBhZTc5N2Y2YzM0MThmMzg4YTc1MTNkNjkz YzZkZDY2NWU4NTg3Njc1MzFmYmNjZDNlYjFhYWJlNzk2NjkwZWM4ZmJiNzU3ZDg4YjE2OWFkZjVj MTM2ZGU1MGZmMGYyY2ZkZDgzODlmODEyMzgyNTc4YWVlMGIwYjYxZTEzYzZhMmJjNTAwNjQwZmUx NTg1ZjA2OGVlZTBkMWZhMzQyMDIyMGUyMzA5MGUyNGUzMjQ4ZmUxNmY0ZTBjN2MwZTk5NmEyMWI0 OTQ3ZGRkMDhmZDNjY2MxZjAzNjY1MWJlNGY0OGVlMWZmYjQ4NmNkYzA1OTExMjQ0NDgwNTQ4MjIx ZDhkYTFmMmJjMzdkZWNlMDgwZTUxYjJjZGQxZGRlYmYzNzIxM2E0ZGZhMWIyNTJlNTY3MjQzZDlj ZWM4Yzg5ZWI4ZGI1NDRlN2MzODlhMmUxM2YxYjkxZDg2MGRmM2NiY2VjM2U4NWM5MzI3NmMyYTlh NWZhMDgwZWZjODVlOWJhZDNiZmUyZDliYjA2NDk4ZGQ4YjM3MjA0NTZiZmFiZDNjNjliMzQ1ZjY5 NTQ4NzJiYWExZDQzYjlmN2NlYjkyYWU5YWQ3N2IyNzBkMGI5NGM3OTI3NWE0ODg3NGRhZmIxMzYx MDVmNTU1MzUyOTY4N2I2YWVlYWE1MjE3OTBiOTM3NmM5Zjg4YWNlOTQwNDkyMzVjZDUyYzQzODdh ZDIxMDQ0MjUxM2RkNWUwNzE3MTUxOWQ1OGIxMjk0ZmI4YWMxZjYwYWM2OGI4ZjA3YjQxOGUxYmIw NTk4NjAxZWMzOGI5YTliMTM3ZGQ4N2QwYzhhNDEwODlkMTdjYTFjNzIwZmQwZTdlM2I4MWI4NWEz NzM3NTNiZWQwZjVlMjk1ODZmODRjYjI5ZTFkODhjMzc5Yzk2NWM1MGY2YTgwM2RkZmFjMmUxNTU1 YmViOWMyMDhhMzgyMWY1M2JlYWQ4ZjEyMGY0ZWY0YTE0OTBiNzMwYTBiOGEyZjE4NjljNmI5ODU1 MjBkNzA5YmRjMGU1ZmNlNDQzMTZiOGFhMjQ0OGEyNzQzNzYxYmY3N2JkYmJmZGFiNmE3MjFhOGVj NzlmMzhmN2U3MzIxYTgwYTJjZDNhMzVhOTEyZWFhYzVlYWNlODVjNGNhZDNjNjY4NWI4OGJlNDUx N2NkMWMyMDk3MWI4NWJkOWU4ZWI2ZTUyODY5ZTAxNDgzMWRmZjc1ODVhMTYzZjVhNGRiZjFkNTkx NjAxMDRkYTkwYTljZmNjOGQ2YTAzMjQ5NDJiNDBmZGU0MzE5YTMyNDQyZDgzZWJiZjVkN2EzNmU5 NDk1YmUyZmZkMGU3ZmFlYzFiNjZjOTZmNzE4NDM3NTBiOGEwNTFiNzE3MAorUCA9IDNhM2I5ZTZk ZTUzNzQ1ODg3NWU1OTIwNGVmNzU2NWI2ZGRlNzk2ZTVhYjExYzgzZjdhMzYxYjgxNDNmMGY3YTdl YWRiNWI1M2M2ZWZhNmQxOTlmNzU5Y2FkNWMwMjkwMDQwMjRlYWJiYWZmNzE3YmFmYjk1NjQ2ZGMz MWE4ZjYwNjNiOWY4ZmFhZWE2NTBkZmE4ODAzYmZhMGM3OTA5MWYyOTlhNTVmNzg2MTFjMmUwZDAx NTAyMWQ2YzZkM2FiZjNkODVjYWMzMDY3NDBhY2MxNDQyMDE1MTZiNzg3NDIxYTc3Yzc4YTU2NmM2 ZWFkYzg4ZWNkZWVhNGZmODYxYjZkYjczZjdiMDBmMGE4ZjYyZmFlZGVmYTU4ODY2ZmIzNjg0MjRk NzI2N2FmZGY1ZmYxMjc5OTE2ZDJmMTc3NDA4ZDc4MDY5N2UxYzQ1ZTU4YTUyNGJiMDM2NTg1OGQy YjVhNDJlZTJiZDllODkwNDEzNGQwNGNmMDcxZTg0ZGI4YTMxODA0YWE4YmViYzBiMjhkZDYyMTM2 MDM4NTExNzc2NDE3OGZlNzRiMjlkYTNhYzM5MGFjNDgxMmZkYzdlZWRmOTFmY2U2ZWFhZTNkMDMx NjM0MzUwMDFjZTQyZjU1OTgyZGFlZGE1Y2VjNWRlYjk2MGIzNWRmMjMxNDYzY2JjMjYyNjc3NDZi ZTYyOGM1M2I1NWY0ZjIxZWYwMDM4MTZlYjdiZmM2YzcxMGVmYTAzZDA5OTRhMWIzYzg1OTVmYzky OTNhMmMxMDE0ODM3OTgwMzRkNGVlN2UzZDVlMDdiYmQ4OTdjOWRlNGI4MzE1ZTUzY2JkMWY4MWJk ZWNiZDU5ZDA5M2M4NDRhMGVkMWUzZTlkMjM4NzA3YTdiODkzY2E0NTM3NDUyMjNjNjc3NTZkOTA2 MjE1MmIyMzljZWVjNDRjNDM2ZTA4OTZhNTllYTllYThjZjc5YTkzYjhiNzU5Mzg5YmI1ZTczYzVm NTMzMGUyNjU4MGQ5Nzc3ODE3NDAwMTY2ZDgyNjAwOGJlNWU4YzcxODRhZTJlY2Y4ZmI5ZGJhOTJh ZjNjNzQ3Yzc0ZTE1MzRjMDUzOTVmOTIwNGI1ZTg0ODFmZGNmNGRhYjVlYTYyMjRhOGUwZWU1MjU3 NmQ0NjdkOTMwYzA4OTlkMzFhNGUyODhlM2VlY2I4Y2I3YTNiZTNhNjZjNzlhZTkzMDMzZGU1ZDBk NDIyYTZkNTRhYjAwMmQxYTgyZjNmNjBkYjk3ODM0ZDlmYTM3ODJkZDY0Y2JlYzhkZGNhYzIyMTZh MzkzZGMyNjNjZWEyNzA1ZmQwNzJlYzgyZGZhMWRkZWY5YzU4OGM0OWYxN2MyNzUKKworQ09VTlQg PSA0CitLID0gZDhjMjIxZTQyNjEwOWNiNTkxMWQ3ZDZmMDgzNmY0Y2QKK0MgPSBkODUzZDU3ZWFh Y2FjODA5NjM0NjU2NGVjY2QzMzI4MWVlODY0ZmIyOTBjZTkxZWI3MTdmYTE1M2NhMDAwNjRlMDMz NjM1MTc4YzU5ODYwYTU2NzIxNWI3MzIwZmFiNGE3MmNjZjcxNjUwMWRiYzlhNDRkNWIzZDUwMTcy OTY3NDk4N2QyNDEzY2FkNzlkZWNlMDU1YTliMGQ0N2VjOTgwMzMxZjRhMjM2YjMxOTg0ZjVkNjJm OWQ3ZjU4YzBmM2FmYjgxZmU2MGYyNjY2NTJkYTY1ZDA2ODc0MzM0YmUwNjVmNTYwOTZlOTg1MzZi ZDFmMjEyMDMxM2IwOTA1ZmZlMmYyYzNiNmRlMjY1YWI3ODAwYzQyYmU4MTBiZWQxODU0OGMwOGY5 MTkzYjAyYTM5ODFhOTIyYjMyYjYxOGZkOWE5Nzg0MzllYTM4MmJmMjg5MGFkMWYzMGQxMTViMjMx OTI3NjI4OWNmNGY3YTk5MTdiMGMwNjQxODBlNzljODY0NGY5YWM4ODBhNzkzYjRhOGVlNDI0ZGZm MzJjZjJiNmNhNDZmNTJmZjhiZDgzNTllZDE4ZWE4YWFjMjNlNjNhZTMzN2Y1YmFlYTllMmZmODQ1 YTVmZGMwYjc5ZDU3NjdkNDdjMmExYTUzNmQ4ODlmNTUzYzUyNjk2Y2JlOTFjY2QyZWM2NzFhMDY0 NDY4OWJkYjBmNGRiN2U1ZDU4Yzg1NGViNTM5YjZiNGNkOTIxNGUzNjFhMjE2ZDMxNWIxYjEyNGI0 M2M3NmM3MDNjMDFkM2JjMzE0MmY3NjBhMzk5YmE0ODg3YTZlMzI2YTU4ZWNhZjU2ZmQ0OWFlMTI4 YTg2Y2RhNDg1ZWVkYzNkYTgwYjc1YjE3MWU3N2NhZGUwMGM5MDNjMWYyMTZlZWZhODQ1ZGZhZWY2 NjBmYzVlY2I2NzkxZWQ1Mzc2NTY4M2Y0NGRhNmM0ZWQ4YTlhZDllOTk1ZjdkOTIwY2RlZTg0NjNl NzliMThlODg3NGIwYTJmNTczYjE4MjVmOGE0ODBiMWVkMTI0NWM4MWY0ZWMwOTdiZjBhMDUwNGFh YjliZGFlZjI3YjY3ZDk4ODA1YTdlYzY4N2M4Y2JjYmM5MmFkM2NlNTg2NTExNjJhMWY1N2Y4YWY0 MjdlYTBhMTExZGJkNmUzYzdmMjQwZWI2YjIzNjA2NTBhNzJiOWMxYzQ0MTdiMWQ1NDFkZmNjMmE4 ZDZjZTNlOGMxNjBkOGQ0MTdlNGVmYmRjZTgwOWJmZTMwODAyNjk2YmZkNTJhMGY0MGJlNGRiOWJl MjQ3ZGZkODY3MTc5ZDgyMzkwYjU1MTgwZWJjNmNlYmEwYTk5MGUzZjZkMzJlZWY5ZGZkYjk0Njcw NjM3MQorUCA9IDkyODE0ZTE4ZGJlNmU4MzcxNGM0YTgyYmEzYWMzYmFmNjgyYTgwNTRlYjM2NjY2 Yzk1NDZkYjA0MGQ0MGI4NjEzZmM1NjBkOTdiMDUyNjVmYjE5YWRlMTgwZWZlYjU1ZGZjZTJjYzU5 ODFjYTIyMmU2NmI1NDdiNzhhNDI0MDE3MTA1MzViMTE4MTY3NGZkZDQyNmNmMmIwYjU1ZTViN2Yw NTA1ZjExMzA3MTIwZDQ5NWNmYjE5N2EzZGUwMDU2OWIzZDM5ZjkzYzI3MjcwZGY0NzI1MjQzZDMx NGEwMjY1NDk2OTJiMGUyYjQwNzljNjBhODA1M2YwZjM2ZTgzYWFhMzQ5NDMwN2IxNzVmZDQwNjQz YzFiYzI2NGVlZDFjMDBmOGI1NjVmMmEzYWVlYjc4YmQ5NDk3MGJkOTI2N2QyMWY1YTlhMWIwN2Rm MDllZDQ0YTNiZDQyNTVhMTM5YTMyODIzNWI5MjE4MzNmOTI5MDRhNzRlYzIwMmIwZWFjNjVkZjFj YWVkMDVkYzg0ZTUyYjA2YzFlY2YwZjc5MTQzMjRhYzRkODI4YjdkZTcxODk3MDUzMDg5NTliZTQy NDAxOTQ4ZTNiZjRiZGQ1MGNlMjQxMDFjNjdhZTc0NWE3M2E2N2Q3ZTM2NmI2YjQzMmNlNjdiMDVj ZWZkMTQ5YTE3MjQ3MDEwZjQyZGFlNGRlMWIyY2E0MmE4ZTcxODI0Y2QzMmM1Y2IyZTIwNTU0NDNl YzNmZjI0MzM5Yzc3NGRjOTIwNzc0NGI4NGU5MjAzZmRhMWY4NTU5NWY5NjE5ODdkODQ3ZWQzMzg2 N2YxZGRmY2UwNzk1ZTNmMmQ3OGM1ZDc0OWE0ODhhNDk5NzM5MmI4YzkwMjJjODEwMTk3YzkzMTg2 ODk0ZmFhNTVjYjBiNjc3NWI1N2E3YmEyNzI5YzYxN2M5NDMwYTQ0MDk4ZDUwODFlM2M1YzQ5MDhk ZGQxYTQ3NWNmOTIxMTQwOGE4ZGRiZTE5ZWU1MjdkZGIyNTk2NDU2ZTFiMTQ4MWEwOWIwNGUwOTFi MWMxNGI3YjJlNDFiYjQ0MzRhOTA2NzM2ZTExNWNiMjVhZGEwOTUwYWM1ZDI4NDViNGE5ZjFlOTVm NGQ4MGY2NDQ0MGU5ODMzMjRjM2FhOWYzZWM4OTY0ZjlkYTBkMjZhYTQ3ZTg2MzU1YWE4MGFkOTlk MGU1NzNmYTk5MzJkYTcwYmQ2NWNiMWEwNmQ4Y2I3N2U0NTVmZTdjYWRhNDU2MWUwMjdjYTE2MDgx MzJjMjYwNWI2ZDA0ODliYmE2YjI5ZjI5Mzk1MTg4M2M0NTFmMzdiZDU0NWY2NjA1MzY0ZGRjNzU5 MThkZjA5N2UKKworQ09VTlQgPSA1CitLID0gNzA0ZWI5MWRkNWJhM2Q4NTI3OWNmNDdjMDFlY2Ey YTUKK0MgPSA1MWM3MWZkNzc3OGFhMzY0OGYzZTMxZTFkYjBjNzNjYjE0NzkzNzJmMmUzNWY2NWYw MDE4OGYwOGY3OTQ5OTNhMmVlMmJiN2U5MWNkMWEyYjg2ZTkyYjhjY2NhNzI3NzIwN2ZiNTI1YWIx NzYwMDE3M2ZhMjg4NDRhZTI3ZjA5M2UwZTVhZTAwNTg1Y2M3MTRkYWM5MGNiZTliNjMzMmNiZTRj YjY4OWIyY2QxNDFjMTAyYzY4ODFmNWI3MWVjNDc3YzVmNGE5MWY3YmRjYjU4NzFhYWRkNDc4ZjFh OWNjYzZlMDY5YjcyODNmNGQ3MGIyNmU4NzQ4ZWRhNmQ0NDNhYjEzODA0YzU0M2E0NGZlMmZiMzY2 ZjkwZGUzNWQ4M2ZiZjYzNTRhOWE5YWI0YTkzZmY3ZDYxY2JjMGJmZTA1ZDYxMDJjOWMzOTMyNzNl N2QzYTA0ZDYxZWJhNzcxZjA1Y2VlMjllNWRhY2I3YWJmMzRlYzkxNTllMTIxODQxZTJjMzk4NDhm NjA0YzhmNzQzMzEzY2JkY2E4MjhiZmE0NjM1YTgxMTM2ZTdhMzdmMjMwYzBkM2M4MTRkMzVjMmVh YWJkZDk0MTgzMzEyOTA5YWIzYTA5Yjg3Y2NlMGM3MTk0MDhmODM3YmYyNGJmYjJkYWQ4NzYzMGFh YmM5ZWFiMzViZGI5Y2M1MzYxOTgzODlhY2VlYzY4ZTg3NzlmOWUxZWVlODQzOTIxODk4MjNhNjgx OTViNzViYmI2ZDMzYWRkZjU4MDU2NGU2OTZhMzYyOTI4ZTJhYzUwNmI3OTQ4MDYwMGJjMmY5ZWFh M2U5NmYzMjMzOTBkMWQ5MmNmM2M2ZDRiZDQxNDdhZGE1NjM0Y2ZmMmJmMmQ5N2IyNTk5MDRhMzM1 ZWFmMTFlYzNmYzg0ZGNkOGUyN2Y3NTM4ZTBmYWMxZGJlN2NiNDUzM2Y0ZmE1ODkxMzUzNWQ5NTdi OTA2NzhmYWM1OGFhOTY2OTRhODA0N2FjNzc0YWZlNDg4YWI0MjljNjgwN2U3MDkzNTFmODE1OWRj ZmJmODNiODY1YWVlYjI2NzIyZWY2NGE1MzdjZTkzMmIyY2ZhNmQ1M2VkNmNjMWNhOGFiNTg3NDhj MDZhNzUzNTE1ZmZmYzU2ZTI5NGY1MWFiMjU3NTg1YjYxMGQyNjFjNmZlMTJkZWYzOGExYjVkY2Vh YTQ2ODE1NjkxMjRjNjc5YjIwOTg0ZWQyOTY3NzQwNDE5YjM0MmU5MDEwZWFiZDI5MWRlMDI2ZjZl ODI5ZTRkYmE1MzAwY2I2NjgxOTEzNThhYjU4ZTE3OGMyOWEwMTk0YTYzOTIzM2Y5YzI4YzUwYTYw OWJjNDJmOGZhNmNkMTdiYzU4ZWNjZAorRkFJTApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvY3J5cHRv L0tXUF9BRF8yNTYudHh0IGIvc3JjL3Rlc3QvY3J5cHRvL0tXUF9BRF8yNTYudHh0Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjZkMjhmMzk3MDUKLS0tIC9kZXYvbnVsbAor KysgYi9zcmMvdGVzdC9jcnlwdG8vS1dQX0FEXzI1Ni50eHQKQEAgLTAsMCArMSwzNSBAQAorIyBD QVZTIDIxLjQKKyMgJ05JU1QgU1AgODAwLTM4RiBLV1AtQUQgd2l0aCBBRVMtMjU2IGNpcGhlciBm dW5jdGlvbicgaW5mb3JtYXRpb24gZm9yIHRlc3QtZmlsZXMKKyMgU2VlZCA9IGJmMWJhOGYzMjFj ZTBhYmFkYjQwMDI2Njg2YzlkOWU3ZjBjNGE1NTM4OGYyZWE3Y2VmYzgxYWViMGUwNTRkNDBjOTRm NDgwOTNmMjczOTU4MDAxMGQ2YWQ2ZTZjZTczNGYyMWU3MzM4MTAwYjc1MGVjOWM3YmIwNmJmNDZm N2Y0CisjIEdlbmVyYXRlZCBvbiBGcmkgQXByICA2IDE0OjQ3OjA2IDIwMTgKK1tQTEFJTlRFWFQg TEVOR1RIID0gNDA5Nl0KKworQ09VTlQgPSAwCitLID0gMDhmNWMwODhhY2VjMThlNmNmMWYwM2E4 Zjg1ZDc3MmUzMjdlN2ZiMDdmOGMyOTM5ZWI1NTRlODRjNDJhYjkzZAorQyA9IGRmZjMwZmQ0MzY0 N2Q0YmU1NGNmMmRmZDYxODdlMmRkZmZiNTUyNjczMTNmOTgwZmIwOWM4MzNhOWMyYmZhNTU4YTk1 ODYxNzExZjBhY2IyYTVjN2U3MzFiYTIyZjI0YTljNGRmZGQ5ZTliMDIxNmU5MDg4ZjgxN2ExNzVi OTgzNWIwZTE3NjE1Njg3YTIwZjY4YzA2NzIwNTYyNjQ5NGNkMDRmYmFiYzBiM2VlYTdjMGE0Y2Q2 MjM2YmM4YjNlNTJlNzIxZGZjMzU3ZmI4YTM3MjJiZmNjNGM2OTBkOGY2M2RiYjg2NGJiNmUzYTE1 ODA1YWVhNzI3MGY4ZWI3NDhkZWViYWEyZDA2NmZjZGExMWMyZTY3MjIxZjlhOTFkMmMyOWE2Yzc5 ZmZhZTc2YWE4MGEyNTkwYjRmOWUzNWY2MjNmYmYyZjhjZWIyYTIwNTQ5MzA3NzU1NmExODZlMjVl NWJkNTJkY2ZmN2JjYzY5MDliMzdhNjZjMWQxNDMxYmUxYjM2M2JiNDBkYTI1Mzg2ZWFhZjVmY2Fi YzdiZTY0MjJhMDQ0MzRhMjFkMWQzMTA1MzI4ZTdjNTY3NzBiOWY1OWIwMzM5NWU0MTM4ZjVmMDZm YzdlNmI4MGRhYjg3YjA4Y2FhN2JmZmZjNDVhMDk1YzE1MjYzZWZkM2YwNmM2NTFkZWQ2ZjU4MDc0 ZWZjMjA2MjBkNzA0OTk3ZmM4NDcyMWEwYThlOWU1YjlmNWNkMzMwYmJiMTU2YjMxZDlkMWIxYzI2 MGU0YTI0NTM1ZjMwNDA0ZGM1YjJkZDZiMzVkOTE2YTEzOTFiMjVhN2Q4NzkwYmUwOWQ4NTQ4M2Vk MTUyMjA3NGEyNzg1ODEyMDA1YmRhMTBkZDU1YWNiMjQ1YjNiZDNkOWJiNzc3ZGQyM2Y5YjAyNTM4 YmExYTExNGJhNTMzODZkN2NhNGQ5NTI0YjJmOGExOGUwZmZiMjE1ODBiNTYwNTQwYmIyMTQ2ZjA4 ZjA0OTc0YjkwZWIzMjQ1NDdkNTYyMjJkZjk1ZjQ0YmM2ZTVmMTgzYmVmMjgzZTQ4MTZmYjFiMjkz M2Y5YzdjNjcyNmEyNDVhNDk1ZTMwNGQ4MzE4ZDAwMDhjNTFiMGJlODA5MGY4ZjY2OGZiYzNmMzFl MDczYmU0YjllOTc0NjhmNGRkOGM3OThlOWQ2ODI4NjhkZjQ5M2RiOGE4NTczOGI1OGNmZDAwNTE5 MGYzNjU4NDkwNzI1Nzc3NzI2NzJjNmY4MjU1NWM2NTA0NmViMzRlODZmZTYxMTAzMzI3YTA2M2Jh Y2JiZTMzY2VhN2VhYTNkMWRlNDU0NzFiNzI2OWUxYjZiMzg2MDg2MjZlMzIzNDQ3YTNkNWZlMDU5 OWE2CitQID0gOGI2OGY2NmEzZDJmNTlkNDE5ODUxYjk0ZDlhNmYyZjBlNjY3ZjgxMjVlMTFkNDYz YTZiYzJjZWE0NmIxMmRjYzQwY2U4MDE4YjIwNDk3MmM3MzVmZGQ2ZDJkMDViNjI4ZjQ5MDVjNjY5 MGY1YWM1YjFiNTFlMTJmM2FmMmRjM2FlOWI5ZGFiNjE2ZjBhMmE2NmExYWMxOTc1OTJmZDViMTU5 MDA1NDdmMzJmNTQxMTBiNThkNTFhMDM0MGFhODBlOWVlYjdiMmUwZWI5N2U4MGFhMjJiYTkxOGYy ZmUxYzY3OGM3MzBlZDVjM2Q4ZDI0Nzc0ZjE3ZDhhYjZlMDFhMDYyNDNkMzZlNzY0ZGYxZGJiOGFm MWZhYWRiYzU1MjgxZjAyNDJhYmQ3YTE2MmM5ODRmZDBiMDVhYjhiMGJjYWVkZmZiMjk2MjAyNGYw MDlhOGQ3YzllNzEyODFjMDlmNTJlYzA3MDdlZTNiYmViMWVjYjkxOGJlNmFlM2U5YzFmYWJiY2Qz NTEyYWY5MjhkYjNiYTZjMTA5ZmY5ZTk4MzlhNjE2YjJhNTNmMDkyMTYwYTQ4MjIyYjg0ZDUzY2Q1 MjQ5MDUxNWVmOTNlMWViYjMzODk3MjYzNDkyYWI4ZWM2ZmFkMmU2MzMyNzZhZTM2N2Y3NmQ3Zjky NjMwOTQ3OGMwMjA1ZDRmMjI1MDZhNDUxNzk1ZGM5OGY1NDEwZDhmNWQzZTA0OWNiZWRmMzgxNjIw ODYxZTdiNGFlMDhmMmQ4YTcxYWJjMWYyMzAyNDhjYjYzNmEyZDdiNGU3NzE3YWIyYjdiNWYyZGM2 ZTViNWExOGU4MDQzMjU0MjA4YjUwZmQ2Zjg5MjllYWY5NzRjNDg1NTEyMzM2NjFhZDY3MzIxYjY0 ZDY5MjQ1ZDUzNmQ5YThjYTJhNmExMDk2NmRkZGI5ZDJjZTM2NjQxYzkyODFjNDYwYWU1MjRiMDc3 ODY3MjU4ZjYzOGU2YWM4NzJjYjVmNWM2ZmIyMTZiMWFlNjBhOWQwYzVlYTBkYmNkMDYwZjI1NWRh MjYxMTExNzVhZjRlOTkzNWRmNTlkZGFkZTZhMmE3MGNkZGZmOGNhZTZhOThlNGYzODQzYzJkZDU5 ZDA5MDUzYjA3YjY0OGE0NmY1ZGUwZWIyMWViYjE5MjgyODI3OWEzODZlYTNlZWRmMmNkYzM1NWQ3 M2Q1MTExMWU4YzFkNTIyZTA1OTc1MmJjNTYyMjZhNDIyNWJjYWI3MTNiZmFhYWVjNzgxNjdkN2Nm ZDMzZTkxM2IyNmZkYTkzY2E3NTI0YWE4YThiMTc5NzdjODhmZjliYzIzZWE4MTBiNGRlNTllYWMx OGQxNTIzYgorCitDT1VOVCA9IDEKK0sgPSA5NGM0ZDVkNzBmODgxZTU4ZTEwZTcyNDZjZjgxMmQ0 MGUyYmUyNThhZGIyYjZjMTNjNjYwM2ZjN2RhZjdlODVhCitDID0gNmMwN2I1ZmZkMWI5YmUxODI0 MTNlZjhlYWU0YTZlYWM2NTcxMDhhNDYwMDhhMGQ4OTg3MjdmMjcxMWU2ZmEwY2E2MGZkMWQ1MWZh ZDY4M2I1N2Q0MjAyZmEyYjBlYjg4Yjg1NmUwOGIwNzE1NTQzOWJkYjAzODkwY2JiN2UwZjIyODE3 MmJmMjk3YTRlMDkxN2RhZGFhNWU4OWEyODdiYjliYTY0NDFjODUyYzViMGNmZjUwODRlNmM0MjVh YWY4NjY4MTViM2ZjNDVmNWY3ZmI1ZDE0YjI3MDM0M2U2YTMwZjQwMmUxMWQ2MmU0MzNhMGQ4NGY2 NTY4NGIyZGY3OGQ0ZTc3NThiYzBiZjgxNzgzMzE2OTA1Y2RjM2MxMTUwZWM0N2YyMjVjOTY2Zjdm MzM5YjI1Mzg5NzBlYjNiOGEyYzEzZjk1ZGYxMzEwZDZlM2IyYTFmOGFlZDE5MTA1ODQ2NTU3ZDhm MDAxOGZjMGYxNzE0NmJmODM2YjY1NGRlYzk4ZTlhZDYzOWM3ZTRiMmY5MjJiNDM5NmU4MmM2OTBj ZGVjYjY1ZjVlMGVhMjgyZGQ2MjYyZjM0MzQ2ZmY5YWRiYzhiMmYzNjFkZGQ0MzU2ZjBmZWFkZjdj NzUwZmMwNTgwYzRlMTJjMDBlZTA0OWQwNmVlZDIyNDJiMTQ3MjdlZjRkNTgzODZkYzhkZjI3OWE3 YmY4MTMxYzNiZWZhZWEyZjA1OWFiNzU3ODI2ZTVlMzgxZDQ5YTJmMTFiOGNiYzJiMDAyMWFmNGRh N2E3NzllNWRmMDA4M2VkZWI1NDM0OGNjMzZjZTk2YTE5YTNkN2ZmNWJkMmYxOWQwNWZlZjZiMjAw ZTc2Mzk5YTAyYTk5MTExMTgzMjE3MzM1M2JmZjRjZTE4NTlmZjUzNGFlMTMyOTBkZDE3NmJhOGUx Mzg0ZWQyNGQ5NzAyZGJmZjEyN2UxNWU1YzY2NjE4Zjk0NjgwMjcxNzMyZDE5ZjY0NTUyZWQwM2Rm NzZkYzlkNDZjM2NmZGQ1M2ExYjI1Mzk5MmZiY2JlYTZkYjAwNmYxNmU4ZGQ5MjQwNmYwMDkwYWQ5 MTAwODU2YzZiNzFmNzc2N2ZjYjg5NTEzNjQxNmIzNzQyODVlZmUxYzY1MDY5NDE5MTFhMzgwZTJi Zjc0ZmZkMGY2N2U4NTNmOWFjN2I1ZGY2NjY2YjE3N2EyOTA4ZmRhOWFkZDBlYjc5OGY4Y2NjNTI4 MDE1MzViMmJkZjk1MDdmM2ZiM2I0NjkxNWFhODg5ZDYyYWM1OTA5MDQwYTFhMjg4NTYxMDVkZmUy ZTEwZDVjZmJiNTY5YzM4MDU1MWZjOGJiZTdkODNkYzg3ZWY3YTkyZmFhM2ZmZjRiMWUyYzIKK1Ag PSA4NTY5M2ExNmFlNjlkNzUxY2ZhNjc5OWI5NWE2Mzk2ZGUyZWFiZTdlNGRhNzRkNzM0NjkxZDk5 MmNiYTM1M2EzOWYzYjk2MTVjMTMyNWRiNWIwNTYzY2UxYTg0NmJiMGYwNTM0YTg2MTMwY2U2NjU3 NzM2YjlhOWIzNWIwZjhkODlkZDFiM2EyOTUxMzFkMmYzZjU3Zjk0ZGVlZjk2MDZkYWQ3NmEzNzdk MGIyNGU2MzJiMzY4MGU0ZDMzMzhmM2U0NDg0NjA5ZTgwNjNlOWVjNjIxMjk3ZjU1ODAyZDdjMzQ3 ZTgwODViYTZlNTE0ODg0YjhmYzFhZTEwOTQwOWM1YzNhNWJkZGY0ZGFmMDM0ZDMwMGUzMWVjY2Jh MDdhOTM4MGY1MzI1NjY2YzRhM2FhMTJkNjBiMzBjYTI3MmZlMDM1MzRhYWJlNzhiYTA0NTJhN2U0 NjQ4ZWJmZDQ2NDU2NzU2Mjk2NzZiZTZmMTIyYTU0YjZiODEwY2Y5Y2MwYzY4YjdjNjE0NzBhNTM3 YTVhNjY0ZWMyNGRiYjNlYjRmOWZhODM1NWNjN2FlOGZlZjI3YTAxNDZkZjVjY2M1ODVkOGMxMDZh MWVlYjY0YWQ0YzcwMWZkNWE1NGVmMTgyOTViMDdlOWU0N2Y3ZjdkZDJmNjdkMzhlZDc3NmE1ZjBi Mjg4NDNjYzRiYjVkN2ZkYmVhOWNiMDA4OGRlZTg0OWFlMjMyZTRlMDE2ZDhjZjM2ODE5NzFlOGE0 NWQ2YjI1NDUxNTM4MjEyYjkxZjMwZTE3NTgwYTgxMDdhN2E5NTU4N2EwNmQyMmQ2MTVmNTQ3NWE1 ZjYxNmZkZjJmYWI3OTE1MmYyNjQzMDU0ZDk2YmE4OGY1MDg4OGViMGYyZjFmMTU0YzZmZmY1M2Rk NDRjMzYxMzI2OTc1MWRjYTRmYTg2ZjQ1ZDZiMWFmOWFkMDE1OTY4NTIyMzg4OTUyOTYwOWU3MDAz YzhmM2NhYjQ5MWZkNmMxYTAyMDMwNWRhOGY5NGVjODMzZDcyMWQ5ZmFjN2U1NzVjMmExYmMyNmVi NGZiNTAxMGMzNWZmYmQzOWI5OGQ4NTdmMTI1ODRmNGFiN2RlOTJhYTZkN2U3MTQ4YTAxMjBjYzZi M2Y3YWU0N2EyOTFiYTFjZjU1YTI4ZDM4ZDNhMzBkZmMzOTE3ZDY2MzQ1OGNmODQwMzg1Y2E4MWNm NzBhY2NlNDVhNWNkNTA5ZjgzODdkNDUwYmJkZDZmYTUxODMwY2Y5YTczODc4ODdjNjIwYjg2ODA5 YzU1YTNlYjMyMmNhNzg0YTUxNjkzZjEwNTQ3NTk4MDQzMTRhZTg2MDQ4ZjBkOWM5OTY1MGE1YTEy CisKK0NPVU5UID0gMgorSyA9IGQ2NTMzOGZkMzc3MWZkNThjMDdiNmI2ODk1NzczNzg5MzlkNDM5 NjI4NTI5YjkyY2Q1NjI1ZWRkMThhZmFjNzYKK0MgPSAxYzQyOWJmMjVjMTQ0YTJjYzY0OWZiZDYw ZGU1YzI2YzMxYTBjMzUyZGU5OWIzNGI4NjEwMWM1NTE5OTRmMDgyZmVmZmUxZGI4ODUzZGU1OWIz ZTg1OTM3ODVlY2ExMDBhNzFjNTM5MmYwYzcxZWNhOWY0MTFjYmQ4N2ZjNzdlYTFhOTYzNzZkYzEz ZjZhZDQ2MGExMWU5Y2Q1YTgyOTg3NWE3YjdkY2QyYmE0ZWFhYzA4YzViYjQ4YWI1ZDRjMzM4YTZm OGJjNWU3NjA3MzllZGNmZjJkYjExNmI1YjE4MDJlMzVmOTM2ZDQ3M2RiMTY4ZWRkMTI1MzJhOTky YmNjNDE4YTc1OWNjOWZkM2Y5N2Y1NjE2MjMwNzhhZjI5ZDdhYjQ4OWI3ZWM1NjRiYTk4MWMxODhm MTEyNDBkZDkzNTRjMzI0ZjhkMGNkZjFjNzQyNTJmMGZjNzVlMzkwZTgzN2I4YmU5MGE2NzBmNTgw M2VlNTNlYjc1YzNjZTk1YjI4NTNiMjM0MmU1NGY4NmRkOWFlYjMwOGViODJjZWIyYmFlN2IzZTBi MzY0ZDE3MTA1ZWI2MWIzODQzZjcyMDZiZGI2YWJiODE4ZWZlMGYwZDNiMTAwNGUzNzAxOTFlODIx OGNjYTE0OTQ3YWE4MDcwZjdjNjZmZDA0MjJiMDJhYjRhMWQ5NGZhNDYxOTdhY2QyNGUyNzJjNzY1 NjY3MzUzZTgxOTU4ODQwMmZlYjg1ZDdmMDAyNDM1MjFkMGU3YTlkOWU3MDc1M2Q4YjUxZDM3NGVh OWM4MzU1NTM2NTk0YmYwNWE2OTYwY2E3MTc2YTRiNjYwODZiMDU1YjA5OWUzMTVhMjNlMDQyYTdl MDgwNzMxNmQ3YTExYTY1N2E2ZGM5MDQzODA2ZTI0OGE5YWYwNjU3MGY3MTBhZjY1MjY3ZDQzNmE1 ZmNiMDAxMTA0ZmU4YTdjNTY0YWZlMDc1ZDg1YmMwYTJjZTNkMzNkOGQ5M2Q1YWIxZTkyM2Y1MWQ0 ZWYyNmNiYjZmZDRhOTM1YTk3Y2IxMTVhZWQ2NzhlNzVkNWQ2N2ZiZmNkMjM2MmNiM2Q3NGVkNmI5 YjlmYjBjZjgyNTY5YTQ3NGEyNWU1YWEzOWQyMmZlNWNkMzAxMDQ1MjAzZDlmOTNjZjVjOWU5ZTk0 NTFmMWJmMzU2NmVlYzc1ZmJkOTk1Y2Y4YzY0MGFhNjhmYjA0ZjU0MTkzNDQwNTdmZDFjMGU2NTVk NzUwYTY4YzUyM2IwZmFiMjRjYWIwM2Q3MzkzZWUzYTU3MzUwMzlkYWVkNTI4OTVkZmU3OTM3ZjU1 ZDdhZTlhOGMwMjU2ZTlkNjM4YTg1OTg0NTJmNTMyOTM1M2EyMGM0YmQ5OTU4YworUCA9IDU4YjIw OTc5Y2JhNDhhOWRjOTVhODg1N2Y1YmNlNDMzMDg3ZmY5MzQ3MGZjNjI1NDZlODZlNzJkZmFhZjdi MjMzZmZlNDI4ODAyMzkwYzFkYjdjYmEwMGIxZjIzNjc4YWFjZTRhMTZhMjM3YjQxZDI2YmNkODNk NDcxMDMwOTI5YTM0ZTg0NjdmODVlYWVmMDcwYjliNzRhNTdmMTNlOTFiNGU5NWEzYzBiOGRmZWE4 N2QwMjYxOTZhMTAxNjhjMTUyYzRhYzQyNzE4OTg5MDAzYjdlNjg4Y2E0MzIwNzAzNGI2NzRkM2Ni YWI2ZjU3ZGI2NTEzZjg4ODNkMjdmMjI4MGM3NDI4OTZhNjJlN2QwZjNmMjAzNzdlOThhMDY4ODY1 MmQyNzA4ODdmZGFjYjg2ZGFhMDg2ZmZkYTE3OTM3ZTZkMjBlNGE4MjY2N2Y4MGFjNzc0OWE4ODli MGQ3NDhlOTA2ZDY1M2Y1NjliODZkZTJiNDJiNTgxOWFkZTljOTI5NzBkNGNhZWVlZDhjZDU3NTlk NTZmZDM4MjA1MjE1YmQ4NDAxYjJhNWEwMDA5OTBhZmU2YzliZWE4ZDA5MTE3MWU4NWVkODNmNDVi YjViOWE4ZDc0Y2FlODk3Y2MzNmYxZWFmMDEyMjY5Mzk5MGIxZmI1N2QwMDI1YWQ2ZDkyYzkwODg1 YWNjYjY0OTM2OGZlMjM3YzRjZjAxNzc4NzYwOWZiOTNjOWVhNWI0MTM4NDdhOWZjZjJkMmNjYjYy ODMzNDVhMjc4NjE5YWJmOGRjMzUxNjgyOTI4MTg3YmY5MjU1MWE4MjA5MzllYzczOTI4ZWI5OTMw YzQ4ZjcwODhlZDBhMzY3ODgyZjRhOGIyMGQ3NTRjNWYwNmJjODI5OTBkYTAyMjI3OTIzZWI4ZDFj YjczYzIzNzkzZWEwZDE5YmVkNGE5OTg2ZjBkNDhkNzgzNTczM2QxZWQzMzk2ZWMzY2YxNWUxODU0 NDczYjA1NTM1MjYxMjUxZjRmMGFmOGEwNzQzYjMyOTg4ODhiZWMyZjc2NTY0OTNkMDVlYjJkOWI4 NDhlNjgwMjg0NWZiOWY3ODM1YjUwZDZhMGYwZTZjZmRhZjliMWFmYzZjYWE2NTczYjMzNTAyNTZl NmYyM2NjNDY4MTMxNjcwNWUzM2ViMGE1ZjY2NGI3OWJlNTU2Y2IxYmJkZDAyMDg0MzBjZGM5NWEz NWY2MWZhY2JlN2NhMmE5YmQzMjllNGExZmE0MmFhYjliYjAyZjY1MTlhNTY3MjM0NmE0Y2ZhYzFi OTZhOTY5MzE3NDgwZGQ5OTVlMzM5YWY4ODhmYzBlNDM2OTIzMzJkNTgzZmVjNjIxNWQKKworQ09V TlQgPSAzCitLID0gMTcyNjcwNjM1MGMxMWU2ODgzOTU1ZjI0ZWExMWFiMjQ3Y2UzYjJhYjU0ZDA1 ZTY3YWQ5NzcwYjU1NjQ0ODNkZAorQyA9IGIwMDZmMjZhNjdkMGUxZTJjYmViNWMyM2I2YjMwMGFk YzE1MjZkMWYxN2JiZTk2NGZlODIzN2FlMjQ0ODc4MTU4ZTZiMDRjYjQ4ODc4NmI1MjU4YWM5NzNj M2EyZWFmZDdmY2YzYTdjYTZjODI1MTU1NjU5ZmJjNTNkMTEyYmM3OGIzYTc3MGNmMDU5ZmRkNWU2 OGYyYjRiZmEzNmRlMzcyMTIzMTEwMmU1MDQxYzk0N2ZiYTNkOTA2YmZmMzk1OTJlYzM5MDFhMzk4 ZGEyMzAzNWYxMTkwZTk5YjU4NjU5MzMwY2MyZTg1NmVlODdhZDQxOTdkY2M3ZDE2ZTFmMDYyMjc1 YmNlZDFlZDVjZDgyMTYzYWUzZTU4ZGE3MzY4ZGMyYWFkYWM4NTUzODViZDRmYTBiOGJhYWRlZjYw OGQwYTVjMjcxNzJkMTJiODhjNzBiMTM2ZWVjY2YzN2YzNjM2NDM2MWE5OTBkYzUwODE1NzQzY2Fi MTYzNmU2NjFiZmYwNGNhODM0NTUyMGMzMGI5MzVhMDYwYjQ1MDUyNmIxZDZhYzA5MTcwZTViMGEz MjdiODhmNDIzMjdiODVjOWE2MjFkMmNhNzQ1OTYzYzI4MTVhMmJmY2Y1MDlkNTBiNjA1OGVkNmU2 N2YzNjliNTYwOGQyYWE4ODUyMzhiNjdkMWI4ZTBkODNmOTQ2NGFhNDczYmYxMDkzNTBmY2MwMmUz NjBjMjYxOTIzNmNiZmJmODk1YjYwNzg5NTUzMGQ4ZDNkMmU0MTQ1MDc1MGRhZDA1YjFjMzdlZjE1 ZGI3ZmI0NzA3NTk3YWMyNTJlOGU1OGQ0YzFhYjI3MTNiNDI3NjQzZDE5ODE2NGM5MDhiNWQ4ZmYz NmU5NzAwMTU3Mjg0MDA5YzdiMjgzNjMzZDhiMjdiMzc4YmI2NWVmZjhhYTU5YjVmZTVlNjQzN2Ex ZDUzYTk5YzEwNmMyYzRkMDMzZDNkMjM5NTBlMzEzYTEwZWIzMWQ2ODUyNGFlOWY4ZTRmNTY0Mzdh Y2Y2NmRiM2U4Zjc3NDA3YTE1YmJmZjRiMzkzZTU1NTk5MDg5OTMxNDZkOTNjNjczZDJhZWI3ZDRj YjhmYzhkMDE2OWRlN2VkNmUyYmJlNmNlOTk1OGEwZjVkMjAxNDE5ZTdhY2IxN2U0N2RhODI3YmEz ODBkNmIzYWQzYjVhOGMyMTAxYzVmYjUwMTExMGM3MjcxNjkwNjVmMjMyOTc5NDdmNTM4YWIzZWMx NjVkNjFlZGMxZjZhOWUxNzM1ZTliN2ZjMDZkNGQzNDA2Y2Y4ZjljNmE2OGIxOTZjZjI2MjMyNGE5 ODY3MDVmYmM4MDJjZGQyZTZiNGViY2Y2OGU2YmI5ZTc5M2FlNjQ0CitGQUlMCisKK0NPVU5UID0g NAorSyA9IDMyZTU3Y2NmZTc1NjNkYzBhMjBjMTRlZTQ1MDgzN2EzMzYwNmMwODZjZTE0NjdmZDdl YzU4NDY3MTU0MzM4YWIKK0MgPSA5NzdkOWM1ZjY4NjFhNjllMTNjZDg1NDI5OTQzNGUzNDhjZDA2 OTBiNGQwNGUwOGUwNTk4YjQ3ZWVhNjIxYmNkOGEyMjgzOGRjOWMzNWE3MmMzNWZiMWE2NDM0NzE4 ZDAyZmQyNGNiNGIzZGQ5MGIwNDMwMzM0YTkzOGEyMTg0NjdlZWI0YzM3M2Q0NDZhNTM5ODEwYmMz Y2UxZTkyM2I3YzIwZDlmNThlYTkzMWQ0Zjk2NGM3OTYxM2JjZTY3YjI2OGVmYzQ0YmRiOWJiMDBh NjhkNjAwMzc5NDlhZWM3YTM5OTQ5M2RlZmIyYTQ2NmUzM2Q0ODMxZWZkNjNhZDFjYjg5ZTAwYjUz MDYyNmQyZjAxNjU5NzVkZGZjNGNjNWUwZjk2OGQzODc1ZGUwZjY3NGIzYTUxN2RmMjY0ODBiMDJi NjIzNmViYjM3NzExODI2OGNlYmIzMGZmMWRkZjBlMjgwZmUxYmZmNjE5MDJhMDE3ZThkZWNmNjA3 NTNjNjQyZjM1ZmFmMDU2NTMwM2JmZTY1MWVjOGYwMTkzY2YzNGQ0YWYwMTBjOTkyNWI4ODcxZjBm OGM5MzRhMTQ5ZDg3NGEzYjY1OWY3OGFkMTQ4NDI4YWFjYWVhYjgwYjFiMjVkZWM4YjBmN2NlNTQ0 MDYyODdiYzgwMmFjMmMwY2NhM2RiNGFkY2FhODQwMGE4NjM2ZWEzMzliNjJmNWU5NGQ1ZTMyZmQz ZDExODNiMzc0NTA3YTJhZjYyMGNhMTM0NmRjY2M5ZjgzYTRmZTg1NWIxYzBlOTFkYjllN2M1MzI4 MjhkMDk0NGQ5YTgxYjU1M2ViZGYzNWUyNDExOWVkODE2NGJkMDI2MDYyN2VhMDExZTkzYmMxMDNm MjA4Yzc2NDk4ZGRiOGJjYTE1ZmQwNTMyNGRhNTQ3MzE1N2ZlZWRkNTQ1OTJhYWNhZWU2ODg1Mjk2 OGViNTRjNjllYjFkZGY2MDc5MTdjNTc0OTNlYTM4MGRlMGNjNmFlMzA0ZGM0OWNhYjgwYTMxYjhi NDU2OTg2ZGMzNjdjNzBmMTQ0ZTUyZGQ2MDRjOGQ1ZWRiY2U1ZGU1ZWZiMzBkOTQ3MGJjODgzNDQ1 YjM0ZmE0NDE0ZjQ0YmI5NGE2NDM2MmExMmI1NDY2NjU3MjFmYTZkYjgyZjBjOTQ3ZjAxNTk3ODQx MmIyY2UxMzZjNDcxYzk4YjFmOTA4MzE1YTE2YzgzZTkzMThlNjQ1MDhjN2UxNzlhNDQyOTE5NWE5 YjFjY2MyMTFhMWMxZDRlNGRmMTVjNWViYzdhYjkwOTI2ZmNmN2RhMDM2NTcxNTllNDQwZTkzYWRl YTMxZWUzNWY3MmYyMzk5ZjVmZTJmOGM1NjBjODgyNmUyMworUCA9IDgwZGU0OGZmODA1YTg4ZjNi MzU5NDUxYmI2ZGY2MWRlZjljYjM1NTFlNjRmZGQzYTNhNzBhM2I2ZDIzOGE2OTMxMWE4NWJjNTky NGUzOTVjZTkyZWYzOTRiMWU1ZGMzMDEyMzNlOWEyMTJmN2ZiODYyNzJjNDJkZGY1ZjQ4NTdjMzhk MGRkMjU5ZGMxZDY2M2MwZDcyOWUwMzNkOWIwZjdmMDFhYjFmOGYxYjcxOTJkNDA5MjFlZTBkNDY5 NmEzZTM1NjYzYzVmZmNmZjVlZDE2NzY2MGJmNmI0YzAwZTYxOTUxMmEyZTgyN2JlMzNjOTBlZWNj NTM5ZTE4YWNjOGM3NmViMzMyYjI4YjFjYzUwMmFmNTcxMjQyMzQyZjYzZDE1NTI3MWRhMzIxMTM1 MjEyOGFhMGFmNzBjOWNlNzhkZmRmMDg0YTEzMDQ5YjdiYjZmMmJkMTBkZDM4NWI0MTJkNjBiZjFj Y2M5ZmFlMTIwOGYzOWRjNTNkYjQ3MWEwNGQwZGNjMzcwM2I0ZjdiOTVlNzJlYTgxNWI2NGExNDk5 ODY1YTdjY2M1Yjc0MDk5OWU3NjMzOGUxYjI1MWM3NDBkNzUyNzQxNTBhOTZkZWY4NzYwYTA4YzVh OGE2ZjU4MjczYjA3OWMwNmVlMDlmNzlhOTc2ZWFhY2M4YTA0YzM2NWJjNjFhNzg2YjQ5NjgxMTEy MWMzODZkMjc0YzQxM2EyZmJmYWU5NDY0ZGI2ZWE3NzUyMzMxOTMzOTU3NDBmYzlhNWVjYTFhMzgy MGQzM2Y2ZjdiMzhhODNjY2JhY2FhYzE2NDc5MjI1ZTEwOGFjZGY0NmNhMzVlNTczMTUxOTYzNzIx YjczYjNlMWM5YTEyZWZmZmYwYzNhNjIyZWI5ZjA3YmVmN2FlNzEyYzk2ZWUzYmEyNDU1OTdmYjhk NTExNjk4ZDZlODE5YTk2N2UwZDE4NjhjMGM2MDU1MzMzYjdjMTNhOThjZjYzZDZhNWQ4Nzc3OWE5 NTM0NWNhOGI3ZTllNTk3ZWM1ODhlOTZmOGZjMmE3ZjBhMGI4ZjE1NDNkOWUzNjJhOTExZGZiMWYw MzEzMmE0ZTZhZjcxYjUwM2M0MTgxNGQ2YjY4NGEyNmI4ZGYwMGNkYzY1N2FlMTI5YTFmMmExOGNm NGI3OGEzOTgxZGU2ODI5NmIxMjY4NjA5ZmUzZWNiOTkyOGI5MGRmNDU1M2JlMzczMTlmYzUwODA5 NmZhNTRiMzVlNDgyMjMyODU2OWRhNjBhNmM2NjBmMzBjNjFmMDJmNGM1YWIyNTI3Y2YzNmNiN2Rh OGQ3ZGFkZTRjNzE0ZWEzZmMyZGE4ZjY1YjQxOTkwOTBlMTE0ZGQKKworQ09VTlQgPSA1CitLID0g ZTM5ODJkYjIwMzJmMmI0Y2U2NThmYzQ0Yjc2ZjU5NjRjNDVjZDMxYmY4MDM3MDg5ODJhZTU5OTE4 NmZjMzc2NQorQyA9IDk3NWU0OWE0YjlhNzcwOTU3YTFiYjJiZTkyMGE0ZjM5YjljZmQ2OWJhNDY5 ODNkMjQ3M2Q2MzFjMDgxMzJiOWJmNjFjNDQ1MTBiOGFhOGJkNDhjNzBhODYyNzZhYTExNDlkOGZk ZWZhZDUxMWQxNWQyZTIwMzdkOWU5MjBlNjQwY2I3MWE5NzY2M2QxOWViOTBkMGI3NGQ5NzY0ZDAz ZTE3Y2RhODdlYmVjNmUzNWFjMjAwM2NiNzViZjkxOTI5MjBkOTEwMTg4ZDc4ZTJlNjY0MjU1ZmRm NmM5MTkwMzE5ZDM0YWRiODU4MTYyZmYwODMwZjM3ZmUxZGQ0NDAwM2QzZDVhMWY5NDUxOTQ5ZTM2 OGY0NmFkMTk3N2NlNjIyZGFhZGY4NDgzYTFmNjAzNTk5OTJiOWIzNjZlOGE4MWZmYmU5NmNlZTQ1 ZDNhZWYyZmQwYWQ4YzE3Y2MzNDkyN2FmNzdhMGQ2ZDBjNWRlZWYzYjRhMjVjODJlYzM4ODY2N2E0 OTNiYjA1OTlhYzQ5MmIzNTEyNDZjYmFkNmQyODNiZjE4MjA4ODNhZmE0OGJkOTA5ZWI3MzA0Yjlm YzViN2Q5NjAzNDQzMDkxMzNhYWI3YTg1YzQ5ZjdkZTM5NjkyNmY1MGJjODNjOTU5MDBjZDA0OWVh YzFiMzg3YWFlN2ZjYmE1MzQ1NDk2NDI1ZjkyMTZlMWZkMTVjMjBkYTc1ZmJiMjZkYTE3NjE0OWI0 MGE3MDFlMTVhN2JhY2ZlODk5ZTNlY2M1MzRhYjhiYzViN2JkMDgxZmI4MjViNWY0MGZhNTdlMzYz ZDdiY2U0MDAyMGU3M2Y2MzhhY2ZhMDk3Yjg5YzUwY2I5ZWRiMGJkNmQ3MWQ0MjliODAwM2FhNWRj YjdkNjE3OTJlYjNiY2FjNzk1OTU0YzYyNWExMDQyMDliMzczYzI4Y2YwMjAzOGMzMzE4OTE2ZWRk MmI4MThlNjcxOWVjMTU0Y2ZhNTZhZmIyZjMzN2QzMzMwNjlmOTE1ZDBkMzVlZGQ2YzI3OGZhZTIz YzQ0NDBjNDBiZTQ2MmExZGNhYjIzNzU4ZTRhN2ZiZTg0MzY0OTNmNThlODkwMDkyZWE3MWNiOGJj ZjEzMzZlOWVlMTZiODUyY2NjNDg4ZjIxNjgyZGM5ZjAyYmRmNmM1NmZlOGFkMDRkODRhM2M2OWQ4 ZDA2ZGVlM2QxMjZjMGE3NWYxNDJkMGM5MGMyNTYxMzlhY2Q0YjcxOTU3M2U1ODhiODBiNDU0MDAy NGEwNWEzNTA0NGNmNThkODk2NzM5MjNhNTM0YzM4MTY0OTJlNjIzNzk3OTdjZDZlNmE3NDY0ZGE1 ZWFhZjExZWU3YjljMjdiOWIwM2Q3YjUzYzAzCitQID0gNDNkMzhjYTEzMjU0NWIxNTQ5OTVjZmYw NzA4MjYxMWNjNDdhNjQ2N2E5ODA2NTRkMmQxZjFjY2ZiM2JjZDM4N2U5ZDdmZmEyODFiMGUwYjAw ZGM4NjY5MjA3ZTBkODAzM2U5ZTM2NjEzYzk4OTc4Zjg2NDRiYjdlNTA1ZmJmNDkxZGNlZmJlMTk1 ODkyNTRjOGFiZjg1OWRkNjVjYjk0ZGZjOTllN2I5ZDNkMWYwYTMxZjIxMjg1OTYzZTFmN2I0NWM3 NDkwYTUyMmZmODg3Nzg2Zjc5NDBmYjYxOTJmNTA4MWNlNzE4MTk0NGJkY2E1YzViZmNmMjU4OWY5 MTczYTY4MmI3OGZjZGY5NzFkZDlmNGU4NTI5MDMzZTE1Y2RlNTYwOTg0ZGNmNzk2OTE0MjA2OTcz ZGNjMTNmOGM5YTI0YjI1ZGQwMGMxMTE2NmVjNmVjZjMzYzZhZDliNDg3ODQ3YWJkN2JkMjliNGYz YjljOGRjOTNhNmE1YTMxNzIzZGMwMzI0NTg4NGJmYWRjMTJiMmZkZGNjODI0MDlkN2IxNDY2MGFm ODA4ZDRlODIxNjE1N2JiNmJhMDNhMzE5MTkzYWQ0ZGFjYmQzN2FjODg0NTUwOTYyYTRkZTI2YWU5 MjNmOGQ3NGYyZjY5NGZjZDBhYTc0ZjJlODA5ZGE0Njg5YWFkOWYyODIwNjg0YjNiNDIzZWM0YTdk YTBjZTRhMWI1OTlmYzIxYmQyNzc5NjUzMjgzYjBlZTgxZDdiMGQ5ZmQzZjZkMWU3NWJkNzFhZjk2 MjA2MzBhYTg3YjczZjdiMTJlNjhkZGJkZmEwMmFlODZhZTA2YjBiMWFlZTRhOTk3ZDM0ZjYxYjQ2 NjM0OGI5MmUzNmY4MzY1Mjc2MzA4NGEyMTVjNDdkY2Y2ODlkZjE3ZTM2YjY0YmFlM2NhMWEyY2My MmM4MzdiNTkwNzIzNjgzM2MyYzFlNWYzZGRiNzQxNjVmYjZmMDYzMzk5MDEyMmNiZTRhZjhiNTky MGIxYmI2OTYxY2RiMTQ0ZWE4ZDdiMjQ1ZDAxMjhhYjc2ZjRmYzAxODliYTk3Mzg1NzE3ZTg5ZTBm OTljOTYyZWU4YzJiNmU1NTU0NmExOGJlMGJhM2RiZWJmN2U0MTQwZWVkNmFhMzU1OGM0MzExNWI2 NWI2ZjZlOGU4ZmI0YjljZmJlMGI2ZWFjMDA2NjAzNjY3YjI4Y2VmYjRkZWMwMzdmMzM1NjhhM2M5 NGQ5ZTM2NTM5ZTkxYjMxOTlkNzI4NTIxYTlhNmI4MmI5NmZmMWMyOWRkMWQxMDM2NmQwNTEwZjFi OWE5NDk0Y2QxMDRkYjIzOTA1MzBiZTNmYjZhYmRiNwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvY3J5 cHRvL0tXUF9BRV8xMjgudHh0IGIvc3JjL3Rlc3QvY3J5cHRvL0tXUF9BRV8xMjgudHh0Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmE2ODJkNGJiMzIKLS0tIC9kZXYvbnVs bAorKysgYi9zcmMvdGVzdC9jcnlwdG8vS1dQX0FFXzEyOC50eHQKQEAgLTAsMCArMSwzNSBAQAor IyBDQVZTIDIxLjQKKyMgJ05JU1QgU1AgODAwLTM4RiBLV1AtQUUgd2l0aCBBRVMtMTI4IGNpcGhl ciBmdW5jdGlvbicgaW5mb3JtYXRpb24gZm9yIHRlc3QtZmlsZXMKKyMgU2VlZCA9IDdjMGYxNjEx NTljYzllMzM4MzA4ZGRjNTlhNjU1NDUwYTAzMDgzMmIzZDQ1NzZjNTY4ZDYzNzI1ZDU3YjAyMDA3 M2FlZTljNzdkOWZlYzM0ZWFiMzU4YjgzYmY1YWFlNGZiNTI4MDMzNDNiYzAzZDQ3MjI4M2VkYmVi YmNmNzVjCisjIEdlbmVyYXRlZCBvbiBGcmkgQXByICA2IDE0OjQ2OjEyIDIwMTgKK1tQTEFJTlRF WFQgTEVOR1RIID0gNDA5Nl0KKworQ09VTlQgPSAwCitLID0gMGU1NDk1NmEyNGM3ZDRhMzQzZjkw MjY5ZmIxOGExN2YKK1AgPSA4MTdkZGFiZGM1ZDIxNWVlZTIzM2FkZmY5N2U5MjE5M2M2YmVlYzUy YTcxMzQwNDc3ZjcwMjQzYTc5NGNlOTU0YWY1MWUzNTZjOTk0MGU0YWIxOThmMGU2OGM1NDMzNTVm NjVhZDE3OWNiMmQ2MGRkMzY5ZWFlYjllZDE0MWZiMThjOWU0MDU0YWM3ZmRjODM1MDY4OTY5OTBh NGQyMDgzM2QyZDZlOWEzNDkzODc5NmVlNjdjOWQ3ZDIzMDU4NTQ0YTRhMzVmMjk1NDEwM2NlNDQz YTk1YTdlNzg1NjAyMDc1Y2EwYTczZGEzNzg5OWU0NTY4MTA2YmIyZGJmMWY5MDEzNzdkNGQzMzgw YzcwZmE1MTc1ZWJjNTUwNDgxYWM2ZjE1OTg2YTQ0MDdmZGU1YzIzZmYzMTdlMzc1NDRjMGEyNWY4 NzExNzUwNjU5N2RiNWJiNzk4NTBjODYyNDdiNzNhNWQwMDkwNDE3ZDYzZTRjMjU3ZWEwMjIwYzJj MDRkYjA3YTM0ZjBhYjc5NTRlMWRmYTIwMDdhMTQ2Njc5NWM0ZDBjMmFhMDljYTM5ODZjMDI4MTg1 YjQzYTQ2NjUyNjU5NGFmYzljODkxYzI2M2E3YzYwODMwNGJjMTk1N2M5ODczZjU0NGRjNzFlNmY4 NDdjNDhkMzIwMjZlZDAzYjIzMzM4MjU0NTJlZTdlMTJhNTBlMWNkN2Q2NzgzMTkyNjRjNjVmNzgw MDE5OTZkMzdmYWU3Zjk4NjFmYmQyMWNiNTA2YzJmOGEzYjBlZTUzYzdkZWJlMTcxMTFiNmUzZjc4 YTVjNTY3Nzg1N2IwODJjMmM0OTQzZGZkMWVkZjYzMzdmZWE5OGE0NGZjMjU5MjgzNjExNTZlZjM4 ZDg2NTk0OGI5NzljZjZmNGI0NmJkMjExOWYxMmYwODkxY2VmN2ZjOWQwNjM4ZmQxMDVmYzA1Zjk5 NjhkMTY5NDhkMWNiODIwNzUxZTgyZTQ0Y2I2OGU5OWQ0ZjA3MmZmZDE1NzdkYTZjMDYzMWI1ODI3 YmVjN2UxYjllYzcyZDE4Yjc0Y2Y1ZjIzM2U4NTAxM2MxNjY4Y2ViNWQ3YTFmNWUwZjAxNmIwZmY3 MjZhMGE5ZDQxZTJjZWE4ZTE0YTJmNTY0OTJiMTQ2MDZkM2ZhZmQ4YWMxNDEzMzVmMzlmOTBkNTY4 NjM3MzU2MjhlOGYxN2JlOTBlMTAwZWYwNzg1ZjNjZDU3ZGI4YjlkODlhNmIyMTg5ZGMyZWEwMGMy ODVkMjY1Nzk4M2Y4YmQ3ODgzYzIxNTQ3N2U2N2E1NTU1NjQwMWYxZDhiMjdkNGUwZDU0MWM3ZmI3 YWNlMzcwYzJlNDI4ODg0CitDID0gODc2ZjNlNTNiYTljZjRmNmE1MjFhYzE5OGJjODEzZDBlZGUw Zjg2MmFiNjA4MmUzZTBhMDZhZDgyYjRmMjc5NTgyZjdjNDNiYjYzNTc0NjA4NDQ2YmMyYTA1ZjQw MWE2OGY3NDA4NmNmMjc3NmI0YjNkZjZiMzY3OWMyZWRmYjkxYzAyNGRiNTRjNjgzMWUwNzUyYWU2 Zjg2Yzc1OTY0NjJkZTkwNWVlMGJlOTA4YzFiOWQwNDNlY2FmZTJhZDFjYmRkYjkwNGUxOGViYzli N2ExMDcwMzFiZTNhODcwNTk1MTZhM2QxMjU3ODEyZDljODAxYjBiOWYyMTUzOWU3MGM0NzE1MGMx MjhkODdjNWU1OGZhNmU0MzcxYWVkZGU2OWM3YjVjZDE2YjczYWM0MjI2NzYzMjgxMzFmM2FjNDhj NjAyYmI2ZTA3NDE4MDVhYWQ5ZDIzYjMzYjM1MjNiODZjZjA1ODhjZGY5ZGM2YzRkNWY5ZmE0M2Q4 OGNhMTc5NzZlYWY0OGZiMzdhNDFhNTk4MjY2ZGEwNDE0NDM3M2RmNTYzMWNjNTEyNjM0MWMyMDBh MGM4NDk5YjI5YWU5NmU2ZTZlNmMyYmRmOGQ4OTAzZGE2MmJmOGRkYWU5NzA1NjliNjk1MjQwZTc3 ZjhhYzViMTkxZGE1MDM0MDA4YjZlZjIxOTM2ODU4ZTY5YmFjMzcyYmJhZmQ4Nzk0ZjZiMDM3MTE1 MDNjMTg3NTUyOGE5MzQ4NjgxODQ0ZWRiMTk5YTA2NjRkNzQwZjBmMGIxZjg2NmM0MjQ4YzgwZmU4 YjU3MDBhM2M0MTM0Y2RkZGIxNzY3NmUwY2QzN2Q2ZDgxODMxYTBmNGFkZmJhMDcxYmIwOTM1NTAy NDgwZWNjZDQ4YjI4YmU1OTU0ZWE2YzdkODczYjUxYjhiZDJiNzA5YzViNjEzMmVkMzEyOTY1MTA5 MTUwNzNjMThmNzAxMmYwZWZmNmE5YWFkNTM0MGExOWZkNWUzNzJkMzUyNjBiNzE4ZDllNDgwN2Ix OTU0YzI0ZTZhNGZkNDhlNGRiYjhmMzk1NDc0ZTk5YWI1NzczNjdkMmFiNWNjYWExOGM5NDczMzEw NDdkYzM5ODZlMjEzYTg3OGI0MTA4OWFhMjIxMDE5ZGFkNDE5MWE0ZmVlZmQwOTVmODYwNmMyNzAw YTQ2ZDcxY2JiMTNlZmI2OTU3ZGY5MjVlYzI2MDcxYzA0ZDA0ZDVhOTRlMTM4ZTVmYzVkMWYwNTky MzZhYWQ3NjIwODA3N2RjYzYwN2IxZGQyMDg2ZjljMDRlMzNmOTU1ODIyYjQ1N2VlY2Q2OGJkNWYy NDgzNmVjZWRiYWM2NzVlNmVkOTNkOGE3ODdjYjU3YWQ2OGUKKworQ09VTlQgPSAxCitLID0gNmI4 YmE5Y2M5YjMxMDY4YmExNzVhYmZjYzYwYzEzMzgKK1AgPSA4YWY4ODdjNThkZmJjMzhlZTA0MjNl ZWZjYzBlMDMyZGNjNzlkZDExNjYzOGNhNjVhZDc1ZGNhMmEyNDU5ZjEzOTM0ZGJlNjFhNjJjYjI2 ZDhiYmRkYmFiZjliZjUyYmJlMTM3ZWYxZDNlMzBlYWNmMGZlNDU2ZWM4MDhkNjc5OGRjMjlmZTU0 ZmExZjc4NGFhM2MxMWNmMzk0MDUwMDk1ODFkM2YxZDU5Njg0MzgxM2E2Njg1ZTUwM2ZhYzg1MzVl MGMwNmVjY2E4NTYxYjZhMWYyMmM1NzhlZWZiNjkxOTEyYmUyZTE2Njc5NDYxMDFhZThjMzUwMWU2 YzY2ZWIxN2UxNGYyNjA4YzljZTZmYmFiNGExNTk3ZWQ0OWNjYjM5MzBiMTA2MGY5OGM5N2Q4ZGM0 Y2U4MWUzNTI3OWM0ZDMwZDFiZjg2YzliOTE5YTNjZTRmMDEwOWU3NzkyOWU1OGM0YzNhZWI1ZGUx ZWM1ZTBhZmEzOGFlODk2ZGY5MTIxYzcyYzI1NTE0MWYyZjVjOWE1MWJlNTA3MjU0N2NmOGEzYjA2 NzQwNGU2MmY5NjE1YTAyNDc5Y2Y4YzIwMmU3ZmViMmUyNTgzMTRlMGViZTYyODc4YTVjNGVjZDRl OWRmN2RhYjJlMWZhOWE3YjUzMmMyMTY5YWNlZGI3OTk4ZDVjZDhhNzExODg0OGNlN2VlOWZiMmY2 OGUyOGMyYjI3OWRkYzA2NGRiNzBhZDczYzZkYmUxMGM1ZTFjNTZhNzA5YzE0MDdmOTNhNzI3Y2Nl MTA3NTEwM2E0MDA5YWUyZjc3MzFiN2Q3MTc1NmVlZTExOWI4MjhlZjRlZDYxZWZmMTY0OTM1NTMy YTk0ZmE4ZmU2MmRjMmUyMmNmMjBmMTY4YWU2NWY0YjY3ODUyODZjMjUzZjM2NWYyOTQ1M2E0Nzlk YzI4MjRiOGJkYWJkOTYyZGEzYjc2YWU5YzhhNzIwMTU1ZTE1OGZlMzg5YzhjYzdmYTZhZDUyMmM5 NTFiNWMyMzZiZjk2NGI1YjFiZmIwOThhMzk4MzU3NTliOTU0MDRiNzJiMTdmN2RiY2RhOTM2MTc3 YWUwNTkyNjlmNDFlY2RhYzgxYTQ5ZjViYmZkMmU4MDEzOTJhMDQzZWYwNjg3MzU1MGE2N2ZjYmMw MzlmMGI1ZDMwY2U0OTBiYWE5NzlkYmJhZjllNTNkNDVkN2UyZGZmMjZiMmY3ZTY2MjhkZWQ2OTQy MTdhMzlmNDU0YjI4OGU3OTA2Yjc5ZmFmNGE0MDdhN2QyMDc2NDZmOTMwOTZhMTU3ZjBkMWRjYTA1 YTdmOTJlMzE4ZmMxZmY2MmNlMmRlN2YxMjliMTg3MDUzCitDID0gYWVhMTk0NDNkN2Y4YWQ3ZDQ1 MDFjMWVjYWRjNmI1ZTNmMWMyM2MyOWVjYTYwODkwNWY5Y2FiZGQ0NmUzNGE1NWUxZjdhYzgzMDhl NzVjOTAzNjc1OTgyYmRhOTkxNzNhMmJhNTdkMmNjZjJlMDFhMDI1ODlmODlkZmQ0YjNjN2ZkMjI5 ZWM5MWM5ZDBjNDZlYTVkZWUzYzA0OGNkNDYxMWJmZWFkYzliZjI2ZGFhMWUwMmNiNzJlMjIyY2Yz ZGFiMTIwZGQxZThjMmRkOWJkNThiYmVmYTVkMTQ1MjZhYmQxZThkMjE3MGE2YmE4MjgzYzI0M2Vj MmZkNWVmMDcwMzBiMWVmNWY2OWY5NjIwZTRiMTdhMzYzOTM0MTAwNTg4N2I5ZmZjNzkzNTMzNTk0 NzAzZTVkY2FlNjdiZDBjZTdhM2M5OGNhNjU4MTVhNGQwNjdmMjdlNmU2NmQ2NjM2Y2ViYjc4OTcz MjU2NmE1MmFjMzk3MGUxNGMzNzMxMGRjMmZjZWUwZTczOWExNjI5MTAyOWZkMmI0ZDUzNGUzMDQ0 NTQ3NGIyNjcxMWE4YjNlMWVlM2NjODhiMDllOGIxNzQ1YjZjYzBmMDY3NjI0ZWNiMjMyZGI3NTBi MDFmZTU0NTdmZGVhNzdiMjUxYjEwZmU5NWQzZWVlZGIwODNiZGYxMDljNDFkYmEyNmNjOTY1NGY3 ODdiZjk1NzM1ZmYwNzA3MGIxNzVjZWE4YjYyMzAyZTYwODdiOTFhMDQxNTQ3NDYwNTY5MTA5OWYx YTllMmI2MjZjNGIzYmI3YWViOGVhZDk5MjJiYzM2MTdjYjQyN2M2NjliODhiZTVmOThhZWE3ZWRi OGIwMDYzYmVjODBhZjRjMDgxZjg5Nzc4ZDdjNzI0MmRkYWU4OGU4ZDNhZmYxZjgwZTU3NWUxYWFi NGE1ZDExNWJjMjc2MzZmZDE0ZDE5YmM1OTQzM2Y2OTc2MzVlY2Q4NzBkMTdlN2Y1YjAwNGRlZTQw MDFjZGRjMzRhYjZlMzc3ZWViM2ZiMDhlOTQ3Njk3MDc2NTEwNWQ5M2U0NTU4ZmUzZDRmYzZmZTA1 M2FhYjljNmNmMDMyZjExMTZlNzBjMmQ2NWY3YzhjZGViNmFkNjNhYzQyOTFmOTNkNDY3ZWJiYjI5 ZWFkMjY1YzA1YWM2ODRkMjBhNmJlZjA5YjcxODMwZjcxN2UwOGJjYjRmOWQzNzczYmVjOTI4ZjY2 ZWViNjRkYzQ1MWU5NThlMzU3ZWJiZmVmNWEzNDJkZjI4NzA3YWM0YjhlM2U4Yzg1NGU4ZDY5MWNi OTJlODdjMGQ1NzU1OGU0NGNkNzU0NDI0ODY1YzIyOWM5ZTFhYmIyOGUwMDNiNjgxOTQwMGIKKwor Q09VTlQgPSAyCitLID0gNWYwZjI0MjhhZDgzZWEwNDY0MmQ4ZjkwZTMxZjAwYWQKK1AgPSAwNWY2 NTU4MGE2MDJmYzgzOWM1MzcyNzc4YmM0OTUyMTlhYjE1OTkzNWFjZjNjYWVkMTA5NThjYTBlMTM1 Y2JjNDRhODk2YWE4NGIxZjZiMDVkNjVhYzQ1ZjU5MzAwMjlhMjIzOTc3Y2E0NmM3NzE3ODA5ZTgw ZDhlYjkxZTdjY2JjNTI1ZTY5Y2EwYTg1ZDNlNDViMmY5YmNmMGM4Njk4MGI3ZjlmOWViMjBlOWI1 NTg0NzlhYThjODE0ZTYxMTM2MzVhOWI4YjBlMjY0MDU1ZGE2ODE5ODMwM2FlOTE2ODNlYjhlZDMz NTFkZWEzYjgyODBhNTA0ZDE2M2UxY2YyODQ4MzRlMzY0MWEyNjg2OGUyM2ZjZjQ2MGQyNzlkMzU3 NzExNWQ4YzRjZjBmNTQzNzRkZjI2ZGRmYmYwYzFkZjViZjcxZmU1MDkyMzExNzdhYzUzMTUxNGVk ODc4ZDNlZjQ0YTAzNjg1ZGVlOTA2YWIzOTRiZmI2OWNiNTZmZjk3M2YxOWZiNDY2Y2U1NTBhZTdi MDMwMDhmZWNhNzA0NmJhZTE2MGFkNDdmMjhjOTAwNGRhNjhlNTk0YmNkN2Y5Y2E4Njc0YTY0NWM1 MDc2OGI1ZWUwZWMyMDg4ZjY2NjAyYTQyOWY5NTQ5MmUwOWRjNTY3YzExMDgzZWIxOGRhOTdkODU5 NjhhODZmNmFkMDUwNTRmNGE5YzRiY2Q1N2VjZTI1MTFiZGIzOGFmZDc4MDg0YjBhMDg4MTEyYjgx Yjk5M2E0ZDM3Njc0ZDk3ZTgwODE3OTVlZTA1NWQ5YzM3ZDI5MDdkODU5YmUyMDFlNzM1ODBlYmQ0 Mzk2MjA5MThlN2M0YjQyMjQzZjQzYTU5YjQ3NTA5NTIwNWM0MGExZDM3YzBmODdhNWRmMTk0NTBj Y2Q1ZjI3NGYxODZiMGY0NWY3YmMxNTNkMzBjZTNjODczZDdiYmE1ZGVhNWE4YmQzNDhiMmYwYjRm MjU0NjE5Mjc2NDJhMjk5MWMzYzRiYzNhZDM0ZDA5YzEwNDMyMmJmMjdlOGVhYTBjYTk5YzBkZDQ3 YTNjNGM2MThhZjAyNTk5MTkyZTM2MmU3NWRlNTNkYjMzNmE2OGIyMjM1NjdiY2RkY2Q3ZmVlY2Rl MGFiYTkxYTFlYWMwY2U2MzI3ZDNjOWM1YmUzNjY5ODQ5NGIyYjY3ZWMwZWZkMzZiNzQ0ZDc5NGY1 MjFiZWUyNTFiMzFkZDI5ODUyYTk0ZTZiOTVmMTQzYTUzZjkzZjg1ZWM4YzJlODZlMTAyNmVjOTQ5 YWFmOTdmYzliOGQ3MjhjMTNlMWRlYWI2MjhlOTYyNGNhOTY2OTkyZWZhZTYxZGNkNmU1CitDID0g ZWZhOWQ1NDlkMGU5NzU3ODlhNmM4NGI5OTk5MWM5OGNmMjBkYjRkZTY3ODliZTZmOWY3YWUxMDll MzIyYTZmMDRhMWExYzFmZTU4MmU0MjQyYTVlMmYyYjM5MDgyN2Q3ZTUyZjFiZDk3YTRlNzQ1OTIw ZGRhNjlhMjVmZTkzZmE1ZGU4MmMwOWRjZThhMjU5MzEwNjY2NzgyMGRmYTFmNTVjOGExMTUyZWUw MmVkMGM2MDdhYjk4NmU1MjA5ODU5Y2JiMzZiYWY5MGNhNjMyODVjMzEyOGZkY2ViMThlNTE0NWI5 ZDNlZmU2YmM3YjhiYWM3ODM3NjM3Y2U1NTUzZDYzNGIxM2ZhMzg4ODIwMTExMjI0OGJjMzFlMDc4 NWYyZGJhZTFhOGVhYTdmNGViYzBiMDBkMjEyNDJmMDNhY2Q0ZTRiMGY0YWQ1ZTliYjFlMjUzMDFh MzMxYTRiNTUzNWMxMjUzYjljY2M3ODAwY2IyZTgwNjAyZWM5ZWY4NTg4NjVhMzllMGJhMjgwMDZk YTkzZjljMjZjMWZiOWVlODI1OGRmY2Q3ZTc5ZjAyYWIwZDljMmRmOWFkZTMwOWZhNmM2MDRmY2Jl YjM4NjQxYjI5NjhmZjk2MzQ5YmNjMzQ5MjdjYzQ3OWMzMDE1MzEyNWY3YWQwNzA2OGU1YTRmZmFi YTkwM2QyNzQ4OGM5NGJmYjY5NGQ4Mjc3MjUxMDYxYTdkY2M1YjVmYmY0N2VhODgwNjVlYTFkZjAw N2NiZDRjMWJkYmMyZTM2MDlkNTNiZjk5YmYyYzdkZThlZjQ1N2ZkN2I4NTg4MjIxMGZiNTJjNTA5 MzQxNWRkMmIzNzA4NGI3NWY4M2QyYTA1YTY2OTg2NzE0M2ZkOTU3MDVmMjQxZmE3OTQ1MjZiYzY1 YzVmNjQyMjQxMGRhNDc4MzM0MDQ5N2JjNTQ4NTIxMjVlM2RhNTc5YmZhYmM5YmE5OGVjMzk4NDg3 NDQ0YjNkYTQ1NGY0MGQ4YjU5ZDM4NGNkZDM0NTRhZDc3ZjM4ZDRjZTY1N2QxMGI0NzA4ZGQ0ZWNi MGZjYzMyMzhhY2E1NzI1OGUwODJlOGNiODZkODAyYjk3MjIzODgyODRmMjMyODExZWMzNWI0OWVi YmExNTFkNWIwNzcxZmVlYjYxMjBkOGJlZThkNTVmYTljNGRlNDVkOGY5NTA3NTJiM2I5YzY1MjZm YzRmYThmZGQwMmM2NDVmYjA1M2NlZjgyOTM0MzcxMTFjODViMDdlOThiM2IzOGNjZDNkZTkzY2Q2 ZmQwOGZkZmI4YTNhOTRiNjE5ZjlhY2QyMjZiZTNiZDNmZjkwNmYxNGIxZGRhOTNjY2NhZTc4M2Mw NGVkNTQ1ZGI2ODViZjAKKworQ09VTlQgPSAzCitLID0gOWI1YzJlNGE5ZTUzZDNlNWY1NjcwYWYy NDQwNDM5ZGIKK1AgPSBjNGM3MjYxOTljYzI3YjgxYzkwZWU1OWYxZjQ0NDIwYWJhZDJhNGZlMGYy NDY0Nzk1MjExNmVjNDZmMzY0YTNkYWQxYjQ4YmE1YmM2YzQ4YzA1NmUzNDc2NGVkNGI0YTJkYTA0 ZTdlNDVmZjQ3N2RmODM2NGVlOWYxMTZjODJkY2ZmN2U5YWUyZGI2YTc3MjJmMjI2MWI2Y2VlMWVm N2NjNjY4MjAxODQ5ODhlMDAyODg2YTZiNjM2MjY0ZTc3MDQzODM1NDM4MTdlMTE5YmEzNTgyZDQy YWEwMGFhNzhkY2Y4NGQwYWM5MmZmNjlmMDkwNDZmODllN2I2MDgxNDM2OTlmOWZkYTM3YjA3ZDNl Mjk0OWU5MzViYmEyMzBlMGE0MmMyZDQxZDI4NTA0MmZlYWE0ODBiY2MxZWY4MjM2ZDYxNWY0NDkx MDdmYWQ5N2I1YmU1MTRhZTM5ZDU4NmI5OGVkNDVjYzM5Nzg0YzMwYTNhMjU2ZDYyMzM2MDAyYjFm N2Y2Y2VkYzNlNTQxOGQ2ZjQ0NGJhY2Q3NGQ3YmM4OWIzZWM2NWM1MjE5MWI0YTJmM2IzYzdiNjgy ZjI1NGU2ZTkwOWM1ZGNiYzExZDVkZWY1Njc5MmY1ZDIxODNlNWU3MTE5ZjI2OGIwMzk1ZTdmNGYy NWI4NTc0YmM5MjFkYTg0MTlhZjMwMTEzYmQzNWIxMWMyMWRlYmI5NzlmYjY5ODc1MjI2NDU5NTc3 N2JlNzY2NTQxOTA1MmNmMzI2NTExN2JjZTk2YjYxZjI3ZGE0MDcyZjgyOGJkOTMxNWVmMjVhOWFi OWViNGY1MzE5OTA3Y2RiY2U2MTA0MDU0Yzg1NjNhOTk3Y2Y0Nzc1MjM0NzhlNmQyMzUyN2Y5MTk5 N2RkNDNlYmFmNjI5MDAzNTMwZGU0Yjg0MDZiZGJmYWU0OWMwZDk3OTIwYjc0NWM3OGE2NjVjNDM4 ZmYwNjRkMjQ4MDMzODJmNzlmY2MyZTI0MjY1YWRhZjcwNzM5NGI4MzI2ODVkZWYxMjViNjliMTc4 NzcxOWFhZjkyZTUxODY0NWFjMjJkZDk0ZDBkY2IwM2YwNTJjODc5NTQ4NTRkMTc3ZTJjYWE2YWI1 ZDljZjNkYzRlZDRjZWNhOTBkMmZhMGIyMzVlZmQxYjdkMTdiYTk3NTg5ODdkMTI3YjExMjA0MDQ3 ZjIyZTc1MTU4NzIwZmVlYzU0OWYyOWI2N2E4MTU4ZTU3NzMyNWUxNzhkNmI3NTc3NzBkNTZhMzBi ODVkMTJhYjVmYjE2NGEwN2E1ZjYxM2I1M2QwNzVjNDRjZDNjMWUzYTMxMTUxNWFlZWQyNDI3Zjcw YjNiYzAxOGRkNzk2CitDID0gMDk1NDBkYmJlOTdlOTgzYTM0MjBlYzFlZjdkMTE5NWY5Y2QzMmFj YzkzZTlmMzFkMDdlNjhkZDlkOTYzZjMyYmIyMzU2NWEzN2Q5N2U4NTdlNWU0MGVhZTI3OTQ2ZWY4 M2E0ZGExMGVjMjllYTAwMWZiZTg5MjEzM2E0ODE0YjA0YWEzZWJhYmZhMjk1YTE5NDI5YzdlNmIy NjMyOTNkMDdhNDhmNWIyYmVlYTI5MzBhYWJlNjI2OGFlYzAwYThmYmNmOWY0ODY1ZDQ2NTg5MDU0 MTNhMGYxN2JiMDhiYmM2NDY2ZjhkM2UxNzQ0ZDlmZmU2MTMyZjk0Y2U3OWJlYzRmZmVhMDU3ODU1 MjVlYjVlMDcxZWNmMzAwODEyODFkZjU4ZjFiNTI5NTg0Mjk2N2E0ODZlZTI2MmE3YzM2Njk3ODE0 MGJjYjg1NjJhYmYxYTQxN2M3YjFmZmUwN2IxNzQ4OTc4NDA4Y2ZhZTRiZWVjODI5MGIzMTJmMTVk MzIyM2ZhNzQ0N2Y1YTg5ZTUyZGRmZGM0Zjc5Y2YxZDlmZTRlY2FkM2U2NzRlOTgxMzZjNDU3ZTM2 NzQ4ZGEwMDE5NzBjY2VlZDBjNjFkMmVhNWY5ZWU1Zjk2NjBhZDU2MWI5ZmI4MDhiZTNkNDQ1NWZl NzZhZTk3NzhhNDk1MjZjODQ2MWY5OWRjMmMyNzFmZjlhYTM4OWQzZTZhNTQ2YTgyZDE1OTY3YTgy ZThlYzliNjRjZGYyNWZiNzNhZmNjZDdjYzJmZGU4ZDA3ZWY0YTEzNDU5NzY5NzA5OTdmYWNkNWJl MTY1NjZjNzc2MWQyM2Y0YTMxOTA5YTVhMzFiY2UzNWUzMzU5NmE4NjFlNDI2ZmI1NmQ5ZWExM2U1 ZjYyMTlhY2VkYTI0NTA0MzRlMDRjNDU0ZWM4NTY5ZWY5MDc2ODU2Y2I0OGYzNjYxOGU2OTBhNzEw ZGZlODcxNzUyNjAwMWMzYmU3ZWNjYjY3MWRiYjQ0MzAyODk5MjRhZTk3NWEzMGI2ZmM3MDc5Zjhj OWNiYzhhMjY4ZjVkZWZjMDNkOTRkNWJhZTA0NzQ5ODdiN2ViZDRjOWUyOWVlYzkwODBlOGQ4NTc3 NmM1NzAwODlmY2QyMzUzNzI1MThkYzM4ZTQ4MWY4YTVlZGMyMTA1YmI0MTkxY2Q4MWExOWU1MWM2 MDI1MmExOGIzMDU4YWMxZmY5MzY4YWY1OWEyY2FmODJhMDYzNTc3NjRmYjM3MjEyODdiZDI4MjA0 ZDc3ZGMyZWFkYjA5MTNjYWJmZjdjZDYzYzczNDg4ZTkyYzgxODM0MTU2MzQ3NmU2OWE1MGZiYjc4 MWYxNTFlMDJmMmRmNGE5ZmUwNWM4NDE5YTMzOTNkNjcKKworQ09VTlQgPSA0CitLID0gZjI3MTMy NzNhZDViN2FkZDEwZDJiOGQ4YjYxZDJmNjgKK1AgPSAxYzE4OWQ2ZDM0YjU3YzY5OWRkOGM3OWUz MDQ1N2M2NzM1ZjM2OTdhYTY4MjVlMTQyNTc5MDZlMTg0MTM1ODA3MjdkNjc2YjZlNjY3Y2Q1OGUw YTQ3YjczOGFiZmQ5MTE0NDk1Mjk0MGRlNjBiMTYxYjBkZDI2MWQ2OGFmMTI1NzM4MjBmNGYxNzJi MzJkN2MwMzJlZDdkYjM3MTVmYzZjZWI5MmVjMmQ2MTRhMjAwNWVhMWFlZDE0Y2M1MDE1ZGUxNDNh YWY2ZGMyZGI0MDZlMGZkMzE5NzY1NjIyNTBlODBlYjc5MTQwYmZjOGQxNGZjNzliZWE0MTU5ZDY2 ZTEwMTM3MDRiNDc0YjBiMTM3NzIyMDc0MWRjNTVjZWNkZTBlZWQ0ZTA5MzFlNTgwMjVlN2ZiNjcy MTE3YTgyODg1ODdjYzkxYjFhNDFmYjRkMWU5ZTRhN2ZmNTlmZGI4MTRkYmQ5NTIxZGMxNDhhYmZl MTZhYjYyZmE0NWEzZGMzNjFjZmZiNDIyNDgyZjRmZDkzNDY2MzIwYTExZDlhNTQzODk1OTk0N2Jh NTFkNzc2MWIyYTNiYjllMGI4NDNlYTZhNzFjYmE1NGE5NmJkMTRkZTgzNjBhYzhmMTZlY2U3NzNk N2JmYjI1ZGY2M2MxYWE2N2E3YmNiNTg3ZjYxOGYyNDI1YmY5YWEwMThlYmE1YWViYzI5MTFiOWZi NjI3NmU0OGQ3MmRjNzQ4MzZhMjkwZmFkMGY1YzU0NTkzNGYxMjMxZWQ1N2M2OTQ0YTQ2NDkwNWZi MDg2ODVlODE1ZWNkZGM4ZGJlNGVlZWMxMzU1ZjQxNGZkMmNlOTc1YzBkYmUyOWJmNDM2OWUwNWMx NTgyY2ZkOWE3ZGRiNzY1OTI0N2EwZjZkYjM4YmExNjVmMWY0NmE0NzI3NjBiY2QyNjA5ZmZjOGJm ZjQ5YzZmNTQ2OTgwNjNmYTgxMzA1Njk2ZjdjZTI1Yzk1YjIzN2M2YTRmZWNiM2U0ODE2NzA2MGY1 NTYzNTk2MDliNzNlNzM4YzVjMzAyMWQwZTViYzYyZWQzMWEyYTI3ZjQzZGM0MTdjMDA0MWY4YTI0 MDJmYTdiZjc2YzcyZTJiMjkwYzA2MGVmZDkzZWY2NWQwYTg5MzMxNGIwM2MwOThhNjY3NGQwMTM3 ZjEyZWJhM2ViYjYzYjNlNjVmZDBhYWM4OTg0N2JmOTU3M2Q5ZWZmMGIxMjgzODQzYmQ0ZWRkNmQ0 NTlkZTZkNTU5ZTQ4NjMzZDk2NGRjY2Q4YjlmYjUxNDI1OTY0MzBiMjM3M2Y5NDQ4NjA2ZjkyODYx NTdlODEwZGQwZjZhNzI4NDNiMGNiMjhhYjQ1MmQ3CitDID0gZGJlZWRmZTlhZWRlMDQ3YTA3NDAy ZDIzYjFiMzQ5YTNlNzU0OTBkM2M0MDQyNDBjODcyNDcwYWE0ZjZiNWExNzIzYjZhMGU0NTVhODk2 MWZkMjVmODhhOTMyOWI0ZmRjN2Q4ZTZiYjJiM2Q3NDAzYmQ2NTQxOGY5NGI5MzM0NjdkODgyYzFh YWNhNzAyYTQ3ZTdiZjQ0OTE2Y2U1ZWVkMDY0NzI1MGQ1NzI2ODZjOGE4YzlmOTQzN2YyY2ViMTNi MzYxYWVmOTI5ZDQyOGMzNWNkNGNmMWQ4OTcwZDk4ZTc1YzQ2YjQ4MjVjODcxMDAzZWNlYWMyNDEy YWRiNjY4MWYwYjhhMWQ2ZDZiZDdlYjQxYzZlNThlYmU2OTA5YWIwNjFkNWU4MzJmNzU4MGRjZTg5 ZWNjYjRlYTI1NDYyMDRlODk1Y2NiNTQ0MjlmZTM4OGIwZDkxNzM5MjJlMDg2MjVkNDNmMGExMDc0 M2FkNzYyMzBmYTQ1OGIwOTcxMDI4YjE4ZTBmMDRmM2MxMDQ5MDEyYThiYmMyZjkzOTM0ZTBiNTFi OTQzZWZkMmZhNGExNGZkYjc5NWExZjIxMzAyNTI5NjUzNTgzZWRjZmEzYzYxM2FkYTJiZjY5YTkz ZTVhMjlhMjBhNmY5ZDlkZjc4OTFlM2I0MzhiZTRmOWY3MTQ4MDZjZDU3YWZjYWJjMGQ1ZjU3NTNh ZjgwNGQ4ODVjYTFhZTIzYmI1ZmQyNTkzZmEzNjFlOTJlN2QxMmVlYTA4MDU0NTMwNTYwMjIyNTY0 MTAzNjlkYWIwZTJlOGQyZDRjOWZmZGExZDdkZjhiYTVlZTE5YzViZjYyMTMzZDFjYTlhNzEzZmE0 NTE1N2QzMjdiYzRlMWQ4ZTdhMTA1MDEyMDM2OTM5YTVkNWFlMTVhNWZlOGVmOTg5YzgzMjMxMjli OGI0ZTQzNDAyYmI0ZjYwZjM1NDgzNjg1ODkzZTllYTBiMGRjNGE4MjM4MTQ4ZDAyMjBjZDliZGQ3 ZGM0MjU5MGNjMzAzZjcwNmNkODFjYzVmNmNlNzYxZmZkYzU3MGM2MmNmNzM0Y2ZmZmUwZWM3YmUx N2M3YWUzYWIzNGM2NWYxYTUzMjY3YjAzZGU0ZGEzYTVmOTIxY2YwMWIwNjhjNDA5OGM3NTk0YTMw NTFiYjAzOTQwY2I2YzViYWMyYWEwNGY5NWJkMzBiZDE1Y2NjOWVkYjhlMjkwOTEwNDdkZTAxMWVl OTU5MWNjNGM4MzI0NDc1MGRjZWI4YzJlZWRkYTc5Nzk2NWMxMjQzNTIxYzE5MjI4ZWIyZDc5OTc3 NWRkODNjZWFiNWFhZTA4MmNmYTc0M2Q1ODU0NGI2MWI3MTA0ZjNkMTBmNjMyOTk0YTQKKworQ09V TlQgPSA1CitLID0gODk2N2M4MDU4NzQyMTY5YWIzOWQyZDUyODEzMGRmODAKK1AgPSBjYmU3YWM2 YzIzMmIzMjdmN2Q5MTU0YWNmMzM0ODkxMzk4ZmEwYTFlYTY0YTRmMTUyNDNmNDg4ZWNjNzg0NzQ5 ZmVjNDFmYWI3YTQ0N2UyYTJjYzc1YTQ0ZmI1NDhhNDZhNDZlNTFmNGMyNDVmNjQ5MDFmM2FjYmYx OGY0NjhhMjgzNjdjNTEwNjBjMzQ3NjJjOGE4ODc4MDA0NDc2MTU3OTg0NjU1N2YyODVjOTdiY2I5 Yzk2NmFhMDhkNGNmMzUyYzI2ZDhhMmYzMDg4MDMzOTMxNTU0MzdiOTE3NzZlZTc0OTQxZGE5ZGIz OWVmNjRkOWFjOTI2MWYyYzdmYjYzNDllNTIxMTFhN2MxNDZkNWE0ZWY2ZDVkMDA3MTdhYzkzMzM4 ZmVhNWZmMGM5MGNkZWZlMGQ2NmIwMzkwNDUzMzA4NzdkODU5NmRlNGMzNTk4N2NlNzBmNjYwYWE4 Nzc3Mjc2ZWVkMWIxMjgwMDJkZmZkOTBjZTAzMjI0ZDUwNTk1MGViMmM3M2Y1ZTk1OGRmOTJlZTFj ZDhkZWU2NjdiYmI4Y2M3MWY4N2U0Y2U4ODA1ODVmMDA0MTYwYzc5OGZmMmNjMTk1YjA5OTIxYzcz OTUxMzMyYmQ0Mzc4NDBiYmFkY2QxMDczMDI3MmQ0NmIzZjIzOTYzYTdjMDM5NjI3NTQwN2JiODA0 MWE2ZTVjZWVkNGQxZGMyYTY1YTcwZDQ4NDM2NjBjYzAzOWNlOTRhNGNlOTY1NzM4MTFkMmI4YmUw MGU5MWRlYzc0ODY0ODRjY2IwNTBkZmQ2ZTMxOTAwMWJhOGI4ZmVmNDhiMDNkMTc5MDJjYjkxNzky ZGM0MjBjNzllODIzNjE2Y2M3OWFmNGU3MzhkYzA3NzUxOTAxNWM3MzRjMWJlMDE1MDkyMTY1N2Yz MTM5ZTU5YmE0YWQ4ZTc1ZTBmN2I1MTgwNmE5NmI3MjQ5NzA5ZmFhYzNjZGNkNTNiZmVkOGYwMzI2 ZDE5MDAwZWJjMWFlMDVhNDNlOTZjMWZhMDJmMmNmYWRlZmFmODcxMjUwYWZmNmVhZGU4Y2U4ZDRi OGQ1YTY4NmQ1NTNlOGE2NmQ5NjQxMmYyZjE4OWZiNzI0ZTY3YzhhY2RiMjI5NTAxNDE0ZTQ1YzQz MGE5NTMzZDIxMWEyMTdlYWUwMDMwZmYxMGRiMTJhMzk5NTY3ZTk0YzkwMGNlODM5MTU3ZWJlZTFm NGY4NzY2NzU3OTRjYjM2NDJhY2U1NWZiZGIyNjFmMTM2OTgwN2YyODRmNGU2ZjhhMmM4MzMwZWVk ODhlMThiOGZmNTY0ZmI3NTRiOTZmOGM4NWQyOGRjN2EwYjE4ODA1ZWNjM2RkZmZjCitDID0gZDI5 ZWIwYmM1NGM0MzA4MTAzMGEzZTExNjlmMjQzZWFjNzNmMWQwZmIyYjJmOTgzZmIyNTc1NTY4NGRm NDMzMWExOTMyYjAyZTIzNzUwMmMxYjczYThkNzQ0NjE5ZjUyMTQ1N2I3MmZjZDc0MDE5NzNlYzQ4 ZWU5MTUwNTRlNWUxMjU3N2VmMTIxMmQwZTY0MmM5ZGM3MzQxY2RhZmZkMzQ0ZGM0ODBlYWY5ZjI5 MDE5MzU1YjA3ZGUyZjA1ODk3Y2I5MWIwMGI0YzUzNzE0NjA5ZGVhNjlmMThjN2M5MzQyOWI3MzM3 MzMxMWUwYzRhNDVlMmYyYjNhNmJkMzkzYjY5ZjkwYTQxMjVlYjYzNWE3OTQ1NjNhNjhlMDkyY2M2 NjczMGQyMzY5MDljY2U2NTg1ZDM0ZjQ3YTEwYzI5NjhmMTYxZWQ3OWMxNmMxOGE2YzA5M2MxZmM0 NTVlYjUwMjc3MGVlNDM2ZGQ0OGMwOTFhNGNlZmVhZjQ0OWM1YjI3ZjJmZDJmOTE1MGE2MDFiY2Nm OGEzN2NkYTY1YjI1OTE3NzI4Y2UzZjFmMTJmNTVhNTFkOTExMGMxNjEzMmJkZTEwMGI2NDc5ZWI4 YTFhZTY3MGE5Y2EzOTZmMThhMmZmMTlmYjU1NDNkYmQzYjE4OWU1MWJhNWYxMjUxNjEyOTA3MWM5 OTcwNDRkZjc0N2Y0ZWQ3MDYxNmU3ODRiZmI5NDhhNjMyMTFiMjI0ZGZkZmM1YjkxMTZiODY5ZmM1 MzEzYzc2MWQ1NWM3NTlhNmUyNzVlOWFjNTNlODNhNTM4NmUyY2ZhNTBmNmMxYjU0MWNmNzUyZGE4 MDBmZjk5MWZmODk2Yjc5YjllNjkxZDY3ZTk2ZmZmZDE2NmEwNmYwYzMwMGI3ZDliYjU1MmY1ZWM3 ZGY2ZWVhMzg0NzUxNjMyZWQ5MzU3ZGY1YTVhOWZkYTkzMTU2ODkzMGZlZGIwNTM2ZjU0OTFkNDA2 N2EzOTUxZGM3MjkwM2QxY2EyZjVmMWI3MTNlMjRjY2U1MzQ3YjA1NmUyZjg4MjlkMzQxNDMwMzJm NTNlZGI4MWE3NjVkMmFiM2U2Y2JlMTI1MzZjZDg1YWMzMjMwZmVhNTQ2ZWU1MGQ5OTFlMTNjNTYy YmVhM2Q2OTRkMzk5MGIxNzgzYTM3M2E1OWZlMTJjZmRiNzRmYTAyNzVlMzY3ZDc2YmRlZjY5OGRk MzNjMzBhZmFkYmJmMGZlMGRkN2RkZjI4OGFlYzdhMzk3ZTI2M2E1ZDUzN2RmOWY2MDZmNWMxMjY1 NjVjMDZlZDVlMGJkNjc1M2QzZWFmNTAwMmI0NzJhMWQ3ZjRkN2RmN2Q5YThmZThhYTJjNTk1ZWNl ZjhjZmIzZGEzZTcKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2NyeXB0by9LV1BfQUVfMjU2LnR4dCBi L3NyYy90ZXN0L2NyeXB0by9LV1BfQUVfMjU2LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwLi42NmQ4NTIzOTg3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvY3J5 cHRvL0tXUF9BRV8yNTYudHh0CkBAIC0wLDAgKzEsMzUgQEAKKyMgQ0FWUyAyMS40CisjICdOSVNU IFNQIDgwMC0zOEYgS1dQLUFFIHdpdGggQUVTLTI1NiBjaXBoZXIgZnVuY3Rpb24nIGluZm9ybWF0 aW9uIGZvciB0ZXN0LWZpbGVzCisjIFNlZWQgPSA2ZWIwNDY5NWZkNWRjMmIwMDM4YWZmMjIxYjIy NWMzMDJmYzljZGUzZDZkYmY0MTk1ZDlkNGQyNzU2YzgzMDM5MDYzMzVlMDc2NzlmZWU5YTgwZTVk MGQxNTgwZjdjZGFiOGYwZmRkNzhjMGZhNThmMzRhZmNjZGNiYTQ4MjBhNQorIyBHZW5lcmF0ZWQg b24gRnJpIEFwciAgNiAxNDo0NjoyMyAyMDE4CitbUExBSU5URVhUIExFTkdUSCA9IDQwOTZdCisK K0NPVU5UID0gMAorSyA9IDIwZjMxY2RlZDYwYjhlZDhkOWQzZmQxZTFmYTYyNDRlNzZjN2NiNzYy OGJmZDI4YTVkNjNjZThhYTJjOTQ5NGQKK1AgPSBmMDcyMjUyMDI4NDJjOGRlZGU0MjIxNTMwMWU0 NGI5YmI3ZTYyNWQzODEyZjc0ZjliNmRkYmNkMDI0ZWJkMWYzM2UyY2JmMjgwYjkwMDQ5NDFmM2Ni Zjg2Yzg4MGEyMzU3Zjg4ZjkyYTZkY2Y4ZGFkOWRhN2RkZGNkMDBmMzYzNWVmZGZmMGFmNDM4MjAy NGU5M2MyYWY2NmI5OTFlNTY1ZWFjY2E2Yjg4NmYwNzE3OGM5YjRhZGFkNmYwZDZhZGE1ZmY2YWE3 Y2QwNzEyNTE5YTk0N2E4MDg5Y2VhNWUxZTNlNDBmZmUxODA2MDEwYjAxNDlmOWZmYzdjNGRkM2Mz MWIzZDA4ZDVhZTE5OTdjNTIzNjkzOTNkNTg2MTFkZmY5YmVjNTAxYzFhYjM1ZTZlZDNlN2Y5NDQ1 YTM0ZTIxMTAxMGE4MjM2Njg2ZjE1NGUwYTVhZTM0MzNkNmE4NDRlYjM4ODQ5NjFhYTY1OTIyMTZk OTM5NTJiNDZiYjU4YTQxOTVhYTgwOTY2YWQwY2NkNGE3ZTIzODIzOTEyNTU2YTkwZDVlZTljM2Ji OTUyZWNiYjlkODk1ZGFiZDNiMTFhYjRmMmUzYTZjMjU4MmRlNTA0MDMyODkyMzBlZjRkYzQ2ZTdj MGQ4NzBhM2YwY2JhOWQ2NDNhMDM0OTUwM2MxYjE2MmRkYjYzNTBlNjk5NTg5ZWI0N2JkNTYzOTk5 ZjU1YTFhZGI2Yjc4YjUyZjAwNjkwMWIwNDI3ZWE3ZDMzOTRiYjBhZGFlNDYzN2I0ZjFhZDVkNTQy NWUyYzhmZjMwODM1MDZkN2FkN2JhNGM3NDA1YTc3OGIwYTNhMTE3NjBjOTY5MDBhNTI1Njk1NmNj OTcxMDA5MWQwNzNhMTlmNDZhOTg1ZDAwNDY1MWZlMmI2NDQ4ZWQ3NjFiZjliYzgxNjE5Y2YyNzNh Njc4M2Q4NjhkMDkwNzUzYmYwMTMxOGJlMjFhZmQ4OGQ5ZjNhOTYxYTY5ZjkzZTlkOWZiODIyYzgw YWNjN2I0OGNmMTRhMDhiNWI3ZWYxNWM2Njk3NTcyMWI3Y2RlOTc2MWExNDViNjc5MTU1NDcyYTQ0 ZGVhOGZlZGMwZjg2YWU3ZWJmNjI4M2VjZmRlNWYyNDQ0YjUxNTY5ZTY3MjNhN2ExOWUyOGNkZjhk ZWM2NzkxY2NjMTRhZjk1YWJhZDAxOGY3NDE1NzViMzQzY2IxYTIwYTJhOWFkZjQyNDhmOTk3Mjgw NjlhMWUyZTc4YWQ4OTY2YzQxYzk5MThmYjcwMTllZjU2YzE1M2ExODNhNjI0N2QyMmQ5OTU2NTY0 YmIwMzA3NWNiZmQxYjQzZDk2ODE4YjI4NDg0CitDID0gYTViNjM2MThmYzBjNDUxMjk2MGYwMGEx ZjIyNmQ5ODM3YTkwNDgwYmFlYTc1MjY1NDUzYjk1NTNiMTJhNThjNzIxNTMwODA4NDJkN2Y4NzEw ZjMxN2Y4OGZiYmJmOTdjYWY4NzlhYjRiZjQxNmJhNzY3ZWU5YWViMzQzNTdmNGEyZDBlOGI5NTcx MDU0ZDk4ZTI4ODA0YTcwYmM0ZDc0ODA3ZjJiZmQ5NWVlOTU1YmZkYmI2ZjRkNjk2OWEwYzNjM2I1 NDFhNTE0NjQ3ZDVjZDhjOTc0MGFjMzQ5NjA5NWMzZjE0NWM1MGM5N2VjOThiOTM1MTU4ZmJkZjg5 NzA1ZDUzMzAwMTVlNDhlY2U4OTE4OGI4YzFiY2IyYWQ2ODI1ZDg2NWIzNzVhOWI5MDU2Yjc0M2Rh YzcyMGZlZWFjMDMzYzlmNzU3ZjZmZTczZGQ3YzRhNzQ3NjYxYjY0Y2Y0OTBhMGRkNDNiNTQ3Y2Q3 OTFhNWQ3OGRhYzk3ZWZjZDM1NWY3ZWJhYzI0OGZhMmEzM2U0ZmFkNjQwZGMzNGUwZDQwYjBkMzY1 ODhhYTMyZjA4NjRjOTQ0NjczOWE2YjQ0ZmY4NDY2NmQ3MjNiZDdkNjQ2YzUxNzJjZGE5MzJmZWMz NGRkYWFiYTM0MmIwMmE5NjA0MDg3ZWYwNDJhMmJlNDc3NDE5NGI1ZDMyY2IzZmIxMTI0MzhmYmYy ODAxMDUwYjU0MjQ2MzVmYTJkM2QzZmIxMDMzMjk2NWM3M2U2NjY5ZTY1MTk1MzEwYTNhMzA2MDI2 NDBlOTgwOTE3OWNkZmM1MGRlNTg1YWExYzAwNzI0MjNjNjI2ODE1ZDI4MWEwNmVhYzNiNmZmYTEz NzcxNjMxOGUyODhlM2Y5OTcwZTQxNWVmMDQ1MWJkYzU1Nzk2OGZlYmY5ZWI2NzcyYzFmNzdjYjhl OTU3MDEyNDZkOWM1NjcwNDgxNDJiYjI1ZTM0MDM1MWI4N2Q3MzkxODIyZDllZTdmZTUxMzc4YmMw ZDA4MTM1ZjlmMzljZjQ0YjM0OGI4NzkzNzkzOWRjNjFmNDMwZGZlMzA4Y2FkYTYzMjcyMmUyM2Fl ZDVhMDY5OWUwMzljZjA1NjNhYjgwMjUxNjM3NDRiMTM2YTEzY2UzYzYyYzc0OGM4OWY1ZTE3NTQw ZjEwNWU3YzZlYzliYTEzNTE1YjUwNDM0MmY5ZTZkYzdkNjViOWE2MzNkOGMwYjVjOWZhODU4ZGJi OWIzYTU5NDQwNmQ0NzhhODFiYjlhYmZhMjg5NzMwNDA4YzFlMzAzYzY2M2E2MWQ1Y2FjYTAwZjYx NTA2NTMxMjU4MDA0Mjg2MjM5N2I5YWE4YzgwY2E4MTI4ODc2NjRjNDM5YzhjNjgKKworQ09VTlQg PSAxCitLID0gODVjOGFhNmQ5YzgzY2JjYjExNTUwYzk1Y2I5ZmE5OTFkNDlkYzg5ZmJlMjUzMWUx MDY5NDI2OWYzOGU5YTMwOQorUCA9IDU4ZmZkOWU3M2I1ZjY0Y2I5NTFiN2RmNzk5YTUwNWQ4NDJl ZjBjY2E2ZDRiMjEwMjc2ODA3OTM1NjVhNjdkNDdkYjBiYzg3MmE3NjQwNjkxMjE2YzA0NGZiZmMw YmUxY2QzM2ZmZTlmYzczYzVhZDhjZjM4YmNmZTZkNGI3Yjc2NjM5ZWY0MjAwY2VkMGVmZjJkMzYx ZTljOTQ4MDc1ZjA5Mzk4ZmJlNWVmMjRkMzcwYTVhMTZiNTE1YzEwMmQ0MTU4MTNjYmNlNTZmNmE4 ZjdiNTIyN2RiN2FhYjMzYzRkODE2MmFjM2MxNzhlMjM0NGYzYzdlMTIzZjBlNjAxNDIxMTJiOTYw MTM3YzAxNzZjNDUwMjQ4MTY3ZTk3MTRkYjg1NjZlMmQ0YWY3MzFhN2VmM2Y4ODczMGE0YmU0Y2I5 OWJmNDZlYmEzOTUyN2ZmMjc5YmU2N2FlZTFmNGFmMjViMzM5NmFlZjU4ODNmZTcwODZmZWQ3Mjg1 YWY1MjE2Yzc5NDVkOWJkNjFkOTA3YTg0MDk1ZDZmYWQzODNhN2E5MGFkNDA2MWY3MjQxYTg0MzU4 Y2Y5ZmJjNzA0OGMwMTBjNzY1MmJmNDdmOWZmNThmMWMwY2ZkNjJhNWZlZjkyYjAyMDc0ZWNiZjQ3 NjJhZjcxZWVkYTlhZWI4NDk3ZDdiMzNiZWViNGZkYmQ4MGI3MmYyYzZkYzlhMTI0MDljZjdlZTM3 MTZmYzA3NTE1OTcwNDExZWQ3ZTExM2I3YWQ5ODY1ZDgyMmE1MDI5NzZiYmExZDJlZjI1NGRkYTRh Y2RmNmY1NWEwNGM0YWM1ZjZhNWUwMTEzNzVhZjRjZmQ0MDVkMTIyMGExMDQ2NWE0Y2QwMWQxNjBk MTc5ZmM3Y2U2MTRlZjQwMjNkNTVkYWQzNjNlMzYzOWYxZWI4ZmVjNzE2ZjIxZDI2N2NhMjFiMDU4 NzE4NmQxNjJiNGEzY2QyM2Y4MGUzM2NhMzMwYThjM2JkNzU2ZTcwYzJkNDU3MzA2Y2Q1NGJlOWUw NDMzYmQ5NDE2ZWZkODYxZWQ0MmZjZGUxMGNjYzk4Mzg5NjUyYjVjMTRjZmY2YzczMzQxMzIwYzkz ZWU0NTdmOWUzZjMyMGM1YzU1NjRmZTUwZWVlY2YyZDdhNjJhODU2MzlkZGFjNGFiZGFkNzQ5NWU4 OTI2MTExYjE4Zjc4NjZlNmIzZjk1Yzc4OGQ5MTI0YWI5Nzg4MjEwYjFlMjU1MjQ0MjdlODYwNDk3 MjYyMDAwNTI0MDRkOWIzNTg1NDc3YmZjMTFmMTJjNGZhNzYxZWQ4NmI3NDQ5YTU0NzFjZTE4Zjk2 NGFjZWU5MTM5NDZjMDk5Nzk4MGYKK0MgPSBkNDExMmFmMjZmMzdhN2UyZTljZGMwZmQ0NjBjZjRj ZjRmMzk4NWZjODIwMzQ4ZTYzYTA5NTc1MWNlMzBiMmZhNWQ2ZTg5YThkMzdiOGRkZDNkYzJhZjhm YTY0ZTBkYjcyOWY1MjZiYWI4OTU2MmFkN2YyYmJiOWJhMDI2NjgwMzNlYmY2ZWI3NDI5MDRmMzdm YmYxZDg3YjRkMjNiMWRmYzgxNTUyOWE2ZTNmMjRiYjMxYmExZDQzNTQ4MjBhNDdlMGQ3YjBhY2I0 ZTQ5NWE1MDkxMjgyNDcxNWQyNGNkZWFiMGJlMzU5N2RjNTM1MzI2ZWUwNzNlYjM5YjkyNWM3Njk5 MTE1ZGZkZmZkNDE2MmI4NGFmYzYxMDQ4Yzc4MDJhNzZkZGFmZWMyNDNiOTE3OTFhMjYxMzhmMjAy YmYzNjVhMGIwODYzNTU1ZDQ4Yzk1M2M1MGNjZTVlMDlmZWRlNGE5NzU3MWQzZWJmMDU4MmM1N2Mz OTY4MDcxNDc1MGZkMjIyN2E2MzIyNzRhZGVjZThhNGJkMTM0MTM4MjViNTE5NjliM2U5NjVhZDQx N2M5NjQxNWY0MDQxZDhmMGQwYTNkZjA0Y2JiMjRmY2ZiZWI5NWI0MDFiZTdlYTg0MGRhNDM2MDZj ZDViZDU2YmZkZTI2MDM0ZmU5NGFhZGM3OGJlZGZhYTRlZWQ3N2U2NGNkYzNkMDU5ZTM3NjVmZjYz NDZlOTM0NGYwZTBhMTgzMDg1ZDc4NzExYjEzZDRkZGMzNTZhNjY5NjkzZDJhZDA5MGJiNjdlODAx MzQwM2M1MWM4MTk1MWY4YTYyNDEyNjlkMzQyM2E3MzliNDQyMTViZmE0MDNmODkyN2ZjMWQxMDA1 ODdkNjAyYTdlZmM1MDVmMjhlZGZlNTFhZThkZjQwNzM2MWZhMDZjMDlkMDZjN2U5NjBjYjdiNzA0 MWYzNjAzZmFhNmI0NzY3YThhM2MzZDFjOGFiMDVmNzUxNDNhMzA2MTM5NmM3Mjg5NTAzZWMyOTIz N2VlYTdhMzY0ZWVkYjc3ZjY2ZGEzMDhmZThlMTk0YzliMTc4NDM2NDA3MmRiY2M4YWExMTQ1ZGIx YTAzZjM4NjJjMzhjYzFhMDhiNTY5Zjg1NzY2MjM5MTVhNjQ0NzAwYWI0M2Y3ZWZmN2U1OTY4NGVl YTU1OTVjMzFiMTM3Nzg4MjQ3MDRiNGFhYTljMWI1ZDJhY2M0YTZjZDJhZTIxYzViMGIzMmJjMTQz M2Q1MzZlOGJkN2E0ZTZjNWU2ZDFjZWI3MGRjZDJhYzIxNWJkNDYxOWFhMWVhOGMxODQwMzNiMzI3 OWNjOWZkMDk0MzM2YzVlNmY1MTEyYmQ5ZjM2ZmJlYmYzMDRhYjA0ZgorCitDT1VOVCA9IDIKK0sg PSA1MzA5YzVkZmY4ZmIwM2IwMDdjMjhiZGEwYTIxOWQzMjkwODAxMjBiNDMwZjRiNWFmOWRmNjBl YmJlMjA4OTBjCitQID0gMjJiNzVmYTQwMmFhNWI2NjVhYTcxZGIwZTI0ZTc2YTY3OTYzMjlmZWE5 MTI4ZGZmYmJlMDM3NjRlMjNkMzI0NDNjYWRmYmI2ZDU1N2U4MzNmODQxZWNmNWNjN2M5MjAwZGU4 MWIyYzU4ZmM3MmExYTk0NTFjZTUxYzc1YWJkZTY1MDRiNzg2OGQxODY0YTU4MjRkNmVmNWRiZDU3 YzgwZTQ4OGEwMTExMDJmN2EzMjE2MzlmYTU3YzQwYTVlYjg0NzljYmJjNzQyOGJiNTQ5N2RkNjI5 NWUyNzBiNTNiMDBlYWZmMTdjMmFhYzE5OWE2MzdlMmJhYWJjZTljM2Y1YWY4ZDhjNDY5OGVlYTUz OTBkN2JkYWE5MmRkZjgxOTAzNjFhMjQ1MmRmMmY0NDIyMGI5MjUxOTQ0OTYwNTA2OTY2MWUwMzYw Y2ZlZjY4NDFiNzM0YzhiZGFjODdmZWVhYzI0MzY5M2E0ZTExNDk5NWUxOTg1ZDVjOTNlNTEyZDBm MmZhMjdmMTJkYjg4MDNlMGFhZmQ5NzRkOTY4Y2ZiODJjZDlmMGQ0YjA5ZjM0YTQ0MGNmZjg1ZTA5 YTYzNDYyZmU5ODIwZDVmMWJhNmJjNmE0ODlmMzBlZDU3MGU0NGMwNjY2OGI2YTRkM2I5NzdhNmI3 ZmRmZjNlNzgxZjBiMmM3YTEzNjExMDhlYjk1ZjU2OWMzYWM1ZGZiMTM1MmNmZTA5NjVkOWJlYTcw ZjkyM2Q5ZjY1Y2NjZmE4M2E5MjcyOTQ3YjM1NjNmODFjOTJmN2Y1Y2FmZjIwMzEzN2IwMzRhZjgy ODQ3ZGUwNjUzYmZlZTAxYWVhNDc2YzkxMTIyNjdmOTc1MDdiNjk0OWRkMWQwZDc1MTBmYTI4MDQz MjE1OWEwYjNiZDY3YThlNjI4ZWYxMTU5OWJlNDQ1OTIzODE2MTkxNDUyMGI1NTZmZDVkOTFlOTIz NDkxNjliZDJlYzE3NWE5ZTcyOGNhNzhiNTZlYjJiYWNkNTZmZDJhZjI2OTZkMWIxMTZmNTc3NmU5 ZGY0NTljMTAyMzE4MGExOGY1ZDZlMzcxOGFjNDAyYmIwZmRiODA2Y2Q3YjFjZGE2ZmMxMDdlNjM1 ZjZhNzU2MDA1ZGY3OWI3MjBmM2YyNzRkZWZmYjMxNTUyY2YyMzhlYzkzMTgyMzcwZDBlYmU5ZjBi ODE5ZTJlNzIyNWJjMmI3N2U3MDJkNWRmMjgyNWZlNWQ0MjAwNWYxZTM5ZDY3NDE0ZWE1Mzk4MTBk YjU1MjA0OTY0MWNhMjJiZDY1MzlmMWVmZWZjYjkwZGQ0NzliZjkzMDgwY2I5ZGY4NmE5YWE5OTA0 OGY5NTAyOTdiODM0MworQyA9IGM2YTY0YjQ5NDY0ZjVkYjUxNmRkMzlmM2QxZGJjNDQ0NTI4YjVk YTU3MDE2YjVmMmE1NjQ5OTY1YTQ3ODE5NjIyNjRkZWU2OGQ0Yzc4ZTk4N2Y5NDQ2Y2RjODE1YWFi ZWZmMjU5MGQzZTI2NzlhMjU4M2RiZmQzYWE2YjhiZDNiY2Q4NmQ2NmQ1OThkYWE2ZTc2NmE2YWI4 ZmM2ZmU5OGExYmM4OWI1YTEzN2EzNDJhNTlkZmI1MmM3ZTdiMmZlYjJhMzNkNWY5MzY1MDMxMjE0 NzZhOWVlZThkNWM2MGI2YzRjOWFhN2Y4YzU2ZGRlZTViNGE5ZDc5MDg4OTBkM2FhOThmNDVjY2Uy MGEwNzQ4OTZhYWNlZmI2ZDc1MjBlODRiNjY3NWQwMmI4MTlmMzc5Mjk3NDYyOThkMmM4MTQwN2My MDMyOGExZmY0ZWU2ZGE4Mjk4ZmQ2MzlmYTliYmE0YmEyN2RhNWUxOTUyMDQzNGUyN2FlNGJlZjU5 YjczYzM2NjBhYmEwMzUzNzAxNTczZDYwMmQ4MTM1NDQyYTE0Y2VhNGRiY2EzNzMyYTNmYzhlNWFj ODMxOTI5YWQ0OGNhMzBkNGVlMGYwNjhmNTRmYWFmYjUwYmM3YzZhNzg0ZTgxY2Y4NmIyOTIyNTIw MGY5ODVhZjkxNGVhNmVkMTY2ZTA4YzA0ZTYzMjRhMzcyNTUwNjAzYzk4YmI2YzAxMGVhNzIxOTY5 OWU3NmU0Y2RkOWM0YjhlNmM5MjAwZDEwYzUxZTkzYTU3ZjI1YjAwMTlhZTQzNmRkZTIyMDg2ODU5 NmU5NmViZWEzMDg2MDg5ZWNlNTFiOTNhODEyYzgxMjBiOGJhNjA0MzU3MjBlZDY5MGEyZDFmZjdj MDI0Y2Q1MTRjZjczYmM3Y2IxMjFhODMyMjJlNGZiYTJkY2E2NWFhYWZkOGNiNTFhYzA5NjUxMWY4 MzMyNzQ1OGM1MzExOWYyNDYyY2FmNmNkZTVhZTY3OWZhZmQ0Zjk2NzU2YWE0OTZhZTY2NTdjZTQx N2IyOTYzYzA5NDYzYWI4MTBlZjUxYjQ5NDJkZDFlY2QxMjBkNjlhZTc2Zjg5MjhmM2JjZjIwNDY1 ZjY4ZTUyNmJlYjdjZWYyNzY1MzMyNzBmMDgxMzZjNDA4ODE4MmRjZDYyNmZmYjJjM2M0YTM1N2Qw OWFmZmI2YjkzNWU2NzFiYzgyNzc3OWVjNmYyNjBhY2YyYzAxZjFmYWFkNTdiMTYyZmI1MDU3OWVk NDU5MDliZTFjYjJhNGE0ZGQwN2VmZmNhZTZhMjM0MjAyMmUwYmFkNTA0MjYxYmI4ZDVkM2I3M2Vl YTkzMmIwMTM1ZmJiNzZmZDZiOGY4ZDNiNjQzNWRiNmQzCisKK0NPVU5UID0gMworSyA9IDgwMjdh MjhiOTI0MzVhYzExMWE2N2JhMGY0YWY1Y2RkNTBlNmJiZjk2NWNiOTA3NzE4OTE0MzQ0MGRiMDMy N2QKK1AgPSAwZDhmNzBiMjI5YWQ2ODdhYjVmNTVmMGIwYWRlODFhNGJjZmY3NmRiYTU3YWVmNDBh YmI4MDc0Yjk3NDVhZDc0ZWZjYzhkOGYyMjAyYjkyYTk3ODhmODA0OWM4NjRlNTk3MzQwMzI3OWRk MDJlMTY1Yjc3MmVkNzQ0NDc5NWViZmRhZmQ4ZTEzYTlhMjJhYzExMDNkMGMxNWQ4ZDI3OWM2MTdk YWZmZjk4ZGJkYjliY2JlYTkyM2EwMDk2NzI4N2VhOWFjY2RmY2M5MGIyYjQwNDcwMjExMTVkNTQ1 NGQwNTdjZjNhMjdhNDQ5ODhhOGZhNzE1NzhhYjc3NTFhNWQzYmJhYmQxYTMzNTI0ODU2NGY1ZTMz NGMzOTI1MTE5YTI5YzIxOWFmZjZlNzFiMzk2M2Y2MDNiMGY2ZTgyMTMyMTlmYTU2YTM2ZTMzMDY2 ZjQ5NDA5YzY0M2RmYTFhYjc0Nzg2MzBkNjIzYzdiNzdlZmUwN2IwYWQ0ODExYTUyMmVkODFhMWM5 MDU4MzE2ODk3NDdlZmI0ZWRhYjY1MDYyY2VhMzcyNGMzZjlkZWNhZDI3MjkwYzRjYTBlZTljNjhm MWFkOWNlMzk4MWEwYjcxMmFjYmUyZGUxN2VlZmI3ZjliZmIzZWZkNjZhYWU2OTFlNjNlNWQ2NDIz MzcxNWVhZTg5NTdiY2U3OTI0ZmUyZjI1OTMwOWRkZmUwNTBjZmNhM2NmNzZjNTJmOTZmOGI3NjA4 Y2M4MzNiYjM4NzZmMzVlMzdmNmE4M2FjMGEyMWYwYzBmZTg1OTEzM2MxN2M1Zjc0MjJjNzI3NDEx MzdiOGMzYjVjM2VkM2U3NzM3ZDVkOGEyOWMwNjNmMTQ5MDU1ODk4MjQ5NmI3Yzg1MmVjOTViYzQ1 MjExM2M0OGJiYTkzMzk0ZGMxZGYwZWVlMWY4ZGFkZDM4NzE1ZTkzYTFkNzA2NWM1MjhmMDg1MjVj ZDg0NTgzZTI1MDMyNzMyMDQwNWJjZjE4ZDgwMTFlM2Q4NjQ5NzhmOTQ4YjI4MzliYjZkMWQ3YmNl ZjRiNWI2ODcxMjQzYTVjOTNhMmFmYzFmN2ZjN2QwNmM4MzA3YTAyNWViYjUyMmNmMGZhMWUxZTlm ODE2M2YyMDg1NDUxNDUwNGY0Zjg3M2Q3NTdmYWE3OTM4YmIxZWY5MTAwMGRmNGVhNjRiYjk4NWQ5 MDMxMzZmY2I5YzRlOTQ2NzU2MWNkNTY0ZjYxMTQ2YWM1MTljMDhkZmE0MWYyMmI3NzNjYzgyMWNk MTI1MmEzYmEyMzdjMWU4YzFjMTI4YmE0MGUwYjc1ZTY3YWRmMTJjYzQ0OGU0N2ZiNDAzNzg1MGIw MTRmOWMzCitDID0gYzFlODJkMzc0YTFkN2MwN2IxZjA2MTY1NmZkNThiNWRmMGEwNGMwOTlmMzM5 MGU5OGQyY2Q0NjBiMmUyNzEzZWI3Mjc0YjlmNjQ2ZmM0NTNhNWQyNmMzZmMwYjkyMDM1MjFkZTcy ZGM3ODI5MmNmNGQ2MTA5NWZlYmViMDc0ODY1OGRjNjc2NGZkZWU0ZmE0OThiOTNhNmJjMDUzYjNk ODFlMTA1NjRjYzk2ODFhZmYyMjk2YWUwODY0ZmUzZGI0OTUyOThhYzQxNzRmNmNlMDZhZTZiNWJm ODY5ODVjNDYwMzcwMDc1N2VmNDRjODJjMGUwM2JlYjdmMjg0MWRmMmRjNGRkODAyMmQ1ZGM3ZWEy ZjcxMWRhYWNjMWM4ZDE4MDU3OThmNjQ2ZjEwNDExNDY4OTFlODhlZGM0ZGI5OTA0ZjEyMmM3NDY1 NmE1ZWExNjk0ZjhlNjA3MzkyMDQ4MWU2Y2QzMGIyMGZhYzRjYWQ3ZTAzZjU4MTgzZjZiMGJlZmY4 ZGRlM2FiNGY3ODFhMWRjMzZjZTA5MDVlNDFlNzdiZTY1YzgzZGM5YjZhYjY5ZDVkNGMxNWExZGUz Y2FlNmIwODFlYTk1Njg1NzgyMDdkNjc4ZGY3N2UyMDE5NjQ4M2MyZTAwZDJkYmE2MDQ3ODQ0OTU5 NDkyODVhNjIzZjMzZTA3ZTIwNjg3YWFkYjg2ZDU3YWRiOTkzNTg2NWU2NDY3ODAxYTEwYWRkMmFj N2RmYjZmOGJhOThlNzYzNWQ2NzY2ZWVkMzhjYThmYTgxMDFmOTMwMTgyNjFiODcyYTJhODk5MDY1 OTE4YjY3MjQyMzI4OGNkYWE0MTc1NjA3MDE2MDA0MjRkYTZkYjE1ZTBlYmI3YTVkMWQwYTdlMWNj OGFjYTcxNGFjNmJkZTUxZjc3OTAzMzU2M2I0OWRjYWViOGUwMzMwMTEyOTAyYjVmZjBlYmJkZDAw YWEzNzFjOTAyMDkyNTY2MjQ0YmQ5YTFlNWU5NzhhZjM5YWRiZTEzYTcwNjdkMDU2ZDA0YjcxODEz MzU3NWU0MjAwNTg1MjlhNDJlYzAzMmNjNWZhNjIwMzVlODcyY2VjN2FjYjNjMzJlYjhiMDJlMGNk ZDgxYzU5YWZkYmE2NWI2NzNjODI4Yjk4MDc1NmU4ZmY2YjAxNjBhMWU3OTZlMjIxZWQ0MGMzNDI4 NjM4NDhiNzZlNDM5MGVmNzMwYWJkM2VkYzczYmE5NzVjMDM3ZTZiYTVlNTgxNjJkN2E2MGNkNTVi NjE2NDNlOWE4ZDRmNmU1ZWZhMjQ4NWRhN2M0NTk5MWVjNGU4ZDRjNmQ5NDMyZTYzMGU3MDNhZDFm YzJmNjQ0ZDc1NzcyNDhlZjdjN2M5NzRjZTcKKworQ09VTlQgPSA0CitLID0gMWE1YjVmNDM5Mjky MTVkYTc4ZDFkOGM4ZmQ0YmE0NTA4YTY2MjczYmU5NWM4NWE4OTJkYTYwNmVlZDA0ZDZkYQorUCA9 IGJkNzYyZDEzZTIzODVkMzMzZTQzNWVjZDc5MmI4YjNmMTM5MzZkM2I4MzcyNDY2ZmE3ZjY1YWE1 MzdiYmQwYmNhMTg0ZWM1NzBhY2RiOTljZTU5NjMzYmFjZTA0MWZiMTM3NDk2MWJlOTkyNzZmZjFk NGI4MmNkNDlkNzhiODk1ODVhYWE2Y2IxYmYxODQ5OGY0ZDAxZjJmYzVlNDFlMmI0ZmE1NmNlZGY1 ZmU2OWUzOWViMWJlZDMwM2QwNzk1YTcxNWJiN2VlY2U2YjM4OWIzYWU4MWIyM2I0ZjA1MzEzN2Q1 NGMwM2MyYmRjNjhjNzkxODRmY2NhMTc1ODY1MmM2MWE1ZTNjMTlkNDliM2FmMWE4OTQ2NDAzYjI1 NGRhMGY5ZWYyMjdkMmJlNmQwYzUyOGUxYTdiNzhhNTVhMmU3OWQ3OWQ2ZTQyMGU5YTNlOGI0MGJi M2VlNzQ5MzViZTdjOGU5MzU0MTQyMDliZTAxNTMyYzk5MWE4NzFiOTBkZTBiMzVlOTYzOTg5NDc1 ZmJjZmMzN2Q4MWNiYWM2NzRiMWIyOWRhMWQwZjllNzhhNmMzZWY1NTU3NWE4ZDNkNzYzN2I5Mzg5 NWJhZTUyOGQ4NTEzMGQwNTk0MTVkN2M0NTZhNWM4ZDk0ODk3ZTU2N2Q2ZDY3NDhlN2MyNjg5Yzk4 MzMxZWU1YTdlMWUyNTkwOTkwMWFjZTU1ODI4NzM3ZTc0NjRjYjY3MDM5OWFmM2Y4MDZiOTk2ZjQx NjU1MGQyNTZmMzU0ZGNkZDFjMzMyYjRjYTllYWVmNzAxMTRhN2JjMTcxZWZhMDhiODhmMWFmZDA0 MjliMmNmMTUzNjYxMDVjYjgxMjU5NmEwNWUyMmIwNmRlYmUxYzY5YjA2ZDkwNGZlNmNjZTI4NDUz MWViZWZiYWU0NGI5YzllYjE1NmRlZGQwMWE0YTczYTFlNjMxZmNhYmMzNDllMDc2MzY3NDE1ODBh OTE2YjM1NTYwZDAyZTFjYmJiZWEwYTMzNWIzOTU0ODdkZjhmOTcyY2Y4NjAwYjQ4MjM3ZTdiNjNi YWQ1ZjA4Yzg1Yjg1MDQzZWFjMGNhOTNkMzRkZjU2Y2M0ODY4NTdkNmViM2RlMGMzMzJlZTFkZWQw NjkyN2U4YWNkYWEzZmNlNzg2MzZlYjA2YzBmODA1Nzg4MTg5YzU2MDIzYzhhMWY1YTI0MjdjNmYw ZjhiOTkzZjUxN2E5YjRhM2JjM2ZhOWMzZTYzMTgyNTZkYzQ5OTQxYzFlOTI5NzNlM2FlNDgxNGI4 NzEzNWM5ZWU3NjczNDgwNDVlZjc4NzcwMjdjOGVjNDQxYzUwYjFjYWI5OGJmNTU2MzUyMzMzYWEK K0MgPSBiZWQzNGViZDFjNzBkNTI2NjUxMDM2NTExMTBmODQ3ZDgzZTE5YTU1MWY1MTU2Yzk3MjBl MmQxYjAzOGVkNWQ1YWMwYmU4Y2Q5N2FkM2Q3MjVhOGZhM2MxMjc5MzljYmUxYTY5NDY1NTgwMTVi ZGE0YzdmZmZmZjdlMDA2NjJjNGIwYWUzZDU0NzdiZjYxZTE3NWY4ZTRjYTE0Y2Y1M2NjYzU1OGI4 ZmI1ZjM3MTc0ODMyOWI2Y2ZiZmIyNzdjZDA4MjhhMjM5NGVjOTlmOTQzNzc1YjRhMmMxYzI4NTEy N2EyZDQ2NzdiYTNiOTE4MTU0OTA4YmFkZGUyYTc0YjU4ZjczYWM4ZjkyYjQ0MDIxNGEzY2M5OTBm MTUxNzM3MmIyZTUzMjcyZGI5YmIxOTFjYzc3MTFlYTMxZmZiYTJkZTJiNjQ2ZThlMzEyZjRlZWRi ZTllNTFlMTgyNjAzY2YwNzVmZjY5YmM0ZDg0NTQxMGJmNjZkMjAyMTVjMTYwZGYwNWFiMDA3YjQ5 YTUzOTZiZjY5ZDcwMmQxOTNhYTBlMmEyZjlkNjJiN2Y5ZmI0NmNkZjExODY0MzE0MTAxYzdiNzA3 MmY1YmE4MjYyYzMyYjEyYjE0MjI1ZWRiYTQ4YjQ0MDUwMTE2M2QwMjdlN2ZjZjIyOTJjOWIwNmNl MTlkZDBlYWJjNmI2NjM5NzY5NTQ0ZDcxYmYwNjhiOGUwM2M0ODM0YzRhNzg1YTZiMmI5MjdjMDc3 ZjgzOWYyOWRhNjFjNmM1MmMzOWVmNDM1NDgzOWVmZjk5MzA2OGI2NzQzODI2NmUxMGU5YTQyMWE5 MGExMDM4MzU4MjkzMjBmYjFhZDllN2UwY2Y3M2JkZDIyYWEyNjg0MzZmNGRmMGQ5NzNjNDAxZjhi YjIwZjU1NTg1OTU0MDc5YjZkZTVhMjcwN2FiNWNlM2I5ZjQyYWYwOWI3YzE5OTZhNDVhMTVhZjEy ZDA0MWY1ZmUwYzA1NWI5NjlhOTA1NWY3NjU2Y2MyODA2NzQ1ZTg0ODM2OTAzODA0Nzk5ZmZjYzE1 NTgwZjhhNTAzNjJmNGRhYjk2OTRlOGViZjZmMzJjYWNiYzNiYTM1MDE5NTlmZmJmMzNkYjBkMjMx NzIyNzE1NzA1ZTY4NWRmOTIwMmYwNDY2YzNhYzBmMTM2MWE3MTkwNWUyM2IwYWE5ZmNhYzc2YjAx ZDY0MDI1OTg4NjEwODQ0NzczMzhiNWQwNDYzYTY0MWUyNTc2Zjc2YWFiMmRlOTUwMTZjYjMxZDM3 ZDhmNDYxN2UzOTA4YTE3OWI0M2UzZDUwYzUxNmJmZjFlMzg4YmZjMGNhNTE5NDMwZjg1YTBkZTVi MGUyNzRjZDBiZDAyMWYyMGMzNAorCitDT1VOVCA9IDUKK0sgPSAyYTkxOTYxN2QyNGJhZjk5MTc3 OWRlNmMwNmU2OGJiYzQ4OTRhNGU5YTcwMjIxNGJhM2VhYmZiZDAwMTVhN2MwCitQID0gOGQwMWUx MTIwNmUzYjkyODVjZmM3M2MyYWQ2YjIzODUzNmZlZmJlODI0ZjE5NTg4Njg1NjAxYmY5NGUxZWUy NTE1YzRhYzI4MWFhMDRmZWVmODc3Njk0ODQwZDE1ZjJhNjcyMjY2MTE1OWE3MjE2NTQ4ZDc2OGI0 NzU0ZDY1ZjFmMWM1MjJkYWYyYmFlYmJmODhmNjM4ZmIzMjRiMTgyZTYxZDMxNWY1ZjEyYjA0YzQ4 NjAyMjc0OWY2YTIyMmQ4N2M3ZDYzNWM1MjYwNWM3ZWZjMTg1M2NiYmE0NjZkMTM4ZDNjZGEyMjk3 OWU3NzQyZTRmYzgxNjhmNTEzOWE3MjgxODEwOWQyMTI0YzIwZGRjZWNjNzRmYjM4OGYzNDE1MWU5 NmZkMzNlOGIyNjlhN2Q3ZTUxYjZmYzZlYmI0MjcyMTkxNjNjM2Q5ZjdkZTRhNjgzMWE3ZjhiNTk2 YjRiNDkwNzg5ZjExMDRmYTE2MDExNWI2ZThkMTkxZDFkYjg4NWU0MjgxMmMwMTcyNDE3MGU3NjU2 MzRmZGI4ZTA1NTU1Y2M3YTg1YzNkOGNjN2E4ZTI5OWI0ZjM3MDhhNGE1MTg5ODcxMDM3YzBkMDQy MTZkY2E4ZTYxMjdiNDQ5ZWM2MDA0ZTdmMDc2NDMwZDFmODcwZjBkMmMwYzY4MTJjODEwYjQ2NjVm N2ZjMDdmYmIwNGI1NmJkOTU2YjgxMjY3ZDI0MDhjMzFiZThkYWJhZGUyOGEzYzQwYzYwOWVlZTM0 NThiNzM0MDcxNTI3MmVlMjZkZjhkODc1ZDExMzk1MTE2NDliNjI5ZGYwNjdhODk5NGUxZmJjZjdl YzYwZjU2NWU4ZGEyNTdkYjFiN2VmM2IyYjc2NWM3NzEyNGM4MTIwYmYyNmRiOGM0N2Y0OTNkMmFm YmJmOGI4OWVmZTJlMzNjMjFjMmEyYTExNDFjMGFhNWI5ZGMxZWVhZTUwNzE0MzA0ZmYzNWE3Y2Qz NGRhOTYzZjUyNDliZGNlOGUyYzJhMzAyNjY3MmJjZDJlYmYzMTFmNDQ2Y2JmYjcxNzFmZDM1YjQ0 NmYwMjcwMzIwYjMwYjU1NGY5NjU3M2VhYzcyZWEwNTk0MzA2ZDQzYzVlZDQ4YTZjMmQwMWEzNjNl ODg2NDZhODc1OTExNzA3NTU5NmZlMTdmMThjMGIzNmQwMGI3OTc2MDk4ZmRkZWI3YWJjNGUzNGJm NmQ2YjM1MjM4ZjgxYjU5ZDE2OWRiNDU3OGE5NmMyYmNmZTc4YmQ1ODNmYjMxZmMyZTdmYzk3YzZm MzQ2MDE0N2E1NzMwYmRmMzFjYTE5NzQ4MmFjYzM0MWI3YTcxOWM0ZTE3MTZjZGU1NgorQyA9IGVi NjJlZTI4ZDk5MjkwOTNlM2M2ZGJjMDU5MmMzNWRkMGZmYmU4ZmFhMzcxNzMxOTVkYTM5MWI4NGIx ZmZiMzQyYjliZDlmMGRmMDk0N2MzM2M3Yzc0YTA3MWU3ZDcxMzEyZjkxYzhlMWYxMWQ2ODA4NjU1 NjNmMmQ5NjA0ZGVhMDY4OTJmMmFkYWYyMDI4MjQ2Yjc0ZWNjODI2ODZiZDdjMzY5NDI2YTA5ZjIz MDEyYjY5YTg5ZTdlNjZlN2NmMDA4YjQxZGJmMDRmNzJjZjk1MGZkOGY2ZWQ2M2IzMzkyZGU1M2I2 ZmViMzRlNDVkZjMxNTNlNGFhNmZkZDY4NWZjZDdlMzIzOWYwNTA5ZjQ3NGQ4ZjZhNThhYmZiZDM2 YmYxNGY5M2ZlY2Y5MTNiMmY5YTBmMDc2M2MzOWNiNjgyODY1MTQzNGVmMDUyMGNlZTg4ZjQ2ZGFl Zjc5MzJlNWNlMTU0OTc3NGVjMTA2YzJhYmE1NGNmZjY0MDY3ZTAyMDIxNjdmNWEzYmExY2Q2Mzk2 YmRhMDgwMjNkMmNmYTkxMDAwNDNiNDRiOGQ5MGUyODYyZDdkMmE3ZjZlM2Y1ZWI2OTc2ZGFjMmQ1 ZGJkMmFkZWI2OTg1OGNhMzkxZmRkNGE1ODJkM2NiNzlhMmQ5ZmI1N2FkNWIyY2JkMTU3YjFlMzZl ZDQ5ZmI4NDhlOTk2MGIwZGQxYzcxNWI3MDFmMWQzNzkwMjc5OTlmZThlMzU3NjllMjdhOWVmNjBh NDVhZWVlNTZjN2EzZWJiMzlmNmM1MDc5NmQxMjM2ZTcyMWNkMGU1ZDkzMWU2YTg1ZjI4ZmQ4N2Q2 NTJjM2U1YjcwNmUyZTk3YzEyYzRiMzNmYzdkZjQ1ODVkNjBkMDMyNjI2N2Q4ZDI1MmFiODk3MGEy NTI4YmUwODZkN2FkMThlZTRiMTUzMWNjMTNiOWM4OGNiM2E5MTg4YTQ3YjhhNzJjZDI3NmViNGQ3 ZDcyNmEyOTAzOThhOThiZTAwODNlOTkxN2YzNDlkMmM4MTM3YTZmY2QyMjMyYmFlZGI2ZWRmMDc1 ZDhlOTM4MzE5YTEyYmZjMzE3MjZiMTNkMGUxYTZjMThhZTMzZTExYWQxZjQ1MWZiOTY5M2YxNzc0 YWVjMzBmYTdiNDczYzk4Y2JhZjRkYWQxYjM3NDNkMTE4Y2U2OTYyMDUwM2E3NTNiODdlNGFlMjVm MzY1NjRjMjUzOGQ2NjUwMjkxMDg3YWUwNGQxODFlNGZjNDRiNjgwNGI1YmIwYzZjOGEwYWEwNGE0 OTg5NWVhNjRkMTNmN2QyNTNlNjIyMTY3MzZhNzE2MjU4YmM5OGM2MzM0OWI1YjE5ZjVhZTlhZWMz YTE3NmY5OGNiMjk4CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9jcnlwdG8vTWFrZWZpbGUgYi9zcmMv dGVzdC9jcnlwdG8vTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MC4uOWI1ZmNlNWIzMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2NyeXB0by9NYWtlZmls ZQpAQCAtMCwwICsxLDM5IEBACisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjCisjIE1ha2VmaWxlIGZvciB0 ZXN0IGNyeXB0byBwcm9ncmFtcworIworIyBDb3B5cmlnaHQgKGMpIDE5OTgtMjAyMSwgUG9zdGdy ZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyMKKyMgc3JjL3Rlc3QvY3J5cHRvL01ha2Vm aWxlCisjCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1BHRklMRURFU0MgPSAidGVzdGNyeXB0byAtIHRl c3QgUEcgY3J5cHRvIHJvdXRpbmVzIgorUEdBUFBJQ09OPXdpbjMyCisKK3N1YmRpciA9IHNyYy90 ZXN0L2NyeXB0bwordG9wX2J1aWxkZGlyID0gLi4vLi4vLi4KK2luY2x1ZGUgJCh0b3BfYnVpbGRk aXIpL3NyYy9NYWtlZmlsZS5nbG9iYWwKKworZXhwb3J0IHdpdGhfc3NsCisKK09CSlMgPSBcCisJ ICAgJChXSU4zMlJFUykgXAorCSAgIHRlc3RjcnlwdG8ubworCitQUk9HUyA9IHRlc3RjcnlwdG8K KworYWxsOiAkKFBST0dTKQorCit0ZXN0Y3J5cHRvOiAkKE9CSlMpIHwgc3VibWFrZS1saWJwZ3Bv cnQKKwkkKENDKSAkKENGTEFHUykgJF4gJChMREZMQUdTKSAkKExERkxBR1NfRVgpICQoTElCUykg LW8gJEAkKFgpCisKK2NoZWNrOiB0ZW1wLWluc3RhbGwgJChQUk9HUykKKwkkKHByb3ZlX2NoZWNr KQorCitpbnN0YWxsY2hlY2s6ICQoUFJPR1MpCisJJChwcm92ZV9pbnN0YWxsY2hlY2spCisKK2Ns ZWFuIGRpc3RjbGVhbiBtYWludGFpbmVyLWNsZWFuOgorCXJtIC1mICQoUFJPR1MpICQoT0JKUykK KwlybSAtcmYgdG1wX2NoZWNrIGxvZwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvY3J5cHRvL1JFQURN RSBiL3NyYy90ZXN0L2NyeXB0by9SRUFETUUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMC4uMzc1MDM0NmE4MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2NyeXB0by9S RUFETUUKQEAgLTAsMCArMSwzMyBAQAorc3JjL3Rlc3QvY3J5cHRvL1JFQURNRQorCitSZWdyZXNz aW9uIHRlc3RzIGZvciBjbHVzdGVyIGZpbGUgZW5jcnlwdGlvbgorPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworVGhpcyBkaXJlY3RvcnkgY29udGFpbnMgc2Ny aXB0cyBmb3IgdGVzdGluZyBjbHVzdGVyIGZpbGUgZW5jcnlwdGlvbi4KK1RoZSBmaXJzdCB0d28g dGVzdHMgdGVzdCB0aGUgZW5jcnlwdGlvbi9kZWNyeXB0aW9uIHVzaW5nIEFFUzEyOCBhbmQKK0FF UzI1NiBpbiBHQ00gbW9kZSBhbmQgdGhlIEtleSBXcmFwIHdpdGggUGFkZGluZyAoS1dQKSBtZXRo b2QuCisKK1RoZSB0aGlyZCB0ZXN0IHRlc3RzIHRoYXQgdGhlIGRhdGEgZW5jcnlwdGlvbiBrZXlz IGNhbiBiZSBlbmNyeXB0ZWQgYW5kCitkZWNyeXB0ZWQsIGFuZCB0ZXN0cyBjbHVzdGVyIGtleSBy b3RhdGlvbiB2aWEgcGdfYWx0ZXJja2V5LiAgVGhlIGZvdXJ0aAordGVzdCBjaGVja3MgdGhhdCB0 aGUgZGF0YWJhc2UgZmlsZXMgYXJlIGVuY3J5cHRlZC4KKworUnVubmluZyB0aGUgdGVzdHMKKz09 PT09PT09PT09PT09PT09CisKK1J1bgorICAgIG1ha2UgY2hlY2sKK29yCisgICAgbWFrZSBpbnN0 YWxsY2hlY2sKK1lvdSBjYW4gdXNlICJtYWtlIGluc3RhbGxjaGVjayIgaWYgeW91IHByZXZpb3Vz bHkgZGlkICJtYWtlIGluc3RhbGwiLgorSW4gdGhhdCBjYXNlLCB0aGUgY29kZSBpbiB0aGUgaW5z dGFsbGF0aW9uIHRyZWUgaXMgdGVzdGVkLiAgV2l0aAorIm1ha2UgY2hlY2siLCBhIHRlbXBvcmFy eSBpbnN0YWxsYXRpb24gdHJlZSBpcyBidWlsdCBmcm9tIHRoZSBjdXJyZW50Citzb3VyY2VzIGFu ZCB0aGVuIHRlc3RlZC4KKworRWl0aGVyIHdheSwgdGhpcyB0ZXN0IGluaXRpYWxpemVzLCBzdGFy dHMsIGFuZCBzdG9wcyBhIHRlc3QgUG9zdGdyZXMKK2NsdXN0ZXIuCisKK1JlcXVpcmVtZW50cwor PT09PT09PT09PT09CisKK09wZW5TU0wgbXVzdCBiZSBjb21waWxlZCBpbnRvIHRoZSBzZXJ2ZXIg Zm9yIHRoZXNlIHRlc3QgdG8gcnVuOyAgaWYgbm90Cit0aGUgdGVzdHMgYXJlIHNraXBwZWQuCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9jcnlwdG8vZ2NtRGVjcnlwdDEyOC5yc3AgYi9zcmMvdGVzdC9j cnlwdG8vZ2NtRGVjcnlwdDEyOC5yc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMC4uNTNmNjk0ZDM3YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2NyeXB0by9nY21E ZWNyeXB0MTI4LnJzcApAQCAtMCwwICsxLDEyOSBAQAorIyBDQVZTIDE0LjAKKyMgR0NNIERlY3J5 cHQgd2l0aCBrZXlzaXplIDEyOCB0ZXN0IGluZm9ybWF0aW9uCisjIEdlbmVyYXRlZCBvbiBGcmkg QXVnIDMxIDExOjI4OjA0IDIwMTIKKworW0tleWxlbiA9IDEyOF0KK1tJVmxlbiA9IDEwMjRdCitb UFRsZW4gPSA0MDhdCitbQUFEbGVuID0gMF0KK1tUYWdsZW4gPSAzMl0KKworQ291bnQgPSAwCitL ZXkgPSAxMzdmNDBiYzgyYjAxYjM0MDQ3YTQwN2Y0MGQ1YzQzNAorSVYgPSAxZjNkZTNhMjcyMjI3 ZGI4YTg4YmEwY2Y3YjIzZjdlNTdmODRjZTM3MGIyODllMmY3NzRhMGM2MTg0ZjQ0ZjlkZjliM2U2 NDVhZTUwNmUzZDE4Y2RjODE5ZmRjM2IzMWY3N2QyZGFlN2VlMjk1YmEyYzc3NmU2ZjFmZWZlY2Vj NzQwMDIxYzRhYTExMThhNmVkMzgxMzcyMDQxMWYyN2FjZTVjMTE0MzdhNzhiM2Q2MjZiNWY0MjFl MmYzZmZjZDA2Nzc5MzBlNzg3ODExMGEwY2FkNTM1YzA1NzI2MWM2M2YwNTMxYjUzOGQ4YmYwNGY0 OTFjMTZlODcxZjA3MWFjCitDVCA9IGY2MzM2ZjIwMDFhNWVkYzUxOWFhNjQwNzFmYWJlYzJmYmU0 NjU0ZmYzMzQ4NzFlOWNiOGIxMmMyNGZmYjdlYzlmMGQzMTZlNDNiYmRiNTY4YjY1NjA4ZjkzN2Yy NGY2NGVhYjE5YgorQUFEID0KK1RhZyA9IGVhM2Q4Y2FkCitQVCA9IDYwODgxODkwMTI2YWZkZjg4 MWRiYTRjMWE3YmQwZjlkOGMyNDAwNzM1MTdiMjFjNjIyYmZhNzBjMWYwNWQ1OTU0NGI5ZGNjZGQ5 MDhiZDkyNGNhNjBkMjM2OTdmZTY0YWFiOTI3YworCitDb3VudCA9IDEKK0tleSA9IDVlNDlmYWM2 NjA4ZWU0MTU3YTlmMGZmZGU1MDM4OTNjCitJViA9IDUzZDg1NGJiYTI4ZWI5ZDlkYjcxZTY4YjU5 MTZmOWU3Mzk2NGEwZjk1YzY1MjQ0MTFmYjE4ZjY0OTc3ZDAxMmQ2MTFhMTVmZThkNDZlYzQ5YmNh YmYwNjBjZmM3OTg5YzRhODI3MjU2N2M2NjBjMDg4MWY5NDQwNjZiODgzMTE5OTJiNWQ1MmNkNjQ0 YmYwN2U5ZjAxZDIyNDllNWY5YjAwYWUxYWY5ZjI3MzlkYTYyN2IzYTg4MzhlMjgxMTZiMDJlN2Qx NzFkMTkzOGVkYzZkZDVkN2RhM2RhYzYzZWQxNDhiMzY3OTYxYjgwOWJmNDIzNTEwZjBhM2Y0NGE4 ZDUKK0NUID0gMjNiZmYwNjY0MTA3ODRlMDk5OWEzZDBmZTc0MmVlMjhjZTgwOTVmZTgyMmZhZTBm NTBiMGIxN2Q3MGM4Y2RjZDcwNWM4M2UxMDhmY2VmMmQ2NGM1YjRkYjExMGU5YTcyZDNjNGUyCitB QUQgPQorVGFnID0gMDFhYWY0ZTYKK0ZBSUwKKworQ291bnQgPSAyCitLZXkgPSAxNzRiNDdkZTgy YzY0MTk2YWYxODIxNGQ5ZDZkY2UyZgorSVYgPSBkYjk2NTNlOWNhNGZmMjdmODE4MGY0NWVhZjQ4 NjE1NDFkMzBiM2IxNDdkMmI5YjY0NzA5OTgzZGQwODMxMmI1ZmE3MDlhN2JjNmFmYzU5MWZiZGQw OGZhMGYyMWYwNmEyNTc1OGVlMTk5YTZjNjQxNWNmZmRkOTc3NzI4MGU2MjBkN2JmYWE2ZDU1MTg3 NWMwNjlmNTY3MmE3MzBhYTY4MTM3Y2YzM2Y4NmQ0NmNiZDU0ODI0OGU2OGY1ODljMmU2OTljNTU0 YWU0NjgwNDE3ZTk0NDBlNTUxNGMxY2VlMDMyMDUzMjRmNzg5ZDk1M2Q2MzUxOGIwMjNmNjVhYmU2 CitDVCA9IGY4YjBjMTMxN2M1ZjM1NTAzNjM3NjJkYzdmY2M4NDczNzZhNzkxN2UxNTA1Y2RkYWZl YjU0NTFlY2Y0NDY0ZWY1MmFmZDc5NzY5N2YxYjBiMWU4ZDNhMjM3NjYwMGQ2YWNjMWM4OAorQUFE ID0KK1RhZyA9IGY2ZmE3MGM2CitQVCA9IDUyMzk4NmQ0MzNmYmNjYTE1M2FmNzc2NWQxNzdlMmJh ZDcyYmE1Mjc0MzQ0MDI1MGRiNDUxZTJkYTY0MzkxM2NiMjViMzNmYTM2NDAxMWE4ZjhkNWNiNTYz YjQ2MWQ0Njk1MjkyMworCitDb3VudCA9IDMKK0tleSA9IDUxOTRlODgwMjBhNTAxZGRmMjFhN2Jh NTUyNWJmZjcwCitJViA9IDQ0NGIwMDM3ZmJhNmNiOWQ0ZjRlMzNkZjMyMjg5ZDQ0ZjI2MmQ4ZjUz NTU2NGExOTIxZTZhNDMxNTYxMWI5OGE0ZTEwNzRiMzcxMTQ3NThiNDIxY2E0NGVmZGE5MWE0OGJh ODY3NGM2OTVjMjU5NjQ5YzBiZDNjMTFiY2RjODM2M2QzZDExM2E1MzRiZDc5MDk4OGE0NGU3MjU1 OWZhNzBhNWUyZGVlYjlkYTE4N2UyZmE4OWM3YjYzNmEwMDBhMzhkN2JmZWMyZWRmMjgzMWRkZmM5 MzI2ZjBjNTQ5NTZjMTQ5ZTVmZmJhM2Y1NTZjOGYyYTc0OWRjNmVkNTQwN2EKK0NUID0gMzEzOThl NThkNmUyN2M1MGU4NWM4N2E0ZGJmZDczMTM0ZjQ1NmZmMDQyYzlmODY5YjQ3YTQxZTNjMTBkYjdi MjRjZmZjMTAzYTIxODVhNjk2ZmRjMWYyZDM4OWNiZjQxMzc5ZjA0CitBQUQgPQorVGFnID0gMmQy ODM0M2EKK0ZBSUwKKworQ291bnQgPSA0CitLZXkgPSBkZTI1MGViZTBlYTEyMTI0ODBmNzE5Mzkz NGQxYWU4NAorSVYgPSAyNTVmNjU4MzM0ZjFjNTI1OGQ2MTNlZjkyZGE3MjQyMDc5Nzk1ZTljMDRj NWM0ZTgwMGFhMWMwM2I2YWJlNzdmNGRjMjhjZjYxNDI3ODkwMGI1MmYxZGUyMzU1MGZjOWMwYWNl OGU4ZGQ5MWEyNWQwMjQwMjgxZGNkNjg0ZGNiNzg2ODM5ZjM3NjQ5NjY5MmYzZTM1YTU5NDZiYmY3 YjM5Y2FiZjdkNzgyZjRlNzdlZWM1M2E4NzVkMmE1ZTMxMDYyMzhkYWUwZDA0OGU4YjllYzdiMDU5 NjFkOWQ2ODQ4OWJjYmUyODA1YWIwZjljZDQyYjVmOGY2MmI0YjI4YjAwCitDVCA9IDZlYWNlOGM3 YzEwYzcxMzg3MGM2NzZlNTU3YzZiNDkxMzRhZjI2MDExYWYxNTdkZTFlMmM2Y2UwNzY5ZmFiNjY2 YjlhNzg0NDc1NmQ2Yjk0OGNjZGYxZGY3N2ZhOTgxMTljODNhMAorQUFEID0KK1RhZyA9IDg3Yjgx ZDM5CitGQUlMCisKK0NvdW50ID0gNQorS2V5ID0gZDBkOWM0YWE3MGU1YmNhZDhkZDlkNzJkMTRj MjFjNTQKK0lWID0gZGEyMDM4OGVkMDcwOWU1YWY1YTUyYTUyOTNiYzQwNjBmMDJlZDZkMDVkOTZm OWFjM2EwNWMxNDExOGEzNjEzZmY3OTBiNzIxZmYyYzg4OGQ2M2MwNGI5YjI4YTcxMzhjYTAwZDBl YmJmY2IxMWI3MDg2OGY1YjkwYzBkY2U3OWM3MjIwZmI5MGQ1ZjNiNmUyMmM2YWUzNjQwZTdkZmFj YTcyZWMxMjgxMzgyMGRlYmRiNjlmOTBjODM5MzY0NWQ3ZTk2Y2MzNmJkZjYyZWNjNGMwZWMxODFj NjQ1OTNjNjVjOGY3MDdkNmRiNjFiMTZjNmE1YzJmMDVmODg1MTY5MgorQ1QgPSAyZjA4ZTVhODAy N2E4OGYwZTIyMzQyOWU2NzQ5ZGJkZjkxZmY5NzQyYzdjNjEzMDk2MmFlODM3YTQzNGE3MjQ3NjAw ZGY4ZTIwMDRmY2YzZTgxZjhlZjY0ZTZhMjNiZGEwMDJmM2UKK0FBRCA9CitUYWcgPSBlZjZjMGQz OQorRkFJTAorCitDb3VudCA9IDYKK0tleSA9IDQ2NDYwOWY0ODVhYmUwYmY0OTMwMTAyZjk2Mzdm ZGVlCitJViA9IGQwYTc4OGZhMTQ5NGQ0N2JkMWNkZGQ1NWY4ODUxNTIyOWRlNWMxYTJjYTdkY2Ew NTRlMDhiZjM1ZDNjMGFiYTY3NzY3MWQ1MjkwYzMzNzVmYWJlNDBkZTE0ZTE1NDY1MTM4ZDI5OGVk ZWE1ZWZlMWFjNjI0NTJkZmVlODY5MjBmZWM4ZTQ2NTc3YmFlMWMwYjQzZDc3Y2I2YjhkMWRlNmJh NDU1N2Q3NDEwNzk2YmVkZTc5NmI4Yjg3YjU3NzFlMzBlMDVhOGJmYTU1ZWQ5MjE5NGQ1MDY4OTJj MzNmOGFkNjAzOGVlODg5NmI5ODc3MmQxYTg4YTdhNDBjZWI2NTAKK0NUID0gNWU4MWJkODgzZmJl ZGIzZTA3NGJhMjczNzUxMDgxNzUyYzNhZWI3YTYyYjA4MDkxYjc2OGY4ZjhlNmMwOTEzY2Y2MzMz NThmYzI2ODg1MTUwYWRmNjViZDFkNzA4ZDllNDVlZmYyCitBQUQgPQorVGFnID0gN2U3MTU1NDYK K0ZBSUwKKworQ291bnQgPSA3CitLZXkgPSAwMTgzMTlhZDE4ZTVkODc3ZGJkZDg3MTMxNmZhNjYx MAorSVYgPSA5NDFmODcxNWJiYmE3YjFmZGZhOThjOGMwNTU0NmE1MGY4NmNkMDJiNjU0ODYyYWY2 YzFhNzBjZjRkNzk2MThiMzdhYmQxZjA2YjdhMjliYmVkNzRlNzI4YThjNzhhMGVjOGVmODMxMmYy NTUyZmM0NTcxZjQ4MDI0ZWM1YzZkNDRjMjFkNjkzMTFjYjFiYTM5MGNkYTYxNWYyNDZjYjE3NWE5 ZThhNTIyYTIwYjY3MWU2ZGY5NzNiODkyNGZkMDAzYzVkYWI3ZTU5YWY2M2YyMGVkZjU2ZTlkYmM5 Zjk4ZmNhYzI1Y2M2OTJjZDg3YTNkOGZiZjhkNGI1ZjE1MGNmCitDVCA9IGM1YTY4MWIyYjJlNWY2 OGUwY2I2OTgxNTBhYWI5ZDEzZTkzZTkwMGUwZTZmYjIwMTcwYTQxMDQ4MzlhN2UwYTU3NzViYjNm MjBhZTgxNGVkZDEwOTUzMDU1MmVlMmI0MWNmNTk4NgorQUFEID0KK1RhZyA9IDc1YTk2NmUxCitG QUlMCisKK0NvdW50ID0gOAorS2V5ID0gMzU1NjU2NmExY2RlYzcyMTQ2OWNjODY0MTJhZGU2OTcK K0lWID0gNzMxYTI5Y2MwODM0MjJkYTE5MzcyNGE1N2M4MTI2YjU4N2MzODE3ZmJjNmI3NmJlZTEw NmFiYjNhYzQ4NzIyYmZkMGNjMTVkZWI1NzNjYTczZjJiYzEwYWQ3YjYwMDI0ZjI5N2JjNTJjMzFh NzAyMWJkYTkxYzUyNDZjNzgxYTk1ZDVkMTg5NzhjNjg1ZjA5NmU5MzEwZDZmNWVkMTUxMTIyMjYy ZjdkM2Y1YTJiMjY1MzIxNjgzY2Q3MmUwNjkzZmY2MDhlMzc4MTk5MjY0ZWVhODc2ZGY0NDY1OTgx Nzk5N2IzMjNlNDM0NTdlNzA4MDljNzQ3MzdkMDE1Y2YyNgorQ1QgPSA3NTMxNzRkZjBhZmY1NzVm Y2VhNzllNTRlNWI4MzQ3ZTY5MTc1MDcwYTAwZDU4NzIwNTI5YjE3M2U5ZGM2NDY3N2ZkZjQ1OWFk NzIzODViMDMyNDRkOTA4MTA2NzAzMDQxMjlmMmUKK0FBRCA9CitUYWcgPSA0MTE0NzE1MworUFQg PSA3NTg4Yjc1N2YwOGI3NWZjNzk5ZmM4MjUwMzRhYzYwNTg1ZTI0YzU2ZGI5NDkyMGI2OTgyYmJh ZTg2MDMwZTdhMDIxZGRjODlhNTEzMWU1MzcxZTkyOTVlNDE0ZDM1MDNlYzExZTMKKworQ291bnQg PSA5CitLZXkgPSAyZWM5NjA1OWQxMzEzOTIzZmU1MjJiZWQxZTk0MjQ5MQorSVYgPSBhYWZiMDk2 YTYzMTk1Y2ZjOTU5YmY5Mzc4NWE0OGNiN2E3OGI5OGM2MGY4NjFjOTY0NjEyOTIyMjY0M2QyNDll NTBkNDZmNzA2ZDY3MDY2MmY2MGMxMmE3ZjBhNmFkNjViOTA4ZWRlOWE1NmIyN2M0NmYwN2Q0Mjc3 NTRjMTE1NDkxNTQ2MzJlOWI1ZmZhMjVjOTMwNmFkZDRjMGIxM2M3MTkxYWJkNTk0MzBhNjVjY2M0 MmM1NDIwZWM5ODA5M2FkNmVjNmFkMWM0ZDNiYjg5NWNhMzU0NjIzNmMyYzc4Y2QwNzViNGIxZjQ0 YTZhMDNkMTE1YjkxZGYwMmI5NmI5CitDVCA9IDYxYzZiOGJkNDRjOWM2ZWIwNzVmYTliYmE3YWMw MTU2YmM2NGE2MzI2ZDMyYWZlZGI1MWYzNWRhZjIzMmRmZDA2OGRiZmQwNTA1OTMzNTE5YTc1M2Jj ZTZkZTQ1NjBiNzliMzFmMQorQUFEID0KK1RhZyA9IDI2ZjUzZjVjCitQVCA9IGU0Yjg2ZjhiNzY4 NGQ2YTMwMGNkY2E4NDhlZTgxODVjNDFmY2ZlMDYxZTYxYWY2ZjNhNTYzY2VjY2FiNTg3NTFmMTg4 NGIzMjIwMTk5ODNkOTkxNTBkYjIxN2ExZTkyYThmMTViYgorCitDb3VudCA9IDEwCitLZXkgPSA0 OGNiYjQ2NTM5ZGNhOWZhYTk3YjY5YjMyMDE1ODg2ZgorSVYgPSAxZDMxNTJjY2YzZmYwNWE4MTgz N2FjN2M1NWY3OTFjNzhhYmE4Yzk1MTQ5YzgwZGU4NzI0YjExMjZkZGE4NDdiOTgzYTFiZmU1NGFj NTIwNmQ1OTE1ZGQwNzk2OTQ0ZTRkYWY0MzJiMTRhNzJjNWZjZjgxODIyY2UxZTNlN2FkZTM0NTUy ODY0MWI5NGEyZmRjOTBhZmFjMDk4YjllNGIwYjVhZDE1OWJhMjc1ZGNiY2MxMWZlYzA0YmJhMGYx MmRiOWIzZDE0NzNlYTBlZDc4MjVkMjkzZmQwYjVkMmQwNzc5NWIzZGU5MjJiYmE1NjYwNzc4YWRi ZGIyY2Y4NTM5CitDVCA9IGIyNjU4ZTg5N2I4NWQ5YWNmNDM3ZjllODk1MTg5OTU0MTM0YzU0M2Fh YTkxZmE4MmM1ODZjYjViYjFkOTZlMDRiMTg5ZGY2NGRmNWJmY2I2M2E1NjdlNDQ0ZjQ2NTNhZWUz ZmRiZgorQUFEID0KK1RhZyA9IDQ4ZDIxNjIwCitQVCA9IGVmNThmN2FkNjY0ZTM2ZGNlNTIzNDA4 ZTQ5N2FjYjg3MWU5YTU3OWZlNDY4OGJlNjQyNWFkZjQxYzRjNDFkYjg1ZTkwNWU5Mjc5YjkzYTAz NzY0ODgwMmRmYzI3M2IzODdlNzIxNgorCitDb3VudCA9IDExCitLZXkgPSBjNWMyZTgzYzRlNWIz MzZlMzAyNTdjOTVjOGY3Zjc1ZAorSVYgPSAyNjljMjkxMThlYjljYjRhZThmZDhmZjViM2E1ZDYx ZjRhNjNhNzE5NDE2YmYyY2M1MjI1NTQ0Y2FiZGFlMjQ3NDEyMzliYTc5MTBkMWEzMjM2NGMzNDEx NjlhMjE1MjY0YWU2Mjk2NDMyMmI2YWM2NDAwMmQwOTQ1NWYxMWQ5NjU4YTk0NTRjYzZiYWZhODJk YmE1YjUzNjViMjI0M2U4NTQ0NzBkYmU3NGEzMDQzYjVmNWY4MmViZWZhZGFjYTRkNDY4MzE3Yzgz MDc2NjkxYzE4OGFmNmU4MDBkYzI5NmNkZDk0MWZjMWFhZWQ4ODQwODc0ZjhjYmJmOTY4MjdlCitD VCA9IDg5MWRhNmU3OTk0MjljNzcyZWRmZTkzZDlmYzNhZDIwYzI1ZmQ1YTE3MmQyNzJkMGVlNmI3 MDYzYjU5YjYxMWU0YTI4MDU5MjNmMTgyYWJmOTkzNzNmYmU0YTE3NTkzMzliYjEzZAorQUFEID0K K1RhZyA9IDY3NTlkODE5CitQVCA9IDQ3NGEyZTdhYTRhNTQyMmJmMTdmMjU3YjU4NDA1OWZjN2Fi ZTJkMjVlNzI0M2I0MzRhNmY5MzZmNWEwZWFlZDY5MjYxNmE0M2EyYWVmOGI0MjdkODNkZGYxYmVj ZTI5ZDk2YzU4MQorCitDb3VudCA9IDEyCitLZXkgPSBmNGQ3YTBlODRiN2YwMjQ5ODhmMDUwNzA5 ODQxNTYxNgorSVYgPSA5ZDU4YzAzZmU0NWE5N2Q0YzU1NmJhZmE0MjkyNzY2YzU1YmQ4NGQwZTQ2 N2M2YzI2YjBlNDIxNjIwMTVmM2Y1MDZjOWZhMDZjYWFjNjNhM2VmNmEzZjBlYTYyY2E0ZTEyMmJm NDUzYTc2N2IyYjAwZDYyNzdhOTkwMzI5Yjc2MDczYzY0ZWYyNjA0MjFkODg3ZWFmODliNmRlYjQ4 OGEwNTI4NjA4ZWU4YzM4ZmFhNWY1OTc2YjJiNzFkN2UyOWEwOGNjYmViMjM0MmVjMTVjNDYyMzJm M2M4ODY3YWRhN2NiOGNjOGFlZDA3MjhkYzU5ZDcwNjkxM2JhNjIxMjRhCitDVCA9IDExMzU4YmQz ZWE2OTQ1NzRjMGJkZTk5YWFmYzI2MjE3MzJmY2Q5Nzg2MjZkM2EzZWYxMjRlOThhMmMzZGNiODI2 MTU4MDMwNmI1MWZmYTk1NTdkMzc5OTUyZWUzMWJmZmQ5YWRlMAorQUFEID0KK1RhZyA9IGNjNDY5 NDNiCitQVCA9IDRhMjg5MjYxZjRjZWQ2ZmJlNTQ0ZmEyN2Q0MzBmMDRjNzJjY2ZkYmJlMGY5M2U4 ODFmY2MxYjI5YTE5ZTcwNmE1NzlhOTgzMDRjYjJiMDNjZmIzYWFjYmUxODdkYzY5ZjkyM2VlNQor CitDb3VudCA9IDEzCitLZXkgPSAzMTIzN2ZmZTgxZGI1NmI5NTQxMTMzMTU2ZmQwZTdkOAorSVYg PSBmZWVhMzg5ZWQ4M2JkZGIzNjBmNDIzNTFjZmQ1NjMyMWJkZDBhOGZiYmRjYzg3ODc3MjVhMjM2 MzY1ZWFmZTVkYmM5YzZlOWVjOGU5ZWEwZjc0ZTYyM2MzM2E1NzRlYTQyMjNhNDNiMTU1MGFkZDBj NzVkODM0ODMxNWFkZDcyZWU5NTYxZTE3NTBiNjlkZWZkNDYyMTRiY2M1MDdkNGRiNGM2NmM2ZGEy MzYxMmFhYmMyZWJjOWIwZTZkNWFlZWUyNzBjMDEzYTU1M2RkYmM3ZDdkN2FjNjJlY2IzM2E1YTZl M2RiODU5NDcxY2EzZDM2ODYyMDNjMGM5NmVlZDJlCitDVCA9IGI5NjVkN2JiMjlhODgxMTg3MmM4 OTRkNTM1ZTAwMWQ1MzRhN2Q2ZTk5ZWVhNWJkMTRlYmYzOWM1ZTc5YzYyM2E2N2Q1NDliYWZiZDBk Y2VlMTQ5NDI0NWMwNDg1NGYzNGRlNjc3ZQorQUFEID0KK1RhZyA9IGU2ZmFjMWQ0CitGQUlMCisK K0NvdW50ID0gMTQKK0tleSA9IGIwZTU3NmZkN2NjODVmN2M5MmQ0NGU0YjhjMTQ5YjNjCitJViA9 IDM4NTVhZjk3YzViNzQwYmFlYmRhMTUzMmMxOTZkMTg3YjhhZjBkYTc2MTQ4OWVlOWUyNjdmY2Jl YjcyMGJmNmY3M2NkNzQzYjY5ZDk0MmYzZjQ0ODkzZDY4YTVjNzAxNzRhMTg2M2RmYjgzMWNlZDBm ZmJlZTY2OGEwM2UxMDY2ZThiM2RjMDNkYzE0NzFjM2E4NDhiMzc4N2MwNjQ1YjIwYWRkMmZjMGNj MzdlNWUwYWE1N2VmMDhmYzY5YzUzODk3MDMwZmNiNTU3OWE4MzFlZTUzYzc2ZGYyZjc1ZDJkZTVi ZWE5M2U5ZGRkOGU0ZTEzODNiZmExYTdjN2FhNzcKK0NUID0gNjI0YWFkN2ZkMDQ3YTYxYzA5NjM4 YjhkZDUwNjVkN2MwMDk2MDAzNTQ0MDMwM2EwM2ZmMWIxOWNhYWMwMmJhYTNiNjgzNTU4MWYyYjY2 YzIzODEwMDY3OThjOWQ1ZDYzZDY1Njg0CitBQUQgPQorVGFnID0gZTYxNDI2MTcKK1BUID0gMGZi MjRlYTkzYTE0ZTNkNzZjNGQ3YTk5MWNiNTVlNmJkZTQwODM1MDRhYzlmM2EwMGQ0YjBlZjUzZDM5 Mjk5NTNiNTNmNWNlODIwYzQxYjlhYTc1YTk4NWUwOTk4NmQzZjRiYWVlCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9jcnlwdG8vZ2NtRGVjcnlwdDI1Ni5yc3AgYi9zcmMvdGVzdC9jcnlwdG8vZ2NtRGVj cnlwdDI1Ni5yc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYWY3Mjkz M2E2MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2NyeXB0by9nY21EZWNyeXB0MjU2LnJz cApAQCAtMCwwICsxLDEyOSBAQAorIyBDQVZTIDE0LjAKKyMgR0NNIERlY3J5cHQgd2l0aCBrZXlz aXplIDI1NiB0ZXN0IGluZm9ybWF0aW9uCisjIEdlbmVyYXRlZCBvbiBGcmkgQXVnIDMxIDExOjMx OjI1IDIwMTIKKworW0tleWxlbiA9IDI1Nl0KK1tJVmxlbiA9IDEwMjRdCitbUFRsZW4gPSA0MDhd CitbQUFEbGVuID0gMF0KK1tUYWdsZW4gPSAzMl0KKworQ291bnQgPSAwCitLZXkgPSA2MGM5Zjgz ZmIwZGRiZGM3MjdlNzBiZjllYjFhY2MxM2IxYjYzZTMwNTZlNjRkYjdjMmFjNTVjNGYyMDY4Mjcz CitJViA9IGMzM2QzNGEzNjczYjkzYmI3OGRkMWUwMGY4NzdjNGU2ZTRjZjYyODQzOGI5ZWZmYTYx Y2ZlODFlMTU5MTU1Y2M5Y2E3YzE0MTg5MTc1MjdlZDNmMGE1MWRhZjJiZWRiZGFjYTIwZmFkNjg3 YTdkZDA4NmFlMDg2YzhmZjUwOTRlOWIzMWZkNzFiZDZmOGYxZjFhZGJmOTZiYjI2OTA2NjMzODZj MzdkN2JjZTg5MTEzNzg5N2FlZWY3MGJlMTBhNDUzY2VmN2UzMWMxYjhjMGEyNGFjMWJhZWFmMDhh NDZhYWM0NDVhZDVhODEwMzgwNDgyNWZkZTg2ZGQ0NzIwYjQKK0NUID0gZGY2NTg2OTIxMjUwYWFj ZDlkMjVmNDMyOTc3ZTkyYjA5ZGRmODlhOTQwM2M4M2E4MDg5MGZmMTVjZTljNDU1OTE0NWVjZDg1 ZDg2ZjE1NzNiYmMxYjQ4OTkyODU5ZDIyZmMxM2I2CitBQUQgPQorVGFnID0gYjBkYzcwZjAKK0ZB SUwKKworQ291bnQgPSAxCitLZXkgPSA4ZDdkYjUyMGJmODhjOTZkNDY3Nzg5OTFhNGYwYjZkZTlh YTdmZDVkMzVjYjYxODhhNmYzNTU0OTkwNzJhZjVjCitJViA9IDQ4OGE1MDcwNmJmZDhlYzdmYjRj NTA4NTExYmY0Yzg5N2M4NTY2ZWYyODliNWU1OGE0YzU5YmNiZjE2YjVhZTg1ZmJjY2FlZTRhMWNj MGQxZWM3NDE1NmFlOTExZDM2ZDQ5N2Y1ZWU3MWYxZmE1MTY0OTgxOWM5Y2I4OGNmNjVkNjJkMmFi YjY1ZDYyMWMyMDJiY2IzM2Q4ZDY4MDE4YTg1OGQwNGU3OWRlYjYyYjM0ODY2NTg3MzA3MzVhMWM4 NzgyOWFjYjQ5ZTczMzAxOTAyYzExNmM5YjZjZTExMGYyM2E2YjFhNGRkNjU3ZTQ3YTMyOGUwMTdj MTlmMGVlNTIKK0NUID0gNDk3ZTFhMzliYTFiMzhkMjYzYmNiZjE5Y2MyOTAwY2E0MDcwYWQzN2Vj MTJiZmRkMzAxMzlhNzA2OGE4ODk4MjVlYWFjNTAxMmNiNWMyZGNjNzEwYTIyMGNjNjU4ZGNmMDY5 ZjYwCitBQUQgPQorVGFnID0gZjIwYjk4ODUKK0ZBSUwKKworQ291bnQgPSAyCitLZXkgPSAxYWUx ZTQyZWU2NTY5NzNmNTYyOGUzY2QxMWYwNDk0ZGM4YTU2M2NiZjVmYmM1ODgwY2MyZGM2ZDc4N2Jj OWI5CitJViA9IDIzZTNjOTQ4Y2FjNmViYTJlZDExZDY2Nzc4MzU1NzkxN2YwNjZmZjZiOTNhYjk0 MDlkZjljN2M4NGIyN2QyNjgxN2RiZGViYjlmYTlkMGE2NGJiYzU3MmJmYjJjN2VmN2YwYzgzNjUy OGM5YmQ2OTI1MDVjOGM1ZTUyMmY1N2FlY2Y2YjQ3OTcyMzQ0OTM5OGU1YjFmNDVjYWRkODEyNjRj NWFjYTgwNTk1NjJkNjlkZWJhMjYzOTUwMzRiNGIwMTMyNWQwNzJkY2U5MmU1NDBjMTU5ZGJhOTJk M2U0MWUyZDA5NDdkODczYWQ0OGY5ZjBiMDBmNDgwN2Q0MjBhYWMKK0NUID0gMzgzOWZhZTcwMDhi ODgyNTBiNjAyY2JkZjI5NWU5MzJlM2M0ZTM3MTBkMzk3YTJiOWEzNzI4OTEwNGVmZGU3NWY3MzMw MmIyODIwZjE0NjY0YzA2NGU4ZGVjNDVhZTQ5YTc0MDM2CitBQUQgPQorVGFnID0gYmNlMzM0Y2QK K0ZBSUwKKworQ291bnQgPSAzCitLZXkgPSA4YWYzMDJiYzg2ODRjYjkxYjRkN2E2MDg4Y2Y4Yzk0 ZjlmNmUwMjdiYTA0NmMyYjUwODk1NmJhM2M4OGYyZDY1CitJViA9IDMyMTg3MzZlOTMxMzkyZTY1 MTBiOTEyMTBhNmE2YTI3NjgwNzQwYmE4OTI0MDYyZWExNzYwNDhkNmI0MmY0NGVkMDRhNDZjZTMx ODQzYjczNWVmNGY2M2RkMWQ4NTY0M2YyOGZiMzM1ZDIxZmMyZTNjNjczZTk3ZTZiODQ1ZTM2MzM2 MmQzMjg0NGM5MDU0YTE2NWY0MDY1ODI2N2JiMTc3Yjc0Nzk3YTg4MjhiMWVlYTcyM2Q1MWI1NzFk OTM3NDhjNzU4ZWE1YzMyODEwMzYxMmIxMDllMDA4Zjc0M2Y5NTA1MDM0ZWQzYzQyYWIzZGMzMTBj MjA5MzhmODYyN2MKK0NUID0gMWYxYjEzM2ExYTdiNTg2MjVmYzc3MDIxZjhhZDE3NTFiZmEyYjhh ZGRjMGE5ODM3ZGQ1YzQ0NjMyY2ZmZTVlY2MyZTllNTRiOTBjYWZiNmNmOGI2NTJhOGQyZGExMTZl Y2RhM2Y1CitBQUQgPQorVGFnID0gYTY3MzEyOWQKK0ZBSUwKKworQ291bnQgPSA0CitLZXkgPSAx M2E3OTQyYjVhNWNlY2IyYmRjMGU4YjAzNDhkNGRiNWE5ODU3MjU0NGVlMzE5MThlYTYyNWIwNjkx YzEwNzc5CitJViA9IGQ5MmI0ZDA1YTU0OWIyOTZlMThjOTBhOGRhNTVlYzViZmYzNTQ3YTY3OTY5 N2M0ODlhMWQ0OWRjMDJiZmUyZGQ4NWM4ZjA1MGIzMmMzODljNGY4NTdlYjRiNjYzZjUzMzU0YmNm ZTljM2E3ZTMwMDE5ZjJlMzk5NDQyMWJjZjNhM2QxY2MwOTM3NjhlZWQ3MWJhZDUxMzlmM2YzMDc4 NTE0ZDgwYTRhNDFkMTI4NGI1ZGM0M2NlMDdlZmFjOWM0NzVkNmJhMmFjYjY2ZGVlNTBjZGM2MmM0 NjNhMDVjYTM5NmU3MmQxODlmNTBkNDRmZmI3MGQyYzYxMTJjNmVmMGUKK0NUID0gYWZlMDU4Y2Y2 OTRkNjQ3MDYzMDJiNDA1MjQzZGI3N2M3YWUyZmU0ZjMzYzY0Mjc0MTZmODk5MmJhOTI3NTRjNjlk NGU3YzFhODllOWI2OTg3ZjJiYzBhN2I1NjhkY2E5YzlkMjczCitBQUQgPQorVGFnID0gZTBiZmJk YjAKK1BUID0gZDU0NGQxMTRlM2Q5YWI4YWEyYjllYzU4OGExMTJmNzgwYTZkZjc0ZDYzN2JlM2Nk MzRmZGVmZTE0NTA2ZjI2MjgxY2FjZDJiOThjMjZmYzRhZGZmODM3YTdiZDcyMTczYjk2MmEyCisK K0NvdW50ID0gNQorS2V5ID0gNzI3MmU2Y2E2ZDZkNzZjNDgzZGY5YTU1YzZkMDdiZDU0ZmQ4ZmFk NTBiNTI5ZWQ1MjE1NDk1OWFjZjAxYjY0YQorSVYgPSA1YzU1YmI4ZjRmZTc5N2NlMzRjMGUyODFj M2IwNGJhMGJjZTg2ODk0OTM0NTFlYTU2OWJhOGNiYWNjNzRlYTM2Y2NmMzE5Nzc2Zjc3Y2I0ZDdm OTAxZmQwZmYyM2NkMjhmZjBjYTc3YWQ5ZDRhZGIwMzI5ZmI2OGE2MGZmMDA0YTFjNWIxMjExMWQy ZGQ3MDVhYjFmNzczNDE3OGYxNGRiYjM1NmNmYzBjNWMyMDhiOTFjMjc3MjM1ZjM1YWZlOGMyZDQ2 ZWJmNDNiZDVlMGE2NTNlNjdlMGMwODZlYmNmY2EzMmE1NmQ1NmRkNWY4MTBmNTYyZjc2OWNjZTI3 OTRjCitDVCA9IDdmMzc4YmMzMGNmMjc3NGYyMTA3OGY0MmI1ZDZiNjZhYTM1NWM4YzA3M2QzYTcw ZjA2Nzc1ZjNjN2U1OTQ4NTM5ZWMwOGEyY2M1MGNhZTZmMmFkOTY4MGJhNDdiYWMxOTBjMzA2OAor QUFEID0KK1RhZyA9IGU2MTJmNGIyCitGQUlMCisKK0NvdW50ID0gNgorS2V5ID0gODJiMWQyZmZi NTNmYzc5ZjVlZjg4NzQyYTI4ZWFiY2Y0MDQwNzQ4MzZmZTI4YjViMjAyY2U3ZDVjNjhmNmViZQor SVYgPSAzM2Y4MzRmZTIzYjk2MzlkMzBkZTc2M2ZhZjdjMWE3MTU2OGM1ZGVhOWQ1ZDI1M2YyODcy M2NjYjMzMDZhM2NhYzNjYWMzYmVjYTYzODA2N2EzNDg1ZmY3NDNiNTEzMzU3NzYzM2VjODhkYWUw YWVjNGZlYzA4ZTg5NGFiNWQ2MWM0MTFmMDkzOTc3MmRmMmZhNjZkNTc3NWY3NGIzZmYzNmVlNjE2 OTVkN2NkMjcyNmI5YmU0ZGY4MDc1MDAxMTQ3NzcwNTk0OGIxMjc2ZGIwY2FmZWRlNWQ3YWM3M2Nj ZGYwMWI3M2E1NDkyYTAyYzQzYjg5NjMyYTUwMWY2Njk0CitDVCA9IGQ5ZDkyYjMzYTEwZjQyNTJm ZmY4MjhiNTdjYTVmNWYxMTg4ODVkZjA4MjViZTgwZWE1NzI1YTg3NGI3ZTg3MjFhZjQwYmQyMjFl N2Y1YzJjOGIwMDVkNzdhZjYyNjZjZDM2ZGRkMgorQUFEID0KK1RhZyA9IDg2ZTQ4ZmEzCitGQUlM CisKK0NvdW50ID0gNworS2V5ID0gNTI2NDgzMWVhZWJkZGUxZWFkZjc0MWRiZmQ1ODVjYjBlZjY0 MzdkMTM2NWJkNTg0OGQ5Y2IzYTIyZjU3ZDQyMAorSVYgPSBlZGU3NGE4ZjUzZWFjNWRhYzI3NmJj NzI1MTgyNTU4MzFiNjE2YzlmYjUwYTYxN2VhY2RjZGZhNTBlMTk3ZDI5NDEwMDRmNzg1ZjAwZjhj NjAwZTIzOWNkYTc3YzhjMDYwODg3OTNhNjc0ZWZiODc1OWM5ODYwNGRjMDE0M2UwNjY2NWRjN2Uy MWQ1MDMxZmQ0NzUxYTdjZDFiOTQ3MzA0NjQ1ZTA5ODdlYzdlNzY1ZGI4MGE3NDMxMjJmYmNhZWY5 ZWM4Mzg0OWU4ZWVlOGQwMTFkYWI2N2ZiNTQzMTdjYWRkY2ZjNDcyZjU4NWU5M2RmOTFiMWVkY2U5 Njk1OTA4CitDVCA9IDlhZDEyNmIzOWRjMjA2NjU0MmRkMzBjOGZlODFjZDc1MGI3MjEyM2Q3NGFh MTYyMTEzYzZiMGNmMTBhOWNkYjIxN2Q5MjFlOGYwM2I0MDBmMWZmNzE5ZmM3MDRmNDRlMjZhZDQ2 MworQUFEID0KK1RhZyA9IDVkN2JlZDRlCitGQUlMCisKK0NvdW50ID0gOAorS2V5ID0gNmMyYTQz Y2U1NjEwZWFiOWRjNDBmNDNmMDM1ZjdlZWQ2NjUxNzg5ZGZkZDE2NmQ0ZjEwNmM5NWNlZjJhNjdl YworSVYgPSA2MGUzYThkZGI4OTkxMDhjMTE1NTBhNDYxNzIwYmRiZjlhZGVmMjZjMzAwZjA5OGM3 M2MzNzY3NjIxYjA2ZWFjNGY1NjE5Yjk4NTVkOTZlNGQ5NzJkZGQzOGY0NTM4ZjhlMjViNzUyNGI0 NmM2MzQxZTg3ODBlMjJjM2I0MmNjZjQzZjQxZmRkZmM1NjgwNDMyYjY0ZmI0MDI1YjM3ODIwNDA0 NWJiMmQ3ZWE1NmY0MzQwYTQwMThhNGM5OWViOGI5MTAxMmIyODAyNGQxYjJiZGI2MDNmYTEwYTI4 MTMwZTg0YmNlMzgzODRmYmI3YzQzNTQ4YzAwNzJjNWM2NTdkCitDVCA9IGUwNzNlOTQ4ZGRmYzQx NDk0OGIxMmI0NTQwZDQzZGZlYjljYmZhNTI1YjNjYWNjY2QyMWRhODllY2ZiMjU0Yzg0MDcyMmI5 MTc5MDU3Y2IzZWU2OTM1OGYwNWU0YWQwZTQxYTU0MworQUFEID0KK1RhZyA9IGFjMDQ5N2E1CitG QUlMCisKK0NvdW50ID0gOQorS2V5ID0gN2MzNmE5YmIzMDMzYmM2ZjczOTUxNTVlYWRmMGUwN2M4 ZTViMzQ0MWQwYWQ2NmIyMTYyNWQ0OTUwNzYwMzg2YworSVYgPSBjODM5M2ZiMWQ4MGNlOTI4MDFh NGZkOTA2YTU2OGY3ZjQwNGE4MmIwMjA5NmU4NTllNzBlNDZkMWNhNWUyMzFhMDczYzVhY2JhYTRj YjRjMzM1ODFlNjg4N2M0MDI3NTNiZDU1Zjk1Yzc2ZTY4YmZjYmIxY2IyMWJkMzdhYjdhMjI2ZTAz ZDAzZTlkY2E2NTg5YzMwMjBmNWY5MTZjNTA2NzZlOGMzODdmOWIxNzEwNTc5YTcyOGJhN2U3YjYw OTU1ZWU1ZTM4M2JiNzVkMmI5ZDBmMmFiYzcyYzAyZWRkOTI1YmIzMmRjNWE5OTRmMDMyZTlhODU2 OTMxZWIxY2EzCitDVCA9IDU1OWIyZmYzZjVmZDE0N2I5ODg5MTQ2ZjlmZGVhNjc1OGU1ZTBjNzE2 Mzk1Y2YxY2FmNTc3ZGMyNzA3NzY0ODMzMDk5YmRhMDkxMDYyNmM2MmJiYjFjYTAxMGI2NmM1NDEx NDk4MgorQUFEID0KK1RhZyA9IGNkMmVkNGZjCitQVCA9IDE3ODc0NWIyOTdhMjNhODk3ZWM1Y2Zl M2E5ZTM3M2JlZmJkYjg0MGQ5ZWI2NTc4ODVhZDA0MjM2MjhjNGExOGY5MzRlNmZiNTc5NzRhNTI0 MzZjNTE3ZjQ0NjNjYzVmOTM3MGM1NAorCitDb3VudCA9IDEwCitLZXkgPSA5ODFhZmJmN2U3Yjc0 ZjA4ZDE4NjYxNmQxZjcxYjY4MmJjY2MzY2ZmNmM1NTYwNjk2ZDI2N2FkNDU1ZDExMWY2CitJViA9 IGEyZDA3YWMzZWYyOTk3OGM0NGViYmQ4M2UxYWQzMzBhOGZjZmFkODIxM2ZlMmU5MjQzOTAwMTVi Yzk2NmE5NDRhMGE3NjgzMTE4OWEwMTEwOTRlYzRlZjk4NTM1ZWZlYjU2Yjg3MWU3ZTFhYTM2NzQ4 ZTYzOWRkNWY5ZDFiZjMyODZhMWIyOTY1YmZjMDI5ZmFhMGY4NTU2MjJjMzBjYWQ2NzMzMWJkMTFk YmNlYTUxZTM5NzE4NWNiYzRmMGYwMzQxZmQ4ZTc0NGQyZjA5YjJlM2MyYmQwM2FmMTU4NTBkYmUy YTcwMTg1NWVkNDI0N2Y5N2FjZjk3NTRmNWU0ZjkKK0NUID0gY2JiMWY5YTViZDg0YzRiMWI4ZGYy NzE0Zjg3ZGI4NzhmN2QyNjU4Y2M3YzM3Zjc1ZDc4NGUyMTU3Njg3Mzk4YTM5MWVjZGZkMTExOWUw ODdiZDEyZjZhZjc5ZGI1MGFlNzcxMWJjCitBQUQgPQorVGFnID0gYWQ3OTRjOTcKK1BUID0gMDZl YTk2YWQ4ZTYwNDQ5NzhlYTY3NjA1NmRmOGM2NDdiN2JkZmNlMzkyMzc1MDk4M2NkY2E4NzUwODk4 NDE2MTI3MzdlNmZlMDc4NDk2ZDc3OTA2Yjk2MDY1MzJiMzA5ODUxY2RkCisKK0NvdW50ID0gMTEK K0tleSA9IDAzMTgzNjc4ODk2ZTI4Yjg0ZTE2YWM0MWViYjE0ZjRmNDM2ZWZlMzg2ZWU2ZGY0ZThh ZDJhN2FhZjExZjE3ZDYKK0lWID0gNzE4ZWM5OWZhMWI5YjFkMjlhMDZjYTM5NzNkOWMwMzIzYjE0 YTJjYzM0Y2ZhMjgxNjQ4MWFhMmRhOTdiNDM1YjBhMDc1YTJlZDY0MTJiYjQ4MmJlYTIzZGY5ZGVk ZGQxNjk0NDQ5MmIxNzU2YzY1MTM4YzNkMTg5YjhkMmQ2OTUxNTA2NjdmNDZlZGNlODg3NTVlODY4 YTJkOTBiZjEzZjE3MGQ5YjZiYjI5ZDkyMTBmM2M5ZjUwNzY2Mzc1Njg2NmVkZTBiMzYyYWE1Yzg1 OWUxNWNkOTZkYTRmOGM3Zjc4NTJiMzkyNGJkZjM1ZmYzYTUxNWJhNTE1MGUxYjAxNworQ1QgPSA2 ZWNkNDFhNDkyYWU1ZDYyOTVlOWMxODI5MGM5YTM2OTk5Yzc5Yzg3ZjhiNjlmZjIwY2I0MmNjYjdj NjY3OGJhYWYxNTljNzVlY2ZiMTVjYjg3ZGI5OWEzMjM2NzM0MDAxNTQ1ZDIKK0FBRCA9CitUYWcg PSBjYWQ5OTY4OQorRkFJTAorCitDb3VudCA9IDEyCitLZXkgPSAyY2E4YjAxZDFjYmI4ZDM5MmJh ZTQwYmQ4YTUxMjA1YTkwMjBiZTI3YTIzNTMzZGE1MWRmZTFhZDBjNGMxZDQxCitJViA9IDViNWVk Y2MyZjE3OTQyYWZiOTU3N2MzZDJlZDdkNWVjYWYwMDlhYzNlYmFjOTg1ZmNmMWUwZmFjMGRmZGZl NzQ3ZmRmZTNkMDU3OTUzMzdiYWY0MWNlYTNiMjZlNGYzNWNhZWUxYzEzZmM1MmQxMTkyZGExNDVm Mzc2YjRlYTgxMGNlN2RjOTQ4NDVhOWNhOTE4NDIwM2MzYjhlODAzZTdhOWJmY2JmNGEzMTBjODVi MjhiMDRhMDA3ZThlOWJkMTRmZjBhZTI4YTE5NjY5MThhNmUyMmFlODQxNTMzNGU3ZGYwZDUzMGIw NTA3YTI0Zjc1NWY3MGYxMTc1ODE4MjAKK0NUID0gYzQyMDY1NmZiNjZlODlkNWIxMGZiZTNlYzA5 MjkyODY2ODNkZGM0YTM0Y2JhY2E2Mzg0OTNmNWMwOTY3MzYwOTgxNDEyNzcwOWI2YjFiYjc2NTkw MmY2ODU3NzYxYThkNTdkOThmCitBQUQgPQorVGFnID0gMjNmMWRjNzQKK0ZBSUwKKworQ291bnQg PSAxMworS2V5ID0gMjVjYjM4YTRiN2ZmNzNiYjYzMmVjYWU1Zjc1ZDQ2ZTQ1YTEwOGZmYWYzZWMy ZDZhZDM5ZDNhZjRiM2M2NGNhNQorSVYgPSAzNzI1MTBlMThmODc3ZTBmNzRjMWNjNTRiMTlkMjY1 YjI3YTQ1MmNiZTkxMzM5YmI3MjBhYTFiZGZhZjliYmU1MzY1YzU3MWNlOGYwMWQyZTk2YWVmOGJm MDg5YzNmNDQwMmYxODYyMTNiZTcyYjQ2YjIwMDMzN2M5ZWJmOTQzYmYzZDJkYjFmNjhjOGU2NTU1 MzRkOTE5ODgyNTczN2U2MjM3NDVjMjZmNmIwYTgyNTg1NjYwYTdjYzM5ODVhMjcxZGVhOWIyMGY5 MzY1MzcwMWE4ZDM4M2JiZjMxNTU4NjQ4MDlkZWNjMDNmZmVmYzljZTAxODM3OWQxMmQ4YmZjCitD VCA9IGVhMDFhZTY3YWJlZThmODU1MmFkMjYwY2E5ZDA4ZWE1YjM1YjUzNjY3YTM0NTU3MTg1NDVl MDA3ZTVhYzBjNjJjMWZmMGM1YjA2ZjhjMDMxMDc5ZmNlNWYyMzY3ODg5YTZhMDY4ZQorQUFEID0K K1RhZyA9IGM2YTM2NWYxCitQVCA9IDNiYzcwMTE2ODg2ZWQ5YjRlZjc5NWU0NWM2ZWM4ZWE2NWY2 Mjg1YjM0NDkxNzRmODljZWIxMjk0ZWE3M2RhZTliMmYwMzcxMDdmNTczNTViZTcyNDJhYmI3ZGE4 MThjOThkMjc1NQorCitDb3VudCA9IDE0CitLZXkgPSAxOWJiOTgwMjJmNWQxNDBjZGJiNWIxYzAy YWFlOGVlZWMxZTk2ZGM2ZWI0ODlkNzA5Njc1ODhiNmY0MTQzMzBhCitJViA9IDZkN2I0MWM3Zjk0 OWY4ZmYzZTllMThmZjdhZjNkNjdlZmY1ZGRhYTYyZWVmZGJjMGIwYTQ5ZGZiNmZiMDc1ODI5OTgy NTBkMWM4ZTYwOWQ1NzUxMGM4NTkzMzNhMjY4ZjdlODliY2EwNmFkZjE2NDZjZGViMmU1OTJiYzg2 NzY5YWJhNDAyNDEwY2JkNzFmNTcyZGJlMDY1YmViMzdkODc2NmFjNjFjMTJlN2FjMzIyZDIxMzQw N2UwNzNkNGJiM2MyODg0OGM0Mjk1OWNhYjIxZjllMzlkN2Y0ZmY4ZGViZDUwZjQwYmZmZjk2Y2Jm ODFhZjA3ZmJmZmI2YmIyYjAKK0NUID0gNjBhNzdlM2QyN2ZjZWE1ZTUwNTIyMTM4MmQ4MmU5ZWUz OWMyYmZhYTAxZDdkNmNlMGQyOTNlN2ZjN2JkMGQ3ZjkwMGFmYTlhN2YwODBjMzNjMDRjZWRkNzY1 NzNhOTE0NDA5ZTM5CitBQUQgPQorVGFnID0gYjU2MWVlMzAKK0ZBSUwKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L2NyeXB0by9nY21FbmNyeXB0RXh0SVYxMjgucnNwIGIvc3JjL3Rlc3QvY3J5cHRvL2dj bUVuY3J5cHRFeHRJVjEyOC5yc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MC4uNjljNzRjYTZjNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2NyeXB0by9nY21FbmNy eXB0RXh0SVYxMjgucnNwCkBAIC0wLDAgKzEsMTI5IEBACisjIENBVlMgMTQuMAorIyBHQ00gRW5j cnlwdCB3aXRoIGtleXNpemUgMTI4IHRlc3QgaW5mb3JtYXRpb24KKyMgR2VuZXJhdGVkIG9uIEZy aSBBdWcgMzEgMTE6MjM6MDYgMjAxMgorCitbS2V5bGVuID0gMTI4XQorW0lWbGVuID0gMTAyNF0K K1tQVGxlbiA9IDQwOF0KK1tBQURsZW4gPSAwXQorW1RhZ2xlbiA9IDMyXQorCitDb3VudCA9IDAK K0tleSA9IGY4ZmU1NjE3MWZhNTQ2YTM0YjFiMjhlMGIxZDMxY2ZiCitJViA9IDk2MGQ1N2YxMzM2 MjcxZTA2OWMxMmYxMTA0NGRkNWE1YmVhOTk2ZmMwMjkwZDM3YjViMmY0N2M4ZGYzYWUzZWUzNzIx NGE2ODcxZDk2M2I4MzBhZWMyNjYwMjYzNjQ5ODRjZmUzMWViODhjMmE2MjI5ZjU1OTRjYTlkM2I2 ZDI2YzdmYWRiOTFhMDI4MmNkZDBhMzIxNzE0Yjc0NWRkNWUxNjFlN2NkMTkyNDIwY2YyZWFjZDU1 MmM0ZGY1Y2VlOGZiNWYwZTA2YjdjMzUzMDE3YjRiOTUyM2NlNTY4OTlkYjc3MGMzNDRkYTcyMDMy NzgxN2JhODIzYThmNzEzODIKK1BUID0gZmQyMjkxNThmMThmNWI4YzJhOTZjODZmYTNkODA4NDAx NDY2MGViMjMxNGJiYWI0Y2EwOWZhNzJjM2E5OGI2ZmFhMmViYjgzYTE4MDlkZTljY2JjODk3M2Qy M2FmMzQwMTRmYjI3CitBQUQgPQorQ1QgPSA0ZGMwZmQwN2M4NmVjODRjMjY0ZjA1NDQ0NTZiZmVl MTRmNjg4YWYyMTA5NDU1ZDczYWExZTU4YTMzNTQ3MjdlMDUzODdjOTQ1NjhlZGYzNTJmODM0MmE2 MTU2YzY0ZDg3YzQ0ZDcKK1RhZyA9IGFjMzUwYWZkCisKK0NvdW50ID0gMQorS2V5ID0gODAzMDA3 YjY5MTQ2MzYzOTk5YWZhZDQ0MzNjMGYzYjUKK0lWID0gMmZjNzY4OGZhZjBiMzc4MzA5NDI5NDUy NmFjMDdjMzhhNzNmZjk2MWFiNDFmMjBkZWI2NmVkY2FiZmU2OGUwOTRhYTBmMWZjNTIzMTg3MDZh MGUyZjliMzkwMWE3NjgzNDY0OTRlODQ2Y2YxN2I2NjJkMDVhMzc4OGQ3N2MxNDY4NDA4YTQ5ZmZl NWMwY2Y2OGIzYjhiMjYxOTNkZmQ4NGM2M2M0NjMxZWViZjBjNzk3NDI4M2UwNWUzOTQ5NGQ5YWFh ZDAzODAxOGE2ZTk5OTkxMmIxZjkyNjgxMzc1MjE0ZTYzNGY1OTM3Y2IzMmNjYzRmYWNlNDJkMDEz OTgwYworUFQgPSBiYjMxMTEzNDg2NmRlYmE1N2ZlNTA2NDQ1YzVhMzEyZWExYmExYmExNjQ2OTcz MWMxNjQ3YzZhNDgyYmM4NGZhODM0OWQ4MmJiZDAxZDNlZGI2Y2ZlOGYyNWIzN2ZmOGVjOWQ2MjEK K0FBRCA9CitDVCA9IGFhMWQ2YWU0MTUxYWFlYzEwMzBhNmYwMjk3YzQ4ZTY3Yjg0ZDFjMzk3ZTll YWYwYzVjOGMzZDI1MmJmODYzOGJmODU5MTM0MmM1YzIwYzdmODhmNDExNDBiMDMzNGY1NWNiN2Iw NAorVGFnID0gMzAwNzZjNWIKKworQ291bnQgPSAyCitLZXkgPSBiZmI5NmY1ODUzNTQ0MzIwNWNl MjgxZTAzYmRjNWMzOAorSVYgPSAzOTYxZjQ3ZTllODAwZjFjNzI1MjZkNzNmZTM3MmNkNmU2OWE3 ZWIxZDI2OTJjNThiZjQyOTdiYjA1NTAzZWRmOTVlMDc0YTdjZjI2NDQ5ODFmNzI0MjFmMjI5ZDkz ODY2YTZlMWZjZjVjMTM5NTNiMzliZjM2YjU2ZmNiZDRjMDliNTA1ZTU1MGI1YmEwZTliYzI2ZWZi ZTBiOTYyMWE0N2I4MTg0MmNhYThjOTQ1ZmE1YmI2MDZmMGRhYjgyNGE0YmI1YTI2MjU2NjhhOTE2 ZTQ3ZjBhMGQ4YTk5NWJjYWU2OTQwZTEyMDcyNGY2ZDUzNjI5NTQ1ZGE1NDU2MDA4CitQVCA9IDJj MDdkNzZjZWFjMmE3NzgwOTkwNmJlYmQzNDUyZTJmODk4ZWE1NDY3ZDQ3YmUxZjE3NTczYjNmN2Zj N2QxMWM5Yjg2OGQxZDFhMjQwMTBiNjNkYWJlOWM2YzZiNGUxMjNkZjU1OQorQUFEID0KK0NUID0g Y2E0NDNhY2YwOGQxMjFlMWFlNDIyMTAxM2VjNDBkY2EyMjM3ZDAzNWU4OWFlNjcwNDA2MDIxMzI5 NzI0MTdlMDdhN2M3NzBkNzVkOTZmYmI1YjhhMzhlMDQ4YWJiMTViYjk3OGQyCitUYWcgPSBmNjFm NzVlZQorCitDb3VudCA9IDMKK0tleSA9IGYzYTQ0ZjE1ZDEwNGY4MWI0YmIyNjNlZWNmODA2NzM3 CitJViA9IGJiZjFiMDY0Njk5MWMyYjk3MzUwNjZkYWQ1ODYwZmNjMDhhNmI5Mjk0NGE1ZTkwZGZi MTIwYWNmMmE3NTQwM2QzMTc1ZjVlNjFhMWQ4NGI4OWEwYzFiZGQzYjM0MTQ0NTBmYWY2ZmZiODgy MGFiMWVhMDFhMmIzY2MwNWYxY2QxZGU5YmQ0OGVlMTMwOGRkYzdkODdlNmRiMzNkM2ExNzFlN2Y2 M2ZjZTZiOGUwNDE3MzU5YWZhODMzZjZiNWYyOTMxOTViZWRmNDQ0YWM1NjEwM2VlMGM4NzA2YTY5 YzA4ZmU1OWE5NWM4NDc0ZjI4YTRhMTI2NjE5MDVmODc4MWMKK1BUID0gNjJkMDVlYTBiMGRkZmYx YzA0MThiMDFhMjEyNjcyMzBlYmJmMjNiNjNhNmMxNGNhYTc2OWM5MTQ4MTUwYzI0NTRjMDU1Y2Jl NGE3MmEwOGU3Y2Q4ZGNiNDU2ZTFlYzE3YmMzYTYzCitBQUQgPQorQ1QgPSBkZjA4YzRkMjIzYTE2 OGQ0ZGVhOTQ0NWY1Yjg4ZDQwZWYwYTc5NmRlM2U3N2E2YTExNmJmZWQ4NDBjY2JlN2I5ODgzNDVk MDcwNjQwZjYyZjU3NTc4Nzg0MjBiNWM1MGRkOWY1NjcKK1RhZyA9IDE1MThjMmQxCisKK0NvdW50 ID0gNAorS2V5ID0gY2NkNThhNjAxN2FjMzQ0Y2U1ZjhlYmViZGJlMDM1OTMKK0lWID0gYjJjNTNm MDEzMDIxZjQ5NGY2NjM3ODc2ZjYyY2U1YjVkZWM2ZDU0OGZmZTU4ZDA5NTJhYThmZDhmZDVjOGQy YjgzNTE2NWUxYjBjYTAxZTcyYzE5Zjk2MmUzOGNkNDQ1ODIyOWEzNDE1ZDdiNGY5YWZkZGY1YmI2 MzIxNTk5OWI3NTBjMDdhMDgwNjc3YmE0ZTQwZjZjNWU0MjAzODg4MjUwM2M5OTIzYTZlYjJjZjBk M2I4MmY5Zjk0ZTYyNGY5OTM4ODMwZmMyMjQzMGYxNmY2YzkzYzM2MmNiM2MxMWNiMDVkNjNiZWNk YjRjNTcyZjAzNDMxZTcxMDgzNjljMgorUFQgPSAwYjg5YTQ1NWEyNDcwYjNiMmI3ZTA0YWZhYzE1 YzQ1YTA3NDIwNjE0OTRiNzhmODhjNTdmMjUwNWUxZjU4MDRmMzVjMGE4MjlmOGI2NDQzZTQyN2Zi NmVjZDM3NDY0MjIxN2I2ZjcKK0FBRCA9CitDVCA9IGE4YjYyMDNiOTE0MzkxYzYxZGJjMTIzZWZj NjkwMmI4OTIxMDdlYTk3MjQzNDFhMjJlY2RkMGRlYjE2YzQ4ZDg4NWQ2MDZmNjg3MjRjYjQzYTk1 NmMwN2VmOWVmNjU0YzA0MjkwNgorVGFnID0gMDJhZWFhNjMKKworQ291bnQgPSA1CitLZXkgPSA1 MGJjZjExNGRmNDBhNDMxYzBlMWU4ODAzMzE1NGEyNQorSVYgPSAwZmZjZDliMTRjNmJmNWY2MzBj ODZiNDFjYjNjZjk2MDA0ZjNmYTRmZDQ4ZWU4N2I3MjM1ZDM0YmUwYmUxZmRkZGVhYTc5YWJiM2Mw YzkxOThhMWVlYTBjY2YwNGU4Y2ZjOGQyNGU0YmFkYmY0MzhjNTlhNzBiNDM1ZmJmMDdkNDRmNTVi NzVlNWU0OGZhMGYzZDc3MTRhYWY5ZTM0YjQzMDY0MDYxNDY0NmQwMDA4MDE0YWQ0MzJhNDY0YTI1 MmM2NjU4NGM5MjJiMjlhOTBjYjJjMmU0MjM3Yzg1NDVmOTEzY2QyZWQzOTEwYTRmMDc1MDYyYTU1 YjcxMjI4NDExCitQVCA9IDlmNTIwNmIyYWZlODI0YWM0MzAzZDU4YTk3MjU1ZGVhNmYwMjZiODUz MTY1MTEwNWRiOTY5NWYwOWFjYjE2YWZkOTQ4ODkyODA2MDIxOTMwN2ZkNDFlZGMxNmU0OWYwMWI3 ZDY0NgorQUFEID0KK0NUID0gMDE0M2MwYTAzNWNlMjlkMTQxOGFjYjI1NjFkZmU4OGM3NGYyNGE5 ODA4YTg2NzI0Mjc3OTdjYzBiYTAxNjkzYzJkNjZjMGUzNjU5NjFjZmQ1OGZkMDM5YmYwOGZiNGMy YjFiZTI5CitUYWcgPSA1NTJlMjdjNworCitDb3VudCA9IDYKK0tleSA9IDhkYmYxMWY5MjMzNzRi OGU4YmU5Mzc4OGRlOTM5ODA2CitJViA9IDJmY2IxMzA5NjJiYTNlM2ViOGUzMWE3YTI2ZTIwODJh NjQzZjM5ZDY3Y2NlMTFkOGIyYmE4YTc4MmY2M2Q0ZGYzNzViMjFiMWZlZGFmNjdiZDhkNzNiMjIw ODkzN2FlOTQxYWZjOTk0MjBlYmJlMzI4MjE0ZmU2YTQ1NmJmMDA5NzlkNWViZmIyMmI3OWZkM2Nk ZWE4MTA1Njc0N2JmNGU0ZGVkMzNmMmYyNmYyZDIyODk2NTEyOGEzZDBhMzI2OTZkYjQ0ZTRhZmY2 Y2E1NDY3ZDNjNzQ5ODMwYTVkMmU5YTQxYjRmZmEzYTQyMmU1YmI4NzBjZWU4NGY0YjY0YWYKK1BU ID0gMWM1NzE4Njc0MGM0OTAxZTAyMmU2M2IyZTdiMDg1ZjljYjYwYzgzNzYzZTM1N2E1OTFjMTk2 ODI3NzkyMGFkZTE5ODczMzRlODhlZDljM2M5NjY2NWUzN2ZlNDkyYTk3NTE1M2QwCitBQUQgPQor Q1QgPSBjZTRjN2U1ZmI4N2VkMDI0MjRhMTNjZDJjZmNmYWFjZjY3ZjEwNzIxOThkZWRjNTk0ZGIy NmQ2NDUzOTkxODIxODYxYmE2Y2M4NDNjNmQyNzUwZTg0NmUxNjI0MTUxMjNiN2UwMWUKK1RhZyA9 IGFiMTBiMDQwCisKK0NvdW50ID0gNworS2V5ID0gNmU4OGJlZDk5ZWJlMzgwYzFmODI5N2Y0NjAx OWQ4YTAKK0lWID0gODBmYjgyYzAwMTZkMDU0NDkxZjM5NmE3NzIyMjE3YjBhMDdiZmQwZmM5NTRh NzE0MWJjMWUyZTc5NThjYjI0NTQxYTIxNDkyZWM4NWQzYzc0NDQ4OWY5M2FlM2FiYjlhZjEwMWE3 OGYyMzY2MjI2MDgwMzg5ZDI5ZWVmNTY0ZDUyMDVmMzc3YWIwOTAyMDQzYmJmN2JhNjRjMzBjOWQy Yzk0NWNkNmYyOTY1NDczODEwNmRkMjgyMTk0ZmEwMjM0NGVjMTc3YjU1NDc1MzEwNjFiMzFjZWJm YWM0YTJiMGY0NmI2OGU0NGM4Yzg5ZjY5NDJmOWM5YzEzZTUwYzU4ZQorUFQgPSA2YzkwZWEzZGFk M2UxNzJhZTY3ODRjZjFiN2MwOGZjMDRkMGY5YjQzNzJmMTEwM2QxMTM5M2E4ZjAyZTJmNDk1YjUz YzU3Y2Y0NmYxZGY2ZjU1YjJmZGIxODRmZDJiN2Q1OTA0MDIKK0FBRCA9CitDVCA9IGY1NWQ2N2I1 MjRiOGU2MzMwMTllOWIxNzM2ZjNkYjFhMjU0ZTUzY2Q3MWZlY2I0OGYyZGNlZmZhNjIyNTZhMGJm YzM3NzVmNjUwNmRiNTJkYjZjNmViOTE5NzFmNWJiNTY4ODMyNQorVGFnID0gYjQ1ODU4MTUKKwor Q291bnQgPSA4CitLZXkgPSA5OWRlNTdjZTAzZDFkYjYyYTc1MWMzYjJjN2QzOGYzYworSVYgPSAy ZTc0YzI4M2UyMTZhYjVhYzlhMWIyMTRkZDkyODA0MzFkN2ZmOTQyYTE3NzE1ZmFkYzNhMjI5Nzhm YTFjY2MwNzQzZjk2OTM1OGJhZWEzZDc5YWJlOTMzODhhN2RiODJkODJhZDZhOTE3YmY2Nzc5NWZi NDM2MDU0M2Q3ZjIyZjdlZTQ5ZjQxMDI5ZWJiODc1NzNhYzAzZGRiN2UyNzlmMTg0NmY0YTg4Yjg1 YmVhNjNlMmM5YjllY2Y2ZjkxNzc3NDM0YjNkZWYwZDRhNDJkM2UwMjVlYjQzYTY2NmEyOGQ1ZjZj ODM0YzdlNzk5MTg5N2JmMDUxOTE1ZTY0NmM2CitQVCA9IDcyZGM3ZTU1MzNlODYyZWZlMGQyM2M2 MjA5NTUwNmIxMWM5YjI1NmQ4ZDE4ZDExNTExYWExZWQ0ZWFlNjdiMDAxN2VjNzRlMzIyZjNhN2Ex OGU3ZDE5OWU3MDkzY2FkZjI2NjgwYQorQUFEID0KK0NUID0gYWYzMWQ4ODBkMTgyMGEzNWM5MjQ4 ZWUwYjFhYTBkYTMxMzM5ZjkwMTgyZTYwNDUxNDkzYmVjOGQ0ZGVjM2JhZjkyMjI2ODc0MWMyNzE3 ODMxYjgzNjViZWJmMDcyYWE3OTMxYWI0CitUYWcgPSBiMTcwMDM5NgorCitDb3VudCA9IDkKK0tl eSA9IGFjZGM5OGE4YmFhMGYwMDNjMTMwY2UxOTYxMzUzMzRkCitJViA9IGI3Yzk4ODVkMzAyODQy YzQxYTI4ODBiOTM4MjU4NDgwNmU4Y2I1NWI0OTE4M2I4MGJjNTA0MDNjODJjZmFmMGQyOGEwMGZl ZjgxM2JhNWI3ZTM1YjgwZGMxZjBiN2MzYjA2NjlhM2JjNzM5ZjQ5OWQ3N2VkOWNjNDdhNDY3Y2E2 MmZjMzRjNWJmNGMzNzRmZjM5NmMwMWE0NzJjM2RmZGFiMzk0ZTY5MjY1NDVhMWMyMDM2Mzk2MGM3 MmRmYWQzZWViZjlhOTcwZTY1NzllM2VmZjdhMzhmNmJjZjAzNzNhODQ5NGQ0NTBkMTI0NDVmOWZm NjJjMjMzZGMxZDIzNzkKK1BUID0gMzBmMWM3ZmI1ZmMxNTJkYWQ2OTExNjIzY2E0YWYxZWI0OTVl MTA4ZWQ5NGI2ZTZjYzE5ZWFiZWFhN2I4NTI2MmVhM2NjNGRjNTI5N2FhNmY3Y2Y1MDRhYzZlMDdk YjVkYjU1MGU2CitBQUQgPQorQ1QgPSBiMmNiYWU0ZGY4ODk4Y2EyMjMyMTM4MjRhNWMwOGUxNmVk YTgxZjA2MzkxNmU4MTNiZjJkMGQ4YzdlOGE3NWIyZDBhOWY2ZGU5MWUwOGQ1NDIyOTcwNTM0MzMx Y2YxZGQ1M2ZhOGUKK1RhZyA9IDhlZjA4MjYwCisKK0NvdW50ID0gMTAKK0tleSA9IDc1ZDY1MWEz NzdjY2RjMGU3NDNkNzNiODIwNWZiMzhjCitJViA9IGM3Mjk2Nzk2ZWYwMzFkMzcyMjg0ZjdiMTQ4 MWExMzg2MmFlYzI0Mzc5MmNhNzNmNDBlMTFiZmUzOWRhMjg5ODRmMTFkNTkxZDMyOTRjODMzYmFi ZjA1YTFmMTliNjAzZjRmNGE5Y2ExMTAyZjIwMWMxNDA1YjZjYjQ1ZmFjYzhlZjQwODU0MTk2M2Fi Y2FmYTkwN2IyZWI4ZTVjMWM0MDRiMGU0ODg0YTQ4YmJiMmQ0M2FkZDRkYzFjNDRjNTI2Mjk1YmNm YmQ4ZjJiNzA0MWVkNDkxODllODM1Y2RmNGVkMDBkY2JiNDUwZWVmNDA3MDQ4MmY1ZThiNTIzNjA5 NjYKK1BUID0gMTNhYjc0M2Q5ZGI1MTE4NTdmMGY3OWE4NDc0MmMyMjViMzY5MmE5YWVlOGE2MzY5 N2Q0MmZlNTBkNzRmZTAyOGNjZjk1ZTE4YTJkZDJkOWI3NzgzOTJlZTdhNWQyZjIzYjM5OWViCitB QUQgPQorQ1QgPSAwOWMzZjE1M2VmNzEyZmNiM2I1ZmNhMmI5YmY3ZjI1NzQwZmI3NDhiZWM2NGJj MzU1NzZlZDAxNjgyMDMwYWUyNzI4ZDQyODIxNDAyNjQ4MTllOGM0ZGVkZDQ4ZTI5MTk5YTYyMzYK K1RhZyA9IGFlMzc0ZGQ0CisKK0NvdW50ID0gMTEKK0tleSA9IDE1NDE0ZmRhNTk0YWE4N2EzZTdh ZjY5ZGY3NjlhZGJmCitJViA9IDdmMDIxYTc4MjkzZTdjYjRkZDBhZjIyMWVmZGEzMTQ5YjBjYWI4 NzI0MWI1OTc4NjUyNjdjYmFiNWFhZDUzMGVhNGFhNGIxMDgxNWJhOTMxOGE0NWZjYjIyZmQwZTZk NjkyZDdiZWVjYzIwNDJmYTI3OTFmNmNjYTVmOTkxNmIwYmJhZTc5ZTlkOTExMzNhYTU0ZDE1YTEz OTdmOGIwNjM2OTVhM2QzNmI4ZTU3M2E4NjZmYzk0OTY0ZjM5MDE2ZTk0OTBjMzcxODljYmIwNjM4 ZGIwOTU0OGE5MTY4OGQ3M2UyYzBkNDU0MmY1YmQwOGUwM2FjMGQ3NWUzNmY1MTkKK1BUID0gYmM4 MjYzY2NmNTBkMDIyNGQwODg1NDZiYzE2ZTI1Nzc5MjU1NjdjYTUyZDk4ZWM0NWNiNDNiMTkwMTU5 YmJkNWYwMzI2ZDQ0OThhOGE4OGMwZWEwYjBhNzk0MjBiOTA2Y2Q1MTE1CitBQUQgPQorQ1QgPSAz NGIwNzk0Mjc5M2IwNjZiNzRiN2ZiOGE0Y2U3MWEwNGY5YjI5ZTQwZGNhMzUxZjViNmUwOTM5YmMy ODE5Y2Q5NWU2OWJkNTgxNjNhNGRmOTcyOWUzZDYyMjBhNmRmNjBhNGJhOWUKK1RhZyA9IGJjZjRh ZWQ5CisKK0NvdW50ID0gMTIKK0tleSA9IDRkNzNjYWU5NmRlZDk4ZTE2ODgxMDRhNjNmNDYyYzc2 CitJViA9IDMzMWI1MWZkODhjZDQ3MzFlMGVjYTA1MTcxN2I2NDJmODZlYTZkNjk0MWY5YTczMzFm ZjM2MWUwZWRjM2Y5ZWE0YzAxM2Q1ODVmM2VmZjcwMDA0YTY5NmM0YjUxZDdjNTg5Y2E5N2U1ZmQz MGY0YjJmOTljMGYzYWM4Mzc2OWMyMzk3ZTEwNjY5YjdiODNhZWY3MTRhMjM4ODYzOGI4OTQxZWZk ZThlNjMxMDk4ZGQ3ODc0Mjc3MmY0ODRlZGQ1NjhmZWZlMjZiOWQ5ODFiNDM3ZTRlNGYzYWQyNTQ0 NWUxYWE4Yzg2MDhjNjU1YTUwOTBkMmNhYzE1OGVlNjdlOTgKK1BUID0gYmY1NWQ0OGFlNTAxNWMz OWJiMTY3NzgyY2FiMzkxNTEwZDdiN2Q2OThlOWQzZmFhY2Q3ZDQwOWZlNGQ4NmZlYTBhNmY2MTEy OGI2YWEzMDVhYzBmZTRjZWU0ZDU4MmRkMzBlNzE3CitBQUQgPQorQ1QgPSAzY2YyOWY0ZDUwZmVh YzVjZGE0YzdjZWY5MWQ1NjNiMjU3MzA5NmI3ZjMyYzcyMzM1NWQ4ZDU5YjhlMWEwZTIyOWRjMmY2 MTE0ZjFkYjZiZGMyNjIxMjA0M2QxNTM3MDk1OTdjMWQKK1RhZyA9IDc2ZmNiNTI5CisKK0NvdW50 ID0gMTMKK0tleSA9IDcwNDVhOWQ3Y2FhZTJjMGEzOWY1ODk5ODcyMDk3NGVjCitJViA9IGE5MDI4 MDA4ZjcwOGFlMTlkZDI4ZTc1YTAyYzZlODRhMDUwOTY3Nzk3ODFjZTBhOTA4MDQ3MTUyMjA4NDY4 Y2M0YjJhNTdkMjU2MDg3NjdmOTM2Y2Y3MGZiZTgyZGQ4YTYxNDk3YTE4MGUxZmM5NjdjYWY0ZTYz MTBlZDg1MDA4MmU2OTE5YzkyMmUwMjFlYzA3MGRjNjRiMDQwZWQ5ZWRiYmY1ODgzNjc2NjMwZDY5 ZTQ4OTUzMDY4YjJiZDAwNmJkNmQ1NDE3MDM4NjA0ZWU1YWVkMDQ5ODBjOWVkMjMxNmM1MzFjZTZh M2E3M2RmYWQ5MGMwNGM1ODU5NmQ1ZTkKK1BUID0gNjM1Yjk0NjA0N2MzODUzM2JiMmNiNGM5Nzk5 YjQ0ZjZlYWUwZTYzNjI2OTAxYjA3NDFmNmRjZjNjMmJiMDIyNzAzNDNjNzcwOGE3MmRmZTMwM2Iy MGY3ODA1Y2I3MzIzODZiMzQxCitBQUQgPQorQ1QgPSBhZWJiOGMxZTkxNGVhOWJjMWFkYTliMDFm ODRjYzhkYmJjNjExZjJjZDM4NmQ1ZmM4OTQ5N2QzN2U1YTQ2OWIyOGZlMmZkZjBhYjBmMWM4ODJk Y2NlNTA2MjBiMWIxOGEyZDgzNDMKK1RhZyA9IDI3YmNhZjA2CisKK0NvdW50ID0gMTQKK0tleSA9 IDc5ZDJhMzVlZmJmMDNmNTdiNjZlODc1YzIzMmUxMGQ1CitJViA9IDdjYzk2YjQ4YWZmZjQwMWFk ZjRiYWIyZWJlZGQwMjEzNzdiMThhODE5ZjNjM2FmMzlmZGE0MmUyNGM1ZDYyZTY3ZWMzMGY4YmNh YjAwMjYzZGM1YTliYjA2Y2JmZTE3NTBjOTg1NTU5MDFkMzRkNzc1ZmRjYzg2ODQxYmQwOGZiZWI0 NGJhNjhlZTc5NGRjMzUxYTI5YTFhOWRlNTc2ZDgzYzE3YTczMGQ1MGRiNzljYWI4OGQ1MzhhNDQx YmI5ZmY2YWEwNzNhMmE5NzZkZTgyMGFiNWNjNjFmODM0NzUzMjIwZDRlNDcyYTI3NWRjZDEzZGIz ZTUxYTIzYTg0YTUKK1BUID0gZDkxZTFiMjgxMWIzZTM4OTRiNDZjNTYzZTZlYTBiNGEzMzk5MGJh NGZjZThhMzU0Yzk0MWUxZWZmYzU2OTE2NzFkZTVkOTdjNGMxYTM1ZTM3MzBiNDM1ODQ5NDQ2OTVm MDA1NDRhCitBQUQgPQorQ1QgPSA2YTQ1YmViMDVjMGRiYTZjMzhjOTk3ZjhjMzdlZjA3YzdjZjc4 ZWFjZmY2ZmY0ZGQ2ZmEwMDBlNzQ1ZTgwNTNkMmQyNzBhNzQ2OTk0ZjI5Yzg2MjhmNDFmYzdmZWNk YWMxNTg2NTUKK1RhZyA9IDM2Y2FlZTc1CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9jcnlwdG8vZ2Nt RW5jcnlwdEV4dElWMjU2LnJzcCBiL3NyYy90ZXN0L2NyeXB0by9nY21FbmNyeXB0RXh0SVYyNTYu cnNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjNmYWE4OTU2YmIKLS0t IC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9jcnlwdG8vZ2NtRW5jcnlwdEV4dElWMjU2LnJzcApA QCAtMCwwICsxLDEyOSBAQAorIyBDQVZTIDE0LjAKKyMgR0NNIEVuY3J5cHQgd2l0aCBrZXlzaXpl IDI1NiB0ZXN0IGluZm9ybWF0aW9uCisjIEdlbmVyYXRlZCBvbiBGcmkgQXVnIDMxIDExOjI2OjI2 IDIwMTIKKworW0tleWxlbiA9IDI1Nl0KK1tJVmxlbiA9IDEwMjRdCitbUFRsZW4gPSA0MDhdCitb QUFEbGVuID0gMF0KK1tUYWdsZW4gPSAzMl0KKworQ291bnQgPSAwCitLZXkgPSAwZGYyNWMyYmM5 NDQ0YjRhMDFlMjZkMzU3YTNhYzA2MzVmYjZmZjJlNjVjZTFlNzU5YWFlNDkxYTE3NzcyMjQzCitJ ViA9IDU0NjUyNTczYmExODljZmZlZDNiY2ZhNjBlZmJmYjQxN2ViNGIwZThkZTgwYzdlNTM3NjVk MDE4Y2JkZGZhZTc0NjE3MjY5ZWIzNWYyOWZhZjYyOGQyOGM0MDczN2Y5ZDllMWViMGI4NzU3Yzk4 NGQ5NDM0MGVjYzVkZGQxMDhmMGE1YTBlOTYzMzVlYTgwNTk1MGQzNzhmZWE3NTY5Yjk4NjkzZTg4 YmMxY2ZkOWY2ZWI4ZDI1ZGUxNzcxMjJmYzc3NGE1YjE5NTdiY2I4MGU5MjIzMGMxMmZlNDAxYThl MDBkMGMwNDg5N2UyMzQ2NDRiZGEzNmFlNzYxZWE2MTkKK1BUID0gYjI5YWY0NjBjNmE1ZGJlNTZm MWQ2Nzc1MTM0NmQ3MTgyYzkzNDEzYTZjMzI4YzZkODUxNzZjZDhkZWE4ZWNjZTFjYWQzMDYzYzg3 MDhjMGJlOWFlNzNkNDJiYmIxMDQyMWU3M2YxCitBQUQgPQorQ1QgPSAzYzc4NmEzZDBjODk0NWJm MzIwYTIxY2E2M2YzYjhiZjVjNmJmNTZhODQxMmY4MzZkNzg5NGU0MmM5ZTA2OTVhOGU0MWJmNTli MjNmYzUyZDE3ZjhiMzQxMTgzZjFjZGNlMDJlMjIKK1RhZyA9IDBiMzFiZmZlCisKK0NvdW50ID0g MQorS2V5ID0gMWI2YjdiOGQwMGU1NDNmMGExN2JkMGJmNTk1MzE5YTRhMWY4YTU1ZmY0MWNlMjM4 MDM4MWQ0ZTgzYzgzMjQzYgorSVYgPSA3OTFkOTU0NmYxODBiODM4YjUwYmI3YjY2YjY4ZjdmMWFh MDlhMmNlZjQxMWExZGJmMmU2NGM1ZWQwMjY2MTMyMDBhYzhmMGU1Yjk2MTkyNTg1MzYyMWExZDQz MzkzMjJlYTRiN2JiYzRhZGNiYzAwOGVmZWFhZWUwZGM5NDhhOTE2YjIyZmY4NjkzYTdkNDQxNjIw ZDBmZjY3NjgwYjIzNTY3Zjk1ODJlMjJlZWM1Mjk0MDhjNmQwYTAwZGUxYmQxZWU1YTExZWQ3ZmEy OWI3NTY3Zjk5MGU0MTJjZTkwZWUxMmQ1YjFkOGJhOGMyYjUyOGQwZDk5NjNmZGM0OWE1CitQVCA9 IDBhNzYwOTBkZTY3NmQ3MWQ5ZjVlZTg1MTE4NjRmMGM5NDQwYTBmYTEyYjUxNTVhNWJmZmMzNjEy N2JjOTU3YjI5M2Q0ZmI2MjRhZjNiOTU2Mzg1NzgzMTI0ZjI4ZjZmM2MwZjBlOAorQUFEID0KK0NU ID0gZmRhYTllZjJjNjVkNzY2NmI2MTM2N2Y4NDM4NjNhM2IyNzMyNDkxOTI1NTFiNTYzM2NmYWY4 NGE1YWI5ZWNiYTQyOTE2Mzk1MTc3ZjlhMTZjMWFkMzg1ZTc3MzkzY2Q5M2Q3MWIzCitUYWcgPSBm ZDg1NGQ2MworCitDb3VudCA9IDIKK0tleSA9IDI2MWEwMzgyYzczOTA5MzYzNDUwMjMwM2Q2MGRk MGQyYTU2OGI1MTU1MTQ3ZDY2MWU3Nzg5ZjdiZDcwZGU4MmMKK0lWID0gZTIyMzMwYTI5ODFiOWI2 MDM1NGE3NDBjNDlkY2QxN2M5MDE2Y2ZmNTA0MjM5NzdmN2ZjODUwMGZjMzZhODE2MTBjOTc5ZWIz N2ExZjljNGQ1NGQxMWI3OTA5MDY0OTIyMDUyNjMxNzhkY2E2ZDI2OWEyMzBhNTk1ZWU5NWVkZWI2 MGU0NWQ5MmEyZDYxNjk4NzdkZmU1NTE0YjIzZGIxNDNkYmNmM2NhNDRlMTNjZjViNzQwMmU0Zjk1 YTllNjc2MDQ1MWJlMmQ1N2QxZDVmZWZiMDE1ZmZlNGI2OTQ1NmQ4NzMzODg2NWVlODc3NWQxY2Nl MjM4Zjc1YzM0NWRhZAorUFQgPSA0MmM4Yzc5OTg4YzUyYmNmMzg4NjVhNmYzNDFhNTE2NTI5NGFm MDk0N2JjNGZhNTk3YzZmNjQ4YTExNzIwNzA4NTFjNGVlMTU0NjA0ZDlhMjFjOGQ1M2Y3ZWJhNzdm YmI3MmNmMmIKK0FBRCA9CitDVCA9IDBmYjM2ODU2M2M2YWQwYzA5NzIwNzIzOWE3OTFiYzY4NTI3 NGQ0MzRjNGE1NGNiMGVhOTdhOThiNGNlZTllYjEwMGM0Y2Q2MjZiYTgyYzMzOGEzZjUxY2IyOTM5 MWIxZGEzYTQ0ZgorVGFnID0gYTk2MDdlNDIKKworQ291bnQgPSAzCitLZXkgPSA1ZjNkNmI1Yzc2 Y2I3YWQwYmUzZDc3MWYxZjdkMWJhZmQ4OGM4YzdjN2M4NDkyMmY4OWY0NWYzYjc0NTNlYjQ0CitJ ViA9IDcwNzJkMzAyZTRhY2I2NDIwOTBjNWQ0OGU0NTQ5YTg4MjM3MjViZTEzODkzMTZkZjAxNTJl NjhjNDFmNzc5MzdlYWRjNGVlMWQxNjQxMDE3MTdjZGNkZDNiYzliZTNjMjY2OWMwYjEzOTQ5NTMw OTBhYzc4N2ZiMTE3NTAwYjYyNzUxMjJmNjA4ZTcwYTNmNTA2M2IyMWZhZTQyY2E0YjAwNzI0YjIx YzUwZTI3YzM3YTc3ZDRiZWZiMTE4MDE4YWRhNzk5OTg4ODQ0MmUxMjcxNDEwZjZiODA0YzM2YTI3 YTQxZTk1YTQzODc5MmRlNGYwNmZkNzEyMmIxNzdjYzMKK1BUID0gMDBkODJjYzAwYzA3ZDNjZjBm ZDliMzFkZGMwOTFkMzUxYWFiOWI1OGFmMDdkMmM1OWYzZTI4YzcyMDJlZjZlM2VjMzU3MjZjYmRk MTRmOGYxOTg1YTc3MGQwOTI0NzBmMTE1YmU3CitBQUQgPQorQ1QgPSAwYWFiMGRiYjMxYzExM2Iz M2IxMTY2NTkyOTRlMGFmNTQ5N2M5ODdhZjg3MGFlOGNlNTUyODhkNDhlOGE0ZjFiM2U4Mzc3Y2Iz NGQwNjQ2MGRhZjNjYzk5ZmJlZmI5MDcyNGEzOWYKK1RhZyA9IDI2ZTU2YjEzCisKK0NvdW50ID0g NAorS2V5ID0gMWQ0YjZiNmJhNDMyNjlkNDZjYTVjMGZhYjM4YjYxZjFkMmJmM2QyNGRhZTQ2MTgx ZmFjNzM0MjBhOGU2MTk0ZgorSVYgPSAwMWMyODNhOTBjNTg4ZGFmYzU4NWY0MzdkYzExMWU5NGRk OGVhOThhNjIyYTVkMmU1NTRhODcwODZlYzEwZThkYWM5YjIwNWZhZTcwYmUzYzAyNGIzZjlmYmRj MjYyMDhhNmU0NGQwODJhZDkyYTUxYTdmYTFmODYxZDBlOTNlN2U3NGQ0ZTQxNDI2ZTcwYjJlN2Vm N2ZiY2JjNWEzMDJhZWQ0YmM4YTQyOTYzY2E1MzMzNDI1OWYxOTI0ZTc0MjI1YzNiZjlhYTJmZmRm OTdhMmJlNjQ3NGM3MmY2ZGVkYmE3YzQ1NGUzNmZiYzM1Mzc1OTZhNjNiNjFhNGNmM2NlCitQVCA9 IDRlYjAzNmQ5NDVjMTRkZTI2YzRlMGM4M2Q0NDZkYWNiNTdlOTFiNWJkZWMyZWY2MTJiYmVkODEz NWU1N2NlNjJiMjg4NDNmYmFjNTU1NTgwZWYyM2M3NDk1OWViODY5YTAxNzg3MgorQUFEID0KK0NU ID0gMjRkNjdmMmU5NDI5NDI1NWI5ZmQ5MGMxNmI2N2M3YThiM2E0N2E0Mjc4Mjk1NGFhMTVlODBm ZmU3MzJkNjQzNDJiMWVjNjVhYTY2ZmM0ZDZiOGZlOWRmY2RiZjRkNGMxYTk3OWU3CitUYWcgPSAz NzM1OGU4NgorCitDb3VudCA9IDUKK0tleSA9IGNiZmJiMTVhNGZhZTRhZjNkZTU1ZmZjYWE0Yjhj ZGJkNTE1ZWNjNzJmZDUwMDYwYjIyYWNjOGZhZDU3YTVmNGIKK0lWID0gODZlNDdiYTk4ZDhlZDM2 MDI2MmY5NGFmYzM2NGRmMzczZDFlNDRjNzg4YjRlZTVlZDc1NDI4MjI4NThhYWVjYTJiM2MwN2I1 NDY0ZDZmN2VkZWZjYTk3NTkxMDdiYmI2NGMwODZkNTI2Y2M0YzlhNmI5YTdjZDZkYmI1MGFjZWMy Mjk3NTk3NjEyZmQ0MzZkOGM4ZGRiYzgzNjY0MzA1YjIxNGNmMmMzYjZmYWIzZTU0NWM0OTljN2Yx Y2JiYTE4OTcwNDE0NzVmOTQ5NTJkOGE0ZmMxMDExMDk4NmI1Y2NjN2ExMGMxZDllNjQyN2RhYmJh OGQ5NDJhZGE5MjkwYQorUFQgPSA1NDcwYTYwZjI4MThmZmVmMzc0YmUzY2M1OTEwODQwOTZhNGE4 Y2FhMGRhYzAwMjRjMTJkMzA0MzgyYzMwMTI2NDUyNmIwMmVmYjY3NGRmYmNjM2JlNWM4MThhMWQ4 OGE3YzE5ZjEKK0FBRCA9CitDVCA9IGE2YThlYmFkZmU1YzVhYzc1NGU0YTJhOWNkYzI1ZmRmMzU4 OGM2OWEyODdiMGY5YWJhMjM0N2JmY2RjMTEwYTExMzQ0MjZhNDVjNjJkNTc3ZTUyYThkNjFmYWUz OWVhMzhiYWQ1MQorVGFnID0gOTc0MDZiNGIKKworQ291bnQgPSA2CitLZXkgPSAzY2VkNWM2MzA3 OGEzNmY2YjAyZDNiZWMwZGViYWNkMTkwMjFjOGRiYzUwMWE5ZDg2ZjU1NmM0YWQyY2RlZjhhCitJ ViA9IGI5NjI5ODAxY2JhMjJmNzQ5M2I0ZjYzOTQ2MjBkNDlhNzZlYzY4NmU1MjRmNWViY2IzYTc2 YjVhMTg5NDczNDg0MDYwY2JiMDFiY2JmMTAwNDg0MjdlZjIxNTI3NjI2MDg1YzhhNzVhYTUyNjRi NjMzOGFiYmMyNjE3MWMyYzNhNDRmNmIzYjVjM2ZkMDVhODkyYzgyOTBhOGY5OWJlOTYyZGVlYTQ4 ZDdhZTRlNjI2YzQ1YTQ1ZmZkYTVlZmFhZDZlNTRlOThiYTg3NmIwMzlhNWRkZTNkNjA2MWYyMTdl NTdkYTQ3NzRhY2ZhZjFmNWRhOTQ5NTA4M2FhZDRkYWQKK1BUID0gYzI5Nzg4MTA3Nzk5MDc3YWM2 ZGJjY2FkMjlhMzQ2NzI3ZjI2MzY3NmE4NTEwZmJjYWRiOWI1YmY1M2RmOTc4YjMzODJmZGZjMWI1 YzMzMTJlYWEwZjc2MjFiNmVmZGFlZWJlMWMwCitBQUQgPQorQ1QgPSA1ODExZDRhOTYxNjliMzlj ZDhmOGZmM2Y5MzFlZmRkYTY4NTUwZjE3NTU4YjQ4ZGU4YmI1YWRmNDU1YWY1MTc5YzhjNWZmNGE3 M2YzNjNmODgxOWRhZjg0NjQyNzEzMmRhZjZhMTcKK1RhZyA9IDA2ZThlN2ZhCisKK0NvdW50ID0g NworS2V5ID0gMzlhZTRmZGZlNTZiNzRhNzEzMjVhMWE2ODVhNjU5M2I0NDkzNjg5Mjg5MGNkMDVk MjcxOWE0MjBjOTdhN2M2NAorSVYgPSA4ZjExMGQwZmQyMGVjZTdmMzVjMzViMmVlZDMyMzE2ZmQ3 NDJhZTkzNDZmYzY5MDdiZDc0OTM2MWE0NDM2NDI3ZjgwMTg1YjM3NmIxNmEzNmZiOTU0MjljZmFm MmUyMmU0NmMyMTA0NDJmZTVlZmMxNDk4NWE5ZDlkODQ3YzNjZWI1ZGIwMmUwZDk5OWFjYmMzYmEw YWZkZmVjYmZhZjY1MDI0MjU4Y2M3ZjZmYzhlM2Y1NjhjYmVkZWMxYzdlYWJlM2ZmM2FiM2M3MzMx NzIyYjY0MDA0MjlkNDZiNTQ4MjBiZDFmODhhYzAzY2ZiYTVjYmQwODEyZDkxMzQyYzRiCitQVCA9 IDhiMDg2ZDExYmU3ZmY1NTMxMmFkZGFkODZiNDk1ODVlYTM4ZWExZWU3YzQyMDA5NjRjZDI2OWE0 YmI1Y2ZlMGY1MThlNmY5YjczM2VmYjRiYTNjZTM1Y2UyZTgwM2IwYWQ0N2QyNAorQUFEID0KK0NU ID0gYmU0NmQ2ZTYxZGMxMWIyZmM4YWM0YzljNWY0OWNlY2EwZmI2ZmUxZmM3MjIxYzdjYzVkOGJh MjU0YTkyMjgyNTAwYjFiMzE1MjgzMTQwMzVjZDEyNTU3OGRlOTYwYjNiYWZiNjlkCitUYWcgPSA3 YzAwYWExNAorCitDb3VudCA9IDgKK0tleSA9IGMyNDRlOWFmZDkwZWM4MTBhY2I3ZTU4NmNmN2Ew NjM4NmU2ODkyZTAxYzdkMTExZDVjMTQ1NWZjOTUyNTBkMWIKK0lWID0gNmZmOTEwM2Y5NzUxZmY0 NzQzZDg1NmM1Y2Q1NDQ5MWUxYTUzNzM4NDI2MGZiZmUwNzZmNzcyYWQwZDY2ZmY2ZGRkMGFhZmY1 NzAyMzg4NWIwYTRkNjBkMmIyNWM4MGIxY2RjNTQ4MDI2MDc3NzBhNjFhMjUwM2MyM2NmMjZmMWZl NTI5NTczYzhkNDc0NWIxOWRlZGFmZjU3NjlhNmE3OTZjMDE1NDA3NzZkNGZhOTliZTkwNTdhZDg3 Y2RjOTczZTc5Mzg2NDBmOTQ5Nzc1M2U4OGM0Y2RjMzU4YzFjZmEwNmYxZGRkODI2YzMzZjQ0YzU1 ZTJkMTgzOTI3YmFhYQorUFQgPSBjZDEyOTYxMzNjZWZlNmY1Y2Y2ZjhlYzY4YjM3MTcyYmZiNzkz YTg1ODJkOTJhNTM5ZjI0ZjM1ODI1NjliZmNmZWJiNzA2ZmU5ZjI3NjcxNmIxODU1NThmYmZkNmZl OGVhOTlhMWIKK0FBRCA9CitDVCA9IGRkMTY5NGIxNzhmMTU2MTJjNDU0ODg1YjMxMDBjNTc2Yzdi NjgyMDZjNTc4OTgxNjFkNGZkYzUxZTc1YTQyODg0MGM1Y2ZlZTEwNGMzZDg1ZmNiZDkyZWRiZDFk ODBmMjJkOGU2NAorVGFnID0gNzQxOTUzZjUKKworQ291bnQgPSA5CitLZXkgPSA3ODVlYTljZDI0 MDNlY2FlZWMzZTQ5NDBkY2U3YzQxZWMwMTIyMDNhMjYxMGM3ODBiY2E1ZDE1YWY2NDc0OGM1CitJ ViA9IGZiYzE3N2VjOWQ0N2Y2OWUyZmNhYmE5ZmVmN2RlMzA3MzVlNDZhNWQyMGRjNjZiZjY2Yzhh NzZhMzgyMDUxZDc4MGY1OGRjY2FlOGUyMDU0YmJlNDM3YTViYzA4MTQzODFiYWMyYjBlZmE5OTIw MmFhMWYxYmY3ZjUxYjg0MjkwN2RjOWI2MGY4Mzk4N2MzMWVhZTA4NmUyNmUyMDE4MjQzYmRkNDdh MjkxYjUyM2FjNjkwNWI0MGRmYjQ0MmJhMjM5Yzg3NmNkZmFhNTgxYjJlZjA2ODM0NTZhYzk0NDgy OWE5N2I2NjNlY2Q0OGMxMTZkMDZmMWYwNTRkZGZjZGIKK1BUID0gYTM0NjVhZDlhNDAwOWUyNmMz OWFjYjFkNDI0YjdiYTY1NTZhNzRkY2MyYjc4YTVhYjY1YjVkMDdjMmE5N2YzODJhYWRiNzQxNTM5 NWZhNmZjOTBiZDEzN2Y2ODk0YTc1ZjcwOTA3CitBQUQgPQorQ1QgPSAyYjNlYjVhYjI1MTI4MmRh MTc5NWEyNWY5YjQzY2NhYTVhMjc2NDNkMDQyZmMzMTVhZDY2Mjk0N2IwYzVjZGRlYjU4NDhlNmM2 OTg2OWFlNWU4MWY1Yzc2NzI5YmJhY2VkYTk4ODkKK1RhZyA9IDY0MTczNTI2CisKK0NvdW50ID0g MTAKK0tleSA9IDBiZWNmOWM3YTA2OWRiNWI5YTI1ZjI4NzFmYjA1OTRlNDUyMTI2MjYyZWMxYzQ4 YmNhM2QzMDI0ZDg1ZDBjNTEKK0lWID0gZTA1NjQzYTcyYWIwYjFmYzQyYTZmMTczMDJkNjQ0NmZj NTA3YmJiNGYwYWQ1OTE3OGY1MDg0NTMwZjAyNTM0ZGYyZTY3M2U5MmU2NzgwMjYyOWY5MzIyMWJi YTU0NWExM2ZiOTE0M2ViMmEyZWU0YmNlMDQ3YmU2MjFhOWQ5NmE0NTBhMTk5NTFkOTNjNTI3ZWI2 OThhYzdlMTMyZTRmMDA5ODVkZmY5MWUwNzlhZTc5MTU0OWQzN2RhMzEwNWM3N2VmNWQ4Y2I3NjQ5 ZjFhYTc2MWI1YTVmYmM5ZTBkN2RmYjVhYWRlOThmM2RmNGE2NDFjY2EwMmYzM2VlZDU1YworUFQg PSA3MGJhOTgyMjgwMTc2MGU1ZWM2NDdhNDFlMjdjZjYwNjk5NzhiZTZhMjhiZTBiMWRhMGYzNjYx ZTEyNDg0NzgyM2RlYzdlYzZhZjczN2Q2ZGVhNTk3Y2U1YmQ1YmFhNWQ2ZjI2NTEKK0FBRCA9CitD VCA9IDBkNDViNWFkNzcyMjY1MjQzNzRhM2JjYTM2ODA1Mjg3ODdjZWZkOTk3OGIzZjE0MDc2ODg4 ODZjZTI4ZmVhODZlN2Q5MDA1ZDdkNmFjZGUyYTdjMmZiMTU4NDc5OTE4YzA2YmJhNAorVGFnID0g NDNkZmQ4NTkKKworQ291bnQgPSAxMQorS2V5ID0gZDFmMzc0NzAyYjQ0ODFiODNlN2M3NzgzODUz YzE4NTBlODg3YjBjODBjZDI4YzA2ODZiNGNhYjZhZGM3NDRjMgorSVYgPSA1ZTE1YzQ0Y2VmMzZj MWM4OWUwMmIyOTc5ZjRlN2QyNzVmZTU5NzNhODA1ODA3NTNmNmZkNTFlYTQ3N2JhODQzNDZhMDMw YjkwYjIyYTlhZGZmZjAyMDk2YmMwYjE2OTFjMzdlZTIxY2RjMWI1ZjQ4NjI2OTZkMTk1ODU5Y2Qy YmYwYjQyM2Y1ZDE5ZGE1ZTE0NzViY2M5OWY5NmI4YzdjNTFmZTg1OTMwYWVhMGU5NzMwNGQ0YzAy NWI1MmJkMzg2NjY2ZDA1MzcwMzYzNjBlOTM5YTZmYmRmZDZjZTNiMDEyZTU1MWQzMzNmYTc0ZjNj YmI5ZDMzYTU5NDc3MzY0CitQVCA9IDk5NjQyOGEyMzJiMWI5YWM4MWZmNTI2MGViNzc5MzhmMGQ1 MzFhNGEwZWQzYmQ3NzRjNzJjMTgxMjhhZjcyZTk2NGY4ZDA1ZmI3ZWM0ZTBhYzhlMzcwNTZhNDhj ODU3MTNhM2EwMQorQUFEID0KK0NUID0gYWE5YzEwM2FlNTFiZjU1NmY3YzU3Zjk5NDhkMjhjODU5 ZjQ1OGE3NGUyMmYwMzlmZWExODNlOWUyNjJiMDIzYmRhYzliYjVhMmYxNjdiMzRjZGU0YTY5NGM1 NTVlYjBjOTA1ZjM0CitUYWcgPSBkMWVkOWNmMAorCitDb3VudCA9IDEyCitLZXkgPSBhNmE2OTUy NGQ2NmYwMTViNGFmYjc0NmFkMDk0MjQxMGJhZjA2ZDFhYmExOGVmMWE4YjQwZTM1NjMzZjA0Y2Ux CitJViA9IDVlMWRmNzU4YzYzNzI4YjEyNjlhMWQzZjYxMGI2ZTM3MjRiYzdmZjc5N2RjYjRhN2Fj YTlkZmUxYzhlMTcxN2NlNDI4MWQxYzViNGIzM2QwYWFmY2VlMzQyYTRmNGViMzAwODllZWFiMmIw NDcwZDNmOWI3MDk2MjJiZGU0NjU0ZDQxYjNiYmM2YmY1OWMxMWVkZWEyOGYyNmIwOTlkODNkNGZl ZmRjNjNhYjcyMTgyMjEyMzhmZTFjMjMwYjEyOTAyMzU0NjViNDQ1ZjYwZWFhOTgyMmVhYThkYTJj MDhmNmYyZmRhYWVmODdkYWNmNzRjN2U1ZDZjZWExOTFjNzQKK1BUID0gMGZmYzZjMzA5MDgxN2Zj MWEwZTZmMzgwMjI2OWUyNjNlNDBkMTc3NzJmYWJmNWNiZWU5MDU5NjI4NzhkNzdjOGJjNDIyM2U1 NjcxYmQ5ZjMxMGQ4ZGI1NmNlYWViYWU0MWZjNzllCitBQUQgPQorQ1QgPSBmMjQ1MzdkYjNmZTI3 ZWIwN2YxZDJiOWI3MDU5ZGZhZTk3ZGY4NmQ0ZTYwOTkzMDQ5MWM0ZWMzMTU0NDYyZGYzMDhiYTFj ODUyMDRkZDc1NDUyMWQ4ZGU5NjE5NjAzZjkwZjhjNDQKK1RhZyA9IDM2MGFkYzM2CisKK0NvdW50 ID0gMTMKK0tleSA9IGZmMDAwNzMxN2Y5ZWNjNDNjMTYwMTcwODYxNGViOGQ0NDNhNDA3MzE4Y2Jm M2MwODVjMGE5YTdjNjdmYWFmYTgKK0lWID0gODE4NmY5MmJkMzk0ZWNmYmY0YmNiYjllN2U0NDJi ZDZmYWExZTU5Zjg3ODVkOWFlYzgyNTUxZmVlMzhhYTEwMjEyYTg0NzdiZTMwNTU5MjczNzlhOTA2 OTAyYzE1MzU5OGQ1MGM2M2UzMTZjNGU0ZjM5NTZlZjA0Y2U0MGU1YjZmMTkwMWZiNWQwOGEyM2I5 MTNlNWFkNTM1MTJiMDJiYjc1Y2U5NmY4YzUwYTJjZWJkZmEwNThkZWQ5OTZmZTFkYzUzNzBlZTUw YzZkOTBlOTQ4MTI5ZDU0NGRjODljMmYyOGRkYTg0MjliYjMzOGQ2YWVkMGQ5NTU3Zjk2ODg5ZQor UFQgPSBlN2Y0MDYzMzE5ZmQzMWUwNzE5MmE1ZmM5ZTQ4NmZjMGEyYTM0NzA2NzFhNDYzNTZhYjBk MzI5ODk4MDMyNTljMGRhZTEwM2E0MDMzYzUzM2ZiZGU1ODU4NjZmYzJhZjVlYmExNTEKK0FBRCA9 CitDVCA9IDhmODY2NDQ2MTRlNGY2NDgzZjI4ZWVjMDJmYWIzM2U3Y2JiZDU2MzgxYThmODc4NTIy YzIwMTViOTFkNDg2NTI0NzJlMzU2ZjYwOGM2MjM2MTkzOWRjOTgzZTFjZDM2NGEyODY2NQorVGFn ID0gODMzMzViM2EKKworQ291bnQgPSAxNAorS2V5ID0gNDM2NDZkOWRkZWJlYzIzNDQ3ZmViZTcx NTk2ZTZmOWIyMzg3OTY1ZGIxZmFmM2YwNmZlZWM4YmM1YzgwODM0MgorSVYgPSAwZDM3NzQ2MDcy NjFiMDc0MjdkYzc3ZjBkY2Y1N2IwMjYyMjZkYmQyYzFkZjFiOWQ3NDU5ODU4MmRhNDRjNjc3YWYz NmE2YmQ4MGI2YmMxZjAwMDYzMmM4NGM1ZGZhNzAxZjhiNTFiNGRhMjI4ZDM0MGQ4YjRjY2M0ZDJm NWQ3YjVmYWQwMDgwOTEzM2VhZTkyNTBlY2QxOGQ3YTg3NDFiYjU3YzM5NDM5NmZlYjgxYzIwYmVj MjNkZTg1MjBmODgzYjhlMjJiMzYyZGRlNmU2YmQ5ZGFkNzNlODkxOTY5NTM4NGEwNGMwOWEyOGJk YjZkZTJmYTM1NmIwZDI1OWIxCitQVCA9IDJhYWI5YTQ4NGI4MTdiNzU5YmQ5ZDg3Njk2N2M5MDE2 MGExODIwOGNmYTc1M2U3YmNjZDRmNzNhNzE1YWFhNmFjYzZjZTY2NmU5N2JjMjJmYmNmMTFmMjYz ZGZlZDMzMjQxODcwNworQUFEID0KK0NUID0gZGQ4MDk3NGUzMWFkMTViYTI2ZWM4YThkYWNmYTVm NTdmMGJjNjlmNzExM2NjNmMzOWZiMDM4ZGRjZTM3ZmZlZWUzZjc4OWEwMmNkODZiMDQxOGZlMTZj YTEwNGI1ZmJkYjI2NDMyCitUYWcgPSA3NWMzNWY0YwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvY3J5 cHRvL3QvMDAxX3Rlc3RjcnlwdG8ucGwgYi9zcmMvdGVzdC9jcnlwdG8vdC8wMDFfdGVzdGNyeXB0 by5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi41ODZhMzdjNWJkCi0t LSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvY3J5cHRvL3QvMDAxX3Rlc3RjcnlwdG8ucGwKQEAg LTAsMCArMSwxMzcgQEAKKyMgUmVhZHMgYW5kIHBhcnNlcyAucnNwIGZpbGVzIGFuZCBydW5zIHRo ZW0gdGhyb3VnaCB0ZXN0Y3J5cHRvCisjCisjIFRlc3QgdmVjdG9ycyBkb3dubG9hZGVkIGZyb206 CisjCisjIGh0dHBzOi8vY3NyYy5uaXN0Lmdvdi9wcm9qZWN0cy9jcnlwdG9ncmFwaGljLWFsZ29y aXRobS12YWxpZGF0aW9uLXByb2dyYW0vY2F2cC10ZXN0aW5nLWJsb2NrLWNpcGhlci1tb2Rlcwor IworIyBTcGVjaWZpY2FsbHkgR0NNIFRlc3QgVmVjdG9ycyAoU1AgODAwLTM4RCk6CisjCisjIGh0 dHBzOi8vY3NyYy5uaXN0Lmdvdi9DU1JDL21lZGlhL1Byb2plY3RzL0NyeXB0b2dyYXBoaWMtQWxn b3JpdGhtLVZhbGlkYXRpb24tUHJvZ3JhbS9kb2N1bWVudHMvbWFjL2djbXRlc3R2ZWN0b3JzLnpp cAorIworIyBOb3RlIHRoYXQgdGhlIEFBRGxlbiA+IDAgY2FzZXMgd2VyZSByZW1vdmVkIGZyb20g b3VyIHNldCwgc2luY2Ugd2UgZG9uJ3Qgc3VwcG9ydCB0aGF0IGFuZAorIyB0aGUgdGVzdCBjb2Rl IHdpbGwganVzdCBza2lwIHRoZW0gY3VycmVudGx5LCBhbmQgd2UgYWxzbyBkb24ndCBib3RoZXIg dGVzdGluZyAxOTItYml0LAorIyBidXQgb25lIGNvdWxkIGRvd25sb2FkIHRoZSBmdWxsIHNldCBh bmQgcnVuIGFsbCBvZiB0aGUgZmlsZXMgdGhyb3VnaCBpZiB0aGV5IHdpc2hlZCBhbmQKKyMgYWxs IHNob3VsZCBwYXNzICh0aGV5IGRpZCB3aGVuIHRoaXMgdGVzdCBzdWl0ZSB3YXMgd3JpdHRlbiBv cmlnaW5hbGx5KS4KKwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKK3VzZSBUZXN0TGliOwor dXNlIFRlc3Q6Ok1vcmU7CisKK2lmICgkRU5We3dpdGhfc3NsfSBlcSAnb3BlbnNzbCcpCit7CisJ cGxhbiB0ZXN0cyA9PiA1NjsKK30KK2Vsc2UKK3sKKwlwbGFuIHNraXBfYWxsID0+ICdTU0wgbm90 IHN1cHBvcnRlZCBieSB0aGlzIGJ1aWxkJzsKK30KKworCisjIFhYWCBhZGQgQ1RSIHRlc3RzIGhl cmUKKworbXkgJGFsZ28gICAgID0gIkFFUy1HQ00iOworbXkgQHJzcGZpbGVzID0gKAorCSJnY21E ZWNyeXB0MTI4LnJzcCIsICAgICAgImdjbURlY3J5cHQyNTYucnNwIiwKKwkiZ2NtRW5jcnlwdEV4 dElWMTI4LnJzcCIsICJnY21FbmNyeXB0RXh0SVYyNTYucnNwIik7CisKK25vdGUgInJ1bm5pbmcg dGVzdHMiOworCitmb3JlYWNoIG15ICRyc3BmaWxlIChAcnNwZmlsZXMpCit7CisJb3BlbihteSAk aW5fcnNwZmlsZSwgJzwnLCAkcnNwZmlsZSkgfHwgZGllOworCW15ICV0ZXN0cnVuOworCW15ICVs ZW5ndGhzOworCisJd2hpbGUgKG15ICRsaW5lID0gPCRpbl9yc3BmaWxlPikKKwl7CisKKwkJY2hv bXAoJGxpbmUpOworCisJCSMgUmVtb3ZlIENSLCBpZiBpdCdzIHRoZXJlLgorCQkkbGluZSA9fiBz L1xyJC8vOworCisJCSMgU2tpcCBjb21tZW50cworCQlpZiAoJGxpbmUgPX4gL15bWzpzcGFjZTpd XSojLykgeyBuZXh0OyB9CisKKwkJIyBJZiB3ZSBoaXQgYSBibGFuaywgdGltZSB0byBydW4gYSB0 ZXN0CisJCWlmICgkbGluZSA9fiAvXltbOnNwYWNlOl1dKiQvKQorCQl7CisJCQlpZiAoJXRlc3Ry dW4pCisJCQl7CisJCQkJbXkgQHRlc3RhcmdzOworCisJCQkJIyBTZXQgdXAgdGhlIGNvbW1hbmQg dG8gcnVuCisJCQkJcHVzaChAdGVzdGFyZ3MsICgiJEVOVntURVNURElSfS90ZXN0Y3J5cHRvIiwg Jy1hJywgJGFsZ28pKTsKKworCQkJCWlmICgkdGVzdHJ1bnsnS2V5J30pCisJCQkJeworCQkJCQlw dXNoKEB0ZXN0YXJncywgKCctaycsICR0ZXN0cnVueydLZXknfSkpOworCQkJCX0KKworCQkJCWlm ICgkdGVzdHJ1bnsnSVYnfSkKKwkJCQl7CisJCQkJCXB1c2goQHRlc3RhcmdzLCAoJy1pJywgJHRl c3RydW57J0lWJ30pKTsKKwkJCQl9CisKKwkJCQlpZiAoJHRlc3RydW57J0NUJ30pCisJCQkJewor CQkJCQlwdXNoKEB0ZXN0YXJncywgKCctYycsICR0ZXN0cnVueydDVCd9KSk7CisJCQkJfQorCisJ CQkJaWYgKCR0ZXN0cnVueydBQUQnfSkKKwkJCQl7CisJCQkJCSMgRG9uJ3QgY3VycmVudGx5IHN1 cHBvcnQgQUFECisJCQkJCXVuZGVmKCV0ZXN0cnVuKTsKKwkJCQkJbmV4dDsKKwkJCQl9CisKKwkJ CQlpZiAoJHRlc3RydW57J1RhZyd9KQorCQkJCXsKKwkJCQkJcHVzaChAdGVzdGFyZ3MsICgnLXQn LCAkdGVzdHJ1bnsnVGFnJ30pKTsKKwkJCQl9CisKKwkJCQlpZiAoJHRlc3RydW57J1BUJ30pCisJ CQkJeworCQkJCQlwdXNoKEB0ZXN0YXJncywgKCctcCcsICR0ZXN0cnVueydQVCd9KSk7CisJCQkJ fQorCisJCQkJaWYgKCR0ZXN0cnVue2ZhaWx9KQorCQkJCXsKKwkJCQkJY29tbWFuZF9leGl0X2lz KFxAdGVzdGFyZ3MsIDEsCisJCQkJCQkiUnVuICR0ZXN0cnVue0NvdW50fSBvZiBLZXlsZW46ICRs ZW5ndGhze0tleWxlbn0sIElWbGVuOiAkbGVuZ3Roc3tJVmxlbn0sIFBUbGVuOiAkbGVuZ3Roc3tQ VGxlbn0sIEFBRGxlbjogJGxlbmd0aHN7QUFEbGVufSwgVGFnbGVuOiAkbGVuZ3Roc3tUYWdsZW59 IgorCQkJCQkpOworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQljb21tYW5kX29rKFxAdGVz dGFyZ3MsCisJCQkJCQkiUnVuICR0ZXN0cnVue0NvdW50fSBvZiBLZXlsZW46ICRsZW5ndGhze0tl eWxlbn0sIElWbGVuOiAkbGVuZ3Roc3tJVmxlbn0sIFBUbGVuOiAkbGVuZ3Roc3tQVGxlbn0sIEFB RGxlbjogJGxlbmd0aHN7QUFEbGVufSwgVGFnbGVuOiAkbGVuZ3Roc3tUYWdsZW59IgorCQkJCQkp OworCQkJCX0KKwkJCQl1bmRlZigldGVzdHJ1bik7CisJCQkJdW5kZWYoJWxlbmd0aHMpOworCQkJ fQorCQkJZWxzZQorCQkJeworCQkJCW5leHQ7CisJCQl9CisJCX0KKworCQkjIEdyYWIgbGVuZ3Ro IGluZm9ybWF0aW9uLCBqdXN0IHRvIGhhdmUuCisJCWlmICgkbGluZSA9fiAvXlxbKFtBLVphLXpd KikgPSAoWzAtOV0qKV0kLykKKwkJeworCQkJJGxlbmd0aHN7JDF9ID0gJDI7CisJCQluZXh0Owor CQl9CisKKwkJaWYgKCRsaW5lID1+IC9eKFtBLVphLXpdKikgPSAoW2EtZjAtOV0qKSQvKQorCQl7 CisJCQkkdGVzdHJ1bnskMX0gPSAkMjsKKwkJfQorCisJCWlmICgkbGluZSA9fiAvXkZBSUwkLykK KwkJeworCQkJJHRlc3RydW57ZmFpbH0gPSAxOworCQl9CisJfQorfQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvY3J5cHRvL3QvMDAyX3Rlc3Rrd3AucGwgYi9zcmMvdGVzdC9jcnlwdG8vdC8wMDJfdGVz dGt3cC5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4yNTkxMWNmZDlm Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvY3J5cHRvL3QvMDAyX3Rlc3Rrd3AucGwKQEAg LTAsMCArMSwxMjYgQEAKKyMgUmVhZHMgYW5kIHBhcnNlcyAucnNwIGZpbGVzIGFuZCBydW5zIHRo ZW0gdGhyb3VnaCB0ZXN0Y3J5cHRvCisjCisjIChQYXJ0aWFsKSBUZXN0IHZlY3RvcnMgZG93bmxv YWRlZCBmcm9tOgorIworIyBodHRwczovL2NzcmMubmlzdC5nb3YvcHJvamVjdHMvY3J5cHRvZ3Jh cGhpYy1hbGdvcml0aG0tdmFsaWRhdGlvbi1wcm9ncmFtL2NhdnAtdGVzdGluZy1ibG9jay1jaXBo ZXItbW9kZXMKKyMKKyMgU3BlY2lmaWNhbGx5IEtleSBXcmFwIFRlc3QgVmVjdG9ycyAoU1AgODAw LTM4Rik6CisjCisjIGh0dHBzOi8vY3NyYy5uaXN0Lmdvdi9DU1JDL21lZGlhL1Byb2plY3RzL0Ny eXB0b2dyYXBoaWMtQWxnb3JpdGhtLVZhbGlkYXRpb24tUHJvZ3JhbS9kb2N1bWVudHMvbWFjL2t3 dGVzdHZlY3RvcnMuemlwCisjCisjIFdlIGRvbid0IGluY2x1ZGUgdGhlIDE5Mi1iaXQgdGVzdHMs IHRob3VnaCB0aGV5IGFsbCB3b3JrZWQgd2hlbiB0aGlzIHRlc3Qgc3VpdGUgd2FzIHdyaXR0ZW4u CisjIFdlIGFsc28gZG9uJ3QgaW5jbHVkZSB0aGUgX2ludiB0ZXN0cyBhcyB0aG9zZSBhcmVuJ3Qg c3VwcG9ydGVkIGluIE9wZW5TU0wgeWV0LgorCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwor dXNlIFRlc3RMaWI7Cit1c2UgVGVzdDo6TW9yZTsKKworaWYgKCRFTlZ7d2l0aF9zc2x9IGVxICdv cGVuc3NsJykKK3sKKwlwbGFuIHRlc3RzID0+IDIwOworfQorZWxzZQoreworCXBsYW4gc2tpcF9h bGwgPT4gJ1NTTCBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnVpbGQnOworfQorCisKK215ICRhbGdv OworIyBteSBAdHh0ZmlsZXMgPSAoIktXUF9BRF8xMjgudHh0IiwgIktXUF9BRF8xOTIudHh0Iiwg IktXUF9BRF8yNTYudHh0IiwgIktXUF9BRV8xMjgudHh0IiwgIktXUF9BRV8xOTIudHh0IiwgIktX UF9BRV8yNTYudHh0Iik7CitteSBAdHh0ZmlsZXMgPQorICAoIktXUF9BRF8xMjgudHh0IiwgIktX UF9BRF8yNTYudHh0IiwgIktXUF9BRV8xMjgudHh0IiwgIktXUF9BRV8yNTYudHh0Iik7CisKK25v dGUgInJ1bm5pbmcgdGVzdHMiOworCitmb3JlYWNoIG15ICR0eHRmaWxlIChAdHh0ZmlsZXMpCit7 CisJb3BlbihteSAkaW5fdHh0ZmlsZSwgJzwnLCAkdHh0ZmlsZSkgfHwgZGllOworCW15ICV0ZXN0 cnVuOworCW15ICVsZW5ndGhzOworCisJaWYgKCR0eHRmaWxlID1+IC9eS1dQXy8pCisJeworCQkk YWxnbyA9ICdBRVMtS1dQJzsKKwl9CisKKwl3aGlsZSAobXkgJGxpbmUgPSA8JGluX3R4dGZpbGU+ KQorCXsKKworCQljaG9tcCgkbGluZSk7CisKKwkJIyBSZW1vdmUgQ1IsIGlmIGl0J3MgdGhlcmUu CisJCSRsaW5lID1+IHMvXHIkLy87CisKKwkJIyBTa2lwIGNvbW1lbnRzCisJCWlmICgkbGluZSA9 fiAvXltbOnNwYWNlOl1dKiMvKSB7IG5leHQ7IH0KKworCQkjIElmIHdlIGhpdCBhIGJsYW5rLCB0 aW1lIHRvIHJ1biBhIHRlc3QKKwkJaWYgKCRsaW5lID1+IC9eW1s6c3BhY2U6XV0qJC8pCisJCXsK KwkJCWlmICgldGVzdHJ1bikKKwkJCXsKKwkJCQlteSBAdGVzdGFyZ3M7CisKKwkJCQkjIFNldCB1 cCB0aGUgY29tbWFuZCB0byBydW4KKwkJCQlwdXNoKEB0ZXN0YXJncywgKCIkRU5We1RFU1RESVJ9 L3Rlc3RjcnlwdG8iLCAnLWEnLCAkYWxnbykpOworCisJCQkJaWYgKCR0ZXN0cnVueydLJ30pCisJ CQkJeworCQkJCQlwdXNoKEB0ZXN0YXJncywgKCctaycsICR0ZXN0cnVueydLJ30pKTsKKwkJCQl9 CisKKwkJCQlpZiAoJHRlc3RydW57J0MnfSkKKwkJCQl7CisJCQkJCXB1c2goQHRlc3RhcmdzLCAo Jy1jJywgJHRlc3RydW57J0MnfSkpOworCQkJCX0KKworCQkJCWlmICgkdGVzdHJ1bnsnUCd9KQor CQkJCXsKKwkJCQkJcHVzaChAdGVzdGFyZ3MsICgnLXAnLCAkdGVzdHJ1bnsnUCd9KSk7CisJCQkJ fQorCisJCQkJaWYgKCR0ZXN0cnVue2ZhaWx9KQorCQkJCXsKKwkJCQkJY29tbWFuZF9leGl0X2lz KFxAdGVzdGFyZ3MsIDEsCisJCQkJCQkiUnVuICR0ZXN0cnVue0NPVU5UfSBvZiBQbGFpbnRleHQg TGVuZ3RoOiAkbGVuZ3Roc3snUExBSU5URVhUIExFTkdUSCd9IgorCQkJCQkpOworCQkJCX0KKwkJ CQllbHNlCisJCQkJeworCQkJCQljb21tYW5kX29rKFxAdGVzdGFyZ3MsCisJCQkJCQkiUnVuICR0 ZXN0cnVue0NPVU5UfSBvZiBQbGFpbnRleHQgTGVuZ3RoOiAkbGVuZ3Roc3snUExBSU5URVhUIExF TkdUSCd9IgorCQkJCQkpOworCQkJCX0KKwkJCQl1bmRlZigldGVzdHJ1bik7CisJCQkJdW5kZWYo JWxlbmd0aHMpOworCQkJfQorCQkJZWxzZQorCQkJeworCQkJCW5leHQ7CisJCQl9CisJCX0KKwor CQkjIEdyYWIgbGVuZ3RoIGluZm9ybWF0aW9uLCBqdXN0IHRvIGhhdmUuCisJCWlmICgkbGluZSA9 fiAvXlxbKFtBLVphLXogXSopID0gKFswLTldKildJC8pCisJCXsKKwkJCSRsZW5ndGhzeyQxfSA9 ICQyOworCQkJbmV4dDsKKwkJfQorCisJCWlmICgkbGluZSA9fiAvXihbQS1aXSkgPSAoW2EtZjAt OV0qKSQvKQorCQl7CisJCQkkdGVzdHJ1bnskMX0gPSAkMjsKKwkJfQorCisJCWlmICgkbGluZSA9 fiAvXkNPVU5UID0gKFswLTldKikkLykKKwkJeworCQkJJHRlc3RydW57Q09VTlR9ID0gJDE7CisJ CX0KKworCQlpZiAoJGxpbmUgPX4gL15GQUlMJC8pCisJCXsKKwkJCSR0ZXN0cnVue2ZhaWx9ID0g MTsKKwkJfQorCX0KK30KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2NyeXB0by90LzAwM19jbHVzdGVy a2V5LnBsIGIvc3JjL3Rlc3QvY3J5cHRvL3QvMDAzX2NsdXN0ZXJrZXkucGwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNWI4YTI1NWFjZQotLS0gL2Rldi9udWxsCisrKyBi L3NyYy90ZXN0L2NyeXB0by90LzAwM19jbHVzdGVya2V5LnBsCkBAIC0wLDAgKzEsOTMgQEAKKyMg VGVzdCBjbHVzdGVyIGZpbGUgZW5jcnlwdGlvbiBrZXkgbWFuYWdtZW50CisjCisKK3VzZSBzdHJp Y3Q7Cit1c2Ugd2FybmluZ3M7Cit1c2UgUG9zdGdyZXNOb2RlOwordXNlIFRlc3RMaWI7Cit1c2Ug VGVzdDo6TW9yZTsKKworaWYgKCRFTlZ7d2l0aF9zc2x9IGVxICdvcGVuc3NsJykKK3sKKwlwbGFu IHRlc3RzID0+IDY7Cit9CitlbHNlCit7CisJcGxhbiBza2lwX2FsbCA9PiAidGVzdHMgY2Fubm90 IHJ1biB3aXRob3V0IE9wZW5TU0wiOworfQorCisjIGdlbmVyYXRlIHR3byBjbHVzdGVyIGZpbGUg ZW5jcnlwdGlvbiBrZXlzIG9mIHJhbmRvbSBoZXggZGlnaXRzCitteSAoJHJhbmRfaGV4LCAkcmFu ZF9oZXgyKTsKKyRyYW5kX2hleCAgLj0gc3ByaW50ZigiJXgiLCByYW5kIDE2KSBmb3IgMSAuLiA2 NDsKKyRyYW5kX2hleDIgLj0gc3ByaW50ZigiJXgiLCByYW5kIDE2KSBmb3IgMSAuLiA2NDsKKwor IyBpbml0aWFsaXplIGNsdXN0ZXIgdXNpbmcgdGhlIGZpcnN0IGNsdXN0ZXIga2V5CitteSAkbm9k ZSA9IGdldF9uZXdfbm9kZSgnbm9kZScpOworJG5vZGUtPmluaXQoCisJZXh0cmEgPT4gWworCQkn LS1maWxlLWVuY3J5cHRpb24tbWV0aG9kJywgJ0FFUzI1NicsCisJCSctLWNsdXN0ZXIta2V5LWNv bW1hbmQnLCAgICAiZWNobyAkcmFuZF9oZXgiCisJXSk7CisKKyMgU2V0IHdhbF9sZXZlbCB0byAn cmVwbGljYSc7ICBlbmNyeXB0aW9uIGNhbid0IHVzZSAnbWluaW1hbCcKKyRub2RlLT5hcHBlbmRf Y29uZigncG9zdGdyZXNxbC5jb25mJywgJ3dhbF9sZXZlbD1yZXBsaWNhJyk7CisKKyRub2RlLT5z dGFydDsKKworIyBjaGVjayBlbmNyeXB0aW9uIG1ldGhvZAorbXkgJGZpbGVfZW5jcnlwdGlvbl9t ZXRob2QgPQorICAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdTSE9XIGZpbGVfZW5jcnlw dGlvbl9tZXRob2Q7Jyk7CitvaygkZmlsZV9lbmNyeXB0aW9uX21ldGhvZCBlcSAnQUVTMjU2Jywg J2ZpbGVfZW5jcnlwdGlvbl9tZXRob2QgaXMgdmFsaWQnKTsKKworIyByZWNvcmQgcGdfcHJvYyBj b3VudAorbXkgJG9sZF9wZ19wcm9jX2NvdW50ID0KKyAgJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAnU0VMRUNUIENPVU5UKCopIEZST00gcGdfcHJvYzsnKTsKK29rKCRvbGRfcGdfcHJvY19j b3VudCA+IDAsICdwZ19wcm9jIGNvdW50IGlzIHZhbGlkJyk7CisKKyMgY3JlYXRlIHBlcm1hbmVu dCB0YWJsZQorJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSdDUkVBVEUgVEFCTEUgcGVy bV90YWJsZSAoeCkgQVMgU0VMRUNUICogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKTsnKTsK KworIyBjcmVhdGUgdW5sb2dnZWQgdGFibGUKKyMgTm9uLXBlcm1hbmVudCB0YWJsZXMgbGlrZSB1 bmxvZ2dlZCB0YWJsZXMgdXNlIGEgc3BlY2lhbCBub25jZSBiaXQsIHNvIHRlc3QgdGhvc2UgaGVy ZS4KKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwknQ1JFQVRFIFVOTE9HR0VEIFRBQkxF IHVubG9nX3RhYmxlICh4KSBBUyBTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMDAp OycKKyk7CisKKyMgV2UgY2FuIHJ1biBwZ19hbHRlcmNrZXkgYW5kIGNoYW5nZSB0aGUgY2x1c3Rl cl9rZXlfY29tbWFuZCBoZXJlCisjIHdpdGhvdXQgYWZmZWN0aW5nIHRoZSBydW5uaW5nIHNlcnZl ci4KK3N5c3RlbV9vcl9iYWlsKAorCSdwZ19hbHRlcmNrZXknLAorCSJlY2hvICRyYW5kX2hleCIs CisJImVjaG8gJHJhbmRfaGV4MiIsCisJJG5vZGUtPmRhdGFfZGlyKTsKKworJG5vZGUtPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBTWVNURU0gU0VUIGNsdXN0ZXJfa2V5X2NvbW1hbmQg VE8gJ2VjaG8gJHJhbmRfaGV4MiciKTsKKworJG5vZGUtPnN0b3A7CisKKyMgc3RhcnQvc3RvcCB3 aXRoIG5ldyBjbHVzdGVyIGtleQorJG5vZGUtPnN0YXJ0OworCisjIGNoZWNrIGVuY3J5cHRpb24g bWV0aG9kCiskZmlsZV9lbmNyeXB0aW9uX21ldGhvZCA9CisgICRub2RlLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgJ1NIT1cgZmlsZV9lbmNyeXB0aW9uX21ldGhvZDsnKTsKK29rKCRmaWxlX2VuY3J5 cHRpb25fbWV0aG9kIGVxICdBRVMyNTYnLCAnZmlsZV9lbmNyeXB0aW9uX21ldGhvZCBpcyB2YWxp ZCcpOworCisjIGNoZWNrIHBnX3Byb2MgY291bnQKK215ICRuZXdfcGdfcHJvY19jb3VudCA9Cisg ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ1NFTEVDVCBDT1VOVCgqKSBGUk9NIHBnX3By b2M7Jyk7CitvaygkbmV3X3BnX3Byb2NfY291bnQgPT0gJG9sZF9wZ19wcm9jX2NvdW50LCAnb2xk L25ldyBwZ19wcm9jIGNvdW50cyBtYXRjaCcpOworCisjIGNoZWNrIHBlcm1hbmVudCB0YWJsZSBj b3VudAorbXkgJHBlcm1fdGFibGVfY291bnQgPQorICAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICdTRUxFQ1QgQ09VTlQoKikgRlJPTSBwZXJtX3RhYmxlOycpOworb2soJHBlcm1fdGFibGVf Y291bnQgPT0gMTAwLCAncGVybV90YWJsZV9jb3VudCBjb3VudCBtYXRjaGVzJyk7CisKKyMgY2hl Y2sgdW5sb2dnZWQgdGFibGUgY291bnQKK215ICR1bmxvZ190YWJsZV9jb3VudCA9CisgICRub2Rl LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ1NFTEVDVCBDT1VOVCgqKSBGUk9NIHVubG9nX3RhYmxl OycpOworb2soJHVubG9nX3RhYmxlX2NvdW50ID09IDIwMCwgJ3VubG9nX3RhYmxlX2NvdW50IGNv dW50IG1hdGNoZXMnKTsKKworJG5vZGUtPnN0b3A7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9jcnlw dG8vdC8wMDRfYnVmZmVycy5wbCBiL3NyYy90ZXN0L2NyeXB0by90LzAwNF9idWZmZXJzLnBsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmExMzc5YjQ3NzIKLS0tIC9kZXYv bnVsbAorKysgYi9zcmMvdGVzdC9jcnlwdG8vdC8wMDRfYnVmZmVycy5wbApAQCAtMCwwICsxLDE1 NyBAQAorIyBUZXN0IGNsdXN0ZXIgZmlsZSBlbmNyeXB0aW9uIGJ1ZmZlciBtYW5hZ2VtZW50CisK KyMgVGhpcyB0ZXN0cyB0aGF0IGFuIGVuY3J5cHRlZCBzZXJ2ZXIgYWN0dWFsbHkgZW5jcnlwdHMg dGhlIGRhdGFiYXNlCisjIGZpbGVzLiAgSXQgZG9lcyB0aGlzIGJ5IGNoZWNraW5nIGZvciBzdHJp bmdzIGluIHRoZSBkYXRhYmFzZSBmaWxlcyBpbgorIyBib3RoIG5vbi1lbmNyeXB0ZWQgYW5kIGVu Y3J5cHRlZCBjbHVzdGVycy4gIFdlIHRlc3QgYSBzeXN0ZW0gdGFibGUsIGEKKyMgcGVybWFuZW50 IHJlbGF0aW9uLCBhbmQgYSB1bmxvZ2dlZC9ub24tcGVybWFuZW50IHRhYmxlLgorIyAoTm9uLXBl cm1hbmVudCByZWxhdGlvbnMgdXNlIGEgc3BlY2lhbCBub25jZSBiaXQsIHdoaWNoIGlzIHdoeSB3 ZSB0ZXN0CisjIGl0IGhlcmUuKQorCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIFBv c3RncmVzTm9kZTsKK3VzZSBUZXN0TGliOwordXNlIFRlc3Q6Ok1vcmU7CisKK2lmICgkRU5We3dp dGhfc3NsfSBlcSAnb3BlbnNzbCcpCit7CisJcGxhbiB0ZXN0cyA9PiAxNzsKK30KK2Vsc2UKK3sK KwlwbGFuIHNraXBfYWxsID0+ICJ0ZXN0cyBjYW5ub3QgcnVuIHdpdGhvdXQgT3BlblNTTCI7Cit9 CisKK215ICVmaWxlX21hdGNoX2NvdW50OworCitzdWIgZ2V0X2NsdXN0ZXJfZmlsZV9jb250ZW50 cworeworCW15ICRub2RlID0gc2hpZnQoKTsKKwlteSAlcmVsbm9kZTsKKworCSMgZ2V0IHBvc3Rn cmVzIGRhdGFiYXNlIG9pZAorCW15ICRwb3N0Z3Jlc19kYl9vaWQgPSAkbm9kZS0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCisJCSJTRUxFQ1Qgb2lkIEZST00gcGdfZGF0YWJhc2UgV0hFUkUgZGF0bmFt ZSA9ICdwb3N0Z3Jlcyc7Iik7CisJb2soJHBvc3RncmVzX2RiX29pZCAhPSAwLCAncmV0cmlldmlu ZyBwb3N0Z3JlcyBkYXRhYmFzZSBvaWQnKTsKKworCSMgZ2V0IHBnX3Byb2MgcmVsZmlsZW5vZGUK KwkkcmVsbm9kZXtwZ19wcm9jfSA9CisJICAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJT RUxFQ1QgcGdfcmVsYXRpb25fZmlsZW5vZGUoJ3BnX3Byb2MnKTsiKTsKKwlvaygkcmVsbm9kZXtw Z19wcm9jfSAhPSAwLCAncmV0cmlldmluZyBwZ19wcm9jIHJlbGZpbGVub2RlJyk7CisKKwkjIGNy ZWF0ZSBwZXJtYW5lbnQgdGFibGUKKwkkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJCSJD UkVBVEUgVEFCTEUgcGVybV90YWJsZSAoeCkgQVMgU0VMRUNUICdhYWFhYWFhYScgRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgMTAwKTsiCisJKTsKKworCSMgZ2V0IHBlcm1hbmVudCB0YWJsZSByZWxm aWxlbm9kZQorCSRyZWxub2Rle3Blcm19ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAor CQkiU0VMRUNUIHBnX3JlbGF0aW9uX2ZpbGVub2RlKCdwZXJtX3RhYmxlJyk7Iik7CisJb2soJHJl bG5vZGV7cGVybX0gIT0gMCwgJ3JldHJpZXZpbmcgcGVybWFuZW50IHRhYmxlIHJlbGZpbGVub2Rl Jyk7CisKKwkjIGNyZWF0ZSB1bmxvZ2dlZCB0YWJsZQorCSRub2RlLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwkJIkNSRUFURSBVTkxPR0dFRCBUQUJMRSB1bmxvZ190YWJsZSAoeCkgQVMgU0VMRUNU ICdiYmJiYmJiYicgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjAwKTsiCisJKTsKKworCSMgZ2V0 IHVubG9nZ2VkIHRhYmxlIHJlbGZpbGVub2RlCisJJHJlbG5vZGV7dW5sb2d9ID0gJG5vZGUtPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorCQkiU0VMRUNUIHBnX3JlbGF0aW9uX2ZpbGVub2RlKCd1bmxv Z190YWJsZScpOyIpOworCW9rKCRyZWxub2Rle3VubG9nfSAhPSAwLCAncmV0cmlldmluZyB1bmxv Z2dlZCB0YWJsZSByZWxmaWxlbm9kZScpOworCisJbXkgJGZpbGVfY29udGVudHMgPQorCSAgc2x1 cnBfZmlsZSgkbm9kZS0+YmFzZWRpciAuCisJCSAgJy9wZ2RhdGEvYmFzZS8nIC4gJHBvc3RncmVz X2RiX29pZCAuICcvJyAuICRyZWxub2Rle3BnX3Byb2N9KTsKKwkjICgpIGNvbnZlcnRzIHRvIGxp c3QgY29udGV4dAorCSRmaWxlX21hdGNoX2NvdW50e3BnX3Byb2N9ID0gKCkgPSAkZmlsZV9jb250 ZW50cyA9fiBtL3BnX1thLXpdezMsfS9nOworCisJJGZpbGVfY29udGVudHMgPQorCSAgc2x1cnBf ZmlsZSgkbm9kZS0+YmFzZWRpciAuCisJCSAgJy9wZ2RhdGEvYmFzZS8nIC4gJHBvc3RncmVzX2Ri X29pZCAuICcvJyAuICRyZWxub2Rle3Blcm19KTsKKwkkZmlsZV9tYXRjaF9jb3VudHtwZXJtfSA9 ICgpID0gJGZpbGVfY29udGVudHMgPX4gbS9hezgsfS9nOworCisJJGZpbGVfY29udGVudHMgPQor CSAgc2x1cnBfZmlsZSgkbm9kZS0+YmFzZWRpciAuCisJCSAgJy9wZ2RhdGEvYmFzZS8nIC4gJHBv c3RncmVzX2RiX29pZCAuICcvJyAuICRyZWxub2Rle3VubG9nfSk7CisJJGZpbGVfbWF0Y2hfY291 bnR7dW5sb2d9ID0gKCkgPSAkZmlsZV9jb250ZW50cyA9fiBtL2J7OCx9L2c7Cit9CisKKyMKKyMg VGVzdCB3aXRoIGRpc2FibGVkIGVuY3J5cHRpb24KKyMKKworIyBpbml0aWFsaXplIGNsdXN0ZXIK K215ICRub25fZW5jcnlwdGVkX25vZGUgPSBnZXRfbmV3X25vZGUoJ25vbl9lbmNyeXB0ZWRfbm9k ZScpOworJG5vbl9lbmNyeXB0ZWRfbm9kZS0+aW5pdCgpOworCiskbm9uX2VuY3J5cHRlZF9ub2Rl LT5zdGFydDsKKworIyBjaGVjayBlbmNyeXB0aW9uIGlzIGRpc2FibGVkCitteSAkZmlsZV9lbmNy eXB0aW9uX21ldGhvZCA9CisgICRub25fZW5jcnlwdGVkX25vZGUtPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAnU0hPVyBmaWxlX2VuY3J5cHRpb25fbWV0aG9kOycpOworb2soJGZpbGVfZW5jcnlwdGlv bl9tZXRob2QgZXEgJycsICdmaWxlX2VuY3J5cHRpb25fbWV0aG9kIGlzIHZhbGlkJyk7CisKK2dl dF9jbHVzdGVyX2ZpbGVfY29udGVudHMoJG5vbl9lbmNyeXB0ZWRfbm9kZSk7CisKKyMgcmVjb3Jk IHBnX3Byb2MgY291bnQKK215ICRxdWVyeV9wZ19wcm9jX2NvdW50ID0gJG5vbl9lbmNyeXB0ZWRf bm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBDT1VOVCgqKSBGUk9NIHBnX3By b2MgV0hFUkUgcHJvbmFtZSB+ICdecGdfW2Etel17Myx9JzsiKTsKK29rKCRxdWVyeV9wZ19wcm9j X2NvdW50ID4gMCwgJ3BnX3Byb2MgY291bnQgaXMgdmFsaWQnKTsKKworIyBjaGVjayBwZ19wcm9j IGNvdW50CitvaygkZmlsZV9tYXRjaF9jb3VudHtwZ19wcm9jfSAhPSAkcXVlcnlfcGdfcHJvY19j b3VudCwKKwknU1FML2ZpbGUgcGdfcHJvYyBjb3VudHMgbWF0Y2gnKTsKKworIyBjaGVjayBwZXJt YW5lbnQgdGFibGUgY291bnQKK29rKCRmaWxlX21hdGNoX2NvdW50e3Blcm19ICE9IDEwMCwgJ3Bl cm1fdGFibGUgY291bnQgbWF0Y2hlcycpOworCisjIGNoZWNrIHVubG9nZ2VkIHRhYmxlIGNvdW50 CitvaygkZmlsZV9tYXRjaF9jb3VudHt1bmxvZ30gIT0gMjAwLCAndW5sb2dfdGFibGUgY291bnQg bWF0Y2hlcycpOworCiskbm9uX2VuY3J5cHRlZF9ub2RlLT5zdG9wOworCisKKyMtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKworIworIyBUZXN0IHdpdGggZW5hYmxlZCBlbmNyeXB0aW9uCisjCisKK215ICRy YW5kX2hleDsKKyRyYW5kX2hleCAuPSBzcHJpbnRmKCIleCIsIHJhbmQgMTYpIGZvciAxIC4uIDY0 OworCisjIGluaXRpYWxpemUgY2x1c3RlciB1c2luZyBhIGNsdXN0ZXIga2V5CitteSAkZW5jcnlw dGVkX25vZGUgPSBnZXRfbmV3X25vZGUoJ2VuY3J5cHRlZF9ub2RlJyk7CiskZW5jcnlwdGVkX25v ZGUtPmluaXQoCisJZXh0cmEgPT4gWworCQkjIFdlIHRlc3RlZCBBRVMyNTYgaW4gMDAzLCBzbyB1 c2UgQUVTMTI4CisJCSctLWZpbGUtZW5jcnlwdGlvbi1tZXRob2QnLCAnQUVTMTI4JywKKwkJJy0t Y2x1c3Rlci1rZXktY29tbWFuZCcsICAgICJlY2hvICRyYW5kX2hleCIKKwldKTsKKworIyBTZXQg d2FsX2xldmVsIHRvICdyZXBsaWNhJzsgIGVuY3J5cHRpb24gY2FuJ3QgdXNlICdtaW5pbWFsJwor JGVuY3J5cHRlZF9ub2RlLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywgJ3dhbF9sZXZl bD1yZXBsaWNhJyk7CisKKyRlbmNyeXB0ZWRfbm9kZS0+c3RhcnQ7CisKKyMgY2hlY2sgZW5jcnlw dGlvbiBtZXRob2QKKyRmaWxlX2VuY3J5cHRpb25fbWV0aG9kID0KKyAgJGVuY3J5cHRlZF9ub2Rl LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ1NIT1cgZmlsZV9lbmNyeXB0aW9uX21ldGhvZDsnKTsK K29rKCRmaWxlX2VuY3J5cHRpb25fbWV0aG9kIGVxICdBRVMxMjgnLCAnZmlsZV9lbmNyeXB0aW9u X21ldGhvZCBpcyB2YWxpZCcpOworCitnZXRfY2x1c3Rlcl9maWxlX2NvbnRlbnRzKCRlbmNyeXB0 ZWRfbm9kZSk7CisKKyMgQmVjYXVzZSB0aGUgZmlsZXMgYXJlIGVuY3J5cHRlZCwgd2Ugc2hvdWxk IGdldCB6ZXJvIG1hdGNoZXMgZm9yIGFsbAorIyBjb21wYXJpc29ucyBiZWxvdy4gIEhvd2V2ZXIs IHRlY2huaWNhbGx5IHRoZSBlbmNyeXB0ZWQgZGF0YSBtaWdodAorIyBtYXRjaCB0aGUgZGVzaXJl ZCBzdHJpbmcsIHNvIHdlIGFsbG93IG9uZSBzdWNoIG1hdGNoLgorCisjIGNoZWNrIHBnX3Byb2MK K29rKCRmaWxlX21hdGNoX2NvdW50e3BnX3Byb2N9IDw9IDEsICdwZ19wcm9jIGlzIGVuY3J5cHRl ZCcpOworCisjIGNoZWNrIHBlcm1hbmVudCB0YWJsZQorb2soJGZpbGVfbWF0Y2hfY291bnR7cGVy bX0gPD0gMSwgJ3Blcm1fdGFibGUgaXMgZW5jcnlwdGVkJyk7CisKKyMgY2hlY2sgdW5sb2dnZWQg dGFibGUKK29rKCRmaWxlX21hdGNoX2NvdW50e3VubG9nfSA8PSAxLCAndW5sb2dfdGFibGUgaXMg ZW5jcnlwdGVkJyk7CisKKyRlbmNyeXB0ZWRfbm9kZS0+c3RvcDsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L2NyeXB0by90ZXN0Y3J5cHRvLmMgYi9zcmMvdGVzdC9jcnlwdG8vdGVzdGNyeXB0by5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjg1YmY5MjFjMDkKLS0tIC9kZXYv bnVsbAorKysgYi9zcmMvdGVzdC9jcnlwdG8vdGVzdGNyeXB0by5jCkBAIC0wLDAgKzEsNDU4IEBA CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiB0ZXN0Y3J5cHRvLmMKKyAqICAgIEEgdXRpbGl0 eSB0byB0ZXN0IG91ciBlbmNyeXB0aW9uIC8gZGVjcnlwdGlvbiByb3V0aW5lcy4KKyAqCisgKiBQ b3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxv cG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0 aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogc3JjL3Rlc3QvY3J5cHRvL3Rlc3Rj cnlwdG8uYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNkZWZpbmUgRlJPTlRFTkQg MQorCisjZGVmaW5lIEVYSVRTVUNDRVNTIDAKKyNkZWZpbmUgRVhJVERFQ1JZUFRGQUlMIDEKKyNk ZWZpbmUgRVhJVEZBSUxVUkUgMgorCisjaW5jbHVkZSAicG9zdGdyZXNfZmUuaCIKKworI2luY2x1 ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgor I2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisKKyNpbmNsdWRlICJjb21tb24vaGV4LmgiCisjaW5jbHVk ZSAiY29tbW9uL2NpcGhlci5oIgorI2luY2x1ZGUgImNvbW1vbi9sb2dnaW5nLmgiCisjaW5jbHVk ZSAiZ2V0b3B0X2xvbmcuaCIKKyNpbmNsdWRlICJwZ19nZXRvcHQuaCIKKworc3RhdGljIGNvbnN0 IGNoYXIgKnByb2duYW1lOworCitzdGF0aWMgdm9pZAordXNhZ2UoY29uc3QgY2hhciAqcHJvZ25h bWUpCit7CisJcHJpbnRmKF8oIiVzIHRlc3RzIGVuY3J5cHRpb24vZGVjcnlwdGlvbiByb3V0aW5l cyBpbiBQRyBjb21tb24gbGlicmFyeS5cblxuIiksIHByb2duYW1lKTsKKwlwcmludGYoXygiVXNh Z2U6XG4iKSk7CisJcHJpbnRmKF8oIiAgJXMgW09QVElPTl1cbiIpLCBwcm9nbmFtZSk7CisJcHJp bnRmKCJcbiIpOworCXByaW50ZihfKCIgIFBlcmZvcm1zIG9uZSBlbmNyeXB0aW9uIGFuZCBvbmUg ZGVjcnlwdGlvbiBydW4uXG4iKSk7CisJcHJpbnRmKCJcbiIpOworCXByaW50ZihfKCIgIEVuY3J5 cHRzIHRoZSBwcm92aWRlZCBwbGFpbnRleHQgKG9yIHRoZSBlbXB0eSBzdHJpbmcgaWYgbm9uZSBn aXZlbikgYW5kIGdlbmVyYXRlcyBhIHRhZywgaWYgdXNpbmcgQUVTLUdDTSwgdXNpbmcgdGhlIGtl eSBhbmQgSVYgZ2l2ZW4uXG4iKSk7CisJcHJpbnRmKF8oIiAgQWZ0ZXIgZW5jcnlwdGlvbiwgY29t cGFyZXMgcHJvdmlkZWQgY2lwaGVydGV4dCB0byByZXN1bHRpbmcgY2lwaGVydGV4dC5cbiIpKTsK KwlwcmludGYoXygiICBDb21wYXJlcyBwcm92aWRlZCB0YWcsIGlmIGFueSwgdG8gcmVzdWx0aW5n IHRhZy5cbiIpKTsKKwlwcmludGYoXygiICBJZiBubyB0YWcgaXMgcHJvdmlkZWQsIHRoZW4gdGhl IHRhZyBjcmVhdGVkIGR1cmluZyBlbmNyeXB0aW9uIGlzIHVzZWQgZHVyaW5nIGRlY3J5cHRpb24u XG4iKSk7CisJcHJpbnRmKCJcbiIpOworCXByaW50ZihfKCIgIERlY3J5cHRzIHRoZSBwcm92aWRl ZCBjaXBoZXJ0ZXh0IChvciB0aGUgZW1wdHkgc3RyaW5nIGlmIG5vbmUgZ2l2ZW4pIHVzaW5nIHRo ZSBrZXksIGFuZCBJViArIHRhZyBnaXZlbiBpZiB1c2luZyBBRVMtR0NNLlxuIikpOworCXByaW50 ZihfKCIgIEFmdGVyIHN1Y2Nlc3NmdWwgZGVjcnlwdGlvbiAocmVxdWlyZXMgdGFnIHRvIG1hdGNo IGZvciBBRVMtR0NNKSwgY29tcGFyZXMgcHJvdmlkZWQgcGxhaW50ZXh0IHRvIHJlc3VsdGluZyBw bGFpbnRleHQuXG4iKSk7CisJcHJpbnRmKF8oIiAgRXhpdHMgd2l0aCAnMScgaWYgZGVjcnlwdGlv biBmYWlscy5cbiIpKTsKKwlwcmludGYoIlxuIik7CisJcHJpbnRmKF8oIiAgRXhpdHMgd2l0aCAn MicgZm9yIGFueSBvdGhlciBmYWlsdXJlLlxuIikpOworCXByaW50ZigiXG4iKTsKKwlwcmludGYo XygiICBLZXkgaXMgYWx3YXlzIHJlcXVpcmVkLCBJViBpcyByZXF1aXJlZCBmb3IgQUVTLUdDTSBt b2RlLlxuIikpOworCXByaW50ZigiXG4iKTsKKwlwcmludGYoXygiICBBbGdvcml0aG1zIHN1cHBv cnRlZCBhcmUgQUVTLUdDTSBhbmQgQUVTLUtXUC5cbiIpKTsKKwlwcmludGYoIlxuIik7CisJcHJp bnRmKF8oIlxuT3B0aW9uczpcbiIpKTsKKwlwcmludGYoXygiICAtYSwgLS1hbGdvcml0aG09QUxH ICAgIENyeXB0byBhbGdvcml0aG0gdG8gdXNlXG4iKSk7CisJcHJpbnRmKF8oIiAgLWksIC0taW5p dC12ZWN0b3I9SVYgICBJbml0aWFsaXphdGlvbiB2ZWN0b3IgdG8gdXNlXG4iKSk7CisJcHJpbnRm KF8oIiAgLWssIC0ta2V5PUtFWSAgICAgICAgICBLZXkgdG8gdXNlLCBpbiBoZXhcbiIpKTsKKwlw cmludGYoXygiICAtcCwgLS1wbGFpbi10ZXh0PVBUICAgIFBsYWluIHRleHQgdG8gZW5jcnlwdFxu IikpOworCXByaW50ZihfKCIgIC1jLCAtLWNpcGhlci10ZXh0PUNUICAgQ2lwaGVyIHRleHQgdG8g ZGVjcnlwdFxuIikpOworCXByaW50ZihfKCIgIC10LCAtLXRhZz1UQUcgICAgICAgICAgVGFnIHRv IHVzZSBmb3IgZGVjcnlwdGlvblxuIikpOworCXByaW50ZihfKCIgIC1ULCAtLXRhZy1sZW5ndGg9 TEVOICAgTGVuZ3RoIG9mIHRhZyB0byB1c2UgZm9yIGVuY3J5cHRpb25cbiIpKTsKKwlwcmludGYo XygiICAtdiwgLS12ZXJib3NlICAgICAgICAgIHZlcmJvc2Ugb3V0cHV0XG4iKSk7CisJcHJpbnRm KF8oIiAgLVYsIC0tdmVyc2lvbiAgICAgICAgICBvdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvbiwg dGhlbiBleGl0XG4iKSk7CisJcHJpbnRmKF8oIiAgLT8sIC0taGVscCAgICAgICAgICAgICBzaG93 IHRoaXMgaGVscCwgdGhlbiBleGl0XG4iKSk7CisJcHJpbnRmKCJcbiIpOworCXByaW50ZihfKCJS ZXBvcnQgYnVncyB0byA8JXM+LlxuIiksIFBBQ0tBR0VfQlVHUkVQT1JUKTsKK30KKworCitpbnQK K21haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKwljaGFyCSAgICphbGdvcml0aG0gPSBO VUxMLAorCQkJICAgKml2X2hleCA9IE5VTEwsCisJCQkgICAqa2V5X2hleCA9IE5VTEwsCisJCQkg ICAqcGxhaW50ZXh0X2hleCA9IE5VTEwsCisJCQkgICAqY2lwaGVydGV4dF9oZXggPSBOVUxMLAor CQkJICAgKnRhZ19oZXggPSBOVUxMOworCisJdW5zaWduZWQgY2hhciAqcGxhaW50ZXh0ID0gTlVM TCwKKwkJCSAgICpjaXBoZXJ0ZXh0ID0gTlVMTCwKKwkJCSAgICprZXkgPSBOVUxMLAorCQkJICAg Kml2ID0gTlVMTCwKKwkJCSAgICp0YWcgPSBOVUxMLAorCQkJICAgKnRhZ19yZXN1bHQgPSBOVUxM LAorCQkJICAgKnJlc3VsdCA9IE5VTEw7CisKKwlpbnQJCQl2ZXJib3NlID0gMCwKKwkJCQlwbGFp bnRleHRfbGVuID0gMCwKKwkJCQljaXBoZXJ0ZXh0X2xlbiA9IDAsCisJCQkJa2V5X2xlbiA9IDAs CisJCQkJaXZfbGVuID0gMCwKKwkJCQl0YWdfbGVuID0gMTYsCisJCQkJcmVzdWx0X2xlbiA9IDAs CisJCQkJYmxvY2tzaXplID0gMCwKKwkJCQljaXBoZXIgPSBQR19DSVBIRVJfQUVTX0dDTTsKKwor CVBnQ2lwaGVyQ3R4ICpjdHggPSBOVUxMOworCisJc3RhdGljIHN0cnVjdCBvcHRpb24gbG9uZ19v cHRpb25zW10gPSB7CisJCXsiYWxnb3JpdGhtIiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICdh J30sCisJCXsiaW5pdC12ZWN0b3IiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ2knfSwKKwkJ eyJrZXkiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ2snfSwKKwkJeyJwbGFpbi10ZXh0Iiwg cmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICdwJ30sCisJCXsiY2lwaGVyLXRleHQiLCByZXF1aXJl ZF9hcmd1bWVudCwgTlVMTCwgJ2MnfSwKKwkJeyJ0YWciLCByZXF1aXJlZF9hcmd1bWVudCwgTlVM TCwgJ3QnfSwKKwkJeyJ0YWctbGVuZ3RoIiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICdUJ30s CisJCXsidmVyYm9zZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAndid9LAorCQl7TlVMTCwg MCwgTlVMTCwgMH0KKwl9OworCisJaW50CQkJYzsKKworCXBnX2xvZ2dpbmdfaW5pdChhcmd2WzBd KTsKKwlzZXRfcGdsb2NhbGVfcGdzZXJ2aWNlKGFyZ3ZbMF0sIFBHX1RFWFRET01BSU4oInRlc3Rj cnlwdG8iKSk7CisJcHJvZ25hbWUgPSBnZXRfcHJvZ25hbWUoYXJndlswXSk7CisKKwlpZiAoYXJn YyA+IDEpCisJeworCQlpZiAoc3RyY21wKGFyZ3ZbMV0sICItLWhlbHAiKSA9PSAwIHx8IHN0cmNt cChhcmd2WzFdLCAiLT8iKSA9PSAwKQorCQl7CisJCQl1c2FnZShwcm9nbmFtZSk7CisJCQlleGl0 KEVYSVRTVUNDRVNTKTsKKwkJfQorCQlpZiAoc3RyY21wKGFyZ3ZbMV0sICItLXZlcnNpb24iKSA9 PSAwIHx8IHN0cmNtcChhcmd2WzFdLCAiLVYiKSA9PSAwKQorCQl7CisJCQlwdXRzKCJ0ZXN0Y3J5 cHRvIChQb3N0Z3JlU1FMKSAiIFBHX1ZFUlNJT04pOworCQkJZXhpdChFWElUU1VDQ0VTUyk7CisJ CX0KKwl9CisKKwkvKiBQcm9jZXNzIGNvbW1hbmQtbGluZSBhcmd1bWVudCAqLworCisJd2hpbGUg KChjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgImE6aTprOnA6Yzp0OlQ6diIsIGxvbmdfb3B0 aW9ucywgTlVMTCkpICE9IC0xKQorCXsKKwkJc3dpdGNoIChjKQorCQl7CisJCQljYXNlICdhJzoK KwkJCQlhbGdvcml0aG0gPSBwZ19zdHJkdXAob3B0YXJnKTsKKwkJCQlicmVhazsKKworCQkJY2Fz ZSAnaSc6CisJCQkJaXZfaGV4ID0gcGdfc3RyZHVwKG9wdGFyZyk7CisJCQkJYnJlYWs7CisKKwkJ CWNhc2UgJ2snOgorCQkJCWtleV9oZXggPSBwZ19zdHJkdXAob3B0YXJnKTsKKwkJCQlicmVhazsK KworCQkJY2FzZSAncCc6CisJCQkJcGxhaW50ZXh0X2hleCA9IHBnX3N0cmR1cChvcHRhcmcpOwor CQkJCWJyZWFrOworCisJCQljYXNlICdjJzoKKwkJCQljaXBoZXJ0ZXh0X2hleCA9IHBnX3N0cmR1 cChvcHRhcmcpOworCQkJCWJyZWFrOworCisJCQljYXNlICd0JzoKKwkJCQl0YWdfaGV4ID0gcGdf c3RyZHVwKG9wdGFyZyk7CisJCQkJYnJlYWs7CisKKwkJCWNhc2UgJ1QnOgorCQkJCXRhZ19sZW4g PSBhdG9pKG9wdGFyZyk7CisJCQkJYnJlYWs7CisKKwkJCWNhc2UgJ3YnOgorCQkJCXZlcmJvc2Ug PSAxOworCQkJCWJyZWFrOworCisJCQlkZWZhdWx0OgorCQkJCWZwcmludGYoc3RkZXJyLCBfKCJU cnkgXCIlcyAtLWhlbHBcIiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIpLCBwcm9nbmFtZSk7CisJ CQkJZXhpdChFWElURkFJTFVSRSk7CisJCX0KKwl9CisKKwkvKiBDb21wbGFpbiBpZiBhbnkgYXJn dW1lbnRzIHJlbWFpbiAqLworCWlmIChvcHRpbmQgPCBhcmdjKQorCXsKKwkJcGdfbG9nX2Vycm9y KCJ0b28gbWFueSBjb21tYW5kLWxpbmUgYXJndW1lbnRzIChmaXJzdCBpcyBcIiVzXCIpIiwKKwkJ CQkJIGFyZ3Zbb3B0aW5kXSk7CisJCWZwcmludGYoc3RkZXJyLCBfKCJUcnkgXCIlcyAtLWhlbHBc IiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIpLAorCQkJCXByb2duYW1lKTsKKwkJZXhpdChFWElU RkFJTFVSRSk7CisJfQorCisJLyogQ2hlY2sgb3B0aW9ucyBwYXNzZWQgaW4gKi8KKwlpZiAoYWxn b3JpdGhtKQorCXsKKwkJaWYgKHN0cmNtcChhbGdvcml0aG0sICJBRVMtR0NNIikgPT0gMCkKKwkJ CWNpcGhlciA9IFBHX0NJUEhFUl9BRVNfR0NNOworCQllbHNlIGlmIChzdHJjbXAoYWxnb3JpdGht LCAiQUVTLUtXUCIpID09IDApCisJCQljaXBoZXIgPSBQR19DSVBIRVJfQUVTX0tXUDsKKwkJZWxz ZQorCQl7CisJCQlwZ19sb2dfZXJyb3IoIlVuc3VwcG9ydGVkIGFsZ29yaXRobSBzZWxlY3RlZC4i KTsKKwkJCWZwcmludGYoc3RkZXJyLCBfKCJUcnkgXCIlcyAtLWhlbHBcIiBmb3IgbW9yZSBpbmZv cm1hdGlvbi5cbiIpLAorCQkJCQlwcm9nbmFtZSk7CisJCQlleGl0KEVYSVRGQUlMVVJFKTsKKwkJ fQorCX0KKworCWlmIChrZXlfaGV4ID09IE5VTEwpCisJeworCQlwZ19sb2dfZXJyb3IoIktleSBt dXN0IGJlIHByb3ZpZGVkIik7CisJCWZwcmludGYoc3RkZXJyLCBfKCJUcnkgXCIlcyAtLWhlbHBc IiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIpLAorCQkJCXByb2duYW1lKTsKKwkJZXhpdChFWElU RkFJTFVSRSk7CisJfQorCWVsc2UKKwl7CisJCXNpemVfdAkJa2V5X2hleF9sZW4gPSBzdHJsZW4o a2V5X2hleCk7CisKKwkJa2V5X2xlbiA9IHBnX2hleF9kZWNfbGVuKGtleV9oZXhfbGVuKTsKKwor CQlrZXkgPSBwZ19tYWxsb2MwKGtleV9sZW4pOworCQlwZ19oZXhfZGVjb2RlKGtleV9oZXgsIGtl eV9oZXhfbGVuLCAoY2hhciAqKSBrZXksIGtleV9sZW4pOworCX0KKworCWlmIChjaXBoZXIgPT0g UEdfQ0lQSEVSX0FFU19HQ00gJiYgaXZfaGV4ID09IE5VTEwpCisJeworCQlwZ19sb2dfZXJyb3Io IkluaXRpYWxpemF0aW9uIHZlY3RvciBtdXN0IGJlIHByb3ZpZGVkIik7CisJCWZwcmludGYoc3Rk ZXJyLCBfKCJUcnkgXCIlcyAtLWhlbHBcIiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIpLAorCQkJ CXByb2duYW1lKTsKKwkJZXhpdChFWElURkFJTFVSRSk7CisJfQorCWVsc2UgaWYgKGNpcGhlciA9 PSBQR19DSVBIRVJfQUVTX0dDTSkKKwl7CisJCXNpemVfdAkJaXZfaGV4X2xlbiA9IHN0cmxlbihp dl9oZXgpOworCisJCWl2X2xlbiA9IHBnX2hleF9kZWNfbGVuKGl2X2hleF9sZW4pOworCisJCWl2 ID0gcGdfbWFsbG9jMChpdl9sZW4pOworCQlwZ19oZXhfZGVjb2RlKGl2X2hleCwgaXZfaGV4X2xl biwgKGNoYXIgKikgaXYsIGl2X2xlbik7CisJfQorCisJaWYgKHBsYWludGV4dF9oZXgpCisJewor CQlzaXplX3QJCXBsYWludGV4dF9oZXhfbGVuID0gc3RybGVuKHBsYWludGV4dF9oZXgpOworCisJ CXBsYWludGV4dF9sZW4gPSBwZ19oZXhfZGVjX2xlbihwbGFpbnRleHRfaGV4X2xlbik7CisKKwkJ cGxhaW50ZXh0ID0gcGdfbWFsbG9jMChwbGFpbnRleHRfbGVuKTsKKwkJcGdfaGV4X2RlY29kZShw bGFpbnRleHRfaGV4LCBwbGFpbnRleHRfaGV4X2xlbiwgKGNoYXIgKikgcGxhaW50ZXh0LAorCQkJ CQkgIHBsYWludGV4dF9sZW4pOworCX0KKworCS8qCisJICogT3BlblNTTCAxLjEuMWQgYW5kIGVh cmxpZXIgY3Jhc2hlcyBvbiBzb21lIHplcm8tbGVuZ3RoIHBsYWludGV4dCBhbmQKKwkgKiBjaXBo ZXJ0ZXh0IHN0cmluZ3MuICBJdCBjcmFzaGVzIG9uIGFuIGVuY3J5cHRpb24gY2FsbCB0bworCSAq IEVWUF9FbmNyeXB0RmluYWxfZXgoKCkgaW4gR0NNIG1vZGUgb2YgemVyby1sZW5ndGggc3RyaW5n cyBpZiBwbGFpbnRleHQKKwkgKiBpcyBOVUxMLCBldmVuIHRob3VnaCBwbGFpbnRleHRfbGVuIGlz IHplcm8uICBTZXR0aW5nIHBsYWludGV4dCB0bworCSAqIG5vbi1OVUxMIGFsbG93cyBpdCB0byB3 b3JrLiAgSW4gS1dQIG1vZGUsIHplcm8tbGVuZ3RoIHN0cmluZ3MgZmFpbCBpZgorCSAqIHBsYWlu dGV4dF9sZW4gPSAwIGFuZCBwbGFpbnRleHQgaXMgbm9uLU5VTEwgKHRoZSBvcHBvc2l0ZSkuICBP cGVuU1NMCisJICogMS4xLjFlKyBpcyBmaW5lIHdpdGggYWxsIG9wdGlvbnMuCisJICovCisJZWxz ZSBpZiAoY2lwaGVyID09IFBHX0NJUEhFUl9BRVNfR0NNKQorCXsKKwkJcGxhaW50ZXh0X2xlbiA9 IDA7CisJCXBsYWludGV4dCA9IHBnX21hbGxvYzAoMSk7CisJfQorCisJaWYgKGNpcGhlcnRleHRf aGV4KQorCXsKKwkJc2l6ZV90CQljaXBoZXJ0ZXh0X2hleF9sZW4gPSBzdHJsZW4oY2lwaGVydGV4 dF9oZXgpOworCisJCWNpcGhlcnRleHRfbGVuID0gcGdfaGV4X2RlY19sZW4oY2lwaGVydGV4dF9o ZXhfbGVuKTsKKworCQljaXBoZXJ0ZXh0ID0gcGdfbWFsbG9jMChjaXBoZXJ0ZXh0X2xlbik7CisJ CXBnX2hleF9kZWNvZGUoY2lwaGVydGV4dF9oZXgsIGNpcGhlcnRleHRfaGV4X2xlbiwKKwkJCQkJ ICAoY2hhciAqKSBjaXBoZXJ0ZXh0LCBjaXBoZXJ0ZXh0X2xlbik7CisJfQorCS8qIHNlZSBPcGVu U1NMIDEuMS4xZCBpdGVtIGFib3ZlLCB0aG91Z2ggY3Jhc2ggb25seSBoYXBwZW5zIGluIEdDTSBt b2RlICovCisJZWxzZSBpZiAoY2lwaGVyID09IFBHX0NJUEhFUl9BRVNfR0NNKQorCXsKKwkJY2lw aGVydGV4dF9sZW4gPSAwOworCQljaXBoZXJ0ZXh0ID0gcGdfbWFsbG9jMCgxKTsKKwl9CisKKwlp ZiAoY2lwaGVyID09IFBHX0NJUEhFUl9BRVNfR0NNKQorCQl0YWdfcmVzdWx0ID0gcGdfbWFsbG9j MCh0YWdfbGVuKTsKKworCWlmICh0YWdfaGV4KQorCXsKKwkJc2l6ZV90CQl0YWdfaGV4X2xlbiA9 IHN0cmxlbih0YWdfaGV4KTsKKworCQl0YWdfbGVuID0gcGdfaGV4X2RlY19sZW4odGFnX2hleF9s ZW4pOworCisJCXRhZyA9IHBnX21hbGxvYzAodGFnX2xlbik7CisJCXBnX2hleF9kZWNvZGUodGFn X2hleCwgdGFnX2hleF9sZW4sIChjaGFyICopIHRhZywgdGFnX2xlbik7CisJfQorCWVsc2UKKwkJ dGFnID0gdGFnX3Jlc3VsdDsKKworCWlmICh2ZXJib3NlKQorCXsKKwkJcHJpbnRmKCJBbHJvZ2l0 aG06ICVkXG4iLCBjaXBoZXIpOworCQlwcmludGYoIktleSBsZW5ndGg6ICVkICglZCBiaXRzKVxu Iiwga2V5X2xlbiwga2V5X2xlbiAqIDgpOworCQlwcmludGYoIklWIGxlbmd0aDogJWQgKCVkIGJp dHMpXG4iLCBpdl9sZW4sIGl2X2xlbiAqIDgpOworCQlwcmludGYoIlRhZyBsZW5ndGg6ICVkICgl ZCBiaXRzKVxuIiwgdGFnX2xlbiwgdGFnX2xlbiAqIDgpOworCQlwcmludGYoIlBsYWludGV4dCBs ZW5ndGg6ICVkXG4iLCBwbGFpbnRleHRfbGVuKTsKKwkJcHJpbnRmKCJDaXBoZXJ0ZXh0IGxlbmd0 aDogJWRcbiIsIGNpcGhlcnRleHRfbGVuKTsKKwl9CisKKwkvKgorCSAqIEVuY3J5cHRpb24KKwkg KgorCSAqIFdlIHJ1biB0aHJvdWdoIHRoZSBlbmNyeXB0aW9uIGV2ZW4gaWYgdGhlcmUgd2Fzbid0 IGEgcGxhaW50ZXh0CisJICogcHJvdmlkZWQtIGluIHRoYXQgY2FzZSB3ZSBqdXN0IGVuY3J5cHQg dGhlIGVtcHR5IHN0cmluZy4KKwkgKi8KKwljdHggPSBwZ19jaXBoZXJfY3R4X2NyZWF0ZShjaXBo ZXIsIGtleSwga2V5X2xlbiwgdHJ1ZSk7CisJaWYgKCFjdHgpCisJeworCQlwZ19sb2dfZXJyb3Io IkVycm9yIGNyZWF0aW5nIGVuY3J5cHRpb24gY29udGV4dCwgYmUgc3VyZSBrZXkgaXMgb2Ygc3Vw cG9ydGVkIGxlbmd0aCIpOworCQlleGl0KEVYSVRGQUlMVVJFKTsKKwl9CisKKwlibG9ja3NpemUg PSBwZ19jaXBoZXJfYmxvY2tzaXplKGN0eCk7CisKKwkvKiBJZiB3ZSB3ZXJlIHByb3ZpZGVkIHdp dGggYSBwbGFpbnRleHQgaW5wdXQgKi8KKwlpZiAocGxhaW50ZXh0X2xlbiAhPSAwKQorCXsKKwkJ LyogRW5jcnlwdGlvbiBtaWdodCByZXN1bHQgaW4gYXMgbXVjaCBhcyBpbnB1dCBsZW5ndGggKyBi bG9ja3NpemUgKi8KKwkJcmVzdWx0X2xlbiA9IHBsYWludGV4dF9sZW4gKyBibG9ja3NpemU7CisJ CXJlc3VsdCA9IHBhbGxvYzAocmVzdWx0X2xlbik7CisKKwkJaWYgKGNpcGhlcnRleHRfaGV4ID09 IE5VTEwpCisJCXsKKwkJCWNpcGhlcnRleHQgPSByZXN1bHQ7CisJCQljaXBoZXJ0ZXh0X2xlbiA9 IHBsYWludGV4dF9sZW47CisJCX0KKwl9CisKKwlpZiAoY2lwaGVyID09IFBHX0NJUEhFUl9BRVNf R0NNKQorCXsKKwkJaWYgKCFwZ19jaXBoZXJfZW5jcnlwdChjdHgsIGNpcGhlciwKKwkJCQkJCQkg ICBwbGFpbnRleHQsIHBsYWludGV4dF9sZW4sCisJCQkJCQkJICAgcmVzdWx0LCAmcmVzdWx0X2xl biwKKwkJCQkJCQkgICBpdiwgaXZfbGVuLAorCQkJCQkJCSAgIHRhZ19yZXN1bHQsIHRhZ19sZW4p KQorCQl7CisJCQlwZ19sb2dfZXJyb3IoIkVycm9yIGR1cmluZyBlbmNyeXB0aW9uLiIpOworCQkJ ZXhpdChFWElURkFJTFVSRSk7CisJCX0KKwl9CisJZWxzZSBpZiAoY2lwaGVyID09IFBHX0NJUEhF Ul9BRVNfS1dQKQorCXsKKwkJaWYgKCFwZ19jaXBoZXJfa2V5d3JhcChjdHgsCisJCQkJCQkJICAg cGxhaW50ZXh0LCBwbGFpbnRleHRfbGVuLAorCQkJCQkJCSAgIHJlc3VsdCwgJnJlc3VsdF9sZW4p KQorCQl7CisJCQlwZ19sb2dfZXJyb3IoIkVycm9yIGR1cmluZyBlbmNyeXB0aW9uLiIpOworCQkJ ZXhpdChFWElURkFJTFVSRSk7CisJCX0KKwl9CisKKwlpZiAodmVyYm9zZSB8fCBjaXBoZXJ0ZXh0 ID09IE5VTEwpCisJeworCQl1aW50NjQJCXJlc3VsdF9oZXhfbGVuID0gcGdfaGV4X2VuY19sZW4o cmVzdWx0X2xlbik7CisJCWNoYXIJICAgKnJlc3VsdF9oZXggPSBwYWxsb2MwKHJlc3VsdF9oZXhf bGVuICsgMSk7CisKKwkJcGdfaGV4X2VuY29kZSgoY2hhciAqKSByZXN1bHQsIHJlc3VsdF9sZW4s IHJlc3VsdF9oZXgsIHJlc3VsdF9oZXhfbGVuKTsKKwkJcmVzdWx0X2hleFtyZXN1bHRfaGV4X2xl bl0gPSAnXDAnOworCisJCXByaW50ZigiY2lwaGVydGV4dDogJXNcbiIsIHJlc3VsdF9oZXgpOwor CisJCWlmIChjaXBoZXIgPT0gUEdfQ0lQSEVSX0FFU19HQ00pCisJCXsKKwkJCXJlc3VsdF9oZXhf bGVuID0gcGdfaGV4X2VuY19sZW4odGFnX2xlbik7CisJCQlyZXN1bHRfaGV4ID0gcGFsbG9jMChy ZXN1bHRfaGV4X2xlbiArIDEpOworCisJCQlwZ19oZXhfZW5jb2RlKChjaGFyICopIHRhZ19yZXN1 bHQsIHRhZ19sZW4sIHJlc3VsdF9oZXgsIHJlc3VsdF9oZXhfbGVuKTsKKwkJCXJlc3VsdF9oZXhb cmVzdWx0X2hleF9sZW5dID0gJ1wwJzsKKworCQkJcHJpbnRmKCJ0YWc6ICVzXG4iLCByZXN1bHRf aGV4KTsKKwkJfQorCX0KKworCS8qCisJICogUmVwb3J0IG9uIG5vbi1tYXRjaGluZyByZXN1bHRz LCBidXQgc3RpbGwgZ28gdGhyb3VnaCB0aGUgZGVjcnlwdGlvbgorCSAqIHJvdXRpbmUgdG8gbWFr ZSBzdXJlIHRoYXQgd2UgZ2V0IHRoZSBjb3JyZWN0IHJlc3VsdCwgYW5kIHRoZW4gZXJyb3IKKwkg KiBvdXQuCisJICovCisJaWYgKHBsYWludGV4dF9sZW4gIT0gMCAmJiBjaXBoZXJ0ZXh0ICE9IE5V TEwgJiYgbWVtY21wKGNpcGhlcnRleHQsIHJlc3VsdCwgcGxhaW50ZXh0X2xlbikgIT0gMCkKKwkJ cGdfbG9nX2Vycm9yKCJQcm92aWRlZCBjaXBoZXJ0ZXh0IGRvZXMgbm90IG1hdGNoIik7CisKKwlp ZiAoY2lwaGVyID09IFBHX0NJUEhFUl9BRVNfR0NNICYmIHRhZyAhPSB0YWdfcmVzdWx0ICYmIG1l bWNtcCh0YWcsIHRhZ19yZXN1bHQsIHRhZ19sZW4pICE9IDApCisJCXBnX2xvZ19lcnJvcigiUHJv dmlkZWQgdGFnIGRvZXMgbm90IG1hdGNoIik7CisKKwkvKgorCSAqIElmIGEgY2lwaGVydGV4dCB3 YXMgcHJvdmlkZWQgdGhlbiB1c2UgdGhhdCBhcyB0aGUgbWF4IHNpemUgb2Ygb3VyCisJICogcGxh aW50ZXh0IHJlc3VsdC4gIFdlIHNob3VsZG4ndCBldmVyIGdldCBhIHJlc3VsdCBsYXJnZXIuCisJ ICovCisJaWYgKGNpcGhlcnRleHRfbGVuICE9IDApCisJeworCQlyZXN1bHRfbGVuID0gY2lwaGVy dGV4dF9sZW47CisJCXJlc3VsdCA9IHBhbGxvYzAocmVzdWx0X2xlbik7CisJfQorCisJLyoKKwkg KiBEZWNyeXB0aW9uCisJICoKKwkgKiBXZSBydW4gdGhyb3VnaCB0aGUgZGVjcnlwdGlvbiBldmVu IGlmIHRoZXJlIHdhc24ndCBhIGNpcGhlcnRleHQKKwkgKiBwcm92aWRlZC0gaW4gdGhhdCBjYXNl IHdlIGp1c3QgZGVjcnlwdCB0aGUgZW1wdHkgc3RyaW5nLgorCSAqLworCWN0eCA9IHBnX2NpcGhl cl9jdHhfY3JlYXRlKGNpcGhlciwga2V5LCBrZXlfbGVuLCBmYWxzZSk7CisJaWYgKCFjdHgpCisJ eworCQlwZ19sb2dfZXJyb3IoIkVycm9yIGNyZWF0aW5nIGRlY3J5cHRpb24gY29udGV4dCwgYmUg c3VyZSBrZXkgaXMgb2Ygc3VwcG9ydGVkIGxlbmd0aCIpOworCQlleGl0KEVYSVRGQUlMVVJFKTsK Kwl9CisKKwlpZiAoY2lwaGVyID09IFBHX0NJUEhFUl9BRVNfR0NNKQorCXsKKwkJaWYgKCFwZ19j aXBoZXJfZGVjcnlwdChjdHgsIGNpcGhlciwKKwkJCQkJCQkgICBjaXBoZXJ0ZXh0LCBjaXBoZXJ0 ZXh0X2xlbiwKKwkJCQkJCQkgICByZXN1bHQsICZyZXN1bHRfbGVuLAorCQkJCQkJCSAgIGl2LCBp dl9sZW4sCisJCQkJCQkJICAgdGFnLCB0YWdfbGVuKSkKKwkJeworCQkJcGdfbG9nX2Vycm9yKCJF cnJvciBkdXJpbmcgZGVjcnlwdGlvbi4iKTsKKwkJCWV4aXQoRVhJVERFQ1JZUFRGQUlMKTsKKwkJ fQorCX0KKwllbHNlIGlmIChjaXBoZXIgPT0gUEdfQ0lQSEVSX0FFU19LV1ApCisJeworCQlpZiAo IXBnX2NpcGhlcl9rZXl1bndyYXAoY3R4LAorCQkJCQkJCQkgY2lwaGVydGV4dCwgY2lwaGVydGV4 dF9sZW4sCisJCQkJCQkJCSByZXN1bHQsICZyZXN1bHRfbGVuKSkKKwkJeworCQkJcGdfbG9nX2Vy cm9yKCJFcnJvciBkdXJpbmcgZGVjcnlwdGlvbi4iKTsKKwkJCWV4aXQoRVhJVERFQ1JZUFRGQUlM KTsKKwkJfQorCX0KKworCWlmICh2ZXJib3NlIHx8IHBsYWludGV4dCA9PSBOVUxMKQorCXsKKwkJ dWludDY0CQlyZXN1bHRfaGV4X2xlbiA9IHBnX2hleF9lbmNfbGVuKHJlc3VsdF9sZW4pOworCQlj aGFyCSAgICpyZXN1bHRfaGV4ID0gcGFsbG9jMChyZXN1bHRfaGV4X2xlbiArIDEpOworCisJCXBn X2hleF9lbmNvZGUoKGNoYXIgKikgcmVzdWx0LCByZXN1bHRfbGVuLCByZXN1bHRfaGV4LCByZXN1 bHRfaGV4X2xlbik7CisJCXJlc3VsdF9oZXhbcmVzdWx0X2hleF9sZW5dID0gJ1wwJzsKKworCQlw cmludGYoInBsYWludGV4dDogJXNcbiIsIHJlc3VsdF9oZXgpOworCX0KKworCWlmIChjaXBoZXJ0 ZXh0X2xlbiAhPSAwICYmIHBsYWludGV4dCAhPSBOVUxMICYmIG1lbWNtcChwbGFpbnRleHQsIHJl c3VsdCwgcGxhaW50ZXh0X2xlbikgIT0gMCkKKwl7CisJCXBnX2xvZ19lcnJvcigiUHJvdmlkZWQg cGxhaW50ZXh0IGRvZXMgbm90IG1hdGNoIik7CisJCWV4aXQoRVhJVEZBSUxVUkUpOworCX0KKwor CWV4aXQoRVhJVFNVQ0NFU1MpOworfQotLSAKMi4zNy4wIChBcHBsZSBHaXQtMTM2KQoK --000000000000cbfbc705ebca4b20 Content-Type: application/octet-stream; name="0010-cfe-10-hint_over_cfe-09-test-squash-commit.patch" Content-Disposition: attachment; filename="0010-cfe-10-hint_over_cfe-09-test-squash-commit.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l9mztuan9 RnJvbSBlYzFkMDc4MGZkZjVjY2UwMTIzNTUyODcwMWE0ZGMzNTNkOTAyOTk1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCcnVjZSBNb21qaWFuIDxicnVjZUBtb21qaWFuLnVzPgpEYXRl OiBGcmksIDI1IEp1biAyMDIxIDE2OjU3OjAzIC0wNDAwClN1YmplY3Q6IFtQQVRDSCAxMC8xMl0g Y2ZlLTEwLWhpbnRfb3Zlcl9jZmUtMDktdGVzdCBzcXVhc2ggY29tbWl0CgotLS0KIGRvYy9zcmMv c2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgfCAgIDcgKy0KIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9ybWdyZGVzYy94bG9nZGVzYy5jICAgfCAgIDYgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL3hsb2cuYyAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0v eGxvZ2luc2VydC5jICB8ICAyNCArKysrKwogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC9kZWNvZGUuYyB8ICAgMSArCiBzcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9idWZtZ3IuYyAg ICAgIHwgMTMxICsrKysrKysrKysrKysrKystLS0tLS0tCiBzcmMvYmluL3BnX2FsdGVyY2tleS9w Z19hbHRlcmNrZXkuYyAgICAgIHwgIDc2ICsrKysrKysrKysrLS0KIHNyYy9pbmNsdWRlL2FjY2Vz cy94bG9nLmggICAgICAgICAgICAgICAgfCAgMTQgKy0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MveGxv Z2luc2VydC5oICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29udHJv bC5oICAgICAgICAgfCAgIDEgKwogMTAgZmlsZXMgY2hhbmdlZCwgMjE0IGluc2VydGlvbnMoKyks IDUyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbCBi L2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAppbmRleCA2OWVlNTVhNTY4Li4zZGExN2M3NmYyIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Nv bmZpZy5zZ21sCkBAIC0zMTY0LDkgKzMxNjQsMTAgQEAgaW5jbHVkZV9kaXIgJ2NvbmYuZCcKICAg ICAgICA8L3BhcmE+CiAKICAgICAgICA8cGFyYT4KLSAgICAgICAgSWYgZGF0YSBjaGVja3N1bXMg YXJlIGVuYWJsZWQsIGhpbnQgYml0IHVwZGF0ZXMgYXJlIGFsd2F5cyBXQUwtbG9nZ2VkCi0gICAg ICAgIGFuZCB0aGlzIHNldHRpbmcgaXMgaWdub3JlZC4gWW91IGNhbiB1c2UgdGhpcyBzZXR0aW5n IHRvIHRlc3QgaG93IG11Y2gKLSAgICAgICAgZXh0cmEgV0FMLWxvZ2dpbmcgd291bGQgb2NjdXIg aWYgeW91ciBkYXRhYmFzZSBoYWQgZGF0YSBjaGVja3N1bXMKKyAgICAgICAgSWYgZGF0YSBjaGVj a3N1bXMgb3IgY2x1c3RlciBmaWxlIGVuY3J5cHRpb24gaXMgZW5hYmxlZCwKKyAgICAgICAgaGlu dCBiaXQgdXBkYXRlcyBhcmUgYWx3YXlzIFdBTC1sb2dnZWQgYW5kIHRoaXMgc2V0dGluZyBpcwor ICAgICAgICBpZ25vcmVkLiBZb3UgY2FuIHVzZSB0aGlzIHNldHRpbmcgdG8gdGVzdCBob3cgbXVj aCBleHRyYQorICAgICAgICBXQUwtbG9nZ2luZyB3b3VsZCBvY2N1ciBpZiB5b3VyIGRhdGFiYXNl IGhhZCBkYXRhIGNoZWNrc3VtcwogICAgICAgICBlbmFibGVkLgogICAgICAgIDwvcGFyYT4KIApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL3hsb2dkZXNjLmMgYi9zcmMv YmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MveGxvZ2Rlc2MuYwppbmRleCAzZmQ3MTg1ZjIxLi5lMDhj MzY0ZDAzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MveGxvZ2Rlc2Mu YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MveGxvZ2Rlc2MuYwpAQCAtODAsNyAr ODAsOCBAQCB4bG9nX2Rlc2MoU3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3Jk KQogCiAJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCB4bHJlYy0+cnBfbmFtZSk7CiAJfQot CWVsc2UgaWYgKGluZm8gPT0gWExPR19GUEkgfHwgaW5mbyA9PSBYTE9HX0ZQSV9GT1JfSElOVCkK KwllbHNlIGlmIChpbmZvID09IFhMT0dfRlBJIHx8IGluZm8gPT0gWExPR19GUElfRk9SX0hJTlQg fHwKKwkJCSBpbmZvID09IFhMT0dfRU5DUllQVElPTl9MU04pCiAJewogCQkvKiBubyBmdXJ0aGVy IGluZm9ybWF0aW9uIHRvIHByaW50ICovCiAJfQpAQCAtMTk2LDYgKzE5Nyw5IEBAIHhsb2dfaWRl bnRpZnkodWludDggaW5mbykKIAkJY2FzZSBYTE9HX0ZQSV9GT1JfSElOVDoKIAkJCWlkID0gIkZQ SV9GT1JfSElOVCI7CiAJCQlicmVhazsKKwkJY2FzZSBYTE9HX0VOQ1JZUFRJT05fTFNOOgorCQkJ aWQgPSAiRU5DUllQVElPTl9MU04iOworCQkJYnJlYWs7CiAJfQogCiAJcmV0dXJuIGlkOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL3RyYW5zYW0veGxvZy5jCmluZGV4IGRlOTJlODhkODEuLjQzNDI5NjQ3YjUgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYworKysgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKQEAgLTgwMTIsNiArODAxMiwxMCBAQCB4bG9nX3JlZG8o WExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCQlVbmxvY2tSZWxlYXNlQnVmZmVyKGJ1ZmZlcik7 CiAJCX0KIAl9CisJZWxzZSBpZiAoaW5mbyA9PSBYTE9HX0VOQ1JZUFRJT05fTFNOKQorCXsKKwkJ Lyogbm90aGluZyB0byBkbyBoZXJlICovCisJfQogCWVsc2UgaWYgKGluZm8gPT0gWExPR19CQUNL VVBfRU5EKQogCXsKIAkJLyogbm90aGluZyB0byBkbyBoZXJlLCBoYW5kbGVkIGluIHhsb2dyZWNv dmVyeV9yZWRvKCkgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hs b2dpbnNlcnQuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dpbnNlcnQuYwppbmRl eCBmODExNTIzNDQ4Li5iNGJiYWNhZTI2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS94bG9naW5zZXJ0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxv Z2luc2VydC5jCkBAIC0xMDgxLDYgKzEwODEsMzAgQEAgWExvZ1NhdmVCdWZmZXJGb3JIaW50KEJ1 ZmZlciBidWZmZXIsIGJvb2wgYnVmZmVyX3N0ZCkKIAlyZXR1cm4gcmVjcHRyOwogfQogCisvKgor ICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIGVpdGhlciBhIFdBTCBvciBmYWtlIExTTiwgZm9yIHVz ZSBieSBlbmNyeXB0aW9uLgorICovCitYTG9nUmVjUHRyCitMU05Gb3JFbmNyeXB0aW9uKGJvb2wg dXNlX3dhbF9sc24pCit7CisJaWYgKHVzZV93YWxfbHNuKQorCXsKKwkJaW50CQkJZHVtbXkgPSAw OworCisJCUFzc2VydChGaWxlRW5jcnlwdGlvbkVuYWJsZWQpOworCQkvKgorCQkgKiBSZWNvcmRz IG90aGVyIHRoYW4gU1dJVENIX1dBTCBtdXN0IGhhdmUgY29udGVudC4gV2UgdXNlIGFuIGludGVn ZXIgMCB0bworCQkgKiBmb2xsb3cgdGhlIHJlc3RyaWN0aW9uLgorCQkgKi8KKwkJWExvZ0JlZ2lu SW5zZXJ0KCk7CisJCVhMb2dTZXRSZWNvcmRGbGFncyhYTE9HX01BUktfVU5JTVBPUlRBTlQpOwor CQlYTG9nUmVnaXN0ZXJEYXRhKChjaGFyICopICZkdW1teSwgc2l6ZW9mKGR1bW15KSk7CisJCXJl dHVybiBYTG9nSW5zZXJ0KFJNX1hMT0dfSUQsIFhMT0dfRU5DUllQVElPTl9MU04pOworCX0KKwll bHNlCisJCXJldHVybiBHZXRGYWtlTFNORm9yVW5sb2dnZWRSZWwoKTsKK30KKwogLyoKICAqIFdy aXRlIGEgV0FMIHJlY29yZCBjb250YWluaW5nIGEgZnVsbCBpbWFnZSBvZiBhIHBhZ2UuIENhbGxl ciBpcyByZXNwb25zaWJsZQogICogZm9yIHdyaXRpbmcgdGhlIHBhZ2UgdG8gZGlzayBhZnRlciBj YWxsaW5nIHRoaXMgcm91dGluZS4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvZGVjb2RlLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29k ZS5jCmluZGV4IDJjYzBhYzllYjAuLjY5MjJmNmMwZTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC9kZWNvZGUuYwpAQCAtMTYyLDYgKzE2Miw3IEBAIHhsb2dfZGVjb2RlKExvZ2lj YWxEZWNvZGluZ0NvbnRleHQgKmN0eCwgWExvZ1JlY29yZEJ1ZmZlciAqYnVmKQogCQljYXNlIFhM T0dfRlBJX0ZPUl9ISU5UOgogCQljYXNlIFhMT0dfRlBJOgogCQljYXNlIFhMT0dfT1ZFUldSSVRF X0NPTlRSRUNPUkQ6CisJCWNhc2UgWExPR19FTkNSWVBUSU9OX0xTTjoKIAkJCWJyZWFrOwogCQlk ZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgUk1fWExPR19JRCByZWNvcmQgdHlw ZTogJXUiLCBpbmZvKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1 Zm1nci5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKaW5kZXggNmI5NTM4 MTQ4MS4uNWVjM2U0MDVhYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIv YnVmbWdyLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKQEAgLTM5 OTEsMTEgKzM5OTEsMTIgQEAgSW5jckJ1ZmZlclJlZkNvdW50KEJ1ZmZlciBidWZmZXIpCiAgKiBU aGlzIGlzIGVzc2VudGlhbGx5IHRoZSBzYW1lIGFzIE1hcmtCdWZmZXJEaXJ0eSwgZXhjZXB0Ogog ICoKICAqIDEuIFRoZSBjYWxsZXIgZG9lcyBub3Qgd3JpdGUgV0FMOyBzbyBpZiBjaGVja3N1bXMg YXJlIGVuYWJsZWQsIHdlIG1heSBuZWVkCi0gKgkgIHRvIHdyaXRlIGFuIFhMT0dfRlBJX0ZPUl9I SU5UIFdBTCByZWNvcmQgdG8gcHJvdGVjdCBhZ2FpbnN0IHRvcm4gcGFnZXMuCisgKiAgICB0byB3 cml0ZSBhbiBYTE9HX0ZQSV9GT1JfSElOVCByZWNvcmQgdG8gcHJvdGVjdCBhZ2FpbnN0IHRvcm4g cGFnZXMsIG9yCisgKiAgICBYTE9HX0VOQ1JZUFRJT05fTFNOIHRvIGdlbmVyYXRlIGEgbmV3IExT TiBmb3IgdGhlIHBhZ2UuCiAgKiAyLiBUaGUgY2FsbGVyIG1pZ2h0IGhhdmUgb25seSBzaGFyZS1s b2NrIGluc3RlYWQgb2YgZXhjbHVzaXZlLWxvY2sgb24gdGhlCi0gKgkgIGJ1ZmZlcidzIGNvbnRl bnQgbG9jay4KKyAqICAgIGJ1ZmZlcidzIGNvbnRlbnQgbG9jay4KICAqIDMuIFRoaXMgZnVuY3Rp b24gZG9lcyBub3QgZ3VhcmFudGVlIHRoYXQgdGhlIGJ1ZmZlciBpcyBhbHdheXMgbWFya2VkIGRp cnR5Ci0gKgkgIChkdWUgdG8gYSByYWNlIGNvbmRpdGlvbiksIHNvIGl0IGNhbm5vdCBiZSB1c2Vk IGZvciBpbXBvcnRhbnQgY2hhbmdlcy4KKyAqICAgIChkdWUgdG8gYSByYWNlIGNvbmRpdGlvbiks IHNvIGl0IGNhbm5vdCBiZSB1c2VkIGZvciBpbXBvcnRhbnQgY2hhbmdlcy4KICAqLwogdm9pZAog TWFya0J1ZmZlckRpcnR5SGludChCdWZmZXIgYnVmZmVyLCBib29sIGJ1ZmZlcl9zdGQpCkBAIC00 MDQxLDUzICs0MDQyLDExMSBAQCBNYXJrQnVmZmVyRGlydHlIaW50KEJ1ZmZlciBidWZmZXIsIGJv b2wgYnVmZmVyX3N0ZCkKIAkJICogSWYgd2UgbmVlZCB0byBwcm90ZWN0IGhpbnQgYml0IHVwZGF0 ZXMgZnJvbSB0b3JuIHdyaXRlcywgV0FMLWxvZyBhCiAJCSAqIGZ1bGwgcGFnZSBpbWFnZSBvZiB0 aGUgcGFnZS4gVGhpcyBmdWxsIHBhZ2UgaW1hZ2UgaXMgb25seSBuZWNlc3NhcnkKIAkJICogaWYg dGhlIGhpbnQgYml0IHVwZGF0ZSBpcyB0aGUgZmlyc3QgY2hhbmdlIHRvIHRoZSBwYWdlIHNpbmNl IHRoZQotCQkgKiBsYXN0IGNoZWNrcG9pbnQuCisJCSAqIGxhc3QgY2hlY2twb2ludC4gIElmIGNs dXN0ZXIgZmlsZSBlbmNyeXB0aW9uIGlzIGVuYWJsZWQsIHdlIGFsc28KKwkJICogbmVlZCB0byBn ZW5lcmF0ZSBuZXcgcGFnZSBMU05zIGZvciBhbGwgb3RoZXIgY2FzZXMgb2YgcGFnZSB3cml0ZXMu CiAJCSAqCiAJCSAqIFdlIGRvbid0IGNoZWNrIGZ1bGxfcGFnZV93cml0ZXMgaGVyZSBiZWNhdXNl IHRoYXQgbG9naWMgaXMgaW5jbHVkZWQKIAkJICogd2hlbiB3ZSBjYWxsIFhMb2dJbnNlcnQoKSBz aW5jZSB0aGUgdmFsdWUgY2hhbmdlcyBkeW5hbWljYWxseS4KIAkJICovCi0JCWlmIChYTG9nSGlu dEJpdElzTmVlZGVkKCkgJiYKLQkJCShwZ19hdG9taWNfcmVhZF91MzIoJmJ1Zkhkci0+c3RhdGUp ICYgQk1fUEVSTUFORU5UKSkKKwkJaWYgKFhMb2dIaW50Qml0SXNOZWVkZWQoKSkKIAkJewogCQkJ LyoKLQkJCSAqIElmIHdlIG11c3Qgbm90IHdyaXRlIFdBTCwgZHVlIHRvIGEgcmVsZmlsZWxvY2F0 b3Itc3BlY2lmaWMKLQkJCSAqIGNvbmRpdGlvbiBvciBiZWluZyBpbiByZWNvdmVyeSwgZG9uJ3Qg ZGlydHkgdGhlIHBhZ2UuICBXZSBjYW4KLQkJCSAqIHNldCB0aGUgaGludCwganVzdCBub3QgZGly dHkgdGhlIHBhZ2UgYXMgYSByZXN1bHQgc28gdGhlIGhpbnQKLQkJCSAqIGlzIGxvc3Qgd2hlbiB3 ZSBldmljdCB0aGUgcGFnZSBvciBzaHV0ZG93bi4KKyAJCQkgKiBJZiB3ZSBtdXN0IG5vdCB3cml0 ZSBXQUwgZHVyaW5nIHJlY292ZXJ5IHNvIGRvbid0IGRpcnR5IHRoZSBwYWdlLgorIAkJCSAqIFdl IGNhbiBzZXQgdGhlIGhpbnQsIGp1c3Qgbm90IGRpcnR5IHRoZSBwYWdlIGFzIGEgcmVzdWx0IHNv IHRoZQorIAkJCSAqIGhpbnQgaXMgbG9zdCB3aGVuIHdlIGV2aWN0IHRoZSBwYWdlIG9yIHNodXRk b3duLgogCQkJICoKIAkJCSAqIFNlZSBzcmMvYmFja2VuZC9zdG9yYWdlL3BhZ2UvUkVBRE1FIGZv ciBsb25nZXIgZGlzY3Vzc2lvbi4KIAkJCSAqLwogCQkJaWYgKFJlY292ZXJ5SW5Qcm9ncmVzcygp IHx8Ci0JCQkJUmVsRmlsZUxvY2F0b3JTa2lwcGluZ1dBTChCdWZUYWdHZXRSZWxGaWxlTG9jYXRv cigmYnVmSGRyLT50YWcpKSkKKwkJCQkoUmVsRmlsZUxvY2F0b3JTa2lwcGluZ1dBTChCdWZUYWdH ZXRSZWxGaWxlTG9jYXRvcigmYnVmSGRyLT50YWcpKSAmJgorCQkJCSAhRmlsZUVuY3J5cHRpb25F bmFibGVkKSkKIAkJCQlyZXR1cm47CiAKIAkJCS8qCi0JCQkgKiBJZiB0aGUgYmxvY2sgaXMgYWxy ZWFkeSBkaXJ0eSBiZWNhdXNlIHdlIGVpdGhlciBtYWRlIGEgY2hhbmdlCi0JCQkgKiBvciBzZXQg YSBoaW50IGFscmVhZHksIHRoZW4gd2UgZG9uJ3QgbmVlZCB0byB3cml0ZSBhIGZ1bGwgcGFnZQot CQkJICogaW1hZ2UuICBOb3RlIHRoYXQgYWdncmVzc2l2ZSBjbGVhbmluZyBvZiBibG9ja3MgZGly dGllZCBieSBoaW50Ci0JCQkgKiBiaXQgc2V0dGluZyB3b3VsZCBpbmNyZWFzZSB0aGUgY2FsbCBy YXRlLiBCdWxrIHNldHRpbmcgb2YgaGludAotCQkJICogYml0cyB3b3VsZCByZWR1Y2UgdGhlIGNh bGwgcmF0ZS4uLgotCQkJICoKLQkJCSAqIFdlIG11c3QgaXNzdWUgdGhlIFdBTCByZWNvcmQgYmVm b3JlIHdlIG1hcmsgdGhlIGJ1ZmZlciBkaXJ0eS4KLQkJCSAqIE90aGVyd2lzZSB3ZSBtaWdodCB3 cml0ZSB0aGUgcGFnZSBiZWZvcmUgd2Ugd3JpdGUgdGhlIFdBTC4gVGhhdAotCQkJICogY2F1c2Vz IGEgcmFjZSBjb25kaXRpb24sIHNpbmNlIGEgY2hlY2twb2ludCBtaWdodCBvY2N1ciBiZXR3ZWVu Ci0JCQkgKiB3cml0aW5nIHRoZSBXQUwgcmVjb3JkIGFuZCBtYXJraW5nIHRoZSBidWZmZXIgZGly dHkuIFdlIHNvbHZlCi0JCQkgKiB0aGF0IHdpdGggYSBrbHVnZSwgYnV0IG9uZSB0aGF0IGlzIGFs cmVhZHkgaW4gdXNlIGR1cmluZwotCQkJICogdHJhbnNhY3Rpb24gY29tbWl0IHRvIHByZXZlbnQg cmFjZSBjb25kaXRpb25zLiBCYXNpY2FsbHksIHdlCi0JCQkgKiBzaW1wbHkgcHJldmVudCB0aGUg Y2hlY2twb2ludCBXQUwgcmVjb3JkIGZyb20gYmVpbmcgd3JpdHRlbgotCQkJICogdW50aWwgd2Ug aGF2ZSBtYXJrZWQgdGhlIGJ1ZmZlciBkaXJ0eS4gV2UgZG9uJ3Qgc3RhcnQgdGhlCi0JCQkgKiBj aGVja3BvaW50IGZsdXNoIHVudGlsIHdlIGhhdmUgbWFya2VkIGRpcnR5LCBzbyBvdXIgY2hlY2tw b2ludAotCQkJICogbXVzdCBmbHVzaCB0aGUgY2hhbmdlIHRvIGRpc2sgc3VjY2Vzc2Z1bGx5IG9y IHRoZSBjaGVja3BvaW50Ci0JCQkgKiBuZXZlciBnZXRzIHdyaXR0ZW4sIHNvIGNyYXNoIHJlY292 ZXJ5IHdpbGwgZml4LgotCQkJICoKLQkJCSAqIEl0J3MgcG9zc2libGUgd2UgbWF5IGVudGVyIGhl cmUgd2l0aG91dCBhbiB4aWQsIHNvIGl0IGlzCi0JCQkgKiBlc3NlbnRpYWwgdGhhdCBDcmVhdGVD aGVja1BvaW50IHdhaXRzIGZvciB2aXJ0dWFsIHRyYW5zYWN0aW9ucwotCQkJICogcmF0aGVyIHRo YW4gZnVsbCB0cmFuc2FjdGlvbmlkcy4KKwkJCSAqIE5vbi1CTV9QRVJNQU5FTlQgb2JqZWN0cyBk b24ndCBuZWVkIGZ1bGwgcGFnZSBpbWFnZXMgYmVjYXVzZQorCQkJICogdGhleSBhcmUgbm90IHJl c3RvcmVkLiAgV0FMLXNraXBwZWQgcmVsZmlsZW5vZGVzIHNob3VsZCBuZXZlcgorCQkJICogaGF2 ZSBmdWxsIHBhZ2UgaW1hZ2VzIGdlbmVyYXRlZC4KIAkJCSAqLwotCQkJQXNzZXJ0KChNeVByb2Mt PmRlbGF5Q2hrcHRGbGFncyAmIERFTEFZX0NIS1BUX1NUQVJUKSA9PSAwKTsKLQkJCU15UHJvYy0+ ZGVsYXlDaGtwdEZsYWdzIHw9IERFTEFZX0NIS1BUX1NUQVJUOwotCQkJZGVsYXlDaGtwdEZsYWdz ID0gdHJ1ZTsKLQkJCWxzbiA9IFhMb2dTYXZlQnVmZmVyRm9ySGludChidWZmZXIsIGJ1ZmZlcl9z dGQpOworCQkJaWYgKHBnX2F0b21pY19yZWFkX3UzMigmYnVmSGRyLT5zdGF0ZSkgJiBCTV9QRVJN QU5FTlQgJiYKKwkJCQkhUmVsRmlsZUxvY2F0b3JTa2lwcGluZ1dBTChCdWZUYWdHZXRSZWxGaWxl TG9jYXRvcigmYnVmSGRyLT50YWcpKSkKKwkJCXsKKwkJCQkvKgorCQkJCSAqIElmIHRoZSBibG9j ayBpcyBhbHJlYWR5IGRpcnR5IGJlY2F1c2Ugd2UgZWl0aGVyIG1hZGUgYSBjaGFuZ2UKKwkJCQkg KiBvciBzZXQgYSBoaW50IGFscmVhZHksIHRoZW4gd2UgZG9uJ3QgbmVlZCB0byB3cml0ZSBhIGZ1 bGwKKwkJCQkgKiBwYWdlIGltYWdlLiAgTm90ZSB0aGF0IGFnZ3Jlc3NpdmUgY2xlYW5pbmcgb2Yg YmxvY2tzIGRpcnRpZWQKKwkJCQkgKiBieSBoaW50IGJpdCBzZXR0aW5nIHdvdWxkIGluY3JlYXNl IHRoZSBjYWxsIHJhdGUuIEJ1bGsKKwkJCQkgKiBzZXR0aW5nIG9mIGhpbnQgYml0cyB3b3VsZCBy ZWR1Y2UgdGhlIGNhbGwgcmF0ZS4uLgorCQkJCSAqCisJCQkJICogV2UgbXVzdCBpc3N1ZSB0aGUg V0FMIHJlY29yZCBiZWZvcmUgd2UgbWFyayB0aGUgYnVmZmVyCisJCQkJICogZGlydHkuICBPdGhl cndpc2Ugd2UgbWlnaHQgd3JpdGUgdGhlIHBhZ2UgYmVmb3JlIHdlIHdyaXRlCisJCQkJICogdGhl IFdBTC4gVGhhdCBjYXVzZXMgYSByYWNlIGNvbmRpdGlvbiwgc2luY2UgYSBjaGVja3BvaW50CisJ CQkJICogbWlnaHQgb2NjdXIgYmV0d2VlbiB3cml0aW5nIHRoZSBXQUwgcmVjb3JkIGFuZCBtYXJr aW5nIHRoZQorCQkJCSAqIGJ1ZmZlciBkaXJ0eS4gV2Ugc29sdmUgdGhhdCB3aXRoIGEga2x1Z2Us IGJ1dCBvbmUgdGhhdCBpcworCQkJCSAqIGFscmVhZHkgaW4gdXNlIGR1cmluZyB0cmFuc2FjdGlv biBjb21taXQgdG8gcHJldmVudCByYWNlCisJCQkJICogY29uZGl0aW9ucy4gQmFzaWNhbGx5LCB3 ZSBzaW1wbHkgcHJldmVudCB0aGUgY2hlY2twb2ludCBXQUwKKwkJCQkgKiByZWNvcmQgZnJvbSBi ZWluZyB3cml0dGVuIHVudGlsIHdlIGhhdmUgbWFya2VkIHRoZSBidWZmZXIKKwkJCQkgKiBkaXJ0 eS4gV2UgZG9uJ3Qgc3RhcnQgdGhlIGNoZWNrcG9pbnQgZmx1c2ggdW50aWwgd2UgaGF2ZQorCQkJ CSAqIG1hcmtlZCBkaXJ0eSwgc28gb3VyIGNoZWNrcG9pbnQgbXVzdCBmbHVzaCB0aGUgY2hhbmdl IHRvIGRpc2sKKwkJCQkgKiBzdWNjZXNzZnVsbHkgb3IgdGhlIGNoZWNrcG9pbnQgbmV2ZXIgZ2V0 cyB3cml0dGVuLCBzbyBjcmFzaAorCQkJCSAqIHJlY292ZXJ5IHdpbGwgZml4LgorCQkJCSAqCisJ CQkJICogSXQncyBwb3NzaWJsZSB3ZSBtYXkgZW50ZXIgaGVyZSB3aXRob3V0IGFuIHhpZCwgc28g aXQKKwkJCQkgKiBpcyBlc3NlbnRpYWwgdGhhdCBDcmVhdGVDaGVja3BvaW50IHdhaXRzIGZvciB2 aXJ0dWFsCisJCQkJICogdHJhbnNhY3Rpb25zIHJhdGhlciB0aGFuIGZ1bGwgdHJhbnNhY3Rpb25p ZHMuCisJCQkJICovCisJCQkJTXlQcm9jLT5kZWxheUNoa3B0RmxhZ3MgfD0gREVMQVlfQ0hLUFRf U1RBUlQ7CisJCQkJZGVsYXlDaGtwdEZsYWdzID0gdHJ1ZTsKKwkJCQlsc24gPSBYTG9nU2F2ZUJ1 ZmZlckZvckhpbnQoYnVmZmVyLCBidWZmZXJfc3RkKTsKKwkJCX0KKworCQkJLyoKKwkJCSAqIEFi b3ZlLCBmb3IgaGludCBiaXQgY2hhbmdlcywgd2UgbWlnaHQgaGF2ZSBnZW5lcmF0ZWQgYSBuZXcg cGFnZQorCQkJICogTFNOIGFuZCBhIGZ1bGwtcGFnZSBXQUwgcmVjb3JkIGZvciBhIHBhZ2UncyBm aXJzdC1jbGVhbi10by1kaXJ0eQorCQkJICogZHVyaW5nIGEgY2hlY2twb2ludCBmb3IgcGVybWFu ZW50LCBub24tV0FMLXNraXBwZWQgcmVsZmlsZW5vZGVzLgorCQkJICogSWYgd2UgZGlkbid0ICh0 aGUgbHNuIHZhcmlhYmxlIGlzIGludmFsaWQpLCBhbmQgd2UgYXJlCisJCQkgKiBkb2luZyBjbHVz dGVyIGZpbGUgZW5jcnlwdGlvbiwgd2UgbXVzdCBnZW5lcmF0ZSBhIG5ldworCQkJICogcGFnZSBM U04gaGVyZSBmb3IgZWl0aGVyIG5vbi1wZXJtYW5lbnQgcmVsYXRpb25zIG9yIHBhZ2UKKwkJCSAq IG5vbi1maXJzdC1jbGVhbi10by1kaXJ0eSBkdXJpbmcgYSBjaGVja3BvaW50LiAgKENsdXN0ZXIg ZmlsZQorCQkJICogZW5jcnlwdGlvbiBkb2VzIG5vdCBzdXBwb3J0IFdBTC1za2lwIHJlbGZpbGVu b2Rlcy4pICBXZSBtdXN0CisJCQkgKiB1cGRhdGUgdGhlIHBhZ2UgTFNOIGV2ZW4gaWYgdGhlIHBh Z2Ugd2l0aCB0aGUgaGludCBiaXQgY2hhbmdlIGlzCisJCQkgKiBsYXRlciBvdmVyd3JpdHRlbiBp biB0aGUgZmlsZSBzeXN0ZW0gd2l0aCBhbiBlYXJsaWVyIHZlcnNpb24gb2YKKwkJCSAqIHRoZSBw YWdlIGR1cmluZyBjcmFzaCByZWNvdmVyeS4KKyAgCQkJICoKKwkJCSAqIFhYWCBDYW4gd2UgcmVs eSBvbiB0aGUgZnVsbCBwYWdlIHdyaXRlIGFib3ZlIHdpdGggbm8gbG9jayBiZWluZworCQkJICog aGVsZCB0byBhdm9pZCB0b3JuIHBhZ2VzPyAgQWJvdmUsIHRoZSBMU04gYW5kIHBhZ2UgaW1hZ2Ug YXJlCisJCQkgKiB0aWVkIHRvZ2V0aGVyLCBidXQgaGVyZSBpcyBqdXN0IHRoZSBwYWdlIExTTiB1 cGRhdGUuCisgIAkJCSAqLworCQkJaWYgKFhMb2dSZWNQdHJJc0ludmFsaWQobHNuKSAmJiBGaWxl RW5jcnlwdGlvbkVuYWJsZWQpCisJCQl7CisJCQkJLyoKKwkJCQkgKiBGb3IgY2x1c3RlciBmaWxl IGVuY3J5cHRpb24gd2UgbmVlZCBhIG5ldyBwYWdlIExTTiBiZWNhdXNlCisJCQkJICogdGhlIExT TiBpcyB1c2VkLCB3aXRoIHRoZSBwYWdlIG51bWJlciBhbmQgcGVybWFuZW50IGZsYWcsIGFzCisJ CQkJICogcGFydCBvZiB0aGUgbm9uY2UsIGFuZCB0aGUgbm9uY2UgbXVzdCBiZSB1bmlxdWUgZm9y IGV2ZXJ5CisJCQkJICogcGFnZSB3cml0ZS4gIElmIHdlIHJlZW5jcnlwdCBhIHBhZ2Ugd2l0aCBo aW50IGJpdCBjaGFuZ2VzCisJCQkJICogdXNpbmcgdGhlIHNhbWUgbm9uY2UgYXMgcHJldmlvdXMg d3JpdGVzLCBpdCB3b3VsZCBleHBvc2UgdGhlCisJCQkJICogaGludCBiaXQgY2hhbmdlIGxvY2F0 aW9ucy4gIFRvIGF2b2lkIHRoaXMsIHdlIHdyaXRlIGEgc2ltcGxlCisJCQkJICogV0FMIHJlY29y ZCB0byBhZHZhbmNlIHRoZSBsc24sIHdoaWNoIGNhbiB0aGVuIGJlIGFzc2lnbmVkIHRvCisJCQkJ ICogdGhlIHBhZ2UgYmVsb3cuCisJCQkJICoKKwkJCQkgKiBBYm92ZSB3ZSBhcmUgcmVseWluZyBv biB0aGUgZnVsbCBwYWdlIHdyaXRlcyB0byByZXZlcnQKKwkJCQkgKiBhbnkgcGFydGlhbCBwYWdl cyB3cml0ZXMgY2F1c2VkIGJ5IHRoaXMgTFNOIGNoYW5nZSBmb3IKKwkJCQkgKiBwZXJtYW5lbnQs IG5vbi1XQUwtc2tpcCByZWxmaWxlbm9kZXMuICBGb3Igbm9uLXBlcm1hbmVudAorCQkJCSAqIHJl bGF0aW9ucywgdGhleSBjcmFzaCByZWNvdmVyIGFzIGVtcHR5LiAgRm9yIFdBTC1za2lwCisJCQkJ ICogcmVsZmlsZW5vZGVzLCB0aGV5IHJlY292ZXIgd2l0aCB0aGVpciBvcmlnaW5hbCBjb250ZW50 cywgc28KKwkJCQkgKiB0aGF0IHdvcmtzIHRvby4KKwkJCQkgKi8KKwkJCQkvKiBYWFggRG8gd2Ug bmVlZCB0aGUgY2hlY2twb2ludCBkZWxheSBoZXJlPyAqLworCQkJCU15UHJvYy0+ZGVsYXlDaGtw dEZsYWdzIHw9IERFTEFZX0NIS1BUX1NUQVJUOworCQkJCWRlbGF5Q2hrcHRGbGFncyA9IHRydWU7 CisJCQkJLyoKKwkJCQkgKiBYWFggV2UgcHJvYmFibHkgZG9uJ3QgbmVlZCB0byByZXBsYXkgdGhp cyBXQUwgb24gdGhlIHByaW1hcnkKKwkJCQkgKiBzaW5jZSB0aGUgZnVsbCBwYWdlIGltYWdlIGlz IHJlc3RvcmVkLCBidXQgZG8gd2UgaGF2ZQorCQkJCSAqIHRvIHJlcGxheSB0aGlzIG9uIHRoZSBy ZXBpY2FzIChmb3IgcmVsYXRpb25zIHRoYXQgYXJlCisJCQkJICogcmVwbGljYXRlZCk/CisJCQkJ ICovCisJCQkJbHNuID0gTFNORm9yRW5jcnlwdGlvbigKKwkJCQkJCXBnX2F0b21pY19yZWFkX3Uz MigmYnVmSGRyLT5zdGF0ZSkgJiBCTV9QRVJNQU5FTlQpOworCQkJfQogCQl9CiAKIAkJYnVmX3N0 YXRlID0gTG9ja0J1ZkhkcihidWZIZHIpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19hbHRlcmNr ZXkvcGdfYWx0ZXJja2V5LmMgYi9zcmMvYmluL3BnX2FsdGVyY2tleS9wZ19hbHRlcmNrZXkuYwpp bmRleCA3ZTNkNGFkOTE1Li5jNjk5YzU5NzYxIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2FsdGVy Y2tleS9wZ19hbHRlcmNrZXkuYworKysgYi9zcmMvYmluL3BnX2FsdGVyY2tleS9wZ19hbHRlcmNr ZXkuYwpAQCAtMzgsMTAgKzM4LDkgQEAKIAogI2luY2x1ZGUgImNvbW1vbi9maWxlX3Blcm0uaCIK ICNpbmNsdWRlICJjb21tb24vZmlsZV91dGlscy5oIgotI2luY2x1ZGUgImNvbW1vbi9oZXguaCIK ICNpbmNsdWRlICJjb21tb24vcmVzdHJpY3RlZF90b2tlbi5oIgotI2luY2x1ZGUgImNyeXB0by9r bWdyLmgiCiAjaW5jbHVkZSAiY29tbW9uL2xvZ2dpbmcuaCIKKyNpbmNsdWRlICJjcnlwdG8va21n ci5oIgogI2luY2x1ZGUgImdldG9wdF9sb25nLmgiCiAjaW5jbHVkZSAicGdfZ2V0b3B0LmgiCiAK QEAgLTg0LDYgKzgzLDkgQEAgc3RhdGljIHZvaWQgYnplcm9fa2V5c19hbmRfZXhpdChleGl0X2Fj dGlvbiBhY3Rpb24pOwogc3RhdGljIHZvaWQgcmVlbmNyeXB0X2RhdGFfa2V5cyh2b2lkKTsKIHN0 YXRpYyB2b2lkIGluc3RhbGxfbmV3X2tleXModm9pZCk7CiAKK3N0YXRpYyB1aW50NjQgaGV4X2Rl Y29kZShjb25zdCBjaGFyICpzcmMsIHNpemVfdCBsZW4sIGNoYXIgKmRzdCk7CisKKwogc3RhdGlj IHZvaWQKIHVzYWdlKGNvbnN0IGNoYXIgKnByb2duYW1lKQogewpAQCAtNTExLDggKzUxMyw4IEBA IHJldHJpZXZlX2NsdXN0ZXJfa2V5cyh2b2lkKQogCQkJCQkJCQkJCQkJICAgKGNoYXIgKikgY2x1 c3Rlcl9rZXlfaGV4LAogCQkJCQkJCQkJCQkJICAgQUxMT0NfS01HUl9DTFVTVEVSX0tFWV9MRU4s CiAJCQkJCQkJCQkJCQkgICBsaXZlX3BhdGgsIHRlcm1pbmFsX2ZkKTsKLQlpZiAocGdfaGV4X2Rl Y29kZShjbHVzdGVyX2tleV9oZXgsIGNsdXN0ZXJfa2V5X2xlbiwKLQkJCQkJICAoY2hhciAqKSBv bGRfY2x1c3Rlcl9rZXksIEtNR1JfQ0xVU1RFUl9LRVlfTEVOKSAhPQorCWlmIChoZXhfZGVjb2Rl KGNsdXN0ZXJfa2V5X2hleCwgY2x1c3Rlcl9rZXlfbGVuLAorCQkJCQkgIChjaGFyICopIG9sZF9j bHVzdGVyX2tleSkgIT0KIAkJS01HUl9DTFVTVEVSX0tFWV9MRU4pCiAJewogCQlwZ19sb2dfZXJy b3IoImNsdXN0ZXIga2V5IG11c3QgYmUgYXQgJWQgaGV4IGJ5dGVzIiwgS01HUl9DTFVTVEVSX0tF WV9MRU4pOwpAQCAtNTM0LDggKzUzNiw4IEBAIHJldHJpZXZlX2NsdXN0ZXJfa2V5cyh2b2lkKQog CQkJCQkJCQkJCQkJICAgKGNoYXIgKikgY2x1c3Rlcl9rZXlfaGV4LAogCQkJCQkJCQkJCQkJICAg QUxMT0NfS01HUl9DTFVTVEVSX0tFWV9MRU4sCiAJCQkJCQkJCQkJCQkgICBuZXdfcGF0aCwgdGVy bWluYWxfZmQpOwotCWlmIChwZ19oZXhfZGVjb2RlKGNsdXN0ZXJfa2V5X2hleCwgY2x1c3Rlcl9r ZXlfbGVuLAotCQkJCQkgIChjaGFyICopIG5ld19jbHVzdGVyX2tleSwgS01HUl9DTFVTVEVSX0tF WV9MRU4pICE9CisJaWYgKGhleF9kZWNvZGUoY2x1c3Rlcl9rZXlfaGV4LCBjbHVzdGVyX2tleV9s ZW4sCisJCQkJCSAgKGNoYXIgKikgbmV3X2NsdXN0ZXJfa2V5KSAhPQogCQlLTUdSX0NMVVNURVJf S0VZX0xFTikKIAl7CiAJCXBnX2xvZ19lcnJvcigiY2x1c3RlciBrZXkgbXVzdCBiZSBhdCAlZCBo ZXggYnl0ZXMiLCBLTUdSX0NMVVNURVJfS0VZX0xFTik7CkBAIC03MjIsMyArNzI0LDY1IEBAIGJ6 ZXJvX2tleXNfYW5kX2V4aXQoZXhpdF9hY3Rpb24gYWN0aW9uKQogCS8qIHJldHVybiAwIG9yIDEg Ki8KIAlleGl0KGFjdGlvbiAhPSBTVUNDRVNTX0VYSVQpOwogfQorCisvKgorICogSEVYCisgKi8K Kworc3RhdGljIGNvbnN0IGludDggaGV4bG9va3VwWzEyOF0gPSB7CisJLTEsIC0xLCAtMSwgLTEs IC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsCisJLTEsIC0x LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEs CisJLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0x LCAtMSwgLTEsCisJMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgLTEsIC0xLCAtMSwgLTEs IC0xLCAtMSwKKwktMSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgLTEsIC0xLCAtMSwgLTEsIC0x LCAtMSwgLTEsIC0xLCAtMSwKKwktMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAt MSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKwktMSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwg LTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKwktMSwgLTEsIC0xLCAtMSwgLTEs IC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKK307CisKK3N0YXRp YyBpbmxpbmUgY2hhcgorZ2V0X2hleChjb25zdCBjaGFyICpjcCkKK3sKKwl1bnNpZ25lZCBjaGFy IGMgPSAodW5zaWduZWQgY2hhcikgKmNwOworCWludAkJCXJlcyA9IC0xOworCisJaWYgKGMgPCAx MjcpCisJCXJlcyA9IGhleGxvb2t1cFtjXTsKKworCWlmIChyZXMgPCAwKQorCQlwZ19mYXRhbCgi aW52YWxpZCBoZXhhZGVjaW1hbCBkaWdpdDogXCIlc1wiIixjcCk7CisKKwlyZXR1cm4gKGNoYXIp IHJlczsKK30KKworc3RhdGljIHVpbnQ2NAoraGV4X2RlY29kZShjb25zdCBjaGFyICpzcmMsIHNp emVfdCBsZW4sIGNoYXIgKmRzdCkKK3sKKwljb25zdCBjaGFyICpzLAorCQkJICAgKnNyY2VuZDsK KwljaGFyCQl2MSwKKwkJCQl2MiwKKwkJCSAgICpwOworCisJc3JjZW5kID0gc3JjICsgbGVuOwor CXMgPSBzcmM7CisJcCA9IGRzdDsKKwl3aGlsZSAocyA8IHNyY2VuZCkKKwl7CisJCWlmICgqcyA9 PSAnICcgfHwgKnMgPT0gJ1xuJyB8fCAqcyA9PSAnXHQnIHx8ICpzID09ICdccicpCisJCXsKKwkJ CXMrKzsKKwkJCWNvbnRpbnVlOworCQl9CisJCXYxID0gZ2V0X2hleChzKSA8PCA0OworCQlzKys7 CisJCWlmIChzID49IHNyY2VuZCkKKwkJCXBnX2ZhdGFsKCJpbnZhbGlkIGhleGFkZWNpbWFsIGRh dGE6IG9kZCBudW1iZXIgb2YgZGlnaXRzIik7CisKKwkJdjIgPSBnZXRfaGV4KHMpOworCQlzKys7 CisJCSpwKysgPSB2MSB8IHYyOworCX0KKworCXJldHVybiBwIC0gZHN0OworfQpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nLmgK aW5kZXggOGYyMTlmYmFjYy4uNzhkZWY1NzUzYSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNj ZXNzL3hsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oCkBAIC0xMDcsMTMgKzEw NywxNSBAQCBleHRlcm4gUEdETExJTVBPUlQgaW50IHdhbF9sZXZlbDsKIC8qCiAgKiBJcyBhIGZ1 bGwtcGFnZSBpbWFnZSBuZWVkZWQgZm9yIGhpbnQgYml0IHVwZGF0ZXM/CiAgKgotICogTm9ybWFs bHksIHdlIGRvbid0IFdBTC1sb2cgaGludCBiaXQgdXBkYXRlcywgYnV0IGlmIGNoZWNrc3VtcyBh cmUgZW5hYmxlZCwKLSAqIHdlIGhhdmUgdG8gcHJvdGVjdCB0aGVtIGFnYWluc3QgdG9ybiBwYWdl IHdyaXRlcy4gIFdoZW4geW91IG9ubHkgc2V0Ci0gKiBpbmRpdmlkdWFsIGJpdHMgb24gYSBwYWdl LCBpdCdzIHN0aWxsIGNvbnNpc3RlbnQgbm8gbWF0dGVyIHdoYXQgY29tYmluYXRpb24KLSAqIG9m IHRoZSBiaXRzIG1ha2UgaXQgdG8gZGlzaywgYnV0IHRoZSBjaGVja3N1bSB3b3VsZG4ndCBtYXRj aC4gIEFsc28gV0FMLWxvZwotICogdGhlbSBpZiBmb3JjZWQgYnkgd2FsX2xvZ19oaW50cz1vbi4K KyAqIE5vcm1hbGx5LCB3ZSBkb24ndCBXQUwtbG9nIGhpbnQgYml0IHVwZGF0ZXMsIGJ1dCBpZiBj aGVja3N1bXMgb3IgZW5jcnlwdGlvbgorICogaXMgZW5hYmxlZCwgd2UgaGF2ZSB0byBwcm90ZWN0 IHRoZW0gYWdhaW5zdCB0b3JuIHBhZ2Ugd3JpdGVzLiAgV2hlbiB5b3UKKyAqIG9ubHkgc2V0IGlu ZGl2aWR1YWwgYml0cyBvbiBhIHBhZ2UsIGl0J3Mgc3RpbGwgY29uc2lzdGVudCBubyBtYXR0ZXIg d2hhdAorICogY29tYmluYXRpb24gb2YgdGhlIGJpdHMgbWFrZSBpdCB0byBkaXNrLCBidXQgdGhl IGNoZWNrc3VtIHdvdWxkbid0IG1hdGNoLgorICogQ2x1c3RlciBmaWxlIGVuY3J5cHRpb24gcmVx dWlyZXMgYSBuZXcgTFNOIGZvciBoaW50IGJpdCBjaGFuZ2VzLCBhbmQgY2FuJ3QKKyAqIHRvbGVy YXRlIHRvcm4gcGFnZXMuICBBbHNvIFdBTC1sb2cgdGhlbSBpZiBmb3JjZWQgYnkgd2FsX2xvZ19o aW50cz1vbi4KICAqLwotI2RlZmluZSBYTG9nSGludEJpdElzTmVlZGVkKCkgKERhdGFDaGVja3N1 bXNFbmFibGVkKCkgfHwgd2FsX2xvZ19oaW50cykKKyNkZWZpbmUgWExvZ0hpbnRCaXRJc05lZWRl ZCgpIFwKKwkJKERhdGFDaGVja3N1bXNFbmFibGVkKCkgfHwgRmlsZUVuY3J5cHRpb25FbmFibGVk IHx8IHdhbF9sb2dfaGludHMpCiAKIC8qIERvIHdlIG5lZWQgdG8gV0FMLWxvZyBpbmZvcm1hdGlv biByZXF1aXJlZCBvbmx5IGZvciBIb3QgU3RhbmRieSBhbmQgbG9naWNhbCByZXBsaWNhdGlvbj8g Ki8KICNkZWZpbmUgWExvZ1N0YW5kYnlJbmZvQWN0aXZlKCkgKHdhbF9sZXZlbCA+PSBXQUxfTEVW RUxfUkVQTElDQSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9naW5zZXJ0Lmgg Yi9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZ2luc2VydC5oCmluZGV4IDAwMWZmMmY1MjEuLmRmYjUw MWE3YzMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9naW5zZXJ0LmgKKysrIGIv c3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dpbnNlcnQuaApAQCAtNjEsNiArNjEsOCBAQCBleHRlcm4g dm9pZCBsb2dfbmV3cGFnZV9yYW5nZShSZWxhdGlvbiByZWwsIEZvcmtOdW1iZXIgZm9ya251bSwK IAkJCQkJCQkgIEJsb2NrTnVtYmVyIHN0YXJ0YmxrLCBCbG9ja051bWJlciBlbmRibGssIGJvb2wg cGFnZV9zdGQpOwogZXh0ZXJuIFhMb2dSZWNQdHIgWExvZ1NhdmVCdWZmZXJGb3JIaW50KEJ1ZmZl ciBidWZmZXIsIGJvb2wgYnVmZmVyX3N0ZCk7CiAKK2V4dGVybiBYTG9nUmVjUHRyIExTTkZvckVu Y3J5cHRpb24oYm9vbCB1c2Vfd2FsX2xzbik7CisKIGV4dGVybiB2b2lkIEluaXRYTG9nSW5zZXJ0 KHZvaWQpOwogCiAjZW5kaWYJCQkJCQkJLyogWExPR0lOU0VSVF9IICovCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnRyb2wuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf Y29udHJvbC5oCmluZGV4IGRiN2RlNzcyODcuLjFjOTdmZmQyY2QgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfY29udHJvbC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf Y29udHJvbC5oCkBAIC03OCw2ICs3OCw3IEBAIHR5cGVkZWYgc3RydWN0IENoZWNrUG9pbnQKICNk ZWZpbmUgWExPR19GUEkJCQkJCQkweEIwCiAvKiAweEMwIGlzIHVzZWQgaW4gUG9zdGdyZXMgOS41 LTExICovCiAjZGVmaW5lIFhMT0dfT1ZFUldSSVRFX0NPTlRSRUNPUkQJCTB4RDAKKyNkZWZpbmUg WExPR19FTkNSWVBUSU9OX0xTTgkJCQkweEUwCiAKIAogLyoKLS0gCjIuMzcuMCAoQXBwbGUgR2l0 LTEzNikKCg== --000000000000cbfbc705ebca4b20 Content-Type: application/octet-stream; name="0011-cfe-11-gist_over_cfe-10-hint-squash-commit.patch" Content-Disposition: attachment; filename="0011-cfe-11-gist_over_cfe-10-hint-squash-commit.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l9mztvv610 RnJvbSAzODVkODViODdlNGYwYTdjM2EzZTU1MWExNTc1NDY2ZThkMzQ4ZDkzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCcnVjZSBNb21qaWFuIDxicnVjZUBtb21qaWFuLnVzPgpEYXRl OiBGcmksIDI1IEp1biAyMDIxIDE2OjU3OjA1IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAxMS8xMl0g Y2ZlLTExLWdpc3Rfb3Zlcl9jZmUtMTAtaGludCBzcXVhc2ggY29tbWl0CgotLS0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy9naXN0L1JFQURNRSAgICAgICB8IDEwICsrKysrKysrKysKIHNyYy9iYWNrZW5k L2FjY2Vzcy9naXN0L2dpc3QuYyAgICAgICB8IDIxICsrKysrKysrKysrKysrKy0tLS0tLQogc3Jj L2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdGJ1aWxkLmMgIHwgMTIgKysrKysrKysrLS0tCiBzcmMv YmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dmFjdXVtLmMgfCAyMCArKysrKysrKysrKysrKy0tLS0t LQogNCBmaWxlcyBjaGFuZ2VkLCA0OCBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9SRUFETUUgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvZ2lzdC9SRUFETUUKaW5kZXggZWZiMjczMGUxOC4uYzRkOTA4ZmNiMiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvUkVBRE1FCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9naXN0L1JFQURNRQpAQCAtNDc3LDYgKzQ3NywxNiBAQCB2YWx1ZS4gVGhlIHBhZ2UgaXMgbm90 IHJlY3ljbGVkLCB1bnRpbCB0aGF0IFhJRCBpcyBubyBsb25nZXIgdmlzaWJsZSB0bwogYW55b25l LiBUaGF0J3MgbXVjaCBtb3JlIGNvbnNlcnZhdGl2ZSB0aGFuIG5lY2Vzc2FyeSwgYnV0IGxldCdz IGtlZXAgaXQKIHNpbXBsZS4KIAorR2lTVCBhbmQgRW5jcnlwdGlvbgorLS0tLS0tLS0tLS0tLS0t LS0tLQorCitHaVNUIHVzZXMgTFNOcyBhbmQgTlNOcyBmb3IgY29uY3VycmVuY3kuICBUaGlzIG1l YW5zIHRoYXQgdW5sb2dnZWQgYW5kCit0ZW1wb3JhcnkgcmVsYXRpb25zIGFsc28gbmVlZCBMU05z LiAgR2lTVCBoYXMgYSBtZWNoYW5pc20gdG8gYXNzaWduIExTTnMKK3RvIHN1Y2ggcmVsYXRpb25z LCBidXQgc29tZXRpbWVzIHVzZXMgZml4ZWQgTFNOcyBhbmQgb3IgY2FsbHMKK2dpc3RHZXRGYWtl TFNOKCksIHdoaWNoIGNhbiBjYXVzZSBkdXBsaWNhdGUgTFNOcyB0byBiZSB1c2VkLiAgVGhlcmVm b3JlLAord2hlbiBlbmNyeXB0aW9uIGlzIGVuYWJsZWQgYW5kIGZha2UgTFNOcyBhcmUgbmVlZGVk LCB0aGUgR2lTVCBjb2RlIGNhbGxzCitMU05Gb3JFbmNyeXB0aW9uKCkuICBTZWUgc3JjL2JhY2tl bmQvY3J5cHRvL1JFQURNRSBmb3IgbW9yZSBkZXRhaWxzLgorCiAKIEF1dGhvcnM6CiAJVGVvZG9y IFNpZ2Fldgk8dGVvZG9yQHNpZ2Fldi5ydT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9naXN0L2dpc3QuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3QuYwppbmRleCAzMDA2 OWYxMzljLi43NGU3ZTQ4NWU2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9n aXN0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdC5jCkBAIC01MDEsMTMgKzUw MSwxNiBAQCBnaXN0cGxhY2V0b3BhZ2UoUmVsYXRpb24gcmVsLCBTaXplIGZyZWVzcGFjZSwgR0lT VFNUQVRFICpnaXN0c3RhdGUsCiAJCSAqIHdlIGRvbid0IG5lZWQgdG8gYmUgYWJsZSB0byBkZXRl Y3QgY29uY3VycmVudCBzcGxpdHMgeWV0LikKIAkJICovCiAJCWlmIChpc19idWlsZCkKLQkJCXJl Y3B0ciA9IEdpc3RCdWlsZExTTjsKKwkJCXJlY3B0ciA9ICFGaWxlRW5jcnlwdGlvbkVuYWJsZWQg PyBHaXN0QnVpbGRMU04gOgorCQkJCQkJTFNORm9yRW5jcnlwdGlvbihSZWxhdGlvbklzUGVybWFu ZW50KHJlbCkpOwogCQllbHNlCiAJCXsKIAkJCWlmIChSZWxhdGlvbk5lZWRzV0FMKHJlbCkpCiAJ CQkJcmVjcHRyID0gZ2lzdFhMb2dTcGxpdChpc19sZWFmLAogCQkJCQkJCQkJICAgZGlzdCwgb2xk cmxpbmssIG9sZG5zbiwgbGVmdGNoaWxkYnVmLAogCQkJCQkJCQkJICAgbWFya2ZvbGxvd3JpZ2h0 KTsKKwkJCWVsc2UgaWYgKEZpbGVFbmNyeXB0aW9uRW5hYmxlZCkKKwkJCQlyZWNwdHIgPSBMU05G b3JFbmNyeXB0aW9uKFJlbGF0aW9uSXNQZXJtYW5lbnQocmVsKSk7CiAJCQllbHNlCiAJCQkJcmVj cHRyID0gZ2lzdEdldEZha2VMU04ocmVsKTsKIAkJfQpAQCAtNTY4LDcgKzU3MSw4IEBAIGdpc3Rw bGFjZXRvcGFnZShSZWxhdGlvbiByZWwsIFNpemUgZnJlZXNwYWNlLCBHSVNUU1RBVEUgKmdpc3Rz dGF0ZSwKIAkJCU1hcmtCdWZmZXJEaXJ0eShsZWZ0Y2hpbGRidWYpOwogCiAJCWlmIChpc19idWls ZCkKLQkJCXJlY3B0ciA9IEdpc3RCdWlsZExTTjsKKwkJCXJlY3B0ciA9ICFGaWxlRW5jcnlwdGlv bkVuYWJsZWQgPyBHaXN0QnVpbGRMU04gOgorCQkJCQkJTFNORm9yRW5jcnlwdGlvbihSZWxhdGlv bklzUGVybWFuZW50KHJlbCkpOwogCQllbHNlCiAJCXsKIAkJCWlmIChSZWxhdGlvbk5lZWRzV0FM KHJlbCkpCkBAIC01ODYsNiArNTkwLDggQEAgZ2lzdHBsYWNldG9wYWdlKFJlbGF0aW9uIHJlbCwg U2l6ZSBmcmVlc3BhY2UsIEdJU1RTVEFURSAqZ2lzdHN0YXRlLAogCQkJCQkJCQkJCWRlbG9mZnMs IG5kZWxvZmZzLCBpdHVwLCBudHVwLAogCQkJCQkJCQkJCWxlZnRjaGlsZGJ1Zik7CiAJCQl9CisJ CQllbHNlIGlmIChGaWxlRW5jcnlwdGlvbkVuYWJsZWQpCisJCQkJcmVjcHRyID0gTFNORm9yRW5j cnlwdGlvbihSZWxhdGlvbklzUGVybWFuZW50KHJlbCkpOwogCQkJZWxzZQogCQkJCXJlY3B0ciA9 IGdpc3RHZXRGYWtlTFNOKHJlbCk7CiAJCX0KQEAgLTE2NjUsNiArMTY3MSw4IEBAIGdpc3RwcnVu ZXBhZ2UoUmVsYXRpb24gcmVsLCBQYWdlIHBhZ2UsIEJ1ZmZlciBidWZmZXIsIFJlbGF0aW9uIGhl YXBSZWwpCiAKIAlpZiAobmRlbGV0YWJsZSA+IDApCiAJeworCQlYTG9nUmVjUHRyCXJlY3B0cjsK KwogCQlUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRYaWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25J ZDsKIAogCQlpZiAoWExvZ1N0YW5kYnlJbmZvQWN0aXZlKCkgJiYgUmVsYXRpb25OZWVkc1dBTChy ZWwpKQpAQCAtMTY5MCwxNiArMTY5OCwxNyBAQCBnaXN0cHJ1bmVwYWdlKFJlbGF0aW9uIHJlbCwg UGFnZSBwYWdlLCBCdWZmZXIgYnVmZmVyLCBSZWxhdGlvbiBoZWFwUmVsKQogCQkvKiBYTE9HIHN0 dWZmICovCiAJCWlmIChSZWxhdGlvbk5lZWRzV0FMKHJlbCkpCiAJCXsKLQkJCVhMb2dSZWNQdHIJ cmVjcHRyOwotCiAJCQlyZWNwdHIgPSBnaXN0WExvZ0RlbGV0ZShidWZmZXIsCiAJCQkJCQkJCQlk ZWxldGFibGUsIG5kZWxldGFibGUsCiAJCQkJCQkJCQlsYXRlc3RSZW1vdmVkWGlkKTsKIAotCQkJ UGFnZVNldExTTihwYWdlLCByZWNwdHIpOwogCQl9CisJCWVsc2UgaWYgKEZpbGVFbmNyeXB0aW9u RW5hYmxlZCkKKwkJCXJlY3B0ciA9IExTTkZvckVuY3J5cHRpb24oUmVsYXRpb25Jc1Blcm1hbmVu dChyZWwpKTsKIAkJZWxzZQotCQkJUGFnZVNldExTTihwYWdlLCBnaXN0R2V0RmFrZUxTTihyZWwp KTsKKwkJCXJlY3B0ciA9IGdpc3RHZXRGYWtlTFNOKHJlbCk7CisKKwkJUGFnZVNldExTTihwYWdl LCByZWNwdHIpOwogCiAJCUVORF9DUklUX1NFQ1RJT04oKTsKIAl9CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0YnVpbGQuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0 L2dpc3RidWlsZC5jCmluZGV4IGZiMGY0NjY3MDguLmJmNTE2MmI0MTAgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3RidWlsZC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9naXN0L2dpc3RidWlsZC5jCkBAIC00OCw2ICs0OCw4IEBACiAjaW5jbHVkZSAidXRpbHMvcmVs LmgiCiAjaW5jbHVkZSAidXRpbHMvdHVwbGVzb3J0LmgiCiAKK2V4dGVybiBYTG9nUmVjUHRyIExT TkZvckVuY3J5cHRpb24oYm9vbCB1c2Vfd2FsX2xzbik7CisKIC8qIFN0ZXAgb2YgaW5kZXggdHVw bGVzIGZvciBjaGVjayB3aGV0aGVyIHRvIHN3aXRjaCB0byBidWZmZXJpbmcgYnVpbGQgbW9kZSAq LwogI2RlZmluZSBCVUZGRVJJTkdfTU9ERV9TV0lUQ0hfQ0hFQ0tfU1RFUCAyNTYKIApAQCAtMzA3 LDcgKzMwOSw4IEBAIGdpc3RidWlsZChSZWxhdGlvbiBoZWFwLCBSZWxhdGlvbiBpbmRleCwgSW5k ZXhJbmZvICppbmRleEluZm8pCiAJCUdJU1RJbml0QnVmZmVyKGJ1ZmZlciwgRl9MRUFGKTsKIAog CQlNYXJrQnVmZmVyRGlydHkoYnVmZmVyKTsKLQkJUGFnZVNldExTTihwYWdlLCBHaXN0QnVpbGRM U04pOworCQlQYWdlU2V0TFNOKHBhZ2UsICFGaWxlRW5jcnlwdGlvbkVuYWJsZWQgPyBHaXN0QnVp bGRMU04gOgorCQkJCSAgIExTTkZvckVuY3J5cHRpb24oUmVsYXRpb25Jc1Blcm1hbmVudChpbmRl eCkpKTsKIAogCQlVbmxvY2tSZWxlYXNlQnVmZmVyKGJ1ZmZlcik7CiAKQEAgLTQ1OCw3ICs0NjEs OSBAQCBnaXN0X2luZGV4c29ydGJ1aWxkKEdJU1RCdWlsZFN0YXRlICpzdGF0ZSkKIAlnaXN0X2lu ZGV4c29ydGJ1aWxkX2ZsdXNoX3JlYWR5X3BhZ2VzKHN0YXRlKTsKIAogCS8qIFdyaXRlIG91dCB0 aGUgcm9vdCAqLwotCVBhZ2VTZXRMU04obGV2ZWxzdGF0ZS0+cGFnZXNbMF0sIEdpc3RCdWlsZExT Tik7CisJUmVsYXRpb25HZXRTbWdyKHN0YXRlLT5pbmRleHJlbCk7CisJUGFnZVNldExTTihsZXZl bHN0YXRlLT5wYWdlc1swXSwgIUZpbGVFbmNyeXB0aW9uRW5hYmxlZCA/IEdpc3RCdWlsZExTTiA6 CisJCQkgICBMU05Gb3JFbmNyeXB0aW9uKFJlbGF0aW9uSXNQZXJtYW5lbnQoc3RhdGUtPmluZGV4 cmVsKSkpOwogCVBhZ2VTZXRDaGVja3N1bUlucGxhY2UobGV2ZWxzdGF0ZS0+cGFnZXNbMF0sIEdJ U1RfUk9PVF9CTEtOTyk7CiAJc21ncndyaXRlKFJlbGF0aW9uR2V0U21ncihzdGF0ZS0+aW5kZXhy ZWwpLCBNQUlOX0ZPUktOVU0sIEdJU1RfUk9PVF9CTEtOTywKIAkJCSAgbGV2ZWxzdGF0ZS0+cGFn ZXNbMF0sIHRydWUpOwpAQCAtNjU1LDcgKzY2MCw4IEBAIGdpc3RfaW5kZXhzb3J0YnVpbGRfZmx1 c2hfcmVhZHlfcGFnZXMoR0lTVEJ1aWxkU3RhdGUgKnN0YXRlKQogCQlpZiAoYmxrbm8gIT0gc3Rh dGUtPnBhZ2VzX3dyaXR0ZW4pCiAJCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBibG9jayBudW1i ZXIgdG8gZmx1c2ggR2lTVCBzb3J0aW5nIGJ1aWxkIik7CiAKLQkJUGFnZVNldExTTihwYWdlLCBH aXN0QnVpbGRMU04pOworCQlQYWdlU2V0TFNOKHBhZ2UsICFGaWxlRW5jcnlwdGlvbkVuYWJsZWQg PyBHaXN0QnVpbGRMU04gOgorCQkJCSAgIExTTkZvckVuY3J5cHRpb24oUmVsYXRpb25Jc1Blcm1h bmVudChzdGF0ZS0+aW5kZXhyZWwpKSk7CiAJCVBhZ2VTZXRDaGVja3N1bUlucGxhY2UocGFnZSwg Ymxrbm8pOwogCQlzbWdyZXh0ZW5kKFJlbGF0aW9uR2V0U21ncihzdGF0ZS0+aW5kZXhyZWwpLCBN QUlOX0ZPUktOVU0sIGJsa25vLCBwYWdlLAogCQkJCSAgIHRydWUpOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhY3V1bS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dp c3QvZ2lzdHZhY3V1bS5jCmluZGV4IDBhYTZlNThhNjIuLjM1MjY1YWUwZTcgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2YWN1dW0uYworKysgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvZ2lzdC9naXN0dmFjdXVtLmMKQEAgLTI0LDYgKzI0LDggQEAKICNpbmNsdWRlICJzdG9y YWdlL2xtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgogCitleHRlcm4gWExvZ1Jl Y1B0ciBMU05Gb3JFbmNyeXB0aW9uKGJvb2wgdXNlX3dhbF9sc24pOworCiAvKiBXb3JraW5nIHN0 YXRlIG5lZWRlZCBieSBnaXN0YnVsa2RlbGV0ZSAqLwogdHlwZWRlZiBzdHJ1Y3QKIHsKQEAgLTE4 MCw2ICsxODIsOCBAQCBnaXN0dmFjdXVtc2NhbihJbmRleFZhY3V1bUluZm8gKmluZm8sIEluZGV4 QnVsa0RlbGV0ZVJlc3VsdCAqc3RhdHMsCiAJdnN0YXRlLmNhbGxiYWNrX3N0YXRlID0gY2FsbGJh Y2tfc3RhdGU7CiAJaWYgKFJlbGF0aW9uTmVlZHNXQUwocmVsKSkKIAkJdnN0YXRlLnN0YXJ0TlNO ID0gR2V0SW5zZXJ0UmVjUHRyKCk7CisJZWxzZSBpZiAoRmlsZUVuY3J5cHRpb25FbmFibGVkKQor CQl2c3RhdGUuc3RhcnROU04gPSBMU05Gb3JFbmNyeXB0aW9uKFJlbGF0aW9uSXNQZXJtYW5lbnQo cmVsKSk7CiAJZWxzZQogCQl2c3RhdGUuc3RhcnROU04gPSBnaXN0R2V0RmFrZUxTTihyZWwpOwog CkBAIC0zNTksNiArMzYzLDggQEAgcmVzdGFydDoKIAkJICovCiAJCWlmIChudG9kZWxldGUgPiAw KQogCQl7CisJCQlYTG9nUmVjUHRyCXJlY3B0cjsKKwogCQkJU1RBUlRfQ1JJVF9TRUNUSU9OKCk7 CiAKIAkJCU1hcmtCdWZmZXJEaXJ0eShidWZmZXIpOwpAQCAtMzY3LDE2ICszNzMsMTUgQEAgcmVz dGFydDoKIAkJCUdpc3RNYXJrVHVwbGVzRGVsZXRlZChwYWdlKTsKIAogCQkJaWYgKFJlbGF0aW9u TmVlZHNXQUwocmVsKSkKLQkJCXsKLQkJCQlYTG9nUmVjUHRyCXJlY3B0cjsKLQogCQkJCXJlY3B0 ciA9IGdpc3RYTG9nVXBkYXRlKGJ1ZmZlciwKIAkJCQkJCQkJCQl0b2RlbGV0ZSwgbnRvZGVsZXRl LAogCQkJCQkJCQkJCU5VTEwsIDAsIEludmFsaWRCdWZmZXIpOwotCQkJCVBhZ2VTZXRMU04ocGFn ZSwgcmVjcHRyKTsKLQkJCX0KKwkJCWVsc2UgaWYgKEZpbGVFbmNyeXB0aW9uRW5hYmxlZCkKKwkJ CQlyZWNwdHIgPSBMU05Gb3JFbmNyeXB0aW9uKFJlbGF0aW9uSXNQZXJtYW5lbnQocmVsKSk7CiAJ CQllbHNlCi0JCQkJUGFnZVNldExTTihwYWdlLCBnaXN0R2V0RmFrZUxTTihyZWwpKTsKKwkJCQly ZWNwdHIgPSBnaXN0R2V0RmFrZUxTTihyZWwpOworCisJCQlQYWdlU2V0TFNOKHBhZ2UsIHJlY3B0 cik7CiAKIAkJCUVORF9DUklUX1NFQ1RJT04oKTsKIApAQCAtNjYzLDggKzY2OCwxMSBAQCBnaXN0 ZGVsZXRlcGFnZShJbmRleFZhY3V1bUluZm8gKmluZm8sIEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAq c3RhdHMsCiAKIAlpZiAoUmVsYXRpb25OZWVkc1dBTChpbmZvLT5pbmRleCkpCiAJCXJlY3B0ciA9 IGdpc3RYTG9nUGFnZURlbGV0ZShsZWFmQnVmZmVyLCB0eGlkLCBwYXJlbnRCdWZmZXIsIGRvd25s aW5rKTsKKwllbHNlIGlmIChGaWxlRW5jcnlwdGlvbkVuYWJsZWQpCisJCXJlY3B0ciA9IExTTkZv ckVuY3J5cHRpb24oUmVsYXRpb25Jc1Blcm1hbmVudChpbmZvLT5pbmRleCkpOwogCWVsc2UKIAkJ cmVjcHRyID0gZ2lzdEdldEZha2VMU04oaW5mby0+aW5kZXgpOworCiAJUGFnZVNldExTTihwYXJl bnRQYWdlLCByZWNwdHIpOwogCVBhZ2VTZXRMU04obGVhZlBhZ2UsIHJlY3B0cik7CiAKLS0gCjIu MzcuMCAoQXBwbGUgR2l0LTEzNikKCg== --000000000000cbfbc705ebca4b20 Content-Type: application/octet-stream; name="0012-cfe-12-rel_over_cfe-11-gist-squash-commit.patch" Content-Disposition: attachment; filename="0012-cfe-12-rel_over_cfe-11-gist-squash-commit.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l9mzu41i11 RnJvbSAwNDJkOWUzMjkyY2YxOTcwZDE1Y2Q5OGE4NDQ0MDU1MmQxMDQxMmUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCcnVjZSBNb21qaWFuIDxicnVjZUBtb21qaWFuLnVzPgpEYXRl OiBGcmksIDI1IEp1biAyMDIxIDE2OjU3OjA4IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAxMi8xMl0g Y2ZlLTEyLXJlbF9vdmVyX2NmZS0xMS1naXN0IHNxdWFzaCBjb21taXQKCi0tLQogY29udHJpYi9i YXNpY19hcmNoaXZlL2Jhc2ljX2FyY2hpdmUuYyB8ICAgMiArLQogY29udHJpYi9ibG9vbS9ibGlu c2VydC5jICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0 LmMgICAgICAgIHwgIDUxICsrKystLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0YnVp bGQuYyAgIHwgIDEyICsrCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNocGFnZS5jICAgIHwg ICAxICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Jld3JpdGVoZWFwLmMgfCAgIDcgKwogc3Jj L2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRyZWUuYyAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9h Y2Nlc3MvbmJ0cmVlL25idHNvcnQuYyAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9hY2Nlc3Mvc3Bn aXN0L3NwZ2luc2VydC5jIHwgICA2ICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cu YyAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvYm9vdHN0cmFwL2Jvb3RzdHJhcC5jICAgICB8ICAg MSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL3N0b3JhZ2UuYyAgICAgICAgIHwgICA3ICstCiBzcmMv YmFja2VuZC9jcnlwdG8vTWFrZWZpbGUgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2Ny eXB0by9idWZlbmMuYyAgICAgICAgICAgfCAxNzYgKysrKysrKysrKysrKysrKysrKysrKysrKysK IHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jICAgfCAgIDIgKwogc3JjL2JhY2tl bmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMgICB8ICAyMiArKystCiBzcmMvYmFja2VuZC9zdG9y YWdlL2J1ZmZlci9sb2NhbGJ1Zi5jIHwgICA4ICstCiBzcmMvYmFja2VuZC9zdG9yYWdlL2ZpbGUv Y29weWRpci5jICAgIHwgIDI4ICsrKy0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvZmlsZS9yZWluaXQu YyAgICAgfCAgIDIgKy0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvcGFnZS9idWZwYWdlLmMgICAgfCAg NTEgKysrKysrKy0KIHNyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyAgICAgICAgICAgfCAgIDIg Kwogc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3QuaCAgICAgICAgICAgICB8ICAgNSArLQogc3JjL2lu Y2x1ZGUvY3J5cHRvL2J1ZmVuYy5oICAgICAgICAgICB8ICAyOCArKysrCiBzcmMvaW5jbHVkZS9z dG9yYWdlL2J1ZnBhZ2UuaCAgICAgICAgIHwgIDE4ICsrLQogc3JjL2luY2x1ZGUvc3RvcmFnZS9j b3B5ZGlyLmggICAgICAgICB8ICAgMiArLQogMjUgZmlsZXMgY2hhbmdlZCwgMzk2IGluc2VydGlv bnMoKyksIDQ4IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL2Ny eXB0by9idWZlbmMuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2NyeXB0by9idWZl bmMuaAoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYmFzaWNfYXJjaGl2ZS9iYXNpY19hcmNoaXZlLmMg Yi9jb250cmliL2Jhc2ljX2FyY2hpdmUvYmFzaWNfYXJjaGl2ZS5jCmluZGV4IDlmMjIxODE2YmIu LjdhNTllMzRhNDIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYmFzaWNfYXJjaGl2ZS9iYXNpY19hcmNo aXZlLmMKKysrIGIvY29udHJpYi9iYXNpY19hcmNoaXZlL2Jhc2ljX2FyY2hpdmUuYwpAQCAtMjc1 LDcgKzI3NSw3IEBAIGJhc2ljX2FyY2hpdmVfZmlsZV9pbnRlcm5hbChjb25zdCBjaGFyICpmaWxl LCBjb25zdCBjaGFyICpwYXRoKQogCSAqIENvcHkgdGhlIGZpbGUgdG8gaXRzIHRlbXBvcmFyeSBk ZXN0aW5hdGlvbi4gIE5vdGUgdGhhdCB0aGlzIHdpbGwgZmFpbAogCSAqIGlmIHRlbXAgYWxyZWFk eSBleGlzdHMuCiAJICovCi0JY29weV9maWxlKHVuY29uc3RpZnkoY2hhciAqLCBwYXRoKSwgdGVt cCk7CisJY29weV9maWxlKHVuY29uc3RpZnkoY2hhciAqLCBwYXRoKSwgdGVtcCwgZmFsc2UpOwog CiAJLyoKIAkgKiBTeW5jIHRoZSB0ZW1wb3JhcnkgZmlsZSB0byBkaXNrIGFuZCBtb3ZlIGl0IHRv IGl0cyBmaW5hbCBkZXN0aW5hdGlvbi4KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYmxvb20vYmxpbnNl cnQuYyBiL2NvbnRyaWIvYmxvb20vYmxpbnNlcnQuYwppbmRleCBkZDI2ZDZhYzI5Li4zMjA0OTUw ODE3IDEwMDY0NAotLS0gYS9jb250cmliL2Jsb29tL2JsaW5zZXJ0LmMKKysrIGIvY29udHJpYi9i bG9vbS9ibGluc2VydC5jCkBAIC0xNzYsNyArMTc2LDEwIEBAIGJsYnVpbGRlbXB0eShSZWxhdGlv biBpbmRleCkKIAkgKiBYTE9HX0RCQVNFX0NSRUFURSogb3IgWExPR19UQkxTUENfQ1JFQVRFIHJl Y29yZC4gIFRoZXJlZm9yZSwgd2UgbmVlZAogCSAqIHRoaXMgZXZlbiB3aGVuIHdhbF9sZXZlbD1t aW5pbWFsLgogCSAqLworCVBhZ2VFbmNyeXB0SW5wbGFjZShtZXRhcGFnZSwgSU5JVF9GT1JLTlVN LCBSZWxhdGlvbklzUGVybWFuZW50KGluZGV4KSwKKwkJCQkJICAgQkxPT01fTUVUQVBBR0VfQkxL Tk8pOwogCVBhZ2VTZXRDaGVja3N1bUlucGxhY2UobWV0YXBhZ2UsIEJMT09NX01FVEFQQUdFX0JM S05PKTsKKwogCXNtZ3J3cml0ZShSZWxhdGlvbkdldFNtZ3IoaW5kZXgpLCBJTklUX0ZPUktOVU0s IEJMT09NX01FVEFQQUdFX0JMS05PLAogCQkJICAoY2hhciAqKSBtZXRhcGFnZSwgdHJ1ZSk7CiAJ bG9nX25ld3BhZ2UoJihSZWxhdGlvbkdldFNtZ3IoaW5kZXgpKS0+c21ncl9ybG9jYXRvci5sb2Nh dG9yLCBJTklUX0ZPUktOVU0sCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9n aXN0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0LmMKaW5kZXggNzRlN2U0ODVlNi4u MzQ3MmFmZTM2MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdC5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3QuYwpAQCAtNTAzLDE3ICs1MDMsMTQgQEAg Z2lzdHBsYWNldG9wYWdlKFJlbGF0aW9uIHJlbCwgU2l6ZSBmcmVlc3BhY2UsIEdJU1RTVEFURSAq Z2lzdHN0YXRlLAogCQlpZiAoaXNfYnVpbGQpCiAJCQlyZWNwdHIgPSAhRmlsZUVuY3J5cHRpb25F bmFibGVkID8gR2lzdEJ1aWxkTFNOIDoKIAkJCQkJCUxTTkZvckVuY3J5cHRpb24oUmVsYXRpb25J c1Blcm1hbmVudChyZWwpKTsKKwkJZWxzZSBpZiAoUmVsYXRpb25OZWVkc1dBTChyZWwpKQorCQkJ cmVjcHRyID0gZ2lzdFhMb2dTcGxpdChpc19sZWFmLAorCQkJCQkJCQkgICBkaXN0LCBvbGRybGlu aywgb2xkbnNuLCBsZWZ0Y2hpbGRidWYsCisJCQkJCQkJCSAgIG1hcmtmb2xsb3dyaWdodCk7CisJ CWVsc2UgaWYgKEZpbGVFbmNyeXB0aW9uRW5hYmxlZCkKKwkJCXJlY3B0ciA9IExTTkZvckVuY3J5 cHRpb24oUmVsYXRpb25Jc1Blcm1hbmVudChyZWwpKTsKIAkJZWxzZQotCQl7Ci0JCQlpZiAoUmVs YXRpb25OZWVkc1dBTChyZWwpKQotCQkJCXJlY3B0ciA9IGdpc3RYTG9nU3BsaXQoaXNfbGVhZiwK LQkJCQkJCQkJCSAgIGRpc3QsIG9sZHJsaW5rLCBvbGRuc24sIGxlZnRjaGlsZGJ1ZiwKLQkJCQkJ CQkJCSAgIG1hcmtmb2xsb3dyaWdodCk7Ci0JCQllbHNlIGlmIChGaWxlRW5jcnlwdGlvbkVuYWJs ZWQpCi0JCQkJcmVjcHRyID0gTFNORm9yRW5jcnlwdGlvbihSZWxhdGlvbklzUGVybWFuZW50KHJl bCkpOwotCQkJZWxzZQotCQkJCXJlY3B0ciA9IGdpc3RHZXRGYWtlTFNOKHJlbCk7Ci0JCX0KKwkJ CXJlY3B0ciA9IGdpc3RHZXRGYWtlTFNOKHJlbCk7CiAKIAkJZm9yIChwdHIgPSBkaXN0OyBwdHI7 IHB0ciA9IHB0ci0+bmV4dCkKIAkJCVBhZ2VTZXRMU04ocHRyLT5wYWdlLCByZWNwdHIpOwpAQCAt NTczLDI4ICs1NzAsMjYgQEAgZ2lzdHBsYWNldG9wYWdlKFJlbGF0aW9uIHJlbCwgU2l6ZSBmcmVl c3BhY2UsIEdJU1RTVEFURSAqZ2lzdHN0YXRlLAogCQlpZiAoaXNfYnVpbGQpCiAJCQlyZWNwdHIg PSAhRmlsZUVuY3J5cHRpb25FbmFibGVkID8gR2lzdEJ1aWxkTFNOIDoKIAkJCQkJCUxTTkZvckVu Y3J5cHRpb24oUmVsYXRpb25Jc1Blcm1hbmVudChyZWwpKTsKLQkJZWxzZQorCQllbHNlIGlmIChS ZWxhdGlvbk5lZWRzV0FMKHJlbCkpCiAJCXsKLQkJCWlmIChSZWxhdGlvbk5lZWRzV0FMKHJlbCkp Ci0JCQl7Ci0JCQkJT2Zmc2V0TnVtYmVyIG5kZWxvZmZzID0gMCwKLQkJCQkJCQlkZWxvZmZzWzFd OworCQkJT2Zmc2V0TnVtYmVyIG5kZWxvZmZzID0gMCwKKwkJCQkJCWRlbG9mZnNbMV07CiAKLQkJ CQlpZiAoT2Zmc2V0TnVtYmVySXNWYWxpZChvbGRvZmZudW0pKQotCQkJCXsKLQkJCQkJZGVsb2Zm c1swXSA9IG9sZG9mZm51bTsKLQkJCQkJbmRlbG9mZnMgPSAxOwotCQkJCX0KLQotCQkJCXJlY3B0 ciA9IGdpc3RYTG9nVXBkYXRlKGJ1ZmZlciwKLQkJCQkJCQkJCQlkZWxvZmZzLCBuZGVsb2Zmcywg aXR1cCwgbnR1cCwKLQkJCQkJCQkJCQlsZWZ0Y2hpbGRidWYpOworCQkJaWYgKE9mZnNldE51bWJl cklzVmFsaWQob2xkb2ZmbnVtKSkKKwkJCXsKKwkJCQlkZWxvZmZzWzBdID0gb2xkb2ZmbnVtOwor CQkJCW5kZWxvZmZzID0gMTsKIAkJCX0KLQkJCWVsc2UgaWYgKEZpbGVFbmNyeXB0aW9uRW5hYmxl ZCkKLQkJCQlyZWNwdHIgPSBMU05Gb3JFbmNyeXB0aW9uKFJlbGF0aW9uSXNQZXJtYW5lbnQocmVs KSk7Ci0JCQllbHNlCi0JCQkJcmVjcHRyID0gZ2lzdEdldEZha2VMU04ocmVsKTsKKworCQkJcmVj cHRyID0gZ2lzdFhMb2dVcGRhdGUoYnVmZmVyLAorCQkJCQkJCQkJZGVsb2ZmcywgbmRlbG9mZnMs IGl0dXAsIG50dXAsCisJCQkJCQkJCQlsZWZ0Y2hpbGRidWYpOwogCQl9CisJCWVsc2UgaWYgKEZp bGVFbmNyeXB0aW9uRW5hYmxlZCkKKwkJCXJlY3B0ciA9IExTTkZvckVuY3J5cHRpb24oUmVsYXRp b25Jc1Blcm1hbmVudChyZWwpKTsKKwkJZWxzZQorCQkJcmVjcHRyID0gZ2lzdEdldEZha2VMU04o cmVsKTsKKwogCQlQYWdlU2V0TFNOKHBhZ2UsIHJlY3B0cik7CiAKIAkJaWYgKG5ld2Jsa25vKQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdGJ1aWxkLmMgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvZ2lzdC9naXN0YnVpbGQuYwppbmRleCBiZjUxNjJiNDEwLi5iNTRkNTBjNDQw IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0YnVpbGQuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0YnVpbGQuYwpAQCAtNDY0LDYgKzQ2NCwxMiBAQCBn aXN0X2luZGV4c29ydGJ1aWxkKEdJU1RCdWlsZFN0YXRlICpzdGF0ZSkKIAlSZWxhdGlvbkdldFNt Z3Ioc3RhdGUtPmluZGV4cmVsKTsKIAlQYWdlU2V0TFNOKGxldmVsc3RhdGUtPnBhZ2VzWzBdLCAh RmlsZUVuY3J5cHRpb25FbmFibGVkID8gR2lzdEJ1aWxkTFNOIDoKIAkJCSAgIExTTkZvckVuY3J5 cHRpb24oUmVsYXRpb25Jc1Blcm1hbmVudChzdGF0ZS0+aW5kZXhyZWwpKSk7CisJLyogTWFrZSBz dXJlIExTTnMgYXJlIHZhaWxkLCBhbmQgaWYgZW5jcnlwdGlvbiwgYXJlIG5vdCBjb25zdGFudC4g Ki8KKwlBc3NlcnQoIVhMb2dSZWNQdHJJc0ludmFsaWQoUGFnZUdldExTTihsZXZlbHN0YXRlLT5w YWdlc1swXSkpICYmCisJCSAgICghRmlsZUVuY3J5cHRpb25FbmFibGVkIHx8CisJCQlQYWdlR2V0 TFNOKGxldmVsc3RhdGUtPnBhZ2VzWzBdKSAhPSBHaXN0QnVpbGRMU04pKTsKKwlQYWdlRW5jcnlw dElucGxhY2UobGV2ZWxzdGF0ZS0+cGFnZXNbMF0sIE1BSU5fRk9SS05VTSwgUmVsYXRpb25Jc1Bl cm1hbmVudChzdGF0ZS0+aW5kZXhyZWwpLAorCQkJCQkgICBHSVNUX1JPT1RfQkxLTk8pOwogCVBh Z2VTZXRDaGVja3N1bUlucGxhY2UobGV2ZWxzdGF0ZS0+cGFnZXNbMF0sIEdJU1RfUk9PVF9CTEtO Tyk7CiAJc21ncndyaXRlKFJlbGF0aW9uR2V0U21ncihzdGF0ZS0+aW5kZXhyZWwpLCBNQUlOX0ZP UktOVU0sIEdJU1RfUk9PVF9CTEtOTywKIAkJCSAgbGV2ZWxzdGF0ZS0+cGFnZXNbMF0sIHRydWUp OwpAQCAtNjYyLDYgKzY2OCwxMiBAQCBnaXN0X2luZGV4c29ydGJ1aWxkX2ZsdXNoX3JlYWR5X3Bh Z2VzKEdJU1RCdWlsZFN0YXRlICpzdGF0ZSkKIAogCQlQYWdlU2V0TFNOKHBhZ2UsICFGaWxlRW5j cnlwdGlvbkVuYWJsZWQgPyBHaXN0QnVpbGRMU04gOgogCQkJCSAgIExTTkZvckVuY3J5cHRpb24o UmVsYXRpb25Jc1Blcm1hbmVudChzdGF0ZS0+aW5kZXhyZWwpKSk7CisJCS8qIE1ha2Ugc3VyZSBM U05zIGFyZSB2YWlsZCwgYW5kIGlmIGVuY3J5cHRpb24sIGFyZSBub3QgY29uc3RhbnQuICovCisJ CUFzc2VydCghWExvZ1JlY1B0cklzSW52YWxpZChQYWdlR2V0TFNOKHBhZ2UpKSAmJgorCQkJICAg KCFGaWxlRW5jcnlwdGlvbkVuYWJsZWQgfHwKKwkJCQlQYWdlR2V0TFNOKHBhZ2UpICE9IEdpc3RC dWlsZExTTikpOworCQlQYWdlRW5jcnlwdElucGxhY2UocGFnZSwgTUFJTl9GT1JLTlVNLCBSZWxh dGlvbklzUGVybWFuZW50KHN0YXRlLT5pbmRleHJlbCksCisJCQkJICAgYmxrbm8pOwogCQlQYWdl U2V0Q2hlY2tzdW1JbnBsYWNlKHBhZ2UsIGJsa25vKTsKIAkJc21ncmV4dGVuZChSZWxhdGlvbkdl dFNtZ3Ioc3RhdGUtPmluZGV4cmVsKSwgTUFJTl9GT1JLTlVNLCBibGtubywgcGFnZSwKIAkJCQkg ICB0cnVlKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hwYWdlLmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNocGFnZS5jCmluZGV4IGQyZWRjZDQ2MTcuLjRi YTQxY2UyODggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hwYWdlLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHBhZ2UuYwpAQCAtMTAyNSw2ICsxMDI1 LDcgQEAgX2hhc2hfYWxsb2NfYnVja2V0cyhSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGZpcnN0 YmxvY2ssIHVpbnQzMiBuYmxvY2tzKQogCQkJCQl6ZXJvYnVmLmRhdGEsCiAJCQkJCXRydWUpOwog CisJUGFnZUVuY3J5cHRJbnBsYWNlKHBhZ2UsIE1BSU5fRk9SS05VTSwgUmVsYXRpb25Jc1Blcm1h bmVudChyZWwpLCBsYXN0YmxvY2spOwogCVBhZ2VTZXRDaGVja3N1bUlucGxhY2UocGFnZSwgbGFz dGJsb2NrKTsKIAlzbWdyZXh0ZW5kKFJlbGF0aW9uR2V0U21ncihyZWwpLCBNQUlOX0ZPUktOVU0s IGxhc3RibG9jaywgemVyb2J1Zi5kYXRhLAogCQkJICAgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvcmV3cml0ZWhlYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3Jld3JpdGVoZWFwLmMKaW5kZXggYjAxYjM5YjAwOC4uZjQ5MzY4OTNmOSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcmV3cml0ZWhlYXAuYworKysgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9yZXdyaXRlaGVhcC5jCkBAIC0zMjUsNiArMzI1LDkgQEAgZW5kX2hlYXBf cmV3cml0ZShSZXdyaXRlU3RhdGUgc3RhdGUpCiAJCQkJCQlzdGF0ZS0+cnNfYnVmZmVyLAogCQkJ CQkJdHJ1ZSk7CiAKKwkJUGFnZUVuY3J5cHRJbnBsYWNlKHN0YXRlLT5yc19idWZmZXIsIE1BSU5f Rk9SS05VTSwKKwkJCQkJCSAgIFJlbGF0aW9uSXNQZXJtYW5lbnQoc3RhdGUtPnJzX25ld19yZWwp LAorCQkJCQkJICAgc3RhdGUtPnJzX2Jsb2Nrbm8pOwogCQlQYWdlU2V0Q2hlY2tzdW1JbnBsYWNl KHN0YXRlLT5yc19idWZmZXIsIHN0YXRlLT5yc19ibG9ja25vKTsKIAogCQlzbWdyZXh0ZW5kKFJl bGF0aW9uR2V0U21ncihzdGF0ZS0+cnNfbmV3X3JlbCksIE1BSU5fRk9SS05VTSwKQEAgLTY5MSw4 ICs2OTQsMTIgQEAgcmF3X2hlYXBfaW5zZXJ0KFJld3JpdGVTdGF0ZSBzdGF0ZSwgSGVhcFR1cGxl IHR1cCkKIAkJCSAqIG5lZWQgZm9yIHNtZ3IgdG8gc2NoZWR1bGUgYW4gZnN5bmMgZm9yIHRoaXMg d3JpdGU7IHdlJ2xsIGRvIGl0CiAJCQkgKiBvdXJzZWx2ZXMgaW4gZW5kX2hlYXBfcmV3cml0ZS4K IAkJCSAqLworCQkJUGFnZUVuY3J5cHRJbnBsYWNlKHBhZ2UsIE1BSU5fRk9SS05VTSwKKwkJCQkJ CQkgICBSZWxhdGlvbklzUGVybWFuZW50KHN0YXRlLT5yc19uZXdfcmVsKSwKKwkJCQkJCQkgICBz dGF0ZS0+cnNfYmxvY2tubyk7CiAJCQlQYWdlU2V0Q2hlY2tzdW1JbnBsYWNlKHBhZ2UsIHN0YXRl LT5yc19ibG9ja25vKTsKIAorCQkJLyogWFhYIC0gaXMgdGhpcyBzdGlsbCBuZWVkZWQ/ICovCiAJ CQlzbWdyZXh0ZW5kKFJlbGF0aW9uR2V0U21ncihzdGF0ZS0+cnNfbmV3X3JlbCksIE1BSU5fRk9S S05VTSwKIAkJCQkJICAgc3RhdGUtPnJzX2Jsb2Nrbm8sIChjaGFyICopIHBhZ2UsIHRydWUpOwog CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHJlZS5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL25idHJlZS9uYnRyZWUuYwppbmRleCBiNTJlY2E4ZjM4Li5lNjA1ODJlN2Uz IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHJlZS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0cmVlLmMKQEAgLTE2Myw3ICsxNjMsMTAgQEAgYnRi dWlsZGVtcHR5KFJlbGF0aW9uIGluZGV4KQogCSAqIFhMT0dfREJBU0VfQ1JFQVRFKiBvciBYTE9H X1RCTFNQQ19DUkVBVEUgcmVjb3JkLiAgVGhlcmVmb3JlLCB3ZSBuZWVkCiAJICogdGhpcyBldmVu IHdoZW4gd2FsX2xldmVsPW1pbmltYWwuCiAJICovCisJUGFnZUVuY3J5cHRJbnBsYWNlKG1ldGFw YWdlLCBJTklUX0ZPUktOVU0sIFJlbGF0aW9uSXNQZXJtYW5lbnQoaW5kZXgpLAorCQkJCQkgICBC VFJFRV9NRVRBUEFHRSk7CiAJUGFnZVNldENoZWNrc3VtSW5wbGFjZShtZXRhcGFnZSwgQlRSRUVf TUVUQVBBR0UpOworCiAJc21ncndyaXRlKFJlbGF0aW9uR2V0U21ncihpbmRleCksIElOSVRfRk9S S05VTSwgQlRSRUVfTUVUQVBBR0UsCiAJCQkgIChjaGFyICopIG1ldGFwYWdlLCB0cnVlKTsKIAls b2dfbmV3cGFnZSgmUmVsYXRpb25HZXRTbWdyKGluZGV4KS0+c21ncl9ybG9jYXRvci5sb2NhdG9y LCBJTklUX0ZPUktOVU0sCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25i dHNvcnQuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5jCmluZGV4IGJkMTY4 NWM0NDEuLjAxODgyMDJiZmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUv bmJ0c29ydC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5jCkBAIC02 NjEsMTMgKzY2MSwxNSBAQCBfYnRfYmx3cml0ZXBhZ2UoQlRXcml0ZVN0YXRlICp3c3RhdGUsIFBh Z2UgcGFnZSwgQmxvY2tOdW1iZXIgYmxrbm8pCiAJewogCQlpZiAoIXdzdGF0ZS0+YnR3c196ZXJv cGFnZSkKIAkJCXdzdGF0ZS0+YnR3c196ZXJvcGFnZSA9IChQYWdlKSBwYWxsb2MwKEJMQ0tTWik7 Ci0JCS8qIGRvbid0IHNldCBjaGVja3N1bSBmb3IgYWxsLXplcm8gcGFnZSAqLworCQkvKiBkb24n dCBzZXQgY2hlY2tzdW0gb3IgZW5jcnlwdGlvbiBmb3IgYWxsLXplcm8gcGFnZSAqLwogCQlzbWdy ZXh0ZW5kKFJlbGF0aW9uR2V0U21ncih3c3RhdGUtPmluZGV4KSwgTUFJTl9GT1JLTlVNLAogCQkJ CSAgIHdzdGF0ZS0+YnR3c19wYWdlc193cml0dGVuKyssCiAJCQkJICAgKGNoYXIgKikgd3N0YXRl LT5idHdzX3plcm9wYWdlLAogCQkJCSAgIHRydWUpOwogCX0KIAorCVBhZ2VFbmNyeXB0SW5wbGFj ZShwYWdlLCBNQUlOX0ZPUktOVU0sIFJlbGF0aW9uSXNQZXJtYW5lbnQod3N0YXRlLT5pbmRleCks CisJCQkJCSAgIGJsa25vKTsKIAlQYWdlU2V0Q2hlY2tzdW1JbnBsYWNlKHBhZ2UsIGJsa25vKTsK IAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ2luc2VydC5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGdpbnNlcnQuYwppbmRleCBjNjgyMWI1OTUy Li5iMzZiYzQxODU0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ2lu c2VydC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BnaW5zZXJ0LmMKQEAgLTE2 OCw2ICsxNjgsOCBAQCBzcGdidWlsZGVtcHR5KFJlbGF0aW9uIGluZGV4KQogCSAqIG9mIHRoZWly IGV4aXN0aW5nIGNvbnRlbnQgd2hlbiB0aGUgY29ycmVzcG9uZGluZyBjcmVhdGUgcmVjb3JkcyBh cmUKIAkgKiByZXBsYXllZC4KIAkgKi8KKwlQYWdlRW5jcnlwdElucGxhY2UocGFnZSwgSU5JVF9G T1JLTlVNLCBSZWxhdGlvbklzUGVybWFuZW50KGluZGV4KSwKKwkJCQkJICAgU1BHSVNUX01FVEFQ QUdFX0JMS05PKTsKIAlQYWdlU2V0Q2hlY2tzdW1JbnBsYWNlKHBhZ2UsIFNQR0lTVF9NRVRBUEFH RV9CTEtOTyk7CiAJc21ncndyaXRlKFJlbGF0aW9uR2V0U21ncihpbmRleCksIElOSVRfRk9SS05V TSwgU1BHSVNUX01FVEFQQUdFX0JMS05PLAogCQkJICAoY2hhciAqKSBwYWdlLCB0cnVlKTsKQEAg LTE3Nyw2ICsxNzksOCBAQCBzcGdidWlsZGVtcHR5KFJlbGF0aW9uIGluZGV4KQogCS8qIExpa2V3 aXNlIGZvciB0aGUgcm9vdCBwYWdlLiAqLwogCVNwR2lzdEluaXRQYWdlKHBhZ2UsIFNQR0lTVF9M RUFGKTsKIAorCVBhZ2VFbmNyeXB0SW5wbGFjZShwYWdlLCBJTklUX0ZPUktOVU0sIFJlbGF0aW9u SXNQZXJtYW5lbnQoaW5kZXgpLAorCQkJCQkgICBTUEdJU1RfUk9PVF9CTEtOTyk7CiAJUGFnZVNl dENoZWNrc3VtSW5wbGFjZShwYWdlLCBTUEdJU1RfUk9PVF9CTEtOTyk7CiAJc21ncndyaXRlKFJl bGF0aW9uR2V0U21ncihpbmRleCksIElOSVRfRk9SS05VTSwgU1BHSVNUX1JPT1RfQkxLTk8sCiAJ CQkgIChjaGFyICopIHBhZ2UsIHRydWUpOwpAQCAtMTg2LDYgKzE5MCw4IEBAIHNwZ2J1aWxkZW1w dHkoUmVsYXRpb24gaW5kZXgpCiAJLyogTGlrZXdpc2UgZm9yIHRoZSBudWxsLXR1cGxlcyByb290 IHBhZ2UuICovCiAJU3BHaXN0SW5pdFBhZ2UocGFnZSwgU1BHSVNUX0xFQUYgfCBTUEdJU1RfTlVM TFMpOwogCisJUGFnZUVuY3J5cHRJbnBsYWNlKHBhZ2UsIElOSVRfRk9SS05VTSwgUmVsYXRpb25J c1Blcm1hbmVudChpbmRleCksCisJCQkJCSAgIFNQR0lTVF9OVUxMX0JMS05PKTsKIAlQYWdlU2V0 Q2hlY2tzdW1JbnBsYWNlKHBhZ2UsIFNQR0lTVF9OVUxMX0JMS05PKTsKIAlzbWdyd3JpdGUoUmVs YXRpb25HZXRTbWdyKGluZGV4KSwgSU5JVF9GT1JLTlVNLCBTUEdJU1RfTlVMTF9CTEtOTywKIAkJ CSAgKGNoYXIgKikgcGFnZSwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS94bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKaW5kZXgg NDM0Mjk2NDdiNS4uOTM0N2U2MzIwNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3Ry YW5zYW0veGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwpAQCAt NzEsNiArNzEsNyBAQAogI2luY2x1ZGUgImNvbW1vbi9maWxlX3V0aWxzLmgiCiAjaW5jbHVkZSAi Y3J5cHRvL2ttZ3IuaCIKICNpbmNsdWRlICJleGVjdXRvci9pbnN0cnVtZW50LmgiCisjaW5jbHVk ZSAiY3J5cHRvL2J1ZmVuYy5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInBn X3RyYWNlLmgiCiAjaW5jbHVkZSAicGdzdGF0LmgiCkBAIC00ODMyLDYgKzQ4MzMsNyBAQCBCb290 U3RyYXBYTE9HKHZvaWQpCiAJV3JpdGVDb250cm9sRmlsZSgpOwogCiAJQm9vdFN0cmFwS21ncigp OworCUluaXRpYWxpemVCdWZmZXJFbmNyeXB0aW9uKCk7CiAKIAlpZiAodGVybWluYWxfZmQgIT0g LTEpCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYm9vdHN0cmFwL2Jvb3RzdHJhcC5jIGIv c3JjL2JhY2tlbmQvYm9vdHN0cmFwL2Jvb3RzdHJhcC5jCmluZGV4IDlmYzA5YjM0ZGUuLjdiZGQz N2I5NmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Jvb3RzdHJhcC9ib290c3RyYXAuYworKysg Yi9zcmMvYmFja2VuZC9ib290c3RyYXAvYm9vdHN0cmFwLmMKQEAgLTI5LDYgKzI5LDcgQEAKICNp bmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlw ZS5oIgogI2luY2x1ZGUgImNvbW1vbi9saW5rLWNhbmFyeS5oIgorI2luY2x1ZGUgImNyeXB0by9i dWZlbmMuaCIKICNpbmNsdWRlICJsaWJwcS9wcXNpZ25hbC5oIgogI2luY2x1ZGUgIm1pc2NhZG1p bi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9zdG9yYWdlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N0b3JhZ2UuYwppbmRl eCBkNzA4YWYxOWVkLi45MjUxOTVkNWEzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9n L3N0b3JhZ2UuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N0b3JhZ2UuYwpAQCAtNDg2LDgg KzQ4Niw5IEBAIFJlbGF0aW9uQ29weVN0b3JhZ2UoU01nclJlbGF0aW9uIHNyYywgU01nclJlbGF0 aW9uIGRzdCwKIAogCQlzbWdycmVhZChzcmMsIGZvcmtOdW0sIGJsa25vLCBidWYuZGF0YSk7CiAK LQkJaWYgKCFQYWdlSXNWZXJpZmllZEV4dGVuZGVkKHBhZ2UsIGJsa25vLAotCQkJCQkJCQkJUElW X0xPR19XQVJOSU5HIHwgUElWX1JFUE9SVF9TVEFUKSkKKwkJaWYgKCFQYWdlSXNWZXJpZmllZEV4 dGVuZGVkKHBhZ2UsIGZvcmtOdW0sCisJCQkJCQkJCQlyZWxwZXJzaXN0ZW5jZSA9PSBSRUxQRVJT SVNURU5DRV9QRVJNQU5FTlQsCisJCQkJCQkJCQlibGtubywgUElWX0xPR19XQVJOSU5HIHwgUElW X1JFUE9SVF9TVEFUKSkKIAkJewogCQkJLyoKIAkJCSAqIEZvciBwYXJhbm9pYSdzIHNha2UsIGNh cHR1cmUgdGhlIGZpbGUgcGF0aCBiZWZvcmUgaW52b2tpbmcgdGhlCkBAIC01MTQsNiArNTE1LDgg QEAgUmVsYXRpb25Db3B5U3RvcmFnZShTTWdyUmVsYXRpb24gc3JjLCBTTWdyUmVsYXRpb24gZHN0 LAogCQlpZiAodXNlX3dhbCkKIAkJCWxvZ19uZXdwYWdlKCZkc3QtPnNtZ3JfcmxvY2F0b3IubG9j YXRvciwgZm9ya051bSwgYmxrbm8sIHBhZ2UsIGZhbHNlKTsKIAorCQlQYWdlRW5jcnlwdElucGxh Y2UocGFnZSwgZm9ya051bSwKKwkJCQkJCSAgIHJlbHBlcnNpc3RlbmNlID09IFJFTFBFUlNJU1RF TkNFX1BFUk1BTkVOVCwgYmxrbm8pOwogCQlQYWdlU2V0Q2hlY2tzdW1JbnBsYWNlKHBhZ2UsIGJs a25vKTsKIAogCQkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY3J5cHRvL01ha2VmaWxlIGIv c3JjL2JhY2tlbmQvY3J5cHRvL01ha2VmaWxlCmluZGV4IGMyNzM2MjAyOWQuLjg5ODVhNjY4NzUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NyeXB0by9NYWtlZmlsZQorKysgYi9zcmMvYmFja2Vu ZC9jcnlwdG8vTWFrZWZpbGUKQEAgLTEzLDYgKzEzLDcgQEAgdG9wX2J1aWxkZGlyID0gLi4vLi4v Li4KIGluY2x1ZGUgJCh0b3BfYnVpbGRkaXIpL3NyYy9NYWtlZmlsZS5nbG9iYWwKIAogT0JKUyA9 IFwKKwlidWZlbmMubyBcCiAJa21nci5vCiAKIGluY2x1ZGUgJCh0b3Bfc3JjZGlyKS9zcmMvYmFj a2VuZC9jb21tb24ubWsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NyeXB0by9idWZlbmMuYyBi L3NyYy9iYWNrZW5kL2NyeXB0by9idWZlbmMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwLi4wMjEzZmIyM2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvY3J5 cHRvL2J1ZmVuYy5jCkBAIC0wLDAgKzEsMTc2IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisg KiBidWZlbmMuYworICoKKyAqIENvcHlyaWdodCAoYykgMjAyMCwgUG9zdGdyZVNRTCBHbG9iYWwg RGV2ZWxvcG1lbnQgR3JvdXAKKyAqCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2Jh Y2tlbmQvY3J5cHRvL2J1ZmVuYy5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2lu Y2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJs aWIvc3RyaW5naW5mby5oIgorCisjaW5jbHVkZSAiYWNjZXNzL2dpc3QuaCIKKyNpbmNsdWRlICJh Y2Nlc3MveGxvZy5oIgorI2luY2x1ZGUgImNyeXB0by9idWZlbmMuaCIKKyNpbmNsdWRlICJzdG9y YWdlL2J1ZnBhZ2UuaCIKKyNpbmNsdWRlICJzdG9yYWdlL2ZkLmgiCisKK2V4dGVybiBYTG9nUmVj UHRyIExTTkZvckVuY3J5cHRpb24oYm9vbCB1c2Vfd2FsX2xzbik7CisKKy8qCisgKiBXZSB1c2Ug dGhlIHBhZ2UgTFNOLCBwYWdlIG51bWJlciwgYW5kIHBlcm1hbmVudC1iaXQgdG8gaW5kaWNhdGUg aWYgYSBmYWtlCisgKiBMU04gd2FzIHVzZWQgdG8gY3JlYXRlIGEgbm9uY2UgZm9yIGVhY2ggcGFn ZS4KKyAqLworI2RlZmluZSBCVUZFTkNfSVZfU0laRQkJMTYKKworc3RhdGljIHVuc2lnbmVkIGNo YXIgYnVmX2VuY3J5cHRpb25faXZbQlVGRU5DX0lWX1NJWkVdOworCitQZ0NpcGhlckN0eCAqQnVm RW5jQ3R4ID0gTlVMTDsKK1BnQ2lwaGVyQ3R4ICpCdWZEZWNDdHggPSBOVUxMOworCitzdGF0aWMg dm9pZCBzZXRfYnVmZmVyX2VuY3J5cHRpb25faXYoUGFnZSBwYWdlLCBCbG9ja051bWJlciBibGtu bywKKwkJCQkJCQkJCSBib29sIHJlbGF0aW9uX2lzX3Blcm1hbmVudCk7CisKK3ZvaWQKK0luaXRp YWxpemVCdWZmZXJFbmNyeXB0aW9uKHZvaWQpCit7CisJY29uc3QgQ3J5cHRvS2V5ICprZXk7CisK KwlpZiAoIUZpbGVFbmNyeXB0aW9uRW5hYmxlZCkKKwkJcmV0dXJuOworCisJa2V5ID0gS21nckdl dEtleShLTUdSX0tFWV9JRF9SRUwpOworCisJQnVmRW5jQ3R4ID0gcGdfY2lwaGVyX2N0eF9jcmVh dGUoUEdfQ0lQSEVSX0FFU19DVFIsCisJCQkJCQkJCQkgKHVuc2lnbmVkIGNoYXIgKikga2V5LT5r ZXksCisJCQkJCQkJCQkgKGtleS0+a2xlbiksIHRydWUpOworCWlmICghQnVmRW5jQ3R4KQorCQll bG9nKEVSUk9SLCAiY2Fubm90IGludGlhbGl6ZSBlbmNyeXB0aW9uIGNvbnRleHQiKTsKKworCUJ1 ZkRlY0N0eCA9IHBnX2NpcGhlcl9jdHhfY3JlYXRlKFBHX0NJUEhFUl9BRVNfQ1RSLAorCQkJCQkJ CQkJICh1bnNpZ25lZCBjaGFyICopIGtleS0+a2V5LAorCQkJCQkJCQkJIChrZXktPmtsZW4pLCBm YWxzZSk7CisJaWYgKCFCdWZEZWNDdHgpCisJCWVsb2coRVJST1IsICJjYW5ub3QgaW50aWFsaXpl IGRlY3J5cHRpb24gY29udGV4dCIpOworfQorCisvKiBFbmNyeXB0IHRoZSBnaXZlbiBwYWdlIHdp dGggdGhlIHJlbGF0aW9uIGtleSAqLwordm9pZAorRW5jcnlwdFBhZ2UoUGFnZSBwYWdlLCBib29s IHJlbGF0aW9uX2lzX3Blcm1hbmVudCwgQmxvY2tOdW1iZXIgYmxrbm8pCit7CisJdW5zaWduZWQg Y2hhciAqcHRyID0gKHVuc2lnbmVkIGNoYXIgKikgcGFnZSArIFBhZ2VFbmNyeXB0T2Zmc2V0Owor CWJvb2wJCWlzX2dpc3RfcGFnZV9vcl9zaW1pbGFyOworCisJaW50CQkJZW5jbGVuOworCisJQXNz ZXJ0KEJ1ZkVuY0N0eCAhPSBOVUxMKTsKKworCS8qCisJICogUGVybWFuZW50IHBhZ2VzIGhhdmUg dmFsaWQgTFNOcywgYW5kIG5vbi1wZXJtYW5lbnQgcGFnZXMgdXN1YWxseSBoYXZlCisJICogaW52 YWxpZCAobm90IHNldCkgTFNOcy4gIChPbmUgZXhjZXB0aW9uIGFyZSBHaVNUIGZha2UgTFNOcywg c2VlIGJlbG93LikKKwkgKiBIb3dldmVyLCB3ZSBuZWVkIHZhbGlkIG9uZXMgb24gYWxsIHBhZ2Vz IGZvciBlbmNyeXB0aW9uLiAgVGhlcmUgYXJlIHRvbworCSAqIG1hbnkgcGxhY2VzIHRoYXQgc2V0 IHRoZSBwYWdlIExTTiBmb3IgcGVybWFuZW50IHBhZ2VzIHRvIGRvIHRoZSBzYW1lCisJICogZm9y IG5vbi1wZXJtYW5lbnQgcGFnZXMsIHNvIHdlIGp1c3Qgc2V0IGl0IGhlcmUuCisJICoKKwkgKiBB bHNvLCB3aGlsZSBwZXJtYW5lbnQgcmVsYXRpb25zIGdldCBuZXcgTFNOcyBldmVyeSB0aW1lIHRo ZSBwYWdlIGlzCisJICogbW9kaWZpZWQsIGZvciBub24tcGVybWFuZW50IHJlbGF0aW9ucyBkbyBu b3QsIHNvIHdlIGp1c3QgdXBkYXRlIHRoZSBMU04KKwkgKiBoZXJlIGJlZm9yZSBpdCBpcyBlbmNy eXB0ZWQuCisJICoKKwkgKiBHaVNUIGluZGV4ZXMgdXNlcyBMU05zLCB3aGljaCBhcmUgYWxzbyBz dG9yZWQgaW4gTlNOIGZpZWxkcywgdG8gZGV0ZWN0CisJICogcGFnZSBzcGxpdHMuICBUaGVyZWZv cmUsIHdlIGFsbG93IHRoZSBHaVNUIGNvZGUgdG8gYXNzaWduIExTTnMgYW5kIHdlCisJICogZG9u J3QgY2hhbmdlIHRoZW0gaGVyZS4KKwkgKi8KKworCS8qIFBlcm1hbmVudCByZWxhdGlvbnMgc2hv dWxkIGFscmVhZHkgaGF2ZSB2YWxpZCBMU05zLiAqLworCUFzc2VydCghWExvZ1JlY1B0cklzSW52 YWxpZChQYWdlR2V0TFNOKHBhZ2UpKSB8fCAhcmVsYXRpb25faXNfcGVybWFuZW50KTsKKworCS8q CisJICogQ2hlY2sgaWYgdGhlIHBhZ2UgaGFzIGEgc3BlY2lhbCBzaXplID09IEdJU1RQYWdlT3Bh cXVlRGF0YSwgYSB2YWxpZAorCSAqIEdJU1RfUEFHRV9JRCwgbm8gaW52YWxpZCBHaVNUIGZsYWcg Yml0cyBhcmUgc2V0LCBhbmQgYSB2YWxpZCBMU04uICBUaGlzCisJICogaXMgdHJ1ZSBmb3IgYWxs IEdpU1QgcGFnZXMsIGFuZCBwZXJoYXBzIGEgZmV3IHBhZ2VzIHRoYXQgYXJlIG5vdC4gIFRoZQor CSAqIG9ubHkgZG93bnNpZGUgb2YgZ3Vlc3Npbmcgd3JvbmcgaXMgdGhhdCB3ZSBtaWdodCBub3Qg dXBkYXRlIHRoZSBMU04gZm9yCisJICogc29tZSBub24tcGVybWFuZW50IHJlbGF0aW9uIHBhZ2Ug Y2hhbmdlcywgYW5kIHRoZXJlZm9yZSByZXVzZSB0aGUgSVYsCisJICogd2hpY2ggc2VlbXMgYWNj ZXB0YWJsZS4KKwkgKi8KKwlpc19naXN0X3BhZ2Vfb3Jfc2ltaWxhciA9CisJCShQYWdlR2V0U3Bl Y2lhbFNpemUocGFnZSkgPT0gTUFYQUxJR04oc2l6ZW9mKEdJU1RQYWdlT3BhcXVlRGF0YSkpICYm CisJCSBHaXN0UGFnZUdldE9wYXF1ZShwYWdlKS0+Z2lzdF9wYWdlX2lkID09IEdJU1RfUEFHRV9J RCAmJgorCQkgKEdpc3RQYWdlR2V0T3BhcXVlKHBhZ2UpLT5mbGFncyAmIH5HSVNUX0ZMQUdfQklU TUFTSykgPT0gMCAmJgorCQkgIVhMb2dSZWNQdHJJc0ludmFsaWQoUGFnZUdldExTTihwYWdlKSkp OworCisJaWYgKCFyZWxhdGlvbl9pc19wZXJtYW5lbnQgJiYgIWlzX2dpc3RfcGFnZV9vcl9zaW1p bGFyKQorCQlQYWdlU2V0TFNOKHBhZ2UsIExTTkZvckVuY3J5cHRpb24ocmVsYXRpb25faXNfcGVy bWFuZW50KSk7CisKKwlzZXRfYnVmZmVyX2VuY3J5cHRpb25faXYocGFnZSwgYmxrbm8sIHJlbGF0 aW9uX2lzX3Blcm1hbmVudCk7CisJaWYgKHVubGlrZWx5KCFwZ19jaXBoZXJfZW5jcnlwdChCdWZF bmNDdHgsIFBHX0NJUEhFUl9BRVNfQ1RSLAorCQkJCQkJCQkJKGNvbnN0IHVuc2lnbmVkIGNoYXIg KikgcHRyLAkvKiBpbnB1dCAgKi8KKwkJCQkJCQkJCVNpemVPZlBhZ2VFbmNyeXB0aW9uLAorCQkJ CQkJCQkJcHRyLAkvKiBsZW5ndGggKi8KKwkJCQkJCQkJCSZlbmNsZW4sCS8qIHJlc3VsdGluZyBs ZW5ndGggKi8KKwkJCQkJCQkJCWJ1Zl9lbmNyeXB0aW9uX2l2LAkvKiBpdiAqLworCQkJCQkJCQkJ QlVGRU5DX0lWX1NJWkUsCisJCQkJCQkJCQlOVUxMLCAwKSkpCisJCWVsb2coRVJST1IsICJjYW5u b3QgZW5jcnlwdCBwYWdlICV1IiwgYmxrbm8pOworCisJQXNzZXJ0KGVuY2xlbiA9PSBTaXplT2ZQ YWdlRW5jcnlwdGlvbik7Cit9CisKKy8qIERlY3J5cHQgdGhlIGdpdmVuIHBhZ2Ugd2l0aCB0aGUg cmVsYXRpb24ga2V5ICovCit2b2lkCitEZWNyeXB0UGFnZShQYWdlIHBhZ2UsIGJvb2wgcmVsYXRp b25faXNfcGVybWFuZW50LCBCbG9ja051bWJlciBibGtubykKK3sKKwl1bnNpZ25lZCBjaGFyICpw dHIgPSAodW5zaWduZWQgY2hhciAqKSBwYWdlICsgUGFnZUVuY3J5cHRPZmZzZXQ7CisJaW50CQkJ ZW5jbGVuOworCisJQXNzZXJ0KEJ1ZkRlY0N0eCAhPSBOVUxMKTsKKworCXNldF9idWZmZXJfZW5j cnlwdGlvbl9pdihwYWdlLCBibGtubywgcmVsYXRpb25faXNfcGVybWFuZW50KTsKKwlpZiAodW5s aWtlbHkoIXBnX2NpcGhlcl9kZWNyeXB0KEJ1ZkRlY0N0eCwgUEdfQ0lQSEVSX0FFU19DVFIsCisJ CQkJCQkJCQkoY29uc3QgdW5zaWduZWQgY2hhciAqKSBwdHIsCS8qIGlucHV0ICAqLworCQkJCQkJ CQkJU2l6ZU9mUGFnZUVuY3J5cHRpb24sCisJCQkJCQkJCQlwdHIsCS8qIG91dHB1dCAqLworCQkJ CQkJCQkJJmVuY2xlbiwJLyogcmVzdWx0aW5nIGxlbmd0aCAqLworCQkJCQkJCQkJYnVmX2VuY3J5 cHRpb25faXYsCS8qIGl2ICovCisJCQkJCQkJCQlCVUZFTkNfSVZfU0laRSwKKwkJCQkJCQkJCU5V TEwsIDApKSkKKwkJZWxvZyhFUlJPUiwgImNhbm5vdCBkZWNyeXB0IHBhZ2UgJXUiLCBibGtubyk7 CisKKwlBc3NlcnQoZW5jbGVuID09IFNpemVPZlBhZ2VFbmNyeXB0aW9uKTsKK30KKworLyogQ29u c3RydWN0IGl2IGZvciB0aGUgZ2l2ZW4gcGFnZSAqLworc3RhdGljIHZvaWQKK3NldF9idWZmZXJf ZW5jcnlwdGlvbl9pdihQYWdlIHBhZ2UsIEJsb2NrTnVtYmVyIGJsa25vLAorCQkJCQkJIGJvb2wg cmVsYXRpb25faXNfcGVybWFuZW50KQoreworCXVuc2lnbmVkIGNoYXIgKnAgPSBidWZfZW5jcnlw dGlvbl9pdjsKKworCU1lbVNldChidWZfZW5jcnlwdGlvbl9pdiwgMCwgQlVGRU5DX0lWX1NJWkUp OworCisJLyogcGFnZSBsc24gKDggYnl0ZSkgKi8KKwltZW1jcHkocCwgJigoUGFnZUhlYWRlcikg cGFnZSktPnBkX2xzbiwgc2l6ZW9mKFBhZ2VYTG9nUmVjUHRyKSk7CisJcCArPSBzaXplb2YoUGFn ZVhMb2dSZWNQdHIpOworCisJLyogYmxvY2sgbnVtYmVyICg0IGJ5dGUpICovCisJbWVtY3B5KHAs ICZibGtubywgc2l6ZW9mKEJsb2NrTnVtYmVyKSk7CisJcCArPSBzaXplb2YoQmxvY2tOdW1iZXIp OworCisJLyoKKwkgKiBNYXJrIHVzZSBvZiBmYWtlIExTTnMgaW4gSVYgc28gaWYgdGhlIHJlYWwg YW5kIGZha2UgTFNOIGNvdW50ZXJzCisJICogb3ZlcmxhcCwgdGhlIElWIHdpbGwgcmVtYWluIHVu aXF1ZS4gIFhYWCBJcyB0aGVyZSBhIGJldHRlciB2YWx1ZT8KKwkgKi8KKwlpZiAoIXJlbGF0aW9u X2lzX3Blcm1hbmVudCkKKwkJKnArKyA9IDB4ODA7CisKKwkvKgorCSAqIFRoZSBtYXhpbXVtIHJl cXVpcmVkIGNvdW50ZXIgZm9yIEFFUy1DVFIgaXMgMjA0OCwgd2hpY2ggZml0cyBpbiB0aGUKKwkg KiBsYXN0IHRocmVlIGJ5dGVzLgorCSAqLworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9z dG1hc3Rlci9wb3N0bWFzdGVyLmMgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIu YwppbmRleCBhZWM5YjA5NGJkLi40OTEyNThhN2VlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9w b3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYworKysgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3Rt YXN0ZXIuYwpAQCAtOTgsNiArOTgsNyBAQAogI2luY2x1ZGUgImNvbW1vbi9pcC5oIgogI2luY2x1 ZGUgImNvbW1vbi9wZ19wcm5nLmgiCiAjaW5jbHVkZSAiY29tbW9uL3N0cmluZy5oIgorI2luY2x1 ZGUgImNyeXB0by9idWZlbmMuaCIKICNpbmNsdWRlICJjcnlwdG8va21nci5oIgogI2luY2x1ZGUg ImxpYi9pbGlzdC5oIgogI2luY2x1ZGUgImxpYnBxL2F1dGguaCIKQEAgLTEzNTQsNiArMTM1NSw3 IEBAIFBvc3RtYXN0ZXJNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJfQogCiAJSW5pdGlh bGl6ZUttZ3IoKTsKKwlJbml0aWFsaXplQnVmZmVyRW5jcnlwdGlvbigpOwogCiAJaWYgKHRlcm1p bmFsX2ZkICE9IC0xKQogCQljbG9zZSh0ZXJtaW5hbF9mZCk7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9zdG9yYWdlL2J1ZmZlci9idWZtZ3IuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVy L2J1Zm1nci5jCmluZGV4IDVlYzNlNDA1YWIuLjM2ZTc0YjI4MTMgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2Uv YnVmZmVyL2J1Zm1nci5jCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9jYXRh bG9nLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9zdG9yYWdlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9z dG9yYWdlX3hsb2cuaCIKKyNpbmNsdWRlICJjcnlwdG8vYnVmZW5jLmgiCiAjaW5jbHVkZSAiZXhl Y3V0b3IvaW5zdHJ1bWVudC5oIgogI2luY2x1ZGUgImxpYi9iaW5hcnloZWFwLmgiCiAjaW5jbHVk ZSAibWlzY2FkbWluLmgiCkBAIC0xMDI5LDcgKzEwMzAsOSBAQCBSZWFkQnVmZmVyX2NvbW1vbihT TWdyUmVsYXRpb24gc21nciwgY2hhciByZWxwZXJzaXN0ZW5jZSwgRm9ya051bWJlciBmb3JrTnVt LAogCQkJfQogCiAJCQkvKiBjaGVjayBmb3IgZ2FyYmFnZSBkYXRhICovCi0JCQlpZiAoIVBhZ2VJ c1ZlcmlmaWVkRXh0ZW5kZWQoKFBhZ2UpIGJ1ZkJsb2NrLCBibG9ja051bSwKKwkJCWlmICghUGFn ZUlzVmVyaWZpZWRFeHRlbmRlZCgoUGFnZSkgYnVmQmxvY2ssIGZvcmtOdW0sCisJCQkJCQkJCQkJ cmVscGVyc2lzdGVuY2UgPT0gUkVMUEVSU0lTVEVOQ0VfUEVSTUFORU5ULAorCQkJCQkJCQkJCWJs b2NrTnVtLAogCQkJCQkJCQkJCVBJVl9MT0dfV0FSTklORyB8IFBJVl9SRVBPUlRfU1RBVCkpCiAJ CQl7CiAJCQkJaWYgKG1vZGUgPT0gUkJNX1pFUk9fT05fRVJST1IgfHwgemVyb19kYW1hZ2VkX3Bh Z2VzKQpAQCAtMjg5MywxMiArMjg5NiwyNCBAQCBGbHVzaEJ1ZmZlcihCdWZmZXJEZXNjICpidWYs IFNNZ3JSZWxhdGlvbiByZWxuKQogCSAqLwogCWJ1ZkJsb2NrID0gQnVmSGRyR2V0QmxvY2soYnVm KTsKIAorCWlmIChGaWxlRW5jcnlwdGlvbkVuYWJsZWQpCisJeworCQkvKgorCQkgKiBUZWNobmlj YWxseSBCTV9QRVJNQU5FTlQgY291bGQgaW5kaWNhdGUgYW4gaW5pdCBmb3JrLCBidXQgdGhhdCdz CisJCSAqIG9rYXkgc2luY2UgZm9ya051bSB3b3VsZCBhbHNvIHRlbGwgdXMgbm90IHRvIGVuY3J5 cHQgaW5pdCBmb3Jrcy4KKwkJICovCisJCWJ1ZlRvV3JpdGUgPSBQYWdlRW5jcnlwdENvcHkoKFBh Z2UpIGJ1ZkJsb2NrLCBidWYtPnRhZy5mb3JrTnVtLAorCQkJCQkJCQkJIGJ1Zl9zdGF0ZSAmIEJN X1BFUk1BTkVOVCwgYnVmLT50YWcuYmxvY2tOdW0pOworCQlidWZUb1dyaXRlID0gUGFnZVNldENo ZWNrc3VtQ29weSgoUGFnZSkgYnVmVG9Xcml0ZSwgYnVmLT50YWcuYmxvY2tOdW0pOworCX0KKwll bHNlCisJCWJ1ZlRvV3JpdGUgPSBQYWdlU2V0Q2hlY2tzdW1Db3B5KChQYWdlKSBidWZCbG9jaywg YnVmLT50YWcuYmxvY2tOdW0pOworCiAJLyoKIAkgKiBVcGRhdGUgcGFnZSBjaGVja3N1bSBpZiBk ZXNpcmVkLiAgU2luY2Ugd2UgaGF2ZSBvbmx5IHNoYXJlZCBsb2NrIG9uIHRoZQogCSAqIGJ1ZmZl ciwgb3RoZXIgcHJvY2Vzc2VzIG1pZ2h0IGJlIHVwZGF0aW5nIGhpbnQgYml0cyBpbiBpdCwgc28g d2UgbXVzdAogCSAqIGNvcHkgdGhlIHBhZ2UgdG8gcHJpdmF0ZSBzdG9yYWdlIGlmIHdlIGRvIGNo ZWNrc3VtbWluZy4KIAkgKi8KLQlidWZUb1dyaXRlID0gUGFnZVNldENoZWNrc3VtQ29weSgoUGFn ZSkgYnVmQmxvY2ssIGJ1Zi0+dGFnLmJsb2NrTnVtKTsKIAogCWlmICh0cmFja19pb190aW1pbmcp CiAJCUlOU1RSX1RJTUVfU0VUX0NVUlJFTlQoaW9fc3RhcnQpOwpAQCAtMzU0Myw2ICszNTU4LDkg QEAgRmx1c2hSZWxhdGlvbkJ1ZmZlcnMoUmVsYXRpb24gcmVsKQogCQkJCWVycmNhbGxiYWNrLnBy ZXZpb3VzID0gZXJyb3JfY29udGV4dF9zdGFjazsKIAkJCQllcnJvcl9jb250ZXh0X3N0YWNrID0g JmVycmNhbGxiYWNrOwogCisJCQkJLyogWFhYIHNob3VsZCB3ZSBiZSB3cml0aW5nIGEgY29weSBv ZiB0aGUgcGFnZSBoZXJlPyAqLworCQkJCVBhZ2VFbmNyeXB0SW5wbGFjZShsb2NhbHBhZ2UsIGJ1 Zkhkci0+dGFnLmZvcmtOdW0sCisJCQkJCQkJCSAgIFJlbGF0aW9uSXNQZXJtYW5lbnQocmVsKSwg YnVmSGRyLT50YWcuYmxvY2tOdW0pOwogCQkJCVBhZ2VTZXRDaGVja3N1bUlucGxhY2UobG9jYWxw YWdlLCBidWZIZHItPnRhZy5ibG9ja051bSk7CiAKIAkJCQlzbWdyd3JpdGUoUmVsYXRpb25HZXRT bWdyKHJlbCksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9sb2NhbGJ1 Zi5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvbG9jYWxidWYuYwppbmRleCAzMGQ2N2Qx YzQwLi4wOWIzZWM3MWQ5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9s b2NhbGJ1Zi5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2xvY2FsYnVmLmMKQEAg LTE1OSw3ICsxNTksNyBAQCBMb2NhbEJ1ZmZlckFsbG9jKFNNZ3JSZWxhdGlvbiBzbWdyLCBGb3Jr TnVtYmVyIGZvcmtOdW0sIEJsb2NrTnVtYmVyIGJsb2NrTnVtLAogCQl9CiAJCXJldHVybiBidWZI ZHI7CiAJfQotCisJCiAjaWZkZWYgTEJERUJVRwogCWZwcmludGYoc3RkZXJyLCAiTEIgQUxMT0Mg KCV1LCVkLCVkKSAlZFxuIiwKIAkJCXNtZ3ItPnNtZ3JfcmxvY2F0b3IubG9jYXRvci5yZWxOdW1i ZXIsIGZvcmtOdW0sIGJsb2NrTnVtLApAQCAtMjE3LDYgKzIxNywxMiBAQCBMb2NhbEJ1ZmZlckFs bG9jKFNNZ3JSZWxhdGlvbiBzbWdyLCBGb3JrTnVtYmVyIGZvcmtOdW0sIEJsb2NrTnVtYmVyIGJs b2NrTnVtLAogCQkvKiBGaW5kIHNtZ3IgcmVsYXRpb24gZm9yIGJ1ZmZlciAqLwogCQlvcmVsbiA9 IHNtZ3JvcGVuKEJ1ZlRhZ0dldFJlbEZpbGVMb2NhdG9yKCZidWZIZHItPnRhZyksIE15QmFja2Vu ZElkKTsKIAorCQkvKgorCQkgKiBUZWNobmljYWxseSBCTV9QRVJNQU5FTlQgY291bGQgaW5kaWNh dGUgYW4gaW5pdCBmb3JrLCBidXQgdGhhdCdzCisJCSAqIG9rYXkgc2luY2UgZm9ya051bSB3b3Vs ZCBhbHNvIHRlbGwgdXMgbm90IHRvIGVuY3J5cHQgaW5pdCBmb3Jrcy4KKwkJICovCisJCVBhZ2VF bmNyeXB0SW5wbGFjZShsb2NhbHBhZ2UsIGJ1Zkhkci0+dGFnLmZvcmtOdW0sCisJCQkJCSAgIGJ1 Zl9zdGF0ZSAmIEJNX1BFUk1BTkVOVCwgYnVmSGRyLT50YWcuYmxvY2tOdW0pOwogCQlQYWdlU2V0 Q2hlY2tzdW1JbnBsYWNlKGxvY2FscGFnZSwgYnVmSGRyLT50YWcuYmxvY2tOdW0pOwogCiAJCS8q IEFuZCB3cml0ZS4uLiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9maWxlL2Nv cHlkaXIuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvZmlsZS9jb3B5ZGlyLmMKaW5kZXggOGE4NjYx OTFlMS4uZDJmNGQxM2VjMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9maWxlL2Nv cHlkaXIuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2ZpbGUvY29weWRpci5jCkBAIC0yMiwx MiArMjIsMTUgQEAKICNpbmNsdWRlIDx1bmlzdGQuaD4KICNpbmNsdWRlIDxzeXMvc3RhdC5oPgog CisjaW5jbHVkZSAiY3J5cHRvL2J1ZmVuYy5oIgogI2luY2x1ZGUgImNvbW1vbi9maWxlX3V0aWxz LmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAicGdzdGF0LmgiCiAjaW5jbHVk ZSAic3RvcmFnZS9jb3B5ZGlyLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9mZC5oIgogCitleHRlcm4g WExvZ1JlY1B0ciBMU05Gb3JFbmNyeXB0aW9uKGJvb2wgdXNlX3dhbF9sc24pOworCiAvKgogICog Y29weWRpcjogY29weSBhIGRpcmVjdG9yeQogICoKQEAgLTcyLDcgKzc1LDcgQEAgY29weWRpcihj aGFyICpmcm9tZGlyLCBjaGFyICp0b2RpciwgYm9vbCByZWN1cnNlKQogCQkJCWNvcHlkaXIoZnJv bWZpbGUsIHRvZmlsZSwgdHJ1ZSk7CiAJCX0KIAkJZWxzZSBpZiAoeGxkZV90eXBlID09IFBHRklM RVRZUEVfUkVHKQotCQkJY29weV9maWxlKGZyb21maWxlLCB0b2ZpbGUpOworCQkJY29weV9maWxl KGZyb21maWxlLCB0b2ZpbGUsIGZhbHNlKTsKIAl9CiAJRnJlZURpcih4bGRpcik7CiAKQEAgLTEx NSw3ICsxMTgsNyBAQCBjb3B5ZGlyKGNoYXIgKmZyb21kaXIsIGNoYXIgKnRvZGlyLCBib29sIHJl Y3Vyc2UpCiAgKiBjb3B5IG9uZSBmaWxlCiAgKi8KIHZvaWQKLWNvcHlfZmlsZShjaGFyICpmcm9t ZmlsZSwgY2hhciAqdG9maWxlKQorY29weV9maWxlKGNoYXIgKmZyb21maWxlLCBjaGFyICp0b2Zp bGUsIGJvb2wgZW5jcnlwdF9pbml0X2ZpbGUpCiB7CiAJY2hhcgkgICAqYnVmZmVyOwogCWludAkJ CXNyY2ZkOwpAQCAtMTIzLDkgKzEyNiw4IEBAIGNvcHlfZmlsZShjaGFyICpmcm9tZmlsZSwgY2hh ciAqdG9maWxlKQogCWludAkJCW5ieXRlczsKIAlvZmZfdAkJb2Zmc2V0OwogCW9mZl90CQlmbHVz aF9vZmZzZXQ7Ci0KIAkvKiBTaXplIG9mIGNvcHkgYnVmZmVyIChyZWFkIGFuZCB3cml0ZSByZXF1 ZXN0cykgKi8KLSNkZWZpbmUgQ09QWV9CVUZfU0laRSAoOCAqIEJMQ0tTWikKKwlpbnQJCQljb3B5 X2J1Zl9zaXplID0gKGVuY3J5cHRfaW5pdF9maWxlKSA/IEJMQ0tTWiA6IDggKiBCTENLU1o7CiAK IAkvKgogCSAqIFNpemUgb2YgZGF0YSBmbHVzaCByZXF1ZXN0cy4gIEl0IHNlZW1zIGJlbmVmaWNp YWwgb24gbW9zdCBwbGF0Zm9ybXMgdG8KQEAgLTE0MCw3ICsxNDIsNyBAQCBjb3B5X2ZpbGUoY2hh ciAqZnJvbWZpbGUsIGNoYXIgKnRvZmlsZSkKICNlbmRpZgogCiAJLyogVXNlIHBhbGxvYyB0byBl bnN1cmUgd2UgZ2V0IGEgbWF4YWxpZ25lZCBidWZmZXIgKi8KLQlidWZmZXIgPSBwYWxsb2MoQ09Q WV9CVUZfU0laRSk7CisJYnVmZmVyID0gcGFsbG9jKGNvcHlfYnVmX3NpemUpOwogCiAJLyoKIAkg KiBPcGVuIHRoZSBmaWxlcwpAQCAtMTc4LDcgKzE4MCw3IEBAIGNvcHlfZmlsZShjaGFyICpmcm9t ZmlsZSwgY2hhciAqdG9maWxlKQogCQl9CiAKIAkJcGdzdGF0X3JlcG9ydF93YWl0X3N0YXJ0KFdB SVRfRVZFTlRfQ09QWV9GSUxFX1JFQUQpOwotCQluYnl0ZXMgPSByZWFkKHNyY2ZkLCBidWZmZXIs IENPUFlfQlVGX1NJWkUpOworCQluYnl0ZXMgPSByZWFkKHNyY2ZkLCBidWZmZXIsIGNvcHlfYnVm X3NpemUpOwogCQlwZ3N0YXRfcmVwb3J0X3dhaXRfZW5kKCk7CiAJCWlmIChuYnl0ZXMgPCAwKQog CQkJZXJlcG9ydChFUlJPUiwKQEAgLTE4Niw2ICsxODgsMjAgQEAgY29weV9maWxlKGNoYXIgKmZy b21maWxlLCBjaGFyICp0b2ZpbGUpCiAJCQkJCSBlcnJtc2coImNvdWxkIG5vdCByZWFkIGZpbGUg XCIlc1wiOiAlbSIsIGZyb21maWxlKSkpOwogCQlpZiAobmJ5dGVzID09IDApCiAJCQlicmVhazsK KwkJLyoKKwkJICogV2hlbiB3ZSBjb3B5IGFuIGluaXQgZm9yayBwYWdlIHRvIGJlIHBhcnQgb2Yg YW4gZW1wdHkgdW5sb2dnZWQKKwkJICogcmVsYXRpb24sIGl0cyByZWFsIExTTiBtdXN0IGJlIHJl cGxhY2VkIHdpdGggYSBmYWtlIG9uZSwgYW5kIHRoZQorCQkgKiBwYWdlIGVuY3J5cHRlZC4KKwkJ ICovCisJCWlmIChlbmNyeXB0X2luaXRfZmlsZSkKKwkJeworCQkJUGFnZSBwYWdlID0gKFBhZ2Up IGJ1ZmZlcjsKKworCQkJQXNzZXJ0KG5ieXRlcyA9PSBCTENLU1opOworCQkJUGFnZVNldExTTihw YWdlLCBMU05Gb3JFbmNyeXB0aW9uKGZhbHNlKSk7CisJCQlQYWdlRW5jcnlwdElucGxhY2UocGFn ZSwgTUFJTl9GT1JLTlVNLCBmYWxzZSwgb2Zmc2V0IC8gQkxDS1NaKTsKKwkJfQorCiAJCWVycm5v ID0gMDsKIAkJcGdzdGF0X3JlcG9ydF93YWl0X3N0YXJ0KFdBSVRfRVZFTlRfQ09QWV9GSUxFX1dS SVRFKTsKIAkJaWYgKChpbnQpIHdyaXRlKGRzdGZkLCBidWZmZXIsIG5ieXRlcykgIT0gbmJ5dGVz KQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9maWxlL3JlaW5pdC5jIGIvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9maWxlL3JlaW5pdC5jCmluZGV4IDY0N2M0NThiNTIuLjJlNTc5NDM3Njgg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvZmlsZS9yZWluaXQuYworKysgYi9zcmMv YmFja2VuZC9zdG9yYWdlL2ZpbGUvcmVpbml0LmMKQEAgLTMxMiw3ICszMTIsNyBAQCBSZXNldFVu bG9nZ2VkUmVsYXRpb25zSW5EYnNwYWNlRGlyKGNvbnN0IGNoYXIgKmRic3BhY2VkaXJuYW1lLCBp bnQgb3ApCiAKIAkJCS8qIE9LLCB3ZSdyZSByZWFkeSB0byBwZXJmb3JtIHRoZSBhY3R1YWwgY29w eS4gKi8KIAkJCWVsb2coREVCVUcyLCAiY29weWluZyAlcyB0byAlcyIsIHNyY3BhdGgsIGRzdHBh dGgpOwotCQkJY29weV9maWxlKHNyY3BhdGgsIGRzdHBhdGgpOworCQkJY29weV9maWxlKHNyY3Bh dGgsIGRzdHBhdGgsIHRydWUpOwogCQl9CiAKIAkJRnJlZURpcihkYnNwYWNlX2Rpcik7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL3BhZ2UvYnVmcGFnZS5jIGIvc3JjL2JhY2tlbmQv c3RvcmFnZS9wYWdlL2J1ZnBhZ2UuYwppbmRleCA4YjYxN2M3ZTc5Li4xMjU1NTY2ZjU3IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL3BhZ2UvYnVmcGFnZS5jCisrKyBiL3NyYy9iYWNr ZW5kL3N0b3JhZ2UvcGFnZS9idWZwYWdlLmMKQEAgLTE3LDYgKzE3LDcgQEAKICNpbmNsdWRlICJh Y2Nlc3MvaHR1cF9kZXRhaWxzLmgiCiAjaW5jbHVkZSAiYWNjZXNzL2l0dXAuaCIKICNpbmNsdWRl ICJhY2Nlc3MveGxvZy5oIgorI2luY2x1ZGUgImNyeXB0by9idWZlbmMuaCIKICNpbmNsdWRlICJw Z3N0YXQuaCIKICNpbmNsdWRlICJzdG9yYWdlL2NoZWNrc3VtLmgiCiAjaW5jbHVkZSAidXRpbHMv bWVtZGVidWcuaCIKQEAgLTg1LDcgKzg2LDggQEAgUGFnZUluaXQoUGFnZSBwYWdlLCBTaXplIHBh Z2VTaXplLCBTaXplIHNwZWNpYWxTaXplKQogICogdG8gcGdzdGF0LgogICovCiBib29sCi1QYWdl SXNWZXJpZmllZEV4dGVuZGVkKFBhZ2UgcGFnZSwgQmxvY2tOdW1iZXIgYmxrbm8sIGludCBmbGFn cykKK1BhZ2VJc1ZlcmlmaWVkRXh0ZW5kZWQoUGFnZSBwYWdlLCBGb3JrTnVtYmVyIGZvcmtudW0s IGJvb2wgcmVsYXRpb25faXNfcGVybWFuZW50LAorCQkJCQkgICBCbG9ja051bWJlciBibGtubywg aW50IGZsYWdzKQogewogCVBhZ2VIZWFkZXIJcCA9IChQYWdlSGVhZGVyKSBwYWdlOwogCXNpemVf dAkgICAqcGFnZWJ5dGVzOwpAQCAtMTA4LDYgKzExMCw4IEBAIFBhZ2VJc1ZlcmlmaWVkRXh0ZW5k ZWQoUGFnZSBwYWdlLCBCbG9ja051bWJlciBibGtubywgaW50IGZsYWdzKQogCQkJCWNoZWNrc3Vt X2ZhaWx1cmUgPSB0cnVlOwogCQl9CiAKKwkJUGFnZURlY3J5cHRJbnBsYWNlKHBhZ2UsIGZvcmtu dW0sIHJlbGF0aW9uX2lzX3Blcm1hbmVudCwgYmxrbm8pOworCiAJCS8qCiAJCSAqIFRoZSBmb2xs b3dpbmcgY2hlY2tzIGRvbid0IHByb3ZlIHRoZSBoZWFkZXIgaXMgY29ycmVjdCwgb25seSB0aGF0 CiAJCSAqIGl0IGxvb2tzIHNhbmUgZW5vdWdoIHRvIGFsbG93IGludG8gdGhlIGJ1ZmZlciBwb29s LiBMYXRlciB1c2FnZSBvZgpAQCAtMTU0NCwzICsxNTQ4LDQ4IEBAIFBhZ2VTZXRDaGVja3N1bUlu cGxhY2UoUGFnZSBwYWdlLCBCbG9ja051bWJlciBibGtubykKIAogCSgoUGFnZUhlYWRlcikgcGFn ZSktPnBkX2NoZWNrc3VtID0gcGdfY2hlY2tzdW1fcGFnZSgoY2hhciAqKSBwYWdlLCBibGtubyk7 CiB9CisKK2NoYXIgKgorUGFnZUVuY3J5cHRDb3B5KFBhZ2UgcGFnZSwgRm9ya051bWJlciBmb3Jr bnVtLCBib29sIHJlbGF0aW9uX2lzX3Blcm1hbmVudCwKKwkJCQlCbG9ja051bWJlciBibGtubykK K3sKKwlzdGF0aWMgY2hhciAqcGFnZUNvcHkgPSBOVUxMOworCisJLyogSWYgd2UgZG9uJ3QgbmVl ZCBhIGNoZWNrc3VtLCBqdXN0IHJldHVybiB0aGUgcGFzc2VkLWluIGRhdGEgKi8KKwlpZiAoUGFn ZUlzTmV3KHBhZ2UpIHx8ICFQYWdlTmVlZHNUb0JlRW5jcnlwdGVkKGZvcmtudW0pKQorCQlyZXR1 cm4gKGNoYXIgKikgcGFnZTsKKworCS8qCisJICogV2UgYWxsb2NhdGUgdGhlIGNvcHkgc3BhY2Ug b25jZSBhbmQgdXNlIGl0IG92ZXIgb24gZWFjaCBzdWJzZXF1ZW50CisJICogY2FsbC4gIFRoZSBw b2ludCBvZiBwYWxsb2MnaW5nIGhlcmUsIHJhdGhlciB0aGFuIGhhdmluZyBhIHN0YXRpYyBjaGFy CisJICogYXJyYXksIGlzIGZpcnN0IHRvIGVuc3VyZSBhZGVxdWF0ZSBhbGlnbm1lbnQgZm9yIHRo ZSBjaGVja3N1bW1pbmcgY29kZQorCSAqIGFuZCBzZWNvbmQgdG8gYXZvaWQgd2FzdGluZyBzcGFj ZSBpbiBwcm9jZXNzZXMgdGhhdCBuZXZlciBjYWxsIHRoaXMuCisJICovCisJaWYgKHBhZ2VDb3B5 ID09IE5VTEwpCisJCXBhZ2VDb3B5ID0gTWVtb3J5Q29udGV4dEFsbG9jKFRvcE1lbW9yeUNvbnRl eHQsIEJMQ0tTWik7CisKKwltZW1jcHkocGFnZUNvcHksIChjaGFyICopIHBhZ2UsIEJMQ0tTWik7 CisJRW5jcnlwdFBhZ2UocGFnZUNvcHksIHJlbGF0aW9uX2lzX3Blcm1hbmVudCwgYmxrbm8pOwor CXJldHVybiBwYWdlQ29weTsKK30KKwordm9pZAorUGFnZUVuY3J5cHRJbnBsYWNlKFBhZ2UgcGFn ZSwgRm9ya051bWJlciBmb3JrbnVtLCBib29sIHJlbGF0aW9uX2lzX3Blcm1hbmVudCwKKwkJCQkg ICBCbG9ja051bWJlciBibGtubykKK3sKKwlpZiAoUGFnZUlzTmV3KHBhZ2UpIHx8ICFQYWdlTmVl ZHNUb0JlRW5jcnlwdGVkKGZvcmtudW0pKQorCQlyZXR1cm47CisKKwlFbmNyeXB0UGFnZShwYWdl LCByZWxhdGlvbl9pc19wZXJtYW5lbnQsIGJsa25vKTsKK30KKworCit2b2lkCitQYWdlRGVjcnlw dElucGxhY2UoUGFnZSBwYWdlLCBGb3JrTnVtYmVyIGZvcmtudW0sIGJvb2wgcmVsYXRpb25faXNf cGVybWFuZW50LAorCQkJCSAgIEJsb2NrTnVtYmVyIGJsa25vKQoreworCWlmIChQYWdlSXNOZXco cGFnZSkgfHwgIVBhZ2VOZWVkc1RvQmVFbmNyeXB0ZWQoZm9ya251bSkpCisJCXJldHVybjsKKwor CURlY3J5cHRQYWdlKHBhZ2UsIHJlbGF0aW9uX2lzX3Blcm1hbmVudCwgYmxrbm8pOworfQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jIGIvc3JjL2JhY2tlbmQvdGNvcC9w b3N0Z3Jlcy5jCmluZGV4IDU5NzBlYzk3YTUuLjlhYzRhNzM3ZmEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3Rjb3AvcG9zdGdyZXMuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMK QEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJjb21tYW5kcy9hc3luYy5oIgogI2luY2x1ZGUg ImNvbW1hbmRzL3ByZXBhcmUuaCIKICNpbmNsdWRlICJjb21tb24vcGdfcHJuZy5oIgorI2luY2x1 ZGUgImNyeXB0by9idWZlbmMuaCIKICNpbmNsdWRlICJjcnlwdG8va21nci5oIgogI2luY2x1ZGUg ImppdC9qaXQuaCIKICNpbmNsdWRlICJsaWJwcS9saWJwcS5oIgpAQCAtNDA3Niw2ICs0MDc3LDcg QEAgUG9zdGdyZXNNYWluKGNvbnN0IGNoYXIgKmRibmFtZSwgY29uc3QgY2hhciAqdXNlcm5hbWUp CiAJaWYgKCFJc1VuZGVyUG9zdG1hc3RlcikKIAl7CiAJCUluaXRpYWxpemVLbWdyKCk7CisJCUlu aXRpYWxpemVCdWZmZXJFbmNyeXB0aW9uKCk7CiAKIAkJaWYgKHRlcm1pbmFsX2ZkICE9IC0xKQog CQkJY2xvc2UodGVybWluYWxfZmQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2dp c3QuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0LmgKaW5kZXggYTMzMzc2MjdiOC4uM2UxMTZh NjZkOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3QuaAorKysgYi9zcmMvaW5j bHVkZS9hY2Nlc3MvZ2lzdC5oCkBAIC00MSw3ICs0MSw3IEBACiAjZGVmaW5lIEdJU1ROUHJvY3MJ CQkJCTExCiAKIC8qCi0gKiBQYWdlIG9wYXF1ZSBkYXRhIGluIGEgR2lTVCBpbmRleCBwYWdlLgor ICogUGFnZSBvcGFxdWUgZGF0YSBmbGFncyBpbiBhIEdpU1QgaW5kZXggcGFnZS4KICAqLwogI2Rl ZmluZSBGX0xFQUYJCQkJKDEgPDwgMCkJLyogbGVhZiBwYWdlICovCiAjZGVmaW5lIEZfREVMRVRF RAkJCSgxIDw8IDEpCS8qIHRoZSBwYWdlIGhhcyBiZWVuIGRlbGV0ZWQgKi8KQEAgLTUxLDYgKzUx LDkgQEAKICNkZWZpbmUgRl9IQVNfR0FSQkFHRQkJKDEgPDwgNCkJLyogc29tZSB0dXBsZXMgb24g dGhlIHBhZ2UgYXJlIGRlYWQsCiAJCQkJCQkJCQkJICogYnV0IG5vdCBkZWxldGVkIHlldCAqLwog CisvKiBTcGVjaWZpZXMgdGhlIGJpdHMgdGhhdCBjYW4gYmUgc2V0IGluIHRoZSBHaVNUIGZsYWdz IGZpZWxkICovCisjZGVmaW5lIEdJU1RfRkxBR19CSVRNQVNLICAgMHgxRgorCiAvKgogICogTlNO IChub2RlIHNlcXVlbmNlIG51bWJlcikgaXMgYSBzcGVjaWFsLXB1cnBvc2UgTFNOIHdoaWNoIGlz IHN0b3JlZCBvbiBlYWNoCiAgKiBpbmRleCBwYWdlIGluIEdJU1RQYWdlT3BhcXVlRGF0YSBhbmQg dXBkYXRlZCBvbmx5IGR1cmluZyBwYWdlIHNwbGl0cy4gIEJ5CmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9jcnlwdG8vYnVmZW5jLmggYi9zcmMvaW5jbHVkZS9jcnlwdG8vYnVmZW5jLmgKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uY2M4NmNlYjgyMQotLS0gL2Rldi9udWxs CisrKyBiL3NyYy9pbmNsdWRlL2NyeXB0by9idWZlbmMuaApAQCAtMCwwICsxLDI4IEBACisvKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqCisgKiBidWZlbmMuaAorICoKKyAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMjAyMSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqCisgKiBz cmMvaW5jbHVkZS9jcnlwdG8vYnVmZW5jLmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLwor I2lmbmRlZiBCVUZFTkNfSAorI2RlZmluZSBCVUZFTkNfSAorCisjaW5jbHVkZSAic3RvcmFnZS9i dWZtZ3IuaCIKKyNpbmNsdWRlICJjcnlwdG8va21nci5oIgorCisvKiBDbHVzdGVyIGVuY3J5cHRp b24gZW5jcnlwdHMgb25seSBtYWluIGZvcmtzICovCisjZGVmaW5lIFBhZ2VOZWVkc1RvQmVFbmNy eXB0ZWQoZm9ya251bSkgXAorCShGaWxlRW5jcnlwdGlvbkVuYWJsZWQgJiYgKGZvcmtudW0pID09 IE1BSU5fRk9SS05VTSkKKworCitleHRlcm4gdm9pZCBJbml0aWFsaXplQnVmZmVyRW5jcnlwdGlv bih2b2lkKTsKK2V4dGVybiB2b2lkIEVuY3J5cHRQYWdlKFBhZ2UgcGFnZSwgYm9vbCByZWxhdGlv bl9pc19wZXJtYW5lbnQsCisJCQkJCQlCbG9ja051bWJlciBibGtubyk7CitleHRlcm4gdm9pZCBE ZWNyeXB0UGFnZShQYWdlIHBhZ2UsIGJvb2wgcmVsYXRpb25faXNfcGVybWFuZW50LAorCQkJCQkJ QmxvY2tOdW1iZXIgYmxrbm8pOworCisjZW5kaWYJCQkJCQkJLyogQlVGRU5DX0ggKi8KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3N0b3JhZ2UvYnVmcGFnZS5oIGIvc3JjL2luY2x1ZGUvc3RvcmFn ZS9idWZwYWdlLmgKaW5kZXggMjcwOGM0YjY4My4uZDA2Yzg4ZDk4YyAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvc3RvcmFnZS9idWZwYWdlLmgKKysrIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9idWZw YWdlLmgKQEAgLTE1LDYgKzE1LDcgQEAKICNkZWZpbmUgQlVGUEFHRV9ICiAKICNpbmNsdWRlICJh Y2Nlc3MveGxvZ2RlZnMuaCIKKyNpbmNsdWRlICJjb21tb24vcmVscGF0aC5oIgogI2luY2x1ZGUg InN0b3JhZ2UvYmxvY2suaCIKICNpbmNsdWRlICJzdG9yYWdlL2l0ZW0uaCIKICNpbmNsdWRlICJz dG9yYWdlL29mZi5oIgpAQCAtMTY4LDYgKzE2OSw4IEBAIHR5cGVkZWYgc3RydWN0IFBhZ2VIZWFk ZXJEYXRhCiB9IFBhZ2VIZWFkZXJEYXRhOwogCiB0eXBlZGVmIFBhZ2VIZWFkZXJEYXRhICpQYWdl SGVhZGVyOworI2RlZmluZSBQYWdlRW5jcnlwdE9mZnNldAlvZmZzZXRvZihQYWdlSGVhZGVyRGF0 YSwgcGRfc3BlY2lhbCkKKyNkZWZpbmUgU2l6ZU9mUGFnZUVuY3J5cHRpb24gKEJMQ0tTWiAtIFBh Z2VFbmNyeXB0T2Zmc2V0KQogCiAvKgogICogcGRfZmxhZ3MgY29udGFpbnMgdGhlIGZvbGxvd2lu ZyBmbGFnIGJpdHMuICBVbmRlZmluZWQgYml0cyBhcmUgaW5pdGlhbGl6ZWQKQEAgLTQ3MSw4ICs0 NzQsOCBAQCBkbyB7IFwKIAkJCQkJCSgob3ZlcndyaXRlKSA/IFBBSV9PVkVSV1JJVEUgOiAwKSB8 IFwKIAkJCQkJCSgoaXNfaGVhcCkgPyBQQUlfSVNfSEVBUCA6IDApKQogCi0jZGVmaW5lIFBhZ2VJ c1ZlcmlmaWVkKHBhZ2UsIGJsa25vKSBcCi0JUGFnZUlzVmVyaWZpZWRFeHRlbmRlZChwYWdlLCBi bGtubywgXAorI2RlZmluZSBQYWdlSXNWZXJpZmllZChwYWdlLCByZWxhdGlvbl9pc19wZXJtYW5l bnQsIGJsa25vKSBcCisJUGFnZUlzVmVyaWZpZWRFeHRlbmRlZChwYWdlLCBNQUlOX0ZPUktOVU0s IHJlbGF0aW9uX2lzX3Blcm1hbmVudCwgYmxrbm8sIFwKIAkJCQkJCSAgIFBJVl9MT0dfV0FSTklO RyB8IFBJVl9SRVBPUlRfU1RBVCkKIAogLyoKQEAgLTQ4Niw3ICs0ODksMTAgQEAgU3RhdGljQXNz ZXJ0RGVjbChCTENLU1ogPT0gKChCTENLU1ogLyBzaXplb2Yoc2l6ZV90KSkgKiBzaXplb2Yoc2l6 ZV90KSksCiAJCQkJICJCTENLU1ogaGFzIHRvIGJlIGEgbXVsdGlwbGUgb2Ygc2l6ZW9mKHNpemVf dCkiKTsKIAogZXh0ZXJuIHZvaWQgUGFnZUluaXQoUGFnZSBwYWdlLCBTaXplIHBhZ2VTaXplLCBT aXplIHNwZWNpYWxTaXplKTsKLWV4dGVybiBib29sIFBhZ2VJc1ZlcmlmaWVkRXh0ZW5kZWQoUGFn ZSBwYWdlLCBCbG9ja051bWJlciBibGtubywgaW50IGZsYWdzKTsKK2V4dGVybiBib29sIFBhZ2VJ c1ZlcmlmaWVkRXh0ZW5kZWQoUGFnZSBwYWdlLCBGb3JrTnVtYmVyIGZvcmtudW0sCisJCQkJCQkJ CSAgIGJvb2wgcmVsYXRpb25faXNfcGVybWFuZW50LAorCQkJCQkJCQkgICBCbG9ja051bWJlciBi bGtubywKKwkJCQkJCQkJICAgaW50IGZsYWdzKTsKIGV4dGVybiBPZmZzZXROdW1iZXIgUGFnZUFk ZEl0ZW1FeHRlbmRlZChQYWdlIHBhZ2UsIEl0ZW0gaXRlbSwgU2l6ZSBzaXplLAogCQkJCQkJCQkJ CU9mZnNldE51bWJlciBvZmZzZXROdW1iZXIsIGludCBmbGFncyk7CiBleHRlcm4gUGFnZSBQYWdl R2V0VGVtcFBhZ2UoUGFnZSBwYWdlKTsKQEAgLTUwNiw1ICs1MTIsMTEgQEAgZXh0ZXJuIGJvb2wg UGFnZUluZGV4VHVwbGVPdmVyd3JpdGUoUGFnZSBwYWdlLCBPZmZzZXROdW1iZXIgb2ZmbnVtLAog CQkJCQkJCQkJSXRlbSBuZXd0dXAsIFNpemUgbmV3c2l6ZSk7CiBleHRlcm4gY2hhciAqUGFnZVNl dENoZWNrc3VtQ29weShQYWdlIHBhZ2UsIEJsb2NrTnVtYmVyIGJsa25vKTsKIGV4dGVybiB2b2lk IFBhZ2VTZXRDaGVja3N1bUlucGxhY2UoUGFnZSBwYWdlLCBCbG9ja051bWJlciBibGtubyk7Citl eHRlcm4gY2hhciAqUGFnZUVuY3J5cHRDb3B5KFBhZ2UgcGFnZSwgRm9ya051bWJlciBmb3JrbnVt LAorCQkJCQkJCSBib29sIHJlbGF0aW9uX2lzX3Blcm1hbmVudCwgQmxvY2tOdW1iZXIgYmxrbm8p OworZXh0ZXJuIHZvaWQgUGFnZUVuY3J5cHRJbnBsYWNlKFBhZ2UgcGFnZSwgRm9ya051bWJlciBm b3JrbnVtLAorCQkJCQkJCSAgIGJvb2wgcmVsYXRpb25faXNfcGVybWFuZW50LCBCbG9ja051bWJl ciBibGtubyk7CitleHRlcm4gdm9pZCBQYWdlRGVjcnlwdElucGxhY2UoUGFnZSBwYWdlLCBGb3Jr TnVtYmVyIGZvcmtudW0sCisJCQkJCQkJICAgYm9vbCByZWxhdGlvbl9pc19wZXJtYW5lbnQsIEJs b2NrTnVtYmVyIGJsa25vKTsKIAogI2VuZGlmCQkJCQkJCS8qIEJVRlBBR0VfSCAqLwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9jb3B5ZGlyLmggYi9zcmMvaW5jbHVkZS9zdG9yYWdl L2NvcHlkaXIuaAppbmRleCA1MGEyNmVkZWIwLi43ZmRmYjcxMDY3IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9zdG9yYWdlL2NvcHlkaXIuaAorKysgYi9zcmMvaW5jbHVkZS9zdG9yYWdlL2NvcHlk aXIuaApAQCAtMTQsNiArMTQsNiBAQAogI2RlZmluZSBDT1BZRElSX0gKIAogZXh0ZXJuIHZvaWQg Y29weWRpcihjaGFyICpmcm9tZGlyLCBjaGFyICp0b2RpciwgYm9vbCByZWN1cnNlKTsKLWV4dGVy biB2b2lkIGNvcHlfZmlsZShjaGFyICpmcm9tZmlsZSwgY2hhciAqdG9maWxlKTsKK2V4dGVybiB2 b2lkIGNvcHlfZmlsZShjaGFyICpmcm9tZmlsZSwgY2hhciAqdG9maWxlLCBib29sIGVuY3J5cHRf aW5pdF9maWxlKTsKIAogI2VuZGlmCQkJCQkJCS8qIENPUFlESVJfSCAqLwotLSAKMi4zNy4wIChB cHBsZSBHaXQtMTM2KQoK --000000000000cbfbc705ebca4b20--