# Name: smd_multi_choice v0.1 # Type: Client side plugin # Switch / case construct for multiple conditional branches # 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: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjE2OiJzbWRfbXVsdGlfY2hvaWNlIjtzOjY6ImF1dGhvciI7 czoxMToiU3RlZiBEYXdzb24iO3M6MTA6ImF1dGhvcl91cmkiO3M6MjI6Imh0dHA6Ly9zdGVm ZGF3c29uLmNvbS8iO3M6NzoidmVyc2lvbiI7czozOiIwLjEiO3M6MTE6ImRlc2NyaXB0aW9u IjtzOjU3OiJTd2l0Y2ggLyBjYXNlIGNvbnN0cnVjdCBmb3IgbXVsdGlwbGUgY29uZGl0aW9u YWwgYnJhbmNoZXMiO3M6NDoiaGVscCI7czoxNzY2ODoiPGRpdiBpZD0ic21kX2hlbHAiPg0K DQoJPGgxPnNtZF9tdWx0aV9jaG9pY2U8L2gxPg0KDQoJPHA+QSBnZW5lcmljICYjODIxNjtp ZiBjb25kaXRpb24mIzgyMTc7IHRlc3RlciB0aGF0IGNhbiB0YWtlIGFjdGlvbiBpZiBzb21l IGFydGljbGUsIGZpbGUsIGxpbmssIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+LCA8 Y29kZT4mbHQ7dHhwOnZhcmlhYmxlIC8mZ3Q7PC9jb2RlPiBvciBnbG9iYWwgPHNwYW4gY2xh c3M9ImNhcHMiPlBIUDwvc3Bhbj4gdmFyaWFibGUgbWF0Y2hlcyBvbmUgb3IgbW9yZSB0ZXN0 cy4gVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGFuZCBzbWRfaWYgaXMgdGhhdCB5b3Ug ZG8gbm90IG5lZWQgdG8gbmVzdCBzdWNjZXNzaXZlIHRlc3RzIGJlY2F1c2UgaXQgcGVyZm9y bXMgY29tcGFyaXNvbnMgdXNpbmcgYSA8Y29kZT5zd2l0Y2guLi4gY2FzZTwvY29kZT4gY29u c3RydWN0LjwvcD4NCg0KCTxoMj5GZWF0dXJlczwvaDI+DQoNCgk8dWw+DQoJCTxsaT5TdXBw b3J0cyBhbGwgbWFqb3IgYXJ0aWNsZSwgZmlsZSwgYW5kIGxpbmsgdmFyaWFibGVzIHN1Y2gg YXMgc2VjdGlvbiwgY2F0ZWdvcnksIGN1c3RvbSBmaWVsZHMsIGlkLCBxdWVyeSBzdHJpbmcs IGF1dGhvciwgYm9keSwgZXhjZXJwdCwgeWFoZGUgeWFoZGUsIHBsdXMgY2hlY2tpbmcgdXJs IHZhcnMsIHNlcnZlciB2YXJzLCB0eHAgYW5kIDxzcGFuIGNsYXNzPSJjYXBzIj5QSFA8L3Nw YW4+IHZhcnM8L2xpPg0KCQk8bGk+VGVzdHMgaW5jbHVkZSBlcXVhbGl0eSwgbGVzcyB0aGFu LCBncmVhdGVyIHRoYW4sIGRpdmlzaWJsZSBieSwgYmVnaW5zLCBlbmRzLCBjb250YWlucywg YW5kICYjODIxNjtjaGFyYWN0ZXImIzgyMTc7IHRlc3RzIHN1Y2ggaXMgaXNhbHBoYSwgaXNu dW0sIGV0YzwvbGk+DQoJCTxsaT5UZXN0cyBjYW4gZWl0aGVyIHRlcm1pbmF0ZSB3aGVuIGEg bWF0Y2ggaXMgZm91bmQsIG9yICYjODIyMDtmYWxsIHRocm91Z2gmIzgyMjE7IHRvIHRoZSBu ZXh0IHRlc3QgKCYjODIyMDs8c3BhbiBjbGFzcz0iY2FwcyI+QU5EPC9zcGFuPiYjODIyMTsg bG9naWMpPC9saT4NCgkJPGxpPk11bHRpcGxlIHRlc3RzIGNhbiBoYXZlIHRoZSBzYW1lIG91 dGNvbWUgKCYjODIyMDtPUiYjODIyMTsgbG9naWMpPC9saT4NCgkJPGxpPlRoZSB0ZXN0ZWQg ZmllbGQgJmFtcDsgbWF0Y2hlZCB2YWx1ZSBhcmUgPGEgaHJlZj0iI3JlcGxhY2VtZW50cyI+ YXZhaWxhYmxlIHRvIHRoZSBjYXNlIGNvbnRhaW5lcjwvYT4gc28geW91IGNhbiBkaXNwbGF5 IHRoZW08L2xpPg0KCQk8bGk+RGVmYXVsdCBjb25kaXRpb24gaW4gdGhlIGV2ZW50IG5vIHRl c3QgY2FzZXMgbWF0Y2g8L2xpPg0KCTwvdWw+DQoNCgk8aDI+QXV0aG9yPC9oMj4NCg0KCTxw PjxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9jb21tZW50Rm9ybSI+U3RlZiBEYXdz b248L2E+LjwvcD4NCg0KCTxoMj5JbnN0YWxsYXRpb24gLyBVbmluc3RhbGxhdGlvbjwvaDI+ DQoNCgk8cD5Eb3dubG9hZCB0aGUgcGx1Z2luIGZyb20gZWl0aGVyIDxhIGhyZWY9Imh0dHA6 Ly90ZXh0cGF0dGVybi5vcmcvcGx1Z2lucy8xMDc3L3NtZF9tdWx0aV9jaG9pY2UiPnRleHRw YXR0ZXJuLm9yZzwvYT4sIG9yIHRoZSA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20v c3ciPnNvZnR3YXJlIHBhZ2U8L2E+LCBwYXN0ZSB0aGUgY29kZSBpbnRvIHRoZSA8c3BhbiBj bGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBBZG1pbiAtJmd0OyBQbHVnaW5zIHBhbmUsIGluc3Rh bGwgYW5kIGVuYWJsZSB0aGUgcGx1Z2luLiBWaXNpdCB0aGUgPGEgaHJlZj0iaHR0cDovL2Zv cnVtLnRleHRwYXR0ZXJuLmNvbS92aWV3dG9waWMucGhwP2lkPTMwMzc2Ij5mb3J1bSB0aHJl YWQ8L2E+IGZvciBtb3JlIGluZm8gb3IgdG8gcmVwb3J0IG9uIHRoZSBzdWNjZXNzIG9yIG90 aGVyd2lzZSBvZiB0aGUgcGx1Z2luLjwvcD4NCg0KCTxwPlRvIHVuaW5zdGFsbCwgc2ltcGx5 IGRlbGV0ZSBmcm9tIHRoZSBBZG1pbiAtJmd0OyBQbHVnaW5zIHBhZ2UuPC9wPg0KDQoJPGgy PlVzYWdlPC9oMj4NCg0KCTxwPlRoZSBwbHVnaW4gZ2l2ZXMgdHdvIHRhZ3Mgd2hpY2ggbXVz dCBiZSB1c2VkIGluIHRhbmRlbS4gVXNlIDxjb2RlPiZsdDt0eHA6c21kX3N3aXRjaCAvJmd0 OzwvY29kZT4gdG8gdGVsbCB0aGUgcGx1Z2luIHdoaWNoIDxjb2RlPml0ZW08L2NvZGU+IHlv dSBhcmUgaW50ZXJlc3RlZCBpbiBjb21wYXJpbmcgYWdhaW5zdCBhbmQgdGhlbiB1c2Ugb25l IG9yIG1vcmUgPGNvZGU+Jmx0O3R4cDpzbWRfY2FzZSAvJmd0OzwvY29kZT4gdGFncyBpbnNp ZGUgdGhlIHN3aXRjaCB0byB0YWtlIGFjdGlvbiBkZXBlbmRpbmcgb24gdGhlIHZhbHVlLjwv cD4NCg0KCTxwPlVzZSB0aGUgdGFncyBpbiBhbnkgcGFnZSwgZm9ybSBvciBhcnRpY2xlIGNv bnRleHQuIENhbiBhbHNvIGJlIHVzZWQgaW5zaWRlIGZpbGUsIGltYWdlIChpbiB0aGUgZnV0 dXJlKSBvciBsaW5rIGxpc3RzIHRvIHRha2UgYWN0aW9uIGRlcGVuZGluZyBvbiBhdHRyaWJ1 dGVzIG9mIHRoZSBjdXJyZW50IGl0ZW0uPC9wPg0KDQoJPGgzIGNsYXNzPSJ0YWciPnNtZF9z d2l0Y2g8L2gzPg0KDQoJPHAgY2xhc3M9InRhZy1zdW1tYXJ5Ij5BdCB0aGUgcGxhY2UgeW91 IHdpc2ggdG8gY29tcGFyZSBhIGZpZWxkIHdpdGggYSBzZXQgb2YgdmFsdWVzLCBwdXQgdGhp cyBjb250YWluZXIgdGFnLjwvcD4NCg0KCTxoNCBjbGFzcz0iYXR0cyAiPkF0dHJpYnV0ZXM8 L2g0Pg0KDQoJPHVsPg0KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIG1hbmQiPml0ZW08 L3NwYW4+IDogdGhlIHRoaW5nIHlvdSBhcmUgaW50ZXJlc3RlZCBpbi4gSXQgY291bGQgYmUg dGhlIHJlc3VsdCBvZiBhbm90aGVyIHRhZy1pbi10YWcsIGEgZml4ZWQgc3RyaW5nKCEpLCBv ciBhIHZhcmlhYmxlIGlmIHlvdSBwcmVmaXggdGhlIGl0ZW0gd2l0aCA8Y29kZT4/PC9jb2Rl Pi4gRXhhbXBsZSB2YXJpYWJsZXMgYXJlIDxjb2RlPj9hcnRpY2xlX2ltYWdlPC9jb2RlPiwg PGNvZGU+P3VybF90aXRsZTwvY29kZT4sIDxjb2RlPj9teV90eHBfdmFyPC9jb2RlPiwgPGNv ZGU+P215X3VybF92YXI8L2NvZGU+LCBhbmQgc28gb248L2xpPg0KCQk8bGk+PHNwYW4gY2xh c3M9ImF0dC1uYW1lIj5sb29rX2luPC9zcGFuPiA6IGxpc3Qgb2YgcGxhY2VzIHRvIGxvb2sg Zm9yIHRoZSA8Y29kZT5pdGVtPC9jb2RlPi4gRGVmYXVsdDogPGNvZGU+U01EX0FMTDwvY29k ZT4gd2hpY2ggY2hlY2tzIGFsbCBpdGVtcyBpbiB0aGUgZm9sbG93aW5nIGxpc3QsIGluIG9y ZGVyLiBZb3Ugc2hvdWxkIG5ldmVyIG5lZWQgdG8gY2hhbmdlIHRoaXMsIGJ1dCB5b3UgbWF5 IGNob29zZSBmcm9tIGFueSBvZiB0aGUgZm9sbG93aW5nIGFuZCBjb21tYS1zZXBhcmF0ZSBl YWNoIG9uZSB5b3Ugd2lzaCB0byBjb25zaWRlcjoNCgk8dWw+DQoJCTxsaT48c3BhbiBjbGFz cz0iYXR0LXZhbCI+dHhwdmFyPC9zcGFuPiA6IGEgPGNvZGU+Jmx0O3R4cDp2YXJpYWJsZSAv Jmd0OzwvY29kZT48L2xpPg0KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC12YWwiPnN2cnZhcjwv c3Bhbj4gOiBzb21ldGhpbmcgaW4gPGNvZGU+JF9TRVJWRVI8L2NvZGU+PC9saT4NCgkJPGxp PjxzcGFuIGNsYXNzPSJhdHQtdmFsIj5maWxlPC9zcGFuPiA6IHZhcmlhYmxlIGZyb20gdGhl IGN1cnJlbnQgZmlsZSBpbiBhIGZpbGVfZG93bmxvYWRfbGlzdDwvbGk+DQoJCTxsaT48c3Bh biBjbGFzcz0iYXR0LXZhbCI+bGluazwvc3Bhbj4gOiB2YXJpYWJsZSBmcm9tIHRoZSBjdXJy ZW50IGxpbmsgaW4gYSBsaW5rbGlzdDwvbGk+DQoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LXZh bCI+Z2JsPC9zcGFuPiA6IHZhcmlhYmxlIGZyb20gdGhlIGdsb2JhbCBhcnRpY2xlIGNvbnRl eHQgKGEuay5hLiA8Y29kZT4kcHJldGV4dDwvY29kZT4pPC9saT4NCgkJPGxpPjxzcGFuIGNs YXNzPSJhdHQtdmFsIj5hcnRpY2xlPC9zcGFuPiA6IHZhcmlhYmxlIGZyb20gdGhlIGN1cnJl bnQgYXJ0aWNsZTwvbGk+DQoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LXZhbCI+dXJsdmFyPC9z cGFuPiA6IHNvbWV0aGluZyBpbiA8Y29kZT4kX0dFVDwvY29kZT4gb3IgPGNvZGU+JF9QT1NU PC9jb2RlPjwvbGk+DQoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LXZhbCI+cGhwdmFyPC9zcGFu PiA6IHNvbWV0aGluZyBpbiB0aGUgZ2xvYmFsIHNjb3BlPC9saT4NCgk8L3VsPjwvbGk+DQoJ CTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmxlYXZlX2VtcHR5PC9zcGFuPiA6IGluIG1v c3QgY2FzZXMgaWYgYSB2YXJpYWJsZSBpcyBub3Qgc2V0IHlvdSB3aWxsIHdhbnQgaXQgdG8g cmVtYWluIHRoYXQgd2F5IHNvIHlvdXIgc3dpdGNoIHdpbGwgZG8gbm90aGluZy4gQnV0IHlv dSBtYXkgZGVjaWRlIHRoYXQgeW91IHdhbnQgdGhlIHZhcmlhYmxlIG5hbWUgaXRzZWxmIHRv IGJlY29tZSB0aGUgPGNvZGU+aXRlbTwvY29kZT4sIGkuZS4gaWYgeW91IHVzZWQgPGNvZGU+ aXRlbT0mcXVvdDs/cXVhbnRpdHkmcXVvdDs8L2NvZGU+IGFuZCB0aGVyZSB3YXMgbm8gJiM4 MjE2O3F1YW50aXR5JiM4MjE3OyB2YXJpYWJsZSBhbnl3aGVyZSwgaXQgd291bGQgY29tcGFy ZSBhZ2FpbnN0IHRoZSBhY3R1YWwgd29yZCAmIzgyMTY7cXVhbnRpdHkmIzgyMTc7LiBUaGlz IG1heSBiZSB1c2VmdWwgd2hlbiBzcGVjaWZ5aW5nIGRlZmF1bHRzPC9saT4NCgkJPGxpPjxz cGFuIGNsYXNzPSJhdHQtbmFtZSI+ZGVidWc8L3NwYW4+IDogc2V0IHRvIDEgdG8gdHVybiBv biBkaWFnbm9zdGljIGluZm8gZm9yIGFsbCBjb250YWluZWQgc21kX2Nhc2UgdGFnczwvbGk+ DQoJPC91bD4NCg0KCTxoMyBjbGFzcz0idGFnIj5zbWRfY2FzZTwvaDM+DQoNCgk8cCBjbGFz cz0idGFnLXN1bW1hcnkiPkluc2lkZSB5b3VyIDxjb2RlPiZsdDt0eHA6c21kX3N3aXRjaCZn dDs8L2NvZGU+IGNvbnRhaW5lciBwdXQgb25lIG9yIG1vcmUgPGNvZGU+Jmx0O3R4cDpzbWRf Y2FzZSAvJmd0OzwvY29kZT4gdGFncyB0byB0ZXN0IHRoZSA8Y29kZT5pdGVtPC9jb2RlPiBh Z2FpbnN0IGVhY2ggc3VjY2Vzc2l2ZSB2YWx1ZS4gQ2FzZSB0YWdzIGFyZSB1c3VhbGx5IGNv bnRhaW5lcnMgdGhhdCB3aWxsIGV4ZWN1dGUgdGhlIGVuY2xvc2VkIGNvbnRlbnQgaWYgdGhl IDxjb2RlPnZhbHVlPC9jb2RlPiBtYXRjaGVzIHRoZSA8Y29kZT5pdGVtPC9jb2RlPiwgYnV0 IHNlZSA8YSBocmVmPSIjZWc0Ij5leGFtcGxlIDQ8L2E+IGZvciB1c2UgYXMgYSBzZWxmLWNs b3NpbmcgdGFnLjwvcD4NCg0KCTxoNCBjbGFzcz0iYXR0cyAiPkF0dHJpYnV0ZXM8L2g0Pg0K DQoJPHVsPg0KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj52YWx1ZTwvc3Bhbj4gOiB0 aGUgdmFsdWUgeW91IHdhbnQgdG8gY2hlY2sgYWdhaW5zdC4gSXQgY2FuIGVpdGhlciBiZSBh IGZpeGVkIHZhbHVlIG9yIGFub3RoZXIgZmllbGQgaW4gdGhlIGN1cnJlbnQgY29udGV4dCAo c2VlIHRoZSA8Y29kZT4mbHQ7dHhwOnNtZF9zd2l0Y2ggLyZndDs8L2NvZGU+IHRhZyYjODIx NztzIDxjb2RlPml0ZW08L2NvZGU+IGF0dHJpYnV0ZSBmb3IgaW5mbykuIERlZmF1bHQ6IHVu c2V0PC9saT4NCgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+dHlwZTwvc3Bhbj4gOiB0 aGUgdHlwZSBvZiB0ZXN0IHlvdSB3YW50IHRvIHBlcmZvcm06DQoJPHVsPg0KCQk8bGk+PHNw YW4gY2xhc3M9ImF0dC12YWwiPmVxPC9zcGFuPiA6IEVxdWFsaXR5ICh0aGUgZGVmYXVsdCk8 L2xpPg0KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC12YWwiPmd0PC9zcGFuPiA6IDxjb2RlPml0 ZW08L2NvZGU+IGlzIGdyZWF0ZXIgdGhhbiA8Y29kZT52YWx1ZTwvY29kZT48L2xpPg0KCQk8 bGk+PHNwYW4gY2xhc3M9ImF0dC12YWwiPmdlPC9zcGFuPiA6IDxjb2RlPml0ZW08L2NvZGU+ IGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byA8Y29kZT52YWx1ZTwvY29kZT48L2xpPg0K CQk8bGk+PHNwYW4gY2xhc3M9ImF0dC12YWwiPmx0PC9zcGFuPiA6IDxjb2RlPml0ZW08L2Nv ZGU+IGlzIGxlc3MgdGhhbiA8Y29kZT52YWx1ZTwvY29kZT48L2xpPg0KCQk8bGk+PHNwYW4g Y2xhc3M9ImF0dC12YWwiPmxlPC9zcGFuPiA6IDxjb2RlPml0ZW08L2NvZGU+IGlzIGxlc3Mg dGhhbiBvciBlcXVhbCB0byA8Y29kZT52YWx1ZTwvY29kZT48L2xpPg0KCQk8bGk+PHNwYW4g Y2xhc3M9ImF0dC12YWwiPmRpdmlzaWJsZTwvc3Bhbj4gOiA8Y29kZT5pdGVtPC9jb2RlPiBp cyB3aG9sbHkgZGl2aXNpYmxlIGJ5IDxjb2RlPnZhbHVlPC9jb2RlPjxzdXAgY2xhc3M9ImZv b3Rub3RlIj48YSBocmVmPSIjZm4xNTczNzYwODU3NDlkZjgyY2Y0M2YxNiI+MTwvYT48L3N1 cD48L2xpPg0KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC12YWwiPmJlZ2luczwvc3Bhbj4gOiA8 Y29kZT5pdGVtPC9jb2RlPiBzdGFydHMgd2l0aCA8Y29kZT52YWx1ZTwvY29kZT48L2xpPg0K CQk8bGk+PHNwYW4gY2xhc3M9ImF0dC12YWwiPmNvbnRhaW5zPC9zcGFuPiA6IDxjb2RlPml0 ZW08L2NvZGU+IGhhcyA8Y29kZT52YWx1ZTwvY29kZT4gc29tZXdoZXJlIHdpdGhpbiBpdHMg Y29udGVudHM8L2xpPg0KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC12YWwiPmVuZHM8L3NwYW4+ IDogPGNvZGU+aXRlbTwvY29kZT4gZW5kcyB3aXRoIDxjb2RlPnZhbHVlPC9jb2RlPjwvbGk+ DQoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LXZhbCI+aXNudW08L3NwYW4+IDogPGNvZGU+dmFs dWU8L2NvZGU+IGlzIG1hZGUgdXAgZW50aXJlbHkgb2YgZGlnaXRzPC9saT4NCgkJPGxpPjxz cGFuIGNsYXNzPSJhdHQtdmFsIj5pc2FscGhhPC9zcGFuPiA6IDxjb2RlPnZhbHVlPC9jb2Rl PiBpcyBtYWRlIHVwIGVudGlyZWx5IG9mIGFscGhhYmV0aWMgY2hhcmFjdGVyczwvbGk+DQoJ CTxsaT48c3BhbiBjbGFzcz0iYXR0LXZhbCI+aXNhbG51bTwvc3Bhbj4gOiA8Y29kZT52YWx1 ZTwvY29kZT4gaXMgbWFkZSB1cCBlbnRpcmVseSBvZiBhbHBoYW51bWVyaWMgY2hhcmFjdGVy czwvbGk+DQoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LXZhbCI+aXNsb3dlcjwvc3Bhbj4gOiA8 Y29kZT52YWx1ZTwvY29kZT4gaXMgbWFkZSB1cCBlbnRpcmVseSBvZiBsb3dlciBjYXNlIGNo YXJhY3RlcnM8c3VwIGNsYXNzPSJmb290bm90ZSI+PGEgaHJlZj0iI2ZuMTczNzcxMTI1MTQ5 ZGY4MmNmNDQ2ZTYiPjI8L2E+PC9zdXA+PC9saT4NCgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQt dmFsIj5pc3VwcGVyPC9zcGFuPiA6IDxjb2RlPnZhbHVlPC9jb2RlPiBpcyBtYWRlIHVwIGVu dGlyZWx5IG9mIHVwcGVyIGNhc2UgY2hhcmFjdGVyczxzdXAgY2xhc3M9ImZvb3Rub3RlIj48 YSBocmVmPSIjZm4xNzM3NzExMjUxNDlkZjgyY2Y0NDZlNiI+MjwvYT48L3N1cD48L2xpPg0K CQk8bGk+PHNwYW4gY2xhc3M9ImF0dC12YWwiPmlzcHVuY3Q8L3NwYW4+IDogPGNvZGU+dmFs dWU8L2NvZGU+IGlzIG1hZGUgdXAgZW50aXJlbHkgb2YgcHVuY3R1YXRpb24gY2hhcmFjdGVy czwvbGk+DQoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LXZhbCI+aXNzcGFjZTwvc3Bhbj4gOiA8 Y29kZT52YWx1ZTwvY29kZT4gaXMgbWFkZSB1cCBlbnRpcmVseSBvZiAmIzgyMTY7d2hpdGVz cGFjZSYjODIxNzsgY2hhcmFjdGVyczwvbGk+DQoJPC91bD48L2xpPg0KCTwvdWw+DQoNCgk8 dWw+DQoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmxvb2tfaW48L3NwYW4+IDogZXhh Y3RseSB0aGUgc2FtZSBvcHRpb25zIGFzIGZvciBzbWRfc3dpdGNoIGV4Y2VwdCB0aGV5IGFw cGx5IHRvIHRoZSA8Y29kZT52YWx1ZTwvY29kZT4gYXR0cmlidXRlPC9saT4NCgkJPGxpPjxz cGFuIGNsYXNzPSJhdHQtbmFtZSI+bGVhdmVfZW1wdHk8L3NwYW4+IDogZXhhY3RseSB0aGUg c2FtZSBiZWhhdmlvdXIgZm9yIHNtZF9zd2l0Y2ggZXhjZXB0IGl0IGFwcGxpZXMgdG8gdGhl IDxjb2RlPnZhbHVlPC9jb2RlPiBhdHRyaWJ1dGU8L2xpPg0KCQk8bGk+PHNwYW4gY2xhc3M9 ImF0dC1uYW1lIj5jYXNlX3NlbnNpdGl2ZTwvc3Bhbj4gOiB3aGV0aGVyIHlvdSB3aXNoIHRv IHRha2UgY2FzZSBpbnRvIGFjY291bnQgd2hlbiBjb21wYXJlIDxjb2RlPml0ZW08L2NvZGU+ IGFuZCA8Y29kZT52YWx1ZTwvY29kZT47IDE9eWVzLCAwPW5vLiBEZWZhdWx0OiAwPC9saT4N CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+bnVtZXJpYzwvc3Bhbj4gOiB3aGV0aGVy IHlvdSB3aXNoIHRvIGNvbXBhcmUgdGhlIHZhbHVlcyBudW1lcmljYWxseSAoMSkgaW5zdGVh ZCBvZiBhbHBoYS1udW1lcmljYWxseSAoMCkuIFVzZWZ1bCB3aGVuIGNvbXBhcmluZyBudW1i ZXJzIGJlY2F1c2UgJiM4MjE2O2YmIzgyMTc7IGlzIGFjdHVhbGx5IGdyZWF0ZXIgdGhhbiAm IzgyMTY7MSYjODIxNzsgaW4gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5BU0NJSTwvc3Bhbj4g dGFibGUuIERlZmF1bHQ6IDAuIE5vdGUgdGhhdCBhIG51bWVyaWMgdGVzdCBpcyBpbXBsaWVk IGlmIHVzaW5nIDxjb2RlPnR5cGU9JnF1b3Q7ZGl2aXNpYmxlJnF1b3Q7PC9jb2RlPjwvbGk+ DQoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmZhbGx0aHJ1PC9zcGFuPiA6IHVuZGVy IG5vcm1hbCBjaXJjdW1zdGFuY2VzLCB3aGVuIG9uZSBvZiB0aGUgdGVzdHMgbWF0Y2hlcyBh bnkgZnVydGhlciB0ZXN0cyBhcmUgaWdub3JlZC4gVGh1cyB0aGUgPGVtPm9yZGVyIG9mIHRo ZSB0ZXN0cyBpcyBpbXBvcnRhbnQ8L2VtPi4gU29tZXRpbWVzIHlvdSBtYXkgd2lzaCB0byB0 YWtlIG1vcmUgdGhhbiBvbmUgYWN0aW9uLCBlLmcuIGlmIHRoZSBpdGVtIGlzIGdyZWF0ZXIg dGhhbiB2YWx1ZTEgdGhlbiBkaXNwbGF5IHNvbWV0aGluZywgYW5kIGFsc28gZGlzcGxheSBz b21ldGhpbmcgZWxzZSBpZiBpdCBiZWdpbnMgd2l0aCB2YWx1ZTIuIFRoaXMgdHlwZSBvZiAm IzgyMjA7PHNwYW4gY2xhc3M9ImNhcHMiPkFORDwvc3Bhbj4mIzgyMjE7IGNvbmRpdGlvbiBp cyBhY2hpZXZlZCBieSBzZXR0aW5nIDxjb2RlPmZhbGx0aHJ1PSZxdW90OzEmcXVvdDs8L2Nv ZGU+LiBJbiB0aGUgZXZlbnQgdGhlIGNhc2UgbWF0Y2hlcyB0aGlzIGNvbmRpdGlvbiwgdGhl IG5leHQgY2FzZSB0YWcgd2lsbCBzdGlsbCBiZSBjaGVja2VkLiBGb3IgJiM4MjIwO09SJiM4 MjIxOyBjb25kaXRpb25zLCBzZWUgJiM4MjIwO2V4YW1wbGUgNDojZWc0PC9saT4NCgkJPGxp PjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+ZGVmYXVsdDwvc3Bhbj4gOiBpbnNpZGUgYW55IHN3 aXRjaCwgb25lIGFuZCBvbmx5IG9uZSBvZiB5b3VyIGNhc2UgdGFncyBjYW4gYmUgZGVzaWdu YXRlZCBhICYjODIxNjtkZWZhdWx0JiM4MjE3OyBieSBzZXR0aW5nIHRoaXMgYXR0cmlidXRl IHRvIDEuIFRoaXMgZGVmYXVsdCBicmFuY2ggd2lsbCBiZSB0YWtlbiBpZiBub25lIG9mIHRo ZSBwcmVjZWRpbmcgY2FzZSB0YWdzIG1hdGNoIGFueXRoaW5nLiBJdCBpcyB1c3VhbGx5IHRo ZSBsYXN0IHRhZyBpbiBhIHN3aXRjaC4gRGVmYXVsdDogMDwvbGk+DQoJCTxsaT48c3BhbiBj bGFzcz0iYXR0LW5hbWUiPmRlYnVnPC9zcGFuPiA6IHNldCB0byAxIHRvIHNob3cgZGlhZ25v c2l0YyBpbmZvcm1hdGlvbiBmb3IgdGhpcyBjYXNlIHRhZyBvbmx5LiBEZWZhdWx0OiAwPC9s aT4NCgk8L3VsPg0KDQoJPHAgaWQ9ImZuMTU3Mzc2MDg1NzQ5ZGY4MmNmNDNmMTYiIGNsYXNz PSJmb290bm90ZSI+PHN1cD4xPC9zdXA+IFRoaXMgdGVzdCBmb3JjZXMgJiM4MjE2O251bWVy aWMmIzgyMTc7IG9uIGF1dG9tdGljYWxseS4gQWxzbywgMCBpcyByZWdhcmRlZCBhcyA8ZW0+ bm90PC9lbT4gd2hvbGx5IGRpdmlzaWJsZSBieSBhbnkgdmFsdWU8L3A+DQoNCgk8cCBpZD0i Zm4xNzM3NzExMjUxNDlkZjgyY2Y0NDZlNiIgY2xhc3M9ImZvb3Rub3RlIj48c3VwPjI8L3N1 cD4gY2FzZV9zZW5zaXRpdmUgaXMgYXV0b21hdGljYWxseSBzZXQgdG8gMSBmb3IgdGhlc2Ug dGVzdHM8L3A+DQoNCgk8aDIgaWQ9InJlcGxhY2VtZW50cyI+UmVwbGFjZW1lbnQgdmFyaWFi bGVzPC9oMj4NCg0KCTxwPlNvbWUgcmVwbGFjZW1lbnQgdmFyaWFibGVzIGFyZSBhdmFpbGFi bGUgd2l0aGluIHRoZSA8Y29kZT4mbHQ7dHhwOnNtZF9jYXNlJmd0OzwvY29kZT4gY29udGFp bmVyIHNvIHlvdSBtYXkgb3V0cHV0IHRoZSBtYXRjaGVkIHZhbHVlcyBkaXJlY3RseSwgZm9y IGV4YW1wbGUsIGluIGVycm9yIG1lc3NhZ2VzOjwvcD4NCg0KCTxvbD4NCgkJPGxpPjxjb2Rl PntzbWRfbWNfaXRlbX08L2NvZGU+IChvciA8Y29kZT57c21kX3N3aXRjaH08L2NvZGU+KTog dGhlIHZhbHVlIG9mIHRoZSBzd2l0Y2ggPGNvZGU+aXRlbTwvY29kZT4gYmVpbmcgbG9va2Vk IGF0PC9saT4NCgkJPGxpPjxjb2RlPntzbWRfbWNfdmFsdWV9PC9jb2RlPiAob3IgPGNvZGU+ e3NtZF9jYXNlfTwvY29kZT4pOiB0aGUgdmFsdWUgb2YgdGhlIGNhc2UgPGNvZGU+dmFsdWU8 L2NvZGU+IHRoYXQgbWF0Y2hlZCB0aGUgPGNvZGU+aXRlbTwvY29kZT48L2xpPg0KCTwvb2w+ DQoNCgk8cD5XaGVuIHRlc3RpbmcgbW9yZSB0aGFuIG9uZSB2YWx1ZSB0byBwcm9kdWNlIGEg c2luZ2xlIG91dGNvbWUsIHRoZSA8ZW0+bW9zdCByZWNlbnQ8L2VtPiB2YWx1ZSB0aGF0IG1h dGNoZXMgaXMgdGhlIG9uZSBhc3NpZ25lZCB0byB0aGUgcmVwbGFjZW1lbnQgdmFyaWFibGUu PC9wPg0KDQoJPGgyIGlkPSJleGFtcGxlcyI+RXhhbXBsZXM8L2gyPg0KDQoJPGgzIGlkPSJl ZzEiPkV4YW1wbGUgMTwvaDM+DQoNCgk8cD5PbiB5b3VyIGVycm9yX2RlZmF1bHQgcGFnZSB5 b3UgY291bGQgcHV0IHRoaXM6PC9wPg0KDQo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xh c3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9zd2l0Y2ggaXRlbT0mcXVvdDs/dHhwX2Vycm9yX2Nv ZGUmcXVvdDsmZ3Q7DQogICAmbHQ7dHhwOnNtZF9jYXNlIHZhbHVlPSZxdW90OzQwMyZxdW90 OyZndDsNCiAgICAgICZsdDtwJmd0O0ZvcmJpZGRlbiBhY2Nlc3MuIENvZGU6IDQwMyZsdDsv cCZndDsNCiAgICZsdDsvdHhwOnNtZF9jYXNlJmd0Ow0KICAgJmx0O3R4cDpzbWRfY2FzZSB2 YWx1ZT0mcXVvdDs0MDQmcXVvdDsmZ3Q7DQogICAgICAmbHQ7cCZndDtQYWdlIG5vdCBmb3Vu ZC4gQ29kZTogNDA0Jmx0Oy9wJmd0Ow0KICAgJmx0Oy90eHA6c21kX2Nhc2UmZ3Q7DQogICAm bHQ7dHhwOnNtZF9jYXNlIHZhbHVlPSZxdW90OzUwMCZxdW90OyZndDsNCiAgICAgICZsdDtw Jmd0O1NvbWV0aGluZyB3ZW50IGhvcnJpYmx5IHdyb25nLiBDb2RlOiA1MDAmbHQ7L3AmZ3Q7 DQogICAmbHQ7L3R4cDpzbWRfY2FzZSZndDsNCiAgICZsdDt0eHA6c21kX2Nhc2UgZGVmYXVs dD0mcXVvdDsxJnF1b3Q7Jmd0Ow0KICAgICAgJmx0O3AmZ3Q7V2hvb3BzISBFcnJvciBjb2Rl OiB7c21kX21jX2l0ZW19IG9jY3VycmVkJmx0Oy9wJmd0Ow0KICAgJmx0Oy90eHA6c21kX2Nh c2UmZ3Q7DQombHQ7L3R4cDpzbWRfc3dpdGNoJmd0Ow0KPC9jb2RlPjwvcHJlPg0KDQoJPGgz IGlkPSJlZzIiPkV4YW1wbGUgMjwvaDM+DQoNCgk8cD5UZXN0IHNvbWUgdmFsdWUgb2J0YWlu ZWQgZnJvbSBwdWJsaWMtc2lkZSBmb3JtIGlucHV0OjwvcD4NCg0KPHByZSBjbGFzcz0iYmxv Y2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfc3dpdGNoIGl0ZW09JnF1b3Q7 P3F1YW50aXR5JnF1b3Q7IGxvb2tfaW49JnF1b3Q7dXJsdmFyJnF1b3Q7Jmd0Ow0KICAgJmx0 O3R4cDpzbWRfY2FzZSB2YWx1ZT0mcXVvdDsyJnF1b3Q7IHR5cGU9JnF1b3Q7bHQmcXVvdDsN CiAgICAgICAgbnVtZXJpYz0mcXVvdDsxJnF1b3Q7Jmd0Ow0KICAgICAgJmx0O3AmZ3Q7VmFs dWUge3NtZF9zd2l0Y2h9IGlzIHRvbyBzbWFsbCZsdDsvcCZndDsNCiAgICZsdDsvdHhwOnNt ZF9jYXNlJmd0Ow0KICAgJmx0O3R4cDpzbWRfY2FzZSB2YWx1ZT0mcXVvdDsyMCZxdW90OyB0 eXBlPSZxdW90O2d0JnF1b3Q7DQogICAgICAgIG51bWVyaWM9JnF1b3Q7MSZxdW90OyZndDsN CiAgICAgICZsdDtwJmd0O1ZhbHVlIHtzbWRfc3dpdGNofSBpcyB0b28gbGFyZ2UmbHQ7L3Am Z3Q7DQogICAmbHQ7L3R4cDpzbWRfY2FzZSZndDsNCiZsdDsvdHhwOnNtZF9zd2l0Y2gmZ3Q7 DQo8L2NvZGU+PC9wcmU+DQoNCgk8aDMgaWQ9ImVnMyI+RXhhbXBsZSAzPC9oMz4NCg0KCTxw PkJ1aWxkaW5nIG9uIDxhIGhyZWY9IiNlZzIiPmV4YW1wbGUgMjwvYT4sIHRoaXMgcnVucyB0 aGUgMm5kIGFuZCAzcmQgdGVzdHMgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSAybmQgb25l IHJldHVybmVkIHRydWUuPC9wPg0KDQo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9 ImJsb2NrIj4mbHQ7dHhwOnNtZF9zd2l0Y2ggaXRlbT0mcXVvdDs/cXVhbnRpdHkmcXVvdDsg bG9va19pbj0mcXVvdDt1cmx2YXImcXVvdDsmZ3Q7DQogICAmbHQ7dHhwOnNtZF9jYXNlIHZh bHVlPSZxdW90OzImcXVvdDsgdHlwZT0mcXVvdDtsdCZxdW90Ow0KICAgICAgICBudW1lcmlj PSZxdW90OzEmcXVvdDsmZ3Q7DQogICAgICBWYWx1ZSB7c21kX3N3aXRjaH0gaXMgdG9vIHNt YWxsJmx0O2JyIC8mZ3Q7DQogICAmbHQ7L3R4cDpzbWRfY2FzZSZndDsNCiAgICZsdDt0eHA6 c21kX2Nhc2UgdmFsdWU9JnF1b3Q7MjAmcXVvdDsgdHlwZT0mcXVvdDtndCZxdW90Ow0KICAg ICAgICBudW1lcmljPSZxdW90OzEmcXVvdDsgZmFsbHRocnU9JnF1b3Q7MSZxdW90OyZndDsN CiAgICAgIFZhbHVlIHtzbWRfc3dpdGNofSBpcyB0b28gbGFyZ2UmbHQ7YnIgLyZndDsNCiAg ICZsdDsvdHhwOnNtZF9jYXNlJmd0Ow0KICAgJmx0O3R4cDpzbWRfY2FzZSB2YWx1ZT0mcXVv dDsxMDAmcXVvdDsgdHlwZT0mcXVvdDtndCZxdW90Ow0KICAgICAgICBudW1lcmljPSZxdW90 OzEmcXVvdDsmZ3Q7DQogICAgICAuLi4gYW5kIG91dCBvZiB0aGlzIHdvcmxkISAmbHQ7YnIg LyZndDsNCiAgICZsdDsvdHhwOnNtZF9jYXNlJmd0Ow0KICAgJmx0O3R4cDpzbWRfY2FzZSBk ZWZhdWx0PSZxdW90OzEmcXVvdDsmZ3Q7DQogICAgICBFdmVyeXRoaW5nJiMzOTtzIGZpbmUN CiAgICZsdDsvdHhwOnNtZF9jYXNlJmd0Ow0KJmx0Oy90eHA6c21kX3N3aXRjaCZndDsNCjwv Y29kZT48L3ByZT4NCg0KCTxwPlRodXMsIHlvdSBzZWUgdGhlIGZvbGxvd2luZyBpZiB5b3Ug YWRkIHRoZXNlIHZhbHVlcyB0byB0aGUgYWRkcmVzcyBiYXI6PC9wPg0KDQoJPHVsPg0KCQk8 bGk+PGNvZGU+P3F1YW50aXR5PTE8L2NvZGU+IDogVmFsdWUgMSBpcyB0b28gc21hbGw8L2xp Pg0KCQk8bGk+PGNvZGU+P3F1YW50aXR5PTE1PC9jb2RlPiA6IEV2ZXJ5dGhpbmcgaXMgZmlu ZTwvbGk+DQoJCTxsaT48Y29kZT4/cXVhbnRpdHk9MjU8L2NvZGU+IDogVmFsdWUgMjUgaXMg dG9vIGxhcmdlPC9saT4NCgkJPGxpPjxjb2RlPj9xdWFudGl0eT0xMjU8L2NvZGU+IDogVmFs dWUgMTI1IGlzIHRvbyBsYXJnZSYjODIzMDsgYW5kIG91dCBvZiB0aGlzIHdvcmxkITwvbGk+ DQoJPC91bD4NCg0KCTxoMyBpZD0iZWc0Ij5FeGFtcGxlIDQ8L2gzPg0KDQoJPHA+U29tZXRp bWVzIHlvdSBtYXkgd2FudCB0byBwZXJmb3JtIHRoZSBzYW1lIGFjdGlvbiBmb3IgYSBudW1i ZXIgb2YgbWF0Y2hlcy4gRm9yIHRoZXNlIGluc3RhbmNlcyB5b3UgbWF5IHVzZSB0aGUgPGNv ZGU+Jmx0O3R4cDpzbWRfY2FzZSAvJmd0OzwvY29kZT4gdGFnIGluIGl0cyBTaW5nbGUgZm9y bS4gTGlzdCBhbGwgdGhlIGNhc2VzIHRoYXQgeW91IHdhbnQgdG8gaGF2ZSB0aGUgc2FtZSBv dXRjb21lLCB0aGVuIHVzZSB0aGUgY29udGFpbmVyIG9mIHRoZSBsYXN0IG9uZSB0byBwZXJm b3JtIHRoZSBhY3Rpb24gaWYgYW55IG9mIHRoZSBwcmVjZWRpbmcgY2FzZXMgbWF0Y2hlZC48 L3A+DQoNCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6 c21kX3N3aXRjaCBpdGVtPSZxdW90Oz9jdXN0b20xJnF1b3Q7Jmd0Ow0KICAgJmx0O3R4cDpz bWRfY2FzZSB2YWx1ZT0mcXVvdDsyJnF1b3Q7IHR5cGU9JnF1b3Q7ZGl2aXNpYmxlJnF1b3Q7 IC8mZ3Q7DQogICAmbHQ7dHhwOnNtZF9jYXNlIHZhbHVlPSZxdW90OzQmcXVvdDsgdHlwZT0m cXVvdDtkaXZpc2libGUmcXVvdDsgLyZndDsNCiAgICZsdDt0eHA6c21kX2Nhc2UgdmFsdWU9 JnF1b3Q7MTAmcXVvdDsgdHlwZT0mcXVvdDtkaXZpc2libGUmcXVvdDsmZ3Q7DQogICAgIHtz bWRfc3dpdGNofSBpcyBkaXZpc2libGUgYnkgMiwgNCBvciAxMA0KICAgJmx0Oy90eHA6c21k X2Nhc2UmZ3Q7DQogICAmbHQ7dHhwOnNtZF9jYXNlIHZhbHVlPSZxdW90OzUmcXVvdDsgdHlw ZT0mcXVvdDtlbmRzJnF1b3Q7IC8mZ3Q7DQogICAmbHQ7dHhwOnNtZF9jYXNlIHZhbHVlPSZx dW90OzAmcXVvdDsgdHlwZT0mcXVvdDtlbmRzJnF1b3Q7Jmd0Ow0KICAgICBZYXkhIE51bWJl cnMgZW5kaW5nIGluIDUgb3IgMCB3aW4gYSB0ZWRkeS4NCiAgICZsdDsvdHhwOnNtZF9jYXNl Jmd0Ow0KJmx0Oy90eHA6c21kX3N3aXRjaCZndDsNCjwvY29kZT48L3ByZT4NCg0KCTxwPklm IHlvdSBhZGQgPGNvZGU+ZmFsbHRocnU9JnF1b3Q7MSZxdW90OzwvY29kZT4gdG8gdGhlIDxj b2RlPnZhbHVlPSZxdW90OzEwJnF1b3Q7PC9jb2RlPiBjYXNlIHRhZywgYm90aCAmIzgyMTY7 ZGl2aXNpYmxlJiM4MjE3OyBhbmQgJiM4MjE2O3RlZGR5IGJlYXImIzgyMTc7IHNldHMgb2Yg Y29uZGl0aW9ucyB3b3VsZCBiZSB0ZXN0ZWQgYW5kIHlvdSYjODIxNztkIHNlZSB2YXJ5aW5n IGNvbWJpbmF0aW9ucyBvZiB0aGUgb3V0cHV0IGJhc2VkIG9uIHRoZSBjb250ZW50cyBvZiBj dXN0b20xLjwvcD4NCg0KCTxoMyBpZD0iZWc1Ij5FeGFtcGxlIDU8L2gzPg0KDQoJPHA+VGhp cyBvbmUgY2hlY2tzIHRoYXQgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHZh cmlhYmxlIDxjb2RlPnF0eTwvY29kZT4gaXMgd2l0aGluIHRoZSByYW5nZSBvZiBhIDxjb2Rl PnN0b2NrPC9jb2RlPiBjdXN0b20gZmllbGQuPC9wPg0KDQo8cHJlIGNsYXNzPSJibG9jayI+ PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9zd2l0Y2ggaXRlbT0mcXVvdDs/cXR5 JnF1b3Q7Jmd0Ow0KICAgJmx0O3R4cDpzbWRfY2FzZSB0eXBlPSZxdW90O2lzYWxwaGEmcXVv dDsgLyZndDsNCiAgICZsdDt0eHA6c21kX2Nhc2UgdmFsdWU9JnF1b3Q7MCZxdW90OyZndDsN CiAgICAgIFBsZWFzZSBjaG9vc2UgYSB2YWxpZCBvcmRlciBxdWFudGl0eQ0KICAgJmx0Oy90 eHA6c21kX2Nhc2UmZ3Q7DQogICAmbHQ7dHhwOnNtZF9jYXNlIHZhbHVlPSZxdW90Oz9zdG9j ayZxdW90OyB0eXBlPSZxdW90O2x0JnF1b3Q7Jmd0Ow0KICAgICAgVGhlcmUgYXJlIGVub3Vn aCBvZiB0aG9zZSBpbiBzdG9jay4gUGxhY2Ugb3JkZXI/DQogICAmbHQ7L3R4cDpzbWRfY2Fz ZSZndDsNCiAgICZsdDt0eHA6c21kX2Nhc2UgZGVmYXVsdD0mcXVvdDsxJnF1b3Q7IHZhbHVl PSZxdW90Oz9zdG9jayZxdW90OyZndDsNCiAgICAgVGhlcmUgYXJlIG9ubHkge3NtZF9tY192 YWx1ZX0gaW4gc3RvY2suIFBsZWFzZSBjaG9vc2UgYSBsb3dlciBudW1iZXINCiAgICZsdDsv dHhwOnNtZF9jYXNlJmd0Ow0KJmx0Oy90eHA6c21kX3N3aXRjaCZndDsNCjwvY29kZT48L3By ZT4NCg0KCTxwPlNvIGlmIHNvbWVvbmUgZW50ZXJzIDxjb2RlPj9xdHk9MDwvY29kZT4gb3Ig PGNvZGU+P3F0eT1mcmVkPC9jb2RlPiB0aGVuIGEgc3BlY2lhbCBtZXNzYWdlIGlzIHNob3du IHRvIHByb21wdCB0aGVtIHRvIGVudGVyIGEgdmFsaWQgbnVtYmVyLiBJZiB0aGUgPGNvZGU+ cXR5PC9jb2RlPiB2YXJpYWJsZSBpcyBsb3dlciB0aGFuIHRoZSBzdG9jayBsZXZlbCBvZiB0 aGUgY3VycmVudCBhcnRpY2xlIHRoZW4gYWxsIGlzIHdlbGwuIEJ1dCBpZiBhbnkgb3RoZXIg dmFsdWUgaXMgdXNlZCwgdGhlIDxjb2RlPmRlZmF1bHQ8L2NvZGU+IGNvbmRpdGlvbiBraWNr cyBpbiBhbmQgdGVsbHMgdGhlIHZpc2l0b3IgdGhhdCB0aGVyZSBhcmUgbm90IGVub3VnaCB0 byBzYXRpc2Z5IHRoZWlyIHJhdmVub3VzIG5lZWRzLjwvcD4NCg0KCTxwPk5vdGUgdGhhdCB0 aGUgZGVmYXVsdCBjYXNlIGFsc28gdXNlcyA8Y29kZT52YWx1ZT0mcXVvdDs/c3RvY2smcXVv dDs8L2NvZGU+IGV2ZW4gdGhvdWdoIGl0IHdvdWxkIGFwcGVhciB0byBub3QgYmUgc3RyaWN0 bHkgbmVjZXNzYXJ5LiBJdCBpcyB1c2VkIHNvIHRoZSByZXBsYWNlbWVudCB2YXJpYWJsZSA8 Y29kZT57c21kX21jX3ZhbHVlfTwvY29kZT4gY2FuIGJlIGluc2VydGVkIGluIHRoZSBvdXRw dXQuIElmIHlvdSBvbWl0IHRoZSA8Y29kZT52YWx1ZTwvY29kZT4gYXR0cmlidXRlIHRoZW4g PGNvZGU+e3NtZF9tY192YWx1ZX08L2NvZGU+IGlzIG5vdCAmIzgyMTY7cHJpbWVkJiM4MjE3 OyBiZWNhdXNlIHRoZSBjYXNlIHRhZyBkb2VzIG5vdCBrbm93IHdoZXJlIHRvIGxvb2sgZm9y IHRoZSB2YWx1ZS48L3A+DQoNCjwvZGl2Pgo8IS0tIC0tLSBCRUdJTiBQTFVHSU4gQ1NTIC0t LSAtLT4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCiNzbWRfaGVscCB7IGxpbmUtaGVpZ2h0 OjEuMyA7fQ0KI3NtZF9oZWxwIGNvZGUgeyBmb250LXdlaWdodDpib2xkOyBmb250OiAxMDUl LzEzMCUgIkNvdXJpZXIgTmV3IiwgY291cmllciwgbW9ub3NwYWNlOyBiYWNrZ3JvdW5kLWNv bG9yOiAjRkZGRkNDO30NCiNzbWRfaGVscCBjb2RlLmJsb2NrIHsgZm9udC13ZWlnaHQ6bm9y bWFsOyBib3JkZXI6MXB4IGRvdHRlZCAjOTk5OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBlNjhj OyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46MTBweCAxMHB4IDIwcHg7IHBhZGRpbmc6MTBweDsg fQ0KI3NtZF9oZWxwIGE6bGluaywgI3NtZF9oZWxwIGE6dmlzaXRlZCB7IGNvbG9yOiBibHVl OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibHVl OyBwYWRkaW5nLWJvdHRvbToxcHg7fQ0KI3NtZF9oZWxwIGE6aG92ZXIsICNzbWRfaGVscCBh OmFjdGl2ZSB7IGNvbG9yOiBibHVlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1i b3R0b206IDJweCBzb2xpZCBibHVlOyBwYWRkaW5nLWJvdHRvbToxcHg7fQ0KI3NtZF9oZWxw IGgxIHsgY29sb3I6ICMzNjk7IGZvbnQ6IDIwcHggR2VvcmdpYSwgc2Fucy1zZXJpZjsgbWFy Z2luOiAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0NCiNzbWRfaGVscCBoMiB7IGJvcmRlci1i b3R0b206IDFweCBzb2xpZCBibGFjazsgcGFkZGluZzoxMHB4IDAgMDsgY29sb3I6ICMzNjk7 IGZvbnQ6IDE3cHggR2VvcmdpYSwgc2Fucy1zZXJpZjsgfQ0KI3NtZF9oZWxwIGgzIHsgY29s b3I6ICMyNzU2ODU7IGZvbnQ6IGJvbGQgMTJweCBBcmlhbCwgc2Fucy1zZXJpZjsgbGV0dGVy LXNwYWNpbmc6IDFweDsgbWFyZ2luOiAxMHB4IDAgMDt0ZXh0LXRyYW5zZm9ybTogdXBwZXJj YXNlO30NCiNzbWRfaGVscCBoNCB7IGZvbnQ6IGJvbGQgMTFweCBBcmlhbCwgc2Fucy1zZXJp ZjsgbGV0dGVyLXNwYWNpbmc6IDFweDsgbWFyZ2luOiAxMHB4IDAgMCA7dGV4dC10cmFuc2Zv cm06IHVwcGVyY2FzZTsgfQ0KI3NtZF9oZWxwIC5hdHQtbmFtZSB7IGZvbnQtd2VpZ2h0OmJv bGQ7IH0NCiNzbWRfaGVscCAuYXR0LXZhbCB7IGZvbnQtc3R5bGU6aXRhbGljO30NCiNzbWRf aGVscCAubWFuZCB7IGJhY2tncm91bmQ6I2VlZTsgYm9yZGVyOjFweCBkb3R0ZWQgIzk5OTsg fQ0KI3NtZF9oZWxwIHRhYmxlIHt3aWR0aDoxMDAlOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFk ZGluZy1ib3R0b206MWVtOyBib3JkZXI6MXB4IHNvbGlkICM2NjY7fQ0KI3NtZF9oZWxwIHRk LCAjc21kX2hlbHAgdGgge2JvcmRlcjoxcHggc29saWQgIzk5OTsgcGFkZGluZzouNWVtIDA7 fQ0KPC9zdHlsZT4KPCEtLSAtLS0gRU5EIFBMVUdJTiBDU1MgLS0tIC0tPiI7czo0OiJjb2Rl IjtzOjY0OTQ6ImZ1bmN0aW9uIHNtZF9zd2l0Y2goJGF0dHMsICR0aGluZykgew0KCWdsb2Jh bCAkc21kX3N3aXRjaF9pdGVtLCAkc21kX3N3aXRjaF9kZWJ1ZzsNCg0KCWV4dHJhY3QobEF0 dHMoYXJyYXkoDQoJCSdpdGVtJyA9PiAnJywNCgkJJ2xvb2tfaW4nID0+ICdTTURfQUxMJywN CgkJJ2xlYXZlX2VtcHR5JyA9PiAnMScsDQoJCSdkZWJ1ZycgPT4gJzAnLA0KCSksICRhdHRz KSk7DQoNCgkkc21kX3N3aXRjaF9pdGVtID0gc21kX21jX3BhcnNlKCRpdGVtLCAkbG9va19p biwgJGxlYXZlX2VtcHR5KTsNCgkkc21kX3N3aXRjaF9kZWJ1ZyA9ICRkZWJ1ZzsNCglyZXR1 cm4gKHBhcnNlKCR0aGluZykpOw0KfQ0KDQpmdW5jdGlvbiBzbWRfY2FzZSgkYXR0cywgJHRo aW5nPU5VTEwpIHsNCglnbG9iYWwgJHNtZF9zd2l0Y2hfaXRlbSwgJHNtZF9zd2l0Y2hfZGVi dWcsICRzbWRfY2FzZV90cnVlLCAkc21kX211bHRpX2Nhc2UsICRzbWRfbWNfdmFsOw0KDQoJ ZXh0cmFjdChsQXR0cyhhcnJheSgNCgkJJ3ZhbHVlJyA9PiAnJywNCgkJJ2xvb2tfaW4nID0+ ICdTTURfQUxMJywNCgkJJ2xlYXZlX2VtcHR5JyA9PiAnMScsDQoJCSd0eXBlJyA9PiAnZXEn LA0KCQknY2FzZV9zZW5zaXRpdmUnID0+IDAsDQoJCSdudW1lcmljJyA9PiAwLA0KCQknZmFs bHRocnUnID0+IDAsDQoJCSdkZWZhdWx0JyA9PiAwLA0KCQknZGVidWcnID0+IDAsDQoJKSwg JGF0dHMpKTsNCg0KCSRyZXN1bHQgPSBmYWxzZTsNCg0KCS8vIFZhbGlkYXRpb24NCgkkY2Fz ZXMgPSBhcnJheSgnaXNsb3dlcicsICdpc3VwcGVyJyk7DQoJJGNhc2Vfc2Vuc2l0aXZlID0g KGluX2FycmF5KCR0eXBlLCAkY2FzZXMpKSA/IDEgOiAkY2FzZV9zZW5zaXRpdmU7DQoJJHZh bHVlID0gc21kX21jX3BhcnNlKCR2YWx1ZSwgJGxvb2tfaW4sICRsZWF2ZV9lbXB0eSk7DQoJ JHZhbHVlID0gKCRjYXNlX3NlbnNpdGl2ZSkgPyAkdmFsdWUgOiBzdHJ0b2xvd2VyKCR2YWx1 ZSk7DQoJJHRlc3RlciA9ICgkY2FzZV9zZW5zaXRpdmUpID8gJHNtZF9zd2l0Y2hfaXRlbSA6 IHN0cnRvbG93ZXIoJHNtZF9zd2l0Y2hfaXRlbSk7DQoJJGZhbGx0aHJ1ID0gKCEkdGhpbmcp ID8gMSA6ICRmYWxsdGhydTsNCg0KCSRyZXBsYWNlbWVudHMgPSBhcnJheSgpOw0KCSRyZXBs YWNlbWVudHNbJ3tzbWRfc3dpdGNofSddID0gJHJlcGxhY2VtZW50c1sne3NtZF9tY19pdGVt fSddID0gJHRlc3RlcjsNCg0KCWlmICgkdGVzdGVyICE9ICcnKSB7DQoJCWlmICgkZGVidWcg fHwgJHNtZF9zd2l0Y2hfZGVidWcpIHsNCgkJCWVjaG8gIisrIFRFU1QgJHRlc3RlciAiIC4g KCgkZGVmYXVsdCkgPyAnREVGQVVMVCcgOiAkdHlwZS4nICcuJHZhbHVlKTsNCgkJfQ0KCQlp ZiAoJGRlZmF1bHQgPT0gMSAmJiAhJHNtZF9jYXNlX3RydWUpIHsNCgkJCSRyZXN1bHQgPSB0 cnVlOw0KCQl9IGVsc2Ugew0KCQkJc3dpdGNoICgkdHlwZSkgew0KCQkJCWNhc2UgJ2d0JzoN CgkJCQkJJHJlc3VsdCA9ICgkbnVtZXJpYykgPyAoKGN0eXBlX2RpZ2l0KChzdHJpbmcpJHRl c3RlcikgJiYgY3R5cGVfZGlnaXQoKHN0cmluZykkdmFsdWUpICYmIChpbnQpJHRlc3RlciA+ IChpbnQpJHZhbHVlKSA/IHRydWUgOiBmYWxzZSkgOiAoKCR0ZXN0ZXIgPiAkdmFsdWUpID8g dHJ1ZSA6IGZhbHNlKTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAnZ2UnOg0KCQkJCQkkcmVz dWx0ID0gKCRudW1lcmljKSA/ICgoY3R5cGVfZGlnaXQoKHN0cmluZykkdGVzdGVyKSAmJiBj dHlwZV9kaWdpdCgoc3RyaW5nKSR2YWx1ZSkgJiYgKGludCkkdGVzdGVyID49IChpbnQpJHZh bHVlKSA/IHRydWUgOiBmYWxzZSkgOiAoKCR0ZXN0ZXIgPj0gJHZhbHVlKSA/IHRydWUgOiBm YWxzZSk7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJ2x0JzoNCgkJCQkJJHJlc3VsdCA9ICgk bnVtZXJpYykgPyAoKGN0eXBlX2RpZ2l0KChzdHJpbmcpJHRlc3RlcikgJiYgY3R5cGVfZGln aXQoKHN0cmluZykkdmFsdWUpICYmIChpbnQpJHRlc3RlciA8IChpbnQpJHZhbHVlKSA/IHRy dWUgOiBmYWxzZSkgOiAoKCR0ZXN0ZXIgPCAkdmFsdWUpID8gdHJ1ZSA6IGZhbHNlKTsNCgkJ CQkJYnJlYWs7DQoJCQkJY2FzZSAnbGUnOg0KCQkJCQkkcmVzdWx0ID0gKCRudW1lcmljKSA/ ICgoY3R5cGVfZGlnaXQoKHN0cmluZykkdGVzdGVyKSAmJiBjdHlwZV9kaWdpdCgoc3RyaW5n KSR2YWx1ZSkgJiYgKGludCkkdGVzdGVyIDw9IChpbnQpJHZhbHVlKSA/IHRydWUgOiBmYWxz ZSkgOiAoKCR0ZXN0ZXIgPD0gJHZhbHVlKSA/IHRydWUgOiBmYWxzZSk7DQoJCQkJCWJyZWFr Ow0KCQkJCWNhc2UgJ2RpdmlzaWJsZSc6DQoJCQkJCSRyZXN1bHQgPSAoY3R5cGVfZGlnaXQo KHN0cmluZykkdGVzdGVyKSAmJiBjdHlwZV9kaWdpdCgoc3RyaW5nKSR2YWx1ZSkgJiYgKGlu dCkkdGVzdGVyID4gMCAmJiAoaW50KSR0ZXN0ZXIgJSAoaW50KSR2YWx1ZSA9PT0gMCkgPyB0 cnVlIDogZmFsc2U7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJ2JlZ2lucyc6DQoJCQkJCSRy ZXN1bHQgPSAoc3RycG9zKCR0ZXN0ZXIsICR2YWx1ZSkgPT09IDApID8gdHJ1ZSA6IGZhbHNl Ow0KCQkJCQlicmVhazsNCgkJCQljYXNlICdjb250YWlucyc6DQoJCQkJCSRyZXN1bHQgPSAo c3RycG9zKCR0ZXN0ZXIsICR2YWx1ZSkgIT09IGZhbHNlKSA/IHRydWUgOiBmYWxzZTsNCgkJ CQkJYnJlYWs7DQoJCQkJY2FzZSAnZW5kcyc6DQoJCQkJCSRyZXN1bHQgPSAoc3Vic3RyKCR0 ZXN0ZXIsIHN0cmxlbigkdGVzdGVyKSAtIHN0cmxlbigkdmFsdWUpKSA9PT0gJHZhbHVlKSA/ IHRydWUgOiBmYWxzZTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAnaXNudW0nOg0KCQkJCQkk cmVzdWx0ID0gKGN0eXBlX2RpZ2l0KChzdHJpbmcpJHRlc3RlcikpID8gdHJ1ZSA6IGZhbHNl Ow0KCQkJCQlicmVhazsNCgkJCQljYXNlICdpc2FscGhhJzoNCgkJCQkJJHJlc3VsdCA9IChj dHlwZV9hbHBoYSgoc3RyaW5nKSR0ZXN0ZXIpKSA/IHRydWUgOiBmYWxzZTsNCgkJCQkJYnJl YWs7DQoJCQkJY2FzZSAnaXNhbG51bSc6DQoJCQkJCSRyZXN1bHQgPSAoY3R5cGVfYWxudW0o KHN0cmluZykkdGVzdGVyKSkgPyB0cnVlIDogZmFsc2U7DQoJCQkJCWJyZWFrOw0KCQkJCWNh c2UgJ2lzbG93ZXInOg0KCQkJCQkkcmVzdWx0ID0gKGN0eXBlX2xvd2VyKChzdHJpbmcpJHRl c3RlcikpID8gdHJ1ZSA6IGZhbHNlOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICdpc3VwcGVy JzoNCgkJCQkJJHJlc3VsdCA9IChjdHlwZV91cHBlcigoc3RyaW5nKSR0ZXN0ZXIpKSA/IHRy dWUgOiBmYWxzZTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAnaXNwdW5jdCc6DQoJCQkJCSRy ZXN1bHQgPSAoY3R5cGVfcHVuY3QoKHN0cmluZykkdGVzdGVyKSkgPyB0cnVlIDogZmFsc2U7 DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJ2lzc3BhY2UnOg0KCQkJCQkkcmVzdWx0ID0gKGN0 eXBlX3NwYWNlKChzdHJpbmcpJHRlc3RlcikpID8gdHJ1ZSA6IGZhbHNlOw0KCQkJCQlicmVh azsNCgkJCQlkZWZhdWx0Og0KCQkJCQkvLyBFcXVhbGl0eQ0KCQkJCQkkcmVzdWx0ID0gKCRu dW1lcmljKSA/ICgoJHRlc3RlciA9PT0gJHZhbHVlKSA/IHRydWUgOiBmYWxzZSkgOiAoKCR0 ZXN0ZXIgPT0gJHZhbHVlKSA/IHRydWUgOiBmYWxzZSk7DQoJCQkJCWJyZWFrOw0KCQkJfQ0K CQl9DQoJCSRzbWRfY2FzZV90cnVlID0gKCRyZXN1bHQpID8gdHJ1ZSA6ICRzbWRfY2FzZV90 cnVlOw0KCQlpZiAoJGRlYnVnIHx8ICRzbWRfc3dpdGNoX2RlYnVnKSB7DQoJCQllY2hvICcg UkVTVUxUOiAnIC4gKCgkcmVzdWx0KSA/ICdUUlVFJyA6ICdGQUxTRScgKSAuICc8YnIgLz4n Ow0KCQl9DQoNCgkJaWYgKCRyZXN1bHQgJiYgISRmYWxsdGhydSkgew0KCQkJJHNtZF9zd2l0 Y2hfaXRlbSA9ICcnOw0KCQl9DQoJCWlmICgkdGhpbmcpIHsNCgkJCSRyZXQgPSAkcmVzdWx0 IHx8ICRzbWRfbXVsdGlfY2FzZTsNCgkJCSRyZXBsYWNlbWVudHNbJ3tzbWRfY2FzZX0nXSA9 ICRyZXBsYWNlbWVudHNbJ3tzbWRfbWNfdmFsdWV9J10gPSAoJHJlc3VsdCkgPyAkdmFsdWUg OiAkc21kX21jX3ZhbDsNCgkJCSRzbWRfbXVsdGlfY2FzZSA9IGZhbHNlOw0KCQkJcmV0dXJu IHBhcnNlKEV2YWxFbHNlKHN0cnRyKCR0aGluZywgJHJlcGxhY2VtZW50cyksICRyZXQpKTsN CgkJfSBlbHNlIHsNCgkJCSRzbWRfbXVsdGlfY2FzZSA9ICgkcmVzdWx0KSA/IHRydWUgOiAk c21kX211bHRpX2Nhc2U7DQoJCQkkc21kX21jX3ZhbCA9ICgkcmVzdWx0KSA/ICR2YWx1ZSA6 ICRzbWRfbWNfdmFsOw0KCQl9DQoJfSBlbHNlIHsNCgkJcmV0dXJuIGZhbHNlOw0KCX0NCn0N Cg0KLy8gTG9vayBpbiB0aGUgZ2l2ZW4gJGluIHBsYWNlcyBmb3IgYSB2YWx1ZSBmcm9tIGEg Jz8nIHZhcmlhYmxlICRpdGVtDQpmdW5jdGlvbiBzbWRfbWNfcGFyc2UoJGl0ZW0sICRpbiwg JG10PScxJykgew0KCWdsb2JhbCAkcHJldGV4dCwgJHRoaXNhcnRpY2xlLCAkdGhpc2ltYWdl LCAkdGhpc2ZpbGUsICR0aGlzbGluaywgJHZhcmlhYmxlOw0KDQoJJGluID0gKCRpbiA9PSAi U01EX0FMTCIpID8gInR4cHZhciwgc3ZydmFyLCBpbWFnZSwgZmlsZSwgbGluaywgZ2JsLCBh cnRpY2xlLCB1cmx2YXIsIHBocHZhciIgOiAkaW47DQoJJGxvb2tpbiA9IGRvX2xpc3QoJGlu KTsNCg0KCSRtb2RSRSA9ICcvKFw/KShbQS1aYS16MC05X1wtIF0rKS8nOw0KCSRudW1Nb2Rz ID0gcHJlZ19tYXRjaF9hbGwoJG1vZFJFLCAkaXRlbSwgJG1vZHMpOw0KDQoJZm9yICgkbW9k Q3RyID0gMDsgJG1vZEN0ciA8ICRudW1Nb2RzOyAkbW9kQ3RyKyspIHsNCgkJJG1vZENoYXIg PSAkbW9kc1sxXVskbW9kQ3RyXTsNCgkJJG1vZEl0ZW0gPSB0cmltKCRtb2RzWzJdWyRtb2RD dHJdKTsNCgkJJGxvd2l0ZW0gPSBzdHJ0b2xvd2VyKCRtb2RJdGVtKTsNCg0KCQlpZiAoaW5f YXJyYXkoInR4cHZhciIsICRsb29raW4pICYmIGlzc2V0KCR2YXJpYWJsZVskbG93aXRlbV0p KSB7DQoJCQkkaXRlbSA9IHN0cl9yZXBsYWNlKCRtb2RDaGFyLiRtb2RJdGVtLCAkdmFyaWFi bGVbJGxvd2l0ZW1dLCAkaXRlbSk7DQoJCX0gZWxzZSBpZiAoaW5fYXJyYXkoInN2cnZhciIs ICRsb29raW4pICYmIHNlcnZlclNldCgkbW9kSXRlbSkgIT0gJycpIHsNCgkJCSRpdGVtID0g c3RyX3JlcGxhY2UoJG1vZENoYXIuJG1vZEl0ZW0sIGRvU2xhc2goc2VydmVyU2V0KCRtb2RJ dGVtKSksICRpdGVtKTsNCgkJfSBlbHNlIGlmIChpbl9hcnJheSgiaW1hZ2UiLCAkbG9va2lu KSAmJiBpc3NldCgkdGhpc2ltYWdlWyRsb3dpdGVtXSkgJiYgIWVtcHR5KCR0aGlzaW1hZ2Vb JGxvd2l0ZW1dKSkgew0KCQkJJGl0ZW0gPSBzdHJfcmVwbGFjZSgkbW9kQ2hhci4kbW9kSXRl bSwgJHRoaXNpbWFnZVskbG93aXRlbV0sICRpdGVtKTsNCgkJfSBlbHNlIGlmIChpbl9hcnJh eSgiZmlsZSIsICRsb29raW4pICYmIGlzc2V0KCR0aGlzZmlsZVskbG93aXRlbV0pICYmICFl bXB0eSgkdGhpc2ZpbGVbJGxvd2l0ZW1dKSkgew0KCQkJJGl0ZW0gPSBzdHJfcmVwbGFjZSgk bW9kQ2hhci4kbW9kSXRlbSwgJHRoaXNmaWxlWyRsb3dpdGVtXSwgJGl0ZW0pOw0KCQl9IGVs c2UgaWYgKGluX2FycmF5KCJsaW5rIiwgJGxvb2tpbikgJiYgaXNzZXQoJHRoaXNsaW5rWyRs b3dpdGVtXSkgJiYgIWVtcHR5KCR0aGlzbGlua1skbG93aXRlbV0pKSB7DQoJCQkkaXRlbSA9 IHN0cl9yZXBsYWNlKCRtb2RDaGFyLiRtb2RJdGVtLCAkdGhpc2xpbmtbJGxvd2l0ZW1dLCAk aXRlbSk7DQoJCX0gZWxzZSBpZiAoaW5fYXJyYXkoImdibCIsICRsb29raW4pICYmIGFycmF5 X2tleV9leGlzdHMoJGxvd2l0ZW0sICRwcmV0ZXh0KSAmJiAhZW1wdHkoJHByZXRleHRbJGxv d2l0ZW1dKSkgew0KCQkJJGl0ZW0gPSBzdHJfcmVwbGFjZSgkbW9kQ2hhci4kbW9kSXRlbSwg JHByZXRleHRbJGxvd2l0ZW1dLCAkaXRlbSk7DQoJCX0gZWxzZSBpZiAoaW5fYXJyYXkoImFy dGljbGUiLCAkbG9va2luKSAmJiBpc3NldCgkdGhpc2FydGljbGVbJGxvd2l0ZW1dKSAmJiAh ZW1wdHkoJHRoaXNhcnRpY2xlWyRsb3dpdGVtXSkpIHsNCgkJCSRpdGVtID0gc3RyX3JlcGxh Y2UoJG1vZENoYXIuJG1vZEl0ZW0sICR0aGlzYXJ0aWNsZVskbG93aXRlbV0sICRpdGVtKTsN CgkJfSBlbHNlIGlmIChpbl9hcnJheSgidXJsdmFyIiwgJGxvb2tpbikgJiYgZ3BzKCRsb3dp dGVtKSAhPSAnJykgew0KCQkJJGl0ZW0gPSBzdHJfcmVwbGFjZSgkbW9kQ2hhci4kbW9kSXRl bSwgZG9TbGFzaChncHMoJGxvd2l0ZW0pKSwgJGl0ZW0pOw0KCQl9IGVsc2UgaWYgKGluX2Fy cmF5KCJwaHB2YXIiLCAkbG9va2luKSAmJiBpc3NldCgkR0xPQkFMU1skbG93aXRlbV0pICYm ICFlbXB0eSgkR0xPQkFMU1skbG93aXRlbV0pKSB7DQoJCQkkaXRlbSA9IHN0cl9yZXBsYWNl KCRtb2RDaGFyLiRtb2RJdGVtLCAkR0xPQkFMU1skbG93aXRlbV0sICRpdGVtKTsNCgkJfSBl bHNlIGlmICghJG10KSB7DQoJCQkkaXRlbSA9IHN0cl9yZXBsYWNlKCRtb2RDaGFyLiRtb2RJ dGVtLCAkbW9kSXRlbSwgJGl0ZW0pOw0KCQl9IGVsc2Ugew0KCQkJJGl0ZW0gPSAnJzsNCgkJ fQ0KCX0NCglyZXR1cm4gJGl0ZW07DQp9IjtzOjQ6InR5cGUiO3M6MToiMCI7czo1OiJmbGFn cyI7czoxOiIwIjtzOjU6Im9yZGVyIjtzOjE6IjUiO3M6MzoibWQ1IjtzOjMyOiJjNzJiMzBm YTI1ZWEwYTkwZGEwMjk0YzIyOTY2ZDE4MiI7fQ==