# Name: rah_function v0.2 # Type: Client side plugin # Every function is a TXP tag. # Author: Jukka Svahn # URL: http://rahforum.biz # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjEyOiJyYWhfZnVuY3Rpb24iO3M6NjoiYXV0aG9yIjtzOjEx OiJKdWtrYSBTdmFobiI7czoxMDoiYXV0aG9yX3VyaSI7czoxOToiaHR0cDovL3JhaGZvcnVt LmJpeiI7czo3OiJ2ZXJzaW9uIjtzOjM6IjAuMiI7czoxMToiZGVzY3JpcHRpb24iO3M6Mjg6 IkV2ZXJ5IGZ1bmN0aW9uIGlzIGEgVFhQIHRhZy4iO3M6NDoiaGVscCI7czo2NzYwOiIJPGgx PnJhaF9mdW5jdGlvbjwvaDE+CgoJPHA+RXZlcnkgZnVuY3Rpb24gaXMgYSA8Y29kZT4mbHQ7 dHhwOnRhZyAvJmd0OzwvY29kZT4uIFJhaF9mdW5jdGlvbiBhbGxvd3MgeW91IHRvIGNhbGwg YW55IDxzcGFuIGNsYXNzPSJjYXBzIj5QSFA8L3NwYW4+IGZ1bmN0aW9uIGluIFRleHRwYXR0 ZXJuIHRhZyBzeW50YXguIE5vIG5lZWQgZm9yIDxzcGFuIGNsYXNzPSJjYXBzIj5QSFA8L3Nw YW4+IHNuaXBwZXRzLCBub3IgZW5kaW5nIG5vciBjbG9zaW5nIDxzcGFuIGNsYXNzPSJjYXBz Ij5QSFA8L3NwYW4+IHRhZ3MgJiM4MjEyOyBvbmx5IHRoaW5nIHlvdSBuZWVkIGlzIGEgPHNw YW4gY2xhc3M9ImNhcHMiPlhIVE1MPC9zcGFuPiBsaWtlIHRhZy48L3A+CgoJPHVsPgoJCTxs aT5WZXJzaW9uOiAwLjI8L2xpPgoJCTxsaT5VcGRhdGVkOiAyMDA5LzExLzI4IDk6NDUgQU0g PHNwYW4gY2xhc3M9ImNhcHMiPkdNVDwvc3Bhbj4rMjwvbGk+Cgk8L3VsPgoKCTxoMz5UYWJs ZSBvZiBDb250ZW50czwvaDM+CgoJPHVsPgoJCTxsaT48YSBocmVmPSIjbGlzdC1vZi1mZWF0 dXJlcyI+TGlzdCBvZiBmZWF0dXJlczwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjcmVxdWly ZW1lbnRzIj5SZXF1aXJlbWVudHM8L2E+PC9saT4KCQk8bGk+PGEgaHJlZj0iI2luc3RhbGxh dGlvbiI+SW5zdGFsbGF0aW9uPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNhdHRyaWJ1dGVz Ij5BdHRyaWJ1dGVzPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiN1c2luZy10aGUtdGFnIj5V c2luZyB0aGUgdGFnPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNleGFtcGxlIj5FeGFtcGxl czwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjY2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2E+PC9s aT4KCTwvdWw+CgoJPGgzIGlkPSJsaXN0LW9mLWZlYXR1cmVzIj5MaXN0IG9mIGZlYXR1cmVz PC9oMz4KCgk8dWw+CgkJPGxpPkNhbGwgYW55IDxzcGFuIGNsYXNzPSJjYXBzIj5QSFA8L3Nw YW4+IGZ1bmN0aW9uIHdpdGggYSBzaW5nbGUgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bh bj4gdGFnLjwvbGk+CgkJPGxpPkZyZWVseSB1c2UgdGhlIGZ1bmN0aW9ucyBhdHRyaWJ1dGVz LCBmbGFncyBhbmQgcGFyYW1ldGVycy48L2xpPgoJCTxsaT5TdXBwb3J0cyBib3RoLCBhIGNv bnRhaW5lciBhbmQgc2luZ2xlIHRhZyBmb3JtYXQuPC9saT4KCTwvdWw+CgoJPGgzIGlkPSJy ZXF1aXJlbWVudHMiPlJlcXVpcmVtZW50czwvaDM+CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFz cz0iY2FwcyI+UEhQPC9zcGFuPiA0LjMuMCs8L2xpPgoJCTxsaT5UZXh0cGF0dGVybiA0Lngu eCs8L2xpPgoJPC91bD4KCgk8aDMgaWQ9Imluc3RhbGxhdGlvbiI+SW5zdGFsbGF0aW9uPC9o Mz4KCgk8cD5SYWhfZnVuY3Rpb24mIzgyMTc7cyBpbnN0YWxsYXRpb24gZm9sbG93cyB0aGUg dXN1YWwgc3RhbmRhcmQgcGx1Z2luIGluc3RhbGxhdGlvbiBzdGVwcy48L3A+CgoJPG9sPgoJ CTxsaT5Eb3dubG9hZCB0aGUgcGx1Z2luIGluc3RhbGxhdGlvbiBjb2RlLjwvbGk+CgkJPGxp PkNvcHkgYW5kIHBhc3RlIGluc3RhbGxhdGlvbiBjb2RlIGludG8geW91ciBQbHVnaW4gTWFu YWdlbWVudCYjODIxNztzICYjODIyMDtJbnN0YWxsIHBsdWdpbiYjODIyMTsgYm94LjwvbGk+ CgkJPGxpPlJ1biB0aGUgYXV0b21hdGVkIHNldHVwLjwvbGk+CgkJPGxpPkFmdGVyIHRoZSBz ZXR1cCBpcyBkb25lLCByZW1lbWJlciB0byBhY3RpdmF0ZSB0aGUgcGx1Z2luLjwvbGk+Cgk8 L29sPgoKCTxwPkFmdGVyIGluc3RhbGxhdGlvbiBtYWtlIHN1cmUgdGhhdCB5b3UgaGF2ZSBh bGxvd2VkIDxzcGFuIGNsYXNzPSJjYXBzIj5QSFA8L3NwYW4+IHNjcmlwdGluZzo8L3A+CgoJ PG9sPgoJCTxsaT5HbyB0byBUZXh0cGF0dGVybiYjODIxNztzIEFkdmFuY2VkIFByZWZlcmVu Y2VzIChUZXh0cGF0dGVybiAmZ3Q7IEFkbWluICZndDsgUHJlZmVyZW5jZXMgJmd0OyBBZHZh bmNlZCkuPC9saT4KCQk8bGk+VG9nZ2xlIGFsbG93IG9uIDxzcGFuIGNsYXNzPSJjYXBzIj5Q SFA8L3NwYW4+IHNjcmlwdGluZyBmb3IgUGFnZXMgYW5kIEFydGljbGVzIChvciBmb3Igd2hl cmUgeW91IHdhbnQgdG8gdXNlIHRoZSBwbHVnaW4pLjwvbGk+Cgk8L29sPgoKCTxoMyBpZD0i YXR0cmlidXRlcyI+QXR0cmlidXRlczwvaDM+CgoJPHA+VGhlIHRhZyBpcyA8Y29kZT4mbHQ7 dHhwOnJhaF9mdW5jdGlvbiAvJmd0OzwvY29kZT4gYW5kIGF0dHJpYnV0ZXMgZm9yIGl0IGZv bGxvdy48L3A+CgoJPHA+PHN0cm9uZz5jYWxsPC9zdHJvbmc+PGJyIC8+CldoYXQgZnVuY3Rp b24gdG8gY2FsbCB3aXRoIHRoZSB0YWcuPGJyIC8+CkV4YW1wbGU6IDxjb2RlPmNhbGw9JnF1 b3Q7YmFzZTY0X2VuY29kZSZxdW90OzwvY29kZT4gRGVmYXVsdDogPGNvZGU+JnF1b3Q7JnF1 b3Q7PC9jb2RlPjwvcD4KCgk8cD48c3Ryb25nPnRoaW5nPC9zdHJvbmc+PGJyIC8+CldpdGgg dGhpbmcgeW91IGNhbiBjaG9vc2UgdGhlIGFyZ3VtZW50IHBsYWNlIGZvciBjb250YWluZXIm IzgyMTc7cyBjb250YWluZWQgc3RhdGVtZW50LiBGb3IgZXhhbXBsZSwgaWYgPGNvZGU+dGhp bmc9JnF1b3Q7aGVyZSZxdW90OzwvY29kZT4gaXMgdGhlIGxhc3QgYXR0cmlidXRlL2FyZ3Vt ZW50LCB0aGVuIHRoZSBjb250YWluZWQgc3RhdG1lbnQgaXMgdXNlZCBhcyB0aGUgbGFzdCBh cmd1bWVudCB0b28gZm9yIHRoZSBmdW5jdGlvbi4gSWYgPGNvZGU+dGhpbmc8L2NvZGU+IGlz IGxlZnQgdW5kZWZpbmVkLCBjb250YWluZWQgc3RhdGVtZW50IGlzIHVzZWQgYXMgdGhlIGZp cnN0IGFyZ3VtZW50LjxiciAvPgpFeGFtcGxlOiA8Y29kZT5mb289JnF1b3Q7YmFyJnF1b3Q7 IHRoaW5nPSZxdW90O2hlcmUmcXVvdDsgYmFyPSZxdW90O2ZvbyZxdW90OzwvY29kZT4gRGVm YXVsdDogPGVtPnVuZGVmaW5lZDwvZW0+LjwvcD4KCgk8cD48c3Ryb25nPnBhcmFtZXRlcjEs cGFyYW1ldGVyMixwYXJhbWV0ZXIzLFsuLl08L3N0cm9uZz48YnIgLz4KQ2FuIGJlIGFueXRo aW5nLiBBbGwgcGFyYW1ldGVycyBhcmUgYXNzaWduZWQgdG8gdGhlIGNhbGxlZCBmdW5jdGlv bi4gQXJndW1lbnRzIGFyZSBhc3NpZ25lZCBpbiB0aGUgb3JkZXIgcGFyYW1ldGVycyBhcmUg dHlwZWQuPGJyIC8+CkV4YW1wbGU6IDxjb2RlPmZvbzI9JnF1b3Q7YmFyJnF1b3Q7IGZvbzE9 JnF1b3Q7YmFyJnF1b3Q7IGZvbzQ9JnF1b3Q7YmFyJnF1b3Q7PC9jb2RlPiBEZWZhdWx0OiA8 ZW0+dW5kZWZpbmVkPC9lbT4uPC9wPgoKCTxoMyBpZD0idXNpbmctdGhlLXRhZyI+VXNpbmcg dGhlIHRhZzwvaDM+CgoJPHA+VGhlIHRhZywgPGNvZGU+Jmx0O3R4cDpyYWhfZnVuY3Rpb24g LyZndDs8L2NvZGU+IHN1cHBvcnRzIGEgY29udGFpbmVyIHRhZyB1c2FnZS4gSWYgdGhlIHRh ZyBpcyB1c2VkIGluIGEgY29udGFpbmVyIGZvcm1hdCwgdGhlIGNvbnRhaW5lZCBzdGF0ZW1l bnQvY29kZSBpcyB1c2VkIGFzOjwvcD4KCgk8dWw+CgkJPGxpPkluIHRoZSBhcmd1bWVudCBw bGFjZSB0aGF0IHlvdSBjaG9zZSB3aXRoIDxjb2RlPnRoaW5nPSZxdW90O2hlcmUmcXVvdDs8 L2NvZGU+LiBTZWUgQXR0cmlidXRlcyBhbmQgRXhhbXBsZXMgZm9yIG1vcmUgaW5mby48L2xp PgoJCTxsaT5JZiA8Y29kZT50aGluZzwvY29kZT4gaXMgbGVmdCB1bmRlZmluZWQsIGNvbnRh aW5lZCBzdGF0ZW1lbnQgaXMgdXNlZCBhcyB0aGUgZmlyc3QgYXJndW1lbnQuPC9saT4KCTwv dWw+CgoJPHA+SWYgdGhlIHRhZyBpcyB1c2VkIGluIGEgc2VsZi1jbG9zaW5nIGZvcm1hdCwg dGhlbiB0aGUgY29udGFpbmVkIHN0YXRlbWVudCBpcyBub3QgdXNlZCAoYXBwYXJlbnRseSkg YW5kIHRoZSB0YWcgd29ya3MganVzdCB3aXRoIHRoZSBhdHRyaWJ1dGVzIHlvdSBzZXQuPC9w PgoKCTxwPkFsbCBhcmd1bWVudHMvYXR0cmlidXRlcy9wYXJhbWV0ZXJzIHRoYXQgYXJlIHVz ZWQgaW5zaWRlIHRoZSB0YWcsIGFyZSBhc3NpZ25lZCB0byB0aGUgY2FsbGVkIGZ1bmN0aW9u IGluIHRoZSBvcmRlciB0aGV5IGFyZSBkZWZpbmVkLiBJZiBubyBhdHRyaWJ1dGVzIGFyZSB1 c2VkLCBleGNlcHQgdGhlIG1hbmRhdG9yeSA8Y29kZT5jYWxsPC9jb2RlPiwgdGhlbiB0aGUg ZnVuY3Rpb24gaXMgdXNlZCBhcyBpcyB3aXRoIG5vIGFyZ3VtZW50cy48L3A+CgoJPGgzIGlk PSJleGFtcGxlIj5FeGFtcGxlczwvaDM+CgoJPHA+PHN0cm9uZz5FeGFtcGxlICMxOiA8Y29k ZT5iYXNlNjRfZW5jb2RlKCk8L2NvZGU+IGFzIGEgY29udGFpbmVyOjwvc3Ryb25nPjwvcD4K CjxwcmU+PGNvZGU+Jmx0O3R4cDpyYWhfZnVuY3Rpb24gY2FsbD0mcXVvdDtiYXNlNjRfZW5j b2RlJnF1b3Q7Jmd0OwoJSGVsbG8gd29ybGQhCiZsdDsvdHhwOnJhaF9mdW5jdGlvbiZndDsK PC9jb2RlPjwvcHJlPgoKCTxwPlJldHVybnM6IDxjb2RlPkRRb0pTR1ZzYkc4Z2QyOXliR1Fo RFFvPTwvY29kZT48L3A+CgoJPHA+PHN0cm9uZz5FeGFtcGxlICMyOiA8Y29kZT5zdHJfcmVw bGFjZSgpPC9jb2RlPiBhcyBhIHNpbmdsZSB0YWc6PC9zdHJvbmc+PC9wPgoKPHByZT48Y29k ZT4mbHQ7dHhwOnJhaF9mdW5jdGlvbiBjYWxsPSZxdW90O3N0cl9yZXBsYWNlJnF1b3Q7IHNl YXJjaD0mcXVvdDtIZWxsbyZxdW90OyByZXBsYWNlPSZxdW90O0hpJnF1b3Q7IHN1YmplY3Q9 JnF1b3Q7SGVsbG8gd29ybGQhJnF1b3Q7IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5SZXR1 cm5zOiA8Y29kZT5IaSB3b3JsZCE8L2NvZGU+PC9wPgoKCTxwPjxzdHJvbmc+RXhhbXBsZSAj MzogPGNvZGU+c3RyX3JlcGxhY2UoKTwvY29kZT4gYXMgYSBjb250YWluZXIgdGFnLiBDb250 YWluZWQgc3RhdGVtZW50IGlzIHVzZWQgYXMgc3ViamVjdCAocGxhY2luZyBpdCBpcyBkb25l IGJ5IHVzaW5nIDxjb2RlPnRoaW5nPSZxdW90O2hlcmUmcXVvdDs8L2NvZGU+KTo8L3N0cm9u Zz48L3A+Cgo8cHJlPjxjb2RlPiZsdDt0eHA6cmFoX2Z1bmN0aW9uIGNhbGw9JnF1b3Q7c3Ry X3JlcGxhY2UmcXVvdDsgc2VhcmNoPSZxdW90O0hlbGxvJnF1b3Q7IHJlcGxhY2U9JnF1b3Q7 SGkmcXVvdDsgdGhpbmc9JnF1b3Q7aGVyZSZxdW90OyZndDsKCUhlbGxvIHdvcmxkIQombHQ7 L3R4cDpyYWhfZnVuY3Rpb24mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5SZXR1cm5zOiA8Y29k ZT5IaSB3b3JsZCE8L2NvZGU+PC9wPgoKCTxwPjxzdHJvbmc+RXhhbXBsZSAjNDogPGNvZGU+ dHJpbSgpPC9jb2RlPiBhcyBhIGNvbnRhaW5lciB3aXRoIGF0dHJpYnV0ZXM6PC9zdHJvbmc+ PC9wPgoKPHByZT48Y29kZT4mbHQ7dHhwOnJhaF9mdW5jdGlvbiBjYWxsPSZxdW90O3RyaW0m cXVvdDsgY2hhcmxpc3Q9JnF1b3Q7SCZxdW90OyZndDsKCUhlbGxvIHdvcmxkIQombHQ7L3R4 cDpyYWhfZnVuY3Rpb24mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5SZXR1cm5zOiA8Y29kZT5l bGxvIHdvcmxkITwvY29kZT48L3A+CgoJPHA+PHN0cm9uZz5FeGFtcGxlICM1OiB1c2luZyA8 Y29kZT5zYWZlX3N0cmZ0aW1lKCk8L2NvZGU+IGZyb20gPHNwYW4gY2xhc3M9ImNhcHMiPlRY UDwvc3Bhbj4mIzgyMTc7cyBjb3JlIGxpYnJhcnk6PC9zdHJvbmc+PC9wPgoKPHByZT48Y29k ZT4mbHQ7dHhwOnJhaF9mdW5jdGlvbiBjYWxsPSZxdW90O3NhZmVfc3RyZnRpbWUmcXVvdDsm Z3Q7CgklWQombHQ7L3R4cDpyYWhfZnVuY3Rpb24mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5S ZXR1cm5zOiA8Y29kZT4yMDA5PC9jb2RlPi48L3A+CgoJPHA+PHN0cm9uZz5FeGFtcGxlICM2 OiBGZXRjaGluZyBhIHNpbmdsZSBmaWVsZCBmcm9tIHRoZSBkYXRhYmFzZSB3aXRoIDxjb2Rl PmZldGNoKCk8L2NvZGU+Ojwvc3Ryb25nPjwvcD4KCjxwcmU+PGNvZGU+Jmx0O3R4cDpyYWhf ZnVuY3Rpb24gY2FsbD0mcXVvdDtmZXRjaCZxdW90OyB3aGF0PSZxdW90O2xhc3RfYWNjZXNz JnF1b3Q7IGZyb209JnF1b3Q7dHhwX3VzZXJzJnF1b3Q7IHdoZXJlPSZxdW90O3VzZXJfaWQm cXVvdDsgaXM9JnF1b3Q7MSZxdW90OyAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+UmV0dXJu czogTGFzdCBhY2Nlc3MgdGltZSBmb3Igc2l0ZSBhZG1pbiB3aXRoIHVzZXIgSUQgb2YgMS48 L3A+CgoJPHA+PHN0cm9uZz5FeGFtcGxlICM3OiBDb3VudGluZyB0aGUgYW1vdW50IG9mIGFy dGljbGVzIGluIHRoZSBjdXJyZW50IHNlY3Rpb246PC9zdHJvbmc+PC9wPgoKPHByZT48Y29k ZT4mbHQ7dHhwOnJhaF9mdW5jdGlvbiBjYWxsPSZxdW90O3NhZmVfY291bnQmcXVvdDsgdGFi bGU9JnF1b3Q7dGV4dHBhdHRlcm4mcXVvdDsgd2hlcmU9JiMzOTtTZWN0aW9uPSZxdW90OyZs dDt0eHA6c2VjdGlvbiAvJmd0OyZxdW90OyYjMzk7IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8 cD5SZXR1cm5zOiBudW1iZXIgb2YgYXJ0aWNsZXMuPC9wPgoKCTxoMyBpZD0iY2hhbmdlbG9n Ij5DaGFuZ2Vsb2c8L2gzPgoKCTxwPjxzdHJvbmc+VmVyc2lvbiAwLjI8L3N0cm9uZz48L3A+ CgoJPHVsPgoJCTxsaT5BZGRlZCBhdHRyaWJ1dGU6IDxjb2RlPnRoaW5nPC9jb2RlPi4gVGhh bmtzIHlvdSA8YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0b3Bp Yy5waHA/cGlkPTIyMDA0MiNwMjIwMDQyIj5ydXVkPC9hPiBmb3Igc3VnZ2VzdGlvbi48L2xp PgoJPC91bD4KCgk8cD48c3Ryb25nPlZlcnNpb24gMC4xLjE8L3N0cm9uZz48L3A+CgoJPHVs PgoJCTxsaT5BZGRlZCA8Y29kZT5oYXNfcHJpdnMoKTwvY29kZT4gYW5kIDxjb2RlPmFsbG93 X3NjcmlwdGluZzwvY29kZT4gY2hlY2tzLjwvbGk+Cgk8L3VsPgoKCTxwPjxzdHJvbmc+VmVy c2lvbiAwLjE8L3N0cm9uZz48L3A+CgoJPHVsPgoJCTxsaT5GaXJzdCByZWxlYXNlPC9saT4K CTwvdWw+IjtzOjQ6ImNvZGUiO3M6OTUzOiIJIyMjIyMjIyMjIyMjIyMjIyMjDQoJIw0KCSMJ cmFoX2Z1bmN0aW9uLXBsdWdpbiBmb3IgVGV4dHBhdHRlcm4NCgkjCXZlcnNpb24gMC4yDQoJ IwlieSBKdWtrYSBTdmFobg0KCSMJaHR0cDovL3JhaGZvcnVtLmJpeg0KCSMNCgkjIyMjIyMj IyMjIyMjIyMjIyMjDQoNCglmdW5jdGlvbiByYWhfZnVuY3Rpb24oJGF0dHMsJHRoaW5nPScn KSB7DQoJCWlmKCFpc3NldCgkYXR0c1snY2FsbCddKSkNCgkJCXJldHVybiAnJzsNCg0KCQln bG9iYWwgJHByZWZzLCRpc19hcnRpY2xlX2JvZHk7DQoNCgkJaWYoIWVtcHR5KCRpc19hcnRp Y2xlX2JvZHkpKSB7DQoJCQlpZihlbXB0eSgkcHJlZnNbJ2FsbG93X2FydGljbGVfcGhwX3Nj cmlwdGluZyddKSkNCgkJCQlyZXR1cm4gJyc7DQoJCQlnbG9iYWwgJHRoaXNhcnRpY2xlOw0K CQkJaWYoIWhhc19wcml2cygnYXJ0aWNsZS5waHAnLCAkdGhpc2FydGljbGVbJ2F1dGhvcmlk J10pKQ0KCQkJCXJldHVybiAnJzsNCgkJfSBlbHNlIA0KCQkJaWYoZW1wdHkoJHByZWZzWydh bGxvd19wYWdlX3BocF9zY3JpcHRpbmcnXSkpDQoJCQkJcmV0dXJuICcnOw0KDQoJCSRmbGFn cyA9IGFycmF5KCk7DQoJCSRmdW5jdGlvbiA9ICRhdHRzWydjYWxsJ107DQoJCXVuc2V0KCRh dHRzWydjYWxsJ10pOw0KDQoJCWlmKCR0aGluZykgew0KCQkJaWYoaXNzZXQoJGF0dHNbJ3Ro aW5nJ10pKQ0KCQkJCSRhdHRzWyd0aGluZyddID0gcGFyc2UoJHRoaW5nKTsNCgkJCWVsc2UN CgkJCQkkZmxhZ3NbXSA9ICdwYXJzZSgkdGhpbmcpJzsNCgkJfQ0KDQoJCWZvcmVhY2goJGF0 dHMgYXMgJGtleSA9PiAkYXR0KSANCgkJCSRmbGFnc1tdID0gJyRhdHRzWyInLiRrZXkuJyJd JzsNCgkJJGZsYWcgPSBpbXBsb2RlKCcsJywkZmxhZ3MpOw0KCQkkcGhwID0gJyRvdXQgPSAn LiRmdW5jdGlvbi4nKCcuJGZsYWcuJyk7JzsNCgkJZXZhbCgkcGhwKTsNCgkJcmV0dXJuICRv dXQ7DQoJfSI7czo0OiJ0eXBlIjtzOjE6IjAiO3M6NToiZmxhZ3MiO3M6MToiMCI7czo1OiJv cmRlciI7czoxOiI1IjtzOjM6Im1kNSI7czozMjoiYjZkMmFlOWU2N2E0YWYwN2UyZWEyMjVj ZGY3N2IzMTEiO30=