From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 12288 invoked from network); 12 Feb 2023 04:45:16 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 12 Feb 2023 04:45:16 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1676177116; b=HIiG96FVlJa1gVZuK7WRz10FdkLFmtWuKJFR76ZdYjeqJ05lO3soGOcRmjmVx52NV6IKrLJUyY StnPt6Ey1EZH/CR22dJ+9Or4DoqxAWfBPEgfADGGl23YLx3/uSFsv0nlbv3PkASU4QLhC88e9J y6wQ8d7P+s5MN6p2SHGz1/oG2KTMwVeKLItTfkwLY0iGoVHQ/5WRMS31kpU2A0JmgvCpUfObX+ 9LoJQxVq+cMk23CLsB4PNwJ5CqolSMIGXlALiKXo5I/Kh0j65Vwk6pFlffd+NUNqlODEnrIuQ2 4SO2h4vAVUYNneI3Iaqsp8NzTtmd1IQJRxvapWUWOkJSgg==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-ed1-f54.google.com) smtp.remote-ip=209.85.208.54; dkim=pass header.d=brasslantern-com.20210112.gappssmtp.com header.s=20210112 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1676177116; bh=pKyM3wmAoP1/j/2/I8rWnWMwzHG0aU/nOe+HELiVaW8=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:To:Subject:Message-ID:Date:From:MIME-Version: DKIM-Signature:DKIM-Signature; b=UvzFlgvrqZuntBxX9n3nlXkAck1W/4a/JTuHptIsfFzG+8Elt3sn8kfYHM3kSrIvIcL0abrtGQ kYDrZzl5KG2Gi52AldgXr8R5bjVuw05355CPqXiWscLh6vTTTOy8hTcOh9fTGl+5+RpHCV/glS 43d4WW6DuyN5W00PBV8m2wJ9RHGjFExe0IQrwooiS0fNOAsXboS7Goq1o6Nh5/9x7wjOnppKKR 2zqE5olE0qCqAe1jpJ1Eu9mxfps8//6ESzLZX9fgvkBmX5NKObwKY3VXPb2kurfJ3VRoedNERf bgH+qmyx9tWVgpr9PVV4KGtZP+S6srN0lSXw3bQCd0a5BA==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Type:To:Subject:Message-ID: Date:From:MIME-Version:Reply-To:Cc:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References; bh=lS5iz9cJdCu7aFTBgfMXcWd/8I+rJkOU7p2SFN4fgTA=; b=g/LjykgyRfbG5gQAR2xMDgSMZe R3cDaOft9z3Q54hkF3cj4aRFxxj/rqI52Cpx1GfyvPif+wWp5F3nhmJeecfoDV+for9wwaMhzTC3A W+01BaIYIUF9cIbCSV6H+sH9d9J5cTt97EH6n2Rh9GhCxcU83Z/TOLkXXU/2jXnB2rzEdMY6Fjrbr Wxa6WVAzj9r/W5INEWjustAwvH8OjW0YsSj0Kv0RuB1XsNrBj/lN+Hlfis5wCXkEec1Q+lHBzMeFO ZB4ORwkFuf+w2fxUEi+Zow49bWjJXwaiVVgEYg1naIqyA0dZM+pGqm61It0OWAU2ZsOihQlXwqIS6 sLupZiSA==; Received: by zero.zsh.org with local id 1pR4El-000Aye-PN; Sun, 12 Feb 2023 04:45:16 +0000 Authentication-Results: zsh.org; iprev=pass (mail-ed1-f54.google.com) smtp.remote-ip=209.85.208.54; dkim=pass header.d=brasslantern-com.20210112.gappssmtp.com header.s=20210112 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none Received: from mail-ed1-f54.google.com ([209.85.208.54]:43784) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1pR4ET-000AeL-Je; Sun, 12 Feb 2023 04:44:58 +0000 Received: by mail-ed1-f54.google.com with SMTP id s11so1197158edd.10 for ; Sat, 11 Feb 2023 20:44:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20210112.gappssmtp.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=lS5iz9cJdCu7aFTBgfMXcWd/8I+rJkOU7p2SFN4fgTA=; b=Xu72a39gJ+cAbQnKH1RUQXKtFmCPnji4T6e2fbbaxIuwvEHqhuz2NwMDn1mYwqQRUQ 6RpORz4xm/KvKekcsfbs/zExxvR87JwrKCaqX71nquheBrQvsxVmFTMK7JI+DM6FNWiT 7OzuOhmSrqH6DLNx2KSf1t5JPVQYQwhC2qObTK4mOBaRTAQzXeCRxeEwAii6WgIcv5Od v2jntrt/QEBvof7X0MvoSVPGW/Vw9UzmsdU+Lx638XRActbAr8ZQHwFMWTWN2cOseO8i tk1DxIVKoyksqkK7ZrQ4tEMeLHFW042u3jvUUK2rOSHzCZ3SEt6f6KRZAS3cSUZMoUyH l+1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=lS5iz9cJdCu7aFTBgfMXcWd/8I+rJkOU7p2SFN4fgTA=; b=L1VW5+ymzgY2jseEYc/q3GygDegtrwFHTYmeNEHsVeimvueKtYBrKcSrioIKx2iDLl qSiUGAI/2pQp7CJujww8nD7LjXYq3gJxTgDm1I71TSwvnU3XRCORi3SRmTLqwI5FK1DQ u8ATlqvlxBsPUO6xj/3t9TcWWw9TKoREheL5wIxDTgqkJFR6fShVxSwIHEftuaPcaaJa i/V5ko2AbuDWOE1vkmKPEOdas+gAp3SM4a2zxYB/QkrB65JC0AvXEaaRps5BDX6nmMxp MZE2VZYx9iaCeknwqUJOvGc1sEQCHJLFzpM30LEk8qXP2d/6OFBozwQkcgeJ/pyuboFC itAg== X-Gm-Message-State: AO0yUKXFXdUoI5XPJtiPiKUgUJgW7Buuy0ZsaSmD50vXLzlX6px/iREJ ubx7vES9awfUIq7EyctrST+gJYkVHbgjQVo/QeJjV4jz7wTrFw== X-Google-Smtp-Source: AK7set+a40cCshuu+FolrIgnCIXT2GrqiWihB8+iRi2y8eTfANjEhDCUz/z5rcesb9Y7CVmYC5nUpjiRwvrPxA4Yjlw= X-Received: by 2002:a50:d593:0:b0:4ac:c160:3010 with SMTP id v19-20020a50d593000000b004acc1603010mr240351edi.3.1676177097203; Sat, 11 Feb 2023 20:44:57 -0800 (PST) MIME-Version: 1.0 From: Bart Schaefer Date: Sat, 11 Feb 2023 20:44:46 -0800 Message-ID: Subject: [PATCH 7/3] Additional tests and documentation To: Zsh hackers list Content-Type: multipart/mixed; boundary="0000000000007615d705f47964f9" X-Seq: 51403 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: --0000000000007615d705f47964f9 Content-Type: text/plain; charset="UTF-8" I've been trying to keep each of these patches under 20k or so. I guess 4+5 could have been left as one file, given how large 1 and now 7 ended up. Oh, well. In addition to adding tests for new code and for the misc. cases Oliver pointed out, I also moved a number of "unset"s from the end of the tests that created parameters to the beginning of the next test case that uses those parameter names. This should make the tests less order-dependent and maybe the extra tests for side-effects could be dropped. --0000000000007615d705f47964f9 Content-Type: text/plain; charset="US-ASCII"; name="nameref-7-test+doc.txt" Content-Disposition: attachment; filename="nameref-7-test+doc.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_le0wef200 ZGlmZiAtLWdpdCBhL0RvYy9ac2gvYnVpbHRpbnMueW8gYi9Eb2MvWnNoL2J1aWx0aW5zLnlvCmlu ZGV4IDk3YTgyMjI2Yi4uOTI5MTdjMDZjIDEwMDY0NAotLS0gYS9Eb2MvWnNoL2J1aWx0aW5zLnlv CisrKyBiL0RvYy9ac2gvYnVpbHRpbnMueW8KQEAgLTIwNDEsMTIgKzIwNDEsMTMgQEAgY2luZGV4 KG5hbWVkIHJlZmVyZW5jZSkKIGNpbmRleChyZWZlcmVuY2UsIG5hbWVkKQogVGhlIGZsYWcgdHQo LW4pIGNyZWF0ZXMgYSBlbShuYW1lZCByZWZlcmVuY2UpIHRvIGFub3RoZXIgcGFyYW1ldGVyLgog VGhlIHNlY29uZCBwYXJhbWV0ZXIgbmVlZCBub3QgZXhpc3QgYXQgdGhlIHRpbWUgdGhlIHJlZmVy ZW5jZSBpcwotY3JlYXRlZC4gIE5vIGF0dHJpYnV0ZXMgZXhjZXB0IHR0KC1nKSBtYXkgYmUgdXNl ZCBpbiBjb25qdW5jdGlvbiB3aXRoCitjcmVhdGVkLiAgT25seSB0dCgtZykgYW5kIHR0KC1yKSBt YXkgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoCiB0dCgtbikuICBUaGUgdmFyKG5hbWUpIHNv IGNyZWF0ZWQgbWF5IG5vdCBiZSBhbiBhcnJheSBlbGVtZW50IG5vciB1c2UKIGEgc3Vic2NyaXB0 LCBidXQgdGhlIHZhcih2YWx1ZSkgYXNzaWduZWQgbWF5IGJlIGFueSB2YWxpZCBwYXJhbWV0ZXIK IG5hbWUgc3ludGF4LCBldmVuIGEgc3Vic2NyaXB0ZWQgYXJyYXkgZWxlbWVudCAoaW5jbHVkaW5n IGFuIGFzc29jaWF0aXZlCiBhcnJheSBlbGVtZW50KSBvciBhbiBhcnJheSBzbGljZSwgd2hpY2gg aXMgZXZhbHVhdGVkIHdoZW4gdGhlIG5hbWVkCi1yZWZlcmVuY2UgaXMgZXhwYW5kZWQuCityZWZl cmVuY2UgaXMgZXhwYW5kZWQuICBJdCBpcyBhbiBlcnJvciBmb3IgYSBuYW1lZCByZWZlcmVuY2Ug dG8gcmVmZXIKK3RvIGl0c2VsZiwgZXZlbiBpbmRpcmVjdGx5IHRocm91Z2ggYSBjaGFpbiBvZiBy ZWZlcmVuY2VzLgogU2VlIGlmem1hbih6bWFucmVmKHpzaGV4cG4pKWlmbnptYW4obm9kZXJlZihQ YXJhbWV0ZXIgRXhwYW5zaW9uKSkgYW5kCiBpZnptYW4oem1hbnJlZih6c2hwYXJhbSkpaWZuem1h bihub2RlcmVmKFBhcmFtZXRlcnMpKSBmb3IgZGV0YWlscyBvZiB0aGUKIGJlaGF2aW9yIG9mIG5h bWVkIHJlZmVyZW5jZXMuCkBAIC0yNDQzLDcgKzI0NDQsNyBAQCB3aXRoIHRoZSBjb21tYW5kIGB0 dCh6bW9kbG9hZCAtRiB6c2gvcmxpbWl0cyBiOnVubGltaXQpJy4KICkKIGZpbmRleCh1bnNldCkK IGNpbmRleChwYXJhbWV0ZXJzLCB1bnNldHRpbmcpCi1pdGVtKHR0KHVuc2V0KSBbIHR0KC1mbXYp IF0gdmFyKG5hbWUpIC4uLikoCitpdGVtKHR0KHVuc2V0KSBbIHR0KC1mbXYpIF0gWyB0dCgtbikg XSB2YXIobmFtZSkgLi4uKSgKIEVhY2ggbmFtZWQgcGFyYW1ldGVyIGlzIHVuc2V0LgogTG9jYWwg cGFyYW1ldGVycyByZW1haW4gbG9jYWwgZXZlbiBpZiB1bnNldDsgdGhleSBhcHBlYXIgdW5zZXQg d2l0aGluIHNjb3BlLAogYnV0IHRoZSBwcmV2aW91cyB2YWx1ZSB3aWxsIHN0aWxsIHJlYXBwZWFy IHdoZW4gdGhlIHNjb3BlIGVuZHMuCkBAIC0yNDU3LDEwICsyNDU4LDEzIEBAIGJlIHF1b3RlZCkg YW5kIGFsbCBwYXJhbWV0ZXJzIHdpdGggbWF0Y2hpbmcgbmFtZXMgYXJlIHVuc2V0LiAgTm90ZSB0 aGF0IHRoaXMKIGNhbm5vdCBiZSB1c2VkIHdoZW4gdW5zZXR0aW5nIGFzc29jaWF0aXZlIGFycmF5 IGVsZW1lbnRzLCBhcyB0aGUgc3Vic2NyaXB0CiB3aWxsIGJlIHRyZWF0ZWQgYXMgcGFydCBvZiB0 aGUgcGF0dGVybi4KIAotVGhlIHR0KC12KSBmbGFnIHNwZWNpZmllcyB0aGF0IHZhcihuYW1lKSBy ZWZlcnMgdG8gcGFyYW1ldGVycy4gVGhpcyBpcyB0aGUKLWRlZmF1bHQgYmVoYXZpb3VyLgorVGhl IHR0KC12KSBmbGFnIHNwZWNpZmllcyB0aGF0IHZhcihuYW1lKSByZWZlcnMgdG8gcGFyYW1ldGVy cy4gVGhpcyBpcwordGhlIGRlZmF1bHQgYmVoYXZpb3VyLiAgSWYgdGhlIHR0KC1uKSBvcHRpb24g aXMgc3VwcGxpZWQsIGFuZAordmFyKG5hbWUpIGlzIGEgYSBuYW1lZCByZWZlcmVuY2UsIHZhcihu YW1lKSB3aWxsIGJlIHVuc2V0IHJhdGhlciB0aGFuCit0aGUgdmFyaWFibGUgaXQgcmVmZXJlbmNl cy4KIAotdHQodW5zZXQgLWYpIGlzIGVxdWl2YWxlbnQgdG8gdHQodW5mdW5jdGlvbikuCit0dCh1 bnNldCAtZikgaXMgZXF1aXZhbGVudCB0byB0dCh1bmZ1bmN0aW9uKS4gIFRoZSB0dCgtbikgb3B0 aW9uIGhhcworbm8gZWZmZWN0IHdpdGggdHQoLWYpLgogKQogZmluZGV4KHVuc2V0b3B0KQogY2lu ZGV4KG9wdGlvbnMsIHVuc2V0dGluZykKZGlmZiAtLWdpdCBhL0RvYy9ac2gvZXhwbi55byBiL0Rv Yy9ac2gvZXhwbi55bwppbmRleCA4YjFjNjljNTUuLmVmMDE3OTRlNiAxMDA2NDQKLS0tIGEvRG9j L1pzaC9leHBuLnlvCisrKyBiL0RvYy9ac2gvZXhwbi55bwpAQCAtMTU4MSw3ICsxNTgxLDEwIEBA IGlzIGludGVycHJldGVkIGF0IHRoZSB0aW1lIHR0KCR7KXZhcihwbmFtZSl0dCh9KSBpcyBleHBh bmRlZC4gIEFueQogZm9ybSBvZiBzdWJzY3JpcHQgaXMgYWxsb3dlZCwgaW5jbHVkaW5nIHRob3Nl IHRoYXQgc2VsZWN0IGluZGl2aWR1YWwKIGVsZW1lbnRzLCBzdWJzdHJpbmdzIG9mIHNjYWxhciBz dHJpbmdzLCBvciBtdWx0aXBsZSBlbGVtZW50cyBhcyB3aXRoCiBhcnJheSBzbGljZXMgb3IgdGhl IGB0dCgoaSkpJywgYHR0KChJKSknLCBgdHQoKHIpKScsIGB0dCgoUikpJyBhbmQKLWB0dCgodykp JyBzdWJzY3JpcHQgZmxhZ3MuCitgdHQoKHcpKScgc3Vic2NyaXB0IGZsYWdzLiAgSG93ZXZlciwg dGhlIHN1YnNjcmlwdCBpcyBldmFsdWF0ZWQgd2l0aAordGhlIHR0KE5PX0VYRUMpIG9wdGlvbiBp biBlZmZlY3QsIHNvIGNvbW1hbmQgc3Vic3RpdHV0aW9uIGFuZCBvdGhlcgorc2ltaWxhciBjb25z dHJ1Y3RzIHByb2R1Y2Ugbm8gb3V0cHV0LCBhbHRob3VnaCBhcmUgbm90IHN5bnRhY3RpY2FsbHkK K2V4Y2x1ZGVkLgogCiBXaGVuIHZhcihybmFtZSkgaXMgYW4gYXJyYXkgKGJ1dCBub3QgYW4gYXJy YXkgZWxlbWVudCBvciBzbGljZSksIHRoZQogbmFtZWQgcmVmZXJlbmNlIG1heSBhbHNvIGJlIHVz ZWQgaW4gc3Vic3RpdHV0aW9ucyByZXF1aXJpbmcgYW4KZGlmZiAtLWdpdCBhL0RvYy9ac2gvZnVu Yy55byBiL0RvYy9ac2gvZnVuYy55bwppbmRleCAxMmRiM2Y1NmEuLmQ0OTE0ZGY3YSAxMDA2NDQK LS0tIGEvRG9jL1pzaC9mdW5jLnlvCisrKyBiL0RvYy9ac2gvZnVuYy55bwpAQCAtMTMsNiArMTMs NDAgQEAgRnVuY3Rpb25zIGFyZSBleGVjdXRlZCBsaWtlIGNvbW1hbmRzIHdpdGggdGhlIGFyZ3Vt ZW50cwogcGFzc2VkIGFzIHBvc2l0aW9uYWwgcGFyYW1ldGVycy4KIChTZWUgbm9kZXJlZihDb21t YW5kIEV4ZWN1dGlvbikuKQogCitQYXJhbWV0ZXJzIGRlY2xhcmVkIGJ5IGFueSBvZiB0aGUgYHR0 KHR5cGVzZXQpJyBmYW1pbHkgb2YgY29tbWFuZHMKK2R1cmluZyB0aGUgZXhlY3V0aW9uIG9mIGEg ZnVuY3Rpb24gYmVjb21lIGVtKGxvY2FsKSB0byB0aGUgZnVuY3Rpb24KK3VubGVzcyB0aGUgYHR0 KC1nKScgb3B0aW9uIGlzIHVzZWQuICBUaGlzIGlzIHRoZSBlbShzY29wZSkgb2YgdGhlCitwYXJh bWV0ZXIsIHdoaWNoIGV4dGVuZHMgZHluYW1pY2FsbHkgdG8gYW55IG90aGVyIGZ1bmN0aW9ucyBj YWxsZWQgYnkKK3RoZSBkZWNsYXJpbmcgZnVuY3Rpb24uICBJbiBtb3N0IGNhc2VzLCBsb2NhbCBw YXJhbWV0ZXJzIHRha2UgdGhlCitwbGFjZSBvZiBhbnkgb3RoZXIgcGFyYW1ldGVyIGhhdmluZyB0 aGUgc2FtZSBuYW1lIHRoYXQgd2FzIGFzc2lnbmVkIG9yCitkZWNsYXJlZCBpbiBhbiBlYXJsaWVy IGZ1bmN0aW9uIHNjb3BlLgorKFNlZSBub2RlcmVmKExvY2FsIFBhcmFtZXRlcnMpLikKKworQSBu YW1lZCBwYXJhbWV0ZXIgZGVjbGFyZWQgd2l0aCB0aGUgYHR0KC1uKScgb3B0aW9uIHRvIGFueSBv ZiB0aGUKK2B0dCh0eXBlc2V0KScgY29tbWFuZHMgYmVjb21lcyBhIHJlZmVyZW5jZSB0byBhIHBh cmFtZXRlciBpbiBzY29wZSBhdAordGhlIHRpbWUgb2YgYXNzaWdubWVudCB0byB0aGUgbmFtZWQg cmVmZXJlbmNlLCB3aGljaCBtYXkgYmUgYXQgYQorZGlmZmVyZW50IGNhbGwgbGV2ZWwgdGhhbiB0 aGUgZGVjbGFyaW5nIGZ1bmN0aW9uLiAgRm9yIHRoaXMgcmVhc29uLAoraXQgaXMgZ29vZCBwcmFj dGljZSB0byBkZWNsYXJlIGEgbmFtZWQgcmVmZXJlbmNlIGFzIHNvb24gYXMgdGhlCityZWZlcmVu dCBwYXJhbWV0ZXIgaXMgaW4gc2NvcGUsIGFuZCBhcyBlYXJseSBhcyBwb3NzaWJsZSBpbiB0aGUK K2Z1bmN0aW9uIGlmIHRoZSByZWZlcmVuY2UgaXMgdG8gYSBwYXJhbWV0ZXIgaW4gYSBjYWxsaW5n IHNjb3BlLgorCitBIHR5cGljYWwgdXNlIG9mIG5hbWVkIHJlZmVyZW5jZXMgaXMgdG8gcGFzcyB0 aGUgbmFtZQorb2YgdGhlIHJlZmVyZW50IGFzIGEgcG9zaXRpb25hbCBwYXJhbWV0ZXIuICBGb3Ig ZXhhbXBsZSwKK2lmem1hbigpCitleGFtcGxlKHBvcCtMUEFSKClSUEFSKCkgeworICBsb2NhbCAt biByZWY9JDEKKyAgbG9jYWwgbGFzdD0kcmVmWyQjcmVmXQorICByZWZbJCNyZWZdPUxQQVIoKVJQ QVIoKQorICBwcmludCAtciAtLSAkbGFzdAorfQorYXJyYXk9TFBBUigpIGEgbGlzdCBvZiBmaXZl IHZhbHVlcyBSUEFSKCkKK3BvcCBhcnJheSkKKworcHJpbnRzIHRoZSB3b3JkIGB0dCh2YWx1ZXMp JyBhbmQgc2hvcnRlbnMgYHR0KCRhcnJheSknIHRvCitgdHQoTFBBUigpIGEgbGlzdCBvZiBmaXZl IFJQQVIoKSknLiAgVGhlcmUgYXJlIG5vIGxvY2FsIHBhcmFtZXRlcnMgaW4KK3R0KHBvcCkgYXQg dGhlIHRpbWUgYHR0KHJlZj0kMSknIGlzIGFzc2lnbmVkLCBzbyBgdHQocmVmKScgYmVjb21lcyBh CityZWZlcmVuY2UgdG8gYHR0KGFycmF5KScgaW4gdGhlIGNhbGxlci4KKwogRnVuY3Rpb25zIGV4 ZWN1dGUgaW4gdGhlIHNhbWUgcHJvY2VzcyBhcyB0aGUgY2FsbGVyIGFuZAogc2hhcmUgYWxsIGZp bGVzCiBhbmQgcHJlc2VudCB3b3JraW5nIGRpcmVjdG9yeSB3aXRoIHRoZQpkaWZmIC0tZ2l0IGEv RG9jL1pzaC9ncmFtbWFyLnlvIGIvRG9jL1pzaC9ncmFtbWFyLnlvCmluZGV4IDlhZjIxMTA5MC4u MWI4MzRmNDFhIDEwMDY0NAotLS0gYS9Eb2MvWnNoL2dyYW1tYXIueW8KKysrIGIvRG9jL1pzaC9n cmFtbWFyLnlvCkBAIC0xODcsNiArMTg3LDkgQEAgRXhwYW5kIHRoZSBsaXN0IG9mIHZhcih3b3Jk KXMsIGFuZCBzZXQgdGhlIHBhcmFtZXRlcgogdmFyKG5hbWUpIHRvIGVhY2ggb2YgdGhlbSBpbiB0 dXJuLCBleGVjdXRpbmcgdmFyKGxpc3QpCiBlYWNoIHRpbWUuICBJZiB0aGUgYHR0KGluKSB2YXIo d29yZCknIGlzIG9taXR0ZWQsCiB1c2UgdGhlIHBvc2l0aW9uYWwgcGFyYW1ldGVycyBpbnN0ZWFk IG9mIHRoZSB2YXIod29yZClzLgorSWYgYW55IHZhcihuYW1lKSBoYXMgYmVlbiBkZWNsYXJlZCBh cyBhIG5hbWVkIHJlZmVyZW5jZSwKK3RoZSBjb3JyZXNwb25kaW5nIHZhcih3b3JkKSBpcyB0cmVh dGVkIGFzIHRoZSBuYW1lIG9mIGEKK3BhcmFtZXRlciBhbmQgdmFyKG5hbWUpIGlzIG1hZGUgYSBy ZWZlcmVuY2UgdG8gdGhhdC4KIAogVGhlIHZhcih0ZXJtKSBjb25zaXN0cyBvZiBvbmUgb3IgbW9y ZSBuZXdsaW5lIG9yIHR0KDspCiB3aGljaCB0ZXJtaW5hdGUgdGhlIHZhcih3b3JkKXMsIGFuZCBh cmUgb3B0aW9uYWwgd2hlbiB0aGUKZGlmZiAtLWdpdCBhL0RvYy9ac2gvcGFyYW1zLnlvIGIvRG9j L1pzaC9wYXJhbXMueW8KaW5kZXggYzdlY2YwZjY0Li45NDZjMDA3OTMgMTAwNjQ0Ci0tLSBhL0Rv Yy9ac2gvcGFyYW1zLnlvCisrKyBiL0RvYy9ac2gvcGFyYW1zLnlvCkBAIC02NTYsOCArNjU2LDgg QEAgV2hlbiBhIGVtKG5hbWVkIHJlZmVyZW5jZSkgaXMgY3JlYXRlZCB3aXRoIGB0dCh0eXBlc2V0 IC1uKScsIGFsbCB1c2VzCiBvZiB2YXIocG5hbWUpIGluIGFzc2lnbm1lbnRzIGFuZCBleHBhbnNp b25zIGluc3RlYWQgYXNzaWduIHRvIG9yCiBleHBhbmQgdmFyKHJuYW1lKS4gIFRoaXMgYWxzbyBh cHBsaWVzIHRvIGB0dCh1bnNldCApdmFyKHBuYW1lKScgYW5kIHRvCiBtb3N0IHN1YnNlcXVlbnQg dXNlcyBvZiBgdHQodHlwZXNldCknIHdpdGggdGhlIGV4Y2VwdGlvbiBvZgotYHR0KHR5cGVzZXQg LW4pJyBhbmQgYHR0KHR5cGVzZXQgK24pJywgc28gdG8gcmVtb3ZlIGEgbmFtZWQgcmVmZXJlbmNl Ci1pdCBpcyBuZWNlc3NhcnkgdG8gdXNlIG9uZSBvZjoKK2B0dCh0eXBlc2V0IC1uKScgYW5kIGB0 dCh0eXBlc2V0ICtuKScsIHNvIHRvIHJlbW92ZSBhIG5hbWVkIHJlZmVyZW5jZSwKK3VzZSBlaXRo ZXIgYHR0KHVuc2V0IC1uICl2YXIocG5hbWUpJyBvciBvbmUgb2Y6CiBpZnptYW4oKQogZXhhbXBs ZSh0dCh0eXBlc2V0IC1uICl2YXIocG5hbWUpCiB0dCh0eXBlc2V0ICtuICl2YXIocG5hbWUpKQpk aWZmIC0tZ2l0IGEvVGVzdC9LMDFuYW1lcmVmLnp0c3QgYi9UZXN0L0swMW5hbWVyZWYuenRzdApp bmRleCBhNjYzMTk0YTcuLjYxYzJiMDA2YSAxMDA2NDQKLS0tIGEvVGVzdC9LMDFuYW1lcmVmLnp0 c3QKKysrIGIvVGVzdC9LMDFuYW1lcmVmLnp0c3QKQEAgLTIzLDYgKzIzLDEyIEBACiAgcHRyPXZh cgogIHR5cGVzZXQgLW4KIDA6YXNzaWduIG5hbWVyZWYgcGxhY2Vob2xkZXIKKz5wdHI9dmFyCisK KyB0eXBlc2V0IHB0cj12YXIKKyB0eXBlc2V0IC1uIHB0cgorIHR5cGVzZXQgLW4KKzA6Y29udmVy dCBzY2FsYXIgdG8gbmFtZXJlZgogPnB0cj12YXIKIAogIHR5cGVzZXQgLW4gcHRyPXZhcgpAQCAt NDYsNiArNTIsMTEgQEAgRjpPdGhlciB0eXBlIGNoYW5nZXMgYXJlIGZhdGFsIGVycm9ycywgc2hv dWxkIHRoaXMgYWxzbyBiZT8KID50eXBlc2V0IC1uIHB0cj12YXIKID50eXBlc2V0IC10IHZhcgog CisgdHlwZXNldCAtbiBwdHI9dmFyWzJdCisgdHlwZXNldCAtdCBwdHIKKzE6Y2hhbmdlIHR5cGUg b2YgcmVmZXJlbmNlZCBhcnJheSBlbGVtZW50CisqPyp2YXJcWzJcXTogY2FuJ3QgY2hhbmdlIHR5 cGUgdmlhIHN1YnNjcmlwdCByZWZlcmVuY2UKKwogIHR5cGVzZXQgLW4gcHRyWzFdPXZhcgogMTpp bGxlZ2FsIG5hbWVyZWYgbmFtZQogKj8qcmVmZXJlbmNlIHZhcmlhYmxlIGNhbm5vdCBiZSBhbiBh cnJheQpAQCAtOTEsNiArMTAyLDE0IEBAIEY6T3RoZXIgdHlwZSBjaGFuZ2VzIGFyZSBmYXRhbCBl cnJvcnMsIHNob3VsZCB0aGlzIGFsc28gYmU/CiAgdHlwZXNldCAtcCB2YXIKIDA6dW5zZXQgdmlh IG5hbWVyZWYKIAorIHR5cGVzZXQgLW4gcHRyPXZhcgorIHR5cGVzZXQgdmFyPXZhbHVlCisgdW5z ZXQgLW4gcHRyCisgdHlwZXNldCAtcCB2YXIgcHRyCiswOnVuc2V0IG9mIHRoZSBuYW1lcmVmIGl0 c2VsZgorRjpJZiBlYXJsaWVyIHRlc3RzIGNoYW5nZSwgbWlnaHQgZ2V0ICJubyBzdWNoIHZhcmlh YmxlIiBoZXJlCis+dHlwZXNldCB2YXI9dmFsdWUKKwogIHR5cGVzZXQgLW4gcHRyPXZhcgogIHR5 cGVzZXQgdmFyPXZhbHVlCiAgdHlwZXNldCAtcCBwdHIgdmFyCkBAIC0xMDUsMTEgKzEyNCwxMSBA QCBGOk90aGVyIHR5cGUgY2hhbmdlcyBhcmUgZmF0YWwgZXJyb3JzLCBzaG91bGQgdGhpcyBhbHNv IGJlPwogIHR5cGVzZXQgLW4gcHRyPXZhcgogIHB0cj12YWx1ZQogIHR5cGVzZXQgLXAgdmFyIHB0 cgotIHVuc2V0IHZhcgkjIGZvciBuZXh0IHRlc3QKIDA6YXNzaWduIG5ldyBzY2FsYXIgdmlhIG5h bWVyZWYKID50eXBlc2V0IC1nIHZhcj12YWx1ZQogPnR5cGVzZXQgLW4gcHRyPXZhcgogCisgdW5z ZXQgdmFyCiAgdHlwZXNldCAtbiBwdHI9dmFyCiAgdHlwZXNldCB2YXI9KHZhbDEgdmFsMikKICB0 eXBlc2V0IC1wIHB0ciB2YXIKQEAgLTEzMiwxMSArMTUxLDExIEBAIEY6dW5leHBlY3RlZCBzaWRl LWVmZmVjdHMgb2YgcHJldmlvdXMgdGVzdHMKICB0eXBlc2V0IC1uIHB0cj12YXIKICBwdHI9KHZh bDEgdmFsMikKICB0eXBlc2V0IC1wIHZhciBwdHIKLSB1bnNldCB2YXIJIyBmb3IgbmV4dCB0ZXN0 CiAwOmFzc2lnbiBuZXcgYXJyYXkgdmlhIG5hbWVyZWYKID50eXBlc2V0IC1nIC1hIHZhcj0oIHZh bDEgdmFsMiApCiA+dHlwZXNldCAtbiBwdHI9dmFyCiAKKyB1bnNldCB2YXIKICB0eXBlc2V0IC1u IHB0cjI9dmFyCiAgdHlwZXNldCAtbiBwdHIxPXB0cjIKICB0eXBlc2V0IHZhcj12YWx1ZQpAQCAt MTc4LDEyICsxOTcsMTIgQEAgRjp1bmV4cGVjdGVkIHNpZGUtZWZmZWN0cyBvZiBwcmV2aW91cyB0 ZXN0cwogIHR5cGVzZXQgLW4gcHRyMT1wdHIyCiAgdHlwZXNldCBwdHIxPW5ld3ZhbHVlCiAgdHlw ZXNldCAtcCBwdHIxIHB0cjIgdmFyCi0gdW5zZXQgdmFyCSMgZm9yIG5leHQgdGVzdAogMDp0eXBl c2V0IG5ldyBwYXJhbWV0ZXIgaW5kaXJlY3RseQogPnR5cGVzZXQgLW4gcHRyMT1wdHIyCiA+dHlw ZXNldCAtbiBwdHIyPXZhcgogPnR5cGVzZXQgdmFyPW5ld3ZhbHVlCiAKKyB1bnNldCB2YXIKICB0 eXBlc2V0IC1uIHB0cjI9dmFyCiAgdHlwZXNldCAtbiBwdHIxPXB0cjIKICB0eXBlc2V0IHZhcj12 YWx1ZQpAQCAtMjE5LDE5ICsyMzgsMTggQEAgRjp1bmV4cGVjdGVkIHNpZGUtZWZmZWN0cyBvZiBw cmV2aW91cyB0ZXN0cwogIHR5cGVzZXQgLW4gcHRyMT1wdHIyCiAgdHlwZXNldCBwdHIxPSh2YWwx IHZhbDIpCiAgdHlwZXNldCAtcCBwdHIxIHB0cjIgdmFyCi0gdW5zZXQgdmFyCSMgZm9yIG5leHQg dGVzdAogMDp0eXBlc2V0IG5ldyBhcnJheSBpbmRpcmVjdGx5CiA+dHlwZXNldCAtbiBwdHIxPXB0 cjIKID50eXBlc2V0IC1uIHB0cjI9dmFyCiA+dHlwZXNldCAtYSB2YXI9KCB2YWwxIHZhbDIgKQog Ci0gdHlwZXNldCAtcCBwdHIxIHB0cjIgdmFyCisgdHlwZXNldCAtcCBwdHIxIHB0cjIKIDE6Y2hl Y2sgc3RhdGUgb2YgcGFyYW10YWIgRk9VUgogRjp1bmV4cGVjdGVkIHNpZGUtZWZmZWN0cyBvZiBw cmV2aW91cyB0ZXN0cwogKj8qbm8gc3VjaCB2YXJpYWJsZTogcHRyMQogKj8qbm8gc3VjaCB2YXJp YWJsZTogcHRyMgotKj8qbm8gc3VjaCB2YXJpYWJsZTogdmFyCiAKKyB1bnNldCB2YXIKICB0eXBl c2V0IC1uIHB0cjI9dmFyCiAgdHlwZXNldCAtbiBwdHIxPXB0cjIKICBwdHIxPSh2YWwxIHZhbDIp CkBAIC0yNDQsNiArMjYyLDIwIEBAIEY6dW5leHBlY3RlZCBzaWRlLWVmZmVjdHMgb2YgcHJldmlv dXMgdGVzdHMKICB0eXBlc2V0IC1uIHB0cjE9cHRyMgogIHR5cGVzZXQgLW4gcHRyMj1wdHIxCiAx OmRpcmVjdCBuYW1lcmVmIGxvb3Agbm90IGFsbG93ZWQKKyo/KmludmFsaWQgc2VsZiByZWZlcmVu Y2UKKworIHVuc2V0IHZhcgorIHR5cGVzZXQgLWduIHB0cjE9dmFyCisgdHlwZXNldCAtcCBwdHIx CiswOmdsb2JhbCByZWZlcmVuY2UgdG8gdW5zZXQgdmFyCis+dHlwZXNldCAtZyAtbiBwdHIxPXZh cgorCisgdW5zZXQgLW4gcHRyMQorIHR5cGVzZXQgLWduIHB0cjEKKyB0eXBlc2V0IC1wIHB0cjEK KyBwdHIxPXB0cjEKKzE6Z2xvYmFsIGRpcmVjdCByZWZlcmVuY2UKKz50eXBlc2V0IC1nIC1uIHB0 cjEKICo/KmludmFsaWQgc2VsZiByZWZlcmVuY2UKIAogIHR5cGVzZXQgLW4gcHRyMT1wdHIyCkBA IC0yNTIsMjggKzI4NCwzOSBAQCBGOnVuZXhwZWN0ZWQgc2lkZS1lZmZlY3RzIG9mIHByZXZpb3Vz IHRlc3RzCiAxOmluZGlyZWN0IG5hbWVyZWYgbG9vcCBub3QgYWxsb3dlZAogKj8qaW52YWxpZCBz ZWxmIHJlZmVyZW5jZQogCisgdHlwZXNldCAtbiBwdHIxIHB0cjIKKyBwdHIxPXB0cjIKKyBwdHIy PXB0cjEKKzE6bG9vcGluZyBhc3NpZ25tZW50IG5vdCBhbGxvd2VkCisqPyppbnZhbGlkIHNlbGYg cmVmZXJlbmNlCisKKyB1bnNldCAtbiBwdHIyCiAgdHlwZXNldCAtbiBwdHIyPSdwYXRoWzJdJwog IHByaW50IC1yIC0tICRwdHIyCiAwcTpuYW1lcmVmIHRvIGFycmF5IGVsZW1lbnQsIG5vIGJyYWNl cwogPiR7cGF0aFsyXX0KIAorIHVuc2V0IC1uIHB0cjIKICB0eXBlc2V0IC1uIHB0cjI9J3BhdGhb Ml0nCiAgcHJpbnQgLXIgLS0gJHtwdHIyfQogMHE6bmFtZXJlZiB0byBhcnJheSBlbGVtZW50LCB3 aXRoIGJyYWNlcwogPiR7cGF0aFsyXX0KIAorIHVuc2V0IC1uIHB0cjEKICB0eXBlc2V0IC1BIGhh c2g9KHggTUlTUyB5IEhJVCkKICB0eXBlc2V0IC1uIHB0cjE9J2hhc2hbeV0nCiAgcHJpbnQgLXIg LS0gJHB0cjEKIDA6bmFtZXJlZiB0byBoYXNoIGVsZW1lbnQsIG5vIGJyYWNlcwogPkhJVAogCisg dW5zZXQgLW4gcHRyMQogIHR5cGVzZXQgLUEgaGFzaD0oeCBNSVNTIHkgSElUKQogIHR5cGVzZXQg LW4gcHRyMT0naGFzaFt5XScKICBwcmludCAtciAtLSAke3B0cjF9CiAwOm5hbWVyZWYgdG8gaGFz aCBlbGVtZW50LCB3aXRoIGJyYWNlcwogPkhJVAogCisgdW5zZXQgLW4gcHRyMgogIHR5cGVzZXQg LWEgYXJ5PSgxIDIpCiAgdHlwZXNldCAtbiBwdHIyPSdhcnlbMl0nCiAgcHRyMj1UV08KQEAgLTI4 MSw2ICszMjQsNyBAQCBGOnVuZXhwZWN0ZWQgc2lkZS1lZmZlY3RzIG9mIHByZXZpb3VzIHRlc3Rz CiAwOmFzc2lnbiBhcnJheSBlbGVtZW50IGJ5IG5hbWVyZWYKID50eXBlc2V0IC1hIGFyeT0oIDEg VFdPICkKIAorIHVuc2V0IC1uIHB0cjIKICB0eXBlc2V0IC1uIHB0cjI9J2FyeVsyXScKICBwdHIy PVRXTwogIHR5cGVzZXQgLXAgYXJ5CkBAIC0yODgsNiArMzMyLDcgQEAgRjp1bmV4cGVjdGVkIHNp ZGUtZWZmZWN0cyBvZiBwcmV2aW91cyB0ZXN0cwogRjprc2g5MyBkb2VzIG5vdCBpbXBsZW1lbnQg dGhpcyBlaXRoZXIKID50eXBlc2V0IC1hIGFyeT0oICcnIFRXTyApCiAKKyB1bnNldCAtbiBwdHIx CiAgdHlwZXNldCAtQSBoYXNoPSh4IE1JU1MgeSBNSVNTKQogIHR5cGVzZXQgLW4gcHRyMT0naGFz aFt5XScKICBwdHIxPUhJVApAQCAtMjk1LDYgKzM0MCw3IEBAIEY6a3NoOTMgZG9lcyBub3QgaW1w bGVtZW50IHRoaXMgZWl0aGVyCiAwOmFzc2lnbiB0byBoYXNoIGVsZW1lbnQgYnkgbmFtZXJlZgog PnR5cGVzZXQgLUEgaGFzaD0oIFt4XT1NSVNTIFt5XT1ISVQgKQogCisgdW5zZXQgLW4gcHRyMQog IHR5cGVzZXQgLUEgaGFzaAogIHR5cGVzZXQgLW4gcHRyMT0naGFzaFt5XScKICBwdHIxPUhJVApA QCAtMzAzLDEwICszNDksMTMgQEAgRjprc2g5MyBkb2VzIG5vdCBpbXBsZW1lbnQgdGhpcyBlaXRo ZXIKIEY6a3NoOTMgZG9lcyBub3QgaW1wbGVtZW50IHRoaXMgZWl0aGVyCiA+dHlwZXNldCAtQSBo YXNoPSggW3ldPUhJVCApCiAKKyB1bnNldCAtbiBwdHIxCiAgdHlwZXNldCAtbiBwdHIxPSdub3Qg Z29vZCcKIDE6aW52YWxpZCBuYW1lcmVmCiAqPyppbnZhbGlkIHZhcmlhYmxlIG5hbWU6IG5vdCBn b29kCiAKKyB1bnNldCAtbiBwdHIxCisgdW5zZXQgaGFzaAogIHR5cGVzZXQgLUEgaGFzaAogIHR5 cGVzZXQgLW4gcHRyMT0naGFzaFt5XScKICBwcmludCAke3B0cjE6Oj1ISVR9CkBAIC0zMTYsMjQg KzM2NSwyNSBAQCBGOmtzaDkzIGRvZXMgbm90IGltcGxlbWVudCB0aGlzIGVpdGhlcgogPnR5cGVz ZXQgLW4gcHRyMT0naGFzaFt5XScKID50eXBlc2V0IC1BIGhhc2g9KCBbeV09SElUICkKIAorIHVu c2V0IC1uIHB0cgorIHVuc2V0IGd2YWwKICB0eXBlc2V0IC1uIHB0cj1ndmFsCiAgZ3ZhbD1nbG9i YWwKICAoKSB7IGxvY2FsIGd2YWw9bG9jYWw7IHByaW50ICRwdHI7IHR5cGVzZXQgLXAgcHRyIGd2 YWwgfQotIHVuc2V0IGd2YWwJIyBmb3IgbmV4dCB0ZXN0CiAwOnVwLXJlZmVyZW5jZSBwYXJ0IDEK ID5nbG9iYWwKID50eXBlc2V0IC1nIC1uIHB0cj1ndmFsCiA+dHlwZXNldCBndmFsPWxvY2FsCiAK LSB0eXBlc2V0IC1wIHB0ciBwdHIxIHB0cjIgdmFsIGd2YWwKKyB0eXBlc2V0IC1wIHB0ciBwdHIx IHB0cjIgdmFsCiAxOmNoZWNrIHN0YXRlIG9mIHBhcmFtdGFiIEZJVkUKIEY6dW5leHBlY3RlZCBz aWRlLWVmZmVjdHMgb2YgcHJldmlvdXMgdGVzdHMKICo/Km5vIHN1Y2ggdmFyaWFibGU6IHB0cgog Kj8qbm8gc3VjaCB2YXJpYWJsZTogcHRyMQogKj8qbm8gc3VjaCB2YXJpYWJsZTogcHRyMgogKj8q bm8gc3VjaCB2YXJpYWJsZTogdmFsCi0qPypubyBzdWNoIHZhcmlhYmxlOiBndmFsCiAKKyB1bnNl dCBndmFsCiAgdHlwZXNldCAtbiBwdHIxPWd2YWwKICB0eXBlc2V0IGd2YWwKICAoKSB7IHR5cGVz ZXQgZ3ZhbD1sb2NhbDsgcHRyMT1nbG9iYWwgfQpAQCAtNTA5LDQgKzU1OSwxMDYgQEAgRjpTYW1l IHRlc3QsIHNob3VsZCBwYXJ0IDUgb3V0cHV0IGxvb2sgbGlrZSB0aGlzPwogPmJyeVsyXQogPmlw c3VtCiAKKyB1bnNldCAtbiByZWYKKyB1bnNldCB2YXIKKyB0eXBlc2V0IC1uIHJlZj12YXIKKyB0 eXBlc2V0IHZhcj1HTE9CQUwKKyAoKSB7CisgIHR5cGVzZXQgLW4gcmVmPSQxCisgIHByaW50IC1y ICRyZWYKKyAgcmVmPVJFU0VUCisgIHR5cGVzZXQgLXAgcmVmIHZhcgorIH0gcmVmCisgdHlwZXNl dCAtcCByZWYgdmFyCiswOmxvY2FsIHJlZmVyZW5jZSBwb2ludHMgdG8gc2FtZS1uYW1lIGdsb2Jh bCByZWZlcmVuY2UsIHBhcnQgMQorPkdMT0JBTAorPnR5cGVzZXQgLW4gcmVmPXJlZgorPnR5cGVz ZXQgLWcgdmFyPVJFU0VUCis+dHlwZXNldCAtbiByZWY9dmFyCis+dHlwZXNldCB2YXI9UkVTRVQK KworIHVuc2V0IC1uIHJlZgorIHVuc2V0IHZhcgorIHR5cGVzZXQgLW4gcmVmPXZhcgorICgpIHsK KyAgdHlwZXNldCAtbiByZWY9JDEKKyAgcHJpbnQgLXIgJHJlZgorICByZWY9UkVTRVQKKyAgdHlw ZXNldCAtcCByZWYgdmFyCisgfSByZWYKKyB0eXBlc2V0IC1wIHJlZiB2YXIKKzA6bG9jYWwgcmVm ZXJlbmNlIHBvaW50cyB0byBzYW1lLW5hbWUgZ2xvYmFsIHJlZmVyZW5jZSwgcGFydCAyCis+Cis+ dHlwZXNldCAtbiByZWY9cmVmCis+dHlwZXNldCAtZyB2YXI9UkVTRVQKKz50eXBlc2V0IC1uIHJl Zj12YXIKKz50eXBlc2V0IC1nIHZhcj1SRVNFVAorCisgdW5zZXQgLW4gcmVmCisgdW5zZXQgb25l CisgdHlwZXNldCAtbiByZWYKKyB0eXBlc2V0IG9uZT1PTkUKKyBmb3IgcmVmIGluIG9uZSByZWYg dHdvOyBkbyBwcmludCAtciAkcmVmOyBkb25lCisxOmZvci1sb29wIHZhcmlhYmxlIGlzIGEgcmVm ZXJlbmNlLCBwYXJ0IDEKKz5PTkUKKyo/KnJlZjogaW52YWxpZCBzZWxmIHJlZmVyZW5jZQorCisg dW5zZXQgLW4gcmVmCisgdW5zZXQgb25lCisgdHlwZXNldCAtbiByZWYKKyAoKSB7CisgIHR5cGVz ZXQgb25lPU9ORQorICBmb3IgcmVmIGluIG9uZSByZWYgdHdvOyBkbyBwcmludCAtciAkeyh0KXJl Zn07IGRvbmUKKyB9CisxOmZvci1sb29wIHZhcmlhYmxlIGlzIGEgcmVmZXJlbmNlLCBwYXJ0IDIK Kz5zY2FsYXItbG9jYWwKKyo/KnJlZjogaW52YWxpZCBzZWxmIHJlZmVyZW5jZQorCisgdW5zZXQg LW4gcmVmCisgdW5zZXQgb25lIHZhcgorIHR5cGVzZXQgLW4gcmVmPXZhcgorICgpIHsKKyAgdHlw ZXNldCBvbmU9T05FCisgIHR5cGVzZXQgLW4gcmVmPXJlZgorICBmb3IgcmVmIGluIG9uZSByZWYg dHdvOyBkbworICAgdHlwZXNldCAtcCByZWYKKyAgIHByaW50IC1yICRyZWYKKyAgZG9uZQorICB0 eXBlc2V0IC1wIHJlZgorIH0KKyB0eXBlc2V0IC1wIHJlZgorMDpmb3ItbG9vcCB2YXJpYWJsZSBp cyBhIHJlZmVyZW5jZSwgcGFydCAzCis+dHlwZXNldCAtbiByZWY9b25lCis+T05FCis+dHlwZXNl dCAtbiByZWY9cmVmCis+Cis+dHlwZXNldCAtbiByZWY9dHdvCis+Cis+dHlwZXNldCAtbiByZWY9 dHdvCis+dHlwZXNldCAtbiByZWY9dmFyCisKKyB1bnNldCAtbiByZWYKKyB1bnNldCBvbmUKKyB0 eXBlc2V0IC1uIHJlZgorICgpIHsKKyAgc2V0b3B0IGxvY2Fsb3B0aW9ucyB3YXJuX25lc3RlZF92 YXIKKyAgdHlwZXNldCBvbmU9T05FCisgIGZvciByZWYgaW4gb25lIHR3bzsgZG8gcHJpbnQgLXIg JHsodClyZWZ9OyBkb25lCisgIHR5cGVzZXQgLW4gcmVmCisgIGZvciByZWYgaW4gb25lIHR3bzsg ZG8gcHJpbnQgLXIgJHsodClyZWZ9OyBkb25lCisgfQorMDpmb3ItbG9vcCB2YXJpYWJsZSBpcyBh IHJlZmVyZW5jZSwgcGFydCA0LCB3YXJuaW5ncworPnNjYWxhci1sb2NhbAorPgorPnNjYWxhci1s b2NhbAorPgorKj8qcmVmOiBnbG9iYWwgcmVmZXJlbmNlIHRvIGxvY2FsIHZhcmlhYmxlOiBvbmUK KworIHR5cGVzZXQgLW4gcHRyPSdhcnlbJChlY2hvIDIpXScKKyB0eXBlc2V0IC1hIGFyeT0ob25l IHR3byB0aHJlZSkKKyBwcmludCAkcHRyCisxOmF0dGVtcHQgZGVmZXJyZWQgY29tbWFuZCBzdWJz dGl0dXRpb24gaW4gc3Vic2NyaXB0CitGOnJ1bnMgaW4gYHNldG9wdCBub2V4ZWNgIHNvICQoLi4u KSByZXR1cm5zIG5vdGhpbmcKKyo/KmJhZCBtYXRoIGV4cHJlc3Npb246IGVtcHR5IHN0cmluZwor CiAlY2xlYW4K --0000000000007615d705f47964f9--