<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE module [
  <!ELEMENT module (dtdversion,name,version,description*,help*,about*,requires*,file+)>
  <!ELEMENT dtdversion (#PCDATA)>
  <!ELEMENT name (#PCDATA)>
  <!ELEMENT version (#PCDATA)>
  <!ELEMENT mincmsversion (#PCDATA)>
  <!ELEMENT description (#PCDATA)>
  <!ELEMENT help (#PCDATA)>
  <!ELEMENT about (#PCDATA)>
  <!ELEMENT requires (requiredname,requiredversion)>
  <!ELEMENT requiredname (#PCDATA)>
  <!ELEMENT requiredversion (#PCDATA)>
  <!ELEMENT file (filename,isdir,data)>
  <!ELEMENT filename (#PCDATA)>
  <!ELEMENT isdir (#PCDATA)>
  <!ELEMENT data (#PCDATA)>
]>
<module>
	<dtdversion>1.3</dtdversion>
	<name>babel</name>
	<version>0.4.1</version>
  <mincmsversion>1.10-beta3</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CgkJCQk8cD5UaGlzIG1vZHVsZSBtYW5hZ2VzIG11bHRpcGxlcyBsYW5ndWFnZXMgZm9yIHRoZSBmcm9udGVuZCBhbmQgbmF2aWdhdGlvbiB0aHJvdWdoIHRoZSBsYW5ndWFnZXMuPC9wPgoJCQk8YnIvPjxoMz5Ib3cgRG8gSSBVc2UgSXQ/PC9oMz4KCQkJCTxici8+PGg0PlRyZWUgYnJhbmNoZXM8L2g0PgoJCQkJCTxwPlRoaXMgbW9kdWxlIHVzZXMgYW4gYXBwcm9hY2ggdG8gbXVsdGlsaW5ndWFsIHNpdGVzIGNhbGxlZCAic2VwYXJhdGVkIHRyZWUgYnJhbmNoZXMiLCB3aGljaCBoYXMgYmVlbiBkZXZlbG9wcGVkIGJ5IG90aGVyIGNtc21zIGRldmVsb3BlcnMgKG5hbWVseSBNYXJjb3MgQ3J1eiAtIHNlZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmcvaW5kZXgucGhwL3RvcGljLDE5MDk5Lm1zZzk0NzQ5Lmh0bWwjbXNnOTQ3NDkiIHRhcmdldD0iX2JsYW5rIj50aGlzIHRvcGljPC9hPikuPC9wPjxici8+CgkJCQkJPHA+U2hvdWxkIHlvdSBuZWVkIHRvIHVzZSBpdCBpbiB5b3VyIHRlbXBsYXRlcywgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgY29kZSB3aWxsIGJlIHN0b3JlZCBpbiB0aGUgJHBhZ2VfbGFuZyB2YXJpYWJsZS4gTW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgbGFuZ3VhZ2UgY2FuIGFsc28gYmUgcmV0cmlldmVkIHVzaW5nIHRoZSAkcGFnZV9sYW5nX2luZm8gb2JqZWN0ICh3aXRoIHRoZSBzYW1lIGF0dHJpYnV0ZXMgYXMgaW4gdGhlIG1lbnUgdGVtcGxhdGVzKS48L3A+CgkJCQk8aDQ+UGFydCAxOiBzZXR0aW5nIHVwIHRoZSBwYWdlczwvaDQ+CQkJCgkJCQkJPHA+VG8gdXNlIHRoaXMsIHlvdSB3aWxsIGhhdmUgdG8gY3JlYXRlIGRpZmZlcmVudCByb290IHBhZ2VzIGZvciBlYWNoIGxhbmd1YWdlLiBGb3IgZXhhbXBsZTo8L3A+CgkJCQkJPHVsPgoJCQkJCQk8bGk+MS4gRW5nbGlzaDx1bD4KCQkJCQkJCTxsaT4xLjEuIDFzdCBwYWdlPC9saT4KCQkJCQkJCTxsaT4xLjIuIDJuZCBwYWdlPC9saT4KCQkJCQkJCTxsaT4xLjMuIDNyZCBwYWdlPC9saT4KCQkJCQkJPC91bD48L2xpPgoJCQkJCQk8bGk+Mi4gRnJhbiZjY2VkaWw7YWlzPHVsPgoJCQkJCQkJPGxpPjIuMS4gUGFnZSAxPC9saT4KCQkJCQkJCTxsaT4yLjIuIFBhZ2UgMjwvbGk+CgkJCQkJCQk8bGk+Mi4zLiBQYWdlIDM8L2xpPgoJCQkJCQk8L3VsPjwvbGk+CgkJCQkJPC91bD4KCQkJCQk8cD5Sb290IGxhbmd1YWdlIHBhZ2VzICgxLiBhbmQgMi4pIHNob3VsZCBiZSBzZWN0aW9uIGhlYWRlcnMuIFlvdSBjYW4gbmFtZSB0aGVtIChhbGlhcyBhbmQgYWxsKSBhbnkgd2F5IHlvdSB3YW50LjwvcD4KCQkJCQk8cD5JbiBvcmRlciB0byBkaXNwbGF5IG1lbnUgY29ycmVjdGx5ICh0aGF0IGlzLCBub3QgdG8gZGlzcGxheSBsYW5ndWFnZSBoZWFkZXIgcGFnZXMgYW5kIHBhZ2VzIGJlbG9uZ2luZyB0byBvdGhlciBsYW5ndWFnZXMpLCBhbGwgeW91IGhhdmUgdG8gZG8gaXMgYWRkIHRoZSBzdGFydF9sZXZlbD0iMiIgdG8geW91ciBtZW51IHRhZ3M6PGJyLz4KCQkJCQl7bWVudSBzdGFydF9sZXZlbD0iMiJ9PC9wPgoJCQkJPGJyLz48aDQ+UGFydCAyOiBzZXR0aW5nIHVwIHRoZSBsYW5ndWFnZXM8L2g0PgoJCQkJCTxwPk5leHQsIGdvIHRvIEV4dGVuc2lvbnMtJmd0O0JhYmVsOiBNdWx0aWxpbmd1YWwgc2l0ZS4gRm9yIGVhY2ggbGFuZ3VhZ2UsIGNsaWNrIEFkZCBMYW5ndWFnZSBhbmQgZW50ZXIgdGhlIGFwcHJvcHJpYXRlIGluZm9ybWF0aW9ucy4gVGhlICJSb290IHBhZ2UiIHNob3VsZCBiZSB0aGUgc2VjdGlvbiBoZWFkZXJzIHlvdSd2ZSBjcmVhdGVkIGZvciBlYWNoIGxhbmd1YWdlICgxLkVuZ2xpc2gsIDIuRnJhbiZjY2VkaWw7YWlzKS4gVGhlICJEZWZhdWx0IHBhZ2UiIHNob3VsZCBiZSB0aGUgaG9tZSBwYWdlIGZvciBlYWNoIGxhbmd1YWdlLiBBcyBvZiB0aGUgbGFuZ3VhZ2UgY29kZSwgeW91IGNvdWxkIHVzZSBhbnkgNSBjaGFyYWN0ZXJzIGNvZGUsIGJ1dCBpbiBvcmRlciB0byBwcm92aWRlIGdvb2QgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBtb2R1bGVzLCB5b3Ugc2hvdWxkIHVzZSB0aGUgc2FtZSBhcyB0aGUgY21zICh5b3UgbWF5IHVzZSB0aGUgZHJvcCBkb3duIGxpc3Qgb24gdGhlIHRvcCByaWdodCB0byBwYXJ0aWFsbHkgZmlsbCB0aGUgZm9ybSkuPC9wPgoJCQkJCTxwPiggKldoZW4gcmVhZHksIG1ha2Ugc3VyIHlvdSBhY3RpdmF0ZSBlYWNoIGxhbmd1YWdlLi4uICk8L3A+CgkJCQk8YnIvPjxoND5QYXJ0IDM6IExhbmd1YWdlIG1lbnU8L2g0PgoJCQkJCTxwPlRvIGdldCBhIGxhbmd1YWdlIG1lbnUsIHlvdSBtYXkgdXNlIHRoZSBmb2xsb3dpbmcgdGFnOjxici8+CgkJCQkJe2JhYmVsIGFjdGlvbj0ibWVudSJ9PGJyLz4KCQkJCQlvciwgdG8gdXNlIGEgdGVtcGxhdGUgb3RoZXIgdGhhbiB0aGUgZGVmYXVsdCBvbmU6PGJyLz4KCQkJCQl7YmFiZWwgYWN0aW9uPSJtZW51IiB0ZW1wbGF0ZT0idGVtcGxhdGVfbmFtZSJ9PC9wPgoJCQkJCTxwPlRoZSAic2hvdyIgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGNob29zZSB3aGljaCBsYW5ndWFnZXMgc2hvdWxkIGJlIGRpc3BsYXllZC48L3A+CgkJCQk8YnIvPjxoND5QYXJ0IDQgKG9wdGlvbmFsKSA6IEN1c3RvbSBsYW5ndWFnZSBlbnRyaWVzPC9oND4KCQkJCQk8cD5JbiBtb2R1bGVzLCBnbG9iYWwgY29udGVudCBibG9ja3Mgb3Igd2hhdHNvZXZlciwgeW91IHdpbGwgbmVlZCB0byBjaGFuZ2UgdGhlIGNvbnRlbnQgZGVwZW5kaW5nIG9uIHRoZSBsYW5ndWFnZS4gVGhlIHRyYWRpdGlvbmFsIHdheSB0byBkbyB0aGlzIHdhcyB0byBjcmVhdGUgY29uZGl0aW9ucyB3aXRoIHRoZSBwYWdlX2xhbmcgdmFyaWFibGU6PGJyLz4KCQkJCQl7aWYgJHBhZ2VfbGFuZyA9PSAiZW5fVVMifUVuZ2xpc2ggdGV4dHtlbHNlaWYgJHBhZ2VfbGFuZyA9PSAiZnJfRlIifVRleHRlIGVuIGZyYW4mY2NlZGlsO2Fpc3svaWZ9PC9wPgoJCQkJCTxwPldpbGwgeW91IGNhbiBzdGlsbCB1c2UgdGhpcyBtZXRob2Qgd2l0aCB0aGUgbW9kdWxlLCBhbm90aGVyIG1vcmUgY2VudHJhbGl6ZWQgd2F5IGlzIHByb3ZpZGVkLiBJbiB0aGUgYWRtaW4gcGFuZWwgb2YgdGhpcyBtb2R1bGUsIHlvdSB3aWxsIGZpbmQgZm9yIGVhY2ggbGFuZ3VhZ2UgYSBsaW5rIHRvIGVkaXQgdGhlIGxhbmd1YWdlIGVudHJpZXMuIExhbmd1YWdlIGVudHJpZXMgYXJlIHN0cmluZ3MgdGhhdCBleGlzdCBmb3IgZWFjaCBsYW5ndWFnZSBidXQgaG9sZCBkaWZmZXJlbnQgdGV4dCAob3IgaHRtbCkuIFdoYXQgeW91IGNhbiBkbyBpcyB0byBjcmVhdGUgYSBuZXcgbGFuZ3VhZ2UgZW50cnkgKGZvciBleGFtcGxlOiAid2VsY29tZSB0ZXh0IiwgZW50ZXIgaXRzIGNvbnRlbnQgZm9yIGFsbCBsYW5ndWFnZXMsIGFuZCBzaW1wbHkgY2FsbCB0aGUgZW50cnkgd2hlcmV2ZXIgeW91IG5lZWQgaXQgdXNpbmcgdGhlIGRlZmF1bHQgYWN0aW9uOjxici8+CgkJCQkJe2JhYmVsIHNob3c9IndlbGNvbWUgdGV4dCJ9PGJyLz4KCQkJCQlTaG91bGQgeW91IGV2ZXIgbmVlZCB0byBlZGl0IHRoZSBzdHJpbmdzIGFuZCBhZGQgbGFuZ3VhZ2VzLCB5b3Ugd2lsbCBmaW5kIHRoaXMgc29sdXRpb24gdG8gYmUgbW9yZSBoYW5keS4gQnV0IGlmIHlvdSBwcmVmZXIgdGhlIG9sZCBvbmUsIGl0IHdpbGwgd29yayBqdXN0IGFzIG11Y2guPC9wPgoJCQkJCTxwPllvdSBjYW4gYWxzbyBhc3NpZ24gbGFuZ3VhZ2UgZW50cmllcyB0byBzbWFydHkgdmFyaWFibGVzLCB1c2luZzogPGJyLz4KCQkJCQl7YmFiZWwgc2hvdz0id2VsY29tZSB0ZXh0IiBhc3NpZ249IndlbGNvbWUifTxici8+CgkJCQkJb3IsIGlmIHlvdSB3YW50IHRvIGFzc2lnbiBtdWx0aXBsZSBlbnRyaWVzLCBzZXBlcmF0ZSB0aGVtIGJ5IGNvbW1hczo8YnIvPgoJCQkJCXtiYWJlbCBzaG93PSJlbnRyeTEsZW50cnkyLGVudHJ5MyIgYXNzaWduPSJ2YXIxLHZhcjIsdmFyMyJ9PC9wPgoJCQk8YnIvPjxoMz5MYW5ndWFnZSByZWRpcmVjdGlvbiBtZXRob2RzPC9oMz4JCgkJCQk8cD5UaGVyZSBhcmUgdHdvIHBvc3NpYmxlIG1ldGhvZHMgdG8gdGVsbCB0aGUgY21zIHdoaWNoIHBhZ2UgaXMgdGhlIGVxdWl2YWxlbnQgaW4gYW5vdGhlciBsYW5ndWFnZSBvZiBhIGdpdmVuIHBhZ2UuIEJ5IGRlZmF1bHQsIHRoZSBoaXJlcmFyY2h5IHNvbHV0aW9uIGlzIGFjdGl2YXRlZCwgYnV0IHlvdSBjYW4gY2hhbmdlIHRoYXQgaW4gdGhlIHNldHRpbmdzIHRhYi48L3A+CgkJCQk8YnIvPjxoND5NYXJjb3MgQ3J1eidzIGRlZmluaXRpb24gc29sdXRpb248L2g0PgoJCQkJCTxwPjxpPlByb3M6PC9pPiBhbGxvd3MgdGhpZ2h0IGN1c3RvbWl6YXRpb24gYW5kIHBhcnRpYWwgdHJhbnNsYXRpb24uPGJyLz4KCQkJCQk8aT5Db25zOjwvaT4gbmVlZCB0byBzcGVjaWZ5IGxhbmd1YWdlIGFsdGVybmF0aXZlcyBmb3IgZWFjaCBwYWdlLCBhbmQgdG8gdXBkYXRlIGl0IGlmIGFuIGFsaWFzIGNoYW5nZXMuPC9wPgoJCQkJCTxwPkFkZCB0aGUgZm9sbG93aW5nIHRhZyBpbiBlYWNoIG9mIHlvdXIgcGFnZSB0ZW1wbGF0ZXMgOjxici8+CgkJCQkJe2NvbnRlbnQgYmxvY2s9J090aGVyIGxhbmd1YWdlcycgb25lbGluZT0ndHJ1ZScgYXNzaWduPW90aGVyX2xhbmd1YWdlcyB3eXNpd3lnPSdmYWxzZSd9PGJyLz4KCQkJCQlUaGlzIHdpbGwgYWRkIGEgY29udGVudCBibG9jayB0byBiZSBmaWxsZWQgd2hlbiB5b3UgZWRpdCB0aGUgcGFnZS4gV2Ugd2lsbCB1c2UgdGhpcyBibG9jayB0byBkZWZpbmUgdGhlIGVxdWl2YWxlbnRzIGluIG90aGVyIGxhbmd1YWdlcyBmb3IgdGhpcyBwYWdlLCBieSBmaWxsaW5nIGl0IGluIHRoZSBmb2xsb3dpbmcgd2F5Ojxici8+CgkJCQkJImVuX1VTPXBhZ2UxO2ZyX0ZSPXBhZ2UyO2RlX0RFPXBhZ2UzIiAod2l0aG91dCB0aGUgcXVvdGVzIC0gdGhlIG9yZGVyIGRvZXMgbm90IG1hdHRlciwgYnV0IG5vIHNwYWNlcyBhcmUgYWxsb3dlZCk8YnIvPgoJCQkJCXdoZXJlIHBhZ2UxLCBwYWdlMiBhbmQgcGFnZTMgYXJlIHRoZSBwYWdlIGFsaWFzZXMuPC9wPgoJCQkJCTxwPlRvIG1ha2Ugc3VyZSB0aGUgbW9kdWxlcyB1c2VzIHRoaXMgbWV0aG9kLCBtYWtlIHN1cmUgdG8gdW50aWNrIHRoZSAiVXNlIGhpZXJhcmNoeSBmb3IgcmVkaXJlY3Rpb24iIG9wdGlvbiBpbiB0aGUgc2V0dGluZ3MgdGFiLjwvcD4KCQkJCTxici8+PGg0PlRoZSBoaWVyYXJjaHkgc29sdXRpb248L2g0PgoJCQkJCTxwPjxpPlByb3M6PC9pPiBpdCdzIGF1dG9tYXRpYyAtIHlvdSBkb24ndCBoYXZlIHRvIGRvIGFueXRoaW5nLjxici8+CgkJCQkJPGk+Q29uczo8L2k+IHRoZSBwYWdlIHN0cnVjdHVyZSBtdXN0IGJlIGlkZW50aWNhbCBmb3IgZWFjaCBsYW5ndWFnZS48L3A+CgkJCQkJPHA+VGhpcyBzb2x1dGlvbiB1c2VzIHRoZSBwYWdlIGhpZXJhcmNoeSB0byBrbm93IHdoaWNoIHBhZ2VzIGFyZSBlcXVpdmFsZW50LiBJbiBvdXIgZXhhbXBsZSBhYm92ZSwgIjIuMy4gUGFnZSAzIiB3b3VsZCBiZSB0aGUgZnJlbmNoIGVxdWl2YWxlbnQgb2YgIjEuMy4gM3JkIHBhZ2UiLCBiZWNhdXNlIGl0IG9jY3VwaWVzIHRoZSBlcXVpdmFsZW50IHBvc2l0aW9uIGluIHRoZSBmcmVuY2ggYnJhbmNoLjxici8+CgkJCQkJSW4gb3RoZXIgd29yZHMsIHNob3VsZCB0aGUgcGFnZSBiZSBvcmRlcmVkIGRpZmZlcmVudGx5LCBhbGwgd291bGQgYmUgbWVzc2VkIHVwOjwvcD4KCQkJCQk8dWw+CgkJCQkJCTxsaT4xLiBFbmdsaXNoPHVsPgoJCQkJCQkJPGxpPjEuMS4gMXN0IHBhZ2U8L2xpPgoJCQkJCQkJPGxpPjEuMi4gMm5kIHBhZ2U8L2xpPgoJCQkJCQkJPGxpPjEuMy4gM3JkIHBhZ2U8L2xpPgoJCQkJCQk8L3VsPjwvbGk+CgkJCQkJCTxsaT4yLiBGcmFuJmNjZWRpbDthaXM8dWw+CgkJCQkJCQk8bGk+Mi4xLiBQYWdlIDE8L2xpPgoJCQkJCQkJPGxpPjIuMi4gUGFnZSAzPC9saT4KCQkJCQkJCTxsaT4yLjMuIFBhZ2UgMjwvbGk+CgkJCQkJCTwvdWw+PC9saT4KCQkJCQk8L3VsPgoJCQkJCTxwPkhlcmUsICJQYWdlIDIiIG9jY3VwaWVzIHRoZSB0aGlyZCBwb3NpdGlvbiwgc28gaXQgd291bGQgYmUgZGVlbWVkIGVxdWl2YWxlbnQgdG8gdGhlIDNyZCBwYWdlIGluIGVuZ2xpc2guPGJyLz4KCQkJCQlUaGlzIGFsc28gbWVhbnMgdGhhdCBpZiBhbGwgcGFnZXMgZG8gbm90IGV4aXN0IGluIGFsbCBsYW5ndWFnZXMsIHlvdSBoYXZlIHRvIGJlIGNhcmVmdWwuIEZvciBleGFtcGxlOjwvcD4KCQkJCQk8dWw+CgkJCQkJCTxsaT4xLiBFbmdsaXNoPHVsPgoJCQkJCQkJPGxpPjEuMS4gMXN0IHBhZ2U8L2xpPgoJCQkJCQkJPGxpPjEuMi4gMm5kIHBhZ2U8L2xpPgoJCQkJCQkJPGxpPjEuMy4gM3JkIHBhZ2U8L2xpPgoJCQkJCQk8L3VsPjwvbGk+CgkJCQkJCTxsaT4yLiBGcmFuJmNjZWRpbDthaXM8dWw+CgkJCQkJCQk8bGk+Mi4xLiBQYWdlIDI8L2xpPgoJCQkJCQkJPGxpPjIuMi4gUGFnZSAzPC9saT4KCQkJCQkJPC91bD48L2xpPgoJCQkJCTwvdWw+CgkJCQkJPHA+SGVyZSwgIjFzdCBwYWdlIiB3b3VsZCBiZSB0YWtlbiB0byBiZSBlcXVpdmFsZW50IHRvICJQYWdlIDIiIGFuZCAiM3JkIHBhZ2UiIHdvdWxkIGJlIGRlZW1lZCB0byBoYXZlIG5vIHRyYWR1Y3Rpb24sIGFsdGhvdWdoIGl0IGRvZXMuPC9wPgoJCQk8YnIvPjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPgoJCQkJPHA+UGFnZSBsYW5ndWFnZSBzaG91bGQgYmUgZGV0ZWN0ZWQgYW5kIGFzc2lnbmVkIHRvIHRoZSBzbWFydHkgdmFyaWFibGVzIGJlZm9yZSB0aGUgdGVtcGxhdGUgaXMgcHJvY2Vzc2VkIGJ5IGFuIGV2ZW50IGhhbmRsZXIuIEhvd2V2ZXIsIGl0IGlzIHBvc3NpYmxlIHRoYXQgYXQgc29tZSBwb2ludCBpbiB0aGUgcGFnZSB0ZW1wbGF0ZSB0aGUgcGFnZSBsYW5ndWFnZSBpcyBsb3N0IChlc3BlY2lhbGx5IHNpbmNlIHRoZSBwYWdlIGhlYWQgaXMgcHJvY2Vzc2VkIHNlcGFyYXRseSBmcm9tIHRoZSBwYWdlIGJvZHkpLiBTaG91bGQgaXQgaGFwcGVuZCwgeW91IGNhbiB1c2UgdGhlIHRhZyB7YmFiZWwgYWN0aW9uPSJhc3NpZ24ifSB0byByZWFzc2lnbiBpdC48YnIvPgoJCQkJTm90ZSB0aGF0IHlvdSBtYXkgYWxzbyB1c2Uge2JhYmVsIGFjdGlvbj0iYXV0b19yZWRpcmVjdCIgYXQgdGhlIGJlZ2lubmluZyBvZiB5b3VyIHRlbXBsYXRlIGlmLCBmb3Igc29tZSByZWFzb24sIHJlZGlyZWN0aW9uIGRvZXMgbm90IG9jY3VyIChJIGRvbid0IHNlZSB3aHkgdGhpcyBzaG91bGQgaGFwcGVuIHRob3VnaCkuPC9wPgoJCQk8YnIvPjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgoJCQkJPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gY3JlYXRlZCBieSBQaWVycmUtTHVjIEdlcm1haW4gKHBsZ2VyKSwgYmFzZWQgb24gYW4gYXBwcm9hY2ggYnkgTWFyY29zIENydXosIGFuZCBpcyByZWxlYXNlZCB1bmRlciB0aGUgR05VIFB1YmxpYyBMaWNlbnNlLjwvcD48YnIvPjxici8+PGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoYXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZC4gTm90IGFsbCBtb2R1bGVzIHN1cHBvcnQgb3IgbmVlZCB0aGlzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gYWN0aW9uPSJkZWZhdWx0IiAtIFBvc3NpYmxlIGFjdGlvbnM6ICJkZWZhdWx0IiAoZm9yIHRyYW5zbGF0aW9ucykgb3IgIm1lbnUiLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc2hvdz0iIiAtIEZvciB0aGUgbWVudSBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB3aGljaCBsYW5ndWFnZXMgdG8gc2hvdyBpbiB0aGUgbWVudSAodXNlIGxhbmd1YWdlIGNvZGUgYW5kIHNlcGFyYXRlIHdpdGggYSBjb21tYSkuIEZvciB0aGUgZGVmYXVsdCBhY3Rpb24sIHRoaXMgaG9sZHMgdGhlIGtleSB0byB0aGUgc3RyaW5nIHRvIGJlIHRyYW5zbGF0ZWQuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiB0ZW1wbGF0ZT0iIiAtIFRlbXBsYXRlIHRvIHVzZSBmb3IgdGhlIG1lbnUuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBhc3NpZ249IiIgLSBJbnN0ZWFkIG9mIGRpc3BsYXlpbmcgdGhlIHJlc3VsdCBpbW1lZGlhdGVseSwgeW91IGNhbiBhc3NpZ24gaXQgdG8gYSBzbWFydHkgdmFyaWFibGUgc3BlY2lmaWVkIHdpdGggdGhlICJhc3NpZ24iIHBhcmFtZXRlci48L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBQaWVycmUtTHVjIEdlcm1haW4gKHBsZ2VyKTxiciAvPjxiciAvPlZlcnNpb246IDAuNC4xPGJyIC8+PGJyIC8+Q2hhbmdlIEhpc3Rvcnk6PGJyIC8+PGJyLz48cHJlPlZFUlNJT04gMC40LjEKLSBtaW5vciBjaGFuZ2VzIHRvIGVuc3VyZSBjb21wYXRpYmlsaXR5IHdpdGggY21zbXMxLjEwCgpWRVJTSU9OIDAuNAotIGFkZGVkIGNvbXBhdGliaWxpdHkgd2l0aCBjbXNtcyAxLjkrCi0gc29sdmVkIGFzc2lnbiBidWcgKCM1Mzg2KQotIHBvc3NpYmlsaXR5IHRvIGRlbGV0ZSBsYW5ndWFnZSBlbnRyaWVzIChidWcgIzQ3NTgpCi0gYWRkZWQgRlIgIzUzODUKClZFUlNJT04gMC4zLjQKLSBzb2x2ZWQgYnVncyAjNDE3MCwjNDE4NywjNDE4OCwjNDE4OSwjNDIwNgoKVkVSU0lPTiAwLjMuMzoKLSBzb2x2ZWQgdGhlIGJsYW5rIHBhZ2UgcHJvYmxlbSBpbiByZWRpcmVjdC5waHAKClZFUlNJT04gMC4zLjI6Ci0gc29sdmVkIGJ1Z3MgIzM5OTMgYW5kICMzOTk0IChUaGFua3MgdG8gSmFuIFdhbGRlY2spCi0gYWRkZWQgZnJlbmNoIGxhbmd1YWdlIGZpbGVzCgpWRVJTSU9OIDAuMy4xOgotIHNvbHZlZCBidWcgIzM5NTkgKGh0dHAgNDA0IGVycm9yIG9uIHJlZGlyZWN0aW9uKSAtIFRoYW5rcyB0byBZdW5nCgpWRVJTSU9OIDAuMzoKLSBjaGFuZ2VkIHRoZSBjb2RlIHRvIG1pbmltaXplIHRoZSBhbW91bnQgb2YgcXVlcmllcwotIHJlcGxhY2VkIGxpbmtzIHdpdGggdXJscwoKVkVSU0lPTiAwLjI6IGZpcnN0IHB1YmxpYyB2ZXJzaW9uCjwvcHJlPjxiciAvPg==]]></about>
	<description><![CDATA[Manage frontend languages and multilingual behaviors.]]></description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KaWYoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oImFkbWluX2JhYmVsIikpIHsJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygiUGVybWlzc2lvbiBkZW5pZWQuIik7IHJldHVybiBmYWxzZTsgfQ0KDQokYWRtaW50aGVtZSA9ICRnQ21zLT52YXJpYWJsZXNbImFkbWludGhlbWUiXTsNCiRhY3RpdmVfdGFiID0gaXNzZXQoJHBhcmFtc1siYWN0aXZlX3RhYiJdKT8kcGFyYW1zWyJhY3RpdmVfdGFiIl06Imxhbmd1YWdlcyI7DQoNCmVjaG8gJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpOw0KCWVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcigibGFuZ3VhZ2VzIiwgJHRoaXMtPkxhbmcoImxhbmd1YWdlcyIpLCAibGFuZ3VhZ2VzIiA9PSAkYWN0aXZlX3RhYiA/IHRydWUgOiBmYWxzZSk7DQoJZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCJ0ZW1wbGF0ZXMiLCAkdGhpcy0+TGFuZygidGVtcGxhdGVzIiksICJ0ZW1wbGF0ZXMiID09ICRhY3RpdmVfdGFiID8gdHJ1ZSA6IGZhbHNlKTsNCgllY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoInNldHRpbmdzIiwgJHRoaXMtPkxhbmcoInNldHRpbmdzIiksICJzZXR0aW5ncyIgPT0gJGFjdGl2ZV90YWIgPyB0cnVlIDogZmFsc2UpOw0KZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOw0KDQplY2hvICR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKTsNCg0KCWVjaG8gJHRoaXMtPlN0YXJ0VGFiKCJsYW5ndWFnZXMiKTsNCg0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oImFkZG5ldyIsICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgImVkaXRsYW5nIiwgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCJpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZiIsICIiLCIiLCIiLCJzeXN0ZW1pY29uIikuIiAiLiR0aGlzLT5MYW5nKCJhZGRfbGFuZ3VhZ2UiKSxhcnJheSgiaXNfbmV3Ij0+MSkpKTsNCgkJDQoJCSRpdGVtbGlzdCA9ICR0aGlzLT5hZG1pbl9yZXRyaWV2ZV9sYW5ndWFnZXMoJGlkLCAkcmV0dXJuaWQpOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oIml0ZW1saXN0IiwgJGl0ZW1saXN0KTsNCg0KCQkkYWRtaW5zaG93ID0gYXJyYXkoDQoJCQlhcnJheSgkdGhpcy0+TGFuZygibGFuZ2NvZGUiKSwiY29kZWxpbmsiKSwNCgkJCWFycmF5KCR0aGlzLT5MYW5nKCJuYW1lIiksIm5hbWVsaW5rIiksDQoJCQlhcnJheSgkdGhpcy0+TGFuZygiYWN0aXZlIiksInRvZ2dsZWFjdGl2ZSIpLA0KCQkJYXJyYXkoJHRoaXMtPkxhbmcoImlzZGVmYXVsdCIpLCJ0b2dnbGVkZWZhdWx0IiksDQoJCQlhcnJheSgkdGhpcy0+TGFuZygicmVvcmRlciIpLCJtb3ZlbGlua3MiKSwNCgkJCWFycmF5KCR0aGlzLT5MYW5nKCJhY3Rpb25zIiksImFjdGlvbnMiKQkJDQoJCQkpOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oImFkbWluc2hvdyIsICRhZG1pbnNob3cpOw0KCQllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoImFkbWlucGFuZWwudHBsIik7DQoNCgllY2hvICR0aGlzLT5FbmRUYWIoKTsNCg0KDQoJZWNobyAkdGhpcy0+U3RhcnRUYWIoInRlbXBsYXRlcyIpOw0KCQ0KCQlpZihpc3NldCgkcGFyYW1zWyJkZWZhdWx0dGVtcGxhdGUiXSkpCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCJkZWZhdWx0dGVtcGxhdGUiLCRwYXJhbXNbImRlZmF1bHR0ZW1wbGF0ZSJdKTsNCgkJZWNobyAiPGZpZWxkc2V0IHN0eWxlPVwid2lkdGg6IDYwMHB4O1wiPjxsZWdlbmQ+PGI+Ii4kdGhpcy0+TGFuZygiZGVmYXVsdHRlbXBsYXRlIikuIjwvYj48L2xlZ2VuZD4iOw0KCQllY2hvICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkKTsNCgkJZWNobyAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAiYWN0aXZlX3RhYiIsICJ0ZW1wbGF0ZXMiKTsNCgkJJHRlbXBsYXRlbGlzdCA9ICR0aGlzLT5MaXN0VGVtcGxhdGVzKCR0aGlzLT5HZXROYW1lKCkpOw0KCQkkZGVmdHBsID0gJHRoaXMtPkdldFByZWZlcmVuY2UoImRlZmF1bHR0ZW1wbGF0ZSIpOw0KCQkkdHBsb3B0aW9ucyA9IGFycmF5KCk7DQoJCSRpdGVtbGlzdCA9IGFycmF5KCk7DQoJCWZvcmVhY2goJHRlbXBsYXRlbGlzdCBhcyAkb25ldHBsKXsNCgkJICAgJHRwbG9wdGlvbnNbJG9uZXRwbF0gPSAkb25ldHBsOw0KCQkgICAkdHBsID0gbmV3IHN0ZENsYXNzKCk7DQoJCSAgICR0cGwtPmVkaXRsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgImVkaXRUZW1wbGF0ZSIsICRyZXR1cm5pZCwgJG9uZXRwbCwgYXJyYXkoInRwbG5hbWUiPT4kb25ldHBsKSApOw0KCQkgICAkdHBsLT5kZWxldGVsaW5rID0gKCRvbmV0cGwgPT0gJGRlZnRwbCk/IiI6JHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgImRlbGV0ZXRwbCIsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgiaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYiLCAkdGhpcy0+TGFuZygiZGVsZXRlIiksICIiLCAiIiwgInN5c3RlbWljb24iKSwgYXJyYXkoInRwbG5hbWUiPT4kb25ldHBsKSApOw0KCQkgICBhcnJheV9wdXNoKCRpdGVtbGlzdCwgJHRwbCk7DQoJCX0NCgkJZWNobyAnPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij48cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwiZGVmYXVsdHRlbXBsYXRlIiwkdHBsb3B0aW9ucywtMSwkZGVmdHBsKS4iPGJyLz4iLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICJzdWJtaXQiLCBsYW5nKCJzdWJtaXQiKSkuJzwvcD48L2Rpdj4NCgkJJzsNCgkJZWNobyAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOw0KCQllY2hvICI8L2ZpZWxkc2V0Pjxici8+PGJyLz4iOw0KCQkNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJpdGVtbGlzdCIsICRpdGVtbGlzdCk7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigiYWRkbmV3IiwgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAiZWRpdFRlbXBsYXRlIiwgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCJpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZiIsICIiLCIiLCIiLCJzeXN0ZW1pY29uIikuIiAiLiR0aGlzLT5MYW5nKCJhZGR0ZW1wbGF0ZSIpKSk7DQoJCSRhZG1pbnNob3cgPSBhcnJheSgJYXJyYXkoJHRoaXMtPkxhbmcoInRlbXBsYXRlIiksICJlZGl0bGluayIpLCBhcnJheSgkdGhpcy0+TGFuZygiYWN0aW9ucyIpLCAiZGVsZXRlbGluayIpCSk7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigiYWRtaW5zaG93IiwgJGFkbWluc2hvdyk7DQoJCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgiYWRtaW5wYW5lbC50cGwiKTsNCgkJDQoJZWNobyAkdGhpcy0+RW5kVGFiKCk7DQoNCg0KCWVjaG8gJHRoaXMtPlN0YXJ0VGFiKCJzZXR0aW5ncyIpOw0KDQoJCWVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICJjaGFuZ2VzZXR0aW5ncyIsICRyZXR1cm5pZCk7DQoNCgkJJG1vZHByZWZzID0gJHRoaXMtPmdldF9tb2RwcmVmcygpOw0KCQlmb3JlYWNoKCRtb2RwcmVmcyBhcyAkb25lcHJlZil7DQoJCQkkdGhlcHJlZiA9ICRvbmVwcmVmWzBdOw0KCQkJZWNobyAnDQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJHRoZXByZWYsIHRydWUsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCR0aGVwcmVmLGZhbHNlKSkuIiAiLiR0aGlzLT5MYW5nKCJwcmVmXyIuJHRoZXByZWYpLic8L3A+DQoJPC9kaXY+JzsNCgkJfQ0KCQllY2hvICI8YnIvPjxwPiIuJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgInN1Ym1pdCIsIGxhbmcoInN1Ym1pdCIpKS4iPC9wPiI7DQoJCWVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKTsNCgllY2hvICR0aGlzLT5FbmRUYWIoKTsNCg0KZWNobyAkdGhpcy0+RW5kVGFiQ29udGVudCgpOw0KDQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/action.editentries.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoIWlzc2V0KCRnQ21zKSkJZXhpdDsKaWYoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oImFkbWluX2JhYmVsIikpewoJZWNobyAnPHA+Jy4kdGhpcy0+TGFuZygiZXJyb3JfZGVuaWVkIikuJzwvcD4nOwoJcmV0dXJuIGZhbHNlOwp9CmlmKGlzc2V0KCRwYXJhbXNbImNhbmNlbCJdKSB8fCAhaXNzZXQoJHBhcmFtc1sibGFuZ2NvZGUiXSkgfHwgISR0aGlzLT5pc19sYW5ndWFnZSgkcGFyYW1zWyJsYW5nY29kZSJdLCBmYWxzZSkpCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkLCBhcnJheSgpKTsKCiR3eXNpd3lnID0gJHRoaXMtPkdldFByZWZlcmVuY2UoInd5c2l3eWciLGZhbHNlKTsKCiRsYW5ndWFnZXMgPSAkdGhpcy0+Z2V0bGFuZ3VhZ2VzKHRydWUpOwokbGFuZ3VhZ2UgPSAkbGFuZ3VhZ2VzWyRwYXJhbXNbImxhbmdjb2RlIl1dOwoKJG5ld2VudHJ5ID0gJzxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsiPicuJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAiZWRpdGVudHJ5IiwgJHJldHVybmlkLCAkZ0Ntcy0+dmFyaWFibGVzWyJhZG1pbnRoZW1lIl0tPkRpc3BsYXlJbWFnZSgiaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYiLCAiIiwiIiwiIiwic3lzdGVtaWNvbiIpLiIgIi4kdGhpcy0+TGFuZygiYWRkX2VudHJ5IikpLic8L2Rpdj4nOwplY2hvICRuZXdlbnRyeTsKZWNobyAiPGgxPiIuJGxhbmd1YWdlWyduYW1lJ10uIiAoIi4kbGFuZ3VhZ2VbJ2xhbmdjb2RlJ10uIik8L2gxPjxici8+IjsKCiRkYiA9ICR0aGlzLT5HZXREYigpOwokcXVlcnkgPSAiU0VMRUNUIGxhbmdrZXlzLnN0cmluZ2lkIHN0cmluZ2lkLCBsYW5na2V5cy5jYXB0aW9uIGNhcHRpb24sIGxhbmdlbnRyaWVzLnZhbHVlIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9iYWJlbF9sYW5na2V5cyBsYW5na2V5cyBMRUZUIEpPSU4gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9iYWJlbF9sYW5nZW50cmllcyBsYW5nZW50cmllcyBPTiBsYW5na2V5cy5zdHJpbmdpZCA9IGxhbmdlbnRyaWVzLnN0cmluZ2lkIFdIRVJFIGxhbmdlbnRyaWVzLmxhbmdjb2RlPT8iOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRwYXJhbXNbImxhbmdjb2RlIl0pKTsKJHZhbHVlcyA9IGFycmF5KCk7CiRjYXB0aW9ucyA9IGFycmF5KCk7CndoaWxlKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKXsKCSRjYXB0aW9uc1skcm93WyJzdHJpbmdpZCJdXSA9ICRyb3dbImNhcHRpb24iXTsKCSR2YWx1ZXNbJHJvd1sic3RyaW5naWQiXV0gPSAkcm93WyJ2YWx1ZSJdOwp9CgkKaWYoaXNzZXQoJHBhcmFtc1sic3VibWl0Il0pIHx8IGlzc2V0KCRwYXJhbXNbImFwcGx5Il0pKQl7CgkkcXVlcnkgPSAiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9iYWJlbF9sYW5nZW50cmllcyBXSEVSRSBsYW5nY29kZT0/IjsKCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwYXJhbXNbImxhbmdjb2RlIl0pKTsKCSR2YWx1ZXMgPSBhcnJheSgpOwoJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfYmFiZWxfbGFuZ2VudHJpZXMgU0VUIGxhbmdjb2RlPT8sIHN0cmluZ2lkPT8sIHZhbHVlPT8iOwoJZm9yZWFjaCgkcGFyYW1zIGFzICRrZXk9PiR2YWx1ZSl7CgkJaWYoc3Vic3RyKCRrZXksMCw2KSA9PSAiZW50cnlfIiAmJiAkdmFsdWUgIT0gIiIpewoJCQkkdmFsdWVzW3N1YnN0cigka2V5LDYpXSA9ICR2YWx1ZTsKCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHBhcmFtc1sibGFuZ2NvZGUiXSwgc3Vic3RyKCRrZXksNiksICR2YWx1ZSkpOwoJCX0KCX0KCWlmKGlzc2V0KCRwYXJhbXNbInN1Ym1pdCJdKSl7CgkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgImRlZmF1bHRhZG1pbiIsICRyZXR1cm5pZCwgYXJyYXkoJ21vZHVsZV9tZXNzYWdlJz0+JHRoaXMtPkxhbmcoIm1lc3NhZ2VfbW9kaWZpZWQiKSkpOwoJfWVsc2V7CgkJZWNobyAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPkxhbmcoIm1lc3NhZ2VfbW9kaWZpZWQiKSk7Cgl9Cn0JCgokYnV0dG9ucyA9ICc8cD4nLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICJzdWJtaXQiLCBsYW5nKCJzdWJtaXQiKSkuJyAnLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICJhcHBseSIsIGxhbmcoImFwcGx5IikpLicgJy4kdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAiY2FuY2VsIiwgbGFuZygiY2FuY2VsIikpLic8L3A+JzsKCmVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICJlZGl0ZW50cmllcyIsICRyZXR1cm5pZCk7CmVjaG8gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgImxhbmdjb2RlIiwgJHBhcmFtc1sibGFuZ2NvZGUiXSk7CmlmKCEkd3lzaXd5ZykJZWNobyAnCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KZnVuY3Rpb24gaW5zdGFudF90YWJsZV9zZWFyY2god2hhdCl7Cgl2YXIgZGVzdGluYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmFiZWxfbGFuZ3VhZ2VfZW50cmllcyIpOwoJaWYoIWRlc3RpbmF0aW9uKSByZXR1cm47Cgl2YXIgdGhlcm93cyA9IGRlc3RpbmF0aW9uLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ciIpOwoJZm9yKGk9MDtpPHRoZXJvd3MubGVuZ3RoO2krKyl7CgkJdmFyIHRoZWNvbHVtbiA9IHRoZXJvd3NbaV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRkIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXTsKCQlpZih0aGVjb2x1bW4gJiYgdGhlY29sdW1uLmlubmVySFRNTC50b0xvd2VyQ2FzZSgpLmluZGV4T2Yod2hhdC50b0xvd2VyQ2FzZSgpKSA+PSAwKXsKCQkJdGhlcm93c1tpXS5zdHlsZS5kaXNwbGF5ID0gInRhYmxlLXJvdyI7CgkJfWVsc2V7CgkJCXRoZXJvd3NbaV0uc3R5bGUuZGlzcGxheSA9ICJub25lIjsKCQl9Cgl9Cn0KPC9zY3JpcHQ+Cic7CmVjaG8gJGJ1dHRvbnM7CmVjaG8gJzx0YWJsZSBpZD0iYmFiZWxfbGFuZ3VhZ2VfZW50cmllcyIgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPgonOwppZighJHd5c2l3eWcpIGVjaG8gJwo8dGhlYWQ+Cgk8dHI+PHRoPicuJHRoaXMtPkxhbmcoInNlYXJjaHRoaXN0YWJsZSIpLic8aW5wdXQgdHlwZT0idGV4dCIgb25rZXl1cD0iaW5zdGFudF90YWJsZV9zZWFyY2godGhpcy52YWx1ZSk7Ii8+PC90aD48dGg+PC90aD48L3RyPgo8L3RoZWFkPgonOwplY2hvICc8dGJvZHk+CgknOwpmb3JlYWNoKCRjYXB0aW9ucyBhcyAka2V5PT4kbGFiZWwpewoJZWNobyAnPHRyPgoJCTx0ZD4nLiR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgImVkaXRlbnRyeSIsICRyZXR1cm5pZCwgJGxhYmVsLCBhcnJheSgiZW50cnlrZXkiPT4ka2V5KSkuJzwvdGQ+CgkJPHRkPicuJHRoaXMtPkNyZWF0ZVRleHRBcmVhKCR3eXNpd3lnLCRpZCwoaXNzZXQoJHZhbHVlc1ska2V5XSkgJiYgJHZhbHVlc1ska2V5XSk/JHZhbHVlc1ska2V5XToiIiwnZW50cnlfJy4ka2V5KS4nPC90ZD4KCTwvdHI+CgknOwp9CmVjaG8gJwo8L3Rib2R5Pgo8L3RhYmxlPgonOwplY2hvICRidXR0b25zOwplY2hvICRuZXdlbnRyeTsKZWNobyAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.editentry.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoIWlzc2V0KCRnQ21zKSkJZXhpdDsKaWYoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oImFkbWluX2JhYmVsIikpewoJZWNobyAnPHA+Jy4kdGhpcy0+TGFuZygiZXJyb3JfZGVuaWVkIikuJzwvcD4nOwoJcmV0dXJuIGZhbHNlOwp9CmlmKGlzc2V0KCRwYXJhbXNbImNhbmNlbCJdKSkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICJkZWZhdWx0YWRtaW4iLCAkcmV0dXJuaWQsIGFycmF5KCkpOwoKCiR3eXNpd3lnID0gJHRoaXMtPkdldFByZWZlcmVuY2UoInd5c2l3eWciLGZhbHNlKTsKCiRkYiA9ICR0aGlzLT5HZXREYigpOwoKJGVudHJ5ID0gaXNzZXQoJHBhcmFtc1siZW50cnlrZXkiXSk/JHBhcmFtc1siZW50cnlrZXkiXTpmYWxzZTsKJGNhcHRpb24gPSBpc3NldCgkcGFyYW1zWyJjYXB0aW9uIl0pPyRwYXJhbXNbImNhcHRpb24iXToiIjsKJHZhbHVlcyA9IGFycmF5KCk7CgppZigkY2FwdGlvbiAhPSAiIiAmJiAoaXNzZXQoJHBhcmFtc1sic3VibWl0Il0pIHx8IGlzc2V0KCRwYXJhbXNbImFwcGx5Il0pKSl7CgkkY2FwdGlvbiA9IHByZWdfcmVwbGFjZSgiL1teYS16QS1aMC05Xy1cc10vIiwgIiIsICRjYXB0aW9uKTsKCWlmKCRlbnRyeSl7CgkJJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfYmFiZWxfbGFuZ2VudHJpZXMgV0hFUkUgc3RyaW5naWQ9PyI7CgkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGVudHJ5KSk7Cgl9ZWxzZXsKCQkkZW50cnkgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2JhYmVsX2xhbmdlbnRyaWVzX3NlcSIpOwoJCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2JhYmVsX2xhbmdrZXlzIFNFVCBzdHJpbmdpZD0/LCBjYXB0aW9uPT8iOwoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRlbnRyeSwgJGNhcHRpb24pKTsKCX0KCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2JhYmVsX2xhbmdlbnRyaWVzIFNFVCBzdHJpbmdpZD0/LCBsYW5nY29kZT0/LCB2YWx1ZT0/IjsKCWZvcmVhY2goJHBhcmFtcyBhcyAka2V5PT4kdmFsdWUpewoJCWlmKHN1YnN0cigka2V5LDAsNikgPT0gImVudHJ5XyIgJiYgJHZhbHVlICE9ICIiKXsKCQkJJHZhbHVlc1tzdWJzdHIoJGtleSw2KV0gPSAkdmFsdWU7CgkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRlbnRyeSwgc3Vic3RyKCRrZXksNiksICR2YWx1ZSkpOwoJCX0KCX0KCWlmKGlzc2V0KCRwYXJhbXNbInN1Ym1pdCJdKSl7CgkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgImRlZmF1bHRhZG1pbiIsICRyZXR1cm5pZCwgYXJyYXkoJ21vZHVsZV9tZXNzYWdlJz0+JHRoaXMtPkxhbmcoIm1lc3NhZ2VfbW9kaWZpZWQiKSkpOwoJfWVsc2V7CgkJZWNobyAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPkxhbmcoIm1lc3NhZ2VfbW9kaWZpZWQiKSk7Cgl9CgkKfWVsc2VpZigkZW50cnkpewoJJHF1ZXJ5ID0gIlNFTEVDVCBzdHJpbmdpZCwgY2FwdGlvbiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfYmFiZWxfbGFuZ2tleXMgV0hFUkUgc3RyaW5naWQ9PyBMSU1JVCAxIjsKCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRlbnRyeSkpOwoJaWYoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpewoJCSRlbnRyeSA9ICRyb3dbInN0cmluZ2lkIl07CgkJJGNhcHRpb24gPSAkcm93WyJjYXB0aW9uIl07CgkJJHF1ZXJ5ID0gIlNFTEVDVCBsYW5nY29kZSwgdmFsdWUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2JhYmVsX2xhbmdlbnRyaWVzIFdIRVJFIHN0cmluZ2lkPT8iOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRlbnRyeSkpOwoJCXdoaWxlKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKXsKCQkJJHZhbHVlc1skcm93WyJsYW5nY29kZSJdXSA9ICRyb3dbInZhbHVlIl07CgkJfQoJfQp9CgokbGFuZ3VhZ2VzID0gJHRoaXMtPmdldGxhbmd1YWdlcyh0cnVlKTsKCiRidXR0b25zID0gJzxwPicuJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgInN1Ym1pdCIsIGxhbmcoInN1Ym1pdCIpKS4nICcuJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgImFwcGx5IiwgbGFuZygiYXBwbHkiKSkuJyAnLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICJjYW5jZWwiLCBsYW5nKCJjYW5jZWwiKSkuJzwvcD4nOwoKZWNobyAiPGgxPiIuJHRoaXMtPkxhbmcoImVudHJ5IikuIjwvaDE+PGJyLz4iOwoKZWNobyAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgImVkaXRlbnRyeSIsICRyZXR1cm5pZCk7CgplY2hvICRidXR0b25zOwoKaWYoJGVudHJ5KXsKCWVjaG8gJzxwPicuJHRoaXMtPkxhbmcoImVudHJ5bmFtZSIpLicgOiAnLiRjYXB0aW9uLic8L3A+JzsKCWVjaG8gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgImVudHJ5a2V5IiwgJGVudHJ5KTsKCWVjaG8gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgImNhcHRpb24iLCAkY2FwdGlvbik7CgllY2hvICc8cD4nLiR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlbGV0ZUVudHJ5JywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygiZGVsZXRlX2VudHJ5IiksIGFycmF5KCdlbnRyeWtleSc9PiRlbnRyeSksICR0aGlzLT5MYW5nKCdwcm9tcHRfZGVsZXRlZW50cnknKSkuJzwvcD4nOwp9ZWxzZXsKCWVjaG8gJzxwPicuJHRoaXMtPkxhbmcoImVudHJ5bmFtZSIpLicqIDogJy4kdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgImNhcHRpb24iLCAkcmV0dXJuaWQsICIiLCA2NCwgNjQpLic8L3A+JzsKfQplY2hvICc8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPic7CmZvcmVhY2goJGxhbmd1YWdlcyBhcyAka2V5PT4kb25lbGFuZyl7CgllY2hvICcKCTx0cj4KCQk8dGQ+Jy4kdGhpcy0+Q3JlYXRlTGluaygkaWQsICJlZGl0ZW50cmllcyIsICRyZXR1cm5pZCwgJG9uZWxhbmdbIm5hbWUiXS4nICgnLiRrZXkuJyknLCBhcnJheSgibGFuZ2NvZGUiPT4ka2V5KSkuJzwvdGQ+CgkJPHRkPicuJHRoaXMtPkNyZWF0ZVRleHRBcmVhKCR3eXNpd3lnLCRpZCwoaXNzZXQoJHZhbHVlc1ska2V5XSkgJiYgJHZhbHVlc1ska2V5XSk/JHZhbHVlc1ska2V5XToiIiwnZW50cnlfJy4ka2V5KS4nPC90ZD4KCTwvdHI+JzsKfQplY2hvICcKPC90Ym9keT4KPC90YWJsZT4KJzsKZWNobyAkYnV0dG9uczsKZWNobyAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOwoKPz4KCgo=]]></data>
	</file>
	<file>
	  <filename>/action.editlang.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoIWlzc2V0KCRnQ21zKSkJZXhpdDsKaWYoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oImFkbWluX2JhYmVsIikpewoJZWNobyAnPHA+Jy4kdGhpcy0+TGFuZygiZXJyb3JfZGVuaWVkIikuJzwvcD4nOwoJcmV0dXJuIGZhbHNlOwp9CmlmKGlzc2V0KCRwYXJhbXNbImNhbmNlbCJdKSkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgImRlZmF1bHRhZG1pbiIsICRyZXR1cm5pZCwgYXJyYXkoKSk7CgokYWRtaW50aGVtZSA9ICRnQ21zLT52YXJpYWJsZXNbImFkbWludGhlbWUiXTsKCiRpc19uZXcgPSBpc3NldCgkcGFyYW1zWyJpc19uZXciXSk/JHBhcmFtc1siaXNfbmV3Il06MDsKCiRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKCgovLyBDSEVDSyBJRiBUSEUgRk9STSBJUyBCRUlORyBTVUJNSVRURUQgOgppZiAoaXNzZXQoJHBhcmFtc1sic3VibWl0Il0pIHx8IGlzc2V0KCRwYXJhbXNbImFwcGx5Il0pICkJewoKCS8vIFJFVFJJRVZJTkcgVEhFIEZPUk0gVkFMVUVTCglpZighaXNzZXQoJGl0ZW0pKSAkaXRlbSA9IG5ldyBzdGRDbGFzcygpOwoJJGl0ZW0tPmxhbmdjb2RlID0gJHRoaXMtPnBsY3JlYXRlYWxpYXMoKGlzc2V0KCRwYXJhbXNbImxhbmdjb2RlIl0pPyRwYXJhbXNbImxhbmdjb2RlIl06IiIpKTsKCSRpdGVtLT5yb290X2lkID0gaXNzZXQoJHBhcmFtc1sicm9vdF9pZCJdKT8kcGFyYW1zWyJyb290X2lkIl06ZmFsc2U7CgkkaXRlbS0+ZGVmYXVsdF9pZCA9IGlzc2V0KCRwYXJhbXNbImRlZmF1bHRfaWQiXSk/JHBhcmFtc1siZGVmYXVsdF9pZCJdOiIiOwoJJGl0ZW0tPm5hbWUgPSBpc3NldCgkcGFyYW1zWyJuYW1lIl0pPyRwYXJhbXNbIm5hbWUiXToiIjsKCSRpdGVtLT5tZW51X25hbWUgPSBpc3NldCgkcGFyYW1zWyJtZW51X25hbWUiXSk/JHBhcmFtc1sibWVudV9uYW1lIl06IiI7CgkKCWlmKCEkaXRlbS0+cm9vdF9pZCB8fCAkaXRlbS0+bGFuZ2NvZGUgPT0gIiIgfHwgJGl0ZW0tPm5hbWUgPT0gIiIpewoJCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoImVycm9yX21pc3NnaW52YWx1ZSIpKTsKCX1lbHNlewoJCSMjIyMjIyMjIyMjIyBET0lORyBUSEUgVVBEQVRFCgoKCQkvLyBGSUVMRFMgVE8gVVBEQVRFCgkJJHF1ZXJ5ID0gKCRpc19uZXc/IklOU0VSVCBJTlRPICI6IlVQREFURSAiKS5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9iYWJlbF9sYW5ndWFnZXMgU0VUIAoJCQlyb290X2lkPT8sCgkJCWRlZmF1bHRfaWQ9PywKCQkJbmFtZT0/LAoJCQltZW51X25hbWU9PyI7CgkJCQoJCS8vIFZBTFVFUwoJCSR2YWx1ZXMgPSBhcnJheSgkaXRlbS0+cm9vdF9pZCwgJGl0ZW0tPmRlZmF1bHRfaWQsICRpdGVtLT5uYW1lLCAkaXRlbS0+bWVudV9uYW1lLCAkaXRlbS0+bGFuZ2NvZGUpOwoKCQlpZigkaXNfbmV3KXsKCQkJLy8gTkVXIElURU0KCQkJJG5ld19vcmRlciA9ICR0aGlzLT5jb3VudHNvbWV0aGluZygibGFuZ3VhZ2VzIiwibGFuZ2NvZGUiKSArIDE7CgkJCSRxdWVyeSAuPSAiLCBsYW5nY29kZT0/LCBpdGVtX29yZGVyPT8sIGFjdGl2ZT0wIjsKCQkJYXJyYXlfcHVzaCgkdmFsdWVzLCRuZXdfb3JkZXIpOwoJCX1lbHNlewoJCQkvLyBFWElTVElORyBJVEVNCgkJCSRxdWVyeSAuPSAiIFdIRVJFIGxhbmdjb2RlPT8gTElNSVQgMSI7CgkJfQoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksICR2YWx1ZXMpOwoKCQlpZihteXNxbF9lcnJvcigpKXsKCQkJZWNobyAkdGhpcy0+U2hvd0Vycm9ycyhteXNxbF9lcnJvcigpKTsKCQkJZWNobyAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPkxhbmcoImVycm9yX2NvdWxkbm90aW5zZXJ0IikpOwoJCX1lbHNlewoJCQkkaXNfbmV3ID0gZmFsc2U7CgkJCWlmKGlzc2V0KCRwYXJhbXNbImFwcGx5Il0pKXsKCQkJCWVjaG8gJHRoaXMtPlNob3dNZXNzYWdlKCR0aGlzLT5MYW5nKCJtZXNzYWdlX21vZGlmaWVkIikpOwoJCQl9ZWxzZXsKCQkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICJkZWZhdWx0YWRtaW4iLCAkcmV0dXJuaWQsIGFycmF5KCJtb2R1bGVfbWVzc2FnZSIgPT4gJHRoaXMtPkxhbmcoIm1lc3NhZ2VfbW9kaWZpZWQiKSkpOwkKCQkJfQoJCX0KCX0KCS8vIEVORCBPRiBGT1JNIFNVQk1JU1NJT04KfWVsc2VpZihpc3NldCgkcGFyYW1zWyJsYW5nY29kZSJdKSl7CgkkaXRlbSA9ICR0aGlzLT5nZXRfbGFuZ3VhZ2VfZGV0YWlscygkcGFyYW1zWyJsYW5nY29kZSJdKTsKfQoKLyogIyMgUFJFUEFSSU5HIFNNQVJUWSBFTEVNRU5UUyAqLwokaGlkZGVuID0gIiI7CgovLyBwcmVwYXJlIHJvb3QgcGFnZXMgY29tYm8KJGxhbmd1YWdlcyA9ICR0aGlzLT5nZXRsYW5ndWFnZXMoKTsKJGxhbmd1YWdlc19yb290aWRzID0gYXJyYXkoKTsKJGxhbmd1YWdlc19jb2RlcyA9IGFycmF5KCk7CmZvcmVhY2goJGxhbmd1YWdlcyBhcyAkb25lbGFuZyl7CgkkbGFuZ3VhZ2VzX3Jvb3RpZHNbXSA9ICRvbmVsYW5nWyJyb290X2lkIl07CgkkbGFuZ3VhZ2VzX2NvZGVzW10gPSAkb25lbGFuZ1sibGFuZ2NvZGUiXTsKfQokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoIlNFTEVDVCBjb250ZW50X2lkLCBjb250ZW50X25hbWUgRlJPTSBgIi5jbXNfZGJfcHJlZml4KCkuImNvbnRlbnRgIFdIRVJFIHBhcmVudF9pZCA8IDEiKTsKJG9wdGlvbnMgPSBhcnJheSgpOwp3aGlsZSgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSl7CglpZighaW5fYXJyYXkoJHJvd1siY29udGVudF9pZCJdLCAkbGFuZ3VhZ2VzX3Jvb3RpZHMpIHx8IChpc3NldCgkaXRlbS0+cm9vdF9pZCkgJiYgJHJvd1siY29udGVudF9pZCJdID09ICRpdGVtLT5yb290X2lkKSkJJG9wdGlvbnNbJHJvd1siY29udGVudF9uYW1lIl1dID0gJHJvd1siY29udGVudF9pZCJdOwp9CiR0aGlzLT5zbWFydHktPmFzc2lnbigicm9vdF9pZF9pbnB1dCIsICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwicm9vdF9pZCIsJG9wdGlvbnMsLTEsaXNzZXQoJGl0ZW0pPyRpdGVtLT5yb290X2lkOjApKTsKCi8vIHByZXBhcmUgZGVmYXVsdCBwYWdlcyBjb21ibwokY250b3BlcmF0aW9ucyA9ICRnQ21zLT5nZXRDb250ZW50T3BlcmF0aW9ucygpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oImRlZmF1bHRfaWRfaW5wdXQiLCAkY250b3BlcmF0aW9ucy0+Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oIiIsaXNzZXQoJGl0ZW0tPmRlZmF1bHRfaWQpPyRpdGVtLT5kZWZhdWx0X2lkOiItMSIsJGlkLiJkZWZhdWx0X2lkIikpOwoKaWYoJGlzX25ldyl7CglpZihmdW5jdGlvbl9leGlzdHMoJ2dldF9sYW5ndWFnZV9saXN0JykpewoJCSRsYW5nbGlzdCA9IGdldF9sYW5ndWFnZV9saXN0KCk7Cgl9ZWxzZXsKCQkvLyBvbGRlciBjbXNtcwoJCWdsb2JhbCAkbmxzOwoJCSRsYW5nbGlzdCA9ICRubHNbImxhbmd1YWdlIl07Cgl9CgkkcG9zc2libGVsYW5ncyA9IGFycmF5KCItIj0+Ii8iKTsKCWFzb3J0KCRsYW5nbGlzdCk7Cglmb3JlYWNoICgkbGFuZ2xpc3QgYXMgJGtleT0+JHZhbCkgewoJCSRsbmFtZSA9IGV4cGxvZGUoJygnLCAkdmFsKTsKCQlpZihjb3VudCgkbG5hbWUpID09IDEpewoJCQkkbG5hbWUgPSAkdmFsOwoJCX1lbHNlewoJCQkkbG5hbWUgPSB0cmltKHRyaW0oJGxuYW1lWzFdLCcpJykpOwoJCX0KCQlpZighaW5fYXJyYXkoJGtleSwkbGFuZ3VhZ2VzX2NvZGVzKSkJJHBvc3NpYmxlbGFuZ3NbJGtleS4iIC8gIi4kdmFsXSA9ICRrZXkuJy8nLiRsbmFtZTsKCX0KCSRsYW5nc2VsZWN0ID0gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCJsYW5nc2VsZWN0IiwkcG9zc2libGVsYW5ncyk7CgkkbGFuZ2NvZGVfaW5wdXQgPSAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAiaXNfbmV3IiwgMSkuJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsImxhbmdjb2RlIiwiIiwxNSw4KTsKfWVsc2V7CgkkbGFuZ2NvZGVfaW5wdXQgPSAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAiaXNfbmV3IiwgMCkuJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgImxhbmdjb2RlIiwgJGl0ZW0tPmxhbmdjb2RlKS4kaXRlbS0+bGFuZ2NvZGU7CgkkbGFuZ3NlbGVjdCA9IGZhbHNlOwp9CiR0aGlzLT5zbWFydHktPmFzc2lnbigibGFuZ3NlbGVjdCIsICRsYW5nc2VsZWN0KTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJsYW5nY29kZV9pbnB1dCIsICRsYW5nY29kZV9pbnB1dCk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oIm5hbWVfaW5wdXQiLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwibmFtZSIsaXNzZXQoJGl0ZW0pPyRpdGVtLT5uYW1lOiIiLDUwLDY0KSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigibWVudV9uYW1lX2lucHV0IiwgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsIm1lbnVfbmFtZSIsaXNzZXQoJGl0ZW0pPyRpdGVtLT5tZW51X25hbWU6IiIsNTAsNjQpKTsKCi8vIHByZXBhcmluZyBsYWJlbHMKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJuYW1lX2xhYmVsIiwgJHRoaXMtPkxhbmcoIm5hbWUiKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigibWVudV9uYW1lX2xhYmVsIiwgJHRoaXMtPkxhbmcoIm1lbnVfbmFtZSIpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJyb290X2lkX2xhYmVsIiwgJHRoaXMtPkxhbmcoInJvb3RfaWQiKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigiZGVmYXVsdF9pZF9sYWJlbCIsICR0aGlzLT5MYW5nKCJkZWZhdWx0X2lkIikpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oImxhbmdjb2RlX2xhYmVsIiwgJHRoaXMtPkxhbmcoImxhbmdjb2RlX3Byb21wdCIpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJsYW5nc2VsZWN0X2xhYmVsIiwgJHRoaXMtPkxhbmcoImxhbmdzZWxlY3QiKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigicGxpZCIsICRpZCk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oImVkaXR0aXRsZSIsICRpc19uZXc/JHRoaXMtPkxhbmcoImFkZF9sYW5ndWFnZSIpOiR0aGlzLT5MYW5nKCJlZGl0X2xhbmd1YWdlIikpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJzdWJtaXQiLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAic3VibWl0IiwgbGFuZygic3VibWl0IikpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJhcHBseSIsIChpc3NldCgkaXRlbSkgJiYgaXNzZXQoJGl0ZW0tPmlkKSk/JHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgImFwcGx5IiwgbGFuZygiYXBwbHkiKSk6IiIpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oImNhbmNlbCIsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICJjYW5jZWwiLCBsYW5nKCJjYW5jZWwiKSkpOwoKCi8vIERJU1BMQVlJTkcKZWNobyAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgImVkaXRsYW5nIiwgJHJldHVybmlkKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCJlZGl0bGFuZy50cGwiKTsKZWNobyAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.editTemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiggaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pICkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgYXJyYXkoJ2FjdGl2ZV90YWInPT4ndGVtcGxhdGVzJykgKTsKCiR0cGxjb250ZW50ID0gJyc7CmlmKCAoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSB8fCBpc3NldCgkcGFyYW1zWydhcHBseSddKSApICYmIGlzc2V0KCRwYXJhbXNbJ3RwbG5hbWUnXSkgKXsKCSR0cGxjb250ZW50ID0gJHBhcmFtc1sndHBsY29udGVudCddOwoJaWYoJHBhcmFtc1sndHBsbmFtZSddICE9ICcnKXsKCQlpZihpc3NldCgkcGFyYW1zWydpc25ldyddKSkJJHBhcmFtc1sndHBsbmFtZSddID0gbXVuZ2Vfc3RyaW5nX3RvX3VybCgkcGFyYW1zWyd0cGxuYW1lJ10sIGZhbHNlKTsKCQlpZigkdGhpcy0+U2V0VGVtcGxhdGUoJHBhcmFtc1sndHBsbmFtZSddLCRwYXJhbXNbJ3RwbGNvbnRlbnQnXSwkdGhpcy0+R2V0TmFtZSgpKSk7CgkJaWYoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pKXsKCQkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgYXJyYXkoIm1vZHVsZV9tZXNzYWdlIiA9PiAkdGhpcy0+TGFuZygibWVzc2FnZV9tb2RpZmllZCIpLCAnYWN0aXZlX3RhYic9Pid0ZW1wbGF0ZXMnKSApOwoJCX1lbHNlewoJCQllY2hvICR0aGlzLT5TaG93TWVzc2FnZSgkdGhpcy0+TGFuZygibWVzc2FnZV9tb2RpZmllZCIpKTsKCQl9Cgl9ZWxzZXsKCQllY2hvICc8ZGl2IGNsYXNzPSJwYWdlZXJyb3Jjb250YWluZXIiPicuJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NnaW52YWx1ZScpLic8L2Rpdj4nOwoJfQp9ZWxzZWlmKCBpc3NldCgkcGFyYW1zWyd0cGxuYW1lJ10pICl7CgkkdHBsY29udGVudCA9ICR0aGlzLT5HZXRUZW1wbGF0ZSggJHBhcmFtc1sndHBsbmFtZSddLCAkdGhpcy0+R2V0TmFtZSgpICk7Cn0KCmVjaG8gJzxoMT4nLiR0aGlzLT5MYW5nKCJlZGl0dGVtcGxhdGUiKS4nPC9oMT4nOwplY2hvICc8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7Ij4nLiR0aGlzLT5MYW5nKCJ0ZW1wbGF0ZWhlbHAiKS4nPC9kaXY+JzsKZWNobyAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgImVkaXRUZW1wbGF0ZSIsICRyZXR1cm5pZCk7CmVjaG8gJwk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+TGFuZygnbmFtZScpLicgOjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij4nOwppZihpc3NldCgkcGFyYW1zWyd0cGxuYW1lJ10pICYmICRwYXJhbXNbJ3RwbG5hbWUnXSAhPSAnJyl7CgllY2hvICRwYXJhbXNbJ3RwbG5hbWUnXS4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAidHBsbmFtZSIsICRwYXJhbXNbJ3RwbG5hbWUnXSk7Cn1lbHNlewoJZWNobyAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwndHBsbmFtZScsJycsMzAsNjQpOwp9CmVjaG8gJzwvcD4KCTwvZGl2PgonOwplY2hvICcJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPkxhbmcoJ3RlbXBsYXRlJykuJyA6PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCRpZCwkdHBsY29udGVudCwndHBsY29udGVudCcpLic8L3A+Cgk8L2Rpdj4KJzsKZWNobyAnPHA+Jy4kdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAic3VibWl0IiwgbGFuZygic3VibWl0IikpLicgJy4kdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAiYXBwbHkiLCBsYW5nKCJhcHBseSIpKS4nICcuJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgImNhbmNlbCIsIGxhbmcoImNhbmNlbCIpKS4nPC9wPic7CmlmKCFpc3NldCgkcGFyYW1zWyJ0cGxuYW1lIl0pIHx8ICRwYXJhbXNbInRwbG5hbWUiXSA9PSAnJykJZWNobyAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAiaXNuZXciLCAxKTsKZWNobyAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.menu.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CmlmKCEkdGhpcy0+Y3VycmVudF9sYW5nY29kZSkJJHRoaXMtPmFzc2lnbl9wYWdlX2xhbmcoKTsKaWYoISR0aGlzLT5jdXJyZW50X2xhbmdjb2RlKQlyZXR1cm4gZmFsc2U7CS8vIG5vIHBhZ2UgbGFuZyBhc3NpZ25lZC4uLiBtYXliZSB3ZSBhcmVuJ3QgaW4gYSBwYWdlIHRoYXQgaGFzIGEgcGFydGljdWxhciBsYW5ndWFnZT8KJGN1cnJlbnRfbGFuZ3VhZ2UgPSAkdGhpcy0+Y3VycmVudF9sYW5nY29kZTsKCiRzaG93biA9IChpc3NldCgkcGFyYW1zWyJzaG93Il0pICYmICRwYXJhbXNbInNob3ciXSAhPSAiIik/ZXhwbG9kZSgiLCIsJHBhcmFtc1sic2hvdyJdKTpmYWxzZTsKCiR1c2VfY29va2llcyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJjb29raWVzX2F1dG9yZWRpcmVjdF9hbGwiLCBmYWxzZSkgfHwgJHRoaXMtPkdldFByZWZlcmVuY2UoImNvb2tpZXNfYXV0b3JlZGlyZWN0X2hvbWUiLGZhbHNlKTsKJGRlZmF1bHRfaGlkZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJkZWZhdWx0X2hpZGUiLCBmYWxzZSk7CiR1c2VfcGFnZV90aXRsZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJ1c2VfcGFnZV90aXRsZSIsZmFsc2UpOwoKJGxhbmd1YWdlcyA9ICR0aGlzLT5nZXRsYW5ndWFnZXMoKTsKCiRsaW5rcyA9ICR0aGlzLT5nZXRfdXJscygpOwoKJGl0ZW1saXN0ID0gYXJyYXkoKTsKJHNob3dfY3VycmVudCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJjdXJyZW50X2xpbmsiLGZhbHNlKTsKCmZvcmVhY2goJGxhbmd1YWdlcyBhcyAkbGFuZ3VhZ2UpewoJaWYoKCEkc2hvd24gfHwgaW5fYXJyYXkoJGxhbmd1YWdlLT5sYW5nY29kZSwgJHNob3duKSkgJiYgKCRzaG93X2N1cnJlbnQgfHwgJGxhbmd1YWdlWydsYW5nY29kZSddICE9ICRjdXJyZW50X2xhbmd1YWdlKSl7CgkJJGl0ZW0gPSBuZXcgU3RkQ2xhc3MoKTsKCQkkaXRlbS0+Y29kZSA9ICRsYW5ndWFnZVsnbGFuZ2NvZGUnXTsKCQkkaXRlbS0+bmFtZSA9ICRsYW5ndWFnZVsnbmFtZSddOwoJCSRpdGVtLT5tZW51X25hbWUgPSAkbGFuZ3VhZ2VbJ21lbnVfbmFtZSddOwoJCSRpdGVtLT5pc19jdXJyZW50ID0gKCRsYW5ndWFnZVsnbGFuZ2NvZGUnXSA9PSAkY3VycmVudF9sYW5ndWFnZSk7CgkJJGl0ZW0tPnBhZ2VfbWVudV90ZXh0ID0gaXNzZXQoJGxpbmtzWyRpdGVtLT5jb2RlXSk/JGxpbmtzWyRpdGVtLT5jb2RlXVsnbWVudV90ZXh0J106IiI7CgkJJGl0ZW0tPnBhZ2VfbmFtZSA9IGlzc2V0KCRsaW5rc1skaXRlbS0+Y29kZV0pPyRsaW5rc1skaXRlbS0+Y29kZV1bJ25hbWUnXToiIjsKCQkkaXRlbS0+dXJsID0gKGlzc2V0KCRsaW5rc1skaXRlbS0+Y29kZV0pICYmICRsaW5rc1skaXRlbS0+Y29kZV0pPyRsaW5rc1skaXRlbS0+Y29kZV1bJ3VybCddLiRnQ21zLT5jb25maWdbJ3BhZ2VfZXh0ZW5zaW9uJ106ZmFsc2U7CgkJaWYoJGl0ZW0tPnVybCAmJiAkdXNlX2Nvb2tpZXMpCQkkaXRlbS0+dXJsID0gJGdDbXMtPmNvbmZpZ1sncm9vdF91cmwnXS4nL21vZHVsZXMvYmFiZWwvcmVkaXJlY3QucGhwP25ld2xhbmc9Jy4kaXRlbS0+Y29kZS4nJmFtcDtuZXd1cmw9Jy4kaXRlbS0+dXJsOwoKCQlpZigkaXRlbS0+dXJsIHx8ICEkZGVmYXVsdF9oaWRlIHx8ICRpdGVtLT5pc19jdXJyZW50KQlhcnJheV9wdXNoKCRpdGVtbGlzdCwgJGl0ZW0pOwoJfQp9CiR0aGlzLT5zbWFydHktPmFzc2lnbigibGFuZ3VhZ2VzIiwgJGl0ZW1saXN0KTsKCmlmIChpc3NldCgkcGFyYW1zWyJ0ZW1wbGF0ZSJdKSAmJiAoJHRlbXBsYXRlID0gJHRoaXMtPkdldFRlbXBsYXRlKCRwYXJhbXNbInRlbXBsYXRlIl0pKSl7CgllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdGVtcGxhdGUpOwp9ZWxzZXsKCSR0ZW1wbGF0ZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJkZWZhdWx0dGVtcGxhdGUiLCJkZWZhdWx0Iik7CglpZigkdGVtcGxhdGUpCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgkdGVtcGxhdGUpOwkKfQoK]]></data>
	</file>
	<file>
	  <filename>/action.movesomething.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KDQokbmV3cGFyYW1zID0gaXNzZXQoJHBhcmFtc1sibGV2ZWxuYW1lIl0pP2FycmF5KCJhY3RpdmVfdGFiIj0+JHBhcmFtc1sibGV2ZWxuYW1lIl0pOmFycmF5KCk7DQoNCmlmICghaXNzZXQoJHBhcmFtc1sibW92ZSJdKSB8fCAhaXNzZXQoJHBhcmFtc1sibGFuZ2NvZGUiXSkgfHwgIWlzc2V0KCRwYXJhbXNbImN1cnJlbnRvcmRlciJdKSApDQokdGhpcy0+UmVkaXJlY3QoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkLCAkbmV3cGFyYW1zKTsNCg0KJGRiID0mICR0aGlzLT5HZXREYigpOw0KJGRidGFibGUgPSBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9iYWJlbF9sYW5ndWFnZXMiOw0KJGN1cnJlbnRvcmRlciA9ICRwYXJhbXNbImN1cnJlbnRvcmRlciJdOw0KJGxhbmdjb2RlID0gJHBhcmFtc1sibGFuZ2NvZGUiXTsNCg0Kc3dpdGNoKCRwYXJhbXNbIm1vdmUiXSl7DQoJDQoJY2FzZSAiZGVsZXRlIjoNCgkJJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfbGFuZ2VudHJpZXMgV0hFUkUgbGFuZ2NvZGU9PyI7DQoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRsYW5nY29kZSkpOw0KCQkkcXVlcnkgPSAiREVMRVRFIEZST00gJGRidGFibGUgV0hFUkUgbGFuZ2NvZGUgPSA/IExJTUlUIDEiOw0KCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkbGFuZ2NvZGUpKTsNCg0KCQkvLyBVUERBVEUgVEhFIE9SREVSIE9GIFRIRSBJVEVNUw0KCQkkcXVlcnkgPSAiVVBEQVRFICRkYnRhYmxlIFNFVCBpdGVtX29yZGVyPShpdGVtX29yZGVyLTEpIFdIRVJFIGl0ZW1fb3JkZXIgPiA/ICI7DQoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjdXJyZW50b3JkZXIpKTsNCgkJDQoJCSRuZXdwYXJhbXNbIm1vZHVsZV9tZXNzYWdlIl0gPSAkdGhpcy0+bGFuZygibWVzc2FnZV9kZWxldGVkIik7DQoJCWJyZWFrOwkNCg0KCWNhc2UgInVwIjoNCgkJaWYgKCRjdXJyZW50b3JkZXIgIT0gMSl7DQoJCQkkcXVlcnkgPSAiVVBEQVRFICRkYnRhYmxlIFNFVCBpdGVtX29yZGVyPShpdGVtX29yZGVyKzEpIFdIRVJFIGl0ZW1fb3JkZXIgPSA/IExJTUlUIDE7IjsNCgkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjdXJyZW50b3JkZXItMSkpOw0KCQkJJHF1ZXJ5ID0gIlVQREFURSAkZGJ0YWJsZSBTRVQgaXRlbV9vcmRlcj0oaXRlbV9vcmRlci0xKSBXSEVSRSBsYW5nY29kZSA9ID8gTElNSVQgMTsiOw0KCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGxhbmdjb2RlKSk7DQoJCX0NCgkJYnJlYWs7DQoJCQ0KCWNhc2UgImRvd24iOg0KCQkkcXVlcnkgPSAiVVBEQVRFICRkYnRhYmxlIFNFVCBpdGVtX29yZGVyPShpdGVtX29yZGVyLTEpIFdIRVJFIGl0ZW1fb3JkZXIgPSA/IExJTUlUIDE7IjsNCgkJaWYoICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjdXJyZW50b3JkZXIrMSkpICl7DQoJCQkkcXVlcnkgPSAiVVBEQVRFICRkYnRhYmxlIFNFVCBpdGVtX29yZGVyPShpdGVtX29yZGVyKzEpIFdIRVJFIGxhbmdjb2RlID0gPyBMSU1JVCAxOyI7DQoJCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkbGFuZ2NvZGUpKTsNCgkJfQ0KCQlicmVhazsNCn0NCg0KJHRoaXMtPlJlZGlyZWN0KCRpZCwgImRlZmF1bHRhZG1pbiIsICRyZXR1cm5pZCk7DQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/babel.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogQmFiZWw6IE11bHRpbGluZ3VhbCBzaXRlDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDggYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQ0KIyBUaGlzIHByb2plY3QicyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZw0KIw0KIyBUaGlzIG1vZHVsZSB3YXMgY3JlYXRlZCB3aXRoIENUTE1vZHVsZU1ha2VyIDEuOC44LjINCiMgQ1RMTW9kdWxlTWFrZXIgd2FzIGNyZWF0ZWQgYnkgUGllcnJlLUx1YyBHZXJtYWluIGFuZCBpcyByZWxlYXNlZCB1bmRlciBHTlUNCiMgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jdGxtb2R1bGVtYWtlcg0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTA0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KY2xhc3MgYmFiZWwgZXh0ZW5kcyBDTVNNb2R1bGUNCnsNCgl2YXIgJGF2YWlsYWJsZV9sYW5ndWFnZXMgPSBmYWxzZTsNCgl2YXIgJGFsbF9sYW5ndWFnZXMgPSBmYWxzZTsNCgl2YXIgJGN1cnJlbnRfbGFuZ3VhZ2UgPSBmYWxzZTsNCgl2YXIgJGN1cnJlbnRfbGFuZ2NvZGUgPSBmYWxzZTsNCgl2YXIgJGN1cnJlbnRfbGFuZ2VudHJpZXMgPSBmYWxzZTsNCg0KCWZ1bmN0aW9uIEdldE5hbWUoKQ0KCXsNCgkJcmV0dXJuICJiYWJlbCI7DQoJfQ0KDQoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCgkgICBHZXRGcmllbmRseU5hbWUoKQ0KCSAgIFRoaXMgY2FuIHJldHVybiBhbnkgc3RyaW5nLCBwcmVmZXJhYmx5IGEgbG9jYWxpemVkIG5hbWUNCgkgICBvZiB0aGUgbW9kdWxlLiBUaGlzIGlzIHRoZSBuYW1lIHRoYXQicyBzaG93biBpbiB0aGUNCgkgICBBZG1pbiBNZW51cyBhbmQgc2VjdGlvbiBwYWdlcyAoaWYgdGhlIG1vZHVsZSBoYXMgYW4gYWRtaW4NCgkgICBjb21wb25lbnQpLg0KCSAgIA0KCSAgIFNlZSB0aGUgbm90ZSBvbiBsb2NhbGl6YXRpb24gYXQgdGhlIHRvcCBvZiB0aGlzIGZpbGUuDQoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KCWZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpDQoJew0KCQlyZXR1cm4gJHRoaXMtPkxhbmcoImZyaWVuZGx5bmFtZSIpOw0KCX0NCgkNCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KCSAgIEdldFZlcnNpb24oKQ0KCSAgIFRoaXMgY2FuIHJldHVybiBhbnkgc3RyaW5nLCBwcmVmZXJhYmx5IGEgbnVtYmVyIG9yDQoJICAgc29tZXRoaW5nIHRoYXQgbWFrZXMgc2Vuc2UgZm9yIGRlc2lnbmF0aW5nIGEgdmVyc2lvbi4NCgkgICBUaGUgQ01TIHdpbGwgdXNlIHRoaXMgdG8gaWRlbnRpZnkgd2hldGhlciBvciBub3QNCgkgICB0aGUgaW5zdGFsbGVkIHZlcnNpb24gb2YgdGhlIG1vZHVsZSBpcyBjdXJyZW50LCBhbmQNCgkgICB0aGUgbW9kdWxlIHdpbGwgdXNlIGl0IHRvIGZpZ3VyZSBvdXQgaG93IHRvIHVwZ3JhZGUNCgkgICBpdHNlbGYgaWYgcmVxdWVzdGVkLgkgICANCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQoJZnVuY3Rpb24gR2V0VmVyc2lvbigpDQoJew0KCQlyZXR1cm4gIjAuNC4xIjsNCgl9DQoNCg0KCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoJICAgR2V0RGVwZW5kZW5jaWVzKCkNCgkgICBZb3VyIG1vZHVsZSBtYXkgbmVlZCBhbm90aGVyIG1vZHVsZSB0byBhbHJlYWR5IGJlIGluc3RhbGxlZA0KCSAgIGJlZm9yZSB5b3UgY2FuIGluc3RhbGwgaXQuDQoJICAgVGhpcyBtZXRob2QgcmV0dXJucyBhIGxpc3Qgb2YgdGhvc2UgZGVwZW5kZW5jaWVzIGFuZA0KCSAgIG1pbmltdW0gdmVyc2lvbiBudW1iZXJzIHRoYXQgdGhpcyBtb2R1bGUgcmVxdWlyZXMuDQoJICAgDQoJICAgSXQgc2hvdWxkIHJldHVybiBhbiBoYXNoLCBlZy4NCgkgICByZXR1cm4gYXJyYXkoInNvbWVtb2R1bGUiPT4iMS4wIiwgIm90aGVybW9kdWxlIj0+IjEuMSIpOw0KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCglmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKQ0KCXsNCgkJcmV0dXJuIGFycmF5KCk7DQoJfQ0KDQoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCgkgICBHZXRIZWxwKCkNCgkgICBUaGlzIHJldHVybnMgSFRNTCBpbmZvcm1hdGlvbiBvbiB0aGUgbW9kdWxlLg0KCSAgIFR5cGljYWxseSwgeW91ImxsIHdhbnQgdG8gaW5jbHVkZSBpbmZvcm1hdGlvbiBvbiBob3cgdG8NCgkgICB1c2UgdGhlIG1vZHVsZS4NCgkgICANCgkgICBTZWUgdGhlIG5vdGUgb24gbG9jYWxpemF0aW9uIGF0IHRoZSB0b3Agb2YgdGhpcyBmaWxlLg0KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCglmdW5jdGlvbiBHZXRIZWxwKCkNCgl7DQoJCXJldHVybiAkdGhpcy0+TGFuZygiaGVscCIpOw0KCX0NCg0KCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoJICAgR2V0QXV0aG9yKCkNCgkgICBUaGlzIHJldHVybnMgYSBzdHJpbmcgdGhhdCBpcyBwcmVzZW50ZWQgaW4gdGhlIE1vZHVsZQ0KCSAgIEFkbWluIGlmIHlvdSBjbGljayBvbiB0aGUgIkFib3V0IiBsaW5rLg0KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCglmdW5jdGlvbiBHZXRBdXRob3IoKQ0KCXsNCgkJcmV0dXJuICJQaWVycmUtTHVjIEdlcm1haW4gKHBsZ2VyKSI7DQoJfQ0KDQoNCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KCSAgIEdldEF1dGhvckVtYWlsKCkNCgkgICBUaGlzIHJldHVybnMgYSBzdHJpbmcgdGhhdCBpcyBwcmVzZW50ZWQgaW4gdGhlIE1vZHVsZQ0KCSAgIEFkbWluIGlmIHlvdSBjbGljayBvbiB0aGUgIkFib3V0IiBsaW5rLiBJdCBoZWxwcyB1c2Vycw0KCSAgIG9mIHlvdXIgbW9kdWxlIGdldCBpbiB0b3VjaCB3aXRoIHlvdSB0byBzZW5kIGJ1ZyByZXBvcnRzLA0KCSAgIHF1ZXN0aW9ucywgY2FzZXMgb2YgYmVlciwgYW5kL29yIGxhcmdlIHN1bXMgb2YgbW9uZXkuDQoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KCWZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkNCgl7DQoJCXJldHVybiAiIjsNCgl9DQoNCiAgICBmdW5jdGlvbiBHZXRDaGFuZ2VMb2coKQ0KICAgIHsNCgkJJGZpbGVwYXRoID0gZGlybmFtZShfX0ZJTEVfXykuRElSRUNUT1JZX1NFUEFSQVRPUi4iY2hhbmdlbG9nLnR4dCI7DQoJCWlmKGZpbGVfZXhpc3RzKCRmaWxlcGF0aCkpew0KCQkJJGZoYW5kbGUgPSBmb3BlbigkZmlsZXBhdGgsICdyKycpOw0KCQkJJGNvbnRlbnQgPSBmcmVhZCgkZmhhbmRsZSwgZmlsZXNpemUoJGZpbGVwYXRoKSk7DQoJCQlyZXR1cm4gJzxici8+PHByZT4nLiRjb250ZW50Lic8L3ByZT4nOw0KCQl9ZWxzZXsNCgkJCXJldHVybiAiIjsNCgkJfQ0KICAgIH0NCg0KCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoJICAgSXNQbHVnaW5Nb2R1bGUoKQ0KCSAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0cnVlIG9yIGZhbHNlLCBkZXBlbmRpbmcgdXBvbg0KCSAgIHdoZXRoZXIgdXNlcnMgY2FuIGluY2x1ZGUgdGhlIG1vZHVsZSBpbiBhIHBhZ2Ugb3INCgkgICB0ZW1wbGF0ZSB1c2luZyBhIHNtYXJ0eSB0YWcgb2YgdGhlIGZvcm0NCgkgICB7Y21zX21vZHVsZSBtb2R1bGU9IlByb2QiIHBhcmFtMT12YWwgcGFyYW0yPXZhbC4uLn0NCgkgICANCgkgICBJZiB5b3VyIG1vZHVsZSBkb2VzIG5vdCBnZXQgaW5jbHVkZWQgaW4gcGFnZXMgb3INCgkgICB0ZW1wbGF0ZXMsIHJldHVybiAiZmFsc2UiIGhlcmUuDQoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KCWZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkNCgl7DQoJCXJldHVybiB0cnVlOw0KCX0NCg0KDQoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCgkgICBIYXNBZG1pbigpDQoJICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgYm9vbGVhbiB2YWx1ZSwgZGVwZW5kaW5nIG9uDQoJICAgd2hldGhlciB5b3VyIG1vZHVsZSBhZGRzIGFueXRoaW5nIHRvIHRoZSBBZG1pbiBhcmVhIG9mDQoJICAgdGhlIHNpdGUuIEZvciB0aGUgcmVzdCBvZiB0aGVzZSBjb21tZW50cywgSSJsbCBiZSBjYWxsaW5nDQoJICAgdGhlIGFkbWluIHBhcnQgb2YgeW91ciBtb2R1bGUgdGhlICJBZG1pbiBQYW5lbCIgZm9yDQoJICAgd2FudCBvZiBhIGJldHRlciB0ZXJtLg0KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCglmdW5jdGlvbiBIYXNBZG1pbigpIHsJcmV0dXJuIHRydWU7CX0NCglmdW5jdGlvbiBHZXRBZG1pblNlY3Rpb24oKSB7cmV0dXJuICJleHRlbnNpb25zIjt9DQoJZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpIHtyZXR1cm4gJHRoaXMtPkxhbmcoImFkbWluZGVzY3JpcHRpb24iKTt9DQoNCglmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKXsNCgkJcmV0dXJuICR0aGlzLT5DaGVja1Blcm1pc3Npb24oImFkbWluX2JhYmVsIik7DQoJfQ0KCQkNCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KCSAgIFNldFBhcmFtZXRlcnMoKQ0KCSAgIFRoaXMgZnVuY3Rpb24gZW5hYmxlcyB5b3UgdG8gY3JlYXRlIG1hcHBpbmdzIGZvcg0KCSAgIHlvdXIgbW9kdWxlIHdoZW4gdXNpbmcgIlByZXR0eSBVcmxzIi4NCgkgICANCgkgICBUeXBpY2FsbHksIG1vZHVsZXMgY3JlYXRlIGludGVybmFsIGxpbmtzIHRoYXQgaGF2ZQ0KCSAgIGJpZyB1Z2x5IHN0cmluZ3MgYWxvbmcgdGhlIGxpbmVzIG9mOg0KCSAgIGluZGV4LnBocD9tYWN0PU1vZE5hbWUsY250bnQwMSxhY3Rpb25OYW1lLDAmY250bnQwMXBhcmFtMT0xJmNudG50MDFwYXJhbTI9MiZjbnRudDAxcmV0dXJuaWQ9Mw0KCSAgIA0KCSAgIFlvdSBtaWdodCBwcmVmZXIgdGhlc2UgdG8gbG9vayBsaWtlOg0KCSAgIC9Nb2R1bGVGdW5jdGlvbi8yLzMNCgkgICANCgkgICBUbyBkbyB0aGlzLCB5b3UgaGF2ZSB0byByZWdpc3RlciByb3V0ZXMgYW5kIG1hcA0KCSAgIHlvdXIgcGFyYW1ldGVycyBpbiBhIHdheSB0aGF0IHRoZSBBUEkgd2lsbCBiZSBhYmxlDQoJICAgdG8gdW5kZXJzdGFuZC4NCg0KCSAgIEFsc28gbm90ZSB0aGF0IGFueSBjYWxscyB0byBDcmVhdGVMaW5rIHdpbGwgbmVlZCB0bw0KCSAgIGJlIHVwZGF0ZWQgdG8gcGFzcyB0aGUgcHJldHR5IHVybCBwYXJhbWV0ZXIuDQoJICAgDQoJICAgU2luY2UgdGhlIFNrZWxldG9uIGRvZXNuInQgcmVhbGx5IGNyZWF0ZSBhbnkgbGlua3MsDQoJICAgdGhlIHNlY3Rpb24gYmVsb3cgaXMgY29tbWVudGVkIG91dCwgYnV0IHlvdSBjYW4NCgkgICB1c2UgaXQgdG8gZmlndXJlIG91dCBwcmV0dHkgdXJscy4NCgkgICANCgkgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KCWZ1bmN0aW9uIFNldFBhcmFtZXRlcnMoKQ0KCXsNCgkJJHRoaXMtPlJlZ2lzdGVyTW9kdWxlUGx1Z2luKCk7DQoJCSR0aGlzLT5SZWdpc3RlckV2ZW50cygpOw0KCQkkdGhpcy0+UmVzdHJpY3RVbmtub3duUGFyYW1zKCk7DQoJCQ0KCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCJhY3Rpb24iLCAiZGVmYXVsdCIsICR0aGlzLT5MYW5nKCJwaGVscF9hY3Rpb24iKSk7DQoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoInNob3ciLCAiIiwgJHRoaXMtPkxhbmcoInBoZWxwX3Nob3ciKSk7DQoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCJzaG93IixDTEVBTl9TVFJJTkcpOw0KCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCJ0ZW1wbGF0ZSIsICIiLCAkdGhpcy0+TGFuZygicGhlbHBfdGVtcGxhdGUiKSk7DQoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCJ0ZW1wbGF0ZSIsQ0xFQU5fU1RSSU5HKTsNCgkJJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigiYXNzaWduIiwgIiIsICR0aGlzLT5MYW5nKCJwaGVscF9hc3NpZ24iKSk7DQoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCJhc3NpZ24iLENMRUFOX1NUUklORyk7DQoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCJuZXdsYW5nIixDTEVBTl9TVFJJTkcpOw0KCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgibmV3dXJsIixDTEVBTl9TVFJJTkcpOw0KCX0NCgkNCglmdW5jdGlvbiBIYW5kbGVzRXZlbnRzKCl7DQoJCXJldHVybiB0cnVlOw0KCX0NCglmdW5jdGlvbiBSZWdpc3RlckV2ZW50cygpew0KCQkkdGhpcy0+QWRkRXZlbnRIYW5kbGVyKCAnQ29yZScsICdDb250ZW50UHJlQ29tcGlsZScsIGZhbHNlICk7DQoJfQ0KCWZ1bmN0aW9uIERvRXZlbnQoJG9yaWdpbmF0b3IsICRldmVudG5hbWUsICYkcGFyYW1zKXsNCgkJaWYoJGV2ZW50bmFtZSA9PSAnQ29udGVudFByZUNvbXBpbGUnKXsNCgkJCSR0aGlzLT5hc3NpZ25fcGFnZV9sYW5nKCk7DQoJCQkkdGhpcy0+YXV0b19yZWRpcmVjdCgpOw0KCQl9DQoJfQ0KCWZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpDQoJew0KCQlyZXR1cm4gJHRoaXMtPkxhbmcoInBvc3RpbnN0YWxsIik7DQoJfQ0KCWZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkNCgl7DQoJCXJldHVybiAkdGhpcy0+TGFuZygicG9zdHVuaW5zdGFsbCIpOw0KCX0NCglmdW5jdGlvbiBVbmluc3RhbGxQcmVNZXNzYWdlKCkNCgl7DQoJCXJldHVybiAkdGhpcy0+TGFuZygicmVhbGx5X3VuaW5zdGFsbCIpOw0KCX0NCg0KDQoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCgkgICBJbnN0YWxsKCkNCgkgICBXaGVuIHlvdXIgbW9kdWxlIGlzIGluc3RhbGxlZCwgeW91IG1heSBuZWVkIHRvIGRvIHNvbWUNCgkgICBzZXR1cC4gVHlwaWNhbCB0aGluZ3MgdGhhdCBoYXBwZW4gaGVyZSBhcmUgdGhlIGNyZWF0aW9uDQoJICAgYW5kIHByZXBvcHVsYXRpb24gb2YgZGF0YWJhc2UgdGFibGVzLCBkYXRhYmFzZSBzZXF1ZW5jZXMsDQoJICAgcGVybWlzc2lvbnMsIHByZWZlcmVuY2VzLCBldGMuDQoJICAgCSAgIA0KCSAgIEZvciBpbmZvcm1hdGlvbiBvbiB0aGUgY3JlYXRpb24gb2YgZGF0YWJhc2UgdGFibGVzLA0KCSAgIGNoZWNrIG91dCB0aGUgQURPREIgRGF0YSBEaWN0aW9uYXJ5IHBhZ2UgYXQNCgkgICBodHRwOi8vcGhwbGVucy5jb20vbGVucy9hZG9kYi9kb2NzLWRhdGFkaWN0Lmh0bQ0KCSAgIA0KCSAgIFRoaXMgZnVuY3Rpb24gY2FuIHJldHVybiBhIHN0cmluZyBpbiBjYXNlIG9mIGFueSBlcnJvciwNCgkgICBhbmQgQ01TIHdpbGwgbm90IGNvbnNpZGVyIHRoZSBtb2R1bGUgaW5zdGFsbGVkLg0KCSAgIFN1Y2Nlc3NmdWwgaW5zdGFsbHMgc2hvdWxkIHJldHVybiBGQUxTRSBvciBub3RoaW5nIGF0IGFsbC4NCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQoJZnVuY3Rpb24gSW5zdGFsbCgpDQoJew0KCQlpZihmdW5jdGlvbl9leGlzdHMoJ2Ntc21zJykpeyAkZ0NtcyA9IGNtc21zKCk7IH1lbHNleyBnbG9iYWwgJGdDbXM7CX0NCgkJcmVxdWlyZSAibWV0aG9kLmluc3RhbGwucGhwIjsNCgl9DQoNCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KCSAgIFVuaW5zdGFsbCgpDQoJICAgU29tZXRpbWVzLCBhbiBleGNlcHRpb25hbGx5IHVuZW5saWdodGVuZWQgb3IgaWdub3JhbnQNCgkgICBhZG1pbiB3aWxsIHdpc2ggdG8gdW5pbnN0YWxsIHlvdXIgbW9kdWxlLiBXaGlsZSBpdA0KCSAgIHdvdWxkIGJlIGJlc3QgdG8gbGF5IGludG8gdGhlc2UgaWRpb3RzIHdpdGggYSBjbHVlc3RpY2ssDQoJICAgd2Ugd2lsbCBkbyB0aGUgbWFnbmFuaW1vdXMgdGhpbmcgYW5kIHJlbW92ZSB0aGUgbW9kdWxlDQoJICAgYW5kIGNsZWFuIHVwIHRoZSBkYXRhYmFzZSwgcGVybWlzc2lvbnMsIGFuZCBwcmVmZXJlbmNlcw0KCSAgIHRoYXQgYXJlIHNwZWNpZmljIHRvIGl0Lg0KCSAgIFRoaXMgaXMgdGhlIG1ldGhvZCB3aGVyZSB3ZSBkbyB0aGlzLg0KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCglmdW5jdGlvbiBVbmluc3RhbGwoKQ0KCXsNCgkJZ2xvYmFsICRnQ21zOw0KCQlyZXF1aXJlICJtZXRob2QudW5pbnN0YWxsLnBocCI7DQoJfQ0KDQoNCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KTk9UIFBBUlQgT0YgVEhFIE5PUk1BTCBNT0RVTEUgQVBJDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCg0KDQoJZnVuY3Rpb24gZ2V0X21vZHByZWZzKCl7DQoJCS8vIGFycmF5KCdwcmVmZXJlbmNlX25hbWUnLHZhbHVlX29uX2luc3RhbGwpOw0KCQlyZXR1cm4gYXJyYXkoDQoJCQkJYXJyYXkoJ2F1dG9yZWRpcmVjdF9ob21lJyx0cnVlKSwNCgkJCQlhcnJheSgnYXV0b3JlZGlyZWN0X2FsbCcsZmFsc2UpLAkJDQoJCQkJYXJyYXkoJ2Nvb2tpZXNfYXV0b3JlZGlyZWN0X2hvbWUnLHRydWUpLA0KCQkJCWFycmF5KCdjb29raWVzX2F1dG9yZWRpcmVjdF9hbGwnLGZhbHNlKSwNCgkJCQlhcnJheSgnaGllcmFyY2h5X3JlZGlyZWN0Jyx0cnVlKSwNCgkJCQlhcnJheSgnY3VycmVudF9saW5rJyxmYWxzZSksDQoJCQkJYXJyYXkoJ2RlZmF1bHRfaGlkZScsdHJ1ZSksDQoJCQkJYXJyYXkoJ2RlZmF1bHRfdHJhbnNsYXRlJyx0cnVlKSwNCgkJCQlhcnJheSgnaGlkZV9taXNzaW5nZW50cmllcycsZmFsc2UpLA0KCQkJCWFycmF5KCd3eXNpd3lnJyxmYWxzZSkNCgkJCQkpOw0KCX0NCg0KCWZ1bmN0aW9uIHBsY3JlYXRlYWxpYXMoJG5hbWUpew0KCQkvLyBmaWx0ZXIga2V5cyBmb3IgbGFuZ3VhZ2UgZW50cmllcw0KCQkvLyBhcyBhIHN1Z2dlc3Rpb24gZnJvbSBBTVQsIHRoZSBmaXJzdCBwYXJ0IGRlYWxzIHdpdGggc21hcnQgcXVvdGVzDQogCQkkc2VhcmNoID0gYXJyYXkoY2hyKDB4ZTIpIC4gY2hyKDB4ODApIC4gY2hyKDB4OTgpLA0KCQkJCQkJICBjaHIoMHhlMikgLiBjaHIoMHg4MCkgLiBjaHIoMHg5OSksDQoJCQkJCQkgIGNocigweGUyKSAuIGNocigweDgwKSAuIGNocigweDljKSwNCgkJCQkJCSAgY2hyKDB4ZTIpIC4gY2hyKDB4ODApIC4gY2hyKDB4OWQpLA0KCQkJCQkJICBjaHIoMHhlMikgLiBjaHIoMHg4MCkgLiBjaHIoMHg5MyksDQoJCQkJCQkgIGNocigweGUyKSAuIGNocigweDgwKSAuIGNocigweDk0KSk7DQogCQkkbmFtZSA9IHN0cl9yZXBsYWNlKCRzZWFyY2gsICIiLCAkbmFtZSk7DQogCQkvLyB0aGUgc2Vjb25kIHBhcnQgdXNlcyB0aGUgY21zIHZlcnNpb24NCiAJCSRhbGlhcyA9IG11bmdlX3N0cmluZ190b191cmwoJG5hbWUsIGZhbHNlKTsNCiAJCXJldHVybiAkYWxpYXM7DQoJfSANCg0KCWZ1bmN0aW9uIERvQWN0aW9uKCRhY3Rpb24sICRpZCwgJHBhcmFtcywgJHJldHVybmlkPS0xKXsNCgkJaWYoZnVuY3Rpb25fZXhpc3RzKCdjbXNtcycpKXsNCgkJCSRnQ21zID0gY21zbXMoKTsNCgkJfWVsc2V7DQoJCQlnbG9iYWwgJGdDbXM7DQoJCX0NCgkJDQoJCXN3aXRjaCgkYWN0aW9uKXsNCgkJCWNhc2UgImF1dG9fcmVkaXJlY3QiOg0KCQkJCWlmKCEkdGhpcy0+Y3VycmVudF9sYW5nY29kZSkJJHRoaXMtPmFzc2lnbl9wYWdlX2xhbmcoKTsNCgkJCQkkdGhpcy0+YXV0b19yZWRpcmVjdCgpOw0KCQkJY2FzZSAiYXNzaWduIjoNCgkJCQlpZigkdGhpcy0+Y3VycmVudF9sYW5nY29kZSl7DQoJCQkJCWdsb2JhbCAkc21hcnR5Ow0KCQkJCQkkc21hcnR5LT5hc3NpZ24oJ3BhZ2VfbGFuZycsJHRoaXMtPmN1cnJlbnRfbGFuZ2NvZGUpOw0KCQkJCQkkc21hcnR5LT5hc3NpZ24oJ3BhZ2VfbGFuZ19pbmZvJywkdGhpcy0+Y3VycmVudF9sYW5ndWFnZSk7DQoJCQkJfWVsc2V7DQoJCQkJCSR0aGlzLT5hc3NpZ25fcGFnZV9sYW5nKCk7DQoJCQkJfQ0KCQkJCWJyZWFrOw0KCQkJY2FzZSAic2l0ZW1hcCI6DQoJCQkJaWYoISR0aGlzLT5jdXJyZW50X2xhbmd1YWdlKSByZXR1cm4gZmFsc2U7DQoJCQkJJGhpZXJNYW5hZ2VyID0gJGdDbXMtPkdldEhpZXJhcmNoeU1hbmFnZXIoKTsNCgkJCQkkaGllcmFyY2h5ID0gJGhpZXJNYW5hZ2VyLT5nZXROb2RlQnlJZCgkdGhpcy0+Y3VycmVudF9sYW5ndWFnZVsncm9vdF9pZCddKTsNCg0KCQkJCWlmICgkaGllcmFyY2h5ICYmICRoaWVyYXJjaHktPmhhc0NoaWxkcmVuKCkpew0KCQkJCQllY2hvICc8dWwgY2xhc3M9InNpdGVtYXAiPic7DQoJCQkJCSRwYWdlbGlzdCA9IGFycmF5KCk7DQoJCQkJCWZvcmVhY2ggKCRoaWVyYXJjaHktPmdldENoaWxkcmVuKCkgYXMgJG5vZGUpCSR0aGlzLT5lY2hvX2xpbmUoJG5vZGUpOw0KCQkJCQllY2hvICc8L3VsPic7DQoJCQkJfQkNCgkJCQlicmVhazsJCQ0KCQkJY2FzZSAiZGVmYXVsdGFkbWluIjoNCgkJCQlyZXF1aXJlICJhY3Rpb24uZGVmYXVsdGFkbWluLnBocCI7DQoJCQkJYnJlYWs7DQoJCQljYXNlICJtZW51IjoNCgkJCQlyZXF1aXJlICJhY3Rpb24ubWVudS5waHAiOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAibW92ZXNvbWV0aGluZyI6DQoJCQkJcmVxdWlyZSAiYWN0aW9uLm1vdmVzb21ldGhpbmcucGhwIjsNCgkJCQlicmVhazsNCgkJCWNhc2UgImVkaXRsYW5nIjoNCgkJCQlyZXF1aXJlICJhY3Rpb24uZWRpdGxhbmcucGhwIjsNCgkJCQlicmVhazsNCgkJCWNhc2UgImVkaXRlbnRyaWVzIjoNCgkJCQlyZXF1aXJlICJhY3Rpb24uZWRpdGVudHJpZXMucGhwIjsNCgkJCQlicmVhazsNCgkJCWNhc2UgImVkaXRlbnRyeSI6DQoJCQkJcmVxdWlyZSAiYWN0aW9uLmVkaXRlbnRyeS5waHAiOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAiZWRpdFRlbXBsYXRlIjoNCgkJCQlyZXF1aXJlICJhY3Rpb24uZWRpdFRlbXBsYXRlLnBocCI7DQoJCQkJYnJlYWs7DQoJCQljYXNlICJkZWxldGVFbnRyeSI6DQoJCQkJaWYoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oImFkbWluX2JhYmVsIikpCXJldHVybiBmYWxzZTsNCgkJCQkkZW50cnkgPSAoaXNzZXQoJHBhcmFtc1snZW50cnlrZXknXSkgJiYgJHBhcmFtc1snZW50cnlrZXknXSAhPSAnJyk/JHBhcmFtc1snZW50cnlrZXknXTpmYWxzZTsNCgkJCQlpZigkZW50cnkpew0KCQkJCQkkZGIgPSAkdGhpcy0+R2V0RGIoKTsNCgkJCQkJJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfYmFiZWxfbGFuZ2VudHJpZXMgV0hFUkUgc3RyaW5naWQ9PyI7DQoJCQkJCSRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRlbnRyeSkpOw0KCQkJCQkkcXVlcnkgPSAiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9iYWJlbF9sYW5na2V5cyBXSEVSRSBzdHJpbmdpZD0/IjsNCgkJCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGVudHJ5KSk7CQkJCQkNCgkJCQkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgYXJyYXkoJ21vZHVsZV9tZXNzYWdlJz0+JHRoaXMtPkxhbmcoJ21lc3NhZ2VfZGVsZXRlZCcpKSk7DQoJCQkJfWVsc2V7DQoJCQkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQpOw0KCQkJCX0NCgkJCQlicmVhazsNCgkJCWNhc2UgInRvZ2dsZWFjdGl2ZSI6DQoJCQkJaWYoaXNzZXQoJHBhcmFtc1sibGFuZ2NvZGUiXSkpew0KCQkJCQkkbmV3dmFsID0gaXNzZXQoJHBhcmFtc1sibmV3dmFsIl0pPyRwYXJhbXNbIm5ld3ZhbCJdOjA7DQoJCQkJCSRkYiA9ICR0aGlzLT5HZXREYigpOw0KCQkJCQkkcXVlcnkgPSAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfYmFiZWxfbGFuZ3VhZ2VzIFNFVCBhY3RpdmU9PyBXSEVSRSBsYW5nY29kZT0/IExJTUlUIDEiOw0KCQkJCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkbmV3dmFsLCRwYXJhbXNbImxhbmdjb2RlIl0pKTsNCgkJCQl9DQoJCQkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgImRlZmF1bHRhZG1pbiIsICRyZXR1cm5pZCk7DQoJCQkJYnJlYWs7DQoJCQljYXNlICJ0b2dnbGVkZWZhdWx0IjoNCgkJCQlpZihpc3NldCgkcGFyYW1zWyJsYW5nY29kZSJdKSkJJHRoaXMtPlNldFByZWZlcmVuY2UoImRlZmF1bHRfbGFuZ3VhZ2UiLCRwYXJhbXNbImxhbmdjb2RlIl0pOw0KCQkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICJkZWZhdWx0YWRtaW4iLCAkcmV0dXJuaWQpOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAiY2hhbmdlc2V0dGluZ3MiOg0KCQkJCSRtb2RwcmVmcyA9ICR0aGlzLT5nZXRfbW9kcHJlZnMoKTsNCgkJCQlmb3JlYWNoKCRtb2RwcmVmcyBhcyAkcHJlZikJJHRoaXMtPlNldFByZWZlcmVuY2UoJHByZWZbMF0sIGlzc2V0KCRwYXJhbXNbJHByZWZbMF1dKSk7DQoJCQkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgImRlZmF1bHRhZG1pbiIsICRyZXR1cm5pZCwgYXJyYXkoImFjdGl2ZV90YWIiPT4ic2V0dGluZ3MiLCAibW9kdWxlX21lc3NhZ2UiPT4kdGhpcy0+TGFuZygibWVzc2FnZV9tb2RpZmllZCIpKSk7DQoJCQkJYnJlYWs7DQoJCQljYXNlICJkZWxldGV0cGwiOg0KCQkJCSRuZXdwYXJhbXMgPSBhcnJheSgiYWN0aXZlX3RhYiI9PiJ0ZW1wbGF0ZXMiKTsNCgkJCSAgICBpZihpc3NldCgkcGFyYW1zWyJ0cGxuYW1lIl0pICYmICR0aGlzLT5EZWxldGVUZW1wbGF0ZSgkcGFyYW1zWyJ0cGxuYW1lIl0pKQkgICAkbmV3cGFyYW1zWyJtb2R1bGVfbWVzc2FnZT4iXSA9ICR0aGlzLT5MYW5nKCJtZXNzYWdlX21vZGlmaWVkIik7DQoJCQkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgImRlZmF1bHRhZG1pbiIsICRyZXR1cm5pZCwgJG5ld3BhcmFtcyk7DQoJCQkJYnJlYWs7DQoNCgkJCWNhc2UgImRlZmF1bHQiOg0KCQkJZGVmYXVsdDoNCgkJCQlpZihpc3NldCgkcGFyYW1zWyJzaG93Il0pKXsNCgkJCQkJJG91dHB1dCA9ICR0aGlzLT5yZXRyaWV2ZV90cmFuc2xhdGlvbigkcGFyYW1zWyJzaG93Il0pOw0KCQkJCQlpZighaXNfYXJyYXkoJG91dHB1dCkpCSRvdXRwdXQgPSBhcnJheSgkb3V0cHV0KTsNCgkJCQkJaWYoaXNzZXQoJHBhcmFtc1siYXNzaWduIl0pICYmICRwYXJhbXNbImFzc2lnbiJdICE9ICIiKXsNCgkJCQkJCSRrZXlzID0gZXhwbG9kZSgnLCcsJHBhcmFtc1siYXNzaWduIl0pOw0KCQkJCQkJaWYoY291bnQoJGtleXMpICE9IGNvdW50KCRvdXRwdXQpKXsNCgkJCQkJCQllY2hvICcNCi0tIEJhYmVsIGZhaWxlZCB0byBhc3NpZ246IHZhciBjb3VudCBkb2VzIG5vdCBtYXRjaCAtLQ0KJzsNCgkJCQkJCX1lbHNlew0KCQkJCQkJCSRzbWFydHkgPSYgJGdDbXMtPkdldFNtYXJ0eSgpOw0KCQkJCQkJCSRpID0gMDsNCgkJCQkJCQl3aGlsZShpc3NldCgkb3V0cHV0WyRpXSkpew0KCQkJCQkJCQkkc21hcnR5LT5hc3NpZ24oJGtleXNbJGldLCRvdXRwdXRbJGldKTsNCgkJCQkJCQkJJGkrKzsNCgkJCQkJCQl9DQoJCQkJCQl9DQoJCQkJCX1lbHNlew0KCQkJCQkJZWNobyBpbXBsb2RlKCRvdXRwdXQpOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCWJyZWFrOw0KCQl9DQoNCgl9DQoJDQoJZnVuY3Rpb24gY291bnRzb21ldGhpbmcoJHRhYmxlbmFtZSwkd2hhdD0iaWQiLCR3aGVyZT1hcnJheSgpKXsNCgkJLy8gcmV0dXJucyB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIGEgdGFibGUNCgkJJGRiID0mICR0aGlzLT5HZXREYigpOw0KCQkkd2hlcmVzdHJpbmcgPSAiIjsNCgkJJHdoZXJldmFsdWVzID0gYXJyYXkoKTsNCgkJZm9yZWFjaCgkd2hlcmUgYXMgJGtleT0+JHZhbHVlKXsNCgkJCSR3aGVyZXN0cmluZyAuPSAoJHdoZXJlc3RyaW5nID09ICIiPyIgV0hFUkUgIjoiIEFORCAiKS4ka2V5LiI9PyI7DQoJCQkkd2hlcmV2YWx1ZXNbXSA9ICR2YWx1ZTsNCgkJfQ0KCQkkcXVlcnkgPSAiU0VMRUNUIENPVU5UKCR3aGF0KSBvdXJjb3VudCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfYmFiZWxfJHRhYmxlbmFtZSIuJHdoZXJlc3RyaW5nOw0KCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCR3aGVyZXZhbHVlcyk7DQoJCWlmICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSl7DQoJCQlyZXR1cm4gJHJvd1sib3VyY291bnQiXTsNCgkJfWVsc2V7DQoJCQlyZXR1cm4gMDsNCgkJfQ0KCX0JDQoJDQoJZnVuY3Rpb24gZ2V0RmlsZUNvbnRlbnQoJGZpbGVuYW1lKXsNCgkJJGZpbGVwYXRoID0gZGlybmFtZShfX0ZJTEVfXykuRElSRUNUT1JZX1NFUEFSQVRPUi4kZmlsZW5hbWU7DQoJCWlmKGZpbGVfZXhpc3RzKCRmaWxlcGF0aCkpew0KCQkJJGZoYW5kbGUgPSBmb3BlbigkZmlsZXBhdGgsICJyKyIpOw0KCQkJJGNvbnRlbnQgPSBmcmVhZCgkZmhhbmRsZSwgZmlsZXNpemUoJGZpbGVwYXRoKSk7DQoJCQlyZXR1cm4gJGNvbnRlbnQ7DQoJCX1lbHNlew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoJfQ0KCQ0KCWZ1bmN0aW9uIHJldHJpZXZlX3BhZ2VfbGFuZygpew0KCQkvLyByZXRyaWV2ZSByb290IGlkDQoJCWlmKCEkdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlcykJJHRoaXMtPnJldHJpZXZlX2xhbmd1YWdlcygpOw0KCQlpZighJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXMpCXJldHVybiBmYWxzZTsNCgkJZm9yZWFjaCgkdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlcyBhcyAkb25lbGFuZyl7DQoJCQlpZigkb25lbGFuZ1sicm9vdF9pZCJdID09ICRyb290X2lkKXsNCgkJCQkkdGhpcy0+Y3VycmVudF9sYW5nY29kZSA9ICRvbmVsYW5nWyJsYW5nY29kZSJdOw0KCQkJCSR0aGlzLT5jdXJyZW50X2xhbmd1YWdlID0gJG9uZWxhbmc7DQoJCQl9DQoJCX0NCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJwYWdlX2xhbmciLCAkdGhpcy0+Y3VycmVudF9sYW5nY29kZSk7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigiY3VycmVudF9sYW5ndWFnZSIsICR0aGlzLT5jdXJyZW50X2xhbmd1YWdlKTsNCgl9DQoNCglmdW5jdGlvbiBnZXRsYW5ndWFnZXMoJGluYWN0aXZlPWZhbHNlKXsNCgkJaWYoJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXMgPT0gZmFsc2UpCSR0aGlzLT5yZXRyaWV2ZV9sYW5ndWFnZXMoKTsNCgkJcmV0dXJuCSRpbmFjdGl2ZT8kdGhpcy0+YWxsX2xhbmd1YWdlczokdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlczsNCgl9DQoNCglmdW5jdGlvbiByZXRyaWV2ZV9sYW5ndWFnZXMoKXsNCgkJLy8gcmV0cmlldmVzIGxhbmd1YWdlcyBmcm9tIHRoZSBkYXRhYmFzZSBhbmQgc3RvcmUgdGhlbSBpbiB0aGUgbW9kdWxlIG9iamVjdA0KCQkvLyB0byBhdm9pZCBtdWx0aXBsZSByZXRyaWV2YWwsIHVzZSBnZXRsYW5ndWFnZXMoKTsNCgkJJGRiID0gJHRoaXMtPkdldERiKCk7DQoJCSRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfYmFiZWxfbGFuZ3VhZ2VzIE9SREVSIEJZIGl0ZW1fb3JkZXIiOw0KCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsNCgkJJG91dHB1dCA9IGFycmF5KCk7DQoJCSRhbGwgPSBhcnJheSgpOw0KCQl3aGlsZSgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSl7DQoJCQkkYWxsWyRyb3dbImxhbmdjb2RlIl1dID0gJHJvdzsNCgkJCWlmKCRyb3dbImFjdGl2ZSJdKQkkb3V0cHV0WyRyb3dbImxhbmdjb2RlIl1dID0gJHJvdzsNCgkJfQ0KCQkkdGhpcy0+YWxsX2xhbmd1YWdlcyA9ICRhbGw7DQoJCSR0aGlzLT5hdmFpbGFibGVfbGFuZ3VhZ2VzID0gJG91dHB1dDsNCgl9DQoJDQoJZnVuY3Rpb24gYWRtaW5fcmV0cmlldmVfbGFuZ3VhZ2VzKCRpZCwgJHJldHVybmlkKXsNCgkJaWYoZnVuY3Rpb25fZXhpc3RzKCdjbXNtcycpKXsgJGdDbXMgPSBjbXNtcygpOyB9ZWxzZXsgZ2xvYmFsICRnQ21zOwl9DQoJCSRhZG1pbnRoZW1lID0gJGdDbXMtPnZhcmlhYmxlc1siYWRtaW50aGVtZSJdOw0KCQkkZGIgPSAkdGhpcy0+R2V0RGIoKTsNCgkJJGRlZmF1bHRsYW5nID0gJHRoaXMtPkdldFByZWZlcmVuY2UoImRlZmF1bHRfbGFuZ3VhZ2UiLCBmYWxzZSk7DQoJCSRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfYmFiZWxfbGFuZ3VhZ2VzIE9SREVSIEJZIGl0ZW1fb3JkZXIiOw0KCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsNCgkJJG91dHB1dCA9IGFycmF5KCk7DQoJCXdoaWxlKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKXsNCgkJCSRpdGVtID0gbmV3IFN0ZENsYXNzKCk7DQoJCQlmb3JlYWNoKCRyb3cgYXMgJGtleT0+JHZhbHVlKXsNCgkJCQkkaXRlbS0+JGtleSA9ICR2YWx1ZTsNCgkJCX0NCgkJCSRtb3ZlcGFyYW1zID0gYXJyYXkoImxhbmdjb2RlIj0+JGl0ZW0tPmxhbmdjb2RlLCJjdXJyZW50b3JkZXIiPT4kaXRlbS0+aXRlbV9vcmRlcik7DQoJCQkkaXRlbS0+bmFtZWxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICJlZGl0bGFuZyIsICRyZXR1cm5pZCwgJGl0ZW0tPm5hbWUsIGFycmF5KCJsYW5nY29kZSI9PiRpdGVtLT5sYW5nY29kZSkpOw0KCQkJJGl0ZW0tPmNvZGVsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAiZWRpdGxhbmciLCAkcmV0dXJuaWQsICRpdGVtLT5sYW5nY29kZSwgYXJyYXkoImxhbmdjb2RlIj0+JGl0ZW0tPmxhbmdjb2RlKSk7DQoJCQkkaXRlbS0+ZWRpdGVudHJpZXMgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICJlZGl0ZW50cmllcyIsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoImVkaXRfZW50cmllcyIpLCBhcnJheSgibGFuZ2NvZGUiPT4kaXRlbS0+bGFuZ2NvZGUpKTsNCgkJCSRpdGVtLT5kZWxldGVsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAibW92ZXNvbWV0aGluZyIsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgiaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYiLGxhbmcoImRlbGV0ZSIpLCIiLCIiLCJzeXN0ZW1pY29uIiksIGFycmF5X21lcmdlKGFycmF5KCJtb3ZlIj0+ImRlbGV0ZSIpLCRtb3ZlcGFyYW1zKSwgJHRoaXMtPkxhbmcoInByb21wdF9kZWxldGVsYW5ndWFnZSIsIHN0cl9yZXBsYWNlKCInIiwiXCciLCRpdGVtLT5uYW1lKSkpOw0KCQkJJGl0ZW0tPmFjdGlvbnMgPSAkaXRlbS0+ZWRpdGVudHJpZXMuIiAiLiRpdGVtLT5kZWxldGVsaW5rOw0KCQkJJGl0ZW0tPm1vdmV1cGxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICJtb3Zlc29tZXRoaW5nIiwgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCJpY29ucy9zeXN0ZW0vYXJyb3ctdS5naWYiLGxhbmcoInVwIiksIiIsIiIsInN5c3RlbWljb24iKSwgYXJyYXlfbWVyZ2UoYXJyYXkoIm1vdmUiPT4idXAiKSwkbW92ZXBhcmFtcykpOw0KCQkJJGl0ZW0tPm1vdmVkb3dubGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgIm1vdmVzb21ldGhpbmciLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoImljb25zL3N5c3RlbS9hcnJvdy1kLmdpZiIsbGFuZygiZG93biIpLCIiLCIiLCJzeXN0ZW1pY29uIiksIGFycmF5X21lcmdlKGFycmF5KCJtb3ZlIj0+ImRvd24iKSwkbW92ZXBhcmFtcykpOw0KCQkJJGl0ZW0tPm1vdmVsaW5rcyA9ICRpdGVtLT5tb3ZldXBsaW5rIC4iICIuICRpdGVtLT5tb3ZlZG93bmxpbms7DQoJCQlpZigkZGVmYXVsdGxhbmcgPT0gJGl0ZW0tPmxhbmdjb2RlKXsNCgkJCQkkaXRlbS0+dG9nZ2xlZGVmYXVsdCA9ICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoImljb25zL3N5c3RlbS90cnVlLmdpZiIsInRydWUiLCIiLCIiLCJzeXN0ZW1pY29uIik7DQoJCQl9ZWxzZXsNCgkJCQkkaXRlbS0+dG9nZ2xlZGVmYXVsdCA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgInRvZ2dsZWRlZmF1bHQiLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoImljb25zL3N5c3RlbS9mYWxzZS5naWYiLGxhbmcoInNldHRydWUiKSwiIiwiIiwic3lzdGVtaWNvbiIpLCBhcnJheSgibGFuZ2NvZGUiPT4kaXRlbS0+bGFuZ2NvZGUpKTsNCgkJCX0NCgkJCWlmKCRpdGVtLT5hY3RpdmUpew0KCQkJCSRpdGVtLT50b2dnbGVhY3RpdmUgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICJ0b2dnbGVhY3RpdmUiLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoImljb25zL3N5c3RlbS90cnVlLmdpZiIsbGFuZygic2V0ZmFsc2UiKSwiIiwiIiwic3lzdGVtaWNvbiIpLCBhcnJheSgibGFuZ2NvZGUiPT4kaXRlbS0+bGFuZ2NvZGUsICJuZXd2YWwiPT4wKSk7DQoJCQl9ZWxzZXsNCgkJCQkkaXRlbS0+dG9nZ2xlYWN0aXZlID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAidG9nZ2xlYWN0aXZlIiwgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCJpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmIixsYW5nKCJzZXR0cnVlIiksIiIsIiIsInN5c3RlbWljb24iKSwgYXJyYXkoImxhbmdjb2RlIj0+JGl0ZW0tPmxhbmdjb2RlLCAibmV3dmFsIj0+MSkpOw0KCQkJfQ0KCQkJYXJyYXlfcHVzaCgkb3V0cHV0LCAkaXRlbSk7DQoJCX0NCgkJcmV0dXJuICRvdXRwdXQ7DQoJfQ0KCQ0KCWZ1bmN0aW9uIGdldF9sYW5ndWFnZV9kZXRhaWxzKCRsYW5nY29kZSl7DQoJCSRkYiA9ICR0aGlzLT5HZXREYigpOw0KCQkkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2JhYmVsX2xhbmd1YWdlcyBXSEVSRSBsYW5nY29kZT0/IjsNCgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGxhbmdjb2RlKSk7DQoJCWlmKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKXsNCgkJCSRpdGVtID0gbmV3IFN0ZENsYXNzKCk7DQoJCQlmb3JlYWNoKCRyb3cgYXMgJGtleT0+JHZhbHVlKXsNCgkJCQkkaXRlbS0+JGtleSA9ICR2YWx1ZTsNCgkJCX0NCgkJfWVsc2V7DQoJCQkkaXRlbSA9IGZhbHNlOw0KCQl9DQoJCXJldHVybiAkaXRlbTsNCgl9DQoJDQoJZnVuY3Rpb24gcmV0cmlldmVfbGFuZ2VudHJpZXMoKXsNCgkJLy8gcmV0cmlldmVzIHRoZSBsYW5ndWFnZSBlbnRyaWVzIGZvciB0aGUgY3VycmVudCBsYW5ndWFnZQ0KCQlpZighJHRoaXMtPmN1cnJlbnRfbGFuZ3VhZ2UpCSR0aGlzLT5yZXRyaWV2ZV9wYWdlX2xhbmcoKTsNCgkJaWYoISR0aGlzLT5jdXJyZW50X2xhbmd1YWdlKQlyZXR1cm4gZmFsc2U7DQoJCSRkZWZsYW5nID0gJHRoaXMtPkdldFByZWZlcmVuY2UoImRlZmF1bHRfbGFuZ3VhZ2UiLGZhbHNlKTsNCgkJJHBhcnRpYWxfaW1wb3J0ID0gZmFsc2U7DQoJCWlmKCRkZWZsYW5nICYmICRkZWZsYW5nICE9ICR0aGlzLT5jdXJyZW50X2xhbmd1YWdlICYmICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJkZWZhdWx0X3RyYW5zbGF0ZSIsZmFsc2UpKXsNCgkJCS8vIHdoZW4gdGhlIGVudHJ5IGRvZXNuJ3QgZXhpc3QgaW4gdGhlIGN1cnJlbnQgbGFuZ3VhZ2UsIHdlIHVzZSB0aGUgb25lIGZyb20gdGhlIGRlZmF1bHQgbGFuZ3VhZ2UsDQoJCQkvLyBzbyB3ZSBsb2FkIHRoaXMgb25lIGZpcnN0DQoJCQkkcGFydGlhbF9pbXBvcnQgPSB0cnVlOw0KCQkJJHRoaXMtPmN1cnJlbnRfbGFuZ2VudHJpZXMgPSAkdGhpcy0+bG9hZF9sYW5nZW50cmllcygkZGVmbGFuZyk7DQoJCX0NCgkJJGN1cnJlbnRfZW50cmllcyA9ICR0aGlzLT5sb2FkX2xhbmdlbnRyaWVzKCR0aGlzLT5jdXJyZW50X2xhbmdjb2RlKTsNCgkJaWYoJHBhcnRpYWxfaW1wb3J0KXsNCgkJCS8vIHdlJ3ZlIGFscmVhZHkgbG9hZGVkIHRoZSBkZWZhdWx0IGVudHJpZXMsIHNvIHdlIGFkZC9yZXBsYWNlIHRoZSBvbmVzIGZvciB0aGUgY3VycmVudCBsYW5ndWFnZQ0KCQkJZm9yZWFjaCgkY3VycmVudF9lbnRyaWVzIGFzICRrZXk9PiR2YWx1ZSl7DQoJCQkJaWYoJHZhbHVlICYmICR2YWx1ZSAhPSAiIikJJHRoaXMtPmN1cnJlbnRfbGFuZ2VudHJpZXNbJGtleV0gPSAkdmFsdWU7DQoJCQl9DQoJCX1lbHNlew0KCQkJLy8gbm8gbmVlZCBmb3IgZGVmYXVsdCBlbnRyaWVzDQoJCQkkdGhpcy0+Y3VycmVudF9sYW5nZW50cmllcyA9ICRjdXJyZW50X2VudHJpZXM7DQoJCX0NCgl9DQoJDQoJZnVuY3Rpb24gbG9hZF9sYW5nZW50cmllcygkbGFuZyl7DQoJCS8vIHJldHJpZXZlcyBsYW5ndWFnZSBlbnRyaWVzIGZvciBhbnkgbGFuZ3VhZ2UNCgkJaWYoISR0aGlzLT5pc19sYW5ndWFnZSgkbGFuZykpCXJldHVybiBmYWxzZTsNCgkJJGRiID0gJHRoaXMtPkdldERiKCk7DQoJCSRxdWVyeSA9ICJTRUxFQ1QgbGFuZ2tleXMuY2FwdGlvbiBjYXB0aW9uLCBsYW5nZW50cmllcy52YWx1ZSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfYmFiZWxfbGFuZ2tleXMgbGFuZ2tleXMgTEVGVCBKT0lOICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfYmFiZWxfbGFuZ2VudHJpZXMgbGFuZ2VudHJpZXMgT04gbGFuZ2tleXMuc3RyaW5naWQgPSBsYW5nZW50cmllcy5zdHJpbmdpZCBXSEVSRSBsYW5nZW50cmllcy5sYW5nY29kZT0/IjsNCgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkbGFuZykpOw0KCQkkb3V0cHV0ID0gYXJyYXkoKTsNCgkJd2hpbGUoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpew0KCQkJJG91dHB1dFskcm93WyJjYXB0aW9uIl1dID0gJHJvd1sidmFsdWUiXT8kcm93WyJ2YWx1ZSJdOiIiOw0KCQl9DQoJCXJldHVybiAkb3V0cHV0Ow0KCX0NCgkNCglmdW5jdGlvbiBpc19sYW5ndWFnZSgkY29kZSl7DQoJCS8vIHJldHVybnMgdHJ1ZSBpZiAkY29kZSBpcyBhbiBhY3RpdmUgbGFuZ3VhZ2UNCgkJaWYoISR0aGlzLT5hdmFpbGFibGVfbGFuZ3VhZ2VzKQkkdGhpcy0+cmV0cmlldmVfbGFuZ3VhZ2VzKCk7DQoJCWlmKCEkdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlcykJcmV0dXJuIGZhbHNlOw0KCQkkcmVzdWx0ID0gaXNzZXQoJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXNbJGNvZGVdKTsNCgkJaWYoISRyZXN1bHQpIGVjaG8gJGNvZGUuJyBpcyBub3QgYSBsYW5ndWFnZSc7DQoJCXJldHVybiAkcmVzdWx0Ow0KCX0NCgkNCglmdW5jdGlvbiByZXRyaWV2ZV90cmFuc2xhdGlvbigka2V5KXsNCgkJLy8gcmV0dXJucyBzdHJpbmcgY29ycmVzcG9uZGluZyB0byAka2V5IGluIHRoZSBjdXJyZW50IGxhbmd1YWdlDQoJCWlmKCEkdGhpcy0+Y3VycmVudF9sYW5nZW50cmllcykJJHRoaXMtPnJldHJpZXZlX2xhbmdlbnRyaWVzKCk7DQoJCWlmKCEkdGhpcy0+Y3VycmVudF9sYW5nZW50cmllcykJcmV0dXJuIGZhbHNlOw0KCQkka2V5cyA9IGV4cGxvZGUoJywnLCRrZXkpOw0KCQkkb3V0cHV0ID0gYXJyYXkoKTsNCgkJZm9yZWFjaCgka2V5cyBhcyAka2V5KXsNCgkJCWlmKGlzc2V0KCR0aGlzLT5jdXJyZW50X2xhbmdlbnRyaWVzWyRrZXldKSAmJiAgJHRoaXMtPmN1cnJlbnRfbGFuZ2VudHJpZXNbJGtleV0gIT0gIiIpew0KCQkJCWFycmF5X3B1c2goJG91dHB1dCwgJHRoaXMtPmN1cnJlbnRfbGFuZ2VudHJpZXNbJGtleV0pOw0KCQkJfWVsc2VpZighJHRoaXMtPkdldFByZWZlcmVuY2UoImhpZGVfbWlzc2luZ2VudHJpZXMiLGZhbHNlKSl7DQoJCQkJYXJyYXlfcHVzaCgkb3V0cHV0LCAiQWRkIG1lOiAiLiRrZXkuIiAoIi4kdGhpcy0+Y3VycmVudF9sYW5ndWFnZS4iKSIpOw0KCQkJfWVsc2V7DQoJCQkJYXJyYXlfcHVzaCgkb3V0cHV0LCAiIik7DQoJCQl9DQoJCX0NCgkJaWYoY291bnQoJG91dHB1dCk9PTEpCXJldHVybiAkb3V0cHV0WzBdOw0KCQlyZXR1cm4gJG91dHB1dDsNCgl9DQoJDQoJZnVuY3Rpb24gYXNzaWduX3BhZ2VfbGFuZygpew0KCQkvLyBkZXRlY3RzIGN1cnJlbnQgbGFuZ3VhZ2UgYmFzZWQgb24gaGllcmFyY2h5IGFuZCBhc3NpZ24gaXQgdG8gc21hcnR5DQoJCWlmKGZ1bmN0aW9uX2V4aXN0cygnY21zbXMnKSl7ICRnQ21zID0gY21zbXMoKTsgfWVsc2V7IGdsb2JhbCAkZ0NtczsJfQ0KCQkkc21hcnR5ID0mICRnQ21zLT5nZXRTbWFydHkoKTsNCg0KCQkkY29udGVudG9wcyA9ICRnQ21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOw0KCQkkcm9vdF9pZCA9ICRnQ21zLT52YXJpYWJsZXNbJ2NvbnRlbnRfaWQnXTsNCgkJJHRtcGlkID0gJHJvb3RfaWQ7DQoJCXdoaWxlKCAkdG1waWQgPiAwKXsNCgkJCSRyb290X2lkID0gJHRtcGlkOw0KCQkJJGN1cnJlbnROb2RlID0gJGNvbnRlbnRvcHMtPkxvYWRDb250ZW50RnJvbUlkKCR0bXBpZCk7DQoJCQkkdG1waWQgPSAkY3VycmVudE5vZGU/JGN1cnJlbnROb2RlLT5QYXJlbnRJZCgpOi0xOw0KCQl9DQoJCSRsYW5ndWFnZXMgPSAkdGhpcy0+Z2V0bGFuZ3VhZ2VzKCk7DQoJCWZvcmVhY2goJGxhbmd1YWdlcyBhcyAkbGFuZ3VhZ2Upew0KCQkJaWYoJGxhbmd1YWdlWydyb290X2lkJ10gPT0gJHJvb3RfaWQpew0KCQkJCSR0aGlzLT5jdXJyZW50X2xhbmd1YWdlID0gJGxhbmd1YWdlOw0KCQkJCSR0aGlzLT5jdXJyZW50X2xhbmdjb2RlID0gJGxhbmd1YWdlWydsYW5nY29kZSddOw0KCQkJfQ0KCQl9DQoJCWlmKCEkdGhpcy0+Y3VycmVudF9sYW5nY29kZSl7DQoJCQkvLyB0aGFua3MgbmlubyBmb3IgdGhpcyBhZGQNCgkJCSRkZWZsYW5nID0gJHRoaXMtPkdldFByZWZlcmVuY2UoImRlZmF1bHRfbGFuZ3VhZ2UiLCBmYWxzZSk7DQoJCQlpZigkZGVmbGFuZyAmJiBhcnJheV9rZXlfZXhpc3RzKCAkZGVmbGFuZywgJGxhbmd1YWdlcyApICkgew0KCQkJCSR0aGlzLT5jdXJyZW50X2xhbmd1YWdlID0gJGxhbmd1YWdlc1sgJGRlZmxhbmcgXTsNCgkJCQkkdGhpcy0+Y3VycmVudF9sYW5nY29kZSA9ICRkZWZsYW5nOw0KCQkJfQ0KCQl9DQoJCSRzbWFydHktPmFzc2lnbigncGFnZV9sYW5nJywkdGhpcy0+Y3VycmVudF9sYW5nY29kZSk7DQoJCSRzbWFydHktPmFzc2lnbigncGFnZV9sYW5nX2luZm8nLCR0aGlzLT5jdXJyZW50X2xhbmd1YWdlKTsNCgl9DQoJDQoJZnVuY3Rpb24gYXV0b19yZWRpcmVjdCgpew0KCQkvLyByZWRpcmVjdHMgdG8gdGhlIHVzZXIgbGFuZ3VhZ2Ugd2hlbiBhIHVybCBpcyByZXF1ZXN0ZWQNCgkJaWYoZnVuY3Rpb25fZXhpc3RzKCdjbXNtcycpKXsgJGdDbXMgPSBjbXNtcygpOyB9ZWxzZXsgZ2xvYmFsICRnQ21zOwl9DQoJCWlmKCEkdGhpcy0+Y3VycmVudF9sYW5ndWFnZSkJcmV0dXJuIGZhbHNlOw0KCQkkcHJlZl9icm93c2VyX2hvbWUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgiYXV0b3JlZGlyZWN0X2hvbWUiKTsNCgkJJHByZWZfYnJvd3Nlcl9hbGwgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgiYXV0b3JlZGlyZWN0X2FsbCIpOw0KCQkkcHJlZl9jb29raWVfaG9tZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJjb29raWVzX2F1dG9yZWRpcmVjdF9ob21lIik7DQoJCSRwcmVmX2Nvb2tpZV9hbGwgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgiY29va2llc19hdXRvcmVkaXJlY3RfYWxsIik7DQoJCWlmKCEkcHJlZl9jb29raWVfaG9tZSAmJiAhJHByZWZfY29va2llX2FsbCAmJiAhJHByZWZfYnJvd3Nlcl9ob21lICYmICEkcHJlZl9icm93c2VyX2FsbCkJcmV0dXJuIGZhbHNlOw0KCQkkcGFnZWlkID0gJGdDbXMtPnZhcmlhYmxlc1snY29udGVudF9pZCddOw0KCQkkbGFuZ3VhZ2VzID0gJHRoaXMtPmdldGxhbmd1YWdlcygpOw0KCQkkaXNfaG9tZXBhZ2UgPSBmYWxzZTsNCgkJJGxhbmdjb2RlcyA9IGFycmF5KCk7DQoJCSR0cnVuY2F0ZWQgPSBhcnJheSgpOw0KCQlmb3JlYWNoKCRsYW5ndWFnZXMgYXMgJGxhbmd1YWdlKXsNCgkJCWFycmF5X3B1c2goJGxhbmdjb2RlcywkbGFuZ3VhZ2VbJ2xhbmdjb2RlJ10pOw0KCQkJJHRydW5jYXRlZFtzdWJzdHIoJGxhbmd1YWdlWydsYW5nY29kZSddLDAsMildID0gJGxhbmd1YWdlWydsYW5nY29kZSddOw0KCQkJaWYoJGxhbmd1YWdlWydkZWZhdWx0X2lkJ10gPT0gJHBhZ2VpZCkJJGlzX2hvbWVwYWdlID0gdHJ1ZTsNCgkJfQ0KCQkkY29va2llID0gKCRpc19ob21lcGFnZSAmJiAkcHJlZl9jb29raWVfaG9tZSkgfHwgJHByZWZfY29va2llX2FsbDsNCgkJJGJyb3dzZXIgPSAoJGlzX2hvbWVwYWdlICYmICRwcmVmX2Jyb3dzZXJfaG9tZSkgfHwgJHByZWZfYnJvd3Nlcl9hbGw7DQoJCWlmKCEkY29va2llICYmICEkYnJvd3NlcikJcmV0dXJuIGZhbHNlOw0KDQoJCS8vIHJldHJpZXZlIHVzZXIgbGFuZ3VhZ2UgOg0KCQkkdXNybGFuZyA9IGZhbHNlOw0KCQlpZihpc3NldCgkX0NPT0tJRVsndXNybGFuZyddKSAmJiAkY29va2llICYmIGluX2FycmF5KCRfQ09PS0lFWyd1c3JsYW5nJ10sICRsYW5nY29kZXMpKXsNCgkJCSR1c3JsYW5nID0gJF9DT09LSUVbJ3VzcmxhbmcnXTsNCgkJfWVsc2VpZigkYnJvd3Nlcil7CQkJDQoJCQkkbGFuZ3VhZ2VzID0gc3RydG9sb3dlciggJF9TRVJWRVJbIkhUVFBfQUNDRVBUX0xBTkdVQUdFIl0gKTsNCgkJCSRsYW5ndWFnZXMgPSBzdHJfcmVwbGFjZSggJyAnLCAnJywgJGxhbmd1YWdlcyApOw0KCQkJJGxhbmd1YWdlcyA9IGV4cGxvZGUoICIsIiwgJGxhbmd1YWdlcyApOw0KCQkJJGxhbmd1YWdlID0gc3Vic3RyKCAkbGFuZ3VhZ2VzWzBdLCAwLCAyICk7DQoJCQlpZihpc3NldCgkdHJ1bmNhdGVkWyRsYW5ndWFnZV0pKQkkdXNybGFuZyA9ICR0cnVuY2F0ZWRbJGxhbmd1YWdlXTsNCgkJfQ0KDQoJCWlmKCR1c3JsYW5nICYmICgkcHJlZl9jb29raWVfYWxsIHx8ICRwcmVmX2Nvb2tpZV9ob21lKSApCXNldGNvb2tpZSgndXNybGFuZycsJHVzcmxhbmcsdGltZSgpKzg2NDAwKjM2NSwnLycpOw0KDQoJCWlmKCR1c3JsYW5nICYmICR1c3JsYW5nICE9ICR0aGlzLT5jdXJyZW50X2xhbmdjb2RlKXsNCgkJCSRkZXN0cGFnZSA9ICR0aGlzLT5nZXRfdXJscygkdXNybGFuZyk7DQoJCQlpZihpc3NldCgkZGVzdHBhZ2VbJHVzcmxhbmddKSkJaGVhZGVyKCJsb2NhdGlvbjogIi4kZGVzdHBhZ2VbJHVzcmxhbmddWyd1cmwnXS4kZ0Ntcy0+Y29uZmlnWydwYWdlX2V4dGVuc2lvbiddKTsNCgkJfQkJDQoJfQ0KCQ0KCWZ1bmN0aW9uIGdldF91cmxzKCRkZXNpcmVkX2xhbmc9ZmFsc2Upew0KCQlpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaGllcmFyY2h5X3JlZGlyZWN0Jyx0cnVlKSl7DQoJCQlyZXR1cm4gJHRoaXMtPmhpZXJhcmNoeV9nZXRfbGlua3MoJGRlc2lyZWRfbGFuZyk7DQoJCX1lbHNlew0KCQkJcmV0dXJuICR0aGlzLT5tYW51YWxfZ2V0X2xpbmtzKCRkZXNpcmVkX2xhbmcpOw0KCQl9DQoJfQ0KCQ0KCWZ1bmN0aW9uIGNsZWFuSGllcigkdmFsdWUpew0KCQkkcGFydHMgPSBleHBsb2RlKCcuJywkdmFsdWUpOw0KCQkkaSA9IDA7DQoJCXdoaWxlKGlzc2V0KCRwYXJ0c1skaV0pKXsNCgkJCSRwYXJ0c1skaV0gPSBzdHJfcGFkKCRwYXJ0c1skaV0sIDUsICIwIiwgU1RSX1BBRF9MRUZUKTsNCgkJCSRpKys7DQoJCX0NCgkJcmV0dXJuIGltcGxvZGUoJy4nLCRwYXJ0cyk7DQoJfQ0KCQ0KCWZ1bmN0aW9uIGhpZXJhcmNoeV9nZXRfbGlua3MoJGRlc2lyZWRfbGFuZz1mYWxzZSl7DQoJCS8vIHJldHJpZXZlcyB0aGUgdXJsIHRvIHRoZSBwYWdlIGluIHRoZSBkZXNpcmVkIGxhbmd1YWdlKHMpIGVxdWl2YWxlbnQgdG8gdGhlIGN1cnJlbnQgcGFnZSwNCgkJLy8gYmFzZWQgb24gaGllcmFyY2h5DQoJCS8vIGlmICRkZXNpcmVkX2xhbmcgaXMgZmFsc2UsIGxpbmtzIGZvciBhbGwgYWN0aXZlIGxhbmd1YWdlcyB3aWxsIGJlIHJldHVybmVkDQoJCWlmKCEkdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlcyB8fCBjb3VudCgkdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlcykgPT0gMCkJcmV0dXJuIGZhbHNlOw0KCQlpZihmdW5jdGlvbl9leGlzdHMoJ2Ntc21zJykpeyAkZ0NtcyA9IGNtc21zKCk7IH1lbHNleyBnbG9iYWwgJGdDbXM7CX0NCgkJJGRiID0gJHRoaXMtPkdldERiKCk7DQoJCSRiYXNlX3VybCA9ICR0aGlzLT5nZXRfYmFzZV91cmwoKTsNCgkJJGRlZmF1bHRfaGlkZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X2hpZGUnLCBmYWxzZSk7DQoJCWlmKCRkZXNpcmVkX2xhbmcgJiYgaXNzZXQoJHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXNbJGRlc2lyZWRfbGFuZ10pKXsNCgkJCSRsYW5ncyA9IGFycmF5KCRkZXNpcmVkX2xhbmc9PiR0aGlzLT5hdmFpbGFibGVfbGFuZ3VhZ2VzWyRkZXNpcmVkX2xhbmddKTsNCgkJfWVsc2V7DQoJCQkkbGFuZ3MgPSAkdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlczsNCgkJfQ0KCQkkbW9kdWxlX2xpbmtzID0gJHRoaXMtPm1vZHVsZV9nZXRfdXJsKCk7DQoJCWlmKGNvdW50KCRtb2R1bGVfbGlua3MpID09IGNvdW50KCRsYW5ncykgJiYgaXNzZXQoJG1vZHVsZV9saW5rc1skbGFuZ1swXVsnbGFuZ2NvZGUnXV0pKQlyZXR1cm4gJG1vZHVsZV9saW5rczsNCgkJJGN1cnJlbnRfcG9zaXRpb24gPSBleHBsb2RlKCcuJywgJGdDbXMtPnZhcmlhYmxlc1sncG9zaXRpb24nXSk7DQoJCSRvdXRwdXQgPSBhcnJheSgpOw0KCQkkcm9vdGlkcyA9IGFycmF5KCk7DQoJCSRoaWVyYXJjaGllcyA9IGFycmF5KCk7DQoJCSR3aGVyZSA9ICIiOw0KCQkkcXVlcnlfdmFsdWVzID0gYXJyYXkoKTsNCgkJJGRlZmF1bHRfcGF0aHMgPSBhcnJheSgpOw0KCQlmb3JlYWNoKCRsYW5ncyBhcyAkb25lbGFuZyl7DQoJCQkkb3V0cHV0WyRvbmVsYW5nWydsYW5nY29kZSddXSA9IGFycmF5KCdtZW51X3RleHQnPT4iIiwgJ25hbWUnPT4iIiwgJ3VybCc9PiIiKTsNCgkJCSRyb290aWRzWyRvbmVsYW5nWydyb290X2lkJ11dID0gJG9uZWxhbmdbJ2xhbmdjb2RlJ107DQoJCQkkd2hlcmUgLj0gKCR3aGVyZSA9PSAiIj8iIjoiIE9SICIpLiJjb250ZW50X2lkPT8iOw0KCQkJYXJyYXlfcHVzaCgkcXVlcnlfdmFsdWVzLCAkb25lbGFuZ1sncm9vdF9pZCddKTsNCgkJfQ0KCQkkcXVlcnkgPSAiU0VMRUNUIGNvbnRlbnRfbmFtZSwgbWVudV90ZXh0LCBjb250ZW50X2lkLCBoaWVyYXJjaHksIGhpZXJhcmNoeV9wYXRoIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKS4iY29udGVudCBXSEVSRSAoIi4kd2hlcmUuIikiOw0KCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCAkcXVlcnlfdmFsdWVzKTsNCgkJJHF1ZXJ5X3ZhbHVlcyA9IGFycmF5KCk7DQoJCSR3aGVyZSA9ICIiOw0KCQkkbmV3cGF0aHMgPSBhcnJheSgpOw0KCQl3aGlsZSgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSl7DQoJCQkkcG9zaXRpb24gPSBleHBsb2RlKCcuJywkcm93WydoaWVyYXJjaHknXSk7DQoJCQkkbmV3cG9zaXRpb24gPSAkY3VycmVudF9wb3NpdGlvbjsNCgkJCSRuZXdwb3NpdGlvblswXSA9ICRwb3NpdGlvblswXTsNCgkJCSRuZXdfaGllcmFyY2h5ID0gJHRoaXMtPmNsZWFuSGllcihpbXBsb2RlKCcuJywkbmV3cG9zaXRpb24pKTsNCgkJCSRoaWVyYXJjaGllc1skcm9vdGlkc1skcm93Wydjb250ZW50X2lkJ11dXSA9ICRuZXdfaGllcmFyY2h5Ow0KCQkJYXJyYXlfcHVzaCgkcXVlcnlfdmFsdWVzLCRuZXdfaGllcmFyY2h5KTsNCgkJCSRuZXdwYXRoc1skbmV3X2hpZXJhcmNoeV0gPSAkcm9vdGlkc1skcm93Wydjb250ZW50X2lkJ11dOw0KCQkJJGRlZmF1bHRfcGF0aHNbJHJvb3RpZHNbJHJvd1snY29udGVudF9pZCddXV0gPSBhcnJheSgidXJsIj0+JGJhc2VfdXJsLiRyb3dbImhpZXJhcmNoeV9wYXRoIl0sICJuYW1lIj0+JHJvd1siY29udGVudF9uYW1lIl0sICJtZW51X3RleHQiPT4kcm93WyJtZW51X3RleHQiXSk7DQoJCQkkd2hlcmUgLj0gKCR3aGVyZSA9PSAiIj8iIjoiIE9SICIpLiJoaWVyYXJjaHk9PyI7DQoJCX0NCgkJJHF1ZXJ5ID0gIlNFTEVDVCBjb250ZW50X2lkLCBjb250ZW50X25hbWUsIG1lbnVfdGV4dCwgaGllcmFyY2h5LCBoaWVyYXJjaHlfcGF0aCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJjb250ZW50IFdIRVJFICgiLiR3aGVyZS4iKSI7DQoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksICRxdWVyeV92YWx1ZXMpOw0KCQkkcmVkaXJlY3Rpb24gPSAkdGhpcy0+Z2V0X3VybHR5cGUoKTsNCgkJd2hpbGUoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpew0KCQkJaWYoJHJlZGlyZWN0aW9uID09ICdpbnRlcm5hbCcgfHwgJHJlZGlyZWN0aW9uID09ICdtb2RfcmV3cml0ZScpew0KCQkJCSR1cmwgPSAkYmFzZV91cmwuJHJvd1snaGllcmFyY2h5X3BhdGgnXTsNCgkJCX1lbHNlew0KCQkJCSRwYXRocGFydHMgPSBleHBsb2RlKCcvJywkcm93WydoaWVyYXJjaHlfcGF0aCddKTsNCgkJCQkkdXJsID0gJGJhc2VfdXJsLiRwYXRocGFydHNbY291bnQoJHBhdGhwYXJ0cyktMV07DQoJCQl9DQoJCQkkb3V0cHV0WyRuZXdwYXRoc1skcm93WyJoaWVyYXJjaHkiXV1dID0gYXJyYXkoInVybCI9PiR1cmwsICJuYW1lIj0+JHJvd1siY29udGVudF9uYW1lIl0sICJtZW51X3RleHQiPT4kcm93WyJtZW51X3RleHQiXSk7DQoJCX0NCgkJJGZpbmFsID0gYXJyYXkoKTsNCgkJZm9yZWFjaCgkb3V0cHV0IGFzICRsYW5nPT4kdmFsdWUpew0KCQkJaWYoaXNzZXQoJG1vZHVsZV9saW5rc1skbGFuZ10pKXsNCgkJCQkkdmFsdWVbInVybCJdID0gJG1vZHVsZV9saW5rc1skbGFuZ11bInVybCJdOw0KCQkJCSR2YWx1ZVsibmFtZSJdID0gJG1vZHVsZV9saW5rc1skbGFuZ11bIm5hbWUiXTsNCgkJCX0NCgkJCWlmKCR2YWx1ZVsidXJsIl0gPT0gIiIgJiYgJGRlZmF1bHRfaGlkZSl7DQoJCQl9ZWxzZWlmKCR2YWx1ZVsidXJsIl0gPT0gIiIpew0KCQkJCSRmaW5hbFskbGFuZ10gPSAkZGVmYXVsdF9wYXRoc1skbGFuZ107DQoJCQl9ZWxzZXsNCgkJCQkkZmluYWxbJGxhbmddID0gJHZhbHVlOw0KCQkJfQ0KCQl9DQoJCXJldHVybiAkZmluYWw7DQoJfQ0KCQ0KCQ0KCWZ1bmN0aW9uIG1hbnVhbF9nZXRfbGlua3MoJGRlc2lyZWRfbGFuZz1mYWxzZSl7DQoJCS8vIHJldHJpZXZlcyB0aGUgdXJsIHRvIHRoZSBwYWdlIGluIHRoZSBkZXNpcmVkIGxhbmd1YWdlKHMpIGVxdWl2YWxlbnQgdG8gdGhlIGN1cnJlbnQgcGFnZSwNCgkJLy8gYmFzZWQgb24gTWFyY29zIENydXogbWFudWFsIHByb2NlZHVyZSAoc2VlIGhlbHApDQoJCS8vIGlmICRkZXNpcmVkX2xhbmcgaXMgZmFsc2UsIGxpbmtzIGZvciBhbGwgYWN0aXZlIGxhbmd1YWdlcyB3aWxsIGJlIHJldHVybmVkDQoJCWlmKCEkdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlcyB8fCBjb3VudCgkdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlcykgPT0gMCkJcmV0dXJuIGZhbHNlOw0KCQlpZihmdW5jdGlvbl9leGlzdHMoJ2Ntc21zJykpeyAkZ0NtcyA9IGNtc21zKCk7IH1lbHNleyBnbG9iYWwgJGdDbXM7CX0NCgkJJGRiID0gJHRoaXMtPkdldERiKCk7DQoJCSRiYXNlX3VybCA9ICR0aGlzLT5nZXRfYmFzZV91cmwoKTsNCgkJaWYoJGRlc2lyZWRfbGFuZyAmJiBpc3NldCgkdGhpcy0+YXZhaWxhYmxlX2xhbmd1YWdlc1skZGVzaXJlZF9sYW5nXSkpew0KCQkJJGxhbmdzID0gYXJyYXkoJGRlc2lyZWRfbGFuZz0+JHRoaXMtPmF2YWlsYWJsZV9sYW5ndWFnZXNbJGRlc2lyZWRfbGFuZ10pOw0KCQl9ZWxzZXsNCgkJCSRsYW5ncyA9ICR0aGlzLT5hdmFpbGFibGVfbGFuZ3VhZ2VzOw0KCQl9DQoJCSRtb2R1bGVfbGlua3MgPSAkdGhpcy0+bW9kdWxlX2dldF91cmwoKTsNCgkJaWYoY291bnQoJG1vZHVsZV9saW5rcykgPT0gY291bnQoJGxhbmdzKSAmJiBpc3NldCgkbW9kdWxlX2xpbmtzWyRsYW5nWzBdWydsYW5nY29kZSddXSkpCXJldHVybiAkbW9kdWxlX2xpbmtzOw0KCQkkb3V0cHV0ID0gYXJyYXkoKTsNCgkJZm9yZWFjaCgkbGFuZ3MgYXMgJG9uZWxhbmcpew0KCQkJJG91dHB1dFskb25lbGFuZ1snbGFuZ2NvZGUnXV0gPSBmYWxzZTsNCgkJfQ0KCQkkYnRuX3RleHQgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgidXNlX3BhZ2VfdGl0bGUiLGZhbHNlKT8iIjokbmV3bGFuZ1snbWVudV9uYW1lJ107DQoNCgkJLy8gd2UgcmV0cmlldmUgdGhlIGFsdGVybmF0aXZlcyBmcm9tIHRoZSBjb250ZW50IGJsb2NrDQoJCSRvdGhlcl9sYW5ndWFnZXMgPSAkZ0Ntcy0+c21hcnR5LT5nZXRfdGVtcGxhdGVfdmFycygnb3RoZXJfbGFuZ3VhZ2VzJyk7DQoJCSRhbHRlcm5hdGl2ZXMgPSBhcnJheSgpOw0KCQkkd2hlcmV2YWx1ZXMgPSBhcnJheSgpOw0KCQkkd2hlcmUgPSAiIjsNCgkJZm9yZWFjaCAoIGV4cGxvZGUoJzsnLCAkb3RoZXJfbGFuZ3VhZ2VzKSBhcyAkb25lbGFuZyApew0KCQkJJHBhcnRzID0gZXhwbG9kZSgnPScsJG9uZWxhbmcpOw0KCQkJaWYoY291bnQoJHBhcnRzKT09Mil7DQoJCQkJJHdoZXJlIC49ICgkd2hlcmU9PSIiPyIiOiIgT1IgIikuImNvbnRlbnRfYWxpYXM9PyI7DQoJCQkJJGFsdGVybmF0aXZlc1skcGFydHNbMV1dID0gJHBhcnRzWzBdOw0KCQkJCWFycmF5X3B1c2goJHdoZXJldmFsdWVzLCAkcGFydHNbMV0pOw0KCQkJfQ0KCQl9DQoJCSRxdWVyeSA9ICJTRUxFQ1QgbWVudV90ZXh0LCBjb250ZW50X25hbWUsIGNvbnRlbnRfYWxpYXMsIGhpZXJhcmNoeV9wYXRoIEZST00gIi5jbXNfZGJfcHJlZml4KCkuImNvbnRlbnQgV0hFUkUgKCIuJHdoZXJlLiIpIjsNCgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgJHdoZXJldmFsdWVzKTsNCgkJd2hpbGUoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpew0KCQkJJG91dHB1dFskYWx0ZXJuYXRpdmVzWyRyb3dbImNvbnRlbnRfYWxpYXMiXV1dID0gYXJyYXkoInVybCI9PiRiYXNlX3VybC4kcm93WyJoaWVyYXJjaHlfcGF0aCJdLCAibmFtZSI9PiRyb3dbImNvbnRlbnRfbmFtZSJdLCAibWVudV90ZXh0Ij0+JHJvd1sibWVudV90ZXh0Il0pOw0KCQl9DQoJCWlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X2hpZGUnLCBmYWxzZSkpCXJldHVybiAkb3V0cHV0Ow0KDQoJCS8vIHdlIGNoZWNrIGZvciBkZWZhdWx0IGFsdGVybmF0aXZlcw0KCQkkd2hlcmUgPSAiIjsNCgkJJHdoZXJldmFsdWVzID0gYXJyYXkoKTsNCgkJJGlkdG9sYW5nID0gYXJyYXkoKTsNCgkJZm9yZWFjaCgkb3V0cHV0IGFzICRsYW5nPT4kcGF0aCl7DQoJCQlpZighJHBhdGgpew0KCQkJCSR3aGVyZSAuPSAoJHdoZXJlPT0iIj8iIjoiIE9SICIpLiJjb250ZW50X2lkPT8iOw0KCQkJCWFycmF5X3B1c2goJHdoZXJldmFsdWVzLCAkbGFuZ3NbJGxhbmddWydkZWZhdWx0X2lkJ10pOw0KCQkJCSRpZHRvbGFuZ1skbGFuZ3NbJGxhbmddWydkZWZhdWx0X2lkJ11dID0gJGxhbmc7DQoJCQl9DQoJCX0NCgkJaWYoJHdoZXJlID09ICIiKQlyZXR1cm4gJG91dHB1dDsNCgkJDQoJCSRxdWVyeSA9ICJTRUxFQ1QgbWVudV90ZXh0LCBjb250ZW50X25hbWUsIGNvbnRlbnRfaWQsIGhpZXJhcmNoeSwgaGllcmFyY2h5X3BhdGggRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpLiJjb250ZW50IFdIRVJFICgiLiR3aGVyZS4iKSI7DQoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksICR3aGVyZXZhbHVlcyk7DQoJCXdoaWxlKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKXsNCgkJCSRvdXRwdXRbJGlkdG9sYW5nWyRyb3dbImNvbnRlbnRfaWQiXV1dID0gYXJyYXkoInVybCI9PiRiYXNlX3VybC4kcm93WyJoaWVyYXJjaHlfcGF0aCJdLCAibmFtZSI9PiRyb3dbImNvbnRlbnRfbmFtZSJdLCAibWVudV90ZXh0Ij0+JHJvd1sibWVudV90ZXh0Il0pOw0KCQl9DQoJCXJldHVybiAkb3V0cHV0Ow0KCX0NCg0KCWZ1bmN0aW9uIGdldF91cmx0eXBlKCl7DQoJCWlmKGZ1bmN0aW9uX2V4aXN0cygnY21zbXMnKSl7ICRnQ21zID0gY21zbXMoKTsgfWVsc2V7IGdsb2JhbCAkZ0NtczsJfQ0KCQkkcmVkaXJlY3Rpb24gPSBmYWxzZTsNCgkJaWYoaXNzZXQoJGdDbXMtPmNvbmZpZ1sidXJsX3Jld3JpdGluZyJdKSl7DQoJCQkvLyBjb3JlIDEuNiBvciBtb3JlDQoJCQkkcmVkaXJlY3Rpb24gPSAkZ0Ntcy0+Y29uZmlnWyJ1cmxfcmV3cml0aW5nIl07DQoJCX1lbHNlew0KCQkJLy8gY29yZSBiZWxvdyAxLjYNCgkJCWlmKCRnQ21zLT5jb25maWdbImFzc3VtZV9tb2RfcmV3cml0ZSJdKXsNCgkJCQkkcmVkaXJlY3Rpb24gPSAibW9kX3Jld3JpdGUiOw0KCQkJfWVsc2VpZighJGdDbXMtPmNvbmZpZ1siYXNzdW1lX21vZF9yZXdyaXRlIl0gJiYgJGdDbXMtPmNvbmZpZ1siaW50ZXJuYWxfcHJldHR5X3VybHMiXSl7DQoJCQkJJHJlZGlyZWN0aW9uID0gImludGVybmFsIjsNCgkJCX0NCgkJfQkJDQoJCXJldHVybiAkcmVkaXJlY3Rpb247DQoJfQ0KDQoJZnVuY3Rpb24gZ2V0X2Jhc2VfdXJsKCl7DQoJCWlmKGZ1bmN0aW9uX2V4aXN0cygnY21zbXMnKSl7ICRnQ21zID0gY21zbXMoKTsgfWVsc2V7IGdsb2JhbCAkZ0NtczsJfQ0KCQkkcmVkaXJlY3Rpb24gPSAkdGhpcy0+Z2V0X3VybHR5cGUoKTsNCgkJJGJhc2V1cmwgPSAkZ0Ntcy0+Y29uZmlnWydyb290X3VybCddOw0KCQlpZigkcmVkaXJlY3Rpb24gPT0gIm1vZF9yZXdyaXRlIil7DQoJCQkkYmFzZXVybCAuPSAnLyc7DQoJCX1lbHNlaWYoJHJlZGlyZWN0aW9uID09ICJpbnRlcm5hbCIpew0KCQkJJGJhc2V1cmwgLj0gJy9pbmRleC5waHAvJzsNCgkJfWVsc2V7DQoJCQkkYmFzZXVybCAuPSAnL2luZGV4LnBocD8nLiRnQ21zLT5jb25maWdbJ3F1ZXJ5X3ZhciddLic9JzsNCgkJfQ0KCQlyZXR1cm4gJGJhc2V1cmw7DQoJfQ0KCQ0KCWZ1bmN0aW9uIG1vZHVsZV9nZXRfdXJsKCl7DQoJCXJldHVybiBhcnJheSgpOw0KCQkvLyBldmVudHVhbGx5LCBzb21lIGN1c3RvbSBjb2RlIGhlcmUgY2FuIGNoZWNrIGlmIHdlIGFyZSBpbiBhIG1vZHVsZSBhY3Rpb24NCgkJLy8gYW5kIHJldHJpZXZlIGxhbmd1YWdlIGxpbmtzIGZyb20gdGhlIG1vZHVsZQ0KCX0NCgkNCn0NCg0K]]></data>
	</file>
	<file>
	  <filename>/changelog.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[VkVSU0lPTiAwLjQuMQotIG1pbm9yIGNoYW5nZXMgdG8gZW5zdXJlIGNvbXBhdGliaWxpdHkgd2l0aCBjbXNtczEuMTAKClZFUlNJT04gMC40Ci0gYWRkZWQgY29tcGF0aWJpbGl0eSB3aXRoIGNtc21zIDEuOSsKLSBzb2x2ZWQgYXNzaWduIGJ1ZyAoIzUzODYpCi0gcG9zc2liaWxpdHkgdG8gZGVsZXRlIGxhbmd1YWdlIGVudHJpZXMgKGJ1ZyAjNDc1OCkKLSBhZGRlZCBGUiAjNTM4NQoKVkVSU0lPTiAwLjMuNAotIHNvbHZlZCBidWdzICM0MTcwLCM0MTg3LCM0MTg4LCM0MTg5LCM0MjA2CgpWRVJTSU9OIDAuMy4zOgotIHNvbHZlZCB0aGUgYmxhbmsgcGFnZSBwcm9ibGVtIGluIHJlZGlyZWN0LnBocAoKVkVSU0lPTiAwLjMuMjoKLSBzb2x2ZWQgYnVncyAjMzk5MyBhbmQgIzM5OTQgKFRoYW5rcyB0byBKYW4gV2FsZGVjaykKLSBhZGRlZCBmcmVuY2ggbGFuZ3VhZ2UgZmlsZXMKClZFUlNJT04gMC4zLjE6Ci0gc29sdmVkIGJ1ZyAjMzk1OSAoaHR0cCA0MDQgZXJyb3Igb24gcmVkaXJlY3Rpb24pIC0gVGhhbmtzIHRvIFl1bmcKClZFUlNJT04gMC4zOgotIGNoYW5nZWQgdGhlIGNvZGUgdG8gbWluaW1pemUgdGhlIGFtb3VudCBvZiBxdWVyaWVzCi0gcmVwbGFjZWQgbGlua3Mgd2l0aCB1cmxzCgpWRVJTSU9OIDAuMjogZmlyc3QgcHVibGljIHZlcnNpb24K]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhMAAwAOeOAAAAADo6Oj09PT8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL6+vr+/v8DAwMHBwcLCwsTExMXFxcfHx8vLy83NzdDQ0NPT09fX1////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH+EUNyZWF0ZWQgd2l0aCBHSU1QACH5BAEKAP8ALAAAAAAwADAAAAj+AMeUUXMGipAfPIYI8bFDx44fQGawYOHiRIoTJVKoSFGCxQwZMGTIiDFSBo0ZIUfGiPHiBZcvY+DAkXIEiY4eQIQAyQFRRwsUJz6IIGHiRNETKly4WKG0hYwXNmzQoEGyKkssXp4wUaIFjpksUZLs6IHDhg4WJVSsaNFiRQoUF1ewaKECxYoZO2romCFVxpAjQYL0uDEDTR0zU5pgOYPGCxcvNHncoGEixVuNP1G0gAGD5Yq6NoD88KGjRo0YOYIY+TvEBpoya7I8wWLGzZbbX7hw+WFDhVGkGlFQVEqSBowWNgLzAFKjhw6TPIQMMRKEjBgwYcyQccMmTh07drT+dLnSg4aMGjPotrDM4oVSvT168DDCBYkRJESKEDlShId8IdaBIUYYYaQBhhpirHGHGFlIgQMNN9yQwwwvxDBVDBc5VYMNPgSBBBhdZGHFE07wB0RgQQhRxhcCguFFFliU4cUZdFihxRNA9FBGGVnUQEMLSsFQQw44tPCCDD78MEQXYHyxhRa5ddEFdTmFQUYXXmzxRBJNSFGFFV50wQUWXWChBFdUjNEDDE21wNILGgJBxhhjgGGnnV1YUQUURUyRpRVXNLEEE1TAmEUWW0zBRBNFFMGllizI1QJF7bkQQ4RTkFFGGCyCoYUWV1RBRZdWTLHEEmdylQUXIkZRhBD++qmmnxAuaKaCWm3CMMOHZIThRW5bjBnqFElUEYUTTzSBhH5baWFFE8j+YEQROtjwVA4nwTBXCi5E6gIMPmzhBYFhcKGFF796YYURTSSBxBJHDIEfQjolsYQTSTARAw8s2EXXtyvJkAIJKaywAg1abAqGblisyuoVqFInhH1FKAQrDkKkaoQPQBCMggkUwfCCD5vB4JsKMUgxxoBiZKkFF1hqMQUUXUYhBRVSKLHEFErYMNFEJ4zQkQkZrcBmyd++wOYLLChhRhramdvFF190AUUUV0cxRRVYXIFFGFYUEQNwJhC1UcFszTBDt0bG0MINpgFxRRlkpJGGjHWDQYX+zVBQ8SUVWoz60hRIwCDCCSegcOtGbZmgAgw0AFEEDjIsm5MRSjQBBRhrSPFFGnBkEeKqXWgBYxNKXJ1FE1gD0Z5vIlRAQQUXgIDCByaEUMMNNnwwggtNHFTEfRz7QIQYYnBhZZinMyHFE3s3MYUWWOgAxA0lcMBBBhFAgMEFGGjgwfgggFACGmqYsQUYaGgRxRJDrIEdGGN058UVT1QxBRWFXiGmiPq7QQc0kAHxhcADFpBABCSwgQ6AwARrQAOdvICdMIihC2mggxvg0AYviEEPfOjDH+JwqC10QQxfIBNkoJCEKVxhCDkYgQY2wIENEFADE7BAGLizhjPMaQz+TDKDGt5gBjqFgQ118MMc+mCHJwAGBz7IQQ+E0AQagEAFPGBaBy5gAS5awAIaACMLhMC5NdytDChUwxjO0CQvkMEMb9iDH9jQBynIEAMWoIAEMMCBCTCAARVogAMoQIEHWOABEQDj7CoAAiSg725mWNERkmCF9WlBCVKo5BissIQZETFZOIBABihwgQlAoAIVyGMEurdABuRxAhwgAhrOUIaV1QkISPASFYYQBFRJgUxaIcMbwGAGCirBAwlggAMmgAEMZKCLEnAABCZAgQRKQANDgNpreiUGjhFhNWMBwiShEKInTHALYSjDGUBlgtkpEwIWCAEHLJBKDMiOAhv+2AEZzsAY7aBhNDqAmw50EIQMoOAGRBhLD77ZBCY4IQp7SxZgVBCCD2jgAg6QZiozgIENxGANbFiDG9oA0iAM4QejQcITpBABDHzgBTjIERBukgMg7EcJKEXIckDQQI5awJQRqEAHXLAjH9KtDEA4keT8p4UIcJGPJegBEoYwhB6kSAhCIIIQVDMEIvAgBzXIQAYusAF7SgACIRiDENHwGhR2gUBo7MIYFgABCdCTdhOoQAQ6QIMVaICPz7yAB1AQxSJ9YAJj/WleO2ADJqSBDKwCg3XQwAbukOEBEtCrXmd3AfBNIAKzk0BeG9iBD3BAA9xqQQcakFlCYsADrhH+CBhqeYUvsAEHIxiBAxqgAAc8oAEPMOQG6EnKCTyAlOHjQAc2cAE9MnOPE2jABMAXA+6kYQ1QyNwTrnBRxU7grBJYpGLvCQEINAABDAhucBeISgpM1wIYOC4ItBOGMURBczazwCofkNdUwpeAz3Sm9vjIge9VAAJ/RIABEJBX5GpgdiNwERfEMLMnIKEGFXBA9wDJUdqNtaOdhW/tQhCCBpaVAhB4wAIQgAAFgE+xHciCY8QgBS/BAAQgbq4FmLtjGm5ArATsYgcyUOAZ/rWLFuhABzyAAQcc4AAO2MB9QoUFKjhBBgO8QAXE2sy/dqCGF82Ajy3ggQ58L3wX3XL+R/8qZgwwoAAE+EEQzpSFKQhhBIf1qQXG2tkbfo8CHiiwYD9Q1gsAOXyl1J4N8+jMESTEoVGQXQT+2IAGJEABByBAiysd3MyGIIwZqIAGwpgCD/x41KVdbgFJOUAPuGANS3jCKTfwAQ+EWoHKRGQEHmDeBSjAAinIaEtrqIQLaG+5vgOBCAJt6CFz4ARjmAEQMHsBDSxXezU8rYm/F0YFWIEBCmBAAhzAAC544AMfkOcIQqDsMmughjQUQRU+/eLTvhufHGByR8s8vncfQAczHAEKNqCG0z4gAQugAAfwTGjTlm/JRSjrdy8wZLGmcrofkEAGal1aG1LgDDcQQL/0LjAEEoBgBCT4tAQWkOQll7bWHmCCBMKbQw40F8hlBUFnQ6DkEi95A4hQQBBC0IIlsHvduCtBCTIwyI4KbQQgOAIBFqDAJB971DRkNwk8kNsSlHnJD0DBF9QACMMNcANcD4EIlG5ym5N1AzQggAGe3FsFvn3J5UOBCEZAtBEomQQdSOshFrEDEJi2hiSuqNIdSAJCY6ADsrN5ASBwAAMMQAHhZoBdO/qBxpcAzyU4wQSYYAhFpMEDIBgfrcvHgbXXWu0gICDFXzCCDAihB0XgNhhR/+W86lcBBhCzB06wBTUU4twjWPayP5B6EnCgfCL46wUCAgA7]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRsYW5nWyJmcmllbmRseW5hbWUiXSA9ICJCYWJlbDogTXVsdGlsaW5ndWFsIHNpdGUiOw0KJGxhbmdbIm1vZGRlc2NyaXB0aW9uIl0gPSAiQWxsb3dzIHRoZSBtYW5hZ2VtZW50IG9mIChhbmQgbmF2aWdhdGlvbiB0aHJvdWdoKSBtdWx0aXBsZSBsYW5ndWFnZXMgZm9yIHRoZSBmcm9udGVuZC4iOw0KJGxhbmdbImFkbWluZGVzY3JpcHRpb24iXSA9ICJNYW5hZ2UgZnJvbnRlbmQgbGFuZ3VhZ2VzIGFuZCBtdWx0aWxpbmd1YWwgYmVoYXZpb3JzLiI7DQoNCiRsYW5nWyJhY3RpdmUiXSA9ICJBY3RpdmUiOwoKJGxhbmdbImxhbmd1YWdlIl0gPSAiTGFuZ3VhZ2UiOw0KJGxhbmdbImxhbmd1YWdlcyJdID0gIkxhbmd1YWdlcyI7DQokbGFuZ1siYWRkX2xhbmd1YWdlIl0gPSAiQWRkIGxhbmd1YWdlIjsKJGxhbmdbImFkZF9lbnRyeSJdID0gIkFkZCBhIG5ldyBsYW5ndWFnZSBlbnRyeSI7CiRsYW5nWyJlbnRyeSJdID0gIkxhbmd1YWdlIGVudHJ5IjsNCiRsYW5nWyJlZGl0X2xhbmd1YWdlIl0gPSAiRWRpdCBsYW5ndWFnZSI7CiRsYW5nWyJuYW1lIl0gPSAiTmFtZSI7CiRsYW5nWyJlbnRyeW5hbWUiXSA9ICJFbnRyeSBuYW1lICh1c2VkIHRvIGNhbGwgdGhpcyBsYW5ndWFnZSBlbnRyeSkiOwokbGFuZ1sibWVudV9uYW1lIl0gPSAiTWVudSBuYW1lIjsKJGxhbmdbImxhbmdjb2RlIl0gPSAiTGFuZ3VhZ2UgY29kZSI7CiRsYW5nWyJsYW5nY29kZV9wcm9tcHQiXSA9ICJMYW5ndWFnZSBjb2RlIChlZzogZW5fVVMgKSI7CiRsYW5nWyJyb290X2lkIl0gPSAiUm9vdCBwYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGFuZ3VhZ2UiOwokbGFuZ1siZGVmYXVsdF9pZCJdID0gIkRlZmF1bHQgcGFnZSBmb3IgcmVkaXJlY3Rpb24gdG8gdGhpcyBsYW5ndWFnZSI7CiRsYW5nWyJsYW5nc2VsZWN0Il0gPSAiKG9wdGlvbmFsKSBBdXRvLWZpbGwgZm9yIHRoZSBmb2xsb3dpbmcgbGFuZ3VhZ2U6IjsKJGxhbmdbImlzZGVmYXVsdCJdID0gIkRlZmF1bHQ/IjsKJGxhbmdbImFjdGlvbnMiXSA9ICJBY3Rpb25zIjsKJGxhbmdbImFjdGl2ZSJdID0gIkFjdGl2ZSI7DQokbGFuZ1sicHJvbXB0X2RlbGV0ZWxhbmd1YWdlIl0gPSAiUmVhbGx5IGRlbGV0ZSB0aGlzIGxhbmd1YWdlICglcyk/IjsKJGxhbmdbInByb21wdF9kZWxldGVlbnRyeSJdID0gIlJlYWxseSBkZWxldGUgdGhpcyBlbnRyeT8iOwokbGFuZ1siZGVsZXRlX2VudHJ5Il0gPSAiRGVsZXRlIHRoaXMgZW50cnkiOwoKJGxhbmdbInN1Ym1pdCJdID0gIlN1Ym1pdCI7CiRsYW5nWyJjYW5jZWwiXSA9ICJDYW5jZWwiOwokbGFuZ1siYXBwbHkiXSA9ICJBcHBseSI7DQoKJGxhbmdbImVkaXRfZW50cmllcyJdID0gIkVkaXQgbGFuZ3VhZ2UgZW50cmllcyI7CgoKCg0KJGxhbmdbInRlbXBsYXRlaGVscCJdID0gJzx1bD4KPGxpPiRsYW5ndWFnZXMgKGFycmF5IG9mICRsYW5ndWFnZSk8L2xpPg0KPGxpPiRsYW5ndWFnZS0mZ3Q7bmFtZTwvbGk+DQo8bGk+JGxhbmd1YWdlLSZndDtjb2RlPC9saT4NCjxsaT4kbGFuZ3VhZ2UtJmd0O21lbnVfbmFtZTwvbGk+CjxsaT4kbGFuZ3VhZ2UtJmd0O3BhZ2VfbmFtZTwvbGk+CjxsaT4kbGFuZ3VhZ2UtJmd0O3BhZ2VfbWVudV90ZXh0PC9saT4NCjxsaT4kbGFuZ3VhZ2UtJmd0O3VybDwvbGk+DQo8bGk+JGxhbmd1YWdlLSZndDtpc19jdXJyZW50PC9saT4NCjwvdWw+JzsKCQovLyBHRU5FUkFMCiRsYW5nWyJhY3RpdmF0ZSJdID0gIkFjdGl2YXRlIjsKJGxhbmdbInVuYWN0aXZhdGUiXSA9ICJUdXJuIG9mZiI7CiRsYW5nWyJzZWFyY2h0aGlzdGFibGUiXSA9ICJTZWFyY2ggdGhpcyB0YWJsZSBmb3I6IjsKJGxhbmdbIlllcyJdID0gIlllcyI7CiRsYW5nWyJObyJdID0gIk5vIjsKJGxhbmdbIkFjdGlvbnMiXSA9ICJBY3Rpb25zIjsKJGxhbmdbInJlb3JkZXIiXSA9ICJSZW9yZGVyIjsKJGxhbmdbImxpc3R0ZW1wbGF0ZSJdID0gIkxpc3QgdGVtcGxhdGUgZm9yIjsKJGxhbmdbInRlbXBsYXRlcyJdID0gIk1lbnUgdGVtcGxhdGVzIjsKJGxhbmdbInRlbXBsYXRlIl0gPSAiVGVtcGxhdGUiOwokbGFuZ1siZGVmYXVsdHRlbXBsYXRlIl0gPSAiRGVmYXVsdCB0ZW1wbGF0ZSI7CiRsYW5nWyJ0ZW1wbGF0ZXZhcnMiXSA9ICJUZW1wbGF0ZSB2YXJpYWJsZXMiOwokbGFuZ1siZWRpdHRlbXBsYXRlIl0gPSAiRWRpdCB0ZW1wbGF0ZSI7CiRsYW5nWyJhZGR0ZW1wbGF0ZSJdID0gIkFkZCB0ZW1wbGF0ZSI7CiRsYW5nWyJmaWx0ZXJieSJdID0gIkZpbHRlciBieSI7CiRsYW5nWyJzaG93YWxsIl0gPSAiU2hvdyBhbGwgKG5vIGZpbHRlcikiOwokbGFuZ1sibWVzc2FnZV9kZWxldGVkIl0gPSAiRWxlbWVudCBkZWxldGVkIjsKJGxhbmdbIm1lc3NhZ2VfbW9kaWZpZWQiXSA9ICJNb2RpZmljYXRpb24gc2F2ZWQiOwokbGFuZ1siZXJyb3JfbWlzc2dpbnZhbHVlIl0gPSAiT25lIG9yIG1vcmUgbmVjZXNzYXJ5IHZhbHVlcyBoYXZlIG5vdCBiZWVuIGVudGVyZWQuIjsKJGxhbmdbImVycm9yX2FscmVhZHlleGlzdHMiXSA9ICJUaGVyZSBpcyBhbHJlYWR5IGFuIGVsZW1lbnQgYmVhcmluZyB0aGF0IG5hbWUuIjsKJGxhbmdbImVycm9yX25vcGFyZW50Il0gPSAiTm8gcGFyZW50IGlzIGRlZmluZWQhIjsKJGxhbmdbImVycm9yX25vdGZvdW5kIl0gPSAiVGhlIGl0ZW0gY291bGQgbm90IGJlIGZvdW5kLiI7CiRsYW5nWyJlcnJvcl9ub2l0ZW1mb3VuZCJdID0gIk5vIGl0ZW0gZm91bmQuIjsKJGxhbmdbImVycm9yX2RlbmllZCJdID0gIlBlcm1pc3Npb24gZGVuaWVkIjsKJGxhbmdbImdpdmVuZXJyb3IiXSA9ICJFcnJvcjogIjsKJGxhbmdbInByb21wdF9nZW5lcmFsZGVsZXRlIl0gPSAiRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzPyI7CiRsYW5nWyJyZXN1bHRzIl0gPSAiUmVzdWx0cyI7CgovLyBNT0RVTEUgSU5URVJBQ1RJT04KJGxhbmdbInBvc3RpbnN0YWxsIl0gPSAiTW9kdWxlIHN1Y2Nlc3NmdWxseSBhZGRlZC4iOwokbGFuZ1sicG9zdHVuaW5zdGFsbCJdID0gIk1vZHVsZSBzdWNjZXNzZnVsbHkgcmVtb3ZlZC4iOwokbGFuZ1sicmVhbGx5X3VuaW5zdGFsbCJdID0gIkFsbCBvZiB0aGlzIG1vZHVsZSdzIGNvbnRlbnQgd2lsbCBiZSBsb3N0LiBDb250aW51ZT8iOwokbGFuZ1sidW5pbnN0YWxsZWQiXSA9ICJNb2R1bGUgVW5pbnN0YWxsZWQuIjsKJGxhbmdbImluc3RhbGxlZCJdID0gIk1vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGxlZC4iOwokbGFuZ1siaGVscCJdID0gIjxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPgoJCQkJPHA+VGhpcyBtb2R1bGUgbWFuYWdlcyBtdWx0aXBsZXMgbGFuZ3VhZ2VzIGZvciB0aGUgZnJvbnRlbmQgYW5kIG5hdmlnYXRpb24gdGhyb3VnaCB0aGUgbGFuZ3VhZ2VzLjwvcD4KCQkJPGJyLz48aDM+SG93IERvIEkgVXNlIEl0PzwvaDM+CgkJCQk8YnIvPjxoND5UcmVlIGJyYW5jaGVzPC9oND4KCQkJCQk8cD5UaGlzIG1vZHVsZSB1c2VzIGFuIGFwcHJvYWNoIHRvIG11bHRpbGluZ3VhbCBzaXRlcyBjYWxsZWQgXCJzZXBhcmF0ZWQgdHJlZSBicmFuY2hlc1wiLCB3aGljaCBoYXMgYmVlbiBkZXZlbG9wcGVkIGJ5IG90aGVyIGNtc21zIGRldmVsb3BlcnMgKG5hbWVseSBNYXJjb3MgQ3J1eiAtIHNlZSA8YSBocmVmPVwiaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnL2luZGV4LnBocC90b3BpYywxOTA5OS5tc2c5NDc0OS5odG1sI21zZzk0NzQ5XCIgdGFyZ2V0PVwiX2JsYW5rXCI+dGhpcyB0b3BpYzwvYT4pLjwvcD48YnIvPgoJCQkJCTxwPlNob3VsZCB5b3UgbmVlZCB0byB1c2UgaXQgaW4geW91ciB0ZW1wbGF0ZXMsIHRoZSBjdXJyZW50IGxhbmd1YWdlIGNvZGUgd2lsbCBiZSBzdG9yZWQgaW4gdGhlICQiLiJwYWdlX2xhbmcgdmFyaWFibGUuIE1vcmUgaW5mb3JtYXRpb24gb24gdGhlIGxhbmd1YWdlIGNhbiBhbHNvIGJlIHJldHJpZXZlZCB1c2luZyB0aGUgJCIuInBhZ2VfbGFuZ19pbmZvIG9iamVjdCAod2l0aCB0aGUgc2FtZSBhdHRyaWJ1dGVzIGFzIGluIHRoZSBtZW51IHRlbXBsYXRlcykuPC9wPgoJCQkJPGg0PlBhcnQgMTogc2V0dGluZyB1cCB0aGUgcGFnZXM8L2g0PgkJCQoJCQkJCTxwPlRvIHVzZSB0aGlzLCB5b3Ugd2lsbCBoYXZlIHRvIGNyZWF0ZSBkaWZmZXJlbnQgcm9vdCBwYWdlcyBmb3IgZWFjaCBsYW5ndWFnZS4gRm9yIGV4YW1wbGU6PC9wPgoJCQkJCTx1bD4KCQkJCQkJPGxpPjEuIEVuZ2xpc2g8dWw+CgkJCQkJCQk8bGk+MS4xLiAxc3QgcGFnZTwvbGk+CgkJCQkJCQk8bGk+MS4yLiAybmQgcGFnZTwvbGk+CgkJCQkJCQk8bGk+MS4zLiAzcmQgcGFnZTwvbGk+CgkJCQkJCTwvdWw+PC9saT4KCQkJCQkJPGxpPjIuIEZyYW4mY2NlZGlsO2Fpczx1bD4KCQkJCQkJCTxsaT4yLjEuIFBhZ2UgMTwvbGk+CgkJCQkJCQk8bGk+Mi4yLiBQYWdlIDI8L2xpPgoJCQkJCQkJPGxpPjIuMy4gUGFnZSAzPC9saT4KCQkJCQkJPC91bD48L2xpPgoJCQkJCTwvdWw+CgkJCQkJPHA+Um9vdCBsYW5ndWFnZSBwYWdlcyAoMS4gYW5kIDIuKSBzaG91bGQgYmUgc2VjdGlvbiBoZWFkZXJzLiBZb3UgY2FuIG5hbWUgdGhlbSAoYWxpYXMgYW5kIGFsbCkgYW55IHdheSB5b3Ugd2FudC48L3A+CgkJCQkJPHA+SW4gb3JkZXIgdG8gZGlzcGxheSBtZW51IGNvcnJlY3RseSAodGhhdCBpcywgbm90IHRvIGRpc3BsYXkgbGFuZ3VhZ2UgaGVhZGVyIHBhZ2VzIGFuZCBwYWdlcyBiZWxvbmdpbmcgdG8gb3RoZXIgbGFuZ3VhZ2VzKSwgYWxsIHlvdSBoYXZlIHRvIGRvIGlzIGFkZCB0aGUgc3RhcnRfbGV2ZWw9XCIyXCIgdG8geW91ciBtZW51IHRhZ3M6PGJyLz4KCQkJCQl7bWVudSBzdGFydF9sZXZlbD1cIjJcIn08L3A+CgkJCQk8YnIvPjxoND5QYXJ0IDI6IHNldHRpbmcgdXAgdGhlIGxhbmd1YWdlczwvaDQ+CgkJCQkJPHA+TmV4dCwgZ28gdG8gRXh0ZW5zaW9ucy0mZ3Q7QmFiZWw6IE11bHRpbGluZ3VhbCBzaXRlLiBGb3IgZWFjaCBsYW5ndWFnZSwgY2xpY2sgQWRkIExhbmd1YWdlIGFuZCBlbnRlciB0aGUgYXBwcm9wcmlhdGUgaW5mb3JtYXRpb25zLiBUaGUgXCJSb290IHBhZ2VcIiBzaG91bGQgYmUgdGhlIHNlY3Rpb24gaGVhZGVycyB5b3UndmUgY3JlYXRlZCBmb3IgZWFjaCBsYW5ndWFnZSAoMS5FbmdsaXNoLCAyLkZyYW4mY2NlZGlsO2FpcykuIFRoZSBcIkRlZmF1bHQgcGFnZVwiIHNob3VsZCBiZSB0aGUgaG9tZSBwYWdlIGZvciBlYWNoIGxhbmd1YWdlLiBBcyBvZiB0aGUgbGFuZ3VhZ2UgY29kZSwgeW91IGNvdWxkIHVzZSBhbnkgNSBjaGFyYWN0ZXJzIGNvZGUsIGJ1dCBpbiBvcmRlciB0byBwcm92aWRlIGdvb2QgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBtb2R1bGVzLCB5b3Ugc2hvdWxkIHVzZSB0aGUgc2FtZSBhcyB0aGUgY21zICh5b3UgbWF5IHVzZSB0aGUgZHJvcCBkb3duIGxpc3Qgb24gdGhlIHRvcCByaWdodCB0byBwYXJ0aWFsbHkgZmlsbCB0aGUgZm9ybSkuPC9wPgoJCQkJCTxwPiggKldoZW4gcmVhZHksIG1ha2Ugc3VyIHlvdSBhY3RpdmF0ZSBlYWNoIGxhbmd1YWdlLi4uICk8L3A+CgkJCQk8YnIvPjxoND5QYXJ0IDM6IExhbmd1YWdlIG1lbnU8L2g0PgoJCQkJCTxwPlRvIGdldCBhIGxhbmd1YWdlIG1lbnUsIHlvdSBtYXkgdXNlIHRoZSBmb2xsb3dpbmcgdGFnOjxici8+CgkJCQkJe2JhYmVsIGFjdGlvbj1cIm1lbnVcIn08YnIvPgoJCQkJCW9yLCB0byB1c2UgYSB0ZW1wbGF0ZSBvdGhlciB0aGFuIHRoZSBkZWZhdWx0IG9uZTo8YnIvPgoJCQkJCXtiYWJlbCBhY3Rpb249XCJtZW51XCIgdGVtcGxhdGU9XCJ0ZW1wbGF0ZV9uYW1lXCJ9PC9wPgoJCQkJCTxwPlRoZSBcInNob3dcIiBwYXJhbWV0ZXIgY2FuIGJlIHVzZWQgdG8gY2hvb3NlIHdoaWNoIGxhbmd1YWdlcyBzaG91bGQgYmUgZGlzcGxheWVkLjwvcD4KCQkJCTxici8+PGg0PlBhcnQgNCAob3B0aW9uYWwpIDogQ3VzdG9tIGxhbmd1YWdlIGVudHJpZXM8L2g0PgoJCQkJCTxwPkluIG1vZHVsZXMsIGdsb2JhbCBjb250ZW50IGJsb2NrcyBvciB3aGF0c29ldmVyLCB5b3Ugd2lsbCBuZWVkIHRvIGNoYW5nZSB0aGUgY29udGVudCBkZXBlbmRpbmcgb24gdGhlIGxhbmd1YWdlLiBUaGUgdHJhZGl0aW9uYWwgd2F5IHRvIGRvIHRoaXMgd2FzIHRvIGNyZWF0ZSBjb25kaXRpb25zIHdpdGggdGhlIHBhZ2VfbGFuZyB2YXJpYWJsZTo8YnIvPgoJCQkJCXtpZiAkIi4icGFnZV9sYW5nID09IFwiZW5fVVNcIn1FbmdsaXNoIHRleHR7ZWxzZWlmICQiLiJwYWdlX2xhbmcgPT0gXCJmcl9GUlwifVRleHRlIGVuIGZyYW4mY2NlZGlsO2Fpc3svaWZ9PC9wPgoJCQkJCTxwPldpbGwgeW91IGNhbiBzdGlsbCB1c2UgdGhpcyBtZXRob2Qgd2l0aCB0aGUgbW9kdWxlLCBhbm90aGVyIG1vcmUgY2VudHJhbGl6ZWQgd2F5IGlzIHByb3ZpZGVkLiBJbiB0aGUgYWRtaW4gcGFuZWwgb2YgdGhpcyBtb2R1bGUsIHlvdSB3aWxsIGZpbmQgZm9yIGVhY2ggbGFuZ3VhZ2UgYSBsaW5rIHRvIGVkaXQgdGhlIGxhbmd1YWdlIGVudHJpZXMuIExhbmd1YWdlIGVudHJpZXMgYXJlIHN0cmluZ3MgdGhhdCBleGlzdCBmb3IgZWFjaCBsYW5ndWFnZSBidXQgaG9sZCBkaWZmZXJlbnQgdGV4dCAob3IgaHRtbCkuIFdoYXQgeW91IGNhbiBkbyBpcyB0byBjcmVhdGUgYSBuZXcgbGFuZ3VhZ2UgZW50cnkgKGZvciBleGFtcGxlOiBcIndlbGNvbWUgdGV4dFwiLCBlbnRlciBpdHMgY29udGVudCBmb3IgYWxsIGxhbmd1YWdlcywgYW5kIHNpbXBseSBjYWxsIHRoZSBlbnRyeSB3aGVyZXZlciB5b3UgbmVlZCBpdCB1c2luZyB0aGUgZGVmYXVsdCBhY3Rpb246PGJyLz4KCQkJCQl7YmFiZWwgc2hvdz1cIndlbGNvbWUgdGV4dFwifTxici8+CgkJCQkJU2hvdWxkIHlvdSBldmVyIG5lZWQgdG8gZWRpdCB0aGUgc3RyaW5ncyBhbmQgYWRkIGxhbmd1YWdlcywgeW91IHdpbGwgZmluZCB0aGlzIHNvbHV0aW9uIHRvIGJlIG1vcmUgaGFuZHkuIEJ1dCBpZiB5b3UgcHJlZmVyIHRoZSBvbGQgb25lLCBpdCB3aWxsIHdvcmsganVzdCBhcyBtdWNoLjwvcD4KCQkJCQk8cD5Zb3UgY2FuIGFsc28gYXNzaWduIGxhbmd1YWdlIGVudHJpZXMgdG8gc21hcnR5IHZhcmlhYmxlcywgdXNpbmc6IDxici8+CgkJCQkJe2JhYmVsIHNob3c9XCJ3ZWxjb21lIHRleHRcIiBhc3NpZ249XCJ3ZWxjb21lXCJ9PGJyLz4KCQkJCQlvciwgaWYgeW91IHdhbnQgdG8gYXNzaWduIG11bHRpcGxlIGVudHJpZXMsIHNlcGVyYXRlIHRoZW0gYnkgY29tbWFzOjxici8+CgkJCQkJe2JhYmVsIHNob3c9XCJlbnRyeTEsZW50cnkyLGVudHJ5M1wiIGFzc2lnbj1cInZhcjEsdmFyMix2YXIzXCJ9PC9wPgoJCQk8YnIvPjxoMz5MYW5ndWFnZSByZWRpcmVjdGlvbiBtZXRob2RzPC9oMz4JCgkJCQk8cD5UaGVyZSBhcmUgdHdvIHBvc3NpYmxlIG1ldGhvZHMgdG8gdGVsbCB0aGUgY21zIHdoaWNoIHBhZ2UgaXMgdGhlIGVxdWl2YWxlbnQgaW4gYW5vdGhlciBsYW5ndWFnZSBvZiBhIGdpdmVuIHBhZ2UuIEJ5IGRlZmF1bHQsIHRoZSBoaXJlcmFyY2h5IHNvbHV0aW9uIGlzIGFjdGl2YXRlZCwgYnV0IHlvdSBjYW4gY2hhbmdlIHRoYXQgaW4gdGhlIHNldHRpbmdzIHRhYi48L3A+CgkJCQk8YnIvPjxoND5NYXJjb3MgQ3J1eidzIGRlZmluaXRpb24gc29sdXRpb248L2g0PgoJCQkJCTxwPjxpPlByb3M6PC9pPiBhbGxvd3MgdGhpZ2h0IGN1c3RvbWl6YXRpb24gYW5kIHBhcnRpYWwgdHJhbnNsYXRpb24uPGJyLz4KCQkJCQk8aT5Db25zOjwvaT4gbmVlZCB0byBzcGVjaWZ5IGxhbmd1YWdlIGFsdGVybmF0aXZlcyBmb3IgZWFjaCBwYWdlLCBhbmQgdG8gdXBkYXRlIGl0IGlmIGFuIGFsaWFzIGNoYW5nZXMuPC9wPgoJCQkJCTxwPkFkZCB0aGUgZm9sbG93aW5nIHRhZyBpbiBlYWNoIG9mIHlvdXIgcGFnZSB0ZW1wbGF0ZXMgOjxici8+CgkJCQkJe2NvbnRlbnQgYmxvY2s9J090aGVyIGxhbmd1YWdlcycgb25lbGluZT0ndHJ1ZScgYXNzaWduPW90aGVyX2xhbmd1YWdlcyB3eXNpd3lnPSdmYWxzZSd9PGJyLz4KCQkJCQlUaGlzIHdpbGwgYWRkIGEgY29udGVudCBibG9jayB0byBiZSBmaWxsZWQgd2hlbiB5b3UgZWRpdCB0aGUgcGFnZS4gV2Ugd2lsbCB1c2UgdGhpcyBibG9jayB0byBkZWZpbmUgdGhlIGVxdWl2YWxlbnRzIGluIG90aGVyIGxhbmd1YWdlcyBmb3IgdGhpcyBwYWdlLCBieSBmaWxsaW5nIGl0IGluIHRoZSBmb2xsb3dpbmcgd2F5Ojxici8+CgkJCQkJXCJlbl9VUz1wYWdlMTtmcl9GUj1wYWdlMjtkZV9ERT1wYWdlM1wiICh3aXRob3V0IHRoZSBxdW90ZXMgLSB0aGUgb3JkZXIgZG9lcyBub3QgbWF0dGVyLCBidXQgbm8gc3BhY2VzIGFyZSBhbGxvd2VkKTxici8+CgkJCQkJd2hlcmUgcGFnZTEsIHBhZ2UyIGFuZCBwYWdlMyBhcmUgdGhlIHBhZ2UgYWxpYXNlcy48L3A+CgkJCQkJPHA+VG8gbWFrZSBzdXJlIHRoZSBtb2R1bGVzIHVzZXMgdGhpcyBtZXRob2QsIG1ha2Ugc3VyZSB0byB1bnRpY2sgdGhlIFwiVXNlIGhpZXJhcmNoeSBmb3IgcmVkaXJlY3Rpb25cIiBvcHRpb24gaW4gdGhlIHNldHRpbmdzIHRhYi48L3A+CgkJCQk8YnIvPjxoND5UaGUgaGllcmFyY2h5IHNvbHV0aW9uPC9oND4KCQkJCQk8cD48aT5Qcm9zOjwvaT4gaXQncyBhdXRvbWF0aWMgLSB5b3UgZG9uJ3QgaGF2ZSB0byBkbyBhbnl0aGluZy48YnIvPgoJCQkJCTxpPkNvbnM6PC9pPiB0aGUgcGFnZSBzdHJ1Y3R1cmUgbXVzdCBiZSBpZGVudGljYWwgZm9yIGVhY2ggbGFuZ3VhZ2UuPC9wPgoJCQkJCTxwPlRoaXMgc29sdXRpb24gdXNlcyB0aGUgcGFnZSBoaWVyYXJjaHkgdG8ga25vdyB3aGljaCBwYWdlcyBhcmUgZXF1aXZhbGVudC4gSW4gb3VyIGV4YW1wbGUgYWJvdmUsIFwiMi4zLiBQYWdlIDNcIiB3b3VsZCBiZSB0aGUgZnJlbmNoIGVxdWl2YWxlbnQgb2YgXCIxLjMuIDNyZCBwYWdlXCIsIGJlY2F1c2UgaXQgb2NjdXBpZXMgdGhlIGVxdWl2YWxlbnQgcG9zaXRpb24gaW4gdGhlIGZyZW5jaCBicmFuY2guPGJyLz4KCQkJCQlJbiBvdGhlciB3b3Jkcywgc2hvdWxkIHRoZSBwYWdlIGJlIG9yZGVyZWQgZGlmZmVyZW50bHksIGFsbCB3b3VsZCBiZSBtZXNzZWQgdXA6PC9wPgoJCQkJCTx1bD4KCQkJCQkJPGxpPjEuIEVuZ2xpc2g8dWw+CgkJCQkJCQk8bGk+MS4xLiAxc3QgcGFnZTwvbGk+CgkJCQkJCQk8bGk+MS4yLiAybmQgcGFnZTwvbGk+CgkJCQkJCQk8bGk+MS4zLiAzcmQgcGFnZTwvbGk+CgkJCQkJCTwvdWw+PC9saT4KCQkJCQkJPGxpPjIuIEZyYW4mY2NlZGlsO2Fpczx1bD4KCQkJCQkJCTxsaT4yLjEuIFBhZ2UgMTwvbGk+CgkJCQkJCQk8bGk+Mi4yLiBQYWdlIDM8L2xpPgoJCQkJCQkJPGxpPjIuMy4gUGFnZSAyPC9saT4KCQkJCQkJPC91bD48L2xpPgoJCQkJCTwvdWw+CgkJCQkJPHA+SGVyZSwgXCJQYWdlIDJcIiBvY2N1cGllcyB0aGUgdGhpcmQgcG9zaXRpb24sIHNvIGl0IHdvdWxkIGJlIGRlZW1lZCBlcXVpdmFsZW50IHRvIHRoZSAzcmQgcGFnZSBpbiBlbmdsaXNoLjxici8+CgkJCQkJVGhpcyBhbHNvIG1lYW5zIHRoYXQgaWYgYWxsIHBhZ2VzIGRvIG5vdCBleGlzdCBpbiBhbGwgbGFuZ3VhZ2VzLCB5b3UgaGF2ZSB0byBiZSBjYXJlZnVsLiBGb3IgZXhhbXBsZTo8L3A+CgkJCQkJPHVsPgoJCQkJCQk8bGk+MS4gRW5nbGlzaDx1bD4KCQkJCQkJCTxsaT4xLjEuIDFzdCBwYWdlPC9saT4KCQkJCQkJCTxsaT4xLjIuIDJuZCBwYWdlPC9saT4KCQkJCQkJCTxsaT4xLjMuIDNyZCBwYWdlPC9saT4KCQkJCQkJPC91bD48L2xpPgoJCQkJCQk8bGk+Mi4gRnJhbiZjY2VkaWw7YWlzPHVsPgoJCQkJCQkJPGxpPjIuMS4gUGFnZSAyPC9saT4KCQkJCQkJCTxsaT4yLjIuIFBhZ2UgMzwvbGk+CgkJCQkJCTwvdWw+PC9saT4KCQkJCQk8L3VsPgoJCQkJCTxwPkhlcmUsIFwiMXN0IHBhZ2VcIiB3b3VsZCBiZSB0YWtlbiB0byBiZSBlcXVpdmFsZW50IHRvIFwiUGFnZSAyXCIgYW5kIFwiM3JkIHBhZ2VcIiB3b3VsZCBiZSBkZWVtZWQgdG8gaGF2ZSBubyB0cmFkdWN0aW9uLCBhbHRob3VnaCBpdCBkb2VzLjwvcD4KCQkJPGJyLz48aDM+VHJvdWJsZXNob290aW5nPC9oMz4KCQkJCTxwPlBhZ2UgbGFuZ3VhZ2Ugc2hvdWxkIGJlIGRldGVjdGVkIGFuZCBhc3NpZ25lZCB0byB0aGUgc21hcnR5IHZhcmlhYmxlcyBiZWZvcmUgdGhlIHRlbXBsYXRlIGlzIHByb2Nlc3NlZCBieSBhbiBldmVudCBoYW5kbGVyLiBIb3dldmVyLCBpdCBpcyBwb3NzaWJsZSB0aGF0IGF0IHNvbWUgcG9pbnQgaW4gdGhlIHBhZ2UgdGVtcGxhdGUgdGhlIHBhZ2UgbGFuZ3VhZ2UgaXMgbG9zdCAoZXNwZWNpYWxseSBzaW5jZSB0aGUgcGFnZSBoZWFkIGlzIHByb2Nlc3NlZCBzZXBhcmF0bHkgZnJvbSB0aGUgcGFnZSBib2R5KS4gU2hvdWxkIGl0IGhhcHBlbmQsIHlvdSBjYW4gdXNlIHRoZSB0YWcge2JhYmVsIGFjdGlvbj1cImFzc2lnblwifSB0byByZWFzc2lnbiBpdC48YnIvPgoJCQkJTm90ZSB0aGF0IHlvdSBtYXkgYWxzbyB1c2Uge2JhYmVsIGFjdGlvbj1cImF1dG9fcmVkaXJlY3RcIiBhdCB0aGUgYmVnaW5uaW5nIG9mIHlvdXIgdGVtcGxhdGUgaWYsIGZvciBzb21lIHJlYXNvbiwgcmVkaXJlY3Rpb24gZG9lcyBub3Qgb2NjdXIgKEkgZG9uJ3Qgc2VlIHdoeSB0aGlzIHNob3VsZCBoYXBwZW4gdGhvdWdoKS48L3A+CgkJCTxici8+PGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CgkJCQk8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiBjcmVhdGVkIGJ5IFBpZXJyZS1MdWMgR2VybWFpbiAocGxnZXIpLCBiYXNlZCBvbiBhbiBhcHByb2FjaCBieSBNYXJjb3MgQ3J1eiwgYW5kIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBHTlUgUHVibGljIExpY2Vuc2UuPC9wPjxici8+PGJyLz4iOwoKCi8vU0VUVElOR1MKJGxhbmdbInNldHRpbmdzIl0gPSAiU2V0dGluZ3MiOwokbGFuZ1sicHJlZl9hdXRvcmVkaXJlY3RfaG9tZSJdID0gIkF1dG8tcmVkaXJlY3Qgb24gaG9tZSBwYWdlIGJhc2VkIG9uIHJlcXVlc3QgKGJyb3dzZXIpIGxhbmd1YWdlPyo8YnIvPldoZW4gdGhlIHVzZXIgZ2V0cyBvbiBhIGhvbWUgcGFnZSAoYSBwYWdlIGRlZmluZWQgYXMgZGVmYXVsdCBwYWdlIGZvciBhIGxhbmd1YWdlKSwgaWYgaGlzIGJyb3dzZXIgbGFuZ3VhZ2UgaXMgZGlmZmVyZW50IGZyb20gdGhlIHBhZ2UgbGFuZ3VhZ2UgaGUgd2lsbCBiZSByZWRpcmVjdGVkIHRvIHRoZSBhcHByb3ByaWF0ZSBwYWdlLiI7CiRsYW5nWyJwcmVmX2F1dG9yZWRpcmVjdF9hbGwiXSA9ICJBdXRvLXJlZGlyZWN0IG9uIGFsbCBwYWdlcyBiYXNlZCBvbiByZXF1ZXN0IGxhbmd1YWdlPyo8YnIvPihzYW1lIGFzIGFib3ZlLCBidXQgZm9yIGFsbCBwYWdlcykiOwokbGFuZ1sicHJlZl9jb29raWVzX2F1dG9yZWRpcmVjdF9ob21lIl0gPSAiQXV0by1yZWRpcmVjdCBvbiBob21lIHBhZ2UgYmFzZWQgb24gbGFuZ3VhZ2Ugc3RvcmVkIGluIGNvb2tpZXM/PGJyLz5JZiB0aGUgdXNlciBoYXMgcHJldmlvdXNseSBuYXZpZ2F0ZWQgdGhlIHNpdGUgaW4gYSBzZWxlY3RlZCBsYW5ndWFnZSBiZWZvcmUsIGhlIHdpbGwgYmUgZm93YXJkZWQgdG8gdGhpcyBsYW5ndWFnZSB1cG9uIHZpc2l0aW5nIGFueSBob21lIHBhZ2UgKGFueSBwYWdlIHRoYXQgaGFzIGJlZW4gc2V0IGFzIGRlZmF1bHQgcGFnZSBmb3IgYSBsYW5ndWFnZSkuIjsKJGxhbmdbInByZWZfY29va2llc19hdXRvcmVkaXJlY3RfYWxsIl0gPSAiQXV0by1yZWRpcmVjdCBvbiBhbGwgcGFnZXMgYmFzZWQgb24gY29va2llcz88YnIvPihzYW1lIGFzIGFib3ZlLCBidXQgZm9yIGFsbCBwYWdlcykiOwokbGFuZ1sicHJlZl9oaWVyYXJjaHlfcmVkaXJlY3QiXSA9ICJVc2UgaGllcmFyY2h5IGZvciByZWRpcmVjdGlvbj8gKHNlZSBoZWxwIGZvciBtb3JlIGluZm8pPGJyLz5UaGlzIG1lYW5zIHRoYXQgdGhlIHBhZ2Ugc3RydWN0dXJlIG11c3QgYmUgZXhhY3RseSB0aGUgc2FtZSBmb3IgYWxsIGxhbmd1YWdlcy4gSWYgeW91IGRvbid0IHVzZSB0aGUgaGllcmFyY2h5LCB5b3Ugd2lsbCBoYXZlIHRvIHNwZWNpZnkgdGhlIHBhZ2VzIG1hbnVhbGx5LiI7CiRsYW5nWyJwcmVmX2RlZmF1bHRfaGlkZSJdID0gIkhpZGUgbWVudSBsaW5rIHdoZW4gdGhlIGFjY29yZGluZyBwYWdlIGRvZXMgbm90IGV4aXN0Pzxici8+SWYgdGhlIGxhbmd1YWdlIGxpbmsgc2hvdWxkIGxlYWQgdG8gYSBwYWdlIHRoYXQgZG9lcyBub3QgZXhpc3QsIGhpZGUgdGhlIGxpbmsgKG90aGVyd2lzZSwgdGhlIGxpbmsgd2lsbCBsZWFkIHRvIHRoZSBsYW5ndWFnZSdzIGRlZmF1bHQgcGFnZSkuIjsKJGxhbmdbInByZWZfZGVmYXVsdF90cmFuc2xhdGUiXSA9ICJVc2UgZGVmYXVsdCBsYW5ndWFnZSB3aGVyZSBsYW5ndWFnZS1zcGVjaWZpYyBlbnRyaWVzIGhhdmVuJ3QgYmVlbiBzdXBwbGllZC4iOwokbGFuZ1sicHJlZl9oaWRlX21pc3NpbmdlbnRyaWVzIl0gPSAiSGlkZSBlcnJvciBtZXNzYWdlIGZvciB1bmtub3duIGxhbmd1YWdlIGVudHJpZXMuIjsKJGxhbmdbInByZWZfd3lzaXd5ZyJdID0gIkVuYWJsZSB3eXNpd3lnIGluIGxhbmd1YWdlIGVudHJpZXMuIjsKJGxhbmdbInByZWZfdXNlX3BhZ2VfdGl0bGUiXSA9ICJVc2UgcGFnZSB0aXRsZSBpbiBsYW5ndWFnZSBsaW5rcyAoaW5zdGVhZCBvZiBsYW5ndWFnZSBuYW1lKS4iOwokbGFuZ1sicHJlZl9jdXJyZW50X2xpbmsiXSA9ICJJbiB0aGUgbGFuZ3VhZ2UgbWVudSwgc2hvdyBsaW5rIGZvciBjdXJyZW50IHBhZ2UgKHRoYXQgaXMsIGN1cnJlbnQgbGFuZ3VhZ2UpIHRvby4iOwokbGFuZ1siaGVscF9yZWRpcmVjdGlvbiJdID0gIipOb3RlOiBJZiB5b3UgdXNlIHJlZGlyZWN0aW9uIGJhc2VkIG9uIHJlcXVlc3QgKGJyb3dzZXIpIGxhbmd1YWdlLCBtYWtlIHN1cmUgdG8gYWN0aXZhdGUgdGhlIGNvcnJlc3BvbmRpbmcgY29va2llIHJlZGlyZWN0aW9uLCBvdGhlcndpc2UgdGhlIHVzZXJzIHdpbGwgYmUgPGI+Zm9yY2VkPC9iPiB0byB2aWV3IHRoZSBwYWdlIGluIHRoZWlyIGJyb3dzZXIgbGFuZ3VhZ2UuIjsKCgovL1BBUkFNRVRFUlMKJGxhbmdbInBoZWxwX2FjdGlvbiJdID0gIlBvc3NpYmxlIGFjdGlvbnM6IFwiZGVmYXVsdFwiIChmb3IgdHJhbnNsYXRpb25zKSBvciBcIm1lbnVcIi4iOwokbGFuZ1sicGhlbHBfc2hvdyJdID0gIkZvciB0aGUgbWVudSBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB3aGljaCBsYW5ndWFnZXMgdG8gc2hvdyBpbiB0aGUgbWVudSAodXNlIGxhbmd1YWdlIGNvZGUgYW5kIHNlcGFyYXRlIHdpdGggYSBjb21tYSkuIEZvciB0aGUgZGVmYXVsdCBhY3Rpb24sIHRoaXMgaG9sZHMgdGhlIGtleSB0byB0aGUgc3RyaW5nIHRvIGJlIHRyYW5zbGF0ZWQuIjsKJGxhbmdbInBoZWxwX3RlbXBsYXRlIl0gPSAiVGVtcGxhdGUgdG8gdXNlIGZvciB0aGUgbWVudS4iOwokbGFuZ1sicGhlbHBfYXNzaWduIl0gPSAiSW5zdGVhZCBvZiBkaXNwbGF5aW5nIHRoZSByZXN1bHQgaW1tZWRpYXRlbHksIHlvdSBjYW4gYXNzaWduIGl0IHRvIGEgc21hcnR5IHZhcmlhYmxlIHNwZWNpZmllZCB3aXRoIHRoZSBcImFzc2lnblwiIHBhcmFtZXRlci4iOwoKCg0KPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRsYW5nWyJmcmllbmRseW5hbWUiXSA9ICJCYWJlbDogU2l0ZSBtdWx0aWxpbmd1ZSI7DQokbGFuZ1sibW9kZGVzY3JpcHRpb24iXSA9ICJQZXJtZXQgbGEgZ2VzdGlvbiBkZSBwbHVzaWV1cnMgbGFuZ3VlcyBwb3VyIGxlIGZyb250ZW5kIGV0IGxhIG5hdmlnYXRpb24gw6AgdHJhdmVycyBjZWxsZXMtY2kuIjsNCiRsYW5nWyJhZG1pbmRlc2NyaXB0aW9uIl0gPSAiR2VzdGlvbiBkZXMgbGFuZ3VlcyBkZSBjb250ZW51IGV0IGRlcyBwYXJhbSZlZ3JhdmU7dHJlcyBkZSBsYW5ndWUuIjsKCiRsYW5nWyJsYW5ndWFnZSJdID0gIkxhbmd1ZSI7DQokbGFuZ1sibGFuZ3VhZ2VzIl0gPSAiTGFuZ3VlcyI7DQokbGFuZ1siYWRkX2xhbmd1YWdlIl0gPSAiQWpvdXRlciB1bmUgbGFuZ3VlIjsKJGxhbmdbImFkZF9lbnRyeSJdID0gIkFqb3V0ZXIgdW5lIGVudHImZWFjdXRlO2UgbGluZ3Vpc3RpcXVlIjsKJGxhbmdbImVudHJ5Il0gPSAiRW50ciZlYWN1dGU7ZSBsaW5ndWlzdGlxdWUiOw0KJGxhbmdbImVkaXRfbGFuZ3VhZ2UiXSA9ICJNb2RpZmllciBsYSBsYW5ndWUiOwokbGFuZ1sibmFtZSJdID0gIk5vbSI7CiRsYW5nWyJlbnRyeW5hbWUiXSA9ICJOb20gZGUgbCdlbnRyJmVhY3V0ZTsgKHNlcmEgdXRpbGlzJmVhY3V0ZTsgcG91ciBsJ2FwcGVsZXIpIjsKJGxhbmdbIm1lbnVfbmFtZSJdID0gIk5vbSBkYW5zIGxlIG1lbnUiOwokbGFuZ1sibGFuZ2NvZGUiXSA9ICJDb2RlIGRlIGxhbmd1ZSI7CiRsYW5nWyJsYW5nY29kZV9wcm9tcHQiXSA9ICJDb2RlIGRlIGxhbmdlIChleDogZW5fVVMgKSI7CiRsYW5nWyJyb290X2lkIl0gPSAiUGFnZSByYWNpbmUgYXNzb2NpJmVhY3V0ZTtlICZhZ3JhdmU7IGxhIGxhbmd1ZSI7CiRsYW5nWyJkZWZhdWx0X2lkIl0gPSAiUGFnZSBwYXIgZCZlYWN1dGU7ZmF1dCBwb3VyIGxhIHJlZGlyZWN0aW9uICZhZ3JhdmU7IGNldHRlIGxhbmd1ZSI7CiRsYW5nWyJsYW5nc2VsZWN0Il0gPSAiKGZhY3VsdGF0aWYpIFJlbXBsaXIgYXV0b21hdGlxdWVtZW50IHBvdXIgbGEgbGFuZ3VlIHN1aXZhbnRlOiI7CiRsYW5nWyJpc2RlZmF1bHQiXSA9ICJQYXIgZCZlYWN1dGU7ZmF1dD8iOwokbGFuZ1siYWN0aW9ucyJdID0gIkFjdGlvbnMiOwokbGFuZ1siYWN0aXZlIl0gPSAiQWN0aXZlIjsNCiRsYW5nWyJwcm9tcHRfZGVsZXRlbGFuZ3VhZ2UiXSA9ICJWcmFpbWVudCBzdXBwcmltZXIgY2V0dGUgbGFuZ3VlICglcyk/IjsKJGxhbmdbInByb21wdF9kZWxldGVlbnRyeSJdID0gIlZvdWxlei12b3VzIHZyYWltZW50IHN1cHByaW1lciBjZXR0ZSBlbnRyJmVhY3V0ZTtlPyI7CiRsYW5nWyJkZWxldGVfZW50cnkiXSA9ICJTdXBwcmltZXIgY2V0dGUgZW50ciZlYWN1dGU7ZSI7CgoKJGxhbmdbInN1Ym1pdCJdID0gIkVudm95ZXIiOwokbGFuZ1siY2FuY2VsIl0gPSAiQW5udWxlciI7CiRsYW5nWyJhcHBseSJdID0gIkFwcGxpcXVlciI7DQoKJGxhbmdbImVkaXRfZW50cmllcyJdID0gIk1vZGlmaWVyIGxlcyBlbnRyJmVhY3V0ZTtlcyBsaW5ndWlzdGlxdWVzIjsKCgoKDQokbGFuZ1sidGVtcGxhdGVoZWxwIl0gPSAnPHVsPgo8bGk+JGxhbmd1YWdlcyAoYXJyYXkgb2YgJGxhbmd1YWdlKTwvbGk+DQo8bGk+JGxhbmd1YWdlLSZndDtuYW1lPC9saT4NCjxsaT4kbGFuZ3VhZ2UtJmd0O2NvZGU8L2xpPg0KPGxpPiRsYW5ndWFnZS0mZ3Q7bWVudV9uYW1lPC9saT4KPGxpPiRsYW5ndWFnZS0mZ3Q7cGFnZV9uYW1lPC9saT4KPGxpPiRsYW5ndWFnZS0mZ3Q7cGFnZV9tZW51X3RleHQ8L2xpPg0KPGxpPiRsYW5ndWFnZS0mZ3Q7dXJsPC9saT4NCjxsaT4kbGFuZ3VhZ2UtJmd0O2lzX2N1cnJlbnQ8L2xpPg0KPC91bD4nOwoJCi8vIEdFTkVSQUwKJGxhbmdbImFjdGl2YXRlIl0gPSAiQWN0aXZlciI7CiRsYW5nWyJ1bmFjdGl2YXRlIl0gPSAiRCZlYWN1dGU7c2FjdGl2ZXIiOwokbGFuZ1sic2VhcmNodGhpc3RhYmxlIl0gPSAiQ2hlcmNoZXIgZGFucyBjZSB0YWJsZWF1OiI7CiRsYW5nWyJZZXMiXSA9ICJPdWkiOwokbGFuZ1siTm8iXSA9ICJOb24iOwokbGFuZ1siQWN0aW9ucyJdID0gIkFjdGlvbnMiOwokbGFuZ1sicmVvcmRlciJdID0gIlImZWFjdXRlO29yZG9ubmVyIjsKJGxhbmdbInRlbXBsYXRlcyJdID0gIkdhYmFyaXRzIGRlIG1lbnUiOwokbGFuZ1sidGVtcGxhdGUiXSA9ICJHYWJhcml0IjsKJGxhbmdbImRlZmF1bHR0ZW1wbGF0ZSJdID0gIkdhYmFyaXQgcGFyIGQmZWFjdXRlO2ZhdXQiOwokbGFuZ1sidGVtcGxhdGV2YXJzIl0gPSAiVmFyaWFibGVzIHNtYXJ0eSI7CiRsYW5nWyJlZGl0dGVtcGxhdGUiXSA9ICJNb2RpZmllciBsZSBnYWJhcml0IjsKJGxhbmdbImFkZHRlbXBsYXRlIl0gPSAiQWpvdXRlciB1biBnYWJhcml0IjsKJGxhbmdbImZpbHRlcmJ5Il0gPSAiRmlsdHJlciBwYXIiOwokbGFuZ1sic2hvd2FsbCJdID0gIlRvdXQgYWZmaWNoZXIgKGF1Y3VuIGZpbHRyZSkiOwokbGFuZ1sibWVzc2FnZV9kZWxldGVkIl0gPSAiU3VwcHJpbSZlYWN1dGU7IjsKJGxhbmdbIm1lc3NhZ2VfbW9kaWZpZWQiXSA9ICJNb2RpZmljYXRpb24gc2F1dmVnYXJkJmVhY3V0ZTtlIjsKJGxhbmdbImVycm9yX21pc3NnaW52YWx1ZSJdID0gIkRlcyB2YWxldXJzIG9ibGlnYXRvaXJlcyBzb250IG1hbnF1YW50ZXMuIjsKJGxhbmdbImVycm9yX2FscmVhZHlleGlzdHMiXSA9ICJJbCB5IGEgZCZlYWN1dGU7aiZhZ3JhdmU7IHVuICZlYWN1dGU7bCZlYWN1dGU7bWVudCBwb3J0YW50IGNlIG5vbS4iOwokbGFuZ1siZXJyb3Jfbm90Zm91bmQiXSA9ICJBdWN1biByJmVhY3V0ZTtzdWx0YXQuIjsKJGxhbmdbImVycm9yX25vaXRlbWZvdW5kIl0gPSAiQXVjdW4gciZlYWN1dGU7c3VsdGF0LiI7CiRsYW5nWyJnaXZlbmVycm9yIl0gPSAiRXJyZXVyOiAiOwokbGFuZ1sicHJvbXB0X2dlbmVyYWxkZWxldGUiXSA9ICJTdXBwcmltZXI/IjsKCgovLyBNT0RVTEUgSU5URVJBQ1RJT04KJGxhbmdbInBvc3RpbnN0YWxsIl0gPSAiTW9kdWxlIGFqb3V0JmVhY3V0ZTsuIjsKJGxhbmdbInBvc3R1bmluc3RhbGwiXSA9ICJNb2R1bGUgZCZlYWN1dGU7c2luc3RhbGwmZWFjdXRlOy4iOwokbGFuZ1sicmVhbGx5X3VuaW5zdGFsbCJdID0gIlZyYWltZW50IGQmZWFjdXRlO3NpbnN0YWxsZXIgYmFiZWw/IjsKJGxhbmdbInVuaW5zdGFsbGVkIl0gPSAiTW9kdWxlIGQmZWFjdXRlO3NpbnN0YWxsJmVhY3V0ZTsuIjsKJGxhbmdbImluc3RhbGxlZCJdID0gIk1vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGwmZWFjdXRlOy4iOwoKJGxhbmdbImhlbHAiXSA9ICI8aDM+JnF1b3Q7VHJlZSBicmFuY2hlcyZxdW90OzwvaDM+CgkJCQkJPHA+Q2UgbW9kdWxlIHV0aWxpc2UgdW5lIGFwcHJvY2hlIGRlICZxdW90O2JyYW5jaGVzIHMmZWFjdXRlO3BhciZlYWN1dGU7ZXMmcXVvdDsgKFwic2VwYXJhdGVkIHRyZWUgYnJhbmNoZXNcIikgZGVzIHNpdGVzIG11bHRpbGluZ3VlIGQmZWFjdXRlO3ZlbG9wcCZlYWN1dGU7ZSBwYXIgZCdhdXRyZXMgZCZlYWN1dGU7dmVsb3BwZXVycyBkZSBjbXNtcyAocHJpbmNpcGFsZW1lbnQgTWFyY29zIENydXogLSB2b2lyIDxhIGhyZWY9XCJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmcvaW5kZXgucGhwL3RvcGljLDE5MDk5Lm1zZzk0NzQ5Lmh0bWwjbXNnOTQ3NDlcIiB0YXJnZXQ9XCJfYmxhbmtcIj5jZXR0ZSBjb252ZXJzYXRpb248L2E+KS48L3A+PGJyLz4KCQkJCQk8cD5EYW5zIHZvcyBnYWJhcml0cywgdm91cyBwb3VycmV6IHImZWFjdXRlO2N1cCZlYWN1dGU7cmVyIGxlIGNvZGUgZGUgbGEgbGFuZ3VlIGFjdHVlbGxlICZhZ3JhdmU7IGwnYWlkZSBkZSB7Ii4nJHBhZ2VfbGFuZycuIn0sIGV0IHBsdXMgZCdpbmZvcm1hdGlvbnMgc3VyIGxhIGxhbmd1ZSAmYWdyYXZlOyBsJ2FpZGUgZGUgbCdvYmpldCB7Ii4nJHBhZ2VfbGFuZ19pbmZvJy4ifSAoYXZlYyBsZXMgbSZlY2lyYzttZXMgYXR0cmlidXRzIHF1ZSBkYW5zIGxlcyBnYWJhcml0cyBkZSBtZW51KS48L3A+CgkJCQk8YnIvPjxoMz4mRWFjdXRlO3RhcGUgMTogcHImZWFjdXRlO3BhcmF0aW9uIGRlcyBwYWdlczwvaDM+CQkJCgkJCQkJPHA+Vm91cyBkZXZleiBkJ2Fib3JkIGNyJmVhY3V0ZTtlciBkaWZmJmVhY3V0ZTtyZW50ZXMgcGFnZXMgcmFjaW5lIHBvdXIgY2hhcXVlIGxhbmd1ZS4gUGFyIGV4YW1wbGU6PC9wPgoJCQkJCTx1bD4KCQkJCQkJPGxpPjEuIEVuZ2xpc2g8dWw+CgkJCQkJCQk8bGk+MS4xLiAxc3QgcGFnZTwvbGk+CgkJCQkJCQk8bGk+MS4yLiAybmQgcGFnZTwvbGk+CgkJCQkJCQk8bGk+MS4zLiAzcmQgcGFnZTwvbGk+CgkJCQkJCTwvdWw+PC9saT4KCQkJCQkJPGxpPjIuIEZyYW4mY2NlZGlsO2Fpczx1bD4KCQkJCQkJCTxsaT4yLjEuIFBhZ2UgMTwvbGk+CgkJCQkJCQk8bGk+Mi4yLiBQYWdlIDI8L2xpPgoJCQkJCQkJPGxpPjIuMy4gUGFnZSAzPC9saT4KCQkJCQkJPC91bD48L2xpPgoJCQkJCTwvdWw+CgkJCQkJPHA+TGVzIHBhZ2VzIHJhY2luZSAoMS4gYW5kIDIuKSBkZXZyYWl0ICZlY2lyYzt0cmUgZGVzIGVuLXQmZWNpcmM7dGVzIGRlIHNlY3Rpb24uIFZvdXMgcG91dmV6IGxldXIgZG9ubmVyIG4naW1wb3J0ZSBxdWVsIG5vbSBvdSBhbGlhcy48L3A+CgkJCQkJPHA+UG91ciBhZmZpY2hlciB2b3MgbWVudXMgY29ycmVjdGVtZW50IChjJ2VzdC0mYWdyYXZlOy1kaXJlLCBwb3VyIG5lIHBhcyBhZmZpY2hlciBsZXMgcGFnZXMgcmFjaW5lcyBldCBsZXMgcGFnZXMgZCd1bmUgYXV0cmUgbGFuZ3VlKSwgaWwgdm91cyBzdWZmaXJhIGQnYWpvdXRlciBzdGFydF9sZXZlbD1cIjJcIiAmYWdyYXZlOyB2b3MgYmFsaXNlcyBkZSBtZW51Ojxici8+CgkJCQkJe21lbnUgc3RhcnRfbGV2ZWw9XCIyXCJ9PC9wPgoJCQkJPGJyLz48aDM+JkVhY3V0ZTt0YXBlIDI6IGNyJmVhY3V0ZTthdGlvbiBkZXMgbGFuZ3VlczwvaDM+CgkJCQkJPHA+RW5zdWl0ZSwgcmVuZGV6LXZvdXMgZGFucyBFeHRlbnNpb25zLSZndDtCYWJlbDogU2l0ZSBtdWx0aWxpbmd1ZS4gUG91ciBjaGFxdWUgbGFuZ3VlLCBjbGlxdWV6IEFqb3V0ZXIgdW5lIGxhbmd1ZSBldCBlbnRyZXogbGVzIGluZm9ybWF0aW9ucyBhcHByb3ByaSZlYWN1dGU7ZXMuIExhIFwiUGFnZSByYWNpbmVcIiBkZXZyYWl0ICZlY2lyYzt0cmUgbCdlbi10JmVjaXJjO3RlIGRlIHNlY3Rpb24gcXVlIHZvdXMgYXZleiBjciZlYWN1dGU7JmVhY3V0ZTsgcG91ciBjaGFxdWUgbGFuZ3VlICgxLkVuZ2xpc2gsIDIuRnJhbiZjY2VkaWw7YWlzKS4gTGEgXCJQYWdlIHBhciBkJmVhY3V0ZTtmYXV0XCIgZGV2cmFpdCDDqnRyZSBsYSBwYWdlIGQnYWNjdWVpbCBwb3VyIGNoYXF1ZSBsYW5ndWUuIEVuIGNlIHF1aSBjb25jZXJuZSBsZSBjb2RlIGRlIGxhbmd1ZSwgdm91cyBwb3VycmlleiB1dGlsaXNlciBuJ2ltcG9ydGUgcXVlbCBjb2RlIGRlIDUgY2FyYWN0JmVncmF2ZTtyZXMsIG1haXMgcG91ciB1bmUgYm9ubmUgY29tcGF0aWJpbGl0JmVhY3V0ZTsgYXZlYyBsZXMgYXV0cmVzIG1vZHVsZXMsIGlsIGVzdCBwciZlYWN1dGU7ZiZlYWN1dGU7cmFibGUgZCd1dGlsaXNlciBsZXMgbSZlY2lyYzttZXMgcXVlIGxlIGNtcyAodm91cyBwb3V2ZXogdXRpbGlzZXIgbGEgbGlzdGUgZCZlYWN1dGU7cm91bGFudGUgZW4gaGF1dCAmYWdyYXZlOyBkcm9pdGUgcG91ciByZW1wbGlyIHBhcnRpZWxsZW1lbnQgbGUgZm9ybXVsYWlyZSkuPC9wPgoJCQkJCTxwPiggKkxvcnNxdWUgbGVzIGxhbmd1ZXMgc29udCBwciZlY2lyYzt0ZXMgJmFncmF2ZTsgbCd1dGlsaXNhdGlvbiwgbidvdWJsaWV6IHBhcyBkZSBsZXMgYWN0aXZlci4uLik8L3A+CgkJCQk8YnIvPjxoMz4mRWFjdXRlO3RhcGUgMzogbWVudSBkZSBsYW5ndWVzPC9oMz4KCQkJCQk8cD5Qb3VyIGFmZmljaGVyIGxlIG1lbnUgZGVzIGxhbmd1ZXMsIHV0aWxpc2V6IGxhIGJhbGlzZSBzdWl2YW50ZTo8YnIvPgoJCQkJCXtiYWJlbCBhY3Rpb249XCJtZW51XCJ9PGJyLz4KCQkJCQlvdSwgcG91ciBzcCZlYWN1dGU7Y2lmaWVyIHVuIGF1dHJlIGdhYmFyaXQgcXVlIGNlbHVpIHBhciBkJmVhY3V0ZTtmYXV0Ojxici8+CgkJCQkJe2JhYmVsIGFjdGlvbj1cIm1lbnVcIiB0ZW1wbGF0ZT1cInRlbXBsYXRlX25hbWVcIn08L3A+CgkJCQkJPHA+TGUgcGFyYW0mZWdyYXZlO3RyZSBcInNob3dcIiBwZXV0ICZlY2lyYzt0cmUgdXRpbGlzJmVhY3V0ZTsgcG91ciBjaG9pc2lyIHF1ZWxsZXMgbGFuZ3VlcyBhZmZpY2hlci48L3A+CgkJCQk8YnIvPjxoMz4mRWFjdXRlO3RhcGUgNCAoZmFjdWx0YXRpdmUpIDogRW50ciZlYWN1dGU7ZXMgbGluZ3Vpc3RpcXVlczwvaDM+CgkJCQkJPHA+RGFucyBsZXMgbW9kdWxlcywgbGVzIGJsb2NzIGRlIGNvbnRlbnUgZ2xvYmF1eCBvdSBuJ2ltcG9ydGUgbyZ1Z3JhdmU7LCB2b3VzIGF1cmV6IGJlc29pbiBkJ2FmZmljaGVyIGR1IGNvbnRlbnUgZCZlYWN1dGU7cGVuZGFudCBkZSBsYSBsYW5ndWUuIFRyYWRpdGlvbm5lbGxlbWVudCwgY2VsYSBlc3QgYWNjb21wbGkgZW4gdXRpbGlzYW50IGRlcyBjb25kaXRpb25zIGF2ZWMgbGEgdmFyaWFibGUgcGFnZV9sYW5nOjxici8+CgkJCQkJe2lmICQiLiJwYWdlX2xhbmcgPT0gXCJlbl9VU1wifUVuZ2xpc2ggdGV4dHtlbHNlaWYgJCIuInBhZ2VfbGFuZyA9PSBcImZyX0ZSXCJ9VGV4dGUgZW4gZnJhbiZjY2VkaWw7YWlzey9pZn08L3A+CgkJCQkJPHA+Q2V0dGUgbSZlYWN1dGU7dGhvZGUgZm9uY3Rpb25uZSB0b3Vqb3VycyBhdmVjIGNlIG1vZHVsZSwgbWFpcyB1bmUgYXV0cmUgbSZlYWN1dGU7dGhvZGUsIHBsdXMgY2VudHJhbGlzJmVhY3V0ZTtlLCB2b3VzIGVzdCBvZmZlcnRlLiBEYW5zIGxlIHBhbm5lYXUgZCdhZG1pbmlzdHJhdGlvbiBkdSBtb2R1bGUsIHZvdXMgdHJvdXZlcmV6IHBvdXIgY2hhcXVlIGxhbmd1ZSB1biBsaWVuIHBvdXIgbW9kaWZpZXIgc2VzIGVudHImZWFjdXRlO2VzIGxpbmd1aXN0aXF1ZXMuIExlcyBlbnRyJmVhY3V0ZTtlcyBsaW5ndWlzdGlxdWVzIHNvbnQgZGVzIGJvdXRzIGRlIHRleHRlIChvdSBodG1sKSBheWFudCB1biBjb250ZW51IGRpZmYmZWFjdXRlO3JlbnQgcG91ciBjaGFxdWUgbGFuZ3VlLiBWb3VzIGNyJmVhY3V0ZTtleiB1bmUgZW50ciZlYWN1dGU7ZSBsaW5ndWlzaXRxdWUgKHBhciBleGFtcGxlOiBcIndlbGNvbWUgdGV4dFwiKSwgZW50cmV6IHNvbiBjb250ZW51IHBvdXIgY2hhcXVlIGxhbmd1ZSwgZXQgYXBwZWxleiBsJ2VudHImZWFjdXRlO2UgbGEgb8O5IHZvdXMgZW4gYXZleiBiZXNvaW4gZGFucyBsZXMgZ2FiYXJpdHMgZW4gdXRpbGlzYW50IGwnYWN0aW9uIHBhciBkJmVhY3V0ZTtmYXV0IGV0IGxlIHBhcmFtJmVncmF2ZTt0cmUgXCJzaG93XCI6PGJyLz4KCQkJCQl7YmFiZWwgc2hvdz1cIndlbGNvbWUgdGV4dFwifTxici8+CgkJCQkJU2kgdm91cyBhdmV6IHBsdXNpZXVycyBsYW5ndWVzLCBvdSBzaSB2b3VzIGF2ZXogcGx1cyB0YXJkICZhZ3JhdmU7IG1vZGlmaWVyIGxlcyBlbnRyJmVhY3V0ZTtlcyBvdSBham91dGVyIGRlcyBsYW5ndWVzLCB2b3VzIHRyb3V2ZXogY2V0dGUgc29sdXRpb24gYmVhdWNvdXAgcGx1cyBwcmF0aXF1ZS4gTWFpcyBzaSB2b3VzIHByJmVhY3V0ZTtmJmVhY3V0ZTtyZXogbGEgcHJlbWkmZWdyYXZlO3JlLCBlbGxlIG5lIGZvbmN0aW9ubmUgcGFzIG1vaW5zLjwvcD4KCQkJCQk8cD5JbCBlc3QgYXVzc2kgcG9zc2libGUgZCdhc3NpZ25lciBsZXMgZW50ciZlYWN1dGU7ZXM6IDxici8+CgkJCQkJe2JhYmVsIHNob3c9XCJ3ZWxjb21lIHRleHRcIiBhc3NpZ249XCJ3ZWxjb21lXCJ9PGJyLz4KCQkJCQlvdSwgc2kgdm91cyB2b3VsZXogYXNzaWduZXIgcGx1c2lldXJzIGVudHImZWFjdXRlO2VzIGQndW4gc2V1bCBjb3VwLCBpbCBzdWZmaXQgZGUgbGVzIHMmZWFjdXRlO3BhcmVyIHBhciBkZXMgdmlyZ3VsZXM6PGJyLz4KCQkJCQl7YmFiZWwgc2hvdz1cImVudHJ5MSxlbnRyeTIsZW50cnkzXCIgYXNzaWduPVwidmFyMSx2YXIyLHZhcjNcIn08L3A+CQoJCQk8YnIvPjxoMz5NJmVhY3V0ZTt0aG9kZXMgZGUgcmVkaXJlY3Rpb248L2gzPgkKCQkJCTxwPklsIHkgYSBkZXV4IG0mZWFjdXRlO3Rob2RlcyBwb3NzaWJsZXMgcG91ciBkaXJlIGF1IGNtcyBxdWVsbGUgcGFnZSBlc3QgJmVhY3V0ZTtxdWl2YWxlbnRlICZhZ3JhdmU7IGxhIHBhZ2UgYWN0dWVsbGUuIFBhciBkJmVhY3V0ZTtmYXV0LCBsYSBtJmVhY3V0ZTt0aG9kZSBoaSZlYWN1dGU7cmFyY2hpcXVlIGVzdCBhY3RpdiZlYWN1dGU7ZSwgbWFpcyB2b3VzIHBvdXZleiBjaGFuZ2VyIGRlIG0mZWFjdXRlO3Rob2RlIGRhbnMgbCdvbmdsZXQgcGFyYW0mZWdyYXZlO3RyZXMgZHUgbW9kdWxlLjwvcD4KCQkJCTxici8+PGg0PkxhIG0mZWFjdXRlO3Rob2RlIHBhciBkJmVhY3V0ZTtmaW5pdGlvbiBkZSBNYXJjb3MgQ3J1ejwvaDQ+CgkJCQkJPHA+PGk+QXZhbnRhZ2VzOjwvaT4gUGVybWV0IGxhIHBlcnNvbm5hbGlzYXRpb24gZXQgbGVzIHRyYWR1Y3Rpb25zIHBhcnRpZWxsZXMuPGJyLz4KCQkJCQk8aT5JbmNvbnYmZWFjdXRlO25pZW50czo8L2k+IFZvdXMgZGV2ZXogc3AmZWFjdXRlO2NpZmllciBsZXMgYWx0ZXJuYXRpdmVzIGxpbmd1aXN0aXF1ZXMgcG91ciBjaGFxdWUgcGFnZSwgZXQgbGVzIG1ldHRyZSAmYWdyYXZlOyBqb3VyIHNpciBsJ2FsaWFzIGNoYW5nZS48L3A+CgkJCQkJPHA+QWpvdXRlciBsYSBiYWxpc2Ugc3VpdmFudGUgZGFucyBjaGFjdW4gZGUgdm9zIGdhYmFyaXQgZGUgcGFnZSA6PGJyLz4KCQkJCQl7Y29udGVudCBibG9jaz0nQXV0cmVzIGxhbmd1ZXMnIG9uZWxpbmU9J3RydWUnIGFzc2lnbj1vdGhlcl9sYW5ndWFnZXMgd3lzaXd5Zz0nZmFsc2UnfTxici8+CgkJCQkJVW4gbm91dmVhdSBibG9jIGRlIGNvbnRlbnUgJmFncmF2ZTsgcmVtcGxpciBzZXJhIGFqb3V0JmVhY3V0ZTsgbG9yc3F1ZSB2b3VzIG1vZGlmaWVyIGxhIHBhZ2UuIENlIGJsb2Mgc2VyYSB1dGlsaXMmZWFjdXRlOyBwb3VyIGQmZWFjdXRlO2ZpbmlyIGxlcyAmZWFjdXRlO3F1aXZhbGVudHMgbGluZ3Vpc2l0aXF1ZXMgZGFucyBsZXMgYXV0cmVzIGxhbmd1ZXMgcG91ciBjZXR0ZSBwYWdlLCBkZSBsYSBtYW5pJmVncmF2ZTtyZSBzdWl2YW50ZTo8YnIvPgoJCQkJCVwiZW5fVVM9cGFnZTE7ZnJfRlI9cGFnZTI7ZGVfREU9cGFnZTNcIiAoc2FucyBsZXMgZ3VpbGxlbWV0cyAtIGwnb3JkcmUgZXN0IHNhbnMgaW1wb3J0YW5jZSwgbWFpcyBpbCBuZSBkb2l0IHBhcyB5IGF2b2lyIGQnZXNwYWNlKTxici8+CgkJCQkJbyZ1Z3JhdmU7IHBhZ2UxLCBwYWdlMiBldCBwYWdlMyBzb250IHJlc3BlY3RpdmVtZW50IGxlcyBhbGlhcyBkZXMgcGFnZXMuPC9wPgoJCQkJCTxwPlBvdXIgcXVlIGxlIG1vZHVsZSB1dGlsaXNlIGNldHRlIG0mZWFjdXRlO3Rob2RlLCBhc3N1cmV6LXZvdXMgcXVlIGwnb3B0aW9uIFwiVXRpbGlzZXIgbGEgaGllcmFyY2hpZSBwb3VyIGxhIHJlZGlyZWN0aW9uXCIgZXN0IGQmZWFjdXRlO2NvY2gmZWFjdXRlO2UgZGFucyBsJ29uZ2xldCBwYXJhbSZlZ3JhdmU7dHJlcy48L3A+CgkJCQk8YnIvPjxoND5MYSBtJmVhY3V0ZTt0aG9kZSBoaSZlYWN1dGU7cmFyY2hpcXVlPC9oND4KCQkJCQk8cD48aT5BdmFudGFnZXM6PC9pPiBjJ2VzdCBhdXRvbWF0aXF1ZSAtIHZvdXMgbidhdmV6IHJpZW4gJmFncmF2ZTsgZmFpcmUuPGJyLz4KCQkJCQk8aT5JbmNvbnYmZWFjdXRlO25pZW50czo8L2k+IGxhIHN0cnVjdHVyZSBkZXMgcGFnZXMgZG9pdCAmZWNpcmM7dHJlIGlkZW50aXF1ZSBwb3VyIGNoYXF1ZSBsYW5ndWUuPC9wPgoJCQkJCTxwPkNldHRlIHNvbHV0aW9uIHV0aWxpc2UgbGEgaGkmZWFjdXRlO3JhcmNoaWUgZGVzIHBhZ2VzIHBvdXIgc2F2b2lyIHF1ZWxsZXMgcGFnZXMgc29udCAmZWFjdXRlO3F1aXZhbGVudGVzLiBEYW5zIGwnZXhlbXBsZSBjaS1oYXV0LCBcIjIuMy4gUGFnZSAzXCIgc2VyYWl0IGwnJmVhY3V0ZTtxdWl2YWxlbnQgZnJhbiZjY2VkaWw7YWlzIGRlIFwiMS4zLiAzcmQgcGFnZVwiLCBwYXJjZSBxdSdlbGxlIG9jY3VwZSBsYSBtJmVjaXJjO21lIHBvc2l0aW9uIHJlbGF0aXZlIGRhbnMgbGEgYnJhbmNoZSBmcmFuJmNjZWRpbDthaXNlLjxici8+CgkJCQkJRW4gZCdhdXRyZXMgbW90cywgc2kgbGVzIHBhZ2VzICZlYWN1dGU7dGFpZW50IG9yZG9ubiZlYWN1dGU7ZXMgZGlmZiZlYWN1dGU7cmVtbWVudCwgdG91dCBzZXJhaXQgbSZlYWN1dGU7bGFuZyZlYWN1dGU7OjwvcD4KCQkJCQk8dWw+CgkJCQkJCTxsaT4xLiBFbmdsaXNoPHVsPgoJCQkJCQkJPGxpPjEuMS4gMXN0IHBhZ2U8L2xpPgoJCQkJCQkJPGxpPjEuMi4gMm5kIHBhZ2U8L2xpPgoJCQkJCQkJPGxpPjEuMy4gM3JkIHBhZ2U8L2xpPgoJCQkJCQk8L3VsPjwvbGk+CgkJCQkJCTxsaT4yLiBGcmFuJmNjZWRpbDthaXM8dWw+CgkJCQkJCQk8bGk+Mi4xLiBQYWdlIDE8L2xpPgoJCQkJCQkJPGxpPjIuMi4gUGFnZSAzPC9saT4KCQkJCQkJCTxsaT4yLjMuIFBhZ2UgMjwvbGk+CgkJCQkJCTwvdWw+PC9saT4KCQkJCQk8L3VsPgoJCQkJCTxwPkljaSwgXCJQYWdlIDJcIiBvY2N1cGUgbGEgdHJvaXNpJmVncmF2ZTttZSBwb3NpdGlvbiwgYWluc2kgZWxsZSBzZXJhaXQgcHJpc2UgcG91ciAmZWFjdXRlO3F1aXZhbGVudCAmYWdyYXZlOyBsYSB0cm9pc2kmZWdyYXZlO21lIHBhZ2UgKDEuMy4gM3JkIHBhZ2UpIGVuIGFuZ2xhaXMuPGJyLz4KCQkJCQlDZWxhIHNpZ25pZmllIGF1c3NpIHF1ZSBzaSB0b3V0ZXMgbGVzIHBhZ2VzIG4nZXhpc3RlbnQgcGFzIGRhbnMgdG91dGVzIGxlcyBsYW5ndWVzLCB2b3VzIGRldmV6IGZhaXJlIGF0dGVudGlvbi4gUGFyIGV4YW1wbGU6PC9wPgoJCQkJCTx1bD4KCQkJCQkJPGxpPjEuIEVuZ2xpc2g8dWw+CgkJCQkJCQk8bGk+MS4xLiAxc3QgcGFnZTwvbGk+CgkJCQkJCQk8bGk+MS4yLiAybmQgcGFnZTwvbGk+CgkJCQkJCQk8bGk+MS4zLiAzcmQgcGFnZTwvbGk+CgkJCQkJCTwvdWw+PC9saT4KCQkJCQkJPGxpPjIuIEZyYW4mY2NlZGlsO2Fpczx1bD4KCQkJCQkJCTxsaT4yLjEuIFBhZ2UgMjwvbGk+CgkJCQkJCQk8bGk+Mi4yLiBQYWdlIDM8L2xpPgoJCQkJCQk8L3VsPjwvbGk+CgkJCQkJPC91bD4KCQkJCQk8cD5JY2ksIFwiMXN0IHBhZ2VcIiBzZXJhaXQgbCcmZWFjdXRlO3F1aXZhbGVudCBkZSBcIlBhZ2UgMlwiIGV0IGxlIHN5c3QmZWdyYXZlO21lIGNyb2lyYWl0IHF1ZSBcIjNyZCBwYWdlXCIgbidhIHBhcyBkZSB0cmFkdWN0aW9uLCBhbG9ycyBxdSdlbGxlIGVuIGEgYmllbiB1bmUuPC9wPgoJCQk8YnIvPjxoMz5Qcm9ibCZlZ3JhdmU7bWVzPC9oMz4KCQkJCTxwPkxhIGxhbmd1ZSBkZSBsYSBwYWdlIGRldnJhaXQgJmVjaXJjO3RyZSBkJmVhY3V0ZTt0ZWN0JmVhY3V0ZTtlIGF1dG9tYXRpcXVlbWVudCAoc3VyIGxhIGJhc2UgZCd1biAmZWFjdXRlO3YmZWFjdXRlO25lbWVudCkgZXQgYXNzaWduJmVhY3V0ZTtlIGF1eCB2YXJpYWJsZXMgc21hcnR5IGF2YWl0IHF1ZSBsZSBnYWJhcml0IG5lIHNvaXQgdHJhaXQmZWFjdXRlOy4gSWwgZXN0IHRvdXRlZm9pcyBwb3NzaWJsZSBxdScmYWdyYXZlOyBjZXJ0YWlucyBlbmRyb2l0cyBkYW5zIGxlIGdhYmFyaXQgZGUgcGFnZSAoY29uc2lkJmVhY3V0ZTtyYW50IHF1J2lsIGVzdCB0cmFpdCZlYWN1dGU7IHBhciBtb3JjZWF1eCkgbGEgdmFyaWFibGUgY29udGVudSBsYSBsYW5ndWUgc29pdCBwZXJkdWUuIFNpIHZvdXMgcmVuY29udHJleiBkZXMgcHJvYmwmZWdyYXZlO21lcyBkZSBjZSBnZW5yZSwgdm91cyBwb3V2ZXogdXRpbGlzZXIgbGEgYmFsaXNlIHtiYWJlbCBhY3Rpb249XCJhc3NpZ25cIn0gcG91ciBsYSByJmVhY3V0ZTthc3NpZ25lci48YnIvPgoJCQkJTm90ZXogcXVlIHZvdXMgcG91dmV6IGF1c3NpIHV0aWxpc2VyIHtiYWJlbCBhY3Rpb249XCJhdXRvX3JlZGlyZWN0XCJ9IGF1IGQmZWFjdXRlO2J1dCBkZSB2b3MgZ2FiYXJpdCBzaSAoamUgbmUgdm9pcyBwYXMgZGUgcmFpc29uKSBsYSByZWRpcmVjdGlvbiBuZSBzJ2VmZmVjdHVlIHBhcyBhdXRvbWF0aXF1ZW1lbnQuPC9wPgoJCQk8YnIvPjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgoJCQkJPHA+Q2UgbW9kdWxlIGEgJmVhY3V0ZTt0JmVhY3V0ZTsgY3ImZWFjdXRlOyZlYWN1dGU7IHBhciBQaWVycmUtTHVjIEdlcm1haW4gKHBsZ2VyKSwgYmFzJmVhY3V0ZTsgc3VyIHVuZSBhcHByb2NoZSBwYXIgTWFyY29zIENydXosIGV0IGVzdCByZW5kdSBwdWJsaXF1ZSBzb3VzIGxhIEdOVSBQdWJsaWMgTGljZW5zZS48L3A+PGJyLz48YnIvPiI7CgoKLy9TRVRUSU5HUwokbGFuZ1sic2V0dGluZ3MiXSA9ICJQYXJhbSZlZ3JhdmU7dHJlcyI7CiRsYW5nWyJwcmVmX2F1dG9yZWRpcmVjdF9ob21lIl0gPSAiUmVkaXJlY3Rpb24gYXV0b21hdGlxdWUgc3VyIGxlcyBwYWdlcyBzZWxvbiBsYSBsYW5ndWUgZHUgbmF2aWdhdGV1cj8qPGJyLz5Mb3JzcXVlIGwndXRpbGlzYXRldXIgYXJyaXZlIHN1ciB1bmUgZGVzIHBhZ2VzIGQnYWNjdWVpbCwgc2kgbGEgbGFuZ3VlIGRlIHNvbiBuYXZpZ2F0ZXVyIGNvcnJlc3BvbmQgJmFncmF2ZTsgbCd1bmUgZGVzIGxhbmd1ZXMgZGlzcG9uaWJsZXMgaWwgc2VyYSByZWRpcmlnJmVhY3V0ZTsgdmVycyBjZXR0ZSBsYW5ndWUuIjsKJGxhbmdbInByZWZfYXV0b3JlZGlyZWN0X2FsbCJdID0gIlJlZGlyZWN0aW9uIGF1dG9tYXRpcXVlIHBvdXIgdG91dGVzIGxlcyBwYWdlcyBzZWxvbiBsYSBsYW5ndWUgZHUgbmF2aWdhdGV1cj8qPGJyLz4oY29tbWUgbCdvcHRpb24gcHImZWFjdXRlO2MmZWFjdXRlO2RlbnRlLCBtYWlzIHBvdXIgdG91dGVzIGxlcyBwYWdlcykiOwokbGFuZ1sicHJlZl9jb29raWVzX2F1dG9yZWRpcmVjdF9ob21lIl0gPSAiUmVkaXJlY3Rpb24gYXV0b21hdGlxdWUgc2Vsb24gbGEgbGFuZ3VlIGVucmVnaXN0ciZlYWN1dGU7ZSBkYW5zIGxlcyBjb29raWVzIHBvdXIgbGVzIHBhZ2VzIGQnYWNjdWVpbD88YnIvPlNpIGwndXRpbGlzYXRldXIgYXJyaXZlIHN1ciB1bmUgZGVzIHBhZ2VzIGQnYWNjdWVpbCBldCBhIGF1cGFyYXZhbnQgbmF2aWd1JmVhY3V0ZTsgbGUgc2l0ZSBkYW5zIHVuZSBhdXRyZSBsYW5ndWUsIGlsIHNlcmEgcmVkaXJpZyZlYWN1dGU7IHZlcnMgY2V0dGUgbGFuZ3VlLiI7CiRsYW5nWyJwcmVmX2Nvb2tpZXNfYXV0b3JlZGlyZWN0X2FsbCJdID0gIlJlZGlyZWN0aW9uIGF1dG9tYXRpcXVlIHNlbG9uIGxhIGxhbmd1ZSBlbnJlZ2lzdHImZWFjdXRlO2UgZGFucyBsZXMgY29va2llcyBwb3VyIHRvdXRlcyBsZXMgcGFnZXM/PGJyLz4oY29tbWUgbCdvcHRpb24gcHImZWFjdXRlO2MmZWFjdXRlO2RlbnRlLCBtYWlzIHBvdXIgdG91dGVzIGxlcyBwYWdlcykiOwokbGFuZ1sicHJlZl9oaWVyYXJjaHlfcmVkaXJlY3QiXSA9ICJVdGlsaXNlciBsYSBoaSZlYWN1dGU7cmFyY2hpZSBwb3VyIGxhIHJlZGlyZWN0aW9uPyAodm9pciBsJ2FpZGUgcG91ciBwbHVzIGQnaW5mb3JtYXRpb24pPGJyLz5DZWxhIGltcGxpcXVlIHF1ZSBsYSBzdHJ1Y3R1cmUgZGVzIHBhZ2VzIGRvaXQgJmVjaXJjO3RyZSBsYSBtJmVjaXJjO21lIHBvdXIgY2hhcXVlIGxhbmd1ZS4gU2kgdm91cyBuJ3V0aWxpc2V6IHBhcyBjZXR0ZSBvcHRpb24sIGlsIHZvdXMgZmF1ZHJhIGQmZWFjdXRlO2ZpbmlyIGxlcyBhbHRlcm5hdGl2ZXMgbGluZ3Vpc3RpcXVlcyBtYW51ZWxsZW1lbnQuIjsKJGxhbmdbInByZWZfZGVmYXVsdF9oaWRlIl0gPSAiQ2FjaGVyIGxlIGxpZW4gZGFucyBsZSBtZW51IGRlIGxhbmd1ZXMgbG9yc3F1ZSBsYSBwYWdlIG4nZXhpc3RlIHBhcy48YnIvPlNpIGxlIGxpZW4gZGUgbGFuZ3VlIHBvaW50ZSB2ZXJzIHVuZSBwYWdlIHF1aSBuJ2V4aXN0ZSBwYXMsIGNhY2hlciBsZSBsaWVuIChzaW5vbiwgbGUgbGllbiBwb2ludGVyYSB2ZXJzIGxhIHBhZ2UgcGFyIGQmZWFjdXRlO2ZhdXQgZGUgbGEgbGFuZ3VlKS4iOwokbGFuZ1sicHJlZl9kZWZhdWx0X3RyYW5zbGF0ZSJdID0gIlV0aWxpc2VyIGxhIGxhbmd1ZSBwYXIgZCZlYWN1dGU7ZmF1dCBsb3JzcXVlIGxlcyBlbnRyJmVhY3V0ZTtlcyBsaW5ndWlzdGlxdWVzIHNvbnQgdmlkZXMgcG91ciBsYSBsYW5ndWUgYWN0dWVsbGUuIjsKJGxhbmdbInByZWZfaGlkZV9taXNzaW5nZW50cmllcyJdID0gIkNhY2hlciBsZXMgbWVzc2FnZXMgZCdlcnJldXIgcG91ciBsZXMgZW50ciZlYWN1dGU7ZXMgbGluZ3Vpc3RpcXVlcyBpbmNvbm51ZXMuIjsKJGxhbmdbInByZWZfd3lzaXd5ZyJdID0gIkFjdGl2ZXIgbGUgd3lzaXd5ZyBkYW5zIGxlcyBlbnRyJmVhY3V0ZTtlcyBsaW5ndWlzdGlxdWVzLiI7CiRsYW5nWyJwcmVmX3VzZV9wYWdlX3RpdGxlIl0gPSAiVXRpbGlzZXIgbGUgdGl0cmUgZGVzIHBhZ2VzIGRhbnMgbGVzIGxpZW5zIGR1IG1lbnUgZGUgbGFuZ3VlcyAocGx1dCZvY2lyYzt0IHF1ZSBsZSBub20gZGUgbGEgbGFuZ3VlKS4iOwokbGFuZ1sicHJlZl9jdXJyZW50X2xpbmsiXSA9ICJEYW5zIGxlIG1lbnUgZGUgbGFuZ3VlcywgYWZmaWNoZXIgYXVzc2kgbGUgbGllbiB2ZXJzIGxhIHBhZ2UgKGxhIGxhbmd1ZSkgYWN0dWVsbGUuIjsKJGxhbmdbImhlbHBfcmVkaXJlY3Rpb24iXSA9ICIqTm90ZTogU2kgdm91cyB1dGlsaXNleiBsYSByZWRpcmVjdGlvbiBzZWxvbiBsYSBsYW5ndWUgZHUgbmF2aWdhdGV1ciwgYXNzdXJlei12b3VzIGQndXRpbGlzZXIgYXVzc2kgbGEgcmVkaXJlY3Rpb24gcGFyIGNvb2tpZXMgY29ycmVzcG9uZGFudGUsIHNpbm9uIHZvcyB1dGlsaXNhdGV1cnMgc2Vyb250IDxiPmZvcmMmZWFjdXRlO3M8L2I+IGRlIHZvaXIgbGEgcGFnZSBkYW5zIGxhIGxhbmd1ZSBkZSBsZXVyIG5hdmlnYXRldXIuIjsKCgovL1BBUkFNRVRFUlMKJGxhbmdbInBoZWxwX2FjdGlvbiJdID0gIkFjdGlvbnMgZGlzcG9uaWJsZXM6IFwiZGVmYXVsdFwiIChwb3VyIGxlcyB0cmFkdWN0aW9ucykgb3UgXCJtZW51XCIuIjsKJGxhbmdbInBoZWxwX3Nob3ciXSA9ICJQb3VyIGwnYWN0aW9uIG1lbnUsIHNwJmVhY3V0ZTtjaWZpZSBsZXMgbGFuZ3VlcyAmYWdyYXZlOyBhZmZpY2hlciAodXRpbGlzZXIgbGVzIGNvZGVzIGRlIGxhbmd1ZSBldCBzJmVhY3V0ZTtwYXJlciBwYXIgZGVzIHZpcmd1bGVzKS4gUG91ciBsJ2FjdGlvbiBwYXIgZCZlYWN1dGU7ZmF1dCwgc3AmZWFjdXRlO2NpZmllIGxlIG5vbSBkZSBsJ2VudHImZWFjdXRlO2UgbGluZ3Vpc3RpcXVlICZhZ3JhdmU7IGFmZmljaGVyLiI7CiRsYW5nWyJwaGVscF90ZW1wbGF0ZSJdID0gIkdhYmFyaXQgJmFncmF2ZTsgdXRpbGlzZXIgcG91ciBsZSBtZW51LiI7CiRsYW5nWyJwaGVscF9hc3NpZ24iXSA9ICJQbHV0Jm9jaXJjO3QgcXVlIGQnYWZmaWNoZXIgbGUgciZlYWN1dGU7c3VsdGF0IGltbSZlYWN1dGU7ZGlhdGVtZW50LCB2b3VzIHBvdXZleiBsJ2Fzc2lnbmVyICZhZ3JhdmU7IGxhIHZhcmlhYmxlIHNwJmVhY3V0ZTtjaWZpJmVhY3V0ZTtlIHBhciBjZSBwYXJhbSZlZ3JhdmU7dHJlLiI7CgoKDQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCiRkYiA9JiAkdGhpcy0+R2V0REIoKTsNCiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsNCiR0YWJvcHRhcnJheSA9IGFycmF5KCJteXNxbCIgPT4gIlRZUEU9TXlJU0FNIik7DQoNCg0KLy8gQ3JlYXRlcyB0aGUgbGFuZ3VhZ2VzIHRhYmxlDQokZmxkcyA9ICINCglsYW5nY29kZSBDKDgpIEtFWSwNCglyb290X2lkIEksDQoJZGVmYXVsdF9pZCBJLA0KCW5hbWUgQyg2NCksDQoJbWVudV9uYW1lIEMoNjQpLA0KCWFjdGl2ZSBMLA0KCWl0ZW1fb3JkZXIgSQ0KCSI7DQoNCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9iYWJlbF9sYW5ndWFnZXMiLCAkZmxkcywgJHRhYm9wdGFycmF5KTsNCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCiRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfYmFiZWxfbGFuZ3VhZ2VzX3NlcSIpOw0KCQ0KDQovLyBDcmVhdGVzIHRoZSBsYW5ndWFnZSBrZXlzIHRhYmxlDQokZmxkcyA9ICINCglzdHJpbmdpZCBJIEtFWSwNCgljYXB0aW9uIEMoMTI4KQ0KCSI7DQoNCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9iYWJlbF9sYW5na2V5cyIsICRmbGRzLCAkdGFib3B0YXJyYXkpOw0KJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9iYWJlbF9sYW5na2V5c19zZXEiKTsNCg0KDQovLyBDcmVhdGVzIHRoZSBsYW5ndWFnZSBlbnRyaWVzIHRhYmxlDQokZmxkcyA9ICINCglzdHJpbmdpZCBJLA0KCWxhbmdjb2RlIEMoNSksDQoJdmFsdWUgQygyNTUpDQoJIjsNCg0KJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2JhYmVsX2xhbmdlbnRyaWVzIiwgJGZsZHMsICR0YWJvcHRhcnJheSk7DQokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQoNCiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCJhZG1pbl9iYWJlbCIsICJCYWJlbDogYWRtaW4iKTsNCg0KJG1vZHByZWZzID0gJHRoaXMtPmdldF9tb2RwcmVmcygpOw0KZm9yZWFjaCgkbW9kcHJlZnMgYXMgJG9uZXByZWYpCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCRvbmVwcmVmWzBdLCRvbmVwcmVmWzFdKTsNCg0KJGRlZnRwbCA9ICc8dWwgaWQ9Imxhbmd1YWdlX21lbnUiPg0Ke2ZvcmVhY2ggZnJvbT0kbGFuZ3VhZ2VzIGl0ZW09Imxhbmd1YWdlIn0NCiAgIHtpZiAkbGFuZ3VhZ2UtPmlzX2N1cnJlbnR9PGxpIGNsYXNzPSJhY3RpdmUiPjxhIHtpZiAkbGFuZ3VhZ2UtPnVybH1ocmVmPSJ7JGxhbmd1YWdlLT51cmx9IiB7L2lmfWNsYXNzPSJhY3RpdmUiPntlbHNlfTxsaT48YSBocmVmPSJ7JGxhbmd1YWdlLT51cmx9Ij57L2lmfXskbGFuZ3VhZ2UtPm1lbnVfbmFtZX08L2E+PC9saT4NCnsvZm9yZWFjaH0NCjwvdWw+JzsNCiR0aGlzLT5TZXRUZW1wbGF0ZSgiZGVmYXVsdCIsJGRlZnRwbCk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgiZGVmYXVsdHRlbXBsYXRlIiwiZGVmYXVsdCIpOw0KJHRoaXMtPlJlZ2lzdGVyRXZlbnRzKCk7DQoNCi8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZw0KJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygiZnJpZW5kbHluYW1lIiksICR0aGlzLT5MYW5nKCJpbnN0YWxsZWQiLCR0aGlzLT5HZXRWZXJzaW9uKCkpKTsNCg0K]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQoNCi8vIFR5cGljYWwgRGF0YWJhc2UgSW5pdGlhbGl6YXRpb24NCiRkYiA9ICYkdGhpcy0+R2V0REIoKTsNCiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsNCg0KDQokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2JhYmVsX2xhbmd1YWdlcyIpOw0KJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KJGRiLT5Ecm9wU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfYmFiZWxfbGFuZ3VhZ2VzX3NlcSIpOw0KDQoNCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfYmFiZWxfbGFuZ2tleXMiKTsNCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCiRkYi0+RHJvcFNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2JhYmVsX2xhbmdrZXlzX3NlcSIpOw0KDQoNCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfYmFiZWxfbGFuZ2VudHJpZXMiKTsNCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCg0KJHRoaXMtPkRlbGV0ZVRlbXBsYXRlKCIiLCR0aGlzLT5HZXROYW1lKCkpOw0KDQokdGhpcy0+UmVtb3ZlUGVybWlzc2lvbigiYWRtaW5fYmFiZWwiKTsNCiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCk7DQoNCi8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZw0KJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygiZnJpZW5kbHluYW1lIiksICR0aGlzLT5MYW5nKCJ1bmluc3RhbGxlZCIpKTsNCg0K]]></data>
	</file>
	<file>
	  <filename>/redirect.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZXJyb3JfcmVwb3J0aW5nKDApOwppZighaXNzZXQoJF9HRVRbIm5ld3VybCJdKSApewoJaGVhZGVyKCJsb2NhdGlvbjogaW5kZXgucGhwIik7Cn1lbHNlewoJaWYoaXNzZXQoJF9HRVRbIm5ld2xhbmciXSkpCXNldGNvb2tpZSgndXNybGFuZycsJF9HRVRbIm5ld2xhbmciXSx0aW1lKCkrODY0MDAqMzAsJy8nKTsKCWhlYWRlcigibG9jYXRpb246ICIuJF9HRVRbIm5ld3VybCJdKTsKfQoK]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/adminpanel.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHA+eyRhZGRuZXd9PC9wPgp7aWYgY291bnQoJGl0ZW1saXN0KSA+IDB9CjxkaXY+Cjx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+Cjx0aGVhZD48dHI+Cgl7Zm9yZWFjaCBmcm9tPSRhZG1pbnNob3cgaXRlbT1jb2x1bW59CgkJPHRoPnskY29sdW1uWzBdfTwvdGg+Cgl7L2ZvcmVhY2h9CjwvdHI+PC90aGVhZD4KPHRib2R5Pgp7Y3ljbGUgdmFsdWVzPSJyb3cyLHJvdzEiIGFzc2lnbj1yb3djbGFzcyByZXNldD10cnVlfQp7Zm9yZWFjaCBmcm9tPSRpdGVtbGlzdCBpdGVtPW9uZWl0ZW19CntjeWNsZSB2YWx1ZXM9InJvdzIscm93MSIgYXNzaWduPXJvd2NsYXNzfQo8dHIgY2xhc3M9Inskcm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9JzsiPgoJe2ZvcmVhY2ggZnJvbT0kYWRtaW5zaG93IGl0ZW09Y29sdW1ufQoJCXthc3NpZ24gdmFyPW9uZXZhbCB2YWx1ZT0kY29sdW1uWzFdfQoJCTx0ZD57JG9uZWl0ZW0tPiRvbmV2YWx9PC90ZD4KCXsvZm9yZWFjaH0KPC90cj4Key9mb3JlYWNofQo8L3Rib2R5Pgo8L3RhYmxlPgo8L2Rpdj4KPHA+eyRhZGRuZXd9PC9wPnsvaWZ9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/editlang.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgxPnskZWRpdHRpdGxlfTwvaDE+DQp7aWYgJGxhbmdzZWxlY3R9DQoJPGRpdiBpZD0iYmFiZWxfbGFuZ3NlbGVjdGRpdiIgY2xhc3M9InBhZ2VvdmVyZmxvdyIgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAwMDsiPg0KCQk8cD57JGxhbmdzZWxlY3RfbGFiZWx9PGJyLz57JGxhbmdzZWxlY3R9PGJyLz48L3A+DQoJPC9kaXY+DQp7L2lmfQ0KDQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG5hbWVfbGFiZWx9KiA6PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JG5hbWVfaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRsYW5nY29kZV9sYWJlbH0qIDo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskbGFuZ2NvZGVfaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRtZW51X25hbWVfbGFiZWx9IDo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskbWVudV9uYW1lX2lucHV0fTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskcm9vdF9pZF9sYWJlbH0qIDo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcm9vdF9pZF9pbnB1dH08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGRlZmF1bHRfaWRfbGFiZWx9IDo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZGVmYXVsdF9pZF9pbnB1dH08L3A+DQoJPC9kaXY+DQo8YnIvPg0KPHA+eyRzdWJtaXR9IHskYXBwbHl9IHskY2FuY2VsfTwvcD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCnZhciBtb2R1bGVpZCA9ICJ7JHBsaWR9IjsNCntsaXRlcmFsfQ0KZnVuY3Rpb24gbGFuZ3VhZ2VmaWxsKHJhd2RhdGEpew0KCXZhciBuZXdkYXRhID0gcmF3ZGF0YS5zcGxpdCgnLycpOw0KCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG1vZHVsZWlkKydsYW5nY29kZScpLnZhbHVlID0gbmV3ZGF0YVswXTsNCglkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtb2R1bGVpZCsnbmFtZScpLnZhbHVlID0gbmV3ZGF0YVsxXTsNCglkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtb2R1bGVpZCsnbWVudV9uYW1lJykudmFsdWUgPSBuZXdkYXRhWzFdOw0KCXJldHVybiBmYWxzZTsNCn0NCnZhciBsYW5nc2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhYmVsX2xhbmdzZWxlY3RkaXYnKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0Jyk7DQppZihsYW5nc2VsZWN0WzBdKSBsYW5nc2VsZWN0WzBdLm9uY2hhbmdlID0gZnVuY3Rpb24oKXsNCglsYW5ndWFnZWZpbGwodGhpcy52YWx1ZSk7DQp9Ow0KbGFuZ3NlbGVjdCA9IG51bGw7DQp7L2xpdGVyYWx9DQo8L3NjcmlwdD4NCg==]]></data>
	</file>
	<file>
	  <filename>/templates/entriestable.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
</module>
