# Name: cbe_if_variable v0.2 # Type: Client side plugin # if_variable for a list of values # Author: Claire Brione # URL: http://www.clairebrione.com/ # 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: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjE1OiJjYmVfaWZfdmFyaWFibGUiO3M6NjoiYXV0aG9yIjtz OjEzOiJDbGFpcmUgQnJpb25lIjtzOjEwOiJhdXRob3JfdXJpIjtzOjI4OiJodHRwOi8vd3d3 LmNsYWlyZWJyaW9uZS5jb20vIjtzOjc6InZlcnNpb24iO3M6MzoiMC4yIjtzOjExOiJkZXNj cmlwdGlvbiI7czozMjoiaWZfdmFyaWFibGUgZm9yIGEgbGlzdCBvZiB2YWx1ZXMiO3M6NDoi aGVscCI7czo4Nzk4OiI8ZGl2IGlkPSJjYmUtcGx1Z2luLWhlbHAiPgo8aDE+Y2JlX2lmX3Zh cmlhYmxlPC9oMT4KPHA+RXZhbHVhdGUgeW91ciB2YXJpYWJsZXMgaW4gYSBpZl9jdXN0b21f ZmllbGRzIG1hbm5lci48L3A+CjxwPlByb3ZpZGUgdHdvIGFkZGl0aW9ubmFsIHRhZ3M6IDxj b2RlPmNiZV9pZl92YXJpYWJsZV9leGlzdHM8L2NvZGU+IGFuZCA8Y29kZT5jYmVfaWZfdmFy aWFibGVfZW1wdHk8L2NvZGU+PC9wPgoKPGgyPlRhYmxlIG9mIGNvbnRlbnRzPC9oMj4KPHVs PgogIDxsaT48YSBocmVmPSIjZGwtaW5zdGFsbC1zdXBwIj5Eb3dubG9hZCwgaW5zdGFsbGF0 aW9uLCBzdXBwb3J0PC9hPjwvbGk+CiAgPGxpPjxhIGhyZWY9IiNmZWF0dXJlcyI+RmVhdHVy ZXM8L2E+PC9saT4KICA8bGk+PGEgaHJlZj0iI3RhZ3MtYW5kLWF0dHJpYnV0ZXMiPlRhZ3Mg YW5kIGF0dHJpYnV0ZXM8L2E+PC9saT4KICA8bGk+PGEgaHJlZj0iI2V4YW1wbGVzIj5FeGFt cGxlczwvYT48L2xpPgogIDxsaT48YSBocmVmPSIjc3VtbWFyeSI+U3VtbWFyeTwvYT48L2xp PgogIDxsaT48YSBocmVmPSIjY2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2E+PC9saT4KPC91bD4K CjxoMiBpZD0iZGwtaW5zdGFsbC1zdXBwIj5Eb3dubG9hZCwgaW5zdGFsbGF0aW9uLCBzdXBw b3J0PC9oMj4KCjxwPkRvd25sb2FkIGZyb20gdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuY2xh aXJlYnJpb25lLmNvbS9jYmVfaWZfdmFyaWFibGUiPnBsdWdpbiBwYWdlPC9hPi48L3A+Cjxw PkNvcHkvcGFzdGUgaW4gdGhlIEFkbWluID4gUGx1Z2lucyB0YWIgdG8gaW5zdGFsbCBvciB1 bmluc3RhbGwsIGFjdGl2YXRlIG9yIGRlc2FjdGl2YXRlLjwvcD4KPHA+VmlzaXQgdGhlIDxh IGhyZWY9Imh0dHA6Ly9mb3J1bS50ZXh0cGF0dGVybi5jb20vdmlld3RvcGljLnBocD9pZD0z NjM2OCI+Zm9ydW0gdGhyZWFkPC9hPiBmb3Igc3VwcG9ydC48L3A+Cgo8aDIgaWQ9ImZlYXR1 cmVzIj5GZWF0dXJlczwvaDI+Cgo8dWw+CiAgPGxpPnZlcmlmeSB0aGUgdmFyaWFibGUgYW1v bmcgYSBzZXBhcmF0ZWQgbGlzdCBvZiB2YWx1ZXMgKDxhIGhyZWY9IiNleC1iYXNpYyI+ZXhh bXBsZTwvYT4pIC4uLjwvbGk+CiAgPGxpPi4uLiBvciBhIHNpbmdsZSB2YWx1ZSBsaWtlIDxj b2RlPiZsdDt0eHA6aWZfdmFyaWFibGUgLyZndDs8L2NvZGU+PC9saT4KICA8bGk+dGhlIGRl bGltaXRlciBjYW4gYmUgY2hhbmdlZCAoPGEgaHJlZj0iI2V4LWRlbGltIj5leGFtcGxlPC9h Pik8L2xpPgogIDxsaT50aGUgdmFyaWFibGUgY2FuIGFsc28gaG9sZCBhIHNlcGFyYXRlZCBs aXN0LCB0aHVzIG9wZXJhdGVzIGxpa2UgPGNvZGU+Jmx0O3R4cDppZl9jdXN0b21fZmllbGQg LyZndDs8L2NvZGU+PC9saT4KICA8bGk+c3VwcG9ydHMgPGNvZGU+Jmx0O3R4cDplbHNlIC8m Z3Q7PC9jb2RlPjwvbGk+CjwvdWw+Cgo8aDIgaWQ9InRhZ3MtYW5kLWF0dHJpYnV0ZXMiPlRh Z3MgYW5kIGF0dHJpYnV0ZXM8L2gyPgoKPGgzPiZsdDt0eHA6Y2JlX2lmX3ZhcmlhYmxlX2V4 aXN0cyZndDsgLi4uICZsdDsvdHhwOmNiZV9pZl92YXJpYWJsZV9leGlzdHMmZ3Q7PC9oMz4K PHA+VXNlZCBhcyBhIGNvbnRhaW5lci4gQ2hlY2tzIGZvciBleGlzdGVuY2Ugb25seS48L3A+ Cgo8dGFibGUgY2xhc3M9Imxpc3QiPgogIDx0cj4KICAgIDx0aD5BdHRyaWJ1dGUgKDxiPnJl cXVpcmVkPC9iPik8L3RoPiA8dGg+RGVzY3JpcHRpb24gYW5kIHZhbHVlczwvdGg+IDx0aD5F eGFtcGxlPC90aD4KICA8L3RyPgogIDx0cj4KICAgIDx0ZD48Y29kZT48Yj5uYW1lPC9iPjwv Y29kZT48L3RkPgogICAgPHRkPnZhcmlhYmxlIG5hbWU8L3RkPgogICAgPHRkPjxjb2RlPm5h bWU9Im15dmFyIjwvY29kZT48L3RkPgogIDwvdHI+CjwvdGFibGU+Cgo8aDM+Jmx0O3R4cDpj YmVfaWZfdmFyaWFibGVfZW1wdHkmZ3Q7IC4uLiAmbHQ7L3R4cDpjYmVfaWZfdmFyaWFibGVf ZW1wdHkmZ3Q7PC9oMz4KPHA+VXNlZCBhcyBhIGNvbnRhaW5lci4gQ2hlY2tzIGZvciBlbXB0 aW5lc3MuIEZvciBhIHJlbGV2YW50IHJlc3VsdCB0aGUgdmFyaWFibGUgbXVzdCBleGlzdCB0 aG91Z2ggdGhlIHBsdWdpbiB3b24ndCB3YXJuIGlmIG5vdDogaXQgd2lsbCBqdXN0IHJldHVy biA8Y29kZT5mYWxzZTwvY29kZT4uPC9wPgoKPHRhYmxlIGNsYXNzPSJsaXN0Ij4KICA8dHI+ CiAgICA8dGg+QXR0cmlidXRlICg8Yj5yZXF1aXJlZDwvYj4pPC90aD4gPHRoPkRlc2NyaXB0 aW9uIGFuZCB2YWx1ZXM8L3RoPiA8dGg+RXhhbXBsZTwvdGg+CiAgPC90cj4KICA8dHI+CiAg ICA8dGQ+PGNvZGU+PGI+bmFtZTwvYj48L2NvZGU+PC90ZD4KICAgIDx0ZD52YXJpYWJsZSBu YW1lPC90ZD4KICAgIDx0ZD48Y29kZT5uYW1lPSJteXZhciI8L2NvZGU+PC90ZD4KICA8L3Ry Pgo8L3RhYmxlPgoKPGgzPiZsdDt0eHA6Y2JlX2lmX3ZhcmlhYmxlJmd0OyAuLi4gJmx0Oy90 eHA6Y2JlX2lmX3ZhcmlhYmxlJmd0OzwvaDM+CjxwPlVzZWQgYXMgYSBjb250YWluZXIuIENo ZWNrcyBleGlzdGVuY2UsIG5vbiBlbXB0aW5lc3MsIGFuZCB2YWx1ZXMuPC9wPgoKPHRhYmxl IGNsYXNzPSJsaXN0Ij4KICA8dHI+CiAgICA8dGg+QXR0cmlidXRlIChib2xkIGlmIDxiPnJl cXVpcmVkPC9iPik8L3RoPiA8dGg+RGVzY3JpcHRpb24gYW5kIHZhbHVlczwvdGg+IDx0aD5F eGFtcGxlPC90aD4KICA8L3RyPgogIDx0cj4KICAgIDx0ZD48Y29kZT48Yj5uYW1lPC9iPjwv Y29kZT48L3RkPgogICAgPHRkPnZhcmlhYmxlIG5hbWU8L3RkPgogICAgPHRkPjxjb2RlPm5h bWU9Im15dmFyIjwvY29kZT48L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxjb2RlPnNl cGFyYXRvcjwvY29kZT48L3RkPgogICAgPHRkPnNlcGFyYXRvciB1c2VkIGluIHRoZSB2YXJp YWJsZSBpZiB5b3Ugd2FudCB0byBjb25zaWRlciBpdCBhcyBhIGxpc3Qgb2YgdmFsdWVzLiBE ZWZhdWx0cyB0byA8Y29kZT5kZWxpbTwvY29kZT4uPC90ZD4KICAgIDx0ZD48Y29kZT5zZXBh cmF0b3I9Ii8iPC9jb2RlPjwvdGQ+CiAgPC90cj4KICA8dHI+CiAgICA8dGQ+PGNvZGU+dmFs dWU8L2NvZGU+PC90ZD4KICAgIDx0ZD5saXN0IG9mIHZhbHVlcyB0byBsb29rIGludG8uPGJy IC8+SWYgb21taXR0ZWQsIGlnbm9yZXMgYWxsIG90aGVyIHBhcmFtZXRlcnMgYW5kIHJldHVy bnMgdHJ1ZSBpZiB0aGUgdmFyaWFibGUgaXMgZGVmaW5lZCBhbmQgaGFzIGEgdmFsdWUgKGku ZS4gcmV0dXJucyBmYWxzZSBpZiBub3QgZGVmaW5lZCBvciBpcyBlbXB0eSkuPC90ZD4KICAg IDx0ZD48Y29kZT52YWx1ZT0idmFsMSx2YWwyLHZhbDMiPC9jb2RlPjwvdGQ+CiAgPC90cj4K ICA8dHI+CiAgICA8dGQ+PGNvZGU+ZGVsaW08L2NvZGU+PC90ZD4KICAgIDx0ZD5kZWxpbWl0 ZXIgZm9yIHRoZSBsaXN0IG9mIHZhbHVlcywgZGVmYXVsdHMgdG8gY29tbWEgKDxjb2RlPiw8 L2NvZGU+KTwvdGQ+CiAgICA8dGQ+PGNvZGU+ZGVsaW09InwiPC9jb2RlPjwvdGQ+CiAgPC90 cj4KICA8dHI+CiAgICA8dGQ+PGNvZGU+bWF0Y2g8L2NvZGU+PC90ZD4KICAgIDx0ZD5ob3cg dG8gY29tcGFyZSwgZGVmYXVsdHMgdG8gPGNvZGU+YW55PC9jb2RlPgogICAgICAgIDxiciAv PjxiPmFueTwvYj46IGNoZWNrcyB0aGF0IGF0IGxlYXN0IG9uZSBvZiB0aGUgdmFyaWFibGUn cyB0ZXJtIGlzIHByZXNlbnQgYXQgYW55IHBsYWNlIGluIDxjb2RlPnZhbHVlPC9jb2RlPgog ICAgICAgIDxiciAvPjxiPmFsbDwvYj46IGNoZWNrcyB0aGF0IGVhY2ggdmFyaWFibGUncyB0 ZXJtIGFwcGVhcnMgYXQgYW55IHBsYWNlIGluIDxjb2RlPnZhbHVlPC9jb2RlPiAodGhpcyBp cyBub25yZWNpcHJvY2ljYWwpCiAgICAgICAgPGJyIC8+PGI+cGF0dGVybjwvYj46IHRyeSB0 byBtYXRjaCB0aGUgdmFyaWFibGUncyB2YWx1ZSB3aXRoIHRoZSByZWd1bGFyIGV4cHJlc3Np b24gZ2l2ZW4gaW4gPGNvZGU+dmFsdWU8L2NvZGU+LiA8Y29kZT5kZWxpbTwvY29kZT4gYW5k IDxjb2RlPnNlcGFyYXRvcjwvY29kZT4gYXJlIGlnbm9yZWQuCiAgICAgICAgPC90ZD4KICAg IDx0ZD48Y29kZT5tYXRjaD0iYWxsIjwvY29kZT48L3RkPgogIDwvdHI+CjwvdGFibGU+Cgo8 aDIgaWQ9ImV4YW1wbGVzIj5FeGFtcGxlczwvaDI+Cgo8dWw+CiAgPGxpPjxhIGhyZWY9IiNl eC1iYXNpYyI+QmFzaWMgdXNhZ2U8L2E+PC9saT4KICA8bGk+PGEgaHJlZj0iI2V4LWRlbGlt Ij5DaGFuZ2UgdGhlIGRlbGltaXRlcjwvYT48L2xpPgogIDxsaT48YSBocmVmPSIjZXgtcHJh Y3RpY2FsIj5QcmFjdGljYWwgYXBwbGljYXRpb248L2E+PC9saT4KPC91bD4KCjxoMyBpZD0i ZXgtYmFzaWMiPkJhc2ljIHVzYWdlPC9oMz4KPHByZT48Y29kZT4mbHQ7dHhwOmNiZV9pZl92 YXJpYWJsZSBuYW1lPSJteXZhciIgdmFsdWU9Im9uZSx0d28sdGhyZWUiJmd0OwogICZsdDtw Jmd0O1ZhcmlhYmxlIGNvbnRhaW5zIG9uZSwgb3IgdHdvLCBvciB0aHJlZSZsdDsvcCZndDsK Jmx0O3R4cDplbHNlIC8mZ3Q7CiAgJmx0O3A+VmFyaWFibGUgY29udGFpbnMgYW5vdGhlciB2 YWx1ZSZsdDsvcCZndDsKJmx0Oy90eHA6Y2JlX2lmX3ZhcmlhYmxlJmd0OzwvY29kZT48L3By ZT4KCjxwPi4uLiBzaG91bGQgYmUgc2VsZiBleHBsYW5hdG9yeS48L3A+Cgo8aDMgaWQ9ImV4 LWRlbGltIj5DaGFuZ2UgdGhlIGRlbGltaXRlcjwvaDM+CjxwcmU+PGNvZGU+Jmx0O3R4cDpj YmVfaWZfdmFyaWFibGUgbmFtZT0ibXl2YXIiIHZhbHVlPSJmb3VyfGZpdmV8c2l4IiBkZWxp bT0ifCImZ3Q7CiAgJmx0O3AmZ3Q7VmFyaWFibGUgY29udGFpbnMgZm91ciwgb3IgZml2ZSwg b3Igc2l4Jmx0Oy9wJmd0OwombHQ7dHhwOmVsc2UgLyZndDsKICAmbHQ7cD5WYXJpYWJsZSBj b250YWlucyBhbm90aGVyIHZhbHVlJmx0Oy9wJmd0OwombHQ7L3R4cDpjYmVfaWZfdmFyaWFi bGUmZ3Q7PC9jb2RlPjwvcHJlPgoKPHA+Li4uIHNob3VsZCBiZSBvYnZpb3VzIHRvby48L3A+ Cgo8aDMgaWQ9ImV4LXByYWN0aWNhbCI+UHJhY3RpY2FsIGFwcGxpY2F0aW9uPC9oMz4KPHBy ZT48Y29kZT4mbHQ7dHhwOnZhcmlhYmxlIG5hbWU9InB1YmxpYy1zZWN0aW9ucyIgdmFsdWU9 IixhYm91dCxjb250YWN0IiAvJmd0OwombHQ7dHhwOmFydGljbGUmZ3Q7CiAgJmx0O3R4cDp2 YXJpYWJsZSBuYW1lPSJhcnRpY2xlLXNlY3Rpb24iIHZhbHVlPScmbHQ7dHhwOnNlY3Rpb24g LyZndDsnIC8mZ3Q7CiAgJmx0O3R4cDpjYmVfaWZfdmFyaWFibGUgbmFtZT0iYXJ0aWNsZS1z ZWN0aW9uIiB2YWx1ZT0nJmx0O3R4cDp2YXJpYWJsZSBuYW1lPSJwdWJsaWMtc2VjdGlvbnMi IC8mZ3Q7JyZndDsKICAgIC4uLiBkaXNwbGF5IHRoZSBhcnRpY2xlIC4uLgogICZsdDt0eHA6 ZWxzZSAvJmd0OwogICAgLi4uIGRpc3BsYXkgc29tZXRoaW5nIGVsc2UsIG9yIGRvIG5vdGhp bmcgLi4uCiAgJmx0Oy90eHA6Y2JlX2lmX3ZhcmlhYmxlJmd0OwombHQ7L3R4cDphcnRpY2xl Jmd0OzwvY29kZT48L3ByZT4KCjxwPkRpc3BsYXkgYW4gYXJ0aWNsZSBpZiBpdCBiZWxvbmdz IHRvIGFuIGF1dGhvcml6ZWQgc2VjdGlvbi48L3A+Cgo8aDIgaWQ9InN1bW1hcnkiPlN1bW1h cnk8L2gyPgo8cD5IZXJlIGlzIHdoYXQgdGhlIHRocmVlIHRhZ3MgcmV0dXJuIGluIHZhcmlv dXMgc2l0dWF0aW9ucyAoc2ltcGxpZmllZCBzeW50YXgpIDo8L3A+Cgo8cHJlPjxjb2RlPjxi Pihub3RoaW5nKTwvYj4KY2JlX2lmX3ZhcmlhYmxlX2V4aXN0cyBuYW1lPSJteXZhciIgLi4g RkFMU0UKY2JlX2lmX3ZhcmlhYmxlX2VtcHR5IG5hbWU9Im15dmFyIiAuLi4gRkFMU0UKY2Jl X2lmX3ZhcmlhYmxlIG5hbWU9Im15dmFyIiAuLi4uLi4uLi4gRkFMU0UKCj09PT09PT09PT09 PT09PT09PT0KCjxiPiZsdDt0eHA6dmFyaWFibGUgbmFtZT0ibXl2YXIiJmd0OyZsdDsvdHhw OnZhcmlhYmxlJmd0OyBvciAmbHQ7dHhwOnZhcmlhYmxlIG5hbWU9Im15dmFyIiB2YWx1ZT0i IiAvJmd0OzwvYj4KY2JlX2lmX3ZhcmlhYmxlX2V4aXN0cyBuYW1lPSJteXZhciIgLi4uLi4u Li4uLi4uLiBUUlVFCmNiZV9pZl92YXJpYWJsZV9lbXB0eSBuYW1lPSJteXZhciIgLi4uLi4u Li4uLi4uLi4gVFJVRQpjYmVfaWZfdmFyaWFibGUgbmFtZT0ibXl2YXIiIC4uLi4uLi4uLi4u Li4uLi4uLi4uIEZBTFNFCmNiZV9pZl92YXJpYWJsZSBuYW1lPSJteXZhciIgdmFsdWU9IiIg Li4uLi4uLi4uLi4gVFJVRQpjYmVfaWZfdmFyaWFibGUgbmFtZT0ibXl2YXIiIHZhbHVlPSJ3 aGF0ZXZlciIgLi4uIEZBTFNFCmNiZV9pZl92YXJpYWJsZSBuYW1lPSJteXZhciIgdmFsdWU9 Iix3aGF0ZXZlciIgLi4gVFJVRQoKPT09PT09PT09PT09PT09PT09PQoKPGI+Jmx0O3R4cDp2 YXJpYWJsZSBuYW1lPSJteXZhciIgdmFsdWU9InNvbWV0aGluZyIgLyZndDs8L2I+CmNiZV9p Zl92YXJpYWJsZV9leGlzdHMgbmFtZT0ibXl2YXIiIC4uIFRSVUUKY2JlX2lmX3ZhcmlhYmxl X2VtcHR5IG5hbWU9Im15dmFyIiAuLi4gRkFMU0UKY2JlX2lmX3ZhcmlhYmxlIG5hbWU9Im15 dmFyIiAuLi4uLi4uLi4gVFJVRQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBtYXRjaCA9ICJhbnkiICAgICAiYWxsIgpjYmVfaWZfdmFyaWFibGUg bmFtZT0ibXl2YXIiIHZhbHVlPSIiIC4uLi4uLi4uLi4uLi4uLi4uIEZBTFNFIC4uLiBGQUxT RQpjYmVfaWZfdmFyaWFibGUgbmFtZT0ibXl2YXIiIHZhbHVlPSJzb21ldGhpbmciIC4uLi4u Li4uIFRSVUUgLi4uLiBUUlVFCmNiZV9pZl92YXJpYWJsZSBuYW1lPSJteXZhciIgdmFsdWU9 InNvbWV0aGluZyxvdGhlciIgLi4gVFJVRSAuLi4uIFRSVUUKY2JlX2lmX3ZhcmlhYmxlIG5h bWU9Im15dmFyIiB2YWx1ZT0iYW55dGhpbmcsb3RoZXIiIC4uLiBGQUxTRSAuLi4gRkFMU0UK Cj09PT09PT09PT09PT09PT09PT0KCjxiPiZsdDt0eHA6dmFyaWFibGUgbmFtZT0ibXl2YXIi IHZhbHVlPSJvdGhlciwgc29tZXRoaW5nIiAvJmd0OzwvYj4KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggPSAiYW55IiAgICAgImFsbCIK Y2JlX2lmX3ZhcmlhYmxlIG5hbWU9Im15dmFyIiB2YWx1ZT0iIiAuLi4uLi4uLi4uLi4uLi4u LiBGQUxTRSAuLi4gRkFMU0UKY2JlX2lmX3ZhcmlhYmxlIG5hbWU9Im15dmFyIiB2YWx1ZT0i c29tZXRoaW5nIiAuLi4uLi4uLiBUUlVFIC4uLi4gRkFMU0UKYnV0IDogY2JlX2lmX3Zhcmlh YmxlIG5hbWU9Im15dmFyIiB2YWx1ZT0ic29tZXRoaW5nIiBzZXBhcmF0b3I9InwiIGlzIEZB TFNFCmNiZV9pZl92YXJpYWJsZSBuYW1lPSJteXZhciIgdmFsdWU9InNvbWV0aGluZyxvdGhl ciIgLi4gVFJVRSAuLi4uIFRSVUUKY2JlX2lmX3ZhcmlhYmxlIG5hbWU9Im15dmFyIiB2YWx1 ZT0ib3RoZXIiIC4uLi4uLi4uLi4uLiBUUlVFIC4uLi4gRkFMU0UKY2JlX2lmX3ZhcmlhYmxl IG5hbWU9Im15dmFyIiB2YWx1ZT0iYW55dGhpbmcsb3RoZXIiIC4uLiBUUlVFIC4uLi4gRkFM U0UKCj09PT09PT09PT09PT09PT09PT0KCjxiPiZsdDt0eHA6dmFyaWFibGUgbmFtZT0icGhy YXNlIiB2YWx1ZT0iaGVyZSwgdGhlcmUgYW5kIGV2ZXJ5d2hlcmUiIC8mZ3Q7PC9iPgpjYmVf aWZfdmFyaWFibGUgbmFtZT0icGhyYXNlIiB2YWx1ZT0iaGVyZSwgdGhlcmUgYW5kIGV2ZXJ5 d2hlcmUiIC4uLi4uLi4uLi4uIFRSVUUKY2JlX2lmX3ZhcmlhYmxlIG5hbWU9InBocmFzZSIg dmFsdWU9ImhlcmUsIHRoZXJlIGFuZCBldmVyeXdoZXJlIiBkZWxpbT0iIiAuLiBUUlVFCmNi ZV9pZl92YXJpYWJsZSBuYW1lPSJwaHJhc2UiIHZhbHVlPSJoZXJlIHRoZXJlIGFuZCBldmVy eXdoZXJlIiAuLi4uLi4uLi4uLi4gRkFMU0UKY2JlX2lmX3ZhcmlhYmxlIG5hbWU9InBocmFz ZSIgdmFsdWU9ImhlcmUgdGhlcmUgYW5kIGV2ZXJ5d2hlcmUiIGRlbGltPSIiIC4uLiBGQUxT RQpjYmVfaWZfdmFyaWFibGUgbmFtZT0icGhyYXNlIiB2YWx1ZT0iaGVyZSB0aGVyZSBhbmQg ZXZlcnl3aGVyZSIgZGVsaW09Ii8iIC4uIEZBTFNFCmNiZV9pZl92YXJpYWJsZSBuYW1lPSJw aHJhc2UiIHZhbHVlPSJ0aGVyZSIgbWF0Y2g9InBhdHRlcm4iIC4uLi4uLi4uLi4uLi4uLi4g VFJVRQpjYmVfaWZfdmFyaWFibGUgbmFtZT0icGhyYXNlIiB2YWx1ZT0iXnRoZXJlIiBtYXRj aD0icGF0dGVybiIgLi4uLi4uLi4uLi4uLi4uIEZBTFNFCjwvY29kZT48L3ByZT4KCjxoMiBp ZD0iY2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2gyPgoKPHVsPgogIDxsaT4wMSBKdWwgMTEgLSB2 MC4yIC0KPGJyIC8+Im1hdGNoIiBhdHRyaWJ1dGUgYWRkZWQsIHRoYW5rcyA8YSBocmVmPSJo dHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29tL3Byb2ZpbGUucGhwP2lkPTE1MTQ3Ij5zYWNy aXBhbnQ8L2E+ICEKPGJyIC8+ZG9uJ3QgcmVpbnZlbnQgdGhlIHdoZWVsIGFuZCB1c2UgZXhp c3RpbmcgY29kZQo8YnIgLz5hZGRlZCBleGFtcGxlcwo8L2xpPgogIDxsaT4zMCBKdW4gMTEg LSB2MC4xLjEgLSBFeGFtcGxlIGZpeDwvbGk+CiAgPGxpPjI5IEp1biAxMSAtIHYwLjEgLSBJ bml0aWFsIHJlbGVhc2U8L2xpPgo8L3VsPgoKPC9kaXY+CjwhLS0gKioqIEJFR0lOIFBMVUdJ TiBDU1MgKioqIC0tPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoubGlzdCB0aHsKCXRleHQt YWxpZ246bGVmdDsKCWNvbG9yOiNmZmY7CgliYWNrZ3JvdW5kOiM1NTU7CglwYWRkaW5nOjZw eCAxNnB4IDZweCA0cHg7Cglib3JkZXItcmlnaHQ6MXB4IHNvbGlkICM5OTk7Cglmb250LXdl aWdodDpub3JtYWw7Cn0KLmxpc3QgdGggYXsKCWNvbG9yOiNmZmY7CglkaXNwbGF5OmJsb2Nr Owp9Ci5saXN0IHRoIGgyewoJbWFyZ2luOjA7Cglmb250LXNpemU6MTFweDsKfQoubGlzdCB0 ZHsKCXBhZGRpbmc6NnB4IDRweDsKfQo8L3N0eWxlPgo8IS0tICoqKiBFTkQgUExVR0lOIENT UyAqKiogLS0+CiI7czo0OiJjb2RlIjtzOjQyNjE6Ii8qDQoqKiBjYmVfaWZfdmFyaWFibGUg djAuMg0KKiogQ2xhaXJlIEJyaW9uZSAtIGh0dHA6Ly93d3cuY2xhaXJlYnJpb25lLmNvbS8N CioqDQoqKiAwLjEgLSAyOSBKdW4gMjAxMSAtIEluaXRpYWwgcmVsZWFzZQ0KKiogMC4xLjEg MzAgSnVuIDIwMTEgLSBFeGFtcGxlIGZpeA0KKiogMC4yIC0gMDEgSnVsIDIwMTEgLSAibWF0 Y2giIGF0dHJpYnV0ZSBhZGRlZCwgdGhhbmtzIHNhY3JpcGFudCAhDQoqKiAgICAgICAgICAg ICAgICAgICAgIGRvbid0IHJlaW52ZW50IHRoZSB3aGVlbCBhbmQgdXNlIGV4aXN0aW5nIGNv ZGUNCioqICAgICAgICAgICAgICAgICAgICAgYWRkZWQgZXhhbXBsZXMNCioqDQogKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLw0KDQovKg0KKiogdG9vbCBmdW5jdGlvbnMNCiovDQpmdW5jdGlvbiBf Y2JlX2Fzc2VydF92YXJpYWJsZSggJG5hbWUgKQ0Kew0KICAgIGlmKCBlbXB0eSggJG5hbWUg KSApDQogICAgew0KICAgICAgICB0cmlnZ2VyX2Vycm9yKGdUeHQoJ3ZhcmlhYmxlX25hbWVf ZW1wdHknKSk7DQogICAgICAgIHJldHVybiggZmFsc2UgKSA7DQogICAgfQ0KDQogICAgcmV0 dXJuKCB0cnVlICkgOw0KfQ0KDQpmdW5jdGlvbiBfY2JlX2RvX2FycmF5KCAkdmFsLCAkc2Vw ICkNCnsNCiAgICByZXR1cm4oICRzZXAgIT09JycgPyBkb19saXN0KCAkdmFsLCAkc2VwICkg OiBhcnJheSggdHJpbSggJHZhbCApICkgKSA7DQp9DQoNCmZ1bmN0aW9uIF9jYmVfaWZ2YXJf bWF0Y2hfYW55KCAkcGFyYW1zICkNCnsgICAvKiBBTlkgOiBzZWFyY2ggYXQgbGVhc3Qgb25l ICJuZWVkbGUiIHRlcm0gaW4gInZhbHVlIiBhdCBhbnkgcGxhY2UgKi8NCiAgICBleHRyYWN0 KCAkcGFyYW1zICkgOw0KICAgIHJldHVybiggY291bnQoIGFycmF5X2ludGVyc2VjdCggX2Ni ZV9kb19hcnJheSggJG5lZWRsZSwgJHNlcGFyYXRvciApDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLCBfY2JlX2RvX2FycmF5KCAkdmFsdWUgLCAkZGVsaW0gKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgKSA+IDAgKSA7DQp9DQoNCmZ1bmN0 aW9uIF9jYmVfaWZ2YXJfbWF0Y2hfYWxsKCAkcGFyYW1zICkNCnsgICAvKiBBTEwgOiBzZWFy Y2ggYWxsICJuZWVkbGUiIHRlcm1zIGluICJ2YWx1ZSIgYXQgYW55IHBsYWNlLCBub25yZWNp cHJvY2ljYWwgKi8NCiAgICBleHRyYWN0KCAkcGFyYW1zICkgOw0KICAgICRhTmVlZGxlcyA9 IF9jYmVfZG9fYXJyYXkoICRuZWVkbGUsICRzZXBhcmF0b3IgKSA7DQogICAgcmV0dXJuKCBj b3VudCggYXJyYXlfaW50ZXJzZWN0KCAkYU5lZWRsZXMsIF9jYmVfZG9fYXJyYXkoICR2YWx1 ZSwgJGRlbGltICkgKSApID09IGNvdW50KCAkYU5lZWRsZXMgKSApIDsNCn0NCg0KZnVuY3Rp b24gX2NiZV9pZnZhcl9tYXRjaF9wYXR0ZXJuKCAkcGFyYW1zICkNCnsgICAvKiBQQVRURVJO IChyZWdleHApIDogdHJ5IHRvIG1hdGNoICJuZWVkbGUiIHRlcm0gd2l0aCAidmFsdWUiIHJl Z2V4cCAqLw0KICAgIC8qIGZyb20gcHVibGlzaC90YWdoYW5kbGVycy5waHAgaWZfY3VzdG9t X2ZpZWxkKCkgKi8NCiAgICBleHRyYWN0KCAkcGFyYW1zICkgOw0KICAgICRkbG1Qb29sID0g YXJyYXkoJy8nLCAnQCcsICcjJywgJ34nLCAnYCcsICd8JywgJyEnLCAnJScpOw0KICAgICRk bG0gPSBhcnJheV9tZXJnZShhcnJheV9kaWZmKCRkbG1Qb29sLCBwcmVnX3NwbGl0KCcvLycs ICR2YWx1ZSwgLTEpKSk7DQogICAgJGRsbSA9IChjb3VudCgkZGxtKSA+IDApID8gJGRsbVsw XS4kdmFsdWUuJGRsbVswXSA6ICR2YWx1ZTsNCiAgICByZXR1cm4oIHByZWdfbWF0Y2goJGRs bSwgJG5lZWRsZSkgKSA7DQp9DQoNCi8qDQoqKiBjYmVfaWZfdmFyaWFibGUNCioqIGZhbHNl IGlmIHRoZSB2YXJpYWJsZSBkb2Vzbid0IGV4aXN0ICh1bnNldCkgb3IgaGFzIG5vIHZhbHVl IChlbXB0eSkgb3IgaXMgbm9uZSBvZiB0aGUgdmFsdWVzIHByb3ZpZGVkDQoqKiB0cnVlIGlu IG90aGVyIGNhc2VzLA0KKiogICAgICAgICAgICAgYWN0cyBsaWtlIGlmX3ZhcmlhYmxlIG9y IGlmX2N1c3RvbV9maWVsZCBkZXBlbmRpbmcgb24gbWF0Y2hpbmcgdHlwZSBhbmQgY29tcGFy YXRlZCB2YWx1ZXMNCiovDQpmdW5jdGlvbiBjYmVfaWZfdmFyaWFibGUoJGF0dHMsICR0aGlu ZyA9IE5VTEwpDQp7DQogICAgZ2xvYmFsICR2YXJpYWJsZTsNCiAgICAkb3B0aW9ucyA9ICdh bGwsIGFueSwgcGF0dGVybicgOw0KDQogICAgZXh0cmFjdChsQXR0cyhhcnJheSgNCiAgICAg ICAgJ25hbWUnICAgICAgPT4gJycsDQogICAgICAgICd2YWx1ZScgICAgID0+ICcnLA0KICAg ICAgICAnZGVsaW0nICAgICA9PiAnLCcsDQogICAgICAgICdtYXRjaCcgICAgID0+ICdhbnkn LA0KICAgICAgICAnc2VwYXJhdG9yJyA9PiAnZGVsaW0nDQogICAgKSwgJGF0dHMpKTsNCg0K ICAgIGlmKCAhIF9jYmVfYXNzZXJ0X3ZhcmlhYmxlKCAkbmFtZSApICkNCiAgICAgICAgcmV0 dXJuIDsNCg0KICAgICRzZXBhcmF0b3IgPSAoJHNlcGFyYXRvciA9PSAnZGVsaW0nICkgPyAk ZGVsaW0gOiAkc2VwYXJhdG9yIDsNCg0KICAgIGlmKCBpc3NldCggJHZhcmlhYmxlWyRuYW1l XSApICkNCiAgICB7DQogICAgICAgIGlmKCAhIGlzc2V0KCAkYXR0c1sndmFsdWUnXSApICkN CiAgICAgICAgICAgICR4ID0gISBlbXB0eSggJHZhcmlhYmxlWyRuYW1lXSApIDsNCiAgICAg ICAgZWxzZQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiggISBfY2JlX2lmdmFyX21hdGNo X2FueSggYXJyYXkoICduZWVkbGUnID0+ICRtYXRjaCwgJ3ZhbHVlJyA9PiAkb3B0aW9ucywg J2RlbGltJyA9PiAnLCcsICdzZXBhcmF0b3InID0+ICcnICkgKSApDQogICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgdHJpZ2dlcl9lcnJvcihnVHh0KCdpbnZhbGlkX2F0dHJpYnV0 ZV92YWx1ZScsIGFycmF5KCd7bWF0Y2h9JyA9PiAkbWF0Y2gpKSk7DQogICAgICAgICAgICAg ICAgcmV0dXJuKCBmYWxzZSApIDsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgJG5l ZWRsZSA9ICR2YXJpYWJsZVskbmFtZV0gOw0KICAgICAgICAgICAgJHggPSBjYWxsX3VzZXJf ZnVuYyggJ19jYmVfaWZ2YXJfbWF0Y2hfJy4kbWF0Y2gNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAsICRtYXRjaCA9PSAncGF0dGVybicNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA/IGNvbXBhY3QoICJuZWVkbGUiLCAidmFsdWUiICkN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbXBhY3QoICJuZWVk bGUiLCAidmFsdWUiLCAic2VwYXJhdG9yIiwgImRlbGltIiApDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKSA7DQogICAgICAgIH0NCiAgICB9DQogICAgZWxzZQ0K ICAgICAgICAkeCA9IGZhbHNlIDsNCg0KICAgIHJldHVybiBwYXJzZSggRXZhbEVsc2UoICR0 aGluZywgJHggKSApIDsNCn0NCg0KLyoNCioqIGNiZV9pZl92YXJpYWJsZV9lbXB0eQ0KKiog dHJ1ZSBpZiBhIHZhcmlhYmxlIGlzIGRlZmluZWQgQU5EIGhhcyBhIG5vIHZhbHVlDQoqLw0K ZnVuY3Rpb24gY2JlX2lmX3ZhcmlhYmxlX2VtcHR5KCRhdHRzLCAkdGhpbmcgPSBOVUxMKQ0K ew0KICAgIGdsb2JhbCAkdmFyaWFibGU7DQogICAgZXh0cmFjdChsQXR0cyhhcnJheSgNCiAg ICAgICAgJ25hbWUnICAgID0+ICcnDQogICAgKSwgJGF0dHMpKTsNCg0KICAgIGlmKCAhIF9j YmVfYXNzZXJ0X3ZhcmlhYmxlKCAkbmFtZSApICkNCiAgICAgICAgcmV0dXJuIDsNCg0KICAg IHJldHVybiBwYXJzZSggRXZhbEVsc2UoICR0aGluZywgaXNzZXQoICR2YXJpYWJsZVskbmFt ZV0gKSAmJiBlbXB0eSggJHZhcmlhYmxlWyRuYW1lXSApICkgKSA7DQp9DQoNCi8qDQoqKiBj YmVfaWZfdmFyaWFibGVfZXhpc3RzDQoqKiB0cnVlIGlmIGEgdmFyaWFibGUgaXNuJ3QgZGVm aW5lZA0KKi8NCmZ1bmN0aW9uIGNiZV9pZl92YXJpYWJsZV9leGlzdHMoJGF0dHMsICR0aGlu ZyA9IE5VTEwpDQp7DQogICAgZ2xvYmFsICR2YXJpYWJsZTsNCiAgICBleHRyYWN0KGxBdHRz KGFycmF5KA0KICAgICAgICAnbmFtZScgICAgPT4gJycNCiAgICApLCAkYXR0cykpOw0KDQog ICAgaWYoICEgX2NiZV9hc3NlcnRfdmFyaWFibGUoICRuYW1lICkgKQ0KICAgICAgICByZXR1 cm4gOw0KDQogICAgcmV0dXJuIHBhcnNlKCBFdmFsRWxzZSggJHRoaW5nLCBpc3NldCggJHZh cmlhYmxlWyRuYW1lXSApICkgKSA7DQp9DQoiO3M6NDoidHlwZSI7czoxOiIwIjtzOjU6ImZs YWdzIjtzOjE6IjAiO3M6NToib3JkZXIiO3M6MToiNSI7czozOiJtZDUiO3M6MzI6ImJlY2Rk NzNjMGZkMTRkNGNkOGM0ODg2YzNkZDgzYzFlIjt9