# zoo_section_and_category_list v0.1 # Adaptable 2-Level Navigation-Menu with Highlighting # Arne Krueger- Wauschkuhn # http://arnski.de/ # ...................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ...................................................................... YTo5OntzOjc6InZlcnNpb24iO3M6MzoiMC4xIjtzOjY6ImF1dGhvciI7czoyNDoiQXJuZSBL cnVlZ2VyLSBXYXVzY2hrdWhuIjtzOjEwOiJhdXRob3JfdXJpIjtzOjE3OiJodHRwOi8vYXJu c2tpLmRlLyI7czoxMToiZGVzY3JpcHRpb24iO3M6NTE6IkFkYXB0YWJsZSAyLUxldmVsIE5h dmlnYXRpb24tTWVudSB3aXRoIEhpZ2hsaWdodGluZyI7czo0OiJ0eXBlIjtpOjA7czo0OiJu YW1lIjtzOjI5OiJ6b29fc2VjdGlvbl9hbmRfY2F0ZWdvcnlfbGlzdCI7czo0OiJoZWxwIjtz OjI1OTA6Igo8cD48aDI+IEFkYXB0YWJsZSAyLUxldmVsIE5hdmlnYXRpb24tTWVudSB3aXRo IEhpZ2hsaWdodGluZyA8L2gyPjwvcD4KCjxwPlRoaXMgcGx1Z2luIHRyaWVzIHRvIGFjY29t cGxpc2ggdGhlIGZvbGxvd2luZzo8L3A+Cgo8dWw+Cgk8bGk+QnVpbGRpbmcgYSAyLUxldmVs IE5hdmlnYXRpb24tTWVudWUgdXNpbmcgYSBzaW5nbGUgVFhQLXRhZy48L2xpPgoJPGxpPjFz dCBMZXZlbCBzaG91bGQgY29uc2lzdCBvZiBzZWN0aW9ucywgMm5kIGxldmVsIG9mIGNhdGVn b3JpZXM8L2xpPgoJPGxpPktlZXAgdGhlIDJuZCBsZXZlbCBhZGFwdGFibGUsIG1lYW5pbmcg aXQncyBjb250ZW50cyBzaG91bGQgYmUgY29udHJvbGxhYmxlIGZyb20gdXNlcnMgd2l0aG91 dCBhY2Nlc3MgdG8gYW5kIGtub3dsZWRnZSBvZiB0aGUgIlByZXNlbnRhdGlvbiItVGFiIGlu IHRoZSBBZG1pbi1JbnRlcmZhY2UuIFRoaXMgbWVhbnMgYnkgc2ltcGx5IGFkZGluZyBhIGFy dGljbGUtY2F0ZWdvcnkgYW5kIHB1Ymxpc2hpbmcgYXQgbGVhc3Qgb25lIGFydGljbGUgaW4g aXQgYSB1c2VyIGNhbiBhZGQgYSAiUGFnZSIgdG8gdGhlIFdlYnNpdGUuPC9saT4KPC91bD4K CjxwPjxoMT4gVGhlIFRYUC0gVGFnOjwvaDE+PC9wPgoKPHA+PGNvZGU+Jmx0O3R4cDp6b29f c2VjdGlvbl9hbmRfY2F0ZWdvcnlfbGlzdCZndDs8L2NvZGU+PC9wPgoKPHA+PGgxPlBhcmFt ZXRlcnMgPC9oMT48L3A+Cgo8cD5TYW1lIGFzIHNlY3Rpb25fbGlzdCBidXQgd2l0aCBhIGZl dyBtb3JlOjwvcD4KPHA+CnNob3dhbGwgOiBDYW4gYmUgc2V0IHRvIGVpdGhlciAwIG9yIDEu IFdpdGggdGhpcyBzZXQgdG8gMSB0aGUgMm5kIExldmVsIChjYXRlZ29yaWVzKSBpcyBhbHdh eXMgc2hvd24uIDAgc2hvd3MgMm5kIExldmVsIGZvciBhY3RpdmUgc2VjdGlvbiBvbmx5Ljxi ciAvPgpjYXRfYWN0aXZlX2NsYXNzIDogUHV0IGluIGNzcy1jbGFzcyBmb3IgdGhlIGFjdGl2 ZSBjYXRlZ29yeS1saW5rCmNhdF9jbGFzcyA6IFB1dCBpbiBjc3MtY2xhc3MgZm9yIHRoZSBp bmFjdGl2ZSBjYXRlZ29yeS1saW5rcwo8L3A+CjxwPjxoMT4gRXhhbXBsZSBVc2FnZTogPC9o MT48L3A+Cgo8cD4KQXNzdW1pbmcgeW91IGhhdmUgZm91ciBTZWN0aW9ucyAtICJDb21wYW55 cG9ydHJhaXQsUHJvZHVjdHMsUGFydG5lcixQcm9kdWN0cyIgYW5kCmhhdmUgcHVibGlzaGVk IHNldmVyYWwgQXJ0aWNsZXMgaW4gdGhlIHNlY3Rpb24gIlByb2R1Y3RzIiAtIGVhY2ggaW4g b25lIG9mIHRoZSBDYXRlZ29yaWVzICJDb25jZXB0LFByb2R1Y3RjYXRlZ29yeTEgYW5kIFBy b2R1Y3RjYXRlZ29yeTIiLgpUaGUgZm9sbG93aW5nIHRhZwo8L3A+CjxwPgo8Y29kZT4KJmx0 O3R4cDp6b29fc2VjdGlvbl9hbmRfY2F0ZWdvcnlfbGlzdCB3cmFwdGFnPSZxdW90O3NwYW4m cXVvdDsgYWN0aXZlX2NsYXNzPSZxdW90O21lbnVlX2xpbmtzX29uJnF1b3Q7IGNsYXNzPSZx dW90O21lbnVlX2xpbmtzX29mZiZxdW90OyBjYXRfY2xhc3M9JnF1b3Q7Y2F0X2xpbmtzX29m ZiBzbWFsbCZxdW90OyBjYXRfYWN0aXZlX2NsYXNzPSZxdW90O2NhdF9saW5rc19vbiBzbWFs bCZxdW90OyBpbmNsdWRlX2RlZmF1bHQ9JnF1b3Q7MCZxdW90OyBzaG93YWxsPSZxdW90OzAm cXVvdDsgc2VjdGlvbnM9JnF1b3Q7Q29tcGFueXBvcnRyYWl0LFByb2R1Y3RzLFBhcnRuZXIs Q29udGFjdCZxdW90OyAvJmd0Owo8L2NvZGU+CjwvcD4KcHJvZHVjZXM6CjxwPgo8cHJlPgo8 Y29kZT4KPHNwYW4gY2xhc3M9Im1lbnVlX2xpbmtzX29mZiI+Cgk8YSBocmVmPSJodHRwOi8v ZGV2LnRlc3QuY29tL0NvbXBhbnlwb3J0cmFpdC8iPkNvbXBhbnlwb3J0cmFpdDwvYT48YnIg Lz4KCTxhIGNsYXNzPSJtZW51ZV9saW5rc19vbiIgaHJlZj0iaHR0cDovL2Rldi50ZXN0LmNv bS9Qcm9kdWN0cy8iPlByb2R1Y3RzPC9hPjxiciAvPgoJPGEgY2xhc3M9ImNhdF9saW5rc19v ZmYgc21hbGwiIGhyZWY9Imh0dHA6Ly9kZXYudGVzdC5jb20vUHJvZHVrdGUvP2M9Q29uY2Vw dCI+Q29uY2VwdDwvYT48YnIgLz4KCTxhIGNsYXNzPSJjYXRfbGlua3Nfb24gc21hbGwiIGhy ZWY9Imh0dHA6Ly9kZXYudGVzdC5jb20vUHJvZHVrdGUvP2M9UHJvZHVjdGNhdGVnb3J5MSI+ UHJvZHVjdGNhdGVnb3J5MTwvYT48YnIgLz4KCTxhIGNsYXNzPSJjYXRfbGlua3Nfb2ZmIHNt YWxsIiBocmVmPSJodHRwOi8vZGV2LnRlc3QuY29tL1Byb2R1a3RlLz9jPVByb2R1Y3RjYXRl Z29yeTIiPlByb2R1Y3RjYXRlZ29yeTI8L2E+PGJyIC8+Cgk8YSBocmVmPSJodHRwOi8vZGV2 LnRlc3QuY29tL1BhcnRuZXIvIj5QYXJ0bmVyPC9hPjxiciAvPgoJPGEgaHJlZj0iaHR0cDov L2Rldi50ZXN0LmNvbS9Db250YWN0LyI+Q29udGFjdDwvYT4KPC9zcGFuPgo8L2NvZGU+Cjwv cHJlPgo8L3A+Cgo8aDE+IEV4YW1wbGUgQ1NTOjwvaDE+Cgo8Y29kZT4KLm1lbnVlX2xpbmtz X29mZiwgLmNhdF9saW5rc19vZmZ7CnRleHQtZGVjb3JhdGlvbjogbm9uZTsKY29sb3I6ICMw MDA7CmJvcmRlcjogbm9uZTt9Ci5tZW51ZV9saW5rc19vbiwgLmNhdF9saW5rc19vbnsKdGV4 dC1kZWNvcmF0aW9uOiBub25lOwpjb2xvcjogI0E4MDAxNzsKYm9yZGVyOiBub25lO30KPC9j b2RlPgoiO3M6NDoiY29kZSI7czo1MDM5OiIKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBvdXRwdXQgaHJlZiBs aXN0IG9mIHNpdGUgY2F0ZWdvcmllcwoKCWZ1bmN0aW9uIHpvb19jYXRlZ29yeV9saXN0KCRh dHRzKQoJewoJCS8vdmFyX2R1bXAoJGF0dHMpOwoJCWdsb2JhbCAkcywgJGM7CgoJCWV4dHJh Y3QobEF0dHMoYXJyYXkoCgkJCSdhY3RpdmVfY2xhc3MnID0+ICcnLAoJCQknYnJlYWsnICAg ICAgICA9PiBiciwKCQkJJ2NhdGVnb3JpZXMnICAgPT4gJycsCgkJCSdjbGFzcycgICAgICAg ID0+IF9fRlVOQ1RJT05fXywKCQkJJ2V4Y2x1ZGUnICAgICAgPT4gJycsCgkJCSdwYXJlbnQn ICAgICAgID0+ICcnLAoJCQknc2VjdGlvbicgICAgICA9PiAnJywKCQkJJ3NvcnQnICAgICAg ICAgPT4gJycsCgkJCSd0aGlzX3NlY3Rpb24nID0+IDAsCgkJCSd0eXBlJyAgICAgICAgID0+ ICdhcnRpY2xlJywKCQkpLCAkYXR0cykpOwoKCQkkc29ydCA9IGRvU2xhc2goJHNvcnQpOwoK CQkvLyB2MC4xOiB1bnVzZWQgLSBtYXliZSBpbiBhIGxhdGVyIHJlbGVhc2UKCQlpZiAoJGNh dGVnb3JpZXMpCgkJewoJCQkkY2F0ZWdvcmllcyA9IGRvX2xpc3QoJGNhdGVnb3JpZXMpOwoJ CQkkY2F0ZWdvcmllcyA9IGpvaW4oIicsJyIsIGRvU2xhc2goJGNhdGVnb3JpZXMpKTsKCgkJ CSRycyA9IHNhZmVfcm93c19zdGFydCgnbmFtZSwgdGl0bGUnLCAndHhwX2NhdGVnb3J5JywK CQkJCSJ0eXBlID0gJyIuZG9TbGFzaCgkdHlwZSkuIicgYW5kIG5hbWUgaW4gKCckY2F0ZWdv cmllcycpIG9yZGVyIGJ5ICIuKCRzb3J0ID8gJHNvcnQgOiAiZmllbGQobmFtZSwgJyRjYXRl Z29yaWVzJykiKSk7CgkJfQoKCQllbHNlCgkJewoJCQlpZiAoJGV4Y2x1ZGUpCgkJCXsKCQkJ CSRleGNsdWRlID0gZG9fbGlzdCgkZXhjbHVkZSk7CgoJCQkJJGV4Y2x1ZGUgPSBqb2luKCIn LCciLCBkb1NsYXNoKCRleGNsdWRlKSk7CgoJCQkJJGV4Y2x1ZGUgPSAiYW5kIG5hbWUgbm90 IGluKCckZXhjbHVkZScpIjsKCQkJfQoKCQkJLy8gQWxzbyBub3QgdXNlZCBpbiB2MC4xIC0g dGhpcyBjb3VsZCBiZSBpbnRlcmVzdGluZyBmb3IgMC4yIHRob3VnaCwgdGhpbmsgYWJvdXQK CQkJLy8gb25seSBkaXNwbGF5aW5nIHN1YmNhdGVnb3JpZXMgb2Ygb25lIHNwZWNpYWwgY2F0 ZWdvcnkgZS5nLiAibmF2LWNhdGVnb3JpZXMiCgkJCWlmICgkcGFyZW50KQoJCQl7CgkJCQkk cXMgPSBzYWZlX3JvdygnbGZ0LCByZ3QnLCAndHhwX2NhdGVnb3J5JywgIm5hbWUgPSAnIi5k b1NsYXNoKCRwYXJlbnQpLiInIik7CgoJCQkJaWYgKCRxcykKCQkJCXsKCQkJCQlleHRyYWN0 KCRxcyk7CgoJCQkJCSRycyA9IHNhZmVfcm93c19zdGFydCgnbmFtZSwgdGl0bGUnLCAndHhw X2NhdGVnb3J5JywKCQkJCQkJIihsZnQgYmV0d2VlbiAkbGZ0IGFuZCAkcmd0KSBhbmQgdHlw ZSA9ICciLmRvU2xhc2goJHR5cGUpLiInIGFuZCBuYW1lICE9ICdkZWZhdWx0JyAkZXhjbHVk ZSBvcmRlciBieSAiLigkc29ydCA/ICRzb3J0IDogJ2xmdCBBU0MnKSk7CgkJCQl9CgkJCX0K CgkJCWVsc2UKCQkJeyAvLyBUaGlzIGlzIHRoZSAibm9ybWFsIiBjYXNlIC0gbm8gY2F0ZWdv cmllcyBhbmQgbm8gcGFyZW50cyBnaXZlbgoJCQkgIC8vIFRvRG8gKHYwLjIpIDogdXNlIHNh ZmVfcm93c19zdGFydCgpIGFuZCBOQU1FIElOICgpIGFuZCBmb3JnZXQgYWJvdXQgdGhlIEpP SU4KCQkJCSRycyA9IHN0YXJ0Um93cygnU0VMRUNUIERJU1RJTkNUIGEubmFtZSwgYS50aXRs ZSBGUk9NIHR4cF9jYXRlZ29yeSBhIExFRlQgT1VURVIgSk9JTiB0ZXh0cGF0dGVybiBiIE9O IGEubmFtZSA9IGIuQ2F0ZWdvcnkxIExFRlQgT1VURVIgSk9JTiB0ZXh0cGF0dGVybiBjIE9O IGEubmFtZSA9IGMuQ2F0ZWdvcnkyIFdIRVJFIGMuc2VjdGlvbj0iJy4kc2VjdGlvbi4nIiBP UiBiLnNlY3Rpb249IicuJHNlY3Rpb24uJyIgQU5EIGEudHlwZSA9ICInLiR0eXBlLiciIGFu ZCBhLm5hbWUgbm90IGluKCJkZWZhdWx0Iiwicm9vdCIpICcuJGV4Y2x1ZGUuJyBvcmRlciBi eSAnLigkc29ydCA/ICRzb3J0IDogJ2EubmFtZSBBU0MnKSk7CgkJCX0KCQl9CgoJCWlmICgk cnMpCgkJewoJCQkkb3V0ID0gYXJyYXkoKTsKCgkJCXdoaWxlICgkYSA9IG5leHRSb3coJHJz KSkKCQkJewoJCQkJZXh0cmFjdCgkYSk7CgoJCQkJaWYgKCRuYW1lKQoJCQkJewoJCQkJCSRz ZWN0aW9uID0gKCR0aGlzX3NlY3Rpb24pID8gKCAkcyA9PSAnZGVmYXVsdCcgPyAnJyA6ICRz ICkgOiAkc2VjdGlvbjsKCgkJCQkJLy8gSWYgZ2l2ZW4sIGNhdGVnb3J5LWxpbmtzIGdldCBh IGNsYXNzLCBubyBtYXR0ZXIgd2hhdCAtIHNvIHlvdSBjYW4gZGlmZmVyZW50aWF0ZSBzZWN0 aW9uLWxpbmtzIGFuZCBjYXRlZ29yeS1saW5rcwoJCQkJCSRjYXRDbGFzcyA9ICFlbXB0eSgk Y2xhc3MpID8gJyBjbGFzcz0iJy4kY2xhc3MuJyInIDogIiI7CgkJCQkJJG91dFtdID0gdGFn KHN0cl9yZXBsYWNlKCcmICcsICcmIzM4OyAnLCAkdGl0bGUpLCAnYScsCgkJCQkJCSggKCRh Y3RpdmVfY2xhc3MgYW5kIChzdHJ0b2xvd2VyKCRjKSA9PSBzdHJ0b2xvd2VyKCRuYW1lKSkp ID8gJyBjbGFzcz0iJy4kYWN0aXZlX2NsYXNzLiciJyA6ICcnLiRjYXRDbGFzcyApLgoJCQkJ CQknIGhyZWY9IicucGFnZWxpbmt1cmwoYXJyYXkoJ3MnID0+ICRzZWN0aW9uLCAnYycgPT4g JG5hbWUpKS4nIicKCQkJCQkpOwoJCQkJfQoJCQl9CgoJCQlpZiAoJG91dCkgewlyZXR1cm4g JG91dDsgfQoJCX0KCgkJcmV0dXJuICcnOwoJfQoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBvdXRwdXQgaHJl ZiBsaXN0IG9mIHNpdGUgc2VjdGlvbnMgYW5kIGNhdGVnb3JpZXMKCglmdW5jdGlvbiB6b29f c2VjdGlvbl9hbmRfY2F0ZWdvcnlfbGlzdCgkYXR0cykKCXsKCQlnbG9iYWwgJHNpdGVuYW1l LCAkczsKCgkJZXh0cmFjdChsQXR0cyhhcnJheSgKCQkJJ2FjdGl2ZV9jbGFzcycgICAgPT4g JycsCgkJCSdicmVhaycgICAgICAgICAgID0+IGJyLAoJCQknY2xhc3MnICAgICAgICAgICA9 PiBfX0ZVTkNUSU9OX18sCgkJCSdkZWZhdWx0X3RpdGxlJyAgID0+ICRzaXRlbmFtZSwKCQkJ J2V4Y2x1ZGUnICAgICAgICAgPT4gJycsCgkJCSdpbmNsdWRlX2RlZmF1bHQnID0+ICcnLAoJ CQknbGFiZWwnICAgICAgICAgICA9PiAnJywKCQkJJ2xhYmVsdGFnJyAgICAgICAgPT4gJycs CgkJCSdzZWN0aW9ucycgICAgICAgID0+ICcnLAoJCQknc29ydCcgICAgICAgICAgICA9PiAn JywKCQkJJ3dyYXB0YWcnICAgICAgICAgPT4gJycsCgkJCSdzaG93YWxsJwkJICA9PiAnJywK CQkJJ2NhdF9hY3RpdmVfY2xhc3MnPT4gJycsCgkJCSdjYXRfY2xhc3MnCQkgID0+ICcnLAoJ CSksICRhdHRzKSk7CgoJCSRzb3J0ID0gZG9TbGFzaCgkc29ydCk7CgoJCWlmICgkc2VjdGlv bnMpCgkJewoJCQkkc2VjdGlvbnMgPSBkb19saXN0KCRzZWN0aW9ucyk7CgoJCQkkc2VjdGlv bnMgPSBqb2luKCInLCciLCBkb1NsYXNoKCRzZWN0aW9ucykpOwoKCQkJJHJzID0gc2FmZV9y b3dzX3N0YXJ0KCduYW1lLCB0aXRsZScsICd0eHBfc2VjdGlvbicsICJuYW1lIGluICgnJHNl Y3Rpb25zJykgb3JkZXIgYnkgIi4oJHNvcnQgPyAkc29ydCA6ICJmaWVsZChuYW1lLCAnJHNl Y3Rpb25zJykiKSk7CgkJfQoKCQllbHNlCgkJewoJCQlpZiAoJGV4Y2x1ZGUpCgkJCXsKCQkJ CSRleGNsdWRlID0gZG9fbGlzdCgkZXhjbHVkZSk7CgoJCQkJJGV4Y2x1ZGUgPSBqb2luKCIn LCciLCBkb1NsYXNoKCRleGNsdWRlKSk7CgoJCQkJJGV4Y2x1ZGUgPSAiYW5kIG5hbWUgbm90 IGluKCckZXhjbHVkZScpIjsKCQkJfQoKCQkJJHJzID0gc2FmZV9yb3dzX3N0YXJ0KCduYW1l LCB0aXRsZScsICd0eHBfc2VjdGlvbicsICJuYW1lICE9ICdkZWZhdWx0JyAkZXhjbHVkZSBv cmRlciBieSAiLigkc29ydCA/ICRzb3J0IDogJ25hbWUgQVNDJykpOwoJCX0KCgkJaWYgKCRy cykKCQl7CgkJCSRvdXQgPSBhcnJheSgpOwoKCQkJd2hpbGUgKCRhID0gbmV4dFJvdygkcnMp KQoJCQl7CgkJCQlleHRyYWN0KCRhKTsKCgkJCQkkdXJsID0gcGFnZWxpbmt1cmwoYXJyYXko J3MnID0+ICRuYW1lKSk7CgoJCQkJJG91dFtdID0gdGFnKCR0aXRsZSwgJ2EnLAoJCQkJCSgg KCRhY3RpdmVfY2xhc3MgYW5kIChzdHJ0b2xvd2VyKCRzKSA9PSBzdHJ0b2xvd2VyKCRuYW1l KSkpID8gJyBjbGFzcz0iJy4kYWN0aXZlX2NsYXNzLiciJyA6ICcnICkuCgkJCQkJJyBocmVm PSInLiR1cmwuJyInCgkJCQkpOwoJCQkJLy8gRmV0Y2ggQ2F0ZWdvcmllcyBmb3IgdGhpcyBT ZWN0aW9uCgkJCQlpZihzdHJ0b2xvd2VyKCRzKT09c3RydG9sb3dlcigkbmFtZSkgfHwgJHNo b3dhbGw9PTEpewoJCQkJCSR0ZW1waWkgPSB6b29fY2F0ZWdvcnlfbGlzdChhcnJheSgiYWN0 aXZlX2NsYXNzIj0+JGNhdF9hY3RpdmVfY2xhc3MsImNsYXNzIj0+JGNhdF9jbGFzcywic2Vj dGlvbiI9PiRuYW1lKSk7CgkJCQl9CgkJCQkvL01lcmdlIG9mIFNlY3Rpb25zIGFuZCBDYXRl Z29yaWVzCgkJCQlpZighZW1wdHkoJHRlbXBpaSkpewoJCQkJCXdoaWxlKGxpc3QoLCR2KT1l YWNoKCR0ZW1waWkpKSB7CgkJCQkJCSRvdXRbXSA9ICR2OwoJCQkJCX0KCQkJCX0KCQkJfQoK CQkJaWYgKCRvdXQpCgkJCXsKCQkJCWlmICgkaW5jbHVkZV9kZWZhdWx0KQoJCQkJewoJCQkJ CSRvdXQgPSBhcnJheV9tZXJnZShhcnJheSgKCQkJCQkJdGFnKCRkZWZhdWx0X3RpdGxlLCdh JywKCQkJCQkJCSggKCRhY3RpdmVfY2xhc3MgYW5kICgkcyA9PSAnZGVmYXVsdCcpKSA/ICcg Y2xhc3M9IicuJGFjdGl2ZV9jbGFzcy4nIicgOiAnJyApLgoJCQkJCQkJJyBocmVmPSInLmh1 LiciJwoJCQkJCQkpCgkJCQkJKSwgJG91dCk7CgkJCQl9CgoJCQkJcmV0dXJuIGRvTGFiZWwo JGxhYmVsLCAkbGFiZWx0YWcpLmRvV3JhcCgkb3V0LCAkd3JhcHRhZywgJGJyZWFrLCAkY2xh c3MpOwoJCQl9CgkJfQoKCQlyZXR1cm4gJyc7Cgl9CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiI7czozOiJtZDUi O3M6MzI6IjdkNzhkNmI5NjhmOWFjZjAwNzRhYzYxYmE5YzE0YWRiIjt9