# Name: smd_random_text v0.12 # Type: Client side plugin # Random text from file, database, string or TXP field/variable # Author: Stef Dawson # URL: http://stefdawson.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: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjE1OiJzbWRfcmFuZG9tX3RleHQiO3M6NjoiYXV0aG9yIjtz OjExOiJTdGVmIERhd3NvbiI7czoxMDoiYXV0aG9yX3VyaSI7czoyMjoiaHR0cDovL3N0ZWZk YXdzb24uY29tLyI7czo3OiJ2ZXJzaW9uIjtzOjQ6IjAuMTIiO3M6MTE6ImRlc2NyaXB0aW9u IjtzOjYxOiJSYW5kb20gdGV4dCBmcm9tIGZpbGUsIGRhdGFiYXNlLCBzdHJpbmcgb3IgVFhQ IGZpZWxkL3ZhcmlhYmxlIjtzOjQ6ImhlbHAiO3M6MTQxMjA6IjxkaXYgaWQ9InNtZF9oZWxw Ij4KCgk8aDE+c21kX3JhbmRvbV90ZXh0PC9oMT4KCgk8cD5DaG9vc2UgcmFuZG9tIHRleHQg c3RyaW5ncyBmcm9tIGEgdmFyaWV0eSBvZiBzb3VyY2VzLiBDb3VsZCBiZSB1c2VkIGFzIGEg cXVvdGUtb2YtdGhlLWRheSBzeXN0ZW0sIHJhbmRvbSB0YWcgbGluZXMsIG9yIHNvbWV0aGlu ZyBtb3JlIGVsYWJvcmF0ZS48L3A+CgoJPGgyPkZlYXR1cmVzPC9oMj4KCgk8dWw+CgkJPGxp PlB1bGwgdGhlIGl0ZW0gbGlzdCBmcm9tIGVpdGhlcjogYSBnaXZlbiBkZWxpbWl0ZWQgc3Ry aW5nLCBhIGZpbGUsIGEgZGF0YWJhc2UgY29sdW1uLCBhIDxjb2RlPiZsdDt0eHA6dmFyaWFi bGUgLyZndDs8L2NvZGU+LCB1c2VyLXN1Ym1pdHRlZCBmb3JtIGRhdGEsIG9yIGEgVGV4dHBh dHRlcm4gZmllbGQ8L2xpPgoJCTxsaT5HcmFiIGFzIG1hbnkgcmFuZG9tIGl0ZW1zIGFzIHlv dSBsaWtlIGZyb20geW91ciBjaG9zZW4gbGlzdDwvbGk+CgkJPGxpPlBhc3MgZWFjaCB0byBh IGZvcm0vdGhlIGNvbnRhaW5lciBpZiB5b3Ugd2lzaCB0byBmb3JtYXQgdGhlbTwvbGk+Cgk8 L3VsPgoKCTxoMj5BdXRob3I8L2gyPgoKCTxwPjxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29u LmNvbS9jb21tZW50Rm9ybSI+U3RlZiBEYXdzb248L2E+LiBDb21iaW5lcyBpZGVhcyBmcm9t IGRydV9yYW5kb21fdGV4dCBieSBEcmV3IE1jTGVsbGFuIGFuZCBzaW1wbGVfcmFuZG9tX3Rl eHQgYnkgTWFudWVsIEViZXJ0LCBwbHVzIHNvbWUgc3ByaW5rbGluZ3Mgb2YgbXkgb3duLiBN YW55IHRoYW5rcyB0byB0aGUgYXV0aG9ycyBvZiB0aG9zZSB3b3Jrcy48L3A+CgoJPGgyPklu c3RhbGxhdGlvbiAvIFVuaW5zdGFsbGF0aW9uPC9oMj4KCgk8cD5Eb3dubG9hZCB0aGUgcGx1 Z2luIGZyb20gZWl0aGVyIDxhIGhyZWY9Imh0dHA6Ly90ZXh0cGF0dGVybi5vcmcvcGx1Z2lu cy8xMDIyL3NtZF9yYW5kb21fdGV4dCI+dGV4dHBhdHRlcm4ub3JnPC9hPiwgb3IgdGhlIDxh IGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9zdyI+c29mdHdhcmUgcGFnZTwvYT4sIHBh c3RlIHRoZSBjb2RlIGludG8gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IEFk bWluIC0mZ3Q7IFBsdWdpbnMgcGFuZSwgaW5zdGFsbCBhbmQgZW5hYmxlIHRoZSBwbHVnaW4u IFZpc2l0IHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0 b3BpYy5waHA/cGlkPTE5MDY3NSI+Zm9ydW0gdGhyZWFkPC9hPiBmb3IgbW9yZSBpbmZvIG9y IHRvIHJlcG9ydCBvbiB0aGUgc3VjY2VzcyBvciBvdGhlcndpc2Ugb2YgdGhlIHBsdWdpbi48 L3A+CgoJPHA+VG8gdW5pbnN0YWxsLCBzaW1wbHkgZGVsZXRlIGZyb20gdGhlIEFkbWluIC0m Z3Q7IFBsdWdpbnMgcGFnZS48L3A+CgoJPGgyPlVzYWdlPC9oMj4KCgk8cD5Vc2UgdGhlIHRh ZyBpbiBhbnkgcGFnZSwgZm9ybSBvciBhcnRpY2xlL2ZpbGUvaW1hZ2UvbGluayBjb250ZXh0 LjwvcD4KCgk8aDMgY2xhc3M9InRhZyI+c21kX3JhbmRvbV90ZXh0PC9oMz4KCgk8cCBjbGFz cz0idGFnLXN1bW1hcnkiPlRoZXJlIGFyZSB0d28gbWFuZGF0b3J5IGF0dHJpYnV0ZXM6IDxj b2RlPnR5cGU8L2NvZGU+IGFuZCA8Y29kZT5zb3VyY2U8L2NvZGU+LiBUaGUgb3RoZXJzIGFy ZSB1c2VkIHRvIGNvbnRyb2wgaG93IHRoZSBpbmZvcm1hdGlvbiBpcyBleHRyYWN0ZWQgYW5k L29yIHByZXNlbnRlZC48L3A+CgoJPGg0IGNsYXNzPSJhdHRzICIgaWQ9ImF0dHJpYnV0ZXMi PkF0dHJpYnV0ZXM8L2g0PgoKCTx1bD4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0gbWFuZCI+ dHlwZTwvc3Bhbj4gOiB3aGVyZSB0byBsb29rIGZvciB0aGUgcG9vbCBvZiB0ZXh0IHN0cmlu Z3MuIENhbiBiZSBvbmUgb2YgPGNvZGU+c3RyaW5nPC9jb2RlPiAodGhlIGRlZmF1bHQpLCA8 Y29kZT5maWVsZDwvY29kZT4sIDxjb2RlPnR4cHZhcjwvY29kZT4sIDxjb2RlPnVybHZhcjwv Y29kZT4sIDxjb2RlPmRhdGFiYXNlPC9jb2RlPiwgb3IgPGNvZGU+ZmlsZTwvY29kZT48L2xp PgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSBtYW5kIj5zb3VyY2U8L3NwYW4+IDogZnVydGhl ciByZWZpbmVtZW50IG9mIHdoZXJlIHRvIGZpbmQgdGhlIHN0cmluZ3MgdXNpbmcgdGhlIGZv bGxvd2luZyBydWxlczoKCTx1bD4KCQk8bGk+PHNwYW4+c3RyaW5nPC9zcGFuPiA6IGEgZGVs aW1pdGVkIGxpc3Qgb2YgdGV4dCAoZS5nLiA8Y29kZT5zb3VyY2U9JnF1b3Q7bXl8Y3JhY2tp bmd8d29yZHN8b2Z8dGhlfGRheXxpbiBhIG5hdHR5IGxpdHRsZXxsaXN0JnF1b3Q7PC9jb2Rl Pik8L2xpPgoJCTxsaT48c3Bhbj5maWVsZDwvc3Bhbj4gOiB0aGUgbmFtZSBvZiB0aGUgVGV4 dHBhdHRlcm4gZmllbGQgdG8gbG9vayBpbiAoZS5nLiA8Y29kZT5zb3VyY2U9JnF1b3Q7YXJ0 aWNsZV9pbWFnZSZxdW90OzwvY29kZT4gb3IgPGNvZGU+c291cmNlPSZxdW90O215X2N1c3Rv bV9maWVsZF9uYW1lJnF1b3Q7PC9jb2RlPik8L2xpPgoJCTxsaT48c3Bhbj50eHB2YXI8L3Nw YW4+IDogdGhlIG5hbWUgb2YgYSA8Y29kZT4mbHQ7dHhwOnZhcmlhYmxlIC8mZ3Q7PC9jb2Rl PiB0aGF0IGhhcyBiZWVuIGRlZmluZWQgaW4gKGUuZy4gPGNvZGU+c291cmNlPSZxdW90O215 X2xpc3QmcXVvdDs8L2NvZGU+KTwvbGk+CgkJPGxpPjxzcGFuPnVybHZhcjwvc3Bhbj4gOiB0 aGUgbmFtZSBvZiBhIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHZhcmlhYmxlICh2 aWEgPHNwYW4gY2xhc3M9ImNhcHMiPkdFVDwvc3Bhbj4gb3IgPHNwYW4gY2xhc3M9ImNhcHMi PlBPU1Q8L3NwYW4+KSB0aGF0IHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBwYWdlIChlLmcuIDxj b2RlPnNvdXJjZT0mcXVvdDtwcm9wZXJ0eV9saXN0JnF1b3Q7PC9jb2RlPik8L2xpPgoJCTxs aT48c3Bhbj5kYXRhYmFzZTwvc3Bhbj4gOiB0aGUgdGFibGUgYW5kIGNvbHVtbiBuYW1lLCBz ZXBhcmF0ZWQgYnkgPGNvZGU+ZGVsaW08L2NvZGU+IChlLmcuIDxjb2RlPnNvdXJjZT0mcXVv dDt0eHBfY2F0ZWdvcnl8dGl0bGUmcXVvdDs8L2NvZGU+KTwvbGk+CgkJPGxpPjxzcGFuPmZp bGU8L3NwYW4+IDogYSBmaWxlIG5hbWUgcmVsYXRpdmUgdG8gdGhlIHJvb3Qgb2YgeW91ciBz aXRlLCB3aXRoIG9yIHdpdGhvdXQgbGVhZGluZyBzbGFzaCAoZS5nLiA8Y29kZT5zb3VyY2U9 JnF1b3Q7ZmlsZXMvbXlfc3RyaW5ncy50eHQmcXVvdDs8L2NvZGU+KTwvbGk+Cgk8L3VsPjwv bGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5kZWxpbTwvc3Bhbj4gOiB0aGUgZGVsaW1p dGVyIHRvIHVzZSBiZXR3ZWVuIHdvcmRzL2F0dHJpYnV0ZSBvcHRpb25zLiBEZWZhdWx0OiBw aXBlIDxjb2RlPnw8L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmZpbGVf ZGVsaW08L3NwYW4+IDogdGhlIGRlbGltaXRlciB0byB1c2Ugd2hlbiBwYXJzaW5nIGZpbGVz LiBJZiBlYWNoIHdvcmQgb3IgcGhyYXNlIGlzIG9uIGl0cyBvd24gbGluZSB0aGVuIHRoZSBk ZWZhdWx0IG5ld2xpbmUgKDxjb2RlPlxuPC9jb2RlPikgaXMgc3VmZmljaWVudC4gSWYgeW91 IHdpc2ggdG8gaGF2ZSBhbGwgeW91ciB0ZXh0IHN0cmluZ3Mgb24gb25lIGxpbmUgb2YgdGhl IGZpbGUgZGVsaW1pdGVkIGJ5IHNvbWUgb3RoZXIgY2hhcmFjdGVyLCBzZXQgeW91ciBvd24g ZGVsaW1pdGVyIGhlcmU8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+bGltaXQ8L3Nw YW4+IDogdGhlIG51bWJlciBvZiBpdGVtcyB0byBwdWxsIGZyb20gdGhlIGxpc3QuIERlZmF1 bHRzIHRvIDEuIElmIHlvdSBzcGVjaWZ5IG1vcmUgdGhhbiB0aGUgYXZhaWxhYmxlIG51bWJl ciBvZiBpdGVtcyBpbiB0aGUgcG9vbCwgdGhlIGVudGlyZSBwb29sIHdpbGwgYmUgdXNlZCBh bmQgcHJlc2VudGVkIGluIGEgcmFuZG9tIG9yZGVyPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9 ImF0bm0iPml0ZW1fbnVtPC9zcGFuPiA6IHNob3cgdGhpcyBwYXJ0aWN1bGFyIGl0ZW0gZnJv bSB0aGUgcG9vbC4gSWYgaXQgZG9lc24mIzgyMTc7dCBleGlzdCwgeW91IGdldCB0aGUgZmly c3QgaXRlbS4gQnV0IHdhaXQ/ISBUaGlzIGlzIGEgcmFuZG9tX3RleHQgcGx1Z2luLCB3aHkg d291bGQgYW55Ym9keSB3YW50IHRvIHNwZWNpZnkgd2hpY2ggaXRlbSB0byB1c2U/IFR3byB1 c2VzIHNwcmluZyB0byBtaW5kOiBGaXJzdGx5LCBpZiB5b3UgaGF2ZSBhbHJlYWR5IHJhbmRv bWl6ZWQgeW91ciBpdGVtcyBleHRlcm5hbGx5IHlvdSBtaWdodCB3aXNoIHRvIGFsd2F5cyBw aWNrLCBzYXksIHRoZSBmaXJzdCBpdGVtLiBTZWNvbmRseSAmIzgyMTI7IGFuZCBmYXIgbW9y ZSBzdWJ0bHkgJiM4MjEyOyBpZiB5b3Ugd2lzaCB0byBwdWxsIG1vcmUgdGhhbiBvbmUgaXRl bSBmcm9tIGFueSByYW5kb21seSBjaG9zZW4gcGxhY2UsIHlvdSBjYW4gbmVzdCBzbWRfcmFu ZG9tX3RleHQgdGFncyBhbmQgbWFrZSB0aGUgaW5uZXIgdGFncyBhbHdheXMgdXNlIHRoZSBz YW1lIHJvdy9wb3NpdGlvbiBudW1iZXIgYXMgdGhlIHJhbmRvbWx5IGNob3NlbiBvdXRlciB0 YWcuIFNlZSA8YSBocmVmPSIjZWc3Ij5leGFtcGxlIDc8L2E+IGZvciBhbiBleGFtcGxlPC9s aT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnNodWZmbGU8L3NwYW4+IDogcGVyaGFwcyBh IGxpdHRsZSBwb2ludGxlc3MsIHRoaXMgYWRkcyBhbiBleHRyYSBsYXllciBvZiByYW5kb21u ZXNzIHRvIHByb2NlZWRpbmdzIGJ5IHNodWZmbGluZyB0aGUgY2hvc2VuIGl0ZW1zIGFnYWlu LiBTbyBpZiB5b3UgaGFkIGFza2VkIGZvciA2IGl0ZW1zIGluIHlvdXIgbGlzdCBvZiAyMCBh bmQgdGhlIHBsdWdpbiBoYWQgcmFuZG9tbHkgY2hvc2VuIHRoZW0gaW4gdGhpcyBvcmRlcjog PGNvZGU+NCwgMTcsIDIsIDUsIDEzLCAxMTwvY29kZT4sIHVzaW5nIDxjb2RlPnNodWZmbGU9 JnF1b3Q7MSZxdW90OzwvY29kZT4gbWlnaHQgcmVvcmRlciB0aGVtIHRvIDxjb2RlPjE3LCA1 LCAyLCAxMSwgNCwgMTM8L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmNv dW50PC9zcGFuPiA6IHdoZXRoZXIgdG8gY291bnQgPGNvZGU+dXA8L2NvZGU+ICh0aGUgZGVm YXVsdCkgb3IgPGNvZGU+ZG93bjwvY29kZT4gZm9yIGVhY2ggcmFuZG9tIHBpZWNlIG9mIHRl eHQ8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+dHJpbTwvc3Bhbj4gOiB3aGV0aGVy IHRvIHJlbW92ZSB3aGl0ZXNwYWNlIGZyb20gYXJvdW5kIGVhY2ggbGlzdCBpdGVtICgxKSBv ciBub3QgKDApLiBEZWZhdWx0OiAxPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmVz Y2FwZTwvc3Bhbj4gOiBlc2NhcGUgPHNwYW4gY2xhc3M9ImNhcHMiPkhUTUw8L3NwYW4+IGVu dGl0aWVzIHN1Y2ggYXMgPGNvZGU+Jmx0OzwvY29kZT4sIDxjb2RlPiZndDs8L2NvZGU+IGFu ZCA8Y29kZT4mYW1wOzwvY29kZT4gaW4gYW55IHRleHQgaXRlbXMuIFVzZSA8Y29kZT5lc2Nh cGU9JnF1b3Q7JnF1b3Q7PC9jb2RlPiB0byB0dXJuIGl0IG9mZi4gRGVmYXVsdDogPGNvZGU+ aHRtbDwvY29kZT48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+Zm9ybTwvc3Bhbj4g OiB0aGUgZm9ybSB0byB1c2UgdG8gZm9ybWF0IHRoZSB0ZXh0LiBJZiBub3Qgc3VwcGxpZWQs IHdpbGwgdHJ5IHRoZSBjb250YWluZXIuIElmIHRoYXQmIzgyMTc7cyBub3QgdXNlZCBlaXRo ZXIsIHRoZSBwbHVnaW4gd2lsbCBzaW1wbHkgb3V0cHV0IHRoZSBjaG9zZW4gdGV4dCBvbiBp dHMgb3duPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPndyYXB0YWc8L3NwYW4+IDog dGhlIChYKUhUTUwgdGFnIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgY2hvc2VuIHN0cmluZ3Ms IGVnIDxjb2RlPndyYXB0YWc9JnF1b3Q7dWwmcXVvdDs8L2NvZGU+LiBEZWZhdWx0OiB1bnNl dDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5icmVhazwvc3Bhbj4gOiB0aGUgKFgp SFRNTCB0YWcgdG8gcHV0IGJldHdlZW4gc3VjY2Vzc2l2ZSBpdGVtcyBvZiB0ZXh0LCBlZyA8 Y29kZT5icmVhaz0mcXVvdDtsaSZxdW90OzwvY29kZT4uIERlZmF1bHQ6IHVuc2V0PC9saT4K CQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmNsYXNzPC9zcGFuPiA6IHRoZSA8c3BhbiBjbGFz cz0iY2FwcyI+Q1NTPC9zcGFuPiBjbGFzcyB0byBhcHBseSB0byB0aGUgaXRlbSB3cmFwdGFn LCBlZyA8Y29kZT5jbGFzcz0mcXVvdDtyYW5kb21fc3RyaW5ncyZxdW90OzwvY29kZT4uIERl ZmF1bHQ6IHVuc2V0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmRlYnVnPC9zcGFu PiA6IHNldCB0byAxIHRvIHNob3cgdGhlIHBvb2wsIHRoZSBmaWxlIG5hbWUgKGlmIGFwcGxp Y2FibGUpIGFuZCB0aGUgY2hvc2VuIGl0ZW1zLiBVc2UgMiB0byBzZWUgd2hhdCA8Y29kZT5m aWVsZDwvY29kZT5zIGFyZSBhdmFpbGFibGU8L2xpPgoJPC91bD4KCgk8aDM+UmVwbGFjZW1l bnQgdGFnczwvaDM+CgoJPHA+V2hlbiB1c2luZyBhIGZvcm0gb3IgY29udGFpbmVyLCB1c2Ug dGhlIGZvbGxvd2luZyByZXBsYWNlbWVudCB0YWdzIHRvIGluc2VydCB0aGUgcmVsZXZhbnQg cGllY2Ugb2YgaW5mb3JtYXRpb24gd2hlcmV2ZXIgeW91IHdhbnQgaXQ6PC9wPgoKCTxwPjxj b2RlPntzbWRfcm5kX3R4dH08L2NvZGU+IDogdGhlIHRleHQgc3RyaW5nIGl0c2VsZjxiciAv Pgo8Y29kZT57c21kX3JuZF90eHRfcm93c308L2NvZGU+IDogdGhlIG51bWJlciBvZiBpdGVt cyBpbiB0b3RhbDxiciAvPgo8Y29kZT57c21kX3JuZF90eHRfdGhpc3Jvd308L2NvZGU+IDog dGhlIGN1cnJlbnQgcm93IG51bWJlcjxiciAvPgo8Y29kZT57c21kX3JuZF90eHRfdGhpc2lu ZGV4fTwvY29kZT4gOiB0aGUgY3VycmVudCByb3cgaW5kZXggKHplcm8tYmFzZWQpPGJyIC8+ Cjxjb2RlPntzbWRfcm5kX3R4dF9jaG9zZW5faXRlbX08L2NvZGU+IDogdGhlIHplcm8tYmFz ZWQgaW5kZXggbnVtYmVyIG9mIHRoZSBhY3R1YWwgaXRlbSBzZWxlY3RlZCBieSB0aGUgcGx1 Z2luIChzZWUgPGEgaHJlZj0iI2VnNyI+ZXhhbXBsZSA3PC9hPjwvcD4KCgk8aDI+RXhhbXBs ZXM8L2gyPgoKCTxoMyBpZD0iZWcxIj5FeGFtcGxlIDE6IFF1b3RlIG9mIHRoZSBkYXk8L2gz PgoKCTxwPlJlYWQgZnJvbSBhIGRhdGFiYXNlLCB0aGUgdGFibGUgKHRoYXQgaGFzIGJlZW4g YWRkZWQgdG8gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IGRhdGFiYXNlOyB0 aGUgY29ubmVjdGlvbiBtdXN0IGFscmVhZHkgYmUgb3BlbikgaXMgY2FsbGVkICYjODIyMDtx dW90ZXMmIzgyMjE7IGFuZCB0aGUgY29sdW1uIGNvbnRhaW5pbmcgdGhlIHF1b3RlcyBpcyBj YWxsZWQgJiM4MjIwO3RleHQmIzgyMjE7OjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29k ZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX3JhbmRvbV90ZXh0IHR5cGU9JnF1b3Q7ZGF0 YWJhc2UmcXVvdDsKICAgICBzb3VyY2U9JnF1b3Q7cXVvdGVzfHRleHQmcXVvdDsmZ3Q7CiAg Jmx0O2RpdiBjbGFzcz0mcXVvdDtxb3RkJnF1b3Q7Jmd0O1F1b3RlIG9mIHRoZSBkYXk6ICZs dDticiAvJmd0O3tzbWRfcm5kX3R4dH0mbHQ7L2RpdiZndDsKJmx0Oy90eHA6c21kX3JhbmRv bV90ZXh0Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPGgzIGlkPSJlZzIiPkV4YW1wbGUgMjogRml2 ZSByYW5kb20gY29tbWVudHM8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNz PSJibG9jayI+Jmx0O3R4cDpzbWRfcmFuZG9tX3RleHQgdHlwZT0mcXVvdDtkYXRhYmFzZSZx dW90OwogICAgIHNvdXJjZT0mcXVvdDt0eHBfZGlzY3Vzc3xtZXNzYWdlJnF1b3Q7IGxpbWl0 PSZxdW90OzUmcXVvdDsKICAgICB3cmFwdGFnPSZxdW90O3VsJnF1b3Q7IGJyZWFrPSZxdW90 O2xpJnF1b3Q7IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8aDMgaWQ9ImVnMyI+RXhhbXBsZSAz OiBUb3AgMTAgd29yZHM8L2gzPgoKCTxwPlRvcCB0ZW4gcmFuZG9tIHNpbGx5IHdvcmRzIGZy b20gYSBsaXN0IGluIGEgZmlsZSBpbiB0aGUgdGV4dHBhdHRlcm4gcm9vdCBmb2xkZXIsIGNv dW50aW5nIGRvd24gZnJvbSAxMCB0byAxLiBFYWNoIHdvcmQgbXVzdCBiZSBvbiBhIHNlcGFy YXRlIHJvdyBvZiB0aGUgZmlsZSB1bmxlc3MgeW91IHNwZWNpZnkgdGhlIDxjb2RlPmRlbGlt PC9jb2RlPiBhdHRyaWJ1dGUgdG8gYmUgc29tZXRoaW5nIGVsc2U7IGluIHdoaWNoIGNhc2Ug dGhlIHdvcmRzIG11c3QgYWxsIGFwcGVhciBvbiB0aGUgZmlyc3Qgcm93IG9mIHRoZSBmaWxl LiBJZiB0aGVyZSBhcmVuJiM4MjE3O3QgMTAgaXRlbXMgaW4gdGhlIGZpbGUsIHRoZSBjb3Vu dCBiZWdpbnMgZnJvbSBob3dldmVyIGhpZ2ggaXQgY2FuIGdvLjwvcD4KCjxwcmUgY2xhc3M9 ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX3JhbmRvbV90ZXh0IHR5 cGU9JnF1b3Q7ZmlsZSZxdW90OwogICAgIHNvdXJjZT0mcXVvdDt3b3Jkcy50eHQmcXVvdDsg bGltaXQ9JnF1b3Q7MTAmcXVvdDsKICAgICBmb3JtPSZxdW90O3dvcmRvdXQmcXVvdDsgY291 bnQ9JnF1b3Q7ZG93biZxdW90OyAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+YW5kIGluIGZv cm0gPGNvZGU+d29yZG91dDwvY29kZT46PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2Rl IGNsYXNzPSJibG9jayI+I3tzbWRfcm5kX3R4dF90aGlzcm93fSA6IHtzbWRfcm5kX3R4dH0g Jmx0O2JyIC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8aDMgaWQ9ImVnNCI+RXhhbXBsZSA0OiBS YW5kb20gZS1tYWlsIGFkZHJlc3M8L2gzPgoKCTxwPlVzZSBhIDxjb2RlPiZsdDt0eHA6dmFy aWFibGUgLyZndDs8L2NvZGU+IHRvIGhvbGQgYSBsaXN0IG9mIHJhbmRvbSBlLW1haWwgYWRk cmVzc2VzIGZyb20gd2hpY2ggb25lIHdpbGwgYmUgc2VsZWN0ZWQgdG8gYmUgc2VudCB2aWEg YSB6ZW1fY29udGFjdF9yZWJvcm4gZm9ybTo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNv ZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnZhcmlhYmxlIG5hbWU9JnF1b3Q7ZW1haWxzJnF1 b3Q7CiAgICAgdmFsdWU9JnF1b3Q7QWxkb3VzLkh1eGxleXxXaWxsaWFtLlNoYWtlc3BlYXJl fEpvaG4uQmV0amVtYW4mcXVvdDsgLyZndDsKJmx0O3R4cDp6ZW1fY29udGFjdAogICAgIHRv PSYjMzk7Jmx0O3R4cDpzbWRfcmFuZG9tX3RleHQgdHlwZT0mcXVvdDt0eHB2YXImcXVvdDsK ICAgICBzb3VyY2U9JnF1b3Q7ZW1haWxzJnF1b3Q7IC8mZ3Q7QHdyaXRlcnMuY29tJiMzOTsm Z3Q7CiAgLy8gT3RoZXIgemVtX2NvbnRhY3Qgb3B0aW9ucwombHQ7L3R4cDp6ZW1fY29udGFj dCZndDsKPC9jb2RlPjwvcHJlPgoKCTxoMyBpZD0iZWc1Ij5FeGFtcGxlIDU6IFJhbmRvbSBp bWFnZSBzZWxlY3Rpb248L2gzPgoKCTxwPkluZGlyZWN0bHksIG5vdCBqdXN0IGZvciB0ZXh0 ISBDaG9vc2UgdHdvIHJhbmRvbSBpbWFnZSBJRHMgZnJvbSBhIGNvbW1hLXNlcGFyYXRlZCBs aXN0IGdpdmVuIGluIHRoZSBjdXN0b20gZmllbGQgbGFiZWxsZWQgJiM4MjIwO215X2ltYWdl cyYjODIyMTsgYW5kIGRpc3BsYXkgdGhlbSB2aWEgdGhlIGJ1aWx0LWluIDxjb2RlPiZsdDt0 eHA6aW1hZ2UgLyZndDs8L2NvZGU+IHRhZy48L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNv ZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9yYW5kb21fdGV4dCB0eXBlPSZxdW90O2Zp ZWxkJnF1b3Q7CiAgICAgc291cmNlPSZxdW90O215X2ltYWdlcyZxdW90OyBsaW1pdD0mcXVv dDsyJnF1b3Q7IGRlbGltPSZxdW90OywmcXVvdDsmZ3Q7CiAgJmx0O3R4cDppbWFnZSBpZD0m cXVvdDt7c21kX3JuZF90eHR9JnF1b3Q7IC8mZ3Q7CiZsdDsvdHhwOnNtZF9yYW5kb21fdGV4 dCZndDsKPC9jb2RlPjwvcHJlPgoKCTxoMyBpZD0iZWc2Ij5FeGFtcGxlIDY6IEl0ZW0gZnJv bSBhIGZhY3QgZmlsZTwvaDM+CgoJPHA+QWRkIHRoaXMgdG8geW91ciA8Y29kZT5maWxlczwv Y29kZT4gZm9ybSB0byBkaXNwbGF5IGEgcmFuZG9tIGZhY3QgYWJvdXQgZWFjaCBmaWxlIGZy b20gYSBwaXBlLWRlbG1paXRlZCBsaXN0IGRlZmluZWQgaW4gdGhlIGZpbGUmIzgyMTc7cyA8 Y29kZT5kZXNjcmlwdGlvbjwvY29kZT4gZmllbGQ6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2si Pjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcmFuZG9tX3RleHQgdHlwZT0mcXVv dDtmaWVsZCZxdW90OwogICAgIHNvdXJjZT0mcXVvdDtkZXNjcmlwdGlvbiZxdW90OyZndDsK Jmx0O2JyIC8mZ3Q7RkFDVDoge3NtZF9ybmRfdHh0fQombHQ7L3R4cDpzbWRfcmFuZG9tX3Rl eHQmZ3Q7CjwvY29kZT48L3ByZT4KCgk8aDMgaWQ9ImVnNyI+RXhhbXBsZSA3OiBLZWVwaW5n IGl0ZW1zIGluIHN5bmM8L2gzPgoKCTxwPlNheSB5b3UgaGF2ZSBhIGRhdGFiYXNlIHRoYXQg aG9sZHMgZW1wbG95ZWUgaW5mb3JtYXRpb24gYW5kIHlvdSB3YW50IHRvIGdpdmUgdGhyZWUg cmFuZG9tIGVtcGxveWVlcyBhIDEwJSBib251cy4gWW91IG5lZWQgdG8gcHVibGlzaCB0aGUg bGlzdCBvbiB0aGUgd2ViIHNpdGUgYnV0IHlvdSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UgZ2V0 IHRoZSByaWdodCBlbXBsb3llZXMgY29taW5nIGZvcndhcmQuIFNvIHlvdSBuZWVkIHRvIHB1 Ymxpc2ggdGhlaXIgbmFtZSwgZW1wbG95ZWUgSUQsIGFuZCBkZXBhcnRtZW50IChpLmUuIDMg Y29sdW1ucyBmcm9tIHRoZSB0YWJsZSkuPC9wPgoKCTxwPldpdGggc21kX3JhbmRvbV90ZXh0 IHlvdSBjYW4gb25seSBncmFiIG9uZSBjb2x1bW4gYXQgYSB0aW1lIHNvIGhvdyBkbyB5b3Ug ZW5zdXJlIHlvdSBnZXQgdGhlIHRocmVlIGNvbHVtbnMgdGhhdCBjb3JyZXNwb25kIHdpdGgg dGhlIGNvcnJlY3Qgcm93IGZvciBlYWNoIGVtcGxveWVlPyBMaWtlIHRoaXM6PC9wPgoKPHBy ZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcmFuZG9t X3RleHQgdHlwZT0mcXVvdDtkYXRhYmFzZSZxdW90OwogICAgIHNvdXJjZT0mcXVvdDtlbXBs b3llZXM6bmFtZSZxdW90OyBsaW1pdD0mcXVvdDszJnF1b3Q7IHdyYXB0YWc9JnF1b3Q7dWwm cXVvdDsKICAgICBicmVhaz0mcXVvdDtsaSZxdW90OyZndDsKICAge3NtZF9ybmRfdHh0fQog ICAoJmx0O3R4cDpzbWRfcmFuZG9tX3RleHQgdHlwZT0mcXVvdDtkYXRhYmFzZSZxdW90Owog ICAgIHNvdXJjZT0mcXVvdDtlbXBsb3llZXM6SUQmcXVvdDsKICAgICBpdGVtX251bT0mcXVv dDt7c21kX3JuZF90eHRfY2hvc2VuX2l0ZW19JnF1b3Q7IC8mZ3Q7KQogICBmcm9tIHRoZSAm bHQ7dHhwOnNtZF9yYW5kb21fdGV4dCB0eXBlPSZxdW90O2RhdGFiYXNlJnF1b3Q7CiAgICAg c291cmNlPSZxdW90O2VtcGxveWVlczpkZXBhcnRtZW50JnF1b3Q7CiAgICAgaXRlbV9udW09 JnF1b3Q7e3NtZF9ybmRfdHh0X2Nob3Nlbl9pdGVtfSZxdW90OyAvJmd0OwogICBkZXBhcnRt ZW50CiZsdDsvdHhwOnNtZF9yYW5kb21fdGV4dCZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPkFz IHlvdSBjYW4gc2VlLCB0aGUgZmlyc3Qgc21kX3JhbmRvbV90ZXh0IGNob29zZXMgdGhyZWUg cmFuZG9tIGVtcGxveWVlIG5hbWVzIGZyb20gdGhlIGRhdGFiYXNlLiBUaGVuLCBmb3IgZWFj aCBvZiB0aGUgY2hvc2VuIGVtcGxveWVlIG5hbWVzLCB0aGUgc2Vjb25kIChpbm5lcikgc21k X3JhbmRvbV90ZXh0IGdvZXMgYmFjayB0byB0aGUgZGF0YWJhc2UgYW5kIGdldHMgdGhlICYj ODIxNjtJRCYjODIxNzsgY29sdW1uIF9mcm9tIHRoZSBzYW1lIHJvdyBhcyB0aGUgb25lIGp1 c3QgY2hvc2VuLiBJdCB1c2VzIDxjb2RlPntzbWRfcm5kX3R4dF9jaG9zZW5faXRlbX08L2Nv ZGU+IHRvIGZvcmNlIHRoZSBwbHVnaW4gdG8gcmVhZCB0aGUgY3VycmVudCByb3cuIFRoZSB0 aGlyZCBzbWRfcmFuZG9tX3RleHQgZG9lcyBleGFjdGx5IHRoZSBzYW1lOiBncmFicyB0aGUg JiM4MjE2O2RlcGFydG1lbnQmIzgyMTc7IGNvbHVtbiBmcm9tIHRoZSByb3cgd2UgcmFuZG9t bHkgc2VsZWN0ZWQgYXQgdGhlIHN0YXJ0LjwvcD4KCgk8cD5PSywgdGhhdCYjODIxNztzIGEg Y29udHJpdmVkIGV4YW1wbGUgYmVjYXVzZSB5b3UmIzgyMTc7ZCBuZXZlciB1c2Ugc21kX3Jh bmRvbV90ZXh0IGZvciB0aGlzIHR5cGUgb2YgdGhpbmcgJiM4MjEyOyAgZm9yIGEgc3RhcnQg aXQmIzgyMTc7cyBhIHdhc3RlIG9mIGJhbmR3aWR0aCBhbmQgdGhlIHRocmVlIGNhbGxzIGFy ZSBub3QgYXRvbWljLiBZb3UgY291bGQsIGhvd2V2ZXIsIGFwcGx5IHRoZSBzYW1lIGxvZ2lj IHRvIHRocmVlIDxjb2RlPiZsdDt0eHA6dmFyaWFibGVzIC8mZ3Q7PC9jb2RlPiBjb250YWlu aW5nIGxpbmtlZCBpbmZvcm1hdGlvbi4gSW4gdGhpcyBtYW5uZXIgeW91IGNhbiBidWlsZCB1 cCBjb21wbGV4IGludGVyYWN0aW9ucyBiZXR3ZWVuIHNvdXJjZXM7IHRoZXkgZG9uJiM4MjE3 O3QgZXZlbiBoYXZlIHRvIGJlIG9mIHRoZSBzYW1lIHR5cGUhPC9wPgoKCTxoMj5DaGFuZ2Vs b2c8L2gyPgoKCTx1bD4KCQk8bGk+MTAgT2N0IDA4IHwgMC4xIHwgSW5pdGlhbCByZWxlYXNl PC9saT4KCQk8bGk+MTcgTWFyIDA5IHwgMC4xMSB8IEFkZGVkIDxjb2RlPnRyaW08L2NvZGU+ IGFuZCA8Y29kZT5lc2NhcGU8L2NvZGU+PC9saT4KCQk8bGk+MjYgSnVsIDA5IHwgMC4xMiB8 IEFkZGVkIDxjb2RlPml0ZW1fbnVtPC9jb2RlPiwgPGNvZGU+c2h1ZmZsZTwvY29kZT4gYW5k IHRoZSByZXBsYWNlbWVudCB0YWcgPGNvZGU+e3NtZF9ybmRfdHh0X2Nob3Nlbl9pdGVtfTwv Y29kZT48L2xpPgoJPC91bD4KCjwvZGl2Pgo8IS0tICoqKiBCRUdJTiBQTFVHSU4gQ1NTICoq KiAtLT4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KI3NtZF9oZWxwIHsgbGluZS1oZWlnaHQ6 MS41IDt9CiNzbWRfaGVscCBjb2RlIHsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udDogMTA1JS8x MzAlICJDb3VyaWVyIE5ldyIsIGNvdXJpZXIsIG1vbm9zcGFjZTsgYmFja2dyb3VuZC1jb2xv cjogI0ZGRkZDQzt9CiNzbWRfaGVscCBjb2RlLmJsb2NrIHsgZm9udC13ZWlnaHQ6bm9ybWFs OyBib3JkZXI6MXB4IGRvdHRlZCAjOTk5OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBlNjhjOyBk aXNwbGF5OmJsb2NrOyBtYXJnaW46MTBweCAxMHB4IDIwcHg7IHBhZGRpbmc6MTBweDsgfQoj c21kX2hlbHAgYTpsaW5rLCAjc21kX2hlbHAgYTp2aXNpdGVkIHsgY29sb3I6ICMwMGM7IHRl eHQtZGVjb3JhdGlvbjogbm9uZTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsdWU7IHBh ZGRpbmctYm90dG9tOjFweDt9CiNzbWRfaGVscCBhOmhvdmVyLCAjc21kX2hlbHAgYTphY3Rp dmUgeyBjb2xvcjogYmx1ZTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBib3JkZXItYm90dG9t OiAycHggc29saWQgYmx1ZTsgcGFkZGluZy1ib3R0b206MXB4O30KI3NtZF9oZWxwIGgxIHsg Y29sb3I6ICMzNjk7IGZvbnQ6IDIwcHggR2VvcmdpYSwgc2Fucy1zZXJpZjsgbWFyZ2luOiAw OyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KI3NtZF9oZWxwIGgyIHsgYm9yZGVyLWJvdHRvbTog MXB4IHNvbGlkIGJsYWNrOyBwYWRkaW5nOjEwcHggMCAwOyBjb2xvcjogIzM2OTsgZm9udDog MTdweCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyB9CiNzbWRfaGVscCBoMyB7IGNvbG9yOiAjMDc5 OyBmb250OiBib2xkIDEycHggQXJpYWwsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAx cHg7IG1hcmdpbjogMTBweCAwIDA7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgdGV4dC1k ZWNvcmF0aW9uOnVuZGVybGluZTt9CiNzbWRfaGVscCBoNCB7IGZvbnQ6IGJvbGQgMTFweCBB cmlhbCwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDFweDsgbWFyZ2luOiAxMHB4IDAg MCA7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfQojc21kX2hlbHAgLmF0bm0geyBmb250 LXdlaWdodDpib2xkOyBjb2xvcjojMzNkOyB9CiNzbWRfaGVscCAubWFuZCB7IGJhY2tncm91 bmQ6I2VlZTsgYm9yZGVyOjFweCBkb3R0ZWQgIzk5OTsgfQojc21kX2hlbHAgdGFibGUge3dp ZHRoOjkwJTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmctYm90dG9tOjFlbTt9CiNzbWRf aGVscCB0ZCwgI3NtZF9oZWxwIHRoIHtib3JkZXI6MXB4IHNvbGlkICM5OTk7IHBhZGRpbmc6 LjVlbSAwO30KI3NtZF9oZWxwIHVsIHsgbGlzdC1zdHlsZS10eXBlOnNxdWFyZTsgfQojc21k X2hlbHAgbGkgeyBtYXJnaW46NXB4IDIwcHggNXB4IDMwcHg7IH0KI3NtZF9oZWxwIC5icmVh ayB7IG1hcmdpbi10b3A6NXB4OyB9Cjwvc3R5bGU+CjwhLS0gKioqIEVORCBQTFVHSU4gQ1NT ICoqKiAtLT4KIjtzOjQ6ImNvZGUiO3M6NDM2NjoiZnVuY3Rpb24gc21kX3JhbmRvbV90ZXh0 KCRhdHRzLCAkdGhpbmc9TlVMTCkgew0KCWdsb2JhbCAkdHhwY2ZnLCAkdmFyaWFibGUsICRw cmV0ZXh0LCAkdGhpc2FydGljbGUsICR0aGlzZmlsZSwgJHRoaXNsaW5rLCAkdGhpc2ltYWdl Ow0KDQoJZXh0cmFjdChsQXR0cyhhcnJheSgNCgkJJ3R5cGUnID0+ICdzdHJpbmcnLA0KCQkn c291cmNlJyA9PiAnaGVsbG8gd29ybGQnLA0KCQknZGVsaW0nID0+ICd8JywNCgkJJ2ZpbGVf ZGVsaW0nID0+ICdcbicsDQoJCSdpdGVtX251bScgPT4gJycsDQoJCSdzaHVmZmxlJyA9PiAn MCcsDQoJCSd0cmltJyA9PiAnMScsDQoJCSdlc2NhcGUnID0+ICdodG1sJywNCgkJJ2Zvcm0n ID0+ICcnLA0KCQknbGltaXQnID0+ICcxJywNCgkJJ2NvdW50JyA9PiAndXAnLA0KCQknd3Jh cHRhZycgPT4gJycsDQoJCSdicmVhaycgPT4gJycsDQoJCSdjbGFzcycgPT4gJycsDQoJCSdk ZWJ1ZycgPT4gJzAnLA0KCSksICRhdHRzKSk7DQoNCgkkc3JjcHQgPSBleHBsb2RlKCRkZWxp bSwgJHNvdXJjZSk7DQoJJGxpbWl0ID0gKCRsaW1pdCA8IDEpID8gMSA6ICRsaW1pdDsNCgkk ZnJvbSA9IGFycmF5KCk7DQoJJGl0ZW1zID0gYXJyYXkoKTsNCg0KCXN3aXRjaCAoJHR5cGUp IHsNCgkJY2FzZSAiZmllbGQiOg0KCQkJaWYgKGlzc2V0KCR0aGlzZmlsZVskc3JjcHRbMF1d KSAmJiAkdGhpc2ZpbGVbJHNyY3B0WzBdXSAhPSAiIikgew0KCQkJCSRmcm9tID0gJHRoaXNm aWxlWyRzcmNwdFswXV07DQoJCQl9IGVsc2UgaWYgKGlzc2V0KCR0aGlzbGlua1skc3JjcHRb MF1dKSAmJiAkdGhpc2xpbmtbJHNyY3B0WzBdXSAhPSAiIikgew0KCQkJCSRmcm9tID0gJHRo aXNsaW5rWyRzcmNwdFswXV07DQoJCQl9IGVsc2UgaWYgKGlzc2V0KCR0aGlzaW1hZ2VbJHNy Y3B0WzBdXSkgJiYgJHRoaXNpbWFnZVskc3JjcHRbMF1dICE9ICIiKSB7DQoJCQkJJGZyb20g PSAkdGhpc2ltYWdlWyRzcmNwdFswXV07DQoJCQl9IGVsc2UgaWYgKGlzc2V0KCRwcmV0ZXh0 WyRzcmNwdFswXV0pICYmICRwcmV0ZXh0WyRzcmNwdFswXV0gIT0gIiIpIHsNCgkJCQkkZnJv bSA9ICRwcmV0ZXh0WyRzcmNwdFswXV07DQoJCQl9IGVsc2UgaWYgKGlzc2V0KCR0aGlzYXJ0 aWNsZVskc3JjcHRbMF1dKSAmJiAkdGhpc2FydGljbGVbJHNyY3B0WzBdXSAhPSAiIikgew0K CQkJCSRmcm9tID0gJHRoaXNhcnRpY2xlWyRzcmNwdFswXV07DQoJCQl9DQoJCQlpZiAoJGZy b20pIHsNCgkJCQkkZnJvbSA9IGV4cGxvZGUoJGRlbGltLCAkZnJvbSk7DQoJCQkJJGxpbWl0 ID0gKGNvdW50KCRmcm9tKSA8ICRsaW1pdCkgPyBjb3VudCgkZnJvbSkgOiAkbGltaXQ7DQoJ CQkJJGl0ZW1zID0gKCRpdGVtX251bSAhPSAnJykgPyAoKGNvdW50KCRmcm9tKSA+PSAkaXRl bV9udW0pID8gJGl0ZW1fbnVtIDogMCkgOiBhcnJheV9yYW5kKCRmcm9tLCAkbGltaXQpOw0K CQkJfQ0KCQkJYnJlYWs7DQoJCWNhc2UgInR4cHZhciI6DQoJCQkkZnJvbSA9IGV4cGxvZGUo JGRlbGltLCAkdmFyaWFibGVbJHNyY3B0WzBdXSk7DQoJCQkkbGltaXQgPSAoY291bnQoJGZy b20pIDwgJGxpbWl0KSA/IGNvdW50KCRmcm9tKSA6ICRsaW1pdDsNCgkJCSRpdGVtcyA9ICgk aXRlbV9udW0gIT0gJycpID8gKChjb3VudCgkZnJvbSkgPj0gJGl0ZW1fbnVtKSA/ICRpdGVt X251bSA6IDApIDogYXJyYXlfcmFuZCgkZnJvbSwgJGxpbWl0KTsNCgkJCWJyZWFrOw0KCQlj YXNlICJ1cmx2YXIiOg0KCQkJJGZyb20gPSBleHBsb2RlKCRkZWxpbSwgZ3BzKCRzcmNwdFsw XSkpOw0KCQkJJGxpbWl0ID0gKGNvdW50KCRmcm9tKSA8ICRsaW1pdCkgPyBjb3VudCgkZnJv bSkgOiAkbGltaXQ7DQoJCQkkaXRlbXMgPSAoJGl0ZW1fbnVtICE9ICcnKSA/ICgoY291bnQo JGZyb20pID49ICRpdGVtX251bSkgPyAkaXRlbV9udW0gOiAwKSA6IGFycmF5X3JhbmQoJGZy b20sICRsaW1pdCk7DQoJCQlicmVhazsNCgkJY2FzZSAiZGF0YWJhc2UiOg0KCQkJJHdoZXJl ID0gIjE9MSBPUkRFUiBCWSBSQU5EKCkgTElNSVQgIi4kbGltaXQ7DQoJCQkkZnJvbSA9IHNh ZmVfY29sdW1uKCRzcmNwdFsxXSwgJHNyY3B0WzBdLCAkd2hlcmUsICRkZWJ1Zyk7DQoJCQkk bGltaXQgPSBjb3VudCgkZnJvbSk7DQoJCQkkaXRlbXMgPSAoJGl0ZW1fbnVtICE9ICcnKSA/ ICgoY291bnQoJGZyb20pID49ICRpdGVtX251bSkgPyAkaXRlbV9udW0gOiAwKSA6IGFycmF5 X2tleXMoJGZyb20pOw0KCQkJYnJlYWs7DQoJCWNhc2UgImZpbGUiOg0KCQkJJHBhdGggPSAk dHhwY2ZnWydkb2Nfcm9vdCddLigoc3Vic3RyKCRzcmNwdFswXSwgMCwgMSk9PScvJykgPyAn JyA6ICcvJykuJHNyY3B0WzBdOw0KCQkJaWYgKCRkZWJ1Zykgew0KCQkJCWVjaG8gIisrIEZJ TEUgUEFUSCArKyI7DQoJCQkJZG1wICgkcGF0aCk7DQoJCQl9DQoJCQlpZiAoZmlsZV9leGlz dHMoJHBhdGgpKSB7DQoJCQkJJGZyb20gPSBkb0FycmF5KGZpbGUoJHBhdGgpLCAncnRyaW0n KTsNCgkJCQlpZiAoJGZpbGVfZGVsaW0gIT0gJ1xuJykgew0KCQkJCQkkZnJvbSA9IGV4cGxv ZGUoJGZpbGVfZGVsaW0sICRmcm9tWzBdKTsNCgkJCQl9DQoJCQkJJGxpbWl0ID0gKGNvdW50 KCRmcm9tKSA8ICRsaW1pdCkgPyBjb3VudCgkZnJvbSkgOiAkbGltaXQ7DQoJCQkJJGl0ZW1z ID0gKCRpdGVtX251bSAhPSAnJykgPyAoKGNvdW50KCRmcm9tKSA+PSAkaXRlbV9udW0pID8g JGl0ZW1fbnVtIDogMCkgOiBhcnJheV9yYW5kKCRmcm9tLCAkbGltaXQpOw0KCQkJfQ0KCQkJ YnJlYWs7DQoJCWNhc2UgInN0cmluZyI6DQoJCWRlZmF1bHQ6DQoJCQkkZnJvbSA9ICRzcmNw dDsNCgkJCSRsaW1pdCA9IChjb3VudCgkZnJvbSkgPCAkbGltaXQpID8gY291bnQoJGZyb20p IDogJGxpbWl0Ow0KCQkJJGl0ZW1zID0gKCRpdGVtX251bSAhPSAnJykgPyAoKGNvdW50KCRm cm9tKSA+PSAkaXRlbV9udW0pID8gJGl0ZW1fbnVtIDogMCkgOiBhcnJheV9yYW5kKCRmcm9t LCAkbGltaXQpOw0KCQkJYnJlYWs7DQoJfQ0KDQoJLy8gRm9yY2UgYXJyYXkgaWYgaXQgaXNu J3QgYWxyZWFkeSAoc29tZSBQSFAgZnVuY3Rpb25zIHJldHVybiBzaW5nbGUgdmFsdWVzKQ0K CWlmICghaXNfYXJyYXkoJGl0ZW1zKSkgew0KCQkkaXRlbXMgPSBhcnJheSgkaXRlbXMpOw0K CX0NCg0KCWlmICgkc2h1ZmZsZSkgew0KCQlzaHVmZmxlKCRpdGVtcyk7DQoJfQ0KDQoJJGZy b20gPSAoJHRyaW0pID8gZG9BcnJheSgkZnJvbSwgJ3RyaW0nKSA6ICRmcm9tOw0KDQoJaWYg KCRkZWJ1Zykgew0KCQllY2hvICIrKyBJVEVNIFBPT0wgKysiOw0KCQlkbXAoJGZyb20pOw0K CQllY2hvICIrKyBDSE9TRU4gSVRFTVMgKysiOw0KCQlkbXAoJGl0ZW1zKTsNCgl9DQoJaWYg KCRkZWJ1ZyA+IDIpIHsNCgkJZWNobyAiKysgUFJFVEVYVCArKyI7DQoJCWRtcCgkcHJldGV4 dCk7DQoJCWVjaG8gIisrIFRISVMgRklMRSArKyI7DQoJCWRtcCgkdGhpc2ZpbGUpOw0KCQll Y2hvICIrKyBUSElTIExJTksgKysiOw0KCQlkbXAoJHRoaXNsaW5rKTsNCgkJZWNobyAiKysg VEhJUyBJTUFHRSArKyI7DQoJCWRtcCgkdGhpc2ltYWdlKTsNCgkJZWNobyAiKysgVEhJUyBB UlRJQ0xFICsrIjsNCgkJZG1wKCR0aGlzYXJ0aWNsZSk7DQoJfQ0KDQoJLy8gRmluZCBvdXQg aG93IHRvIHBsb25rIHRoZSBvdXRwdXQNCgkkd2hhdCA9ICgkZm9ybSkgPyBmZXRjaF9mb3Jt KCRmb3JtKSA6ICgoJHRoaW5nKSA/ICR0aGluZyA6ICd7c21kX3JuZF90eHR9Jyk7DQoNCgkv LyBQaWNrIHRoZSBnaXZlbiAkaXRlbXMga2V5cyBvdXQgb2YgdGhlICRmcm9tIGFycmF5IGFu ZCBkaXNwbGF5IHRoZW0NCgkkb3V0ID0gYXJyYXkoKTsNCgkkY3RyID0gKCRjb3VudD09InVw IikgPyAwIDogJGxpbWl0LTE7DQoJZm9yZWFjaCAoJGl0ZW1zIGFzICRpdGVtKSB7DQoJCSRy ZXBsYWNlbWVudCA9IGFycmF5KA0KCQkJJ3tzbWRfcm5kX3R4dH0nID0+ICggKCRlc2NhcGUg PT0gJ2h0bWwnKSA/IGh0bWxzcGVjaWFsY2hhcnMoJGZyb21bJGl0ZW1dKSA6ICRmcm9tWyRp dGVtXSApLA0KCQkJJ3tzbWRfcm5kX3R4dF9yb3dzfScgPT4gJGxpbWl0LA0KCQkJJ3tzbWRf cm5kX3R4dF90aGlzaW5kZXh9JyA9PiAkY3RyLA0KCQkJJ3tzbWRfcm5kX3R4dF90aGlzcm93 fScgPT4gJGN0ciArIDEsDQoJCQkne3NtZF9ybmRfdHh0X2Nob3Nlbl9pdGVtfScgPT4gJGl0 ZW0sDQoJCSk7DQoJCWlmICgkZGVidWcgPiAxKSB7DQoJCQllY2hvICIrKyBSRVBMQUNFTUVO VFMgKysiOw0KCQkJZG1wKCRyZXBsYWNlbWVudCk7DQoJCX0NCgkJJG91dFtdID0gcGFyc2Uo c3RydHIoJHdoYXQsICRyZXBsYWNlbWVudCkpOw0KCQkkY3RyID0gKCRjb3VudD09InVwIikg PyAkY3RyKzEgOiAkY3RyLTE7DQoJfQ0KDQoJcmV0dXJuIGRvV3JhcCgkb3V0LCAkd3JhcHRh ZywgJGJyZWFrLCAkY2xhc3MpOw0KfSI7czo0OiJ0eXBlIjtzOjE6IjAiO3M6NToiZmxhZ3Mi O3M6MToiMCI7czo1OiJvcmRlciI7czoxOiI1IjtzOjM6Im1kNSI7czozMjoiYThhMTJmYjJh Yjg0YjUzZjRkYTkwZjk5ZTllMDFlMGMiO30=