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.96) (envelope-from ) id 1vVrbJ-009DqM-01 for pgsql-hackers@arkaria.postgresql.org; Wed, 17 Dec 2025 13:29:58 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vVrbH-00CyIq-35 for pgsql-hackers@arkaria.postgresql.org; Wed, 17 Dec 2025 13:29:56 +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.96) (envelope-from ) id 1vVrbH-00CyIi-1k for pgsql-hackers@lists.postgresql.org; Wed, 17 Dec 2025 13:29:56 +0000 Received: from mail-vs1-xe33.google.com ([2607:f8b0:4864:20::e33]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vVrbF-001EcD-1c for pgsql-hackers@lists.postgresql.org; Wed, 17 Dec 2025 13:29:56 +0000 Received: by mail-vs1-xe33.google.com with SMTP id ada2fe7eead31-5deb0b2f685so381966137.0 for ; Wed, 17 Dec 2025 05:29:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765978191; x=1766582991; 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=EEqFQM9pbg78189oyGjjIlmh3bOCvGBNPgnd0Q1FSjQ=; b=iWE3FtrH5DSq6zsJUm22tbTRa7UuCa0A+fODqNoqCRseo3DashmuXc64C1C3qaCK49 TRo2wrikZ0n9jtHe2r3eiBAXqwusfHMN0Ub+jhlgKiSUjNZWUesmZlUtQ703rVZ7O+jB TzxFxbWzKFl7+sJ6YutbMigVL2VpE3OZ12V7hsSJd2HdBrDUGxb/L9W8Ee/7r5jVD9gt 8P9pnVtc9N7OaFG47A6EaHdYDDRQJR2KpODgTKOnYUnl//Xt4FjSD+w39netWgdL74Cb J5ve67bNbWjRmm1ug9k9ed/gR95FO+AgNcWdyLMDnDSfYUSM/IiUB5c3d/PYHoLBtaUW CjEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765978191; x=1766582991; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=EEqFQM9pbg78189oyGjjIlmh3bOCvGBNPgnd0Q1FSjQ=; b=tE8w9mCakVscNz1R5JhA0Qjvw0nbxqeYO81XT118Ez0cGeApcIGabHqqT7w71LMOpI hIWkbL9JNng0Lr/NRmBmcARRXMYhmI7inhtyOb/ewZtuZtPSRUgFL/wNvDHX/KKYyMnv GfcpXmqTnfcFOB/A+H+XNzTHXBlziU9yISX+/eV2ru7gTd8EccDv2/kPaYOrpqwE5CqG ZnrcV7qaDq9kf0ZOkFAgTyq7iNWz3voWdU+aEmn7B+1THPVk+/i/GkWwzDb/zwK7tVjF W3aY4b6Stm5fuhyFUwxCega7CfndGHpJfG1PkoF+vz/YuFoh3GMBWdrV3ZUI070+7X1h 1oYQ== X-Forwarded-Encrypted: i=1; AJvYcCXxkP8KC+3f+qajYOj3HkxDznoOZBRqXvk2tQTmloIwzDjHcEBs8ogOgHDJlJToaKsK1wWJiLfSBYdx08Ci@lists.postgresql.org X-Gm-Message-State: AOJu0YyjpRSdhwQ09EeVjfUwBlSmXvNEAL9q+RhN5K8OkcQYqW+ZWrgm 5gDLghdXdGErvGzGLMSy02h6gXSocGqurwsTVpXEpoD2DfPt+3y0AaV3SDFKNN71p2VtxYBDAGk kbZZxDwOZ2L+bjVcFZIT27KkLuNUjuOQ= X-Gm-Gg: AY/fxX76fu2QwNjEndqvt4E4xfIARMI+VXp9k0lPCpHwSliW2VqnDZR/0iCbsXRjgXv x7AkCIQ8OwLjOAwwcVQPA/QG+3zdKyAHlwK2MxoSnjwNKzueDTXeiNB2LOsphmyO3yHjAC/e+Sz iibhsJ2sElOSk3WZ3dJ+2F4+9annv/IqahW7l+P5WGPX3EedtbguX8DkvGadqT+t5WlU6ngfTHH wiw5aLoJV8AX5Vo07jWxwBQsxlD8cJmAsL45L9bAw68sof7+6+wK5mza4xkl/ZPAfRzNqjJr8wa vT/aRiWiN3lnVtkW+mcklhyE+H+5k5WKl8C3ojTW2HOqW2pHJWANNUMvkhut9L6jGS+EEAgJa0i 51qPYPBpOhmG42EXTd8P48Z3Dvf4+aLs4Over9DeGJ04+0TtqmogaP6ASEawQJyxPU2PSaloM4U ARCZBWxT0xfA== X-Google-Smtp-Source: AGHT+IHkd0iFC8Y2NkKui0FMhEJXi/MJIB9TecHqwFS1wkPTzCTmvDsuu2kjdbrLAtNIop03Ee7OyrSq/DKWTq0iEiY= X-Received: by 2002:a05:6102:dcc:b0:5db:ecac:5800 with SMTP id ada2fe7eead31-5e825a8bdf7mr6747373137.19.1765978190586; Wed, 17 Dec 2025 05:29:50 -0800 (PST) MIME-Version: 1.0 References: <1898722.1732732780@sss.pgh.pa.us> <2007224.1732773174@sss.pgh.pa.us> <1075425.1732993688@sss.pgh.pa.us> <345c20e5-a6d7-477a-9598-982661bb5740@eisentraut.org> <1990479.1733256458@sss.pgh.pa.us> <499425.1733936916@sss.pgh.pa.us> <685422.1756848241@sss.pgh.pa.us> In-Reply-To: <685422.1756848241@sss.pgh.pa.us> From: jian he Date: Wed, 17 Dec 2025 21:29:13 +0800 X-Gm-Features: AQt7F2ojwS79SG1tBXcYEZDw8td5PMeJmPV0Q2lKgzUWb6XLdHRYb0RyObA7TFw Message-ID: Subject: Re: CREATE SCHEMA ... CREATE DOMAIN support To: Tom Lane Cc: Kirill Reshke , Peter Eisentraut , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000bb4858064625d61b" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000bb4858064625d61b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Sep 3, 2025 at 5:24=E2=80=AFAM Tom Lane wrote: > > jian he writes: > > Please check the latest attached. > > v7-0001-Don-t-try-to-re-order-the-subcommands-of-CREATE-SCHEMA.patch > I think this is still kind of blocked, because it's not clear to me > whether we have consensus about it being okay to do 0001. > > Re-reading the thread, the only real use-case for re-ordering that > anyone proposed is that foreign key references should be able to be > forward references to tables created later in the same CREATE SCHEMA. > I concede first that this is a somewhat-plausible use-case and > second that it is pretty clearly required by spec. The fact remains > however that we have never supported that in two dozen years, and > the number of complaints about the omission could be counted without > running out of thumbs. So, how about the following plan of action? > > 1. Rip out subcommand re-ordering as currently implemented, and do the > subcommands in the given order. > > 2. When a CREATE TABLE subcommand includes a FOREIGN KEY clause, > transform that clause into ALTER TABLE ADD FOREIGN KEY, and push > it to the back of the CREATE SCHEMA's to-do list. > > #2 gives us at least pro-forma spec compliance, and AFAICS it does > not introduce any command re-ordering bugs. Foreign key clauses > don't depend on each other, so shoving them to the end without any > further sorting should be fine. > Hi. I just want to confirm we are on the same page. so you expect CREATE SCHEMA OptSchemaEltList executed as the specified order given, also expect cross t= able FOREIGN KEY referencing works just fine too? If so, obviously It will be a hack, but it seems the hack is easier to understand. 1. For CREATE TABLE, some case, we wrap the FK Constraint node in the form = of an ALTER TABLE ADD CONSTRAINT command, creating the FK constraint only after t= he relation itself has been created. see transformFKConstraints comments. For CREATE SCHEMA, we can make it after multiple relations are created, then pr= ocess FK constraint too. 2. src/backend/parser/gram.y already processes most of the information for = FK. transformFKConstraints merely wraps the FK Constraint node into an AlterTableCmd, which is then wrapped into an AlterTableStmt. In the HEAD, CREATE SCHEMA will fail when you first mention FK then PK. but with the attached, it will work fine. for example, below two will error out in the HEAD, but it will works fine with the attached patch. CREATE SCHEMA s2 CREATE TABLE t2(a int, b int, c int, foreign key (a, b) references t1 match full) partition by range (a, b, c) CREATE TABLE t1(a int, b int, primary key(b, a)) partition by range (a, b= ); CREATE SCHEMA s2 CREATE TABLE t2(a int, b int, c int, foreign key (a, b) references t1 match full) partition by range (a, b, c) CREATE TABLE t1(a int, b int, primary key(b, a)) partition by range (a, b= ); -- jian https://www.enterprisedb.com/ --000000000000bb4858064625d61b Content-Type: application/octet-stream; name="v8-0002-make-create-foreign-key-executed-at-the-end-of-CREATE-SCHEMA.nocfbot" Content-Disposition: attachment; filename="v8-0002-make-create-foreign-key-executed-at-the-end-of-CREATE-SCHEMA.nocfbot" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mja1nb3m0 RnJvbSA0YWMxMDIwZDk4MTE0MjcwZDdhMzIyZmM2MzU4OWI5MWM0ZDk0YTgyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTcgRGVjIDIwMjUgMjA6MjU6MzAgKzA4MDAKU3ViamVjdDogW1BBVENIIHY4 IDIvMl0gbWFrZSBjcmVhdGUgZm9yZWlnbiBrZXkgZXhlY3V0ZWQgYXQgdGhlIGVuZCBvZiBDUkVB VEUKIFNDSEVNQQoKZXNzZW50aWFsbHkgbWFrZSB0aGUgYmVsb3cgdHdvIGV4YW1wbGUgd29yazoK CkNSRUFURSBTQ0hFTUEgczEKICBDUkVBVEUgVEFCTEUgdDIoYiBpbnQsIGEgaW50IHJlZmVyZW5j ZXMgdDEpIHBhcnRpdGlvbiBieSByYW5nZSAoYikKICBDUkVBVEUgVEFCTEUgdDEoYSBpbnQgcHJp bWFyeSBrZXkpIHBhcnRpdGlvbiBieSByYW5nZSAoYSk7CgpDUkVBVEUgU0NIRU1BIHMyCiAgQ1JF QVRFIFRBQkxFIHQyKGEgaW50LCBiIGludCwgYyBpbnQsIGZvcmVpZ24ga2V5IChhLCBiKSByZWZl cmVuY2VzIHQxIG1hdGNoIGZ1bGwpIHBhcnRpdGlvbiBieSByYW5nZSAoYSwgYiwgYykKICBDUkVB VEUgVEFCTEUgdDEoYSBpbnQsIGIgaW50LCBwcmltYXJ5IGtleShiLCBhKSkgcGFydGl0aW9uIGJ5 IHJhbmdlIChhLCBiKTsKCkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vMTA3NTQyNS4x NzMyOTkzNjg4QHNzcy5wZ2gucGEudXMKLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zY2hlbWFj bWRzLmMgfCA3OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdl ZCwgNzkgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nj aGVtYWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NjaGVtYWNtZHMuYwppbmRleCAwOTky OGM1OGQ5ZC4uZGM4NDFhNzcyZDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nj aGVtYWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zY2hlbWFjbWRzLmMKQEAgLTE5 OCw2ICsxOTgsODUgQEAgQ3JlYXRlU2NoZW1hQ29tbWFuZChQYXJzZVN0YXRlICpwc3RhdGUsIENy ZWF0ZVNjaGVtYVN0bXQgKnN0bXQsCiAJCQkJCQkJCQkJCQkJICAgc3RtdC0+c2NoZW1hRWx0cywK IAkJCQkJCQkJCQkJCQkgICBzY2hlbWFOYW1lKTsKIAorCWZvcmVhY2gocGFyc2V0cmVlX2l0ZW0s IHBhcnNldHJlZV9saXN0KQorCXsKKwkJTGlzdENlbGwgICAqZWxlbWVudHM7CisJCUNyZWF0ZVN0 bXQgKmNzc3RtdDsKKworCQlOb2RlCSAgICpzdG10ID0gKE5vZGUgKikgbGZpcnN0KHBhcnNldHJl ZV9pdGVtKTsKKworCQlpZiAoIUlzQShzdG10LCBDcmVhdGVTdG10KSkKKwkJCWNvbnRpbnVlOwor CisJCWNzc3RtdCA9IGNhc3ROb2RlKENyZWF0ZVN0bXQsIHN0bXQpOworCisJCWZvcmVhY2goZWxl bWVudHMsIGNzc3RtdC0+dGFibGVFbHRzKQorCQl7CisJCQlDb2x1bW5EZWYgICplbnRyeTsKKwkJ CUNvbnN0cmFpbnQgKmNvbnN0cjsKKwkJCUFsdGVyVGFibGVTdG10ICphbHRlcnN0bXQ7CisJCQlB bHRlclRhYmxlQ21kICphbHRlcmNtZDsKKwkJCU5vZGUJICAgKmVsZW1lbnQgPSBsZmlyc3QoZWxl bWVudHMpOworCisJCQlpZiAoIUlzQShlbGVtZW50LCBDb2x1bW5EZWYpICYmICFJc0EoZWxlbWVu dCwgQ29uc3RyYWludCkpCisJCQkJY29udGludWU7CisKKwkJCWlmIChJc0EoZWxlbWVudCwgQ29u c3RyYWludCkpCisJCQl7CisJCQkJY29uc3RyID0gY2FzdE5vZGUoQ29uc3RyYWludCwgZWxlbWVu dCk7CisKKwkJCQlpZiAoY29uc3RyLT5jb250eXBlICE9IENPTlNUUl9GT1JFSUdOKQorCQkJCQlj b250aW51ZTsKKworCQkJCWFsdGVyc3RtdCA9IG1ha2VOb2RlKEFsdGVyVGFibGVTdG10KTsKKwkJ CQlhbHRlcmNtZCA9IG1ha2VOb2RlKEFsdGVyVGFibGVDbWQpOworCisJCQkJYWx0ZXJzdG10LT5y ZWxhdGlvbiA9IGNzc3RtdC0+cmVsYXRpb247CisJCQkJYWx0ZXJzdG10LT5jbWRzID0gTklMOwor CQkJCWFsdGVyc3RtdC0+b2JqdHlwZSA9IE9CSkVDVF9UQUJMRTsKKworCQkJCWFsdGVyY21kLT5z dWJ0eXBlID0gQVRfQWRkQ29uc3RyYWludDsKKwkJCQlhbHRlcmNtZC0+bmFtZSA9IE5VTEw7CisJ CQkJYWx0ZXJjbWQtPmRlZiA9IChOb2RlICopIGNvbnN0cjsKKwkJCQlhbHRlcnN0bXQtPmNtZHMg PSBsYXBwZW5kKGFsdGVyc3RtdC0+Y21kcywgYWx0ZXJjbWQpOworCisJCQkJY3NzdG10LT50YWJs ZUVsdHMgPSBmb3JlYWNoX2RlbGV0ZV9jdXJyZW50KGNzc3RtdC0+dGFibGVFbHRzLAorCQkJCQkJ CQkJCQkJCQkgICBlbGVtZW50cyk7CisKKwkJCQlwYXJzZXRyZWVfbGlzdCA9IGxhcHBlbmQocGFy c2V0cmVlX2xpc3QsIGFsdGVyc3RtdCk7CisKKwkJCQljb250aW51ZTsKKwkJCX0KKworCQkJZW50 cnkgPSBjYXN0Tm9kZShDb2x1bW5EZWYsIGVsZW1lbnQpOworCisJCQlmb3JlYWNoX25vZGUoQ29u c3RyYWludCwgY2RlZiwgZW50cnktPmNvbnN0cmFpbnRzKQorCQkJeworCQkJCWlmIChjZGVmLT5j b250eXBlICE9IENPTlNUUl9GT1JFSUdOKQorCQkJCQljb250aW51ZTsKKworCQkJCWFsdGVyc3Rt dCA9IG1ha2VOb2RlKEFsdGVyVGFibGVTdG10KTsKKwkJCQlhbHRlcmNtZCA9IG1ha2VOb2RlKEFs dGVyVGFibGVDbWQpOworCisJCQkJY2RlZi0+ZmtfYXR0cnMgPSBsaXN0X21ha2UxKG1ha2VTdHJp bmcoZW50cnktPmNvbG5hbWUpKTsKKworCQkJCWFsdGVyc3RtdC0+cmVsYXRpb24gPSBjc3N0bXQt PnJlbGF0aW9uOworCQkJCWFsdGVyc3RtdC0+Y21kcyA9IE5JTDsKKwkJCQlhbHRlcnN0bXQtPm9i anR5cGUgPSBPQkpFQ1RfVEFCTEU7CisKKwkJCQlhbHRlcmNtZC0+c3VidHlwZSA9IEFUX0FkZENv bnN0cmFpbnQ7CisJCQkJYWx0ZXJjbWQtPm5hbWUgPSBOVUxMOworCQkJCWFsdGVyY21kLT5kZWYg PSAoTm9kZSAqKSBjZGVmOworCQkJCWFsdGVyc3RtdC0+Y21kcyA9IGxhcHBlbmQoYWx0ZXJzdG10 LT5jbWRzLCBhbHRlcmNtZCk7CisKKwkJCQllbnRyeS0+Y29uc3RyYWludHMgPSBmb3JlYWNoX2Rl bGV0ZV9jdXJyZW50KGVudHJ5LT5jb25zdHJhaW50cywKKwkJCQkJCQkJCQkJCQkJCWNkZWYpOwor CisJCQkJcGFyc2V0cmVlX2xpc3QgPSBsYXBwZW5kKHBhcnNldHJlZV9saXN0LCBhbHRlcnN0bXQp OworCQkJfQorCQl9CisJfQorCiAJLyoKIAkgKiBFeGVjdXRlIGVhY2ggY29tbWFuZCBjb250YWlu ZWQgaW4gdGhlIENSRUFURSBTQ0hFTUEuICBTaW5jZSB0aGUgZ3JhbW1hcgogCSAqIGFsbG93cyBv bmx5IHV0aWxpdHkgY29tbWFuZHMgaW4gQ1JFQVRFIFNDSEVNQSwgdGhlcmUgaXMgbm8gbmVlZCB0 byBwYXNzCi0tIAoyLjM0LjEKCg== --000000000000bb4858064625d61b Content-Type: application/octet-stream; name="v8-0001-Don-t-try-to-re-order-the-subcommands-of-CREATE-SCHEMA.nocfbot" Content-Disposition: attachment; filename="v8-0001-Don-t-try-to-re-order-the-subcommands-of-CREATE-SCHEMA.nocfbot" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mja1nb3s1 RnJvbSA3ODJiNWU1NDgzNmZkYjhmNmE1NWU2NjkyZGM2NTdjYWJlZDc0NDA2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTcgRGVjIDIwMjUgMTU6MzE6MTcgKzA4MDAKU3ViamVjdDogW1BBVENIIHY4 IDEvMl0gRG9uJ3QgdHJ5IHRvIHJlLW9yZGVyIHRoZSBzdWJjb21tYW5kcyBvZiBDUkVBVEUgU0NI RU1BCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1V VEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Cgp0cmFuc2Zvcm1DcmVhdGVTY2hl bWFTdG10RWxlbWVudHMgaGFzIGFsd2F5cyBiZWxpZXZlZCB0aGF0IGl0IGlzCnN1cHBvc2VkIHRv IHJlLW9yZGVyIHRoZSBzdWJjb21tYW5kcyBvZiBDUkVBVEUgU0NIRU1BIGludG8gYSBzYWZlCmV4 ZWN1dGlvbiBvcmRlci4gIEhvd2V2ZXIsIGl0IGlzIG5vd2hlcmUgbmVhciBiZWluZyBjYXBhYmxl IG9mIGRvaW5nCnRoYXQgY29ycmVjdGx5LiAgTm9yIGlzIHRoZXJlIHJlYXNvbiB0byB0aGluayB0 aGF0IGl0IGV2ZXIgd2lsbCBiZSwKb3IgdGhhdCB0aGF0IGlzIGEgd2VsbC1kZWZpbmVkIHJlcXVp cmVtZW50LCBvciB0aGF0IHRoZXJlJ3MgYW55IGJhc2lzCmluIHRoZSBTUUwgc3RhbmRhcmQgZm9y IGl0LiAgTW9yZW92ZXIsIHRoZSBwcm9ibGVtIHdpbGwgZ2V0IHdvcnNlIGFzCndlIGFkZCBtb3Jl IHN1YmNvbW1hbmQgdHlwZXMuICBMZXQncyBqdXN0IGRyb3AgdGhlIHdob2xlIGlkZWEgYW5kCmV4 ZWN1dGUgdGhlIGNvbW1hbmRzIGluIHRoZSBvcmRlciBnaXZlbiwgd2hpY2ggc2VlbXMgbGlrZSBh IG11Y2ggbGVzcwphc3RvbmlzaG1lbnQtcHJvbmUgZGVmaW5pdGlvbiBhbnl3YXkuCgpBbG9uZyB0 aGUgd2F5LCBwYXNzIGRvd24gYSBQYXJzZVN0YXRlIHNvIHRoYXQgd2UgY2FuIHByb3ZpZGUgYW4K ZXJyb3IgY3Vyc29yIGZvciB0aGUgIndyb25nIHNjaGVtYSBuYW1lIiBlcnJvciwgYW5kIGZpeAp0 cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxlbWVudHMgc28gdGhhdCBpdCBkb2Vzbid0IHNjcmli YmxlCm9uIHRoZSBwYXJzZXRyZWUgcGFzc2VkIHRvIGl0LgoKTm90ZTogVGhpcyB3aWxsIGNhdXNl IGNvbXBhdGliaWxpdHkgaXNzdWUsCmZvciBleGFtcGxlOgpDUkVBVEUgU0NIRU1BIHJlZ3Jlc3Nf c2NoZW1hXzIKICBDUkVBVEUgVklFVyBhYmNkX3ZpZXcgQVMgU0VMRUNUIGEgRlJPTSBhYmNkCiAg Q1JFQVRFIFRBQkxFIGFiY2QgKGEgaW50KTsKCldpdGggdGhlIHBhdGNoLCBpdCB3aWxsIHRocm93 IGFuIGVycm9yLCB3aGVyZWFzIG9uIEhFQUQgaXQgd29u4oCZdC4KCkRpc2N1c3Npb246IGh0dHBz Oi8vcG9zdGdyLmVzL20vMTA3NTQyNS4xNzMyOTkzNjg4QHNzcy5wZ2gucGEudXMKLS0tCiBkb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbCAgICAgICAgIHwgIDEwICstCiBzcmMvYmFj a2VuZC9jb21tYW5kcy9leHRlbnNpb24uYyAgICAgICAgICAgIHwgICA3ICstCiBzcmMvYmFja2Vu ZC9jb21tYW5kcy9zY2hlbWFjbWRzLmMgICAgICAgICAgIHwgIDE1ICsrLQogc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3V0aWxjbWQuYyAgICAgICAgICB8IDEzNiArKysrKysrKy0tLS0tLS0tLS0t LQogc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICB8ICAgMyArLQog c3JjL2luY2x1ZGUvY29tbWFuZHMvc2NoZW1hY21kcy5oICAgICAgICAgICB8ICAgNyArLQogc3Jj L2luY2x1ZGUvcGFyc2VyL3BhcnNlX3V0aWxjbWQuaCAgICAgICAgICB8ICAgMyArLQogc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfc2NoZW1hLm91dCB8ICAzNyArKysrKysKIHNyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3ZpZXcub3V0ICAgfCAgIDIgKwogc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ldmVudF90cmlnZ2VyLm91dCB8ICAgMiArLQogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9uYW1lc3BhY2Uub3V0ICAgICB8ICAgNyArLQogc3JjL3Rlc3QvcmVncmVz cy9zcWwvY3JlYXRlX3NjaGVtYS5zcWwgICAgICB8ICAgNSArCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC9uYW1lc3BhY2Uuc3FsICAgICAgICAgIHwgICA4ICstCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlw ZWRlZnMubGlzdCAgICAgICAgICAgIHwgICAxIC0KIDE0IGZpbGVzIGNoYW5nZWQsIDEyNSBpbnNl cnRpb25zKCspLCAxMTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfc2NoZW1hLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dt bAppbmRleCBlZDY5Mjk4Y2NjNi4uNjI1NzkzYTZiNjcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Nj aGVtYS5zZ21sCkBAIC0xOTMsMTIgKzE5MywxMCBAQCBDUkVBVEUgVklFVyBob2xseXdvb2Qud2lu bmVycyBBUwogICA8L3BhcmE+CiAKICAgPHBhcmE+Ci0gICBUaGUgU1FMIHN0YW5kYXJkIHNwZWNp ZmllcyB0aGF0IHRoZSBzdWJjb21tYW5kcyBpbiA8Y29tbWFuZD5DUkVBVEUKLSAgIFNDSEVNQTwv Y29tbWFuZD4gY2FuIGFwcGVhciBpbiBhbnkgb3JkZXIuICBUaGUgcHJlc2VudAotICAgPHByb2R1 Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdAot ICAgaGFuZGxlIGFsbCBjYXNlcyBvZiBmb3J3YXJkIHJlZmVyZW5jZXMgaW4gc3ViY29tbWFuZHM7 IGl0IG1pZ2h0Ci0gICBzb21ldGltZXMgYmUgbmVjZXNzYXJ5IHRvIHJlb3JkZXIgdGhlIHN1YmNv bW1hbmRzIGluIG9yZGVyIHRvIGF2b2lkCi0gICBmb3J3YXJkIHJlZmVyZW5jZXMuCisgICA8cHJv ZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGV4ZWN1dGVzIHRoZSBzdWJjb21tYW5k cworICAgaW4gPGNvbW1hbmQ+Q1JFQVRFIFNDSEVNQTwvY29tbWFuZD4gaW4gdGhlIG9yZGVyIGdp dmVuLiAgT3RoZXIKKyAgIGltcGxlbWVudGF0aW9ucyBtYXkgdHJ5IHRvIHJlYXJyYW5nZSB0aGUg c3ViY29tbWFuZHMgaW50byBkZXBlbmRlbmN5CisgICBvcmRlciwgYnV0IHRoYXQgaXMgaGFyZCBp ZiBub3QgaW1wb3NzaWJsZSB0byBkbyBjb3JyZWN0bHkuCiAgIDwvcGFyYT4KIAogICA8cGFyYT4K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4dGVuc2lvbi5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvZXh0ZW5zaW9uLmMKaW5kZXggYzQzYjc0ZTMxOWUuLjU4ZTI0MjFiMDA4IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHRlbnNpb24uYworKysgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9leHRlbnNpb24uYwpAQCAtMTc3MywxNCArMTc3MywxNyBAQCBDcmVhdGVF eHRlbnNpb25JbnRlcm5hbChjaGFyICpleHRlbnNpb25OYW1lLAogCiAJCWlmICghT2lkSXNWYWxp ZChzY2hlbWFPaWQpKQogCQl7CisJCQlQYXJzZVN0YXRlICpwc3RhdGUgPSBtYWtlX3BhcnNlc3Rh dGUoTlVMTCk7CiAJCQlDcmVhdGVTY2hlbWFTdG10ICpjc3N0bXQgPSBtYWtlTm9kZShDcmVhdGVT Y2hlbWFTdG10KTsKIAorCQkJcHN0YXRlLT5wX3NvdXJjZXRleHQgPSAiKGdlbmVyYXRlZCBDUkVB VEUgU0NIRU1BIGNvbW1hbmQpIjsKKwogCQkJY3NzdG10LT5zY2hlbWFuYW1lID0gc2NoZW1hTmFt ZTsKIAkJCWNzc3RtdC0+YXV0aHJvbGUgPSBOVUxMOwkvKiB3aWxsIGJlIGNyZWF0ZWQgYnkgY3Vy cmVudCB1c2VyICovCiAJCQljc3N0bXQtPnNjaGVtYUVsdHMgPSBOSUw7CiAJCQljc3N0bXQtPmlm X25vdF9leGlzdHMgPSBmYWxzZTsKLQkJCUNyZWF0ZVNjaGVtYUNvbW1hbmQoY3NzdG10LCAiKGdl bmVyYXRlZCBDUkVBVEUgU0NIRU1BIGNvbW1hbmQpIiwKLQkJCQkJCQkJLTEsIC0xKTsKKworCQkJ Q3JlYXRlU2NoZW1hQ29tbWFuZChwc3RhdGUsIGNzc3RtdCwgLTEsIC0xKTsKIAogCQkJLyoKIAkJ CSAqIENyZWF0ZVNjaGVtYUNvbW1hbmQgaW5jbHVkZXMgQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQs IHNvIG5ldwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2NoZW1hY21kcy5jIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvc2NoZW1hY21kcy5jCmluZGV4IDNjYzE0NzIxMDNhLi4wOTky OGM1OGQ5ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2NoZW1hY21kcy5jCisr KyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NjaGVtYWNtZHMuYwpAQCAtNDksNyArNDksNyBAQCBz dGF0aWMgdm9pZCBBbHRlclNjaGVtYU93bmVyX2ludGVybmFsKEhlYXBUdXBsZSB0dXAsIFJlbGF0 aW9uIHJlbCwgT2lkIG5ld093bmVySQogICogYSBzdWJxdWVyeS4KICAqLwogT2lkCi1DcmVhdGVT Y2hlbWFDb21tYW5kKENyZWF0ZVNjaGVtYVN0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3Ry aW5nLAorQ3JlYXRlU2NoZW1hQ29tbWFuZChQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNjaGVt YVN0bXQgKnN0bXQsCiAJCQkJCWludCBzdG10X2xvY2F0aW9uLCBpbnQgc3RtdF9sZW4pCiB7CiAJ Y29uc3QgY2hhciAqc2NoZW1hTmFtZSA9IHN0bXQtPnNjaGVtYW5hbWU7CkBAIC0xODksMTIgKzE4 OSwxMyBAQCBDcmVhdGVTY2hlbWFDb21tYW5kKENyZWF0ZVNjaGVtYVN0bXQgKnN0bXQsIGNvbnN0 IGNoYXIgKnF1ZXJ5U3RyaW5nLAogCiAJLyoKIAkgKiBFeGFtaW5lIHRoZSBsaXN0IG9mIGNvbW1h bmRzIGVtYmVkZGVkIGluIHRoZSBDUkVBVEUgU0NIRU1BIGNvbW1hbmQsIGFuZAotCSAqIHJlb3Jn YW5pemUgdGhlbSBpbnRvIGEgc2VxdWVudGlhbGx5IGV4ZWN1dGFibGUgb3JkZXIgd2l0aCBubyBm b3J3YXJkCi0JICogcmVmZXJlbmNlcy4gIE5vdGUgdGhhdCB0aGUgcmVzdWx0IGlzIHN0aWxsIGEg bGlzdCBvZiByYXcgcGFyc2V0cmVlcyAtLS0KLQkgKiB3ZSBjYW5ub3QsIGluIGdlbmVyYWwsIHJ1 biBwYXJzZSBhbmFseXNpcyBvbiBvbmUgc3RhdGVtZW50IHVudGlsIHdlCi0JICogaGF2ZSBhY3R1 YWxseSBleGVjdXRlZCB0aGUgcHJpb3Igb25lcy4KKwkgKiBkbyBwcmVsaW1pbmFyeSB0cmFuc2Zv cm1hdGlvbnMgKG1vc3RseSwgdmVyaWZ5IHRoYXQgbm9uZSBhcmUgdHJ5aW5nIHRvCisJICogY3Jl YXRlIG9iamVjdHMgb3V0c2lkZSB0aGUgbmV3IHNjaGVtYSkuICBOb3RlIHRoYXQgdGhlIHJlc3Vs dCBpcyBzdGlsbAorCSAqIGEgbGlzdCBvZiByYXcgcGFyc2V0cmVlcyAtLS0gd2UgY2Fubm90LCBp biBnZW5lcmFsLCBydW4gcGFyc2UgYW5hbHlzaXMKKwkgKiBvbiBvbmUgc3RhdGVtZW50IHVudGls IHdlIGhhdmUgYWN0dWFsbHkgZXhlY3V0ZWQgdGhlIHByaW9yIG9uZXMuCiAJICovCi0JcGFyc2V0 cmVlX2xpc3QgPSB0cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxlbWVudHMoc3RtdC0+c2NoZW1h RWx0cywKKwlwYXJzZXRyZWVfbGlzdCA9IHRyYW5zZm9ybUNyZWF0ZVNjaGVtYVN0bXRFbGVtZW50 cyhwc3RhdGUsCisJCQkJCQkJCQkJCQkJICAgc3RtdC0+c2NoZW1hRWx0cywKIAkJCQkJCQkJCQkJ CQkgICBzY2hlbWFOYW1lKTsKIAogCS8qCkBAIC0yMTksNyArMjIwLDcgQEAgQ3JlYXRlU2NoZW1h Q29tbWFuZChDcmVhdGVTY2hlbWFTdG10ICpzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywK IAogCQkvKiBkbyB0aGlzIHN0ZXAgKi8KIAkJUHJvY2Vzc1V0aWxpdHkod3JhcHBlciwKLQkJCQkJ ICAgcXVlcnlTdHJpbmcsCisJCQkJCSAgIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAogCQkJCQkgICBm YWxzZSwKIAkJCQkJICAgUFJPQ0VTU19VVElMSVRZX1NVQkNPTU1BTkQsCiAJCQkJCSAgIE5VTEws CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwppbmRleCAzNzViNDBiMjlhZi4uZjNmNjA0NTZl OGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwpAQCAtOTgsMTggKzk4LDYgQEAgdHlw ZWRlZiBzdHJ1Y3QKIAlib29sCQlvZlR5cGU7CQkJLyogdHJ1ZSBpZiBzdGF0ZW1lbnQgY29udGFp bnMgT0YgdHlwZW5hbWUgKi8KIH0gQ3JlYXRlU3RtdENvbnRleHQ7CiAKLS8qIFN0YXRlIHNoYXJl ZCBieSB0cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxlbWVudHMgYW5kIGl0cyBzdWJyb3V0aW5l cyAqLwotdHlwZWRlZiBzdHJ1Y3QKLXsKLQljb25zdCBjaGFyICpzY2hlbWFuYW1lOwkJLyogbmFt ZSBvZiBzY2hlbWEgKi8KLQlMaXN0CSAgICpzZXF1ZW5jZXM7CQkvKiBDUkVBVEUgU0VRVUVOQ0Ug aXRlbXMgKi8KLQlMaXN0CSAgICp0YWJsZXM7CQkJLyogQ1JFQVRFIFRBQkxFIGl0ZW1zICovCi0J TGlzdAkgICAqdmlld3M7CQkJLyogQ1JFQVRFIFZJRVcgaXRlbXMgKi8KLQlMaXN0CSAgICppbmRl eGVzOwkJLyogQ1JFQVRFIElOREVYIGl0ZW1zICovCi0JTGlzdAkgICAqdHJpZ2dlcnM7CQkvKiBD UkVBVEUgVFJJR0dFUiBpdGVtcyAqLwotCUxpc3QJICAgKmdyYW50czsJCQkvKiBHUkFOVCBpdGVt cyAqLwotfSBDcmVhdGVTY2hlbWFTdG10Q29udGV4dDsKLQogCiBzdGF0aWMgdm9pZCB0cmFuc2Zv cm1Db2x1bW5EZWZpbml0aW9uKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsCiAJCQkJCQkJCQkgIENv bHVtbkRlZiAqY29sdW1uKTsKQEAgLTEzNiw3ICsxMjQsOCBAQCBzdGF0aWMgdm9pZCB0cmFuc2Zv cm1DaGVja0NvbnN0cmFpbnRzKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsCiBzdGF0aWMgdm9pZCB0 cmFuc2Zvcm1Db25zdHJhaW50QXR0cnMoQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwKIAkJCQkJCQkJ CSBMaXN0ICpjb25zdHJhaW50TGlzdCk7CiBzdGF0aWMgdm9pZCB0cmFuc2Zvcm1Db2x1bW5UeXBl KENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIENvbHVtbkRlZiAqY29sdW1uKTsKLXN0YXRpYyB2b2lk IHNldFNjaGVtYU5hbWUoY29uc3QgY2hhciAqY29udGV4dF9zY2hlbWEsIGNoYXIgKipzdG10X3Nj aGVtYV9uYW1lKTsKK3N0YXRpYyB2b2lkIGNoZWNrU2NoZW1hTmFtZShQYXJzZVN0YXRlICpwc3Rh dGUsIGNvbnN0IGNoYXIgKmNvbnRleHRfc2NoZW1hLAorCQkJCQkJCVJhbmdlVmFyICpyZWxhdGlv bik7CiBzdGF0aWMgdm9pZCB0cmFuc2Zvcm1QYXJ0aXRpb25DbWQoQ3JlYXRlU3RtdENvbnRleHQg KmN4dCwgUGFydGl0aW9uQm91bmRTcGVjICpib3VuZCk7CiBzdGF0aWMgTGlzdCAqdHJhbnNmb3Jt UGFydGl0aW9uUmFuZ2VCb3VuZHMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpibGlzdCwKIAkJ CQkJCQkJCQkgICBSZWxhdGlvbiBwYXJlbnQpOwpAQCAtNDM4OCw1MSArNDM3NywzNSBAQCB0cmFu c2Zvcm1Db2x1bW5UeXBlKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIENvbHVtbkRlZiAqY29sdW1u KQogICogdHJhbnNmb3JtQ3JlYXRlU2NoZW1hU3RtdEVsZW1lbnRzIC0KICAqCSAgYW5hbHl6ZXMg dGhlIGVsZW1lbnRzIG9mIGEgQ1JFQVRFIFNDSEVNQSBzdGF0ZW1lbnQKICAqCi0gKiBTcGxpdCB0 aGUgc2NoZW1hIGVsZW1lbnQgbGlzdCBmcm9tIGEgQ1JFQVRFIFNDSEVNQSBzdGF0ZW1lbnQgaW50 bwotICogaW5kaXZpZHVhbCBjb21tYW5kcyBhbmQgcGxhY2UgdGhlbSBpbiB0aGUgcmVzdWx0IGxp c3QgaW4gYW4gb3JkZXIKLSAqIHN1Y2ggdGhhdCB0aGVyZSBhcmUgbm8gZm9yd2FyZCByZWZlcmVu Y2VzIChlLmcuIEdSQU5UIHRvIGEgdGFibGUKLSAqIGNyZWF0ZWQgbGF0ZXIgaW4gdGhlIGxpc3Qp LiBOb3RlIHRoYXQgdGhlIGxvZ2ljIHdlIHVzZSBmb3IgZGV0ZXJtaW5pbmcKLSAqIGZvcndhcmQg cmVmZXJlbmNlcyBpcyBwcmVzZW50bHkgcXVpdGUgaW5jb21wbGV0ZS4KKyAqIFRoaXMgaXMgbm93 IHNvbWV3aGF0IHZlc3RpZ2lhbDogaXRzIG9ubHkgcmVhbCByZXNwb25zaWJpbGl0eSBpcyB0byBj b21wbGFpbgorICogaWYgYW55IG9mIHRoZSBlbGVtZW50cyBhcmUgdHJ5aW5nIHRvIGNyZWF0ZSBv YmplY3RzIG91dHNpZGUgdGhlIG5ldyBzY2hlbWEuCisgKiBXZSB1c2VkIHRvIHRyeSB0byByZS1v cmRlciB0aGUgY29tbWFuZHMgaW4gYSB3YXkgdGhhdCB3b3VsZCB3b3JrIGV2ZW4gaWYKKyAqIHRo ZSB1c2VyLXdyaXR0ZW4gb3JkZXIgd291bGQgbm90LCBidXQgdGhhdCdzIHRvbyBoYXJkIChwZXJo YXBzIGltcG9zc2libGUpCisgKiB0byBkbyBjb3JyZWN0bHkgd2l0aCBub3QteWV0LXBhcnNlLWFu YWx5emVkIGNvbW1hbmRzLiAgTm93IHdlJ2xsIGp1c3QKKyAqIGV4ZWN1dGUgdGhlIGVsZW1lbnRz IGluIHRoZSBvcmRlciBnaXZlbi4KICAqCiAgKiAic2NoZW1hTmFtZSIgaXMgdGhlIG5hbWUgb2Yg dGhlIHNjaGVtYSB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgdGhlIGNyZWF0aW9uCi0gKiBvZiB0aGUg b2JqZWN0cyBsaXN0ZWQsIHRoYXQgbWF5IGJlIGNvbXBpbGVkIGZyb20gdGhlIHNjaGVtYSBuYW1l IGRlZmluZWQKKyAqIG9mIHRoZSBvYmplY3RzIGxpc3RlZC4gIEl0IG1heSBiZSBvYnRhaW5lZCBm cm9tIHRoZSBzY2hlbWEgbmFtZSBkZWZpbmVkCiAgKiBpbiB0aGUgc3RhdGVtZW50IG9yIGEgcm9s ZSBzcGVjaWZpY2F0aW9uLgogICoKLSAqIFNRTCBhbHNvIGFsbG93cyBjb25zdHJhaW50cyB0byBt YWtlIGZvcndhcmQgcmVmZXJlbmNlcywgc28gdGh1bWIgdGhyb3VnaAotICogdGhlIHRhYmxlIGNv bHVtbnMgYW5kIG1vdmUgZm9yd2FyZCByZWZlcmVuY2VzIHRvIGEgcG9zdGVyaW9yIGFsdGVyLXRh YmxlCi0gKiBjb21tYW5kLgotICoKICAqIFRoZSByZXN1bHQgaXMgYSBsaXN0IG9mIHBhcnNlIG5v ZGVzIHRoYXQgc3RpbGwgbmVlZCB0byBiZSBhbmFseXplZCAtLS0KICAqIGJ1dCB3ZSBjYW4ndCBh bmFseXplIHRoZSBsYXRlciBjb21tYW5kcyB1bnRpbCB3ZSd2ZSBleGVjdXRlZCB0aGUgZWFybGll cgogICogb25lcywgYmVjYXVzZSBvZiBwb3NzaWJsZSBpbnRlci1vYmplY3QgcmVmZXJlbmNlcy4K LSAqCi0gKiBOb3RlOiB0aGlzIGJyZWFrcyB0aGUgcnVsZXMgYSBsaXR0bGUgYml0IGJ5IG1vZGlm eWluZyBzY2hlbWEtbmFtZSBmaWVsZHMKLSAqIHdpdGhpbiBwYXNzZWQtaW4gc3RydWN0cy4gIEhv d2V2ZXIsIHRoZSB0cmFuc2Zvcm1hdGlvbiB3b3VsZCBiZSB0aGUgc2FtZQotICogaWYgZG9uZSBv dmVyLCBzbyBpdCBzaG91bGQgYmUgYWxsIHJpZ2h0IHRvIHNjcmliYmxlIG9uIHRoZSBpbnB1dCB0 byB0aGlzCi0gKiBleHRlbnQuCiAgKi8KIExpc3QgKgotdHJhbnNmb3JtQ3JlYXRlU2NoZW1hU3Rt dEVsZW1lbnRzKExpc3QgKnNjaGVtYUVsdHMsIGNvbnN0IGNoYXIgKnNjaGVtYU5hbWUpCit0cmFu c2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxlbWVudHMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpz Y2hlbWFFbHRzLAorCQkJCQkJCQkgIGNvbnN0IGNoYXIgKnNjaGVtYU5hbWUpCiB7Ci0JQ3JlYXRl U2NoZW1hU3RtdENvbnRleHQgY3h0OwotCUxpc3QJICAgKnJlc3VsdDsKLQlMaXN0Q2VsbCAgICpl bGVtZW50czsKLQotCWN4dC5zY2hlbWFuYW1lID0gc2NoZW1hTmFtZTsKLQljeHQuc2VxdWVuY2Vz ID0gTklMOwotCWN4dC50YWJsZXMgPSBOSUw7Ci0JY3h0LnZpZXdzID0gTklMOwotCWN4dC5pbmRl eGVzID0gTklMOwotCWN4dC50cmlnZ2VycyA9IE5JTDsKLQljeHQuZ3JhbnRzID0gTklMOworCUxp c3QJICAgKmVsZW1lbnRzID0gTklMOworCUxpc3RDZWxsICAgKmxjOwogCiAJLyoKLQkgKiBSdW4g dGhyb3VnaCBlYWNoIHNjaGVtYSBlbGVtZW50IGluIHRoZSBzY2hlbWEgZWxlbWVudCBsaXN0LiBT ZXBhcmF0ZQotCSAqIHN0YXRlbWVudHMgYnkgdHlwZSwgYW5kIGRvIHByZWxpbWluYXJ5IGFuYWx5 c2lzLgorCSAqIFJ1biB0aHJvdWdoIGVhY2ggc2NoZW1hIGVsZW1lbnQgaW4gdGhlIHNjaGVtYSBl bGVtZW50IGxpc3QuICBDaGVjaworCSAqIHRhcmdldCBzY2hlbWEgbmFtZXMsIGFuZCBjb2xsZWN0 IHRoZSBsaXN0IG9mIGFjdGlvbnMgdG8gYmUgZG9uZS4KIAkgKi8KLQlmb3JlYWNoKGVsZW1lbnRz LCBzY2hlbWFFbHRzKQorCWZvcmVhY2gobGMsIHNjaGVtYUVsdHMpCiAJewotCQlOb2RlCSAgICpl bGVtZW50ID0gbGZpcnN0KGVsZW1lbnRzKTsKKwkJTm9kZQkgICAqZWxlbWVudCA9IGxmaXJzdChs Yyk7CiAKIAkJc3dpdGNoIChub2RlVGFnKGVsZW1lbnQpKQogCQl7CkBAIC00NDQwLDggKzQ0MTMs OCBAQCB0cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxlbWVudHMoTGlzdCAqc2NoZW1hRWx0cywg Y29uc3QgY2hhciAqc2NoZW1hTmFtZSkKIAkJCQl7CiAJCQkJCUNyZWF0ZVNlcVN0bXQgKmVscCA9 IChDcmVhdGVTZXFTdG10ICopIGVsZW1lbnQ7CiAKLQkJCQkJc2V0U2NoZW1hTmFtZShjeHQuc2No ZW1hbmFtZSwgJmVscC0+c2VxdWVuY2UtPnNjaGVtYW5hbWUpOwotCQkJCQljeHQuc2VxdWVuY2Vz ID0gbGFwcGVuZChjeHQuc2VxdWVuY2VzLCBlbGVtZW50KTsKKwkJCQkJY2hlY2tTY2hlbWFOYW1l KHBzdGF0ZSwgc2NoZW1hTmFtZSwgZWxwLT5zZXF1ZW5jZSk7CisJCQkJCWVsZW1lbnRzID0gbGFw cGVuZChlbGVtZW50cywgZWxlbWVudCk7CiAJCQkJfQogCQkJCWJyZWFrOwogCkBAIC00NDQ5LDEy ICs0NDIyLDggQEAgdHJhbnNmb3JtQ3JlYXRlU2NoZW1hU3RtdEVsZW1lbnRzKExpc3QgKnNjaGVt YUVsdHMsIGNvbnN0IGNoYXIgKnNjaGVtYU5hbWUpCiAJCQkJewogCQkJCQlDcmVhdGVTdG10ICpl bHAgPSAoQ3JlYXRlU3RtdCAqKSBlbGVtZW50OwogCi0JCQkJCXNldFNjaGVtYU5hbWUoY3h0LnNj aGVtYW5hbWUsICZlbHAtPnJlbGF0aW9uLT5zY2hlbWFuYW1lKTsKLQotCQkJCQkvKgotCQkJCQkg KiBYWFggdG9kbzogZGVhbCB3aXRoIGNvbnN0cmFpbnRzCi0JCQkJCSAqLwotCQkJCQljeHQudGFi bGVzID0gbGFwcGVuZChjeHQudGFibGVzLCBlbGVtZW50KTsKKwkJCQkJY2hlY2tTY2hlbWFOYW1l KHBzdGF0ZSwgc2NoZW1hTmFtZSwgZWxwLT5yZWxhdGlvbik7CisJCQkJCWVsZW1lbnRzID0gbGFw cGVuZChlbGVtZW50cywgZWxlbWVudCk7CiAJCQkJfQogCQkJCWJyZWFrOwogCkBAIC00NDYyLDEy ICs0NDMxLDggQEAgdHJhbnNmb3JtQ3JlYXRlU2NoZW1hU3RtdEVsZW1lbnRzKExpc3QgKnNjaGVt YUVsdHMsIGNvbnN0IGNoYXIgKnNjaGVtYU5hbWUpCiAJCQkJewogCQkJCQlWaWV3U3RtdCAgICpl bHAgPSAoVmlld1N0bXQgKikgZWxlbWVudDsKIAotCQkJCQlzZXRTY2hlbWFOYW1lKGN4dC5zY2hl bWFuYW1lLCAmZWxwLT52aWV3LT5zY2hlbWFuYW1lKTsKLQotCQkJCQkvKgotCQkJCQkgKiBYWFgg dG9kbzogZGVhbCB3aXRoIHJlZmVyZW5jZXMgYmV0d2VlbiB2aWV3cwotCQkJCQkgKi8KLQkJCQkJ Y3h0LnZpZXdzID0gbGFwcGVuZChjeHQudmlld3MsIGVsZW1lbnQpOworCQkJCQljaGVja1NjaGVt YU5hbWUocHN0YXRlLCBzY2hlbWFOYW1lLCBlbHAtPnZpZXcpOworCQkJCQllbGVtZW50cyA9IGxh cHBlbmQoZWxlbWVudHMsIGVsZW1lbnQpOwogCQkJCX0KIAkJCQlicmVhazsKIApAQCAtNDQ3NSw4 ICs0NDQwLDggQEAgdHJhbnNmb3JtQ3JlYXRlU2NoZW1hU3RtdEVsZW1lbnRzKExpc3QgKnNjaGVt YUVsdHMsIGNvbnN0IGNoYXIgKnNjaGVtYU5hbWUpCiAJCQkJewogCQkJCQlJbmRleFN0bXQgICpl bHAgPSAoSW5kZXhTdG10ICopIGVsZW1lbnQ7CiAKLQkJCQkJc2V0U2NoZW1hTmFtZShjeHQuc2No ZW1hbmFtZSwgJmVscC0+cmVsYXRpb24tPnNjaGVtYW5hbWUpOwotCQkJCQljeHQuaW5kZXhlcyA9 IGxhcHBlbmQoY3h0LmluZGV4ZXMsIGVsZW1lbnQpOworCQkJCQljaGVja1NjaGVtYU5hbWUocHN0 YXRlLCBzY2hlbWFOYW1lLCBlbHAtPnJlbGF0aW9uKTsKKwkJCQkJZWxlbWVudHMgPSBsYXBwZW5k KGVsZW1lbnRzLCBlbGVtZW50KTsKIAkJCQl9CiAJCQkJYnJlYWs7CiAKQEAgLTQ0ODQsMTMgKzQ0 NDksMTMgQEAgdHJhbnNmb3JtQ3JlYXRlU2NoZW1hU3RtdEVsZW1lbnRzKExpc3QgKnNjaGVtYUVs dHMsIGNvbnN0IGNoYXIgKnNjaGVtYU5hbWUpCiAJCQkJewogCQkJCQlDcmVhdGVUcmlnU3RtdCAq ZWxwID0gKENyZWF0ZVRyaWdTdG10ICopIGVsZW1lbnQ7CiAKLQkJCQkJc2V0U2NoZW1hTmFtZShj eHQuc2NoZW1hbmFtZSwgJmVscC0+cmVsYXRpb24tPnNjaGVtYW5hbWUpOwotCQkJCQljeHQudHJp Z2dlcnMgPSBsYXBwZW5kKGN4dC50cmlnZ2VycywgZWxlbWVudCk7CisJCQkJCWNoZWNrU2NoZW1h TmFtZShwc3RhdGUsIHNjaGVtYU5hbWUsIGVscC0+cmVsYXRpb24pOworCQkJCQllbGVtZW50cyA9 IGxhcHBlbmQoZWxlbWVudHMsIGVsZW1lbnQpOwogCQkJCX0KIAkJCQlicmVhazsKIAogCQkJY2Fz ZSBUX0dyYW50U3RtdDoKLQkJCQljeHQuZ3JhbnRzID0gbGFwcGVuZChjeHQuZ3JhbnRzLCBlbGVt ZW50KTsKKwkJCQllbGVtZW50cyA9IGxhcHBlbmQoZWxlbWVudHMsIGVsZW1lbnQpOwogCQkJCWJy ZWFrOwogCiAJCQlkZWZhdWx0OgpAQCAtNDQ5OSwzMiArNDQ2NCwzOSBAQCB0cmFuc2Zvcm1DcmVh dGVTY2hlbWFTdG10RWxlbWVudHMoTGlzdCAqc2NoZW1hRWx0cywgY29uc3QgY2hhciAqc2NoZW1h TmFtZSkKIAkJfQogCX0KIAotCXJlc3VsdCA9IE5JTDsKLQlyZXN1bHQgPSBsaXN0X2NvbmNhdChy ZXN1bHQsIGN4dC5zZXF1ZW5jZXMpOwotCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJlc3VsdCwgY3h0 LnRhYmxlcyk7Ci0JcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQudmlld3MpOwotCXJl c3VsdCA9IGxpc3RfY29uY2F0KHJlc3VsdCwgY3h0LmluZGV4ZXMpOwotCXJlc3VsdCA9IGxpc3Rf Y29uY2F0KHJlc3VsdCwgY3h0LnRyaWdnZXJzKTsKLQlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1 bHQsIGN4dC5ncmFudHMpOwotCi0JcmV0dXJuIHJlc3VsdDsKKwlyZXR1cm4gZWxlbWVudHM7CiB9 CiAKIC8qCi0gKiBzZXRTY2hlbWFOYW1lCi0gKgkJU2V0IG9yIGNoZWNrIHNjaGVtYSBuYW1lIGlu IGFuIGVsZW1lbnQgb2YgYSBDUkVBVEUgU0NIRU1BIGNvbW1hbmQKKyAqIGNoZWNrU2NoZW1hTmFt ZQorICoJCUNoZWNrIHNjaGVtYSBuYW1lIGluIGFuIGVsZW1lbnQgb2YgYSBDUkVBVEUgU0NIRU1B IGNvbW1hbmQKKyAqCisgKiBJdCdzIG9rYXkgaWYgdGhlIGNvbW1hbmQgZG9lc24ndCBzcGVjaWZ5 IGEgdGFyZ2V0IHNjaGVtYSBuYW1lLCBiZWNhdXNlCisgKiBDcmVhdGVTY2hlbWFDb21tYW5kIHdp bGwgc2V0IHVwIHRoZSBkZWZhdWx0IGNyZWF0aW9uIHNjaGVtYSB0byBiZSB0aGUKKyAqIG5ldyBz Y2hlbWEuICBCdXQgaWYgYSB0YXJnZXQgc2NoZW1hIG5hbWUgaXMgZ2l2ZW4sIGl0IGhhZCBiZXR0 ZXIgbWF0Y2guCisgKiBXZSBhbHNvIGhhdmUgdG8gY2hlY2sgdGhhdCB0aGUgY29tbWFuZCBkb2Vz bid0IHNheSBDUkVBVEUgVEVNUCwgc2luY2UKKyAqIHRoYXQgd291bGQgbGlrZXdpc2UgcHV0IHRo ZSBvYmplY3QgaW50byB0aGUgd3Jvbmcgc2NoZW1hLgogICovCiBzdGF0aWMgdm9pZAotc2V0U2No ZW1hTmFtZShjb25zdCBjaGFyICpjb250ZXh0X3NjaGVtYSwgY2hhciAqKnN0bXRfc2NoZW1hX25h bWUpCitjaGVja1NjaGVtYU5hbWUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBjaGFyICpjb250 ZXh0X3NjaGVtYSwKKwkJCQlSYW5nZVZhciAqcmVsYXRpb24pCiB7Ci0JaWYgKCpzdG10X3NjaGVt YV9uYW1lID09IE5VTEwpCi0JCSpzdG10X3NjaGVtYV9uYW1lID0gdW5jb25zdGlmeShjaGFyICos IGNvbnRleHRfc2NoZW1hKTsKLQllbHNlIGlmIChzdHJjbXAoY29udGV4dF9zY2hlbWEsICpzdG10 X3NjaGVtYV9uYW1lKSAhPSAwKQorCWlmIChyZWxhdGlvbi0+c2NoZW1hbmFtZSAhPSBOVUxMICYm CisJCXN0cmNtcChjb250ZXh0X3NjaGVtYSwgcmVsYXRpb24tPnNjaGVtYW5hbWUpICE9IDApCiAJ CWVyZXBvcnQoRVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1NDSEVNQV9ERUZJ TklUSU9OKSwKLQkJCQkgZXJybXNnKCJDUkVBVEUgc3BlY2lmaWVzIGEgc2NoZW1hICglcykgIgot CQkJCQkJImRpZmZlcmVudCBmcm9tIHRoZSBvbmUgYmVpbmcgY3JlYXRlZCAoJXMpIiwKLQkJCQkJ CSpzdG10X3NjaGVtYV9uYW1lLCBjb250ZXh0X3NjaGVtYSkpKTsKKwkJCQllcnJjb2RlKEVSUkNP REVfSU5WQUxJRF9TQ0hFTUFfREVGSU5JVElPTiksCisJCQkJZXJybXNnKCJDUkVBVEUgc3BlY2lm aWVzIGEgc2NoZW1hICglcykgZGlmZmVyZW50IGZyb20gdGhlIG9uZSBiZWluZyBjcmVhdGVkICgl cykiLAorCQkJCQkgICByZWxhdGlvbi0+c2NoZW1hbmFtZSwgY29udGV4dF9zY2hlbWEpLAorCQkJ CXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHJlbGF0aW9uLT5sb2NhdGlvbikpOworCisJaWYg KHJlbGF0aW9uLT5yZWxwZXJzaXN0ZW5jZSA9PSBSRUxQRVJTSVNURU5DRV9URU1QKQorCXsKKwkJ Lyogc3BlbGwgdGhpcyBlcnJvciB0aGUgc2FtZSBhcyBpbiBSYW5nZVZhckFkanVzdFJlbGF0aW9u UGVyc2lzdGVuY2UgKi8KKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5W QUxJRF9UQUJMRV9ERUZJTklUSU9OKSwKKwkJCQllcnJtc2coImNhbm5vdCBjcmVhdGUgdGVtcG9y YXJ5IHJlbGF0aW9uIGluIG5vbi10ZW1wb3Jhcnkgc2NoZW1hIiksCisJCQkJcGFyc2VyX2VycnBv c2l0aW9uKHBzdGF0ZSwgcmVsYXRpb24tPmxvY2F0aW9uKSk7CisJfQogfQogCiAvKgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxp dHkuYwppbmRleCBkMThhM2E2MGE0Ni4uNWU4Y2Q5N2YzYzMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3Rjb3AvdXRpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC0x MTE5LDggKzExMTksNyBAQCBQcm9jZXNzVXRpbGl0eVNsb3coUGFyc2VTdGF0ZSAqcHN0YXRlLAog CQkJCSAqIHJlbGF0aW9uIGFuZCBhdHRyaWJ1dGUgbWFuaXB1bGF0aW9uCiAJCQkJICovCiAJCQlj YXNlIFRfQ3JlYXRlU2NoZW1hU3RtdDoKLQkJCQlDcmVhdGVTY2hlbWFDb21tYW5kKChDcmVhdGVT Y2hlbWFTdG10ICopIHBhcnNldHJlZSwKLQkJCQkJCQkJCXF1ZXJ5U3RyaW5nLAorCQkJCUNyZWF0 ZVNjaGVtYUNvbW1hbmQocHN0YXRlLCBjYXN0Tm9kZShDcmVhdGVTY2hlbWFTdG10LCBwYXJzZXRy ZWUpLAogCQkJCQkJCQkJcHN0bXQtPnN0bXRfbG9jYXRpb24sCiAJCQkJCQkJCQlwc3RtdC0+c3Rt dF9sZW4pOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zY2hlbWFjbWRzLmgg Yi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zY2hlbWFjbWRzLmgKaW5kZXggODU1NzE3NmI2NmEuLjgz NTI2NWJiNjdjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zY2hlbWFjbWRzLmgK KysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2NoZW1hY21kcy5oCkBAIC0xNiwxMiArMTYsOSBA QAogI2RlZmluZSBTQ0hFTUFDTURTX0gKIAogI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWRkcmVz cy5oIgotI2luY2x1ZGUgIm5vZGVzL3BhcnNlbm9kZXMuaCIKLQotZXh0ZXJuIE9pZAlDcmVhdGVT Y2hlbWFDb21tYW5kKENyZWF0ZVNjaGVtYVN0bXQgKnN0bXQsCi0JCQkJCQkJCWNvbnN0IGNoYXIg KnF1ZXJ5U3RyaW5nLAotCQkJCQkJCQlpbnQgc3RtdF9sb2NhdGlvbiwgaW50IHN0bXRfbGVuKTsK KyNpbmNsdWRlICJwYXJzZXIvcGFyc2Vfbm9kZS5oIgogCitleHRlcm4gT2lkCUNyZWF0ZVNjaGVt YUNvbW1hbmQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTY2hlbWFTdG10ICpzdG10LCBpbnQg c3RtdF9sb2NhdGlvbiwgaW50IHN0bXRfbGVuKTsKIGV4dGVybiBPYmplY3RBZGRyZXNzIFJlbmFt ZVNjaGVtYShjb25zdCBjaGFyICpvbGRuYW1lLCBjb25zdCBjaGFyICpuZXduYW1lKTsKIGV4dGVy biBPYmplY3RBZGRyZXNzIEFsdGVyU2NoZW1hT3duZXIoY29uc3QgY2hhciAqbmFtZSwgT2lkIG5l d093bmVySWQpOwogZXh0ZXJuIHZvaWQgQWx0ZXJTY2hlbWFPd25lcl9vaWQoT2lkIHNjaGVtYW9p ZCwgT2lkIG5ld093bmVySWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNl X3V0aWxjbWQuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV91dGlsY21kLmgKaW5kZXggNDk2 NWZhYzQ0OTUuLmQxNTFiYmEwM2ViIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2VfdXRpbGNtZC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV91dGlsY21kLmgKQEAg LTMwLDcgKzMwLDggQEAgZXh0ZXJuIENyZWF0ZVN0YXRzU3RtdCAqdHJhbnNmb3JtU3RhdHNTdG10 KE9pZCByZWxpZCwgQ3JlYXRlU3RhdHNTdG10ICpzdG10LAogCQkJCQkJCQkJCSAgIGNvbnN0IGNo YXIgKnF1ZXJ5U3RyaW5nKTsKIGV4dGVybiB2b2lkIHRyYW5zZm9ybVJ1bGVTdG10KFJ1bGVTdG10 ICpzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywKIAkJCQkJCQkgIExpc3QgKiphY3Rpb25z LCBOb2RlICoqd2hlcmVDbGF1c2UpOwotZXh0ZXJuIExpc3QgKnRyYW5zZm9ybUNyZWF0ZVNjaGVt YVN0bXRFbGVtZW50cyhMaXN0ICpzY2hlbWFFbHRzLAorZXh0ZXJuIExpc3QgKnRyYW5zZm9ybUNy ZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkJCQkJCSAg IExpc3QgKnNjaGVtYUVsdHMsCiAJCQkJCQkJCQkJCSAgIGNvbnN0IGNoYXIgKnNjaGVtYU5hbWUp OwogZXh0ZXJuIFBhcnRpdGlvbkJvdW5kU3BlYyAqdHJhbnNmb3JtUGFydGl0aW9uQm91bmQoUGFy c2VTdGF0ZSAqcHN0YXRlLCBSZWxhdGlvbiBwYXJlbnQsCiAJCQkJCQkJCQkJCQkgICBQYXJ0aXRp b25Cb3VuZFNwZWMgKnNwZWMpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9jcmVhdGVfc2NoZW1hLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3Nj aGVtYS5vdXQKaW5kZXggOTMzMDJhMDdlZmMuLjM4NTMwYzI4MmE5IDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9zY2hlbWEub3V0CisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3NjaGVtYS5vdXQKQEAgLTksNTUgKzksOTIgQEAgQ1JFQVRF IFJPTEUgcmVncmVzc19jcmVhdGVfc2NoZW1hX3JvbGUgU1VQRVJVU0VSOwogQ1JFQVRFIFNDSEVN QSBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfY3JlYXRlX3NjaGVtYV9yb2xlCiAgIENSRUFURSBTRVFV RU5DRSBzY2hlbWFfbm90X2V4aXN0aW5nLnNlcTsKIEVSUk9SOiAgQ1JFQVRFIHNwZWNpZmllcyBh IHNjaGVtYSAoc2NoZW1hX25vdF9leGlzdGluZykgZGlmZmVyZW50IGZyb20gdGhlIG9uZSBiZWlu ZyBjcmVhdGVkIChyZWdyZXNzX2NyZWF0ZV9zY2hlbWFfcm9sZSkKK0xJTkUgMjogICBDUkVBVEUg U0VRVUVOQ0Ugc2NoZW1hX25vdF9leGlzdGluZy5zZXE7CisgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KIENSRUFURSBTQ0hFTUEgQVVUSE9SSVpBVElPTiByZWdyZXNzX2NyZWF0ZV9zY2hlbWFf cm9sZQogICBDUkVBVEUgVEFCTEUgc2NoZW1hX25vdF9leGlzdGluZy50YWIgKGlkIGludCk7CiBF UlJPUjogIENSRUFURSBzcGVjaWZpZXMgYSBzY2hlbWEgKHNjaGVtYV9ub3RfZXhpc3RpbmcpIGRp ZmZlcmVudCBmcm9tIHRoZSBvbmUgYmVpbmcgY3JlYXRlZCAocmVncmVzc19jcmVhdGVfc2NoZW1h X3JvbGUpCitMSU5FIDI6ICAgQ1JFQVRFIFRBQkxFIHNjaGVtYV9ub3RfZXhpc3RpbmcudGFiIChp ZCBpbnQpOworICAgICAgICAgICAgICAgICAgICAgICBeCiBDUkVBVEUgU0NIRU1BIEFVVEhPUkla QVRJT04gcmVncmVzc19jcmVhdGVfc2NoZW1hX3JvbGUKICAgQ1JFQVRFIFZJRVcgc2NoZW1hX25v dF9leGlzdGluZy52aWV3IEFTIFNFTEVDVCAxOwogRVJST1I6ICBDUkVBVEUgc3BlY2lmaWVzIGEg c2NoZW1hIChzY2hlbWFfbm90X2V4aXN0aW5nKSBkaWZmZXJlbnQgZnJvbSB0aGUgb25lIGJlaW5n IGNyZWF0ZWQgKHJlZ3Jlc3NfY3JlYXRlX3NjaGVtYV9yb2xlKQorTElORSAyOiAgIENSRUFURSBW SUVXIHNjaGVtYV9ub3RfZXhpc3RpbmcudmlldyBBUyBTRUxFQ1QgMTsKKyAgICAgICAgICAgICAg ICAgICAgICBeCiBDUkVBVEUgU0NIRU1BIEFVVEhPUklaQVRJT04gcmVncmVzc19jcmVhdGVfc2No ZW1hX3JvbGUKICAgQ1JFQVRFIElOREVYIE9OIHNjaGVtYV9ub3RfZXhpc3RpbmcudGFiIChpZCk7 CiBFUlJPUjogIENSRUFURSBzcGVjaWZpZXMgYSBzY2hlbWEgKHNjaGVtYV9ub3RfZXhpc3Rpbmcp IGRpZmZlcmVudCBmcm9tIHRoZSBvbmUgYmVpbmcgY3JlYXRlZCAocmVncmVzc19jcmVhdGVfc2No ZW1hX3JvbGUpCitMSU5FIDI6ICAgQ1JFQVRFIElOREVYIE9OIHNjaGVtYV9ub3RfZXhpc3Rpbmcu dGFiIChpZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIENSRUFURSBTQ0hFTUEgQVVU SE9SSVpBVElPTiByZWdyZXNzX2NyZWF0ZV9zY2hlbWFfcm9sZQogICBDUkVBVEUgVFJJR0dFUiBz Y2hlbWFfdHJpZyBCRUZPUkUgSU5TRVJUIE9OIHNjaGVtYV9ub3RfZXhpc3RpbmcudGFiCiAgIEVY RUNVVEUgRlVOQ1RJT04gc2NoZW1hX3RyaWcubm9fZnVuYygpOwogRVJST1I6ICBDUkVBVEUgc3Bl Y2lmaWVzIGEgc2NoZW1hIChzY2hlbWFfbm90X2V4aXN0aW5nKSBkaWZmZXJlbnQgZnJvbSB0aGUg b25lIGJlaW5nIGNyZWF0ZWQgKHJlZ3Jlc3NfY3JlYXRlX3NjaGVtYV9yb2xlKQorTElORSAyOiAg IENSRUFURSBUUklHR0VSIHNjaGVtYV90cmlnIEJFRk9SRSBJTlNFUlQgT04gc2NoZW1hX25vdF9l eGkuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KIC0tIEFnYWluLCB3aXRoIGEgcm9sZSBzcGVjaWZpY2F0aW9uIGFuZCBubyBzY2hlbWEg bmFtZXMuCiBTRVQgUk9MRSByZWdyZXNzX2NyZWF0ZV9zY2hlbWFfcm9sZTsKIENSRUFURSBTQ0hF TUEgQVVUSE9SSVpBVElPTiBDVVJSRU5UX1JPTEUKICAgQ1JFQVRFIFNFUVVFTkNFIHNjaGVtYV9u b3RfZXhpc3Rpbmcuc2VxOwogRVJST1I6ICBDUkVBVEUgc3BlY2lmaWVzIGEgc2NoZW1hIChzY2hl bWFfbm90X2V4aXN0aW5nKSBkaWZmZXJlbnQgZnJvbSB0aGUgb25lIGJlaW5nIGNyZWF0ZWQgKHJl Z3Jlc3NfY3JlYXRlX3NjaGVtYV9yb2xlKQorTElORSAyOiAgIENSRUFURSBTRVFVRU5DRSBzY2hl bWFfbm90X2V4aXN0aW5nLnNlcTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgXgogQ1JFQVRF IFNDSEVNQSBBVVRIT1JJWkFUSU9OIENVUlJFTlRfUk9MRQogICBDUkVBVEUgVEFCTEUgc2NoZW1h X25vdF9leGlzdGluZy50YWIgKGlkIGludCk7CiBFUlJPUjogIENSRUFURSBzcGVjaWZpZXMgYSBz Y2hlbWEgKHNjaGVtYV9ub3RfZXhpc3RpbmcpIGRpZmZlcmVudCBmcm9tIHRoZSBvbmUgYmVpbmcg Y3JlYXRlZCAocmVncmVzc19jcmVhdGVfc2NoZW1hX3JvbGUpCitMSU5FIDI6ICAgQ1JFQVRFIFRB QkxFIHNjaGVtYV9ub3RfZXhpc3RpbmcudGFiIChpZCBpbnQpOworICAgICAgICAgICAgICAgICAg ICAgICBeCiBDUkVBVEUgU0NIRU1BIEFVVEhPUklaQVRJT04gQ1VSUkVOVF9ST0xFCiAgIENSRUFU RSBWSUVXIHNjaGVtYV9ub3RfZXhpc3RpbmcudmlldyBBUyBTRUxFQ1QgMTsKIEVSUk9SOiAgQ1JF QVRFIHNwZWNpZmllcyBhIHNjaGVtYSAoc2NoZW1hX25vdF9leGlzdGluZykgZGlmZmVyZW50IGZy b20gdGhlIG9uZSBiZWluZyBjcmVhdGVkIChyZWdyZXNzX2NyZWF0ZV9zY2hlbWFfcm9sZSkKK0xJ TkUgMjogICBDUkVBVEUgVklFVyBzY2hlbWFfbm90X2V4aXN0aW5nLnZpZXcgQVMgU0VMRUNUIDE7 CisgICAgICAgICAgICAgICAgICAgICAgXgogQ1JFQVRFIFNDSEVNQSBBVVRIT1JJWkFUSU9OIENV UlJFTlRfUk9MRQogICBDUkVBVEUgSU5ERVggT04gc2NoZW1hX25vdF9leGlzdGluZy50YWIgKGlk KTsKIEVSUk9SOiAgQ1JFQVRFIHNwZWNpZmllcyBhIHNjaGVtYSAoc2NoZW1hX25vdF9leGlzdGlu ZykgZGlmZmVyZW50IGZyb20gdGhlIG9uZSBiZWluZyBjcmVhdGVkIChyZWdyZXNzX2NyZWF0ZV9z Y2hlbWFfcm9sZSkKK0xJTkUgMjogICBDUkVBVEUgSU5ERVggT04gc2NoZW1hX25vdF9leGlzdGlu Zy50YWIgKGlkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgXgogQ1JFQVRFIFNDSEVNQSBB VVRIT1JJWkFUSU9OIENVUlJFTlRfUk9MRQogICBDUkVBVEUgVFJJR0dFUiBzY2hlbWFfdHJpZyBC RUZPUkUgSU5TRVJUIE9OIHNjaGVtYV9ub3RfZXhpc3RpbmcudGFiCiAgIEVYRUNVVEUgRlVOQ1RJ T04gc2NoZW1hX3RyaWcubm9fZnVuYygpOwogRVJST1I6ICBDUkVBVEUgc3BlY2lmaWVzIGEgc2No ZW1hIChzY2hlbWFfbm90X2V4aXN0aW5nKSBkaWZmZXJlbnQgZnJvbSB0aGUgb25lIGJlaW5nIGNy ZWF0ZWQgKHJlZ3Jlc3NfY3JlYXRlX3NjaGVtYV9yb2xlKQorTElORSAyOiAgIENSRUFURSBUUklH R0VSIHNjaGVtYV90cmlnIEJFRk9SRSBJTlNFUlQgT04gc2NoZW1hX25vdF9leGkuLi4KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIEFn YWluLCB3aXRoIGEgc2NoZW1hIG5hbWUgYW5kIGEgcm9sZSBzcGVjaWZpY2F0aW9uLgogQ1JFQVRF IFNDSEVNQSByZWdyZXNzX3NjaGVtYV8xIEFVVEhPUklaQVRJT04gQ1VSUkVOVF9ST0xFCiAgIENS RUFURSBTRVFVRU5DRSBzY2hlbWFfbm90X2V4aXN0aW5nLnNlcTsKIEVSUk9SOiAgQ1JFQVRFIHNw ZWNpZmllcyBhIHNjaGVtYSAoc2NoZW1hX25vdF9leGlzdGluZykgZGlmZmVyZW50IGZyb20gdGhl IG9uZSBiZWluZyBjcmVhdGVkIChyZWdyZXNzX3NjaGVtYV8xKQorTElORSAyOiAgIENSRUFURSBT RVFVRU5DRSBzY2hlbWFfbm90X2V4aXN0aW5nLnNlcTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgXgogQ1JFQVRFIFNDSEVNQSByZWdyZXNzX3NjaGVtYV8xIEFVVEhPUklaQVRJT04gQ1VSUkVO VF9ST0xFCiAgIENSRUFURSBUQUJMRSBzY2hlbWFfbm90X2V4aXN0aW5nLnRhYiAoaWQgaW50KTsK IEVSUk9SOiAgQ1JFQVRFIHNwZWNpZmllcyBhIHNjaGVtYSAoc2NoZW1hX25vdF9leGlzdGluZykg ZGlmZmVyZW50IGZyb20gdGhlIG9uZSBiZWluZyBjcmVhdGVkIChyZWdyZXNzX3NjaGVtYV8xKQor TElORSAyOiAgIENSRUFURSBUQUJMRSBzY2hlbWFfbm90X2V4aXN0aW5nLnRhYiAoaWQgaW50KTsK KyAgICAgICAgICAgICAgICAgICAgICAgXgogQ1JFQVRFIFNDSEVNQSByZWdyZXNzX3NjaGVtYV8x IEFVVEhPUklaQVRJT04gQ1VSUkVOVF9ST0xFCiAgIENSRUFURSBWSUVXIHNjaGVtYV9ub3RfZXhp c3RpbmcudmlldyBBUyBTRUxFQ1QgMTsKIEVSUk9SOiAgQ1JFQVRFIHNwZWNpZmllcyBhIHNjaGVt YSAoc2NoZW1hX25vdF9leGlzdGluZykgZGlmZmVyZW50IGZyb20gdGhlIG9uZSBiZWluZyBjcmVh dGVkIChyZWdyZXNzX3NjaGVtYV8xKQorTElORSAyOiAgIENSRUFURSBWSUVXIHNjaGVtYV9ub3Rf ZXhpc3RpbmcudmlldyBBUyBTRUxFQ1QgMTsKKyAgICAgICAgICAgICAgICAgICAgICBeCiBDUkVB VEUgU0NIRU1BIHJlZ3Jlc3Nfc2NoZW1hXzEgQVVUSE9SSVpBVElPTiBDVVJSRU5UX1JPTEUKICAg Q1JFQVRFIElOREVYIE9OIHNjaGVtYV9ub3RfZXhpc3RpbmcudGFiIChpZCk7CiBFUlJPUjogIENS RUFURSBzcGVjaWZpZXMgYSBzY2hlbWEgKHNjaGVtYV9ub3RfZXhpc3RpbmcpIGRpZmZlcmVudCBm cm9tIHRoZSBvbmUgYmVpbmcgY3JlYXRlZCAocmVncmVzc19zY2hlbWFfMSkKK0xJTkUgMjogICBD UkVBVEUgSU5ERVggT04gc2NoZW1hX25vdF9leGlzdGluZy50YWIgKGlkKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgXgogQ1JFQVRFIFNDSEVNQSByZWdyZXNzX3NjaGVtYV8xIEFVVEhPUkla QVRJT04gQ1VSUkVOVF9ST0xFCiAgIENSRUFURSBUUklHR0VSIHNjaGVtYV90cmlnIEJFRk9SRSBJ TlNFUlQgT04gc2NoZW1hX25vdF9leGlzdGluZy50YWIKICAgRVhFQ1VURSBGVU5DVElPTiBzY2hl bWFfdHJpZy5ub19mdW5jKCk7CiBFUlJPUjogIENSRUFURSBzcGVjaWZpZXMgYSBzY2hlbWEgKHNj aGVtYV9ub3RfZXhpc3RpbmcpIGRpZmZlcmVudCBmcm9tIHRoZSBvbmUgYmVpbmcgY3JlYXRlZCAo cmVncmVzc19zY2hlbWFfMSkKK0xJTkUgMjogICBDUkVBVEUgVFJJR0dFUiBzY2hlbWFfdHJpZyBC RUZPUkUgSU5TRVJUIE9OIHNjaGVtYV9ub3RfZXhpLi4uCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBSRVNFVCBST0xFOworLS1lcnJvci4g Rm9yd2FyZCByZWZlcmVuY2UgaXMgbm90IGFsbG93ZWQuCitDUkVBVEUgU0NIRU1BIHJlZ3Jlc3Nf c2NoZW1hXzIKKyAgQ1JFQVRFIFZJRVcgYWJjZF92aWV3IEFTIFNFTEVDVCBhIEZST00gYWJjZAor ICBDUkVBVEUgVEFCTEUgYWJjZCAoYSBpbnQpOworRVJST1I6ICByZWxhdGlvbiAiYWJjZCIgZG9l cyBub3QgZXhpc3QKK0xJTkUgMjogICBDUkVBVEUgVklFVyBhYmNkX3ZpZXcgQVMgU0VMRUNUIGEg RlJPTSBhYmNkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgogLS0gQ2FzZXMgd2hlcmUgdGhlIHNjaGVtYSBjcmVhdGlvbiBzdWNjZWVkcy4KIC0tIFRo ZSBzY2hlbWEgY3JlYXRlZCBtYXRjaGVzIHRoZSByb2xlIG5hbWUuCiBDUkVBVEUgU0NIRU1BIEFV VEhPUklaQVRJT04gcmVncmVzc19jcmVhdGVfc2NoZW1hX3JvbGUKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3ZpZXcub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9jcmVhdGVfdmlldy5vdXQKaW5kZXggYmM0Zjc5OTM4YjMuLjYzY2Y0YjQzNzFkIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV92aWV3Lm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV92aWV3Lm91dApAQCAtMTI4LDYgKzEy OCw4IEBAIEVSUk9SOiAgY2Fubm90IGNyZWF0ZSB0ZW1wb3JhcnkgcmVsYXRpb24gaW4gbm9uLXRl bXBvcmFyeSBzY2hlbWEKIENSRUFURSBTQ0hFTUEgdGVzdF92aWV3X3NjaGVtYQogICAgIENSRUFU RSBURU1QIFZJRVcgdGVzdHZpZXcgQVMgU0VMRUNUIDE7CiBFUlJPUjogIGNhbm5vdCBjcmVhdGUg dGVtcG9yYXJ5IHJlbGF0aW9uIGluIG5vbi10ZW1wb3Jhcnkgc2NoZW1hCitMSU5FIDI6ICAgICBD UkVBVEUgVEVNUCBWSUVXIHRlc3R2aWV3IEFTIFNFTEVDVCAxOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCiAtLSBqb2luczogaWYgYW55IG9mIHRoZSBqb2luIHJlbGF0aW9ucyBhcmUg dGVtcG9yYXJ5LCB0aGUgdmlldwogLS0gc2hvdWxkIGFsc28gYmUgdGVtcG9yYXJ5CiAtLSBzaG91 bGQgYmUgbm9uLXRlbXAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXZl bnRfdHJpZ2dlci5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2V2ZW50X3RyaWdnZXIu b3V0CmluZGV4IDE2ZTQ1MzA3MDhjLi40YTdmZDJiYzU5YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ldmVudF90cmlnZ2VyLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2V2ZW50X3RyaWdnZXIub3V0CkBAIC00MjQsMTIgKzQyNCwxMiBAQCBOT1RJQ0U6 ICBFTkQ6IGNvbW1hbmRfdGFnPUNSRUFURSBUQUJMRSB0eXBlPXRhYmxlIGlkZW50aXR5PWV2dHRy aWcub25lCiBOT1RJQ0U6ICBFTkQ6IGNvbW1hbmRfdGFnPUNSRUFURSBJTkRFWCB0eXBlPWluZGV4 IGlkZW50aXR5PWV2dHRyaWcub25lX3BrZXkKIE5PVElDRTogIEVORDogY29tbWFuZF90YWc9QUxU RVIgU0VRVUVOQ0UgdHlwZT1zZXF1ZW5jZSBpZGVudGl0eT1ldnR0cmlnLm9uZV9jb2xfYV9zZXEK IE5PVElDRTogIEVORDogY29tbWFuZF90YWc9QUxURVIgU0VRVUVOQ0UgdHlwZT1zZXF1ZW5jZSBp ZGVudGl0eT1ldnR0cmlnLm9uZV9jb2xfY19zZXEKK05PVElDRTogIEVORDogY29tbWFuZF90YWc9 Q1JFQVRFIElOREVYIHR5cGU9aW5kZXggaWRlbnRpdHk9ZXZ0dHJpZy5vbmVfaWR4CiBOT1RJQ0U6 ICBFTkQ6IGNvbW1hbmRfdGFnPUNSRUFURSBUQUJMRSB0eXBlPXRhYmxlIGlkZW50aXR5PWV2dHRy aWcudHdvCiBOT1RJQ0U6ICBFTkQ6IGNvbW1hbmRfdGFnPUFMVEVSIFRBQkxFIHR5cGU9dGFibGUg aWRlbnRpdHk9ZXZ0dHJpZy50d28KIE5PVElDRTogIEVORDogY29tbWFuZF90YWc9Q1JFQVRFIFNF UVVFTkNFIHR5cGU9c2VxdWVuY2UgaWRlbnRpdHk9ZXZ0dHJpZy5pZF9jb2xfZF9zZXEKIE5PVElD RTogIEVORDogY29tbWFuZF90YWc9Q1JFQVRFIFRBQkxFIHR5cGU9dGFibGUgaWRlbnRpdHk9ZXZ0 dHJpZy5pZAogTk9USUNFOiAgRU5EOiBjb21tYW5kX3RhZz1BTFRFUiBTRVFVRU5DRSB0eXBlPXNl cXVlbmNlIGlkZW50aXR5PWV2dHRyaWcuaWRfY29sX2Rfc2VxCi1OT1RJQ0U6ICBFTkQ6IGNvbW1h bmRfdGFnPUNSRUFURSBJTkRFWCB0eXBlPWluZGV4IGlkZW50aXR5PWV2dHRyaWcub25lX2lkeAog LS0gUGFydGl0aW9uZWQgdGFibGVzIHdpdGggYSBwYXJ0aXRpb25lZCBpbmRleAogQ1JFQVRFIFRB QkxFIGV2dHRyaWcucGFydGVkICgKICAgICBpZCBpbnQgUFJJTUFSWSBLRVkpCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL25hbWVzcGFjZS5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL25hbWVzcGFjZS5vdXQKaW5kZXggZGJiZGE3MmQzOTUuLmQwMmYzZmQ2N2Q3 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL25hbWVzcGFjZS5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9uYW1lc3BhY2Uub3V0CkBAIC0xMCwxMyArMTAs MTAgQEAgU0VMRUNUIHBnX2NhdGFsb2cuc2V0X2NvbmZpZygnc2VhcmNoX3BhdGgnLCAnICcsIGZh bHNlKTsKICgxIHJvdykKIAogQ1JFQVRFIFNDSEVNQSB0ZXN0X25zX3NjaGVtYV8xCisgICAgICAg Q1JFQVRFIFRBQkxFIGFiYyAoYSBzZXJpYWwsIGIgaW50IFVOSVFVRSkKICAgICAgICBDUkVBVEUg VU5JUVVFIElOREVYIGFiY19hX2lkeCBPTiBhYmMgKGEpCiAgICAgICAgQ1JFQVRFIFZJRVcgYWJj X3ZpZXcgQVMKLSAgICAgICAgICAgICAgU0VMRUNUIGErMSBBUyBhLCBiKzEgQVMgYiBGUk9NIGFi YwotICAgICAgIENSRUFURSBUQUJMRSBhYmMgKAotICAgICAgICAgICAgICBhIHNlcmlhbCwKLSAg ICAgICAgICAgICAgYiBpbnQgVU5JUVVFCi0gICAgICAgKTsKKyAgICAgICAgICAgICAgU0VMRUNU IGErMSBBUyBhLCBiKzEgQVMgYiBGUk9NIGFiYzsKIC0tIHZlcmlmeSB0aGF0IHRoZSBjb3JyZWN0 IHNlYXJjaF9wYXRoIHJlc3RvcmVkIG9uIGFib3J0CiBTRVQgc2VhcmNoX3BhdGggdG8gcHVibGlj OwogQkVHSU47CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfc2NoZW1h LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9zY2hlbWEuc3FsCmluZGV4IDFiNzA2 NDI0N2ExLi5iM2RjMWNmZDc1OCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3Jl YXRlX3NjaGVtYS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX3NjaGVtYS5z cWwKQEAgLTQ3LDYgKzQ3LDExIEBAIENSRUFURSBTQ0hFTUEgcmVncmVzc19zY2hlbWFfMSBBVVRI T1JJWkFUSU9OIENVUlJFTlRfUk9MRQogICBFWEVDVVRFIEZVTkNUSU9OIHNjaGVtYV90cmlnLm5v X2Z1bmMoKTsKIFJFU0VUIFJPTEU7CiAKKy0tZXJyb3IuIEZvcndhcmQgcmVmZXJlbmNlIGlzIG5v dCBhbGxvd2VkLgorQ1JFQVRFIFNDSEVNQSByZWdyZXNzX3NjaGVtYV8yCisgIENSRUFURSBWSUVX IGFiY2RfdmlldyBBUyBTRUxFQ1QgYSBGUk9NIGFiY2QKKyAgQ1JFQVRFIFRBQkxFIGFiY2QgKGEg aW50KTsKKwogLS0gQ2FzZXMgd2hlcmUgdGhlIHNjaGVtYSBjcmVhdGlvbiBzdWNjZWVkcy4KIC0t IFRoZSBzY2hlbWEgY3JlYXRlZCBtYXRjaGVzIHRoZSByb2xlIG5hbWUuCiBDUkVBVEUgU0NIRU1B IEFVVEhPUklaQVRJT04gcmVncmVzc19jcmVhdGVfc2NoZW1hX3JvbGUKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL25hbWVzcGFjZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9u YW1lc3BhY2Uuc3FsCmluZGV4IDMwNmNkYzJkOGM2Li45NDMzZWIzYzE1YyAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvbmFtZXNwYWNlLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9uYW1lc3BhY2Uuc3FsCkBAIC03LDE1ICs3LDExIEBACiBTRUxFQ1QgcGdfY2F0YWxvZy5z ZXRfY29uZmlnKCdzZWFyY2hfcGF0aCcsICcgJywgZmFsc2UpOwogCiBDUkVBVEUgU0NIRU1BIHRl c3RfbnNfc2NoZW1hXzEKKyAgICAgICBDUkVBVEUgVEFCTEUgYWJjIChhIHNlcmlhbCwgYiBpbnQg VU5JUVVFKQogICAgICAgIENSRUFURSBVTklRVUUgSU5ERVggYWJjX2FfaWR4IE9OIGFiYyAoYSkK IAogICAgICAgIENSRUFURSBWSUVXIGFiY192aWV3IEFTCi0gICAgICAgICAgICAgIFNFTEVDVCBh KzEgQVMgYSwgYisxIEFTIGIgRlJPTSBhYmMKLQotICAgICAgIENSRUFURSBUQUJMRSBhYmMgKAot ICAgICAgICAgICAgICBhIHNlcmlhbCwKLSAgICAgICAgICAgICAgYiBpbnQgVU5JUVVFCi0gICAg ICAgKTsKKyAgICAgICAgICAgICAgU0VMRUNUIGErMSBBUyBhLCBiKzEgQVMgYiBGUk9NIGFiYzsK IAogLS0gdmVyaWZ5IHRoYXQgdGhlIGNvcnJlY3Qgc2VhcmNoX3BhdGggcmVzdG9yZWQgb24gYWJv cnQKIFNFVCBzZWFyY2hfcGF0aCB0byBwdWJsaWM7CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdp bmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0Cmlu ZGV4IDA0ODQ1ZDVlNjgwLi41MWRiZmYzMTIzZSAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QK QEAgLTU2OSw3ICs1NjksNiBAQCBDcmVhdGVSYW5nZVN0bXQKIENyZWF0ZVJlcGxpY2F0aW9uU2xv dENtZAogQ3JlYXRlUm9sZVN0bXQKIENyZWF0ZVNjaGVtYVN0bXQKLUNyZWF0ZVNjaGVtYVN0bXRD b250ZXh0CiBDcmVhdGVTZXFTdG10CiBDcmVhdGVTdGF0c1N0bXQKIENyZWF0ZVN0bXQKLS0gCjIu MzQuMQoK --000000000000bb4858064625d61b--