Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1v3eg3-001Qlf-NH for pgsql-hackers@arkaria.postgresql.org; Tue, 30 Sep 2025 18:02:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1v3eg1-00BUMb-Mf for pgsql-hackers@arkaria.postgresql.org; Tue, 30 Sep 2025 18:02:14 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1v3eg0-00BUMN-PU for pgsql-hackers@lists.postgresql.org; Tue, 30 Sep 2025 18:02:14 +0000 Received: from mail-il1-x12e.google.com ([2607:f8b0:4864:20::12e]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1v3efx-000wUZ-3C for pgsql-hackers@lists.postgresql.org; Tue, 30 Sep 2025 18:02:12 +0000 Received: by mail-il1-x12e.google.com with SMTP id e9e14a558f8ab-427621906faso20577345ab.2 for ; Tue, 30 Sep 2025 11:02:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=illuminatedcomputing-com.20230601.gappssmtp.com; s=20230601; t=1759255328; x=1759860128; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=igf6+DM6Fa+DnmCABh8Y6Ev1R8HrX+JK84oA9/jQShk=; b=ylPWM1Ad+3rpBTm8qIvZVi/TNtqmCZfxEzSGOHuZxJlx+i4tsv0am9fGX11KOilqce GcHDLk510+BWwrWFEL62FviGnU7AbJOuuTnzLx6XXHxtbWLdNrQdUEDd2bmZlJxhUjOU c5Jr8OlYzOCID6pWTYfa/+EfR16SHQEmAvMfgBedk79muX/K0BL/8xExlAY2AHvWtxC5 HvAiT165MwZuOm+SX04yui3++9vHpQGJbUOvctKPHXLXuFLLjUH8j4USVIPzEgemRfnt lK7MnxlPiZYQl4NDDhTuN3JU+XL08kfd3BHpMJvpP+/qiNgtIXVqhtQ4hEN7G+0MdvFy oMGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759255328; x=1759860128; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=igf6+DM6Fa+DnmCABh8Y6Ev1R8HrX+JK84oA9/jQShk=; b=huS9d1raI3cJ36kZEpntJR43ZmZqRuYqKK5wVu+ZbCKD4C0nq65SlTlPHZ+1yiOP1H xhWgaC+ASIYcIDOiJPxOce880eTGTi/xFHvb4nXryzD67Yoiof1C4lw8jHqkTewPCVbv fDjRd+r8115El40F5sp8W9IuEqvPY22BDCgU5Wy/c71EfN35fxsGkm0lf/pzEcHzAF5v phbS1cah+6DwHfcpZBVu5TNAeiU7nA1HV+qMOoQ2e+SjDQkpIrDDFZuiOW5fSZj/HLtA HQQ9Jp75CBj3DLJXsu2MKiunnU+CWuBvcmurfHXw+hzKHOyBBs4yE56ZI4ACVMj5fh/d 3sWg== X-Gm-Message-State: AOJu0YwTVXAfkbHgRiI9Nqi38arzEaqFmaAxzLIM38qosbnOK2VXAOqk f1RAuCOQtlclVZ55EEXnmKok1HPwzhuvFlQIjvb0/6rgn92qmBzJ1oWSE+cpJ0T13/fk1vkYQMx Y5QmP+OsMSx4AnoLC4sPD68j7xSx03NA0dEE5QZcMAA== X-Gm-Gg: ASbGncveyxj9aFJkq26dBnPNYq46GpYghmJiQk8ZBL3agV3ypzOjiPJsiq51w3EMUpL FAdUYdm6PSaxW1f2cAjBH7B+12ZzS1T2qtc937TEez73wnKXmGuXpd+L21I5yl3x5wyK3N1UCrH q9lA1kUhj5Z/oZZ8w+Fu1BqHKat7o/wFdkeqwkN4z1aT2WHWqbqeWGFuzJBuUH4UH4bKmlWLeMj CCqIWNPe78hGWXCXqLXIzH4W+QdBu4rf2uFajcC X-Google-Smtp-Source: AGHT+IGyvd4SA68VgShc0ti+6+bxJuOPKO2bBLUyn7JId+xJrknGTzf0CrYzCzDWPFyVgi2pFhQlMATTAss36Ld2HS4= X-Received: by 2002:a92:c248:0:b0:428:24b4:42d3 with SMTP id e9e14a558f8ab-42d81677203mr10604925ab.15.1759255327415; Tue, 30 Sep 2025 11:02:07 -0700 (PDT) MIME-Version: 1.0 References: <20250808115142.e9ccb81f35466a9a131a4c55@sraoss.co.jp> In-Reply-To: <20250808115142.e9ccb81f35466a9a131a4c55@sraoss.co.jp> From: Paul A Jungwirth Date: Tue, 30 Sep 2025 11:01:55 -0700 X-Gm-Features: AS18NWDFB8_c3M_3cYj_NhHiXxghFVzCHB5mlPsFy0LRCpyZFqztpFDyINoAoXs Message-ID: Subject: Re: Align tests for stored and virtual generated columns To: Yugo Nagata , Surya Poondla , Mutaamba Maasha Cc: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000dd17af0640088cbf" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000dd17af0640088cbf Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Aug 7, 2025 at 7:52=E2=80=AFPM Yugo Nagata wr= ote: > I noticed that the tests for virtual and stored generated columns > contain the following comment; > > -- keep these tests aligned with generated_stored.sql (or generated_virt= ual.sql) > > However, it seems that some additional tests for virtual generated column= s > disrupted that alignment, as they were not added to generated_stored.sql. > > I've attached a patch to restore the alignment. Hello, Thanks for this patch! Mutaama Maasha, Surya Poondla, and I reviewed it together. Here are our thoughts: We agree we should try to keep these tests in sync, so if they are diverging we should bring them back into line. The patch still applies. Tests pass. Going through the tests made me curious about trying to break virtual columns. I couldn't come up with anything, although one scenario that doesn't seem be tested is changing the collation of a column used by a generated column. For instance: ``` -- English vs Turkish upper/lower i: create table t2 ( x text COLLATE "en-x-icu", y text COLLATE "tr-x-icu" ); insert into t2 values ('i', 'i'), ('I', 'I'); select upper(x), ascii(upper(x)), lower(x), ascii(lower(x)), upper(y), ascii(upper(y)), lower(y), ascii(lower(y)) from t2; create table t3 ( x text collate "en-x-icu", lx text collate "en-x-icu" generated always as (lower(x)), ux text collate "en-x-icu" generated always as (upper(x)), y text collate "tr-x-icu", ly text collate "tr-x-icu" generated always as (lower(y)), uy text collate "tr-x-icu" generated always as (upper(y)) ); insert into t3 (x, y) values ('i', 'i'), ('I', 'I'); alter table t3 add constraint x check (ascii(lx) < 128 and ascii(ux) < 128)= ; alter table t3 alter column x type text collate "tr-x-icu"; ERROR: cannot alter type of a column used by a generated column DETAIL: Column "x" is used by generated column "lx". ``` Perhaps we could add a test like that? (We do have a test for changing the *type* of a column used by a generated column though.) Is there a way we can make it easier to compare the two test scripts for differences? Could we write a meta-test that compares them for differences (in the spirit of `opr_sanity.sql`)? I experimented with using psql variables to limit `STORED` vs `VIRTUAL` to only the top of each SQL file. Then I could easily diff the two files and see how diverged they were. Attached is a patch to do this and the results of my diff (after applying the author's patch). It seems like there are still a few trivial discrepancies that we could clean up. To call out one less-trivial discrepancy: ``` --- sql/generated_stored.sql 2025-09-21 19:52:14.554930323 -0700 +++ sql/generated_virtual.sql 2025-09-21 19:52:21.447016340 -0700 ... -INSERT INTO gtest12 VALUES (3, 30), (4, 40); -- currently not allowed because of function permissions, should arguably be allowed -SELECT a, c FROM gtest12; -- allowed (does not actually invoke the functi= on) +--INSERT INTO gtest12 VALUES (3, 30), (4, 40); -- allowed (does not actually invoke the function) +--SELECT a, c FROM gtest12; -- currently not allowed because of function permissions, should arguably be allowed ``` Why are the VIRTUAL tests commented out? The explanatory comments suggest they should have opposite results from the STORED tests, which makes sense, but shouldn't we be running them? Similarly we noticed that the test for expansion of virtual generated columns is not applied to stored columns. Is there a reason why not? We found a couple places where this patch adds new test tables whose numbering is out of sequence compared to the rest of the file. For instance: > @@ -806,6 +803,9 @@ SELECT attrelid, attname, attgenerated FROM pg_attrib= ute WHERE attgenerated NOT > -- these tests are specific to generated_virtual.sql > -- > > +-- using user-defined type not yet supported > +CREATE TABLE gtest24xxx (a gtestdomain1, b gtestdomain1, c int GENERATED= ALWAYS AS (greatest(a, b)) VIRTUAL); -- error > + > create table gtest32 ( > a int primary key, > b int generated always as (a * 2), > -- > 2.43.0 Why add gtest24xxx in between gtest28b and gtest32? Maybe it should be gtest30 or 31? Also here: > +INSERT INTO gtest21b (a) VALUES (2), (0); -- violates constraint > +INSERT INTO gtest21b (a) VALUES (NULL); -- error > ALTER TABLE gtest21b ALTER COLUMN b DROP NOT NULL; > INSERT INTO gtest21b (a) VALUES (0); -- ok now > > +-- not-null constraint with partitioned table > +CREATE TABLE gtestnn_parent ( > + f1 int, > + f2 bigint, > + f3 bigint GENERATED ALWAYS AS (nullif(f1, 1) + nullif(f2, 10)) STORE= D NOT NULL > +) PARTITION BY RANGE (f1); > +CREATE TABLE gtestnn_child PARTITION OF gtestnn_parent FOR VALUES FROM (= 1) TO (5); > +CREATE TABLE gtestnn_childdef PARTITION OF gtestnn_parent default; Should gtestnn_parent have a number? It is between gtest21b and gtest22a. Perhaps gtest21nn_parent? This is a tougher choice since 21 and 22 are taken. Yours, --=20 Paul ~{:-) pj@illuminatedcomputing.com --000000000000dd17af0640088cbf Content-Type: text/x-patch; charset="US-ASCII"; name="diff_generated_vs_stored.diff" Content-Disposition: attachment; filename="diff_generated_vs_stored.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mg6v4em70 LS0tIHNxbC9nZW5lcmF0ZWRfc3RvcmVkLnNxbAkyMDI1LTA5LTIxIDE5OjUyOjE0LjU1NDkzMDMy MyAtMDcwMAorKysgc3FsL2dlbmVyYXRlZF92aXJ0dWFsLnNxbAkyMDI1LTA5LTIxIDE5OjUyOjIx LjQ0NzAxNjM0MCAtMDcwMApAQCAtMSwxOSArMSwxOSBAQAotLS0ga2VlcCB0aGVzZSB0ZXN0cyBh bGlnbmVkIHdpdGggZ2VuZXJhdGVkX3ZpcnR1YWwuc3FsCistLSBrZWVwIHRoZXNlIHRlc3RzIGFs aWduZWQgd2l0aCBnZW5lcmF0ZWRfc3RvcmVkLnNxbAogLS0gV2UgY2FuIHVzZSBwc3FsIHZhcmlh YmxlcyB0byBrZWVwIHRoZSBkaWZmIHRvIGEgbWluaW11bS4KLVxzZXQgR2VuZXJhdGVkICdTVE9S RUQnCi1cc2V0IE90aGVyICdWSVJUVUFMJworXHNldCBHZW5lcmF0ZWQgJ1ZJUlRVQUwnCitcc2V0 IE90aGVyICdTVE9SRUQnCiAKIAotQ1JFQVRFIFNDSEVNQSBnZW5lcmF0ZWRfc3RvcmVkX3Rlc3Rz OwotR1JBTlQgVVNBR0UgT04gU0NIRU1BIGdlbmVyYXRlZF9zdG9yZWRfdGVzdHMgVE8gUFVCTElD OwotU0VUIHNlYXJjaF9wYXRoID0gZ2VuZXJhdGVkX3N0b3JlZF90ZXN0czsKK0NSRUFURSBTQ0hF TUEgZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHM7CitHUkFOVCBVU0FHRSBPTiBTQ0hFTUEgZ2VuZXJh dGVkX3ZpcnR1YWxfdGVzdHMgVE8gUFVCTElDOworU0VUIHNlYXJjaF9wYXRoID0gZ2VuZXJhdGVk X3ZpcnR1YWxfdGVzdHM7CiAKIENSRUFURSBUQUJMRSBndGVzdDAgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICg1NSkgOkdlbmVyYXRlZCk7CiBDUkVBVEUgVEFC TEUgZ3Rlc3QxIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YSAqIDIpIDpHZW5lcmF0ZWQpOwogCi1TRUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGNv bHVtbl9kZWZhdWx0LCBpc19udWxsYWJsZSwgaXNfZ2VuZXJhdGVkLCBnZW5lcmF0aW9uX2V4cHJl c3Npb24gRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1ucyBXSEVSRSB0YWJsZV9zY2hlbWEg PSAnZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cycgT1JERVIgQlkgMSwgMjsKK1NFTEVDVCB0YWJsZV9u YW1lLCBjb2x1bW5fbmFtZSwgY29sdW1uX2RlZmF1bHQsIGlzX251bGxhYmxlLCBpc19nZW5lcmF0 ZWQsIGdlbmVyYXRpb25fZXhwcmVzc2lvbiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5z IFdIRVJFIHRhYmxlX3NjaGVtYSA9ICdnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cycgT1JERVIgQlkg MSwgMjsKIAotU0VMRUNUIHRhYmxlX25hbWUsIGNvbHVtbl9uYW1lLCBkZXBlbmRlbnRfY29sdW1u IEZST00gaW5mb3JtYXRpb25fc2NoZW1hLmNvbHVtbl9jb2x1bW5fdXNhZ2UgV0hFUkUgdGFibGVf c2NoZW1hID0gJ2dlbmVyYXRlZF9zdG9yZWRfdGVzdHMnIE9SREVSIEJZIDEsIDIsIDM7CitTRUxF Q1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGRlcGVuZGVudF9jb2x1bW4gRlJPTSBpbmZvcm1h dGlvbl9zY2hlbWEuY29sdW1uX2NvbHVtbl91c2FnZSBXSEVSRSB0YWJsZV9zY2hlbWEgPSAnZ2Vu ZXJhdGVkX3ZpcnR1YWxfdGVzdHMnIE9SREVSIEJZIDEsIDIsIDM7CiAKIFxkIGd0ZXN0MQogCkBA IC03NCw3ICs3NCw3IEBACiBTRUxFQ1QgYSwgYiwgYiAqIDIgQVMgYjIgRlJPTSBndGVzdDEgT1JE RVIgQlkgYTsKIFNFTEVDVCBhLCBiIEZST00gZ3Rlc3QxIFdIRVJFIGIgPSA0IE9SREVSIEJZIGE7 CiAKLS0tIHRlc3QgdGhhdCBvdmVyZmxvdyBlcnJvciBoYXBwZW5zIG9uIHdyaXRlCistLSB0ZXN0 IHRoYXQgb3ZlcmZsb3cgZXJyb3IgaGFwcGVucyBvbiByZWFkCiBJTlNFUlQgSU5UTyBndGVzdDEg VkFMVUVTICgyMDAwMDAwMDAwKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3QxOwogREVMRVRFIEZST00g Z3Rlc3QxIFdIRVJFIGEgPSAyMDAwMDAwMDAwOwpAQCAtMTkyLDcgKzE5Miw3IEBACiBUQUJMRSBn dGVzdGM7CiBEUk9QIFRBQkxFIGd0ZXN0cCBDQVNDQURFOwogCi0tLSB0ZXN0IHN0b3JlZCB1cGRh dGUKKy0tIHRlc3QgdXBkYXRlCiBDUkVBVEUgVEFCTEUgZ3Rlc3QzIChhIGludCwgYiBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIDpHZW5lcmF0ZWQpOwogSU5TRVJUIElOVE8gZ3Rlc3Qz IChhKSBWQUxVRVMgKDEpLCAoMiksICgzKSwgKE5VTEwpOwogU0VMRUNUICogRlJPTSBndGVzdDMg T1JERVIgQlkgYTsKQEAgLTI1NSwxMSArMjU1LDExIEBACiBDUkVBVEUgVEFCTEUgZ3Rlc3Q0ICgK ICAgICBhIGludCwKICAgICBiIGRvdWJsZV9pbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKGEgKiAy LCBhICogMykpIDpHZW5lcmF0ZWQKLSk7Ci1JTlNFUlQgSU5UTyBndGVzdDQgVkFMVUVTICgxKSwg KDYpOwotU0VMRUNUICogRlJPTSBndGVzdDQ7CispOyAgLS0gZmFpbHMsIHVzZXItZGVmaW5lZCB0 eXBlCistLUlOU0VSVCBJTlRPIGd0ZXN0NCBWQUxVRVMgKDEpLCAoNik7CistLVNFTEVDVCAqIEZS T00gZ3Rlc3Q0OwogCi1EUk9QIFRBQkxFIGd0ZXN0NDsKKy0tRFJPUCBUQUJMRSBndGVzdDQ7CiBE Uk9QIFRZUEUgZG91YmxlX2ludDsKIAogLS0gdXNpbmcgdGFibGVvaWQgaXMgYWxsb3dlZApAQCAt MjkzLDIwICsyOTMsMjEgQEAKIENSRUFURSBGVU5DVElPTiBnZjEoYSBpbnQpIFJFVFVSTlMgaW50 IEFTICQkIFNFTEVDVCBhICogMyAkJCBJTU1VVEFCTEUgTEFOR1VBR0UgU1FMOwogUkVWT0tFIEFM TCBPTiBGVU5DVElPTiBnZjEoaW50KSBGUk9NIFBVQkxJQzsKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0 MTIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo Z2YxKGIpKSA6R2VuZXJhdGVkKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MTIgVkFMVUVTICgxLCAxMCks ICgyLCAyMCk7Ci1HUkFOVCBTRUxFQ1QgKGEsIGMpLCBJTlNFUlQgT04gZ3Rlc3QxMiBUTyByZWdy ZXNzX3VzZXIxMTsKK0NSRUFURSBUQUJMRSBndGVzdDEyIChhIGludCBQUklNQVJZIEtFWSwgYiBp bnQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGdmMShiKSkgOkdlbmVyYXRlZCk7ICAtLSBm YWlscywgdXNlci1kZWZpbmVkIGZ1bmN0aW9uCistLUlOU0VSVCBJTlRPIGd0ZXN0MTIgVkFMVUVT ICgxLCAxMCksICgyLCAyMCk7CistLUdSQU5UIFNFTEVDVCAoYSwgYyksIElOU0VSVCBPTiBndGVz dDEyIFRPIHJlZ3Jlc3NfdXNlcjExOwogCiBTRVQgUk9MRSByZWdyZXNzX3VzZXIxMTsKIFNFTEVD VCBhLCBiIEZST00gZ3Rlc3QxMTsgIC0tIG5vdCBhbGxvd2VkCiBTRUxFQ1QgYSwgYyBGUk9NIGd0 ZXN0MTE7ICAtLSBhbGxvd2VkCiBTRUxFQ1QgZ2YxKDEwKTsgIC0tIG5vdCBhbGxvd2VkCi1JTlNF UlQgSU5UTyBndGVzdDEyIFZBTFVFUyAoMywgMzApLCAoNCwgNDApOyAgLS0gY3VycmVudGx5IG5v dCBhbGxvd2VkIGJlY2F1c2Ugb2YgZnVuY3Rpb24gcGVybWlzc2lvbnMsIHNob3VsZCBhcmd1YWJs eSBiZSBhbGxvd2VkCi1TRUxFQ1QgYSwgYyBGUk9NIGd0ZXN0MTI7ICAtLSBhbGxvd2VkIChkb2Vz IG5vdCBhY3R1YWxseSBpbnZva2UgdGhlIGZ1bmN0aW9uKQorLS1JTlNFUlQgSU5UTyBndGVzdDEy IFZBTFVFUyAoMywgMzApLCAoNCwgNDApOyAgLS0gYWxsb3dlZCAoZG9lcyBub3QgYWN0dWFsbHkg aW52b2tlIHRoZSBmdW5jdGlvbikKKy0tU0VMRUNUIGEsIGMgRlJPTSBndGVzdDEyOyAgLS0gY3Vy cmVudGx5IG5vdCBhbGxvd2VkIGJlY2F1c2Ugb2YgZnVuY3Rpb24gcGVybWlzc2lvbnMsIHNob3Vs ZCBhcmd1YWJseSBiZSBhbGxvd2VkCiBSRVNFVCBST0xFOwogCi1EUk9QIEZVTkNUSU9OIGdmMShp bnQpOyAgLS0gZmFpbAotRFJPUCBUQUJMRSBndGVzdDExLCBndGVzdDEyOworLS1EUk9QIEZVTkNU SU9OIGdmMShpbnQpOyAgLS0gZmFpbAorRFJPUCBUQUJMRSBndGVzdDExOworLS1EUk9QIFRBQkxF IGd0ZXN0MTI7CiBEUk9QIEZVTkNUSU9OIGdmMShpbnQpOwogRFJPUCBVU0VSIHJlZ3Jlc3NfdXNl cjExOwogCkBAIC0zMTUsOCArMzE2LDggQEAKIElOU0VSVCBJTlRPIGd0ZXN0MjAgKGEpIFZBTFVF UyAoMTApOyAgLS0gb2sKIElOU0VSVCBJTlRPIGd0ZXN0MjAgKGEpIFZBTFVFUyAoMzApOyAgLS0g dmlvbGF0ZXMgY29uc3RyYWludAogCi1BTFRFUiBUQUJMRSBndGVzdDIwIEFMVEVSIENPTFVNTiBi IFNFVCBFWFBSRVNTSU9OIEFTIChhICogMTAwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKLUFM VEVSIFRBQkxFIGd0ZXN0MjAgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAz KTsgIC0tIG9rCitBTFRFUiBUQUJMRSBndGVzdDIwIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNT SU9OIEFTIChhICogMTAwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQgKGN1cnJlbnRseSBub3Qg c3VwcG9ydGVkKQorQUxURVIgVEFCTEUgZ3Rlc3QyMCBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVT U0lPTiBBUyAoYSAqIDMpOyAgLS0gb2sgKGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkKQogCiBDUkVB VEUgVEFCTEUgZ3Rlc3QyMGEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMikgOkdlbmVyYXRlZCk7CiBJTlNFUlQgSU5UTyBndGVzdDIwYSAoYSkgVkFM VUVTICgxMCk7CkBAIC0zODYsODUgKzM4Nyw4NSBAQAogCiAtLSBpbmRleCBjb25zdHJhaW50cwog Q1JFQVRFIFRBQkxFIGd0ZXN0MjJhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSAvIDIpIDpHZW5lcmF0ZWQgVU5JUVVFKTsKLUlOU0VSVCBJTlRPIGd0ZXN0 MjJhIFZBTFVFUyAoMik7Ci1JTlNFUlQgSU5UTyBndGVzdDIyYSBWQUxVRVMgKDMpOwotSU5TRVJU IElOVE8gZ3Rlc3QyMmEgVkFMVUVTICg0KTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVT ICgyKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVTICgzKTsKKy0tSU5TRVJUIElOVE8g Z3Rlc3QyMmEgVkFMVUVTICg0KTsKIENSRUFURSBUQUJMRSBndGVzdDIyYiAoYSBpbnQsIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgLyAyKSA6R2VuZXJhdGVkLCBQUklNQVJZIEtFWSAoYSwg YikpOwotSU5TRVJUIElOVE8gZ3Rlc3QyMmIgVkFMVUVTICgyKTsKLUlOU0VSVCBJTlRPIGd0ZXN0 MjJiIFZBTFVFUyAoMik7CistLUlOU0VSVCBJTlRPIGd0ZXN0MjJiIFZBTFVFUyAoMik7CistLUlO U0VSVCBJTlRPIGd0ZXN0MjJiIFZBTFVFUyAoMik7CiAKIC0tIGluZGV4ZXMKIENSRUFURSBUQUJM RSBndGVzdDIyYyAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSA6R2Vu ZXJhdGVkKTsKLUNSRUFURSBJTkRFWCBndGVzdDIyY19iX2lkeCBPTiBndGVzdDIyYyAoYik7Ci1D UkVBVEUgSU5ERVggZ3Rlc3QyMmNfZXhwcl9pZHggT04gZ3Rlc3QyMmMgKChiICogMykpOwotQ1JF QVRFIElOREVYIGd0ZXN0MjJjX3ByZWRfaWR4IE9OIGd0ZXN0MjJjIChhKSBXSEVSRSBiID4gMDsK LVxkIGd0ZXN0MjJjCi0KLUlOU0VSVCBJTlRPIGd0ZXN0MjJjIFZBTFVFUyAoMSksICgyKSwgKDMp OwotU0VUIGVuYWJsZV9zZXFzY2FuIFRPIG9mZjsKLVNFVCBlbmFibGVfYml0bWFwc2NhbiBUTyBv ZmY7Ci1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiA9 IDQ7Ci1TRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgPSA0OwotRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0gNjsKLVNFTEVDVCAqIEZS T00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSA2OwotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1Qg KiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKLVNFTEVDVCAqIEZST00gZ3Rl c3QyMmMgV0hFUkUgYSA9IDEgQU5EIGIgPiAwOwotCi1BTFRFUiBUQUJMRSBndGVzdDIyYyBBTFRF UiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDQpOwotQU5BTFlaRSBndGVzdDIyYzsK LUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiID0gODsK LVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiA9IDg7Ci1FWFBMQUlOIChDT1NUUyBPRkYp IFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSAxMjsKLVNFTEVDVCAqIEZST00g Z3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSAxMjsKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICog RlJPTSBndGVzdDIyYyBXSEVSRSBhID0gMSBBTkQgYiA+IDA7Ci1TRUxFQ1QgKiBGUk9NIGd0ZXN0 MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKLVJFU0VUIGVuYWJsZV9zZXFzY2FuOwotUkVTRVQg ZW5hYmxlX2JpdG1hcHNjYW47CistLUNSRUFURSBJTkRFWCBndGVzdDIyY19iX2lkeCBPTiBndGVz dDIyYyAoYik7CistLUNSRUFURSBJTkRFWCBndGVzdDIyY19leHByX2lkeCBPTiBndGVzdDIyYyAo KGIgKiAzKSk7CistLUNSRUFURSBJTkRFWCBndGVzdDIyY19wcmVkX2lkeCBPTiBndGVzdDIyYyAo YSkgV0hFUkUgYiA+IDA7CistLVxkIGd0ZXN0MjJjCisKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMmMg VkFMVUVTICgxKSwgKDIpLCAoMyk7CistLVNFVCBlbmFibGVfc2Vxc2NhbiBUTyBvZmY7CistLVNF VCBlbmFibGVfYml0bWFwc2NhbiBUTyBvZmY7CistLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNU ICogRlJPTSBndGVzdDIyYyBXSEVSRSBiID0gNDsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIyYyBX SEVSRSBiID0gNDsKKy0tRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJj IFdIRVJFIGIgKiAzID0gNjsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiICogMyA9 IDY7CistLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBh ID0gMSBBTkQgYiA+IDA7CistLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYSA9IDEgQU5E IGIgPiAwOworCistLUFMVEVSIFRBQkxFIGd0ZXN0MjJjIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBS RVNTSU9OIEFTIChhICogNCk7CistLUFOQUxZWkUgZ3Rlc3QyMmM7CistLUVYUExBSU4gKENPU1RT IE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiID0gODsKKy0tU0VMRUNUICogRlJP TSBndGVzdDIyYyBXSEVSRSBiID0gODsKKy0tRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBG Uk9NIGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0gMTI7CistLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMg V0hFUkUgYiAqIDMgPSAxMjsKKy0tRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0 ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIyYyBX SEVSRSBhID0gMSBBTkQgYiA+IDA7CistLVJFU0VUIGVuYWJsZV9zZXFzY2FuOworLS1SRVNFVCBl bmFibGVfYml0bWFwc2NhbjsKIAogLS0gZm9yZWlnbiBrZXlzCiBDUkVBVEUgVEFCTEUgZ3Rlc3Qy M2EgKHggaW50IFBSSU1BUlkgS0VZLCB5IGludCk7Ci1JTlNFUlQgSU5UTyBndGVzdDIzYSBWQUxV RVMgKDEsIDExKSwgKDIsIDIyKSwgKDMsIDMzKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyM2EgVkFM VUVTICgxLCAxMSksICgyLCAyMiksICgzLCAzMyk7CiAKIENSRUFURSBUQUJMRSBndGVzdDIzeCAo YSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSA6R2Vu ZXJhdGVkIFJFRkVSRU5DRVMgZ3Rlc3QyM2EgKHgpIE9OIFVQREFURSBDQVNDQURFKTsgIC0tIGVy cm9yCiBDUkVBVEUgVEFCTEUgZ3Rlc3QyM3ggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZCBSRUZFUkVOQ0VTIGd0ZXN0MjNhICh4 KSBPTiBERUxFVEUgU0VUIE5VTEwpOyAgLS0gZXJyb3IKIAogQ1JFQVRFIFRBQkxFIGd0ZXN0MjNi IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIDpH ZW5lcmF0ZWQgUkVGRVJFTkNFUyBndGVzdDIzYSAoeCkpOwotXGQgZ3Rlc3QyM2IKKy0tXGQgZ3Rl c3QyM2IKIAotSU5TRVJUIElOVE8gZ3Rlc3QyM2IgVkFMVUVTICgxKTsgIC0tIG9rCi1JTlNFUlQg SU5UTyBndGVzdDIzYiBWQUxVRVMgKDUpOyAgLS0gZXJyb3IKLUFMVEVSIFRBQkxFIGd0ZXN0MjNi IEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogNSk7IC0tIGVycm9yCi1BTFRF UiBUQUJMRSBndGVzdDIzYiBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDEp OyAtLSBvaworLS1JTlNFUlQgSU5UTyBndGVzdDIzYiBWQUxVRVMgKDEpOyAgLS0gb2sKKy0tSU5T RVJUIElOVE8gZ3Rlc3QyM2IgVkFMVUVTICg1KTsgIC0tIGVycm9yCistLUFMVEVSIFRBQkxFIGd0 ZXN0MjNiIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogNSk7IC0tIGVycm9y CistLUFMVEVSIFRBQkxFIGd0ZXN0MjNiIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFT IChhICogMSk7IC0tIG9rCiAKLURST1AgVEFCTEUgZ3Rlc3QyM2I7Ci1EUk9QIFRBQkxFIGd0ZXN0 MjNhOworLS1EUk9QIFRBQkxFIGd0ZXN0MjNiOworLS1EUk9QIFRBQkxFIGd0ZXN0MjNhOwogCiBD UkVBVEUgVEFCTEUgZ3Rlc3QyM3AgKHggaW50LCB5IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4 ICogMikgOkdlbmVyYXRlZCwgUFJJTUFSWSBLRVkgKHkpKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjNw IFZBTFVFUyAoMSksICgyKSwgKDMpOworLS1JTlNFUlQgSU5UTyBndGVzdDIzcCBWQUxVRVMgKDEp LCAoMiksICgzKTsKIAogQ1JFQVRFIFRBQkxFIGd0ZXN0MjNxIChhIGludCBQUklNQVJZIEtFWSwg YiBpbnQgUkVGRVJFTkNFUyBndGVzdDIzcCAoeSkpOwotSU5TRVJUIElOVE8gZ3Rlc3QyM3EgVkFM VUVTICgxLCAyKTsgIC0tIG9rCi1JTlNFUlQgSU5UTyBndGVzdDIzcSBWQUxVRVMgKDIsIDUpOyAg LS0gZXJyb3IKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyM3EgVkFMVUVTICgxLCAyKTsgIC0tIG9rCist LUlOU0VSVCBJTlRPIGd0ZXN0MjNxIFZBTFVFUyAoMiwgNSk7ICAtLSBlcnJvcgogCiAtLSBkb21h aW5zCiBDUkVBVEUgRE9NQUlOIGd0ZXN0ZG9tYWluMSBBUyBpbnQgQ0hFQ0sgKFZBTFVFIDwgMTAp OwogQ1JFQVRFIFRBQkxFIGd0ZXN0MjQgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGd0ZXN0ZG9tYWlu MSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZCk7Ci1JTlNFUlQgSU5UTyBn dGVzdDI0IChhKSBWQUxVRVMgKDQpOyAgLS0gb2sKLUlOU0VSVCBJTlRPIGd0ZXN0MjQgKGEpIFZB TFVFUyAoNik7ICAtLSBlcnJvcgorLS1JTlNFUlQgSU5UTyBndGVzdDI0IChhKSBWQUxVRVMgKDQp OyAgLS0gb2sKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyNCAoYSkgVkFMVUVTICg2KTsgIC0tIGVycm9y CiBDUkVBVEUgVFlQRSBndGVzdGRvbWFpbjFyYW5nZSBBUyByYW5nZSAoc3VidHlwZSA9IGd0ZXN0 ZG9tYWluMSk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QyNHIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGd0 ZXN0ZG9tYWluMXJhbmdlIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGd0ZXN0ZG9tYWluMXJhbmdlKGEs IGEgKyA1KSkgOkdlbmVyYXRlZCk7Ci1JTlNFUlQgSU5UTyBndGVzdDI0ciAoYSkgVkFMVUVTICg0 KTsgIC0tIG9rCi1JTlNFUlQgSU5UTyBndGVzdDI0ciAoYSkgVkFMVUVTICg2KTsgIC0tIGVycm9y CistLUlOU0VSVCBJTlRPIGd0ZXN0MjRyIChhKSBWQUxVRVMgKDQpOyAgLS0gb2sKKy0tSU5TRVJU IElOVE8gZ3Rlc3QyNHIgKGEpIFZBTFVFUyAoNik7ICAtLSBlcnJvcgogCiBDUkVBVEUgVEFCTEUg Z3Rlc3QyNGF0IChhIGludCBQUklNQVJZIEtFWSk7Ci1BTFRFUiBUQUJMRSBndGVzdDI0YXQgQURE IENPTFVNTiBiIGd0ZXN0ZG9tYWluMSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgOkdlbmVy YXRlZDsgIC0tIG9rCitBTFRFUiBUQUJMRSBndGVzdDI0YXQgQUREIENPTFVNTiBiIGd0ZXN0ZG9t YWluMSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZDsgIC0tIGVycm9yCiBD UkVBVEUgVEFCTEUgZ3Rlc3QyNGF0YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAyKSA6R2VuZXJhdGVkKTsKLUFMVEVSIFRBQkxFIGd0ZXN0MjRhdGEg QUxURVIgQ09MVU1OIGIgVFlQRSBndGVzdGRvbWFpbjE7ICAtLSBvaworQUxURVIgVEFCTEUgZ3Rl c3QyNGF0YSBBTFRFUiBDT0xVTU4gYiBUWVBFIGd0ZXN0ZG9tYWluMTsgIC0tIGVycm9yCiAKIENS RUFURSBET01BSU4gZ3Rlc3Rkb21haW5ubiBBUyBpbnQgQ0hFQ0sgKFZBTFVFIElTIE5PVCBOVUxM KTsKIENSRUFURSBUQUJMRSBndGVzdDI0bm4gKGEgaW50LCBiIGd0ZXN0ZG9tYWlubm4gR0VORVJB VEVEIEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQpOwotSU5TRVJUIElOVE8gZ3Rlc3QyNG5u IChhKSBWQUxVRVMgKDQpOyAgLS0gb2sKLUlOU0VSVCBJTlRPIGd0ZXN0MjRubiAoYSkgVkFMVUVT IChOVUxMKTsgIC0tIGVycm9yCistLUlOU0VSVCBJTlRPIGd0ZXN0MjRubiAoYSkgVkFMVUVTICg0 KTsgIC0tIG9rCistLUlOU0VSVCBJTlRPIGd0ZXN0MjRubiAoYSkgVkFMVUVTIChOVUxMKTsgIC0t IGVycm9yCiAKIC0tIHR5cGVkIHRhYmxlcyAoY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQpCiBDUkVB VEUgVFlQRSBndGVzdF90eXBlIEFTIChmMSBpbnRlZ2VyLCBmMiB0ZXh0LCBmMyBiaWdpbnQpOwpA QCAtNTE3LDcgKzUxOCw3IEBACiBJTlNFUlQgSU5UTyBndGVzdF9wYXJlbnQgKGYxLCBmMikgVkFM VUVTICgnMjAxNi0wOC0xNScsIDMpOwogU0VMRUNUIHRhYmxlb2lkOjpyZWdjbGFzcywgKiBGUk9N IGd0ZXN0X3BhcmVudCBPUkRFUiBCWSAxLCAyLCAzOwogU0VMRUNUIHRhYmxlb2lkOjpyZWdjbGFz cywgKiBGUk9NIGd0ZXN0X2NoaWxkIE9SREVSIEJZIDEsIDIsIDM7Ci1TRUxFQ1QgdGFibGVvaWQ6 OnJlZ2NsYXNzLCAqIEZST00gZ3Rlc3RfY2hpbGQyIE9SREVSIEJZIDEsIDIsIDM7CitTRUxFQ1Qg dGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gZ3Rlc3RfY2hpbGQyIE9SREVSIEJZIDEsIDIsIDM7 ICAtLSB1c2VzIGNoaWxkJ3MgZ2VuZXJhdGlvbiBleHByZXNzaW9uLCBub3QgcGFyZW50J3MKIFNF TEVDVCB0YWJsZW9pZDo6cmVnY2xhc3MsICogRlJPTSBndGVzdF9jaGlsZDMgT1JERVIgQlkgMSwg MiwgMzsKIFVQREFURSBndGVzdF9wYXJlbnQgU0VUIGYxID0gZjEgKyA2MCBXSEVSRSBmMiA9IDE7 CiBTRUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gZ3Rlc3RfcGFyZW50IE9SREVSIEJZ IDEsIDIsIDM7CkBAIC02MTEsMTUgKzYxMiwxNSBAQAogU0VMRUNUICogRlJPTSBndGVzdDI5Owog XGQgZ3Rlc3QyOQogCi1BTFRFUiBUQUJMRSBndGVzdDI5IEFMVEVSIENPTFVNTiBiIERST1AgRVhQ UkVTU0lPTjsKK0FMVEVSIFRBQkxFIGd0ZXN0MjkgQUxURVIgQ09MVU1OIGIgRFJPUCBFWFBSRVNT SU9OOyAgLS0gbm90IHN1cHBvcnRlZAogSU5TRVJUIElOVE8gZ3Rlc3QyOSAoYSkgVkFMVUVTICg1 KTsKIElOU0VSVCBJTlRPIGd0ZXN0MjkgKGEsIGIpIFZBTFVFUyAoNiwgNjYpOwogU0VMRUNUICog RlJPTSBndGVzdDI5OwogXGQgZ3Rlc3QyOQogCiAtLSBjaGVjayB0aGF0IGRlcGVuZGVuY2llcyBi ZXR3ZWVuIGNvbHVtbnMgaGF2ZSBhbHNvIGJlZW4gcmVtb3ZlZAotQUxURVIgVEFCTEUgZ3Rlc3Qy OSBEUk9QIENPTFVNTiBhOyAgLS0gc2hvdWxkIG5vdCBkcm9wIGIKLVxkIGd0ZXN0MjkKKy0tQUxU RVIgVEFCTEUgZ3Rlc3QyOSBEUk9QIENPTFVNTiBhOyAgLS0gc2hvdWxkIG5vdCBkcm9wIGIKKy0t XGQgZ3Rlc3QyOQogCiAtLSB3aXRoIGluaGVyaXRhbmNlCiBDUkVBVEUgVEFCTEUgZ3Rlc3QzMCAo CkBAIC02NDYsNyArNjQ3LDcgQEAKIENSRUFURSBUQUJMRSBndGVzdDMxXzIgKHggaW50LCB5IGd0 ZXN0MzFfMSk7CiBBTFRFUiBUQUJMRSBndGVzdDMxXzEgQUxURVIgQ09MVU1OIGIgVFlQRSB2YXJj aGFyOyAgLS0gZmFpbHMKIAotLS0gYnVnICMxODk3MDogdGhlc2UgY2FzZXMgYXJlIHVuc3VwcG9y dGVkLCBidXQgbWFrZSBzdXJlIHRoZXkgZmFpbCBjbGVhbmx5CistLSBidWcgIzE4OTcwCiBBTFRF UiBUQUJMRSBndGVzdDMxXzIgQUREIENPTlNUUkFJTlQgY2MgQ0hFQ0sgKCh5KS5iIElTIE5PVCBO VUxMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MzFfMSBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lP TiBBUyAoJ2hlbGxvMScpOwogQUxURVIgVEFCTEUgZ3Rlc3QzMV8yIERST1AgQ09OU1RSQUlOVCBj YzsKQEAgLTc5NywzICs3OTgsOTEgQEAKIAogLS0gc2FuaXR5IGNoZWNrIG9mIHN5c3RlbSBjYXRh bG9nCiBTRUxFQ1QgYXR0cmVsaWQsIGF0dG5hbWUsIGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJp YnV0ZSBXSEVSRSBhdHRnZW5lcmF0ZWQgTk9UIElOICgnJywgJ3MnLCAndicpOworCisKKy0tCist LSB0ZXN0IHRoZSBleHBhbnNpb24gb2YgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucworLS0KKy0t IHRoZXNlIHRlc3RzIGFyZSBzcGVjaWZpYyB0byBnZW5lcmF0ZWRfdmlydHVhbC5zcWwKKy0tCisK Ky0tIHVzaW5nIHVzZXItZGVmaW5lZCB0eXBlIG5vdCB5ZXQgc3VwcG9ydGVkCitDUkVBVEUgVEFC TEUgZ3Rlc3QyNHh4eCAoYSBndGVzdGRvbWFpbjEsIGIgZ3Rlc3Rkb21haW4xLCBjIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChncmVhdGVzdChhLCBiKSkgOkdlbmVyYXRlZCk7ICAtLSBlcnJvcgor CitjcmVhdGUgdGFibGUgZ3Rlc3QzMiAoCisgIGEgaW50IHByaW1hcnkga2V5LAorICBiIGludCBn ZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMiksCisgIGMgaW50IGdlbmVyYXRlZCBhbHdheXMgYXMg KDEwICsgMTApLAorICBkIGludCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChjb2FsZXNjZShhLCAxMDAp KSwKKyAgZSBpbnQKKyk7CisKK2luc2VydCBpbnRvIGd0ZXN0MzIgdmFsdWVzICgxKSwgKDIpOwor YW5hbHl6ZSBndGVzdDMyOworCistLSBFbnN1cmUgdGhhdCBudWxsaW5ncmVsIGJpdHMgYXJlIHBy b3BhZ2F0ZWQgaW50byB0aGUgZ2VuZXJhdGlvbiBleHByZXNzaW9ucworZXhwbGFpbiAoY29zdHMg b2ZmKQorc2VsZWN0IHN1bSh0Mi5iKSBvdmVyIChwYXJ0aXRpb24gYnkgdDIuYSksCisgICAgICAg c3VtKHQyLmMpIG92ZXIgKHBhcnRpdGlvbiBieSB0Mi5hKSwKKyAgICAgICBzdW0odDIuZCkgb3Zl ciAocGFydGl0aW9uIGJ5IHQyLmEpCitmcm9tIGd0ZXN0MzIgYXMgdDEgbGVmdCBqb2luIGd0ZXN0 MzIgYXMgdDIgb24gKHQxLmEgPSB0Mi5hKQorb3JkZXIgYnkgdDEuYTsKKworc2VsZWN0IHN1bSh0 Mi5iKSBvdmVyIChwYXJ0aXRpb24gYnkgdDIuYSksCisgICAgICAgc3VtKHQyLmMpIG92ZXIgKHBh cnRpdGlvbiBieSB0Mi5hKSwKKyAgICAgICBzdW0odDIuZCkgb3ZlciAocGFydGl0aW9uIGJ5IHQy LmEpCitmcm9tIGd0ZXN0MzIgYXMgdDEgbGVmdCBqb2luIGd0ZXN0MzIgYXMgdDIgb24gKHQxLmEg PSB0Mi5hKQorb3JkZXIgYnkgdDEuYTsKKworLS0gRW5zdXJlIHRoYXQgb3V0ZXItam9pbiByZW1v dmFsIGZ1bmN0aW9ucyBjb3JyZWN0bHkgYWZ0ZXIgdGhlIHByb3BhZ2F0aW9uIG9mIG51bGxpbmdy ZWwgYml0cworZXhwbGFpbiAoY29zdHMgb2ZmKQorc2VsZWN0IHQxLmEgZnJvbSBndGVzdDMyIHQx IGxlZnQgam9pbiBndGVzdDMyIHQyIG9uIHQxLmEgPSB0Mi5hCit3aGVyZSBjb2FsZXNjZSh0Mi5i LCAxKSA9IDI7CisKK3NlbGVjdCB0MS5hIGZyb20gZ3Rlc3QzMiB0MSBsZWZ0IGpvaW4gZ3Rlc3Qz MiB0MiBvbiB0MS5hID0gdDIuYQord2hlcmUgY29hbGVzY2UodDIuYiwgMSkgPSAyOworCitleHBs YWluIChjb3N0cyBvZmYpCitzZWxlY3QgdDEuYSBmcm9tIGd0ZXN0MzIgdDEgbGVmdCBqb2luIGd0 ZXN0MzIgdDIgb24gdDEuYSA9IHQyLmEKK3doZXJlIGNvYWxlc2NlKHQyLmIsIDEpID0gMiBvciB0 MS5hIGlzIG51bGw7CisKK3NlbGVjdCB0MS5hIGZyb20gZ3Rlc3QzMiB0MSBsZWZ0IGpvaW4gZ3Rl c3QzMiB0MiBvbiB0MS5hID0gdDIuYQord2hlcmUgY29hbGVzY2UodDIuYiwgMSkgPSAyIG9yIHQx LmEgaXMgbnVsbDsKKworLS0gRW5zdXJlIHRoYXQgdGhlIGdlbmVyYXRpb24gZXhwcmVzc2lvbnMg YXJlIHdyYXBwZWQgaW50byBQSFZzIGlmIG5lZWRlZAorZXhwbGFpbiAodmVyYm9zZSwgY29zdHMg b2ZmKQorc2VsZWN0IHQyLiogZnJvbSBndGVzdDMyIHQxIGxlZnQgam9pbiBndGVzdDMyIHQyIG9u IGZhbHNlOworc2VsZWN0IHQyLiogZnJvbSBndGVzdDMyIHQxIGxlZnQgam9pbiBndGVzdDMyIHQy IG9uIGZhbHNlOworCitleHBsYWluICh2ZXJib3NlLCBjb3N0cyBvZmYpCitzZWxlY3QgKiBmcm9t IGd0ZXN0MzIgdCBncm91cCBieSBncm91cGluZyBzZXRzIChhLCBiLCBjLCBkLCBlKSBoYXZpbmcg YyA9IDIwOworc2VsZWN0ICogZnJvbSBndGVzdDMyIHQgZ3JvdXAgYnkgZ3JvdXBpbmcgc2V0cyAo YSwgYiwgYywgZCwgZSkgaGF2aW5nIGMgPSAyMDsKKworLS0gRW5zdXJlIHRoYXQgdGhlIHZpcnR1 YWwgZ2VuZXJhdGVkIGNvbHVtbnMgaW4gQUxURVIgQ09MVU1OIFRZUEUgVVNJTkcgZXhwcmVzc2lv biBhcmUgZXhwYW5kZWQKK2FsdGVyIHRhYmxlIGd0ZXN0MzIgYWx0ZXIgY29sdW1uIGUgdHlwZSBi aWdpbnQgdXNpbmcgYjsKKworLS0gRW5zdXJlIHRoYXQgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1u IHJlZmVyZW5jZXMgd2l0aGluIFN1YkxpbmtzIHRoYXQgc2hvdWxkCistLSBiZSB0cmFuc2Zvcm1l ZCBpbnRvIGpvaW5zIGNhbiBnZXQgZXhwYW5kZWQKK2V4cGxhaW4gKGNvc3RzIG9mZikKK3NlbGVj dCAxIGZyb20gZ3Rlc3QzMiB0MSB3aGVyZSBleGlzdHMKKyAgKHNlbGVjdCAxIGZyb20gZ3Rlc3Qz MiB0MiB3aGVyZSB0MS5hID4gdDIuYSBhbmQgdDIuYiA9IDIpOworCitzZWxlY3QgMSBmcm9tIGd0 ZXN0MzIgdDEgd2hlcmUgZXhpc3RzCisgIChzZWxlY3QgMSBmcm9tIGd0ZXN0MzIgdDIgd2hlcmUg dDEuYSA+IHQyLmEgYW5kIHQyLmIgPSAyKTsKKworZHJvcCB0YWJsZSBndGVzdDMyOworCistLSBF bnN1cmUgdGhhdCB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGluIGNvbnN0cmFpbnQgZXhwcmVz c2lvbnMgYXJlIGV4cGFuZGVkCitjcmVhdGUgdGFibGUgZ3Rlc3QzMyAoYSBpbnQsIGIgaW50IGdl bmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKSB2aXJ0dWFsIG5vdCBudWxsLCBjaGVjayAoYiA+IDEw KSk7CitzZXQgY29uc3RyYWludF9leGNsdXNpb24gdG8gb247CisKKy0tIHNob3VsZCBnZXQgYSBk dW1teSBSZXN1bHQsIG5vdCBhIHNlcSBzY2FuCitleHBsYWluIChjb3N0cyBvZmYpCitzZWxlY3Qg KiBmcm9tIGd0ZXN0MzMgd2hlcmUgYiA8IDEwOworCistLSBzaG91bGQgZ2V0IGEgZHVtbXkgUmVz dWx0LCBub3QgYSBzZXEgc2NhbgorZXhwbGFpbiAoY29zdHMgb2ZmKQorc2VsZWN0ICogZnJvbSBn dGVzdDMzIHdoZXJlIGIgaXMgbnVsbDsKKworcmVzZXQgY29uc3RyYWludF9leGNsdXNpb247Citk cm9wIHRhYmxlIGd0ZXN0MzM7Cg== --000000000000dd17af0640088cbf Content-Type: application/octet-stream; name="0001-Try-to-limit-STORED-vs-VIRTUAL-diff-to-just-the-firs.patch.nocfbot" Content-Disposition: attachment; filename="0001-Try-to-limit-STORED-vs-VIRTUAL-diff-to-just-the-firs.patch.nocfbot" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mg6v4emg1 RnJvbSBjMzlmZWY1ODA2ZDA0NzQzODU4NzgyZjMwOGM5Y2FiYTcxODZjM2Y2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWluYXRlZGNv bXB1dGluZy5jb20+CkRhdGU6IFN1biwgMjEgU2VwIDIwMjUgMjA6MTU6NDMgLTA3MDAKU3ViamVj dDogW1BBVENIXSBUcnkgdG8gbGltaXQgU1RPUkVEIHZzIFZJUlRVQUwgZGlmZiB0byBqdXN0IHRo ZSBmaXJzdCBmZXcKIGxpbmVzCgotLS0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZF9z dG9yZWQub3V0ICAgICB8IDE4MSArKysrKysrKy0tLS0tLS0tLQogLi4uL3JlZ3Jlc3MvZXhwZWN0 ZWQvZ2VuZXJhdGVkX3ZpcnR1YWwub3V0ICAgIHwgMTgzICsrKysrKysrKy0tLS0tLS0tLQogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3N0b3JlZC5zcWwgICAgIHwgMTgxICsrKysrKysr LS0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9nZW5lcmF0ZWRfdmlydHVhbC5zcWwgICAg fCAxODMgKysrKysrKysrLS0tLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDM3MCBpbnNlcnRpb25z KCspLCAzNTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9nZW5lcmF0ZWRfc3RvcmVkLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2Vu ZXJhdGVkX3N0b3JlZC5vdXQKaW5kZXggNmM3MDM1M2NkOTcuLjc0N2I4OThhNDhlIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZF9zdG9yZWQub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3N0b3JlZC5vdXQKQEAgLTEsOSAr MSwxMiBAQAogLS0ga2VlcCB0aGVzZSB0ZXN0cyBhbGlnbmVkIHdpdGggZ2VuZXJhdGVkX3ZpcnR1 YWwuc3FsCistLSBXZSBjYW4gdXNlIHBzcWwgdmFyaWFibGVzIHRvIGtlZXAgdGhlIGRpZmYgdG8g YSBtaW5pbXVtLgorXHNldCBHZW5lcmF0ZWQgJ1NUT1JFRCcKK1xzZXQgT3RoZXIgJ1ZJUlRVQUwn CiBDUkVBVEUgU0NIRU1BIGdlbmVyYXRlZF9zdG9yZWRfdGVzdHM7CiBHUkFOVCBVU0FHRSBPTiBT Q0hFTUEgZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cyBUTyBQVUJMSUM7CiBTRVQgc2VhcmNoX3BhdGgg PSBnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MCAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKDU1KSBTVE9SRUQpOwotQ1JFQVRF IFRBQkxFIGd0ZXN0MSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MCAoYSBpbnQgUFJJTUFSWSBL RVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKDU1KSA6R2VuZXJhdGVkKTsKK0NSRUFURSBU QUJMRSBndGVzdDEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChhICogMikgOkdlbmVyYXRlZCk7CiBTRUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGNv bHVtbl9kZWZhdWx0LCBpc19udWxsYWJsZSwgaXNfZ2VuZXJhdGVkLCBnZW5lcmF0aW9uX2V4cHJl c3Npb24gRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1ucyBXSEVSRSB0YWJsZV9zY2hlbWEg PSAnZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cycgT1JERVIgQlkgMSwgMjsKICB0YWJsZV9uYW1lIHwg Y29sdW1uX25hbWUgfCBjb2x1bW5fZGVmYXVsdCB8IGlzX251bGxhYmxlIHwgaXNfZ2VuZXJhdGVk IHwgZ2VuZXJhdGlvbl9leHByZXNzaW9uIAogLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCkBAIC0yOSw3MyArMzIsNzMgQEAgSW5kZXhlczoKICAgICAiZ3Rlc3QxX3BrZXki IFBSSU1BUlkgS0VZLCBidHJlZSAoYSkKIAogLS0gZHVwbGljYXRlIGdlbmVyYXRlZAotQ1JFQVRF IFRBQkxFIGd0ZXN0X2Vycl8xIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDIpIFNUT1JFRCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMykgU1RPUkVE KTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfMSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSA6R2VuZXJhdGVkIEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgKiAzKSA6R2VuZXJhdGVkKTsKIEVSUk9SOiAgbXVsdGlwbGUgZ2VuZXJhdGlvbiBjbGF1c2Vz IHNwZWNpZmllZCBmb3IgY29sdW1uICJiIiBvZiB0YWJsZSAiZ3Rlc3RfZXJyXzEiCiBMSU5FIDE6 IC4uLkFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQgR0VO RVJBVEVEIC4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KIC0tIHJlZmVyZW5jZXMgdG8gb3RoZXIgZ2VuZXJhdGVkIGNvbHVt bnMsIGluY2x1ZGluZyBzZWxmLXJlZmVyZW5jZXMKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfMmEg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgU1RP UkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfMmEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgOkdlbmVyYXRlZCk7CiBFUlJPUjogIGNhbm5v dCB1c2UgZ2VuZXJhdGVkIGNvbHVtbiAiYiIgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lv bgogTElORSAxOiAuLi4yYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGIgKiAyKSBTVE8uLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBERVRBSUw6ICBBIGdlbmVyYXRlZCBjb2x1bW4g Y2Fubm90IHJlZmVyZW5jZSBhbm90aGVyIGdlbmVyYXRlZCBjb2x1bW4uCi1DUkVBVEUgVEFCTEUg Z3Rlc3RfZXJyXzJiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYSAqIDIpIFNUT1JFRCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDMpIFNUT1JF RCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzJiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQsIGMgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGIgKiAzKSA6R2VuZXJhdGVkKTsKIEVSUk9SOiAgY2Fubm90IHVzZSBnZW5lcmF0 ZWQgY29sdW1uICJiIiBpbiBjb2x1bW4gZ2VuZXJhdGlvbiBleHByZXNzaW9uCiBMSU5FIDE6IC4u LkFZUyBBUyAoYSAqIDIpIFNUT1JFRCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDMp IFNUTy4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KIERFVEFJTDogIEEgZ2VuZXJhdGVkIGNvbHVtbiBjYW5ub3QgcmVmZXJl bmNlIGFub3RoZXIgZ2VuZXJhdGVkIGNvbHVtbi4KIC0tIGEgd2hvbGUtcm93IHZhciBpcyBhIHNl bGYtcmVmZXJlbmNlIG9uIHN0ZXJvaWRzLCBzbyBkaXNhbGxvdyB0aGF0IHRvbwogQ1JFQVRFIFRB QkxFIGd0ZXN0X2Vycl8yYyAoYSBpbnQgUFJJTUFSWSBLRVksCi0gICAgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAobnVtX251bGxzKGd0ZXN0X2Vycl8yYykpIFNUT1JFRCk7CisgICAgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAobnVtX251bGxzKGd0ZXN0X2Vycl8yYykpIDpHZW5lcmF0ZWQp OwogRVJST1I6ICBjYW5ub3QgdXNlIHdob2xlLXJvdyB2YXJpYWJsZSBpbiBjb2x1bW4gZ2VuZXJh dGlvbiBleHByZXNzaW9uCiBMSU5FIDI6ICAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChu dW1fbnVsbHMoZ3Rlc3RfZXJyXzJjKSkgU1RPUi4uLgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIFRoaXMgd291bGQgY2F1c2UgdGhl IGdlbmVyYXRlZCBjb2x1bW4gdG8gZGVwZW5kIG9uIGl0cyBvd24gdmFsdWUuCiAtLSBpbnZhbGlk IHJlZmVyZW5jZQotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8zIChhIGludCBQUklNQVJZIEtFWSwg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYyAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUg Z3Rlc3RfZXJyXzMgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChjICogMikgOkdlbmVyYXRlZCk7CiBFUlJPUjogIGNvbHVtbiAiYyIgZG9lcyBub3QgZXhpc3QK IExJTkUgMTogLi4uXzMgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChjICogMikgU1RPLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0gZ2VuZXJhdGlvbiBleHByZXNzaW9uIG11c3Qg YmUgaW1tdXRhYmxlCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzQgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGRvdWJsZSBwcmVjaXNpb24gR0VORVJBVEVEIEFMV0FZUyBBUyAocmFuZG9tKCkpIFNUT1JF RCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzQgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGRvdWJs ZSBwcmVjaXNpb24gR0VORVJBVEVEIEFMV0FZUyBBUyAocmFuZG9tKCkpIDpHZW5lcmF0ZWQpOwog RVJST1I6ICBnZW5lcmF0aW9uIGV4cHJlc3Npb24gaXMgbm90IGltbXV0YWJsZQogLS0gLi4uIGJ1 dCBiZSBzdXJlIHRoYXQgdGhlIGltbXV0YWJpbGl0eSB0ZXN0IGlzIGFjY3VyYXRlCi1DUkVBVEUg VEFCTEUgZ3Rlc3QyIChhIGludCwgYiB0ZXh0IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgfHwgJyBz ZWMnKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MiAoYSBpbnQsIGIgdGV4dCBHRU5FUkFU RUQgQUxXQVlTIEFTIChhIHx8ICcgc2VjJykgOkdlbmVyYXRlZCk7CiBEUk9QIFRBQkxFIGd0ZXN0 MjsKIC0tIGNhbm5vdCBoYXZlIGRlZmF1bHQvaWRlbnRpdHkgYW5kIGdlbmVyYXRlZAotQ1JFQVRF IFRBQkxFIGd0ZXN0X2Vycl81YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IERFRkFVTFQgNSBH RU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9l cnJfNWEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBERUZBVUxUIDUgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQpOwogRVJST1I6ICBib3RoIGRlZmF1bHQgYW5kIGdlbmVy YXRpb24gZXhwcmVzc2lvbiBzcGVjaWZpZWQgZm9yIGNvbHVtbiAiYiIgb2YgdGFibGUgImd0ZXN0 X2Vycl81YSIKIExJTkUgMTogLi4uIGd0ZXN0X2Vycl81YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50IERFRkFVTFQgNSBHRU5FUkFURUQgLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vy cl81YiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgaWRlbnRp dHkgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rl c3RfZXJyXzViIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyBp ZGVudGl0eSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZCk7CiBFUlJPUjog IGJvdGggaWRlbnRpdHkgYW5kIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBzcGVjaWZpZWQgZm9yIGNv bHVtbiAiYiIgb2YgdGFibGUgImd0ZXN0X2Vycl81YiIKIExJTkUgMTogLi4udCBQUklNQVJZIEtF WSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyBpZGVudGl0eSBHRU5FUkFURUQgLi4uCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgogLS0gcmVmZXJlbmNlIHRvIHN5c3RlbSBjb2x1bW4gbm90IGFsbG93ZWQgaW4gZ2VuZXJhdGVk IGNvbHVtbgogLS0gKGV4Y2VwdCB0YWJsZW9pZCwgd2hpY2ggd2UgdGVzdCBiZWxvdykKLUNSRUFU RSBUQUJMRSBndGVzdF9lcnJfNmEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGJvb2wgR0VORVJBVEVE IEFMV0FZUyBBUyAoeG1pbiA8PiAzNykgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJf NmEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGJvb2wgR0VORVJBVEVEIEFMV0FZUyBBUyAoeG1pbiA8 PiAzNykgOkdlbmVyYXRlZCk7CiBFUlJPUjogIGNhbm5vdCB1c2Ugc3lzdGVtIGNvbHVtbiAieG1p biIgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lvbgogTElORSAxOiAuLi5hIChhIGludCBQ UklNQVJZIEtFWSwgYiBib29sIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHhtaW4gPD4gMzcuLi4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCiAtLSB2YXJpb3VzIHByb2hpYml0ZWQgY29uc3RydWN0cwotQ1JFQVRFIFRBQkxFIGd0ZXN0 X2Vycl83YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGF2 ZyhhKSkgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfN2EgKGEgaW50IFBSSU1BUlkg S0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhdmcoYSkpIDpHZW5lcmF0ZWQpOwogRVJS T1I6ICBhZ2dyZWdhdGUgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBjb2x1bW4gZ2VuZXJh dGlvbiBleHByZXNzaW9ucwogTElORSAxOiAuLi43YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGF2ZyhhKSkgU1QuLi4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi1DUkVBVEUgVEFCTEUg Z3Rlc3RfZXJyXzdiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAocm93X251bWJlcigpIE9WRVIgKE9SREVSIEJZIGEpKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxF IGd0ZXN0X2Vycl83YiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKHJvd19udW1iZXIoKSBPVkVSIChPUkRFUiBCWSBhKSkgOkdlbmVyYXRlZCk7CiBFUlJPUjog IHdpbmRvdyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4 cHJlc3Npb25zCiBMSU5FIDE6IC4uLjdiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAocm93X251bWJlci4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KLUNSRUFURSBUQUJMRSBndGVzdF9l cnJfN2MgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoU0VM RUNUIGEpKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83YyAoYSBpbnQgUFJJTUFS WSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChTRUxFQ1QgYSkpIDpHZW5lcmF0ZWQp OwogRVJST1I6ICBjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJl c3Npb24KIExJTkUgMTogLi4uN2MgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTICgoU0VMRUNUIGEpLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83 ZCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGdlbmVyYXRl X3NlcmllcygxLCBhKSkgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfN2QgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChnZW5lcmF0ZV9zZXJpZXMo MSwgYSkpIDpHZW5lcmF0ZWQpOwogRVJST1I6ICBzZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBhcmUg bm90IGFsbG93ZWQgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lvbnMKIExJTkUgMTogLi4u N2QgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChnZW5lcmF0 ZV9zLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgogLS0gR0VORVJBVEVEIEJZIERFRkFVTFQgbm90IGFsbG93ZWQKLUNSRUFU RSBUQUJMRSBndGVzdF9lcnJfOCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBC WSBERUZBVUxUIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfOCAo YSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBCWSBERUZBVUxUIEFTIChhICogMikg OkdlbmVyYXRlZCk7CiBFUlJPUjogIGZvciBhIGdlbmVyYXRlZCBjb2x1bW4sIEdFTkVSQVRFRCBB TFdBWVMgbXVzdCBiZSBzcGVjaWZpZWQKIExJTkUgMTogLi4uRSBndGVzdF9lcnJfOCAoYSBpbnQg UFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBCWSBERUZBVUxULi4uCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpAQCAtMjIx LDggKzIyNCw4IEBAIENSRUFURSBUQUJMRSBndGVzdG0gKAogICBpZCBpbnQgUFJJTUFSWSBLRVks CiAgIGYxIGludCwKICAgZjIgaW50LAotICBmMyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjEg KiAyKSBTVE9SRUQsCi0gIGY0IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFNUT1JF RAorICBmMyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjEgKiAyKSA6R2VuZXJhdGVkLAorICBm NCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSA6R2VuZXJhdGVkCiApOwogSU5TRVJU IElOVE8gZ3Rlc3RtIFZBTFVFUyAoMSwgNSwgMTAwKTsKIE1FUkdFIElOVE8gZ3Rlc3RtIHQgVVNJ TkcgKFZBTFVFUyAoMSwgMTApLCAoMiwgMjApKSB2KGlkLCBmMSkgT04gdC5pZCA9IHYuaWQKQEAg LTI0NSw3ICsyNDgsNyBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0bSBPUkRFUiBCWSBpZDsKIERST1Ag VEFCTEUgZ3Rlc3RtOwogQ1JFQVRFIFRBQkxFIGd0ZXN0bSAoCiAgIGEgaW50IFBSSU1BUlkgS0VZ LAotICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVECisgIGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSA6R2VuZXJhdGVkCiApOwogSU5TRVJUIElOVE8gZ3Rl c3RtIChhKSBTRUxFQ1QgZyBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMCkgZzsKIE1FUkdFIElO VE8gZ3Rlc3RtIHQgVVNJTkcgZ3Rlc3RtIEFTIHMgT04gMiAqIHQuYSA9IHMuYiBXSEVOIE1BVENI RUQgVEhFTiBERUxFVEUgUkVUVVJOSU5HICo7CkBAIC0zNDIsMTIgKzM0NSwxMiBAQCBTRUxFQ1Qg KiBGUk9NIGd0ZXN0MTsKIAogLS0gY2FuJ3QgaGF2ZSBnZW5lcmF0ZWQgY29sdW1uIHRoYXQgaXMg YSBjaGlsZCBvZiBub3JtYWwgY29sdW1uCiBDUkVBVEUgVEFCTEUgZ3Rlc3Rfbm9ybWFsIChhIGlu dCwgYiBpbnQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0X25vcm1hbF9jaGlsZCAoYSBpbnQsIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpIElOSEVSSVRTIChndGVzdF9ub3Jt YWwpOyAgLS0gZXJyb3IKK0NSRUFURSBUQUJMRSBndGVzdF9ub3JtYWxfY2hpbGQgKGEgaW50LCBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZCkgSU5IRVJJVFMgKGd0 ZXN0X25vcm1hbCk7ICAtLSBlcnJvcgogTk9USUNFOiAgbWVyZ2luZyBjb2x1bW4gImEiIHdpdGgg aW5oZXJpdGVkIGRlZmluaXRpb24KIE5PVElDRTogIG1lcmdpbmcgY29sdW1uICJiIiB3aXRoIGlu aGVyaXRlZCBkZWZpbml0aW9uCiBFUlJPUjogIGNoaWxkIGNvbHVtbiAiYiIgc3BlY2lmaWVzIGdl bmVyYXRpb24gZXhwcmVzc2lvbgogSElOVDogIEEgY2hpbGQgdGFibGUgY29sdW1uIGNhbm5vdCBi ZSBnZW5lcmF0ZWQgdW5sZXNzIGl0cyBwYXJlbnQgY29sdW1uIGlzLgotQ1JFQVRFIFRBQkxFIGd0 ZXN0X25vcm1hbF9jaGlsZCAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAy KSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X25vcm1hbF9jaGlsZCAoYSBpbnQsIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSA6R2VuZXJhdGVkKTsKIEFMVEVSIFRBQkxFIGd0 ZXN0X25vcm1hbF9jaGlsZCBJTkhFUklUIGd0ZXN0X25vcm1hbDsgIC0tIGVycm9yCiBFUlJPUjog IGNvbHVtbiAiYiIgaW4gY2hpbGQgdGFibGUgbXVzdCBub3QgYmUgYSBnZW5lcmF0ZWQgY29sdW1u CiBEUk9QIFRBQkxFIGd0ZXN0X25vcm1hbCwgZ3Rlc3Rfbm9ybWFsX2NoaWxkOwpAQCAtMzU4LDEx ICszNjEsMTEgQEAgRVJST1I6ICBjb2x1bW4gImIiIGluaGVyaXRzIGZyb20gZ2VuZXJhdGVkIGNv bHVtbiBidXQgc3BlY2lmaWVzIGRlZmF1bHQKIENSRUFURSBUQUJMRSBndGVzdHggKHggaW50LCBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIElERU5USVRZKSBJTkhFUklUUyAoZ3Rlc3QxKTsgIC0t IGVycm9yCiBOT1RJQ0U6ICBtZXJnaW5nIGNvbHVtbiAiYiIgd2l0aCBpbmhlcml0ZWQgZGVmaW5p dGlvbgogRVJST1I6ICBjb2x1bW4gImIiIGluaGVyaXRzIGZyb20gZ2VuZXJhdGVkIGNvbHVtbiBi dXQgc3BlY2lmaWVzIGlkZW50aXR5Ci1DUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIyKSBWSVJUVUFMKSBJTkhFUklUUyAoZ3Rlc3QxKTsg IC0tIGVycm9yCitDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDIyKSA6T3RoZXIpIElOSEVSSVRTIChndGVzdDEpOyAgLS0gZXJyb3IKIE5P VElDRTogIG1lcmdpbmcgY29sdW1uICJiIiB3aXRoIGluaGVyaXRlZCBkZWZpbml0aW9uCiBFUlJP UjogIGNvbHVtbiAiYiIgaW5oZXJpdHMgZnJvbSBnZW5lcmF0ZWQgY29sdW1uIG9mIGRpZmZlcmVu dCBraW5kCiBERVRBSUw6ICBQYXJlbnQgY29sdW1uIGlzIFNUT1JFRCwgY2hpbGQgY29sdW1uIGlz IFZJUlRVQUwuCi1DUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDIyKSBTVE9SRUQpIElOSEVSSVRTIChndGVzdDEpOyAgLS0gb2ssIG92ZXJy aWRlcyBwYXJlbnQKK0NSRUFURSBUQUJMRSBndGVzdHggKHggaW50LCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMjIpIDpHZW5lcmF0ZWQpIElOSEVSSVRTIChndGVzdDEpOyAgLS0gb2ss IG92ZXJyaWRlcyBwYXJlbnQKIE5PVElDRTogIG1lcmdpbmcgY29sdW1uICJiIiB3aXRoIGluaGVy aXRlZCBkZWZpbml0aW9uCiBcZCsgZ3Rlc3R4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3R4IgpAQCAtMzkz LDkgKzM5Niw5IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3R4OwogQ1JFQVRFIFRBQkxFIGd0ZXN0eHhf MSAoYSBpbnQgTk9UIE5VTEwsIGIgaW50KTsKIEFMVEVSIFRBQkxFIGd0ZXN0eHhfMSBJTkhFUklU IGd0ZXN0MTsgIC0tIGVycm9yCiBFUlJPUjogIGNvbHVtbiAiYiIgaW4gY2hpbGQgdGFibGUgbXVz dCBiZSBhIGdlbmVyYXRlZCBjb2x1bW4KLUNSRUFURSBUQUJMRSBndGVzdHh4XzMgKGEgaW50IE5P VCBOVUxMLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFU RSBUQUJMRSBndGVzdHh4XzMgKGEgaW50IE5PVCBOVUxMLCBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChhICogMikgOkdlbmVyYXRlZCk7CiBBTFRFUiBUQUJMRSBndGVzdHh4XzMgSU5IRVJJVCBn dGVzdDE7ICAtLSBvawotQ1JFQVRFIFRBQkxFIGd0ZXN0eHhfNCAoYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDIpIFNUT1JFRCwgYSBpbnQgTk9UIE5VTEwpOworQ1JFQVRFIFRBQkxFIGd0 ZXN0eHhfNCAoYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQsIGEg aW50IE5PVCBOVUxMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0eHhfNCBJTkhFUklUIGd0ZXN0MTsgIC0t IG9rCiAtLSB0ZXN0IG11bHRpcGxlIGluaGVyaXRhbmNlIG1pc21hdGNoZXMKIENSRUFURSBUQUJM RSBndGVzdHkgKHggaW50LCBiIGludCBERUZBVUxUIDU1KTsKQEAgLTQwOCwxMiArNDExLDEyIEBA IENSRUFURSBUQUJMRSBndGVzdDFfeSAoKSBJTkhFUklUUyAoZ3Rlc3QxLCBndGVzdHkpOyAgLS0g ZXJyb3IKIE5PVElDRTogIG1lcmdpbmcgbXVsdGlwbGUgaW5oZXJpdGVkIGRlZmluaXRpb25zIG9m IGNvbHVtbiAiYiIKIEVSUk9SOiAgaW5oZXJpdGVkIGNvbHVtbiAiYiIgaGFzIGEgZ2VuZXJhdGlv biBjb25mbGljdAogRFJPUCBUQUJMRSBndGVzdHk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3R5ICh4IGlu dCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoeCAqIDIyKSBTVE9SRUQpOworQ1JFQVRFIFRB QkxFIGd0ZXN0eSAoeCBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHggKiAyMikgOkdl bmVyYXRlZCk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QxX3kgKCkgSU5IRVJJVFMgKGd0ZXN0MSwgZ3Rl c3R5KTsgIC0tIGVycm9yCiBOT1RJQ0U6ICBtZXJnaW5nIG11bHRpcGxlIGluaGVyaXRlZCBkZWZp bml0aW9ucyBvZiBjb2x1bW4gImIiCiBFUlJPUjogIGNvbHVtbiAiYiIgaW5oZXJpdHMgY29uZmxp Y3RpbmcgZ2VuZXJhdGlvbiBleHByZXNzaW9ucwogSElOVDogIFRvIHJlc29sdmUgdGhlIGNvbmZs aWN0LCBzcGVjaWZ5IGEgZ2VuZXJhdGlvbiBleHByZXNzaW9uIGV4cGxpY2l0bHkuCi1DUkVBVEUg VEFCTEUgZ3Rlc3QxX3kgKGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHggKyAxKSBTVE9SRUQp IElOSEVSSVRTIChndGVzdDEsIGd0ZXN0eSk7ICAtLSBvaworQ1JFQVRFIFRBQkxFIGd0ZXN0MV95 IChiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICsgMSkgOkdlbmVyYXRlZCkgSU5IRVJJVFMg KGd0ZXN0MSwgZ3Rlc3R5KTsgIC0tIG9rCiBOT1RJQ0U6ICBtZXJnaW5nIG11bHRpcGxlIGluaGVy aXRlZCBkZWZpbml0aW9ucyBvZiBjb2x1bW4gImIiCiBOT1RJQ0U6ICBtb3ZpbmcgYW5kIG1lcmdp bmcgY29sdW1uICJiIiB3aXRoIGluaGVyaXRlZCBkZWZpbml0aW9uCiBERVRBSUw6ICBVc2VyLXNw ZWNpZmllZCBjb2x1bW4gbW92ZWQgdG8gdGhlIHBvc2l0aW9uIG9mIHRoZSBpbmhlcml0ZWQgY29s dW1uLgpAQCAtNDI5LDcgKzQzMiw3IEBAIEluaGVyaXRzOiBndGVzdDEsCiAKIC0tIHRlc3QgY29y cmVjdCBoYW5kbGluZyBvZiBHRU5FUkFURUQgY29sdW1uIHRoYXQncyBvbmx5IGluIGNoaWxkCiBD UkVBVEUgVEFCTEUgZ3Rlc3RwIChmMSBpbnQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0YyAoZjIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYxKzEpIFNUT1JFRCkgSU5IRVJJVFMoZ3Rlc3RwKTsKK0NS RUFURSBUQUJMRSBndGVzdGMgKGYyIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMSsxKSA6R2Vu ZXJhdGVkKSBJTkhFUklUUyhndGVzdHApOwogSU5TRVJUIElOVE8gZ3Rlc3RjIHZhbHVlcyg0Mik7 CiBUQUJMRSBndGVzdGM7CiAgZjEgfCBmMiAKQEAgLTQ0Nyw3ICs0NTAsNyBAQCBUQUJMRSBndGVz dGM7CiBEUk9QIFRBQkxFIGd0ZXN0cCBDQVNDQURFOwogTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0 byB0YWJsZSBndGVzdGMKIC0tIHRlc3Qgc3RvcmVkIHVwZGF0ZQotQ1JFQVRFIFRBQkxFIGd0ZXN0 MyAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAzKSBTVE9SRUQpOworQ1JF QVRFIFRBQkxFIGd0ZXN0MyAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAz KSA6R2VuZXJhdGVkKTsKIElOU0VSVCBJTlRPIGd0ZXN0MyAoYSkgVkFMVUVTICgxKSwgKDIpLCAo MyksIChOVUxMKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3QzIE9SREVSIEJZIGE7CiAgYSB8IGIgCkBA IC00NjgsNyArNDcxLDcgQEAgU0VMRUNUICogRlJPTSBndGVzdDMgT1JERVIgQlkgYTsKICAgICB8 ICAgCiAoNCByb3dzKQogCi1DUkVBVEUgVEFCTEUgZ3Rlc3QzYSAoYSB0ZXh0LCBiIHRleHQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYSB8fCAnKycgfHwgYSkgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBn dGVzdDNhIChhIHRleHQsIGIgdGV4dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhIHx8ICcrJyB8fCBh KSA6R2VuZXJhdGVkKTsKIElOU0VSVCBJTlRPIGd0ZXN0M2EgKGEpIFZBTFVFUyAoJ2EnKSwgKCdi JyksICgnYycpLCAoTlVMTCk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0M2EgT1JERVIgQlkgYTsKICBh IHwgIGIgIApAQCAtNTMzLDcgKzUzNiw3IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QzIE9SREVSIEJZ IGE7CiAoNCByb3dzKQogCiAtLSBudWxsIHZhbHVlcwotQ1JFQVRFIFRBQkxFIGd0ZXN0MiAoYSBp bnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKE5VTEwpIFNUT1JFRCk7 CitDUkVBVEUgVEFCTEUgZ3Rlc3QyIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoTlVMTCkgOkdlbmVyYXRlZCk7CiBJTlNFUlQgSU5UTyBndGVzdDIgVkFMVUVT ICgxKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3QyOwogIGEgfCBiIApAQCAtNTQyLDcgKzU0NSw3IEBA IFNFTEVDVCAqIEZST00gZ3Rlc3QyOwogKDEgcm93KQogCiAtLSBzaW1wbGUgY29sdW1uIHJlZmVy ZW5jZSBmb3IgdmFybGVuYSB0eXBlcwotQ1JFQVRFIFRBQkxFIGd0ZXN0X3ZhcmxlbmEgKGEgdmFy Y2hhciwgYiB2YXJjaGFyIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEpIFNUT1JFRCk7CitDUkVBVEUg VEFCTEUgZ3Rlc3RfdmFybGVuYSAoYSB2YXJjaGFyLCBiIHZhcmNoYXIgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSkgOkdlbmVyYXRlZCk7CiBJTlNFUlQgSU5UTyBndGVzdF92YXJsZW5hIChhKSBWQUxV RVMoJzAxMjM0NTY3ODkwMTIzNDU2Nzg5Jyk7CiBJTlNFUlQgSU5UTyBndGVzdF92YXJsZW5hIChh KSBWQUxVRVMoTlVMTCk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0X3ZhcmxlbmEgT1JERVIgQlkgYTsK QEAgLTU1Nyw3ICs1NjAsNyBAQCBEUk9QIFRBQkxFIGd0ZXN0X3ZhcmxlbmE7CiBDUkVBVEUgVFlQ RSBkb3VibGVfaW50IGFzIChhIGludCwgYiBpbnQpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0NCAoCiAg ICAgYSBpbnQsCi0gICAgYiBkb3VibGVfaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChhICogMiwg YSAqIDMpKSBTVE9SRUQKKyAgICBiIGRvdWJsZV9pbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKGEg KiAyLCBhICogMykpIDpHZW5lcmF0ZWQKICk7CiBJTlNFUlQgSU5UTyBndGVzdDQgVkFMVUVTICgx KSwgKDYpOwogU0VMRUNUICogRlJPTSBndGVzdDQ7CkBAIC01NzIsMTEgKzU3NSwxMSBAQCBEUk9Q IFRZUEUgZG91YmxlX2ludDsKIC0tIHVzaW5nIHRhYmxlb2lkIGlzIGFsbG93ZWQKIENSRUFURSBU QUJMRSBndGVzdF90YWJsZW9pZCAoCiAgIGEgaW50IFBSSU1BUlkgS0VZLAotICBiIGJvb2wgR0VO RVJBVEVEIEFMV0FZUyBBUyAodGFibGVvaWQgPSAnZ3Rlc3RfdGFibGVvaWQnOjpyZWdjbGFzcykg U1RPUkVECisgIGIgYm9vbCBHRU5FUkFURUQgQUxXQVlTIEFTICh0YWJsZW9pZCA9ICdndGVzdF90 YWJsZW9pZCc6OnJlZ2NsYXNzKSA6R2VuZXJhdGVkCiApOwogSU5TRVJUIElOVE8gZ3Rlc3RfdGFi bGVvaWQgVkFMVUVTICgxKSwgKDIpOwogQUxURVIgVEFCTEUgZ3Rlc3RfdGFibGVvaWQgQUREIENP TFVNTgotICBjIHJlZ2NsYXNzIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHRhYmxlb2lkKSBTVE9SRUQ7 CisgIGMgcmVnY2xhc3MgR0VORVJBVEVEIEFMV0FZUyBBUyAodGFibGVvaWQpIDpHZW5lcmF0ZWQ7 CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0X3RhYmxlb2lkOwogIGEgfCBiIHwgICAgICAgYyAgICAgICAg CiAtLS0rLS0tKy0tLS0tLS0tLS0tLS0tLS0KQEAgLTU4NSw3ICs1ODgsNyBAQCBTRUxFQ1QgKiBG Uk9NIGd0ZXN0X3RhYmxlb2lkOwogKDIgcm93cykKIAogLS0gZHJvcCBjb2x1bW4gYmVoYXZpb3IK LUNSRUFURSBUQUJMRSBndGVzdDEwIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQsIGMgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MTAg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAq IDIpIDpHZW5lcmF0ZWQpOwogQUxURVIgVEFCTEUgZ3Rlc3QxMCBEUk9QIENPTFVNTiBiOyAgLS0g ZmFpbHMKIEVSUk9SOiAgY2Fubm90IGRyb3AgY29sdW1uIGIgb2YgdGFibGUgZ3Rlc3QxMCBiZWNh dXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CiBERVRBSUw6ICBjb2x1bW4gYyBvZiB0YWJs ZSBndGVzdDEwIGRlcGVuZHMgb24gY29sdW1uIGIgb2YgdGFibGUgZ3Rlc3QxMApAQCAtNjAwLDE3 ICs2MDMsMTcgQEAgTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBjb2x1bW4gYyBvZiB0YWJsZSBn dGVzdDEwCiBJbmRleGVzOgogICAgICJndGVzdDEwX3BrZXkiIFBSSU1BUlkgS0VZLCBidHJlZSAo YSkKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0MTBhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QxMGEg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgOkdl bmVyYXRlZCk7CiBBTFRFUiBUQUJMRSBndGVzdDEwYSBEUk9QIENPTFVNTiBiOwogSU5TRVJUIElO VE8gZ3Rlc3QxMGEgKGEpIFZBTFVFUyAoMSk7CiAtLSBwcml2aWxlZ2VzCiBDUkVBVEUgVVNFUiBy ZWdyZXNzX3VzZXIxMTsKLUNSRUFURSBUQUJMRSBndGVzdDExIChhIGludCBQUklNQVJZIEtFWSwg YiBpbnQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSBTVE9SRUQpOworQ1JFQVRF IFRBQkxFIGd0ZXN0MTEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCwgYyBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYiAqIDIpIDpHZW5lcmF0ZWQpOwogSU5TRVJUIElOVE8gZ3Rlc3QxMSBWQUxV RVMgKDEsIDEwKSwgKDIsIDIwKTsKIEdSQU5UIFNFTEVDVCAoYSwgYykgT04gZ3Rlc3QxMSBUTyBy ZWdyZXNzX3VzZXIxMTsKIENSRUFURSBGVU5DVElPTiBnZjEoYSBpbnQpIFJFVFVSTlMgaW50IEFT ICQkIFNFTEVDVCBhICogMyAkJCBJTU1VVEFCTEUgTEFOR1VBR0UgU1FMOwogUkVWT0tFIEFMTCBP TiBGVU5DVElPTiBnZjEoaW50KSBGUk9NIFBVQkxJQzsKLUNSRUFURSBUQUJMRSBndGVzdDEyIChh IGludCBQUklNQVJZIEtFWSwgYiBpbnQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGdmMShi KSkgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDEyIChhIGludCBQUklNQVJZIEtFWSwgYiBp bnQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGdmMShiKSkgOkdlbmVyYXRlZCk7CiBJTlNF UlQgSU5UTyBndGVzdDEyIFZBTFVFUyAoMSwgMTApLCAoMiwgMjApOwogR1JBTlQgU0VMRUNUIChh LCBjKSwgSU5TRVJUIE9OIGd0ZXN0MTIgVE8gcmVncmVzc191c2VyMTE7CiBTRVQgUk9MRSByZWdy ZXNzX3VzZXIxMTsKQEAgLTY0Myw3ICs2NDYsNyBAQCBEUk9QIFRBQkxFIGd0ZXN0MTEsIGd0ZXN0 MTI7CiBEUk9QIEZVTkNUSU9OIGdmMShpbnQpOwogRFJPUCBVU0VSIHJlZ3Jlc3NfdXNlcjExOwog LS0gY2hlY2sgY29uc3RyYWludHMKLUNSRUFURSBUQUJMRSBndGVzdDIwIChhIGludCBQUklNQVJZ IEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCBDSEVDSyAoYiA8 IDUwKSk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSA6R2VuZXJhdGVkIENIRUNLIChiIDwgNTApKTsKIElO U0VSVCBJTlRPIGd0ZXN0MjAgKGEpIFZBTFVFUyAoMTApOyAgLS0gb2sKIElOU0VSVCBJTlRPIGd0 ZXN0MjAgKGEpIFZBTFVFUyAoMzApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAogRVJST1I6ICBu ZXcgcm93IGZvciByZWxhdGlvbiAiZ3Rlc3QyMCIgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAi Z3Rlc3QyMF9iX2NoZWNrIgpAQCAtNjUxLDcgKzY1NCw3IEBAIERFVEFJTDogIEZhaWxpbmcgcm93 IGNvbnRhaW5zICgzMCwgNjApLgogQUxURVIgVEFCTEUgZ3Rlc3QyMCBBTFRFUiBDT0xVTU4gYiBT RVQgRVhQUkVTU0lPTiBBUyAoYSAqIDEwMCk7ICAtLSB2aW9sYXRlcyBjb25zdHJhaW50CiBFUlJP UjogIGNoZWNrIGNvbnN0cmFpbnQgImd0ZXN0MjBfYl9jaGVjayIgb2YgcmVsYXRpb24gImd0ZXN0 MjAiIGlzIHZpb2xhdGVkIGJ5IHNvbWUgcm93CiBBTFRFUiBUQUJMRSBndGVzdDIwIEFMVEVSIENP TFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogMyk7ICAtLSBvawotQ1JFQVRFIFRBQkxFIGd0 ZXN0MjBhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAq IDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMGEgKGEgaW50IFBSSU1BUlkgS0VZLCBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZCk7CiBJTlNFUlQgSU5U TyBndGVzdDIwYSAoYSkgVkFMVUVTICgxMCk7CiBJTlNFUlQgSU5UTyBndGVzdDIwYSAoYSkgVkFM VUVTICgzMCk7CiBBTFRFUiBUQUJMRSBndGVzdDIwYSBBREQgQ0hFQ0sgKGIgPCA1MCk7ICAtLSBm YWlscyBvbiBleGlzdGluZyByb3cKQEAgLTY2MCwyNyArNjYzLDI3IEBAIEVSUk9SOiAgY2hlY2sg Y29uc3RyYWludCAiZ3Rlc3QyMGFfYl9jaGVjayIgb2YgcmVsYXRpb24gImd0ZXN0MjBhIiBpcyB2 aW9sYXRlZCBiCiBBTFRFUiBUQUJMRSBndGVzdDIwYSBBREQgQ09MVU1OIGMgZmxvYXQ4IERFRkFV TFQgcmFuZG9tKCkgQ0hFQ0sgKGIgPCA1MCk7IC0tIGZhaWxzIG9uIGV4aXN0aW5nIHJvdwogRVJS T1I6ICBjaGVjayBjb25zdHJhaW50ICJndGVzdDIwYV9iX2NoZWNrIiBvZiByZWxhdGlvbiAiZ3Rl c3QyMGEiIGlzIHZpb2xhdGVkIGJ5IHNvbWUgcm93CiBBTFRFUiBUQUJMRSBndGVzdDIwYSBBREQg Q09MVU1OIGMgZmxvYXQ4IERFRkFVTFQgcmFuZG9tKCkgQ0hFQ0sgKGIgPCA2MSk7IC0tIG9rCi1D UkVBVEUgVEFCTEUgZ3Rlc3QyMGIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDIwYiAoYSBpbnQg UFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSA6R2VuZXJhdGVk KTsKIElOU0VSVCBJTlRPIGd0ZXN0MjBiIChhKSBWQUxVRVMgKDEwKTsKIElOU0VSVCBJTlRPIGd0 ZXN0MjBiIChhKSBWQUxVRVMgKDMwKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MjBiIEFERCBDT05TVFJB SU5UIGNoayBDSEVDSyAoYiA8IDUwKSBOT1QgVkFMSUQ7CiBBTFRFUiBUQUJMRSBndGVzdDIwYiBW QUxJREFURSBDT05TVFJBSU5UIGNoazsgIC0tIGZhaWxzIG9uIGV4aXN0aW5nIHJvdwogRVJST1I6 ICBjaGVjayBjb25zdHJhaW50ICJjaGsiIG9mIHJlbGF0aW9uICJndGVzdDIwYiIgaXMgdmlvbGF0 ZWQgYnkgc29tZSByb3cKIC0tIGNoZWNrIHdpdGggd2hvbGUtcm93IHJlZmVyZW5jZQotQ1JFQVRF IFRBQkxFIGd0ZXN0MjBjIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIp IFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMGMgKGEgaW50LCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZCk7CiBBTFRFUiBUQUJMRSBndGVzdDIwYyBBREQg Q09OU1RSQUlOVCB3aG9sZV9yb3dfY2hlY2sgQ0hFQ0sgKGd0ZXN0MjBjIElTIE5PVCBOVUxMKTsK IElOU0VSVCBJTlRPIGd0ZXN0MjBjIFZBTFVFUyAoMSk7ICAtLSBvawogSU5TRVJUIElOVE8gZ3Rl c3QyMGMgVkFMVUVTIChOVUxMKTsgIC0tIGZhaWxzCiBFUlJPUjogIG5ldyByb3cgZm9yIHJlbGF0 aW9uICJndGVzdDIwYyIgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAid2hvbGVfcm93X2NoZWNr IgogREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKG51bGwsIG51bGwpLgogLS0gbm90LW51 bGwgY29uc3RyYWludHMKLUNSRUFURSBUQUJMRSBndGVzdDIxYSAoYSBpbnQgUFJJTUFSWSBLRVks IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLCAwKSkgU1RPUkVEIE5PVCBOVUxM KTsKK0NSRUFURSBUQUJMRSBndGVzdDIxYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLCAwKSkgOkdlbmVyYXRlZCBOT1QgTlVMTCk7CiBJTlNF UlQgSU5UTyBndGVzdDIxYSAoYSkgVkFMVUVTICgxKTsgIC0tIG9rCiBJTlNFUlQgSU5UTyBndGVz dDIxYSAoYSkgVkFMVUVTICgwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKIEVSUk9SOiAgbnVs bCB2YWx1ZSBpbiBjb2x1bW4gImIiIG9mIHJlbGF0aW9uICJndGVzdDIxYSIgdmlvbGF0ZXMgbm90 LW51bGwgY29uc3RyYWludAogREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKDAsIG51bGwp LgogLS0gYWxzbyBjaGVjayB3aXRoIHRhYmxlIGNvbnN0cmFpbnQgc3ludGF4Ci1DUkVBVEUgVEFC TEUgZ3Rlc3QyMWF4IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAobnVsbGlmKGEsIDApKSBTVE9SRUQsIENPTlNUUkFJTlQgY2MgTk9UIE5VTEwgYik7CitDUkVB VEUgVEFCTEUgZ3Rlc3QyMWF4IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAobnVsbGlmKGEsIDApKSA6R2VuZXJhdGVkLCBDT05TVFJBSU5UIGNjIE5PVCBOVUxM IGIpOwogSU5TRVJUIElOVE8gZ3Rlc3QyMWF4IChhKSBWQUxVRVMgKDApOyAgLS0gdmlvbGF0ZXMg Y29uc3RyYWludAogRVJST1I6ICBudWxsIHZhbHVlIGluIGNvbHVtbiAiYiIgb2YgcmVsYXRpb24g Imd0ZXN0MjFheCIgdmlvbGF0ZXMgbm90LW51bGwgY29uc3RyYWludAogREVUQUlMOiAgRmFpbGlu ZyByb3cgY29udGFpbnMgKDAsIG51bGwpLgpAQCAtNjg5LDEzICs2OTIsMTMgQEAgSU5TRVJUIElO VE8gZ3Rlc3QyMWF4IChhKSBWQUxVRVMgKDEpOyAgLS1vawogQUxURVIgVEFCTEUgZ3Rlc3QyMWF4 IEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChudWxsaWYoYSwgMSkpOyAtLWVycm9y CiBFUlJPUjogIGNvbHVtbiAiYiIgb2YgcmVsYXRpb24gImd0ZXN0MjFheCIgY29udGFpbnMgbnVs bCB2YWx1ZXMKIERST1AgVEFCTEUgZ3Rlc3QyMWF4OwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjFheCAo YSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLCAw KSkgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDIxYXggKGEgaW50IFBSSU1BUlkgS0VZLCBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYoYSwgMCkpIDpHZW5lcmF0ZWQpOwogQUxU RVIgVEFCTEUgZ3Rlc3QyMWF4IEFERCBDT05TVFJBSU5UIGNjIE5PVCBOVUxMIGI7CiBJTlNFUlQg SU5UTyBndGVzdDIxYXggKGEpIFZBTFVFUyAoMCk7ICAtLSB2aW9sYXRlcyBjb25zdHJhaW50CiBF UlJPUjogIG51bGwgdmFsdWUgaW4gY29sdW1uICJiIiBvZiByZWxhdGlvbiAiZ3Rlc3QyMWF4IiB2 aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50CiBERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlu cyAoMCwgbnVsbCkuCiBEUk9QIFRBQkxFIGd0ZXN0MjFheDsKLUNSRUFURSBUQUJMRSBndGVzdDIx YiAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLCAwKSkgU1RPUkVE KTsKK0NSRUFURSBUQUJMRSBndGVzdDIxYiAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKG51bGxpZihhLCAwKSkgOkdlbmVyYXRlZCk7CiBBTFRFUiBUQUJMRSBndGVzdDIxYiBBTFRF UiBDT0xVTU4gYiBTRVQgTk9UIE5VTEw7CiBJTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVT ICgxKTsgIC0tIG9rCiBJTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgyKSwgKDApOyAg LS0gdmlvbGF0ZXMgY29uc3RyYWludApAQCAtNzEwLDcgKzcxMyw3IEBAIElOU0VSVCBJTlRPIGd0 ZXN0MjFiIChhKSBWQUxVRVMgKDApOyAgLS0gb2sgbm93CiBDUkVBVEUgVEFCTEUgZ3Rlc3Rubl9w YXJlbnQgKAogICAgIGYxIGludCwKICAgICBmMiBiaWdpbnQsCi0gICAgZjMgYmlnaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKG51bGxpZihmMSwgMSkgKyBudWxsaWYoZjIsIDEwKSkgU1RPUkVEIE5P VCBOVUxMCisgICAgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihmMSwgMSkg KyBudWxsaWYoZjIsIDEwKSkgOkdlbmVyYXRlZCBOT1QgTlVMTAogKSBQQVJUSVRJT04gQlkgUkFO R0UgKGYxKTsKIENSRUFURSBUQUJMRSBndGVzdG5uX2NoaWxkIFBBUlRJVElPTiBPRiBndGVzdG5u X3BhcmVudCBGT1IgVkFMVUVTIEZST00gKDEpIFRPICg1KTsKIENSRUFURSBUQUJMRSBndGVzdG5u X2NoaWxkZGVmIFBBUlRJVElPTiBPRiBndGVzdG5uX3BhcmVudCBkZWZhdWx0OwpAQCAtNzM1LDI1 ICs3MzgsMjUgQEAgU0VMRUNUICogRlJPTSBndGVzdG5uX3BhcmVudCBPUkRFUiBCWSBmMSwgZjIs IGYzOwogKDQgcm93cykKIAogLS0gdGVzdCBBTFRFUiBUQUJMRSBBREQgQ09MVU1OCi1BTFRFUiBU QUJMRSBndGVzdG5uX3BhcmVudCBBREQgQ09MVU1OIGMgaW50IE5PVCBOVUxMIEdFTkVSQVRFRCBB TFdBWVMgQVMgKG51bGxpZihmMSwgMTQpICsgbnVsbGlmKGYyLCAxMCkpIFNUT1JFRDsgIC0tIGVy cm9yCitBTFRFUiBUQUJMRSBndGVzdG5uX3BhcmVudCBBREQgQ09MVU1OIGMgaW50IE5PVCBOVUxM IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihmMSwgMTQpICsgbnVsbGlmKGYyLCAxMCkpIDpH ZW5lcmF0ZWQ7ICAtLSBlcnJvcgogRVJST1I6ICBjb2x1bW4gImMiIG9mIHJlbGF0aW9uICJndGVz dG5uX2NoaWxkZGVmIiBjb250YWlucyBudWxsIHZhbHVlcwotQUxURVIgVEFCTEUgZ3Rlc3Rubl9w YXJlbnQgQUREIENPTFVNTiBjIGludCBOT1QgTlVMTCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxs aWYoZjEsIDEzKSArIG51bGxpZihmMiwgNSkpIFNUT1JFRDsgIC0tIGVycm9yCitBTFRFUiBUQUJM RSBndGVzdG5uX3BhcmVudCBBREQgQ09MVU1OIGMgaW50IE5PVCBOVUxMIEdFTkVSQVRFRCBBTFdB WVMgQVMgKG51bGxpZihmMSwgMTMpICsgbnVsbGlmKGYyLCA1KSkgOkdlbmVyYXRlZDsgIC0tIGVy cm9yCiBFUlJPUjogIGNvbHVtbiAiYyIgb2YgcmVsYXRpb24gImd0ZXN0bm5fY2hpbGQiIGNvbnRh aW5zIG51bGwgdmFsdWVzCi1BTFRFUiBUQUJMRSBndGVzdG5uX3BhcmVudCBBREQgQ09MVU1OIGMg aW50IE5PVCBOVUxMIEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihmMSwgNCkgKyBudWxsaWYo ZjIsIDYpKSBTVE9SRUQ7ICAtLSBvaworQUxURVIgVEFCTEUgZ3Rlc3Rubl9wYXJlbnQgQUREIENP TFVNTiBjIGludCBOT1QgTlVMTCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYoZjEsIDQpICsg bnVsbGlmKGYyLCA2KSkgOkdlbmVyYXRlZDsgIC0tIG9rCiAtLSBpbmRleCBjb25zdHJhaW50cwot Q1JFQVRFIFRBQkxFIGd0ZXN0MjJhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSAvIDIpIFNUT1JFRCBVTklRVUUpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjJh IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAvIDIpIDpH ZW5lcmF0ZWQgVU5JUVVFKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjJhIFZBTFVFUyAoMik7CiBJTlNF UlQgSU5UTyBndGVzdDIyYSBWQUxVRVMgKDMpOwogRVJST1I6ICBkdXBsaWNhdGUga2V5IHZhbHVl IHZpb2xhdGVzIHVuaXF1ZSBjb25zdHJhaW50ICJndGVzdDIyYV9iX2tleSIKIERFVEFJTDogIEtl eSAoYik9KDEpIGFscmVhZHkgZXhpc3RzLgogSU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVTICg0 KTsKLUNSRUFURSBUQUJMRSBndGVzdDIyYiAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgLyAyKSBTVE9SRUQsIFBSSU1BUlkgS0VZIChhLCBiKSk7CitDUkVBVEUgVEFCTEUgZ3Rl c3QyMmIgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhIC8gMikgOkdlbmVyYXRl ZCwgUFJJTUFSWSBLRVkgKGEsIGIpKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjJiIFZBTFVFUyAoMik7 CiBJTlNFUlQgSU5UTyBndGVzdDIyYiBWQUxVRVMgKDIpOwogRVJST1I6ICBkdXBsaWNhdGUga2V5 IHZhbHVlIHZpb2xhdGVzIHVuaXF1ZSBjb25zdHJhaW50ICJndGVzdDIyYl9wa2V5IgogREVUQUlM OiAgS2V5IChhLCBiKT0oMiwgMSkgYWxyZWFkeSBleGlzdHMuCiAtLSBpbmRleGVzCi1DUkVBVEUg VEFCTEUgZ3Rlc3QyMmMgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikg U1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDIyYyAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGEgKiAyKSA6R2VuZXJhdGVkKTsKIENSRUFURSBJTkRFWCBndGVzdDIyY19iX2lk eCBPTiBndGVzdDIyYyAoYik7CiBDUkVBVEUgSU5ERVggZ3Rlc3QyMmNfZXhwcl9pZHggT04gZ3Rl c3QyMmMgKChiICogMykpOwogQ1JFQVRFIElOREVYIGd0ZXN0MjJjX3ByZWRfaWR4IE9OIGd0ZXN0 MjJjIChhKSBXSEVSRSBiID4gMDsKQEAgLTg1NiwxMSArODU5LDExIEBAIFJFU0VUIGVuYWJsZV9i aXRtYXBzY2FuOwogLS0gZm9yZWlnbiBrZXlzCiBDUkVBVEUgVEFCTEUgZ3Rlc3QyM2EgKHggaW50 IFBSSU1BUlkgS0VZLCB5IGludCk7CiBJTlNFUlQgSU5UTyBndGVzdDIzYSBWQUxVRVMgKDEsIDEx KSwgKDIsIDIyKSwgKDMsIDMzKTsKLUNSRUFURSBUQUJMRSBndGVzdDIzeCAoYSBpbnQgUFJJTUFS WSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQgUkVGRVJFTkNF UyBndGVzdDIzYSAoeCkgT04gVVBEQVRFIENBU0NBREUpOyAgLS0gZXJyb3IKK0NSRUFURSBUQUJM RSBndGVzdDIzeCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgKiAyKSA6R2VuZXJhdGVkIFJFRkVSRU5DRVMgZ3Rlc3QyM2EgKHgpIE9OIFVQREFURSBDQVND QURFKTsgIC0tIGVycm9yCiBFUlJPUjogIGludmFsaWQgT04gVVBEQVRFIGFjdGlvbiBmb3IgZm9y ZWlnbiBrZXkgY29uc3RyYWludCBjb250YWluaW5nIGdlbmVyYXRlZCBjb2x1bW4KLUNSRUFURSBU QUJMRSBndGVzdDIzeCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgKiAyKSBTVE9SRUQgUkVGRVJFTkNFUyBndGVzdDIzYSAoeCkgT04gREVMRVRFIFNFVCBO VUxMKTsgIC0tIGVycm9yCitDUkVBVEUgVEFCTEUgZ3Rlc3QyM3ggKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZCBSRUZFUkVOQ0VT IGd0ZXN0MjNhICh4KSBPTiBERUxFVEUgU0VUIE5VTEwpOyAgLS0gZXJyb3IKIEVSUk9SOiAgaW52 YWxpZCBPTiBERUxFVEUgYWN0aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJhaW50IGNvbnRhaW5p bmcgZ2VuZXJhdGVkIGNvbHVtbgotQ1JFQVRFIFRBQkxFIGd0ZXN0MjNiIChhIGludCBQUklNQVJZ IEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCBSRUZFUkVOQ0VT IGd0ZXN0MjNhICh4KSk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyM2IgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZCBSRUZFUkVOQ0VT IGd0ZXN0MjNhICh4KSk7CiBcZCBndGVzdDIzYgogICAgICAgICAgICAgICAgICAgIFRhYmxlICJn ZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjNiIgogIENvbHVtbiB8ICBUeXBlICAgfCBDb2xs YXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCkBA IC04ODIsNyArODg1LDcgQEAgREVUQUlMOiAgS2V5IChiKT0oNSkgaXMgbm90IHByZXNlbnQgaW4g dGFibGUgImd0ZXN0MjNhIi4KIEFMVEVSIFRBQkxFIGd0ZXN0MjNiIEFMVEVSIENPTFVNTiBiIFNF VCBFWFBSRVNTSU9OIEFTIChhICogMSk7IC0tIG9rCiBEUk9QIFRBQkxFIGd0ZXN0MjNiOwogRFJP UCBUQUJMRSBndGVzdDIzYTsKLUNSRUFURSBUQUJMRSBndGVzdDIzcCAoeCBpbnQsIHkgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKHggKiAyKSBTVE9SRUQsIFBSSU1BUlkgS0VZICh5KSk7CitDUkVB VEUgVEFCTEUgZ3Rlc3QyM3AgKHggaW50LCB5IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICog MikgOkdlbmVyYXRlZCwgUFJJTUFSWSBLRVkgKHkpKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjNwIFZB TFVFUyAoMSksICgyKSwgKDMpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0MjNxIChhIGludCBQUklNQVJZ IEtFWSwgYiBpbnQgUkVGRVJFTkNFUyBndGVzdDIzcCAoeSkpOwogSU5TRVJUIElOVE8gZ3Rlc3Qy M3EgVkFMVUVTICgxLCAyKTsgIC0tIG9rCkBAIC04OTEsNDUgKzg5NCw0NSBAQCBFUlJPUjogIGlu c2VydCBvciB1cGRhdGUgb24gdGFibGUgImd0ZXN0MjNxIiB2aW9sYXRlcyBmb3JlaWduIGtleSBj b25zdHJhaW50ICJndAogREVUQUlMOiAgS2V5IChiKT0oNSkgaXMgbm90IHByZXNlbnQgaW4gdGFi bGUgImd0ZXN0MjNwIi4KIC0tIGRvbWFpbnMKIENSRUFURSBET01BSU4gZ3Rlc3Rkb21haW4xIEFT IGludCBDSEVDSyAoVkFMVUUgPCAxMCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QyNCAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgZ3Rlc3Rkb21haW4xIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9S RUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjQgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGd0ZXN0ZG9t YWluMSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZCk7CiBJTlNFUlQgSU5U TyBndGVzdDI0IChhKSBWQUxVRVMgKDQpOyAgLS0gb2sKIElOU0VSVCBJTlRPIGd0ZXN0MjQgKGEp IFZBTFVFUyAoNik7ICAtLSBlcnJvcgogRVJST1I6ICB2YWx1ZSBmb3IgZG9tYWluIGd0ZXN0ZG9t YWluMSB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJndGVzdGRvbWFpbjFfY2hlY2siCiBDUkVB VEUgVFlQRSBndGVzdGRvbWFpbjFyYW5nZSBBUyByYW5nZSAoc3VidHlwZSA9IGd0ZXN0ZG9tYWlu MSk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QyNHIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGd0ZXN0ZG9t YWluMXJhbmdlIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGd0ZXN0ZG9tYWluMXJhbmdlKGEsIGEgKyA1 KSkgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDI0ciAoYSBpbnQgUFJJTUFSWSBLRVksIGIg Z3Rlc3Rkb21haW4xcmFuZ2UgR0VORVJBVEVEIEFMV0FZUyBBUyAoZ3Rlc3Rkb21haW4xcmFuZ2Uo YSwgYSArIDUpKSA6R2VuZXJhdGVkKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjRyIChhKSBWQUxVRVMg KDQpOyAgLS0gb2sKIElOU0VSVCBJTlRPIGd0ZXN0MjRyIChhKSBWQUxVRVMgKDYpOyAgLS0gZXJy b3IKIEVSUk9SOiAgdmFsdWUgZm9yIGRvbWFpbiBndGVzdGRvbWFpbjEgdmlvbGF0ZXMgY2hlY2sg Y29uc3RyYWludCAiZ3Rlc3Rkb21haW4xX2NoZWNrIgogQ1JFQVRFIFRBQkxFIGd0ZXN0MjRhdCAo YSBpbnQgUFJJTUFSWSBLRVkpOwotQUxURVIgVEFCTEUgZ3Rlc3QyNGF0IEFERCBDT0xVTU4gYiBn dGVzdGRvbWFpbjEgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRDsgIC0tIG9rCi1D UkVBVEUgVEFCTEUgZ3Rlc3QyNGF0YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQUxURVIgVEFCTEUgZ3Rlc3QyNGF0IEFERCBD T0xVTU4gYiBndGVzdGRvbWFpbjEgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0 ZWQ7ICAtLSBvaworQ1JFQVRFIFRBQkxFIGd0ZXN0MjRhdGEgKGEgaW50IFBSSU1BUlkgS0VZLCBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZCk7CiBBTFRFUiBUQUJM RSBndGVzdDI0YXRhIEFMVEVSIENPTFVNTiBiIFRZUEUgZ3Rlc3Rkb21haW4xOyAgLS0gb2sKIENS RUFURSBET01BSU4gZ3Rlc3Rkb21haW5ubiBBUyBpbnQgQ0hFQ0sgKFZBTFVFIElTIE5PVCBOVUxM KTsKLUNSRUFURSBUQUJMRSBndGVzdDI0bm4gKGEgaW50LCBiIGd0ZXN0ZG9tYWlubm4gR0VORVJB VEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyNG5uIChh IGludCwgYiBndGVzdGRvbWFpbm5uIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSA6R2VuZXJh dGVkKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjRubiAoYSkgVkFMVUVTICg0KTsgIC0tIG9rCiBJTlNF UlQgSU5UTyBndGVzdDI0bm4gKGEpIFZBTFVFUyAoTlVMTCk7ICAtLSBlcnJvcgogRVJST1I6ICB2 YWx1ZSBmb3IgZG9tYWluIGd0ZXN0ZG9tYWlubm4gdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAi Z3Rlc3Rkb21haW5ubl9jaGVjayIKIC0tIHR5cGVkIHRhYmxlcyAoY3VycmVudGx5IG5vdCBzdXBw b3J0ZWQpCiBDUkVBVEUgVFlQRSBndGVzdF90eXBlIEFTIChmMSBpbnRlZ2VyLCBmMiB0ZXh0LCBm MyBiaWdpbnQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjggT0YgZ3Rlc3RfdHlwZSAoZjEgV0lUSCBP UFRJT05TIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICoyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxF IGd0ZXN0MjggT0YgZ3Rlc3RfdHlwZSAoZjEgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMg QVMgKGYyICoyKSA6R2VuZXJhdGVkKTsKIEVSUk9SOiAgZ2VuZXJhdGVkIGNvbHVtbnMgYXJlIG5v dCBzdXBwb3J0ZWQgb24gdHlwZWQgdGFibGVzCiBEUk9QIFRZUEUgZ3Rlc3RfdHlwZSBDQVNDQURF OwogLS0gcGFydGl0aW9uaW5nIGNhc2VzCiBDUkVBVEUgVEFCTEUgZ3Rlc3RfcGFyZW50IChmMSBk YXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCkgUEFSVElUSU9OIEJZIFJBTkdFIChm MSk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQgUEFSVElUSU9OIE9GIGd0ZXN0X3BhcmVudCAo Ci0gICAgZjMgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgU1RPUkVE CisgICAgZjMgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgOkdlbmVy YXRlZAogKSBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA3LTAxJykgVE8gKCcyMDE2LTA4LTAxJyk7 IC0tIGVycm9yCiBFUlJPUjogIGNoaWxkIGNvbHVtbiAiZjMiIHNwZWNpZmllcyBnZW5lcmF0aW9u IGV4cHJlc3Npb24KIEhJTlQ6ICBBIGNoaWxkIHRhYmxlIGNvbHVtbiBjYW5ub3QgYmUgZ2VuZXJh dGVkIHVubGVzcyBpdHMgcGFyZW50IGNvbHVtbiBpcy4KLUNSRUFURSBUQUJMRSBndGVzdF9jaGls ZCAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoZjIgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkIChmMSBkYXRl IE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAq IDIpIDpHZW5lcmF0ZWQpOwogQUxURVIgVEFCTEUgZ3Rlc3RfcGFyZW50IEFUVEFDSCBQQVJUSVRJ T04gZ3Rlc3RfY2hpbGQgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wNy0wMScpIFRPICgnMjAxNi0w OC0wMScpOyAtLSBlcnJvcgogRVJST1I6ICBjb2x1bW4gImYzIiBpbiBjaGlsZCB0YWJsZSBtdXN0 IG5vdCBiZSBhIGdlbmVyYXRlZCBjb2x1bW4KIERST1AgVEFCTEUgZ3Rlc3RfcGFyZW50LCBndGVz dF9jaGlsZDsKLUNSRUFURSBUQUJMRSBndGVzdF9wYXJlbnQgKGYxIGRhdGUgTk9UIE5VTEwsIGYy IGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgU1RPUkVEKSBQ QVJUSVRJT04gQlkgUkFOR0UgKGYxKTsKK0NSRUFURSBUQUJMRSBndGVzdF9wYXJlbnQgKGYxIGRh dGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYy ICogMikgOkdlbmVyYXRlZCkgUEFSVElUSU9OIEJZIFJBTkdFIChmMSk7CiBDUkVBVEUgVEFCTEUg Z3Rlc3RfY2hpbGQgUEFSVElUSU9OIE9GIGd0ZXN0X3BhcmVudAogICBGT1IgVkFMVUVTIEZST00g KCcyMDE2LTA3LTAxJykgVE8gKCcyMDE2LTA4LTAxJyk7ICAtLSBpbmhlcml0cyBnZW4gZXhwcgog Q1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMiBQQVJUSVRJT04gT0YgZ3Rlc3RfcGFyZW50ICgKLSAg ICBmMyBXSVRIIE9QVElPTlMgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyMikgU1RPUkVEICAt LSBvdmVycmlkZXMgZ2VuIGV4cHIKKyAgICBmMyBXSVRIIE9QVElPTlMgR0VORVJBVEVEIEFMV0FZ UyBBUyAoZjIgKiAyMikgOkdlbmVyYXRlZCAgLS0gb3ZlcnJpZGVzIGdlbiBleHByCiApIEZPUiBW QUxVRVMgRlJPTSAoJzIwMTYtMDgtMDEnKSBUTyAoJzIwMTYtMDktMDEnKTsKIENSRUFURSBUQUJM RSBndGVzdF9jaGlsZDMgUEFSVElUSU9OIE9GIGd0ZXN0X3BhcmVudCAoCiAgICAgZjMgREVGQVVM VCA0MiAgLS0gZXJyb3IKQEAgLTk0MCw3ICs5NDMsNyBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hp bGQzIFBBUlRJVElPTiBPRiBndGVzdF9wYXJlbnQgKAogKSBGT1IgVkFMVUVTIEZST00gKCcyMDE2 LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7CiBFUlJPUjogIGlkZW50aXR5IGNvbHVtbnMgYXJl IG5vdCBzdXBwb3J0ZWQgb24gcGFydGl0aW9ucwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyBQ QVJUSVRJT04gT0YgZ3Rlc3RfcGFyZW50ICgKLSAgICBmMyBHRU5FUkFURUQgQUxXQVlTIEFTIChm MiAqIDIpIFZJUlRVQUwgIC0tIGVycm9yCisgICAgZjMgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIg KiAyKSA6T3RoZXIgIC0tIGVycm9yCiApIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDktMDEnKSBU TyAoJzIwMTYtMTAtMDEnKTsKIEVSUk9SOiAgY29sdW1uICJmMyIgaW5oZXJpdHMgZnJvbSBnZW5l cmF0ZWQgY29sdW1uIG9mIGRpZmZlcmVudCBraW5kCiBERVRBSUw6ICBQYXJlbnQgY29sdW1uIGlz IFNUT1JFRCwgY2hpbGQgY29sdW1uIGlzIFZJUlRVQUwuCkBAIC05NTcsMTIgKzk2MCwxMiBAQCBB TFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQVRUQUNIIFBBUlRJVElPTiBndGVzdF9jaGlsZDMgRk9S IFZBTFVFUyBGUk9NICgnMjAxNi0wOQogRVJST1I6ICB0YWJsZSAiZ3Rlc3RfY2hpbGQzIiBiZWlu ZyBhdHRhY2hlZCBjb250YWlucyBhbiBpZGVudGl0eSBjb2x1bW4gImYzIgogREVUQUlMOiAgVGhl IG5ldyBwYXJ0aXRpb24gbWF5IG5vdCBjb250YWluIGFuIGlkZW50aXR5IGNvbHVtbi4KIERST1Ag VEFCTEUgZ3Rlc3RfY2hpbGQzOwotQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyAoZjEgZGF0ZSBO T1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAz MykgVklSVFVBTCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIChmMSBkYXRlIE5PVCBOVUxM LCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDMzKSA6T3Ro ZXIpOwogQUxURVIgVEFCTEUgZ3Rlc3RfcGFyZW50IEFUVEFDSCBQQVJUSVRJT04gZ3Rlc3RfY2hp bGQzIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDktMDEnKSBUTyAoJzIwMTYtMTAtMDEnKTsgLS0g ZXJyb3IKIEVSUk9SOiAgY29sdW1uICJmMyIgaW5oZXJpdHMgZnJvbSBnZW5lcmF0ZWQgY29sdW1u IG9mIGRpZmZlcmVudCBraW5kCiBERVRBSUw6ICBQYXJlbnQgY29sdW1uIGlzIFNUT1JFRCwgY2hp bGQgY29sdW1uIGlzIFZJUlRVQUwuCiBEUk9QIFRBQkxFIGd0ZXN0X2NoaWxkMzsKLUNSRUFURSBU QUJMRSBndGVzdF9jaGlsZDMgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMzMpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rl c3RfY2hpbGQzIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChmMiAqIDMzKSA6R2VuZXJhdGVkKTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3Bh cmVudCBBVFRBQ0ggUEFSVElUSU9OIGd0ZXN0X2NoaWxkMyBGT1IgVkFMVUVTIEZST00gKCcyMDE2 LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7CiBcZCBndGVzdF9jaGlsZAogICAgICAgICAgICAg ICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3RfY2hpbGQiCkBAIC0xMTI2 LDEyICsxMTI5LDEyIEBAIFNFTEVDVCB0YWJsZW9pZDo6cmVnY2xhc3MsICogRlJPTSBndGVzdF9w YXJlbnQgT1JERVIgQlkgMSwgMiwgMzsKIAogLS0gd2UgbGVhdmUgdGhlc2UgdGFibGVzIGFyb3Vu ZCBmb3IgcHVycG9zZXMgb2YgdGVzdGluZyBkdW1wL3JlbG9hZC91cGdyYWRlCiAtLSBnZW5lcmF0 ZWQgY29sdW1ucyBpbiBwYXJ0aXRpb24ga2V5IChub3QgYWxsb3dlZCkKLUNSRUFURSBUQUJMRSBn dGVzdF9wYXJ0X2tleSAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBTVE9SRUQpIFBBUlRJVElPTiBCWSBSQU5HRSAoZjMp OworQ1JFQVRFIFRBQkxFIGd0ZXN0X3BhcnRfa2V5IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdp bnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIDpHZW5lcmF0ZWQpIFBB UlRJVElPTiBCWSBSQU5HRSAoZjMpOwogRVJST1I6ICBjYW5ub3QgdXNlIGdlbmVyYXRlZCBjb2x1 bW4gaW4gcGFydGl0aW9uIGtleQogTElORSAxOiAuLi5FTkVSQVRFRCBBTFdBWVMgQVMgKGYyICog MikgU1RPUkVEKSBQQVJUSVRJT04gQlkgUkFOR0UgKGYzKTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBERVRBSUw6 ICBDb2x1bW4gImYzIiBpcyBhIGdlbmVyYXRlZCBjb2x1bW4uCi1DUkVBVEUgVEFCTEUgZ3Rlc3Rf cGFydF9rZXkgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGYyICogMikgU1RPUkVEKSBQQVJUSVRJT04gQlkgUkFOR0UgKChmMyAqIDMp KTsKK0NSRUFURSBUQUJMRSBndGVzdF9wYXJ0X2tleSAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmln aW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSA6R2VuZXJhdGVkKSBQ QVJUSVRJT04gQlkgUkFOR0UgKChmMyAqIDMpKTsKIEVSUk9SOiAgY2Fubm90IHVzZSBnZW5lcmF0 ZWQgY29sdW1uIGluIHBhcnRpdGlvbiBrZXkKIExJTkUgMTogLi4uRUQgQUxXQVlTIEFTIChmMiAq IDIpIFNUT1JFRCkgUEFSVElUSU9OIEJZIFJBTkdFICgoZjMgKiAzKSk7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpAQCAtMTEz OSw3ICsxMTQyLDcgQEAgREVUQUlMOiAgQ29sdW1uICJmMyIgaXMgYSBnZW5lcmF0ZWQgY29sdW1u LgogLS0gQUxURVIgVEFCTEUgLi4uIEFERCBDT0xVTU4KIENSRUFURSBUQUJMRSBndGVzdDI1IChh IGludCBQUklNQVJZIEtFWSk7CiBJTlNFUlQgSU5UTyBndGVzdDI1IFZBTFVFUyAoMyksICg0KTsK LUFMVEVSIFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChhICogMikgU1RPUkVELCBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDMp OworQUxURVIgVEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgKiAyKSA6R2VuZXJhdGVkLCBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAo YSAqIDMpOwogU0VMRUNUICogRlJPTSBndGVzdDI1IE9SREVSIEJZIGE7CiAgYSB8IGIgIAogLS0t Ky0tLS0KQEAgLTExNDcsMTYgKzExNTAsMTYgQEAgU0VMRUNUICogRlJPTSBndGVzdDI1IE9SREVS IEJZIGE7CiAgNCB8IDEyCiAoMiByb3dzKQogCi1BTFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xV TU4geCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDQpIFNUT1JFRDsgIC0tIGVycm9yCitB TFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xVTU4geCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YiAqIDQpIDpHZW5lcmF0ZWQ7ICAtLSBlcnJvcgogRVJST1I6ICBjYW5ub3QgdXNlIGdlbmVyYXRl ZCBjb2x1bW4gImIiIGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb24KIERFVEFJTDogIEEg Z2VuZXJhdGVkIGNvbHVtbiBjYW5ub3QgcmVmZXJlbmNlIGFub3RoZXIgZ2VuZXJhdGVkIGNvbHVt bi4KLUFMVEVSIFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiB4IGludCBHRU5FUkFURUQgQUxXQVlT IEFTICh6ICogNCkgU1RPUkVEOyAgLS0gZXJyb3IKK0FMVEVSIFRBQkxFIGd0ZXN0MjUgQUREIENP TFVNTiB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh6ICogNCkgOkdlbmVyYXRlZDsgIC0tIGVy cm9yCiBFUlJPUjogIGNvbHVtbiAieiIgZG9lcyBub3QgZXhpc3QKIEFMVEVSIFRBQkxFIGd0ZXN0 MjUgQUREIENPTFVNTiBjIGludCBERUZBVUxUIDQyLAotICBBREQgQ09MVU1OIHggaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGMgKiA0KSBTVE9SRUQ7CisgIEFERCBDT0xVTU4geCBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYyAqIDQpIDpHZW5lcmF0ZWQ7CiBBTFRFUiBUQUJMRSBndGVzdDI1IEFE RCBDT0xVTU4gZCBpbnQgREVGQVVMVCAxMDE7CiBBTFRFUiBUQUJMRSBndGVzdDI1IEFMVEVSIENP TFVNTiBkIFNFVCBEQVRBIFRZUEUgZmxvYXQ4LAotICBBREQgQ09MVU1OIHkgZmxvYXQ4IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGQgKiA0KSBTVE9SRUQ7CisgIEFERCBDT0xVTU4geSBmbG9hdDggR0VO RVJBVEVEIEFMV0FZUyBBUyAoZCAqIDQpIDpHZW5lcmF0ZWQ7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0 MjUgT1JERVIgQlkgYTsKICBhIHwgYiAgfCBjICB8ICB4ICB8ICBkICB8ICB5ICAKIC0tLSstLS0t Ky0tLS0rLS0tLS0rLS0tLS0rLS0tLS0KQEAgLTExODEsNyArMTE4NCw3IEBAIEluZGV4ZXM6CiBD UkVBVEUgVEFCTEUgZ3Rlc3QyNyAoCiAgICAgYSBpbnQsCiAgICAgYiBpbnQsCi0gICAgeCBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoKGEgKyBiKSAqIDIpIFNUT1JFRAorICAgIHggaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKChhICsgYikgKiAyKSA6R2VuZXJhdGVkCiApOwogSU5TRVJUIElOVE8g Z3Rlc3QyNyAoYSwgYikgVkFMVUVTICgzLCA3KSwgKDQsIDExKTsKIEFMVEVSIFRBQkxFIGd0ZXN0 MjcgQUxURVIgQ09MVU1OIGEgVFlQRSB0ZXh0OyAgLS0gZXJyb3IKQEAgLTEyMTcsNyArMTIyMCw3 IEBAIEFMVEVSIFRBQkxFIGd0ZXN0MjcKICAgRFJPUCBDT0xVTU4geCwKICAgQUxURVIgQ09MVU1O IGEgVFlQRSBiaWdpbnQsCiAgIEFMVEVSIENPTFVNTiBiIFRZUEUgYmlnaW50LAotICBBREQgQ09M VU1OIHggYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChhICsgYikgKiAyKSBTVE9SRUQgTk9U IE5VTEw7ICAtLSBlcnJvcgorICBBREQgQ09MVU1OIHggYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKChhICsgYikgKiAyKSA6R2VuZXJhdGVkIE5PVCBOVUxMOyAgLS0gZXJyb3IKIEVSUk9SOiAg Y29sdW1uICJ4IiBvZiByZWxhdGlvbiAiZ3Rlc3QyNyIgY29udGFpbnMgbnVsbCB2YWx1ZXMKIERF TEVURSBGUk9NIGd0ZXN0MjcgV0hFUkUgYSBJUyBOVUxMIEFORCBiIElTIE5VTEw7CiAtLSBJdCdz IHBvc3NpYmxlIHRvIGFsdGVyIHRoZSBjb2x1bW4gdHlwZXMgdGhpcyB3YXk6CkBAIC0xMjI1LDcg KzEyMjgsNyBAQCBBTFRFUiBUQUJMRSBndGVzdDI3CiAgIERST1AgQ09MVU1OIHgsCiAgIEFMVEVS IENPTFVNTiBhIFRZUEUgYmlnaW50LAogICBBTFRFUiBDT0xVTU4gYiBUWVBFIGJpZ2ludCwKLSAg QUREIENPTFVNTiB4IGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoYSArIGIpICogMikgU1RP UkVEOworICBBREQgQ09MVU1OIHggYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChhICsgYikg KiAyKSA6R2VuZXJhdGVkOwogXGQgZ3Rlc3QyNwogICAgICAgICAgICAgICAgICAgICAgIFRhYmxl ICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjciCiAgQ29sdW1uIHwgIFR5cGUgIHwgQ29s bGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAg ICAgIApAQCAtMTI1OCw3ICsxMjYxLDcgQEAgU0VMRUNUICogRlJPTSBndGVzdDI3OwogLS0gQUxU RVIgVEFCTEUgLi4uIEFMVEVSIENPTFVNTiAuLi4gRFJPUCBFWFBSRVNTSU9OCiBDUkVBVEUgVEFC TEUgZ3Rlc3QyOSAoCiAgICAgYSBpbnQsCi0gICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YSAqIDIpIFNUT1JFRAorICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSA6R2Vu ZXJhdGVkCiApOwogSU5TRVJUIElOVE8gZ3Rlc3QyOSAoYSkgVkFMVUVTICgzKSwgKDQpOwogU0VM RUNUICogRlJPTSBndGVzdDI5OwpAQCAtMTMyNyw3ICsxMzMwLDcgQEAgQUxURVIgVEFCTEUgZ3Rl c3QyOSBEUk9QIENPTFVNTiBhOyAgLS0gc2hvdWxkIG5vdCBkcm9wIGIKIC0tIHdpdGggaW5oZXJp dGFuY2UKIENSRUFURSBUQUJMRSBndGVzdDMwICgKICAgICBhIGludCwKLSAgICBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVECisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQKICk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QzMF8xICgpIElO SEVSSVRTIChndGVzdDMwKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MzAgQUxURVIgQ09MVU1OIGIgRFJP UCBFWFBSRVNTSU9OOwpAQCAtMTM1MSw3ICsxMzU0LDcgQEAgRFJPUCBUQUJMRSBndGVzdDMwIENB U0NBREU7CiBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIGd0ZXN0MzBfMQogQ1JFQVRF IFRBQkxFIGd0ZXN0MzAgKAogICAgIGEgaW50LAotICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgKiAyKSBTVE9SRUQKKyAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikg OkdlbmVyYXRlZAogKTsKIENSRUFURSBUQUJMRSBndGVzdDMwXzEgKCkgSU5IRVJJVFMgKGd0ZXN0 MzApOwogQUxURVIgVEFCTEUgT05MWSBndGVzdDMwIEFMVEVSIENPTFVNTiBiIERST1AgRVhQUkVT U0lPTjsgIC0tIGVycm9yCkBAIC0xMzc1LDcgKzEzNzgsNyBAQCBJbmhlcml0czogZ3Rlc3QzMAog QUxURVIgVEFCTEUgZ3Rlc3QzMF8xIEFMVEVSIENPTFVNTiBiIERST1AgRVhQUkVTU0lPTjsgIC0t IGVycm9yCiBFUlJPUjogIGNhbm5vdCBkcm9wIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBmcm9tIGlu aGVyaXRlZCBjb2x1bW4KIC0tIGNvbXBvc2l0ZSB0eXBlIGRlcGVuZGVuY2llcwotQ1JFQVRFIFRB QkxFIGd0ZXN0MzFfMSAoYSBpbnQsIGIgdGV4dCBHRU5FUkFURUQgQUxXQVlTIEFTICgnaGVsbG8n KSBTVE9SRUQsIGMgdGV4dCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QzMV8xIChhIGludCwgYiB0ZXh0 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKCdoZWxsbycpIDpHZW5lcmF0ZWQsIGMgdGV4dCk7CiBDUkVB VEUgVEFCTEUgZ3Rlc3QzMV8yICh4IGludCwgeSBndGVzdDMxXzEpOwogQUxURVIgVEFCTEUgZ3Rl c3QzMV8xIEFMVEVSIENPTFVNTiBiIFRZUEUgdmFyY2hhcjsgIC0tIGZhaWxzCiBFUlJPUjogIGNh bm5vdCBhbHRlciB0YWJsZSAiZ3Rlc3QzMV8xIiBiZWNhdXNlIGNvbHVtbiAiZ3Rlc3QzMV8yLnki IHVzZXMgaXRzIHJvdyB0eXBlCkBAIC0xMzkzLDcgKzEzOTYsNyBAQCBBTFRFUiBUQUJMRSBndGVz dDMxXzEgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKCdoZWxsbzMnKTsKIEVSUk9S OiAgY2Fubm90IGFsdGVyIHRhYmxlICJndGVzdDMxXzEiIGJlY2F1c2UgY29sdW1uICJndGVzdDMx XzIueSIgdXNlcyBpdHMgcm93IHR5cGUKIERST1AgVEFCTEUgZ3Rlc3QzMV8xLCBndGVzdDMxXzI7 CiAtLSBDaGVjayBpdCBmb3IgYSBwYXJ0aXRpb25lZCB0YWJsZSwgdG9vCi1DUkVBVEUgVEFCTEUg Z3Rlc3QzMV8xIChhIGludCwgYiB0ZXh0IEdFTkVSQVRFRCBBTFdBWVMgQVMgKCdoZWxsbycpIFNU T1JFRCwgYyB0ZXh0KSBQQVJUSVRJT04gQlkgTElTVCAoYSk7CitDUkVBVEUgVEFCTEUgZ3Rlc3Qz MV8xIChhIGludCwgYiB0ZXh0IEdFTkVSQVRFRCBBTFdBWVMgQVMgKCdoZWxsbycpIDpHZW5lcmF0 ZWQsIGMgdGV4dCkgUEFSVElUSU9OIEJZIExJU1QgKGEpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0MzFf MiAoeCBpbnQsIHkgZ3Rlc3QzMV8xKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MzFfMSBBTFRFUiBDT0xV TU4gYiBUWVBFIHZhcmNoYXI7ICAtLSBmYWlscwogRVJST1I6ICBjYW5ub3QgYWx0ZXIgdGFibGUg Imd0ZXN0MzFfMSIgYmVjYXVzZSBjb2x1bW4gImd0ZXN0MzFfMi55IiB1c2VzIGl0cyByb3cgdHlw ZQpAQCAtMTQwMSw3ICsxNDA0LDcgQEAgRFJPUCBUQUJMRSBndGVzdDMxXzEsIGd0ZXN0MzFfMjsK IC0tIHRyaWdnZXJzCiBDUkVBVEUgVEFCTEUgZ3Rlc3QyNiAoCiAgICAgYSBpbnQgUFJJTUFSWSBL RVksCi0gICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRAorICAgIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSA6R2VuZXJhdGVkCiApOwogQ1JFQVRFIEZV TkNUSU9OIGd0ZXN0X3RyaWdnZXJfZnVuYygpIFJFVFVSTlMgdHJpZ2dlcgogICBMQU5HVUFHRSBw bHBnc3FsCkBAIC0xNTUzLDcgKzE1NTYsNyBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3QyOGEgKAogICBh IGludCwKICAgYiBpbnQsCiAgIGMgaW50LAotICB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChi ICogMikgU1RPUkVECisgIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSA6R2VuZXJh dGVkCiApOwogQUxURVIgVEFCTEUgZ3Rlc3QyOGEgRFJPUCBDT0xVTU4gYTsKIENSRUFURSBUQUJM RSBndGVzdDI4YiAoTElLRSBndGVzdDI4YSBJTkNMVURJTkcgR0VORVJBVEVEKTsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3ZpcnR1YWwub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0ZWRfdmlydHVhbC5vdXQKaW5kZXggZmJhYmY1 MmRiMzAuLjZmM2ZjMTdjMzk1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2dlbmVyYXRlZF92aXJ0dWFsLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dl bmVyYXRlZF92aXJ0dWFsLm91dApAQCAtMSw5ICsxLDEyIEBACiAtLSBrZWVwIHRoZXNlIHRlc3Rz IGFsaWduZWQgd2l0aCBnZW5lcmF0ZWRfc3RvcmVkLnNxbAorLS0gV2UgY2FuIHVzZSBwc3FsIHZh cmlhYmxlcyB0byBrZWVwIHRoZSBkaWZmIHRvIGEgbWluaW11bS4KK1xzZXQgR2VuZXJhdGVkICdW SVJUVUFMJworXHNldCBPdGhlciAnU1RPUkVEJwogQ1JFQVRFIFNDSEVNQSBnZW5lcmF0ZWRfdmly dHVhbF90ZXN0czsKIEdSQU5UIFVTQUdFIE9OIFNDSEVNQSBnZW5lcmF0ZWRfdmlydHVhbF90ZXN0 cyBUTyBQVUJMSUM7CiBTRVQgc2VhcmNoX3BhdGggPSBnZW5lcmF0ZWRfdmlydHVhbF90ZXN0czsK LUNSRUFURSBUQUJMRSBndGVzdDAgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTICg1NSkgVklSVFVBTCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QxIChhIGludCBQUklN QVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpOworQ1JF QVRFIFRBQkxFIGd0ZXN0MCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKDU1KSA6R2VuZXJhdGVkKTsKK0NSRUFURSBUQUJMRSBndGVzdDEgKGEgaW50IFBSSU1B UlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZCk7CiBT RUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGNvbHVtbl9kZWZhdWx0LCBpc19udWxsYWJs ZSwgaXNfZ2VuZXJhdGVkLCBnZW5lcmF0aW9uX2V4cHJlc3Npb24gRlJPTSBpbmZvcm1hdGlvbl9z Y2hlbWEuY29sdW1ucyBXSEVSRSB0YWJsZV9zY2hlbWEgPSAnZ2VuZXJhdGVkX3ZpcnR1YWxfdGVz dHMnIE9SREVSIEJZIDEsIDI7CiAgdGFibGVfbmFtZSB8IGNvbHVtbl9uYW1lIHwgY29sdW1uX2Rl ZmF1bHQgfCBpc19udWxsYWJsZSB8IGlzX2dlbmVyYXRlZCB8IGdlbmVyYXRpb25fZXhwcmVzc2lv biAKIC0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjksNzMgKzMy LDczIEBAIEluZGV4ZXM6CiAgICAgImd0ZXN0MV9wa2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGEp CiAKIC0tIGR1cGxpY2F0ZSBnZW5lcmF0ZWQKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfMSAoYSBp bnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFM IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAzKSBWSVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVz dF9lcnJfMSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEg KiAyKSA6R2VuZXJhdGVkIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAzKSA6R2VuZXJhdGVkKTsK IEVSUk9SOiAgbXVsdGlwbGUgZ2VuZXJhdGlvbiBjbGF1c2VzIHNwZWNpZmllZCBmb3IgY29sdW1u ICJiIiBvZiB0YWJsZSAiZ3Rlc3RfZXJyXzEiCiBMSU5FIDE6IC4uLlJZIEtFWSwgYiBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwgR0VORVJBVEVEIC4uLgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0t IHJlZmVyZW5jZXMgdG8gb3RoZXIgZ2VuZXJhdGVkIGNvbHVtbnMsIGluY2x1ZGluZyBzZWxmLXJl ZmVyZW5jZXMKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfMmEgKGEgaW50IFBSSU1BUlkgS0VZLCBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgVklSVFVBTCk7CitDUkVBVEUgVEFCTEUg Z3Rlc3RfZXJyXzJhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYiAqIDIpIDpHZW5lcmF0ZWQpOwogRVJST1I6ICBjYW5ub3QgdXNlIGdlbmVyYXRlZCBjb2x1 bW4gImIiIGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb24KIExJTkUgMTogLi4uMmEgKGEg aW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgVklSLi4u CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgogREVUQUlMOiAgQSBnZW5lcmF0ZWQgY29sdW1uIGNhbm5vdCByZWZlcmVuY2UgYW5v dGhlciBnZW5lcmF0ZWQgY29sdW1uLgotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8yYiAoYSBpbnQg UFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMLCBj IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMykgVklSVFVBTCk7CitDUkVBVEUgVEFCTEUg Z3Rlc3RfZXJyXzJiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYSAqIDIpIDpHZW5lcmF0ZWQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAzKSA6 R2VuZXJhdGVkKTsKIEVSUk9SOiAgY2Fubm90IHVzZSBnZW5lcmF0ZWQgY29sdW1uICJiIiBpbiBj b2x1bW4gZ2VuZXJhdGlvbiBleHByZXNzaW9uCiBMSU5FIDE6IC4uLllTIEFTIChhICogMikgVklS VFVBTCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDMpIFZJUi4uLgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERF VEFJTDogIEEgZ2VuZXJhdGVkIGNvbHVtbiBjYW5ub3QgcmVmZXJlbmNlIGFub3RoZXIgZ2VuZXJh dGVkIGNvbHVtbi4KIC0tIGEgd2hvbGUtcm93IHZhciBpcyBhIHNlbGYtcmVmZXJlbmNlIG9uIHN0 ZXJvaWRzLCBzbyBkaXNhbGxvdyB0aGF0IHRvbwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8yYyAo YSBpbnQgUFJJTUFSWSBLRVksCi0gICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVtX251 bGxzKGd0ZXN0X2Vycl8yYykpIFZJUlRVQUwpOworICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKG51bV9udWxscyhndGVzdF9lcnJfMmMpKSA6R2VuZXJhdGVkKTsKIEVSUk9SOiAgY2Fubm90 IHVzZSB3aG9sZS1yb3cgdmFyaWFibGUgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lvbgog TElORSAyOiAgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVtX251bGxzKGd0ZXN0X2Vy cl8yYykpIFZJUlQuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCiBERVRBSUw6ICBUaGlzIHdvdWxkIGNhdXNlIHRoZSBnZW5lcmF0ZWQgY29sdW1u IHRvIGRlcGVuZCBvbiBpdHMgb3duIHZhbHVlLgogLS0gaW52YWxpZCByZWZlcmVuY2UKLUNSRUFU RSBUQUJMRSBndGVzdF9lcnJfMyAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGMgKiAyKSBWSVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfMyAoYSBp bnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGMgKiAyKSA6R2VuZXJh dGVkKTsKIEVSUk9SOiAgY29sdW1uICJjIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiAuLi5fMyAo YSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGMgKiAyKSBWSVIu Li4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCiAtLSBnZW5lcmF0aW9uIGV4cHJlc3Npb24gbXVzdCBiZSBpbW11dGFibGUKLUNS RUFURSBUQUJMRSBndGVzdF9lcnJfNCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgZG91YmxlIHByZWNp c2lvbiBHRU5FUkFURUQgQUxXQVlTIEFTIChyYW5kb20oKSkgVklSVFVBTCk7CitDUkVBVEUgVEFC TEUgZ3Rlc3RfZXJyXzQgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGRvdWJsZSBwcmVjaXNpb24gR0VO RVJBVEVEIEFMV0FZUyBBUyAocmFuZG9tKCkpIDpHZW5lcmF0ZWQpOwogRVJST1I6ICBnZW5lcmF0 aW9uIGV4cHJlc3Npb24gaXMgbm90IGltbXV0YWJsZQogLS0gLi4uIGJ1dCBiZSBzdXJlIHRoYXQg dGhlIGltbXV0YWJpbGl0eSB0ZXN0IGlzIGFjY3VyYXRlCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyIChh IGludCwgYiB0ZXh0IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgfHwgJyBzZWMnKSBWSVJUVUFMKTsK K0NSRUFURSBUQUJMRSBndGVzdDIgKGEgaW50LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YSB8fCAnIHNlYycpIDpHZW5lcmF0ZWQpOwogRFJPUCBUQUJMRSBndGVzdDI7CiAtLSBjYW5ub3Qg aGF2ZSBkZWZhdWx0L2lkZW50aXR5IGFuZCBnZW5lcmF0ZWQKLUNSRUFURSBUQUJMRSBndGVzdF9l cnJfNWEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBERUZBVUxUIDUgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAqIDIpIFZJUlRVQUwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl81YSAoYSBpbnQg UFJJTUFSWSBLRVksIGIgaW50IERFRkFVTFQgNSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikg OkdlbmVyYXRlZCk7CiBFUlJPUjogIGJvdGggZGVmYXVsdCBhbmQgZ2VuZXJhdGlvbiBleHByZXNz aW9uIHNwZWNpZmllZCBmb3IgY29sdW1uICJiIiBvZiB0YWJsZSAiZ3Rlc3RfZXJyXzVhIgogTElO RSAxOiAuLi4gZ3Rlc3RfZXJyXzVhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgREVGQVVMVCA1 IEdFTkVSQVRFRCAuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzViIChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyBpZGVudGl0eSBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzViIChh IGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyBpZGVudGl0eSBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZCk7CiBFUlJPUjogIGJvdGggaWRlbnRp dHkgYW5kIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBzcGVjaWZpZWQgZm9yIGNvbHVtbiAiYiIgb2Yg dGFibGUgImd0ZXN0X2Vycl81YiIKIExJTkUgMTogLi4udCBQUklNQVJZIEtFWSwgYiBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyBpZGVudGl0eSBHRU5FUkFURUQgLi4uCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0gcmVmZXJl bmNlIHRvIHN5c3RlbSBjb2x1bW4gbm90IGFsbG93ZWQgaW4gZ2VuZXJhdGVkIGNvbHVtbgogLS0g KGV4Y2VwdCB0YWJsZW9pZCwgd2hpY2ggd2UgdGVzdCBiZWxvdykKLUNSRUFURSBUQUJMRSBndGVz dF9lcnJfNmEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGJvb2wgR0VORVJBVEVEIEFMV0FZUyBBUyAo eG1pbiA8PiAzNykgVklSVFVBTCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzZhIChhIGludCBQ UklNQVJZIEtFWSwgYiBib29sIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHhtaW4gPD4gMzcpIDpHZW5l cmF0ZWQpOwogRVJST1I6ICBjYW5ub3QgdXNlIHN5c3RlbSBjb2x1bW4gInhtaW4iIGluIGNvbHVt biBnZW5lcmF0aW9uIGV4cHJlc3Npb24KIExJTkUgMTogLi4uYSAoYSBpbnQgUFJJTUFSWSBLRVks IGIgYm9vbCBHRU5FUkFURUQgQUxXQVlTIEFTICh4bWluIDw+IDM3Li4uCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0gdmFy aW91cyBwcm9oaWJpdGVkIGNvbnN0cnVjdHMKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfN2EgKGEg aW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhdmcoYSkpIFZJUlRV QUwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGF2ZyhhKSkgOkdlbmVyYXRlZCk7CiBFUlJPUjogIGFnZ3Jl Z2F0ZSBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJl c3Npb25zCiBMSU5FIDE6IC4uLjdhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYXZnKGEpKSBWSS4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KLUNSRUFURSBUQUJMRSBndGVzdF9lcnJf N2IgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChyb3dfbnVt YmVyKCkgT1ZFUiAoT1JERVIgQlkgYSkpIFZJUlRVQUwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vy cl83YiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHJvd19u dW1iZXIoKSBPVkVSIChPUkRFUiBCWSBhKSkgOkdlbmVyYXRlZCk7CiBFUlJPUjogIHdpbmRvdyBm dW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb25z CiBMSU5FIDE6IC4uLjdiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAocm93X251bWJlci4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfN2MgKGEg aW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoU0VMRUNUIGEpKSBW SVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfN2MgKGEgaW50IFBSSU1BUlkgS0VZLCBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoU0VMRUNUIGEpKSA6R2VuZXJhdGVkKTsKIEVSUk9S OiAgY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBjb2x1bW4gZ2VuZXJhdGlvbiBleHByZXNzaW9uCiBM SU5FIDE6IC4uLjdjIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoKFNFTEVDVCBhKS4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfN2QgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChnZW5lcmF0ZV9zZXJpZXMo MSwgYSkpIFZJUlRVQUwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83ZCAoYSBpbnQgUFJJTUFS WSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGdlbmVyYXRlX3NlcmllcygxLCBhKSkg OkdlbmVyYXRlZCk7CiBFUlJPUjogIHNldC1yZXR1cm5pbmcgZnVuY3Rpb25zIGFyZSBub3QgYWxs b3dlZCBpbiBjb2x1bW4gZ2VuZXJhdGlvbiBleHByZXNzaW9ucwogTElORSAxOiAuLi43ZCAoYSBp bnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGdlbmVyYXRlX3MuLi4K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCiAtLSBHRU5FUkFURUQgQlkgREVGQVVMVCBub3QgYWxsb3dlZAotQ1JFQVRFIFRBQkxF IGd0ZXN0X2Vycl84IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEJZIERFRkFV TFQgQVMgKGEgKiAyKSBWSVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfOCAoYSBpbnQg UFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBCWSBERUZBVUxUIEFTIChhICogMikgOkdlbmVy YXRlZCk7CiBFUlJPUjogIGZvciBhIGdlbmVyYXRlZCBjb2x1bW4sIEdFTkVSQVRFRCBBTFdBWVMg bXVzdCBiZSBzcGVjaWZpZWQKIExJTkUgMTogLi4uRSBndGVzdF9lcnJfOCAoYSBpbnQgUFJJTUFS WSBLRVksIGIgaW50IEdFTkVSQVRFRCBCWSBERUZBVUxULi4uCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpAQCAtMjE1LDggKzIx OCw4IEBAIENSRUFURSBUQUJMRSBndGVzdG0gKAogICBpZCBpbnQgUFJJTUFSWSBLRVksCiAgIGYx IGludCwKICAgZjIgaW50LAotICBmMyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjEgKiAyKSBW SVJUVUFMLAotICBmNCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBWSVJUVUFMCisg IGYzIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMSAqIDIpIDpHZW5lcmF0ZWQsCisgIGY0IGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIDpHZW5lcmF0ZWQKICk7CiBJTlNFUlQgSU5U TyBndGVzdG0gVkFMVUVTICgxLCA1LCAxMDApOwogTUVSR0UgSU5UTyBndGVzdG0gdCBVU0lORyAo VkFMVUVTICgxLCAxMCksICgyLCAyMCkpIHYoaWQsIGYxKSBPTiB0LmlkID0gdi5pZApAQCAtMjM5 LDcgKzI0Miw3IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3RtIE9SREVSIEJZIGlkOwogRFJPUCBUQUJM RSBndGVzdG07CiBDUkVBVEUgVEFCTEUgZ3Rlc3RtICgKICAgYSBpbnQgUFJJTUFSWSBLRVksCi0g IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMCisgIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGEgKiAyKSA6R2VuZXJhdGVkCiApOwogSU5TRVJUIElOVE8gZ3Rlc3Rt IChhKSBTRUxFQ1QgZyBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMCkgZzsKIE1FUkdFIElOVE8g Z3Rlc3RtIHQgVVNJTkcgZ3Rlc3RtIEFTIHMgT04gMiAqIHQuYSA9IHMuYiBXSEVOIE1BVENIRUQg VEhFTiBERUxFVEUgUkVUVVJOSU5HICo7CkBAIC0zMzYsMTIgKzMzOSwxMiBAQCBTRUxFQ1QgKiBG Uk9NIGd0ZXN0MTsKIAogLS0gY2FuJ3QgaGF2ZSBnZW5lcmF0ZWQgY29sdW1uIHRoYXQgaXMgYSBj aGlsZCBvZiBub3JtYWwgY29sdW1uCiBDUkVBVEUgVEFCTEUgZ3Rlc3Rfbm9ybWFsIChhIGludCwg YiBpbnQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0X25vcm1hbF9jaGlsZCAoYSBpbnQsIGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKSBJTkhFUklUUyAoZ3Rlc3Rfbm9ybWFs KTsgIC0tIGVycm9yCitDUkVBVEUgVEFCTEUgZ3Rlc3Rfbm9ybWFsX2NoaWxkIChhIGludCwgYiBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQpIElOSEVSSVRTIChndGVz dF9ub3JtYWwpOyAgLS0gZXJyb3IKIE5PVElDRTogIG1lcmdpbmcgY29sdW1uICJhIiB3aXRoIGlu aGVyaXRlZCBkZWZpbml0aW9uCiBOT1RJQ0U6ICBtZXJnaW5nIGNvbHVtbiAiYiIgd2l0aCBpbmhl cml0ZWQgZGVmaW5pdGlvbgogRVJST1I6ICBjaGlsZCBjb2x1bW4gImIiIHNwZWNpZmllcyBnZW5l cmF0aW9uIGV4cHJlc3Npb24KIEhJTlQ6ICBBIGNoaWxkIHRhYmxlIGNvbHVtbiBjYW5ub3QgYmUg Z2VuZXJhdGVkIHVubGVzcyBpdHMgcGFyZW50IGNvbHVtbiBpcy4KLUNSRUFURSBUQUJMRSBndGVz dF9ub3JtYWxfY2hpbGQgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikg VklSVFVBTCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3Rfbm9ybWFsX2NoaWxkIChhIGludCwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQpOwogQUxURVIgVEFCTEUgZ3Rl c3Rfbm9ybWFsX2NoaWxkIElOSEVSSVQgZ3Rlc3Rfbm9ybWFsOyAgLS0gZXJyb3IKIEVSUk9SOiAg Y29sdW1uICJiIiBpbiBjaGlsZCB0YWJsZSBtdXN0IG5vdCBiZSBhIGdlbmVyYXRlZCBjb2x1bW4K IERST1AgVEFCTEUgZ3Rlc3Rfbm9ybWFsLCBndGVzdF9ub3JtYWxfY2hpbGQ7CkBAIC0zNTIsMTEg KzM1NSwxMSBAQCBFUlJPUjogIGNvbHVtbiAiYiIgaW5oZXJpdHMgZnJvbSBnZW5lcmF0ZWQgY29s dW1uIGJ1dCBzcGVjaWZpZXMgZGVmYXVsdAogQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgSURFTlRJVFkpIElOSEVSSVRTIChndGVzdDEpOyAgLS0g ZXJyb3IKIE5PVElDRTogIG1lcmdpbmcgY29sdW1uICJiIiB3aXRoIGluaGVyaXRlZCBkZWZpbml0 aW9uCiBFUlJPUjogIGNvbHVtbiAiYiIgaW5oZXJpdHMgZnJvbSBnZW5lcmF0ZWQgY29sdW1uIGJ1 dCBzcGVjaWZpZXMgaWRlbnRpdHkKLUNSRUFURSBUQUJMRSBndGVzdHggKHggaW50LCBiIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChhICogMjIpIFNUT1JFRCkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAt LSBlcnJvcgorQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyMikgOk90aGVyKSBJTkhFUklUUyAoZ3Rlc3QxKTsgIC0tIGVycm9yCiBOT1RJ Q0U6ICBtZXJnaW5nIGNvbHVtbiAiYiIgd2l0aCBpbmhlcml0ZWQgZGVmaW5pdGlvbgogRVJST1I6 ICBjb2x1bW4gImIiIGluaGVyaXRzIGZyb20gZ2VuZXJhdGVkIGNvbHVtbiBvZiBkaWZmZXJlbnQg a2luZAogREVUQUlMOiAgUGFyZW50IGNvbHVtbiBpcyBWSVJUVUFMLCBjaGlsZCBjb2x1bW4gaXMg U1RPUkVELgotQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyMikgVklSVFVBTCkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAtLSBvaywgb3ZlcnJp ZGVzIHBhcmVudAorQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGEgKiAyMikgOkdlbmVyYXRlZCkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAtLSBvaywg b3ZlcnJpZGVzIHBhcmVudAogTk9USUNFOiAgbWVyZ2luZyBjb2x1bW4gImIiIHdpdGggaW5oZXJp dGVkIGRlZmluaXRpb24KIFxkKyBndGVzdHgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdHgiCkBAIC0zODcsOSAr MzkwLDkgQEAgU0VMRUNUICogRlJPTSBndGVzdHg7CiBDUkVBVEUgVEFCTEUgZ3Rlc3R4eF8xIChh IGludCBOT1QgTlVMTCwgYiBpbnQpOwogQUxURVIgVEFCTEUgZ3Rlc3R4eF8xIElOSEVSSVQgZ3Rl c3QxOyAgLS0gZXJyb3IKIEVSUk9SOiAgY29sdW1uICJiIiBpbiBjaGlsZCB0YWJsZSBtdXN0IGJl IGEgZ2VuZXJhdGVkIGNvbHVtbgotQ1JFQVRFIFRBQkxFIGd0ZXN0eHhfMyAoYSBpbnQgTk9UIE5V TEwsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKK0NSRUFURSBU QUJMRSBndGVzdHh4XzMgKGEgaW50IE5PVCBOVUxMLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChhICogMikgOkdlbmVyYXRlZCk7CiBBTFRFUiBUQUJMRSBndGVzdHh4XzMgSU5IRVJJVCBndGVz dDE7ICAtLSBvawotQ1JFQVRFIFRBQkxFIGd0ZXN0eHhfNCAoYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAqIDIpIFZJUlRVQUwsIGEgaW50IE5PVCBOVUxMKTsKK0NSRUFURSBUQUJMRSBndGVz dHh4XzQgKGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSA6R2VuZXJhdGVkLCBhIGlu dCBOT1QgTlVMTCk7CiBBTFRFUiBUQUJMRSBndGVzdHh4XzQgSU5IRVJJVCBndGVzdDE7ICAtLSBv awogLS0gdGVzdCBtdWx0aXBsZSBpbmhlcml0YW5jZSBtaXNtYXRjaGVzCiBDUkVBVEUgVEFCTEUg Z3Rlc3R5ICh4IGludCwgYiBpbnQgREVGQVVMVCA1NSk7CkBAIC00MDIsMTIgKzQwNSwxMiBAQCBD UkVBVEUgVEFCTEUgZ3Rlc3QxX3kgKCkgSU5IRVJJVFMgKGd0ZXN0MSwgZ3Rlc3R5KTsgIC0tIGVy cm9yCiBOT1RJQ0U6ICBtZXJnaW5nIG11bHRpcGxlIGluaGVyaXRlZCBkZWZpbml0aW9ucyBvZiBj b2x1bW4gImIiCiBFUlJPUjogIGluaGVyaXRlZCBjb2x1bW4gImIiIGhhcyBhIGdlbmVyYXRpb24g Y29uZmxpY3QKIERST1AgVEFCTEUgZ3Rlc3R5OwotQ1JFQVRFIFRBQkxFIGd0ZXN0eSAoeCBpbnQs IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHggKiAyMikgVklSVFVBTCk7CitDUkVBVEUgVEFC TEUgZ3Rlc3R5ICh4IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoeCAqIDIyKSA6R2Vu ZXJhdGVkKTsKIENSRUFURSBUQUJMRSBndGVzdDFfeSAoKSBJTkhFUklUUyAoZ3Rlc3QxLCBndGVz dHkpOyAgLS0gZXJyb3IKIE5PVElDRTogIG1lcmdpbmcgbXVsdGlwbGUgaW5oZXJpdGVkIGRlZmlu aXRpb25zIG9mIGNvbHVtbiAiYiIKIEVSUk9SOiAgY29sdW1uICJiIiBpbmhlcml0cyBjb25mbGlj dGluZyBnZW5lcmF0aW9uIGV4cHJlc3Npb25zCiBISU5UOiAgVG8gcmVzb2x2ZSB0aGUgY29uZmxp Y3QsIHNwZWNpZnkgYSBnZW5lcmF0aW9uIGV4cHJlc3Npb24gZXhwbGljaXRseS4KLUNSRUFURSBU QUJMRSBndGVzdDFfeSAoYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoeCArIDEpIFZJUlRVQUwp IElOSEVSSVRTIChndGVzdDEsIGd0ZXN0eSk7ICAtLSBvaworQ1JFQVRFIFRBQkxFIGd0ZXN0MV95 IChiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICsgMSkgOkdlbmVyYXRlZCkgSU5IRVJJVFMg KGd0ZXN0MSwgZ3Rlc3R5KTsgIC0tIG9rCiBOT1RJQ0U6ICBtZXJnaW5nIG11bHRpcGxlIGluaGVy aXRlZCBkZWZpbml0aW9ucyBvZiBjb2x1bW4gImIiCiBOT1RJQ0U6ICBtb3ZpbmcgYW5kIG1lcmdp bmcgY29sdW1uICJiIiB3aXRoIGluaGVyaXRlZCBkZWZpbml0aW9uCiBERVRBSUw6ICBVc2VyLXNw ZWNpZmllZCBjb2x1bW4gbW92ZWQgdG8gdGhlIHBvc2l0aW9uIG9mIHRoZSBpbmhlcml0ZWQgY29s dW1uLgpAQCAtNDIzLDcgKzQyNiw3IEBAIEluaGVyaXRzOiBndGVzdDEsCiAKIC0tIHRlc3QgY29y cmVjdCBoYW5kbGluZyBvZiBHRU5FUkFURUQgY29sdW1uIHRoYXQncyBvbmx5IGluIGNoaWxkCiBD UkVBVEUgVEFCTEUgZ3Rlc3RwIChmMSBpbnQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0YyAoZjIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYxKzEpIFZJUlRVQUwpIElOSEVSSVRTKGd0ZXN0cCk7CitD UkVBVEUgVEFCTEUgZ3Rlc3RjIChmMiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjErMSkgOkdl bmVyYXRlZCkgSU5IRVJJVFMoZ3Rlc3RwKTsKIElOU0VSVCBJTlRPIGd0ZXN0YyB2YWx1ZXMoNDIp OwogVEFCTEUgZ3Rlc3RjOwogIGYxIHwgZjIgCkBAIC00NDEsNyArNDQ0LDcgQEAgVEFCTEUgZ3Rl c3RjOwogRFJPUCBUQUJMRSBndGVzdHAgQ0FTQ0FERTsKIE5PVElDRTogIGRyb3AgY2FzY2FkZXMg dG8gdGFibGUgZ3Rlc3RjCiAtLSB0ZXN0IHVwZGF0ZQotQ1JFQVRFIFRBQkxFIGd0ZXN0MyAoYSBp bnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAzKSBWSVJUVUFMKTsKK0NSRUFURSBU QUJMRSBndGVzdDMgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMykgOkdl bmVyYXRlZCk7CiBJTlNFUlQgSU5UTyBndGVzdDMgKGEpIFZBTFVFUyAoMSksICgyKSwgKDMpLCAo TlVMTCk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MyBPUkRFUiBCWSBhOwogIGEgfCBiIApAQCAtNDYy LDcgKzQ2NSw3IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QzIE9SREVSIEJZIGE7CiAgICAgfCAgIAog KDQgcm93cykKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0M2EgKGEgdGV4dCwgYiB0ZXh0IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgfHwgJysnIHx8IGEpIFZJUlRVQUwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0 M2EgKGEgdGV4dCwgYiB0ZXh0IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgfHwgJysnIHx8IGEpIDpH ZW5lcmF0ZWQpOwogSU5TRVJUIElOVE8gZ3Rlc3QzYSAoYSkgVkFMVUVTICgnYScpLCAoJ2InKSwg KCdjJyksIChOVUxMKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3QzYSBPUkRFUiBCWSBhOwogIGEgfCAg YiAgCkBAIC01MjcsNyArNTMwLDcgQEAgU0VMRUNUICogRlJPTSBndGVzdDMgT1JERVIgQlkgYTsK ICg0IHJvd3MpCiAKIC0tIG51bGwgdmFsdWVzCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyIChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoTlVMTCkgVklSVFVBTCk7CitD UkVBVEUgVEFCTEUgZ3Rlc3QyIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoTlVMTCkgOkdlbmVyYXRlZCk7CiBJTlNFUlQgSU5UTyBndGVzdDIgVkFMVUVTICgx KTsKIFNFTEVDVCAqIEZST00gZ3Rlc3QyOwogIGEgfCBiIApAQCAtNTM2LDcgKzUzOSw3IEBAIFNF TEVDVCAqIEZST00gZ3Rlc3QyOwogKDEgcm93KQogCiAtLSBzaW1wbGUgY29sdW1uIHJlZmVyZW5j ZSBmb3IgdmFybGVuYSB0eXBlcwotQ1JFQVRFIFRBQkxFIGd0ZXN0X3ZhcmxlbmEgKGEgdmFyY2hh ciwgYiB2YXJjaGFyIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEpIFZJUlRVQUwpOworQ1JFQVRFIFRB QkxFIGd0ZXN0X3ZhcmxlbmEgKGEgdmFyY2hhciwgYiB2YXJjaGFyIEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEpIDpHZW5lcmF0ZWQpOwogSU5TRVJUIElOVE8gZ3Rlc3RfdmFybGVuYSAoYSkgVkFMVUVT KCcwMTIzNDU2Nzg5MDEyMzQ1Njc4OScpOwogSU5TRVJUIElOVE8gZ3Rlc3RfdmFybGVuYSAoYSkg VkFMVUVTKE5VTEwpOwogU0VMRUNUICogRlJPTSBndGVzdF92YXJsZW5hIE9SREVSIEJZIGE7CkBA IC01NTEsNyArNTU0LDcgQEAgRFJPUCBUQUJMRSBndGVzdF92YXJsZW5hOwogQ1JFQVRFIFRZUEUg ZG91YmxlX2ludCBhcyAoYSBpbnQsIGIgaW50KTsKIENSRUFURSBUQUJMRSBndGVzdDQgKAogICAg IGEgaW50LAotICAgIGIgZG91YmxlX2ludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoYSAqIDIsIGEg KiAzKSkgVklSVFVBTAorICAgIGIgZG91YmxlX2ludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoYSAq IDIsIGEgKiAzKSkgOkdlbmVyYXRlZAogKTsgIC0tIGZhaWxzLCB1c2VyLWRlZmluZWQgdHlwZQog RVJST1I6ICB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4gImIiIGNhbm5vdCBoYXZlIGEgdXNlci1k ZWZpbmVkIHR5cGUKIERFVEFJTDogIFZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgdGhhdCBtYWtl IHVzZSBvZiB1c2VyLWRlZmluZWQgdHlwZXMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkLgpAQCAtNTYy LDExICs1NjUsMTEgQEAgRFJPUCBUWVBFIGRvdWJsZV9pbnQ7CiAtLSB1c2luZyB0YWJsZW9pZCBp cyBhbGxvd2VkCiBDUkVBVEUgVEFCTEUgZ3Rlc3RfdGFibGVvaWQgKAogICBhIGludCBQUklNQVJZ IEtFWSwKLSAgYiBib29sIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHRhYmxlb2lkID0gJ2d0ZXN0X3Rh Ymxlb2lkJzo6cmVnY2xhc3MpIFZJUlRVQUwKKyAgYiBib29sIEdFTkVSQVRFRCBBTFdBWVMgQVMg KHRhYmxlb2lkID0gJ2d0ZXN0X3RhYmxlb2lkJzo6cmVnY2xhc3MpIDpHZW5lcmF0ZWQKICk7CiBJ TlNFUlQgSU5UTyBndGVzdF90YWJsZW9pZCBWQUxVRVMgKDEpLCAoMik7CiBBTFRFUiBUQUJMRSBn dGVzdF90YWJsZW9pZCBBREQgQ09MVU1OCi0gIGMgcmVnY2xhc3MgR0VORVJBVEVEIEFMV0FZUyBB UyAodGFibGVvaWQpIFZJUlRVQUw7CisgIGMgcmVnY2xhc3MgR0VORVJBVEVEIEFMV0FZUyBBUyAo dGFibGVvaWQpIDpHZW5lcmF0ZWQ7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0X3RhYmxlb2lkOwogIGEg fCBiIHwgICAgICAgYyAgICAgICAgCiAtLS0rLS0tKy0tLS0tLS0tLS0tLS0tLS0KQEAgLTU3NSw3 ICs1NzgsNyBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0X3RhYmxlb2lkOwogKDIgcm93cykKIAogLS0g ZHJvcCBjb2x1bW4gYmVoYXZpb3IKLUNSRUFURSBUQUJMRSBndGVzdDEwIChhIGludCBQUklNQVJZ IEtFWSwgYiBpbnQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSBWSVJUVUFMKTsK K0NSRUFURSBUQUJMRSBndGVzdDEwIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQsIGMgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSA6R2VuZXJhdGVkKTsKIEFMVEVSIFRBQkxFIGd0ZXN0 MTAgRFJPUCBDT0xVTU4gYjsgIC0tIGZhaWxzCiBFUlJPUjogIGNhbm5vdCBkcm9wIGNvbHVtbiBi IG9mIHRhYmxlIGd0ZXN0MTAgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAogREVU QUlMOiAgY29sdW1uIGMgb2YgdGFibGUgZ3Rlc3QxMCBkZXBlbmRzIG9uIGNvbHVtbiBiIG9mIHRh YmxlIGd0ZXN0MTAKQEAgLTU5MCwxNyArNTkzLDE3IEBAIE5PVElDRTogIGRyb3AgY2FzY2FkZXMg dG8gY29sdW1uIGMgb2YgdGFibGUgZ3Rlc3QxMAogSW5kZXhlczoKICAgICAiZ3Rlc3QxMF9wa2V5 IiBQUklNQVJZIEtFWSwgYnRyZWUgKGEpCiAKLUNSRUFURSBUQUJMRSBndGVzdDEwYSAoYSBpbnQg UFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsK K0NSRUFURSBUQUJMRSBndGVzdDEwYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAyKSA6R2VuZXJhdGVkKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MTBhIERS T1AgQ09MVU1OIGI7CiBJTlNFUlQgSU5UTyBndGVzdDEwYSAoYSkgVkFMVUVTICgxKTsKIC0tIHBy aXZpbGVnZXMKIENSRUFURSBVU0VSIHJlZ3Jlc3NfdXNlcjExOwotQ1JFQVRFIFRBQkxFIGd0ZXN0 MTEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YiAqIDIpIFZJUlRVQUwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MTEgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIDpHZW5lcmF0ZWQpOwog SU5TRVJUIElOVE8gZ3Rlc3QxMSBWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKTsKIEdSQU5UIFNFTEVD VCAoYSwgYykgT04gZ3Rlc3QxMSBUTyByZWdyZXNzX3VzZXIxMTsKIENSRUFURSBGVU5DVElPTiBn ZjEoYSBpbnQpIFJFVFVSTlMgaW50IEFTICQkIFNFTEVDVCBhICogMyAkJCBJTU1VVEFCTEUgTEFO R1VBR0UgU1FMOwogUkVWT0tFIEFMTCBPTiBGVU5DVElPTiBnZjEoaW50KSBGUk9NIFBVQkxJQzsK LUNSRUFURSBUQUJMRSBndGVzdDEyIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQsIGMgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGdmMShiKSkgVklSVFVBTCk7ICAtLSBmYWlscywgdXNlci1kZWZp bmVkIGZ1bmN0aW9uCitDUkVBVEUgVEFCTEUgZ3Rlc3QxMiAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50LCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChnZjEoYikpIDpHZW5lcmF0ZWQpOyAgLS0g ZmFpbHMsIHVzZXItZGVmaW5lZCBmdW5jdGlvbgogRVJST1I6ICBnZW5lcmF0aW9uIGV4cHJlc3Np b24gdXNlcyB1c2VyLWRlZmluZWQgZnVuY3Rpb24KIExJTkUgMTogLi4ubnQgUFJJTUFSWSBLRVks IGIgaW50LCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChnZjEoYikpIFZJLi4uCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpA QCAtNjI4LDcgKzYzMSw3IEBAIERST1AgVEFCTEUgZ3Rlc3QxMTsKIERST1AgRlVOQ1RJT04gZ2Yx KGludCk7CiBEUk9QIFVTRVIgcmVncmVzc191c2VyMTE7CiAtLSBjaGVjayBjb25zdHJhaW50cwot Q1JFQVRFIFRBQkxFIGd0ZXN0MjAgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMikgVklSVFVBTCBDSEVDSyAoYiA8IDUwKSk7CitDUkVBVEUgVEFCTEUg Z3Rlc3QyMCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEg KiAyKSA6R2VuZXJhdGVkIENIRUNLIChiIDwgNTApKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjAgKGEp IFZBTFVFUyAoMTApOyAgLS0gb2sKIElOU0VSVCBJTlRPIGd0ZXN0MjAgKGEpIFZBTFVFUyAoMzAp OyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAogRVJST1I6ICBuZXcgcm93IGZvciByZWxhdGlvbiAi Z3Rlc3QyMCIgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAiZ3Rlc3QyMF9iX2NoZWNrIgpAQCAt NjM5LDcgKzY0Miw3IEBAIERFVEFJTDogIENvbHVtbiAiYiIgb2YgcmVsYXRpb24gImd0ZXN0MjAi IGlzIGEgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uLgogQUxURVIgVEFCTEUgZ3Rlc3QyMCBBTFRF UiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDMpOyAgLS0gb2sgKGN1cnJlbnRseSBu b3Qgc3VwcG9ydGVkKQogRVJST1I6ICBBTFRFUiBUQUJMRSAvIFNFVCBFWFBSRVNTSU9OIGlzIG5v dCBzdXBwb3J0ZWQgZm9yIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgaW4gdGFibGVzIHdpdGgg Y2hlY2sgY29uc3RyYWludHMKIERFVEFJTDogIENvbHVtbiAiYiIgb2YgcmVsYXRpb24gImd0ZXN0 MjAiIGlzIGEgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uLgotQ1JFQVRFIFRBQkxFIGd0ZXN0MjBh IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJ UlRVQUwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjBhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQpOwogSU5TRVJUIElOVE8gZ3Rl c3QyMGEgKGEpIFZBTFVFUyAoMTApOwogSU5TRVJUIElOVE8gZ3Rlc3QyMGEgKGEpIFZBTFVFUyAo MzApOwogQUxURVIgVEFCTEUgZ3Rlc3QyMGEgQUREIENIRUNLIChiIDwgNTApOyAgLS0gZmFpbHMg b24gZXhpc3Rpbmcgcm93CkBAIC02NDgsMjcgKzY1MSwyNyBAQCBFUlJPUjogIGNoZWNrIGNvbnN0 cmFpbnQgImd0ZXN0MjBhX2JfY2hlY2siIG9mIHJlbGF0aW9uICJndGVzdDIwYSIgaXMgdmlvbGF0 ZWQgYgogQUxURVIgVEFCTEUgZ3Rlc3QyMGEgQUREIENPTFVNTiBjIGZsb2F0OCBERUZBVUxUIHJh bmRvbSgpIENIRUNLIChiIDwgNTApOyAtLSBmYWlscyBvbiBleGlzdGluZyByb3cKIEVSUk9SOiAg Y2hlY2sgY29uc3RyYWludCAiZ3Rlc3QyMGFfYl9jaGVjayIgb2YgcmVsYXRpb24gImd0ZXN0MjBh IiBpcyB2aW9sYXRlZCBieSBzb21lIHJvdwogQUxURVIgVEFCTEUgZ3Rlc3QyMGEgQUREIENPTFVN TiBjIGZsb2F0OCBERUZBVUxUIHJhbmRvbSgpIENIRUNLIChiIDwgNjEpOyAtLSBvawotQ1JFQVRF IFRBQkxFIGd0ZXN0MjBiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAqIDIpIFZJUlRVQUwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjBiIChhIGludCBQUklN QVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQpOwog SU5TRVJUIElOVE8gZ3Rlc3QyMGIgKGEpIFZBTFVFUyAoMTApOwogSU5TRVJUIElOVE8gZ3Rlc3Qy MGIgKGEpIFZBTFVFUyAoMzApOwogQUxURVIgVEFCTEUgZ3Rlc3QyMGIgQUREIENPTlNUUkFJTlQg Y2hrIENIRUNLIChiIDwgNTApIE5PVCBWQUxJRDsKIEFMVEVSIFRBQkxFIGd0ZXN0MjBiIFZBTElE QVRFIENPTlNUUkFJTlQgY2hrOyAgLS0gZmFpbHMgb24gZXhpc3Rpbmcgcm93CiBFUlJPUjogIGNo ZWNrIGNvbnN0cmFpbnQgImNoayIgb2YgcmVsYXRpb24gImd0ZXN0MjBiIiBpcyB2aW9sYXRlZCBi eSBzb21lIHJvdwogLS0gY2hlY2sgd2l0aCB3aG9sZS1yb3cgcmVmZXJlbmNlCi1DUkVBVEUgVEFC TEUgZ3Rlc3QyMGMgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklS VFVBTCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMGMgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMikgOkdlbmVyYXRlZCk7CiBBTFRFUiBUQUJMRSBndGVzdDIwYyBBREQgQ09O U1RSQUlOVCB3aG9sZV9yb3dfY2hlY2sgQ0hFQ0sgKGd0ZXN0MjBjIElTIE5PVCBOVUxMKTsKIElO U0VSVCBJTlRPIGd0ZXN0MjBjIFZBTFVFUyAoMSk7ICAtLSBvawogSU5TRVJUIElOVE8gZ3Rlc3Qy MGMgVkFMVUVTIChOVUxMKTsgIC0tIGZhaWxzCiBFUlJPUjogIG5ldyByb3cgZm9yIHJlbGF0aW9u ICJndGVzdDIwYyIgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAid2hvbGVfcm93X2NoZWNrIgog REVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKG51bGwsIHZpcnR1YWwpLgogLS0gbm90LW51 bGwgY29uc3RyYWludHMKLUNSRUFURSBUQUJMRSBndGVzdDIxYSAoYSBpbnQgUFJJTUFSWSBLRVks IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLCAwKSkgVklSVFVBTCBOT1QgTlVM TCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMWEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChudWxsaWYoYSwgMCkpIDpHZW5lcmF0ZWQgTk9UIE5VTEwpOwogSU5T RVJUIElOVE8gZ3Rlc3QyMWEgKGEpIFZBTFVFUyAoMSk7ICAtLSBvawogSU5TRVJUIElOVE8gZ3Rl c3QyMWEgKGEpIFZBTFVFUyAoMCk7ICAtLSB2aW9sYXRlcyBjb25zdHJhaW50CiBFUlJPUjogIG51 bGwgdmFsdWUgaW4gY29sdW1uICJiIiBvZiByZWxhdGlvbiAiZ3Rlc3QyMWEiIHZpb2xhdGVzIG5v dC1udWxsIGNvbnN0cmFpbnQKIERFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zICgwLCB2aXJ0 dWFsKS4KIC0tIGFsc28gY2hlY2sgd2l0aCB0YWJsZSBjb25zdHJhaW50IHN5bnRheAotQ1JFQVRF IFRBQkxFIGd0ZXN0MjFheCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKG51bGxpZihhLCAwKSkgVklSVFVBTCwgQ09OU1RSQUlOVCBjYyBOT1QgTlVMTCBiKTsK K0NSRUFURSBUQUJMRSBndGVzdDIxYXggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChudWxsaWYoYSwgMCkpIDpHZW5lcmF0ZWQsIENPTlNUUkFJTlQgY2MgTk9U IE5VTEwgYik7CiBJTlNFUlQgSU5UTyBndGVzdDIxYXggKGEpIFZBTFVFUyAoMCk7ICAtLSB2aW9s YXRlcyBjb25zdHJhaW50CiBFUlJPUjogIG51bGwgdmFsdWUgaW4gY29sdW1uICJiIiBvZiByZWxh dGlvbiAiZ3Rlc3QyMWF4IiB2aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50CiBERVRBSUw6ICBG YWlsaW5nIHJvdyBjb250YWlucyAoMCwgdmlydHVhbCkuCkBAIC02NzcsMTMgKzY4MCwxMyBAQCBJ TlNFUlQgSU5UTyBndGVzdDIxYXggKGEpIFZBTFVFUyAoMSk7ICAtLW9rCiBBTFRFUiBUQUJMRSBn dGVzdDIxYXggQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKG51bGxpZihhLCAxKSk7 IC0tZXJyb3IKIEVSUk9SOiAgY29sdW1uICJiIiBvZiByZWxhdGlvbiAiZ3Rlc3QyMWF4IiBjb250 YWlucyBudWxsIHZhbHVlcwogRFJPUCBUQUJMRSBndGVzdDIxYXg7Ci1DUkVBVEUgVEFCTEUgZ3Rl c3QyMWF4IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVs bGlmKGEsIDApKSBWSVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVzdDIxYXggKGEgaW50IFBSSU1B UlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYoYSwgMCkpIDpHZW5lcmF0 ZWQpOwogQUxURVIgVEFCTEUgZ3Rlc3QyMWF4IEFERCBDT05TVFJBSU5UIGNjIE5PVCBOVUxMIGI7 CiBJTlNFUlQgSU5UTyBndGVzdDIxYXggKGEpIFZBTFVFUyAoMCk7ICAtLSB2aW9sYXRlcyBjb25z dHJhaW50CiBFUlJPUjogIG51bGwgdmFsdWUgaW4gY29sdW1uICJiIiBvZiByZWxhdGlvbiAiZ3Rl c3QyMWF4IiB2aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50CiBERVRBSUw6ICBGYWlsaW5nIHJv dyBjb250YWlucyAoMCwgdmlydHVhbCkuCiBEUk9QIFRBQkxFIGd0ZXN0MjFheDsKLUNSRUFURSBU QUJMRSBndGVzdDIxYiAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihh LCAwKSkgVklSVFVBTCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMWIgKGEgaW50LCBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChudWxsaWYoYSwgMCkpIDpHZW5lcmF0ZWQpOwogQUxURVIgVEFCTEUg Z3Rlc3QyMWIgQUxURVIgQ09MVU1OIGIgU0VUIE5PVCBOVUxMOwogSU5TRVJUIElOVE8gZ3Rlc3Qy MWIgKGEpIFZBTFVFUyAoMSk7ICAtLSBvawogSU5TRVJUIElOVE8gZ3Rlc3QyMWIgKGEpIFZBTFVF UyAoMiksICgwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKQEAgLTY5OCw3ICs3MDEsNyBAQCBJ TlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgwKTsgIC0tIG9rIG5vdwogQ1JFQVRFIFRB QkxFIGd0ZXN0bm5fcGFyZW50ICgKICAgICBmMSBpbnQsCiAgICAgZjIgYmlnaW50LAotICAgIGYz IGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYoZjEsIDEpICsgbnVsbGlmKGYyLCAx MCkpIFZJUlRVQUwgTk9UIE5VTEwKKyAgICBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo bnVsbGlmKGYxLCAxKSArIG51bGxpZihmMiwgMTApKSA6R2VuZXJhdGVkIE5PVCBOVUxMCiApIFBB UlRJVElPTiBCWSBSQU5HRSAoZjEpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0bm5fY2hpbGQgUEFSVElU SU9OIE9GIGd0ZXN0bm5fcGFyZW50IEZPUiBWQUxVRVMgRlJPTSAoMSkgVE8gKDUpOwogQ1JFQVRF IFRBQkxFIGd0ZXN0bm5fY2hpbGRkZWYgUEFSVElUSU9OIE9GIGd0ZXN0bm5fcGFyZW50IGRlZmF1 bHQ7CkBAIC03MjMsMjMgKzcyNiwyMyBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0bm5fcGFyZW50IE9S REVSIEJZIGYxLCBmMiwgZjM7CiAoNCByb3dzKQogCiAtLSB0ZXN0IEFMVEVSIFRBQkxFIEFERCBD T0xVTU4KLUFMVEVSIFRBQkxFIGd0ZXN0bm5fcGFyZW50IEFERCBDT0xVTU4gYyBpbnQgTk9UIE5V TEwgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVsbGlmKGYxLCAxNCkgKyBudWxsaWYoZjIsIDEwKSkg VklSVFVBTDsgIC0tIGVycm9yCitBTFRFUiBUQUJMRSBndGVzdG5uX3BhcmVudCBBREQgQ09MVU1O IGMgaW50IE5PVCBOVUxMIEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihmMSwgMTQpICsgbnVs bGlmKGYyLCAxMCkpIDpHZW5lcmF0ZWQ7ICAtLSBlcnJvcgogRVJST1I6ICBjb2x1bW4gImMiIG9m IHJlbGF0aW9uICJndGVzdG5uX2NoaWxkZGVmIiBjb250YWlucyBudWxsIHZhbHVlcwotQUxURVIg VEFCTEUgZ3Rlc3Rubl9wYXJlbnQgQUREIENPTFVNTiBjIGludCBOT1QgTlVMTCBHRU5FUkFURUQg QUxXQVlTIEFTIChudWxsaWYoZjEsIDEzKSArIG51bGxpZihmMiwgNSkpIFZJUlRVQUw7ICAtLSBl cnJvcgorQUxURVIgVEFCTEUgZ3Rlc3Rubl9wYXJlbnQgQUREIENPTFVNTiBjIGludCBOT1QgTlVM TCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYoZjEsIDEzKSArIG51bGxpZihmMiwgNSkpIDpH ZW5lcmF0ZWQ7ICAtLSBlcnJvcgogRVJST1I6ICBjb2x1bW4gImMiIG9mIHJlbGF0aW9uICJndGVz dG5uX2NoaWxkIiBjb250YWlucyBudWxsIHZhbHVlcwotQUxURVIgVEFCTEUgZ3Rlc3Rubl9wYXJl bnQgQUREIENPTFVNTiBjIGludCBOT1QgTlVMTCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYo ZjEsIDQpICsgbnVsbGlmKGYyLCA2KSkgVklSVFVBTDsgIC0tIG9rCitBTFRFUiBUQUJMRSBndGVz dG5uX3BhcmVudCBBREQgQ09MVU1OIGMgaW50IE5PVCBOVUxMIEdFTkVSQVRFRCBBTFdBWVMgQVMg KG51bGxpZihmMSwgNCkgKyBudWxsaWYoZjIsIDYpKSA6R2VuZXJhdGVkOyAgLS0gb2sKIC0tIGlu ZGV4IGNvbnN0cmFpbnRzCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyMmEgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhIC8gMikgVklSVFVBTCBVTklRVUUpOworQ1JF QVRFIFRBQkxFIGd0ZXN0MjJhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAvIDIpIDpHZW5lcmF0ZWQgVU5JUVVFKTsKIEVSUk9SOiAgdW5pcXVlIGNvbnN0 cmFpbnRzIG9uIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgYXJlIG5vdCBzdXBwb3J0ZWQKIC0t SU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVTICgyKTsKIC0tSU5TRVJUIElOVE8gZ3Rlc3QyMmEg VkFMVUVTICgzKTsKIC0tSU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVTICg0KTsKLUNSRUFURSBU QUJMRSBndGVzdDIyYiAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgLyAyKSBW SVJUVUFMLCBQUklNQVJZIEtFWSAoYSwgYikpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjJiIChhIGlu dCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAvIDIpIDpHZW5lcmF0ZWQsIFBSSU1BUlkg S0VZIChhLCBiKSk7CiBFUlJPUjogIHByaW1hcnkga2V5cyBvbiB2aXJ0dWFsIGdlbmVyYXRlZCBj b2x1bW5zIGFyZSBub3Qgc3VwcG9ydGVkCiAtLUlOU0VSVCBJTlRPIGd0ZXN0MjJiIFZBTFVFUyAo Mik7CiAtLUlOU0VSVCBJTlRPIGd0ZXN0MjJiIFZBTFVFUyAoMik7CiAtLSBpbmRleGVzCi1DUkVB VEUgVEFCTEUgZ3Rlc3QyMmMgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICog MikgVklSVFVBTCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMmMgKGEgaW50LCBiIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZCk7CiAtLUNSRUFURSBJTkRFWCBndGVzdDIy Y19iX2lkeCBPTiBndGVzdDIyYyAoYik7CiAtLUNSRUFURSBJTkRFWCBndGVzdDIyY19leHByX2lk eCBPTiBndGVzdDIyYyAoKGIgKiAzKSk7CiAtLUNSRUFURSBJTkRFWCBndGVzdDIyY19wcmVkX2lk eCBPTiBndGVzdDIyYyAoYSkgV0hFUkUgYiA+IDA7CkBAIC03NjYsMTEgKzc2OSwxMSBAQCBDUkVB VEUgVEFCTEUgZ3Rlc3QyMmMgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICog MikgVklSVFVBTCk7CiAtLSBmb3JlaWduIGtleXMKIENSRUFURSBUQUJMRSBndGVzdDIzYSAoeCBp bnQgUFJJTUFSWSBLRVksIHkgaW50KTsKIC0tSU5TRVJUIElOVE8gZ3Rlc3QyM2EgVkFMVUVTICgx LCAxMSksICgyLCAyMiksICgzLCAzMyk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QyM3ggKGEgaW50IFBS SU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCBSRUZF UkVOQ0VTIGd0ZXN0MjNhICh4KSBPTiBVUERBVEUgQ0FTQ0FERSk7ICAtLSBlcnJvcgorQ1JFQVRF IFRBQkxFIGd0ZXN0MjN4IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQgUkVGRVJFTkNFUyBndGVzdDIzYSAoeCkgT04gVVBEQVRF IENBU0NBREUpOyAgLS0gZXJyb3IKIEVSUk9SOiAgaW52YWxpZCBPTiBVUERBVEUgYWN0aW9uIGZv ciBmb3JlaWduIGtleSBjb25zdHJhaW50IGNvbnRhaW5pbmcgZ2VuZXJhdGVkIGNvbHVtbgotQ1JF QVRFIFRBQkxFIGd0ZXN0MjN4IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwgUkVGRVJFTkNFUyBndGVzdDIzYSAoeCkgT04gREVMRVRF IFNFVCBOVUxMKTsgIC0tIGVycm9yCitDUkVBVEUgVEFCTEUgZ3Rlc3QyM3ggKGEgaW50IFBSSU1B UlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZCBSRUZF UkVOQ0VTIGd0ZXN0MjNhICh4KSBPTiBERUxFVEUgU0VUIE5VTEwpOyAgLS0gZXJyb3IKIEVSUk9S OiAgaW52YWxpZCBPTiBERUxFVEUgYWN0aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJhaW50IGNv bnRhaW5pbmcgZ2VuZXJhdGVkIGNvbHVtbgotQ1JFQVRFIFRBQkxFIGd0ZXN0MjNiIChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwgUkVG RVJFTkNFUyBndGVzdDIzYSAoeCkpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjNiIChhIGludCBQUklN QVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQgUkVG RVJFTkNFUyBndGVzdDIzYSAoeCkpOwogRVJST1I6ICBmb3JlaWduIGtleSBjb25zdHJhaW50cyBv biB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGFyZSBub3Qgc3VwcG9ydGVkCiAtLVxkIGd0ZXN0 MjNiCiAtLUlOU0VSVCBJTlRPIGd0ZXN0MjNiIFZBTFVFUyAoMSk7ICAtLSBvawpAQCAtNzc5LDcg Kzc4Miw3IEBAIEVSUk9SOiAgZm9yZWlnbiBrZXkgY29uc3RyYWludHMgb24gdmlydHVhbCBnZW5l cmF0ZWQgY29sdW1ucyBhcmUgbm90IHN1cHBvcnRlZAogLS1BTFRFUiBUQUJMRSBndGVzdDIzYiBB TFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDEpOyAtLSBvawogLS1EUk9QIFRB QkxFIGd0ZXN0MjNiOwogLS1EUk9QIFRBQkxFIGd0ZXN0MjNhOwotQ1JFQVRFIFRBQkxFIGd0ZXN0 MjNwICh4IGludCwgeSBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoeCAqIDIpIFZJUlRVQUwsIFBS SU1BUlkgS0VZICh5KSk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyM3AgKHggaW50LCB5IGludCBHRU5F UkFURUQgQUxXQVlTIEFTICh4ICogMikgOkdlbmVyYXRlZCwgUFJJTUFSWSBLRVkgKHkpKTsKIEVS Uk9SOiAgcHJpbWFyeSBrZXlzIG9uIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgYXJlIG5vdCBz dXBwb3J0ZWQKIC0tSU5TRVJUIElOVE8gZ3Rlc3QyM3AgVkFMVUVTICgxKSwgKDIpLCAoMyk7CiBD UkVBVEUgVEFCTEUgZ3Rlc3QyM3EgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBSRUZFUkVOQ0VT IGd0ZXN0MjNwICh5KSk7CkBAIC03ODgsNDcgKzc5MSw0NyBAQCBFUlJPUjogIHJlbGF0aW9uICJn dGVzdDIzcCIgZG9lcyBub3QgZXhpc3QKIC0tSU5TRVJUIElOVE8gZ3Rlc3QyM3EgVkFMVUVTICgy LCA1KTsgIC0tIGVycm9yCiAtLSBkb21haW5zCiBDUkVBVEUgRE9NQUlOIGd0ZXN0ZG9tYWluMSBB UyBpbnQgQ0hFQ0sgKFZBTFVFIDwgMTApOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjQgKGEgaW50IFBS SU1BUlkgS0VZLCBiIGd0ZXN0ZG9tYWluMSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklS VFVBTCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyNCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgZ3Rlc3Rk b21haW4xIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSA6R2VuZXJhdGVkKTsKIEVSUk9SOiAg dmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uICJiIiBjYW5ub3QgaGF2ZSBhIGRvbWFpbiB0eXBlCiAt LUlOU0VSVCBJTlRPIGd0ZXN0MjQgKGEpIFZBTFVFUyAoNCk7ICAtLSBvawogLS1JTlNFUlQgSU5U TyBndGVzdDI0IChhKSBWQUxVRVMgKDYpOyAgLS0gZXJyb3IKIENSRUFURSBUWVBFIGd0ZXN0ZG9t YWluMXJhbmdlIEFTIHJhbmdlIChzdWJ0eXBlID0gZ3Rlc3Rkb21haW4xKTsKLUNSRUFURSBUQUJM RSBndGVzdDI0ciAoYSBpbnQgUFJJTUFSWSBLRVksIGIgZ3Rlc3Rkb21haW4xcmFuZ2UgR0VORVJB VEVEIEFMV0FZUyBBUyAoZ3Rlc3Rkb21haW4xcmFuZ2UoYSwgYSArIDUpKSBWSVJUVUFMKTsKK0NS RUFURSBUQUJMRSBndGVzdDI0ciAoYSBpbnQgUFJJTUFSWSBLRVksIGIgZ3Rlc3Rkb21haW4xcmFu Z2UgR0VORVJBVEVEIEFMV0FZUyBBUyAoZ3Rlc3Rkb21haW4xcmFuZ2UoYSwgYSArIDUpKSA6R2Vu ZXJhdGVkKTsKIEVSUk9SOiAgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uICJiIiBjYW5ub3QgaGF2 ZSBhIGRvbWFpbiB0eXBlCiAtLUlOU0VSVCBJTlRPIGd0ZXN0MjRyIChhKSBWQUxVRVMgKDQpOyAg LS0gb2sKIC0tSU5TRVJUIElOVE8gZ3Rlc3QyNHIgKGEpIFZBTFVFUyAoNik7ICAtLSBlcnJvcgog Q1JFQVRFIFRBQkxFIGd0ZXN0MjRhdCAoYSBpbnQgUFJJTUFSWSBLRVkpOwotQUxURVIgVEFCTEUg Z3Rlc3QyNGF0IEFERCBDT0xVTU4gYiBndGVzdGRvbWFpbjEgR0VORVJBVEVEIEFMV0FZUyBBUyAo YSAqIDIpIFZJUlRVQUw7ICAtLSBlcnJvcgorQUxURVIgVEFCTEUgZ3Rlc3QyNGF0IEFERCBDT0xV TU4gYiBndGVzdGRvbWFpbjEgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQ7 ICAtLSBlcnJvcgogRVJST1I6ICB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4gImIiIGNhbm5vdCBo YXZlIGEgZG9tYWluIHR5cGUKLUNSRUFURSBUQUJMRSBndGVzdDI0YXRhIChhIGludCBQUklNQVJZ IEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpOworQ1JFQVRF IFRBQkxFIGd0ZXN0MjRhdGEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMikgOkdlbmVyYXRlZCk7CiBBTFRFUiBUQUJMRSBndGVzdDI0YXRhIEFMVEVS IENPTFVNTiBiIFRZUEUgZ3Rlc3Rkb21haW4xOyAgLS0gZXJyb3IKIEVSUk9SOiAgdmlydHVhbCBn ZW5lcmF0ZWQgY29sdW1uICJiIiBjYW5ub3QgaGF2ZSBhIGRvbWFpbiB0eXBlCiBDUkVBVEUgRE9N QUlOIGd0ZXN0ZG9tYWlubm4gQVMgaW50IENIRUNLIChWQUxVRSBJUyBOT1QgTlVMTCk7Ci1DUkVB VEUgVEFCTEUgZ3Rlc3QyNG5uIChhIGludCwgYiBndGVzdGRvbWFpbm5uIEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVzdDI0bm4gKGEgaW50LCBi IGd0ZXN0ZG9tYWlubm4gR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQpOwog RVJST1I6ICB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4gImIiIGNhbm5vdCBoYXZlIGEgZG9tYWlu IHR5cGUKIC0tSU5TRVJUIElOVE8gZ3Rlc3QyNG5uIChhKSBWQUxVRVMgKDQpOyAgLS0gb2sKIC0t SU5TRVJUIElOVE8gZ3Rlc3QyNG5uIChhKSBWQUxVRVMgKE5VTEwpOyAgLS0gZXJyb3IKIC0tIHR5 cGVkIHRhYmxlcyAoY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQpCiBDUkVBVEUgVFlQRSBndGVzdF90 eXBlIEFTIChmMSBpbnRlZ2VyLCBmMiB0ZXh0LCBmMyBiaWdpbnQpOwotQ1JFQVRFIFRBQkxFIGd0 ZXN0MjggT0YgZ3Rlc3RfdHlwZSAoZjEgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMgQVMg KGYyICoyKSBWSVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVzdDI4IE9GIGd0ZXN0X3R5cGUgKGYx IFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqMikgOkdlbmVyYXRlZCk7CiBF UlJPUjogIGdlbmVyYXRlZCBjb2x1bW5zIGFyZSBub3Qgc3VwcG9ydGVkIG9uIHR5cGVkIHRhYmxl cwogRFJPUCBUWVBFIGd0ZXN0X3R5cGUgQ0FTQ0FERTsKIC0tIHBhcnRpdGlvbmluZyBjYXNlcwog Q1JFQVRFIFRBQkxFIGd0ZXN0X3BhcmVudCAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBm MyBiaWdpbnQpIFBBUlRJVElPTiBCWSBSQU5HRSAoZjEpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2No aWxkIFBBUlRJVElPTiBPRiBndGVzdF9wYXJlbnQgKAotICAgIGYzIFdJVEggT1BUSU9OUyBHRU5F UkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFZJUlRVQUwKKyAgICBmMyBXSVRIIE9QVElPTlMgR0VO RVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSA6R2VuZXJhdGVkCiApIEZPUiBWQUxVRVMgRlJPTSAo JzIwMTYtMDctMDEnKSBUTyAoJzIwMTYtMDgtMDEnKTsgLS0gZXJyb3IKIEVSUk9SOiAgY2hpbGQg Y29sdW1uICJmMyIgc3BlY2lmaWVzIGdlbmVyYXRpb24gZXhwcmVzc2lvbgogSElOVDogIEEgY2hp bGQgdGFibGUgY29sdW1uIGNhbm5vdCBiZSBnZW5lcmF0ZWQgdW5sZXNzIGl0cyBwYXJlbnQgY29s dW1uIGlzLgotQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBi aWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFZJUlRVQUwpOwor Q1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYz IGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIDpHZW5lcmF0ZWQpOwogQUxURVIg VEFCTEUgZ3Rlc3RfcGFyZW50IEFUVEFDSCBQQVJUSVRJT04gZ3Rlc3RfY2hpbGQgRk9SIFZBTFVF UyBGUk9NICgnMjAxNi0wNy0wMScpIFRPICgnMjAxNi0wOC0wMScpOyAtLSBlcnJvcgogRVJST1I6 ICBjb2x1bW4gImYzIiBpbiBjaGlsZCB0YWJsZSBtdXN0IG5vdCBiZSBhIGdlbmVyYXRlZCBjb2x1 bW4KIERST1AgVEFCTEUgZ3Rlc3RfcGFyZW50LCBndGVzdF9jaGlsZDsKLUNSRUFURSBUQUJMRSBn dGVzdF9wYXJlbnQgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGYyICogMikgVklSVFVBTCkgUEFSVElUSU9OIEJZIFJBTkdFIChmMSk7 CitDUkVBVEUgVEFCTEUgZ3Rlc3RfcGFyZW50IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQs IGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIDpHZW5lcmF0ZWQpIFBBUlRJ VElPTiBCWSBSQU5HRSAoZjEpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkIFBBUlRJVElPTiBP RiBndGVzdF9wYXJlbnQKICAgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wNy0wMScpIFRPICgnMjAx Ni0wOC0wMScpOyAgLS0gaW5oZXJpdHMgZ2VuIGV4cHIKIENSRUFURSBUQUJMRSBndGVzdF9jaGls ZDIgUEFSVElUSU9OIE9GIGd0ZXN0X3BhcmVudCAoCi0gICAgZjMgV0lUSCBPUFRJT05TIEdFTkVS QVRFRCBBTFdBWVMgQVMgKGYyICogMjIpIFZJUlRVQUwgIC0tIG92ZXJyaWRlcyBnZW4gZXhwcgor ICAgIGYzIFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIyKSA6R2VuZXJh dGVkICAtLSBvdmVycmlkZXMgZ2VuIGV4cHIKICkgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOC0w MScpIFRPICgnMjAxNi0wOS0wMScpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyBQQVJUSVRJ T04gT0YgZ3Rlc3RfcGFyZW50ICgKICAgICBmMyBERUZBVUxUIDQyICAtLSBlcnJvcgpAQCAtODM5 LDcgKzg0Miw3IEBAIENSRUFURSBUQUJMRSBndGVzdF9jaGlsZDMgUEFSVElUSU9OIE9GIGd0ZXN0 X3BhcmVudCAoCiApIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDktMDEnKSBUTyAoJzIwMTYtMTAt MDEnKTsKIEVSUk9SOiAgaWRlbnRpdHkgY29sdW1ucyBhcmUgbm90IHN1cHBvcnRlZCBvbiBwYXJ0 aXRpb25zCiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIFBBUlRJVElPTiBPRiBndGVzdF9wYXJl bnQgKAotICAgIGYzIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgU1RPUkVEICAtLSBlcnJv cgorICAgIGYzIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgOk90aGVyICAtLSBlcnJvcgog KSBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7CiBFUlJP UjogIGNvbHVtbiAiZjMiIGluaGVyaXRzIGZyb20gZ2VuZXJhdGVkIGNvbHVtbiBvZiBkaWZmZXJl bnQga2luZAogREVUQUlMOiAgUGFyZW50IGNvbHVtbiBpcyBWSVJUVUFMLCBjaGlsZCBjb2x1bW4g aXMgU1RPUkVELgpAQCAtODU2LDEyICs4NTksMTIgQEAgQUxURVIgVEFCTEUgZ3Rlc3RfcGFyZW50 IEFUVEFDSCBQQVJUSVRJT04gZ3Rlc3RfY2hpbGQzIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDkK IEVSUk9SOiAgdGFibGUgImd0ZXN0X2NoaWxkMyIgYmVpbmcgYXR0YWNoZWQgY29udGFpbnMgYW4g aWRlbnRpdHkgY29sdW1uICJmMyIKIERFVEFJTDogIFRoZSBuZXcgcGFydGl0aW9uIG1heSBub3Qg Y29udGFpbiBhbiBpZGVudGl0eSBjb2x1bW4uCiBEUk9QIFRBQkxFIGd0ZXN0X2NoaWxkMzsKLUNS RUFURSBUQUJMRSBndGVzdF9jaGlsZDMgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMg YmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMzMpIFNUT1JFRCk7CitDUkVBVEUgVEFC TEUgZ3Rlc3RfY2hpbGQzIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBH RU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDMzKSA6T3RoZXIpOwogQUxURVIgVEFCTEUgZ3Rlc3Rf cGFyZW50IEFUVEFDSCBQQVJUSVRJT04gZ3Rlc3RfY2hpbGQzIEZPUiBWQUxVRVMgRlJPTSAoJzIw MTYtMDktMDEnKSBUTyAoJzIwMTYtMTAtMDEnKTsgLS0gZXJyb3IKIEVSUk9SOiAgY29sdW1uICJm MyIgaW5oZXJpdHMgZnJvbSBnZW5lcmF0ZWQgY29sdW1uIG9mIGRpZmZlcmVudCBraW5kCiBERVRB SUw6ICBQYXJlbnQgY29sdW1uIGlzIFZJUlRVQUwsIGNoaWxkIGNvbHVtbiBpcyBTVE9SRUQuCiBE Uk9QIFRBQkxFIGd0ZXN0X2NoaWxkMzsKLUNSRUFURSBUQUJMRSBndGVzdF9jaGlsZDMgKGYxIGRh dGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYy ICogMzMpIFZJUlRVQUwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyAoZjEgZGF0ZSBOT1Qg TlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAzMykg OkdlbmVyYXRlZCk7CiBBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQVRUQUNIIFBBUlRJVElPTiBn dGVzdF9jaGlsZDMgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOS0wMScpIFRPICgnMjAxNi0xMC0w MScpOwogXGQgZ3Rlc3RfY2hpbGQKICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0 dWFsX3Rlc3RzLmd0ZXN0X2NoaWxkIgpAQCAtMTAyNSwxMiArMTAyOCwxMiBAQCBTRUxFQ1QgdGFi bGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gZ3Rlc3RfcGFyZW50IE9SREVSIEJZIDEsIDIsIDM7CiAK IC0tIHdlIGxlYXZlIHRoZXNlIHRhYmxlcyBhcm91bmQgZm9yIHB1cnBvc2VzIG9mIHRlc3Rpbmcg ZHVtcC9yZWxvYWQvdXBncmFkZQogLS0gZ2VuZXJhdGVkIGNvbHVtbnMgaW4gcGFydGl0aW9uIGtl eSAobm90IGFsbG93ZWQpCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfcGFydF9rZXkgKGYxIGRhdGUgTk9U IE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikg VklSVFVBTCkgUEFSVElUSU9OIEJZIFJBTkdFIChmMyk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfcGFy dF9rZXkgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGYyICogMikgOkdlbmVyYXRlZCkgUEFSVElUSU9OIEJZIFJBTkdFIChmMyk7CiBF UlJPUjogIGNhbm5vdCB1c2UgZ2VuZXJhdGVkIGNvbHVtbiBpbiBwYXJ0aXRpb24ga2V5CiBMSU5F IDE6IC4uLk5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFZJUlRVQUwpIFBBUlRJVElPTiBCWSBS QU5HRSAoZjMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIENvbHVtbiAiZjMiIGlzIGEgZ2VuZXJh dGVkIGNvbHVtbi4KLUNSRUFURSBUQUJMRSBndGVzdF9wYXJ0X2tleSAoZjEgZGF0ZSBOT1QgTlVM TCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBWSVJU VUFMKSBQQVJUSVRJT04gQlkgUkFOR0UgKChmMyAqIDMpKTsKK0NSRUFURSBUQUJMRSBndGVzdF9w YXJ0X2tleSAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoZjIgKiAyKSA6R2VuZXJhdGVkKSBQQVJUSVRJT04gQlkgUkFOR0UgKChmMyAq IDMpKTsKIEVSUk9SOiAgY2Fubm90IHVzZSBnZW5lcmF0ZWQgY29sdW1uIGluIHBhcnRpdGlvbiBr ZXkKIExJTkUgMTogLi4uRCBBTFdBWVMgQVMgKGYyICogMikgVklSVFVBTCkgUEFSVElUSU9OIEJZ IFJBTkdFICgoZjMgKiAzKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgpAQCAtMTAzOCw3ICsxMDQxLDcgQEAgREVUQUlMOiAg Q29sdW1uICJmMyIgaXMgYSBnZW5lcmF0ZWQgY29sdW1uLgogLS0gQUxURVIgVEFCTEUgLi4uIEFE RCBDT0xVTU4KIENSRUFURSBUQUJMRSBndGVzdDI1IChhIGludCBQUklNQVJZIEtFWSk7CiBJTlNF UlQgSU5UTyBndGVzdDI1IFZBTFVFUyAoMyksICg0KTsKLUFMVEVSIFRBQkxFIGd0ZXN0MjUgQURE IENPTFVNTiBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCwgQUxURVIg Q09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAzKTsKK0FMVEVSIFRBQkxFIGd0ZXN0MjUg QUREIENPTFVNTiBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZCwg QUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAzKTsKIFNFTEVDVCAqIEZST00g Z3Rlc3QyNSBPUkRFUiBCWSBhOwogIGEgfCBiICAKIC0tLSstLS0tCkBAIC0xMDQ2LDE2ICsxMDQ5 LDE2IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QyNSBPUkRFUiBCWSBhOwogIDQgfCAxMgogKDIgcm93 cykKIAotQUxURVIgVEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIHggaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGIgKiA0KSBWSVJUVUFMOyAgLS0gZXJyb3IKK0FMVEVSIFRBQkxFIGd0ZXN0MjUgQURE IENPTFVNTiB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogNCkgOkdlbmVyYXRlZDsgIC0t IGVycm9yCiBFUlJPUjogIGNhbm5vdCB1c2UgZ2VuZXJhdGVkIGNvbHVtbiAiYiIgaW4gY29sdW1u IGdlbmVyYXRpb24gZXhwcmVzc2lvbgogREVUQUlMOiAgQSBnZW5lcmF0ZWQgY29sdW1uIGNhbm5v dCByZWZlcmVuY2UgYW5vdGhlciBnZW5lcmF0ZWQgY29sdW1uLgotQUxURVIgVEFCTEUgZ3Rlc3Qy NSBBREQgQ09MVU1OIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHogKiA0KSBWSVJUVUFMOyAg LS0gZXJyb3IKK0FMVEVSIFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiB4IGludCBHRU5FUkFURUQg QUxXQVlTIEFTICh6ICogNCkgOkdlbmVyYXRlZDsgIC0tIGVycm9yCiBFUlJPUjogIGNvbHVtbiAi eiIgZG9lcyBub3QgZXhpc3QKIEFMVEVSIFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiBjIGludCBE RUZBVUxUIDQyLAotICBBREQgQ09MVU1OIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGMgKiA0 KSBWSVJUVUFMOworICBBREQgQ09MVU1OIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGMgKiA0 KSA6R2VuZXJhdGVkOwogQUxURVIgVEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIGQgaW50IERFRkFV TFQgMTAxOwogQUxURVIgVEFCTEUgZ3Rlc3QyNSBBTFRFUiBDT0xVTU4gZCBTRVQgREFUQSBUWVBF IGZsb2F0OCwKLSAgQUREIENPTFVNTiB5IGZsb2F0OCBHRU5FUkFURUQgQUxXQVlTIEFTIChkICog NCkgVklSVFVBTDsKKyAgQUREIENPTFVNTiB5IGZsb2F0OCBHRU5FUkFURUQgQUxXQVlTIEFTIChk ICogNCkgOkdlbmVyYXRlZDsKIFNFTEVDVCAqIEZST00gZ3Rlc3QyNSBPUkRFUiBCWSBhOwogIGEg fCBiICB8IGMgIHwgIHggIHwgIGQgIHwgIHkgIAogLS0tKy0tLS0rLS0tLSstLS0tLSstLS0tLSst LS0tLQpAQCAtMTA4MCw3ICsxMDgzLDcgQEAgSW5kZXhlczoKIENSRUFURSBUQUJMRSBndGVzdDI3 ICgKICAgICBhIGludCwKICAgICBiIGludCwKLSAgICB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFT ICgoYSArIGIpICogMikgVklSVFVBTAorICAgIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChh ICsgYikgKiAyKSA6R2VuZXJhdGVkCiApOwogSU5TRVJUIElOVE8gZ3Rlc3QyNyAoYSwgYikgVkFM VUVTICgzLCA3KSwgKDQsIDExKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MjcgQUxURVIgQ09MVU1OIGEg VFlQRSB0ZXh0OyAgLS0gZXJyb3IKQEAgLTExMTUsNyArMTExOCw3IEBAIEFMVEVSIFRBQkxFIGd0 ZXN0MjcKICAgRFJPUCBDT0xVTU4geCwKICAgQUxURVIgQ09MVU1OIGEgVFlQRSBiaWdpbnQsCiAg IEFMVEVSIENPTFVNTiBiIFRZUEUgYmlnaW50LAotICBBREQgQ09MVU1OIHggYmlnaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKChhICsgYikgKiAyKSBWSVJUVUFMIE5PVCBOVUxMOyAgLS0gZXJyb3IK KyAgQUREIENPTFVNTiB4IGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoYSArIGIpICogMikg OkdlbmVyYXRlZCBOT1QgTlVMTDsgIC0tIGVycm9yCiBFUlJPUjogIGNvbHVtbiAieCIgb2YgcmVs YXRpb24gImd0ZXN0MjciIGNvbnRhaW5zIG51bGwgdmFsdWVzCiBERUxFVEUgRlJPTSBndGVzdDI3 IFdIRVJFIGEgSVMgTlVMTCBBTkQgYiBJUyBOVUxMOwogLS0gSXQncyBwb3NzaWJsZSB0byBhbHRl ciB0aGUgY29sdW1uIHR5cGVzIHRoaXMgd2F5OgpAQCAtMTEyMyw3ICsxMTI2LDcgQEAgQUxURVIg VEFCTEUgZ3Rlc3QyNwogICBEUk9QIENPTFVNTiB4LAogICBBTFRFUiBDT0xVTU4gYSBUWVBFIGJp Z2ludCwKICAgQUxURVIgQ09MVU1OIGIgVFlQRSBiaWdpbnQsCi0gIEFERCBDT0xVTU4geCBiaWdp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKGEgKyBiKSAqIDIpIFZJUlRVQUw7CisgIEFERCBDT0xV TU4geCBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKGEgKyBiKSAqIDIpIDpHZW5lcmF0ZWQ7 CiBcZCBndGVzdDI3CiAgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxf dGVzdHMuZ3Rlc3QyNyIKICBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8 ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAKQEAgLTExNTYsNyArMTE1OSw3IEBA IFNFTEVDVCAqIEZST00gZ3Rlc3QyNzsKIC0tIEFMVEVSIFRBQkxFIC4uLiBBTFRFUiBDT0xVTU4g Li4uIERST1AgRVhQUkVTU0lPTgogQ1JFQVRFIFRBQkxFIGd0ZXN0MjkgKAogICAgIGEgaW50LAot ICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMCisgICAgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQKICk7CiBJTlNFUlQgSU5UTyBn dGVzdDI5IChhKSBWQUxVRVMgKDMpLCAoNCk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0Mjk7CkBAIC0x MjIzLDcgKzEyMjYsNyBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0Mjk7CiAtLSB3aXRoIGluaGVyaXRh bmNlCiBDUkVBVEUgVEFCTEUgZ3Rlc3QzMCAoCiAgICAgYSBpbnQsCi0gICAgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwKKyAgICBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChhICogMikgOkdlbmVyYXRlZAogKTsKIENSRUFURSBUQUJMRSBndGVzdDMwXzEgKCkgSU5I RVJJVFMgKGd0ZXN0MzApOwogQUxURVIgVEFCTEUgZ3Rlc3QzMCBBTFRFUiBDT0xVTU4gYiBEUk9Q IEVYUFJFU1NJT047CkBAIC0xMjQ5LDcgKzEyNTIsNyBAQCBEUk9QIFRBQkxFIGd0ZXN0MzAgQ0FT Q0FERTsKIE5PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgZ3Rlc3QzMF8xCiBDUkVBVEUg VEFCTEUgZ3Rlc3QzMCAoCiAgICAgYSBpbnQsCi0gICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYSAqIDIpIFZJUlRVQUwKKyAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikg OkdlbmVyYXRlZAogKTsKIENSRUFURSBUQUJMRSBndGVzdDMwXzEgKCkgSU5IRVJJVFMgKGd0ZXN0 MzApOwogQUxURVIgVEFCTEUgT05MWSBndGVzdDMwIEFMVEVSIENPTFVNTiBiIERST1AgRVhQUkVT U0lPTjsgIC0tIGVycm9yCkBAIC0xMjczLDcgKzEyNzYsNyBAQCBJbmhlcml0czogZ3Rlc3QzMAog QUxURVIgVEFCTEUgZ3Rlc3QzMF8xIEFMVEVSIENPTFVNTiBiIERST1AgRVhQUkVTU0lPTjsgIC0t IGVycm9yCiBFUlJPUjogIGNhbm5vdCBkcm9wIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBmcm9tIGlu aGVyaXRlZCBjb2x1bW4KIC0tIGNvbXBvc2l0ZSB0eXBlIGRlcGVuZGVuY2llcwotQ1JFQVRFIFRB QkxFIGd0ZXN0MzFfMSAoYSBpbnQsIGIgdGV4dCBHRU5FUkFURUQgQUxXQVlTIEFTICgnaGVsbG8n KSBWSVJUVUFMLCBjIHRleHQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MzFfMSAoYSBpbnQsIGIgdGV4 dCBHRU5FUkFURUQgQUxXQVlTIEFTICgnaGVsbG8nKSA6R2VuZXJhdGVkLCBjIHRleHQpOwogQ1JF QVRFIFRBQkxFIGd0ZXN0MzFfMiAoeCBpbnQsIHkgZ3Rlc3QzMV8xKTsKIEFMVEVSIFRBQkxFIGd0 ZXN0MzFfMSBBTFRFUiBDT0xVTU4gYiBUWVBFIHZhcmNoYXI7ICAtLSBmYWlscwogRVJST1I6ICBj YW5ub3QgYWx0ZXIgdGFibGUgImd0ZXN0MzFfMSIgYmVjYXVzZSBjb2x1bW4gImd0ZXN0MzFfMi55 IiB1c2VzIGl0cyByb3cgdHlwZQpAQCAtMTI4OCw3ICsxMjkxLDcgQEAgQ1JFQVRFIElOREVYIGd0 ZXN0MzFfMl95X2lkeCBPTiBndGVzdDMxXzIoKCh5KS5iKSk7CiBBTFRFUiBUQUJMRSBndGVzdDMx XzEgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKCdoZWxsbzMnKTsKIERST1AgVEFC TEUgZ3Rlc3QzMV8xLCBndGVzdDMxXzI7CiAtLSBDaGVjayBpdCBmb3IgYSBwYXJ0aXRpb25lZCB0 YWJsZSwgdG9vCi1DUkVBVEUgVEFCTEUgZ3Rlc3QzMV8xIChhIGludCwgYiB0ZXh0IEdFTkVSQVRF RCBBTFdBWVMgQVMgKCdoZWxsbycpIFZJUlRVQUwsIGMgdGV4dCkgUEFSVElUSU9OIEJZIExJU1Qg KGEpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MzFfMSAoYSBpbnQsIGIgdGV4dCBHRU5FUkFURUQgQUxX QVlTIEFTICgnaGVsbG8nKSA6R2VuZXJhdGVkLCBjIHRleHQpIFBBUlRJVElPTiBCWSBMSVNUIChh KTsKIENSRUFURSBUQUJMRSBndGVzdDMxXzIgKHggaW50LCB5IGd0ZXN0MzFfMSk7CiBBTFRFUiBU QUJMRSBndGVzdDMxXzEgQUxURVIgQ09MVU1OIGIgVFlQRSB2YXJjaGFyOyAgLS0gZmFpbHMKIEVS Uk9SOiAgY2Fubm90IGFsdGVyIHRhYmxlICJndGVzdDMxXzEiIGJlY2F1c2UgY29sdW1uICJndGVz dDMxXzIueSIgdXNlcyBpdHMgcm93IHR5cGUKQEAgLTEyOTYsNyArMTI5OSw3IEBAIERST1AgVEFC TEUgZ3Rlc3QzMV8xLCBndGVzdDMxXzI7CiAtLSB0cmlnZ2VycwogQ1JFQVRFIFRBQkxFIGd0ZXN0 MjYgKAogICAgIGEgaW50IFBSSU1BUlkgS0VZLAotICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgKiAyKSBWSVJUVUFMCisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIp IDpHZW5lcmF0ZWQKICk7CiBDUkVBVEUgRlVOQ1RJT04gZ3Rlc3RfdHJpZ2dlcl9mdW5jKCkgUkVU VVJOUyB0cmlnZ2VyCiAgIExBTkdVQUdFIHBscGdzcWwKQEAgLTE0NDgsNyArMTQ1MSw3IEBAIENS RUFURSBUQUJMRSBndGVzdDI4YSAoCiAgIGEgaW50LAogICBiIGludCwKICAgYyBpbnQsCi0gIHgg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSBWSVJUVUFMCisgIHggaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGIgKiAyKSA6R2VuZXJhdGVkCiApOwogQUxURVIgVEFCTEUgZ3Rlc3QyOGEg RFJPUCBDT0xVTU4gYTsKIENSRUFURSBUQUJMRSBndGVzdDI4YiAoTElLRSBndGVzdDI4YSBJTkNM VURJTkcgR0VORVJBVEVEKTsKQEAgLTE0NzksNyArMTQ4Miw3IEBAIFNFTEVDVCBhdHRyZWxpZCwg YXR0bmFtZSwgYXR0Z2VuZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0dGdlbmVyYXRl ZCBOT1QKIC0tIHRoZXNlIHRlc3RzIGFyZSBzcGVjaWZpYyB0byBnZW5lcmF0ZWRfdmlydHVhbC5z cWwKIC0tCiAtLSB1c2luZyB1c2VyLWRlZmluZWQgdHlwZSBub3QgeWV0IHN1cHBvcnRlZAotQ1JF QVRFIFRBQkxFIGd0ZXN0MjR4eHggKGEgZ3Rlc3Rkb21haW4xLCBiIGd0ZXN0ZG9tYWluMSwgYyBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZ3JlYXRlc3QoYSwgYikpIFZJUlRVQUwpOyAgLS0gZXJy b3IKK0NSRUFURSBUQUJMRSBndGVzdDI0eHh4IChhIGd0ZXN0ZG9tYWluMSwgYiBndGVzdGRvbWFp bjEsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGdyZWF0ZXN0KGEsIGIpKSA6R2VuZXJhdGVk KTsgIC0tIGVycm9yCiBFUlJPUjogIGdlbmVyYXRpb24gZXhwcmVzc2lvbiB1c2VzIHVzZXItZGVm aW5lZCB0eXBlCiBMSU5FIDE6IC4uLm1haW4xLCBiIGd0ZXN0ZG9tYWluMSwgYyBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoZ3JlYXRlc3QoYS4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRlZF9zdG9yZWQuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv Z2VuZXJhdGVkX3N0b3JlZC5zcWwKaW5kZXggZTk4YWVmNGQzZjkuLmFkMjdiYTIxN2YxIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9nZW5lcmF0ZWRfc3RvcmVkLnNxbAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9nZW5lcmF0ZWRfc3RvcmVkLnNxbApAQCAtMSwxMiArMSwxNSBA QAogLS0ga2VlcCB0aGVzZSB0ZXN0cyBhbGlnbmVkIHdpdGggZ2VuZXJhdGVkX3ZpcnR1YWwuc3Fs CistLSBXZSBjYW4gdXNlIHBzcWwgdmFyaWFibGVzIHRvIGtlZXAgdGhlIGRpZmYgdG8gYSBtaW5p bXVtLgorXHNldCBHZW5lcmF0ZWQgJ1NUT1JFRCcKK1xzZXQgT3RoZXIgJ1ZJUlRVQUwnCiAKIAog Q1JFQVRFIFNDSEVNQSBnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzOwogR1JBTlQgVVNBR0UgT04gU0NI RU1BIGdlbmVyYXRlZF9zdG9yZWRfdGVzdHMgVE8gUFVCTElDOwogU0VUIHNlYXJjaF9wYXRoID0g Z2VuZXJhdGVkX3N0b3JlZF90ZXN0czsKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0MCAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKDU1KSBTVE9SRUQpOwotQ1JFQVRF IFRBQkxFIGd0ZXN0MSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MCAoYSBpbnQgUFJJTUFSWSBL RVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKDU1KSA6R2VuZXJhdGVkKTsKK0NSRUFURSBU QUJMRSBndGVzdDEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChhICogMikgOkdlbmVyYXRlZCk7CiAKIFNFTEVDVCB0YWJsZV9uYW1lLCBjb2x1bW5fbmFtZSwg Y29sdW1uX2RlZmF1bHQsIGlzX251bGxhYmxlLCBpc19nZW5lcmF0ZWQsIGdlbmVyYXRpb25fZXhw cmVzc2lvbiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5zIFdIRVJFIHRhYmxlX3NjaGVt YSA9ICdnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzJyBPUkRFUiBCWSAxLCAyOwogCkBAIC0xNSw0MCAr MTgsNDAgQEAgU0VMRUNUIHRhYmxlX25hbWUsIGNvbHVtbl9uYW1lLCBkZXBlbmRlbnRfY29sdW1u IEZST00gaW5mb3JtYXRpb25fc2NoZW1hLmNvbHVtbl8KIFxkIGd0ZXN0MQogCiAtLSBkdXBsaWNh dGUgZ2VuZXJhdGVkCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzEgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEIEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAzKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8xIChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIDpHZW5lcmF0ZWQpOwogCiAtLSByZWZlcmVuY2Vz IHRvIG90aGVyIGdlbmVyYXRlZCBjb2x1bW5zLCBpbmNsdWRpbmcgc2VsZi1yZWZlcmVuY2VzCi1D UkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzJhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYiAqIDIpIFNUT1JFRCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzJi IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNU T1JFRCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDMpIFNUT1JFRCk7CitDUkVBVEUg VEFCTEUgZ3Rlc3RfZXJyXzJhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYiAqIDIpIDpHZW5lcmF0ZWQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8yYiAo YSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSA6R2Vu ZXJhdGVkLCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMykgOkdlbmVyYXRlZCk7CiAt LSBhIHdob2xlLXJvdyB2YXIgaXMgYSBzZWxmLXJlZmVyZW5jZSBvbiBzdGVyb2lkcywgc28gZGlz YWxsb3cgdGhhdCB0b28KIENSRUFURSBUQUJMRSBndGVzdF9lcnJfMmMgKGEgaW50IFBSSU1BUlkg S0VZLAotICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bV9udWxscyhndGVzdF9lcnJf MmMpKSBTVE9SRUQpOworICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bV9udWxscyhn dGVzdF9lcnJfMmMpKSA6R2VuZXJhdGVkKTsKIAogLS0gaW52YWxpZCByZWZlcmVuY2UKLUNSRUFU RSBUQUJMRSBndGVzdF9lcnJfMyAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGMgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8zIChhIGlu dCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYyAqIDIpIDpHZW5lcmF0 ZWQpOwogCiAtLSBnZW5lcmF0aW9uIGV4cHJlc3Npb24gbXVzdCBiZSBpbW11dGFibGUKLUNSRUFU RSBUQUJMRSBndGVzdF9lcnJfNCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgZG91YmxlIHByZWNpc2lv biBHRU5FUkFURUQgQUxXQVlTIEFTIChyYW5kb20oKSkgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBn dGVzdF9lcnJfNCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgZG91YmxlIHByZWNpc2lvbiBHRU5FUkFU RUQgQUxXQVlTIEFTIChyYW5kb20oKSkgOkdlbmVyYXRlZCk7CiAtLSAuLi4gYnV0IGJlIHN1cmUg dGhhdCB0aGUgaW1tdXRhYmlsaXR5IHRlc3QgaXMgYWNjdXJhdGUKLUNSRUFURSBUQUJMRSBndGVz dDIgKGEgaW50LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSB8fCAnIHNlYycpIFNUT1JF RCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyIChhIGludCwgYiB0ZXh0IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgfHwgJyBzZWMnKSA6R2VuZXJhdGVkKTsKIERST1AgVEFCTEUgZ3Rlc3QyOwogCiAtLSBj YW5ub3QgaGF2ZSBkZWZhdWx0L2lkZW50aXR5IGFuZCBnZW5lcmF0ZWQKLUNSRUFURSBUQUJMRSBn dGVzdF9lcnJfNWEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBERUZBVUxUIDUgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzViIChh IGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyBpZGVudGl0eSBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJf NWEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBERUZBVUxUIDUgR0VORVJBVEVEIEFMV0FZUyBB UyAoYSAqIDIpIDpHZW5lcmF0ZWQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl81YiAoYSBpbnQg UFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgaWRlbnRpdHkgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQpOwogCiAtLSByZWZlcmVuY2UgdG8gc3lzdGVt IGNvbHVtbiBub3QgYWxsb3dlZCBpbiBnZW5lcmF0ZWQgY29sdW1uCiAtLSAoZXhjZXB0IHRhYmxl b2lkLCB3aGljaCB3ZSB0ZXN0IGJlbG93KQotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl82YSAoYSBp bnQgUFJJTUFSWSBLRVksIGIgYm9vbCBHRU5FUkFURUQgQUxXQVlTIEFTICh4bWluIDw+IDM3KSBT VE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl82YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIg Ym9vbCBHRU5FUkFURUQgQUxXQVlTIEFTICh4bWluIDw+IDM3KSA6R2VuZXJhdGVkKTsKIAogLS0g dmFyaW91cyBwcm9oaWJpdGVkIGNvbnN0cnVjdHMKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfN2Eg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhdmcoYSkpIFNU T1JFRCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzdiIChhIGludCBQUklNQVJZIEtFWSwgYiBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAocm93X251bWJlcigpIE9WRVIgKE9SREVSIEJZIGEpKSBT VE9SRUQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83YyAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChTRUxFQ1QgYSkpIFNUT1JFRCk7Ci1DUkVBVEUgVEFC TEUgZ3Rlc3RfZXJyXzdkIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoZ2VuZXJhdGVfc2VyaWVzKDEsIGEpKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0 X2Vycl83YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGF2 ZyhhKSkgOkdlbmVyYXRlZCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzdiIChhIGludCBQUklN QVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAocm93X251bWJlcigpIE9WRVIgKE9S REVSIEJZIGEpKSA6R2VuZXJhdGVkKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfN2MgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoU0VMRUNUIGEpKSA6R2Vu ZXJhdGVkKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfN2QgKGEgaW50IFBSSU1BUlkgS0VZLCBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChnZW5lcmF0ZV9zZXJpZXMoMSwgYSkpIDpHZW5lcmF0 ZWQpOwogCiAtLSBHRU5FUkFURUQgQlkgREVGQVVMVCBub3QgYWxsb3dlZAotQ1JFQVRFIFRBQkxF IGd0ZXN0X2Vycl84IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEJZIERFRkFV TFQgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl84IChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEJZIERFRkFVTFQgQVMgKGEgKiAyKSA6R2VuZXJh dGVkKTsKIAogSU5TRVJUIElOVE8gZ3Rlc3QxIFZBTFVFUyAoMSk7CiBJTlNFUlQgSU5UTyBndGVz dDEgVkFMVUVTICgyLCBERUZBVUxUKTsgIC0tIG9rCkBAIC05NCw4ICs5Nyw4IEBAIENSRUFURSBU QUJMRSBndGVzdG0gKAogICBpZCBpbnQgUFJJTUFSWSBLRVksCiAgIGYxIGludCwKICAgZjIgaW50 LAotICBmMyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjEgKiAyKSBTVE9SRUQsCi0gIGY0IGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFNUT1JFRAorICBmMyBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoZjEgKiAyKSA6R2VuZXJhdGVkLAorICBmNCBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoZjIgKiAyKSA6R2VuZXJhdGVkCiApOwogSU5TRVJUIElOVE8gZ3Rlc3RtIFZBTFVFUyAo MSwgNSwgMTAwKTsKIE1FUkdFIElOVE8gZ3Rlc3RtIHQgVVNJTkcgKFZBTFVFUyAoMSwgMTApLCAo MiwgMjApKSB2KGlkLCBmMSkgT04gdC5pZCA9IHYuaWQKQEAgLTEwNyw3ICsxMTAsNyBAQCBEUk9Q IFRBQkxFIGd0ZXN0bTsKIAogQ1JFQVRFIFRBQkxFIGd0ZXN0bSAoCiAgIGEgaW50IFBSSU1BUlkg S0VZLAotICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVECisgIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSA6R2VuZXJhdGVkCiApOwogSU5TRVJUIElOVE8g Z3Rlc3RtIChhKSBTRUxFQ1QgZyBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMCkgZzsKIE1FUkdF IElOVE8gZ3Rlc3RtIHQgVVNJTkcgZ3Rlc3RtIEFTIHMgT04gMiAqIHQuYSA9IHMuYiBXSEVOIE1B VENIRUQgVEhFTiBERUxFVEUgUkVUVVJOSU5HICo7CkBAIC0xNDQsMTYgKzE0NywxNiBAQCBTRUxF Q1QgKiBGUk9NIGd0ZXN0MTsKIAogLS0gY2FuJ3QgaGF2ZSBnZW5lcmF0ZWQgY29sdW1uIHRoYXQg aXMgYSBjaGlsZCBvZiBub3JtYWwgY29sdW1uCiBDUkVBVEUgVEFCTEUgZ3Rlc3Rfbm9ybWFsIChh IGludCwgYiBpbnQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0X25vcm1hbF9jaGlsZCAoYSBpbnQsIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpIElOSEVSSVRTIChndGVzdF9u b3JtYWwpOyAgLS0gZXJyb3IKLUNSRUFURSBUQUJMRSBndGVzdF9ub3JtYWxfY2hpbGQgKGEgaW50 LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJM RSBndGVzdF9ub3JtYWxfY2hpbGQgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChh ICogMikgOkdlbmVyYXRlZCkgSU5IRVJJVFMgKGd0ZXN0X25vcm1hbCk7ICAtLSBlcnJvcgorQ1JF QVRFIFRBQkxFIGd0ZXN0X25vcm1hbF9jaGlsZCAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSA6R2VuZXJhdGVkKTsKIEFMVEVSIFRBQkxFIGd0ZXN0X25vcm1hbF9jaGls ZCBJTkhFUklUIGd0ZXN0X25vcm1hbDsgIC0tIGVycm9yCiBEUk9QIFRBQkxFIGd0ZXN0X25vcm1h bCwgZ3Rlc3Rfbm9ybWFsX2NoaWxkOwogCiAtLSB0ZXN0IGluaGVyaXRhbmNlIG1pc21hdGNoZXMg YmV0d2VlbiBwYXJlbnQgYW5kIGNoaWxkCiBDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgYiBp bnQgREVGQVVMVCAxMCkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAtLSBlcnJvcgogQ1JFQVRFIFRBQkxF IGd0ZXN0eCAoeCBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgSURFTlRJVFkpIElOSEVS SVRTIChndGVzdDEpOyAgLS0gZXJyb3IKLUNSRUFURSBUQUJMRSBndGVzdHggKHggaW50LCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMjIpIFZJUlRVQUwpIElOSEVSSVRTIChndGVzdDEp OyAgLS0gZXJyb3IKLUNSRUFURSBUQUJMRSBndGVzdHggKHggaW50LCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMjIpIFNUT1JFRCkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAtLSBvaywgb3Zl cnJpZGVzIHBhcmVudAorQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAyMikgOk90aGVyKSBJTkhFUklUUyAoZ3Rlc3QxKTsgIC0tIGVycm9y CitDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YSAqIDIyKSA6R2VuZXJhdGVkKSBJTkhFUklUUyAoZ3Rlc3QxKTsgIC0tIG9rLCBvdmVycmlkZXMg cGFyZW50CiBcZCsgZ3Rlc3R4CiBJTlNFUlQgSU5UTyBndGVzdHggKGEsIHgpIFZBTFVFUyAoMTEs IDIyKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3QxOwpAQCAtMTYxLDkgKzE2NCw5IEBAIFNFTEVDVCAq IEZST00gZ3Rlc3R4OwogCiBDUkVBVEUgVEFCTEUgZ3Rlc3R4eF8xIChhIGludCBOT1QgTlVMTCwg YiBpbnQpOwogQUxURVIgVEFCTEUgZ3Rlc3R4eF8xIElOSEVSSVQgZ3Rlc3QxOyAgLS0gZXJyb3IK LUNSRUFURSBUQUJMRSBndGVzdHh4XzMgKGEgaW50IE5PVCBOVUxMLCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdHh4XzMgKGEgaW50 IE5PVCBOVUxMLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZCk7 CiBBTFRFUiBUQUJMRSBndGVzdHh4XzMgSU5IRVJJVCBndGVzdDE7ICAtLSBvawotQ1JFQVRFIFRB QkxFIGd0ZXN0eHhfNCAoYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCwg YSBpbnQgTk9UIE5VTEwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0eHhfNCAoYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQsIGEgaW50IE5PVCBOVUxMKTsKIEFMVEVSIFRB QkxFIGd0ZXN0eHhfNCBJTkhFUklUIGd0ZXN0MTsgIC0tIG9rCiAKIC0tIHRlc3QgbXVsdGlwbGUg aW5oZXJpdGFuY2UgbWlzbWF0Y2hlcwpAQCAtMTc1LDE0ICsxNzgsMTQgQEAgQ1JFQVRFIFRBQkxF IGd0ZXN0eSAoeCBpbnQsIGIgaW50KTsKIENSRUFURSBUQUJMRSBndGVzdDFfeSAoKSBJTkhFUklU UyAoZ3Rlc3QxLCBndGVzdHkpOyAgLS0gZXJyb3IKIERST1AgVEFCTEUgZ3Rlc3R5OwogCi1DUkVB VEUgVEFCTEUgZ3Rlc3R5ICh4IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoeCAqIDIy KSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0eSAoeCBpbnQsIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKHggKiAyMikgOkdlbmVyYXRlZCk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QxX3kgKCkg SU5IRVJJVFMgKGd0ZXN0MSwgZ3Rlc3R5KTsgIC0tIGVycm9yCi1DUkVBVEUgVEFCTEUgZ3Rlc3Qx X3kgKGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHggKyAxKSBTVE9SRUQpIElOSEVSSVRTIChn dGVzdDEsIGd0ZXN0eSk7ICAtLSBvaworQ1JFQVRFIFRBQkxFIGd0ZXN0MV95IChiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTICh4ICsgMSkgOkdlbmVyYXRlZCkgSU5IRVJJVFMgKGd0ZXN0MSwgZ3Rl c3R5KTsgIC0tIG9rCiBcZCBndGVzdDFfeQogCiAtLSB0ZXN0IGNvcnJlY3QgaGFuZGxpbmcgb2Yg R0VORVJBVEVEIGNvbHVtbiB0aGF0J3Mgb25seSBpbiBjaGlsZAogQ1JFQVRFIFRBQkxFIGd0ZXN0 cCAoZjEgaW50KTsKLUNSRUFURSBUQUJMRSBndGVzdGMgKGYyIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChmMSsxKSBTVE9SRUQpIElOSEVSSVRTKGd0ZXN0cCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3Rj IChmMiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjErMSkgOkdlbmVyYXRlZCkgSU5IRVJJVFMo Z3Rlc3RwKTsKIElOU0VSVCBJTlRPIGd0ZXN0YyB2YWx1ZXMoNDIpOwogVEFCTEUgZ3Rlc3RjOwog VVBEQVRFIGd0ZXN0cCBTRVQgZjEgPSBmMSAqIDEwOwpAQCAtMTkwLDEzICsxOTMsMTMgQEAgVEFC TEUgZ3Rlc3RjOwogRFJPUCBUQUJMRSBndGVzdHAgQ0FTQ0FERTsKIAogLS0gdGVzdCBzdG9yZWQg dXBkYXRlCi1DUkVBVEUgVEFCTEUgZ3Rlc3QzIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAqIDMpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QzIChhIGludCwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIDpHZW5lcmF0ZWQpOwogSU5TRVJUIElOVE8gZ3Rl c3QzIChhKSBWQUxVRVMgKDEpLCAoMiksICgzKSwgKE5VTEwpOwogU0VMRUNUICogRlJPTSBndGVz dDMgT1JERVIgQlkgYTsKIFVQREFURSBndGVzdDMgU0VUIGEgPSAyMiBXSEVSRSBhID0gMjsKIFNF TEVDVCAqIEZST00gZ3Rlc3QzIE9SREVSIEJZIGE7CiAKLUNSRUFURSBUQUJMRSBndGVzdDNhIChh IHRleHQsIGIgdGV4dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhIHx8ICcrJyB8fCBhKSBTVE9SRUQp OworQ1JFQVRFIFRBQkxFIGd0ZXN0M2EgKGEgdGV4dCwgYiB0ZXh0IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgfHwgJysnIHx8IGEpIDpHZW5lcmF0ZWQpOwogSU5TRVJUIElOVE8gZ3Rlc3QzYSAoYSkg VkFMVUVTICgnYScpLCAoJ2InKSwgKCdjJyksIChOVUxMKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3Qz YSBPUkRFUiBCWSBhOwogVVBEQVRFIGd0ZXN0M2EgU0VUIGEgPSAnYmInIFdIRVJFIGEgPSAnYic7 CkBAIC0yMzYsMTIgKzIzOSwxMiBAQCBDT1BZIGd0ZXN0MyAoYSwgYikgRlJPTSBzdGRpbjsKIFNF TEVDVCAqIEZST00gZ3Rlc3QzIE9SREVSIEJZIGE7CiAKIC0tIG51bGwgdmFsdWVzCi1DUkVBVEUg VEFCTEUgZ3Rlc3QyIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoTlVMTCkgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDIgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChOVUxMKSA6R2VuZXJhdGVkKTsKIElOU0VSVCBJ TlRPIGd0ZXN0MiBWQUxVRVMgKDEpOwogU0VMRUNUICogRlJPTSBndGVzdDI7CiAKIC0tIHNpbXBs ZSBjb2x1bW4gcmVmZXJlbmNlIGZvciB2YXJsZW5hIHR5cGVzCi1DUkVBVEUgVEFCTEUgZ3Rlc3Rf dmFybGVuYSAoYSB2YXJjaGFyLCBiIHZhcmNoYXIgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSkgU1RP UkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF92YXJsZW5hIChhIHZhcmNoYXIsIGIgdmFyY2hhciBH RU5FUkFURUQgQUxXQVlTIEFTIChhKSA6R2VuZXJhdGVkKTsKIElOU0VSVCBJTlRPIGd0ZXN0X3Zh cmxlbmEgKGEpIFZBTFVFUygnMDEyMzQ1Njc4OTAxMjM0NTY3ODknKTsKIElOU0VSVCBJTlRPIGd0 ZXN0X3ZhcmxlbmEgKGEpIFZBTFVFUyhOVUxMKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3RfdmFybGVu YSBPUkRFUiBCWSBhOwpAQCAtMjUxLDcgKzI1NCw3IEBAIERST1AgVEFCTEUgZ3Rlc3RfdmFybGVu YTsKIENSRUFURSBUWVBFIGRvdWJsZV9pbnQgYXMgKGEgaW50LCBiIGludCk7CiBDUkVBVEUgVEFC TEUgZ3Rlc3Q0ICgKICAgICBhIGludCwKLSAgICBiIGRvdWJsZV9pbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoKGEgKiAyLCBhICogMykpIFNUT1JFRAorICAgIGIgZG91YmxlX2ludCBHRU5FUkFURUQg QUxXQVlTIEFTICgoYSAqIDIsIGEgKiAzKSkgOkdlbmVyYXRlZAogKTsKIElOU0VSVCBJTlRPIGd0 ZXN0NCBWQUxVRVMgKDEpLCAoNik7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0NDsKQEAgLTI2MiwzNSAr MjY1LDM1IEBAIERST1AgVFlQRSBkb3VibGVfaW50OwogLS0gdXNpbmcgdGFibGVvaWQgaXMgYWxs b3dlZAogQ1JFQVRFIFRBQkxFIGd0ZXN0X3RhYmxlb2lkICgKICAgYSBpbnQgUFJJTUFSWSBLRVks Ci0gIGIgYm9vbCBHRU5FUkFURUQgQUxXQVlTIEFTICh0YWJsZW9pZCA9ICdndGVzdF90YWJsZW9p ZCc6OnJlZ2NsYXNzKSBTVE9SRUQKKyAgYiBib29sIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHRhYmxl b2lkID0gJ2d0ZXN0X3RhYmxlb2lkJzo6cmVnY2xhc3MpIDpHZW5lcmF0ZWQKICk7CiBJTlNFUlQg SU5UTyBndGVzdF90YWJsZW9pZCBWQUxVRVMgKDEpLCAoMik7CiBBTFRFUiBUQUJMRSBndGVzdF90 YWJsZW9pZCBBREQgQ09MVU1OCi0gIGMgcmVnY2xhc3MgR0VORVJBVEVEIEFMV0FZUyBBUyAodGFi bGVvaWQpIFNUT1JFRDsKKyAgYyByZWdjbGFzcyBHRU5FUkFURUQgQUxXQVlTIEFTICh0YWJsZW9p ZCkgOkdlbmVyYXRlZDsKIFNFTEVDVCAqIEZST00gZ3Rlc3RfdGFibGVvaWQ7CiAKIC0tIGRyb3Ag Y29sdW1uIGJlaGF2aW9yCi1DUkVBVEUgVEFCTEUgZ3Rlc3QxMCAoYSBpbnQgUFJJTUFSWSBLRVks IGIgaW50LCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgU1RPUkVEKTsKK0NSRUFU RSBUQUJMRSBndGVzdDEwIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQsIGMgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGIgKiAyKSA6R2VuZXJhdGVkKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MTAgRFJP UCBDT0xVTU4gYjsgIC0tIGZhaWxzCiBBTFRFUiBUQUJMRSBndGVzdDEwIERST1AgQ09MVU1OIGIg Q0FTQ0FERTsgIC0tIGRyb3BzIGMgdG9vCiAKIFxkIGd0ZXN0MTAKIAotQ1JFQVRFIFRBQkxFIGd0 ZXN0MTBhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAq IDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QxMGEgKGEgaW50IFBSSU1BUlkgS0VZLCBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZCk7CiBBTFRFUiBUQUJM RSBndGVzdDEwYSBEUk9QIENPTFVNTiBiOwogSU5TRVJUIElOVE8gZ3Rlc3QxMGEgKGEpIFZBTFVF UyAoMSk7CiAKIC0tIHByaXZpbGVnZXMKIENSRUFURSBVU0VSIHJlZ3Jlc3NfdXNlcjExOwogCi1D UkVBVEUgVEFCTEUgZ3Rlc3QxMSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50LCBjIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChiICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDExIChh IGludCBQUklNQVJZIEtFWSwgYiBpbnQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAy KSA6R2VuZXJhdGVkKTsKIElOU0VSVCBJTlRPIGd0ZXN0MTEgVkFMVUVTICgxLCAxMCksICgyLCAy MCk7CiBHUkFOVCBTRUxFQ1QgKGEsIGMpIE9OIGd0ZXN0MTEgVE8gcmVncmVzc191c2VyMTE7CiAK IENSRUFURSBGVU5DVElPTiBnZjEoYSBpbnQpIFJFVFVSTlMgaW50IEFTICQkIFNFTEVDVCBhICog MyAkJCBJTU1VVEFCTEUgTEFOR1VBR0UgU1FMOwogUkVWT0tFIEFMTCBPTiBGVU5DVElPTiBnZjEo aW50KSBGUk9NIFBVQkxJQzsKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0MTIgKGEgaW50IFBSSU1BUlkg S0VZLCBiIGludCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZ2YxKGIpKSBTVE9SRUQpOwor Q1JFQVRFIFRBQkxFIGd0ZXN0MTIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCwgYyBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoZ2YxKGIpKSA6R2VuZXJhdGVkKTsKIElOU0VSVCBJTlRPIGd0ZXN0 MTIgVkFMVUVTICgxLCAxMCksICgyLCAyMCk7CiBHUkFOVCBTRUxFQ1QgKGEsIGMpLCBJTlNFUlQg T04gZ3Rlc3QxMiBUTyByZWdyZXNzX3VzZXIxMTsKIApAQCAtMzA4LDE0ICszMTEsMTQgQEAgRFJP UCBGVU5DVElPTiBnZjEoaW50KTsKIERST1AgVVNFUiByZWdyZXNzX3VzZXIxMTsKIAogLS0gY2hl Y2sgY29uc3RyYWludHMKLUNSRUFURSBUQUJMRSBndGVzdDIwIChhIGludCBQUklNQVJZIEtFWSwg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCBDSEVDSyAoYiA8IDUwKSk7 CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAyKSA6R2VuZXJhdGVkIENIRUNLIChiIDwgNTApKTsKIElOU0VSVCBJ TlRPIGd0ZXN0MjAgKGEpIFZBTFVFUyAoMTApOyAgLS0gb2sKIElOU0VSVCBJTlRPIGd0ZXN0MjAg KGEpIFZBTFVFUyAoMzApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAogCiBBTFRFUiBUQUJMRSBn dGVzdDIwIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogMTAwKTsgIC0tIHZp b2xhdGVzIGNvbnN0cmFpbnQKIEFMVEVSIFRBQkxFIGd0ZXN0MjAgQUxURVIgQ09MVU1OIGIgU0VU IEVYUFJFU1NJT04gQVMgKGEgKiAzKTsgIC0tIG9rCiAKLUNSRUFURSBUQUJMRSBndGVzdDIwYSAo YSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9S RUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjBhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQpOwogSU5TRVJUIElOVE8gZ3Rlc3Qy MGEgKGEpIFZBTFVFUyAoMTApOwogSU5TRVJUIElOVE8gZ3Rlc3QyMGEgKGEpIFZBTFVFUyAoMzAp OwogQUxURVIgVEFCTEUgZ3Rlc3QyMGEgQUREIENIRUNLIChiIDwgNTApOyAgLS0gZmFpbHMgb24g ZXhpc3Rpbmcgcm93CkBAIC0zMjMsMzcgKzMyNiwzNyBAQCBBTFRFUiBUQUJMRSBndGVzdDIwYSBB REQgQ0hFQ0sgKGIgPCA1MCk7ICAtLSBmYWlscyBvbiBleGlzdGluZyByb3cKIEFMVEVSIFRBQkxF IGd0ZXN0MjBhIEFERCBDT0xVTU4gYyBmbG9hdDggREVGQVVMVCByYW5kb20oKSBDSEVDSyAoYiA8 IDUwKTsgLS0gZmFpbHMgb24gZXhpc3Rpbmcgcm93CiBBTFRFUiBUQUJMRSBndGVzdDIwYSBBREQg Q09MVU1OIGMgZmxvYXQ4IERFRkFVTFQgcmFuZG9tKCkgQ0hFQ0sgKGIgPCA2MSk7IC0tIG9rCiAK LUNSRUFURSBUQUJMRSBndGVzdDIwYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjBiIChhIGlu dCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0 ZWQpOwogSU5TRVJUIElOVE8gZ3Rlc3QyMGIgKGEpIFZBTFVFUyAoMTApOwogSU5TRVJUIElOVE8g Z3Rlc3QyMGIgKGEpIFZBTFVFUyAoMzApOwogQUxURVIgVEFCTEUgZ3Rlc3QyMGIgQUREIENPTlNU UkFJTlQgY2hrIENIRUNLIChiIDwgNTApIE5PVCBWQUxJRDsKIEFMVEVSIFRBQkxFIGd0ZXN0MjBi IFZBTElEQVRFIENPTlNUUkFJTlQgY2hrOyAgLS0gZmFpbHMgb24gZXhpc3Rpbmcgcm93CiAKIC0t IGNoZWNrIHdpdGggd2hvbGUtcm93IHJlZmVyZW5jZQotQ1JFQVRFIFRBQkxFIGd0ZXN0MjBjIChh IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7CitDUkVBVEUg VEFCTEUgZ3Rlc3QyMGMgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikg OkdlbmVyYXRlZCk7CiBBTFRFUiBUQUJMRSBndGVzdDIwYyBBREQgQ09OU1RSQUlOVCB3aG9sZV9y b3dfY2hlY2sgQ0hFQ0sgKGd0ZXN0MjBjIElTIE5PVCBOVUxMKTsKIElOU0VSVCBJTlRPIGd0ZXN0 MjBjIFZBTFVFUyAoMSk7ICAtLSBvawogSU5TRVJUIElOVE8gZ3Rlc3QyMGMgVkFMVUVTIChOVUxM KTsgIC0tIGZhaWxzCiAKIC0tIG5vdC1udWxsIGNvbnN0cmFpbnRzCi1DUkVBVEUgVEFCTEUgZ3Rl c3QyMWEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxs aWYoYSwgMCkpIFNUT1JFRCBOT1QgTlVMTCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMWEgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYoYSwgMCkpIDpH ZW5lcmF0ZWQgTk9UIE5VTEwpOwogSU5TRVJUIElOVE8gZ3Rlc3QyMWEgKGEpIFZBTFVFUyAoMSk7 ICAtLSBvawogSU5TRVJUIElOVE8gZ3Rlc3QyMWEgKGEpIFZBTFVFUyAoMCk7ICAtLSB2aW9sYXRl cyBjb25zdHJhaW50CiAKIC0tIGFsc28gY2hlY2sgd2l0aCB0YWJsZSBjb25zdHJhaW50IHN5bnRh eAotQ1JFQVRFIFRBQkxFIGd0ZXN0MjFheCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLCAwKSkgU1RPUkVELCBDT05TVFJBSU5UIGNjIE5PVCBO VUxMIGIpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjFheCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLCAwKSkgOkdlbmVyYXRlZCwgQ09OU1RSQUlO VCBjYyBOT1QgTlVMTCBiKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjFheCAoYSkgVkFMVUVTICgwKTsg IC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKIElOU0VSVCBJTlRPIGd0ZXN0MjFheCAoYSkgVkFMVUVT ICgxKTsgIC0tb2sKIC0tIFNFVCBFWFBSRVNTSU9OIHN1cHBvcnRzIG5vdCBudWxsIGNvbnN0cmFp bnQKIEFMVEVSIFRBQkxFIGd0ZXN0MjFheCBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBB UyAobnVsbGlmKGEsIDEpKTsgLS1lcnJvcgogRFJPUCBUQUJMRSBndGVzdDIxYXg7CiAKLUNSRUFU RSBUQUJMRSBndGVzdDIxYXggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChudWxsaWYoYSwgMCkpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMWF4IChh IGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVsbGlmKGEsIDAp KSA6R2VuZXJhdGVkKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MjFheCBBREQgQ09OU1RSQUlOVCBjYyBO T1QgTlVMTCBiOwogSU5TRVJUIElOVE8gZ3Rlc3QyMWF4IChhKSBWQUxVRVMgKDApOyAgLS0gdmlv bGF0ZXMgY29uc3RyYWludAogRFJPUCBUQUJMRSBndGVzdDIxYXg7CiAKLUNSRUFURSBUQUJMRSBn dGVzdDIxYiAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLCAwKSkg U1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDIxYiAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKG51bGxpZihhLCAwKSkgOkdlbmVyYXRlZCk7CiBBTFRFUiBUQUJMRSBndGVzdDIx YiBBTFRFUiBDT0xVTU4gYiBTRVQgTk9UIE5VTEw7CiBJTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkg VkFMVUVTICgxKTsgIC0tIG9rCiBJTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgyKSwg KDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludApAQCAtMzY1LDcgKzM2OCw3IEBAIElOU0VSVCBJ TlRPIGd0ZXN0MjFiIChhKSBWQUxVRVMgKDApOyAgLS0gb2sgbm93CiBDUkVBVEUgVEFCTEUgZ3Rl c3Rubl9wYXJlbnQgKAogICAgIGYxIGludCwKICAgICBmMiBiaWdpbnQsCi0gICAgZjMgYmlnaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihmMSwgMSkgKyBudWxsaWYoZjIsIDEwKSkgU1RP UkVEIE5PVCBOVUxMCisgICAgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihm MSwgMSkgKyBudWxsaWYoZjIsIDEwKSkgOkdlbmVyYXRlZCBOT1QgTlVMTAogKSBQQVJUSVRJT04g QlkgUkFOR0UgKGYxKTsKIENSRUFURSBUQUJMRSBndGVzdG5uX2NoaWxkIFBBUlRJVElPTiBPRiBn dGVzdG5uX3BhcmVudCBGT1IgVkFMVUVTIEZST00gKDEpIFRPICg1KTsKIENSRUFURSBUQUJMRSBn dGVzdG5uX2NoaWxkZGVmIFBBUlRJVElPTiBPRiBndGVzdG5uX3BhcmVudCBkZWZhdWx0OwpAQCAt Mzc3LDIxICszODAsMjEgQEAgQUxURVIgVEFCTEUgZ3Rlc3Rubl9wYXJlbnQgQUxURVIgQ09MVU1O IGYzIFNFVCBFWFBSRVNTSU9OIEFTIChudWxsaWYoZjEsIDIpICsgbnUKIElOU0VSVCBJTlRPIGd0 ZXN0bm5fcGFyZW50IFZBTFVFUyAoMTAsIDExLCBkZWZhdWx0KTsgIC0tIG9rCiBTRUxFQ1QgKiBG Uk9NIGd0ZXN0bm5fcGFyZW50IE9SREVSIEJZIGYxLCBmMiwgZjM7CiAtLSB0ZXN0IEFMVEVSIFRB QkxFIEFERCBDT0xVTU4KLUFMVEVSIFRBQkxFIGd0ZXN0bm5fcGFyZW50IEFERCBDT0xVTU4gYyBp bnQgTk9UIE5VTEwgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVsbGlmKGYxLCAxNCkgKyBudWxsaWYo ZjIsIDEwKSkgU1RPUkVEOyAgLS0gZXJyb3IKLUFMVEVSIFRBQkxFIGd0ZXN0bm5fcGFyZW50IEFE RCBDT0xVTU4gYyBpbnQgTk9UIE5VTEwgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVsbGlmKGYxLCAx MykgKyBudWxsaWYoZjIsIDUpKSBTVE9SRUQ7ICAtLSBlcnJvcgotQUxURVIgVEFCTEUgZ3Rlc3Ru bl9wYXJlbnQgQUREIENPTFVNTiBjIGludCBOT1QgTlVMTCBHRU5FUkFURUQgQUxXQVlTIEFTIChu dWxsaWYoZjEsIDQpICsgbnVsbGlmKGYyLCA2KSkgU1RPUkVEOyAgLS0gb2sKK0FMVEVSIFRBQkxF IGd0ZXN0bm5fcGFyZW50IEFERCBDT0xVTU4gYyBpbnQgTk9UIE5VTEwgR0VORVJBVEVEIEFMV0FZ UyBBUyAobnVsbGlmKGYxLCAxNCkgKyBudWxsaWYoZjIsIDEwKSkgOkdlbmVyYXRlZDsgIC0tIGVy cm9yCitBTFRFUiBUQUJMRSBndGVzdG5uX3BhcmVudCBBREQgQ09MVU1OIGMgaW50IE5PVCBOVUxM IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihmMSwgMTMpICsgbnVsbGlmKGYyLCA1KSkgOkdl bmVyYXRlZDsgIC0tIGVycm9yCitBTFRFUiBUQUJMRSBndGVzdG5uX3BhcmVudCBBREQgQ09MVU1O IGMgaW50IE5PVCBOVUxMIEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihmMSwgNCkgKyBudWxs aWYoZjIsIDYpKSA6R2VuZXJhdGVkOyAgLS0gb2sKIAogLS0gaW5kZXggY29uc3RyYWludHMKLUNS RUFURSBUQUJMRSBndGVzdDIyYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGEgLyAyKSBTVE9SRUQgVU5JUVVFKTsKK0NSRUFURSBUQUJMRSBndGVzdDIyYSAo YSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgLyAyKSA6R2Vu ZXJhdGVkIFVOSVFVRSk7CiBJTlNFUlQgSU5UTyBndGVzdDIyYSBWQUxVRVMgKDIpOwogSU5TRVJU IElOVE8gZ3Rlc3QyMmEgVkFMVUVTICgzKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjJhIFZBTFVFUyAo NCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QyMmIgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChhIC8gMikgU1RPUkVELCBQUklNQVJZIEtFWSAoYSwgYikpOworQ1JFQVRFIFRBQkxFIGd0 ZXN0MjJiIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAvIDIpIDpHZW5lcmF0 ZWQsIFBSSU1BUlkgS0VZIChhLCBiKSk7CiBJTlNFUlQgSU5UTyBndGVzdDIyYiBWQUxVRVMgKDIp OwogSU5TRVJUIElOVE8gZ3Rlc3QyMmIgVkFMVUVTICgyKTsKIAogLS0gaW5kZXhlcwotQ1JFQVRF IFRBQkxFIGd0ZXN0MjJjIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIp IFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMmMgKGEgaW50LCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZCk7CiBDUkVBVEUgSU5ERVggZ3Rlc3QyMmNfYl9p ZHggT04gZ3Rlc3QyMmMgKGIpOwogQ1JFQVRFIElOREVYIGd0ZXN0MjJjX2V4cHJfaWR4IE9OIGd0 ZXN0MjJjICgoYiAqIDMpKTsKIENSRUFURSBJTkRFWCBndGVzdDIyY19wcmVkX2lkeCBPTiBndGVz dDIyYyAoYSkgV0hFUkUgYiA+IDA7CkBAIC00MjIsMTAgKzQyNSwxMCBAQCBSRVNFVCBlbmFibGVf Yml0bWFwc2NhbjsKIENSRUFURSBUQUJMRSBndGVzdDIzYSAoeCBpbnQgUFJJTUFSWSBLRVksIHkg aW50KTsKIElOU0VSVCBJTlRPIGd0ZXN0MjNhIFZBTFVFUyAoMSwgMTEpLCAoMiwgMjIpLCAoMywg MzMpOwogCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyM3ggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEIFJFRkVSRU5DRVMgZ3Rlc3QyM2EgKHgp IE9OIFVQREFURSBDQVNDQURFKTsgIC0tIGVycm9yCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyM3ggKGEg aW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVE IFJFRkVSRU5DRVMgZ3Rlc3QyM2EgKHgpIE9OIERFTEVURSBTRVQgTlVMTCk7ICAtLSBlcnJvcgor Q1JFQVRFIFRBQkxFIGd0ZXN0MjN4IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQgUkVGRVJFTkNFUyBndGVzdDIzYSAoeCkgT04g VVBEQVRFIENBU0NBREUpOyAgLS0gZXJyb3IKK0NSRUFURSBUQUJMRSBndGVzdDIzeCAoYSBpbnQg UFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSA6R2VuZXJhdGVk IFJFRkVSRU5DRVMgZ3Rlc3QyM2EgKHgpIE9OIERFTEVURSBTRVQgTlVMTCk7ICAtLSBlcnJvcgog Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QyM2IgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEIFJFRkVSRU5DRVMgZ3Rlc3QyM2EgKHgpKTsKK0NS RUFURSBUQUJMRSBndGVzdDIzYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGEgKiAyKSA6R2VuZXJhdGVkIFJFRkVSRU5DRVMgZ3Rlc3QyM2EgKHgpKTsKIFxk IGd0ZXN0MjNiCiAKIElOU0VSVCBJTlRPIGd0ZXN0MjNiIFZBTFVFUyAoMSk7ICAtLSBvawpAQCAt NDM2LDcgKzQzOSw3IEBAIEFMVEVSIFRBQkxFIGd0ZXN0MjNiIEFMVEVSIENPTFVNTiBiIFNFVCBF WFBSRVNTSU9OIEFTIChhICogMSk7IC0tIG9rCiBEUk9QIFRBQkxFIGd0ZXN0MjNiOwogRFJPUCBU QUJMRSBndGVzdDIzYTsKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0MjNwICh4IGludCwgeSBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoeCAqIDIpIFNUT1JFRCwgUFJJTUFSWSBLRVkgKHkpKTsKK0NSRUFU RSBUQUJMRSBndGVzdDIzcCAoeCBpbnQsIHkgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHggKiAy KSA6R2VuZXJhdGVkLCBQUklNQVJZIEtFWSAoeSkpOwogSU5TRVJUIElOVE8gZ3Rlc3QyM3AgVkFM VUVTICgxKSwgKDIpLCAoMyk7CiAKIENSRUFURSBUQUJMRSBndGVzdDIzcSAoYSBpbnQgUFJJTUFS WSBLRVksIGIgaW50IFJFRkVSRU5DRVMgZ3Rlc3QyM3AgKHkpKTsKQEAgLTQ0NSw0MyArNDQ4LDQz IEBAIElOU0VSVCBJTlRPIGd0ZXN0MjNxIFZBTFVFUyAoMiwgNSk7ICAtLSBlcnJvcgogCiAtLSBk b21haW5zCiBDUkVBVEUgRE9NQUlOIGd0ZXN0ZG9tYWluMSBBUyBpbnQgQ0hFQ0sgKFZBTFVFIDwg MTApOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjQgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGd0ZXN0ZG9t YWluMSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBn dGVzdDI0IChhIGludCBQUklNQVJZIEtFWSwgYiBndGVzdGRvbWFpbjEgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQpOwogSU5TRVJUIElOVE8gZ3Rlc3QyNCAoYSkgVkFMVUVT ICg0KTsgIC0tIG9rCiBJTlNFUlQgSU5UTyBndGVzdDI0IChhKSBWQUxVRVMgKDYpOyAgLS0gZXJy b3IKIENSRUFURSBUWVBFIGd0ZXN0ZG9tYWluMXJhbmdlIEFTIHJhbmdlIChzdWJ0eXBlID0gZ3Rl c3Rkb21haW4xKTsKLUNSRUFURSBUQUJMRSBndGVzdDI0ciAoYSBpbnQgUFJJTUFSWSBLRVksIGIg Z3Rlc3Rkb21haW4xcmFuZ2UgR0VORVJBVEVEIEFMV0FZUyBBUyAoZ3Rlc3Rkb21haW4xcmFuZ2Uo YSwgYSArIDUpKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjRyIChhIGludCBQUklNQVJZ IEtFWSwgYiBndGVzdGRvbWFpbjFyYW5nZSBHRU5FUkFURUQgQUxXQVlTIEFTIChndGVzdGRvbWFp bjFyYW5nZShhLCBhICsgNSkpIDpHZW5lcmF0ZWQpOwogSU5TRVJUIElOVE8gZ3Rlc3QyNHIgKGEp IFZBTFVFUyAoNCk7ICAtLSBvawogSU5TRVJUIElOVE8gZ3Rlc3QyNHIgKGEpIFZBTFVFUyAoNik7 ICAtLSBlcnJvcgogCiBDUkVBVEUgVEFCTEUgZ3Rlc3QyNGF0IChhIGludCBQUklNQVJZIEtFWSk7 Ci1BTFRFUiBUQUJMRSBndGVzdDI0YXQgQUREIENPTFVNTiBiIGd0ZXN0ZG9tYWluMSBHRU5FUkFU RUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEOyAgLS0gb2sKLUNSRUFURSBUQUJMRSBndGVzdDI0 YXRhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIp IFNUT1JFRCk7CitBTFRFUiBUQUJMRSBndGVzdDI0YXQgQUREIENPTFVNTiBiIGd0ZXN0ZG9tYWlu MSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZDsgIC0tIG9rCitDUkVBVEUg VEFCTEUgZ3Rlc3QyNGF0YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSA6R2VuZXJhdGVkKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MjRhdGEgQUxURVIg Q09MVU1OIGIgVFlQRSBndGVzdGRvbWFpbjE7ICAtLSBvawogCiBDUkVBVEUgRE9NQUlOIGd0ZXN0 ZG9tYWlubm4gQVMgaW50IENIRUNLIChWQUxVRSBJUyBOT1QgTlVMTCk7Ci1DUkVBVEUgVEFCTEUg Z3Rlc3QyNG5uIChhIGludCwgYiBndGVzdGRvbWFpbm5uIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEg KiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjRubiAoYSBpbnQsIGIgZ3Rlc3Rkb21h aW5ubiBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZCk7CiBJTlNFUlQgSU5U TyBndGVzdDI0bm4gKGEpIFZBTFVFUyAoNCk7ICAtLSBvawogSU5TRVJUIElOVE8gZ3Rlc3QyNG5u IChhKSBWQUxVRVMgKE5VTEwpOyAgLS0gZXJyb3IKIAogLS0gdHlwZWQgdGFibGVzIChjdXJyZW50 bHkgbm90IHN1cHBvcnRlZCkKIENSRUFURSBUWVBFIGd0ZXN0X3R5cGUgQVMgKGYxIGludGVnZXIs IGYyIHRleHQsIGYzIGJpZ2ludCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QyOCBPRiBndGVzdF90eXBl IChmMSBXSVRIIE9QVElPTlMgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKjIpIFNUT1JFRCk7CitD UkVBVEUgVEFCTEUgZ3Rlc3QyOCBPRiBndGVzdF90eXBlIChmMSBXSVRIIE9QVElPTlMgR0VORVJB VEVEIEFMV0FZUyBBUyAoZjIgKjIpIDpHZW5lcmF0ZWQpOwogRFJPUCBUWVBFIGd0ZXN0X3R5cGUg Q0FTQ0FERTsKIAogLS0gcGFydGl0aW9uaW5nIGNhc2VzCiBDUkVBVEUgVEFCTEUgZ3Rlc3RfcGFy ZW50IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCkgUEFSVElUSU9OIEJZ IFJBTkdFIChmMSk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQgUEFSVElUSU9OIE9GIGd0ZXN0 X3BhcmVudCAoCi0gICAgZjMgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICog MikgU1RPUkVECisgICAgZjMgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICog MikgOkdlbmVyYXRlZAogKSBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA3LTAxJykgVE8gKCcyMDE2 LTA4LTAxJyk7IC0tIGVycm9yCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQgKGYxIGRhdGUgTk9U IE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikg U1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9jaGlsZCAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIg YmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSA6R2VuZXJhdGVk KTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRBQ0ggUEFSVElUSU9OIGd0ZXN0X2NoaWxk IEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDctMDEnKSBUTyAoJzIwMTYtMDgtMDEnKTsgLS0gZXJy b3IKIERST1AgVEFCTEUgZ3Rlc3RfcGFyZW50LCBndGVzdF9jaGlsZDsKIAotQ1JFQVRFIFRBQkxF IGd0ZXN0X3BhcmVudCAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBTVE9SRUQpIFBBUlRJVElPTiBCWSBSQU5HRSAoZjEp OworQ1JFQVRFIFRBQkxFIGd0ZXN0X3BhcmVudCAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50 LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSA6R2VuZXJhdGVkKSBQQVJU SVRJT04gQlkgUkFOR0UgKGYxKTsKIENSRUFURSBUQUJMRSBndGVzdF9jaGlsZCBQQVJUSVRJT04g T0YgZ3Rlc3RfcGFyZW50CiAgIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDctMDEnKSBUTyAoJzIw MTYtMDgtMDEnKTsgIC0tIGluaGVyaXRzIGdlbiBleHByCiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hp bGQyIFBBUlRJVElPTiBPRiBndGVzdF9wYXJlbnQgKAotICAgIGYzIFdJVEggT1BUSU9OUyBHRU5F UkFURUQgQUxXQVlTIEFTIChmMiAqIDIyKSBTVE9SRUQgIC0tIG92ZXJyaWRlcyBnZW4gZXhwcgor ICAgIGYzIFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIyKSA6R2VuZXJh dGVkICAtLSBvdmVycmlkZXMgZ2VuIGV4cHIKICkgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOC0w MScpIFRPICgnMjAxNi0wOS0wMScpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyBQQVJUSVRJ T04gT0YgZ3Rlc3RfcGFyZW50ICgKICAgICBmMyBERUZBVUxUIDQyICAtLSBlcnJvcgpAQCAtNDkw LDcgKzQ5Myw3IEBAIENSRUFURSBUQUJMRSBndGVzdF9jaGlsZDMgUEFSVElUSU9OIE9GIGd0ZXN0 X3BhcmVudCAoCiAgICAgZjMgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMgQVMgSURFTlRJ VFkgIC0tIGVycm9yCiApIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDktMDEnKSBUTyAoJzIwMTYt MTAtMDEnKTsKIENSRUFURSBUQUJMRSBndGVzdF9jaGlsZDMgUEFSVElUSU9OIE9GIGd0ZXN0X3Bh cmVudCAoCi0gICAgZjMgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBWSVJUVUFMICAtLSBl cnJvcgorICAgIGYzIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgOk90aGVyICAtLSBlcnJv cgogKSBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7CiBD UkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYz IGJpZ2ludCk7CiBBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQVRUQUNIIFBBUlRJVElPTiBndGVz dF9jaGlsZDMgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOS0wMScpIFRPICgnMjAxNi0xMC0wMScp OyAtLSBlcnJvcgpAQCAtNTAxLDEwICs1MDQsMTAgQEAgRFJPUCBUQUJMRSBndGVzdF9jaGlsZDM7 CiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQs IGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIElERU5USVRZKTsKIEFMVEVSIFRBQkxFIGd0 ZXN0X3BhcmVudCBBVFRBQ0ggUEFSVElUSU9OIGd0ZXN0X2NoaWxkMyBGT1IgVkFMVUVTIEZST00g KCcyMDE2LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7IC0tIGVycm9yCiBEUk9QIFRBQkxFIGd0 ZXN0X2NoaWxkMzsKLUNSRUFURSBUQUJMRSBndGVzdF9jaGlsZDMgKGYxIGRhdGUgTk9UIE5VTEws IGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMzMpIFZJUlRV QUwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmln aW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAzMykgOk90aGVyKTsKIEFM VEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRBQ0ggUEFSVElUSU9OIGd0ZXN0X2NoaWxkMyBGT1Ig VkFMVUVTIEZST00gKCcyMDE2LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7IC0tIGVycm9yCiBE Uk9QIFRBQkxFIGd0ZXN0X2NoaWxkMzsKLUNSRUFURSBUQUJMRSBndGVzdF9jaGlsZDMgKGYxIGRh dGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYy ICogMzMpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIChmMSBkYXRlIE5PVCBO VUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDMzKSA6 R2VuZXJhdGVkKTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRBQ0ggUEFSVElUSU9OIGd0 ZXN0X2NoaWxkMyBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAx Jyk7CiBcZCBndGVzdF9jaGlsZAogXGQgZ3Rlc3RfY2hpbGQyCkBAIC01MzgsMjEgKzU0MSwyMSBA QCBTRUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gZ3Rlc3RfcGFyZW50IE9SREVSIEJZ IDEsIDIsIDM7CiAtLSB3ZSBsZWF2ZSB0aGVzZSB0YWJsZXMgYXJvdW5kIGZvciBwdXJwb3NlcyBv ZiB0ZXN0aW5nIGR1bXAvcmVsb2FkL3VwZ3JhZGUKIAogLS0gZ2VuZXJhdGVkIGNvbHVtbnMgaW4g cGFydGl0aW9uIGtleSAobm90IGFsbG93ZWQpCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfcGFydF9rZXkg KGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGYyICogMikgU1RPUkVEKSBQQVJUSVRJT04gQlkgUkFOR0UgKGYzKTsKLUNSRUFURSBUQUJM RSBndGVzdF9wYXJ0X2tleSAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBTVE9SRUQpIFBBUlRJVElPTiBCWSBSQU5HRSAo KGYzICogMykpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X3BhcnRfa2V5IChmMSBkYXRlIE5PVCBOVUxM LCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIDpHZW5l cmF0ZWQpIFBBUlRJVElPTiBCWSBSQU5HRSAoZjMpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X3BhcnRf a2V5IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxX QVlTIEFTIChmMiAqIDIpIDpHZW5lcmF0ZWQpIFBBUlRJVElPTiBCWSBSQU5HRSAoKGYzICogMykp OwogCiAtLSBBTFRFUiBUQUJMRSAuLi4gQUREIENPTFVNTgogQ1JFQVRFIFRBQkxFIGd0ZXN0MjUg KGEgaW50IFBSSU1BUlkgS0VZKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjUgVkFMVUVTICgzKSwgKDQp OwotQUxURVIgVEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgKiAyKSBTVE9SRUQsIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICog Myk7CitBTFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xVTU4gYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQsIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFT IChhICogMyk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjUgT1JERVIgQlkgYTsKLUFMVEVSIFRBQkxF IGd0ZXN0MjUgQUREIENPTFVNTiB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogNCkgU1RP UkVEOyAgLS0gZXJyb3IKLUFMVEVSIFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiB4IGludCBHRU5F UkFURUQgQUxXQVlTIEFTICh6ICogNCkgU1RPUkVEOyAgLS0gZXJyb3IKK0FMVEVSIFRBQkxFIGd0 ZXN0MjUgQUREIENPTFVNTiB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogNCkgOkdlbmVy YXRlZDsgIC0tIGVycm9yCitBTFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xVTU4geCBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoeiAqIDQpIDpHZW5lcmF0ZWQ7ICAtLSBlcnJvcgogQUxURVIgVEFC TEUgZ3Rlc3QyNSBBREQgQ09MVU1OIGMgaW50IERFRkFVTFQgNDIsCi0gIEFERCBDT0xVTU4geCBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYyAqIDQpIFNUT1JFRDsKKyAgQUREIENPTFVNTiB4IGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChjICogNCkgOkdlbmVyYXRlZDsKIEFMVEVSIFRBQkxFIGd0 ZXN0MjUgQUREIENPTFVNTiBkIGludCBERUZBVUxUIDEwMTsKIEFMVEVSIFRBQkxFIGd0ZXN0MjUg QUxURVIgQ09MVU1OIGQgU0VUIERBVEEgVFlQRSBmbG9hdDgsCi0gIEFERCBDT0xVTU4geSBmbG9h dDggR0VORVJBVEVEIEFMV0FZUyBBUyAoZCAqIDQpIFNUT1JFRDsKKyAgQUREIENPTFVNTiB5IGZs b2F0OCBHRU5FUkFURUQgQUxXQVlTIEFTIChkICogNCkgOkdlbmVyYXRlZDsKIFNFTEVDVCAqIEZS T00gZ3Rlc3QyNSBPUkRFUiBCWSBhOwogXGQgZ3Rlc3QyNQogCkBAIC01NjAsNyArNTYzLDcgQEAg U0VMRUNUICogRlJPTSBndGVzdDI1IE9SREVSIEJZIGE7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QyNyAo CiAgICAgYSBpbnQsCiAgICAgYiBpbnQsCi0gICAgeCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo KGEgKyBiKSAqIDIpIFNUT1JFRAorICAgIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChhICsg YikgKiAyKSA6R2VuZXJhdGVkCiApOwogSU5TRVJUIElOVE8gZ3Rlc3QyNyAoYSwgYikgVkFMVUVT ICgzLCA3KSwgKDQsIDExKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MjcgQUxURVIgQ09MVU1OIGEgVFlQ RSB0ZXh0OyAgLS0gZXJyb3IKQEAgLTU3NSwxNCArNTc4LDE0IEBAIEFMVEVSIFRBQkxFIGd0ZXN0 MjcKICAgRFJPUCBDT0xVTU4geCwKICAgQUxURVIgQ09MVU1OIGEgVFlQRSBiaWdpbnQsCiAgIEFM VEVSIENPTFVNTiBiIFRZUEUgYmlnaW50LAotICBBREQgQ09MVU1OIHggYmlnaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKChhICsgYikgKiAyKSBTVE9SRUQgTk9UIE5VTEw7ICAtLSBlcnJvcgorICBB REQgQ09MVU1OIHggYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChhICsgYikgKiAyKSA6R2Vu ZXJhdGVkIE5PVCBOVUxMOyAgLS0gZXJyb3IKIERFTEVURSBGUk9NIGd0ZXN0MjcgV0hFUkUgYSBJ UyBOVUxMIEFORCBiIElTIE5VTEw7CiAtLSBJdCdzIHBvc3NpYmxlIHRvIGFsdGVyIHRoZSBjb2x1 bW4gdHlwZXMgdGhpcyB3YXk6CiBBTFRFUiBUQUJMRSBndGVzdDI3CiAgIERST1AgQ09MVU1OIHgs CiAgIEFMVEVSIENPTFVNTiBhIFRZUEUgYmlnaW50LAogICBBTFRFUiBDT0xVTU4gYiBUWVBFIGJp Z2ludCwKLSAgQUREIENPTFVNTiB4IGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoYSArIGIp ICogMikgU1RPUkVEOworICBBREQgQ09MVU1OIHggYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KChhICsgYikgKiAyKSA6R2VuZXJhdGVkOwogXGQgZ3Rlc3QyNwogLS0gSWRlYWxseSB5b3UgY291 bGQganVzdCBkbyB0aGlzLCBidXQgbm90IHRvZGF5IChhbmQgc2hvdWxkIHggY2hhbmdlIHR5cGU/ KToKIEFMVEVSIFRBQkxFIGd0ZXN0MjcKQEAgLTU5NCw3ICs1OTcsNyBAQCBTRUxFQ1QgKiBGUk9N IGd0ZXN0Mjc7CiAtLSBBTFRFUiBUQUJMRSAuLi4gQUxURVIgQ09MVU1OIC4uLiBEUk9QIEVYUFJF U1NJT04KIENSRUFURSBUQUJMRSBndGVzdDI5ICgKICAgICBhIGludCwKLSAgICBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVECisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQKICk7CiBJTlNFUlQgSU5UTyBndGVzdDI5IChhKSBWQUxV RVMgKDMpLCAoNCk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0Mjk7CkBAIC02MjEsNyArNjI0LDcgQEAg QUxURVIgVEFCTEUgZ3Rlc3QyOSBEUk9QIENPTFVNTiBhOyAgLS0gc2hvdWxkIG5vdCBkcm9wIGIK IC0tIHdpdGggaW5oZXJpdGFuY2UKIENSRUFURSBUQUJMRSBndGVzdDMwICgKICAgICBhIGludCwK LSAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVECisgICAgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQKICk7CiBDUkVBVEUgVEFCTEUg Z3Rlc3QzMF8xICgpIElOSEVSSVRTIChndGVzdDMwKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MzAgQUxU RVIgQ09MVU1OIGIgRFJPUCBFWFBSRVNTSU9OOwpAQCAtNjMwLDcgKzYzMyw3IEBAIEFMVEVSIFRB QkxFIGd0ZXN0MzAgQUxURVIgQ09MVU1OIGIgRFJPUCBFWFBSRVNTSU9OOwogRFJPUCBUQUJMRSBn dGVzdDMwIENBU0NBREU7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QzMCAoCiAgICAgYSBpbnQsCi0gICAg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRAorICAgIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGEgKiAyKSA6R2VuZXJhdGVkCiApOwogQ1JFQVRFIFRBQkxFIGd0ZXN0 MzBfMSAoKSBJTkhFUklUUyAoZ3Rlc3QzMCk7CiBBTFRFUiBUQUJMRSBPTkxZIGd0ZXN0MzAgQUxU RVIgQ09MVU1OIGIgRFJPUCBFWFBSRVNTSU9OOyAgLS0gZXJyb3IKQEAgLTYzOSw3ICs2NDIsNyBA QCBBTFRFUiBUQUJMRSBPTkxZIGd0ZXN0MzAgQUxURVIgQ09MVU1OIGIgRFJPUCBFWFBSRVNTSU9O OyAgLS0gZXJyb3IKIEFMVEVSIFRBQkxFIGd0ZXN0MzBfMSBBTFRFUiBDT0xVTU4gYiBEUk9QIEVY UFJFU1NJT047ICAtLSBlcnJvcgogCiAtLSBjb21wb3NpdGUgdHlwZSBkZXBlbmRlbmNpZXMKLUNS RUFURSBUQUJMRSBndGVzdDMxXzEgKGEgaW50LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAo J2hlbGxvJykgU1RPUkVELCBjIHRleHQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MzFfMSAoYSBpbnQs IGIgdGV4dCBHRU5FUkFURUQgQUxXQVlTIEFTICgnaGVsbG8nKSA6R2VuZXJhdGVkLCBjIHRleHQp OwogQ1JFQVRFIFRBQkxFIGd0ZXN0MzFfMiAoeCBpbnQsIHkgZ3Rlc3QzMV8xKTsKIEFMVEVSIFRB QkxFIGd0ZXN0MzFfMSBBTFRFUiBDT0xVTU4gYiBUWVBFIHZhcmNoYXI7ICAtLSBmYWlscwogCkBA IC02NTgsNyArNjYxLDcgQEAgQUxURVIgVEFCTEUgZ3Rlc3QzMV8xIEFMVEVSIENPTFVNTiBiIFNF VCBFWFBSRVNTSU9OIEFTICgnaGVsbG8zJyk7CiBEUk9QIFRBQkxFIGd0ZXN0MzFfMSwgZ3Rlc3Qz MV8yOwogCiAtLSBDaGVjayBpdCBmb3IgYSBwYXJ0aXRpb25lZCB0YWJsZSwgdG9vCi1DUkVBVEUg VEFCTEUgZ3Rlc3QzMV8xIChhIGludCwgYiB0ZXh0IEdFTkVSQVRFRCBBTFdBWVMgQVMgKCdoZWxs bycpIFNUT1JFRCwgYyB0ZXh0KSBQQVJUSVRJT04gQlkgTElTVCAoYSk7CitDUkVBVEUgVEFCTEUg Z3Rlc3QzMV8xIChhIGludCwgYiB0ZXh0IEdFTkVSQVRFRCBBTFdBWVMgQVMgKCdoZWxsbycpIDpH ZW5lcmF0ZWQsIGMgdGV4dCkgUEFSVElUSU9OIEJZIExJU1QgKGEpOwogQ1JFQVRFIFRBQkxFIGd0 ZXN0MzFfMiAoeCBpbnQsIHkgZ3Rlc3QzMV8xKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MzFfMSBBTFRF UiBDT0xVTU4gYiBUWVBFIHZhcmNoYXI7ICAtLSBmYWlscwogRFJPUCBUQUJMRSBndGVzdDMxXzEs IGd0ZXN0MzFfMjsKQEAgLTY2Niw3ICs2NjksNyBAQCBEUk9QIFRBQkxFIGd0ZXN0MzFfMSwgZ3Rl c3QzMV8yOwogLS0gdHJpZ2dlcnMKIENSRUFURSBUQUJMRSBndGVzdDI2ICgKICAgICBhIGludCBQ UklNQVJZIEtFWSwKLSAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVE CisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQKICk7CiAK IENSRUFURSBGVU5DVElPTiBndGVzdF90cmlnZ2VyX2Z1bmMoKSBSRVRVUk5TIHRyaWdnZXIKQEAg LTc4Miw3ICs3ODUsNyBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3QyOGEgKAogICBhIGludCwKICAgYiBp bnQsCiAgIGMgaW50LAotICB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgU1RPUkVE CisgIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSA6R2VuZXJhdGVkCiApOwogCiBB TFRFUiBUQUJMRSBndGVzdDI4YSBEUk9QIENPTFVNTiBhOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvZ2VuZXJhdGVkX3ZpcnR1YWwuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv Z2VuZXJhdGVkX3ZpcnR1YWwuc3FsCmluZGV4IGY2OWRkNTczMzZkLi5iNjZhYmU4MGMxMiAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3ZpcnR1YWwuc3FsCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRlZF92aXJ0dWFsLnNxbApAQCAtMSwxMiArMSwx NSBAQAogLS0ga2VlcCB0aGVzZSB0ZXN0cyBhbGlnbmVkIHdpdGggZ2VuZXJhdGVkX3N0b3JlZC5z cWwKKy0tIFdlIGNhbiB1c2UgcHNxbCB2YXJpYWJsZXMgdG8ga2VlcCB0aGUgZGlmZiB0byBhIG1p bmltdW0uCitcc2V0IEdlbmVyYXRlZCAnVklSVFVBTCcKK1xzZXQgT3RoZXIgJ1NUT1JFRCcKIAog CiBDUkVBVEUgU0NIRU1BIGdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzOwogR1JBTlQgVVNBR0UgT04g U0NIRU1BIGdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzIFRPIFBVQkxJQzsKIFNFVCBzZWFyY2hfcGF0 aCA9IGdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzOwogCi1DUkVBVEUgVEFCTEUgZ3Rlc3QwIChhIGlu dCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoNTUpIFZJUlRVQUwpOwot Q1JFQVRFIFRBQkxFIGd0ZXN0MSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVzdDAgKGEgaW50IFBS SU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICg1NSkgOkdlbmVyYXRlZCk7CitD UkVBVEUgVEFCTEUgZ3Rlc3QxIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQpOwogCiBTRUxFQ1QgdGFibGVfbmFtZSwgY29sdW1u X25hbWUsIGNvbHVtbl9kZWZhdWx0LCBpc19udWxsYWJsZSwgaXNfZ2VuZXJhdGVkLCBnZW5lcmF0 aW9uX2V4cHJlc3Npb24gRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1ucyBXSEVSRSB0YWJs ZV9zY2hlbWEgPSAnZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMnIE9SREVSIEJZIDEsIDI7CiAKQEAg LTE1LDQwICsxOCw0MCBAQCBTRUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGRlcGVuZGVu dF9jb2x1bW4gRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1uXwogXGQgZ3Rlc3QxCiAKIC0t IGR1cGxpY2F0ZSBnZW5lcmF0ZWQKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfMSAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMIEdFTkVS QVRFRCBBTFdBWVMgQVMgKGEgKiAzKSBWSVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJf MSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSA6 R2VuZXJhdGVkIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAzKSA6R2VuZXJhdGVkKTsKIAogLS0g cmVmZXJlbmNlcyB0byBvdGhlciBnZW5lcmF0ZWQgY29sdW1ucywgaW5jbHVkaW5nIHNlbGYtcmVm ZXJlbmNlcwotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8yYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSBWSVJUVUFMKTsKLUNSRUFURSBUQUJMRSBn dGVzdF9lcnJfMmIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChhICogMikgVklSVFVBTCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDMpIFZJUlRV QUwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8yYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSA6R2VuZXJhdGVkKTsKK0NSRUFURSBUQUJMRSBn dGVzdF9lcnJfMmIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChhICogMikgOkdlbmVyYXRlZCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDMpIDpH ZW5lcmF0ZWQpOwogLS0gYSB3aG9sZS1yb3cgdmFyIGlzIGEgc2VsZi1yZWZlcmVuY2Ugb24gc3Rl cm9pZHMsIHNvIGRpc2FsbG93IHRoYXQgdG9vCiBDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzJjIChh IGludCBQUklNQVJZIEtFWSwKLSAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudW1fbnVs bHMoZ3Rlc3RfZXJyXzJjKSkgVklSVFVBTCk7CisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAobnVtX251bGxzKGd0ZXN0X2Vycl8yYykpIDpHZW5lcmF0ZWQpOwogCiAtLSBpbnZhbGlkIHJl ZmVyZW5jZQotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8zIChhIGludCBQUklNQVJZIEtFWSwgYiBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYyAqIDIpIFZJUlRVQUwpOworQ1JFQVRFIFRBQkxFIGd0 ZXN0X2Vycl8zIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YyAqIDIpIDpHZW5lcmF0ZWQpOwogCiAtLSBnZW5lcmF0aW9uIGV4cHJlc3Npb24gbXVzdCBiZSBp bW11dGFibGUKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfNCAoYSBpbnQgUFJJTUFSWSBLRVksIGIg ZG91YmxlIHByZWNpc2lvbiBHRU5FUkFURUQgQUxXQVlTIEFTIChyYW5kb20oKSkgVklSVFVBTCk7 CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzQgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGRvdWJsZSBw cmVjaXNpb24gR0VORVJBVEVEIEFMV0FZUyBBUyAocmFuZG9tKCkpIDpHZW5lcmF0ZWQpOwogLS0g Li4uIGJ1dCBiZSBzdXJlIHRoYXQgdGhlIGltbXV0YWJpbGl0eSB0ZXN0IGlzIGFjY3VyYXRlCi1D UkVBVEUgVEFCTEUgZ3Rlc3QyIChhIGludCwgYiB0ZXh0IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEg fHwgJyBzZWMnKSBWSVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVzdDIgKGEgaW50LCBiIHRleHQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSB8fCAnIHNlYycpIDpHZW5lcmF0ZWQpOwogRFJPUCBUQUJM RSBndGVzdDI7CiAKIC0tIGNhbm5vdCBoYXZlIGRlZmF1bHQvaWRlbnRpdHkgYW5kIGdlbmVyYXRl ZAotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl81YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IERF RkFVTFQgNSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7Ci1DUkVBVEUgVEFC TEUgZ3Rlc3RfZXJyXzViIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyBpZGVudGl0eSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CitDUkVB VEUgVEFCTEUgZ3Rlc3RfZXJyXzVhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgREVGQVVMVCA1 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSA6R2VuZXJhdGVkKTsKK0NSRUFURSBUQUJMRSBn dGVzdF9lcnJfNWIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IGlkZW50aXR5IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSA6R2VuZXJhdGVkKTsKIAogLS0g cmVmZXJlbmNlIHRvIHN5c3RlbSBjb2x1bW4gbm90IGFsbG93ZWQgaW4gZ2VuZXJhdGVkIGNvbHVt bgogLS0gKGV4Y2VwdCB0YWJsZW9pZCwgd2hpY2ggd2UgdGVzdCBiZWxvdykKLUNSRUFURSBUQUJM RSBndGVzdF9lcnJfNmEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGJvb2wgR0VORVJBVEVEIEFMV0FZ UyBBUyAoeG1pbiA8PiAzNykgVklSVFVBTCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzZhIChh IGludCBQUklNQVJZIEtFWSwgYiBib29sIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHhtaW4gPD4gMzcp IDpHZW5lcmF0ZWQpOwogCiAtLSB2YXJpb3VzIHByb2hpYml0ZWQgY29uc3RydWN0cwotQ1JFQVRF IFRBQkxFIGd0ZXN0X2Vycl83YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGF2ZyhhKSkgVklSVFVBTCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzdiIChh IGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAocm93X251bWJlcigp IE9WRVIgKE9SREVSIEJZIGEpKSBWSVJUVUFMKTsKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfN2Mg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoU0VMRUNUIGEp KSBWSVJUVUFMKTsKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfN2QgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChnZW5lcmF0ZV9zZXJpZXMoMSwgYSkpIFZJUlRV QUwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGF2ZyhhKSkgOkdlbmVyYXRlZCk7CitDUkVBVEUgVEFCTEUg Z3Rlc3RfZXJyXzdiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAocm93X251bWJlcigpIE9WRVIgKE9SREVSIEJZIGEpKSA6R2VuZXJhdGVkKTsKK0NSRUFURSBU QUJMRSBndGVzdF9lcnJfN2MgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTICgoU0VMRUNUIGEpKSA6R2VuZXJhdGVkKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJf N2QgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChnZW5lcmF0 ZV9zZXJpZXMoMSwgYSkpIDpHZW5lcmF0ZWQpOwogCiAtLSBHRU5FUkFURUQgQlkgREVGQVVMVCBu b3QgYWxsb3dlZAotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl84IChhIGludCBQUklNQVJZIEtFWSwg YiBpbnQgR0VORVJBVEVEIEJZIERFRkFVTFQgQVMgKGEgKiAyKSBWSVJUVUFMKTsKK0NSRUFURSBU QUJMRSBndGVzdF9lcnJfOCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBCWSBE RUZBVUxUIEFTIChhICogMikgOkdlbmVyYXRlZCk7CiAKIElOU0VSVCBJTlRPIGd0ZXN0MSBWQUxV RVMgKDEpOwogSU5TRVJUIElOVE8gZ3Rlc3QxIFZBTFVFUyAoMiwgREVGQVVMVCk7ICAtLSBvawpA QCAtOTQsOCArOTcsOCBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3RtICgKICAgaWQgaW50IFBSSU1BUlkg S0VZLAogICBmMSBpbnQsCiAgIGYyIGludCwKLSAgZjMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGYxICogMikgVklSVFVBTCwKLSAgZjQgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikg VklSVFVBTAorICBmMyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjEgKiAyKSA6R2VuZXJhdGVk LAorICBmNCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSA6R2VuZXJhdGVkCiApOwog SU5TRVJUIElOVE8gZ3Rlc3RtIFZBTFVFUyAoMSwgNSwgMTAwKTsKIE1FUkdFIElOVE8gZ3Rlc3Rt IHQgVVNJTkcgKFZBTFVFUyAoMSwgMTApLCAoMiwgMjApKSB2KGlkLCBmMSkgT04gdC5pZCA9IHYu aWQKQEAgLTEwNyw3ICsxMTAsNyBAQCBEUk9QIFRBQkxFIGd0ZXN0bTsKIAogQ1JFQVRFIFRBQkxF IGd0ZXN0bSAoCiAgIGEgaW50IFBSSU1BUlkgS0VZLAotICBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChhICogMikgVklSVFVBTAorICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikg OkdlbmVyYXRlZAogKTsKIElOU0VSVCBJTlRPIGd0ZXN0bSAoYSkgU0VMRUNUIGcgRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgMTApIGc7CiBNRVJHRSBJTlRPIGd0ZXN0bSB0IFVTSU5HIGd0ZXN0bSBB UyBzIE9OIDIgKiB0LmEgPSBzLmIgV0hFTiBNQVRDSEVEIFRIRU4gREVMRVRFIFJFVFVSTklORyAq OwpAQCAtMTQ0LDE2ICsxNDcsMTYgQEAgU0VMRUNUICogRlJPTSBndGVzdDE7CiAKIC0tIGNhbid0 IGhhdmUgZ2VuZXJhdGVkIGNvbHVtbiB0aGF0IGlzIGEgY2hpbGQgb2Ygbm9ybWFsIGNvbHVtbgog Q1JFQVRFIFRBQkxFIGd0ZXN0X25vcm1hbCAoYSBpbnQsIGIgaW50KTsKLUNSRUFURSBUQUJMRSBn dGVzdF9ub3JtYWxfY2hpbGQgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICog MikgVklSVFVBTCkgSU5IRVJJVFMgKGd0ZXN0X25vcm1hbCk7ICAtLSBlcnJvcgotQ1JFQVRFIFRB QkxFIGd0ZXN0X25vcm1hbF9jaGlsZCAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgKiAyKSBWSVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVzdF9ub3JtYWxfY2hpbGQgKGEgaW50 LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZCkgSU5IRVJJVFMg KGd0ZXN0X25vcm1hbCk7ICAtLSBlcnJvcgorQ1JFQVRFIFRBQkxFIGd0ZXN0X25vcm1hbF9jaGls ZCAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSA6R2VuZXJhdGVkKTsK IEFMVEVSIFRBQkxFIGd0ZXN0X25vcm1hbF9jaGlsZCBJTkhFUklUIGd0ZXN0X25vcm1hbDsgIC0t IGVycm9yCiBEUk9QIFRBQkxFIGd0ZXN0X25vcm1hbCwgZ3Rlc3Rfbm9ybWFsX2NoaWxkOwogCiAt LSB0ZXN0IGluaGVyaXRhbmNlIG1pc21hdGNoZXMgYmV0d2VlbiBwYXJlbnQgYW5kIGNoaWxkCiBD UkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgYiBpbnQgREVGQVVMVCAxMCkgSU5IRVJJVFMgKGd0 ZXN0MSk7ICAtLSBlcnJvcgogQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgSURFTlRJVFkpIElOSEVSSVRTIChndGVzdDEpOyAgLS0gZXJyb3IKLUNS RUFURSBUQUJMRSBndGVzdHggKHggaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICog MjIpIFNUT1JFRCkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAtLSBlcnJvcgotQ1JFQVRFIFRBQkxFIGd0 ZXN0eCAoeCBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyMikgVklSVFVBTCkg SU5IRVJJVFMgKGd0ZXN0MSk7ICAtLSBvaywgb3ZlcnJpZGVzIHBhcmVudAorQ1JFQVRFIFRBQkxF IGd0ZXN0eCAoeCBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyMikgOk90aGVy KSBJTkhFUklUUyAoZ3Rlc3QxKTsgIC0tIGVycm9yCitDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGlu dCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIyKSA6R2VuZXJhdGVkKSBJTkhFUklU UyAoZ3Rlc3QxKTsgIC0tIG9rLCBvdmVycmlkZXMgcGFyZW50CiBcZCsgZ3Rlc3R4CiBJTlNFUlQg SU5UTyBndGVzdHggKGEsIHgpIFZBTFVFUyAoMTEsIDIyKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3Qx OwpAQCAtMTYxLDkgKzE2NCw5IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3R4OwogCiBDUkVBVEUgVEFC TEUgZ3Rlc3R4eF8xIChhIGludCBOT1QgTlVMTCwgYiBpbnQpOwogQUxURVIgVEFCTEUgZ3Rlc3R4 eF8xIElOSEVSSVQgZ3Rlc3QxOyAgLS0gZXJyb3IKLUNSRUFURSBUQUJMRSBndGVzdHh4XzMgKGEg aW50IE5PVCBOVUxMLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7 CitDUkVBVEUgVEFCTEUgZ3Rlc3R4eF8zIChhIGludCBOT1QgTlVMTCwgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQpOwogQUxURVIgVEFCTEUgZ3Rlc3R4eF8zIElO SEVSSVQgZ3Rlc3QxOyAgLS0gb2sKLUNSRUFURSBUQUJMRSBndGVzdHh4XzQgKGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMLCBhIGludCBOT1QgTlVMTCk7CitDUkVBVEUg VEFCTEUgZ3Rlc3R4eF80IChiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgOkdlbmVy YXRlZCwgYSBpbnQgTk9UIE5VTEwpOwogQUxURVIgVEFCTEUgZ3Rlc3R4eF80IElOSEVSSVQgZ3Rl c3QxOyAgLS0gb2sKIAogLS0gdGVzdCBtdWx0aXBsZSBpbmhlcml0YW5jZSBtaXNtYXRjaGVzCkBA IC0xNzUsMTQgKzE3OCwxNCBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3R5ICh4IGludCwgYiBpbnQpOwog Q1JFQVRFIFRBQkxFIGd0ZXN0MV95ICgpIElOSEVSSVRTIChndGVzdDEsIGd0ZXN0eSk7ICAtLSBl cnJvcgogRFJPUCBUQUJMRSBndGVzdHk7CiAKLUNSRUFURSBUQUJMRSBndGVzdHkgKHggaW50LCBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICogMjIpIFZJUlRVQUwpOworQ1JFQVRFIFRBQkxF IGd0ZXN0eSAoeCBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHggKiAyMikgOkdlbmVy YXRlZCk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QxX3kgKCkgSU5IRVJJVFMgKGd0ZXN0MSwgZ3Rlc3R5 KTsgIC0tIGVycm9yCi1DUkVBVEUgVEFCTEUgZ3Rlc3QxX3kgKGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKHggKyAxKSBWSVJUVUFMKSBJTkhFUklUUyAoZ3Rlc3QxLCBndGVzdHkpOyAgLS0gb2sK K0NSRUFURSBUQUJMRSBndGVzdDFfeSAoYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoeCArIDEp IDpHZW5lcmF0ZWQpIElOSEVSSVRTIChndGVzdDEsIGd0ZXN0eSk7ICAtLSBvawogXGQgZ3Rlc3Qx X3kKIAogLS0gdGVzdCBjb3JyZWN0IGhhbmRsaW5nIG9mIEdFTkVSQVRFRCBjb2x1bW4gdGhhdCdz IG9ubHkgaW4gY2hpbGQKIENSRUFURSBUQUJMRSBndGVzdHAgKGYxIGludCk7Ci1DUkVBVEUgVEFC TEUgZ3Rlc3RjIChmMiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjErMSkgVklSVFVBTCkgSU5I RVJJVFMoZ3Rlc3RwKTsKK0NSRUFURSBUQUJMRSBndGVzdGMgKGYyIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChmMSsxKSA6R2VuZXJhdGVkKSBJTkhFUklUUyhndGVzdHApOwogSU5TRVJUIElOVE8g Z3Rlc3RjIHZhbHVlcyg0Mik7CiBUQUJMRSBndGVzdGM7CiBVUERBVEUgZ3Rlc3RwIFNFVCBmMSA9 IGYxICogMTA7CkBAIC0xOTAsMTMgKzE5MywxMyBAQCBUQUJMRSBndGVzdGM7CiBEUk9QIFRBQkxF IGd0ZXN0cCBDQVNDQURFOwogCiAtLSB0ZXN0IHVwZGF0ZQotQ1JFQVRFIFRBQkxFIGd0ZXN0MyAo YSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAzKSBWSVJUVUFMKTsKK0NSRUFU RSBUQUJMRSBndGVzdDMgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMykg OkdlbmVyYXRlZCk7CiBJTlNFUlQgSU5UTyBndGVzdDMgKGEpIFZBTFVFUyAoMSksICgyKSwgKDMp LCAoTlVMTCk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MyBPUkRFUiBCWSBhOwogVVBEQVRFIGd0ZXN0 MyBTRVQgYSA9IDIyIFdIRVJFIGEgPSAyOwogU0VMRUNUICogRlJPTSBndGVzdDMgT1JERVIgQlkg YTsKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0M2EgKGEgdGV4dCwgYiB0ZXh0IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgfHwgJysnIHx8IGEpIFZJUlRVQUwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0M2EgKGEg dGV4dCwgYiB0ZXh0IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgfHwgJysnIHx8IGEpIDpHZW5lcmF0 ZWQpOwogSU5TRVJUIElOVE8gZ3Rlc3QzYSAoYSkgVkFMVUVTICgnYScpLCAoJ2InKSwgKCdjJyks IChOVUxMKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3QzYSBPUkRFUiBCWSBhOwogVVBEQVRFIGd0ZXN0 M2EgU0VUIGEgPSAnYmInIFdIRVJFIGEgPSAnYic7CkBAIC0yMzYsMTIgKzIzOSwxMiBAQCBDT1BZ IGd0ZXN0MyAoYSwgYikgRlJPTSBzdGRpbjsKIFNFTEVDVCAqIEZST00gZ3Rlc3QzIE9SREVSIEJZ IGE7CiAKIC0tIG51bGwgdmFsdWVzCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyIChhIGludCBQUklNQVJZ IEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoTlVMTCkgVklSVFVBTCk7CitDUkVBVEUg VEFCTEUgZ3Rlc3QyIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoTlVMTCkgOkdlbmVyYXRlZCk7CiBJTlNFUlQgSU5UTyBndGVzdDIgVkFMVUVTICgxKTsKIFNF TEVDVCAqIEZST00gZ3Rlc3QyOwogCiAtLSBzaW1wbGUgY29sdW1uIHJlZmVyZW5jZSBmb3IgdmFy bGVuYSB0eXBlcwotQ1JFQVRFIFRBQkxFIGd0ZXN0X3ZhcmxlbmEgKGEgdmFyY2hhciwgYiB2YXJj aGFyIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEpIFZJUlRVQUwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0 X3ZhcmxlbmEgKGEgdmFyY2hhciwgYiB2YXJjaGFyIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEpIDpH ZW5lcmF0ZWQpOwogSU5TRVJUIElOVE8gZ3Rlc3RfdmFybGVuYSAoYSkgVkFMVUVTKCcwMTIzNDU2 Nzg5MDEyMzQ1Njc4OScpOwogSU5TRVJUIElOVE8gZ3Rlc3RfdmFybGVuYSAoYSkgVkFMVUVTKE5V TEwpOwogU0VMRUNUICogRlJPTSBndGVzdF92YXJsZW5hIE9SREVSIEJZIGE7CkBAIC0yNTEsNyAr MjU0LDcgQEAgRFJPUCBUQUJMRSBndGVzdF92YXJsZW5hOwogQ1JFQVRFIFRZUEUgZG91YmxlX2lu dCBhcyAoYSBpbnQsIGIgaW50KTsKIENSRUFURSBUQUJMRSBndGVzdDQgKAogICAgIGEgaW50LAot ICAgIGIgZG91YmxlX2ludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoYSAqIDIsIGEgKiAzKSkgVklS VFVBTAorICAgIGIgZG91YmxlX2ludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoYSAqIDIsIGEgKiAz KSkgOkdlbmVyYXRlZAogKTsgIC0tIGZhaWxzLCB1c2VyLWRlZmluZWQgdHlwZQogLS1JTlNFUlQg SU5UTyBndGVzdDQgVkFMVUVTICgxKSwgKDYpOwogLS1TRUxFQ1QgKiBGUk9NIGd0ZXN0NDsKQEAg LTI2MiwzNSArMjY1LDM1IEBAIERST1AgVFlQRSBkb3VibGVfaW50OwogLS0gdXNpbmcgdGFibGVv aWQgaXMgYWxsb3dlZAogQ1JFQVRFIFRBQkxFIGd0ZXN0X3RhYmxlb2lkICgKICAgYSBpbnQgUFJJ TUFSWSBLRVksCi0gIGIgYm9vbCBHRU5FUkFURUQgQUxXQVlTIEFTICh0YWJsZW9pZCA9ICdndGVz dF90YWJsZW9pZCc6OnJlZ2NsYXNzKSBWSVJUVUFMCisgIGIgYm9vbCBHRU5FUkFURUQgQUxXQVlT IEFTICh0YWJsZW9pZCA9ICdndGVzdF90YWJsZW9pZCc6OnJlZ2NsYXNzKSA6R2VuZXJhdGVkCiAp OwogSU5TRVJUIElOVE8gZ3Rlc3RfdGFibGVvaWQgVkFMVUVTICgxKSwgKDIpOwogQUxURVIgVEFC TEUgZ3Rlc3RfdGFibGVvaWQgQUREIENPTFVNTgotICBjIHJlZ2NsYXNzIEdFTkVSQVRFRCBBTFdB WVMgQVMgKHRhYmxlb2lkKSBWSVJUVUFMOworICBjIHJlZ2NsYXNzIEdFTkVSQVRFRCBBTFdBWVMg QVMgKHRhYmxlb2lkKSA6R2VuZXJhdGVkOwogU0VMRUNUICogRlJPTSBndGVzdF90YWJsZW9pZDsK IAogLS0gZHJvcCBjb2x1bW4gYmVoYXZpb3IKLUNSRUFURSBUQUJMRSBndGVzdDEwIChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSBWSVJU VUFMKTsKK0NSRUFURSBUQUJMRSBndGVzdDEwIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQsIGMg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSA6R2VuZXJhdGVkKTsKIEFMVEVSIFRBQkxF IGd0ZXN0MTAgRFJPUCBDT0xVTU4gYjsgIC0tIGZhaWxzCiBBTFRFUiBUQUJMRSBndGVzdDEwIERS T1AgQ09MVU1OIGIgQ0FTQ0FERTsgIC0tIGRyb3BzIGMgdG9vCiAKIFxkIGd0ZXN0MTAKIAotQ1JF QVRFIFRBQkxFIGd0ZXN0MTBhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MTBhIChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQp OwogQUxURVIgVEFCTEUgZ3Rlc3QxMGEgRFJPUCBDT0xVTU4gYjsKIElOU0VSVCBJTlRPIGd0ZXN0 MTBhIChhKSBWQUxVRVMgKDEpOwogCiAtLSBwcml2aWxlZ2VzCiBDUkVBVEUgVVNFUiByZWdyZXNz X3VzZXIxMTsKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0MTEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGlu dCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFZJUlRVQUwpOworQ1JFQVRFIFRB QkxFIGd0ZXN0MTEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCwgYyBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYiAqIDIpIDpHZW5lcmF0ZWQpOwogSU5TRVJUIElOVE8gZ3Rlc3QxMSBWQUxVRVMg KDEsIDEwKSwgKDIsIDIwKTsKIEdSQU5UIFNFTEVDVCAoYSwgYykgT04gZ3Rlc3QxMSBUTyByZWdy ZXNzX3VzZXIxMTsKIAogQ1JFQVRFIEZVTkNUSU9OIGdmMShhIGludCkgUkVUVVJOUyBpbnQgQVMg JCQgU0VMRUNUIGEgKiAzICQkIElNTVVUQUJMRSBMQU5HVUFHRSBTUUw7CiBSRVZPS0UgQUxMIE9O IEZVTkNUSU9OIGdmMShpbnQpIEZST00gUFVCTElDOwogCi1DUkVBVEUgVEFCTEUgZ3Rlc3QxMiAo YSBpbnQgUFJJTUFSWSBLRVksIGIgaW50LCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChnZjEo YikpIFZJUlRVQUwpOyAgLS0gZmFpbHMsIHVzZXItZGVmaW5lZCBmdW5jdGlvbgorQ1JFQVRFIFRB QkxFIGd0ZXN0MTIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCwgYyBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoZ2YxKGIpKSA6R2VuZXJhdGVkKTsgIC0tIGZhaWxzLCB1c2VyLWRlZmluZWQgZnVu Y3Rpb24KIC0tSU5TRVJUIElOVE8gZ3Rlc3QxMiBWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKTsKIC0t R1JBTlQgU0VMRUNUIChhLCBjKSwgSU5TRVJUIE9OIGd0ZXN0MTIgVE8gcmVncmVzc191c2VyMTE7 CiAKQEAgLTMwOSwxNCArMzEyLDE0IEBAIERST1AgRlVOQ1RJT04gZ2YxKGludCk7CiBEUk9QIFVT RVIgcmVncmVzc191c2VyMTE7CiAKIC0tIGNoZWNrIGNvbnN0cmFpbnRzCi1DUkVBVEUgVEFCTEUg Z3Rlc3QyMCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEg KiAyKSBWSVJUVUFMIENIRUNLIChiIDwgNTApKTsKK0NSRUFURSBUQUJMRSBndGVzdDIwIChhIGlu dCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0 ZWQgQ0hFQ0sgKGIgPCA1MCkpOwogSU5TRVJUIElOVE8gZ3Rlc3QyMCAoYSkgVkFMVUVTICgxMCk7 ICAtLSBvawogSU5TRVJUIElOVE8gZ3Rlc3QyMCAoYSkgVkFMVUVTICgzMCk7ICAtLSB2aW9sYXRl cyBjb25zdHJhaW50CiAKIEFMVEVSIFRBQkxFIGd0ZXN0MjAgQUxURVIgQ09MVU1OIGIgU0VUIEVY UFJFU1NJT04gQVMgKGEgKiAxMDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludCAoY3VycmVudGx5 IG5vdCBzdXBwb3J0ZWQpCiBBTFRFUiBUQUJMRSBndGVzdDIwIEFMVEVSIENPTFVNTiBiIFNFVCBF WFBSRVNTSU9OIEFTIChhICogMyk7ICAtLSBvayAoY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQpCiAK LUNSRUFURSBUQUJMRSBndGVzdDIwYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVzdDIwYSAoYSBp bnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSA6R2VuZXJh dGVkKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjBhIChhKSBWQUxVRVMgKDEwKTsKIElOU0VSVCBJTlRP IGd0ZXN0MjBhIChhKSBWQUxVRVMgKDMwKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MjBhIEFERCBDSEVD SyAoYiA8IDUwKTsgIC0tIGZhaWxzIG9uIGV4aXN0aW5nIHJvdwpAQCAtMzI0LDM3ICszMjcsMzcg QEAgQUxURVIgVEFCTEUgZ3Rlc3QyMGEgQUREIENIRUNLIChiIDwgNTApOyAgLS0gZmFpbHMgb24g ZXhpc3Rpbmcgcm93CiBBTFRFUiBUQUJMRSBndGVzdDIwYSBBREQgQ09MVU1OIGMgZmxvYXQ4IERF RkFVTFQgcmFuZG9tKCkgQ0hFQ0sgKGIgPCA1MCk7IC0tIGZhaWxzIG9uIGV4aXN0aW5nIHJvdwog QUxURVIgVEFCTEUgZ3Rlc3QyMGEgQUREIENPTFVNTiBjIGZsb2F0OCBERUZBVUxUIHJhbmRvbSgp IENIRUNLIChiIDwgNjEpOyAtLSBvawogCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyMGIgKGEgaW50IFBS SU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CitD UkVBVEUgVEFCTEUgZ3Rlc3QyMGIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZCk7CiBJTlNFUlQgSU5UTyBndGVzdDIwYiAoYSkg VkFMVUVTICgxMCk7CiBJTlNFUlQgSU5UTyBndGVzdDIwYiAoYSkgVkFMVUVTICgzMCk7CiBBTFRF UiBUQUJMRSBndGVzdDIwYiBBREQgQ09OU1RSQUlOVCBjaGsgQ0hFQ0sgKGIgPCA1MCkgTk9UIFZB TElEOwogQUxURVIgVEFCTEUgZ3Rlc3QyMGIgVkFMSURBVEUgQ09OU1RSQUlOVCBjaGs7ICAtLSBm YWlscyBvbiBleGlzdGluZyByb3cKIAogLS0gY2hlY2sgd2l0aCB3aG9sZS1yb3cgcmVmZXJlbmNl Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QyMGMgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChhICogMikgVklSVFVBTCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMGMgKGEgaW50LCBiIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZCk7CiBBTFRFUiBUQUJMRSBndGVz dDIwYyBBREQgQ09OU1RSQUlOVCB3aG9sZV9yb3dfY2hlY2sgQ0hFQ0sgKGd0ZXN0MjBjIElTIE5P VCBOVUxMKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjBjIFZBTFVFUyAoMSk7ICAtLSBvawogSU5TRVJU IElOVE8gZ3Rlc3QyMGMgVkFMVUVTIChOVUxMKTsgIC0tIGZhaWxzCiAKIC0tIG5vdC1udWxsIGNv bnN0cmFpbnRzCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyMWEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYoYSwgMCkpIFZJUlRVQUwgTk9UIE5VTEwpOwor Q1JFQVRFIFRBQkxFIGd0ZXN0MjFhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAobnVsbGlmKGEsIDApKSA6R2VuZXJhdGVkIE5PVCBOVUxMKTsKIElOU0VSVCBJ TlRPIGd0ZXN0MjFhIChhKSBWQUxVRVMgKDEpOyAgLS0gb2sKIElOU0VSVCBJTlRPIGd0ZXN0MjFh IChhKSBWQUxVRVMgKDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAogCiAtLSBhbHNvIGNoZWNr IHdpdGggdGFibGUgY29uc3RyYWludCBzeW50YXgKLUNSRUFURSBUQUJMRSBndGVzdDIxYXggKGEg aW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYoYSwgMCkp IFZJUlRVQUwsIENPTlNUUkFJTlQgY2MgTk9UIE5VTEwgYik7CitDUkVBVEUgVEFCTEUgZ3Rlc3Qy MWF4IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVsbGlm KGEsIDApKSA6R2VuZXJhdGVkLCBDT05TVFJBSU5UIGNjIE5PVCBOVUxMIGIpOwogSU5TRVJUIElO VE8gZ3Rlc3QyMWF4IChhKSBWQUxVRVMgKDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAogSU5T RVJUIElOVE8gZ3Rlc3QyMWF4IChhKSBWQUxVRVMgKDEpOyAgLS1vawogLS0gU0VUIEVYUFJFU1NJ T04gc3VwcG9ydHMgbm90IG51bGwgY29uc3RyYWludAogQUxURVIgVEFCTEUgZ3Rlc3QyMWF4IEFM VEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChudWxsaWYoYSwgMSkpOyAtLWVycm9yCiBE Uk9QIFRBQkxFIGd0ZXN0MjFheDsKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0MjFheCAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLCAwKSkgVklSVFVB TCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMWF4IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAobnVsbGlmKGEsIDApKSA6R2VuZXJhdGVkKTsKIEFMVEVSIFRBQkxF IGd0ZXN0MjFheCBBREQgQ09OU1RSQUlOVCBjYyBOT1QgTlVMTCBiOwogSU5TRVJUIElOVE8gZ3Rl c3QyMWF4IChhKSBWQUxVRVMgKDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAogRFJPUCBUQUJM RSBndGVzdDIxYXg7CiAKLUNSRUFURSBUQUJMRSBndGVzdDIxYiAoYSBpbnQsIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLCAwKSkgVklSVFVBTCk7CitDUkVBVEUgVEFCTEUgZ3Rl c3QyMWIgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYoYSwgMCkpIDpH ZW5lcmF0ZWQpOwogQUxURVIgVEFCTEUgZ3Rlc3QyMWIgQUxURVIgQ09MVU1OIGIgU0VUIE5PVCBO VUxMOwogSU5TRVJUIElOVE8gZ3Rlc3QyMWIgKGEpIFZBTFVFUyAoMSk7ICAtLSBvawogSU5TRVJU IElOVE8gZ3Rlc3QyMWIgKGEpIFZBTFVFUyAoMiksICgwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFp bnQKQEAgLTM2Niw3ICszNjksNyBAQCBJTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgw KTsgIC0tIG9rIG5vdwogQ1JFQVRFIFRBQkxFIGd0ZXN0bm5fcGFyZW50ICgKICAgICBmMSBpbnQs CiAgICAgZjIgYmlnaW50LAotICAgIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxs aWYoZjEsIDEpICsgbnVsbGlmKGYyLCAxMCkpIFZJUlRVQUwgTk9UIE5VTEwKKyAgICBmMyBiaWdp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVsbGlmKGYxLCAxKSArIG51bGxpZihmMiwgMTApKSA6 R2VuZXJhdGVkIE5PVCBOVUxMCiApIFBBUlRJVElPTiBCWSBSQU5HRSAoZjEpOwogQ1JFQVRFIFRB QkxFIGd0ZXN0bm5fY2hpbGQgUEFSVElUSU9OIE9GIGd0ZXN0bm5fcGFyZW50IEZPUiBWQUxVRVMg RlJPTSAoMSkgVE8gKDUpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0bm5fY2hpbGRkZWYgUEFSVElUSU9O IE9GIGd0ZXN0bm5fcGFyZW50IGRlZmF1bHQ7CkBAIC0zNzgsMjEgKzM4MSwyMSBAQCBBTFRFUiBU QUJMRSBndGVzdG5uX3BhcmVudCBBTFRFUiBDT0xVTU4gZjMgU0VUIEVYUFJFU1NJT04gQVMgKG51 bGxpZihmMSwgMikgKyBudQogSU5TRVJUIElOVE8gZ3Rlc3Rubl9wYXJlbnQgVkFMVUVTICgxMCwg MTEsIGRlZmF1bHQpOyAgLS0gb2sKIFNFTEVDVCAqIEZST00gZ3Rlc3Rubl9wYXJlbnQgT1JERVIg QlkgZjEsIGYyLCBmMzsKIC0tIHRlc3QgQUxURVIgVEFCTEUgQUREIENPTFVNTgotQUxURVIgVEFC TEUgZ3Rlc3Rubl9wYXJlbnQgQUREIENPTFVNTiBjIGludCBOT1QgTlVMTCBHRU5FUkFURUQgQUxX QVlTIEFTIChudWxsaWYoZjEsIDE0KSArIG51bGxpZihmMiwgMTApKSBWSVJUVUFMOyAgLS0gZXJy b3IKLUFMVEVSIFRBQkxFIGd0ZXN0bm5fcGFyZW50IEFERCBDT0xVTU4gYyBpbnQgTk9UIE5VTEwg R0VORVJBVEVEIEFMV0FZUyBBUyAobnVsbGlmKGYxLCAxMykgKyBudWxsaWYoZjIsIDUpKSBWSVJU VUFMOyAgLS0gZXJyb3IKLUFMVEVSIFRBQkxFIGd0ZXN0bm5fcGFyZW50IEFERCBDT0xVTU4gYyBp bnQgTk9UIE5VTEwgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVsbGlmKGYxLCA0KSArIG51bGxpZihm MiwgNikpIFZJUlRVQUw7ICAtLSBvaworQUxURVIgVEFCTEUgZ3Rlc3Rubl9wYXJlbnQgQUREIENP TFVNTiBjIGludCBOT1QgTlVMTCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYoZjEsIDE0KSAr IG51bGxpZihmMiwgMTApKSA6R2VuZXJhdGVkOyAgLS0gZXJyb3IKK0FMVEVSIFRBQkxFIGd0ZXN0 bm5fcGFyZW50IEFERCBDT0xVTU4gYyBpbnQgTk9UIE5VTEwgR0VORVJBVEVEIEFMV0FZUyBBUyAo bnVsbGlmKGYxLCAxMykgKyBudWxsaWYoZjIsIDUpKSA6R2VuZXJhdGVkOyAgLS0gZXJyb3IKK0FM VEVSIFRBQkxFIGd0ZXN0bm5fcGFyZW50IEFERCBDT0xVTU4gYyBpbnQgTk9UIE5VTEwgR0VORVJB VEVEIEFMV0FZUyBBUyAobnVsbGlmKGYxLCA0KSArIG51bGxpZihmMiwgNikpIDpHZW5lcmF0ZWQ7 ICAtLSBvawogCiAtLSBpbmRleCBjb25zdHJhaW50cwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjJhIChh IGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAvIDIpIFZJUlRV QUwgVU5JUVVFKTsKK0NSRUFURSBUQUJMRSBndGVzdDIyYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgLyAyKSA6R2VuZXJhdGVkIFVOSVFVRSk7CiAtLUlO U0VSVCBJTlRPIGd0ZXN0MjJhIFZBTFVFUyAoMik7CiAtLUlOU0VSVCBJTlRPIGd0ZXN0MjJhIFZB TFVFUyAoMyk7CiAtLUlOU0VSVCBJTlRPIGd0ZXN0MjJhIFZBTFVFUyAoNCk7Ci1DUkVBVEUgVEFC TEUgZ3Rlc3QyMmIgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhIC8gMikgVklS VFVBTCwgUFJJTUFSWSBLRVkgKGEsIGIpKTsKK0NSRUFURSBUQUJMRSBndGVzdDIyYiAoYSBpbnQs IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgLyAyKSA6R2VuZXJhdGVkLCBQUklNQVJZIEtF WSAoYSwgYikpOwogLS1JTlNFUlQgSU5UTyBndGVzdDIyYiBWQUxVRVMgKDIpOwogLS1JTlNFUlQg SU5UTyBndGVzdDIyYiBWQUxVRVMgKDIpOwogCiAtLSBpbmRleGVzCi1DUkVBVEUgVEFCTEUgZ3Rl c3QyMmMgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7 CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMmMgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChhICogMikgOkdlbmVyYXRlZCk7CiAtLUNSRUFURSBJTkRFWCBndGVzdDIyY19iX2lkeCBPTiBn dGVzdDIyYyAoYik7CiAtLUNSRUFURSBJTkRFWCBndGVzdDIyY19leHByX2lkeCBPTiBndGVzdDIy YyAoKGIgKiAzKSk7CiAtLUNSRUFURSBJTkRFWCBndGVzdDIyY19wcmVkX2lkeCBPTiBndGVzdDIy YyAoYSkgV0hFUkUgYiA+IDA7CkBAIC00MjMsMTAgKzQyNiwxMCBAQCBDUkVBVEUgVEFCTEUgZ3Rl c3QyMmMgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7 CiBDUkVBVEUgVEFCTEUgZ3Rlc3QyM2EgKHggaW50IFBSSU1BUlkgS0VZLCB5IGludCk7CiAtLUlO U0VSVCBJTlRPIGd0ZXN0MjNhIFZBTFVFUyAoMSwgMTEpLCAoMiwgMjIpLCAoMywgMzMpOwogCi1D UkVBVEUgVEFCTEUgZ3Rlc3QyM3ggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMikgVklSVFVBTCBSRUZFUkVOQ0VTIGd0ZXN0MjNhICh4KSBPTiBVUERB VEUgQ0FTQ0FERSk7ICAtLSBlcnJvcgotQ1JFQVRFIFRBQkxFIGd0ZXN0MjN4IChhIGludCBQUklN QVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwgUkVGRVJF TkNFUyBndGVzdDIzYSAoeCkgT04gREVMRVRFIFNFVCBOVUxMKTsgIC0tIGVycm9yCitDUkVBVEUg VEFCTEUgZ3Rlc3QyM3ggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChhICogMikgOkdlbmVyYXRlZCBSRUZFUkVOQ0VTIGd0ZXN0MjNhICh4KSBPTiBVUERBVEUg Q0FTQ0FERSk7ICAtLSBlcnJvcgorQ1JFQVRFIFRBQkxFIGd0ZXN0MjN4IChhIGludCBQUklNQVJZ IEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQgUkVGRVJF TkNFUyBndGVzdDIzYSAoeCkgT04gREVMRVRFIFNFVCBOVUxMKTsgIC0tIGVycm9yCiAKLUNSRUFU RSBUQUJMRSBndGVzdDIzYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSBWSVJUVUFMIFJFRkVSRU5DRVMgZ3Rlc3QyM2EgKHgpKTsKK0NSRUFURSBU QUJMRSBndGVzdDIzYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgKiAyKSA6R2VuZXJhdGVkIFJFRkVSRU5DRVMgZ3Rlc3QyM2EgKHgpKTsKIC0tXGQgZ3Rl c3QyM2IKIAogLS1JTlNFUlQgSU5UTyBndGVzdDIzYiBWQUxVRVMgKDEpOyAgLS0gb2sKQEAgLTQz Nyw3ICs0NDAsNyBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3QyM2IgKGEgaW50IFBSSU1BUlkgS0VZLCBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVAogLS1EUk9QIFRBQkxFIGd0ZXN0 MjNiOwogLS1EUk9QIFRBQkxFIGd0ZXN0MjNhOwogCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyM3AgKHgg aW50LCB5IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICogMikgVklSVFVBTCwgUFJJTUFSWSBL RVkgKHkpKTsKK0NSRUFURSBUQUJMRSBndGVzdDIzcCAoeCBpbnQsIHkgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKHggKiAyKSA6R2VuZXJhdGVkLCBQUklNQVJZIEtFWSAoeSkpOwogLS1JTlNFUlQg SU5UTyBndGVzdDIzcCBWQUxVRVMgKDEpLCAoMiksICgzKTsKIAogQ1JFQVRFIFRBQkxFIGd0ZXN0 MjNxIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgUkVGRVJFTkNFUyBndGVzdDIzcCAoeSkpOwpA QCAtNDQ2LDQzICs0NDksNDMgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0MjNxIChhIGludCBQUklNQVJZ IEtFWSwgYiBpbnQgUkVGRVJFTkNFUyBndGVzdDIzcCAoeSkpOwogCiAtLSBkb21haW5zCiBDUkVB VEUgRE9NQUlOIGd0ZXN0ZG9tYWluMSBBUyBpbnQgQ0hFQ0sgKFZBTFVFIDwgMTApOwotQ1JFQVRF IFRBQkxFIGd0ZXN0MjQgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGd0ZXN0ZG9tYWluMSBHRU5FUkFU RUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyNCAoYSBp bnQgUFJJTUFSWSBLRVksIGIgZ3Rlc3Rkb21haW4xIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAy KSA6R2VuZXJhdGVkKTsKIC0tSU5TRVJUIElOVE8gZ3Rlc3QyNCAoYSkgVkFMVUVTICg0KTsgIC0t IG9rCiAtLUlOU0VSVCBJTlRPIGd0ZXN0MjQgKGEpIFZBTFVFUyAoNik7ICAtLSBlcnJvcgogQ1JF QVRFIFRZUEUgZ3Rlc3Rkb21haW4xcmFuZ2UgQVMgcmFuZ2UgKHN1YnR5cGUgPSBndGVzdGRvbWFp bjEpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjRyIChhIGludCBQUklNQVJZIEtFWSwgYiBndGVzdGRv bWFpbjFyYW5nZSBHRU5FUkFURUQgQUxXQVlTIEFTIChndGVzdGRvbWFpbjFyYW5nZShhLCBhICsg NSkpIFZJUlRVQUwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjRyIChhIGludCBQUklNQVJZIEtFWSwg YiBndGVzdGRvbWFpbjFyYW5nZSBHRU5FUkFURUQgQUxXQVlTIEFTIChndGVzdGRvbWFpbjFyYW5n ZShhLCBhICsgNSkpIDpHZW5lcmF0ZWQpOwogLS1JTlNFUlQgSU5UTyBndGVzdDI0ciAoYSkgVkFM VUVTICg0KTsgIC0tIG9rCiAtLUlOU0VSVCBJTlRPIGd0ZXN0MjRyIChhKSBWQUxVRVMgKDYpOyAg LS0gZXJyb3IKIAogQ1JFQVRFIFRBQkxFIGd0ZXN0MjRhdCAoYSBpbnQgUFJJTUFSWSBLRVkpOwot QUxURVIgVEFCTEUgZ3Rlc3QyNGF0IEFERCBDT0xVTU4gYiBndGVzdGRvbWFpbjEgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUw7ICAtLSBlcnJvcgotQ1JFQVRFIFRBQkxFIGd0ZXN0 MjRhdGEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICog MikgVklSVFVBTCk7CitBTFRFUiBUQUJMRSBndGVzdDI0YXQgQUREIENPTFVNTiBiIGd0ZXN0ZG9t YWluMSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZDsgIC0tIGVycm9yCitD UkVBVEUgVEFCTEUgZ3Rlc3QyNGF0YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAyKSA6R2VuZXJhdGVkKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MjRhdGEg QUxURVIgQ09MVU1OIGIgVFlQRSBndGVzdGRvbWFpbjE7ICAtLSBlcnJvcgogCiBDUkVBVEUgRE9N QUlOIGd0ZXN0ZG9tYWlubm4gQVMgaW50IENIRUNLIChWQUxVRSBJUyBOT1QgTlVMTCk7Ci1DUkVB VEUgVEFCTEUgZ3Rlc3QyNG5uIChhIGludCwgYiBndGVzdGRvbWFpbm5uIEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVzdDI0bm4gKGEgaW50LCBi IGd0ZXN0ZG9tYWlubm4gR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQpOwog LS1JTlNFUlQgSU5UTyBndGVzdDI0bm4gKGEpIFZBTFVFUyAoNCk7ICAtLSBvawogLS1JTlNFUlQg SU5UTyBndGVzdDI0bm4gKGEpIFZBTFVFUyAoTlVMTCk7ICAtLSBlcnJvcgogCiAtLSB0eXBlZCB0 YWJsZXMgKGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkKQogQ1JFQVRFIFRZUEUgZ3Rlc3RfdHlwZSBB UyAoZjEgaW50ZWdlciwgZjIgdGV4dCwgZjMgYmlnaW50KTsKLUNSRUFURSBUQUJMRSBndGVzdDI4 IE9GIGd0ZXN0X3R5cGUgKGYxIFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAq MikgVklSVFVBTCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyOCBPRiBndGVzdF90eXBlIChmMSBXSVRI IE9QVElPTlMgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKjIpIDpHZW5lcmF0ZWQpOwogRFJPUCBU WVBFIGd0ZXN0X3R5cGUgQ0FTQ0FERTsKIAogLS0gcGFydGl0aW9uaW5nIGNhc2VzCiBDUkVBVEUg VEFCTEUgZ3Rlc3RfcGFyZW50IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2lu dCkgUEFSVElUSU9OIEJZIFJBTkdFIChmMSk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQgUEFS VElUSU9OIE9GIGd0ZXN0X3BhcmVudCAoCi0gICAgZjMgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBB TFdBWVMgQVMgKGYyICogMikgVklSVFVBTAorICAgIGYzIFdJVEggT1BUSU9OUyBHRU5FUkFURUQg QUxXQVlTIEFTIChmMiAqIDIpIDpHZW5lcmF0ZWQKICkgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0w Ny0wMScpIFRPICgnMjAxNi0wOC0wMScpOyAtLSBlcnJvcgotQ1JFQVRFIFRBQkxFIGd0ZXN0X2No aWxkIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxX QVlTIEFTIChmMiAqIDIpIFZJUlRVQUwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkIChmMSBk YXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChm MiAqIDIpIDpHZW5lcmF0ZWQpOwogQUxURVIgVEFCTEUgZ3Rlc3RfcGFyZW50IEFUVEFDSCBQQVJU SVRJT04gZ3Rlc3RfY2hpbGQgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wNy0wMScpIFRPICgnMjAx Ni0wOC0wMScpOyAtLSBlcnJvcgogRFJPUCBUQUJMRSBndGVzdF9wYXJlbnQsIGd0ZXN0X2NoaWxk OwogCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfcGFyZW50IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdp bnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFZJUlRVQUwpIFBBUlRJ VElPTiBCWSBSQU5HRSAoZjEpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X3BhcmVudCAoZjEgZGF0ZSBO T1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAy KSA6R2VuZXJhdGVkKSBQQVJUSVRJT04gQlkgUkFOR0UgKGYxKTsKIENSRUFURSBUQUJMRSBndGVz dF9jaGlsZCBQQVJUSVRJT04gT0YgZ3Rlc3RfcGFyZW50CiAgIEZPUiBWQUxVRVMgRlJPTSAoJzIw MTYtMDctMDEnKSBUTyAoJzIwMTYtMDgtMDEnKTsgIC0tIGluaGVyaXRzIGdlbiBleHByCiBDUkVB VEUgVEFCTEUgZ3Rlc3RfY2hpbGQyIFBBUlRJVElPTiBPRiBndGVzdF9wYXJlbnQgKAotICAgIGYz IFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIyKSBWSVJUVUFMICAtLSBv dmVycmlkZXMgZ2VuIGV4cHIKKyAgICBmMyBXSVRIIE9QVElPTlMgR0VORVJBVEVEIEFMV0FZUyBB UyAoZjIgKiAyMikgOkdlbmVyYXRlZCAgLS0gb3ZlcnJpZGVzIGdlbiBleHByCiApIEZPUiBWQUxV RVMgRlJPTSAoJzIwMTYtMDgtMDEnKSBUTyAoJzIwMTYtMDktMDEnKTsKIENSRUFURSBUQUJMRSBn dGVzdF9jaGlsZDMgUEFSVElUSU9OIE9GIGd0ZXN0X3BhcmVudCAoCiAgICAgZjMgREVGQVVMVCA0 MiAgLS0gZXJyb3IKQEAgLTQ5MSw3ICs0OTQsNyBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQz IFBBUlRJVElPTiBPRiBndGVzdF9wYXJlbnQgKAogICAgIGYzIFdJVEggT1BUSU9OUyBHRU5FUkFU RUQgQUxXQVlTIEFTIElERU5USVRZICAtLSBlcnJvcgogKSBGT1IgVkFMVUVTIEZST00gKCcyMDE2 LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIFBB UlRJVElPTiBPRiBndGVzdF9wYXJlbnQgKAotICAgIGYzIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYy ICogMikgU1RPUkVEICAtLSBlcnJvcgorICAgIGYzIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICog MikgOk90aGVyICAtLSBlcnJvcgogKSBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAxJykgVE8g KCcyMDE2LTEwLTAxJyk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIChmMSBkYXRlIE5PVCBO VUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCk7CiBBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQVRU QUNIIFBBUlRJVElPTiBndGVzdF9jaGlsZDMgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOS0wMScp IFRPICgnMjAxNi0xMC0wMScpOyAtLSBlcnJvcgpAQCAtNTAyLDEwICs1MDUsMTAgQEAgRFJPUCBU QUJMRSBndGVzdF9jaGlsZDM7CiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIChmMSBkYXRlIE5P VCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIElERU5USVRZ KTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRBQ0ggUEFSVElUSU9OIGd0ZXN0X2NoaWxk MyBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7IC0tIGVy cm9yCiBEUk9QIFRBQkxFIGd0ZXN0X2NoaWxkMzsKLUNSRUFURSBUQUJMRSBndGVzdF9jaGlsZDMg KGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGYyICogMzMpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIChmMSBkYXRl IE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAq IDMzKSA6T3RoZXIpOwogQUxURVIgVEFCTEUgZ3Rlc3RfcGFyZW50IEFUVEFDSCBQQVJUSVRJT04g Z3Rlc3RfY2hpbGQzIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDktMDEnKSBUTyAoJzIwMTYtMTAt MDEnKTsgLS0gZXJyb3IKIERST1AgVEFCTEUgZ3Rlc3RfY2hpbGQzOwotQ1JFQVRFIFRBQkxFIGd0 ZXN0X2NoaWxkMyAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoZjIgKiAzMykgVklSVFVBTCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hp bGQzIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxX QVlTIEFTIChmMiAqIDMzKSA6R2VuZXJhdGVkKTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBB VFRBQ0ggUEFSVElUSU9OIGd0ZXN0X2NoaWxkMyBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAx JykgVE8gKCcyMDE2LTEwLTAxJyk7CiBcZCBndGVzdF9jaGlsZAogXGQgZ3Rlc3RfY2hpbGQyCkBA IC01MzksMjEgKzU0MiwyMSBAQCBTRUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gZ3Rl c3RfcGFyZW50IE9SREVSIEJZIDEsIDIsIDM7CiAtLSB3ZSBsZWF2ZSB0aGVzZSB0YWJsZXMgYXJv dW5kIGZvciBwdXJwb3NlcyBvZiB0ZXN0aW5nIGR1bXAvcmVsb2FkL3VwZ3JhZGUKIAogLS0gZ2Vu ZXJhdGVkIGNvbHVtbnMgaW4gcGFydGl0aW9uIGtleSAobm90IGFsbG93ZWQpCi1DUkVBVEUgVEFC TEUgZ3Rlc3RfcGFydF9rZXkgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgVklSVFVBTCkgUEFSVElUSU9OIEJZIFJBTkdF IChmMyk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3RfcGFydF9rZXkgKGYxIGRhdGUgTk9UIE5VTEwsIGYy IGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgVklSVFVBTCkg UEFSVElUSU9OIEJZIFJBTkdFICgoZjMgKiAzKSk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfcGFydF9r ZXkgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGYyICogMikgOkdlbmVyYXRlZCkgUEFSVElUSU9OIEJZIFJBTkdFIChmMyk7CitDUkVB VEUgVEFCTEUgZ3Rlc3RfcGFydF9rZXkgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMg YmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgOkdlbmVyYXRlZCkgUEFSVElUSU9O IEJZIFJBTkdFICgoZjMgKiAzKSk7CiAKIC0tIEFMVEVSIFRBQkxFIC4uLiBBREQgQ09MVU1OCiBD UkVBVEUgVEFCTEUgZ3Rlc3QyNSAoYSBpbnQgUFJJTUFSWSBLRVkpOwogSU5TRVJUIElOVE8gZ3Rl c3QyNSBWQUxVRVMgKDMpLCAoNCk7Ci1BTFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xVTU4gYiBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwsIEFMVEVSIENPTFVNTiBiIFNF VCBFWFBSRVNTSU9OIEFTIChhICogMyk7CitBTFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xVTU4g YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQsIEFMVEVSIENPTFVN TiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogMyk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjUgT1JE RVIgQlkgYTsKLUFMVEVSIFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiB4IGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChiICogNCkgVklSVFVBTDsgIC0tIGVycm9yCi1BTFRFUiBUQUJMRSBndGVzdDI1 IEFERCBDT0xVTU4geCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoeiAqIDQpIFZJUlRVQUw7ICAt LSBlcnJvcgorQUxURVIgVEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIHggaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGIgKiA0KSA6R2VuZXJhdGVkOyAgLS0gZXJyb3IKK0FMVEVSIFRBQkxFIGd0ZXN0 MjUgQUREIENPTFVNTiB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh6ICogNCkgOkdlbmVyYXRl ZDsgIC0tIGVycm9yCiBBTFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xVTU4gYyBpbnQgREVGQVVM VCA0MiwKLSAgQUREIENPTFVNTiB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChjICogNCkgVklS VFVBTDsKKyAgQUREIENPTFVNTiB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChjICogNCkgOkdl bmVyYXRlZDsKIEFMVEVSIFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiBkIGludCBERUZBVUxUIDEw MTsKIEFMVEVSIFRBQkxFIGd0ZXN0MjUgQUxURVIgQ09MVU1OIGQgU0VUIERBVEEgVFlQRSBmbG9h dDgsCi0gIEFERCBDT0xVTU4geSBmbG9hdDggR0VORVJBVEVEIEFMV0FZUyBBUyAoZCAqIDQpIFZJ UlRVQUw7CisgIEFERCBDT0xVTU4geSBmbG9hdDggR0VORVJBVEVEIEFMV0FZUyBBUyAoZCAqIDQp IDpHZW5lcmF0ZWQ7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjUgT1JERVIgQlkgYTsKIFxkIGd0ZXN0 MjUKIApAQCAtNTYxLDcgKzU2NCw3IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QyNSBPUkRFUiBCWSBh OwogQ1JFQVRFIFRBQkxFIGd0ZXN0MjcgKAogICAgIGEgaW50LAogICAgIGIgaW50LAotICAgIHgg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChhICsgYikgKiAyKSBWSVJUVUFMCisgICAgeCBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoKGEgKyBiKSAqIDIpIDpHZW5lcmF0ZWQKICk7CiBJTlNFUlQg SU5UTyBndGVzdDI3IChhLCBiKSBWQUxVRVMgKDMsIDcpLCAoNCwgMTEpOwogQUxURVIgVEFCTEUg Z3Rlc3QyNyBBTFRFUiBDT0xVTU4gYSBUWVBFIHRleHQ7ICAtLSBlcnJvcgpAQCAtNTc2LDE0ICs1 NzksMTQgQEAgQUxURVIgVEFCTEUgZ3Rlc3QyNwogICBEUk9QIENPTFVNTiB4LAogICBBTFRFUiBD T0xVTU4gYSBUWVBFIGJpZ2ludCwKICAgQUxURVIgQ09MVU1OIGIgVFlQRSBiaWdpbnQsCi0gIEFE RCBDT0xVTU4geCBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKGEgKyBiKSAqIDIpIFZJUlRV QUwgTk9UIE5VTEw7ICAtLSBlcnJvcgorICBBREQgQ09MVU1OIHggYmlnaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKChhICsgYikgKiAyKSA6R2VuZXJhdGVkIE5PVCBOVUxMOyAgLS0gZXJyb3IKIERF TEVURSBGUk9NIGd0ZXN0MjcgV0hFUkUgYSBJUyBOVUxMIEFORCBiIElTIE5VTEw7CiAtLSBJdCdz IHBvc3NpYmxlIHRvIGFsdGVyIHRoZSBjb2x1bW4gdHlwZXMgdGhpcyB3YXk6CiBBTFRFUiBUQUJM RSBndGVzdDI3CiAgIERST1AgQ09MVU1OIHgsCiAgIEFMVEVSIENPTFVNTiBhIFRZUEUgYmlnaW50 LAogICBBTFRFUiBDT0xVTU4gYiBUWVBFIGJpZ2ludCwKLSAgQUREIENPTFVNTiB4IGJpZ2ludCBH RU5FUkFURUQgQUxXQVlTIEFTICgoYSArIGIpICogMikgVklSVFVBTDsKKyAgQUREIENPTFVNTiB4 IGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoYSArIGIpICogMikgOkdlbmVyYXRlZDsKIFxk IGd0ZXN0MjcKIC0tIElkZWFsbHkgeW91IGNvdWxkIGp1c3QgZG8gdGhpcywgYnV0IG5vdCB0b2Rh eSAoYW5kIHNob3VsZCB4IGNoYW5nZSB0eXBlPyk6CiBBTFRFUiBUQUJMRSBndGVzdDI3CkBAIC01 OTUsNyArNTk4LDcgQEAgU0VMRUNUICogRlJPTSBndGVzdDI3OwogLS0gQUxURVIgVEFCTEUgLi4u IEFMVEVSIENPTFVNTiAuLi4gRFJPUCBFWFBSRVNTSU9OCiBDUkVBVEUgVEFCTEUgZ3Rlc3QyOSAo CiAgICAgYSBpbnQsCi0gICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRV QUwKKyAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZAogKTsK IElOU0VSVCBJTlRPIGd0ZXN0MjkgKGEpIFZBTFVFUyAoMyksICg0KTsKIFNFTEVDVCAqIEZST00g Z3Rlc3QyOTsKQEAgLTYyMiw3ICs2MjUsNyBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0Mjk7CiAtLSB3 aXRoIGluaGVyaXRhbmNlCiBDUkVBVEUgVEFCTEUgZ3Rlc3QzMCAoCiAgICAgYSBpbnQsCi0gICAg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwKKyAgICBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgOkdlbmVyYXRlZAogKTsKIENSRUFURSBUQUJMRSBndGVz dDMwXzEgKCkgSU5IRVJJVFMgKGd0ZXN0MzApOwogQUxURVIgVEFCTEUgZ3Rlc3QzMCBBTFRFUiBD T0xVTU4gYiBEUk9QIEVYUFJFU1NJT047CkBAIC02MzEsNyArNjM0LDcgQEAgQUxURVIgVEFCTEUg Z3Rlc3QzMCBBTFRFUiBDT0xVTU4gYiBEUk9QIEVYUFJFU1NJT047CiBEUk9QIFRBQkxFIGd0ZXN0 MzAgQ0FTQ0FERTsKIENSRUFURSBUQUJMRSBndGVzdDMwICgKICAgICBhIGludCwKLSAgICBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTAorICAgIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAyKSA6R2VuZXJhdGVkCiApOwogQ1JFQVRFIFRBQkxFIGd0ZXN0MzBf MSAoKSBJTkhFUklUUyAoZ3Rlc3QzMCk7CiBBTFRFUiBUQUJMRSBPTkxZIGd0ZXN0MzAgQUxURVIg Q09MVU1OIGIgRFJPUCBFWFBSRVNTSU9OOyAgLS0gZXJyb3IKQEAgLTY0MCw3ICs2NDMsNyBAQCBB TFRFUiBUQUJMRSBPTkxZIGd0ZXN0MzAgQUxURVIgQ09MVU1OIGIgRFJPUCBFWFBSRVNTSU9OOyAg LS0gZXJyb3IKIEFMVEVSIFRBQkxFIGd0ZXN0MzBfMSBBTFRFUiBDT0xVTU4gYiBEUk9QIEVYUFJF U1NJT047ICAtLSBlcnJvcgogCiAtLSBjb21wb3NpdGUgdHlwZSBkZXBlbmRlbmNpZXMKLUNSRUFU RSBUQUJMRSBndGVzdDMxXzEgKGEgaW50LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoJ2hl bGxvJykgVklSVFVBTCwgYyB0ZXh0KTsKK0NSRUFURSBUQUJMRSBndGVzdDMxXzEgKGEgaW50LCBi IHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoJ2hlbGxvJykgOkdlbmVyYXRlZCwgYyB0ZXh0KTsK IENSRUFURSBUQUJMRSBndGVzdDMxXzIgKHggaW50LCB5IGd0ZXN0MzFfMSk7CiBBTFRFUiBUQUJM RSBndGVzdDMxXzEgQUxURVIgQ09MVU1OIGIgVFlQRSB2YXJjaGFyOyAgLS0gZmFpbHMKIApAQCAt NjU5LDcgKzY2Miw3IEBAIEFMVEVSIFRBQkxFIGd0ZXN0MzFfMSBBTFRFUiBDT0xVTU4gYiBTRVQg RVhQUkVTU0lPTiBBUyAoJ2hlbGxvMycpOwogRFJPUCBUQUJMRSBndGVzdDMxXzEsIGd0ZXN0MzFf MjsKIAogLS0gQ2hlY2sgaXQgZm9yIGEgcGFydGl0aW9uZWQgdGFibGUsIHRvbwotQ1JFQVRFIFRB QkxFIGd0ZXN0MzFfMSAoYSBpbnQsIGIgdGV4dCBHRU5FUkFURUQgQUxXQVlTIEFTICgnaGVsbG8n KSBWSVJUVUFMLCBjIHRleHQpIFBBUlRJVElPTiBCWSBMSVNUIChhKTsKK0NSRUFURSBUQUJMRSBn dGVzdDMxXzEgKGEgaW50LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoJ2hlbGxvJykgOkdl bmVyYXRlZCwgYyB0ZXh0KSBQQVJUSVRJT04gQlkgTElTVCAoYSk7CiBDUkVBVEUgVEFCTEUgZ3Rl c3QzMV8yICh4IGludCwgeSBndGVzdDMxXzEpOwogQUxURVIgVEFCTEUgZ3Rlc3QzMV8xIEFMVEVS IENPTFVNTiBiIFRZUEUgdmFyY2hhcjsgIC0tIGZhaWxzCiBEUk9QIFRBQkxFIGd0ZXN0MzFfMSwg Z3Rlc3QzMV8yOwpAQCAtNjY3LDcgKzY3MCw3IEBAIERST1AgVEFCTEUgZ3Rlc3QzMV8xLCBndGVz dDMxXzI7CiAtLSB0cmlnZ2VycwogQ1JFQVRFIFRBQkxFIGd0ZXN0MjYgKAogICAgIGEgaW50IFBS SU1BUlkgS0VZLAotICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFM CisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIDpHZW5lcmF0ZWQKICk7CiAK IENSRUFURSBGVU5DVElPTiBndGVzdF90cmlnZ2VyX2Z1bmMoKSBSRVRVUk5TIHRyaWdnZXIKQEAg LTc4Myw3ICs3ODYsNyBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3QyOGEgKAogICBhIGludCwKICAgYiBp bnQsCiAgIGMgaW50LAotICB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgVklSVFVB TAorICB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgOkdlbmVyYXRlZAogKTsKIAog QUxURVIgVEFCTEUgZ3Rlc3QyOGEgRFJPUCBDT0xVTU4gYTsKQEAgLTgwNCw3ICs4MDcsNyBAQCBT RUxFQ1QgYXR0cmVsaWQsIGF0dG5hbWUsIGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0ZSBX SEVSRSBhdHRnZW5lcmF0ZWQgTk9UCiAtLQogCiAtLSB1c2luZyB1c2VyLWRlZmluZWQgdHlwZSBu b3QgeWV0IHN1cHBvcnRlZAotQ1JFQVRFIFRBQkxFIGd0ZXN0MjR4eHggKGEgZ3Rlc3Rkb21haW4x LCBiIGd0ZXN0ZG9tYWluMSwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZ3JlYXRlc3QoYSwg YikpIFZJUlRVQUwpOyAgLS0gZXJyb3IKK0NSRUFURSBUQUJMRSBndGVzdDI0eHh4IChhIGd0ZXN0 ZG9tYWluMSwgYiBndGVzdGRvbWFpbjEsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGdyZWF0 ZXN0KGEsIGIpKSA6R2VuZXJhdGVkKTsgIC0tIGVycm9yCiAKIGNyZWF0ZSB0YWJsZSBndGVzdDMy ICgKICAgYSBpbnQgcHJpbWFyeSBrZXksCi0tIAoyLjM5LjUKCg== --000000000000dd17af0640088cbf--