From d74b9050ea7cb70116a02dde7463a681e168c18a Mon Sep 17 00:00:00 2001 From: Jools Date: Sat, 16 Apr 2016 14:50:33 +0200 Subject: [PATCH] Minor wording amends --- README.textile | 8 +- jcr_link_custom.php | 10 +- jcr_link_custom_v0.1.txt | 208 +++++++++++++++++++-------------------- 3 files changed, 113 insertions(+), 113 deletions(-) diff --git a/README.textile b/README.textile index 94f967f..b3eda2b 100644 --- a/README.textile +++ b/README.textile @@ -1,6 +1,6 @@ h1. jcr_link_custom -Adds a single extra custom field of up to 255 characters to the "Admin › Links":http://docs.textpattern.io/administration/links-panel panel and provides a corresponding tag to output the custom field. +Adds a single extra custom field of up to 255 characters to the "Content › Links":http://docs.textpattern.io/administration/links-panel panel and provides a corresponding tag to output the custom field. h2. Use cases @@ -43,13 +43,13 @@ p. when the link custom field is used to store the Image ID# of the logo. h2. Changing the label of the custom field -The name of custom field can be changed by specifying a new label using the _Install from Textpack_ field in the "Admin › Languages":http://docs.textpattern.io/administration/languages-panel.html panel. Enter your own information in the following pattern and click *Upload*: +The name of custom field can be changed by specifying a new label using the _Install from Textpack_ field in the "Admin › Languages":http://docs.textpattern.io/administration/languages-panel panel. Enter your own information in the following pattern and click *Upload*: bc.. #@admin #@language en-gb -jcr_link_custom => Image ID +jcr_link_custom => Your label -p. replacing @en-gb@ with your own language and @Image ID@ with your own desired label. +p. replacing @en-gb@ with your own language and @Your label@ with your own desired label. h2(#deinstallation). De-installation diff --git a/jcr_link_custom.php b/jcr_link_custom.php index 1400840..5498bb0 100644 --- a/jcr_link_custom.php +++ b/jcr_link_custom.php @@ -158,7 +158,7 @@ public static function save($event, $step) } /** - * Public tag: show custom link field + * Public tag: Output custom link field * @param string $atts[escape] Convert special characters to HTML entities. * @return string custom field output * @@ -192,7 +192,7 @@ function jcr_link_custom($atts) # --- BEGIN PLUGIN HELP --- h1. jcr_link_custom -Adds a single extra custom field of up to 255 characters to the "Admin › Links":http://docs.textpattern.io/administration/links-panel panel and provides a corresponding tag to output the custom field. +Adds a single extra custom field of up to 255 characters to the "Content › Links":http://docs.textpattern.io/administration/links-panel panel and provides a corresponding tag to output the custom field. h2. Use cases @@ -235,13 +235,13 @@ function jcr_link_custom($atts) h2. Changing the label of the custom field -The name of custom field can be changed by specifying a new label using the _Install from Textpack_ field in the "Admin › Languages":http://docs.textpattern.io/administration/languages-panel.html panel. Enter your own information in the following pattern and click *Upload*: +The name of custom field can be changed by specifying a new label using the _Install from Textpack_ field in the "Admin › Languages":http://docs.textpattern.io/administration/languages-panel panel. Enter your own information in the following pattern and click *Upload*: bc.. #@admin #@language en-gb -jcr_link_custom => Image ID +jcr_link_custom => Your label -p. replacing @en-gb@ with your own language and @Image ID@ with your own desired label. +p. replacing @en-gb@ with your own language and @Your label@ with your own desired label. h2(#deinstallation). De-installation diff --git a/jcr_link_custom_v0.1.txt b/jcr_link_custom_v0.1.txt index 4af0a3c..729bcf5 100644 --- a/jcr_link_custom_v0.1.txt +++ b/jcr_link_custom_v0.1.txt @@ -19,109 +19,109 @@ IHRoZSBsaW5rcyBwYW5lbCI7czo1OiJvcmRlciI7czoxOiI1IjtzOjQ6InR5cGUiO3M6MToi MSI7czo1OiJmbGFncyI7czowOiIiO3M6ODoidGV4dHBhY2siO3M6OTc6IiNAYWRtaW4KI0Bs YW5ndWFnZSBlbi1nYgpqY3JfbGlua19jdXN0b20gPT4gSW1hZ2UgSUQKI0BsYW5ndWFnZSBk ZS1kZQpqY3JfbGlua19jdXN0b20gPT4gQmlsZCBJRAoiO3M6MTA6ImxvYWRfb3JkZXIiO3M6 -MToiNSI7czo0OiJoZWxwIjtzOjI5MTI6IjxoMT5qY3JfbGlua19jdXN0b208L2gxPgoKPHA+ +MToiNSI7czo0OiJoZWxwIjtzOjI5MTM6IjxoMT5qY3JfbGlua19jdXN0b208L2gxPgoKPHA+ QWRkcyBhIHNpbmdsZSBleHRyYSBjdXN0b20gZmllbGQgb2YgdXAgdG8gMjU1IGNoYXJhY3Rl cnMgdG8gdGhlIDxhIGhyZWY9Imh0dHA6Ly9kb2NzLnRleHRwYXR0ZXJuLmlvL2FkbWluaXN0 -cmF0aW9uL2xpbmtzLXBhbmVsIj5BZG1pbiDigLogTGlua3M8L2E+IHBhbmVsIGFuZCBwcm92 -aWRlcyBhIGNvcnJlc3BvbmRpbmcgdGFnIHRvIG91dHB1dCB0aGUgY3VzdG9tIGZpZWxkLjwv -cD4KCgo8aDI+VXNlIGNhc2VzPC9oMj4KCjxwPlVzZSB3aGVuZXZlciBleHRyYSBpbmZvcm1h -dGlvbiBuZWVkcyB0byBiZSBzdG9yZWQgd2l0aCBhIGxpbmsuIEZvciBleGFtcGxlOjwvcD4K -Cjx1bD4KCTxsaT5TdG9yZSBhIHR4cCBpbWFnZSBJRCBudW1iZXIgYW5kIHVzZSBpdCB0byBh -dHRhY2ggYSBsb2dvIHRvIGEgbGluay48L2xpPgoJPGxpPlN0b3JlIGFzc29jaWF0ZWQgZGV0 -YWlscywgZm9yIGV4YW1wbGUgdGhlIGxvY2F0aW9uIG9mIGEgbGlua2VkIG9yZ2FuaXNhdGlv -bi48L2xpPgoJPGxpPuKApjwvbGk+CjwvdWw+CgoKPGgyIGlkPSJpbnN0YWxsYXRpb24iPklu -c3RhbGxhdGlvbjwvaDI+Cgo8cD5QYXN0ZSB0aGUgY29kZSBpbnRvIHRoZSAgPGVtPkFkbWlu -IOKAuiBQbHVnaW5zPC9lbT4gcGFuZWwsIGluc3RhbGwgYW5kIGVuYWJsZSB0aGUgcGx1Z2lu -LjwvcD4KCgo8aDIgaWQ9InRhZ3MiPlRhZ3M8L2gyPgoKPHByZT48Y29kZT4mbHQ7dHhwOmpj -cl9saW5rX2N1c3RvbSAvJmd0OzwvY29kZT48L3ByZT4KCjxwPk91dHB1dHMgdGhlIGNvbnRl -bnQgb2YgdGhlIGxpbmsgY3VzdG9tIGZpZWxkLjwvcD4KCjxoMz5UYWcgYXR0cmlidXRlczwv -aDM+Cgo8cD48c3Ryb25nPmVzY2FwZTwvc3Ryb25nPjxiciAvPgpFc2NhcGUgPHNwYW4gY2xh -c3M9ImNhcHMiPkhUTUw8L3NwYW4+IGVudGl0aWVzIHN1Y2ggYXMgPGNvZGU+Jmx0OzwvY29k -ZT4sIDxjb2RlPiZndDs8L2NvZGU+IGFuZCA8Y29kZT4mYW1wOzwvY29kZT4gcHJpb3IgdG8g -ZWNob2luZyB0aGUgZmllbGQgY29udGVudHMuPGJyIC8+CkV4YW1wbGU6IFVzZSA8Y29kZT5l -c2NhcGU9JnF1b3Q7JnF1b3Q7PC9jb2RlPiB0byBzdXBwcmVzcyBjb252ZXJzaW9uLiBEZWZh -dWx0OiA8Y29kZT5odG1sPC9jb2RlPi48L3A+CgoKPGgyIGlkPSJleGFtcGxlcyI+RXhhbXBs -ZTwvaDI+Cgo8cD5Qcm9kdWNlIGEgbGlzdCBvZiBsaW5rZWQgcGFydG5lciBsb2dvcyAoZnJv -bSBsaW5rIGFzc2lnbmVkIHRvIHRoZSBsaW5rIGNhdGVnb3J5ICYjODIyMDtwYXJ0bmVycyYj -ODIyMTspOjwvcD4KCjxwcmU+PGNvZGU+Jmx0O3R4cDpsaW5rbGlzdCB3cmFwdGFnPSZxdW90 -O3VsJnF1b3Q7IGJyZWFrPSZxdW90O2xpJnF1b3Q7IGNhdGVnb3J5PSZxdW90O3BhcnRuZXJz -JnF1b3Q7Jmd0OwogICZsdDthIGhyZWY9JnF1b3Q7Jmx0O3R4cDpsaW5rX3VybCAvJmd0OyZx -dW90OyB0aXRsZT0mcXVvdDsmbHQ7dHhwOmxpbmtfbmFtZSAvJmd0OyZxdW90OyZndDsmbHQ7 -dHhwOmltYWdlIGlkPSYjMzk7Jmx0O3R4cDpqY3JfbGlua19jdXN0b20gLyZndDsmIzM5OyAv -Jmd0OyZsdDsvYSZndDsKJmx0Oy90eHA6bGlua2xpc3QmZ3Q7PC9jb2RlPjwvcHJlPgoKPHA+ -d2hlbiB0aGUgbGluayBjdXN0b20gZmllbGQgaXMgdXNlZCB0byBzdG9yZSB0aGUgSW1hZ2Ug -SUQjIG9mIHRoZSBsb2dvLjwvcD4KCgo8aDI+Q2hhbmdpbmcgdGhlIGxhYmVsIG9mIHRoZSBj -dXN0b20gZmllbGQ8L2gyPgoKPHA+VGhlIG5hbWUgb2YgY3VzdG9tIGZpZWxkIGNhbiBiZSBj -aGFuZ2VkIGJ5IHNwZWNpZnlpbmcgYSBuZXcgbGFiZWwgdXNpbmcgdGhlIDxlbT5JbnN0YWxs -IGZyb20gVGV4dHBhY2s8L2VtPiBmaWVsZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2RvY3Mu -dGV4dHBhdHRlcm4uaW8vYWRtaW5pc3RyYXRpb24vbGFuZ3VhZ2VzLXBhbmVsLmh0bWwiPkFk -bWluIOKAuiBMYW5ndWFnZXM8L2E+IHBhbmVsLiBFbnRlciB5b3VyIG93biBpbmZvcm1hdGlv -biBpbiB0aGUgZm9sbG93aW5nIHBhdHRlcm4gYW5kIGNsaWNrIDxzdHJvbmc+VXBsb2FkPC9z -dHJvbmc+OjwvcD4KCjxwcmU+PGNvZGU+I0BhZG1pbgojQGxhbmd1YWdlIGVuLWdiCmpjcl9s -aW5rX2N1c3RvbSA9Jmd0OyBJbWFnZSBJRDwvY29kZT48L3ByZT4KCjxwPnJlcGxhY2luZyA8 -Y29kZT5lbi1nYjwvY29kZT4gd2l0aCB5b3VyIG93biBsYW5ndWFnZSBhbmQgPGNvZGU+SW1h -Z2UgSUQ8L2NvZGU+IHdpdGggeW91ciBvd24gZGVzaXJlZCBsYWJlbC48L3A+CgoKPGgyIGlk -PSJkZWluc3RhbGxhdGlvbiI+RGUtaW5zdGFsbGF0aW9uPC9oMj4KCjxwPlRoZSBwbHVnaW4g -Y2xlYW5zIHVwIGFmdGVyIGl0c2VsZjogZGVpbnN0YWxsaW5nIHRoZSBwbHVnaW4gcmVtb3Zl -cyB0aGUgZXh0cmEgY29sdW1uIGZyb20gdGhlIGRhdGFiYXNlLiBUbyBzdG9wIHVzaW5nIHRo -ZSBwbHVnaW4gYnV0IGtlZXAgdGhlIGRhdGFiYXNlIHRhYmxlcywganVzdCBkaXNhYmxlIChk -ZWFjdGl2YXRlKSB0aGUgcGx1Z2luIGJ1dCBkb24mIzgyMTc7dCBkZWxldGUgaXQuPC9wPgoK -CjxoMiBpZD0iY2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2gyPgoKPGgzPlZlcnNpb24gMC4xIOKA -kyAyMDE2LzAzLzA0PC9oMz4KCjx1bD4KCTxsaT5GaXJzdCByZWxlYXNlPC9saT4KPC91bD4K -Cgo8aDIgaWQ9ImNyZWRpdHMiPkNyZWRpdHM8L2gyPgoKPHA+Um9iZXJ0IFdldHpsbWF5cuKA -mXMgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3J3ZXR6bG1heXIvd2V0X3Byb2ZpbGUi -PndldF9wcm9maWxlPC9hPiBwbHVnaW4gZm9yIHRoZSBzdGFydGluZyBwb2ludCwgYW5kIGZ1 -cnRoZXIgZXhhbXBsZXMgYnkgPGEgaHJlZj0iaHR0cDovL3d3dy5zdGVmZGF3c29uLmNvbSI+ -U3RlZiBEYXdzb248L2E+IGFuZCA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZ29jb20i -Pkp1a2thIFN2YWhuPC9hPi48L3A+IjtzOjM6ImNzcyI7czowOiIiO3M6NDoiY29kZSI7czoy -Njc0OiJjbGFzcyBqY3JfbGlua19jdXN0b20KewoJLyoqCgkgKiBJbml0aWFsaXNlLgoJICov -CgkgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQoJewoJCXJlZ2lzdGVyX2NhbGxiYWNrKGFycmF5 -KF9fQ0xBU1NfXywgJ2xpZmVjeWNsZScpLCAncGx1Z2luX2xpZmVjeWNsZS5qY3JfbGlua19j -dXN0b20nKTsKCQlyZWdpc3Rlcl9jYWxsYmFjayhhcnJheShfX0NMQVNTX18sICd1aScpLCAn -bGlua191aScsICdleHRlbmRfZGV0YWlsX2Zvcm0nKTsKCQlyZWdpc3Rlcl9jYWxsYmFjayhh -cnJheShfX0NMQVNTX18sICdzYXZlJyksICdsaW5rJywgJ2xpbmtfc2F2ZScpOwoJfQoKICAv -KioKICAgKiBBZGQgYW5kIHJlbW92ZSBjdXN0b20gZmllbGQgZnJvbSB0eHBfbGluayB0YWJs -ZS4KICAgKgogICAqIEBwYXJhbSAkZXZlbnQgc3RyaW5nCiAgICogQHBhcmFtICRzdGVwIHN0 -cmluZyAgVGhlIGxpZmVjeWNsZSBwaGFzZSBvZiB0aGlzIHBsdWdpbgogICAqLwogIHB1Ymxp -YyBzdGF0aWMgZnVuY3Rpb24gbGlmZWN5Y2xlKCRldmVudCwgJHN0ZXApCiAgewogICAgICBz -d2l0Y2ggKCRzdGVwKSB7CiAgICAgICAgICBjYXNlICdlbmFibGVkJzoKICAgICAgICAgICAg -ICBicmVhazsKICAgICAgICAgIGNhc2UgJ2Rpc2FibGVkJzoKICAgICAgICAgICAgICBicmVh -azsKICAgICAgICAgIGNhc2UgJ2luc3RhbGxlZCc6CiAgICAgICAgICAgICAgc2FmZV9hbHRl -cigKICAgICAgICAgICAgICAgICd0eHBfbGluaycsCiAgICAgICAgICAgICAgICAnQUREIENP -TFVNTiBqY3JfbGlua19jdXN0b20gVkFSQ0hBUigyNTUpIE5VTEwgQUZURVIgYXV0aG9yJwog -ICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICdk -ZWxldGVkJzoKICAgICAgICAgICAgICBzYWZlX2FsdGVyKAogICAgICAgICAgICAgICAgJ3R4 -cF9saW5rJywKICAgICAgICAgICAgICAgICdEUk9QIENPTFVNTiBqY3JfbGlua19jdXN0b20n -CiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgfQogICAgICBy -ZXR1cm47CiAgfQoKCS8qKgoJICogUGFpbnQgYWRkaXRpb25hbCBmaWVsZHMgZm9yIGxpbmsg -Y3VzdG9tIGZpZWxkCgkgKgoJICogQHBhcmFtICRldmVudCBzdHJpbmcKCSAqIEBwYXJhbSAk -c3RlcCBzdHJpbmcKCSAqIEBwYXJhbSAkZHVtbXkgc3RyaW5nCgkgKiBAcGFyYW0gJHJzIGFy -cmF5IFRoZSBjdXJyZW50IGxpbmsncyBkYXRhCgkgKiBAcmV0dXJuIHN0cmluZwoJICovCglw -dWJsaWMgc3RhdGljIGZ1bmN0aW9uIHVpKCRldmVudCwgJHN0ZXAsICRkdW1teSwgJHJzKQoJ -ewoJCWV4dHJhY3QobEF0dHMoYXJyYXkoCgkJCSdqY3JfbGlua19jdXN0b20nID0+ICcnCgkJ -KSwgJHJzLCAwKSk7CgoJCXJldHVybgoJCQlpbnB1dExhYmVsKCdqY3JfbGlua19jdXN0b20n -LCBmSW5wdXQoJ3RleHQnLCAnamNyX2xpbmtfY3VzdG9tJywgJGpjcl9saW5rX2N1c3RvbSwg -JycsICcnLCAnJywgSU5QVVRfUkVHVUxBUiwgJycsICdqY3JfbGlua19jdXN0b20nKSwgJ2pj -cl9saW5rX2N1c3RvbScpLm47Cgl9CgoJLyoqCgkgKiBTYXZlIGFkZGl0aW9uYWwgbGluayBj -dXN0b20gZmllbGRzCgkgKgoJICogQHBhcmFtICRldmVudCBzdHJpbmcKCSAqIEBwYXJhbSAk -c3RlcCBzdHJpbmcKCSAqLwoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzYXZlKCRldmVudCwg -JHN0ZXApCgl7CgkJZXh0cmFjdChkb1NsYXNoKHBzYShhcnJheSgnamNyX2xpbmtfY3VzdG9t -JywgJ2lkJykpKSk7CgkJJGlkID0gYXNzZXJ0X2ludCgkaWQpOwoJCXNhZmVfdXBkYXRlKCd0 -eHBfbGluaycsCgkJICAiamNyX2xpbmtfY3VzdG9tID0gJyRqY3JfbGlua19jdXN0b20nIiwK -CQkJImlkID0gJGlkIgoJCSk7Cgl9Cn0KCmlmICh0eHBpbnRlcmZhY2UgPT09ICdhZG1pbicp -IHsKCiAgICBuZXcgamNyX2xpbmtfY3VzdG9tOwoKfSBlbHNlaWYgKHR4cGludGVyZmFjZSA9 -PT0gJ3B1YmxpYycpIHsKCiAgICBpZiAoY2xhc3NfZXhpc3RzKCdcVGV4dHBhdHRlcm5cVGFn -XFJlZ2lzdHJ5JykpIHsKICAgICAgICBUeHA6OmdldCgnXFRleHRwYXR0ZXJuXFRhZ1xSZWdp -c3RyeScpCiAgICAgICAgICAgIC0+cmVnaXN0ZXIoJ2pjcl9saW5rX2N1c3RvbScpOwogICAg -fQoKfQoKICAvKioKICAgKiBQdWJsaWMgdGFnOiBzaG93IGN1c3RvbSBsaW5rIGZpZWxkCiAg -ICogQHBhcmFtICBzdHJpbmcgJGF0dHNbZXNjYXBlXSBDb252ZXJ0IHNwZWNpYWwgY2hhcmFj -dGVycyB0byBIVE1MIGVudGl0aWVzLgogICAqIEByZXR1cm4gc3RyaW5nICBjdXN0b20gZmll -bGQgb3V0cHV0CiAgICogPGNvZGU+CiAgICogICAgICAgIDx0eHA6amNyX2xpbmtfY3VzdG9t -IGVzY2FwZT0iaHRtbCIgLz4KICAgKiA8L2NvZGU+CiAgICovCgogICAgZnVuY3Rpb24gamNy -X2xpbmtfY3VzdG9tKCRhdHRzKQogICAgewogICAgICAgIGdsb2JhbCAkdGhpc2xpbms7Cgog -ICAgICAgIGFzc2VydF9saW5rKCk7CgogICAgICAgIGV4dHJhY3QobEF0dHMoYXJyYXkoCiAg -ICAgICAgICAgICdlc2NhcGUnID0+ICdodG1sJywKICAgICAgICApLCAkYXR0cykpOwoKICAg -ICAgICByZXR1cm4gKCRlc2NhcGUgPT0gJ2h0bWwnKQogICAgICAgICAgICA/IHR4cHNwZWNp -YWxjaGFycygkdGhpc2xpbmtbJ2pjcl9saW5rX2N1c3RvbSddKQogICAgICAgICAgICA6ICR0 -aGlzbGlua1snamNyX2xpbmtfY3VzdG9tJ107CiAgICB9IjtzOjM6Im1kNSI7czozMjoiMDRj -NDY1Zjc1NDY0YWMzOTQ3MzgzYmRkYmNlMjRhMzUiO30= +cmF0aW9uL2xpbmtzLXBhbmVsIj5Db250ZW50IOKAuiBMaW5rczwvYT4gcGFuZWwgYW5kIHBy +b3ZpZGVzIGEgY29ycmVzcG9uZGluZyB0YWcgdG8gb3V0cHV0IHRoZSBjdXN0b20gZmllbGQu +PC9wPgoKCjxoMj5Vc2UgY2FzZXM8L2gyPgoKPHA+VXNlIHdoZW5ldmVyIGV4dHJhIGluZm9y +bWF0aW9uIG5lZWRzIHRvIGJlIHN0b3JlZCB3aXRoIGEgbGluay4gRm9yIGV4YW1wbGU6PC9w +PgoKPHVsPgoJPGxpPlN0b3JlIGEgdHhwIGltYWdlIElEIG51bWJlciBhbmQgdXNlIGl0IHRv +IGF0dGFjaCBhIGxvZ28gdG8gYSBsaW5rLjwvbGk+Cgk8bGk+U3RvcmUgYXNzb2NpYXRlZCBk +ZXRhaWxzLCBmb3IgZXhhbXBsZSB0aGUgbG9jYXRpb24gb2YgYSBsaW5rZWQgb3JnYW5pc2F0 +aW9uLjwvbGk+Cgk8bGk+4oCmPC9saT4KPC91bD4KCgo8aDIgaWQ9Imluc3RhbGxhdGlvbiI+ +SW5zdGFsbGF0aW9uPC9oMj4KCjxwPlBhc3RlIHRoZSBjb2RlIGludG8gdGhlICA8ZW0+QWRt +aW4g4oC6IFBsdWdpbnM8L2VtPiBwYW5lbCwgaW5zdGFsbCBhbmQgZW5hYmxlIHRoZSBwbHVn +aW4uPC9wPgoKCjxoMiBpZD0idGFncyI+VGFnczwvaDI+Cgo8cHJlPjxjb2RlPiZsdDt0eHA6 +amNyX2xpbmtfY3VzdG9tIC8mZ3Q7PC9jb2RlPjwvcHJlPgoKPHA+T3V0cHV0cyB0aGUgY29u +dGVudCBvZiB0aGUgbGluayBjdXN0b20gZmllbGQuPC9wPgoKPGgzPlRhZyBhdHRyaWJ1dGVz +PC9oMz4KCjxwPjxzdHJvbmc+ZXNjYXBlPC9zdHJvbmc+PGJyIC8+CkVzY2FwZSA8c3BhbiBj +bGFzcz0iY2FwcyI+SFRNTDwvc3Bhbj4gZW50aXRpZXMgc3VjaCBhcyA8Y29kZT4mbHQ7PC9j +b2RlPiwgPGNvZGU+Jmd0OzwvY29kZT4gYW5kIDxjb2RlPiZhbXA7PC9jb2RlPiBwcmlvciB0 +byBlY2hvaW5nIHRoZSBmaWVsZCBjb250ZW50cy48YnIgLz4KRXhhbXBsZTogVXNlIDxjb2Rl +PmVzY2FwZT0mcXVvdDsmcXVvdDs8L2NvZGU+IHRvIHN1cHByZXNzIGNvbnZlcnNpb24uIERl +ZmF1bHQ6IDxjb2RlPmh0bWw8L2NvZGU+LjwvcD4KCgo8aDIgaWQ9ImV4YW1wbGVzIj5FeGFt +cGxlPC9oMj4KCjxwPlByb2R1Y2UgYSBsaXN0IG9mIGxpbmtlZCBwYXJ0bmVyIGxvZ29zIChm +cm9tIGxpbmsgYXNzaWduZWQgdG8gdGhlIGxpbmsgY2F0ZWdvcnkgJiM4MjIwO3BhcnRuZXJz +JiM4MjIxOyk6PC9wPgoKPHByZT48Y29kZT4mbHQ7dHhwOmxpbmtsaXN0IHdyYXB0YWc9JnF1 +b3Q7dWwmcXVvdDsgYnJlYWs9JnF1b3Q7bGkmcXVvdDsgY2F0ZWdvcnk9JnF1b3Q7cGFydG5l +cnMmcXVvdDsmZ3Q7CiAgJmx0O2EgaHJlZj0mcXVvdDsmbHQ7dHhwOmxpbmtfdXJsIC8mZ3Q7 +JnF1b3Q7IHRpdGxlPSZxdW90OyZsdDt0eHA6bGlua19uYW1lIC8mZ3Q7JnF1b3Q7Jmd0OyZs +dDt0eHA6aW1hZ2UgaWQ9JiMzOTsmbHQ7dHhwOmpjcl9saW5rX2N1c3RvbSAvJmd0OyYjMzk7 +IC8mZ3Q7Jmx0Oy9hJmd0OwombHQ7L3R4cDpsaW5rbGlzdCZndDs8L2NvZGU+PC9wcmU+Cgo8 +cD53aGVuIHRoZSBsaW5rIGN1c3RvbSBmaWVsZCBpcyB1c2VkIHRvIHN0b3JlIHRoZSBJbWFn +ZSBJRCMgb2YgdGhlIGxvZ28uPC9wPgoKCjxoMj5DaGFuZ2luZyB0aGUgbGFiZWwgb2YgdGhl +IGN1c3RvbSBmaWVsZDwvaDI+Cgo8cD5UaGUgbmFtZSBvZiBjdXN0b20gZmllbGQgY2FuIGJl +IGNoYW5nZWQgYnkgc3BlY2lmeWluZyBhIG5ldyBsYWJlbCB1c2luZyB0aGUgPGVtPkluc3Rh +bGwgZnJvbSBUZXh0cGFjazwvZW0+IGZpZWxkIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZG9j +cy50ZXh0cGF0dGVybi5pby9hZG1pbmlzdHJhdGlvbi9sYW5ndWFnZXMtcGFuZWwiPkFkbWlu +IOKAuiBMYW5ndWFnZXM8L2E+IHBhbmVsLiBFbnRlciB5b3VyIG93biBpbmZvcm1hdGlvbiBp +biB0aGUgZm9sbG93aW5nIHBhdHRlcm4gYW5kIGNsaWNrIDxzdHJvbmc+VXBsb2FkPC9zdHJv +bmc+OjwvcD4KCjxwcmU+PGNvZGU+I0BhZG1pbgojQGxhbmd1YWdlIGVuLWdiCmpjcl9saW5r +X2N1c3RvbSA9Jmd0OyBZb3VyIGxhYmVsPC9jb2RlPjwvcHJlPgoKPHA+cmVwbGFjaW5nIDxj +b2RlPmVuLWdiPC9jb2RlPiB3aXRoIHlvdXIgb3duIGxhbmd1YWdlIGFuZCA8Y29kZT5Zb3Vy +IGxhYmVsPC9jb2RlPiB3aXRoIHlvdXIgb3duIGRlc2lyZWQgbGFiZWwuPC9wPgoKCjxoMiBp +ZD0iZGVpbnN0YWxsYXRpb24iPkRlLWluc3RhbGxhdGlvbjwvaDI+Cgo8cD5UaGUgcGx1Z2lu +IGNsZWFucyB1cCBhZnRlciBpdHNlbGY6IGRlaW5zdGFsbGluZyB0aGUgcGx1Z2luIHJlbW92 +ZXMgdGhlIGV4dHJhIGNvbHVtbiBmcm9tIHRoZSBkYXRhYmFzZS4gVG8gc3RvcCB1c2luZyB0 +aGUgcGx1Z2luIGJ1dCBrZWVwIHRoZSBkYXRhYmFzZSB0YWJsZXMsIGp1c3QgZGlzYWJsZSAo +ZGVhY3RpdmF0ZSkgdGhlIHBsdWdpbiBidXQgZG9uJiM4MjE3O3QgZGVsZXRlIGl0LjwvcD4K +Cgo8aDIgaWQ9ImNoYW5nZWxvZyI+Q2hhbmdlbG9nPC9oMj4KCjxoMz5WZXJzaW9uIDAuMSDi +gJMgMjAxNi8wMy8wNDwvaDM+Cgo8dWw+Cgk8bGk+Rmlyc3QgcmVsZWFzZTwvbGk+CjwvdWw+ +CgoKPGgyIGlkPSJjcmVkaXRzIj5DcmVkaXRzPC9oMj4KCjxwPlJvYmVydCBXZXR6bG1heXLi +gJlzIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9yd2V0emxtYXlyL3dldF9wcm9maWxl +Ij53ZXRfcHJvZmlsZTwvYT4gcGx1Z2luIGZvciB0aGUgc3RhcnRpbmcgcG9pbnQsIGFuZCBm +dXJ0aGVyIGV4YW1wbGVzIGJ5IDxhIGhyZWY9Imh0dHA6Ly93d3cuc3RlZmRhd3Nvbi5jb20i +PlN0ZWYgRGF3c29uPC9hPiBhbmQgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2dvY29t +Ij5KdWtrYSBTdmFobjwvYT4uPC9wPiI7czozOiJjc3MiO3M6MDoiIjtzOjQ6ImNvZGUiO3M6 +MjY3NjoiY2xhc3MgamNyX2xpbmtfY3VzdG9tCnsKCS8qKgoJICogSW5pdGlhbGlzZS4KCSAq +LwoJIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkKCXsKCQlyZWdpc3Rlcl9jYWxsYmFjayhhcnJh +eShfX0NMQVNTX18sICdsaWZlY3ljbGUnKSwgJ3BsdWdpbl9saWZlY3ljbGUuamNyX2xpbmtf +Y3VzdG9tJyk7CgkJcmVnaXN0ZXJfY2FsbGJhY2soYXJyYXkoX19DTEFTU19fLCAndWknKSwg +J2xpbmtfdWknLCAnZXh0ZW5kX2RldGFpbF9mb3JtJyk7CgkJcmVnaXN0ZXJfY2FsbGJhY2so +YXJyYXkoX19DTEFTU19fLCAnc2F2ZScpLCAnbGluaycsICdsaW5rX3NhdmUnKTsKCX0KCiAg +LyoqCiAgICogQWRkIGFuZCByZW1vdmUgY3VzdG9tIGZpZWxkIGZyb20gdHhwX2xpbmsgdGFi +bGUuCiAgICoKICAgKiBAcGFyYW0gJGV2ZW50IHN0cmluZwogICAqIEBwYXJhbSAkc3RlcCBz +dHJpbmcgIFRoZSBsaWZlY3ljbGUgcGhhc2Ugb2YgdGhpcyBwbHVnaW4KICAgKi8KICBwdWJs +aWMgc3RhdGljIGZ1bmN0aW9uIGxpZmVjeWNsZSgkZXZlbnQsICRzdGVwKQogIHsKICAgICAg +c3dpdGNoICgkc3RlcCkgewogICAgICAgICAgY2FzZSAnZW5hYmxlZCc6CiAgICAgICAgICAg +ICAgYnJlYWs7CiAgICAgICAgICBjYXNlICdkaXNhYmxlZCc6CiAgICAgICAgICAgICAgYnJl +YWs7CiAgICAgICAgICBjYXNlICdpbnN0YWxsZWQnOgogICAgICAgICAgICAgIHNhZmVfYWx0 +ZXIoCiAgICAgICAgICAgICAgICAndHhwX2xpbmsnLAogICAgICAgICAgICAgICAgJ0FERCBD +T0xVTU4gamNyX2xpbmtfY3VzdG9tIFZBUkNIQVIoMjU1KSBOVUxMIEFGVEVSIGF1dGhvcicK +ICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAn +ZGVsZXRlZCc6CiAgICAgICAgICAgICAgc2FmZV9hbHRlcigKICAgICAgICAgICAgICAgICd0 +eHBfbGluaycsCiAgICAgICAgICAgICAgICAnRFJPUCBDT0xVTU4gamNyX2xpbmtfY3VzdG9t +JwogICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAg +cmV0dXJuOwogIH0KCgkvKioKCSAqIFBhaW50IGFkZGl0aW9uYWwgZmllbGRzIGZvciBsaW5r +IGN1c3RvbSBmaWVsZAoJICoKCSAqIEBwYXJhbSAkZXZlbnQgc3RyaW5nCgkgKiBAcGFyYW0g +JHN0ZXAgc3RyaW5nCgkgKiBAcGFyYW0gJGR1bW15IHN0cmluZwoJICogQHBhcmFtICRycyBh +cnJheSBUaGUgY3VycmVudCBsaW5rJ3MgZGF0YQoJICogQHJldHVybiBzdHJpbmcKCSAqLwoJ +cHVibGljIHN0YXRpYyBmdW5jdGlvbiB1aSgkZXZlbnQsICRzdGVwLCAkZHVtbXksICRycykK +CXsKCQlleHRyYWN0KGxBdHRzKGFycmF5KAoJCQknamNyX2xpbmtfY3VzdG9tJyA9PiAnJwoJ +CSksICRycywgMCkpOwoKCQlyZXR1cm4KCQkJaW5wdXRMYWJlbCgnamNyX2xpbmtfY3VzdG9t +JywgZklucHV0KCd0ZXh0JywgJ2pjcl9saW5rX2N1c3RvbScsICRqY3JfbGlua19jdXN0b20s +ICcnLCAnJywgJycsIElOUFVUX1JFR1VMQVIsICcnLCAnamNyX2xpbmtfY3VzdG9tJyksICdq +Y3JfbGlua19jdXN0b20nKS5uOwoJfQoKCS8qKgoJICogU2F2ZSBhZGRpdGlvbmFsIGxpbmsg +Y3VzdG9tIGZpZWxkcwoJICoKCSAqIEBwYXJhbSAkZXZlbnQgc3RyaW5nCgkgKiBAcGFyYW0g +JHN0ZXAgc3RyaW5nCgkgKi8KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc2F2ZSgkZXZlbnQs +ICRzdGVwKQoJewoJCWV4dHJhY3QoZG9TbGFzaChwc2EoYXJyYXkoJ2pjcl9saW5rX2N1c3Rv +bScsICdpZCcpKSkpOwoJCSRpZCA9IGFzc2VydF9pbnQoJGlkKTsKCQlzYWZlX3VwZGF0ZSgn +dHhwX2xpbmsnLAoJCSAgImpjcl9saW5rX2N1c3RvbSA9ICckamNyX2xpbmtfY3VzdG9tJyIs +CgkJCSJpZCA9ICRpZCIKCQkpOwoJfQp9CgppZiAodHhwaW50ZXJmYWNlID09PSAnYWRtaW4n +KSB7CgogICAgbmV3IGpjcl9saW5rX2N1c3RvbTsKCn0gZWxzZWlmICh0eHBpbnRlcmZhY2Ug +PT09ICdwdWJsaWMnKSB7CgogICAgaWYgKGNsYXNzX2V4aXN0cygnXFRleHRwYXR0ZXJuXFRh +Z1xSZWdpc3RyeScpKSB7CiAgICAgICAgVHhwOjpnZXQoJ1xUZXh0cGF0dGVyblxUYWdcUmVn +aXN0cnknKQogICAgICAgICAgICAtPnJlZ2lzdGVyKCdqY3JfbGlua19jdXN0b20nKTsKICAg +IH0KCn0KCiAgLyoqCiAgICogUHVibGljIHRhZzogT3V0cHV0IGN1c3RvbSBsaW5rIGZpZWxk +CiAgICogQHBhcmFtICBzdHJpbmcgJGF0dHNbZXNjYXBlXSBDb252ZXJ0IHNwZWNpYWwgY2hh +cmFjdGVycyB0byBIVE1MIGVudGl0aWVzLgogICAqIEByZXR1cm4gc3RyaW5nICBjdXN0b20g +ZmllbGQgb3V0cHV0CiAgICogPGNvZGU+CiAgICogICAgICAgIDx0eHA6amNyX2xpbmtfY3Vz +dG9tIGVzY2FwZT0iaHRtbCIgLz4KICAgKiA8L2NvZGU+CiAgICovCgogICAgZnVuY3Rpb24g +amNyX2xpbmtfY3VzdG9tKCRhdHRzKQogICAgewogICAgICAgIGdsb2JhbCAkdGhpc2xpbms7 +CgogICAgICAgIGFzc2VydF9saW5rKCk7CgogICAgICAgIGV4dHJhY3QobEF0dHMoYXJyYXko +CiAgICAgICAgICAgICdlc2NhcGUnID0+ICdodG1sJywKICAgICAgICApLCAkYXR0cykpOwoK +ICAgICAgICByZXR1cm4gKCRlc2NhcGUgPT0gJ2h0bWwnKQogICAgICAgICAgICA/IHR4cHNw +ZWNpYWxjaGFycygkdGhpc2xpbmtbJ2pjcl9saW5rX2N1c3RvbSddKQogICAgICAgICAgICA6 +ICR0aGlzbGlua1snamNyX2xpbmtfY3VzdG9tJ107CiAgICB9IjtzOjM6Im1kNSI7czozMjoi +NmE0MDhlZDBhOGZlODBhNGIzY2Y1YTI4YjllZDA4YjQiO30=