From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/84463 Path: news.gmane.org!not-for-mail From: Thangalin Newsgroups: gmane.comp.tex.context Subject: Re: Repeat second-level registers within index Date: Fri, 27 Sep 2013 15:27:44 -0700 Message-ID: References: <20130926101657.GA10697@phlegethon> <5245CBE8.6050809@wxs.nl> Reply-To: mailing list for ConTeXt users NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=047d7bd76898cf657704e764fedd X-Trace: ger.gmane.org 1380320868 3910 80.91.229.3 (27 Sep 2013 22:27:48 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 27 Sep 2013 22:27:48 +0000 (UTC) To: mailing list for ConTeXt users Original-X-From: ntg-context-bounces@ntg.nl Sat Sep 28 00:27:53 2013 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane.org Original-Received: from balder.ntg.nl ([5.39.185.229]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1VPgVt-0004hq-8N for gctc-ntg-context-518@m.gmane.org; Sat, 28 Sep 2013 00:27:53 +0200 Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id A9105101EE; Sat, 28 Sep 2013 00:25:40 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at balder.ntg.nl Original-Received: from balder.ntg.nl ([127.0.0.1]) by localhost (balder.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id E2fj4HMaYQQ6; Sat, 28 Sep 2013 00:25:38 +0200 (CEST) Original-Received: from balder.ntg.nl (localhost [IPv6:::1]) by balder.ntg.nl (Postfix) with ESMTP id 10243101E6; Sat, 28 Sep 2013 00:25:38 +0200 (CEST) Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id BC00B101E6 for ; Sat, 28 Sep 2013 00:25:35 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at balder.ntg.nl Original-Received: from balder.ntg.nl ([127.0.0.1]) by localhost (balder.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id A9jzEutIBIsk for ; Sat, 28 Sep 2013 00:25:34 +0200 (CEST) Original-Received: from filter3-ams.mf.surf.net (filter3-ams.mf.surf.net [192.87.102.71]) by balder.ntg.nl (Postfix) with ESMTP id B6F8E101DE for ; Sat, 28 Sep 2013 00:25:34 +0200 (CEST) Original-Received: from mail-ie0-x233.google.com (mail-ie0-x233.google.com [IPv6:2607:f8b0:4001:c03::233]) by filter3-ams.mf.surf.net (8.14.3/8.14.3/Debian-9.4) with ESMTP id r8RMRijx020863 for ; Sat, 28 Sep 2013 00:27:45 +0200 Original-Received: by mail-ie0-f179.google.com with SMTP id e14so5115870iej.24 for ; Fri, 27 Sep 2013 15:27:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=exwkJZSy+XU7sVOej5Uso/MV9LwDoA5aJE60CXQ4sBc=; b=BAw8giaUvAtOcKeuZ21yFk4NqhMEU2J72EimqinPqmbGzMAn1r0Uiy4nq6L4VtDCDk AyZv0Kipa8xcSOByvJGmdXe1b+x9L4bfLl2zqSJE1gqGnt6OXO0scfZbPGBbpnV1+AV1 au8vhMeVrn8zYONLI0JTo0Ya87uJJuDRd5Ny4wzKlkJ/prtueEtFSuKSnPiSei0AS0Sq fZumXCpwNnEGLzCm2Qb/0SVydj7sBpeLVsurwYFXDXAcbwWVGE2YizjinrCfcxG97FYj 5dPHtgCz3Ha5gQIifMS5PZv+ZNHpVN34k/9XVTGszUrbf3stVK3qRg6GnISwPkC1OTIT MGmQ== X-Received: by 10.50.25.39 with SMTP id z7mr4271120igf.59.1380320864582; Fri, 27 Sep 2013 15:27:44 -0700 (PDT) Original-Received: by 10.42.6.203 with HTTP; Fri, 27 Sep 2013 15:27:44 -0700 (PDT) In-Reply-To: <5245CBE8.6050809@wxs.nl> X-Bayes-Prob: 0.0001 (Score 0, tokens from: @@RPTN) X-CanIt-Geo: ip=2607:f8b0:4001:c03::233; country=US X-CanItPRO-Stream: uu:ntg-context@ntg.nl (inherits from uu:default, base:default) X-Canit-Stats-ID: 03KumrJVB - 7dbac7ec193c - 20130928 (trained as not-spam) X-Scanned-By: CanIt (www . roaringpenguin . com) X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.14 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ntg-context-bounces@ntg.nl Original-Sender: ntg-context-bounces@ntg.nl Xref: news.gmane.org gmane.comp.tex.context:84463 Archived-At: --047d7bd76898cf657704e764fedd Content-Type: multipart/alternative; boundary=047d7bd76898cf657104e764fedb --047d7bd76898cf657104e764fedb Content-Type: text/plain; charset=ISO-8859-1 Thank you, Hans. The error still seems to be present. Out of curiosity, what does "max 4" mean? Does it limit the index nesting levels? For my project, I require 5 nesting levels -- is that possible? Kind regards. --047d7bd76898cf657104e764fedb Content-Type: text/html; charset=ISO-8859-1
Thank you, Hans.

The error still seems to be present.

Out of curiosity, what does "max 4" mean? Does it limit the index nesting levels?

For my project, I require 5 nesting levels -- is that possible?

Kind regards.
--047d7bd76898cf657104e764fedb-- --047d7bd76898cf657704e764fedd Content-Type: application/octet-stream; name="strc-reg.lua" Content-Disposition: attachment; filename="strc-reg.lua" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hm3zcwkp0 aWYgbm90IG1vZHVsZXMgdGhlbiBtb2R1bGVzID0geyB9IGVuZCBtb2R1bGVzIFsnc3RyYy1yZWcn XSA9IHsKICAgIHZlcnNpb24gICA9IDEuMDAxLAogICAgY29tbWVudCAgID0gImNvbXBhbmlvbiB0 byBzdHJjLXJlZy5ta2l2IiwKICAgIGF1dGhvciAgICA9ICJIYW5zIEhhZ2VuLCBQUkFHTUEtQURF LCBIYXNzZWx0IE5MIiwKICAgIGNvcHlyaWdodCA9ICJQUkFHTUEgQURFIC8gQ29uVGVYdCBEZXZl bG9wbWVudCBUZWFtIiwKICAgIGxpY2Vuc2UgICA9ICJzZWUgY29udGV4dCByZWxhdGVkIHJlYWRt ZSBmaWxlcyIKfQoKbG9jYWwgbmV4dCwgdHlwZSA9IG5leHQsIHR5cGUKbG9jYWwgZm9ybWF0LCBn bWF0Y2ggPSBzdHJpbmcuZm9ybWF0LCBzdHJpbmcuZ21hdGNoCmxvY2FsIGVxdWFsLCBjb25jYXQs IHJlbW92ZSA9IHRhYmxlLmFyZV9lcXVhbCwgdGFibGUuY29uY2F0LCB0YWJsZS5yZW1vdmUKbG9j YWwgdXRmY2hhciA9IHV0Zi5jaGFyCmxvY2FsIGxwZWdtYXRjaCA9IGxwZWcubWF0Y2gKbG9jYWwg YWxsb2NhdGUgPSB1dGlsaXRpZXMuc3RvcmFnZS5hbGxvY2F0ZQoKbG9jYWwgdHJhY2VfcmVnaXN0 ZXJzID0gZmFsc2UgIHRyYWNrZXJzLnJlZ2lzdGVyKCJzdHJ1Y3R1cmVzLnJlZ2lzdGVycyIsIGZ1 bmN0aW9uKHYpIHRyYWNlX3JlZ2lzdGVycyA9IHYgZW5kKQoKbG9jYWwgcmVwb3J0X3JlZ2lzdGVy cyA9IGxvZ3MucmVwb3J0ZXIoInN0cnVjdHVyZSIsInJlZ2lzdGVycyIpCgpsb2NhbCBzdHJ1Y3R1 cmVzICAgICAgPSBzdHJ1Y3R1cmVzCmxvY2FsIHJlZ2lzdGVycyAgICAgICA9IHN0cnVjdHVyZXMu cmVnaXN0ZXJzCmxvY2FsIGhlbHBlcnMgICAgICAgICA9IHN0cnVjdHVyZXMuaGVscGVycwpsb2Nh bCBzZWN0aW9ucyAgICAgICAgPSBzdHJ1Y3R1cmVzLnNlY3Rpb25zCmxvY2FsIGRvY3VtZW50cyAg ICAgICA9IHN0cnVjdHVyZXMuZG9jdW1lbnRzCmxvY2FsIHBhZ2VzICAgICAgICAgICA9IHN0cnVj dHVyZXMucGFnZXMKbG9jYWwgcmVmZXJlbmNlcyAgICAgID0gc3RydWN0dXJlcy5yZWZlcmVuY2Vz Cgpsb2NhbCBtYXBwaW5ncyAgICAgICAgPSBzb3J0ZXJzLm1hcHBpbmdzCmxvY2FsIGVudHJpZXMg ICAgICAgICA9IHNvcnRlcnMuZW50cmllcwpsb2NhbCByZXBsYWNlbWVudHMgICAgPSBzb3J0ZXJz LnJlcGxhY2VtZW50cwoKbG9jYWwgcHJvY2Vzc29ycyAgICAgID0gdHlwZXNldHRlcnMucHJvY2Vz c29ycwpsb2NhbCBzcGxpdHByb2Nlc3NvciAgPSBwcm9jZXNzb3JzLnNwbGl0Cgpsb2NhbCB0ZXhn ZXRjb3VudCAgICAgPSB0ZXguZ2V0Y291bnQKCmxvY2FsIHZhcmlhYmxlcyAgICAgICA9IGludGVy ZmFjZXMudmFyaWFibGVzCmxvY2FsIGNvbnRleHQgICAgICAgICA9IGNvbnRleHQKbG9jYWwgY29t bWFuZHMgICAgICAgID0gY29tbWFuZHMKCmxvY2FsIG1hdGNoaW5ndGlsbGRlcHRoLCBudW1iZXJh dGRlcHRoID0gc2VjdGlvbnMubWF0Y2hpbmd0aWxsZGVwdGgsIHNlY3Rpb25zLm51bWJlcmF0ZGVw dGgKCi0tIHNvbWUgZGF5IHdlIHdpbGwgc2hhcmUgcmVnaXN0ZXJzIGFuZCBsaXN0cyAoYWx0aG91 Z2ggdGhlcmUgYXJlIHNvbWUgY29uY2VwdHVhbAotLSBkaWZmZXJlbmNlcyBpbiB0aGUgYXBwbGlj YXRpb24gb2Yga2V5d29yZHMpCgpsb2NhbCBmdW5jdGlvbiBmaWx0ZXJjb2xsZWN0ZWQobmFtZXMs Y3JpdGVyaXVtLG51bWJlcixjb2xsZWN0ZWQscHJldm1vZGUpCiAgICBpZiBub3QgY3JpdGVyaXVt IG9yIGNyaXRlcml1bSA9PSAiIiB0aGVuIGNyaXRlcml1bSA9IHZhcmlhYmxlcy5hbGwgZW5kCiAg ICBsb2NhbCBkYXRhID0gZG9jdW1lbnRzLmRhdGEKICAgIGxvY2FsIG51bWJlcnMsIGRlcHRoID0g ZGF0YS5udW1iZXJzLCBkYXRhLmRlcHRoCiAgICBsb2NhbCBoYXNoLCByZXN1bHQsIG5vZnJlc3Vs dCwgYWxsLCBkZXRhaWwgPSB7IH0sIHsgfSwgMCwgbm90IG5hbWVzIG9yIG5hbWVzID09ICIiIG9y IG5hbWVzID09IHZhcmlhYmxlcy5hbGwsIG5pbAogICAgaWYgbm90IGFsbCB0aGVuCiAgICAgICAg Zm9yIHMgaW4gZ21hdGNoKG5hbWVzLCJbXiwgXSsiKSBkbwogICAgICAgICAgICBoYXNoW3NdID0g dHJ1ZQogICAgICAgIGVuZAogICAgZW5kCiAgICBpZiBjcml0ZXJpdW0gPT0gdmFyaWFibGVzLmFs bCBvciBjcml0ZXJpdW0gPT0gdmFyaWFibGVzLnRleHQgdGhlbgogICAgICAgIGZvciBpPTEsI2Nv bGxlY3RlZCBkbwogICAgICAgICAgICBsb2NhbCB2ID0gY29sbGVjdGVkW2ldCiAgICAgICAgICAg IGlmIGFsbCB0aGVuCiAgICAgICAgICAgICAgICBub2ZyZXN1bHQgPSBub2ZyZXN1bHQgKyAxCiAg ICAgICAgICAgICAgICByZXN1bHRbbm9mcmVzdWx0XSA9IHYKICAgICAgICAgICAgZWxzZQogICAg ICAgICAgICAgICAgbG9jYWwgdm1uID0gdi5tZXRhZGF0YSBhbmQgdi5tZXRhZGF0YS5uYW1lCiAg ICAgICAgICAgICAgICBpZiBoYXNoW3Ztbl0gdGhlbgogICAgICAgICAgICAgICAgICAgIG5vZnJl c3VsdCA9IG5vZnJlc3VsdCArIDEKICAgICAgICAgICAgICAgICAgICByZXN1bHRbbm9mcmVzdWx0 XSA9IHYKICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICBlbmQKICAgICAgICBlbmQKICAg IGVsc2VpZiBjcml0ZXJpdW0gPT0gdmFyaWFibGVzLmN1cnJlbnQgdGhlbgogICAgICAgIGZvciBp PTEsI2NvbGxlY3RlZCBkbwogICAgICAgICAgICBsb2NhbCB2ID0gY29sbGVjdGVkW2ldCiAgICAg ICAgICAgIGxvY2FsIHNlY3Rpb25udW1iZXIgPSBzZWN0aW9ucy5jb2xsZWN0ZWRbdi5yZWZlcmVu Y2VzLnNlY3Rpb25dCiAgICAgICAgICAgIGlmIHNlY3Rpb25udW1iZXIgdGhlbgogICAgICAgICAg ICAgICAgbG9jYWwgY251bWJlcnMgPSBzZWN0aW9ubnVtYmVyLm51bWJlcnMKICAgICAgICAgICAg ICAgIGlmIHByZXZtb2RlIHRoZW4KICAgICAgICAgICAgICAgICAgICBpZiAoYWxsIG9yIGhhc2hb di5tZXRhZGF0YS5uYW1lXSkgYW5kICNjbnVtYmVycyA+PSBkZXB0aCB0aGVuIC0tIGlzIHRoZSA9 IG9rIGZvciBsaXN0cyBhcyB3ZWxsPwogICAgICAgICAgICAgICAgICAgICAgICBsb2NhbCBvayA9 IHRydWUKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGQ9MSxkZXB0aCBkbwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgbm90IChjbnVtYmVyc1tkXSA9PSBudW1iZXJzW2RdKSB0aGVu IC0tIG5vIHplcm8gdGVzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9rID0gZmFs c2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgICAg ICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAg ICAgICAgICAgICBpZiBvayB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2ZyZXN1 bHQgPSBub2ZyZXN1bHQgKyAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRbbm9m cmVzdWx0XSA9IHYKICAgICAgICAgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICAg ICAgZW5kCiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgaWYgKGFsbCBv ciBoYXNoW3YubWV0YWRhdGEubmFtZV0pIGFuZCAjY251bWJlcnMgPiBkZXB0aCB0aGVuCiAgICAg ICAgICAgICAgICAgICAgICAgIGxvY2FsIG9rID0gdHJ1ZQogICAgICAgICAgICAgICAgICAgICAg ICBmb3IgZD0xLGRlcHRoIGRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbCBjbmQg PSBjbnVtYmVyc1tkXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90IChjbmQgPT0g MCBvciBjbmQgPT0gbnVtYmVyc1tkXSkgdGhlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9rID0gZmFsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawogICAg ICAgICAgICAgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICAgICAgICAgIGVuZAog ICAgICAgICAgICAgICAgICAgICAgICBpZiBvayB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBub2ZyZXN1bHQgPSBub2ZyZXN1bHQgKyAxCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZXN1bHRbbm9mcmVzdWx0XSA9IHYKICAgICAgICAgICAgICAgICAgICAgICAgZW5kCiAgICAg ICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgZW5kCiAg ICAgICAgZW5kCiAgICBlbHNlaWYgY3JpdGVyaXVtID09IHZhcmlhYmxlcy5wcmV2aW91cyB0aGVu CiAgICAgICAgZm9yIGk9MSwjY29sbGVjdGVkIGRvCiAgICAgICAgICAgIGxvY2FsIHYgPSBjb2xs ZWN0ZWRbaV0KICAgICAgICAgICAgbG9jYWwgc2VjdGlvbm51bWJlciA9IHNlY3Rpb25zLmNvbGxl Y3RlZFt2LnJlZmVyZW5jZXMuc2VjdGlvbl0KICAgICAgICAgICAgaWYgc2VjdGlvbm51bWJlciB0 aGVuCiAgICAgICAgICAgICAgICBsb2NhbCBjbnVtYmVycyA9IHNlY3Rpb25udW1iZXIubnVtYmVy cwogICAgICAgICAgICAgICAgaWYgKGFsbCBvciBoYXNoW3YubWV0YWRhdGEubmFtZV0pIGFuZCAj Y251bWJlcnMgPj0gZGVwdGggdGhlbgogICAgICAgICAgICAgICAgICAgIGxvY2FsIG9rID0gdHJ1 ZQogICAgICAgICAgICAgICAgICAgIGlmIHByZXZtb2RlIHRoZW4KICAgICAgICAgICAgICAgICAg ICAgICAgZm9yIGQ9MSxkZXB0aCBkbwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90 IChjbnVtYmVyc1tkXSA9PSBudW1iZXJzW2RdKSB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgb2sgPSBmYWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgICAgICAgICAg ZW5kCiAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICBmb3Ig ZD0xLGRlcHRoIGRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbCBjbmQgPSBjbnVt YmVyc1tkXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90IChjbmQgPT0gMCBvciBj bmQgPT0gbnVtYmVyc1tkXSkgdGhlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9r ID0gZmFsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAg ICAgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICAgICAgICAgIGVuZAogICAgICAg ICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgICAgIGlmIG9rIHRoZW4KICAgICAgICAg ICAgICAgICAgICAgICAgbm9mcmVzdWx0ID0gbm9mcmVzdWx0ICsgMQogICAgICAgICAgICAgICAg ICAgICAgICByZXN1bHRbbm9mcmVzdWx0XSA9IHYKICAgICAgICAgICAgICAgICAgICBlbmQKICAg ICAgICAgICAgICAgIGVuZAogICAgICAgICAgICBlbmQKICAgICAgICBlbmQKICAgIGVsc2VpZiBj cml0ZXJpdW0gPT0gdmFyaWFibGVzWyJsb2NhbCJdIHRoZW4KICAgICAgICBpZiBzZWN0aW9ucy5h dXRvZGVwdGgoZGF0YS5udW1iZXJzKSA9PSAwIHRoZW4KICAgICAgICAgICAgcmV0dXJuIGZpbHRl cmNvbGxlY3RlZChuYW1lcyx2YXJpYWJsZXMuYWxsLG51bWJlcixjb2xsZWN0ZWQscHJldm1vZGUp CiAgICAgICAgZWxzZQogICAgICAgICAgICByZXR1cm4gZmlsdGVyY29sbGVjdGVkKG5hbWVzLHZh cmlhYmxlcy5jdXJyZW50LG51bWJlcixjb2xsZWN0ZWQscHJldm1vZGUpCiAgICAgICAgZW5kCiAg ICBlbHNlIC0tIHNlY3Rpb25uYW1lLCBudW1iZXIKICAgICAgICAtLSBiZXdhcmUsIHRoaXMgd29y a3Mgb2sgZm9yIHJlZ2lzdGVycwogICAgICAgIGxvY2FsIGRlcHRoID0gc2VjdGlvbnMuZ2V0bGV2 ZWwoY3JpdGVyaXVtKQogICAgICAgIGxvY2FsIG51bWJlciA9IHRvbnVtYmVyKG51bWJlcikgb3Ig bnVtYmVyYXRkZXB0aChkZXB0aCkgb3IgMAogICAgICAgIGlmIHRyYWNlX3JlZ2lzdGVycyB0aGVu CiAgICAgICAgICAgIGRldGFpbCA9IGZvcm1hdCgiZGVwdGg6ICVzLCBudW1iZXI6ICVzLCBudW1i ZXJzOiAlcywgc3RhcnRzZXQ6ICVzIixkZXB0aCxudW1iZXIsY29uY2F0KHNlY3Rpb25zLm51bWJl cnMoKSwiLiIsMSxkZXB0aCksI2NvbGxlY3RlZCkKICAgICAgICBlbmQKICAgICAgICBpZiBudW1i ZXIgPiAwIHRoZW4KICAgICAgICAgICAgZm9yIGk9MSwjY29sbGVjdGVkIGRvCiAgICAgICAgICAg ICAgICBsb2NhbCB2ID0gY29sbGVjdGVkW2ldCiAgICAgICAgICAgICAgICBsb2NhbCByID0gdi5y ZWZlcmVuY2VzCiAgICAgICAgICAgICAgICBpZiByIHRoZW4KICAgICAgICAgICAgICAgICAgICBs b2NhbCBzZWN0aW9ubnVtYmVyID0gc2VjdGlvbnMuY29sbGVjdGVkW3Iuc2VjdGlvbl0KICAgICAg ICAgICAgICAgICAgICBpZiBzZWN0aW9ubnVtYmVyIHRoZW4KICAgICAgICAgICAgICAgICAgICAg ICAgbG9jYWwgbWV0YWRhdGEgPSB2Lm1ldGFkYXRhCiAgICAgICAgICAgICAgICAgICAgICAgIGxv Y2FsIGNudW1iZXJzID0gc2VjdGlvbm51bWJlci5udW1iZXJzCiAgICAgICAgICAgICAgICAgICAg ICAgIGlmIGNudW1iZXJzIHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhbGwg b3IgaGFzaFttZXRhZGF0YS5uYW1lIG9yIGZhbHNlXSkgYW5kICNjbnVtYmVycyA+PSBkZXB0aCBh bmQgbWF0Y2hpbmd0aWxsZGVwdGgoZGVwdGgsY251bWJlcnMpIHRoZW4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBub2ZyZXN1bHQgPSBub2ZyZXN1bHQgKyAxCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmVzdWx0W25vZnJlc3VsdF0gPSB2CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAg ICAgICAgZW5kCiAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgZW5kCiAgICAgICAgZW5k CiAgICBlbmQKICAgIGlmIHRyYWNlX3JlZ2lzdGVycyB0aGVuCiAgICAgICAgaWYgZGV0YWlsIHRo ZW4KICAgICAgICAgICAgcmVwb3J0X3JlZ2lzdGVycygiY3JpdGVyaXVtICVhLCBkZXRhaWwgJWEs IGZvdW5kICVhIixjcml0ZXJpdW0sZGV0YWlsLCNyZXN1bHQpCiAgICAgICAgZWxzZQogICAgICAg ICAgICByZXBvcnRfcmVnaXN0ZXJzKCJjcml0ZXJpdW0gJWEsIGRldGFpbCAlYSwgZm91bmQgJWEi LGNyaXRlcml1bSxuaWwsI3Jlc3VsdCkKICAgICAgICBlbmQKICAgIGVuZAogICAgcmV0dXJuIHJl c3VsdAplbmQKCmxvY2FsIHRvYmVzYXZlZCAgICAgICAgICAgPSBhbGxvY2F0ZSgpCmxvY2FsIGNv bGxlY3RlZCAgICAgICAgICAgPSBhbGxvY2F0ZSgpCgpyZWdpc3RlcnMuY29sbGVjdGVkICAgICAg ID0gY29sbGVjdGVkCnJlZ2lzdGVycy50b2Jlc2F2ZWQgICAgICAgPSB0b2Jlc2F2ZWQKcmVnaXN0 ZXJzLmZpbHRlcmNvbGxlY3RlZCA9IGZpbHRlcmNvbGxlY3RlZAoKLS0gd2UgZm9sbG93IGEgZGlm ZmVyZW50IHN0cmF0ZWd5IHRoYW4gYnkgbGlzdHMsIHdoZXJlIHdlIGhhdmUgYSBnbG9iYWwKLS0g cmVzdWx0IHRhYmxlOyB3ZSBtaWdodCBkbyB0aGF0IGhlcmUgYXMgd2VsbCBidXQgc2luY2Ugc29y dGluZyBjb2RlIGlzCi0tIG9sZGVyIHdlIGRlbGF5IHRoYXQgZGVjaXNpb24KCmxvY2FsIGZ1bmN0 aW9uIGluaXRpYWxpemVyKCkKICAgIHRvYmVzYXZlZCA9IHJlZ2lzdGVycy50b2Jlc2F2ZWQKICAg IGNvbGxlY3RlZCA9IHJlZ2lzdGVycy5jb2xsZWN0ZWQKICAgIGxvY2FsIGludGVybmFscyA9IHJl ZmVyZW5jZXMuaW50ZXJuYWxzCiAgICBmb3IgbmFtZSwgbGlzdCBpbiBuZXh0LCBjb2xsZWN0ZWQg ZG8KICAgICAgICBsb2NhbCBlbnRyaWVzID0gbGlzdC5lbnRyaWVzCiAgICAgICAgZm9yIGU9MSwj ZW50cmllcyBkbwogICAgICAgICAgICBsb2NhbCBlbnRyeSA9IGVudHJpZXNbZV0KICAgICAgICAg ICAgbG9jYWwgciA9IGVudHJ5LnJlZmVyZW5jZXMKICAgICAgICAgICAgaWYgciB0aGVuCiAgICAg ICAgICAgICAgICBsb2NhbCBpbnRlcm5hbCA9IHIgYW5kIHIuaW50ZXJuYWwKICAgICAgICAgICAg ICAgIGlmIGludGVybmFsIHRoZW4KICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbHNbaW50ZXJu YWxdID0gZW50cnkKICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICBlbmQKICAgICAgICBl bmQKICAgIGVuZAplbmQKCmpvYi5yZWdpc3Rlcignc3RydWN0dXJlcy5yZWdpc3RlcnMuY29sbGVj dGVkJywgdG9iZXNhdmVkLCBpbml0aWFsaXplcikKCmxvY2FsIGZ1bmN0aW9uIGFsbG9jYXRlKGNs YXNzKQogICAgbG9jYWwgZCA9IHRvYmVzYXZlZFtjbGFzc10KICAgIGlmIG5vdCBkIHRoZW4KICAg ICAgICBkID0gewogICAgICAgICAgICBtZXRhZGF0YSA9IHsKICAgICAgICAgICAgICAgIGxhbmd1 YWdlID0gJ2VuJywKICAgICAgICAgICAgICAgIHNvcnRlZCAgID0gZmFsc2UsCiAgICAgICAgICAg ICAgICBjbGFzcyAgICA9IGNsYXNzCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGVudHJpZXMg ID0geyB9LAogICAgICAgIH0KICAgICAgICB0b2Jlc2F2ZWRbY2xhc3NdID0gZAogICAgZW5kCiAg ICByZXR1cm4gZAplbmQKCnJlZ2lzdGVycy5kZWZpbmUgPSBhbGxvY2F0ZQoKbG9jYWwgZW50cnlz cGxpdHRlciA9IGxwZWcudHNwbGl0YXQoJysnKSAtLSAmIG9ic29sZXRlIGluIG1raXYKCmxvY2Fs IHRhZ2dlZCA9IHsgfQoKbG9jYWwgZnVuY3Rpb24gcHJlcHJvY2Vzc2VudHJpZXMocmF3ZGF0YSkK ICAgIGxvY2FsIGVudHJpZXMgPSByYXdkYXRhLmVudHJpZXMKICAgIGlmIGVudHJpZXMgdGhlbgot LX4gdGFibGUucHJpbnQocmF3ZGF0YSkKICAgICAgICBsb2NhbCBlLCBrID0gZW50cmllc1sxXSBv ciAiIiwgZW50cmllc1syXSBvciAiIgogICAgICAgIGxvY2FsIGV0LCBrdCwgZW50cnlwcm9jLCBw YWdlcHJvYwogICAgICAgIGlmIHR5cGUoZSkgPT0gInRhYmxlIiB0aGVuCiAgICAgICAgICAgIGV0 ID0gZQogICAgICAgIGVsc2UKICAgICAgICAgICAgZW50cnlwcm9jLCBlID0gc3BsaXRwcm9jZXNz b3IoZSkKICAgICAgICAgICAgZXQgPSBscGVnbWF0Y2goZW50cnlzcGxpdHRlcixlKQogICAgICAg IGVuZAogICAgICAgIGlmIHR5cGUoaykgPT0gInRhYmxlIiB0aGVuCiAgICAgICAgICAgIGt0ID0g awogICAgICAgIGVsc2UKICAgICAgICAgICAgcGFnZXByb2MsIGsgPSBzcGxpdHByb2Nlc3Nvcihr KQogICAgICAgICAgICBrdCA9IGxwZWdtYXRjaChlbnRyeXNwbGl0dGVyLGspCiAgICAgICAgZW5k CiAgICAgICAgZW50cmllcyA9IHsgfQogICAgICAgIGZvciBrPTEsI2V0IGRvCiAgICAgICAgICAg IGVudHJpZXNba10gPSB7IGV0W2tdIG9yICIiLCBrdFtrXSBvciAiIiB9CiAgICAgICAgZW5kCiAg ICAgICAgZm9yIGs9I2V0LDEsLTEgZG8KICAgICAgICAgICAgaWYgZW50cmllc1trXVsxXSB+PSAi IiB0aGVuCiAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICBlbHNlCiAgICAgICAgICAg ICAgICBlbnRyaWVzW2tdID0gbmlsCiAgICAgICAgICAgIGVuZAogICAgICAgIGVuZAogICAgICAg IHJhd2RhdGEubGlzdCA9IGVudHJpZXMKICAgICAgICBpZiBwYWdlcHJvYyBvciBlbnRyeXByb2Mg dGhlbgogICAgICAgICAgICByYXdkYXRhLnByb2Nlc3NvcnMgPSB7IGVudHJ5cHJvYywgcGFnZXBy b2MgfQogICAgICAgIGVuZAogICAgICAgIHJhd2RhdGEuZW50cmllcyA9IG5pbAogICAgZW5kCiAg ICBsb2NhbCBzZWV3b3JkID0gcmF3ZGF0YS5zZWV3b3JkCiAgICBpZiBzZWV3b3JkIHRoZW4KICAg ICAgICBzZWV3b3JkLnByb2Nlc3Nvciwgc2Vld29yZC50ZXh0ID0gc3BsaXRwcm9jZXNzb3Ioc2Vl d29yZC50ZXh0IG9yICIiKQogICAgZW5kCmVuZAoKZnVuY3Rpb24gcmVnaXN0ZXJzLnN0b3JlKHJh d2RhdGEpIC0tIG1ldGFkYXRhLCByZWZlcmVuY2VzLCBlbnRyaWVzCiAgICBsb2NhbCBkYXRhID0g YWxsb2NhdGUocmF3ZGF0YS5tZXRhZGF0YS5uYW1lKS5lbnRyaWVzCiAgICBsb2NhbCByZWZlcmVu Y2VzID0gcmF3ZGF0YS5yZWZlcmVuY2VzCiAgICByZWZlcmVuY2VzLnJlYWxwYWdlID0gcmVmZXJl bmNlcy5yZWFscGFnZSBvciAwIC0tIGp1c3QgdG8gYmUgc3VyZSBhcyBpdCBjYW4gYmUgcmVmZXJl ZCB0bwogICAgcHJlcHJvY2Vzc2VudHJpZXMocmF3ZGF0YSkKICAgIGRhdGFbI2RhdGErMV0gPSBy YXdkYXRhCiAgICBsb2NhbCBsYWJlbCA9IHJlZmVyZW5jZXMubGFiZWwKICAgIGlmIGxhYmVsIGFu ZCBsYWJlbCB+PSAiIiB0aGVuIHRhZ2dlZFtsYWJlbF0gPSAjZGF0YSBlbmQKICAgIGNvbnRleHQo I2RhdGEpCmVuZAoKZnVuY3Rpb24gcmVnaXN0ZXJzLmVuaGFuY2UobmFtZSxuKQogICAgbG9jYWwg ciA9IHRvYmVzYXZlZFtuYW1lXS5lbnRyaWVzW25dCiAgICBpZiByIHRoZW4KICAgICAgICByLnJl ZmVyZW5jZXMucmVhbHBhZ2UgPSB0ZXhnZXRjb3VudCgicmVhbHBhZ2VubyIpCiAgICBlbmQKZW5k CgpmdW5jdGlvbiByZWdpc3RlcnMuZXh0ZW5kKG5hbWUsdGFnLHJhd2RhdGEpIC0tIG1heWJlIGRv IGxhc3RzZWN0aW9uIGludGVybmFsbHkKICAgIGlmIHR5cGUodGFnKSA9PSAic3RyaW5nIiB0aGVu CiAgICAgICAgdGFnID0gdGFnZ2VkW3RhZ10KICAgIGVuZAogICAgaWYgdGFnIHRoZW4KICAgICAg ICBsb2NhbCByID0gdG9iZXNhdmVkW25hbWVdLmVudHJpZXNbdGFnXQogICAgICAgIGlmIHIgdGhl bgogICAgICAgICAgICBsb2NhbCByciA9IHIucmVmZXJlbmNlcwogICAgICAgICAgICByci5sYXN0 cmVhbHBhZ2UgPSB0ZXhnZXRjb3VudCgicmVhbHBhZ2VubyIpCiAgICAgICAgICAgIHJyLmxhc3Rz ZWN0aW9uID0gc2VjdGlvbnMuY3VycmVudGlkKCkKICAgICAgICAgICAgaWYgcmF3ZGF0YSB0aGVu CiAgICAgICAgICAgICAgICBpZiByYXdkYXRhLmVudHJpZXMgdGhlbgogICAgICAgICAgICAgICAg ICAgIHByZXByb2Nlc3NlbnRyaWVzKHJhd2RhdGEpCiAgICAgICAgICAgICAgICBlbmQKICAgICAg ICAgICAgICAgIGZvciBrLHYgaW4gbmV4dCwgcmF3ZGF0YSBkbwogICAgICAgICAgICAgICAgICAg IGlmIG5vdCByW2tdIHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgcltrXSA9IHYKICAgICAg ICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsIHJrID0gcltr XQogICAgICAgICAgICAgICAgICAgICAgICBmb3Iga2ssdnYgaW4gbmV4dCwgdiBkbwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgdHlwZSh2dikgPT0gInRhYmxlIiB0aGVuCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgbmV4dCh2dikgdGhlbgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBya1tra10gPSB2dgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGVuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZWlmIHZ2IH49ICIiIHRo ZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBya1tra10gPSB2dgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICAgICAgICAgIGVuZAogICAgICAg ICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgIGVuZAogICAg ICAgIGVuZAogICAgZW5kCmVuZAoKLS0gc29ydGluZyBhbmQgcmVuZGVyaW5nCgpsb2NhbCBjb21w YXJlID0gc29ydGVycy5jb21wYXJlcnMuYmFzaWMKCmZ1bmN0aW9uIHJlZ2lzdGVycy5jb21wYXJl KGEsYikKICAgIGxvY2FsIHJlc3VsdCA9IGNvbXBhcmUoYSxiKQogICAgaWYgcmVzdWx0IH49IDAg dGhlbgogICAgICAgIHJldHVybiByZXN1bHQKICAgIGVsc2UKICAgICAgICBsb2NhbCBrYSwga2Ig PSBhLm1ldGFkYXRhLmtpbmQsIGIubWV0YWRhdGEua2luZAogICAgICAgIGlmIGthID09IGtiIHRo ZW4KICAgICAgICAgICAgbG9jYWwgcGFnZV9hLCBwYWdlX2IgPSBhLnJlZmVyZW5jZXMucmVhbHBh Z2UsIGIucmVmZXJlbmNlcy5yZWFscGFnZQogICAgICAgICAgICBpZiBub3QgcGFnZV9hIG9yIG5v dCBwYWdlX2IgdGhlbgogICAgICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICAgICAgZWxzZWlm IHBhZ2VfYSA8IHBhZ2VfYiB0aGVuCiAgICAgICAgICAgICAgICByZXR1cm4gLTEKICAgICAgICAg ICAgZWxzZWlmIHBhZ2VfYSA+IHBhZ2VfYiB0aGVuCiAgICAgICAgICAgICAgICByZXR1cm4gIDEK ICAgICAgICAgICAgZW5kCiAgICAgICAgZWxzZWlmIGthID09ICJzZWUiIHRoZW4KICAgICAgICAg ICAgcmV0dXJuIDEKICAgICAgICBlbHNlaWYga2IgPT0gInNlZSIgdGhlbgogICAgICAgICAgICBy ZXR1cm4gLTEKICAgICAgICBlbmQKICAgIGVuZAogICAgcmV0dXJuIDAKZW5kCgpmdW5jdGlvbiBy ZWdpc3RlcnMuZmlsdGVyKGRhdGEsb3B0aW9ucykKICAgIGRhdGEucmVzdWx0ID0gcmVnaXN0ZXJz LmZpbHRlcmNvbGxlY3RlZChuaWwsb3B0aW9ucy5jcml0ZXJpdW0sb3B0aW9ucy5udW1iZXIsZGF0 YS5lbnRyaWVzLHRydWUpCmVuZAoKbG9jYWwgc2VlaW5kZXggPSAwCgotLSBtZWVyZGVyZSBsb29w cywgc2Vld29yZHMsIGRhbiB3b3JkcywgYW4gc2Vld29yZHMKCmxvY2FsIGZ1bmN0aW9uIGNyb3Nz bGlua3NlZXdvcmRzKHJlc3VsdCkgLS0gYWxsIHdvcmRzCiAgICAtLSBjb2xsZWN0IGFsbCBzZWV3 b3JkcwogICAgbG9jYWwgc2Vld29yZHMgPSB7IH0KICAgIGZvciBpPTEsI3Jlc3VsdCBkbwogICAg ICAgIGxvY2FsIGRhdGEgPSByZXN1bHRbaV0KICAgICAgICBsb2NhbCBzZWV3b3JkID0gZGF0YS5z ZWV3b3JkCiAgICAgICAgaWYgc2Vld29yZCB0aGVuCiAgICAgICAgICAgIGxvY2FsIHNlZXRleHQg PSBzZWV3b3JkLnRleHQKICAgICAgICAgICAgaWYgc2VldGV4dCBhbmQgbm90IHNlZXdvcmRzW3Nl ZXRleHRdIHRoZW4KICAgICAgICAgICAgICAgIHNlZWluZGV4ID0gc2VlaW5kZXggKyAxCiAgICAg ICAgICAgICAgICBzZWV3b3Jkc1tzZWV0ZXh0XSA9IHNlZWluZGV4CiAgICAgICAgICAgICAgICBp ZiB0cmFjZV9yZWdpc3RlcnMgdGhlbgogICAgICAgICAgICAgICAgICAgIHJlcG9ydF9yZWdpc3Rl cnMoInNlZSB3b3JkICUwM2k6ICVzIixzZWVpbmRleCxzZWV0ZXh0KQogICAgICAgICAgICAgICAg ZW5kCiAgICAgICAgICAgIGVuZAogICAgICAgIGVuZAogICAgZW5kCiAgICAtLSBtYXJrIHNlZXBh cmVudHMKICAgIGxvY2FsIHNlZXBhcmVudHMgPSB7IH0KICAgIGZvciBpPTEsI3Jlc3VsdCBkbwog ICAgICAgIGxvY2FsIGRhdGEgPSByZXN1bHRbaV0KICAgICAgICBsb2NhbCB3b3JkID0gZGF0YS5s aXN0WzFdCiAgICAgICAgd29yZCA9IHdvcmQgYW5kIHdvcmRbMV0KICAgICAgICBpZiB3b3JkIHRo ZW4KICAgICAgICAgICAgbG9jYWwgc2VlaW5kZXggPSBzZWV3b3Jkc1t3b3JkXQogICAgICAgICAg ICBpZiBzZWVpbmRleCB0aGVuCiAgICAgICAgICAgICAgICBzZWVwYXJlbnRzW3dvcmRdID0gZGF0 YQogICAgICAgICAgICAgICAgZGF0YS5yZWZlcmVuY2VzLnNlZXBhcmVudCA9IHNlZWluZGV4CiAg ICAgICAgICAgICAgICBpZiB0cmFjZV9yZWdpc3RlcnMgdGhlbgogICAgICAgICAgICAgICAgICAg IHJlcG9ydF9yZWdpc3RlcnMoInNlZSBwYXJlbnQgJTAzaTogJXMiLHNlZWluZGV4LHdvcmQpCiAg ICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgZW5kCiAgICAgICAgZW5kCiAgICBlbmQKICAg IC0tIG1hcmsgc2Vld29yZHMgYW5kIGV4dGVuZCBzb3J0IGxpc3QKICAgIGZvciBpPTEsI3Jlc3Vs dCBkbwogICAgICAgIGxvY2FsIGRhdGEgPSByZXN1bHRbaV0KICAgICAgICBsb2NhbCBzZWV3b3Jk ID0gZGF0YS5zZWV3b3JkCiAgICAgICAgaWYgc2Vld29yZCB0aGVuCiAgICAgICAgICAgIGxvY2Fs IHRleHQgPSBzZWV3b3JkLnRleHQKICAgICAgICAgICAgaWYgdGV4dCB0aGVuCiAgICAgICAgICAg ICAgICBsb2NhbCBzZWVwYXJlbnQgPSBzZWVwYXJlbnRzW3RleHRdCiAgICAgICAgICAgICAgICBp ZiBzZWVwYXJlbnQgdGhlbgogICAgICAgICAgICAgICAgICAgIGxvY2FsIHNlZWluZGV4ID0gc2Vl d29yZHNbdGV4dF0KICAgICAgICAgICAgICAgICAgICBsb2NhbCBzLCBucywgZCwgdywgbCA9IHsg fSwgMCwgZGF0YS5zcGxpdCwgc2VlcGFyZW50LnNwbGl0LCBkYXRhLmxpc3QKICAgICAgICAgICAg ICAgICAgICAtLSB0cmljazogd2UgaW5mbHVlbmNlIHNvcnRpbmcgYnkgYWRkaW5nIGZha2Ugc3Vi ZW50cmllcwogICAgICAgICAgICAgICAgICAgIGZvciBpPTEsI2QgZG8KICAgICAgICAgICAgICAg ICAgICAgICAgbnMgPSBucyArIDEKICAgICAgICAgICAgICAgICAgICAgICAgc1tuc10gPSBkW2ld IC0tIHBhcmVudAogICAgICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgICAgIGZv ciBpPTEsI3cgZG8KICAgICAgICAgICAgICAgICAgICAgICAgbnMgPSBucyArIDEKICAgICAgICAg ICAgICAgICAgICAgICAgc1tuc10gPSB3W2ldIC0tIHNlZQogICAgICAgICAgICAgICAgICAgIGVu ZAogICAgICAgICAgICAgICAgICAgIGRhdGEuc3BsaXQgPSBzCiAgICAgICAgICAgICAgICAgICAg LS0gd2UgYWxzbyByZWdpc3RlciBhIGZha2UgZXh0cmEgbGlzdCBlbnRyeSBzbyB0aGF0IHRoZQog ICAgICAgICAgICAgICAgICAgIC0tIGNvbGxhcHNlciB3b3JrcyBva2F5CiAgICAgICAgICAgICAg ICAgICAgbFsjbCsxXSA9IHsgdGV4dCwgIiIgfQogICAgICAgICAgICAgICAgICAgIGRhdGEucmVm ZXJlbmNlcy5zZWVpbmRleCA9IHNlZWluZGV4CiAgICAgICAgICAgICAgICAgICAgaWYgdHJhY2Vf cmVnaXN0ZXJzIHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0X3JlZ2lzdGVycygi c2VlIGNyb3NzbGluayAlMDNpOiAlcyIsc2VlaW5kZXgsdGV4dCkKICAgICAgICAgICAgICAgICAg ICBlbmQKICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICBlbmQKICAgICAgICBlbmQKICAg IGVuZAplbmQKCmxvY2FsIGZ1bmN0aW9uIHJlbW92ZWVtcHR5ZW50cmllcyhyZXN1bHQpCiAgICBs b2NhbCBpLCBuLCBtID0gMSwgI3Jlc3VsdCwgMAogICAgd2hpbGUgaSA8PSBuIGRvCiAgICAgICAg bG9jYWwgZW50cnkgPSByZXN1bHRbaV0KICAgICAgICBpZiAjZW50cnkubGlzdCA9PSAwIG9yICNl bnRyeS5zcGxpdCA9PSAwIHRoZW4KICAgICAgICAgICAgcmVtb3ZlKHJlc3VsdCxpKQogICAgICAg ICAgICBuID0gbiAtIDEKICAgICAgICAgICAgbSA9IG0gKyAxCiAgICAgICAgZWxzZQogICAgICAg ICAgICBpID0gaSArIDEKICAgICAgICBlbmQKICAgIGVuZAogICAgaWYgbSA+IDAgdGhlbgogICAg ICAgIHJlcG9ydF9yZWdpc3RlcnMoIiVzIGVtcHR5IGVudHJpZXMgcmVtb3ZlZCBpbiByZWdpc3Rl ciIsbSkKICAgIGVuZAplbmQKCmZ1bmN0aW9uIHJlZ2lzdGVycy5wcmVwYXJlKGRhdGEpCiAgICAt LSBkYXRhIGhhcyAnbGlzdCcgdGFibGUKICAgIGxvY2FsIHN0cmlwID0gc29ydGVycy5zdHJpcAog ICAgbG9jYWwgc3BsaXR0ZXIgPSBzb3J0ZXJzLnNwbGl0dGVycy51dGYKICAgIGxvY2FsIHJlc3Vs dCA9IGRhdGEucmVzdWx0CiAgICBpZiByZXN1bHQgdGhlbgogICAgICAgIGZvciBpPTEsICNyZXN1 bHQgZG8KICAgICAgICAgICAgbG9jYWwgZW50cnksIHNwbGl0ID0gcmVzdWx0W2ldLCB7IH0KICAg ICAgICAgICAgbG9jYWwgbGlzdCA9IGVudHJ5Lmxpc3QKICAgICAgICAgICAgaWYgbGlzdCB0aGVu CiAgICAgICAgICAgICAgICBmb3IgbD0xLCNsaXN0IGRvCiAgICAgICAgICAgICAgICAgICAgbG9j YWwgbGwgPSBsaXN0W2xdCiAgICAgICAgICAgICAgICAgICAgbG9jYWwgd29yZCwga2V5ID0gbGxb MV0sIGxsWzJdCiAgICAgICAgICAgICAgICAgICAgaWYgbm90IGtleSBvciBrZXkgPT0gIiIgdGhl bgogICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSB3b3JkCiAgICAgICAgICAgICAgICAgICAg ZW5kCiAgICAgICAgICAgICAgICAgICAgc3BsaXRbbF0gPSBzcGxpdHRlcihzdHJpcChrZXkpKQog ICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgIGVuZAogICAgICAgICAgICBlbnRyeS5zcGxp dCA9IHNwbGl0CiAgICAgICAgZW5kCiAgICAgICAgcmVtb3ZlZW1wdHllbnRyaWVzKHJlc3VsdCkK ICAgICAgICBjcm9zc2xpbmtzZWV3b3JkcyhyZXN1bHQpCiAgICBlbmQKZW5kCgpmdW5jdGlvbiBy ZWdpc3RlcnMuc29ydChkYXRhLG9wdGlvbnMpCiAgICBzb3J0ZXJzLnNvcnQoZGF0YS5yZXN1bHQs cmVnaXN0ZXJzLmNvbXBhcmUpCmVuZAoKZnVuY3Rpb24gcmVnaXN0ZXJzLnVuaXF1ZShkYXRhLG9w dGlvbnMpCiAgICBsb2NhbCByZXN1bHQsIG5vZnJlc3VsdCwgcHJldiA9IHsgfSwgMCwgbmlsCiAg ICBsb2NhbCBkYXRhcmVzdWx0ID0gZGF0YS5yZXN1bHQKICAgIGZvciBrPTEsI2RhdGFyZXN1bHQg ZG8KICAgICAgICBsb2NhbCB2ID0gZGF0YXJlc3VsdFtrXQogICAgICAgIGlmIHByZXYgdGhlbgog ICAgICAgICAgICBsb2NhbCBwciwgdnIgPSBwcmV2LnJlZmVyZW5jZXMsIHYucmVmZXJlbmNlcwog ICAgICAgICAgICBpZiBub3QgZXF1YWwocHJldi5saXN0LHYubGlzdCkgdGhlbgogICAgICAgICAg ICAgICAgLS0gb2sKICAgICAgICAgICAgZWxzZWlmIHByLnJlYWxwYWdlIH49IHZyLnJlYWxwYWdl IHRoZW4KICAgICAgICAgICAgICAgIC0tIG9rCiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg ICAgIGxvY2FsIHBsLCB2bCA9IHByLmxhc3RyZWFscGFnZSwgdnIubGFzdHJlYWxwYWdlCiAgICAg ICAgICAgICAgICBpZiBwbCBvciB2bCB0aGVuCiAgICAgICAgICAgICAgICAgICAgaWYgbm90IHZs IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgLS0gb2sKICAgICAgICAgICAgICAgICAgICBl bHNlaWYgbm90IHBsIHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgLS0gb2sKICAgICAgICAg ICAgICAgICAgICBlbHNlaWYgcGwgfj0gdmwgdGhlbgogICAgICAgICAgICAgICAgICAgICAgICAt LSBvawogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgdiA9 IG5pbAogICAgICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgZWxzZQogICAgICAg ICAgICAgICAgICAgIHYgPSBuaWwKICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICBlbmQK ICAgICAgICBlbmQKICAgICAgICBpZiB2IHRoZW4KICAgICAgICAgICAgbm9mcmVzdWx0ID0gbm9m cmVzdWx0ICsgMQogICAgICAgICAgICByZXN1bHRbbm9mcmVzdWx0XSA9IHYKICAgICAgICAgICAg cHJldiA9IHYKICAgICAgICBlbmQKICAgIGVuZAogICAgZGF0YS5yZXN1bHQgPSByZXN1bHQKZW5k CgpmdW5jdGlvbiByZWdpc3RlcnMuZmluYWxpemUoZGF0YSxvcHRpb25zKSAtLSBtYXBzIGNoYXJh Y3RlciB0byBpbmRleCAob3JkZXIpCiAgICBsb2NhbCByZXN1bHQgPSBkYXRhLnJlc3VsdAogICAg ZGF0YS5tZXRhZGF0YS5ub2Zzb3J0ZWQgPSAjcmVzdWx0CiAgICBsb2NhbCBzcGxpdCwgbm9mc3Bs aXQsIGxhc3R0YWcsIGRvbmUsIG5vZmRvbmUgPSB7IH0sIDAsIG5pbCwgbmlsLCAwCiAgICBsb2Nh bCBmaXJzdG9mc3BsaXQgPSBzb3J0ZXJzLmZpcnN0b2ZzcGxpdAogICAgZm9yIGs9MSwjcmVzdWx0 IGRvCiAgICAgICAgbG9jYWwgdiA9IHJlc3VsdFtrXQogICAgICAgIGxvY2FsIGVudHJ5LCB0YWcg PSBmaXJzdG9mc3BsaXQodikKICAgICAgICBpZiB0YWcgfj0gbGFzdHRhZyB0aGVuCiAgICAgICAg ICAgIGlmIHRyYWNlX3JlZ2lzdGVycyB0aGVuCiAgICAgICAgICAgICAgICByZXBvcnRfcmVnaXN0 ZXJzKCJzcGxpdHRpbmcgYXQgJWEiLHRhZykKICAgICAgICAgICAgZW5kCiAgICAgICAgICAgIGRv bmUsIG5vZmRvbmUgPSB7IH0sIDAKICAgICAgICAgICAgbm9mc3BsaXQgPSBub2ZzcGxpdCArIDEK ICAgICAgICAgICAgc3BsaXRbbm9mc3BsaXRdID0geyB0YWcgPSB0YWcsIGRhdGEgPSBkb25lIH0K ICAgICAgICAgICAgbGFzdHRhZyA9IHRhZwogICAgICAgIGVuZAogICAgICAgIG5vZmRvbmUgPSBu b2Zkb25lICsgMQogICAgICAgIGRvbmVbbm9mZG9uZV0gPSB2CiAgICBlbmQKICAgIGRhdGEucmVz dWx0ID0gc3BsaXQKZW5kCgpmdW5jdGlvbiByZWdpc3RlcnMuYW5hbHl6ZWQoY2xhc3Msb3B0aW9u cykKICAgIGxvY2FsIGRhdGEgPSBjb2xsZWN0ZWRbY2xhc3NdCiAgICBpZiBkYXRhIGFuZCBkYXRh LmVudHJpZXMgdGhlbgogICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIG9yIHsgfQogICAgICAgIHNv cnRlcnMuc2V0bGFuZ3VhZ2Uob3B0aW9ucy5sYW5ndWFnZSxvcHRpb25zLm1ldGhvZCxvcHRpb25z Lm51bWJlcm9yZGVyKQogICAgICAgIHJlZ2lzdGVycy5maWx0ZXIoZGF0YSxvcHRpb25zKSAgIC0t IGZpbHRlciBlbnRyaWVzIGludG8gcmVzdWx0cyAoY3JpdGVyaWEpCiAgICAgICAgcmVnaXN0ZXJz LnByZXBhcmUoZGF0YSxvcHRpb25zKSAgLS0gYWRkcyBzcGxpdCB0YWJsZSBwYXJhbGxlbCB0byBs aXN0IHRhYmxlCiAgICAgICAgcmVnaXN0ZXJzLnNvcnQoZGF0YSxvcHRpb25zKSAgICAgLS0gc29y dHMgcmVzdWx0cwogICAgICAgIHJlZ2lzdGVycy51bmlxdWUoZGF0YSxvcHRpb25zKSAgIC0tIGdl dCByaWQgb2YgZHVwbGljYXRlcwogICAgICAgIHJlZ2lzdGVycy5maW5hbGl6ZShkYXRhLG9wdGlv bnMpIC0tIHNwbGl0IHJlc3VsdCBpbiByYW5nZXMKICAgICAgICBkYXRhLm1ldGFkYXRhLnNvcnRl ZCA9IHRydWUKICAgICAgICByZXR1cm4gZGF0YS5tZXRhZGF0YS5ub2Zzb3J0ZWQgb3IgMAogICAg ZWxzZQogICAgICAgIHJldHVybiAwCiAgICBlbmQKZW5kCgotLSB0b2RvIHRha2UgY29udmVyc2lv biBmcm9tIGluZGV4CgpmdW5jdGlvbiByZWdpc3RlcnMudXNlcmRhdGEoaW5kZXgsbmFtZSkKICAg IGxvY2FsIGRhdGEgPSByZWZlcmVuY2VzLmludGVybmFsc1t0b251bWJlcihpbmRleCldCiAgICBk YXRhID0gZGF0YSBhbmQgZGF0YS51c2VyZGF0YSBhbmQgZGF0YS51c2VyZGF0YVtuYW1lXQogICAg aWYgZGF0YSB0aGVuCiAgICAgICAgY29udGV4dChkYXRhKQogICAgZW5kCmVuZAoKLS0gdG9kbzog b3dubnVtYmVyCgpsb2NhbCBmdW5jdGlvbiBwYWdlcmFuZ2UoZl9lbnRyeSx0X2VudHJ5LGlzX2xh c3QscHJlZml4c3BlYyxwYWdlc3BlYykKICAgIGxvY2FsIGZlciwgdGVyID0gZl9lbnRyeS5yZWZl cmVuY2VzLCB0X2VudHJ5LnJlZmVyZW5jZXMKICAgIGNvbnRleHQucmVnaXN0ZXJwYWdlcmFuZ2Uo CiAgICAgICAgZl9lbnRyeS5wcm9jZXNzb3JzIGFuZCBmX2VudHJ5LnByb2Nlc3NvcnNbMl0gb3Ig IiIsCiAgICAgICAgZmVyLmludGVybmFsIG9yIDAsCiAgICAgICAgZmVyLnJlYWxwYWdlIG9yIDAs CiAgICAgICAgZnVuY3Rpb24oKQogICAgICAgICAgICBoZWxwZXJzLnByZWZpeHBhZ2UoZl9lbnRy eSxwcmVmaXhzcGVjLHBhZ2VzcGVjKQogICAgICAgIGVuZCwKICAgICAgICB0ZXIuaW50ZXJuYWwg b3IgMCwKICAgICAgICB0ZXIubGFzdHJlYWxwYWdlIG9yIHRlci5yZWFscGFnZSBvciAwLAogICAg ICAgIGZ1bmN0aW9uKCkKICAgICAgICAgICAgaWYgaXNfbGFzdCB0aGVuCiAgICAgICAgICAgICAg ICBoZWxwZXJzLnByZWZpeGxhc3RwYWdlKHRfZW50cnkscHJlZml4c3BlYyxwYWdlc3BlYykgLS0g c3dhcHMgcGFnZSBhbmQgcmVhbHBhZ2Uga2V5cwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAg ICAgICBoZWxwZXJzLnByZWZpeHBhZ2UgICAgKHRfZW50cnkscHJlZml4c3BlYyxwYWdlc3BlYykK ICAgICAgICAgICAgZW5kCiAgICAgICAgZW5kCiAgICApCmVuZAoKbG9jYWwgZnVuY3Rpb24gcGFn ZW51bWJlcihlbnRyeSxwcmVmaXhzcGVjLHBhZ2VzcGVjKQogICAgbG9jYWwgZXIgPSBlbnRyeS5y ZWZlcmVuY2VzCiAgICBjb250ZXh0LnJlZ2lzdGVyb25lcGFnZSgKICAgICAgICBlbnRyeS5wcm9j ZXNzb3JzIGFuZCBlbnRyeS5wcm9jZXNzb3JzWzJdIG9yICIiLAogICAgICAgIGVyLmludGVybmFs IG9yIDAsCiAgICAgICAgZXIucmVhbHBhZ2Ugb3IgMCwKICAgICAgICBmdW5jdGlvbigpIGhlbHBl cnMucHJlZml4cGFnZShlbnRyeSxwcmVmaXhzcGVjLHBhZ2VzcGVjKSBlbmQKICAgICkKZW5kCgps b2NhbCBmdW5jdGlvbiBjb2xsYXBzZWRwYWdlKHBhZ2VzKQogICAgZm9yIGk9MiwjcGFnZXMgZG8K ICAgICAgICBsb2NhbCBmaXJzdCwgc2Vjb25kID0gcGFnZXNbaS0xXSwgcGFnZXNbaV0KICAgICAg ICBsb2NhbCBmaXJzdF9maXJzdCwgZmlyc3RfbGFzdCwgc2Vjb25kX2ZpcnN0LCBzZWNvbmRfbGFz dCA9IGZpcnN0WzFdLCBmaXJzdFsyXSwgc2Vjb25kWzFdLCBzZWNvbmRbMl0KICAgICAgICBsb2Nh bCBmaXJzdF9sYXN0X3BuICAgICA9IGZpcnN0X2xhc3QgIC5yZWZlcmVuY2VzLnJlYWxwYWdlCiAg ICAgICAgbG9jYWwgc2Vjb25kX2ZpcnN0X3BuICAgPSBzZWNvbmRfZmlyc3QucmVmZXJlbmNlcy5y ZWFscGFnZQogICAgICAgIGxvY2FsIHNlY29uZF9sYXN0X3BuICAgID0gc2Vjb25kX2xhc3QgLnJl ZmVyZW5jZXMucmVhbHBhZ2UKICAgICAgICBsb2NhbCBmaXJzdF9sYXN0X2xhc3QgICA9IGZpcnN0 X2xhc3QgIC5yZWZlcmVuY2VzLmxhc3RyZWFscGFnZQogICAgICAgIGxvY2FsIHNlY29uZF9maXJz dF9sYXN0ID0gc2Vjb25kX2ZpcnN0LnJlZmVyZW5jZXMubGFzdHJlYWxwYWdlCiAgICAgICAgaWYg Zmlyc3RfbGFzdF9sYXN0IHRoZW4KICAgICAgICAgICAgZmlyc3RfbGFzdF9wbiA9IGZpcnN0X2xh c3RfbGFzdAogICAgICAgICAgICBpZiBzZWNvbmRfZmlyc3QgPT0gc2Vjb25kX2xhc3QgYW5kIHNl Y29uZF9maXJzdF9wbiA8PSBmaXJzdF9sYXN0X3BuIHRoZW4KICAgICAgICAgICAgICAgIC0tIDI9 OCwgNSAtPiAxMj04CiAgICAgICAgICAgICAgICByZW1vdmUocGFnZXMsaSkKICAgICAgICAgICAg ICAgIHJldHVybiB0cnVlCiAgICAgICAgICAgIGVsc2VpZiBzZWNvbmRfZmlyc3QgPT0gc2Vjb25k X2xhc3QgYW5kIHNlY29uZF9maXJzdF9wbiA+IGZpcnN0X2xhc3RfcG4gdGhlbgogICAgICAgICAg ICAgICAgLS0gMj04LCA5IC0+IDItOQogICAgICAgICAgICAgICAgcGFnZXNbaS0xXSA9IHsgZmly c3RfZmlyc3QsIHNlY29uZF9sYXN0IH0KICAgICAgICAgICAgICAgIHJlbW92ZShwYWdlcyxpKQog ICAgICAgICAgICAgICAgcmV0dXJuIHRydWUKICAgICAgICAgICAgZWxzZWlmIHNlY29uZF9sYXN0 X3BuIDwgZmlyc3RfbGFzdF9wbiB0aGVuCiAgICAgICAgICAgICAgICAtLSAyPTgsIDMtNCAtPiAy PTgKICAgICAgICAgICAgICAgIHJlbW92ZShwYWdlcyxpKQogICAgICAgICAgICAgICAgcmV0dXJu IHRydWUKICAgICAgICAgICAgZWxzZWlmIGZpcnN0X2xhc3RfcG4gPCBzZWNvbmRfbGFzdF9wbiB0 aGVuCiAgICAgICAgICAgICAgICAtLSAyPTgsIDMtOSAtPiAyLTkKICAgICAgICAgICAgICAgIHBh Z2VzW2ktMV0gPSB7IGZpcnN0X2ZpcnN0LCBzZWNvbmRfbGFzdCB9CiAgICAgICAgICAgICAgICBy ZW1vdmUocGFnZXMsaSkKICAgICAgICAgICAgICAgIHJldHVybiB0cnVlCiAgICAgICAgICAgIGVs c2VpZiBmaXJzdF9sYXN0X3BuICsgMSA9PSBzZWNvbmRfZmlyc3RfcG4gYW5kIHNlY29uZF9sYXN0 X3BuID4gZmlyc3RfbGFzdF9wbiB0aGVuCiAgICAgICAgICAgICAgICAtLSAyPTgsIDktMTEgLT4g Mi0xMQogICAgICAgICAgICAgICAgcGFnZXNbaS0xXSA9IHsgZmlyc3RfZmlyc3QsIHNlY29uZF9s YXN0IH0KICAgICAgICAgICAgICAgIHJlbW92ZShwYWdlcyxpKQogICAgICAgICAgICAgICAgcmV0 dXJuIHRydWUKICAgICAgICAgICAgZWxzZWlmIHNlY29uZF9maXJzdC5yZWZlcmVuY2VzLmxhc3Ry ZWFscGFnZSB0aGVuCiAgICAgICAgICAgICAgICAtLSAyPTgsIDk9MTEgLT4gMi0xMQogICAgICAg ICAgICAgICAgcGFnZXNbaS0xXSA9IHsgZmlyc3RfZmlyc3QsIHNlY29uZF9sYXN0IH0KICAgICAg ICAgICAgICAgIHJlbW92ZShwYWdlcyxpKQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWUKICAg ICAgICAgICAgZW5kCiAgICAgICAgZWxzZWlmIHNlY29uZF9maXJzdF9sYXN0IHRoZW4KICAgICAg ICAgICAgc2Vjb25kX2ZpcnN0X3BuID0gc2Vjb25kX2ZpcnN0X2xhc3QKICAgICAgICAgICAgaWYg Zmlyc3RfbGFzdF9wbiA9PSBzZWNvbmRfZmlyc3RfcG4gdGhlbgogICAgICAgICAgICAgICAgLS0g Mi00LCA1PTkgLT4gMi05CiAgICAgICAgICAgICAgICBwYWdlc1tpLTFdID0geyBmaXJzdF9maXJz dCwgc2Vjb25kX2xhc3QgfQogICAgICAgICAgICAgICAgcmVtb3ZlKHBhZ2VzLGkpCiAgICAgICAg ICAgICAgICByZXR1cm4gdHJ1ZQogICAgICAgICAgICBlbmQKICAgICAgICBlbHNlaWYgZmlyc3Rf bGFzdF9wbiA9PSBzZWNvbmRfZmlyc3RfcG4gdGhlbgogICAgICAgICAgICAtLSAyLTMsIDMtNCAt PiAyLTQKICAgICAgICAgICAgcGFnZXNbaS0xXSA9IHsgZmlyc3RfbGFzdCwgc2Vjb25kX2xhc3Qg fQogICAgICAgICAgICByZW1vdmUocGFnZXMsaSkKICAgICAgICAgICAgcmV0dXJuIHRydWUKICAg ICAgICBlbmQKICAgIGVuZAogICAgcmV0dXJuIGZhbHNlCmVuZAoKbG9jYWwgZnVuY3Rpb24gY29s bGFwc2VwYWdlcyhwYWdlcykKICAgIHdoaWxlIGNvbGxhcHNlZHBhZ2UocGFnZXMpIGRvIGVuZAog ICAgcmV0dXJuICNwYWdlcwplbmQKCmZ1bmN0aW9uIHJlZ2lzdGVycy5mbHVzaChkYXRhLG9wdGlv bnMscHJlZml4c3BlYyxwYWdlc3BlYykKICAgIGxvY2FsIGNvbGxhcHNlX3NpbmdsZXMgPSBvcHRp b25zLmNvbXByZXNzID09IHZhcmlhYmxlcy55ZXMKICAgIGxvY2FsIGNvbGxhcHNlX3JhbmdlcyAg PSBvcHRpb25zLmNvbXByZXNzID09IHZhcmlhYmxlcy5hbGwKICAgIGxvY2FsIHJlc3VsdCA9IGRh dGEucmVzdWx0CiAgICBjb250ZXh0LnN0YXJ0cmVnaXN0ZXJvdXRwdXQoKQogICAgZm9yIGk9MSwj cmVzdWx0IGRvCiAgICAgLS0gcmFuZ2VzIG5lZWQgY2hlY2tpbmcgIQogICAgICAgIGxvY2FsIHN1 Ymxpc3QgPSByZXN1bHRbaV0KICAgICAgICBsb2NhbCBkb25lID0geyBmYWxzZSwgZmFsc2UsIGZh bHNlLCBmYWxzZSB9CiAgICAgICAgbG9jYWwgZGF0YSA9IHN1Ymxpc3QuZGF0YQogICAgICAgIGxv Y2FsIGQsIG4gPSAwLCAwCiAgICAgICAgY29udGV4dC5zdGFydHJlZ2lzdGVyc2VjdGlvbihzdWJs aXN0LnRhZykKICAgICAgICBmb3IgZD0xLCNkYXRhIGRvCiAgICAgICAgICAgIGxvY2FsIGVudHJ5 ID0gZGF0YVtkXQogICAgICAgICAgICBpZiBlbnRyeS5tZXRhZGF0YS5raW5kID09ICJzZWUiIHRo ZW4KICAgICAgICAgICAgICAgIGxvY2FsIGxpc3QgPSBlbnRyeS5saXN0CiAgICAgICAgICAgICAg ICBpZiAjbGlzdCA+IDEgdGhlbgogICAgICAgICAgICAgICAgICAgIGxpc3RbI2xpc3RdID0gbmls CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgLS0gd2UgaGF2ZSBhbiBc c2VlaW5kZXh7Rm9vfXtCYXJ9IHdpdGhvdXQgRm9vIGJlaW5nIGRlZmluZWQgYW55d2hlcmUKICAg ICAgICAgICAgICAgICAgICByZXBvcnRfcmVnaXN0ZXJzKCJpbnZhbGlkIHNlZSBlbnRyeSBpbiBy ZWdpc3RlciAlYSwgcmVmZXJlbmNlICVhIixlbnRyeS5tZXRhZGF0YS5uYW1lLGxpc3RbMV1bMV0p CiAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgZW5kCiAgICAgICAgZW5kCiAgICAgICAg d2hpbGUgZCA8ICNkYXRhIGRvCiAgICAgICAgICAgIGQgPSBkICsgMQogICAgICAgICAgICBsb2Nh bCBlbnRyeSA9IGRhdGFbZF0KICAgICAgICAgICAgbG9jYWwgZSA9IHsgZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UgfQogICAgICAgICAgICBsb2NhbCBtZXRhZGF0YSA9IGVudHJ5Lm1ldGFkYXRh CiAgICAgICAgICAgIGxvY2FsIGtpbmQgPSBtZXRhZGF0YS5raW5kCiAgICAgICAgICAgIGxvY2Fs IGxpc3QgPSBlbnRyeS5saXN0CgogICAgICAgICAgICBmb3IgaT0xLDQgZG8gLS0gbWF4IDQKICAg ICAgICAgICAgICAgIGlmIGxpc3RbaV0gdGhlbgogICAgICAgICAgICAgICAgICAgIGVbaV0gPSBs aXN0W2ldWzFdCiAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgIGlmIGVbaV0gfj0g ZG9uZVtpXSB0aGVuCiAgICAgICAgICAgICAgICAgICAgaWYgZVtpXSBhbmQgZVtpXSB+PSAiIiB0 aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIGRvbmVbaV0gPSBlW2ldCmZvciBqPWkrMSw0IGRv IGRvbmVbal0gPSBmYWxzZSBlbmQKICAgICAgICAgICAgICAgICAgICAgICAgaWYgbiA9PSBpIHRo ZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuc3RvcHJlZ2lzdGVyZW50cmll cygpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnN0YXJ0cmVnaXN0ZXJlbnRy aWVzKG4pCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHdoaWxlIG4gPiBpIGRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbiA9 IG4gLSAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5zdG9wcmVnaXN0 ZXJlbnRyaWVzKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgd2hpbGUgbiA8IGkgZG8KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBuID0gbiArIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnN0 YXJ0cmVnaXN0ZXJlbnRyaWVzKG4pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQKICAg ICAgICAgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsIGlu dGVybmFsICA9IGVudHJ5LnJlZmVyZW5jZXMuaW50ZXJuYWwgb3IgMAogICAgICAgICAgICAgICAg ICAgICAgICBsb2NhbCBzZWVwYXJlbnQgPSBlbnRyeS5yZWZlcmVuY2VzLnNlZXBhcmVudCBvciAi IgogICAgICAgICAgICAgICAgICAgICAgICBsb2NhbCBwcm9jZXNzb3IgPSBlbnRyeS5wcm9jZXNz b3JzIGFuZCBlbnRyeS5wcm9jZXNzb3JzWzFdIG9yICIiCiAgICAgICAgICAgICAgICAgICAgICAg IGlmIG1ldGFkYXRhIHRoZW4KCmNvbnRleHQucmVnaXN0ZXJlbnRyeShwcm9jZXNzb3IsaW50ZXJu YWwsc2VlcGFyZW50LGZ1bmN0aW9uKCkgaGVscGVycy50aXRsZShlW2ldLG1ldGFkYXRhKSBlbmQp CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgLS0gPwoKY29udGV4dC5yZWdpc3RlcmVudHJ5 KHByb2Nlc3NvcixpbnRlcm5hbCxzZWVpbmRleCxlW2ldKQogICAgICAgICAgICAgICAgICAgICAg ICBlbmQKICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIGRv bmVbaV0gPSBmYWxzZQpmb3Igaj1pLDQgZG8gZG9uZVtqXSA9IGZhbHNlIGVuZAogICAgICAgICAg ICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgIGVuZAoKICAgICAg ICAgICAgaWYga2luZCA9PSAnZW50cnknIHRoZW4KICAgICAgICAgICAgICAgIGNvbnRleHQuc3Rh cnRyZWdpc3RlcnBhZ2VzKCkKICAgICAgICAgICAgICAgIGlmIGNvbGxhcHNlX3NpbmdsZXMgb3Ig Y29sbGFwc2VfcmFuZ2VzIHRoZW4KICAgICAgICAgICAgICAgICAgICAtLSB3ZSBjb2xsYXBzZSBy YW5nZXMgYW5kIGtlZXAgZXhpc3RpbmcgcmFuZ2VzIGFzIHRoZXkgYXJlCiAgICAgICAgICAgICAg ICAgICAgLS0gc28gd2UgZ2V0IHByZWJ1aWx0IGFzIHdlbGwgYXMgYnVpbHQgcmFuZ2VzCiAgICAg ICAgICAgICAgICAgICAgbG9jYWwgZmlyc3QsIGxhc3QsIHByZXYsIHBhZ2VzLCBkZCwgbm9mcGFn ZXMgPSBlbnRyeSwgbmlsLCBlbnRyeSwgeyB9LCBkLCAwCiAgICAgICAgICAgICAgICAgICAgd2hp bGUgZGQgPCAjZGF0YSBkbwogICAgICAgICAgICAgICAgICAgICAgICBkZCA9IGRkICsgMQogICAg ICAgICAgICAgICAgICAgICAgICBsb2NhbCBuZXh0ID0gZGF0YVtkZF0KICAgICAgICAgICAgICAg ICAgICAgICAgaWYgbmV4dCBhbmQgbmV4dC5tZXRhZGF0YS5raW5kID09ICJzZWUiIHRoZW4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRkID0gZGQgLSAxCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBicmVhawogICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsb2NhbCBlbCwgbmwgPSBlbnRyeS5saXN0LCBuZXh0Lmxpc3QKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBlcXVhbChlbCxubCkgdGhlbgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRkID0gZGQgLSAxCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAtLX4gZmlyc3QgPSBuaWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVh awogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZWlmIG5leHQucmVmZXJlbmNlcy5sYXN0 cmVhbHBhZ2UgdGhlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZnBhZ2VzID0g bm9mcGFnZXMgKyAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZXNbbm9mcGFn ZXNdID0gZmlyc3QgYW5kIHsgZmlyc3QsIGxhc3Qgb3IgZmlyc3QgfSBvciB7IGVudHJ5LCBlbnRy eSB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9mcGFnZXMgPSBub2ZwYWdlcyAr IDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlc1tub2ZwYWdlc10gPSB7IG5l eHQsIG5leHQgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0LCBsYXN0LCBw cmV2ID0gbmlsLCBuaWwsIG5pbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZWlmIG5v dCBmaXJzdCB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3QsIHByZXYg PSBuZXh0LCBuZXh0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlaWYgbmV4dC5yZWZl cmVuY2VzLnJlYWxwYWdlIC0gcHJldi5yZWZlcmVuY2VzLnJlYWxwYWdlID09IDEgdGhlbiAtLSAx ID8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0LCBwcmV2ID0gbmV4dCwgbmV4 dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG5vZnBhZ2VzID0gbm9mcGFnZXMgKyAxCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGFnZXNbbm9mcGFnZXNdID0geyBmaXJzdCwgbGFzdCBvciBmaXJzdCB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3QsIGxhc3QsIHByZXYgPSBuZXh0LCBuaWws IG5leHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgICAg ICAgICBlbmQKICAgICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgICAgICBpZiBm aXJzdCB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIG5vZnBhZ2VzID0gbm9mcGFnZXMgKyAx CiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VzW25vZnBhZ2VzXSA9IHsgZmlyc3QsIGxhc3Qg b3IgZmlyc3QgfQogICAgICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgICAgIGlm IGNvbGxhcHNlX3JhbmdlcyBhbmQgbm9mcGFnZXMgPiAxIHRoZW4KICAgICAgICAgICAgICAgICAg ICAgICAgbm9mcGFnZXMgPSBjb2xsYXBzZXBhZ2VzKHBhZ2VzKQogICAgICAgICAgICAgICAgICAg IGVuZAogICAgICAgICAgICAgICAgICAgIGlmIG5vZnBhZ2VzID4gMCB0aGVuIC0tIG9yIDAKICAg ICAgICAgICAgICAgICAgICAgICAgZCA9IGRkCiAgICAgICAgICAgICAgICAgICAgICAgIGZvciBw PTEsbm9mcGFnZXMgZG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsIGZpcnN0LCBs YXN0ID0gcGFnZXNbcF1bMV0sIHBhZ2VzW3BdWzJdCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpZiBmaXJzdCA9PSBsYXN0IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiBmaXJzdC5yZWZlcmVuY2VzLmxhc3RyZWFscGFnZSB0aGVuCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBhZ2VyYW5nZShmaXJzdCxmaXJzdCx0cnVlLHByZWZpeHNwZWMscGFn ZXNwZWMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwYWdlbnVtYmVyKGZpcnN0LHByZWZpeHNwZWMscGFnZXNw ZWMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBlbHNlaWYgbGFzdC5yZWZlcmVuY2VzLmxhc3RyZWFscGFnZSB0aGVuCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZXJhbmdlKGZpcnN0LGxhc3QsdHJ1ZSxwcmVm aXhzcGVjLHBhZ2VzcGVjKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VyYW5nZShmaXJzdCxsYXN0LGZhbHNlLHByZWZp eHNwZWMscGFnZXNwZWMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAg ICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICAgICAgZWxzZWlmIGVudHJ5LnJlZmVy ZW5jZXMubGFzdHJlYWxwYWdlIHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgcGFnZXJhbmdl KGVudHJ5LGVudHJ5LHRydWUscHJlZml4c3BlYyxwYWdlc3BlYykKICAgICAgICAgICAgICAgICAg ICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VudW1iZXIoZW50cnkscHJlZml4c3Bl YyxwYWdlc3BlYykKICAgICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgIGVsc2UK ICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvCiAgICAgICAgICAgICAgICAgICAgICAg IGlmIGVudHJ5LnJlZmVyZW5jZXMubGFzdHJlYWxwYWdlIHRoZW4KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBhZ2VyYW5nZShlbnRyeSxlbnRyeSx0cnVlLHByZWZpeHNwZWMscGFnZXNwZWMp CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBhZ2VudW1iZXIoZW50cnkscHJlZml4c3BlYyxwYWdlc3BlYykKICAgICAgICAgICAgICAgICAg ICAgICAgZW5kCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIGQgPT0gI2RhdGEgdGhlbgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgICAgICAgICAgZWxz ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZCA9IGQgKyAxCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsb2NhbCBuZXh0ID0gZGF0YVtkXQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgbmV4dC5tZXRhZGF0YS5raW5kID09ICJzZWUiIG9yIG5vdCBlcXVhbChlbnRyeS5saXN0 LG5leHQubGlzdCkgdGhlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQgPSBkIC0g MQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnkgPSBu ZXh0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgICAgICAg ICAgZW5kCiAgICAgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICBlbmQKICAgICAg ICAgICAgICAgIGNvbnRleHQuc3RvcHJlZ2lzdGVycGFnZXMoKQogICAgICAgICAgICBlbHNlaWYg a2luZCA9PSAnc2VlJyB0aGVuCiAgICAgICAgICAgICAgICBsb2NhbCB0LCBudCA9IHsgfSwgMAog ICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkbwogICAgICAgICAgICAgICAgICAgIG50ID0gbnQg KyAxCiAgICAgICAgICAgICAgICAgICAgdFtudF0gPSBlbnRyeQogICAgICAgICAgICAgICAgICAg IGlmIGQgPT0gI2RhdGEgdGhlbgogICAgICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAg ICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgZCA9IGQgKyAxCiAgICAg ICAgICAgICAgICAgICAgICAgIGxvY2FsIG5leHQgPSBkYXRhW2RdCiAgICAgICAgICAgICAgICAg ICAgICAgIGlmIG5leHQubWV0YWRhdGEua2luZCB+PSAic2VlIiBvciBub3QgZXF1YWwoZW50cnku bGlzdCxuZXh0Lmxpc3QpIHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQgPSBkIC0g MQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgICAgICAg ICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnkgPSBuZXh0CiAgICAgICAg ICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAg ICAgZW5kCiAgICAgICAgICAgICAgICBjb250ZXh0LnN0YXJ0cmVnaXN0ZXJzZWV3b3JkcygpCiAg ICAgICAgICAgICAgICBmb3IgaT0xLG50IGRvCiAgICAgICAgICAgICAgICAgICAgbG9jYWwgZW50 cnkgPSB0W2ldCiAgICAgICAgICAgICAgICAgICAgbG9jYWwgc2Vld29yZCAgID0gZW50cnkuc2Vl d29yZAogICAgICAgICAgICAgICAgICAgIGxvY2FsIHNlZXRleHQgICA9IHNlZXdvcmQudGV4dCBv ciAiIgogICAgICAgICAgICAgICAgICAgIGxvY2FsIHByb2Nlc3NvciA9IHNlZXdvcmQucHJvY2Vz c29yIG9yIChlbnRyeS5wcm9jZXNzb3JzIGFuZCBlbnRyeS5wcm9jZXNzb3JzWzFdKSBvciAiIgog ICAgICAgICAgICAgICAgICAgIGxvY2FsIHNlZWluZGV4ICA9IGVudHJ5LnJlZmVyZW5jZXMuc2Vl aW5kZXggb3IgIiIKICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnJlZ2lzdGVyc2Vld29yZChp LG4scHJvY2Vzc29yLDAsc2VlaW5kZXgsc2VldGV4dCkKICAgICAgICAgICAgICAgIGVuZAogICAg ICAgICAgICAgICAgY29udGV4dC5zdG9wcmVnaXN0ZXJzZWV3b3JkcygpCiAgICAgICAgICAgIGVu ZAogICAgICAgIGVuZAogICAgICAgIHdoaWxlIG4gPiAwIGRvCiAgICAgICAgICAgIGNvbnRleHQu c3RvcHJlZ2lzdGVyZW50cmllcygpCiAgICAgICAgICAgIG4gPSBuIC0gMQogICAgICAgIGVuZAog ICAgICAgIGNvbnRleHQuc3RvcHJlZ2lzdGVyc2VjdGlvbigpCiAgICBlbmQKICAgIGNvbnRleHQu c3RvcHJlZ2lzdGVyb3V0cHV0KCkKICAgIC0tIGZvciBub3csIG1heWJlIGF0IHNvbWUgcG9pbnQg d2Ugd2lsbCBkbyBhIG11bHRpcGFzcyBvciBzbwogICAgZGF0YS5yZXN1bHQgPSBuaWwKICAgIGRh dGEubWV0YWRhdGEuc29ydGVkID0gZmFsc2UKZW5kCgpmdW5jdGlvbiByZWdpc3RlcnMuYW5hbHl6 ZShjbGFzcyxvcHRpb25zKQogICAgY29udGV4dChyZWdpc3RlcnMuYW5hbHl6ZWQoY2xhc3Msb3B0 aW9ucykpCmVuZAoKZnVuY3Rpb24gcmVnaXN0ZXJzLnByb2Nlc3MoY2xhc3MsLi4uKQogICAgaWYg cmVnaXN0ZXJzLmFuYWx5emVkKGNsYXNzLC4uLikgPiAwIHRoZW4KICAgICAgICByZWdpc3RlcnMu Zmx1c2goY29sbGVjdGVkW2NsYXNzXSwuLi4pCiAgICBlbmQKZW5kCgo= --047d7bd76898cf657704e764fedd Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________ --047d7bd76898cf657704e764fedd--