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 1wdIrh-0041Be-0r for pgsql-hackers@arkaria.postgresql.org; Sat, 27 Jun 2026 02:33:54 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wdIrf-00DwfI-0b for pgsql-hackers@arkaria.postgresql.org; Sat, 27 Jun 2026 02:33:51 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wdIre-00Dweu-06 for pgsql-hackers@lists.postgresql.org; Sat, 27 Jun 2026 02:33:50 +0000 Received: from mail-lf1-x12f.google.com ([2a00:1450:4864:20::12f]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wdIra-00000000Q25-1SZ8 for pgsql-hackers@lists.postgresql.org; Sat, 27 Jun 2026 02:33:48 +0000 Received: by mail-lf1-x12f.google.com with SMTP id 2adb3069b0e04-5aea7e6220aso1099986e87.0 for ; Fri, 26 Jun 2026 19:33:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1782527623; cv=none; d=google.com; s=arc-20260327; b=a0zOZrDhAtM8wDzwQJ5gScC1v01iG4KHKIoXP8r1GeeVJd+LqvUVcHpsiqaqDYnOea jBfxrkbMd+NepFcVLHIYK1CjHC0QY0wPBCeqbTjrPook7PoLtuVqIZYqdcT6r+97lacJ Uynuw6jeFf9tmSrrYcqyOhPAVdlfsB5E2zIBuacTi42pD3hKkaIh0D0K4Kbkdh2B2okl u8RneN2aghBXQP6YyK5Gkfimy9NIsgr3OEWdhBW9lyiuGg2Kw5gLu+z25wQk3j7Sc5Yq E//ei2OmX6pcTI6RFLOsKJyoEkv0mM8hrigHEqGk3+gjxZqLeoduw4WwFAzbOcU7UNFv 8aBw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=HL9+tXRFiWWxftEIoo7C/eO4eOMTPZiuyW+fiBQQds4=; fh=jzobi55+Afzzb7T/5NyLfVLFHOiqgdPkFv8Ue3nil+k=; b=Z2mRbnzk2tKOA3AhMUeZdKPb+T+DNCEvrtmZrK39bDfggwSKpg4TJ1x3ArlWbCnmDO J6Rb694wLxgVNtG+qQXagT24VRU0rhHAN5jKAawsdE+1p2LrZ76MGNpdfGhvyvUwWVre wNiLuq7da096bh3zrESypUF3LP8P1XZIdw25L0C2weJqPfKRFTC7D9IbkuntHEDQ+PWj SvJFUtPYFIaoO9QMY+FVbfv9XVvPG3Mp8bkO8MXibdsrTBgAoWYpiY/4spH6v0CW1Iv/ vyf+ztZpz7RmmPHyE7bvW+ZIxKukeiwQDKBdb3uvB9gSVnttK/azTZcPhdGHDyNu7xMe EE2Q==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782527623; x=1783132423; 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=HL9+tXRFiWWxftEIoo7C/eO4eOMTPZiuyW+fiBQQds4=; b=WK/dKZepPtfPcbNnGqD8t5p5j315/E2+dfMia+ol2qyupFytVyhLCeehINF35DwuIM +bEe6ugzwKo4pCCdVpmJGSm84z3QgFIJ+pu4RS58dnIXyNkAdy9eDAvLZY+bifv6PrvT 5KmhwND7jJz4wnU6lRAnQG6KsUbAHe/OBSRbQCC46UxpBZZIwm5hPDRnmE1lvLvp/s3P 2v4BqnAkrUFmmbdFPRQ3y27SgDwWtVggrWgV90ZOFbp4Qm/6JRUuVLzo5kh7+tZclkz8 zypXJoZclLXmqr/BnwH5ADPPs5eQ0J1zY7QTGcT8jJpXlxrx6EPtps95RNhJZjxlN2Eu obNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782527623; x=1783132423; 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=HL9+tXRFiWWxftEIoo7C/eO4eOMTPZiuyW+fiBQQds4=; b=M/0Etm1DNQmi/yqsnCNcXjsu00k/NGMxtiorgygRGnUXh2Pmi7BZ/EcRuid72FttBF +7tga0Qtm+fJpo8arGLHES0maN4nkw9JiWl1BrvdudBJwJqQ6vItUqivkRgwLe+zA0Jy JG/cLKmzgTP9wc5Md+jBYYbRFN7RHGGP6CcS9fPsfBVU50lSHdm3uWMUns9pqOXA4qV8 d+5LeVtU+x4e39H4pkKaUCoe8CcymXTAsUwUCHHbhXxa6eQzIyfASGAcUuzBHwmfD9v1 bpE8OHNW68rQhTji3/RwtsrmFFawpZpk/OyUN/uE+DSYfCvghlMHDjsRdMM3Hl7iS55p zZNg== X-Forwarded-Encrypted: i=1; AHgh+RqhIYWAvDnrMeJ345aQ4oYA5qGWDR4Ot5OJw8w4u9AHibBEsQTlvG0VEuRz0QGd1/0xyxL5DxYLW0F1Ujqc@lists.postgresql.org X-Gm-Message-State: AOJu0Yz7o6dTfXvLf2m7up4CjbHNiRC0WZfMuxPz9FfUdeLxe1cVwwIJ 2ulasulwOS/qk+934yqtrXF6ERuUcWKWu/6FK80pTQ0JbQHF2tSVzqGXn8dU7kblkNPVYDXeSpW 6K38EUh9tlWnHvOUyFuU2vKWKfCq1V8w= X-Gm-Gg: AfdE7ck9StU7oKrkxG2q3/CykCBma5RpyYuRjJOm9kxgUXElmADVCyCJ6j+YSLFb6M2 Kd9uyJakF8jk1bCaOz/bTs3nj8S2aLpkDV8jDKCDJgQlnC5Y23N1DrbzCTJcj1xMpx/rSRDomCJ MP9SV5Jlf6OxAvwG3XhE7RK4RHaATz6FoAgDYbT330chip/svja2m3VJj389DdAWHJW5dN4baEp 6wwFMrPSNaYEQB2sy+f5sin2/kT6l6bO9f/2GyG2ooukw836lDOtbhoikRSdEdrIFPT85kHUKyb nRKMKAY57pA1Lu4AIo8nIIZQJpiHlA== X-Received: by 2002:a05:6512:b0b:b0:5ae:a4f9:fa8 with SMTP id 2adb3069b0e04-5aea4f910bbmr1759712e87.21.1782527622942; Fri, 26 Jun 2026 19:33:42 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Dilip Kumar Date: Sat, 27 Jun 2026 08:03:24 +0530 X-Gm-Features: AVVi8CcpNzY10qwrhqZU2HEyWW7lZg6NTwDDarIxA2wY44uKz3aio5b9aRsOu3M Message-ID: Subject: Re: Proposal: Conflict log history table for Logical Replication To: Amit Kapila Cc: vignesh C , Nisha Moond , shveta malik , Peter Smith , Masahiko Sawada , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000c4ad1b0655330de9" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000c4ad1b0655330de9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Jun 26, 2026 at 3:40=E2=80=AFPM Amit Kapila wrote: > > On Thu, Jun 25, 2026 at 4:57=E2=80=AFPM Amit Kapila wrote: > > > > On Thu, Jun 25, 2026 at 10:34=E2=80=AFAM vignesh C wrote: > > > > > > On Wed, 24 Jun 2026 at 19:27, Dilip Kumar wro= te: > > > > > > > > > > 2) jsonb supports indexing, whereas json does not. Was json chosen > > > here because inserts are faster due to the lack of parsing and binary > > > conversion? > > > > > > > I think it is more because the local/remote tuples are usually data > > which we want users to see as it was in original tables, using jsonb > > can change the ordering of columns or remove some space etc. We can > > add a comment on the lines of: "preserve the exact tuple > > representation (column order, formatting) for the audit record; the > > value is natively json so this avoids a per-conflict conversion". Now, > > this is true for tuple data but I am not so sure if the same thing > > applies to the replica_identity column in CLT. Would users ever want > > to query using ORDER/GROUP BY on replica_identity or use DISTINCT on > > it, because if that is possible then the current schema would result > > into ERROR as follows: > > postgres=3D# select * from pg_conflict.pg_conflict_log_16394 order by > > replica_identity; > > ERROR: could not identify an ordering operator for type json > > > > This needs more thoughts from the perspective of how users would like > > to fetch the data. > > > > The values stored for replica_identity are heterogeneous across the > table (different key shapes per relid), and for the RI-FULL case it > isn't even a stable identifier, two conflicts on the "same row" can > carry different whole-tuple JSON. So, I don't see a case for creating > an index on the RI column as well and rather users would like to see > the exact value used to find the local tuple. So, we can add a comment > on the lines: "The tuple/key columns (remote_tuple, replica_identity, > local_conflicts) are typed json rather than jsonb on purpose: they > hold an exact audit snapshot of the applied tuples and replica > identity, and json preserves the verbatim representation whereas jsonb > would normalize it. Indexing them (jsonb's main advantage) wouldn't > help anyway, as the conflict log is looked up by its scalar columns > (relid, conflict_type, commit timestamp) while these JSON columns are > per-conflict payload to inspect, not search keys." I have added this comments. > One more thing that bothers me is that it will be inconvenient for > users to identify whether logged values for replica_identity are for > an index or a complete tuple via replica identity full, so I propose > to add a boolean column replica_identity_full. I also considered to > add replica_identity_index but preferred a boolean instead because > this is a historical/audit row, and the index may be dropped or > replaced later, leaving a meaningless OID which is opposite of what an > audit record should do. I have added the column replica_identity_full and ordered the column as fol= lows: static const ConflictLogColumnDef ConflictLogSchema[] =3D { <----------Other columns----------------> { .attname =3D "replica_identity_full", .atttypid =3D BOOLOID }, { .attname =3D "replica_identity", .atttypid =3D JSONOID }, { .attname =3D "remote_tuple", .atttypid =3D JSONOID }, { .attname =3D "local_conflicts", .atttypid =3D JSONARRAYOID } }; > The other question is whether we create an internal index on one of > the columns? Currently, there's no established query pattern to index > for. The plausible candidates are relid ("conflicts for table X"), or > remote_commit_ts (time-based cleanup) but those are guesses. Indexing > the JSON columns we've already ruled out (payload, not keys). Picking > an index before we know how people actually query/prune the table > risks indexing the wrong thing. We can cosider adding the index in > later versions or even in PG20 itself if we get some user feedback. Yeah, I think we can have index once the first patch is committed based on the usage pattern. --=20 Regards, Dilip Kumar Google --000000000000c4ad1b0655330de9 Content-Type: application/octet-stream; name="v59-0001-Add-configurable-conflict-log-table-for-Logical-.patch" Content-Disposition: attachment; filename="v59-0001-Add-configurable-conflict-log-table-for-Logical-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqvqwnqh0 RnJvbSA0ZGMyMGQzMDE2YmVmZjU1OGJlZWNlZTlmNmU2YTcxNjIwMWZkNzM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogVGh1LCAyNSBKdW4gMjAyNiAxNzo1NjoyNyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjU5 IDEvNl0gQWRkIGNvbmZpZ3VyYWJsZSBjb25mbGljdCBsb2cgdGFibGUgZm9yIExvZ2ljYWwKIFJl cGxpY2F0aW9uCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hh cnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpUaGlzIHBhdGNoIGFk ZHMgYSBmZWF0dXJlIHRvIHByb3ZpZGUgYSBzdHJ1Y3R1cmVkLCBxdWVyeWFibGUgcmVjb3JkIG9m IGFsbApsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4gVGhlIGN1cnJlbnQgYXBwcm9hY2gg b2YgbG9nZ2luZyBjb25mbGljdHMgYXMKcGxhaW4gdGV4dCBpbiB0aGUgc2VydmVyIGxvZ3MgbWFr ZXMgaXQgZGlmZmljdWx0IHRvIHF1ZXJ5LCBhbmFseXplLCBhbmQKdXNlIGZvciBleHRlcm5hbCBt b25pdG9yaW5nIGFuZCBhdXRvbWF0aW9uLgoKVGhpcyBwYXRjaCBhZGRyZXNzZXMgdGhlc2UgbGlt aXRhdGlvbnMgYnkgaW50cm9kdWNpbmcgYSBjb25maWd1cmFibGUKY29uZmxpY3RfbG9nX2Rlc3Rp bmF0aW9uPSgnbG9nJy8ndGFibGUnLydhbGwnKSBvcHRpb24gaW4gdGhlIENSRUFURSBTVUJTQ1JJ UFRJT04KY29tbWFuZC4KCklmIHRoZSB1c2VyIGNob29zZXMgdG8gZW5hYmxlIGxvZ2dpbmcgdG8g YSB0YWJsZSAoYnkgc2VsZWN0aW5nICd0YWJsZScgb3IgJ2FsbCcpLAphbiBpbnRlcm5hbCBsb2dn aW5nIHRhYmxlIG5hbWVkIHBnX2NvbmZsaWN0X2xvZ188c3ViaWQ+IGlzIGF1dG9tYXRpY2FsbHkK Y3JlYXRlZCB3aXRoaW4gYSBkZWRpY2F0ZWQsIHN5c3RlbS1tYW5hZ2VkICdwZ19jb25mbGljdCcg bmFtZXNwYWNlIHRvIHByZXZlbnQKdXNlcnMgZnJvbSBtYW51YWxseSBkcm9wcGluZyBvciBhbHRl cmluZyBpdC4gVGhpcyBhbHNvIHByZXZlbnRzIGFjY2lkZW50YWwKbmFtZSBjb2xsaXNpb25zIHdp dGggdXNlci1jcmVhdGVkIHRhYmxlcy4gVGhpcyB0YWJsZSBpcyBsaW5rZWQgdG8gdGhlCnN1YnNj cmlwdGlvbiB2aWEgYW4gaW50ZXJuYWwgZGVwZW5kZW5jeSwgZW5zdXJpbmcgaXQgaXMgYXV0b21h dGljYWxseSBkcm9wcGVkCndoZW4gdGhlIHN1YnNjcmlwdGlvbiBpcyByZW1vdmVkCgpUaGUgcGVy LXN1YnNjcmlwdGlvbiB0YWJsZSBtb2RlbCB3YXMgY2hvc2VuIG92ZXIgYSBzaW5nbGUgZ2xvYmFs IGxvZyB0byBlbnN1cmUKc3VwZXJpb3IgaXNvbGF0aW9uIGFuZCBhZG1pbmlzdHJhdGl2ZSBmbGV4 aWJpbGl0eSBieSBkaXJlY3RseSBhbGlnbmluZyB0YWJsZSBvd25lcnNoaXAKd2l0aCB0aGUgc3Vi c2NyaXB0aW9u4oCZcyBsaWZlY3ljbGUuIFRoaXMgYXBwcm9hY2ggYWxsb3dzIGZvciBncmFudWxh ciBwZXJtaXNzaW9uCm1hbmFnZW1lbnQsIGVuYWJsaW5nIHRoZSBzdWJzY3JpcHRpb24gb3duZXIg dG8gcGVyZm9ybSBuZWNlc3NhcnkgbWFpbnRlbmFuY2UKdGFza3MgbGlrZSBTRUxFQ1QsIERFTEVU RSwgYW5kIFRSVU5DQVRFIHdpdGhvdXQgdGhlIHNlY3VyaXR5IHJpc2tzIG9yIGNvbXBsZXgKUm93 LUxldmVsIFNlY3VyaXR5IHJlcXVpcmVkIGJ5IGEgc2hhcmVkIGdsb2JhbCB0YWJsZS4KClRoZSBj b25mbGljdCBkZXRhaWxzLCBpbmNsdWRpbmcgdGhlIG9yaWdpbmFsIGFuZCByZW1vdGUgdHVwbGVz LCBhcmUgc3RvcmVkIGluIEpTT04KY29sdW1ucywgcHJvdmlkaW5nIGEgZmxleGlibGUgZm9ybWF0 IHRvIGFjY29tbW9kYXRlIGRpZmZlcmVudCB0YWJsZSBzY2hlbWFzLgoKVGhlIGxvZyB0YWJsZSBj YXB0dXJlcyBlc3NlbnRpYWwgYXR0cmlidXRlcyBzdWNoIGFzIGxvY2FsIGFuZCByZW1vdGUgdHJh bnNhY3Rpb24gSURzLApMU05zLCBjb21taXQgdGltZXN0YW1wcywgYW5kIGNvbmZsaWN0IHR5cGUs IHByb3ZpZGluZyBhIGNvbXBsZXRlIHJlY29yZCBmb3IgcG9zdC1tb3J0ZW0KYW5hbHlzaXMuCgpU aGlzIGZlYXR1cmUgd2lsbCBtYWtlIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzIGVhc2ll ciB0byBtb25pdG9yIGFuZCBtYW5hZ2UsCnNpZ25pZmljYW50bHkgaW1wcm92aW5nIHRoZSBvdmVy YWxsIHJlc2lsaWVuY2UgYW5kIG9wZXJhYmlsaXR5IG9mIHJlcGxpY2F0aW9uIHNldHVwcy4KClRo ZSBjb25mbGljdCBsb2cgdGFibGVzIHdpbGwgbm90IGJlIGluY2x1ZGVkIGluIGEgcHVibGljYXRp b24sIGV2ZW4gaWYgdGhlIHB1YmxpY2F0aW9uCmlzIGNvbmZpZ3VyZWQgdG8gaW5jbHVkZSBBTEwg VEFCTEVTIG9yIEFMTCBUQUJMRVMgSU4gU0NIRU1BLgoKTm90ZTogQnVtcCBjYXRhbG9nIHZlcnNp b24gYXMgdGhpcyBhZGQgbmV3IGNvbHVtbiB0byBwZ19zdWJzY3JpcHRpb24gY2F0YWxvZwotLS0K IHNyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAgICAgICAgICB8ICA1MCArKy0tCiBz cmMvYmFja2VuZC9jYXRhbG9nL2NhdGFsb2cuYyAgICAgICAgICAgICAgfCAgMjkgKystCiBzcmMv YmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMgICAgICAgfCAgMTQgKy0KIHNyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMgICAgICB8ICAgNyArCiBzcmMvYmFja2VuZC9j YXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgICAgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3N1YnNjcmlwdGlvbmNtZHMuYyAgICB8IDIxMyArKysrKysrKysrKysrKy0KIHNyYy9iYWNr ZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jICAgICAgICAgICB8ICAgNiArLQogc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY01haW4uYyAgICAgICAgICAgIHwgIDI4ICsrCiBzcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMgfCAxNzIgKysrKysrKysrKysrCiBzcmMvYmFja2Vu ZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYyAgICAgICAgfCAgIDIgKy0KIHNyYy9iaW4vaW5pdGRi L2luaXRkYi5jICAgICAgICAgICAgICAgICAgICB8ICAgNiArCiBzcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmluLmMgICAgICAgICAgICAgfCAgIDggKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvY2F0 YWxvZy5oICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX25hbWVz cGFjZS5kYXQgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRp b24uaCAgICAgIHwgIDExICsKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmggICAg ICAgICB8ICAyNyArKwogc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggICAgICAgICAgICAg IHwgICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgfCAy ODggKysrKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRp b24uc3FsICAgICAgfCAyNDEgKysrKysrKysrKysrKysrKysKIHNyYy90b29scy9wZ2luZGVudC90 eXBlZGVmcy5saXN0ICAgICAgICAgICB8ICAgMiArCiAyMCBmaWxlcyBjaGFuZ2VkLCAxMDgxIGlu c2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nh dGFsb2cvYWNsY2hrLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCmluZGV4IDAwN2Vk ZTk5N2M1Li40OTY4MGFhYTgzMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xj aGsuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCkBAIC0zMzM3LDI1ICszMzM3 LDM5IEBAIHBnX2NsYXNzX2FjbG1hc2tfZXh0KE9pZCB0YWJsZV9vaWQsIE9pZCByb2xlaWQsIEFj bE1vZGUgbWFzaywKIAogCWNsYXNzRm9ybSA9IChGb3JtX3BnX2NsYXNzKSBHRVRTVFJVQ1QodHVw bGUpOwogCi0JLyoKLQkgKiBEZW55IGFueW9uZSBwZXJtaXNzaW9uIHRvIHVwZGF0ZSBhIHN5c3Rl bSBjYXRhbG9nIHVubGVzcwotCSAqIHBnX2F1dGhpZC5yb2xzdXBlciBpcyBzZXQuCi0JICoKLQkg KiBBcyBvZiA3LjQgd2UgaGF2ZSBzb21lIHVwZGF0YWJsZSBzeXN0ZW0gdmlld3M7IHRob3NlIHNo b3VsZG4ndCBiZQotCSAqIHByb3RlY3RlZCBpbiB0aGlzIHdheS4gIEFzc3VtZSB0aGUgdmlldyBy dWxlcyBjYW4gdGFrZSBjYXJlIG9mCi0JICogdGhlbXNlbHZlcy4gIEFDTF9VU0FHRSBpcyBpZiB3 ZSBldmVyIGhhdmUgc3lzdGVtIHNlcXVlbmNlcy4KLQkgKi8KLQlpZiAoKG1hc2sgJiAoQUNMX0lO U0VSVCB8IEFDTF9VUERBVEUgfCBBQ0xfREVMRVRFIHwgQUNMX1RSVU5DQVRFIHwgQUNMX1VTQUdF KSkgJiYKLQkJSXNTeXN0ZW1DbGFzcyh0YWJsZV9vaWQsIGNsYXNzRm9ybSkgJiYKLQkJY2xhc3NG b3JtLT5yZWxraW5kICE9IFJFTEtJTkRfVklFVyAmJgotCQkhc3VwZXJ1c2VyX2FyZyhyb2xlaWQp KQotCQltYXNrICY9IH4oQUNMX0lOU0VSVCB8IEFDTF9VUERBVEUgfCBBQ0xfREVMRVRFIHwgQUNM X1RSVU5DQVRFIHwgQUNMX1VTQUdFKTsKLQotCS8qCi0JICogT3RoZXJ3aXNlLCBzdXBlcnVzZXJz IGJ5cGFzcyBhbGwgcGVybWlzc2lvbi1jaGVja2luZy4KLQkgKi8KLQlpZiAoc3VwZXJ1c2VyX2Fy Zyhyb2xlaWQpKQorCWlmICghc3VwZXJ1c2VyX2FyZyhyb2xlaWQpKQorCXsKKwkJaWYgKG1hc2sg JiAoQUNMX0lOU0VSVCB8IEFDTF9VUERBVEUgfCBBQ0xfREVMRVRFIHwgQUNMX1RSVU5DQVRFIHwg QUNMX1VTQUdFKSkKKwkJeworCQkJaWYgKElzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKGNsYXNzRm9y bSkpCisJCQl7CisJCQkJLyoKKwkJCQkgKiBGb3IgY29uZmxpY3QgbG9nIHRhYmxlcywgYWxsb3cg bm9uLXN1cGVydXNlcnMgdG8gcGVyZm9ybQorCQkJCSAqIERFTEVURSBhbmQgVFJVTkNBVEUgZm9y IGNsZWFudXAgYW5kIG1haW50ZW5hbmNlLCB3aGlsZSBzdGlsbAorCQkJCSAqIHJlc3RyaWN0aW5n IElOU0VSVCwgVVBEQVRFLCBhbmQgVVNBR0UuCisJCQkJICovCisJCQkJbWFzayAmPSB+KEFDTF9J TlNFUlQgfCBBQ0xfVVBEQVRFIHwgQUNMX1VTQUdFKTsKKwkJCX0KKwkJCWVsc2UgaWYgKElzU3lz dGVtQ2xhc3ModGFibGVfb2lkLCBjbGFzc0Zvcm0pICYmCisJCQkJCSBjbGFzc0Zvcm0tPnJlbGtp bmQgIT0gUkVMS0lORF9WSUVXKQorCQkJeworCQkJCS8qCisJCQkJICogRGVueSBhbnlvbmUgcGVy bWlzc2lvbiB0byB1cGRhdGUgYSBzeXN0ZW0gY2F0YWxvZyB1bmxlc3MKKwkJCQkgKiBwZ19hdXRo aWQucm9sc3VwZXIgaXMgc2V0LgorCQkJCSAqCisJCQkJICogQXMgb2YgNy40IHdlIGhhdmUgc29t ZSB1cGRhdGFibGUgc3lzdGVtIHZpZXdzOyB0aG9zZQorCQkJCSAqIHNob3VsZG4ndCBiZSBwcm90 ZWN0ZWQgaW4gdGhpcyB3YXkuICBBc3N1bWUgdGhlIHZpZXcgcnVsZXMKKwkJCQkgKiBjYW4gdGFr ZSBjYXJlIG9mIHRoZW1zZWx2ZXMuICBBQ0xfVVNBR0UgaXMgaWYgd2UgZXZlciBoYXZlCisJCQkJ ICogc3lzdGVtIHNlcXVlbmNlcy4KKwkJCQkgKi8KKwkJCQltYXNrICY9IH4oQUNMX0lOU0VSVCB8 IEFDTF9VUERBVEUgfCBBQ0xfREVMRVRFIHwgQUNMX1RSVU5DQVRFIHwKKwkJCQkJCSAgQUNMX1VT QUdFKTsKKwkJCX0KKwkJfQorCX0KKwllbHNlCiAJeworCQkvKiBTdXBlcnVzZXJzIGJ5cGFzcyBh bGwgcGVybWlzc2lvbi1jaGVja2luZy4gKi8KIAkJUmVsZWFzZVN5c0NhY2hlKHR1cGxlKTsKIAkJ cmV0dXJuIG1hc2s7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9jYXRhbG9n LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2NhdGFsb2cuYwppbmRleCA3YmU0OTAzMjkzNC4uYmU4 NzkxYWY4NzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvY2F0YWxvZy5jCisrKyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvY2F0YWxvZy5jCkBAIC04Niw3ICs4Niw5IEBAIGJvb2wKIElz U3lzdGVtQ2xhc3MoT2lkIHJlbGlkLCBGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKQogewogCS8qIElz Q2F0YWxvZ1JlbGF0aW9uT2lkIGlzIGEgYml0IGZhc3Rlciwgc28gdGVzdCB0aGF0IGZpcnN0ICov Ci0JcmV0dXJuIChJc0NhdGFsb2dSZWxhdGlvbk9pZChyZWxpZCkgfHwgSXNUb2FzdENsYXNzKHJl bHR1cGxlKSk7CisJcmV0dXJuIChJc0NhdGFsb2dSZWxhdGlvbk9pZChyZWxpZCkgfHwKKwkJCUlz VG9hc3RDbGFzcyhyZWx0dXBsZSkgfHwKKwkJCUlzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKHJlbHR1 cGxlKSk7CiB9CiAKIC8qCkBAIC0yMzAsNiArMjMyLDIwIEBAIElzVG9hc3RDbGFzcyhGb3JtX3Bn X2NsYXNzIHJlbHR1cGxlKQogCXJldHVybiBJc1RvYXN0TmFtZXNwYWNlKHJlbG5hbWVzcGFjZSk7 CiB9CiAKKy8qCisgKiBJc0NvbmZsaWN0TG9nVGFibGVDbGFzcworICoJCVRydWUgaWZmIHBnX2Ns YXNzIHR1cGxlIHJlcHJlc2VudHMgYSBDb25mbGljdCBMb2cgVGFibGUuCisgKgorICoJCURvZXMg bm90IHBlcmZvcm0gYW55IGNhdGFsb2cgYWNjZXNzZXMuCisgKi8KK2Jvb2wKK0lzQ29uZmxpY3RM b2dUYWJsZUNsYXNzKEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpCit7CisJT2lkCQkJcmVsbmFtZXNw YWNlID0gcmVsdHVwbGUtPnJlbG5hbWVzcGFjZTsKKworCXJldHVybiBJc0NvbmZsaWN0TG9nVGFi bGVOYW1lc3BhY2UocmVsbmFtZXNwYWNlKTsKK30KKwogLyoKICAqIElzQ2F0YWxvZ05hbWVzcGFj ZQogICoJCVRydWUgaWZmIG5hbWVzcGFjZSBpcyBwZ19jYXRhbG9nLgpAQCAtMjY0LDYgKzI4MCwx NyBAQCBJc1RvYXN0TmFtZXNwYWNlKE9pZCBuYW1lc3BhY2VJZCkKIAkJaXNUZW1wVG9hc3ROYW1l c3BhY2UobmFtZXNwYWNlSWQpOwogfQogCisvKgorICogSXNDb25mbGljdExvZ1RhYmxlTmFtZXNw YWNlCisgKgkJVHJ1ZSBpZmYgbmFtZXNwYWNlIGlzIHBnX2NvbmZsaWN0LgorICoKKyAqCQlEb2Vz IG5vdCBwZXJmb3JtIGFueSBjYXRhbG9nIGFjY2Vzc2VzLgorICovCitib29sCitJc0NvbmZsaWN0 TG9nVGFibGVOYW1lc3BhY2UoT2lkIG5hbWVzcGFjZUlkKQoreworCXJldHVybiBuYW1lc3BhY2VJ ZCA9PSBQR19DT05GTElDVF9OQU1FU1BBQ0U7Cit9CiAKIC8qCiAgKiBJc1Jlc2VydmVkTmFtZQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCmluZGV4IDVjNDU3ZDlhY2E4Li4xZWM5NGM4 NTFiMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCisr KyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYwpAQCAtOTIsNiArOTIsMTMg QEAgY2hlY2tfcHVibGljYXRpb25fYWRkX3JlbGF0aW9uKFB1YmxpY2F0aW9uUmVsSW5mbyAqcHJp KQogCQkJCSBlcnJtc2coZXJyb3Jtc2csIHJlbG5hbWUpLAogCQkJCSBlcnJkZXRhaWwoIlRoaXMg b3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHN5c3RlbSB0YWJsZXMuIikpKTsKIAorCS8q IENhbid0IGJlIGNvbmZsaWN0IGxvZyB0YWJsZSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVO YW1lc3BhY2UoUmVsYXRpb25HZXROYW1lc3BhY2UodGFyZ2V0cmVsKSkpCisJCWVyZXBvcnQoRVJS T1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJ IGVycm1zZyhlcnJvcm1zZywgcmVsbmFtZSksCisJCQkJIGVycmRldGFpbCgiVGhpcyBvcGVyYXRp b24gaXMgbm90IHN1cHBvcnRlZCBmb3IgY29uZmxpY3QgbG9nIHRhYmxlcy4iKSkpOworCiAJLyog VU5MT0dHRUQgYW5kIFRFTVAgcmVsYXRpb25zIGNhbm5vdCBiZSBwYXJ0IG9mIHB1YmxpY2F0aW9u LiAqLwogCWlmICh0YXJnZXRyZWwtPnJkX3JlbC0+cmVscGVyc2lzdGVuY2UgPT0gUkVMUEVSU0lT VEVOQ0VfVEVNUCkKIAkJZXJlcG9ydChFUlJPUiwKQEAgLTExMyw3ICsxMjAsOCBAQCBzdGF0aWMg dm9pZAogY2hlY2tfcHVibGljYXRpb25fYWRkX3NjaGVtYShPaWQgc2NoZW1haWQpCiB7CiAJLyog Q2FuJ3QgYmUgc3lzdGVtIG5hbWVzcGFjZSAqLwotCWlmIChJc0NhdGFsb2dOYW1lc3BhY2Uoc2No ZW1haWQpIHx8IElzVG9hc3ROYW1lc3BhY2Uoc2NoZW1haWQpKQorCWlmIChJc0NhdGFsb2dOYW1l c3BhY2Uoc2NoZW1haWQpIHx8IElzVG9hc3ROYW1lc3BhY2Uoc2NoZW1haWQpIHx8CisJCUlzQ29u ZmxpY3RMb2dUYWJsZU5hbWVzcGFjZShzY2hlbWFpZCkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJ KGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCiAJCQkJIGVycm1zZygi Y2Fubm90IGFkZCBzY2hlbWEgXCIlc1wiIHRvIHB1YmxpY2F0aW9uIiwKQEAgLTE0OCw3ICsxNTYs OCBAQCBjaGVja19wdWJsaWNhdGlvbl9hZGRfc2NoZW1hKE9pZCBzY2hlbWFpZCkKICAqIGlzIHJl YWxseSBpbmFkZXF1YXRlIGZvciB0aGF0LCBzaW5jZSB0aGUgaW5mb3JtYXRpb25fc2NoZW1hIGNv dWxkIGJlCiAgKiBkcm9wcGVkIGFuZCByZWxvYWRlZCBhbmQgdGhlbiBpdCdsbCBiZSBjb25zaWRl cmVkIHB1Ymxpc2hhYmxlLiAgVGhlIGJlc3QKICAqIGxvbmctdGVybSBzb2x1dGlvbiBtYXkgYmUg dG8gYWRkIGEgInJlbGlzcHVibGlzaGFibGUiIGJvb2wgdG8gcGdfY2xhc3MsCi0gKiBhbmQgZGVw ZW5kIG9uIHRoYXQgaW5zdGVhZCBvZiBPSUQgY2hlY2tzLgorICogYW5kIGRlcGVuZCBvbiB0aGF0 IGluc3RlYWQgb2YgT0lEIGNoZWNrcy4gIElzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKCkKKyAqIGV4 Y2x1ZGVzIHRhYmxlcyBpbiBjb25mbGljdCBzY2hlbWEuCiAgKi8KIHN0YXRpYyBib29sCiBpc19w dWJsaXNoYWJsZV9jbGFzcyhPaWQgcmVsaWQsIEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpCkBAIC0x NTcsNiArMTY2LDcgQEAgaXNfcHVibGlzaGFibGVfY2xhc3MoT2lkIHJlbGlkLCBGb3JtX3BnX2Ns YXNzIHJlbHR1cGxlKQogCQkJcmVsdHVwbGUtPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05F RF9UQUJMRSB8fAogCQkJcmVsdHVwbGUtPnJlbGtpbmQgPT0gUkVMS0lORF9TRVFVRU5DRSkgJiYK IAkJIUlzQ2F0YWxvZ1JlbGF0aW9uT2lkKHJlbGlkKSAmJgorCQkhSXNDb25mbGljdExvZ1RhYmxl Q2xhc3MocmVsdHVwbGUpICYmCiAJCXJlbHR1cGxlLT5yZWxwZXJzaXN0ZW5jZSA9PSBSRUxQRVJT SVNURU5DRV9QRVJNQU5FTlQgJiYKIAkJcmVsaWQgPj0gRmlyc3ROb3JtYWxPYmplY3RJZDsKIH0K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMgYi9zcmMv YmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jCmluZGV4IGI1Y2IzMDFkYjg4Li4yMDY4 ZTAzYzU3MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24u YworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jCkBAIC0xMzIsNiAr MTMyLDcgQEAgR2V0U3Vic2NyaXB0aW9uKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29rLCBib29s IGNvbm5pbmZvX25lZWRlZCwKIAlzdWItPnJldGFpbmRlYWR0dXBsZXMgPSBzdWJmb3JtLT5zdWJy ZXRhaW5kZWFkdHVwbGVzOwogCXN1Yi0+bWF4cmV0ZW50aW9uID0gc3ViZm9ybS0+c3VibWF4cmV0 ZW50aW9uOwogCXN1Yi0+cmV0ZW50aW9uYWN0aXZlID0gc3ViZm9ybS0+c3VicmV0ZW50aW9uYWN0 aXZlOworCXN1Yi0+Y29uZmxpY3Rsb2dyZWxpZCA9IHN1YmZvcm0tPnN1YmNvbmZsaWN0bG9ncmVs aWQ7CiAKIAlpZiAoY29ubmluZm9fbmVlZGVkKQogCXsKQEAgLTIwMyw2ICsyMDQsMTIgQEAgR2V0 U3Vic2NyaXB0aW9uKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29rLCBib29sIGNvbm5pbmZvX25l ZWRlZCwKIAkJCQkJCQkJICAgQW51bV9wZ19zdWJzY3JpcHRpb25fc3Vib3JpZ2luKTsKIAlzdWIt Pm9yaWdpbiA9IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pOwogCisJLyogR2V0IGNvbmZsaWN0 IGxvZyBkZXN0aW5hdGlvbiAqLworCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChTVUJT Q1JJUFRJT05PSUQsCisJCQkJCQkJCSAgIHR1cCwKKwkJCQkJCQkJICAgQW51bV9wZ19zdWJzY3Jp cHRpb25fc3ViY29uZmxpY3Rsb2dkZXN0KTsKKwlzdWItPmNvbmZsaWN0bG9nZGVzdCA9IFRleHRE YXR1bUdldENTdHJpbmcoZGF0dW0pOworCiAJLyogSXMgdGhlIHN1YnNjcmlwdGlvbiBvd25lciBh IHN1cGVydXNlcj8gKi8KIAlzdWItPm93bmVyc3VwZXJ1c2VyID0gc3VwZXJ1c2VyX2FyZyhzdWIt Pm93bmVyKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Mu c3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IDhmMTI5YmFl YzkwLi41OTY3NzYyZTYwMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1f dmlld3Muc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbApAQCAt MTUyNyw4ICsxNTI3LDggQEAgR1JBTlQgU0VMRUNUIChvaWQsIHN1YmRiaWQsIHN1YnNraXBsc24s IHN1Ym5hbWUsIHN1Ym93bmVyLCBzdWJlbmFibGVkLAogICAgICAgICAgICAgICBzdWJiaW5hcnks IHN1YnN0cmVhbSwgc3VidHdvcGhhc2VzdGF0ZSwgc3ViZGlzYWJsZW9uZXJyLAogCQkJICBzdWJw YXNzd29yZHJlcXVpcmVkLCBzdWJydW5hc293bmVyLCBzdWJmYWlsb3ZlciwKICAgICAgICAgICAg ICAgc3VicmV0YWluZGVhZHR1cGxlcywgc3VibWF4cmV0ZW50aW9uLCBzdWJyZXRlbnRpb25hY3Rp dmUsCi0gICAgICAgICAgICAgIHN1YnNlcnZlciwgc3Vic2xvdG5hbWUsIHN1YnN5bmNjb21taXQs IHN1YndhbHJjdnRpbWVvdXQsCi0gICAgICAgICAgICAgIHN1YnB1YmxpY2F0aW9ucywgc3Vib3Jp Z2luKQorICAgICAgICAgICAgICBzdWJzZXJ2ZXIsIHN1YmNvbmZsaWN0bG9ncmVsaWQsIHN1YmNv bmZsaWN0bG9nZGVzdCwgc3Vic2xvdG5hbWUsCisgICAgICAgICAgICAgIHN1YnN5bmNjb21taXQs IHN1YndhbHJjdnRpbWVvdXQsIHN1YnB1YmxpY2F0aW9ucywgc3Vib3JpZ2luKQogICAgIE9OIHBn X3N1YnNjcmlwdGlvbiBUTyBwdWJsaWM7CiAKIENSRUFURSBWSUVXIHBnX3N0YXRfc3Vic2NyaXB0 aW9uX3N0YXRzIEFTCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRp b25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKaW5kZXgg ZWUwNmE3MjZmNDIuLmUzMGUwZTBkZmU3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy9zdWJzY3JpcHRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0 aW9uY21kcy5jCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoaWRf ZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJhc2VfZC5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfZm9yZWlnbl9zZXJ2ZXIuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19zdWJzY3JpcHRpb25fcmVsLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCkBA IC0zNSw2ICszNiw3IEBACiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAi Y29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3N1YnNjcmlwdGlv bmNtZHMuaCIKKyNpbmNsdWRlICJjb21tYW5kcy90YWJsZWNtZHMuaCIKICNpbmNsdWRlICJleGVj dXRvci9leGVjdXRvci5oIgogI2luY2x1ZGUgImZvcmVpZ24vZm9yZWlnbi5oIgogI2luY2x1ZGUg Im1pc2NhZG1pbi5oIgpAQCAtNzksNiArODEsNyBAQAogI2RlZmluZSBTVUJPUFRfV0FMX1JFQ0VJ VkVSX1RJTUVPVVQJCQkweDAwMDEwMDAwCiAjZGVmaW5lIFNVQk9QVF9MU04JCQkJCTB4MDAwMjAw MDAKICNkZWZpbmUgU1VCT1BUX09SSUdJTgkJCQkweDAwMDQwMDAwCisjZGVmaW5lIFNVQk9QVF9D T05GTElDVF9MT0dfREVTVAkweDAwMDgwMDAwCiAKIC8qIGNoZWNrIGlmIHRoZSAndmFsJyBoYXMg J2JpdHMnIHNldCAqLwogI2RlZmluZSBJc1NldCh2YWwsIGJpdHMpICAoKCh2YWwpICYgKGJpdHMp KSA9PSAoYml0cykpCkBAIC0xMDcsNiArMTEwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgU3ViT3B0cwog CWJvb2wJCXJldGFpbmRlYWR0dXBsZXM7CiAJaW50MzIJCW1heHJldGVudGlvbjsKIAljaGFyCSAg ICpvcmlnaW47CisJQ29uZmxpY3RMb2dEZXN0IGNvbmZsaWN0bG9nZGVzdDsKIAlYTG9nUmVjUHRy CWxzbjsKIAljaGFyCSAgICp3YWxfcmVjZWl2ZXJfdGltZW91dDsKIH0gU3ViT3B0czsKQEAgLTE0 MCw3ICsxNDQsMTIgQEAgc3RhdGljIExpc3QgKm1lcmdlX3B1YmxpY2F0aW9ucyhMaXN0ICpvbGRw dWJsaXN0LCBMaXN0ICpuZXdwdWJsaXN0LCBib29sIGFkZHB1YiwKIHN0YXRpYyB2b2lkIFJlcG9y dFNsb3RDb25uZWN0aW9uRXJyb3IoTGlzdCAqcnN0YXRlcywgT2lkIHN1YmlkLCBjaGFyICpzbG90 bmFtZSwgY2hhciAqZXJyKTsKIHN0YXRpYyB2b2lkIENoZWNrQWx0ZXJTdWJPcHRpb24oU3Vic2Ny aXB0aW9uICpzdWIsIGNvbnN0IGNoYXIgKm9wdGlvbiwKIAkJCQkJCQkJYm9vbCBzbG90X25lZWRz X3VwZGF0ZSwgYm9vbCBpc1RvcExldmVsKTsKLQorc3RhdGljIGJvb2wgYWx0ZXJfc3ViX2NvbmZs aWN0X2xvZ19kZXN0KFN1YnNjcmlwdGlvbiAqc3ViLAorCQkJCQkJCQkJCUNvbmZsaWN0TG9nRGVz dCBvbGRsb2dkZXN0LAorCQkJCQkJCQkJCUNvbmZsaWN0TG9nRGVzdCBuZXdsb2dkZXN0LAorCQkJ CQkJCQkJCU9pZCAqY29uZmxpY3R0YWJsZXJlbGlkKTsKK3N0YXRpYyB2b2lkIGRyb3Bfc3ViX2Nv bmZsaWN0X2xvZ190YWJsZShPaWQgc3ViaWQsIGNoYXIgKnN1Ym5hbWUsCisJCQkJCQkJCQkJT2lk IHN1YmNvbmZsaWN0bG9ncmVsaWQpOwogCiAvKgogICogQ29tbW9uIG9wdGlvbiBwYXJzaW5nIGZ1 bmN0aW9uIGZvciBDUkVBVEUgYW5kIEFMVEVSIFNVQlNDUklQVElPTiBjb21tYW5kcy4KQEAgLTE5 Niw2ICsyMDUsOCBAQCBwYXJzZV9zdWJzY3JpcHRpb25fb3B0aW9ucyhQYXJzZVN0YXRlICpwc3Rh dGUsIExpc3QgKnN0bXRfb3B0aW9ucywKIAkJb3B0cy0+bWF4cmV0ZW50aW9uID0gMDsKIAlpZiAo SXNTZXQoc3VwcG9ydGVkX29wdHMsIFNVQk9QVF9PUklHSU4pKQogCQlvcHRzLT5vcmlnaW4gPSBw c3RyZHVwKExPR0lDQUxSRVBfT1JJR0lOX0FOWSk7CisJaWYgKElzU2V0KHN1cHBvcnRlZF9vcHRz LCBTVUJPUFRfQ09ORkxJQ1RfTE9HX0RFU1QpKQorCQlvcHRzLT5jb25mbGljdGxvZ2Rlc3QgPSBD T05GTElDVF9MT0dfREVTVF9MT0c7CiAKIAkvKiBQYXJzZSBvcHRpb25zICovCiAJZm9yZWFjaChs Yywgc3RtdF9vcHRpb25zKQpAQCAtNDM2LDYgKzQ0NywxOCBAQCBwYXJzZV9zdWJzY3JpcHRpb25f b3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnN0bXRfb3B0aW9ucywKIAkJCQkJCQkJ CQkgUEdDX0JBQ0tFTkQsIFBHQ19TX1RFU1QsIEdVQ19BQ1RJT05fU0VULAogCQkJCQkJCQkJCSBm YWxzZSwgMCwgZmFsc2UpOwogCQl9CisJCWVsc2UgaWYgKElzU2V0KHN1cHBvcnRlZF9vcHRzLCBT VUJPUFRfQ09ORkxJQ1RfTE9HX0RFU1QpICYmCisJCQkJIHN0cmNtcChkZWZlbC0+ZGVmbmFtZSwg ImNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiIpID09IDApCisJCXsKKwkJCWNoYXIgKnZhbDsKKwor CQkJaWYgKElzU2V0KG9wdHMtPnNwZWNpZmllZF9vcHRzLCBTVUJPUFRfQ09ORkxJQ1RfTE9HX0RF U1QpKQorCQkJCWVycm9yQ29uZmxpY3RpbmdEZWZFbGVtKGRlZmVsLCBwc3RhdGUpOworCisJCQl2 YWwgPSBkZWZHZXRTdHJpbmcoZGVmZWwpOworCQkJb3B0cy0+Y29uZmxpY3Rsb2dkZXN0ID0gR2V0 Q29uZmxpY3RMb2dEZXN0KHZhbCk7CisJCQlvcHRzLT5zcGVjaWZpZWRfb3B0cyB8PSBTVUJPUFRf Q09ORkxJQ1RfTE9HX0RFU1Q7CisJCX0KIAkJZWxzZQogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJ KGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLApAQCAtNjYwLDYgKzY4Myw3IEBAIENyZWF0 ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQg KnN0bXQsCiAJdWludDMyCQlzdXBwb3J0ZWRfb3B0czsKIAlTdWJPcHRzCQlvcHRzID0gezB9Owog CUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJT2lkCQkJbG9ncmVsaWQgPSBJbnZhbGlkT2lkOwogCiAJ LyoKIAkgKiBQYXJzZSBhbmQgY2hlY2sgb3B0aW9ucy4KQEAgLTY3NCw3ICs2OTgsOCBAQCBDcmVh dGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10 ICpzdG10LAogCQkJCQkgIFNVQk9QVF9SVU5fQVNfT1dORVIgfCBTVUJPUFRfRkFJTE9WRVIgfAog CQkJCQkgIFNVQk9QVF9SRVRBSU5fREVBRF9UVVBMRVMgfAogCQkJCQkgIFNVQk9QVF9NQVhfUkVU RU5USU9OX0RVUkFUSU9OIHwKLQkJCQkJICBTVUJPUFRfV0FMX1JFQ0VJVkVSX1RJTUVPVVQgfCBT VUJPUFRfT1JJR0lOKTsKKwkJCQkJICBTVUJPUFRfV0FMX1JFQ0VJVkVSX1RJTUVPVVQgfCBTVUJP UFRfT1JJR0lOIHwKKwkJCQkJICBTVUJPUFRfQ09ORkxJQ1RfTE9HX0RFU1QpOwogCXBhcnNlX3N1 YnNjcmlwdGlvbl9vcHRpb25zKHBzdGF0ZSwgc3RtdC0+b3B0aW9ucywgc3VwcG9ydGVkX29wdHMs ICZvcHRzKTsKIAogCS8qCkBAIC04NDgsNiArODczLDIwIEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQ YXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJdmFsdWVz W0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1Ym9yaWdpbiAtIDFdID0KIAkJQ1N0cmluZ0dldFRleHRE YXR1bShvcHRzLm9yaWdpbik7CiAKKwl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29u ZmxpY3Rsb2dkZXN0IC0gMV0gPQorCQlDU3RyaW5nR2V0VGV4dERhdHVtKENvbmZsaWN0TG9nRGVz dE5hbWVzW29wdHMuY29uZmxpY3Rsb2dkZXN0XSk7CisKKwkvKgorCSAqIFdlIGNyZWF0ZSB0aGUg Y29uZmxpY3QgbG9nIHRhYmxlIGhlcmUsIGlmIHJlcXVpcmVkLCBzbyB0aGF0IGl0cyByZWxhdGlv bgorCSAqIE9JRCBjYW4gYmUgc3RvcmVkIHdoZW4gaW5zZXJ0aW5nIHRoZSBwZ19zdWJzY3JpcHRp b24gdHVwbGUgYmVsb3cuCisJICovCisJaWYgKENPTkZMSUNUU19MT0dHRURfVE9fVEFCTEUob3B0 cy5jb25mbGljdGxvZ2Rlc3QpKQorCQlsb2dyZWxpZCA9IGNyZWF0ZV9jb25mbGljdF9sb2dfdGFi bGUoc3ViaWQsIHN0bXQtPnN1Ym5hbWUsIG93bmVyKTsKKworCS8qIFN0b3JlIHRhYmxlIE9JRCBp biB0aGUgY2F0YWxvZy4gKi8KKwl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxp Y3Rsb2dyZWxpZCAtIDFdID0KKwkJCQkJCU9iamVjdElkR2V0RGF0dW0obG9ncmVsaWQpOworCiAJ dHVwID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBudWxs cyk7CiAKIAkvKiBJbnNlcnQgdHVwbGUgaW50byBjYXRhbG9nLiAqLwpAQCAtODY4LDYgKzkwNywy NSBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3Jp cHRpb25TdG10ICpzdG10LAogCQlyZWNvcmREZXBlbmRlbmN5T24oJm15c2VsZiwgJnJlZmVyZW5j ZWQsIERFUEVOREVOQ1lfTk9STUFMKTsKIAl9CiAKKwkvKgorCSAqIEVzdGFibGlzaCBhbiBpbnRl cm5hbCBkZXBlbmRlbmN5IGJldHdlZW4gdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSBhbmQKKwkgKiB0 aGUgc3Vic2NyaXB0aW9uLgorCSAqCisJICogV2UgdXNlIERFUEVOREVOQ1lfSU5URVJOQUwgdG8g c2lnbmlmeSB0aGF0IHRoZSB0YWJsZSdzIGxpZmVjeWNsZSBpcworCSAqIHN0cmljdGx5IHRpZWQg dG8gdGhlIHN1YnNjcmlwdGlvbiwgc2ltaWxhciB0byBob3cgYSBUT0FTVCB0YWJsZSByZWxhdGVz CisJICogdG8gaXRzIG1haW4gdGFibGUgb3IgYSBzZXF1ZW5jZSByZWxhdGVzIHRvIGFuIGlkZW50 aXR5IGNvbHVtbi4KKwkgKgorCSAqIFRoaXMgZW5zdXJlcyB0aGUgY29uZmxpY3QgbG9nIHRhYmxl IGlzIGF1dG9tYXRpY2FsbHkgcmVhcGVkIGR1cmluZyBhCisJICogRFJPUCBTVUJTQ1JJUFRJT04g dmlhIHBlcmZvcm1EZWxldGlvbigpLgorCSAqLworCWlmIChPaWRJc1ZhbGlkKGxvZ3JlbGlkKSkK Kwl7CisJCU9iamVjdEFkZHJlc3MgY2x0YWRkcjsKKworCQlPYmplY3RBZGRyZXNzU2V0KGNsdGFk ZHIsIFJlbGF0aW9uUmVsYXRpb25JZCwgbG9ncmVsaWQpOworCQlyZWNvcmREZXBlbmRlbmN5T24o JmNsdGFkZHIsICZteXNlbGYsIERFUEVOREVOQ1lfSU5URVJOQUwpOworCX0KKwogCS8qCiAJICog QSByZXBsaWNhdGlvbiBvcmlnaW4gaXMgY3VycmVudGx5IGNyZWF0ZWQgZm9yIGFsbCBzdWJzY3Jp cHRpb25zLAogCSAqIGluY2x1ZGluZyB0aG9zZSB0aGF0IG9ubHkgY29udGFpbiBzZXF1ZW5jZXMg b3IgYXJlIG90aGVyd2lzZSBlbXB0eS4KQEAgLTE0MzcsNiArMTQ5NSw3MSBAQCBDaGVja0FsdGVy U3ViT3B0aW9uKFN1YnNjcmlwdGlvbiAqc3ViLCBjb25zdCBjaGFyICpvcHRpb24sCiAJfQogfQog CisvKgorICogYWx0ZXJfc3ViX2NvbmZsaWN0X2xvZ19kZXN0CisgKgorICogV2hlbiB0aGUgc3Vi c2NyaXB0aW9uJ3MgJ2NvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbicgaXMgY2hhbmdlZCwgdXBkYXRl IHRoZQorICogY29uZmxpY3QgbG9nIHRhYmxlIGlmIHJlcXVpcmVkLgorICoKKyAqIElmIHRoZSBu ZXcgZGVzdGluYXRpb24gbm8gbG9uZ2VyIHJlcXVpcmVzIGEgY29uZmxpY3QgbG9nIHRhYmxlLCB0 aGUgZXhpc3RpbmcKKyAqIGNvbmZsaWN0IGxvZyB0YWJsZSBhc3NvY2lhdGVkIHdpdGggdGhlIHN1 YnNjcmlwdGlvbiBpcyByZW1vdmVkIHZpYSBpbnRlcm5hbAorICogZGVwZW5kZW5jeSBjbGVhbnVw IHRvIHByZXZlbnQgb3JwaGFuZWQgcmVsYXRpb25zLgorICoKKyAqIE9uIHN1Y2Nlc3MsICpjb25m bGljdHRhYmxlcmVsaWQgaXMgc2V0IHRvIHRoZSBPSUQgb2YgdGhlIGNvbmZsaWN0IGxvZyB0YWJs ZQorICogdGhhdCB3YXMgY3JlYXRlZCBvciB2YWxpZGF0ZWQsIG9yIHRvIEludmFsaWRPaWQgaWYg bm8gdGFibGUgaXMgcmVxdWlyZWQuCisgKgorICogUmV0dXJucyB0cnVlIGlmIHRoZSBzdWJzY3Jp cHRpb24ncyBjb25mbGljdCBsb2cgdGFibGUgcmVmZXJlbmNlIG11c3QgYmUKKyAqIHVwZGF0ZWQg YXMgYSByZXN1bHQgb2YgdGhlIGRlc3RpbmF0aW9uIGNoYW5nZTsgZmFsc2Ugb3RoZXJ3aXNlLgor ICovCitzdGF0aWMgYm9vbAorYWx0ZXJfc3ViX2NvbmZsaWN0X2xvZ19kZXN0KFN1YnNjcmlwdGlv biAqc3ViLCBDb25mbGljdExvZ0Rlc3Qgb2xkbG9nZGVzdCwKKwkJCQkJCQlDb25mbGljdExvZ0Rl c3QgbmV3bG9nZGVzdCwKKwkJCQkJCQlPaWQgKmNvbmZsaWN0dGFibGVyZWxpZCkKK3sKKwlib29s CQl3YW50X3RhYmxlOworCWJvb2wJCWhhc19vbGR0YWJsZTsKKwlib29sCQl1cGRhdGVfcmVsaWQg PSBmYWxzZTsKKwlPaWQJCQlyZWxpZCA9IEludmFsaWRPaWQ7CisKKwl3YW50X3RhYmxlID0gQ09O RkxJQ1RTX0xPR0dFRF9UT19UQUJMRShuZXdsb2dkZXN0KTsKKwloYXNfb2xkdGFibGUgPSBDT05G TElDVFNfTE9HR0VEX1RPX1RBQkxFKG9sZGxvZ2Rlc3QpOworCisJaWYgKGhhc19vbGR0YWJsZSkK Kwl7CisJCS8qIFRoZXJlIGlzIGEgY29uZmxpY3QgbG9nIHRhYmxlIGFscmVhZHkuICovCisJCWlm ICghd2FudF90YWJsZSkKKwkJeworCQkJZHJvcF9zdWJfY29uZmxpY3RfbG9nX3RhYmxlKHN1Yi0+ b2lkLCBzdWItPm5hbWUsCisJCQkJCQkJCQkJc3ViLT5jb25mbGljdGxvZ3JlbGlkKTsKKwkJCXVw ZGF0ZV9yZWxpZCA9IHRydWU7CisJCX0KKwl9CisJZWxzZQorCXsKKwkJLyogVGhlcmUgd2FzIG5v IHByZXZpb3VzIGNvbmZsaWN0IGxvZyB0YWJsZS4gKi8KKwkJaWYgKHdhbnRfdGFibGUpCisJCXsK KwkJCU9iamVjdEFkZHJlc3MgY2x0YWRkcjsKKwkJCU9iamVjdEFkZHJlc3Mgc3Vib2JqOworCisJ CQlyZWxpZCA9IGNyZWF0ZV9jb25mbGljdF9sb2dfdGFibGUoc3ViLT5vaWQsIHN1Yi0+bmFtZSwg c3ViLT5vd25lcik7CisJCQl1cGRhdGVfcmVsaWQgPSB0cnVlOworCisJCQkvKgorCQkJICogRXN0 YWJsaXNoIGFuIGludGVybmFsIGRlcGVuZGVuY3kgYmV0d2VlbiB0aGUgY29uZmxpY3QgbG9nIHRh YmxlCisJCQkgKiBhbmQgdGhlIHN1YnNjcmlwdGlvbi4gIEZvciBkZXRhaWxzIHJlZmVyIGNvbW1l bnRzIGluCisJCQkgKiBDcmVhdGVTdWJzY3JpcHRpb24gZnVuY3Rpb24uCisJCQkgKi8KKwkJCU9i amVjdEFkZHJlc3NTZXQoY2x0YWRkciwgUmVsYXRpb25SZWxhdGlvbklkLCByZWxpZCk7CisJCQlP YmplY3RBZGRyZXNzU2V0KHN1Ym9iaiwgU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViLT5vaWQp OworCQkJcmVjb3JkRGVwZW5kZW5jeU9uKCZjbHRhZGRyLCAmc3Vib2JqLCBERVBFTkRFTkNZX0lO VEVSTkFMKTsKKwkJfQorCX0KKworCSpjb25mbGljdHRhYmxlcmVsaWQgPSByZWxpZDsKKwlyZXR1 cm4gdXBkYXRlX3JlbGlkOworfQorCiAvKgogICogQWx0ZXIgdGhlIGV4aXN0aW5nIHN1YnNjcmlw dGlvbi4KICAqLwpAQCAtMTQ5OSw3ICsxNjIyLDggQEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VT dGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJCQkJICBTVUJP UFRfUkVUQUlOX0RFQURfVFVQTEVTIHwKIAkJCQkJCQkgIFNVQk9QVF9NQVhfUkVURU5USU9OX0RV UkFUSU9OIHwKIAkJCQkJCQkgIFNVQk9QVF9XQUxfUkVDRUlWRVJfVElNRU9VVCB8Ci0JCQkJCQkJ ICBTVUJPUFRfT1JJR0lOKTsKKwkJCQkJCQkgIFNVQk9QVF9PUklHSU4gfAorCQkJCQkJCSAgU1VC T1BUX0NPTkZMSUNUX0xPR19ERVNUKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgQUxURVJfU1VCU0NS SVBUSU9OX0VOQUJMRUQ6CkBAIC0xODU4LDYgKzE5ODIsMzQgQEAgQWx0ZXJTdWJzY3JpcHRpb24o UGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJCXJl cGxhY2VzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YndhbHJjdnRpbWVvdXQgLSAxXSA9IHRydWU7 CiAJCQkJfQogCisJCQkJaWYgKElzU2V0KG9wdHMuc3BlY2lmaWVkX29wdHMsIFNVQk9QVF9DT05G TElDVF9MT0dfREVTVCkpCisJCQkJeworCQkJCQlDb25mbGljdExvZ0Rlc3Qgb2xkX2Rlc3QgPQor CQkJCQkJCUdldENvbmZsaWN0TG9nRGVzdChzdWItPmNvbmZsaWN0bG9nZGVzdCk7CisKKwkJCQkJ aWYgKG9wdHMuY29uZmxpY3Rsb2dkZXN0ICE9IG9sZF9kZXN0KQorCQkJCQl7CisJCQkJCQlib29s CQl1cGRhdGVfcmVsaWQ7CisJCQkJCQlPaWQJCQlyZWxpZCA9IEludmFsaWRPaWQ7CisKKwkJCQkJ CXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGljdGxvZ2Rlc3QgLSAxXSA9CisJ CQkJCQkJQ1N0cmluZ0dldFRleHREYXR1bShDb25mbGljdExvZ0Rlc3ROYW1lc1tvcHRzLmNvbmZs aWN0bG9nZGVzdF0pOworCQkJCQkJcmVwbGFjZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29u ZmxpY3Rsb2dkZXN0IC0gMV0gPSB0cnVlOworCisJCQkJCQl1cGRhdGVfcmVsaWQgPSBhbHRlcl9z dWJfY29uZmxpY3RfbG9nX2Rlc3Qoc3ViLAorCQkJCQkJCQkJCQkJCQkJCSAgIG9sZF9kZXN0LAor CQkJCQkJCQkJCQkJCQkJCSAgIG9wdHMuY29uZmxpY3Rsb2dkZXN0LAorCQkJCQkJCQkJCQkJCQkJ CSAgICZyZWxpZCk7CisJCQkJCQlpZiAodXBkYXRlX3JlbGlkKQorCQkJCQkJeworCQkJCQkJCXZh bHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGljdGxvZ3JlbGlkIC0gMV0gPQorCQkJ CQkJCQlPYmplY3RJZEdldERhdHVtKHJlbGlkKTsKKwkJCQkJCQlyZXBsYWNlc1tBbnVtX3BnX3N1 YnNjcmlwdGlvbl9zdWJjb25mbGljdGxvZ3JlbGlkIC0gMV0gPQorCQkJCQkJCQl0cnVlOworCQkJ CQkJfQorCQkJCQl9CisJCQkJfQorCiAJCQkJdXBkYXRlX3R1cGxlID0gdHJ1ZTsKIAkJCQlicmVh azsKIAkJCX0KQEAgLTIyOTcsNiArMjQ0OSw1MSBAQCBjb25zdHJ1Y3Rfc3Vic2VydmVyX2Nvbm5p bmZvKE9pZCBzdWJzZXJ2ZXIsIE9pZCBzdWJvd25lciwgY2hhciAqKmVycikKIAlyZXR1cm4gRm9y ZWlnblNlcnZlckNvbm5lY3Rpb25TdHJpbmcoc3Vib3duZXIsIHNlcnZlcik7CiB9CiAKKy8qCisg KiBEcm9wIHN1YnNjcmlwdGlvbidzIGNvbmZsaWN0IGxvZyB0YWJsZQorICoKKyAqIFRoZSBjb25m bGljdCBsb2cgdGFibGUgaXMgcmVnaXN0ZXJlZCBhcyBhbiBpbnRlcm5hbCBkZXBlbmRlbmN5IG9m IHRoZQorICogc3Vic2NyaXB0aW9uLiBUaGlzIGZ1bmN0aW9uIHJlbW92ZXMgdGhlIGRlcGVuZGVu Y3kgYnkgcGVyZm9ybWluZyBhCisgKiBjYXNjYWRpbmcgZGVsZXRpb24gb24gdGhlIHN1YnNjcmlw dGlvbiBvYmplY3QsIHdoaWNoIGluIHR1cm4gZHJvcHMgdGhlCisgKiBhc3NvY2lhdGVkIGNvbmZs aWN0IGxvZyB0YWJsZS4KKyAqCisgKiBUaGlzIGlzIHVzZWQgdG8gY2xlYW4gdXAgY29uZmxpY3Qg bG9nIHRhYmxlcyB0aGF0IGFyZSBubyBsb25nZXIgcmVxdWlyZWQsCisgKiBwcmV2ZW50aW5nIGFj Y3VtdWxhdGlvbiBvZiBzdGFsZSBvciBvcnBoYW5lZCByZWxhdGlvbnMuCisgKgorICogTk9URToK KyAqIE9ubHkgY29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgY3VycmVudGx5IG1hbmFnZWQgdmlhIHRo aXMgaW50ZXJuYWwgZGVwZW5kZW5jeQorICogbWVjaGFuaXNtLgorICovCitzdGF0aWMgdm9pZAor ZHJvcF9zdWJfY29uZmxpY3RfbG9nX3RhYmxlKE9pZCBzdWJpZCwgY2hhciAqc3VibmFtZSwgT2lk IHN1YmNvbmZsaWN0bG9ncmVsaWQpCit7CisJLyogRHJvcCBhbnkgZGVwZW5kZW50IGNvbmZsaWN0 IGxvZyB0YWJsZSAqLworCWlmIChPaWRJc1ZhbGlkKHN1YmNvbmZsaWN0bG9ncmVsaWQpKQorCXsK KwkJT2JqZWN0QWRkcmVzcyBvYmplY3Q7CisJCWNoYXIgCQkgKmNvbmZsaWN0cmVsbmFtZTsKKwor CQljb25mbGljdHJlbG5hbWUgPSBnZXRfcmVsX25hbWUoc3ViY29uZmxpY3Rsb2dyZWxpZCk7CisJ CWlmIChjb25mbGljdHJlbG5hbWUgPT0gTlVMTCkKKwkJCWVsb2coRVJST1IsICJjYWNoZSBsb29r dXAgZmFpbGVkIGZvciByZWxhdGlvbiAldSIsCisJCQkJIHN1YmNvbmZsaWN0bG9ncmVsaWQpOwor CisJCS8qCisJCSAqIEJ5IHVzaW5nIFBFUkZPUk1fREVMRVRJT05fU0tJUF9PUklHSU5BTCwgd2Ug ZW5zdXJlIHRoYXQgb25seSB0aGUKKwkJICogY29uZmxpY3QgbG9nIHRhYmxlIGlzIGRlbGV0ZWQg d2hpbGUgdGhlIHN1YnNjcmlwdGlvbiByZW1haW5zLgorCQkgKi8KKwkJT2JqZWN0QWRkcmVzc1Nl dChvYmplY3QsIFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIHN1YmlkKTsKKwkJcGVyZm9ybURlbGV0 aW9uKCZvYmplY3QsIERST1BfQ0FTQ0FERSwKKwkJCQkJCVBFUkZPUk1fREVMRVRJT05fSU5URVJO QUwgfAorCQkJCQkJUEVSRk9STV9ERUxFVElPTl9TS0lQX09SSUdJTkFMKTsKKworCQllcmVwb3J0 KE5PVElDRSwKKwkJCQllcnJtc2coImRyb3BwZWQgY29uZmxpY3QgbG9nIHRhYmxlIFwiJXNcIiBm b3Igc3Vic2NyaXB0aW9uIFwiJXNcIiIsCisJCQkJCQlnZXRfcXVhbGlmaWVkX29iam5hbWUoUEdf Q09ORkxJQ1RfTkFNRVNQQUNFLCBjb25mbGljdHJlbG5hbWUpLAorCQkJCQkJc3VibmFtZSkpOwor CX0KK30KKwogLyoKICAqIERyb3AgYSBzdWJzY3JpcHRpb24KICAqLwpAQCAtMjMwOSw2ICsyNTA2 LDcgQEAgRHJvcFN1YnNjcmlwdGlvbihEcm9wU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwgYm9vbCBp c1RvcExldmVsKQogCU9pZAkJCXN1YmlkOwogCU9pZAkJCXN1Ym93bmVyOwogCU9pZAkJCXN1YnNl cnZlcjsKKwlPaWQJCQlzdWJjb25mbGljdGxvZ3JlbGlkOwogCWNoYXIJICAgKnN1YmNvbm5pbmZv ID0gTlVMTDsKIAlEYXR1bQkJZGF0dW07CiAJYm9vbAkJaXNudWxsOwpAQCAtMjM2MSw2ICsyNTU5 LDcgQEAgRHJvcFN1YnNjcmlwdGlvbihEcm9wU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwgYm9vbCBp c1RvcExldmVsKQogCXN1YmlkID0gZm9ybS0+b2lkOwogCXN1Ym93bmVyID0gZm9ybS0+c3Vib3du ZXI7CiAJc3Vic2VydmVyID0gZm9ybS0+c3Vic2VydmVyOworCXN1YmNvbmZsaWN0bG9ncmVsaWQg PSBmb3JtLT5zdWJjb25mbGljdGxvZ3JlbGlkOwogCW11c3RfdXNlX3Bhc3N3b3JkID0gIXN1cGVy dXNlcl9hcmcoc3Vib3duZXIpICYmIGZvcm0tPnN1YnBhc3N3b3JkcmVxdWlyZWQ7CiAKIAkvKiBt dXN0IGJlIG93bmVyICovCkBAIC0yNDc4LDYgKzI2NzcsOSBAQCBEcm9wU3Vic2NyaXB0aW9uKERy b3BTdWJzY3JpcHRpb25TdG10ICpzdG10LCBib29sIGlzVG9wTGV2ZWwpCiAJCXJlcGxvcmlnaW5f ZHJvcF9ieV9uYW1lKG9yaWdpbm5hbWUsIHRydWUsIGZhbHNlKTsKIAl9CiAKKwkvKiBEcm9wIHN1 YnNjcmlwdGlvbidzIGNvbmZsaWN0IGxvZyB0YWJsZSAqLworCWRyb3Bfc3ViX2NvbmZsaWN0X2xv Z190YWJsZShzdWJpZCwgc3VibmFtZSwgc3ViY29uZmxpY3Rsb2dyZWxpZCk7CisKIAkvKiBDbGVh biB1cCBkZXBlbmRlbmNpZXMgKi8KIAlkZWxldGVEZXBlbmRlbmN5UmVjb3Jkc0ZvcihTdWJzY3Jp cHRpb25SZWxhdGlvbklkLCBzdWJpZCwgZmFsc2UpOwogCWRlbGV0ZVNoYXJlZERlcGVuZGVuY3lS ZWNvcmRzRm9yKFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIHN1YmlkLCAwKTsKQEAgLTI3MjIsNiAr MjkyNCwxMSBAQCBBbHRlclN1YnNjcmlwdGlvbk93bmVyX2ludGVybmFsKFJlbGF0aW9uIHJlbCwg SGVhcFR1cGxlIHR1cCwgT2lkIG5ld093bmVySWQpCiAJZm9ybS0+c3Vib3duZXIgPSBuZXdPd25l cklkOwogCUNhdGFsb2dUdXBsZVVwZGF0ZShyZWwsICZ0dXAtPnRfc2VsZiwgdHVwKTsKIAorCS8q IFVwZGF0ZSBvd25lciBvZiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIGlmIGl0IGV4aXN0cy4gKi8K KwlpZiAoT2lkSXNWYWxpZChmb3JtLT5zdWJjb25mbGljdGxvZ3JlbGlkKSkKKwkJQVRFeGVjQ2hh bmdlT3duZXIoZm9ybS0+c3ViY29uZmxpY3Rsb2dyZWxpZCwgbmV3T3duZXJJZCwgdHJ1ZSwKKwkJ CQkJCSAgQWNjZXNzRXhjbHVzaXZlTG9jayk7CisKIAkvKiBVcGRhdGUgb3duZXIgZGVwZW5kZW5j eSByZWZlcmVuY2UgKi8KIAljaGFuZ2VEZXBlbmRlbmN5T25Pd25lcihTdWJzY3JpcHRpb25SZWxh dGlvbklkLAogCQkJCQkJCWZvcm0tPm9pZCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXgg MzNlMDY1ZDYxY2UuLjQzYmU5YzdlYjRlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAt MjQ1Nyw5ICsyNDU3LDExIEBAIHRydW5jYXRlX2NoZWNrX3JlbChPaWQgcmVsaWQsIEZvcm1fcGdf Y2xhc3MgcmVsdHVwbGUpCiAJICogcGdfbGFyZ2VvYmplY3QgYW5kIHBnX2xhcmdlb2JqZWN0X21l dGFkYXRhIHRvIGJlIHRydW5jYXRlZCBhcyBwYXJ0IG9mCiAJICogcGdfdXBncmFkZSwgYmVjYXVz ZSB3ZSBuZWVkIHRvIGNoYW5nZSBpdHMgcmVsZmlsZW5vZGUgdG8gbWF0Y2ggdGhlIG9sZAogCSAq IGNsdXN0ZXIsIGFuZCBhbGxvd2luZyBhIFRSVU5DQVRFIGNvbW1hbmQgdG8gYmUgZXhlY3V0ZWQg aXMgdGhlIGVhc2llc3QKLQkgKiB3YXkgb2YgZG9pbmcgdGhhdC4KKwkgKiB3YXkgb2YgZG9pbmcg dGhhdC4gV2UgYWxzbyBhbGxvdyBUUlVOQ0FURSBvbiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlcywK KwkgKiB0byBwZXJtaXQgdXNlcnMgdG8gbWFudWFsbHkgcHJ1bmUgY29uZmxpY3QgZGF0YSB0byBt YW5hZ2UgZGlzayBzcGFjZS4KIAkgKi8KLQlpZiAoIWFsbG93U3lzdGVtVGFibGVNb2RzICYmIElz U3lzdGVtQ2xhc3MocmVsaWQsIHJlbHR1cGxlKQorCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMg JiYgSXNTeXN0ZW1DbGFzcyhyZWxpZCwgcmVsdHVwbGUpICYmCisJCSFJc0NvbmZsaWN0TG9nVGFi bGVDbGFzcyhyZWx0dXBsZSkKIAkJJiYgKCFJc0JpbmFyeVVwZ3JhZGUgfHwKIAkJCShyZWxpZCAh PSBMYXJnZU9iamVjdFJlbGF0aW9uSWQgJiYKIAkJCSByZWxpZCAhPSBMYXJnZU9iamVjdE1ldGFk YXRhUmVsYXRpb25JZCkpKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01h aW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKaW5kZXggNGIzMGY3Njg2ODAu LjY3NjBhYWNlZTYzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5j CisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKQEAgLTExODcsNiArMTE4Nywy NCBAQCBDaGVja1ZhbGlkUmVzdWx0UmVsKFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sIENt ZFR5cGUgb3BlcmF0aW9uLAogCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlc3VsdFJl bCkpKSk7CiAJCQlicmVhazsKIAl9CisKKwkvKgorCSAqIENvbmZsaWN0IGxvZyB0YWJsZXMgYXJl IG1hbmFnZWQgYnkgdGhlIHN5c3RlbSB0byByZWNvcmQgbG9naWNhbAorCSAqIHJlcGxpY2F0aW9u IGNvbmZsaWN0cy4gIFdlIGFsbG93IERFTEVURSBhbmQgVFJVTkNBVEUgdG8gcGVybWl0IHVzZXJz IHRvCisJICogbWFudWFsbHkgcHJ1bmUgdGhlc2UgbG9ncywgYnV0IG1hbnVhbCBkYXRhIGluc2Vy dGlvbiBvciBtb2RpZmljYXRpb24KKwkgKiAoSU5TRVJULCBVUERBVEUsIE1FUkdFKSBpcyBwcm9o aWJpdGVkIHRvIG1haW50YWluIHRoZSBpbnRlZ3JpdHkgb2YgdGhlCisJICogc3lzdGVtLWdlbmVy YXRlZCBsb2dzLgorCSAqCisJICogU2luY2UgVFJVTkNBVEUgaXMgaGFuZGxlZCBhcyBhIHNlcGFy YXRlIHV0aWxpdHkgY29tbWFuZCwgd2Ugb25seSBuZWVkCisJICogdG8gZXhwbGljaXRseSBwZXJt aXQgQ01EX0RFTEVURSBoZXJlLgorCSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVOYW1lc3Bh Y2UoUmVsYXRpb25HZXROYW1lc3BhY2UocmVzdWx0UmVsKSkgJiYKKwkJb3BlcmF0aW9uICE9IENN RF9ERUxFVEUpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19P QkpFQ1RfVFlQRSksCisJCQkJIGVycm1zZygiY2Fubm90IG1vZGlmeSBvciBpbnNlcnQgZGF0YSBp bnRvIGNvbmZsaWN0IGxvZyB0YWJsZSBcIiVzXCIiLAorCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlv bk5hbWUocmVzdWx0UmVsKSksCisJCQkJIGVycmRldGFpbCgiQ29uZmxpY3QgbG9nIHRhYmxlcyBh cmUgc3lzdGVtLW1hbmFnZWQgYW5kIG9ubHkgc3VwcG9ydCBjbGVhbnVwIHVzaW5nIERFTEVURSBv ciBUUlVOQ0FURS4iKSkpOwogfQogCiAvKgpAQCAtMTI1OCw2ICsxMjc2LDE2IEBAIENoZWNrVmFs aWRSb3dNYXJrUmVsKFJlbGF0aW9uIHJlbCwgUm93TWFya1R5cGUgbWFya1R5cGUpCiAJCQkJCQkJ UmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKIAkJCWJyZWFrOwogCX0KKworCS8qCisJ ICogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgbWFuYWdlZCBieSB0aGUgc3lzdGVtIHRvIHJlY29y ZCBsb2dpY2FsCisJICogcmVwbGljYXRpb24gY29uZmxpY3RzLgorCSAqLworCWlmIChJc0NvbmZs aWN0TG9nVGFibGVOYW1lc3BhY2UoUmVsYXRpb25HZXROYW1lc3BhY2UocmVsKSkpCisJCWVyZXBv cnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJ IGVycm1zZygiY2Fubm90IGxvY2sgcm93cyBpbiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIFwiJXNc IiIsCisJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOwogfQogCiAvKgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jIGIvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jCmluZGV4IDFmOGQ2N2ZkZDkw Li5hZTFkMjZmMzllMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC9jb25mbGljdC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvY29uZmxp Y3QuYwpAQCAtMTcsNiArMTcsMTAgQEAKICNpbmNsdWRlICJhY2Nlc3MvY29tbWl0X3RzLmgiCiAj aW5jbHVkZSAiYWNjZXNzL2dlbmFtLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3RhYmxlYW0uaCIKKyNp bmNsdWRlICJjYXRhbG9nL2hlYXAuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2FtLmgiCisjaW5j bHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3RvYXN0aW5n LmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJwZ3N0YXQuaCIK ICNpbmNsdWRlICJyZXBsaWNhdGlvbi9jb25mbGljdC5oIgpAQCAtMjQsNiArMjgsNTkgQEAKICNp bmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKIAor LyoKKyAqIFN0cmluZyByZXByZXNlbnRhdGlvbnMgZm9yIHRoZSBzdXBwb3J0ZWQgY29uZmxpY3Qg bG9nZ2luZyBkZXN0aW5hdGlvbnMuCisgKi8KK2NvbnN0IGNoYXIgKmNvbnN0IENvbmZsaWN0TG9n RGVzdE5hbWVzW10gPSB7CisJW0NPTkZMSUNUX0xPR19ERVNUX0xPR10gPSAibG9nIiwKKwlbQ09O RkxJQ1RfTE9HX0RFU1RfVEFCTEVdID0gInRhYmxlIiwKKwlbQ09ORkxJQ1RfTE9HX0RFU1RfQUxM XSA9ICJhbGwiCit9OworCitTdGF0aWNBc3NlcnREZWNsKGxlbmd0aG9mKENvbmZsaWN0TG9nRGVz dE5hbWVzKSA9PSBDT05GTElDVF9MT0dfREVTVF9BTEwgKyAxLAorCQkJCSAiQ29uZmxpY3RMb2dE ZXN0TmFtZXMgbGVuZ3RoIG1pc21hdGNoIik7CisKKworLyogU3RydWN0dXJlIHRvIGhvbGQgbWV0 YWRhdGEgZm9yIG9uZSBjb2x1bW4gb2YgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSAqLwordHlwZWRl ZiBzdHJ1Y3QgQ29uZmxpY3RMb2dDb2x1bW5EZWYKK3sKKwljb25zdCBjaGFyICphdHRuYW1lOyAg ICAvKiBDb2x1bW4gbmFtZSAqLworCU9pZCAgICAgICAgIGF0dHR5cGlkOyAgIC8qIERhdGEgdHlw ZSBPSUQgKi8KK30gQ29uZmxpY3RMb2dDb2x1bW5EZWY7CisKKy8qCisgKiBTY2hlbWEgZGVmaW5p dGlvbiBmb3IgY29uZmxpY3QgbG9nIHRhYmxlcy4KKyAqCisgKiBEZWZpbmVzIHRoZSBmaXhlZCBz Y2hlbWEgb2YgdGhlIHBlci1zdWJzY3JpcHRpb24gY29uZmxpY3QgbG9nIHRhYmxlIGNyZWF0ZWQK KyAqIGluIHRoZSBwZ19jb25mbGljdCBuYW1lc3BhY2UuIEVhY2ggZW50cnkgc3BlY2lmaWVzIHRo ZSBjb2x1bW4gbmFtZSBhbmQgaXRzCisgKiB0eXBlIE9JRDsgdGhlIHRhYmxlIGlzIGNyZWF0ZWQg aW4gdGhpcyBjb2x1bW4gb3JkZXIgYnkKKyAqIGNyZWF0ZV9jb25mbGljdF9sb2dfdGFibGUoKS4K KyAqCisgKiBUaGUgdHVwbGUva2V5IGNvbHVtbnMgKHJlcGxpY2FfaWRlbnRpdHksIHJlbW90ZV90 dXBsZSwgbG9jYWxfY29uZmxpY3RzKSBhcmUKKyAqIHR5cGVkIGpzb24gcmF0aGVyIHRoYW4ganNv bmIgb24gcHVycG9zZTogdGhleSBob2xkIGFuIGV4YWN0IGF1ZGl0IHNuYXBzaG90CisgKiBvZiB0 aGUgYXBwbGllZCB0dXBsZXMgYW5kIHJlcGxpY2EgaWRlbnRpdHksIGFuZCBqc29uIHByZXNlcnZl cyB0aGUgdmVyYmF0aW0KKyAqIHJlcHJlc2VudGF0aW9uIHdoZXJlYXMganNvbmIgd291bGQgbm9y bWFsaXplIGl0LiBJbmRleGluZyB0aGVtIChqc29uYidzIG1haW4KKyAqIGFkdmFudGFnZSkgd291 bGRuJ3QgaGVscCBhbnl3YXksIGFzIHRoZSBjb25mbGljdCBsb2cgaXMgbG9va2VkIHVwIGJ5IGl0 cworICogc2NhbGFyIGNvbHVtbnMocmVsaWQsIGNvbmZsaWN0X3R5cGUsIGNvbW1pdCB0aW1lc3Rh bXApIHdoaWxlIHRoZXNlIEpTT04KKyAqIGNvbHVtbnMgYXJlIHBlci1jb25mbGljdCBwYXlsb2Fk IHRvIGluc3BlY3QsIG5vdCBzZWFyY2gga2V5cy4KKyAqLworc3RhdGljIGNvbnN0IENvbmZsaWN0 TG9nQ29sdW1uRGVmIENvbmZsaWN0TG9nU2NoZW1hW10gPSB7CisJeyAuYXR0bmFtZSA9ICJyZWxp ZCIsICAgICAgICAgICAgLmF0dHR5cGlkID0gT0lET0lEIH0sCisJeyAuYXR0bmFtZSA9ICJzY2hl bWFuYW1lIiwgICAgICAgLmF0dHR5cGlkID0gVEVYVE9JRCB9LAorCXsgLmF0dG5hbWUgPSAicmVs bmFtZSIsICAgICAgICAgIC5hdHR0eXBpZCA9IFRFWFRPSUQgfSwKKwl7IC5hdHRuYW1lID0gImNv bmZsaWN0X3R5cGUiLCAgICAuYXR0dHlwaWQgPSBURVhUT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJy ZW1vdGVfeGlkIiwgICAgICAgLmF0dHR5cGlkID0gWElET0lEIH0sCisJeyAuYXR0bmFtZSA9ICJy ZW1vdGVfY29tbWl0X2xzbiIsLmF0dHR5cGlkID0gTFNOT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJy ZW1vdGVfY29tbWl0X3RzIiwgLmF0dHR5cGlkID0gVElNRVNUQU1QVFpPSUQgfSwKKwl7IC5hdHRu YW1lID0gInJlbW90ZV9vcmlnaW4iLCAgICAuYXR0dHlwaWQgPSBURVhUT0lEIH0sCisJeyAuYXR0 bmFtZSA9ICJyZXBsaWNhX2lkZW50aXR5X2Z1bGwiLCAuYXR0dHlwaWQgPSBCT09MT0lEIH0sCisJ eyAuYXR0bmFtZSA9ICJyZXBsaWNhX2lkZW50aXR5IiwgICAgICAuYXR0dHlwaWQgPSBKU09OT0lE IH0sCisJeyAuYXR0bmFtZSA9ICJyZW1vdGVfdHVwbGUiLCAgICAgICAgICAuYXR0dHlwaWQgPSBK U09OT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJsb2NhbF9jb25mbGljdHMiLCAgICAgICAuYXR0dHlw aWQgPSBKU09OQVJSQVlPSUQgfQorfTsKKworI2RlZmluZSBOVU1fQ09ORkxJQ1RfQVRUUlMgbGVu Z3Rob2YoQ29uZmxpY3RMb2dTY2hlbWEpCisKIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBDb25m bGljdFR5cGVOYW1lc1tdID0gewogCVtDVF9JTlNFUlRfRVhJU1RTXSA9ICJpbnNlcnRfZXhpc3Rz IiwKIAlbQ1RfVVBEQVRFX09SSUdJTl9ESUZGRVJTXSA9ICJ1cGRhdGVfb3JpZ2luX2RpZmZlcnMi LApAQCAtNTQsNiArMTExLDEyMSBAQCBzdGF0aWMgdm9pZCBnZXRfdHVwbGVfZGVzYyhFU3RhdGUg KmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywKIHN0YXRpYyBjaGFyICpidWlsZF9pbmRl eF92YWx1ZV9kZXNjKEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiBsb2NhbHJlbCwKIAkJCQkJCQkJ CVR1cGxlVGFibGVTbG90ICpzbG90LCBPaWQgaW5kZXhvaWQpOwogCisvKgorICogQnVpbGRzIHRo ZSBUdXBsZURlc2MgZm9yIHRoZSBjb25mbGljdCBsb2cgdGFibGUuCisgKi8KK3N0YXRpYyBUdXBs ZURlc2MKK2NyZWF0ZV9jb25mbGljdF9sb2dfdGFibGVfdHVwZGVzYyh2b2lkKQoreworCVR1cGxl RGVzYwl0dXBkZXNjOworCisJdHVwZGVzYyA9IENyZWF0ZVRlbXBsYXRlVHVwbGVEZXNjKE5VTV9D T05GTElDVF9BVFRSUyk7CisKKwlmb3IgKGludCBpID0gMDsgaSA8IE5VTV9DT05GTElDVF9BVFRS UzsgaSsrKQorCQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgaSArIDEsCisJCQkJCQkgICBD b25mbGljdExvZ1NjaGVtYVtpXS5hdHRuYW1lLAorCQkJCQkJICAgQ29uZmxpY3RMb2dTY2hlbWFb aV0uYXR0dHlwaWQsCisJCQkJCQkgICAtMSwgMCk7CisKKwlUdXBsZURlc2NGaW5hbGl6ZSh0dXBk ZXNjKTsKKworCXJldHVybiB0dXBkZXNjOworfQorCisvKgorICogQ3JlYXRlIGEgc3RydWN0dXJl ZCBjb25mbGljdCBsb2cgdGFibGUgZm9yIGEgc3Vic2NyaXB0aW9uLgorICoKKyAqIFRoZSB0YWJs ZSBpcyBjcmVhdGVkIHdpdGhpbiB0aGUgc3lzdGVtLW1hbmFnZWQgJ3BnX2NvbmZsaWN0JyBuYW1l c3BhY2UgdG8KKyAqIHByZXZlbnQgdXNlcnMgZnJvbSBtYW51YWxseSBkcm9wcGluZyBvciBhbHRl cmluZyBpdC4gIFRoaXMgYWxzbyBwcmV2ZW50cworICogYWNjaWRlbnRhbCBuYW1lIGNvbGxpc2lv bnMgd2l0aCB1c2VyLWNyZWF0ZWQgdGFibGVzIHdpdGggdGhlIHNhbWUgbmFtZS4KKyAqCisgKiBU aGUgdGFibGUgbmFtZSBpcyBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSB1c2luZyB0aGUgc3Vic2Ny aXB0aW9uJ3MgT0lECisgKiAoZS5nLiwgInBnX2NvbmZsaWN0X2xvZ188c3ViaWQ+IikgdG8gZW5z dXJlIHVuaXF1ZW5lc3Mgd2l0aGluIHRoZQorICogY2x1c3RlciBhbmQgdG8gYXZvaWQgY29sbGlz aW9ucyBkdXJpbmcgc3Vic2NyaXB0aW9uIHJlbmFtZXMuCisgKi8KK09pZAorY3JlYXRlX2NvbmZs aWN0X2xvZ190YWJsZShPaWQgc3ViaWQsIGNoYXIgKnN1Ym5hbWUsIE9pZCBzdWJvd25lcikKK3sK KwlUdXBsZURlc2MJdHVwZGVzYzsKKwlPaWQJCQlyZWxpZDsKKwljaGFyICAgIAlyZWxuYW1lW05B TUVEQVRBTEVOXTsKKworCXNucHJpbnRmKHJlbG5hbWUsIE5BTUVEQVRBTEVOLCAicGdfY29uZmxp Y3RfbG9nXyV1Iiwgc3ViaWQpOworCisJLyogQnVpbGQgdGhlIHR1cGxlIGRlc2NyaXB0b3IgZm9y IHRoZSBuZXcgdGFibGUuICovCisJdHVwZGVzYyA9IGNyZWF0ZV9jb25mbGljdF9sb2dfdGFibGVf dHVwZGVzYygpOworCisJLyogQ3JlYXRlIGNvbmZsaWN0IGxvZyB0YWJsZS4gKi8KKwlyZWxpZCA9 IGhlYXBfY3JlYXRlX3dpdGhfY2F0YWxvZyhyZWxuYW1lLAorCQkJCQkJCQkJIFBHX0NPTkZMSUNU X05BTUVTUEFDRSwKKwkJCQkJCQkJCSAwLAkvKiB0YWJsZXNwYWNlICovCisJCQkJCQkJCQkgSW52 YWxpZE9pZCwgLyogcmVsaWQgKi8KKwkJCQkJCQkJCSBJbnZhbGlkT2lkLCAvKiByZWx0eXBlaWQg Ki8KKwkJCQkJCQkJCSBJbnZhbGlkT2lkLCAvKiByZWxvZnR5cGVpZCAqLworCQkJCQkJCQkJIHN1 Ym93bmVyLAorCQkJCQkJCQkJIEhFQVBfVEFCTEVfQU1fT0lELAorCQkJCQkJCQkJIHR1cGRlc2Ms CisJCQkJCQkJCQkgTklMLAorCQkJCQkJCQkJIFJFTEtJTkRfUkVMQVRJT04sCisJCQkJCQkJCQkg UkVMUEVSU0lTVEVOQ0VfUEVSTUFORU5ULAorCQkJCQkJCQkJIGZhbHNlLCAvKiBzaGFyZWRfcmVs YXRpb24gKi8KKwkJCQkJCQkJCSBmYWxzZSwgLyogbWFwcGVkX3JlbGF0aW9uICovCisJCQkJCQkJ CQkgT05DT01NSVRfTk9PUCwKKwkJCQkJCQkJCSAoRGF0dW0pIDAsIC8qIHJlbG9wdGlvbnMgKi8K KwkJCQkJCQkJCSBmYWxzZSwgLyogdXNlX3VzZXJfYWNsICovCisJCQkJCQkJCQkgdHJ1ZSwgLyog YWxsb3dfc3lzdGVtX3RhYmxlX21vZHMgKi8KKwkJCQkJCQkJCSB0cnVlLCAvKiBpc19pbnRlcm5h bCAqLworCQkJCQkJCQkJIEludmFsaWRPaWQsIC8qIHJlbHJld3JpdGUgKi8KKwkJCQkJCQkJCSBO VUxMKTsgLyogdHlwYWRkcmVzcyAqLworCUFzc2VydChPaWRJc1ZhbGlkKHJlbGlkKSk7CisKKwkv KiBSZWxlYXNlIHR1cGxlIGRlc2NyaXB0b3IgbWVtb3J5LiAqLworCUZyZWVUdXBsZURlc2ModHVw ZGVzYyk7CisKKwkvKgorCSAqIFdlIG11c3QgYnVtcCB0aGUgY29tbWFuZCBjb3VudGVyIHRvIG1h a2UgdGhlIG5ld2x5LWNyZWF0ZWQgcmVsYXRpb24KKwkgKiB0dXBsZSB2aXNpYmxlIGZvciBvcGVu aW5nLgorCSAqLworCUNvbW1hbmRDb3VudGVySW5jcmVtZW50KCk7CisKKwkvKgorCSAqIENyZWF0 ZSBhIFRPQVNUIHRhYmxlIGZvciB0aGUgY29uZmxpY3QgbG9nIHRvIHN1cHBvcnQgb3V0LW9mLWxp bmUgc3RvcmFnZQorCSAqIG9mIGxhcmdlIEpTT04gZGF0YS4KKwkgKi8KKwlOZXdSZWxhdGlvbkNy ZWF0ZVRvYXN0VGFibGUocmVsaWQsIChEYXR1bSkgMCk7CisKKwllcmVwb3J0KE5PVElDRSwKKwkJ CShlcnJtc2coImNyZWF0ZWQgY29uZmxpY3QgbG9nIHRhYmxlIFwiJXNcIiBmb3Igc3Vic2NyaXB0 aW9uIFwiJXNcIiIsCisJCQkJCWdldF9xdWFsaWZpZWRfb2JqbmFtZShQR19DT05GTElDVF9OQU1F U1BBQ0UsIHJlbG5hbWUpLAorCQkJCQlzdWJuYW1lKSkpOworCisJcmV0dXJuIHJlbGlkOworfQor CisvKgorICogQ29udmVydCB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgY29uZmxpY3Qg bG9nZ2luZyBkZXN0aW5hdGlvbiB0byBpdHMKKyAqIGNvcnJlc3BvbmRpbmcgZW51bSB2YWx1ZS4K KyAqLworQ29uZmxpY3RMb2dEZXN0CitHZXRDb25mbGljdExvZ0Rlc3QoY29uc3QgY2hhciAqZGVz dCkKK3sKKwkvKiBOVUxMIGRlZmF1bHRzIHRvIExPRy4gKi8KKwlpZiAoZGVzdCA9PSBOVUxMIHx8 IHBnX3N0cmNhc2VjbXAoZGVzdCwgImxvZyIpID09IDApCisJCXJldHVybiBDT05GTElDVF9MT0df REVTVF9MT0c7CisKKwlpZiAocGdfc3RyY2FzZWNtcChkZXN0LCAidGFibGUiKSA9PSAwKQorCQly ZXR1cm4gQ09ORkxJQ1RfTE9HX0RFU1RfVEFCTEU7CisKKwlpZiAocGdfc3RyY2FzZWNtcChkZXN0 LCAiYWxsIikgPT0gMCkKKwkJcmV0dXJuIENPTkZMSUNUX0xPR19ERVNUX0FMTDsKKworCS8qIFVu cmVjb2duaXplZCBzdHJpbmcuICovCisJZXJlcG9ydChFUlJPUiwKKwkJCShlcnJjb2RlKEVSUkNP REVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJIGVycm1zZygidW5yZWNvZ25pemVkIGNv bmZsaWN0X2xvZ19kZXN0aW5hdGlvbiB2YWx1ZTogXCIlc1wiIiwgZGVzdCksCisJCQkgZXJyaGlu dCgiVmFsaWQgdmFsdWVzIGFyZSBcImxvZ1wiLCBcInRhYmxlXCIsIGFuZCBcImFsbFwiLiIpKSk7 Cit9CisKIC8qCiAgKiBHZXQgdGhlIHhtaW4gYW5kIGNvbW1pdCB0aW1lc3RhbXAgZGF0YSAob3Jp Z2luIGFuZCB0aW1lc3RhbXApIGFzc29jaWF0ZWQKICAqIHdpdGggdGhlIHByb3ZpZGVkIGxvY2Fs IHJvdy4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKaW5kZXggMDM2ZGU1Zjc5ZWYuLmU1 MmQ0Y2NkMDg5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwpAQCAtMzcwOSw3ICsz NzA5LDcgQEAgZ2V0X25hbWVzcGFjZV9uYW1lX29yX3RlbXAoT2lkIG5zcGlkKQogICoJCW9iamVj dCBmb3IgdGhlIGdpdmVuIG5hbWVzcGFjZSBJRCBhbmQgb2JqZWN0IG5hbWUuCiAgKi8KIGNoYXIg KgotZ2V0X3F1YWxpZmllZF9vYmpuYW1lKE9pZCBuc3BpZCwgY2hhciAqb2JqbmFtZSkKK2dldF9x dWFsaWZpZWRfb2JqbmFtZShPaWQgbnNwaWQsIGNvbnN0IGNoYXIgKm9iam5hbWUpCiB7CiAJY2hh cgkgICAqbnNwbmFtZTsKIAljaGFyCSAgICpyZXN1bHQ7CmRpZmYgLS1naXQgYS9zcmMvYmluL2lu aXRkYi9pbml0ZGIuYyBiL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jCmluZGV4IDE0Y2I3OWMyNmJl Li44MDNjYTQxMTJkNCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKKysrIGIv c3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKQEAgLTE4MzksNiArMTgzOSwxMiBAQCBzZXR1cF9wcml2 aWxlZ2VzKEZJTEUgKmNtZGZkKQogCQkJCSAgIiAgQU5EIHJlbGFjbCBJUyBOVUxMO1xuXG4iLAog CQkJCSAgZXNjYXBlX3F1b3Rlcyh1c2VybmFtZSkpOwogCVBHX0NNRF9QVVRTKCJHUkFOVCBVU0FH RSBPTiBTQ0hFTUEgcGdfY2F0YWxvZywgcHVibGljIFRPIFBVQkxJQztcblxuIik7CisKKwkvKgor CSAqIEFsbG93IG5vbi1zdXBlcnVzZXIgc3Vic2NyaXB0aW9uIG93bmVycyB0byBhY2Nlc3MgdGhl aXIgYXNzb2NpYXRlZAorCSAqIGNvbmZsaWN0IGxvZyB0YWJsZXMgaW4gdGhlIHBnX2NvbmZsaWN0 IHNjaGVtYS4KKwkgKi8KKwlQR19DTURfUFVUUygiR1JBTlQgVVNBR0UgT04gU0NIRU1BIHBnX2Nv bmZsaWN0IFRPIFBVQkxJQztcblxuIik7CiAJUEdfQ01EX1BVVFMoIlJFVk9LRSBBTEwgT04gcGdf bGFyZ2VvYmplY3QgRlJPTSBQVUJMSUM7XG5cbiIpOwogCVBHX0NNRF9QVVRTKCJJTlNFUlQgSU5U TyBwZ19pbml0X3ByaXZzICIKIAkJCQkiICAob2Jqb2lkLCBjbGFzc29pZCwgb2Jqc3ViaWQsIGlu aXRwcml2cywgcHJpdnR5cGUpIgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0 ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDQ2YjlhZGQwNjA0 Li5mMzMxNDY0ZjJjMSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5j CisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMjM3Niw4ICsyMzc2LDgg QEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCUNPTVBMRVRFX1dJVEgo IigiLCAiUFVCTElDQVRJT04iKTsKIAkvKiBBTFRFUiBTVUJTQ1JJUFRJT04gPG5hbWU+IFNFVCAo ICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiU1VCU0NSSVBUSU9OIiwgTWF0Y2hBbnks IE1hdGNoQW55TiwgIlNFVCIsICIoIikpCi0JCUNPTVBMRVRFX1dJVEgoImJpbmFyeSIsICJkaXNh YmxlX29uX2Vycm9yIiwgImZhaWxvdmVyIiwKLQkJCQkJICAibWF4X3JldGVudGlvbl9kdXJhdGlv biIsICJvcmlnaW4iLAorCQlDT01QTEVURV9XSVRIKCJiaW5hcnkiLCAiY29uZmxpY3RfbG9nX2Rl c3RpbmF0aW9uIiwgImRpc2FibGVfb25fZXJyb3IiLAorCQkJCQkgICJmYWlsb3ZlciIsICJtYXhf cmV0ZW50aW9uX2R1cmF0aW9uIiwgIm9yaWdpbiIsCiAJCQkJCSAgInBhc3N3b3JkX3JlcXVpcmVk IiwgInJldGFpbl9kZWFkX3R1cGxlcyIsCiAJCQkJCSAgInJ1bl9hc19vd25lciIsICJzbG90X25h bWUiLCAic3RyZWFtaW5nIiwKIAkJCQkJICAic3luY2hyb25vdXNfY29tbWl0IiwgInR3b19waGFz ZSIsCkBAIC0zOTYxLDggKzM5NjEsOCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVy bl9pZCwKIAkJQ09NUExFVEVfV0lUSCgiV0lUSCAoIik7CiAJLyogQ29tcGxldGUgIkNSRUFURSBT VUJTQ1JJUFRJT04gPG5hbWU+IC4uLiAgV0lUSCAoIDxvcHQ+IiAqLwogCWVsc2UgaWYgKE1hdGNo ZXMoIkNSRUFURSIsICJTVUJTQ1JJUFRJT04iLCBNYXRjaEFueU4sICJXSVRIIiwgIigiKSkKLQkJ Q09NUExFVEVfV0lUSCgiYmluYXJ5IiwgImNvbm5lY3QiLCAiY29weV9kYXRhIiwgImNyZWF0ZV9z bG90IiwKLQkJCQkJICAiZGlzYWJsZV9vbl9lcnJvciIsICJlbmFibGVkIiwgImZhaWxvdmVyIiwK KwkJQ09NUExFVEVfV0lUSCgiYmluYXJ5IiwgImNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiIsICJj b25uZWN0IiwgImNvcHlfZGF0YSIsCisJCQkJCSAgImNyZWF0ZV9zbG90IiwgImRpc2FibGVfb25f ZXJyb3IiLCAiZW5hYmxlZCIsICJmYWlsb3ZlciIsCiAJCQkJCSAgIm1heF9yZXRlbnRpb25fZHVy YXRpb24iLCAib3JpZ2luIiwKIAkJCQkJICAicGFzc3dvcmRfcmVxdWlyZWQiLCAicmV0YWluX2Rl YWRfdHVwbGVzIiwKIAkJCQkJICAicnVuX2FzX293bmVyIiwgInNsb3RfbmFtZSIsICJzdHJlYW1p bmciLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXRhbG9nLmggYi9zcmMvaW5j bHVkZS9jYXRhbG9nL2NhdGFsb2cuaAppbmRleCBhOWQ2ZThlYTk4Ni4uZmVhYjM5ODJjZjUgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvY2F0YWxvZy5oCisrKyBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvY2F0YWxvZy5oCkBAIC0yNSw2ICsyNSw3IEBAIGV4dGVybiBib29sIElzSW5wbGFj ZVVwZGF0ZVJlbGF0aW9uKFJlbGF0aW9uIHJlbGF0aW9uKTsKIAogZXh0ZXJuIGJvb2wgSXNTeXN0 ZW1DbGFzcyhPaWQgcmVsaWQsIEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpOwogZXh0ZXJuIGJvb2wg SXNUb2FzdENsYXNzKEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpOworZXh0ZXJuIGJvb2wgSXNDb25m bGljdExvZ1RhYmxlQ2xhc3MoRm9ybV9wZ19jbGFzcyByZWx0dXBsZSk7CiAKIGV4dGVybiBib29s IElzQ2F0YWxvZ1JlbGF0aW9uT2lkKE9pZCByZWxpZCk7CiBleHRlcm4gYm9vbCBJc0NhdGFsb2dU ZXh0VW5pcXVlSW5kZXhPaWQoT2lkIHJlbGlkKTsKQEAgLTMyLDYgKzMzLDcgQEAgZXh0ZXJuIGJv b2wgSXNJbnBsYWNlVXBkYXRlT2lkKE9pZCByZWxpZCk7CiAKIGV4dGVybiBib29sIElzQ2F0YWxv Z05hbWVzcGFjZShPaWQgbmFtZXNwYWNlSWQpOwogZXh0ZXJuIGJvb2wgSXNUb2FzdE5hbWVzcGFj ZShPaWQgbmFtZXNwYWNlSWQpOworZXh0ZXJuIGJvb2wgSXNDb25mbGljdExvZ1RhYmxlTmFtZXNw YWNlKE9pZCBuYW1lc3BhY2VJZCk7CiAKIGV4dGVybiBib29sIElzUmVzZXJ2ZWROYW1lKGNvbnN0 IGNoYXIgKm5hbWUpOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX25hbWVz cGFjZS5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX25hbWVzcGFjZS5kYXQKaW5kZXggMzA3 NWUxNDJjNzMuLmI0NWNiOTM4M2E4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X25hbWVzcGFjZS5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19uYW1lc3BhY2UuZGF0 CkBAIC0xOCw2ICsxOCw5IEBACiB7IG9pZCA9PiAnOTknLCBvaWRfc3ltYm9sID0+ICdQR19UT0FT VF9OQU1FU1BBQ0UnLAogICBkZXNjciA9PiAncmVzZXJ2ZWQgc2NoZW1hIGZvciBUT0FTVCB0YWJs ZXMnLAogICBuc3BuYW1lID0+ICdwZ190b2FzdCcsIG5zcGFjbCA9PiAnX251bGxfJyB9LAoreyBv aWQgPT4gJzEzODInLCBvaWRfc3ltYm9sID0+ICdQR19DT05GTElDVF9OQU1FU1BBQ0UnLAorICBk ZXNjciA9PiAncmVzZXJ2ZWQgc2NoZW1hIGZvciBzdWJzY3JpcHRpb24tc3BlY2lmaWMgY29uZmxp Y3QgbG9nIHRhYmxlcycsCisgIG5zcG5hbWUgPT4gJ3BnX2NvbmZsaWN0JywgbnNwYWNsID0+ICdf bnVsbF8nIH0sCiAjIHVwZGF0ZSBkdW1wTmFtZXNwYWNlKCkgaWYgY2hhbmdpbmcgdGhpcyBkZXNj cgogeyBvaWQgPT4gJzIyMDAnLCBvaWRfc3ltYm9sID0+ICdQR19QVUJMSUNfTkFNRVNQQUNFJywK ICAgZGVzY3IgPT4gJ3N0YW5kYXJkIHB1YmxpYyBzY2hlbWEnLApkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf c3Vic2NyaXB0aW9uLmgKaW5kZXggNDg5NDQyMDE4ODkuLjQzMzhlNjYyMGI0IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oCisrKyBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgKQEAgLTk1LDcgKzk1LDE2IEBAIENBVEFMT0cocGdf c3Vic2NyaXB0aW9uLDYxMDAsU3Vic2NyaXB0aW9uUmVsYXRpb25JZCkgQktJX1NIQVJFRF9SRUxB VElPTiBCS0lfUk9XCiAJT2lkCQkJc3Vic2VydmVyIEJLSV9MT09LVVBfT1BUKHBnX2ZvcmVpZ25f c2VydmVyKTsJLyogSWYgY29ubmVjdGlvbiB1c2VzCiAJCQkJCQkJCQkJCQkJCQkJICogc2VydmVy ICovCiAKKwlPaWQJCQlzdWJjb25mbGljdGxvZ3JlbGlkOyAvKiBSZWxpZCBvZiB0aGUgY29uZmxp Y3QgbG9nIHRhYmxlLiAqLwogI2lmZGVmIENBVEFMT0dfVkFSTEVOCQkJLyogdmFyaWFibGUtbGVu Z3RoIGZpZWxkcyBzdGFydCBoZXJlICovCisJLyoKKwkgKiBTdHJhdGVneSBmb3IgbG9nZ2luZyBy ZXBsaWNhdGlvbiBjb25mbGljdHM6CisJICogJ2xvZycgLSBzZXJ2ZXIgbG9nIG9ubHksCisJICog J3RhYmxlJyAtIGNvbmZsaWN0IGxvZyB0YWJsZSBvbmx5LAorCSAqICdhbGwnIC0gYm90aCBsb2cg YW5kIHRhYmxlLgorCSAqLworCXRleHQJCXN1YmNvbmZsaWN0bG9nZGVzdCBCS0lfRk9SQ0VfTk9U X05VTEw7CisKIAkvKiBDb25uZWN0aW9uIHN0cmluZyB0byB0aGUgcHVibGlzaGVyICovCiAJdGV4 dAkJc3ViY29ubmluZm87CS8qIFNldCBpZiBjb25uZWN0aW5nIHdpdGggY29ubmVjdGlvbiBzdHJp bmcgKi8KIApAQCAtMTY0LDYgKzE3Myw3IEBAIHR5cGVkZWYgc3RydWN0IFN1YnNjcmlwdGlvbgog CQkJCQkJCQkJICogYW5kIHRoZSByZXRlbnRpb24gZHVyYXRpb24gaGFzIG5vdAogCQkJCQkJCQkJ ICogZXhjZWVkZWQgbWF4X3JldGVudGlvbl9kdXJhdGlvbiwgd2hlbgogCQkJCQkJCQkJICogZGVm aW5lZCAqLworCU9pZAkJCWNvbmZsaWN0bG9ncmVsaWQ7CS8qIGNvbmZsaWN0IGxvZyB0YWJsZSBP aWQgKi8KIAljaGFyCSAgICpjb25uaW5mbzsJCS8qIENvbm5lY3Rpb24gc3RyaW5nIHRvIHRoZSBw dWJsaXNoZXIgKi8KIAljaGFyCSAgICpzbG90bmFtZTsJCS8qIE5hbWUgb2YgdGhlIHJlcGxpY2F0 aW9uIHNsb3QgKi8KIAljaGFyCSAgICpzeW5jY29tbWl0OwkJLyogU3luY2hyb25vdXMgY29tbWl0 IHNldHRpbmcgZm9yIHdvcmtlciAqLwpAQCAtMTcxLDYgKzE4MSw3IEBAIHR5cGVkZWYgc3RydWN0 IFN1YnNjcmlwdGlvbgogCUxpc3QJICAgKnB1YmxpY2F0aW9uczsJLyogTGlzdCBvZiBwdWJsaWNh dGlvbiBuYW1lcyB0byBzdWJzY3JpYmUgdG8gKi8KIAljaGFyCSAgICpvcmlnaW47CQkJLyogT25s eSBwdWJsaXNoIGRhdGEgb3JpZ2luYXRpbmcgZnJvbSB0aGUKIAkJCQkJCQkJICogc3BlY2lmaWVk IG9yaWdpbiAqLworCWNoYXIJICAgKmNvbmZsaWN0bG9nZGVzdDsJLyogQ29uZmxpY3QgbG9nIGRl c3RpbmF0aW9uICovCiB9IFN1YnNjcmlwdGlvbjsKIAogI2lmZGVmIEVYUE9TRV9UT19DTElFTlRf Q09ERQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaCBiL3Ny Yy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmgKaW5kZXggMmQ5ZGJjZjRkMGQuLmEwMTdl MWU2Y2I1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5oCisr KyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmgKQEAgLTEwLDYgKzEwLDcgQEAK ICNkZWZpbmUgQ09ORkxJQ1RfSAogCiAjaW5jbHVkZSAiYWNjZXNzL3hsb2dkZWZzLmgiCisjaW5j bHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiZGF0YXR5cGUvdGltZXN0YW1wLmgi CiAjaW5jbHVkZSAibm9kZXMvcGdfbGlzdC5oIgogCkBAIC03OSw2ICs4MCwzMiBAQCB0eXBlZGVm IHN0cnVjdCBDb25mbGljdFR1cGxlSW5mbwogCQkJCQkJCQkgKiBjb25mbGljdGluZyBsb2NhbCBy b3cgb2NjdXJyZWQgKi8KIH0gQ29uZmxpY3RUdXBsZUluZm87CiAKKy8qCisgKiBEZWZpbmVzIHdo ZXJlIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3QgZGV0YWlscyBhcmUgcmVjb3JkZWQuCisg KgorICogV2hpbGUgc3RvcmVkIGFzIGEgdGV4dC1iYXNlZCBhcnJheS9zdHJpbmcgaW4KKyAqIHBn X3N1YnNjcmlwdGlvbi5zdWJjb25mbGljdGxvZ2Rlc3QgZm9yIHVzZXIgcmVhZGFiaWxpdHkgYW5k IGV4dGVuc2liaWxpdHksCisgKiB3ZSBtYXAgdGhlc2UgdG8gYW4gaW50ZXJuYWwgZW51bSB0byBh bGxvdyBmb3IgZWZmaWNpZW50IGNoZWNrcy4KKyAqLwordHlwZWRlZiBlbnVtIENvbmZsaWN0TG9n RGVzdAoreworCUNPTkZMSUNUX0xPR19ERVNUX0xPRyA9IDAsCS8qIEVtaXQgdG8gc2VydmVyIGxv Z3MgKi8KKwlDT05GTElDVF9MT0dfREVTVF9UQUJMRSwJLyogSW5zZXJ0IGludG8gdGhlIGNvbmZs aWN0IGxvZyB0YWJsZSAqLworCUNPTkZMSUNUX0xPR19ERVNUX0FMTAkJLyogQm90aCBsb2cgYW5k IHRhYmxlICovCit9IENvbmZsaWN0TG9nRGVzdDsKKworI2RlZmluZSBDT05GTElDVFNfTE9HR0VE X1RPX1RBQkxFKGRlc3QpIFwKKwkoKGRlc3QgPT0gQ09ORkxJQ1RfTE9HX0RFU1RfVEFCTEUpIHx8 IChkZXN0ID09IENPTkZMSUNUX0xPR19ERVNUX0FMTCkpCisjZGVmaW5lIENPTkZMSUNUU19MT0dH RURfVE9fTE9HKGRlc3QpIFwKKwkoKGRlc3QgPT0gQ09ORkxJQ1RfTE9HX0RFU1RfTE9HKSB8fCAo ZGVzdCA9PSBDT05GTElDVF9MT0dfREVTVF9BTEwpKQorCisvKgorICogQXJyYXkgbWFwcGluZyBm b3IgY29udmVydGluZyBpbnRlcm5hbCBlbnVtIHRvIHN0cmluZy4KKyAqLworZXh0ZXJuIFBHRExM SU1QT1JUIGNvbnN0IGNoYXIgKmNvbnN0IENvbmZsaWN0TG9nRGVzdE5hbWVzW107CisKK2V4dGVy biBPaWQgY3JlYXRlX2NvbmZsaWN0X2xvZ190YWJsZShPaWQgc3ViaWQsIGNoYXIgKnN1Ym5hbWUs IE9pZCBzdWJvd25lcik7CitleHRlcm4gQ29uZmxpY3RMb2dEZXN0IEdldENvbmZsaWN0TG9nRGVz dChjb25zdCBjaGFyICpkZXN0KTsKIGV4dGVybiBib29sIEdldFR1cGxlVHJhbnNhY3Rpb25JbmZv KFR1cGxlVGFibGVTbG90ICpsb2NhbHNsb3QsCiAJCQkJCQkJCQlUcmFuc2FjdGlvbklkICp4bWlu LAogCQkJCQkJCQkJUmVwbE9yaWdpbklkICpsb2NhbG9yaWdpbiwKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgK aW5kZXggODY1OTgwY2IwZjEuLjUzYzJhOWU4NjczIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91 dGlscy9sc3lzY2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaApAQCAt MjAyLDcgKzIwMiw3IEBAIGV4dGVybiBib29sIGdldF9hdHRzdGF0c3Nsb3QoQXR0U3RhdHNTbG90 ICpzc2xvdCwgSGVhcFR1cGxlIHN0YXRzdHVwbGUsCiBleHRlcm4gdm9pZCBmcmVlX2F0dHN0YXRz c2xvdChBdHRTdGF0c1Nsb3QgKnNzbG90KTsKIGV4dGVybiBjaGFyICpnZXRfbmFtZXNwYWNlX25h bWUoT2lkIG5zcGlkKTsKIGV4dGVybiBjaGFyICpnZXRfbmFtZXNwYWNlX25hbWVfb3JfdGVtcChP aWQgbnNwaWQpOwotZXh0ZXJuIGNoYXIgKmdldF9xdWFsaWZpZWRfb2JqbmFtZShPaWQgbnNwaWQs IGNoYXIgKm9iam5hbWUpOworZXh0ZXJuIGNoYXIgKmdldF9xdWFsaWZpZWRfb2JqbmFtZShPaWQg bnNwaWQsIGNvbnN0IGNoYXIgKm9iam5hbWUpOwogZXh0ZXJuIE9pZAlnZXRfcmFuZ2Vfc3VidHlw ZShPaWQgcmFuZ2VPaWQpOwogZXh0ZXJuIE9pZAlnZXRfcmFuZ2VfY29sbGF0aW9uKE9pZCByYW5n ZU9pZCk7CiBleHRlcm4gT2lkCWdldF9yYW5nZV9jb25zdHJ1Y3RvcjIoT2lkIHJhbmdlT2lkKTsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dAppbmRleCA4ZGJmYWM2 NjMyNi4uZWEwNTA1NzhkZTcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv c3Vic2NyaXB0aW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlw dGlvbi5vdXQKQEAgLTYxOSw2ICs2MTksMjk0IEBAIENPTU1JVDsKIC0tIG9rLCBvd25pbmcgaXQg aXMgZW5vdWdoIGZvciB0aGlzIHN0dWZmCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0 c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rl c3RzdWI7CistLQorLS0gQ09ORkxJQ1QgTE9HIERFU1RJTkFUSU9OIFRFU1RTCistLQorU0VUIFNF U1NJT04gQVVUSE9SSVpBVElPTiAncmVncmVzc19zdWJzY3JpcHRpb25fdXNlcic7CitTRVQgY2xp ZW50X21pbl9tZXNzYWdlcyA9IFdBUk5JTkc7CistLSBmYWlsIC0gdW5yZWNvZ25pemVkIHBhcmFt ZXRlciB2YWx1ZQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2ZhaWwgQ09O TkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHVi IFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ2ludmFs aWQnKTsKK0VSUk9SOiAgdW5yZWNvZ25pemVkIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiB2YWx1 ZTogImludmFsaWQiCitISU5UOiAgVmFsaWQgdmFsdWVzIGFyZSAibG9nIiwgInRhYmxlIiwgYW5k ICJhbGwiLgorLS0gdmVyaWZ5IHN1YmNvbmZsaWN0bG9nZGVzdCBpcyAnbG9nJyBhbmQgc3ViY29u ZmxpY3Rsb2dyZWxpZCBpcyAwIChJbnZhbGlkT2lkKSBmb3IgZGVmYXVsdCBjYXNlCitDUkVBVEUg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQgQ09OTkVDVElPTiAnZGJu YW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5l Y3QgPSBmYWxzZSk7CitXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMg bm90IGNvbm5lY3RlZAorSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBt YW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0 aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1YmxpY2F0aW9ucy4K K1NFTEVDVCBzdWJuYW1lLCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQK K0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9s b2dfZGVmYXVsdCc7CisgICAgICAgICAgIHN1Ym5hbWUgICAgICAgICAgICB8IHN1YmNvbmZsaWN0 bG9nZGVzdCB8IHN1YmNvbmZsaWN0bG9ncmVsaWQgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVz c19jb25mbGljdF9sb2dfZGVmYXVsdCB8IGxvZyAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgIDAKKygxIHJvdykKKworLS0gZmFpbCAtIGVtcHR5IHN0cmluZyBwYXJhbWV0ZXIgdmFs dWUKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9lbXB0eV9zdHIgQ09OTkVD VElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJ VEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJycpOworRVJS T1I6ICB1bnJlY29nbml6ZWQgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uIHZhbHVlOiAiIgorSElO VDogIFZhbGlkIHZhbHVlcyBhcmUgImxvZyIsICJ0YWJsZSIsIGFuZCAiYWxsIi4KKy0tIHRoaXMg c2hvdWxkIGdlbmVyYXRlIGFuIGNvbmZsaWN0IGxvZyB0YWJsZSBuYW1lZCBwZ19jb25mbGljdF9s b2dfJHN1YmlkJAorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIENP Tk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1 YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJs ZScpOworV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25u ZWN0ZWQKK0hJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkg Y3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5k IGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCistLSBjaGVj ayBtZXRhZGF0YSBpbiBwZ19zdWJzY3JpcHRpb246IGRlc3RpbmF0aW9uIHNob3VsZCBiZSAndGFi bGUnIGFuZCBzdWJjb25mbGljdGxvZ3JlbGlkIHZhbGlkCitTRUxFQ1Qgc3VibmFtZSwgc3ViY29u ZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkID4gMCBBUyBoYXNfcmVsaWQKK0ZST00g cGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MSc7 CisgICAgICAgIHN1Ym5hbWUgICAgICAgICB8IHN1YmNvbmZsaWN0bG9nZGVzdCB8IGhhc19yZWxp ZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLQorIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgfCB0YWJsZSAgICAgICAgICAgICAgfCB0Ciso MSByb3cpCisKKy0tIHZlcmlmeSB0aGUgcGh5c2ljYWwgdGFibGUgZXhpc3RzLCBpdHMgT0lEIG1h dGNoZXMgc3ViY29uZmxpY3Rsb2dyZWxpZCwKKy0tIGFuZCBpdCBpcyBsb2NhdGVkIGluIHRoZSAn cGdfY29uZmxpY3QnIG5hbWVzcGFjZQorU0VMRUNUIG4ubnNwbmFtZSwgKGMub2lkID0gcy5zdWJj b25mbGljdGxvZ3JlbGlkKSBBUyAib2lkX21hdGNoZXMiCitGUk9NIHBnX2NsYXNzIGMKK0pPSU4g cGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMu b2lkCitKT0lOIHBnX25hbWVzcGFjZSBuIE9OIGMucmVsbmFtZXNwYWNlID0gbi5vaWQKK1dIRVJF IHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJzsKKyAgIG5zcG5hbWUgICB8IG9p ZF9tYXRjaGVzIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcGdfY29uZmxpY3QgfCB0 CisoMSByb3cpCisKKy0tIGNoZWNrIGlmIHRoZSBjb25mbGljdCBsb2cgdGFibGUgaGFzIHRoZSBj b3JyZWN0IHNjaGVtYQorU0VMRUNUIGEuYXR0bnVtLCBhLmF0dG5hbWUKK0ZST00gcGdfYXR0cmli dXRlIGEKK0pPSU4gcGdfY2xhc3MgYyBPTiBhLmF0dHJlbGlkID0gYy5vaWQKK0pPSU4gcGdfc3Vi c2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCitX SEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MScgQU5EIGEuYXR0bnVtID4g MAorICAgIE9SREVSIEJZIGEuYXR0bnVtOworIGF0dG51bSB8ICAgICAgICBhdHRuYW1lICAgICAg ICAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAxIHwgcmVsaWQKKyAg ICAgIDIgfCBzY2hlbWFuYW1lCisgICAgICAzIHwgcmVsbmFtZQorICAgICAgNCB8IGNvbmZsaWN0 X3R5cGUKKyAgICAgIDUgfCByZW1vdGVfeGlkCisgICAgICA2IHwgcmVtb3RlX2NvbW1pdF9sc24K KyAgICAgIDcgfCByZW1vdGVfY29tbWl0X3RzCisgICAgICA4IHwgcmVtb3RlX29yaWdpbgorICAg ICAgOSB8IHJlcGxpY2FfaWRlbnRpdHlfZnVsbAorICAgICAxMCB8IHJlcGxpY2FfaWRlbnRpdHkK KyAgICAgMTEgfCByZW1vdGVfdHVwbGUKKyAgICAgMTIgfCBsb2NhbF9jb25mbGljdHMKKygxMiBy b3dzKQorCistLSBDaGFuZ2luZyB0aGUgc3Vic2NyaXB0aW9uIG93bmVyIHNob3VsZCBhbHNvIHVw ZGF0ZSB0aGUgb3duZXIKKy0tIG9mIHRoZSBhc3NvY2lhdGVkIGNvbmZsaWN0IGxvZyB0YWJsZS4K K0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIE9XTkVSIFRPIHJlZ3Jl c3Nfc3Vic2NyaXB0aW9uX3VzZXIyOworU0VMRUNUIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlk KGMucmVsb3duZXIpIEFTIG93bmVyCitGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgYworSk9JTiBw Z19jYXRhbG9nLnBnX3N1YnNjcmlwdGlvbiBzCisgICAgICAgIE9OIGMucmVsbmFtZSA9ICdwZ19j b25mbGljdF9sb2dfJyB8fCBzLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxp Y3RfdGVzdDEnOworICAgICAgICAgICBvd25lciAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIyCisoMSByb3cpCisKKy0t IFZlcmlmeSB0aGF0IGEgbm9uLXN1cGVydXNlciBzdWJzY3JpcHRpb24gb3duZXIgY2FuIHRydW5j YXRlLAorLS0gZGVsZXRlIGZyb20sIGFuZCBzZWxlY3QgZnJvbSB0aGUgYXNzb2NpYXRlZCBjb25m bGljdCBsb2cgdGFibGUuCitTRVQgUk9MRSAncmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjInOwor U0VMRUNUIGZvcm1hdCgnJUkuJUknLCBuLm5zcG5hbWUsIGMucmVsbmFtZSkgQVMgY29uZmxpY3Rf bG9nX3RhYmxlCitGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgYworSk9JTiBwZ19jYXRhbG9nLnBn X25hbWVzcGFjZSBuCisJT04gbi5vaWQgPSBjLnJlbG5hbWVzcGFjZQorSk9JTiBwZ19jYXRhbG9n LnBnX3N1YnNjcmlwdGlvbiBzCisJT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8 IHMub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MScKK1xnc2V0 CitUUlVOQ0FURSBUQUJMRSA6Y29uZmxpY3RfbG9nX3RhYmxlOworREVMRVRFIEZST00gOmNvbmZs aWN0X2xvZ190YWJsZTsKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIDpjb25mbGljdF9sb2dfdGFibGU7 CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworUkVTRVQgUk9MRTsKKy0tIFJl c3RvcmUgdGhlIG9yaWdpbmFsIHN1YnNjcmlwdGlvbiBvd25lci4KK0FMVEVSIFNVQlNDUklQVElP TiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIE9XTkVSIFRPIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3Vz ZXI7CistLQorLS0gQUxURVIgU1VCU0NSSVBUSU9OIC0gY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9u IHN0YXRlIHRyYW5zaXRpb25zCistLQorLS0gVGhlc2UgdGVzdHMgdmVyaWZ5IHRoZSB0cmFuc2l0 aW9uIGxvZ2ljIGJldHdlZW4gZGlmZmVyZW50IGxvZ2dpbmcKKy0tIGRlc3RpbmF0aW9ucywgZW5z dXJpbmcgY29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgY3JlYXRlZCBvciBkcm9wcGVkIGFzCistLSBl eHBlY3RlZAorLS0KKy0tIHRyYW5zaXRpb24gZnJvbSAnbG9nJyB0byAnYWxsJworLS0gYSBuZXcg Y29uZmxpY3QgbG9nIHRhYmxlIHNob3VsZCBiZSBjcmVhdGVkCitDUkVBVEUgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxp Y3RfbG9nX2Rlc3RpbmF0aW9uID0gJ2xvZycpOworV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMg Y3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNh dGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFi bGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVz aCBwdWJsaWNhdGlvbnMuCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0 MiBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdhbGwnKTsKKy0tIHZlcmlmeSBtZXRh ZGF0YSBhZnRlciBBTFRFUiAoZGVzdGluYXRpb24gc2hvdWxkIGJlICdhbGwnKQorU0VMRUNUIHN1 Ym5hbWUsIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZCA+IDAgQVMgaGFz X3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29u ZmxpY3RfdGVzdDInOworICAgICAgICBzdWJuYW1lICAgICAgICAgfCBzdWJjb25mbGljdGxvZ2Rl c3QgfCBoYXNfcmVsaWQgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0KKyByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIHwgYWxsICAgICAgICAg ICAgICAgIHwgdAorKDEgcm93KQorCistLSB0cmFuc2l0aW9uIGZyb20gJ2FsbCcgdG8gJ3RhYmxl JworLS0gc2hvdWxkIE5PVCBkcm9wIHRoZSB0YWJsZSwgb25seSBjaGFuZ2UgZGVzdGluYXRpb24g c3RyaW5nCitTRUxFQ1Qgc3ViY29uZmxpY3Rsb2dyZWxpZCBBUyBvbGRfcmVsaWQgRlJPTSBwZ19z dWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJyBcZ3Nl dAorQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgU0VUIChjb25mbGlj dF9sb2dfZGVzdGluYXRpb24gPSAndGFibGUnKTsKK1NFTEVDVCBzdWJjb25mbGljdGxvZ2Rlc3Qs IHN1YmNvbmZsaWN0bG9ncmVsaWQgPSA6b2xkX3JlbGlkIEFTIHJlbGlkX3VuY2hhbmdlZAorRlJP TSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3Qy JzsKKyBzdWJjb25mbGljdGxvZ2Rlc3QgfCByZWxpZF91bmNoYW5nZWQgCistLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLQorIHRhYmxlICAgICAgICAgICAgICB8IHQKKygxIHJv dykKKworLS0gdHJhbnNpdGlvbiBmcm9tICd0YWJsZScgdG8gJ2xvZycKKy0tIHNob3VsZCBkcm9w IHRoZSB0YWJsZSBhbmQgY2xlYXIgc3ViY29uZmxpY3Rsb2dyZWxpZAorQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgU0VUIChjb25mbGljdF9sb2dfZGVzdGluYXRpb24g PSAnbG9nJyk7CitTRUxFQ1Qgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlk CitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3Rf dGVzdDInOworIHN1YmNvbmZsaWN0bG9nZGVzdCB8IHN1YmNvbmZsaWN0bG9ncmVsaWQgCistLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBsb2cgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAwCisoMSByb3cpCisKKy0tIHZlcmlmeSB0aGUgcGh5c2lj YWwgdGFibGUgaXMgZ29uZQorU0VMRUNUIGNvdW50KCopCitGUk9NIHBnX2NsYXNzIGMKK0pPSU4g cGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMu b2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7CisgY291bnQg CistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworLS0KKy0tIFBVQkxJQ0FUSU9OOiBWZXJpZnkg Y29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgbm90IHB1Ymxpc2hhYmxlCistLQorLS0gcGdfcmVsYXRp b25faXNfcHVibGlzaGFibGUgc2hvdWxkIHJldHVybiBmYWxzZSBmb3IgY29uZmxpY3QgbG9nIHRh YmxlcyB0bworLS0gcHJldmVudCB0aGVtIGZyb20gYmVpbmcgYWNjaWRlbnRhbGx5IGluY2x1ZGVk IGluIHB1YmxpY2F0aW9ucworLS0KK1NFTEVDVCBuLm5zcG5hbWUsIHBnX3JlbGF0aW9uX2lzX3B1 Ymxpc2hhYmxlKGMub2lkKQorRlJPTSBwZ19jbGFzcyBjCitKT0lOIHBnX25hbWVzcGFjZSBuIE9O IGMucmVsbmFtZXNwYWNlID0gbi5vaWQKK0pPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gcy5zdWJj b25mbGljdGxvZ3JlbGlkID0gYy5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZs aWN0X3Rlc3QxJzsKKyAgIG5zcG5hbWUgICB8IHBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlIAor LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcGdfY29uZmxpY3Qg fCBmCisoMSByb3cpCisKKy0tCistLSBUYWJsZSBQcm90ZWN0aW9uIGFuZCBMaWZlY3ljbGUgTWFu YWdlbWVudAorLS0KKy0tIFRoZXNlIHRlc3RzIHZlcmlmeSB0aGF0OgorLS0gTWFudWFsIERST1Ag VEFCTEUgaXMgZGlzYWxsb3dlZAorLS0gRFJPUCBTVUJTQ1JJUFRJT04gYXV0b21hdGljYWxseSBy ZWFwcyB0aGUgdGFibGUKKy0tCistLSByZS1lbmFibGUgdGFibGUgbG9nZ2luZyBmb3IgdmVyaWZp Y2F0aW9uCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBTRVQgKGNv bmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOworLS0gV2UgdXNlIGEgRE8gYmxvY2sg d2l0aCBkeW5hbWljIFNRTCBiZWNhdXNlIHRoZSBjb25mbGljdCBsb2cgdGFibGUKKy0tIG5hbWUg Y29udGFpbnMgdGhlIHN1YnNjcmlwdGlvbiBPSUQsIHdoaWNoIGlzIG5vbi1kZXRlcm1pbmlzdGlj LiBUaGlzCistLSBhcHByb2FjaCBhbGxvd3MgdXMgdG8gYXR0ZW1wdCB0aGUgRFJPUCBhbmQgY2Fw dHVyZSB0aGUgZXhwZWN0ZWQgZXJyb3IKKy0tIHdpdGhvdXQgaGFyZC1jb2RpbmcgYSBzcGVjaWZp YyBPSUQgaW4gdGhlIGV4cGVjdGVkIG91dHB1dAorLS0gZmFpbCAtIGRyb3AgdGFibGUgbm90IGFs bG93ZWQgZHVlIHRvIGludGVybmFsIGRlcGVuZGVuY3kKK1NFVCBjbGllbnRfbWluX21lc3NhZ2Vz ID0gTk9USUNFOworRE8gJCQKK0JFR0lOCisgICAgRVhFQ1VURSAnRFJPUCBUQUJMRSAnIHx8IChT RUxFQ1QgJ3BnX2NvbmZsaWN0LnBnX2NvbmZsaWN0X2xvZ18nIHx8IG9pZCBGUk9NIHBnX3N1YnNj cmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnKTsKK0VYQ0VQ VElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhFTgorICAgIFJBSVNFIE5PVElDRSAn Y2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2aWxlZ2UnOworRU5EICQk OworTk9USUNFOiAgY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2aWxl Z2UKKy0tIENMRUFOVVA6IERST1AgU1VCU0NSSVBUSU9OIHJlYXBzIHRoZSB0YWJsZQorQUxURVIg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgRElTQUJMRTsKK0FMVEVSIFNVQlND UklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7Cist LSBWZXJpZnkgdGhlIHRhYmxlIE9JRCBmb3IgcmVhcCBjaGVjaworU0VMRUNUICdwZ19jb25mbGlj dC5wZ19jb25mbGljdF9sb2dfJyB8fCBvaWQgQVMgaW50ZXJuYWxfdGFibGVuYW1lIEZST00gcGdf c3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MScgXGdz ZXQKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gV0FSTklORzsKK0RST1AgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDE7CistLSBzaG91bGQgcmV0dXJuIE5VTEwsIG1lYW5pbmcg dGhlIGNvbmZsaWN0IGxvZyB0YWJsZSB3YXMgcmVhcGVkIHZpYSBkZXBlbmRlbmN5CitTRUxFQ1Qg dG9fcmVnY2xhc3MoOidpbnRlcm5hbF90YWJsZW5hbWUnKTsKKyB0b19yZWdjbGFzcyAKKy0tLS0t LS0tLS0tLS0KKyAKKygxIHJvdykKKworLS0KKy0tIEFkZGl0aW9uYWwgTmFtZXNwYWNlIGFuZCBU YWJsZSBQcm90ZWN0aW9uIFRlc3RzCistLQorLS0gU2V0dXA6IEVuc3VyZSB3ZSBoYXZlIGEgc3Vi c2NyaXB0aW9uIHdpdGggYSBjb25mbGljdCBsb2cgdGFibGUKK0NSRUFURSBTVUJTQ1JJUFRJT04g cmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0JworICAgIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9 IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAndGFibGUnKTsKK1dBUk5JTkc6ICBz dWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCitISU5UOiAgVG8g aW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGlj YXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2Ny aXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgorLS0gVHJ5aW5nIHRvIEFMVEVSIHRoZSBj b25mbGljdCBsb2cgdGFibGUKKy0tIFRoaXMgc2hvdWxkIGZhaWwgYmVjYXVzZSB0aGUgdGFibGUg aXMgc3lzdGVtLW1hbmFnZWQKKy0tIEFzIG1lbnRpb25lZCBpbiBwcmV2aW91cyB0ZXN0IGNhc2Vz LCB3ZSB1c2UgYSBETyBibG9jayB0byBoaWRlIGR5bmFtaWMgT0lEcworU0VUIGNsaWVudF9taW5f bWVzc2FnZXMgPSBOT1RJQ0U7CitETyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7CitC RUdJTgorICAgIFNFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUK KyAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUg PSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVn cmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOworCisgICAgUkFJU0UgTk9USUNFICdBdHRl bXB0aW5nIEFMVEVSIFRBQkxFIG9uIGNvbmZsaWN0IGxvZyB0YWJsZSc7CisgICAgRVhFQ1VURSAn QUxURVIgVEFCTEUgJyB8fCB0YWJfbmFtZSB8fCAnIEFERCBDT0xVTU4gZXh0cmFfaW5mbyB0ZXh0 JzsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhFTgorICAgIFJBSVNF IE5PVElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2aWxlZ2Ug ZHVyaW5nIEFMVEVSJzsKK0VORCAkJDsKK05PVElDRTogIEF0dGVtcHRpbmcgQUxURVIgVEFCTEUg b24gY29uZmxpY3QgbG9nIHRhYmxlCitOT1RJQ0U6ICBjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjog aW5zdWZmaWNpZW50X3ByaXZpbGVnZSBkdXJpbmcgQUxURVIKKy0tIFRlc3QgTWFudWFsIElOU0VS VCBvbiBjb25mbGljdCBsb2cgdGFibGUKKy0tIFRoaXMgc2hvdWxkIGZhaWwgYmVjYXVzZSB0aGUg dGFibGUgaXMgc3lzdGVtLW1hbmFnZWQKKy0tIEhpZGluZyB0aGUgT0lEIGluIHRoZSBlcnJvciBt ZXNzYWdlIGJ5IGNhdGNoaW5nIHRoZSBleGNlcHRpb24KK0RPICQkCitERUNMQVJFCisgICAgdGFi X25hbWUgdGV4dDsKK0JFR0lOCisgICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUg SU5UTyB0YWJfbmFtZQorICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBz IE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorICAgIFdIRVJFIHMu c3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CisKKyAgICBFWEVD VVRFICdJTlNFUlQgSU5UTyAnIHx8IHRhYl9uYW1lIHx8ICcgKHJlbG5hbWUpIFZBTFVFUyAoJydt eXRlc3QnJyknOworRVhDRVBUSU9OIFdIRU4gd3Jvbmdfb2JqZWN0X3R5cGUgVEhFTgorICAgIFJB SVNFIE5PVElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IHdyb25nX29iamVjdF90eXBlIGR1 cmluZyBJTlNFUlQnOworRU5EICQkOworTk9USUNFOiAgY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6 IHdyb25nX29iamVjdF90eXBlIGR1cmluZyBJTlNFUlQKKy0tIFRlc3QgTWFudWFsIFVQREFURSBv biBjb25mbGljdCBsb2cgdGFibGUKKy0tIFRoaXMgc2hvdWxkIGZhaWwgYmVjYXVzZSB0aGUgdGFi bGUgaXMgc3lzdGVtLW1hbmFnZWQKKy0tIEhpZGluZyB0aGUgT0lEIGluIHRoZSBlcnJvciBtZXNz YWdlIGJ5IGNhdGNoaW5nIHRoZSBleGNlcHRpb24KK0RPICQkCitERUNMQVJFCisgICAgdGFiX25h bWUgdGV4dDsKK0JFR0lOCisgICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5U TyB0YWJfbmFtZQorICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9O IGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorICAgIFdIRVJFIHMuc3Vi bmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CisKKyAgICBFWEVDVVRF ICdVUERBVEUgJyB8fCB0YWJfbmFtZSB8fCAnIFNFVCByZWxuYW1lID0gJydteXRlc3QnJyAnOwor RVhDRVBUSU9OIFdIRU4gd3Jvbmdfb2JqZWN0X3R5cGUgVEhFTgorICAgIFJBSVNFIE5PVElDRSAn Y2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IHdyb25nX29iamVjdF90eXBlIGR1cmluZyBVUERBVEUn OworRU5EICQkOworTk9USUNFOiAgY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IHdyb25nX29iamVj dF90eXBlIGR1cmluZyBVUERBVEUKKy0tIFRyeWluZyB0byBwZXJmb3JtIFRSVU5DQVRFL0RFTEVU RSBvbiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlCistLSBUaGlzIHNob3VsZCBiZSBhbGxvd2VkIHNv IHRoYXQgdXNlciBjYW4gcGVyZm9ybSBjbGVhbnVwCitTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwg cmVsbmFtZSBBUyBjb25mbGljdF90YWIKK0ZST00gcGdfY2xhc3MgYworSk9JTiBwZ19zdWJzY3Jp cHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKK1dIRVJF IHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCcgXGdzZXQKK1RS VU5DQVRFIDpjb25mbGljdF90YWI7CitERUxFVEUgRlJPTSA6Y29uZmxpY3RfdGFiOworU0VUIGNs aWVudF9taW5fbWVzc2FnZXMgPSBXQVJOSU5HOworLS0gQ2xlYW4gdXAgcmVtYWluaW5nIHRlc3Qg c3Vic2NyaXB0aW9uCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVm YXVsdCBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2Rl ZmF1bHQgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf Y29uZmxpY3RfbG9nX2RlZmF1bHQ7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGlj dF90ZXN0MiBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVz dDIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29u ZmxpY3RfdGVzdDI7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9wcm90ZWN0 aW9uX3Rlc3QgRElTQUJMRTsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3By b3RlY3Rpb25fdGVzdCBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04g cmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3Q7CiBSRVNFVCBTRVNTSU9OIEFVVEhPUkla QVRJT047CiBEUk9QIFJPTEUgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjsKIERST1AgUk9MRSBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3N1YnNjcmlwdGlvbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24u c3FsCmluZGV4IDA1NTMzZDY2Njc1Li43NmRmZDU3NGQ4YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9z dWJzY3JpcHRpb24uc3FsCkBAIC00NzQsNiArNDc0LDI0NyBAQCBDT01NSVQ7CiBBTFRFUiBTVUJT Q1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CiBEUk9QIFNV QlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CiAKKy0tCistLSBDT05GTElDVCBMT0cgREVTVElO QVRJT04gVEVTVFMKKy0tCisKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gJ3JlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXInOworCitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9IFdBUk5JTkc7CisK Ky0tIGZhaWwgLSB1bnJlY29nbml6ZWQgcGFyYW1ldGVyIHZhbHVlCitDUkVBVEUgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfY29uZmxpY3RfZmFpbCBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25m bGljdF9sb2dfZGVzdGluYXRpb24gPSAnaW52YWxpZCcpOworCistLSB2ZXJpZnkgc3ViY29uZmxp Y3Rsb2dkZXN0IGlzICdsb2cnIGFuZCBzdWJjb25mbGljdGxvZ3JlbGlkIGlzIDAgKEludmFsaWRP aWQpIGZvciBkZWZhdWx0IGNhc2UKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGlj dF9sb2dfZGVmYXVsdCBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBV QkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlKTsKK1NFTEVDVCBzdWJuYW1l LCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQKK0ZST00gcGdfc3Vic2Ny aXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCc7CisK Ky0tIGZhaWwgLSBlbXB0eSBzdHJpbmcgcGFyYW1ldGVyIHZhbHVlCitDUkVBVEUgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2Us IGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICcnKTsKKworLS0gdGhpcyBzaG91bGQgZ2VuZXJh dGUgYW4gY29uZmxpY3QgbG9nIHRhYmxlIG5hbWVkIHBnX2NvbmZsaWN0X2xvZ18kc3ViaWQkCitD UkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgQ09OTkVDVElPTiAnZGJu YW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5l Y3QgPSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CisKKy0tIGNo ZWNrIG1ldGFkYXRhIGluIHBnX3N1YnNjcmlwdGlvbjogZGVzdGluYXRpb24gc2hvdWxkIGJlICd0 YWJsZScgYW5kIHN1YmNvbmZsaWN0bG9ncmVsaWQgdmFsaWQKK1NFTEVDVCBzdWJuYW1lLCBzdWJj b25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQgPiAwIEFTIGhhc19yZWxpZAorRlJP TSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3Qx JzsKKworLS0gdmVyaWZ5IHRoZSBwaHlzaWNhbCB0YWJsZSBleGlzdHMsIGl0cyBPSUQgbWF0Y2hl cyBzdWJjb25mbGljdGxvZ3JlbGlkLAorLS0gYW5kIGl0IGlzIGxvY2F0ZWQgaW4gdGhlICdwZ19j b25mbGljdCcgbmFtZXNwYWNlCitTRUxFQ1Qgbi5uc3BuYW1lLCAoYy5vaWQgPSBzLnN1YmNvbmZs aWN0bG9ncmVsaWQpIEFTICJvaWRfbWF0Y2hlcyIKK0ZST00gcGdfY2xhc3MgYworSk9JTiBwZ19z dWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQK K0pPSU4gcGdfbmFtZXNwYWNlIG4gT04gYy5yZWxuYW1lc3BhY2UgPSBuLm9pZAorV0hFUkUgcy5z dWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnOworCistLSBjaGVjayBpZiB0aGUgY29u ZmxpY3QgbG9nIHRhYmxlIGhhcyB0aGUgY29ycmVjdCBzY2hlbWEKK1NFTEVDVCBhLmF0dG51bSwg YS5hdHRuYW1lCitGUk9NIHBnX2F0dHJpYnV0ZSBhCitKT0lOIHBnX2NsYXNzIGMgT04gYS5hdHRy ZWxpZCA9IGMub2lkCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19j b25mbGljdF9sb2dfJyB8fCBzLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxp Y3RfdGVzdDEnIEFORCBhLmF0dG51bSA+IDAKKyAgICBPUkRFUiBCWSBhLmF0dG51bTsKKworLS0g Q2hhbmdpbmcgdGhlIHN1YnNjcmlwdGlvbiBvd25lciBzaG91bGQgYWxzbyB1cGRhdGUgdGhlIG93 bmVyCistLSBvZiB0aGUgYXNzb2NpYXRlZCBjb25mbGljdCBsb2cgdGFibGUuCitBTFRFUiBTVUJT Q1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBPV05FUiBUTyByZWdyZXNzX3N1YnNjcmlw dGlvbl91c2VyMjsKK1NFTEVDVCBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZChjLnJlbG93bmVy KSBBUyBvd25lcgorRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMKK0pPSU4gcGdfY2F0YWxvZy5w Z19zdWJzY3JpcHRpb24gcworICAgICAgICBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9n XycgfHwgcy5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJzsK KworLS0gVmVyaWZ5IHRoYXQgYSBub24tc3VwZXJ1c2VyIHN1YnNjcmlwdGlvbiBvd25lciBjYW4g dHJ1bmNhdGUsCistLSBkZWxldGUgZnJvbSwgYW5kIHNlbGVjdCBmcm9tIHRoZSBhc3NvY2lhdGVk IGNvbmZsaWN0IGxvZyB0YWJsZS4KK1NFVCBST0xFICdyZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy Mic7CisKK1NFTEVDVCBmb3JtYXQoJyVJLiVJJywgbi5uc3BuYW1lLCBjLnJlbG5hbWUpIEFTIGNv bmZsaWN0X2xvZ190YWJsZQorRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMKK0pPSU4gcGdfY2F0 YWxvZy5wZ19uYW1lc3BhY2UgbgorCU9OIG4ub2lkID0gYy5yZWxuYW1lc3BhY2UKK0pPSU4gcGdf Y2F0YWxvZy5wZ19zdWJzY3JpcHRpb24gcworCU9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9s b2dfJyB8fCBzLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEn CitcZ3NldAorCitUUlVOQ0FURSBUQUJMRSA6Y29uZmxpY3RfbG9nX3RhYmxlOworREVMRVRFIEZS T00gOmNvbmZsaWN0X2xvZ190YWJsZTsKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIDpjb25mbGljdF9s b2dfdGFibGU7CisKK1JFU0VUIFJPTEU7CisKKy0tIFJlc3RvcmUgdGhlIG9yaWdpbmFsIHN1YnNj cmlwdGlvbiBvd25lci4KK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3Qx IE9XTkVSIFRPIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXI7CisKKy0tCistLSBBTFRFUiBTVUJT Q1JJUFRJT04gLSBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gc3RhdGUgdHJhbnNpdGlvbnMKKy0t CistLSBUaGVzZSB0ZXN0cyB2ZXJpZnkgdGhlIHRyYW5zaXRpb24gbG9naWMgYmV0d2VlbiBkaWZm ZXJlbnQgbG9nZ2luZworLS0gZGVzdGluYXRpb25zLCBlbnN1cmluZyBjb25mbGljdCBsb2cgdGFi bGVzIGFyZSBjcmVhdGVkIG9yIGRyb3BwZWQgYXMKKy0tIGV4cGVjdGVkCistLQorLS0gdHJhbnNp dGlvbiBmcm9tICdsb2cnIHRvICdhbGwnCistLSBhIG5ldyBjb25mbGljdCBsb2cgdGFibGUgc2hv dWxkIGJlIGNyZWF0ZWQKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0 MiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRl c3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAn bG9nJyk7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBTRVQgKGNv bmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdhbGwnKTsKKworLS0gdmVyaWZ5IG1ldGFkYXRhIGFm dGVyIEFMVEVSIChkZXN0aW5hdGlvbiBzaG91bGQgYmUgJ2FsbCcpCitTRUxFQ1Qgc3VibmFtZSwg c3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkID4gMCBBUyBoYXNfcmVsaWQK K0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90 ZXN0Mic7CisKKy0tIHRyYW5zaXRpb24gZnJvbSAnYWxsJyB0byAndGFibGUnCistLSBzaG91bGQg Tk9UIGRyb3AgdGhlIHRhYmxlLCBvbmx5IGNoYW5nZSBkZXN0aW5hdGlvbiBzdHJpbmcKK1NFTEVD VCBzdWJjb25mbGljdGxvZ3JlbGlkIEFTIG9sZF9yZWxpZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiBX SEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDInIFxnc2V0CitBTFRFUiBTVUJT Q1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5h dGlvbiA9ICd0YWJsZScpOworU0VMRUNUIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rs b2dyZWxpZCA9IDpvbGRfcmVsaWQgQVMgcmVsaWRfdW5jaGFuZ2VkCitGUk9NIHBnX3N1YnNjcmlw dGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDInOworCistLSB0cmFu c2l0aW9uIGZyb20gJ3RhYmxlJyB0byAnbG9nJworLS0gc2hvdWxkIGRyb3AgdGhlIHRhYmxlIGFu ZCBjbGVhciBzdWJjb25mbGljdGxvZ3JlbGlkCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19j b25mbGljdF90ZXN0MiBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdsb2cnKTsKK1NF TEVDVCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQKK0ZST00gcGdfc3Vi c2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7CisKKy0t IHZlcmlmeSB0aGUgcGh5c2ljYWwgdGFibGUgaXMgZ29uZQorU0VMRUNUIGNvdW50KCopCitGUk9N IHBnX2NsYXNzIGMKK0pPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2Nv bmZsaWN0X2xvZ18nIHx8IHMub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGlj dF90ZXN0Mic7CisKKy0tCistLSBQVUJMSUNBVElPTjogVmVyaWZ5IGNvbmZsaWN0IGxvZyB0YWJs ZXMgYXJlIG5vdCBwdWJsaXNoYWJsZQorLS0KKy0tIHBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxl IHNob3VsZCByZXR1cm4gZmFsc2UgZm9yIGNvbmZsaWN0IGxvZyB0YWJsZXMgdG8KKy0tIHByZXZl bnQgdGhlbSBmcm9tIGJlaW5nIGFjY2lkZW50YWxseSBpbmNsdWRlZCBpbiBwdWJsaWNhdGlvbnMK Ky0tCitTRUxFQ1Qgbi5uc3BuYW1lLCBwZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZShjLm9pZCkK K0ZST00gcGdfY2xhc3MgYworSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBjLnJlbG5hbWVzcGFjZSA9 IG4ub2lkCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIHMuc3ViY29uZmxpY3Rsb2dyZWxpZCA9 IGMub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MSc7CisKKy0t CistLSBUYWJsZSBQcm90ZWN0aW9uIGFuZCBMaWZlY3ljbGUgTWFuYWdlbWVudAorLS0KKy0tIFRo ZXNlIHRlc3RzIHZlcmlmeSB0aGF0OgorLS0gTWFudWFsIERST1AgVEFCTEUgaXMgZGlzYWxsb3dl ZAorLS0gRFJPUCBTVUJTQ1JJUFRJT04gYXV0b21hdGljYWxseSByZWFwcyB0aGUgdGFibGUKKy0t CistLSByZS1lbmFibGUgdGFibGUgbG9nZ2luZyBmb3IgdmVyaWZpY2F0aW9uCitBTFRFUiBTVUJT Q1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5h dGlvbiA9ICd0YWJsZScpOworCistLSBXZSB1c2UgYSBETyBibG9jayB3aXRoIGR5bmFtaWMgU1FM IGJlY2F1c2UgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gbmFtZSBjb250YWlucyB0aGUgc3Vi c2NyaXB0aW9uIE9JRCwgd2hpY2ggaXMgbm9uLWRldGVybWluaXN0aWMuIFRoaXMKKy0tIGFwcHJv YWNoIGFsbG93cyB1cyB0byBhdHRlbXB0IHRoZSBEUk9QIGFuZCBjYXB0dXJlIHRoZSBleHBlY3Rl ZCBlcnJvcgorLS0gd2l0aG91dCBoYXJkLWNvZGluZyBhIHNwZWNpZmljIE9JRCBpbiB0aGUgZXhw ZWN0ZWQgb3V0cHV0CisKKy0tIGZhaWwgLSBkcm9wIHRhYmxlIG5vdCBhbGxvd2VkIGR1ZSB0byBp bnRlcm5hbCBkZXBlbmRlbmN5CitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9IE5PVElDRTsKK0RP ICQkCitCRUdJTgorICAgIEVYRUNVVEUgJ0RST1AgVEFCTEUgJyB8fCAoU0VMRUNUICdwZ19jb25m bGljdC5wZ19jb25mbGljdF9sb2dfJyB8fCBvaWQgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUg c3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJyk7CitFWENFUFRJT04gV0hFTiBpbnN1 ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhcHR1cmVkIGV4cGVj dGVkIGVycm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlJzsKK0VORCAkJDsKKworLS0gQ0xFQU5V UDogRFJPUCBTVUJTQ1JJUFRJT04gcmVhcHMgdGhlIHRhYmxlCitBTFRFUiBTVUJTQ1JJUFRJT04g cmVncmVzc19jb25mbGljdF90ZXN0MSBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfY29uZmxpY3RfdGVzdDEgU0VUIChzbG90X25hbWUgPSBOT05FKTsKKworLS0gVmVyaWZ5IHRo ZSB0YWJsZSBPSUQgZm9yIHJlYXAgY2hlY2sKK1NFTEVDVCAncGdfY29uZmxpY3QucGdfY29uZmxp Y3RfbG9nXycgfHwgb2lkIEFTIGludGVybmFsX3RhYmxlbmFtZSBGUk9NIHBnX3N1YnNjcmlwdGlv biBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnIFxnc2V0CisKK1NFVCBj bGllbnRfbWluX21lc3NhZ2VzID0gV0FSTklORzsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf Y29uZmxpY3RfdGVzdDE7CisKKy0tIHNob3VsZCByZXR1cm4gTlVMTCwgbWVhbmluZyB0aGUgY29u ZmxpY3QgbG9nIHRhYmxlIHdhcyByZWFwZWQgdmlhIGRlcGVuZGVuY3kKK1NFTEVDVCB0b19yZWdj bGFzcyg6J2ludGVybmFsX3RhYmxlbmFtZScpOworCistLQorLS0gQWRkaXRpb25hbCBOYW1lc3Bh Y2UgYW5kIFRhYmxlIFByb3RlY3Rpb24gVGVzdHMKKy0tCisKKy0tIFNldHVwOiBFbnN1cmUgd2Ug aGF2ZSBhIHN1YnNjcmlwdGlvbiB3aXRoIGEgY29uZmxpY3QgbG9nIHRhYmxlCitDUkVBVEUgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0IENPTk5FQ1RJT04gJ2Ri bmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcKKyAgICBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEgg KGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CisK Ky0tIFRyeWluZyB0byBBTFRFUiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlCistLSBUaGlzIHNob3Vs ZCBmYWlsIGJlY2F1c2UgdGhlIHRhYmxlIGlzIHN5c3RlbS1tYW5hZ2VkCistLSBBcyBtZW50aW9u ZWQgaW4gcHJldmlvdXMgdGVzdCBjYXNlcywgd2UgdXNlIGEgRE8gYmxvY2sgdG8gaGlkZSBkeW5h bWljIE9JRHMKKworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSBOT1RJQ0U7CitETyAkJAorREVD TEFSRQorICAgIHRhYl9uYW1lIHRleHQ7CitCRUdJTgorICAgIFNFTEVDVCAncGdfY29uZmxpY3Qu JyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKKyAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19z dWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQK KyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3Qn OworCisgICAgUkFJU0UgTk9USUNFICdBdHRlbXB0aW5nIEFMVEVSIFRBQkxFIG9uIGNvbmZsaWN0 IGxvZyB0YWJsZSc7CisgICAgRVhFQ1VURSAnQUxURVIgVEFCTEUgJyB8fCB0YWJfbmFtZSB8fCAn IEFERCBDT0xVTU4gZXh0cmFfaW5mbyB0ZXh0JzsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVu dF9wcml2aWxlZ2UgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQgZXJy b3I6IGluc3VmZmljaWVudF9wcml2aWxlZ2UgZHVyaW5nIEFMVEVSJzsKK0VORCAkJDsKKworLS0g VGVzdCBNYW51YWwgSU5TRVJUIG9uIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gVGhpcyBzaG91bGQg ZmFpbCBiZWNhdXNlIHRoZSB0YWJsZSBpcyBzeXN0ZW0tbWFuYWdlZAorLS0gSGlkaW5nIHRoZSBP SUQgaW4gdGhlIGVycm9yIG1lc3NhZ2UgYnkgY2F0Y2hpbmcgdGhlIGV4Y2VwdGlvbgorRE8gJCQK K0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3BnX2NvbmZs aWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4g cGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMu b2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90 ZXN0JzsKKworICAgIEVYRUNVVEUgJ0lOU0VSVCBJTlRPICcgfHwgdGFiX25hbWUgfHwgJyAocmVs bmFtZSkgVkFMVUVTICgnJ215dGVzdCcnKSc7CitFWENFUFRJT04gV0hFTiB3cm9uZ19vYmplY3Rf dHlwZSBUSEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogd3Jv bmdfb2JqZWN0X3R5cGUgZHVyaW5nIElOU0VSVCc7CitFTkQgJCQ7CisKKy0tIFRlc3QgTWFudWFs IFVQREFURSBvbiBjb25mbGljdCBsb2cgdGFibGUKKy0tIFRoaXMgc2hvdWxkIGZhaWwgYmVjYXVz ZSB0aGUgdGFibGUgaXMgc3lzdGVtLW1hbmFnZWQKKy0tIEhpZGluZyB0aGUgT0lEIGluIHRoZSBl cnJvciBtZXNzYWdlIGJ5IGNhdGNoaW5nIHRoZSBleGNlcHRpb24KK0RPICQkCitERUNMQVJFCisg ICAgdGFiX25hbWUgdGV4dDsKK0JFR0lOCisgICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJl bG5hbWUgSU5UTyB0YWJfbmFtZQorICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlw dGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorICAgIFdI RVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CisKKyAg ICBFWEVDVVRFICdVUERBVEUgJyB8fCB0YWJfbmFtZSB8fCAnIFNFVCByZWxuYW1lID0gJydteXRl c3QnJyAnOworRVhDRVBUSU9OIFdIRU4gd3Jvbmdfb2JqZWN0X3R5cGUgVEhFTgorICAgIFJBSVNF IE5PVElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IHdyb25nX29iamVjdF90eXBlIGR1cmlu ZyBVUERBVEUnOworRU5EICQkOworCistLSBUcnlpbmcgdG8gcGVyZm9ybSBUUlVOQ0FURS9ERUxF VEUgb24gdGhlIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gVGhpcyBzaG91bGQgYmUgYWxsb3dlZCBz byB0aGF0IHVzZXIgY2FuIHBlcmZvcm0gY2xlYW51cAorU0VMRUNUICdwZ19jb25mbGljdC4nIHx8 IHJlbG5hbWUgQVMgY29uZmxpY3RfdGFiCitGUk9NIHBnX2NsYXNzIGMKK0pPSU4gcGdfc3Vic2Ny aXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCitXSEVS RSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnIFxnc2V0CitU UlVOQ0FURSA6Y29uZmxpY3RfdGFiOworREVMRVRFIEZST00gOmNvbmZsaWN0X3RhYjsKKworU0VU IGNsaWVudF9taW5fbWVzc2FnZXMgPSBXQVJOSU5HOworCistLSBDbGVhbiB1cCByZW1haW5pbmcg dGVzdCBzdWJzY3JpcHRpb24KK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2xv Z19kZWZhdWx0IERJU0FCTEU7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9s b2dfZGVmYXVsdCBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVn cmVzc19jb25mbGljdF9sb2dfZGVmYXVsdDsKKworCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVz c19jb25mbGljdF90ZXN0MiBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29u ZmxpY3RfdGVzdDIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfY29uZmxpY3RfdGVzdDI7CisKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZs aWN0X3Byb3RlY3Rpb25fdGVzdCBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf Y29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0IFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9QIFNV QlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdDsKKwogUkVTRVQgU0VT U0lPTiBBVVRIT1JJWkFUSU9OOwogRFJPUCBST0xFIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXI7 CiBEUk9QIFJPTEUgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjI7CmRpZmYgLS1naXQgYS9zcmMv dG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVm cy5saXN0CmluZGV4IGM1ZGI2Y2E2NzA1Li40ZTI3Nzg2M2IyYyAxMDA2NDQKLS0tIGEvc3JjL3Rv b2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVk ZWZzLmxpc3QKQEAgLTUxNSw2ICs1MTUsOCBAQCBDb25kaXRpb25hbFN0YWNrCiBDb25kaXRpb25h bFN0YWNrRGF0YQogQ29uZmlnRGF0YQogQ29uZmlnVmFyaWFibGUKK0NvbmZsaWN0TG9nQ29sdW1u RGVmCitDb25mbGljdExvZ0Rlc3QKIENvbmZsaWN0VHVwbGVJbmZvCiBDb25mbGljdFR5cGUKIENv bm5DYWNoZUVudHJ5Ci0tIAoyLjQ5LjAKCg== --000000000000c4ad1b0655330de9 Content-Type: application/octet-stream; name="v59-0002-Report-error-for-ddls-on-conflict-log-tables.patch" Content-Disposition: attachment; filename="v59-0002-Report-error-for-ddls-on-conflict-log-tables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqvqwnqp1 RnJvbSBjMmM4NzM1YmExZjRhODJjNmJlYWE3OWI1MjUyNjFkMGQ3NWM0MGI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogVGh1LCAyNSBKdW4gMjAyNiAxODozNjo1OSArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjU5 IDIvNl0gUmVwb3J0IGVycm9yIGZvciBkZGxzIG9uIGNvbmZsaWN0IGxvZyB0YWJsZXMKCi0tLQog c3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYyAgICAgICAgICAgICAgIHwgICA4ICsKIHNyYy9i YWNrZW5kL2NvbW1hbmRzL2xvY2tjbWRzLmMgICAgICAgICAgICB8ICAyNCArLQogc3JjL2JhY2tl bmQvY29tbWFuZHMvcG9saWN5LmMgICAgICAgICAgICAgIHwgIDEyICsKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3N0YXRzY21kcy5jICAgICAgICAgICB8ICAxNCArKwogc3JjL2JhY2tlbmQvY29tbWFu ZHMvdGFibGVjbWRzLmMgICAgICAgICAgIHwgIDczICsrKysrKwogc3JjL2JhY2tlbmQvY29tbWFu ZHMvdHJpZ2dlci5jICAgICAgICAgICAgIHwgIDI1ICsrCiBzcmMvYmFja2VuZC9yZXdyaXRlL3Jl d3JpdGVEZWZpbmUuYyAgICAgICAgfCAgMjIgKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv c3Vic2NyaXB0aW9uLm91dCB8IDI3MCArKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbCAgICAgIHwgMjcxICsrKysrKysrKysrKysrKysrKysr KwogOSBmaWxlcyBjaGFuZ2VkLCA3MTggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgYi9zcmMvYmFja2VuZC9jYXRh bG9nL2FjbGNoay5jCmluZGV4IDQ5NjgwYWFhODMyLi42NmFjYTU4M2M4NSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2Fj bGNoay5jCkBAIC0zNjc0LDYgKzM2NzQsMTQgQEAgcGdfbmFtZXNwYWNlX2FjbG1hc2tfZXh0KE9p ZCBuc3Bfb2lkLCBPaWQgcm9sZWlkLAogCUFjbAkJICAgKmFjbDsKIAlPaWQJCQlvd25lcklkOwog CisJLyoKKwkgKiBEaXNhbGxvdyBjcmVhdGlvbiBpbiB0aGUgY29uZmxpY3Qgc2NoZW1hIGZvciBl dmVyeW9uZSwgaW5jbHVkaW5nCisJICogc3VwZXJ1c2VycywgdW5sZXNzIGluIGJpbmFyeS11cGdy YWRlIG1vZGUuCisJICovCisJaWYgKCFJc0JpbmFyeVVwZ3JhZGUgJiYgKG1hc2sgJiBBQ0xfQ1JF QVRFKSAmJgorCQlJc0NvbmZsaWN0TG9nVGFibGVOYW1lc3BhY2UobnNwX29pZCkpCisJCXJldHVy biBtYXNrICYgfkFDTF9DUkVBVEU7CisKIAkvKiBTdXBlcnVzZXJzIGJ5cGFzcyBhbGwgcGVybWlz c2lvbiBjaGVja2luZy4gKi8KIAlpZiAoc3VwZXJ1c2VyX2FyZyhyb2xlaWQpKQogCQlyZXR1cm4g bWFzazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2xvY2tjbWRzLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9sb2NrY21kcy5jCmluZGV4IGY2NmI4ZjE3YjliLi44NWZmZTcwOTJj ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvbG9ja2NtZHMuYworKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9sb2NrY21kcy5jCkBAIC0xNiw2ICsxNiw3IEBACiAKICNpbmNsdWRl ICJhY2Nlc3MvdGFibGUuaCIKICNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgorI2luY2x1ZGUgImNh dGFsb2cvY2F0YWxvZy5oIgogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19pbmhlcml0cy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2xvY2tjbWRzLmgi CkBAIC04Myw3ICs4NCwxOCBAQCBSYW5nZVZhckNhbGxiYWNrRm9yTG9ja1RhYmxlKGNvbnN0IFJh bmdlVmFyICpydiwgT2lkIHJlbGlkLCBPaWQgb2xkcmVsaWQsCiAJCXJldHVybjsJCQkJCS8qIHdv b3BzLCBjb25jdXJyZW50bHkgZHJvcHBlZDsgbm8gcGVybWlzc2lvbnMKIAkJCQkJCQkJICogY2hl Y2sgKi8KIAotCS8qIEN1cnJlbnRseSwgd2Ugb25seSBhbGxvdyBwbGFpbiB0YWJsZXMgb3Igdmll d3MgdG8gYmUgbG9ja2VkICovCisJLyoKKwkgKiBOb3RlOiBDb25mbGljdCBsb2cgdGFibGVzIGFy ZSBkZWxpYmVyYXRlbHkgTk9UIGJsb2NrZWQgaGVyZSwgZXZlbiB0aG91Z2gKKwkgKiBvdGhlciBk aXJlY3QgRERMIG9uIHRoZW0gaXMgcmVqZWN0ZWQgZWxzZXdoZXJlLiBwZ19kdW1wIHJlbGllcyBv biBiZWluZworCSAqIGFibGUgdG8gdGFrZSBhbiBBQ0NFU1MgU0hBUkUgbG9jayBvbiB0aGVzZSB0 YWJsZXMgdG8gc2FmZWx5IGR1bXAgdGhlaXIKKwkgKiBkZWZpbml0aW9ucyBkdXJpbmcgYSBiaW5h cnkgdXBncmFkZSwgc28gd2UgcGVybWl0IExPQ0sgY29tbWFuZHMgb24gdGhlbQorCSAqIGFuZCB0 cmVhdCB0aGVtIGxpa2Ugb3JkaW5hcnkgdGFibGVzIGhlcmUuIEl0J3MgdHJ1ZSB0aGF0IGEgc3Ry b25nIGxvY2sKKwkgKiAoU2hhcmVMb2NrIG9yIGFib3ZlKSBvbiBzdWNoIGEgdGFibGUgd291bGQg Y29uZmxpY3Qgd2l0aCB0aGUKKwkgKiBSb3dFeGNsdXNpdmVMb2NrIHRha2VuIGJ5IHRoZSBhcHBs eSB3b3JrZXIncyBpbnNlcnRzIGFuZCBjb3VsZCBzdGFsbAorCSAqIGNvbmZsaWN0IGxvZ2dpbmcg YXMgd2VsbCBhcyB0aGUgYXBwbHkgd29ya2VyIGZvciBhcyBsb25nIGFzIGl0IGlzIGhlbGQuCisJ ICogQnV0IGxvY2tpbmcgYSBzeXN0ZW0tbWFuYWdlZCBjb25mbGljdCBsb2cgdGFibGUgaXMgYW4g dW51c3VhbCB0aGluZyB0bworCSAqIGRvLCBhbmQgaXQgZG9lc24ndCBzZWVtIHdvcnRoIHRoZSB0 cm91YmxlIG9mIGZpbHRlcmluZyBieSBsb2NrIG1vZGUgaGVyZS4KKwkgKi8KIAlpZiAocmVsa2lu ZCAhPSBSRUxLSU5EX1JFTEFUSU9OICYmIHJlbGtpbmQgIT0gUkVMS0lORF9QQVJUSVRJT05FRF9U QUJMRSAmJgogCQlyZWxraW5kICE9IFJFTEtJTkRfVklFVykKIAkJZXJlcG9ydChFUlJPUiwKQEAg LTE5OCw2ICsyMTAsMTYgQEAgTG9ja1ZpZXdSZWN1cnNlX3dhbGtlcihOb2RlICpub2RlLCBMb2Nr Vmlld1JlY3Vyc2VfY29udGV4dCAqY29udGV4dCkKIAkJCQlyZWxraW5kICE9IFJFTEtJTkRfVklF VykKIAkJCQljb250aW51ZTsKIAorCQkJLyoKKwkJCSAqIENvbmZsaWN0IGxvZyB0YWJsZXMgb25s eSBzdXBwb3J0IFNFTEVDVCwgREVMRVRFLCBhbmQgVFJVTkNBVEUuCisJCQkgKiBBIGRpcmVjdCBM T0NLIG9uIHRoZW0gaXMgcGVybWl0dGVkIHNvbGVseSBzbyB0aGF0IHBnX2R1bXAgY2FuCisJCQkg KiBsb2NrIHRoZW0gZHVyaW5nIGEgYmluYXJ5IHVwZ3JhZGU7IGxvY2tpbmcgb25lIGluZGlyZWN0 bHkgYnkKKwkJCSAqIGxvY2tpbmcgYSB2aWV3IG92ZXIgaXQgaXMgbm90IG5lZWRlZCBmb3IgdGhh dCwgc28gc2tpcCBpdCBoZXJlCisJCQkgKiByYXRoZXIgdGhhbiBsb2NraW5nIGl0LgorCQkJICov CisJCQlpZiAoSXNDb25mbGljdExvZ1RhYmxlTmFtZXNwYWNlKGdldF9yZWxfbmFtZXNwYWNlKHJl bGlkKSkpCisJCQkJY29udGludWU7CisKIAkJCS8qCiAJCQkgKiBXZSBtaWdodCBiZSBkZWFsaW5n IHdpdGggYSBzZWxmLXJlZmVyZW50aWFsIHZpZXcuICBJZiBzbywgd2UKIAkJCSAqIGNhbiBqdXN0 IHN0b3AgcmVjdXJzaW5nLCBzaW5jZSB3ZSBhbHJlYWR5IGxvY2tlZCBpdC4KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3BvbGljeS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcG9s aWN5LmMKaW5kZXggMjFiOGVlYmUzMmQuLjEwZWE1OTliYWMwIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9wb2xpY3kuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wb2xpY3ku YwpAQCAtNzksNiArNzksMTggQEAgUmFuZ2VWYXJDYWxsYmFja0ZvclBvbGljeShjb25zdCBSYW5n ZVZhciAqcnYsIE9pZCByZWxpZCwgT2lkIG9sZHJlbGlkLAogCWlmICghb2JqZWN0X293bmVyY2hl Y2soUmVsYXRpb25SZWxhdGlvbklkLCByZWxpZCwgR2V0VXNlcklkKCkpKQogCQlhY2xjaGVja19l cnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIGdldF9yZWxraW5kX29ianR5cGUoZ2V0X3JlbF9yZWxr aW5kKHJlbGlkKSksIHJ2LT5yZWxuYW1lKTsKIAorCS8qCisJICogQ29uZmxpY3QgbG9nIHRhYmxl cyBhcmUgdXNlZCBpbnRlcm5hbGx5IGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0CisJ ICogbG9nZ2luZyBhbmQgc2hvdWxkIG5vdCBiZSBtb2RpZmllZCBkaXJlY3RseSwgYXMgaXQgY291 bGQgZGlzcnVwdAorCSAqIGNvbmZsaWN0IGxvZ2dpbmcuCisJICovCisJaWYgKElzQ29uZmxpY3RM b2dUYWJsZUNsYXNzKGNsYXNzZm9ybSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUo RVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQkgZXJybXNnKCJwZXJtaXNzaW9u IGRlbmllZDogXCIlc1wiIGlzIGEgY29uZmxpY3QgbG9nIHRhYmxlIiwKKwkJCQkJCXJ2LT5yZWxu YW1lKSwKKwkJCQkgZXJyZGV0YWlsKCJDb25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFu YWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzLiIpKSk7CisKIAkv KiBObyBzeXN0ZW0gdGFibGUgbW9kaWZpY2F0aW9ucyB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2Vk LiAqLwogCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1DbGFzcyhyZWxpZCwg Y2xhc3Nmb3JtKSkKIAkJZXJlcG9ydChFUlJPUiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3N0YXRzY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3RhdHNjbWRzLmMKaW5k ZXggYjM1NDcyM2JlNDQuLmU4ZmE4MWVmNTU1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21t YW5kcy9zdGF0c2NtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdGF0c2NtZHMuYwpA QCAtMTQ3LDYgKzE0NywyMCBAQCBDcmVhdGVTdGF0aXN0aWNzKENyZWF0ZVN0YXRzU3RtdCAqc3Rt dCwgYm9vbCBjaGVja19yaWdodHMpCiAJCQlhY2xjaGVja19lcnJvcihBQ0xDSEVDS19OT1RfT1dO RVIsIGdldF9yZWxraW5kX29ianR5cGUocmVsLT5yZF9yZWwtPnJlbGtpbmQpLAogCQkJCQkJICAg UmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSk7CiAKKwkJLyoKKwkJICogQ29uZmxpY3QgbG9n IHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIHVzZWQgaW50ZXJuYWxseSBmb3IKKwkJ ICogbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdCBsb2dnaW5nLiBVbmxpa2UgdXNlciB0YWJs ZXMsIHRoZXkgYXJlCisJCSAqIG5vdCBleHBlY3RlZCB0byBoYXZlIGNvbXBsZXggcXVlcnkgdXNh Z2UsIHNvIHRvIGtlZXAgdGhpbmdzIHNpbXBsZSwKKwkJICogdXNlci1kZWZpbmVkIGV4dGVuZGVk IHN0YXRpc3RpY3MgYXJlIG5vdCByZXF1aXJlZCBvciBzdXBwb3J0ZWQgYXQKKwkJICogcHJlc2Vu dC4KKwkJICovCisJCWlmIChJc0NvbmZsaWN0TG9nVGFibGVDbGFzcyhyZWwtPnJkX3JlbCkpCisJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklW SUxFR0UpLAorCQkJCQkgZXJybXNnKCJwZXJtaXNzaW9uIGRlbmllZDogXCIlc1wiIGlzIGEgY29u ZmxpY3QgbG9nIHRhYmxlIiwKKwkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSwK KwkJCQkJIGVycmRldGFpbCgiQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQg dGFibGVzIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4iKSkpOworCiAJCS8qIENy ZWF0aW5nIHN0YXRpc3RpY3Mgb24gc3lzdGVtIGNhdGFsb2dzIGlzIG5vdCBhbGxvd2VkICovCiAJ CWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1SZWxhdGlvbihyZWwpKQogCQkJ ZXJlcG9ydChFUlJPUiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggNDNiZTljN2ViNGUu Ljk1ZWY5YTE0YzM5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMu YworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMjc1MCw2ICsyNzUw LDE4IEBAIE1lcmdlQXR0cmlidXRlcyhMaXN0ICpjb2x1bW5zLCBjb25zdCBMaXN0ICpzdXBlcnMs IGNoYXIgcmVscGVyc2lzdGVuY2UsCiAJCQkJCSBlcnJtc2coImNhbm5vdCBpbmhlcml0IGZyb20g cGFydGl0aW9uIFwiJXNcIiIsCiAJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsYXRp b24pKSkpOwogCisJCS8qCisJCSAqIENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIG1hbmFnZWQgYnkg dGhlIHN5c3RlbSBmb3IgbG9naWNhbAorCQkgKiByZXBsaWNhdGlvbiBhbmQgc2hvdWxkIG5vdCBi ZSB1c2VkIGFzIHBhcmVudCB0YWJsZXMsIGFzCisJCSAqIGluaGVyaXRhbmNlIGNvdWxkIGludGVy ZmVyZSB3aXRoIHRoZSBsb2dnaW5nIGJlaGF2aW9yLgorCQkgKi8KKwkJaWYgKElzQ29uZmxpY3RM b2dUYWJsZU5hbWVzcGFjZShyZWxhdGlvbi0+cmRfcmVsLT5yZWxuYW1lc3BhY2UpKQorCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdF KSwKKwkJCQkJIGVycm1zZygicGVybWlzc2lvbiBkZW5pZWQ6IGNhbm5vdCBpbmhlcml0IGZyb20g Y29uZmxpY3QgbG9nIHRhYmxlIFwiJXNcIiIsCisJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5h bWUocmVsYXRpb24pKSwKKwkJCQkJIGVycmRldGFpbCgiQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUg c3lzdGVtLW1hbmFnZWQgdGFibGVzIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4i KSkpOworCiAJCWlmIChyZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kICE9IFJFTEtJTkRfUkVMQVRJ T04gJiYKIAkJCXJlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9GT1JFSUdOX1RB QkxFICYmCiAJCQlyZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kICE9IFJFTEtJTkRfUEFSVElUSU9O RURfVEFCTEUpCkBAIC0zODg3LDYgKzM4OTksMTkgQEAgcmVuYW1lYXR0X2NoZWNrKE9pZCBteXJl bGlkLCBGb3JtX3BnX2NsYXNzIGNsYXNzZm9ybSwgYm9vbCByZWN1cnNpbmcpCiAJaWYgKCFvYmpl Y3Rfb3duZXJjaGVjayhSZWxhdGlvblJlbGF0aW9uSWQsIG15cmVsaWQsIEdldFVzZXJJZCgpKSkK IAkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBnZXRfcmVsa2luZF9vYmp0eXBl KGdldF9yZWxfcmVsa2luZChteXJlbGlkKSksCiAJCQkJCSAgIE5hbWVTdHIoY2xhc3Nmb3JtLT5y ZWxuYW1lKSk7CisKKwkvKgorCSAqIENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHVzZWQgaW50ZXJu YWxseSBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdAorCSAqIGxvZ2dpbmcgYW5kIHNo b3VsZCBub3QgYmUgbW9kaWZpZWQgZGlyZWN0bHksIGFzIGl0IGNvdWxkIGRpc3J1cHQKKwkgKiBj b25mbGljdCBsb2dnaW5nLgorCSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVDbGFzcyhjbGFz c2Zvcm0pKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJ RU5UX1BSSVZJTEVHRSksCisJCQkJIGVycm1zZygicGVybWlzc2lvbiBkZW5pZWQ6IFwiJXNcIiBp cyBhIGNvbmZsaWN0IGxvZyB0YWJsZSIsCisJCQkJCQlOYW1lU3RyKGNsYXNzZm9ybS0+cmVsbmFt ZSkpLAorCQkJCSBlcnJkZXRhaWwoIkNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5h Z2VkIHRhYmxlcyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuIikpKTsKKwogCWlm ICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1DbGFzcyhteXJlbGlkLCBjbGFzc2Zv cm0pKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5U X1BSSVZJTEVHRSksCkBAIC02ODg5LDYgKzY5MTQsMTggQEAgQVRTaW1wbGVQZXJtaXNzaW9ucyhB bHRlclRhYmxlVHlwZSBjbWR0eXBlLCBSZWxhdGlvbiByZWwsIGludCBhbGxvd2VkX3RhcmdldHMp CiAJCWFjbGNoZWNrX2Vycm9yKEFDTENIRUNLX05PVF9PV05FUiwgZ2V0X3JlbGtpbmRfb2JqdHlw ZShyZWwtPnJkX3JlbC0+cmVsa2luZCksCiAJCQkJCSAgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1l KHJlbCkpOwogCisJLyoKKwkgKiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSB1c2VkIGludGVybmFs bHkgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3QKKwkgKiBsb2dnaW5nIGFuZCBzaG91 bGQgbm90IGJlIGFsdGVyZWQgZGlyZWN0bHksIGFzIGl0IGNvdWxkIGRpc3J1cHQgY29uZmxpY3QK KwkgKiBsb2dnaW5nLgorCSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVDbGFzcyhyZWwtPnJk X3JlbCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lF TlRfUFJJVklMRUdFKSwKKwkJCQkgZXJybXNnKCJwZXJtaXNzaW9uIGRlbmllZDogXCIlc1wiIGlz IGEgY29uZmxpY3QgbG9nIHRhYmxlIiwKKwkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJl bCkpLAorCQkJCSBlcnJkZXRhaWwoIkNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5h Z2VkIHRhYmxlcyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuIikpKTsKKwogCWlm ICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1SZWxhdGlvbihyZWwpKQogCQllcmVw b3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSks CkBAIC0xMDE5OCw2ICsxMDIzNSwxOCBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3Qg Kip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQkJCSBlcnJt c2coInJlZmVyZW5jZWQgcmVsYXRpb24gXCIlc1wiIGlzIG5vdCBhIHRhYmxlIiwKIAkJCQkJCVJl bGF0aW9uR2V0UmVsYXRpb25OYW1lKHBrcmVsKSkpKTsKIAorCS8qCisJICogQ29uZmxpY3QgbG9n IHRhYmxlcyBhcmUgdXNlZCBpbnRlcm5hbGx5IGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZs aWN0CisJICogbG9nZ2luZyBhbmQgc2hvdWxkIG5vdCBiZSByZWZlcmVuY2VkIGJ5IGZvcmVpZ24g a2V5cywgYXMgaXQgY291bGQKKwkgKiBkaXNydXB0IGNvbmZsaWN0IGxvZ2dpbmcuCisJICovCisJ aWYgKElzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKHBrcmVsLT5yZF9yZWwpKQorCQllcmVwb3J0KEVS Uk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJ IGVycm1zZygicGVybWlzc2lvbiBkZW5pZWQ6IFwiJXNcIiBpcyBhIGNvbmZsaWN0IGxvZyB0YWJs ZSIsCisJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShwa3JlbCkpLAorCQkJCSBlcnJkZXRh aWwoIkNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxlcyBmb3IgbG9n aWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuIikpKTsKKwogCWlmICghYWxsb3dTeXN0ZW1UYWJs ZU1vZHMgJiYgSXNTeXN0ZW1SZWxhdGlvbihwa3JlbCkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJ KGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKQEAgLTE5ODE4LDYgKzE5 ODY3LDE4IEBAIFJhbmdlVmFyQ2FsbGJhY2tPd25zUmVsYXRpb24oY29uc3QgUmFuZ2VWYXIgKnJl bGF0aW9uLAogCQlhY2xjaGVja19lcnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIGdldF9yZWxraW5k X29ianR5cGUoZ2V0X3JlbF9yZWxraW5kKHJlbElkKSksCiAJCQkJCSAgIHJlbGF0aW9uLT5yZWxu YW1lKTsKIAorCS8qCisJICogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgdXNlZCBpbnRlcm5hbGx5 IGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0CisJICogbG9nZ2luZyBhbmQgc2hvdWxk IG5vdCBiZSBtb2RpZmllZCBkaXJlY3RseSwgYXMgaXQgY291bGQgZGlzcnVwdAorCSAqIGNvbmZs aWN0IGxvZ2dpbmcuCisJICovCisJaWYgKElzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKChGb3JtX3Bn X2NsYXNzKSBHRVRTVFJVQ1QodHVwbGUpKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29k ZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCSBlcnJtc2coInBlcm1pc3Np b24gZGVuaWVkOiBcIiVzXCIgaXMgYSBjb25mbGljdCBsb2cgdGFibGUiLAorCQkJCQkJcmVsYXRp b24tPnJlbG5hbWUpLAorCQkJCSBlcnJkZXRhaWwoIkNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5 c3RlbS1tYW5hZ2VkIHRhYmxlcyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuIikp KTsKKwogCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYKIAkJSXNTeXN0ZW1DbGFzcyhyZWxJ ZCwgKEZvcm1fcGdfY2xhc3MpIEdFVFNUUlVDVCh0dXBsZSkpKQogCQllcmVwb3J0KEVSUk9SLApA QCAtMTk4NTMsNiArMTk5MTQsMTggQEAgUmFuZ2VWYXJDYWxsYmFja0ZvckFsdGVyUmVsYXRpb24o Y29uc3QgUmFuZ2VWYXIgKnJ2LCBPaWQgcmVsaWQsIE9pZCBvbGRyZWxpZCwKIAlpZiAoIW9iamVj dF9vd25lcmNoZWNrKFJlbGF0aW9uUmVsYXRpb25JZCwgcmVsaWQsIEdldFVzZXJJZCgpKSkKIAkJ YWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBnZXRfcmVsa2luZF9vYmp0eXBlKGdl dF9yZWxfcmVsa2luZChyZWxpZCkpLCBydi0+cmVsbmFtZSk7CiAKKwkvKgorCSAqIENvbmZsaWN0 IGxvZyB0YWJsZXMgYXJlIHVzZWQgaW50ZXJuYWxseSBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBj b25mbGljdAorCSAqIGxvZ2dpbmcgYW5kIHNob3VsZCBub3QgYmUgYWx0ZXJlZCBkaXJlY3RseSwg YXMgaXQgY291bGQgZGlzcnVwdCBjb25mbGljdAorCSAqIGxvZ2dpbmcuCisJICovCisJaWYgKElz Q29uZmxpY3RMb2dUYWJsZUNsYXNzKGNsYXNzZm9ybSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJ KGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQkgZXJybXNnKCJw ZXJtaXNzaW9uIGRlbmllZDogXCIlc1wiIGlzIGEgY29uZmxpY3QgbG9nIHRhYmxlIiwKKwkJCQkJ CXJ2LT5yZWxuYW1lKSwKKwkJCQkgZXJyZGV0YWlsKCJDb25mbGljdCBsb2cgdGFibGVzIGFyZSBz eXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzLiIp KSk7CisKIAkvKiBObyBzeXN0ZW0gdGFibGUgbW9kaWZpY2F0aW9ucyB1bmxlc3MgZXhwbGljaXRs eSBhbGxvd2VkLiAqLwogCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1DbGFz cyhyZWxpZCwgY2xhc3Nmb3JtKSkKIAkJZXJlcG9ydChFUlJPUiwKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIu YwppbmRleCBiODdiNGI0MGQwNy4uZGU3OTU3YTE1ZjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RyaWdnZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMK QEAgLTMxNCw2ICszMTQsMTggQEAgQ3JlYXRlVHJpZ2dlckZpcmluZ09uKGNvbnN0IENyZWF0ZVRy aWdTdG10ICpzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywKIAkJCQkJCVJlbGF0aW9uR2V0 UmVsYXRpb25OYW1lKHJlbCkpLAogCQkJCSBlcnJkZXRhaWxfcmVsa2luZF9ub3Rfc3VwcG9ydGVk KHJlbC0+cmRfcmVsLT5yZWxraW5kKSkpOwogCisJLyoKKwkgKiBDb25mbGljdCBsb2cgdGFibGVz IGFyZSB1c2VkIGludGVybmFsbHkgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3QKKwkg KiBsb2dnaW5nIGFuZCBzaG91bGQgbm90IGhhdmUgdHJpZ2dlcnMsIGFzIGl0IGNvdWxkIGRpc3J1 cHQgY29uZmxpY3QKKwkgKiBsb2dnaW5nLgorCSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVD bGFzcyhyZWwtPnJkX3JlbCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09E RV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQkgZXJybXNnKCJwZXJtaXNzaW9uIGRlbmll ZDogXCIlc1wiIGlzIGEgY29uZmxpY3QgbG9nIHRhYmxlIiwKKwkJCQkJCVJlbGF0aW9uR2V0UmVs YXRpb25OYW1lKHJlbCkpLAorCQkJCSBlcnJkZXRhaWwoIkNvbmZsaWN0IGxvZyB0YWJsZXMgYXJl IHN5c3RlbS1tYW5hZ2VkIHRhYmxlcyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMu IikpKTsKKwogCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1SZWxhdGlvbihy ZWwpKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5U X1BSSVZJTEVHRSksCkBAIC0xNDQzLDYgKzE0NTUsMTkgQEAgUmFuZ2VWYXJDYWxsYmFja0ZvclJl bmFtZVRyaWdnZXIoY29uc3QgUmFuZ2VWYXIgKnJ2LCBPaWQgcmVsaWQsIE9pZCBvbGRyZWxpZCwK IAkvKiB5b3UgbXVzdCBvd24gdGhlIHRhYmxlIHRvIHJlbmFtZSBvbmUgb2YgaXRzIHRyaWdnZXJz ICovCiAJaWYgKCFvYmplY3Rfb3duZXJjaGVjayhSZWxhdGlvblJlbGF0aW9uSWQsIHJlbGlkLCBH ZXRVc2VySWQoKSkpCiAJCWFjbGNoZWNrX2Vycm9yKEFDTENIRUNLX05PVF9PV05FUiwgZ2V0X3Jl bGtpbmRfb2JqdHlwZShnZXRfcmVsX3JlbGtpbmQocmVsaWQpKSwgcnYtPnJlbG5hbWUpOworCisJ LyoKKwkgKiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSB1c2VkIGludGVybmFsbHkgZm9yIGxvZ2lj YWwgcmVwbGljYXRpb24gY29uZmxpY3QKKwkgKiBsb2dnaW5nIGFuZCBzaG91bGQgbm90IGhhdmUg dHJpZ2dlcnMsIGFzIGl0IGNvdWxkIGRpc3J1cHQgY29uZmxpY3QKKwkgKiBsb2dnaW5nLgorCSAq LworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVDbGFzcyhmb3JtKSkKKwkJZXJlcG9ydChFUlJPUiwK KwkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCSBlcnJt c2coInBlcm1pc3Npb24gZGVuaWVkOiBcIiVzXCIgaXMgYSBjb25mbGljdCBsb2cgdGFibGUiLAor CQkJCQkJcnYtPnJlbG5hbWUpLAorCQkJCSBlcnJkZXRhaWwoIkNvbmZsaWN0IGxvZyB0YWJsZXMg YXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxlcyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGlj dHMuIikpKTsKKwogCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1DbGFzcyhy ZWxpZCwgZm9ybSkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNV RkZJQ0lFTlRfUFJJVklMRUdFKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3 cml0ZURlZmluZS5jIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlRGVmaW5lLmMKaW5kZXgg NmEyMjNmYmVhYTQuLmQwMGQ3NjYxM2ExIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXdyaXRl L3Jld3JpdGVEZWZpbmUuYworKysgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVEZWZpbmUu YwpAQCAtMjYyLDYgKzI2MiwxNyBAQCBEZWZpbmVRdWVyeVJld3JpdGUoY29uc3QgY2hhciAqcnVs ZW5hbWUsCiAJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShldmVudF9yZWxhdGlvbikpLAog CQkJCSBlcnJkZXRhaWxfcmVsa2luZF9ub3Rfc3VwcG9ydGVkKGV2ZW50X3JlbGF0aW9uLT5yZF9y ZWwtPnJlbGtpbmQpKSk7CiAKKwkvKgorCSAqIENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHVzZWQg aW50ZXJuYWxseSBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdAorCSAqIGxvZ2dpbmcg YW5kIHNob3VsZCBub3QgaGF2ZSBydWxlcywgYXMgaXQgY291bGQgZGlzcnVwdCBjb25mbGljdCBs b2dnaW5nLgorCSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVDbGFzcyhldmVudF9yZWxhdGlv bi0+cmRfcmVsKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VG RklDSUVOVF9QUklWSUxFR0UpLAorCQkJCSBlcnJtc2coInBlcm1pc3Npb24gZGVuaWVkOiBcIiVz XCIgaXMgYSBjb25mbGljdCBsb2cgdGFibGUiLAorCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5h bWUoZXZlbnRfcmVsYXRpb24pKSwKKwkJCQkgZXJyZGV0YWlsKCJDb25mbGljdCBsb2cgdGFibGVz IGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxp Y3RzLiIpKSk7CisKIAlpZiAoIWFsbG93U3lzdGVtVGFibGVNb2RzICYmIElzU3lzdGVtUmVsYXRp b24oZXZlbnRfcmVsYXRpb24pKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNP REVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCkBAIC03NzIsNiArNzgzLDE3IEBAIFJhbmdlVmFy Q2FsbGJhY2tGb3JSZW5hbWVSdWxlKGNvbnN0IFJhbmdlVmFyICpydiwgT2lkIHJlbGlkLCBPaWQg b2xkcmVsaWQsCiAJCQkJIGVycm1zZygicmVsYXRpb24gXCIlc1wiIGNhbm5vdCBoYXZlIHJ1bGVz IiwgcnYtPnJlbG5hbWUpLAogCQkJCSBlcnJkZXRhaWxfcmVsa2luZF9ub3Rfc3VwcG9ydGVkKGZv cm0tPnJlbGtpbmQpKSk7CiAKKwkvKgorCSAqIENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHVzZWQg aW50ZXJuYWxseSBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdAorCSAqIGxvZ2dpbmcg YW5kIHNob3VsZCBub3QgaGF2ZSBydWxlcywgYXMgaXQgY291bGQgZGlzcnVwdCBjb25mbGljdCBs b2dnaW5nLgorCSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVDbGFzcyhmb3JtKSkKKwkJZXJl cG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0Up LAorCQkJCSBlcnJtc2coInBlcm1pc3Npb24gZGVuaWVkOiBcIiVzXCIgaXMgYSBjb25mbGljdCBs b2cgdGFibGUiLAorCQkJCQkJcnYtPnJlbG5hbWUpLAorCQkJCSBlcnJkZXRhaWwoIkNvbmZsaWN0 IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxlcyBmb3IgbG9naWNhbCByZXBsaWNh dGlvbiBjb25mbGljdHMuIikpKTsKKwogCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNT eXN0ZW1DbGFzcyhyZWxpZCwgZm9ybSkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUo RVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc3Vic2NyaXB0aW9uLm91dAppbmRleCBlYTA1MDU3OGRlNy4uNmYxYjJjNDdhNmQgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKQEAgLTg5Niw2ICs4OTYs Mjc2IEBAIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0 X2xvZ18nIHx8IHMub2lkCiBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90 ZWN0aW9uX3Rlc3QnIFxnc2V0CiBUUlVOQ0FURSA6Y29uZmxpY3RfdGFiOwogREVMRVRFIEZST00g OmNvbmZsaWN0X3RhYjsKKy0tIFRyeWluZyB0byBjcmVhdGUgYSBuZXcgdGFibGUgbWFudWFsbHkg aW4gdGhlIHBnX2NvbmZsaWN0IG5hbWVzcGFjZQorLS0gVGhpcyBzaG91bGQgZmFpbCBhcyB0aGUg bmFtZXNwYWNlIGlzIHJlc2VydmVkIGZvciBjb25mbGljdCBsb2cgdGFibGVzCitDUkVBVEUgVEFC TEUgcGdfY29uZmxpY3QubWFudWFsX3RhYmxlIChpZCBpbnQpOworRVJST1I6ICBwZXJtaXNzaW9u IGRlbmllZCBmb3Igc2NoZW1hIHBnX2NvbmZsaWN0CitMSU5FIDE6IENSRUFURSBUQUJMRSBwZ19j b25mbGljdC5tYW51YWxfdGFibGUgKGlkIGludCk7CisgICAgICAgICAgICAgICAgICAgICBeCist LSBNb3ZpbmcgYW4gZXhpc3RpbmcgdGFibGUgaW50byB0aGUgcGdfY29uZmxpY3QgbmFtZXNwYWNl CistLSBVc2VycyBzaG91bGQgbm90IGJlIGFibGUgdG8gbW92ZSB0aGVpciBvd24gdGFibGVzIHdp dGhpbiB0aGlzIG5hbWVzcGFjZQorQ1JFQVRFIFRBQkxFIHB1YmxpYy50ZXN0X21vdmUgKGlkIGlu dCk7CitBTFRFUiBUQUJMRSBwdWJsaWMudGVzdF9tb3ZlIFNFVCBTQ0hFTUEgcGdfY29uZmxpY3Q7 CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzY2hlbWEgcGdfY29uZmxpY3QKK0RST1Ag VEFCTEUgcHVibGljLnRlc3RfbW92ZTsKKy0tIFNldHVwIGR1bW15IHRyaWdnZXIgZnVuY3Rpb24g Zm9yIHRyaWdnZXIgdGVzdHMKK0NSRUFURSBGVU5DVElPTiBwdWJsaWMuZHVtbXlfdHJpZ2dlcl9m dW5jKCkgUkVUVVJOUyB0cmlnZ2VyIEFTICQkCitCRUdJTgorICAgIFJFVFVSTiBORVc7CitFTkQ7 CiskJCBMQU5HVUFHRSBwbHBnc3FsOworLS0gUG9saWN5IG9uIGNvbmZsaWN0IGxvZyB0YWJsZQor RE8gJCQKK0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0OworICAgIGVycl9tc2cgdGV4dDsKKyAg ICBlcnJfZGV0YWlsIHRleHQ7CitCRUdJTgorICAgIFNFTEVDVCAncGdfY29uZmxpY3QuJyB8fCBy ZWxuYW1lIElOVE8gdGFiX25hbWUKKyAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3Jp cHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKKyAgICBX SEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOworICAg IEVYRUNVVEUgJ0NSRUFURSBQT0xJQ1kgcDEgT04gJyB8fCB0YWJfbmFtZSB8fCAnIFVTSU5HICh0 cnVlKSc7CitFWENFUFRJT04gV0hFTiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBH RVQgU1RBQ0tFRCBESUFHTk9TVElDUyBlcnJfbXNnID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWls ID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsKKyAgICBSQUlTRSBOT1RJQ0UgJ1BvbGljeSBlcnJvcjog JSwgZGV0YWlsOiAlJywKKyAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX21zZywgJ3BnX2NvbmZs aWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpLAorICAgICAgICByZWdleHBfcmVw bGFjZShlcnJfZGV0YWlsLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2df eHh4Jyk7CitFTkQgJCQ7CitOT1RJQ0U6ICBQb2xpY3kgZXJyb3I6IHBlcm1pc3Npb24gZGVuaWVk OiAicGdfY29uZmxpY3RfbG9nX3h4eCIgaXMgYSBjb25mbGljdCBsb2cgdGFibGUsIGRldGFpbDog Q29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZvciBsb2dpY2Fs IHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4KKy0tIFN0YXRpc3RpY3Mgb24gY29uZmxpY3QgbG9nIHRh YmxlCitETyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7CisgICAgZXJyX21zZyB0ZXh0 OworICAgIGVycl9kZXRhaWwgdGV4dDsKK0JFR0lOCisgICAgU0VMRUNUICdwZ19jb25mbGljdC4n IHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1 YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAor ICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7 CisgICAgRVhFQ1VURSAnQ1JFQVRFIFNUQVRJU1RJQ1MgczEgT04gcmVsbmFtZSwgc2NoZW1hbmFt ZSBGUk9NICcgfHwgdGFiX25hbWU7CitFWENFUFRJT04gV0hFTiBpbnN1ZmZpY2llbnRfcHJpdmls ZWdlIFRIRU4KKyAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyBlcnJfbXNnID0gTUVTU0FHRV9U RVhULCBlcnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsKKyAgICBSQUlTRSBOT1RJQ0Ug J1N0YXRpc3RpY3MgZXJyb3I6ICUsIGRldGFpbDogJScsCisgICAgICAgIHJlZ2V4cF9yZXBsYWNl KGVycl9tc2csICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKSwK KyAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX2RldGFpbCwgJ3BnX2NvbmZsaWN0X2xvZ19cZCsn LCAncGdfY29uZmxpY3RfbG9nX3h4eCcpOworRU5EICQkOworTk9USUNFOiAgU3RhdGlzdGljcyBl cnJvcjogcGVybWlzc2lvbiBkZW5pZWQ6ICJwZ19jb25mbGljdF9sb2dfeHh4IiBpcyBhIGNvbmZs aWN0IGxvZyB0YWJsZSwgZGV0YWlsOiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFu YWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzLgorLS0gSW5oZXJp dGFuY2UgZnJvbSBjb25mbGljdCBsb2cgdGFibGUKK0RPICQkCitERUNMQVJFCisgICAgdGFiX25h bWUgdGV4dDsKKyAgICBlcnJfbXNnIHRleHQ7CisgICAgZXJyX2RldGFpbCB0ZXh0OworQkVHSU4K KyAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAg RlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3Bn X2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3Nf Y29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKKyAgICBFWEVDVVRFICdDUkVBVEUgVEFCTEUgcHVi bGljLmNvbmZsaWN0X2NoaWxkICgpIElOSEVSSVRTICgnIHx8IHRhYl9uYW1lIHx8ICcpJzsKK0VY Q0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhFTgorICAgIEdFVCBTVEFDS0VE IERJQUdOT1NUSUNTIGVycl9tc2cgPSBNRVNTQUdFX1RFWFQsIGVycl9kZXRhaWwgPSBQR19FWENF UFRJT05fREVUQUlMOworICAgIFJBSVNFIE5PVElDRSAnSW5oZXJpdGFuY2UgZXJyb3I6ICUsIGRl dGFpbDogJScsCisgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGljdF9s b2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKSwKKyAgICAgICAgcmVnZXhwX3JlcGxhY2Uo ZXJyX2RldGFpbCwgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcp OworRU5EICQkOworTk9USUNFOiAgSW5oZXJpdGFuY2UgZXJyb3I6IHBlcm1pc3Npb24gZGVuaWVk OiBjYW5ub3QgaW5oZXJpdCBmcm9tIGNvbmZsaWN0IGxvZyB0YWJsZSAicGdfY29uZmxpY3RfbG9n X3h4eCIsIGRldGFpbDogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFi bGVzIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4KKy0tIENvbHVtbiByZW5hbWUg b24gY29uZmxpY3QgbG9nIHRhYmxlCitETyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7 CisgICAgZXJyX21zZyB0ZXh0OworICAgIGVycl9kZXRhaWwgdGV4dDsKK0JFR0lOCisgICAgU0VM RUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAgIEZST00gcGdf Y2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGlj dF9sb2dfJyB8fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0 X3Byb3RlY3Rpb25fdGVzdCc7CisgICAgRVhFQ1VURSAnQUxURVIgVEFCTEUgJyB8fCB0YWJfbmFt ZSB8fCAnIFJFTkFNRSBDT0xVTU4gcmVsbmFtZSBUTyBuZXdfcmVsbmFtZSc7CitFWENFUFRJT04g V0hFTiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBHRVQgU1RBQ0tFRCBESUFHTk9T VElDUyBlcnJfbXNnID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RF VEFJTDsKKyAgICBSQUlTRSBOT1RJQ0UgJ0NvbHVtbiByZW5hbWUgZXJyb3I6ICUsIGRldGFpbDog JScsCisgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGljdF9sb2dfXGQr JywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKSwKKyAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX2Rl dGFpbCwgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpOworRU5E ICQkOworTk9USUNFOiAgQ29sdW1uIHJlbmFtZSBlcnJvcjogcGVybWlzc2lvbiBkZW5pZWQ6ICJw Z19jb25mbGljdF9sb2dfeHh4IiBpcyBhIGNvbmZsaWN0IGxvZyB0YWJsZSwgZGV0YWlsOiBDb25m bGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVw bGljYXRpb24gY29uZmxpY3RzLgorLS0gRm9yZWlnbiBrZXkgcmVmZXJlbmNlIHRvIGNvbmZsaWN0 IGxvZyB0YWJsZQorRE8gJCQKK0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0OworICAgIGVycl9t c2cgdGV4dDsKKyAgICBlcnJfZGV0YWlsIHRleHQ7CitCRUdJTgorICAgIFNFTEVDVCAncGdfY29u ZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKKyAgICBGUk9NIHBnX2NsYXNzIGMgSk9J TiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwg cy5vaWQKKyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9u X3Rlc3QnOworICAgIEVYRUNVVEUgJ0NSRUFURSBUQUJMRSBwdWJsaWMuY29uZmxpY3RfZmsgKHJl bG5hbWUgdGV4dCBSRUZFUkVOQ0VTICcgfHwgdGFiX25hbWUgfHwgJyhyZWxuYW1lKSknOworRVhD RVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBUSEVOCisgICAgR0VUIFNUQUNLRUQg RElBR05PU1RJQ1MgZXJyX21zZyA9IE1FU1NBR0VfVEVYVCwgZXJyX2RldGFpbCA9IFBHX0VYQ0VQ VElPTl9ERVRBSUw7CisgICAgUkFJU0UgTk9USUNFICdGb3JlaWduIGtleSBlcnJvcjogJSwgZGV0 YWlsOiAlJywKKyAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX21zZywgJ3BnX2NvbmZsaWN0X2xv Z19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpLAorICAgICAgICByZWdleHBfcmVwbGFjZShl cnJfZGV0YWlsLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4Jyk7 CitFTkQgJCQ7CitOT1RJQ0U6ICBGb3JlaWduIGtleSBlcnJvcjogcGVybWlzc2lvbiBkZW5pZWQ6 ICJwZ19jb25mbGljdF9sb2dfeHh4IiBpcyBhIGNvbmZsaWN0IGxvZyB0YWJsZSwgZGV0YWlsOiBD b25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwg cmVwbGljYXRpb24gY29uZmxpY3RzLgorLS0gQWx0ZXIgdGFibGUgb3duZXIKK0RPICQkCitERUNM QVJFCisgICAgdGFiX25hbWUgdGV4dDsKKyAgICBlcnJfbXNnIHRleHQ7CisgICAgZXJyX2RldGFp bCB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRP IHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04g Yy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJu YW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKKyAgICBFWEVDVVRFICdB TFRFUiBUQUJMRSAnIHx8IHRhYl9uYW1lIHx8ICcgT1dORVIgVE8gcmVncmVzc19zdWJzY3JpcHRp b25fdXNlcl9kdW1teSc7CitFWENFUFRJT04gV0hFTiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRI RU4KKyAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyBlcnJfbXNnID0gTUVTU0FHRV9URVhULCBl cnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsKKyAgICBSQUlTRSBOT1RJQ0UgJ0FsdGVy IG93bmVyIGVycm9yOiAlLCBkZXRhaWw6ICUnLAorICAgICAgICByZWdleHBfcmVwbGFjZShlcnJf bXNnLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4JyksCisgICAg ICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9kZXRhaWwsICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3Bn X2NvbmZsaWN0X2xvZ194eHgnKTsKK0VORCAkJDsKK05PVElDRTogIEFsdGVyIG93bmVyIGVycm9y OiBwZXJtaXNzaW9uIGRlbmllZDogInBnX2NvbmZsaWN0X2xvZ194eHgiIGlzIGEgY29uZmxpY3Qg bG9nIHRhYmxlLCBkZXRhaWw6IENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2Vk IHRhYmxlcyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuCistLSBBbHRlciB0YWJs ZSBzY2hlbWEKK0RPICQkCitERUNMQVJFCisgICAgdGFiX25hbWUgdGV4dDsKKyAgICBlcnJfbXNn IHRleHQ7CisgICAgZXJyX2RldGFpbCB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3BnX2NvbmZs aWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4g cGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMu b2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90 ZXN0JzsKKyAgICBFWEVDVVRFICdBTFRFUiBUQUJMRSAnIHx8IHRhYl9uYW1lIHx8ICcgU0VUIFND SEVNQSBwdWJsaWMnOworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBUSEVO CisgICAgR0VUIFNUQUNLRUQgRElBR05PU1RJQ1MgZXJyX21zZyA9IE1FU1NBR0VfVEVYVCwgZXJy X2RldGFpbCA9IFBHX0VYQ0VQVElPTl9ERVRBSUw7CisgICAgUkFJU0UgTk9USUNFICdBbHRlciBz Y2hlbWEgZXJyb3I6ICUsIGRldGFpbDogJScsCisgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9t c2csICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKSwKKyAgICAg ICAgcmVnZXhwX3JlcGxhY2UoZXJyX2RldGFpbCwgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdf Y29uZmxpY3RfbG9nX3h4eCcpOworRU5EICQkOworTk9USUNFOiAgQWx0ZXIgc2NoZW1hIGVycm9y OiBwZXJtaXNzaW9uIGRlbmllZDogInBnX2NvbmZsaWN0X2xvZ194eHgiIGlzIGEgY29uZmxpY3Qg bG9nIHRhYmxlLCBkZXRhaWw6IENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2Vk IHRhYmxlcyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuCistLSBDcmVhdGUgdHJp Z2dlciBvbiBjb25mbGljdCBsb2cgdGFibGUKK0RPICQkCitERUNMQVJFCisgICAgdGFiX25hbWUg dGV4dDsKKyAgICBlcnJfbXNnIHRleHQ7CisgICAgZXJyX2RldGFpbCB0ZXh0OworQkVHSU4KKyAg ICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAgRlJP TSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2Nv bmZsaWN0X2xvZ18nIHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29u ZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKKyAgICBFWEVDVVRFICdDUkVBVEUgVFJJR0dFUiB0MSBC RUZPUkUgSU5TRVJUIE9OICcgfHwgdGFiX25hbWUgfHwgJyBGT1IgRUFDSCBST1cgRVhFQ1VURSBG VU5DVElPTiBwdWJsaWMuZHVtbXlfdHJpZ2dlcl9mdW5jKCknOworRVhDRVBUSU9OIFdIRU4gaW5z dWZmaWNpZW50X3ByaXZpbGVnZSBUSEVOCisgICAgR0VUIFNUQUNLRUQgRElBR05PU1RJQ1MgZXJy X21zZyA9IE1FU1NBR0VfVEVYVCwgZXJyX2RldGFpbCA9IFBHX0VYQ0VQVElPTl9ERVRBSUw7Cisg ICAgUkFJU0UgTk9USUNFICdDcmVhdGUgdHJpZ2dlciBlcnJvcjogJSwgZGV0YWlsOiAlJywKKyAg ICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX21zZywgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdf Y29uZmxpY3RfbG9nX3h4eCcpLAorICAgICAgICByZWdleHBfcmVwbGFjZShlcnJfZGV0YWlsLCAn cGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4Jyk7CitFTkQgJCQ7CitO T1RJQ0U6ICBDcmVhdGUgdHJpZ2dlciBlcnJvcjogcGVybWlzc2lvbiBkZW5pZWQ6ICJwZ19jb25m bGljdF9sb2dfeHh4IiBpcyBhIGNvbmZsaWN0IGxvZyB0YWJsZSwgZGV0YWlsOiBDb25mbGljdCBs b2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRp b24gY29uZmxpY3RzLgorLS0gUmVuYW1lIHRyaWdnZXIgb24gY29uZmxpY3QgbG9nIHRhYmxlCitE TyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7CisgICAgZXJyX21zZyB0ZXh0OworICAg IGVycl9kZXRhaWwgdGV4dDsKK0JFR0lOCisgICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJl bG5hbWUgSU5UTyB0YWJfbmFtZQorICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlw dGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorICAgIFdI RVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CisgICAg RVhFQ1VURSAnQUxURVIgVFJJR0dFUiBub25fZXhpc3RlbnRfdHJpZ2dlciBPTiAnIHx8IHRhYl9u YW1lIHx8ICcgUkVOQU1FIFRPIG5ld190cmlnZ2VyJzsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmlj aWVudF9wcml2aWxlZ2UgVEhFTgorICAgIEdFVCBTVEFDS0VEIERJQUdOT1NUSUNTIGVycl9tc2cg PSBNRVNTQUdFX1RFWFQsIGVycl9kZXRhaWwgPSBQR19FWENFUFRJT05fREVUQUlMOworICAgIFJB SVNFIE5PVElDRSAnUmVuYW1lIHRyaWdnZXIgZXJyb3I6ICUsIGRldGFpbDogJScsCisgICAgICAg IHJlZ2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZs aWN0X2xvZ194eHgnKSwKKyAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX2RldGFpbCwgJ3BnX2Nv bmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpOworRU5EICQkOworTk9USUNF OiAgUmVuYW1lIHRyaWdnZXIgZXJyb3I6IHBlcm1pc3Npb24gZGVuaWVkOiAicGdfY29uZmxpY3Rf bG9nX3h4eCIgaXMgYSBjb25mbGljdCBsb2cgdGFibGUsIGRldGFpbDogQ29uZmxpY3QgbG9nIHRh YmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNv bmZsaWN0cy4KKy0tIENyZWF0ZSBydWxlIG9uIGNvbmZsaWN0IGxvZyB0YWJsZQorRE8gJCQKK0RF Q0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0OworICAgIGVycl9tc2cgdGV4dDsKKyAgICBlcnJfZGV0 YWlsIHRleHQ7CitCRUdJTgorICAgIFNFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElO VE8gdGFiX25hbWUKKyAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBP TiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1 Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOworICAgIEVYRUNVVEUg J0NSRUFURSBSVUxFIHIxIEFTIE9OIElOU0VSVCBUTyAnIHx8IHRhYl9uYW1lIHx8ICcgRE8gSU5T VEVBRCBOT1RISU5HJzsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhF TgorICAgIEdFVCBTVEFDS0VEIERJQUdOT1NUSUNTIGVycl9tc2cgPSBNRVNTQUdFX1RFWFQsIGVy cl9kZXRhaWwgPSBQR19FWENFUFRJT05fREVUQUlMOworICAgIFJBSVNFIE5PVElDRSAnQ3JlYXRl IHJ1bGUgZXJyb3I6ICUsIGRldGFpbDogJScsCisgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9t c2csICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKSwKKyAgICAg ICAgcmVnZXhwX3JlcGxhY2UoZXJyX2RldGFpbCwgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdf Y29uZmxpY3RfbG9nX3h4eCcpOworRU5EICQkOworTk9USUNFOiAgQ3JlYXRlIHJ1bGUgZXJyb3I6 IHBlcm1pc3Npb24gZGVuaWVkOiAicGdfY29uZmxpY3RfbG9nX3h4eCIgaXMgYSBjb25mbGljdCBs b2cgdGFibGUsIGRldGFpbDogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQg dGFibGVzIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4KKy0tIFJlbmFtZSBydWxl IG9uIGNvbmZsaWN0IGxvZyB0YWJsZQorRE8gJCQKK0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0 OworICAgIGVycl9tc2cgdGV4dDsKKyAgICBlcnJfZGV0YWlsIHRleHQ7CitCRUdJTgorICAgIFNF TEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKKyAgICBGUk9NIHBn X2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxp Y3RfbG9nXycgfHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGlj dF9wcm90ZWN0aW9uX3Rlc3QnOworICAgIEVYRUNVVEUgJ0FMVEVSIFJVTEUgbm9uX2V4aXN0ZW50 X3J1bGUgT04gJyB8fCB0YWJfbmFtZSB8fCAnIFJFTkFNRSBUTyBuZXdfcnVsZSc7CitFWENFUFRJ T04gV0hFTiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBHRVQgU1RBQ0tFRCBESUFH Tk9TVElDUyBlcnJfbXNnID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWlsID0gUEdfRVhDRVBUSU9O X0RFVEFJTDsKKyAgICBSQUlTRSBOT1RJQ0UgJ1JlbmFtZSBydWxlIGVycm9yOiAlLCBkZXRhaWw6 ICUnLAorICAgICAgICByZWdleHBfcmVwbGFjZShlcnJfbXNnLCAncGdfY29uZmxpY3RfbG9nX1xk KycsICdwZ19jb25mbGljdF9sb2dfeHh4JyksCisgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9k ZXRhaWwsICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKTsKK0VO RCAkJDsKK05PVElDRTogIFJlbmFtZSBydWxlIGVycm9yOiBwZXJtaXNzaW9uIGRlbmllZDogInBn X2NvbmZsaWN0X2xvZ194eHgiIGlzIGEgY29uZmxpY3QgbG9nIHRhYmxlLCBkZXRhaWw6IENvbmZs aWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxlcyBmb3IgbG9naWNhbCByZXBs aWNhdGlvbiBjb25mbGljdHMuCistLSBDcmVhdGUgaW5kZXggb24gY29uZmxpY3QgbG9nIHRhYmxl CitETyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7CisgICAgZXJyX21zZyB0ZXh0Owor ICAgIGVycl9kZXRhaWwgdGV4dDsKK0JFR0lOCisgICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8 IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNj cmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorICAg IFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7Cisg ICAgRVhFQ1VURSAnQ1JFQVRFIElOREVYIGlkeDEgT04gJyB8fCB0YWJfbmFtZSB8fCAnIChyZWxu YW1lKSc7CitFWENFUFRJT04gV0hFTiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBH RVQgU1RBQ0tFRCBESUFHTk9TVElDUyBlcnJfbXNnID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWls ID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsKKyAgICBSQUlTRSBOT1RJQ0UgJ0NyZWF0ZSBpbmRleCBl cnJvcjogJSwgZGV0YWlsOiAlJywKKyAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX21zZywgJ3Bn X2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpLAorICAgICAgICByZWdl eHBfcmVwbGFjZShlcnJfZGV0YWlsLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGlj dF9sb2dfeHh4Jyk7CitFTkQgJCQ7CitOT1RJQ0U6ICBDcmVhdGUgaW5kZXggZXJyb3I6IHBlcm1p c3Npb24gZGVuaWVkOiAicGdfY29uZmxpY3RfbG9nX3h4eCIgaXMgYSBjb25mbGljdCBsb2cgdGFi bGUsIGRldGFpbDogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVz IGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4KKy0tIGZhaWwgLSBjb25mbGljdCBs b2cgdGFibGUgY2Fubm90IGJlIGFkZGVkIHRvIGEgcHVibGljYXRpb24KK0RPICQkCitERUNMQVJF CisgICAgdGFiX25hbWUgdGV4dDsKKyAgICBlcnJfbXNnIHRleHQ7CisgICAgZXJyX2RldGFpbCB0 ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRh Yl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5y ZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1l ID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKKyAgICBFWEVDVVRFICdDUkVB VEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JfY2x0IEZPUiBUQUJMRSAnIHx8IHRhYl9uYW1lOwor RVhDRVBUSU9OIFdIRU4gaW52YWxpZF9wYXJhbWV0ZXJfdmFsdWUgVEhFTgorICAgIEdFVCBTVEFD S0VEIERJQUdOT1NUSUNTIGVycl9tc2cgPSBNRVNTQUdFX1RFWFQsIGVycl9kZXRhaWwgPSBQR19F WENFUFRJT05fREVUQUlMOworICAgIFJBSVNFIE5PVElDRSAnUHVibGljYXRpb24gZXJyb3I6ICUs IGRldGFpbDogJScsCisgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGlj dF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKSwKKyAgICAgICAgZXJyX2RldGFpbDsK K0VORCAkJDsKK05PVElDRTogIFB1YmxpY2F0aW9uIGVycm9yOiBjYW5ub3QgYWRkIHJlbGF0aW9u ICJwZ19jb25mbGljdF9sb2dfeHh4IiB0byBwdWJsaWNhdGlvbiwgZGV0YWlsOiBUaGlzIG9wZXJh dGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciBjb25mbGljdCBsb2cgdGFibGVzLgorLS0gZmFpbCAt IGNhbm5vdCBsb2NrIHJvd3MgaW4gY29uZmxpY3QgbG9nIHRhYmxlCitETyAkJAorREVDTEFSRQor ICAgIHRhYl9uYW1lIHRleHQ7CisgICAgZXJyX21zZyB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1Qg J3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFz cyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xv Z18nIHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJv dGVjdGlvbl90ZXN0JzsKKyAgICBFWEVDVVRFICdTRUxFQ1QgMSBGUk9NICcgfHwgdGFiX25hbWUg fHwgJyBGT1IgVVBEQVRFJzsKK0VYQ0VQVElPTiBXSEVOIHdyb25nX29iamVjdF90eXBlIFRIRU4K KyAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyBlcnJfbXNnID0gTUVTU0FHRV9URVhUOworICAg IFJBSVNFIE5PVElDRSAnUm93IGxvY2sgZXJyb3I6ICUnLAorICAgICAgICByZWdleHBfcmVwbGFj ZShlcnJfbXNnLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4Jyk7 CitFTkQgJCQ7CitOT1RJQ0U6ICBSb3cgbG9jayBlcnJvcjogY2Fubm90IGxvY2sgcm93cyBpbiB0 aGUgY29uZmxpY3QgbG9nIHRhYmxlICJwZ19jb25mbGljdF9sb2dfeHh4IgorLS0gQ2xlYW4gdXAg dHJpZ2dlciBmdW5jdGlvbgorRFJPUCBGVU5DVElPTiBwdWJsaWMuZHVtbXlfdHJpZ2dlcl9mdW5j KCk7CiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9IFdBUk5JTkc7CiAtLSBDbGVhbiB1cCByZW1h aW5pbmcgdGVzdCBzdWJzY3JpcHRpb24KIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZs aWN0X2xvZ19kZWZhdWx0IERJU0FCTEU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zdWJzY3JpcHRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNx bAppbmRleCA3NmRmZDU3NGQ4YS4uMDg0ZTVlN2U3OGYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vi c2NyaXB0aW9uLnNxbApAQCAtNjk5LDYgKzY5OSwyNzcgQEAgV0hFUkUgcy5zdWJuYW1lID0gJ3Jl Z3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JyBcZ3NldAogVFJVTkNBVEUgOmNvbmZsaWN0 X3RhYjsKIERFTEVURSBGUk9NIDpjb25mbGljdF90YWI7CiAKKy0tIFRyeWluZyB0byBjcmVhdGUg YSBuZXcgdGFibGUgbWFudWFsbHkgaW4gdGhlIHBnX2NvbmZsaWN0IG5hbWVzcGFjZQorLS0gVGhp cyBzaG91bGQgZmFpbCBhcyB0aGUgbmFtZXNwYWNlIGlzIHJlc2VydmVkIGZvciBjb25mbGljdCBs b2cgdGFibGVzCitDUkVBVEUgVEFCTEUgcGdfY29uZmxpY3QubWFudWFsX3RhYmxlIChpZCBpbnQp OworCistLSBNb3ZpbmcgYW4gZXhpc3RpbmcgdGFibGUgaW50byB0aGUgcGdfY29uZmxpY3QgbmFt ZXNwYWNlCistLSBVc2VycyBzaG91bGQgbm90IGJlIGFibGUgdG8gbW92ZSB0aGVpciBvd24gdGFi bGVzIHdpdGhpbiB0aGlzIG5hbWVzcGFjZQorQ1JFQVRFIFRBQkxFIHB1YmxpYy50ZXN0X21vdmUg KGlkIGludCk7CitBTFRFUiBUQUJMRSBwdWJsaWMudGVzdF9tb3ZlIFNFVCBTQ0hFTUEgcGdfY29u ZmxpY3Q7CitEUk9QIFRBQkxFIHB1YmxpYy50ZXN0X21vdmU7CisKKy0tIFNldHVwIGR1bW15IHRy aWdnZXIgZnVuY3Rpb24gZm9yIHRyaWdnZXIgdGVzdHMKK0NSRUFURSBGVU5DVElPTiBwdWJsaWMu ZHVtbXlfdHJpZ2dlcl9mdW5jKCkgUkVUVVJOUyB0cmlnZ2VyIEFTICQkCitCRUdJTgorICAgIFJF VFVSTiBORVc7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCistLSBQb2xpY3kgb24gY29u ZmxpY3QgbG9nIHRhYmxlCitETyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7CisgICAg ZXJyX21zZyB0ZXh0OworICAgIGVycl9kZXRhaWwgdGV4dDsKK0JFR0lOCisgICAgU0VMRUNUICdw Z19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAgIEZST00gcGdfY2xhc3Mg YyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2df JyB8fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3Rl Y3Rpb25fdGVzdCc7CisgICAgRVhFQ1VURSAnQ1JFQVRFIFBPTElDWSBwMSBPTiAnIHx8IHRhYl9u YW1lIHx8ICcgVVNJTkcgKHRydWUpJzsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2 aWxlZ2UgVEhFTgorICAgIEdFVCBTVEFDS0VEIERJQUdOT1NUSUNTIGVycl9tc2cgPSBNRVNTQUdF X1RFWFQsIGVycl9kZXRhaWwgPSBQR19FWENFUFRJT05fREVUQUlMOworICAgIFJBSVNFIE5PVElD RSAnUG9saWN5IGVycm9yOiAlLCBkZXRhaWw6ICUnLAorICAgICAgICByZWdleHBfcmVwbGFjZShl cnJfbXNnLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4JyksCisg ICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9kZXRhaWwsICdwZ19jb25mbGljdF9sb2dfXGQrJywg J3BnX2NvbmZsaWN0X2xvZ194eHgnKTsKK0VORCAkJDsKKworLS0gU3RhdGlzdGljcyBvbiBjb25m bGljdCBsb2cgdGFibGUKK0RPICQkCitERUNMQVJFCisgICAgdGFiX25hbWUgdGV4dDsKKyAgICBl cnJfbXNnIHRleHQ7CisgICAgZXJyX2RldGFpbCB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3Bn X2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBj IEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18n IHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVj dGlvbl90ZXN0JzsKKyAgICBFWEVDVVRFICdDUkVBVEUgU1RBVElTVElDUyBzMSBPTiByZWxuYW1l LCBzY2hlbWFuYW1lIEZST00gJyB8fCB0YWJfbmFtZTsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmlj aWVudF9wcml2aWxlZ2UgVEhFTgorICAgIEdFVCBTVEFDS0VEIERJQUdOT1NUSUNTIGVycl9tc2cg PSBNRVNTQUdFX1RFWFQsIGVycl9kZXRhaWwgPSBQR19FWENFUFRJT05fREVUQUlMOworICAgIFJB SVNFIE5PVElDRSAnU3RhdGlzdGljcyBlcnJvcjogJSwgZGV0YWlsOiAlJywKKyAgICAgICAgcmVn ZXhwX3JlcGxhY2UoZXJyX21zZywgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3Rf bG9nX3h4eCcpLAorICAgICAgICByZWdleHBfcmVwbGFjZShlcnJfZGV0YWlsLCAncGdfY29uZmxp Y3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4Jyk7CitFTkQgJCQ7CisKKy0tIEluaGVy aXRhbmNlIGZyb20gY29uZmxpY3QgbG9nIHRhYmxlCitETyAkJAorREVDTEFSRQorICAgIHRhYl9u YW1lIHRleHQ7CisgICAgZXJyX21zZyB0ZXh0OworICAgIGVycl9kZXRhaWwgdGV4dDsKK0JFR0lO CisgICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAg IEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdw Z19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNz X2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CisgICAgRVhFQ1VURSAnQ1JFQVRFIFRBQkxFIHB1 YmxpYy5jb25mbGljdF9jaGlsZCAoKSBJTkhFUklUUyAoJyB8fCB0YWJfbmFtZSB8fCAnKSc7CitF WENFUFRJT04gV0hFTiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBHRVQgU1RBQ0tF RCBESUFHTk9TVElDUyBlcnJfbXNnID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWlsID0gUEdfRVhD RVBUSU9OX0RFVEFJTDsKKyAgICBSQUlTRSBOT1RJQ0UgJ0luaGVyaXRhbmNlIGVycm9yOiAlLCBk ZXRhaWw6ICUnLAorICAgICAgICByZWdleHBfcmVwbGFjZShlcnJfbXNnLCAncGdfY29uZmxpY3Rf bG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4JyksCisgICAgICAgIHJlZ2V4cF9yZXBsYWNl KGVycl9kZXRhaWwsICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgn KTsKK0VORCAkJDsKKworLS0gQ29sdW1uIHJlbmFtZSBvbiBjb25mbGljdCBsb2cgdGFibGUKK0RP ICQkCitERUNMQVJFCisgICAgdGFiX25hbWUgdGV4dDsKKyAgICBlcnJfbXNnIHRleHQ7CisgICAg ZXJyX2RldGFpbCB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVs bmFtZSBJTlRPIHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0 aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCisgICAgV0hF UkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKKyAgICBF WEVDVVRFICdBTFRFUiBUQUJMRSAnIHx8IHRhYl9uYW1lIHx8ICcgUkVOQU1FIENPTFVNTiByZWxu YW1lIFRPIG5ld19yZWxuYW1lJzsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxl Z2UgVEhFTgorICAgIEdFVCBTVEFDS0VEIERJQUdOT1NUSUNTIGVycl9tc2cgPSBNRVNTQUdFX1RF WFQsIGVycl9kZXRhaWwgPSBQR19FWENFUFRJT05fREVUQUlMOworICAgIFJBSVNFIE5PVElDRSAn Q29sdW1uIHJlbmFtZSBlcnJvcjogJSwgZGV0YWlsOiAlJywKKyAgICAgICAgcmVnZXhwX3JlcGxh Y2UoZXJyX21zZywgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcp LAorICAgICAgICByZWdleHBfcmVwbGFjZShlcnJfZGV0YWlsLCAncGdfY29uZmxpY3RfbG9nX1xk KycsICdwZ19jb25mbGljdF9sb2dfeHh4Jyk7CitFTkQgJCQ7CisKKy0tIEZvcmVpZ24ga2V5IHJl ZmVyZW5jZSB0byBjb25mbGljdCBsb2cgdGFibGUKK0RPICQkCitERUNMQVJFCisgICAgdGFiX25h bWUgdGV4dDsKKyAgICBlcnJfbXNnIHRleHQ7CisgICAgZXJyX2RldGFpbCB0ZXh0OworQkVHSU4K KyAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAg RlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3Bn X2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3Nf Y29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKKyAgICBFWEVDVVRFICdDUkVBVEUgVEFCTEUgcHVi bGljLmNvbmZsaWN0X2ZrIChyZWxuYW1lIHRleHQgUkVGRVJFTkNFUyAnIHx8IHRhYl9uYW1lIHx8 ICcocmVsbmFtZSkpJzsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhF TgorICAgIEdFVCBTVEFDS0VEIERJQUdOT1NUSUNTIGVycl9tc2cgPSBNRVNTQUdFX1RFWFQsIGVy cl9kZXRhaWwgPSBQR19FWENFUFRJT05fREVUQUlMOworICAgIFJBSVNFIE5PVElDRSAnRm9yZWln biBrZXkgZXJyb3I6ICUsIGRldGFpbDogJScsCisgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9t c2csICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKSwKKyAgICAg ICAgcmVnZXhwX3JlcGxhY2UoZXJyX2RldGFpbCwgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdf Y29uZmxpY3RfbG9nX3h4eCcpOworRU5EICQkOworCistLSBBbHRlciB0YWJsZSBvd25lcgorRE8g JCQKK0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0OworICAgIGVycl9tc2cgdGV4dDsKKyAgICBl cnJfZGV0YWlsIHRleHQ7CitCRUdJTgorICAgIFNFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxu YW1lIElOVE8gdGFiX25hbWUKKyAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRp b24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKKyAgICBXSEVS RSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOworICAgIEVY RUNVVEUgJ0FMVEVSIFRBQkxFICcgfHwgdGFiX25hbWUgfHwgJyBPV05FUiBUTyByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyX2R1bW15JzsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2 aWxlZ2UgVEhFTgorICAgIEdFVCBTVEFDS0VEIERJQUdOT1NUSUNTIGVycl9tc2cgPSBNRVNTQUdF X1RFWFQsIGVycl9kZXRhaWwgPSBQR19FWENFUFRJT05fREVUQUlMOworICAgIFJBSVNFIE5PVElD RSAnQWx0ZXIgb3duZXIgZXJyb3I6ICUsIGRldGFpbDogJScsCisgICAgICAgIHJlZ2V4cF9yZXBs YWNlKGVycl9tc2csICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgn KSwKKyAgICAgICAgcmVnZXhwX3JlcGxhY2UoZXJyX2RldGFpbCwgJ3BnX2NvbmZsaWN0X2xvZ19c ZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcpOworRU5EICQkOworCistLSBBbHRlciB0YWJsZSBz Y2hlbWEKK0RPICQkCitERUNMQVJFCisgICAgdGFiX25hbWUgdGV4dDsKKyAgICBlcnJfbXNnIHRl eHQ7CisgICAgZXJyX2RldGFpbCB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0 LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdf c3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lk CisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0 JzsKKyAgICBFWEVDVVRFICdBTFRFUiBUQUJMRSAnIHx8IHRhYl9uYW1lIHx8ICcgU0VUIFNDSEVN QSBwdWJsaWMnOworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBUSEVOCisg ICAgR0VUIFNUQUNLRUQgRElBR05PU1RJQ1MgZXJyX21zZyA9IE1FU1NBR0VfVEVYVCwgZXJyX2Rl dGFpbCA9IFBHX0VYQ0VQVElPTl9ERVRBSUw7CisgICAgUkFJU0UgTk9USUNFICdBbHRlciBzY2hl bWEgZXJyb3I6ICUsIGRldGFpbDogJScsCisgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9tc2cs ICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKSwKKyAgICAgICAg cmVnZXhwX3JlcGxhY2UoZXJyX2RldGFpbCwgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29u ZmxpY3RfbG9nX3h4eCcpOworRU5EICQkOworCistLSBDcmVhdGUgdHJpZ2dlciBvbiBjb25mbGlj dCBsb2cgdGFibGUKK0RPICQkCitERUNMQVJFCisgICAgdGFiX25hbWUgdGV4dDsKKyAgICBlcnJf bXNnIHRleHQ7CisgICAgZXJyX2RldGFpbCB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3BnX2Nv bmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBjIEpP SU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8 IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlv bl90ZXN0JzsKKyAgICBFWEVDVVRFICdDUkVBVEUgVFJJR0dFUiB0MSBCRUZPUkUgSU5TRVJUIE9O ICcgfHwgdGFiX25hbWUgfHwgJyBGT1IgRUFDSCBST1cgRVhFQ1VURSBGVU5DVElPTiBwdWJsaWMu ZHVtbXlfdHJpZ2dlcl9mdW5jKCknOworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZp bGVnZSBUSEVOCisgICAgR0VUIFNUQUNLRUQgRElBR05PU1RJQ1MgZXJyX21zZyA9IE1FU1NBR0Vf VEVYVCwgZXJyX2RldGFpbCA9IFBHX0VYQ0VQVElPTl9ERVRBSUw7CisgICAgUkFJU0UgTk9USUNF ICdDcmVhdGUgdHJpZ2dlciBlcnJvcjogJSwgZGV0YWlsOiAlJywKKyAgICAgICAgcmVnZXhwX3Jl cGxhY2UoZXJyX21zZywgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4 eCcpLAorICAgICAgICByZWdleHBfcmVwbGFjZShlcnJfZGV0YWlsLCAncGdfY29uZmxpY3RfbG9n X1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4Jyk7CitFTkQgJCQ7CisKKy0tIFJlbmFtZSB0cmln Z2VyIG9uIGNvbmZsaWN0IGxvZyB0YWJsZQorRE8gJCQKK0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0 ZXh0OworICAgIGVycl9tc2cgdGV4dDsKKyAgICBlcnJfZGV0YWlsIHRleHQ7CitCRUdJTgorICAg IFNFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKKyAgICBGUk9N IHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29u ZmxpY3RfbG9nXycgfHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25m bGljdF9wcm90ZWN0aW9uX3Rlc3QnOworICAgIEVYRUNVVEUgJ0FMVEVSIFRSSUdHRVIgbm9uX2V4 aXN0ZW50X3RyaWdnZXIgT04gJyB8fCB0YWJfbmFtZSB8fCAnIFJFTkFNRSBUTyBuZXdfdHJpZ2dl cic7CitFWENFUFRJT04gV0hFTiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBHRVQg U1RBQ0tFRCBESUFHTk9TVElDUyBlcnJfbXNnID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWlsID0g UEdfRVhDRVBUSU9OX0RFVEFJTDsKKyAgICBSQUlTRSBOT1RJQ0UgJ1JlbmFtZSB0cmlnZ2VyIGVy cm9yOiAlLCBkZXRhaWw6ICUnLAorICAgICAgICByZWdleHBfcmVwbGFjZShlcnJfbXNnLCAncGdf Y29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4JyksCisgICAgICAgIHJlZ2V4 cF9yZXBsYWNlKGVycl9kZXRhaWwsICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0 X2xvZ194eHgnKTsKK0VORCAkJDsKKworLS0gQ3JlYXRlIHJ1bGUgb24gY29uZmxpY3QgbG9nIHRh YmxlCitETyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7CisgICAgZXJyX21zZyB0ZXh0 OworICAgIGVycl9kZXRhaWwgdGV4dDsKK0JFR0lOCisgICAgU0VMRUNUICdwZ19jb25mbGljdC4n IHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1 YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAor ICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7 CisgICAgRVhFQ1VURSAnQ1JFQVRFIFJVTEUgcjEgQVMgT04gSU5TRVJUIFRPICcgfHwgdGFiX25h bWUgfHwgJyBETyBJTlNURUFEIE5PVEhJTkcnOworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50 X3ByaXZpbGVnZSBUSEVOCisgICAgR0VUIFNUQUNLRUQgRElBR05PU1RJQ1MgZXJyX21zZyA9IE1F U1NBR0VfVEVYVCwgZXJyX2RldGFpbCA9IFBHX0VYQ0VQVElPTl9ERVRBSUw7CisgICAgUkFJU0Ug Tk9USUNFICdDcmVhdGUgcnVsZSBlcnJvcjogJSwgZGV0YWlsOiAlJywKKyAgICAgICAgcmVnZXhw X3JlcGxhY2UoZXJyX21zZywgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9n X3h4eCcpLAorICAgICAgICByZWdleHBfcmVwbGFjZShlcnJfZGV0YWlsLCAncGdfY29uZmxpY3Rf bG9nX1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4Jyk7CitFTkQgJCQ7CisKKy0tIFJlbmFtZSBy dWxlIG9uIGNvbmZsaWN0IGxvZyB0YWJsZQorRE8gJCQKK0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0 ZXh0OworICAgIGVycl9tc2cgdGV4dDsKKyAgICBlcnJfZGV0YWlsIHRleHQ7CitCRUdJTgorICAg IFNFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKKyAgICBGUk9N IHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29u ZmxpY3RfbG9nXycgfHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25m bGljdF9wcm90ZWN0aW9uX3Rlc3QnOworICAgIEVYRUNVVEUgJ0FMVEVSIFJVTEUgbm9uX2V4aXN0 ZW50X3J1bGUgT04gJyB8fCB0YWJfbmFtZSB8fCAnIFJFTkFNRSBUTyBuZXdfcnVsZSc7CitFWENF UFRJT04gV0hFTiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBHRVQgU1RBQ0tFRCBE SUFHTk9TVElDUyBlcnJfbXNnID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWlsID0gUEdfRVhDRVBU SU9OX0RFVEFJTDsKKyAgICBSQUlTRSBOT1RJQ0UgJ1JlbmFtZSBydWxlIGVycm9yOiAlLCBkZXRh aWw6ICUnLAorICAgICAgICByZWdleHBfcmVwbGFjZShlcnJfbXNnLCAncGdfY29uZmxpY3RfbG9n X1xkKycsICdwZ19jb25mbGljdF9sb2dfeHh4JyksCisgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVy cl9kZXRhaWwsICdwZ19jb25mbGljdF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKTsK K0VORCAkJDsKKworLS0gQ3JlYXRlIGluZGV4IG9uIGNvbmZsaWN0IGxvZyB0YWJsZQorRE8gJCQK K0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0OworICAgIGVycl9tc2cgdGV4dDsKKyAgICBlcnJf ZGV0YWlsIHRleHQ7CitCRUdJTgorICAgIFNFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1l IElOVE8gdGFiX25hbWUKKyAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24g cyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKKyAgICBXSEVSRSBz LnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOworICAgIEVYRUNV VEUgJ0NSRUFURSBJTkRFWCBpZHgxIE9OICcgfHwgdGFiX25hbWUgfHwgJyAocmVsbmFtZSknOwor RVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBUSEVOCisgICAgR0VUIFNUQUNL RUQgRElBR05PU1RJQ1MgZXJyX21zZyA9IE1FU1NBR0VfVEVYVCwgZXJyX2RldGFpbCA9IFBHX0VY Q0VQVElPTl9ERVRBSUw7CisgICAgUkFJU0UgTk9USUNFICdDcmVhdGUgaW5kZXggZXJyb3I6ICUs IGRldGFpbDogJScsCisgICAgICAgIHJlZ2V4cF9yZXBsYWNlKGVycl9tc2csICdwZ19jb25mbGlj dF9sb2dfXGQrJywgJ3BnX2NvbmZsaWN0X2xvZ194eHgnKSwKKyAgICAgICAgcmVnZXhwX3JlcGxh Y2UoZXJyX2RldGFpbCwgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4 eCcpOworRU5EICQkOworCistLSBmYWlsIC0gY29uZmxpY3QgbG9nIHRhYmxlIGNhbm5vdCBiZSBh ZGRlZCB0byBhIHB1YmxpY2F0aW9uCitETyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7 CisgICAgZXJyX21zZyB0ZXh0OworICAgIGVycl9kZXRhaWwgdGV4dDsKK0JFR0lOCisgICAgU0VM RUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAgIEZST00gcGdf Y2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGlj dF9sb2dfJyB8fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0 X3Byb3RlY3Rpb25fdGVzdCc7CisgICAgRVhFQ1VURSAnQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfZm9yX2NsdCBGT1IgVEFCTEUgJyB8fCB0YWJfbmFtZTsKK0VYQ0VQVElPTiBXSEVOIGludmFs aWRfcGFyYW1ldGVyX3ZhbHVlIFRIRU4KKyAgICBHRVQgU1RBQ0tFRCBESUFHTk9TVElDUyBlcnJf bXNnID0gTUVTU0FHRV9URVhULCBlcnJfZGV0YWlsID0gUEdfRVhDRVBUSU9OX0RFVEFJTDsKKyAg ICBSQUlTRSBOT1RJQ0UgJ1B1YmxpY2F0aW9uIGVycm9yOiAlLCBkZXRhaWw6ICUnLAorICAgICAg ICByZWdleHBfcmVwbGFjZShlcnJfbXNnLCAncGdfY29uZmxpY3RfbG9nX1xkKycsICdwZ19jb25m bGljdF9sb2dfeHh4JyksCisgICAgICAgIGVycl9kZXRhaWw7CitFTkQgJCQ7CisKKy0tIGZhaWwg LSBjYW5ub3QgbG9jayByb3dzIGluIGNvbmZsaWN0IGxvZyB0YWJsZQorRE8gJCQKK0RFQ0xBUkUK KyAgICB0YWJfbmFtZSB0ZXh0OworICAgIGVycl9tc2cgdGV4dDsKK0JFR0lOCisgICAgU0VMRUNU ICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAgIEZST00gcGdfY2xh c3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9s b2dfJyB8fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3By b3RlY3Rpb25fdGVzdCc7CisgICAgRVhFQ1VURSAnU0VMRUNUIDEgRlJPTSAnIHx8IHRhYl9uYW1l IHx8ICcgRk9SIFVQREFURSc7CitFWENFUFRJT04gV0hFTiB3cm9uZ19vYmplY3RfdHlwZSBUSEVO CisgICAgR0VUIFNUQUNLRUQgRElBR05PU1RJQ1MgZXJyX21zZyA9IE1FU1NBR0VfVEVYVDsKKyAg ICBSQUlTRSBOT1RJQ0UgJ1JvdyBsb2NrIGVycm9yOiAlJywKKyAgICAgICAgcmVnZXhwX3JlcGxh Y2UoZXJyX21zZywgJ3BnX2NvbmZsaWN0X2xvZ19cZCsnLCAncGdfY29uZmxpY3RfbG9nX3h4eCcp OworRU5EICQkOworCistLSBDbGVhbiB1cCB0cmlnZ2VyIGZ1bmN0aW9uCitEUk9QIEZVTkNUSU9O IHB1YmxpYy5kdW1teV90cmlnZ2VyX2Z1bmMoKTsKKworCiBTRVQgY2xpZW50X21pbl9tZXNzYWdl cyA9IFdBUk5JTkc7CiAKIC0tIENsZWFuIHVwIHJlbWFpbmluZyB0ZXN0IHN1YnNjcmlwdGlvbgot LSAKMi40OS4wCgo= --000000000000c4ad1b0655330de9 Content-Type: application/octet-stream; name="v59-0004-Preserve-conflict-log-destination-and-subscripti.patch" Content-Disposition: attachment; filename="v59-0004-Preserve-conflict-log-destination-and-subscripti.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqvqwnqw3 RnJvbSA3Zjk5NzRjYTMyZGYxYmRjMWMxYTE1OTU2MTJhZTE1ZTVhMDhkZDkyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogV2VkLCAyNCBKdW4gMjAyNiAxMToxMDowMSArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjU5 IDQvNl0gUHJlc2VydmUgY29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIGFuZCBzdWJzY3JpcHRpb24K IE9JRCBmb3Igc3Vic2NyaXB0aW9ucwoKU3VwcG9ydCBwZ19kdW1wIHRvIGR1bXAgYW5kIHJlc3Rv cmUgdGhlIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiBzZXR0aW5nIGZvcgpzdWJzY3JpcHRpb25z LgoKRHVyaW5nIGEgbm9ybWFsIENSRUFURSBTVUJTQ1JJUFRJT04sIGEgY29uZmxpY3QgbG9nIHRh YmxlIGlzIGNyZWF0ZWQKYXV0b21hdGljYWxseSB3aGVuIHJlcXVpcmVkLiBIb3dldmVyLCBkdXJp bmcgYmluYXJ5IHVwZ3JhZGUsIHRoZSBjb25mbGljdApsb2cgdGFibGUgd2lsbCBhbHJlYWR5IGV4 aXN0IGFuZCBtdXN0IGJlIHJldXNlZCByYXRoZXIgdGhhbiByZWNyZWF0ZWQsIGFuZAp0aGUgc3Vi c2NyaXB0aW9uIG11c3QgcmV0YWluIGl0cyBvcmlnaW5hbCBPSUQgdG8gY29ycmVjdGx5IHJlLWVz dGFibGlzaApjYXRhbG9nIHJlbGF0aW9uc2hpcHMuCgpUbyBlbnN1cmUgY29ycmVjdCBiZWhhdmlv ciwgcGdfZHVtcCBub3cgZW1pdHMgYW4gQUxURVIgU1VCU0NSSVBUSU9OIGNvbW1hbmQKYWZ0ZXIg c3Vic2NyaXB0aW9uIGNyZWF0aW9uIHRvIHJlc3RvcmUgdGhlIGNvbmZsaWN0X2xvZ19kZXN0aW5h dGlvbiBzZXR0aW5nLgoKVE9ETzogRW5zdXJlIGFsbCAxOTAwMDAgc2VyaWVzIHJlZmVyZW5jZXMg YXJlIHVwZGF0ZWQgdG8gMjAwMDAwCndoZW4gdGhlIHZlcnNpb24gbnVtYmVyIGlzIGJ1bXBlZC4K LS0tCiBzcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYyAgICAgICAgICAgICAgICAgICAgfCAgIDIg Kwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jICAgICAgIHwgIDU2ICsr KysrKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMgICAgfCAg IDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ191cGdyYWRlX3N1cHBvcnQuYyAgICB8ICAx MCArKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgMTI1 ICsrKysrKysrKysrKysrKysrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAg ICAgICAgICAgIHwgICAyICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyAgICAgICAg ICAgICAgICB8ICAzMSArKysrKwogc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAg ICAgICAgICAgIHwgICA1ICstCiBzcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jICAgICAg ICAgICAgICAgfCAgIDQgKwogc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDA0X3N1YnNjcmlwdGlvbi5w bCAgICAgIHwgIDE0ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL2JpbmFyeV91cGdyYWRlLmggICAg ICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICAg ICAgIHwgICA0ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmggICAgICAg ICB8ICAgMyArCiAuLi4vZXhwZWN0ZWQvc3BnaXN0X25hbWVfb3BzLm91dCAgICAgICAgICAgICAg fCAgIDYgKy0KIDE0IGZpbGVzIGNoYW5nZWQsIDI0OSBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvaGVhcC5jCmluZGV4IDg4MDg3NjU0ZGU5Li4wOGQxNWRlNDA4MyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9oZWFwLmMKQEAgLTMxMiw2ICszMTIsOCBAQCBoZWFwX2NyZWF0ZShjb25zdCBjaGFyICpyZWxu YW1lLAogCSAqIEJ1dCBhbGxvdyBjcmVhdGluZyBpbmRleGVzIG9uIHJlbGF0aW9ucyBpbiBwZ19j YXRhbG9nIGV2ZW4gaWYKIAkgKiBhbGxvd19zeXN0ZW1fdGFibGVfbW9kcyA9IG9mZiwgdXBwZXIg bGF5ZXJzIGFscmVhZHkgZ3VhcmFudGVlIGl0J3Mgb24gYQogCSAqIHVzZXIgZGVmaW5lZCByZWxh dGlvbiwgbm90IGEgc3lzdGVtIG9uZS4KKwkgKgorCSAqIEFsbG93IGNyZWF0aW9uIG9mIHRoZSBj b25mbGljdCBsb2cgdGFibGUgaW4gYmluYXJ5LXVwZ3JhZGUgbW9kZS4KIAkgKi8KIAlpZiAoIWFs bG93X3N5c3RlbV90YWJsZV9tb2RzICYmCiAJCSgoSXNDYXRhbG9nTmFtZXNwYWNlKHJlbG5hbWVz cGFjZSkgJiYgcmVsa2luZCAhPSBSRUxLSU5EX0lOREVYKSB8fApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv c3Vic2NyaXB0aW9uY21kcy5jCmluZGV4IGUzMGUwZTBkZmU3Li5jZWUyNjYwOGEwNiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYwpAQCAtMTksNiArMTksNyBAQAogI2lu Y2x1ZGUgImFjY2Vzcy90YWJsZS5oIgogI2luY2x1ZGUgImFjY2Vzcy90d29waGFzZS5oIgogI2lu Y2x1ZGUgImFjY2Vzcy94YWN0LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9iaW5hcnlfdXBncmFkZS5o IgogI2luY2x1ZGUgImNhdGFsb2cvY2F0YWxvZy5oIgogI2luY2x1ZGUgImNhdGFsb2cvZGVwZW5k ZW5jeS5oIgogI2luY2x1ZGUgImNhdGFsb2cvaW5kZXhpbmcuaCIKQEAgLTg2LDYgKzg3LDEyIEBA CiAvKiBjaGVjayBpZiB0aGUgJ3ZhbCcgaGFzICdiaXRzJyBzZXQgKi8KICNkZWZpbmUgSXNTZXQo dmFsLCBiaXRzKSAgKCgodmFsKSAmIChiaXRzKSkgPT0gKGJpdHMpKQogCisvKgorICogVGhpcyB3 aWxsIGJlIHNldCBieSB0aGUgcGdfdXBncmFkZV9zdXBwb3J0IGZ1bmN0aW9uIC0tCisgKiBiaW5h cnlfdXBncmFkZV9zZXRfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkKCkuCisgKi8KK09pZAkJCWJp bmFyeV91cGdyYWRlX25leHRfcGdfc3Vic2NyaXB0aW9uX29pZCA9IEludmFsaWRPaWQ7CisKIC8q CiAgKiBTdHJ1Y3R1cmUgdG8gaG9sZCBhIGJpdG1hcCByZXByZXNlbnRpbmcgdGhlIHVzZXItcHJv dmlkZWQgQ1JFQVRFL0FMVEVSCiAgKiBTVUJTQ1JJUFRJT04gY29tbWFuZCBvcHRpb25zIGFuZCB0 aGUgcGFyc2VkL2RlZmF1bHQgdmFsdWVzIG9mIGVhY2ggb2YgdGhlbS4KQEAgLTgyOCw4ICs4MzUs MjEgQEAgQ3JlYXRlU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2Ny aXB0aW9uU3RtdCAqc3RtdCwKIAltZW1zZXQodmFsdWVzLCAwLCBzaXplb2YodmFsdWVzKSk7CiAJ bWVtc2V0KG51bGxzLCBmYWxzZSwgc2l6ZW9mKG51bGxzKSk7CiAKLQlzdWJpZCA9IEdldE5ld09p ZFdpdGhJbmRleChyZWwsIFN1YnNjcmlwdGlvbk9iamVjdEluZGV4SWQsCi0JCQkJCQkJICAgQW51 bV9wZ19zdWJzY3JpcHRpb25fb2lkKTsKKwkvKiBVc2UgYmluYXJ5LXVwZ3JhZGUgb3ZlcnJpZGUg Zm9yIHBnX3N1YnNjcmlwdGlvbi5vaWQ/ICovCisJaWYgKElzQmluYXJ5VXBncmFkZSkKKwl7CisJ CWlmICghT2lkSXNWYWxpZChiaW5hcnlfdXBncmFkZV9uZXh0X3BnX3N1YnNjcmlwdGlvbl9vaWQp KQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFN RVRFUl9WQUxVRSksCisJCQkJCSBlcnJtc2coInBnX3N1YnNjcmlwdGlvbiBPSUQgdmFsdWUgbm90 IHNldCB3aGVuIGluIGJpbmFyeSB1cGdyYWRlIG1vZGUiKSkpOworCisJCXN1YmlkID0gYmluYXJ5 X3VwZ3JhZGVfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkOworCQliaW5hcnlfdXBncmFkZV9uZXh0 X3BnX3N1YnNjcmlwdGlvbl9vaWQgPSBJbnZhbGlkT2lkOworCX0KKwllbHNlCisJCXN1YmlkID0g R2V0TmV3T2lkV2l0aEluZGV4KHJlbCwgU3Vic2NyaXB0aW9uT2JqZWN0SW5kZXhJZCwKKwkJCQkJ CQkJICAgQW51bV9wZ19zdWJzY3JpcHRpb25fb2lkKTsKKwogCXZhbHVlc1tBbnVtX3BnX3N1YnNj cmlwdGlvbl9vaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oc3ViaWQpOwogCXZhbHVlc1tBbnVt X3BnX3N1YnNjcmlwdGlvbl9zdWJkYmlkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKE15RGF0YWJh c2VJZCk7CiAJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YnNraXBsc24gLSAxXSA9IExT TkdldERhdHVtKEludmFsaWRYTG9nUmVjUHRyKTsKQEAgLTE1NDEsMTggKzE1NjEsNDAgQEAgYWx0 ZXJfc3ViX2NvbmZsaWN0X2xvZ19kZXN0KFN1YnNjcmlwdGlvbiAqc3ViLCBDb25mbGljdExvZ0Rl c3Qgb2xkbG9nZGVzdCwKIAkJewogCQkJT2JqZWN0QWRkcmVzcyBjbHRhZGRyOwogCQkJT2JqZWN0 QWRkcmVzcyBzdWJvYmo7CisJCQljaGFyICAgICAgICAgIHJlbG5hbWVbTkFNRURBVEFMRU5dOwog Ci0JCQlyZWxpZCA9IGNyZWF0ZV9jb25mbGljdF9sb2dfdGFibGUoc3ViLT5vaWQsIHN1Yi0+bmFt ZSwgc3ViLT5vd25lcik7Ci0JCQl1cGRhdGVfcmVsaWQgPSB0cnVlOworCQkJc25wcmludGYocmVs bmFtZSwgTkFNRURBVEFMRU4sIENPTkZMSUNUX0xPR19SRUxBVElPTl9OQU1FX0ZNVCwgc3ViLT5v aWQpOwogCiAJCQkvKgotCQkJICogRXN0YWJsaXNoIGFuIGludGVybmFsIGRlcGVuZGVuY3kgYmV0 d2VlbiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlCi0JCQkgKiBhbmQgdGhlIHN1YnNjcmlwdGlvbi4g IEZvciBkZXRhaWxzIHJlZmVyIGNvbW1lbnRzIGluCi0JCQkgKiBDcmVhdGVTdWJzY3JpcHRpb24g ZnVuY3Rpb24uCisJCQkgKiBJbiB1cGdyYWRlIHNjZW5hcmlvcywgb2xkX2Rlc3QgcmVmbGVjdHMg dGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YKKwkJCSAqIGEgbmV3bHkgY3JlYXRlZCBzdWJzY3JpcHRp b24gKGkuZS4sIG5vIGNvbmZsaWN0IGxvZ2dpbmcgdG8KKwkJCSAqIHRhYmxlKSBIb3dldmVyLCB0 aGUgY29uZmxpY3QgbG9nIHRhYmxlIHdpbGwgYWxyZWFkeSBleGlzdCBmcm9tCisJCQkgKiB0aGUg dXBncmFkZWQgY2x1c3Rlci4gIEluIHN1Y2ggY2FzZXMsIHdlIG5lZWQgdG8gZGV0ZWN0IHRoZQor CQkJICogcHJlLWV4aXN0aW5nIHRhYmxlIGFuZCB1cGRhdGUgdGhlIGNhdGFsb2cgc3RhdGUgdG8g YXNzb2NpYXRlIGl0CisJCQkgKiB3aXRoIHRoZSBzdWJzY3JpcHRpb24gaW5zdGVhZCBvZiBjcmVh dGluZyBhIG5ldyBvbmUuCisJCQkgKi8KKwkJCXJlbGlkID0gZ2V0X3JlbG5hbWVfcmVsaWQocmVs bmFtZSwgUEdfQ09ORkxJQ1RfTkFNRVNQQUNFKTsKKwkJCWlmIChPaWRJc1ZhbGlkKHJlbGlkKSkK KwkJCXsKKwkJCQkvKiBFeGlzdGluZyB0YWJsZSBmcm9tIHVwZ3JhZGUgKi8KKwkJCQlBc3NlcnQo SXNCaW5hcnlVcGdyYWRlKTsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlyZWxpZCA9IGNyZWF0 ZV9jb25mbGljdF9sb2dfdGFibGUoc3ViLT5vaWQsIHN1Yi0+bmFtZSwKKwkJCQkJCQkJCQkJCSAg c3ViLT5vd25lcik7CisJCQl9CisKKwkJCS8qCisJCQkgKiBFc3RhYmxpc2ggYW4gaW50ZXJuYWwg ZGVwZW5kZW5jeSBiZXR3ZWVuIHRoZSBjb25mbGljdCBsb2cKKwkJCSAqIHRhYmxlIGFuZCB0aGUg c3Vic2NyaXB0aW9uLiAgUmVmZXIgdG8gY29tbWVudHMgaW4gdGhlCisJCQkgKiBDcmVhdGVTdWJz Y3JpcHRpb24gZnVuY3Rpb24gZm9yIGRldGFpbHMuCiAJCQkgKi8KIAkJCU9iamVjdEFkZHJlc3NT ZXQoY2x0YWRkciwgUmVsYXRpb25SZWxhdGlvbklkLCByZWxpZCk7CiAJCQlPYmplY3RBZGRyZXNz U2V0KHN1Ym9iaiwgU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViLT5vaWQpOwogCQkJcmVjb3Jk RGVwZW5kZW5jeU9uKCZjbHRhZGRyLCAmc3Vib2JqLCBERVBFTkRFTkNZX0lOVEVSTkFMKTsKKwor CQkJdXBkYXRlX3JlbGlkID0gdHJ1ZTsKIAkJfQogCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC9jb25mbGljdC5jCmluZGV4IDQ3NDEwMTI0YTBiLi43OTg3NGY5NzFlMiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jCisrKyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvY29uZmxpY3QuYwpAQCAtMjA3LDcgKzIw Nyw3IEBAIGNyZWF0ZV9jb25mbGljdF9sb2dfdGFibGUoT2lkIHN1YmlkLCBjaGFyICpzdWJuYW1l LCBPaWQgc3Vib3duZXIpCiAJT2lkCQkJcmVsaWQ7CiAJY2hhciAgICAJcmVsbmFtZVtOQU1FREFU QUxFTl07CiAKLQlzbnByaW50ZihyZWxuYW1lLCBOQU1FREFUQUxFTiwgInBnX2NvbmZsaWN0X2xv Z18ldSIsIHN1YmlkKTsKKwlzbnByaW50ZihyZWxuYW1lLCBOQU1FREFUQUxFTiwgQ09ORkxJQ1Rf TE9HX1JFTEFUSU9OX05BTUVfRk1ULCBzdWJpZCk7CiAKIAkvKiBCdWlsZCB0aGUgdHVwbGUgZGVz Y3JpcHRvciBmb3IgdGhlIG5ldyB0YWJsZS4gKi8KIAl0dXBkZXNjID0gY3JlYXRlX2NvbmZsaWN0 X2xvZ190YWJsZV90dXBkZXNjKCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQv cGdfdXBncmFkZV9zdXBwb3J0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFkZV9z dXBwb3J0LmMKaW5kZXggYjUwNWE2YjRmZWUuLjU5YzNlN2YwMTQ2IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFkZV9zdXBwb3J0LmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3BnX3VwZ3JhZGVfc3VwcG9ydC5jCkBAIC0xODEsNiArMTgxLDE2IEBAIGJpbmFy eV91cGdyYWRlX3NldF9uZXh0X3BnX2F1dGhpZF9vaWQoUEdfRlVOQ1RJT05fQVJHUykKIAlQR19S RVRVUk5fVk9JRCgpOwogfQogCitEYXR1bQorYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfc3Vi c2NyaXB0aW9uX29pZChQR19GVU5DVElPTl9BUkdTKQoreworCU9pZAkJCXN1YmlkID0gUEdfR0VU QVJHX09JRCgwKTsKKworCUNIRUNLX0lTX0JJTkFSWV9VUEdSQURFOworCWJpbmFyeV91cGdyYWRl X25leHRfcGdfc3Vic2NyaXB0aW9uX29pZCA9IHN1YmlkOworCVBHX1JFVFVSTl9WT0lEKCk7Cit9 CisKIERhdHVtCiBiaW5hcnlfdXBncmFkZV9jcmVhdGVfZW1wdHlfZXh0ZW5zaW9uKFBHX0ZVTkNU SU9OX0FSR1MpCiB7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCBjNTY0MzdkNjA1Ny4uNTc1ZDJlY2I4OGEgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuYwpAQCAtMTk4MSw2ICsxOTgxLDggQEAgY2hlY2tFeHRlbnNpb25NZW1iZXJzaGlw KER1bXBhYmxlT2JqZWN0ICpkb2JqLCBBcmNoaXZlICpmb3V0KQogc3RhdGljIHZvaWQKIHNlbGVj dER1bXBhYmxlTmFtZXNwYWNlKE5hbWVzcGFjZUluZm8gKm5zaW5mbywgQXJjaGl2ZSAqZm91dCkK IHsKKwlEdW1wT3B0aW9ucyAqZG9wdCA9IGZvdXQtPmRvcHQ7CisKIAkvKgogCSAqIERVTVBfQ09N UE9ORU5UX0RFRklOSVRJT04gdHlwaWNhbGx5IGltcGxpZXMgYSBDUkVBVEUgU0NIRU1BIHN0YXRl bWVudAogCSAqIGFuZCAoZm9yIC0tY2xlYW4pIGEgRFJPUCBTQ0hFTUEgc3RhdGVtZW50LiAgKElu IHRoZSBhYnNlbmNlIG9mCkBAIC0yMDEwLDYgKzIwMTIsMzIgQEAgc2VsZWN0RHVtcGFibGVOYW1l c3BhY2UoTmFtZXNwYWNlSW5mbyAqbnNpbmZvLCBBcmNoaXZlICpmb3V0KQogCQkgKi8KIAkJbnNp bmZvLT5kb2JqLmR1bXBfY29udGFpbnMgPSBuc2luZm8tPmRvYmouZHVtcCA9IERVTVBfQ09NUE9O RU5UX0FDTDsKIAl9CisJZWxzZSBpZiAoc3RyY21wKG5zaW5mby0+ZG9iai5uYW1lLCAicGdfY29u ZmxpY3QiKSA9PSAwKQorCXsKKwkJaWYgKGRvcHQtPmJpbmFyeV91cGdyYWRlKQorCQl7CisJCQkv KgorCQkJICogVGhlIHBnX2NvbmZsaWN0IHNjaGVtYSBpcyBhIHN0cmFuZ2UgYmVhc3QgdGhhdCBz aXRzIGluIGEgc29ydAorCQkJICogb2Ygbm8tbWFucy1sYW5kIGJldHdlZW4gYmVpbmcgYSBzeXN0 ZW0gb2JqZWN0IGFuZCBhIHVzZXIKKwkJCSAqIG9iamVjdC4gQ1JFQVRFIFNDSEVNQSB3b3VsZCBm YWlsLCBzbyBpdHMKKwkJCSAqIERVTVBfQ09NUE9ORU5UX0RFRklOSVRJT04gaXMganVzdCBhIGNv bW1lbnQuCisJCQkgKi8KKwkJCW5zaW5mby0+Y3JlYXRlID0gZmFsc2U7CisJCQluc2luZm8tPmRv YmouZHVtcCA9IERVTVBfQ09NUE9ORU5UX0FMTDsKKwkJCW5zaW5mby0+ZG9iai5kdW1wICY9IH5E VU1QX0NPTVBPTkVOVF9ERUZJTklUSU9OOworCQkJbnNpbmZvLT5kb2JqLmR1bXBfY29udGFpbnMg PSBEVU1QX0NPTVBPTkVOVF9BTEw7CisKKwkJCS8qCisJCQkgKiBBbHNvLCBtYWtlIGxpa2UgaXQg aGFzIGEgY29tbWVudCBldmVuIGlmIGl0IGRvZXNuJ3Q7IHRoaXMgaXMgc28KKwkJCSAqIHRoYXQg d2UnbGwgZW1pdCBhIGNvbW1hbmQgdG8gZHJvcCB0aGUgY29tbWVudCwgaWYgYXBwcm9wcmlhdGUu CisJCQkgKiAoV2l0aG91dCB0aGlzLCB3ZSdkIG5vdCBjYWxsIGR1bXBDb21tZW50RXh0ZW5kZWQg Zm9yIGl0LikKKwkJCSAqLworCQkJbnNpbmZvLT5kb2JqLmNvbXBvbmVudHMgfD0gRFVNUF9DT01Q T05FTlRfQ09NTUVOVDsKKwkJfQorCQllbHNlCisJCQluc2luZm8tPmRvYmouZHVtcF9jb250YWlu cyA9IG5zaW5mby0+ZG9iai5kdW1wID0KKwkJCQlEVU1QX0NPTVBPTkVOVF9OT05FOworCX0KIAll bHNlIGlmIChzdHJuY21wKG5zaW5mby0+ZG9iai5uYW1lLCAicGdfIiwgMykgPT0gMCB8fAogCQkJ IHN0cmNtcChuc2luZm8tPmRvYmoubmFtZSwgImluZm9ybWF0aW9uX3NjaGVtYSIpID09IDApCiAJ ewpAQCAtMjA2Nyw5ICsyMDk1LDM4IEBAIHNlbGVjdER1bXBhYmxlTmFtZXNwYWNlKE5hbWVzcGFj ZUluZm8gKm5zaW5mbywgQXJjaGl2ZSAqZm91dCkKIHN0YXRpYyB2b2lkCiBzZWxlY3REdW1wYWJs ZVRhYmxlKFRhYmxlSW5mbyAqdGJpbmZvLCBBcmNoaXZlICpmb3V0KQogeworCUR1bXBPcHRpb25z ICpkb3B0ID0gZm91dC0+ZG9wdDsKKwogCWlmIChjaGVja0V4dGVuc2lvbk1lbWJlcnNoaXAoJnRi aW5mby0+ZG9iaiwgZm91dCkpCiAJCXJldHVybjsJCQkJCS8qIGV4dGVuc2lvbiBtZW1iZXJzaGlw IG92ZXJyaWRlcyBhbGwgZWxzZSAqLwogCisJaWYgKHN0cmNtcCh0YmluZm8tPmRvYmoubmFtZXNw YWNlLT5kb2JqLm5hbWUsICJwZ19jb25mbGljdCIpID09IDApCisJeworCQkvKgorCQkgKiBEdW1w IHBnX2NvbmZsaWN0IHRhYmxlcyBvbmx5IGR1cmluZyBiaW5hcnkgdXBncmFkZS4gVGhlIHNjaGVt YSBpcworCQkgKiBhc3N1bWVkIHRvIGFscmVhZHkgZXhpc3QuCisJCSAqLworCQlpZiAoZG9wdC0+ YmluYXJ5X3VwZ3JhZGUpCisJCXsKKwkJCXRiaW5mby0+ZG9iai5kdW1wID0gRFVNUF9DT01QT05F TlRfREVGSU5JVElPTjsKKworCQkJLyoKKwkJCSAqIFN1cHByZXNzIHRoZSAiQUxURVIgVEFCTEUg Li4uIE9XTkVSIFRPIC4uLiIgY29tbWFuZCBmb3IgdGhpcworCQkJICogdGFibGUuIFRoaXMgcHJl dmVudHMgcGdfZHVtcCBmcm9tIG91dHB1dHRpbmcgdGhlIG93bmVyIGNoYW5nZS4KKwkJCSAqLwor CQkJdGJpbmZvLT5yb2xuYW1lID0gTlVMTDsKKwkJfQorCQllbHNlCisJCQl0YmluZm8tPmRvYmou ZHVtcCA9IERVTVBfQ09NUE9ORU5UX05PTkU7CisKKwkJLyoKKwkJICogRG8gbm90IGFwcGx5IHRh YmxlIHNlbGVjdGlvbiBvciBleGNsdXNpb24gcnVsZXMgdG8gcGdfY29uZmxpY3QKKwkJICogdGFi bGVzLiBEdXJpbmcgYmluYXJ5IHVwZ3JhZGUsIHRoZXNlIHRhYmxlcyBhcmUgZHVtcGVkIHRvIHBy ZXNlcnZlCisJCSAqIGNhdGFsb2cgc3RhdGU7IG90aGVyd2lzZSwgdGhleSBhcmUgbm90IGR1bXBl ZCBhdCBhbGwuCisJCSAqLworCQlyZXR1cm47CisJfQorCiAJLyoKIAkgKiBJZiBzcGVjaWZpYyB0 YWJsZXMgYXJlIGJlaW5nIGR1bXBlZCwgZHVtcCBqdXN0IHRob3NlIHRhYmxlczsgZWxzZSwgZHVt cAogCSAqIGFjY29yZGluZyB0byB0aGUgcGFyZW50IG5hbWVzcGFjZSdzIGR1bXAgZmxhZy4KQEAg LTUxODQsNiArNTI0MSw4IEBAIGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAlpbnQJ CQlpX3N1YmZhaWxvdmVyOwogCWludAkJCWlfc3VicmV0YWluZGVhZHR1cGxlczsKIAlpbnQJCQlp X3N1Ym1heHJldGVudGlvbjsKKwlpbnQJCQlpX3N1YmNvbmZsaWN0bG9ncmVsaWQ7CisJaW50CQkJ aV9zdWJsb2dkZXN0aW5hdGlvbjsKIAlpbnQJCQlpLAogCQkJCW50dXBzOwogCkBAIC01MjgyLDkg KzUzNDEsMTYgQEAgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0KQogCQkJCQkJCSAiICct MScgQVMgc3Vid2FscmN2dGltZW91dCxcbiIpOwogCiAJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24g Pj0gMTkwMDAwKQotCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBmcy5zcnZuYW1lIEFT IHN1YnNlcnZlcm5hbWVcbiIpOworCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBmcy5z cnZuYW1lIEFTIHN1YnNlcnZlcm5hbWUsXG4iKTsKKwllbHNlCisJCWFwcGVuZFBRRXhwQnVmZmVy U3RyKHF1ZXJ5LCAiIE5VTEwgQVMgc3Vic2VydmVybmFtZSxcbiIpOworCisJaWYgKGZvdXQtPnJl bW90ZVZlcnNpb24gPj0gMTkwMDAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKKwkJ CQkJCQkgIiBzLnN1YmNvbmZsaWN0bG9ncmVsaWQsIHMuc3ViY29uZmxpY3Rsb2dkZXN0XG4iKTsK IAllbHNlCi0JCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIE5VTEwgQVMgc3Vic2VydmVy bmFtZVxuIik7CisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAorCQkJCQkJCSAiIE5VTEwg QVMgc3ViY29uZmxpY3Rsb2dyZWxpZCwgTlVMTCBBUyBzdWJjb25mbGljdGxvZ2Rlc3RcbiIpOwog CiAJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCiAJCQkJCQkgIkZST00gcGdfc3Vic2NyaXB0 aW9uIHNcbiIpOwpAQCAtNTMzMyw2ICs1Mzk5LDggQEAgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZl ICpmb3V0KQogCWlfc3VicHVibGljYXRpb25zID0gUFFmbnVtYmVyKHJlcywgInN1YnB1YmxpY2F0 aW9ucyIpOwogCWlfc3Vib3JpZ2luID0gUFFmbnVtYmVyKHJlcywgInN1Ym9yaWdpbiIpOwogCWlf c3Vib3JpZ2lucmVtb3RlbHNuID0gUFFmbnVtYmVyKHJlcywgInN1Ym9yaWdpbnJlbW90ZWxzbiIp OworCWlfc3ViY29uZmxpY3Rsb2dyZWxpZCA9IFBRZm51bWJlcihyZXMsICJzdWJjb25mbGljdGxv Z3JlbGlkIik7CisJaV9zdWJsb2dkZXN0aW5hdGlvbiA9IFBRZm51bWJlcihyZXMsICJzdWJjb25m bGljdGxvZ2Rlc3QiKTsKIAogCXN1YmluZm8gPSBwZ19tYWxsb2NfYXJyYXkoU3Vic2NyaXB0aW9u SW5mbywgbnR1cHMpOwogCkBAIC01MzkxLDYgKzU0NTksMzIgQEAgZ2V0U3Vic2NyaXB0aW9ucyhB cmNoaXZlICpmb3V0KQogCQkJc3ViaW5mb1tpXS5zdWJvcmlnaW5yZW1vdGVsc24gPQogCQkJCXBn X3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9zdWJvcmlnaW5yZW1vdGVsc24pKTsKIAorCQlp ZiAoUFFnZXRpc251bGwocmVzLCBpLCBpX3N1YmNvbmZsaWN0bG9ncmVsaWQpKQorCQkJc3ViaW5m b1tpXS5zdWJjb25mbGljdGxvZ3JlbGlkID0gSW52YWxpZE9pZDsKKwkJZWxzZQorCQl7CisJCQlz dWJpbmZvW2ldLnN1YmNvbmZsaWN0bG9ncmVsaWQgPQorCQkJCWF0b29pZChQUWdldHZhbHVlKHJl cywgaSwgaV9zdWJjb25mbGljdGxvZ3JlbGlkKSk7CisKKwkJCWlmIChzdWJpbmZvW2ldLnN1YmNv bmZsaWN0bG9ncmVsaWQpCisJCQl7CisJCQkJVGFibGVJbmZvICAqdGFibGVJbmZvOworCisJCQkJ dGFibGVJbmZvID0gZmluZFRhYmxlQnlPaWQoc3ViaW5mb1tpXS5zdWJjb25mbGljdGxvZ3JlbGlk KTsKKwkJCQlpZiAoIXRhYmxlSW5mbykKKwkJCQkJcGdfZmF0YWwoImNvdWxkIG5vdCBmaW5kIGNv bmZsaWN0IGxvZyB0YWJsZSB3aXRoIE9JRCAldSIsCisJCQkJCQkJIHN1YmluZm9baV0uc3ViY29u ZmxpY3Rsb2dyZWxpZCk7CisKKwkJCQlhZGRPYmplY3REZXBlbmRlbmN5KCZzdWJpbmZvW2ldLmRv YmosIHRhYmxlSW5mby0+ZG9iai5kdW1wSWQpOworCQkJfQorCQl9CisKKwkJaWYgKFBRZ2V0aXNu dWxsKHJlcywgaSwgaV9zdWJsb2dkZXN0aW5hdGlvbikpCisJCQlzdWJpbmZvW2ldLnN1YmNvbmZs aWN0bG9nZGVzdCA9IE5VTEw7CisJCWVsc2UKKwkJCXN1YmluZm9baV0uc3ViY29uZmxpY3Rsb2dk ZXN0ID0KKwkJCQlwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfc3VibG9nZGVzdGluYXRp b24pKTsKKwogCQkvKiBEZWNpZGUgd2hldGhlciB3ZSB3YW50IHRvIGR1bXAgaXQgKi8KIAkJc2Vs ZWN0RHVtcGFibGVPYmplY3QoJihzdWJpbmZvW2ldLmRvYmopLCBmb3V0KTsKIAl9CkBAIC01NTgz LDYgKzU2NzcsMTQgQEAgZHVtcFN1YnNjcmlwdGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBTdWJz Y3JpcHRpb25JbmZvICpzdWJpbmZvKQogCWFwcGVuZFBRRXhwQnVmZmVyKGRlbHEsICJEUk9QIFNV QlNDUklQVElPTiAlcztcbiIsCiAJCQkJCSAgcXN1Ym5hbWUpOwogCisJaWYgKGRvcHQtPmJpbmFy eV91cGdyYWRlKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICJcbi0tIEZvciBi aW5hcnkgdXBncmFkZSwgbXVzdCBwcmVzZXJ2ZSBwZ19zdWJzY3JpcHRpb24ub2lkXG4iKTsKKwkJ YXBwZW5kUFFFeHBCdWZmZXIocXVlcnksCisJCQkJCQkgICJTRUxFQ1QgcGdfY2F0YWxvZy5iaW5h cnlfdXBncmFkZV9zZXRfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkKCcldSc6OnBnX2NhdGFsb2cu b2lkKTtcblxuIiwKKwkJCQkJCSAgc3ViaW5mby0+ZG9iai5jYXRJZC5vaWQpOworCX0KKwogCWFw cGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ1JFQVRFIFNVQlNDUklQVElPTiAlcyAiLAogCQkJCQkg IHFzdWJuYW1lKTsKIAlpZiAoc3ViaW5mby0+c3Vic2VydmVybmFtZSkKQEAgLTU2NTYsNiArNTc1 OCwyNSBAQCBkdW1wU3Vic2NyaXB0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFN1YnNjcmlwdGlv bkluZm8gKnN1YmluZm8pCiAKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIik7XG4iKTsK IAorCS8qCisJICogUmVzdG9yZSB0aGUgY29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHNlcGFyYXRl bHkgZnJvbSBDUkVBVEUgU1VCU0NSSVBUSU9OLgorCSAqIFNldHRpbmcgY29uZmxpY3RfbG9nX2Rl c3RpbmF0aW9uIHRvICd0YWJsZScgbWF5IGNyZWF0ZSBhbmQgYXNzb2NpYXRlCisJICogYSBjb25m bGljdCBsb2cgdGFibGUgd2hvc2UgbmFtZSBpcyBkZXJpdmVkIGZyb20gdGhlIHN1YnNjcmlwdGlv biBPSUQuCisJICogU2luY2UgdGhlIHN1YnNjcmlwdGlvbiBtdXN0IGFscmVhZHkgZXhpc3QgYmVm b3JlIHRoYXQgT0lEIGlzIGtub3duLAorCSAqIGVtaXQgdGhpcyBhcyBhIHNlcGFyYXRlIEFMVEVS IFNVQlNDUklQVElPTiBzbyB0aGF0IGFueSByZXF1aXJlZCBjb25mbGljdAorCSAqIGxvZyB0YWJs ZSBjYW4gYmUgY3JlYXRlZCBhbmQgbGlua2VkIGFmdGVyIHRoZSBzdWJzY3JpcHRpb24gaXRzZWxm IGhhcworCSAqIGJlZW4gcmVzdG9yZWQuCisJICoKKwkgKiBXZSBza2lwIHRoZSBkZWZhdWx0IHZh bHVlICgnbG9nJykgdG8gbWF0Y2ggdGhlIGhhbmRsaW5nIG9mIG90aGVyCisJICogc3Vic2NyaXB0 aW9uIG9wdGlvbnMuCisJICovCisJaWYgKHN1YmluZm8tPnN1YmNvbmZsaWN0bG9nZGVzdCAmJgor CQkocGdfc3RyY2FzZWNtcChzdWJpbmZvLT5zdWJjb25mbGljdGxvZ2Rlc3QsICJsb2ciKSAhPSAw KSkKKwkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksCisJCQkJCQkgICJcblxuQUxURVIgU1VCU0NS SVBUSU9OICVzIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJXMpO1xuIiwKKwkJCQkJ CSAgcXN1Ym5hbWUsCisJCQkJCQkgIHN1YmluZm8tPnN1YmNvbmZsaWN0bG9nZGVzdCk7CisKIAkv KgogCSAqIEluIGJpbmFyeS11cGdyYWRlIG1vZGUsIHdlIGFsbG93IHRoZSByZXBsaWNhdGlvbiB0 byBjb250aW51ZSBhZnRlciB0aGUKIAkgKiB1cGdyYWRlLgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggNWE2NzI2 ZDhiMTIuLmE0M2EzMDQ5MzQzIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5o CisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTcyMiw2ICs3MjIsNyBAQCB0eXBl ZGVmIHN0cnVjdCBfU3Vic2NyaXB0aW9uSW5mbwogCWJvb2wJCXN1YmZhaWxvdmVyOwogCWJvb2wJ CXN1YnJldGFpbmRlYWR0dXBsZXM7CiAJaW50CQkJc3VibWF4cmV0ZW50aW9uOworCU9pZAkJCXN1 YmNvbmZsaWN0bG9ncmVsaWQ7CiAJY2hhcgkgICAqc3Vic2VydmVybmFtZTsKIAljaGFyCSAgICpz dWJjb25uaW5mbzsKIAljaGFyCSAgICpzdWJzbG90bmFtZTsKQEAgLTczMCw2ICs3MzEsNyBAQCB0 eXBlZGVmIHN0cnVjdCBfU3Vic2NyaXB0aW9uSW5mbwogCWNoYXIJICAgKnN1YnB1YmxpY2F0aW9u czsKIAljaGFyCSAgICpzdWJvcmlnaW47CiAJY2hhcgkgICAqc3Vib3JpZ2lucmVtb3RlbHNuOwor CWNoYXIJICAgKnN1YmNvbmZsaWN0bG9nZGVzdDsKIH0gU3Vic2NyaXB0aW9uSW5mbzsKIAogLyoK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wX3NvcnQuYwppbmRleCAwM2U1YzFjMTExNi4uYzI3YjIzMmU3OTkgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYworKysgYi9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcF9zb3J0LmMKQEAgLTExMzEsNiArMTEzMSwxOSBAQCByZXBhaXJUYWJsZUF0dHJE ZWZNdWx0aUxvb3AoRHVtcGFibGVPYmplY3QgKnRhYmxlb2JqLAogCWFkZE9iamVjdERlcGVuZGVu Y3koYXR0cmRlZm9iaiwgdGFibGVvYmotPmR1bXBJZCk7CiB9CiAKKy8qCisgKiBCZWNhdXNlIHdl IG1ha2Ugc3Vic2NyaXB0aW9ucyBkZXBlbmQgb24gdGhlaXIgY29uZmxpY3QgbG9nIHRhYmxlcywg d2hpbGUKKyAqIHRoZXJlIGlzIGFuIGF1dG9tYXRpYyBkZXBlbmRlbmN5IGluIHRoZSBvdGhlciBk aXJlY3Rpb24sIHdlIG5lZWQgdG8gYnJlYWsKKyAqIHRoZSBsb29wLiBSZW1vdmUgdGhlIGF1dG9t YXRpYyBkZXBlbmRlbmN5LCBhbGxvd2luZyB0aGUgdGFibGUgdG8gYmUgY3JlYXRlZAorICogZmly c3QuCisgKi8KK3N0YXRpYyB2b2lkCityZXBhaXJTdWJzY3JpcHRpb25UYWJsZUxvb3AoRHVtcGFi bGVPYmplY3QgKnN1Ym9iaiwgRHVtcGFibGVPYmplY3QgKnRhYmxlb2JqKQoreworCS8qIFJlbW92 ZSB0YWJsZSdzIGRlcGVuZGVuY3kgb24gc3Vic2NyaXB0aW9uICovCisJcmVtb3ZlT2JqZWN0RGVw ZW5kZW5jeSh0YWJsZW9iaiwgc3Vib2JqLT5kdW1wSWQpOworfQorCiAvKgogICogQ0hFQ0ssIE5P VCBOVUxMIGNvbnN0cmFpbnRzIG9uIGRvbWFpbnMgd29yayBqdXN0IGxpa2UgdGhvc2Ugb24gdGFi bGVzIC4uLgogICovCkBAIC0xMzYxLDYgKzEzNzQsMjQgQEAgcmVwYWlyRGVwZW5kZW5jeUxvb3Ao RHVtcGFibGVPYmplY3QgKipsb29wLAogCQlyZXR1cm47CiAJfQogCisJLyoKKwkgKiBTdWJzY3Jp cHRpb24gYW5kIGl0cyBDb25mbGljdCBMb2cgVGFibGUKKwkgKi8KKwlpZiAobkxvb3AgPT0gMiAm JgorCQlsb29wWzBdLT5vYmpUeXBlID09IERPX1RBQkxFICYmCisJCWxvb3BbMV0tPm9ialR5cGUg PT0gRE9fU1VCU0NSSVBUSU9OKQorCXsKKwkJcmVwYWlyU3Vic2NyaXB0aW9uVGFibGVMb29wKGxv b3BbMV0sIGxvb3BbMF0pOworCQlyZXR1cm47CisJfQorCWlmIChuTG9vcCA9PSAyICYmCisJCWxv b3BbMF0tPm9ialR5cGUgPT0gRE9fU1VCU0NSSVBUSU9OICYmCisJCWxvb3BbMV0tPm9ialR5cGUg PT0gRE9fVEFCTEUpCisJeworCQlyZXBhaXJTdWJzY3JpcHRpb25UYWJsZUxvb3AobG9vcFswXSwg bG9vcFsxXSk7CisJCXJldHVybjsKKwl9CisKIAkvKiBpbmRleCBvbiBwYXJ0aXRpb25lZCB0YWJs ZSBhbmQgY29ycmVzcG9uZGluZyBpbmRleCBvbiBwYXJ0aXRpb24gKi8KIAlpZiAobkxvb3AgPT0g MiAmJgogCQlsb29wWzBdLT5vYmpUeXBlID09IERPX0lOREVYICYmCmRpZmYgLS1naXQgYS9zcmMv YmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19k dW1wLnBsCmluZGV4IDkyNTg5NDhiNTgzLi44YzI2NTNlODUyZSAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3Bn X2R1bXAucGwKQEAgLTMzMTcsOSArMzMxNywxMCBAQCBteSAldGVzdHMgPSAoCiAJCWNyZWF0ZV9v cmRlciA9PiA1MCwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFNVQlNDUklQVElPTiBzdWIzCiAJ CQkJCQkgQ09OTkVDVElPTiBcJ2RibmFtZT1kb2Vzbm90ZXhpc3RcJyBQVUJMSUNBVElPTiBwdWIx Ci0JCQkJCQkgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBvcmlnaW4gPSBhbnksIHN0cmVhbWluZyA9 IG9uKTsnLAorCQkJCQkJIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgb3JpZ2luID0gYW55LCBzdHJl YW1pbmcgPSBvbiwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPSB0YWJsZSk7JywKIAkJcmVnZXhw ID0+IHFyL14KLQkJCVxRQ1JFQVRFIFNVQlNDUklQVElPTiBzdWIzIENPTk5FQ1RJT04gJ2RibmFt ZT1kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHB1YjEgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBz bG90X25hbWUgPSAnc3ViMycsIHN0cmVhbWluZyA9IG9uKTtcRQorCQkJXFFDUkVBVEUgU1VCU0NS SVBUSU9OIHN1YjMgQ09OTkVDVElPTiAnZGJuYW1lPWRvZXNub3RleGlzdCcgUFVCTElDQVRJT04g cHViMSBXSVRIIChjb25uZWN0ID0gZmFsc2UsIHNsb3RfbmFtZSA9ICdzdWIzJywgc3RyZWFtaW5n ID0gb24pO1xFXG5cblxuCisJCQlcUUFMVEVSIFNVQlNDUklQVElPTiBzdWIzIFNFVCAoY29uZmxp Y3RfbG9nX2Rlc3RpbmF0aW9uID0gdGFibGUpO1xFCiAJCQkveG0sCiAJCWxpa2UgPT4geyAlZnVs bF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAogCQl1bmxpa2UgPT4gewpkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYyBiL3NyYy9iaW4vcGdfdXBncmFk ZS9wZ191cGdyYWRlLmMKaW5kZXggMjEyN2QyOTdiZmUuLjEzNWVmNjU4YzJjIDEwMDY0NAotLS0g YS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jCisrKyBiL3NyYy9iaW4vcGdfdXBncmFk ZS9wZ191cGdyYWRlLmMKQEAgLTM1LDYgKzM1LDEwIEBACiAgKgogICoJV2UgY29udHJvbCBhbGwg YXNzaWdubWVudHMgb2YgcGdfZGF0YWJhc2Uub2lkIGJlY2F1c2Ugd2Ugd2FudCB0aGUgZGlyZWN0 b3J5CiAgKgluYW1lcyB0byBtYXRjaCBiZXR3ZWVuIHRoZSBvbGQgYW5kIG5ldyBjbHVzdGVyLgor ICoKKyAqCVdlIGNvbnRyb2wgYXNzaWdubWVudCBvZiBwZ19zdWJzY3JpcHRpb24ub2lkIGJlY2F1 c2Ugd2Ugd2FudCB0aGUgb2lkIHRvCisgKgltYXRjaCBiZXR3ZWVuIHRoZSBvbGQgYW5kIG5ldyBj bHVzdGVyIHRvIG1ha2UgdXNlIG9mIHN1YnNjcmlwdGlvbidzCisgKgljb25mbGljdCBsb2cgdGFi bGUgd2hpY2ggaXMgbmFtZWQgdXNpbmcgdGhlIHN1YnNjcmlwdGlvbiBvaWQuCiAgKi8KIAogCmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvdC8wMDRfc3Vic2NyaXB0aW9uLnBsIGIvc3Jj L2Jpbi9wZ191cGdyYWRlL3QvMDA0X3N1YnNjcmlwdGlvbi5wbAppbmRleCAzNmYwNTlmYWEyZS4u Mjc3MzE2ODZkODcgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS90LzAwNF9zdWJzY3Jp cHRpb24ucGwKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDA0X3N1YnNjcmlwdGlvbi5wbApA QCAtMjkwLDcgKzI5MCw3IEBAICRwdWJsaXNoZXItPnNhZmVfcHNxbCgKICRvbGRfc3ViLT5zYWZl X3BzcWwoCiAJJ3Bvc3RncmVzJywgcXFbCiAJCUNSRUFURSBUQUJMRSB0YWJfdXBncmFkZWQyKGlk IGludCk7Ci0JCUNSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19zdWI1IENPTk5FQ1RJT04gJyRj b25uc3RyJyBQVUJMSUNBVElPTiByZWdyZXNzX3B1YjU7CisJCUNSRUFURSBTVUJTQ1JJUFRJT04g cmVncmVzc19zdWI1IENPTk5FQ1RJT04gJyRjb25uc3RyJyBQVUJMSUNBVElPTiByZWdyZXNzX3B1 YjUgd2l0aCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CiBdKTsKIAogIyBU aGUgdGFibGUgdGFiX3VwZ3JhZGVkMiB3aWxsIGJlIGluIHRoZSBpbml0IHN0YXRlIGFzIHRoZSBz dWJzY3JpYmVyJ3MKQEAgLTMxMiw3ICszMTIsMTAgQEAgbXkgJHRhYl91cGdyYWRlZDFfb2lkID0g JG9sZF9zdWItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJTRUxFQ1Qgb2lkIEZST00gcGdfY2xh c3MgV0hFUkUgcmVsbmFtZSA9ICd0YWJfdXBncmFkZWQxJyIpOwogbXkgJHRhYl91cGdyYWRlZDJf b2lkID0gJG9sZF9zdWItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJTRUxFQ1Qgb2lkIEZST00g cGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICd0YWJfdXBncmFkZWQyJyIpOwotCitteSAkc3ViNV9v aWQgPSAkb2xkX3N1Yi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBvaWQgRlJPTSBw Z19zdWJzY3JpcHRpb24gd2hlcmUgc3VibmFtZSA9ICdyZWdyZXNzX3N1YjUnIik7CitteSAkc3Vi X2NsdF9yZWxpZCA9ICRvbGRfc3ViLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIHN1 YmNvbmZsaWN0bG9ncmVsaWQgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdy ZWdyZXNzX3N1YjUnIik7CiAkb2xkX3N1Yi0+c3RvcDsKIAogIyBDaGFuZ2UgY29uZmlndXJhdGlv biBzbyB0aGF0IGluaXRpYWwgdGFibGUgc3luYyBkb2VzIG5vdCBnZXQgc3RhcnRlZApAQCAtMzk0 LDYgKzM5NywxMyBAQCAkcmVzdWx0ID0gJG5ld19zdWItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAog KTsKIGlzKCRyZXN1bHQsIHFxKHQpLCAiY29uZmxpY3QgZGV0ZWN0aW9uIHNsb3QgZXhpc3RzIik7 CiAKKyMgVGhlIHN1YnNjcmlwdGlvbiBvaWQgYW5kIHRoZSBzdWJzY3JpcHRpb24gY29uZmxpY3Qg bG9nIHRhYmxlIHJlbGlkIHNob3VsZCBiZSBwcmVzZXJ2ZWQKKyRyZXN1bHQgPSAkbmV3X3N1Yi0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1Qgb2lkIEZST00gcGdfc3Vic2NyaXB0aW9uIFdI RVJFIHN1Ym5hbWUgPSAncmVncmVzc19zdWI1JyIpOworaXMoJHJlc3VsdCwgcXEoJHN1YjVfb2lk KSwgInN1YnNjcmlwdGlvbiBvaWQgc2hvdWxkIGhhdmUgYmVlbiBwcmVzZXJ2ZWQiKTsKKworJHJl c3VsdCA9ICRuZXdfc3ViLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBzdWJjb25mbGlj dGxvZ3JlbGlkIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19z dWI1JyIpOworaXMoJHJlc3VsdCwgcXEoJHN1Yl9jbHRfcmVsaWQpLCAic3Vic2NyaXB0aW9uIGNv bmZsaWN0IGxvZyB0YWJsZSByZWxpZCBzaG91bGQgaGF2ZSBiZWVuIHByZXNlcnZlZCIpOworCiAj IFJlc3VtZSB0aGUgaW5pdGlhbCBzeW5jIGFuZCB3YWl0IHVudGlsIGFsbCB0YWJsZXMgb2Ygc3Vi c2NyaXB0aW9uCiAjICdyZWdyZXNzX3N1YjUnIGFyZSBzeW5jaHJvbml6ZWQKICRuZXdfc3ViLT5h cHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvYmluYXJ5X3VwZ3JhZGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvYmluYXJ5X3VwZ3Jh ZGUuaAppbmRleCA3YmY3YWU0NDM4NS4uYjE1YjE4ZTdkYzkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvYmluYXJ5X3VwZ3JhZGUuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2Jp bmFyeV91cGdyYWRlLmgKQEAgLTMyLDYgKzMyLDcgQEAgZXh0ZXJuIFBHRExMSU1QT1JUIFJlbEZp bGVOdW1iZXIgYmluYXJ5X3VwZ3JhZGVfbmV4dF90b2FzdF9wZ19jbGFzc19yZWxmaWxlbnVtYmUK IAogZXh0ZXJuIFBHRExMSU1QT1JUIE9pZCBiaW5hcnlfdXBncmFkZV9uZXh0X3BnX2VudW1fb2lk OwogZXh0ZXJuIFBHRExMSU1QT1JUIE9pZCBiaW5hcnlfdXBncmFkZV9uZXh0X3BnX2F1dGhpZF9v aWQ7CitleHRlcm4gUEdETExJTVBPUlQgT2lkIGJpbmFyeV91cGdyYWRlX25leHRfcGdfc3Vic2Ny aXB0aW9uX29pZDsKIAogZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgYmluYXJ5X3VwZ3JhZGVfcmVj b3JkX2luaXRfcHJpdnM7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJv Yy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDM4NGJhOTA4ZDM1 Li42ODI2OTBkOGUyMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRh dAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC0xMTk2OSw2ICsxMTk2 OSwxMCBAQAogICBwcm9pc3N0cmljdCA9PiAnZicsIHByb3ZvbGF0aWxlID0+ICd2JywgcHJvcGFy YWxsZWwgPT4gJ3UnLAogICBwcm9yZXR0eXBlID0+ICd2b2lkJywgcHJvYXJndHlwZXMgPT4gJycs CiAgIHByb3NyYyA9PiAnYmluYXJ5X3VwZ3JhZGVfY3JlYXRlX2NvbmZsaWN0X2RldGVjdGlvbl9z bG90JyB9LAoreyBvaWQgPT4gJzg0MDcnLCBkZXNjciA9PiAnZm9yIHVzZSBieSBwZ191cGdyYWRl JywKKyAgcHJvbmFtZSA9PiAnYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfc3Vic2NyaXB0aW9u X29pZCcsIHByb3ZvbGF0aWxlID0+ICd2JywKKyAgcHJvcGFyYWxsZWwgPT4gJ3InLCBwcm9yZXR0 eXBlID0+ICd2b2lkJywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCisgIHByb3NyYyA9PiAnYmluYXJ5 X3VwZ3JhZGVfc2V0X25leHRfcGdfc3Vic2NyaXB0aW9uX29pZCcgfSwKIAogIyBjb252ZXJzaW9u IGZ1bmN0aW9ucwogeyBvaWQgPT4gJzQzMTAnLCBkZXNjciA9PiAnaW50ZXJuYWwgY29udmVyc2lv biBmdW5jdGlvbiBmb3IgS09JOFIgdG8gV0lOMTI1MScsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJz Y3JpcHRpb24uaAppbmRleCA0MzM4ZTY2MjBiNC4uZTI1NGRlY2I0NGUgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19zdWJzY3JpcHRpb24uaApAQCAtMjIxLDYgKzIyMSw5IEBAIHR5cGVkZWYgc3RydWN0 IFN1YnNjcmlwdGlvbgogICovCiAjZGVmaW5lIExPR0lDQUxSRVBfU1RSRUFNX1BBUkFMTEVMICdw JwogCisvKiBDb25mbGljdCBsb2cgdGFibGUgbmFtZSBmb3JtYXQuICV1IGlzIHJlcGxhY2VkIHdp dGggdGhlIHN1YnNjcmlwdGlvbiBPSUQuICovCisjZGVmaW5lIENPTkZMSUNUX0xPR19SRUxBVElP Tl9OQU1FX0ZNVCAicGdfY29uZmxpY3RfbG9nXyV1IgorCiAjZW5kaWYJCQkJCQkJLyogRVhQT1NF X1RPX0NMSUVOVF9DT0RFICovCiAKIGV4dGVybiBTdWJzY3JpcHRpb24gKkdldFN1YnNjcmlwdGlv bihPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vaywKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVs ZXMvc3BnaXN0X25hbWVfb3BzL2V4cGVjdGVkL3NwZ2lzdF9uYW1lX29wcy5vdXQgYi9zcmMvdGVz dC9tb2R1bGVzL3NwZ2lzdF9uYW1lX29wcy9leHBlY3RlZC9zcGdpc3RfbmFtZV9vcHMub3V0Cmlu ZGV4IDFlZTY1ZWRlMjQzLi4zOWQ0MzM2OGM0MiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxl cy9zcGdpc3RfbmFtZV9vcHMvZXhwZWN0ZWQvc3BnaXN0X25hbWVfb3BzLm91dAorKysgYi9zcmMv dGVzdC9tb2R1bGVzL3NwZ2lzdF9uYW1lX29wcy9leHBlY3RlZC9zcGdpc3RfbmFtZV9vcHMub3V0 CkBAIC01OSwxMSArNTksMTIgQEAgc2VsZWN0ICogZnJvbSB0CiAgYmluYXJ5X3VwZ3JhZGVfc2V0 X25leHRfbXVsdGlyYW5nZV9wZ190eXBlX29pZCAgICAgICB8ICAxIHwgYmluYXJ5X3VwZ3JhZGVf c2V0X25leHRfbXVsdGlyYW5nZV9wZ190eXBlX29pZAogIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0 X3BnX2F1dGhpZF9vaWQgICAgICAgICAgICAgICAgfCAgICB8IGJpbmFyeV91cGdyYWRlX3NldF9u ZXh0X3BnX2F1dGhpZF9vaWQKICBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19lbnVtX29pZCAg ICAgICAgICAgICAgICAgIHwgICAgfCBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19lbnVtX29p ZAorIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3N1YnNjcmlwdGlvbl9vaWQgICAgICAgICAg fCAgICB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3N1YnNjcmlwdGlvbl9vaWQKICBiaW5h cnlfdXBncmFkZV9zZXRfbmV4dF9wZ190YWJsZXNwYWNlX29pZCAgICAgICAgICAgIHwgICAgfCBi aW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ190YWJsZXNwYWNlX29pZAogIGJpbmFyeV91cGdyYWRl X3NldF9uZXh0X3BnX3R5cGVfb2lkICAgICAgICAgICAgICAgICAgfCAgICB8IGJpbmFyeV91cGdy YWRlX3NldF9uZXh0X3BnX3R5cGVfb2lkCiAgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfdG9hc3Rf cGdfY2xhc3Nfb2lkICAgICAgICAgICB8ICAxIHwgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfdG9h c3RfcGdfY2xhc3Nfb2lkCiAgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfdG9hc3RfcmVsZmlsZW5v ZGUgICAgICAgICAgICB8ICAgIHwgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfdG9hc3RfcmVsZmls ZW5vZGUKLSgxMyByb3dzKQorKDE0IHJvd3MpCiAKIC0tIFZlcmlmeSBjbGVhbiBmYWlsdXJlIHdo ZW4gSU5DTFVERSdkIGNvbHVtbnMgcmVzdWx0IGluIG92ZXJsZW5ndGggdHVwbGUKIC0tIFRoZSBl cnJvciBtZXNzYWdlIGRldGFpbHMgYXJlIHBsYXRmb3JtLWRlcGVuZGVudCwgc28gc2hvdyBvbmx5 IFNRTFNUQVRFCkBAIC0xMDgsMTEgKzEwOSwxMiBAQCBzZWxlY3QgKiBmcm9tIHQKICBiaW5hcnlf dXBncmFkZV9zZXRfbmV4dF9tdWx0aXJhbmdlX3BnX3R5cGVfb2lkICAgICAgIHwgIDEgfCBiaW5h cnlfdXBncmFkZV9zZXRfbmV4dF9tdWx0aXJhbmdlX3BnX3R5cGVfb2lkCiAgYmluYXJ5X3VwZ3Jh ZGVfc2V0X25leHRfcGdfYXV0aGlkX29pZCAgICAgICAgICAgICAgICB8ICAgIHwgYmluYXJ5X3Vw Z3JhZGVfc2V0X25leHRfcGdfYXV0aGlkX29pZAogIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3Bn X2VudW1fb2lkICAgICAgICAgICAgICAgICAgfCAgICB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0 X3BnX2VudW1fb2lkCisgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfc3Vic2NyaXB0aW9uX29p ZCAgICAgICAgICB8ICAgIHwgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfc3Vic2NyaXB0aW9u X29pZAogIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3RhYmxlc3BhY2Vfb2lkICAgICAgICAg ICAgfCAgICB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3RhYmxlc3BhY2Vfb2lkCiAgYmlu YXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfdHlwZV9vaWQgICAgICAgICAgICAgICAgICB8ICAgIHwg YmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfdHlwZV9vaWQKICBiaW5hcnlfdXBncmFkZV9zZXRf bmV4dF90b2FzdF9wZ19jbGFzc19vaWQgICAgICAgICAgIHwgIDEgfCBiaW5hcnlfdXBncmFkZV9z ZXRfbmV4dF90b2FzdF9wZ19jbGFzc19vaWQKICBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF90b2Fz dF9yZWxmaWxlbm9kZSAgICAgICAgICAgIHwgICAgfCBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF90 b2FzdF9yZWxmaWxlbm9kZQotKDEzIHJvd3MpCisoMTQgcm93cykKIAogXHNldCBWRVJCT1NJVFkg c3Fsc3RhdGUKIGluc2VydCBpbnRvIHQgdmFsdWVzKHJlcGVhdCgneHl6enknLCAxMiksIDQyLCBy ZXBlYXQoJ3h5enp5JywgNDAwMCkpOwotLSAKMi40OS4wCgo= --000000000000c4ad1b0655330de9 Content-Type: application/octet-stream; name="v59-0003-Implement-the-conflict-insertion-infrastructure-.patch" Content-Disposition: attachment; filename="v59-0003-Implement-the-conflict-insertion-infrastructure-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqvqwnqs2 RnJvbSA3MGIyNjQzYTY3YTE1YzQyZWY2MGUwYWZjMjBiYmRkMDY3MzE0YTQyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogU2F0LCAzMCBNYXkgMjAyNiAxMzozNTowNCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjU5 IDMvNl0gSW1wbGVtZW50IHRoZSBjb25mbGljdCBpbnNlcnRpb24gaW5mcmFzdHJ1Y3R1cmUgZm9y CiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlCgpUaGlzIHBhdGNoIGludHJvZHVjZXMgdGhlIGNvcmUg bG9naWMgdG8gcG9wdWxhdGUgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSB3aGVuZXZlcgphIGxvZ2lj YWwgcmVwbGljYXRpb24gY29uZmxpY3QgaXMgZGV0ZWN0ZWQuIEl0IGNhcHR1cmVzIHRoZSByZW1v dGUgdHJhbnNhY3Rpb24KZGV0YWlscyBhbG9uZyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGxvY2Fs IHN0YXRlIGF0IHRoZSB0aW1lIG9mIHRoZSBjb25mbGljdC4KCkhhbmRsaW5nIE11bHRpLXJvdyBD b25mbGljdHM6IEEgc2luZ2xlIHJlbW90ZSB0dXBsZSBtYXkgY29uZmxpY3Qgd2l0aCBtdWx0aXBs ZQpsb2NhbCB0dXBsZXMgKGUuZy4sIGluIHRoZSBjYXNlIG9mIG11bHRpcGxlX3VuaXF1ZV9jb25m bGljdHMpLiBUbyBoYW5kbGUgdGhpcywKdGhlIGluZnJhc3RydWN0dXJlIGNyZWF0ZXMgYSBzaW5n bGUgcm93IGluIHRoZSBjb25mbGljdCBsb2cgdGFibGUgZm9yIGVhY2gKcmVtb3RlIHR1cGxlLiBU aGUgZGV0YWlscyBvZiBhbGwgY29uZmxpY3RpbmcgbG9jYWwgcm93cyBhcmUgYWdncmVnYXRlZCBp bnRvIGEKc2luZ2xlIEpTT04gYXJyYXkgaW4gdGhlIGxvY2FsX2NvbmZsaWN0cyBjb2x1bW4uCgpU aGUgSlNPTiBhcnJheSB1c2VzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlZCBmb3JtYXQ6ClsgeyAi eGlkIjogIjEwMDEiLCAiY29tbWl0X3RzIjogIjIwMjUtMTItMjUgMTA6MDA6MDArMDU6MzAiLCAi b3JpZ2luIjogIm5vZGVfMSIsCiJrZXkiOiB7ImlkIjogMX0sICJ0dXBsZSI6IHsiaWQiOiAxLCAi dmFsIjogIm9sZF9kYXRhIn0gfSwgLi4uIF0KCkV4YW1wbGUgb2YgcXVlcnlpbmcgdGhlIHN0cnVj dHVyZWQgY29uZmxpY3QgZGF0YToKClNFTEVDVCByZW1vdGVfeGlkLCByZWxuYW1lLCByZW1vdGVf b3JpZ2luLCBsb2NhbF9jb25mbGljdHNbMV0gLT4+ICd4aWQnIEFTIGxvY2FsX3hpZCwKICAgICAg IGxvY2FsX2NvbmZsaWN0c1sxXSAtPj4gJ3R1cGxlJyBBUyBsb2NhbF90dXBsZQpGUk9NIHBnX2Nv bmZsaWN0LnBnX2NvbmZsaWN0X2xvZ18xNjM5NjsKCiByZW1vdGVfeGlkIHwgcmVsbmFtZSAgfCBy ZW1vdGVfb3JpZ2luIHwgbG9jYWxfeGlkIHwgICAgIGxvY2FsX3R1cGxlCi0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAgICAgICA3NjAgfCB0ZXN0ICAgICB8IHBnXzE2NDA2ICAgICAgfCA3NzEgICAgICAgfCB7 ImEiOjEsImIiOjEwfQogICAgICAgIDc2NSB8IGNvbmZfdGFiIHwgcGdfMTY0MDYgICAgICB8IDc3 NSAgICAgICB8IHsiYSI6MiwiYiI6MiwiYyI6Mn0KLS0tCiAuLi4vcmVwbGljYXRpb24vbG9naWNh bC9hcHBseXBhcmFsbGVsd29ya2VyLmMgfCAgODQgKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvY29uZmxpY3QuYyAgICB8IDc4MCArKysrKysrKysrKysrKysrKy0KIHNyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgICAgICB8ICA2NSArLQogc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaCAgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRl L3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oICAgICB8ICAgNiArCiBzcmMvdGVzdC9zdWJz Y3JpcHRpb24vbWVzb24uYnVpbGQgICAgICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3Qvc3Vic2Ny aXB0aW9uL3QvMDMwX29yaWdpbi5wbCAgICAgICAgIHwgICA0ICstCiBzcmMvdGVzdC9zdWJzY3Jp cHRpb24vdC8wMzVfY29uZmxpY3RzLnBsICAgICAgfCAgODggKy0KIC4uLi90LzAzOV9wYV9jb25m bGljdF9sb2dfbG9ja193YWl0LnBsICAgICAgICB8IDIwMyArKysrKwogc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgICAxICsKIDEwIGZpbGVzIGNoYW5nZWQs IDExODIgaW5zZXJ0aW9ucygrKSwgNTMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM5X3BhX2NvbmZsaWN0X2xvZ19sb2NrX3dhaXQucGwK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2FwcGx5cGFyYWxs ZWx3b3JrZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvYXBwbHlwYXJhbGxl bHdvcmtlci5jCmluZGV4IDAxMmQ1NWU5ZDNkLi5hM2Y1YjliMTIyZCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9hcHBseXBhcmFsbGVsd29ya2VyLmMKKysrIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9hcHBseXBhcmFsbGVsd29ya2VyLmMKQEAg LTk4Niw3ICs5ODYsNjUgQEAgUGFyYWxsZWxBcHBseVdvcmtlck1haW4oRGF0dW0gbWFpbl9hcmcp CiAKIAlzZXRfYXBwbHlfZXJyb3JfY29udGV4dF9vcmlnaW4ob3JpZ2lubmFtZSk7CiAKLQlMb2dp Y2FsUGFyYWxsZWxBcHBseUxvb3AobXFoKTsKKwlQR19UUlkoKTsKKwl7CisJCUxvZ2ljYWxQYXJh bGxlbEFwcGx5TG9vcChtcWgpOworCX0KKwlQR19DQVRDSCgpOworCXsKKwkJTWVtb3J5Q29udGV4 dCBvbGRjb250ZXh0OworCQlFcnJvckRhdGEgICplZGF0YTsKKworCQkvKgorCQkgKiBSZXNldCB0 aGUgb3JpZ2luIHN0YXRlIHRvIHByZXZlbnQgdGhlIGFkdmFuY2VtZW50IG9mIG9yaWdpbgorCQkg KiBwcm9ncmVzcyBpZiB3ZSBmYWlsIHRvIGFwcGx5LiBPdGhlcndpc2UsIHRoaXMgd2lsbCByZXN1 bHQgaW4KKwkJICogdHJhbnNhY3Rpb24gbG9zcyBhcyB0aGF0IHRyYW5zYWN0aW9uIHdvbid0IGJl IHNlbnQgYWdhaW4gYnkgdGhlCisJCSAqIHNlcnZlci4KKwkJICovCisJCXJlcGxvcmlnaW5feGFj dF9jbGVhcih0cnVlKTsKKworCQkvKgorCQkgKiBDb3B5IHRoZSBlcnJvciBhbmQgcmVjb3ZlciB0 byBhbiBpZGxlIHN0YXRlIHNvIHdlIGNhbiBpbnNlcnQgdGhlCisJCSAqIGRlZmVycmVkIGNvbmZs aWN0IGxvZyB0dXBsZSAoaWYgYW55KSBiZWZvcmUgcmUtdGhyb3dpbmcuICBDb3B5IHRoZQorCQkg KiBlcnJvciBpbnRvIGEgbG9uZ2VyLWxpdmVkIGNvbnRleHQgZmlyc3QsIGFzIGl0IG1heSBoYXZl IGJlZW4gcmFpc2VkCisJCSAqIHVuZGVyIEVycm9yQ29udGV4dC4gIEFsc28gcmVzZXQgdGhlIGVy cm9yIGNvbnRleHQgc3RhY2s6IHRoZQorCQkgKiBjYWxsYmFja3MgaW4gZWZmZWN0IHdoZW4gdGhl IGVycm9yIHdhcyB0aHJvd24gYmVsb25nIHRvIHVud291bmQgc3RhY2sKKwkJICogZnJhbWVzLCBh bmQgdGhlIGRlZmVycmVkIGluc2VydCBpbnN0YWxscyBpdHMgb3duLgorCQkgKi8KKwkJb2xkY29u dGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhUb3BNZW1vcnlDb250ZXh0KTsKKwkJZWRhdGEg PSBDb3B5RXJyb3JEYXRhKCk7CisJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsK KworCQlGbHVzaEVycm9yU3RhdGUoKTsKKwkJZXJyb3JfY29udGV4dF9zdGFjayA9IE5VTEw7CisK KwkJLyoKKwkJICogVGVsbCB0aGUgbGVhZGVyIHdlIGZhaWxlZCBhbmQgYXJlIGFib3V0IHRvIHJl cG9ydCB0aGUgZXJyb3IgYW5kIGxvZworCQkgKiB0aGUgY29uZmxpY3QuICBUaGlzIG11c3QgYmUg c2V0IGJlZm9yZSBBYm9ydE91dE9mQW55VHJhbnNhY3Rpb24oKQorCQkgKiBiZWxvdyByZWxlYXNl cyB0aGUgdHJhbnNhY3Rpb24gbG9jayB0aGF0IHRoZSBsZWFkZXIgd2FpdHMgb24gaW4KKwkJICog cGFfd2FpdF9mb3JfeGFjdF9maW5pc2goKTsgb3RoZXJ3aXNlIHRoZSBsZWFkZXIgd291bGQgc2Vl IGEKKwkJICogbm9uLWZpbmlzaGVkIHN0YXRlLCBhc3N1bWUgdGhlIGNvbm5lY3Rpb24gd2FzIGxv c3QsIGFuZCB0ZWFyIHRoaXMKKwkJICogd29ya2VyIGRvd24gd2hpbGUgaXQgaXMgc3RpbGwgd3Jp dGluZyB0aGUgY29uZmxpY3QgbG9nIHR1cGxlLgorCQkgKi8KKwkJcGFfc2V0X3hhY3Rfc3RhdGUo TXlQYXJhbGxlbFNoYXJlZCwgUEFSQUxMRUxfVFJBTlNfRVJST1IpOworCisJCUFib3J0T3V0T2ZB bnlUcmFuc2FjdGlvbigpOworCisJCS8qCisJCSAqIEluc2VydCB0aGUgZGVmZXJyZWQgY29uZmxp Y3QgbG9nIHR1cGxlIGJlZm9yZSByZS10aHJvd2luZy4KKwkJICogUmUtdGhyb3dpbmcgaXMgd2hh dCByZXBvcnRzIHRoZSBlcnJvciB0byB0aGUgbGVhZGVyICh2aWEgdGhlIGVycm9yCisJCSAqIHF1 ZXVlIHNldCB1cCBhYm92ZSksIHNvIHRoZSBpbnNlcnRpb24gbXVzdCBoYXBwZW4gZmlyc3Q6IG90 aGVyd2lzZQorCQkgKiB0aGUgbGVhZGVyIGNvdWxkIHN0YXJ0IHRlYXJpbmcgZG93biB0aGlzIHdv cmtlciB3aGlsZSBpdCBpcyBzdGlsbAorCQkgKiB3cml0aW5nIHRoZSBjb25mbGljdCBsb2cgdHVw bGUuICBJZiB0aGUgaW5zZXJ0aW9uIGl0c2VsZiBmYWlscywgdGhhdAorCQkgKiBlcnJvciAoYW5u b3RhdGVkIHdpdGggdGhlIGNvbmZsaWN0IGNvbnRleHQsIHNlZSBJbnNlcnRDb25mbGljdExvZ1R1 cGxlKQorCQkgKiBwcm9wYWdhdGVzIHRvIHRoZSBsZWFkZXIgaW5zdGVhZCBvZiB0aGUgb3JpZ2lu YWwuCisJCSAqLworCQlQcm9jZXNzUGVuZGluZ0NvbmZsaWN0TG9nVHVwbGUoKTsKKworCQkvKiBS ZS10aHJvdyB0aGUgb3JpZ2luYWwgZXJyb3IsIHdoaWNoIHJlcG9ydHMgaXQgdG8gdGhlIGxlYWRl ci4gKi8KKwkJUmVUaHJvd0Vycm9yKGVkYXRhKTsKKwl9CisJUEdfRU5EX1RSWSgpOwogCiAJLyoK IAkgKiBUaGUgcGFyYWxsZWwgYXBwbHkgd29ya2VyIG11c3Qgbm90IGdldCBoZXJlIGJlY2F1c2Ug dGhlIHBhcmFsbGVsIGFwcGx5CkBAIC0xMzE0LDkgKzEzNzIsMzMgQEAgcGFfd2FpdF9mb3JfeGFj dF9maW5pc2goUGFyYWxsZWxBcHBseVdvcmtlckluZm8gKndpbmZvKQogCSAqIHJlbGVhc2VkLgog CSAqLwogCWlmIChwYV9nZXRfeGFjdF9zdGF0ZSh3aW5mby0+c2hhcmVkKSAhPSBQQVJBTExFTF9U UkFOU19GSU5JU0hFRCkKKwl7CisJCS8qCisJCSAqIElmIHRoZSB3b3JrZXIgc2lnbmFsbGVkIHRo YXQgaXQgZXJyb3JlZCAoUEFSQUxMRUxfVFJBTlNfRVJST1IpLCBpdCBpcworCQkgKiBsb2dnaW5n IHRoZSBjb25mbGljdCBhbmQgd2lsbCByZXBvcnQgdGhlIGFjdHVhbCBlcnJvciB2aWEgdGhlIGVy cm9yCisJCSAqIHF1ZXVlIGJlZm9yZSBleGl0aW5nLiAgV2FpdCBmb3IgdGhhdCByYXRoZXIgdGhh biByZXBvcnRpbmcgYSBnZW5lcmljCisJCSAqIGxvc3QgY29ubmVjdGlvbjogQ0hFQ0tfRk9SX0lO VEVSUlVQVFMoKSBkcml2ZXMKKwkJICogUHJvY2Vzc1BhcmFsbGVsQXBwbHlNZXNzYWdlcygpLCB3 aGljaCByYWlzZXMgdGhlIHJlYWwgZXJyb3Igb24gdGhlCisJCSAqIHdvcmtlcidzIEVycm9yUmVz cG9uc2UgKG9yICJsb3N0IGNvbm5lY3Rpb24iIGlmIHRoZSB3b3JrZXIgZGllZAorCQkgKiB3aXRo b3V0IHJlcG9ydGluZykuICBXYWl0aW5nIGhlcmUgYWxzbyBrZWVwcyB0aGUgd29ya2VyIGFsaXZl IGxvbmcKKwkJICogZW5vdWdoIHRvIGZpbmlzaCB3cml0aW5nIHRoZSBjb25mbGljdCBsb2cgdHVw bGUuCisJCSAqLworCQl3aGlsZSAocGFfZ2V0X3hhY3Rfc3RhdGUod2luZm8tPnNoYXJlZCkgPT0g UEFSQUxMRUxfVFJBTlNfRVJST1IpCisJCXsKKwkJCUNIRUNLX0ZPUl9JTlRFUlJVUFRTKCk7CisK KwkJCSh2b2lkKSBXYWl0TGF0Y2goTXlMYXRjaCwKKwkJCQkJCQkgV0xfTEFUQ0hfU0VUIHwgV0xf VElNRU9VVCB8IFdMX0VYSVRfT05fUE1fREVBVEgsCisJCQkJCQkJIDEwTCwKKwkJCQkJCQkgV0FJ VF9FVkVOVF9MT0dJQ0FMX1BBUkFMTEVMX0FQUExZX1NUQVRFX0NIQU5HRSk7CisKKwkJCVJlc2V0 TGF0Y2goTXlMYXRjaCk7CisJCX0KKwogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVS UkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAogCQkJCSBlcnJtc2coImxv c3QgY29ubmVjdGlvbiB0byB0aGUgbG9naWNhbCByZXBsaWNhdGlvbiBwYXJhbGxlbCBhcHBseSB3 b3JrZXIiKSkpOworCX0KIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvY29uZmxpY3QuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwv Y29uZmxpY3QuYwppbmRleCBhZTFkMjZmMzllMS4uNDc0MTAxMjRhMGIgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvY29uZmxpY3QuYworKysgYi9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMKQEAgLTE2LDE3ICsxNiwyNSBAQAogCiAj aW5jbHVkZSAiYWNjZXNzL2NvbW1pdF90cy5oIgogI2luY2x1ZGUgImFjY2Vzcy9nZW5hbS5oIgor I2luY2x1ZGUgImFjY2Vzcy9oZWFwYW0uaCIKICNpbmNsdWRlICJhY2Nlc3MvdGFibGVhbS5oIgor I2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9oZWFwLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19hbS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfbmFtZXNwYWNlLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy90b2FzdGluZy5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1 dG9yLmgiCisjaW5jbHVkZSAiZnVuY2FwaS5oIgogI2luY2x1ZGUgInBnc3RhdC5oIgogI2luY2x1 ZGUgInJlcGxpY2F0aW9uL2NvbmZsaWN0LmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vd29ya2Vy X2ludGVybmFsLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgiCisjaW5jbHVkZSAidXRpbHMv YXJyYXkuaCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2lu amVjdGlvbl9wb2ludC5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1ZGUg InV0aWxzL21lbXV0aWxzLmgiCisjaW5jbHVkZSAidXRpbHMvcGdfbHNuLmgiCiAKIC8qCiAgKiBT dHJpbmcgcmVwcmVzZW50YXRpb25zIGZvciB0aGUgc3VwcG9ydGVkIGNvbmZsaWN0IGxvZ2dpbmcg ZGVzdGluYXRpb25zLgpAQCAtNDAsNyArNDgsNiBAQCBjb25zdCBjaGFyICpjb25zdCBDb25mbGlj dExvZ0Rlc3ROYW1lc1tdID0gewogU3RhdGljQXNzZXJ0RGVjbChsZW5ndGhvZihDb25mbGljdExv Z0Rlc3ROYW1lcykgPT0gQ09ORkxJQ1RfTE9HX0RFU1RfQUxMICsgMSwKIAkJCQkgIkNvbmZsaWN0 TG9nRGVzdE5hbWVzIGxlbmd0aCBtaXNtYXRjaCIpOwogCi0KIC8qIFN0cnVjdHVyZSB0byBob2xk IG1ldGFkYXRhIGZvciBvbmUgY29sdW1uIG9mIHRoZSBjb25mbGljdCBsb2cgdGFibGUgKi8KIHR5 cGVkZWYgc3RydWN0IENvbmZsaWN0TG9nQ29sdW1uRGVmCiB7CkBAIC04MSw2ICs4OCwxOCBAQCBz dGF0aWMgY29uc3QgQ29uZmxpY3RMb2dDb2x1bW5EZWYgQ29uZmxpY3RMb2dTY2hlbWFbXSA9IHsK IAogI2RlZmluZSBOVU1fQ09ORkxJQ1RfQVRUUlMgbGVuZ3Rob2YoQ29uZmxpY3RMb2dTY2hlbWEp CiAKKy8qIFNjaGVtYSBmb3IgdGhlIGVsZW1lbnRzIHdpdGhpbiB0aGUgJ2xvY2FsX2NvbmZsaWN0 cycgSlNPTiBhcnJheSAqLworc3RhdGljIGNvbnN0IENvbmZsaWN0TG9nQ29sdW1uRGVmIExvY2Fs Q29uZmxpY3RTY2hlbWFbXSA9Cit7CisJeyAuYXR0bmFtZSA9ICJ4aWQiLCAgICAgICAuYXR0dHlw aWQgPSBYSURPSUQgfSwKKwl7IC5hdHRuYW1lID0gImNvbW1pdF90cyIsIC5hdHR0eXBpZCA9IFRJ TUVTVEFNUFRaT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJvcmlnaW4iLCAgICAuYXR0dHlwaWQgPSBU RVhUT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJrZXkiLCAgICAgICAuYXR0dHlwaWQgPSBKU09OT0lE IH0sCisJeyAuYXR0bmFtZSA9ICJ0dXBsZSIsICAgICAuYXR0dHlwaWQgPSBKU09OT0lEIH0KK307 CisKKyNkZWZpbmUgTlVNX0xPQ0FMX0NPTkZMSUNUX0FUVFJTIGxlbmd0aG9mKExvY2FsQ29uZmxp Y3RTY2hlbWEpCisKIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBDb25mbGljdFR5cGVOYW1lc1td ID0gewogCVtDVF9JTlNFUlRfRVhJU1RTXSA9ICJpbnNlcnRfZXhpc3RzIiwKIAlbQ1RfVVBEQVRF X09SSUdJTl9ESUZGRVJTXSA9ICJ1cGRhdGVfb3JpZ2luX2RpZmZlcnMiLApAQCAtOTIsNiArMTEx LDI1IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBDb25mbGljdFR5cGVOYW1lc1tdID0gewog CVtDVF9NVUxUSVBMRV9VTklRVUVfQ09ORkxJQ1RTXSA9ICJtdWx0aXBsZV91bmlxdWVfY29uZmxp Y3RzIgogfTsKIAorLyoKKyAqIFdvcmtlci1wcml2YXRlIHN0YXRlIGZvciBhIGNvbmZsaWN0IHRo YXQgaGFzIGJlZW4gcHJlcGFyZWQgZm9yIHRoZSBjb25mbGljdAorICogbG9nIHRhYmxlIGJ1dCBu b3QgeWV0IGluc2VydGVkLiAgSXQgY2FycmllcyB0aGUgcHJlcGFyZWQgdHVwbGUsIGFuZCBhCisg KiBkZXNjcmlwdGlvbiBvZiB0aGUgY29uZmxpY3QgdXNlZCBmb3IgZXJyb3IgY29udGV4dCwgZnJv bQorICogcHJlcGFyZV9jb25mbGljdF9sb2dfdHVwbGUoKSBhY3Jvc3MgdGhlIGFwcGx5IGVycm9y IGJvdW5kYXJ5IHRvCisgKiBQcm9jZXNzUGVuZGluZ0NvbmZsaWN0TG9nVHVwbGUoKS9JbnNlcnRD b25mbGljdExvZ1R1cGxlKCkuICBCb3RoIHBvaW50ZXJzCisgKiByZWZlcmVuY2UgbWVtb3J5IGFs bG9jYXRlZCBpbiBBcHBseUNvbnRleHQuCisgKgorICogVGhpcyBpcyBwdXJlbHkgcHJvY2Vzcy1s b2NhbCBzdGF0ZSwgc28gaXQgbGl2ZXMgaGVyZSByYXRoZXIgdGhhbiBpbiB0aGUKKyAqIHNoYXJl ZCBMb2dpY2FsUmVwV29ya2VyIHN0cnVjdC4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgUGVuZGluZ0Nv bmZsaWN0TG9nRGF0YQoreworCUhlYXBUdXBsZQl0dXBsZTsJCQkvKiBwcmVwYXJlZCwgbm90LXll dC1pbnNlcnRlZCBjb25mbGljdCB0dXBsZSAqLworCWNoYXIJICAgKmVycmNvbnRleHRfc3RyOwkv KiBjb25mbGljdCBkZXNjcmlwdGlvbiBmb3IgZXJyb3IgY29udGV4dCAqLworfSBQZW5kaW5nQ29u ZmxpY3RMb2dEYXRhOworCitzdGF0aWMgUGVuZGluZ0NvbmZsaWN0TG9nRGF0YSBwZW5kaW5nX2Nv bmZsaWN0X2xvZyA9IHswfTsKKwogc3RhdGljIGludAllcnJjb2RlX2FwcGx5X2NvbmZsaWN0KENv bmZsaWN0VHlwZSB0eXBlKTsKIHN0YXRpYyB2b2lkIGVycmRldGFpbF9hcHBseV9jb25mbGljdChF U3RhdGUgKmVzdGF0ZSwKIAkJCQkJCQkJCSBSZXN1bHRSZWxJbmZvICpyZWxpbmZvLApAQCAtMTA4 LDggKzE0NiwyNyBAQCBzdGF0aWMgdm9pZCBnZXRfdHVwbGVfZGVzYyhFU3RhdGUgKmVzdGF0ZSwg UmVzdWx0UmVsSW5mbyAqcmVsaW5mbywKIAkJCQkJCSAgIFR1cGxlVGFibGVTbG90ICpyZW1vdGVz bG90LCBjaGFyICoqcmVtb3RlX2Rlc2MsCiAJCQkJCQkgICBUdXBsZVRhYmxlU2xvdCAqc2VhcmNo c2xvdCwgY2hhciAqKnNlYXJjaF9kZXNjLAogCQkJCQkJICAgT2lkIGluZGV4b2lkKTsKK3N0YXRp YyB2b2lkIGJ1aWxkX2luZGV4X2RhdHVtc19mcm9tX3Nsb3QoRVN0YXRlICplc3RhdGUsIFJlbGF0 aW9uIGxvY2FscmVsLAorCQkJCQkJCQkJCSBUdXBsZVRhYmxlU2xvdCAqc2xvdCwKKwkJCQkJCQkJ CQkgUmVsYXRpb24gaW5kZXhEZXNjLCBEYXR1bSAqdmFsdWVzLAorCQkJCQkJCQkJCSBib29sICpp c251bGwpOwogc3RhdGljIGNoYXIgKmJ1aWxkX2luZGV4X3ZhbHVlX2Rlc2MoRVN0YXRlICplc3Rh dGUsIFJlbGF0aW9uIGxvY2FscmVsLAogCQkJCQkJCQkJVHVwbGVUYWJsZVNsb3QgKnNsb3QsIE9p ZCBpbmRleG9pZCk7CitzdGF0aWMgRGF0dW0gdHVwbGVfdGFibGVfc2xvdF90b19qc29uX2RhdHVt KFR1cGxlVGFibGVTbG90ICpzbG90KTsKK3N0YXRpYyBEYXR1bSB0dXBsZV90YWJsZV9zbG90X3Rv X2luZGV4dHVwX2pzb24oRVN0YXRlICplc3RhdGUsCisJCQkJCQkJCQkJCSAgIFJlbGF0aW9uIGxv Y2FscmVsLAorCQkJCQkJCQkJCQkgICBPaWQgcmVwbGljYV9pbmRleCwKKwkJCQkJCQkJCQkJICAg VHVwbGVUYWJsZVNsb3QgKnNsb3QpOworc3RhdGljIFR1cGxlRGVzYyBidWlsZF9jb25mbGljdF90 dXBsZWRlc2Modm9pZCk7CitzdGF0aWMgRGF0dW0gYnVpbGRfbG9jYWxfY29uZmxpY3RzX2pzb25f YXJyYXkoRVN0YXRlICplc3RhdGUsIFJlbGF0aW9uIHJlbCwKKwkJCQkJCQkJCQkJICBDb25mbGlj dFR5cGUgY29uZmxpY3RfdHlwZSwKKwkJCQkJCQkJCQkJICBMaXN0ICpjb25mbGljdHR1cGxlcyk7 CitzdGF0aWMgdm9pZCBwcmVwYXJlX2NvbmZsaWN0X2xvZ190dXBsZShFU3RhdGUgKmVzdGF0ZSwg UmVsYXRpb24gcmVsLAorCQkJCQkJCQkJICAgUmVsYXRpb24gY29uZmxpY3Rsb2dyZWwsCisJCQkJ CQkJCQkgICBDb25mbGljdFR5cGUgY29uZmxpY3RfdHlwZSwKKwkJCQkJCQkJCSAgIFR1cGxlVGFi bGVTbG90ICpzZWFyY2hzbG90LAorCQkJCQkJCQkJICAgTGlzdCAqY29uZmxpY3R0dXBsZXMsCisJ CQkJCQkJCQkgICBUdXBsZVRhYmxlU2xvdCAqcmVtb3Rlc2xvdCk7CiAKIC8qCiAgKiBCdWlsZHMg dGhlIFR1cGxlRGVzYyBmb3IgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZS4KQEAgLTI3OCwzMCArMzM1 LDIyMCBAQCBSZXBvcnRBcHBseUNvbmZsaWN0KEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZv ICpyZWxpbmZvLCBpbnQgZWxldmVsLAogCQkJCQlDb25mbGljdFR5cGUgdHlwZSwgVHVwbGVUYWJs ZVNsb3QgKnNlYXJjaHNsb3QsCiAJCQkJCVR1cGxlVGFibGVTbG90ICpyZW1vdGVzbG90LCBMaXN0 ICpjb25mbGljdHR1cGxlcykKIHsKLQlSZWxhdGlvbglsb2NhbHJlbCA9IHJlbGluZm8tPnJpX1Jl bGF0aW9uRGVzYzsKLQlTdHJpbmdJbmZvRGF0YSBlcnJfZGV0YWlsOworCVJlbGF0aW9uCQlsb2Nh bHJlbCA9IHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYzsKKwlDb25mbGljdExvZ0Rlc3QJZGVzdDsK KwlSZWxhdGlvbgkJY29uZmxpY3Rsb2dyZWw7CisJYm9vbAkJCWxvZ19kZXN0X3RhYmxlOworCWJv b2wgCQkJbG9nX2Rlc3RfbG9nZmlsZTsKIAotCWluaXRTdHJpbmdJbmZvKCZlcnJfZGV0YWlsKTsK KwlwZ3N0YXRfcmVwb3J0X3N1YnNjcmlwdGlvbl9jb25mbGljdChNeVN1YnNjcmlwdGlvbi0+b2lk LCB0eXBlKTsKIAotCS8qIEZvcm0gZXJyZGV0YWlsIG1lc3NhZ2UgYnkgY29tYmluaW5nIGNvbmZs aWN0aW5nIHR1cGxlcyBpbmZvcm1hdGlvbi4gKi8KLQlmb3JlYWNoX3B0cihDb25mbGljdFR1cGxl SW5mbywgY29uZmxpY3R0dXBsZSwgY29uZmxpY3R0dXBsZXMpCi0JCWVycmRldGFpbF9hcHBseV9j b25mbGljdChlc3RhdGUsIHJlbGluZm8sIHR5cGUsIHNlYXJjaHNsb3QsCi0JCQkJCQkJCSBjb25m bGljdHR1cGxlLT5zbG90LCByZW1vdGVzbG90LAotCQkJCQkJCQkgY29uZmxpY3R0dXBsZS0+aW5k ZXhvaWQsCi0JCQkJCQkJCSBjb25mbGljdHR1cGxlLT54bWluLAotCQkJCQkJCQkgY29uZmxpY3R0 dXBsZS0+b3JpZ2luLAotCQkJCQkJCQkgY29uZmxpY3R0dXBsZS0+dHMsCi0JCQkJCQkJCSAmZXJy X2RldGFpbCk7CisJLyoKKwkgKiBHZXQgdGhlIGNvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbi4gIEFs c28sIGlmIGEgdGFibGUgaXMgb25lIG9mIHRoZQorCSAqIGRlc3RpbmF0aW9ucywgcmV0dXJuIHRo ZSBDTFQgcmVsYXRpb24gYWxyZWFkeSBvcGVuZWQgYW5kIHJlYWR5IGZvcgorCSAqIGluc2VydGlv biAtLSBvciBOVUxMIGlmIGl0IGhhcyBiZWVuIGRyb3BwZWQgY29uY3VycmVudGx5LgorCSAqLwor CWNvbmZsaWN0bG9ncmVsID0gR2V0Q29uZmxpY3RMb2dEZXN0QW5kVGFibGUoJmRlc3QpOwogCi0J cGdzdGF0X3JlcG9ydF9zdWJzY3JpcHRpb25fY29uZmxpY3QoTXlTdWJzY3JpcHRpb24tPm9pZCwg dHlwZSk7CisJbG9nX2Rlc3RfdGFibGUgPSBDT05GTElDVFNfTE9HR0VEX1RPX1RBQkxFKGRlc3Qp OworCWxvZ19kZXN0X2xvZ2ZpbGUgPSBDT05GTElDVFNfTE9HR0VEX1RPX0xPRyhkZXN0KTsKKwor CS8qCisJICogSWYgYSBjb25mbGljdCBsb2cgdGFibGUgd2FzIHJlcXVlc3RlZCBidXQgaXQgaGFz IGJlZW4gZHJvcHBlZAorCSAqIGNvbmN1cnJlbnRseSAoZS5nLiBhIGNvbmN1cnJlbnQgQUxURVIg U1VCU0NSSVBUSU9OIGNoYW5nZWQKKwkgKiBjb25mbGljdF9sb2dfZGVzdGluYXRpb24pLCBHZXRD b25mbGljdExvZ0Rlc3RBbmRUYWJsZSgpIHJldHVybmVkIE5VTEwuCisJICogRmFsbCBiYWNrIHRv IGxvZ2dpbmcgdGhlIGZ1bGwgY29uZmxpY3QgZGV0YWlscyB0byB0aGUgc2VydmVyIGxvZyBzbyB0 aGF0CisJICogdGhlIGNvbmZsaWN0IGlzIG5vdCBsb3N0LgorCSAqLworCWlmIChsb2dfZGVzdF90 YWJsZSAmJiBjb25mbGljdGxvZ3JlbCA9PSBOVUxMKQorCXsKKwkJbG9nX2Rlc3RfdGFibGUgPSBm YWxzZTsKKwkJbG9nX2Rlc3RfbG9nZmlsZSA9IHRydWU7CisJfQorCisJLyoKKwkgKiBQcmVwYXJl IHRoZSBjb25mbGljdCBsb2cgdHVwbGUgZmlyc3Qgd2hlbiB0aGUgZGVzdGluYXRpb24gaW5jbHVk ZXMgdGhlCisJICogdGFibGUuICBUaGlzIG11c3QgaGFwcGVuIGJlZm9yZSB0aGUgZXJlcG9ydCgp IGJlbG93LCBiZWNhdXNlIGZvciBhbgorCSAqIEVSUk9SLWxldmVsIGNvbmZsaWN0IHRoYXQgZXJl cG9ydCgpIHJhaXNlcyB0aGUgZXJyb3IgYW5kIGRlZmVycyB0aGUKKwkgKiBhY3R1YWwgaW5zZXJ0 aW9uIHRvIFByb2Nlc3NQZW5kaW5nQ29uZmxpY3RMb2dUdXBsZSgpLCB3aGljaCByZWxpZXMgb24g dGhlCisJICogdHVwbGUgaGF2aW5nIGJlZW4gcHJlcGFyZWQuCisJICovCisJaWYgKGxvZ19kZXN0 X3RhYmxlKQorCXsKKwkJQXNzZXJ0KGNvbmZsaWN0bG9ncmVsICE9IE5VTEwpOworCQlwcmVwYXJl X2NvbmZsaWN0X2xvZ190dXBsZShlc3RhdGUsCisJCQkJCQkJCSAgIHJlbGluZm8tPnJpX1JlbGF0 aW9uRGVzYywKKwkJCQkJCQkJICAgY29uZmxpY3Rsb2dyZWwsCisJCQkJCQkJCSAgIHR5cGUsCisJ CQkJCQkJCSAgIHNlYXJjaHNsb3QsCisJCQkJCQkJCSAgIGNvbmZsaWN0dHVwbGVzLAorCQkJCQkJ CQkgICByZW1vdGVzbG90KTsKKwl9CisKKwkvKgorCSAqIFJlcG9ydCB0aGUgY29uZmxpY3QgdG8g dGhlIHNlcnZlciBsb2cgYmVmb3JlIGluc2VydGluZyBpdCBpbnRvIHRoZQorCSAqIGNvbmZsaWN0 IGxvZyB0YWJsZS4gIEVtaXR0aW5nIGl0IGZpcnN0IGd1YXJhbnRlZXMgdGhlIGNvbmZsaWN0IGlz CisJICogcmVjb3JkZWQgZXZlbiBpZiB0aGUgdGFibGUgaW5zZXJ0IGJlbG93IGZhaWxzOyBpdCBp cyBhbHNvIHdoYXQgcmFpc2VzIHRoZQorCSAqIGVycm9yIGZvciBFUlJPUi1sZXZlbCBjb25mbGlj dHMuICBXaGVuIHRoZSBzZXJ2ZXIgbG9nIGlzIG9uZSBvZiB0aGUKKwkgKiBkZXN0aW5hdGlvbnMg d2UgZW1pdCB0aGUgZnVsbCBkZXRhaWxzLCBvdGhlcndpc2UgKHRhYmxlLW9ubHkpIHdlIGVtaXQg YQorCSAqIHNob3J0ZXIgbWVzc2FnZSBzaW5jZSB0aGUgZGV0YWlscyBhcmUgY2FwdHVyZWQgaW4g dGhlIHRhYmxlLgorCSAqLworCWlmIChsb2dfZGVzdF9sb2dmaWxlKQorCXsKKwkJU3RyaW5nSW5m b0RhdGEJZXJyX2RldGFpbDsKKworCQlpbml0U3RyaW5nSW5mbygmZXJyX2RldGFpbCk7CisKKwkJ LyogRm9ybSBlcnJkZXRhaWwgbWVzc2FnZSBieSBjb21iaW5pbmcgY29uZmxpY3RpbmcgdHVwbGVz IGluZm9ybWF0aW9uLiAqLworCQlmb3JlYWNoX3B0cihDb25mbGljdFR1cGxlSW5mbywgY29uZmxp Y3R0dXBsZSwgY29uZmxpY3R0dXBsZXMpCisJCQllcnJkZXRhaWxfYXBwbHlfY29uZmxpY3QoZXN0 YXRlLCByZWxpbmZvLCB0eXBlLCBzZWFyY2hzbG90LAorCQkJCQkJCQkJY29uZmxpY3R0dXBsZS0+ c2xvdCwgcmVtb3Rlc2xvdCwKKwkJCQkJCQkJCWNvbmZsaWN0dHVwbGUtPmluZGV4b2lkLAorCQkJ CQkJCQkJY29uZmxpY3R0dXBsZS0+eG1pbiwKKwkJCQkJCQkJCWNvbmZsaWN0dHVwbGUtPm9yaWdp biwKKwkJCQkJCQkJCWNvbmZsaWN0dHVwbGUtPnRzLAorCQkJCQkJCQkJJmVycl9kZXRhaWwpOwor CisJCS8qIFN0YW5kYXJkIHJlcG9ydGluZyB3aXRoIGZ1bGwgaW50ZXJuYWwgZGV0YWlscy4gKi8K KwkJZXJlcG9ydChlbGV2ZWwsCisJCQkJZXJyY29kZV9hcHBseV9jb25mbGljdCh0eXBlKSwKKwkJ CQllcnJtc2coImNvbmZsaWN0IGRldGVjdGVkIG9uIHJlbGF0aW9uIFwiJXNcIjogY29uZmxpY3Q9 JXMiLAorCQkJCQkgICBSZWxhdGlvbkdldFF1YWxpZmllZFJlbGF0aW9uTmFtZShsb2NhbHJlbCks CisJCQkJCSAgIENvbmZsaWN0VHlwZU5hbWVzW3R5cGVdKSwKKwkJCQllcnJkZXRhaWxfaW50ZXJu YWwoIiVzIiwgZXJyX2RldGFpbC5kYXRhKSk7CisJfQorCWVsc2UgaWYgKGxvZ19kZXN0X3RhYmxl KQorCXsKKwkJLyoKKwkJICogTm90IGxvZ2dpbmcgY29uZmxpY3QgZGV0YWlscyB0byB0aGUgc2Vy dmVyIGxvZzsgcmVwb3J0IHRoZSBjb25mbGljdAorCQkgKiBidXQgb21pdCByYXcgdHVwbGUgZGF0 YSBzaW5jZSBpdCBpcyBjYXB0dXJlZCBpbiB0aGUgY29uZmxpY3QgbG9nCisJCSAqIHRhYmxlLgor CQkgKi8KKwkJZXJlcG9ydChlbGV2ZWwsCisJCQkJZXJyY29kZV9hcHBseV9jb25mbGljdCh0eXBl KSwKKwkJCQllcnJtc2coImNvbmZsaWN0IGRldGVjdGVkIG9uIHJlbGF0aW9uIFwiJXNcIjogY29u ZmxpY3Q9JXMiLAorCQkJCQlSZWxhdGlvbkdldFF1YWxpZmllZFJlbGF0aW9uTmFtZShsb2NhbHJl bCksCisJCQkJCUNvbmZsaWN0VHlwZU5hbWVzW3R5cGVdKSwKKwkJCQllcnJkZXRhaWwoIkNvbmZs aWN0IGRldGFpbHMgYXJlIGxvZ2dlZCB0byB0aGUgY29uZmxpY3QgbG9nIHRhYmxlOiAlcyIsCisJ CQkJCQkgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGNvbmZsaWN0bG9ncmVsKSkpOworCX0KKwor CS8qCisJICogSW5zZXJ0IGludG8gdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSBpZiByZXF1ZXN0ZWQu ICBGb3IgY29uZmxpY3RzIGJlbG93CisJICogRVJST1IgdGhlIGFwcGx5IHRyYW5zYWN0aW9uIGNv bnRpbnVlcywgc28gaW5zZXJ0IGltbWVkaWF0ZWx5OyBmb3IKKwkgKiBFUlJPUi1sZXZlbCBjb25m bGljdHMgdGhlIGVyZXBvcnQoKSBhYm92ZSBhbHJlYWR5IHJhaXNlZCB0aGUgZXJyb3IgYW5kCisJ ICogdGhlIGluc2VydGlvbiBpcyBkZWZlcnJlZCB0byBhIG5ldyB0cmFuc2FjdGlvbgorCSAqIChQ cm9jZXNzUGVuZGluZ0NvbmZsaWN0TG9nVHVwbGUpIHNvIHRoYXQgaXQgaXMgbm90IHJvbGxlZCBi YWNrLgorCSAqLworCWlmIChsb2dfZGVzdF90YWJsZSkKKwl7CisJCWlmIChlbGV2ZWwgPCBFUlJP UikKKwkJeworCQkJUEdfVFJZKCk7CisJCQl7CisJCQkJSW5zZXJ0Q29uZmxpY3RMb2dUdXBsZShj b25mbGljdGxvZ3JlbCk7CisJCQl9CisJCQlQR19DQVRDSCgpOworCQkJeworCQkJCS8qCisJCQkJ ICogVGhlIGluc2VydCBmYWlsZWQsIHNvIHRoZSBhcHBseSB0cmFuc2FjdGlvbiB3aWxsIGFib3J0 IGFuZAorCQkJCSAqIHRoZSBlcnJvciB3aWxsIHByb3BhZ2F0ZSB0byB0aGUgd29ya2VyJ3MgZXJy b3IgaGFuZGxlci4gIFRoZQorCQkJCSAqIGNvbmZsaWN0IHdhcyBhbHJlYWR5IHJlcG9ydGVkIHRv IHRoZSBzZXJ2ZXIgbG9nIGFib3ZlLCBzbyBpdAorCQkJCSAqIGlzIG5vdCBsb3N0LiAgRGlzY2Fy ZCB0aGUgcHJlcGFyZWQgdHVwbGUgc28gdGhhdCB0aGUgZGVmZXJyZWQKKwkJCQkgKiBpbnNlcnRp b24gcGF0aCAoUHJvY2Vzc1BlbmRpbmdDb25mbGljdExvZ1R1cGxlKSBkb2VzIG5vdCByZXRyeQor CQkJCSAqIHRoaXMgc2FtZSBmYWlsaW5nIGluc2VydC4KKwkJCQkgKi8KKwkJCQlpZiAocGVuZGlu Z19jb25mbGljdF9sb2cudHVwbGUgIT0gTlVMTCkKKwkJCQl7CisJCQkJCWhlYXBfZnJlZXR1cGxl KHBlbmRpbmdfY29uZmxpY3RfbG9nLnR1cGxlKTsKKwkJCQkJcGVuZGluZ19jb25mbGljdF9sb2cu dHVwbGUgPSBOVUxMOworCQkJCX0KKwkJCQlpZiAocGVuZGluZ19jb25mbGljdF9sb2cuZXJyY29u dGV4dF9zdHIgIT0gTlVMTCkKKwkJCQl7CisJCQkJCXBmcmVlKHBlbmRpbmdfY29uZmxpY3RfbG9n LmVycmNvbnRleHRfc3RyKTsKKwkJCQkJcGVuZGluZ19jb25mbGljdF9sb2cuZXJyY29udGV4dF9z dHIgPSBOVUxMOworCQkJCX0KKwkJCQlQR19SRV9USFJPVygpOworCQkJfQorCQkJUEdfRU5EX1RS WSgpOworCQl9CisKKwkJdGFibGVfY2xvc2UoY29uZmxpY3Rsb2dyZWwsIFJvd0V4Y2x1c2l2ZUxv Y2spOworCX0KK30KKworLyoKKyAqIFByb2Nlc3NQZW5kaW5nQ29uZmxpY3RMb2dUdXBsZQorICog ICAgICBJbnNlcnQgYW55IGRlZmVycmVkIGNvbmZsaWN0IGxvZyB0dXBsZSBpbiBhIHNlcGFyYXRl IHRyYW5zYWN0aW9uLgorICoKKyAqIEZvciBjb25mbGljdHMgcmFpc2VkIGF0IEVSUk9SIGxldmVs LCB0aGUgY29uZmxpY3QgbG9nIHR1cGxlIGNhbm5vdCBiZQorICogaW5zZXJ0ZWQgaW1tZWRpYXRl bHkgYmVjYXVzZSB0aGUgc3Vycm91bmRpbmcgdHJhbnNhY3Rpb24gd2lsbCBhYm9ydC4KKyAqIFRv IGVuc3VyZSB0aGF0IGNvbmZsaWN0IGluZm9ybWF0aW9uIGlzIG5vdCBsb3N0LCBzdWNoIHR1cGxl cyBhcmUgcHJlcGFyZWQKKyAqIGR1cmluZyBlcnJvciBwcm9jZXNzaW5nIChzZWUgcHJlcGFyZV9j b25mbGljdF9sb2dfdHVwbGUoKSkgYnV0IHRoZWlyCisgKiBpbnNlcnRpb24gaXMgZGVmZXJyZWQu CisgKgorICogVGhpcyBmdW5jdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgY29tcGxldGluZyB0aGF0 IGRlZmVycmVkIGluc2VydGlvbiBhZnRlcgorICogdGhlIGZhaWxpbmcgdHJhbnNhY3Rpb24gaGFz IGJlZW4gYWJvcnRlZCBhbmQgdGhlIHN5c3RlbSBoYXMgcmV0dXJuZWQgdG8gYW4KKyAqIGlkbGUg c3RhdGUuICBJdCBleGVjdXRlcyB0aGUgaW5zZXJ0aW9uIGluIGEgbmV3LCBpbmRlcGVuZGVudCB0 cmFuc2FjdGlvbiwKKyAqIGVuc3VyaW5nIHRoYXQgdGhlIGNvbmZsaWN0IGxvZyBlbnRyeSBpcyBk dXJhYmxlIGFuZCBub3Qgcm9sbGVkIGJhY2sKKyAqIHRvZ2V0aGVyIHdpdGggdGhlIGZhaWxlZCBh cHBseSB0cmFuc2FjdGlvbi4KKyAqLwordm9pZAorUHJvY2Vzc1BlbmRpbmdDb25mbGljdExvZ1R1 cGxlKHZvaWQpCit7CisJUmVsYXRpb24JY29uZmxpY3Rsb2dyZWw7CisJQ29uZmxpY3RMb2dEZXN0 IGRlc3Q7CisKKwkvKiBOb3RoaW5nIHRvIGRvICovCisJaWYgKHBlbmRpbmdfY29uZmxpY3RfbG9n LnR1cGxlID09IE5VTEwpCisJCXJldHVybjsKKworCS8qCisJICogSW5zZXJ0IHRoZSBkZWZlcnJl ZCBjb25mbGljdCBsb2cgdHVwbGUgaW4gaXRzIG93biB0cmFuc2FjdGlvbi4gIEEKKwkgKiBmYWls dXJlIGhlcmUgKGUuZy4gYW4gb3V0LW9mLWRpc2stc3BhY2UgZXJyb3IpIGlzIHRyZWF0ZWQgbGlr ZSBhbnkgb3RoZXIKKwkgKiBhcHBseSBlcnJvciBhbmQgcmFpc2VzIGFuIEVSUk9SOyBzdWNoIGZh aWx1cmVzIGFyZSBleHBlY3RlZCB0byBiZSByYXJlCisJICogYW5kIHBlcnNpc3RlbnQuICBDYWxs ZXJzIG11c3QgdGhlcmVmb3JlIGhhdmUgYWxyZWFkeSByZXBvcnRlZCAoYW5kCisJICogY2xlYXJl ZCkgYW55IGluLXByb2dyZXNzIGFwcGx5IGVycm9yIGJlZm9yZSBjYWxsaW5nIHRoaXMsIHNvIHRo YXQgdGhpcworCSAqIGVycm9yIGRvZXMgbm90IG1hc2sgdGhlIG9yaWdpbmFsIG9uZS4KKwkgKi8K KwlTdGFydFRyYW5zYWN0aW9uQ29tbWFuZCgpOworCVB1c2hBY3RpdmVTbmFwc2hvdChHZXRUcmFu c2FjdGlvblNuYXBzaG90KCkpOworCisJLyoKKwkgKiBUZXN0IGhvb2s6IHBhdXNlIGhlcmUgc28g YSBUQVAgdGVzdCBjYW4gdGFrZSBhIGNvbmZsaWN0aW5nIGxvY2sgb24KKwkgKiB0aGUgY29uZmxp Y3QgbG9nIHRhYmxlIGJlZm9yZSB0aGlzIHRyYW5zYWN0aW9uIHRyaWVzIHRvIG9wZW4gaXQuCisJ ICogU2VlIHNyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzOV9wYV9jb25mbGljdF9sb2dfbG9ja193 YWl0LnBsLgorCSAqLworCUlOSkVDVElPTl9QT0lOVCgiY2x0LXBlbmRpbmctZmx1c2gtYmVmb3Jl LW9wZW4iLCBOVUxMKTsKIAotCWVyZXBvcnQoZWxldmVsLAotCQkJZXJyY29kZV9hcHBseV9jb25m bGljdCh0eXBlKSwKLQkJCWVycm1zZygiY29uZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gXCIl cy4lc1wiOiBjb25mbGljdD0lcyIsCi0JCQkJICAgZ2V0X25hbWVzcGFjZV9uYW1lKFJlbGF0aW9u R2V0TmFtZXNwYWNlKGxvY2FscmVsKSksCi0JCQkJICAgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUo bG9jYWxyZWwpLAotCQkJCSAgIENvbmZsaWN0VHlwZU5hbWVzW3R5cGVdKSwKLQkJCWVycmRldGFp bF9pbnRlcm5hbCgiJXMiLCBlcnJfZGV0YWlsLmRhdGEpKTsKKwkvKiBPcGVuIHRoZSBjb25mbGlj dCBsb2cgdGFibGUgYW5kIGluc2VydCB0aGUgdHVwbGUuICovCisJY29uZmxpY3Rsb2dyZWwgPSBH ZXRDb25mbGljdExvZ0Rlc3RBbmRUYWJsZSgmZGVzdCk7CisKKwlpZiAoY29uZmxpY3Rsb2dyZWwg IT0gTlVMTCkKKwl7CisJCUluc2VydENvbmZsaWN0TG9nVHVwbGUoY29uZmxpY3Rsb2dyZWwpOwor CQl0YWJsZV9jbG9zZShjb25mbGljdGxvZ3JlbCwgUm93RXhjbHVzaXZlTG9jayk7CisJfQorCWVs c2UKKwl7CisJCS8qCisJCSAqIFRoZSBjb25mbGljdCBsb2cgdGFibGUgd2FzIGRyb3BwZWQgY29u Y3VycmVudGx5IChlLmcuIGJ5IGFuIEFMVEVSCisJCSAqIFNVQlNDUklQVElPTiB0aGF0IGNoYW5n ZWQgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uKSBhZnRlciB0aGUKKwkJICogY29uZmxpY3Qgd2Fz IGFscmVhZHkgcmVwb3J0ZWQgdG8gdGhlIHNlcnZlciBsb2cgYnkKKwkJICogUmVwb3J0QXBwbHlD b25mbGljdCgpLiAgTm90aGluZyBtb3JlIHRvIGRvOyBqdXN0IGRpc2NhcmQgdGhlIHByZXBhcmVk CisJCSAqIHR1cGxlIGFuZCBpdHMgY29udGV4dCBzdHJpbmcuCisJCSAqLworCQloZWFwX2ZyZWV0 dXBsZShwZW5kaW5nX2NvbmZsaWN0X2xvZy50dXBsZSk7CisJCXBlbmRpbmdfY29uZmxpY3RfbG9n LnR1cGxlID0gTlVMTDsKKwkJaWYgKHBlbmRpbmdfY29uZmxpY3RfbG9nLmVycmNvbnRleHRfc3Ry KQorCQl7CisJCQlwZnJlZShwZW5kaW5nX2NvbmZsaWN0X2xvZy5lcnJjb250ZXh0X3N0cik7CisJ CQlwZW5kaW5nX2NvbmZsaWN0X2xvZy5lcnJjb250ZXh0X3N0ciA9IE5VTEw7CisJCX0KKwl9CisK KwlQb3BBY3RpdmVTbmFwc2hvdCgpOworCUNvbW1pdFRyYW5zYWN0aW9uQ29tbWFuZCgpOwogfQog CiAvKgpAQCAtMzM1LDYgKzU4MiwxMDAgQEAgSW5pdENvbmZsaWN0SW5kZXhlcyhSZXN1bHRSZWxJ bmZvICpyZWxJbmZvKQogCXJlbEluZm8tPnJpX29uQ29uZmxpY3RBcmJpdGVySW5kZXhlcyA9IHVu aXF1ZUluZGV4ZXM7CiB9CiAKKy8qCisgKiBHZXRDb25mbGljdExvZ0Rlc3RBbmRUYWJsZQorICoK KyAqIEZldGNoZXMgY29uZmxpY3QgbG9nZ2luZyBtZXRhZGF0YSBmcm9tIHRoZSBjYWNoZWQgTXlT dWJzY3JpcHRpb24gcG9pbnRlci4KKyAqIFNldHMgdGhlIGRlc3RpbmF0aW9uIGVudW0gaW4gKmxv Z19kZXN0IGFuZCwgaWYgYSB0YWJsZSBpcyBvbmUgb2YgdGhlCisgKiBkZXN0aW5hdGlvbnMsIG9w ZW5zIGFuZCByZXR1cm5zIHRoZSByZWxhdGlvbiBoYW5kbGUgZm9yIHRoZSBjb25mbGljdCBsb2cK KyAqIHRhYmxlLgorICoKKyAqIFRoZSB0YWJsZSBpcyBvcGVuZWQgd2l0aCB0cnlfdGFibGVfb3Bl bigpLCBzbyBOVUxMIGlzIHJldHVybmVkIGlmIHRoZQorICogY29uZmxpY3QgbG9nIHRhYmxlIGhh cyBiZWVuIGRyb3BwZWQgY29uY3VycmVudGx5IChlLmcuIGJ5IGFuIEFMVEVSCisgKiBTVUJTQ1JJ UFRJT04gdGhhdCBjaGFuZ2VkIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbikuICBDYWxsZXJzIG11 c3QgdHJlYXQgYQorICogTlVMTCByZXN1bHQgZm9yIGEgdGFibGUgZGVzdGluYXRpb24gYXMgInRh YmxlIHVuYXZhaWxhYmxlIiBhbmQgZmFsbCBiYWNrIHRvCisgKiBzZXJ2ZXItbG9nIHJlcG9ydGlu ZyByYXRoZXIgdGhhbiBmYWlsaW5nLgorICovCitSZWxhdGlvbgorR2V0Q29uZmxpY3RMb2dEZXN0 QW5kVGFibGUoQ29uZmxpY3RMb2dEZXN0ICpsb2dfZGVzdCkKK3sKKwlPaWQJCQljb25mbGljdGxv Z3JlbGlkOworCisJLyoKKwkgKiBDb252ZXJ0IHRoZSB0ZXh0IGxvZyBkZXN0aW5hdGlvbiB0byB0 aGUgaW50ZXJuYWwgZW51bS4gIE15U3Vic2NyaXB0aW9uCisJICogYWxyZWFkeSBjb250YWlucyB0 aGUgZGF0YSBmcm9tIHBnX3N1YnNjcmlwdGlvbi4KKwkgKi8KKwkqbG9nX2Rlc3QgPSBHZXRDb25m bGljdExvZ0Rlc3QoTXlTdWJzY3JpcHRpb24tPmNvbmZsaWN0bG9nZGVzdCk7CisKKwkvKiBRdWlj ayBleGl0IGlmIGEgY29uZmxpY3QgbG9nIHRhYmxlIHdhcyBub3QgcmVxdWVzdGVkLiAqLworCWlm ICghQ09ORkxJQ1RTX0xPR0dFRF9UT19UQUJMRSgqbG9nX2Rlc3QpKQorCQlyZXR1cm4gTlVMTDsK KworCWNvbmZsaWN0bG9ncmVsaWQgPSBNeVN1YnNjcmlwdGlvbi0+Y29uZmxpY3Rsb2dyZWxpZDsK KworCUFzc2VydChPaWRJc1ZhbGlkKGNvbmZsaWN0bG9ncmVsaWQpKTsKKworCS8qCisJICogVXNl IHRyeV90YWJsZV9vcGVuKCk6IHRoZSB0YWJsZSBtYXkgaGF2ZSBiZWVuIGRyb3BwZWQgY29uY3Vy cmVudGx5IGJ5IGFuCisJICogQUxURVIgU1VCU0NSSVBUSU9OIHRoYXQgY2hhbmdlZCBjb25mbGlj dF9sb2dfZGVzdGluYXRpb24uICBSZXR1cm5pbmcgTlVMTAorCSAqIGxldHMgdGhlIGNhbGxlciBm YWxsIGJhY2sgdG8gdGhlIHNlcnZlciBsb2cgaW5zdGVhZCBvZiBmYWlsaW5nLgorCSAqLworCXJl dHVybiB0cnlfdGFibGVfb3Blbihjb25mbGljdGxvZ3JlbGlkLCBSb3dFeGNsdXNpdmVMb2NrKTsK K30KKworLyoKKyAqIEVycm9yIGNvbnRleHQgY2FsbGJhY2sgZm9yIGZhaWx1cmVzIHdoaWxlIGlu c2VydGluZyBpbnRvIHRoZSBjb25mbGljdCBsb2cKKyAqIHRhYmxlLiAgQWRkcyBhIGxpbmUgaWRl bnRpZnlpbmcgdGhlIGNvbmZsaWN0IHRoYXQgd2FzIGJlaW5nIGxvZ2dlZC4KKyAqLworc3RhdGlj IHZvaWQKK2NvbmZsaWN0X2xvZ19pbnNlcnRfZXJyY29udGV4dCh2b2lkICphcmcpCit7CisJY2hh cgkgICAqY3R4ID0gKGNoYXIgKikgYXJnOworCisJaWYgKGN0eCkKKwkJZXJyY29udGV4dCgiJXMi LCBjdHgpOworfQorCisvKgorICogSW5zZXJ0Q29uZmxpY3RMb2dUdXBsZQorICoKKyAqIEluc2Vy dCBjb25mbGljdCBsb2cgdHVwbGUgaW50byB0aGUgY29uZmxpY3QgbG9nIHRhYmxlLiBJdCB1c2Vz CisgKiBIRUFQX0lOU0VSVF9OT19MT0dJQ0FMIHRvIGV4cGxpY2l0bHkgYmxvY2sgbG9naWNhbCBk ZWNvZGluZyBvZiB0aGUgdHVwbGUKKyAqIGluc2VydGVkIGludG8gdGhlIGNvbmZsaWN0IGxvZyB0 YWJsZS4KKyAqLwordm9pZAorSW5zZXJ0Q29uZmxpY3RMb2dUdXBsZShSZWxhdGlvbiBjb25mbGlj dGxvZ3JlbCkKK3sKKwlFcnJvckNvbnRleHRDYWxsYmFjayBlcnJjYWxsYmFjazsKKworCS8qIEEg dmFsaWQgdHVwbGUgbXVzdCBiZSBwcmVwYXJlZCBhbmQgc3RvcmVkIGluIE15TG9naWNhbFJlcFdv cmtlci4gKi8KKwlBc3NlcnQocGVuZGluZ19jb25mbGljdF9sb2cudHVwbGUgIT0gTlVMTCk7CisK KwkvKgorCSAqIFNldCB1cCBhbiBlcnJvciBjb250ZXh0IHNvIHRoYXQgYSBmYWlsdXJlIHRvIGlu c2VydCAoZS5nLiB0aGUgY29uZmxpY3QKKwkgKiBsb2cgdGFibGUgd2FzIGRyb3BwZWQsIG9yIGFu IG91dC1vZi1zcGFjZSBlcnJvcikgY2FycmllcyBpbmZvcm1hdGlvbgorCSAqIGlkZW50aWZ5aW5n IHRoZSBjb25mbGljdCB3ZSB3ZXJlIHRyeWluZyB0byBsb2cuCisJICovCisJZXJyY2FsbGJhY2su Y2FsbGJhY2sgPSBjb25mbGljdF9sb2dfaW5zZXJ0X2VycmNvbnRleHQ7CisJZXJyY2FsbGJhY2su YXJnID0gcGVuZGluZ19jb25mbGljdF9sb2cuZXJyY29udGV4dF9zdHI7CisJZXJyY2FsbGJhY2su cHJldmlvdXMgPSBlcnJvcl9jb250ZXh0X3N0YWNrOworCWVycm9yX2NvbnRleHRfc3RhY2sgPSAm ZXJyY2FsbGJhY2s7CisKKwloZWFwX2luc2VydChjb25mbGljdGxvZ3JlbCwgcGVuZGluZ19jb25m bGljdF9sb2cudHVwbGUsCisJCQkJR2V0Q3VycmVudENvbW1hbmRJZCh0cnVlKSwgSEVBUF9JTlNF UlRfTk9fTE9HSUNBTCwgTlVMTCk7CisKKwllcnJvcl9jb250ZXh0X3N0YWNrID0gZXJyY2FsbGJh Y2sucHJldmlvdXM7CisKKwkvKiBGcmVlIHRoZSBjb25mbGljdCBsb2cgdHVwbGUgYW5kIGl0cyBj b250ZXh0IHN0cmluZy4gKi8KKwloZWFwX2ZyZWV0dXBsZShwZW5kaW5nX2NvbmZsaWN0X2xvZy50 dXBsZSk7CisJcGVuZGluZ19jb25mbGljdF9sb2cudHVwbGUgPSBOVUxMOworCWlmIChwZW5kaW5n X2NvbmZsaWN0X2xvZy5lcnJjb250ZXh0X3N0cikKKwl7CisJCXBmcmVlKHBlbmRpbmdfY29uZmxp Y3RfbG9nLmVycmNvbnRleHRfc3RyKTsKKwkJcGVuZGluZ19jb25mbGljdF9sb2cuZXJyY29udGV4 dF9zdHIgPSBOVUxMOworCX0KK30KKwogLyoKICAqIEFkZCBTUUxTVEFURSBlcnJvciBjb2RlIHRv IHRoZSBjdXJyZW50IGNvbmZsaWN0IHJlcG9ydC4KICAqLwpAQCAtNzY4LDYgKzExMDksNDAgQEAg Z2V0X3R1cGxlX2Rlc2MoRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlbGluZm8sIENv bmZsaWN0VHlwZSB0eXBlLAogCX0KIH0KIAorLyoKKyAqIEhlbHBlciBmdW5jdGlvbiB0byBleHRy YWN0IHRoZSAicmF3IiBpbmRleCBrZXkgRGF0dW1zIGFuZCB0aGVpciBudWxsIGZsYWdzCisgKiBm cm9tIGEgVHVwbGVUYWJsZVNsb3QsIGdpdmVuIGFuIGFscmVhZHkgb3BlbiBpbmRleCBkZXNjcmlw dG9yLgorICogVGhpcyBpcyB0aGUgcmV1c2FibGUgY29yZSBsb2dpYy4KKyAqLworc3RhdGljIHZv aWQKK2J1aWxkX2luZGV4X2RhdHVtc19mcm9tX3Nsb3QoRVN0YXRlICplc3RhdGUsIFJlbGF0aW9u IGxvY2FscmVsLAorCQkJCQkJCSBUdXBsZVRhYmxlU2xvdCAqc2xvdCwKKwkJCQkJCQkgUmVsYXRp b24gaW5kZXhEZXNjLCBEYXR1bSAqdmFsdWVzLAorCQkJCQkJCSBib29sICppc251bGwpCit7CisJ VHVwbGVUYWJsZVNsb3QgKnRhYmxlc2xvdCA9IHNsb3Q7CisKKwkvKgorCSAqIElmIHRoZSBzbG90 IGlzIGEgdmlydHVhbCBzbG90LCBjb3B5IGl0IGludG8gYSBoZWFwIHR1cGxlIHNsb3QgYXMKKwkg KiBGb3JtSW5kZXhEYXR1bSBvbmx5IHdvcmtzIHdpdGggaGVhcCB0dXBsZSBzbG90cy4KKwkgKi8K KwlpZiAoVFRTX0lTX1ZJUlRVQUwoc2xvdCkpCisJeworCQkvKiBTbG90IGlzIGNyZWF0ZWQgd2l0 aGluIHRoZSBFU3RhdGUncyB0dXBsZSB0YWJsZSAqLworCQl0YWJsZXNsb3QgPSB0YWJsZV9zbG90 X2NyZWF0ZShsb2NhbHJlbCwgJmVzdGF0ZS0+ZXNfdHVwbGVUYWJsZSk7CisJCXRhYmxlc2xvdCA9 IEV4ZWNDb3B5U2xvdCh0YWJsZXNsb3QsIHNsb3QpOworCX0KKworCS8qCisJICogSW5pdGlhbGl6 ZSBlY3h0X3NjYW50dXBsZSBmb3IgcG90ZW50aWFsIHVzZSBpbiBGb3JtSW5kZXhEYXR1bQorCSAq LworCUdldFBlclR1cGxlRXhwckNvbnRleHQoZXN0YXRlKS0+ZWN4dF9zY2FudHVwbGUgPSB0YWJs ZXNsb3Q7CisKKwkvKiBGb3JtIHRoZSBpbmRleCBkYXR1bXMgKi8KKwlGb3JtSW5kZXhEYXR1bShC dWlsZEluZGV4SW5mbyhpbmRleERlc2MpLCB0YWJsZXNsb3QsIGVzdGF0ZSwgdmFsdWVzLAorCQkJ CSAgIGlzbnVsbCk7Cit9CisKIC8qCiAgKiBIZWxwZXIgZnVuY3Rpb25zIHRvIGNvbnN0cnVjdCBh IHN0cmluZyBkZXNjcmliaW5nIHRoZSBjb250ZW50cyBvZiBhbiBpbmRleAogICogZW50cnkuIFNl ZSBCdWlsZEluZGV4VmFsdWVEZXNjcmlwdGlvbiBmb3IgZGV0YWlscy4KQEAgLTc4Myw0MSArMTE1 OCwzNTggQEAgYnVpbGRfaW5kZXhfdmFsdWVfZGVzYyhFU3RhdGUgKmVzdGF0ZSwgUmVsYXRpb24g bG9jYWxyZWwsIFR1cGxlVGFibGVTbG90ICpzbG90LAogCVJlbGF0aW9uCWluZGV4RGVzYzsKIAlE YXR1bQkJdmFsdWVzW0lOREVYX01BWF9LRVlTXTsKIAlib29sCQlpc251bGxbSU5ERVhfTUFYX0tF WVNdOwotCVR1cGxlVGFibGVTbG90ICp0YWJsZXNsb3QgPSBzbG90OwogCi0JaWYgKCF0YWJsZXNs b3QpCisJaWYgKCFzbG90KQogCQlyZXR1cm4gTlVMTDsKIAogCUFzc2VydChDaGVja1JlbGF0aW9u T2lkTG9ja2VkQnlNZShpbmRleG9pZCwgUm93RXhjbHVzaXZlTG9jaywgdHJ1ZSkpOwogCiAJaW5k ZXhEZXNjID0gaW5kZXhfb3BlbihpbmRleG9pZCwgTm9Mb2NrKTsKIAotCS8qCi0JICogSWYgdGhl IHNsb3QgaXMgYSB2aXJ0dWFsIHNsb3QsIGNvcHkgaXQgaW50byBhIGhlYXAgdHVwbGUgc2xvdCBh cwotCSAqIEZvcm1JbmRleERhdHVtIG9ubHkgd29ya3Mgd2l0aCBoZWFwIHR1cGxlIHNsb3RzLgot CSAqLwotCWlmIChUVFNfSVNfVklSVFVBTChzbG90KSkKKwlidWlsZF9pbmRleF9kYXR1bXNfZnJv bV9zbG90KGVzdGF0ZSwgbG9jYWxyZWwsIHNsb3QsIGluZGV4RGVzYywgdmFsdWVzLAorCQkJCQkJ CQkgaXNudWxsKTsKKworCWluZGV4X3ZhbHVlID0gQnVpbGRJbmRleFZhbHVlRGVzY3JpcHRpb24o aW5kZXhEZXNjLCB2YWx1ZXMsIGlzbnVsbCk7CisKKwlpbmRleF9jbG9zZShpbmRleERlc2MsIE5v TG9jayk7CisKKwlyZXR1cm4gaW5kZXhfdmFsdWU7Cit9CisKKy8qCisgKiB0dXBsZV90YWJsZV9z bG90X3RvX2pzb25fZGF0dW0KKyAqCisgKiBIZWxwZXIgZnVuY3Rpb24gdG8gY29udmVydCBhIFR1 cGxlVGFibGVTbG90IHRvIEpTT04uCisgKi8KK3N0YXRpYyBEYXR1bQordHVwbGVfdGFibGVfc2xv dF90b19qc29uX2RhdHVtKFR1cGxlVGFibGVTbG90ICpzbG90KQoreworCUhlYXBUdXBsZQl0dXBs ZTsKKwlEYXR1bQkJZGF0dW07CisJRGF0dW0JCWpzb247CisKKwlBc3NlcnQoc2xvdCAhPSBOVUxM KTsKKworCXR1cGxlID0gRXhlY0NvcHlTbG90SGVhcFR1cGxlKHNsb3QpOworCWRhdHVtID0gaGVh cF9jb3B5X3R1cGxlX2FzX2RhdHVtKHR1cGxlLCBzbG90LT50dHNfdHVwbGVEZXNjcmlwdG9yKTsK KworCWpzb24gPSBEaXJlY3RGdW5jdGlvbkNhbGwxKHJvd190b19qc29uLCBkYXR1bSk7CisJaGVh cF9mcmVldHVwbGUodHVwbGUpOworCisJcmV0dXJuIGpzb247Cit9CisKKy8qCisgKiB0dXBsZV90 YWJsZV9zbG90X3RvX2luZGV4dHVwX2pzb24KKyAqCisgKiBGZXRjaCByZXBsaWNhIGlkZW50aXR5 IGtleSBmcm9tIHRoZSB0dXBsZSB0YWJsZSBzbG90IGFuZCBjb252ZXJ0IGludG8gYQorICogSlNP TiBkYXR1bS4KKyAqLworc3RhdGljIERhdHVtCit0dXBsZV90YWJsZV9zbG90X3RvX2luZGV4dHVw X2pzb24oRVN0YXRlICplc3RhdGUsIFJlbGF0aW9uIGxvY2FscmVsLAorCQkJCQkJCQkgIE9pZCBp bmRleGlkLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCkKK3sKKwlSZWxhdGlvbglpbmRleERlc2M7CisJ RGF0dW0JCXZhbHVlc1tJTkRFWF9NQVhfS0VZU107CisJYm9vbAkJaXNudWxsW0lOREVYX01BWF9L RVlTXTsKKwlIZWFwVHVwbGUJdHVwbGU7CisJVHVwbGVEZXNjCXR1cGRlc2M7CisJRGF0dW0JCWRh dHVtOworCisJQXNzZXJ0KHNsb3QgIT0gTlVMTCk7CisKKwlBc3NlcnQoQ2hlY2tSZWxhdGlvbk9p ZExvY2tlZEJ5TWUoaW5kZXhpZCwgUm93RXhjbHVzaXZlTG9jaywgdHJ1ZSkpOworCisJaW5kZXhE ZXNjID0gaW5kZXhfb3BlbihpbmRleGlkLCBOb0xvY2spOworCisJYnVpbGRfaW5kZXhfZGF0dW1z X2Zyb21fc2xvdChlc3RhdGUsIGxvY2FscmVsLCBzbG90LCBpbmRleERlc2MsIHZhbHVlcywKKwkJ CQkJCQkJIGlzbnVsbCk7CisJdHVwZGVzYyA9IENyZWF0ZVR1cGxlRGVzY0NvcHkoUmVsYXRpb25H ZXREZXNjcihpbmRleERlc2MpKTsKKworCS8qIEJsZXNzIHRoZSB0dXBkZXNjIHNvIGl0IGNhbiBi ZSBsb29rZWQgdXAgYnkgcm93X3RvX2pzb24uICovCisJQmxlc3NUdXBsZURlc2ModHVwZGVzYyk7 CisKKwkvKiBGb3JtIHRoZSByZXBsaWNhIGlkZW50aXR5IHR1cGxlLiAqLworCXR1cGxlID0gaGVh cF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVlcywgaXNudWxsKTsKKwlkYXR1bSA9IGhlYXBfY29w eV90dXBsZV9hc19kYXR1bSh0dXBsZSwgdHVwZGVzYyk7CisKKwloZWFwX2ZyZWV0dXBsZSh0dXBs ZSk7CisJRnJlZVR1cGxlRGVzYyh0dXBkZXNjKTsKKwlpbmRleF9jbG9zZShpbmRleERlc2MsIE5v TG9jayk7CisKKwkvKiBDb252ZXJ0IHRvIGEgSlNPTiBkYXR1bS4gKi8KKwlyZXR1cm4gRGlyZWN0 RnVuY3Rpb25DYWxsMShyb3dfdG9fanNvbiwgZGF0dW0pOworfQorCisvKgorICogYnVpbGRfY29u ZmxpY3RfdHVwbGVkZXNjCisgKgorICogQnVpbGQgYW5kIGJsZXNzIGEgdHVwbGUgZGVzY3JpcHRv ciBmb3IgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSBiYXNlZCBvbiB0aGUKKyAqIHByZWRlZmluZWQg TG9jYWxDb25mbGljdFNjaGVtYS4KKyAqLworc3RhdGljIFR1cGxlRGVzYworYnVpbGRfY29uZmxp Y3RfdHVwbGVkZXNjKHZvaWQpCit7CisJc3RhdGljIFR1cGxlRGVzYyBjYWNoZWRfdHVwZGVzYyA9 IE5VTEw7CisKKwlpZiAoY2FjaGVkX3R1cGRlc2MgPT0gTlVMTCkKIAl7Ci0JCXRhYmxlc2xvdCA9 IHRhYmxlX3Nsb3RfY3JlYXRlKGxvY2FscmVsLCAmZXN0YXRlLT5lc190dXBsZVRhYmxlKTsKLQkJ dGFibGVzbG90ID0gRXhlY0NvcHlTbG90KHRhYmxlc2xvdCwgc2xvdCk7CisJCU1lbW9yeUNvbnRl eHQgb2xkY3h0OworCisJCW9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhDYWNoZU1lbW9y eUNvbnRleHQpOworCisJCWNhY2hlZF90dXBkZXNjID0gQ3JlYXRlVGVtcGxhdGVUdXBsZURlc2Mo TlVNX0xPQ0FMX0NPTkZMSUNUX0FUVFJTKTsKKworCQlmb3IgKGludCBpID0gMDsgaSA8IE5VTV9M T0NBTF9DT05GTElDVF9BVFRSUzsgaSsrKQorCQkJVHVwbGVEZXNjSW5pdEVudHJ5KGNhY2hlZF90 dXBkZXNjLAorCQkJCQkJCSAgIChBdHRyTnVtYmVyKSAoaSArIDEpLAorCQkJCQkJCSAgIExvY2Fs Q29uZmxpY3RTY2hlbWFbaV0uYXR0bmFtZSwKKwkJCQkJCQkgICBMb2NhbENvbmZsaWN0U2NoZW1h W2ldLmF0dHR5cGlkLAorCQkJCQkJCSAgIC0xLCAwKTsKKworCQlUdXBsZURlc2NGaW5hbGl6ZShj YWNoZWRfdHVwZGVzYyk7CisKKwkJLyoKKwkJICogQmxlc3Mgb25jZSBzbyBpdCBjYW4gYmUgdXNl ZCBhcyBhIFJFQ09SRCB0eXBlIChlLmcuIGZvcgorCQkgKiByb3dfdG9fanNvbiBvciBvdGhlciBy ZWNvcmQtYmFzZWQgb3BlcmF0aW9ucykuCisJCSAqLworCQlCbGVzc1R1cGxlRGVzYyhjYWNoZWRf dHVwZGVzYyk7CisKKwkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4dCk7CiAJfQogCi0JLyoK LQkgKiBJbml0aWFsaXplIGVjeHRfc2NhbnR1cGxlIGZvciBwb3RlbnRpYWwgdXNlIGluIEZvcm1J bmRleERhdHVtIHdoZW4KLQkgKiBpbmRleCBleHByZXNzaW9ucyBhcmUgcHJlc2VudC4KLQkgKi8K LQlHZXRQZXJUdXBsZUV4cHJDb250ZXh0KGVzdGF0ZSktPmVjeHRfc2NhbnR1cGxlID0gdGFibGVz bG90OworCXJldHVybiBjYWNoZWRfdHVwZGVzYzsKK30KIAotCS8qCi0JICogVGhlIHZhbHVlcy9u dWxscyBhcnJheXMgcGFzc2VkIHRvIEJ1aWxkSW5kZXhWYWx1ZURlc2NyaXB0aW9uIHNob3VsZCBi ZQotCSAqIHRoZSByZXN1bHRzIG9mIEZvcm1JbmRleERhdHVtLCB3aGljaCBhcmUgdGhlICJyYXci IGlucHV0IHRvIHRoZSBpbmRleAotCSAqIEFNLgotCSAqLwotCUZvcm1JbmRleERhdHVtKEJ1aWxk SW5kZXhJbmZvKGluZGV4RGVzYyksIHRhYmxlc2xvdCwgZXN0YXRlLCB2YWx1ZXMsIGlzbnVsbCk7 CisvKgorICogQnVpbGRzIHRoZSBsb2NhbCBjb25mbGljdHMgSlNPTiBhcnJheSBjb2x1bW4gZnJv bSB0aGUgbGlzdCBvZgorICogQ29uZmxpY3RUdXBsZUluZm8gb2JqZWN0cy4KKyAqCisgKiBFeGFt cGxlIG91dHB1dCBzdHJ1Y3R1cmU6CisgKiBbIHsgInhpZCI6ICIxMDAxIiwgImNvbW1pdF90cyI6 ICIuLi4iLCAib3JpZ2luIjogIi4uLiIsICJ0dXBsZSI6IHsuLi59IH0sIC4uLiBdCisgKi8KK3N0 YXRpYyBEYXR1bQorYnVpbGRfbG9jYWxfY29uZmxpY3RzX2pzb25fYXJyYXkoRVN0YXRlICplc3Rh dGUsIFJlbGF0aW9uIHJlbCwKKwkJCQkJCQkJIENvbmZsaWN0VHlwZSBjb25mbGljdF90eXBlLAor CQkJCQkJCQkgTGlzdCAqY29uZmxpY3R0dXBsZXMpCit7CisJTGlzdENlbGwgICAqbGM7CisJTGlz dAkgICAqanNvbl9kYXR1bXMgPSBOSUw7CisJRGF0dW0JICAgKmpzb25fZGF0dW1fYXJyYXk7CisJ RGF0dW0JCWpzb25fYXJyYXlfZGF0dW07CisJaW50CQkJbnVtX2NvbmZsaWN0czsKKwlpbnQJCQlp OworCWludDE2CQl0eXBsZW47CisJYm9vbAkJdHlwYnl2YWw7CisJY2hhcgkJdHlwYWxpZ247CisJ VHVwbGVEZXNjCXR1cGRlc2M7CiAKLQlpbmRleF92YWx1ZSA9IEJ1aWxkSW5kZXhWYWx1ZURlc2Ny aXB0aW9uKGluZGV4RGVzYywgdmFsdWVzLCBpc251bGwpOworCS8qIEJ1aWxkIGxvY2FsIGNvbmZs aWN0cyB0dXBsZSBkZXNjcmlwdG9yLiAqLworCXR1cGRlc2MgPSBidWlsZF9jb25mbGljdF90dXBs ZWRlc2MoKTsKIAotCWluZGV4X2Nsb3NlKGluZGV4RGVzYywgTm9Mb2NrKTsKKwkvKiBQcm9jZXNz IGxvY2FsIGNvbmZsaWN0IHR1cGxlIGxpc3QgYW5kIHByZXBhcmUgYW4gYXJyYXkgb2YgSlNPTi4g Ki8KKwlmb3JlYWNoX3B0cihDb25mbGljdFR1cGxlSW5mbywgY29uZmxpY3R0dXBsZSwgY29uZmxp Y3R0dXBsZXMpCisJeworCQlEYXR1bQkJdmFsdWVzW05VTV9MT0NBTF9DT05GTElDVF9BVFRSU10g PSB7MH07CisJCWJvb2wJCW51bGxzW05VTV9MT0NBTF9DT05GTElDVF9BVFRSU10gPSB7MH07CisJ CWNoYXIJICAgKm9yaWdpbl9uYW1lID0gTlVMTDsKKwkJSGVhcFR1cGxlCXR1cGxlOworCQlEYXR1 bQkJanNvbl9kYXR1bTsKKwkJaW50CQkJYXR0bm87CisKKwkJYXR0bm8gPSAwOworCQl2YWx1ZXNb YXR0bm8rK10gPSBUcmFuc2FjdGlvbklkR2V0RGF0dW0oY29uZmxpY3R0dXBsZS0+eG1pbik7CisK KwkJaWYgKGNvbmZsaWN0dHVwbGUtPnRzKQorCQkJdmFsdWVzW2F0dG5vKytdID0gVGltZXN0YW1w VHpHZXREYXR1bShjb25mbGljdHR1cGxlLT50cyk7CisJCWVsc2UKKwkJCW51bGxzW2F0dG5vKytd ID0gdHJ1ZTsKIAotCXJldHVybiBpbmRleF92YWx1ZTsKKwkJaWYgKGNvbmZsaWN0dHVwbGUtPm9y aWdpbiAhPSBJbnZhbGlkUmVwbE9yaWdpbklkKQorCQkJcmVwbG9yaWdpbl9ieV9vaWQoY29uZmxp Y3R0dXBsZS0+b3JpZ2luLCB0cnVlLCAmb3JpZ2luX25hbWUpOworCisJCS8qIFN0b3JlIGVtcHR5 IHN0cmluZyBpZiBvcmlnaW4gbmFtZSBmb3IgdGhlIHR1cGxlIGlzIE5VTEwuICovCisJCWlmIChv cmlnaW5fbmFtZSAhPSBOVUxMKQorCQkJdmFsdWVzW2F0dG5vKytdID0gQ1N0cmluZ0dldFRleHRE YXR1bShvcmlnaW5fbmFtZSk7CisJCWVsc2UKKwkJCW51bGxzW2F0dG5vKytdID0gdHJ1ZTsKKwor CQkvKgorCQkgKiBBZGQgdGhlIGNvbmZsaWN0aW5nIGtleSB2YWx1ZXMgaW4gdGhlIGNhc2Ugb2Yg YSB1bmlxdWUgY29uc3RyYWludAorCQkgKiB2aW9sYXRpb24uCisJCSAqLworCQlpZiAoY29uZmxp Y3RfdHlwZSA9PSBDVF9JTlNFUlRfRVhJU1RTIHx8CisJCQljb25mbGljdF90eXBlID09IENUX1VQ REFURV9FWElTVFMgfHwKKwkJCWNvbmZsaWN0X3R5cGUgPT0gQ1RfTVVMVElQTEVfVU5JUVVFX0NP TkZMSUNUUykKKwkJeworCQkJT2lkCWluZGV4b2lkID0gY29uZmxpY3R0dXBsZS0+aW5kZXhvaWQ7 CisKKwkJCUFzc2VydChPaWRJc1ZhbGlkKGluZGV4b2lkKSAmJiBjb25mbGljdHR1cGxlLT5zbG90 ICYmCisJCQkJICAgQ2hlY2tSZWxhdGlvbk9pZExvY2tlZEJ5TWUoaW5kZXhvaWQsIFJvd0V4Y2x1 c2l2ZUxvY2ssCisJCQkJCQkJCQkJCSAgdHJ1ZSkpOworCQkJdmFsdWVzW2F0dG5vKytdID0KKwkJ CQkJdHVwbGVfdGFibGVfc2xvdF90b19pbmRleHR1cF9qc29uKGVzdGF0ZSwgcmVsLAorCQkJCQkJ CQkJCQkJCSAgaW5kZXhvaWQsCisJCQkJCQkJCQkJCQkJICBjb25mbGljdHR1cGxlLT5zbG90KTsK KwkJfQorCQllbHNlCisJCQludWxsc1thdHRubysrXSA9IHRydWU7CisKKwkJLyogQ29udmVydCBj b25mbGljdGluZyB0dXBsZSB0byBKU09OIGRhdHVtLiAqLworCQlpZiAoY29uZmxpY3R0dXBsZS0+ c2xvdCkKKwkJCXZhbHVlc1thdHRub10gPSB0dXBsZV90YWJsZV9zbG90X3RvX2pzb25fZGF0dW0o Y29uZmxpY3R0dXBsZS0+c2xvdCk7CisJCWVsc2UKKwkJCW51bGxzW2F0dG5vXSA9IHRydWU7CisK KwkJQXNzZXJ0KGF0dG5vICsgMSA9PSBOVU1fTE9DQUxfQ09ORkxJQ1RfQVRUUlMpOworCisJCXR1 cGxlID0gaGVhcF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVlcywgbnVsbHMpOworCisJCWpzb25f ZGF0dW0gPSBoZWFwX2NvcHlfdHVwbGVfYXNfZGF0dW0odHVwbGUsIHR1cGRlc2MpOworCisJCS8q CisJCSAqIEJ1aWxkIHRoZSBoaWdoZXIgbGV2ZWwgSlNPTiBkYXR1bSBpbiBmb3JtYXQgZGVzY3Jp YmVkIGluIGZ1bmN0aW9uCisJCSAqIGhlYWRlci4KKwkJICovCisJCWpzb25fZGF0dW0gPSBEaXJl Y3RGdW5jdGlvbkNhbGwxKHJvd190b19qc29uLCBqc29uX2RhdHVtKTsKKworCQkvKiBEb25lIHdp dGggdGhlIHRlbXBvcmFyeSB0dXBsZS4gKi8KKwkJaGVhcF9mcmVldHVwbGUodHVwbGUpOworCisJ CS8qIEFkZCB0byB0aGUgYXJyYXkgZWxlbWVudC4gKi8KKwkJanNvbl9kYXR1bXMgPSBsYXBwZW5k KGpzb25fZGF0dW1zLCAodm9pZCAqKSBqc29uX2RhdHVtKTsKKwl9CisKKwludW1fY29uZmxpY3Rz ID0gbGlzdF9sZW5ndGgoanNvbl9kYXR1bXMpOworCisJanNvbl9kYXR1bV9hcnJheSA9IHBhbGxv Y19hcnJheShEYXR1bSwgbnVtX2NvbmZsaWN0cyk7CisKKwlpID0gMDsKKwlmb3JlYWNoKGxjLCBq c29uX2RhdHVtcykKKwl7CisJCWpzb25fZGF0dW1fYXJyYXlbaV0gPSAoRGF0dW0pIGxmaXJzdChs Yyk7CisJCWkrKzsKKwl9CisKKwkvKiBDb25zdHJ1Y3QgdGhlIEpTT04gYXJyYXkgRGF0dW0uICov CisJZ2V0X3R5cGxlbmJ5dmFsYWxpZ24oSlNPTk9JRCwgJnR5cGxlbiwgJnR5cGJ5dmFsLCAmdHlw YWxpZ24pOworCWpzb25fYXJyYXlfZGF0dW0gPSBQb2ludGVyR2V0RGF0dW0oY29uc3RydWN0X2Fy cmF5KGpzb25fZGF0dW1fYXJyYXksCisJCQkJCQkJCQkJCQkJICAgbnVtX2NvbmZsaWN0cywKKwkJ CQkJCQkJCQkJCQkgICBKU09OT0lELAorCQkJCQkJCQkJCQkJCSAgIHR5cGxlbiwKKwkJCQkJCQkJ CQkJCQkgICB0eXBieXZhbCwKKwkJCQkJCQkJCQkJCQkgICB0eXBhbGlnbikpOworCXBmcmVlKGpz b25fZGF0dW1fYXJyYXkpOworCisJcmV0dXJuIGpzb25fYXJyYXlfZGF0dW07Cit9CisKKy8qCisg KiBwcmVwYXJlX2NvbmZsaWN0X2xvZ190dXBsZQorICoKKyAqIFRoaXMgcm91dGluZSBwcmVwYXJl cyBhIHR1cGxlIGRldGFpbGluZyBhIGNvbmZsaWN0IGVuY291bnRlcmVkIGR1cmluZworICogbG9n aWNhbCByZXBsaWNhdGlvbi4gVGhlIHByZXBhcmVkIHR1cGxlIHdpbGwgYmUgc3RvcmVkIGluCisg KiBwZW5kaW5nX2NvbmZsaWN0X2xvZy50dXBsZSB3aGljaCBzaG91bGQgYmUgaW5zZXJ0ZWQgaW50 byB0aGUKKyAqIGNvbmZsaWN0IGxvZyB0YWJsZSBieSBjYWxsaW5nIEluc2VydENvbmZsaWN0TG9n VHVwbGUuCisgKi8KK3N0YXRpYyB2b2lkCitwcmVwYXJlX2NvbmZsaWN0X2xvZ190dXBsZShFU3Rh dGUgKmVzdGF0ZSwgUmVsYXRpb24gcmVsLAorCQkJCQkJICAgUmVsYXRpb24gY29uZmxpY3Rsb2dy ZWwsCisJCQkJCQkgICBDb25mbGljdFR5cGUgY29uZmxpY3RfdHlwZSwKKwkJCQkJCSAgIFR1cGxl VGFibGVTbG90ICpzZWFyY2hzbG90LAorCQkJCQkJICAgTGlzdCAqY29uZmxpY3R0dXBsZXMsCisJ CQkJCQkgICBUdXBsZVRhYmxlU2xvdCAqcmVtb3Rlc2xvdCkKK3sKKwlEYXR1bQkJdmFsdWVzW05V TV9DT05GTElDVF9BVFRSU10gPSB7MH07CisJYm9vbAkJbnVsbHNbTlVNX0NPTkZMSUNUX0FUVFJT XSA9IHswfTsKKwlpbnQJCQlhdHRubzsKKwljaGFyCSAgICpyZW1vdGVfb3JpZ2luID0gTlVMTDsK KwlNZW1vcnlDb250ZXh0CW9sZGN0eDsKKworCUFzc2VydChwZW5kaW5nX2NvbmZsaWN0X2xvZy50 dXBsZSA9PSBOVUxMKTsKKworCS8qIFBvcHVsYXRlIHRoZSB2YWx1ZXMgYW5kIG51bGxzIGFycmF5 cy4gKi8KKwlhdHRubyA9IDA7CisJdmFsdWVzW2F0dG5vKytdID0gT2JqZWN0SWRHZXREYXR1bShS ZWxhdGlvbkdldFJlbGlkKHJlbCkpOworCisJdmFsdWVzW2F0dG5vKytdID0KKwkJCUNTdHJpbmdH ZXRUZXh0RGF0dW0oZ2V0X25hbWVzcGFjZV9uYW1lKFJlbGF0aW9uR2V0TmFtZXNwYWNlKHJlbCkp KTsKKworCXZhbHVlc1thdHRubysrXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oUmVsYXRpb25HZXRS ZWxhdGlvbk5hbWUocmVsKSk7CisKKwl2YWx1ZXNbYXR0bm8rK10gPSBDU3RyaW5nR2V0VGV4dERh dHVtKENvbmZsaWN0VHlwZU5hbWVzW2NvbmZsaWN0X3R5cGVdKTsKKworCWlmIChUcmFuc2FjdGlv bklkSXNWYWxpZChyZW1vdGVfeGlkKSkKKwkJdmFsdWVzW2F0dG5vKytdID0gVHJhbnNhY3Rpb25J ZEdldERhdHVtKHJlbW90ZV94aWQpOworCWVsc2UKKwkJbnVsbHNbYXR0bm8rK10gPSB0cnVlOwor CisJdmFsdWVzW2F0dG5vKytdID0gTFNOR2V0RGF0dW0ocmVtb3RlX2ZpbmFsX2xzbik7CisKKwlp ZiAocmVtb3RlX2NvbW1pdF90cyA+IDApCisJCXZhbHVlc1thdHRubysrXSA9IFRpbWVzdGFtcFR6 R2V0RGF0dW0ocmVtb3RlX2NvbW1pdF90cyk7CisJZWxzZQorCQludWxsc1thdHRubysrXSA9IHRy dWU7CisKKwlpZiAocmVwbG9yaWdpbl94YWN0X3N0YXRlLm9yaWdpbiAhPSBJbnZhbGlkUmVwbE9y aWdpbklkKQorCQlyZXBsb3JpZ2luX2J5X29pZChyZXBsb3JpZ2luX3hhY3Rfc3RhdGUub3JpZ2lu LCB0cnVlLCAmcmVtb3RlX29yaWdpbik7CisKKwlpZiAocmVtb3RlX29yaWdpbiAhPSBOVUxMKQor CQl2YWx1ZXNbYXR0bm8rK10gPSBDU3RyaW5nR2V0VGV4dERhdHVtKHJlbW90ZV9vcmlnaW4pOwor CWVsc2UKKwkJbnVsbHNbYXR0bm8rK10gPSB0cnVlOworCisJaWYgKCFUdXBJc051bGwoc2VhcmNo c2xvdCkpCisJeworCQlPaWQJCXJlcGxpY2FfaW5kZXggPSBHZXRSZWxhdGlvbklkZW50aXR5T3JQ SyhyZWwpOworCisJCS8qCisJCSAqIElmIHRoZSB0YWJsZSBoYXMgYSB2YWxpZCByZXBsaWNhIGlk ZW50aXR5IGluZGV4LCBidWlsZCB0aGUgaW5kZXgKKwkJICogSlNPTiBkYXR1bSBmcm9tIGtleSB2 YWx1ZS4gT3RoZXJ3aXNlLCBjb25zdHJ1Y3QgaXQgZnJvbSB0aGUgY29tcGxldGUKKwkJICogdHVw bGUgaW4gUkVQTElDQSBJREVOVElUWSBGVUxMIGNhc2VzLgorCQkgKi8KKwkJaWYgKE9pZElzVmFs aWQocmVwbGljYV9pbmRleCkpCisJCXsKKwkJCXZhbHVlc1thdHRubysrXSA9IEJvb2xHZXREYXR1 bShmYWxzZSk7CisJCQl2YWx1ZXNbYXR0bm8rK10gPSB0dXBsZV90YWJsZV9zbG90X3RvX2luZGV4 dHVwX2pzb24oZXN0YXRlLCByZWwsCisJCQkJCQkJCQkJCQkJCQkJcmVwbGljYV9pbmRleCwKKwkJ CQkJCQkJCQkJCQkJCQlzZWFyY2hzbG90KTsKKwkJfQorCQllbHNlCisJCXsKKwkJCXZhbHVlc1th dHRubysrXSA9IEJvb2xHZXREYXR1bSh0cnVlKTsKKwkJCXZhbHVlc1thdHRubysrXSA9IHR1cGxl X3RhYmxlX3Nsb3RfdG9fanNvbl9kYXR1bShzZWFyY2hzbG90KTsKKwkJfQorCX0KKwllbHNlCisJ eworCQludWxsc1thdHRubysrXSA9IHRydWU7CisJCW51bGxzW2F0dG5vKytdID0gdHJ1ZTsKKwl9 CisKKwlpZiAoIVR1cElzTnVsbChyZW1vdGVzbG90KSkKKwkJdmFsdWVzW2F0dG5vKytdID0gdHVw bGVfdGFibGVfc2xvdF90b19qc29uX2RhdHVtKHJlbW90ZXNsb3QpOworCWVsc2UKKwkJbnVsbHNb YXR0bm8rK10gPSB0cnVlOworCisJdmFsdWVzW2F0dG5vXSA9IGJ1aWxkX2xvY2FsX2NvbmZsaWN0 c19qc29uX2FycmF5KGVzdGF0ZSwgcmVsLAorCQkJCQkJCQkJCQkJCSBjb25mbGljdF90eXBlLAor CQkJCQkJCQkJCQkJCSBjb25mbGljdHR1cGxlcyk7CisKKwlBc3NlcnQoYXR0bm8gKyAxID09IE5V TV9DT05GTElDVF9BVFRSUyk7CisKKwlvbGRjdHggPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oQXBw bHlDb250ZXh0KTsKKwlwZW5kaW5nX2NvbmZsaWN0X2xvZy50dXBsZSA9CisJCWhlYXBfZm9ybV90 dXBsZShSZWxhdGlvbkdldERlc2NyKGNvbmZsaWN0bG9ncmVsKSwgdmFsdWVzLCBudWxscyk7CisK KwkvKgorCSAqIFN0YXNoIGEgY29udGV4dCBzdHJpbmcgZGVzY3JpYmluZyB0aGlzIGNvbmZsaWN0 LCBzbyB0aGF0IGlmIGluc2VydGluZworCSAqIHRoZSB0dXBsZSBpbnRvIHRoZSBjb25mbGljdCBs b2cgdGFibGUgZmFpbHMsIHRoZSByZXN1bHRpbmcgZXJyb3IgY2FycmllcworCSAqIGVub3VnaCBj b250ZXh0IHRvIGlkZW50aWZ5IHRoZSBjb25mbGljdCAoc2VlIEluc2VydENvbmZsaWN0TG9nVHVw bGUpLgorCSAqLworCXBlbmRpbmdfY29uZmxpY3RfbG9nLmVycmNvbnRleHRfc3RyID0KKwkJcHNw cmludGYoIndoaWxlIGxvZ2dpbmcgY29uZmxpY3QgXCIlc1wiIGRldGVjdGVkIG9uIHJlbGF0aW9u IFwiJXNcIiIsCisJCQkJIENvbmZsaWN0VHlwZU5hbWVzW2NvbmZsaWN0X3R5cGVdLAorCQkJCSBS ZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKTsKKwlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xk Y3R4KTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29y a2VyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCmluZGV4IDc3 OTkyNjZjNjE0Li5jMzRhMjMzNmM1NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC93b3JrZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L3dvcmtlci5jCkBAIC00ODcsNyArNDg3LDkgQEAgc3RhdGljIGJvb2wgTXlTdWJzY3JpcHRpb25W YWxpZCA9IGZhbHNlOwogc3RhdGljIExpc3QgKm9uX2NvbW1pdF93YWtldXBfd29ya2Vyc19zdWJp ZHMgPSBOSUw7CiAKIGJvb2wJCWluX3JlbW90ZV90cmFuc2FjdGlvbiA9IGZhbHNlOwotc3RhdGlj IFhMb2dSZWNQdHIgcmVtb3RlX2ZpbmFsX2xzbiA9IEludmFsaWRYTG9nUmVjUHRyOworWExvZ1Jl Y1B0ciByZW1vdGVfZmluYWxfbHNuID0gSW52YWxpZFhMb2dSZWNQdHI7CitUcmFuc2FjdGlvbklk CXJlbW90ZV94aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKK1RpbWVzdGFtcFR6CXJlbW90ZV9j b21taXRfdHMgPSAwOwogCiAvKiBmaWVsZHMgdmFsaWQgb25seSB3aGVuIHByb2Nlc3Npbmcgc3Ry ZWFtZWQgdHJhbnNhY3Rpb24gKi8KIHN0YXRpYyBib29sIGluX3N0cmVhbWVkX3RyYW5zYWN0aW9u ID0gZmFsc2U7CkBAIC0xMjM2LDYgKzEyMzgsOCBAQCBhcHBseV9oYW5kbGVfYmVnaW4oU3RyaW5n SW5mbyBzKQogCXNldF9hcHBseV9lcnJvcl9jb250ZXh0X3hhY3QoYmVnaW5fZGF0YS54aWQsIGJl Z2luX2RhdGEuZmluYWxfbHNuKTsKIAogCXJlbW90ZV9maW5hbF9sc24gPSBiZWdpbl9kYXRhLmZp bmFsX2xzbjsKKwlyZW1vdGVfY29tbWl0X3RzID0gYmVnaW5fZGF0YS5jb21taXR0aW1lOworCXJl bW90ZV94aWQgPSBiZWdpbl9kYXRhLnhpZDsKIAogCW1heWJlX3N0YXJ0X3NraXBwaW5nX2NoYW5n ZXMoYmVnaW5fZGF0YS5maW5hbF9sc24pOwogCkBAIC0xMjk2LDYgKzEzMDAsOCBAQCBhcHBseV9o YW5kbGVfYmVnaW5fcHJlcGFyZShTdHJpbmdJbmZvIHMpCiAJc2V0X2FwcGx5X2Vycm9yX2NvbnRl eHRfeGFjdChiZWdpbl9kYXRhLnhpZCwgYmVnaW5fZGF0YS5wcmVwYXJlX2xzbik7CiAKIAlyZW1v dGVfZmluYWxfbHNuID0gYmVnaW5fZGF0YS5wcmVwYXJlX2xzbjsKKwlyZW1vdGVfeGlkID0gYmVn aW5fZGF0YS54aWQ7CisJcmVtb3RlX2NvbW1pdF90cyA9IDA7CiAKIAltYXliZV9zdGFydF9za2lw cGluZ19jaGFuZ2VzKGJlZ2luX2RhdGEucHJlcGFyZV9sc24pOwogCkBAIC0xNzY3LDYgKzE3NzMs MTAgQEAgYXBwbHlfaGFuZGxlX3N0cmVhbV9zdGFydChTdHJpbmdJbmZvIHMpCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9QUk9UT0NPTF9WSU9MQVRJT04pLAogCQkJCSBlcnJtc2dfaW50ZXJuYWwoImlu dmFsaWQgdHJhbnNhY3Rpb24gSUQgaW4gc3RyZWFtZWQgcmVwbGljYXRpb24gdHJhbnNhY3Rpb24i KSkpOwogCisJcmVtb3RlX3hpZCA9IHN0cmVhbV94aWQ7CisJcmVtb3RlX2ZpbmFsX2xzbiA9IElu dmFsaWRYTG9nUmVjUHRyOworCXJlbW90ZV9jb21taXRfdHMgPSAwOworCiAJc2V0X2FwcGx5X2Vy cm9yX2NvbnRleHRfeGFjdChzdHJlYW1feGlkLCBJbnZhbGlkWExvZ1JlY1B0cik7CiAKIAkvKiBU cnkgdG8gYWxsb2NhdGUgYSB3b3JrZXIgZm9yIHRoZSBzdHJlYW1pbmcgdHJhbnNhY3Rpb24uICov CkBAIC0yNDI4LDYgKzI0MzgsOSBAQCBhcHBseV9oYW5kbGVfc3RyZWFtX2NvbW1pdChTdHJpbmdJ bmZvIHMpCiAJewogCQljYXNlIFRSQU5TX0xFQURFUl9BUFBMWToKIAorCQkJLyogU2V0IHJlbW90 ZV9jb21taXRfdHMgZm9yIGNvbmZsaWN0IGxvZ2dpbmcuICovCisJCQlyZW1vdGVfY29tbWl0X3Rz ID0gY29tbWl0X2RhdGEuY29tbWl0dGltZTsKKwogCQkJLyoKIAkJCSAqIFRoZSB0cmFuc2FjdGlv biBoYXMgYmVlbiBzZXJpYWxpemVkIHRvIGZpbGUsIHNvIHJlcGxheSBhbGwgdGhlCiAJCQkgKiBz cG9vbGVkIG9wZXJhdGlvbnMuCkBAIC01NjQ3LDYgKzU2NjAsOSBAQCBzdGFydF9hcHBseShYTG9n UmVjUHRyIG9yaWdpbl9zdGFydHBvcykKIAl9CiAJUEdfQ0FUQ0goKTsKIAl7CisJCU1lbW9yeUNv bnRleHQgb2xkY29udGV4dDsKKwkJRXJyb3JEYXRhICAqZWRhdGE7CisKIAkJLyoKIAkJICogUmVz ZXQgdGhlIG9yaWdpbiBzdGF0ZSB0byBwcmV2ZW50IHRoZSBhZHZhbmNlbWVudCBvZiBvcmlnaW4K IAkJICogcHJvZ3Jlc3MgaWYgd2UgZmFpbCB0byBhcHBseS4gT3RoZXJ3aXNlLCB0aGlzIHdpbGwg cmVzdWx0IGluCkBAIC01NjYwLDE0ICs1Njc2LDMzIEBAIHN0YXJ0X2FwcGx5KFhMb2dSZWNQdHIg b3JpZ2luX3N0YXJ0cG9zKQogCQllbHNlCiAJCXsKIAkJCS8qCi0JCQkgKiBSZXBvcnQgdGhlIHdv cmtlciBmYWlsZWQgd2hpbGUgYXBwbHlpbmcgY2hhbmdlcy4gQWJvcnQgdGhlCi0JCQkgKiBjdXJy ZW50IHRyYW5zYWN0aW9uIHNvIHRoYXQgdGhlIHN0YXRzIG1lc3NhZ2UgaXMgc2VudCBpbiBhbgot CQkJICogaWRsZSBzdGF0ZS4KKwkJCSAqIFNhdmUgdGhlIGVycm9yIGFuZCByZWNvdmVyIHRvIGFu IGlkbGUgc3RhdGUgc28gd2UgY2FuIGluc2VydCB0aGUKKwkJCSAqIGRlZmVycmVkIGNvbmZsaWN0 IGxvZyB0dXBsZSAoaWYgYW55KSBiZWZvcmUgcmUtdGhyb3dpbmcuICBDb3B5CisJCQkgKiB0aGUg ZXJyb3IgaW50byBhIGxvbmctbGl2ZWQgY29udGV4dCBmaXJzdCwgYXMgaXQgbWF5IGhhdmUgYmVl bgorCQkJICogcmFpc2VkIHVuZGVyIEVycm9yQ29udGV4dC4gIEFsc28gcmVzZXQgdGhlIGVycm9y IGNvbnRleHQgc3RhY2s6CisJCQkgKiB0aGUgY2FsbGJhY2tzIGluIGVmZmVjdCB3aGVuIHRoZSBl cnJvciB3YXMgdGhyb3duIGJlbG9uZyB0bworCQkJICogdW53b3VuZCBzdGFjayBmcmFtZXMsIGFu ZCB0aGUgZGVmZXJyZWQgaW5zZXJ0IGluc3RhbGxzIGl0cyBvd24uCiAJCQkgKi8KKwkJCW9sZGNv bnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oVG9wTWVtb3J5Q29udGV4dCk7CisJCQllZGF0 YSA9IENvcHlFcnJvckRhdGEoKTsKKwkJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0 KTsKKworCQkJRmx1c2hFcnJvclN0YXRlKCk7CisJCQllcnJvcl9jb250ZXh0X3N0YWNrID0gTlVM TDsKIAkJCUFib3J0T3V0T2ZBbnlUcmFuc2FjdGlvbigpOwogCQkJcGdzdGF0X3JlcG9ydF9zdWJz Y3JpcHRpb25fZXJyb3IoTXlTdWJzY3JpcHRpb24tPm9pZCk7CiAKLQkJCVBHX1JFX1RIUk9XKCk7 CisJCQkvKgorCQkJICogSW5zZXJ0IHRoZSBkZWZlcnJlZCBjb25mbGljdCBsb2cgdHVwbGUgaW4g aXRzIG93biB0cmFuc2FjdGlvbi4KKwkJCSAqIElmIHRoaXMgZmFpbHMsIHRoYXQgZXJyb3IgKGFu bm90YXRlZCB3aXRoIHRoZSBjb25mbGljdCBjb250ZXh0LAorCQkJICogc2VlIEluc2VydENvbmZs aWN0TG9nVHVwbGUpIHByb3BhZ2F0ZXMgaW5zdGVhZCBvZiB0aGUgb3JpZ2luYWw7CisJCQkgKiBz dWNoIGZhaWx1cmVzIGFyZSBleHBlY3RlZCB0byBiZSByYXJlIGFuZCBwZXJzaXN0ZW50IChlLmcu IG91dCBvZgorCQkJICogZGlzayBzcGFjZSkuCisJCQkgKi8KKwkJCVByb2Nlc3NQZW5kaW5nQ29u ZmxpY3RMb2dUdXBsZSgpOworCisJCQkvKiBSZS10aHJvdyB0aGUgb3JpZ2luYWwgZXJyb3IuICov CisJCQlSZVRocm93RXJyb3IoZWRhdGEpOwogCQl9CiAJfQogCVBHX0VORF9UUlkoKTsKQEAgLTYw MzQsNiArNjA2OSwxMyBAQCBEaXNhYmxlU3Vic2NyaXB0aW9uQW5kRXhpdCh2b2lkKQogCiAJUkVT VU1FX0lOVEVSUlVQVFMoKTsKIAorCS8qCisJICogVGhlIGVycm9yIGNvbnRleHQgY2FsbGJhY2tz IGluIGVmZmVjdCB3aGVuIHRoZSBlcnJvciB3YXMgdGhyb3duIGJlbG9uZworCSAqIHRvIG5vdy11 bndvdW5kIHN0YWNrIGZyYW1lczsgcmVzZXQgdGhlIHN0YWNrIGJlZm9yZSBydW5uaW5nIGZ1cnRo ZXIgY29kZQorCSAqIChpbmNsdWRpbmcgdGhlIGRlZmVycmVkIGNvbmZsaWN0IGxvZyBpbnNlcnRp b24sIHdoaWNoIGluc3RhbGxzIGl0cyBvd24pLgorCSAqLworCWVycm9yX2NvbnRleHRfc3RhY2sg PSBOVUxMOworCiAJLyoKIAkgKiBSZXBvcnQgdGhlIHdvcmtlciBmYWlsZWQgZHVyaW5nIHNlcXVl bmNlIHN5bmNocm9uaXphdGlvbiwgdGFibGUKIAkgKiBzeW5jaHJvbml6YXRpb24sIG9yIGFwcGx5 LgpAQCAtNjA2Miw2ICs2MTA0LDE5IEBAIERpc2FibGVTdWJzY3JpcHRpb25BbmRFeGl0KHZvaWQp CiAJCQllcnJtc2coInN1YnNjcmlwdGlvbiBcIiVzXCIgaGFzIGJlZW4gZGlzYWJsZWQgYmVjYXVz ZSBvZiBhbiBlcnJvciIsCiAJCQkJICAgTXlTdWJzY3JpcHRpb24tPm5hbWUpKTsKIAorCS8qCisJ ICogSW5zZXJ0IHRoZSBkZWZlcnJlZCBjb25mbGljdCBsb2cgdHVwbGUgKGlmIGFueSkgbm93IHRo YXQgdGhlCisJICogc3Vic2NyaXB0aW9uIGhhcyBiZWVuIGRpc2FibGVkIGFuZCBjb21taXR0ZWQu ICBEb2luZyBpdCBhZnRlciB0aGUKKwkgKiBkaXNhYmxlIG1lYW5zIGEgZmFpbHVyZSB0byBsb2cg dGhlIGNvbmZsaWN0ICh0cmVhdGVkIGFzIGEgaGFyZCBlcnJvciwKKwkgKiBzZWUgUHJvY2Vzc1Bl bmRpbmdDb25mbGljdExvZ1R1cGxlKSBjYW5ub3QgcHJldmVudCB0aGUgc3Vic2NyaXB0aW9uIGZy b20KKwkgKiBiZWluZyBkaXNhYmxlZCBhbmQgc28gY2Fubm90IGxlYXZlIHRoZSB3b3JrZXIgcmVz dGFydGluZyBhbmQgZmFpbGluZworCSAqIGZvcmV2ZXIuICBEbyBpdCBiZWZvcmUgdGhlIGRlYWQt dHVwbGUgcmV0ZW50aW9uIGNoZWNrIGJlbG93OiB0aGF0IGNoZWNrCisJICogb25seSB3YXJucyB0 b2RheSwgYnV0IGl0IHRha2VzIGFuIGVsZXZlbCBhbmQgY291bGQgcmFpc2UgYW4gZXJyb3IsIHdo aWNoCisJICogbXVzdCBub3QgcHJldmVudCB0aGUgY29uZmxpY3QgZnJvbSBiZWluZyByZWNvcmRl ZC4gIFRoZSBvcmlnaW5hbCBlcnJvcgorCSAqIHdhcyBhbHJlYWR5IHJlcG9ydGVkIGFib3ZlLgor CSAqLworCVByb2Nlc3NQZW5kaW5nQ29uZmxpY3RMb2dUdXBsZSgpOworCiAJLyoKIAkgKiBTa2lw IHRoZSB0cmFja19jb21taXRfdGltZXN0YW1wIGNoZWNrIHdoZW4gZGlzYWJsaW5nIHRoZSB3b3Jr ZXIgZHVlIHRvCiAJICogYW4gZXJyb3IsIGFzIHZlcmlmeWluZyBjb21taXQgdGltZXN0YW1wcyBp cyB1bm5lY2Vzc2FyeSBpbiB0aGlzCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlv bi9jb25mbGljdC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaAppbmRleCBh MDE3ZTFlNmNiNS4uYjcyN2NjMjg1ZTkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0 aW9uL2NvbmZsaWN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaApA QCAtMTE1LDUgKzExNSw4IEBAIGV4dGVybiB2b2lkIFJlcG9ydEFwcGx5Q29uZmxpY3QoRVN0YXRl ICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlbGluZm8sCiAJCQkJCQkJCVR1cGxlVGFibGVTbG90 ICpzZWFyY2hzbG90LAogCQkJCQkJCQlUdXBsZVRhYmxlU2xvdCAqcmVtb3Rlc2xvdCwKIAkJCQkJ CQkJTGlzdCAqY29uZmxpY3R0dXBsZXMpOworZXh0ZXJuIHZvaWQgUHJvY2Vzc1BlbmRpbmdDb25m bGljdExvZ1R1cGxlKHZvaWQpOwogZXh0ZXJuIHZvaWQgSW5pdENvbmZsaWN0SW5kZXhlcyhSZXN1 bHRSZWxJbmZvICpyZWxJbmZvKTsKK2V4dGVybiBSZWxhdGlvbiBHZXRDb25mbGljdExvZ0Rlc3RB bmRUYWJsZShDb25mbGljdExvZ0Rlc3QgKmxvZ19kZXN0KTsKK2V4dGVybiB2b2lkIEluc2VydENv bmZsaWN0TG9nVHVwbGUoUmVsYXRpb24gY29uZmxpY3Rsb2dyZWwpOwogI2VuZGlmCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCBiL3NyYy9pbmNs dWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oCmluZGV4IDc0NWI3ZDllOTY5Li4wMGFk MGQ4NmE3OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2VyX2ludGVy bmFsLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgKQEAg LTEyMSw2ICsxMjEsOCBAQCB0eXBlZGVmIGVudW0gUGFyYWxsZWxUcmFuc1N0YXRlCiAJUEFSQUxM RUxfVFJBTlNfVU5LTk9XTiwKIAlQQVJBTExFTF9UUkFOU19TVEFSVEVELAogCVBBUkFMTEVMX1RS QU5TX0ZJTklTSEVELAorCVBBUkFMTEVMX1RSQU5TX0VSUk9SLAkJLyogd29ya2VyIGZhaWxlZDsg aXQgd2lsbCByZXBvcnQgdGhlIGVycm9yIChhbmQKKwkJCQkJCQkJICogbG9nIHRoZSBjb25mbGlj dCwgaWYgYW55KSBiZWZvcmUgZXhpdGluZyAqLwogfSBQYXJhbGxlbFRyYW5zU3RhdGU7CiAKIC8q CkBAIC0yNTUsNiArMjU3LDEwIEBAIGV4dGVybiBQR0RMTElNUE9SVCBib29sIEluaXRpYWxpemlu Z0FwcGx5V29ya2VyOwogCiBleHRlcm4gUEdETExJTVBPUlQgTGlzdCAqdGFibGVfc3RhdGVzX25v dF9yZWFkeTsKIAorZXh0ZXJuIFhMb2dSZWNQdHIgcmVtb3RlX2ZpbmFsX2xzbjsKK2V4dGVybiBU aW1lc3RhbXBUeiByZW1vdGVfY29tbWl0X3RzOworZXh0ZXJuIFRyYW5zYWN0aW9uSWQgcmVtb3Rl X3hpZDsKKwogZXh0ZXJuIHZvaWQgbG9naWNhbHJlcF93b3JrZXJfYXR0YWNoKGludCBzbG90KTsK IGV4dGVybiBMb2dpY2FsUmVwV29ya2VyICpsb2dpY2FscmVwX3dvcmtlcl9maW5kKExvZ2ljYWxS ZXBXb3JrZXJUeXBlIHd0eXBlLAogCQkJCQkJCQkJCQkJT2lkIHN1YmlkLCBPaWQgcmVsaWQsCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQgYi9zcmMvdGVzdC9z dWJzY3JpcHRpb24vbWVzb24uYnVpbGQKaW5kZXggZTcxZTk1YzYyOTcuLjIyNWY5MGEzN2IzIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQKKysrIGIvc3JjL3Rl c3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkCkBAIC00OCw2ICs0OCw3IEBAIHRlc3RzICs9IHsK ICAgICAgICd0LzAzNl9zZXF1ZW5jZXMucGwnLAogICAgICAgJ3QvMDM3X2V4Y2VwdC5wbCcsCiAg ICAgICAndC8wMzhfd2Fsc25kX3NodXRkb3duX3RpbWVvdXQucGwnLAorICAgICAgJ3QvMDM5X3Bh X2NvbmZsaWN0X2xvZ19sb2NrX3dhaXQucGwnLAogICAgICAgJ3QvMTAwX2J1Z3MucGwnLAogICAg IF0sCiAgIH0sCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzBfb3JpZ2lu LnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMwX29yaWdpbi5wbAppbmRleCA2YmM2Yjc4 NzRjMi4uNWY0ZDAwYmRkMzMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAz MF9vcmlnaW4ucGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMwX29yaWdpbi5wbApA QCAtMTY2LDcgKzE2Niw3IEBAIGlzKCRyZXN1bHQsIHFxKDMyKSwgJ1RoZSBub2RlX0EgZGF0YSBy ZXBsaWNhdGVkIHRvIG5vZGVfQicpOwogJG5vZGVfQy0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJV UERBVEUgJHRhYiBTRVQgYSA9IDMzIFdIRVJFIGEgPSAzMjsiKTsKIAogJG5vZGVfQi0+d2FpdF9m b3JfbG9nKAotCXFyL2NvbmZsaWN0IGRldGVjdGVkIG9uIHJlbGF0aW9uICJwdWJsaWMuJHRhYl91 bnF1b3RlZCI6IGNvbmZsaWN0PXVwZGF0ZV9vcmlnaW5fZGlmZmVycy4qXG4uKkRFVEFJTDouKiBV cGRhdGluZyB0aGUgcm93IHRoYXQgd2FzIG1vZGlmaWVkIGJ5IGEgZGlmZmVyZW50IG9yaWdpbiAi LioiIGluIHRyYW5zYWN0aW9uIFswLTldKyBhdCAuKjogbG9jYWwgcm93IFwoMzJcKSwgcmVtb3Rl IHJvdyBcKDMzXCksIHJlcGxpY2EgaWRlbnRpdHkgXChhXCk9XCgzMlwpLi8KKwlxci9jb25mbGlj dCBkZXRlY3RlZCBvbiByZWxhdGlvbiAicHVibGljLiR0YWIiOiBjb25mbGljdD11cGRhdGVfb3Jp Z2luX2RpZmZlcnMuKlxuLipERVRBSUw6LiogVXBkYXRpbmcgdGhlIHJvdyB0aGF0IHdhcyBtb2Rp ZmllZCBieSBhIGRpZmZlcmVudCBvcmlnaW4gIi4qIiBpbiB0cmFuc2FjdGlvbiBbMC05XSsgYXQg Lio6IGxvY2FsIHJvdyBcKDMyXCksIHJlbW90ZSByb3cgXCgzM1wpLCByZXBsaWNhIGlkZW50aXR5 IFwoYVwpPVwoMzJcKS4vCiApOwogCiAkbm9kZV9CLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRF TEVURSBGUk9NICR0YWI7Iik7CkBAIC0xODIsNyArMTgyLDcgQEAgaXMoJHJlc3VsdCwgcXEoMzMp LCAnVGhlIG5vZGVfQSBkYXRhIHJlcGxpY2F0ZWQgdG8gbm9kZV9CJyk7CiAkbm9kZV9DLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgIkRFTEVURSBGUk9NICR0YWIgV0hFUkUgYSA9IDMzOyIpOwogCiAk bm9kZV9CLT53YWl0X2Zvcl9sb2coCi0JcXIvY29uZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24g InB1YmxpYy4kdGFiX3VucXVvdGVkIjogY29uZmxpY3Q9ZGVsZXRlX29yaWdpbl9kaWZmZXJzLipc bi4qREVUQUlMOi4qIERlbGV0aW5nIHRoZSByb3cgdGhhdCB3YXMgbW9kaWZpZWQgYnkgYSBkaWZm ZXJlbnQgb3JpZ2luICIuKiIgaW4gdHJhbnNhY3Rpb24gWzAtOV0rIGF0IC4qOiBsb2NhbCByb3cg XCgzM1wpLCByZXBsaWNhIGlkZW50aXR5IFwoYVwpPVwoMzNcKS4qLworCXFyL2NvbmZsaWN0IGRl dGVjdGVkIG9uIHJlbGF0aW9uICJwdWJsaWMuJHRhYiI6IGNvbmZsaWN0PWRlbGV0ZV9vcmlnaW5f ZGlmZmVycy4qXG4uKkRFVEFJTDouKiBEZWxldGluZyB0aGUgcm93IHRoYXQgd2FzIG1vZGlmaWVk IGJ5IGEgZGlmZmVyZW50IG9yaWdpbiAiLioiIGluIHRyYW5zYWN0aW9uIFswLTldKyBhdCAuKjog bG9jYWwgcm93IFwoMzNcKSwgcmVwbGljYSBpZGVudGl0eSBcKGFcKT1cKDMzXCkuKi8KICk7CiAK ICMgVGhlIHJlbWFpbmluZyB0ZXN0cyBubyBsb25nZXIgdGVzdCBjb25mbGljdCBkZXRlY3Rpb24u CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzVfY29uZmxpY3RzLnBsIGIv c3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM1X2NvbmZsaWN0cy5wbAppbmRleCBmMjNmZTZhZjJh NS4uODZkM2Y4OTAzYzUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNV9j b25mbGljdHMucGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM1X2NvbmZsaWN0cy5w bApAQCAtNTAsNyArNTAsNyBAQCAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoCiAJJ3Bvc3Rn cmVzJywKIAkiQ1JFQVRFIFNVQlNDUklQVElPTiBzdWJfdGFiCiAJIENPTk5FQ1RJT04gJyRwdWJs aXNoZXJfY29ubnN0ciBhcHBsaWNhdGlvbl9uYW1lPSRhcHBuYW1lJwotCSBQVUJMSUNBVElPTiBw dWJfdGFiOyIpOworCSBQVUJMSUNBVElPTiBwdWJfdGFiIFdJVEggKGNvbmZsaWN0X2xvZ19kZXN0 aW5hdGlvbj1hbGwpIik7CiAKICMgV2FpdCBmb3IgaW5pdGlhbCB0YWJsZSBzeW5jIHRvIGZpbmlz aAogJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5vZGVfcHVi bGlzaGVyLCAkYXBwbmFtZSk7CkBAIC04NCwxMCArODQsMzUgQEAgJG5vZGVfc3Vic2NyaWJlci0+ d2FpdF9mb3JfbG9nKAogLipLZXkgYWxyZWFkeSBleGlzdHMgaW4gdW5pcXVlIGluZGV4IFwiY29u Zl90YWJfY19rZXlcIiwgbW9kaWZpZWQgaW4gdHJhbnNhY3Rpb24gLio6IGtleSBcKGNcKT1cKDRc KSwgbG9jYWwgcm93IFwoNCwgNCwgNFwpLi8sCiAJJGxvZ19vZmZzZXQpOwogCisjIFZlcmlmeSB0 aGUgY29udGVudHMgb2YgdGhlIENvbmZsaWN0IExvZyBUYWJsZSAoQ0xUKQorIyBUaGlzIHNlY3Rp b24gZW5zdXJlcyB0aGF0IHRoZSBDTFQgY29udGFpbnMgdGhlIGV4cGVjdGVkCisjIHR5cGUgYW5k IHNwZWNpZmljIGtleSBkYXRhLgorbXkgJHN1YmlkID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBvaWQgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUg c3VibmFtZSA9ICdzdWJfdGFiJzsiKTsKK215ICRjbHQgPSAicGdfY29uZmxpY3QucGdfY29uZmxp Y3RfbG9nXyRzdWJpZCI7CisKKyMgV2FpdCBmb3IgdGhlIGNvbmZsaWN0IHRvIGJlIGxvZ2dlZCBp biB0aGUgQ0xUCitteSAkbG9nX2NoZWNrID0gJG5vZGVfc3Vic2NyaWJlci0+cG9sbF9xdWVyeV91 bnRpbCgKKyAgICAncG9zdGdyZXMnLAorICAgICJTRUxFQ1QgY291bnQoKikgPiAwIEZST00gJGNs dDsiCispOworCitteSAkY29uZmxpY3RfY2hlY2sgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywKKyAgICAiU0VMRUNUIGNvdW50KCopID49IDEgRlJPTSAkY2x0IFdIRVJF IGNvbmZsaWN0X3R5cGUgPSAnbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0cyc7Iik7CitpcygkY29u ZmxpY3RfY2hlY2ssICd0JywgJ1ZlcmlmaWVkIG11bHRpcGxlX3VuaXF1ZV9jb25mbGljdHMgbG9n Z2VkIGludG8gY29uZmxpY3QgbG9nIHRhYmxlJyk7CisKK215ICRqc29uX3F1ZXJ5ID0gIlNFTEVD VCBsb2NhbF9jb25mbGljdHMgRlJPTSAkY2x0OyI7CitteSAkcmF3X2pzb24gPSAkbm9kZV9zdWJz Y3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJGpzb25fcXVlcnkpOworCisjIFZlcmlmeSB0 aGF0ICcyJyBpcyBwcmVzZW50IGluc2lkZSB0aGUgSlNPTiBzdHJ1Y3R1cmUgdXNpbmcgYSByZWdl eAorIyBUaGlzIG1hdGNoZXMgdGhlIGtleS92YWx1ZSBwYXR0ZXJuIGZvciAiYSI6IDIKK2xpa2Uo JHJhd19qc29uLCBxci9cXCJhXFwiOjIvLCAnVmVyaWZpZWQgdGhhdCBrZXkgMiBleGlzdHMgaW4g dGhlIGxvY2FsX2NvbmZsaWN0cycpOworCiBwYXNzKCdtdWx0aXBsZV91bmlxdWVfY29uZmxpY3Rz IGRldGVjdGVkIGR1cmluZyBpbnNlcnQnKTsKIAogIyBUcnVuY2F0ZSB0YWJsZSB0byBnZXQgcmlk IG9mIHRoZSBlcnJvcgogJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJU UlVOQ0FURSBjb25mX3RhYjsiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiREVMRVRFIEZST00gJGNsdCIpOwogCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBUZXN0IG11bHRpcGxlX3VuaXF1ZV9jb25mbGljdHMg ZHVlIHRvIFVQREFURQpAQCAtMTE0LDYgKzEzOSwyNiBAQCAkbm9kZV9zdWJzY3JpYmVyLT53YWl0 X2Zvcl9sb2coCiAuKktleSBhbHJlYWR5IGV4aXN0cyBpbiB1bmlxdWUgaW5kZXggXCJjb25mX3Rh Yl9jX2tleVwiLCBtb2RpZmllZCBpbiB0cmFuc2FjdGlvbiAuKjoga2V5IFwoY1wpPVwoOFwpLCBs b2NhbCByb3cgXCg4LCA4LCA4XCkuLywKIAkkbG9nX29mZnNldCk7CiAKKyMgVmVyaWZ5IHRoZSBj b250ZW50cyBvZiB0aGUgQ29uZmxpY3QgTG9nIFRhYmxlIChDTFQpCisjIFRoaXMgc2VjdGlvbiBl bnN1cmVzIHRoYXQgdGhlIENMVCBjb250YWlucyB0aGUgZXhwZWN0ZWQKKyMgdHlwZSBhbmQgc3Bl Y2lmaWMga2V5IGRhdGEuCisKKyMgV2FpdCBmb3IgdGhlIGNvbmZsaWN0IHRvIGJlIGxvZ2dlZCBp biB0aGUgQ0xUCiskbG9nX2NoZWNrID0gJG5vZGVfc3Vic2NyaWJlci0+cG9sbF9xdWVyeV91bnRp bCgKKyAgICAncG9zdGdyZXMnLAorICAgICJTRUxFQ1QgY291bnQoKikgPiAwIEZST00gJGNsdDsi CispOworCiskY29uZmxpY3RfY2hlY2sgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKKyAgICAiU0VMRUNUIGNvdW50KCopID49IDEgRlJPTSAkY2x0IFdIRVJFIGNvbmZs aWN0X3R5cGUgPSAnbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0cyc7Iik7CitpcygkY29uZmxpY3Rf Y2hlY2ssICd0JywgJ1ZlcmlmaWVkIG11bHRpcGxlX3VuaXF1ZV9jb25mbGljdHMgbG9nZ2VkIGlu dG8gY29uZmxpY3QgbG9nIHRhYmxlJyk7CisKKyRyYXdfanNvbiA9ICRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAkanNvbl9xdWVyeSk7CisKKyMgVmVyaWZ5IHRoYXQgJzYn IGlzIHByZXNlbnQgaW5zaWRlIHRoZSBKU09OIHN0cnVjdHVyZSB1c2luZyBhIHJlZ2V4CisjIFRo aXMgbWF0Y2hlcyB0aGUga2V5L3ZhbHVlIHBhdHRlcm4gZm9yICJhIjogNgorbGlrZSgkcmF3X2pz b24sIHFyL1xcImFcXCI6Ni8sICdWZXJpZmllZCB0aGF0IGtleSA2IGV4aXN0cyBpbiB0aGUgbG9j YWxfY29uZmxpY3RzJyk7CisKIHBhc3MoJ211bHRpcGxlX3VuaXF1ZV9jb25mbGljdHMgZGV0ZWN0 ZWQgZHVyaW5nIHVwZGF0ZScpOwogCiAjIFRydW5jYXRlIHRhYmxlIHRvIGdldCByaWQgb2YgdGhl IGVycm9yCkBAIC02NzAsNCArNzE1LDQ1IEBAIG9rKCAkbm9kZV9BLT5wb2xsX3F1ZXJ5X3VudGls KAogCSksCiAJInRoZSBzbG90ICdwZ19jb25mbGljdF9kZXRlY3Rpb24nIGhhcyBiZWVuIGRyb3Bw ZWQgb24gTm9kZSBBIik7CiAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVmVyaWZ5IHRoYXQg QVRTaW1wbGVQZXJtaXNzaW9ucyBibG9ja3MgbW92aW5nIGEgQ0xUIHZpYQorIyBBTFRFUiBUQUJM RSBBTEwgSU4gVEFCTEVTUEFDRS4gIFdlIHVzZSBhbiBpc29sYXRlZCBkYXRhYmFzZSBjb250YWlu aW5nIG9ubHkKKyMgdGhlIENMVCBzbyBubyBvdGhlciB0YWJsZXMgYXJlIG1vdmVkIGJlZm9yZSB0 aGUgZXJyb3IgZmlyZXMuCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyMgQ3JlYXRlIGFuIGlz b2xhdGVkIGRhdGFiYXNlIHdpdGggYSBzaW5nbGUgQ0xUIGFuZCBubyB1c2VyIHRhYmxlcy4KKyRu b2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIERBVEFCQVNFIGNs dF90c190ZXN0Iik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ2NsdF90c190ZXN0JywK KwkiQ1JFQVRFIFNVQlNDUklQVElPTiBzdWJfdHNfdGVzdAorCSAgICAgQ09OTkVDVElPTiAnZGJu YW1lPW5vbmV4aXN0ZW50JworCSAgICAgUFVCTElDQVRJT04gcHViCisJICAgICBXSVRIIChjb25u ZWN0PWZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRpb249J3RhYmxlJykiKTsKKworIyBDcmVh dGUgYSB0YWJsZXNwYWNlIGJhY2tlZCBieSBhIGRpcmVjdG9yeSBpbnNpZGUgdGhlIGRhdGEgZGly LgorbXkgJHRzX2RpciA9ICRub2RlX3N1YnNjcmliZXItPmRhdGFfZGlyIC4gJy9iYWNrdXBfc3Bh Y2UnOworbWtkaXIoJHRzX2RpcikKKyAgb3IgZGllICJjb3VsZCBub3QgY3JlYXRlIHRhYmxlc3Bh Y2UgZGlyZWN0b3J5ICR0c19kaXI6ICQhIjsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEVTUEFDRSBiYWNrdXBfc3BhY2UgTE9DQVRJT04gJyR0 c19kaXInIik7CisKKyMgVGhlIENMVCBpcyB0aGUgb25seSBub24tc3lzdGVtIHRhYmxlIGluIHBn X2RlZmF1bHQgb2YgY2x0X3RzX3Rlc3QsIHNvCisjIEFMVEVSIFRBQkxFIEFMTCBJTiBUQUJMRVNQ QUNFIGhpdHMgaXQgaW1tZWRpYXRlbHkgYW5kIEFUU2ltcGxlUGVybWlzc2lvbnMKKyMgcmFpc2Vz IHRoZSBleHBlY3RlZCBlcnJvci4KKyh1bmRlZiwgdW5kZWYsICRzdGRlcnIpID0gJG5vZGVfc3Vi c2NyaWJlci0+cHNxbCgnY2x0X3RzX3Rlc3QnLAorCSJBTFRFUiBUQUJMRSBBTEwgSU4gVEFCTEVT UEFDRSBwZ19kZWZhdWx0IFNFVCBUQUJMRVNQQUNFIGJhY2t1cF9zcGFjZSIpOworbGlrZSgKKwkk c3RkZXJyLAorCXFyL3Blcm1pc3Npb24gZGVuaWVkOiAicGdfY29uZmxpY3RfbG9nX1xkKyIgaXMg YSBjb25mbGljdCBsb2cgdGFibGUvLAorCSJBVFNpbXBsZVBlcm1pc3Npb25zIGJsb2NrcyBtb3Zp bmcgQ0xUIHZpYSBBTFRFUiBUQUJMRSBBTEwgSU4gVEFCTEVTUEFDRSIpOworCisjIENsZWFudXAK KyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgnY2x0X3RzX3Rlc3QnLAorCSJBTFRFUiBTVUJT Q1JJUFRJT04gc3ViX3RzX3Rlc3QgRElTQUJMRSIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9w c3FsKCdjbHRfdHNfdGVzdCcsCisJIkFMVEVSIFNVQlNDUklQVElPTiBzdWJfdHNfdGVzdCBTRVQg KHNsb3RfbmFtZSA9IE5PTkUpIik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ2NsdF90 c190ZXN0JywKKwkiRFJPUCBTVUJTQ1JJUFRJT04gc3ViX3RzX3Rlc3QiKTsKKyRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBEQVRBQkFTRSBjbHRfdHNfdGVzdCIp OworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFRBQkxFU1BB Q0UgYmFja3VwX3NwYWNlIik7CisKIGRvbmVfdGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3Qvc3Vic2NyaXB0aW9uL3QvMDM5X3BhX2NvbmZsaWN0X2xvZ19sb2NrX3dhaXQucGwgYi9zcmMv dGVzdC9zdWJzY3JpcHRpb24vdC8wMzlfcGFfY29uZmxpY3RfbG9nX2xvY2tfd2FpdC5wbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjgwMDQ3ZGNiNTAKLS0tIC9kZXYv bnVsbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzlfcGFfY29uZmxpY3RfbG9nX2xv Y2tfd2FpdC5wbApAQCAtMCwwICsxLDIwMyBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjYsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKKyMgVGVzdCB0aGF0IGEgcGFyYWxsZWwg YXBwbHkgKFBBKSB3b3JrZXIgY29ycmVjdGx5IGluc2VydHMgYSBkZWZlcnJlZAorIyBjb25mbGlj dC1sb2cgdHVwbGUgZXZlbiB3aGVuLCBieSB0aGUgdGltZSBpdCByZWFjaGVzCisjIFByb2Nlc3NQ ZW5kaW5nQ29uZmxpY3RMb2dUdXBsZSgpLCB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIGlzIGhlbGQg dW5kZXIKKyMgQUNDRVNTIEVYQ0xVU0lWRSBieSBhbm90aGVyIHNlc3Npb24uCisjCisjIFRoZSB3 aW5kb3cgd2Ugd2FudCB0byBleGVyY2lzZSBpcyBuYXJyb3c6IFBBIG11c3QgYWxyZWFkeSBiZSBw YXN0CisjIFJlcG9ydEFwcGx5Q29uZmxpY3QoKSAoc28gdGhlIGVycm9yIGhhcyBmaXJlZCBhbmQg UEEgaXMgaW4gUEdfQ0FUQ0gpLAorIyBhbmQgdGhlIGxvY2tlciBtdXN0IHRha2UgdGhlIENMVCBs b2NrICpiZWZvcmUqIFBBIHJlYWNoZXMgdGhlIHNlY29uZAorIyBDTFQgb3BlbiBpbnNpZGUgUHJv Y2Vzc1BlbmRpbmdDb25mbGljdExvZ1R1cGxlKCkuICBBbiBpbmplY3Rpb24gcG9pbnQKKyMgcGF1 c2VzIFBBIGF0IGV4YWN0bHkgdGhhdCBwb2ludCBzbyB0aGUgbG9ja2VyIGNhbiBncmFiIHRoZSBs b2NrIGZpcnN0OworIyB3aXRob3V0IGl0LCB0aGUgbG9ja2VyIGVpdGhlciB0YWtlcyB0aGUgbG9j ayB0b28gZWFybHkgKFBBIGJsb2NrcyBpbgorIyB0aGUgaW5saW5lIENMVCBvcGVuIGluc2lkZSBS ZXBvcnRBcHBseUNvbmZsaWN0LCBiZWZvcmUgdGhlIGVycm9yIGhhcworIyBmaXJlZCkgb3IgdG9v IGxhdGUgKFBBIGluc2VydHMgYmVmb3JlIHRoZSBsb2NrIGlzIHRha2VuKS4KKwordXNlIHN0cmlj dDsKK3VzZSB3YXJuaW5ncyBGQVRBTCA9PiAnYWxsJzsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpD bHVzdGVyOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOwordXNlIFRlc3Q6Ok1vcmU7CisK K2lmICgkRU5We2VuYWJsZV9pbmplY3Rpb25fcG9pbnRzfSBuZSAneWVzJykKK3sKKwlwbGFuIHNr aXBfYWxsID0+ICdJbmplY3Rpb24gcG9pbnRzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBidWlsZCc7 Cit9CisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFNldCB1cCBwdWJsaXNoZXIgYW5kIHN1YnNjcmliZXIu ICBGb3JjZSBldmVyeSB0cmFuc2FjdGlvbiB0byBzdHJlYW0gc28KKyMgdGhlIGNvbmZsaWN0IGlz IGhhbmRsZWQgYnkgYSBwYXJhbGxlbCBhcHBseSB3b3JrZXIgcmF0aGVyIHRoYW4gdGhlCisjIGxl YWRlci4KKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitteSAkbm9kZV9wdWIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpD bHVzdGVyLT5uZXcoJ3B1Ymxpc2hlcicpOworJG5vZGVfcHViLT5pbml0KGFsbG93c19zdHJlYW1p bmcgPT4gJ2xvZ2ljYWwnKTsKKyRub2RlX3B1Yi0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29u ZicsIHF7CitkZWJ1Z19sb2dpY2FsX3JlcGxpY2F0aW9uX3N0cmVhbWluZyA9IGltbWVkaWF0ZQor bG9naWNhbF9kZWNvZGluZ193b3JrX21lbSA9IDY0a0IKK30pOworJG5vZGVfcHViLT5zdGFydDsK KworbXkgJG5vZGVfc3ViID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdzdWJzY3Jp YmVyJyk7Ciskbm9kZV9zdWItPmluaXQ7Ciskbm9kZV9zdWItPmFwcGVuZF9jb25mKCdwb3N0Z3Jl c3FsLmNvbmYnLCBxeworc2hhcmVkX3ByZWxvYWRfbGlicmFyaWVzID0gJ2luamVjdGlvbl9wb2lu dHMnCittYXhfbG9naWNhbF9yZXBsaWNhdGlvbl93b3JrZXJzID0gNAorbWF4X3BhcmFsbGVsX2Fw cGx5X3dvcmtlcnNfcGVyX3N1YnNjcmlwdGlvbiA9IDIKK30pOworJG5vZGVfc3ViLT5zdGFydDsK KworIyBSZXBsaWNhdGVkIHRhYmxlOyB0aGUgcHJlLWV4aXN0aW5nIHJvdyBvbiB0aGUgc3Vic2Ny aWJlciBpcyB3aGF0IG1ha2VzCisjIHRoZSBwdWJsaXNoZXIncyBJTlNFUlQgKGlkPTEpIHRyaWdn ZXIgYW4gSU5TRVJUX0VYSVNUUyBjb25mbGljdC4KKyRub2RlX3B1Yi0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsIHF7CisJQ1JFQVRFIFRBQkxFIHQgKGlkIGludCBQUklNQVJZIEtFWSwgdmFsIHRleHQp OworCUFMVEVSIFRBQkxFIHQgUkVQTElDQSBJREVOVElUWSBGVUxMOworCUNSRUFURSBQVUJMSUNB VElPTiBwIEZPUiBUQUJMRSB0OworfSk7CisKKyRub2RlX3N1Yi0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsIHF7CisJQ1JFQVRFIFRBQkxFIHQgKGlkIGludCBQUklNQVJZIEtFWSwgdmFsIHRleHQpOwor CUlOU0VSVCBJTlRPIHQgVkFMVUVTICgxLCAncHJlLWV4aXN0aW5nJyk7CisJQ1JFQVRFIEVYVEVO U0lPTiBpbmplY3Rpb25fcG9pbnRzOworfSk7CisKK215ICRwdWJfY29ubnN0ciA9ICRub2RlX3B1 Yi0+Y29ubnN0ciAuICcgZGJuYW1lPXBvc3RncmVzJzsKKyRub2RlX3N1Yi0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsIHFxeworCUNSRUFURSBTVUJTQ1JJUFRJT04gcworCUNPTk5FQ1RJT04gJyRwdWJf Y29ubnN0cicKKwlQVUJMSUNBVElPTiBwCisJV0lUSCAoc3RyZWFtaW5nID0gcGFyYWxsZWwsCisJ ICAgICAgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ2FsbCcsCisJICAgICAgZGlzYWJsZV9v bl9lcnJvciA9IHRydWUpOworfSk7CisKKyRub2RlX3N1Yi0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9u X3N5bmMoJG5vZGVfcHViLCAncycpOworCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBTZW5kIGEgbm9uLWNv bmZsaWN0aW5nIElOU0VSVCBhbmQgdGhlbiB3YWl0IHVudGlsIHBnX3N1YnNjcmlwdGlvbl9yZWwK KyMgcmVhY2hlcyAncicgKHJlYWR5KSBvbiBldmVyeSByZWxhdGlvbi4gIHBhX2Nhbl9zdGFydCgp IHJlcXVpcmVzCisjIEFsbFRhYmxlc3luY3NSZWFkeSgpLCB3aGljaCByZXR1cm5zIHRydWUgb25s eSB3aGVuIGV2ZXJ5CisjIHBnX3N1YnNjcmlwdGlvbl9yZWwgcm93IGlzICdyJy4gIFRoZSAncycg KHN5bmNkb25lKSAtPiAncicgdHJhbnNpdGlvbgorIyBmaXJlcyBpbnNpZGUgUHJvY2Vzc1N5bmNp bmdUYWJsZXNGb3JBcHBseSwgd2hpY2ggb25seSBmbGlwcyB0aGUgc3RhdGUKKyMgd2hlbiB0aGUg YXBwbHkgd29ya2VyJ3MgbGFzdF9yZWNlaXZlZCBMU04gaGFzIGFkdmFuY2VkIHBhc3QgdGhlCisj IHRhYmxlc3luYyBlbmQgTFNOIC0tIHNvIHdlIG5lZWQgYSB0cmlnZ2VyaW5nIGNvbW1pdCBvbiB0 aGUgcHVibGlzaGVyCisjIHRvIGRyaXZlIGxhc3RfcmVjZWl2ZWQgZm9yd2FyZC4gIFdpdGhvdXQg dGhpcyBzdGVwLCB0aGUgY29uZmxpY3QgdHhuCisjIGJlbG93IHdvdWxkIGFycml2ZSB3aGlsZSB0 aGUgdGFibGUgaXMgc3RpbGwgJ3MnLCBwYV9jYW5fc3RhcnQoKSB3b3VsZAorIyByZXR1cm4gZmFs c2UsIHRoZSBsZWFkZXIgd291bGQgc3Bvb2wgdG8gZmlsZSBhbmQgYXBwbHkgc2VyaWFsbHksIGFu ZAorIyBubyBwYXJhbGxlbCBhcHBseSB3b3JrZXIgd291bGQgZXZlciBzcGF3bi4KKyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiskbm9kZV9wdWItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiSU5TRVJUIElOVE8gdCBW QUxVRVMgKDEwMDAsICd3YXJtdXAnKTsiKTsKKyRub2RlX3N1Yi0+cG9sbF9xdWVyeV91bnRpbCgn cG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoMSkgPSAwIEZST00gcGdfc3Vic2NyaXB0aW9uX3Jl bCBXSEVSRSBzcnN1YnN0YXRlIE5PVCBJTiAoJ3InKTsiCispIG9yIGRpZSAic3Vic2NyaXB0aW9u IHRhYmxlcyBkaWQgbm90IHJlYWNoIFJFQURZIHN0YXRlIjsKKworIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMg TG9vayB1cCB0aGUgcGVyLXN1YnNjcmlwdGlvbiBDTFQgbmFtZS4KKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitt eSAkc3ViX29pZCA9ICRub2RlX3N1Yi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBv aWQgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdzJyIpOworbXkgJGNsdCA9 ICJwZ19jb25mbGljdC5wZ19jb25mbGljdF9sb2dfJHN1Yl9vaWQiOworbm90ZSAiY29uZmxpY3Qg bG9nIHRhYmxlIGZvciBzdWJzY3JpcHRpb24gczogJGNsdCI7CisKKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisj IEFybSB0aGUgaW5qZWN0aW9uIHBvaW50LiAgVGhpcyBwYXVzZXMgdGhlIFBBIHdvcmtlciBpbnNp ZGUKKyMgUHJvY2Vzc1BlbmRpbmdDb25mbGljdExvZ1R1cGxlKCkg4oCUIGkuZS4gKmFmdGVyKiB0 aGUgZXJyb3IgaGFzIGZpcmVkCisjIGFuZCB0aGUgUEdfQ0FUQ0ggaGFzIHJ1biwgKmJlZm9yZSog dGhlIHNlY29uZCBvcGVuIG9mIHRoZSBDTFQuICBUaGlzCisjIGlzIHRoZSBleGFjdCB3aW5kb3cg dGhlIGRlZmVycmVkLWluc2VydCBwYXRoIG5lZWRzIHRvIGJlIHRlc3RlZCBpbi4KKyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiskbm9kZV9zdWItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgaW5qZWN0 aW9uX3BvaW50c19hdHRhY2goJ2NsdC1wZW5kaW5nLWZsdXNoLWJlZm9yZS1vcGVuJywgJ3dhaXQn KTsiKTsKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRHJpdmUgdGhlIGNvbmZsaWN0LiAgUEEgcmVjZWl2 ZXMgdGhlIHN0cmVhbWVkIHR4biwgaGl0cyBJTlNFUlRfRVhJU1RTCisjIGluc2lkZSBSZXBvcnRB cHBseUNvbmZsaWN0ICh3aGljaCBvcGVucy9jbG9zZXMgdGhlIENMVCBjbGVhbmx5IHdoaWxlCisj IHByZXBhcmluZyB0aGUgZGVmZXJyZWQgdHVwbGUpLCB0aGVuIGVyZXBvcnQoRVJST1IpIGZpcmVz LCBQR19DQVRDSAorIyBydW5zLCBhbmQgUEEgZW50ZXJzIFByb2Nlc3NQZW5kaW5nQ29uZmxpY3RM b2dUdXBsZSDigJQgd2hlcmUgaXQgcGF1c2VzCisjIGF0IHRoZSBpbmplY3Rpb24gcG9pbnQuCisj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorbXkgJGxvZ19vZmZzZXQgPSAtcyAkbm9kZV9zdWItPmxvZ2ZpbGU7CisK KyRub2RlX3B1Yi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7CisJQkVHSU47CisJSU5TRVJUIElO VE8gdCBTRUxFQ1QgZywgcmVwZWF0KCd4JywgMTAwMCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMiwg MjAwKSBnOworCUlOU0VSVCBJTlRPIHQgVkFMVUVTICgxLCAnY29uZmxpY3QnKTsKKwlDT01NSVQ7 Cit9KTsKKworIyBXYWl0IHVudGlsIFBBIGlzIHBhcmtlZCBhdCB0aGUgaW5qZWN0aW9uIHBvaW50 LgorJG5vZGVfc3ViLT53YWl0X2Zvcl9ldmVudCgnbG9naWNhbCByZXBsaWNhdGlvbiBwYXJhbGxl bCB3b3JrZXInLAorCSdjbHQtcGVuZGluZy1mbHVzaC1iZWZvcmUtb3BlbicpOworCisjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIyBOb3cgdGFrZSBBQ0NFU1MgRVhDTFVTSVZFIG9uIHRoZSBDTFQuICBUUlVOQ0FU RSBpcyBwZXJtaXR0ZWQgb24gQ0xUczsKKyMgQXQgdGhpcyBwb2ludCB0aGUgQ0xUIGlzIGVtcHR5 LCBzbyB0aGUgVFJVTkNBVEUgaXMgZWZmZWN0aXZlbHkgYSBuby1vcAorIyB0aGF0IGp1c3QgYWNx dWlyZXMgdGhlIGxvY2suCisjIEJlY2F1c2UgUEEgaXMgcGF1c2VkIGF0IHRoZSBpbmplY3Rpb24g cG9pbnQsIHRoaXMgbG9jayBpcyBndWFyYW50ZWVkCisjIHRvIGJlIGFjcXVpcmVkICpiZWZvcmUq IFBBIHRyaWVzIHRvIG9wZW4gdGhlIENMVC4KKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitteSAkbG9ja2VyID0g JG5vZGVfc3ViLT5iYWNrZ3JvdW5kX3BzcWwoJ3Bvc3RncmVzJyk7CiskbG9ja2VyLT5xdWVyeV9z YWZlKHFxeworCUJFR0lOOworCVRSVU5DQVRFICRjbHQ7Cit9KTsKKworIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyMgV2FrZSB0aGUgUEEgZnJvbSB0aGUgaW5qZWN0aW9uIHBvaW50LiAgSXQgd2lsbCBub3cgdHJ5 IHRvIG9wZW4gdGhlCisjIENMVCBpbnNpZGUgUHJvY2Vzc1BlbmRpbmdDb25mbGljdExvZ1R1cGxl IGFuZCBibG9jayBvbiB0aGUgbG9jayB0aGUKKyMgbG9ja2VyIHNlc3Npb24gaG9sZHMuCisjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorJG5vZGVfc3ViLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGlu amVjdGlvbl9wb2ludHNfd2FrZXVwKCdjbHQtcGVuZGluZy1mbHVzaC1iZWZvcmUtb3BlbicpOwor CSBTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2NsdC1wZW5kaW5nLWZsdXNoLWJlZm9y ZS1vcGVuJyk7Iik7CisKKyMgQ29uZmlybSB0aGUgUEEgd29ya2VyIGlzIGFjdHVhbGx5IHBhcmtl ZCB3YWl0aW5nIG9uIHRoZSBDTFQgbG9jayDigJQKKyMgdGhpcyB2ZXJpZmllcyB3ZSBhcmUgZXhl cmNpc2luZyB0aGUgZGVmZXJyZWQtaW5zZXJ0IGxvY2std2FpdCBwYXRoLAorIyBub3QgcmFjaW5n IHBhc3QgaXQuCitteSAkY2x0X29pZCA9ICRub2RlX3N1Yi0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs CisJIlNFTEVDVCAnJGNsdCc6OnJlZ2NsYXNzOjpvaWQiKTsKK29rKCAkbm9kZV9zdWItPnBvbGxf cXVlcnlfdW50aWwoCisJCSdwb3N0Z3JlcycsIHFxeworCQlTRUxFQ1QgRVhJU1RTICgKKwkJCVNF TEVDVCAxCisJCQlGUk9NIHBnX2xvY2tzIGwKKwkJCUpPSU4gcGdfc3RhdF9hY3Rpdml0eSBhIE9O IGwucGlkID0gYS5waWQKKwkJCVdIRVJFIE5PVCBsLmdyYW50ZWQKKwkJCSAgQU5EIGwucmVsYXRp b24gPSAkY2x0X29pZAorCQkJICBBTkQgYS5iYWNrZW5kX3R5cGUgPSAnbG9naWNhbCByZXBsaWNh dGlvbiBwYXJhbGxlbCB3b3JrZXInCisJCSk7CisJfSwgJ3QnKSwKKwknUEEgd29ya2VyIGlzIGJs b2NrZWQgb24gdGhlIENMVCBsb2NrIGluc2lkZSBQcm9jZXNzUGVuZGluZ0NvbmZsaWN0TG9nVHVw bGUnKTsKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgUmVsZWFzZSB0aGUgbG9jay4gIFBBIHdha2VzLCBp bnNlcnRzIHRoZSBkZWZlcnJlZCByb3csIGNvbW1pdHMgaXRzCisjIENMVCB0eG4sIHJlLXRocm93 cyB0aGUgb3JpZ2luYWwgZXJyb3IgdG8gdGhlIGxlYWRlciwgYW5kIHRoZSBsZWFkZXIKKyMgZGlz YWJsZXMgdGhlIHN1YnNjcmlwdGlvbiAoZGlzYWJsZV9vbl9lcnJvciA9IHRydWUpLgorIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyRsb2NrZXItPnF1ZXJ5X3NhZmUoJ0NPTU1JVDsnKTsKK29rKCRsb2NrZXItPnF1 aXQsICdsb2NrZXIgc2Vzc2lvbiBjbG9zZWQgY2xlYW5seScpOworCitvayggJG5vZGVfc3ViLT5w b2xsX3F1ZXJ5X3VudGlsKAorCQkncG9zdGdyZXMnLAorCQkiU0VMRUNUIHN1YmVuYWJsZWQgPSBm YWxzZSBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3MnIiwKKwkJJ3QnKSwK Kwknc3Vic2NyaXB0aW9uIGRpc2FibGVkIGFmdGVyIHRoZSBjb25mbGljdCcpOworCisjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIyBWZXJpZnkgdGhlIGRlZmVycmVkIGNvbmZsaWN0IGxvZyB0dXBsZSBzdXJ2aXZl ZCB0aGUgbG9jayB3YWl0LgorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK215ICRyb3dzID0gJG5vZGVfc3ViLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopIEZST00gJGNsdCBXSEVSRSBj b25mbGljdF90eXBlID0gJ2luc2VydF9leGlzdHMnIik7Citpcygkcm93cywgJzEnLAorCSdkZWZl cnJlZCBDTFQgaW5zZXJ0IGJ5IFBBIHdvcmtlciBzdWNjZWVkZWQgYWZ0ZXIgbG9jayByZWxlYXNl Jyk7CisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEFsc28gdmVyaWZ5IHRoZSBjb25mbGljdCB3YXMgcmVw b3J0ZWQgaW4gdGhlIHNlcnZlciBsb2cKKyMgKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdh bGwnIGxvZ3MgdG8gYm90aCB0aGUgdGFibGUgYW5kIHRoZSBsb2cpLgorIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K K215ICRsb2dfY29udGVudHMgPSBzbHVycF9maWxlKCRub2RlX3N1Yi0+bG9nZmlsZSwgJGxvZ19v ZmZzZXQpOworbGlrZSgKKwkkbG9nX2NvbnRlbnRzLAorCXFyL0VSUk9SOlxzK2NvbmZsaWN0IGRl dGVjdGVkIG9uIHJlbGF0aW9uICJwdWJsaWNcLnQiOiBjb25mbGljdD1pbnNlcnRfZXhpc3RzLywK KwknY29uZmxpY3QgcmVwb3J0ZWQgaW4gc2VydmVyIGxvZycpOworCitkb25lX3Rlc3RpbmcoKTsK ZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xz L3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggNGUyNzc4NjNiMmMuLmUxNWQwOWIwZDczIDEw MDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMjI0OCw2ICsyMjQ4LDcgQEAgUGF0dGVybklu Zm8KIFBhdHRlcm5JbmZvQXJyYXkKIFBhdHRlcm5fUHJlZml4X1N0YXR1cwogUGF0dGVybl9UeXBl CitQZW5kaW5nQ29uZmxpY3RMb2dEYXRhCiBQZW5kaW5nRnN5bmNFbnRyeQogUGVuZGluZ0xpc3Rl bkFjdGlvbgogUGVuZGluZ0xpc3RlbkVudHJ5Ci0tIAoyLjQ5LjAKCg== --000000000000c4ad1b0655330de9 Content-Type: application/octet-stream; name="v59-0005-Add-conflict-log-table-information-to-describe-s.patch" Content-Disposition: attachment; filename="v59-0005-Add-conflict-log-table-information-to-describe-s.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqvqwnqz4 RnJvbSAwZDQyNWJjMmJmZDdjODA2YWE0MDEwMDZlNjUwYzY1YTA0NGE3MDMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNoIEMgPHZpZ25lc2gyMUBnbWFpbC5jb20+CkRhdGU6 IFRodSwgMTEgSnVuIDIwMjYgMTc6Mzc6MDQgKzA1MzAKU3ViamVjdDogW1BBVENIIHY1OSA1LzZd IEFkZCBjb25mbGljdCBsb2cgdGFibGUgaW5mb3JtYXRpb24gdG8gZGVzY3JpYmUKIHN1YnNjcmlw dGlvbiBvdXRwdXQKCkRpc3BsYXkgdGhlIGFzc29jaWF0ZWQgY29uZmxpY3QgbG9nIHRhYmxlIGFz IGEgZm9vdGVyIGluIFxkUnMrCm91dHB1dCB3aGVuIGNvbmZsaWN0IGxvZ2dpbmcgdG8gdGFibGUv YWxsIGlzIGVuYWJsZWQgZm9yIGEKc3Vic2NyaXB0aW9uLgoKUHJldmlvdXNseSwgc3Vic2NyaXB0 aW9ucyB3ZXJlIGRpc3BsYXllZCB1c2luZyBhIHNpbmdsZSB0YWJ1bGFyCm91dHB1dCBmb3JtYXQu IFNpbmNlIHRoZSBjb25mbGljdCBsb2cgdGFibGUgaW5mb3JtYXRpb24gaXMgc3BlY2lmaWMKdG8g ZWFjaCBzdWJzY3JpcHRpb24gYW5kIGlzIGJldHRlciBzdWl0ZWQgYXMgYXV4aWxpYXJ5IGluZm9y bWF0aW9uLApjaGFuZ2UgdGhlIG91dHB1dCB0byBkaXNwbGF5IGVhY2ggc3Vic2NyaXB0aW9uIGlu ZGl2aWR1YWxseSBpbiBhCnJvdy13aXNlIHRhYmxlIGZvcm1hdCBhbmQgc2hvdyB0aGUgY29uZmxp Y3QgbG9nIHRhYmxlIGFzIGEgZm9vdGVyCndoZW4gYXBwbGljYWJsZS4KClRPRE86IEVuc3VyZSBh bGwgMTkwMDAwIHNlcmllcyByZWZlcmVuY2VzIGFyZSB1cGRhdGVkIHRvIDIwMDAwMAp3aGVuIHRo ZSB2ZXJzaW9uIG51bWJlciBpcyBidW1wZWQuCgpUaGlzIGFwcHJvYWNoIHdhcyBjaG9zZW4gYmFz ZWQgb24gc3VnZ2VzdGlvbnMgYXQ6Cmh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3NhZ2Ut aWQvQ0FBNGVLMUtkS3FLa2FUcWNqM2luNmVoRF9oZzZvT2FDRl8tSnNWZmQ4TjZuUzhvVjlnJTQw bWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmluL3BzcWwvY29tbWFuZC5jICAgICAgICAgICAgICAg ICAgICAgfCAgIDUgKy0KIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAg ICB8IDQxMCArKysrKysrKysrKysrKysrKy0tLS0KIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5oICAg ICAgICAgICAgICAgICAgICB8ICAgNSArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJz Y3JpcHRpb24ub3V0IHwgMTc2ICsrKystLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCA0MjkgaW5zZXJ0 aW9ucygrKSwgMTY3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9jb21t YW5kLmMgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCmluZGV4IDAxYjhmMTFhYWRkLi43NzdkMDU1 MzI0NiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYworKysgYi9zcmMvYmluL3Bz cWwvY29tbWFuZC5jCkBAIC0xMjIwLDcgKzEyMjAsMTAgQEAgZXhlY19jb21tYW5kX2QoUHNxbFNj YW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFuY2gsIGNvbnN0IGNoYXIgKmNtZCkK IAkJCQkJCQlzdWNjZXNzID0gbGlzdFB1YmxpY2F0aW9ucyhwYXR0ZXJuKTsKIAkJCQkJCWJyZWFr OwogCQkJCQljYXNlICdzJzoKLQkJCQkJCXN1Y2Nlc3MgPSBkZXNjcmliZVN1YnNjcmlwdGlvbnMo cGF0dGVybiwgc2hvd192ZXJib3NlKTsKKwkJCQkJCWlmIChzaG93X3ZlcmJvc2UpCisJCQkJCQkJ c3VjY2VzcyA9IGRlc2NyaWJlU3Vic2NyaXB0aW9ucyhwYXR0ZXJuKTsKKwkJCQkJCWVsc2UKKwkJ CQkJCQlzdWNjZXNzID0gbGlzdFN1YnNjcmlwdGlvbnMocGF0dGVybik7CiAJCQkJCQlicmVhazsK IAkJCQkJZGVmYXVsdDoKIAkJCQkJCXN0YXR1cyA9IFBTUUxfQ01EX1VOS05PV047CmRpZmYgLS1n aXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmlu ZGV4IGFmMzkzNWIwMDc4Li42MzJjZWIxMmJlZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTIzLDYgKzIzLDcgQEAK ICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbl9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19jb25zdHJhaW50X2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2RlZmF1bHRfYWNsX2QuaCIK KyNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZV9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19wcm9jX2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9lbGVtZW50X2QuaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX3B1YmxpY2F0aW9uX2QuaCIKQEAgLTcwODEsMTkgKzcwODIs MTcgQEAgZXJyb3JfcmV0dXJuOgogCiAvKgogICogXGRScwotICogRGVzY3JpYmVzIHN1YnNjcmlw dGlvbnMuCisgKiBMaXN0cyBzdWJzY3JpcHRpb25zLgogICoKICAqIFRha2VzIGFuIG9wdGlvbmFs IHJlZ2V4cCB0byBzZWxlY3QgcGFydGljdWxhciBzdWJzY3JpcHRpb25zCiAgKi8KIGJvb2wKLWRl c2NyaWJlU3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCits aXN0U3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQogewogCVBRRXhwQnVmZmVyRGF0 YSBidWY7CiAJUEdyZXN1bHQgICAqcmVzOwogCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBv cHQ7Ci0Jc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFs c2UsIGZhbHNlLCBmYWxzZSwKLQkJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCi0JZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0 ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OwogCiAJaWYgKHBzZXQu c3ZlcnNpb24gPCAxMDAwMDApCiAJewpAQCAtNzEwOCwxMDEgKzcxMDcsMjM1IEBAIGRlc2NyaWJl U3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJaW5pdFBR RXhwQnVmZmVyKCZidWYpOwogCiAJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgIi8qICVzICovXG4i LCBfKCJHZXQgbWF0Y2hpbmcgc3Vic2NyaXB0aW9ucyIpKTsKKworCS8qIE9ubHkgZGlzcGxheSBz dWJzY3JpcHRpb25zIGluIGN1cnJlbnQgZGF0YWJhc2UuICovCiAJYXBwZW5kUFFFeHBCdWZmZXIo JmJ1ZiwKIAkJCQkJICAiU0VMRUNUIHN1Ym5hbWUgQVMgXCIlc1wiXG4iCiAJCQkJCSAgIiwgIHBn X2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHN1Ym93bmVyKSBBUyBcIiVzXCJcbiIKIAkJCQkJICAi LCAgc3ViZW5hYmxlZCBBUyBcIiVzXCJcbiIKLQkJCQkJICAiLCAgc3VicHVibGljYXRpb25zIEFT IFwiJXNcIlxuIiwKKwkJCQkJICAiLCAgc3VicHVibGljYXRpb25zIEFTIFwiJXNcIlxuIgorCQkJ CQkgICJGUk9NIHBnX2NhdGFsb2cucGdfc3Vic2NyaXB0aW9uXG4iCisJCQkJCSAgIldIRVJFIHN1 YmRiaWQgPSAoU0VMRUNUIG9pZFxuIgorCQkJCQkgICIgICAgICAgICAgICAgICAgIEZST00gcGdf Y2F0YWxvZy5wZ19kYXRhYmFzZVxuIgorCQkJCQkgICIgICAgICAgICAgICAgICAgIFdIRVJFIGRh dG5hbWUgPSBwZ19jYXRhbG9nLmN1cnJlbnRfZGF0YWJhc2UoKSkiLAogCQkJCQkgIGdldHRleHRf bm9vcCgiTmFtZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiT3duZXIiKSwKIAkJCQkJICBnZXR0 ZXh0X25vb3AoIkVuYWJsZWQiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlB1YmxpY2F0aW9uIikp OwogCi0JaWYgKHZlcmJvc2UpCisJaWYgKCF2YWxpZGF0ZVNRTE5hbWVQYXR0ZXJuKCZidWYsIHBh dHRlcm4sIHRydWUsIGZhbHNlLAorCQkJCQkJCQlOVUxMLCAic3VibmFtZSIsIE5VTEwsCisJCQkJ CQkJCU5VTEwsCisJCQkJCQkJCU5VTEwsIDEpKQogCXsKLQkJLyogQmluYXJ5IG1vZGUgYW5kIHN0 cmVhbWluZyBhcmUgb25seSBzdXBwb3J0ZWQgaW4gdjE0IGFuZCBoaWdoZXIgKi8KLQkJaWYgKHBz ZXQuc3ZlcnNpb24gPj0gMTQwMDAwKQorCQl0ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7CisJCXJldHVy biBmYWxzZTsKKwl9CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiT1JERVIgQlkgMTsi KTsKKworCXJlcyA9IFBTUUxleGVjKGJ1Zi5kYXRhKTsKKwl0ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7 CisJaWYgKCFyZXMpCisJCXJldHVybiBmYWxzZTsKKworCW15b3B0LnRpdGxlID0gXygiTGlzdCBv ZiBzdWJzY3JpcHRpb25zIik7CisJbXlvcHQudHJhbnNsYXRlX2hlYWRlciA9IHRydWU7CisJbXlv cHQudHJhbnNsYXRlX2NvbHVtbnMgPSB0cmFuc2xhdGVfY29sdW1uczsKKwlteW9wdC5uX3RyYW5z bGF0ZV9jb2x1bW5zID0gbGVuZ3Rob2YodHJhbnNsYXRlX2NvbHVtbnMpOworCisJcHJpbnRRdWVy eShyZXMsICZteW9wdCwgcHNldC5xdWVyeUZvdXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUpOworCisJ UFFjbGVhcihyZXMpOworCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBBZGQgZm9vdGVyIHRv IHN1YnNjcmlwdGlvbiBkZXNjcmlwdGlvbi4KKyAqLworc3RhdGljIHZvaWQKK2FkZEZvb3RlclRv U3Vic2NyaXB0aW9uRGVzYyhjaGFyICpsb2dkZXN0LCBjaGFyICpjb25mbGljdF9zY2hlbWEsIE9p ZCBzdWJpZCwKKwkJCQkJCQlwcmludFRhYmxlQ29udGVudCAqY29uc3QgY29udCkKK3sKKwlpZiAo cHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCisJeworCQlpZiAoc3RyY21wKGxvZ2Rlc3QsICJ0YWJs ZSIpID09IDAgfHwgc3RyY21wKGxvZ2Rlc3QsICJhbGwiKSA9PSAwKQogCQl7Ci0JCQlhcHBlbmRQ UUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJCSAgIiwgc3ViYmluYXJ5IEFTIFwiJXNcIlxuIiwKLQkJ CQkJCQkgIGdldHRleHRfbm9vcCgiQmluYXJ5IikpOworCQkJLyoKKwkJCSAqIFRoZSBzaXplIGFj Y291bnRzIGZvciBzY2hlbWEgbmFtZSAoTkFNRURBVEFMRU4pLCByZWxhdGlvbgorCQkJICogbmFt ZSAoTkFNRURBVEFMRU4pLCBzZXBhcmF0b3IgJy4nIGFuZCBudWxsIHRlcm1pbmF0b3IuCisJCQkg Ki8KKwkJCWNoYXIJCWNvbmZsaWN0bG9ndGFibGVbTkFNRURBVEFMRU4gKyBOQU1FREFUQUxFTiAr IDJdOwogCi0JCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNjAwMDApCi0JCQkJYXBwZW5kUFFFeHBC dWZmZXIoJmJ1ZiwKLQkJCQkJCQkJICAiLCAoQ0FTRSBzdWJzdHJlYW1cbiIKLQkJCQkJCQkJICAi ICAgIFdIRU4gIiBDcHBBc1N0cmluZzIoTE9HSUNBTFJFUF9TVFJFQU1fT0ZGKSAiIFRIRU4gJ29m ZidcbiIKLQkJCQkJCQkJICAiICAgIFdIRU4gIiBDcHBBc1N0cmluZzIoTE9HSUNBTFJFUF9TVFJF QU1fT04pICIgVEhFTiAnb24nXG4iCi0JCQkJCQkJCSAgIiAgICBXSEVOICIgQ3BwQXNTdHJpbmcy KExPR0lDQUxSRVBfU1RSRUFNX1BBUkFMTEVMKSAiIFRIRU4gJ3BhcmFsbGVsJ1xuIgotCQkJCQkJ CQkgICIgICBFTkQpIEFTIFwiJXNcIlxuIiwKLQkJCQkJCQkJICBnZXR0ZXh0X25vb3AoIlN0cmVh bWluZyIpKTsKLQkJCWVsc2UKLQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJCQkg ICIsIHN1YnN0cmVhbSBBUyBcIiVzXCJcbiIsCi0JCQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJTdHJl YW1pbmciKSk7CisJCQlzbnByaW50Zihjb25mbGljdGxvZ3RhYmxlLAorCQkJCQkJc2l6ZW9mKGNv bmZsaWN0bG9ndGFibGUpLAorCQkJCQkJIiVzLiIgQ09ORkxJQ1RfTE9HX1JFTEFUSU9OX05BTUVf Rk1ULAorCQkJCQkJY29uZmxpY3Rfc2NoZW1hLCBzdWJpZCk7CisKKwkJCXByaW50VGFibGVBZGRG b290ZXIoY29udCwgXygiQ29uZmxpY3QgbG9nIHRhYmxlOiIpKTsKKwkJCXByaW50VGFibGVBZGRG b290ZXIoY29udCwKKwkJCQkJCQkJcHNwcmludGYoIiAgICBcIiVzXCIiLCBjb25mbGljdGxvZ3Rh YmxlKSk7CiAJCX0KKwl9Cit9CiAKLQkJLyogVHdvX3BoYXNlIGFuZCBkaXNhYmxlX29uX2Vycm9y IGFyZSBvbmx5IHN1cHBvcnRlZCBpbiB2MTUgYW5kIGhpZ2hlciAqLwotCQlpZiAocHNldC5zdmVy c2lvbiA+PSAxNTAwMDApCi0JCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJCSAgIiwg c3VidHdvcGhhc2VzdGF0ZSBBUyBcIiVzXCJcbiIKLQkJCQkJCQkgICIsIHN1YmRpc2FibGVvbmVy ciBBUyBcIiVzXCJcbiIsCi0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIlR3by1waGFzZSBjb21taXQi KSwKLQkJCQkJCQkgIGdldHRleHRfbm9vcCgiRGlzYWJsZSBvbiBlcnJvciIpKTsKKy8qCisgKiBc ZFJzKworICogRGVzY3JpYmVzIHN1YnNjcmlwdGlvbnMuCisgKgorICogVGFrZXMgYW4gb3B0aW9u YWwgcmVnZXhwIHRvIHNlbGVjdCBwYXJ0aWN1bGFyIHN1YnNjcmlwdGlvbnMKKyAqLworYm9vbAor ZGVzY3JpYmVTdWJzY3JpcHRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCit7CisJUFFFeHBCdWZm ZXJEYXRhIGJ1ZjsKKwlpbnQJCQlpOworCVBHcmVzdWx0ICAgKnJlczsKKwlpbnQJCQluY29sczsK KwlpbnQJCQlucm93cyA9IDE7CiAKLQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTYwMDAwKQotCQkJ YXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKLQkJCQkJCQkgICIsIHN1Ym9yaWdpbiBBUyBcIiVzXCJc biIKLQkJCQkJCQkgICIsIHN1YnBhc3N3b3JkcmVxdWlyZWQgQVMgXCIlc1wiXG4iCi0JCQkJCQkJ ICAiLCBzdWJydW5hc293bmVyIEFTIFwiJXNcIlxuIiwKLQkJCQkJCQkgIGdldHRleHRfbm9vcCgi T3JpZ2luIiksCi0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIlBhc3N3b3JkIHJlcXVpcmVkIiksCi0J CQkJCQkJICBnZXR0ZXh0X25vb3AoIlJ1biBhcyBvd25lcj8iKSk7CisJUFFFeHBCdWZmZXJEYXRh IHRpdGxlOworCXByaW50VGFibGVDb250ZW50IGNvbnQ7CiAKLQkJaWYgKHBzZXQuc3ZlcnNpb24g Pj0gMTcwMDAwKQorCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTAwMDAwKQorCXsKKwkJY2hhcgkJc3Zl cmJ1ZlszMl07CisKKwkJcGdfbG9nX2Vycm9yKCJUaGUgc2VydmVyICh2ZXJzaW9uICVzKSBkb2Vz IG5vdCBzdXBwb3J0IHN1YnNjcmlwdGlvbnMuIiwKKwkJCQkJIGZvcm1hdFBHVmVyc2lvbk51bWJl cihwc2V0LnN2ZXJzaW9uLCBmYWxzZSwKKwkJCQkJCQkJCQkgICBzdmVyYnVmLCBzaXplb2Yoc3Zl cmJ1ZikpKTsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJaW5pdFBRRXhwQnVmZmVyKCZidWYpOwor CisJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgIi8qICVzICovXG4iLCBfKCJHZXQgbWF0Y2hpbmcg c3Vic2NyaXB0aW9ucyIpKTsKKwlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkgICJTRUxF Q1Qgb2lkLCBzdWJuYW1lIEFTIFwiJXNcIlxuIgorCQkJCQkgICIsICAoU0VMRUNUIG5zcG5hbWUg RlJPTSBwZ19uYW1lc3BhY2UgV0hFUkUgb2lkID0gIiBDcHBBc1N0cmluZzIoUEdfQ09ORkxJQ1Rf TkFNRVNQQUNFKSAiKSAgQVMgIFwiJXNcIlxuIgorCQkJCQkgICIsICBwZ19jYXRhbG9nLnBnX2dl dF91c2VyYnlpZChzdWJvd25lcikgQVMgXCIlc1wiXG4iCisJCQkJCSAgIiwgIHN1YmVuYWJsZWQg QVMgXCIlc1wiXG4iCisJCQkJCSAgIiwgIHN1YnB1YmxpY2F0aW9ucyBBUyBcIiVzXCJcbiIsCisJ CQkJCSAgZ2V0dGV4dF9ub29wKCJOYW1lIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJDb25mbGlj dF9zY2hlbWEiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIiksCisJCQkJCSAgZ2V0dGV4 dF9ub29wKCJFbmFibGVkIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJQdWJsaWNhdGlvbiIpKTsK KworCS8qCisJICogb2lkLCBzdWJuYW1lIGFuZCBjb25mbGljdF9zY2hlbWEgY29sdW1ucyBhcmUg aW50ZXJuYWwgYW5kIG5vdCBkaXNwbGF5ZWQsCisJICogc28gb25seSAzIHZpc2libGUgY29sdW1u cy4KKwkgKi8KKwluY29scyA9IDM7CisKKwkvKiBCaW5hcnkgbW9kZSBhbmQgc3RyZWFtaW5nIGFy ZSBvbmx5IHN1cHBvcnRlZCBpbiB2MTQgYW5kIGhpZ2hlciAqLworCWlmIChwc2V0LnN2ZXJzaW9u ID49IDE0MDAwMCkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkgICIsIHN1 YmJpbmFyeSBBUyBcIiVzXCJcbiIsCisJCQkJCQkgIGdldHRleHRfbm9vcCgiQmluYXJ5IikpOwor CQluY29scysrOworCisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE2MDAwMCkKIAkJCWFwcGVuZFBR RXhwQnVmZmVyKCZidWYsCi0JCQkJCQkJICAiLCBzdWJmYWlsb3ZlciBBUyBcIiVzXCJcbiIsCi0J CQkJCQkJICBnZXR0ZXh0X25vb3AoIkZhaWxvdmVyIikpOwotCQlpZiAocHNldC5zdmVyc2lvbiA+ PSAxOTAwMDApCi0JCXsKKwkJCQkJCQkgICIsIChDQVNFIHN1YnN0cmVhbVxuIgorCQkJCQkJCSAg IiAgICBXSEVOICIgQ3BwQXNTdHJpbmcyKExPR0lDQUxSRVBfU1RSRUFNX09GRikgIiBUSEVOICdv ZmYnXG4iCisJCQkJCQkJICAiICAgIFdIRU4gIiBDcHBBc1N0cmluZzIoTE9HSUNBTFJFUF9TVFJF QU1fT04pICIgVEhFTiAnb24nXG4iCisJCQkJCQkJICAiICAgIFdIRU4gIiBDcHBBc1N0cmluZzIo TE9HSUNBTFJFUF9TVFJFQU1fUEFSQUxMRUwpICIgVEhFTiAncGFyYWxsZWwnXG4iCisJCQkJCQkJ ICAiICAgRU5EKSBBUyBcIiVzXCJcbiIsCisJCQkJCQkJICBnZXR0ZXh0X25vb3AoIlN0cmVhbWlu ZyIpKTsKKwkJZWxzZQogCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKLQkJCQkJCQkgICIsIChz ZWxlY3Qgc3J2bmFtZSBmcm9tIHBnX2NhdGFsb2cucGdfZm9yZWlnbl9zZXJ2ZXIgd2hlcmUgb2lk PXN1YnNlcnZlcikgQVMgXCIlc1wiXG4iLAotCQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJTZXJ2ZXIi KSk7CisJCQkJCQkJICAiLCBzdWJzdHJlYW0gQVMgXCIlc1wiXG4iLAorCQkJCQkJCSAgZ2V0dGV4 dF9ub29wKCJTdHJlYW1pbmciKSk7CiAKLQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCi0JCQkJ CQkJICAiLCBzdWJyZXRhaW5kZWFkdHVwbGVzIEFTIFwiJXNcIlxuIiwKLQkJCQkJCQkgIGdldHRl eHRfbm9vcCgiUmV0YWluIGRlYWQgdHVwbGVzIikpOworCQluY29scysrOworCX0KIAotCQkJYXBw ZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKLQkJCQkJCQkgICIsIHN1Ym1heHJldGVudGlvbiBBUyBcIiVz XCJcbiIsCi0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIk1heCByZXRlbnRpb24gZHVyYXRpb24iKSk7 CisJLyogVHdvX3BoYXNlIGFuZCBkaXNhYmxlX29uX2Vycm9yIGFyZSBvbmx5IHN1cHBvcnRlZCBp biB2MTUgYW5kIGhpZ2hlciAqLworCWlmIChwc2V0LnN2ZXJzaW9uID49IDE1MDAwMCkKKwl7CisJ CWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkgICIsIHN1YnR3b3BoYXNlc3RhdGUgQVMg XCIlc1wiXG4iCisJCQkJCQkgICIsIHN1YmRpc2FibGVvbmVyciBBUyBcIiVzXCJcbiIsCisJCQkJ CQkgIGdldHRleHRfbm9vcCgiVHdvLXBoYXNlIGNvbW1pdCIpLAorCQkJCQkJICBnZXR0ZXh0X25v b3AoIkRpc2FibGUgb24gZXJyb3IiKSk7CisJCW5jb2xzICs9IDI7CisJfQogCi0JCQlhcHBlbmRQ UUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJCSAgIiwgc3VicmV0ZW50aW9uYWN0aXZlIEFTIFwiJXNc IlxuIiwKLQkJCQkJCQkgIGdldHRleHRfbm9vcCgiUmV0ZW50aW9uIGFjdGl2ZSIpKTsKLQkJfQor CWlmIChwc2V0LnN2ZXJzaW9uID49IDE2MDAwMCkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZi dWYsCisJCQkJCQkgICIsIHN1Ym9yaWdpbiBBUyBcIiVzXCJcbiIKKwkJCQkJCSAgIiwgc3VicGFz c3dvcmRyZXF1aXJlZCBBUyBcIiVzXCJcbiIKKwkJCQkJCSAgIiwgc3VicnVuYXNvd25lciBBUyBc IiVzXCJcbiIsCisJCQkJCQkgIGdldHRleHRfbm9vcCgiT3JpZ2luIiksCisJCQkJCQkgIGdldHRl eHRfbm9vcCgiUGFzc3dvcmQgcmVxdWlyZWQiKSwKKwkJCQkJCSAgZ2V0dGV4dF9ub29wKCJSdW4g YXMgb3duZXI/IikpOworCQluY29scyArPSAzOworCX0KIAorCWlmIChwc2V0LnN2ZXJzaW9uID49 IDE3MDAwMCkKKwl7CiAJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCi0JCQkJCQkgICIsICBzdWJz eW5jY29tbWl0IEFTIFwiJXNcIlxuIgotCQkJCQkJICAiLCAgc3ViY29ubmluZm8gQVMgXCIlc1wi XG4iLAotCQkJCQkJICBnZXR0ZXh0X25vb3AoIlN5bmNocm9ub3VzIGNvbW1pdCIpLAotCQkJCQkJ ICBnZXR0ZXh0X25vb3AoIkNvbm5pbmZvIikpOworCQkJCQkJICAiLCBzdWJmYWlsb3ZlciBBUyBc IiVzXCJcbiIsCisJCQkJCQkgIGdldHRleHRfbm9vcCgiRmFpbG92ZXIiKSk7CisJCW5jb2xzKys7 CisJfQogCi0JCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAwMCkKLQkJCWFwcGVuZFBRRXhwQnVm ZmVyKCZidWYsCi0JCQkJCQkJICAiLCBzdWJ3YWxyY3Z0aW1lb3V0IEFTIFwiJXNcIlxuIiwKLQkJ CQkJCQkgIGdldHRleHRfbm9vcCgiUmVjZWl2ZXIgdGltZW91dCIpKTsKKwlpZiAocHNldC5zdmVy c2lvbiA+PSAxOTAwMDApCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAi LCAoc2VsZWN0IHNydm5hbWUgZnJvbSBwZ19jYXRhbG9nLnBnX2ZvcmVpZ25fc2VydmVyIHdoZXJl IG9pZD1zdWJzZXJ2ZXIpIEFTIFwiJXNcIlxuIgorCQkJCQkJICAiLCBzdWJyZXRhaW5kZWFkdHVw bGVzIEFTIFwiJXNcIlxuIgorCQkJCQkJICAiLCBzdWJtYXhyZXRlbnRpb24gQVMgXCIlc1wiXG4i CisJCQkJCQkgICIsIHN1YnJldGVudGlvbmFjdGl2ZSBBUyBcIiVzXCJcbiIsCisJCQkJCQkgIGdl dHRleHRfbm9vcCgiU2VydmVyIiksCisJCQkJCQkgIGdldHRleHRfbm9vcCgiUmV0YWluIGRlYWQg dHVwbGVzIiksCisJCQkJCQkgIGdldHRleHRfbm9vcCgiTWF4IHJldGVudGlvbiBkdXJhdGlvbiIp LAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIlJldGVudGlvbiBhY3RpdmUiKSk7CisJCW5jb2xzICs9 IDQ7CisJfQogCi0JCS8qIFNraXAgTFNOIGlzIG9ubHkgc3VwcG9ydGVkIGluIHYxNSBhbmQgaGln aGVyICovCi0JCWlmIChwc2V0LnN2ZXJzaW9uID49IDE1MDAwMCkKLQkJCWFwcGVuZFBRRXhwQnVm ZmVyKCZidWYsCi0JCQkJCQkJICAiLCBzdWJza2lwbHNuIEFTIFwiJXNcIlxuIiwKLQkJCQkJCQkg IGdldHRleHRfbm9vcCgiU2tpcCBMU04iKSk7CisJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJ CQkJICAiLCAgc3Vic3luY2NvbW1pdCBBUyBcIiVzXCJcbiIKKwkJCQkJICAiLCAgc3ViY29ubmlu Zm8gQVMgXCIlc1wiXG4iLAorCQkJCQkgIGdldHRleHRfbm9vcCgiU3luY2hyb25vdXMgY29tbWl0 IiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJDb25uaW5mbyIpKTsKKwluY29scyArPSAyOwogCisJ aWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQorCXsKIAkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1 ZiwKLQkJCQkJCSAgIiwgIHBnX2NhdGFsb2cub2JqX2Rlc2NyaXB0aW9uKG9pZCwgJ3BnX3N1YnNj cmlwdGlvbicpIEFTIFwiJXNcIlxuIiwKLQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJEZXNjcmlwdGlv biIpKTsKKwkJCQkJCSAgIiwgc3Vid2FscmN2dGltZW91dCBBUyBcIiVzXCJcbiIsCisJCQkJCQkg IGdldHRleHRfbm9vcCgiUmVjZWl2ZXIgdGltZW91dCIpKTsKKwkJbmNvbHMrKzsKKwl9CisKKwkv KiBTa2lwIExTTiBpcyBvbmx5IHN1cHBvcnRlZCBpbiB2MTUgYW5kIGhpZ2hlciAqLworCWlmIChw c2V0LnN2ZXJzaW9uID49IDE1MDAwMCkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJ CQkJCQkgICIsIHN1YnNraXBsc24gQVMgXCIlc1wiXG4iLAorCQkJCQkJICBnZXR0ZXh0X25vb3Ao IlNraXAgTFNOIikpOworCQluY29scysrOworCX0KKworCS8qIENvbmZsaWN0IGxvZyBkZXN0aW5h dGlvbiBpcyBzdXBwb3J0ZWQgaW4gdjE5IGFuZCBoaWdoZXIgKi8KKwlpZiAocHNldC5zdmVyc2lv biA+PSAxOTAwMDApCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAiLCBz dWJjb25mbGljdGxvZ2Rlc3QgQVMgXCIlc1wiXG4iLAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIkNv bmZsaWN0IGxvZyBkZXN0aW5hdGlvbiIpKTsKKwkJbmNvbHMrKzsKIAl9CiAKKwlhcHBlbmRQUUV4 cEJ1ZmZlcigmYnVmLAorCQkJCQkgICIsICBwZ19jYXRhbG9nLm9ial9kZXNjcmlwdGlvbihvaWQs ICdwZ19zdWJzY3JpcHRpb24nKSBBUyBcIiVzXCJcbiIsCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJE ZXNjcmlwdGlvbiIpKTsKKwluY29scysrOworCiAJLyogT25seSBkaXNwbGF5IHN1YnNjcmlwdGlv bnMgaW4gY3VycmVudCBkYXRhYmFzZS4gKi8KIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLAog CQkJCQkJICJGUk9NIHBnX2NhdGFsb2cucGdfc3Vic2NyaXB0aW9uXG4iCkBAIC03MjE5LDIwICs3 MzUyLDE0MyBAQCBkZXNjcmliZVN1YnNjcmlwdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9v bCB2ZXJib3NlKQogCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JYXBwZW5kUFFFeHBCdWZmZXJTdHIo JmJ1ZiwgIk9SREVSIEJZIDE7Iik7CisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIk9SREVS IEJZIHN1Ym5hbWU7Iik7CiAKIAlyZXMgPSBQU1FMZXhlYyhidWYuZGF0YSk7CiAJdGVybVBRRXhw QnVmZmVyKCZidWYpOwogCWlmICghcmVzKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlteW9wdC50aXRs ZSA9IF8oIkxpc3Qgb2Ygc3Vic2NyaXB0aW9ucyIpOwotCW15b3B0LnRyYW5zbGF0ZV9oZWFkZXIg PSB0cnVlOwotCW15b3B0LnRyYW5zbGF0ZV9jb2x1bW5zID0gdHJhbnNsYXRlX2NvbHVtbnM7Ci0J bXlvcHQubl90cmFuc2xhdGVfY29sdW1ucyA9IGxlbmd0aG9mKHRyYW5zbGF0ZV9jb2x1bW5zKTsK KwlpZiAoUFFudHVwbGVzKHJlcykgPT0gMCkKKwl7CisJCWlmICghcHNldC5xdWlldCkKKwkJewor CQkJaWYgKHBhdHRlcm4pCisJCQkJcGdfbG9nX2Vycm9yKCJEaWQgbm90IGZpbmQgYW55IHN1YnNj cmlwdGlvbiBuYW1lZCBcIiVzXCIuIiwKKwkJCQkJCQkgcGF0dGVybik7CisJCQllbHNlCisJCQkJ cGdfbG9nX2Vycm9yKCJEaWQgbm90IGZpbmQgYW55IHN1YnNjcmlwdGlvbnMuIik7CisJCX0KIAot CXByaW50UXVlcnkocmVzLCAmbXlvcHQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwgcHNldC5sb2dm aWxlKTsKKwkJdGVybVBRRXhwQnVmZmVyKCZidWYpOworCQlQUWNsZWFyKHJlcyk7CisJCXJldHVy biBmYWxzZTsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgUFFudHVwbGVzKHJlcyk7IGkrKykKKwl7 CisJCWNvbnN0IGNoYXIJYWxpZ24gPSAnbCc7CisJCU9pZAkJCXN1YmlkID0gYXRvb2lkKFBRZ2V0 dmFsdWUocmVzLCBpLCAwKSk7CisJCWNoYXIJICAgKnN1Ym5hbWUgPSBQUWdldHZhbHVlKHJlcywg aSwgMSk7CisJCWNoYXIJICAgKmNvbmZsaWN0X3NjaGVtYSA9IFBRZ2V0dmFsdWUocmVzLCBpLCAy KTsKKwkJaW50CQkJY3VycmVudF9jb2wgPSAzOworCQljaGFyCSAgICpsb2dkZXN0ID0gImxvZyI7 CisJCXByaW50VGFibGVPcHQgbXlvcHQgPSBwc2V0LnBvcHQudG9wdDsKKworCQlpbml0UFFFeHBC dWZmZXIoJnRpdGxlKTsKKwkJcHJpbnRmUFFFeHBCdWZmZXIoJnRpdGxlLCBfKCJTdWJzY3JpcHRp b24gJXMiKSwgc3VibmFtZSk7CisJCXByaW50VGFibGVJbml0KCZjb250LCAmbXlvcHQsIHRpdGxl LmRhdGEsIG5jb2xzLCBucm93cyk7CisKKwkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0 dGV4dF9ub29wKCJPd25lciIpLCB0cnVlLCBhbGlnbik7CisJCXByaW50VGFibGVBZGRIZWFkZXIo JmNvbnQsIGdldHRleHRfbm9vcCgiRW5hYmxlZCIpLCB0cnVlLCBhbGlnbik7CisJCXByaW50VGFi bGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiUHVibGljYXRpb24iKSwgdHJ1ZSwgYWxp Z24pOworCisJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgY3Vy cmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQ UWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisJCXByaW50 VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZh bHNlLCBmYWxzZSk7CisKKwkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTQwMDAwKQorCQl7CisJCQlw cmludFRhYmxlQWRkSGVhZGVyKCZjb250LCBnZXR0ZXh0X25vb3AoIkJpbmFyeSIpLCB0cnVlLCBh bGlnbik7CisJCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1 cnJlbnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOworCisJCQlwcmludFRhYmxlQWRkSGVhZGVyKCZj b250LCBnZXR0ZXh0X25vb3AoIlN0cmVhbWluZyIpLCB0cnVlLCBhbGlnbik7CisJCQlwcmludFRh YmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1cnJlbnRfY29sKyspLCBmYWxz ZSwgZmFsc2UpOworCQl9CisKKwkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTUwMDAwKQorCQl7CisJ CQlwcmludFRhYmxlQWRkSGVhZGVyKCZjb250LCBnZXR0ZXh0X25vb3AoIlR3by1waGFzZSBjb21t aXQiKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFs dWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwgZmFsc2UsIGZhbHNlKTsKKworCQkJcHJpbnRUYWJs ZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJEaXNhYmxlIG9uIGVycm9yIiksIHRydWUs IGFsaWduKTsKKwkJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwg Y3VycmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisJCX0KKworCQlpZiAocHNldC5zdmVyc2lv biA+PSAxNjAwMDApCisJCXsKKwkJCXByaW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRf bm9vcCgiT3JpZ2luIiksIHRydWUsIGFsaWduKTsKKwkJCXByaW50VGFibGVBZGRDZWxsKCZjb250 LCBQUWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisKKwkJ CXByaW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiUGFzc3dvcmQgcmVxdWly ZWQiKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFs dWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwgZmFsc2UsIGZhbHNlKTsKKworCQkJcHJpbnRUYWJs ZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJSdW4gYXMgb3duZXI/IiksIHRydWUsIGFs aWduKTsKKwkJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgY3Vy cmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisJCX0KKworCQlpZiAocHNldC5zdmVyc2lvbiA+ PSAxNzAwMDApCisJCXsKKwkJCXByaW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9v cCgiRmFpbG92ZXIiKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQs IFBRZ2V0dmFsdWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwgZmFsc2UsIGZhbHNlKTsKKwkJfQor CisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAwMCkKKwkJeworCQkJcHJpbnRUYWJsZUFkZEhl YWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJTZXJ2ZXIiKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJp bnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwg ZmFsc2UsIGZhbHNlKTsKKworCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9u b29wKCJSZXRhaW4gZGVhZCB0dXBsZXMiKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJpbnRUYWJsZUFk ZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwgZmFsc2UsIGZh bHNlKTsKKworCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJNYXgg cmV0ZW50aW9uIGR1cmF0aW9uIiksCisJCQkJCQkJCXRydWUsIGFsaWduKTsKKwkJCXByaW50VGFi bGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZhbHNl LCBmYWxzZSk7CiAKKwkJCXByaW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgi UmV0ZW50aW9uIGFjdGl2ZSIpLCB0cnVlLCBhbGlnbik7CisJCQlwcmludFRhYmxlQWRkQ2VsbCgm Y29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1cnJlbnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOwor CQl9CisKKwkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJTeW5jaHJv bm91cyBjb21taXQiKSwgdHJ1ZSwgYWxpZ24pOworCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwg UFFnZXR2YWx1ZShyZXMsIGksIGN1cnJlbnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOworCisJCXBy aW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiQ29ubmluZm8iKSwgdHJ1ZSwg YWxpZ24pOworCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1 cnJlbnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOworCisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5 MDAwMCkKKwkJeworCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJS ZWNlaXZlciB0aW1lb3V0IiksIHRydWUsIGFsaWduKTsKKwkJCXByaW50VGFibGVBZGRDZWxsKCZj b250LCBQUWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisJ CX0KKworCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNTAwMDApCisJCXsKKwkJCXByaW50VGFibGVB ZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiU2tpcCBMU04iKSwgdHJ1ZSwgYWxpZ24pOwor CQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCBjdXJyZW50X2Nv bCsrKSwgZmFsc2UsIGZhbHNlKTsKKwkJfQorCisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAw MCkKKwkJeworCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJDb25m bGljdCBsb2cgZGVzdGluYXRpb24iKSwKKwkJCQkJCQkJdHJ1ZSwgYWxpZ24pOworCisJCQlsb2dk ZXN0ID0gUFFnZXR2YWx1ZShyZXMsIGksIGN1cnJlbnRfY29sKyspOworCisJCQlwcmludFRhYmxl QWRkQ2VsbCgmY29udCwgbG9nZGVzdCwgZmFsc2UsIGZhbHNlKTsKKwkJfQorCisJCXByaW50VGFi bGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiRGVzY3JpcHRpb24iKSwgdHJ1ZSwgYWxp Z24pOworCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1cnJl bnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOworCisJCWFkZEZvb3RlclRvU3Vic2NyaXB0aW9uRGVz Yyhsb2dkZXN0LCBjb25mbGljdF9zY2hlbWEsIHN1YmlkLCAmY29udCk7CisKKwkJcHJpbnRUYWJs ZSgmY29udCwgcHNldC5xdWVyeUZvdXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUpOworCQlwcmludFRh YmxlQ2xlYW51cCgmY29udCk7CisKKwkJdGVybVBRRXhwQnVmZmVyKCZ0aXRsZSk7CisJfQorCisJ dGVybVBRRXhwQnVmZmVyKCZidWYpOwogCVBRY2xlYXIocmVzKTsKIAlyZXR1cm4gdHJ1ZTsKIH0K ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oIGIvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmgKaW5kZXggNDdmYWU1Y2VhZmIuLjE1YzZjNjg1MzIzIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BzcWwvZGVzY3JpYmUuaAorKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaApAQCAtMTI2LDcg KzEyNiwxMCBAQCBib29sCQlsaXN0UHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pOwog Ym9vbAkJZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybik7CiAKIC8qIFxk UnMgKi8KLWJvb2wJCWRlc2NyaWJlU3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBi b29sIHZlcmJvc2UpOworYm9vbAkJbGlzdFN1YnNjcmlwdGlvbnMoY29uc3QgY2hhciAqcGF0dGVy bik7CisKKy8qIFxkUnMrICovCitib29sCQlkZXNjcmliZVN1YnNjcmlwdGlvbnMoY29uc3QgY2hh ciAqcGF0dGVybik7CiAKIC8qIFxkQWMgKi8KIGV4dGVybiBib29sIGxpc3RPcGVyYXRvckNsYXNz ZXMoY29uc3QgY2hhciAqYWNjZXNzX21ldGhvZF9wYXR0ZXJuLApkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CmluZGV4IDZmMWIyYzQ3YTZkLi4yYTQ0Mjg0NzFkNyAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dApAQCAtMTM5LDE4 ICsxMzksMTggQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI0IENPTk5FQ1RJ T04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFUKIFdBUk5JTkc6ICBzdWJzY3JpcHRp b24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUg cmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xv dCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRv IHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRScysgcmVncmVzc190ZXN0c3ViNAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNj cmlwdGlvbnMKLSAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBj b21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBS dW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBN YXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNv bW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAg U2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1 YjQgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwg ZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBub25lICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8 ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBm ICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJl Z3Jlc3NfdGVzdHN1YjQKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1 YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2Fi bGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8g fCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24g ZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAg ICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBD b25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAg IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg ICAgfCBub25lICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAg ICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAg ICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YjQgU0VUIChvcmlnaW4gPSBhbnkpOwogXGRScysgcmVncmVzc190ZXN0c3ViNAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHN1YnNjcmlwdGlvbnMKLSAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1w aGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWly ZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBs ZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVv dXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3Nf dGVzdHN1YjQgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi fSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAg ICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg IDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0 aW9uIHJlZ3Jlc3NfdGVzdHN1YjQKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxl ZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8 IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBv d25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRl bnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExT TiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0 cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBm ICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cg ICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJUFRJT04gcmVn cmVzc190ZXN0c3ViMzsKQEAgLTIzNywxMCArMjM3LDEwIEBAIEFMVEVSIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZm9vYmFyJzsKIEVSUk9SOiAgaW52YWxpZCBjb25u ZWN0aW9uIHN0cmluZyBzeW50YXg6IG1pc3NpbmcgIj0iIGFmdGVyICJmb29iYXIiIGluIGNvbm5l Y3Rpb24gaW5mbyBzdHJpbmcKIAogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNh dGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9u IGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFp bG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0 aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgICAgRGVz Y3JpcHRpb24gICAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8 IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAg fCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAg ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgdGVzdCBzdWJzY3JpcHRpb24KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1 YnNjcmlwdGlvbiByZWdyZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1h eCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBT a2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCAgICBEZXNjcmlwdGlvbiAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8 IDAgICAgICAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAg ICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8 IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCB0ZXN0IHN1YnNjcmlwdGlv bgogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCBQVUJM SUNBVElPTiB0ZXN0cHViMiwgdGVzdHB1YjMgV0lUSCAocmVmcmVzaCA9IGZhbHNlKTsKQEAgLTI0 OSwxMCArMjQ5LDEwIEBAIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChz bG90X25hbWUgPSAnbmV3bmFtZScpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1 YiBTRVQgKHBhc3N3b3JkX3JlcXVpcmVkID0gZmFsc2UpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YiBTRVQgKHJ1bl9hc19vd25lciA9IHRydWUpOwogXGRScysKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWlu ZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dv cmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4g ZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8 IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNl aXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8ICAgIERlc2NyaXB0aW9uICAgIAotLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IHBhcmFs bGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgZiAg ICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAg ICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAt MSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IHRlc3Qgc3Vic2NyaXB0aW9uCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vi c2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1YgorICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBF bmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1w aGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWly ZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBs ZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1l b3V0IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8ICAgIERlc2NyaXB0 aW9uICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAg ICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55 ICAgIHwgZiAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAg ICAgfCBmICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdDIgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAg ICAgICAgICB8IHRlc3Qgc3Vic2NyaXB0aW9uCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElP TiByZWdyZXNzX3Rlc3RzdWIgU0VUIChwYXNzd29yZF9yZXF1aXJlZCA9IHRydWUpOwpAQCAtMjY4 LDEwICsyNjgsMTAgQEAgRVJST1I6ICB1bnJlY29nbml6ZWQgc3Vic2NyaXB0aW9uIHBhcmFtZXRl cjogImNyZWF0ZV9zbG90IgogLS0gb2sKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWIgU0tJUCAobHNuID0gJzAvMTIzNDUnKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlv bnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxl ZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2Ug Y29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwg UnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwg TWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBj b21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8 ICBTa2lwIExTTiAgfCAgICBEZXNjcmlwdGlvbiAgICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAg ICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAg ICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgLTEgICAgICAgICAgICAg ICB8IDAvMDAwMTIzNDUgfCB0ZXN0IHN1YnNjcmlwdGlvbgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiByZWdy ZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQ dWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwg RGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93 bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVu dGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExT TiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCAgICBEZXNjcmlwdGlvbiAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91 c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAg fCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAg ICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBv ZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgLTEgICAg ICAgICAgICAgICB8IDAvMDAwMTIzNDUgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCB0ZXN0 IHN1YnNjcmlwdGlvbgogKDEgcm93KQogCiAtLSBvayAtIHdpdGggbHNuID0gTk9ORQpAQCAtMjgw LDEwICsyODAsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTS0lQIChs c24gPSBOT05FKTsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0tJUCAobHNu ID0gJzAvMCcpOwogRVJST1I6ICBpbnZhbGlkIFdBTCBsb2NhdGlvbiAoTFNOKTogMC8wCiBcZFJz KwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5 IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmln aW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZl ciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRp b24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAg ICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgICAgRGVzY3JpcHRpb24gICAg Ci0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVz c19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAg ICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAg ICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAg ICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0MiB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgdGVzdCBzdWJzY3JpcHRp b24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTdWJzY3JpcHRpb24gcmVncmVzc190ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFt aW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNz d29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFp biBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZl IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJl Y2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwg ICAgRGVzY3JpcHRpb24gICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t CisgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1 YjN9IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAg ICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0MiB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgbG9nICAg ICAgICAgICAgICAgICAgICAgIHwgdGVzdCBzdWJzY3JpcHRpb24KICgxIHJvdykKIAogQkVHSU47 CkBAIC0zMTksMTAgKzMxOSwxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi X2ZvbyBTRVQgKHdhbF9yZWNlaXZlcl90aW1lb3V0ID0gJzgwcycpOwogQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1Yl9mb28gU0VUICh3YWxfcmVjZWl2ZXJfdGltZW91dCA9ICdmb29i YXInKTsKIEVSUk9SOiAgaW52YWxpZCB2YWx1ZSBmb3IgcGFyYW1ldGVyICJ3YWxfcmVjZWl2ZXJf dGltZW91dCI6ICJmb29iYXIiCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAg ICAgICAgTmFtZSAgICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1h eCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAg U2tpcCBMU04gIHwgICAgRGVzY3JpcHRpb24gICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1Yl9mb28gfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBsb2Nh bCAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgODBzICAgICAg ICAgICAgICB8IDAvMDAwMDAwMDAgfCB0ZXN0IHN1YnNjcmlwdGlvbgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24g cmVncmVzc190ZXN0c3ViX2ZvbworICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVk IHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBj b21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBS dW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBN YXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNv bW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwg IFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8ICAgIERlc2NyaXB0aW9uICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vic2Ny aXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IHBh cmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwg dCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBm ICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICAgICB8IGxvY2FsICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIg fCA4MHMgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAg ICB8IHRlc3Qgc3Vic2NyaXB0aW9uCiAoMSByb3cpCiAKIC0tIHJlbmFtZSBiYWNrIHRvIGtlZXAg dGhlIHJlc3Qgc2ltcGxlCkBAIC0zNTEsMTkgKzM1MSwxOSBAQCBDUkVBVEUgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3Qn IFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25u ZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkg Y3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5k IGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdv LXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1 aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1 cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hy b25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGlt ZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSByZWdyZXNz X3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi fSAgIHwgdCAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAg ICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg IDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlw dGlvbiByZWdyZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxl ZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8 IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBv d25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRl bnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExT TiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0 cHVifSAgIHwgdCAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBm ICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cg ICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YiBTRVQgKGJpbmFyeSA9IGZhbHNlKTsKIEFMVEVSIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKIFxkUnMrCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2Ny aXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBF bmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29t bWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVu IGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4 IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21t aXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNr aXAgTFNOICB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8 IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAg ICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFu eSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAg ICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAg ICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJlZ3Jl c3NfdGVzdHN1YgorICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGlj YXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBv biBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZh aWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJh dGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IENvbmZs aWN0IGxvZyBkZXN0aW5hdGlvbiB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LQorIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBm ICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8 IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwg ICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAg ICAgICAgICAgICB8IAogKDEgcm93KQogCiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWI7CkBAIC0zNzUsMjcgKzM3NSwyNyBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklO RzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6 ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSBy ZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBz dWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlw dGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5h YmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1p dCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBh cyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCBy ZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0 IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lw IExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAg IHwgb24gICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkg ICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAg ICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAg ICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiByZWdyZXNz X3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0 aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWls b3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRp b24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBDb25mbGlj dCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0K KyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAg ICAgIHwgb24gICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAg ICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAg ICAgICAgICAgfCAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1 YiBTRVQgKHN0cmVhbWluZyA9IHBhcmFsbGVsKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwot ICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwg UHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlz YWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVy PyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlv biBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAg ICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8 IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJh bGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQg ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAg ICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAt MSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1 YgorICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBC aW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8 IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwg U2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJl dGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAg ICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBk ZXN0aW5hdGlvbiB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jl c3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBw YXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8 IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwg ZiAgICAgICAgICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3Qg fCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAg ICB8IAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAo c3RyZWFtaW5nID0gZmFsc2UpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBT RVQgKHNsb3RfbmFtZSA9IE5PTkUpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNh dGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9u IGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFp bG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0 aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3Jp cHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8 IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9m ZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAg ICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24gcmVncmVzc190ZXN0c3ViCisgICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8 IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2lu IHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIg fCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9u IGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAg ICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0 aW9uIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAg ICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAg ICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8 IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAg ICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwgCiAo MSByb3cpCiAKIC0tIGZhaWwgLSBwdWJsaWNhdGlvbiBhbHJlYWR5IGV4aXN0cwpAQCAtNDEwLDEw ICs0MTAsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBBREQgUFVCTElD QVRJT04gdGVzdHB1YjEsIHRlc3RwdWIyIFdJVEggKHJlZnIKIEFMVEVSIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgQUREIFBVQkxJQ0FUSU9OIHRlc3RwdWIxLCB0ZXN0cHViMiBXSVRIIChy ZWZyZXNoID0gZmFsc2UpOwogRVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1YjEiIGlzIGFscmVh ZHkgaW4gc3Vic2NyaXB0aW9uICJyZWdyZXNzX3Rlc3RzdWIiCiBcZFJzKwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg c3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBFbmFibGVkIHwgICAgICAgICBQdWJsaWNhdGlvbiAgICAgICAgIHwgQmluYXJ5IHwgU3Ry ZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQ YXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJl dGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0 aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwg UmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yix0ZXN0cHViMSx0ZXN0cHViMn0gfCBmICAgICAg fCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAg ICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAg IHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAg ICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24g cmVncmVzc190ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAg ICAgICAgIFB1YmxpY2F0aW9uICAgICAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhh c2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVk IHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVz IHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91 cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0 IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IERlc2NyaXB0aW9uIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlw dGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViLHRlc3RwdWIxLHRlc3RwdWIyfSB8IGYgICAg ICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55 ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAg ICAgfCBmICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAg ICAgICAgIHwgCiAoMSByb3cpCiAKIC0tIGZhaWwgLSBwdWJsaWNhdGlvbiB1c2VkIG1vcmUgdGhh biBvbmNlCkBAIC00MjgsMTAgKzQyOCwxMCBAQCBFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHVi MyIgaXMgbm90IGluIHN1YnNjcmlwdGlvbiAicmVncmVzc190ZXN0c3ViIgogLS0gb2sgLSBkZWxl dGUgcHVibGljYXRpb25zCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIERST1Ag UFVCTElDQVRJT04gdGVzdHB1YjEsIHRlc3RwdWIyIFdJVEggKHJlZnJlc2ggPSBmYWxzZSk7CiBc ZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5n IHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29y ZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBk ZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwg U3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2 ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBy ZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0 ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg fCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1l PXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1 YnNjcmlwdGlvbiByZWdyZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1h eCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBT a2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8 IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJu YW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAg fCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViOwpAQCAtNDY3LDE5ICs0NjcsMTkgQEAgQ1JFQVRFIFNVQlNDUklQ VElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3Qg Y29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVh bGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24s IGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRS cysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8 IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQg cmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVh ZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5 bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVy IHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcmVn cmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg ZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1y ZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJz Y3JpcHRpb24gcmVncmVzc190ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVu YWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21t aXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4g YXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXgg cmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1p dCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tp cCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwgRGVzY3JpcHRpb24gCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7 dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IHAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg IHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwg bG9nICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIC0tIHdlIGNhbiBhbHRlciBz dHJlYW1pbmcgd2hlbiB0d29fcGhhc2UgZW5hYmxlZAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfdGVzdHN1YiBTRVQgKHN0cmVhbWluZyA9IHRydWUpOwogXGRScysKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRp b25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJs ZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQg fCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMg b3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0 ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8 ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBM U04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8 IG9uICAgICAgICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAg fCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAg ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24gcmVncmVzc190 ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlv biB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVy cm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92 ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9u IHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5p bmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3Qg bG9nIGRlc3RpbmF0aW9uIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisg cmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAg ICB8IG9uICAgICAgICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55 ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAg ICAgfCBmICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAg ICAgICAgIHwgCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIg U0VUIChzbG90X25hbWUgPSBOT05FKTsKQEAgLTQ4OSwxMCArNDg5LDEwIEBAIENSRUFURSBTVUJT Q1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMg bm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBt YW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0 aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1YmxpY2F0aW9ucy4K IFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBP d25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1p bmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3 b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWlu IGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUg fCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNl aXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQot IHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwg e3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBwICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8 IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U3Vic2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1YgorICAgICAgICAgICBPd25lciAgICAgICAgICAg fCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2Ug Y29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwg UnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwg TWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBj b21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwg IFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IERlc2NyaXB0aW9uIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAg IHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBwICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgMCAgICAgICAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBk Ym5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAw MCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJ UFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CkBAIC01MDUsMTgg KzUwNSwxOCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9O ICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlv biB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSBy ZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90 LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8g cmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5h bWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0 aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWls b3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRp b24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlw dGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlw dGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwg ZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2Zm ICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAg ICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiByZWdyZXNzX3Rlc3RzdWIKKyAgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwg U3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4g fCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8 IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24g YWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAg IHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRp b24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNj cmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwg IHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAg ICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwg b2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAg ICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCAKICgx IHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKGRpc2FibGVf b25fZXJyb3IgPSB0cnVlKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24g fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVy IHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8 IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5m byAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IERlc2NyaXB0aW9u IAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9u X3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAg ICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAg ICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1YgorICAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJl YW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBh c3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0 YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3Rp dmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBS ZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8 IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBk ICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAg ICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBvZmYg ICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAg ICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93 KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0g Tk9ORSk7CkBAIC01MjksMTAgKzUyOSwxMCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FS TklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJ TlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRo ZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRo ZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNj cmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1h eCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBT a2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIg fCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAg ICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAg ICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAg ICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiByZWdy ZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1Ymxp Y2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBG YWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVy YXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAg Q29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBDb25m bGljdCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwg ZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8 ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAg ICAgICAgICAgICAgfCAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwpAQCAtNTQ5LDEwICs1NDksMTAgQEAgTk9USUNF OiAgbWF4X3JldGVudGlvbl9kdXJhdGlvbiBpcyBpbmVmZmVjdGl2ZSB3aGVuIHJldGFpbl9kZWFk X3R1cGxlcyBpcyBkaXNhYmwKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1 dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBt dXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJz Y3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRp b25zLgogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0 cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwg UGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBS ZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFj dGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8 IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAg ICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAxMDAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8 IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAw MDAwIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdWJzY3JpcHRpb24gcmVncmVzc190ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1w aGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWly ZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBs ZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVv dXQgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwgRGVzY3JpcHRpb24g CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYg ICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAxMDAw ICAgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAg ICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAw MDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIC0tIGZhaWwg LSBtYXhfcmV0ZW50aW9uX2R1cmF0aW9uIG11c3QgYmUgbm9uLW5lZ2F0aXZlCkBAIC01NjEsMTAg KzU2MSwxMCBAQCBFUlJPUjogIG1heF9yZXRlbnRpb25fZHVyYXRpb24gY2Fubm90IGJlIG5lZ2F0 aXZlCiAtLSBvawogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKG1heF9y ZXRlbnRpb25fZHVyYXRpb24gPSAwKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAg TmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGlj YXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBv biBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZh aWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJh dGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IERlc2Ny aXB0aW9uIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2Ny aXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAg fCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBv ZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAg ICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1YgorICAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkg fCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdp biB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVy IHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlv biBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAg ICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5h dGlvbiB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxl bCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAg ICAgICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAg ICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IAog KDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9u YW1lID0gTk9ORSk7Ci0tIAoyLjQ5LjAKCg== --000000000000c4ad1b0655330de9 Content-Type: application/octet-stream; name="v59-0006-Documentation-patch.patch" Content-Disposition: attachment; filename="v59-0006-Documentation-patch.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqvqwnr25 RnJvbSAzMmRhNmM2NTVmMjY0OWI1ODU4OTFiMzRiZjM0NGFkZmJjNjI5NDNmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hckBEaWxpcC5sb2NhbD4K RGF0ZTogU3VuLCA1IEFwciAyMDI2IDE3OjAyOjAxICswNTMwClN1YmplY3Q6IFtQQVRDSCB2NTkg Ni82XSBEb2N1bWVudGF0aW9uIHBhdGNoCgotLS0KIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAg ICAgICAgICAgICAgICAgIHwgIDIwICsKIGRvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sICAgICAg ICAgICAgICAgIHwgIDEyICsKIGRvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwg ICAgIHwgNjY5ICsrKysrKysrKysrKystLS0tLS0tLS0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf c3Vic2NyaXB0aW9uLnNnbWwgIHwgIDEzICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJz Y3JpcHRpb24uc2dtbCB8ICA1MSArKwogNSBmaWxlcyBjaGFuZ2VkLCA0OTQgaW5zZXJ0aW9ucygr KSwgMjcxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBi L2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCA0NWRiMjBkNDdkOC4uYTc4NDg4NGRmODUgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNn bWwKQEAgLTM3NTksNiArMzc1OSwyNiBAQCBSRVZPS0UgQ1JFQVRFIE9OIFNDSEVNQSBwdWJsaWMg RlJPTSBQVUJMSUM7CiAgICA8L3BhcmE+CiAgIDwvc2VjdDI+CiAKKyAgPHNlY3QyIGlkPSJkZGwt c2NoZW1hcy1jb25mbGljdCI+CisgICA8dGl0bGU+VGhlIENvbmZsaWN0IFNjaGVtYTwvdGl0bGU+ CisKKyAgIDxpbmRleHRlcm0gem9uZT0iZGRsLXNjaGVtYXMtY29uZmxpY3QiPgorICAgIDxwcmlt YXJ5PmNvbmZsaWN0PC9wcmltYXJ5PgorICAgIDxzZWNvbmRhcnk+c2NoZW1hPC9zZWNvbmRhcnk+ CisgICA8L2luZGV4dGVybT4KKworICAgPHBhcmE+CisgICAgU2ltaWxhcmx5LCB0aGUgPGxpdGVy YWw+cGdfY29uZmxpY3Q8L2xpdGVyYWw+IHNjaGVtYSAoc29tZXRpbWVzIHJlZmVycmVkIHRvCisg ICAgYXMgdGhlIDxlbXBoYXNpcz5jb25mbGljdCBzY2hlbWE8L2VtcGhhc2lzPikgY29udGFpbnMg c3lzdGVtIG1hbmFnZWQKKyAgICBjb25mbGljdCBsb2cgdGFibGVzIHVzZWQgZm9yIGxvZ2ljYWwg cmVwbGljYXRpb24gY29uZmxpY3QgdHJhY2tpbmcuIFRoZXNlCisgICAgdGFibGVzIGFyZSBjcmVh dGVkIGFuZCBtYWludGFpbmVkIGJ5IHRoZSBzeXN0ZW0gYW5kIGFyZSBub3QgaW50ZW5kZWQgZm9y CisgICAgZGlyZWN0IHVzZXIgbWFuaXB1bGF0aW9uLiBVbmxpa2UgPGxpdGVyYWw+cGdfY2F0YWxv ZzwvbGl0ZXJhbD4sIHRoZQorICAgIDxsaXRlcmFsPnBnX2NhdGFsb2c8L2xpdGVyYWw+IHNjaGVt YSBpcyBub3QgaW1wbGljaXRseSBpbmNsdWRlZCBpbiB0aGUKKyAgICBzZWFyY2ggcGF0aCwgc28g b2JqZWN0cyB3aXRoaW4gaXQgbXVzdCBiZSByZWZlcmVuY2VkIGV4cGxpY2l0bHkgb3IgYnkKKyAg ICBhZGp1c3RpbmcgdGhlIHNlYXJjaCBwYXRoLgorICAgPC9wYXJhPgorICA8L3NlY3QyPgorCiAg IDxzZWN0MiBpZD0iZGRsLXNjaGVtYXMtcGF0dGVybnMiPgogICAgPHRpdGxlPlVzYWdlIFBhdHRl cm5zPC90aXRsZT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgYi9k b2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAppbmRleCBiODgxYWU3MTE5OC4uNTdiNjk3MGFkOWYg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9nbG9zc2FyeS5zZ21sCkBAIC01MDYsNiArNTA2LDE4IEBACiAgICA8L2dsb3NzZGVmPgogICA8 L2dsb3NzZW50cnk+CiAKKyAgPGdsb3NzZW50cnkgaWQ9Imdsb3NzYXJ5LWNvbmZsaWN0LXNjaGVt YSI+CisgICA8Z2xvc3N0ZXJtPmNvbmZsaWN0IHNjaGVtYTwvZ2xvc3N0ZXJtPgorICAgPGdsb3Nz ZGVmPgorICAgIDxwYXJhPgorICAgICBUaGUgPGxpdGVyYWw+cGdfY29uZmxpY3Q8L2xpdGVyYWw+ IHNjaGVtYSB0aGF0IGNvbnRhaW5zIHN5c3RlbS1tYW5hZ2VkCisgICAgIGNvbmZsaWN0IGxvZyB0 YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24uIFRoZXNlIHRhYmxlcyBhcmUgY3JlYXRlZAor ICAgICBhbmQgbWFpbnRhaW5lZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBzeXN0ZW0gYW5kIGFyZSBu b3QgaW50ZW5kZWQgZm9yCisgICAgIGRpcmVjdCB1c2VyIG1hbmlwdWxhdGlvbi4gU2VlIDx4cmVm IGxpbmtlbmQ9ImRkbC1zY2hlbWFzLWNvbmZsaWN0Ii8+LgorICAgIDwvcGFyYT4KKyAgIDwvZ2xv c3NkZWY+CisgIDwvZ2xvc3NlbnRyeT4KKwogICA8Z2xvc3NlbnRyeSBpZD0iZ2xvc3NhcnktY29u bmVjdGlvbiI+CiAgICA8Z2xvc3N0ZXJtPkNvbm5lY3Rpb248L2dsb3NzdGVybT4KICAgIDxnbG9z c2RlZj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCmluZGV4IDViZWZlZmQ5YzVh Li5lMWQ2Yzk0MjNiMSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRp b24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCkBAIC0y OTMsNiArMjkzLDIxIEBACiAgICBvcHRpb24gb2YgPGNvbW1hbmQ+Q1JFQVRFIFNVQlNDUklQVElP TjwvY29tbWFuZD4gZm9yIGRldGFpbHMuCiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIDxsaW5r IGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tY29uZmxpY3RzIj5Db25mbGljdHM8L2xpbms+ IHRoYXQgb2NjdXIKKyAgIGR1cmluZyByZXBsaWNhdGlvbiBhcmUsIGJ5IGRlZmF1bHQsIGxvZ2dl ZCBhcyBwbGFpbiB0ZXh0IGluIHRoZSBzZXJ2ZXIgbG9nLAorICAgd2hpY2ggY2FuIG1ha2UgYXV0 b21hdGVkIG1vbml0b3JpbmcgYW5kIGFuYWx5c2lzIGRpZmZpY3VsdC4gVGhlCisgICA8Y29tbWFu ZD5DUkVBVEUgU1VCU0NSSVBUSU9OPC9jb21tYW5kPiBjb21tYW5kIHByb3ZpZGVzIHRoZQorICAg PGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1jb25mbGlj dC1sb2ctZGVzdGluYXRpb24iPgorICAgPGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9u PC9saXRlcmFsPjwvbGluaz4gb3B0aW9uIHRvIHJlY29yZCBkZXRhaWxlZAorICAgY29uZmxpY3Qg aW5mb3JtYXRpb24gaW4gYSBzdHJ1Y3R1cmVkLCBxdWVyeWFibGUgZm9ybWF0LiBXaGVuIHRoaXMg cGFyYW1ldGVyCisgICBpcyBzZXQgdG8gPGxpdGVyYWw+dGFibGU8L2xpdGVyYWw+IG9yIDxsaXRl cmFsPmFsbDwvbGl0ZXJhbD4sIHRoZSBzeXN0ZW0KKyAgIGF1dG9tYXRpY2FsbHkgbWFuYWdlcyBh IGRlZGljYXRlZCA8Zmlyc3R0ZXJtPmNvbmZsaWN0IGxvZyB0YWJsZTwvZmlyc3R0ZXJtPiwKKyAg IHdoaWNoIGlzIGNyZWF0ZWQgYW4gZHJvcHBlZCBhbG9uZyB3aXRoIHRoZSBzdWJzY3JpcHRpb24u IFRoaXMgc2lnbmlmaWNhbnRseQorICAgaW1wcm92ZXMgcG9zdC1tb3J0ZW0gYW5hbHlzaXMgYW5k IG9wZXJhdGlvbmFsIHZpc2liaWxpdHkgb2YgdGhlIHJlcGxpY2F0aW9uCisgICBzZXR1cC4KKyAg PC9wYXJhPgorCiAgIDxzZWN0MiBpZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1zdWJzY3JpcHRpb24t c2xvdCI+CiAgICA8dGl0bGU+TG9naWNhbCBSZXBsaWNhdGlvbiBTbG90IE1hbmFnZW1lbnQ8L3Rp dGxlPgogCkBAIC0yMDA5LDEyMCArMjAyNCwyMjUgQEAgSW5jbHVkZWQgaW4gcHVibGljYXRpb25z OgogICAgb3BlcmF0aW9ucyB3aWxsIHNpbXBseSBiZSBza2lwcGVkLgogICA8L3BhcmE+CiAKLSAg PHBhcmE+Ci0gICBBZGRpdGlvbmFsIGxvZ2dpbmcgaXMgdHJpZ2dlcmVkLCBhbmQgdGhlIGNvbmZs aWN0IHN0YXRpc3RpY3MgYXJlIGNvbGxlY3RlZCAoZGlzcGxheWVkIGluIHRoZQotICAgPGxpbmsg bGlua2VuZD0ibW9uaXRvcmluZy1wZy1zdGF0LXN1YnNjcmlwdGlvbi1zdGF0cyI+PHN0cnVjdG5h bWU+cGdfc3RhdF9zdWJzY3JpcHRpb25fc3RhdHM8L3N0cnVjdG5hbWU+PC9saW5rPiB2aWV3KQot ICAgaW4gdGhlIGZvbGxvd2luZyA8Zmlyc3R0ZXJtPmNvbmZsaWN0PC9maXJzdHRlcm0+IGNhc2Vz OgotICAgPHZhcmlhYmxlbGlzdD4KLSAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGljdC1pbnNl cnQtZXhpc3RzIiB4cmVmbGFiZWw9Imluc2VydF9leGlzdHMiPgotICAgICA8dGVybT48bGl0ZXJh bD5pbnNlcnRfZXhpc3RzPC9saXRlcmFsPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAg PHBhcmE+Ci0gICAgICAgSW5zZXJ0aW5nIGEgcm93IHRoYXQgdmlvbGF0ZXMgYSA8bGl0ZXJhbD5O T1QgREVGRVJSQUJMRTwvbGl0ZXJhbD4KLSAgICAgICB1bmlxdWUgY29uc3RyYWludC4gTm90ZSB0 aGF0IHRvIGxvZyB0aGUgb3JpZ2luIGFuZCBjb21taXQKLSAgICAgICB0aW1lc3RhbXAgZGV0YWls cyBvZiB0aGUgY29uZmxpY3Rpbmcga2V5LAotICAgICAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy10cmFj ay1jb21taXQtdGltZXN0YW1wIj48dmFybmFtZT50cmFja19jb21taXRfdGltZXN0YW1wPC92YXJu YW1lPjwvbGluaz4KLSAgICAgICBzaG91bGQgYmUgZW5hYmxlZCBvbiB0aGUgc3Vic2NyaWJlci4g SW4gdGhpcyBjYXNlLCBhbiBlcnJvciB3aWxsIGJlCi0gICAgICAgcmFpc2VkIHVudGlsIHRoZSBj b25mbGljdCBpcyByZXNvbHZlZCBtYW51YWxseS4KLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0 aXRlbT4KLSAgICA8L3Zhcmxpc3RlbnRyeT4KLSAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGlj dC11cGRhdGUtb3JpZ2luLWRpZmZlcnMiIHhyZWZsYWJlbD0idXBkYXRlX29yaWdpbl9kaWZmZXJz Ij4KLSAgICAgPHRlcm0+PGxpdGVyYWw+dXBkYXRlX29yaWdpbl9kaWZmZXJzPC9saXRlcmFsPjwv dGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBhcmE+Ci0gICAgICAgVXBkYXRpbmcgYSBy b3cgdGhhdCB3YXMgcHJldmlvdXNseSBtb2RpZmllZCBieSBhbm90aGVyIG9yaWdpbi4KLSAgICAg ICBOb3RlIHRoYXQgdGhpcyBjb25mbGljdCBjYW4gb25seSBiZSBkZXRlY3RlZCB3aGVuCi0gICAg ICAgPGxpbmsgbGlua2VuZD0iZ3VjLXRyYWNrLWNvbW1pdC10aW1lc3RhbXAiPjx2YXJuYW1lPnRy YWNrX2NvbW1pdF90aW1lc3RhbXA8L3Zhcm5hbWU+PC9saW5rPgotICAgICAgIGlzIGVuYWJsZWQg b24gdGhlIHN1YnNjcmliZXIuIEN1cnJlbnRseSwgdGhlIHVwZGF0ZSBpcyBhbHdheXMgYXBwbGll ZAotICAgICAgIHJlZ2FyZGxlc3Mgb2YgdGhlIG9yaWdpbiBvZiB0aGUgbG9jYWwgcm93LgotICAg ICAgPC9wYXJhPgotICAgICA8L2xpc3RpdGVtPgotICAgIDwvdmFybGlzdGVudHJ5PgotICAgIDx2 YXJsaXN0ZW50cnkgaWQ9ImNvbmZsaWN0LXVwZGF0ZS1leGlzdHMiIHhyZWZsYWJlbD0idXBkYXRl X2V4aXN0cyI+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPnVwZGF0ZV9leGlzdHM8L2xpdGVyYWw+PC90 ZXJtPgotICAgICA8bGlzdGl0ZW0+Ci0gICAgICA8cGFyYT4KLSAgICAgICBUaGUgdXBkYXRlZCB2 YWx1ZSBvZiBhIHJvdyB2aW9sYXRlcyBhIDxsaXRlcmFsPk5PVCBERUZFUlJBQkxFPC9saXRlcmFs PgotICAgICAgIHVuaXF1ZSBjb25zdHJhaW50LiBOb3RlIHRoYXQgdG8gbG9nIHRoZSBvcmlnaW4g YW5kIGNvbW1pdAotICAgICAgIHRpbWVzdGFtcCBkZXRhaWxzIG9mIHRoZSBjb25mbGljdGluZyBr ZXksCi0gICAgICAgPGxpbmsgbGlua2VuZD0iZ3VjLXRyYWNrLWNvbW1pdC10aW1lc3RhbXAiPjx2 YXJuYW1lPnRyYWNrX2NvbW1pdF90aW1lc3RhbXA8L3Zhcm5hbWU+PC9saW5rPgotICAgICAgIHNo b3VsZCBiZSBlbmFibGVkIG9uIHRoZSBzdWJzY3JpYmVyLiBJbiB0aGlzIGNhc2UsIGFuIGVycm9y IHdpbGwgYmUKLSAgICAgICByYWlzZWQgdW50aWwgdGhlIGNvbmZsaWN0IGlzIHJlc29sdmVkIG1h bnVhbGx5LiBOb3RlIHRoYXQgd2hlbiB1cGRhdGluZyBhCi0gICAgICAgcGFydGl0aW9uZWQgdGFi bGUsIGlmIHRoZSB1cGRhdGVkIHJvdyB2YWx1ZSBzYXRpc2ZpZXMgYW5vdGhlciBwYXJ0aXRpb24K LSAgICAgICBjb25zdHJhaW50IHJlc3VsdGluZyBpbiB0aGUgcm93IGJlaW5nIGluc2VydGVkIGlu dG8gYSBuZXcgcGFydGl0aW9uLCB0aGUKLSAgICAgICA8bGl0ZXJhbD5pbnNlcnRfZXhpc3RzPC9s aXRlcmFsPiBjb25mbGljdCBtYXkgYXJpc2UgaWYgdGhlIG5ldyByb3cKLSAgICAgICB2aW9sYXRl cyBhIDxsaXRlcmFsPk5PVCBERUZFUlJBQkxFPC9saXRlcmFsPiB1bmlxdWUgY29uc3RyYWludC4K LSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8L3Zhcmxpc3RlbnRyeT4KLSAg ICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGljdC11cGRhdGUtZGVsZXRlZCIgeHJlZmxhYmVsPSJ1 cGRhdGVfZGVsZXRlZCI+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPnVwZGF0ZV9kZWxldGVkPC9saXRl cmFsPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBhcmE+Ci0gICAgICAgVGhlIHR1 cGxlIHRvIGJlIHVwZGF0ZWQgd2FzIGNvbmN1cnJlbnRseSBkZWxldGVkIGJ5IGFub3RoZXIgb3Jp Z2luLiBUaGUKLSAgICAgICB1cGRhdGUgd2lsbCBzaW1wbHkgYmUgc2tpcHBlZCBpbiB0aGlzIHNj ZW5hcmlvLiBOb3RlIHRoYXQgdGhpcyBjb25mbGljdAotICAgICAgIGNhbiBvbmx5IGJlIGRldGVj dGVkIHdoZW4KLSAgICAgICA8bGluayBsaW5rZW5kPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFt cCI+PHZhcm5hbWU+dHJhY2tfY29tbWl0X3RpbWVzdGFtcDwvdmFybmFtZT48L2xpbms+Ci0gICAg ICAgYW5kIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgt cmV0YWluLWRlYWQtdHVwbGVzIj48bGl0ZXJhbD5yZXRhaW5fZGVhZF90dXBsZXM8L2xpdGVyYWw+ PC9saW5rPgotICAgICAgIGFyZSBlbmFibGVkLiBOb3RlIHRoYXQgaWYgYSB0dXBsZSBjYW5ub3Qg YmUgZm91bmQgZHVlIHRvIHRoZSB0YWJsZSBiZWluZwotICAgICAgIHRydW5jYXRlZCwgb25seSBh IDxsaXRlcmFsPnVwZGF0ZV9taXNzaW5nPC9saXRlcmFsPiBjb25mbGljdCB3aWxsCi0gICAgICAg YXJpc2UuIEFkZGl0aW9uYWxseSwgaWYgdGhlIHR1cGxlIHdhcyBkZWxldGVkIGJ5IHRoZSBzYW1l IG9yaWdpbiwgYW4KLSAgICAgICA8bGl0ZXJhbD51cGRhdGVfbWlzc2luZzwvbGl0ZXJhbD4gY29u ZmxpY3Qgd2lsbCBhcmlzZS4KLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8 L3Zhcmxpc3RlbnRyeT4KLSAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGljdC11cGRhdGUtbWlz c2luZyIgeHJlZmxhYmVsPSJ1cGRhdGVfbWlzc2luZyI+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPnVw ZGF0ZV9taXNzaW5nPC9saXRlcmFsPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBh cmE+Ci0gICAgICAgVGhlIHJvdyB0byBiZSB1cGRhdGVkIHdhcyBub3QgZm91bmQuIFRoZSB1cGRh dGUgd2lsbCBzaW1wbHkgYmUKLSAgICAgICBza2lwcGVkIGluIHRoaXMgc2NlbmFyaW8uCi0gICAg ICA8L3BhcmE+Ci0gICAgIDwvbGlzdGl0ZW0+Ci0gICAgPC92YXJsaXN0ZW50cnk+Ci0gICAgPHZh cmxpc3RlbnRyeSBpZD0iY29uZmxpY3QtZGVsZXRlLW9yaWdpbi1kaWZmZXJzIiB4cmVmbGFiZWw9 ImRlbGV0ZV9vcmlnaW5fZGlmZmVycyI+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPmRlbGV0ZV9vcmln aW5fZGlmZmVyczwvbGl0ZXJhbD48L3Rlcm0+Ci0gICAgIDxsaXN0aXRlbT4KLSAgICAgIDxwYXJh PgotICAgICAgIERlbGV0aW5nIGEgcm93IHRoYXQgd2FzIHByZXZpb3VzbHkgbW9kaWZpZWQgYnkg YW5vdGhlciBvcmlnaW4uIE5vdGUgdGhhdAotICAgICAgIHRoaXMgY29uZmxpY3QgY2FuIG9ubHkg YmUgZGV0ZWN0ZWQgd2hlbgotICAgICAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy10cmFjay1jb21taXQt dGltZXN0YW1wIj48dmFybmFtZT50cmFja19jb21taXRfdGltZXN0YW1wPC92YXJuYW1lPjwvbGlu az4KLSAgICAgICBpcyBlbmFibGVkIG9uIHRoZSBzdWJzY3JpYmVyLiBDdXJyZW50bHksIHRoZSBk ZWxldGUgaXMgYWx3YXlzIGFwcGxpZWQKLSAgICAgICByZWdhcmRsZXNzIG9mIHRoZSBvcmlnaW4g b2YgdGhlIGxvY2FsIHJvdy4KLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8 L3Zhcmxpc3RlbnRyeT4KLSAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGljdC1kZWxldGUtbWlz c2luZyIgeHJlZmxhYmVsPSJkZWxldGVfbWlzc2luZyI+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPmRl bGV0ZV9taXNzaW5nPC9saXRlcmFsPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBh cmE+Ci0gICAgICAgVGhlIHJvdyB0byBiZSBkZWxldGVkIHdhcyBub3QgZm91bmQuIFRoZSBkZWxl dGUgd2lsbCBzaW1wbHkgYmUKLSAgICAgICBza2lwcGVkIGluIHRoaXMgc2NlbmFyaW8uCi0gICAg ICA8L3BhcmE+Ci0gICAgIDwvbGlzdGl0ZW0+Ci0gICAgPC92YXJsaXN0ZW50cnk+Ci0gICAgPHZh cmxpc3RlbnRyeSBpZD0iY29uZmxpY3QtbXVsdGlwbGUtdW5pcXVlLWNvbmZsaWN0cyIgeHJlZmxh YmVsPSJtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzIj4KLSAgICAgPHRlcm0+PGxpdGVyYWw+bXVs dGlwbGVfdW5pcXVlX2NvbmZsaWN0czwvbGl0ZXJhbD48L3Rlcm0+Ci0gICAgIDxsaXN0aXRlbT4K LSAgICAgIDxwYXJhPgotICAgICAgIEluc2VydGluZyBvciB1cGRhdGluZyBhIHJvdyB2aW9sYXRl cyBtdWx0aXBsZQotICAgICAgIDxsaXRlcmFsPk5PVCBERUZFUlJBQkxFPC9saXRlcmFsPiB1bmlx dWUgY29uc3RyYWludHMuIE5vdGUgdGhhdCB0byBsb2cKLSAgICAgICB0aGUgb3JpZ2luIGFuZCBj b21taXQgdGltZXN0YW1wIGRldGFpbHMgb2YgY29uZmxpY3Rpbmcga2V5cywgZW5zdXJlCi0gICAg ICAgdGhhdCA8bGluayBsaW5rZW5kPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFtcCI+PHZhcm5h bWU+dHJhY2tfY29tbWl0X3RpbWVzdGFtcDwvdmFybmFtZT48L2xpbms+Ci0gICAgICAgaXMgZW5h YmxlZCBvbiB0aGUgc3Vic2NyaWJlci4gSW4gdGhpcyBjYXNlLCBhbiBlcnJvciB3aWxsIGJlIHJh aXNlZCB1bnRpbAotICAgICAgIHRoZSBjb25mbGljdCBpcyByZXNvbHZlZCBtYW51YWxseS4KLSAg ICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8L3Zhcmxpc3RlbnRyeT4KLSAgIDwv dmFyaWFibGVsaXN0PgotICAgIE5vdGUgdGhhdCB0aGVyZSBhcmUgb3RoZXIgY29uZmxpY3Qgc2Nl bmFyaW9zLCBzdWNoIGFzIGV4Y2x1c2lvbiBjb25zdHJhaW50Ci0gICAgdmlvbGF0aW9ucy4gQ3Vy cmVudGx5LCB3ZSBkbyBub3QgcHJvdmlkZSBhZGRpdGlvbmFsIGRldGFpbHMgZm9yIHRoZW0gaW4g dGhlCi0gICAgbG9nLgotICA8L3BhcmE+CisgIDxzZWN0MiBpZD0ibG9naWNhbC1yZXBsaWNhdGlv bi1jb25mbGljdC1sb2dnaW5nIj4KKyAgIDx0aXRsZT5Db25mbGljdCBsb2dnaW5nPC90aXRsZT4K KyAgIDxwYXJhPgorICAgIEFkZGl0aW9uYWwgbG9nZ2luZyBpcyB0cmlnZ2VyZWQsIGFuZCB0aGUg Y29uZmxpY3Qgc3RhdGlzdGljcyBhcmUgY29sbGVjdGVkIChkaXNwbGF5ZWQgaW4gdGhlCisgICAg PGxpbmsgbGlua2VuZD0ibW9uaXRvcmluZy1wZy1zdGF0LXN1YnNjcmlwdGlvbi1zdGF0cyI+PHN0 cnVjdG5hbWU+cGdfc3RhdF9zdWJzY3JpcHRpb25fc3RhdHM8L3N0cnVjdG5hbWU+PC9saW5rPiB2 aWV3KQorICAgIGluIHRoZSBmb2xsb3dpbmcgPGZpcnN0dGVybT5jb25mbGljdDwvZmlyc3R0ZXJt PiBjYXNlczoKKyAgICA8dmFyaWFibGVsaXN0PgorICAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25m bGljdC1pbnNlcnQtZXhpc3RzIiB4cmVmbGFiZWw9Imluc2VydF9leGlzdHMiPgorICAgICAgPHRl cm0+PGxpdGVyYWw+aW5zZXJ0X2V4aXN0czwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICA8bGlzdGl0 ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIEluc2VydGluZyBhIHJvdyB0aGF0IHZpb2xhdGVz IGEgPGxpdGVyYWw+Tk9UIERFRkVSUkFCTEU8L2xpdGVyYWw+CisgICAgICAgIHVuaXF1ZSBjb25z dHJhaW50LiBOb3RlIHRoYXQgdG8gbG9nIHRoZSBvcmlnaW4gYW5kIGNvbW1pdAorICAgICAgICB0 aW1lc3RhbXAgZGV0YWlscyBvZiB0aGUgY29uZmxpY3Rpbmcga2V5LAorICAgICAgICA8bGluayBs aW5rZW5kPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFtcCI+PHZhcm5hbWU+dHJhY2tfY29tbWl0 X3RpbWVzdGFtcDwvdmFybmFtZT48L2xpbms+CisgICAgICAgIHNob3VsZCBiZSBlbmFibGVkIG9u IHRoZSBzdWJzY3JpYmVyLiBJbiB0aGlzIGNhc2UsIGFuIGVycm9yIHdpbGwgYmUKKyAgICAgICAg cmFpc2VkIHVudGlsIHRoZSBjb25mbGljdCBpcyByZXNvbHZlZCBtYW51YWxseS4KKyAgICAgICA8 L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgPHZh cmxpc3RlbnRyeSBpZD0iY29uZmxpY3QtdXBkYXRlLW9yaWdpbi1kaWZmZXJzIiB4cmVmbGFiZWw9 InVwZGF0ZV9vcmlnaW5fZGlmZmVycyI+CisgICAgICA8dGVybT48bGl0ZXJhbD51cGRhdGVfb3Jp Z2luX2RpZmZlcnM8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxw YXJhPgorICAgICAgICBVcGRhdGluZyBhIHJvdyB0aGF0IHdhcyBwcmV2aW91c2x5IG1vZGlmaWVk IGJ5IGFub3RoZXIgb3JpZ2luLgorICAgICAgICBOb3RlIHRoYXQgdGhpcyBjb25mbGljdCBjYW4g b25seSBiZSBkZXRlY3RlZCB3aGVuCisgICAgICAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy10cmFjay1j b21taXQtdGltZXN0YW1wIj48dmFybmFtZT50cmFja19jb21taXRfdGltZXN0YW1wPC92YXJuYW1l PjwvbGluaz4KKyAgICAgICAgaXMgZW5hYmxlZCBvbiB0aGUgc3Vic2NyaWJlci4gQ3VycmVudGx5 LCB0aGUgdXBkYXRlIGlzIGFsd2F5cyBhcHBsaWVkCisgICAgICAgIHJlZ2FyZGxlc3Mgb2YgdGhl IG9yaWdpbiBvZiB0aGUgbG9jYWwgcm93LgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0 ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGlj dC11cGRhdGUtZXhpc3RzIiB4cmVmbGFiZWw9InVwZGF0ZV9leGlzdHMiPgorICAgICAgPHRlcm0+ PGxpdGVyYWw+dXBkYXRlX2V4aXN0czwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+ CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSB1cGRhdGVkIHZhbHVlIG9mIGEgcm93IHZpb2xh dGVzIGEgPGxpdGVyYWw+Tk9UIERFRkVSUkFCTEU8L2xpdGVyYWw+CisgICAgICAgIHVuaXF1ZSBj b25zdHJhaW50LiBOb3RlIHRoYXQgdG8gbG9nIHRoZSBvcmlnaW4gYW5kIGNvbW1pdAorICAgICAg ICB0aW1lc3RhbXAgZGV0YWlscyBvZiB0aGUgY29uZmxpY3Rpbmcga2V5LAorICAgICAgICA8bGlu ayBsaW5rZW5kPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFtcCI+PHZhcm5hbWU+dHJhY2tfY29t bWl0X3RpbWVzdGFtcDwvdmFybmFtZT48L2xpbms+CisgICAgICAgIHNob3VsZCBiZSBlbmFibGVk IG9uIHRoZSBzdWJzY3JpYmVyLiBJbiB0aGlzIGNhc2UsIGFuIGVycm9yIHdpbGwgYmUKKyAgICAg ICAgcmFpc2VkIHVudGlsIHRoZSBjb25mbGljdCBpcyByZXNvbHZlZCBtYW51YWxseS4gTm90ZSB0 aGF0IHdoZW4gdXBkYXRpbmcgYQorICAgICAgICBwYXJ0aXRpb25lZCB0YWJsZSwgaWYgdGhlIHVw ZGF0ZWQgcm93IHZhbHVlIHNhdGlzZmllcyBhbm90aGVyIHBhcnRpdGlvbgorICAgICAgICBjb25z dHJhaW50IHJlc3VsdGluZyBpbiB0aGUgcm93IGJlaW5nIGluc2VydGVkIGludG8gYSBuZXcgcGFy dGl0aW9uLCB0aGUKKyAgICAgICAgPGxpdGVyYWw+aW5zZXJ0X2V4aXN0czwvbGl0ZXJhbD4gY29u ZmxpY3QgbWF5IGFyaXNlIGlmIHRoZSBuZXcgcm93CisgICAgICAgIHZpb2xhdGVzIGEgPGxpdGVy YWw+Tk9UIERFRkVSUkFCTEU8L2xpdGVyYWw+IHVuaXF1ZSBjb25zdHJhaW50LgorICAgICAgIDwv cGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICA8dmFy bGlzdGVudHJ5IGlkPSJjb25mbGljdC11cGRhdGUtZGVsZXRlZCIgeHJlZmxhYmVsPSJ1cGRhdGVf ZGVsZXRlZCI+CisgICAgICA8dGVybT48bGl0ZXJhbD51cGRhdGVfZGVsZXRlZDwvbGl0ZXJhbD48 L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSB0dXBs ZSB0byBiZSB1cGRhdGVkIHdhcyBjb25jdXJyZW50bHkgZGVsZXRlZCBieSBhbm90aGVyIG9yaWdp bi4gVGhlCisgICAgICAgIHVwZGF0ZSB3aWxsIHNpbXBseSBiZSBza2lwcGVkIGluIHRoaXMgc2Nl bmFyaW8uIE5vdGUgdGhhdCB0aGlzIGNvbmZsaWN0CisgICAgICAgIGNhbiBvbmx5IGJlIGRldGVj dGVkIHdoZW4KKyAgICAgICAgPGxpbmsgbGlua2VuZD0iZ3VjLXRyYWNrLWNvbW1pdC10aW1lc3Rh bXAiPjx2YXJuYW1lPnRyYWNrX2NvbW1pdF90aW1lc3RhbXA8L3Zhcm5hbWU+PC9saW5rPgorICAg ICAgICBhbmQgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0 aC1yZXRhaW4tZGVhZC10dXBsZXMiPjxsaXRlcmFsPnJldGFpbl9kZWFkX3R1cGxlczwvbGl0ZXJh bD48L2xpbms+CisgICAgICAgIGFyZSBlbmFibGVkLiBOb3RlIHRoYXQgaWYgYSB0dXBsZSBjYW5u b3QgYmUgZm91bmQgZHVlIHRvIHRoZSB0YWJsZSBiZWluZworICAgICAgICB0cnVuY2F0ZWQsIG9u bHkgYSA8bGl0ZXJhbD51cGRhdGVfbWlzc2luZzwvbGl0ZXJhbD4gY29uZmxpY3Qgd2lsbAorICAg ICAgICBhcmlzZS4gQWRkaXRpb25hbGx5LCBpZiB0aGUgdHVwbGUgd2FzIGRlbGV0ZWQgYnkgdGhl IHNhbWUgb3JpZ2luLCBhbgorICAgICAgICA8bGl0ZXJhbD51cGRhdGVfbWlzc2luZzwvbGl0ZXJh bD4gY29uZmxpY3Qgd2lsbCBhcmlzZS4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVt PgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgPHZhcmxpc3RlbnRyeSBpZD0iY29uZmxpY3Qt dXBkYXRlLW1pc3NpbmciIHhyZWZsYWJlbD0idXBkYXRlX21pc3NpbmciPgorICAgICAgPHRlcm0+ PGxpdGVyYWw+dXBkYXRlX21pc3Npbmc8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgPGxpc3RpdGVt PgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgcm93IHRvIGJlIHVwZGF0ZWQgd2FzIG5vdCBm b3VuZC4gVGhlIHVwZGF0ZSB3aWxsIHNpbXBseSBiZQorICAgICAgICBza2lwcGVkIGluIHRoaXMg c2NlbmFyaW8uCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJs aXN0ZW50cnk+CisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImNvbmZsaWN0LWRlbGV0ZS1vcmlnaW4t ZGlmZmVycyIgeHJlZmxhYmVsPSJkZWxldGVfb3JpZ2luX2RpZmZlcnMiPgorICAgICAgPHRlcm0+ PGxpdGVyYWw+ZGVsZXRlX29yaWdpbl9kaWZmZXJzPC9saXRlcmFsPjwvdGVybT4KKyAgICAgIDxs aXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgRGVsZXRpbmcgYSByb3cgdGhhdCB3YXMg cHJldmlvdXNseSBtb2RpZmllZCBieSBhbm90aGVyIG9yaWdpbi4gTm90ZSB0aGF0CisgICAgICAg IHRoaXMgY29uZmxpY3QgY2FuIG9ubHkgYmUgZGV0ZWN0ZWQgd2hlbgorICAgICAgICA8bGluayBs aW5rZW5kPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFtcCI+PHZhcm5hbWU+dHJhY2tfY29tbWl0 X3RpbWVzdGFtcDwvdmFybmFtZT48L2xpbms+CisgICAgICAgIGlzIGVuYWJsZWQgb24gdGhlIHN1 YnNjcmliZXIuIEN1cnJlbnRseSwgdGhlIGRlbGV0ZSBpcyBhbHdheXMgYXBwbGllZAorICAgICAg ICByZWdhcmRsZXNzIG9mIHRoZSBvcmlnaW4gb2YgdGhlIGxvY2FsIHJvdy4KKyAgICAgICA8L3Bh cmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgPHZhcmxp c3RlbnRyeSBpZD0iY29uZmxpY3QtZGVsZXRlLW1pc3NpbmciIHhyZWZsYWJlbD0iZGVsZXRlX21p c3NpbmciPgorICAgICAgPHRlcm0+PGxpdGVyYWw+ZGVsZXRlX21pc3Npbmc8L2xpdGVyYWw+PC90 ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgcm93IHRv IGJlIGRlbGV0ZWQgd2FzIG5vdCBmb3VuZC4gVGhlIGRlbGV0ZSB3aWxsIHNpbXBseSBiZQorICAg ICAgICBza2lwcGVkIGluIHRoaXMgc2NlbmFyaW8uCisgICAgICAgPC9wYXJhPgorICAgICAgPC9s aXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImNv bmZsaWN0LW11bHRpcGxlLXVuaXF1ZS1jb25mbGljdHMiIHhyZWZsYWJlbD0ibXVsdGlwbGVfdW5p cXVlX2NvbmZsaWN0cyI+CisgICAgICA8dGVybT48bGl0ZXJhbD5tdWx0aXBsZV91bmlxdWVfY29u ZmxpY3RzPC9saXRlcmFsPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4K KyAgICAgICAgSW5zZXJ0aW5nIG9yIHVwZGF0aW5nIGEgcm93IHZpb2xhdGVzIG11bHRpcGxlCisg ICAgICAgIDxsaXRlcmFsPk5PVCBERUZFUlJBQkxFPC9saXRlcmFsPiB1bmlxdWUgY29uc3RyYWlu dHMuIE5vdGUgdGhhdCB0byBsb2cKKyAgICAgICAgdGhlIG9yaWdpbiBhbmQgY29tbWl0IHRpbWVz dGFtcCBkZXRhaWxzIG9mIGNvbmZsaWN0aW5nIGtleXMsIGVuc3VyZQorICAgICAgICB0aGF0IDxs aW5rIGxpbmtlbmQ9Imd1Yy10cmFjay1jb21taXQtdGltZXN0YW1wIj48dmFybmFtZT50cmFja19j b21taXRfdGltZXN0YW1wPC92YXJuYW1lPjwvbGluaz4KKyAgICAgICAgaXMgZW5hYmxlZCBvbiB0 aGUgc3Vic2NyaWJlci4gSW4gdGhpcyBjYXNlLCBhbiBlcnJvciB3aWxsIGJlIHJhaXNlZCB1bnRp bAorICAgICAgICB0aGUgY29uZmxpY3QgaXMgcmVzb2x2ZWQgbWFudWFsbHkuCisgICAgICAgPC9w YXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgPC92YXJp YWJsZWxpc3Q+CisgICAgIE5vdGUgdGhhdCB0aGVyZSBhcmUgb3RoZXIgY29uZmxpY3Qgc2NlbmFy aW9zLCBzdWNoIGFzIGV4Y2x1c2lvbiBjb25zdHJhaW50CisgICAgIHZpb2xhdGlvbnMuIEN1cnJl bnRseSwgd2UgZG8gbm90IHByb3ZpZGUgYWRkaXRpb25hbCBkZXRhaWxzIGZvciB0aGVtIGluIHRo ZQorICAgICBsb2cuCisgICA8L3BhcmE+CisgIDwvc2VjdDI+CiAKLSAgPHBhcmE+Ci0gICBUaGUg bG9nIGZvcm1hdCBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMgaXMgYXMgZm9sbG93 czoKKyAgPHNlY3QyIGlkPSJsb2dpY2FsLXJlcGxpY2F0aW9uLWNvbmZsaWN0LXRhYmxlLWJhc2Vk LWxvZ2dpbmciPgorICAgPHRpdGxlPlRhYmxlLWJhc2VkIGxvZ2dpbmc8L3RpdGxlPgorICAgPHBh cmE+CisgICAgSWYgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMt d2l0aC1jb25mbGljdC1sb2ctZGVzdGluYXRpb24iPjxsaXRlcmFsPmNvbmZsaWN0X2xvZ19kZXN0 aW5hdGlvbjwvbGl0ZXJhbD48L2xpbms+CisgICAgcGFyYW1ldGVyIGlzIHNldCB0byA8bGl0ZXJh bD50YWJsZTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+YWxsPC9saXRlcmFsPiB0aGVuCisgICAgYSBk ZWRpY2F0ZWQgY29uZmxpY3QgbG9nIHRhYmxlIHdpbGwgYmUgYXV0b21hdGljYWxseSBjcmVhdGVk LiBUaGlzIHRhYmxlIGlzCisgICAgY3JlYXRlZCBpbiB0aGUgPGxpdGVyYWw+cGdfY29uZmxpY3Q8 L2xpdGVyYWw+IG5hbWVzcGFjZS4gVGhlIG5hbWUgb2YgdGhlCisgICAgY29uZmxpY3QgbG9nIHRh YmxlIGlzCisgICAgPGxpdGVyYWw+cGdfY29uZmxpY3RfbG9nX2Zvcl9zdWJpZF8mbHQ7c3ViaWQm Z3Q7PC9saXRlcmFsPi4gVGhlIHByZWRlZmluZWQKKyAgICBzY2hlbWEgb2YgdGhpcyB0YWJsZSBp cyBkZXRhaWxlZCBpbgorICAgIDx4cmVmIGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tY29u ZmxpY3QtbG9nLXNjaGVtYSIvPi4KKyAgIDwvcGFyYT4KKworICAgPHRhYmxlIGlkPSJsb2dpY2Fs LXJlcGxpY2F0aW9uLWNvbmZsaWN0LWxvZy1zY2hlbWEiPgorICAgIDx0aXRsZT5Db25mbGljdCBM b2cgVGFibGUgU2NoZW1hPC90aXRsZT4KKyAgICA8dGdyb3VwIGNvbHM9IjMiPgorICAgICA8dGhl YWQ+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT5Db2x1bW48L2VudHJ5PgorICAgICAgIDxl bnRyeT5UeXBlPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+RGVzY3JpcHRpb248L2VudHJ5PgorICAg ICAgPC9yb3c+CisgICAgIDwvdGhlYWQ+CisgICAgIDx0Ym9keT4KKyAgICAgIDxyb3c+CisgICAg ICAgPGVudHJ5PjxsaXRlcmFsPnJlbGlkPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5 Pjx0eXBlPm9pZDwvdHlwZT48L2VudHJ5PgorICAgICAgIDxlbnRyeT5UaGUgT0lEIG9mIHRoZSBs b2NhbCB0YWJsZSB3aGVyZSB0aGUgY29uZmxpY3Qgb2NjdXJyZWQuPC9lbnRyeT4KKyAgICAgIDwv cm93PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+c2NoZW1hbmFtZTwvbGl0 ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dHlwZT50ZXh0PC90eXBlPjwvZW50cnk+Cisg ICAgICAgPGVudHJ5PlRoZSBzY2hlbWEgbmFtZSBvZiB0aGUgY29uZmxpY3RpbmcgdGFibGUuPC9l bnRyeT4KKyAgICAgIDwvcm93PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+ cmVsbmFtZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dHlwZT50ZXh0PC90eXBl PjwvZW50cnk+CisgICAgICAgPGVudHJ5PlRoZSBuYW1lIG9mIHRoZSBjb25mbGljdGluZyB0YWJs ZS48L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT48bGl0 ZXJhbD5jb25mbGljdF90eXBlPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5Pjx0eXBl PnRleHQ8L3R5cGU+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+VGhlIHR5cGUgb2YgY29uZmxpY3Qg dGhhdCBvY2N1cnJlZCAoZS5nLiwgPGxpdGVyYWw+aW5zZXJ0X2V4aXN0czwvbGl0ZXJhbD4pLjwv ZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjxsaXRlcmFs PnJlbW90ZV94aWQ8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PHR5cGU+eGlkPC90 eXBlPjwvZW50cnk+CisgICAgICAgPGVudHJ5PlRoZSByZW1vdGUgdHJhbnNhY3Rpb24gSUQgdGhh dCBjYXVzZWQgdGhlIGNvbmZsaWN0LjwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+ CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPnJlbW90ZV9jb21taXRfbHNuPC9saXRlcmFsPjwvZW50 cnk+CisgICAgICAgPGVudHJ5Pjx0eXBlPnBnX2xzbjwvdHlwZT48L2VudHJ5PgorICAgICAgIDxl bnRyeT5UaGUgZmluYWwgTFNOIG9mIHRoZSByZW1vdGUgdHJhbnNhY3Rpb24uPC9lbnRyeT4KKyAg ICAgIDwvcm93PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+cmVtb3RlX2Nv bW1pdF90czwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dHlwZT50aW1lc3RhbXB0 ejwvdHlwZT48L2VudHJ5PgorICAgICAgIDxlbnRyeT5UaGUgcmVtb3RlIGNvbW1pdCB0aW1lc3Rh bXAgb2YgdGhlIHJlbW90ZSB0cmFuc2FjdGlvbi48L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAg ICA8cm93PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5yZW1vdGVfb3JpZ2luPC9saXRlcmFsPjwv ZW50cnk+CisgICAgICAgPGVudHJ5Pjx0eXBlPnRleHQ8L3R5cGU+PC9lbnRyeT4KKyAgICAgICA8 ZW50cnk+VGhlIG9yaWdpbiBvZiB0aGUgcmVtb3RlIHRyYW5zYWN0aW9uLjwvZW50cnk+CisgICAg ICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPnJlbW90ZV90dXBs ZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dHlwZT5qc29uPC90eXBlPjwvZW50 cnk+CisgICAgICAgPGVudHJ5PlRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpbmNvbWlu ZyByZW1vdGUgcm93IHRoYXQgY2F1c2VkCisgICAgICAgdGhlIGNvbmZsaWN0LjwvZW50cnk+Cisg ICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPnJlcGxpY2Ff aWRlbnRpdHk8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PHR5cGU+anNvbjwvdHlw ZT48L2VudHJ5PgorICAgICAgIDxlbnRyeT5UaGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUg cmVwbGljYSBpZGVudGl0eS48L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93PgorICAg ICAgIDxlbnRyeT48bGl0ZXJhbD5sb2NhbF9jb25mbGljdHM8L2xpdGVyYWw+PC9lbnRyeT4KKyAg ICAgICA8ZW50cnk+PHR5cGU+anNvbltdPC90eXBlPjwvZW50cnk+CisgICAgICAgPGVudHJ5Pgor ICAgICAgICBBbiBhcnJheSBvZiBKU09OIG9iamVjdHMgcmVwcmVzZW50aW5nIHRoZSBzdGF0ZSBv ZiBleGlzdGluZyBsb2NhbAorICAgICAgICByb3cocykgdGhhdCBjYXVzZWQgdGhlIGNvbmZsaWN0 LiBFYWNoIG9iamVjdCBpbmNsdWRlcyB0aGUgbG9jYWwKKyAgICAgICAgdHJhbnNhY3Rpb24gSUQg KDxsaXRlcmFsPnhpZDwvbGl0ZXJhbD4pLCBjb21taXQgdGltZXN0YW1wCisgICAgICAgICg8bGl0 ZXJhbD5jb21taXRfdHM8L2xpdGVyYWw+KSwgb3JpZ2luICg8bGl0ZXJhbD5vcmlnaW48L2xpdGVy YWw+KSwKKyAgICAgICAgY29uZmxpY3Rpbmcga2V5IGRhdGEgKDxsaXRlcmFsPmtleTwvbGl0ZXJh bD4pLCBhbmQgdGhlIGZ1bGwgbG9jYWwgcm93CisgICAgICAgIGltYWdlICg8bGl0ZXJhbD50dXBs ZTwvbGl0ZXJhbD4pLgorICAgICAgIDwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgPC90Ym9k eT4KKyAgICA8L3Rncm91cD4KKyAgIDwvdGFibGU+CisKKyAgIDxwYXJhPgorICAgIFRoZSBjb25m bGljdGluZyByb3cgZGF0YSwgaW5jbHVkaW5nIHRoZSBpbmNvbWluZyByZW1vdGUgcm93ICg8bGl0 ZXJhbD5yZW1vdGVfdHVwbGU8L2xpdGVyYWw+KQorICAgIGFuZCB0aGUgYXNzb2NpYXRlZCBsb2Nh bCBjb25mbGljdCBkZXRhaWxzICg8bGl0ZXJhbD5sb2NhbF9jb25mbGljdHM8L2xpdGVyYWw+KSwg aXMgc3RvcmVkIGluCisgICAgPHR5cGU+SlNPTjwvdHlwZT4gZm9ybWF0cyBmb3IgZmxleGlibGUg cXVlcnlpbmcgYW5kIGFuYWx5c2lzLgorICAgPC9wYXJhPgorICA8L3NlY3QyPgorCisgIDxzZWN0 MiBpZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1jb25mbGljdC1maWxlLWJhc2VkLWxvZ2dpbmciPgor ICAgPHRpdGxlPkZpbGUtYmFzZWQgbG9nZ2luZzwvdGl0bGU+CisgICA8cGFyYT4KKyAgICBJZiA8 bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWNvbmZsaWN0 LWxvZy1kZXN0aW5hdGlvbiI+PGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPC9saXRl cmFsPjwvbGluaz4KKyAgICBpcyBzZXQgdG8gPGxpdGVyYWw+bG9nPC9saXRlcmFsPiBvciA8bGl0 ZXJhbD5hbGw8L2xpdGVyYWw+IHRoZW4gY29uZmxpY3RzCisgICAgYXJlIGxvZ2dlZCB0byB0aGUg c2VydmVyIHVzaW5nIHRoZSBmb2xsb3dpbmcgZm9ybWF0OgogPHN5bm9wc2lzPgogTE9HOiAgY29u ZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gIjxyZXBsYWNlYWJsZT5zY2hlbWFuYW1lPC9yZXBs YWNlYWJsZT4uPHJlcGxhY2VhYmxlPnRhYmxlbmFtZTwvcmVwbGFjZWFibGU+IjogY29uZmxpY3Q9 PHJlcGxhY2VhYmxlPmNvbmZsaWN0X3R5cGU8L3JlcGxhY2VhYmxlPgogREVUQUlMOiAgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRldGFpbGVkX2V4cGxhbmF0aW9uPC9yZXBsYWNlYWJs ZT5bOiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGV0YWlsX3ZhbHVlczwvcmVwbGFj ZWFibGU+IFssIC4uLiBdXS4KQEAgLTIxMzUsMTgyICsyMjU1LDE4NSBAQCBERVRBSUw6ICA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGV0YWlsZWRfZXhwbGFuYXRpb248L3JlcGxhY2Vh YmxlPls6IDxyZQogICAgIDxsaXRlcmFsPnJlcGxpY2EgaWRlbnRpdHk8L2xpdGVyYWw+IHsoPHJl cGxhY2VhYmxlPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gPG9wdGlvbmFsPiwgLi4uPC9vcHRp b25hbD4pPSg8cmVwbGFjZWFibGU+Y29sdW1uX3ZhbHVlPC9yZXBsYWNlYWJsZT4gPG9wdGlvbmFs PiwgLi4uPC9vcHRpb25hbD4pIHwgZnVsbCA8b3B0aW9uYWw+KDxyZXBsYWNlYWJsZT5jb2x1bW5f bmFtZTwvcmVwbGFjZWFibGU+IDxvcHRpb25hbD4sIC4uLjwvb3B0aW9uYWw+KT08L29wdGlvbmFs Pig8cmVwbGFjZWFibGU+Y29sdW1uX3ZhbHVlPC9yZXBsYWNlYWJsZT4gPG9wdGlvbmFsPiwgLi4u PC9vcHRpb25hbD4pfQogPC9zeW5vcHNpcz4KIAotICAgVGhlIGxvZyBwcm92aWRlcyB0aGUgZm9s bG93aW5nIGluZm9ybWF0aW9uOgotICAgPHZhcmlhYmxlbGlzdD4KLSAgICA8dmFybGlzdGVudHJ5 PgotICAgICA8dGVybT48bGl0ZXJhbD5MT0c8L2xpdGVyYWw+PC90ZXJtPgotICAgICAgPGxpc3Rp dGVtPgorICAgIFRoZSBsb2cgcHJvdmlkZXMgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjoKKyAg ICA8dmFyaWFibGVsaXN0PgorICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PGxpdGVy YWw+TE9HPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxpdGVt aXplZGxpc3Q+CisgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgPHBhcmE+CisgICAgICAg ICAgPHJlcGxhY2VhYmxlPnNjaGVtYW5hbWU8L3JlcGxhY2VhYmxlPi48cmVwbGFjZWFibGU+dGFi bGVuYW1lPC9yZXBsYWNlYWJsZT4KKyAgICAgICAgICBpZGVudGlmaWVzIHRoZSBsb2NhbCByZWxh dGlvbiBpbnZvbHZlZCBpbiB0aGUgY29uZmxpY3QuCisgICAgICAgICAgPC9wYXJhPgorICAgICAg ICAgPC9saXN0aXRlbT4KKyAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICA8cGFyYT4KKyAg ICAgICAgICA8cmVwbGFjZWFibGU+Y29uZmxpY3RfdHlwZTwvcmVwbGFjZWFibGU+IGlzIHRoZSB0 eXBlIG9mIGNvbmZsaWN0IHRoYXQgb2NjdXJyZWQKKyAgICAgICAgICAoZS5nLiwgPGxpdGVyYWw+ aW5zZXJ0X2V4aXN0czwvbGl0ZXJhbD4sIDxsaXRlcmFsPnVwZGF0ZV9leGlzdHM8L2xpdGVyYWw+ KS4KKyAgICAgICAgICA8L3BhcmE+CisgICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICA8L2l0 ZW1pemVkbGlzdD4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PGxpdGVyYWw+REVUQUlMPC9saXRlcmFs PjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgPGl0ZW1pemVkbGlzdD4KICAgICAg ICAgPGxpc3RpdGVtPgogICAgICAgICAgPHBhcmE+Ci0gICAgICAgICA8cmVwbGFjZWFibGU+c2No ZW1hbmFtZTwvcmVwbGFjZWFibGU+LjxyZXBsYWNlYWJsZT50YWJsZW5hbWU8L3JlcGxhY2VhYmxl PgotICAgICAgICAgaWRlbnRpZmllcyB0aGUgbG9jYWwgcmVsYXRpb24gaW52b2x2ZWQgaW4gdGhl IGNvbmZsaWN0LgorICAgICAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZXRh aWxlZF9leHBsYW5hdGlvbjwvcmVwbGFjZWFibGU+IGluY2x1ZGVzCisgICAgICAgICAgdGhlIG9y aWdpbiwgdHJhbnNhY3Rpb24gSUQsIGFuZCBjb21taXQgdGltZXN0YW1wIG9mIHRoZSB0cmFuc2Fj dGlvbiB0aGF0CisgICAgICAgICAgbW9kaWZpZWQgdGhlIGxvY2FsIHJvdywgaWYgYXZhaWxhYmxl LgogICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICA8bGlzdGl0 ZW0+CiAgICAgICAgICA8cGFyYT4KLSAgICAgICAgIDxyZXBsYWNlYWJsZT5jb25mbGljdF90eXBl PC9yZXBsYWNlYWJsZT4gaXMgdGhlIHR5cGUgb2YgY29uZmxpY3QgdGhhdCBvY2N1cnJlZAotICAg ICAgICAgKGUuZy4sIDxsaXRlcmFsPmluc2VydF9leGlzdHM8L2xpdGVyYWw+LCA8bGl0ZXJhbD51 cGRhdGVfZXhpc3RzPC9saXRlcmFsPikuCisgICAgICAgICAgVGhlIDxsaXRlcmFsPmtleTwvbGl0 ZXJhbD4gc2VjdGlvbiBpbmNsdWRlcyB0aGUga2V5IHZhbHVlcyBvZiB0aGUgbG9jYWwKKyAgICAg ICAgICByb3cgdGhhdCB2aW9sYXRlZCBhIHVuaXF1ZSBjb25zdHJhaW50IGZvcgorICAgICAgICAg IDxsaXRlcmFsPmluc2VydF9leGlzdHM8L2xpdGVyYWw+LCA8bGl0ZXJhbD51cGRhdGVfZXhpc3Rz PC9saXRlcmFsPiBvcgorICAgICAgICAgIDxsaXRlcmFsPm11bHRpcGxlX3VuaXF1ZV9jb25mbGlj dHM8L2xpdGVyYWw+IGNvbmZsaWN0cy4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0 aXRlbT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgVGhl IDxsaXRlcmFsPmxvY2FsIHJvdzwvbGl0ZXJhbD4gc2VjdGlvbiBpbmNsdWRlcyB0aGUgbG9jYWwg cm93IGlmIGl0cworICAgICAgICAgIG9yaWdpbiBkaWZmZXJzIGZyb20gdGhlIHJlbW90ZSByb3cg Zm9yCisgICAgICAgICAgPGxpdGVyYWw+dXBkYXRlX29yaWdpbl9kaWZmZXJzPC9saXRlcmFsPiBv ciA8bGl0ZXJhbD5kZWxldGVfb3JpZ2luX2RpZmZlcnM8L2xpdGVyYWw+CisgICAgICAgICAgY29u ZmxpY3RzLCBvciBpZiB0aGUga2V5IHZhbHVlIGNvbmZsaWN0cyB3aXRoIHRoZSByZW1vdGUgcm93 IGZvcgorICAgICAgICAgIDxsaXRlcmFsPmluc2VydF9leGlzdHM8L2xpdGVyYWw+LCA8bGl0ZXJh bD51cGRhdGVfZXhpc3RzPC9saXRlcmFsPiBvcgorICAgICAgICAgIDxsaXRlcmFsPm11bHRpcGxl X3VuaXF1ZV9jb25mbGljdHM8L2xpdGVyYWw+IGNvbmZsaWN0cy4KKyAgICAgICAgIDwvcGFyYT4K KyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+ CisgICAgICAgICAgVGhlIDxsaXRlcmFsPnJlbW90ZSByb3c8L2xpdGVyYWw+IHNlY3Rpb24gaW5j bHVkZXMgdGhlIG5ldyByb3cgZnJvbQorICAgICAgICAgIHRoZSByZW1vdGUgaW5zZXJ0IG9yIHVw ZGF0ZSBvcGVyYXRpb24gdGhhdCBjYXVzZWQgdGhlIGNvbmZsaWN0LiBOb3RlIHRoYXQKKyAgICAg ICAgICBmb3IgYW4gdXBkYXRlIG9wZXJhdGlvbiwgdGhlIGNvbHVtbiB2YWx1ZSBvZiB0aGUgbmV3 IHJvdyB3aWxsIGJlIG51bGwKKyAgICAgICAgICBpZiB0aGUgdmFsdWUgaXMgdW5jaGFuZ2VkIGFu ZCB0b2FzdGVkLgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAg ICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBUaGUgPGxpdGVyYWw+cmVw bGljYSBpZGVudGl0eTwvbGl0ZXJhbD4gc2VjdGlvbiBpbmNsdWRlcyB0aGUgcmVwbGljYQorICAg ICAgICAgIGlkZW50aXR5IGtleSB2YWx1ZXMgdGhhdCB3ZXJlIHVzZWQgdG8gc2VhcmNoIGZvciB0 aGUgZXhpc3RpbmcgbG9jYWwKKyAgICAgICAgICByb3cgdG8gYmUgdXBkYXRlZCBvciBkZWxldGVk LiBUaGlzIG1heSBpbmNsdWRlIHRoZSBmdWxsIHJvdyB2YWx1ZQorICAgICAgICAgIGlmIHRoZSBs b2NhbCByZWxhdGlvbiBpcyBtYXJrZWQgd2l0aAorICAgICAgICAgIDxsaW5rIGxpbmtlbmQ9InNx bC1hbHRlcnRhYmxlLXJlcGxpY2EtaWRlbnRpdHktZnVsbCI+PGxpdGVyYWw+UkVQTElDQSBJREVO VElUWSBGVUxMPC9saXRlcmFsPjwvbGluaz4uCisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwv bGlzdGl0ZW0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAg IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+ IGlzIHRoZSBjb2x1bW4gbmFtZS4KKyAgICAgICAgICBGb3IgPGxpdGVyYWw+bG9jYWwgcm93PC9s aXRlcmFsPiwgPGxpdGVyYWw+cmVtb3RlIHJvdzwvbGl0ZXJhbD4sIGFuZAorICAgICAgICAgIDxs aXRlcmFsPnJlcGxpY2EgaWRlbnRpdHkgZnVsbDwvbGl0ZXJhbD4gY2FzZXMsIGNvbHVtbiBuYW1l cyBhcmUKKyAgICAgICAgICBsb2dnZWQgb25seSBpZiB0aGUgdXNlciBsYWNrcyB0aGUgcHJpdmls ZWdlIHRvIGFjY2VzcyBhbGwgY29sdW1ucyBvZgorICAgICAgICAgIHRoZSB0YWJsZS4gSWYgY29s dW1uIG5hbWVzIGFyZSBwcmVzZW50LCB0aGV5IGFwcGVhciBpbiB0aGUgc2FtZSBvcmRlcgorICAg ICAgICAgIGFzIHRoZSBjb3JyZXNwb25kaW5nIGNvbHVtbiB2YWx1ZXMuCisgICAgICAgICA8L3Bh cmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxw YXJhPgorICAgICAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fdmFs dWU8L3JlcGxhY2VhYmxlPiBpcyB0aGUgY29sdW1uIHZhbHVlLgorICAgICAgICAgIFRoZSBsYXJn ZSBjb2x1bW4gdmFsdWVzIGFyZSB0cnVuY2F0ZWQgdG8gNjQgYnl0ZXMuCisgICAgICAgICA8L3Bh cmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxw YXJhPgorICAgICAgICAgIE5vdGUgdGhhdCBpbiBjYXNlIG9mIDxsaXRlcmFsPm11bHRpcGxlX3Vu aXF1ZV9jb25mbGljdHM8L2xpdGVyYWw+IGNvbmZsaWN0LAorICAgICAgICAgIG11bHRpcGxlIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZXRhaWxlZF9leHBsYW5hdGlvbjwvcmVwbGFj ZWFibGU+CisgICAgICAgICAgYW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZXRh aWxfdmFsdWVzPC9yZXBsYWNlYWJsZT4gbGluZXMKKyAgICAgICAgICB3aWxsIGJlIGdlbmVyYXRl ZCwgZWFjaCBkZXRhaWxpbmcgdGhlIGNvbmZsaWN0IGluZm9ybWF0aW9uIGFzc29jaWF0ZWQKKyAg ICAgICAgICB3aXRoIGRpc3RpbmN0IHVuaXF1ZSBjb25zdHJhaW50cy4KICAgICAgICAgIDwvcGFy YT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L2l0ZW1pemVkbGlzdD4KICAgICAgIDwv bGlzdGl0ZW0+Ci0gICAgPC92YXJsaXN0ZW50cnk+Ci0KLSAgICA8dmFybGlzdGVudHJ5PgotICAg ICA8dGVybT48bGl0ZXJhbD5ERVRBSUw8L2xpdGVyYWw+PC90ZXJtPgotICAgICAgPGxpc3RpdGVt PgotICAgICAgPGl0ZW1pemVkbGlzdD4KLSAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgIDxwYXJh PgotICAgICAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRldGFpbGVkX2V4cGxh bmF0aW9uPC9yZXBsYWNlYWJsZT4gaW5jbHVkZXMKLSAgICAgICAgIHRoZSBvcmlnaW4sIHRyYW5z YWN0aW9uIElELCBhbmQgY29tbWl0IHRpbWVzdGFtcCBvZiB0aGUgdHJhbnNhY3Rpb24gdGhhdAot ICAgICAgICAgbW9kaWZpZWQgdGhlIGxvY2FsIHJvdywgaWYgYXZhaWxhYmxlLgotICAgICAgICA8 L3BhcmE+Ci0gICAgICAgPC9saXN0aXRlbT4KLSAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgIDxw YXJhPgotICAgICAgICAgVGhlIDxsaXRlcmFsPmtleTwvbGl0ZXJhbD4gc2VjdGlvbiBpbmNsdWRl cyB0aGUga2V5IHZhbHVlcyBvZiB0aGUgbG9jYWwKLSAgICAgICAgIHJvdyB0aGF0IHZpb2xhdGVk IGEgdW5pcXVlIGNvbnN0cmFpbnQgZm9yCi0gICAgICAgICA8bGl0ZXJhbD5pbnNlcnRfZXhpc3Rz PC9saXRlcmFsPiwgPGxpdGVyYWw+dXBkYXRlX2V4aXN0czwvbGl0ZXJhbD4gb3IKLSAgICAgICAg IDxsaXRlcmFsPm11bHRpcGxlX3VuaXF1ZV9jb25mbGljdHM8L2xpdGVyYWw+IGNvbmZsaWN0cy4K LSAgICAgICAgPC9wYXJhPgotICAgICAgIDwvbGlzdGl0ZW0+Ci0gICAgICAgPGxpc3RpdGVtPgot ICAgICAgICA8cGFyYT4KLSAgICAgICAgIFRoZSA8bGl0ZXJhbD5sb2NhbCByb3c8L2xpdGVyYWw+ IHNlY3Rpb24gaW5jbHVkZXMgdGhlIGxvY2FsIHJvdyBpZiBpdHMKLSAgICAgICAgIG9yaWdpbiBk aWZmZXJzIGZyb20gdGhlIHJlbW90ZSByb3cgZm9yCi0gICAgICAgICA8bGl0ZXJhbD51cGRhdGVf b3JpZ2luX2RpZmZlcnM8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPmRlbGV0ZV9vcmlnaW5fZGlmZmVy czwvbGl0ZXJhbD4KLSAgICAgICAgIGNvbmZsaWN0cywgb3IgaWYgdGhlIGtleSB2YWx1ZSBjb25m bGljdHMgd2l0aCB0aGUgcmVtb3RlIHJvdyBmb3IKLSAgICAgICAgIDxsaXRlcmFsPmluc2VydF9l eGlzdHM8L2xpdGVyYWw+LCA8bGl0ZXJhbD51cGRhdGVfZXhpc3RzPC9saXRlcmFsPiBvcgotICAg ICAgICAgPGxpdGVyYWw+bXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0czwvbGl0ZXJhbD4gY29uZmxp Y3RzLgotICAgICAgICA8L3BhcmE+Ci0gICAgICAgPC9saXN0aXRlbT4KLSAgICAgICA8bGlzdGl0 ZW0+Ci0gICAgICAgIDxwYXJhPgotICAgICAgICAgVGhlIDxsaXRlcmFsPnJlbW90ZSByb3c8L2xp dGVyYWw+IHNlY3Rpb24gaW5jbHVkZXMgdGhlIG5ldyByb3cgZnJvbQotICAgICAgICAgdGhlIHJl bW90ZSBpbnNlcnQgb3IgdXBkYXRlIG9wZXJhdGlvbiB0aGF0IGNhdXNlZCB0aGUgY29uZmxpY3Qu IE5vdGUgdGhhdAotICAgICAgICAgZm9yIGFuIHVwZGF0ZSBvcGVyYXRpb24sIHRoZSBjb2x1bW4g dmFsdWUgb2YgdGhlIG5ldyByb3cgd2lsbCBiZSBudWxsCi0gICAgICAgICBpZiB0aGUgdmFsdWUg aXMgdW5jaGFuZ2VkIGFuZCB0b2FzdGVkLgotICAgICAgICA8L3BhcmE+Ci0gICAgICAgPC9saXN0 aXRlbT4KLSAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgIDxwYXJhPgotICAgICAgICAgVGhlIDxs aXRlcmFsPnJlcGxpY2EgaWRlbnRpdHk8L2xpdGVyYWw+IHNlY3Rpb24gaW5jbHVkZXMgdGhlIHJl cGxpY2EKLSAgICAgICAgIGlkZW50aXR5IGtleSB2YWx1ZXMgdGhhdCB3ZXJlIHVzZWQgdG8gc2Vh cmNoIGZvciB0aGUgZXhpc3RpbmcgbG9jYWwKLSAgICAgICAgIHJvdyB0byBiZSB1cGRhdGVkIG9y IGRlbGV0ZWQuIFRoaXMgbWF5IGluY2x1ZGUgdGhlIGZ1bGwgcm93IHZhbHVlCi0gICAgICAgICBp ZiB0aGUgbG9jYWwgcmVsYXRpb24gaXMgbWFya2VkIHdpdGgKLSAgICAgICAgIDxsaW5rIGxpbmtl bmQ9InNxbC1hbHRlcnRhYmxlLXJlcGxpY2EtaWRlbnRpdHktZnVsbCI+PGxpdGVyYWw+UkVQTElD QSBJREVOVElUWSBGVUxMPC9saXRlcmFsPjwvbGluaz4uCi0gICAgICAgIDwvcGFyYT4KLSAgICAg ICA8L2xpc3RpdGVtPgotICAgICAgIDxsaXN0aXRlbT4KLSAgICAgICAgPHBhcmE+Ci0gICAgICAg ICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxl PiBpcyB0aGUgY29sdW1uIG5hbWUuCi0gICAgICAgICBGb3IgPGxpdGVyYWw+bG9jYWwgcm93PC9s aXRlcmFsPiwgPGxpdGVyYWw+cmVtb3RlIHJvdzwvbGl0ZXJhbD4sIGFuZAotICAgICAgICAgPGxp dGVyYWw+cmVwbGljYSBpZGVudGl0eSBmdWxsPC9saXRlcmFsPiBjYXNlcywgY29sdW1uIG5hbWVz IGFyZQotICAgICAgICAgbG9nZ2VkIG9ubHkgaWYgdGhlIHVzZXIgbGFja3MgdGhlIHByaXZpbGVn ZSB0byBhY2Nlc3MgYWxsIGNvbHVtbnMgb2YKLSAgICAgICAgIHRoZSB0YWJsZS4gSWYgY29sdW1u IG5hbWVzIGFyZSBwcmVzZW50LCB0aGV5IGFwcGVhciBpbiB0aGUgc2FtZSBvcmRlcgotICAgICAg ICAgYXMgdGhlIGNvcnJlc3BvbmRpbmcgY29sdW1uIHZhbHVlcy4KLSAgICAgICAgPC9wYXJhPgot ICAgICAgIDwvbGlzdGl0ZW0+Ci0gICAgICAgPGxpc3RpdGVtPgotICAgICAgICA8cGFyYT4KLSAg ICAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fdmFsdWU8L3JlcGxh Y2VhYmxlPiBpcyB0aGUgY29sdW1uIHZhbHVlLgotICAgICAgICAgVGhlIGxhcmdlIGNvbHVtbiB2 YWx1ZXMgYXJlIHRydW5jYXRlZCB0byA2NCBieXRlcy4KLSAgICAgICAgPC9wYXJhPgotICAgICAg IDwvbGlzdGl0ZW0+Ci0gICAgICAgPGxpc3RpdGVtPgotICAgICAgICA8cGFyYT4KLSAgICAgICAg IE5vdGUgdGhhdCBpbiBjYXNlIG9mIDxsaXRlcmFsPm11bHRpcGxlX3VuaXF1ZV9jb25mbGljdHM8 L2xpdGVyYWw+IGNvbmZsaWN0LAotICAgICAgICAgbXVsdGlwbGUgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmRldGFpbGVkX2V4cGxhbmF0aW9uPC9yZXBsYWNlYWJsZT4KLSAgICAgICAg IGFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGV0YWlsX3ZhbHVlczwvcmVwbGFj ZWFibGU+IGxpbmVzCi0gICAgICAgICB3aWxsIGJlIGdlbmVyYXRlZCwgZWFjaCBkZXRhaWxpbmcg dGhlIGNvbmZsaWN0IGluZm9ybWF0aW9uIGFzc29jaWF0ZWQKLSAgICAgICAgIHdpdGggZGlzdGlu Y3QgdW5pcXVlCi0gICAgICAgICBjb25zdHJhaW50cy4KLSAgICAgICAgPC9wYXJhPgotICAgICAg IDwvbGlzdGl0ZW0+Ci0gICAgICA8L2l0ZW1pemVkbGlzdD4KLSAgICAgPC9saXN0aXRlbT4KLSAg ICA8L3Zhcmxpc3RlbnRyeT4KLSAgIDwvdmFyaWFibGVsaXN0PgotICA8L3BhcmE+CisgICAgIDwv dmFybGlzdGVudHJ5PgorICAgIDwvdmFyaWFibGVsaXN0PgorICAgPC9wYXJhPgorICA8L3NlY3Qy PgogCi0gIDxwYXJhPgotICAgTG9naWNhbCByZXBsaWNhdGlvbiBvcGVyYXRpb25zIGFyZSBwZXJm b3JtZWQgd2l0aCB0aGUgcHJpdmlsZWdlcyBvZiB0aGUgcm9sZQotICAgd2hpY2ggb3ducyB0aGUg c3Vic2NyaXB0aW9uLiAgUGVybWlzc2lvbnMgZmFpbHVyZXMgb24gdGFyZ2V0IHRhYmxlcyB3aWxs Ci0gICBjYXVzZSByZXBsaWNhdGlvbiBjb25mbGljdHMsIGFzIHdpbGwgZW5hYmxlZAotICAgPGxp bmsgbGlua2VuZD0iZGRsLXJvd3NlY3VyaXR5Ij5yb3ctbGV2ZWwgc2VjdXJpdHk8L2xpbms+IG9u IHRhcmdldCB0YWJsZXMKLSAgIHRoYXQgdGhlIHN1YnNjcmlwdGlvbiBvd25lciBpcyBzdWJqZWN0 IHRvLCB3aXRob3V0IHJlZ2FyZCB0byB3aGV0aGVyIGFueQotICAgcG9saWN5IHdvdWxkIG9yZGlu YXJpbHkgcmVqZWN0IHRoZSA8Y29tbWFuZD5JTlNFUlQ8L2NvbW1hbmQ+LAotICAgPGNvbW1hbmQ+ VVBEQVRFPC9jb21tYW5kPiwgPGNvbW1hbmQ+REVMRVRFPC9jb21tYW5kPiBvcgotICAgPGNvbW1h bmQ+VFJVTkNBVEU8L2NvbW1hbmQ+IHdoaWNoIGlzIGJlaW5nIHJlcGxpY2F0ZWQuICBUaGlzIHJl c3RyaWN0aW9uIG9uCi0gICByb3ctbGV2ZWwgc2VjdXJpdHkgbWF5IGJlIGxpZnRlZCBpbiBhIGZ1 dHVyZSB2ZXJzaW9uIG9mCi0gICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+ LgotICA8L3BhcmE+CisgIDxzZWN0MiBpZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1jb25mbGljdC1u b3RlcyI+CisgICA8dGl0bGU+Tm90ZXM8L3RpdGxlPgorICAgPHBhcmE+CisgICAgTG9naWNhbCBy ZXBsaWNhdGlvbiBvcGVyYXRpb25zIGFyZSBwZXJmb3JtZWQgd2l0aCB0aGUgcHJpdmlsZWdlcyBv ZiB0aGUgcm9sZQorICAgIHdoaWNoIG93bnMgdGhlIHN1YnNjcmlwdGlvbi4gIFBlcm1pc3Npb25z IGZhaWx1cmVzIG9uIHRhcmdldCB0YWJsZXMgd2lsbAorICAgIGNhdXNlIHJlcGxpY2F0aW9uIGNv bmZsaWN0cywgYXMgd2lsbCBlbmFibGVkCisgICAgPGxpbmsgbGlua2VuZD0iZGRsLXJvd3NlY3Vy aXR5Ij5yb3ctbGV2ZWwgc2VjdXJpdHk8L2xpbms+IG9uIHRhcmdldCB0YWJsZXMKKyAgICB0aGF0 IHRoZSBzdWJzY3JpcHRpb24gb3duZXIgaXMgc3ViamVjdCB0bywgd2l0aG91dCByZWdhcmQgdG8g d2hldGhlciBhbnkKKyAgICBwb2xpY3kgd291bGQgb3JkaW5hcmlseSByZWplY3QgdGhlIDxjb21t YW5kPklOU0VSVDwvY29tbWFuZD4sCisgICAgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiwgPGNv bW1hbmQ+REVMRVRFPC9jb21tYW5kPiBvcgorICAgIDxjb21tYW5kPlRSVU5DQVRFPC9jb21tYW5k PiB3aGljaCBpcyBiZWluZyByZXBsaWNhdGVkLiAgVGhpcyByZXN0cmljdGlvbiBvbgorICAgIHJv dy1sZXZlbCBzZWN1cml0eSBtYXkgYmUgbGlmdGVkIGluIGEgZnV0dXJlIHZlcnNpb24gb2YKKyAg ICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+LgorICAgPC9wYXJhPgogCi0g IDxwYXJhPgotICAgQSBjb25mbGljdCB0aGF0IHByb2R1Y2VzIGFuIGVycm9yIHdpbGwgc3RvcCB0 aGUgcmVwbGljYXRpb247IGl0IG11c3QgYmUKLSAgIHJlc29sdmVkIG1hbnVhbGx5IGJ5IHRoZSB1 c2VyLiAgRGV0YWlscyBhYm91dCB0aGUgY29uZmxpY3QgY2FuIGJlIGZvdW5kIGluCi0gICB0aGUg c3Vic2NyaWJlcidzIHNlcnZlciBsb2cuCi0gIDwvcGFyYT4KKyAgIDxwYXJhPgorICAgIEEgY29u ZmxpY3QgdGhhdCBwcm9kdWNlcyBhbiBlcnJvciB3aWxsIHN0b3AgdGhlIHJlcGxpY2F0aW9uOyBp dCBtdXN0IGJlCisgICAgcmVzb2x2ZWQgbWFudWFsbHkgYnkgdGhlIHVzZXIuICBEZXRhaWxzIGFi b3V0IHRoZSBjb25mbGljdCBjYW4gYmUgZm91bmQgaW4KKyAgICB0aGUgc3Vic2NyaWJlcidzIHNl cnZlciBsb2cuCisgICA8L3BhcmE+CiAKLSAgPHBhcmE+Ci0gICBUaGUgcmVzb2x1dGlvbiBjYW4g YmUgZG9uZSBlaXRoZXIgYnkgY2hhbmdpbmcgZGF0YSBvciBwZXJtaXNzaW9ucyBvbiB0aGUgc3Vi c2NyaWJlciBzbwotICAgdGhhdCBpdCBkb2VzIG5vdCBjb25mbGljdCB3aXRoIHRoZSBpbmNvbWlu ZyBjaGFuZ2Ugb3IgYnkgc2tpcHBpbmcgdGhlCi0gICB0cmFuc2FjdGlvbiB0aGF0IGNvbmZsaWN0 cyB3aXRoIHRoZSBleGlzdGluZyBkYXRhLiAgV2hlbiBhIGNvbmZsaWN0IHByb2R1Y2VzCi0gICBh biBlcnJvciwgdGhlIHJlcGxpY2F0aW9uIHdvbid0IHByb2NlZWQsIGFuZCB0aGUgbG9naWNhbCBy ZXBsaWNhdGlvbiB3b3JrZXIgd2lsbAotICAgZW1pdCB0aGUgZm9sbG93aW5nIGtpbmQgb2YgbWVz c2FnZSB0byB0aGUgc3Vic2NyaWJlcidzIHNlcnZlciBsb2c6CisgICA8cGFyYT4KKyAgICBUaGUg cmVzb2x1dGlvbiBjYW4gYmUgZG9uZSBlaXRoZXIgYnkgY2hhbmdpbmcgZGF0YSBvciBwZXJtaXNz aW9ucyBvbiB0aGUgc3Vic2NyaWJlciBzbworICAgIHRoYXQgaXQgZG9lcyBub3QgY29uZmxpY3Qg d2l0aCB0aGUgaW5jb21pbmcgY2hhbmdlIG9yIGJ5IHNraXBwaW5nIHRoZQorICAgIHRyYW5zYWN0 aW9uIHRoYXQgY29uZmxpY3RzIHdpdGggdGhlIGV4aXN0aW5nIGRhdGEuICBXaGVuIGEgY29uZmxp Y3QgcHJvZHVjZXMKKyAgICBhbiBlcnJvciwgdGhlIHJlcGxpY2F0aW9uIHdvbid0IHByb2NlZWQs IGFuZCB0aGUgbG9naWNhbCByZXBsaWNhdGlvbiB3b3JrZXIgd2lsbAorICAgIGVtaXQgdGhlIGZv bGxvd2luZyBraW5kIG9mIG1lc3NhZ2UgdG8gdGhlIHN1YnNjcmliZXIncyBzZXJ2ZXIgbG9nOgog PHNjcmVlbj4KIEVSUk9SOiAgY29uZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gInB1YmxpYy50 ZXN0IjogY29uZmxpY3Q9aW5zZXJ0X2V4aXN0cwogREVUQUlMOiAgQ291bGQgbm90IGFwcGx5IHJl bW90ZSBjaGFuZ2U6IHJlbW90ZSByb3cgKDEsICdyZW1vdGUnKS4KIEtleSBhbHJlYWR5IGV4aXN0 cyBpbiB1bmlxdWUgaW5kZXggInRlc3RfcGtleSIsIG1vZGlmaWVkIGxvY2FsbHkgaW4gdHJhbnNh Y3Rpb24gODAwIGF0IDIwMjYtMDEtMTYgMTg6MTU6MjUuNjUyNzU5KzA5OiBrZXkgKGMpPSgxKSwg bG9jYWwgcm93ICgxLCAnbG9jYWwnKS4KIENPTlRFWFQ6ICBwcm9jZXNzaW5nIHJlbW90ZSBkYXRh IGZvciByZXBsaWNhdGlvbiBvcmlnaW4gInBnXzE2Mzk1IiBkdXJpbmcgIklOU0VSVCIgZm9yIHJl cGxpY2F0aW9uIHRhcmdldCByZWxhdGlvbiAicHVibGljLnRlc3QiIGluIHRyYW5zYWN0aW9uIDcy NSBmaW5pc2hlZCBhdCAwLzAxNEMwMzc4CiA8L3NjcmVlbj4KLSAgIFRoZSBMU04gb2YgdGhlIHRy YW5zYWN0aW9uIHRoYXQgY29udGFpbnMgdGhlIGNoYW5nZSB2aW9sYXRpbmcgdGhlIGNvbnN0cmFp bnQgYW5kCi0gICB0aGUgcmVwbGljYXRpb24gb3JpZ2luIG5hbWUgY2FuIGJlIGZvdW5kIGZyb20g dGhlIHNlcnZlciBsb2cgKExTTiAwLzAxNEMwMzc4IGFuZAotICAgcmVwbGljYXRpb24gb3JpZ2lu IDxsaXRlcmFsPnBnXzE2Mzk1PC9saXRlcmFsPiBpbiB0aGUgYWJvdmUgY2FzZSkuICBUaGUKLSAg IHRyYW5zYWN0aW9uIHRoYXQgcHJvZHVjZWQgdGhlIGNvbmZsaWN0IGNhbiBiZSBza2lwcGVkIGJ5 IHVzaW5nCi0gICA8bGluayBsaW5rZW5kPSJzcWwtYWx0ZXJzdWJzY3JpcHRpb24tcGFyYW1zLXNr aXAiPjxjb21tYW5kPkFMVEVSIFNVQlNDUklQVElPTiAuLi4gU0tJUDwvY29tbWFuZD48L2xpbms+ Ci0gICB3aXRoIHRoZSBmaW5pc2ggTFNOCi0gICAoaS5lLiwgTFNOIDAvMDE0QzAzNzgpLiAgVGhl IGZpbmlzaCBMU04gY291bGQgYmUgYW4gTFNOIGF0IHdoaWNoIHRoZSB0cmFuc2FjdGlvbgotICAg aXMgY29tbWl0dGVkIG9yIHByZXBhcmVkIG9uIHRoZSBwdWJsaXNoZXIuICBBbHRlcm5hdGl2ZWx5 LCB0aGUgdHJhbnNhY3Rpb24gY2FuCi0gICBhbHNvIGJlIHNraXBwZWQgYnkgY2FsbGluZyB0aGUg PGxpbmsgbGlua2VuZD0icGctcmVwbGljYXRpb24tb3JpZ2luLWFkdmFuY2UiPgotICAgPGZ1bmN0 aW9uPnBnX3JlcGxpY2F0aW9uX29yaWdpbl9hZHZhbmNlKCk8L2Z1bmN0aW9uPjwvbGluaz4gZnVu Y3Rpb24uCi0gICBCZWZvcmUgdXNpbmcgdGhpcyBmdW5jdGlvbiwgdGhlIHN1YnNjcmlwdGlvbiBu ZWVkcyB0byBiZSBkaXNhYmxlZCB0ZW1wb3JhcmlseQotICAgZWl0aGVyIGJ5IDxsaW5rIGxpbmtl bmQ9InNxbC1hbHRlcnN1YnNjcmlwdGlvbi1wYXJhbXMtZGlzYWJsZSI+Ci0gICA8Y29tbWFuZD5B TFRFUiBTVUJTQ1JJUFRJT04gLi4uIERJU0FCTEU8L2NvbW1hbmQ+PC9saW5rPiBvciwgdGhlCi0g ICBzdWJzY3JpcHRpb24gY2FuIGJlIHVzZWQgd2l0aCB0aGUKLSAgIDxsaW5rIGxpbmtlbmQ9InNx bC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtZGlzYWJsZS1vbi1lcnJvciI+PGxpdGVy YWw+ZGlzYWJsZV9vbl9lcnJvcjwvbGl0ZXJhbD48L2xpbms+Ci0gICBvcHRpb24uIFRoZW4sIHlv dSBjYW4gdXNlIDxmdW5jdGlvbj5wZ19yZXBsaWNhdGlvbl9vcmlnaW5fYWR2YW5jZSgpPC9mdW5j dGlvbj4KLSAgIGZ1bmN0aW9uIHdpdGggdGhlIDxwYXJhbWV0ZXI+bm9kZV9uYW1lPC9wYXJhbWV0 ZXI+IChpLmUuLCA8bGl0ZXJhbD5wZ18xNjM5NTwvbGl0ZXJhbD4pCi0gICBhbmQgdGhlIG5leHQg TFNOIG9mIHRoZSBmaW5pc2ggTFNOIChpLmUuLCAwLzAxNEMwMzc5KS4gIFRoZSBjdXJyZW50IHBv c2l0aW9uIG9mCi0gICBvcmlnaW5zIGNhbiBiZSBzZWVuIGluIHRoZSA8bGluayBsaW5rZW5kPSJ2 aWV3LXBnLXJlcGxpY2F0aW9uLW9yaWdpbi1zdGF0dXMiPgotICAgPHN0cnVjdG5hbWU+cGdfcmVw bGljYXRpb25fb3JpZ2luX3N0YXR1czwvc3RydWN0bmFtZT48L2xpbms+IHN5c3RlbSB2aWV3Lgot ICAgUGxlYXNlIG5vdGUgdGhhdCBza2lwcGluZyB0aGUgd2hvbGUgdHJhbnNhY3Rpb24gaW5jbHVk ZXMgc2tpcHBpbmcgY2hhbmdlcyB0aGF0Ci0gICBtaWdodCBub3QgdmlvbGF0ZSBhbnkgY29uc3Ry YWludC4gIFRoaXMgY2FuIGVhc2lseSBtYWtlIHRoZSBzdWJzY3JpYmVyCi0gICBpbmNvbnNpc3Rl bnQuCi0gICBUaGUgYWRkaXRpb25hbCBkZXRhaWxzIHJlZ2FyZGluZyBjb25mbGljdGluZyByb3dz LCBzdWNoIGFzIHRoZWlyIG9yaWdpbiBhbmQKLSAgIGNvbW1pdCB0aW1lc3RhbXAgY2FuIGJlIHNl ZW4gaW4gdGhlIDxsaXRlcmFsPkRFVEFJTDwvbGl0ZXJhbD4gbGluZSBvZiB0aGUKLSAgIGxvZy4g QnV0IG5vdGUgdGhhdCB0aGlzIGluZm9ybWF0aW9uIGlzIG9ubHkgYXZhaWxhYmxlIHdoZW4KLSAg IDxsaW5rIGxpbmtlbmQ9Imd1Yy10cmFjay1jb21taXQtdGltZXN0YW1wIj48dmFybmFtZT50cmFj a19jb21taXRfdGltZXN0YW1wPC92YXJuYW1lPjwvbGluaz4KLSAgIGlzIGVuYWJsZWQgb24gdGhl IHN1YnNjcmliZXIuIFVzZXJzIGNhbiB1c2UgdGhpcyBpbmZvcm1hdGlvbiB0byBkZWNpZGUKLSAg IHdoZXRoZXIgdG8gcmV0YWluIHRoZSBsb2NhbCBjaGFuZ2Ugb3IgYWRvcHQgdGhlIHJlbW90ZSBh bHRlcmF0aW9uLiBGb3IKLSAgIGluc3RhbmNlLCB0aGUgPGxpdGVyYWw+REVUQUlMPC9saXRlcmFs PiBsaW5lIGluIHRoZSBhYm92ZSBsb2cgaW5kaWNhdGVzIHRoYXQKLSAgIHRoZSBleGlzdGluZyBy b3cgd2FzIG1vZGlmaWVkIGxvY2FsbHkuIFVzZXJzIGNhbiBtYW51YWxseSBwZXJmb3JtIGEKLSAg IHJlbW90ZS1jaGFuZ2Utd2luLgotICA8L3BhcmE+Ci0KLSAgPHBhcmE+Ci0gICBXaGVuIHRoZQot ICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1zdHJl YW1pbmciPjxsaXRlcmFsPnN0cmVhbWluZzwvbGl0ZXJhbD48L2xpbms+Ci0gICBtb2RlIGlzIDxs aXRlcmFsPnBhcmFsbGVsPC9saXRlcmFsPiwgdGhlIGZpbmlzaCBMU04gb2YgZmFpbGVkIHRyYW5z YWN0aW9ucwotICAgbWF5IG5vdCBiZSBsb2dnZWQuIEluIHRoYXQgY2FzZSwgaXQgbWF5IGJlIG5l Y2Vzc2FyeSB0byBjaGFuZ2UgdGhlIHN0cmVhbWluZwotICAgbW9kZSB0byA8bGl0ZXJhbD5vbjwv bGl0ZXJhbD4gb3IgPGxpdGVyYWw+b2ZmPC9saXRlcmFsPiBhbmQgY2F1c2UgdGhlIHNhbWUKLSAg IGNvbmZsaWN0cyBhZ2FpbiBzbyB0aGUgZmluaXNoIExTTiBvZiB0aGUgZmFpbGVkIHRyYW5zYWN0 aW9uIHdpbGwgYmUgd3JpdHRlbgotICAgdG8gdGhlIHNlcnZlciBsb2cuIEZvciB0aGUgdXNhZ2Ug b2YgZmluaXNoIExTTiwgcGxlYXNlIHJlZmVyIHRvIDxsaW5rCi0gICBsaW5rZW5kPSJzcWwtYWx0 ZXJzdWJzY3JpcHRpb24iPjxjb21tYW5kPkFMVEVSIFNVQlNDUklQVElPTiAuLi4KLSAgIFNLSVA8 L2NvbW1hbmQ+PC9saW5rPi4KLSAgPC9wYXJhPgorICAgIFRoZSBMU04gb2YgdGhlIHRyYW5zYWN0 aW9uIHRoYXQgY29udGFpbnMgdGhlIGNoYW5nZSB2aW9sYXRpbmcgdGhlIGNvbnN0cmFpbnQgYW5k CisgICAgdGhlIHJlcGxpY2F0aW9uIG9yaWdpbiBuYW1lIGNhbiBiZSBmb3VuZCBmcm9tIHRoZSBz ZXJ2ZXIgbG9nIChMU04gMC8wMTRDMDM3OCBhbmQKKyAgICByZXBsaWNhdGlvbiBvcmlnaW4gPGxp dGVyYWw+cGdfMTYzOTU8L2xpdGVyYWw+IGluIHRoZSBhYm92ZSBjYXNlKS4gIFRoZQorICAgIHRy YW5zYWN0aW9uIHRoYXQgcHJvZHVjZWQgdGhlIGNvbmZsaWN0IGNhbiBiZSBza2lwcGVkIGJ5IHVz aW5nCisgICAgPGxpbmsgbGlua2VuZD0ic3FsLWFsdGVyc3Vic2NyaXB0aW9uLXBhcmFtcy1za2lw Ij48Y29tbWFuZD5BTFRFUiBTVUJTQ1JJUFRJT04gLi4uIFNLSVA8L2NvbW1hbmQ+PC9saW5rPgor ICAgIHdpdGggdGhlIGZpbmlzaCBMU04KKyAgICAoaS5lLiwgTFNOIDAvMDE0QzAzNzgpLiAgVGhl IGZpbmlzaCBMU04gY291bGQgYmUgYW4gTFNOIGF0IHdoaWNoIHRoZSB0cmFuc2FjdGlvbgorICAg IGlzIGNvbW1pdHRlZCBvciBwcmVwYXJlZCBvbiB0aGUgcHVibGlzaGVyLiAgQWx0ZXJuYXRpdmVs eSwgdGhlIHRyYW5zYWN0aW9uIGNhbgorICAgIGFsc28gYmUgc2tpcHBlZCBieSBjYWxsaW5nIHRo ZSA8bGluayBsaW5rZW5kPSJwZy1yZXBsaWNhdGlvbi1vcmlnaW4tYWR2YW5jZSI+CisgICAgPGZ1 bmN0aW9uPnBnX3JlcGxpY2F0aW9uX29yaWdpbl9hZHZhbmNlKCk8L2Z1bmN0aW9uPjwvbGluaz4g ZnVuY3Rpb24uCisgICAgQmVmb3JlIHVzaW5nIHRoaXMgZnVuY3Rpb24sIHRoZSBzdWJzY3JpcHRp b24gbmVlZHMgdG8gYmUgZGlzYWJsZWQgdGVtcG9yYXJpbHkKKyAgICBlaXRoZXIgYnkgPGxpbmsg bGlua2VuZD0ic3FsLWFsdGVyc3Vic2NyaXB0aW9uLXBhcmFtcy1kaXNhYmxlIj4KKyAgICA8Y29t bWFuZD5BTFRFUiBTVUJTQ1JJUFRJT04gLi4uIERJU0FCTEU8L2NvbW1hbmQ+PC9saW5rPiBvciwg dGhlCisgICAgc3Vic2NyaXB0aW9uIGNhbiBiZSB1c2VkIHdpdGggdGhlCisgICAgPGxpbmsgbGlu a2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1kaXNhYmxlLW9uLWVycm9y Ij48bGl0ZXJhbD5kaXNhYmxlX29uX2Vycm9yPC9saXRlcmFsPjwvbGluaz4KKyAgICBvcHRpb24u IFRoZW4sIHlvdSBjYW4gdXNlIDxmdW5jdGlvbj5wZ19yZXBsaWNhdGlvbl9vcmlnaW5fYWR2YW5j ZSgpPC9mdW5jdGlvbj4KKyAgICBmdW5jdGlvbiB3aXRoIHRoZSA8cGFyYW1ldGVyPm5vZGVfbmFt ZTwvcGFyYW1ldGVyPiAoaS5lLiwgPGxpdGVyYWw+cGdfMTYzOTU8L2xpdGVyYWw+KQorICAgIGFu ZCB0aGUgbmV4dCBMU04gb2YgdGhlIGZpbmlzaCBMU04gKGkuZS4sIDAvMDE0QzAzNzkpLiAgVGhl IGN1cnJlbnQgcG9zaXRpb24gb2YKKyAgICBvcmlnaW5zIGNhbiBiZSBzZWVuIGluIHRoZSA8bGlu ayBsaW5rZW5kPSJ2aWV3LXBnLXJlcGxpY2F0aW9uLW9yaWdpbi1zdGF0dXMiPgorICAgIDxzdHJ1 Y3RuYW1lPnBnX3JlcGxpY2F0aW9uX29yaWdpbl9zdGF0dXM8L3N0cnVjdG5hbWU+PC9saW5rPiBz eXN0ZW0gdmlldy4KKyAgICBQbGVhc2Ugbm90ZSB0aGF0IHNraXBwaW5nIHRoZSB3aG9sZSB0cmFu c2FjdGlvbiBpbmNsdWRlcyBza2lwcGluZyBjaGFuZ2VzIHRoYXQKKyAgICBtaWdodCBub3Qgdmlv bGF0ZSBhbnkgY29uc3RyYWludC4gIFRoaXMgY2FuIGVhc2lseSBtYWtlIHRoZSBzdWJzY3JpYmVy CisgICAgaW5jb25zaXN0ZW50LgorICAgIFRoZSBhZGRpdGlvbmFsIGRldGFpbHMgcmVnYXJkaW5n IGNvbmZsaWN0aW5nIHJvd3MsIHN1Y2ggYXMgdGhlaXIgb3JpZ2luIGFuZAorICAgIGNvbW1pdCB0 aW1lc3RhbXAgY2FuIGJlIHNlZW4gaW4gdGhlIDxsaXRlcmFsPkRFVEFJTDwvbGl0ZXJhbD4gbGlu ZSBvZiB0aGUKKyAgICBsb2cuIEJ1dCBub3RlIHRoYXQgdGhpcyBpbmZvcm1hdGlvbiBpcyBvbmx5 IGF2YWlsYWJsZSB3aGVuCisgICAgPGxpbmsgbGlua2VuZD0iZ3VjLXRyYWNrLWNvbW1pdC10aW1l c3RhbXAiPjx2YXJuYW1lPnRyYWNrX2NvbW1pdF90aW1lc3RhbXA8L3Zhcm5hbWU+PC9saW5rPgor ICAgIGlzIGVuYWJsZWQgb24gdGhlIHN1YnNjcmliZXIuIFVzZXJzIGNhbiB1c2UgdGhpcyBpbmZv cm1hdGlvbiB0byBkZWNpZGUKKyAgICB3aGV0aGVyIHRvIHJldGFpbiB0aGUgbG9jYWwgY2hhbmdl IG9yIGFkb3B0IHRoZSByZW1vdGUgYWx0ZXJhdGlvbi4gRm9yCisgICAgaW5zdGFuY2UsIHRoZSA8 bGl0ZXJhbD5ERVRBSUw8L2xpdGVyYWw+IGxpbmUgaW4gdGhlIGFib3ZlIGxvZyBpbmRpY2F0ZXMg dGhhdAorICAgIHRoZSBleGlzdGluZyByb3cgd2FzIG1vZGlmaWVkIGxvY2FsbHkuIFVzZXJzIGNh biBtYW51YWxseSBwZXJmb3JtIGEKKyAgICByZW1vdGUtY2hhbmdlLXdpbi4KKyAgIDwvcGFyYT4K KworICAgPHBhcmE+CisgICAgV2hlbiB0aGUKKyAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRl c3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLXN0cmVhbWluZyI+PGxpdGVyYWw+c3RyZWFtaW5nPC9s aXRlcmFsPjwvbGluaz4KKyAgICBtb2RlIGlzIDxsaXRlcmFsPnBhcmFsbGVsPC9saXRlcmFsPiwg dGhlIGZpbmlzaCBMU04gb2YgZmFpbGVkIHRyYW5zYWN0aW9ucworICAgIG1heSBub3QgYmUgbG9n Z2VkLiBJbiB0aGF0IGNhc2UsIGl0IG1heSBiZSBuZWNlc3NhcnkgdG8gY2hhbmdlIHRoZSBzdHJl YW1pbmcKKyAgICBtb2RlIHRvIDxsaXRlcmFsPm9uPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5vZmY8 L2xpdGVyYWw+IGFuZCBjYXVzZSB0aGUgc2FtZQorICAgIGNvbmZsaWN0cyBhZ2FpbiBzbyB0aGUg ZmluaXNoIExTTiBvZiB0aGUgZmFpbGVkIHRyYW5zYWN0aW9uIHdpbGwgYmUgd3JpdHRlbgorICAg IHRvIHRoZSBzZXJ2ZXIgbG9nLiBGb3IgdGhlIHVzYWdlIG9mIGZpbmlzaCBMU04sIHBsZWFzZSBy ZWZlciB0byA8bGluaworICAgIGxpbmtlbmQ9InNxbC1hbHRlcnN1YnNjcmlwdGlvbiI+PGNvbW1h bmQ+QUxURVIgU1VCU0NSSVBUSU9OIC4uLgorICAgIFNLSVA8L2NvbW1hbmQ+PC9saW5rPi4KKyAg IDwvcGFyYT4KKyAgPC9zZWN0Mj4KICA8L3NlY3QxPgogCiAgPHNlY3QxIGlkPSJsb2dpY2FsLXJl cGxpY2F0aW9uLXJlc3RyaWN0aW9ucyI+CkBAIC0yNDE1LDYgKzI1MzgsMTQgQEAgQ09OVEVYVDog IHByb2Nlc3NpbmcgcmVtb3RlIGRhdGEgZm9yIHJlcGxpY2F0aW9uIG9yaWdpbiAicGdfMTYzOTUi IGR1cmluZyAiSU5TRVIKICAgICAga2V5IG9yIHJlcGxpY2EgaWRlbnRpdHkgZGVmaW5lZCBmb3Ig aXQuCiAgICAgPC9wYXJhPgogICAgPC9saXN0aXRlbT4KKworICAgPGxpc3RpdGVtPgorICAgIDxw YXJhPgorICAgICBDb25mbGljdCBsb2cgdGFibGVzIChzZWUgPGxpbmsgbGlua2VuZD0ic3FsLWNy ZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1jb25mbGljdC1sb2ctZGVzdGluYXRpb24iPjxs aXRlcmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD48L2xpbms+IHBhcmFtZXRl cikKKyAgICAgYXJlIG5ldmVyIHB1Ymxpc2hlZCwgZXZlbiB3aGVuIHVzaW5nIDxsaXRlcmFsPkZP UiBBTEwgVEFCTEVTPC9saXRlcmFsPiBpbiBhCisgICAgIHB1YmxpY2F0aW9uLgorICAgIDwvcGFy YT4KKyAgIDwvbGlzdGl0ZW0+CiAgIDwvaXRlbWl6ZWRsaXN0PgogIDwvc2VjdDE+CiAKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCmluZGV4IGU0ZjBiNmIxNmM3Li4xM2I0 MTNkMTQyZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24u c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCkBAIC0y OTMsOCArMjkzLDkgQEAgQUxURVIgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDwKICAgICAgIDxsaW5rIGxpbmtl bmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtZmFpbG92ZXIiPjxsaXRlcmFs PmZhaWxvdmVyPC9saXRlcmFsPjwvbGluaz4sCiAgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3Jl YXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLXR3by1waGFzZSI+PGxpdGVyYWw+dHdvX3BoYXNl PC9saXRlcmFsPjwvbGluaz4sCiAgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2Ny aXB0aW9uLXBhcmFtcy13aXRoLXJldGFpbi1kZWFkLXR1cGxlcyI+PGxpdGVyYWw+cmV0YWluX2Rl YWRfdHVwbGVzPC9saXRlcmFsPjwvbGluaz4sCi0gICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3Jl YXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLW1heC1yZXRlbnRpb24tZHVyYXRpb24iPjxsaXRl cmFsPm1heF9yZXRlbnRpb25fZHVyYXRpb248L2xpdGVyYWw+PC9saW5rPiwgYW5kCi0gICAgICA8 bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLXdhbC1yZWNl aXZlci10aW1lb3V0Ij48bGl0ZXJhbD53YWxfcmVjZWl2ZXJfdGltZW91dDwvbGl0ZXJhbD48L2xp bms+LgorICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMt d2l0aC1tYXgtcmV0ZW50aW9uLWR1cmF0aW9uIj48bGl0ZXJhbD5tYXhfcmV0ZW50aW9uX2R1cmF0 aW9uPC9saXRlcmFsPjwvbGluaz4sCisgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vi c2NyaXB0aW9uLXBhcmFtcy13aXRoLXdhbC1yZWNlaXZlci10aW1lb3V0Ij48bGl0ZXJhbD53YWxf cmVjZWl2ZXJfdGltZW91dDwvbGl0ZXJhbD48L2xpbms+LCBhbmQKKyAgICAgIDxsaW5rIGxpbmtl bmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtY29uZmxpY3QtbG9nLWRlc3Rp bmF0aW9uIj48bGl0ZXJhbD5jb25mbGljdF9sb2dfZGVzdGluYXRpb248L2xpdGVyYWw+PC9saW5r Pi4KICAgICAgIE9ubHkgYSBzdXBlcnVzZXIgY2FuIHNldCA8bGl0ZXJhbD5wYXNzd29yZF9yZXF1 aXJlZCA9IGZhbHNlPC9saXRlcmFsPi4KICAgICAgPC9wYXJhPgogCkBAIC0zNTIsNiArMzUzLDE0 IEBAIEFMVEVSIFNVQlNDUklQVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFt ZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8CiAgICAgICA8cXVvdGU+PGxpdGVyYWw+cGdfY29u ZmxpY3RfZGV0ZWN0aW9uPC9saXRlcmFsPjwvcXVvdGU+LCBjcmVhdGVkIHRvIHJldGFpbgogICAg ICAgZGVhZCB0dXBsZXMgZm9yIGNvbmZsaWN0IGRldGVjdGlvbiwgd2lsbCBiZSBkcm9wcGVkLgog ICAgICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBXaGVuIHRoZSA8bGluayBsaW5rZW5k PSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWNvbmZsaWN0LWxvZy1kZXN0aW5h dGlvbiI+PGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPC9saXRlcmFsPjwvbGluaz4K KyAgICAgIHBhcmFtZXRlciBpcyBzZXQgdG8gPGxpdGVyYWw+dGFibGU8L2xpdGVyYWw+IG9yIDxs aXRlcmFsPmFsbDwvbGl0ZXJhbD4sIHRoZSBzeXN0ZW0KKyAgICAgIGF1dG9tYXRpY2FsbHkgY3Jl YXRlcyB0aGUgY29uZmxpY3QgbG9nIHRhYmxlLiBDb252ZXJzZWx5LCBpZiB0aGUgZGVzdGluYXRp b24gaXMgY2hhbmdlZCB0bworICAgICAgPGxpdGVyYWw+bG9nPC9saXRlcmFsPiwgbG9nZ2luZyB0 byB0aGUgdGFibGUgc3RvcHMgYW5kIHRoZSBjb25mbGljdCBsb2cKKyAgICAgIHRhYmxlIGlzIGF1 dG9tYXRpY2FsbHkgZHJvcHBlZC4KKyAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8 L3Zhcmxpc3RlbnRyeT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vi c2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dt bAppbmRleCAwN2Q1YjFiZDc3Yy4uNTI3ZjVhYjg3NGEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3N1YnNjcmlwdGlvbi5zZ21sCkBAIC0yNjEsNiArMjYxLDU3IEBAIENSRUFURSBTVUJTQ1JJ UFRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnN1YnNjcmlwdGlvbl9uYW1lPC9y ZXBsYWNlYWJsCiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50cnk+CiAK KyAgICAgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13 aXRoLWNvbmZsaWN0LWxvZy1kZXN0aW5hdGlvbiI+CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPmNv bmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD4gKDx0eXBlPmVudW08L3R5cGU+KTwvdGVy bT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgU3BlY2lm aWVzIHRoZSBkZXN0aW5hdGlvbiBmb3IgcmVjb3JkaW5nIGxvZ2ljYWwgcmVwbGljYXRpb24gY29u ZmxpY3RzLgorICAgICAgICAgPC9wYXJhPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgVGhl IGF2YWlsYWJsZSBkZXN0aW5hdGlvbnMgYXJlOgorICAgICAgICAgIDxpdGVtaXplZGxpc3Q+Cisg ICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgIDxs aXRlcmFsPmxvZzwvbGl0ZXJhbD46IENvbmZsaWN0IGRldGFpbHMgYXJlIHJlY29yZGVkIGluIHRo ZSBzZXJ2ZXIgbG9nLgorICAgICAgICAgICAgIFRoaXMgaXMgdGhlIGRlZmF1bHQgYmVoYXZpb3Iu IFNlZQorICAgICAgICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tY29u ZmxpY3QtZmlsZS1iYXNlZC1sb2dnaW5nIi8+CisgICAgICAgICAgICAgZm9yIGRldGFpbHMuCisg ICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICAgIDxs aXN0aXRlbT4KKyAgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgIDxsaXRlcmFsPnRhYmxl PC9saXRlcmFsPjogVGhlIHN5c3RlbSBhdXRvbWF0aWNhbGx5IGNyZWF0ZXMgYSBzdHJ1Y3R1cmVk IHRhYmxlCisgICAgICAgICAgICAgbmFtZWQgPGxpdGVyYWw+cGdfY29uZmxpY3RfbG9nX2Zvcl9z dWJpZF8mbHQ7c3ViaWQmZ3Q7PC9saXRlcmFsPgorICAgICAgICAgICAgIGluIHRoZSA8bGl0ZXJh bD5wZ19jb25mbGljdDwvbGl0ZXJhbD4gc2NoZW1hLiBUaGlzIGFsbG93cyBmb3IgZWFzeQorICAg ICAgICAgICAgIHF1ZXJ5aW5nIGFuZCBhbmFseXNpcyBvZiBjb25mbGljdHMuIFNlZQorICAgICAg ICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tY29uZmxpY3QtdGFibGUt YmFzZWQtbG9nZ2luZyIvPgorICAgICAgICAgICAgIGZvciBkZXRhaWxzLgorICAgICAgICAgICAg PC9wYXJhPgorICAgICAgICAgICAgPGNhdXRpb24+CisgICAgICAgICAgICAgPHBhcmE+CisgICAg ICAgICAgICAgIFRoZSBjb25mbGljdCBsb2cgdGFibGUgaXMgc3RyaWN0bHkgdGllZCB0byB0aGUg bGlmZWN5Y2xlIG9mIHRoZQorICAgICAgICAgICAgICBzdWJzY3JpcHRpb24gb3IgdGhlIDxsaXRl cmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD4gc2V0dGluZy4gSWYKKyAgICAg ICAgICAgICAgdGhlIHN1YnNjcmlwdGlvbiBpcyBkcm9wcGVkLCBvciBpZiB0aGUgZGVzdGluYXRp b24gaXMgY2hhbmdlZCB0bworICAgICAgICAgICAgICA8bGl0ZXJhbD5sb2c8L2xpdGVyYWw+LCB0 aGUgdGFibGUgYW5kIGFsbCBpdHMgcmVjb3JkZWQgY29uZmxpY3QgZGF0YSBhcmUKKyAgICAgICAg ICAgICAgPGVtcGhhc2lzPnBlcm1hbmVudGx5IGRlbGV0ZWQ8L2VtcGhhc2lzPi4KKyAgICAgICAg ICAgICA8L3BhcmE+CisgICAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICAgIElmIGNvbmZs aWN0IGhpc3RvcnkgbWF5IGJlIG5lZWRlZCBsYXRlciwgYmFjayB1cCB0aGUgY29uZmxpY3QgbG9n CisgICAgICAgICAgICAgIHRhYmxlIGJlZm9yZSBpdCBnZXRzIHJlbW92ZWQuCisgICAgICAgICAg ICAgPC9wYXJhPgorICAgICAgICAgICAgPC9jYXV0aW9uPgorICAgICAgICAgICA8L2xpc3RpdGVt PgorICAgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAg ICA8bGl0ZXJhbD5hbGw8L2xpdGVyYWw+OiBSZWNvcmRzIGNvbmZsaWN0IGRldGFpbHMgdG8gYm90 aCBkZXN0aW5hdGlvbnMKKyAgICAgICAgICAgICA8bGl0ZXJhbD5sb2c8L2xpdGVyYWw+IGFuZCA8 bGl0ZXJhbD50YWJsZTwvbGl0ZXJhbD4uCisgICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAg IDwvbGlzdGl0ZW0+CisgICAgICAgICAgPC9pdGVtaXplZGxpc3Q+CisgICAgICAgICA8L3BhcmE+ CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgICA8 dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWNvcHkt ZGF0YSI+CiAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPmNvcHlfZGF0YTwvbGl0ZXJhbD4gKDx0eXBl PmJvb2xlYW48L3R5cGU+KTwvdGVybT4KICAgICAgICAgPGxpc3RpdGVtPgotLSAKMi40OS4wCgo= --000000000000c4ad1b0655330de9--