# Name: soo_article_filter v0.3.0 # Type: Client side plugin # Create filtered list of articles before sending to txp:article or txp:article_custom # Author: Jeff Soo # URL: http://ipsedixit.net/txp/ # 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: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjE4OiJzb29fYXJ0aWNsZV9maWx0ZXIiO3M6NjoiYXV0aG9y IjtzOjg6IkplZmYgU29vIjtzOjEwOiJhdXRob3JfdXJpIjtzOjI1OiJodHRwOi8vaXBzZWRp eGl0Lm5ldC90eHAvIjtzOjc6InZlcnNpb24iO3M6NToiMC4zLjAiO3M6MTE6ImRlc2NyaXB0 aW9uIjtzOjg0OiJDcmVhdGUgZmlsdGVyZWQgbGlzdCBvZiBhcnRpY2xlcyBiZWZvcmUgc2Vu ZGluZyB0byB0eHA6YXJ0aWNsZSBvciB0eHA6YXJ0aWNsZV9jdXN0b20iO3M6NDoiaGVscCI7 czoxNzc2MjoiPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KZGl2I3NlZF9oZWxwIHByZSB7cGFk ZGluZzogMC41ZW0gMWVtOyBiYWNrZ3JvdW5kOiAjZWVlOyBib3JkZXI6IDFweCBkYXNoZWQg I2NjYzt9CmRpdiNzZWRfaGVscCBoMSwgZGl2I3NlZF9oZWxwIGgyLCBkaXYjc2VkX2hlbHAg aDMsIGRpdiNzZWRfaGVscCBoMyBjb2RlIHtmb250LWZhbWlseTogc2Fucy1zZXJpZjsgZm9u dC13ZWlnaHQ6IGJvbGQ7fQpkaXYjc2VkX2hlbHAgaDEsIGRpdiNzZWRfaGVscCBoMiwgZGl2 I3NlZF9oZWxwIGgzIHttYXJnaW4tbGVmdDogLTFlbTt9CmRpdiNzZWRfaGVscCBoMiwgZGl2 I3NlZF9oZWxwIGgzIHttYXJnaW4tdG9wOiAyZW07fQpkaXYjc2VkX2hlbHAgaDEge2ZvbnQt c2l6ZTogMi40ZW07fQpkaXYjc2VkX2hlbHAgaDIge2ZvbnQtc2l6ZTogMS44ZW07fQpkaXYj c2VkX2hlbHAgaDMge2ZvbnQtc2l6ZTogMS40ZW07fQpkaXYjc2VkX2hlbHAgaDQge2ZvbnQt c2l6ZTogMS4yZW07fQpkaXYjc2VkX2hlbHAgaDUge2ZvbnQtc2l6ZTogMWVtO21hcmdpbi1s ZWZ0OjFlbTtmb250LXN0eWxlOm9ibGlxdWU7fQpkaXYjc2VkX2hlbHAgaDYge2ZvbnQtc2l6 ZTogMWVtO21hcmdpbi1sZWZ0OjJlbTtmb250LXN0eWxlOm9ibGlxdWU7fQpkaXYjc2VkX2hl bHAgbGkge2xpc3Qtc3R5bGUtdHlwZTogZGlzYzt9CmRpdiNzZWRfaGVscCBsaSBsaSB7bGlz dC1zdHlsZS10eXBlOiBjaXJjbGU7fQpkaXYjc2VkX2hlbHAgbGkgbGkgbGkge2xpc3Qtc3R5 bGUtdHlwZTogc3F1YXJlO30KZGl2I3NlZF9oZWxwIGxpIGEgY29kZSB7Zm9udC13ZWlnaHQ6 IG5vcm1hbDt9CmRpdiNzZWRfaGVscCBsaSBjb2RlOmZpcnN0LWNoaWxkIHtiYWNrZ3JvdW5k OiAjZGRkO3BhZGRpbmc6MCAuM2VtO21hcmdpbi1sZWZ0Oi0uM2VtO30KZGl2I3NlZF9oZWxw IGxpIGxpIGNvZGU6Zmlyc3QtY2hpbGQge2JhY2tncm91bmQ6bm9uZTtwYWRkaW5nOjA7bWFy Z2luLWxlZnQ6MDt9CmRpdiNzZWRfaGVscCBkZm4ge2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1z dHlsZTpvYmxpcXVlO30KZGl2I3NlZF9oZWxwIC5yZXF1aXJlZCwgZGl2I3NlZF9oZWxwIC53 YXJuaW5nIHtjb2xvcjpyZWQ7fQpkaXYjc2VkX2hlbHAgLmRlZmF1bHQge2NvbG9yOmdyZWVu O30KPC9zdHlsZT4KIDxkaXYgaWQ9InNlZF9oZWxwIj4KCgk8aDE+c29vX2FydGljbGVfZmls dGVyPC9oMT4KCiA8ZGl2IGlkPSJ0b2MiPgoKCTxoMj5Db250ZW50czwvaDI+CgoJPHVsPgoJ CTxsaT48YSBocmVmPSIjcmVxdWlyZW1lbnRzIj5SZXF1aXJlbWVudHM8L2E+PC9saT4KCQk8 bGk+PGEgaHJlZj0iI292ZXJ2aWV3Ij5PdmVydmlldzwvYT48L2xpPgoJCTxsaT48YSBocmVm PSIjdXNhZ2UiPlVzYWdlPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNhdHRyaWJ1dGVzIj5B dHRyaWJ1dGVzPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNleGFtcGxlcyI+RXhhbXBsZXM8 L2E+Cgk8dWw+CgkJPGxpPjxhIGhyZWY9IiNleHBpcmVkIj5FeHBpcmVkIGFydGljbGVzPC9h PjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNjdXN0b21fc2V0Ij5DdXN0b20gZmllbGQgbm90IGVt cHR5PC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNjdXN0b21fbm90X3NldCI+Q3VzdG9tIGZp ZWxkIGVtcHR5PC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNjdXN0b21faW5jbHVkZXMiPkN1 c3RvbSBmaWVsZCBpbmNsdWRlcyAmIzgyMzA7PC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNj dXN0b21fcmVnZXhwIj5DdXN0b20gZmllbGQgbWF0Y2hlcyByZWd1bGFyIGV4cHJlc3Npb248 L2E+PC9saT4KCQk8bGk+PGEgaHJlZj0iI2ltYWdlIj5BcnRpY2xlcyB3aXRoIGFuIGFzc2ln bmVkIGltYWdlPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNyYW5nZSI+U2VsZWN0IG9uIGEg bnVtZXJpYyByYW5nZTwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjaW5kZXgiPkFscGhhYmV0 aWNhbCBpbmRleDwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjdXBkYXRlIj5DaGFuZ2UgYXJ0 aWNsZSBzdGF0dXM8L2E+PC9saT4KCTwvdWw+PC9saT4KCQk8bGk+PGEgaHJlZj0iI25vdGVz Ij5UZWNobmljYWwgbm90ZXM8L2E+Cgk8dWw+CgkJPGxpPjxhIGhyZWY9IiNzYWZldHkiPlNh ZmV0eTwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjdHJvdWJsZXNob290aW5nIj5Ucm91Ymxl c2hvb3Rpbmc8L2E+PC9saT4KCQk8bGk+PGEgaHJlZj0iI3BlcmZvcm1hbmNlIj5QZXJmb3Jt YW5jZSBjb25zaWRlcmF0aW9uczwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjbXVsdGlkb2Mi Pk11bHRpZG9jIGNvbXBhdGliaWxpdHk8L2E+PC9saT4KCTwvdWw+PC9saT4KCQk8bGk+PGEg aHJlZj0iI2hpc3RvcnkiPkhpc3Rvcnk8L2E+PC9saT4KCTwvdWw+CgogPC9kaXY+CgoJPGgy IGlkPSJyZXF1aXJlbWVudHMiPlJlcXVpcmVtZW50czwvaDI+CgoJPHA+VGhpcyBwbHVnaW4g cmVsaWVzIG9uIHRoZSB0cmljayBvZiBjcmVhdGluZyBhIHRlbXBvcmFyeSBkYXRhYmFzZSB0 YWJsZSBpbiBtZW1vcnkuIFNvIHRoZSBNeVNRTCB1c2VyIHlvdSBoYXZlIGFzc2lnbmVkIHRv IFRleHRwYXR0ZXJuIChpbmRpY2F0ZWQgaW4gY29uZmlnLnBocCkgbXVzdCBoYXZlIDxjb2Rl PkNSRUFURTwvY29kZT4gcHJpdmlsZWdlcy4gSWYgdGFibGUgY3JlYXRpb24gZmFpbHMsIHRo ZSBwbHVnaW4gd2lsbCByZXR1cm4gYmxhbmsgKGFzIG9mIHZlcnNpb24gMC4yLjUpLjwvcD4K Cgk8aDIgaWQ9Im92ZXJ2aWV3Ij5PdmVydmlldzwvaDI+CgoJPHA+Q29udGFpbnMgb25lIHRh ZywgPGNvZGU+c29vX2FydGljbGVfZmlsdGVyPC9jb2RlPi4gSXQgYWxsb3dzIHlvdSB0byBw cmUtc2VsZWN0IGFydGljbGVzIHRvIGxpbWl0IHRoZSBzY29wZSBvZiBhbiA8Y29kZT5hcnRp Y2xlPC9jb2RlPiBvciA8Y29kZT5hcnRpY2xlX2N1c3RvbTwvY29kZT4gdGFnLCB1c2luZyBz ZWxlY3Rpb24gY3JpdGVyaWEgbm90IG9mZmVyZWQgYnkgdGhvc2UgdGFncy4gSW4gc2hvcnQs IGl0JiM4MjE3O3MgbGlrZSBhZGRpbmcgc2VsZWN0aW9uIGF0dHJpYnV0ZXMgdG8gb25lIG9m IHRob3NlIHRhZ3MuPC9wPgoKCTxwPkFzIG9mIHZlcnNpb24gMC4yLjQgdGhlcmUgaXMgYWxz byB0aGUgb3B0aW9uIHRvIGFkZCBpbmRleC1zdHlsZSB0aXRsZXMgdG8gYSBjdXN0b20gZmll bGQuIEUuZy4sICYjODIyMDtUaGUgRmlyc3QgQXJ0aWNsZSYjODIyMTsgYmVjb21lcyAmIzgy MjA7Rmlyc3QgQXJ0aWNsZSwgVGhlJiM4MjIxOy4gWW91IGNhbiB0aGVuIGFjY2VzcyB0aGF0 IGN1c3RvbSBmaWVsZCB3aXRoIHRoZSB1c3VhbCBUeHAgY3VzdG9tIGZpZWxkIHRhZ3MsIGFs bG93aW5nIHlvdSB0byBjcmVhdGUgYWxwaGFiZXRpY2FsIGluZGV4ZXMuPC9wPgoKCTxwPkFz IG9mIHZlcnNpb24gMC4yLjYgeW91IGNhbiBkbyBhbiBhZGRpdGlvbmFsIDxjb2RlPlVQREFU RTwvY29kZT4gcXVlcnkgb24gdGhlIHRlbXBvcmFyeSB0YWJsZSwgYnkgdXNpbmcgdGhlIDxj b2RlPnVwZGF0ZV9zZXQ8L2NvZGU+IGFuZCA8Y29kZT51cGRhdGVfd2hlcmU8L2NvZGU+IGF0 dHJpYnV0ZXMuIE9uZSB1c2UgZm9yIHRoaXMgaXMgdG8gY2hhbmdlIGFydGljbGUgc3RhdHVz IGZyb20gJiM4MjIwO0RyYWZ0JiM4MjIxOyB0byAmIzgyMjA7TGl2ZSYjODIyMTsgb3IgJiM4 MjIwO1N0aWNreSYjODIyMTssIGFsbG93aW5nIHlvdSB0byBkaXNwbGF5IGRyYWZ0IGFydGlj bGVzIHB1YmxpY2x5LjwvcD4KCgk8cD5UaGFua3MgdG8gPGEgaHJlZj0iaHR0cDovL3R4cC1w bHVnaW5zLm5ldGNhcnZpbmcuY29tLyI+bmV0LWNhcnZlcjwvYT4gZm9yIGNsdWVpbmcgbWUg aW4gdG8gTXlTUUwgdGVtcG9yYXJ5IHRhYmxlcy48L3A+CgoJPGgyIGlkPSJ1c2FnZSI+VXNh Z2U8L2gyPgoKCTxwPjxjb2RlPnNvb19hcnRpY2xlX2ZpbHRlcjwvY29kZT4gaXMgYSBjb250 YWluZXIgdGFnLCBpbnRlbmRlZCBhcyBhIHdyYXBwZXIgZm9yIDxjb2RlPmFydGljbGU8L2Nv ZGU+IG9yIDxjb2RlPmFydGljbGVfY3VzdG9tPC9jb2RlPi48L3A+Cgo8cHJlPiZsdDt0eHA6 c29vX2FydGljbGVfZmlsdGVyJmd0OwombHQ7dHhwOmFydGljbGUgLyZndDsKJmx0Oy90eHA6 c29vX2FydGljbGVfZmlsdGVyJmd0Owo8L3ByZT4KCgk8cD48c3Ryb25nPk5vdGU6PC9zdHJv bmc+IHRoZSBmaWx0ZXIgd2lsbCBub3QgYmUgYXBwbGllZCB0byBzZWFyY2ggcmVzdWx0cy48 L3A+CgoJPGgyIGlkPSJhdHRyaWJ1dGVzIj5BdHRyaWJ1dGVzPC9oMj4KCgk8cD5Ob25lIDxz cGFuIGNsYXNzPSJyZXF1aXJlZCI+cmVxdWlyZWQ8L3NwYW4+LCBidXQgd2l0aG91dCBhdHRy aWJ1dGVzIHRoZSB0YWcgZG9lc24mIzgyMTc7dCBkbyBhbnl0aGluZyB1c2VmdWwuPC9wPgoK CTx1bD4KCQk8bGk+PGNvZGU+ZXhwaXJlczwvY29kZT4gPGVtPigmIzgyMjA7cGFzdCYjODIy MTssICYjODIyMDtmdXR1cmUmIzgyMjE7LCAmIzgyMjA7YW55JiM4MjIxOywgb3IgMCk8L2Vt PjxiciAvPgpJZiBzZXQgdG8gJiM4MjIwO3Bhc3QmIzgyMjE7LCAmIzgyMjA7ZnV0dXJlJiM4 MjIxOywgb3IgJiM4MjIwO2FueSYjODIyMTssIG9ubHkgaW5jbHVkZSBhcnRpY2xlcyB3aXRo IGFuIDxjb2RlPkV4cGlyZXM8L2NvZGU+IHZhbHVlLiBJZiAgc2V0IHRvICYjODIyMDswJiM4 MjIxOywgb25seSBpbmNsdWRlIGFydGljbGVzIHdpdGhvdXQgYW4gPGNvZGU+RXhwaXJlczwv Y29kZT4gdmFsdWUuICg8c3BhbiBjbGFzcz0iZGVmYXVsdCI+RGVmYXVsdDwvc3Bhbj4gaXMg PGNvZGU+bnVsbDwvY29kZT47IG5vIGZpbHRlciBvbiA8Y29kZT5FeHBpcmVzPC9jb2RlPi4p PC9saT4KCQk8bGk+PGNvZGU+Y3VzdG9tZmllbGRuYW1lPC9jb2RlPiA8ZW0+KGVtcHR5IG9y IHJlZ2V4cCBwYXR0ZXJuKTwvZW0+IHJlcGxhY2UgJiM4MjIwO2N1c3RvbWZpZWxkbmFtZSYj ODIyMTsgd2l0aCBhbnkgY3VzdG9tIGZpZWxkIG5hbWUgYXMgc2V0IGluIHNpdGUgcHJlZmVy ZW5jZXMuIElmIHRoZSBhdHRyaWJ1dGUgdmFsdWUgaXMgZW1wdHksIG9ubHkgYXJ0aWNsZXMg d2l0aCBhbiBlbXB0eSB2YWx1ZSBmb3IgdGhpcyBjdXN0b20gZmllbGQgd2lsbCBiZSBpbmNs dWRlZC4gT3RoZXJ3aXNlIHRoZSBhdHRyaWJ1dGUgdmFsdWUgd2lsbCBiZSB0cmVhdGVkIGFz IGEgPGEgaHJlZj0iaHR0cDovL2Rldi5teXNxbC5jb20vZG9jL3JlZm1hbi81LjEvZW4vcmVn ZXhwLmh0bWwiPk15U1FMIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuPC9hPi48L2xpPgoJ CTxsaT48Y29kZT5hcnRpY2xlX2ltYWdlPC9jb2RlPiA8ZW0+KGJvb2xlYW4pPC9lbT4gSWYg PGNvZGU+MTwvY29kZT4sIG9ubHkgc2hvdyBhcnRpY2xlcyB3aXRoIGFuIGFydGljbGUgaW1h Z2UuIElmIDxjb2RlPjA8L2NvZGU+LCBvbmx5IHNob3cgYXJ0aWNsZXMgd2l0aG91dCBhbiBh cnRpY2xlIGltYWdlLiBJZiBub3Qgc2V0ICh0aGUgPHNwYW4gY2xhc3M9ImRlZmF1bHQiPmRl ZmF1bHQ8L3NwYW4+KSwgYXJ0aWNsZSBpbWFnZSBoYXMgbm8gZWZmZWN0LjwvbGk+CgkJPGxp Pjxjb2RlPm11bHRpZG9jPC9jb2RlPiA8ZW0+KGJvb2xlYW4pPC9lbT4gPHNwYW4gY2xhc3M9 ImRlZmF1bHQiPmRlZmF1bHQ8L3NwYW4+IGZhbHNlPGJyIC8+CkZvciB1c2Ugd2l0aCB0aGUg PGEgaHJlZj0iaHR0cDovL2lwc2VkaXhpdC5uZXQvdHhwLzI0L211bHRpZG9jIj5zb29fbXVs dGlkb2M8L2E+IHBsdWdpbi4gU2VlIDxhIGhyZWY9IiNtdWx0aWRvYyI+bm90ZTwvYT4gYmVs b3cuPC9saT4KCQk8bGk+PGNvZGU+aW5kZXhfaWdub3JlPC9jb2RlPiA8ZW0+KGxpc3QpPC9l bT4gQ29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgbGVhZGluZyBhcnRpY2xlcyB0byB0cmFuc3Bv c2UsIHdoZW4gdXNlZCBpbiBjb21iaW5hdGlvbiB3aXRoIDxjb2RlPmluZGV4X2ZpZWxkPC9j b2RlPiAoPHNwYW4gY2xhc3M9ImRlZmF1bHQiPkRlZmF1bHQ8L3NwYW4+ICYjODIyMDtBLEFu LFRoZSYjODIyMTspPC9saT4KCQk8bGk+PGNvZGU+aW5kZXhfZmllbGQ8L2NvZGU+IDxlbT4o Y3VzdG9tIGZpZWxkIG5hbWUpPC9lbT4gU2V0IHRoaXMgdG8gdGhlIG5hbWUgb2YgYW4gZXhp c3RpbmcgY3VzdG9tIGZpZWxkIHRvIGhvbGQgaW5kZXgtc3R5bGUgdGl0bGVzIChlLmcuICYj ODIyMDtUaGUgVGl0bGUmIzgyMjE7IGJlY29tZXMgJiM4MjIwO1RpdGxlLCBUaGUmIzgyMjE7 KS4gPHNwYW4gY2xhc3M9ImRlZmF1bHQiPkRlZmF1bHQ8L3NwYW4+IGVtcHR5LjwvbGk+CgkJ PGxpPjxjb2RlPnVwZGF0ZV9zZXQ8L2NvZGU+IDxlbT4oPHNwYW4gY2xhc3M9ImNhcHMiPlNR TDwvc3Bhbj4gY2xhdXNlKTwvZW0+IDxzcGFuIGNsYXNzPSJkZWZhdWx0Ij5kZWZhdWx0PC9z cGFuPiBlbXB0eS4gU2V0IHRoaXMgKGFuZCwgb3B0aW9uYWxseSwgPGNvZGU+dXBkYXRlX3do ZXJlPC9jb2RlPikgdG8gcnVuIGFuIDxjb2RlPlVQREFURTwvY29kZT4gcXVlcnkgb24gdGhl IHRlbXBvcmFyeSB0YWJsZS48L2xpPgoJCTxsaT48Y29kZT51cGRhdGVfd2hlcmU8L2NvZGU+ IDxlbT4oPHNwYW4gY2xhc3M9ImNhcHMiPlNRTDwvc3Bhbj4gY2xhdXNlKTwvZW0+IDxzcGFu IGNsYXNzPSJkZWZhdWx0Ij5kZWZhdWx0PC9zcGFuPiAmIzgyMjA7MT0xJiM4MjIxOy4gVXNl IHRoaXMgaW4gY29uanVuY3Rpb24gd2l0aCA8Y29kZT51cGRhdGVfd2hlcmU8L2NvZGU+IHRv IHJ1biBhbiA8Y29kZT5VUERBVEU8L2NvZGU+IHF1ZXJ5IG9uIHRoZSB0ZW1wb3JhcnkgdGFi bGUuPC9saT4KCQk8bGk+PGNvZGU+d2hlcmU8L2NvZGU+IDxlbT4oPHNwYW4gY2xhc3M9ImNh cHMiPlNRTDwvc3Bhbj4gY2xhdXNlKTwvZW0+IDxzcGFuIGNsYXNzPSJkZWZhdWx0Ij5kZWZh dWx0PC9zcGFuPiBlbXB0eS4gQW55IHRleHQgaGVyZSB3aWxsIGJlIGFkZGVkIHRvIHRoZSBl bmQgb2YgdGhlIGFycmF5IG9mIDxjb2RlPldIRVJFPC9jb2RlPiBleHByZXNzaW9ucyB1c2Vk IGZvciBhcnRpY2xlIHNlbGVjdGlvbi48L2xpPgoJPC91bD4KCgk8aDIgaWQ9ImNvbXBsZXgi PkNvbXBsZXggc2VsZWN0aW9uPC9oMj4KCgk8cD5UaGUgc2VsZWN0aW9uIGF0dHJpYnV0ZXMg KDxjb2RlPmV4cGlyZXM8L2NvZGU+LCA8Y29kZT5jdXN0b21maWVsZG5hbWU8L2NvZGU+LCA8 Y29kZT5hcnRpY2xlX2ltYWdlPC9jb2RlPiwgPGNvZGU+bXVsdGlkb2M8L2NvZGU+LCBhbmQg PGNvZGU+d2hlcmU8L2NvZGU+KSBtYXkgYmUgdXNlZCBpbiBjb21iaW5hdGlvbi4gVGhlIHJl c3VsdCBpcyBhIGNvbmp1bmN0aXZlICg8Y29kZT5BTkQ8L2NvZGU+KSBzZWFyY2gsIGkuZS4s IGVhY2ggYWRkaXRpb25hbCBhdHRyaWJ1dGUgbWFrZXMgdGhlIGZpbHRlciBtb3JlIHJlc3Ry aWN0aXZlLjwvcD4KCgk8cD5UaGUgPGNvZGU+d2hlcmU8L2NvZGU+IGF0dHJpYnV0ZSBhbGxv d3MgeW91IHRvIGVudGVyIE15U1FMIGV4cHJlc3Npb25zIGFuZCBmdW5jdGlvbnMgZm9yIGV2 ZW4gZ3JlYXRlciBwb3dlci48L3A+CgoJPGgyIGlkPSJleGFtcGxlcyI+RXhhbXBsZXM8L2gy PgoKCTxoMyBpZD0iZXhwaXJlZCI+T25seSBzaG93IGV4cGlyZWQgYXJ0aWNsZXM8L2gzPgoK CTxwPllvdSBtdXN0IHNldCAmIzgyMjA7UHVibGlzaCBleHBpcmVkIGFydGljbGVzJiM4MjIx OyB0byAmIzgyMjA7WWVzJiM4MjIxOyBpbiBhZHZhbmNlZCBzaXRlIHByZWZlcmVuY2VzLjwv cD4KCjxwcmU+Jmx0O3R4cDpzb29fYXJ0aWNsZV9maWx0ZXIgZXhwaXJlcz0mcXVvdDtwYXN0 JnF1b3Q7Jmd0OwombHQ7dHhwOmFydGljbGUgLyZndDsKJmx0Oy90eHA6c29vX2FydGljbGVf ZmlsdGVyJmd0Owo8L3ByZT4KCgk8aDMgaWQ9ImN1c3RvbV9zZXQiPk9ubHkgc2hvdyBhcnRp Y2xlcyB3aXRoICYjODIyMDtteS1jdXN0b20tZmllbGQmIzgyMjE7IHNldDwvaDM+CgoJPHA+ Tm90ZSB0aGUgdmFsdWUsIDxjb2RlPiZxdW90Oy4rJnF1b3Q7PC9jb2RlPi4gVGhpcyB3aWxs IG1hdGNoIGFueSBjaGFyYWN0ZXIuIE5vdGUgYWxzbyB0aGF0IHlvdSBjYW4gYWNjb21wbGlz aCB0aGUgc2FtZSB0aGluZyB3aXRob3V0IGEgcGx1Z2luLCB1c2luZyB0aGUgdGVjaG5pcXVl IGRpc2N1c3NlZCBpbiA8YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29tL3Zp ZXd0b3BpYy5waHA/cGlkPTIxMDQ1MyNwMjEwNDUzIj50aGlzIFR4cCBmb3J1bSB0aHJlYWQ8 L2E+LjwvcD4KCjxwcmU+Jmx0O3R4cDpzb29fYXJ0aWNsZV9maWx0ZXIgbXktY3VzdG9tLWZp ZWxkPSZxdW90Oy4rJnF1b3Q7Jmd0OwombHQ7dHhwOmFydGljbGUgLyZndDsKJmx0Oy90eHA6 c29vX2FydGljbGVfZmlsdGVyJmd0Owo8L3ByZT4KCgk8aDMgaWQ9ImN1c3RvbV9ub3Rfc2V0 Ij5Pbmx5IHNob3cgYXJ0aWNsZXMgd2l0aCAmIzgyMjA7bXktY3VzdG9tLWZpZWxkJiM4MjIx OyBub3Qgc2V0PC9oMz4KCjxwcmU+Jmx0O3R4cDpzb29fYXJ0aWNsZV9maWx0ZXIgbXktY3Vz dG9tLWZpZWxkPSZxdW90OyZxdW90OyZndDsKJmx0O3R4cDphcnRpY2xlIC8mZ3Q7CiZsdDsv dHhwOnNvb19hcnRpY2xlX2ZpbHRlciZndDsKPC9wcmU+CgoJPGgzIGlkPSJjdXN0b21faW5j bHVkZXMiPk9ubHkgc2hvdyBhcnRpY2xlcyB3aGVyZSAmIzgyMjA7bXktY3VzdG9tLWZpZWxk JiM4MjIxOyBpbmNsdWRlcyAmIzgyMjA7Ymx1ZSYjODIyMTs8L2gzPgoKCTxwPk5vdGU6IHRo aXMgaXMgbm90IGNhc2Ugc2Vuc2l0aXZlLiBXb3VsZCBtYXRjaCAmIzgyMjA7Qmx1ZXMmIzgy MjE7LCAmIzgyMjA7dHJ1ZSBibHVlJiM4MjIxOywgZXRjLiA8Y29kZT5hcnRpY2xlPC9jb2Rl PiBhbmQgPGNvZGU+YXJ0aWNsZV9jdXN0b208L2NvZGU+IGFscmVhZHkgd29yayB0aGlzIHdh eSBpZiB5b3UgYWRkIHRoZSB3aWxkY2FyZCBjaGFyYWN0ZXIgPGNvZGU+JTwvY29kZT4gKGUu Zy4sIDxjb2RlPm15LWN1c3RvbS1maWVsZD0mcXVvdDslYmx1ZSUmcXVvdDs8L2NvZGU+KSwg c28geW91IGRvbiYjODIxNzt0IG5lZWQgdGhpcyBwbHVnaW4ganVzdCB0byBkbyB0aGlzLjwv cD4KCjxwcmU+Jmx0O3R4cDpzb29fYXJ0aWNsZV9maWx0ZXIgbXktY3VzdG9tLWZpZWxkPSZx dW90O2JsdWUmcXVvdDsmZ3Q7CiZsdDt0eHA6YXJ0aWNsZSAvJmd0OwombHQ7L3R4cDpzb29f YXJ0aWNsZV9maWx0ZXImZ3Q7CjwvcHJlPgoKCTxoMyBpZD0iY3VzdG9tX3JlZ2V4cCI+T25s eSBzaG93IGFydGljbGVzIHdoZXJlICYjODIyMDtteS1jdXN0b20tZmllbGQmIzgyMjE7IGNv bnRhaW5zIG9ubHkgZGlnaXRzPC9oMz4KCgk8cD5Ob3RlIHRoZSB2YWx1ZSwgPGNvZGU+JnF1 b3Q7XltbOmRpZ2l0Ol1dKyQmcXVvdDs8L2NvZGU+LiBUaGlzIGlzIGEgPGEgaHJlZj0iaHR0 cDovL2Rldi5teXNxbC5jb20vZG9jL3JlZm1hbi81LjEvZW4vcmVnZXhwLmh0bWwiPk15U1FM IHJlZ2V4cCBwYXR0ZXJuPC9hPiwgPHN0cm9uZz5ub3Q8L3N0cm9uZz4gYSA8YSBocmVmPSJo dHRwOi8vdXMucGhwLm5ldC9tYW51YWwvZW4vcmVmZXJlbmNlLnBjcmUucGF0dGVybi5zeW50 YXgucGhwIj48c3BhbiBjbGFzcz0iY2FwcyI+UENSRTwvc3Bhbj4gcGF0dGVybjwvYT4uPC9w PgoKPHByZT4mbHQ7dHhwOnNvb19hcnRpY2xlX2ZpbHRlciBteS1jdXN0b20tZmllbGQ9JnF1 b3Q7XltbOmRpZ2l0Ol1dKyQmcXVvdDsmZ3Q7CiZsdDt0eHA6YXJ0aWNsZSAvJmd0OwombHQ7 L3R4cDpzb29fYXJ0aWNsZV9maWx0ZXImZ3Q7CjwvcHJlPgoKCTxoMyBpZD0iaW1hZ2UiPk9u bHkgc2hvdyBhcnRpY2xlcyB0aGF0IGhhdmUgYW4gYXJ0aWNsZSBpbWFnZTwvaDM+Cgo8cHJl PiZsdDt0eHA6c29vX2FydGljbGVfZmlsdGVyIGFydGljbGVfaW1hZ2U9JnF1b3Q7MSZxdW90 OyZndDsKJmx0O3R4cDphcnRpY2xlJmd0OwombHQ7dHhwOnBlcm1saW5rJmd0OyZsdDt0eHA6 YXJ0aWNsZV9pbWFnZSB0aHVtYm5haWw9JnF1b3Q7MSZxdW90OyAvJmd0OyZsdDsvdHhwOnBl cm1saW5rJmd0OwombHQ7L3R4cDphcnRpY2xlJmd0OwombHQ7L3R4cDpzb29fYXJ0aWNsZV9m aWx0ZXImZ3Q7CjwvcHJlPgoKCTxoMyBpZD0icmFuZ2UiPlVzZSA8Y29kZT53aGVyZTwvY29k ZT4gdG8gc2VsZWN0IG9uIGEgbnVtZXJpYyByYW5nZTwvaDM+Cgo8cHJlPiZsdDt0eHA6c29v X2FydGljbGVfZmlsdGVyIHdoZXJlPSZxdW90O2ltYWdlIEJFVFdFRU4gNCBBTkQgMjcmcXVv dDsmZ3Q7CiZsdDt0eHA6YXJ0aWNsZSAvJmd0OwombHQ7L3R4cDpzb29fYXJ0aWNsZV9maWx0 ZXImZ3Q7CjwvcHJlPgoKCTxoMyBpZD0iaW5kZXgiPkFuIGFscGhhYmV0aWNhbCBpbmRleCB1 c2luZyA8Y29kZT5pbmRleF9pZ25vcmU8L2NvZGU+IGFuZCA8Y29kZT5pbmRleF9maWVsZDwv Y29kZT48L2gzPgoKPHByZT4mbHQ7dHhwOnNvb19hcnRpY2xlX2ZpbHRlciBpbmRleF9maWVs ZD0mcXVvdDtpbmRleF90aXRsZSZxdW90OyZndDsKJmx0O3R4cDphcnRpY2xlIHNvcnQ9JnF1 b3Q7Y3VzdG9tXzMgYXNjJnF1b3Q7IHdyYXB0YWc9JnF1b3Q7dWwmcXVvdDsgYnJlYWs9JnF1 b3Q7bGkmcXVvdDsmZ3Q7CiZsdDt0eHA6cGVybWxpbmsmZ3Q7Jmx0O3R4cDpjdXN0b21fZmll bGQgbmFtZT0mcXVvdDtpbmRleF90aXRsZSZxdW90OyAvJmd0OyZsdDsvdHhwOnBlcm1saW5r Jmd0OwombHQ7L3R4cDphcnRpY2xlJmd0OwombHQ7L3R4cDpzb29fYXJ0aWNsZV9maWx0ZXIm Z3Q7CjwvcHJlPgoKCTxwPldoZW4gPGNvZGU+aW5kZXhfZmllbGQ8L2NvZGU+IGlzIHNldCB0 byB0aGUgbmFtZSBvZiBhbiBleGlzdGluZyBjdXN0b20gZmllbGQsIHRoaXMgZmllbGQgd2ls bCByZWNlaXZlIGFuIGluZGV4LXN0eWxlIHZlcnNpb24gb2YgdGhlIGFydGljbGUgdGl0bGUs IGUuZy4gJiM4MjIwO1RoZSBUaXRsZSYjODIyMTsgYmVjb21lcyAmIzgyMjA7VGl0bGUsIFRo ZSYjODIyMTsuIFlvdSBjYW4gdGhlbiBzb3J0IG9uIGFuZC9vciBkaXNwbGF5IHRoZSBpbmRl eC1zdHlsZSB0aXRsZSB3aXRoIHN0YW5kYXJkIFRleHRwYXR0ZXJuIGN1c3RvbSBmaWVsZCB0 YWdzIGFuZCBhdHRyaWJ1dGVzLCBhcyBzaG93bi48L3A+CgoJPHA+TGVhZGluZyB3b3JkcyBn ZXR0aW5nIHNwZWNpYWwgdHJlYXRtZW50IGFyZSB0aG9zZSBsaXN0ZWQgaW4gPGNvZGU+aW5k ZXhfaWdub3JlPC9jb2RlPi4gVGhpcyBkZWZhdWx0cyB0byBFbmdsaXNoIGFydGljbGVzLCBp LmUuICYjODIyMDtBLEFuLFRoZSYjODIyMTsuPC9wPgoKCTxwPlRoZSBjdXN0b20gZmllbGQg aGFzIHRvIGJlIG9uZSB5b3UgaGF2ZSBhY3R1YWxseSBjcmVhdGVkIGluIHNpdGUgcHJlZnMu IEluIHRoZSBleGFtcGxlIGl0IGlzIGNhbGxlZCAmIzgyMjA7aW5kZXhfdGl0bGUmIzgyMjE7 LCBhbmQgaXQgaXMgY3VzdG9tIGZpZWxkICMzLiBXaGVuIHNhdmluZyBhcnRpY2xlcyBsZWF2 ZSB0aGlzIGZpZWxkIGJsYW5rLCBvdGhlcndpc2UgPGNvZGU+c29vX2FydGljbGVfZmlsdGVy PC9jb2RlPiB3aWxsIGxlYXZlIGl0IHVuY2hhbmdlZC48L3A+CgoJPHA+VGhlIGluZGV4LXN0 eWxlIHRpdGxlIGlzIGNyZWF0ZWQgb25seSB3aXRoaW4gdGhlIDxjb2RlPnNvb19hcnRpY2xl X2ZpbHRlcjwvY29kZT4gY29udGFpbmVyICZtZGFzaDsgY29ycmVzcG9uZGluZyBjdXN0b20g ZmllbGQgaW4gdGhlIGRhdGFiYXNlIHJlbWFpbnMgYmxhbmsuPC9wPgoKCTxoMyBpZD0idXBk YXRlIj5BZGQgYW4gPGNvZGU+VVBEQVRFPC9jb2RlPiBxdWVyeSB0byBjaGFuZ2UgYXJ0aWNs ZSBzdGF0dXM8L2gzPgoKCTxwPlRoZSA8Y29kZT51cGRhdGVfc2V0PC9jb2RlPiBhdHRyaWJ1 dGUgYWxsb3dzIHlvdSB0byBydW4gYW4gPGNvZGU+VVBEQVRFPC9jb2RlPiBxdWVyeSBvbiB0 aGUgdGVtcG9yYXJ5IHRhYmxlLiBGb3IgZXhhbXBsZSwgdG8gdGVtcG9yYXJpbHkgY2hhbmdl IHRoZSBzdGF0dXMgb2YgYWxsICYjODIyMDtkcmFmdCYjODIyMTsgYXJ0aWNsZXMgaW4gdGhl ICYjODIyMDtOZXdzJiM4MjIxOyBzZWN0aW9uIHRvICYjODIyMDtsaXZlJiM4MjIxOyAoVGV4 dHBhdHRlcm4mIzgyMTc7cyBzdGF0dXMgY29kZSBmb3IgJiM4MjIwO2xpdmUmIzgyMjE7IGlz IDQgYW5kIGZvciAmIzgyMjA7ZHJhZnQmIzgyMjE7IGlzIDEpOjwvcD4KCjxwcmU+Jmx0O3R4 cDpzb29fYXJ0aWNsZV9maWx0ZXIgdXBkYXRlX3NldD0mcXVvdDtTdGF0dXM9NCZxdW90OyB1 cGRhdGVfd2hlcmU9JnF1b3Q7U3RhdHVzPTEgQU5EIFNlY3Rpb249JiMzOTtOZXdzJiMzOTsm cXVvdDsmZ3Q7CiZsdDt0eHA6YXJ0aWNsZSAvJmd0OwombHQ7L3R4cDpzb29fYXJ0aWNsZV9m aWx0ZXImZ3Q7CjwvcHJlPgoKCTxoMiBpZD0ibm90ZXMiPlRlY2huaWNhbCBub3RlczwvaDI+ CgoJPGgzIGlkPSJzYWZldHkiPlNhZmV0eTwvaDM+CgoJPHA+VGhpcyBwbHVnaW4gYXR0ZW1w dHMgdG8gcnVuIDxjb2RlPkNSRUFURTwvY29kZT4sIDxjb2RlPkRST1A8L2NvZGU+LCBhbmQs IG9wdGlvbmFsbHksIDxjb2RlPlVQREFURTwvY29kZT4gcXVlcmllcy4gVGhlcmUgaXMgYSBz YWZldHkgY2hlY2s6IGlmIHRoZSBpbml0aWFsIDxjb2RlPkNSRUFURSBURU1QT1JBUlkgVEFC TEU8L2NvZGU+IHF1ZXJ5IGZhaWxzLCB0aGUgcGx1Z2luIGV4aXRzIGltbWVkaWF0ZWx5LCB3 aXRob3V0IHBhcnNpbmcgdGhlIHRhZyBjb250ZW50cy4gSG93ZXZlciwgdGhlIHBsdWdpbiBo YXMgbm90IGJlZW4gdGVzdGVkIGV4dGVuc2l2ZWx5LCBhbmQgeW91IHNob3VsZCBjZXJ0YWlu bHkga2VlcCByZWd1bGFyIGRhdGFiYXNlIGJhY2t1cHMgaWYgeW91IGFyZSBkb2luZyBhbnl0 aGluZyBlc3BlY2lhbGx5IGludGVyZXN0aW5nIHdpdGggdGhpcyBwbHVnaW4uIE9mIGNvdXJz ZSwgeW91IHNob3VsZCBrZWVwIHJlZ3VsYXIgZGF0YWJhc2UgYmFja3VwcyBpbiBhbnkgZXZl bnQuPC9wPgoKCTxwPk9uZSB0aGluZyB5b3Ugc2hvdWxkIGFic29sdXRlbHkgPHNwYW4gY2xh c3M9Indhcm5pbmciPjxzcGFuIGNsYXNzPSJjYXBzIj5OT1Q8L3NwYW4+PC9zcGFuPiBkbyBp cyBhc3N1bWUgdGhhdCBpdCBpcyBzYWZlIHRvIGRvIGFueXRoaW5nIHlvdSBsaWtlIHdpdGhp biB0aGUgdGFnIGNvbnRlbnRzLiBUaGUgbWFpbiBpc3N1ZSBpcyB0aGF0IGlmIHRoZSBwYWdl IGNvbnRleHQgaXMgc2VhcmNoIHJlc3VsdHMgKGkuZS4sIHRoZSA8Y29kZT5xPC9jb2RlPiBx dWVyeSBwYXJhbWV0ZXIgaXMgc2V0KSwgdGhlIHRhZyB3aWxsIHNpbXBseSBwYXJzZSBpdHMg Y29udGVudHMgYW5kIHJldHVybiB0aGVtIGFzIGlzLiBJZiB5b3Ugc3R1Y2sgYSByYXcgcXVl cnkgaW50byB0aGUgdGFnIGNvbnRlbnRzIG9uIHRoZSBhc3N1bXB0aW9uIHRoZSBxdWVyeSB3 b3VsZCBvbmx5IHJ1biB3aGVuIHRoZSB0ZW1wb3JhcnkgdGV4dHBhdHRlcm4gdGFibGUgZXhp c3RzLCB5b3UmIzgyMTc7ZCByZWdyZXQgaXQuIE1heWJlIG5vdCB0b2RheSwgbWF5YmUgbm90 IHRvbW9ycm93LCBidXQgc29vbiwgYW5kIGZvciB0aGUgcmVzdCBvZiB5b3VyIGxpZmUuPC9w PgoKCTxoMyBpZD0idHJvdWJsZXNob290aW5nIj5Ucm91Ymxlc2hvb3Rpbmc8L2gzPgoKCTxw PllvdSBtaWdodCBnZXQgYW4gZXJyb3IgbGlrZSB0aGlzOiA8Y29kZT5UZXh0cGF0dGVybiBX YXJuaW5nOiBOb3QgdW5pcXVlIHRhYmxlL2FsaWFzOiAmIzM5O3RleHRwYXR0ZXJuJiMzOTs8 L2NvZGU+LiBJdCBzZWVtcyB0aGF0IHNvbWUgY29uZmlndXJhdGlvbnMgYWxsb3cgdGhlIHNo b3J0Y3V0IG9mIGNyZWF0aW5nIHRoZSB0ZW1wb3JhcnkgdGFibGUgYW5kIHNlbGVjdGluZyBm cm9tIHRoZSBhY3R1YWwgdGFibGUgb2YgdGhlIHNhbWUgbmFtZSBpbiB0aGUgc2FtZSBzdGF0 ZW1lbnQsIGJ1dCBzb21lIGRvbiYjODIxNzt0LiBQZXJmb3JtYW5jZS13aXNlIGl0IGlzIGNl cnRhaW5seSBiZXR0ZXIgdG8gdXNlIGEgc2luZ2xlIHN0YXRlbWVudCwgYnV0IGlmIHRoaXMg ZG9lc24mIzgyMTc7dCB3b3JrIGZvciB5b3UsIDxkZWw+dXNlIHRoZSBhbHRlcm5hdGUgdmVy c2lvbiBvZiB0aGUgcGx1Z2luLCBpbmNsdWRlZCBpbiB0aGUgZG93bmxvYWQ8L2RlbD4gcGxl YXNlIDxhIGhyZWY9Imh0dHA6Ly9pcHNlZGl4aXQubmV0L2luZm8vMi9jb250YWN0Ij5jb250 YWN0IG1lPC9hPi48L3A+CgoJPHA+SWYgeW91IHVzZSA8YSBocmVmPSJodHRwOi8vaXBzZWRp eGl0Lm5ldC90eHAvMjQvbXVsdGlkb2MiPk11bHRpZG9jPC9hPiBhbmQgc2VlIGFuIGVycm9y IG1lc3NhZ2UgaW5jbHVkaW5nIDxjb2RlPlRhYmxlICYjMzk7dGV4dHBhdHRlcm4mIzM5OyBh bHJlYWR5IGV4aXN0czwvY29kZT4sIHNlZSB0aGUgPGEgaHJlZj0iI211bHRpZG9jIj5ub3Rl IG9uIE11bHRpZG9jIGNvbXBhdGliaWxpdHk8L2E+LCBiZWxvdy48L3A+CgoJPGgzIGlkPSJw ZXJmb3JtYW5jZSI+UGVyZm9ybWFuY2UgY29uc2lkZXJhdGlvbnM8L2gzPgoKCTxwPk1vc3Qg cGx1Z2lucyB0aGF0IGdpdmUgeW91IGEgc291cGVkLXVwIGVxdWl2YWxlbnQgb2YgPGNvZGU+ YXJ0aWNsZTwvY29kZT4gb3IgPGNvZGU+YXJ0aWNsZV9jdXN0b208L2NvZGU+IGhhdmUgdG8g ZHVwbGljYXRlIGFuZCBtb2RpZnkgPGNvZGU+ZG9BcnRpY2xlcygpPC9jb2RlPiBwbHVzIGEg Y291cGxlIG9mIG90aGVyIGNvcmUgVHhwIGZ1bmN0aW9ucy4gTGVzcyB0aGFuIGlkZWFsLCBh dCBsZWFzdCBpbiB0ZXJtcyBvZiBlYXNlIG9mIHBsdWdpbiBhdXRob3JpbmcsIGJlY2F1c2Ug PGNvZGU+ZG9BcnRpY2xlcygpPC9jb2RlPiBpcyBxdWl0ZSBhIGxvdCBvZiBjb2RlIHRvIGR1 cGxpY2F0ZSBhbmQgZWRpdCBpbiBhIHBsdWdpbi48L3A+CgoJPHA+VGhpcyBwbHVnaW4gdGFr ZXMgYSB2ZXJ5IGRpZmZlcmVudCBhcHByb2FjaCYjODIxMjtpdCBjcmVhdGVzIGEgdGVtcG9y YXJ5IHRhYmxlIGhvbGRpbmcgYSBmaWx0ZXJlZCBzZXQgb2YgYXJ0aWNsZXMsIHRodXMgYWxs b3dpbmcgeW91IHRvIHVzZSA8Y29kZT5hcnRpY2xlPC9jb2RlPiBhbmQvb3IgPGNvZGU+YXJ0 aWNsZV9jdXN0b208L2NvZGU+IG5vcm1hbGx5LiBDb2RlLXdpc2UgdGhpcyBpcyB2ZXJ5IHNp bXBsZTsgcGVyZm9ybWFuY2Utd2lzZSBpdCBtaWdodCBiZSBpbmZlcmlvciAoSSBkb24mIzgy MTc7dCBrbm93KS4gSW4gbXkgbGltaXRlZCBhbmQgaW5mb3JtYWwgdGVzdGluZyB0aGUgZXh0 cmEgdGltZSByZXF1aXJlZCBmb3IgZGVhbGluZyB3aXRoIHRoZSB0ZW1wb3JhcnkgdGFibGUg aXMgYSBub24taXNzdWUuIFRoaXMgY291bGQgY2hhbmdlIHdpdGggYSB2ZXJ5IGxhcmdlIDxj b2RlPnRleHRwYXR0ZXJuPC9jb2RlPiAoYXJ0aWNsZXMpIHRhYmxlLiBCdXQgYXMgbG9uZyBh cyB5b3Ugc2V0IDxjb2RlPnNvb19hcnRpY2xlX2ZpbHRlcjwvY29kZT4mIzgyMTc7cyBhdHRy aWJ1dGVzIHNvIGFzIHRvIHByb2R1Y2UgYSByZWxhdGl2ZWx5IHNtYWxsIG51bWJlciBvZiBh cnRpY2xlcywgdGhlcmUgc2hvdWxkbiYjODIxNzt0IGJlIGEgcHJvYmxlbSBpbiBtb3N0IGNh c2VzLjwvcD4KCgk8cD5NaWdodCBiZSBhbm90aGVyIHN0b3J5IG9uIGEgaGlnaGx5LW9wdGlt aXplZCwgbGFyZ2UsIGhpZ2gtdHJhZmZpYyB3ZWJzaXRlIHdoZXJlIG1heGltdW0gcGVyZm9y bWFuY2UgaXMgYSBtYWpvciBjb25jZXJuLjwvcD4KCgk8aDMgaWQ9Im11bHRpZG9jIj5NdWx0 aWRvYyBjb21wYXRpYmlsaXR5PC9oMz4KCgk8cD5UaGUgPGEgaHJlZj0iaHR0cDovL2lwc2Vk aXhpdC5uZXQvdHhwLzI0L211bHRpZG9jIj5zb29fbXVsdGlkb2M8L2E+IHBsdWdpbiBhbHNv IHVzZXMgdGhlIHRlbXBvcmFyeSB0YWJsZSB0cmljayB0byBmaWx0ZXIgYXJ0aWNsZXMsIHdo aWNoIGNhbiBvbmx5IGJlIGRvbmUgb25jZSBwZXIgcGFnZSBsb2FkLiBUbyBhY2hpZXZlIGNv bXBhdGliaWxpdHkgYmV0d2VlbiA8c3Ryb25nPnNvb19hcnRpY2xlX2ZpbHRlcjwvc3Ryb25n PiBhbmQgPHN0cm9uZz5zb29fbXVsdGlkb2M8L3N0cm9uZz4sIGZvbGxvdyB0aGVzZSBzdGVw czo8L3A+CgoJPHVsPgoJCTxsaT5JbiBNdWx0aWRvYyBwcmVmcyAoY2xpY2sgPHN0cm9uZz5z b29fbXVsdGlkb2M8L3N0cm9uZz4mIzgyMTY7cyAmIzgyMjA7T3B0aW9ucyYjODIyMTsgbGlu ayBpbiB0aGUgcGx1Z2luIGxpc3QpIHNldCB0aGUgJiM4MjIwO1Nob3cgYWxsJiM4MjIxOyBw cmVmZXJlbmNlIHRvICYjODIyMDt5ZXMmIzgyMjE7LjwvbGk+CgkJPGxpPkFzIG5lZWRlZCwg dXNlIDxjb2RlPnNvb19hcnRpY2xlX2ZpbHRlcjwvY29kZT4sIHdpdGggPGNvZGU+bXVsdGlk b2M9JnF1b3Q7MSZxdW90OzwvY29kZT4sIHRvIGZpbHRlciBNdWx0aWRvYyBpbnRlcmlvciBw YWdlcy48L2xpPgoJPC91bD4KCgk8cD5Ob3RlIHRoYXQsIHVubGlrZSBNdWx0aWRvYyYjODIx NztzIGJ1aWx0LWluIGZpbHRlciwgPGNvZGU+c29vX2FydGljbGVfZmlsdGVyPC9jb2RlPiBk b2VzIG5vdCBkaXN0aW5ndWlzaCBiZXR3ZWVuIGxpc3QgYW5kIGluZGl2aWR1YWwgYXJ0aWNs ZSBjb250ZXh0LCBzbyBpZiB5b3VyIE11bHRpZG9jIHNldHVwIHVzZXMgdGhlIHNhbWUgPGNv ZGU+YXJ0aWNsZTwvY29kZT4gdGFnIGZvciBsaXN0cyBhbmQgaW5kaXZpZHVhbCBhcnRpY2xl cyB5b3Ugd2lsbCBoYXZlIGNoYW5nZSB0aGlzLiAoVGhpcyBpcyBkZWxpYmVyYXRlOyBpdCBh bGxvd3MgeW91IHRvIHVzZSA8Y29kZT5zb29fYXJ0aWNsZV9maWx0ZXI8L2NvZGU+IGZvciBh biA8Y29kZT5hcnRpY2xlX2N1c3RvbTwvY29kZT4gbGlzdCBvbiBhbiBpbmRpdmlkdWFsIGFy dGljbGUgcGFnZS4pPC9wPgoKCTxoMiBpZD0iaGlzdG9yeSI+VmVyc2lvbiBoaXN0b3J5PC9o Mj4KCgk8aDM+MC4zLjAgKEp1bCAxMSwgMjAxMCk8L2gzPgoKCTxwPk5ldyBhdHRyaWJ1dGU6 IDxjb2RlPndoZXJlPC9jb2RlPiwgYWxsb3dzIHlvdSB0byBhZGQgYSByYXcgPGNvZGU+V0hF UkU8L2NvZGU+IGV4cHJlc3Npb24gdG8gdGhlIHNlbGVjdGlvbiBjcml0ZXJpYS4gKFRoYW5r cyB0byBWaWN0b3IgZm9yIHRoZSBpZGVhLik8L3A+CgoJPGgzPjAuMi43IChKdW4gNiwgMjAx MCk8L2gzPgoKCTxwPkZpeGVkIGJ1ZyBpbiA8Y29kZT5pbmRleF9pZ25vcmU8L2NvZGU+IGF0 dHJpYnV0ZS4gKFRoYW5rcyB0byB0aDNsb25pdXMgZm9yIHNwb3R0aW5nIGl0Lik8L3A+CgoJ PGgzPjAuMi42IChNYXIgOCwgMjAxMCk8L2gzPgoKCTxwPk5ldyBhdHRyaWJ1dGVzLCA8Y29k ZT51cGRhdGVfc2V0PC9jb2RlPiBhbmQgPGNvZGU+dXBkYXRlX3doZXJlPC9jb2RlPiwgYWxs b3dpbmcgYW4gYWRkaXRpb25hbCA8Y29kZT5VUERBVEU8L2NvZGU+IHF1ZXJ5IG9uIHRoZSB0 ZW1wb3JhcnkgdGFibGUuPC9wPgoKCTxoMz4wLjIuNSAoRmViIDE5LCAyMDEwKTwvaDM+CgoJ PHA+Q2hlY2tzIHRoYXQgdGVtcG9yYXJ5IHRhYmxlIGNyZWF0aW9uIHdhcyBzdWNjZXNzZnVs LCBlbHNlIHJldHVybnMgbm90aGluZy48L3A+CgoJPGgzPjAuMi40IChGZWIgMTksIDIwMTAp PC9oMz4KCgk8cD5DcmVhdGUgcHJvcGVybHktYWxwaGFiZXRpemVkIGluZGV4ZXMgd2l0aCB0 aGUgbmV3IDxjb2RlPmluZGV4X2lnbm9yZTwvY29kZT4gYW5kIDxjb2RlPmluZGV4X2ZpZWxk PC9jb2RlPiBhdHRyaWJ1dGVzLjwvcD4KCgk8aDM+MC4yLjMgKEphbiAyMCwgMjAxMCk8L2gz PgoKCTxwPkZpeGVkIGN1c3RvbSBmaWVsZCBidWc8L3A+CgoJPGgzPjAuMi4yIChTZXB0IDI4 LCAyMDA5KTwvaDM+CgoJPHA+TmV3IDxjb2RlPmFydGljbGVfaW1hZ2U8L2NvZGU+IGF0dHJp YnV0ZTwvcD4KCgk8aDM+MC4yLjEgKEp1bHkgNywgMjAwOSk8L2gzPgoKCTxwPjxhIGhyZWY9 Imh0dHA6Ly9pcHNlZGl4aXQubmV0L3R4cC8yNC9tdWx0aWRvYyI+c29vX211bHRpZG9jPC9h PiBjb21wYXRpYmlsaXR5LjwvcD4KCgk8aDM+MC4yIChKdWx5IDQsIDIwMDkpPC9oMz4KCgk8 cD5GaXhlZCBiZWhhdmlvciBvZiA8Y29kZT5leHBpcmVzPC9jb2RlPiBhdHRyaWJ1dGUuPC9w PgoKCTxoMz4wLjEgKEp1bHkgMywgMjAwOSk8L2gzPgoKCTxwPkluaXRpYWwgcmVsZWFzZS4g QWxsb3dzIGZpbHRlcmluZyBvbiB0aGUgPGNvZGU+RXhwaXJlczwvY29kZT4gZmllbGQsIGFu ZCByZWdleHAgcGF0dGVybiBtYXRjaGluZyBvbiBhbnkgY3VzdG9tIGZpZWxkLjwvcD4KCiA8 L2Rpdj4iO3M6NDoiY29kZSI7czoyOTczOiIKZnVuY3Rpb24gc29vX2FydGljbGVfZmlsdGVy KCAkYXR0cywgJHRoaW5nICkgewoKCWdsb2JhbCAkcHJldGV4dDsKCWlmICggJHByZXRleHRb J3EnXSApIHJldHVybiBwYXJzZSgkdGhpbmcpOwoKCSRjdXN0b21GaWVsZHMgPSBnZXRDdXN0 b21GaWVsZHMoKTsJCQkJCQkvLyBmaWVsZCBuYW1lcwoJJGN1c3RvbUF0dHMgPSBhcnJheV9u dWxsKGFycmF5X2ZsaXAoJGN1c3RvbUZpZWxkcykpOwoJJHN0YW5kYXJkQXR0cyA9IGFycmF5 KAoJCSdleHBpcmVzJwkJPT4gbnVsbCwJLy8gYWNjZXB0ICdhbnknLCAncGFzdCcsICdmdXR1 cmUnLCBvciAwCgkJJ2FydGljbGVfaW1hZ2UnCT0+IG51bGwsCS8vIGJvb2xlYW46IDAgPSBu byBpbWFnZSwgMSA9IGhhcyBpbWFnZQoJCSdtdWx0aWRvYycJCT0+IG51bGwsCS8vIGZvciBz b29fbXVsdGlkb2MgY29tcGF0aWJpbGl0eQoJCSdpbmRleF9pZ25vcmUnCT0+ICdhLGFuLHRo ZScsCS8vIGxlYWRpbmcgd29yZHMgdG8gbW92ZSBpbiBpbmRleCB0aXRsZXMKCQknaW5kZXhf ZmllbGQnCT0+IG51bGwsCS8vIGN1c3RvbSBmaWVsZCBuYW1lIGZvciBpbmRleC1zdHlsZSB0 aXRsZQoJCSd1cGRhdGVfc2V0Jwk9PiBudWxsLAkvLyBTRVQgY2xhdXNlIGZvciBjdXN0b20g dXBkYXRlIHF1ZXJ5CgkJJ3VwZGF0ZV93aGVyZScJPT4gbnVsbCwJLy8gV0hFUkUgY2xhdXNl IGZvciBjdXN0b20gdXBkYXRlIHF1ZXJ5CgkJJ3doZXJlJwkJCT0+IG51bGwsCS8vIHJhdyBX SEVSRSBleHByZXNzaW9uIGZvciBmaWx0ZXIKCSk7CglleHRyYWN0KGxBdHRzKCRzdGFuZGFy ZEF0dHMgKyAkY3VzdG9tQXR0cywgJGF0dHMpKTsKCWlmICggISBpc19udWxsKCRleHBpcmVz KSApCgkJc3dpdGNoICggJGV4cGlyZXMgKSB7CgkJCWNhc2UgJ2FueSc6CgkJCQkkd2hlcmVf ZXhwW10gPSAnRXhwaXJlcyA+IDAnOwoJCQkJYnJlYWs7CgkJCWNhc2UgJ3Bhc3QnOgoJCQkJ JHdoZXJlX2V4cFtdID0gJ0V4cGlyZXMgPD0gbm93KCkgYW5kIEV4cGlyZXMgPiAwJzsKCQkJ CWJyZWFrOwoJCQljYXNlICdmdXR1cmUnOgoJCQkJJHdoZXJlX2V4cFtdID0gJ0V4cGlyZXMg PiBub3coKSc7CgkJCQlicmVhazsKCQkJY2FzZSAwOgoJCQkJJHdoZXJlX2V4cFtdID0gJ0V4 cGlyZXMgPSAwJzsKCQl9CgoJaWYgKCAhIGlzX251bGwoJGFydGljbGVfaW1hZ2UpICkKCQkk d2hlcmVfZXhwW10gPSAnSW1hZ2UgJyAuICggJGFydGljbGVfaW1hZ2UgPyAnIScgOiAnJyAp IC4gIj0gJyciOwoKCWlmICggJGN1c3RvbUZpZWxkcyApCgkJZm9yZWFjaCggJGN1c3RvbUZp ZWxkcyBhcyAkaSA9PiAkZmllbGQgKQoJCQkJLy8gdG8gcHJldmVudCBjb25mbGljdHMgYmV0 d2VlbiBuYW1lZCBhdHRzIGFuZCBjdXN0b20gZmllbGRzCgkJCWlmICggISBhcnJheV9rZXlf ZXhpc3RzKCRmaWVsZCwgJHN0YW5kYXJkQXR0cykgYW5kIGlzc2V0KCRhdHRzWyRmaWVsZF0p ICkgewoJCQkJJHZhbHVlID0gJGF0dHNbJGZpZWxkXTsKCQkJCXN3aXRjaCAoICR2YWx1ZSAp IHsKCQkJCQljYXNlICcnOgoJCQkJCQkkd2hlcmVfZXhwW10gPSAiY3VzdG9tXyRpID0gJyci OwoJCQkJCQlicmVhazsKCQkJCQlkZWZhdWx0OgoJCQkJCQkkd2hlcmVfZXhwW10gPSAiY3Vz dG9tXyRpIHJlZ2V4cCAnJHZhbHVlJyI7CgkJCQl9CgkJCX0KCglpZiAoICRtdWx0aWRvYyBh bmQgX3Nvb19tdWx0aWRvY19pZHNfaW5pdCgpICkgewoJCWdsb2JhbCAkc29vX211bHRpZG9j OwoJCSR3aGVyZV9leHBbXSA9ICJJRCBub3QgaW4gKCIgLiBpbXBsb2RlKCcsJywgJHNvb19t dWx0aWRvY1snbm9pbmRleCddKSAuICIpIjsKCX0KCglpZiAoICR3aGVyZSApICR3aGVyZV9l eHBbXSA9ICR3aGVyZTsKCgkkc2VsZWN0ID0gJyonOwoJJHRhYmxlID0gc2FmZV9wZngoJ3Rl eHRwYXR0ZXJuJyk7Cgkkd2hlcmVfZXhwID0gaXNzZXQoJHdoZXJlX2V4cCkgPyAnIHdoZXJl ICcgLiBpbXBsb2RlKCcgYW5kICcsICR3aGVyZV9leHApIDogJyc7CgoJaWYgKCAkaW5kZXhf ZmllbGQgKSB7CgkJJGkgPSBhcnJheV9zZWFyY2goJGluZGV4X2ZpZWxkLCAkY3VzdG9tRmll bGRzKTsKCQlpZiAoICRpICkgewoJCQkkcmVnZXhwID0gIideKCIgLiBpbXBsb2RlKCd8Jywg ZG9fbGlzdCgkaW5kZXhfaWdub3JlKSkgLiAiKSQnIjsKCQkJJHNlbGVjdCAuPSAiLCB0cmlt KFRpdGxlKSBhcyBpbmRleF90aXRsZSwgc3Vic3RyaW5nX2luZGV4KHRyaW0oVGl0bGUpLCcg JywxKSBhcyBmaXJzdF93b3JkLCBzdWJzdHJpbmcodHJpbShUaXRsZSksIGxvY2F0ZSgnICcs dHJpbShUaXRsZSkpKzEpIGFzIHJlbWFpbmluZ193b3JkcyI7CgkJCSR1cGRhdGVbXSA9IGFy cmF5KAoJCQkJJ3NldCcgPT4gImN1c3RvbV8kaSA9IGNvbmNhdChyZW1haW5pbmdfd29yZHMs ICcsICcsIGZpcnN0X3dvcmQpIiwKCQkJCSd3aGVyZScgPT4gImZpcnN0X3dvcmQgcmVnZXhw ICRyZWdleHAgYW5kIGN1c3RvbV8kaSA9ICcnIiwKCQkJKTsKCQkJJHVwZGF0ZVtdID0gYXJy YXkoCgkJCQknc2V0JyA9PiAiY3VzdG9tXyRpID0gdHJpbShUaXRsZSkiLAoJCQkJJ3doZXJl JyA9PiAiY3VzdG9tXyRpID0gJyciLAoJCQkpOwoKCQl9Cgl9CgoJaWYgKCAhIHNhZmVfcXVl cnkoImNyZWF0ZSB0ZW1wb3JhcnkgdGFibGUgJHRhYmxlIHNlbGVjdCAkc2VsZWN0IGZyb20g JHRhYmxlIiAuICR3aGVyZV9leHApICkKCQlyZXR1cm47CgoJaWYgKCAkdXBkYXRlX3NldCAp CgkJJHVwZGF0ZVtdID0gYXJyYXkoCgkJCSdzZXQnID0+ICR1cGRhdGVfc2V0LAoJCQknd2hl cmUnID0+ICR1cGRhdGVfd2hlcmUgPyAkdXBkYXRlX3doZXJlIDogJzE9MScsCgkJKTsKCglp ZiAoICEgZW1wdHkoJHVwZGF0ZSkgKQoJCWZvcmVhY2ggKCAkdXBkYXRlIGFzICR1ICkKCQkJ c2FmZV91cGRhdGUoJ3RleHRwYXR0ZXJuJywgJHVbJ3NldCddLCAkdVsnd2hlcmUnXSk7CgoJ JG91dCA9IHBhcnNlKCR0aGluZyk7CglzYWZlX3F1ZXJ5KCJkcm9wIHRlbXBvcmFyeSB0YWJs ZSAkdGFibGUiKTsKCXJldHVybiAkb3V0OwoKfQoiO3M6NDoidHlwZSI7czoxOiIwIjtzOjU6 ImZsYWdzIjtzOjE6IjAiO3M6NToib3JkZXIiO3M6MToiNSI7czozOiJtZDUiO3M6MzI6ImQy NjI1NzZkNzU5Mjk3OTNmMjBkZGJkZDc2ZTBmMzUwIjt9