<?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>ModuleGenerator</name>
	<version>2.1</version>
  <mincmsversion>1.9.4</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5Nb2R1bGUgZ2VuZXJhdG9yIGxldHMgeW91IGNyZWF0ZSBhIGxpc3QgdGhlIG1vZHVsZXMgYXMgTmV3cywgUHJvZHVjdHMgYXRjLiBJbmRpdmlkdWFsIG1vZHVsZXMsIHlvdSBjYW4gbGluayBiZXR3ZWVuIHRoZW0uICBZb3UgY2FuIGNyZWF0ZSBhIG1vZHVsZSBQZW9wbGUsIEdlbmRlciBhbmQgVHlwZSBvZiBlbXBsb3ltZW50IGFuZCBsaW5rIGJldHdlbiB0aGVtLjwvcD4NCjxwPkVhY2ggbW9kdWxlIGluY2x1ZGVzIHRoZSBhYmlsaXR5IHRvIGNyZWF0ZWQgY2F0ZWdvcmllcywgY3VzdG9tIGZpZWxkcyAgYW5kIGVkaXRlZCBhIG51bWJlciBvZiBzZXR0aW5ncy48L3A+DQo8cD5Zb3UgY2FuIHVzZSB0aGUgbGlzdCB0ZW1wbGF0ZXMgLCBjYXRlZ29yaWVzIHRlbXBsYXRlcyAsIGZpbHRlciB0ZW1wbGF0ZXMsIG9yIGRldGFpbCB0ZW1wbGF0ZXMgYXMgaXQgYWxyZWFkeSBrbm93biBtb2R1bGVzIGZyb20gTmV3cywgUHJvZHVjdHMgZXRjLjwvcD48aDM+WiZhYWN1dGU7dmlzbG9zdGk8L2gzPjx1bD48bGk+Q0dFeHRlbnNpb25zID0mZ3Q7IDEuMjM8L2xpPjxsaT5FeHRlbmRlZFRvb2xzID0mZ3Q7IDEuMS4xPC9saT48bGk+Q0dTbWFydEltYWdlID0mZ3Q7IDEuNTwvbGk+PC91bD48aDM+UGFyYW1ldHJlPC9oMz48dWw+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGFuZz0iZW5fVVMiIC0gUGFyYW1ldGVyICZzY2Fyb247cGVjaWZpa3VqZSwgYWsmeWFjdXRlOyBqYXp5ayBzYSBtJmFhY3V0ZTsgcG91xb5pxaUgcHJlIHpvYnJhemVuaWUuIE5pZSB2JnNjYXJvbjtldGt5IG1vZHVseSB0byBwb2Rwb3J1aiZ1YWN1dGU7LCBhbGVibyBwb3RyZWJ1aiZ1YWN1dGU7LjwvbGk+PC91bD4=]]></help>
	<about><![CDATA[PGJyIC8+QXV0b3I6IEBrdXptYW55ICZsdDt6ZGVub0BrdXptYW55LmJpeiZndDs8YnIgLz48YnIgLz5WZXJ6aWE6IDIuMTxiciAvPjxiciAvPkhpc3Qmb2FjdXRlO3JpYSB6bWllbjo8YnIgLz48dWw+DQo8bGk+VmVyc2lvbiAyLjAgMjcuIGZlYnJ1YXIsIDIwMTIgDQo8YnIgLz5hZGQgZ2FsbGVyeSAtIG11dGxpdXBsb2FkLCBzb3J0aW5nLCByZXNpemUNCjwvbGk+DQo8bGk+VmVyc2lvbiAxLjkgSmFudWFyLCAyMDEyIA0KPGJyIC8+YWRkIGNhdGVnb3J5IGN1c3RvbSBmaWVsZHMsIG1vdmVkIHRvIHRoZWlyIG93biBzZWN0aW9uLg0KPGJyIC8+IHVwZ3JhZGUgc2NyaXB0IGNvbXBhdGlibGUgd2l0aCAxLjguMSB2ZXJzaW9uDQo8YnIgLz4gZml4IHNvbWUgaXNzdWVzDQo8L2xpPg0KPGxpPlZlcnNpb24gMS44LjEgSmFudWFyLCAyMDEyIA0KPGJyIC8+YWRkIG9wdGlvbiBmb3IgcHJldmlldyBpbiBhZG1pbg0KPGJyIC8+YWRkIHByZXZpZXcgaWNvbiBpbiBhZG1pbg0KPGJyIC8+YWRkIG9wdGlvbiBmb3IgY29weSBpdGVtDQo8YnIgLz5maXggYXV0bG9hZCBjbGFzcyBnZW5lcmF0b3Jfb3B0cyBpbiBhZG1pbg0KPC9saT4NCjxsaT5WZXJzaW9uIDEuOCBKYW51YXIsIDIwMTEgLSAgaXRlbSBwcmV2aWV3LCBidWcgZml4ZXM8L2xpPg0KPGxpPlZlcnNpb24gMS43IE5vdmVtYmVyLCAyMDExIC0gIGluaXQgcmVsZWFzZTwvbGk+DQo8L3VsPjxiciAvPg==]]></about>
	<description><![CDATA[This module give solution for creating custom modules.]]></description>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.23</requiredversion>
	</requires>
	<requires>
	  <requiredname>ExtendedTools</requiredname>
	  <requiredversion>1.1.1</requiredversion>
	</requires>
	<requires>
	  <requiredname>CGSmartImage</requiredname>
	  <requiredversion>1.5</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.admin_deletemodule.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KIyBNb2R1bGU6IE11bHRpbGFuZ3VhZ2UgQ01TDQojIFpkZW5vIEt1em1hbnkgKHpkZW5vQGt1em1hbnkuYml6KSBrdXptYW55LmJpeg0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA5IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLw0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTA0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaWYgKCFpc3NldCgkZ0NtcykpDQogICAgZXhpdDsNCg0KJG5hbWUgPSAnJzsNCmlmIChpc1NldCgkcGFyYW1zWyJuYW1lIl0pKSB7DQogICAgJG5hbWUgPSAkcGFyYW1zWyJuYW1lIl07DQp9DQoNCiRkYiA9IGNtc21zKCktPkdldERiKCk7DQokY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQoNCg0KaWYgKCEkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgew0KICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsNCiAgICByZXR1cm47DQp9DQoNCmlmIChlbXB0eSgkbmFtZSkpDQogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkLCAiZ2VuZXJhdG9yIik7DQppZiAoY21zX3V0aWxzOjpnZXRfbW9kdWxlKCRuYW1lKSkgew0KICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfdW5paW5zdGFsX21vZHVsZScpKTsNCiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsICJnZW5lcmF0b3IiKTsNCn0NCg0KZ2VuZXJhdG9yX29wdHM6OmRlbGV0ZSgkbmFtZSk7DQpjZ2VfZGlyOjpyZWN1cnNpdmVfcm1kaXIoY21zX2pvaW5fcGF0aCgkY29uZmlnWyJyb290X3BhdGgiXSwgJ21vZHVsZXMnLCAkbmFtZSkpOw0KDQokdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnaW5mb19zdWNjZXNzJykpOw0KJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkLCAiZ2VuZXJhdG9yIik7DQo/Pg0KDQo=]]></data>
	</file>
	<file>
	  <filename>/action.admin_editmodule.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KIyBNb2R1bGU6IE11bHRpbGFuZ3VhZ2UgQ01TDQojIFpkZW5vIEt1em1hbnkgKHpkZW5vQGt1em1hbnkuYml6KSBrdXptYW55LmJpeg0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA5IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLw0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTA0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaWYgKCFpc3NldCgkZ0NtcykpDQogICAgZXhpdDsNCg0KJG5hbWUgPSAnJzsNCiRhdHRhY2ggPSAnJzsNCg0KaWYgKGlzU2V0KCRwYXJhbXNbIm5hbWUiXSkpIHsNCiAgICAkbmFtZSA9ICRwYXJhbXNbIm5hbWUiXTsNCn0NCg0KJGRiID0gY21zbXMoKS0+R2V0RGIoKTsNCiRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsNCg0KDQppZiAoISR0aGlzLT5DaGVja0FjY2VzcygpKSB7DQogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOw0KICAgIHJldHVybjsNCn0NCg0KDQoNCmlmIChlbXB0eSgkbmFtZSkpIHsNCiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsICJnZW5lcmF0b3IiKTsNCn0NCg0KJG1vZHVsZSA9IGdlbmVyYXRvcl9vcHRzOjpnZXRfbW9kdWxlKCRuYW1lKTsNCmlmICghJG1vZHVsZSkgew0KICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwgImdlbmVyYXRvciIpOw0KfQ0KDQppZiAoaXNTZXQoJHBhcmFtc1sic3VibWl0Il0pKSB7DQoNCiAgICBpZiAoaXNTZXQoJHBhcmFtc1siYXR0YWNoIl0pICYmIGlzX2FycmF5KCRwYXJhbXNbImF0dGFjaCJdKSkgew0KICAgICAgICAkYXR0YWNoID0gaW1wbG9kZSgnLCcsICRwYXJhbXNbImF0dGFjaCJdKTsNCiAgICB9DQogICAgDQogICAgJHVwZGF0ZSA9IGdlbmVyYXRvcl9vcHRzOjp1cGRhdGVhdHRhY2goJG5hbWUsICRhdHRhY2gpOw0KDQogICAgaWYgKCR1cGRhdGUpIHsNCiAgICAgICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ2luZm9fc3VjY2VzcycpKTsNCiAgICB9IGVsc2Ugew0KICAgICAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2luZm9fZXJyb3InKSk7DQogICAgfQ0KICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwgImdlbmVyYXRvciIpOw0KfQ0KDQoNCg0KDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5fZWRpdG1vZHVsZScsICRyZXR1cm5pZCwgJ3Bvc3QnLCAxLCAnJywgJycsYXJyYXkoJ25hbWUnID0+ICRtb2R1bGVbIm1vZHVsZV9uYW1lIl0pKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsNCg0KDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21vZHVsZW5hbWUnLCAkbW9kdWxlWyJtb2R1bGVfbmFtZSJdKTsNCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhdHRhY2gnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwgJ2F0dGFjaFtdJywgZ2VuZXJhdG9yX29wdHM6OmdldF9tb2R1bGVzX2xpc3QoKSwgKGVtcHR5KCRtb2R1bGVbImF0dGFjaCJdKSA/IGFycmF5KCkgOiBleHBsb2RlKCcsJywgJG1vZHVsZVsiYXR0YWNoIl0pKSkpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignY2FuY2VsJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsIGxhbmcoJ2NhbmNlbCcpKSk7DQoNCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdG1vZHVsZS50cGwnKTsNCj8+DQoNCg==]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMgTW9kdWxlOiBNb2R1bGUgR2VuZXJhdG9yCiMgWmRlbm8gS3V6bWFueSAoemRlbm9Aa3V6bWFueS5iaXopIGt1em1hbnkuYml6CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDkgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKaWYgKCFpc3NldCgkZ0NtcykpCiAgICBleGl0OwoKJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwoKaWYoIWlzX3dyaXRhYmxlKCAkY29uZmlnWydyb290X3BhdGgnXS5ESVJFQ1RPUllfU0VQQVJBVE9SLidtb2R1bGVzJykpewogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbW9kdWxlX2Rpcl9wZXJtaXNzaW9uJykpOwp9CgojIyBUQUIgSEVBREVSUyBmcm9tIENHRQplY2hvICR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKTsKaWYgKCR0aGlzLT5DaGVja0FjY2VzcygpKSB7CiAgICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2dlbmVyYXRvcicsICR0aGlzLT5MYW5nKCdnZW5lcmF0b3InKSk7Cn0KCmVjaG8gJHRoaXMtPkVuZFRhYkhlYWRlcnMoKTsKCiMKI1RoZSBjb250ZW50IG9mIHRoZSB0YWJzCiMKZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7CgppZiAoJHRoaXMtPkNoZWNrQWNjZXNzKCkpIHsKICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdnZW5lcmF0b3InKTsKICAgIGluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykgLiAnL2Z1bmN0aW9uLmFkbWluX2dlbmVyYXRvci5waHAnKTsKICAgIGVjaG8gJHRoaXMtPkVuZFRhYigpOwp9CgplY2hvICR0aGlzLT5FbmRUYWJDb250ZW50KCk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.do_admin_generator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KIyBNb2R1bGU6IE11bHRpbGFuZ3VhZ2UgQ01TDQojIFpkZW5vIEt1em1hbnkgKHpkZW5vQGt1em1hbnkuYml6KSBrdXptYW55LmJpeg0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA5IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykNCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcNCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLw0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTA0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaWYgKCFpc3NldCgkZ0NtcykpDQogICAgZXhpdDsNCg0KJGRiID0gY21zbXMoKS0+R2V0RGIoKTsNCiRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsNCg0KDQppZiAoISR0aGlzLT5DaGVja0FjY2VzcygpKSB7DQogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOw0KICAgIHJldHVybjsNCn0NCg0KaWYgKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSkgew0KICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwgImdlbmVyYXRvciIpOw0KfQ0KDQokbmFtZSA9ICcnOw0KaWYgKGlzc2V0KCRwYXJhbXNbJ25hbWUnXSkpIHsNCiAgICAkbmFtZSA9IG11bmdlX3N0cmluZ190b191cmwoJHBhcmFtc1snbmFtZSddKTsNCn0NCg0KJGF0dGFjaCA9ICcnOw0KaWYgKGlzc2V0KCRwYXJhbXNbJ2F0dGFjaCddKSAmJiBpc19hcnJheSgkcGFyYW1zWydhdHRhY2gnXSkpIHsNCiAgICAkYXR0YWNoID0gaW1wbG9kZSgnLCcsICRwYXJhbXNbJ2F0dGFjaCddKTsNCn0NCg0KaWYgKGVtcHR5KCRuYW1lKSA9PSB0cnVlKSB7DQogICAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdtaXNzaW5ncmVxdWlyZWQnKSk7DQogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkLCAiZ2VuZXJhdG9yIik7DQp9DQoNCi8vY3JlYXRlIGNvcHkgZGlyDQppZiAoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pKSB7DQogICAgLyoqDQogICAgICogVXNhZ2Ugb2YgdGhlIGNvcHkgZGlyZWN0b3J5IGNsYXNzDQogICAgICovDQogICAgJHNvdXJjZV9kaXIgPSBjbXNfam9pbl9wYXRoKCRjb25maWdbInJvb3RfcGF0aCJdLCAnbW9kdWxlcycsICR0aGlzLT5HZXROYW1lKCksICdNb2R1bGVMaWInLCAnc291cmNlJywgJ01vZHVsZUV4YW1wbGUnKTsNCiAgICAkZGVzdF9kaXIgPSBjbXNfam9pbl9wYXRoKCRjb25maWdbInJvb3RfcGF0aCJdLCAnbW9kdWxlcycsICRuYW1lKTsNCg0KICAgIGlmICghaXNTZXQoJHBhcmFtc1sib3dlcndyaXRlIl0pICYmIGlzX2RpcigkZGVzdF9kaXIpKSB7DQogICAgICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfbW9kdWxlX2V4aXN0cycpKTsNCiAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkLCAiZ2VuZXJhdG9yIik7DQogICAgfQ0KDQogICAgJGNwID0gbmV3IGNvcHlfZGlyKCk7DQoNCi8vIHNldCB0aGUgZGlyZWN0b3J5IHRvIGNvcHkNCiAgICBpZiAoISRjcC0+c2V0Q29weUZyb21EaXIoJHNvdXJjZV9kaXIpKSB7DQogICAgICAgIGRpZSgkY3AtPnZpZXdFcnJvcigpKTsNCiAgICB9DQoNCi8vIHNldCB0aGUgZGlyZWN0b3J5IHRvIGNvcHkgdG8NCg0KICAgIGlmICghJGNwLT5zZXRDb3B5VG9EaXIoJGRlc3RfZGlyKSkgew0KICAgICAgICBkaWUoJGNwLT52aWV3RXJyb3IoKSk7DQogICAgfQ0KDQogICAgJGNwLT5jb3B5U3ViRm9sZGVycyh0cnVlKTsgLy8gaW5jbHVkZSBzdWIgZm9sZGVycyB3aGVuIGNvcHlpbmcNCiAgICAkY3AtPm92ZXJXcml0ZUZpbGVzKHRydWUpOyAvLyBvdmVyd3JpdGUgZXhpc3RpbmcgZmlsZXMNCg0KICAgICRjcC0+c2V0Q29weUNhbGxiYWNrKCd1cGRhdGVDb3B5UHJvZ3Jlc3MnKTsNCg0KICAgIGlmICghJGNwLT5jcmVhdGVDb3B5KHRydWUpKSB7IC8vIGNyZWF0ZSBhIGNvcHkgYW5kIHJlY3Vyc2UgdGhyb3VnaCBzdWIgZm9sZGVycw0KICAgICAgICBkaWUoJGNwLT52aWV3RXJyb3IoKSk7DQogICAgfQ0KDQogICAgLy9yZW5tYWUgZmlsZSBjbGFzcw0KICAgICRmaW5hbF9jbGFzcyA9IGNtc19qb2luX3BhdGgoJGRlc3RfZGlyLCAkbmFtZSAuICcubW9kdWxlLnBocCcpOw0KICAgIGlmIChpc19maWxlKCRmaW5hbF9jbGFzcykpDQogICAgICAgIHVubGluaygkZmluYWxfY2xhc3MpOw0KICAgICRyZW5hbWUgPSByZW5hbWUoY21zX2pvaW5fcGF0aCgkZGVzdF9kaXIsICdNb2R1bGVFeGFtcGxlLm1vZHVsZS5waHAnKSwgJGZpbmFsX2NsYXNzKTsNCg0KICAgIGlmICghJHJlbmFtZSkgew0KICAgICAgICBkaWUoJHRoaXMtPkxhbmcoJ2Vycm9yX3JlbmFtZV9kaXInKSk7DQogICAgfQ0KDQogICAgLy8gIHJld3JpdGUgbW9kdWxlIGNvbnRlbnQNCiAgICAkZGF0YSA9IEBmaWxlX2dldF9jb250ZW50cygkZmluYWxfY2xhc3MpOw0KICAgIGlmICgkZGF0YSkgew0KICAgICAgICAkZGF0YSA9IHN0cl9yZXBsYWNlKCdNb2R1bGVFeGFtcGxlJywgJG5hbWUsICRkYXRhKTsNCiAgICAgICAgZmlsZV9wdXRfY29udGVudHMoJGZpbmFsX2NsYXNzLCAkZGF0YSk7DQogICAgfSBlbHNlIHsNCiAgICAgICAgZGllKCR0aGlzLT5MYW5nKCdlcnJvcl9yZXBsYWNlX3N0cmluZycpKTsNCiAgICB9DQogICAgDQogICAgLy8gY3JlYXRlIGRpcg0KICAgIGNnZV9kaXI6Om1rZGlycihjbXNfam9pbl9wYXRoKCRjb25maWdbInVwbG9hZHNfcGF0aCJdLCBzdHJ0b2xvd2VyKCRuYW1lKSkpOw0KICAgIGlmICghaXNTZXQoJHBhcmFtc1sib3dlcndyaXRlIl0pKQ0KICAgICAgICBnZW5lcmF0b3Jfb3B0czo6aW5zZXJ0KCRuYW1lLCAkYXR0YWNoKTsNCiAgICBlbHNlDQogICAgICAgIGdlbmVyYXRvcl9vcHRzOjp1cGRhdGVkYXRlKCRuYW1lKTsNCg0KICAgIC8vQCR0aGlzLT5TZW5kRXZlbnQoJ0xhbmdFZGl0ZWQnLCBhcnJheSgnY29tcGlkJyA9PiAkY2lkKSk7DQogICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ2luZm9fc3VjY2VzcycpKTsNCiAgICAvL3JlZGlyZWN0DQogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkLCAiZ2VuZXJhdG9yIik7DQp9DQo/Pg0KDQo=]]></data>
	</file>
	<file>
	  <filename>/function.admin_generator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMgTW9kdWxlOiBNdWx0aWxhbmd1YWdlIENNUwojIFpkZW5vIEt1em1hbnkgKHpkZW5vQGt1em1hbnkuYml6KSBrdXptYW55LmJpegojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA5IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzc2V0KCRnQ21zKSkKICAgIGV4aXQ7CgokYWRtaW50aGVtZSA9IGNtc21zKCktPmdldF92YXJpYWJsZSgnYWRtaW50aGVtZScpOwoKJGVudHJ5YXJyYXkgPSBhcnJheSgpOwokbW9kdWxlcyA9IGdlbmVyYXRvcl9vcHRzOjpnZXRfbW9kdWxlcygpOwpmb3JlYWNoICgkbW9kdWxlcyBhcyAkbW9kdWxlKSB7CiAgICAkb25lcm93ID0gY2dlX2FycmF5Ojp0b19vYmplY3QoJG1vZHVsZSk7CiAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCRtb2R1bGVbIm1vZHVsZV9uYW1lIl0pOwogICAgaWYgKCRtb2QpIHsKICAgICAgICAkb25lcm93LT5tb2R1bGVsaW5rID0gJG1vZC0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJG1vZC0+R2V0TmFtZSgpLCAnaWNvbnMvdG9wZmlsZXMvc2hvcnRjdXQuZ2lmJywgYXJyYXkoKSwgJycsICcnLCBmYWxzZSk7CiAgICB9CiAgICAkb25lcm93LT5hdHRhY2htb2R1bGVzID0gZ2VuZXJhdG9yX29wdHM6OmdldF9hdHRhY2hfbW9kdWxlcygkbW9kdWxlWyJhdHRhY2giXSk7CiAgICAkb25lcm93LT5lZGl0bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2VkaXRtb2R1bGUnLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsIGxhbmcoJ2VkaXQnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLCBhcnJheSgnbmFtZScgPT4gJG1vZHVsZVsnbW9kdWxlX25hbWUnXSkpOwogICAgJG9uZXJvdy0+cmVnZW5lcmF0ZWxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdkb19hZG1pbl9nZW5lcmF0b3InLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9leHBvcnQuZ2lmJywgJHRoaXMtPkxhbmcoJ3JlZ2VuZXJhdGUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLCBhcnJheSgnbmFtZScgPT4gJG1vZHVsZVsnbW9kdWxlX25hbWUnXSwgJ293ZXJ3cml0ZScgPT4gMSwgJ3N1Ym1pdCcgPT4gMSkpOwogICAgJG9uZXJvdy0+ZGVsZXRlbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2RlbGV0ZW1vZHVsZScsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCBsYW5nKCdkZWxldGUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLCBhcnJheSgnbmFtZScgPT4gJG1vZHVsZVsnbW9kdWxlX25hbWUnXSksICR0aGlzLT5MYW5nKCdhcmV5b3VzdXJlJykpOwogICAgJGVudHJ5YXJyYXlbXSA9ICRvbmVyb3c7Cn0KCiR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2l0ZW1zJywgJGVudHJ5YXJyYXkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2l0ZW1jb3VudCcsIGNvdW50KCRlbnRyeWFycmF5KSk7CgoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2RvX2FkbWluX2dlbmVyYXRvcicsICRyZXR1cm5pZCwgJ3Bvc3QnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKCiR0aGlzLT5zbWFydHktPmFzc2lnbignbmFtZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbmFtZScsICcnLCA1MCwgMjU1KSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignYXR0YWNoJywgJHRoaXMtPkNyZWF0ZUlucHV0U2VsZWN0TGlzdCgkaWQsICdhdHRhY2hbXScsIGdlbmVyYXRvcl9vcHRzOjpnZXRfbW9kdWxlc19saXN0KCkpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZ2VuZXJhdG9yLnRwbCcpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/jquery.tablednd_0_5.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIFRhYmxlRG5EIHBsdWctaW4gZm9yIEpRdWVyeSwgYWxsb3dzIHlvdSB0byBkcmFnIGFuZCBkcm9wIHRhYmxlIHJvd3MKICogWW91IGNhbiBzZXQgdXAgdmFyaW91cyBvcHRpb25zIHRvIGNvbnRyb2wgaG93IHRoZSBzeXN0ZW0gd2lsbCB3b3JrCiAqIENvcHlyaWdodCAoYykgRGVuaXMgSG93bGV0dCA8ZGVuaXNoQGlzb2NyYS5jb20+CiAqIExpY2Vuc2VkIGxpa2UgalF1ZXJ5LCBzZWUgaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9MaWNlbnNlLgogKgogKiBDb25maWd1cmF0aW9uIG9wdGlvbnM6CiAqIAogKiBvbkRyYWdTdHlsZQogKiAgICAgVGhpcyBpcyB0aGUgc3R5bGUgdGhhdCBpcyBhc3NpZ25lZCB0byB0aGUgcm93IGR1cmluZyBkcmFnLiBUaGVyZSBhcmUgbGltaXRhdGlvbnMgdG8gdGhlIHN0eWxlcyB0aGF0IGNhbiBiZQogKiAgICAgYXNzb2NpYXRlZCB3aXRoIGEgcm93IChzdWNoIGFzIHlvdSBjYW4ndCBhc3NpZ24gYSBib3JkZXItLXdlbGwgeW91IGNhbiwgYnV0IGl0IHdvbid0IGJlCiAqICAgICBkaXNwbGF5ZWQpLiAoU28gaW5zdGVhZCBjb25zaWRlciB1c2luZyBvbkRyYWdDbGFzcy4pIFRoZSBDU1Mgc3R5bGUgdG8gYXBwbHkgaXMgc3BlY2lmaWVkIGFzCiAqICAgICBhIG1hcCAoYXMgdXNlZCBpbiB0aGUgalF1ZXJ5IGNzcyguLi4pIGZ1bmN0aW9uKS4KICogb25Ecm9wU3R5bGUKICogICAgIFRoaXMgaXMgdGhlIHN0eWxlIHRoYXQgaXMgYXNzaWduZWQgdG8gdGhlIHJvdyB3aGVuIGl0IGlzIGRyb3BwZWQuIEFzIGZvciBvbkRyYWdTdHlsZSwgdGhlcmUgYXJlIGxpbWl0YXRpb25zCiAqICAgICB0byB3aGF0IHlvdSBjYW4gZG8uIEFsc28gdGhpcyByZXBsYWNlcyB0aGUgb3JpZ2luYWwgc3R5bGUsIHNvIGFnYWluIGNvbnNpZGVyIHVzaW5nIG9uRHJhZ0NsYXNzIHdoaWNoCiAqICAgICBpcyBzaW1wbHkgYWRkZWQgYW5kIHRoZW4gcmVtb3ZlZCBvbiBkcm9wLgogKiBvbkRyYWdDbGFzcwogKiAgICAgVGhpcyBjbGFzcyBpcyBhZGRlZCBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBkcmFnIGFuZCB0aGVuIHJlbW92ZWQgd2hlbiB0aGUgcm93IGlzIGRyb3BwZWQuIEl0IGlzIG1vcmUKICogICAgIGZsZXhpYmxlIHRoYW4gdXNpbmcgb25EcmFnU3R5bGUgc2luY2UgaXQgY2FuIGJlIGluaGVyaXRlZCBieSB0aGUgcm93IGNlbGxzIGFuZCBvdGhlciBjb250ZW50LiBUaGUgZGVmYXVsdAogKiAgICAgaXMgY2xhc3MgaXMgdERuRF93aGlsZURyYWcuIFNvIHRvIHVzZSB0aGUgZGVmYXVsdCwgc2ltcGx5IGN1c3RvbWlzZSB0aGlzIENTUyBjbGFzcyBpbiB5b3VyCiAqICAgICBzdHlsZXNoZWV0LgogKiBvbkRyb3AKICogICAgIFBhc3MgYSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIHdoZW4gdGhlIHJvdyBpcyBkcm9wcGVkLiBUaGUgZnVuY3Rpb24gdGFrZXMgMiBwYXJhbWV0ZXJzOiB0aGUgdGFibGUKICogICAgIGFuZCB0aGUgcm93IHRoYXQgd2FzIGRyb3BwZWQuIFlvdSBjYW4gd29yayBvdXQgdGhlIG5ldyBvcmRlciBvZiB0aGUgcm93cyBieSB1c2luZwogKiAgICAgdGFibGUucm93cy4KICogb25EcmFnU3RhcnQKICogICAgIFBhc3MgYSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIHdoZW4gdGhlIHVzZXIgc3RhcnRzIGRyYWdnaW5nLiBUaGUgZnVuY3Rpb24gdGFrZXMgMiBwYXJhbWV0ZXJzOiB0aGUKICogICAgIHRhYmxlIGFuZCB0aGUgcm93IHdoaWNoIHRoZSB1c2VyIGhhcyBzdGFydGVkIHRvIGRyYWcuCiAqIG9uQWxsb3dEcm9wCiAqICAgICBQYXNzIGEgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCBhcyBhIHJvdyBpcyBvdmVyIGFub3RoZXIgcm93LiBJZiB0aGUgZnVuY3Rpb24gcmV0dXJucyB0cnVlLCBhbGxvdyAKICogICAgIGRyb3BwaW5nIG9uIHRoYXQgcm93LCBvdGhlcndpc2Ugbm90LiBUaGUgZnVuY3Rpb24gdGFrZXMgMiBwYXJhbWV0ZXJzOiB0aGUgZHJhZ2dlZCByb3cgYW5kIHRoZSByb3cgdW5kZXIKICogICAgIHRoZSBjdXJzb3IuIEl0IHJldHVybnMgYSBib29sZWFuOiB0cnVlIGFsbG93cyB0aGUgZHJvcCwgZmFsc2UgZG9lc24ndCBhbGxvdyBpdC4KICogc2Nyb2xsQW1vdW50CiAqICAgICBUaGlzIGlzIHRoZSBudW1iZXIgb2YgcGl4ZWxzIHRvIHNjcm9sbCBpZiB0aGUgdXNlciBtb3ZlcyB0aGUgbW91c2UgY3Vyc29yIHRvIHRoZSB0b3Agb3IgYm90dG9tIG9mIHRoZQogKiAgICAgd2luZG93LiBUaGUgcGFnZSBzaG91bGQgYXV0b21hdGljYWxseSBzY3JvbGwgdXAgb3IgZG93biBhcyBhcHByb3ByaWF0ZSAodGVzdGVkIGluIElFNiwgSUU3LCBTYWZhcmksIEZGMiwKICogICAgIEZGMyBiZXRhCiAqIGRyYWdIYW5kbGUKICogICAgIFRoaXMgaXMgdGhlIG5hbWUgb2YgYSBjbGFzcyB0aGF0IHlvdSBhc3NpZ24gdG8gb25lIG9yIG1vcmUgY2VsbHMgaW4gZWFjaCByb3cgdGhhdCBpcyBkcmFnZ2FibGUuIElmIHlvdQogKiAgICAgc3BlY2lmeSB0aGlzIGNsYXNzLCB0aGVuIHlvdSBhcmUgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgY3Vyc29yOiBtb3ZlIGluIHRoZSBDU1MgYW5kIG9ubHkgdGhlc2UgY2VsbHMKICogICAgIHdpbGwgaGF2ZSB0aGUgZHJhZyBiZWhhdmlvdXIuIElmIHlvdSBkbyBub3Qgc3BlY2lmeSBhIGRyYWdIYW5kbGUsIHRoZW4geW91IGdldCB0aGUgb2xkIGJlaGF2aW91ciB3aGVyZQogKiAgICAgdGhlIHdob2xlIHJvdyBpcyBkcmFnZ2FibGUuCiAqIAogKiBPdGhlciB3YXlzIHRvIGNvbnRyb2wgYmVoYXZpb3VyOgogKgogKiBBZGQgY2xhc3M9Im5vZHJvcCIgdG8gYW55IHJvd3MgZm9yIHdoaWNoIHlvdSBkb24ndCB3YW50IHRvIGFsbG93IGRyb3BwaW5nLCBhbmQgY2xhc3M9Im5vZHJhZyIgdG8gYW55IHJvd3MKICogdGhhdCB5b3UgZG9uJ3Qgd2FudCB0byBiZSBkcmFnZ2FibGUuCiAqCiAqIEluc2lkZSB0aGUgb25Ecm9wIG1ldGhvZCB5b3UgY2FuIGFsc28gY2FsbCAkLnRhYmxlRG5ELnNlcmlhbGl6ZSgpIHRoaXMgcmV0dXJucyBhIHN0cmluZyBvZiB0aGUgZm9ybQogKiA8dGFibGVJRD5bXT08cm93SUQxPiY8dGFibGVJRD5bXT08cm93SUQyPiBzbyB0aGF0IHlvdSBjYW4gc2VuZCB0aGlzIGJhY2sgdG8gdGhlIHNlcnZlci4gVGhlIHRhYmxlIG11c3QgaGF2ZQogKiBhbiBJRCBhcyBtdXN0IGFsbCB0aGUgcm93cy4KICoKICogT3RoZXIgbWV0aG9kczoKICoKICogJCgiLi4uIikudGFibGVEbkRVcGRhdGUoKSAKICogV2lsbCB1cGRhdGUgYWxsIHRoZSBtYXRjaGluZyB0YWJsZXMsIHRoYXQgaXMgaXQgd2lsbCByZWFwcGx5IHRoZSBtb3VzZWRvd24gbWV0aG9kIHRvIHRoZSByb3dzIChvciBoYW5kbGUgY2VsbHMpLgogKiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UgaGF2ZSB1cGRhdGVkIHRoZSB0YWJsZSByb3dzIHVzaW5nIEFqYXggYW5kIHlvdSB3YW50IHRvIG1ha2UgdGhlIHRhYmxlIGRyYWdnYWJsZSBhZ2Fpbi4KICogVGhlIHRhYmxlIG1haW50YWlucyB0aGUgb3JpZ2luYWwgY29uZmlndXJhdGlvbiAoc28geW91IGRvbid0IGhhdmUgdG8gc3BlY2lmeSBpdCBhZ2FpbikuCiAqCiAqICQoIi4uLiIpLnRhYmxlRG5EU2VyaWFsaXplKCkKICogV2lsbCBzZXJpYWxpemUgYW5kIHJldHVybiB0aGUgc2VyaWFsaXplZCBzdHJpbmcgYXMgYWJvdmUsIGJ1dCBmb3IgZWFjaCBvZiB0aGUgbWF0Y2hpbmcgdGFibGVzLS1zbyBpdCBjYW4gYmUKICogY2FsbGVkIGZyb20gYW55d2hlcmUgYW5kIGlzbid0IGRlcGVuZGVudCBvbiB0aGUgY3VycmVudFRhYmxlIGJlaW5nIHNldCB1cCBjb3JyZWN0bHkgYmVmb3JlIGNhbGxpbmcKICoKICogS25vd24gcHJvYmxlbXM6CiAqIC0gQXV0by1zY29sbCBoYXMgc29tZSBwcm9ibGVtcyB3aXRoIElFNyAgKGl0IHNjcm9sbHMgZXZlbiB3aGVuIGl0IHNob3VsZG4ndCksIHdvcmstYXJvdW5kOiBzZXQgc2Nyb2xsQW1vdW50IHRvIDAKICogCiAqIFZlcnNpb24gMC4yOiAyMDA4LTAyLTIwIEZpcnN0IHB1YmxpYyB2ZXJzaW9uCiAqIFZlcnNpb24gMC4zOiAyMDA4LTAyLTA3IEFkZGVkIG9uRHJhZ1N0YXJ0IG9wdGlvbgogKiAgICAgICAgICAgICAgICAgICAgICAgICBNYWRlIHRoZSBzY3JvbGwgYW1vdW50IGNvbmZpZ3VyYWJsZSAoZGVmYXVsdCBpcyA1IGFzIGJlZm9yZSkKICogVmVyc2lvbiAwLjQ6IDIwMDgtMDMtMTUgQ2hhbmdlZCB0aGUgbm9EcmFnL25vRHJvcCBhdHRyaWJ1dGVzIHRvIG5vZHJhZy9ub2Ryb3AgY2xhc3NlcwogKiAgICAgICAgICAgICAgICAgICAgICAgICBBZGRlZCBvbkFsbG93RHJvcCB0byBjb250cm9sIGRyb3BwaW5nCiAqICAgICAgICAgICAgICAgICAgICAgICAgIEZpeGVkIGEgYnVnIHdoaWNoIG1lYW50IHRoYXQgeW91IGNvdWxkbid0IHNldCB0aGUgc2Nyb2xsIGFtb3VudCBpbiBib3RoIGRpcmVjdGlvbnMKICogICAgICAgICAgICAgICAgICAgICAgICAgQWRkZWQgc2VyaWFsaXplIG1ldGhvZAogKiBWZXJzaW9uIDAuNTogMjAwOC0wNS0xNiBDaGFuZ2VkIHNvIHRoYXQgaWYgeW91IHNwZWNpZnkgYSBkcmFnSGFuZGxlIGNsYXNzIGl0IGRvZXNuJ3QgbWFrZSB0aGUgd2hvbGUgcm93CiAqICAgICAgICAgICAgICAgICAgICAgICAgIGRyYWdnYWJsZQogKiAgICAgICAgICAgICAgICAgICAgICAgICBJbXByb3ZlZCB0aGUgc2VyaWFsaXplIG1ldGhvZCB0byB1c2UgYSBkZWZhdWx0IChhbmQgc2V0dGFibGUpIHJlZ3VsYXIgZXhwcmVzc2lvbi4KICogICAgICAgICAgICAgICAgICAgICAgICAgQWRkZWQgdGFibGVEbkR1cGF0ZSgpIGFuZCB0YWJsZURuRFNlcmlhbGl6ZSgpIHRvIGJlIGNhbGxlZCB3aGVuIHlvdSBhcmUgb3V0c2lkZSB0aGUgdGFibGUKICovCmpRdWVyeS50YWJsZURuRCA9IHsKICAgIC8qKiBLZWVwIGhvbGQgb2YgdGhlIGN1cnJlbnQgdGFibGUgYmVpbmcgZHJhZ2dlZCAqLwogICAgY3VycmVudFRhYmxlIDogbnVsbCwKICAgIC8qKiBLZWVwIGhvbGQgb2YgdGhlIGN1cnJlbnQgZHJhZyBvYmplY3QgaWYgYW55ICovCiAgICBkcmFnT2JqZWN0OiBudWxsLAogICAgLyoqIFRoZSBjdXJyZW50IG1vdXNlIG9mZnNldCAqLwogICAgbW91c2VPZmZzZXQ6IG51bGwsCiAgICAvKiogUmVtZW1iZXIgdGhlIG9sZCB2YWx1ZSBvZiBZIHNvIHRoYXQgd2UgZG9uJ3QgZG8gdG9vIG11Y2ggcHJvY2Vzc2luZyAqLwogICAgb2xkWTogMCwKCiAgICAvKiogQWN0dWFsbHkgYnVpbGQgdGhlIHN0cnVjdHVyZSAqLwogICAgYnVpbGQ6IGZ1bmN0aW9uKG9wdGlvbnMpIHsKICAgICAgICAvLyBTZXQgdXAgdGhlIGRlZmF1bHRzIGlmIGFueQoKICAgICAgICB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIC8vIFRoaXMgaXMgYm91bmQgdG8gZWFjaCBtYXRjaGluZyB0YWJsZSwgc2V0IHVwIHRoZSBkZWZhdWx0cyBhbmQgb3ZlcnJpZGUgd2l0aCB1c2VyIG9wdGlvbnMKICAgICAgICAgICAgdGhpcy50YWJsZURuRENvbmZpZyA9IGpRdWVyeS5leHRlbmQoewogICAgICAgICAgICAgICAgb25EcmFnU3R5bGU6IG51bGwsCiAgICAgICAgICAgICAgICBvbkRyb3BTdHlsZTogbnVsbCwKCQkJCS8vIEFkZCBpbiB0aGUgZGVmYXVsdCBjbGFzcyBmb3Igd2hpbGVEcmFnZ2luZwoJCQkJb25EcmFnQ2xhc3M6ICJ0RG5EX3doaWxlRHJhZyIsCiAgICAgICAgICAgICAgICBvbkRyb3A6IG51bGwsCiAgICAgICAgICAgICAgICBvbkRyYWdTdGFydDogbnVsbCwKICAgICAgICAgICAgICAgIHNjcm9sbEFtb3VudDogNSwKCQkJCXNlcmlhbGl6ZVJlZ2V4cDogL1teXC1dKiQvLCAvLyBUaGUgcmVndWxhciBleHByZXNzaW9uIHRvIHVzZSB0byB0cmltIHJvdyBJRHMKCQkJCXNlcmlhbGl6ZVBhcmFtTmFtZTogbnVsbCwgLy8gSWYgeW91IHdhbnQgdG8gc3BlY2lmeSBhbm90aGVyIHBhcmFtZXRlciBuYW1lIGluc3RlYWQgb2YgdGhlIHRhYmxlIElECiAgICAgICAgICAgICAgICBkcmFnSGFuZGxlOiBudWxsIC8vIElmIHlvdSBnaXZlIHRoZSBuYW1lIG9mIGEgY2xhc3MgaGVyZSwgdGhlbiBvbmx5IENlbGxzIHdpdGggdGhpcyBjbGFzcyB3aWxsIGJlIGRyYWdnYWJsZQogICAgICAgICAgICB9LCBvcHRpb25zIHx8IHt9KTsKICAgICAgICAgICAgLy8gTm93IG1ha2UgdGhlIHJvd3MgZHJhZ2dhYmxlCiAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5tYWtlRHJhZ2dhYmxlKHRoaXMpOwogICAgICAgIH0pOwoKICAgICAgICAvLyBOb3cgd2UgbmVlZCB0byBjYXB0dXJlIHRoZSBtb3VzZSB1cCBhbmQgbW91c2UgbW92ZSBldmVudAogICAgICAgIC8vIFdlIGNhbiB1c2UgYmluZCBzbyB0aGF0IHdlIGRvbid0IGludGVyZmVyZSB3aXRoIG90aGVyIGV2ZW50IGhhbmRsZXJzCiAgICAgICAgalF1ZXJ5KGRvY3VtZW50KQogICAgICAgICAgICAuYmluZCgnbW91c2Vtb3ZlJywgalF1ZXJ5LnRhYmxlRG5ELm1vdXNlbW92ZSkKICAgICAgICAgICAgLmJpbmQoJ21vdXNldXAnLCBqUXVlcnkudGFibGVEbkQubW91c2V1cCk7CgogICAgICAgIC8vIERvbid0IGJyZWFrIHRoZSBjaGFpbgogICAgICAgIHJldHVybiB0aGlzOwogICAgfSwKCiAgICAvKiogVGhpcyBmdW5jdGlvbiBtYWtlcyBhbGwgdGhlIHJvd3Mgb24gdGhlIHRhYmxlIGRyYWdnYWJsZSBhcGFydCBmcm9tIHRob3NlIG1hcmtlZCBhcyAiTm9EcmFnIiAqLwogICAgbWFrZURyYWdnYWJsZTogZnVuY3Rpb24odGFibGUpIHsKICAgICAgICB2YXIgY29uZmlnID0gdGFibGUudGFibGVEbkRDb25maWc7CgkJaWYgKHRhYmxlLnRhYmxlRG5EQ29uZmlnLmRyYWdIYW5kbGUpIHsKCQkJLy8gV2Ugb25seSBuZWVkIHRvIGFkZCB0aGUgZXZlbnQgdG8gdGhlIHNwZWNpZmllZCBjZWxscwoJCQl2YXIgY2VsbHMgPSBqUXVlcnkoInRkLiIrdGFibGUudGFibGVEbkRDb25maWcuZHJhZ0hhbmRsZSwgdGFibGUpOwoJCQljZWxscy5lYWNoKGZ1bmN0aW9uKCkgewoJCQkJLy8gVGhlIGNlbGwgaXMgYm91bmQgdG8gInRoaXMiCiAgICAgICAgICAgICAgICBqUXVlcnkodGhpcykubW91c2Vkb3duKGZ1bmN0aW9uKGV2KSB7CiAgICAgICAgICAgICAgICAgICAgalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QgPSB0aGlzLnBhcmVudE5vZGU7CiAgICAgICAgICAgICAgICAgICAgalF1ZXJ5LnRhYmxlRG5ELmN1cnJlbnRUYWJsZSA9IHRhYmxlOwogICAgICAgICAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5tb3VzZU9mZnNldCA9IGpRdWVyeS50YWJsZURuRC5nZXRNb3VzZU9mZnNldCh0aGlzLCBldik7CiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbmZpZy5vbkRyYWdTdGFydCkgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBDYWxsIHRoZSBvbkRyb3AgbWV0aG9kIGlmIHRoZXJlIGlzIG9uZQogICAgICAgICAgICAgICAgICAgICAgICBjb25maWcub25EcmFnU3RhcnQodGFibGUsIHRoaXMpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9KTsKCQkJfSkKCQl9IGVsc2UgewoJCQkvLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIHdlIGFkZCB0aGUgZXZlbnQgdG8gdGhlIHdob2xlIHJvdwoJICAgICAgICB2YXIgcm93cyA9IGpRdWVyeSgidHIiLCB0YWJsZSk7IC8vIGdldCBhbGwgdGhlIHJvd3MgYXMgYSB3cmFwcGVkIHNldAoJICAgICAgICByb3dzLmVhY2goZnVuY3Rpb24oKSB7CgkJCQkvLyBJdGVyYXRlIHRocm91Z2ggZWFjaCByb3csIHRoZSByb3cgaXMgYm91bmQgdG8gInRoaXMiCgkJCQl2YXIgcm93ID0galF1ZXJ5KHRoaXMpOwoJCQkJaWYgKCEgcm93Lmhhc0NsYXNzKCJub2RyYWciKSkgewoJICAgICAgICAgICAgICAgIHJvdy5tb3VzZWRvd24oZnVuY3Rpb24oZXYpIHsKCSAgICAgICAgICAgICAgICAgICAgaWYgKGV2LnRhcmdldC50YWdOYW1lID09ICJURCIpIHsKCSAgICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5kcmFnT2JqZWN0ID0gdGhpczsKCSAgICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5jdXJyZW50VGFibGUgPSB0YWJsZTsKCSAgICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5tb3VzZU9mZnNldCA9IGpRdWVyeS50YWJsZURuRC5nZXRNb3VzZU9mZnNldCh0aGlzLCBldik7CgkgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29uZmlnLm9uRHJhZ1N0YXJ0KSB7CgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2FsbCB0aGUgb25Ecm9wIG1ldGhvZCBpZiB0aGVyZSBpcyBvbmUKCSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcub25EcmFnU3RhcnQodGFibGUsIHRoaXMpOwoJICAgICAgICAgICAgICAgICAgICAgICAgfQoJICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwoJICAgICAgICAgICAgICAgICAgICB9CgkgICAgICAgICAgICAgICAgfSkuY3NzKCJjdXJzb3IiLCAibW92ZSIpOyAvLyBTdG9yZSB0aGUgdGFibGVEbkQgb2JqZWN0CgkJCQl9CgkJCX0pOwoJCX0KCX0sCgoJdXBkYXRlVGFibGVzOiBmdW5jdGlvbigpIHsKCQl0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCS8vIHRoaXMgaXMgbm93IGJvdW5kIHRvIGVhY2ggbWF0Y2hpbmcgdGFibGUKCQkJaWYgKHRoaXMudGFibGVEbkRDb25maWcpIHsKCQkJCWpRdWVyeS50YWJsZURuRC5tYWtlRHJhZ2dhYmxlKHRoaXMpOwoJCQl9CgkJfSkKCX0sCgogICAgLyoqIEdldCB0aGUgbW91c2UgY29vcmRpbmF0ZXMgZnJvbSB0aGUgZXZlbnQgKGFsbG93aW5nIGZvciBicm93c2VyIGRpZmZlcmVuY2VzKSAqLwogICAgbW91c2VDb29yZHM6IGZ1bmN0aW9uKGV2KXsKICAgICAgICBpZihldi5wYWdlWCB8fCBldi5wYWdlWSl7CiAgICAgICAgICAgIHJldHVybiB7eDpldi5wYWdlWCwgeTpldi5wYWdlWX07CiAgICAgICAgfQogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIHg6ZXYuY2xpZW50WCArIGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdCAtIGRvY3VtZW50LmJvZHkuY2xpZW50TGVmdCwKICAgICAgICAgICAgeTpldi5jbGllbnRZICsgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgIC0gZG9jdW1lbnQuYm9keS5jbGllbnRUb3AKICAgICAgICB9OwogICAgfSwKCiAgICAvKiogR2l2ZW4gYSB0YXJnZXQgZWxlbWVudCBhbmQgYSBtb3VzZSBldmVudCwgZ2V0IHRoZSBtb3VzZSBvZmZzZXQgZnJvbSB0aGF0IGVsZW1lbnQuCiAgICAgICAgVG8gZG8gdGhpcyB3ZSBuZWVkIHRoZSBlbGVtZW50J3MgcG9zaXRpb24gYW5kIHRoZSBtb3VzZSBwb3NpdGlvbiAqLwogICAgZ2V0TW91c2VPZmZzZXQ6IGZ1bmN0aW9uKHRhcmdldCwgZXYpIHsKICAgICAgICBldiA9IGV2IHx8IHdpbmRvdy5ldmVudDsKCiAgICAgICAgdmFyIGRvY1BvcyAgICA9IHRoaXMuZ2V0UG9zaXRpb24odGFyZ2V0KTsKICAgICAgICB2YXIgbW91c2VQb3MgID0gdGhpcy5tb3VzZUNvb3Jkcyhldik7CiAgICAgICAgcmV0dXJuIHt4Om1vdXNlUG9zLnggLSBkb2NQb3MueCwgeTptb3VzZVBvcy55IC0gZG9jUG9zLnl9OwogICAgfSwKCiAgICAvKiogR2V0IHRoZSBwb3NpdGlvbiBvZiBhbiBlbGVtZW50IGJ5IGdvaW5nIHVwIHRoZSBET00gdHJlZSBhbmQgYWRkaW5nIHVwIGFsbCB0aGUgb2Zmc2V0cyAqLwogICAgZ2V0UG9zaXRpb246IGZ1bmN0aW9uKGUpewogICAgICAgIHZhciBsZWZ0ID0gMDsKICAgICAgICB2YXIgdG9wICA9IDA7CiAgICAgICAgLyoqIFNhZmFyaSBmaXggLS0gdGhhbmtzIHRvIEx1aXMgQ2hhdG8gZm9yIHRoaXMhICovCiAgICAgICAgaWYgKGUub2Zmc2V0SGVpZ2h0ID09IDApIHsKICAgICAgICAgICAgLyoqIFNhZmFyaSAyIGRvZXNuJ3QgY29ycmVjdGx5IGdyYWIgdGhlIG9mZnNldFRvcCBvZiBhIHRhYmxlIHJvdwogICAgICAgICAgICB0aGlzIGlzIGRldGFpbGVkIGhlcmU6CiAgICAgICAgICAgIGh0dHA6Ly9qYWNvYi5wZWFyZ3JvdmUuY29tL2Jsb2cvMjAwNi90ZWNobmljYWwvdGFibGUtcm93LW9mZnNldHRvcC1idWctaW4tc2FmYXJpLwogICAgICAgICAgICB0aGUgc29sdXRpb24gaXMgbGlrZXdpc2Ugbm90ZWQgdGhlcmUsIGdyYWIgdGhlIG9mZnNldCBvZiBhIHRhYmxlIGNlbGwgaW4gdGhlIHJvdyAtIHRoZSBmaXJzdENoaWxkLgogICAgICAgICAgICBub3RlIHRoYXQgZmlyZWZveCB3aWxsIHJldHVybiBhIHRleHQgbm9kZSBhcyBhIGZpcnN0IGNoaWxkLCBzbyBkZXNpZ25pbmcgYSBtb3JlIHRob3JvdWdoCiAgICAgICAgICAgIHNvbHV0aW9uIG1heSBuZWVkIHRvIHRha2UgdGhhdCBpbnRvIGFjY291bnQsIGZvciBub3cgdGhpcyBzZWVtcyB0byB3b3JrIGluIGZpcmVmb3gsIHNhZmFyaSwgaWUgKi8KICAgICAgICAgICAgZSA9IGUuZmlyc3RDaGlsZDsgLy8gYSB0YWJsZSBjZWxsCiAgICAgICAgfQoKICAgICAgICB3aGlsZSAoZS5vZmZzZXRQYXJlbnQpewogICAgICAgICAgICBsZWZ0ICs9IGUub2Zmc2V0TGVmdDsKICAgICAgICAgICAgdG9wICArPSBlLm9mZnNldFRvcDsKICAgICAgICAgICAgZSAgICAgPSBlLm9mZnNldFBhcmVudDsKICAgICAgICB9CgogICAgICAgIGxlZnQgKz0gZS5vZmZzZXRMZWZ0OwogICAgICAgIHRvcCAgKz0gZS5vZmZzZXRUb3A7CgogICAgICAgIHJldHVybiB7eDpsZWZ0LCB5OnRvcH07CiAgICB9LAoKICAgIG1vdXNlbW92ZTogZnVuY3Rpb24oZXYpIHsKICAgICAgICBpZiAoalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QgPT0gbnVsbCkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICB2YXIgZHJhZ09iaiA9IGpRdWVyeShqUXVlcnkudGFibGVEbkQuZHJhZ09iamVjdCk7CiAgICAgICAgdmFyIGNvbmZpZyA9IGpRdWVyeS50YWJsZURuRC5jdXJyZW50VGFibGUudGFibGVEbkRDb25maWc7CiAgICAgICAgdmFyIG1vdXNlUG9zID0galF1ZXJ5LnRhYmxlRG5ELm1vdXNlQ29vcmRzKGV2KTsKICAgICAgICB2YXIgeSA9IG1vdXNlUG9zLnkgLSBqUXVlcnkudGFibGVEbkQubW91c2VPZmZzZXQueTsKICAgICAgICAvL2F1dG8gc2Nyb2xsIHRoZSB3aW5kb3cKCSAgICB2YXIgeU9mZnNldCA9IHdpbmRvdy5wYWdlWU9mZnNldDsKCSAJaWYgKGRvY3VtZW50LmFsbCkgewoJICAgICAgICAvLyBXaW5kb3dzIHZlcnNpb24KCSAgICAgICAgLy95T2Zmc2V0PWRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOwoJICAgICAgICBpZiAodHlwZW9mIGRvY3VtZW50LmNvbXBhdE1vZGUgIT0gJ3VuZGVmaW5lZCcgJiYKCSAgICAgICAgICAgICBkb2N1bWVudC5jb21wYXRNb2RlICE9ICdCYWNrQ29tcGF0JykgewoJICAgICAgICAgICB5T2Zmc2V0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDsKCSAgICAgICAgfQoJICAgICAgICBlbHNlIGlmICh0eXBlb2YgZG9jdW1lbnQuYm9keSAhPSAndW5kZWZpbmVkJykgewoJICAgICAgICAgICB5T2Zmc2V0PWRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOwoJICAgICAgICB9CgoJICAgIH0KCQkgICAgCgkJaWYgKG1vdXNlUG9zLnkteU9mZnNldCA8IGNvbmZpZy5zY3JvbGxBbW91bnQpIHsKCSAgICAJd2luZG93LnNjcm9sbEJ5KDAsIC1jb25maWcuc2Nyb2xsQW1vdW50KTsKCSAgICB9IGVsc2UgewogICAgICAgICAgICB2YXIgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0ID8gd2luZG93LmlubmVySGVpZ2h0CiAgICAgICAgICAgICAgICAgICAgOiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0ID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCA6IGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0OwogICAgICAgICAgICBpZiAod2luZG93SGVpZ2h0LShtb3VzZVBvcy55LXlPZmZzZXQpIDwgY29uZmlnLnNjcm9sbEFtb3VudCkgewogICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbEJ5KDAsIGNvbmZpZy5zY3JvbGxBbW91bnQpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKCiAgICAgICAgaWYgKHkgIT0galF1ZXJ5LnRhYmxlRG5ELm9sZFkpIHsKICAgICAgICAgICAgLy8gd29yayBvdXQgaWYgd2UncmUgZ29pbmcgdXAgb3IgZG93bi4uLgogICAgICAgICAgICB2YXIgbW92aW5nRG93biA9IHkgPiBqUXVlcnkudGFibGVEbkQub2xkWTsKICAgICAgICAgICAgLy8gdXBkYXRlIHRoZSBvbGQgdmFsdWUKICAgICAgICAgICAgalF1ZXJ5LnRhYmxlRG5ELm9sZFkgPSB5OwogICAgICAgICAgICAvLyB1cGRhdGUgdGhlIHN0eWxlIHRvIHNob3cgd2UncmUgZHJhZ2dpbmcKCQkJaWYgKGNvbmZpZy5vbkRyYWdDbGFzcykgewoJCQkJZHJhZ09iai5hZGRDbGFzcyhjb25maWcub25EcmFnQ2xhc3MpOwoJCQl9IGVsc2UgewoJICAgICAgICAgICAgZHJhZ09iai5jc3MoY29uZmlnLm9uRHJhZ1N0eWxlKTsKCQkJfQogICAgICAgICAgICAvLyBJZiB3ZSdyZSBvdmVyIGEgcm93IHRoZW4gbW92ZSB0aGUgZHJhZ2dlZCByb3cgdG8gdGhlcmUgc28gdGhhdCB0aGUgdXNlciBzZWVzIHRoZQogICAgICAgICAgICAvLyBlZmZlY3QgZHluYW1pY2FsbHkKICAgICAgICAgICAgdmFyIGN1cnJlbnRSb3cgPSBqUXVlcnkudGFibGVEbkQuZmluZERyb3BUYXJnZXRSb3coZHJhZ09iaiwgeSk7CiAgICAgICAgICAgIGlmIChjdXJyZW50Um93KSB7CiAgICAgICAgICAgICAgICAvLyBUT0RPIHdvcnJ5IGFib3V0IHdoYXQgaGFwcGVucyB3aGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBUQk9ESUVTCiAgICAgICAgICAgICAgICBpZiAobW92aW5nRG93biAmJiBqUXVlcnkudGFibGVEbkQuZHJhZ09iamVjdCAhPSBjdXJyZW50Um93KSB7CiAgICAgICAgICAgICAgICAgICAgalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QsIGN1cnJlbnRSb3cubmV4dFNpYmxpbmcpOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmICghIG1vdmluZ0Rvd24gJiYgalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QgIT0gY3VycmVudFJvdykgewogICAgICAgICAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5kcmFnT2JqZWN0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGpRdWVyeS50YWJsZURuRC5kcmFnT2JqZWN0LCBjdXJyZW50Um93KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSwKCiAgICAvKiogV2UncmUgb25seSB3b3JyaWVkIGFib3V0IHRoZSB5IHBvc2l0aW9uIHJlYWxseSwgYmVjYXVzZSB3ZSBjYW4gb25seSBtb3ZlIHJvd3MgdXAgYW5kIGRvd24gKi8KICAgIGZpbmREcm9wVGFyZ2V0Um93OiBmdW5jdGlvbihkcmFnZ2VkUm93LCB5KSB7CiAgICAgICAgdmFyIHJvd3MgPSBqUXVlcnkudGFibGVEbkQuY3VycmVudFRhYmxlLnJvd3M7CiAgICAgICAgZm9yICh2YXIgaT0wOyBpPHJvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgdmFyIHJvdyA9IHJvd3NbaV07CiAgICAgICAgICAgIHZhciByb3dZICAgID0gdGhpcy5nZXRQb3NpdGlvbihyb3cpLnk7CiAgICAgICAgICAgIHZhciByb3dIZWlnaHQgPSBwYXJzZUludChyb3cub2Zmc2V0SGVpZ2h0KS8yOwogICAgICAgICAgICBpZiAocm93Lm9mZnNldEhlaWdodCA9PSAwKSB7CiAgICAgICAgICAgICAgICByb3dZID0gdGhpcy5nZXRQb3NpdGlvbihyb3cuZmlyc3RDaGlsZCkueTsKICAgICAgICAgICAgICAgIHJvd0hlaWdodCA9IHBhcnNlSW50KHJvdy5maXJzdENoaWxkLm9mZnNldEhlaWdodCkvMjsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBCZWNhdXNlIHdlIGFsd2F5cyBoYXZlIHRvIGluc2VydCBiZWZvcmUsIHdlIG5lZWQgdG8gb2Zmc2V0IHRoZSBoZWlnaHQgYSBiaXQKICAgICAgICAgICAgaWYgKCh5ID4gcm93WSAtIHJvd0hlaWdodCkgJiYgKHkgPCAocm93WSArIHJvd0hlaWdodCkpKSB7CiAgICAgICAgICAgICAgICAvLyB0aGF0J3MgdGhlIHJvdyB3ZSdyZSBvdmVyCgkJCQkvLyBJZiBpdCdzIHRoZSBzYW1lIGFzIHRoZSBjdXJyZW50IHJvdywgaWdub3JlIGl0CgkJCQlpZiAocm93ID09IGRyYWdnZWRSb3cpIHtyZXR1cm4gbnVsbDt9CiAgICAgICAgICAgICAgICB2YXIgY29uZmlnID0galF1ZXJ5LnRhYmxlRG5ELmN1cnJlbnRUYWJsZS50YWJsZURuRENvbmZpZzsKICAgICAgICAgICAgICAgIGlmIChjb25maWcub25BbGxvd0Ryb3ApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoY29uZmlnLm9uQWxsb3dEcm9wKGRyYWdnZWRSb3csIHJvdykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJvdzsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgewoJCQkJCS8vIElmIGEgcm93IGhhcyBub2Ryb3AgY2xhc3MsIHRoZW4gZG9uJ3QgYWxsb3cgZHJvcHBpbmcgKGluc3BpcmVkIGJ5IEpvaG4gVGFyciBhbmQgRmFtaWMpCiAgICAgICAgICAgICAgICAgICAgdmFyIG5vZHJvcCA9IGpRdWVyeShyb3cpLmhhc0NsYXNzKCJub2Ryb3AiKTsKICAgICAgICAgICAgICAgICAgICBpZiAoISBub2Ryb3ApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJvdzsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gcm93OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfSwKCiAgICBtb3VzZXVwOiBmdW5jdGlvbihlKSB7CiAgICAgICAgaWYgKGpRdWVyeS50YWJsZURuRC5jdXJyZW50VGFibGUgJiYgalF1ZXJ5LnRhYmxlRG5ELmRyYWdPYmplY3QpIHsKICAgICAgICAgICAgdmFyIGRyb3BwZWRSb3cgPSBqUXVlcnkudGFibGVEbkQuZHJhZ09iamVjdDsKICAgICAgICAgICAgdmFyIGNvbmZpZyA9IGpRdWVyeS50YWJsZURuRC5jdXJyZW50VGFibGUudGFibGVEbkRDb25maWc7CiAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgYSBkcmFnT2JqZWN0LCB0aGVuIHdlIG5lZWQgdG8gcmVsZWFzZSBpdCwKICAgICAgICAgICAgLy8gVGhlIHJvdyB3aWxsIGFscmVhZHkgaGF2ZSBiZWVuIG1vdmVkIHRvIHRoZSByaWdodCBwbGFjZSBzbyB3ZSBqdXN0IHJlc2V0IHN0dWZmCgkJCWlmIChjb25maWcub25EcmFnQ2xhc3MpIHsKCSAgICAgICAgICAgIGpRdWVyeShkcm9wcGVkUm93KS5yZW1vdmVDbGFzcyhjb25maWcub25EcmFnQ2xhc3MpOwoJCQl9IGVsc2UgewoJICAgICAgICAgICAgalF1ZXJ5KGRyb3BwZWRSb3cpLmNzcyhjb25maWcub25Ecm9wU3R5bGUpOwoJCQl9CiAgICAgICAgICAgIGpRdWVyeS50YWJsZURuRC5kcmFnT2JqZWN0ICAgPSBudWxsOwogICAgICAgICAgICBpZiAoY29uZmlnLm9uRHJvcCkgewogICAgICAgICAgICAgICAgLy8gQ2FsbCB0aGUgb25Ecm9wIG1ldGhvZCBpZiB0aGVyZSBpcyBvbmUKICAgICAgICAgICAgICAgIGNvbmZpZy5vbkRyb3AoalF1ZXJ5LnRhYmxlRG5ELmN1cnJlbnRUYWJsZSwgZHJvcHBlZFJvdyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgalF1ZXJ5LnRhYmxlRG5ELmN1cnJlbnRUYWJsZSA9IG51bGw7IC8vIGxldCBnbyBvZiB0aGUgdGFibGUgdG9vCiAgICAgICAgfQogICAgfSwKCiAgICBzZXJpYWxpemU6IGZ1bmN0aW9uKCkgewogICAgICAgIGlmIChqUXVlcnkudGFibGVEbkQuY3VycmVudFRhYmxlKSB7CiAgICAgICAgICAgIHJldHVybiBqUXVlcnkudGFibGVEbkQuc2VyaWFsaXplVGFibGUoalF1ZXJ5LnRhYmxlRG5ELmN1cnJlbnRUYWJsZSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuICJFcnJvcjogTm8gVGFibGUgaWQgc2V0LCB5b3UgbmVlZCB0byBzZXQgYW4gaWQgb24geW91ciB0YWJsZSBhbmQgZXZlcnkgcm93IjsKICAgICAgICB9CiAgICB9LAoKCXNlcmlhbGl6ZVRhYmxlOiBmdW5jdGlvbih0YWJsZSkgewogICAgICAgIHZhciByZXN1bHQgPSAiIjsKICAgICAgICB2YXIgdGFibGVJZCA9IHRhYmxlLmlkOwogICAgICAgIHZhciByb3dzID0gdGFibGUucm93czsKICAgICAgICBmb3IgKHZhciBpPTA7IGk8cm93cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDApIHJlc3VsdCArPSAiJiI7CiAgICAgICAgICAgIHZhciByb3dJZCA9IHJvd3NbaV0uaWQ7CiAgICAgICAgICAgIGlmIChyb3dJZCAmJiByb3dJZCAmJiB0YWJsZS50YWJsZURuRENvbmZpZyAmJiB0YWJsZS50YWJsZURuRENvbmZpZy5zZXJpYWxpemVSZWdleHApIHsKICAgICAgICAgICAgICAgIHJvd0lkID0gcm93SWQubWF0Y2godGFibGUudGFibGVEbkRDb25maWcuc2VyaWFsaXplUmVnZXhwKVswXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmVzdWx0ICs9IHRhYmxlSWQgKyAnW109JyArIHJvd0lkOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzdWx0OwoJfSwKCglzZXJpYWxpemVUYWJsZXM6IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciByZXN1bHQgPSAiIjsKICAgICAgICB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCS8vIHRoaXMgaXMgbm93IGJvdW5kIHRvIGVhY2ggbWF0Y2hpbmcgdGFibGUKCQkJcmVzdWx0ICs9IGpRdWVyeS50YWJsZURuRC5zZXJpYWxpemVUYWJsZSh0aGlzKTsKCQl9KTsKICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgfQoKfQoKalF1ZXJ5LmZuLmV4dGVuZCgKCXsKCQl0YWJsZURuRCA6IGpRdWVyeS50YWJsZURuRC5idWlsZCwKCQl0YWJsZURuRFVwZGF0ZSA6IGpRdWVyeS50YWJsZURuRC51cGRhdGVUYWJsZXMsCgkJdGFibGVEbkRTZXJpYWxpemU6IGpRdWVyeS50YWJsZURuRC5zZXJpYWxpemVUYWJsZXMKCX0KKTs=]]></data>
	</file>
	<file>
	  <filename>/js/mColorPicker.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[77u/LyoNCiAgbUNvbG9yUGlja2VyDQogIFZlcnNpb246IDEuMCByMzgNCiAgDQogIENvcHlyaWdodCAoYykgMjAxMCBNZXRhMTAwIExMQy4NCiAgaHR0cDovL3d3dy5tZXRhMTAwLmNvbS8NCiAgDQogIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSANCiAgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAgDQoqLw0KDQooZnVuY3Rpb24oJCl7dmFyIGIsZSxnLGosaT0kKGRvY3VtZW50KSxoPSQoIjxkaXY+Iiksbj0kKCI8ZGl2PiIpLG89JCgiPGRpdj4iKSxwPSQoIjxpbnB1dD4iKSxxPS9ecmdiW2FdP1woKFxkKyksXHMqKFxkKyksXHMqKFxkKykoLFxzKihcZCtcLlxkKykqKT9cKS8scj0vKFthLWYwLTldKShbYS1mMC05XSkoW2EtZjAtOV0pLyxzPS8jW2EtZjAtOV17M30vLHQ9LyNbYS1mMC05XXs2fS87JC5mbi5tQ29sb3JQaWNrZXI9ZnVuY3Rpb24oYSl7dmFyIGM9JC5mbi5tQ29sb3JQaWNrZXIuZ2V0Q29va2llKCJzd2F0Y2hlcyIpO2I9JC5leHRlbmQoJC5mbi5tQ29sb3JQaWNrZXIuZGVmYXVsdHMsYSk7JC5mbi5tQ29sb3JQaWNrZXIuZGVmYXVsdHMuc3dhdGNoZXMuY29uY2F0KGIuc3dhdGNoZXMpLnNsaWNlKC0xMCk7aWYoZS5lbmhhbmNlZFN3YXRjaGVzJiZjKWIuc3dhdGNoZXM9Yy5zcGxpdCgifHwiKS5jb25jYXQoYi5zd2F0Y2hlcykuc2xpY2UoMCwxMCl8fGIuc3dhdGNoZXM7JCgiZGl2I21Db2xvclBpY2tlciIpLmxlbmd0aHx8JC5mbi5tQ29sb3JQaWNrZXIuZHJhd1BpY2tlcigpOyQoIiNjc3NfZGlzYWJsZWRfY29sb3JfcGlja2VyIikubGVuZ3RofHwkKCJoZWFkIikucHJlcGVuZCgnPG1ldGEgZGF0YS1yZW1vdmUtbWU9InRydWUiLz48c3R5bGUgaWQ9ImNzc19kaXNhYmxlZF9jb2xvcl9waWNrZXIiIHR5cGU9InRleHQvY3NzIj4ubUNvbG9yUGlja2VyW2Rpc2FibGVkXSArIHNwYW4sIC5tQ29sb3JQaWNrZXJbZGlzYWJsZWQ9ImRpc2FibGVkIl0gKyBzcGFuLCAubUNvbG9yUGlja2VyW2Rpc2FibGVkPSJ0cnVlIl0gKyBzcGFuIHtmaWx0ZXI6YWxwaGEob3BhY2l0eT01MCk7LW1vei1vcGFjaXR5OjAuNTstd2Via2l0LW9wYWNpdHk6MC41Oy1raHRtbC1vcGFjaXR5OiAwLjU7b3BhY2l0eTogMC41O2N1cnNvcjpkZWZhdWx0O308L3N0eWxlPicpOyQoIm1ldGFbZGF0YS1yZW1vdmUtbWU9dHJ1ZV0iKS5yZW1vdmUoKTt0aGlzLmVhY2goJC5mbi5tQ29sb3JQaWNrZXIuZHJhd1BpY2tlclRyaWdnZXJzKTtyZXR1cm4gdGhpc307JC5mbi5tQ29sb3JQaWNrZXIuaW5pdD17cmVwbGFjZToiW3R5cGU9Y29sb3JdIixpbmRleDowLGVuaGFuY2VkU3dhdGNoZXM6dHJ1ZSxhbGxvd1RyYW5zcGFyZW5jeTp0cnVlLHNsb2dhbjoiTWV0YTEwMCAtIERlc2lnbmluZyBGdW4iLHNob3dMb2dvOnRydWV9OyQuZm4ubUNvbG9yUGlja2VyLmRlZmF1bHRzPXtjdXJyZW50SWQ6ZmFsc2UsY3VycmVudElucHV0OmZhbHNlLGN1cnJlbnRDb2xvcjpmYWxzZSxjaGFuZ2VDb2xvcjpmYWxzZSxjb2xvcjpmYWxzZSxpbWFnZUZvbGRlcjoiaW1hZ2VzLyIsc3dhdGNoZXM6IiNmZmZmZmYsI2ZmZmYwMCwjMDBmZjAwLCMwMGZmZmYsIzAwMDBmZiwjZmYwMGZmLCNmZjAwMDAsIzRjMmIxMSwjM2IzYjNiLCMwMDAwMDAiLnNwbGl0KCIsIil9OyQuZm4ubUNvbG9yUGlja2VyLnN0YXJ0PWZ1bmN0aW9uKCl7JCgnaW5wdXRbZGF0YS1tY29sb3JwaWNrZXIhPSJ0cnVlIl0nKS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gZS5yZXBsYWNlPT0iW3R5cGU9Y29sb3JdIj90aGlzLmdldEF0dHJpYnV0ZSgidHlwZSIpPT0iY29sb3IiOiQodGhpcykuaXMoZS5yZXBsYWNlKX0pLm1Db2xvclBpY2tlcigpfTskLmZuLm1Db2xvclBpY2tlci5ldmVudHM9ZnVuY3Rpb24oKXskKCIjbUNvbG9yUGlja2VyQmciKS5saXZlKCJjbGljayIsJC5mbi5tQ29sb3JQaWNrZXIuY2xvc2VQaWNrZXIpOyQoIi5tQ29sb3JQaWNrZXIiKS5saXZlKCJrZXl1cCIsZnVuY3Rpb24oKXt0cnl7JCh0aGlzKS5jc3MoeyJiYWNrZ3JvdW5kLWNvbG9yIjokKHRoaXMpLnZhbCgpfSkuY3NzKHtjb2xvcjokLmZuLm1Db2xvclBpY2tlci50ZXh0Q29sb3IoJCh0aGlzKS5jc3MoImJhY2tncm91bmQtY29sb3IiKSl9KS50cmlnZ2VyKCJjaGFuZ2UiKX1jYXRjaChhKXt9fSk7JCgiLm1Db2xvclBpY2tlclRyaWdnZXIiKS5saXZlKCJjbGljayIsJC5mbi5tQ29sb3JQaWNrZXIuY29sb3JTaG93KTskKCIubUNvbG9yLCAubVBhc3RDb2xvciIpLmxpdmUoIm1vdXNlbW92ZSIsZnVuY3Rpb24oYSl7aWYoIWIuY2hhbmdlQ29sb3IpcmV0dXJuIGZhbHNlO3ZhciBjPSQodGhpcyksZj1jLm9mZnNldCgpLGQ9Yi5jdXJyZW50SW5wdXQsZD1kLmF0dHIoImRhdGEtaGV4Iil8fGQuYXR0cigiaGV4Iik7Yi5jb2xvcj1jLmNzcygiYmFja2dyb3VuZC1jb2xvciIpO2lmKGMuaGFzQ2xhc3MoIm1QYXN0Q29sb3IiKSliLmNvbG9yPSQuZm4ubUNvbG9yUGlja2VyLnNldENvbG9yKGIuY29sb3IsZCk7ZWxzZSBpZihjLmhhc0NsYXNzKCJtQ29sb3JUcmFuc3BhcmVudCIpKWIuY29sb3I9InRyYW5zcGFyZW50IjtlbHNlIGlmKCFjLmhhc0NsYXNzKCJtUGFzdENvbG9yIikpYi5jb2xvcj0kLmZuLm1Db2xvclBpY2tlci53aGljaENvbG9yKGEucGFnZVgtZi5sZWZ0LGEucGFnZVktZi50b3AsZCk7Yi5jdXJyZW50SW5wdXQubVNldElucHV0Q29sb3IoYi5jb2xvcil9KS5saXZlKCJjbGljayIsJC5mbi5tQ29sb3JQaWNrZXIuY29sb3JQaWNrZWQpOyQoIiNtQ29sb3JQaWNrZXJJbnB1dCIpLmxpdmUoImtleXVwIixmdW5jdGlvbihhKXt0cnl7Yi5jb2xvcj0kKHRoaXMpLnZhbCgpLGIuY3VycmVudElucHV0Lm1TZXRJbnB1dENvbG9yKGIuY29sb3IpLGEud2hpY2g9PTEzJiYkLmZuLm1Db2xvclBpY2tlci5jb2xvclBpY2tlZCgpfWNhdGNoKGMpe319KS5saXZlKCJibHVyIixmdW5jdGlvbigpe2IuY3VycmVudElucHV0Lm1TZXRJbnB1dENvbG9yKGIuY29sb3IpfSk7JCgiI21Db2xvclBpY2tlcldyYXBwZXIiKS5saXZlKCJtb3VzZWxlYXZlIixmdW5jdGlvbigpe2lmKCFiLmNoYW5nZUNvbG9yKXJldHVybiBmYWxzZTtiLmN1cnJlbnRJbnB1dC5tU2V0SW5wdXRDb2xvcihiLmN1cnJlbnRDb2xvcil9KX07JC5mbi5tQ29sb3JQaWNrZXIuZHJhd1BpY2tlclRyaWdnZXJzPWZ1bmN0aW9uKCl7dmFyIGE9JCh0aGlzKSxjPWEuYXR0cigiaWQiKXx8ImNvbG9yXyIrZS5pbmRleCsrLGY9YS5hdHRyKCJ0ZXh0Iik9PSJoaWRkZW4ifHxhLmF0dHIoImRhdGEtdGV4dCIpPT0iaGlkZGVuIj90cnVlOmZhbHNlLGQ9JC5mbi5tQ29sb3JQaWNrZXIuc2V0Q29sb3IoYS52YWwoKSxhLmF0dHIoImRhdGEtaGV4Iil8fGEuYXR0cigiaGV4IikpLGs9YS53aWR0aCgpLGc9YS5oZWlnaHQoKSxoPWEuY3NzKCJmbG9hdCIpLGw9JCgiPHNwYW4+IiksbT0kKCI8c3Bhbj4iKSxpPSIiO2wuYXR0cih7aWQ6ImNvbG9yX3dvcmtfYXJlYSIsImNsYXNzIjoibUNvbG9yUGlja2VySW5wdXQifSkuYXBwZW5kVG8oaik7bS5hdHRyKHtpZDoibWNwXyIrYywiY2xhc3MiOiJtQ29sb3JQaWNrZXJUcmlnZ2VyIn0pLmNzcyh7ZGlzcGxheToiaW5saW5lLWJsb2NrIixjdXJzb3I6InBvaW50ZXIifSkuaW5zZXJ0QWZ0ZXIoYSk7JCgiPGltZz4iKS5hdHRyKHtzcmM6Yi5pbWFnZUZvbGRlcisiY29sb3IucG5nIn0pLmNzcyh7Ym9yZGVyOjAsbWFyZ2luOiIwIDAgMCAzcHgiLCJ2ZXJ0aWNhbC1hbGlnbiI6InRleHQtYm90dG9tIn0pLmFwcGVuZFRvKG0pO2wuYXBwZW5kKGEpO2k9bC5odG1sKCkucmVwbGFjZSgvdHlwZT0iY29sb3IiL2dpLCd0eXBlPSInKyhmPyJoaWRkZW4iOiJ0ZXh0IikrJyInKTtsLmh0bWwoIiIpLnJlbW92ZSgpO2E9JChpKS5hdHRyKCJpZCIsYykuYWRkQ2xhc3MoIm1Db2xvclBpY2tlciIpLnZhbChkKS5pbnNlcnRCZWZvcmUobSk7ZiYmbS5jc3Moe2JvcmRlcjoiMXB4IHNvbGlkIGJsYWNrIiwiZmxvYXQiOmgsd2lkdGg6ayxoZWlnaHQ6Z30pLmFkZENsYXNzKGEuYXR0cigiY2xhc3MiKSkuaHRtbCgiJm5ic3A7Iik7YS5tU2V0SW5wdXRDb2xvcihkKTtyZXR1cm4gYX07JC5mbi5tQ29sb3JQaWNrZXIuZHJhd1BpY2tlcj1mdW5jdGlvbigpe3ZhciBhPSQoIjxkaXY+IiksYz0kKCI8YT4iKSxmPSQoIjxkaXY+IiksZD0kKCI8ZGl2PiIpO24uYXR0cih7aWQ6Im1Db2xvclBpY2tlckJnIn0pLmNzcyh7ZGlzcGxheToibm9uZSIsYmFja2dyb3VuZDoiYmxhY2siLG9wYWNpdHk6MC4wMSxwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDowLHJpZ2h0OjAsYm90dG9tOjAsbGVmdDowfSkuYXBwZW5kVG8oaik7aC5hdHRyKHtpZDoibUNvbG9yUGlja2VyIiwiZGF0YS1tY29sb3JwaWNrZXIiOnRydWV9KS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsYm9yZGVyOiIxcHggc29saWQgI2NjYyIsY29sb3I6IiNmZmYiLHdpZHRoOiIxOTRweCIsaGVpZ2h0OiIxODRweCIsImZvbnQtc2l6ZSI6IjEycHgiLCJmb250LWZhbWlseSI6InRpbWVzIixkaXNwbGF5OiJub25lIn0pLmFwcGVuZFRvKGopO28uYXR0cih7aWQ6Im1Db2xvclBpY2tlclRlc3QifSkuY3NzKHtkaXNwbGF5OiJub25lIn0pLmFwcGVuZFRvKGopO2QuYXR0cih7aWQ6Im1Db2xvclBpY2tlcldyYXBwZXIifSkuY3NzKHtwb3NpdGlvbjoicmVsYXRpdmUiLGJvcmRlcjoic29saWQgMXB4IGdyYXkifSkuYXBwZW5kVG8oaCk7JCgiPGRpdj4iKS5hdHRyKHtpZDoibUNvbG9yUGlja2VySW1nIiwiY2xhc3MiOiJtQ29sb3IifSkuY3NzKHtoZWlnaHQ6IjEzNnB4Iix3aWR0aDoiMTkycHgiLGJvcmRlcjowLGN1cnNvcjoiY3Jvc3NoYWlyIiwiYmFja2dyb3VuZC1pbWFnZSI6InVybCgiK2IuaW1hZ2VGb2xkZXIrInBpY2tlci5wbmcpIn0pLmFwcGVuZFRvKGQpO2EuYXR0cih7aWQ6Im1Db2xvclBpY2tlclN3YXRjaGVzIn0pLmNzcyh7ImJvcmRlci1yaWdodCI6IjFweCBzb2xpZCAjMDAwIn0pLmFwcGVuZFRvKGQpOyQoIjxkaXY+IikuYWRkQ2xhc3MoIm1DbGVhciIpLmNzcyh7Y2xlYXI6ImJvdGgifSkuYXBwZW5kVG8oYSk7Zm9yKGc9OTtnPi0xO2ctLSkkKCI8ZGl2PiIpLmF0dHIoe2lkOiJjZWxsIitnLCJjbGFzcyI6Im1QYXN0Q29sb3IiKyhnPjA/IiBtTm9MZWZ0Qm9yZGVyIjoiIil9KS5jc3MoeyJiYWNrZ3JvdW5kLWNvbG9yIjpiLnN3YXRjaGVzW2ddLnRvTG93ZXJDYXNlKCksaGVpZ2h0OiIxOHB4Iix3aWR0aDoiMThweCIsYm9yZGVyOiIxcHggc29saWQgIzAwMCIsImZsb2F0IjoibGVmdCJ9KS5odG1sKCImbmJzcDsiKS5wcmVwZW5kVG8oYSk7Zi5hdHRyKHtpZDoibUNvbG9yUGlja2VyRm9vdGVyIn0pLmNzcyh7ImJhY2tncm91bmQtaW1hZ2UiOiJ1cmwoIitiLmltYWdlRm9sZGVyKyJncmlkLmdpZikiLHBvc2l0aW9uOiJyZWxhdGl2ZSIsaGVpZ2h0OiIyNnB4In0pLmFwcGVuZFRvKGQpO3AuYXR0cih7aWQ6Im1Db2xvclBpY2tlcklucHV0Iix0eXBlOiJ0ZXh0In0pLmNzcyh7Ym9yZGVyOiJzb2xpZCAxcHggZ3JheSIsImZvbnQtc2l6ZSI6IjEwcHQiLG1hcmdpbjoiM3B4Iix3aWR0aDoiODBweCJ9KS5hcHBlbmRUbyhmKTtlLmFsbG93VHJhbnNwYXJlbmN5JiYkKCI8c3Bhbj4iKS5hdHRyKHtpZDoibUNvbG9yUGlja2VyVHJhbnNwYXJlbnQiLCJjbGFzcyI6Im1Db2xvciBtQ29sb3JUcmFuc3BhcmVudCJ9KS5jc3MoeyJmb250LXNpemUiOiIxNnB4Iixjb2xvcjoiIzAwMCIsInBhZGRpbmctcmlnaHQiOiIzMHB4IiwicGFkZGluZy10b3AiOiIzcHgiLGN1cnNvcjoicG9pbnRlciIsb3ZlcmZsb3c6ImhpZGRlbiIsImZsb2F0IjoicmlnaHQifSkudGV4dCgidHJhbnNwYXJlbnQiKS5hcHBlbmRUbyhmKTtlLnNob3dMb2dvJiZjLmF0dHIoe2hyZWY6Imh0dHA6Ly9tZXRhMTAwLmNvbS8iLHRpdGxlOmUuc2xvZ2FuLGFsdDplLnNsb2dhbix0YXJnZXQ6Il9ibGFuayJ9KS5jc3MoeyJmbG9hdCI6InJpZ2h0In0pLmFwcGVuZFRvKGYpOyQoIjxpbWc+IikuYXR0cih7c3JjOmIuaW1hZ2VGb2xkZXIrIm1ldGExMDAucG5nIix0aXRsZTplLnNsb2dhbixhbHQ6ZS5zbG9nYW59KS5jc3Moe2JvcmRlcjowLCJib3JkZXItbGVmdCI6IjFweCBzb2xpZCAjYWFhIixyaWdodDowLHBvc2l0aW9uOiJhYnNvbHV0ZSJ9KS5hcHBlbmRUbyhjKTskKCIubU5vTGVmdEJvcmRlciIpLmNzcyh7ImJvcmRlci1sZWZ0IjowfSl9OyQuZm4ubUNvbG9yUGlja2VyLmNsb3NlUGlja2VyPWZ1bmN0aW9uKCl7bi5oaWRlKCk7aC5mYWRlT3V0KCl9OyQuZm4ubUNvbG9yUGlja2VyLmNvbG9yU2hvdz1mdW5jdGlvbigpe3ZhciBhPSQodGhpcyksYz1hLmF0dHIoImlkIikucmVwbGFjZSgibWNwXyIsIiIpLGY9YS5vZmZzZXQoKSxkPSQoIiMiK2MpLGs9Zi50b3ArYS5vdXRlckhlaWdodCgpLGU9Zi5sZWZ0O2lmKGQuYXR0cigiZGlzYWJsZWQiKSlyZXR1cm4gZmFsc2U7Yi5jdXJyZW50Q29sb3I9ZC5jc3MoImJhY2tncm91bmQtY29sb3IiKTtiLmNoYW5nZUNvbG9yPXRydWU7Yi5jdXJyZW50SW5wdXQ9ZDtiLmN1cnJlbnRJZD1jO2sraC5oZWlnaHQoKT5pLmhlaWdodCgpJiYoaz1mLnRvcC1oLmhlaWdodCgpKTtlK2gud2lkdGgoKT5pLndpZHRoKCkmJihlPWYubGVmdC1oLndpZHRoKCkrYS5vdXRlcldpZHRoKCkpO2guY3NzKHt0b3A6aysicHgiLGxlZnQ6ZSsicHgifSkuZmFkZUluKCJmYXN0Iik7bi5zaG93KCk7Yi5jb2xvcj0kKCIjIitjKS5hdHRyKCJkYXRhLXRleHQiKT9hLmNzcygiYmFja2dyb3VuZC1jb2xvciIpOmQuY3NzKCJiYWNrZ3JvdW5kLWNvbG9yIik7Yi5jb2xvcj0kLmZuLm1Db2xvclBpY2tlci5zZXRDb2xvcihiLmNvbG9yLGQuYXR0cigiZGF0YS1oZXgiKXx8ZC5hdHRyKCJoZXgiKSk7cC52YWwoYi5jb2xvcil9OyQuZm4ubUNvbG9yUGlja2VyLnNldElucHV0Q29sb3I9ZnVuY3Rpb24oYSxjKXskKCIjIithKS5tU2V0SW5wdXRDb2xvcihjKX07JC5mbi5tU2V0SW5wdXRDb2xvcj1mdW5jdGlvbihhKXt2YXIgYz0kKHRoaXMpLGY9eyJiYWNrZ3JvdW5kLWNvbG9yIjphLCJiYWNrZ3JvdW5kLWltYWdlIjphPT0idHJhbnNwYXJlbnQiPyJ1cmwoJyIrYi5pbWFnZUZvbGRlcisiZ3JpZC5naWYnKSI6IiIsY29sb3I6JC5mbi5tQ29sb3JQaWNrZXIudGV4dENvbG9yKGEpfTsoYy5hdHRyKCJkYXRhLXRleHQiKXx8Yy5hdHRyKCJ0ZXh0IikpJiZjLm5leHQoKS5jc3MoZik7Yy52YWwoYSkuY3NzKGYpLnRyaWdnZXIoImNoYW5nZSIpO3AudmFsKGEpfTskLmZuLm1Db2xvclBpY2tlci50ZXh0Q29sb3I9ZnVuY3Rpb24oYSl7YT0kLmZuLm1Db2xvclBpY2tlci5SR0J0b0hleChhKTtyZXR1cm4gdHlwZW9mIGE9PSJ1bmRlZmluZWQifHxhPT0idHJhbnNwYXJlbnQiPyJibGFjayI6cGFyc2VJbnQoYS5zdWJzdHIoMSwyKSwxNikrcGFyc2VJbnQoYS5zdWJzdHIoMywyKSwxNikrcGFyc2VJbnQoYS5zdWJzdHIoNSwyKSwxNik8NDAwPyJ3aGl0ZSI6ImJsYWNrIn07JC5mbi5tQ29sb3JQaWNrZXIuc2V0Q29va2llPWZ1bmN0aW9uKGEsYyxiKXthPWErIj0iK2VzY2FwZShjKTtjPW5ldyBEYXRlO2Muc2V0RGF0ZShjLmdldERhdGUoKStiKTthKz0iOyBleHBpcmVzPSIrYy50b0dNVFN0cmluZygpO2RvY3VtZW50LmNvb2tpZT1hfTskLmZuLm1Db2xvclBpY2tlci5nZXRDb29raWU9ZnVuY3Rpb24oYSl7cmV0dXJuKGE9ZG9jdW1lbnQuY29va2llLm1hdGNoKCIoXnw7KSA/IithKyI9KFteO10qKSg7fCQpIikpP3VuZXNjYXBlKGFbMl0pOm51bGx9OyQuZm4ubUNvbG9yUGlja2VyLmNvbG9yUGlja2VkPWZ1bmN0aW9uKCl7Yi5jaGFuZ2VDb2xvcj1mYWxzZTskLmZuLm1Db2xvclBpY2tlci5jbG9zZVBpY2tlcigpOyQuZm4ubUNvbG9yUGlja2VyLmFkZFRvU3dhdGNoKCk7Yi5jdXJyZW50SW5wdXQudHJpZ2dlcigiY29sb3JwaWNrZWQiKX07JC5mbi5tQ29sb3JQaWNrZXIuYWRkVG9Td2F0Y2g9ZnVuY3Rpb24oYSl7aWYoIWUuZW5oYW5jZWRTd2F0Y2hlcylyZXR1cm4gZmFsc2U7dmFyIGM9W107Zz0wO2lmKHR5cGVvZiBhPT0ic3RyaW5nIiliLmNvbG9yPWEudG9Mb3dlckNhc2UoKTtiLmNvbG9yIT0idHJhbnNwYXJlbnQiJiYoY1swXT1iLmNvbG9yLnRvTG93ZXJDYXNlKCkpOyQoIi5tUGFzdENvbG9yIikuZWFjaChmdW5jdGlvbigpe3ZhciBhPSQodGhpcyk7Yi5jb2xvcj1hLmNzcygiYmFja2dyb3VuZC1jb2xvciIpLnRvTG93ZXJDYXNlKCk7aWYoYi5jb2xvciE9Y1swXSYmJC5mbi5tQ29sb3JQaWNrZXIuUkdCdG9IZXgoYi5jb2xvcikhPWNbMF0mJiQuZm4ubUNvbG9yUGlja2VyLmhleFRvUkdCKGIuY29sb3IpIT1jWzBdJiZjLmxlbmd0aDwxMCljW2MubGVuZ3RoXT1iLmNvbG9yOyQodGhpcykuY3NzKCJiYWNrZ3JvdW5kLWNvbG9yIixjW2crK10pfSk7ZS5lbmhhbmNlZFN3YXRjaGVzJiYkLmZuLm1Db2xvclBpY2tlci5zZXRDb29raWUoInN3YXRjaGVzIixjLmpvaW4oInx8IiksMzY1KX07JC5mbi5tQ29sb3JQaWNrZXIud2hpY2hDb2xvcj1mdW5jdGlvbihhLGMsYil7dmFyIGQ9WzI1NSwyNTUsMjU1XTthPDMyPyhkWzFdPWEqOCxkWzJdPTApOmE8NjQ/KGRbMF09MjU2LShhLTMyKSo4LGRbMl09MCk6YTw5Nj8oZFswXT0wLGRbMl09KGEtNjQpKjgpOmE8MTI4PyhkWzBdPTAsZFsxXT0yNTYtKGEtOTYpKjgpOmE8MTYwPyhkWzBdPShhLTEyOCkqOCxkWzFdPTApOihkWzFdPTAsZFsyXT0yNTYtKGEtMTYwKSo4KTtmb3IodmFyIGU9MDtlPDM7ZSsrKWM8NjQ/ZFtlXSs9KDI1Ni1kW2VdKSooNjQtYykvNjQ6Yzw9MTI4P2RbZV0tPWRbZV0qKGMtNjQpLzY0OmM+MTI4JiYoZFtlXT0yNTYtYS8xOTIqMjU2KSxkW2VdPU1hdGgucm91bmQoTWF0aC5taW4oZFtlXSwyNTUpKSxiPT0idHJ1ZSImJihkW2VdPSQuZm4ubUNvbG9yUGlja2VyLmRlY1RvSGV4KGRbZV0pKTtyZXR1cm4gYj09InRydWUiPyIjIitkLmpvaW4oIiIpOiJyZ2IoIitkLmpvaW4oIiwgIikrIikifTskLmZuLm1Db2xvclBpY2tlci5zZXRDb2xvcj1mdW5jdGlvbihhLGMpe3JldHVybiBjPT0idHJ1ZSI/JC5mbi5tQ29sb3JQaWNrZXIuUkdCdG9IZXgoYSk6JC5mbi5tQ29sb3JQaWNrZXIuaGV4VG9SR0IoYSl9OyQuZm4ubUNvbG9yUGlja2VyLmNvbG9yVGVzdD1mdW5jdGlvbihhKXtvLmNzcygiYmFja2dyb3VuZC1jb2xvciIsYSk7cmV0dXJuIG8uY3NzKCJiYWNrZ3JvdW5kLWNvbG9yIil9OyQuZm4ubUNvbG9yUGlja2VyLmRlY1RvSGV4PWZ1bmN0aW9uKGEpe2E9cGFyc2VJbnQoYSk7cmV0dXJuIFN0cmluZygiMDEyMzQ1Njc4OUFCQ0RFRiIuY2hhckF0KE1hdGguZmxvb3IoYS8xNikpKStTdHJpbmcoIjAxMjM0NTY3ODlBQkNERUYiLmNoYXJBdChhLU1hdGguZmxvb3IoYS8xNikqMTYpKX07JC5mbi5tQ29sb3JQaWNrZXIuUkdCdG9IZXg9ZnVuY3Rpb24oYSl7dmFyIGM9IiMiLGIsYT1hP2EudG9Mb3dlckNhc2UoKTpmYWxzZTtpZighYSlyZXR1cm4iIjtpZih0LnRlc3QoYSkpcmV0dXJuIGEuc3Vic3RyKDAsNyk7aWYocy50ZXN0KGEpKXJldHVybiBhLnJlcGxhY2UociwiJDEkMSQyJDIkMyQzIikuc3Vic3RyKDAsNyk7aWYoYj1hLm1hdGNoKHEpKXtmb3IoYT0xO2E8NDthKyspYys9JC5mbi5tQ29sb3JQaWNrZXIuZGVjVG9IZXgoYlthXSk7cmV0dXJuIGN9cmV0dXJuICQuZm4ubUNvbG9yUGlja2VyLmNvbG9yVGVzdChhKX07JC5mbi5tQ29sb3JQaWNrZXIuaGV4VG9SR0I9ZnVuY3Rpb24oYSl7YT1hP2EudG9Mb3dlckNhc2UoKTpmYWxzZTtpZighYSlyZXR1cm4iIjtpZihxLnRlc3QoYSkpcmV0dXJuIGE7cmV0dXJuIHMudGVzdChhKT8odC50ZXN0KGEpfHwoYT1hLnJlcGxhY2UociwiJDEkMSQyJDIkMyQzIikpLCJyZ2IoIitwYXJzZUludChhLnN1YnN0cigxLDIpLDE2KSsiLCAiK3BhcnNlSW50KGEuc3Vic3RyKDMsMiksMTYpKyIsICIrcGFyc2VJbnQoYS5zdWJzdHIoNSwyKSwxNikrIikiKTokLmZuLm1Db2xvclBpY2tlci5jb2xvclRlc3QoYSl9O2U9JC5mbi5tQ29sb3JQaWNrZXIuaW5pdDtpLnJlYWR5KGZ1bmN0aW9uKCl7aj0kKCJib2R5Iik7JC5mbi5tQ29sb3JQaWNrZXIuZXZlbnRzKCk7ZS5yZXBsYWNlJiYoJC5mbi5tQ29sb3JQaWNrZXIuc3RhcnQoKSx0eXBlb2YgJC5mbi5saXZlcXVlcnk9PSJmdW5jdGlvbiI/JChlLnJlcGxhY2UpLmxpdmVxdWVyeSgkLmZuLm1Db2xvclBpY2tlci5zdGFydCk6JChkb2N1bWVudCkubGl2ZSgiYWpheFN1Y2Nlc3MubUNvbG9yUGlja2VyIiwkLmZuLm1Db2xvclBpY2tlci5zdGFydCkpfSl9KShqUXVlcnkpOw==]]></data>
	</file>
	<file>
	  <filename>/js/plupload/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/plupload/i18n/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/plupload/i18n/cs.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gLnBvIGZpbGUgbGlrZSBsYW5ndWFnZSBwYWNrDQpwbHVwbG9hZC5hZGRJMThuKHsNCgknU2VsZWN0IGZpbGVzJyA6ICdWeWJlcnRlIHNvdWJvcnknLA0KCSdBZGQgZmlsZXMgdG8gdGhlIHVwbG9hZCBxdWV1ZSBhbmQgY2xpY2sgdGhlIHN0YXJ0IGJ1dHRvbi4nIDogJ1DFmWlkZWp0ZSBzb3Vib3J5IGRvIGZyb250eSBhIHBhayBzcHVzxaV0ZSBuYWhyw6F2w6Fuw60uJywNCgknRmlsZW5hbWUnIDogJ07DoXpldiBzb3Vib3J1JywNCgknU3RhdHVzJyA6ICdTdGF0dXMnLA0KCSdTaXplJyA6ICdWZWxpa29zdCcsDQoJJ0FkZCBGaWxlcycgOiAnUMWZaWRhdCBzb3Vib3J5JywNCgknU3RvcCBjdXJyZW50IHVwbG9hZCcgOiAnWmFzdGF2aXQgbmFocsOhdsOhbsOtJywNCgknU3RhcnQgdXBsb2FkaW5nIHF1ZXVlJyA6ICdTcHVzdGl0IGZyb250dSBuYWhyw6F2w6Fuw60nLA0KCSdEcmFnIGZpbGVzIGhlcmUuJyA6ICdTZW0gcMWZZXTDoWhuxJt0ZSBzb3Vib3J5LicsDQoJJ1N0YXJ0IFVwbG9hZCc6ICdTcHVzdGl0IG5haHLDoXbDoW7DrScsDQoJJ1VwbG9hZGVkICVkLyVkIGZpbGVzJzogJ05haHLDoW5vICVkLyVkIHNvdWJvcsWvJw0KfSk7]]></data>
	</file>
	<file>
	  <filename>/js/plupload/i18n/da.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gLnBvIGZpbGUgbGlrZSBsYW5ndWFnZSBwYWNrCnBsdXBsb2FkLmFkZEkxOG4oewoJJ1NlbGVjdCBmaWxlcycgOiAnVsOmbGcgZmlsZXInLAoJJ0FkZCBmaWxlcyB0byB0aGUgdXBsb2FkIHF1ZXVlIGFuZCBjbGljayB0aGUgc3RhcnQgYnV0dG9uLicgOiAnVGlsZsO4aiBmaWxlciB0aWwga8O4ZW4sIG9nIHRyeWsgcMOlIHN0YXJ0LicsCgknRmlsZW5hbWUnIDogJ0ZpbG5hdm4nLAoJJ1N0YXR1cycgOiAnU3RhdHVzJywKCSdTaXplJyA6ICdTdMO4cnJlbHNlJywKCSdBZGQgZmlsZXMnIDogJ1RpbGbDuGogZmlsZXInLAoJJ1N0b3AgY3VycmVudCB1cGxvYWQnIDogJ1N0b3AgdXBsb2FkJywKCSdTdGFydCB1cGxvYWRpbmcgcXVldWUnIDogJ1N0YXJ0IHVwbG9hZCcsCgknRHJhZyBmaWxlcyBoZXJlLicgOiAnVHLDpmsgZmlsZXIgaGVyLicKfSk7]]></data>
	</file>
	<file>
	  <filename>/js/plupload/i18n/de.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gR2VybWFuDQpwbHVwbG9hZC5hZGRJMThuKHsNCiAgICAnU2VsZWN0IGZpbGVzJyA6ICdEYXRlaWVuIGhvY2hsYWRlbicsDQogICAgJ0FkZCBmaWxlcyB0byB0aGUgdXBsb2FkIHF1ZXVlIGFuZCBjbGljayB0aGUgc3RhcnQgYnV0dG9uLicgOiAnRGF0ZWllbiBoaW56dWYmdXVtbDtnZW4gdW5kIGF1ZiBcJ0hvY2hsYWRlblwnIGtsaWNrZW4uJywNCiAgICAnRmlsZW5hbWUnIDogJ0RhdGVpbmFtZScsDQogICAgJ1N0YXR1cycgOiAnU3RhdHVzJywNCiAgICAnU2l6ZScgOiAnR3Imb3VtbDsmc3psaWc7ZScsDQogICAgJ0FkZCBmaWxlcycgOiAnRGF0ZWllbicsIC8vIGhpbnp1ZiZ1dW1sO2dlbicsDQogICAgJ1N0b3AgY3VycmVudCB1cGxvYWQnIDogJ0FrdHVlbGxlcyBIb2NobGFkZW4gc3RvcHBlbicsDQogICAgJ1N0YXJ0IHVwbG9hZGluZyBxdWV1ZScgOiAnSG9jaGxhZGVuIHN0YXJ0ZW4nLA0KICAgICdVcGxvYWRlZCAlZC8lZCBmaWxlcyc6ICclZC8lZCBEYXRlaWVuIHNpbmQgaG9jaGdlbGFkZW4nLA0KICAgICdOL0EnIDogJ05pY2h0IHZlcmYmdXVtbDtnYmFyJywNCiAgICAnRHJhZyBmaWxlcyBoZXJlLicgOiAnWmllaGVuIFNpZSBkaWUgRGF0ZWllbiBoaWVyIGhpbicsDQogICAgJ0ZpbGUgZXh0ZW5zaW9uIGVycm9yLic6ICdGZWhsZXIgYmVpIERhdGVpZW5kdW5nJywNCiAgICAnRmlsZSBzaXplIGVycm9yLic6ICdGZWhsZXIgYmVpIERhdGVpZ3Imb3VtbDvDn2UnLA0KICAgICdJbml0IGVycm9yLic6ICdJbml0aWFsaXNpZXJ1bmdzZmVobGVyJywNCiAgICAnSFRUUCBFcnJvci4nOiAnSFRUUC1GZWhsZXInLA0KICAgICdTZWN1cml0eSBlcnJvci4nOiAnU2ljaGVyaGVpdHNmZWhsZXInLA0KICAgICdHZW5lcmljIGVycm9yLic6ICdUeXBpc2NoZXIgRmVobGVyJywNCiAgICAnSU8gZXJyb3IuJzogJ0Vpbi9BdXNnYWJlLUZlaGxlcicsDQogICAgJ1N0b3AgVXBsb2FkJzogJ0hvY2hsYWRlbiBzdG9wcGVuJywNCiAgICAnU3RhcnQgdXBsb2FkJzogJ0hvY2hsYWRlbicsDQogICAgJyVkIGZpbGVzIHF1ZXVlZCc6ICclZCBEYXRlaWVuIGluIGRlciBXYXJ0ZXNjaGxhbmdlJw0KfSk7]]></data>
	</file>
	<file>
	  <filename>/js/plupload/i18n/es.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gU3BhbmlzaA0KcGx1cGxvYWQuYWRkSTE4bih7DQoJJ1NlbGVjdCBmaWxlcycgOiAnRWxpamEgYXJjaGl2b3M6JywNCgknQWRkIGZpbGVzIHRvIHRoZSB1cGxvYWQgcXVldWUgYW5kIGNsaWNrIHRoZSBzdGFydCBidXR0b24uJyA6ICdBZ3JlZ3VlIGFyY2hpdm9zIGEgbGEgY29sYSBkZSBzdWJpZGEgeSBoYWdhIGNsaWNrIGVuIGVsIGJvdG9uIGRlIGluaWNpYXIuJywNCgknRmlsZW5hbWUnIDogJ05vbWJyZSBkZSBhcmNoaXZvJywNCgknU3RhdHVzJyA6ICdFc3RhZG8nLA0KCSdTaXplJyA6ICdUYW1hJm50aWxkZTtvJywNCgknQWRkIGZpbGVzJyA6ICdBZ3JlZ3VlIGFyY2hpdm9zJywNCgknU3RvcCBjdXJyZW50IHVwbG9hZCcgOiAnRGV0ZW5lciBzdWJpZGEgYWN0dWFsJywNCgknU3RhcnQgdXBsb2FkaW5nIHF1ZXVlJyA6ICdJbmljaWFyIHN1YmlkYSBkZSBjb2xhJywNCgknVXBsb2FkZWQgJWQvJWQgZmlsZXMnOiAnU3ViaWRvcyAlZC8lZCBhcmNoaXZvcycsDQoJJ04vQScgOiAnTm8gZGlzcG9uaWJsZScsDQoJJ0RyYWcgZmlsZXMgaGVyZS4nIDogJ0FycmFzdHJlIGFyY2hpdm9zIGFxdSZpYWN1dGU7JywNCgknRmlsZSBleHRlbnNpb24gZXJyb3IuJzogJ0Vycm9yIGRlIGV4dGVuc2kmb2FjdXRlO24gZGUgYXJjaGl2by4nLA0KCSdGaWxlIHNpemUgZXJyb3IuJzogJ0Vycm9yIGRlIHRhbWEmbnRpbGRlO28gZGUgYXJjaGl2by4nLA0KCSdJbml0IGVycm9yLic6ICdFcnJvciBkZSBpbmljaWFsaXphY2kmb2FjdXRlO24uJywNCgknSFRUUCBFcnJvci4nOiAnRXJyb3IgZGUgSFRUUC4nLA0KCSdTZWN1cml0eSBlcnJvci4nOiAnRXJyb3IgZGUgc2VndXJpZGFkLicsDQoJJ0dlbmVyaWMgZXJyb3IuJzogJ0Vycm9yIGdlbiZlYWN1dGU7cmljby4nLA0KCSdJTyBlcnJvci4nOiAnRXJyb3IgZGUgZW50cmFkYS9zYWxpZGEuJywNCgknU3RvcCBVcGxvYWQnOiAnRGV0ZW5lciBTdWJpZGEuJywNCgknQWRkIEZpbGVzJzogJ0FncmVnYXIgQXJjaGl2b3MnLA0KCSdTdGFydCBVcGxvYWQnOiAnQ29tZW56YXIgU3ViaWRhLicsDQoJJyVkIGZpbGVzIHF1ZXVlZCc6ICclZCBhcmNoaXZvcyBlbiBjb2xhLicNCn0pOw==]]></data>
	</file>
	<file>
	  <filename>/js/plupload/i18n/fi.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gLmZpIGZpbGUgbGlrZSBsYW5ndWFnZSBwYWNrDQpwbHVwbG9hZC5hZGRJMThuKHsNCgknU2VsZWN0IGZpbGVzJyA6ICdWYWxpdHNlIHRpZWRvc3RvamEnLA0KCSdBZGQgZmlsZXMgdG8gdGhlIHVwbG9hZCBxdWV1ZSBhbmQgY2xpY2sgdGhlIHN0YXJ0IGJ1dHRvbi4nIDogJ0xpc8Okw6QgdGllZG9zdG9qYSBsYXRhdXNqb25vb24gamEga2xpa2thYSBhbG9pdGEtbmFwcGlhLicsDQoJJ0ZpbGVuYW1lJyA6ICdUaWVkb3N0b25pbWknLA0KCSdTdGF0dXMnIDogJ1RpbGEnLA0KCSdTaXplJyA6ICdLb2tvJywNCgknQWRkIGZpbGVzJyA6ICdMaXPDpMOkIHRpZWRvc3RvamEnLA0KCSdTdG9wIGN1cnJlbnQgdXBsb2FkJyA6ICdQeXPDpHl0w6QgbnlreWluZW4gbGF0YXVzJywNCgknU3RhcnQgdXBsb2FkaW5nIHF1ZXVlJyA6ICdBbG9pdGEgam9ub24gbGF0YXVzJywNCgknRHJhZyBmaWxlcyBoZXJlLicgOiAnUmFhaGFhIHRpZWRvc3RvdCB0w6RubmUuJywNCgknU3RhcnQgdXBsb2FkJyA6ICdBbG9pdGEgbGF0YXVzJywNCgknVXBsb2FkZWQgJWQvJWQgZmlsZXMnOiAnTGFkYXR0dSAlZC8lZCB0aWVkb3N0b2EnLA0KCSdTdG9wIHVwbG9hZCc6ICdQeXPDpHl0w6QgbGF0YXVzJywNCgknU3RhcnQgdXBsb2FkJzogJ0Fsb2l0YSBsYXRhdXMnLA0KCSclZCBmaWxlcyBxdWV1ZWQnOiAnJWQgdGllZG9zdG9hIGpvbm9zc2EnLA0KCSdGaWxlOiAlcyc6ICdUaWVkb3N0bzogJXMnLA0KCSdDbG9zZSc6ICdTdWxqZScsDQoJJ1VzaW5nIHJ1bnRpbWU6ICc6ICdLw6R5dGV0w6TDpG4gYWpvbmFpa2Fpc3RhOiAnLA0KCSdGaWxlOiAlZiwgc2l6ZTogJXMsIG1heCBmaWxlIHNpemU6ICVtJzogJ1RpZWRvc3RvOiAlZiwga29rbzogJXMsIG1ha3NpbWkgdGllZG9zdG9rb2tvOiAlbScsDQoJJ1VwbG9hZCBlbGVtZW50IGFjY2VwdHMgb25seSAlZCBmaWxlKHMpIGF0IGEgdGltZS4gRXh0cmEgZmlsZXMgd2VyZSBzdHJpcHBlZC4nOiAnTGF0YXVzZWxlbWVudHRpIHNhbGxpaSBsYWRhdGEgdmFpbiAlZCB0aWVkb3N0byhhKSBrZXJyYWxsYWFuLiBZbGltw6TDpHLDpGlzZXQgdGllZG9zdG90IG9oaXRldHRpaW4uJywNCgknVXBsb2FkIFVSTCBtaWdodCBiZSB3cm9uZyBvciBkb2VzblwndCBleGlzdCc6ICdMYXRhdXMgVVJMIHNhYXR0YWEgb2xsYSB2w6TDpHJpbiB0YWkgZWkgb2xlIG9sZW1hc3NhJywNCgknRXJyb3I6IEZpbGUgdG9vIGxhcmdlOiAnOiAnVmlyaGU6IFRpZWRvc3RvIGxpaWFuIHN1dXJpOiAnLA0KCSdFcnJvcjogSW52YWxpZCBmaWxlIGV4dGVuc2lvbjogJzogJ1ZpcmhlOiBLZWxwYWFtYXRvbiB0aWVkb3N0b3DDpMOkdGU6ICcsDQoJJ0ZpbGUgZXh0ZW5zaW9uIGVycm9yLic6ICdUaWVkb3N0b3DDpMOkdGV2aXJoZS4nLA0KCSdGaWxlIHNpemUgZXJyb3IuJzogJ1RpZWRvc3Rva29rb3ZpcmhlLicsDQoJJ0ZpbGUgY291bnQgZXJyb3IuJzogJ1RpZWRvc3RvbGFza2VudGF2aXJoZS4nLA0KCSdJbml0IGVycm9yLic6ICdJbml0IHZpcmhlLicsDQoJJ0hUVFAgRXJyb3IuJzogJ0hUVFAgdmlyaGUuJywNCgknU2VjdXJpdHkgZXJyb3IuJzogJ1RpZXRvdHVydmF2aXJoZS4nLA0KCSdHZW5lcmljIGVycm9yLic6ICdZbGVpbmVuIHZpcmhlLicsDQoJJ0lPIGVycm9yLic6ICdJL08gdmlyaGUuJw0KfSk7]]></data>
	</file>
	<file>
	  <filename>/js/plupload/i18n/fr.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gRnJlbmNoDQpwbHVwbG9hZC5hZGRJMThuKHsNCiAgICAnU2VsZWN0IGZpbGVzJyA6ICdTw6lsZWN0aW9ubmV6IGxlcyBmaWNoaWVycycsDQogICAgJ0FkZCBmaWxlcyB0byB0aGUgdXBsb2FkIHF1ZXVlIGFuZCBjbGljayB0aGUgc3RhcnQgYnV0dG9uLicgOiAnQWpvdXRleiBkZXMgZmljaGllcnMgw6AgbGEgZmlsZSBldCBhcHB1eWV6IHN1ciBsZSBib3V0b24gZMOpbWFycmVyLicsDQogICAgJ0ZpbGVuYW1lJyA6ICdOb20gZGUgZmljaGllcicsDQogICAgJ1N0YXR1cycgOiAnU3RhdHVzJywNCiAgICAnU2l6ZScgOiAnVGFpbGxlJywNCiAgICAnQWRkIGZpbGVzJyA6ICdBam91dGVyIEZpY2hpZXJzJywNCiAgICAnU3RvcCBjdXJyZW50IHVwbG9hZCcgOiAnQXJyw6p0ZXIgbFwnZW52b2kgZW4gY291cnMnLA0KICAgICdTdGFydCB1cGxvYWRpbmcgcXVldWUnIDogJ0TDqW1hcnJlciBsXCdlbnZvaScsDQogICAgJ1VwbG9hZGVkICVkLyVkIGZpbGVzJzogJyVkLyVkIGZpY2hpZXJzIGVudm95w6lzJywNCiAgICAnTi9BJyA6ICdOb24gYXBwbGljYWJsZScsDQogICAgJ0RyYWcgZmlsZXMgaGVyZS4nIDogJ0TDqXBvc2VyIGxlcyBmaWNoaWVycyBpY2kuJywNCiAgICAnRmlsZSBleHRlbnNpb24gZXJyb3IuJzogJ0VycmV1ciBleHRlbnNpb24gZmljaGllcicsDQogICAgJ0ZpbGUgc2l6ZSBlcnJvci4nOiAnRXJyZXVyIHRhaWxsZSBmaWNoaWVyLicsDQogICAgJ0luaXQgZXJyb3IuJzogJ0VycmV1ciBkXCdpbml0aWFsaXNhdGlvbi4nLA0KICAgICdIVFRQIEVycm9yLic6ICdFcnJldXIgSFRUUC4nLA0KICAgICdTZWN1cml0eSBlcnJvci4nOiAnRXJyZXVyIGRlIHPDqWN1cml0w6kuJywNCiAgICAnR2VuZXJpYyBlcnJvci4nOiAnRXJyZXVyIGfDqW7DqXJpcXVlLicsDQogICAgJ0lPIGVycm9yLic6ICdFcnJldXIgRS9TLicsDQogICAgJ1N0b3AgVXBsb2FkJzogJ0FycsOqdGVyIGxlcyBlbnZvaXMuJywNCiAgICAnQWRkIEZpbGVzJzogJ0Fqb3V0ZXIgZGVzIGZpY2hpZXJzJywNCiAgICAnU3RhcnQgVXBsb2FkJzogJ0TDqW1hcnJlciBsZXMgZW52b2lzLicsDQogICAgJyVkIGZpbGVzIHF1ZXVlZCc6ICclZCBmaWNoaWVycyBlbiBhdHRlbnRlLicNCn0pOw==]]></data>
	</file>
	<file>
	  <filename>/js/plupload/i18n/hr.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gQ3JvYXRpYW4NCnBsdXBsb2FkLmFkZEkxOG4oew0KICAgICdTZWxlY3QgZmlsZXMnOiAnSXphYmVyaXRlIGRhdG90ZWtlOicsDQogICAgJ0FkZCBmaWxlcyB0byB0aGUgdXBsb2FkIHF1ZXVlIGFuZCBjbGljayB0aGUgc3RhcnQgYnV0dG9uLic6ICdEb2RhanRlIGRhdG90ZWtlIHUgbGlzdHUgaSBrbGlrbml0ZSBVcGxvYWQuJywNCiAgICAnRmlsZW5hbWUnOiAnSW1lIGRhdG90ZWtlJywNCiAgICAnU3RhdHVzJzogJ1N0YXR1cycsDQogICAgJ1NpemUnOiAnVmVsacSNaW5hJywNCiAgICAnQWRkIGZpbGVzJzogJ0RvZGFqdGUgZGF0b3Rla2UnLA0KICAgICdTdG9wIGN1cnJlbnQgdXBsb2FkJzogJ1phdXN0YXZpIHRyZW51dGFuIHVwbG9hZCcsDQogICAgJ1N0YXJ0IHVwbG9hZGluZyBxdWV1ZSc6ICdQb2tyZW5pIFVwbG9hZCcsDQogICAgJ1VwbG9hZGVkICVkLyVkIGZpbGVzJzogJ1VwbG9hZGFubyAlZC8lZCBkYXRvdGVrYScsDQogICAgJ04vQSc6ICdOL0EnLA0KICAgICdEcmFnIGZpbGVzIGhlcmUuJzogJ0RvdnVjaXRlIGRhdG90ZWtlIG92ZGplJywNCiAgICAnRmlsZSBleHRlbnNpb24gZXJyb3IuJzogJ0dyZcWha2EgZWtzdGVuemlqZSBkYXRvdGVrZS4nLA0KICAgICdGaWxlIHNpemUgZXJyb3IuJzogJ0dyZcWha2EgdmVsacSNaW5lIGRhdG90ZWtlLicsDQogICAgJ0luaXQgZXJyb3IuJzogJ0dyZcWha2EgaW5pY2lqYWxpemFjaWplLicsDQogICAgJ0hUVFAgRXJyb3IuJzogJ0hUVFAgZ3JlxaFrYS4nLA0KICAgICdTZWN1cml0eSBlcnJvci4nOiAnU2lndXJub3NuYSBncmXFoWthLicsDQogICAgJ0dlbmVyaWMgZXJyb3IuJzogJ0dlbmVyacSNa2EgZ3JlxaFrYS4nLA0KICAgICdJTyBlcnJvci4nOiAnSS9PIGdyZcWha2EuJywNCiAgICAnU3RvcCBVcGxvYWQnOiAnWmF1c3RhdmkgdXBsb2FkLicsDQogICAgJ0FkZCBGaWxlcyc6ICdEb2RhaiBkYXRvdGVrZScsDQogICAgJ1N0YXJ0IFVwbG9hZCc6ICdQb2tyZW5pIHVwbG9hZC4nLA0KICAgICclZCBmaWxlcyBxdWV1ZWQnOiAnJWQgZGF0b3Rla2EgbmEgxI1la2FuanUuJw0KfSk7]]></data>
	</file>
	<file>
	  <filename>/js/plupload/i18n/hu.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gSHVuZ2FyaWFuDQpwbHVwbG9hZC5hZGRJMThuKHsNCiAgICAnU2VsZWN0IGZpbGVzJyA6ICdGw6FqbG9rIGtpdsOhbGFzenTDoXNhJywNCiAgICAnQWRkIGZpbGVzIHRvIHRoZSB1cGxvYWQgcXVldWUgYW5kIGNsaWNrIHRoZSBzdGFydCBidXR0b24uJyA6ICdWw6FsYXN6ZCBraSBhIGbDoWpsb2thdCwgbWFqZCBrYXR0aW50cyBheiBJbmTDrXTDoXMgZ29tYnJhLicsDQogICAgJ0ZpbGVuYW1lJyA6ICdGw6FqbG7DqXYnLA0KICAgICdTdGF0dXMnIDogJ8OBbGxhcG90JywNCiAgICAnU2l6ZScgOiAnTcOpcmV0JywNCiAgICAnQWRkIGZpbGVzJyA6ICdIb3p6w6FhZMOhcycsDQogICAgJ1N0b3AgY3VycmVudCB1cGxvYWQnIDogJ0plbGVubGVnaSBmZWx0w7ZsdMOpcyBtZWdzemFrw610w6FzYScsDQogICAgJ1N0YXJ0IHVwbG9hZGluZyBxdWV1ZScgOiAnVsOhcmFrb3rDoXNpIHNvciBmZWx0w7ZsdMOpc8OpbmVrIGluZMOtdMOhc2EnLA0KICAgICdVcGxvYWRlZCAlZC8lZCBmaWxlcyc6ICdGZWx0w7ZsdMO2dHQgZsOhamxvazogJWQvJWQnLA0KICAgICdOL0EnOiAnTmVtIGVsw6lyaGV0xZEnLA0KICAgICdEcmFnIGZpbGVzIGhlcmUuJyA6ICdIw7p6ZCBpZGUgYSBmw6FqbG9rYXQuJywNCiAgICAnU3RvcCB1cGxvYWQnOiAnRmVsdMO2bHTDqXMgbWVnc3pha8OtdMOhc2EnLA0KICAgICdTdGFydCB1cGxvYWQnOiAnSW5kw610w6FzJywNCiAgICAnJWQgZmlsZXMgcXVldWVkJzogJyVkIGbDoWpsIHNvcmJhw6FsbMOtdHZhJywNCiAgICAnRmlsZTogJXMnOiAnRsOhamw6ICVzJywNCiAgICAnQ2xvc2UnOiAnQmV6w6Fyw6FzJywNCiAgICAnVXNpbmcgcnVudGltZTogJzogJ0hhc3puw6FsdCBydW50aW1lOiAnLA0KICAgICdGaWxlOiAlZiwgc2l6ZTogJXMsIG1heCBmaWxlIHNpemU6ICVtJzogJ0bDoWpsOiAlZiwgbcOpcmV0OiAlcywgbWF4aW3DoWxpcyBmw6FqbG3DqXJldDogJW0nLA0KICAgICdVcGxvYWQgZWxlbWVudCBhY2NlcHRzIG9ubHkgJWQgZmlsZShzKSBhdCBhIHRpbWUuIEV4dHJhIGZpbGVzIHdlcmUgc3RyaXBwZWQuJzogJ0EgZmVsdMO2bHTDqXMgZWd5c3plcnJlIGNzYWsgJWQgZsOhamx0IGZvZ2FkIGVsLCBhIHTDtmJiaSBmw6FqbCBuZW0gbGVzeiBmZWx0w7ZsdHZlLicsDQogICAgJ1VwbG9hZCBVUkwgbWlnaHQgYmUgd3Jvbmcgb3IgZG9lc25cJ3QgZXhpc3QnOiAnQSBtZWdhZG90dCBVUkwgaGliw6FzIHZhZ3kgbmVtIGzDqXRlemlrJywNCiAgICAnRXJyb3I6IEZpbGUgdG9vIGxhcmdlOiAnOiAnSGliYTogQSBmw6FqbCB0w7psIG5hZ3k6ICcsDQogICAgJ0Vycm9yOiBJbnZhbGlkIGZpbGUgZXh0ZW5zaW9uOiAnOiAnSGliYTogw4lydsOpbnl0ZWxlbiBmw6FqbGtpdGVyamVzenTDqXM6ICcsDQogICAgJ0ZpbGUgZXh0ZW5zaW9uIGVycm9yLic6ICdIaWLDoXMgZsOhamxraXRlcmplc3p0w6lzLicsDQogICAgJ0ZpbGUgc2l6ZSBlcnJvci4nOiAnSGliw6FzIGbDoWpsbcOpcmV0LicsDQogICAgJ0ZpbGUgY291bnQgZXJyb3IuJzogJ0EgZsOhamxvayBzesOhbcOhdmFsIGthcGNzb2xhdG9zIGhpYmEuJywNCiAgICAnSW5pdCBlcnJvci4nOiAnSW5pdCBoaWJhLicsDQogICAgJ0hUVFAgRXJyb3IuJzogJ0hUVFAgaGliYS4nLA0KICAgICdTZWN1cml0eSBlcnJvci4nOiAnQml6dG9uc8OhZ2kgaGliYS4nLA0KICAgICdHZW5lcmljIGVycm9yLic6ICfDgWx0YWzDoW5vcyBoaWJhLicsDQogICAgJ0lPIGVycm9yLic6ICdJL08gaGliYS4nDQp9KTsNCg==]]></data>
	</file>
	<file>
	  <filename>/js/plupload/i18n/it.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gSXRhbGlhbg0KcGx1cGxvYWQuYWRkSTE4bih7DQogICAgJ1NlbGVjdCBmaWxlcycgOiAnU2VsZXppb25hIGkgZmlsZXMnLA0KICAgICdBZGQgZmlsZXMgdG8gdGhlIHVwbG9hZCBxdWV1ZSBhbmQgY2xpY2sgdGhlIHN0YXJ0IGJ1dHRvbi4nIDogJ0FnZ2l1bmdpIGkgZmlsZSBhbGxhIGNvZGEgZGkgY2FyaWNhbWVudG8gZSBjbGljY2EgaWwgcHVsc2FudGUgZGkgYXZ2aW8uJywNCiAgICAnRmlsZW5hbWUnIDogJ05vbWUgZmlsZScsDQogICAgJ1N0YXR1cycgOiAnU3RhdG8nLA0KICAgICdTaXplJyA6ICdEaW1lbnNpb25lJywNCiAgICAnQWRkIEZpbGVzJyA6ICdBZ2dpdW5naSBmaWxlJywNCiAgICAnU3RvcCBjdXJyZW50IHVwbG9hZCcgOiAnSW50ZXJyb21waSBpbCBjYXJpY2FtZW50bycsDQogICAgJ1N0YXJ0IHVwbG9hZGluZyBxdWV1ZScgOiAnQXZ2aWEgaWwgY2FyaWNhbWVudG8nLA0KICAgICdVcGxvYWRlZCAlZC8lZCBmaWxlcyc6ICdDYXJpY2F0aSAlZC8lZCBmaWxlJywNCiAgICAnTi9BJyA6ICdOL0QnLA0KICAgICdEcmFnIGZpbGVzIGhlcmUuJyA6ICdUcmFzY2luYSBpIGZpbGUgcXVpLicsDQogICAgJ0ZpbGUgZXh0ZW5zaW9uIGVycm9yLic6ICdFcnJvcmUgZXN0ZW5zaW9uZSBmaWxlLicsDQogICAgJ0ZpbGUgc2l6ZSBlcnJvci4nOiAnRXJyb3JlIGRpbWVuc2lvbmUgZmlsZS4nLA0KICAgICdJbml0IGVycm9yLic6ICdFcnJvcmUgaW5pemlhbGl6emF6aW9uZS4nLA0KICAgICdIVFRQIEVycm9yLic6ICdFcnJvcmUgSFRUUC4nLA0KICAgICdTZWN1cml0eSBlcnJvci4nOiAnRXJyb3JlIHNpY3VyZXp6YS4nLA0KICAgICdHZW5lcmljIGVycm9yLic6ICdFcnJvcmUgZ2VuZXJpY28uJywNCiAgICAnSU8gZXJyb3IuJzogJ0Vycm9yZSBJTy4nLA0KCSdTdG9wIFVwbG9hZCc6ICdGZXJtYSBVcGxvYWQnLA0KCSdTdGFydCBVcGxvYWQnOiAnSW5pemlhIFVwbG9hZCcsDQoJJyVkIGZpbGVzIHF1ZXVlZCc6ICclZCBmaWxlIGluIGxpc3RhJw0KfSk7]]></data>
	</file>
	<file>
	  <filename>/js/plupload/i18n/ja.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gSmFwYW5lc2UKcGx1cGxvYWQuYWRkSTE4bih7CiAgICdTZWxlY3QgZmlsZXMnIDogJ+ODleOCoeOCpOODq+mBuOaKnicsCiAgICdBZGQgZmlsZXMgdG8gdGhlIHVwbG9hZCBxdWV1ZSBhbmQgY2xpY2sgdGhlIHN0YXJ0IGJ1dHRvbi4nIDogJ+ODleOCoeOCpOODq+OCkuOCouODg+ODl+ODreODvOODieOCreODpeODvOOBq+i/veWKoOOBl+OBpuOCueOCv+ODvOODiOODnOOCv+ODs+OCkuOCr+ODquODg+OCr+OBl+OBpuOBj+OBoOOBleOBhCcsCiAgICdGaWxlbmFtZScgOiAn44OV44Kh44Kk44Or5ZCNJywKICAgJ1N0YXR1cycgOiAn44K544OG44O844K/44K5JywKICAgJ1NpemUnIDogJ+OCteOCpOOCuicsCiAgICdBZGQgRmlsZXMnIDogJ+ODleOCoeOCpOODq+OCkui/veWKoCcsCiAgICdTdG9wIFVwbG9hZCcgOiAn44Ki44OD44OX44Ot44O844OJ5YGc5q2iJywKICAgJ1N0YXJ0IFVwbG9hZCcgOiAn44Ki44OD44OX44Ot44O844OJJywKICAgJ0FkZCBmaWxlcycgOiAn44OV44Kh44Kk44Or44KS6L+95YqgJywKICAgJ0FkZCBmaWxlcy4nIDogJ+ODleOCoeOCpOODq+OCkui/veWKoCcsCiAgICdTdG9wIGN1cnJlbnQgdXBsb2FkJyA6ICfnj77lnKjjga7jgqLjg4Pjg5fjg63jg7zjg4njgpLlgZzmraInLAogICAnU3RhcnQgdXBsb2FkaW5nIHF1ZXVlJyA6ICfjgqLjg4Pjg5fjg63jg7zjg4knLAogICAnU3RvcCB1cGxvYWQnIDogJ+OCouODg+ODl+ODreODvOODieWBnOatoicsCiAgICdTdGFydCB1cGxvYWQnIDogJ+OCouODg+ODl+ODreODvOODiScsCiAgICdVcGxvYWRlZCAlZC8lZCBmaWxlcyc6ICfjgqLjg4Pjg5fjg63jg7zjg4nkuK0gJWQvJWQg44OV44Kh44Kk44OrJywKICAgJ04vQScgOiAnTi9BJywKICAgJ0RyYWcgZmlsZXMgaGVyZS4nIDogJ+OBk+OBk+OBq+ODleOCoeOCpOODq+OCkuODieODqeODg+OCsCcsCiAgICdGaWxlIGV4dGVuc2lvbiBlcnJvci4nOiAn44OV44Kh44Kk44Or5ouh5by15a2Q44Ko44Op44O8JywKICAgJ0ZpbGUgc2l6ZSBlcnJvci4nOiAn44OV44Kh44Kk44Or44K144Kk44K644Ko44Op44O8JywKICAgJ0ZpbGUgY291bnQgZXJyb3IuJzogJ+ODleOCoeOCpOODq+aVsOOCqOODqeODvCcsCiAgICdJbml0IGVycm9yLic6ICfjgqTjg4vjgrfjg6Pjg6njgqTjgrrjgqjjg6njg7wnLAogICAnSFRUUCBFcnJvci4nOiAnSFRUUCDjgqjjg6njg7wnLAogICAnU2VjdXJpdHkgZXJyb3IuJzogJ+OCu+OCreODpeODquODhuOCo+OCqOODqeODvCcsCiAgICdHZW5lcmljIGVycm9yLic6ICfjgqjjg6njg7wnLAogICAnSU8gZXJyb3IuJzogJ0lPIOOCqOODqeODvCcsCiAgICdGaWxlOiAlcyc6ICfjg5XjgqHjgqTjg6s6ICVzJywKICAgJ0Nsb3NlJzogJ+mWieOBmOOCiycsCiAgICclZCBmaWxlcyBxdWV1ZWQnOiAnJWQg44OV44Kh44Kk44Or44GM6L+95Yqg44GV44KM44G+44GX44GfJywKICAgJ1VzaW5nIHJ1bnRpbWU6ICc6ICfjg6Ljg7zjg4k6ICcsCiAgICdGaWxlOiAlZiwgc2l6ZTogJXMsIG1heCBmaWxlIHNpemU6ICVtJzogJ+ODleOCoeOCpOODqzogJWYsIOOCteOCpOOCujogJXMsIOacgOWkp+ODleOCoeOCpOODq+OCteOCpOOCujogJW0nLAogICAnVXBsb2FkIGVsZW1lbnQgYWNjZXB0cyBvbmx5ICVkIGZpbGUocykgYXQgYSB0aW1lLiBFeHRyYSBmaWxlcyB3ZXJlIHN0cmlwcGVkLic6ICfjgqLjg4Pjg5fjg63jg7zjg4nlj6/og73jgarjg5XjgqHjgqTjg6vmlbDjga8gJWQg44Gn44GZ44CC5L2Z5YiG44Gq44OV44Kh44Kk44Or44Gv5YmK6Zmk44GV44KM44G+44GX44GfJywKICAgJ1VwbG9hZCBVUkwgbWlnaHQgYmUgd3Jvbmcgb3IgZG9lc25cJ3QgZXhpc3QnOiAn44Ki44OD44OX44Ot44O844OJ5YWI44GuIFVSTCDjgYzlrZjlnKjjgZfjgb7jgZvjgpMnLAogICAnRXJyb3I6IEZpbGUgdG9vIGxhcmdlOiAnOiAn44Ko44Op44O8OiDjgrXjgqTjgrrjgYzlpKfjgY3jgZnjgY7jgb7jgZk6ICcsCiAgICdFcnJvcjogSW52YWxpZCBmaWxlIGV4dGVuc2lvbjogJzogJ+OCqOODqeODvDog5ouh5by15a2Q44GM6Kix5Y+v44GV44KM44Gm44GE44G+44Gb44KTOiAnCn0pOwo=]]></data>
	</file>
	<file>
	  <filename>/js/plupload/i18n/lv.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gLmx2IGZpbGUgbGlrZSBsYW5ndWFnZSBwYWNrDQpwbHVwbG9hZC5hZGRJMThuKHsNCiAgICAnU2VsZWN0IGZpbGVzJyA6ICdJenbEk2xpZXRpZXMgZmFpbHVzJywNCiAgICAnQWRkIGZpbGVzIHRvIHRoZSB1cGxvYWQgcXVldWUgYW5kIGNsaWNrIHRoZSBzdGFydCBidXR0b24uJyA6ICdQaWV2ZWlub2ppZXQgZmFpbHVzIHJpbmRhaSB1biBrbGlrxaHEt2luaWV0IHV6ICJTxIFrdCBhdWfFoXVwaWVsxIFkaSIgcG9nYXMuJywNCiAgICAnRmlsZW5hbWUnIDogJ0ZhaWxhIG5vc2F1a3VtcycsDQogICAgJ1N0YXR1cycgOiAnU3RhdHVzcycsDQogICAgJ1NpemUnIDogJ0l6bcSTcnMnLA0KICAgICdBZGQgZmlsZXMnIDogJ1BpZXZpZW5vdCBmYWlsdXMnLA0KICAgICdTdG9wIGN1cnJlbnQgdXBsb2FkJyA6ICdBcHR1csSTdCBwYcWhcmVpesSTam8gYXVnxaF1cGllbMSBZGknLA0KICAgICdTdGFydCB1cGxvYWRpbmcgcXVldWUnIDogJ1PEgWt0IGF1Z8WhdXBpZWzEgWRpJywNCiAgICAnRHJhZyBmaWxlcyBoZXJlLicgOiAnSWV2ZWxjaWV0IGZhaWx1cyDFoWVpdCcsDQogICAgJ1N0YXJ0IHVwbG9hZCcgOiAnU8SBa3QgYXVnxaF1cGllbMSBZGknLA0KICAgICdVcGxvYWRlZCAlZC8lZCBmaWxlcyc6ICdBdWfFoXVwaWVsxIFkxJN0aSAlZC8lZCBmYWlsaScsDQogICAgJ1N0b3AgdXBsb2FkJzogJ1DEgXJ0cmF1a3QgYXVnxaF1cGllbMSBZGknLA0KICAgICdTdGFydCB1cGxvYWQnOiAnU8SBa3QgYXVnxaF1cGllbMSBZGknLA0KICAgICclZCBmaWxlcyBxdWV1ZWQnOiAnJWQgZmFpbGkgcGlldmllbm90aSByaW5kYWknLA0KICAgICdGaWxlOiAlcyc6ICdGYWlsczogJXMnLA0KICAgICdDbG9zZSc6ICdBaXp2xJNydCcsDQogICAgJ1VzaW5nIHJ1bnRpbWU6ICc6ICdMaWV0byBzYXNrYXJuaTogJywNCiAgICAnRmlsZTogJWYsIHNpemU6ICVzLCBtYXggZmlsZSBzaXplOiAlbSc6ICdGYWlsczogJWYsIGl6bcSTcnM6ICVzLCBtYWtzaW3EgWxhaXMgZmFpbGEgaXptxJNyczogJW0nLA0KICAgICdVcGxvYWQgZWxlbWVudCBhY2NlcHRzIG9ubHkgJWQgZmlsZShzKSBhdCBhIHRpbWUuIEV4dHJhIGZpbGVzIHdlcmUgc3RyaXBwZWQuJzogJ0llc3DEk2phbXMgaWVsxIFkxJN0IHRpa2FpICVkIGZhaWx1cyB2aWVuxIEgcmVpesSTLiBBdGxpa3XFoWllIGZhaWxpIG5ldGlrYSBwaWV2aWVub3RpJywNCiAgICAnVXBsb2FkIFVSTCBtaWdodCBiZSB3cm9uZyBvciBkb2VzblwndCBleGlzdCc6ICdBdWfFoXVwaWVsxIFkZXMgVVJMIHZhcsSTdHUgYsWrdCBuZXBhcmVpenMgdmFpIG5lZWtzaXN0xJMnLA0KICAgICdFcnJvcjogRmlsZSB0b28gbGFyZ2U6ICc6ICdLxLzFq2RhOiBGYWlscyBwxIFyxIFrIGxpZWxzOiAnLA0KICAgICdFcnJvcjogSW52YWxpZCBmaWxlIGV4dGVuc2lvbjogJzogJ0vEvMWrZGE6IE5la29yZWt0cyBmYWlsYSBwYXBsYcWhaW7EgWp1bXM6JywNCiAgICAnRmlsZSBleHRlbnNpb24gZXJyb3IuJzogJ0ZhaWxhIHBhcGxhxaFpbsSBanVtYSBrxLzFq2RhLicsDQogICAgJ0ZpbGUgc2l6ZSBlcnJvci4nOiAnRmFpbGEgaXptxJNyYSBrxLzFq2RhLicsDQogICAgJ0ZpbGUgY291bnQgZXJyb3IuJzogJ0ZhaWx1IHNrYWl0YSBrxLzFq2RhJywNCiAgICAnSW5pdCBlcnJvci4nOiAnSW5pY2lhbGl6xIFjaWphcyBrxLzFq2RhLicsDQogICAgJ0hUVFAgRXJyb3IuJzogJ0hUVFAga8S8xatkYS4nLA0KICAgICdTZWN1cml0eSBlcnJvci4nOiAnRHJvxaHEq2JhcyBrxLzFq2RhLicsDQogICAgJ0dlbmVyaWMgZXJyb3IuJzogJ1Zpc3DEgXLEk2phIHJha3N0dXJhIGvEvMWrZGEuJywNCiAgICAnSU8gZXJyb3IuJzogJ0lldmFkZXMvSXp2YWRlcyBrxLzFq2RhLicNCn0pOw==]]></data>
	</file>
	<file>
	  <filename>/js/plupload/i18n/nl.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gRHV0Y2gNCnBsdXBsb2FkLmFkZEkxOG4oew0KICAgJ1NlbGVjdCBmaWxlcycgOiAnU2VsZWN0ZWVyIGJlc3RhbmQoZW4pOicsDQogICAnQWRkIGZpbGVzIHRvIHRoZSB1cGxvYWQgcXVldWUgYW5kIGNsaWNrIHRoZSBzdGFydCBidXR0b24uJyA6ICdWb2VnIGJlc3RhbmRlbiB0b2UgYWFuIGRlIHdhY2h0cmlqIGVuIGRydWsgb3AgXCdTdGFydFwnLicsDQogICAnRmlsZW5hbWUnIDogJ0Jlc3RhbmRzbmFhbScsDQogICAnU3RhdHVzJyA6ICdTdGF0dXMnLA0KICAgJ1NpemUnIDogJ0dyb290dGUnLA0KICAgJ0FkZCBmaWxlcycgOiAnVm9lZyBiZXN0YW5kZW4gdG9lJywNCiAgICdTdG9wIGN1cnJlbnQgdXBsb2FkJyA6ICdTdG9wIHVwbG9hZCcsDQogICAnU3RhcnQgdXBsb2FkaW5nIHF1ZXVlJyA6ICdTdGFydCB1cGxvYWQnLA0KICAgJ1VwbG9hZGVkICVkLyVkIGZpbGVzJzogJyVkLyVkIGJlc3RhbmRlbiBnZS11cGxvYWQnLA0KICAgJ04vQScgOiAnTmlldCBiZXNjaGlrYmFhcicsDQogICAnRHJhZyBmaWxlcyBoZXJlLicgOiAnU2xlZXAgYmVzdGFuZGVuIGhpZXJoZWVuLicsDQogICAnRmlsZSBleHRlbnNpb24gZXJyb3IuJzogJ09uZ2VsZGlnIGJlc3RhbmRzdHlwZS4nLA0KICAgJ0ZpbGUgc2l6ZSBlcnJvci4nOiAnQmVzdGFuZHNncm9vdHRlIEVycm9yLicsDQogICAnSW5pdCBlcnJvci4nOiAnSW5pdGlhbGlzYXRpZSBlcnJvci4nLA0KICAgJ0hUVFAgRXJyb3IuJzogJ0hUVFAgRXJyb3IuJywNCiAgICdTZWN1cml0eSBlcnJvci4nOiAnQmV2ZWlsaWdpbmcgZXJyb3IuJywNCiAgICdHZW5lcmljIGVycm9yLic6ICdPbmJla2VuZGUgZXJyb3IuJywNCiAgICdJTyBlcnJvci4nOiAnSU8gZXJyb3IuJw0KfSk7]]></data>
	</file>
	<file>
	  <filename>/js/plupload/i18n/pt-br.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gQnJhemlsaWFuIFBvcnR1Z3Vlc2UKcGx1cGxvYWQuYWRkSTE4bih7CiAgICdTZWxlY3QgZmlsZXMnIDogJ0VzY29saGEgb3MgYXJxdWl2b3MnLAogICAnQWRkIGZpbGVzIHRvIHRoZSB1cGxvYWQgcXVldWUgYW5kIGNsaWNrIHRoZSBzdGFydCBidXR0b24uJyA6ICdBZGljaW9uZSBvcyBhcnF1aXZvcyBhYmFpeG8gZSBjbGlxdWUgbm8gYm90w6NvICJJbmljaWFyIG8gZW52aW8iLicsCiAgICdGaWxlbmFtZScgOiAnTm9tZSBkbyBhcnF1aXZvJywKICAgJ1N0YXR1cycgOiAnU3RhdHVzJywKICAgJ1NpemUnIDogJ1RhbWFuaG8nLAogICAnQWRkIEZpbGVzJyA6ICdBZGljaW9uYXIgYXJxdWl2byhzKScsCiAgICdTdG9wIFVwbG9hZCcgOiAnUGFyYXIgbyBlbnZpbycsCiAgICdTdGFydCBVcGxvYWQnIDogJ0luaWNpYXIgbyBlbnZpbycsCiAgICdBZGQgZmlsZXMnIDogJ0FkaWNpb25hciBhcnF1aXZvKHMpJywKICAgJ0FkZCBmaWxlcy4nIDogJ0FkaWNpb25hciBhcnF1aXZvKHMpJywKICAgJ1N0b3AgdXBsb2FkJyA6ICdQYXJhciBvIGVudmlvJywKICAgJ1N0YXJ0IHVwbG9hZCcgOiAnSW5pY2lhciBvIGVudmlvJywKICAgJ1VwbG9hZGVkICVkLyVkIGZpbGVzJzogJ0VudmlhZG8ocykgJWQvJWQgYXJxdWl2byhzKScsCiAgICdOL0EnIDogJ04vRCcsCiAgICdEcmFnIGZpbGVzIGhlcmUuJyA6ICdBcnJhc3RlIG9zIGFycXVpdm9zIHByYSBjw6EnLAogICAnRmlsZSBleHRlbnNpb24gZXJyb3IuJzogJ1RpcG8gZGUgYXJxdWl2byBuw6NvIHBlcm1pdGlkby4nLAogICAnRmlsZSBzaXplIGVycm9yLic6ICdUYW1hbmhvIGRlIGFycXVpdm8gbsOjbyBwZXJtaXRpZG8uJywKICAgJ0ZpbGUgY291bnQgZXJyb3IuJzogJ0Vycm8gbmEgY29udGFnZW0gZG9zIGFycXVpdm9zJywKICAgJ0luaXQgZXJyb3IuJzogJ0Vycm8gaW5pY2lhbGl6YW5kby4nLAogICAnSFRUUCBFcnJvci4nOiAnRXJybyBIVFRQLicsCiAgICdTZWN1cml0eSBlcnJvci4nOiAnRXJybyBkZSBzZWd1cmFuw6dhLicsCiAgICdHZW5lcmljIGVycm9yLic6ICdFcnJvIGdlbsOpcmljby4nLAogICAnSU8gZXJyb3IuJzogJ0Vycm8gZGUgRS9TLicsCiAgICdGaWxlOiAlcyc6ICdBcnF1aXZvOiAlcycsCiAgICdDbG9zZSc6ICdGZWNoYXInLAogICAnJWQgZmlsZXMgcXVldWVkJzogJyVkIGFycXVpdm8ocyknLAogICAnVXNpbmcgcnVudGltZTogJzogJ1VzYW5kbzogJywKICAgJ0ZpbGU6ICVmLCBzaXplOiAlcywgbWF4IGZpbGUgc2l6ZTogJW0nOiAnQXJxdWl2bzogJWYsIHRhbWFuaG86ICVzLCBtw6F4aW1vOiAlbScsCiAgICdVcGxvYWQgZWxlbWVudCBhY2NlcHRzIG9ubHkgJWQgZmlsZShzKSBhdCBhIHRpbWUuIEV4dHJhIGZpbGVzIHdlcmUgc3RyaXBwZWQuJzogJ1PDsyBzw6NvIGFjZWl0b3MgJWQgYXJxdWl2b3MgcG9yIHZlei4gTyBxdWUgcGFzc291IGRpc3NvIGZvaSBkZXNjYXJ0YWRvLicsCiAgICdVcGxvYWQgVVJMIG1pZ2h0IGJlIHdyb25nIG9yIGRvZXNuXCd0IGV4aXN0JzogJ1VSTCBkZSBlbnZpbyBlc3TDoSBlcnJhZGEgb3UgbsOjbyBleGlzdGUnLAogICAnRXJyb3I6IEZpbGUgdG9vIGxhcmdlOiAnOiAnRXJybzogQXJxdWl2byBtdWl0byBncmFuZGU6ICcsCiAgICdFcnJvcjogSW52YWxpZCBmaWxlIGV4dGVuc2lvbjogJzogJ0Vycm86IFRpcG8gZGUgYXJxdWl2byBuw6NvIHBlcm1pdGlkbzogJwp9KTsK]]></data>
	</file>
	<file>
	  <filename>/js/plupload/i18n/ro.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gUm9tYW5pYW4NCnBsdXBsb2FkLmFkZEkxOG4oew0KICAgICdTZWxlY3QgZmlsZXMnIDogJ1NlbGVjdGFyZSBmacWfaWVyZScsDQogICAgJ0FkZCBmaWxlcyB0byB0aGUgdXBsb2FkIHF1ZXVlIGFuZCBjbGljayB0aGUgc3RhcnQgYnV0dG9uLicgOiAnQWRhdWfEgyBmacWfaWVyZSDDrm4gbGlzdGEgYXBvaSBhcGFzxIMgYnV0b251bCBcJ8OObmNlcGUgw65uY8SDcmNhcmVcJy4nLA0KICAgICdGaWxlbmFtZScgOiAnTnVtZSBmacWfaWVyJywNCiAgICAnU3RhdHVzJyA6ICdTdGFyZScsDQogICAgJ1NpemUnIDogJ03Eg3JpbWUnLA0KICAgICdBZGQgZmlsZXMnIDogJ0FkxIN1Z2FyZSBmacWfaWVyZScsDQogICAgJ1N0b3AgY3VycmVudCB1cGxvYWQnIDogJ8OObnRyZXJ1cGUgw65uY8SDcmNhcmVhIGN1cmVudMSDJywNCiAgICAnU3RhcnQgdXBsb2FkaW5nIHF1ZXVlJyA6ICfDjm5jZXBlIGluY8SDcmNhcmVhJywNCiAgICAnVXBsb2FkZWQgJWQvJWQgZmlsZXMnOiAnRmnFn2llcmUgw65uY8SDcmNhdGUgJWQvJWQnLA0KICAgICdOL0EnIDogJ04vQScsDQogICAgJ0RyYWcgZmlsZXMgaGVyZS4nIDogJ1RyYWdlIGFpY2kgZmnFn2llcmVsZScsDQogICAgJ0ZpbGUgZXh0ZW5zaW9uIGVycm9yLic6ICdFeHRlbnNpZSBmacWfaWVyIGVyb25hdMSDJywNCiAgICAnRmlsZSBzaXplIGVycm9yLic6ICdFcm9hcmUgZGltZW5zaXVuZSBmacWfaWVyJywNCiAgICAnSW5pdCBlcnJvci4nOiAnRXJvYXJlIGluacWjaWFsaXphcmUnLA0KICAgICdIVFRQIEVycm9yLic6ICdFcm9hcmUgSFRUUCcsDQogICAgJ1NlY3VyaXR5IGVycm9yLic6ICdFcm9hcmUgc2VjdXJpdGF0ZScsDQogICAgJ0dlbmVyaWMgZXJyb3IuJzogJ0Vyb2FyZSBnZW5lcmljxIMnLA0KICAgICdJTyBlcnJvci4nOiAnRXJvYXJlIEludHJhcmUvSWXFn2lyZScsDQogICAgJ1N0b3AgVXBsb2FkJzogJ09wcmlyZSDDrm5jxINyY2FyZScsDQogICAgJ1N0YXJ0IHVwbG9hZCc6ICfDjm5jZXBlIMOubmPEg3JjYXJlJywNCiAgICAnJWQgZmlsZXMgcXVldWVkJzogJyVkIGZpxZ9pZXJlIGxpc3RhdGUnDQp9KTs=]]></data>
	</file>
	<file>
	  <filename>/js/plupload/i18n/ru.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gUnVzc2lhbg0KcGx1cGxvYWQuYWRkSTE4bih7DQogICAgJ1NlbGVjdCBmaWxlcycgOiAn0JLRi9Cx0LXRgNC40YLQtSDRhNCw0LnQu9GLJywNCiAgICAnQWRkIGZpbGVzIHRvIHRoZSB1cGxvYWQgcXVldWUgYW5kIGNsaWNrIHRoZSBzdGFydCBidXR0b24uJyA6ICfQlNC+0LHQsNCy0YzRgtC1INGE0LDQudC70Ysg0LIg0L7Rh9C10YDQtdC00Ywg0Lgg0L3QsNC20LzQuNGC0LUg0LrQvdC+0L/QutGDICLQl9Cw0LPRgNGD0LfQuNGC0Ywg0YTQsNC50LvRiyIuJywNCiAgICAnRmlsZW5hbWUnIDogJ9CY0LzRjyDRhNCw0LnQu9CwJywNCiAgICAnU3RhdHVzJyA6ICfQodGC0LDRgtGD0YEnLA0KICAgICdTaXplJyA6ICfQoNCw0LfQvNC10YAnLA0KICAgICdBZGQgZmlsZXMnIDogJ9CU0L7QsdCw0LLQuNGC0Ywg0YTQsNC50LvRiycsDQogICAgJ1N0b3AgY3VycmVudCB1cGxvYWQnIDogJ9Ce0YHRgtCw0L3QvtCy0LjRgtGMINC30LDQs9GA0YPQt9C60YMnLA0KICAgICdTdGFydCB1cGxvYWRpbmcgcXVldWUnIDogJ9CX0LDQs9GA0YPQt9C40YLRjCDRhNCw0LnQu9GLJywNCiAgICAnVXBsb2FkZWQgJWQvJWQgZmlsZXMnOiAn0JfQsNCz0YDRg9C20LXQvdC+ICVkINC40LcgJWQg0YTQsNC50LvQvtCyJywNCiAgICAnTi9BJyA6ICdOL0QnLA0KICAgICdEcmFnIGZpbGVzIGhlcmUuJyA6ICfQn9C10YDQtdGC0LDRidC40YLQtSDRhNCw0LnQu9GLINGB0Y7QtNCwLicsDQogICAgJ0ZpbGUgZXh0ZW5zaW9uIGVycm9yLic6ICfQndC10L/RgNCw0LLQuNC70YzQvdC+0LUg0YDQsNGB0YjQuNGA0LXQvdC40LUg0YTQsNC50LvQsC4nLA0KICAgICdGaWxlIHNpemUgZXJyb3IuJzogJ9Cd0LXQv9GA0LDQstC40LvRjNC90YvQuSDRgNCw0LfQvNC10YAg0YTQsNC50LvQsC4nLA0KICAgICdJbml0IGVycm9yLic6ICfQntGI0LjQsdC60LAg0LjQvdC40YbQuNCw0LvQuNC30LDRhtC40LguJywNCiAgICAnSFRUUCBFcnJvci4nOiAn0J7RiNC40LHQutCwIEhUVFAuJywNCiAgICAnU2VjdXJpdHkgZXJyb3IuJzogJ9Ce0YjQuNCx0LrQsCDQsdC10LfQvtC/0LDRgdC90L7RgdGC0LguJywNCiAgICAnR2VuZXJpYyBlcnJvci4nOiAn0J7QsdGJ0LDRjyDQvtGI0LjQsdC60LAuJywNCiAgICAnSU8gZXJyb3IuJzogJ9Ce0YjQuNCx0LrQsCDQstCy0L7QtNCwLdCy0YvQstC+0LTQsC4nDQp9KTs=]]></data>
	</file>
	<file>
	  <filename>/js/plupload/i18n/sr.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[77u/Ly8gU2VyYmlhbg0KcGx1cGxvYWQuYWRkSTE4bih7DQogICAgJ1NlbGVjdCBmaWxlcycgOiAnSXphYmVyaXRlIGZhamxvdmUnLA0KICAgICdBZGQgZmlsZXMgdG8gdGhlIHVwbG9hZCBxdWV1ZSBhbmQgY2xpY2sgdGhlIHN0YXJ0IGJ1dHRvbi4nIDogJ0RvZGFqdGUgZmFqbG92ZSB1IGxpc3R1IGkga2xpa25pdGUgbmEgZHVnbWUgU3RhcnQuJywNCiAgICAnRmlsZW5hbWUnIDogJ05heml2IGZhamxhJywNCiAgICAnU3RhdHVzJyA6ICdTdGF0dXMnLA0KICAgICdTaXplJyA6ICdWZWxpxI1pbmEnLA0KICAgICdBZGQgRmlsZXMnIDogJ0RvZGFqIGZhamxvdmUnLA0KICAgICdTdG9wIGN1cnJlbnQgdXBsb2FkJyA6ICdaYXVzdGF2aSB1cGxvYWQnLA0KICAgICdTdGFydCB1cGxvYWRpbmcgcXVldWUnIDogJ1BvxI1uaSB1cGxvYWQnLA0KICAgICdEcmFnIGZpbGVzIGhlcmUuJyA6ICdQcmV2dWNpdGUgZmFqbG92ZSBvdmRlLicsDQogICAgJ1N0YXJ0IFVwbG9hZCc6ICdQb8SNbmkgdXBsb2FkJywNCiAgICAnVXBsb2FkZWQgJWQvJWQgZmlsZXMnOiAnU25pbWxqZW5vICVkLyVkIGZhamxvdmEnDQp9KTs=]]></data>
	</file>
	<file>
	  <filename>/js/plupload/i18n/sv.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[77u/Ly8gLnBvIGZpbGUgbGlrZSBsYW5ndWFnZSBwYWNrDQpwbHVwbG9hZC5hZGRJMThuKHsNCgknU2VsZWN0IGZpbGVzJyA6ICdWw6RsaiBmaWxlcicsDQoJJ0FkZCBmaWxlcyB0byB0aGUgdXBsb2FkIHF1ZXVlIGFuZCBjbGljayB0aGUgc3RhcnQgYnV0dG9uLicgOiAnTMOkZ2cgdGlsbCBmaWxlciB0aWxsIGvDtm4gb2NoIHRyeWNrIHDDpSBzdGFydC4nLA0KCSdGaWxlbmFtZScgOiAnRmlsbmFtbicsDQoJJ1N0YXR1cycgOiAnU3RhdHVzJywNCgknU2l6ZScgOiAnU3RvcmxlaycsDQoJJ0FkZCBmaWxlcycgOiAnTMOkZ2cgdGlsbCBmaWxlcicsDQoJJ1N0b3AgY3VycmVudCB1cGxvYWQnIDogJ1N0b3BwYSB1cHBsYWRkbmluZ2VuJywNCgknU3RhcnQgdXBsb2FkaW5nIHF1ZXVlJyA6ICdTdGFydGEgdXBwbGFkZG5pbmdlbicsDQoJJ0RyYWcgZmlsZXMgaGVyZS4nIDogJ0RyYSBmaWxlciBoaXQnDQp9KTs=]]></data>
	</file>
	<file>
	  <filename>/js/plupload/jquery.plupload.queue/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/plupload/jquery.plupload.queue/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/plupload/jquery.plupload.queue/css/jquery.plupload.queue.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogDQogICBQbHVwbG9hZA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLw0KDQoucGx1cGxvYWRfYnV0dG9uIHsNCglkaXNwbGF5OiAtbW96LWlubGluZS1ib3g7IC8qIEZGIDwgMyovDQoJZGlzcGxheTogaW5saW5lLWJsb2NrOw0KCWZvbnQ6IG5vcm1hbCAxMnB4IHNhbnMtc2VyaWY7DQoJdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KICAgIGNvbG9yOiAjNDI0NTRhOw0KICAgIGJvcmRlcjogMXB4IHNvbGlkICNiYWJhYmE7DQogICAgcGFkZGluZzogMnB4IDhweCAzcHggMjBweDsNCgltYXJnaW4tcmlnaHQ6IDRweDsNCiAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzIHVybCgnLi4vaW1nL2J1dHRvbnMucG5nJykgbm8tcmVwZWF0IDAgY2VudGVyOw0KCW91dGxpbmU6IDA7DQoNCiAgICAvKiBPcHRpb25hbCByb3VuZGVkIGNvcm5lcnMgZm9yIGJyb3dzZXJzIHRoYXQgc3VwcG9ydCBpdCAqLw0KICAgIC1tb3otYm9yZGVyLXJhZGl1czogM3B4Ow0KICAgIC1raHRtbC1ib3JkZXItcmFkaXVzOiAzcHg7DQogICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAzcHg7DQogICAgYm9yZGVyLXJhZGl1czogM3B4Ow0KfQ0KDQoucGx1cGxvYWRfYnV0dG9uOmhvdmVyIHsNCgljb2xvcjogIzAwMDsNCgl0ZXh0LWRlY29yYXRpb246IG5vbmU7DQp9DQoNCi5wbHVwbG9hZF9kaXNhYmxlZCwgYS5wbHVwbG9hZF9kaXNhYmxlZDpob3ZlciB7DQogICAgY29sb3I6ICM3MzczNzM7DQogICAgYm9yZGVyLWNvbG9yOiAjYzVjNWM1Ow0KICAgIGJhY2tncm91bmQ6ICNlZGVkZWQgdXJsKCcuLi9pbWcvYnV0dG9ucy1kaXNhYmxlZC5wbmcnKSBuby1yZXBlYXQgMCBjZW50ZXI7DQoJY3Vyc29yOiBkZWZhdWx0Ow0KfQ0KDQoucGx1cGxvYWRfYWRkIHsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTgxcHggY2VudGVyOw0KfQ0KDQoucGx1cGxvYWRfd3JhcHBlciB7DQoJZm9udDogbm9ybWFsIDExcHggVmVyZGFuYSxzYW5zLXNlcmlmOw0KCXdpZHRoOiAxMDAlOw0KfQ0KDQoucGx1cGxvYWRfY29udGFpbmVyIHsNCglwYWRkaW5nOiA4cHg7DQoJYmFja2dyb3VuZDogdXJsKCcuLi9pbWcvdHJhbnNwNTAucG5nJyk7DQoJLyotbW96LWJvcmRlci1yYWRpdXM6IDVweDsqLw0KfQ0KDQoucGx1cGxvYWRfY29udGFpbmVyIGlucHV0IHsNCglib3JkZXI6IDFweCBzb2xpZCAjREREOw0KCWZvbnQ6IG5vcm1hbCAxMXB4IFZlcmRhbmEsc2Fucy1zZXJpZjsNCgl3aWR0aDogOTglOw0KfQ0KDQoucGx1cGxvYWRfaGVhZGVyIHtiYWNrZ3JvdW5kOiAjMkEyQzJFIHVybCgnLi4vaW1nL2JhY2tncm91bmRzLmdpZicpIHJlcGVhdC14O30NCi5wbHVwbG9hZF9oZWFkZXJfY29udGVudCB7DQoJYmFja2dyb3VuZDogdXJsKCcuLi9pbWcvYmFja2dyb3VuZHMuZ2lmJykgbm8tcmVwZWF0IDAgLTMxN3B4Ow0KCW1pbi1oZWlnaHQ6IDU2cHg7DQoJcGFkZGluZy1sZWZ0OiA2MHB4Ow0KCWNvbG9yOiAjRkZGOw0KfQ0KLnBsdXBsb2FkX2hlYWRlcl90aXRsZSB7DQoJZm9udDogbm9ybWFsIDE4cHggc2Fucy1zZXJpZjsNCglwYWRkaW5nOiA2cHggMCAzcHg7DQp9DQoucGx1cGxvYWRfaGVhZGVyX3RleHQgew0KCWZvbnQ6IG5vcm1hbCAxMnB4IHNhbnMtc2VyaWY7DQp9DQoNCi5wbHVwbG9hZF9maWxlbGlzdCB7DQoJbWFyZ2luOiAwOw0KCXBhZGRpbmc6IDA7DQoJbGlzdC1zdHlsZTogbm9uZTsNCn0NCg0KLnBsdXBsb2FkX3Njcm9sbCAucGx1cGxvYWRfZmlsZWxpc3Qgew0KCWhlaWdodDogMTg1cHg7DQoJYmFja2dyb3VuZDogI0Y1RjVGNTsNCglvdmVyZmxvdy15OiBzY3JvbGw7DQp9DQoNCi5wbHVwbG9hZF9maWxlbGlzdCBsaSB7DQoJcGFkZGluZzogMTBweCA4cHg7DQoJYmFja2dyb3VuZDogI0Y1RjVGNSB1cmwoJy4uL2ltZy9iYWNrZ3JvdW5kcy5naWYnKSByZXBlYXQteCAwIC0xNTZweDsNCglib3JkZXItYm90dG9tOiAxcHggc29saWQgI0RERDsNCn0NCg0KLnBsdXBsb2FkX2ZpbGVsaXN0X2hlYWRlciwgLnBsdXBsb2FkX2ZpbGVsaXN0X2Zvb3RlciB7DQoJYmFja2dyb3VuZDogI0RGREZERjsNCglwYWRkaW5nOiA4cHggOHB4Ow0KCWNvbG9yOiAjNDI0NTRBOw0KfQ0KLnBsdXBsb2FkX2ZpbGVsaXN0X2hlYWRlciB7CQ0KCWJvcmRlci10b3A6IDFweCBzb2xpZCAjRUVFOw0KCWJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQ0RDRENEOw0KfQ0KDQoucGx1cGxvYWRfZmlsZWxpc3RfZm9vdGVyIHtib3JkZXItdG9wOiAxcHggc29saWQgI0ZGRjsgaGVpZ2h0OiAyMnB4OyBsaW5lLWhlaWdodDogMjBweDsgdmVydGljYWwtYWxpZ246IG1pZGRsZTt9DQoucGx1cGxvYWRfZmlsZV9uYW1lIHtmbG9hdDogbGVmdDsgb3ZlcmZsb3c6IGhpZGRlbn0NCi5wbHVwbG9hZF9maWxlX3N0YXR1cyB7Y29sb3I6ICM3Nzc7fQ0KLnBsdXBsb2FkX2ZpbGVfc3RhdHVzIHNwYW4ge2NvbG9yOiAjNDI0NTRBO30NCi5wbHVwbG9hZF9maWxlX3NpemUsIC5wbHVwbG9hZF9maWxlX3N0YXR1cywgLnBsdXBsb2FkX3Byb2dyZXNzIHsNCglmbG9hdDogcmlnaHQ7DQoJd2lkdGg6IDgwcHg7DQp9DQoucGx1cGxvYWRfZmlsZV9zaXplLCAucGx1cGxvYWRfZmlsZV9zdGF0dXMsIC5wbHVwbG9hZF9maWxlX2FjdGlvbiB7dGV4dC1hbGlnbjogcmlnaHQ7fQ0KDQoucGx1cGxvYWRfZmlsZWxpc3QgLnBsdXBsb2FkX2ZpbGVfbmFtZSB7d2lkdGg6IDIwNXB4fQ0KDQoucGx1cGxvYWRfZmlsZV9hY3Rpb24gew0KCWZsb2F0OiByaWdodDsNCgl3aWR0aDogMTZweDsNCgloZWlnaHQ6IDE2cHg7DQoJbWFyZ2luLWxlZnQ6IDE1cHg7DQp9DQoNCi5wbHVwbG9hZF9maWxlX2FjdGlvbiAqIHsNCglkaXNwbGF5OiBub25lOw0KCXdpZHRoOiAxNnB4Ow0KCWhlaWdodDogMTZweDsNCn0NCg0KbGkucGx1cGxvYWRfdXBsb2FkaW5nIHtiYWNrZ3JvdW5kOiAjRUNGM0RDIHVybCgnLi4vaW1nL2JhY2tncm91bmRzLmdpZicpIHJlcGVhdC14IDAgLTIzOHB4O30NCmxpLnBsdXBsb2FkX2RvbmUge2NvbG9yOiNBQUF9DQoNCmxpLnBsdXBsb2FkX2RlbGV0ZSBhIHsNCgliYWNrZ3JvdW5kOiB1cmwoJy4uL2ltZy9kZWxldGUuZ2lmJyk7DQp9DQoNCmxpLnBsdXBsb2FkX2ZhaWxlZCBhIHsNCgliYWNrZ3JvdW5kOiB1cmwoJy4uL2ltZy9lcnJvci5naWYnKTsNCgljdXJzb3I6IGRlZmF1bHQ7DQp9DQoNCmxpLnBsdXBsb2FkX2RvbmUgYSB7DQoJYmFja2dyb3VuZDogdXJsKCcuLi9pbWcvZG9uZS5naWYnKTsNCgljdXJzb3I6IGRlZmF1bHQ7DQp9DQoNCi5wbHVwbG9hZF9wcm9ncmVzcywgLnBsdXBsb2FkX3VwbG9hZF9zdGF0dXMgew0KCWRpc3BsYXk6IG5vbmU7DQp9DQoNCi5wbHVwbG9hZF9wcm9ncmVzc19jb250YWluZXIgew0KCW1hcmdpbi10b3A6IDNweDsNCglib3JkZXI6IDFweCBzb2xpZCAjQ0NDOw0KCWJhY2tncm91bmQ6ICNGRkY7DQoJcGFkZGluZzogMXB4Ow0KfQ0KLnBsdXBsb2FkX3Byb2dyZXNzX2JhciB7DQoJd2lkdGg6IDBweDsNCgloZWlnaHQ6IDdweDsNCgliYWNrZ3JvdW5kOiAjQ0RFQjhCOw0KfQ0KDQoucGx1cGxvYWRfc2Nyb2xsIC5wbHVwbG9hZF9maWxlbGlzdF9oZWFkZXIgLnBsdXBsb2FkX2ZpbGVfYWN0aW9uLCAucGx1cGxvYWRfc2Nyb2xsIC5wbHVwbG9hZF9maWxlbGlzdF9mb290ZXIgLnBsdXBsb2FkX2ZpbGVfYWN0aW9uIHsNCgltYXJnaW4tcmlnaHQ6IDE3cHg7DQp9DQoNCi8qIEZsb2F0cyAqLw0KDQoucGx1cGxvYWRfY2xlYXIsLnBsdXBsb2FkX2NsZWFyZXIge2NsZWFyOiBib3RoO30NCi5wbHVwbG9hZF9jbGVhcmVyLCAucGx1cGxvYWRfcHJvZ3Jlc3NfYmFyIHsNCglkaXNwbGF5OiBibG9jazsNCglmb250LXNpemU6IDA7DQoJbGluZS1oZWlnaHQ6IDA7CQ0KfQ0KDQpsaS5wbHVwbG9hZF9kcm9wdGV4dCB7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7DQoJdGV4dC1hbGlnbjogY2VudGVyOw0KCXZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQoJYm9yZGVyOiAwOw0KCWxpbmUtaGVpZ2h0OiAxNjVweDsNCn0NCg==]]></data>
	</file>
	<file>
	  <filename>/js/plupload/jquery.plupload.queue/img/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/plupload/jquery.plupload.queue/img/backgrounds.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhUABtAffCAGFkaP7+/vb29v///+zz3O713vz8/Pj4+P39/fn5+fX19fv7+/f+5/X85fD34Pr6+u303ff39/H44e/23zQ3OjY4Ozc6PTg7Pjo8QDs+QT1ARDw/Qz5BRT9CRkFESEJFSkFFSSosLvT75PL64/b95kRHS/j/6Pb+5y4xM/j+6fT85fP75DM1OPL54vP64/X95jAyNSstMDE0Ny0vMkVITENGS/f/6F5hZV9iZtPU1WFjZ2BiZl1hZF1gY1xeYllcX1tdYVhbXVpcYFdZXFZYW1VXWtLT1FRWWEZKTtjY2Y6Qk3h7flhbX9PT1OLi41VZXW9xdfPz811gZGdqbuvs7I+RlJaXmpyen4KFiKOkpYmLjjs9QFRXW7i5u9bX2IOGid7f4OTl5uHi4+jo6EhMUNLT09TV1klNUdHS09LS009TV+7u7tna29vc3evr66KjpVteYvHx8amqq5qcn1tfY8zNzqeoq7O1tmBjZ8DBwkxPUVxgY1JWWktOUlNWWlRWWVNVWEhLT2JlaTs9QVlbX1BTVkdKTUxQVNXW10ZISmRna05QVFNVWURHTFBTVVFUWFJVWE5RUzU4O0xPU0JFSU9SVE9RU0NGST1AQ0JFSElLTldaXktNUIGDh6qsrWNmaujp6XZ4fKChpLS1tsfIyaeoqbu7vZianausrenq6nd6fWVobF9jZ5KUl2Zpbe/v73p8f3h7f7/Awd7f36SmqHt9gbq7vV1hZVxfY1VYXPT09Obm54yOkcPExkdKTm5wdIWHikVJTUVJTQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAMIALAAAAABQAG0BAAj/AIMJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjBGkoXcq0qdOnUKNKnUpVaYmrWLNq3cq1q9evYMNerUG2rNmzaNOqXcu2rVuyH+LKnUu3rt27ePPq3RsXhN+/gAMLHky4sOHDiP16WMy4sePHkCNLnky58uIOmDNr3sy5s+fPoEOLxsyhtOnTqFOrXs26tevXpTXInk27tu3buHPr3s1b9obfwIMLH068uPHjyJP/zsC8ufPn0KNLn069unXmGLJr3869u/fv4MOL/x+f/YL58+jTq1/Pvr379/DNW5hPv779+/jz69/Pv//8CgAGKOCABBZo4IEIJqgggBQ06OCDEEYo4YQUVmjhhQ2yoOGGHHbo4YcghijiiCRqKMOJKKao4oostujiizDGeCIMNNZo44045qjjjjz26CONKAQp5JBEFmnkkUgmqeSSQc7g5JNQRinllFRWaeWVWDoZw5Zcdunll2CGKeaYZJa5ZQhopqnmmmy26eabcMYpJ5rC1GnnnXjmqeeefPbp55+ABirooIQWauihiCaq6KKMNuroo5BGKumklFZq6aWYZqrpppx26umnoIYq6qiklmrqqaimquqqrLbq6quwxv8q66y01mrrrbjmquuuvPbq66/ABivssMQWa+yxyCar7LLMNuvss9BGK+201FZr7bXYZqvtttx26+234IYr7rjklmvuueimq+667Lbr7rvwwjvAvPTWa++9+Oar77789uvvvwAHLPDABBdssL4BJKzwwgw37PDDEEcs8cQUV2zxxRhnrPHGHHfs8ccbIyDyyCSXbPLJKKes8sost+zyyzDHLPPMNNecsgE456zzzjz37PPPQAct9NBEF2300UgnrfTSPy/g9NNQRy311FRXbfXVWGet9dZcd+3112CHXfUDZJdt9tlop6322my37fbbcMct99xpJ2D33XjnrffefPf/7fffgAcu+OCEF2744Ygn3vcBjDfu+OOQRy755JRXbvnlmGeu+eacd+7555NHIPropJdu+umop6766qy37vrrsMd+ugC012777bjnrvvuvPfu++/ABy/88MQXb/zxuyug/PLMN+/889BHL/301Fdv/fXYZ6/99tx3H3284Icv/vjkl2/++einr/767Lfv/vvwxy///PTXb//9+Oevf7Qp9O///wAMoAAHSMACGvCA/TOBAhfIwAY68IEQjKAEJ0hBBdrgghjMoAY3yMEOevCDIAzhBRlAwhKa8IQoTKEKV8jCFrrwhTCMoQxnmMIT2PCGOMyhDnfIwx768IdAtCEJ/4ZIxCIa8YhITKISl8jEJg7xBVCMohSnSMUqWvGKWMyiFqHYgC568YtgDKMYx0jGMprxjGhMoxrXyEYxquCNcIyjHOdIxzra8Y54zOMbRcDHPvrxj4AMpCAHSchCGpKPK0ikIhfJyEY68pGQjKQkJ5lIF1jykpjMpCY3yclOevKToLTkCEZJylKa8pSoTKUqV8nKVo6yBbCMpSxnScta2vKWuMylLmEpgV768pfADKYwh0nMYhrzmMhMpjKXyUxhOuCZ0IymNKdJzWpa85rYzKY2t8nNbnqTmhMIpzjHSc5ymvOc6EynOtfJzna6853wNGcB5knPetrznvjMpz73yf/PfvrznwANqEAHStCCGlSfEEioQhfK0IY69KEQjahEJ0rRilr0ohh1KAE2ytGOevSjIA2pSEdK0pKa9KQoTalKV8rSlrpUpPuLqUxnStOa2vSmOM2pTnfK05769KdADapQh0rUohr1qEhNqlLZ1xAkTIIPm4CDFHCAAynAYRN8mAQSGrKphZyBC1IAgFjHSlaxSoELZ1hIVxFChlywoqxwLSsenkCGhKzVIGq4QVz3WtYbqAEhdx0IEp7A18KW9QlbLUhgg+ELJhj2sWNlQmIHElgkOBaymJUsQQJL2Mcq4bNKgOwTNqupgagBs2ZIrRmmwNrWrkIQcP2rQNZKBr3/QtYLuPUCFHbLWyj8QhF9rWsw1tpZyLLhuGxYgnKXq1xVAJesox1uac+AB8wCoA3YbcMXtvsFLHjXu7GQa1q7ygXrAgAM6AWDFta7Xl6AVgmuKCsXpJspJITVumLIrxiqwN/+nmIOAA5FWaWAhE0dwrwACIOCw2CFBjtYFHaIcCfgeohN+QHBY8jwGK7A4Q574g4gBgZc/bCpy1rXDSh2QxZWvOJSyCIPMIYFXJmwKTogeA04XoMcdoyKUZCiDkDuBWzLSodN3YKvXciBkpecg1fE4clJiLKUpdyKuN5gUzhAMpOXvIsoeNkJYA4zmE2xVxxgWctbzgEi4kA7Krj5/82goMUnyrwp28Y1yWlWcyp04WUvz8IWtSjslTVlY/MyGcG4KDGCD21eGmuKETqItKQnTelIN+HSTai0pifNiE31YQegDrWoRw1qTDeB1KgWdR821Qg4UPXVsI41VY1AayPI+tavhkMjNvWBR9zg18AOtrBvUGsjDPvYwH7EBzYFgmDsgQfQjra0p13saVtb2nsIBgg2tRhI9ODb4A63uMtA7jKI+9zhhsRiNoUZShDCB/COt7zlnYZ6p2He+I43ISiBmU2ZJhBACLjABz5wNBgcDQRPuMADYZpN0WYRQoi4xCcu8TdY/A0Uz3jEF0GbTQVHA4X4gchHTvKSm/zkhX7QQHA29RxMVCIIMI+5zGdO85lXAhPP2VR3BsGJIfj850APutB/zolBdGdT7LkEIIjA9KY7/elPB8Ql2LMp/WxBE38ogta3zvWuF+EPmtiCfjaVoC0kwhJHSLva1552SyRiCwnaFIYkkYFMGEIPkXCEIyKhB0NkIgOSwNCkAgIAOw==]]></data>
	</file>
	<file>
	  <filename>/js/plupload/jquery.plupload.queue/img/buttons-disabled.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAWkAAAAUCAMAAAB4bjzXAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAklQTFRF9fX17u7u8/Pz8fHx7e3t9PT07+/v8PDw8vLy////cLhZoqKih4eHd7xgvb29nZ2doaGhxsbGsrKyxNO8c7pcoKCgx8fHi7GHr6+vnp6epsCknJycxcXFR40+mMyHjo6Ol5eXb7VYcqlks9mll9WLfMNrWphRzunJltSLjMuBSI4+t9qqx9LGV55FtduobKpakLx739/fkLt9ib54fsFpiIiIj8J9pdubrKyssbGxlNOKfLpki7p1hLNzhc15tra24+Pjl8eFis99ich/s7OzioqKzNXKtd+ss92py9TJtt2seb1ulbiQ0NfN1OvPcb5fmMyKhsl84PLcZaFWiYmJfsdvesZr3d3dycnJ3PHYaKtTt+CvuLi4mdGLxejAz9fNRYs+y+bDpKSko6OjgbNtfblrr9+ltMyomMuGfb5nbrVYtsqx09rQdatl1NrRfbxmveS2kbx+jsyEfblqtNqmpM6Uu9yvZJ9XlriQaqxbZatVT5FIb7VZjb57q9SchrV1hLVwcrlbgcx1r9+mtMypisJ5Q4s6goKCtN2qqsahRIs6kJCQ1+7StMmvdLdcdLdbQo02ptCWs8iuqKiowcHBps+Wj4+PfHx8wsLCjtKDltOJO4U0wMDAYZ1UUJlBuN2voNmVgICAhsl6yNLHQ484tNmlstuovLy8lZWVmZmZf7ltqtSdvuK2w8PD4ODgoNmWcMFjqMSfkLx8a6pYUJJJksWAeLRkecFkt8uyXJlTndiSldSKRYo+gbRtY59Tl8yFfrFpk82I////2fGzsgAAAMN0Uk5T//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8Ajk4gvwAAAYpJREFUeNrs0GNzA1EYhuFNt027QdOktm3btm3btm3btu3zy7pN2v6DtvPO7D3znvP1mQvDAIYwKkqakv7/RACGBF9RV3lbVmt/KozRgKUlL6rTQ3RXD4rvYEgLfbceKwQl9PlIOtVElNme5qR0Rw5DGP0jzeKwzCFJl5gZxj+8V+g9zidm1/oAkp5hijOtTwBJ57oPrTl4EoSLdrSvcR0EaTF+apNz9uLSUW5iIELkWQR06ocHEkQ9Wyr5+h7AaAz/TF6OmyTH25WfxUGEyHs+0tog+DGsDg0AjBZIZ0jYKfGWFFm9cKTf/Dw6vqTzW3rASOO4ItdryhvH4Ug7hy3EnDWQzoz21+YrCNKigqRlXI9VRYGEyDtP6LsNZZPSBSNVW7IARmN0Qcw4GaVBOpAQecEalTtsKUaT+qimadomgNHf0pkSnP09SNL0wpcbE5VSx7zty0UFCKMxGsAQ/51YXrEZn7Yce1IAMRqwNM0/SEd5oFHWiEZJ/7I0rDBhgCGIoynpv+pDgAEAbYqvesQxV1EAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/js/plupload/jquery.plupload.queue/img/buttons.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAWkAAAAUCAMAAAB4bjzXAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAApdQTFRF8/Pz9fX19PT07u7u8fHx/v7+/f397e3t9vb2+/v7+fn57+/v/////Pz89/f3+Pj4+vr68PDw8vLycLhZd7xgxNO8qsuR9ffzpsCki7GHc7pcrc2UkLx8M4gLfbxmXJlTdLdcs9mldKtPoNmV09rQfsFpKYIKfMNruN2v8fTwecFk2OfVaqxbgbNafsdvkLt9cMFjZJ9Xy+bDtMypibhrj8J9NogaoceKhrV1gcx1RI8WhLNzqMuQhbZqisJ5NIkYhLVwgbNtpdubpciNb6U93Onar9+lbqQ4l8yFhc15r9+my9TJgLNh1OvPq9Scqsahl9WLaaM5V55FptCWRIs6Q484crlb8vbwV5goesZrpM6UUJJJtd+smMKDY58xt+CvX6FDkLx0SI4+zunJndiSdatl4PLcqMSfZZ8xs92pib54caY/x9LG0uPN1NrRaKtTmMuGT5FIlbiQoNmW1+7SRYs+tNqmqtSdbrVYtsqxl8KClsGAN4gJb7VYmMyHk82Is8iucqlktN2qSpEcjMuBhsl6eLRkKIADa6pYtduoaKVGfLpkY59Tcb5fhbZm3PHYgbRthsl8mMyKlriQf7ltzNXKR40+UpcinsWIfK9VM4cVXKA8eb1uksWAZqVItt2sjtKDQo02b7VZstuoO4U0yNLHveS2ZaFWdLdbocaKlNOKvuK2Yp4xWphRt9qqUJlBbKpaps+Wjrpvu9yvltOJkLx7frFpldSKich/jsyEz9fNgrVnt8uyQ4s6xejA8PXttMyoXp86RYo+1ubSHnsDfblql8eFYqNGjb570NfNfb5nsM6WW5spYZ1Ukbx+a6M3i7p1mdGLqcqQaKI1tMmvPIsQltSLZatVRpAZtNmlfblris99////6IUpKwAAAN10Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wD5NwmvAAABtUlEQVR42mLgGYLgDuMQBAysQxCMhvRoSOMLabYhCO4wgYGK8TkHRwv/XUxDAgzhkBaViTLyTdaYkrpnaIQ0LxTsb8/lHSrgDgMQiF7YnLbMqdhtn93yKwxDAXBCQHjN7FmHOYcIAIV03tZ1/Sn1O69tXxB/y3Dq0Alp8RtdsfPstYdQSB84VqK8agcPj6e6XkzQ5KEQ0gIgIB6hZL676riZq8CQAHeEhIT053u1TJzDw6MjInVxrrzQ4AcMXCCQoSuW6GNbnXBEk2sogDssLCwTVge0QvoxwqrlSSyDH0BCOjtwpk3fjIOyalxDJqS3Zd62hIb0Kb+9QyGk+SFgjZjJyqv8QwSAQtp60pZIg+vAcBYO8zgRPRRCmg8CLktvcrbiGyLgjqCgYHp+k1avCDCkKxTKQiUFBz9g4IAA99PSl5o5hgi4w83NfbLx6GIRKeFFtSsUN5Qu5R78ABbSLufjzkwfSiHNXdnT1lkn111ws2OJBPdQCOmhOFhzhxkEGs6uNw3emLXwkATzUAAMTEMQQEKa2bto7bSQQskc5tGQpnFIDy3AMBTBHfYhCEZDml4AIMAAyDYZyvin1kIAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/js/plupload/jquery.plupload.queue/img/delete.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEAAQALMIAP/////MzP/Mmf+Zmf+ZZv9mZsxmZsxmM////wAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAgALAAAAAAQABAAAARhEMlJawXBaCOARdkQjIIWVGEgDGxQGKcEGOJA3HdpeCAR2LhbYXAYSGi2gnI5fB0FN4B0qiQegVPq8HAlMJkEAxdBHHyXZZnG/B2IeaC1t0BwH2KTzGFov38AfUV4H4QSEQA7]]></data>
	</file>
	<file>
	  <filename>/js/plupload/jquery.plupload.queue/img/done.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEAAQAPefAK7cpZ3YkpDOf3LIaIPOd/z9+7fhr7XhrnrMbW7EYkKhM0mwJz+NO0ShM2y2VprHh5jLhrbRtZbLhrTapn28Zq3fm3+4aZrKh1zAO3DHZZC8jq/cpuf14eb046PXlpG5j6vTm53Oi7bQtYfCcqHXlVG3LnnJa9ns1D+LO3/KcPT68ny6ZODr4DuhJ3nBZJrUjXG5W3e8YH7Hb5bNiL7jtrrbtf3+/SaEI6HWlZvXkSZ/I3C/V2nISm/GZGq5ULTdqpjMh7/juIfJeeTy4YXFdYDKc3O6XHTDZH2+Z3TIaLXbqOn45WSwTD+FO7LbqDWPMcDkuW/CYXXIaJ/SkLfZtW/DYW+1WW23V7TZpW61WG+1WHPHZmzFS7XfrFzDPTV/MeHs4X23ZrfhsJnNij+ZPHbJaYvIeO3362bFSZTIj3LLVSl3Jcvsv7Hdp7PZparcl4nEdoDMcsvtwE6bQUyXPXDBY1q+N6/XoHS3W6vSm5nRi3TCWW7FY27EYWrDSXC4Wdbu0iqPJZ/SkXbKail6Jen35bTfrIO+bV6pSJfMhTR8MHHEY7Djn121P3S3XK7Xob7ftZHAjydyJFKgQuPx4XG+X1WzNZbHg5nQjH7BacHjtnK5W/H58ODu4P///////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAJ8ALAAAAAAQABAAAAjdAD8JHEiwYMEljNRgsOPnDQeDn+Tw2OMBAAAcPixpKsjGiwADAQgQCHDATAtIAwuhEXAAwaABSaSYMARHASWBFXYYQDAgA58Ei2jI6IIojUAuJHKU6dGnShQonjroCUFGYIk2cbaIAVQniKcCmDI9uiFwwYYURTh5OvN1Bgwkd3QIbCToxREhKjzZkHBlU6IHKAROYfLDRSUiJ8Y4yOJowhwNAoc0GOEkhpE/VrTgcWPhC5iBNQIdUgKEwgoIWMJIilCQypNJF0DkuURHkQiInSIxILSmyQcWEIMXDAgAOw==]]></data>
	</file>
	<file>
	  <filename>/js/plupload/jquery.plupload.queue/img/error.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEAAQAPeAANWhPf777f777v7879ajPvXaWP776v789PTaXNWiPv/+/fv04/7778NsBufAffnu1/XbXPnplPLWVfDTj/DSjPTaXf777P369fTXTv767PHUhfTZV/PYjcl3DeGqMfvyw/z22OvLV/LWVPbbWvTaW/LWWPfluf768e3IcfrvtfjnlNmYI+i4OvXYUs+FFv/++ezDWv765+rAXuW/iO/OhvTfqevOq8p/KujDh/PYV+CnLdaTIPLXWPTjwPfow/357frv1fLXVvLXV/z11P365v789vXjvvbcXP343v355/XZVNKTRN+kK+i6Rfvy2u3Je8ZxCeq+ROi/YvHXnea5Xf358e3UttyeJ/HXovLYlNmgVfjt3vbaYsx+Ed2kO/fqyPDRgtadXfzzx/TcXvjmlMFoA/TZXP/9+fbfZNOMG/XYUei3Q+/OdPLcsvTWUN2xR/jli+7Mef788/788u/KaP7789qbJf368e7HXd2hKfXhrdGKHOW7aOWyN/rrnua2SP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAIAALAAAAAAQABAAAAi/AAEJHEiwoEFACvDQUXCwIAcNYPQ0HHgiyh0ga6pMBMQmi5wYE2hMdMLiTAQ/GTw8aAijxg8CBIZgoXLQBIoXYxIkMBOAT5uCRZp8IVIBAAAhYnp4uUAwDgUDZBC8ARAEAhIHOAYu6FPnwxEEaEJIUKJiwZ4tAmVMSQJnBAmjIlq4ATFDCyAfUg6kKFAgB48SG9Rg4GJgiZU/Rg4wECBgwIDFAQJYmGPjxhMdTPJcsbNiRxoXXTpAaVAmzEaDAQEAOw==]]></data>
	</file>
	<file>
	  <filename>/js/plupload/jquery.plupload.queue/img/throbber.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/js/plupload/jquery.plupload.queue/img/transp50.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEhSURBVHja7NKxEQAwCMSwkMnZ/FmAklIawedK0g+OfQkwFsbCWGAsjIWxwFgYC2OBsTAWxgJjYSyMBcbCWBgLjIWxMBYYC2NhLDAWxsJYYCyMhbHAWBgLY4GxMBbGAmNhLIwFxsJYGAuMhbEwFhgLY2EsMBbGwlhgLIyFscBYGAtjgbEwFsYCY2EsjAXGwlgYC4yFsTAWGAtjYSwwFsbCWGAsjIWxwFgYC2OBsTAWxgJjYSyMhbHAWBgLY4GxMBbGAmNhLIwFxsJYGAuMhbEwFhgLY2EsMBbGwlhgLIyFscBYGAtjgbEwFsYCY2EsjAXGwlgYC4yFsTAWGAtjYSwwFsbCWGAsjIWxwFgYC2OBsTAWxgJjYSyMBcbCWBgLdiPAAGciBKl/QyaCAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/js/plupload/jquery.plupload.queue/jquery.plupload.queue.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[KGZ1bmN0aW9uKGMpe3ZhciBkPXt9O2Z1bmN0aW9uIGEoZSl7cmV0dXJuIHBsdXBsb2FkLnRyYW5zbGF0ZShlKXx8ZX1mdW5jdGlvbiBiKGYsZSl7ZS5jb250ZW50cygpLmVhY2goZnVuY3Rpb24oZyxoKXtoPWMoaCk7aWYoIWguaXMoIi5wbHVwbG9hZCIpKXtoLnJlbW92ZSgpfX0pO2UucHJlcGVuZCgnPGRpdiBjbGFzcz0icGx1cGxvYWRfd3JhcHBlciBwbHVwbG9hZF9zY3JvbGwiPjxkaXYgaWQ9IicrZisnX2NvbnRhaW5lciIgY2xhc3M9InBsdXBsb2FkX2NvbnRhaW5lciI+PGRpdiBjbGFzcz0icGx1cGxvYWQiPjxkaXYgY2xhc3M9InBsdXBsb2FkX2hlYWRlciI+PGRpdiBjbGFzcz0icGx1cGxvYWRfaGVhZGVyX2NvbnRlbnQiPjxkaXYgY2xhc3M9InBsdXBsb2FkX2hlYWRlcl90aXRsZSI+JythKCJTZWxlY3QgZmlsZXMiKSsnPC9kaXY+PGRpdiBjbGFzcz0icGx1cGxvYWRfaGVhZGVyX3RleHQiPicrYSgiQWRkIGZpbGVzIHRvIHRoZSB1cGxvYWQgcXVldWUgYW5kIGNsaWNrIHRoZSBzdGFydCBidXR0b24uIikrJzwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InBsdXBsb2FkX2NvbnRlbnQiPjxkaXYgY2xhc3M9InBsdXBsb2FkX2ZpbGVsaXN0X2hlYWRlciI+PGRpdiBjbGFzcz0icGx1cGxvYWRfZmlsZV9uYW1lIj4nK2EoIkZpbGVuYW1lIikrJzwvZGl2PjxkaXYgY2xhc3M9InBsdXBsb2FkX2ZpbGVfYWN0aW9uIj4mbmJzcDs8L2Rpdj48ZGl2IGNsYXNzPSJwbHVwbG9hZF9maWxlX3N0YXR1cyI+PHNwYW4+JythKCJTdGF0dXMiKSsnPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InBsdXBsb2FkX2ZpbGVfc2l6ZSI+JythKCJTaXplIikrJzwvZGl2PjxkaXYgY2xhc3M9InBsdXBsb2FkX2NsZWFyZXIiPiZuYnNwOzwvZGl2PjwvZGl2Pjx1bCBpZD0iJytmKydfZmlsZWxpc3QiIGNsYXNzPSJwbHVwbG9hZF9maWxlbGlzdCI+PC91bD48ZGl2IGNsYXNzPSJwbHVwbG9hZF9maWxlbGlzdF9mb290ZXIiPjxkaXYgY2xhc3M9InBsdXBsb2FkX2ZpbGVfbmFtZSI+PGRpdiBjbGFzcz0icGx1cGxvYWRfYnV0dG9ucyI+PGEgaHJlZj0iIyIgY2xhc3M9InBsdXBsb2FkX2J1dHRvbiBwbHVwbG9hZF9hZGQiPicrYSgiQWRkIGZpbGVzIikrJzwvYT48YSBocmVmPSIjIiBjbGFzcz0icGx1cGxvYWRfYnV0dG9uIHBsdXBsb2FkX3N0YXJ0Ij4nK2EoIlN0YXJ0IHVwbG9hZCIpKyc8L2E+PC9kaXY+PHNwYW4gY2xhc3M9InBsdXBsb2FkX3VwbG9hZF9zdGF0dXMiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJwbHVwbG9hZF9maWxlX2FjdGlvbiI+PC9kaXY+PGRpdiBjbGFzcz0icGx1cGxvYWRfZmlsZV9zdGF0dXMiPjxzcGFuIGNsYXNzPSJwbHVwbG9hZF90b3RhbF9zdGF0dXMiPjAlPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InBsdXBsb2FkX2ZpbGVfc2l6ZSI+PHNwYW4gY2xhc3M9InBsdXBsb2FkX3RvdGFsX2ZpbGVfc2l6ZSI+MCBiPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InBsdXBsb2FkX3Byb2dyZXNzIj48ZGl2IGNsYXNzPSJwbHVwbG9hZF9wcm9ncmVzc19jb250YWluZXIiPjxkaXYgY2xhc3M9InBsdXBsb2FkX3Byb2dyZXNzX2JhciI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0icGx1cGxvYWRfY2xlYXJlciI+Jm5ic3A7PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IicrZisnX2NvdW50IiBuYW1lPSInK2YrJ19jb3VudCIgdmFsdWU9IjAiIC8+PC9kaXY+Jyl9Yy5mbi5wbHVwbG9hZFF1ZXVlPWZ1bmN0aW9uKGUpe2lmKGUpe3RoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBqLGksaztpPWModGhpcyk7az1pLmF0dHIoImlkIik7aWYoIWspe2s9cGx1cGxvYWQuZ3VpZCgpO2kuYXR0cigiaWQiLGspfWo9bmV3IHBsdXBsb2FkLlVwbG9hZGVyKGMuZXh0ZW5kKHtkcmFnZHJvcDp0cnVlLGNvbnRhaW5lcjprfSxlKSk7ZFtrXT1qO2Z1bmN0aW9uIGgobCl7dmFyIG47aWYobC5zdGF0dXM9PXBsdXBsb2FkLkRPTkUpe249InBsdXBsb2FkX2RvbmUifWlmKGwuc3RhdHVzPT1wbHVwbG9hZC5GQUlMRUQpe249InBsdXBsb2FkX2ZhaWxlZCJ9aWYobC5zdGF0dXM9PXBsdXBsb2FkLlFVRVVFRCl7bj0icGx1cGxvYWRfZGVsZXRlIn1pZihsLnN0YXR1cz09cGx1cGxvYWQuVVBMT0FESU5HKXtuPSJwbHVwbG9hZF91cGxvYWRpbmcifXZhciBtPWMoIiMiK2wuaWQpLmF0dHIoImNsYXNzIixuKS5maW5kKCJhIikuY3NzKCJkaXNwbGF5IiwiYmxvY2siKTtpZihsLmhpbnQpe20uYXR0cigidGl0bGUiLGwuaGludCl9fWZ1bmN0aW9uIGYoKXtjKCJzcGFuLnBsdXBsb2FkX3RvdGFsX3N0YXR1cyIsaSkuaHRtbChqLnRvdGFsLnBlcmNlbnQrIiUiKTtjKCJkaXYucGx1cGxvYWRfcHJvZ3Jlc3NfYmFyIixpKS5jc3MoIndpZHRoIixqLnRvdGFsLnBlcmNlbnQrIiUiKTtjKCJzcGFuLnBsdXBsb2FkX3VwbG9hZF9zdGF0dXMiLGkpLnRleHQoYSgiVXBsb2FkZWQgJWQvJWQgZmlsZXMiKS5yZXBsYWNlKC8lZFwvJWQvLGoudG90YWwudXBsb2FkZWQrIi8iK2ouZmlsZXMubGVuZ3RoKSl9ZnVuY3Rpb24gZygpe3ZhciBtPWMoInVsLnBsdXBsb2FkX2ZpbGVsaXN0IixpKS5odG1sKCIiKSxuPTAsbDtjLmVhY2goai5maWxlcyxmdW5jdGlvbihwLG8pe2w9IiI7aWYoby5zdGF0dXM9PXBsdXBsb2FkLkRPTkUpe2lmKG8udGFyZ2V0X25hbWUpe2wrPSc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSInK2srIl8iK24rJ190bXBuYW1lIiB2YWx1ZT0iJytwbHVwbG9hZC54bWxFbmNvZGUoby50YXJnZXRfbmFtZSkrJyIgLz4nfWwrPSc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSInK2srIl8iK24rJ19uYW1lIiB2YWx1ZT0iJytwbHVwbG9hZC54bWxFbmNvZGUoby5uYW1lKSsnIiAvPic7bCs9JzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IicraysiXyIrbisnX3N0YXR1cyIgdmFsdWU9IicrKG8uc3RhdHVzPT1wbHVwbG9hZC5ET05FPyJkb25lIjoiZmFpbGVkIikrJyIgLz4nO24rKztjKCIjIitrKyJfY291bnQiKS52YWwobil9bS5hcHBlbmQoJzxsaSBpZD0iJytvLmlkKyciPjxkaXYgY2xhc3M9InBsdXBsb2FkX2ZpbGVfbmFtZSI+PHNwYW4+JytvLm5hbWUrJzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJwbHVwbG9hZF9maWxlX2FjdGlvbiI+PGEgaHJlZj0iIyI+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InBsdXBsb2FkX2ZpbGVfc3RhdHVzIj4nK28ucGVyY2VudCsnJTwvZGl2PjxkaXYgY2xhc3M9InBsdXBsb2FkX2ZpbGVfc2l6ZSI+JytwbHVwbG9hZC5mb3JtYXRTaXplKG8uc2l6ZSkrJzwvZGl2PjxkaXYgY2xhc3M9InBsdXBsb2FkX2NsZWFyZXIiPiZuYnNwOzwvZGl2PicrbCsiPC9saT4iKTtoKG8pO2MoIiMiK28uaWQrIi5wbHVwbG9hZF9kZWxldGUgYSIpLmNsaWNrKGZ1bmN0aW9uKHEpe2MoIiMiK28uaWQpLnJlbW92ZSgpO2oucmVtb3ZlRmlsZShvKTtxLnByZXZlbnREZWZhdWx0KCl9KX0pO2MoInNwYW4ucGx1cGxvYWRfdG90YWxfZmlsZV9zaXplIixpKS5odG1sKHBsdXBsb2FkLmZvcm1hdFNpemUoai50b3RhbC5zaXplKSk7aWYoai50b3RhbC5xdWV1ZWQ9PT0wKXtjKCJzcGFuLnBsdXBsb2FkX2FkZF90ZXh0IixpKS50ZXh0KGEoIkFkZCBmaWxlcy4iKSl9ZWxzZXtjKCJzcGFuLnBsdXBsb2FkX2FkZF90ZXh0IixpKS50ZXh0KGoudG90YWwucXVldWVkKyIgZmlsZXMgcXVldWVkLiIpfWMoImEucGx1cGxvYWRfc3RhcnQiLGkpLnRvZ2dsZUNsYXNzKCJwbHVwbG9hZF9kaXNhYmxlZCIsai5maWxlcy5sZW5ndGg9PShqLnRvdGFsLnVwbG9hZGVkK2oudG90YWwuZmFpbGVkKSk7bVswXS5zY3JvbGxUb3A9bVswXS5zY3JvbGxIZWlnaHQ7ZigpO2lmKCFqLmZpbGVzLmxlbmd0aCYmai5mZWF0dXJlcy5kcmFnZHJvcCYmai5zZXR0aW5ncy5kcmFnZHJvcCl7YygiIyIraysiX2ZpbGVsaXN0IikuYXBwZW5kKCc8bGkgY2xhc3M9InBsdXBsb2FkX2Ryb3B0ZXh0Ij4nK2EoIkRyYWcgZmlsZXMgaGVyZS4iKSsiPC9saT4iKX19ai5iaW5kKCJVcGxvYWRGaWxlIixmdW5jdGlvbihsLG0pe2MoIiMiK20uaWQpLmFkZENsYXNzKCJwbHVwbG9hZF9jdXJyZW50X2ZpbGUiKX0pO2ouYmluZCgiSW5pdCIsZnVuY3Rpb24obCxtKXtiKGssaSk7aWYoIWUudW5pcXVlX25hbWVzJiZlLnJlbmFtZSl7YygiIyIraysiX2ZpbGVsaXN0IGRpdi5wbHVwbG9hZF9maWxlX25hbWUgc3BhbiIsaSkubGl2ZSgiY2xpY2siLGZ1bmN0aW9uKHMpe3ZhciBxPWMocy50YXJnZXQpLG8scixuLHA9IiI7bz1sLmdldEZpbGUocS5wYXJlbnRzKCJsaSIpWzBdLmlkKTtuPW8ubmFtZTtyPS9eKC4rKShcLlteLl0rKSQvLmV4ZWMobik7aWYocil7bj1yWzFdO3A9clsyXX1xLmhpZGUoKS5hZnRlcignPGlucHV0IHR5cGU9InRleHQiIC8+Jyk7cS5uZXh0KCkudmFsKG4pLmZvY3VzKCkuYmx1cihmdW5jdGlvbigpe3Euc2hvdygpLm5leHQoKS5yZW1vdmUoKX0pLmtleWRvd24oZnVuY3Rpb24odSl7dmFyIHQ9Yyh0aGlzKTtpZih1LmtleUNvZGU9PTEzKXt1LnByZXZlbnREZWZhdWx0KCk7by5uYW1lPXQudmFsKCkrcDtxLnRleHQoby5uYW1lKTt0LmJsdXIoKX19KX0pfWMoImEucGx1cGxvYWRfYWRkIixpKS5hdHRyKCJpZCIsaysiX2Jyb3dzZSIpO2wuc2V0dGluZ3MuYnJvd3NlX2J1dHRvbj1rKyJfYnJvd3NlIjtpZihsLmZlYXR1cmVzLmRyYWdkcm9wJiZsLnNldHRpbmdzLmRyYWdkcm9wKXtsLnNldHRpbmdzLmRyb3BfZWxlbWVudD1rKyJfZmlsZWxpc3QiO2MoIiMiK2srIl9maWxlbGlzdCIpLmFwcGVuZCgnPGxpIGNsYXNzPSJwbHVwbG9hZF9kcm9wdGV4dCI+JythKCJEcmFnIGZpbGVzIGhlcmUuIikrIjwvbGk+Iil9YygiIyIraysiX2NvbnRhaW5lciIpLmF0dHIoInRpdGxlIiwiVXNpbmcgcnVudGltZTogIittLnJ1bnRpbWUpO2MoImEucGx1cGxvYWRfc3RhcnQiLGkpLmNsaWNrKGZ1bmN0aW9uKG4pe2lmKCFjKHRoaXMpLmhhc0NsYXNzKCJwbHVwbG9hZF9kaXNhYmxlZCIpKXtqLnN0YXJ0KCl9bi5wcmV2ZW50RGVmYXVsdCgpfSk7YygiYS5wbHVwbG9hZF9zdG9wIixpKS5jbGljayhmdW5jdGlvbihuKXtuLnByZXZlbnREZWZhdWx0KCk7ai5zdG9wKCl9KTtjKCJhLnBsdXBsb2FkX3N0YXJ0IixpKS5hZGRDbGFzcygicGx1cGxvYWRfZGlzYWJsZWQiKX0pO2ouaW5pdCgpO2ouYmluZCgiRXJyb3IiLGZ1bmN0aW9uKGwsbyl7dmFyIG09by5maWxlLG47aWYobSl7bj1vLm1lc3NhZ2U7aWYoby5kZXRhaWxzKXtuKz0iICgiK28uZGV0YWlscysiKSJ9aWYoby5jb2RlPT1wbHVwbG9hZC5GSUxFX1NJWkVfRVJST1Ipe2FsZXJ0KGEoIkVycm9yOiBGaWxlIHRvbyBsYXJnZTogIikrbS5uYW1lKX1pZihvLmNvZGU9PXBsdXBsb2FkLkZJTEVfRVhURU5TSU9OX0VSUk9SKXthbGVydChhKCJFcnJvcjogSW52YWxpZCBmaWxlIGV4dGVuc2lvbjogIikrbS5uYW1lKX1tLmhpbnQ9bjtjKCIjIittLmlkKS5hdHRyKCJjbGFzcyIsInBsdXBsb2FkX2ZhaWxlZCIpLmZpbmQoImEiKS5jc3MoImRpc3BsYXkiLCJibG9jayIpLmF0dHIoInRpdGxlIixuKX19KTtqLmJpbmQoIlN0YXRlQ2hhbmdlZCIsZnVuY3Rpb24oKXtpZihqLnN0YXRlPT09cGx1cGxvYWQuU1RBUlRFRCl7YygibGkucGx1cGxvYWRfZGVsZXRlIGEsZGl2LnBsdXBsb2FkX2J1dHRvbnMiLGkpLmhpZGUoKTtjKCJzcGFuLnBsdXBsb2FkX3VwbG9hZF9zdGF0dXMsZGl2LnBsdXBsb2FkX3Byb2dyZXNzLGEucGx1cGxvYWRfc3RvcCIsaSkuY3NzKCJkaXNwbGF5IiwiYmxvY2siKTtjKCJzcGFuLnBsdXBsb2FkX3VwbG9hZF9zdGF0dXMiLGkpLnRleHQoIlVwbG9hZGVkICIrai50b3RhbC51cGxvYWRlZCsiLyIrai5maWxlcy5sZW5ndGgrIiBmaWxlcyIpO2lmKGUubXVsdGlwbGVfcXVldWVzKXtjKCJzcGFuLnBsdXBsb2FkX3RvdGFsX3N0YXR1cyxzcGFuLnBsdXBsb2FkX3RvdGFsX2ZpbGVfc2l6ZSIsaSkuc2hvdygpfX1lbHNle2coKTtjKCJhLnBsdXBsb2FkX3N0b3AsZGl2LnBsdXBsb2FkX3Byb2dyZXNzIixpKS5oaWRlKCk7YygiYS5wbHVwbG9hZF9kZWxldGUiLGkpLmNzcygiZGlzcGxheSIsImJsb2NrIil9fSk7ai5iaW5kKCJRdWV1ZUNoYW5nZWQiLGcpO2ouYmluZCgiRmlsZVVwbG9hZGVkIixmdW5jdGlvbihsLG0pe2gobSl9KTtqLmJpbmQoIlVwbG9hZFByb2dyZXNzIixmdW5jdGlvbihsLG0pe2MoIiMiK20uaWQrIiBkaXYucGx1cGxvYWRfZmlsZV9zdGF0dXMiLGkpLmh0bWwobS5wZXJjZW50KyIlIik7aChtKTtmKCk7aWYoZS5tdWx0aXBsZV9xdWV1ZXMmJmoudG90YWwudXBsb2FkZWQrai50b3RhbC5mYWlsZWQ9PWouZmlsZXMubGVuZ3RoKXtjKCIucGx1cGxvYWRfYnV0dG9ucywucGx1cGxvYWRfdXBsb2FkX3N0YXR1cyIsaSkuY3NzKCJkaXNwbGF5IiwiaW5saW5lIik7YygiLnBsdXBsb2FkX3N0YXJ0IixpKS5hZGRDbGFzcygicGx1cGxvYWRfZGlzYWJsZWQiKTtjKCJzcGFuLnBsdXBsb2FkX3RvdGFsX3N0YXR1cyxzcGFuLnBsdXBsb2FkX3RvdGFsX2ZpbGVfc2l6ZSIsaSkuaGlkZSgpfX0pO2lmKGUuc2V0dXApe2Uuc2V0dXAoail9fSk7cmV0dXJuIHRoaXN9ZWxzZXtyZXR1cm4gZFtjKHRoaXNbMF0pLmF0dHIoImlkIildfX19KShqUXVlcnkpOw==]]></data>
	</file>
	<file>
	  <filename>/js/plupload/jquery.ui.plupload/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/plupload/jquery.ui.plupload/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/plupload/jquery.ui.plupload/css/jquery.ui.plupload.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoNCiAgIFBsdXBsb2FkDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQoNCi5wbHVwbG9hZF9idXR0b24ge2N1cnNvcjogcG9pbnRlcjt9DQoNCi5wbHVwbG9hZF93cmFwcGVyIHsNCglmb250OiBub3JtYWwgMTFweCBWZXJkYW5hLHNhbnMtc2VyaWY7DQoJd2lkdGg6IDEwMCU7DQp9DQoNCi5wbHVwbG9hZCAucGx1cGxvYWRfY29udGFpbmVyIGlucHV0IHt3aWR0aDogOTglO30NCi5wbHVwbG9hZCAucGx1cGxvYWRfZmlsZWxpc3RfZm9vdGVyIHtib3JkZXItd2lkdGg6IDFweCAwIDAgMH0NCi5wbHVwbG9hZCAucGx1cGxvYWRfZmlsZWxpc3RfaGVhZGVyIHtib3JkZXItd2lkdGg6IDAgMCAxcHggMH0NCmRpdi5wbHVwbG9hZCAucGx1cGxvYWRfZmlsZSB7Ym9yZGVyLXdpZHRoOiAwIDAgMXB4IDB9DQpkaXYucGx1cGxvYWQgZGl2LnBsdXBsb2FkX2hlYWRlciB7Ym9yZGVyLXdpZHRoOiAwIDAgMXB4IDA7IHBvc2l0aW9uOiByZWxhdGl2ZTt9DQoNCi5wbHVwbG9hZF9maWxlIC51aS1pY29uIHsNCgljdXJzb3I6cG9pbnRlcjsJDQp9DQoNCi5wbHVwbG9hZF9oZWFkZXJfY29udGVudCB7DQoJYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvcGx1cGxvYWQucG5nJyk7DQoJYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiA4cHggY2VudGVyOw0KCW1pbi1oZWlnaHQ6IDU2cHg7DQoJcGFkZGluZy1sZWZ0OiA2MHB4Ow0KCXBvc2l0aW9uOnJlbGF0aXZlOw0KfQ0KLnBsdXBsb2FkX2hlYWRlcl9jb250ZW50X2J3IHtiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9wbHVwbG9hZC1idy5wbmcnKTt9DQoucGx1cGxvYWRfaGVhZGVyX3RpdGxlIHsNCglmb250OiBub3JtYWwgMThweCBzYW5zLXNlcmlmOw0KCXBhZGRpbmc6IDZweCAwIDNweDsNCn0NCi5wbHVwbG9hZF9oZWFkZXJfdGV4dCB7Zm9udDogbm9ybWFsIDEycHggc2Fucy1zZXJpZjt9DQoNCi5wbHVwbG9hZF9maWxlbGlzdCwNCi5wbHVwbG9hZF9maWxlbGlzdF9jb250ZW50IHsNCglib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOw0KCW1hcmdpbjogMDsNCglwYWRkaW5nOiAwOw0KCXdpZHRoOiAxMDAlOw0KCS1tb3otdXNlci1zZWxlY3Q6bm9uZTsNCgktd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7DQoJdXNlci1zZWxlY3Q6bm9uZTsNCn0NCg0KLnBsdXBsb2FkX2NlbGwge3BhZGRpbmc6IDhweCA2cHg7fQ0KDQoucGx1cGxvYWRfZmlsZSB7DQoJYm9yZGVyLWxlZnQ6IG5vbmU7DQoJYm9yZGVyLXJpZ2h0OiBub25lOw0KfQ0KDQoucGx1cGxvYWQgLnVpLXNvcnRhYmxlLWhlbHBlciwNCi5wbHVwbG9hZCAudWktc29ydGFibGUgLnBsdXBsb2FkX2ZpbGUgew0KCWN1cnNvcjptb3ZlOwkNCn0NCg0KLnBsdXBsb2FkX3Njcm9sbCB7DQoJbWF4LWhlaWdodDogMTgwcHg7DQoJbWluLWhlaWdodDogMTY4cHg7DQoJX2hlaWdodDogMTY4cHg7DQoJb3ZlcmZsb3cteTogYXV0bzsNCn0NCg0KLnBsdXBsb2FkX2ZpbGVfc2l6ZSwgLnBsdXBsb2FkX2ZpbGVfc3RhdHVzIHt0ZXh0LWFsaWduOiByaWdodDt9DQoucGx1cGxvYWRfZmlsZV9zaXplLCAucGx1cGxvYWRfZmlsZV9zdGF0dXMge3dpZHRoOiA1MnB4O30NCi5wbHVwbG9hZF9maWxlX2FjdGlvbiB7d2lkdGg6IDE2cHg7fQ0KLnBsdXBsb2FkX2ZpbGVfbmFtZSB7DQoJb3ZlcmZsb3c6IGhpZGRlbjsNCglwYWRkaW5nLWxlZnQ6IDEwcHg7DQp9DQoNCi5wbHVwbG9hZF9maWxlX3JlbmFtZSB7DQoJd2lkdGg6OTUlOwkNCn0NCg0KLnBsdXBsb2FkX3Byb2dyZXNzIHt3aWR0aDogNjBweDt9DQoucGx1cGxvYWRfcHJvZ3Jlc3NfY29udGFpbmVyIHtwYWRkaW5nOiAxcHg7fQ0KDQoNCi8qIEZsb2F0cyAqLw0KDQoucGx1cGxvYWRfcmlnaHQge2Zsb2F0OiByaWdodDt9DQoucGx1cGxvYWRfbGVmdCB7ZmxvYXQ6IGxlZnQ7fQ0KLnBsdXBsb2FkX2NsZWFyLC5wbHVwbG9hZF9jbGVhcmVyIHtjbGVhcjogYm90aDt9DQoucGx1cGxvYWRfY2xlYXJlciwgLnBsdXBsb2FkX3Byb2dyZXNzX2JhciB7DQoJZGlzcGxheTogYmxvY2s7DQoJZm9udC1zaXplOiAwOw0KCWxpbmUtaGVpZ2h0OiAwOw0KfQ0KLnBsdXBsb2FkX2NsZWFyZXIge2hlaWdodDogMDt9DQoNCi8qIE1pc2MgKi8NCi5wbHVwbG9hZF9oaWRkZW4ge2Rpc3BsYXk6IG5vbmU7fQ0KLnBsdXBsb2FkX2Ryb3B0ZXh0IHsNCgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsNCgl0ZXh0LWFsaWduOiBjZW50ZXI7DQoJdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCglib3JkZXI6IDA7DQoJbGluZS1oZWlnaHQ6IDE2NXB4Ow0KfQ0KDQoucGx1cGxvYWRfYnV0dG9ucywgLnBsdXBsb2FkX3VwbG9hZF9zdGF0dXMge2Zsb2F0OiBsZWZ0fQ0KDQoucGx1cGxvYWRfbWVzc2FnZSB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCXRvcDogMHB4Ow0KCWxlZnQ6IDBweDsJDQoJaGVpZ2h0OiAxMDAlOw0KCXdpZHRoOiAxMDAlOw0KfQ0KDQoucGx1cGxvYWRfbWVzc2FnZSBwIHsNCglwYWRkaW5nOjAuN2VtOw0KCW1hcmdpbjowOw0KfQ0KDQoucGx1cGxvYWRfbWVzc2FnZSBzdHJvbmcgew0KCWZvbnQtd2VpZ2h0OiBib2xkOwkNCn0NCg0KcGx1cGxvYWRfbWVzc2FnZSBpIHsNCglmb250LXN0eWxlOiBpdGFsaWM7CQ0KfQ0KDQoucGx1cGxvYWRfbWVzc2FnZSBwIHNwYW4udWktaWNvbiB7DQoJZmxvYXQ6IGxlZnQ7DQoJbWFyZ2luLXJpZ2h0OiAwLjNlbTsJDQp9DQoNCi5wbHVwbG9hZF9oZWFkZXJfY29udGVudCAudWktc3RhdGUtZXJyb3IsDQoucGx1cGxvYWRfaGVhZGVyX2NvbnRlbnQgLnVpLXN0YXRlLWhpZ2hsaWdodCB7DQoJYm9yZGVyOm5vbmU7CQ0KfQ0KDQoucGx1cGxvYWRfbWVzc2FnZV9jbG9zZSB7DQoJcG9zaXRpb246YWJzb2x1dGU7DQoJdG9wOjVweDsNCglyaWdodDo1cHg7DQoJY3Vyc29yOnBvaW50ZXI7CQ0KfQ0KDQoucGx1cGxvYWQgLnVpLXNvcnRhYmxlLXBsYWNlaG9sZGVyIHsNCgloZWlnaHQ6MzVweDsNCn0NCg==]]></data>
	</file>
	<file>
	  <filename>/js/plupload/jquery.ui.plupload/img/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/plupload/jquery.ui.plupload/img/plupload-bw.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/js/plupload/jquery.ui.plupload/img/plupload.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/js/plupload/jquery.ui.plupload/jquery.ui.plupload.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[KGZ1bmN0aW9uKGYsYSxjLGcsZSl7dmFyIGg9e307ZnVuY3Rpb24gYihpKXtyZXR1cm4gYy50cmFuc2xhdGUoaSl8fGl9ZnVuY3Rpb24gZChpKXtpLmh0bWwoJzxkaXYgY2xhc3M9InBsdXBsb2FkX3dyYXBwZXIiPjxkaXYgY2xhc3M9InVpLXdpZGdldC1jb250ZW50IHBsdXBsb2FkX2NvbnRhaW5lciI+PGRpdiBjbGFzcz0icGx1cGxvYWQiPjxkaXYgY2xhc3M9InVpLXN0YXRlLWRlZmF1bHQgdWktd2lkZ2V0LWhlYWRlciBwbHVwbG9hZF9oZWFkZXIiPjxkaXYgY2xhc3M9InBsdXBsb2FkX2hlYWRlcl9jb250ZW50Ij48ZGl2IGNsYXNzPSJwbHVwbG9hZF9oZWFkZXJfdGl0bGUiPicrYigiU2VsZWN0IGZpbGVzIikrJzwvZGl2PjxkaXYgY2xhc3M9InBsdXBsb2FkX2hlYWRlcl90ZXh0Ij4nK2IoIkFkZCBmaWxlcyB0byB0aGUgdXBsb2FkIHF1ZXVlIGFuZCBjbGljayB0aGUgc3RhcnQgYnV0dG9uLiIpKyc8L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJwbHVwbG9hZF9jb250ZW50Ij48dGFibGUgY2xhc3M9InBsdXBsb2FkX2ZpbGVsaXN0Ij48dHIgY2xhc3M9InVpLXdpZGdldC1oZWFkZXIgcGx1cGxvYWRfZmlsZWxpc3RfaGVhZGVyIj48dGQgY2xhc3M9InBsdXBsb2FkX2NlbGwgcGx1cGxvYWRfZmlsZV9uYW1lIj4nK2IoIkZpbGVuYW1lIikrJzwvdGQ+PHRkIGNsYXNzPSJwbHVwbG9hZF9jZWxsIHBsdXBsb2FkX2ZpbGVfc3RhdHVzIj4nK2IoIlN0YXR1cyIpKyc8L3RkPjx0ZCBjbGFzcz0icGx1cGxvYWRfY2VsbCBwbHVwbG9hZF9maWxlX3NpemUiPicrYigiU2l6ZSIpKyc8L3RkPjx0ZCBjbGFzcz0icGx1cGxvYWRfY2VsbCBwbHVwbG9hZF9maWxlX2FjdGlvbiI+Jm5ic3A7PC90ZD48L3RyPjwvdGFibGU+PGRpdiBjbGFzcz0icGx1cGxvYWRfc2Nyb2xsIj48dGFibGUgY2xhc3M9InBsdXBsb2FkX2ZpbGVsaXN0X2NvbnRlbnQiPjwvdGFibGU+PC9kaXY+PHRhYmxlIGNsYXNzPSJwbHVwbG9hZF9maWxlbGlzdCI+PHRyIGNsYXNzPSJ1aS13aWRnZXQtaGVhZGVyIHVpLXdpZGdldC1jb250ZW50IHBsdXBsb2FkX2ZpbGVsaXN0X2Zvb3RlciI+PHRkIGNsYXNzPSJwbHVwbG9hZF9jZWxsIHBsdXBsb2FkX2ZpbGVfbmFtZSI+PGRpdiBjbGFzcz0icGx1cGxvYWRfYnV0dG9ucyI+PCEtLSBWaXNpYmxlIC0tPjxhIGNsYXNzPSJwbHVwbG9hZF9idXR0b24gcGx1cGxvYWRfYWRkIj4nK2IoIkFkZCBGaWxlcyIpKyc8L2E+Jm5ic3A7PGEgY2xhc3M9InBsdXBsb2FkX2J1dHRvbiBwbHVwbG9hZF9zdGFydCI+JytiKCJTdGFydCBVcGxvYWQiKSsnPC9hPiZuYnNwOzxhIGNsYXNzPSJwbHVwbG9hZF9idXR0b24gcGx1cGxvYWRfc3RvcCBwbHVwbG9hZF9oaWRkZW4iPicrYigiU3RvcCBVcGxvYWQiKSsnPC9hPiZuYnNwOzwvZGl2PjxkaXYgY2xhc3M9InBsdXBsb2FkX3N0YXJ0ZWQgcGx1cGxvYWRfaGlkZGVuIj48IS0tIEhpZGRlbiAtLT48ZGl2IGNsYXNzPSJwbHVwbG9hZF9wcm9ncmVzcyBwbHVwbG9hZF9yaWdodCI+PGRpdiBjbGFzcz0icGx1cGxvYWRfcHJvZ3Jlc3NfY29udGFpbmVyIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJwbHVwbG9hZF9jZWxsIHBsdXBsb2FkX3VwbG9hZF9zdGF0dXMiPjwvZGl2PjxkaXYgY2xhc3M9InBsdXBsb2FkX2NsZWFyZXIiPiZuYnNwOzwvZGl2PjwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJwbHVwbG9hZF9maWxlX3N0YXR1cyI+PHNwYW4gY2xhc3M9InBsdXBsb2FkX3RvdGFsX3N0YXR1cyI+MCU8L3NwYW4+PC90ZD48dGQgY2xhc3M9InBsdXBsb2FkX2ZpbGVfc2l6ZSI+PHNwYW4gY2xhc3M9InBsdXBsb2FkX3RvdGFsX2ZpbGVfc2l6ZSI+MCBrYjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0icGx1cGxvYWRfZmlsZV9hY3Rpb24iPjwvdGQ+PC90cj48L3RhYmxlPjwvZGl2PjwvZGl2PjwvZGl2PjxpbnB1dCBjbGFzcz0icGx1cGxvYWRfY291bnQiIHZhbHVlPSIwIiB0eXBlPSJoaWRkZW4iPjwvZGl2PicpfWcud2lkZ2V0KCJ1aS5wbHVwbG9hZCIse2NvbnRlbnRzX2JhazoiIixydW50aW1lOm51bGwsb3B0aW9uczp7YnJvd3NlX2J1dHRvbl9ob3ZlcjoidWktc3RhdGUtaG92ZXIiLGJyb3dzZV9idXR0b25fYWN0aXZlOiJ1aS1zdGF0ZS1hY3RpdmUiLGRyYWdkcm9wOnRydWUsbXVsdGlwbGVfcXVldWVzOnRydWUsYnV0dG9uczp7YnJvd3NlOnRydWUsc3RhcnQ6dHJ1ZSxzdG9wOnRydWV9LGF1dG9zdGFydDpmYWxzZSxzb3J0YWJsZTpmYWxzZSxyZW5hbWU6ZmFsc2UsbWF4X2ZpbGVfY291bnQ6MH0sRklMRV9DT1VOVF9FUlJPUjotOTAwMSxfY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIGk9dGhpcyxrLGo7az10aGlzLmVsZW1lbnQuYXR0cigiaWQiKTtpZighayl7az1jLmd1aWQoKTt0aGlzLmVsZW1lbnQuYXR0cigiaWQiLGspfXRoaXMuaWQ9azt0aGlzLmNvbnRlbnRzX2Jhaz10aGlzLmVsZW1lbnQuaHRtbCgpO2QodGhpcy5lbGVtZW50KTt0aGlzLmNvbnRhaW5lcj1nKCIucGx1cGxvYWRfY29udGFpbmVyIix0aGlzLmVsZW1lbnQpLmF0dHIoImlkIixrKyJfY29udGFpbmVyIik7dGhpcy5maWxlbGlzdD1nKCIucGx1cGxvYWRfZmlsZWxpc3RfY29udGVudCIsdGhpcy5jb250YWluZXIpLmF0dHIoe2lkOmsrIl9maWxlbGlzdCIsdW5zZWxlY3RhYmxlOiJvbiJ9KTt0aGlzLmJyb3dzZV9idXR0b249ZygiLnBsdXBsb2FkX2FkZCIsdGhpcy5jb250YWluZXIpLmF0dHIoImlkIixrKyJfYnJvd3NlIik7dGhpcy5zdGFydF9idXR0b249ZygiLnBsdXBsb2FkX3N0YXJ0Iix0aGlzLmNvbnRhaW5lcikuYXR0cigiaWQiLGsrIl9zdGFydCIpO3RoaXMuc3RvcF9idXR0b249ZygiLnBsdXBsb2FkX3N0b3AiLHRoaXMuY29udGFpbmVyKS5hdHRyKCJpZCIsaysiX3N0b3AiKTtpZihnLnVpLmJ1dHRvbil7dGhpcy5icm93c2VfYnV0dG9uLmJ1dHRvbih7aWNvbnM6e3ByaW1hcnk6InVpLWljb24tY2lyY2xlLXBsdXMifX0pO3RoaXMuc3RhcnRfYnV0dG9uLmJ1dHRvbih7aWNvbnM6e3ByaW1hcnk6InVpLWljb24tY2lyY2xlLWFycm93LWUifSxkaXNhYmxlZDp0cnVlfSk7dGhpcy5zdG9wX2J1dHRvbi5idXR0b24oe2ljb25zOntwcmltYXJ5OiJ1aS1pY29uLWNpcmNsZS1jbG9zZSJ9fSl9dGhpcy5wcm9ncmVzc2Jhcj1nKCIucGx1cGxvYWRfcHJvZ3Jlc3NfY29udGFpbmVyIix0aGlzLmNvbnRhaW5lcik7aWYoZy51aS5wcm9ncmVzc2Jhcil7dGhpcy5wcm9ncmVzc2Jhci5wcm9ncmVzc2JhcigpfXRoaXMuY291bnRlcj1nKCIucGx1cGxvYWRfY291bnQiLHRoaXMuZWxlbWVudCkuYXR0cih7aWQ6aysiX2NvdW50IixuYW1lOmsrIl9jb3VudCJ9KTtqPXRoaXMudXBsb2FkZXI9aFtrXT1uZXcgYy5VcGxvYWRlcihnLmV4dGVuZCh7Y29udGFpbmVyOmssYnJvd3NlX2J1dHRvbjprKyJfYnJvd3NlIn0sdGhpcy5vcHRpb25zKSk7ai5iaW5kKCJFcnJvciIsZnVuY3Rpb24obCxtKXtpZihtLmNvZGU9PT1jLklOSVRfRVJST1Ipe2kuZGVzdHJveSgpfX0pO2ouYmluZCgiSW5pdCIsZnVuY3Rpb24obCxtKXtpZighaS5vcHRpb25zLmJ1dHRvbnMuYnJvd3NlKXtpLmJyb3dzZV9idXR0b24uYnV0dG9uKCJkaXNhYmxlIikuaGlkZSgpO2wuZGlzYWJsZUJyb3dzZSh0cnVlKX1pZighaS5vcHRpb25zLmJ1dHRvbnMuc3RhcnQpe2kuc3RhcnRfYnV0dG9uLmJ1dHRvbigiZGlzYWJsZSIpLmhpZGUoKX1pZighaS5vcHRpb25zLmJ1dHRvbnMuc3RvcCl7aS5zdG9wX2J1dHRvbi5idXR0b24oImRpc2FibGUiKS5oaWRlKCl9aWYoIWkub3B0aW9ucy51bmlxdWVfbmFtZXMmJmkub3B0aW9ucy5yZW5hbWUpe2kuX2VuYWJsZVJlbmFtaW5nKCl9aWYoai5mZWF0dXJlcy5kcmFnZHJvcCYmaS5vcHRpb25zLmRyYWdkcm9wKXtpLl9lbmFibGVEcmFnQW5kRHJvcCgpfWkuY29udGFpbmVyLmF0dHIoInRpdGxlIixiKCJVc2luZyBydW50aW1lOiAiKSsoaS5ydW50aW1lPW0ucnVudGltZSkpO2kuc3RhcnRfYnV0dG9uLmNsaWNrKGZ1bmN0aW9uKG4pe2lmKCFnKHRoaXMpLmJ1dHRvbigib3B0aW9uIiwiZGlzYWJsZWQiKSl7aS5zdGFydCgpfW4ucHJldmVudERlZmF1bHQoKX0pO2kuc3RvcF9idXR0b24uY2xpY2soZnVuY3Rpb24obil7aS5zdG9wKCk7bi5wcmV2ZW50RGVmYXVsdCgpfSl9KTtpZihpLm9wdGlvbnMubWF4X2ZpbGVfY291bnQpe2ouYmluZCgiRmlsZXNBZGRlZCIsZnVuY3Rpb24obCxuKXt2YXIgbz1bXSxtPW4ubGVuZ3RoO3ZhciBwPWwuZmlsZXMubGVuZ3RoK20taS5vcHRpb25zLm1heF9maWxlX2NvdW50O2lmKHA+MCl7bz1uLnNwbGljZShtLXAscCk7bC50cmlnZ2VyKCJFcnJvciIse2NvZGU6aS5GSUxFX0NPVU5UX0VSUk9SLG1lc3NhZ2U6YigiRmlsZSBjb3VudCBlcnJvci4iKSxmaWxlOm99KX19KX1qLmluaXQoKTtqLmJpbmQoIkZpbGVzQWRkZWQiLGZ1bmN0aW9uKGwsbSl7aS5fdHJpZ2dlcigic2VsZWN0ZWQiLG51bGwse3VwOmwsZmlsZXM6bX0pO2lmKGkub3B0aW9ucy5hdXRvc3RhcnQpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpLnN0YXJ0KCl9LDEwKX19KTtqLmJpbmQoIkZpbGVzUmVtb3ZlZCIsZnVuY3Rpb24obCxtKXtpLl90cmlnZ2VyKCJyZW1vdmVkIixudWxsLHt1cDpsLGZpbGVzOm19KX0pO2ouYmluZCgiUXVldWVDaGFuZ2VkIixmdW5jdGlvbigpe2kuX3VwZGF0ZUZpbGVMaXN0KCl9KTtqLmJpbmQoIlN0YXRlQ2hhbmdlZCIsZnVuY3Rpb24oKXtpLl9oYW5kbGVTdGF0ZSgpfSk7ai5iaW5kKCJVcGxvYWRGaWxlIixmdW5jdGlvbihsLG0pe2kuX2hhbmRsZUZpbGVTdGF0dXMobSl9KTtqLmJpbmQoIkZpbGVVcGxvYWRlZCIsZnVuY3Rpb24obCxtKXtpLl9oYW5kbGVGaWxlU3RhdHVzKG0pO2kuX3RyaWdnZXIoInVwbG9hZGVkIixudWxsLHt1cDpsLGZpbGU6bX0pfSk7ai5iaW5kKCJVcGxvYWRQcm9ncmVzcyIsZnVuY3Rpb24obCxtKXtnKCIjIittLmlkKS5maW5kKCIucGx1cGxvYWRfZmlsZV9zdGF0dXMiKS5odG1sKG0ucGVyY2VudCsiJSIpLmVuZCgpLmZpbmQoIi5wbHVwbG9hZF9maWxlX3NpemUiKS5odG1sKGMuZm9ybWF0U2l6ZShtLnNpemUpKTtpLl9oYW5kbGVGaWxlU3RhdHVzKG0pO2kuX3VwZGF0ZVRvdGFsUHJvZ3Jlc3MoKTtpLl90cmlnZ2VyKCJwcm9ncmVzcyIsbnVsbCx7dXA6bCxmaWxlOm19KX0pO2ouYmluZCgiVXBsb2FkQ29tcGxldGUiLGZ1bmN0aW9uKGwsbSl7aS5fdHJpZ2dlcigiY29tcGxldGUiLG51bGwse3VwOmwsZmlsZXM6bX0pfSk7ai5iaW5kKCJFcnJvciIsZnVuY3Rpb24obCxwKXt2YXIgbj1wLmZpbGUsbyxtO2lmKG4pe289IjxzdHJvbmc+IitwLm1lc3NhZ2UrIjwvc3Ryb25nPiI7bT1wLmRldGFpbHM7aWYobSl7bys9IiA8YnIgLz48aT4iK3AuZGV0YWlscysiPC9pPiJ9ZWxzZXtzd2l0Y2gocC5jb2RlKXtjYXNlIGMuRklMRV9FWFRFTlNJT05fRVJST1I6bT1iKCJGaWxlOiAlcyIpLnJlcGxhY2UoIiVzIixuLm5hbWUpO2JyZWFrO2Nhc2UgYy5GSUxFX1NJWkVfRVJST1I6bT1iKCJGaWxlOiAlZiwgc2l6ZTogJXMsIG1heCBmaWxlIHNpemU6ICVtIikucmVwbGFjZSgvJShbZnNtXSkvZyxmdW5jdGlvbihyLHEpe3N3aXRjaChxKXtjYXNlImYiOnJldHVybiBuLm5hbWU7Y2FzZSJzIjpyZXR1cm4gbi5zaXplO2Nhc2UibSI6cmV0dXJuIGMucGFyc2VTaXplKGkub3B0aW9ucy5tYXhfZmlsZV9zaXplKX19KTticmVhaztjYXNlIGkuRklMRV9DT1VOVF9FUlJPUjptPWIoIlVwbG9hZCBlbGVtZW50IGFjY2VwdHMgb25seSAlZCBmaWxlKHMpIGF0IGEgdGltZS4gRXh0cmEgZmlsZXMgd2VyZSBzdHJpcHBlZC4iKS5yZXBsYWNlKCIlZCIsaS5vcHRpb25zLm1heF9maWxlX2NvdW50KTticmVhaztjYXNlIGMuSU1BR0VfRk9STUFUX0VSUk9SOm09Yy50cmFuc2xhdGUoIkltYWdlIGZvcm1hdCBlaXRoZXIgd3Jvbmcgb3Igbm90IHN1cHBvcnRlZC4iKTticmVhaztjYXNlIGMuSU1BR0VfTUVNT1JZX0VSUk9SOm09Yy50cmFuc2xhdGUoIlJ1bnRpbWUgcmFuIG91dCBvZiBhdmFpbGFibGUgbWVtb3J5LiIpO2JyZWFrO2Nhc2UgYy5JTUFHRV9ESU1FTlNJT05TX0VSUk9SOm09Yy50cmFuc2xhdGUoIlJlc291bHRpb24gb3V0IG9mIGJvdW5kYXJpZXMhIDxiPiVzPC9iPiBydW50aW1lIHN1cHBvcnRzIGltYWdlcyBvbmx5IHVwIHRvICV3eCVocHguIikucmVwbGFjZSgvJShbc3doXSkvZyxmdW5jdGlvbihyLHEpe3N3aXRjaChxKXtjYXNlInMiOnJldHVybiBsLnJ1bnRpbWU7Y2FzZSJ3IjpyZXR1cm4gbC5mZWF0dXJlcy5tYXhXaWR0aDtjYXNlImgiOnJldHVybiBsLmZlYXR1cmVzLm1heEhlaWdodH19KTticmVhaztjYXNlIGMuSFRUUF9FUlJPUjptPWIoIlVwbG9hZCBVUkwgbWlnaHQgYmUgd3Jvbmcgb3IgZG9lc24ndCBleGlzdCIpO2JyZWFrfW8rPSIgPGJyIC8+PGk+IittKyI8L2k+In1pLm5vdGlmeSgiZXJyb3IiLG8pO2kuX3RyaWdnZXIoImVycm9yIixudWxsLHt1cDpsLGZpbGU6bixlcnJvcjpvfSl9fSl9LF9zZXRPcHRpb246ZnVuY3Rpb24oaixrKXt2YXIgaT10aGlzO2lmKGo9PSJidXR0b25zIiYmdHlwZW9mKGspPT0ib2JqZWN0Iil7az1nLmV4dGVuZChpLm9wdGlvbnMuYnV0dG9ucyxrKTtpZighay5icm93c2Upe2kuYnJvd3NlX2J1dHRvbi5idXR0b24oImRpc2FibGUiKS5oaWRlKCk7dXAuZGlzYWJsZUJyb3dzZSh0cnVlKX1lbHNle2kuYnJvd3NlX2J1dHRvbi5idXR0b24oImVuYWJsZSIpLnNob3coKTt1cC5kaXNhYmxlQnJvd3NlKGZhbHNlKX1pZighay5zdGFydCl7aS5zdGFydF9idXR0b24uYnV0dG9uKCJkaXNhYmxlIikuaGlkZSgpfWVsc2V7aS5zdGFydF9idXR0b24uYnV0dG9uKCJlbmFibGUiKS5zaG93KCl9aWYoIWsuc3RvcCl7aS5zdG9wX2J1dHRvbi5idXR0b24oImRpc2FibGUiKS5oaWRlKCl9ZWxzZXtpLnN0YXJ0X2J1dHRvbi5idXR0b24oImVuYWJsZSIpLnNob3coKX19aS51cGxvYWRlci5zZXR0aW5nc1tqXT1rfSxzdGFydDpmdW5jdGlvbigpe3RoaXMudXBsb2FkZXIuc3RhcnQoKTt0aGlzLl90cmlnZ2VyKCJzdGFydCIsbnVsbCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLnVwbG9hZGVyLnN0b3AoKTt0aGlzLl90cmlnZ2VyKCJzdG9wIixudWxsKX0sZ2V0RmlsZTpmdW5jdGlvbihqKXt2YXIgaTtpZih0eXBlb2Ygaj09PSJudW1iZXIiKXtpPXRoaXMudXBsb2FkZXIuZmlsZXNbal19ZWxzZXtpPXRoaXMudXBsb2FkZXIuZ2V0RmlsZShqKX1yZXR1cm4gaX0scmVtb3ZlRmlsZTpmdW5jdGlvbihqKXt2YXIgaT10aGlzLmdldEZpbGUoaik7aWYoaSl7dGhpcy51cGxvYWRlci5yZW1vdmVGaWxlKGkpfX0sY2xlYXJRdWV1ZTpmdW5jdGlvbigpe3RoaXMudXBsb2FkZXIuc3BsaWNlKCl9LGdldFVwbG9hZGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudXBsb2FkZXJ9LHJlZnJlc2g6ZnVuY3Rpb24oKXt0aGlzLnVwbG9hZGVyLnJlZnJlc2goKX0sX2hhbmRsZVN0YXRlOmZ1bmN0aW9uKCl7dmFyIGo9dGhpcyxpPXRoaXMudXBsb2FkZXI7aWYoaS5zdGF0ZT09PWMuU1RBUlRFRCl7ZyhqLnN0YXJ0X2J1dHRvbikuYnV0dG9uKCJkaXNhYmxlIik7ZyhbXSkuYWRkKGouc3RvcF9idXR0b24pLmFkZCgiLnBsdXBsb2FkX3N0YXJ0ZWQiKS5yZW1vdmVDbGFzcygicGx1cGxvYWRfaGlkZGVuIik7ZygiLnBsdXBsb2FkX3VwbG9hZF9zdGF0dXMiLGouZWxlbWVudCkudGV4dChiKCJVcGxvYWRlZCAlZC8lZCBmaWxlcyIpLnJlcGxhY2UoIiVkLyVkIixpLnRvdGFsLnVwbG9hZGVkKyIvIitpLmZpbGVzLmxlbmd0aCkpO2coIi5wbHVwbG9hZF9oZWFkZXJfY29udGVudCIsai5lbGVtZW50KS5hZGRDbGFzcygicGx1cGxvYWRfaGVhZGVyX2NvbnRlbnRfYnciKX1lbHNle2coW10pLmFkZChqLnN0b3BfYnV0dG9uKS5hZGQoIi5wbHVwbG9hZF9zdGFydGVkIikuYWRkQ2xhc3MoInBsdXBsb2FkX2hpZGRlbiIpO2lmKGoub3B0aW9ucy5tdWx0aXBsZV9xdWV1ZXMpe2coai5zdGFydF9idXR0b24pLmJ1dHRvbigiZW5hYmxlIik7ZygiLnBsdXBsb2FkX2hlYWRlcl9jb250ZW50IixqLmVsZW1lbnQpLnJlbW92ZUNsYXNzKCJwbHVwbG9hZF9oZWFkZXJfY29udGVudF9idyIpfWouX3VwZGF0ZUZpbGVMaXN0KCl9fSxfaGFuZGxlRmlsZVN0YXR1czpmdW5jdGlvbihsKXt2YXIgbixqO2lmKCFnKCIjIitsLmlkKS5sZW5ndGgpe3JldHVybn1zd2l0Y2gobC5zdGF0dXMpe2Nhc2UgYy5ET05FOm49InBsdXBsb2FkX2RvbmUiO2o9InVpLWljb24gdWktaWNvbi1jaXJjbGUtY2hlY2siO2JyZWFrO2Nhc2UgYy5GQUlMRUQ6bj0idWktc3RhdGUtZXJyb3IgcGx1cGxvYWRfZmFpbGVkIjtqPSJ1aS1pY29uIHVpLWljb24tYWxlcnQiO2JyZWFrO2Nhc2UgYy5RVUVVRUQ6bj0icGx1cGxvYWRfZGVsZXRlIjtqPSJ1aS1pY29uIHVpLWljb24tY2lyY2xlLW1pbnVzIjticmVhaztjYXNlIGMuVVBMT0FESU5HOm49InVpLXN0YXRlLWhpZ2hsaWdodCBwbHVwbG9hZF91cGxvYWRpbmciO2o9InVpLWljb24gdWktaWNvbi1jaXJjbGUtYXJyb3ctdyI7dmFyIGk9ZygiLnBsdXBsb2FkX3Njcm9sbCIsdGhpcy5jb250YWluZXIpLG09aS5zY3JvbGxUb3AoKSxvPWkuaGVpZ2h0KCksaz1nKCIjIitsLmlkKS5wb3NpdGlvbigpLnRvcCtnKCIjIitsLmlkKS5oZWlnaHQoKTtpZihvPGspe2kuc2Nyb2xsVG9wKG0ray1vKX1icmVha31uKz0iIHVpLXN0YXRlLWRlZmF1bHQgcGx1cGxvYWRfZmlsZSI7ZygiIyIrbC5pZCkuYXR0cigiY2xhc3MiLG4pLmZpbmQoIi51aS1pY29uIikuYXR0cigiY2xhc3MiLGopfSxfdXBkYXRlVG90YWxQcm9ncmVzczpmdW5jdGlvbigpe3ZhciBpPXRoaXMudXBsb2FkZXI7dGhpcy5wcm9ncmVzc2Jhci5wcm9ncmVzc2JhcigidmFsdWUiLGkudG90YWwucGVyY2VudCk7dGhpcy5lbGVtZW50LmZpbmQoIi5wbHVwbG9hZF90b3RhbF9zdGF0dXMiKS5odG1sKGkudG90YWwucGVyY2VudCsiJSIpLmVuZCgpLmZpbmQoIi5wbHVwbG9hZF90b3RhbF9maWxlX3NpemUiKS5odG1sKGMuZm9ybWF0U2l6ZShpLnRvdGFsLnNpemUpKS5lbmQoKS5maW5kKCIucGx1cGxvYWRfdXBsb2FkX3N0YXR1cyIpLnRleHQoYigiVXBsb2FkZWQgJWQvJWQgZmlsZXMiKS5yZXBsYWNlKCIlZC8lZCIsaS50b3RhbC51cGxvYWRlZCsiLyIraS5maWxlcy5sZW5ndGgpKX0sX3VwZGF0ZUZpbGVMaXN0OmZ1bmN0aW9uKCl7dmFyIGs9dGhpcyxqPXRoaXMudXBsb2FkZXIsbT10aGlzLmZpbGVsaXN0LGw9MCxvLG49dGhpcy5pZCsiXyIsaTtpZihnLnVpLnNvcnRhYmxlJiZ0aGlzLm9wdGlvbnMuc29ydGFibGUpe2coInRib2R5IixtKS5zb3J0YWJsZSgiZGVzdHJveSIpfW0uZW1wdHkoKTtnLmVhY2goai5maWxlcyxmdW5jdGlvbihxLHApe2k9IiI7bz1uK2w7aWYocC5zdGF0dXM9PT1jLkRPTkUpe2lmKHAudGFyZ2V0X25hbWUpe2krPSc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSInK28rJ190bXBuYW1lIiB2YWx1ZT0iJytjLnhtbEVuY29kZShwLnRhcmdldF9uYW1lKSsnIiAvPid9aSs9JzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IicrbysnX25hbWUiIHZhbHVlPSInK2MueG1sRW5jb2RlKHAubmFtZSkrJyIgLz4nO2krPSc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSInK28rJ19zdGF0dXMiIHZhbHVlPSInKyhwLnN0YXR1cz09PWMuRE9ORT8iZG9uZSI6ImZhaWxlZCIpKyciIC8+JztsKys7ay5jb3VudGVyLnZhbChsKX1tLmFwcGVuZCgnPHRyIGNsYXNzPSJ1aS1zdGF0ZS1kZWZhdWx0IHBsdXBsb2FkX2ZpbGUiIGlkPSInK3AuaWQrJyI+PHRkIGNsYXNzPSJwbHVwbG9hZF9jZWxsIHBsdXBsb2FkX2ZpbGVfbmFtZSI+PHNwYW4+JytwLm5hbWUrJzwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0icGx1cGxvYWRfY2VsbCBwbHVwbG9hZF9maWxlX3N0YXR1cyI+JytwLnBlcmNlbnQrJyU8L3RkPjx0ZCBjbGFzcz0icGx1cGxvYWRfY2VsbCBwbHVwbG9hZF9maWxlX3NpemUiPicrYy5mb3JtYXRTaXplKHAuc2l6ZSkrJzwvdGQ+PHRkIGNsYXNzPSJwbHVwbG9hZF9jZWxsIHBsdXBsb2FkX2ZpbGVfYWN0aW9uIj48ZGl2IGNsYXNzPSJ1aS1pY29uIj48L2Rpdj4nK2krIjwvdGQ+PC90cj4iKTtrLl9oYW5kbGVGaWxlU3RhdHVzKHApO2coIiMiK3AuaWQrIi5wbHVwbG9hZF9kZWxldGUgLnVpLWljb24sICMiK3AuaWQrIi5wbHVwbG9hZF9kb25lIC51aS1pY29uIikuY2xpY2soZnVuY3Rpb24ocil7ZygiIyIrcC5pZCkucmVtb3ZlKCk7ai5yZW1vdmVGaWxlKHApO3IucHJldmVudERlZmF1bHQoKX0pO2suX3RyaWdnZXIoInVwZGF0ZWxpc3QiLG51bGwsbSl9KTtpZihqLnRvdGFsLnF1ZXVlZD09PTApe2coIi51aS1idXR0b24tdGV4dCIsay5icm93c2VfYnV0dG9uKS50ZXh0KGIoIkFkZCBGaWxlcyIpKX1lbHNle2coIi51aS1idXR0b24tdGV4dCIsay5icm93c2VfYnV0dG9uKS50ZXh0KGIoIiVkIGZpbGVzIHF1ZXVlZCIpLnJlcGxhY2UoIiVkIixqLnRvdGFsLnF1ZXVlZCkpfWlmKGouZmlsZXMubGVuZ3RoPT09KGoudG90YWwudXBsb2FkZWQrai50b3RhbC5mYWlsZWQpKXtrLnN0YXJ0X2J1dHRvbi5idXR0b24oImRpc2FibGUiKX1lbHNle2suc3RhcnRfYnV0dG9uLmJ1dHRvbigiZW5hYmxlIil9bVswXS5zY3JvbGxUb3A9bVswXS5zY3JvbGxIZWlnaHQ7ay5fdXBkYXRlVG90YWxQcm9ncmVzcygpO2lmKCFqLmZpbGVzLmxlbmd0aCYmai5mZWF0dXJlcy5kcmFnZHJvcCYmai5zZXR0aW5ncy5kcmFnZHJvcCl7ZygiIyIrbysiX2ZpbGVsaXN0IikuYXBwZW5kKCc8dHI+PHRkIGNsYXNzPSJwbHVwbG9hZF9kcm9wdGV4dCI+JytiKCJEcmFnIGZpbGVzIGhlcmUuIikrIjwvdGQ+PC90cj4iKX1lbHNle2lmKGsub3B0aW9ucy5zb3J0YWJsZSYmZy51aS5zb3J0YWJsZSl7ay5fZW5hYmxlU29ydGluZ0xpc3QoKX19fSxfZW5hYmxlUmVuYW1pbmc6ZnVuY3Rpb24oKXt2YXIgaT10aGlzO2coIi5wbHVwbG9hZF9kZWxldGUgLnBsdXBsb2FkX2ZpbGVfbmFtZSBzcGFuIix0aGlzLmZpbGVsaXN0KS5saXZlKCJjbGljayIsZnVuY3Rpb24obyl7dmFyIG09ZyhvLnRhcmdldCksayxuLGosbD0iIjtrPWkudXBsb2FkZXIuZ2V0RmlsZShtLnBhcmVudHMoInRyIilbMF0uaWQpO2o9ay5uYW1lO249L14oLispKFwuW14uXSspJC8uZXhlYyhqKTtpZihuKXtqPW5bMV07bD1uWzJdfW0uaGlkZSgpLmFmdGVyKCc8aW5wdXQgY2xhc3M9InBsdXBsb2FkX2ZpbGVfcmVuYW1lIiB0eXBlPSJ0ZXh0IiAvPicpO20ubmV4dCgpLnZhbChqKS5mb2N1cygpLmJsdXIoZnVuY3Rpb24oKXttLnNob3coKS5uZXh0KCkucmVtb3ZlKCl9KS5rZXlkb3duKGZ1bmN0aW9uKHEpe3ZhciBwPWcodGhpcyk7aWYoZy5pbkFycmF5KHEua2V5Q29kZSxbMTMsMjddKSE9PS0xKXtxLnByZXZlbnREZWZhdWx0KCk7aWYocS5rZXlDb2RlPT09MTMpe2submFtZT1wLnZhbCgpK2w7bS50ZXh0KGsubmFtZSl9cC5ibHVyKCl9fSl9KX0sX2VuYWJsZURyYWdBbmREcm9wOmZ1bmN0aW9uKCl7dGhpcy5maWxlbGlzdC5hcHBlbmQoJzx0cj48dGQgY2xhc3M9InBsdXBsb2FkX2Ryb3B0ZXh0Ij4nK2IoIkRyYWcgZmlsZXMgaGVyZS4iKSsiPC90ZD48L3RyPiIpO3RoaXMuZmlsZWxpc3QucGFyZW50KCkuYXR0cigiaWQiLHRoaXMuaWQrIl9kcm9wYm94Iik7dGhpcy51cGxvYWRlci5zZXR0aW5ncy5kcm9wX2VsZW1lbnQ9dGhpcy5vcHRpb25zLmRyb3BfZWxlbWVudD10aGlzLmlkKyJfZHJvcGJveCJ9LF9lbmFibGVTb3J0aW5nTGlzdDpmdW5jdGlvbigpe3ZhciBqLGk9dGhpcztpZihnKCJ0Ym9keSB0ciIsdGhpcy5maWxlbGlzdCkubGVuZ3RoPDIpe3JldHVybn1nKCJ0Ym9keSIsdGhpcy5maWxlbGlzdCkuc29ydGFibGUoe2NvbnRhaW5tZW50OiJwYXJlbnQiLGl0ZW1zOiIucGx1cGxvYWRfZGVsZXRlIixoZWxwZXI6ZnVuY3Rpb24obCxrKXtyZXR1cm4gay5jbG9uZSh0cnVlKS5maW5kKCJ0ZDpub3QoLnBsdXBsb2FkX2ZpbGVfbmFtZSkiKS5yZW1vdmUoKS5lbmQoKS5jc3MoIndpZHRoIiwiMTAwJSIpfSxzdG9wOmZ1bmN0aW9uKHAsbyl7dmFyIGwsbixrLG09W107Zy5lYWNoKGcodGhpcykuc29ydGFibGUoInRvQXJyYXkiKSxmdW5jdGlvbihxLHIpe21bbS5sZW5ndGhdPWkudXBsb2FkZXIuZ2V0RmlsZShyKX0pO20udW5zaGlmdChtLmxlbmd0aCk7bS51bnNoaWZ0KDApO0FycmF5LnByb3RvdHlwZS5zcGxpY2UuYXBwbHkoaS51cGxvYWRlci5maWxlcyxtKX19KX0sbm90aWZ5OmZ1bmN0aW9uKGosayl7dmFyIGk9ZygnPGRpdiBjbGFzcz0icGx1cGxvYWRfbWVzc2FnZSI+PHNwYW4gY2xhc3M9InBsdXBsb2FkX21lc3NhZ2VfY2xvc2UgdWktaWNvbiB1aS1pY29uLWNpcmNsZS1jbG9zZSIgdGl0bGU9IicrYigiQ2xvc2UiKSsnIj48L3NwYW4+PHA+PHNwYW4gY2xhc3M9InVpLWljb24iPjwvc3Bhbj4nK2srIjwvcD48L2Rpdj4iKTtpLmFkZENsYXNzKCJ1aS1zdGF0ZS0iKyhqPT09ImVycm9yIj8iZXJyb3IiOiJoaWdobGlnaHQiKSkuZmluZCgicCAudWktaWNvbiIpLmFkZENsYXNzKCJ1aS1pY29uLSIrKGo9PT0iZXJyb3IiPyJhbGVydCI6ImluZm8iKSkuZW5kKCkuZmluZCgiLnBsdXBsb2FkX21lc3NhZ2VfY2xvc2UiKS5jbGljayhmdW5jdGlvbigpe2kucmVtb3ZlKCl9KS5lbmQoKTtnKCIucGx1cGxvYWRfaGVhZGVyX2NvbnRlbnQiLHRoaXMuY29udGFpbmVyKS5hcHBlbmQoaSl9LGRlc3Ryb3k6ZnVuY3Rpb24oKXtnKCIucGx1cGxvYWRfYnV0dG9uIix0aGlzLmVsZW1lbnQpLnVuYmluZCgpO2lmKGcudWkuYnV0dG9uKXtnKCIucGx1cGxvYWRfYWRkLCAucGx1cGxvYWRfc3RhcnQsIC5wbHVwbG9hZF9zdG9wIix0aGlzLmNvbnRhaW5lcikuYnV0dG9uKCJkZXN0cm95Iil9aWYoZy51aS5wcm9ncmVzc2Jhcil7dGhpcy5wcm9ncmVzc2Jhci5wcm9ncmVzc2JhcigiZGVzdHJveSIpfWlmKGcudWkuc29ydGFibGUmJnRoaXMub3B0aW9ucy5zb3J0YWJsZSl7ZygidGJvZHkiLHRoaXMuZmlsZWxpc3QpLnNvcnRhYmxlKCJkZXN0cm95Iil9dGhpcy51cGxvYWRlci5kZXN0cm95KCk7dGhpcy5lbGVtZW50LmVtcHR5KCkuaHRtbCh0aGlzLmNvbnRlbnRzX2Jhayk7dGhpcy5jb250ZW50c19iYWs9IiI7Zy5XaWRnZXQucHJvdG90eXBlLmRlc3Ryb3kuYXBwbHkodGhpcyl9fSl9KHdpbmRvdyxkb2N1bWVudCxwbHVwbG9hZCxqUXVlcnkpKTs=]]></data>
	</file>
	<file>
	  <filename>/js/plupload/plupload.browserplus.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[KGZ1bmN0aW9uKGEpe2EucnVudGltZXMuQnJvd3NlclBsdXM9YS5hZGRSdW50aW1lKCJicm93c2VycGx1cyIse2dldEZlYXR1cmVzOmZ1bmN0aW9uKCl7cmV0dXJue2RyYWdkcm9wOnRydWUsanBncmVzaXplOnRydWUscG5ncmVzaXplOnRydWUsY2h1bmtzOnRydWUscHJvZ3Jlc3M6dHJ1ZSxtdWx0aXBhcnQ6dHJ1ZSxtdWx0aV9zZWxlY3Rpb246dHJ1ZX19LGluaXQ6ZnVuY3Rpb24oZyxpKXt2YXIgZT13aW5kb3cuQnJvd3NlclBsdXMsaD17fSxkPWcuc2V0dGluZ3MsYz1kLnJlc2l6ZTtmdW5jdGlvbiBmKG4pe3ZhciBtLGwsaj1bXSxrLG87Zm9yKGw9MDtsPG4ubGVuZ3RoO2wrKyl7az1uW2xdO289YS5ndWlkKCk7aFtvXT1rO2oucHVzaChuZXcgYS5GaWxlKG8say5uYW1lLGsuc2l6ZSkpfWlmKGwpe2cudHJpZ2dlcigiRmlsZXNBZGRlZCIsail9fWZ1bmN0aW9uIGIoKXt2YXIgaj1mYWxzZTtnLmJpbmQoIlBvc3RJbml0IixmdW5jdGlvbigpe3ZhciBuLGw9ZC5kcm9wX2VsZW1lbnQscD1nLmlkKyJfZHJvcHRhcmdldCIsaz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChsKSxtO2Z1bmN0aW9uIHEocyxyKXtlLkRyYWdBbmREcm9wLkFkZERyb3BUYXJnZXQoe2lkOnN9LGZ1bmN0aW9uKHQpe2UuRHJhZ0FuZERyb3AuQXR0YWNoQ2FsbGJhY2tzKHtpZDpzLGhvdmVyOmZ1bmN0aW9uKHUpe2lmKCF1JiZyKXtyKCl9fSxkcm9wOmZ1bmN0aW9uKHUpe2lmKHIpe3IoKX1mKHUpfX0sZnVuY3Rpb24oKXt9KX0pfWZ1bmN0aW9uIG8oKXtkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwKS5zdHlsZS50b3A9Ii0xMDAwcHgifWlmKGspe2lmKGRvY3VtZW50LmF0dGFjaEV2ZW50JiYoL01TSUUvZ2kpLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpe249ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bi5zZXRBdHRyaWJ1dGUoImlkIixwKTthLmV4dGVuZChuLnN0eWxlLHtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDoiLTEwMDBweCIsYmFja2dyb3VuZDoicmVkIixmaWx0ZXI6ImFscGhhKG9wYWNpdHk9MCkiLG9wYWNpdHk6MH0pO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobik7YS5hZGRFdmVudChrLCJkcmFnZW50ZXIiLGZ1bmN0aW9uKHMpe3ZhciByLHQ7cj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChsKTt0PWEuZ2V0UG9zKHIpO2EuZXh0ZW5kKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHApLnN0eWxlLHt0b3A6dC55KyJweCIsbGVmdDp0LngrInB4Iix3aWR0aDpyLm9mZnNldFdpZHRoKyJweCIsaGVpZ2h0OnIub2Zmc2V0SGVpZ2h0KyJweCJ9KX0pO3EocCxvKX1lbHNle3EobCl9fWEuYWRkRXZlbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZC5icm93c2VfYnV0dG9uKSwiY2xpY2siLGZ1bmN0aW9uKHgpe3ZhciByPVtdLHQscyx3PWQuZmlsdGVycyx2LHU7eC5wcmV2ZW50RGVmYXVsdCgpO2lmKGope3JldHVybn1ub190eXBlX3Jlc3RyaWN0aW9uOmZvcih0PTA7dDx3Lmxlbmd0aDt0Kyspe3Y9d1t0XS5leHRlbnNpb25zLnNwbGl0KCIsIik7Zm9yKHM9MDtzPHYubGVuZ3RoO3MrKyl7aWYodltzXT09PSIqIil7cj1bXTticmVhayBub190eXBlX3Jlc3RyaWN0aW9ufXU9YS5taW1lVHlwZXNbdltzXV07aWYodSYmYS5pbkFycmF5KHUscik9PT0tMSl7ci5wdXNoKGEubWltZXNbdltzXV0pfX19ZS5GaWxlQnJvd3NlLk9wZW5Ccm93c2VEaWFsb2coe21pbWVUeXBlczpyfSxmdW5jdGlvbih5KXtpZih5LnN1Y2Nlc3Mpe2YoeS52YWx1ZSl9fSl9KTtrPW49bnVsbH0pO2cuYmluZCgiQ2FuY2VsVXBsb2FkIixmdW5jdGlvbigpe2UuVXBsb2FkZXIuY2FuY2VsKCl9KTtnLmJpbmQoIkRpc2FibGVCcm93c2UiLGZ1bmN0aW9uKGssbCl7aj1sfSk7Zy5iaW5kKCJVcGxvYWRGaWxlIixmdW5jdGlvbihuLGspe3ZhciBtPWhbay5pZF0scz17fSxsPW4uc2V0dGluZ3MuY2h1bmtfc2l6ZSxvLHA9W107ZnVuY3Rpb24gcih0LHYpe3ZhciB1O2lmKGsuc3RhdHVzPT1hLkZBSUxFRCl7cmV0dXJufXMubmFtZT1rLnRhcmdldF9uYW1lfHxrLm5hbWU7aWYobCl7cy5jaHVuaz0iIit0O3MuY2h1bmtzPSIiK3Z9dT1wLnNoaWZ0KCk7ZS5VcGxvYWRlci51cGxvYWQoe3VybDpuLnNldHRpbmdzLnVybCxmaWxlczp7ZmlsZTp1fSxjb29raWVzOmRvY3VtZW50LmNvb2tpZXMscG9zdHZhcnM6YS5leHRlbmQocyxuLnNldHRpbmdzLm11bHRpcGFydF9wYXJhbXMpLHByb2dyZXNzQ2FsbGJhY2s6ZnVuY3Rpb24oeSl7dmFyIHgsdz0wO29bdF09cGFyc2VJbnQoeS5maWxlUGVyY2VudCp1LnNpemUvMTAwLDEwKTtmb3IoeD0wO3g8by5sZW5ndGg7eCsrKXt3Kz1vW3hdfWsubG9hZGVkPXc7bi50cmlnZ2VyKCJVcGxvYWRQcm9ncmVzcyIsayl9fSxmdW5jdGlvbih4KXt2YXIgdyx5O2lmKHguc3VjY2Vzcyl7dz14LnZhbHVlLnN0YXR1c0NvZGU7aWYobCl7bi50cmlnZ2VyKCJDaHVua1VwbG9hZGVkIixrLHtjaHVuazp0LGNodW5rczp2LHJlc3BvbnNlOngudmFsdWUuYm9keSxzdGF0dXM6d30pfWlmKHAubGVuZ3RoPjApe3IoKyt0LHYpfWVsc2V7ay5zdGF0dXM9YS5ET05FO24udHJpZ2dlcigiRmlsZVVwbG9hZGVkIixrLHtyZXNwb25zZTp4LnZhbHVlLmJvZHksc3RhdHVzOnd9KTtpZih3Pj00MDApe24udHJpZ2dlcigiRXJyb3IiLHtjb2RlOmEuSFRUUF9FUlJPUixtZXNzYWdlOmEudHJhbnNsYXRlKCJIVFRQIEVycm9yLiIpLGZpbGU6ayxzdGF0dXM6d30pfX19ZWxzZXtuLnRyaWdnZXIoIkVycm9yIix7Y29kZTphLkdFTkVSSUNfRVJST1IsbWVzc2FnZTphLnRyYW5zbGF0ZSgiR2VuZXJpYyBFcnJvci4iKSxmaWxlOmssZGV0YWlsczp4LmVycm9yfSl9fSl9ZnVuY3Rpb24gcSh0KXtrLnNpemU9dC5zaXplO2lmKGwpe2UuRmlsZUFjY2Vzcy5jaHVuayh7ZmlsZTp0LGNodW5rU2l6ZTpsfSxmdW5jdGlvbih3KXtpZih3LnN1Y2Nlc3Mpe3ZhciB4PXcudmFsdWUsdT14Lmxlbmd0aDtvPUFycmF5KHUpO2Zvcih2YXIgdj0wO3Y8dTt2Kyspe29bdl09MDtwLnB1c2goeFt2XSl9cigwLHUpfX0pfWVsc2V7bz1BcnJheSgxKTtwLnB1c2godCk7cigwLDEpfX1pZihjJiYvXC4ocG5nfGpwZ3xqcGVnKSQvaS50ZXN0KGsubmFtZSkpe0Jyb3dzZXJQbHVzLkltYWdlQWx0ZXIudHJhbnNmb3JtKHtmaWxlOm0scXVhbGl0eTpjLnF1YWxpdHl8fDkwLGFjdGlvbnM6W3tzY2FsZTp7bWF4d2lkdGg6Yy53aWR0aCxtYXhoZWlnaHQ6Yy5oZWlnaHR9fV19LGZ1bmN0aW9uKHQpe2lmKHQuc3VjY2Vzcyl7cSh0LnZhbHVlLmZpbGUpfX0pfWVsc2V7cShtKX19KTtpKHtzdWNjZXNzOnRydWV9KX1pZihlKXtlLmluaXQoZnVuY3Rpb24oayl7dmFyIGo9W3tzZXJ2aWNlOiJVcGxvYWRlciIsdmVyc2lvbjoiMyJ9LHtzZXJ2aWNlOiJEcmFnQW5kRHJvcCIsdmVyc2lvbjoiMSJ9LHtzZXJ2aWNlOiJGaWxlQnJvd3NlIix2ZXJzaW9uOiIxIn0se3NlcnZpY2U6IkZpbGVBY2Nlc3MiLHZlcnNpb246IjIifV07aWYoYyl7ai5wdXNoKHtzZXJ2aWNlOiJJbWFnZUFsdGVyIix2ZXJzaW9uOiI0In0pfWlmKGsuc3VjY2Vzcyl7ZS5yZXF1aXJlKHtzZXJ2aWNlczpqfSxmdW5jdGlvbihsKXtpZihsLnN1Y2Nlc3Mpe2IoKX1lbHNle2koKX19KX1lbHNle2koKX19KX1lbHNle2koKX19fSl9KShwbHVwbG9hZCk7]]></data>
	</file>
	<file>
	  <filename>/js/plupload/plupload.flash.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[KGZ1bmN0aW9uKGYsYixkLGUpe3ZhciBhPXt9LGc9e307ZnVuY3Rpb24gYygpe3ZhciBoO3RyeXtoPW5hdmlnYXRvci5wbHVnaW5zWyJTaG9ja3dhdmUgRmxhc2giXTtoPWguZGVzY3JpcHRpb259Y2F0Y2goail7dHJ5e2g9bmV3IEFjdGl2ZVhPYmplY3QoIlNob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZsYXNoIikuR2V0VmFyaWFibGUoIiR2ZXJzaW9uIil9Y2F0Y2goaSl7aD0iMC4wIn19aD1oLm1hdGNoKC9cZCsvZyk7cmV0dXJuIHBhcnNlRmxvYXQoaFswXSsiLiIraFsxXSl9ZC5mbGFzaD17dHJpZ2dlcjpmdW5jdGlvbihqLGgsaSl7c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBtPWFbal0sbCxrO2lmKG0pe20udHJpZ2dlcigiRmxhc2g6IitoLGkpfX0sMCl9fTtkLnJ1bnRpbWVzLkZsYXNoPWQuYWRkUnVudGltZSgiZmxhc2giLHtnZXRGZWF0dXJlczpmdW5jdGlvbigpe3JldHVybntqcGdyZXNpemU6dHJ1ZSxwbmdyZXNpemU6dHJ1ZSxtYXhXaWR0aDo4MDkxLG1heEhlaWdodDo4MDkxLGNodW5rczp0cnVlLHByb2dyZXNzOnRydWUsbXVsdGlwYXJ0OnRydWUsbXVsdGlfc2VsZWN0aW9uOnRydWV9fSxpbml0OmZ1bmN0aW9uKG0sbyl7dmFyIGssbCxoPTAsaT1iLmJvZHk7aWYoYygpPDEwKXtvKHtzdWNjZXNzOmZhbHNlfSk7cmV0dXJufWdbbS5pZF09ZmFsc2U7YVttLmlkXT1tO2s9Yi5nZXRFbGVtZW50QnlJZChtLnNldHRpbmdzLmJyb3dzZV9idXR0b24pO2w9Yi5jcmVhdGVFbGVtZW50KCJkaXYiKTtsLmlkPW0uaWQrIl9mbGFzaF9jb250YWluZXIiO2QuZXh0ZW5kKGwuc3R5bGUse3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOiIwcHgiLGJhY2tncm91bmQ6bS5zZXR0aW5ncy5zaGltX2JnY29sb3J8fCJ0cmFuc3BhcmVudCIsekluZGV4Ojk5OTk5LHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUifSk7bC5jbGFzc05hbWU9InBsdXBsb2FkIGZsYXNoIjtpZihtLnNldHRpbmdzLmNvbnRhaW5lcil7aT1iLmdldEVsZW1lbnRCeUlkKG0uc2V0dGluZ3MuY29udGFpbmVyKTtpZihkLmdldFN0eWxlKGksInBvc2l0aW9uIik9PT0ic3RhdGljIil7aS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUifX1pLmFwcGVuZENoaWxkKGwpOyhmdW5jdGlvbigpe3ZhciBwLHE7cD0nPG9iamVjdCBpZD0iJyttLmlkKydfZmxhc2giIHR5cGU9ImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIiBkYXRhPSInK20uc2V0dGluZ3MuZmxhc2hfc3dmX3VybCsnIiAnO2lmKGQudWEuaWUpe3ArPSdjbGFzc2lkPSJjbHNpZDpkMjdjZGI2ZS1hZTZkLTExY2YtOTZiOC00NDQ1NTM1NDAwMDAiICd9cCs9J3dpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJvdXRsaW5lOjAiPjxwYXJhbSBuYW1lPSJtb3ZpZSIgdmFsdWU9IicrbS5zZXR0aW5ncy5mbGFzaF9zd2ZfdXJsKyciIC8+PHBhcmFtIG5hbWU9ImZsYXNodmFycyIgdmFsdWU9ImlkPScrZXNjYXBlKG0uaWQpKyciIC8+PHBhcmFtIG5hbWU9Indtb2RlIiB2YWx1ZT0idHJhbnNwYXJlbnQiIC8+PHBhcmFtIG5hbWU9ImFsbG93c2NyaXB0YWNjZXNzIiB2YWx1ZT0iYWx3YXlzIiAvPjwvb2JqZWN0Pic7aWYoZC51YS5pZSl7cT1iLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2wuYXBwZW5kQ2hpbGQocSk7cS5vdXRlckhUTUw9cDtxPW51bGx9ZWxzZXtsLmlubmVySFRNTD1wfX0oKSk7ZnVuY3Rpb24gbigpe3JldHVybiBiLmdldEVsZW1lbnRCeUlkKG0uaWQrIl9mbGFzaCIpfWZ1bmN0aW9uIGooKXtpZihoKys+NTAwMCl7byh7c3VjY2VzczpmYWxzZX0pO3JldHVybn1pZighZ1ttLmlkXSl7c2V0VGltZW91dChqLDEpfX1qKCk7az1sPW51bGw7bS5iaW5kKCJGbGFzaDpJbml0IixmdW5jdGlvbigpe3ZhciBxPXt9LHA7bigpLnNldEZpbGVGaWx0ZXJzKG0uc2V0dGluZ3MuZmlsdGVycyxtLnNldHRpbmdzLm11bHRpX3NlbGVjdGlvbik7aWYoZ1ttLmlkXSl7cmV0dXJufWdbbS5pZF09dHJ1ZTttLmJpbmQoIlVwbG9hZEZpbGUiLGZ1bmN0aW9uKHIsdCl7dmFyIHU9ci5zZXR0aW5ncyxzPW0uc2V0dGluZ3MucmVzaXplfHx7fTtuKCkudXBsb2FkRmlsZShxW3QuaWRdLHUudXJsLHtuYW1lOnQudGFyZ2V0X25hbWV8fHQubmFtZSxtaW1lOmQubWltZVR5cGVzW3QubmFtZS5yZXBsYWNlKC9eLitcLihbXi5dKykvLCIkMSIpLnRvTG93ZXJDYXNlKCldfHwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIixjaHVua19zaXplOnUuY2h1bmtfc2l6ZSx3aWR0aDpzLndpZHRoLGhlaWdodDpzLmhlaWdodCxxdWFsaXR5OnMucXVhbGl0eSxtdWx0aXBhcnQ6dS5tdWx0aXBhcnQsbXVsdGlwYXJ0X3BhcmFtczp1Lm11bHRpcGFydF9wYXJhbXN8fHt9LGZpbGVfZGF0YV9uYW1lOnUuZmlsZV9kYXRhX25hbWUsZm9ybWF0Oi9cLihqcGd8anBlZykkL2kudGVzdCh0Lm5hbWUpPyJqcGciOiJwbmciLGhlYWRlcnM6dS5oZWFkZXJzLHVybHN0cmVhbV91cGxvYWQ6dS51cmxzdHJlYW1fdXBsb2FkfSl9KTttLmJpbmQoIkNhbmNlbFVwbG9hZCIsZnVuY3Rpb24oKXtuKCkuY2FuY2VsVXBsb2FkKCl9KTttLmJpbmQoIkZsYXNoOlVwbG9hZFByb2Nlc3MiLGZ1bmN0aW9uKHMscil7dmFyIHQ9cy5nZXRGaWxlKHFbci5pZF0pO2lmKHQuc3RhdHVzIT1kLkZBSUxFRCl7dC5sb2FkZWQ9ci5sb2FkZWQ7dC5zaXplPXIuc2l6ZTtzLnRyaWdnZXIoIlVwbG9hZFByb2dyZXNzIix0KX19KTttLmJpbmQoIkZsYXNoOlVwbG9hZENodW5rQ29tcGxldGUiLGZ1bmN0aW9uKHIsdCl7dmFyIHUscz1yLmdldEZpbGUocVt0LmlkXSk7dT17Y2h1bms6dC5jaHVuayxjaHVua3M6dC5jaHVua3MscmVzcG9uc2U6dC50ZXh0fTtyLnRyaWdnZXIoIkNodW5rVXBsb2FkZWQiLHMsdSk7aWYocy5zdGF0dXMhPT1kLkZBSUxFRCYmci5zdGF0ZSE9PWQuU1RPUFBFRCl7bigpLnVwbG9hZE5leHRDaHVuaygpfWlmKHQuY2h1bms9PXQuY2h1bmtzLTEpe3Muc3RhdHVzPWQuRE9ORTtyLnRyaWdnZXIoIkZpbGVVcGxvYWRlZCIscyx7cmVzcG9uc2U6dC50ZXh0fSl9fSk7bS5iaW5kKCJGbGFzaDpTZWxlY3RGaWxlcyIsZnVuY3Rpb24ocix1KXt2YXIgdCxzLHY9W10sdztmb3Iocz0wO3M8dS5sZW5ndGg7cysrKXt0PXVbc107dz1kLmd1aWQoKTtxW3ddPXQuaWQ7cVt0LmlkXT13O3YucHVzaChuZXcgZC5GaWxlKHcsdC5uYW1lLHQuc2l6ZSkpfWlmKHYubGVuZ3RoKXttLnRyaWdnZXIoIkZpbGVzQWRkZWQiLHYpfX0pO20uYmluZCgiRmxhc2g6U2VjdXJpdHlFcnJvciIsZnVuY3Rpb24ocixzKXttLnRyaWdnZXIoIkVycm9yIix7Y29kZTpkLlNFQ1VSSVRZX0VSUk9SLG1lc3NhZ2U6ZC50cmFuc2xhdGUoIlNlY3VyaXR5IGVycm9yLiIpLGRldGFpbHM6cy5tZXNzYWdlLGZpbGU6bS5nZXRGaWxlKHFbcy5pZF0pfSl9KTttLmJpbmQoIkZsYXNoOkdlbmVyaWNFcnJvciIsZnVuY3Rpb24ocixzKXttLnRyaWdnZXIoIkVycm9yIix7Y29kZTpkLkdFTkVSSUNfRVJST1IsbWVzc2FnZTpkLnRyYW5zbGF0ZSgiR2VuZXJpYyBlcnJvci4iKSxkZXRhaWxzOnMubWVzc2FnZSxmaWxlOm0uZ2V0RmlsZShxW3MuaWRdKX0pfSk7bS5iaW5kKCJGbGFzaDpJT0Vycm9yIixmdW5jdGlvbihyLHMpe20udHJpZ2dlcigiRXJyb3IiLHtjb2RlOmQuSU9fRVJST1IsbWVzc2FnZTpkLnRyYW5zbGF0ZSgiSU8gZXJyb3IuIiksZGV0YWlsczpzLm1lc3NhZ2UsZmlsZTptLmdldEZpbGUocVtzLmlkXSl9KX0pO20uYmluZCgiRmxhc2g6SW1hZ2VFcnJvciIsZnVuY3Rpb24ocixzKXttLnRyaWdnZXIoIkVycm9yIix7Y29kZTpwYXJzZUludChzLmNvZGUsMTApLG1lc3NhZ2U6ZC50cmFuc2xhdGUoIkltYWdlIGVycm9yLiIpLGZpbGU6bS5nZXRGaWxlKHFbcy5pZF0pfSl9KTttLmJpbmQoIkZsYXNoOlN0YWdlRXZlbnQ6cm9sbE92ZXIiLGZ1bmN0aW9uKHIpe3ZhciBzLHQ7cz1iLmdldEVsZW1lbnRCeUlkKG0uc2V0dGluZ3MuYnJvd3NlX2J1dHRvbik7dD1yLnNldHRpbmdzLmJyb3dzZV9idXR0b25faG92ZXI7aWYocyYmdCl7ZC5hZGRDbGFzcyhzLHQpfX0pO20uYmluZCgiRmxhc2g6U3RhZ2VFdmVudDpyb2xsT3V0IixmdW5jdGlvbihyKXt2YXIgcyx0O3M9Yi5nZXRFbGVtZW50QnlJZChtLnNldHRpbmdzLmJyb3dzZV9idXR0b24pO3Q9ci5zZXR0aW5ncy5icm93c2VfYnV0dG9uX2hvdmVyO2lmKHMmJnQpe2QucmVtb3ZlQ2xhc3Mocyx0KX19KTttLmJpbmQoIkZsYXNoOlN0YWdlRXZlbnQ6bW91c2VEb3duIixmdW5jdGlvbihyKXt2YXIgcyx0O3M9Yi5nZXRFbGVtZW50QnlJZChtLnNldHRpbmdzLmJyb3dzZV9idXR0b24pO3Q9ci5zZXR0aW5ncy5icm93c2VfYnV0dG9uX2FjdGl2ZTtpZihzJiZ0KXtkLmFkZENsYXNzKHMsdCk7ZC5hZGRFdmVudChiLmJvZHksIm1vdXNldXAiLGZ1bmN0aW9uKCl7ZC5yZW1vdmVDbGFzcyhzLHQpfSxyLmlkKX19KTttLmJpbmQoIkZsYXNoOlN0YWdlRXZlbnQ6bW91c2VVcCIsZnVuY3Rpb24ocil7dmFyIHMsdDtzPWIuZ2V0RWxlbWVudEJ5SWQobS5zZXR0aW5ncy5icm93c2VfYnV0dG9uKTt0PXIuc2V0dGluZ3MuYnJvd3NlX2J1dHRvbl9hY3RpdmU7aWYocyYmdCl7ZC5yZW1vdmVDbGFzcyhzLHQpfX0pO20uYmluZCgiRmxhc2g6RXhpZkRhdGEiLGZ1bmN0aW9uKHIscyl7bS50cmlnZ2VyKCJFeGlmRGF0YSIsbS5nZXRGaWxlKHFbcy5pZF0pLHMuZGF0YSl9KTttLmJpbmQoIkZsYXNoOkdwc0RhdGEiLGZ1bmN0aW9uKHIscyl7bS50cmlnZ2VyKCJHcHNEYXRhIixtLmdldEZpbGUocVtzLmlkXSkscy5kYXRhKX0pO20uYmluZCgiUXVldWVDaGFuZ2VkIixmdW5jdGlvbihyKXttLnJlZnJlc2goKX0pO20uYmluZCgiRmlsZXNSZW1vdmVkIixmdW5jdGlvbihyLHQpe3ZhciBzO2ZvcihzPTA7czx0Lmxlbmd0aDtzKyspe24oKS5yZW1vdmVGaWxlKHFbdFtzXS5pZF0pfX0pO20uYmluZCgiU3RhdGVDaGFuZ2VkIixmdW5jdGlvbihyKXttLnJlZnJlc2goKX0pO20uYmluZCgiUmVmcmVzaCIsZnVuY3Rpb24ocil7dmFyIHMsdCx1O24oKS5zZXRGaWxlRmlsdGVycyhtLnNldHRpbmdzLmZpbHRlcnMsbS5zZXR0aW5ncy5tdWx0aV9zZWxlY3Rpb24pO3M9Yi5nZXRFbGVtZW50QnlJZChyLnNldHRpbmdzLmJyb3dzZV9idXR0b24pO2lmKHMpe3Q9ZC5nZXRQb3MocyxiLmdldEVsZW1lbnRCeUlkKHIuc2V0dGluZ3MuY29udGFpbmVyKSk7dT1kLmdldFNpemUocyk7ZC5leHRlbmQoYi5nZXRFbGVtZW50QnlJZChyLmlkKyJfZmxhc2hfY29udGFpbmVyIikuc3R5bGUse3RvcDp0LnkrInB4IixsZWZ0OnQueCsicHgiLHdpZHRoOnUudysicHgiLGhlaWdodDp1LmgrInB4In0pfX0pO20uYmluZCgiRGlzYWJsZUJyb3dzZSIsZnVuY3Rpb24ocixzKXtuKCkuZGlzYWJsZUJyb3dzZShzKX0pO20uYmluZCgiRGVzdHJveSIsZnVuY3Rpb24ocil7dmFyIHM7ZC5yZW1vdmVBbGxFdmVudHMoYi5ib2R5LHIuaWQpO2RlbGV0ZSBnW3IuaWRdO2RlbGV0ZSBhW3IuaWRdO3M9Yi5nZXRFbGVtZW50QnlJZChyLmlkKyJfZmxhc2hfY29udGFpbmVyIik7aWYocyl7aS5yZW1vdmVDaGlsZChzKX19KTtvKHtzdWNjZXNzOnRydWV9KX0pfX0pfSkod2luZG93LGRvY3VtZW50LHBsdXBsb2FkKTs=]]></data>
	</file>
	<file>
	  <filename>/js/plupload/plupload.flash.swf</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/js/plupload/plupload.full.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoxLjUuMiovCihmdW5jdGlvbigpe3ZhciBmPTAsbD1bXSxuPXt9LGo9e30sYT17IjwiOiJsdCIsIj4iOiJndCIsIiYiOiJhbXAiLCciJzoicXVvdCIsIiciOiIjMzkifSxtPS9bPD4mXCJcJ10vZyxiLGM9d2luZG93LnNldFRpbWVvdXQsZD17fSxlO2Z1bmN0aW9uIGgoKXt0aGlzLnJldHVyblZhbHVlPWZhbHNlfWZ1bmN0aW9uIGsoKXt0aGlzLmNhbmNlbEJ1YmJsZT10cnVlfShmdW5jdGlvbihvKXt2YXIgcD1vLnNwbGl0KC8sLykscSxzLHI7Zm9yKHE9MDtxPHAubGVuZ3RoO3ErPTIpe3I9cFtxKzFdLnNwbGl0KC8gLyk7Zm9yKHM9MDtzPHIubGVuZ3RoO3MrKyl7altyW3NdXT1wW3FdfX19KSgiYXBwbGljYXRpb24vbXN3b3JkLGRvYyBkb3QsYXBwbGljYXRpb24vcGRmLHBkZixhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlLHBncCxhcHBsaWNhdGlvbi9wb3N0c2NyaXB0LHBzIGFpIGVwcyxhcHBsaWNhdGlvbi9ydGYscnRmLGFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCx4bHMgeGxiLGFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LHBwdCBwcHMgcG90LGFwcGxpY2F0aW9uL3ppcCx6aXAsYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2gsc3dmIHN3ZmwsYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQsZG9jeCxhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC50ZW1wbGF0ZSxkb3R4LGFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0LHhsc3gsYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbixwcHR4LGFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC50ZW1wbGF0ZSxwb3R4LGFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZXNob3cscHBzeCxhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQsanMsYXBwbGljYXRpb24vanNvbixqc29uLGF1ZGlvL21wZWcsbXBnYSBtcGVnYSBtcDIgbXAzLGF1ZGlvL3gtd2F2LHdhdixhdWRpby9tcDQsbTRhLGltYWdlL2JtcCxibXAsaW1hZ2UvZ2lmLGdpZixpbWFnZS9qcGVnLGpwZWcganBnIGpwZSxpbWFnZS9waG90b3Nob3AscHNkLGltYWdlL3BuZyxwbmcsaW1hZ2Uvc3ZnK3htbCxzdmcgc3ZneixpbWFnZS90aWZmLHRpZmYgdGlmLHRleHQvcGxhaW4sYXNjIHR4dCB0ZXh0IGRpZmYgbG9nLHRleHQvaHRtbCxodG0gaHRtbCB4aHRtbCx0ZXh0L2Nzcyxjc3MsdGV4dC9jc3YsY3N2LHRleHQvcnRmLHJ0Zix2aWRlby9tcGVnLG1wZWcgbXBnIG1wZSx2aWRlby9xdWlja3RpbWUscXQgbW92LHZpZGVvL21wNCxtcDQsdmlkZW8veC1tNHYsbTR2LHZpZGVvL3gtZmx2LGZsdix2aWRlby94LW1zLXdtdix3bXYsdmlkZW8vYXZpLGF2aSx2aWRlby93ZWJtLHdlYm0sdmlkZW8vdm5kLnJuLXJlYWx2aWRlbyxydixhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmZvcm11bGEtdGVtcGxhdGUsb3RmLGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSxleGUiKTt2YXIgZz17VkVSU0lPTjoiMS41LjIiLFNUT1BQRUQ6MSxTVEFSVEVEOjIsUVVFVUVEOjEsVVBMT0FESU5HOjIsRkFJTEVEOjQsRE9ORTo1LEdFTkVSSUNfRVJST1I6LTEwMCxIVFRQX0VSUk9SOi0yMDAsSU9fRVJST1I6LTMwMCxTRUNVUklUWV9FUlJPUjotNDAwLElOSVRfRVJST1I6LTUwMCxGSUxFX1NJWkVfRVJST1I6LTYwMCxGSUxFX0VYVEVOU0lPTl9FUlJPUjotNjAxLElNQUdFX0ZPUk1BVF9FUlJPUjotNzAwLElNQUdFX01FTU9SWV9FUlJPUjotNzAxLElNQUdFX0RJTUVOU0lPTlNfRVJST1I6LTcwMixtaW1lVHlwZXM6aix1YTooZnVuY3Rpb24oKXt2YXIgcz1uYXZpZ2F0b3Iscj1zLnVzZXJBZ2VudCx0PXMudmVuZG9yLHAsbyxxO3A9L1dlYktpdC8udGVzdChyKTtxPXAmJnQuaW5kZXhPZigiQXBwbGUiKSE9PS0xO289d2luZG93Lm9wZXJhJiZ3aW5kb3cub3BlcmEuYnVpbGROdW1iZXI7cmV0dXJue3dpbmRvd3M6bmF2aWdhdG9yLnBsYXRmb3JtLmluZGV4T2YoIldpbiIpIT09LTEsaWU6IXAmJiFvJiYoL01TSUUvZ2kpLnRlc3QocikmJigvRXhwbG9yZXIvZ2kpLnRlc3Qocy5hcHBOYW1lKSx3ZWJraXQ6cCxnZWNrbzohcCYmL0dlY2tvLy50ZXN0KHIpLHNhZmFyaTpxLG9wZXJhOiEhb319KCkpLHR5cGVPZjpmdW5jdGlvbihwKXtyZXR1cm4oe30pLnRvU3RyaW5nLmNhbGwocCkubWF0Y2goL1xzKFthLXp8QS1aXSspLylbMV0udG9Mb3dlckNhc2UoKX0sZXh0ZW5kOmZ1bmN0aW9uKG8pe2cuZWFjaChhcmd1bWVudHMsZnVuY3Rpb24ocCxxKXtpZihxPjApe2cuZWFjaChwLGZ1bmN0aW9uKHMscil7b1tyXT1zfSl9fSk7cmV0dXJuIG99LGNsZWFuTmFtZTpmdW5jdGlvbihvKXt2YXIgcCxxO3E9Wy9bXDMwMC1cMzA2XS9nLCJBIiwvW1wzNDAtXDM0Nl0vZywiYSIsL1wzMDcvZywiQyIsL1wzNDcvZywiYyIsL1tcMzEwLVwzMTNdL2csIkUiLC9bXDM1MC1cMzUzXS9nLCJlIiwvW1wzMTQtXDMxN10vZywiSSIsL1tcMzU0LVwzNTddL2csImkiLC9cMzIxL2csIk4iLC9cMzYxL2csIm4iLC9bXDMyMi1cMzMwXS9nLCJPIiwvW1wzNjItXDM3MF0vZywibyIsL1tcMzMxLVwzMzRdL2csIlUiLC9bXDM3MS1cMzc0XS9nLCJ1Il07Zm9yKHA9MDtwPHEubGVuZ3RoO3ArPTIpe289by5yZXBsYWNlKHFbcF0scVtwKzFdKX1vPW8ucmVwbGFjZSgvXHMrL2csIl8iKTtvPW8ucmVwbGFjZSgvW15hLXowLTlfXC1cLl0rL2dpLCIiKTtyZXR1cm4gb30sYWRkUnVudGltZTpmdW5jdGlvbihvLHApe3AubmFtZT1vO2xbb109cDtsLnB1c2gocCk7cmV0dXJuIHB9LGd1aWQ6ZnVuY3Rpb24oKXt2YXIgbz1uZXcgRGF0ZSgpLmdldFRpbWUoKS50b1N0cmluZygzMikscDtmb3IocD0wO3A8NTtwKyspe28rPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSo2NTUzNSkudG9TdHJpbmcoMzIpfXJldHVybihnLmd1aWRQcmVmaXh8fCJwIikrbysoZisrKS50b1N0cmluZygzMil9LGJ1aWxkVXJsOmZ1bmN0aW9uKHAsbyl7dmFyIHE9IiI7Zy5lYWNoKG8sZnVuY3Rpb24ocyxyKXtxKz0ocT8iJiI6IiIpK2VuY29kZVVSSUNvbXBvbmVudChyKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KHMpfSk7aWYocSl7cCs9KHAuaW5kZXhPZigiPyIpPjA/IiYiOiI/IikrcX1yZXR1cm4gcH0sZWFjaDpmdW5jdGlvbihyLHMpe3ZhciBxLHAsbztpZihyKXtxPXIubGVuZ3RoO2lmKHE9PT1iKXtmb3IocCBpbiByKXtpZihyLmhhc093blByb3BlcnR5KHApKXtpZihzKHJbcF0scCk9PT1mYWxzZSl7cmV0dXJufX19fWVsc2V7Zm9yKG89MDtvPHE7bysrKXtpZihzKHJbb10sbyk9PT1mYWxzZSl7cmV0dXJufX19fX0sZm9ybWF0U2l6ZTpmdW5jdGlvbihvKXtpZihvPT09Ynx8L1xELy50ZXN0KG8pKXtyZXR1cm4gZy50cmFuc2xhdGUoIk4vQSIpfWlmKG8+MTA3Mzc0MTgyNCl7cmV0dXJuIE1hdGgucm91bmQoby8xMDczNzQxODI0LDEpKyIgR0IifWlmKG8+MTA0ODU3Nil7cmV0dXJuIE1hdGgucm91bmQoby8xMDQ4NTc2LDEpKyIgTUIifWlmKG8+MTAyNCl7cmV0dXJuIE1hdGgucm91bmQoby8xMDI0LDEpKyIgS0IifXJldHVybiBvKyIgYiJ9LGdldFBvczpmdW5jdGlvbihwLHQpe3ZhciB1PTAscz0wLHcsdj1kb2N1bWVudCxxLHI7cD1wO3Q9dHx8di5ib2R5O2Z1bmN0aW9uIG8oQyl7dmFyIEEsQix6PTAsRD0wO2lmKEMpe0I9Qy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtBPXYuY29tcGF0TW9kZT09PSJDU1MxQ29tcGF0Ij92LmRvY3VtZW50RWxlbWVudDp2LmJvZHk7ej1CLmxlZnQrQS5zY3JvbGxMZWZ0O0Q9Qi50b3ArQS5zY3JvbGxUb3B9cmV0dXJue3g6eix5OkR9fWlmKHAmJnAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0JiYobmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNU0lFIik+MCYmdi5kb2N1bWVudE1vZGUhPT04KSl7cT1vKHApO3I9byh0KTtyZXR1cm57eDpxLngtci54LHk6cS55LXIueX19dz1wO3doaWxlKHcmJnchPXQmJncubm9kZVR5cGUpe3UrPXcub2Zmc2V0TGVmdHx8MDtzKz13Lm9mZnNldFRvcHx8MDt3PXcub2Zmc2V0UGFyZW50fXc9cC5wYXJlbnROb2RlO3doaWxlKHcmJnchPXQmJncubm9kZVR5cGUpe3UtPXcuc2Nyb2xsTGVmdHx8MDtzLT13LnNjcm9sbFRvcHx8MDt3PXcucGFyZW50Tm9kZX1yZXR1cm57eDp1LHk6c319LGdldFNpemU6ZnVuY3Rpb24obyl7cmV0dXJue3c6by5vZmZzZXRXaWR0aHx8by5jbGllbnRXaWR0aCxoOm8ub2Zmc2V0SGVpZ2h0fHxvLmNsaWVudEhlaWdodH19LHBhcnNlU2l6ZTpmdW5jdGlvbihvKXt2YXIgcDtpZih0eXBlb2Yobyk9PSJzdHJpbmciKXtvPS9eKFswLTldKykoW21na10/KSQvLmV4ZWMoby50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1teMC05bWtnXS9nLCIiKSk7cD1vWzJdO289K29bMV07aWYocD09ImciKXtvKj0xMDczNzQxODI0fWlmKHA9PSJtIil7byo9MTA0ODU3Nn1pZihwPT0iayIpe28qPTEwMjR9fXJldHVybiBvfSx4bWxFbmNvZGU6ZnVuY3Rpb24obyl7cmV0dXJuIG8/KCIiK28pLnJlcGxhY2UobSxmdW5jdGlvbihwKXtyZXR1cm4gYVtwXT8iJiIrYVtwXSsiOyI6cH0pOm99LHRvQXJyYXk6ZnVuY3Rpb24ocSl7dmFyIHAsbz1bXTtmb3IocD0wO3A8cS5sZW5ndGg7cCsrKXtvW3BdPXFbcF19cmV0dXJuIG99LGluQXJyYXk6ZnVuY3Rpb24ocSxyKXtpZihyKXtpZihBcnJheS5wcm90b3R5cGUuaW5kZXhPZil7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwocixxKX1mb3IodmFyIG89MCxwPXIubGVuZ3RoO288cDtvKyspe2lmKHJbb109PT1xKXtyZXR1cm4gb319fXJldHVybiAtMX0sYWRkSTE4bjpmdW5jdGlvbihvKXtyZXR1cm4gZy5leHRlbmQobixvKX0sdHJhbnNsYXRlOmZ1bmN0aW9uKG8pe3JldHVybiBuW29dfHxvfSxpc0VtcHR5T2JqOmZ1bmN0aW9uKG8pe2lmKG89PT1iKXtyZXR1cm4gdHJ1ZX1mb3IodmFyIHAgaW4gbyl7cmV0dXJuIGZhbHNlfXJldHVybiB0cnVlfSxoYXNDbGFzczpmdW5jdGlvbihxLHApe3ZhciBvO2lmKHEuY2xhc3NOYW1lPT0iIil7cmV0dXJuIGZhbHNlfW89bmV3IFJlZ0V4cCgiKF58XFxzKykiK3ArIihcXHMrfCQpIik7cmV0dXJuIG8udGVzdChxLmNsYXNzTmFtZSl9LGFkZENsYXNzOmZ1bmN0aW9uKHAsbyl7aWYoIWcuaGFzQ2xhc3MocCxvKSl7cC5jbGFzc05hbWU9cC5jbGFzc05hbWU9PSIiP286cC5jbGFzc05hbWUucmVwbGFjZSgvXHMrJC8sIiIpKyIgIitvfX0scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24ocSxwKXt2YXIgbz1uZXcgUmVnRXhwKCIoXnxcXHMrKSIrcCsiKFxccyt8JCkiKTtxLmNsYXNzTmFtZT1xLmNsYXNzTmFtZS5yZXBsYWNlKG8sZnVuY3Rpb24ocyxyLHQpe3JldHVybiByPT09IiAiJiZ0PT09IiAiPyIgIjoiIn0pfSxnZXRTdHlsZTpmdW5jdGlvbihwLG8pe2lmKHAuY3VycmVudFN0eWxlKXtyZXR1cm4gcC5jdXJyZW50U3R5bGVbb119ZWxzZXtpZih3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSl7cmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHAsbnVsbClbb119fX0sYWRkRXZlbnQ6ZnVuY3Rpb24odCxvLHUpe3ZhciBzLHIscSxwO3A9YXJndW1lbnRzWzNdO289by50b0xvd2VyQ2FzZSgpO2lmKGU9PT1iKXtlPSJQbHVwbG9hZF8iK2cuZ3VpZCgpfWlmKHQuYWRkRXZlbnRMaXN0ZW5lcil7cz11O3QuYWRkRXZlbnRMaXN0ZW5lcihvLHMsZmFsc2UpfWVsc2V7aWYodC5hdHRhY2hFdmVudCl7cz1mdW5jdGlvbigpe3ZhciB2PXdpbmRvdy5ldmVudDtpZighdi50YXJnZXQpe3YudGFyZ2V0PXYuc3JjRWxlbWVudH12LnByZXZlbnREZWZhdWx0PWg7di5zdG9wUHJvcGFnYXRpb249azt1KHYpfTt0LmF0dGFjaEV2ZW50KCJvbiIrbyxzKX19aWYodFtlXT09PWIpe3RbZV09Zy5ndWlkKCl9aWYoIWQuaGFzT3duUHJvcGVydHkodFtlXSkpe2RbdFtlXV09e319cj1kW3RbZV1dO2lmKCFyLmhhc093blByb3BlcnR5KG8pKXtyW29dPVtdfXJbb10ucHVzaCh7ZnVuYzpzLG9yaWc6dSxrZXk6cH0pfSxyZW1vdmVFdmVudDpmdW5jdGlvbih0LG8pe3ZhciByLHUscTtpZih0eXBlb2YoYXJndW1lbnRzWzJdKT09ImZ1bmN0aW9uIil7dT1hcmd1bWVudHNbMl19ZWxzZXtxPWFyZ3VtZW50c1syXX1vPW8udG9Mb3dlckNhc2UoKTtpZih0W2VdJiZkW3RbZV1dJiZkW3RbZV1dW29dKXtyPWRbdFtlXV1bb119ZWxzZXtyZXR1cm59Zm9yKHZhciBwPXIubGVuZ3RoLTE7cD49MDtwLS0pe2lmKHJbcF0ua2V5PT09cXx8cltwXS5vcmlnPT09dSl7aWYodC5kZXRhY2hFdmVudCl7dC5kZXRhY2hFdmVudCgib24iK28scltwXS5mdW5jKX1lbHNle2lmKHQucmVtb3ZlRXZlbnRMaXN0ZW5lcil7dC5yZW1vdmVFdmVudExpc3RlbmVyKG8scltwXS5mdW5jLGZhbHNlKX19cltwXS5vcmlnPW51bGw7cltwXS5mdW5jPW51bGw7ci5zcGxpY2UocCwxKTtpZih1IT09Yil7YnJlYWt9fX1pZighci5sZW5ndGgpe2RlbGV0ZSBkW3RbZV1dW29dfWlmKGcuaXNFbXB0eU9iaihkW3RbZV1dKSl7ZGVsZXRlIGRbdFtlXV07dHJ5e2RlbGV0ZSB0W2VdfWNhdGNoKHMpe3RbZV09Yn19fSxyZW1vdmVBbGxFdmVudHM6ZnVuY3Rpb24ocCl7dmFyIG89YXJndW1lbnRzWzFdO2lmKHBbZV09PT1ifHwhcFtlXSl7cmV0dXJufWcuZWFjaChkW3BbZV1dLGZ1bmN0aW9uKHIscSl7Zy5yZW1vdmVFdmVudChwLHEsbyl9KX19O2cuVXBsb2FkZXI9ZnVuY3Rpb24ocyl7dmFyIHA9e30sdix1PVtdLHIscT1mYWxzZTt2PW5ldyBnLlF1ZXVlUHJvZ3Jlc3MoKTtzPWcuZXh0ZW5kKHtjaHVua19zaXplOjAsbXVsdGlwYXJ0OnRydWUsbXVsdGlfc2VsZWN0aW9uOnRydWUsZmlsZV9kYXRhX25hbWU6ImZpbGUiLGZpbHRlcnM6W119LHMpO2Z1bmN0aW9uIHQoKXt2YXIgeCx5PTAsdztpZih0aGlzLnN0YXRlPT1nLlNUQVJURUQpe2Zvcih3PTA7dzx1Lmxlbmd0aDt3Kyspe2lmKCF4JiZ1W3ddLnN0YXR1cz09Zy5RVUVVRUQpe3g9dVt3XTt4LnN0YXR1cz1nLlVQTE9BRElORztpZih0aGlzLnRyaWdnZXIoIkJlZm9yZVVwbG9hZCIseCkpe3RoaXMudHJpZ2dlcigiVXBsb2FkRmlsZSIseCl9fWVsc2V7eSsrfX1pZih5PT11Lmxlbmd0aCl7dGhpcy5zdG9wKCk7dGhpcy50cmlnZ2VyKCJVcGxvYWRDb21wbGV0ZSIsdSl9fX1mdW5jdGlvbiBvKCl7dmFyIHgsdzt2LnJlc2V0KCk7Zm9yKHg9MDt4PHUubGVuZ3RoO3grKyl7dz11W3hdO2lmKHcuc2l6ZSE9PWIpe3Yuc2l6ZSs9dy5zaXplO3YubG9hZGVkKz13LmxvYWRlZH1lbHNle3Yuc2l6ZT1ifWlmKHcuc3RhdHVzPT1nLkRPTkUpe3YudXBsb2FkZWQrK31lbHNle2lmKHcuc3RhdHVzPT1nLkZBSUxFRCl7di5mYWlsZWQrK31lbHNle3YucXVldWVkKyt9fX1pZih2LnNpemU9PT1iKXt2LnBlcmNlbnQ9dS5sZW5ndGg+MD9NYXRoLmNlaWwodi51cGxvYWRlZC91Lmxlbmd0aCoxMDApOjB9ZWxzZXt2LmJ5dGVzUGVyU2VjPU1hdGguY2VpbCh2LmxvYWRlZC8oKCtuZXcgRGF0ZSgpLXJ8fDEpLzEwMDApKTt2LnBlcmNlbnQ9di5zaXplPjA/TWF0aC5jZWlsKHYubG9hZGVkL3Yuc2l6ZSoxMDApOjB9fWcuZXh0ZW5kKHRoaXMse3N0YXRlOmcuU1RPUFBFRCxydW50aW1lOiIiLGZlYXR1cmVzOnt9LGZpbGVzOnUsc2V0dGluZ3M6cyx0b3RhbDp2LGlkOmcuZ3VpZCgpLGluaXQ6ZnVuY3Rpb24oKXt2YXIgQj10aGlzLEMseSx4LEE9MCx6O2lmKHR5cGVvZihzLnByZWluaXQpPT0iZnVuY3Rpb24iKXtzLnByZWluaXQoQil9ZWxzZXtnLmVhY2gocy5wcmVpbml0LGZ1bmN0aW9uKEUsRCl7Qi5iaW5kKEQsRSl9KX1zLnBhZ2VfdXJsPXMucGFnZV91cmx8fGRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLnJlcGxhY2UoL1wvW15cL10rJC9nLCIvIik7aWYoIS9eKFx3KzpcL1wvfFwvKS8udGVzdChzLnVybCkpe3MudXJsPXMucGFnZV91cmwrcy51cmx9cy5jaHVua19zaXplPWcucGFyc2VTaXplKHMuY2h1bmtfc2l6ZSk7cy5tYXhfZmlsZV9zaXplPWcucGFyc2VTaXplKHMubWF4X2ZpbGVfc2l6ZSk7Qi5iaW5kKCJGaWxlc0FkZGVkIixmdW5jdGlvbihELEcpe3ZhciBGLEUsST0wLEosSD1zLmZpbHRlcnM7aWYoSCYmSC5sZW5ndGgpe0o9W107Zy5lYWNoKEgsZnVuY3Rpb24oSyl7Zy5lYWNoKEsuZXh0ZW5zaW9ucy5zcGxpdCgvLC8pLGZ1bmN0aW9uKEwpe2lmKC9eXHMqXCpccyokLy50ZXN0KEwpKXtKLnB1c2goIlxcLioiKX1lbHNle0oucHVzaCgiXFwuIitMLnJlcGxhY2UobmV3IFJlZ0V4cCgiWyIrKCIvXiQuKis/fCgpW117fVxcIi5yZXBsYWNlKC8uL2csIlxcJCYiKSkrIl0iLCJnIiksIlxcJCYiKSl9fSl9KTtKPW5ldyBSZWdFeHAoSi5qb2luKCJ8IikrIiQiLCJpIil9Zm9yKEY9MDtGPEcubGVuZ3RoO0YrKyl7RT1HW0ZdO0UubG9hZGVkPTA7RS5wZXJjZW50PTA7RS5zdGF0dXM9Zy5RVUVVRUQ7aWYoSiYmIUoudGVzdChFLm5hbWUpKXtELnRyaWdnZXIoIkVycm9yIix7Y29kZTpnLkZJTEVfRVhURU5TSU9OX0VSUk9SLG1lc3NhZ2U6Zy50cmFuc2xhdGUoIkZpbGUgZXh0ZW5zaW9uIGVycm9yLiIpLGZpbGU6RX0pO2NvbnRpbnVlfWlmKEUuc2l6ZSE9PWImJkUuc2l6ZT5zLm1heF9maWxlX3NpemUpe0QudHJpZ2dlcigiRXJyb3IiLHtjb2RlOmcuRklMRV9TSVpFX0VSUk9SLG1lc3NhZ2U6Zy50cmFuc2xhdGUoIkZpbGUgc2l6ZSBlcnJvci4iKSxmaWxlOkV9KTtjb250aW51ZX11LnB1c2goRSk7SSsrfWlmKEkpe2MoZnVuY3Rpb24oKXtCLnRyaWdnZXIoIlF1ZXVlQ2hhbmdlZCIpO0IucmVmcmVzaCgpfSwxKX1lbHNle3JldHVybiBmYWxzZX19KTtpZihzLnVuaXF1ZV9uYW1lcyl7Qi5iaW5kKCJVcGxvYWRGaWxlIixmdW5jdGlvbihELEUpe3ZhciBHPUUubmFtZS5tYXRjaCgvXC4oW14uXSspJC8pLEY9InRtcCI7aWYoRyl7Rj1HWzFdfUUudGFyZ2V0X25hbWU9RS5pZCsiLiIrRn0pfUIuYmluZCgiVXBsb2FkUHJvZ3Jlc3MiLGZ1bmN0aW9uKEQsRSl7RS5wZXJjZW50PUUuc2l6ZT4wP01hdGguY2VpbChFLmxvYWRlZC9FLnNpemUqMTAwKToxMDA7bygpfSk7Qi5iaW5kKCJTdGF0ZUNoYW5nZWQiLGZ1bmN0aW9uKEQpe2lmKEQuc3RhdGU9PWcuU1RBUlRFRCl7cj0oK25ldyBEYXRlKCkpfWVsc2V7aWYoRC5zdGF0ZT09Zy5TVE9QUEVEKXtmb3IoQz1ELmZpbGVzLmxlbmd0aC0xO0M+PTA7Qy0tKXtpZihELmZpbGVzW0NdLnN0YXR1cz09Zy5VUExPQURJTkcpe0QuZmlsZXNbQ10uc3RhdHVzPWcuUVVFVUVEO28oKX19fX19KTtCLmJpbmQoIlF1ZXVlQ2hhbmdlZCIsbyk7Qi5iaW5kKCJFcnJvciIsZnVuY3Rpb24oRCxFKXtpZihFLmZpbGUpe0UuZmlsZS5zdGF0dXM9Zy5GQUlMRUQ7bygpO2lmKEQuc3RhdGU9PWcuU1RBUlRFRCl7YyhmdW5jdGlvbigpe3QuY2FsbChCKX0sMSl9fX0pO0IuYmluZCgiRmlsZVVwbG9hZGVkIixmdW5jdGlvbihELEUpe0Uuc3RhdHVzPWcuRE9ORTtFLmxvYWRlZD1FLnNpemU7RC50cmlnZ2VyKCJVcGxvYWRQcm9ncmVzcyIsRSk7YyhmdW5jdGlvbigpe3QuY2FsbChCKX0sMSl9KTtpZihzLnJ1bnRpbWVzKXt5PVtdO3o9cy5ydW50aW1lcy5zcGxpdCgvXHM/LFxzPy8pO2ZvcihDPTA7Qzx6Lmxlbmd0aDtDKyspe2lmKGxbeltDXV0pe3kucHVzaChsW3pbQ11dKX19fWVsc2V7eT1sfWZ1bmN0aW9uIHcoKXt2YXIgRz15W0ErK10sRixELEU7aWYoRyl7Rj1HLmdldEZlYXR1cmVzKCk7RD1CLnNldHRpbmdzLnJlcXVpcmVkX2ZlYXR1cmVzO2lmKEQpe0Q9RC5zcGxpdCgiLCIpO2ZvcihFPTA7RTxELmxlbmd0aDtFKyspe2lmKCFGW0RbRV1dKXt3KCk7cmV0dXJufX19Ry5pbml0KEIsZnVuY3Rpb24oSCl7aWYoSCYmSC5zdWNjZXNzKXtCLmZlYXR1cmVzPUY7Qi5ydW50aW1lPUcubmFtZTtCLnRyaWdnZXIoIkluaXQiLHtydW50aW1lOkcubmFtZX0pO0IudHJpZ2dlcigiUG9zdEluaXQiKTtCLnJlZnJlc2goKX1lbHNle3coKX19KX1lbHNle0IudHJpZ2dlcigiRXJyb3IiLHtjb2RlOmcuSU5JVF9FUlJPUixtZXNzYWdlOmcudHJhbnNsYXRlKCJJbml0IGVycm9yLiIpfSl9fXcoKTtpZih0eXBlb2Yocy5pbml0KT09ImZ1bmN0aW9uIil7cy5pbml0KEIpfWVsc2V7Zy5lYWNoKHMuaW5pdCxmdW5jdGlvbihFLEQpe0IuYmluZChELEUpfSl9fSxyZWZyZXNoOmZ1bmN0aW9uKCl7dGhpcy50cmlnZ2VyKCJSZWZyZXNoIil9LHN0YXJ0OmZ1bmN0aW9uKCl7aWYodGhpcy5zdGF0ZSE9Zy5TVEFSVEVEKXt0aGlzLnN0YXRlPWcuU1RBUlRFRDt0aGlzLnRyaWdnZXIoIlN0YXRlQ2hhbmdlZCIpO3QuY2FsbCh0aGlzKX19LHN0b3A6ZnVuY3Rpb24oKXtpZih0aGlzLnN0YXRlIT1nLlNUT1BQRUQpe3RoaXMuc3RhdGU9Zy5TVE9QUEVEO3RoaXMudHJpZ2dlcigiQ2FuY2VsVXBsb2FkIik7dGhpcy50cmlnZ2VyKCJTdGF0ZUNoYW5nZWQiKX19LGRpc2FibGVCcm93c2U6ZnVuY3Rpb24oKXtxPWFyZ3VtZW50c1swXSE9PWI/YXJndW1lbnRzWzBdOnRydWU7dGhpcy50cmlnZ2VyKCJEaXNhYmxlQnJvd3NlIixxKX0sZ2V0RmlsZTpmdW5jdGlvbih4KXt2YXIgdztmb3Iodz11Lmxlbmd0aC0xO3c+PTA7dy0tKXtpZih1W3ddLmlkPT09eCl7cmV0dXJuIHVbd119fX0scmVtb3ZlRmlsZTpmdW5jdGlvbih4KXt2YXIgdztmb3Iodz11Lmxlbmd0aC0xO3c+PTA7dy0tKXtpZih1W3ddLmlkPT09eC5pZCl7cmV0dXJuIHRoaXMuc3BsaWNlKHcsMSlbMF19fX0sc3BsaWNlOmZ1bmN0aW9uKHksdyl7dmFyIHg7eD11LnNwbGljZSh5PT09Yj8wOnksdz09PWI/dS5sZW5ndGg6dyk7dGhpcy50cmlnZ2VyKCJGaWxlc1JlbW92ZWQiLHgpO3RoaXMudHJpZ2dlcigiUXVldWVDaGFuZ2VkIik7cmV0dXJuIHh9LHRyaWdnZXI6ZnVuY3Rpb24oeCl7dmFyIHo9cFt4LnRvTG93ZXJDYXNlKCldLHksdztpZih6KXt3PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7d1swXT10aGlzO2Zvcih5PTA7eTx6Lmxlbmd0aDt5Kyspe2lmKHpbeV0uZnVuYy5hcHBseSh6W3ldLnNjb3BlLHcpPT09ZmFsc2Upe3JldHVybiBmYWxzZX19fXJldHVybiB0cnVlfSxoYXNFdmVudExpc3RlbmVyOmZ1bmN0aW9uKHcpe3JldHVybiAhIXBbdy50b0xvd2VyQ2FzZSgpXX0sYmluZDpmdW5jdGlvbih3LHkseCl7dmFyIHo7dz13LnRvTG93ZXJDYXNlKCk7ej1wW3ddfHxbXTt6LnB1c2goe2Z1bmM6eSxzY29wZTp4fHx0aGlzfSk7cFt3XT16fSx1bmJpbmQ6ZnVuY3Rpb24odyl7dz13LnRvTG93ZXJDYXNlKCk7dmFyIHo9cFt3XSx4LHk9YXJndW1lbnRzWzFdO2lmKHope2lmKHkhPT1iKXtmb3IoeD16Lmxlbmd0aC0xO3g+PTA7eC0tKXtpZih6W3hdLmZ1bmM9PT15KXt6LnNwbGljZSh4LDEpO2JyZWFrfX19ZWxzZXt6PVtdfWlmKCF6Lmxlbmd0aCl7ZGVsZXRlIHBbd119fX0sdW5iaW5kQWxsOmZ1bmN0aW9uKCl7dmFyIHc9dGhpcztnLmVhY2gocCxmdW5jdGlvbih5LHgpe3cudW5iaW5kKHgpfSl9LGRlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLnN0b3AoKTt0aGlzLnRyaWdnZXIoIkRlc3Ryb3kiKTt0aGlzLnVuYmluZEFsbCgpfX0pfTtnLkZpbGU9ZnVuY3Rpb24ocixwLHEpe3ZhciBvPXRoaXM7by5pZD1yO28ubmFtZT1wO28uc2l6ZT1xO28ubG9hZGVkPTA7by5wZXJjZW50PTA7by5zdGF0dXM9MH07Zy5SdW50aW1lPWZ1bmN0aW9uKCl7dGhpcy5nZXRGZWF0dXJlcz1mdW5jdGlvbigpe307dGhpcy5pbml0PWZ1bmN0aW9uKG8scCl7fX07Zy5RdWV1ZVByb2dyZXNzPWZ1bmN0aW9uKCl7dmFyIG89dGhpcztvLnNpemU9MDtvLmxvYWRlZD0wO28udXBsb2FkZWQ9MDtvLmZhaWxlZD0wO28ucXVldWVkPTA7by5wZXJjZW50PTA7by5ieXRlc1BlclNlYz0wO28ucmVzZXQ9ZnVuY3Rpb24oKXtvLnNpemU9by5sb2FkZWQ9by51cGxvYWRlZD1vLmZhaWxlZD1vLnF1ZXVlZD1vLnBlcmNlbnQ9by5ieXRlc1BlclNlYz0wfX07Zy5ydW50aW1lcz17fTt3aW5kb3cucGx1cGxvYWQ9Z30pKCk7KGZ1bmN0aW9uKCl7aWYod2luZG93Lmdvb2dsZSYmZ29vZ2xlLmdlYXJzKXtyZXR1cm59dmFyIGE9bnVsbDtpZih0eXBlb2YgR2VhcnNGYWN0b3J5IT0idW5kZWZpbmVkIil7YT1uZXcgR2VhcnNGYWN0b3J5KCl9ZWxzZXt0cnl7YT1uZXcgQWN0aXZlWE9iamVjdCgiR2VhcnMuRmFjdG9yeSIpO2lmKGEuZ2V0QnVpbGRJbmZvKCkuaW5kZXhPZigiaWVfbW9iaWxlIikhPS0xKXthLnByaXZhdGVTZXRHbG9iYWxPYmplY3QodGhpcyl9fWNhdGNoKGIpe2lmKCh0eXBlb2YgbmF2aWdhdG9yLm1pbWVUeXBlcyE9InVuZGVmaW5lZCIpJiZuYXZpZ2F0b3IubWltZVR5cGVzWyJhcHBsaWNhdGlvbi94LWdvb2dsZWdlYXJzIl0pe2E9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib2JqZWN0Iik7YS5zdHlsZS5kaXNwbGF5PSJub25lIjthLndpZHRoPTA7YS5oZWlnaHQ9MDthLnR5cGU9ImFwcGxpY2F0aW9uL3gtZ29vZ2xlZ2VhcnMiO2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChhKX19fWlmKCFhKXtyZXR1cm59aWYoIXdpbmRvdy5nb29nbGUpe3dpbmRvdy5nb29nbGU9e319aWYoIWdvb2dsZS5nZWFycyl7Z29vZ2xlLmdlYXJzPXtmYWN0b3J5OmF9fX0pKCk7KGZ1bmN0aW9uKGUsYixjLGQpe3ZhciBmPXt9O2Z1bmN0aW9uIGEoaCxrLG0pe3ZhciBnLGosbCxvO2o9Z29vZ2xlLmdlYXJzLmZhY3RvcnkuY3JlYXRlKCJiZXRhLmNhbnZhcyIpO3RyeXtqLmRlY29kZShoKTtpZighay53aWR0aCl7ay53aWR0aD1qLndpZHRofWlmKCFrLmhlaWdodCl7ay5oZWlnaHQ9ai5oZWlnaHR9bz1NYXRoLm1pbih3aWR0aC9qLndpZHRoLGhlaWdodC9qLmhlaWdodCk7aWYobzwxfHwobz09PTEmJm09PT0iaW1hZ2UvanBlZyIpKXtqLnJlc2l6ZShNYXRoLnJvdW5kKGoud2lkdGgqbyksTWF0aC5yb3VuZChqLmhlaWdodCpvKSk7aWYoay5xdWFsaXR5KXtyZXR1cm4gai5lbmNvZGUobSx7cXVhbGl0eTprLnF1YWxpdHkvMTAwfSl9cmV0dXJuIGouZW5jb2RlKG0pfX1jYXRjaChuKXt9cmV0dXJuIGh9Yy5ydW50aW1lcy5HZWFycz1jLmFkZFJ1bnRpbWUoImdlYXJzIix7Z2V0RmVhdHVyZXM6ZnVuY3Rpb24oKXtyZXR1cm57ZHJhZ2Ryb3A6dHJ1ZSxqcGdyZXNpemU6dHJ1ZSxwbmdyZXNpemU6dHJ1ZSxjaHVua3M6dHJ1ZSxwcm9ncmVzczp0cnVlLG11bHRpcGFydDp0cnVlLG11bHRpX3NlbGVjdGlvbjp0cnVlfX0saW5pdDpmdW5jdGlvbihsLG4pe3ZhciBtLGgsZz1mYWxzZTtpZighZS5nb29nbGV8fCFnb29nbGUuZ2VhcnMpe3JldHVybiBuKHtzdWNjZXNzOmZhbHNlfSl9dHJ5e209Z29vZ2xlLmdlYXJzLmZhY3RvcnkuY3JlYXRlKCJiZXRhLmRlc2t0b3AiKX1jYXRjaChrKXtyZXR1cm4gbih7c3VjY2VzczpmYWxzZX0pfWZ1bmN0aW9uIGoocSl7dmFyIHAsbyxyPVtdLHM7Zm9yKG89MDtvPHEubGVuZ3RoO28rKyl7cD1xW29dO3M9Yy5ndWlkKCk7ZltzXT1wLmJsb2I7ci5wdXNoKG5ldyBjLkZpbGUocyxwLm5hbWUscC5ibG9iLmxlbmd0aCkpfWwudHJpZ2dlcigiRmlsZXNBZGRlZCIscil9bC5iaW5kKCJQb3N0SW5pdCIsZnVuY3Rpb24oKXt2YXIgcD1sLnNldHRpbmdzLG89Yi5nZXRFbGVtZW50QnlJZChwLmRyb3BfZWxlbWVudCk7aWYobyl7Yy5hZGRFdmVudChvLCJkcmFnb3ZlciIsZnVuY3Rpb24ocSl7bS5zZXREcm9wRWZmZWN0KHEsImNvcHkiKTtxLnByZXZlbnREZWZhdWx0KCl9LGwuaWQpO2MuYWRkRXZlbnQobywiZHJvcCIsZnVuY3Rpb24ocil7dmFyIHE9bS5nZXREcmFnRGF0YShyLCJhcHBsaWNhdGlvbi94LWdlYXJzLWZpbGVzIik7aWYocSl7aihxLmZpbGVzKX1yLnByZXZlbnREZWZhdWx0KCl9LGwuaWQpO289MH1jLmFkZEV2ZW50KGIuZ2V0RWxlbWVudEJ5SWQocC5icm93c2VfYnV0dG9uKSwiY2xpY2siLGZ1bmN0aW9uKHUpe3ZhciB0PVtdLHIscSxzO3UucHJldmVudERlZmF1bHQoKTtpZihnKXtyZXR1cm59bm9fdHlwZV9yZXN0cmljdGlvbjpmb3Iocj0wO3I8cC5maWx0ZXJzLmxlbmd0aDtyKyspe3M9cC5maWx0ZXJzW3JdLmV4dGVuc2lvbnMuc3BsaXQoIiwiKTtmb3IocT0wO3E8cy5sZW5ndGg7cSsrKXtpZihzW3FdPT09IioiKXt0PVtdO2JyZWFrIG5vX3R5cGVfcmVzdHJpY3Rpb259dC5wdXNoKCIuIitzW3FdKX19bS5vcGVuRmlsZXMoaix7c2luZ2xlRmlsZTohcC5tdWx0aV9zZWxlY3Rpb24sZmlsdGVyOnR9KX0sbC5pZCl9KTtsLmJpbmQoIkNhbmNlbFVwbG9hZCIsZnVuY3Rpb24oKXtpZihoLmFib3J0KXtoLmFib3J0KCl9fSk7bC5iaW5kKCJVcGxvYWRGaWxlIixmdW5jdGlvbih1LHIpe3ZhciB3PTAsdixzLHQ9MCxxPXUuc2V0dGluZ3MucmVzaXplLG87aWYocSYmL1wuKHBuZ3xqcGd8anBlZykkL2kudGVzdChyLm5hbWUpKXtmW3IuaWRdPWEoZltyLmlkXSxxLC9cLnBuZyQvaS50ZXN0KHIubmFtZSk/ImltYWdlL3BuZyI6ImltYWdlL2pwZWciKX1yLnNpemU9ZltyLmlkXS5sZW5ndGg7cz11LnNldHRpbmdzLmNodW5rX3NpemU7bz1zPjA7dj1NYXRoLmNlaWwoci5zaXplL3MpO2lmKCFvKXtzPXIuc2l6ZTt2PTF9ZnVuY3Rpb24gcCgpe3ZhciBDLHk9dS5zZXR0aW5ncy5tdWx0aXBhcnQseD0wLEI9e25hbWU6ci50YXJnZXRfbmFtZXx8ci5uYW1lfSx6PXUuc2V0dGluZ3MudXJsO2Z1bmN0aW9uIEEoRSl7dmFyIEQsSj0iLS0tLXBsdXBsb2FkYm91bmRhcnkiK2MuZ3VpZCgpLEc9Ii0tIixJPSJcclxuIixGLEg7aWYoeSl7aC5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLCJtdWx0aXBhcnQvZm9ybS1kYXRhOyBib3VuZGFyeT0iK0opO0Q9Z29vZ2xlLmdlYXJzLmZhY3RvcnkuY3JlYXRlKCJiZXRhLmJsb2JidWlsZGVyIik7Yy5lYWNoKGMuZXh0ZW5kKEIsdS5zZXR0aW5ncy5tdWx0aXBhcnRfcGFyYW1zKSxmdW5jdGlvbihMLEspe0QuYXBwZW5kKEcrSitJKydDb250ZW50LURpc3Bvc2l0aW9uOiBmb3JtLWRhdGE7IG5hbWU9IicrSysnIicrSStJKTtELmFwcGVuZChMK0kpfSk7SD1jLm1pbWVUeXBlc1tyLm5hbWUucmVwbGFjZSgvXi4rXC4oW14uXSspLywiJDEiKS50b0xvd2VyQ2FzZSgpXXx8ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSI7RC5hcHBlbmQoRytKK0krJ0NvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0tZGF0YTsgbmFtZT0iJyt1LnNldHRpbmdzLmZpbGVfZGF0YV9uYW1lKyciOyBmaWxlbmFtZT0iJytyLm5hbWUrJyInK0krIkNvbnRlbnQtVHlwZTogIitIK0krSSk7RC5hcHBlbmQoRSk7RC5hcHBlbmQoSStHK0orRytJKTtGPUQuZ2V0QXNCbG9iKCk7eD1GLmxlbmd0aC1FLmxlbmd0aDtFPUZ9aC5zZW5kKEUpfWlmKHIuc3RhdHVzPT1jLkRPTkV8fHIuc3RhdHVzPT1jLkZBSUxFRHx8dS5zdGF0ZT09Yy5TVE9QUEVEKXtyZXR1cm59aWYobyl7Qi5jaHVuaz13O0IuY2h1bmtzPXZ9Qz1NYXRoLm1pbihzLHIuc2l6ZS0odypzKSk7aWYoIXkpe3o9Yy5idWlsZFVybCh1LnNldHRpbmdzLnVybCxCKX1oPWdvb2dsZS5nZWFycy5mYWN0b3J5LmNyZWF0ZSgiYmV0YS5odHRwcmVxdWVzdCIpO2gub3BlbigiUE9TVCIseik7aWYoIXkpe2guc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1EaXNwb3NpdGlvbiIsJ2F0dGFjaG1lbnQ7IGZpbGVuYW1lPSInK3IubmFtZSsnIicpO2guc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIil9Yy5lYWNoKHUuc2V0dGluZ3MuaGVhZGVycyxmdW5jdGlvbihFLEQpe2guc2V0UmVxdWVzdEhlYWRlcihELEUpfSk7aC51cGxvYWQub25wcm9ncmVzcz1mdW5jdGlvbihEKXtyLmxvYWRlZD10K0QubG9hZGVkLXg7dS50cmlnZ2VyKCJVcGxvYWRQcm9ncmVzcyIscil9O2gub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7dmFyIEQ7aWYoaC5yZWFkeVN0YXRlPT00JiZ1LnN0YXRlIT09Yy5TVE9QUEVEKXtpZihoLnN0YXR1cz09MjAwKXtEPXtjaHVuazp3LGNodW5rczp2LHJlc3BvbnNlOmgucmVzcG9uc2VUZXh0LHN0YXR1czpoLnN0YXR1c307dS50cmlnZ2VyKCJDaHVua1VwbG9hZGVkIixyLEQpO2lmKEQuY2FuY2VsbGVkKXtyLnN0YXR1cz1jLkZBSUxFRDtyZXR1cm59dCs9QztpZigrK3c+PXYpe3Iuc3RhdHVzPWMuRE9ORTt1LnRyaWdnZXIoIkZpbGVVcGxvYWRlZCIscix7cmVzcG9uc2U6aC5yZXNwb25zZVRleHQsc3RhdHVzOmguc3RhdHVzfSl9ZWxzZXtwKCl9fWVsc2V7dS50cmlnZ2VyKCJFcnJvciIse2NvZGU6Yy5IVFRQX0VSUk9SLG1lc3NhZ2U6Yy50cmFuc2xhdGUoIkhUVFAgRXJyb3IuIiksZmlsZTpyLGNodW5rOncsY2h1bmtzOnYsc3RhdHVzOmguc3RhdHVzfSl9fX07aWYodzx2KXtBKGZbci5pZF0uc2xpY2UodypzLEMpKX19cCgpfSk7bC5iaW5kKCJEaXNhYmxlQnJvd3NlIixmdW5jdGlvbihvLHApe2c9cH0pO2wuYmluZCgiRGVzdHJveSIsZnVuY3Rpb24obyl7dmFyIHAscSxyPXticm93c2VCdXR0b246by5zZXR0aW5ncy5icm93c2VfYnV0dG9uLGRyb3BFbG06by5zZXR0aW5ncy5kcm9wX2VsZW1lbnR9O2ZvcihwIGluIHIpe3E9Yi5nZXRFbGVtZW50QnlJZChyW3BdKTtpZihxKXtjLnJlbW92ZUFsbEV2ZW50cyhxLG8uaWQpfX19KTtuKHtzdWNjZXNzOnRydWV9KX19KX0pKHdpbmRvdyxkb2N1bWVudCxwbHVwbG9hZCk7KGZ1bmN0aW9uKGcsYixkLGUpe3ZhciBhPXt9LGg9e307ZnVuY3Rpb24gYyhvKXt2YXIgbixtPXR5cGVvZiBvLGosbCxrO2lmKG89PT1lfHxvPT09bnVsbCl7cmV0dXJuIm51bGwifWlmKG09PT0ic3RyaW5nIil7bj0iXGJiXHR0XG5uXGZmXHJyXCJcIicnXFxcXCI7cmV0dXJuJyInK28ucmVwbGFjZSgvKFtcdTAwODAtXHVGRkZGXHgwMC1ceDFmXCJdKS9nLGZ1bmN0aW9uKHIscSl7dmFyIHA9bi5pbmRleE9mKHEpO2lmKHArMSl7cmV0dXJuIlxcIituLmNoYXJBdChwKzEpfXI9cS5jaGFyQ29kZUF0KCkudG9TdHJpbmcoMTYpO3JldHVybiJcXHUiKyIwMDAwIi5zdWJzdHJpbmcoci5sZW5ndGgpK3J9KSsnIid9aWYobT09Im9iamVjdCIpe2o9by5sZW5ndGghPT1lO249IiI7aWYoail7Zm9yKGw9MDtsPG8ubGVuZ3RoO2wrKyl7aWYobil7bis9IiwifW4rPWMob1tsXSl9bj0iWyIrbisiXSJ9ZWxzZXtmb3IoayBpbiBvKXtpZihvLmhhc093blByb3BlcnR5KGspKXtpZihuKXtuKz0iLCJ9bis9YyhrKSsiOiIrYyhvW2tdKX19bj0ieyIrbisifSJ9cmV0dXJuIG59cmV0dXJuIiIrb31mdW5jdGlvbiBmKHMpe3ZhciB2PWZhbHNlLGo9bnVsbCxvPW51bGwsayxsLG0sdSxuLHE9MDt0cnl7dHJ5e289bmV3IEFjdGl2ZVhPYmplY3QoIkFnQ29udHJvbC5BZ0NvbnRyb2wiKTtpZihvLklzVmVyc2lvblN1cHBvcnRlZChzKSl7dj10cnVlfW89bnVsbH1jYXRjaChyKXt2YXIgcD1uYXZpZ2F0b3IucGx1Z2luc1siU2lsdmVybGlnaHQgUGx1Zy1JbiJdO2lmKHApe2s9cC5kZXNjcmlwdGlvbjtpZihrPT09IjEuMC4zMDIyNi4yIil7az0iMi4wLjMwMjI2LjIifWw9ay5zcGxpdCgiLiIpO3doaWxlKGwubGVuZ3RoPjMpe2wucG9wKCl9d2hpbGUobC5sZW5ndGg8NCl7bC5wdXNoKDApfW09cy5zcGxpdCgiLiIpO3doaWxlKG0ubGVuZ3RoPjQpe20ucG9wKCl9ZG97dT1wYXJzZUludChtW3FdLDEwKTtuPXBhcnNlSW50KGxbcV0sMTApO3ErK313aGlsZShxPG0ubGVuZ3RoJiZ1PT09bik7aWYodTw9biYmIWlzTmFOKHUpKXt2PXRydWV9fX19Y2F0Y2godCl7dj1mYWxzZX1yZXR1cm4gdn1kLnNpbHZlcmxpZ2h0PXt0cmlnZ2VyOmZ1bmN0aW9uKG4sayl7dmFyIG09YVtuXSxsLGo7aWYobSl7aj1kLnRvQXJyYXkoYXJndW1lbnRzKS5zbGljZSgxKTtqWzBdPSJTaWx2ZXJsaWdodDoiK2s7c2V0VGltZW91dChmdW5jdGlvbigpe20udHJpZ2dlci5hcHBseShtLGopfSwwKX19fTtkLnJ1bnRpbWVzLlNpbHZlcmxpZ2h0PWQuYWRkUnVudGltZSgic2lsdmVybGlnaHQiLHtnZXRGZWF0dXJlczpmdW5jdGlvbigpe3JldHVybntqcGdyZXNpemU6dHJ1ZSxwbmdyZXNpemU6dHJ1ZSxjaHVua3M6dHJ1ZSxwcm9ncmVzczp0cnVlLG11bHRpcGFydDp0cnVlLG11bHRpX3NlbGVjdGlvbjp0cnVlfX0saW5pdDpmdW5jdGlvbihwLHEpe3ZhciBvLG09IiIsbj1wLnNldHRpbmdzLmZpbHRlcnMsbCxrPWIuYm9keTtpZighZigiMi4wLjMxMDA1LjAiKXx8KGcub3BlcmEmJmcub3BlcmEuYnVpbGROdW1iZXIpKXtxKHtzdWNjZXNzOmZhbHNlfSk7cmV0dXJufWhbcC5pZF09ZmFsc2U7YVtwLmlkXT1wO289Yi5jcmVhdGVFbGVtZW50KCJkaXYiKTtvLmlkPXAuaWQrIl9zaWx2ZXJsaWdodF9jb250YWluZXIiO2QuZXh0ZW5kKG8uc3R5bGUse3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOiIwcHgiLGJhY2tncm91bmQ6cC5zZXR0aW5ncy5zaGltX2JnY29sb3J8fCJ0cmFuc3BhcmVudCIsekluZGV4Ojk5OTk5LHdpZHRoOiIxMDBweCIsaGVpZ2h0OiIxMDBweCIsb3ZlcmZsb3c6ImhpZGRlbiIsb3BhY2l0eTpwLnNldHRpbmdzLnNoaW1fYmdjb2xvcnx8Yi5kb2N1bWVudE1vZGU+OD8iIjowLjAxfSk7by5jbGFzc05hbWU9InBsdXBsb2FkIHNpbHZlcmxpZ2h0IjtpZihwLnNldHRpbmdzLmNvbnRhaW5lcil7az1iLmdldEVsZW1lbnRCeUlkKHAuc2V0dGluZ3MuY29udGFpbmVyKTtpZihkLmdldFN0eWxlKGssInBvc2l0aW9uIik9PT0ic3RhdGljIil7ay5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUifX1rLmFwcGVuZENoaWxkKG8pO2ZvcihsPTA7bDxuLmxlbmd0aDtsKyspe20rPShtIT0iIj8ifCI6IiIpK25bbF0udGl0bGUrIiB8ICouIituW2xdLmV4dGVuc2lvbnMucmVwbGFjZSgvLC9nLCI7Ki4iKX1vLmlubmVySFRNTD0nPG9iamVjdCBpZD0iJytwLmlkKydfc2lsdmVybGlnaHQiIGRhdGE9ImRhdGE6YXBwbGljYXRpb24veC1zaWx2ZXJsaWdodCwiIHR5cGU9ImFwcGxpY2F0aW9uL3gtc2lsdmVybGlnaHQtMiIgc3R5bGU9Im91dGxpbmU6bm9uZTsiIHdpZHRoPSIxMDI0IiBoZWlnaHQ9IjEwMjQiPjxwYXJhbSBuYW1lPSJzb3VyY2UiIHZhbHVlPSInK3Auc2V0dGluZ3Muc2lsdmVybGlnaHRfeGFwX3VybCsnIi8+PHBhcmFtIG5hbWU9ImJhY2tncm91bmQiIHZhbHVlPSJUcmFuc3BhcmVudCIvPjxwYXJhbSBuYW1lPSJ3aW5kb3dsZXNzIiB2YWx1ZT0idHJ1ZSIvPjxwYXJhbSBuYW1lPSJlbmFibGVodG1sYWNjZXNzIiB2YWx1ZT0idHJ1ZSIvPjxwYXJhbSBuYW1lPSJpbml0UGFyYW1zIiB2YWx1ZT0iaWQ9JytwLmlkKyIsZmlsdGVyPSIrbSsiLG11bHRpc2VsZWN0PSIrcC5zZXR0aW5ncy5tdWx0aV9zZWxlY3Rpb24rJyIvPjwvb2JqZWN0Pic7ZnVuY3Rpb24gaigpe3JldHVybiBiLmdldEVsZW1lbnRCeUlkKHAuaWQrIl9zaWx2ZXJsaWdodCIpLmNvbnRlbnQuVXBsb2FkfXAuYmluZCgiU2lsdmVybGlnaHQ6SW5pdCIsZnVuY3Rpb24oKXt2YXIgcixzPXt9O2lmKGhbcC5pZF0pe3JldHVybn1oW3AuaWRdPXRydWU7cC5iaW5kKCJTaWx2ZXJsaWdodDpTdGFydFNlbGVjdEZpbGVzIixmdW5jdGlvbih0KXtyPVtdfSk7cC5iaW5kKCJTaWx2ZXJsaWdodDpTZWxlY3RGaWxlIixmdW5jdGlvbih0LHcsdSx2KXt2YXIgeDt4PWQuZ3VpZCgpO3NbeF09dztzW3ddPXg7ci5wdXNoKG5ldyBkLkZpbGUoeCx1LHYpKX0pO3AuYmluZCgiU2lsdmVybGlnaHQ6U2VsZWN0U3VjY2Vzc2Z1bCIsZnVuY3Rpb24oKXtpZihyLmxlbmd0aCl7cC50cmlnZ2VyKCJGaWxlc0FkZGVkIixyKX19KTtwLmJpbmQoIlNpbHZlcmxpZ2h0OlVwbG9hZENodW5rRXJyb3IiLGZ1bmN0aW9uKHQsdyx1LHgsdil7cC50cmlnZ2VyKCJFcnJvciIse2NvZGU6ZC5JT19FUlJPUixtZXNzYWdlOiJJTyBFcnJvci4iLGRldGFpbHM6dixmaWxlOnQuZ2V0RmlsZShzW3ddKX0pfSk7cC5iaW5kKCJTaWx2ZXJsaWdodDpVcGxvYWRGaWxlUHJvZ3Jlc3MiLGZ1bmN0aW9uKHQseCx1LHcpe3ZhciB2PXQuZ2V0RmlsZShzW3hdKTtpZih2LnN0YXR1cyE9ZC5GQUlMRUQpe3Yuc2l6ZT13O3YubG9hZGVkPXU7dC50cmlnZ2VyKCJVcGxvYWRQcm9ncmVzcyIsdil9fSk7cC5iaW5kKCJSZWZyZXNoIixmdW5jdGlvbih0KXt2YXIgdSx2LHc7dT1iLmdldEVsZW1lbnRCeUlkKHQuc2V0dGluZ3MuYnJvd3NlX2J1dHRvbik7aWYodSl7dj1kLmdldFBvcyh1LGIuZ2V0RWxlbWVudEJ5SWQodC5zZXR0aW5ncy5jb250YWluZXIpKTt3PWQuZ2V0U2l6ZSh1KTtkLmV4dGVuZChiLmdldEVsZW1lbnRCeUlkKHQuaWQrIl9zaWx2ZXJsaWdodF9jb250YWluZXIiKS5zdHlsZSx7dG9wOnYueSsicHgiLGxlZnQ6di54KyJweCIsd2lkdGg6dy53KyJweCIsaGVpZ2h0OncuaCsicHgifSl9fSk7cC5iaW5kKCJTaWx2ZXJsaWdodDpVcGxvYWRDaHVua1N1Y2Nlc3NmdWwiLGZ1bmN0aW9uKHQsdyx1LHoseSl7dmFyIHgsdj10LmdldEZpbGUoc1t3XSk7eD17Y2h1bms6dSxjaHVua3M6eixyZXNwb25zZTp5fTt0LnRyaWdnZXIoIkNodW5rVXBsb2FkZWQiLHYseCk7aWYodi5zdGF0dXMhPWQuRkFJTEVEJiZ0LnN0YXRlIT09ZC5TVE9QUEVEKXtqKCkuVXBsb2FkTmV4dENodW5rKCl9aWYodT09ei0xKXt2LnN0YXR1cz1kLkRPTkU7dC50cmlnZ2VyKCJGaWxlVXBsb2FkZWQiLHYse3Jlc3BvbnNlOnl9KX19KTtwLmJpbmQoIlNpbHZlcmxpZ2h0OlVwbG9hZFN1Y2Nlc3NmdWwiLGZ1bmN0aW9uKHQsdyx1KXt2YXIgdj10LmdldEZpbGUoc1t3XSk7di5zdGF0dXM9ZC5ET05FO3QudHJpZ2dlcigiRmlsZVVwbG9hZGVkIix2LHtyZXNwb25zZTp1fSl9KTtwLmJpbmQoIkZpbGVzUmVtb3ZlZCIsZnVuY3Rpb24odCx2KXt2YXIgdTtmb3IodT0wO3U8di5sZW5ndGg7dSsrKXtqKCkuUmVtb3ZlRmlsZShzW3ZbdV0uaWRdKX19KTtwLmJpbmQoIlVwbG9hZEZpbGUiLGZ1bmN0aW9uKHQsdil7dmFyIHc9dC5zZXR0aW5ncyx1PXcucmVzaXplfHx7fTtqKCkuVXBsb2FkRmlsZShzW3YuaWRdLHQuc2V0dGluZ3MudXJsLGMoe25hbWU6di50YXJnZXRfbmFtZXx8di5uYW1lLG1pbWU6ZC5taW1lVHlwZXNbdi5uYW1lLnJlcGxhY2UoL14uK1wuKFteLl0rKS8sIiQxIikudG9Mb3dlckNhc2UoKV18fCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iLGNodW5rX3NpemU6dy5jaHVua19zaXplLGltYWdlX3dpZHRoOnUud2lkdGgsaW1hZ2VfaGVpZ2h0OnUuaGVpZ2h0LGltYWdlX3F1YWxpdHk6dS5xdWFsaXR5fHw5MCxtdWx0aXBhcnQ6ISF3Lm11bHRpcGFydCxtdWx0aXBhcnRfcGFyYW1zOncubXVsdGlwYXJ0X3BhcmFtc3x8e30sZmlsZV9kYXRhX25hbWU6dy5maWxlX2RhdGFfbmFtZSxoZWFkZXJzOncuaGVhZGVyc30pKX0pO3AuYmluZCgiQ2FuY2VsVXBsb2FkIixmdW5jdGlvbigpe2ooKS5DYW5jZWxVcGxvYWQoKX0pO3AuYmluZCgiU2lsdmVybGlnaHQ6TW91c2VFbnRlciIsZnVuY3Rpb24odCl7dmFyIHUsdjt1PWIuZ2V0RWxlbWVudEJ5SWQocC5zZXR0aW5ncy5icm93c2VfYnV0dG9uKTt2PXQuc2V0dGluZ3MuYnJvd3NlX2J1dHRvbl9ob3ZlcjtpZih1JiZ2KXtkLmFkZENsYXNzKHUsdil9fSk7cC5iaW5kKCJTaWx2ZXJsaWdodDpNb3VzZUxlYXZlIixmdW5jdGlvbih0KXt2YXIgdSx2O3U9Yi5nZXRFbGVtZW50QnlJZChwLnNldHRpbmdzLmJyb3dzZV9idXR0b24pO3Y9dC5zZXR0aW5ncy5icm93c2VfYnV0dG9uX2hvdmVyO2lmKHUmJnYpe2QucmVtb3ZlQ2xhc3ModSx2KX19KTtwLmJpbmQoIlNpbHZlcmxpZ2h0Ok1vdXNlTGVmdEJ1dHRvbkRvd24iLGZ1bmN0aW9uKHQpe3ZhciB1LHY7dT1iLmdldEVsZW1lbnRCeUlkKHAuc2V0dGluZ3MuYnJvd3NlX2J1dHRvbik7dj10LnNldHRpbmdzLmJyb3dzZV9idXR0b25fYWN0aXZlO2lmKHUmJnYpe2QuYWRkQ2xhc3ModSx2KTtkLmFkZEV2ZW50KGIuYm9keSwibW91c2V1cCIsZnVuY3Rpb24oKXtkLnJlbW92ZUNsYXNzKHUsdil9KX19KTtwLmJpbmQoIlNsaXZlcmxpZ2h0OlN0YXJ0U2VsZWN0RmlsZXMiLGZ1bmN0aW9uKHQpe3ZhciB1LHY7dT1iLmdldEVsZW1lbnRCeUlkKHAuc2V0dGluZ3MuYnJvd3NlX2J1dHRvbik7dj10LnNldHRpbmdzLmJyb3dzZV9idXR0b25fYWN0aXZlO2lmKHUmJnYpe2QucmVtb3ZlQ2xhc3ModSx2KX19KTtwLmJpbmQoIkRpc2FibGVCcm93c2UiLGZ1bmN0aW9uKHQsdSl7aigpLkRpc2FibGVCcm93c2UodSl9KTtwLmJpbmQoIkRlc3Ryb3kiLGZ1bmN0aW9uKHQpe3ZhciB1O2QucmVtb3ZlQWxsRXZlbnRzKGIuYm9keSx0LmlkKTtkZWxldGUgaFt0LmlkXTtkZWxldGUgYVt0LmlkXTt1PWIuZ2V0RWxlbWVudEJ5SWQodC5pZCsiX3NpbHZlcmxpZ2h0X2NvbnRhaW5lciIpO2lmKHUpe2sucmVtb3ZlQ2hpbGQodSl9fSk7cSh7c3VjY2Vzczp0cnVlfSl9KX19KX0pKHdpbmRvdyxkb2N1bWVudCxwbHVwbG9hZCk7KGZ1bmN0aW9uKGYsYixkLGUpe3ZhciBhPXt9LGc9e307ZnVuY3Rpb24gYygpe3ZhciBoO3RyeXtoPW5hdmlnYXRvci5wbHVnaW5zWyJTaG9ja3dhdmUgRmxhc2giXTtoPWguZGVzY3JpcHRpb259Y2F0Y2goayl7dHJ5e2g9bmV3IEFjdGl2ZVhPYmplY3QoIlNob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZsYXNoIikuR2V0VmFyaWFibGUoIiR2ZXJzaW9uIil9Y2F0Y2goail7aD0iMC4wIn19aD1oLm1hdGNoKC9cZCsvZyk7cmV0dXJuIHBhcnNlRmxvYXQoaFswXSsiLiIraFsxXSl9ZC5mbGFzaD17dHJpZ2dlcjpmdW5jdGlvbihrLGgsail7c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBuPWFba10sbSxsO2lmKG4pe24udHJpZ2dlcigiRmxhc2g6IitoLGopfX0sMCl9fTtkLnJ1bnRpbWVzLkZsYXNoPWQuYWRkUnVudGltZSgiZmxhc2giLHtnZXRGZWF0dXJlczpmdW5jdGlvbigpe3JldHVybntqcGdyZXNpemU6dHJ1ZSxwbmdyZXNpemU6dHJ1ZSxtYXhXaWR0aDo4MDkxLG1heEhlaWdodDo4MDkxLGNodW5rczp0cnVlLHByb2dyZXNzOnRydWUsbXVsdGlwYXJ0OnRydWUsbXVsdGlfc2VsZWN0aW9uOnRydWV9fSxpbml0OmZ1bmN0aW9uKG4scCl7dmFyIGwsbSxoPTAsaj1iLmJvZHk7aWYoYygpPDEwKXtwKHtzdWNjZXNzOmZhbHNlfSk7cmV0dXJufWdbbi5pZF09ZmFsc2U7YVtuLmlkXT1uO2w9Yi5nZXRFbGVtZW50QnlJZChuLnNldHRpbmdzLmJyb3dzZV9idXR0b24pO209Yi5jcmVhdGVFbGVtZW50KCJkaXYiKTttLmlkPW4uaWQrIl9mbGFzaF9jb250YWluZXIiO2QuZXh0ZW5kKG0uc3R5bGUse3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOiIwcHgiLGJhY2tncm91bmQ6bi5zZXR0aW5ncy5zaGltX2JnY29sb3J8fCJ0cmFuc3BhcmVudCIsekluZGV4Ojk5OTk5LHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUifSk7bS5jbGFzc05hbWU9InBsdXBsb2FkIGZsYXNoIjtpZihuLnNldHRpbmdzLmNvbnRhaW5lcil7aj1iLmdldEVsZW1lbnRCeUlkKG4uc2V0dGluZ3MuY29udGFpbmVyKTtpZihkLmdldFN0eWxlKGosInBvc2l0aW9uIik9PT0ic3RhdGljIil7ai5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUifX1qLmFwcGVuZENoaWxkKG0pOyhmdW5jdGlvbigpe3ZhciBxLHI7cT0nPG9iamVjdCBpZD0iJytuLmlkKydfZmxhc2giIHR5cGU9ImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIiBkYXRhPSInK24uc2V0dGluZ3MuZmxhc2hfc3dmX3VybCsnIiAnO2lmKGQudWEuaWUpe3ErPSdjbGFzc2lkPSJjbHNpZDpkMjdjZGI2ZS1hZTZkLTExY2YtOTZiOC00NDQ1NTM1NDAwMDAiICd9cSs9J3dpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJvdXRsaW5lOjAiPjxwYXJhbSBuYW1lPSJtb3ZpZSIgdmFsdWU9Iicrbi5zZXR0aW5ncy5mbGFzaF9zd2ZfdXJsKyciIC8+PHBhcmFtIG5hbWU9ImZsYXNodmFycyIgdmFsdWU9ImlkPScrZXNjYXBlKG4uaWQpKyciIC8+PHBhcmFtIG5hbWU9Indtb2RlIiB2YWx1ZT0idHJhbnNwYXJlbnQiIC8+PHBhcmFtIG5hbWU9ImFsbG93c2NyaXB0YWNjZXNzIiB2YWx1ZT0iYWx3YXlzIiAvPjwvb2JqZWN0Pic7aWYoZC51YS5pZSl7cj1iLmNyZWF0ZUVsZW1lbnQoImRpdiIpO20uYXBwZW5kQ2hpbGQocik7ci5vdXRlckhUTUw9cTtyPW51bGx9ZWxzZXttLmlubmVySFRNTD1xfX0oKSk7ZnVuY3Rpb24gbygpe3JldHVybiBiLmdldEVsZW1lbnRCeUlkKG4uaWQrIl9mbGFzaCIpfWZ1bmN0aW9uIGsoKXtpZihoKys+NTAwMCl7cCh7c3VjY2VzczpmYWxzZX0pO3JldHVybn1pZighZ1tuLmlkXSl7c2V0VGltZW91dChrLDEpfX1rKCk7bD1tPW51bGw7bi5iaW5kKCJGbGFzaDpJbml0IixmdW5jdGlvbigpe3ZhciByPXt9LHE7bygpLnNldEZpbGVGaWx0ZXJzKG4uc2V0dGluZ3MuZmlsdGVycyxuLnNldHRpbmdzLm11bHRpX3NlbGVjdGlvbik7aWYoZ1tuLmlkXSl7cmV0dXJufWdbbi5pZF09dHJ1ZTtuLmJpbmQoIlVwbG9hZEZpbGUiLGZ1bmN0aW9uKHMsdSl7dmFyIHY9cy5zZXR0aW5ncyx0PW4uc2V0dGluZ3MucmVzaXplfHx7fTtvKCkudXBsb2FkRmlsZShyW3UuaWRdLHYudXJsLHtuYW1lOnUudGFyZ2V0X25hbWV8fHUubmFtZSxtaW1lOmQubWltZVR5cGVzW3UubmFtZS5yZXBsYWNlKC9eLitcLihbXi5dKykvLCIkMSIpLnRvTG93ZXJDYXNlKCldfHwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIixjaHVua19zaXplOnYuY2h1bmtfc2l6ZSx3aWR0aDp0LndpZHRoLGhlaWdodDp0LmhlaWdodCxxdWFsaXR5OnQucXVhbGl0eSxtdWx0aXBhcnQ6di5tdWx0aXBhcnQsbXVsdGlwYXJ0X3BhcmFtczp2Lm11bHRpcGFydF9wYXJhbXN8fHt9LGZpbGVfZGF0YV9uYW1lOnYuZmlsZV9kYXRhX25hbWUsZm9ybWF0Oi9cLihqcGd8anBlZykkL2kudGVzdCh1Lm5hbWUpPyJqcGciOiJwbmciLGhlYWRlcnM6di5oZWFkZXJzLHVybHN0cmVhbV91cGxvYWQ6di51cmxzdHJlYW1fdXBsb2FkfSl9KTtuLmJpbmQoIkNhbmNlbFVwbG9hZCIsZnVuY3Rpb24oKXtvKCkuY2FuY2VsVXBsb2FkKCl9KTtuLmJpbmQoIkZsYXNoOlVwbG9hZFByb2Nlc3MiLGZ1bmN0aW9uKHQscyl7dmFyIHU9dC5nZXRGaWxlKHJbcy5pZF0pO2lmKHUuc3RhdHVzIT1kLkZBSUxFRCl7dS5sb2FkZWQ9cy5sb2FkZWQ7dS5zaXplPXMuc2l6ZTt0LnRyaWdnZXIoIlVwbG9hZFByb2dyZXNzIix1KX19KTtuLmJpbmQoIkZsYXNoOlVwbG9hZENodW5rQ29tcGxldGUiLGZ1bmN0aW9uKHMsdSl7dmFyIHYsdD1zLmdldEZpbGUoclt1LmlkXSk7dj17Y2h1bms6dS5jaHVuayxjaHVua3M6dS5jaHVua3MscmVzcG9uc2U6dS50ZXh0fTtzLnRyaWdnZXIoIkNodW5rVXBsb2FkZWQiLHQsdik7aWYodC5zdGF0dXMhPT1kLkZBSUxFRCYmcy5zdGF0ZSE9PWQuU1RPUFBFRCl7bygpLnVwbG9hZE5leHRDaHVuaygpfWlmKHUuY2h1bms9PXUuY2h1bmtzLTEpe3Quc3RhdHVzPWQuRE9ORTtzLnRyaWdnZXIoIkZpbGVVcGxvYWRlZCIsdCx7cmVzcG9uc2U6dS50ZXh0fSl9fSk7bi5iaW5kKCJGbGFzaDpTZWxlY3RGaWxlcyIsZnVuY3Rpb24ocyx2KXt2YXIgdSx0LHc9W10seDtmb3IodD0wO3Q8di5sZW5ndGg7dCsrKXt1PXZbdF07eD1kLmd1aWQoKTtyW3hdPXUuaWQ7clt1LmlkXT14O3cucHVzaChuZXcgZC5GaWxlKHgsdS5uYW1lLHUuc2l6ZSkpfWlmKHcubGVuZ3RoKXtuLnRyaWdnZXIoIkZpbGVzQWRkZWQiLHcpfX0pO24uYmluZCgiRmxhc2g6U2VjdXJpdHlFcnJvciIsZnVuY3Rpb24ocyx0KXtuLnRyaWdnZXIoIkVycm9yIix7Y29kZTpkLlNFQ1VSSVRZX0VSUk9SLG1lc3NhZ2U6ZC50cmFuc2xhdGUoIlNlY3VyaXR5IGVycm9yLiIpLGRldGFpbHM6dC5tZXNzYWdlLGZpbGU6bi5nZXRGaWxlKHJbdC5pZF0pfSl9KTtuLmJpbmQoIkZsYXNoOkdlbmVyaWNFcnJvciIsZnVuY3Rpb24ocyx0KXtuLnRyaWdnZXIoIkVycm9yIix7Y29kZTpkLkdFTkVSSUNfRVJST1IsbWVzc2FnZTpkLnRyYW5zbGF0ZSgiR2VuZXJpYyBlcnJvci4iKSxkZXRhaWxzOnQubWVzc2FnZSxmaWxlOm4uZ2V0RmlsZShyW3QuaWRdKX0pfSk7bi5iaW5kKCJGbGFzaDpJT0Vycm9yIixmdW5jdGlvbihzLHQpe24udHJpZ2dlcigiRXJyb3IiLHtjb2RlOmQuSU9fRVJST1IsbWVzc2FnZTpkLnRyYW5zbGF0ZSgiSU8gZXJyb3IuIiksZGV0YWlsczp0Lm1lc3NhZ2UsZmlsZTpuLmdldEZpbGUoclt0LmlkXSl9KX0pO24uYmluZCgiRmxhc2g6SW1hZ2VFcnJvciIsZnVuY3Rpb24ocyx0KXtuLnRyaWdnZXIoIkVycm9yIix7Y29kZTpwYXJzZUludCh0LmNvZGUsMTApLG1lc3NhZ2U6ZC50cmFuc2xhdGUoIkltYWdlIGVycm9yLiIpLGZpbGU6bi5nZXRGaWxlKHJbdC5pZF0pfSl9KTtuLmJpbmQoIkZsYXNoOlN0YWdlRXZlbnQ6cm9sbE92ZXIiLGZ1bmN0aW9uKHMpe3ZhciB0LHU7dD1iLmdldEVsZW1lbnRCeUlkKG4uc2V0dGluZ3MuYnJvd3NlX2J1dHRvbik7dT1zLnNldHRpbmdzLmJyb3dzZV9idXR0b25faG92ZXI7aWYodCYmdSl7ZC5hZGRDbGFzcyh0LHUpfX0pO24uYmluZCgiRmxhc2g6U3RhZ2VFdmVudDpyb2xsT3V0IixmdW5jdGlvbihzKXt2YXIgdCx1O3Q9Yi5nZXRFbGVtZW50QnlJZChuLnNldHRpbmdzLmJyb3dzZV9idXR0b24pO3U9cy5zZXR0aW5ncy5icm93c2VfYnV0dG9uX2hvdmVyO2lmKHQmJnUpe2QucmVtb3ZlQ2xhc3ModCx1KX19KTtuLmJpbmQoIkZsYXNoOlN0YWdlRXZlbnQ6bW91c2VEb3duIixmdW5jdGlvbihzKXt2YXIgdCx1O3Q9Yi5nZXRFbGVtZW50QnlJZChuLnNldHRpbmdzLmJyb3dzZV9idXR0b24pO3U9cy5zZXR0aW5ncy5icm93c2VfYnV0dG9uX2FjdGl2ZTtpZih0JiZ1KXtkLmFkZENsYXNzKHQsdSk7ZC5hZGRFdmVudChiLmJvZHksIm1vdXNldXAiLGZ1bmN0aW9uKCl7ZC5yZW1vdmVDbGFzcyh0LHUpfSxzLmlkKX19KTtuLmJpbmQoIkZsYXNoOlN0YWdlRXZlbnQ6bW91c2VVcCIsZnVuY3Rpb24ocyl7dmFyIHQsdTt0PWIuZ2V0RWxlbWVudEJ5SWQobi5zZXR0aW5ncy5icm93c2VfYnV0dG9uKTt1PXMuc2V0dGluZ3MuYnJvd3NlX2J1dHRvbl9hY3RpdmU7aWYodCYmdSl7ZC5yZW1vdmVDbGFzcyh0LHUpfX0pO24uYmluZCgiRmxhc2g6RXhpZkRhdGEiLGZ1bmN0aW9uKHMsdCl7bi50cmlnZ2VyKCJFeGlmRGF0YSIsbi5nZXRGaWxlKHJbdC5pZF0pLHQuZGF0YSl9KTtuLmJpbmQoIkZsYXNoOkdwc0RhdGEiLGZ1bmN0aW9uKHMsdCl7bi50cmlnZ2VyKCJHcHNEYXRhIixuLmdldEZpbGUoclt0LmlkXSksdC5kYXRhKX0pO24uYmluZCgiUXVldWVDaGFuZ2VkIixmdW5jdGlvbihzKXtuLnJlZnJlc2goKX0pO24uYmluZCgiRmlsZXNSZW1vdmVkIixmdW5jdGlvbihzLHUpe3ZhciB0O2Zvcih0PTA7dDx1Lmxlbmd0aDt0Kyspe28oKS5yZW1vdmVGaWxlKHJbdVt0XS5pZF0pfX0pO24uYmluZCgiU3RhdGVDaGFuZ2VkIixmdW5jdGlvbihzKXtuLnJlZnJlc2goKX0pO24uYmluZCgiUmVmcmVzaCIsZnVuY3Rpb24ocyl7dmFyIHQsdSx2O28oKS5zZXRGaWxlRmlsdGVycyhuLnNldHRpbmdzLmZpbHRlcnMsbi5zZXR0aW5ncy5tdWx0aV9zZWxlY3Rpb24pO3Q9Yi5nZXRFbGVtZW50QnlJZChzLnNldHRpbmdzLmJyb3dzZV9idXR0b24pO2lmKHQpe3U9ZC5nZXRQb3ModCxiLmdldEVsZW1lbnRCeUlkKHMuc2V0dGluZ3MuY29udGFpbmVyKSk7dj1kLmdldFNpemUodCk7ZC5leHRlbmQoYi5nZXRFbGVtZW50QnlJZChzLmlkKyJfZmxhc2hfY29udGFpbmVyIikuc3R5bGUse3RvcDp1LnkrInB4IixsZWZ0OnUueCsicHgiLHdpZHRoOnYudysicHgiLGhlaWdodDp2LmgrInB4In0pfX0pO24uYmluZCgiRGlzYWJsZUJyb3dzZSIsZnVuY3Rpb24ocyx0KXtvKCkuZGlzYWJsZUJyb3dzZSh0KX0pO24uYmluZCgiRGVzdHJveSIsZnVuY3Rpb24ocyl7dmFyIHQ7ZC5yZW1vdmVBbGxFdmVudHMoYi5ib2R5LHMuaWQpO2RlbGV0ZSBnW3MuaWRdO2RlbGV0ZSBhW3MuaWRdO3Q9Yi5nZXRFbGVtZW50QnlJZChzLmlkKyJfZmxhc2hfY29udGFpbmVyIik7aWYodCl7ai5yZW1vdmVDaGlsZCh0KX19KTtwKHtzdWNjZXNzOnRydWV9KX0pfX0pfSkod2luZG93LGRvY3VtZW50LHBsdXBsb2FkKTsoZnVuY3Rpb24oYSl7YS5ydW50aW1lcy5Ccm93c2VyUGx1cz1hLmFkZFJ1bnRpbWUoImJyb3dzZXJwbHVzIix7Z2V0RmVhdHVyZXM6ZnVuY3Rpb24oKXtyZXR1cm57ZHJhZ2Ryb3A6dHJ1ZSxqcGdyZXNpemU6dHJ1ZSxwbmdyZXNpemU6dHJ1ZSxjaHVua3M6dHJ1ZSxwcm9ncmVzczp0cnVlLG11bHRpcGFydDp0cnVlLG11bHRpX3NlbGVjdGlvbjp0cnVlfX0saW5pdDpmdW5jdGlvbihnLGope3ZhciBlPXdpbmRvdy5Ccm93c2VyUGx1cyxoPXt9LGQ9Zy5zZXR0aW5ncyxjPWQucmVzaXplO2Z1bmN0aW9uIGYobyl7dmFyIG4sbSxrPVtdLGwscDtmb3IobT0wO208by5sZW5ndGg7bSsrKXtsPW9bbV07cD1hLmd1aWQoKTtoW3BdPWw7ay5wdXNoKG5ldyBhLkZpbGUocCxsLm5hbWUsbC5zaXplKSl9aWYobSl7Zy50cmlnZ2VyKCJGaWxlc0FkZGVkIixrKX19ZnVuY3Rpb24gYigpe3ZhciBrPWZhbHNlO2cuYmluZCgiUG9zdEluaXQiLGZ1bmN0aW9uKCl7dmFyIG8sbT1kLmRyb3BfZWxlbWVudCxxPWcuaWQrIl9kcm9wdGFyZ2V0IixsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG0pLG47ZnVuY3Rpb24gcih0LHMpe2UuRHJhZ0FuZERyb3AuQWRkRHJvcFRhcmdldCh7aWQ6dH0sZnVuY3Rpb24odSl7ZS5EcmFnQW5kRHJvcC5BdHRhY2hDYWxsYmFja3Moe2lkOnQsaG92ZXI6ZnVuY3Rpb24odil7aWYoIXYmJnMpe3MoKX19LGRyb3A6ZnVuY3Rpb24odil7aWYocyl7cygpfWYodil9fSxmdW5jdGlvbigpe30pfSl9ZnVuY3Rpb24gcCgpe2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKHEpLnN0eWxlLnRvcD0iLTEwMDBweCJ9aWYobCl7aWYoZG9jdW1lbnQuYXR0YWNoRXZlbnQmJigvTVNJRS9naSkudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSl7bz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtvLnNldEF0dHJpYnV0ZSgiaWQiLHEpO2EuZXh0ZW5kKG8uc3R5bGUse3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOiItMTAwMHB4IixiYWNrZ3JvdW5kOiJyZWQiLGZpbHRlcjoiYWxwaGEob3BhY2l0eT0wKSIsb3BhY2l0eTowfSk7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChvKTthLmFkZEV2ZW50KGwsImRyYWdlbnRlciIsZnVuY3Rpb24odCl7dmFyIHMsdTtzPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG0pO3U9YS5nZXRQb3Mocyk7YS5leHRlbmQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocSkuc3R5bGUse3RvcDp1LnkrInB4IixsZWZ0OnUueCsicHgiLHdpZHRoOnMub2Zmc2V0V2lkdGgrInB4IixoZWlnaHQ6cy5vZmZzZXRIZWlnaHQrInB4In0pfSk7cihxLHApfWVsc2V7cihtKX19YS5hZGRFdmVudChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkLmJyb3dzZV9idXR0b24pLCJjbGljayIsZnVuY3Rpb24oeSl7dmFyIHM9W10sdSx0LHg9ZC5maWx0ZXJzLHcsdjt5LnByZXZlbnREZWZhdWx0KCk7aWYoayl7cmV0dXJufW5vX3R5cGVfcmVzdHJpY3Rpb246Zm9yKHU9MDt1PHgubGVuZ3RoO3UrKyl7dz14W3VdLmV4dGVuc2lvbnMuc3BsaXQoIiwiKTtmb3IodD0wO3Q8dy5sZW5ndGg7dCsrKXtpZih3W3RdPT09IioiKXtzPVtdO2JyZWFrIG5vX3R5cGVfcmVzdHJpY3Rpb259dj1hLm1pbWVUeXBlc1t3W3RdXTtpZih2JiZhLmluQXJyYXkodixzKT09PS0xKXtzLnB1c2goYS5taW1lc1t3W3RdXSl9fX1lLkZpbGVCcm93c2UuT3BlbkJyb3dzZURpYWxvZyh7bWltZVR5cGVzOnN9LGZ1bmN0aW9uKHope2lmKHouc3VjY2Vzcyl7Zih6LnZhbHVlKX19KX0pO2w9bz1udWxsfSk7Zy5iaW5kKCJDYW5jZWxVcGxvYWQiLGZ1bmN0aW9uKCl7ZS5VcGxvYWRlci5jYW5jZWwoKX0pO2cuYmluZCgiRGlzYWJsZUJyb3dzZSIsZnVuY3Rpb24obCxtKXtrPW19KTtnLmJpbmQoIlVwbG9hZEZpbGUiLGZ1bmN0aW9uKG8sbCl7dmFyIG49aFtsLmlkXSx0PXt9LG09by5zZXR0aW5ncy5jaHVua19zaXplLHAscT1bXTtmdW5jdGlvbiBzKHUsdyl7dmFyIHY7aWYobC5zdGF0dXM9PWEuRkFJTEVEKXtyZXR1cm59dC5uYW1lPWwudGFyZ2V0X25hbWV8fGwubmFtZTtpZihtKXt0LmNodW5rPSIiK3U7dC5jaHVua3M9IiIrd312PXEuc2hpZnQoKTtlLlVwbG9hZGVyLnVwbG9hZCh7dXJsOm8uc2V0dGluZ3MudXJsLGZpbGVzOntmaWxlOnZ9LGNvb2tpZXM6ZG9jdW1lbnQuY29va2llcyxwb3N0dmFyczphLmV4dGVuZCh0LG8uc2V0dGluZ3MubXVsdGlwYXJ0X3BhcmFtcykscHJvZ3Jlc3NDYWxsYmFjazpmdW5jdGlvbih6KXt2YXIgeSx4PTA7cFt1XT1wYXJzZUludCh6LmZpbGVQZXJjZW50KnYuc2l6ZS8xMDAsMTApO2Zvcih5PTA7eTxwLmxlbmd0aDt5Kyspe3grPXBbeV19bC5sb2FkZWQ9eDtvLnRyaWdnZXIoIlVwbG9hZFByb2dyZXNzIixsKX19LGZ1bmN0aW9uKHkpe3ZhciB4LHo7aWYoeS5zdWNjZXNzKXt4PXkudmFsdWUuc3RhdHVzQ29kZTtpZihtKXtvLnRyaWdnZXIoIkNodW5rVXBsb2FkZWQiLGwse2NodW5rOnUsY2h1bmtzOncscmVzcG9uc2U6eS52YWx1ZS5ib2R5LHN0YXR1czp4fSl9aWYocS5sZW5ndGg+MCl7cygrK3Usdyl9ZWxzZXtsLnN0YXR1cz1hLkRPTkU7by50cmlnZ2VyKCJGaWxlVXBsb2FkZWQiLGwse3Jlc3BvbnNlOnkudmFsdWUuYm9keSxzdGF0dXM6eH0pO2lmKHg+PTQwMCl7by50cmlnZ2VyKCJFcnJvciIse2NvZGU6YS5IVFRQX0VSUk9SLG1lc3NhZ2U6YS50cmFuc2xhdGUoIkhUVFAgRXJyb3IuIiksZmlsZTpsLHN0YXR1czp4fSl9fX1lbHNle28udHJpZ2dlcigiRXJyb3IiLHtjb2RlOmEuR0VORVJJQ19FUlJPUixtZXNzYWdlOmEudHJhbnNsYXRlKCJHZW5lcmljIEVycm9yLiIpLGZpbGU6bCxkZXRhaWxzOnkuZXJyb3J9KX19KX1mdW5jdGlvbiByKHUpe2wuc2l6ZT11LnNpemU7aWYobSl7ZS5GaWxlQWNjZXNzLmNodW5rKHtmaWxlOnUsY2h1bmtTaXplOm19LGZ1bmN0aW9uKHgpe2lmKHguc3VjY2Vzcyl7dmFyIHk9eC52YWx1ZSx2PXkubGVuZ3RoO3A9QXJyYXkodik7Zm9yKHZhciB3PTA7dzx2O3crKyl7cFt3XT0wO3EucHVzaCh5W3ddKX1zKDAsdil9fSl9ZWxzZXtwPUFycmF5KDEpO3EucHVzaCh1KTtzKDAsMSl9fWlmKGMmJi9cLihwbmd8anBnfGpwZWcpJC9pLnRlc3QobC5uYW1lKSl7QnJvd3NlclBsdXMuSW1hZ2VBbHRlci50cmFuc2Zvcm0oe2ZpbGU6bixxdWFsaXR5OmMucXVhbGl0eXx8OTAsYWN0aW9uczpbe3NjYWxlOnttYXh3aWR0aDpjLndpZHRoLG1heGhlaWdodDpjLmhlaWdodH19XX0sZnVuY3Rpb24odSl7aWYodS5zdWNjZXNzKXtyKHUudmFsdWUuZmlsZSl9fSl9ZWxzZXtyKG4pfX0pO2ooe3N1Y2Nlc3M6dHJ1ZX0pfWlmKGUpe2UuaW5pdChmdW5jdGlvbihsKXt2YXIgaz1be3NlcnZpY2U6IlVwbG9hZGVyIix2ZXJzaW9uOiIzIn0se3NlcnZpY2U6IkRyYWdBbmREcm9wIix2ZXJzaW9uOiIxIn0se3NlcnZpY2U6IkZpbGVCcm93c2UiLHZlcnNpb246IjEifSx7c2VydmljZToiRmlsZUFjY2VzcyIsdmVyc2lvbjoiMiJ9XTtpZihjKXtrLnB1c2goe3NlcnZpY2U6IkltYWdlQWx0ZXIiLHZlcnNpb246IjQifSl9aWYobC5zdWNjZXNzKXtlLnJlcXVpcmUoe3NlcnZpY2VzOmt9LGZ1bmN0aW9uKG0pe2lmKG0uc3VjY2Vzcyl7YigpfWVsc2V7aigpfX0pfWVsc2V7aigpfX0pfWVsc2V7aigpfX19KX0pKHBsdXBsb2FkKTsoZnVuY3Rpb24oaCxrLGosZSl7dmFyIGM9e30sZztmdW5jdGlvbiBtKG8scCl7dmFyIG47aWYoIkZpbGVSZWFkZXIiIGluIGgpe249bmV3IEZpbGVSZWFkZXIoKTtuLnJlYWRBc0RhdGFVUkwobyk7bi5vbmxvYWQ9ZnVuY3Rpb24oKXtwKG4ucmVzdWx0KX19ZWxzZXtyZXR1cm4gcChvLmdldEFzRGF0YVVSTCgpKX19ZnVuY3Rpb24gbChvLHApe3ZhciBuO2lmKCJGaWxlUmVhZGVyIiBpbiBoKXtuPW5ldyBGaWxlUmVhZGVyKCk7bi5yZWFkQXNCaW5hcnlTdHJpbmcobyk7bi5vbmxvYWQ9ZnVuY3Rpb24oKXtwKG4ucmVzdWx0KX19ZWxzZXtyZXR1cm4gcChvLmdldEFzQmluYXJ5KCkpfX1mdW5jdGlvbiBkKHIscCxuLHYpe3ZhciBxLG8sdSxzLHQ9dGhpczttKGNbci5pZF0sZnVuY3Rpb24odyl7cT1rLmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO3Euc3R5bGUuZGlzcGxheT0ibm9uZSI7ay5ib2R5LmFwcGVuZENoaWxkKHEpO289cS5nZXRDb250ZXh0KCIyZCIpO3U9bmV3IEltYWdlKCk7dS5vbmVycm9yPXUub25hYm9ydD1mdW5jdGlvbigpe3Yoe3N1Y2Nlc3M6ZmFsc2V9KX07dS5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgQix4LHoseSxBO2lmKCFwLndpZHRoKXtwLndpZHRoPXUud2lkdGh9aWYoIXAuaGVpZ2h0KXtwLmhlaWdodD11LmhlaWdodH1zPU1hdGgubWluKHAud2lkdGgvdS53aWR0aCxwLmhlaWdodC91LmhlaWdodCk7aWYoczwxfHwocz09PTEmJm49PT0iaW1hZ2UvanBlZyIpKXtCPU1hdGgucm91bmQodS53aWR0aCpzKTt4PU1hdGgucm91bmQodS5oZWlnaHQqcyk7cS53aWR0aD1CO3EuaGVpZ2h0PXg7by5kcmF3SW1hZ2UodSwwLDAsQix4KTtpZihuPT09ImltYWdlL2pwZWciKXt5PW5ldyBmKGF0b2Iody5zdWJzdHJpbmcody5pbmRleE9mKCJiYXNlNjQsIikrNykpKTtpZih5LmhlYWRlcnMmJnkuaGVhZGVycy5sZW5ndGgpe0E9bmV3IGEoKTtpZihBLmluaXQoeS5nZXQoImV4aWYiKVswXSkpe0Euc2V0RXhpZigiUGl4ZWxYRGltZW5zaW9uIixCKTtBLnNldEV4aWYoIlBpeGVsWURpbWVuc2lvbiIseCk7eS5zZXQoImV4aWYiLEEuZ2V0QmluYXJ5KCkpO2lmKHQuaGFzRXZlbnRMaXN0ZW5lcigiRXhpZkRhdGEiKSl7dC50cmlnZ2VyKCJFeGlmRGF0YSIscixBLkVYSUYoKSl9aWYodC5oYXNFdmVudExpc3RlbmVyKCJHcHNEYXRhIikpe3QudHJpZ2dlcigiR3BzRGF0YSIscixBLkdQUygpKX19fWlmKHAucXVhbGl0eSl7dHJ5e3c9cS50b0RhdGFVUkwobixwLnF1YWxpdHkvMTAwKX1jYXRjaChDKXt3PXEudG9EYXRhVVJMKG4pfX19ZWxzZXt3PXEudG9EYXRhVVJMKG4pfXc9dy5zdWJzdHJpbmcody5pbmRleE9mKCJiYXNlNjQsIikrNyk7dz1hdG9iKHcpO2lmKHkmJnkuaGVhZGVycyYmeS5oZWFkZXJzLmxlbmd0aCl7dz15LnJlc3RvcmUodyk7eS5wdXJnZSgpfXEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChxKTt2KHtzdWNjZXNzOnRydWUsZGF0YTp3fSl9ZWxzZXt2KHtzdWNjZXNzOmZhbHNlfSl9fTt1LnNyYz13fSl9ai5ydW50aW1lcy5IdG1sNT1qLmFkZFJ1bnRpbWUoImh0bWw1Iix7Z2V0RmVhdHVyZXM6ZnVuY3Rpb24oKXt2YXIgcyxvLHIscSxwLG47bz1yPXA9bj1mYWxzZTtpZihoLlhNTEh0dHBSZXF1ZXN0KXtzPW5ldyBYTUxIdHRwUmVxdWVzdCgpO3I9ISFzLnVwbG9hZDtvPSEhKHMuc2VuZEFzQmluYXJ5fHxzLnVwbG9hZCl9aWYobyl7cT0hIShzLnNlbmRBc0JpbmFyeXx8KGguVWludDhBcnJheSYmaC5BcnJheUJ1ZmZlcikpO3A9ISEoRmlsZSYmKEZpbGUucHJvdG90eXBlLmdldEFzRGF0YVVSTHx8aC5GaWxlUmVhZGVyKSYmcSk7bj0hIShGaWxlJiYoRmlsZS5wcm90b3R5cGUubW96U2xpY2V8fEZpbGUucHJvdG90eXBlLndlYmtpdFNsaWNlfHxGaWxlLnByb3RvdHlwZS5zbGljZSkpfWc9ai51YS5zYWZhcmkmJmoudWEud2luZG93cztyZXR1cm57aHRtbDU6byxkcmFnZHJvcDooZnVuY3Rpb24oKXt2YXIgdD1rLmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybigiZHJhZ2dhYmxlIiBpbiB0KXx8KCJvbmRyYWdzdGFydCIgaW4gdCYmIm9uZHJvcCIgaW4gdCl9KCkpLGpwZ3Jlc2l6ZTpwLHBuZ3Jlc2l6ZTpwLG11bHRpcGFydDpwfHwhIWguRmlsZVJlYWRlcnx8ISFoLkZvcm1EYXRhLGNhblNlbmRCaW5hcnk6cSxjYW50U2VuZEJsb2JJbkZvcm1EYXRhOiEhKGoudWEuZ2Vja28mJmguRm9ybURhdGEmJmguRmlsZVJlYWRlciYmIUZpbGVSZWFkZXIucHJvdG90eXBlLnJlYWRBc0FycmF5QnVmZmVyKSxwcm9ncmVzczpyLGNodW5rczpuLG11bHRpX3NlbGVjdGlvbjohKGoudWEuc2FmYXJpJiZqLnVhLndpbmRvd3MpLHRyaWdnZXJEaWFsb2c6KGoudWEuZ2Vja28mJmguRm9ybURhdGF8fGoudWEud2Via2l0KX19LGluaXQ6ZnVuY3Rpb24ocCxyKXt2YXIgbixxO2Z1bmN0aW9uIG8odyl7dmFyIHUsdCx2PVtdLHgscz17fTtmb3IodD0wO3Q8dy5sZW5ndGg7dCsrKXt1PXdbdF07aWYoc1t1Lm5hbWVdKXtjb250aW51ZX1zW3UubmFtZV09dHJ1ZTt4PWouZ3VpZCgpO2NbeF09dTt2LnB1c2gobmV3IGouRmlsZSh4LHUuZmlsZU5hbWV8fHUubmFtZSx1LmZpbGVTaXplfHx1LnNpemUpKX1pZih2Lmxlbmd0aCl7cC50cmlnZ2VyKCJGaWxlc0FkZGVkIix2KX19bj10aGlzLmdldEZlYXR1cmVzKCk7aWYoIW4uaHRtbDUpe3Ioe3N1Y2Nlc3M6ZmFsc2V9KTtyZXR1cm59cC5iaW5kKCJJbml0IixmdW5jdGlvbih3KXt2YXIgRyxGLEM9W10sdixELHQ9dy5zZXR0aW5ncy5maWx0ZXJzLHUsQixzPWsuYm9keSxFO0c9ay5jcmVhdGVFbGVtZW50KCJkaXYiKTtHLmlkPXcuaWQrIl9odG1sNV9jb250YWluZXIiO2ouZXh0ZW5kKEcuc3R5bGUse3Bvc2l0aW9uOiJhYnNvbHV0ZSIsYmFja2dyb3VuZDpwLnNldHRpbmdzLnNoaW1fYmdjb2xvcnx8InRyYW5zcGFyZW50Iix3aWR0aDoiMTAwcHgiLGhlaWdodDoiMTAwcHgiLG92ZXJmbG93OiJoaWRkZW4iLHpJbmRleDo5OTk5OSxvcGFjaXR5OnAuc2V0dGluZ3Muc2hpbV9iZ2NvbG9yPyIiOjB9KTtHLmNsYXNzTmFtZT0icGx1cGxvYWQgaHRtbDUiO2lmKHAuc2V0dGluZ3MuY29udGFpbmVyKXtzPWsuZ2V0RWxlbWVudEJ5SWQocC5zZXR0aW5ncy5jb250YWluZXIpO2lmKGouZ2V0U3R5bGUocywicG9zaXRpb24iKT09PSJzdGF0aWMiKXtzLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSJ9fXMuYXBwZW5kQ2hpbGQoRyk7bm9fdHlwZV9yZXN0cmljdGlvbjpmb3Iodj0wO3Y8dC5sZW5ndGg7disrKXt1PXRbdl0uZXh0ZW5zaW9ucy5zcGxpdCgvLC8pO2ZvcihEPTA7RDx1Lmxlbmd0aDtEKyspe2lmKHVbRF09PT0iKiIpe0M9W107YnJlYWsgbm9fdHlwZV9yZXN0cmljdGlvbn1CPWoubWltZVR5cGVzW3VbRF1dO2lmKEImJmouaW5BcnJheShCLEMpPT09LTEpe0MucHVzaChCKX19fUcuaW5uZXJIVE1MPSc8aW5wdXQgaWQ9IicrcC5pZCsnX2h0bWw1IiAgc3R5bGU9ImZvbnQtc2l6ZTo5OTlweCIgdHlwZT0iZmlsZSIgYWNjZXB0PSInK0Muam9pbigiLCIpKyciICcrKHAuc2V0dGluZ3MubXVsdGlfc2VsZWN0aW9uJiZwLmZlYXR1cmVzLm11bHRpX3NlbGVjdGlvbj8nbXVsdGlwbGU9Im11bHRpcGxlIic6IiIpKyIgLz4iO0cuc2Nyb2xsVG9wPTEwMDtFPWsuZ2V0RWxlbWVudEJ5SWQocC5pZCsiX2h0bWw1Iik7aWYody5mZWF0dXJlcy50cmlnZ2VyRGlhbG9nKXtqLmV4dGVuZChFLnN0eWxlLHtwb3NpdGlvbjoiYWJzb2x1dGUiLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUifSl9ZWxzZXtqLmV4dGVuZChFLnN0eWxlLHtjc3NGbG9hdDoicmlnaHQiLHN0eWxlRmxvYXQ6InJpZ2h0In0pfUUub25jaGFuZ2U9ZnVuY3Rpb24oKXtvKHRoaXMuZmlsZXMpO3RoaXMudmFsdWU9IiJ9O0Y9ay5nZXRFbGVtZW50QnlJZCh3LnNldHRpbmdzLmJyb3dzZV9idXR0b24pO2lmKEYpe3ZhciB6PXcuc2V0dGluZ3MuYnJvd3NlX2J1dHRvbl9ob3ZlcixBPXcuc2V0dGluZ3MuYnJvd3NlX2J1dHRvbl9hY3RpdmUseD13LmZlYXR1cmVzLnRyaWdnZXJEaWFsb2c/RjpHO2lmKHope2ouYWRkRXZlbnQoeCwibW91c2VvdmVyIixmdW5jdGlvbigpe2ouYWRkQ2xhc3MoRix6KX0sdy5pZCk7ai5hZGRFdmVudCh4LCJtb3VzZW91dCIsZnVuY3Rpb24oKXtqLnJlbW92ZUNsYXNzKEYseil9LHcuaWQpfWlmKEEpe2ouYWRkRXZlbnQoeCwibW91c2Vkb3duIixmdW5jdGlvbigpe2ouYWRkQ2xhc3MoRixBKX0sdy5pZCk7ai5hZGRFdmVudChrLmJvZHksIm1vdXNldXAiLGZ1bmN0aW9uKCl7ai5yZW1vdmVDbGFzcyhGLEEpfSx3LmlkKX1pZih3LmZlYXR1cmVzLnRyaWdnZXJEaWFsb2cpe2ouYWRkRXZlbnQoRiwiY2xpY2siLGZ1bmN0aW9uKEgpe3ZhciB5PWsuZ2V0RWxlbWVudEJ5SWQody5pZCsiX2h0bWw1Iik7aWYoeSYmIXkuZGlzYWJsZWQpe3kuY2xpY2soKX1ILnByZXZlbnREZWZhdWx0KCl9LHcuaWQpfX19KTtwLmJpbmQoIlBvc3RJbml0IixmdW5jdGlvbigpe3ZhciBzPWsuZ2V0RWxlbWVudEJ5SWQocC5zZXR0aW5ncy5kcm9wX2VsZW1lbnQpO2lmKHMpe2lmKGcpe2ouYWRkRXZlbnQocywiZHJhZ2VudGVyIixmdW5jdGlvbih3KXt2YXIgdix0LHU7dj1rLmdldEVsZW1lbnRCeUlkKHAuaWQrIl9kcm9wIik7aWYoIXYpe3Y9ay5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO3Yuc2V0QXR0cmlidXRlKCJ0eXBlIiwiZmlsZSIpO3Yuc2V0QXR0cmlidXRlKCJpZCIscC5pZCsiX2Ryb3AiKTt2LnNldEF0dHJpYnV0ZSgibXVsdGlwbGUiLCJtdWx0aXBsZSIpO2ouYWRkRXZlbnQodiwiY2hhbmdlIixmdW5jdGlvbigpe28odGhpcy5maWxlcyk7ai5yZW1vdmVFdmVudCh2LCJjaGFuZ2UiLHAuaWQpO3YucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh2KX0scC5pZCk7cy5hcHBlbmRDaGlsZCh2KX10PWouZ2V0UG9zKHMsay5nZXRFbGVtZW50QnlJZChwLnNldHRpbmdzLmNvbnRhaW5lcikpO3U9ai5nZXRTaXplKHMpO2lmKGouZ2V0U3R5bGUocywicG9zaXRpb24iKT09PSJzdGF0aWMiKXtqLmV4dGVuZChzLnN0eWxlLHtwb3NpdGlvbjoicmVsYXRpdmUifSl9ai5leHRlbmQodi5zdHlsZSx7cG9zaXRpb246ImFic29sdXRlIixkaXNwbGF5OiJibG9jayIsdG9wOjAsbGVmdDowLHdpZHRoOnUudysicHgiLGhlaWdodDp1LmgrInB4IixvcGFjaXR5OjB9KX0scC5pZCk7cmV0dXJufWouYWRkRXZlbnQocywiZHJhZ292ZXIiLGZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKX0scC5pZCk7ai5hZGRFdmVudChzLCJkcm9wIixmdW5jdGlvbih1KXt2YXIgdD11LmRhdGFUcmFuc2ZlcjtpZih0JiZ0LmZpbGVzKXtvKHQuZmlsZXMpfXUucHJldmVudERlZmF1bHQoKX0scC5pZCl9fSk7cC5iaW5kKCJSZWZyZXNoIixmdW5jdGlvbihzKXt2YXIgdCx1LHYseCx3O3Q9ay5nZXRFbGVtZW50QnlJZChwLnNldHRpbmdzLmJyb3dzZV9idXR0b24pO2lmKHQpe3U9ai5nZXRQb3ModCxrLmdldEVsZW1lbnRCeUlkKHMuc2V0dGluZ3MuY29udGFpbmVyKSk7dj1qLmdldFNpemUodCk7eD1rLmdldEVsZW1lbnRCeUlkKHAuaWQrIl9odG1sNV9jb250YWluZXIiKTtqLmV4dGVuZCh4LnN0eWxlLHt0b3A6dS55KyJweCIsbGVmdDp1LngrInB4Iix3aWR0aDp2LncrInB4IixoZWlnaHQ6di5oKyJweCJ9KTtpZihwLmZlYXR1cmVzLnRyaWdnZXJEaWFsb2cpe2lmKGouZ2V0U3R5bGUodCwicG9zaXRpb24iKT09PSJzdGF0aWMiKXtqLmV4dGVuZCh0LnN0eWxlLHtwb3NpdGlvbjoicmVsYXRpdmUifSl9dz1wYXJzZUludChqLmdldFN0eWxlKHQsInotaW5kZXgiKSwxMCk7aWYoaXNOYU4odykpe3c9MH1qLmV4dGVuZCh0LnN0eWxlLHt6SW5kZXg6d30pO2ouZXh0ZW5kKHguc3R5bGUse3pJbmRleDp3LTF9KX19fSk7cC5iaW5kKCJEaXNhYmxlQnJvd3NlIixmdW5jdGlvbihzLHUpe3ZhciB0PWsuZ2V0RWxlbWVudEJ5SWQocy5pZCsiX2h0bWw1Iik7aWYodCl7dC5kaXNhYmxlZD11fX0pO3AuYmluZCgiQ2FuY2VsVXBsb2FkIixmdW5jdGlvbigpe2lmKHEuYWJvcnQpe3EuYWJvcnQoKX19KTtwLmJpbmQoIlVwbG9hZEZpbGUiLGZ1bmN0aW9uKHMsdSl7dmFyIHY9cy5zZXR0aW5ncyx5LHQ7ZnVuY3Rpb24geChBLEQseil7dmFyIEI7aWYoRmlsZS5wcm90b3R5cGUuc2xpY2Upe3RyeXtBLnNsaWNlKCk7cmV0dXJuIEEuc2xpY2UoRCx6KX1jYXRjaChDKXtyZXR1cm4gQS5zbGljZShELHotRCl9fWVsc2V7aWYoQj1GaWxlLnByb3RvdHlwZS53ZWJraXRTbGljZXx8RmlsZS5wcm90b3R5cGUubW96U2xpY2Upe3JldHVybiBCLmNhbGwoQSxELHopfWVsc2V7cmV0dXJuIG51bGx9fX1mdW5jdGlvbiB3KEEpe3ZhciBEPTAsQz0wLHo9KCJGaWxlUmVhZGVyIiBpbiBoKT9uZXcgRmlsZVJlYWRlcjpudWxsO2Z1bmN0aW9uIEIoKXt2YXIgSSxNLEssTCxILEosRixFPXMuc2V0dGluZ3MudXJsO2Z1bmN0aW9uIEcoVil7dmFyIFQ9MCxOPSItLS0tcGx1cGxvYWRib3VuZGFyeSIrai5ndWlkKCksTyxQPSItLSIsVT0iXHJcbiIsUj0iIjtxPW5ldyBYTUxIdHRwUmVxdWVzdDtpZihxLnVwbG9hZCl7cS51cGxvYWQub25wcm9ncmVzcz1mdW5jdGlvbihXKXt1LmxvYWRlZD1NYXRoLm1pbih1LnNpemUsQytXLmxvYWRlZC1UKTtzLnRyaWdnZXIoIlVwbG9hZFByb2dyZXNzIix1KX19cS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXt2YXIgVyxZO2lmKHEucmVhZHlTdGF0ZT09NCYmcy5zdGF0ZSE9PWouU1RPUFBFRCl7dHJ5e1c9cS5zdGF0dXN9Y2F0Y2goWCl7Vz0wfWlmKFc+PTQwMCl7cy50cmlnZ2VyKCJFcnJvciIse2NvZGU6ai5IVFRQX0VSUk9SLG1lc3NhZ2U6ai50cmFuc2xhdGUoIkhUVFAgRXJyb3IuIiksZmlsZTp1LHN0YXR1czpXfSl9ZWxzZXtpZihLKXtZPXtjaHVuazpELGNodW5rczpLLHJlc3BvbnNlOnEucmVzcG9uc2VUZXh0LHN0YXR1czpXfTtzLnRyaWdnZXIoIkNodW5rVXBsb2FkZWQiLHUsWSk7Qys9SjtpZihZLmNhbmNlbGxlZCl7dS5zdGF0dXM9ai5GQUlMRUQ7cmV0dXJufXUubG9hZGVkPU1hdGgubWluKHUuc2l6ZSwoRCsxKSpIKX1lbHNle3UubG9hZGVkPXUuc2l6ZX1zLnRyaWdnZXIoIlVwbG9hZFByb2dyZXNzIix1KTtWPUk9Tz1SPW51bGw7aWYoIUt8fCsrRD49Syl7dS5zdGF0dXM9ai5ET05FO3MudHJpZ2dlcigiRmlsZVVwbG9hZGVkIix1LHtyZXNwb25zZTpxLnJlc3BvbnNlVGV4dCxzdGF0dXM6V30pfWVsc2V7QigpfX19fTtpZihzLnNldHRpbmdzLm11bHRpcGFydCYmbi5tdWx0aXBhcnQpe0wubmFtZT11LnRhcmdldF9uYW1lfHx1Lm5hbWU7cS5vcGVuKCJwb3N0IixFLHRydWUpO2ouZWFjaChzLnNldHRpbmdzLmhlYWRlcnMsZnVuY3Rpb24oWCxXKXtxLnNldFJlcXVlc3RIZWFkZXIoVyxYKX0pO2lmKHR5cGVvZihWKSE9PSJzdHJpbmciJiYhIWguRm9ybURhdGEpe089bmV3IEZvcm1EYXRhKCk7ai5lYWNoKGouZXh0ZW5kKEwscy5zZXR0aW5ncy5tdWx0aXBhcnRfcGFyYW1zKSxmdW5jdGlvbihYLFcpe08uYXBwZW5kKFcsWCl9KTtPLmFwcGVuZChzLnNldHRpbmdzLmZpbGVfZGF0YV9uYW1lLFYpO3Euc2VuZChPKTtyZXR1cm59aWYodHlwZW9mKFYpPT09InN0cmluZyIpe3Euc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwibXVsdGlwYXJ0L2Zvcm0tZGF0YTsgYm91bmRhcnk9IitOKTtqLmVhY2goai5leHRlbmQoTCxzLnNldHRpbmdzLm11bHRpcGFydF9wYXJhbXMpLGZ1bmN0aW9uKFgsVyl7Uis9UCtOK1UrJ0NvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0tZGF0YTsgbmFtZT0iJytXKyciJytVK1U7Uis9dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KFgpKStVfSk7Rj1qLm1pbWVUeXBlc1t1Lm5hbWUucmVwbGFjZSgvXi4rXC4oW14uXSspLywiJDEiKS50b0xvd2VyQ2FzZSgpXXx8ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSI7Uis9UCtOK1UrJ0NvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0tZGF0YTsgbmFtZT0iJytzLnNldHRpbmdzLmZpbGVfZGF0YV9uYW1lKyciOyBmaWxlbmFtZT0iJyt1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQodS5uYW1lKSkrJyInK1UrIkNvbnRlbnQtVHlwZTogIitGK1UrVStWK1UrUCtOK1ArVTtUPVIubGVuZ3RoLVYubGVuZ3RoO1Y9UjtpZihxLnNlbmRBc0JpbmFyeSl7cS5zZW5kQXNCaW5hcnkoVil9ZWxzZXtpZihuLmNhblNlbmRCaW5hcnkpe3ZhciBTPW5ldyBVaW50OEFycmF5KFYubGVuZ3RoKTtmb3IodmFyIFE9MDtRPFYubGVuZ3RoO1ErKyl7U1tRXT0oVi5jaGFyQ29kZUF0KFEpJjI1NSl9cS5zZW5kKFMuYnVmZmVyKX19cmV0dXJufX1FPWouYnVpbGRVcmwocy5zZXR0aW5ncy51cmwsai5leHRlbmQoTCxzLnNldHRpbmdzLm11bHRpcGFydF9wYXJhbXMpKTtxLm9wZW4oInBvc3QiLEUsdHJ1ZSk7cS5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iKTtqLmVhY2gocy5zZXR0aW5ncy5oZWFkZXJzLGZ1bmN0aW9uKFgsVyl7cS5zZXRSZXF1ZXN0SGVhZGVyKFcsWCl9KTtxLnNlbmQoVil9aWYodS5zdGF0dXM9PWouRE9ORXx8dS5zdGF0dXM9PWouRkFJTEVEfHxzLnN0YXRlPT1qLlNUT1BQRUQpe3JldHVybn1MPXtuYW1lOnUudGFyZ2V0X25hbWV8fHUubmFtZX07aWYodi5jaHVua19zaXplJiZ1LnNpemU+di5jaHVua19zaXplJiYobi5jaHVua3N8fHR5cGVvZihBKT09InN0cmluZyIpKXtIPXYuY2h1bmtfc2l6ZTtLPU1hdGguY2VpbCh1LnNpemUvSCk7Sj1NYXRoLm1pbihILHUuc2l6ZS0oRCpIKSk7aWYodHlwZW9mKEEpPT0ic3RyaW5nIil7ST1BLnN1YnN0cmluZyhEKkgsRCpIK0opfWVsc2V7ST14KEEsRCpILEQqSCtKKX1MLmNodW5rPUQ7TC5jaHVua3M9S31lbHNle0o9dS5zaXplO0k9QX1pZihzLnNldHRpbmdzLm11bHRpcGFydCYmbi5tdWx0aXBhcnQmJnR5cGVvZihJKSE9PSJzdHJpbmciJiZ6JiZuLmNhbnRTZW5kQmxvYkluRm9ybURhdGEmJm4uY2h1bmtzJiZzLnNldHRpbmdzLmNodW5rX3NpemUpe3oub25sb2FkPWZ1bmN0aW9uKCl7Ryh6LnJlc3VsdCl9O3oucmVhZEFzQmluYXJ5U3RyaW5nKEkpfWVsc2V7RyhJKX19QigpfXk9Y1t1LmlkXTtpZihuLmpwZ3Jlc2l6ZSYmcy5zZXR0aW5ncy5yZXNpemUmJi9cLihwbmd8anBnfGpwZWcpJC9pLnRlc3QodS5uYW1lKSl7ZC5jYWxsKHMsdSxzLnNldHRpbmdzLnJlc2l6ZSwvXC5wbmckL2kudGVzdCh1Lm5hbWUpPyJpbWFnZS9wbmciOiJpbWFnZS9qcGVnIixmdW5jdGlvbih6KXtpZih6LnN1Y2Nlc3Mpe3Uuc2l6ZT16LmRhdGEubGVuZ3RoO3coei5kYXRhKX1lbHNle2lmKG4uY2h1bmtzKXt3KHkpfWVsc2V7bCh5LHcpfX19KX1lbHNle2lmKCFuLmNodW5rcyYmbi5qcGdyZXNpemUpe2woeSx3KX1lbHNle3coeSl9fX0pO3AuYmluZCgiRGVzdHJveSIsZnVuY3Rpb24ocyl7dmFyIHUsdix0PWsuYm9keSx3PXtpbnB1dENvbnRhaW5lcjpzLmlkKyJfaHRtbDVfY29udGFpbmVyIixpbnB1dEZpbGU6cy5pZCsiX2h0bWw1Iixicm93c2VCdXR0b246cy5zZXR0aW5ncy5icm93c2VfYnV0dG9uLGRyb3BFbG06cy5zZXR0aW5ncy5kcm9wX2VsZW1lbnR9O2Zvcih1IGluIHcpe3Y9ay5nZXRFbGVtZW50QnlJZCh3W3VdKTtpZih2KXtqLnJlbW92ZUFsbEV2ZW50cyh2LHMuaWQpfX1qLnJlbW92ZUFsbEV2ZW50cyhrLmJvZHkscy5pZCk7aWYocy5zZXR0aW5ncy5jb250YWluZXIpe3Q9ay5nZXRFbGVtZW50QnlJZChzLnNldHRpbmdzLmNvbnRhaW5lcil9dC5yZW1vdmVDaGlsZChrLmdldEVsZW1lbnRCeUlkKHcuaW5wdXRDb250YWluZXIpKX0pO3Ioe3N1Y2Nlc3M6dHJ1ZX0pfX0pO2Z1bmN0aW9uIGIoKXt2YXIgcT1mYWxzZSxvO2Z1bmN0aW9uIHIodCx2KXt2YXIgcz1xPzA6LTgqKHYtMSksdz0wLHU7Zm9yKHU9MDt1PHY7dSsrKXt3fD0oby5jaGFyQ29kZUF0KHQrdSk8PE1hdGguYWJzKHMrdSo4KSl9cmV0dXJuIHd9ZnVuY3Rpb24gbih1LHMsdCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD09PTM/dDpvLmxlbmd0aC1zLTE7bz1vLnN1YnN0cigwLHMpK3Urby5zdWJzdHIodCtzKX1mdW5jdGlvbiBwKHQsdSx3KXt2YXIgeD0iIixzPXE/MDotOCoody0xKSx2O2Zvcih2PTA7djx3O3YrKyl7eCs9U3RyaW5nLmZyb21DaGFyQ29kZSgodT4+TWF0aC5hYnMocyt2KjgpKSYyNTUpfW4oeCx0LHcpfXJldHVybntJSTpmdW5jdGlvbihzKXtpZihzPT09ZSl7cmV0dXJuIHF9ZWxzZXtxPXN9fSxpbml0OmZ1bmN0aW9uKHMpe3E9ZmFsc2U7bz1zfSxTRUdNRU5UOmZ1bmN0aW9uKHMsdSx0KXtzd2l0Y2goYXJndW1lbnRzLmxlbmd0aCl7Y2FzZSAxOnJldHVybiBvLnN1YnN0cihzLG8ubGVuZ3RoLXMtMSk7Y2FzZSAyOnJldHVybiBvLnN1YnN0cihzLHUpO2Nhc2UgMzpuKHQscyx1KTticmVhaztkZWZhdWx0OnJldHVybiBvfX0sQllURTpmdW5jdGlvbihzKXtyZXR1cm4gcihzLDEpfSxTSE9SVDpmdW5jdGlvbihzKXtyZXR1cm4gcihzLDIpfSxMT05HOmZ1bmN0aW9uKHMsdCl7aWYodD09PWUpe3JldHVybiByKHMsNCl9ZWxzZXtwKHMsdCw0KX19LFNMT05HOmZ1bmN0aW9uKHMpe3ZhciB0PXIocyw0KTtyZXR1cm4odD4yMTQ3NDgzNjQ3P3QtNDI5NDk2NzI5Njp0KX0sU1RSSU5HOmZ1bmN0aW9uKHMsdCl7dmFyIHU9IiI7Zm9yKHQrPXM7czx0O3MrKyl7dSs9U3RyaW5nLmZyb21DaGFyQ29kZShyKHMsMSkpfXJldHVybiB1fX19ZnVuY3Rpb24gZihzKXt2YXIgdT17NjU1MDU6e2FwcDoiRVhJRiIsbmFtZToiQVBQMSIsc2lnbmF0dXJlOiJFeGlmXDAifSw2NTUwNjp7YXBwOiJJQ0MiLG5hbWU6IkFQUDIiLHNpZ25hdHVyZToiSUNDX1BST0ZJTEVcMCJ9LDY1NTE3OnthcHA6IklQVEMiLG5hbWU6IkFQUDEzIixzaWduYXR1cmU6IlBob3Rvc2hvcCAzLjBcMCJ9fSx0PVtdLHIsbixwPWUscT0wLG87cj1uZXcgYigpO3IuaW5pdChzKTtpZihyLlNIT1JUKDApIT09NjU0OTYpe3JldHVybn1uPTI7bz1NYXRoLm1pbigxMDQ4NTc2LHMubGVuZ3RoKTt3aGlsZShuPD1vKXtwPXIuU0hPUlQobik7aWYocD49NjU0ODgmJnA8PTY1NDk1KXtuKz0yO2NvbnRpbnVlfWlmKHA9PT02NTQ5OHx8cD09PTY1NDk3KXticmVha31xPXIuU0hPUlQobisyKSsyO2lmKHVbcF0mJnIuU1RSSU5HKG4rNCx1W3BdLnNpZ25hdHVyZS5sZW5ndGgpPT09dVtwXS5zaWduYXR1cmUpe3QucHVzaCh7aGV4OnAsYXBwOnVbcF0uYXBwLnRvVXBwZXJDYXNlKCksbmFtZTp1W3BdLm5hbWUudG9VcHBlckNhc2UoKSxzdGFydDpuLGxlbmd0aDpxLHNlZ21lbnQ6ci5TRUdNRU5UKG4scSl9KX1uKz1xfXIuaW5pdChudWxsKTtyZXR1cm57aGVhZGVyczp0LHJlc3RvcmU6ZnVuY3Rpb24oeSl7ci5pbml0KHkpO3ZhciB3PW5ldyBmKHkpO2lmKCF3LmhlYWRlcnMpe3JldHVybiBmYWxzZX1mb3IodmFyIHg9dy5oZWFkZXJzLmxlbmd0aDt4PjA7eC0tKXt2YXIgej13LmhlYWRlcnNbeC0xXTtyLlNFR01FTlQoei5zdGFydCx6Lmxlbmd0aCwiIil9dy5wdXJnZSgpO249ci5TSE9SVCgyKT09NjU1MDQ/NCtyLlNIT1JUKDQpOjI7Zm9yKHZhciB4PTAsdj10Lmxlbmd0aDt4PHY7eCsrKXtyLlNFR01FTlQobiwwLHRbeF0uc2VnbWVudCk7bis9dFt4XS5sZW5ndGh9cmV0dXJuIHIuU0VHTUVOVCgpfSxnZXQ6ZnVuY3Rpb24oeCl7dmFyIHk9W107Zm9yKHZhciB3PTAsdj10Lmxlbmd0aDt3PHY7dysrKXtpZih0W3ddLmFwcD09PXgudG9VcHBlckNhc2UoKSl7eS5wdXNoKHRbd10uc2VnbWVudCl9fXJldHVybiB5fSxzZXQ6ZnVuY3Rpb24oeSx4KXt2YXIgej1bXTtpZih0eXBlb2YoeCk9PT0ic3RyaW5nIil7ei5wdXNoKHgpfWVsc2V7ej14fWZvcih2YXIgdz1paT0wLHY9dC5sZW5ndGg7dzx2O3crKyl7aWYodFt3XS5hcHA9PT15LnRvVXBwZXJDYXNlKCkpe3Rbd10uc2VnbWVudD16W2lpXTt0W3ddLmxlbmd0aD16W2lpXS5sZW5ndGg7aWkrK31pZihpaT49ei5sZW5ndGgpe2JyZWFrfX19LHB1cmdlOmZ1bmN0aW9uKCl7dD1bXTtyLmluaXQobnVsbCl9fX1mdW5jdGlvbiBhKCl7dmFyIHEsbixvPXt9LHQ7cT1uZXcgYigpO249e3RpZmY6ezI3NDoiT3JpZW50YXRpb24iLDM0NjY1OiJFeGlmSUZEUG9pbnRlciIsMzQ4NTM6IkdQU0luZm9JRkRQb2ludGVyIn0sZXhpZjp7MzY4NjQ6IkV4aWZWZXJzaW9uIiw0MDk2MToiQ29sb3JTcGFjZSIsNDA5NjI6IlBpeGVsWERpbWVuc2lvbiIsNDA5NjM6IlBpeGVsWURpbWVuc2lvbiIsMzY4Njc6IkRhdGVUaW1lT3JpZ2luYWwiLDMzNDM0OiJFeHBvc3VyZVRpbWUiLDMzNDM3OiJGTnVtYmVyIiwzNDg1NToiSVNPU3BlZWRSYXRpbmdzIiwzNzM3NzoiU2h1dHRlclNwZWVkVmFsdWUiLDM3Mzc4OiJBcGVydHVyZVZhbHVlIiwzNzM4MzoiTWV0ZXJpbmdNb2RlIiwzNzM4NDoiTGlnaHRTb3VyY2UiLDM3Mzg1OiJGbGFzaCIsNDE5ODY6IkV4cG9zdXJlTW9kZSIsNDE5ODc6IldoaXRlQmFsYW5jZSIsNDE5OTA6IlNjZW5lQ2FwdHVyZVR5cGUiLDQxOTg4OiJEaWdpdGFsWm9vbVJhdGlvIiw0MTk5MjoiQ29udHJhc3QiLDQxOTkzOiJTYXR1cmF0aW9uIiw0MTk5NDoiU2hhcnBuZXNzIn0sZ3BzOnswOiJHUFNWZXJzaW9uSUQiLDE6IkdQU0xhdGl0dWRlUmVmIiwyOiJHUFNMYXRpdHVkZSIsMzoiR1BTTG9uZ2l0dWRlUmVmIiw0OiJHUFNMb25naXR1ZGUifX07dD17Q29sb3JTcGFjZTp7MToic1JHQiIsMDoiVW5jYWxpYnJhdGVkIn0sTWV0ZXJpbmdNb2RlOnswOiJVbmtub3duIiwxOiJBdmVyYWdlIiwyOiJDZW50ZXJXZWlnaHRlZEF2ZXJhZ2UiLDM6IlNwb3QiLDQ6Ik11bHRpU3BvdCIsNToiUGF0dGVybiIsNjoiUGFydGlhbCIsMjU1OiJPdGhlciJ9LExpZ2h0U291cmNlOnsxOiJEYXlsaWdodCIsMjoiRmxpb3Jlc2NlbnQiLDM6IlR1bmdzdGVuIiw0OiJGbGFzaCIsOToiRmluZSB3ZWF0aGVyIiwxMDoiQ2xvdWR5IHdlYXRoZXIiLDExOiJTaGFkZSIsMTI6IkRheWxpZ2h0IGZsdW9yZXNjZW50IChEIDU3MDAgLSA3MTAwSykiLDEzOiJEYXkgd2hpdGUgZmx1b3Jlc2NlbnQgKE4gNDYwMCAtNTQwMEspIiwxNDoiQ29vbCB3aGl0ZSBmbHVvcmVzY2VudCAoVyAzOTAwIC0gNDUwMEspIiwxNToiV2hpdGUgZmx1b3Jlc2NlbnQgKFdXIDMyMDAgLSAzNzAwSykiLDE3OiJTdGFuZGFyZCBsaWdodCBBIiwxODoiU3RhbmRhcmQgbGlnaHQgQiIsMTk6IlN0YW5kYXJkIGxpZ2h0IEMiLDIwOiJENTUiLDIxOiJENjUiLDIyOiJENzUiLDIzOiJENTAiLDI0OiJJU08gc3R1ZGlvIHR1bmdzdGVuIiwyNTU6Ik90aGVyIn0sRmxhc2g6ezA6IkZsYXNoIGRpZCBub3QgZmlyZS4iLDE6IkZsYXNoIGZpcmVkLiIsNToiU3Ryb2JlIHJldHVybiBsaWdodCBub3QgZGV0ZWN0ZWQuIiw3OiJTdHJvYmUgcmV0dXJuIGxpZ2h0IGRldGVjdGVkLiIsOToiRmxhc2ggZmlyZWQsIGNvbXB1bHNvcnkgZmxhc2ggbW9kZSIsMTM6IkZsYXNoIGZpcmVkLCBjb21wdWxzb3J5IGZsYXNoIG1vZGUsIHJldHVybiBsaWdodCBub3QgZGV0ZWN0ZWQiLDE1OiJGbGFzaCBmaXJlZCwgY29tcHVsc29yeSBmbGFzaCBtb2RlLCByZXR1cm4gbGlnaHQgZGV0ZWN0ZWQiLDE2OiJGbGFzaCBkaWQgbm90IGZpcmUsIGNvbXB1bHNvcnkgZmxhc2ggbW9kZSIsMjQ6IkZsYXNoIGRpZCBub3QgZmlyZSwgYXV0byBtb2RlIiwyNToiRmxhc2ggZmlyZWQsIGF1dG8gbW9kZSIsMjk6IkZsYXNoIGZpcmVkLCBhdXRvIG1vZGUsIHJldHVybiBsaWdodCBub3QgZGV0ZWN0ZWQiLDMxOiJGbGFzaCBmaXJlZCwgYXV0byBtb2RlLCByZXR1cm4gbGlnaHQgZGV0ZWN0ZWQiLDMyOiJObyBmbGFzaCBmdW5jdGlvbiIsNjU6IkZsYXNoIGZpcmVkLCByZWQtZXllIHJlZHVjdGlvbiBtb2RlIiw2OToiRmxhc2ggZmlyZWQsIHJlZC1leWUgcmVkdWN0aW9uIG1vZGUsIHJldHVybiBsaWdodCBub3QgZGV0ZWN0ZWQiLDcxOiJGbGFzaCBmaXJlZCwgcmVkLWV5ZSByZWR1Y3Rpb24gbW9kZSwgcmV0dXJuIGxpZ2h0IGRldGVjdGVkIiw3MzoiRmxhc2ggZmlyZWQsIGNvbXB1bHNvcnkgZmxhc2ggbW9kZSwgcmVkLWV5ZSByZWR1Y3Rpb24gbW9kZSIsNzc6IkZsYXNoIGZpcmVkLCBjb21wdWxzb3J5IGZsYXNoIG1vZGUsIHJlZC1leWUgcmVkdWN0aW9uIG1vZGUsIHJldHVybiBsaWdodCBub3QgZGV0ZWN0ZWQiLDc5OiJGbGFzaCBmaXJlZCwgY29tcHVsc29yeSBmbGFzaCBtb2RlLCByZWQtZXllIHJlZHVjdGlvbiBtb2RlLCByZXR1cm4gbGlnaHQgZGV0ZWN0ZWQiLDg5OiJGbGFzaCBmaXJlZCwgYXV0byBtb2RlLCByZWQtZXllIHJlZHVjdGlvbiBtb2RlIiw5MzoiRmxhc2ggZmlyZWQsIGF1dG8gbW9kZSwgcmV0dXJuIGxpZ2h0IG5vdCBkZXRlY3RlZCwgcmVkLWV5ZSByZWR1Y3Rpb24gbW9kZSIsOTU6IkZsYXNoIGZpcmVkLCBhdXRvIG1vZGUsIHJldHVybiBsaWdodCBkZXRlY3RlZCwgcmVkLWV5ZSByZWR1Y3Rpb24gbW9kZSJ9LEV4cG9zdXJlTW9kZTp7MDoiQXV0byBleHBvc3VyZSIsMToiTWFudWFsIGV4cG9zdXJlIiwyOiJBdXRvIGJyYWNrZXQifSxXaGl0ZUJhbGFuY2U6ezA6IkF1dG8gd2hpdGUgYmFsYW5jZSIsMToiTWFudWFsIHdoaXRlIGJhbGFuY2UifSxTY2VuZUNhcHR1cmVUeXBlOnswOiJTdGFuZGFyZCIsMToiTGFuZHNjYXBlIiwyOiJQb3J0cmFpdCIsMzoiTmlnaHQgc2NlbmUifSxDb250cmFzdDp7MDoiTm9ybWFsIiwxOiJTb2Z0IiwyOiJIYXJkIn0sU2F0dXJhdGlvbjp7MDoiTm9ybWFsIiwxOiJMb3cgc2F0dXJhdGlvbiIsMjoiSGlnaCBzYXR1cmF0aW9uIn0sU2hhcnBuZXNzOnswOiJOb3JtYWwiLDE6IlNvZnQiLDI6IkhhcmQifSxHUFNMYXRpdHVkZVJlZjp7TjoiTm9ydGggbGF0aXR1ZGUiLFM6IlNvdXRoIGxhdGl0dWRlIn0sR1BTTG9uZ2l0dWRlUmVmOntFOiJFYXN0IGxvbmdpdHVkZSIsVzoiV2VzdCBsb25naXR1ZGUifX07ZnVuY3Rpb24gcCh1LEMpe3ZhciB3PXEuU0hPUlQodSkseixGLEcsQixBLHYseCxELEU9W10seT17fTtmb3Ioej0wO3o8dzt6Kyspe3g9dj11KzEyKnorMjtHPUNbcS5TSE9SVCh4KV07aWYoRz09PWUpe2NvbnRpbnVlfUI9cS5TSE9SVCh4Kz0yKTtBPXEuTE9ORyh4Kz0yKTt4Kz00O0U9W107c3dpdGNoKEIpe2Nhc2UgMTpjYXNlIDc6aWYoQT40KXt4PXEuTE9ORyh4KStvLnRpZmZIZWFkZXJ9Zm9yKEY9MDtGPEE7RisrKXtFW0ZdPXEuQllURSh4K0YpfWJyZWFrO2Nhc2UgMjppZihBPjQpe3g9cS5MT05HKHgpK28udGlmZkhlYWRlcn15W0ddPXEuU1RSSU5HKHgsQS0xKTtjb250aW51ZTtjYXNlIDM6aWYoQT4yKXt4PXEuTE9ORyh4KStvLnRpZmZIZWFkZXJ9Zm9yKEY9MDtGPEE7RisrKXtFW0ZdPXEuU0hPUlQoeCtGKjIpfWJyZWFrO2Nhc2UgNDppZihBPjEpe3g9cS5MT05HKHgpK28udGlmZkhlYWRlcn1mb3IoRj0wO0Y8QTtGKyspe0VbRl09cS5MT05HKHgrRio0KX1icmVhaztjYXNlIDU6eD1xLkxPTkcoeCkrby50aWZmSGVhZGVyO2ZvcihGPTA7RjxBO0YrKyl7RVtGXT1xLkxPTkcoeCtGKjQpL3EuTE9ORyh4K0YqNCs0KX1icmVhaztjYXNlIDk6eD1xLkxPTkcoeCkrby50aWZmSGVhZGVyO2ZvcihGPTA7RjxBO0YrKyl7RVtGXT1xLlNMT05HKHgrRio0KX1icmVhaztjYXNlIDEwOng9cS5MT05HKHgpK28udGlmZkhlYWRlcjtmb3IoRj0wO0Y8QTtGKyspe0VbRl09cS5TTE9ORyh4K0YqNCkvcS5TTE9ORyh4K0YqNCs0KX1icmVhaztkZWZhdWx0OmNvbnRpbnVlfUQ9KEE9PTE/RVswXTpFKTtpZih0Lmhhc093blByb3BlcnR5KEcpJiZ0eXBlb2YgRCE9Im9iamVjdCIpe3lbR109dFtHXVtEXX1lbHNle3lbR109RH19cmV0dXJuIHl9ZnVuY3Rpb24gcygpe3ZhciB2PWUsdT1vLnRpZmZIZWFkZXI7cS5JSShxLlNIT1JUKHUpPT0xODc2MSk7aWYocS5TSE9SVCh1Kz0yKSE9PTQyKXtyZXR1cm4gZmFsc2V9by5JRkQwPW8udGlmZkhlYWRlcitxLkxPTkcodSs9Mik7dj1wKG8uSUZEMCxuLnRpZmYpO28uZXhpZklGRD0oIkV4aWZJRkRQb2ludGVyIiBpbiB2P28udGlmZkhlYWRlcit2LkV4aWZJRkRQb2ludGVyOmUpO28uZ3BzSUZEPSgiR1BTSW5mb0lGRFBvaW50ZXIiIGluIHY/by50aWZmSGVhZGVyK3YuR1BTSW5mb0lGRFBvaW50ZXI6ZSk7cmV0dXJuIHRydWV9ZnVuY3Rpb24gcih3LHUseil7dmFyIEIseSx4LEE9MDtpZih0eXBlb2YodSk9PT0ic3RyaW5nIil7dmFyIHY9blt3LnRvTG93ZXJDYXNlKCldO2ZvcihoZXggaW4gdil7aWYodltoZXhdPT09dSl7dT1oZXg7YnJlYWt9fX1CPW9bdy50b0xvd2VyQ2FzZSgpKyJJRkQiXTt5PXEuU0hPUlQoQik7Zm9yKGk9MDtpPHk7aSsrKXt4PUIrMTIqaSsyO2lmKHEuU0hPUlQoeCk9PXUpe0E9eCs4O2JyZWFrfX1pZighQSl7cmV0dXJuIGZhbHNlfXEuTE9ORyhBLHopO3JldHVybiB0cnVlfXJldHVybntpbml0OmZ1bmN0aW9uKHUpe289e3RpZmZIZWFkZXI6MTB9O2lmKHU9PT1lfHwhdS5sZW5ndGgpe3JldHVybiBmYWxzZX1xLmluaXQodSk7aWYocS5TSE9SVCgwKT09PTY1NTA1JiZxLlNUUklORyg0LDUpLnRvVXBwZXJDYXNlKCk9PT0iRVhJRlwwIil7cmV0dXJuIHMoKX1yZXR1cm4gZmFsc2V9LEVYSUY6ZnVuY3Rpb24oKXt2YXIgdjt2PXAoby5leGlmSUZELG4uZXhpZik7aWYodi5FeGlmVmVyc2lvbiYmai50eXBlT2Yodi5FeGlmVmVyc2lvbik9PT0iYXJyYXkiKXtmb3IodmFyIHc9MCx1PSIiO3c8di5FeGlmVmVyc2lvbi5sZW5ndGg7dysrKXt1Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKHYuRXhpZlZlcnNpb25bd10pfXYuRXhpZlZlcnNpb249dX1yZXR1cm4gdn0sR1BTOmZ1bmN0aW9uKCl7dmFyIHU7dT1wKG8uZ3BzSUZELG4uZ3BzKTtpZih1LkdQU1ZlcnNpb25JRCl7dS5HUFNWZXJzaW9uSUQ9dS5HUFNWZXJzaW9uSUQuam9pbigiLiIpfXJldHVybiB1fSxzZXRFeGlmOmZ1bmN0aW9uKHUsdil7aWYodSE9PSJQaXhlbFhEaW1lbnNpb24iJiZ1IT09IlBpeGVsWURpbWVuc2lvbiIpe3JldHVybiBmYWxzZX1yZXR1cm4gcigiZXhpZiIsdSx2KX0sZ2V0QmluYXJ5OmZ1bmN0aW9uKCl7cmV0dXJuIHEuU0VHTUVOVCgpfX19fSkod2luZG93LGRvY3VtZW50LHBsdXBsb2FkKTsoZnVuY3Rpb24oZCxhLGIsYyl7ZnVuY3Rpb24gZShmKXtyZXR1cm4gYS5nZXRFbGVtZW50QnlJZChmKX1iLnJ1bnRpbWVzLkh0bWw0PWIuYWRkUnVudGltZSgiaHRtbDQiLHtnZXRGZWF0dXJlczpmdW5jdGlvbigpe3JldHVybnttdWx0aXBhcnQ6dHJ1ZSx0cmlnZ2VyRGlhbG9nOihiLnVhLmdlY2tvJiZkLkZvcm1EYXRhfHxiLnVhLndlYmtpdCl9fSxpbml0OmZ1bmN0aW9uKGYsZyl7Zi5iaW5kKCJJbml0IixmdW5jdGlvbihwKXt2YXIgaj1hLmJvZHksbixoPSJqYXZhc2NyaXB0IixrLHgscSx6PVtdLHI9L01TSUUvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksdD1bXSxtPXAuc2V0dGluZ3MuZmlsdGVycyxvLGwscyx3O25vX3R5cGVfcmVzdHJpY3Rpb246Zm9yKG89MDtvPG0ubGVuZ3RoO28rKyl7bD1tW29dLmV4dGVuc2lvbnMuc3BsaXQoLywvKTtmb3Iodz0wO3c8bC5sZW5ndGg7dysrKXtpZihsW3ddPT09IioiKXt0PVtdO2JyZWFrIG5vX3R5cGVfcmVzdHJpY3Rpb259cz1iLm1pbWVUeXBlc1tsW3ddXTtpZihzJiZiLmluQXJyYXkocyx0KT09PS0xKXt0LnB1c2gocyl9fX10PXQuam9pbigiLCIpO2Z1bmN0aW9uIHYoKXt2YXIgQyxBLHksQjtxPWIuZ3VpZCgpO3oucHVzaChxKTtDPWEuY3JlYXRlRWxlbWVudCgiZm9ybSIpO0Muc2V0QXR0cmlidXRlKCJpZCIsImZvcm1fIitxKTtDLnNldEF0dHJpYnV0ZSgibWV0aG9kIiwicG9zdCIpO0Muc2V0QXR0cmlidXRlKCJlbmN0eXBlIiwibXVsdGlwYXJ0L2Zvcm0tZGF0YSIpO0Muc2V0QXR0cmlidXRlKCJlbmNvZGluZyIsIm11bHRpcGFydC9mb3JtLWRhdGEiKTtDLnNldEF0dHJpYnV0ZSgidGFyZ2V0IixwLmlkKyJfaWZyYW1lIik7Qy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO0E9YS5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO0Euc2V0QXR0cmlidXRlKCJpZCIsImlucHV0XyIrcSk7QS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJmaWxlIik7QS5zZXRBdHRyaWJ1dGUoImFjY2VwdCIsdCk7QS5zZXRBdHRyaWJ1dGUoInNpemUiLDEpO0I9ZShwLnNldHRpbmdzLmJyb3dzZV9idXR0b24pO2lmKHAuZmVhdHVyZXMudHJpZ2dlckRpYWxvZyYmQil7Yi5hZGRFdmVudChlKHAuc2V0dGluZ3MuYnJvd3NlX2J1dHRvbiksImNsaWNrIixmdW5jdGlvbihEKXtpZighQS5kaXNhYmxlZCl7QS5jbGljaygpfUQucHJldmVudERlZmF1bHQoKX0scC5pZCl9Yi5leHRlbmQoQS5zdHlsZSx7d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsb3BhY2l0eTowLGZvbnRTaXplOiI5OXB4In0pO2IuZXh0ZW5kKEMuc3R5bGUse292ZXJmbG93OiJoaWRkZW4ifSk7eT1wLnNldHRpbmdzLnNoaW1fYmdjb2xvcjtpZih5KXtDLnN0eWxlLmJhY2tncm91bmQ9eX1pZihyKXtiLmV4dGVuZChBLnN0eWxlLHtmaWx0ZXI6ImFscGhhKG9wYWNpdHk9MCkifSl9Yi5hZGRFdmVudChBLCJjaGFuZ2UiLGZ1bmN0aW9uKEcpe3ZhciBFPUcudGFyZ2V0LEQsRj1bXSxIO2lmKEUudmFsdWUpe2UoImZvcm1fIitxKS5zdHlsZS50b3A9LTEwNDg1NzUrInB4IjtEPUUudmFsdWUucmVwbGFjZSgvXFwvZywiLyIpO0Q9RC5zdWJzdHJpbmcoRC5sZW5ndGgsRC5sYXN0SW5kZXhPZigiLyIpKzEpO0YucHVzaChuZXcgYi5GaWxlKHEsRCkpO2lmKCFwLmZlYXR1cmVzLnRyaWdnZXJEaWFsb2cpe2IucmVtb3ZlQWxsRXZlbnRzKEMscC5pZCl9ZWxzZXtiLnJlbW92ZUV2ZW50KEIsImNsaWNrIixwLmlkKX1iLnJlbW92ZUV2ZW50KEEsImNoYW5nZSIscC5pZCk7digpO2lmKEYubGVuZ3RoKXtmLnRyaWdnZXIoIkZpbGVzQWRkZWQiLEYpfX19LHAuaWQpO0MuYXBwZW5kQ2hpbGQoQSk7ai5hcHBlbmRDaGlsZChDKTtwLnJlZnJlc2goKX1mdW5jdGlvbiB1KCl7dmFyIHk9YS5jcmVhdGVFbGVtZW50KCJkaXYiKTt5LmlubmVySFRNTD0nPGlmcmFtZSBpZD0iJytwLmlkKydfaWZyYW1lIiBuYW1lPSInK3AuaWQrJ19pZnJhbWUiIHNyYz0iJytoKyc6JnF1b3Q7JnF1b3Q7IiBzdHlsZT0iZGlzcGxheTpub25lIj48L2lmcmFtZT4nO249eS5maXJzdENoaWxkO2ouYXBwZW5kQ2hpbGQobik7Yi5hZGRFdmVudChuLCJsb2FkIixmdW5jdGlvbihEKXt2YXIgRT1ELnRhcmdldCxDLEE7aWYoIWspe3JldHVybn10cnl7Qz1FLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnR8fEUuY29udGVudERvY3VtZW50fHxkLmZyYW1lc1tFLmlkXS5kb2N1bWVudH1jYXRjaChCKXtwLnRyaWdnZXIoIkVycm9yIix7Y29kZTpiLlNFQ1VSSVRZX0VSUk9SLG1lc3NhZ2U6Yi50cmFuc2xhdGUoIlNlY3VyaXR5IGVycm9yLiIpLGZpbGU6a30pO3JldHVybn1BPUMuYm9keS5pbm5lckhUTUw7aWYoQSl7ay5zdGF0dXM9Yi5ET05FO2subG9hZGVkPTEwMjU7ay5wZXJjZW50PTEwMDtwLnRyaWdnZXIoIlVwbG9hZFByb2dyZXNzIixrKTtwLnRyaWdnZXIoIkZpbGVVcGxvYWRlZCIsayx7cmVzcG9uc2U6QX0pfX0scC5pZCl9aWYocC5zZXR0aW5ncy5jb250YWluZXIpe2o9ZShwLnNldHRpbmdzLmNvbnRhaW5lcik7aWYoYi5nZXRTdHlsZShqLCJwb3NpdGlvbiIpPT09InN0YXRpYyIpe2ouc3R5bGUucG9zaXRpb249InJlbGF0aXZlIn19cC5iaW5kKCJVcGxvYWRGaWxlIixmdW5jdGlvbih5LEIpe3ZhciBDLEE7aWYoQi5zdGF0dXM9PWIuRE9ORXx8Qi5zdGF0dXM9PWIuRkFJTEVEfHx5LnN0YXRlPT1iLlNUT1BQRUQpe3JldHVybn1DPWUoImZvcm1fIitCLmlkKTtBPWUoImlucHV0XyIrQi5pZCk7QS5zZXRBdHRyaWJ1dGUoIm5hbWUiLHkuc2V0dGluZ3MuZmlsZV9kYXRhX25hbWUpO0Muc2V0QXR0cmlidXRlKCJhY3Rpb24iLHkuc2V0dGluZ3MudXJsKTtiLmVhY2goYi5leHRlbmQoe25hbWU6Qi50YXJnZXRfbmFtZXx8Qi5uYW1lfSx5LnNldHRpbmdzLm11bHRpcGFydF9wYXJhbXMpLGZ1bmN0aW9uKEYsRCl7dmFyIEU9YS5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO2IuZXh0ZW5kKEUse3R5cGU6ImhpZGRlbiIsbmFtZTpELHZhbHVlOkZ9KTtDLmluc2VydEJlZm9yZShFLEMuZmlyc3RDaGlsZCl9KTtrPUI7ZSgiZm9ybV8iK3EpLnN0eWxlLnRvcD0tMTA0ODU3NSsicHgiO0Muc3VibWl0KCk7Qy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKEMpfSk7cC5iaW5kKCJGaWxlVXBsb2FkZWQiLGZ1bmN0aW9uKHkpe3kucmVmcmVzaCgpfSk7cC5iaW5kKCJTdGF0ZUNoYW5nZWQiLGZ1bmN0aW9uKHkpe2lmKHkuc3RhdGU9PWIuU1RBUlRFRCl7dSgpfWlmKHkuc3RhdGU9PWIuU1RPUFBFRCl7ZC5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yi5yZW1vdmVFdmVudChuLCJsb2FkIix5LmlkKTtpZihuLnBhcmVudE5vZGUpe24ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuKX19LDApfX0pO3AuYmluZCgiUmVmcmVzaCIsZnVuY3Rpb24oQSl7dmFyIEcsQixDLEQseSxILEksRixFO0c9ZShBLnNldHRpbmdzLmJyb3dzZV9idXR0b24pO2lmKEcpe3k9Yi5nZXRQb3MoRyxlKEEuc2V0dGluZ3MuY29udGFpbmVyKSk7SD1iLmdldFNpemUoRyk7ST1lKCJmb3JtXyIrcSk7Rj1lKCJpbnB1dF8iK3EpO2IuZXh0ZW5kKEkuc3R5bGUse3RvcDp5LnkrInB4IixsZWZ0OnkueCsicHgiLHdpZHRoOkgudysicHgiLGhlaWdodDpILmgrInB4In0pO2lmKEEuZmVhdHVyZXMudHJpZ2dlckRpYWxvZyl7aWYoYi5nZXRTdHlsZShHLCJwb3NpdGlvbiIpPT09InN0YXRpYyIpe2IuZXh0ZW5kKEcuc3R5bGUse3Bvc2l0aW9uOiJyZWxhdGl2ZSJ9KX1FPXBhcnNlSW50KEcuc3R5bGUuekluZGV4LDEwKTtpZihpc05hTihFKSl7RT0wfWIuZXh0ZW5kKEcuc3R5bGUse3pJbmRleDpFfSk7Yi5leHRlbmQoSS5zdHlsZSx7ekluZGV4OkUtMX0pfUM9QS5zZXR0aW5ncy5icm93c2VfYnV0dG9uX2hvdmVyO0Q9QS5zZXR0aW5ncy5icm93c2VfYnV0dG9uX2FjdGl2ZTtCPUEuZmVhdHVyZXMudHJpZ2dlckRpYWxvZz9HOkk7aWYoQyl7Yi5hZGRFdmVudChCLCJtb3VzZW92ZXIiLGZ1bmN0aW9uKCl7Yi5hZGRDbGFzcyhHLEMpfSxBLmlkKTtiLmFkZEV2ZW50KEIsIm1vdXNlb3V0IixmdW5jdGlvbigpe2IucmVtb3ZlQ2xhc3MoRyxDKX0sQS5pZCl9aWYoRCl7Yi5hZGRFdmVudChCLCJtb3VzZWRvd24iLGZ1bmN0aW9uKCl7Yi5hZGRDbGFzcyhHLEQpfSxBLmlkKTtiLmFkZEV2ZW50KGEuYm9keSwibW91c2V1cCIsZnVuY3Rpb24oKXtiLnJlbW92ZUNsYXNzKEcsRCl9LEEuaWQpfX19KTtmLmJpbmQoIkZpbGVzUmVtb3ZlZCIsZnVuY3Rpb24oeSxCKXt2YXIgQSxDO2ZvcihBPTA7QTxCLmxlbmd0aDtBKyspe0M9ZSgiZm9ybV8iK0JbQV0uaWQpO2lmKEMpe0MucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChDKX19fSk7Zi5iaW5kKCJEaXNhYmxlQnJvd3NlIixmdW5jdGlvbih5LEIpe3ZhciBBPWEuZ2V0RWxlbWVudEJ5SWQoImlucHV0XyIrcSk7aWYoQSl7QS5kaXNhYmxlZD1CfX0pO2YuYmluZCgiRGVzdHJveSIsZnVuY3Rpb24oeSl7dmFyIEEsQixDLEQ9e2lucHV0Q29udGFpbmVyOiJmb3JtXyIrcSxpbnB1dEZpbGU6ImlucHV0XyIrcSxicm93c2VCdXR0b246eS5zZXR0aW5ncy5icm93c2VfYnV0dG9ufTtmb3IoQSBpbiBEKXtCPWUoRFtBXSk7aWYoQil7Yi5yZW1vdmVBbGxFdmVudHMoQix5LmlkKX19Yi5yZW1vdmVBbGxFdmVudHMoYS5ib2R5LHkuaWQpO2IuZWFjaCh6LGZ1bmN0aW9uKEYsRSl7Qz1lKCJmb3JtXyIrRik7aWYoQyl7ai5yZW1vdmVDaGlsZChDKX19KX0pO3YoKX0pO2coe3N1Y2Nlc3M6dHJ1ZX0pfX0pfSkod2luZG93LGRvY3VtZW50LHBsdXBsb2FkKTs=]]></data>
	</file>
	<file>
	  <filename>/js/plupload/plupload.gears.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[KGZ1bmN0aW9uKCl7aWYod2luZG93Lmdvb2dsZSYmZ29vZ2xlLmdlYXJzKXtyZXR1cm59dmFyIGE9bnVsbDtpZih0eXBlb2YgR2VhcnNGYWN0b3J5IT0idW5kZWZpbmVkIil7YT1uZXcgR2VhcnNGYWN0b3J5KCl9ZWxzZXt0cnl7YT1uZXcgQWN0aXZlWE9iamVjdCgiR2VhcnMuRmFjdG9yeSIpO2lmKGEuZ2V0QnVpbGRJbmZvKCkuaW5kZXhPZigiaWVfbW9iaWxlIikhPS0xKXthLnByaXZhdGVTZXRHbG9iYWxPYmplY3QodGhpcyl9fWNhdGNoKGIpe2lmKCh0eXBlb2YgbmF2aWdhdG9yLm1pbWVUeXBlcyE9InVuZGVmaW5lZCIpJiZuYXZpZ2F0b3IubWltZVR5cGVzWyJhcHBsaWNhdGlvbi94LWdvb2dsZWdlYXJzIl0pe2E9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib2JqZWN0Iik7YS5zdHlsZS5kaXNwbGF5PSJub25lIjthLndpZHRoPTA7YS5oZWlnaHQ9MDthLnR5cGU9ImFwcGxpY2F0aW9uL3gtZ29vZ2xlZ2VhcnMiO2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChhKX19fWlmKCFhKXtyZXR1cm59aWYoIXdpbmRvdy5nb29nbGUpe3dpbmRvdy5nb29nbGU9e319aWYoIWdvb2dsZS5nZWFycyl7Z29vZ2xlLmdlYXJzPXtmYWN0b3J5OmF9fX0pKCk7KGZ1bmN0aW9uKGUsYixjLGQpe3ZhciBmPXt9O2Z1bmN0aW9uIGEoaCxqLGwpe3ZhciBnLGksayxuO2k9Z29vZ2xlLmdlYXJzLmZhY3RvcnkuY3JlYXRlKCJiZXRhLmNhbnZhcyIpO3RyeXtpLmRlY29kZShoKTtpZighai53aWR0aCl7ai53aWR0aD1pLndpZHRofWlmKCFqLmhlaWdodCl7ai5oZWlnaHQ9aS5oZWlnaHR9bj1NYXRoLm1pbih3aWR0aC9pLndpZHRoLGhlaWdodC9pLmhlaWdodCk7aWYobjwxfHwobj09PTEmJmw9PT0iaW1hZ2UvanBlZyIpKXtpLnJlc2l6ZShNYXRoLnJvdW5kKGkud2lkdGgqbiksTWF0aC5yb3VuZChpLmhlaWdodCpuKSk7aWYoai5xdWFsaXR5KXtyZXR1cm4gaS5lbmNvZGUobCx7cXVhbGl0eTpqLnF1YWxpdHkvMTAwfSl9cmV0dXJuIGkuZW5jb2RlKGwpfX1jYXRjaChtKXt9cmV0dXJuIGh9Yy5ydW50aW1lcy5HZWFycz1jLmFkZFJ1bnRpbWUoImdlYXJzIix7Z2V0RmVhdHVyZXM6ZnVuY3Rpb24oKXtyZXR1cm57ZHJhZ2Ryb3A6dHJ1ZSxqcGdyZXNpemU6dHJ1ZSxwbmdyZXNpemU6dHJ1ZSxjaHVua3M6dHJ1ZSxwcm9ncmVzczp0cnVlLG11bHRpcGFydDp0cnVlLG11bHRpX3NlbGVjdGlvbjp0cnVlfX0saW5pdDpmdW5jdGlvbihrLG0pe3ZhciBsLGgsZz1mYWxzZTtpZighZS5nb29nbGV8fCFnb29nbGUuZ2VhcnMpe3JldHVybiBtKHtzdWNjZXNzOmZhbHNlfSl9dHJ5e2w9Z29vZ2xlLmdlYXJzLmZhY3RvcnkuY3JlYXRlKCJiZXRhLmRlc2t0b3AiKX1jYXRjaChqKXtyZXR1cm4gbSh7c3VjY2VzczpmYWxzZX0pfWZ1bmN0aW9uIGkocCl7dmFyIG8sbixxPVtdLHI7Zm9yKG49MDtuPHAubGVuZ3RoO24rKyl7bz1wW25dO3I9Yy5ndWlkKCk7ZltyXT1vLmJsb2I7cS5wdXNoKG5ldyBjLkZpbGUocixvLm5hbWUsby5ibG9iLmxlbmd0aCkpfWsudHJpZ2dlcigiRmlsZXNBZGRlZCIscSl9ay5iaW5kKCJQb3N0SW5pdCIsZnVuY3Rpb24oKXt2YXIgbz1rLnNldHRpbmdzLG49Yi5nZXRFbGVtZW50QnlJZChvLmRyb3BfZWxlbWVudCk7aWYobil7Yy5hZGRFdmVudChuLCJkcmFnb3ZlciIsZnVuY3Rpb24ocCl7bC5zZXREcm9wRWZmZWN0KHAsImNvcHkiKTtwLnByZXZlbnREZWZhdWx0KCl9LGsuaWQpO2MuYWRkRXZlbnQobiwiZHJvcCIsZnVuY3Rpb24ocSl7dmFyIHA9bC5nZXREcmFnRGF0YShxLCJhcHBsaWNhdGlvbi94LWdlYXJzLWZpbGVzIik7aWYocCl7aShwLmZpbGVzKX1xLnByZXZlbnREZWZhdWx0KCl9LGsuaWQpO249MH1jLmFkZEV2ZW50KGIuZ2V0RWxlbWVudEJ5SWQoby5icm93c2VfYnV0dG9uKSwiY2xpY2siLGZ1bmN0aW9uKHQpe3ZhciBzPVtdLHEscCxyO3QucHJldmVudERlZmF1bHQoKTtpZihnKXtyZXR1cm59bm9fdHlwZV9yZXN0cmljdGlvbjpmb3IocT0wO3E8by5maWx0ZXJzLmxlbmd0aDtxKyspe3I9by5maWx0ZXJzW3FdLmV4dGVuc2lvbnMuc3BsaXQoIiwiKTtmb3IocD0wO3A8ci5sZW5ndGg7cCsrKXtpZihyW3BdPT09IioiKXtzPVtdO2JyZWFrIG5vX3R5cGVfcmVzdHJpY3Rpb259cy5wdXNoKCIuIityW3BdKX19bC5vcGVuRmlsZXMoaSx7c2luZ2xlRmlsZTohby5tdWx0aV9zZWxlY3Rpb24sZmlsdGVyOnN9KX0say5pZCl9KTtrLmJpbmQoIkNhbmNlbFVwbG9hZCIsZnVuY3Rpb24oKXtpZihoLmFib3J0KXtoLmFib3J0KCl9fSk7ay5iaW5kKCJVcGxvYWRGaWxlIixmdW5jdGlvbih0LHEpe3ZhciB2PTAsdSxyLHM9MCxwPXQuc2V0dGluZ3MucmVzaXplLG47aWYocCYmL1wuKHBuZ3xqcGd8anBlZykkL2kudGVzdChxLm5hbWUpKXtmW3EuaWRdPWEoZltxLmlkXSxwLC9cLnBuZyQvaS50ZXN0KHEubmFtZSk/ImltYWdlL3BuZyI6ImltYWdlL2pwZWciKX1xLnNpemU9ZltxLmlkXS5sZW5ndGg7cj10LnNldHRpbmdzLmNodW5rX3NpemU7bj1yPjA7dT1NYXRoLmNlaWwocS5zaXplL3IpO2lmKCFuKXtyPXEuc2l6ZTt1PTF9ZnVuY3Rpb24gbygpe3ZhciBCLHg9dC5zZXR0aW5ncy5tdWx0aXBhcnQsdz0wLEE9e25hbWU6cS50YXJnZXRfbmFtZXx8cS5uYW1lfSx5PXQuc2V0dGluZ3MudXJsO2Z1bmN0aW9uIHooRCl7dmFyIEMsST0iLS0tLXBsdXBsb2FkYm91bmRhcnkiK2MuZ3VpZCgpLEY9Ii0tIixIPSJcclxuIixFLEc7aWYoeCl7aC5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLCJtdWx0aXBhcnQvZm9ybS1kYXRhOyBib3VuZGFyeT0iK0kpO0M9Z29vZ2xlLmdlYXJzLmZhY3RvcnkuY3JlYXRlKCJiZXRhLmJsb2JidWlsZGVyIik7Yy5lYWNoKGMuZXh0ZW5kKEEsdC5zZXR0aW5ncy5tdWx0aXBhcnRfcGFyYW1zKSxmdW5jdGlvbihLLEope0MuYXBwZW5kKEYrSStIKydDb250ZW50LURpc3Bvc2l0aW9uOiBmb3JtLWRhdGE7IG5hbWU9IicrSisnIicrSCtIKTtDLmFwcGVuZChLK0gpfSk7Rz1jLm1pbWVUeXBlc1txLm5hbWUucmVwbGFjZSgvXi4rXC4oW14uXSspLywiJDEiKS50b0xvd2VyQ2FzZSgpXXx8ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSI7Qy5hcHBlbmQoRitJK0grJ0NvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0tZGF0YTsgbmFtZT0iJyt0LnNldHRpbmdzLmZpbGVfZGF0YV9uYW1lKyciOyBmaWxlbmFtZT0iJytxLm5hbWUrJyInK0grIkNvbnRlbnQtVHlwZTogIitHK0grSCk7Qy5hcHBlbmQoRCk7Qy5hcHBlbmQoSCtGK0krRitIKTtFPUMuZ2V0QXNCbG9iKCk7dz1FLmxlbmd0aC1ELmxlbmd0aDtEPUV9aC5zZW5kKEQpfWlmKHEuc3RhdHVzPT1jLkRPTkV8fHEuc3RhdHVzPT1jLkZBSUxFRHx8dC5zdGF0ZT09Yy5TVE9QUEVEKXtyZXR1cm59aWYobil7QS5jaHVuaz12O0EuY2h1bmtzPXV9Qj1NYXRoLm1pbihyLHEuc2l6ZS0odipyKSk7aWYoIXgpe3k9Yy5idWlsZFVybCh0LnNldHRpbmdzLnVybCxBKX1oPWdvb2dsZS5nZWFycy5mYWN0b3J5LmNyZWF0ZSgiYmV0YS5odHRwcmVxdWVzdCIpO2gub3BlbigiUE9TVCIseSk7aWYoIXgpe2guc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1EaXNwb3NpdGlvbiIsJ2F0dGFjaG1lbnQ7IGZpbGVuYW1lPSInK3EubmFtZSsnIicpO2guc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIil9Yy5lYWNoKHQuc2V0dGluZ3MuaGVhZGVycyxmdW5jdGlvbihELEMpe2guc2V0UmVxdWVzdEhlYWRlcihDLEQpfSk7aC51cGxvYWQub25wcm9ncmVzcz1mdW5jdGlvbihDKXtxLmxvYWRlZD1zK0MubG9hZGVkLXc7dC50cmlnZ2VyKCJVcGxvYWRQcm9ncmVzcyIscSl9O2gub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7dmFyIEM7aWYoaC5yZWFkeVN0YXRlPT00JiZ0LnN0YXRlIT09Yy5TVE9QUEVEKXtpZihoLnN0YXR1cz09MjAwKXtDPXtjaHVuazp2LGNodW5rczp1LHJlc3BvbnNlOmgucmVzcG9uc2VUZXh0LHN0YXR1czpoLnN0YXR1c307dC50cmlnZ2VyKCJDaHVua1VwbG9hZGVkIixxLEMpO2lmKEMuY2FuY2VsbGVkKXtxLnN0YXR1cz1jLkZBSUxFRDtyZXR1cm59cys9QjtpZigrK3Y+PXUpe3Euc3RhdHVzPWMuRE9ORTt0LnRyaWdnZXIoIkZpbGVVcGxvYWRlZCIscSx7cmVzcG9uc2U6aC5yZXNwb25zZVRleHQsc3RhdHVzOmguc3RhdHVzfSl9ZWxzZXtvKCl9fWVsc2V7dC50cmlnZ2VyKCJFcnJvciIse2NvZGU6Yy5IVFRQX0VSUk9SLG1lc3NhZ2U6Yy50cmFuc2xhdGUoIkhUVFAgRXJyb3IuIiksZmlsZTpxLGNodW5rOnYsY2h1bmtzOnUsc3RhdHVzOmguc3RhdHVzfSl9fX07aWYodjx1KXt6KGZbcS5pZF0uc2xpY2UodipyLEIpKX19bygpfSk7ay5iaW5kKCJEaXNhYmxlQnJvd3NlIixmdW5jdGlvbihuLG8pe2c9b30pO2suYmluZCgiRGVzdHJveSIsZnVuY3Rpb24obil7dmFyIG8scCxxPXticm93c2VCdXR0b246bi5zZXR0aW5ncy5icm93c2VfYnV0dG9uLGRyb3BFbG06bi5zZXR0aW5ncy5kcm9wX2VsZW1lbnR9O2ZvcihvIGluIHEpe3A9Yi5nZXRFbGVtZW50QnlJZChxW29dKTtpZihwKXtjLnJlbW92ZUFsbEV2ZW50cyhwLG4uaWQpfX19KTttKHtzdWNjZXNzOnRydWV9KX19KX0pKHdpbmRvdyxkb2N1bWVudCxwbHVwbG9hZCk7]]></data>
	</file>
	<file>
	  <filename>/js/plupload/plupload.html4.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[KGZ1bmN0aW9uKGQsYSxiLGMpe2Z1bmN0aW9uIGUoZil7cmV0dXJuIGEuZ2V0RWxlbWVudEJ5SWQoZil9Yi5ydW50aW1lcy5IdG1sND1iLmFkZFJ1bnRpbWUoImh0bWw0Iix7Z2V0RmVhdHVyZXM6ZnVuY3Rpb24oKXtyZXR1cm57bXVsdGlwYXJ0OnRydWUsdHJpZ2dlckRpYWxvZzooYi51YS5nZWNrbyYmZC5Gb3JtRGF0YXx8Yi51YS53ZWJraXQpfX0saW5pdDpmdW5jdGlvbihmLGcpe2YuYmluZCgiSW5pdCIsZnVuY3Rpb24ocCl7dmFyIGo9YS5ib2R5LG4saD0iamF2YXNjcmlwdCIsayx4LHEsej1bXSxyPS9NU0lFLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLHQ9W10sbT1wLnNldHRpbmdzLmZpbHRlcnMsbyxsLHMsdztub190eXBlX3Jlc3RyaWN0aW9uOmZvcihvPTA7bzxtLmxlbmd0aDtvKyspe2w9bVtvXS5leHRlbnNpb25zLnNwbGl0KC8sLyk7Zm9yKHc9MDt3PGwubGVuZ3RoO3crKyl7aWYobFt3XT09PSIqIil7dD1bXTticmVhayBub190eXBlX3Jlc3RyaWN0aW9ufXM9Yi5taW1lVHlwZXNbbFt3XV07aWYocyYmYi5pbkFycmF5KHMsdCk9PT0tMSl7dC5wdXNoKHMpfX19dD10LmpvaW4oIiwiKTtmdW5jdGlvbiB2KCl7dmFyIEIseSxpLEE7cT1iLmd1aWQoKTt6LnB1c2gocSk7Qj1hLmNyZWF0ZUVsZW1lbnQoImZvcm0iKTtCLnNldEF0dHJpYnV0ZSgiaWQiLCJmb3JtXyIrcSk7Qi5zZXRBdHRyaWJ1dGUoIm1ldGhvZCIsInBvc3QiKTtCLnNldEF0dHJpYnV0ZSgiZW5jdHlwZSIsIm11bHRpcGFydC9mb3JtLWRhdGEiKTtCLnNldEF0dHJpYnV0ZSgiZW5jb2RpbmciLCJtdWx0aXBhcnQvZm9ybS1kYXRhIik7Qi5zZXRBdHRyaWJ1dGUoInRhcmdldCIscC5pZCsiX2lmcmFtZSIpO0Iuc3R5bGUucG9zaXRpb249ImFic29sdXRlIjt5PWEuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTt5LnNldEF0dHJpYnV0ZSgiaWQiLCJpbnB1dF8iK3EpO3kuc2V0QXR0cmlidXRlKCJ0eXBlIiwiZmlsZSIpO3kuc2V0QXR0cmlidXRlKCJhY2NlcHQiLHQpO3kuc2V0QXR0cmlidXRlKCJzaXplIiwxKTtBPWUocC5zZXR0aW5ncy5icm93c2VfYnV0dG9uKTtpZihwLmZlYXR1cmVzLnRyaWdnZXJEaWFsb2cmJkEpe2IuYWRkRXZlbnQoZShwLnNldHRpbmdzLmJyb3dzZV9idXR0b24pLCJjbGljayIsZnVuY3Rpb24oQyl7aWYoIXkuZGlzYWJsZWQpe3kuY2xpY2soKX1DLnByZXZlbnREZWZhdWx0KCl9LHAuaWQpfWIuZXh0ZW5kKHkuc3R5bGUse3dpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLG9wYWNpdHk6MCxmb250U2l6ZToiOTlweCJ9KTtiLmV4dGVuZChCLnN0eWxlLHtvdmVyZmxvdzoiaGlkZGVuIn0pO2k9cC5zZXR0aW5ncy5zaGltX2JnY29sb3I7aWYoaSl7Qi5zdHlsZS5iYWNrZ3JvdW5kPWl9aWYocil7Yi5leHRlbmQoeS5zdHlsZSx7ZmlsdGVyOiJhbHBoYShvcGFjaXR5PTApIn0pfWIuYWRkRXZlbnQoeSwiY2hhbmdlIixmdW5jdGlvbihGKXt2YXIgRD1GLnRhcmdldCxDLEU9W10sRztpZihELnZhbHVlKXtlKCJmb3JtXyIrcSkuc3R5bGUudG9wPS0xMDQ4NTc1KyJweCI7Qz1ELnZhbHVlLnJlcGxhY2UoL1xcL2csIi8iKTtDPUMuc3Vic3RyaW5nKEMubGVuZ3RoLEMubGFzdEluZGV4T2YoIi8iKSsxKTtFLnB1c2gobmV3IGIuRmlsZShxLEMpKTtpZighcC5mZWF0dXJlcy50cmlnZ2VyRGlhbG9nKXtiLnJlbW92ZUFsbEV2ZW50cyhCLHAuaWQpfWVsc2V7Yi5yZW1vdmVFdmVudChBLCJjbGljayIscC5pZCl9Yi5yZW1vdmVFdmVudCh5LCJjaGFuZ2UiLHAuaWQpO3YoKTtpZihFLmxlbmd0aCl7Zi50cmlnZ2VyKCJGaWxlc0FkZGVkIixFKX19fSxwLmlkKTtCLmFwcGVuZENoaWxkKHkpO2ouYXBwZW5kQ2hpbGQoQik7cC5yZWZyZXNoKCl9ZnVuY3Rpb24gdSgpe3ZhciBpPWEuY3JlYXRlRWxlbWVudCgiZGl2Iik7aS5pbm5lckhUTUw9JzxpZnJhbWUgaWQ9IicrcC5pZCsnX2lmcmFtZSIgbmFtZT0iJytwLmlkKydfaWZyYW1lIiBzcmM9IicraCsnOiZxdW90OyZxdW90OyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PC9pZnJhbWU+JztuPWkuZmlyc3RDaGlsZDtqLmFwcGVuZENoaWxkKG4pO2IuYWRkRXZlbnQobiwibG9hZCIsZnVuY3Rpb24oQyl7dmFyIEQ9Qy50YXJnZXQsQix5O2lmKCFrKXtyZXR1cm59dHJ5e0I9RC5jb250ZW50V2luZG93LmRvY3VtZW50fHxELmNvbnRlbnREb2N1bWVudHx8ZC5mcmFtZXNbRC5pZF0uZG9jdW1lbnR9Y2F0Y2goQSl7cC50cmlnZ2VyKCJFcnJvciIse2NvZGU6Yi5TRUNVUklUWV9FUlJPUixtZXNzYWdlOmIudHJhbnNsYXRlKCJTZWN1cml0eSBlcnJvci4iKSxmaWxlOmt9KTtyZXR1cm59eT1CLmJvZHkuaW5uZXJIVE1MO2lmKHkpe2suc3RhdHVzPWIuRE9ORTtrLmxvYWRlZD0xMDI1O2sucGVyY2VudD0xMDA7cC50cmlnZ2VyKCJVcGxvYWRQcm9ncmVzcyIsayk7cC50cmlnZ2VyKCJGaWxlVXBsb2FkZWQiLGsse3Jlc3BvbnNlOnl9KX19LHAuaWQpfWlmKHAuc2V0dGluZ3MuY29udGFpbmVyKXtqPWUocC5zZXR0aW5ncy5jb250YWluZXIpO2lmKGIuZ2V0U3R5bGUoaiwicG9zaXRpb24iKT09PSJzdGF0aWMiKXtqLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSJ9fXAuYmluZCgiVXBsb2FkRmlsZSIsZnVuY3Rpb24oaSxBKXt2YXIgQix5O2lmKEEuc3RhdHVzPT1iLkRPTkV8fEEuc3RhdHVzPT1iLkZBSUxFRHx8aS5zdGF0ZT09Yi5TVE9QUEVEKXtyZXR1cm59Qj1lKCJmb3JtXyIrQS5pZCk7eT1lKCJpbnB1dF8iK0EuaWQpO3kuc2V0QXR0cmlidXRlKCJuYW1lIixpLnNldHRpbmdzLmZpbGVfZGF0YV9uYW1lKTtCLnNldEF0dHJpYnV0ZSgiYWN0aW9uIixpLnNldHRpbmdzLnVybCk7Yi5lYWNoKGIuZXh0ZW5kKHtuYW1lOkEudGFyZ2V0X25hbWV8fEEubmFtZX0saS5zZXR0aW5ncy5tdWx0aXBhcnRfcGFyYW1zKSxmdW5jdGlvbihFLEMpe3ZhciBEPWEuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTtiLmV4dGVuZChELHt0eXBlOiJoaWRkZW4iLG5hbWU6Qyx2YWx1ZTpFfSk7Qi5pbnNlcnRCZWZvcmUoRCxCLmZpcnN0Q2hpbGQpfSk7az1BO2UoImZvcm1fIitxKS5zdHlsZS50b3A9LTEwNDg1NzUrInB4IjtCLnN1Ym1pdCgpO0IucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChCKX0pO3AuYmluZCgiRmlsZVVwbG9hZGVkIixmdW5jdGlvbihpKXtpLnJlZnJlc2goKX0pO3AuYmluZCgiU3RhdGVDaGFuZ2VkIixmdW5jdGlvbihpKXtpZihpLnN0YXRlPT1iLlNUQVJURUQpe3UoKX1pZihpLnN0YXRlPT1iLlNUT1BQRUQpe2Quc2V0VGltZW91dChmdW5jdGlvbigpe2IucmVtb3ZlRXZlbnQobiwibG9hZCIsaS5pZCk7aWYobi5wYXJlbnROb2RlKXtuLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobil9fSwwKX19KTtwLmJpbmQoIlJlZnJlc2giLGZ1bmN0aW9uKHkpe3ZhciBGLEEsQixDLGksRyxILEUsRDtGPWUoeS5zZXR0aW5ncy5icm93c2VfYnV0dG9uKTtpZihGKXtpPWIuZ2V0UG9zKEYsZSh5LnNldHRpbmdzLmNvbnRhaW5lcikpO0c9Yi5nZXRTaXplKEYpO0g9ZSgiZm9ybV8iK3EpO0U9ZSgiaW5wdXRfIitxKTtiLmV4dGVuZChILnN0eWxlLHt0b3A6aS55KyJweCIsbGVmdDppLngrInB4Iix3aWR0aDpHLncrInB4IixoZWlnaHQ6Ry5oKyJweCJ9KTtpZih5LmZlYXR1cmVzLnRyaWdnZXJEaWFsb2cpe2lmKGIuZ2V0U3R5bGUoRiwicG9zaXRpb24iKT09PSJzdGF0aWMiKXtiLmV4dGVuZChGLnN0eWxlLHtwb3NpdGlvbjoicmVsYXRpdmUifSl9RD1wYXJzZUludChGLnN0eWxlLnpJbmRleCwxMCk7aWYoaXNOYU4oRCkpe0Q9MH1iLmV4dGVuZChGLnN0eWxlLHt6SW5kZXg6RH0pO2IuZXh0ZW5kKEguc3R5bGUse3pJbmRleDpELTF9KX1CPXkuc2V0dGluZ3MuYnJvd3NlX2J1dHRvbl9ob3ZlcjtDPXkuc2V0dGluZ3MuYnJvd3NlX2J1dHRvbl9hY3RpdmU7QT15LmZlYXR1cmVzLnRyaWdnZXJEaWFsb2c/RjpIO2lmKEIpe2IuYWRkRXZlbnQoQSwibW91c2VvdmVyIixmdW5jdGlvbigpe2IuYWRkQ2xhc3MoRixCKX0seS5pZCk7Yi5hZGRFdmVudChBLCJtb3VzZW91dCIsZnVuY3Rpb24oKXtiLnJlbW92ZUNsYXNzKEYsQil9LHkuaWQpfWlmKEMpe2IuYWRkRXZlbnQoQSwibW91c2Vkb3duIixmdW5jdGlvbigpe2IuYWRkQ2xhc3MoRixDKX0seS5pZCk7Yi5hZGRFdmVudChhLmJvZHksIm1vdXNldXAiLGZ1bmN0aW9uKCl7Yi5yZW1vdmVDbGFzcyhGLEMpfSx5LmlkKX19fSk7Zi5iaW5kKCJGaWxlc1JlbW92ZWQiLGZ1bmN0aW9uKHksQil7dmFyIEEsQztmb3IoQT0wO0E8Qi5sZW5ndGg7QSsrKXtDPWUoImZvcm1fIitCW0FdLmlkKTtpZihDKXtDLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoQyl9fX0pO2YuYmluZCgiRGlzYWJsZUJyb3dzZSIsZnVuY3Rpb24oaSxBKXt2YXIgeT1hLmdldEVsZW1lbnRCeUlkKCJpbnB1dF8iK3EpO2lmKHkpe3kuZGlzYWJsZWQ9QX19KTtmLmJpbmQoIkRlc3Ryb3kiLGZ1bmN0aW9uKGkpe3ZhciB5LEEsQixDPXtpbnB1dENvbnRhaW5lcjoiZm9ybV8iK3EsaW5wdXRGaWxlOiJpbnB1dF8iK3EsYnJvd3NlQnV0dG9uOmkuc2V0dGluZ3MuYnJvd3NlX2J1dHRvbn07Zm9yKHkgaW4gQyl7QT1lKENbeV0pO2lmKEEpe2IucmVtb3ZlQWxsRXZlbnRzKEEsaS5pZCl9fWIucmVtb3ZlQWxsRXZlbnRzKGEuYm9keSxpLmlkKTtiLmVhY2goeixmdW5jdGlvbihFLEQpe0I9ZSgiZm9ybV8iK0UpO2lmKEIpe2oucmVtb3ZlQ2hpbGQoQil9fSl9KTt2KCl9KTtnKHtzdWNjZXNzOnRydWV9KX19KX0pKHdpbmRvdyxkb2N1bWVudCxwbHVwbG9hZCk7]]></data>
	</file>
	<file>
	  <filename>/js/plupload/plupload.html5.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[KGZ1bmN0aW9uKGgsayxqLGUpe3ZhciBjPXt9LGc7ZnVuY3Rpb24gbShvLHApe3ZhciBuO2lmKCJGaWxlUmVhZGVyIiBpbiBoKXtuPW5ldyBGaWxlUmVhZGVyKCk7bi5yZWFkQXNEYXRhVVJMKG8pO24ub25sb2FkPWZ1bmN0aW9uKCl7cChuLnJlc3VsdCl9fWVsc2V7cmV0dXJuIHAoby5nZXRBc0RhdGFVUkwoKSl9fWZ1bmN0aW9uIGwobyxwKXt2YXIgbjtpZigiRmlsZVJlYWRlciIgaW4gaCl7bj1uZXcgRmlsZVJlYWRlcigpO24ucmVhZEFzQmluYXJ5U3RyaW5nKG8pO24ub25sb2FkPWZ1bmN0aW9uKCl7cChuLnJlc3VsdCl9fWVsc2V7cmV0dXJuIHAoby5nZXRBc0JpbmFyeSgpKX19ZnVuY3Rpb24gZChyLHAsbix2KXt2YXIgcSxvLHUscyx0PXRoaXM7bShjW3IuaWRdLGZ1bmN0aW9uKHcpe3E9ay5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtxLnN0eWxlLmRpc3BsYXk9Im5vbmUiO2suYm9keS5hcHBlbmRDaGlsZChxKTtvPXEuZ2V0Q29udGV4dCgiMmQiKTt1PW5ldyBJbWFnZSgpO3Uub25lcnJvcj11Lm9uYWJvcnQ9ZnVuY3Rpb24oKXt2KHtzdWNjZXNzOmZhbHNlfSl9O3Uub25sb2FkPWZ1bmN0aW9uKCl7dmFyIEIseCx6LHksQTtpZighcC53aWR0aCl7cC53aWR0aD11LndpZHRofWlmKCFwLmhlaWdodCl7cC5oZWlnaHQ9dS5oZWlnaHR9cz1NYXRoLm1pbihwLndpZHRoL3Uud2lkdGgscC5oZWlnaHQvdS5oZWlnaHQpO2lmKHM8MXx8KHM9PT0xJiZuPT09ImltYWdlL2pwZWciKSl7Qj1NYXRoLnJvdW5kKHUud2lkdGgqcyk7eD1NYXRoLnJvdW5kKHUuaGVpZ2h0KnMpO3Eud2lkdGg9QjtxLmhlaWdodD14O28uZHJhd0ltYWdlKHUsMCwwLEIseCk7aWYobj09PSJpbWFnZS9qcGVnIil7eT1uZXcgZihhdG9iKHcuc3Vic3RyaW5nKHcuaW5kZXhPZigiYmFzZTY0LCIpKzcpKSk7aWYoeS5oZWFkZXJzJiZ5LmhlYWRlcnMubGVuZ3RoKXtBPW5ldyBhKCk7aWYoQS5pbml0KHkuZ2V0KCJleGlmIilbMF0pKXtBLnNldEV4aWYoIlBpeGVsWERpbWVuc2lvbiIsQik7QS5zZXRFeGlmKCJQaXhlbFlEaW1lbnNpb24iLHgpO3kuc2V0KCJleGlmIixBLmdldEJpbmFyeSgpKTtpZih0Lmhhc0V2ZW50TGlzdGVuZXIoIkV4aWZEYXRhIikpe3QudHJpZ2dlcigiRXhpZkRhdGEiLHIsQS5FWElGKCkpfWlmKHQuaGFzRXZlbnRMaXN0ZW5lcigiR3BzRGF0YSIpKXt0LnRyaWdnZXIoIkdwc0RhdGEiLHIsQS5HUFMoKSl9fX1pZihwLnF1YWxpdHkpe3RyeXt3PXEudG9EYXRhVVJMKG4scC5xdWFsaXR5LzEwMCl9Y2F0Y2goQyl7dz1xLnRvRGF0YVVSTChuKX19fWVsc2V7dz1xLnRvRGF0YVVSTChuKX13PXcuc3Vic3RyaW5nKHcuaW5kZXhPZigiYmFzZTY0LCIpKzcpO3c9YXRvYih3KTtpZih5JiZ5LmhlYWRlcnMmJnkuaGVhZGVycy5sZW5ndGgpe3c9eS5yZXN0b3JlKHcpO3kucHVyZ2UoKX1xLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocSk7dih7c3VjY2Vzczp0cnVlLGRhdGE6d30pfWVsc2V7dih7c3VjY2VzczpmYWxzZX0pfX07dS5zcmM9d30pfWoucnVudGltZXMuSHRtbDU9ai5hZGRSdW50aW1lKCJodG1sNSIse2dldEZlYXR1cmVzOmZ1bmN0aW9uKCl7dmFyIHMsbyxyLHEscCxuO289cj1wPW49ZmFsc2U7aWYoaC5YTUxIdHRwUmVxdWVzdCl7cz1uZXcgWE1MSHR0cFJlcXVlc3QoKTtyPSEhcy51cGxvYWQ7bz0hIShzLnNlbmRBc0JpbmFyeXx8cy51cGxvYWQpfWlmKG8pe3E9ISEocy5zZW5kQXNCaW5hcnl8fChoLlVpbnQ4QXJyYXkmJmguQXJyYXlCdWZmZXIpKTtwPSEhKEZpbGUmJihGaWxlLnByb3RvdHlwZS5nZXRBc0RhdGFVUkx8fGguRmlsZVJlYWRlcikmJnEpO249ISEoRmlsZSYmKEZpbGUucHJvdG90eXBlLm1velNsaWNlfHxGaWxlLnByb3RvdHlwZS53ZWJraXRTbGljZXx8RmlsZS5wcm90b3R5cGUuc2xpY2UpKX1nPWoudWEuc2FmYXJpJiZqLnVhLndpbmRvd3M7cmV0dXJue2h0bWw1Om8sZHJhZ2Ryb3A6KGZ1bmN0aW9uKCl7dmFyIHQ9ay5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4oImRyYWdnYWJsZSIgaW4gdCl8fCgib25kcmFnc3RhcnQiIGluIHQmJiJvbmRyb3AiIGluIHQpfSgpKSxqcGdyZXNpemU6cCxwbmdyZXNpemU6cCxtdWx0aXBhcnQ6cHx8ISFoLkZpbGVSZWFkZXJ8fCEhaC5Gb3JtRGF0YSxjYW5TZW5kQmluYXJ5OnEsY2FudFNlbmRCbG9iSW5Gb3JtRGF0YTohIShqLnVhLmdlY2tvJiZoLkZvcm1EYXRhJiZoLkZpbGVSZWFkZXImJiFGaWxlUmVhZGVyLnByb3RvdHlwZS5yZWFkQXNBcnJheUJ1ZmZlcikscHJvZ3Jlc3M6cixjaHVua3M6bixtdWx0aV9zZWxlY3Rpb246IShqLnVhLnNhZmFyaSYmai51YS53aW5kb3dzKSx0cmlnZ2VyRGlhbG9nOihqLnVhLmdlY2tvJiZoLkZvcm1EYXRhfHxqLnVhLndlYmtpdCl9fSxpbml0OmZ1bmN0aW9uKHAscil7dmFyIG4scTtmdW5jdGlvbiBvKHcpe3ZhciB1LHQsdj1bXSx4LHM9e307Zm9yKHQ9MDt0PHcubGVuZ3RoO3QrKyl7dT13W3RdO2lmKHNbdS5uYW1lXSl7Y29udGludWV9c1t1Lm5hbWVdPXRydWU7eD1qLmd1aWQoKTtjW3hdPXU7di5wdXNoKG5ldyBqLkZpbGUoeCx1LmZpbGVOYW1lfHx1Lm5hbWUsdS5maWxlU2l6ZXx8dS5zaXplKSl9aWYodi5sZW5ndGgpe3AudHJpZ2dlcigiRmlsZXNBZGRlZCIsdil9fW49dGhpcy5nZXRGZWF0dXJlcygpO2lmKCFuLmh0bWw1KXtyKHtzdWNjZXNzOmZhbHNlfSk7cmV0dXJufXAuYmluZCgiSW5pdCIsZnVuY3Rpb24odyl7dmFyIEcsRixDPVtdLHYsRCx0PXcuc2V0dGluZ3MuZmlsdGVycyx1LEIscz1rLmJvZHksRTtHPWsuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ry5pZD13LmlkKyJfaHRtbDVfY29udGFpbmVyIjtqLmV4dGVuZChHLnN0eWxlLHtwb3NpdGlvbjoiYWJzb2x1dGUiLGJhY2tncm91bmQ6cC5zZXR0aW5ncy5zaGltX2JnY29sb3J8fCJ0cmFuc3BhcmVudCIsd2lkdGg6IjEwMHB4IixoZWlnaHQ6IjEwMHB4IixvdmVyZmxvdzoiaGlkZGVuIix6SW5kZXg6OTk5OTksb3BhY2l0eTpwLnNldHRpbmdzLnNoaW1fYmdjb2xvcj8iIjowfSk7Ry5jbGFzc05hbWU9InBsdXBsb2FkIGh0bWw1IjtpZihwLnNldHRpbmdzLmNvbnRhaW5lcil7cz1rLmdldEVsZW1lbnRCeUlkKHAuc2V0dGluZ3MuY29udGFpbmVyKTtpZihqLmdldFN0eWxlKHMsInBvc2l0aW9uIik9PT0ic3RhdGljIil7cy5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUifX1zLmFwcGVuZENoaWxkKEcpO25vX3R5cGVfcmVzdHJpY3Rpb246Zm9yKHY9MDt2PHQubGVuZ3RoO3YrKyl7dT10W3ZdLmV4dGVuc2lvbnMuc3BsaXQoLywvKTtmb3IoRD0wO0Q8dS5sZW5ndGg7RCsrKXtpZih1W0RdPT09IioiKXtDPVtdO2JyZWFrIG5vX3R5cGVfcmVzdHJpY3Rpb259Qj1qLm1pbWVUeXBlc1t1W0RdXTtpZihCJiZqLmluQXJyYXkoQixDKT09PS0xKXtDLnB1c2goQil9fX1HLmlubmVySFRNTD0nPGlucHV0IGlkPSInK3AuaWQrJ19odG1sNSIgIHN0eWxlPSJmb250LXNpemU6OTk5cHgiIHR5cGU9ImZpbGUiIGFjY2VwdD0iJytDLmpvaW4oIiwiKSsnIiAnKyhwLnNldHRpbmdzLm11bHRpX3NlbGVjdGlvbiYmcC5mZWF0dXJlcy5tdWx0aV9zZWxlY3Rpb24/J211bHRpcGxlPSJtdWx0aXBsZSInOiIiKSsiIC8+IjtHLnNjcm9sbFRvcD0xMDA7RT1rLmdldEVsZW1lbnRCeUlkKHAuaWQrIl9odG1sNSIpO2lmKHcuZmVhdHVyZXMudHJpZ2dlckRpYWxvZyl7ai5leHRlbmQoRS5zdHlsZSx7cG9zaXRpb246ImFic29sdXRlIix3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIn0pfWVsc2V7ai5leHRlbmQoRS5zdHlsZSx7Y3NzRmxvYXQ6InJpZ2h0IixzdHlsZUZsb2F0OiJyaWdodCJ9KX1FLm9uY2hhbmdlPWZ1bmN0aW9uKCl7byh0aGlzLmZpbGVzKTt0aGlzLnZhbHVlPSIifTtGPWsuZ2V0RWxlbWVudEJ5SWQody5zZXR0aW5ncy5icm93c2VfYnV0dG9uKTtpZihGKXt2YXIgej13LnNldHRpbmdzLmJyb3dzZV9idXR0b25faG92ZXIsQT13LnNldHRpbmdzLmJyb3dzZV9idXR0b25fYWN0aXZlLHg9dy5mZWF0dXJlcy50cmlnZ2VyRGlhbG9nP0Y6RztpZih6KXtqLmFkZEV2ZW50KHgsIm1vdXNlb3ZlciIsZnVuY3Rpb24oKXtqLmFkZENsYXNzKEYseil9LHcuaWQpO2ouYWRkRXZlbnQoeCwibW91c2VvdXQiLGZ1bmN0aW9uKCl7ai5yZW1vdmVDbGFzcyhGLHopfSx3LmlkKX1pZihBKXtqLmFkZEV2ZW50KHgsIm1vdXNlZG93biIsZnVuY3Rpb24oKXtqLmFkZENsYXNzKEYsQSl9LHcuaWQpO2ouYWRkRXZlbnQoay5ib2R5LCJtb3VzZXVwIixmdW5jdGlvbigpe2oucmVtb3ZlQ2xhc3MoRixBKX0sdy5pZCl9aWYody5mZWF0dXJlcy50cmlnZ2VyRGlhbG9nKXtqLmFkZEV2ZW50KEYsImNsaWNrIixmdW5jdGlvbihIKXt2YXIgeT1rLmdldEVsZW1lbnRCeUlkKHcuaWQrIl9odG1sNSIpO2lmKHkmJiF5LmRpc2FibGVkKXt5LmNsaWNrKCl9SC5wcmV2ZW50RGVmYXVsdCgpfSx3LmlkKX19fSk7cC5iaW5kKCJQb3N0SW5pdCIsZnVuY3Rpb24oKXt2YXIgcz1rLmdldEVsZW1lbnRCeUlkKHAuc2V0dGluZ3MuZHJvcF9lbGVtZW50KTtpZihzKXtpZihnKXtqLmFkZEV2ZW50KHMsImRyYWdlbnRlciIsZnVuY3Rpb24odyl7dmFyIHYsdCx1O3Y9ay5nZXRFbGVtZW50QnlJZChwLmlkKyJfZHJvcCIpO2lmKCF2KXt2PWsuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTt2LnNldEF0dHJpYnV0ZSgidHlwZSIsImZpbGUiKTt2LnNldEF0dHJpYnV0ZSgiaWQiLHAuaWQrIl9kcm9wIik7di5zZXRBdHRyaWJ1dGUoIm11bHRpcGxlIiwibXVsdGlwbGUiKTtqLmFkZEV2ZW50KHYsImNoYW5nZSIsZnVuY3Rpb24oKXtvKHRoaXMuZmlsZXMpO2oucmVtb3ZlRXZlbnQodiwiY2hhbmdlIixwLmlkKTt2LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodil9LHAuaWQpO3MuYXBwZW5kQ2hpbGQodil9dD1qLmdldFBvcyhzLGsuZ2V0RWxlbWVudEJ5SWQocC5zZXR0aW5ncy5jb250YWluZXIpKTt1PWouZ2V0U2l6ZShzKTtpZihqLmdldFN0eWxlKHMsInBvc2l0aW9uIik9PT0ic3RhdGljIil7ai5leHRlbmQocy5zdHlsZSx7cG9zaXRpb246InJlbGF0aXZlIn0pfWouZXh0ZW5kKHYuc3R5bGUse3Bvc2l0aW9uOiJhYnNvbHV0ZSIsZGlzcGxheToiYmxvY2siLHRvcDowLGxlZnQ6MCx3aWR0aDp1LncrInB4IixoZWlnaHQ6dS5oKyJweCIsb3BhY2l0eTowfSl9LHAuaWQpO3JldHVybn1qLmFkZEV2ZW50KHMsImRyYWdvdmVyIixmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCl9LHAuaWQpO2ouYWRkRXZlbnQocywiZHJvcCIsZnVuY3Rpb24odSl7dmFyIHQ9dS5kYXRhVHJhbnNmZXI7aWYodCYmdC5maWxlcyl7byh0LmZpbGVzKX11LnByZXZlbnREZWZhdWx0KCl9LHAuaWQpfX0pO3AuYmluZCgiUmVmcmVzaCIsZnVuY3Rpb24ocyl7dmFyIHQsdSx2LHgsdzt0PWsuZ2V0RWxlbWVudEJ5SWQocC5zZXR0aW5ncy5icm93c2VfYnV0dG9uKTtpZih0KXt1PWouZ2V0UG9zKHQsay5nZXRFbGVtZW50QnlJZChzLnNldHRpbmdzLmNvbnRhaW5lcikpO3Y9ai5nZXRTaXplKHQpO3g9ay5nZXRFbGVtZW50QnlJZChwLmlkKyJfaHRtbDVfY29udGFpbmVyIik7ai5leHRlbmQoeC5zdHlsZSx7dG9wOnUueSsicHgiLGxlZnQ6dS54KyJweCIsd2lkdGg6di53KyJweCIsaGVpZ2h0OnYuaCsicHgifSk7aWYocC5mZWF0dXJlcy50cmlnZ2VyRGlhbG9nKXtpZihqLmdldFN0eWxlKHQsInBvc2l0aW9uIik9PT0ic3RhdGljIil7ai5leHRlbmQodC5zdHlsZSx7cG9zaXRpb246InJlbGF0aXZlIn0pfXc9cGFyc2VJbnQoai5nZXRTdHlsZSh0LCJ6LWluZGV4IiksMTApO2lmKGlzTmFOKHcpKXt3PTB9ai5leHRlbmQodC5zdHlsZSx7ekluZGV4Ond9KTtqLmV4dGVuZCh4LnN0eWxlLHt6SW5kZXg6dy0xfSl9fX0pO3AuYmluZCgiRGlzYWJsZUJyb3dzZSIsZnVuY3Rpb24ocyx1KXt2YXIgdD1rLmdldEVsZW1lbnRCeUlkKHMuaWQrIl9odG1sNSIpO2lmKHQpe3QuZGlzYWJsZWQ9dX19KTtwLmJpbmQoIkNhbmNlbFVwbG9hZCIsZnVuY3Rpb24oKXtpZihxLmFib3J0KXtxLmFib3J0KCl9fSk7cC5iaW5kKCJVcGxvYWRGaWxlIixmdW5jdGlvbihzLHUpe3ZhciB2PXMuc2V0dGluZ3MseSx0O2Z1bmN0aW9uIHgoQSxELHope3ZhciBCO2lmKEZpbGUucHJvdG90eXBlLnNsaWNlKXt0cnl7QS5zbGljZSgpO3JldHVybiBBLnNsaWNlKEQseil9Y2F0Y2goQyl7cmV0dXJuIEEuc2xpY2UoRCx6LUQpfX1lbHNle2lmKEI9RmlsZS5wcm90b3R5cGUud2Via2l0U2xpY2V8fEZpbGUucHJvdG90eXBlLm1velNsaWNlKXtyZXR1cm4gQi5jYWxsKEEsRCx6KX1lbHNle3JldHVybiBudWxsfX19ZnVuY3Rpb24gdyhBKXt2YXIgRD0wLEM9MCx6PSgiRmlsZVJlYWRlciIgaW4gaCk/bmV3IEZpbGVSZWFkZXI6bnVsbDtmdW5jdGlvbiBCKCl7dmFyIEksTSxLLEwsSCxKLEYsRT1zLnNldHRpbmdzLnVybDtmdW5jdGlvbiBHKFYpe3ZhciBUPTAsTj0iLS0tLXBsdXBsb2FkYm91bmRhcnkiK2ouZ3VpZCgpLE8sUD0iLS0iLFU9IlxyXG4iLFI9IiI7cT1uZXcgWE1MSHR0cFJlcXVlc3Q7aWYocS51cGxvYWQpe3EudXBsb2FkLm9ucHJvZ3Jlc3M9ZnVuY3Rpb24oVyl7dS5sb2FkZWQ9TWF0aC5taW4odS5zaXplLEMrVy5sb2FkZWQtVCk7cy50cmlnZ2VyKCJVcGxvYWRQcm9ncmVzcyIsdSl9fXEub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7dmFyIFcsWTtpZihxLnJlYWR5U3RhdGU9PTQmJnMuc3RhdGUhPT1qLlNUT1BQRUQpe3RyeXtXPXEuc3RhdHVzfWNhdGNoKFgpe1c9MH1pZihXPj00MDApe3MudHJpZ2dlcigiRXJyb3IiLHtjb2RlOmouSFRUUF9FUlJPUixtZXNzYWdlOmoudHJhbnNsYXRlKCJIVFRQIEVycm9yLiIpLGZpbGU6dSxzdGF0dXM6V30pfWVsc2V7aWYoSyl7WT17Y2h1bms6RCxjaHVua3M6SyxyZXNwb25zZTpxLnJlc3BvbnNlVGV4dCxzdGF0dXM6V307cy50cmlnZ2VyKCJDaHVua1VwbG9hZGVkIix1LFkpO0MrPUo7aWYoWS5jYW5jZWxsZWQpe3Uuc3RhdHVzPWouRkFJTEVEO3JldHVybn11LmxvYWRlZD1NYXRoLm1pbih1LnNpemUsKEQrMSkqSCl9ZWxzZXt1LmxvYWRlZD11LnNpemV9cy50cmlnZ2VyKCJVcGxvYWRQcm9ncmVzcyIsdSk7Vj1JPU89Uj1udWxsO2lmKCFLfHwrK0Q+PUspe3Uuc3RhdHVzPWouRE9ORTtzLnRyaWdnZXIoIkZpbGVVcGxvYWRlZCIsdSx7cmVzcG9uc2U6cS5yZXNwb25zZVRleHQsc3RhdHVzOld9KX1lbHNle0IoKX19fX07aWYocy5zZXR0aW5ncy5tdWx0aXBhcnQmJm4ubXVsdGlwYXJ0KXtMLm5hbWU9dS50YXJnZXRfbmFtZXx8dS5uYW1lO3Eub3BlbigicG9zdCIsRSx0cnVlKTtqLmVhY2gocy5zZXR0aW5ncy5oZWFkZXJzLGZ1bmN0aW9uKFgsVyl7cS5zZXRSZXF1ZXN0SGVhZGVyKFcsWCl9KTtpZih0eXBlb2YoVikhPT0ic3RyaW5nIiYmISFoLkZvcm1EYXRhKXtPPW5ldyBGb3JtRGF0YSgpO2ouZWFjaChqLmV4dGVuZChMLHMuc2V0dGluZ3MubXVsdGlwYXJ0X3BhcmFtcyksZnVuY3Rpb24oWCxXKXtPLmFwcGVuZChXLFgpfSk7Ty5hcHBlbmQocy5zZXR0aW5ncy5maWxlX2RhdGFfbmFtZSxWKTtxLnNlbmQoTyk7cmV0dXJufWlmKHR5cGVvZihWKT09PSJzdHJpbmciKXtxLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsIm11bHRpcGFydC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSIrTik7ai5lYWNoKGouZXh0ZW5kKEwscy5zZXR0aW5ncy5tdWx0aXBhcnRfcGFyYW1zKSxmdW5jdGlvbihYLFcpe1IrPVArTitVKydDb250ZW50LURpc3Bvc2l0aW9uOiBmb3JtLWRhdGE7IG5hbWU9IicrVysnIicrVStVO1IrPXVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChYKSkrVX0pO0Y9ai5taW1lVHlwZXNbdS5uYW1lLnJlcGxhY2UoL14uK1wuKFteLl0rKS8sIiQxIikudG9Mb3dlckNhc2UoKV18fCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iO1IrPVArTitVKydDb250ZW50LURpc3Bvc2l0aW9uOiBmb3JtLWRhdGE7IG5hbWU9Iicrcy5zZXR0aW5ncy5maWxlX2RhdGFfbmFtZSsnIjsgZmlsZW5hbWU9IicrdW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHUubmFtZSkpKyciJytVKyJDb250ZW50LVR5cGU6ICIrRitVK1UrVitVK1ArTitQK1U7VD1SLmxlbmd0aC1WLmxlbmd0aDtWPVI7aWYocS5zZW5kQXNCaW5hcnkpe3Euc2VuZEFzQmluYXJ5KFYpfWVsc2V7aWYobi5jYW5TZW5kQmluYXJ5KXt2YXIgUz1uZXcgVWludDhBcnJheShWLmxlbmd0aCk7Zm9yKHZhciBRPTA7UTxWLmxlbmd0aDtRKyspe1NbUV09KFYuY2hhckNvZGVBdChRKSYyNTUpfXEuc2VuZChTLmJ1ZmZlcil9fXJldHVybn19RT1qLmJ1aWxkVXJsKHMuc2V0dGluZ3MudXJsLGouZXh0ZW5kKEwscy5zZXR0aW5ncy5tdWx0aXBhcnRfcGFyYW1zKSk7cS5vcGVuKCJwb3N0IixFLHRydWUpO3Euc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIik7ai5lYWNoKHMuc2V0dGluZ3MuaGVhZGVycyxmdW5jdGlvbihYLFcpe3Euc2V0UmVxdWVzdEhlYWRlcihXLFgpfSk7cS5zZW5kKFYpfWlmKHUuc3RhdHVzPT1qLkRPTkV8fHUuc3RhdHVzPT1qLkZBSUxFRHx8cy5zdGF0ZT09ai5TVE9QUEVEKXtyZXR1cm59TD17bmFtZTp1LnRhcmdldF9uYW1lfHx1Lm5hbWV9O2lmKHYuY2h1bmtfc2l6ZSYmdS5zaXplPnYuY2h1bmtfc2l6ZSYmKG4uY2h1bmtzfHx0eXBlb2YoQSk9PSJzdHJpbmciKSl7SD12LmNodW5rX3NpemU7Sz1NYXRoLmNlaWwodS5zaXplL0gpO0o9TWF0aC5taW4oSCx1LnNpemUtKEQqSCkpO2lmKHR5cGVvZihBKT09InN0cmluZyIpe0k9QS5zdWJzdHJpbmcoRCpILEQqSCtKKX1lbHNle0k9eChBLEQqSCxEKkgrSil9TC5jaHVuaz1EO0wuY2h1bmtzPUt9ZWxzZXtKPXUuc2l6ZTtJPUF9aWYocy5zZXR0aW5ncy5tdWx0aXBhcnQmJm4ubXVsdGlwYXJ0JiZ0eXBlb2YoSSkhPT0ic3RyaW5nIiYmeiYmbi5jYW50U2VuZEJsb2JJbkZvcm1EYXRhJiZuLmNodW5rcyYmcy5zZXR0aW5ncy5jaHVua19zaXplKXt6Lm9ubG9hZD1mdW5jdGlvbigpe0coei5yZXN1bHQpfTt6LnJlYWRBc0JpbmFyeVN0cmluZyhJKX1lbHNle0coSSl9fUIoKX15PWNbdS5pZF07aWYobi5qcGdyZXNpemUmJnMuc2V0dGluZ3MucmVzaXplJiYvXC4ocG5nfGpwZ3xqcGVnKSQvaS50ZXN0KHUubmFtZSkpe2QuY2FsbChzLHUscy5zZXR0aW5ncy5yZXNpemUsL1wucG5nJC9pLnRlc3QodS5uYW1lKT8iaW1hZ2UvcG5nIjoiaW1hZ2UvanBlZyIsZnVuY3Rpb24oeil7aWYoei5zdWNjZXNzKXt1LnNpemU9ei5kYXRhLmxlbmd0aDt3KHouZGF0YSl9ZWxzZXtpZihuLmNodW5rcyl7dyh5KX1lbHNle2woeSx3KX19fSl9ZWxzZXtpZighbi5jaHVua3MmJm4uanBncmVzaXplKXtsKHksdyl9ZWxzZXt3KHkpfX19KTtwLmJpbmQoIkRlc3Ryb3kiLGZ1bmN0aW9uKHMpe3ZhciB1LHYsdD1rLmJvZHksdz17aW5wdXRDb250YWluZXI6cy5pZCsiX2h0bWw1X2NvbnRhaW5lciIsaW5wdXRGaWxlOnMuaWQrIl9odG1sNSIsYnJvd3NlQnV0dG9uOnMuc2V0dGluZ3MuYnJvd3NlX2J1dHRvbixkcm9wRWxtOnMuc2V0dGluZ3MuZHJvcF9lbGVtZW50fTtmb3IodSBpbiB3KXt2PWsuZ2V0RWxlbWVudEJ5SWQod1t1XSk7aWYodil7ai5yZW1vdmVBbGxFdmVudHModixzLmlkKX19ai5yZW1vdmVBbGxFdmVudHMoay5ib2R5LHMuaWQpO2lmKHMuc2V0dGluZ3MuY29udGFpbmVyKXt0PWsuZ2V0RWxlbWVudEJ5SWQocy5zZXR0aW5ncy5jb250YWluZXIpfXQucmVtb3ZlQ2hpbGQoay5nZXRFbGVtZW50QnlJZCh3LmlucHV0Q29udGFpbmVyKSl9KTtyKHtzdWNjZXNzOnRydWV9KX19KTtmdW5jdGlvbiBiKCl7dmFyIHE9ZmFsc2UsbztmdW5jdGlvbiByKHQsdil7dmFyIHM9cT8wOi04Kih2LTEpLHc9MCx1O2Zvcih1PTA7dTx2O3UrKyl7d3w9KG8uY2hhckNvZGVBdCh0K3UpPDxNYXRoLmFicyhzK3UqOCkpfXJldHVybiB3fWZ1bmN0aW9uIG4odSxzLHQpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg9PT0zP3Q6by5sZW5ndGgtcy0xO289by5zdWJzdHIoMCxzKSt1K28uc3Vic3RyKHQrcyl9ZnVuY3Rpb24gcCh0LHUsdyl7dmFyIHg9IiIscz1xPzA6LTgqKHctMSksdjtmb3Iodj0wO3Y8dzt2Kyspe3grPVN0cmluZy5mcm9tQ2hhckNvZGUoKHU+Pk1hdGguYWJzKHMrdio4KSkmMjU1KX1uKHgsdCx3KX1yZXR1cm57SUk6ZnVuY3Rpb24ocyl7aWYocz09PWUpe3JldHVybiBxfWVsc2V7cT1zfX0saW5pdDpmdW5jdGlvbihzKXtxPWZhbHNlO289c30sU0VHTUVOVDpmdW5jdGlvbihzLHUsdCl7c3dpdGNoKGFyZ3VtZW50cy5sZW5ndGgpe2Nhc2UgMTpyZXR1cm4gby5zdWJzdHIocyxvLmxlbmd0aC1zLTEpO2Nhc2UgMjpyZXR1cm4gby5zdWJzdHIocyx1KTtjYXNlIDM6bih0LHMsdSk7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gb319LEJZVEU6ZnVuY3Rpb24ocyl7cmV0dXJuIHIocywxKX0sU0hPUlQ6ZnVuY3Rpb24ocyl7cmV0dXJuIHIocywyKX0sTE9ORzpmdW5jdGlvbihzLHQpe2lmKHQ9PT1lKXtyZXR1cm4gcihzLDQpfWVsc2V7cChzLHQsNCl9fSxTTE9ORzpmdW5jdGlvbihzKXt2YXIgdD1yKHMsNCk7cmV0dXJuKHQ+MjE0NzQ4MzY0Nz90LTQyOTQ5NjcyOTY6dCl9LFNUUklORzpmdW5jdGlvbihzLHQpe3ZhciB1PSIiO2Zvcih0Kz1zO3M8dDtzKyspe3UrPVN0cmluZy5mcm9tQ2hhckNvZGUocihzLDEpKX1yZXR1cm4gdX19fWZ1bmN0aW9uIGYocyl7dmFyIHU9ezY1NTA1OnthcHA6IkVYSUYiLG5hbWU6IkFQUDEiLHNpZ25hdHVyZToiRXhpZlwwIn0sNjU1MDY6e2FwcDoiSUNDIixuYW1lOiJBUFAyIixzaWduYXR1cmU6IklDQ19QUk9GSUxFXDAifSw2NTUxNzp7YXBwOiJJUFRDIixuYW1lOiJBUFAxMyIsc2lnbmF0dXJlOiJQaG90b3Nob3AgMy4wXDAifX0sdD1bXSxyLG4scD1lLHE9MCxvO3I9bmV3IGIoKTtyLmluaXQocyk7aWYoci5TSE9SVCgwKSE9PTY1NDk2KXtyZXR1cm59bj0yO289TWF0aC5taW4oMTA0ODU3NixzLmxlbmd0aCk7d2hpbGUobjw9byl7cD1yLlNIT1JUKG4pO2lmKHA+PTY1NDg4JiZwPD02NTQ5NSl7bis9Mjtjb250aW51ZX1pZihwPT09NjU0OTh8fHA9PT02NTQ5Nyl7YnJlYWt9cT1yLlNIT1JUKG4rMikrMjtpZih1W3BdJiZyLlNUUklORyhuKzQsdVtwXS5zaWduYXR1cmUubGVuZ3RoKT09PXVbcF0uc2lnbmF0dXJlKXt0LnB1c2goe2hleDpwLGFwcDp1W3BdLmFwcC50b1VwcGVyQ2FzZSgpLG5hbWU6dVtwXS5uYW1lLnRvVXBwZXJDYXNlKCksc3RhcnQ6bixsZW5ndGg6cSxzZWdtZW50OnIuU0VHTUVOVChuLHEpfSl9bis9cX1yLmluaXQobnVsbCk7cmV0dXJue2hlYWRlcnM6dCxyZXN0b3JlOmZ1bmN0aW9uKHkpe3IuaW5pdCh5KTt2YXIgdz1uZXcgZih5KTtpZighdy5oZWFkZXJzKXtyZXR1cm4gZmFsc2V9Zm9yKHZhciB4PXcuaGVhZGVycy5sZW5ndGg7eD4wO3gtLSl7dmFyIHo9dy5oZWFkZXJzW3gtMV07ci5TRUdNRU5UKHouc3RhcnQsei5sZW5ndGgsIiIpfXcucHVyZ2UoKTtuPXIuU0hPUlQoMik9PTY1NTA0PzQrci5TSE9SVCg0KToyO2Zvcih2YXIgeD0wLHY9dC5sZW5ndGg7eDx2O3grKyl7ci5TRUdNRU5UKG4sMCx0W3hdLnNlZ21lbnQpO24rPXRbeF0ubGVuZ3RofXJldHVybiByLlNFR01FTlQoKX0sZ2V0OmZ1bmN0aW9uKHgpe3ZhciB5PVtdO2Zvcih2YXIgdz0wLHY9dC5sZW5ndGg7dzx2O3crKyl7aWYodFt3XS5hcHA9PT14LnRvVXBwZXJDYXNlKCkpe3kucHVzaCh0W3ddLnNlZ21lbnQpfX1yZXR1cm4geX0sc2V0OmZ1bmN0aW9uKHkseCl7dmFyIHo9W107aWYodHlwZW9mKHgpPT09InN0cmluZyIpe3oucHVzaCh4KX1lbHNle3o9eH1mb3IodmFyIHc9aWk9MCx2PXQubGVuZ3RoO3c8djt3Kyspe2lmKHRbd10uYXBwPT09eS50b1VwcGVyQ2FzZSgpKXt0W3ddLnNlZ21lbnQ9eltpaV07dFt3XS5sZW5ndGg9eltpaV0ubGVuZ3RoO2lpKyt9aWYoaWk+PXoubGVuZ3RoKXticmVha319fSxwdXJnZTpmdW5jdGlvbigpe3Q9W107ci5pbml0KG51bGwpfX19ZnVuY3Rpb24gYSgpe3ZhciBxLG4sbz17fSx0O3E9bmV3IGIoKTtuPXt0aWZmOnsyNzQ6Ik9yaWVudGF0aW9uIiwzNDY2NToiRXhpZklGRFBvaW50ZXIiLDM0ODUzOiJHUFNJbmZvSUZEUG9pbnRlciJ9LGV4aWY6ezM2ODY0OiJFeGlmVmVyc2lvbiIsNDA5NjE6IkNvbG9yU3BhY2UiLDQwOTYyOiJQaXhlbFhEaW1lbnNpb24iLDQwOTYzOiJQaXhlbFlEaW1lbnNpb24iLDM2ODY3OiJEYXRlVGltZU9yaWdpbmFsIiwzMzQzNDoiRXhwb3N1cmVUaW1lIiwzMzQzNzoiRk51bWJlciIsMzQ4NTU6IklTT1NwZWVkUmF0aW5ncyIsMzczNzc6IlNodXR0ZXJTcGVlZFZhbHVlIiwzNzM3ODoiQXBlcnR1cmVWYWx1ZSIsMzczODM6Ik1ldGVyaW5nTW9kZSIsMzczODQ6IkxpZ2h0U291cmNlIiwzNzM4NToiRmxhc2giLDQxOTg2OiJFeHBvc3VyZU1vZGUiLDQxOTg3OiJXaGl0ZUJhbGFuY2UiLDQxOTkwOiJTY2VuZUNhcHR1cmVUeXBlIiw0MTk4ODoiRGlnaXRhbFpvb21SYXRpbyIsNDE5OTI6IkNvbnRyYXN0Iiw0MTk5MzoiU2F0dXJhdGlvbiIsNDE5OTQ6IlNoYXJwbmVzcyJ9LGdwczp7MDoiR1BTVmVyc2lvbklEIiwxOiJHUFNMYXRpdHVkZVJlZiIsMjoiR1BTTGF0aXR1ZGUiLDM6IkdQU0xvbmdpdHVkZVJlZiIsNDoiR1BTTG9uZ2l0dWRlIn19O3Q9e0NvbG9yU3BhY2U6ezE6InNSR0IiLDA6IlVuY2FsaWJyYXRlZCJ9LE1ldGVyaW5nTW9kZTp7MDoiVW5rbm93biIsMToiQXZlcmFnZSIsMjoiQ2VudGVyV2VpZ2h0ZWRBdmVyYWdlIiwzOiJTcG90Iiw0OiJNdWx0aVNwb3QiLDU6IlBhdHRlcm4iLDY6IlBhcnRpYWwiLDI1NToiT3RoZXIifSxMaWdodFNvdXJjZTp7MToiRGF5bGlnaHQiLDI6IkZsaW9yZXNjZW50IiwzOiJUdW5nc3RlbiIsNDoiRmxhc2giLDk6IkZpbmUgd2VhdGhlciIsMTA6IkNsb3VkeSB3ZWF0aGVyIiwxMToiU2hhZGUiLDEyOiJEYXlsaWdodCBmbHVvcmVzY2VudCAoRCA1NzAwIC0gNzEwMEspIiwxMzoiRGF5IHdoaXRlIGZsdW9yZXNjZW50IChOIDQ2MDAgLTU0MDBLKSIsMTQ6IkNvb2wgd2hpdGUgZmx1b3Jlc2NlbnQgKFcgMzkwMCAtIDQ1MDBLKSIsMTU6IldoaXRlIGZsdW9yZXNjZW50IChXVyAzMjAwIC0gMzcwMEspIiwxNzoiU3RhbmRhcmQgbGlnaHQgQSIsMTg6IlN0YW5kYXJkIGxpZ2h0IEIiLDE5OiJTdGFuZGFyZCBsaWdodCBDIiwyMDoiRDU1IiwyMToiRDY1IiwyMjoiRDc1IiwyMzoiRDUwIiwyNDoiSVNPIHN0dWRpbyB0dW5nc3RlbiIsMjU1OiJPdGhlciJ9LEZsYXNoOnswOiJGbGFzaCBkaWQgbm90IGZpcmUuIiwxOiJGbGFzaCBmaXJlZC4iLDU6IlN0cm9iZSByZXR1cm4gbGlnaHQgbm90IGRldGVjdGVkLiIsNzoiU3Ryb2JlIHJldHVybiBsaWdodCBkZXRlY3RlZC4iLDk6IkZsYXNoIGZpcmVkLCBjb21wdWxzb3J5IGZsYXNoIG1vZGUiLDEzOiJGbGFzaCBmaXJlZCwgY29tcHVsc29yeSBmbGFzaCBtb2RlLCByZXR1cm4gbGlnaHQgbm90IGRldGVjdGVkIiwxNToiRmxhc2ggZmlyZWQsIGNvbXB1bHNvcnkgZmxhc2ggbW9kZSwgcmV0dXJuIGxpZ2h0IGRldGVjdGVkIiwxNjoiRmxhc2ggZGlkIG5vdCBmaXJlLCBjb21wdWxzb3J5IGZsYXNoIG1vZGUiLDI0OiJGbGFzaCBkaWQgbm90IGZpcmUsIGF1dG8gbW9kZSIsMjU6IkZsYXNoIGZpcmVkLCBhdXRvIG1vZGUiLDI5OiJGbGFzaCBmaXJlZCwgYXV0byBtb2RlLCByZXR1cm4gbGlnaHQgbm90IGRldGVjdGVkIiwzMToiRmxhc2ggZmlyZWQsIGF1dG8gbW9kZSwgcmV0dXJuIGxpZ2h0IGRldGVjdGVkIiwzMjoiTm8gZmxhc2ggZnVuY3Rpb24iLDY1OiJGbGFzaCBmaXJlZCwgcmVkLWV5ZSByZWR1Y3Rpb24gbW9kZSIsNjk6IkZsYXNoIGZpcmVkLCByZWQtZXllIHJlZHVjdGlvbiBtb2RlLCByZXR1cm4gbGlnaHQgbm90IGRldGVjdGVkIiw3MToiRmxhc2ggZmlyZWQsIHJlZC1leWUgcmVkdWN0aW9uIG1vZGUsIHJldHVybiBsaWdodCBkZXRlY3RlZCIsNzM6IkZsYXNoIGZpcmVkLCBjb21wdWxzb3J5IGZsYXNoIG1vZGUsIHJlZC1leWUgcmVkdWN0aW9uIG1vZGUiLDc3OiJGbGFzaCBmaXJlZCwgY29tcHVsc29yeSBmbGFzaCBtb2RlLCByZWQtZXllIHJlZHVjdGlvbiBtb2RlLCByZXR1cm4gbGlnaHQgbm90IGRldGVjdGVkIiw3OToiRmxhc2ggZmlyZWQsIGNvbXB1bHNvcnkgZmxhc2ggbW9kZSwgcmVkLWV5ZSByZWR1Y3Rpb24gbW9kZSwgcmV0dXJuIGxpZ2h0IGRldGVjdGVkIiw4OToiRmxhc2ggZmlyZWQsIGF1dG8gbW9kZSwgcmVkLWV5ZSByZWR1Y3Rpb24gbW9kZSIsOTM6IkZsYXNoIGZpcmVkLCBhdXRvIG1vZGUsIHJldHVybiBsaWdodCBub3QgZGV0ZWN0ZWQsIHJlZC1leWUgcmVkdWN0aW9uIG1vZGUiLDk1OiJGbGFzaCBmaXJlZCwgYXV0byBtb2RlLCByZXR1cm4gbGlnaHQgZGV0ZWN0ZWQsIHJlZC1leWUgcmVkdWN0aW9uIG1vZGUifSxFeHBvc3VyZU1vZGU6ezA6IkF1dG8gZXhwb3N1cmUiLDE6Ik1hbnVhbCBleHBvc3VyZSIsMjoiQXV0byBicmFja2V0In0sV2hpdGVCYWxhbmNlOnswOiJBdXRvIHdoaXRlIGJhbGFuY2UiLDE6Ik1hbnVhbCB3aGl0ZSBiYWxhbmNlIn0sU2NlbmVDYXB0dXJlVHlwZTp7MDoiU3RhbmRhcmQiLDE6IkxhbmRzY2FwZSIsMjoiUG9ydHJhaXQiLDM6Ik5pZ2h0IHNjZW5lIn0sQ29udHJhc3Q6ezA6Ik5vcm1hbCIsMToiU29mdCIsMjoiSGFyZCJ9LFNhdHVyYXRpb246ezA6Ik5vcm1hbCIsMToiTG93IHNhdHVyYXRpb24iLDI6IkhpZ2ggc2F0dXJhdGlvbiJ9LFNoYXJwbmVzczp7MDoiTm9ybWFsIiwxOiJTb2Z0IiwyOiJIYXJkIn0sR1BTTGF0aXR1ZGVSZWY6e046Ik5vcnRoIGxhdGl0dWRlIixTOiJTb3V0aCBsYXRpdHVkZSJ9LEdQU0xvbmdpdHVkZVJlZjp7RToiRWFzdCBsb25naXR1ZGUiLFc6Ildlc3QgbG9uZ2l0dWRlIn19O2Z1bmN0aW9uIHAodSxDKXt2YXIgdz1xLlNIT1JUKHUpLHosRixHLEIsQSx2LHgsRCxFPVtdLHk9e307Zm9yKHo9MDt6PHc7eisrKXt4PXY9dSsxMip6KzI7Rz1DW3EuU0hPUlQoeCldO2lmKEc9PT1lKXtjb250aW51ZX1CPXEuU0hPUlQoeCs9Mik7QT1xLkxPTkcoeCs9Mik7eCs9NDtFPVtdO3N3aXRjaChCKXtjYXNlIDE6Y2FzZSA3OmlmKEE+NCl7eD1xLkxPTkcoeCkrby50aWZmSGVhZGVyfWZvcihGPTA7RjxBO0YrKyl7RVtGXT1xLkJZVEUoeCtGKX1icmVhaztjYXNlIDI6aWYoQT40KXt4PXEuTE9ORyh4KStvLnRpZmZIZWFkZXJ9eVtHXT1xLlNUUklORyh4LEEtMSk7Y29udGludWU7Y2FzZSAzOmlmKEE+Mil7eD1xLkxPTkcoeCkrby50aWZmSGVhZGVyfWZvcihGPTA7RjxBO0YrKyl7RVtGXT1xLlNIT1JUKHgrRioyKX1icmVhaztjYXNlIDQ6aWYoQT4xKXt4PXEuTE9ORyh4KStvLnRpZmZIZWFkZXJ9Zm9yKEY9MDtGPEE7RisrKXtFW0ZdPXEuTE9ORyh4K0YqNCl9YnJlYWs7Y2FzZSA1Ong9cS5MT05HKHgpK28udGlmZkhlYWRlcjtmb3IoRj0wO0Y8QTtGKyspe0VbRl09cS5MT05HKHgrRio0KS9xLkxPTkcoeCtGKjQrNCl9YnJlYWs7Y2FzZSA5Ong9cS5MT05HKHgpK28udGlmZkhlYWRlcjtmb3IoRj0wO0Y8QTtGKyspe0VbRl09cS5TTE9ORyh4K0YqNCl9YnJlYWs7Y2FzZSAxMDp4PXEuTE9ORyh4KStvLnRpZmZIZWFkZXI7Zm9yKEY9MDtGPEE7RisrKXtFW0ZdPXEuU0xPTkcoeCtGKjQpL3EuU0xPTkcoeCtGKjQrNCl9YnJlYWs7ZGVmYXVsdDpjb250aW51ZX1EPShBPT0xP0VbMF06RSk7aWYodC5oYXNPd25Qcm9wZXJ0eShHKSYmdHlwZW9mIEQhPSJvYmplY3QiKXt5W0ddPXRbR11bRF19ZWxzZXt5W0ddPUR9fXJldHVybiB5fWZ1bmN0aW9uIHMoKXt2YXIgdj1lLHU9by50aWZmSGVhZGVyO3EuSUkocS5TSE9SVCh1KT09MTg3NjEpO2lmKHEuU0hPUlQodSs9MikhPT00Mil7cmV0dXJuIGZhbHNlfW8uSUZEMD1vLnRpZmZIZWFkZXIrcS5MT05HKHUrPTIpO3Y9cChvLklGRDAsbi50aWZmKTtvLmV4aWZJRkQ9KCJFeGlmSUZEUG9pbnRlciIgaW4gdj9vLnRpZmZIZWFkZXIrdi5FeGlmSUZEUG9pbnRlcjplKTtvLmdwc0lGRD0oIkdQU0luZm9JRkRQb2ludGVyIiBpbiB2P28udGlmZkhlYWRlcit2LkdQU0luZm9JRkRQb2ludGVyOmUpO3JldHVybiB0cnVlfWZ1bmN0aW9uIHIodyx1LHope3ZhciBCLHkseCxBPTA7aWYodHlwZW9mKHUpPT09InN0cmluZyIpe3ZhciB2PW5bdy50b0xvd2VyQ2FzZSgpXTtmb3IoaGV4IGluIHYpe2lmKHZbaGV4XT09PXUpe3U9aGV4O2JyZWFrfX19Qj1vW3cudG9Mb3dlckNhc2UoKSsiSUZEIl07eT1xLlNIT1JUKEIpO2ZvcihpPTA7aTx5O2krKyl7eD1CKzEyKmkrMjtpZihxLlNIT1JUKHgpPT11KXtBPXgrODticmVha319aWYoIUEpe3JldHVybiBmYWxzZX1xLkxPTkcoQSx6KTtyZXR1cm4gdHJ1ZX1yZXR1cm57aW5pdDpmdW5jdGlvbih1KXtvPXt0aWZmSGVhZGVyOjEwfTtpZih1PT09ZXx8IXUubGVuZ3RoKXtyZXR1cm4gZmFsc2V9cS5pbml0KHUpO2lmKHEuU0hPUlQoMCk9PT02NTUwNSYmcS5TVFJJTkcoNCw1KS50b1VwcGVyQ2FzZSgpPT09IkVYSUZcMCIpe3JldHVybiBzKCl9cmV0dXJuIGZhbHNlfSxFWElGOmZ1bmN0aW9uKCl7dmFyIHY7dj1wKG8uZXhpZklGRCxuLmV4aWYpO2lmKHYuRXhpZlZlcnNpb24mJmoudHlwZU9mKHYuRXhpZlZlcnNpb24pPT09ImFycmF5Iil7Zm9yKHZhciB3PTAsdT0iIjt3PHYuRXhpZlZlcnNpb24ubGVuZ3RoO3crKyl7dSs9U3RyaW5nLmZyb21DaGFyQ29kZSh2LkV4aWZWZXJzaW9uW3ddKX12LkV4aWZWZXJzaW9uPXV9cmV0dXJuIHZ9LEdQUzpmdW5jdGlvbigpe3ZhciB1O3U9cChvLmdwc0lGRCxuLmdwcyk7aWYodS5HUFNWZXJzaW9uSUQpe3UuR1BTVmVyc2lvbklEPXUuR1BTVmVyc2lvbklELmpvaW4oIi4iKX1yZXR1cm4gdX0sc2V0RXhpZjpmdW5jdGlvbih1LHYpe2lmKHUhPT0iUGl4ZWxYRGltZW5zaW9uIiYmdSE9PSJQaXhlbFlEaW1lbnNpb24iKXtyZXR1cm4gZmFsc2V9cmV0dXJuIHIoImV4aWYiLHUsdil9LGdldEJpbmFyeTpmdW5jdGlvbigpe3JldHVybiBxLlNFR01FTlQoKX19fX0pKHdpbmRvdyxkb2N1bWVudCxwbHVwbG9hZCk7]]></data>
	</file>
	<file>
	  <filename>/js/plupload/plupload.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoxLjUuMiovCihmdW5jdGlvbigpe3ZhciBmPTAsaz1bXSxtPXt9LGk9e30sYT17IjwiOiJsdCIsIj4iOiJndCIsIiYiOiJhbXAiLCciJzoicXVvdCIsIiciOiIjMzkifSxsPS9bPD4mXCJcJ10vZyxiLGM9d2luZG93LnNldFRpbWVvdXQsZD17fSxlO2Z1bmN0aW9uIGgoKXt0aGlzLnJldHVyblZhbHVlPWZhbHNlfWZ1bmN0aW9uIGooKXt0aGlzLmNhbmNlbEJ1YmJsZT10cnVlfShmdW5jdGlvbihuKXt2YXIgbz1uLnNwbGl0KC8sLykscCxyLHE7Zm9yKHA9MDtwPG8ubGVuZ3RoO3ArPTIpe3E9b1twKzFdLnNwbGl0KC8gLyk7Zm9yKHI9MDtyPHEubGVuZ3RoO3IrKyl7aVtxW3JdXT1vW3BdfX19KSgiYXBwbGljYXRpb24vbXN3b3JkLGRvYyBkb3QsYXBwbGljYXRpb24vcGRmLHBkZixhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlLHBncCxhcHBsaWNhdGlvbi9wb3N0c2NyaXB0LHBzIGFpIGVwcyxhcHBsaWNhdGlvbi9ydGYscnRmLGFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCx4bHMgeGxiLGFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LHBwdCBwcHMgcG90LGFwcGxpY2F0aW9uL3ppcCx6aXAsYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2gsc3dmIHN3ZmwsYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQsZG9jeCxhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC50ZW1wbGF0ZSxkb3R4LGFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0LHhsc3gsYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbixwcHR4LGFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC50ZW1wbGF0ZSxwb3R4LGFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZXNob3cscHBzeCxhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQsanMsYXBwbGljYXRpb24vanNvbixqc29uLGF1ZGlvL21wZWcsbXBnYSBtcGVnYSBtcDIgbXAzLGF1ZGlvL3gtd2F2LHdhdixhdWRpby9tcDQsbTRhLGltYWdlL2JtcCxibXAsaW1hZ2UvZ2lmLGdpZixpbWFnZS9qcGVnLGpwZWcganBnIGpwZSxpbWFnZS9waG90b3Nob3AscHNkLGltYWdlL3BuZyxwbmcsaW1hZ2Uvc3ZnK3htbCxzdmcgc3ZneixpbWFnZS90aWZmLHRpZmYgdGlmLHRleHQvcGxhaW4sYXNjIHR4dCB0ZXh0IGRpZmYgbG9nLHRleHQvaHRtbCxodG0gaHRtbCB4aHRtbCx0ZXh0L2Nzcyxjc3MsdGV4dC9jc3YsY3N2LHRleHQvcnRmLHJ0Zix2aWRlby9tcGVnLG1wZWcgbXBnIG1wZSx2aWRlby9xdWlja3RpbWUscXQgbW92LHZpZGVvL21wNCxtcDQsdmlkZW8veC1tNHYsbTR2LHZpZGVvL3gtZmx2LGZsdix2aWRlby94LW1zLXdtdix3bXYsdmlkZW8vYXZpLGF2aSx2aWRlby93ZWJtLHdlYm0sdmlkZW8vdm5kLnJuLXJlYWx2aWRlbyxydixhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmZvcm11bGEtdGVtcGxhdGUsb3RmLGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSxleGUiKTt2YXIgZz17VkVSU0lPTjoiMS41LjIiLFNUT1BQRUQ6MSxTVEFSVEVEOjIsUVVFVUVEOjEsVVBMT0FESU5HOjIsRkFJTEVEOjQsRE9ORTo1LEdFTkVSSUNfRVJST1I6LTEwMCxIVFRQX0VSUk9SOi0yMDAsSU9fRVJST1I6LTMwMCxTRUNVUklUWV9FUlJPUjotNDAwLElOSVRfRVJST1I6LTUwMCxGSUxFX1NJWkVfRVJST1I6LTYwMCxGSUxFX0VYVEVOU0lPTl9FUlJPUjotNjAxLElNQUdFX0ZPUk1BVF9FUlJPUjotNzAwLElNQUdFX01FTU9SWV9FUlJPUjotNzAxLElNQUdFX0RJTUVOU0lPTlNfRVJST1I6LTcwMixtaW1lVHlwZXM6aSx1YTooZnVuY3Rpb24oKXt2YXIgcj1uYXZpZ2F0b3IscT1yLnVzZXJBZ2VudCxzPXIudmVuZG9yLG8sbixwO289L1dlYktpdC8udGVzdChxKTtwPW8mJnMuaW5kZXhPZigiQXBwbGUiKSE9PS0xO249d2luZG93Lm9wZXJhJiZ3aW5kb3cub3BlcmEuYnVpbGROdW1iZXI7cmV0dXJue3dpbmRvd3M6bmF2aWdhdG9yLnBsYXRmb3JtLmluZGV4T2YoIldpbiIpIT09LTEsaWU6IW8mJiFuJiYoL01TSUUvZ2kpLnRlc3QocSkmJigvRXhwbG9yZXIvZ2kpLnRlc3Qoci5hcHBOYW1lKSx3ZWJraXQ6byxnZWNrbzohbyYmL0dlY2tvLy50ZXN0KHEpLHNhZmFyaTpwLG9wZXJhOiEhbn19KCkpLHR5cGVPZjpmdW5jdGlvbihuKXtyZXR1cm4oe30pLnRvU3RyaW5nLmNhbGwobikubWF0Y2goL1xzKFthLXp8QS1aXSspLylbMV0udG9Mb3dlckNhc2UoKX0sZXh0ZW5kOmZ1bmN0aW9uKG4pe2cuZWFjaChhcmd1bWVudHMsZnVuY3Rpb24obyxwKXtpZihwPjApe2cuZWFjaChvLGZ1bmN0aW9uKHIscSl7bltxXT1yfSl9fSk7cmV0dXJuIG59LGNsZWFuTmFtZTpmdW5jdGlvbihuKXt2YXIgbyxwO3A9Wy9bXDMwMC1cMzA2XS9nLCJBIiwvW1wzNDAtXDM0Nl0vZywiYSIsL1wzMDcvZywiQyIsL1wzNDcvZywiYyIsL1tcMzEwLVwzMTNdL2csIkUiLC9bXDM1MC1cMzUzXS9nLCJlIiwvW1wzMTQtXDMxN10vZywiSSIsL1tcMzU0LVwzNTddL2csImkiLC9cMzIxL2csIk4iLC9cMzYxL2csIm4iLC9bXDMyMi1cMzMwXS9nLCJPIiwvW1wzNjItXDM3MF0vZywibyIsL1tcMzMxLVwzMzRdL2csIlUiLC9bXDM3MS1cMzc0XS9nLCJ1Il07Zm9yKG89MDtvPHAubGVuZ3RoO28rPTIpe249bi5yZXBsYWNlKHBbb10scFtvKzFdKX1uPW4ucmVwbGFjZSgvXHMrL2csIl8iKTtuPW4ucmVwbGFjZSgvW15hLXowLTlfXC1cLl0rL2dpLCIiKTtyZXR1cm4gbn0sYWRkUnVudGltZTpmdW5jdGlvbihuLG8pe28ubmFtZT1uO2tbbl09bztrLnB1c2gobyk7cmV0dXJuIG99LGd1aWQ6ZnVuY3Rpb24oKXt2YXIgbj1uZXcgRGF0ZSgpLmdldFRpbWUoKS50b1N0cmluZygzMiksbztmb3Iobz0wO288NTtvKyspe24rPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSo2NTUzNSkudG9TdHJpbmcoMzIpfXJldHVybihnLmd1aWRQcmVmaXh8fCJwIikrbisoZisrKS50b1N0cmluZygzMil9LGJ1aWxkVXJsOmZ1bmN0aW9uKG8sbil7dmFyIHA9IiI7Zy5lYWNoKG4sZnVuY3Rpb24ocixxKXtwKz0ocD8iJiI6IiIpK2VuY29kZVVSSUNvbXBvbmVudChxKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KHIpfSk7aWYocCl7bys9KG8uaW5kZXhPZigiPyIpPjA/IiYiOiI/IikrcH1yZXR1cm4gb30sZWFjaDpmdW5jdGlvbihxLHIpe3ZhciBwLG8sbjtpZihxKXtwPXEubGVuZ3RoO2lmKHA9PT1iKXtmb3IobyBpbiBxKXtpZihxLmhhc093blByb3BlcnR5KG8pKXtpZihyKHFbb10sbyk9PT1mYWxzZSl7cmV0dXJufX19fWVsc2V7Zm9yKG49MDtuPHA7bisrKXtpZihyKHFbbl0sbik9PT1mYWxzZSl7cmV0dXJufX19fX0sZm9ybWF0U2l6ZTpmdW5jdGlvbihuKXtpZihuPT09Ynx8L1xELy50ZXN0KG4pKXtyZXR1cm4gZy50cmFuc2xhdGUoIk4vQSIpfWlmKG4+MTA3Mzc0MTgyNCl7cmV0dXJuIE1hdGgucm91bmQobi8xMDczNzQxODI0LDEpKyIgR0IifWlmKG4+MTA0ODU3Nil7cmV0dXJuIE1hdGgucm91bmQobi8xMDQ4NTc2LDEpKyIgTUIifWlmKG4+MTAyNCl7cmV0dXJuIE1hdGgucm91bmQobi8xMDI0LDEpKyIgS0IifXJldHVybiBuKyIgYiJ9LGdldFBvczpmdW5jdGlvbihvLHMpe3ZhciB0PTAscj0wLHYsdT1kb2N1bWVudCxwLHE7bz1vO3M9c3x8dS5ib2R5O2Z1bmN0aW9uIG4oQil7dmFyIHosQSx3PTAsQz0wO2lmKEIpe0E9Qi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt6PXUuY29tcGF0TW9kZT09PSJDU1MxQ29tcGF0Ij91LmRvY3VtZW50RWxlbWVudDp1LmJvZHk7dz1BLmxlZnQrei5zY3JvbGxMZWZ0O0M9QS50b3Arei5zY3JvbGxUb3B9cmV0dXJue3g6dyx5OkN9fWlmKG8mJm8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0JiYobmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNU0lFIik+MCYmdS5kb2N1bWVudE1vZGUhPT04KSl7cD1uKG8pO3E9bihzKTtyZXR1cm57eDpwLngtcS54LHk6cC55LXEueX19dj1vO3doaWxlKHYmJnYhPXMmJnYubm9kZVR5cGUpe3QrPXYub2Zmc2V0TGVmdHx8MDtyKz12Lm9mZnNldFRvcHx8MDt2PXYub2Zmc2V0UGFyZW50fXY9by5wYXJlbnROb2RlO3doaWxlKHYmJnYhPXMmJnYubm9kZVR5cGUpe3QtPXYuc2Nyb2xsTGVmdHx8MDtyLT12LnNjcm9sbFRvcHx8MDt2PXYucGFyZW50Tm9kZX1yZXR1cm57eDp0LHk6cn19LGdldFNpemU6ZnVuY3Rpb24obil7cmV0dXJue3c6bi5vZmZzZXRXaWR0aHx8bi5jbGllbnRXaWR0aCxoOm4ub2Zmc2V0SGVpZ2h0fHxuLmNsaWVudEhlaWdodH19LHBhcnNlU2l6ZTpmdW5jdGlvbihuKXt2YXIgbztpZih0eXBlb2Yobik9PSJzdHJpbmciKXtuPS9eKFswLTldKykoW21na10/KSQvLmV4ZWMobi50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1teMC05bWtnXS9nLCIiKSk7bz1uWzJdO249K25bMV07aWYobz09ImciKXtuKj0xMDczNzQxODI0fWlmKG89PSJtIil7bio9MTA0ODU3Nn1pZihvPT0iayIpe24qPTEwMjR9fXJldHVybiBufSx4bWxFbmNvZGU6ZnVuY3Rpb24obil7cmV0dXJuIG4/KCIiK24pLnJlcGxhY2UobCxmdW5jdGlvbihvKXtyZXR1cm4gYVtvXT8iJiIrYVtvXSsiOyI6b30pOm59LHRvQXJyYXk6ZnVuY3Rpb24ocCl7dmFyIG8sbj1bXTtmb3Iobz0wO288cC5sZW5ndGg7bysrKXtuW29dPXBbb119cmV0dXJuIG59LGluQXJyYXk6ZnVuY3Rpb24ocCxxKXtpZihxKXtpZihBcnJheS5wcm90b3R5cGUuaW5kZXhPZil7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwocSxwKX1mb3IodmFyIG49MCxvPXEubGVuZ3RoO248bztuKyspe2lmKHFbbl09PT1wKXtyZXR1cm4gbn19fXJldHVybiAtMX0sYWRkSTE4bjpmdW5jdGlvbihuKXtyZXR1cm4gZy5leHRlbmQobSxuKX0sdHJhbnNsYXRlOmZ1bmN0aW9uKG4pe3JldHVybiBtW25dfHxufSxpc0VtcHR5T2JqOmZ1bmN0aW9uKG4pe2lmKG49PT1iKXtyZXR1cm4gdHJ1ZX1mb3IodmFyIG8gaW4gbil7cmV0dXJuIGZhbHNlfXJldHVybiB0cnVlfSxoYXNDbGFzczpmdW5jdGlvbihwLG8pe3ZhciBuO2lmKHAuY2xhc3NOYW1lPT0iIil7cmV0dXJuIGZhbHNlfW49bmV3IFJlZ0V4cCgiKF58XFxzKykiK28rIihcXHMrfCQpIik7cmV0dXJuIG4udGVzdChwLmNsYXNzTmFtZSl9LGFkZENsYXNzOmZ1bmN0aW9uKG8sbil7aWYoIWcuaGFzQ2xhc3MobyxuKSl7by5jbGFzc05hbWU9by5jbGFzc05hbWU9PSIiP246by5jbGFzc05hbWUucmVwbGFjZSgvXHMrJC8sIiIpKyIgIitufX0scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24ocCxvKXt2YXIgbj1uZXcgUmVnRXhwKCIoXnxcXHMrKSIrbysiKFxccyt8JCkiKTtwLmNsYXNzTmFtZT1wLmNsYXNzTmFtZS5yZXBsYWNlKG4sZnVuY3Rpb24ocixxLHMpe3JldHVybiBxPT09IiAiJiZzPT09IiAiPyIgIjoiIn0pfSxnZXRTdHlsZTpmdW5jdGlvbihvLG4pe2lmKG8uY3VycmVudFN0eWxlKXtyZXR1cm4gby5jdXJyZW50U3R5bGVbbl19ZWxzZXtpZih3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSl7cmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG8sbnVsbClbbl19fX0sYWRkRXZlbnQ6ZnVuY3Rpb24ocyxuLHQpe3ZhciByLHEscCxvO289YXJndW1lbnRzWzNdO249bi50b0xvd2VyQ2FzZSgpO2lmKGU9PT1iKXtlPSJQbHVwbG9hZF8iK2cuZ3VpZCgpfWlmKHMuYWRkRXZlbnRMaXN0ZW5lcil7cj10O3MuYWRkRXZlbnRMaXN0ZW5lcihuLHIsZmFsc2UpfWVsc2V7aWYocy5hdHRhY2hFdmVudCl7cj1mdW5jdGlvbigpe3ZhciB1PXdpbmRvdy5ldmVudDtpZighdS50YXJnZXQpe3UudGFyZ2V0PXUuc3JjRWxlbWVudH11LnByZXZlbnREZWZhdWx0PWg7dS5zdG9wUHJvcGFnYXRpb249ajt0KHUpfTtzLmF0dGFjaEV2ZW50KCJvbiIrbixyKX19aWYoc1tlXT09PWIpe3NbZV09Zy5ndWlkKCl9aWYoIWQuaGFzT3duUHJvcGVydHkoc1tlXSkpe2Rbc1tlXV09e319cT1kW3NbZV1dO2lmKCFxLmhhc093blByb3BlcnR5KG4pKXtxW25dPVtdfXFbbl0ucHVzaCh7ZnVuYzpyLG9yaWc6dCxrZXk6b30pfSxyZW1vdmVFdmVudDpmdW5jdGlvbihzLG4pe3ZhciBxLHQscDtpZih0eXBlb2YoYXJndW1lbnRzWzJdKT09ImZ1bmN0aW9uIil7dD1hcmd1bWVudHNbMl19ZWxzZXtwPWFyZ3VtZW50c1syXX1uPW4udG9Mb3dlckNhc2UoKTtpZihzW2VdJiZkW3NbZV1dJiZkW3NbZV1dW25dKXtxPWRbc1tlXV1bbl19ZWxzZXtyZXR1cm59Zm9yKHZhciBvPXEubGVuZ3RoLTE7bz49MDtvLS0pe2lmKHFbb10ua2V5PT09cHx8cVtvXS5vcmlnPT09dCl7aWYocy5kZXRhY2hFdmVudCl7cy5kZXRhY2hFdmVudCgib24iK24scVtvXS5mdW5jKX1lbHNle2lmKHMucmVtb3ZlRXZlbnRMaXN0ZW5lcil7cy5yZW1vdmVFdmVudExpc3RlbmVyKG4scVtvXS5mdW5jLGZhbHNlKX19cVtvXS5vcmlnPW51bGw7cVtvXS5mdW5jPW51bGw7cS5zcGxpY2UobywxKTtpZih0IT09Yil7YnJlYWt9fX1pZighcS5sZW5ndGgpe2RlbGV0ZSBkW3NbZV1dW25dfWlmKGcuaXNFbXB0eU9iaihkW3NbZV1dKSl7ZGVsZXRlIGRbc1tlXV07dHJ5e2RlbGV0ZSBzW2VdfWNhdGNoKHIpe3NbZV09Yn19fSxyZW1vdmVBbGxFdmVudHM6ZnVuY3Rpb24obyl7dmFyIG49YXJndW1lbnRzWzFdO2lmKG9bZV09PT1ifHwhb1tlXSl7cmV0dXJufWcuZWFjaChkW29bZV1dLGZ1bmN0aW9uKHEscCl7Zy5yZW1vdmVFdmVudChvLHAsbil9KX19O2cuVXBsb2FkZXI9ZnVuY3Rpb24ocil7dmFyIG89e30sdSx0PVtdLHEscD1mYWxzZTt1PW5ldyBnLlF1ZXVlUHJvZ3Jlc3MoKTtyPWcuZXh0ZW5kKHtjaHVua19zaXplOjAsbXVsdGlwYXJ0OnRydWUsbXVsdGlfc2VsZWN0aW9uOnRydWUsZmlsZV9kYXRhX25hbWU6ImZpbGUiLGZpbHRlcnM6W119LHIpO2Z1bmN0aW9uIHMoKXt2YXIgdyx4PTAsdjtpZih0aGlzLnN0YXRlPT1nLlNUQVJURUQpe2Zvcih2PTA7djx0Lmxlbmd0aDt2Kyspe2lmKCF3JiZ0W3ZdLnN0YXR1cz09Zy5RVUVVRUQpe3c9dFt2XTt3LnN0YXR1cz1nLlVQTE9BRElORztpZih0aGlzLnRyaWdnZXIoIkJlZm9yZVVwbG9hZCIsdykpe3RoaXMudHJpZ2dlcigiVXBsb2FkRmlsZSIsdyl9fWVsc2V7eCsrfX1pZih4PT10Lmxlbmd0aCl7dGhpcy5zdG9wKCk7dGhpcy50cmlnZ2VyKCJVcGxvYWRDb21wbGV0ZSIsdCl9fX1mdW5jdGlvbiBuKCl7dmFyIHcsdjt1LnJlc2V0KCk7Zm9yKHc9MDt3PHQubGVuZ3RoO3crKyl7dj10W3ddO2lmKHYuc2l6ZSE9PWIpe3Uuc2l6ZSs9di5zaXplO3UubG9hZGVkKz12LmxvYWRlZH1lbHNle3Uuc2l6ZT1ifWlmKHYuc3RhdHVzPT1nLkRPTkUpe3UudXBsb2FkZWQrK31lbHNle2lmKHYuc3RhdHVzPT1nLkZBSUxFRCl7dS5mYWlsZWQrK31lbHNle3UucXVldWVkKyt9fX1pZih1LnNpemU9PT1iKXt1LnBlcmNlbnQ9dC5sZW5ndGg+MD9NYXRoLmNlaWwodS51cGxvYWRlZC90Lmxlbmd0aCoxMDApOjB9ZWxzZXt1LmJ5dGVzUGVyU2VjPU1hdGguY2VpbCh1LmxvYWRlZC8oKCtuZXcgRGF0ZSgpLXF8fDEpLzEwMDApKTt1LnBlcmNlbnQ9dS5zaXplPjA/TWF0aC5jZWlsKHUubG9hZGVkL3Uuc2l6ZSoxMDApOjB9fWcuZXh0ZW5kKHRoaXMse3N0YXRlOmcuU1RPUFBFRCxydW50aW1lOiIiLGZlYXR1cmVzOnt9LGZpbGVzOnQsc2V0dGluZ3M6cix0b3RhbDp1LGlkOmcuZ3VpZCgpLGluaXQ6ZnVuY3Rpb24oKXt2YXIgQT10aGlzLEIseCx3LHo9MCx5O2lmKHR5cGVvZihyLnByZWluaXQpPT0iZnVuY3Rpb24iKXtyLnByZWluaXQoQSl9ZWxzZXtnLmVhY2goci5wcmVpbml0LGZ1bmN0aW9uKEQsQyl7QS5iaW5kKEMsRCl9KX1yLnBhZ2VfdXJsPXIucGFnZV91cmx8fGRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLnJlcGxhY2UoL1wvW15cL10rJC9nLCIvIik7aWYoIS9eKFx3KzpcL1wvfFwvKS8udGVzdChyLnVybCkpe3IudXJsPXIucGFnZV91cmwrci51cmx9ci5jaHVua19zaXplPWcucGFyc2VTaXplKHIuY2h1bmtfc2l6ZSk7ci5tYXhfZmlsZV9zaXplPWcucGFyc2VTaXplKHIubWF4X2ZpbGVfc2l6ZSk7QS5iaW5kKCJGaWxlc0FkZGVkIixmdW5jdGlvbihDLEYpe3ZhciBFLEQsSD0wLEksRz1yLmZpbHRlcnM7aWYoRyYmRy5sZW5ndGgpe0k9W107Zy5lYWNoKEcsZnVuY3Rpb24oSil7Zy5lYWNoKEouZXh0ZW5zaW9ucy5zcGxpdCgvLC8pLGZ1bmN0aW9uKEspe2lmKC9eXHMqXCpccyokLy50ZXN0KEspKXtJLnB1c2goIlxcLioiKX1lbHNle0kucHVzaCgiXFwuIitLLnJlcGxhY2UobmV3IFJlZ0V4cCgiWyIrKCIvXiQuKis/fCgpW117fVxcIi5yZXBsYWNlKC8uL2csIlxcJCYiKSkrIl0iLCJnIiksIlxcJCYiKSl9fSl9KTtJPW5ldyBSZWdFeHAoSS5qb2luKCJ8IikrIiQiLCJpIil9Zm9yKEU9MDtFPEYubGVuZ3RoO0UrKyl7RD1GW0VdO0QubG9hZGVkPTA7RC5wZXJjZW50PTA7RC5zdGF0dXM9Zy5RVUVVRUQ7aWYoSSYmIUkudGVzdChELm5hbWUpKXtDLnRyaWdnZXIoIkVycm9yIix7Y29kZTpnLkZJTEVfRVhURU5TSU9OX0VSUk9SLG1lc3NhZ2U6Zy50cmFuc2xhdGUoIkZpbGUgZXh0ZW5zaW9uIGVycm9yLiIpLGZpbGU6RH0pO2NvbnRpbnVlfWlmKEQuc2l6ZSE9PWImJkQuc2l6ZT5yLm1heF9maWxlX3NpemUpe0MudHJpZ2dlcigiRXJyb3IiLHtjb2RlOmcuRklMRV9TSVpFX0VSUk9SLG1lc3NhZ2U6Zy50cmFuc2xhdGUoIkZpbGUgc2l6ZSBlcnJvci4iKSxmaWxlOkR9KTtjb250aW51ZX10LnB1c2goRCk7SCsrfWlmKEgpe2MoZnVuY3Rpb24oKXtBLnRyaWdnZXIoIlF1ZXVlQ2hhbmdlZCIpO0EucmVmcmVzaCgpfSwxKX1lbHNle3JldHVybiBmYWxzZX19KTtpZihyLnVuaXF1ZV9uYW1lcyl7QS5iaW5kKCJVcGxvYWRGaWxlIixmdW5jdGlvbihDLEQpe3ZhciBGPUQubmFtZS5tYXRjaCgvXC4oW14uXSspJC8pLEU9InRtcCI7aWYoRil7RT1GWzFdfUQudGFyZ2V0X25hbWU9RC5pZCsiLiIrRX0pfUEuYmluZCgiVXBsb2FkUHJvZ3Jlc3MiLGZ1bmN0aW9uKEMsRCl7RC5wZXJjZW50PUQuc2l6ZT4wP01hdGguY2VpbChELmxvYWRlZC9ELnNpemUqMTAwKToxMDA7bigpfSk7QS5iaW5kKCJTdGF0ZUNoYW5nZWQiLGZ1bmN0aW9uKEMpe2lmKEMuc3RhdGU9PWcuU1RBUlRFRCl7cT0oK25ldyBEYXRlKCkpfWVsc2V7aWYoQy5zdGF0ZT09Zy5TVE9QUEVEKXtmb3IoQj1DLmZpbGVzLmxlbmd0aC0xO0I+PTA7Qi0tKXtpZihDLmZpbGVzW0JdLnN0YXR1cz09Zy5VUExPQURJTkcpe0MuZmlsZXNbQl0uc3RhdHVzPWcuUVVFVUVEO24oKX19fX19KTtBLmJpbmQoIlF1ZXVlQ2hhbmdlZCIsbik7QS5iaW5kKCJFcnJvciIsZnVuY3Rpb24oQyxEKXtpZihELmZpbGUpe0QuZmlsZS5zdGF0dXM9Zy5GQUlMRUQ7bigpO2lmKEMuc3RhdGU9PWcuU1RBUlRFRCl7YyhmdW5jdGlvbigpe3MuY2FsbChBKX0sMSl9fX0pO0EuYmluZCgiRmlsZVVwbG9hZGVkIixmdW5jdGlvbihDLEQpe0Quc3RhdHVzPWcuRE9ORTtELmxvYWRlZD1ELnNpemU7Qy50cmlnZ2VyKCJVcGxvYWRQcm9ncmVzcyIsRCk7YyhmdW5jdGlvbigpe3MuY2FsbChBKX0sMSl9KTtpZihyLnJ1bnRpbWVzKXt4PVtdO3k9ci5ydW50aW1lcy5zcGxpdCgvXHM/LFxzPy8pO2ZvcihCPTA7Qjx5Lmxlbmd0aDtCKyspe2lmKGtbeVtCXV0pe3gucHVzaChrW3lbQl1dKX19fWVsc2V7eD1rfWZ1bmN0aW9uIHYoKXt2YXIgRj14W3orK10sRSxDLEQ7aWYoRil7RT1GLmdldEZlYXR1cmVzKCk7Qz1BLnNldHRpbmdzLnJlcXVpcmVkX2ZlYXR1cmVzO2lmKEMpe0M9Qy5zcGxpdCgiLCIpO2ZvcihEPTA7RDxDLmxlbmd0aDtEKyspe2lmKCFFW0NbRF1dKXt2KCk7cmV0dXJufX19Ri5pbml0KEEsZnVuY3Rpb24oRyl7aWYoRyYmRy5zdWNjZXNzKXtBLmZlYXR1cmVzPUU7QS5ydW50aW1lPUYubmFtZTtBLnRyaWdnZXIoIkluaXQiLHtydW50aW1lOkYubmFtZX0pO0EudHJpZ2dlcigiUG9zdEluaXQiKTtBLnJlZnJlc2goKX1lbHNle3YoKX19KX1lbHNle0EudHJpZ2dlcigiRXJyb3IiLHtjb2RlOmcuSU5JVF9FUlJPUixtZXNzYWdlOmcudHJhbnNsYXRlKCJJbml0IGVycm9yLiIpfSl9fXYoKTtpZih0eXBlb2Yoci5pbml0KT09ImZ1bmN0aW9uIil7ci5pbml0KEEpfWVsc2V7Zy5lYWNoKHIuaW5pdCxmdW5jdGlvbihELEMpe0EuYmluZChDLEQpfSl9fSxyZWZyZXNoOmZ1bmN0aW9uKCl7dGhpcy50cmlnZ2VyKCJSZWZyZXNoIil9LHN0YXJ0OmZ1bmN0aW9uKCl7aWYodGhpcy5zdGF0ZSE9Zy5TVEFSVEVEKXt0aGlzLnN0YXRlPWcuU1RBUlRFRDt0aGlzLnRyaWdnZXIoIlN0YXRlQ2hhbmdlZCIpO3MuY2FsbCh0aGlzKX19LHN0b3A6ZnVuY3Rpb24oKXtpZih0aGlzLnN0YXRlIT1nLlNUT1BQRUQpe3RoaXMuc3RhdGU9Zy5TVE9QUEVEO3RoaXMudHJpZ2dlcigiQ2FuY2VsVXBsb2FkIik7dGhpcy50cmlnZ2VyKCJTdGF0ZUNoYW5nZWQiKX19LGRpc2FibGVCcm93c2U6ZnVuY3Rpb24oKXtwPWFyZ3VtZW50c1swXSE9PWI/YXJndW1lbnRzWzBdOnRydWU7dGhpcy50cmlnZ2VyKCJEaXNhYmxlQnJvd3NlIixwKX0sZ2V0RmlsZTpmdW5jdGlvbih3KXt2YXIgdjtmb3Iodj10Lmxlbmd0aC0xO3Y+PTA7di0tKXtpZih0W3ZdLmlkPT09dyl7cmV0dXJuIHRbdl19fX0scmVtb3ZlRmlsZTpmdW5jdGlvbih3KXt2YXIgdjtmb3Iodj10Lmxlbmd0aC0xO3Y+PTA7di0tKXtpZih0W3ZdLmlkPT09dy5pZCl7cmV0dXJuIHRoaXMuc3BsaWNlKHYsMSlbMF19fX0sc3BsaWNlOmZ1bmN0aW9uKHgsdil7dmFyIHc7dz10LnNwbGljZSh4PT09Yj8wOngsdj09PWI/dC5sZW5ndGg6dik7dGhpcy50cmlnZ2VyKCJGaWxlc1JlbW92ZWQiLHcpO3RoaXMudHJpZ2dlcigiUXVldWVDaGFuZ2VkIik7cmV0dXJuIHd9LHRyaWdnZXI6ZnVuY3Rpb24odyl7dmFyIHk9b1t3LnRvTG93ZXJDYXNlKCldLHgsdjtpZih5KXt2PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7dlswXT10aGlzO2Zvcih4PTA7eDx5Lmxlbmd0aDt4Kyspe2lmKHlbeF0uZnVuYy5hcHBseSh5W3hdLnNjb3BlLHYpPT09ZmFsc2Upe3JldHVybiBmYWxzZX19fXJldHVybiB0cnVlfSxoYXNFdmVudExpc3RlbmVyOmZ1bmN0aW9uKHYpe3JldHVybiAhIW9bdi50b0xvd2VyQ2FzZSgpXX0sYmluZDpmdW5jdGlvbih2LHgsdyl7dmFyIHk7dj12LnRvTG93ZXJDYXNlKCk7eT1vW3ZdfHxbXTt5LnB1c2goe2Z1bmM6eCxzY29wZTp3fHx0aGlzfSk7b1t2XT15fSx1bmJpbmQ6ZnVuY3Rpb24odil7dj12LnRvTG93ZXJDYXNlKCk7dmFyIHk9b1t2XSx3LHg9YXJndW1lbnRzWzFdO2lmKHkpe2lmKHghPT1iKXtmb3Iodz15Lmxlbmd0aC0xO3c+PTA7dy0tKXtpZih5W3ddLmZ1bmM9PT14KXt5LnNwbGljZSh3LDEpO2JyZWFrfX19ZWxzZXt5PVtdfWlmKCF5Lmxlbmd0aCl7ZGVsZXRlIG9bdl19fX0sdW5iaW5kQWxsOmZ1bmN0aW9uKCl7dmFyIHY9dGhpcztnLmVhY2gobyxmdW5jdGlvbih4LHcpe3YudW5iaW5kKHcpfSl9LGRlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLnN0b3AoKTt0aGlzLnRyaWdnZXIoIkRlc3Ryb3kiKTt0aGlzLnVuYmluZEFsbCgpfX0pfTtnLkZpbGU9ZnVuY3Rpb24ocSxvLHApe3ZhciBuPXRoaXM7bi5pZD1xO24ubmFtZT1vO24uc2l6ZT1wO24ubG9hZGVkPTA7bi5wZXJjZW50PTA7bi5zdGF0dXM9MH07Zy5SdW50aW1lPWZ1bmN0aW9uKCl7dGhpcy5nZXRGZWF0dXJlcz1mdW5jdGlvbigpe307dGhpcy5pbml0PWZ1bmN0aW9uKG4sbyl7fX07Zy5RdWV1ZVByb2dyZXNzPWZ1bmN0aW9uKCl7dmFyIG49dGhpcztuLnNpemU9MDtuLmxvYWRlZD0wO24udXBsb2FkZWQ9MDtuLmZhaWxlZD0wO24ucXVldWVkPTA7bi5wZXJjZW50PTA7bi5ieXRlc1BlclNlYz0wO24ucmVzZXQ9ZnVuY3Rpb24oKXtuLnNpemU9bi5sb2FkZWQ9bi51cGxvYWRlZD1uLmZhaWxlZD1uLnF1ZXVlZD1uLnBlcmNlbnQ9bi5ieXRlc1BlclNlYz0wfX07Zy5ydW50aW1lcz17fTt3aW5kb3cucGx1cGxvYWQ9Z30pKCk7]]></data>
	</file>
	<file>
	  <filename>/js/plupload/plupload.silverlight.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[KGZ1bmN0aW9uKGcsYixkLGUpe3ZhciBhPXt9LGg9e307ZnVuY3Rpb24gYyhvKXt2YXIgbixtPXR5cGVvZiBvLGosbCxrO2lmKG89PT1lfHxvPT09bnVsbCl7cmV0dXJuIm51bGwifWlmKG09PT0ic3RyaW5nIil7bj0iXGJiXHR0XG5uXGZmXHJyXCJcIicnXFxcXCI7cmV0dXJuJyInK28ucmVwbGFjZSgvKFtcdTAwODAtXHVGRkZGXHgwMC1ceDFmXCJdKS9nLGZ1bmN0aW9uKHEscCl7dmFyIGk9bi5pbmRleE9mKHApO2lmKGkrMSl7cmV0dXJuIlxcIituLmNoYXJBdChpKzEpfXE9cC5jaGFyQ29kZUF0KCkudG9TdHJpbmcoMTYpO3JldHVybiJcXHUiKyIwMDAwIi5zdWJzdHJpbmcocS5sZW5ndGgpK3F9KSsnIid9aWYobT09Im9iamVjdCIpe2o9by5sZW5ndGghPT1lO249IiI7aWYoail7Zm9yKGw9MDtsPG8ubGVuZ3RoO2wrKyl7aWYobil7bis9IiwifW4rPWMob1tsXSl9bj0iWyIrbisiXSJ9ZWxzZXtmb3IoayBpbiBvKXtpZihvLmhhc093blByb3BlcnR5KGspKXtpZihuKXtuKz0iLCJ9bis9YyhrKSsiOiIrYyhvW2tdKX19bj0ieyIrbisifSJ9cmV0dXJuIG59cmV0dXJuIiIrb31mdW5jdGlvbiBmKHIpe3ZhciB1PWZhbHNlLGk9bnVsbCxuPW51bGwsaixrLGwsdCxtLHA9MDt0cnl7dHJ5e249bmV3IEFjdGl2ZVhPYmplY3QoIkFnQ29udHJvbC5BZ0NvbnRyb2wiKTtpZihuLklzVmVyc2lvblN1cHBvcnRlZChyKSl7dT10cnVlfW49bnVsbH1jYXRjaChxKXt2YXIgbz1uYXZpZ2F0b3IucGx1Z2luc1siU2lsdmVybGlnaHQgUGx1Zy1JbiJdO2lmKG8pe2o9by5kZXNjcmlwdGlvbjtpZihqPT09IjEuMC4zMDIyNi4yIil7aj0iMi4wLjMwMjI2LjIifWs9ai5zcGxpdCgiLiIpO3doaWxlKGsubGVuZ3RoPjMpe2sucG9wKCl9d2hpbGUoay5sZW5ndGg8NCl7ay5wdXNoKDApfWw9ci5zcGxpdCgiLiIpO3doaWxlKGwubGVuZ3RoPjQpe2wucG9wKCl9ZG97dD1wYXJzZUludChsW3BdLDEwKTttPXBhcnNlSW50KGtbcF0sMTApO3ArK313aGlsZShwPGwubGVuZ3RoJiZ0PT09bSk7aWYodDw9bSYmIWlzTmFOKHQpKXt1PXRydWV9fX19Y2F0Y2gocyl7dT1mYWxzZX1yZXR1cm4gdX1kLnNpbHZlcmxpZ2h0PXt0cmlnZ2VyOmZ1bmN0aW9uKG4sayl7dmFyIG09YVtuXSxsLGo7aWYobSl7aj1kLnRvQXJyYXkoYXJndW1lbnRzKS5zbGljZSgxKTtqWzBdPSJTaWx2ZXJsaWdodDoiK2s7c2V0VGltZW91dChmdW5jdGlvbigpe20udHJpZ2dlci5hcHBseShtLGopfSwwKX19fTtkLnJ1bnRpbWVzLlNpbHZlcmxpZ2h0PWQuYWRkUnVudGltZSgic2lsdmVybGlnaHQiLHtnZXRGZWF0dXJlczpmdW5jdGlvbigpe3JldHVybntqcGdyZXNpemU6dHJ1ZSxwbmdyZXNpemU6dHJ1ZSxjaHVua3M6dHJ1ZSxwcm9ncmVzczp0cnVlLG11bHRpcGFydDp0cnVlLG11bHRpX3NlbGVjdGlvbjp0cnVlfX0saW5pdDpmdW5jdGlvbihwLHEpe3ZhciBvLG09IiIsbj1wLnNldHRpbmdzLmZpbHRlcnMsbCxrPWIuYm9keTtpZighZigiMi4wLjMxMDA1LjAiKXx8KGcub3BlcmEmJmcub3BlcmEuYnVpbGROdW1iZXIpKXtxKHtzdWNjZXNzOmZhbHNlfSk7cmV0dXJufWhbcC5pZF09ZmFsc2U7YVtwLmlkXT1wO289Yi5jcmVhdGVFbGVtZW50KCJkaXYiKTtvLmlkPXAuaWQrIl9zaWx2ZXJsaWdodF9jb250YWluZXIiO2QuZXh0ZW5kKG8uc3R5bGUse3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOiIwcHgiLGJhY2tncm91bmQ6cC5zZXR0aW5ncy5zaGltX2JnY29sb3J8fCJ0cmFuc3BhcmVudCIsekluZGV4Ojk5OTk5LHdpZHRoOiIxMDBweCIsaGVpZ2h0OiIxMDBweCIsb3ZlcmZsb3c6ImhpZGRlbiIsb3BhY2l0eTpwLnNldHRpbmdzLnNoaW1fYmdjb2xvcnx8Yi5kb2N1bWVudE1vZGU+OD8iIjowLjAxfSk7by5jbGFzc05hbWU9InBsdXBsb2FkIHNpbHZlcmxpZ2h0IjtpZihwLnNldHRpbmdzLmNvbnRhaW5lcil7az1iLmdldEVsZW1lbnRCeUlkKHAuc2V0dGluZ3MuY29udGFpbmVyKTtpZihkLmdldFN0eWxlKGssInBvc2l0aW9uIik9PT0ic3RhdGljIil7ay5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUifX1rLmFwcGVuZENoaWxkKG8pO2ZvcihsPTA7bDxuLmxlbmd0aDtsKyspe20rPShtIT0iIj8ifCI6IiIpK25bbF0udGl0bGUrIiB8ICouIituW2xdLmV4dGVuc2lvbnMucmVwbGFjZSgvLC9nLCI7Ki4iKX1vLmlubmVySFRNTD0nPG9iamVjdCBpZD0iJytwLmlkKydfc2lsdmVybGlnaHQiIGRhdGE9ImRhdGE6YXBwbGljYXRpb24veC1zaWx2ZXJsaWdodCwiIHR5cGU9ImFwcGxpY2F0aW9uL3gtc2lsdmVybGlnaHQtMiIgc3R5bGU9Im91dGxpbmU6bm9uZTsiIHdpZHRoPSIxMDI0IiBoZWlnaHQ9IjEwMjQiPjxwYXJhbSBuYW1lPSJzb3VyY2UiIHZhbHVlPSInK3Auc2V0dGluZ3Muc2lsdmVybGlnaHRfeGFwX3VybCsnIi8+PHBhcmFtIG5hbWU9ImJhY2tncm91bmQiIHZhbHVlPSJUcmFuc3BhcmVudCIvPjxwYXJhbSBuYW1lPSJ3aW5kb3dsZXNzIiB2YWx1ZT0idHJ1ZSIvPjxwYXJhbSBuYW1lPSJlbmFibGVodG1sYWNjZXNzIiB2YWx1ZT0idHJ1ZSIvPjxwYXJhbSBuYW1lPSJpbml0UGFyYW1zIiB2YWx1ZT0iaWQ9JytwLmlkKyIsZmlsdGVyPSIrbSsiLG11bHRpc2VsZWN0PSIrcC5zZXR0aW5ncy5tdWx0aV9zZWxlY3Rpb24rJyIvPjwvb2JqZWN0Pic7ZnVuY3Rpb24gaigpe3JldHVybiBiLmdldEVsZW1lbnRCeUlkKHAuaWQrIl9zaWx2ZXJsaWdodCIpLmNvbnRlbnQuVXBsb2FkfXAuYmluZCgiU2lsdmVybGlnaHQ6SW5pdCIsZnVuY3Rpb24oKXt2YXIgaSxyPXt9O2lmKGhbcC5pZF0pe3JldHVybn1oW3AuaWRdPXRydWU7cC5iaW5kKCJTaWx2ZXJsaWdodDpTdGFydFNlbGVjdEZpbGVzIixmdW5jdGlvbihzKXtpPVtdfSk7cC5iaW5kKCJTaWx2ZXJsaWdodDpTZWxlY3RGaWxlIixmdW5jdGlvbihzLHYsdCx1KXt2YXIgdzt3PWQuZ3VpZCgpO3Jbd109djtyW3ZdPXc7aS5wdXNoKG5ldyBkLkZpbGUodyx0LHUpKX0pO3AuYmluZCgiU2lsdmVybGlnaHQ6U2VsZWN0U3VjY2Vzc2Z1bCIsZnVuY3Rpb24oKXtpZihpLmxlbmd0aCl7cC50cmlnZ2VyKCJGaWxlc0FkZGVkIixpKX19KTtwLmJpbmQoIlNpbHZlcmxpZ2h0OlVwbG9hZENodW5rRXJyb3IiLGZ1bmN0aW9uKHMsdix0LHcsdSl7cC50cmlnZ2VyKCJFcnJvciIse2NvZGU6ZC5JT19FUlJPUixtZXNzYWdlOiJJTyBFcnJvci4iLGRldGFpbHM6dSxmaWxlOnMuZ2V0RmlsZShyW3ZdKX0pfSk7cC5iaW5kKCJTaWx2ZXJsaWdodDpVcGxvYWRGaWxlUHJvZ3Jlc3MiLGZ1bmN0aW9uKHMsdyx0LHYpe3ZhciB1PXMuZ2V0RmlsZShyW3ddKTtpZih1LnN0YXR1cyE9ZC5GQUlMRUQpe3Uuc2l6ZT12O3UubG9hZGVkPXQ7cy50cmlnZ2VyKCJVcGxvYWRQcm9ncmVzcyIsdSl9fSk7cC5iaW5kKCJSZWZyZXNoIixmdW5jdGlvbihzKXt2YXIgdCx1LHY7dD1iLmdldEVsZW1lbnRCeUlkKHMuc2V0dGluZ3MuYnJvd3NlX2J1dHRvbik7aWYodCl7dT1kLmdldFBvcyh0LGIuZ2V0RWxlbWVudEJ5SWQocy5zZXR0aW5ncy5jb250YWluZXIpKTt2PWQuZ2V0U2l6ZSh0KTtkLmV4dGVuZChiLmdldEVsZW1lbnRCeUlkKHMuaWQrIl9zaWx2ZXJsaWdodF9jb250YWluZXIiKS5zdHlsZSx7dG9wOnUueSsicHgiLGxlZnQ6dS54KyJweCIsd2lkdGg6di53KyJweCIsaGVpZ2h0OnYuaCsicHgifSl9fSk7cC5iaW5kKCJTaWx2ZXJsaWdodDpVcGxvYWRDaHVua1N1Y2Nlc3NmdWwiLGZ1bmN0aW9uKHMsdix0LHkseCl7dmFyIHcsdT1zLmdldEZpbGUoclt2XSk7dz17Y2h1bms6dCxjaHVua3M6eSxyZXNwb25zZTp4fTtzLnRyaWdnZXIoIkNodW5rVXBsb2FkZWQiLHUsdyk7aWYodS5zdGF0dXMhPWQuRkFJTEVEJiZzLnN0YXRlIT09ZC5TVE9QUEVEKXtqKCkuVXBsb2FkTmV4dENodW5rKCl9aWYodD09eS0xKXt1LnN0YXR1cz1kLkRPTkU7cy50cmlnZ2VyKCJGaWxlVXBsb2FkZWQiLHUse3Jlc3BvbnNlOnh9KX19KTtwLmJpbmQoIlNpbHZlcmxpZ2h0OlVwbG9hZFN1Y2Nlc3NmdWwiLGZ1bmN0aW9uKHMsdix0KXt2YXIgdT1zLmdldEZpbGUoclt2XSk7dS5zdGF0dXM9ZC5ET05FO3MudHJpZ2dlcigiRmlsZVVwbG9hZGVkIix1LHtyZXNwb25zZTp0fSl9KTtwLmJpbmQoIkZpbGVzUmVtb3ZlZCIsZnVuY3Rpb24ocyx1KXt2YXIgdDtmb3IodD0wO3Q8dS5sZW5ndGg7dCsrKXtqKCkuUmVtb3ZlRmlsZShyW3VbdF0uaWRdKX19KTtwLmJpbmQoIlVwbG9hZEZpbGUiLGZ1bmN0aW9uKHMsdSl7dmFyIHY9cy5zZXR0aW5ncyx0PXYucmVzaXplfHx7fTtqKCkuVXBsb2FkRmlsZShyW3UuaWRdLHMuc2V0dGluZ3MudXJsLGMoe25hbWU6dS50YXJnZXRfbmFtZXx8dS5uYW1lLG1pbWU6ZC5taW1lVHlwZXNbdS5uYW1lLnJlcGxhY2UoL14uK1wuKFteLl0rKS8sIiQxIikudG9Mb3dlckNhc2UoKV18fCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iLGNodW5rX3NpemU6di5jaHVua19zaXplLGltYWdlX3dpZHRoOnQud2lkdGgsaW1hZ2VfaGVpZ2h0OnQuaGVpZ2h0LGltYWdlX3F1YWxpdHk6dC5xdWFsaXR5fHw5MCxtdWx0aXBhcnQ6ISF2Lm11bHRpcGFydCxtdWx0aXBhcnRfcGFyYW1zOnYubXVsdGlwYXJ0X3BhcmFtc3x8e30sZmlsZV9kYXRhX25hbWU6di5maWxlX2RhdGFfbmFtZSxoZWFkZXJzOnYuaGVhZGVyc30pKX0pO3AuYmluZCgiQ2FuY2VsVXBsb2FkIixmdW5jdGlvbigpe2ooKS5DYW5jZWxVcGxvYWQoKX0pO3AuYmluZCgiU2lsdmVybGlnaHQ6TW91c2VFbnRlciIsZnVuY3Rpb24ocyl7dmFyIHQsdTt0PWIuZ2V0RWxlbWVudEJ5SWQocC5zZXR0aW5ncy5icm93c2VfYnV0dG9uKTt1PXMuc2V0dGluZ3MuYnJvd3NlX2J1dHRvbl9ob3ZlcjtpZih0JiZ1KXtkLmFkZENsYXNzKHQsdSl9fSk7cC5iaW5kKCJTaWx2ZXJsaWdodDpNb3VzZUxlYXZlIixmdW5jdGlvbihzKXt2YXIgdCx1O3Q9Yi5nZXRFbGVtZW50QnlJZChwLnNldHRpbmdzLmJyb3dzZV9idXR0b24pO3U9cy5zZXR0aW5ncy5icm93c2VfYnV0dG9uX2hvdmVyO2lmKHQmJnUpe2QucmVtb3ZlQ2xhc3ModCx1KX19KTtwLmJpbmQoIlNpbHZlcmxpZ2h0Ok1vdXNlTGVmdEJ1dHRvbkRvd24iLGZ1bmN0aW9uKHMpe3ZhciB0LHU7dD1iLmdldEVsZW1lbnRCeUlkKHAuc2V0dGluZ3MuYnJvd3NlX2J1dHRvbik7dT1zLnNldHRpbmdzLmJyb3dzZV9idXR0b25fYWN0aXZlO2lmKHQmJnUpe2QuYWRkQ2xhc3ModCx1KTtkLmFkZEV2ZW50KGIuYm9keSwibW91c2V1cCIsZnVuY3Rpb24oKXtkLnJlbW92ZUNsYXNzKHQsdSl9KX19KTtwLmJpbmQoIlNsaXZlcmxpZ2h0OlN0YXJ0U2VsZWN0RmlsZXMiLGZ1bmN0aW9uKHMpe3ZhciB0LHU7dD1iLmdldEVsZW1lbnRCeUlkKHAuc2V0dGluZ3MuYnJvd3NlX2J1dHRvbik7dT1zLnNldHRpbmdzLmJyb3dzZV9idXR0b25fYWN0aXZlO2lmKHQmJnUpe2QucmVtb3ZlQ2xhc3ModCx1KX19KTtwLmJpbmQoIkRpc2FibGVCcm93c2UiLGZ1bmN0aW9uKHMsdCl7aigpLkRpc2FibGVCcm93c2UodCl9KTtwLmJpbmQoIkRlc3Ryb3kiLGZ1bmN0aW9uKHMpe3ZhciB0O2QucmVtb3ZlQWxsRXZlbnRzKGIuYm9keSxzLmlkKTtkZWxldGUgaFtzLmlkXTtkZWxldGUgYVtzLmlkXTt0PWIuZ2V0RWxlbWVudEJ5SWQocy5pZCsiX3NpbHZlcmxpZ2h0X2NvbnRhaW5lciIpO2lmKHQpe2sucmVtb3ZlQ2hpbGQodCl9fSk7cSh7c3VjY2Vzczp0cnVlfSl9KX19KX0pKHdpbmRvdyxkb2N1bWVudCxwbHVwbG9hZCk7]]></data>
	</file>
	<file>
	  <filename>/js/plupload/plupload.silverlight.xap</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/js/plupload/upload.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KLyoqDQogKiB1cGxvYWQucGhwDQogKg0KICogQ29weXJpZ2h0IDIwMDksIE1veGllY29kZSBTeXN0ZW1zIEFCDQogKiBSZWxlYXNlZCB1bmRlciBHUEwgTGljZW5zZS4NCiAqDQogKiBMaWNlbnNlOiBodHRwOi8vd3d3LnBsdXBsb2FkLmNvbS9saWNlbnNlDQogKiBDb250cmlidXRpbmc6IGh0dHA6Ly93d3cucGx1cGxvYWQuY29tL2NvbnRyaWJ1dGluZw0KICovDQovLyBIVFRQIGhlYWRlcnMgZm9yIG5vIGNhY2hlIGV0Yw0KaGVhZGVyKCJFeHBpcmVzOiBNb24sIDI2IEp1bCAxOTk3IDA1OjAwOjAwIEdNVCIpOw0KaGVhZGVyKCJMYXN0LU1vZGlmaWVkOiAiIC4gZ21kYXRlKCJELCBkIE0gWSBIOmk6cyIpIC4gIiBHTVQiKTsNCmhlYWRlcigiQ2FjaGUtQ29udHJvbDogbm8tc3RvcmUsIG5vLWNhY2hlLCBtdXN0LXJldmFsaWRhdGUiKTsNCmhlYWRlcigiQ2FjaGUtQ29udHJvbDogcG9zdC1jaGVjaz0wLCBwcmUtY2hlY2s9MCIsIGZhbHNlKTsNCmhlYWRlcigiUHJhZ21hOiBuby1jYWNoZSIpOw0KDQppZiAoISRfR0VUWyJnYWxsZXJ5X3BhdGgiXSkNCiAgICByZXR1cm47DQoNCi8vIFNldHRpbmdzDQokdGFyZ2V0RGlyID0gdXJsZGVjb2RlKCRfR0VUWyJnYWxsZXJ5X3BhdGgiXSk7DQovLyR0YXJnZXREaXIgPSAndXBsb2Fkcyc7DQoNCiRjbGVhbnVwVGFyZ2V0RGlyID0gdHJ1ZTsgLy8gUmVtb3ZlIG9sZCBmaWxlcw0KJG1heEZpbGVBZ2UgPSA1ICogMzYwMDsgLy8gVGVtcCBmaWxlIGFnZSBpbiBzZWNvbmRzDQovLyA1IG1pbnV0ZXMgZXhlY3V0aW9uIHRpbWUNCkBzZXRfdGltZV9saW1pdCg1ICogNjApOw0KDQovLyBVbmNvbW1lbnQgdGhpcyBvbmUgdG8gZmFrZSB1cGxvYWQgdGltZQ0KLy8gdXNsZWVwKDUwMDApOw0KLy8gR2V0IHBhcmFtZXRlcnMNCiRjaHVuayA9IGlzc2V0KCRfUkVRVUVTVFsiY2h1bmsiXSkgPyBpbnR2YWwoJF9SRVFVRVNUWyJjaHVuayJdKSA6IDA7DQokY2h1bmtzID0gaXNzZXQoJF9SRVFVRVNUWyJjaHVua3MiXSkgPyBpbnR2YWwoJF9SRVFVRVNUWyJjaHVua3MiXSkgOiAwOw0KJGZpbGVOYW1lID0gaXNzZXQoJF9SRVFVRVNUWyJuYW1lIl0pID8gJF9SRVFVRVNUWyJuYW1lIl0gOiAnJzsNCg0KLy8gQ2xlYW4gdGhlIGZpbGVOYW1lIGZvciBzZWN1cml0eSByZWFzb25zDQokZmlsZU5hbWUgPSBzdHJ0b2xvd2VyKHByZWdfcmVwbGFjZSgnL1teXHdcLl9dKy8nLCAnXycsICRmaWxlTmFtZSkpOw0KDQovLyBNYWtlIHN1cmUgdGhlIGZpbGVOYW1lIGlzIHVuaXF1ZSBidXQgb25seSBpZiBjaHVua2luZyBpcyBkaXNhYmxlZA0KaWYgKCRjaHVua3MgPCAyICYmIGZpbGVfZXhpc3RzKCR0YXJnZXREaXIgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGZpbGVOYW1lKSkgew0KICAgICRleHQgPSBzdHJycG9zKCRmaWxlTmFtZSwgJy4nKTsNCiAgICAkZmlsZU5hbWVfYSA9IHN1YnN0cigkZmlsZU5hbWUsIDAsICRleHQpOw0KICAgICRmaWxlTmFtZV9iID0gc3Vic3RyKCRmaWxlTmFtZSwgJGV4dCk7DQoNCiAgICAkY291bnQgPSAxOw0KICAgIHdoaWxlIChmaWxlX2V4aXN0cygkdGFyZ2V0RGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRmaWxlTmFtZV9hIC4gJ18nIC4gJGNvdW50IC4gJGZpbGVOYW1lX2IpKQ0KICAgICAgICAkY291bnQrKzsNCg0KICAgICRmaWxlTmFtZSA9ICRmaWxlTmFtZV9hIC4gJ18nIC4gJGNvdW50IC4gJGZpbGVOYW1lX2I7DQp9DQoNCiRmaWxlUGF0aCA9ICR0YXJnZXREaXIgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGZpbGVOYW1lOw0KDQovLyBDcmVhdGUgdGFyZ2V0IGRpcg0KaWYgKCFmaWxlX2V4aXN0cygkdGFyZ2V0RGlyKSkNCiAgICBAbWtkaXIoJHRhcmdldERpcik7DQoNCi8vIFJlbW92ZSBvbGQgdGVtcCBmaWxlcwkNCmlmICgkY2xlYW51cFRhcmdldERpciAmJiBpc19kaXIoJHRhcmdldERpcikgJiYgKCRkaXIgPSBvcGVuZGlyKCR0YXJnZXREaXIpKSkgew0KICAgIHdoaWxlICgoJGZpbGUgPSByZWFkZGlyKCRkaXIpKSAhPT0gZmFsc2UpIHsNCiAgICAgICAgJHRtcGZpbGVQYXRoID0gJHRhcmdldERpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZmlsZTsNCg0KICAgICAgICAvLyBSZW1vdmUgdGVtcCBmaWxlIGlmIGl0IGlzIG9sZGVyIHRoYW4gdGhlIG1heCBhZ2UgYW5kIGlzIG5vdCB0aGUgY3VycmVudCBmaWxlDQogICAgICAgIGlmIChwcmVnX21hdGNoKCcvXC5wYXJ0JC8nLCAkZmlsZSkgJiYgKGZpbGVtdGltZSgkdG1wZmlsZVBhdGgpIDwgdGltZSgpIC0gJG1heEZpbGVBZ2UpICYmICgkdG1wZmlsZVBhdGggIT0gInskZmlsZVBhdGh9LnBhcnQiKSkgew0KICAgICAgICAgICAgQHVubGluaygkdG1wZmlsZVBhdGgpOw0KICAgICAgICB9DQogICAgfQ0KDQogICAgY2xvc2VkaXIoJGRpcik7DQp9IGVsc2UNCiAgICBkaWUoJ3sianNvbnJwYyIgOiAiMi4wIiwgImVycm9yIiA6IHsiY29kZSI6IDEwMCwgIm1lc3NhZ2UiOiAiRmFpbGVkIHRvIG9wZW4gdGVtcCBkaXJlY3RvcnkuIn0sICJpZCIgOiAiaWQifScpOw0KDQoNCi8vIExvb2sgZm9yIHRoZSBjb250ZW50IHR5cGUgaGVhZGVyDQppZiAoaXNzZXQoJF9TRVJWRVJbIkhUVFBfQ09OVEVOVF9UWVBFIl0pKQ0KICAgICRjb250ZW50VHlwZSA9ICRfU0VSVkVSWyJIVFRQX0NPTlRFTlRfVFlQRSJdOw0KDQppZiAoaXNzZXQoJF9TRVJWRVJbIkNPTlRFTlRfVFlQRSJdKSkNCiAgICAkY29udGVudFR5cGUgPSAkX1NFUlZFUlsiQ09OVEVOVF9UWVBFIl07DQoNCi8vIEhhbmRsZSBub24gbXVsdGlwYXJ0IHVwbG9hZHMgb2xkZXIgV2ViS2l0IHZlcnNpb25zIGRpZG4ndCBzdXBwb3J0IG11bHRpcGFydCBpbiBIVE1MNQ0KaWYgKHN0cnBvcygkY29udGVudFR5cGUsICJtdWx0aXBhcnQiKSAhPT0gZmFsc2UpIHsNCiAgICBpZiAoaXNzZXQoJF9GSUxFU1snZmlsZSddWyd0bXBfbmFtZSddKSAmJiBpc191cGxvYWRlZF9maWxlKCRfRklMRVNbJ2ZpbGUnXVsndG1wX25hbWUnXSkpIHsNCiAgICAgICAgLy8gT3BlbiB0ZW1wIGZpbGUNCiAgICAgICAgJG91dCA9IGZvcGVuKCJ7JGZpbGVQYXRofS5wYXJ0IiwgJGNodW5rID09IDAgPyAid2IiIDogImFiIik7DQogICAgICAgIGlmICgkb3V0KSB7DQogICAgICAgICAgICAvLyBSZWFkIGJpbmFyeSBpbnB1dCBzdHJlYW0gYW5kIGFwcGVuZCBpdCB0byB0ZW1wIGZpbGUNCiAgICAgICAgICAgICRpbiA9IGZvcGVuKCRfRklMRVNbJ2ZpbGUnXVsndG1wX25hbWUnXSwgInJiIik7DQoNCiAgICAgICAgICAgIGlmICgkaW4pIHsNCiAgICAgICAgICAgICAgICB3aGlsZSAoJGJ1ZmYgPSBmcmVhZCgkaW4sIDQwOTYpKQ0KICAgICAgICAgICAgICAgICAgICBmd3JpdGUoJG91dCwgJGJ1ZmYpOw0KICAgICAgICAgICAgfSBlbHNlDQogICAgICAgICAgICAgICAgZGllKCd7Impzb25ycGMiIDogIjIuMCIsICJlcnJvciIgOiB7ImNvZGUiOiAxMDEsICJtZXNzYWdlIjogIkZhaWxlZCB0byBvcGVuIGlucHV0IHN0cmVhbS4ifSwgImlkIiA6ICJpZCJ9Jyk7DQogICAgICAgICAgICBmY2xvc2UoJGluKTsNCiAgICAgICAgICAgIGZjbG9zZSgkb3V0KTsNCiAgICAgICAgICAgIEB1bmxpbmsoJF9GSUxFU1snZmlsZSddWyd0bXBfbmFtZSddKTsNCiAgICAgICAgfSBlbHNlDQogICAgICAgICAgICBkaWUoJ3sianNvbnJwYyIgOiAiMi4wIiwgImVycm9yIiA6IHsiY29kZSI6IDEwMiwgIm1lc3NhZ2UiOiAiRmFpbGVkIHRvIG9wZW4gb3V0cHV0IHN0cmVhbS4ifSwgImlkIiA6ICJpZCJ9Jyk7DQogICAgfSBlbHNlDQogICAgICAgIGRpZSgneyJqc29ucnBjIiA6ICIyLjAiLCAiZXJyb3IiIDogeyJjb2RlIjogMTAzLCAibWVzc2FnZSI6ICJGYWlsZWQgdG8gbW92ZSB1cGxvYWRlZCBmaWxlLiJ9LCAiaWQiIDogImlkIn0nKTsNCn0gZWxzZSB7DQogICAgLy8gT3BlbiB0ZW1wIGZpbGUNCiAgICAkb3V0ID0gZm9wZW4oInskZmlsZVBhdGh9LnBhcnQiLCAkY2h1bmsgPT0gMCA/ICJ3YiIgOiAiYWIiKTsNCiAgICBpZiAoJG91dCkgew0KICAgICAgICAvLyBSZWFkIGJpbmFyeSBpbnB1dCBzdHJlYW0gYW5kIGFwcGVuZCBpdCB0byB0ZW1wIGZpbGUNCiAgICAgICAgJGluID0gZm9wZW4oInBocDovL2lucHV0IiwgInJiIik7DQoNCiAgICAgICAgaWYgKCRpbikgew0KICAgICAgICAgICAgd2hpbGUgKCRidWZmID0gZnJlYWQoJGluLCA0MDk2KSkNCiAgICAgICAgICAgICAgICBmd3JpdGUoJG91dCwgJGJ1ZmYpOw0KICAgICAgICB9IGVsc2UNCiAgICAgICAgICAgIGRpZSgneyJqc29ucnBjIiA6ICIyLjAiLCAiZXJyb3IiIDogeyJjb2RlIjogMTAxLCAibWVzc2FnZSI6ICJGYWlsZWQgdG8gb3BlbiBpbnB1dCBzdHJlYW0uIn0sICJpZCIgOiAiaWQifScpOw0KDQogICAgICAgIGZjbG9zZSgkaW4pOw0KICAgICAgICBmY2xvc2UoJG91dCk7DQogICAgfSBlbHNlDQogICAgICAgIGRpZSgneyJqc29ucnBjIiA6ICIyLjAiLCAiZXJyb3IiIDogeyJjb2RlIjogMTAyLCAibWVzc2FnZSI6ICJGYWlsZWQgdG8gb3BlbiBvdXRwdXQgc3RyZWFtLiJ9LCAiaWQiIDogImlkIn0nKTsNCn0NCg0KLy8gQ2hlY2sgaWYgZmlsZSBoYXMgYmVlbiB1cGxvYWRlZA0KaWYgKCEkY2h1bmtzIHx8ICRjaHVuayA9PSAkY2h1bmtzIC0gMSkgew0KICAgIC8vIFN0cmlwIHRoZSB0ZW1wIC5wYXJ0IHN1ZmZpeCBvZmYgDQogICAgcmVuYW1lKCJ7JGZpbGVQYXRofS5wYXJ0IiwgJGZpbGVQYXRoKTsNCn0NCg0KDQovLyBSZXR1cm4gSlNPTi1SUEMgcmVzcG9uc2UNCmRpZSgneyJqc29ucnBjIiA6ICIyLjAiLCAicmVzdWx0IiA6IG51bGwsICJpZCIgOiAiaWQifScpOw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ01vZHVsZSBHZW5lcmF0b3InOw0KJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTW9kdWxlIEdlbmVyYXRvciB3YXMgc3VjY2Vzc2Z1bCBpbnN0YWxsZWQnOw0KJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdNb2R1bGUgR2VuZXJhdG9yIHdhcyBzdWNjZXNzZnVsIHVuaW5zdGFsbGVkJzsNCiRsYW5nWydyZWFsbHlfdW5pbnN0YWxsJ10gPSAnUmVhbGx5PyBBcmUgeW91IHN1cmUNCnlvdSB3YW50IHRvIHVuc2luc3RhbGwgdGhpcyBmaW5lIG1vZHVsZT8nOw0KJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIFVuaW5zdGFsbGVkLic7DQokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7DQokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgdXBncmFkZWQgdG8gdmVyc2lvbiAlcy4nOw0KJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnVGhpcyBtb2R1bGUgZ2l2ZSBzb2x1dGlvbiBmb3IgY3JlYXRpbmcgY3VzdG9tIG1vZHVsZXMuJzsNCiRsYW5nWydpbmZvX3N1Y2Nlc3MnXSA9ICdTdWNjZXMnOw0KJGxhbmdbJ2luZm9fZXJyb3InXSA9ICdFcnJvcic7DQokbGFuZ1snb3B0aW9uc3VwZGF0ZWQnXSA9ICdPcHRpb25zIHVwZGF0ZWQnOw0KJGxhbmdbJ21vZHVsZV9taXNzaW5nJ10gPSAnUGxlYXNlLCBpbnN0YWwgbW9kdWxlICVzJzsNCiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnQXJlIHlvdSBzdXJlPyc7DQokbGFuZ1snbW9kdWxlX2Rpcl9wZXJtaXNzaW9uJ10gPSAnTW9kdWxlIGRpcmVjdG9yeSBuZWVkIHdyaXRlYWJsZSBwZXJtaXNzaW9uLiBQbGVhc2UgY2hhbmdlIHBlcm1pc3Npb24gZm9yIG1vZHVsZSBkaXJlY3RvcnkuJzsNCiRsYW5nWydwbGVhc2VfaW5zdGFsbF9pdCddID0gJ05vdGU6IGluc3RhbGwgdGhpcyBtb2R1bGUgdGhyb3VnaCAiRXh0ZW5zaW9ucyDCuyBNb2R1bGVzIic7DQokbGFuZ1snY3JlYXRlX21vZHVsZSddID0gJ0NyZWF0ZSBuZXcgbW9kdWxlJzsNCg0KJGxhbmdbJ2RldGFpbF9wYWdlJ10gPSAnRGV0YWlsIFBhZ2UnOw0KJGxhbmdbJ2RldGFpbF90ZW1wbGF0ZSddID0gJ0RldGFpbCBUZW1wbGF0ZSc7DQokbGFuZ1snd2FybmluZ19wcmV2aWV3J10gPSAnV2FybmluZzogVGhpcyBwcmV2aWV3IHBhbmVsIGJlaGF2ZXMgbXVjaCBsaWtlIGEgYnJvd3NlciB3aW5kb3cgYWxsb3dpbmcgeW91IHRvIG5hdmlnYXRlIGF3YXkgZnJvbSB0aGUgaW5pdGlhbGx5IHByZXZpZXdlZCBwYWdlLiBIb3dldmVyLCBpZiB5b3UgZG8gdGhhdCwgeW91IG1heSBleHBlcmllbmNlIHVuZXhwZWN0ZWQgYmVoYXZpb3VyLiAgTmF2aWdhdGluZyBhd2F5IGZyb20gdGhlIGluaXRpYWwgcGFnZSBhbmQgcmV0dXJuaW5nIHdpbGwgbm90IGdpdmUgdGhlIGV4cGVjdGVkIHJlc3VsdHMuPGJyLz48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoZSBwcmV2aWV3IGRvZXMgbm90IHVwbG9hZCBmaWxlcyB5b3UgbWF5IGhhdmUgc2VsZWN0ZWQgZm9yIHVwbG9hZC4nOw0KJGxhbmdbJ2FydGljbGUnXSA9ICdBcnRpY2xlJzsNCiRsYW5nWydwcmV2aWV3J10gPSAnUHJldmlldyc7DQokbGFuZ1snaW5mb19kZXRhaWxfcmV0dXJuaWQnXSA9ICdUaGlzIHByZWZlcmVuY2UgaXMgdXNlZCB0byBkZXRlcm1pbmUgYSBwYWdlIChhbmQgdGhlcmVmb3JlIGEgdGVtcGxhdGUpIHRvIHVzZSB0byB2aWV3IGRldGFpbCBwYWdlcy4gIEluZGl2aWR1YWxpemVkIE5ld3MgRGV0YWlsIFVSTFMgd2lsbCBub3Qgd29yayBpZiB0aGlzIHBhcmFtZXRlciBpcyBub3Qgc2V0IHRvIGEgdmFsaWQgcGFnZS4gIEFkZGl0aW9uYWxseSwgaWYgdGhpcyBwcmVmZXJlbmNlIGlzIHNldCwgYW5kIG5vIGRldGFpbHBhZ2UgcGFyYW1ldGVyIGlzIHByb3ZpZGVkIG9uIHRoZSBuZXdzIHRhZywgdGhlbiB0aGlzIHZhbHVlIHdpbGwgYmUgdXNlZCBmb3IgZGV0YWlsIGxpbmtzJzsNCiRsYW5nWyd0aXRsZV9kZXRhaWxfcmV0dXJuaWQnXSA9ICdEZWZhdWx0IHBhZ2UgdG8gdXNlIGZvciBkZXRhaWwgdmlld3MnOw0KDQokbGFuZ1snZ2VuZXJhdG9yJ10gPSAnR2VuZXJhdG9yJzsNCiRsYW5nWydyZWdlbmVyYXRlJ10gPSAnUmUtZ2VuZXJhdGUnOw0KJGxhbmdbJ25hbWUnXSA9ICdOYW1lJzsNCiRsYW5nWydhdHRhY2gnXSA9ICdBdHRhY2gnOw0KJGxhbmdbJ2Vycm9yJ10gPSAnRXJyb3IhJzsNCiRsYW5nWydjcmVhdGVkYXRlJ10gPSAnQ3JlYXRlIGRhdGUnOw0KJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ01vZGlmaWVkIGRhdGUnOw0KJGxhbmRbJ2FkbWluX3RpdGxlJ10gPSAnQWRtaW4gUGFuZWwnOw0KJGxhbmdbJ2FkbWluZGVzY3JpcHRpb24nXSA9ICcnOw0KJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ0FjY2VzcyBEZW5pZWQuIFBsZWFzZSBjaGVjayB5b3VyIHBlcm1pc3Npb25zLic7DQokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdNb2R1bGUgaW5zdGFsbGVkJzsNCiRsYW5nWydlcnJvcl9yZW5hbWVfZGlyJ10gPSAnUmVuYW1lIGRpciB3aXRob3V0IHN1Y2Nlc3MgKHBlcm1pc3Npb24/KSc7DQokbGFuZ1snZXJyb3JfcmVwbGFjZV9maWxlcyddID0gJ01vZHVsZSBjYW5ub3QgYnkgZWRpdGVkLiBQbGVhc2UgZWRpdCBpdCBtYW51YWxseS4nOw0KJGxhbmdbJ2Vycm9yX21vZHVsZV9leGlzdHMnXSA9ICdUaGlzIG1vZHVsZSBleGlzdHMuIERlbGV0ZSBkaXIgb3IgcmUtZ2VuZXJhdGUuJzsNCiRsYW5nWydlcnJvcl91bmlpbnN0YWxfbW9kdWxlJ10gPSAnVGhpcyBtb2R1bGUgZXhpc3RzLiBVbmlpbnN0YWwgaXQuJzsNCg0KLy8gdGFicw0KJGxhbmdbJ2l0ZW0nXSA9ICdJdGVtJzsNCiRsYW5nWydpdGVtcyddID0gJ0l0ZW1zJzsNCiRsYW5nWydmaWVsZGRlZiddID0gJ0ZpZWxkIERlZmluaXRpb24nOw0KJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ0ZpZWxkIERlZmluaXRpb25zJzsNCiRsYW5nWyd0ZW1wbGF0ZSddID0gJ1RlbXBsYXRlJzsNCiRsYW5nWyd0ZW1wbGF0ZXMnXSA9ICdUZW1wbGF0ZXMnOw0KJGxhbmdbJ2NhdGVnb3J5J10gPSAnQ2F0ZWdvcnknOw0KJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdDYXRlZ29yaWVzJzsNCiRsYW5nWydvcHRpb24nXSA9ICdPcHRpb24nOw0KJGxhbmdbJ29wdGlvbnMnXSA9ICdPcHRpb25zJzsNCiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOw0KJGxhbmdbJ3ByZXZwYWdlJ10gPSAnJmx0Oyc7DQoNCi8vIGl0ZW1zDQokbGFuZ1snaXRlbV90aXRsZSddID0gJ1RpdGxlJzsNCiRsYW5nWydwcm9tcHRfaXRlbV90aXRsZSddID0gJ0l0ZW0gdGl0bGUnOw0KJGxhbmdbJ2FsaWFzJ10gPSAnQWxpYXMnOw0KJGxhbmdbJ3VybCddID0gJ1VybCc7DQokbGFuZ1snYWN0aXZlJ10gPSAnQWN0aXZlJzsNCiRsYW5nWydpdGVtX3RpdGxlX2VtcHR5J10gPSAnSXRlbSB0aXRsZSBpcyBlbXB0eSc7DQokbGFuZ1sncmVxdWlyZWRfZmllbGRfZW1wdHknXSA9ICdSZXF1aXJlZCBmaWVsZCBpcyBlbXB0eSc7DQokbGFuZ1sndG9vX2xvbmcnXSA9ICdGaWVsZCB2YWx1ZSBleGNlZWRzIG1heCBsZW5ndGgnOw0KJGxhbmdbJ2FwcHJvdmUnXSA9ICdTZXQgU3RhdHVzIHRvIFwnQWN0aXZlXCcnOw0KJGxhbmdbJ3JldmVydCddID0gJ1NldCBTdGF0dXMgdG8gXCdJbmFjdGl2ZVwnJzsNCiRsYW5nWydsYXN0cGFnZSddID0gJyZndDsmZ3Q7JzsNCiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAnTGFzdCBNb2RpZmllZCc7DQokbGFuZ1sncGFnZSddID0gJ1BhZ2UnOw0KJGxhbmdbJ3BhZ2Vfb2YnXSA9ICdQYWdlICVzIG9mICVzJzsNCiRsYW5nWydwYWdlX2xpbWl0J10gPSAnUGFnZSBMaW1pdCc7DQokbGFuZ1snZmlyc3RwYWdlJ10gPSAnJmx0OyZsdDsnOw0KJGxhbmdbJ25leHRwYWdlJ10gPSAnJmd0Oyc7DQokbGFuZ1snaWQnXSA9ICdJZCc7DQokbGFuZ1sndGl0bGUnXSA9ICdUaXRsZSc7DQokbGFuZ1snaW5jbHVkZV9jaGlsZHJlbiddID0gJ0luY2x1ZGUgQ2hpbGRyZW4/JzsNCiRsYW5nWydoaWVyYXJjaHknXSAgPSAnSGllcmFyY2h5JzsNCiRsYW5nWydzb3J0X2J5J10gPSAnU29ydCBCeSc7DQokbGFuZ1snc29ydF9vcmRlciddID0gJ1NvcnQgT3JkZXInOw0KJGxhbmdbJ2RhdGUnXSA9ICdEYXRlJzsNCiRsYW5nWydkYXRlX2VuZCddID0gJ0VuZCBkYXRlJzsNCiRsYW5nWydmaWx0ZXJzJ10gPSAnRmlsdGVycyc7DQokbGFuZ1snYXNjZW5kaW5nJ10gPSAnQXNjZW5kaW5nJzsNCiRsYW5nWydkZXNjZW5kaW5nJ10gPSAnRGVzY2VuZGluZyc7DQokbGFuZ1snYWxsY2F0ZWdvcmllcyddID0gJ0FsbCBjYXRlZ29yaWVzJzsNCiRsYW5nWydmcm9tJ10gPSAnRnJvbSc7DQokbGFuZ1sndG8nXSA9ICdUbyc7DQokbGFuZ1sncG9zaXRpb24nXSA9ICdQb3NpdGlvbic7DQokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdDcmVhdGVkIGRhdGUnOw0KJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ01vZGlmaWVkIGRhdGUnOw0KJGxhbmdbJ3NhdmVfb3JkZXInXSA9ICdTYXZlIG9yZGVyJzsNCg0KLy8gZmllbGQgZGVmaW5pdGlvbnMNCiRsYW5nWydlZGl0ZmllbGRkZWYnXSA9ICdFZGl0IEZpZWxkIERlZmluaXRpb24nOw0KJGxhbmdbJ2FkZGZpZWxkZGVmJ10gPSAnQWRkIEZpZWxkIERlZmluaXRpb24nOw0KJGxhbmdbJ2ZpZWxkZGVmX25hbWUnXSA9ICdOYW1lJzsNCiRsYW5nWydmaWVsZGRlZl9oZWxwJ10gPSAnSGVscGZ1bCB0aXAnOw0KJGxhbmdbJ2ZpZWxkZGVmX3R5cGUnXSA9ICdUeXBlJzsNCiRsYW5nWydmaWVsZGRlZl9tYXhfbGVuZ3RoJ10gPSAnTWF4aW11bSBsZW5ndGgnOw0KJGxhbmdbJ2ZpZWxkZGVmX3JlcXVpcmVkJ10gPSAnUmVxdWlyZWQnOw0KJGxhbmdbJ2ZpZWxkZGVmX2Zyb250ZW5kJ10gPSAnRnJvbnQgRW5kJzsNCiRsYW5nWydmaWVsZGRlZl9lZGl0dmlldyddID0gJ1ZpZXcgb25seSBpbiBlZGl0JzsNCiRsYW5nWydmaWVsZGRlZl9maWx0ZXJfZnJvbnRlbmQnXSA9ICdBZGQgdG8gZmlsdGVyIGluIGZyb250ZW5kJzsNCiRsYW5nWydmaWVsZGRlZl9maWx0ZXJfYWRtaW4nXSA9ICdBZGQgdG8gZmlsdGVyIGluIGFkbWluJzsNCiRsYW5nWydmaWVsZGRlZl9zZWFyY2hhYmxlJ10gPSAnU2VhcmNoYWJsZSc7DQokbGFuZ1snZXh0cmEnXSA9ICdFeHRyYSc7DQokbGFuZ1snc2VjdGlvbiddID0gJ1NlY3Rpb24nOw0KJGxhbmdbJ3RleHRib3gnXSA9ICdUZXh0IElucHV0JzsNCiRsYW5nWydjaGVja2JveCddID0gJ0NoZWNrYm94JzsNCiRsYW5nWyd0ZXh0YXJlYSddID0gJ1RleHQgQXJlYSc7DQokbGFuZ1snc2VsZWN0X2RhdGUnXSA9ICdTZWxlY3QgRGF0ZSc7DQokbGFuZ1sndXBsb2FkX2ZpbGUnXSA9ICdVcGxvYWQgRmlsZSc7DQokbGFuZ1snZHJvcGRvd24nXSA9ICdEcm9wZG93bic7DQokbGFuZ1snbW9kdWxlJ10gPSAnTW9kdWxlJzsNCiRsYW5nWydzZWxlY3RfZGVmYXVsdCddID0gJy0tIFNlbGVjdCAtLSc7DQokbGFuZ1snc2VsZWN0X2ZpbGUnXSA9ICdTZWxlY3QgRmlsZSc7DQokbGFuZ1snY29sb3JfcGlja2VyJ10gPSAnQ29sb3IgcGlja2VyJzsNCiRsYW5nWydtb2R1bGVfbGluayddID0gJ0xpbmsgdG8gbW9kdWxlJzsNCiRsYW5nWydmaWVsZGRlZl9uYW1lX2VtcHR5J10gPSAnRmllbGQgZGVmaW5pdGlvbiBuYW1lIGlzIGVtcHR5JzsNCiRsYW5nWydmaWVsZGRlZl9uYW1lX2V4aXN0cyddID0gJ0ZpZWxkIGRlZmluaXRpb24gbmFtZSBhbHJlYWR5IGV4aXN0cyc7DQokbGFuZ1snaW52YWxpZCddID0gJ0ZpZWxkIHZhbHVlIGlzIGludmFsaWQnOw0KJGxhbmdbJ3RhYiddID0gJ1RhYic7DQoNCg0KLy8gZmllbGQgZGVmaW5pdGlvbnMNCiRsYW5nWydlZGl0ZmllbGRkZWYnXSA9ICdFZGl0IEZpZWxkIERlZmluaXRpb24nOw0KJGxhbmdbJ2FkZGZpZWxkZGVmJ10gPSAnQWRkIEZpZWxkIERlZmluaXRpb24nOw0KJGxhbmdbJ2ZpZWxkZGVmX25hbWUnXSA9ICdOYW1lJzsNCiRsYW5nWydmaWVsZGRlZl9oZWxwJ10gPSAnSGVscGZ1bCB0aXAnOw0KJGxhbmdbJ2ZpZWxkZGVmX3R5cGUnXSA9ICdUeXBlJzsNCiRsYW5nWydmaWVsZGRlZl9tYXhfbGVuZ3RoJ10gPSAnTWF4aW11bSBsZW5ndGgnOw0KJGxhbmdbJ2ZpZWxkZGVmX3JlcXVpcmVkJ10gPSAnUmVxdWlyZWQnOw0KJGxhbmdbJ2ZpZWxkZGVmX2Zyb250ZW5kJ10gPSAnRnJvbnQgRW5kJzsNCiRsYW5nWydmaWVsZGRlZl9lZGl0dmlldyddID0gJ1ZpZXcgb25seSBpbiBlZGl0JzsNCiRsYW5nWydmaWVsZGRlZl9maWx0ZXJfZnJvbnRlbmQnXSA9ICdBZGQgdG8gZmlsdGVyIGluIGZyb250ZW5kJzsNCiRsYW5nWydmaWVsZGRlZl9maWx0ZXJfYWRtaW4nXSA9ICdBZGQgdG8gZmlsdGVyIGluIGFkbWluIGFyZWEnOw0KJGxhbmdbJ2ZpZWxkZGVmX3NlYXJjaGFibGUnXSA9ICdTZWFyY2hhYmxlJzsNCiRsYW5nWydleHRyYSddID0gJ0V4dHJhJzsNCiRsYW5nWyd0ZXh0Ym94J10gPSAnVGV4dCBJbnB1dCc7DQokbGFuZ1snY2hlY2tib3gnXSA9ICdDaGVja2JveCc7DQokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZXh0IEFyZWEnOw0KJGxhbmdbJ3NlbGVjdF9kYXRlJ10gPSAnU2VsZWN0IERhdGUnOw0KJGxhbmdbJ3VwbG9hZF9maWxlJ10gPSAnVXBsb2FkIEZpbGUnOw0KJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnRHJvcGRvd24nOw0KJGxhbmdbJ2Ryb3Bkb3duZnJvbW1vZHVsZSddID0gJ0Ryb3Bkb3duIGZyb20gbW9kdWxlJzsNCiRsYW5nWydzdGF0aWMnXSA9ICdTdGF0aWMnOw0KJGxhbmdbJ21vZHVsZSddID0gJ01vZHVsZSc7DQokbGFuZ1snc2VsZWN0X2RlZmF1bHQnXSA9ICctLSBTZWxlY3QgLS0nOw0KJGxhbmdbJ3NlbGVjdF9maWxlJ10gPSAnU2VsZWN0IEZpbGUnOw0KJGxhbmdbJ2ZpZWxkZGVmX25hbWVfZW1wdHknXSA9ICdGaWVsZCBkZWZpbml0aW9uIG5hbWUgaXMgZW1wdHknOw0KJGxhbmdbJ2ZpZWxkZGVmX25hbWVfZXhpc3RzJ10gPSAnRmllbGQgZGVmaW5pdGlvbiBuYW1lIGFscmVhZHkgZXhpc3RzJzsNCiRsYW5nWydpbnZhbGlkJ10gPSAnRmllbGQgdmFsdWUgaXMgaW52YWxpZCc7DQoNCi8vIGZpbGUgaGFuZGxpbmcNCiRsYW5nWydlcnJvcl91cGxvYWQnXSA9ICdQcm9ibGVtIG9jY3VycmVkIHVwbG9hZGluZyBhIGZpbGUnOw0KJGxhbmdbJ2Vycm9yX21rZGlyJ10gPSAnQ291bGQgbm90IGNyZWF0ZSBkaXJlY3Rvcnk6ICVzJzsNCiRsYW5nWydlcnJvcl9maWxlc2l6ZSddID0gJ0FuIHVwbG9hZGVkIGZpbGUgZXhjZWVkZWQgdGhlIG1heGltdW0gYWxsb3dlZCBzaXplJzsNCiRsYW5nWydlcnJvcl9pbnZhbGlkZmlsZXR5cGUnXSA9ICdDYW5ub3QgdXBsb2FkIHRoaXMgdHlwZSBvZiBmaWxlJzsNCiRsYW5nWydlcnJvcl9tb3ZlZmlsZSddID0gJ0NvdWxkIG5vdCBjcmVhdGUgZmlsZTogJXMnOw0KJGxhbmdbJ2ludmFsaWR1cmwnXSA9ICdVcmwgaXMgaW52YWxpZC4nOw0KDQovLyBjYXRlZ29yeQ0KJGxhbmdbJ25vbmUnXSA9ICdOb25lJzsNCiRsYW5nWyduYW1lJ10gPSAnTmFtZSc7DQokbGFuZ1snZWRpdF9jYXRlZ29yeSddID0gJ0VkaXQgQ2F0ZWdvcnknOw0KJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnQWRkIENhdGVnb3J5JzsNCiRsYW5nWydjYXRlZ29yeV9uYW1lJ10gPSAnQ2F0ZWdvcnkgbmFtZSc7DQokbGFuZ1snY2F0ZWdvcnlfbmFtZV9lbXB0eSddID0gJ0NhdGVnb3J5IG5hbWUgaXMgZW1wdHknOw0KJGxhbmdbJ2NhdGVnb3J5dXBkYXRlZCddID0gJ0NhdGVnb3J5IHVwZGF0ZWQuJzsNCiRsYW5nWydjYXRlZ29yeWFkZGVkJ10gPSAnQ2F0ZWdvcnkgYWRkZWQuJzsNCg0KLy8gdGVtcGxhdGVzDQokbGFuZ1snY2F0ZWdvcnlfdGVtcGxhdGUnXSA9ICdDYXRlZ29yeSBUZW1wbGF0ZXMnOw0KJGxhbmdbJ3N1bW1hcnlfdGVtcGxhdGUnXSA9ICdTdW1tYXJ5IFRlbXBsYXRlcyc7DQokbGFuZ1snZGV0YWlsX3RlbXBsYXRlJ10gPSAnRGV0YWlsIFRlbXBsYXRlcyc7DQokbGFuZ1snZmlsdGVyX3RlbXBsYXRlJ10gPSAnRmlsdGVyIFRlbXBsYXRlcyc7DQokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZXMnXSA9ICdEZWZhdWx0IFRlbXBsYXRlcyc7DQokbGFuZ1snZWRpdHRlbXBsYXRlJ10gPSAnRWRpdCBUZW1wbGF0ZSc7DQokbGFuZ1snYWRkdGVtcGxhdGUnXSA9ICdBZGQgJXMgVGVtcGxhdGUnOw0KJGxhbmdbJ3RlbXBsYXRlX25hbWUnXSA9ICdUZW1wbGF0ZSBuYW1lJzsNCiRsYW5nWyd0ZW1wbGF0ZV9uYW1lX2VtcHR5J10gPSAnVGVtcGxhdGUgbmFtZSBpcyBlbXB0eSc7DQokbGFuZ1snYWRkZWRpdF9zdW1tYXJ5X3RlbXBsYXRlJ10gPSAnQWRkL2VkaXQgc3VtbWFyeSB0ZW1wbGF0ZSc7DQokbGFuZ1snYWRkZWRpdF9maWx0ZXJfdGVtcGxhdGUnXSA9ICdBZGQvZWRpdCBmaWx0ZXIgdGVtcGxhdGUnOw0KJGxhbmdbJ2FkZGVkaXRfZGV0YWlsX3RlbXBsYXRlJ10gPSAnQWRkL2VkaXQgZGV0YWlsIHRlbXBsYXRlJzsNCiRsYW5nWydhZGRlZGl0X2NhdGVnb3J5X3RlbXBsYXRlJ10gPSAnQWRkL2VkaXQgY2F0ZWdvcnkgdGVtcGxhdGUnOw0KDQovLyBnbG9iYWwNCiRsYW5nWydnbG9iYWwnXSA9ICdHbG9iYWwnOw0KJGxhbmdbJ2NoYW5nZXNzYXZlZCddID0gJ1lvdXIgY2hhbmdlcyBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IHNhdmVkJzsNCiRsYW5nWydiYWNrJ10gPSAnQmFjayc7DQokbGFuZ1sndXAnXSA9ICdVcCc7DQokbGFuZ1snZG93biddID0gJ0Rvd24nOw0KJGxhbmdbJ2VkaXQnXSA9ICdFZGl0JzsNCiRsYW5nWydkZWxldGUnXSA9ICdEZWxldGUnOw0KJGxhbmdbJ25vc3VjaGlkJ10gPSAnTm8gc3VjaCBJRCc7DQokbGFuZ1snZGVsZXRlZCddID0gJ1RoZSBlbnRyeSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgZGVsZXRlZCc7DQokbGFuZ1snYWRkJ10gPSAnQWRkJzsNCiRsYW5nWydhbGlhcyddID0gJ0FsaWFzJzsNCiRsYW5nWydhbGlhc19pbnZhbGlkJ10gPSAnQWxpYXMgaXMgaW52YWxpZC4gSXQgbXVzdCBiZSBhIHZhbGlkIFBIUCB2YXJpYWJsZSBuYW1lJzsNCiRsYW5nWydlbXB0eV9wYXJhbSddID0gJ1RoZSBwYXJhbWV0ZXIgd2FzIGVtcHR5LiBUcnkgYWdhaW4uJzsNCiRsYW5nWydvcGVyYXRpb25fY2FuY2VsbGVkJ10gPSAnT3BlcmF0aW9uIENhbmNlbGxlZCc7DQokbGFuZ1snb3BlcmF0aW9uX2NvbXBsZXRlJ10gPSAnT3BlcmF0aW9uIENvbXBsZXRlJzsNCg0KIyMgZ2VuZXJhdG9yDQokbGFuZ1sndGV4dGJveCddID0gJ1RleHQgSW5wdXQnOw0KJGxhbmdbJ2NoZWNrYm94J10gPSAnQ2hlY2tib3gnOw0KJGxhbmdbJ3RleHRhcmVhJ10gPSAnVGV4dCBBcmVhJzsNCiRsYW5nWydzZWxlY3RfZGF0ZSddID0gJ1NlbGVjdCBEYXRlJzsNCiRsYW5nWyd1cGxvYWRfZmlsZSddID0gJ1VwbG9hZCBGaWxlJzsNCiRsYW5nWydkcm9wZG93biddID0gJ0Ryb3Bkb3duJzsNCiRsYW5nWydtb2R1bGUnXSA9ICdNb2R1bGUnOw0KJGxhbmdbJ3NlbGVjdF9kZWZhdWx0J10gPSAnLS0gU2VsZWN0IC0tJzsNCiRsYW5nWydzZWxlY3RfZmlsZSddID0gJ1NlbGVjdCBGaWxlJzsNCg0KI2l0ZW1zDQokbGFuZ1snaXRlbV90aXRsZSddID0gJ1RpdGxlJzsNCiRsYW5nWydwcm9tcHRfaXRlbV90aXRsZSddID0gJ0l0ZW0gdGl0bGUnOw0KJGxhbmdbJ2FsaWFzJ10gPSAnQWxpYXMnOw0KJGxhbmdbJ3VybCddID0gJ1VybCc7DQokbGFuZ1snYWN0aXZlJ10gPSAnQWN0aXZlJzsNCiRsYW5nWydpdGVtX3RpdGxlX2VtcHR5J10gPSAnSXRlbSB0aXRsZSBpcyBlbXB0eSc7DQokbGFuZ1sncmVxdWlyZWRfZmllbGRfZW1wdHknXSA9ICdSZXF1aXJlZCBmaWVsZCBpcyBlbXB0eSc7DQokbGFuZ1sndG9vX2xvbmcnXSA9ICdGaWVsZCB2YWx1ZSBleGNlZWRzIG1heCBsZW5ndGgnOw0KJGxhbmdbJ2FwcHJvdmUnXSA9ICdTZXQgU3RhdHVzIHRvIFwnQWN0aXZlXCcnOw0KJGxhbmdbJ3JldmVydCddID0gJ1NldCBTdGF0dXMgdG8gXCdJbmFjdGl2ZVwnJzsNCiRsYW5nWydsYXN0cGFnZSddID0gJyZndDsmZ3Q7JzsNCiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAnTGFzdCBNb2RpZmllZCc7DQokbGFuZ1sncGFnZSddID0gJ1BhZ2UnOw0KJGxhbmdbJ3BhZ2Vfb2YnXSA9ICdQYWdlICVzIG9mICVzJzsNCiRsYW5nWydwYWdlX2xpbWl0J10gPSAnUGFnZSBMaW1pdCc7DQokbGFuZ1snZmlyc3RwYWdlJ10gPSAnJmx0OyZsdDsnOw0KJGxhbmdbJ25leHRwYWdlJ10gPSAnJmd0Oyc7DQokbGFuZ1snb2YnXSA9ICdvZic7DQokbGFuZ1snaWQnXSA9ICdJZCc7DQokbGFuZ1sndGl0bGUnXSA9ICdUaXRsZSc7DQokbGFuZ1snaW5jbHVkZV9jaGlsZHJlbiddID0gJ0luY2x1ZGUgQ2hpbGRyZW4/JzsNCiRsYW5nWydoaWVyYXJjaHknXSAgPSAnSGllcmFyY2h5JzsNCiRsYW5nWydkYXRlJ10gPSAnRGF0ZSc7DQokbGFuZ1snZmlsdGVycyddID0gJ0ZpbHRlcnMnOw0KJGxhbmdbJ2FzY2VuZGluZyddID0gJ0FzY2VuZGluZyc7DQokbGFuZ1snZGVzY2VuZGluZyddID0gJ0Rlc2NlbmRpbmcnOw0KJGxhbmdbJ2FsbGNhdGVnb3JpZXMnXSA9ICdBbGwgY2F0ZWdvcmllcyc7DQokbGFuZ1snZnJvbSddID0gJ0Zyb20nOw0KJGxhbmdbJ3NlbGVjdF9hbGwnXSA9ICdTZWxlY3QgQWxsJzsNCiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnU2VsZWN0IE9uZSc7DQokbGFuZ1snc2V0ZHJhZnQnXSA9ICdTZXQgQXMgSW5hY3RpdmUnOw0KJGxhbmdbJ3NldHB1Ymxpc2hlZCddID0gJ1NldCBBcyBBY3RpdmUnOw0KJGxhbmdbJ3dpdGhfc2VsZWN0ZWQnXSA9ICdXaXRoIFNlbGVjdGVkJzsNCiRsYW5nWydnbyddID0gJ0dvJzsNCiRsYW5nWydub3RoaW5nX3NlbGVjdGQnXSA9ICdOb3RoaW5nIHNlbGVjdGVkJzsNCg0KDQojb3B0aW9ucw0KJGxhbmdbJ2ltYWdlc19zaXplX2FkbWluJ10gPSAnSW1hZ2Ugc2l6ZSc7DQokbGFuZ1snaW1hZ2Vfc2l6ZV9hZG1pbl9pbmZvJ10gPSAnRXhhbXBsZXM6IDIwMHggLSB3aWR0aCwgeDIwMCAtIGhlaWdodCwgMjAweDIwMCAtIHdpZHRoL2hlaWdodCc7DQokbGFuZ1snYWRtaW5fYXJlYSddID0gJ0FkbWluIGFyZWEnOw0KJGxhbmdbJ2ZpbHRlciddID0gJ0ZpbHRlcic7DQokbGFuZ1snbW9kZSddID0gJ01vZGUnOw0KJGxhbmdbJ3NpbXBsZSddID0gJ1NpbXBsZSc7DQokbGFuZ1snYWR2YW5jZWQnXSA9ICdBZHZhbmNlZCc7DQokbGFuZ1sncHJvbXB0X2ZyaWVuZGx5bmFtZSddID0gJ01vZHVsZSBmcmllbmRseSBuYW1lJzsNCiRsYW5nWydwcm9tcHRfaXRlbV9zaW5ndWxhciddID0gJ0l0ZW0gc2luZ3VsYXInOw0KJGxhbmdbJ3Byb21wdF9pdGVtX3BsdXJhbCddID0gJ0l0ZW0gcGx1cmFsJzsNCiRsYW5nWydwcm9tcHRfdXJsX3ByZWZpeCddID0gJ1VSTCBQcmVmaXgnOw0KJGxhbmdbJ3Byb21wdF9kZWZhdWx0X2FjdGlvbl9wYXJhbXMnXSA9ICdEZWZhdWx0IHBhcmFtcyBmb3IgZGVmYXVsdCBhY3Rpb24nOw0KJGxhbmdbJ3Byb21wdF9kZXRhaWxfYWN0aW9uX3BhcmFtcyddID0gJ0RlZmF1bHQgcGFyYW1zIGZvciBkZXRhaWwgYWN0aW9uJzsNCiRsYW5nWydwcm9tcHRfdGl0bGVfcGFyYW1fZm9yX2NhY2hlJ10gPSAnVGl0bGUgcGFyYW0gZm9yIGNhY2hlIHJlc3VsdHMnOw0KJGxhbmdbJ3Byb21wdF9kaXNwbGF5X2lubGluZSddID0gJ0Rpc3BsYXkgZGV0YWlscyBpbmxpbmUnOw0KJGxhbmdbJ3Byb21wdF9sYXp5bG9hZGluZyddID0gJ0xhenkgbG9hZGluZyAoSWYgd2UgZG9uXCd0IG5lZWQgdXNlIG1vZHVsZSB3aXRoIGRldGFpbCBsaW5rIG9uIGZyb250ZW5kLiknOw0KJGxhbmdbJ3Byb21wdF9oYXNfYWRtaW4nXSA9ICdIYXMgYWRtaW4/JzsNCiRsYW5nWydoYXNfZ2FsbGVyeSddID0gJ0hhcyBnYWxsZXJ5Pyc7DQokbGFuZ1snZ2FsbGVyeSddID0gJ0dhbGxlcnknOw0KJGxhbmdbJ2dhbGxlcnlfc29ydG9yZGVyJ10gPSAnU29ydCBvcmRlciBmb3IgZ2FsbGVyeSc7DQokbGFuZ1snZmlsZW5hbWUnXSA9ICdGaWxlbmFtZSc7DQokbGFuZ1snYWRkX2ZpbGVzJ10gPSAnQWRkICBmaWxlcyc7DQokbGFuZ1sncHJldmlld19hZG1pbiddID0gJ1ByZXZpZXcgaW4gYWRtaW4gYXJlYT8nOw0KJGxhbmdbJ2NvcHlfYWRtaW4nXSA9ICdBbGxvdyBjb3B5IGl0ZW0/JzsNCiRsYW5nWydwcm9tcHRfdXNlcmdyb3VwX2RlcGVuZGVuY2UnXSA9ICdVc2VyIGdyb3VwIGRlcGVuZGVuY2UnOw0KJGxhbmdbJ3Byb21wdF9pdGVtX2RldGFpbF9yZXR1cm5pZCddID0gJ0RldGFpbCByZXR1cm4gSUQnOw0KJGxhbmdbJ3Byb21wdF9pdGVtX2NhdGVnb3J5X3JldHVybmlkJ10gPSAnQ2F0ZWdvcnkgcmV0dXJuIElEJzsNCiRsYW5nWydwcm9tcHRfY3VzdG9tX2ZpZWxkc19kZWZhdWx0X2FkbWluJ10gPSAnRGVmYXVsdCBjdXN0b20gZmllbGRzIGZvciBhZG1pbiBpdGVtcyc7DQokbGFuZ1sncHJvbXB0X2l0ZW1fY2F0ZWdvcnlfZWRpdCddID0gJ0VkaXQgY2F0ZWdvcnknOw0KJGxhbmdbJ3Byb21wdF9yZWN1cnNpdmUnXSA9ICdFZGl0IHJlY3Vyc2l2ZSc7DQokbGFuZ1sncHJvbXB0X2l0ZW1fZGF0ZV9lZGl0J10gPSAnRWRpdCBkYXRlJzsNCiRsYW5nWydwcm9tcHRfaXRlbV9kYXRlX2VuZF9lZGl0J10gPSAnRWRpdCBkYXRlIGVuZCc7DQokbGFuZ1sncHJvbXB0X2l0ZW1fYWxpYXNfZWRpdCddID0gJ0VkaXQgYWxpYXMnOw0KJGxhbmdbJ3Byb21wdF9pdGVtX3RpdGxlX2VkaXQnXSA9ICdFZGl0IHRpdGxlJzsNCiRsYW5nWydwcm9tcHRfaXRlbV91cmxfZWRpdCddID0gJ0VkaXQgdXJsJzsNCiRsYW5nWydwcm9tcHRfZmlsdGVyX2RhdGUnXSA9ICdGaWx0ZXIgZGF0ZSc7DQokbGFuZ1sncHJvbXB0X3N1bW1hcnlfc29ydG9yZGVyJ10gPSAnU29ydCBvcmRlcic7DQokbGFuZ1sncHJvbXB0X3N1bW1hcnlfc29ydGluZyddID0gJ1NvcnRpbmcnOw0KJGxhbmdbJ3Byb21wdF9zdW1tYXJ5X3BhZ2VsaW1pdCddID0gJ1BhZ2VsaW1pdCc7DQokbGFuZ1sncHJvbXB0X2NhdGVnb3J5X2V4dHJhX2xhYmVsJ10gPSAnQ2F0ZWdvcnkgZXh0cmEgbGFiZWwnOw0KJGxhbmdbJ3Byb21wdF9pdGVtX3RpdGxlX2VkaXQnXSA9ICdFZGl0IHRpdGxlJzsNCiRsYW5nWyd2aWV3YWJsZV9maWVsZHMnXSA9ICdWaWV3YWJsZSBmaWVsZHMnOw0KJGxhbmdbJ3ZpZXcnXSA9ICdWaWV3JzsNCiRsYW5nWydyZW9yZGVyJ10gPSAnUmVvcmRlcic7DQokbGFuZ1sndG8nXSA9ICdUbyc7DQokbGFuZ1sncG9zaXRpb24nXSA9ICdQb3NpdGlvbic7DQokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdDcmVhdGVkIGRhdGUnOw0KJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ01vZGlmaWVkIGRhdGUnOw0KDQojI3NlYXJjaA0KJGxhbmdbJ3NlYXJjaCddID0gJ1NlYXJjaCc7DQokbGFuZ1sncmVpbmRleCddID0gJ1JlaW5kZXgnOw0KJGxhbmdbJ3Byb21wdF9zZWFyY2hhYmxlJ10gPSAnU2VhcmNoYWJsZSc7DQokbGFuZ1sncHJvbXB0X3NlYXJjaF9kYXRlX2VuZCddID0gJ0RhdGUgZW5kIGZvciBzZWFyY2gnOw0KDQokbGFuZ1snZXh0cmEnXSA9ICdFeHRyYSc7DQoNCiRsYW5nWydzdW5kYXknXSA9ICdTdW5kYXknOw0KJGxhbmdbJ21vbmRheSddID0gJ01vbmRheSc7DQokbGFuZ1sndHVlc2RheSddID0gJ1R1ZXNkYXknOw0KJGxhbmdbJ3dlZG5lc2RheSddID0gJ1dlZG5lc2RheSc7DQokbGFuZ1sndGh1cnNkYXknXSA9ICdUaHVyc2RheSc7DQokbGFuZ1snZnJpZGF5J10gPSAnRnJpZGF5JzsNCiRsYW5nWydzYXR1cmRheSddID0gJ1NhdHVyZGF5JzsNCg0KJGxhbmdbJ3JlY3VyX3BlcmlvZCddID0gJ1JlY3VyIHBlcmlvZCc7DQokbGFuZ1snd2Vla2RheXMnXSA9ICdXZWVrZGF5cyc7DQokbGFuZ1snbm8nXSA9ICdOb25lJzsNCiRsYW5nWydkYWlseSddID0gJ0RhaWx5JzsNCiRsYW5nWydwbHVyYWxfZGFpbHknXSA9ICdEYXlzJzsNCg0KDQovLyBnbG9iYWwNCiRsYW5nWydjaGFuZ2Vzc2F2ZWQnXSA9ICdZb3VyIGNoYW5nZXMgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseSBzYXZlZCc7DQokbGFuZ1snYmFjayddID0gJ0JhY2snOw0KJGxhbmdbJ3VwJ10gPSAnVXAnOw0KJGxhbmdbJ2Rvd24nXSA9ICdEb3duJzsNCiRsYW5nWydlZGl0J10gPSAnRWRpdCc7DQokbGFuZ1snZGVsZXRlJ10gPSAnRGVsZXRlJzsNCiRsYW5nWydkZWxldGVfc2VsZWN0ZWQnXSA9ICdEZWxldGUgc2VsZWN0ZWQnOw0KJGxhbmdbJ25vc3VjaGlkJ10gPSAnTm8gc3VjaCBJRCc7DQokbGFuZ1snZGVsZXRlZCddID0gJ1RoZSBlbnRyeSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgZGVsZXRlZCc7DQokbGFuZ1snYWRkJ10gPSAnQWRkJzsNCiRsYW5nWydhbGlhcyddID0gJ0FsaWFzJzsNCiRsYW5nWydhbGlhc19pbnZhbGlkJ10gPSAnQWxpYXMgaXMgaW52YWxpZC4gSXQgbXVzdCBiZSBhIHZhbGlkIFBIUCB2YXJpYWJsZSBuYW1lJzsNCg0KDQokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPg0KPGxpPlZlcnNpb24gMi4wIDI3LiBmZWJydWFyLCAyMDEyIA0KPGJyIC8+YWRkIGdhbGxlcnkgLSBtdXRsaXVwbG9hZCwgc29ydGluZywgcmVzaXplDQo8L2xpPg0KPGxpPlZlcnNpb24gMS45IEphbnVhciwgMjAxMiANCjxiciAvPmFkZCBjYXRlZ29yeSBjdXN0b20gZmllbGRzLCBtb3ZlZCB0byB0aGVpciBvd24gc2VjdGlvbi4NCjxiciAvPiB1cGdyYWRlIHNjcmlwdCBjb21wYXRpYmxlIHdpdGggMS44LjEgdmVyc2lvbg0KPGJyIC8+IGZpeCBzb21lIGlzc3Vlcw0KPC9saT4NCjxsaT5WZXJzaW9uIDEuOC4xIEphbnVhciwgMjAxMiANCjxiciAvPmFkZCBvcHRpb24gZm9yIHByZXZpZXcgaW4gYWRtaW4NCjxiciAvPmFkZCBwcmV2aWV3IGljb24gaW4gYWRtaW4NCjxiciAvPmFkZCBvcHRpb24gZm9yIGNvcHkgaXRlbQ0KPGJyIC8+Zml4IGF1dGxvYWQgY2xhc3MgZ2VuZXJhdG9yX29wdHMgaW4gYWRtaW4NCjwvbGk+DQo8bGk+VmVyc2lvbiAxLjggSmFudWFyLCAyMDExIC0gIGl0ZW0gcHJldmlldywgYnVnIGZpeGVzPC9saT4NCjxsaT5WZXJzaW9uIDEuNyBOb3ZlbWJlciwgMjAxMSAtICBpbml0IHJlbGVhc2U8L2xpPg0KPC91bD4nOw0KDQovLyBtb2R1bGUgaGVscA0KJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPk1vZHVsZSBnZW5lcmF0b3IgbGV0cyB5b3UgY3JlYXRlIGEgbGlzdCB0aGUgbW9kdWxlcyBhcyBOZXdzLCBQcm9kdWN0cyBhdGMuIEluZGl2aWR1YWwgbW9kdWxlcywgeW91IGNhbiBsaW5rIGJldHdlZW4gdGhlbS4gIFlvdSBjYW4gY3JlYXRlIGEgbW9kdWxlIFBlb3BsZSwgR2VuZGVyIGFuZCBUeXBlIG9mIGVtcGxveW1lbnQgYW5kIGxpbmsgYmV0d2VuIHRoZW0uPC9wPg0KPHA+RWFjaCBtb2R1bGUgaW5jbHVkZXMgdGhlIGFiaWxpdHkgdG8gY3JlYXRlZCBjYXRlZ29yaWVzLCBjdXN0b20gZmllbGRzICBhbmQgZWRpdGVkIGEgbnVtYmVyIG9mIHNldHRpbmdzLjwvcD4NCjxwPllvdSBjYW4gdXNlIHRoZSBsaXN0IHRlbXBsYXRlcyAsIGNhdGVnb3JpZXMgdGVtcGxhdGVzICwgZmlsdGVyIHRlbXBsYXRlcywgb3IgZGV0YWlsIHRlbXBsYXRlcyBhcyBpdCBhbHJlYWR5IGtub3duIG1vZHVsZXMgZnJvbSBOZXdzLCBQcm9kdWN0cyBldGMuPC9wPic7DQoNCiRsYW5nWydldmVudGRlc2MtSXRlbUFkZGVkJ10gPSAnU2VudCB3aGVuIGFuIGl0ZW0gaXMgYWRkZWQuJzsNCiRsYW5nWydldmVudGhlbHAtSXRlbUFkZGVkJ10gPSAnPHA+U2VudCB3aGVuIGFuIGl0ZW0gaXMgYWRkZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlwiaXRlbV9pZFwiIC0gSWQgb2YgdGhlIGl0ZW0gaXRlbTwvbGk+DQo8bGk+XCJjYXRlZ29yeV9pZFwiIC0gSWQgb2YgdGhlIGNhdGVnb3J5IGZvciB0aGlzIGl0ZW08L2xpPg0KPGxpPlwidGl0bGVcIiAtIFRpdGxlIG9mIHRoZSBpdGVtPC9saT4NCjxsaT5cImFjdGl2ZSIgLSBTdGF0dXMgb2YgdGhlIGl0ZW0gKCIwIiBvciAiMSIpPC9saT4NCjxsaT5cIml0ZW1fZGF0ZSIgLSBEYXRlIHRoZSBpdGVtIHNob3VsZCBzdGFydCBiZWluZyBkaXNwbGF5ZWQ8L2xpPg0KPGxpPlwiaXRlbV9kYXRlX2VuZFwiIC0gRGF0ZSB0aGUgaXRlbSBzaG91bGQgc3RvcCBiZWluZyBkaXNwbGF5ZWQ8L2xpPg0KPC91bD4NCic7DQokbGFuZ1snZXZlbnRkZXNjLUl0ZW1FZGl0ZWQnXSA9ICdTZW50IHdoZW4gYW4gaXRlbSBpcyBlZGl0ZWQuJzsNCiRsYW5nWydldmVudGhlbHAtSXRlbUVkaXRlZCddID0gJzxwPlNlbnQgd2hlbiBhbiBpdGVtIGlzIGVkaXRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCJpdGVtX2lkXCIgLSBJZCBvZiB0aGUgaXRlbSBpdGVtPC9saT4NCjxsaT5cImNhdGVnb3J5X2lkXCIgLSBJZCBvZiB0aGUgY2F0ZWdvcnkgZm9yIHRoaXMgaXRlbTwvbGk+DQo8bGk+XCJ0aXRsZVwiIC0gVGl0bGUgb2YgdGhlIGl0ZW08L2xpPg0KPGxpPlwiYWN0aXZlIiAtIFN0YXR1cyBvZiB0aGUgaXRlbSAoIjAiIG9yICIxIik8L2xpPg0KPGxpPlwiaXRlbV9kYXRlIiAtIERhdGUgdGhlIGl0ZW0gc2hvdWxkIHN0YXJ0IGJlaW5nIGRpc3BsYXllZDwvbGk+DQo8bGk+XCJpdGVtX2RhdGVfZW5kXCIgLSBEYXRlIHRoZSBpdGVtIHNob3VsZCBzdG9wIGJlaW5nIGRpc3BsYXllZDwvbGk+DQo8L3VsPg0KJzsNCiRsYW5nWydldmVudGRlc2MtSXRlbURlbGV0ZWQnXSA9ICdTZW50IHdoZW4gYW4gaXRlbSBpcyBkZWxldGVkLic7DQokbGFuZ1snZXZlbnRoZWxwLUl0ZW1EZWxldGVkJ10gPSAnPHA+U2VudCB3aGVuIGFuIGl0ZW0gaXMgZGVsZXRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCJpdGVtX2lkXCIgLSBJZCBvZiB0aGUgaXRlbSBpdGVtPC9saT4NCjwvdWw+DQonOw0KJGxhbmdbJ2V2ZW50ZGVzYy1DYXRlZ29yeUFkZGVkJ10gPSAnU2VudCB3aGVuIGEgY2F0ZWdvcnkgaXMgYWRkZWQuJzsNCiRsYW5nWydldmVudGhlbHAtQ2F0ZWdvcnlBZGRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhdGVnb3J5IGlzIGFkZGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cImNhdGVnb3J5X2lkXCIgLSBJZCBvZiB0aGUgaXRlbSBjYXRlZ29yeTwvbGk+DQo8bGk+XCJuYW1lXCIgLSBOYW1lIG9mIHRoZSBpdGVtIGNhdGVnb3J5PC9saT4NCjwvdWw+DQonOw0KJGxhbmdbJ2V2ZW50ZGVzYy1DYXRlZ29yeUVkaXRlZCddID0gJ1NlbnQgd2hlbiBhIGNhdGVnb3J5IGlzIGVkaXRlZC4nOw0KJGxhbmdbJ2V2ZW50aGVscC1DYXRlZ29yeUVkaXRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhdGVnb3J5IGlzIGVkaXRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCJjYXRlZ29yeV9pZFwiIC0gSWQgb2YgdGhlIGl0ZW0gY2F0ZWdvcnk8L2xpPg0KPGxpPlwibmFtZVwiIC0gTmFtZSBvZiB0aGUgaXRlbSBjYXRlZ29yeTwvbGk+DQo8bGk+XCJvcmlnbmFtZVwiIC0gVGhlIG9yaWdpbmFsIG5hbWUgb2YgdGhlIGl0ZW0gY2F0ZWdvcnk8L2xpPg0KPC91bD4NCic7DQokbGFuZ1snZXZlbnRkZXNjLUNhdGVnb3J5RGVsZXRlZCddID0gJ1NlbnQgd2hlbiBhIGNhdGVnb3J5IGlzIGRlbGV0ZWQuJzsNCiRsYW5nWydldmVudGhlbHAtQ2F0ZWdvcnlEZWxldGVkJ10gPSAnPHA+U2VudCB3aGVuIGEgY2F0ZWdvcnkgaXMgZGVsZXRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCJjYXRlZ29yeV9pZFwiIC0gSWQgb2YgdGhlIGRlbGV0ZWQgY2F0ZWdvcnkgPC9saT4NCjxsaT5cIm5hbWVcIiAtIE5hbWUgb2YgdGhlIGRlbGV0ZWQgY2F0ZWdvcnk8L2xpPg0KPC91bD4NCic7DQokbGFuZ1snZXZlbnRkZXNjLUl0ZW1zUmVvcmRlcmVkJ10gPSAnU2VudCB3aGVuIGl0ZW1zIGFyZSByZW9yZGVyZWQuJzsNCiRsYW5nWydldmVudGhlbHAtSXRlbXNSZW9yZGVyZWQnXSA9ICc8cD5TZW50IHdoZW4gaXRlbXMgaXMgcmVvcmRlcmVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cImNhdGVnb3J5X2lkXCIgLSBJZCBvZiB0aGUgZGVsZXRlZCBjYXRlZ29yeSA8L2xpPg0KPGxpPlwibmFtZVwiIC0gTmFtZSBvZiB0aGUgZGVsZXRlZCBjYXRlZ29yeTwvbGk+DQo8L3VsPg0KJzsNCiRsYW5nWydldmVudGRlc2MtQ2F0ZWdvcmllc1Jlb3JkZXJlZCddID0gJ1NlbnQgd2hlbiBjYXRlZ29yaWVzIGFyZSByZW9yZGVyZWQuJzsNCiRsYW5nWydldmVudGhlbHAtQ2F0ZWdvcmllc1Jlb3JkZXJlZCddID0gJzxwPlNlbnQgd2hlbiBjYXRlZ29yaWVzIGFyZSByZW9yZGVyZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlwiY2F0ZWdvcnlfaWRcIiAtIElkIG9mIHRoZSBkZWxldGVkIGNhdGVnb3J5IDwvbGk+DQo8bGk+XCJuYW1lXCIgLSBOYW1lIG9mIHRoZSBkZWxldGVkIGNhdGVnb3J5PC9saT4NCjwvdWw+DQonOw0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ01vZHVsZSBHZW5lcmF0b3InOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdQb3N0IEluc3RhbGwgTWVzc2FnZSwgKGUuZy4sIEJlIHN1cmUgdG8gc2V0ICZxdW90O21hbmFnZSBtbGVfY21zJnF1b3Q7IHBlcm1pc3Npb25zIHRvIHVzZSB0aGlzIG1vZHVsZSEpJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdNb2R1bGUgR2VuZXJhdG9yIHdhcyBzdWNjZXNzZnVsIHVuaW5zdGFsbGVkJzsKJGxhbmdbJ3JlYWxseV91bmluc3RhbGwnXSA9ICdSZWFsbHk/IEFyZSB5b3Ugc3VyZQ0KeW91IHdhbnQgdG8gdW5zaW5zdGFsbCB0aGlzIGZpbmUgbW9kdWxlPyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSBVbmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ1RoaXMgbW9kdWxlIGFkZCBtdWx0aWxhbmd1YWdlIHNvbHV0aW9ucyB0byB5b3UgQ01TIE1hZGUgU2ltcGxlJzsKJGxhbmdbJ2luZm9fc3VjY2VzcyddID0gJ1N1Y2Nlcyc7CiRsYW5nWydpbmZvX2Vycm9yJ10gPSAnRXJyb3InOwokbGFuZ1snb3B0aW9uc3VwZGF0ZWQnXSA9ICdPcHRpb25zIHVwZGF0ZWQnOwokbGFuZ1snbW9kdWxlX21pc3NpbmcnXSA9ICdQbGVhc2UsIGluc3RhbCBtb2R1bGUgJXMnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGU/JzsKJGxhbmdbJ21vZHVsZV9kaXJfcGVybWlzc2lvbiddID0gJ01vZHVsZSBkaXJlY290cnkgbmVlZCB3cml0ZWFibGUgcGVybWlzc2lvbi4gUGxlYXNlIGNoYW5nZSBwZXJtaXNzaW9uIGZvciBtb2R1bGUgZGlyZWN0b3J5Lic7CiRsYW5nWydwbGVhc2VfaW5zdGFsbF9pdCddID0gJ05vdGU6IGluc3RhbGwgdGhpcyBtb2R1bGUgdGhyb3VnaCAmcXVvdDtFeHRlbnNpb25zICZyYXF1bzsgTW9kdWxlcyZxdW90Oyc7CiRsYW5nWydjcmVhdGVfbW9kdWxlJ10gPSAnQ3JlYXRlIG5ldyBtb2R1bGUnOwokbGFuZ1snZGV0YWlsX3BhZ2UnXSA9ICdEZXRhaWwgUGFnZSc7CiRsYW5nWydkZXRhaWxfdGVtcGxhdGUnXSA9ICdEZXRhaWwgVGVtcGxhdGVzJzsKJGxhbmdbJ3dhcm5pbmdfcHJldmlldyddID0gJ1dhcm5pbmc6IFRoaXMgcHJldmlldyBwYW5lbCBiZWhhdmVzIG11Y2ggbGlrZSBhIGJyb3dzZXIgd2luZG93IGFsbG93aW5nIHlvdSB0byBuYXZpZ2F0ZSBhd2F5IGZyb20gdGhlIGluaXRpYWxseSBwcmV2aWV3ZWQgcGFnZS4gSG93ZXZlciwgaWYgeW91IGRvIHRoYXQsIHlvdSBtYXkgZXhwZXJpZW5jZSB1bmV4cGVjdGVkIGJlaGF2aW91ci4gIE5hdmlnYXRpbmcgYXdheSBmcm9tIHRoZSBpbml0aWFsIHBhZ2UgYW5kIHJldHVybmluZyB3aWxsIG5vdCBnaXZlIHRoZSBleHBlY3RlZCByZXN1bHRzLjxici8+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGUgcHJldmlldyBkb2VzIG5vdCB1cGxvYWQgZmlsZXMgeW91IG1heSBoYXZlIHNlbGVjdGVkIGZvciB1cGxvYWQuJzsKJGxhbmdbJ2FydGljbGUnXSA9ICdBcnRpY2xlJzsKJGxhbmdbJ3ByZXZpZXcnXSA9ICdQcmV2aWV3JzsKJGxhbmdbJ2luZm9fZGV0YWlsX3JldHVybmlkJ10gPSAnVGhpcyBwcmVmZXJlbmNlIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGEgcGFnZSAoYW5kIHRoZXJlZm9yZSBhIHRlbXBsYXRlKSB0byB1c2UgdG8gdmlldyBkZXRhaWwgcGFnZXMuICBJbmRpdmlkdWFsaXplZCBOZXdzIERldGFpbCBVUkxTIHdpbGwgbm90IHdvcmsgaWYgdGhpcyBwYXJhbWV0ZXIgaXMgbm90IHNldCB0byBhIHZhbGlkIHBhZ2UuICBBZGRpdGlvbmFsbHksIGlmIHRoaXMgcHJlZmVyZW5jZSBpcyBzZXQsIGFuZCBubyBkZXRhaWxwYWdlIHBhcmFtZXRlciBpcyBwcm92aWRlZCBvbiB0aGUgbmV3cyB0YWcsIHRoZW4gdGhpcyB2YWx1ZSB3aWxsIGJlIHVzZWQgZm9yIGRldGFpbCBsaW5rcyc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfcmV0dXJuaWQnXSA9ICdEZWZhdWx0IHBhZ2UgdG8gdXNlIGZvciBkZXRhaWwgdmlld3MnOwokbGFuZ1snZ2VuZXJhdG9yJ10gPSAnR2VuZXJhdG9yJzsKJGxhbmdbJ3JlZ2VuZXJhdGUnXSA9ICdSZS1nZW5lcmF0ZSc7CiRsYW5nWyduYW1lJ10gPSAnTmFtZSc7CiRsYW5nWydhdHRhY2gnXSA9ICdBdHRhY2gnOwokbGFuZ1snZXJyb3InXSA9ICdFcnJvciEnOwokbGFuZ1snY3JlYXRlZGF0ZSddID0gJ0NyZWF0ZSBkYXRlJzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ01vZGlmaWVkIGRhdGUnOwokbGFuZ1snYWRtaW5kZXNjcmlwdGlvbiddID0gJyc7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdBY2Nlc3MgRGVuaWVkLiBQbGVhc2UgY2hlY2sgeW91ciBwZXJtaXNzaW9ucy4nOwokbGFuZ1snZXJyb3JfcmVuYW1lX2RpciddID0gJ1JlbmFtZSBkaXIgd2l0aG91dCBzdWNjZXNzIChwZXJtaXNzaW9uPyknOwokbGFuZ1snZXJyb3JfcmVwbGFjZV9maWxlcyddID0gJ01vZHVsZSBjYW5ub3QgYnkgZWRpdGVkLiBQbGVhc2UgZWRpdCBpdCBtYW51YWxseS4nOwokbGFuZ1snZXJyb3JfbW9kdWxlX2V4aXN0cyddID0gJ1RoaXMgbW9kdWxlIGV4aXN0cy4gRGVsZXRlIGRpciBvciByZS1nZW5lcmF0ZS4nOwokbGFuZ1snZXJyb3JfdW5paW5zdGFsX21vZHVsZSddID0gJ1RoaXMgbW9kdWxlIGV4aXN0cy4gVW5paW5zdGFsIGl0Lic7CiRsYW5nWydpdGVtJ10gPSAnSXRlbSc7CiRsYW5nWydpdGVtcyddID0gJ0l0ZW1zJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRmllbGQgRGVmaW5pdGlvbic7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdGaWVsZCBEZWZpbml0aW9ucyc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ1RlbXBsYXRlJzsKJGxhbmdbJ3RlbXBsYXRlcyddID0gJ1RlbXBsYXRlcyc7CiRsYW5nWydjYXRlZ29yeSddID0gJ0NhdGVnb3J5JzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdDYXRlZ29yaWVzJzsKJGxhbmdbJ29wdGlvbiddID0gJ09wdGlvbic7CiRsYW5nWydvcHRpb25zJ10gPSAnT3B0aW9ucyc7CiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ2l0ZW1fdGl0bGUnXSA9ICdUaXRsZSc7CiRsYW5nWydwcm9tcHRfaXRlbV90aXRsZSddID0gJ0l0ZW0gdGl0bGUnOwokbGFuZ1snYWxpYXMnXSA9ICdBbGlhcyc7CiRsYW5nWyd1cmwnXSA9ICdVcmwnOwokbGFuZ1snYWN0aXZlJ10gPSAnQWN0aXZlJzsKJGxhbmdbJ2l0ZW1fdGl0bGVfZW1wdHknXSA9ICdJdGVtIHRpdGxlIGlzIGVtcHR5JzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX2VtcHR5J10gPSAnUmVxdWlyZWQgZmllbGQgaXMgZW1wdHknOwokbGFuZ1sndG9vX2xvbmcnXSA9ICdGaWVsZCB2YWx1ZSBleGNlZWRzIG1heCBsZW5ndGgnOwokbGFuZ1snYXBwcm92ZSddID0gJ1NldCBTdGF0dXMgdG8gJiMwMzk7QWN0aXZlJiMwMzk7JzsKJGxhbmdbJ3JldmVydCddID0gJ1NldCBTdGF0dXMgdG8gJiMwMzk7SW5hY3RpdmUmIzAzOTsnOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAnTGFzdCBNb2RpZmllZCc7CiRsYW5nWydwYWdlJ10gPSAnUGFnZSc7CiRsYW5nWydwYWdlX29mJ10gPSAnUGFnZSAlcyBvZiAlcyc7CiRsYW5nWydwYWdlX2xpbWl0J10gPSAnUGFnZSBMaW1pdCc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICc8PCc7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snaWQnXSA9ICdJZCc7CiRsYW5nWyd0aXRsZSddID0gJ1RpdGxlJzsKJGxhbmdbJ2luY2x1ZGVfY2hpbGRyZW4nXSA9ICdJbmNsdWRlIENoaWxkcmVuPyc7CiRsYW5nWydoaWVyYXJjaHknXSA9ICdIaWVyYXJjaHknOwokbGFuZ1snc29ydF9ieSddID0gJ1NvcnQgQnknOwokbGFuZ1snc29ydF9vcmRlciddID0gJ1NvcnQgT3JkZXInOwokbGFuZ1snZGF0ZSddID0gJ0RhdGUnOwokbGFuZ1snZGF0ZV9lbmQnXSA9ICdFbmQgZGF0ZSc7CiRsYW5nWydmaWx0ZXJzJ10gPSAnRmlsdGVycyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdBc2NlbmRpbmcnOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ0Rlc2NlbmRpbmcnOwokbGFuZ1snYWxsY2F0ZWdvcmllcyddID0gJ0FsbCBjYXRlZ29yaWVzJzsKJGxhbmdbJ2Zyb20nXSA9ICdGcm9tJzsKJGxhbmdbJ3RvJ10gPSAnVG8nOwokbGFuZ1sncG9zaXRpb24nXSA9ICdQb3NpdGlvbic7CiRsYW5nWydjcmVhdGVkZGF0ZSddID0gJ0NyZWF0ZWQgZGF0ZSc7CiRsYW5nWydzYXZlX29yZGVyJ10gPSAnU2F2ZSBvcmRlcic7CiRsYW5nWydlZGl0ZmllbGRkZWYnXSA9ICdFZGl0IEZpZWxkIERlZmluaXRpb24nOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdBZGQgRmllbGQgRGVmaW5pdGlvbic7CiRsYW5nWydmaWVsZGRlZl9uYW1lJ10gPSAnTmFtZSc7CiRsYW5nWydmaWVsZGRlZl9oZWxwJ10gPSAnSGVscGZ1bCB0aXAnOwokbGFuZ1snZmllbGRkZWZfdHlwZSddID0gJ1R5cGUnOwokbGFuZ1snZmllbGRkZWZfbWF4X2xlbmd0aCddID0gJ01heGltdW0gbGVuZ3RoJzsKJGxhbmdbJ2ZpZWxkZGVmX3JlcXVpcmVkJ10gPSAnUmVxdWlyZWQnOwokbGFuZ1snZmllbGRkZWZfZnJvbnRlbmQnXSA9ICdGcm9udCBFbmQnOwokbGFuZ1snZmllbGRkZWZfZWRpdHZpZXcnXSA9ICdWaWV3IG9ubHkgaW4gZWRpdCc7CiRsYW5nWydmaWVsZGRlZl9maWx0ZXJfZnJvbnRlbmQnXSA9ICdBZGQgdG8gZmlsdGVyIGluIGZyb250ZW5kJzsKJGxhbmdbJ2ZpZWxkZGVmX2ZpbHRlcl9hZG1pbiddID0gJ0FkZCB0byBmaWx0ZXIgaW4gYWRtaW4gYXJlYSc7CiRsYW5nWydmaWVsZGRlZl9zZWFyY2hhYmxlJ10gPSAnU2VhcmNoYWJsZSc7CiRsYW5nWydleHRyYSddID0gJ0V4dHJhJzsKJGxhbmdbJ3NlY3Rpb24nXSA9ICdTZWN0aW9uJzsKJGxhbmdbJ3RleHRib3gnXSA9ICdUZXh0IElucHV0JzsKJGxhbmdbJ2NoZWNrYm94J10gPSAnQ2hlY2tib3gnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZXh0IEFyZWEnOwokbGFuZ1snc2VsZWN0X2RhdGUnXSA9ICdTZWxlY3QgRGF0ZSc7CiRsYW5nWyd1cGxvYWRfZmlsZSddID0gJ1VwbG9hZCBGaWxlJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnRHJvcGRvd24nOwokbGFuZ1snbW9kdWxlJ10gPSAnTW9kdWxlJzsKJGxhbmdbJ3NlbGVjdF9kZWZhdWx0J10gPSAnLS0gU2VsZWN0IC0tJzsKJGxhbmdbJ3NlbGVjdF9maWxlJ10gPSAnU2VsZWN0IEZpbGUnOwokbGFuZ1snY29sb3JfcGlja2VyJ10gPSAnQ29sb3IgcGlja2VyJzsKJGxhbmdbJ21vZHVsZV9saW5rJ10gPSAnTGluayB0byBtb2R1bGUnOwokbGFuZ1snZmllbGRkZWZfbmFtZV9lbXB0eSddID0gJ0ZpZWxkIGRlZmluaXRpb24gbmFtZSBpcyBlbXB0eSc7CiRsYW5nWydmaWVsZGRlZl9uYW1lX2V4aXN0cyddID0gJ0ZpZWxkIGRlZmluaXRpb24gbmFtZSBhbHJlYWR5IGV4aXN0cyc7CiRsYW5nWydpbnZhbGlkJ10gPSAnRmllbGQgdmFsdWUgaXMgaW52YWxpZCc7CiRsYW5nWyd0YWInXSA9ICdUYWInOwokbGFuZ1snZHJvcGRvd25mcm9tbW9kdWxlJ10gPSAnRHJvcGRvd24gZnJvbSBtb2R1bGUnOwokbGFuZ1snc3RhdGljJ10gPSAnU3RhdGljJzsKJGxhbmdbJ2Vycm9yX3VwbG9hZCddID0gJ1Byb2JsZW0gb2NjdXJyZWQgdXBsb2FkaW5nIGEgZmlsZSc7CiRsYW5nWydlcnJvcl9ta2RpciddID0gJ0NvdWxkIG5vdCBjcmVhdGUgZGlyZWN0b3J5OiAlcyc7CiRsYW5nWydlcnJvcl9maWxlc2l6ZSddID0gJ0FuIHVwbG9hZGVkIGZpbGUgZXhjZWVkZWQgdGhlIG1heGltdW0gYWxsb3dlZCBzaXplJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRmaWxldHlwZSddID0gJ0Nhbm5vdCB1cGxvYWQgdGhpcyB0eXBlIG9mIGZpbGUnOwokbGFuZ1snZXJyb3JfbW92ZWZpbGUnXSA9ICdDb3VsZCBub3QgY3JlYXRlIGZpbGU6ICVzJzsKJGxhbmdbJ2ludmFsaWR1cmwnXSA9ICdVcmwgaXMgaW52YWxpZC4nOwokbGFuZ1snbm9uZSddID0gJ05vbmUnOwokbGFuZ1snZWRpdF9jYXRlZ29yeSddID0gJ0VkaXQgQ2F0ZWdvcnknOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdBZGQgQ2F0ZWdvcnknOwokbGFuZ1snY2F0ZWdvcnlfbmFtZSddID0gJ0NhdGVnb3J5IG5hbWUnOwokbGFuZ1snY2F0ZWdvcnlfbmFtZV9lbXB0eSddID0gJ0NhdGVnb3J5IG5hbWUgaXMgZW1wdHknOwokbGFuZ1snY2F0ZWdvcnl1cGRhdGVkJ10gPSAnQ2F0ZWdvcnkgdXBkYXRlZC4nOwokbGFuZ1snY2F0ZWdvcnlhZGRlZCddID0gJ0NhdGVnb3J5IGFkZGVkLic7CiRsYW5nWydjYXRlZ29yeV90ZW1wbGF0ZSddID0gJ0NhdGVnb3J5IFRlbXBsYXRlcyc7CiRsYW5nWydzdW1tYXJ5X3RlbXBsYXRlJ10gPSAnU3VtbWFyeSBUZW1wbGF0ZXMnOwokbGFuZ1snZmlsdGVyX3RlbXBsYXRlJ10gPSAnRmlsdGVyIFRlbXBsYXRlcyc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlcyddID0gJ0RlZmF1bHQgVGVtcGxhdGVzJzsKJGxhbmdbJ2VkaXR0ZW1wbGF0ZSddID0gJ0VkaXQgVGVtcGxhdGUnOwokbGFuZ1snYWRkdGVtcGxhdGUnXSA9ICdBZGQgJXMgVGVtcGxhdGUnOwokbGFuZ1sndGVtcGxhdGVfbmFtZSddID0gJ1RlbXBsYXRlIG5hbWUnOwokbGFuZ1sndGVtcGxhdGVfbmFtZV9lbXB0eSddID0gJ1RlbXBsYXRlIG5hbWUgaXMgZW1wdHknOwokbGFuZ1snZ2xvYmFsJ10gPSAnR2xvYmFsJzsKJGxhbmdbJ2NoYW5nZXNzYXZlZCddID0gJ1lvdXIgY2hhbmdlcyBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IHNhdmVkJzsKJGxhbmdbJ2JhY2snXSA9ICdCYWNrJzsKJGxhbmdbJ3VwJ10gPSAnVXAnOwokbGFuZ1snZG93biddID0gJ0Rvd24nOwokbGFuZ1snZWRpdCddID0gJ0VkaXQnOwokbGFuZ1snZGVsZXRlJ10gPSAnRGVsZXRlJzsKJGxhbmdbJ25vc3VjaGlkJ10gPSAnTm8gc3VjaCBJRCc7CiRsYW5nWydkZWxldGVkJ10gPSAnVGhlIGVudHJ5IGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBkZWxldGVkJzsKJGxhbmdbJ2FkZCddID0gJ0FkZCc7CiRsYW5nWydhbGlhc19pbnZhbGlkJ10gPSAnQWxpYXMgaXMgaW52YWxpZC4gSXQgbXVzdCBiZSBhIHZhbGlkIFBIUCB2YXJpYWJsZSBuYW1lJzsKJGxhbmdbJ2VtcHR5X3BhcmFtJ10gPSAnVGhlIHBhcmFtZXRlciB3YXMgZW1wdHkuIFRyeSBhZ2Fpbi4nOwokbGFuZ1snb3BlcmF0aW9uX2NhbmNlbGxlZCddID0gJ09wZXJhdGlvbiBDYW5jZWxsZWQnOwokbGFuZ1snb3BlcmF0aW9uX2NvbXBsZXRlJ10gPSAnT3BlcmF0aW9uIENvbXBsZXRlJzsKJGxhbmdbJ29mJ10gPSAnb2YnOwokbGFuZ1snc2VsZWN0X2FsbCddID0gJ1NlbGVjdCBBbGwnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1NlbGVjdCBPbmUnOwokbGFuZ1snc2V0ZHJhZnQnXSA9ICdTZXQgQXMgSW5hY3RpdmUnOwokbGFuZ1snc2V0cHVibGlzaGVkJ10gPSAnU2V0IEFzIEFjdGl2ZSc7CiRsYW5nWyd3aXRoX3NlbGVjdGVkJ10gPSAnV2l0aCBTZWxlY3RlZCc7CiRsYW5nWydnbyddID0gJ0dvJzsKJGxhbmdbJ25vdGhpbmdfc2VsZWN0ZCddID0gJ05vdGhpbmcgc2VsZWN0ZWQnOwokbGFuZ1snaW1hZ2VzX3NpemVfYWRtaW4nXSA9ICdJbWFnZSBzaXplJzsKJGxhbmdbJ2ltYWdlX3NpemVfYWRtaW5faW5mbyddID0gJ0V4YW1wbGVzOiAyMDB4IC0gd2lkdGgsIHgyMDAgLSBoZWlnaHQsIDIwMHgyMDAgLSB3aWR0aC9oZWlnaHQnOwokbGFuZ1snYWRtaW5fYXJlYSddID0gJ0FkbWluIGFyZWEnOwokbGFuZ1snZmlsdGVyJ10gPSAnRmlsdGVyJzsKJGxhbmdbJ21vZGUnXSA9ICdNb2RlJzsKJGxhbmdbJ3NpbXBsZSddID0gJ1NpbXBsZSc7CiRsYW5nWydhZHZhbmNlZCddID0gJ0FkdmFuY2VkJzsKJGxhbmdbJ3Byb21wdF9mcmllbmRseW5hbWUnXSA9ICdNb2R1bGUgZnJpZW5kbHkgbmFtZSc7CiRsYW5nWydwcm9tcHRfaXRlbV9zaW5ndWxhciddID0gJ0l0ZW0gc2luZ3VsYXInOwokbGFuZ1sncHJvbXB0X2l0ZW1fcGx1cmFsJ10gPSAnSXRlbSBwbHVyYWwnOwokbGFuZ1sncHJvbXB0X3VybF9wcmVmaXgnXSA9ICdVUkwgUHJlZml4JzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0X2FjdGlvbl9wYXJhbXMnXSA9ICdEZWZhdWx0IHBhcmFtcyBmb3IgZGVmYXVsdCBhY3Rpb24nOwokbGFuZ1sncHJvbXB0X2RldGFpbF9hY3Rpb25fcGFyYW1zJ10gPSAnRGVmYXVsdCBwYXJhbXMgZm9yIGRldGFpbCBhY3Rpb24nOwokbGFuZ1sncHJvbXB0X3RpdGxlX3BhcmFtX2Zvcl9jYWNoZSddID0gJ1RpdGxlIHBhcmFtIGZvciBjYWNoZSByZXN1bHRzJzsKJGxhbmdbJ3Byb21wdF9kaXNwbGF5X2lubGluZSddID0gJ0Rpc3BsYXkgZGV0YWlscyBpbmxpbmUnOwokbGFuZ1sncHJvbXB0X2xhenlsb2FkaW5nJ10gPSAnTGF6eSBsb2FkaW5nIChJZiB3ZSBkb24mIzAzOTt0IG5lZWQgdXNlIG1vZHVsZSB3aXRoIGRldGFpbCBsaW5rIG9uIGZyb250ZW5kLiknOwokbGFuZ1sncHJvbXB0X2hhc19hZG1pbiddID0gJ0hhcyBhZG1pbj8nOwokbGFuZ1snaGFzX2dhbGxlcnknXSA9ICdIYXMgZ2FsbGVyeT8nOwokbGFuZ1snZ2FsbGVyeSddID0gJ0dhbGxlcnknOwokbGFuZ1snZ2FsbGVyeV9zb3J0b3JkZXInXSA9ICdTb3J0IG9yZGVyIGZvciBnYWxsZXJ5JzsKJGxhbmdbJ2ZpbGVuYW1lJ10gPSAnRmlsZW5hbWUnOwokbGFuZ1snYWRkX2ZpbGVzJ10gPSAnQWRkICBmaWxlcyc7CiRsYW5nWydwcmV2aWV3X2FkbWluJ10gPSAnUHJldmlldyBpbiBhZG1pbiBhcmVhPyc7CiRsYW5nWydjb3B5X2FkbWluJ10gPSAnQWxsb3cgY29weSBpdGVtPyc7CiRsYW5nWydwcm9tcHRfdXNlcmdyb3VwX2RlcGVuZGVuY2UnXSA9ICdVc2VyIGdyb3VwIGRlcGVuZGVuY2UnOwokbGFuZ1sncHJvbXB0X2l0ZW1fZGV0YWlsX3JldHVybmlkJ10gPSAnRGV0YWlsIHJldHVybiBJRCc7CiRsYW5nWydwcm9tcHRfaXRlbV9jYXRlZ29yeV9yZXR1cm5pZCddID0gJ0NhdGVnb3J5IHJldHVybiBJRCc7CiRsYW5nWydwcm9tcHRfY3VzdG9tX2ZpZWxkc19kZWZhdWx0X2FkbWluJ10gPSAnRGVmYXVsdCBjdXN0b20gZmllbGRzIGZvciBhZG1pbiBpdGVtcyc7CiRsYW5nWydwcm9tcHRfaXRlbV9jYXRlZ29yeV9lZGl0J10gPSAnRWRpdCBjYXRlZ29yeSc7CiRsYW5nWydwcm9tcHRfcmVjdXJzaXZlJ10gPSAnRWRpdCByZWN1cnNpdmUnOwokbGFuZ1sncHJvbXB0X2l0ZW1fZGF0ZV9lZGl0J10gPSAnRWRpdCBkYXRlJzsKJGxhbmdbJ3Byb21wdF9pdGVtX2RhdGVfZW5kX2VkaXQnXSA9ICdFZGl0IGRhdGUgZW5kJzsKJGxhbmdbJ3Byb21wdF9pdGVtX2FsaWFzX2VkaXQnXSA9ICdFZGl0IGFsaWFzJzsKJGxhbmdbJ3Byb21wdF9pdGVtX3RpdGxlX2VkaXQnXSA9ICdFZGl0IHRpdGxlJzsKJGxhbmdbJ3Byb21wdF9pdGVtX3VybF9lZGl0J10gPSAnRWRpdCB1cmwnOwokbGFuZ1sncHJvbXB0X2ZpbHRlcl9kYXRlJ10gPSAnRmlsdGVyIGRhdGUnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlfc29ydG9yZGVyJ10gPSAnU29ydCBvcmRlcic7CiRsYW5nWydwcm9tcHRfc3VtbWFyeV9zb3J0aW5nJ10gPSAnU29ydGluZyc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeV9wYWdlbGltaXQnXSA9ICdQYWdlbGltaXQnOwokbGFuZ1sncHJvbXB0X2NhdGVnb3J5X2V4dHJhX2xhYmVsJ10gPSAnQ2F0ZWdvcnkgZXh0cmEgbGFiZWwnOwokbGFuZ1sndmlld2FibGVfZmllbGRzJ10gPSAnVmlld2FibGUgZmllbGRzJzsKJGxhbmdbJ3ZpZXcnXSA9ICdWaWV3JzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdSZW9yZGVyJzsKJGxhbmdbJ3NlYXJjaCddID0gJ1NlYXJjaCc7CiRsYW5nWydyZWluZGV4J10gPSAnUmVpbmRleCc7CiRsYW5nWydwcm9tcHRfc2VhcmNoYWJsZSddID0gJ1NlYXJjaGFibGUnOwokbGFuZ1sncHJvbXB0X3NlYXJjaF9kYXRlX2VuZCddID0gJ0RhdGUgZW5kIGZvciBzZWFyY2gnOwokbGFuZ1snc3VuZGF5J10gPSAnU3VuZGF5JzsKJGxhbmdbJ21vbmRheSddID0gJ01vbmRheSc7CiRsYW5nWyd0dWVzZGF5J10gPSAnVHVlc2RheSc7CiRsYW5nWyd3ZWRuZXNkYXknXSA9ICdXZWRuZXNkYXknOwokbGFuZ1sndGh1cnNkYXknXSA9ICdUaHVyc2RheSc7CiRsYW5nWydmcmlkYXknXSA9ICdGcmlkYXknOwokbGFuZ1snc2F0dXJkYXknXSA9ICdTYXR1cmRheSc7CiRsYW5nWydyZWN1cl9wZXJpb2QnXSA9ICdSZWN1ciBwZXJpb2QnOwokbGFuZ1snd2Vla2RheXMnXSA9ICdXZWVrZGF5cyc7CiRsYW5nWydubyddID0gJ05vbmUnOwokbGFuZ1snZGFpbHknXSA9ICdEYWlseSc7CiRsYW5nWydwbHVyYWxfZGFpbHknXSA9ICdEYXlzJzsKJGxhbmdbJ2RlbGV0ZV9zZWxlY3RlZCddID0gJ0RlbGV0ZSBzZWxlY3RlZCc7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQo8bGk+VmVyc2lvbiBOb3ZlbWJlciwgMjAxMSAtICBpbml0IHJlbGVhc2U8L2xpPjwvdWw+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPk1vZHVsZSBnZW5lcmF0b3IgbGV0cyB5b3UgY3JlYXRlIGEgbGlzdCB0aGUgbW9kdWxlcyBhcyBOZXdzLCBQcm9kdWN0cyBhdGMuIEluZGl2aWR1YWwgbW9kdWxlcywgeW91IGNhbiBsaW5rIGJldHdlZW4gdGhlbS4gIFlvdSBjYW4gY3JlYXRlIGEgbW9kdWxlIFBlb3BsZSwgR2VuZGVyIGFuZCBUeXBlIG9mIGVtcGxveW1lbnQgYW5kIGxpbmsgYmV0d2VuIHRoZW0uPC9wPg0KPHA+RWFjaCBtb2R1bGUgaW5jbHVkZXMgdGhlIGFiaWxpdHkgdG8gY3JlYXRlZCBjYXRlZ29yaWVzLCBjdXN0b20gZmllbGRzICBhbmQgZWRpdGVkIGEgbnVtYmVyIG9mIHNldHRpbmdzLjwvcD4NCjxwPllvdSBjYW4gdXNlIHRoZSBsaXN0IHRlbXBsYXRlcyAsIGNhdGVnb3JpZXMgdGVtcGxhdGVzICwgZmlsdGVyIHRlbXBsYXRlcywgb3IgZGV0YWlsIHRlbXBsYXRlcyBhcyBpdCBhbHJlYWR5IGtub3duIG1vZHVsZXMgZnJvbSBOZXdzLCBQcm9kdWN0cyBldGMuPC9wPic7CiRsYW5nWydldmVudGRlc2MtSXRlbUFkZGVkJ10gPSAnU2VudCB3aGVuIGFuIGl0ZW0gaXMgYWRkZWQuJzsKJGxhbmdbJ2V2ZW50aGVscC1JdGVtQWRkZWQnXSA9ICc8cD5TZW50IHdoZW4gYW4gaXRlbSBpcyBhZGRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2l0ZW1faWRcJnF1b3Q7IC0gSWQgb2YgdGhlIGl0ZW0gaXRlbTwvbGk+DQo8bGk+XCZxdW90O2NhdGVnb3J5X2lkXCZxdW90OyAtIElkIG9mIHRoZSBjYXRlZ29yeSBmb3IgdGhpcyBpdGVtPC9saT4NCjxsaT5cJnF1b3Q7dGl0bGVcJnF1b3Q7IC0gVGl0bGUgb2YgdGhlIGl0ZW08L2xpPg0KPGxpPlwmcXVvdDthY3RpdmUmcXVvdDsgLSBTdGF0dXMgb2YgdGhlIGl0ZW0gKCZxdW90OzAmcXVvdDsgb3IgJnF1b3Q7MSZxdW90Oyk8L2xpPg0KPGxpPlwmcXVvdDtpdGVtX2RhdGUmcXVvdDsgLSBEYXRlIHRoZSBpdGVtIHNob3VsZCBzdGFydCBiZWluZyBkaXNwbGF5ZWQ8L2xpPg0KPGxpPlwmcXVvdDtpdGVtX2RhdGVfZW5kXCZxdW90OyAtIERhdGUgdGhlIGl0ZW0gc2hvdWxkIHN0b3AgYmVpbmcgZGlzcGxheWVkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRkZXNjLUl0ZW1FZGl0ZWQnXSA9ICdTZW50IHdoZW4gYW4gaXRlbSBpcyBlZGl0ZWQuJzsKJGxhbmdbJ2V2ZW50aGVscC1JdGVtRWRpdGVkJ10gPSAnPHA+U2VudCB3aGVuIGFuIGl0ZW0gaXMgZWRpdGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7aXRlbV9pZFwmcXVvdDsgLSBJZCBvZiB0aGUgaXRlbSBpdGVtPC9saT4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfaWRcJnF1b3Q7IC0gSWQgb2YgdGhlIGNhdGVnb3J5IGZvciB0aGlzIGl0ZW08L2xpPg0KPGxpPlwmcXVvdDt0aXRsZVwmcXVvdDsgLSBUaXRsZSBvZiB0aGUgaXRlbTwvbGk+DQo8bGk+XCZxdW90O2FjdGl2ZSZxdW90OyAtIFN0YXR1cyBvZiB0aGUgaXRlbSAoJnF1b3Q7MCZxdW90OyBvciAmcXVvdDsxJnF1b3Q7KTwvbGk+DQo8bGk+XCZxdW90O2l0ZW1fZGF0ZSZxdW90OyAtIERhdGUgdGhlIGl0ZW0gc2hvdWxkIHN0YXJ0IGJlaW5nIGRpc3BsYXllZDwvbGk+DQo8bGk+XCZxdW90O2l0ZW1fZGF0ZV9lbmRcJnF1b3Q7IC0gRGF0ZSB0aGUgaXRlbSBzaG91bGQgc3RvcCBiZWluZyBkaXNwbGF5ZWQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGRlc2MtSXRlbURlbGV0ZWQnXSA9ICdTZW50IHdoZW4gYW4gaXRlbSBpcyBkZWxldGVkLic7CiRsYW5nWydldmVudGhlbHAtSXRlbURlbGV0ZWQnXSA9ICc8cD5TZW50IHdoZW4gYW4gaXRlbSBpcyBkZWxldGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7aXRlbV9pZFwmcXVvdDsgLSBJZCBvZiB0aGUgaXRlbSBpdGVtPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRkZXNjLUNhdGVnb3J5QWRkZWQnXSA9ICdTZW50IHdoZW4gYSBjYXRlZ29yeSBpcyBhZGRlZC4nOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5QWRkZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYXRlZ29yeSBpcyBhZGRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2NhdGVnb3J5X2lkXCZxdW90OyAtIElkIG9mIHRoZSBpdGVtIGNhdGVnb3J5PC9saT4NCjxsaT5cJnF1b3Q7bmFtZVwmcXVvdDsgLSBOYW1lIG9mIHRoZSBpdGVtIGNhdGVnb3J5PC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRkZXNjLUNhdGVnb3J5RWRpdGVkJ10gPSAnU2VudCB3aGVuIGEgY2F0ZWdvcnkgaXMgZWRpdGVkLic7CiRsYW5nWydldmVudGhlbHAtQ2F0ZWdvcnlFZGl0ZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYXRlZ29yeSBpcyBlZGl0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9pZFwmcXVvdDsgLSBJZCBvZiB0aGUgaXRlbSBjYXRlZ29yeTwvbGk+DQo8bGk+XCZxdW90O25hbWVcJnF1b3Q7IC0gTmFtZSBvZiB0aGUgaXRlbSBjYXRlZ29yeTwvbGk+DQo8bGk+XCZxdW90O29yaWduYW1lXCZxdW90OyAtIFRoZSBvcmlnaW5hbCBuYW1lIG9mIHRoZSBpdGVtIGNhdGVnb3J5PC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRkZXNjLUNhdGVnb3J5RGVsZXRlZCddID0gJ1NlbnQgd2hlbiBhIGNhdGVnb3J5IGlzIGRlbGV0ZWQuJzsKJGxhbmdbJ2V2ZW50aGVscC1DYXRlZ29yeURlbGV0ZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYXRlZ29yeSBpcyBkZWxldGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfaWRcJnF1b3Q7IC0gSWQgb2YgdGhlIGRlbGV0ZWQgY2F0ZWdvcnkgPC9saT4NCjxsaT5cJnF1b3Q7bmFtZVwmcXVvdDsgLSBOYW1lIG9mIHRoZSBkZWxldGVkIGNhdGVnb3J5PC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRkZXNjLUl0ZW1zUmVvcmRlcmVkJ10gPSAnU2VudCB3aGVuIGl0ZW1zIGFyZSByZW9yZGVyZWQuJzsKJGxhbmdbJ2V2ZW50aGVscC1JdGVtc1Jlb3JkZXJlZCddID0gJzxwPlNlbnQgd2hlbiBpdGVtcyBpcyByZW9yZGVyZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9pZFwmcXVvdDsgLSBJZCBvZiB0aGUgZGVsZXRlZCBjYXRlZ29yeSA8L2xpPg0KPGxpPlwmcXVvdDtuYW1lXCZxdW90OyAtIE5hbWUgb2YgdGhlIGRlbGV0ZWQgY2F0ZWdvcnk8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGRlc2MtQ2F0ZWdvcmllc1Jlb3JkZXJlZCddID0gJ1NlbnQgd2hlbiBjYXRlZ29yaWVzIGFyZSByZW9yZGVyZWQuJzsKJGxhbmdbJ2V2ZW50aGVscC1DYXRlZ29yaWVzUmVvcmRlcmVkJ10gPSAnPHA+U2VudCB3aGVuIGNhdGVnb3JpZXMgYXJlIHJlb3JkZXJlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2NhdGVnb3J5X2lkXCZxdW90OyAtIElkIG9mIHRoZSBkZWxldGVkIGNhdGVnb3J5IDwvbGk+DQo8bGk+XCZxdW90O25hbWVcJnF1b3Q7IC0gTmFtZSBvZiB0aGUgZGVsZXRlZCBjYXRlZ29yeTwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ3FjYSddID0gJ1AwLTUzNjg0OTExNS0xMzA3OTgzNDk1MjEwJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTk3ODA3OTg1Ni4xMzMwMTY3NTg3LjEzMzA0NjA4MDYuMTMzMDQ2Mjc1OS4xNyc7CiRsYW5nWyd1dG16J10gPSAnMS4xMzIxMzAyNzgyLjEuMS51dG1jc3I9KGRpcmVjdCl8dXRtY2NuPShkaXJlY3QpfHV0bWNtZD0obm9uZSknOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1My4zLjEwLjEzMzA0NjI3NTknOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ01vZHVsZSBHZW5lcmF0b3IgJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnQmVyaWNodCB2b29yYWZnYWFuZCBhYW4gZGUgaW5zdGFsbGF0aWUsIChiaWp2b29yYmVlbGQ6IGNvbnRyb2xlZXIgdXcgcmVjaHRlbiB2b29yIGhldCBnZWJydWlrIHZhbiBkZXplIG1vZHVsZSknOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ01vZHVsZSBHZW5lcmF0b3IgaXMgc3VjY2Vzdm9sIGdlZGUmaXVtbDtuc3RhbGxlZXJkJzsKJGxhbmdbJ3JlYWxseV91bmluc3RhbGwnXSA9ICdFY2h0PyBXZWV0IHUgaGV0IHpla2VyPw0Kd2lsdCB1IGRlemUgcHJhY2h0aWdlIG1vZHVsZSB2ZXJ3aWpkZXJlbj8nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgZ2VkZSZpdW1sO25zdGFsbGVlcmQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSB2ZXJzaWUgJXMgZ2UmaXVtbDtuc3RhbGxlZXJkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSBpcyBiaWpnZXdlcmt0IG5hYXIgdmVyc2llICVzLic7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ0RlemUgbW9kdWxlIHZvZWd0IGZ1bmN0aWVzIHZvb3IgbWVlcnRhbGxpZ2hlaWQgdG9lIGFhbiB1dyBpbnN0YWxsYXRpZSB2YW4gQ01TIE1hZGUgU2ltcGxlJzsKJGxhbmdbJ2luZm9fc3VjY2VzcyddID0gJ0dlc2xhYWdkJzsKJGxhbmdbJ2luZm9fZXJyb3InXSA9ICdGb3V0JzsKJGxhbmdbJ29wdGlvbnN1cGRhdGVkJ10gPSAnT3B0aWVzIGJpamdld2Vya3QnOwokbGFuZ1snbW9kdWxlX21pc3NpbmcnXSA9ICdWZXJ3aWpkZXIgYWxzdHVibGllZnQgZGUgbW9kdWxlICVzJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdXZWV0IHUgemVrZXIgZGF0IHUgZGl0IHdpbHQgdmVyd2lqZGVyZW4/JzsKJGxhbmdbJ21vZHVsZV9kaXJfcGVybWlzc2lvbiddID0gJ0RlIG1vZHVsZW1hcCBtb2V0IGJlc2NocmlqZmJhYXIgemlqbi4gVmVyYW5kZXIgZGUgcmVjaHRlbiB2b29yIGRlemUgbW9kdWxlLic7CiRsYW5nWydnZW5lcmF0b3InXSA9ICdHZW5lcmF0b3IgJzsKJGxhbmdbJ3JlZ2VuZXJhdGUnXSA9ICdPcG5pZXV3IGdlbmVyZXJlbic7CiRsYW5nWyduYW1lJ10gPSAnTmFhbSc7CiRsYW5nWydhdHRhY2gnXSA9ICdLb3BwZWxlbic7CiRsYW5nWydlcnJvciddID0gJ0ZvdXQhJzsKJGxhbmdbJ2NyZWF0ZWRhdGUnXSA9ICdBYW5tYWFrZGF0dW0nOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnQmV3ZXJraW5nc2RhdHVtJzsKJGxhbmdbJ2FkbWluZGVzY3JpcHRpb24nXSA9ICcgJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ1RvZWdhbmcgZ2V3ZWlnZXJkLCBjb250cm9sZWVyIHV3IHJlY2h0ZW4uJzsKJGxhbmdbJ2Vycm9yX3JlbmFtZV9kaXInXSA9ICdIZXJub2VtZW4gdmFuIGRlIG1hcCBuaWV0IG1vZ2VsaWprIChyZWNodGVucHJvYmxlZW0/KSc7CiRsYW5nWydlcnJvcl9yZXBsYWNlX2ZpbGVzJ10gPSAnTW9kdWxlIGthbiBuaWV0IHdvcmRlbiBiZXdlcmt0LiBCZXdlcmsgZGV6ZSBoYW5kbWF0aWcuJzsKJGxhbmdbJ2Vycm9yX21vZHVsZV9leGlzdHMnXSA9ICdEZXplIG1vZHVsZSBiZXN0YWF0LiBWZXJ3aWpkZXIgZGUgbWFwIG9mIG1hYWsgb3BuaWV1dyBhYW4uJzsKJGxhbmdbJ2Vycm9yX3VuaWluc3RhbF9tb2R1bGUnXSA9ICdEZXplIG1vZHVsZSBiZXN0YWF0LiBWZXJ3aWpkZXIgaGV0Lic7CiRsYW5nWydpdGVtJ10gPSAnSXRlbSAnOwokbGFuZ1snaXRlbXMnXSA9ICdJdGVtcyAnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdWZWxkZGVmZW5pdGllJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ1ZlbGRkZWZlbml0aWVzJzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnU2phYmxvb24nOwokbGFuZ1sndGVtcGxhdGVzJ10gPSAnU2phYmxvbmVuJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnQ2F0ZWdvcmllJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdDYXRlZ29yaWUmZXVtbDtuJzsKJGxhbmdbJ29wdGlvbiddID0gJ09wdGllJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICdPcHRpZXMnOwokbGFuZ1snc3VibWl0J10gPSAnT3BzbGFhbic7CiRsYW5nWydwcmV2cGFnZSddID0gJzwgJzsKJGxhbmdbJ2l0ZW1fdGl0bGUnXSA9ICdUaXRlbCc7CiRsYW5nWydwcm9tcHRfaXRlbV90aXRsZSddID0gJ0l0ZW0gdGl0ZWwnOwokbGFuZ1snYWxpYXMnXSA9ICdBbGlhcyAnOwokbGFuZ1sndXJsJ10gPSAnVVJMJzsKJGxhbmdbJ2FjdGl2ZSddID0gJ0FjdGllZic7CiRsYW5nWydpdGVtX3RpdGxlX2VtcHR5J10gPSAnSXRlbXRpdGVsIGlzIGxlZWdnZWxhdGVuJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX2VtcHR5J10gPSAnVmVyZWlzdCB2ZWxkIGlzIGxlZWdnZWxhdGVuJzsKJGxhbmdbJ3Rvb19sb25nJ10gPSAnVmVsZHdhYXJkZSBvdmVyc2NocmlqZHQgbWF4aW1hYWwgdG9lZ2VzdGFuZSBsZW5ndGUnOwokbGFuZ1snYXBwcm92ZSddID0gJ1N0ZWwgc3RhdHVzIGluIG9wICYjMDM5O0FjdGllZiYjMDM5Oyc7CiRsYW5nWydyZXZlcnQnXSA9ICdTdGVsIHN0YXR1cyBpbiBvcCAmIzAzOTtJbmFjdGllZiYjMDM5Oyc7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+ICc7CiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAnTGFhdHN0IGJpamdld2Vya3QnOwokbGFuZ1sncGFnZSddID0gJ1BhZ2luYSc7CiRsYW5nWydwYWdlX29mJ10gPSAnUGFnaW5hICVzIHZhbiAlcyc7CiRsYW5nWydwYWdlX2xpbWl0J10gPSAnUGFnaW5hIGxpbWlldCc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICc8PCAnOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICc+ICc7CiRsYW5nWydpZCddID0gJ0lEJzsKJGxhbmdbJ3RpdGxlJ10gPSAnVGl0ZWwnOwokbGFuZ1snaW5jbHVkZV9jaGlsZHJlbiddID0gJ0NoaWxkcmVuIHRvZXZvZWdlbj8nOwokbGFuZ1snaGllcmFyY2h5J10gPSAnSGllcmFyY2hpZSc7CiRsYW5nWydzb3J0X2J5J10gPSAnU29ydGVyZW4gYmlqJzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICdTb3J0ZXJpbmdzdm9sZ29yZGUnOwokbGFuZ1snZGF0ZSddID0gJ0RhdHVtJzsKJGxhbmdbJ2RhdGVfZW5kJ10gPSAnRWluZGRhdHVtJzsKJGxhbmdbJ2ZpbHRlcnMnXSA9ICdGaWx0ZXJzICc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdBc2NlbmRpbmcnOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ0FmbG9wZW5kJzsKJGxhbmdbJ2FsbGNhdGVnb3JpZXMnXSA9ICdBbGxlIGNhdGVnb3JpZSZldW1sO24nOwokbGFuZ1snZnJvbSddID0gJ1Zhbic7CiRsYW5nWyd0byddID0gJ05hYXInOwokbGFuZ1sncG9zaXRpb24nXSA9ICdQb3NpdGllJzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnQWFubWFha2RhdHVtJzsKJGxhbmdbJ3NhdmVfb3JkZXInXSA9ICdWb2xnb3JkZSBvcHNsYWFuJzsKJGxhbmdbJ2VkaXRmaWVsZGRlZiddID0gJ0Jld2VyayB2ZWxkZGVmZW5pdGllJzsKJGxhbmdbJ2FkZGZpZWxkZGVmJ10gPSAnVmVsZGRlZmVuaXRpZSB0b2V2b2VnZW4nOwokbGFuZ1snZmllbGRkZWZfbmFtZSddID0gJ05hYW0nOwokbGFuZ1snZmllbGRkZWZfaGVscCddID0gJ051dHRpZ2UgdGlwJzsKJGxhbmdbJ2ZpZWxkZGVmX3R5cGUnXSA9ICdUeXBlICc7CiRsYW5nWydmaWVsZGRlZl9tYXhfbGVuZ3RoJ10gPSAnTWF4aW1hbGUgbGVuZ3RlJzsKJGxhbmdbJ2ZpZWxkZGVmX3JlcXVpcmVkJ10gPSAnVmVyZWlzdCc7CiRsYW5nWydmaWVsZGRlZl9mcm9udGVuZCddID0gJ0Zyb250IEVuZCAnOwokbGFuZ1snZmllbGRkZWZfZWRpdHZpZXcnXSA9ICdBbGxlZW4gd2VlcmdldmVuIGJpaiBiZXdlcmtlbic7CiRsYW5nWydmaWVsZGRlZl9maWx0ZXJfZnJvbnRlbmQnXSA9ICdWb2VnIGVlbiBmaWx0ZXIgdG9lIG9wIGRlIGZyb250ZW5kJzsKJGxhbmdbJ2ZpZWxkZGVmX2ZpbHRlcl9hZG1pbiddID0gJ1ZvZWcgaW4gZmlsdGVyIHRvZSBpbiBkZSBhZG1pbm9tZ2V2aW5nJzsKJGxhbmdbJ2ZpZWxkZGVmX3NlYXJjaGFibGUnXSA9ICdEb29yem9la2JhYXInOwokbGFuZ1snZXh0cmEnXSA9ICdFeHRyYSAnOwokbGFuZ1sndGV4dGJveCddID0gJ1Rla3N0aW52b2VyJzsKJGxhbmdbJ2NoZWNrYm94J10gPSAnQ2hlY2tib3ggJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnVGVrc3R2ZWxkJzsKJGxhbmdbJ3NlbGVjdF9kYXRlJ10gPSAnU2VsZWN0ZWVyIGRhdHVtJzsKJGxhbmdbJ3VwbG9hZF9maWxlJ10gPSAnVXBsb2FkIGJlc3RhbmQnOwokbGFuZ1snZHJvcGRvd24nXSA9ICdEcm9wZG93biAnOwokbGFuZ1snbW9kdWxlJ10gPSAnTW9kdWxlICc7CiRsYW5nWydzZWxlY3RfZGVmYXVsdCddID0gJy0tIFNlbGVjdGVlciAtLSc7CiRsYW5nWydzZWxlY3RfZmlsZSddID0gJ1NlbGVjdGVlciBiZXN0YW5kJzsKJGxhbmdbJ2NvbG9yX3BpY2tlciddID0gJ0tsZXVyZW5raWV6ZXInOwokbGFuZ1snbW9kdWxlX2xpbmsnXSA9ICdLb3BwZWxpbmcgbWV0IG1vZHVsZSc7CiRsYW5nWydmaWVsZGRlZl9uYW1lX2VtcHR5J10gPSAnTmFhbSB2YW4gZGUgdmVsZGRlZmVuaXRpZSBpcyBuaWV0IG9wZ2VnZXZlbic7CiRsYW5nWydmaWVsZGRlZl9uYW1lX2V4aXN0cyddID0gJ05hYW0gdmFuIGRlIHZlbGRkZWZlbml0aWUgYmVzdGFhdCBhbCByZWVkcyc7CiRsYW5nWydpbnZhbGlkJ10gPSAnVmVsZHdhYXJkZSBpcyBvbmdlbGRpZyc7CiRsYW5nWydkcm9wZG93bmZyb21tb2R1bGUnXSA9ICdEcm9wZG93biB2YW4gbW9kdWxlJzsKJGxhbmdbJ3N0YXRpYyddID0gJ1N0YXRpc2NoJzsKJGxhbmdbJ2Vycm9yX3VwbG9hZCddID0gJ1Byb2JsZWVtIG9udHN0YWFuIGJpaiBoZXQgdXBsb2FkZW4gdmFuIGhldCBiZXN0YW5kJzsKJGxhbmdbJ2Vycm9yX21rZGlyJ10gPSAnS2FuIGRlIG1hcCAlcyBuaWV0IGFhbm1ha2VuJzsKJGxhbmdbJ2Vycm9yX2ZpbGVzaXplJ10gPSAnRGUgdXBsb2FkIG92ZXJzY2hyaWpkdCBkZSBtYXhpbWFhbCB0b2VnZXN0YW5lIGdyb290dGUnOwokbGFuZ1snZXJyb3JfaW52YWxpZGZpbGV0eXBlJ10gPSAnS2FuIGRpdCBiZXN0YW5kc3R5cGUgbmlldCB1cGxvYWRlbic7CiRsYW5nWydlcnJvcl9tb3ZlZmlsZSddID0gJ0thbiBoZXQgYmVzdGFuZCAlcyBuaWV0IGFhbm1ha2VuJzsKJGxhbmdbJ2ludmFsaWR1cmwnXSA9ICdPbmdlbGRpZ2RlIFVSTC4nOwokbGFuZ1snbm9uZSddID0gJ0dlZW4nOwokbGFuZ1snZWRpdF9jYXRlZ29yeSddID0gJ0Jld2VyayBjYXRlZ29yaWUnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdWb2VnIGNhdGVnb3JpZSB0b2UnOwokbGFuZ1snY2F0ZWdvcnlfbmFtZSddID0gJ05hYW0gY2F0ZWdvcmllJzsKJGxhbmdbJ2NhdGVnb3J5X25hbWVfZW1wdHknXSA9ICdOYWFtIHZhbiBkZSBjYXRlZ29yaWUgaXMgbGVlZyBnZWxhdGVuJzsKJGxhbmdbJ2NhdGVnb3J5dXBkYXRlZCddID0gJ0NhdGVnb3JpZSBiaWpnZXdlcmt0Lic7CiRsYW5nWydjYXRlZ29yeWFkZGVkJ10gPSAnQ2F0ZWdvcmllIHRvZWdldm9lZ2QuJzsKJGxhbmdbJ2NhdGVnb3J5X3RlbXBsYXRlJ10gPSAnQ2F0ZWdvcmllIHNqYWJsb25lbic7CiRsYW5nWydzdW1tYXJ5X3RlbXBsYXRlJ10gPSAnU2FtZW52YXR0aW5nc2phYmxvbmVuJzsKJGxhbmdbJ2RldGFpbF90ZW1wbGF0ZSddID0gJ0RldGFpbCBzamFibG9uZW4nOwokbGFuZ1snZmlsdGVyX3RlbXBsYXRlJ10gPSAnRmlsdGVyIHNqYWJsb25lbic7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlcyddID0gJ1N0YW5kYWFyZCBzamFibG9uZW4nOwokbGFuZ1snZWRpdHRlbXBsYXRlJ10gPSAnQmV3ZXJrIHNqYWJsb29uJzsKJGxhbmdbJ2FkZHRlbXBsYXRlJ10gPSAnVm9lZyBzamFibG9vbiAlcyB0b2UnOwokbGFuZ1sndGVtcGxhdGVfbmFtZSddID0gJ1NqYWJsb29ubmFhbSc7CiRsYW5nWyd0ZW1wbGF0ZV9uYW1lX2VtcHR5J10gPSAnRGUgc2phYmxvb25uYWFtIGlzIGxlZWcnOwokbGFuZ1snZ2xvYmFsJ10gPSAnR2xvYmFhbCc7CiRsYW5nWydjaGFuZ2Vzc2F2ZWQnXSA9ICdVdyB3aWp6aWdpbmdlbiB6aWpuIHN1Y2Nlc3ZvbCBvcGdlc2xhZ2VuLic7CiRsYW5nWydiYWNrJ10gPSAnVGVydWcnOwokbGFuZ1sndXAnXSA9ICdPbWhvb2cnOwokbGFuZ1snZG93biddID0gJ09tbGFhZyc7CiRsYW5nWydlZGl0J10gPSAnQmV3ZXJrZW4nOwokbGFuZ1snZGVsZXRlJ10gPSAnVmVyd2lqZGVyZW4nOwokbGFuZ1snbm9zdWNoaWQnXSA9ICdHZWVuIGdlbGRpZyBJRCc7CiRsYW5nWydkZWxldGVkJ10gPSAnRGUgaXRlbShzKSB6aWpuIHN1Y2Nlc3ZvbCBvcGdlc2xhZ2VuLic7CiRsYW5nWydhZGQnXSA9ICdUb2V2b2VnZW4nOwokbGFuZ1snYWxpYXNfaW52YWxpZCddID0gJ0FsaWFzIGlzIG9uZ2VsZGlnLiBIZXQgbW9ldCBlZW4gbmFhbSB6aWpuIGRpZSBnZWxkaWcgaXMgYWxzIFBIUCB2YXJpYWJlbGUnOwokbGFuZ1snZW1wdHlfcGFyYW0nXSA9ICdEZSBwYXJhbWV0ZXIgd2FzIGxlZWcuIFByb2JlZXIgb3BuaWV1dy4nOwokbGFuZ1snb3BlcmF0aW9uX2NhbmNlbGxlZCddID0gJ09wZXJhdGllIGdlYW5udWxlZXJkJzsKJGxhbmdbJ29wZXJhdGlvbl9jb21wbGV0ZSddID0gJ09wZXJhdGllIHVpdGdldm9lcmQnOwokbGFuZ1snb2YnXSA9ICd2YW4nOwokbGFuZ1snc2VsZWN0X2FsbCddID0gJ1NlbGVjdGVlciBhbGxlcyc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnU2VsZWN0ZWVyIGVlbic7CiRsYW5nWydzZXRkcmFmdCddID0gJ0luc3RlbGxlbiBhbHMgaW5hY3RpZWYnOwokbGFuZ1snc2V0cHVibGlzaGVkJ10gPSAnSW5zdGVsbGVuIGFscyBhY3RpZWYnOwokbGFuZ1snd2l0aF9zZWxlY3RlZCddID0gJ01ldCBnZXNlbGVjdGVlcmRlbic7CiRsYW5nWydnbyddID0gJ0dhYW4nOwokbGFuZ1snbm90aGluZ19zZWxlY3RkJ10gPSAnTmlldHMgZ2VzZWxlY3RlZXJkJzsKJGxhbmdbJ2ZpbHRlciddID0gJ0ZpbHRlciAnOwokbGFuZ1snbW9kZSddID0gJ01vZHVzJzsKJGxhbmdbJ3NpbXBsZSddID0gJ1NpbXBlbCc7CiRsYW5nWydhZHZhbmNlZCddID0gJ0dlYXZhbmNlZXJkJzsKJGxhbmdbJ3Byb21wdF9mcmllbmRseW5hbWUnXSA9ICdWcmllbmRlbGlqa2UgbmFhbSBtb2R1bGUnOwokbGFuZ1sncHJvbXB0X2l0ZW1fc2luZ3VsYXInXSA9ICdFbmtlbHZvdWRpZyBpdGVtJzsKJGxhbmdbJ3Byb21wdF9pdGVtX3BsdXJhbCddID0gJ01lZXJ2b3VkaWcgaXRlbSc7CiRsYW5nWydwcm9tcHRfdXJsX3ByZWZpeCddID0gJ1VSTCBQcmVmaXggJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0X2FjdGlvbl9wYXJhbXMnXSA9ICdTdGFuZGFhcmQgcGFyYW1ldGVycyB2b29yIHN0YW5kYWFyZCBhY3RpZSc7CiRsYW5nWydwcm9tcHRfZGV0YWlsX2FjdGlvbl9wYXJhbXMnXSA9ICdTdGFuZGFhcmQgcGFyYW1ldGVycyB2b29yIGRldGFpbCBhY3RpZSc7CiRsYW5nWydwcm9tcHRfdGl0bGVfcGFyYW1fZm9yX2NhY2hlJ10gPSAnVGl0ZWxwYXJhbWV0ZXIgdm9vciBoZXQgY2FjaGVuIHZhbiByZXN1bHRhdGVuJzsKJGxhbmdbJ3Byb21wdF9kaXNwbGF5X2lubGluZSddID0gJ0dlZWYgZGV0YWlscyBpbmxpbmUgd2Vlcic7CiRsYW5nWydwcm9tcHRfbGF6eWxvYWRpbmcnXSA9ICdMYXp5IGxvYWRpbmcgKGluZGllbiB3ZSBkZXplIG1vZHVsZSBuaWV0IG5vZGlnIGhlYmJlbiBtZXQgZWVuIGdlZGV0YWlsbGVlcmRlIGxpbmsgb3AgZGUgZnJvbnRlbmQpJzsKJGxhbmdbJ3Byb21wdF9oYXNfYWRtaW4nXSA9ICdIZWVmdCBhZG1pbj8nOwokbGFuZ1sncHJvbXB0X3VzZXJncm91cF9kZXBlbmRlbmNlJ10gPSAnR2VicnVpa2Vyc2dyb2VwIGFmaGFua2VsaWpraGVpZCc7CiRsYW5nWydwcm9tcHRfaXRlbV9kZXRhaWxfcmV0dXJuaWQnXSA9ICdHZWRldGFpbGxlZXJkZSByZXR1cm4gSUQnOwokbGFuZ1sncHJvbXB0X2l0ZW1fY2F0ZWdvcnlfcmV0dXJuaWQnXSA9ICdDYXRlZ29yaWUgcmV0dXJuIElEJzsKJGxhbmdbJ3Byb21wdF9jdXN0b21fZmllbGRzX2RlZmF1bHQnXSA9ICdTdGFuZGFhcmQgYWFuZ2VwYXN0ZSB2ZWxkZW4nOwokbGFuZ1sncHJvbXB0X2l0ZW1fY2F0ZWdvcnlfZWRpdCddID0gJ0Jld2VyayBjYXRlZ29yaWUnOwokbGFuZ1sncHJvbXB0X3JlY3Vyc2l2ZSddID0gJ0Jld2VyayByZWN1cnNpdmUnOwokbGFuZ1sncHJvbXB0X2l0ZW1fZGF0ZV9lZGl0J10gPSAnQmV3ZXJrIGRhdHVtJzsKJGxhbmdbJ3Byb21wdF9pdGVtX2RhdGVfZW5kX2VkaXQnXSA9ICdCZXdlcmsgZWluZGRhdHVtJzsKJGxhbmdbJ3Byb21wdF9pdGVtX2FsaWFzX2VkaXQnXSA9ICdCZXdlcmsgYWxpYXMnOwokbGFuZ1sncHJvbXB0X2l0ZW1fdGl0bGVfZWRpdCddID0gJ0Jld2VyayB0aXRlbCc7CiRsYW5nWydwcm9tcHRfaXRlbV91cmxfZWRpdCddID0gJ0Jld2VyayBVUkwnOwokbGFuZ1sncHJvbXB0X2ZpbHRlcl9kYXRlJ10gPSAnRmlsdGVyZGF0dW0nOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlfc29ydG9yZGVyJ10gPSAnU29ydGVlcnZvbGdvcmRlJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5X3NvcnRpbmcnXSA9ICdTb3J0ZXJlbic7CiRsYW5nWydwcm9tcHRfc3VtbWFyeV9wYWdlbGltaXQnXSA9ICdQYWdpbmFsaW1pZXQnOwokbGFuZ1sncHJvbXB0X2NhdGVnb3J5X2V4dHJhX2xhYmVsJ10gPSAnRXh0cmEgY2F0b2dvcmllIGxhYmVsJzsKJGxhbmdbJ3ZpZXdhYmxlX2ZpZWxkcyddID0gJ1ppY2h0YmFyZSB2ZWxkZW4nOwokbGFuZ1sndmlldyddID0gJ1dlZXJnZXZlbic7CiRsYW5nWydyZW9yZGVyJ10gPSAnSGVyc2NoaWtrZW4nOwokbGFuZ1snc2VhcmNoJ10gPSAnWm9la2VuJzsKJGxhbmdbJ3JlaW5kZXgnXSA9ICdIZXJpbmRleGVlcic7CiRsYW5nWydwcm9tcHRfc2VhcmNoYWJsZSddID0gJ0Rvb3J6b2VrYmFhcic7CiRsYW5nWydwcm9tcHRfc2VhcmNoX2RhdGVfZW5kJ10gPSAnRGF0dW0gZWluZGUgdm9vciB6b2VrZW4nOwokbGFuZ1snc3VuZGF5J10gPSAnWm9uZGFnJzsKJGxhbmdbJ21vbmRheSddID0gJ01hYW5kYWcnOwokbGFuZ1sndHVlc2RheSddID0gJ0RpbnNkYWcnOwokbGFuZ1snd2VkbmVzZGF5J10gPSAnV29lbnNkYWcnOwokbGFuZ1sndGh1cnNkYXknXSA9ICdEb25kZXJkYWcnOwokbGFuZ1snZnJpZGF5J10gPSAnVnJpamRhZyc7CiRsYW5nWydzYXR1cmRheSddID0gJ1phdGVyZGFnJzsKJGxhbmdbJ3JlY3VyX3BlcmlvZCddID0gJ1JlY3VyIHBlcmlvZGUnOwokbGFuZ1snd2Vla2RheXMnXSA9ICdXZXJrZGFnZW4nOwokbGFuZ1snbm8nXSA9ICdHZWVuJzsKJGxhbmdbJ2RhaWx5J10gPSAnRGFnZWxpamtzJzsKJGxhbmdbJ3BsdXJhbF9kYWlseSddID0gJ0RhZ2VuJzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIE5vdmVtYmVyLCAyMDExIC0gIGluaXQgcmVsZWFzZTwvbGk+PC91bD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+TW9kdWxlIGdlbmVyYXRvciBsZXRzIHlvdSBjcmVhdGUgYSBsaXN0IHRoZSBtb2R1bGVzIGFzIE5ld3MsIFByb2R1Y3RzIGF0Yy4gSW5kaXZpZHVhbCBtb2R1bGVzLCB5b3UgY2FuIGxpbmsgYmV0d2VlbiB0aGVtLiAgWW91IGNhbiBjcmVhdGUgYSBtb2R1bGUgUGVvcGxlLCBHZW5kZXIgYW5kIFR5cGUgb2YgZW1wbG95bWVudCBhbmQgbGluayBiZXR3ZW4gdGhlbS48L3A+DQo8cD5FYWNoIG1vZHVsZSBpbmNsdWRlcyB0aGUgYWJpbGl0eSB0byBjcmVhdGVkIGNhdGVnb3JpZXMsIGN1c3RvbSBmaWVsZHMgIGFuZCBlZGl0ZWQgYSBudW1iZXIgb2Ygc2V0dGluZ3MuPC9wPg0KPHA+WW91IGNhbiB1c2UgdGhlIGxpc3QgdGVtcGxhdGVzICwgY2F0ZWdvcmllcyB0ZW1wbGF0ZXMgLCBmaWx0ZXIgdGVtcGxhdGVzLCBvciBkZXRhaWwgdGVtcGxhdGVzIGFzIGl0IGFscmVhZHkga25vd24gbW9kdWxlcyBmcm9tIE5ld3MsIFByb2R1Y3RzIGV0Yy48L3A+JzsKJGxhbmdbJ2V2ZW50ZGVzYy1JdGVtQWRkZWQnXSA9ICdTZW50IHdoZW4gYW4gaXRlbSBpcyBhZGRlZC4nOwokbGFuZ1snZXZlbnRoZWxwLUl0ZW1BZGRlZCddID0gJzxwPlNlbnQgd2hlbiBhbiBpdGVtIGlzIGFkZGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7aXRlbV9pZFwmcXVvdDsgLSBJZCBvZiB0aGUgaXRlbSBpdGVtPC9saT4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfaWRcJnF1b3Q7IC0gSWQgb2YgdGhlIGNhdGVnb3J5IGZvciB0aGlzIGl0ZW08L2xpPg0KPGxpPlwmcXVvdDt0aXRsZVwmcXVvdDsgLSBUaXRsZSBvZiB0aGUgaXRlbTwvbGk+DQo8bGk+XCZxdW90O2FjdGl2ZSZxdW90OyAtIFN0YXR1cyBvZiB0aGUgaXRlbSAoJnF1b3Q7MCZxdW90OyBvciAmcXVvdDsxJnF1b3Q7KTwvbGk+DQo8bGk+XCZxdW90O2l0ZW1fZGF0ZSZxdW90OyAtIERhdGUgdGhlIGl0ZW0gc2hvdWxkIHN0YXJ0IGJlaW5nIGRpc3BsYXllZDwvbGk+DQo8bGk+XCZxdW90O2l0ZW1fZGF0ZV9lbmRcJnF1b3Q7IC0gRGF0ZSB0aGUgaXRlbSBzaG91bGQgc3RvcCBiZWluZyBkaXNwbGF5ZWQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGRlc2MtSXRlbUVkaXRlZCddID0gJ1NlbnQgd2hlbiBhbiBpdGVtIGlzIGVkaXRlZC4nOwokbGFuZ1snZXZlbnRoZWxwLUl0ZW1FZGl0ZWQnXSA9ICc8cD5TZW50IHdoZW4gYW4gaXRlbSBpcyBlZGl0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtpdGVtX2lkXCZxdW90OyAtIElkIG9mIHRoZSBpdGVtIGl0ZW08L2xpPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9pZFwmcXVvdDsgLSBJZCBvZiB0aGUgY2F0ZWdvcnkgZm9yIHRoaXMgaXRlbTwvbGk+DQo8bGk+XCZxdW90O3RpdGxlXCZxdW90OyAtIFRpdGxlIG9mIHRoZSBpdGVtPC9saT4NCjxsaT5cJnF1b3Q7YWN0aXZlJnF1b3Q7IC0gU3RhdHVzIG9mIHRoZSBpdGVtICgmcXVvdDswJnF1b3Q7IG9yICZxdW90OzEmcXVvdDspPC9saT4NCjxsaT5cJnF1b3Q7aXRlbV9kYXRlJnF1b3Q7IC0gRGF0ZSB0aGUgaXRlbSBzaG91bGQgc3RhcnQgYmVpbmcgZGlzcGxheWVkPC9saT4NCjxsaT5cJnF1b3Q7aXRlbV9kYXRlX2VuZFwmcXVvdDsgLSBEYXRlIHRoZSBpdGVtIHNob3VsZCBzdG9wIGJlaW5nIGRpc3BsYXllZDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50ZGVzYy1JdGVtRGVsZXRlZCddID0gJ1NlbnQgd2hlbiBhbiBpdGVtIGlzIGRlbGV0ZWQuJzsKJGxhbmdbJ2V2ZW50aGVscC1JdGVtRGVsZXRlZCddID0gJzxwPlNlbnQgd2hlbiBhbiBpdGVtIGlzIGRlbGV0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtpdGVtX2lkXCZxdW90OyAtIElkIG9mIHRoZSBpdGVtIGl0ZW08L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGRlc2MtQ2F0ZWdvcnlBZGRlZCddID0gJ1NlbnQgd2hlbiBhIGNhdGVnb3J5IGlzIGFkZGVkLic7CiRsYW5nWydldmVudGhlbHAtQ2F0ZWdvcnlBZGRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhdGVnb3J5IGlzIGFkZGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfaWRcJnF1b3Q7IC0gSWQgb2YgdGhlIGl0ZW0gY2F0ZWdvcnk8L2xpPg0KPGxpPlwmcXVvdDtuYW1lXCZxdW90OyAtIE5hbWUgb2YgdGhlIGl0ZW0gY2F0ZWdvcnk8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGRlc2MtQ2F0ZWdvcnlFZGl0ZWQnXSA9ICdTZW50IHdoZW4gYSBjYXRlZ29yeSBpcyBlZGl0ZWQuJzsKJGxhbmdbJ2V2ZW50aGVscC1DYXRlZ29yeUVkaXRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhdGVnb3J5IGlzIGVkaXRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2NhdGVnb3J5X2lkXCZxdW90OyAtIElkIG9mIHRoZSBpdGVtIGNhdGVnb3J5PC9saT4NCjxsaT5cJnF1b3Q7bmFtZVwmcXVvdDsgLSBOYW1lIG9mIHRoZSBpdGVtIGNhdGVnb3J5PC9saT4NCjxsaT5cJnF1b3Q7b3JpZ25hbWVcJnF1b3Q7IC0gVGhlIG9yaWdpbmFsIG5hbWUgb2YgdGhlIGl0ZW0gY2F0ZWdvcnk8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGRlc2MtQ2F0ZWdvcnlEZWxldGVkJ10gPSAnU2VudCB3aGVuIGEgY2F0ZWdvcnkgaXMgZGVsZXRlZC4nOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5RGVsZXRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhdGVnb3J5IGlzIGRlbGV0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9pZFwmcXVvdDsgLSBJZCBvZiB0aGUgZGVsZXRlZCBjYXRlZ29yeSA8L2xpPg0KPGxpPlwmcXVvdDtuYW1lXCZxdW90OyAtIE5hbWUgb2YgdGhlIGRlbGV0ZWQgY2F0ZWdvcnk8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGRlc2MtSXRlbXNSZW9yZGVyZWQnXSA9ICdTZW50IHdoZW4gaXRlbXMgYXJlIHJlb3JkZXJlZC4nOwokbGFuZ1snZXZlbnRoZWxwLUl0ZW1zUmVvcmRlcmVkJ10gPSAnPHA+U2VudCB3aGVuIGl0ZW1zIGlzIHJlb3JkZXJlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2NhdGVnb3J5X2lkXCZxdW90OyAtIElkIG9mIHRoZSBkZWxldGVkIGNhdGVnb3J5IDwvbGk+DQo8bGk+XCZxdW90O25hbWVcJnF1b3Q7IC0gTmFtZSBvZiB0aGUgZGVsZXRlZCBjYXRlZ29yeTwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50ZGVzYy1DYXRlZ29yaWVzUmVvcmRlcmVkJ10gPSAnU2VudCB3aGVuIGNhdGVnb3JpZXMgYXJlIHJlb3JkZXJlZC4nOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3JpZXNSZW9yZGVyZWQnXSA9ICc8cD5TZW50IHdoZW4gY2F0ZWdvcmllcyBhcmUgcmVvcmRlcmVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfaWRcJnF1b3Q7IC0gSWQgb2YgdGhlIGRlbGV0ZWQgY2F0ZWdvcnkgPC9saT4NCjxsaT5cJnF1b3Q7bmFtZVwmcXVvdDsgLSBOYW1lIG9mIHRoZSBkZWxldGVkIGNhdGVnb3J5PC9saT4NCjwvdWw+DQonOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xNjkyMjY2OTc3LjEzMjEzODc3NDcuMTMyMTM4Nzc0Ny4xMzIxMzg3NzQ3LjEnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMzIxMzg3NzQ3LjEuMS51dG1jY249KGRpcmVjdCl8dXRtY3NyPShkaXJlY3QpfHV0bWNtZD0obm9uZSknOwokbGFuZ1sncWNhJ10gPSAnUDAtMTQwODkyNjY2MS0xMzA5NTI4NDc1MjU2JzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.generator_fields.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBNb2R1bGVHZW5lcmF0b3IgZm9yIENNUyBNYWRlIFNpbXBsZSAoQGt1em1hbnkpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovKioKICogRGVzY3JpcHRpb24gb2YgY2xhc3MKICoKICogQGF1dGhvciBAa3V6bWFueQogKi8KCmNsYXNzIGdlbmVyYXRvcl9maWVsZHMgewoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHsKICAgICAgICAKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9maWVsZHNfZm9yX2ZpbHRlcnMoJG1vZCwgJGJsb2NrdHlwZXMgPSBhcnJheSgpLCAkc2VjdGlvbiA9ICdpdGVtcycpIHsKICAgICAgICAkZmllbGRzID0gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfZmllbGRfZGVmcygkbW9kLCBudWxsLCBudWxsLCBudWxsLCAkc2VjdGlvbik7CiAgICAgICAgaWYgKCEkZmllbGRzKQogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAkY3VzdG9tX2ZsZHMgPSBhcnJheSgpOwogICAgICAgIGZvcmVhY2ggKCRmaWVsZHMgYXMgJHJvdykgewogICAgICAgICAgICBpZiAoaW5fYXJyYXkoJHJvd1sidHlwZSJdLCAkYmxvY2t0eXBlcykpCiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgJGN1c3RvbV9mbGRzWyRyb3dbJ2ZpZWxkZGVmX2lkJ11dID0gJHJvdzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRjdXN0b21fZmxkczsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9maWVsZHNfdmFscygkbW9kLCAkaXRlbV9pZCA9IG51bGwsICRwYXJhbXMgPSBhcnJheSgpKSB7CgogICAgICAgIC8vIHJldHVybiBlbXB0eSBhcnJheQogICAgICAgIGlmICgkaXRlbV9pZCA9PSBudWxsKQogICAgICAgICAgICByZXR1cm4gYXJyYXkoKTsKCiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0REIoKTsKICAgICAgICAkZmllbGR2YWxzID0gYXJyYXkoKTsKICAgICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkdmFsIFdIRVJFIGl0ZW1faWQgPSA/JzsKICAgICAgICAkcmVzdWx0ID0gJGRiLT5HZXRBcnJheSgkcXVlcnksIGFycmF5KCRpdGVtX2lkKSk7CiAgICAgICAgaWYgKGlzX2FycmF5KCRyZXN1bHQpKSB7CiAgICAgICAgICAgIGZvcmVhY2ggKCRyZXN1bHQgYXMgJHJvdykgewogICAgICAgICAgICAgICAgJGZpZWxkdmFsc1skcm93WydmaWVsZGRlZl9pZCddXSA9ICRyb3dbJ3ZhbHVlJ107CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIHByb2NjZXMgdmFsdWVzIGZyb20gcGFyYW1zCiAgICAgICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2N1c3RvbWZpZWxkJ10pKSB7CiAgICAgICAgICAgIGZvcmVhY2ggKCRwYXJhbXNbJ2N1c3RvbWZpZWxkJ10gYXMgJGZsZGlkID0+ICR2YWx1ZSkgewogICAgICAgICAgICAgICAgJGZpZWxkdmFsc1skZmxkaWRdID0gaXNfYXJyYXkoJHZhbHVlKSA/IGVtcHR5KCR2YWx1ZSkgPyAnJyA6IGltcGxvZGUoJywnLCAkdmFsdWUpICA6ICR2YWx1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRmaWVsZHZhbHM7CiAgICB9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.generator_filters.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBNb2R1bGVHZW5lcmF0b3IgZm9yIENNUyBNYWRlIFNpbXBsZSAoQGt1em1hbnkpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovKioKICogRGVzY3JpcHRpb24gb2YgY2xhc3MKICoKICogQGF1dGhvciBAa3V6bWFueQogKi8KCmNsYXNzIGdlbmVyYXRvcl9maWx0ZXJzIHsKCiAgICBwcml2YXRlICRfdHlwZTsKICAgIHByaXZhdGUgJF9tb2Q7CiAgICBwcml2YXRlICRfaWQ7CiAgICBwcml2YXRlICRfaW5zdGFuY2UgPSBudWxsOwogICAgcHVibGljICRjdXN0b21fZmllbGRzID0gYXJyYXkoKTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGlkID0gbnVsbCwgJG1vZCwgJHR5cGUgPSAnYWRtaW4nKSB7CgogICAgICAgIGlmICgkdGhpcy0+X2luc3RhbmNlICE9IG51bGwgJiYgaXNfb2JqZWN0KCR0aGlzLT5faW5zdGFuY2UpKQogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9pbnN0YW5jZTsKCiAgICAgICAgJHRoaXMtPl9pZCA9ICRpZDsKICAgICAgICAkdGhpcy0+X3R5cGUgPSAkdHlwZTsKICAgICAgICAkdGhpcy0+X21vZCA9ICRtb2Q7CiAgICAgICAgJHRoaXMtPl9pbnN0YW5jZSA9ICR0aGlzOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBwcm9jZXNzX2N1c3RvbV9maWVsZHMoJGJsb2NrdHlwZXMgPSBhcnJheSgpLCAkY3VzdG9tX2ZsZHMgPSBhcnJheSgpKSB7CgogICAgICAgIGlmIChpc19hcnJheSgkY3VzdG9tX2ZsZHMpICYmIGVtcHR5KCRjdXN0b21fZmxkcykpCiAgICAgICAgICAgICRjdXN0b21fZmxkcyA9IGdlbmVyYXRvcl9maWVsZHM6OmdldF9maWVsZHNfZm9yX2ZpbHRlcnMoJHRoaXMtPl9tb2QsICRibG9ja3R5cGVzKTsKCgoKICAgICAgICBpZiAoJGN1c3RvbV9mbGRzKSB7CiAgICAgICAgICAgIGZvcmVhY2ggKCRjdXN0b21fZmxkcyBhcyAkY3VzdG9tX2ZsZCA9PiAkc2V0dGluZykgewogICAgICAgICAgICAgICAgLy8gZ2V0IGV4dHJhIGNvbW1hbmRzCiAgICAgICAgICAgICAgICAkaW5zdHJ1Y3Rpb25zID0gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfZXh0cmEoJGN1c3RvbV9mbGRzWyRjdXN0b21fZmxkXVsnZXh0cmEnXSwgJHRoaXMtPl9tb2QpOwoKICAgICAgICAgICAgICAgIHN3aXRjaCAoJHNldHRpbmdbJ3R5cGUnXSkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3RleHRib3gnOgogICAgICAgICAgICAgICAgICAgICAgICAkY3VzdG9tX2ZsZHNbJGN1c3RvbV9mbGRdWydzaXplJ10gPSBnZW5lcmF0b3JfdG9vbHM6OmdldF9leHRyYV9zaXplKCRpbnN0cnVjdGlvbnMpOwogICAgICAgICAgICAgICAgICAgICAgICAkY3VzdG9tX2ZsZHNbJGN1c3RvbV9mbGRdWydtYXhfbGVuZ3RoJ10gPSBnZW5lcmF0b3JfdG9vbHM6OmdldF9leHRyYV9tYXhfbGVuZ3RoKCRpbnN0cnVjdGlvbnMpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZHJvcGRvd24nOgogICAgICAgICAgICAgICAgICAgICAgICAkY3VzdG9tX2ZsZHNbJGN1c3RvbV9mbGRdWydvcHRpb25zJ10gPSBnZW5lcmF0b3JfdG9vbHM6OmdldF9leHRyYV9vcHRpb25zKCRpbnN0cnVjdGlvbnMpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZHJvcGRvd25mcm9tbW9kdWxlJzoKICAgICAgICAgICAgICAgICAgICAgICAgJGN1c3RvbV9mbGRzWyRjdXN0b21fZmxkXVsnb3B0aW9ucyddID0gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfZXh0cmFfbW9kdWxlb3B0aW9ucygkaW5zdHJ1Y3Rpb25zLCAkbW9kKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ21vZHVsZSc6CiAgICAgICAgICAgICAgICAgICAgICAgICRjdXN0b21fZmxkc1skY3VzdG9tX2ZsZF1bJ3NlbGVjdF9kZWZhdWx0J10gPSBnZW5lcmF0b3JfdG9vbHM6OmdldF9leHRyYV9zZWxlY3RkZWZhdWx0KCRpbnN0cnVjdGlvbnMpOwogICAgICAgICAgICAgICAgICAgICAgICAkY3VzdG9tX2ZsZHNbJGN1c3RvbV9mbGRdWydtdWx0aXBsZSddID0gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfZXh0cmFfbXVsdGlwbGUoJGluc3RydWN0aW9ucyk7CiAgICAgICAgICAgICAgICAgICAgICAgICRjdXN0b21fZmxkc1skY3VzdG9tX2ZsZF1bJ3BhcmFtcyddID0gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfZXh0cmFfbW9kdWxlcGFyYW1zKCRpbnN0cnVjdGlvbnMpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbW9kdWxlX2xpbmsnOgogICAgICAgICAgICAgICAgICAgICAgICAvLyRjdXN0b21fZmxkc1skY3VzdG9tX2ZsZF1bJ2xpbmsnXSA9ICRpbnN0cnVjdGlvbnNbMF07CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICBjYXNlICdjb2xvcl9waWNrZXInOgogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICAgICAgY2FzZSAncGFnZSc6CiAgICAgICAgICAgICAgICAgICAgICAgICRjdXN0b21fZmxkc1skY3VzdG9tX2ZsZF1bJ29wdGlvbnMnXSA9IGdlbmVyYXRvcl90b29sczo6Z2V0X2V4dHJhX3BhZ2UoJGluc3RydWN0aW9ucyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICBjYXNlICdzdGF0aWMnOgoKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3RhYic6CgogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnY2hlY2tib3gnOgoKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3RleHRhcmVhJzoKICAgICAgICAgICAgICAgICAgICAgICAgJGN1c3RvbV9mbGRzWyRjdXN0b21fZmxkXVsnY29scyddID0gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfZXh0cmFfY29scygkaW5zdHJ1Y3Rpb25zKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGN1c3RvbV9mbGRzWyRjdXN0b21fZmxkXVsncm93cyddID0gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfZXh0cmFfcm93cygkaW5zdHJ1Y3Rpb25zKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGN1c3RvbV9mbGRzWyRjdXN0b21fZmxkXVsnbWF4X2xlbmd0aCddID0gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfZXh0cmFfbWF4X2xlbmd0aCgkaW5zdHJ1Y3Rpb25zKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGN1c3RvbV9mbGRzWyRjdXN0b21fZmxkXVsnd3lzaXd5ZyddID0gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfZXh0cmFfd3lzaXd5ZygkaW5zdHJ1Y3Rpb25zKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3NlbGVjdF9kYXRlJzoKICAgICAgICAgICAgICAgICAgICAgICAgJGN1c3RvbV9mbGRzWyRjdXN0b21fZmxkXVsnc2l6ZSddID0gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfZXh0cmFfc2l6ZSgkaW5zdHJ1Y3Rpb25zKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGN1c3RvbV9mbGRzWyRjdXN0b21fZmxkXVsnbWF4X2xlbmd0aCddID0gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfZXh0cmFfbWF4X2xlbmd0aCgkaW5zdHJ1Y3Rpb25zKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGN1c3RvbV9mbGRzWyRjdXN0b21fZmxkXVsnZGF0ZWZvcm1hdCddID0gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfZXh0cmFfZGF0ZV9mb3JtYXQoJGluc3RydWN0aW9ucyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICBjYXNlICd1cGxvYWRfZmlsZSc6CiAgICAgICAgICAgICAgICAgICAgICAgICRjdXN0b21fZmxkc1skY3VzdG9tX2ZsZF1bJ2FsbG93J10gPSBnZW5lcmF0b3JfdG9vbHM6OmdldF9leHRyYV9hbGxvdygkaW5zdHJ1Y3Rpb25zKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3NlbGVjdF9maWxlJzoKICAgICAgICAgICAgICAgICAgICAgICAgJGN1c3RvbV9mbGRzWyRjdXN0b21fZmxkXVsnYWxsb3cnXSA9IGdlbmVyYXRvcl90b29sczo6Z2V0X2V4dHJhX2FsbG93KCRpbnN0cnVjdGlvbnMpOwogICAgICAgICAgICAgICAgICAgICAgICAkY3VzdG9tX2ZsZHNbJGN1c3RvbV9mbGRdWydkaXInXSA9IGdlbmVyYXRvcl90b29sczo6Z2V0X2V4dHJhX2RpcigkaW5zdHJ1Y3Rpb25zKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGN1c3RvbV9mbGRzWyRjdXN0b21fZmxkXVsnZXhjbHVkZV9wcmVmaXgnXSA9IGdlbmVyYXRvcl90b29sczo6Z2V0X2V4dHJhX2V4Y2x1ZGVfcHJlZml4KCRpbnN0cnVjdGlvbnMpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkdGhpcy0+Y3VzdG9tX2ZpZWxkcyA9ICRjdXN0b21fZmxkczsKICAgICAgICByZXR1cm4gJHRoaXMtPmN1c3RvbV9maWVsZHM7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdlbmVyYXRlKCRpdGVtX2lkID0gbnVsbCwgJHBhcmFtcyA9IGFycmF5KCksICRmaWVsZHZhbHMgPSBhcnJheSgpLCAkZnJvbnRlbmQgPSBudWxsKSB7CgogICAgICAgIGlmICghJHRoaXMtPmN1c3RvbV9maWVsZHMpCiAgICAgICAgICAgIHJldHVybjsKCiAgICAgICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwoKICAgICAgICAkY3VzdG9tX2ZsZHNfb2JqID0gYXJyYXkoKTsKCiAgICAgICAgJGlkID0gJHRoaXMtPl9pZDsKICAgICAgICAkbW9kID0gJHRoaXMtPl9tb2Q7CgogICAgICAgIGlmIChlbXB0eSgkZmllbGR2YWxzKSkKICAgICAgICAgICAgJGZpZWxkdmFscyA9IGdlbmVyYXRvcl9maWVsZHM6OmdldF9maWVsZHNfdmFscygkbW9kLCAkaXRlbV9pZCwgJHBhcmFtcyk7CgoKICAgICAgICBmb3JlYWNoICgkdGhpcy0+Y3VzdG9tX2ZpZWxkcyBhcyAkY3VzdG9tX2ZsZCkgewogICAgICAgICAgICBpZiAoISRjdXN0b21fZmxkWydmaWVsZGRlZl9pZCddKQogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICRvYmogPSBuZXcgU3RkQ2xhc3MoKTsKICAgICAgICAgICAgJG5hbWUgPSAnY3VzdG9tZmllbGRbJyAuICRjdXN0b21fZmxkWydmaWVsZGRlZl9pZCddIC4gJ10nOwogICAgICAgICAgICAkb2JqLT5maWVsZGRlZl9pZCA9ICRjdXN0b21fZmxkWydmaWVsZGRlZl9pZCddOwogICAgICAgICAgICAkb2JqLT5wcm9tcHQgPSAoJGN1c3RvbV9mbGRbJ3JlcXVpcmVkJ10gPyAnKicgOiAnJykgLiAkY3VzdG9tX2ZsZFsnbmFtZSddOwogICAgICAgICAgICAkb2JqLT5sYWJlbCA9ICRjdXN0b21fZmxkWyduYW1lJ107CiAgICAgICAgICAgICRvYmotPmFsaWFzID0gJGN1c3RvbV9mbGRbJ2FsaWFzJ107CiAgICAgICAgICAgICRvYmotPmVkaXR2aWV3ID0gJGN1c3RvbV9mbGRbJ2VkaXR2aWV3J107CiAgICAgICAgICAgICRvYmotPm5hbWUgPSAkaWQgLiAkY3VzdG9tX2ZsZFsnYWxpYXMnXTsKICAgICAgICAgICAgJG9iai0+dHlwZSA9ICRjdXN0b21fZmxkWyd0eXBlJ107CiAgICAgICAgICAgICR2YWx1ZSA9IChpc3NldCgkZmllbGR2YWxzWyRjdXN0b21fZmxkWydmaWVsZGRlZl9pZCddXSkgPyAkZmllbGR2YWxzWyRjdXN0b21fZmxkWydmaWVsZGRlZl9pZCddXSA6ICcnKTsKICAgICAgICAgICAgJG9iai0+aXRlbV9pZCA9ICRpdGVtX2lkOwogICAgICAgICAgICAkb2JqLT52YWx1ZSA9ICR2YWx1ZTsKICAgICAgICAgICAgJG9iai0+aGVscCA9ICRjdXN0b21fZmxkWydoZWxwJ107CiAgICAgICAgICAgICRvYmotPmV4dHJhID0gJGN1c3RvbV9mbGRbJ2V4dHJhJ107CiAgICAgICAgICAgICRvYmotPmZpbHRlciA9ICRpZCAuICdmaWx0ZXJfJyAuICRjdXN0b21fZmxkWydmaWVsZGRlZl9pZCddIC4gJ19lcXVhbCc7CiAgICAgICAgICAgIHN3aXRjaCAoJGN1c3RvbV9mbGRbJ3R5cGUnXSkgewogICAgICAgICAgICAgICAgY2FzZSAndGV4dGJveCc6CiAgICAgICAgICAgICAgICAgICAgJHNpemUgPSAhZW1wdHkoJGN1c3RvbV9mbGRbJ3NpemUnXSkgPyAkY3VzdG9tX2ZsZFsnc2l6ZSddIDogNTA7CiAgICAgICAgICAgICAgICAgICAgJGZyb250X2VuZF90eXBlID0gJ2VxdWFsJzsKICAgICAgICAgICAgICAgICAgICBpZiAoJGZyb250ZW5kKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lID0gJ2ZpbHRlcl8nIC4gJGN1c3RvbV9mbGRbJ2ZpZWxkZGVmX2lkJ10gLiAnXycgLiAkZnJvbnRfZW5kX3R5cGU7CiAgICAgICAgICAgICAgICAgICAgICAgICR2YWx1ZSA9IChpc1NldCgkcGFyYW1zWydmaWx0ZXJfJyAuICRjdXN0b21fZmxkWydmaWVsZGRlZl9pZCddIC4gJ18nIC4gJGZyb250X2VuZF90eXBlXSkgPyAkcGFyYW1zWydmaWx0ZXJfJyAuICRjdXN0b21fZmxkWydmaWVsZGRlZl9pZCddIC4gJ18nIC4gJGZyb250X2VuZF90eXBlXSA6ICcnKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlmICghZW1wdHkoJGN1c3RvbV9mbGRbJ21heF9sZW5ndGgnXSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJG9iai0+ZmllbGQgPSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAkbmFtZSwgJHZhbHVlLCAkc2l6ZSwgJGN1c3RvbV9mbGRbJ21heF9sZW5ndGgnXSk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJG9iai0+ZmllbGQgPSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAkbmFtZSwgJHZhbHVlLCAkc2l6ZSk7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICBjYXNlICdtb2R1bGUnOgoKICAgICAgICAgICAgICAgICAgICAkb3B0aW9ucyA9IGFycmF5KCk7CiAgICAgICAgICAgICAgICAgICAgJGl0ZW1zID0gYXJyYXkoKTsKICAgICAgICAgICAgICAgICAgICBpZiAoaXNfYXJyYXkoJGN1c3RvbV9mbGRbJ3BhcmFtcyddKSAmJiAhZW1wdHkoJGN1c3RvbV9mbGRbJ3BhcmFtcyddKSkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoKCRtb2QtPkdldE5hbWUoKSAhPSAkY3VzdG9tX2ZsZFsncGFyYW1zJ11bIm1vZHVsZSJdICYmICRtb2R1bGUgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJGN1c3RvbV9mbGRbJ3BhcmFtcyddWyJtb2R1bGUiXSkgT1IgKCRtb2QtPkdldE5hbWUoKSA9PSAkY3VzdG9tX2ZsZFsncGFyYW1zJ11bIm1vZHVsZSJdICYmICRtb2R1bGUgPSAkbW9kKSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2V0KCRjdXN0b21fZmxkWydwYXJhbXMnXVsibW9kdWxlIl0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGN1c3RvbV9mbGRbJ3BhcmFtcyddWyJpdGVtcyJdID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtb2R1bGUtPkRvQWN0aW9uKCdkZWZhdWx0JywgJGlkLCAkY3VzdG9tX2ZsZFsncGFyYW1zJ10sICRyZXR1cm5pZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXRlbXMgPSBnZW5lcmF0b3JfdG9vbHM6OiRpdGVtczsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvcHRpb25zID0gZXh0ZW5kZWRfdG9vbHNfb3B0czo6b2JqZWN0X3RvX2hhc2goJGl0ZW1zLCAndGl0bGUnLCAnaXRlbV9pZCcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yX3Rvb2xzOjokaXRlbXMgPSBudWxsOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpZiAoaXNTZXQoJGN1c3RvbV9mbGRbJ211bHRpcGxlJ10pICYmIGlzX2ludCgkY3VzdG9tX2ZsZFsnbXVsdGlwbGUnXSkgJiYgISRmcm9udGVuZCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNTZXQoJGN1c3RvbV9mbGRbJ3NlbGVjdF9kZWZhdWx0J10pKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb3B0aW9ucyA9IGFycmF5KCRjdXN0b21fZmxkWydzZWxlY3RfZGVmYXVsdCddID0+ICcnKSArICRvcHRpb25zOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9iai0+ZmllbGQgPSAkbW9kLT5DcmVhdGVJbnB1dFNlbGVjdExpc3QoJGlkLCAkbmFtZSAuICJbXSIsICRvcHRpb25zLCAoIWVtcHR5KCR2YWx1ZSkgPyBleHBsb2RlKCcsJywgJHZhbHVlKSA6IGFycmF5KDAgPT4gJycpKSwgJGN1c3RvbV9mbGRbJ211bHRpcGxlJ10pOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9iai0+ZmllbGQgPSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICRuYW1lIC4gIltdIiwgJycpIC4gJG1vZC0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwgJG5hbWUgLiAiW10iLCAkb3B0aW9ucywgKCFlbXB0eSgkdmFsdWUpID8gZXhwbG9kZSgnLCcsICR2YWx1ZSkgOiBhcnJheSgwID0+ICcnKSksICRjdXN0b21fZmxkWydtdWx0aXBsZSddKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRvcHRpb25zID0gYXJyYXkoZ2VuZXJhdG9yKCktPkxhbmcoJ3NlbGVjdF9kZWZhdWx0JykgPT4gJycpICsgJG9wdGlvbnM7CgogICAgICAgICAgICAgICAgICAgICAgICAkZnJvbnRfZW5kX3R5cGUgPSAnZXF1YWwnOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNTZXQoJGN1c3RvbV9mbGRbJ211bHRpcGxlJ10pICYmIGlzX2ludCgkY3VzdG9tX2ZsZFsnbXVsdGlwbGUnXSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZnJvbnRfZW5kX3R5cGUgPSAnaW5zZXQnOwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRmcm9udGVuZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWUgPSAnZmlsdGVyXycgLiAkY3VzdG9tX2ZsZFsnZmllbGRkZWZfaWQnXSAuICdfJyAuICRmcm9udF9lbmRfdHlwZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YWx1ZSA9IChpc1NldCgkcGFyYW1zWydmaWx0ZXJfJyAuICRjdXN0b21fZmxkWydmaWVsZGRlZl9pZCddIC4gJ18nIC4gJGZyb250X2VuZF90eXBlXSkgPyAkcGFyYW1zWydmaWx0ZXJfJyAuICRjdXN0b21fZmxkWydmaWVsZGRlZl9pZCddIC4gJ18nIC4gJGZyb250X2VuZF90eXBlXSA6ICcnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvYmotPmZpbHRlciA9ICRpZCAuICRuYW1lOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICRvYmotPnZhbHVlID0gJHZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICAkb2JqLT5pdGVtcyA9ICRpdGVtczsKICAgICAgICAgICAgICAgICAgICAgICAgJG9iai0+b3B0aW9ucyA9ICRvcHRpb25zOwogICAgICAgICAgICAgICAgICAgICAgICAkb2JqLT5maWVsZCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAkbmFtZSwgJG9wdGlvbnMsIC0xLCAkdmFsdWUpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgJ2Ryb3Bkb3duJzoKICAgICAgICAgICAgICAgICAgICAkb3B0aW9ucyA9IGFycmF5KCk7CiAgICAgICAgICAgICAgICAgICAgJG9wdGlvbnNbZ2VuZXJhdG9yKCktPkxhbmcoJ3NlbGVjdF9kZWZhdWx0JyldID0gJyc7CiAgICAgICAgICAgICAgICAgICAgaWYgKGlzX2FycmF5KCRjdXN0b21fZmxkWydvcHRpb25zJ10pICYmICFlbXB0eSgkY3VzdG9tX2ZsZFsnb3B0aW9ucyddKSkgewogICAgICAgICAgICAgICAgICAgICAgICAkb3B0aW9ucyA9IGFycmF5X21lcmdlKCRvcHRpb25zLCBhcnJheV9mbGlwKCRjdXN0b21fZmxkWydvcHRpb25zJ10pKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICRmcm9udF9lbmRfdHlwZSA9ICdlcXVhbCc7CgogICAgICAgICAgICAgICAgICAgIGlmICgkZnJvbnRlbmQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWUgPSAnZmlsdGVyXycgLiAkY3VzdG9tX2ZsZFsnZmllbGRkZWZfaWQnXSAuICdfJyAuICRmcm9udF9lbmRfdHlwZTsKICAgICAgICAgICAgICAgICAgICAgICAgJHZhbHVlID0gKGlzU2V0KCRwYXJhbXNbJ2ZpbHRlcl8nIC4gJGN1c3RvbV9mbGRbJ2ZpZWxkZGVmX2lkJ10gLiAnXycgLiAkZnJvbnRfZW5kX3R5cGVdKSA/ICRwYXJhbXNbJ2ZpbHRlcl8nIC4gJGN1c3RvbV9mbGRbJ2ZpZWxkZGVmX2lkJ10gLiAnXycgLiAkZnJvbnRfZW5kX3R5cGVdIDogJycpOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJG9iai0+b3B0aW9ucyA9ICRvcHRpb25zOwogICAgICAgICAgICAgICAgICAgICRvYmotPmZpZWxkID0gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICRuYW1lLCAkb3B0aW9ucywgLTEsICR2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAnZHJvcGRvd25mcm9tbW9kdWxlJzoKICAgICAgICAgICAgICAgICAgICAkb3B0aW9ucyA9IGFycmF5KCk7CiAgICAgICAgICAgICAgICAgICAgJG9wdGlvbnNbZ2VuZXJhdG9yKCktPkxhbmcoJ3NlbGVjdF9kZWZhdWx0JyldID0gJ3NlbGVjdF9kZWZhdWx0JzsKICAgICAgICAgICAgICAgICAgICBpZiAoaXNfYXJyYXkoJGN1c3RvbV9mbGRbJ29wdGlvbnMnXSkgJiYgIWVtcHR5KCRjdXN0b21fZmxkWydvcHRpb25zJ10pKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRvcHRpb25zID0gYXJyYXlfbWVyZ2UoJG9wdGlvbnMsIGFycmF5X2ZsaXAoJGN1c3RvbV9mbGRbJ29wdGlvbnMnXSkpOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJG9iai0+ZmllbGQgPSAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJG5hbWUsICRvcHRpb25zLCAtMSwgJHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICBjYXNlICdwYWdlJzoKICAgICAgICAgICAgICAgICAgICAkb3B0aW9ucyA9IGFycmF5KCk7CiAgICAgICAgICAgICAgICAgICAgJG9wdGlvbnNbZ2VuZXJhdG9yKCktPkxhbmcoJ3NlbGVjdF9kZWZhdWx0JyldID0gJ3NlbGVjdF9kZWZhdWx0JzsKICAgICAgICAgICAgICAgICAgICBpZiAoaXNfYXJyYXkoJGN1c3RvbV9mbGRbJ29wdGlvbnMnXSkgJiYgIWVtcHR5KCRjdXN0b21fZmxkWydvcHRpb25zJ10pKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRvcHRpb25zID0gYXJyYXlfbWVyZ2UoJG9wdGlvbnMsIGFycmF5X2ZsaXAoJGN1c3RvbV9mbGRbJ29wdGlvbnMnXSkpOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJG9iai0+ZmllbGQgPSAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJG5hbWUsICRvcHRpb25zLCAtMSwgJHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICBjYXNlICdjb2xvcl9waWNrZXInOgogICAgICAgICAgICAgICAgICAgICR0eHQgPSAnJzsKICAgICAgICAgICAgICAgICAgICAkdG1wID0gJzxpbnB1dCB0eXBlPSJjb2xvciIgZGF0YS1oZXg9InRydWUiIG5hbWU9IiVzIiB2YWx1ZT0iJXMiLz4nOwogICAgICAgICAgICAgICAgICAgICR0eHQgLj0gc3ByaW50ZigkdG1wLCAkaWQgLiAkbmFtZSwgJHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAkb2JqLT5maWVsZCA9ICR0eHQ7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAnbW9kdWxlX2xpbmsnOgogICAgICAgICAgICAgICAgICAgICRvYmotPmZpZWxkID0gJGN1c3RvbV9mbGRbJ2xpbmsnXTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICBjYXNlICdjaGVja2JveCc6CiAgICAgICAgICAgICAgICAgICAgJGZyb250X2VuZF90eXBlID0gJ2VxdWFsJzsKICAgICAgICAgICAgICAgICAgICBpZiAoJGZyb250ZW5kKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lID0gJ2ZpbHRlcl8nIC4gJGN1c3RvbV9mbGRbJ2ZpZWxkZGVmX2lkJ10gLiAnXycgLiAkZnJvbnRfZW5kX3R5cGU7CiAgICAgICAgICAgICAgICAgICAgICAgICR2YWx1ZSA9IChpc1NldCgkcGFyYW1zWydmaWx0ZXJfJyAuICRjdXN0b21fZmxkWydmaWVsZGRlZl9pZCddIC4gJ18nIC4gJGZyb250X2VuZF90eXBlXSkgPyAkcGFyYW1zWydmaWx0ZXJfJyAuICRjdXN0b21fZmxkWydmaWVsZGRlZl9pZCddIC4gJ18nIC4gJGZyb250X2VuZF90eXBlXSA6ICcnKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJG9iai0+ZmllbGQgPSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICRuYW1lLCAnMCcpIC4gJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICRuYW1lLCAnMScsICR2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAndGV4dGFyZWEnOgogICAgICAgICAgICAgICAgICAgICRvYmotPmZpZWxkID0gJG1vZC0+Q3JlYXRlVGV4dEFyZWEoJGN1c3RvbV9mbGRbJ3d5c2l3eWcnXSwgJGlkLCAkdmFsdWUsICRuYW1lLCAnJywgJycsICcnLCAnJywgJGN1c3RvbV9mbGRbJ2NvbHMnXSwgJGN1c3RvbV9mbGRbJ3Jvd3MnXSk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAnc3RhdGljJzoKICAgICAgICAgICAgICAgICAgICAkb2JqLT5maWVsZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGNhc2UgJ3RhYic6CiAgICAgICAgICAgICAgICAgICAgJG9iai0+ZmllbGQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICBjYXNlICdzZWxlY3RfZGF0ZSc6CgogICAgICAgICAgICAgICAgICAgICRzaXplID0gIWVtcHR5KCRjdXN0b21fZmxkWydzaXplJ10pID8gJGN1c3RvbV9mbGRbJ3NpemUnXSA6IDIwOwoKICAgICAgICAgICAgICAgICAgICAkc2VsZWN0b3IgPSAnIycgLiAkaWQgLiBzdHJfcmVwbGFjZShhcnJheSgnWycsICddJyksIGFycmF5KCdcXFxbJywgJ1xcXF0nKSwgJG5hbWUpOwogICAgICAgICAgICAgICAgICAgICRkYXRlcGlja2VyID0gJwo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCl7CiAgICAkKCInIC4gJHNlbGVjdG9yIC4gJyIpLmRhdGVwaWNrZXIoeycgLiAoIWVtcHR5KCRjdXN0b21fZmxkWydkYXRlZm9ybWF0J10pID8gJ2RhdGVGb3JtYXQ6IFwnJyAuIGh0bWxlbnRpdGllcygkY3VzdG9tX2ZsZFsnZGF0ZWZvcm1hdCddKSAuICdcJycgOiAnJykgLiAnfSk7Cn0pOwo8L3NjcmlwdD4nOwoKICAgICAgICAgICAgICAgICAgICBpZiAoIWVtcHR5KCRjdXN0b21fZmxkWydtYXhfbGVuZ3RoJ10pKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRvYmotPmZpZWxkID0gJGRhdGVwaWNrZXIgLiAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAkbmFtZSwgJHZhbHVlLCAkc2l6ZSwgJGN1c3RvbV9mbGRbJ21heF9sZW5ndGgnXSk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJG9iai0+ZmllbGQgPSAkZGF0ZXBpY2tlciAuICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICRuYW1lLCAkdmFsdWUsICRzaXplKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGNhc2UgJ3VwbG9hZF9maWxlJzoKICAgICAgICAgICAgICAgICAgICAkbmFtZSA9ICdjdXN0b21maWVsZF8nIC4gJGN1c3RvbV9mbGRbJ2ZpZWxkZGVmX2lkJ107CgogICAgICAgICAgICAgICAgICAgIGlmICgkdmFsdWUgIT0gJycpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJG9iai0+ZGVsZXRlX2ZpbGUgPSAkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2RlbGV0ZV9jdXN0b21maWVsZFsnIC4gJGN1c3RvbV9mbGRbJ2ZpZWxkZGVmX2lkJ10gLiAnXScsICdkZWxldGUnKSAuICcgJyAuIGdlbmVyYXRvcigpLT5MYW5nKCdkZWxldGUnKTsKICAgICAgICAgICAgICAgICAgICAgICAgJG9iai0+ZmlsZV9sb2NhdGlvbiA9IGdlbmVyYXRvcl90b29sczo6ZmlsZV9sb2NhdGlvbigkbW9kLCBhcnJheSgnaXRlbV9pZCcgPT4gJGl0ZW1faWQpKTsKICAgICAgICAgICAgICAgICAgICAgICAgJG9iai0+ZmlsZXBhdGhfbG9jYXRpb24gPSBnZW5lcmF0b3JfdG9vbHM6OmZpbGVwYXRoX2xvY2F0aW9uKCRtb2QsIGFycmF5KCdpdGVtX2lkJyA9PiAkaXRlbV9pZCkpOwogICAgICAgICAgICAgICAgICAgICAgICAkb2JqLT5pc19pbWFnZSA9IGdldEltYWdlU2l6ZShjbXNfam9pbl9wYXRoKGdlbmVyYXRvcl90b29sczo6ZmlsZXBhdGhfbG9jYXRpb24oJG1vZCwgYXJyYXkoJ2l0ZW1faWQnID0+ICRpdGVtX2lkKSksICR2YWx1ZSkpOwogICAgICAgICAgICAgICAgICAgICAgICAkb2JqLT5maWxlbmFtZSA9ICR2YWx1ZTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICRvYmotPmZpZWxkID0gJG1vZC0+Q3JlYXRlRmlsZVVwbG9hZElucHV0KCRpZCwgJG5hbWUpOwoKICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICBjYXNlICdzZWxlY3RfZmlsZSc6CiAgICAgICAgICAgICAgICAgICAgJHAgPSBjbXNfam9pbl9wYXRoKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddLCAkY3VzdG9tX2ZsZFsnZGlyJ10pOwoKICAgICAgICAgICAgICAgICAgICBpZiAoIWlzX2RpcigkcCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHJlcyA9IEBta2RpcigkcCk7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAkaW1hZ2VzID0gYXJyYXkoKTsKICAgICAgICAgICAgICAgICAgICAkaW1hZ2VzW2dlbmVyYXRvcigpLT5MYW5nKCdzZWxlY3RfZGVmYXVsdCcpXSA9ICdzZWxlY3RfZGVmYXVsdCc7CgogICAgICAgICAgICAgICAgICAgICRhbGxvd2VkID0gKCFlbXB0eSgkY3VzdG9tX2ZsZFsnYWxsb3cnXSkgPyAkY3VzdG9tX2ZsZFsnYWxsb3cnXSA6IGFycmF5KCkpOwoKICAgICAgICAgICAgICAgICAgICBpZiAoZW1wdHkoJGFsbG93ZWQpID09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkaGFuZGxlID0gb3BlbmRpcigkcCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChmYWxzZSAhPT0gKCRmaWxlID0gcmVhZGRpcigkaGFuZGxlKSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGZpbGUgIT0gJy4nICYmICRmaWxlICE9ICcuLicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmICFnZW5lcmF0b3JfdG9vbHM6Omhhc19wcmVmaXgoJGZpbGUsICRjdXN0b21fZmxkWydleGNsdWRlX3ByZWZpeCddKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXh0ID0gc3RydG9sb3dlcihzdWJzdHIoc3RycmNocigkZmlsZSwgJy4nKSwgMSkpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluX2FycmF5KCRleHQsICRhbGxvd2VkKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltYWdlc1skZmlsZV0gPSAkZmlsZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZWRpcigkaGFuZGxlKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJG9iai0+ZmllbGQgPSAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJG5hbWUsICRpbWFnZXMsIC0xLCAkdmFsdWUpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkY3VzdG9tX2ZsZHNfb2JqWyRvYmotPmFsaWFzXSA9ICRvYmo7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJGN1c3RvbV9mbGRzX29iajsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gcHJvY2VzcyhhcnJheSAmJGNvdW50am9pbnMsIGFycmF5ICYkam9pbnMsIGFycmF5ICYkd2hlcmUsIGFycmF5ICYkcGFyYW1hcnJheSkgewogICAgICAgIAogICAgfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/class.generator_items.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBNb2R1bGVHZW5lcmF0b3IgZm9yIENNUyBNYWRlIFNpbXBsZSAoQGt1em1hbnkpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovKioKICogRGVzY3JpcHRpb24gb2YgY2xhc3MKICoKICogQGF1dGhvciBAa3V6bWFueQogKi8KCmNsYXNzIGdlbmVyYXRvcl9pdGVtcyB7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkgewogICAgICAgIAogICAgfQoKICAgIAoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/class.generator_item_gallery.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBNb2R1bGVHZW5lcmF0b3IgZm9yIENNUyBNYWRlIFNpbXBsZSAoQGt1em1hbnkpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovKioKICogRGVzY3JpcHRpb24gb2YgY2xhc3MKICoKICogQGF1dGhvciBAa3V6bWFueQogKi8KLyogQ1JFQVRFIFRBQkxFIGBjbXNfbW9kdWxlX2dhbGVyaWFfaW1hZ2VzYCAoCiAgYGltYWdlX2lkYCBJTlQoMTApIE5VTEwgQVVUT19JTkNSRU1FTlQsCiAgYGZpbGVuYW1lYCBWQVJDSEFSKDI1NSkgTlVMTCBERUZBVUxUIE5VTEwsCiAgYHBvc2lpdG9uYCBJTlQgTlVMTCBERUZBVUxUIE5VTEwsCiAgUFJJTUFSWSBLRVkgKGBpbWFnZV9pZGApCiAgKQogIENPTExBVEU9J3V0ZjhfZ2VuZXJhbF9jaScKICBFTkdJTkU9TXlJU0FNOyAqLwoKY2xhc3MgZ2VuZXJhdG9yX2l0ZW1fZ2FsbGVyeSB7CgogICAgcHJpdmF0ZSAkX2RpcjsKICAgIHByaXZhdGUgJF9tb2Q7CiAgICBwcml2YXRlICRfaXRlbV9pZDsKICAgIHByaXZhdGUgJF9kYjsKICAgIHByaXZhdGUgJF9zbWFydHk7CiAgICBwcml2YXRlICRfY29uZmlnOwogICAgcHJpdmF0ZSAkX2V4dGVuc2lvbnMgPSAnanBnLGdpZixwbmcnOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkbW9kLCAkaXRlbV9pZCkgewoKICAgICAgICAkdGhpcy0+X2RiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICAkdGhpcy0+X3NtYXJ0eSA9IGNtc21zKCktPkdldFNtYXJ0eSgpOwogICAgICAgICR0aGlzLT5fY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5faXRlbV9pZCA9ICRpdGVtX2lkOwoKICAgICAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CgogICAgICAgICR0aGlzLT5fZGlyID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwgJHRoaXMtPl9tb2QtPl9HZXRNb2R1bGVBbGlhcygpLCAnaWQnIC4gJHRoaXMtPl9pdGVtX2lkLCAnZ2FsbGVyeScpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2FkX2ZpbGVzKCkgewoKICAgICAgICAkdGhpcy0+X2NsZWFuX3VwKCk7CiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqICBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkdGhpcy0+X21vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ltYWdlcyBXSEVSRSBpdGVtX2lkID0gPyAgT1JERVIgQlkgcG9zaXRpb24gJy4gJHRoaXMtPl9tb2QtPkdldFByZWZlcmVuY2UoJ2dhbGxlcnlfc29ydG9yZGVyJyk7CiAgICAgICAgJGZpbGVzID0gJHRoaXMtPl9kYi0+R2V0QWxsKCRxdWVyeSwgYXJyYXkoJHRoaXMtPl9pdGVtX2lkKSk7CiAgICAgICAgaWYgKCRmaWxlcykgewogICAgICAgICAgICBmb3JlYWNoICgkZmlsZXMgYXMgJGtleSA9PiAkZmlsZSkgewogICAgICAgICAgICAgICAgJGZpbGVzWyRrZXldWyJmaWxlX2xvY2F0aW9uIl0gPSBnZW5lcmF0b3JfdG9vbHM6OmltYWdlX2xvY2F0aW9uKCR0aGlzLT5fbW9kLCAkZmlsZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRmaWxlczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlX2ltYWdlKCRpbWFnZV9pZCkgewogICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgZmlsZW5hbWUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJHRoaXMtPl9tb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pbWFnZXMgV0hFUkUgaW1hZ2VfaWQgPT8nOwogICAgICAgICRmaWxlbmFtZSA9ICR0aGlzLT5fZGItPkdldE9uZSgkcXVlcnksIGFycmF5KCRpbWFnZV9pZCkpOwogICAgICAgIGVjaG8gJ3Rlc3QnOwogICAgICAgIGlmICghJGZpbGVuYW1lKQogICAgICAgICAgICByZXR1cm47CiAgICAgICAgdW5saW5rKGNtc19qb2luX3BhdGgoJHRoaXMtPl9kaXIsICRmaWxlbmFtZSkpOwogICAgICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJHRoaXMtPl9tb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pbWFnZXMgV0hFUkUgaW1hZ2VfaWQgPT8nOwogICAgICAgICR0aGlzLT5fZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkaW1hZ2VfaWQpKTsKICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9jbGVhbl91cCgpIHsKCiAgICAgICAgY2dlX2Rpcjo6bWtkaXJyKCR0aGlzLT5fZGlyKTsKICAgICAgICAkZmlsZXMgPSBjZ2VfZGlyOjpnZXRfZmlsZV9saXN0KCR0aGlzLT5fZGlyLCAkdGhpcy0+X2V4dGVuc2lvbnMpOwoKICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIE1BWChwb3NpdGlvbikgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJHRoaXMtPl9tb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pbWFnZXMgV0hFUkUgaXRlbV9pZCA9ID8nOwogICAgICAgICRtYXhfcG9zaXRpb24gPSAkdGhpcy0+X2RiLT5HZXRPbmUoJHF1ZXJ5LCBhcnJheSgkdGhpcy0+X2l0ZW1faWQpKTsKICAgICAgICBpZiAoISRtYXhfcG9zaXRpb24pCiAgICAgICAgICAgICRtYXhfcG9zaXRpb24gPSAxOwoKICAgICAgICBpZiAoZW1wdHkoJGZpbGVzKSA9PSBmYWxzZSkgewogICAgICAgICAgICBmb3JlYWNoICgkZmlsZXMgYXMgJGZpbGVuYW1lKSB7CiAgICAgICAgICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIGZpbGVuYW1lIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICR0aGlzLT5fbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaW1hZ2VzIFdIRVJFIGl0ZW1faWQgPSA/IGFuZCBmaWxlbmFtZSA9ID8nOwogICAgICAgICAgICAgICAgJGlzID0gJHRoaXMtPl9kYi0+R2V0T25lKCRxdWVyeSwgYXJyYXkoJHRoaXMtPl9pdGVtX2lkLCAkZmlsZW5hbWUpKTsKICAgICAgICAgICAgICAgIGlmICgkaXMpCiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CgogICAgICAgICAgICAgICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkdGhpcy0+X21vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ltYWdlcyAoaXRlbV9pZCwgZmlsZW5hbWUsIHBvc2l0aW9uKSBWQUxVRVMgKD8sPyw/KSc7CiAgICAgICAgICAgICAgICAkbWF4X3Bvc2l0aW9uKys7CiAgICAgICAgICAgICAgICAkdGhpcy0+X2RiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHRoaXMtPl9pdGVtX2lkLCAkZmlsZW5hbWUsICRtYXhfcG9zaXRpb24pKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.generator_opts.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBNb2R1bGVHZW5lcmF0b3IgZm9yIENNUyBNYWRlIFNpbXBsZSAoQGt1em1hbnkpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovKioKICogRGVzY3JpcHRpb24gb2YgY2xhc3MKICoKICogQGF1dGhvciBAa3V6bWFueQogKi8KCmNsYXNzIGdlbmVyYXRvcl9vcHRzIHsKCiAgICBwdWJsaWMgc3RhdGljICRmaWVsZGRlZnM7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkgewogICAgICAgIAogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaW5pdF9hZG1pbigkbW9kKSB7CgogICAgICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsKICAgICAgICAkaW1hZ2VzX3NpemVfYWRtaW4gPSB0cmltKCRtb2QtPkdldFByZWZlcmVuY2UoJ2ltYWdlc19zaXplX2FkbWluJykpOwoKICAgICAgICBpZiAoc3RycG9zKCRpbWFnZXNfc2l6ZV9hZG1pbiwgJ3gnKSAhPT0gRkFMU0UpIHsKICAgICAgICAgICAgJGltYWdlc19zaXplX2FkbWluX2FycmF5ID0gZXhwbG9kZSgneCcsICRpbWFnZXNfc2l6ZV9hZG1pbik7CiAgICAgICAgICAgICRzbWFydHktPmFzc2lnbignaW1hZ2Vfc2l6ZV9hZG1pbl93aWR0aCcsICRpbWFnZXNfc2l6ZV9hZG1pbl9hcnJheVswXSk7CiAgICAgICAgICAgICRzbWFydHktPmFzc2lnbignaW1hZ2Vfc2l6ZV9hZG1pbl9oZWlnaHQnLCAkaW1hZ2VzX3NpemVfYWRtaW5fYXJyYXlbMV0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRzbWFydHktPmFzc2lnbignaW1hZ2Vfc2l6ZV9hZG1pbl93aWR0aCcsIDIwMCk7CiAgICAgICAgICAgICRzbWFydHktPmFzc2lnbignaW1hZ2Vfc2l6ZV9hZG1pbl9oZWlnaHQnLCAwKTsKICAgICAgICB9CiAgICAgICAgLy8gcGFyYW1ldGVycyB0aGF0IGNhbiBiZSBjYWxsZWQgaW4gdGhlIG1vZHVsZSB0YWcKICAgICAgICAkbW9kLT5DcmVhdGVQYXJhbWV0ZXIoJ2FjdGlvbicsICdkZWZhdWx0JywgJG1vZC0+TGFuZygnaGVscF9wYXJhbV9hY3Rpb24nKSk7CiAgICAgICAgJG1vZC0+Q3JlYXRlUGFyYW1ldGVyKCdjYXRlZ29yeV9pZCcsIDAsICRtb2QtPkxhbmcoJ2hlbHBfcGFyYW1fY2F0ZWdvcnlfaWQnKSk7CiAgICAgICAgJG1vZC0+Q3JlYXRlUGFyYW1ldGVyKCdjYXRlZ29yeScsIDAsICRtb2QtPkxhbmcoJ2hlbHBfcGFyYW1fY2F0ZWdvcnknKSk7CiAgICAgICAgJG1vZC0+Q3JlYXRlUGFyYW1ldGVyKCdvcmRlcmJ5JywgJ2NyZWF0ZV9kYXRlJywgJG1vZC0+TGFuZygnaGVscF9wYXJhbV9vcmRlcmJ5JykpOwogICAgICAgICRtb2QtPkNyZWF0ZVBhcmFtZXRlcignZGV0YWlsdGVtcGxhdGUnLCAnJywgJG1vZC0+TGFuZygnaGVscF9wYXJhbV9kZXRhaWx0ZW1wbGF0ZScpKTsKICAgICAgICAkbW9kLT5DcmVhdGVQYXJhbWV0ZXIoJ3N1bW1hcnl0ZW1wbGF0ZScsICcnLCAkbW9kLT5MYW5nKCdoZWxwX3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZScpKTsKICAgICAgICAkbW9kLT5DcmVhdGVQYXJhbWV0ZXIoJ2NhdGVnb3J5dGVtcGxhdGUnLCAnJywgJG1vZC0+TGFuZygnaGVscF9wYXJhbV9jYXRlZ29yeXRlbXBsYXRlJykpOwogICAgICAgICRtb2QtPkNyZWF0ZVBhcmFtZXRlcignZmlsdGVydGVtcGxhdGUnLCAnJywgJG1vZC0+TGFuZygnaGVscF9wYXJhbV9maWx0ZXJ0ZW1wbGF0ZScpKTsKICAgICAgICAkbW9kLT5DcmVhdGVQYXJhbWV0ZXIoJ2RldGFpbHBhZ2UnLCAnJywgJG1vZC0+TGFuZygnaGVscF9wYXJhbV9kZXRhaWxwYWdlJykpOwogICAgICAgICRtb2QtPkNyZWF0ZVBhcmFtZXRlcignaXRlbV9pZCcsIDAsICRtb2QtPkxhbmcoJ2hlbHBfcGFyYW1faXRlbScpKTsKICAgICAgICAkbW9kLT5DcmVhdGVQYXJhbWV0ZXIoJ2NhdGVnb3J5X2lkJywgMCwgJG1vZC0+TGFuZygnaGVscF9wYXJhbV9jYXRlZ29yeV9pZCcpKTsKICAgICAgICAkbW9kLT5DcmVhdGVQYXJhbWV0ZXIoJ2NhdGVnb3J5JywgJycsICRtb2QtPkxhbmcoJ2hlbHBfcGFyYW1fY2F0ZWdvcnlfaWQnKSk7CiAgICAgICAgJG1vZC0+Q3JlYXRlUGFyYW1ldGVyKCdwYWdlbGltaXQnLCAwLCAkbW9kLT5MYW5nKCdoZWxwX3BhcmFtX3BhZ2VsaW1pdCcpKTsKICAgICAgICAkbW9kLT5DcmVhdGVQYXJhbWV0ZXIoJ3NvcnRvcmRlcicsICdkZXNjJywgJG1vZC0+TGFuZygnaGVscF9wYXJhbV9zb3J0b3JkZXInKSk7CiAgICAgICAgJG1vZC0+Q3JlYXRlUGFyYW1ldGVyKCdpbmxpbmUnLCAwLCAkbW9kLT5MYW5nKCdoZWxwX3BhcmFtX2lubGluZScpKTsKICAgICAgICAkbW9kLT5DcmVhdGVQYXJhbWV0ZXIoJ29uZXJvdycsICcnLCAkbW9kLT5MYW5nKCdoZWxwX3BhcmFtX29uZXJvdycpKTsKICAgICAgICAkbW9kLT5DcmVhdGVQYXJhbWV0ZXIoJ2FsbHJvdycsICcnLCAkbW9kLT5MYW5nKCdoZWxwX3BhcmFtX2FsbHJvdycpKTsKICAgICAgICAkbW9kLT5DcmVhdGVQYXJhbWV0ZXIoJ29uZWNvdW50JywgJycsICRtb2QtPkxhbmcoJ2hlbHBfcGFyYW1fb25lY291bnQnKSk7CiAgICAgICAgLy8kbW9kLT5DcmVhdGVQYXJhbWV0ZXIoJ2l0ZW1fZGF0ZV9mcm9tX3RvJywgJycsICRtb2QtPkxhbmcoJ2hlbHBfcGFyYW1faXRlbV9kYXRlX2Zyb21fdG8nKSk7CiAgICAgICAgJG1vZC0+Q3JlYXRlUGFyYW1ldGVyKCdkYXRlX3N0YXJ0JywgJycsICRtb2QtPkxhbmcoJ2hlbHBfcGFyYW1fZGF0ZV9zdGFydCcpKTsKICAgICAgICAkbW9kLT5DcmVhdGVQYXJhbWV0ZXIoJ2RhdGVfZW5kJywgJycsICRtb2QtPkxhbmcoJ2hlbHBfcGFyYW1fZGF0ZV9lbmQnKSk7CiAgICAgICAgJG1vZC0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfJywgJycsICRtb2QtPkxhbmcoJ2hlbHBfcGFyYW1fZmlsdGVyJykpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaW5pdCgkbW9kKSB7CgogICAgICAgICRtb2QtPlJlZ2lzdGVyTW9kdWxlUGx1Z2luKCk7CiAgICAgICAgJG1vZC0+UmVzdHJpY3RVbmtub3duUGFyYW1zKCk7CgogICAgICAgIGlmICgkbW9kLT5HZXRQcmVmZXJlbmNlKCdpdGVtX3VybF9lZGl0JykpIHsKICAgICAgICAgICAgLy8gY3VzdG9tIHVybCBzdXBwb3J0CiAgICAgICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgaXRlbV9pZCx1cmwgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2l0ZW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgV0hFUkUgYWN0aXZlID0gMSBBTkQgdXJsICE9IFwnXCcnOwogICAgICAgICAgICAkdG1wID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogICAgICAgICAgICBpZiAoaXNfYXJyYXkoJHRtcCkpIHsKICAgICAgICAgICAgICAgICRkZXRhaWxwYWdlID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnaXRlbV9kZXRhaWxfcmV0dXJuaWQnLCAtMSk7CiAgICAgICAgICAgICAgICBpZiAoJGRldGFpbHBhZ2UgPT0gLTEpIHsKICAgICAgICAgICAgICAgICAgICAkY29udGVudG9wcyA9IGNtc21zKCktPkdldENvbnRlbnRPcGVyYXRpb25zKCk7CiAgICAgICAgICAgICAgICAgICAgJGRldGFpbHBhZ2UgPSAkY29udGVudG9wcy0+R2V0RGVmYXVsdENvbnRlbnQoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKCR0bXAgYXMgJG9uZSkgewogICAgICAgICAgICAgICAgICAgICRwYXJtcyA9IGFycmF5KCdhY3Rpb24nID0+ICdkZXRhaWwnLCAncmV0dXJuaWQnID0+ICRkZXRhaWxwYWdlLAogICAgICAgICAgICAgICAgICAgICAgICAnaXRlbV9pZCcgPT4gJG9uZVsnaXRlbV9pZCddKTsKICAgICAgICAgICAgICAgICAgICAkcm91dGUgPSBuZXcgQ21zUm91dGUoJG9uZVsndXJsJ10sICRtb2QtPkdldE5hbWUoKSwgJHBhcm1zLCBUUlVFKTsKICAgICAgICAgICAgICAgICAgICBjbXNfcm91dGVfbWFuYWdlcjo6cmVnaXN0ZXIoJHJvdXRlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJG1vZC0+U2V0UGFyYW1ldGVyVHlwZSgncGFnZScsIENMRUFOX0lOVCk7CiAgICAgICAgJG1vZC0+U2V0UGFyYW1ldGVyVHlwZSgncGFnZWxpbWl0JywgQ0xFQU5fSU5UKTsKICAgICAgICAkbW9kLT5TZXRQYXJhbWV0ZXJUeXBlKCdjYXRlZ29yeV9pZCcsIENMRUFOX0lOVCk7CiAgICAgICAgJG1vZC0+U2V0UGFyYW1ldGVyVHlwZSgnY2F0ZWdvcnknLCBDTEVBTl9TVFJJTkcpOwogICAgICAgICRtb2QtPlNldFBhcmFtZXRlclR5cGUoJ29yZGVyYnknLCBDTEVBTl9TVFJJTkcpOwogICAgICAgICRtb2QtPlNldFBhcmFtZXRlclR5cGUoJ3NvcnRvcmRlcicsIENMRUFOX1NUUklORyk7CiAgICAgICAgJG1vZC0+U2V0UGFyYW1ldGVyVHlwZSgnc29ydGJ5JywgQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkbW9kLT5TZXRQYXJhbWV0ZXJUeXBlKCdjYXRlZ29yeXRlbXBsYXRlJywgQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkbW9kLT5TZXRQYXJhbWV0ZXJUeXBlKCdzdW1tYXJ5dGVtcGxhdGUnLCBDTEVBTl9TVFJJTkcpOwogICAgICAgICRtb2QtPlNldFBhcmFtZXRlclR5cGUoJ2RldGFpbHRlbXBsYXRlJywgQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkbW9kLT5TZXRQYXJhbWV0ZXJUeXBlKCdkZXRhaWxwYWdlJywgQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkbW9kLT5TZXRQYXJhbWV0ZXJUeXBlKCdpdGVtX2lkJywgQ0xFQU5fSU5UKTsKICAgICAgICAkbW9kLT5TZXRQYXJhbWV0ZXJUeXBlKCdpbmxpbmUnLCBDTEVBTl9JTlQpOwogICAgICAgICRtb2QtPlNldFBhcmFtZXRlclR5cGUoJ3N1Ym1pdCcsIENMRUFOX1NUUklORyk7CiAgICAgICAgJG1vZC0+U2V0UGFyYW1ldGVyVHlwZSgnanVuaycsIENMRUFOX1NUUklORyk7CiAgICAgICAgJG1vZC0+U2V0UGFyYW1ldGVyVHlwZSgnb25lcm93JywgQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkbW9kLT5TZXRQYXJhbWV0ZXJUeXBlKCdhbGxyb3cnLCBDTEVBTl9TVFJJTkcpOwogICAgICAgICRtb2QtPlNldFBhcmFtZXRlclR5cGUoJ29uZWNvdW50JywgQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkbW9kLT5TZXRQYXJhbWV0ZXJUeXBlKCdpdGVtcycsIENMRUFOX1NUUklORyk7CiAgICAgICAgJG1vZC0+U2V0UGFyYW1ldGVyVHlwZSgnaXRlbV9kYXRlX2Zyb21fdG8nLCBDTEVBTl9TVFJJTkcpOwogICAgICAgICRtb2QtPlNldFBhcmFtZXRlclR5cGUoJ2l0ZW1saXN0JywgQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkbW9kLT5TZXRQYXJhbWV0ZXJUeXBlKCdkYXRlX3N0YXJ0JywgQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkbW9kLT5TZXRQYXJhbWV0ZXJUeXBlKCdkYXRlX2VuZCcsIENMRUFOX1NUUklORyk7CiAgICAgICAgJG1vZC0+U2V0UGFyYW1ldGVyVHlwZSgnY2Rfb3JpZ3BhZ2UnLCBDTEVBTl9TVFJJTkcpOwogICAgICAgICRtb2QtPlNldFBhcmFtZXRlclR5cGUoJ25vY2FjaGUnLCBDTEVBTl9JTlQpOwogICAgICAgICRtb2QtPlNldFBhcmFtZXRlclR5cGUoJ2NhY2hlX2tleScsIENMRUFOX1NUUklORyk7CiAgICAgICAgJG1vZC0+U2V0UGFyYW1ldGVyVHlwZSgncHJldmlldycsIENMRUFOX1NUUklORyk7CiAgICAgICAgJG1vZC0+U2V0UGFyYW1ldGVyVHlwZShDTEVBTl9SRUdFWFAgLiAnL2ZpbHRlcl8qLycsIENMRUFOX1NUUklORyk7CiAgICAgICAgJG1vZC0+U2V0UGFyYW1ldGVyVHlwZShDTEVBTl9SRUdFWFAgLiAnL2RhdGVmcm9tKi8nLCBDTEVBTl9TVFJJTkcpOwogICAgICAgICRtb2QtPlNldFBhcmFtZXRlclR5cGUoQ0xFQU5fUkVHRVhQIC4gJy9kYXRldG8qLycsIENMRUFOX1NUUklORyk7CiAgICAgICAgJG1vZC0+U2V0UGFyYW1ldGVyVHlwZShDTEVBTl9SRUdFWFAgLiAnLycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfKi8nLCBDTEVBTl9TVFJJTkcpOwoKCiAgICAgICAgJGRlZmF1bHRfZGV0YWlscGFnZSA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ2l0ZW1fY2F0ZWdvcnlfcmV0dXJuaWQnKTsKCiAgICAgICAgJG1vZC0+UmVnaXN0ZXJSb3V0ZSgnLycgLiAkbW9kLT5HZXRQcmVmZXJlbmNlKCd1cmxfcHJlZml4JywgbXVuZ2Vfc3RyaW5nX3RvX3VybCgkbW9kLT5HZXROYW1lKCksIHRydWUpKSAuICdcL1tjQ11cLyg/UDxjYXRlZ29yeV9pZD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKVwvKD9QPGp1bms+Lio/KVwvKD9QPGNhdGVnb3J5dGVtcGxhdGU+WzAtOV0rPykkLycsIGFycmF5KCdhY3Rpb24nID0+ICdkZWZhdWx0JykpOwogICAgICAgICRtb2QtPlJlZ2lzdGVyUm91dGUoJy8nIC4gJG1vZC0+R2V0UHJlZmVyZW5jZSgndXJsX3ByZWZpeCcsIG11bmdlX3N0cmluZ190b191cmwoJG1vZC0+R2V0TmFtZSgpLCB0cnVlKSkgLiAnXC9bY0NdXC8oP1A8Y2F0ZWdvcnlfaWQ+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKylcLyg/UDxqdW5rPi4qPykkLycsIGFycmF5KCdhY3Rpb24nID0+ICdkZWZhdWx0JykpOwogICAgICAgICRtb2QtPlJlZ2lzdGVyUm91dGUoJy8nIC4gJG1vZC0+R2V0UHJlZmVyZW5jZSgndXJsX3ByZWZpeCcsIG11bmdlX3N0cmluZ190b191cmwoJG1vZC0+R2V0TmFtZSgpLCB0cnVlKSkgLiAnXC9bY0NdXC8oP1A8Y2F0ZWdvcnlfaWQ+WzAtOV0rKVwvKD9QPGp1bms+Lio/KSQvJywgYXJyYXkoJ2FjdGlvbicgPT4gJ2RlZmF1bHQnLCAncmV0dXJuaWQnID0+ICRkZWZhdWx0X2RldGFpbHBhZ2UpKTsKICAgICAgICAkbW9kLT5SZWdpc3RlclJvdXRlKCcvJyAuICRtb2QtPkdldFByZWZlcmVuY2UoJ3VybF9wcmVmaXgnLCBtdW5nZV9zdHJpbmdfdG9fdXJsKCRtb2QtPkdldE5hbWUoKSwgdHJ1ZSkpIC4gJ1wvW2NDXVwvKD9QPGNhdGVnb3J5X2lkPlswLTldKykkLycsIGFycmF5KCdhY3Rpb24nID0+ICdkZWZhdWx0JywgJ3JldHVybmlkJyA9PiAkZGVmYXVsdF9kZXRhaWxwYWdlKSk7CgogICAgICAgICRkZWZhdWx0X2RldGFpbHBhZ2UgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdpdGVtX2RldGFpbF9yZXR1cm5pZCcpOwoKICAgICAgICAkbW9kLT5SZWdpc3RlclJvdXRlKCcvJyAuICRtb2QtPkdldFByZWZlcmVuY2UoJ3VybF9wcmVmaXgnLCBtdW5nZV9zdHJpbmdfdG9fdXJsKCRtb2QtPkdldE5hbWUoKSwgdHJ1ZSkpIC4gJ1wvKD9QPGl0ZW1faWQ+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKylcLyg/UDxqdW5rPi4qPylcLyg/UDxkZXRhaWx0ZW1wbGF0ZT5bMC05XSs/KSQvJywgYXJyYXkoJ2FjdGlvbicgPT4gJ2RldGFpbCcpKTsKICAgICAgICAkbW9kLT5SZWdpc3RlclJvdXRlKCcvJyAuICRtb2QtPkdldFByZWZlcmVuY2UoJ3VybF9wcmVmaXgnLCBtdW5nZV9zdHJpbmdfdG9fdXJsKCRtb2QtPkdldE5hbWUoKSwgdHJ1ZSkpIC4gJ1wvKD9QPGl0ZW1faWQ+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKylcLyg/UDxqdW5rPi4qPykkLycsIGFycmF5KCdhY3Rpb24nID0+ICdkZXRhaWwnKSk7CiAgICAgICAgJG1vZC0+UmVnaXN0ZXJSb3V0ZSgnLycgLiAkbW9kLT5HZXRQcmVmZXJlbmNlKCd1cmxfcHJlZml4JywgbXVuZ2Vfc3RyaW5nX3RvX3VybCgkbW9kLT5HZXROYW1lKCksIHRydWUpKSAuICdcLyg/UDxpdGVtX2lkPlswLTldKylcLyg/UDxqdW5rPi4qPykkLycsIGFycmF5KCdhY3Rpb24nID0+ICdkZXRhaWwnLCAncmV0dXJuaWQnID0+ICRkZWZhdWx0X2RldGFpbHBhZ2UpKTsKICAgICAgICAkbW9kLT5SZWdpc3RlclJvdXRlKCcvJyAuICRtb2QtPkdldFByZWZlcmVuY2UoJ3VybF9wcmVmaXgnLCBtdW5nZV9zdHJpbmdfdG9fdXJsKCRtb2QtPkdldE5hbWUoKSwgdHJ1ZSkpIC4gJ1wvKD9QPGl0ZW1faWQ+WzAtOV0rKSQvJywgYXJyYXkoJ2FjdGlvbicgPT4gJ2RldGFpbCcsICdyZXR1cm5pZCcgPT4gJGRlZmF1bHRfZGV0YWlscGFnZSkpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X21vZHVsZSgkbmFtZSkgewogICAgICAgICRtb2R1bGUgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ01vZHVsZUdlbmVyYXRvcicpOwogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgcmV0dXJuICRkYi0+R2V0Um93KCdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2dlbmVyYXRvciBXSEVSRSBtb2R1bGVfbmFtZSA9ID8nLCBhcnJheSgkbmFtZSkpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZGVsZXRlKCRuYW1lKSB7CiAgICAgICAgJG1vZHVsZSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnTW9kdWxlR2VuZXJhdG9yJyk7CiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICByZXR1cm4gJGRiLT5FeGVjdXRlKCdERUxFVEUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9nZW5lcmF0b3IgV0hFUkUgbW9kdWxlX25hbWUgPSA/JywgYXJyYXkoJG5hbWUpKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHVwZGF0ZWF0dGFjaCgkbmFtZSwgJGF0dGFjaCkgewogICAgICAgICRtb2R1bGUgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ01vZHVsZUdlbmVyYXRvcicpOwogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgcmV0dXJuICRkYi0+RXhlY3V0ZSgnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2dlbmVyYXRvciBTRVQgYXR0YWNoID0gPywgbW9kaWZpZWRfZGF0ZSA9IE5PVygpIFdIRVJFIG1vZHVsZV9uYW1lID0gPycsIGFycmF5KCRhdHRhY2gsICRuYW1lKSk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB1cGRhdGVkYXRlKCRuYW1lKSB7CiAgICAgICAgJG1vZHVsZSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnTW9kdWxlR2VuZXJhdG9yJyk7CiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICByZXR1cm4gJGRiLT5FeGVjdXRlKCdVUERBVEUgJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZ2VuZXJhdG9yIFNFVCBtb2RpZmllZF9kYXRlID0gTk9XKCkgV0hFUkUgbW9kdWxlX25hbWUgPSA/JywgYXJyYXkoJG5hbWUpKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGluc2VydCgkbmFtZSwgJGF0dGFjaCA9ICcnKSB7CiAgICAgICAgJG1vZHVsZSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnTW9kdWxlR2VuZXJhdG9yJyk7CiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICByZXR1cm4gJGRiLT5FeGVjdXRlKCdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9nZW5lcmF0b3IgKG1vZHVsZV9uYW1lLGF0dGFjaCwgY3JlYXRlX2RhdGUsIG1vZGlmaWVkX2RhdGUpIFZBTFVFUyAoPyw/LE5PVygpLE5PVygpKScsIGFycmF5KCRuYW1lLCAkYXR0YWNoKSk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfbW9kdWxlc19saXN0KCkgewogICAgICAgIHJldHVybiBleHRlbmRlZF90b29sc19vcHRzOjp0b19oYXNoKHNlbGY6OmdldF9tb2R1bGVzKCksICdtb2R1bGVfbmFtZScsICdpZCcpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X21vZHVsZXMoKSB7CiAgICAgICAgJGl0ZW1zID0gYXJyYXkoKTsKICAgICAgICAkbW9kdWxlID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdNb2R1bGVHZW5lcmF0b3InKTsKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICRpdGVtcyA9ICRkYi0+R2V0QXJyYXkoJ1NFTEVDVCAqIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZ2VuZXJhdG9yJyk7CiAgICAgICAgcmV0dXJuICRpdGVtczsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9hdHRhY2hfbW9kdWxlcygkYXR0YWNobW9kdWxlcykgewogICAgICAgICRpdGVtcyA9IGFycmF5KCk7CiAgICAgICAgJG1vZHVsZSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnTW9kdWxlR2VuZXJhdG9yJyk7CiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICAkaXRlbXMgPSAkZGItPkdldEFycmF5KCdTRUxFQ1QgaWQsbW9kdWxlX25hbWUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9nZW5lcmF0b3IgV0hFUkUgRklORF9JTl9TRVQoaWQsPykgPiAwJywgYXJyYXkoJGF0dGFjaG1vZHVsZXMpKTsKICAgICAgICBpZiAoISRpdGVtcykKICAgICAgICAgICAgcmV0dXJuOwoKICAgICAgICAkaXRlbXMgPSBleHRlbmRlZF90b29sc19vcHRzOjp0b19oYXNoKCRpdGVtcywgJ21vZHVsZV9uYW1lJywgJ2lkJyk7CiAgICAgICAgJG1vZHVsZXMgPSBhcnJheV9rZXlzKCRpdGVtcyk7CgogICAgICAgIHJldHVybiBpbXBsb2RlKCcsICcsICRtb2R1bGVzKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGZpbGxfaXRlbV9mcm9tX2Zvcm1wYXJhbXMoJG1vZCwgYXJyYXkgJiRyb3csICRwYXJhbXMpIHsKICAgICAgICBmb3JlYWNoICgkcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlKSB7CiAgICAgICAgICAgIHN3aXRjaCAoJGtleSkgewogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAkcm93WyRrZXldID0gJHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAKICAgICAgICAvLyBnZXQgY2F0ZWdvcnkgcGFyYW1zCiAgICAgICAgJGNhdGVnb3J5ID0gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfY2F0ZWdvcnkoJG1vZCwgJHJvd1siY2F0ZWdvcnkiXSk7CiAgICAgICAgJHJvd1siY2F0ZWdvcnlfbmFtZSJdID0gJGNhdGVnb3J5WyJjYXRlZ29yeV9uYW1lIl07CiAgICAgICAgJHJvd1siY2F0ZWdvcnlfYWxpYXMiXSA9ICRjYXRlZ29yeVsiY2F0ZWdvcnlfYWxpYXMiXTsKICAgICAgICAKICAgICAgICAvLyBnZXQgY3VzdG9tIGZpZWxkcwogICAgICAgIGlmIChpc3NldCgkcGFyYW1zWydjdXN0b21maWVsZCddKSAmJiBpc19hcnJheSgkcGFyYW1zWydjdXN0b21maWVsZCddKSkgewogICAgICAgICAgICBzZWxmOjokZmllbGRkZWZzID0gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfY29zdHVtX2ZpZWxkX2RlZigkbW9kLCAkcm93WyJpdGVtX2lkIl0sIGZhbHNlKTsKICAgICAgICAgICAgZm9yZWFjaCAoc2VsZjo6JGZpZWxkZGVmcyBhcyAkZmllbGQpIHsKICAgICAgICAgICAgICAgIHNlbGY6OiRmaWVsZGRlZnNbJGZpZWxkWyJmaWVsZGRlZl9pZCJdXSA9ICRmaWVsZDsKICAgICAgICAgICAgfQogICAgICAgICAgICBmb3JlYWNoICgkcGFyYW1zWydjdXN0b21maWVsZCddIGFzICRrZXkgPT4gJHZhbHVlKSB7CiAgICAgICAgICAgICAgICBpZiAoIWlzc2V0KHNlbGY6OiRmaWVsZGRlZnNbJGtleV0pKQogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgaWYgKGlzX2FycmF5KCR2YWx1ZSkpIHsKICAgICAgICAgICAgICAgICAgICBzZWxmOjokZmllbGRkZWZzW3NlbGY6OiRmaWVsZGRlZnNbJGtleV1bImFsaWFzIl1dWyJ2YWx1ZSJdID0gaW1wbG9kZSgnLCcsICR2YWx1ZSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHNlbGY6OiRmaWVsZGRlZnNbc2VsZjo6JGZpZWxkZGVmc1ska2V5XVsiYWxpYXMiXV1bInZhbHVlIl0gPSAkdmFsdWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB1bnNldChzZWxmOjokZmllbGRkZWZzWyRrZXldKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.generator_tools.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBNb2R1bGVHZW5lcmF0b3IgZm9yIENNUyBNYWRlIFNpbXBsZSAoQGt1em1hbnkpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovKioKICogRGVzY3JpcHRpb24gb2YgY2xhc3MKICoKICogQGF1dGhvciBAa3V6bWFueQogKi8KCmNsYXNzIGdlbmVyYXRvcl90b29scyB7CgogICAgcHJpdmF0ZSBzdGF0aWMgJHNlYXJjaF9kYXRlX2VuZCA9IG51bGw7CiAgICBwdWJsaWMgc3RhdGljICRpdGVtcyA9IG51bGw7CiAgICBwdWJsaWMgc3RhdGljICRmaWVsZHNfYmxvY2tsaXN0ID0gYXJyYXkoJ2l0ZW1faWQnLCAnY2F0ZWdvcnlfaWQnLCAndGl0bGUnLCAnYWxpYXMnLCAndXJsJywgJ3Bvc2l0aW9uJywgJ2FjdGl2ZScsICdpdGVtX2RhdGUnLCAnY3JlYXRlX2RhdGUnLCAnbW9kaWZpZWRfZGF0ZScsICdjYXRlZ29yeV9pZCcsICdjYXRlZ29yeV9uYW1lJywgJ2NhdGVnb3J5X2FsaWFzJyk7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkgewogICAgICAgIAogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2ZpZWxkX2RlZnMoJG1vZCwgJHR5cGUgPSBudWxsLCAkZmlsdGVyX2Zyb250ZW5kID0gbnVsbCwgJGZpbHRlcl9hZG1pbiA9IG51bGwsICRzZWN0aW9uID0gJ2l0ZW1zJykgewogICAgICAgICRwYXJtcyA9IGFycmF5KCk7CiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBmaWVsZGRlZl9pZCwgbmFtZSwgYWxpYXMsIGhlbHAsIHR5cGUsIHBvc2l0aW9uLCByZXF1aXJlZCwgc2VhcmNoYWJsZSwgZXh0cmEsIGZyb250ZW5kLGVkaXR2aWV3LCBmaWx0ZXJfZnJvbnRlbmQsIGZpbHRlcl9hZG1pbiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGRkZWYnOwogICAgICAgICRxdWVyeSAuPSAiIFdIRVJFIHNlY3Rpb24gPSA/ICI7CiAgICAgICAgJHBhcm1zW10gPSAkc2VjdGlvbjsKCiAgICAgICAgaWYgKCR0eXBlKSB7CiAgICAgICAgICAgICRxdWVyeSAuPSAiIEFORCB0eXBlICA9ID8gICI7CiAgICAgICAgICAgICRwYXJtc1tdID0gJHR5cGU7CiAgICAgICAgfQogICAgICAgIGlmICgkZmlsdGVyX2Zyb250ZW5kKSB7CiAgICAgICAgICAgICRxdWVyeSAuPSAiIEFORCBmaWx0ZXJfZnJvbnRlbmQgID0gPyAgIjsKICAgICAgICAgICAgJHBhcm1zW10gPSAkZmlsdGVyX2Zyb250ZW5kOwogICAgICAgIH0KICAgICAgICBpZiAoJGZpbHRlcl9hZG1pbikgewogICAgICAgICAgICAkcXVlcnkgLj0gIiBBTkQgZmlsdGVyX2FkbWluICA9ID8gICI7CiAgICAgICAgICAgICRwYXJtc1tdID0gJGZpbHRlcl9hZG1pbjsKICAgICAgICB9CiAgICAgICAgJHF1ZXJ5IC49ICIgIE9SREVSIEJZIHBvc2l0aW9uIjsKICAgICAgICAkZGJyZXN1bHQgPSAkZGItPkdldEFsbCgkcXVlcnksICRwYXJtcyk7CiAgICAgICAgcmV0dXJuICRkYnJlc3VsdDsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9maWVsZF92YWwoJG1vZCwgJGl0ZW1faWQsICRmaWVsZF9hbGlhcykgewogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCB2YWx1ZSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkdmFsICc7CiAgICAgICAgJHF1ZXJ5IC49ICIgV0hFUkUgIGl0ZW1faWQgPSA/IEFORCBmaWVsZGRlZl9pZCA9ID8iOwogICAgICAgICR2YWx1ZSA9ICRkYi0+R2V0T25lKCRxdWVyeSwgJHBhcm1zKTsKICAgICAgICByZXR1cm4gJHZhbHVlOwogICAgfQoKICAgIC8qKgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJGRhdGEKICAgICAqIEByZXR1cm4gdGltZXN0YW1wIAogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHByb2Nlc3NfZmlsdGVyX2RhdGUoJGRhdGUpIHsKICAgICAgICAkZGF0ZV9mcm9tID0gJyc7CiAgICAgICAgc3dpdGNoIChzdHJ0b2xvd2VyKCRkYXRlKSkgewogICAgICAgICAgICBjYXNlICJub3ciOgogICAgICAgICAgICAgICAgJGRhdGVfZnJvbSA9IHRpbWUoKTsKICAgICAgICAgICAgICAgIDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgJGRhdGVfYXJyYXkgPSBleHBsb2RlKCc6JywgJGRhdGUpOwogICAgICAgICAgICAgICAgaWYgKGNvdW50KCRkYXRlX2FycmF5KSA9PSAyKSB7CiAgICAgICAgICAgICAgICAgICAgJGRhdGVfdGltZSA9IHN0cnRvdGltZSgiKyIgLiAkZGF0ZV9hcnJheVswXSAuICIgZGF5Iik7CiAgICAgICAgICAgICAgICAgICAgJGRhdGVfZnJvbSA9IG1rdGltZSgkZGF0ZV9hcnJheVsxXSwgMCwgMCwgZGF0ZSgibSIsICRkYXRlX3RpbWUpLCBkYXRlKCJkIiwgJGRhdGVfdGltZSksIGRhdGUoIlkiLCAkZGF0ZV90aW1lKSk7CiAgICAgICAgICAgICAgICB9IGVsc2VpZiAoY291bnQoJGRhdGVfYXJyYXkpID09IDEpIHsKICAgICAgICAgICAgICAgICAgICAkZGF0ZV9mcm9tID0gc3RydG90aW1lKCIrIiAuICRkYXRlX2FycmF5WzBdIC4gIiBob3VycyIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkZGF0ZV9mcm9tOwogICAgfQoKICAgIC8qKgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJGRhdGEKICAgICAqIEByZXR1cm4gdGltZXN0YW1wIAogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHByb2Nlc3NfZmlsdGVyX2RhdGVfcmVjdXJzaXZlKCRkYXRlKSB7CiAgICAgICAgJGRhdGVfZnJvbSA9ICcnOwogICAgICAgIHN3aXRjaCAoc3RydG9sb3dlcigkZGF0ZSkpIHsKICAgICAgICAgICAgY2FzZSAibm93IjoKICAgICAgICAgICAgICAgICRkYXRlX2Zyb20gPSAiZS52YWx1ZSA9ID8gQU5EIGRhdGVfZm9ybWF0KGMuaXRlbV9kYXRlLCclSDolaTolcycpID4gPyI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICRkYXRlX2FycmF5ID0gZXhwbG9kZSgnOicsICRkYXRlKTsKICAgICAgICAgICAgICAgIGlmIChjb3VudCgkZGF0ZV9hcnJheSkgPT0gMikgewogICAgICAgICAgICAgICAgICAgICRkYXRlX3RpbWUgPSBzdHJ0b3RpbWUoIisiIC4gJGRhdGVfYXJyYXlbMF0gLiAiIGRheSIpOwogICAgICAgICAgICAgICAgICAgICRkYXRlX2Zyb20gPSBta3RpbWUoJGRhdGVfYXJyYXlbMV0sIDAsIDAsIGRhdGUoIm0iLCAkZGF0ZV90aW1lKSwgZGF0ZSgiZCIsICRkYXRlX3RpbWUpLCBkYXRlKCJZIiwgJGRhdGVfdGltZSkpOwogICAgICAgICAgICAgICAgfSBlbHNlaWYgKGNvdW50KCRkYXRlX2FycmF5KSA9PSAxKSB7CiAgICAgICAgICAgICAgICAgICAgJGRhdGVfZnJvbSA9IHN0cnRvdGltZSgiKyIgLiAkZGF0ZV9hcnJheVswXSAuICIgaG91cnMiKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGRhdGVfZnJvbTsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyAkX2NhdGVnb3JpZXMgPSBhcnJheSgpOwoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2NhdGVnb3J5KCRtb2QsICRjYXRlZ29yeV9pZCkgewogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgaWYgKCFpc1NldChzZWxmOjokX2NhdGVnb3JpZXNbJGNhdGVnb3J5X2lkXSkpIHsKICAgICAgICAgICAgJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfIiAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gIl9jYXRlZ29yaWVzIFdIRVJFIGNhdGVnb3J5X2lkID0gPyI7CiAgICAgICAgICAgICRjYXRlZ29yeSA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJGNhdGVnb3J5X2lkKSk7CiAgICAgICAgICAgIHNlbGY6OiRfY2F0ZWdvcmllc1skY2F0ZWdvcnlbImNhdGVnb3J5X2lkIl1dID0gJGNhdGVnb3J5OwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNlbGY6OiRfY2F0ZWdvcmllc1skY2F0ZWdvcnlfaWRdOwogICAgfQoKICAgIC8qKgogICAgICogZ2V0IGNhdGVnb3J5IGxpc3QKICAgICAqIEBwYXJhbSBvYmplY3QgJG1vZAogICAgICogQHJldHVybiBhcnJheSAKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfY2F0ZWdvcnlfbGlzdCgkbW9kLCAkd2hlcmUgPSBhcnJheSgpLCAkcGFyYW1hcnJheSA9IGFycmF5KCksICRmaWVsZCA9ICdsb25nX25hbWUnKSB7CiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICAkY2F0ZWdvcnlsaXN0ID0gYXJyYXkoKTsKCiAgICAgICAgJGNhdGVnb3J5bGlzdFtnZW5lcmF0b3IoKS0+TGFuZygnYWxsY2F0ZWdvcmllcycpXSA9ICcnOwoKICAgICAgICAkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV8iIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAiX2NhdGVnb3JpZXMgIjsKCiAgICAgICAgaWYgKGVtcHR5KCR3aGVyZSkgPT0gZmFsc2UpIHsKICAgICAgICAgICAgJHF1ZXJ5ID0gJHF1ZXJ5IC4gJyBXSEVSRSAnIC4gaW1wbG9kZSgnIEFORCAnLCAkd2hlcmUpOwogICAgICAgIH0KCiAgICAgICAgJHF1ZXJ5IC49IiBPUkRFUiBCWSBoaWVyYXJjaHlfcG9zaXRpb24iOwogICAgICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksICRwYXJhbWFycmF5KTsKICAgICAgICB3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpIHsKICAgICAgICAgICAgaWYgKCRmaWVsZCA9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgJGNhdGVnb3J5bGlzdFtdID0gJHJvdzsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRjYXRlZ29yeWxpc3RbJHJvd1skZmllbGRdXSA9ICRyb3dbJGZpZWxkXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJGNhdGVnb3J5bGlzdDsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9jYXRlZ29yaWVzKCRtb2QsICRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCA9IC0xKSB7CgogICAgICAgICRnQ21zID0gY21zbXMoKTsKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICRkZXB0aCA9IDE7CgovLyBzb3J0IG9yZGVyCiAgICAgICAgJHNvcnRvcmRlciA9ICdBU0MnOwogICAgICAgIGlmIChpc3NldCgkcGFyYW1zWydzb3J0b3JkZXInXSkpIHsKICAgICAgICAgICAgc3dpdGNoIChzdHJ0b2xvd2VyKCRwYXJhbXNbJ3NvcnRvcmRlciddKSkgewogICAgICAgICAgICAgICAgY2FzZSAnYXNjJzoKICAgICAgICAgICAgICAgIGNhc2UgJ2Rlc2MnOgogICAgICAgICAgICAgICAgICAgICRzb3J0b3JkZXIgPSAkcGFyYW1zWydzb3J0b3JkZXInXTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJGlubGluZSA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ2Rpc3BsYXlfaW5saW5lJywgZmFsc2UpOwoKICAgICAgICBpZiAoaXNzZXQoJHBhcmFtc1snaW5saW5lJ10pKSB7CiAgICAgICAgICAgICRpbmxpbmUgPSAkcGFyYW1zWydpbmxpbmUnXTsKICAgICAgICB9CgogICAgICAgICRkZWZhdWx0X2RldGFpbHBhZ2UgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdpdGVtX2NhdGVnb3J5X3JldHVybmlkJywgJycpOwogICAgICAgICRkZXRhaWxwYWdlID0gJGRlZmF1bHRfZGV0YWlscGFnZTsKICAgICAgICAkZGV0YWlscGFnZSA9IGV4dGVuZGVkX3Rvb2xzX29wdHM6OmRldGFpbHBhZ2UoJHBhcmFtcywgJGRldGFpbHBhZ2UpOwoKICAgICAgICAkcXVlcnkgPSAnCgkJU0VMRUNUIGNhdGVnb3J5X2lkLCBjYXRlZ29yeV9uYW1lLCBoaWVyYXJjaHksIGhpZXJhcmNoeV9wb3NpdGlvbiwgbG9uZ19uYW1lCgkJRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2NhdGVnb3JpZXMgCgkJV0hFUkUgMSAKCSc7CiAgICAgICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5J10pICYmICRwYXJhbXNbJ2NhdGVnb3J5J10gIT0gJycpIHsKICAgICAgICAgICAgJGNhdGVnb3JpZXMgPSBleHBsb2RlKCcsJywgJHBhcmFtc1snY2F0ZWdvcnknXSk7CiAgICAgICAgICAgICRxdWVyeSAuPSAnIEFORCAoJzsKICAgICAgICAgICAgJGNvdW50ID0gMDsKICAgICAgICAgICAgZm9yZWFjaCAoJGNhdGVnb3JpZXMgYXMgJG9uZWNhdCkgewogICAgICAgICAgICAgICAgaWYgKCRjb3VudCA+IDApIHsKICAgICAgICAgICAgICAgICAgICAkcXVlcnkgLj0gJyBPUiAnOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKHN0cnBvcygkb25lY2F0LCAnfCcpICE9PSBGQUxTRSB8fCBzdHJwb3MoJG9uZWNhdCwgJyonKSAhPT0gRkFMU0UpCiAgICAgICAgICAgICAgICAgICAgJHF1ZXJ5IC49ICJ1cHBlcihsb25nX25hbWUpIGxpa2UgdXBwZXIoJyIgLiB0cmltKHN0cl9yZXBsYWNlKCcqJywgJyUnLCAkb25lY2F0KSkgLiAiJykiOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICRxdWVyeSAuPSAiY2F0ZWdvcnlfbmFtZSA9ICciIC4gdHJpbSgkb25lY2F0KSAuICInIjsKICAgICAgICAgICAgICAgICRjb3VudCsrOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRxdWVyeSAuPSAnKSAnOwogICAgICAgIH0KICAgICAgICAkcXVlcnkgLj0gJyBPUkRFUiBieSBoaWVyYXJjaHlfcG9zaXRpb24gJyAuICRzb3J0b3JkZXI7CiAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgICAgICAgJHJvd2NvdW50ZXIgPSAwOwoKICAgICAgICAkZmllbGRlZnMgPSAnJzsgewogICAgICAgICAgICAkdG1wID0gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfZmllbGRzKCRtb2QsIGZhbHNlLCAnY2F0ZWdvcmllcycpOwoKICAgICAgICAgICAgaWYgKGlzX2FycmF5KCR0bXApKSB7CiAgICAgICAgICAgICAgICAkZmllbGRkZWZzID0gYXJyYXkoKTsKICAgICAgICAgICAgICAgIGZvciAoJGkgPSAwOyAkaSA8IGNvdW50KCR0bXApOyAkaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgJG9iaiA9ICR0bXBbJGldOwogICAgICAgICAgICAgICAgICAgICRmaWVsZGRlZnNbJG9iai0+YWxpYXNdID0gJG9iajsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSB7CiAgICAgICAgICAgICRxMiA9ICJTRUxFQ1QgQ09VTlQoaXRlbV9pZCkgYXMgY250IEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfIiAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gIl9pdGVtIFdIRVJFIGNhdGVnb3J5X2lkPT8iOwogICAgICAgICAgICBpZiAoaXNzZXQoJHBhcmFtc1snc2hvd2FyY2hpdmUnXSkgJiYgJHBhcmFtc1snc2hvd2FyY2hpdmUnXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAkcTIgLj0gIiBBTkQgKGl0ZW1fZGF0ZSA8ICIgLiAkZGItPkRCVGltZVN0YW1wKHRpbWUoKSkgLiAiKSAiOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRxMiAuPSAnIEFORCBhY3RpdmUgPSBcJzFcJyc7CgogICAgICAgICAgICAkZGJyZXMyID0gJGRiLT5FeGVjdXRlKCRxMiwgYXJyYXkoJHJvd1snY2F0ZWdvcnlfaWQnXSkpOwogICAgICAgICAgICAkY291bnQgPSAkZGJyZXMyLT5GZXRjaFJvdygpOwogICAgICAgICAgICAkcm93WydpbmRleCddID0gJHJvd2NvdW50ZXIrKzsKICAgICAgICAgICAgJHJvd1snY291bnQnXSA9ICRjb3VudFsnY250J107CiAgICAgICAgICAgICRyb3dbJ3ByZXZkZXB0aCddID0gJGRlcHRoOwogICAgICAgICAgICAkZGVwdGggPSAgY291bnQoZXhwbG9kZSgnLicsICRyb3dbJ2hpZXJhcmNoeV9wb3NpdGlvbiddKSk7CiAgICAgICAgICAgICRyb3dbJ2RlcHRoJ10gPSAkZGVwdGg7CiAgICAgICAgICAgIAogICAgICAgICAgICAKCiAgICAgICAgICAgICRwcmV0dHl1cmwgPSBnZW5lcmF0b3JfdG9vbHM6OmdldF9wcmV0dHlfdXJsKCR0aGlzLCBnZW5lcmF0b3JfdG9vbHM6OmdldF9wcmVmaXgoJG1vZCkgLiAnL2MnLCAkcm93WydjYXRlZ29yeV9pZCddLCAkcm93WydjYXRlZ29yeV9hbGlhcyddLCAoJGRlZmF1bHRfZGV0YWlscGFnZSA9PSAtMSAmJiAhaXNTZXQoJHBhcmFtc1siZGV0YWlscGFnZSJdKSA/ICRkZXRhaWxwYWdlIDogJycpLCAkY2F0ZWdvcnl0ZW1wbGF0ZSk7CiAgICAgICAgICAgICRyb3dbJ3VybCddID0gJG1vZC0+Q3JlYXRlRnJvbnRlbmRMaW5rKCRpZCwgJHJldHVybmlkLCAnZGVmYXVsdCcsICcnLCBhcnJheSgnY2F0ZWdvcnlfaWQnID0+ICRyb3dbJ2NhdGVnb3J5X2lkJ10sICdjYXRlZ29yeXRlbXBsYXRlJyA9PiAkY2F0ZWdvcnl0ZW1wbGF0ZSksICcnLCB0cnVlLCBpc1NldCgkcGFyYW1zWyJpbmxpbmUiXSkgPyAxIDogMCwgJycsIGZhbHNlLCAkcHJldHR5dXJsKTsKICAgICAgICAgICAgJHJvd1siaXRlbV9pZCJdID0gJHJvd1siY2F0ZWdvcnlfaWQiXTsKICAgICAgICAgICAgJHJvd1snZmlsZV9sb2NhdGlvbiddID0gZ2VuZXJhdG9yX3Rvb2xzOjpmaWxlX2xvY2F0aW9uKCRtb2QsICRyb3cpOwoKICAgICAgICAgICAgLy8gYWRkIGN1c3RvbSBmaWVsZHMKICAgICAgICAgICAgJGZpZWxkZGVmcyA9IGdlbmVyYXRvcl90b29sczo6Z2V0X2Nvc3R1bV9maWVsZF9kZWYoJG1vZCwgJHJvd1snY2F0ZWdvcnlfaWQnXSwgdHJ1ZSwgJ2FsaWFzJywgJ2NhdGVnb3JpZXMnKTsKICAgICAgICAgICAgJGZpZWxkcyA9IGFycmF5KCk7CiAgICAgICAgICAgIGZvcmVhY2ggKCRmaWVsZGRlZnMgYXMgJG9uZWRlZikgewogICAgICAgICAgICAgICAgaWYgKGVtcHR5KCRvbmVkZWZbImFsaWFzIl0pID09IGZhbHNlICYmIGluX2FycmF5KCRvbmVkZWZbImFsaWFzIl0sIGdlbmVyYXRvcl90b29sczo6JGZpZWxkc19ibG9ja2xpc3QpID09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgJHJvd1skb25lZGVmWyJhbGlhcyJdXSA9ICRvbmVkZWZbInZhbHVlIl07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHJvd1snZmllbGRzJ10gPSAkZmllbGRkZWZzOwoKCiAgICAgICAgICAgICRpdGVtc1tdID0gJHJvdzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRpdGVtczsKICAgIH0KCiAgICAvKioKICAgICAqIGdldCBpdGVtCiAgICAgKiBAcGFyYW0gb2JqZWN0ICRtb2QKICAgICAqIEBwYXJhbSBpbnQgJGl0ZW1faWQKICAgICAqIEByZXR1cm4gYXJyYXkgCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2l0ZW1zKCRtb2QpIHsKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICRzb3J0b3JkZXIgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdzb3J0b3JkZXJfJyAuICRtb2QtPkdldFByZWZlcmVuY2UoJ21vZGUnKSwgJ2Rlc2MnKTsKICAgICAgICAkc29ydGJ5ID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnc29ydGJ5XycgLiAkbW9kLT5HZXRQcmVmZXJlbmNlKCdtb2RlJyksICdwb3NpdGlvbicpOwogICAgICAgICRpdGVtcyA9ICRkYi0+R2V0QWxsKCdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaXRlbSBPUkRFUiBCWSAnIC4gJHNvcnRvcmRlciAuICcgJyAuICRzb3J0YnksIGFycmF5KCRpdGVtX2lkKSk7CiAgICAgICAgcmV0dXJuICRpdGVtczsKICAgIH0KCiAgICAvKioKICAgICAqIGdldCBpdGVtCiAgICAgKiBAcGFyYW0gb2JqZWN0ICRtb2QKICAgICAqIEBwYXJhbSBpbnQgJGl0ZW1faWQKICAgICAqIEByZXR1cm4gYXJyYXkgCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2l0ZW0oJG1vZCwgJGl0ZW1faWQpIHsKICAgICAgICAkZGF0YSA9IGNtc191dGlsczo6Z2V0X2FwcF9kYXRhKCRtb2QtPkdldE5hbWUoKSAuIF9fRlVOQ1RJT05fXyAuICRpdGVtX2lkKTsKICAgICAgICBpZiAoJGRhdGEpCiAgICAgICAgICAgIHJldHVybiAkZGF0YTsKCiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICAkdmFsdWUgPSAkZGItPkdldFJvdygnU0VMRUNUICogRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2l0ZW0gV0hFUkUgaXRlbV9pZCA9ID8nLCBhcnJheSgkaXRlbV9pZCkpOwogICAgICAgIGNtc191dGlsczo6c2V0X2FwcF9kYXRhKCRtb2QtPkdldE5hbWUoKSAuIF9fRlVOQ1RJT05fXyAuICRpdGVtX2lkLCAkdmFsdWUpOwoKICAgICAgICByZXR1cm4gJHZhbHVlOwogICAgfQoKICAgIC8qKgogICAgICogZ2V0IGl0ZW0KICAgICAqIEBwYXJhbSBvYmplY3QgJG1vZAogICAgICogQHBhcmFtIGludCAkaW1hZ2VfaWQKICAgICAqIEByZXR1cm4gYXJyYXkgCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2ltYWdlKCRtb2QsICRpbWFnZV9pZCkgewogICAgICAgICRkYXRhID0gY21zX3V0aWxzOjpnZXRfYXBwX2RhdGEoJG1vZC0+R2V0TmFtZSgpIC4gX19GVU5DVElPTl9fIC4gJGltYWdlX2lkKTsKICAgICAgICBpZiAoJGRhdGEpCiAgICAgICAgICAgIHJldHVybiAkZGF0YTsKCiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICAkdmFsdWUgPSAkZGItPkdldFJvdygnU0VMRUNUICogRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ltYWdlcyBXSEVSRSBpbWFnZV9pZCA9ID8nLCBhcnJheSgkaW1hZ2VfaWQpKTsKICAgICAgICBjbXNfdXRpbHM6OnNldF9hcHBfZGF0YSgkbW9kLT5HZXROYW1lKCkgLiBfX0ZVTkNUSU9OX18gLiAkaW1hZ2VfaWQsICR2YWx1ZSk7CgogICAgICAgIHJldHVybiAkdmFsdWU7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfc2VhcmNoYWJsZV9kYXRlX2VuZCgpIHsKICAgICAgICByZXR1cm4gc2VsZjo6JHNlYXJjaF9kYXRlX2VuZDsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9zZWFyY2hhYmxlX3RleHQoJG1vZCwgJGl0ZW1faWQpIHsKCiAgICAgICAgJHJlc3VsdHMgPSBhcnJheSgpOwoKICAgICAgICAkaXRlbSA9IHNlbGY6OmdldF9pdGVtKCRtb2QsICRpdGVtX2lkKTsKCiAgICAgICAgaWYgKCRpdGVtWydhY3RpdmUnXSAhPSAxKQogICAgICAgICAgICByZXR1cm4gYXJyYXkoKTsKCiAgICAgICAgJHJlc3VsdHNbXSA9ICRpdGVtWyd0aXRsZSddOwogICAgICAgICRyZXN1bHRzW10gPSAkaXRlbVsnYWxpYXMnXTsKCi8vIGRhdGUgZW5kIGZvciBzZWFyY2ggcmVzdWx0cwogICAgICAgIHNlbGY6OiRzZWFyY2hfZGF0ZV9lbmQgPSBudWxsOwogICAgICAgIGlmICgkbW9kLT5HZXRQcmVmZXJlbmNlKCdzZWFyY2hfZGF0ZV9lbmQnKSkgewogICAgICAgICAgICAkaXRlbSA9IHNlbGY6OmdldF9pdGVtKCRtb2QsICRpdGVtX2lkKTsKICAgICAgICAgICAgc2VsZjo6JHNlYXJjaF9kYXRlX2VuZCA9IHN0cnRvdGltZSgkaXRlbVsiaXRlbV9kYXRlX2VuZCJdKTsKICAgICAgICB9CgogICAgICAgICRkZWZzID0gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfY29zdHVtX2ZpZWxkX2RlZigkbW9kLCAkaXRlbV9pZCk7CgoKICAgICAgICBmb3JlYWNoICgkZGVmcyBhcyAkb25lZGVmKSB7CgovLyBza2lwCiAgICAgICAgICAgIGlmICghJG9uZWRlZlsic2VhcmNoYWJsZSJdKQogICAgICAgICAgICAgICAgY29udGludWU7CgovL3NlcmFjaGFibGUgLSB0ZXh0Ym94LCB0ZXh0YXJlYSwgZHJvcGRvd24KICAgICAgICAgICAgc3dpdGNoICgkb25lZGVmWyJ0eXBlIl0pIHsKICAgICAgICAgICAgICAgIGNhc2UgJ3RleHRib3gnOgogICAgICAgICAgICAgICAgY2FzZSAndGV4dGFyZWEnOgogICAgICAgICAgICAgICAgY2FzZSAnZHJvcGRvd24nOgogICAgICAgICAgICAgICAgICAgIGlmIChpc3NldCgkb25lZGVmWyJ2YWx1ZSJdKSkgewogICAgICAgICAgICAgICAgICAgICAgICAkcmVzdWx0c1tdID0gJG9uZWRlZlsidmFsdWUiXTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIGltcGxvZGUoJyAnLCAkcmVzdWx0cyk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzZWFyY2hfcmVpbmRleCgkbW9kLCAkbW9kdWxlKSB7CiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpdGVtX2lkIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtIHdoZXJlIGFjdGl2ZSA9IDEnOwogICAgICAgICRpdGVtcyA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5LCBhcnJheSgpKTsKCiAgICAgICAgaWYgKCEkaXRlbXMpCiAgICAgICAgICAgIHJldHVybjsKCiAgICAgICAgZm9yZWFjaCAoJGl0ZW1zIGFzICRpdGVtKSB7CiAgICAgICAgICAgICRtb2R1bGUtPkFkZFdvcmRzKCRtb2QtPkdldE5hbWUoKSwgJGl0ZW1bIml0ZW1faWQiXSwgJ2l0ZW0nLCBzZWxmOjpnZXRfc2VhcmNoYWJsZV90ZXh0KCRtb2QsICRpdGVtWyJpdGVtX2lkIl0pLCBzZWxmOjpnZXRfc2VhcmNoYWJsZV9kYXRlX2VuZCgpKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfc2VhcmNoX3Jlc3VsdCgkbW9kLCAkcmV0dXJuaWQsICRpdGVtX2lkLCAkYXR0ciA9ICcnKSB7CiAgICAgICAgJHJlc3VsdCA9IGFycmF5KCk7CgogICAgICAgIGlmICgkYXR0ciAhPSAnaXRlbScpCiAgICAgICAgICAgIHJldHVybiAkcmVzdWx0OwoKICAgICAgICAkZGV0YWlsdGVtcGxhdGUgPSAnJzsKICAgICAgICBpZiAoaXNTZXQoJHBhcmFtc1siZGV0YWlsdGVtcGxhdGUiXSkpCiAgICAgICAgICAgICRkZXRhaWx0ZW1wYWx0ZSA9ICRwYXJhbXNbImRldGFpbHRlbXBsYXRlIl07CgogICAgICAgICRpbmxpbmUgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdkaXNwbGF5X2lubGluZScsIDApOwogICAgICAgIGlmIChpc1NldCgkcGFyYW1zWyJpbmxpbmUiXSkpCiAgICAgICAgICAgICRkZXRhaWx0ZW1wYWx0ZSA9ICRwYXJhbXNbImlubGluZSJdOwoKICAgICAgICAvKiBpZiAoJG1vZC0+R2V0UHJlZmVyZW5jZSgnaXRlbV9kZXRhaWxfcmV0dXJuaWQnLCAwKSkgewogICAgICAgICAgJHJldHVybmlkID0gJyc7CiAgICAgICAgICB9ICovCgoKICAgICAgICAkcm93ID0gc2VsZjo6Z2V0X2l0ZW0oJG1vZCwgJGl0ZW1faWQpOwogICAgICAgIGlmICgkcm93KSB7CgovLzAgcG9zaXRpb24gaXMgdGhlIHByZWZpeCBkaXNwbGF5ZWQgaW4gdGhlIGxpc3QgcmVzdWx0cy4KICAgICAgICAgICAgJHJlc3VsdFswXSA9ICRtb2QtPkdldEZyaWVuZGx5TmFtZSgpOwoKLy8xIHBvc2l0aW9uIGlzIHRoZSB0aXRsZQogICAgICAgICAgICAkcmVzdWx0WzFdID0gJHJvd1sndGl0bGUnXTsKCi8vMiBwb3NpdGlvbiBpcyB0aGUgVVJMIHRvIHRoZSB0aXRsZS4KCiAgICAgICAgICAgIGlmIChlbXB0eSgkcm93WyJ1cmwiXSkgPT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICRwcmV0dHl1cmwgPSAkcm93WyJ1cmwiXTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRwcmV0dHl1cmwgPSBnZW5lcmF0b3JfdG9vbHM6OmdldF9wcmV0dHlfdXJsKCRtb2QsIGdlbmVyYXRvcl90b29sczo6Z2V0X3ByZWZpeCgkbW9kKSwgJHJvd1snaXRlbV9pZCddLCAkcm93WydhbGlhcyddLCBpc1NldCgkcGFyYW1zWyJkZXRhaWxwYWdlIl0pID8gJGRldGFpbHBhZ2UgOiAkcmV0dXJuaWQsICRkZXRhaWx0ZW1wbGF0ZSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRyZXN1bHRbMl0gPSAkbW9kLT5DcmVhdGVGcm9udGVuZExpbmsoJ2NudG50MDEnLCAkcmV0dXJuaWQsICdkZXRhaWwnLCAnJywgYXJyYXkoJ2l0ZW1faWQnID0+ICRyb3dbJ2l0ZW1faWQnXSwgJ2RldGFpbHRlbXBsYXRlJyA9PiAkZGV0YWlsdGVtcGxhdGUpLCAnJywgdHJ1ZSwgJGlubGluZSwgJycsIGZhbHNlLCAkcHJldHR5dXJsKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcm91dGUoJG1vZCwgJGZpbGVuYW1lKSB7CiAgICAgICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsKICAgICAgICAkcGF0aGluZm8gPSBwYXRoaW5mbygkZmlsZW5hbWUpOwogICAgICAgICRmaWxhbmVhbSA9ICRwYXRoaW5mb1siYmFzZW5hbWUiXTsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2dlbmVyYXRvcl90ZW1wbGF0ZXMnLCBjbXNfam9pbl9wYXRoKCRjb25maWdbInJvb3RfcGF0aCJdLCAnbW9kdWxlcycsICdNb2R1bGVHZW5lcmF0b3InLCAnTW9kdWxlTGliJywgJ3RlbXBsYXRlcycpKTsKICAgICAgICByZXR1cm4gY21zX2pvaW5fcGF0aCgkY29uZmlnWyJyb290X3BhdGgiXSwgJ21vZHVsZXMnLCAnTW9kdWxlR2VuZXJhdG9yJywgJ01vZHVsZUxpYicsICRwYXRoaW5mb1siYmFzZW5hbWUiXSk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBkZXRhaWxwYWdlKCYkcGFyYW1zLCAkZGV0YWlscGFnZSkgewoKICAgICAgICAkZ2NtcyA9IGNtc21zKCk7CiAgICAgICAgcmV0dXJuICRkZXRhaWxwYWdlOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY3JlYXRlX3BhcmVudF9kcm9wZG93bigkbW9kLCAkaWQsICRjYXRpZCA9IC0xLCAkc2VsZWN0ZWR2YWx1ZSA9IC0xKSB7CiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCiAgICAgICAgJGxvbmduYW1lID0gJyc7CgogICAgICAgICRpdGVtc1snKCcgLiBnZW5lcmF0b3IoKS0+TGFuZygnbm9uZScpIC4gJyknXSA9ICctMSc7CgogICAgICAgICRxdWVyeSA9ICJTRUxFQ1QgaGllcmFyY2h5LCBsb25nX25hbWUgRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV8iIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAiX2NhdGVnb3JpZXMgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/IjsKICAgICAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY2F0aWQpKTsKCiAgICAgICAgd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSB7CiAgICAgICAgICAgICRsb25nbmFtZSA9ICRyb3dbJ2hpZXJhcmNoeSddIC4gJyUnOwogICAgICAgIH0KICAgICAgICAkcXVlcnkgPSAiU0VMRUNUIGNhdGVnb3J5X2lkLCBjYXRlZ29yeV9uYW1lLCBoaWVyYXJjaHksIGxvbmdfbmFtZSBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlXyIgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICJfY2F0ZWdvcmllcyBXSEVSRSBoaWVyYXJjaHkgbm90IGxpa2UgPyBPUkRFUiBieSBoaWVyYXJjaHkiOwogICAgICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRsb25nbmFtZSkpOwogICAgICAgIHdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkgewogICAgICAgICAgICAkaXRlbXNbJHJvd1snbG9uZ19uYW1lJ11dID0gJHJvd1snY2F0ZWdvcnlfaWQnXTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAncGFyZW50JywgJGl0ZW1zLCAtMSwgJHNlbGVjdGVkdmFsdWUpOwogICAgfQoKICAgIC8qKgogICAgICogIAogICAgICogQHBhcmFtIG9iamVjdCAkbW9kIAogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHVwZGF0ZV9oaWVyYXJjaHlfcG9zaXRpb25zKCRtb2QpIHsKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwoKICAgICAgICAkcXVlcnkgPSAiU0VMRUNUIGNhdGVnb3J5X2lkLCBjYXRlZ29yeV9uYW1lLHBhcmVudF9pZCBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlXyIgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICJfY2F0ZWdvcmllcyBPUkRFUiBCWSBwb3NpdGlvbiwgY2F0ZWdvcnlfaWQiOwogICAgICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwogICAgICAgICRjb3VudGVyID0gYXJyYXkoKTsKICAgICAgICB3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpIHsKICAgICAgICAgICAgJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uID0gIiI7CiAgICAgICAgICAgICRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbjIgPSAiIjsKICAgICAgICAgICAgJHBvc2l0aW9uID0gIiI7CiAgICAgICAgICAgICRjdXJyZW50X2xvbmdfbmFtZSA9ICIiOwogICAgICAgICAgICAkY29udGVudF9pZCA9ICRyb3dbJ2NhdGVnb3J5X2lkJ107CiAgICAgICAgICAgICRjdXJyZW50X3BhcmVudF9pZCA9ICRyb3dbJ2NhdGVnb3J5X2lkJ107CiAgICAgICAgICAgICRjb3VudCA9IDA7CiAgICAgICAgICAgICRjb3VudGVyWyRyb3dbJ3BhcmVudF9pZCddXSsrOwogICAgICAgICAgICAkcG9zaXRpb24gPSAkY291bnRlclskcm93WydwYXJlbnRfaWQnXV07CgogICAgICAgICAgICB3aGlsZSAoJGN1cnJlbnRfcGFyZW50X2lkID4gLTEpIHsKICAgICAgICAgICAgICAgICRxdWVyeSA9ICJTRUxFQ1QgY2F0ZWdvcnlfaWQsIGNhdGVnb3J5X25hbWUsIHBhcmVudF9pZCwgcG9zaXRpb24gRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV8iIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAiX2NhdGVnb3JpZXMgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/IjsKICAgICAgICAgICAgICAgICRyb3cyID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSgkY3VycmVudF9wYXJlbnRfaWQpKTsKICAgICAgICAgICAgICAgIGlmICgkcm93MikgewogICAgICAgICAgICAgICAgICAgICRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbiA9IHN0cl9wYWQoJHJvdzJbJ2NhdGVnb3J5X2lkJ10sIDUsICcwJywgU1RSX1BBRF9MRUZUKSAuICIuIiAuICRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbjsKICAgICAgICAgICAgICAgICAgICAkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24yID0gc3RyX3BhZCgkcm93MlsncG9zaXRpb24nXSwgNSwgJzAnLCBTVFJfUEFEX0xFRlQpIC4gIi4iIC4gJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uMjsKICAgICAgICAgICAgICAgICAgICAkY3VycmVudF9sb25nX25hbWUgPSAkcm93MlsnY2F0ZWdvcnlfbmFtZSddIC4gJyB8ICcgLiAkY3VycmVudF9sb25nX25hbWU7CiAgICAgICAgICAgICAgICAgICAgJGN1cnJlbnRfcGFyZW50X2lkID0gJHJvdzJbJ3BhcmVudF9pZCddOwogICAgICAgICAgICAgICAgICAgICRjb3VudCsrOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkY3VycmVudF9wYXJlbnRfaWQgPSAwOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgoKCgogICAgICAgICAgICBpZiAoc3RybGVuKCRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbikgPiAwKSB7CiAgICAgICAgICAgICAgICAkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24gPSBzdWJzdHIoJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uLCAwLCBzdHJsZW4oJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uKSAtIDEpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoc3RybGVuKCRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbjIpID4gMCkgewogICAgICAgICAgICAgICAgJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uMiA9IHN1YnN0cigkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24yLCAwLCBzdHJsZW4oJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uMikgLSAxKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHN0cmxlbigkY3VycmVudF9sb25nX25hbWUpID4gMCkgewogICAgICAgICAgICAgICAgJGN1cnJlbnRfbG9uZ19uYW1lID0gc3Vic3RyKCRjdXJyZW50X2xvbmdfbmFtZSwgMCwgc3RybGVuKCRjdXJyZW50X2xvbmdfbmFtZSkgLSAzKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHF1ZXJ5ID0gIlVQREFURSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV8iIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAiX2NhdGVnb3JpZXMgU0VUIGhpZXJhcmNoeSA9ID8sIHBvc2l0aW9uID0gPywgaGllcmFyY2h5X3Bvc2l0aW9uID0gPywgbG9uZ19uYW1lID0gPyBXSEVSRSBjYXRlZ29yeV9pZCA9ID8iOwoKICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uLCAkcG9zaXRpb24sICRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbjIsICRjdXJyZW50X2xvbmdfbmFtZSwgJGNvbnRlbnRfaWQpKTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBIYW5kbGUgdXBsb2FkCiAgICAgKiBAcGFyYW0gbWl4ZWQgJGl0ZW1pZCBUaGUgaXRlbSBJRCwgdXNlZCB0byBmb3JtIHRoZSB1cGxvYWQgZGlyZWN0b3J5IG5hbWUKICAgICAqIEBwYXJhbSBzdHJpbmcgJGZpZWxkbmFtZSBUaGUgdXBsb2FkIGZpZWxkIG5hbWUsIGZvciBleGFtcGxlLCBtMV9jdXN0b21maWVsZF8xCiAgICAgKiBAcGFyYW0gc3RyaW5nICYkZXJyb3IgSG9sZHMgYW55IGVycm9ycyB0aGF0IG1heSBvY2N1cgogICAgICogQHBhcmFtIGFycmF5ICRhbGxvdyBBbGxvd2VkIGZpbGUgZXh0ZW5zaW9ucwogICAgICogQHJldHVybiBib29sfHN0cmluZyBSZXR1cm5zIGZpbGVuYW1lIG9uIHN1Y2Nlc3NmdWwgdXBsb2FkIG9yIGZhbHNlIG9uIGZhaWx1cmUKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBoYW5kbGVfdXBsb2FkKCRtb2QsICRpdGVtaWQsICRmaWVsZG5hbWUsICYkZXJyb3IsICRhbGxvdyA9IGFycmF5KCksICRyb3cgPSBhcnJheSgpKSB7CgoKICAgICAgICAkYWxsb3cgPSAoIWVtcHR5KCRhbGxvdykgPyAkYWxsb3cgOiBhcnJheSgnanBnJywgJ2dpZicsICdwbmcnKSk7CiAgICAgICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgICAgICRwID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwgJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkpOwoKICAgICAgICBpZiAoIWlzX2RpcigkcCkpIHsKICAgICAgICAgICAgJHJlcyA9IEBta2RpcigkcCk7CgogICAgICAgICAgICBpZiAoJHJlcyA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICRlcnJvciA9ICRtb2QtPkxhbmcoJ2Vycm9yX21rZGlyJywgJHApOwogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkcCA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpLCAnaWQnIC4gJGl0ZW1pZCk7CgogICAgICAgIGlmICghaXNfZGlyKCRwKSkgewogICAgICAgICAgICBpZiAoQG1rZGlyKCRwKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICRlcnJvciA9ICRtb2QtPkxhbmcoJ2Vycm9yX21rZGlyJywgJHApOwogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoJF9GSUxFU1skZmllbGRuYW1lXVsnc2l6ZSddID4gJGNvbmZpZ1snbWF4X3VwbG9hZF9zaXplJ10pIHsKICAgICAgICAgICAgJGVycm9yID0gJG1vZC0+TGFuZygnZXJyb3JfZmlsZXNpemUnKTsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgJGZpbGVuYW1lID0gYmFzZW5hbWUoJF9GSUxFU1skZmllbGRuYW1lXVsnbmFtZSddKTsKICAgICAgICAkZGVzdCA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpLCAnaWQnIC4gJGl0ZW1pZCwgJGZpbGVuYW1lKTsKICAgICAgICAkZXh0ID0gc3RydG9sb3dlcihzdWJzdHIoc3RycmNocigkZmlsZW5hbWUsICcuJyksIDEpKTsKCiAgICAgICAgaWYgKCFpbl9hcnJheSgkZXh0LCAkYWxsb3cpKSB7CiAgICAgICAgICAgICRlcnJvciA9ICRtb2QtPkxhbmcoJ2Vycm9yX2ludmFsaWRmaWxldHlwZScpOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQoKICAgICAgICBpZiAoQGNtc19tb3ZlX3VwbG9hZGVkX2ZpbGUoJF9GSUxFU1skZmllbGRuYW1lXVsndG1wX25hbWUnXSwgJGRlc3QpID09PSBmYWxzZSkgewogICAgICAgICAgICAkZXJyb3IgPSAkbW9kLT5MYW5nKCdlcnJvcl9tb3ZlZmlsZScsICRkZXN0KTsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRmaWxlbmFtZTsKICAgIH0KCiAgICAvKioKICAgICAqCiAgICAgKiBAcGFyYW0gdHlwZSAkaXRlbV9pZAogICAgICogQHJldHVybiBzdHJpbmcgCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2Nvc3R1bV9maWVsZF9kZWYoJG1vZCwgJGl0ZW1faWQsICRmcm9udGVuZCA9IGZhbHNlLCAka2V5ID0gJ2FsaWFzJywgJHNlY3Rpb24gPSAnaXRlbXMnKSB7CgoKCiAgICAgICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CgogICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgQi5maWVsZGRlZl9pZCxCLm5hbWUsIEIuYWxpYXMsIEEudmFsdWUsIEIudHlwZSwgQi5leHRyYSwgQi5zZWFyY2hhYmxlLCBCLmZyb250ZW5kCgkJRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkdmFsIEEsICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGRkZWYgQgoJCVdIRVJFIEEuZmllbGRkZWZfaWQgPSBCLmZpZWxkZGVmX2lkIEFORCBBLml0ZW1faWQgPSA/ICc7CiAgICAgICAgaWYgKCRmcm9udGVuZCA9PSB0cnVlKSB7CiAgICAgICAgICAgICRxdWVyeSAuPSAnIEFORCBCLmZyb250ZW5kID0gMSAnOwogICAgICAgIH0KCiAgICAgICAgJHBhcm1zID0gYXJyYXkoKTsKICAgICAgICAkcGFybXNbXSA9ICRpdGVtX2lkOwoKICAgICAgICAkcXVlcnkgLj0gJyBBTkQgQi5zZWN0aW9uID0gPyAnOwogICAgICAgICRwYXJtc1tdID0gJHNlY3Rpb247CgogICAgICAgICRxdWVyeSAuPSAnT1JERVIgQlkgQi5wb3NpdGlvbiAnOwoKICAgICAgICAvL2NhY2hlCiAgICAgICAgJHJvd3MgPSBjbXNfdXRpbHM6OmdldF9hcHBfZGF0YSgkbW9kLT5HZXROYW1lKCkgLiBfX0ZVTkNUSU9OX18gLiAkaXRlbV9pZCAuICRmcm9udGVuZCAuICRrZXkgLiAkc2VjdGlvbik7CiAgICAgICAgaWYgKCEkcm93cykKICAgICAgICAgICAgJHJvd3MgPSAkZGItPkdldEFycmF5KCRxdWVyeSwgJHBhcm1zKTsKICAgICAgICBjbXNfdXRpbHM6OnNldF9hcHBfZGF0YSgkbW9kLT5HZXROYW1lKCkgLiBfX0ZVTkNUSU9OX18gLiAkaXRlbV9pZCAuICRmcm9udGVuZCAuICRrZXkgLiAkc2VjdGlvbiwgJHJvd3MpOwogICAgICAgIC8vIGVuZCBjYWNoZQoKICAgICAgICAkZmllbGRkZWZzID0gYXJyYXkoKTsKICAgICAgICBmb3JlYWNoICgkcm93cyBhcyAkcm93KSB7CiAgICAgICAgICAgICRmaWVsZGRlZnNbJHJvd1ska2V5XV0gPSBhcnJheSgKICAgICAgICAgICAgICAgICdmaWVsZGRlZl9pZCcgPT4gJHJvd1snZmllbGRkZWZfaWQnXSwKICAgICAgICAgICAgICAgICduYW1lJyA9PiAkcm93WyduYW1lJ10sCiAgICAgICAgICAgICAgICAnYWxpYXMnID0+ICRyb3dbJ2FsaWFzJ10sCiAgICAgICAgICAgICAgICAndmFsdWUnID0+ICRyb3dbJ3ZhbHVlJ10sCiAgICAgICAgICAgICAgICAnc2VhcmNoYWJsZScgPT4gJHJvd1snc2VhcmNoYWJsZSddLAogICAgICAgICAgICAgICAgJ2Zyb250ZW5kJyA9PiAkcm93Wydmcm9udGVuZCddLAogICAgICAgICAgICAgICAgJ3R5cGUnID0+ICRyb3dbJ3R5cGUnXQogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCRyb3dbJ3R5cGUnXSA9PSAnc2VsZWN0X2ZpbGUnKSB7CiAgICAgICAgICAgICAgICAkZXh0cmFfY29tbWFuZHMgPSBnZW5lcmF0b3JfdG9vbHM6OmdldF9leHRyYSgkcm93WydleHRyYSddKTsKICAgICAgICAgICAgICAgICRkaXIgPSBnZW5lcmF0b3JfdG9vbHM6OmdldF9leHRyYV9kaXIoJGV4dHJhX2NvbW1hbmRzKTsKICAgICAgICAgICAgICAgICRmaWVsZGRlZnNbJHJvd1ska2V5XV1bJ2RpciddID0gJGNvbmZpZ1sndXBsb2Fkc191cmwnXSAuICghZW1wdHkoJGRpcikgPyAnLycgLiAkZGlyIDogJycpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoJHJvd1sndHlwZSddID09ICd1cGxvYWRfZmlsZScpIHsKICAgICAgICAgICAgICAgICRmaWVsZGRlZnNbJHJvd1ska2V5XV1bJ2RpciddID0gJGNvbmZpZ1sndXBsb2Fkc191cmwnXSAuICcvJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJy9pZCcgLiAkaXRlbV9pZDsKICAgICAgICAgICAgfQogICAgICAgIH0KCgogICAgICAgIHJldHVybiAkZmllbGRkZWZzOwogICAgfQoKICAgIC8qKgogICAgICoKICAgICAqIEBwYXJhbSBvYmplY3QgJG1vZHVsZQogICAgICogQHBhcmFtIGJvb2xlYW4gJGZyb250ZW5kCiAgICAgKiBAcmV0dXJuIHR5cGUgCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2ZpZWxkcygkbW9kdWxlLCAkZnJvbnRlbmQgPSB0cnVlLCAkc2VjdGlvbiA9ICdpdGVtcycpIHsKCiAgICAgICAgJHF1ZXJ5YXJyYXkgPSBhcnJheSgpOwogICAgICAgICRwYXJtc2FycmF5ID0gYXJyYXkoKTsKCiAgICAgICAgJHZhbHVlID0gY21zX3V0aWxzOjpnZXRfYXBwX2RhdGEoJG1vZHVsZS0+R2V0TmFtZSgpIC4gX19GVU5DVElPTl9fKTsKICAgICAgICBpZiAoJHZhbHVlKQogICAgICAgICAgICByZXR1cm4gJHZhbHVlOwoKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kdWxlLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGRkZWYnOwoKICAgICAgICAkcXVlcnlhcnJheVtdID0gJyBzZWN0aW9uID0gPyc7CiAgICAgICAgJHBhcm1zYXJyYXlbXSA9ICRzZWN0aW9uOwoKICAgICAgICBpZiAoJGZyb250ZW5kID09IHRydWUpIHsKICAgICAgICAgICAgJHF1ZXJ5YXJyYXlbXSA9ICcgZnJvbnRlbmQgPSA/JzsKICAgICAgICAgICAgJHBhcm1zYXJyYXlbXSA9IDE7CiAgICAgICAgfQovLyBXSEVSRQogICAgICAgICRxdWVyeSAuPSAoIGVtcHR5KCRxdWVyeWFycmF5KSA9PSBmYWxzZSA/ICcgV0hFUkUgJyAuIGltcGxvZGUoJyBBTkQgJywgJHF1ZXJ5YXJyYXkpIDogJycgKTsKCiAgICAgICAgJHZhbHVlID0gJGRiLT5HZXRBcnJheSgkcXVlcnksICRwYXJtc2FycmF5KTsKICAgICAgICBjbXNfdXRpbHM6OnNldF9hcHBfZGF0YSgkbW9kdWxlLT5HZXROYW1lKCkgLiBfX0ZVTkNUSU9OX18sICR2YWx1ZSk7CgogICAgICAgIHJldHVybiAkdmFsdWU7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpbWFnZV9sb2NhdGlvbigkbW9kdWxlLCAkcm93KSB7CgogICAgICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKICAgICAgICAkcmVsX3BhdGggPSAkbW9kdWxlLT5fR2V0TW9kdWxlQWxpYXMoKSAuICcvaWQnIC4gJHJvd1snaXRlbV9pZCddIC4gJy9nYWxsZXJ5JzsKICAgICAgICBjZ2VfZGlyOjpta2RpcnIoY21zX2pvaW5fcGF0aCgkY29uZmlnWyJ1cGxvYWRzX3BhdGgiXSwgJHJlbF9wYXRoKSk7CiAgICAgICAgJHZhbHVlID0gJGNvbmZpZ1sndXBsb2Fkc191cmwnXSAuICcvJyAuICRyZWxfcGF0aDsKICAgICAgICByZXR1cm4gJHZhbHVlOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaW1hZ2VwYXRoX2xvY2F0aW9uKCRtb2R1bGUsICRyb3cpIHsKCiAgICAgICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgICAgICRyZWxfcGF0aCA9IGNtc19qb2luX3BhdGgoJG1vZHVsZS0+X0dldE1vZHVsZUFsaWFzKCksICdpZCcgLiAkcm93WydpdGVtX2lkJ10sICdnYWxsZXJ5Jyk7CiAgICAgICAgY2dlX2Rpcjo6bWtkaXJyKGNtc19qb2luX3BhdGgoJGNvbmZpZ1sidXBsb2Fkc19wYXRoIl0sICRyZWxfcGF0aCkpOwogICAgICAgICR2YWx1ZSA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sICRyZWxfcGF0aCk7CiAgICAgICAgcmV0dXJuICR2YWx1ZTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGZpbGVfbG9jYXRpb24oJG1vZHVsZSwgJHJvdykgewoKICAgICAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAgICAgJHJlbF9wYXRoID0gJG1vZHVsZS0+X0dldE1vZHVsZUFsaWFzKCkgLiAnL2lkJyAuICRyb3dbJ2l0ZW1faWQnXTsKICAgICAgICBjZ2VfZGlyOjpta2RpcnIoY21zX2pvaW5fcGF0aCgkY29uZmlnWyJ1cGxvYWRzX3BhdGgiXSwgJHJlbF9wYXRoKSk7CiAgICAgICAgJHZhbHVlID0gJGNvbmZpZ1sndXBsb2Fkc191cmwnXSAuICcvJyAuICRyZWxfcGF0aDsKICAgICAgICByZXR1cm4gJHZhbHVlOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZmlsZXBhdGhfbG9jYXRpb24oJG1vZHVsZSwgJHJvdykgewoKICAgICAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAgICAgJHJlbF9wYXRoID0gY21zX2pvaW5fcGF0aCgkbW9kdWxlLT5fR2V0TW9kdWxlQWxpYXMoKSwgJ2lkJyAuICRyb3dbJ2l0ZW1faWQnXSk7CiAgICAgICAgY2dlX2Rpcjo6bWtkaXJyKGNtc19qb2luX3BhdGgoJGNvbmZpZ1sidXBsb2Fkc19wYXRoIl0sICRyZWxfcGF0aCkpOwogICAgICAgICR2YWx1ZSA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sICRyZWxfcGF0aCk7CiAgICAgICAgcmV0dXJuICR2YWx1ZTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNoZWNrX3JvdygkbW9kLCAkZmllbGRpZCwgJGZpZWxkdmFsdWUpIHsKCiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICAkc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7CgogICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgQS5pdGVtX2lkIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtIEEnOwogICAgICAgICRxdWVyeSAuPSAnIExFRlQgSk9JTiAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkdmFsIEZWQSBPTiBBLml0ZW1faWQgPSBGVkEuaXRlbV9pZCBBTkQgRlZBLmZpZWxkZGVmX2lkID0gPyAnOwogICAgICAgICRxdWVyeSAuPSAnIFdIRVJFIEEuYWN0aXZlID0gMSBBTkQgRlZBLnZhbHVlID0gPyAnOwogICAgICAgIHJldHVybiAkZGItPkdldE9uZSgkcXVlcnksIGFycmF5KCRmaWVsZGlkLCAkZmllbGR2YWx1ZSkpOwogICAgfQoKICAgIC8qKgogICAgICogSGFzIFByZWZpeAogICAgICogQHBhcmFtIHN0cmluZyAkc3RyaW5nIFRoZSBzdHJpbmcgaW4gcXVlc3Rpb24KICAgICAqIEBwYXJhbSBhcnJheSAkcHJlZml4IEFycmF5IG9mIHByZWZpeGVzIHRvIG1hdGNoIGFnYWluc3QKICAgICAqIEByZXR1cm4gYm9vbCBSZXR1cm5zIHRydWUgaWYgcHJlZml4IGlzIGZvdW5kLCBvciBmYWxzZSBvdGhlcndpc2UKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBoYXNfcHJlZml4KCRzdHJpbmcsICRwcmVmaXhlcykgewogICAgICAgIGlmICghaXNfc3RyaW5nKCRzdHJpbmcpKQogICAgICAgICAgICByZXR1cm47CiAgICAgICAgaWYgKCFpc19hcnJheSgkcHJlZml4ZXMpKQogICAgICAgICAgICByZXR1cm47CgogICAgICAgIGZvcmVhY2ggKCRwcmVmaXhlcyBhcyAkcHJlZml4KSB7CiAgICAgICAgICAgIGlmIChzdHJwb3MoJHN0cmluZywgJHByZWZpeCkgPT09IDApIHsKICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgRXh0cmE6IEV4Y2x1ZGUgUHJlZml4CiAgICAgKiBAcGFyYW0gYXJyYXkgJGluc3RydWN0aW9ucyBJbnN0cnVjdGlvbnMKICAgICAqIEByZXR1cm4gYXJyYXkgUmV0dXJucyBhcnJheSBvZiBwcmVmaXhlcyB0byBleGNsdWRlIGlmIHNwZWNpZmllZAogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9leHRyYV9leGNsdWRlX3ByZWZpeCgkaW5zdHJ1Y3Rpb25zKSB7CiAgICAgICAgaWYgKCFpc19hcnJheSgkaW5zdHJ1Y3Rpb25zKSkKICAgICAgICAgICAgcmV0dXJuOwoKICAgICAgICBmb3JlYWNoICgkaW5zdHJ1Y3Rpb25zIGFzICRpbnN0cnVjdGlvbikgewovLyBkaXJbdGh1bWJfXQovLyBkaXJbdGh1bWJfLG5vdG1lXQogICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgnL15leGNsdWRlX3ByZWZpeFxbKFteLF0rKCxbXixdKykqKVxdJC9pJywgJGluc3RydWN0aW9uLCAkbWF0Y2hlcykpIHsKICAgICAgICAgICAgICAgIHJldHVybiBleHBsb2RlKCcsJywgJG1hdGNoZXNbMV0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogR2V0IEV4dHJhOiBEaXJlY3RvcnkKICAgICAqIEBwYXJhbSBhcnJheSAkaW5zdHJ1Y3Rpb25zIEluc3RydWN0aW9ucwogICAgICogQHJldHVybiBzdHJpbmcgUmV0dXJucyB0aGUgZGlyZWN0b3J5IGlmIHNwZWNpZmllZAogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9leHRyYV9kaXIoJGluc3RydWN0aW9ucykgewogICAgICAgIGlmICghaXNfYXJyYXkoJGluc3RydWN0aW9ucykpCiAgICAgICAgICAgIHJldHVybjsKCiAgICAgICAgZm9yZWFjaCAoJGluc3RydWN0aW9ucyBhcyAkaW5zdHJ1Y3Rpb24pIHsKLy8gZGlyW3BhdGgvdG8vZGlyXQogICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgnL15kaXJcWyguKylcXSQvaScsICRpbnN0cnVjdGlvbiwgJG1hdGNoZXMpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJG1hdGNoZXNbMV07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgRXh0cmE6IEFsbG93ZWQgRmlsZSBFeHRlbnNpb25zCiAgICAgKiBAcGFyYW0gYXJyYXkgJGluc3RydWN0aW9ucyBJbnN0cnVjdGlvbnMKICAgICAqIEByZXR1cm4gYXJyYXkgUmV0dXJucyBhbGxvd2VkIGZpbGUgZXh0ZW5zaW9ucyBpZiBzcGVjaWZpZWQKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfZXh0cmFfYWxsb3coJGluc3RydWN0aW9ucykgewogICAgICAgIGlmICghaXNfYXJyYXkoJGluc3RydWN0aW9ucykpCiAgICAgICAgICAgIHJldHVybiBhcnJheSgpOwoKICAgICAgICBmb3JlYWNoICgkaW5zdHJ1Y3Rpb25zIGFzICRpbnN0cnVjdGlvbikgewovLyBhbGxvd1twZGYsZ2lmLHBuZyxqcGVnLGpwZ10KICAgICAgICAgICAgaWYgKHByZWdfbWF0Y2goJy9eYWxsb3dcWyguKylcXSQvaScsICRpbnN0cnVjdGlvbiwgJG1hdGNoZXMpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZXhwbG9kZSgnLCcsICRtYXRjaGVzWzFdKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGFycmF5KCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgRXh0cmE6IERhdGUgRm9ybWF0CiAgICAgKiBAcGFyYW0gYXJyYXkgJGluc3RydWN0aW9ucyBJbnN0cnVjdGlvbnMKICAgICAqIEByZXR1cm4gc3RyaW5nIFJldHVybnMgZGF0ZSBmb3JtYXQgdG8gYmUgdXNlZCB3aXRoIHRoZSBqcXVlcnkKICAgICAqIGRhdGVwaWNrZXIgaWYgc3BlY2lmaWVkCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2V4dHJhX2RhdGVfZm9ybWF0KCRpbnN0cnVjdGlvbnMpIHsKICAgICAgICBpZiAoIWlzX2FycmF5KCRpbnN0cnVjdGlvbnMpKQogICAgICAgICAgICByZXR1cm47CgogICAgICAgIGZvcmVhY2ggKCRpbnN0cnVjdGlvbnMgYXMgJGluc3RydWN0aW9uKSB7Ci8vIGRhdGVmb3JtYXRbZGQvbW0veXldCiAgICAgICAgICAgIGlmIChwcmVnX21hdGNoKCcvXmRhdGVmb3JtYXRcWyguKylcXSQvaScsICRpbnN0cnVjdGlvbiwgJG1hdGNoZXMpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJG1hdGNoZXNbMV07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgRXh0cmE6IFJvdwogICAgICogQHBhcmFtIGFycmF5ICRpbnN0cnVjdGlvbnMgSW5zdHJ1Y3Rpb25zCiAgICAgKiBAcmV0dXJuIGludCBSZXR1cm5zIG1heGltdW0gbGVuZ3RoIGlmIHNwZWNpZmllZAogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9leHRyYV9yb3dzKCRpbnN0cnVjdGlvbnMpIHsKICAgICAgICBpZiAoIWlzX2FycmF5KCRpbnN0cnVjdGlvbnMpKQogICAgICAgICAgICByZXR1cm47CgoKICAgICAgICBmb3JlYWNoICgkaW5zdHJ1Y3Rpb25zIGFzICRpbnN0cnVjdGlvbikgewovLyBtYXhfbGVuZ3RoWzIwXQogICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgnL15yb3dzXFsoWzAtOV0rKVxdJC9pJywgJGluc3RydWN0aW9uLCAkbWF0Y2hlcykpIHsKICAgICAgICAgICAgICAgIHJldHVybiAoaW50KSAkbWF0Y2hlc1sxXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEdldCBFeHRyYTogUm93CiAgICAgKiBAcGFyYW0gYXJyYXkgJGluc3RydWN0aW9ucyBJbnN0cnVjdGlvbnMKICAgICAqIEByZXR1cm4gaW50IFJldHVybnMgbWF4aW11bSBsZW5ndGggaWYgc3BlY2lmaWVkCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2V4dHJhX2NvbHMoJGluc3RydWN0aW9ucykgewogICAgICAgIGlmICghaXNfYXJyYXkoJGluc3RydWN0aW9ucykpCiAgICAgICAgICAgIHJldHVybjsKCiAgICAgICAgZm9yZWFjaCAoJGluc3RydWN0aW9ucyBhcyAkaW5zdHJ1Y3Rpb24pIHsKLy8gbWF4X2xlbmd0aFsyMF0KICAgICAgICAgICAgaWYgKHByZWdfbWF0Y2goJy9eY29sc1xbKFswLTldKylcXSQvaScsICRpbnN0cnVjdGlvbiwgJG1hdGNoZXMpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKGludCkgJG1hdGNoZXNbMV07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgRXh0cmE6IE1heCBMZW5ndGgKICAgICAqIEBwYXJhbSBhcnJheSAkaW5zdHJ1Y3Rpb25zIEluc3RydWN0aW9ucwogICAgICogQHJldHVybiBpbnQgUmV0dXJucyBtYXhpbXVtIGxlbmd0aCBpZiBzcGVjaWZpZWQKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfZXh0cmFfbWF4X2xlbmd0aCgkaW5zdHJ1Y3Rpb25zKSB7CiAgICAgICAgaWYgKCFpc19hcnJheSgkaW5zdHJ1Y3Rpb25zKSkKICAgICAgICAgICAgcmV0dXJuOwoKICAgICAgICBmb3JlYWNoICgkaW5zdHJ1Y3Rpb25zIGFzICRpbnN0cnVjdGlvbikgewovLyBtYXhfbGVuZ3RoWzIwXQogICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgnL15tYXhfbGVuZ3RoXFsoWzAtOV0rKVxdJC9pJywgJGluc3RydWN0aW9uLCAkbWF0Y2hlcykpIHsKICAgICAgICAgICAgICAgIHJldHVybiAoaW50KSAkbWF0Y2hlc1sxXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEdldCBFeHRyYTogU2l6ZQogICAgICogQHBhcmFtIGFycmF5ICRpbnN0cnVjdGlvbnMgSW5zdHJ1Y3Rpb25zCiAgICAgKiBAcmV0dXJuIGludCBSZXR1cm5zIHNpemUgaWYgc3BlY2lmaWVkCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2V4dHJhX3NpemUoJGluc3RydWN0aW9ucykgewogICAgICAgIGlmICghaXNfYXJyYXkoJGluc3RydWN0aW9ucykpCiAgICAgICAgICAgIHJldHVybjsKCiAgICAgICAgZm9yZWFjaCAoJGluc3RydWN0aW9ucyBhcyAkaW5zdHJ1Y3Rpb24pIHsKLy8gc2l6ZVsyMF0KICAgICAgICAgICAgaWYgKHByZWdfbWF0Y2goJy9ec2l6ZVxbKFswLTldKylcXSQvaScsICRpbnN0cnVjdGlvbiwgJG1hdGNoZXMpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKGludCkgJG1hdGNoZXNbMV07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgRXh0cmE6IE11bHRpcGxlCiAgICAgKiBAcGFyYW0gYXJyYXkgJGluc3RydWN0aW9ucyBJbnN0cnVjdGlvbnMKICAgICAqIEByZXR1cm4gaW50IFJldHVybnMgc2l6ZSBpZiBzcGVjaWZpZWQKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfZXh0cmFfbXVsdGlwbGUoJGluc3RydWN0aW9ucykgewogICAgICAgIGlmICghaXNfYXJyYXkoJGluc3RydWN0aW9ucykpCiAgICAgICAgICAgIHJldHVybjsKCiAgICAgICAgZm9yZWFjaCAoJGluc3RydWN0aW9ucyBhcyAkaW5zdHJ1Y3Rpb24pIHsKLy8gc2l6ZVsyMF0KICAgICAgICAgICAgaWYgKHByZWdfbWF0Y2goJy9ebXVsdGlwbGVcWyhbMC05XSspXF0kL2knLCAkaW5zdHJ1Y3Rpb24sICRtYXRjaGVzKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIChpbnQpICRtYXRjaGVzWzFdOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogR2V0IEV4dHJhOiBTZWxlY3QgZGVmYXVsdAogICAgICogQHBhcmFtIGFycmF5ICRpbnN0cnVjdGlvbnMgSW5zdHJ1Y3Rpb25zCiAgICAgKiBAcmV0dXJuIGludCBSZXR1cm5zIHNpemUgaWYgc3BlY2lmaWVkCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2V4dHJhX3NlbGVjdGRlZmF1bHQoJGluc3RydWN0aW9ucykgewogICAgICAgIGlmICghaXNfYXJyYXkoJGluc3RydWN0aW9ucykpCiAgICAgICAgICAgIHJldHVybjsKCiAgICAgICAgZm9yZWFjaCAoJGluc3RydWN0aW9ucyBhcyAkaW5zdHJ1Y3Rpb24pIHsKLy8gc2l6ZVsyMF0KICAgICAgICAgICAgaWYgKHByZWdfbWF0Y2goJy9ec2VsZWN0X2RlZmF1bHRcWyguKylcXSQvaScsICRpbnN0cnVjdGlvbiwgJG1hdGNoZXMpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJG1hdGNoZXNbMV07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgRXh0cmE6IFdZU0lXWUcKICAgICAqIEBwYXJhbSBhcnJheSAkaW5zdHJ1Y3Rpb25zIEluc3RydWN0aW9ucwogICAgICogQHJldHVybiBib29sIFJldHVybnMgdHJ1ZSBpZiBXWVNJV1lHIGlzIHRvIGJlIGVuYWJsZWQsIG9yIGZhbHNlIG90aGVyd2lzZQogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9leHRyYV93eXNpd3lnKCRpbnN0cnVjdGlvbnMpIHsKICAgICAgICBpZiAoIWlzX2FycmF5KCRpbnN0cnVjdGlvbnMpKQogICAgICAgICAgICByZXR1cm47CgogICAgICAgIGZvcmVhY2ggKCRpbnN0cnVjdGlvbnMgYXMgJGluc3RydWN0aW9uKSB7Ci8vIHd5c2l3eWdbMV0KLy8gd3lzaXd5Z1swXQovLyB3eXNpd3lnW3RydWVdCi8vIHd5c2l3eWdbZmFsc2VdCiAgICAgICAgICAgIGlmIChwcmVnX21hdGNoKCcvXnd5c2l3eWdcWyguKylcXSQvaScsICRpbnN0cnVjdGlvbiwgJG1hdGNoZXMpKSB7CiAgICAgICAgICAgICAgICBpZiAoJG1hdGNoZXNbMV0gPT0gJ3RydWUnIHx8ICRtYXRjaGVzWzFdID09ICcxJykgewogICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgRXh0cmE6IE1vZHVsZSBwYXJhbXMKICAgICAqIEBwYXJhbSBhcnJheSAkaW5zdHJ1Y3Rpb25zIEluc3RydWN0aW9ucwogICAgICogQHJldHVybiBhcnJheSBSZXR1cm5zIGFuIGFycmF5IG9mIG9wdGlvbnMgaWYgc3BlY2lmaWVkCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2V4dHJhX21vZHVsZXBhcmFtcygkaW5zdHJ1Y3Rpb25zKSB7CiAgICAgICAgaWYgKCFpc19hcnJheSgkaW5zdHJ1Y3Rpb25zKSkKICAgICAgICAgICAgcmV0dXJuOwoKICAgICAgICAkcGFyYW1zID0gYXJyYXkoKTsKCiAgICAgICAgZm9yZWFjaCAoJGluc3RydWN0aW9ucyBhcyAkaW5zdHJ1Y3Rpb24pIHsKLy8gb3B0aW9uc1thcHBsZT1BcHBsZV0KLy8gb3B0aW9uc1thcHBsZT1BcHBsZSxiYW5hbmE9QmFuYW5hXQogICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgnL14oLispXFsoW14sXSs9W14sXSsoLFteLF0rPVteLF0rKSopXF0kL2knLCAkaW5zdHJ1Y3Rpb24sICRtYXRjaGVzKSkgewoKICAgICAgICAgICAgICAgICRwYXJhbXNbIm1vZHVsZSJdID0gJG1hdGNoZXNbMV07CgogICAgICAgICAgICAgICAgZm9yZWFjaCAoZXhwbG9kZSgnLCcsICRtYXRjaGVzWzJdKSBhcyAkcGFpcikgewogICAgICAgICAgICAgICAgICAgICRrZXlfdmFsID0gZXhwbG9kZSgnPScsICRwYWlyKTsKICAgICAgICAgICAgICAgICAgICAkcGFyYW1zWyRrZXlfdmFsWzBdXSA9ICRrZXlfdmFsWzFdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKCiAgICAgICAgcmV0dXJuICRwYXJhbXM7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgRXh0cmE6IE1vZHVsZSBPcHRpb25zCiAgICAgKiBAcGFyYW0gYXJyYXkgJGluc3RydWN0aW9ucyBJbnN0cnVjdGlvbnMKICAgICAqIEByZXR1cm4gYXJyYXkgUmV0dXJucyBhbiBhcnJheSBvZiBvcHRpb25zIGlmIHNwZWNpZmllZAogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9leHRyYV9tb2R1bGVvcHRpb25zKCRpbnN0cnVjdGlvbnMsICRtb2QpIHsKICAgICAgICBpZiAoIWlzX2FycmF5KCRpbnN0cnVjdGlvbnMpKQogICAgICAgICAgICByZXR1cm47CgogICAgICAgICRvcHRpb25zID0gYXJyYXkoKTsKICAgICAgICBmb3JlYWNoICgkaW5zdHJ1Y3Rpb25zIGFzICRpbnN0cnVjdGlvbikgewovLyB7Y21zX21vZHVsZX0KICAgICAgICAgICAgJG1vZHVsZWNvbnRlbnQgPSAkaW5zdHJ1Y3Rpb247CiAgICAgICAgICAgIGZvcmVhY2ggKGV4cGxvZGUoJywnLCAkbW9kdWxlY29udGVudCkgYXMgJHBhaXIpIHsKICAgICAgICAgICAgICAgIGlmICghJHBhaXIpCiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAka2V5X3ZhbCA9IGV4cGxvZGUoJz0nLCAkcGFpcik7CiAgICAgICAgICAgICAgICAkb3B0aW9uc1ska2V5X3ZhbFswXV0gPSAka2V5X3ZhbFsxXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIWVtcHR5KCRvcHRpb25zKSkKICAgICAgICAgICAgcmV0dXJuICRvcHRpb25zOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IEV4dHJhOiBQYWdlCiAgICAgKiBAcGFyYW0gYXJyYXkgJGluc3RydWN0aW9ucyBJbnN0cnVjdGlvbnMKICAgICAqIEByZXR1cm4gYXJyYXkgUmV0dXJucyBhbiBhcnJheSBvZiBvcHRpb25zIGlmIHNwZWNpZmllZAogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9leHRyYV9wYWdlKCRpbnN0cnVjdGlvbnMpIHsKICAgICAgICBpZiAoIWlzX2FycmF5KCRpbnN0cnVjdGlvbnMpKQogICAgICAgICAgICByZXR1cm47CgogICAgICAgICRvcHRpb25zID0gYXJyYXkoKTsKICAgICAgICAkc2V0dGluZ3MgPSBhcnJheSgpOwoKICAgICAgICBmb3JlYWNoICgkaW5zdHJ1Y3Rpb25zIGFzICRpbnN0cnVjdGlvbikgewovLyB7Y21zX21vZHVsZX0KICAgICAgICAgICAgZm9yZWFjaCAoZXhwbG9kZSgnLCcsICRtb2R1bGVjb250ZW50KSBhcyAkcGFpcikgewogICAgICAgICAgICAgICAgJGtleV92YWwgPSBleHBsb2RlKCc9JywgJHBhaXIpOwogICAgICAgICAgICAgICAgc3dpdGNoICgka2V5X3ZhbFswXSkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgImNoaWxkcmVub2YiOgogICAgICAgICAgICAgICAgICAgICAgICAkc2V0dGluZ3NbImNoaWxkcmVub2YiXSA9ICRrZXlfdmFsWzFdOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICJzdGFydF9wYWdlIjoKICAgICAgICAgICAgICAgICAgICAgICAgJHNldHRpbmdzWyJzdGFydF9wYWdlIl0gPSAka2V5X3ZhbFsxXTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgoKICAgICAgICAkcGFnZXMgPSBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpLT5HZXRBbGxDb250ZW50KCk7CiAgICAgICAgJGFycmF5ID0gYXJyYXkoKTsKCiAgICAgICAgaWYgKGlzc2V0KCRzZXR0aW5nc1snY2hpbGRyZW5vZiddKSkgewogICAgICAgICAgICAkY2hpbGRyZW5vZiA9IGV4dGVuZGVkX3Rvb2xzX29wdHM6OmdldF9wYWdlX2lkX2Zyb21fYWxpYXMoJHNldHRpbmdzWydjaGlsZHJlbm9mJ10pOwogICAgICAgIH0KCiAgICAgICAgaWYgKGlzc2V0KCRzZXR0aW5nc1snc3RhcnRfcGFnZSddKSkgewogICAgICAgICAgICAkc3RhcnRfcGFnZSA9IGV4dGVuZGVkX3Rvb2xzX29wdHM6OmdldF9wYWdlX2lkX2Zyb21fYWxpYXMoJHNldHRpbmdzWydzdGFydF9wYWdlJ10pOwogICAgICAgIH0KCiAgICAgICAgZm9yZWFjaCAoJHBhZ2VzIGFzICRwYWdlKSB7CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAoIWlzc2V0KCRzdGFydF9wYWdlKSAmJiAhaXNzZXQoJGNoaWxkcmVub2YpKQogICAgICAgICAgICAgICAgICAgIHx8CiAgICAgICAgICAgICAgICAgICAgKGlzc2V0KCRjaGlsZHJlbm9mKSAmJiAoJHBhZ2UtPlBhcmVudElkKCkgPT0gJGNoaWxkcmVub2YpKSAvLyBMaXN0IG9mIGFsbCBjaGlsZHJlbnMKICAgICAgICAgICAgICAgICAgICB8fAogICAgICAgICAgICAgICAgICAgIChpc3NldCgkc3RhcnRfcGFnZSkgJiYgKHN0cnBvcygkcGFnZS0+SWRIaWVyYXJjaHkoKSwgJHN0YXJ0X3BhZ2UgLiAnLicpID09PSAwKSkgLy8gTGlzdCBvZiBhbGwgZGVzY2VuZGFudHMKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAkb3B0aW9uc1skcGFnZS0+SWQoKV0gPSAkcGFnZS0+SGllcmFyY2h5KCkgLiAnLiAtICcgLiAkcGFnZS0+TmFtZSgpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKCiAgICAgICAgaWYgKCFlbXB0eSgkb3B0aW9ucykpCiAgICAgICAgICAgIHJldHVybiAkb3B0aW9uczsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBFeHRyYTogT3B0aW9ucwogICAgICogQHBhcmFtIGFycmF5ICRpbnN0cnVjdGlvbnMgSW5zdHJ1Y3Rpb25zCiAgICAgKiBAcmV0dXJuIGFycmF5IFJldHVybnMgYW4gYXJyYXkgb2Ygb3B0aW9ucyBpZiBzcGVjaWZpZWQKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfZXh0cmFfb3B0aW9ucygkaW5zdHJ1Y3Rpb25zKSB7CiAgICAgICAgaWYgKCFpc19hcnJheSgkaW5zdHJ1Y3Rpb25zKSkKICAgICAgICAgICAgcmV0dXJuOwoKICAgICAgICAkb3B0aW9ucyA9IGFycmF5KCk7CgogICAgICAgIGZvcmVhY2ggKCRpbnN0cnVjdGlvbnMgYXMgJGluc3RydWN0aW9uKSB7Ci8vIG9wdGlvbnNbYXBwbGU9QXBwbGVdCi8vIG9wdGlvbnNbYXBwbGU9QXBwbGUsYmFuYW5hPUJhbmFuYV0KICAgICAgICAgICAgaWYgKHByZWdfbWF0Y2goJy9eb3B0aW9uc1xbKFteLF0rPVteLF0rKCxbXixdKz1bXixdKykqKVxdJC9pJywgJGluc3RydWN0aW9uLCAkbWF0Y2hlcykpIHsKICAgICAgICAgICAgICAgIGZvcmVhY2ggKGV4cGxvZGUoJywnLCAkbWF0Y2hlc1sxXSkgYXMgJHBhaXIpIHsKICAgICAgICAgICAgICAgICAgICAka2V5X3ZhbCA9IGV4cGxvZGUoJz0nLCAkcGFpcik7CiAgICAgICAgICAgICAgICAgICAgJG9wdGlvbnNbJGtleV92YWxbMF1dID0gJGtleV92YWxbMV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICghZW1wdHkoJG9wdGlvbnMpKQogICAgICAgICAgICByZXR1cm4gJG9wdGlvbnM7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgRXh0cmEKICAgICAqIEBwYXJhbSBzdHJpbmcgJGV4dHJhCiAgICAgKiBAcmV0dXJuIGFycmF5IFJldHVybnMgYW4gYXJyYXkgb2YgaW5zdHJ1Y3Rpb25zIGlmIHNwZWNpZmllZAogICAgICovCiAgICBmdW5jdGlvbiBnZXRfZXh0cmEoJGV4dHJhLCAkbW9kID0gbnVsbCkgewogICAgICAgIGlmICghaXNfc3RyaW5nKCRleHRyYSkpCiAgICAgICAgICAgIHJldHVybjsKCiAgICAgICAgJGV4dHJhID0gdHJpbSgkZXh0cmEpOwoKICAgICAgICBpZiAoJG1vZCAhPSBudWxsICYmIGlzX29iamVjdCgkbW9kKSkKICAgICAgICAgICAgJGV4dHJhID0gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJGV4dHJhKTsKCgogICAgICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsKICAgICAgICAkaW5zdHJ1Y3Rpb25zID0gZXhwbG9kZSgnOycsIHRyaW0oJGV4dHJhLCAnOycpKTsKICAgICAgICBpZiAoIWVtcHR5KCRpbnN0cnVjdGlvbnMpKQogICAgICAgICAgICByZXR1cm4gJGluc3RydWN0aW9uczsKICAgIH0KCiAgICAvKioKICAgICAqIElzIHZhbGlkIGFsaWFzCiAgICAgKiBAcGFyYW0gc3RyaW5nICRhbGlhcwogICAgICogQHJldHVybiBib29sIFJldHVybnMgdHJ1ZSBpZiBzdHJpbmcgaW4gcXVlc3Rpb24gaXMgYSB2YWxpZCBhbGlhcywgb3IKICAgICAqIGZhbHNlIG90aGVyd2lzZQogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGlzX3ZhbGlkX2FsaWFzKCRhbGlhcykgewogICAgICAgIGlmICghaXNfc3RyaW5nKCRhbGlhcykpCiAgICAgICAgICAgIHJldHVybjsKCi8vIGNoZWNrIGFsaWFzCi8vIGh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vbGFuZ3VhZ2UudmFyaWFibGVzLmJhc2ljcy5waHAKICAgICAgICBpZiAocHJlZ19tYXRjaCgnL15bYS16QS1aX1x4N2YtXHhmZl1bYS16QS1aMC05X1x4N2YtXHhmZl0qJC8nLCAkYWxpYXMpKSB7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBHZW5lcmF0ZSBhbGlhcwogICAgICogQHBhcmFtIHN0cmluZyAkbmFtZSBUaGUgc3RyaW5nIHRoYXQgdGhlIGFsaWFzIHdpbGwgYmUgZ2VuZXJhdGVkIGZyb20KICAgICAqIEByZXR1cm4gc3RyaW5nIFJldHVybnMgdGhlIGFsaWFzCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2VuZXJhdGVfYWxpYXMoJG5hbWUpIHsKICAgICAgICBpZiAoIWlzX3N0cmluZygkbmFtZSkpCiAgICAgICAgICAgIHJldHVybjsKCiAgICAgICAgJGFsaWFzID0gJG5hbWU7CgovLyByZXBsYWNlIG11bHRpcGxlIHNwYWNlcyB3aXRoIHNpbmdsZSB1bmRlcnNjb3JlCiAgICAgICAgJGFsaWFzID0gcHJlZ19yZXBsYWNlKCcvICsvJywgJ18nLCAkYWxpYXMpOwoKLy8gbGVhdmUgYWxwaGFiZXRpYyBjaGFyYWN0ZXJzIGFuZCB1bnNjb3JlcywKLy8gcmVwbGFjZSBldmVyeXRoaW5nIGVsc2Ugd2l0aCBhbiB1bmRlcnNjb3JlCiAgICAgICAgJGFsaWFzID0gcHJlZ19yZXBsYWNlKCcvW15hLXpBLVpfXS8nLCAnXycsICRhbGlhcyk7CgovLyByZXBsYWNlIG11bHRpcGxlIHVuZGVyc2NvcmVzIHdpdGggc2luZ2xlIHVuZGVyc2NvcmUKICAgICAgICAkYWxpYXMgPSBwcmVnX3JlcGxhY2UoJy9fKy8nLCAnXycsICRhbGlhcyk7CgovLyBjb252ZXJ0IHRvIGxvd2VyY2FzZQogICAgICAgICRhbGlhcyA9IHN0cnRvbG93ZXIoJGFsaWFzKTsKCi8vIHJlbW92ZSB1bmRlcnNjb3JlIGZyb20gc3RhcnQgYW5kIGVuZAogICAgICAgICRhbGlhcyA9IHRyaW0oJGFsaWFzLCAnXycpOwoKICAgICAgICByZXR1cm4gJGFsaWFzOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IGZpZWxkIHR5cGVzCiAgICAgKiBAcmV0dXJuIGFycmF5IFJldHVybnMgYW4gYXJyYXkgb2YgZmllbGQgdHlwZXMKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfZmllbGRfdHlwZXMoKSB7CgogICAgICAgICRtb2R1bGUgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ01vZHVsZUdlbmVyYXRvcicpOwoKICAgICAgICAkdHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgJ3RleHRib3gnID0+ICRtb2R1bGUtPkxhbmcoJ3RleHRib3gnKSwKICAgICAgICAgICAgJ2NoZWNrYm94JyA9PiAkbW9kdWxlLT5MYW5nKCdjaGVja2JveCcpLAogICAgICAgICAgICAndGV4dGFyZWEnID0+ICRtb2R1bGUtPkxhbmcoJ3RleHRhcmVhJyksCiAgICAgICAgICAgICdzZWxlY3RfZGF0ZScgPT4gJG1vZHVsZS0+TGFuZygnc2VsZWN0X2RhdGUnKSwKICAgICAgICAgICAgJ3VwbG9hZF9maWxlJyA9PiAkbW9kdWxlLT5MYW5nKCd1cGxvYWRfZmlsZScpLAogICAgICAgICAgICAnc2VsZWN0X2ZpbGUnID0+ICRtb2R1bGUtPkxhbmcoJ3NlbGVjdF9maWxlJyksCiAgICAgICAgICAgICdkcm9wZG93bicgPT4gJG1vZHVsZS0+TGFuZygnZHJvcGRvd24nKSwKICAgICAgICAgICAgJ2Ryb3Bkb3duZnJvbW1vZHVsZScgPT4gJG1vZHVsZS0+TGFuZygnZHJvcGRvd25mcm9tbW9kdWxlJyksCiAgICAgICAgICAgICdtb2R1bGUnID0+ICRtb2R1bGUtPkxhbmcoJ21vZHVsZScpLAogICAgICAgICAgICAnbW9kdWxlX2xpbmsnID0+ICRtb2R1bGUtPkxhbmcoJ21vZHVsZV9saW5rJyksCiAgICAgICAgICAgICdwYWdlJyA9PiAkbW9kdWxlLT5MYW5nKCdwYWdlJyksCiAgICAgICAgICAgICdjb2xvcl9waWNrZXInID0+ICRtb2R1bGUtPkxhbmcoJ2NvbG9yX3BpY2tlcicpLAogICAgICAgICAgICAnc3RhdGljJyA9PiAkbW9kdWxlLT5MYW5nKCdzdGF0aWMnKSwKICAgICAgICAgICAgJ3RhYicgPT4gJG1vZHVsZS0+TGFuZygndGFiJykKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJHR5cGVzOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IGZpZWxkIHNlY3Rpb25zCiAgICAgKiBAcmV0dXJuIGFycmF5IFJldHVybnMgYW4gYXJyYXkgb2YgZmllbGQgc2VjdGlvbnMKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfZmllbGRfc2VjdGlvbnMoKSB7CgogICAgICAgICRtb2R1bGUgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ01vZHVsZUdlbmVyYXRvcicpOwoKICAgICAgICAkc2VjdGlvbnMgPSBhcnJheSgKICAgICAgICAgICAgJ2l0ZW1zJyA9PiAkbW9kdWxlLT5MYW5nKCdpdGVtcycpLAogICAgICAgICAgICAnY2F0ZWdvcmllcycgPT4gJG1vZHVsZS0+TGFuZygnY2F0ZWdvcmllcycpCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICRzZWN0aW9uczsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9wcmVmaXgoJG1vZCkgewogICAgICAgIHJldHVybiAkbW9kLT5HZXRQcmVmZXJlbmNlKCd1cmxfcHJlZml4JywgbXVuZ2Vfc3RyaW5nX3RvX3VybCgkbW9kLT5HZXROYW1lKCksIHRydWUpKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9wcmV0dHlfdXJsKCRtb2QsICRwcmVmaXgsICRpdGVtX2lkLCAkYWxpYXMsICRyZXR1cm5pZCA9IG51bGwsICRkZXRhaWx0ZW1wbGF0ZSA9IG51bGwpIHsKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwoKICAgICAgICAkcGFybXMgPSBhcnJheSgpOwoKICAgICAgICAkcGFybXNbXSA9ICRwcmVmaXg7CiAgICAgICAgJHBhcm1zW10gPSAkaXRlbV9pZDsKICAgICAgICBpZiAoJHJldHVybmlkKQogICAgICAgICAgICAkcGFybXNbXSA9ICRyZXR1cm5pZDsKICAgICAgICBpZiAoJGFsaWFzKQogICAgICAgICAgICAkcGFybXNbXSA9ICRhbGlhczsKICAgICAgICBpZiAoJGRldGFpbHRlbXBsYXRlICE9IG51bGwpCiAgICAgICAgICAgICRwYXJtc1tdID0gJGRldGFpbHRlbXBsYXRlOwoKICAgICAgICByZXR1cm4gaW1wbG9kZSgnLycsICRwYXJtcyk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfcHJpdmF0ZV9jYXRlZ29yaWVzKCRtb2QpIHsKCiAgICAgICAgJGNhdGVnb3J5bG9uZ25hbWVsaXN0ID0gYXJyYXkoKTsKCiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0REIoKTsKICAgICAgICAkdXNlcm9wcyA9IGNtc21zKCktPkdldFVzZXJPcGVyYXRpb25zKCk7CgogICAgICAgICR1c2VyaWQgPSBnZXRfdXNlcmlkKCk7CiAgICAgICAgJHVzZXJfaWQgPSAkdXNlcmlkOwogICAgICAgICRhZG1pbnVzZXIgPSAoJHVzZXJvcHMtPlVzZXJJbkdyb3VwKCR1c2VyaWQsIDEpIHx8ICR1c2VyaWQgPT0gMSk7Ci8vbWxlIHN1cHBvcnQKICAgICAgICBpZiAoJG1vZC0+R2V0UHJlZmVyZW5jZSgndXNlcmdyb3VwX2RlcGVuZGVuY2UnKSAmJiAhJG1vZC0+Q2hlY2tQZXJtaXNzaW9uKCRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19hbGxfY2F0ZWdvcnlfdmlzYmlsZScpKSB7CgogICAgICAgICAgICBpZiAoJGFkbWludXNlciAhPSAxKSB7CgoKICAgICAgICAgICAgICAgICRxdWVyeSA9ICJTRUxFQ1QgZ3JvdXBfaWQgRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gInVzZXJfZ3JvdXBzIHdoZXJlIHVzZXJfaWQ9PyI7CiAgICAgICAgICAgICAgICAkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHVzZXJfaWQpKTsKICAgICAgICAgICAgICAgIGlmICgkcmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgICAgJGdyb3VwcyA9IGFycmF5KCk7CiAgICAgICAgICAgICAgICAgICAgJHdoZXJlc3RhdGVtZW50ID0gYXJyYXkoKTsKCiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCRyZXN1bHQgJiYgJHJvdyA9ICRyZXN1bHQtPkZldGNoUm93KCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHdoZXJlc3RhdGVtZW50IFtdID0gIiB1c2VyZ3JvdXAgPSA/ICI7CiAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbXNhcnJheVtdID0gJHJvd1siZ3JvdXBfaWQiXTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnKCAnIC4gaW1wbG9kZSgnIE9SICcsICR3aGVyZXN0YXRlbWVudCkgLiAnKSc7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJGNhdGVnb3J5bGlzdCA9IGdlbmVyYXRvcl90b29sczo6Z2V0X2NhdGVnb3J5X2xpc3QoJG1vZCwgJHdoZXJlLCAkcGFyYW1zYXJyYXkpOwogICAgICAgICAgICAgICAgJGNhdGVnb3J5bG9uZ25hbWVsaXN0ID0gYXJyYXlfc2xpY2UoJGNhdGVnb3J5bGlzdCwgMSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRjYXRlZ29yeWxvbmduYW1lbGlzdDsKICAgIH0KCiAgICAvKioKICAgICAqIERlbGV0ZSBpdGVtCiAgICAgKiBAcGFyYW0gb2JqZWN0ICRtb2QKICAgICAqIEBwYXJhbSBpbnQgJGl0ZW1faWQgCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZGV0ZWxlX2l0ZW0oJG1vZCwgJGl0ZW1faWQpIHsKCiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCi8vIGdldCBkZXRhaWxzCiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtIFdIRVJFIGl0ZW1faWQgPSA/JzsKICAgICAgICAkcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSgkaXRlbV9pZCkpOwoKLy8gZGVsZXRlIGl0ZW0KICAgICAgICAkcXVlcnkgPSAnREVMRVRFIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtIFdIRVJFIGl0ZW1faWQgPSA/JzsKICAgICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkaXRlbV9pZCkpOwoKLy8gZGVsZXRlIGZpZWxkIHZhbHVlcwogICAgICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkdmFsIFdIRVJFIGl0ZW1faWQgPSA/JzsKICAgICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkaXRlbV9pZCkpOwoKLy8gZGVsZXRlIGZpZWxkIHZhbHVlcwogICAgICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2l0ZW1fZXh0cmEgV0hFUkUgaXRlbV9pZCA9ID8nOwogICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRpdGVtX2lkKSk7CgovL1VwZGF0ZSBzZWFyY2ggaW5kZXgKICAgICAgICAkbW9kdWxlID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdTZWFyY2gnKTsKICAgICAgICBpZiAoJG1vZHVsZSAhPSBGQUxTRSkgewogICAgICAgICAgICAkbW9kdWxlLT5EZWxldGVXb3JkcygkbW9kLT5HZXROYW1lKCksICRpdGVtX2lkLCAnaXRlbScpOwogICAgICAgIH0KICAgICAgICBAJG1vZC0+U2VuZEV2ZW50KCdJdGVtRGVsZXRlZCcsIGFycmF5KCdpdGVtX2lkJyA9PiAkaXRlbV9pZCkpOwogICAgfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBNb2R1bGUgR2VuZXJhdG9yZm9yIENNUyBNYWRlIFNpbXBsZSAoQGt1em1hbnkpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL21lZGlhY2VudGVyLwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmICghaXNzZXQoJGdDbXMpKQogICAgZXhpdDsKCiRkYiA9IGNtc21zKCktPkdldERiKCk7CiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKCi8vIGNyZWF0ZSBpdGVtIHRhYmxlCgokZmllbGRzID0gJwogICAgaWQgSSBLRVkgQVVUTywKICAgIG1vZHVsZV9uYW1lIEMoMjU1KSwKCWF0dGFjaCBDKDI1NSksCiAgICBjcmVhdGVfZGF0ZSAnIC4gQ01TX0FET0RCX0RUIC4gJywKCW1vZGlmaWVkX2RhdGUgJyAuIENNU19BRE9EQl9EVCAuICcKJzsKCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2dlbmVyYXRvcicsICRmaWVsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgojIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZwokdGhpcy0+QXVkaXQoMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygnaW5zdGFsbGVkJywgJHRoaXMtPkdldFZlcnNpb24oKSkpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgTW9kdWxlOiBNb2R1bGUgR2VuZXJhdG9yZm9yIENNUyBNYWRlIFNpbXBsZSAoQGt1em1hbnkpDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQ0KIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZw0KIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvbWVkaWFjZW50ZXIvDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsNCg0KJGRiID0gY21zbXMoKS0+R2V0RGIoKTsNCg0KJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOw0KDQovLyBkcm9wIHRhYmxlcw0KJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2dlbmVyYXRvcicpOw0KJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KDQovLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cNCiR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygndW5pbnN0YWxsZWQnKSk7DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[77u/PD9waHANCiRkYiA9IGNtc21zKCktPkdldERiKCk7DQokdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOw0KJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOw0KJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOw0KDQpzd2l0Y2ggKCRvbGR2ZXJzaW9uKSB7DQogICAgY2FzZSAnMS4wJzoNCiAgICAgICAgJG1vZHVsZXMgPSBnZW5lcmF0b3Jfb3B0czo6Z2V0X21vZHVsZXMoKTsNCiAgICAgICAgZm9yZWFjaCAoJG1vZHVsZXMgYXMgJG1vZHVsZSkgew0KICAgICAgICAgICAgJG1vYmplY3QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJG1vZHVsZVsibW9kdWxlX25hbWUiXSk7DQogICAgICAgICAgICBpZiAoJG1vYmplY3QpIHsNCiAgICAgICAgICAgICAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2JqZWN0LT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaXRlbScsICdyZWN1cnNpdmUgQygyNTUpJyk7DQogICAgICAgICAgICAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KDQogICAgICAgICAgICAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9iamVjdC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2l0ZW0nLCAnaXRlbV9kYXRlX2VuZCAnIC4gQ01TX0FET0RCX0RUKTsNCiAgICAgICAgICAgICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQoNCiAgICAgICAgICAgICAgICAkZmllbGRzID0gJw0KICAgIGl0ZW1faWQgSSBLRVkgTk9UIG51bGwsDQogICAgdmFsdWUgSSBLRVkgTk9UIG51bGwNCic7DQogICAgICAgICAgICAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2JqZWN0LT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaXRlbV9leHRyYScsICRmaWVsZHMsICR0YWJvcHRhcnJheSk7DQogICAgICAgICAgICAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgY2FzZSAnMS4xJzoNCiAgICAgICAgJG1vZHVsZXMgPSBnZW5lcmF0b3Jfb3B0czo6Z2V0X21vZHVsZXMoKTsNCiAgICAgICAgZm9yZWFjaCAoJG1vZHVsZXMgYXMgJG1vZHVsZSkgew0KICAgICAgICAgICAgJG1vYmplY3QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJG1vZHVsZVsibW9kdWxlX25hbWUiXSk7DQogICAgICAgICAgICBpZiAoJG1vYmplY3QpIHsNCiAgICAgICAgICAgICAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2JqZWN0LT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfY2F0ZWdvcmllcycsICd1c2VyZ3JvdXAgSScpOw0KICAgICAgICAgICAgICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCiAgICAgICAgICAgICAgICAkbW9iamVjdC0+Q3JlYXRlUGVybWlzc2lvbigkbW9iamVjdC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2FsbF9jYXRlZ29yeV92aXNiaWxlJywgJG1vYmplY3QtPkxhbmcoJ2FsbF9jYXRlZ29yeV92aXNiaWxlJykpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgY2FzZSAnMS4yJzoNCiAgICAgICAgJG1vZHVsZXMgPSBnZW5lcmF0b3Jfb3B0czo6Z2V0X21vZHVsZXMoKTsNCiAgICAgICAgZm9yZWFjaCAoJG1vZHVsZXMgYXMgJG1vZHVsZSkgew0KICAgICAgICAgICAgJG1vYmplY3QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJG1vZHVsZVsibW9kdWxlX25hbWUiXSk7DQogICAgICAgICAgICBpZiAoJG1vYmplY3QpIHsNCg0KICAgICAgICAgICAgICAgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTChjbXNfZGJfcHJlZml4KCkgLiAkbW9iamVjdC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX3VybCcsIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2JqZWN0LT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaXRlbScsICd1cmwnKTsNCiAgICAgICAgICAgICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICBjYXNlICcxLjMnOg0KICAgICAgICAkbW9kdWxlcyA9IGdlbmVyYXRvcl9vcHRzOjpnZXRfbW9kdWxlcygpOw0KICAgICAgICBmb3JlYWNoICgkbW9kdWxlcyBhcyAkbW9kdWxlKSB7DQogICAgICAgICAgICAkbW9iamVjdCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgkbW9kdWxlWyJtb2R1bGVfbmFtZSJdKTsNCiAgICAgICAgICAgIGlmICgkbW9iamVjdCkgew0KICAgICAgICAgICAgICAgICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vYmplY3QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19jYXRlZ29yaWVzJywgJ2V4dHJhMiBYJyk7DQogICAgICAgICAgICAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KICAgICAgICAgICAgICAgICRtb2JqZWN0LT5TZXRQcmVmZXJlbmNlKCdjYXRlZ29yeV9leHRyYTJfbGFiZWwnLCAkbW9iamVjdC0+TGFuZygnZXh0cmEnKSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICBjYXNlICcxLjQnOg0KICAgICAgICAkbW9kdWxlcyA9IGdlbmVyYXRvcl9vcHRzOjpnZXRfbW9kdWxlcygpOw0KICAgICAgICBmb3JlYWNoICgkbW9kdWxlcyBhcyAkbW9kdWxlKSB7DQogICAgICAgICAgICAkbW9iamVjdCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgkbW9kdWxlWyJtb2R1bGVfbmFtZSJdKTsNCiAgICAgICAgICAgIGlmICgkbW9iamVjdCkgew0KICAgICAgICAgICAgICAgICRtb2JqZWN0LT5DcmVhdGVFdmVudCgnSXRlbUFkZGVkJyk7DQogICAgICAgICAgICAgICAgJG1vYmplY3QtPkNyZWF0ZUV2ZW50KCdJdGVtRWRpdGVkJyk7DQogICAgICAgICAgICAgICAgJG1vYmplY3QtPkNyZWF0ZUV2ZW50KCdJdGVtRGVsZXRlZCcpOw0KICAgICAgICAgICAgICAgICRtb2JqZWN0LT5DcmVhdGVFdmVudCgnQ2F0ZWdvcnlBZGRlZCcpOw0KICAgICAgICAgICAgICAgICRtb2JqZWN0LT5DcmVhdGVFdmVudCgnQ2F0ZWdvcnlFZGl0ZWQnKTsNCiAgICAgICAgICAgICAgICAkbW9iamVjdC0+Q3JlYXRlRXZlbnQoJ0NhdGVnb3J5RGVsZXRlZCcpOw0KICAgICAgICAgICAgICAgICRtb2JqZWN0LT5DcmVhdGVFdmVudCgnSXRlbXNSZW9yZGVyZWQnKTsNCiAgICAgICAgICAgICAgICAkbW9iamVjdC0+Q3JlYXRlRXZlbnQoJ0NhdGVnb3JpZXNSZW9yZGVyZWQnKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIGNhc2UgJzEuNSc6DQogICAgICAgICRtb2R1bGVzID0gZ2VuZXJhdG9yX29wdHM6OmdldF9tb2R1bGVzKCk7DQogICAgICAgIGZvcmVhY2ggKCRtb2R1bGVzIGFzICRtb2R1bGUpIHsNCiAgICAgICAgICAgICRtb2JqZWN0ID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCRtb2R1bGVbIm1vZHVsZV9uYW1lIl0pOw0KICAgICAgICAgICAgaWYgKCRtb2JqZWN0KSB7DQogICAgICAgICAgICAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9iamVjdC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkZGVmJywgJ2VkaXR2aWV3IEkoMSknKTsNCiAgICAgICAgICAgICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICBjYXNlICcxLjYnOg0KICAgICAgICAkbW9kdWxlcyA9IGdlbmVyYXRvcl9vcHRzOjpnZXRfbW9kdWxlcygpOw0KICAgICAgICBmb3JlYWNoICgkbW9kdWxlcyBhcyAkbW9kdWxlKSB7DQogICAgICAgICAgICAkbW9iamVjdCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgkbW9kdWxlWyJtb2R1bGVfbmFtZSJdKTsNCiAgICAgICAgICAgIGlmICgkbW9iamVjdCkgew0KICAgICAgICAgICAgICAgICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vYmplY3QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZGRlZicsICdmaWx0ZXJfZnJvbnRlbmQgSSgxKScpOw0KICAgICAgICAgICAgICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCiAgICAgICAgICAgICAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2JqZWN0LT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGRkZWYnLCAnZmlsdGVyX2FkbWluIEkoMSknKTsNCiAgICAgICAgICAgICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICBjYXNlICcxLjguMSc6DQogICAgICAgICRtb2R1bGVzID0gZ2VuZXJhdG9yX29wdHM6OmdldF9tb2R1bGVzKCk7DQoNCiAgICAgICAgZm9yZWFjaCAoJG1vZHVsZXMgYXMgJG1vZHVsZSkgew0KICAgICAgICAgICAgJG1vYmplY3QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJG1vZHVsZVsibW9kdWxlX25hbWUiXSk7DQogICAgICAgICAgICBpZiAoJG1vYmplY3QpIHsNCiAgICAgICAgICAgICAgICAkcG9zaXRpb24gPSAwOw0KDQogICAgICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCdBTFRFUiBUQUJMRSBgJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2JqZWN0LT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfY2F0ZWdvcmllc2AgIENIQU5HRSBDT0xVTU4gYGNhdGVnb3J5X2lkYCBgY2F0ZWdvcnlfaWRgIElOVCgxMSkgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQgRklSU1QnKTsNCg0KDQogICAgICAgICAgICAgICAgLy8gY29weSBuZXcgZmlsZXMNCiAgICAgICAgICAgICAgICAkZmlsZSA9ICdhY3Rpb24uYWRtaW5fZmllbGRzLnBocCc7DQogICAgICAgICAgICAgICAgJGZyb20gPSBjbXNfam9pbl9wYXRoKCRjb25maWdbInJvb3RfcGF0aCJdLCAnbW9kdWxlcycsICdNb2R1bGVHZW5lcmF0b3InLCAnTW9kdWxlTGliJywgJ3NvdXJjZScsICdNb2R1bGVFeGFtcGxlJywgJGZpbGUpOw0KICAgICAgICAgICAgICAgICR0byA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sicm9vdF9wYXRoIl0sICdtb2R1bGVzJywgJG1vYmplY3QtPkdldE5hbWUoKSwgJGZpbGUpOw0KICAgICAgICAgICAgICAgIGNvcHkoJGZyb20sICR0byk7DQogICAgICAgICAgICAgICAgJGZpbGUgPSAnZnVuY3Rpb24uYWRtaW5fZmllbGRkZWZ0YWJfY2F0ZWdvcmllcy5waHAnOw0KICAgICAgICAgICAgICAgICRmcm9tID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyJyb290X3BhdGgiXSwgJ21vZHVsZXMnLCAnTW9kdWxlR2VuZXJhdG9yJywgJ01vZHVsZUxpYicsICdzb3VyY2UnLCAnTW9kdWxlRXhhbXBsZScsICRmaWxlKTsNCiAgICAgICAgICAgICAgICAkdG8gPSBjbXNfam9pbl9wYXRoKCRjb25maWdbInJvb3RfcGF0aCJdLCAnbW9kdWxlcycsICRtb2JqZWN0LT5HZXROYW1lKCksICRmaWxlKTsNCiAgICAgICAgICAgICAgICBjb3B5KCRmcm9tLCAkdG8pOw0KICAgICAgICAgICAgICAgICRmaWxlID0gJ2FjdGlvbi5hZG1pbl9vcmRlcmNhdGVnb3J5LnBocCc7DQogICAgICAgICAgICAgICAgJGZyb20gPSBjbXNfam9pbl9wYXRoKCRjb25maWdbInJvb3RfcGF0aCJdLCAnbW9kdWxlcycsICdNb2R1bGVHZW5lcmF0b3InLCAnTW9kdWxlTGliJywgJ3NvdXJjZScsICdNb2R1bGVFeGFtcGxlJywgJGZpbGUpOw0KICAgICAgICAgICAgICAgICR0byA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sicm9vdF9wYXRoIl0sICdtb2R1bGVzJywgJG1vYmplY3QtPkdldE5hbWUoKSwgJGZpbGUpOw0KICAgICAgICAgICAgICAgIGNvcHkoJGZyb20sICR0byk7DQoNCiAgICAgICAgICAgICAgICAkZmlsZSA9ICdNb2R1bGVFeGFtcGxlLm1vZHVsZS5waHAnOw0KICAgICAgICAgICAgICAgICRmcm9tID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyJyb290X3BhdGgiXSwgJ21vZHVsZXMnLCAnTW9kdWxlR2VuZXJhdG9yJywgJ01vZHVsZUxpYicsICdzb3VyY2UnLCAnTW9kdWxlRXhhbXBsZScsICRmaWxlKTsNCiAgICAgICAgICAgICAgICAkdG8gPSBjbXNfam9pbl9wYXRoKCRjb25maWdbInJvb3RfcGF0aCJdLCAnbW9kdWxlcycsICRtb2JqZWN0LT5HZXROYW1lKCksICRtb2JqZWN0LT5HZXROYW1lKCkgLiAnLm1vZHVsZS5waHAnKTsNCiAgICAgICAgICAgICAgICBjb3B5KCRmcm9tLCAkdG8pOw0KDQogICAgICAgICAgICAgICAgLy8gIHJld3JpdGUgbW9kdWxlIGNvbnRlbnQNCiAgICAgICAgICAgICAgICAkZGF0YSA9IEBmaWxlX2dldF9jb250ZW50cygkdG8pOw0KICAgICAgICAgICAgICAgIGlmICgkZGF0YSkgew0KICAgICAgICAgICAgICAgICAgICAkZGF0YSA9IHN0cl9yZXBsYWNlKCdNb2R1bGVFeGFtcGxlJywgJG1vYmplY3QtPkdldE5hbWUoKSwgJGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBmaWxlX3B1dF9jb250ZW50cygkdG8sICRkYXRhKTsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBkaWUoJHRoaXMtPkxhbmcoJ2Vycm9yX3JlcGxhY2Vfc3RyaW5nJykpOw0KICAgICAgICAgICAgICAgIH0NCg0KDQoNCiAgICAgICAgICAgICAgICAvLyB1cGRhdGUgZGF0YWJhc2UNCiAgICAgICAgICAgICAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2JqZWN0LT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGRkZWYnLCAnc2VjdGlvbiAgQygxMCknKTsNCiAgICAgICAgICAgICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQoNCiAgICAgICAgICAgICAgICAkcXVlcnkgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9iamVjdC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkZGVmIFNFVCBzZWN0aW9uID0gIml0ZW1zIiAnOw0KICAgICAgICAgICAgICAgICRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgpKTsNCg0KDQogICAgICAgICAgICAgICAgJGNhdGVnb3JpZXMgPSBnZW5lcmF0b3JfdG9vbHM6OmdldF9jYXRlZ29yeV9saXN0KCRtb2JqZWN0LCBhcnJheSgpLCBhcnJheSgpLCBmYWxzZSk7DQoNCiAgICAgICAgICAgICAgICBpZiAoZW1wdHkoJGNhdGVnb3JpZXMpID09IGZhbHNlKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgJGhlbHAgPSAnJzsNCiAgICAgICAgICAgICAgICAgICAgJHR5cGUgPSAndGV4dGJveCc7DQogICAgICAgICAgICAgICAgICAgICRyZXF1aXJlZCA9IDA7DQogICAgICAgICAgICAgICAgICAgICRlZGl0dmlldyA9IDA7DQogICAgICAgICAgICAgICAgICAgICRmcm9udGVuZCA9IDE7DQogICAgICAgICAgICAgICAgICAgICRmaWx0ZXJfZnJvbnRlbmQgPSAwOw0KICAgICAgICAgICAgICAgICAgICAkYWRtaW5fYWRtaW4gPSAwOw0KICAgICAgICAgICAgICAgICAgICAkc2VhcmNoYWJsZSA9IDA7DQogICAgICAgICAgICAgICAgICAgICRleHRyYSA9ICcnOw0KICAgICAgICAgICAgICAgICAgICAkc2VjdGlvbiA9ICdjYXRlZ29yaWVzJzsNCg0KDQoNCiAgICAgICAgICAgICAgICAgICAgJGV4dHJhMSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICAkZXh0cmEyID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRjYXRlZ29yaWVzIGFzICRjYXRlZ29yeSkgew0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGNhdGVnb3J5WyJleHRyYSJdKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGV4dHJhMSA9PSBmYWxzZSkgew0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lID0gJG1vYmplY3QtPkdldFByZWZlcmVuY2UoJ2NhdGVnb3J5X2V4dHJhX2xhYmVsJywgJG1vYmplY3QtPkxhbmcoJ2V4dHJhJykpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYWxpYXMgPSAnZXh0cmEnOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vYmplY3QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZGRlZiAobmFtZSwgYWxpYXMsIGhlbHAsIHR5cGUsIHBvc2l0aW9uLCByZXF1aXJlZCwgZnJvbnRlbmQsIGVkaXR2aWV3LCBmaWx0ZXJfZnJvbnRlbmQsIGZpbHRlcl9hZG1pbiwgc2VhcmNoYWJsZSwgZXh0cmEsIHNlY3Rpb24pIFZBTFVFUyAoPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPyknOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJG5hbWUsICRhbGlhcywgJGhlbHAsICR0eXBlLCAkcG9zaXRpb24rKywgJHJlcXVpcmVkLCAkZnJvbnRlbmQsICRlZGl0dmlldywgJGZpbHRlcl9mcm9udGVuZCwgJGFkbWluX2FkbWluLCAkc2VhcmNoYWJsZSwgJGV4dHJhLCAkc2VjdGlvbikpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXh0cmExaWQgPSAkZGItPkluc2VydF9JRCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXh0cmExID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vYmplY3QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZHZhbCAoaXRlbV9pZCwgZmllbGRkZWZfaWQsIHZhbHVlKSBWQUxVRVMgKD8sID8sID8pJzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGNhdGVnb3J5WyJjYXRlZ29yeV9pZCJdLCAkZXh0cmExaWQsICRjYXRlZ29yeVsiZXh0cmEiXSkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRjYXRlZ29yeVsiZXh0cmEyIl0pIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkZXh0cmEyID09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lID0gJG1vYmplY3QtPkdldFByZWZlcmVuY2UoJ2NhdGVnb3J5X2V4dHJhMl9sYWJlbCcsICRtb2JqZWN0LT5MYW5nKCdleHRyYScpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFsaWFzID0gJ2V4dHJhMic7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9iamVjdC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkZGVmIChuYW1lLCBhbGlhcywgaGVscCwgdHlwZSwgcG9zaXRpb24sIHJlcXVpcmVkLCBmcm9udGVuZCwgZWRpdHZpZXcsIGZpbHRlcl9mcm9udGVuZCwgZmlsdGVyX2FkbWluLCBzZWFyY2hhYmxlLCBleHRyYSwgc2VjdGlvbikgVkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KSc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkbmFtZSwgJGFsaWFzLCAkaGVscCwgJHR5cGUsICRwb3NpdGlvbisrLCAkcmVxdWlyZWQsICRmcm9udGVuZCwgJGVkaXR2aWV3LCAkZmlsdGVyX2Zyb250ZW5kLCAkYWRtaW5fYWRtaW4sICRzZWFyY2hhYmxlLCAkZXh0cmEsICRzZWN0aW9uKSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRleHRyYTJpZCA9ICRkYi0+SW5zZXJ0X0lEKCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRleHRyYTIgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vYmplY3QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZHZhbCAoaXRlbV9pZCwgZmllbGRkZWZfaWQsIHZhbHVlKSBWQUxVRVMgKD8sID8sID8pJzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGNhdGVnb3J5WyJjYXRlZ29yeV9pZCJdLCAkZXh0cmEyaWQsICRjYXRlZ29yeVsiZXh0cmEyIl0pKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIGNhc2UgJzEuOS4yJzoNCg0KICAgICAgICAkbW9kdWxlcyA9IGdlbmVyYXRvcl9vcHRzOjpnZXRfbW9kdWxlcygpOw0KDQogICAgICAgIGZvcmVhY2ggKCRtb2R1bGVzIGFzICRtb2R1bGUpIHsNCiAgICAgICAgICAgICRtb2JqZWN0ID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCRtb2R1bGVbIm1vZHVsZV9uYW1lIl0pOw0KICAgICAgICAgICAgaWYgKCRtb2JqZWN0KSB7DQoNCg0KICAgICAgICAgICAgICAgICRmaWVsZHMgPSAnDQogICAgIGBpbWFnZV9pZGAgaW50KDEwKSBJIEtFWSBBVVRPLA0KICBgaXRlbV9pZGAgaW50KDEwKSBERUZBVUxUIE5VTEwsDQogIGBmaWxlbmFtZWAgdmFyY2hhcigyNTUpIERFRkFVTFQgTlVMTCwNCiAgYHBvc2l0aW9uYCBpbnQoMTApIERFRkFVTFQNCic7DQogICAgICAgICAgICAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2JqZWN0LT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaW1hZ2VzJywgJGZpZWxkcywgJHRhYm9wdGFycmF5KTsNCiAgICAgICAgICAgICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQoNCiAgICAgICAgICAgICAgICAvLyBjb3B5IG5ldyBmaWxlcw0KICAgICAgICAgICAgICAgICRmaWxlID0gJ2FjdGlvbi5hZG1pbl9pbWFnZXNidWxrYWN0aW9uLnBocCc7DQogICAgICAgICAgICAgICAgJGZyb20gPSBjbXNfam9pbl9wYXRoKCRjb25maWdbInJvb3RfcGF0aCJdLCAnbW9kdWxlcycsICdNb2R1bGVHZW5lcmF0b3InLCAnTW9kdWxlTGliJywgJ3NvdXJjZScsICdNb2R1bGVFeGFtcGxlJywgJGZpbGUpOw0KICAgICAgICAgICAgICAgICR0byA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sicm9vdF9wYXRoIl0sICdtb2R1bGVzJywgJG1vYmplY3QtPkdldE5hbWUoKSwgJGZpbGUpOw0KICAgICAgICAgICAgICAgIGNvcHkoJGZyb20sICR0byk7DQogICAgICAgICAgICAgICAgJGZpbGUgPSAnYWN0aW9uLmFkbWluX21vdmVpbWFnZXMucGhwJzsNCiAgICAgICAgICAgICAgICAkZnJvbSA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sicm9vdF9wYXRoIl0sICdtb2R1bGVzJywgJ01vZHVsZUdlbmVyYXRvcicsICdNb2R1bGVMaWInLCAnc291cmNlJywgJ01vZHVsZUV4YW1wbGUnLCAkZmlsZSk7DQogICAgICAgICAgICAgICAgJHRvID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyJyb290X3BhdGgiXSwgJ21vZHVsZXMnLCAkbW9iamVjdC0+R2V0TmFtZSgpLCAkZmlsZSk7DQogICAgICAgICAgICAgICAgY29weSgkZnJvbSwgJHRvKTsNCg0KICAgICAgICAgICAgICAgICRmaWxlID0gJ01vZHVsZUV4YW1wbGUubW9kdWxlLnBocCc7DQogICAgICAgICAgICAgICAgJGZyb20gPSBjbXNfam9pbl9wYXRoKCRjb25maWdbInJvb3RfcGF0aCJdLCAnbW9kdWxlcycsICdNb2R1bGVHZW5lcmF0b3InLCAnTW9kdWxlTGliJywgJ3NvdXJjZScsICdNb2R1bGVFeGFtcGxlJywgJGZpbGUpOw0KICAgICAgICAgICAgICAgICR0byA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sicm9vdF9wYXRoIl0sICdtb2R1bGVzJywgJG1vYmplY3QtPkdldE5hbWUoKSwgJG1vYmplY3QtPkdldE5hbWUoKSAuICcubW9kdWxlLnBocCcpOw0KICAgICAgICAgICAgICAgIGNvcHkoJGZyb20sICR0byk7DQoNCiAgICAgICAgICAgICAgICAvLyAgcmV3cml0ZSBtb2R1bGUgY29udGVudA0KICAgICAgICAgICAgICAgICRkYXRhID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCR0byk7DQogICAgICAgICAgICAgICAgaWYgKCRkYXRhKSB7DQogICAgICAgICAgICAgICAgICAgICRkYXRhID0gc3RyX3JlcGxhY2UoJ01vZHVsZUV4YW1wbGUnLCAkbW9iamVjdC0+R2V0TmFtZSgpLCAkZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGZpbGVfcHV0X2NvbnRlbnRzKCR0bywgJGRhdGEpOw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIGRpZSgkdGhpcy0+TGFuZygnZXJyb3JfcmVwbGFjZV9zdHJpbmcnKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgICRjdXJyZW50X3ZlcnNpb24gPSAiMi4wIjsNCn0NCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleGenerator.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgTW9kdWxlOiBNb2R1bGUgR2VuZXJhdG9yZm9yIENNUyBNYWRlIFNpbXBsZSAoQGt1em1hbnkpDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQ0KIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZw0KIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvbWVkaWFjZW50ZXIvDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoNCi8qKg0KICogIGdlbmVyYXRvciANCiAqIEByZXR1cm4gb2JqZWN0IA0KICovDQppZiAoIWZ1bmN0aW9uX2V4aXN0cygnZ2VuZXJhdG9yJykpIHsNCg0KICAgIGZ1bmN0aW9uIGdlbmVyYXRvcigpIHsNCiAgICAgICAgcmV0dXJuIGNtc191dGlsczo6Z2V0X21vZHVsZSgnTW9kdWxlR2VuZXJhdG9yJyk7DQogICAgfQ0KDQp9DQoNCmNsYXNzIE1vZHVsZUdlbmVyYXRvciBleHRlbmRzIENHRXh0ZW5zaW9ucyB7DQogICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICAgICBDb25zdHJ1Y3Rvcg0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7DQogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoKTsNCiAgICB9DQoNCiAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICAgIFNldFBhcmFtZXRlcnMNCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLw0KDQogICAgcHVibGljIGZ1bmN0aW9uIEluaXRpYWxpemVGcm9udGVuZCgpIHsNCiAgICAgICAgLy8gbm90aGluZw0KICAgIH0NCg0KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRQYXJhbWV0ZXJzKCkgew0KICAgICAgICBpZiAodmVyc2lvbl9jb21wYXJlKENNU19WRVJTSU9OLCAnMS4xMCcpIDwgMCkNCiAgICAgICAgICAgICR0aGlzLT5Jbml0aWFsaXplRnJvbnRlbmQoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBJbml0aWFsaXplQWRtaW4oKSB7DQogICAgICAgIC8vIG5vdGhpbmcNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBMYXp5TG9hZEZyb250ZW5kKCkgew0KICAgICAgICByZXR1cm4gVFJVRTsNCiAgICB9DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0TmFtZSgpIHsNCiAgICAgICAgcmV0dXJuIGdldF9jbGFzcygpOw0KICAgIH0NCg0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKSB7DQogICAgICAgIHJldHVybiAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyk7DQogICAgfQ0KDQogICAgcHVibGljIGZ1bmN0aW9uIEdldFZlcnNpb24oKSB7DQogICAgICAgIHJldHVybiAnMi4xJzsNCiAgICB9DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gQWxsb3dBdXRvVXBncmFkZSgpIHsNCiAgICAgICAgcmV0dXJuIEZBTFNFOw0KICAgIH0NCg0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRIZWxwKCkgew0KICAgICAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2hlbHAnKTsNCiAgICB9DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0QXV0aG9yKCkgew0KICAgICAgICByZXR1cm4gJ0BrdXptYW55JzsNCiAgICB9DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKSB7DQogICAgICAgIHJldHVybiAnemRlbm9Aa3V6bWFueS5iaXonOw0KICAgIH0NCg0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRDaGFuZ2VMb2coKSB7DQogICAgICAgIHJldHVybiAkdGhpcy0+TGFuZygnY2hhbmdlbG9nJyk7DQogICAgfQ0KDQogICAgcHVibGljIGZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkgew0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gSGFzQWRtaW4oKSB7DQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCg0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkgew0KICAgICAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ21vZGRlc2NyaXB0aW9uJyk7DQogICAgfQ0KDQogICAgcHVibGljIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpIHsNCiAgICAgICAgcmV0dXJuIGFycmF5KCdDR0V4dGVuc2lvbnMnID0+ICcxLjIzJywgJ0V4dGVuZGVkVG9vbHMnID0+ICcxLjEuMScsICdDR1NtYXJ0SW1hZ2UnID0+ICcxLjUnKTsNCiAgICB9DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKSB7DQogICAgICAgIHJldHVybiAiMS45LjQiOw0KICAgIH0NCg0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRFdmVudERlc2NyaXB0aW9uKCRldmVudG5hbWUpIHsNCiAgICAgICAgcmV0dXJuICR0aGlzLT5MYW5nKCdldmVudF9pbmZvXycgLiAkZXZlbnRuYW1lKTsNCiAgICB9DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0RXZlbnRIZWxwKCRldmVudG5hbWUpIHsNCiAgICAgICAgcmV0dXJuICR0aGlzLT5MYW5nKCdldmVudF9oZWxwXycgLiAkZXZlbnRuYW1lKTsNCiAgICB9DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkgew0KICAgICAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7DQogICAgfQ0KDQogICAgcHVibGljIGZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkgew0KICAgICAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsNCiAgICB9DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gVW5pbnN0YWxsUHJlTWVzc2FnZSgpIHsNCiAgICAgICAgcmV0dXJuICR0aGlzLT5MYW5nKCdyZWFsbHlfdW5pbnN0YWxsJyk7DQogICAgfQ0KDQogICAgcHVibGljIGZ1bmN0aW9uIENoZWNrQWNjZXNzKCRwZXJtID0gJzEnKSB7DQogICAgICAgIHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCRwZXJtKTsNCiAgICB9DQoNCn0NCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/ModuleLib/action.admin_approveitem.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYgKCEkbW9kLT5DaGVja1Blcm1pc3Npb24oJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9pdGVtJykpDQogICAgcmV0dXJuOw0KDQppZiAoIWlzc2V0KCRwYXJhbXNbJ2FwcHJvdmUnXSkgfHwgIWlzc2V0KCRwYXJhbXNbJ2l0ZW1faWQnXSkpIHsNCiAgICBkaWUoJ21pc3NpbmcgcGFyYW1ldGVyLCB0aGlzIHNob3VsZCBub3QgaGFwcGVuJyk7DQp9DQoNCiRpdGVtX2lkID0gKGludCkgJHBhcmFtc1snaXRlbV9pZCddOw0KJGFjdGl2ZSA9IChib29sKSAkcGFyYW1zWydhcHByb3ZlJ107DQoNCiRxdWVyeSA9ICdVUERBVEUgJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtIFNFVCBhY3RpdmUgPSA/IFdIRVJFIGl0ZW1faWQgPSA/JzsNCiRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRhY3RpdmUsICRpdGVtX2lkKSk7DQoNCiRzZWFyY2ggPSBjbXNfdXRpbHM6OmdldF9zZWFyY2hfbW9kdWxlKCk7DQppZiAoaXNfb2JqZWN0KCRzZWFyY2gpKSB7DQogICAgaWYgKCRhY3RpdmUpIHsNCiAgICAgICAgJHNlYXJjaC0+RGVsZXRlV29yZHMoJG1vZC0+R2V0TmFtZSgpLCAkaXRlbV9pZCwgJ2l0ZW0nKTsNCiAgICB9IGVsc2Ugew0KDQogICAgICAkc2VhcmNoLT5BZGRXb3JkcygkbW9kLT5HZXROYW1lKCksICRpdGVtX2lkLCAnaXRlbScsIGdlbmVyYXRvcl90b29sczo6Z2V0X3NlYXJjaGFibGVfdGV4dCgkbW9kLCAkaXRlbV9pZCksIGdlbmVyYXRvcl90b29sczo6Z2V0X3NlYXJjaGFibGVfZGF0ZV9lbmQoKSk7DQogICAgfQ0KfQ0KDQpAJG1vZC0+U2VuZEV2ZW50KCdJdGVtRWRpdGVkJywgYXJyYXkoJ2l0ZW1faWQnID0+ICRpdGVtX2lkLCAnYWN0aXZlJyA9PiAkYWN0aXZlKSk7DQoNCi8vIGFsbCBkb25lDQokbW9kLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGFycmF5KCdhY3RpdmVfdGFiJyA9PiAnaXRlbXRhYicpKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/action.admin_bulkaction.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghaXNzZXQoJGdDbXMpKQogICAgZXhpdDsKCmlmICghJG1vZC0+Q2hlY2tQZXJtaXNzaW9uKCRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19tb2RpZnlfaXRlbScpKQogICAgcmV0dXJuOwoKJG1vZC0+U2V0Q3VycmVudFRhYignaXRlbXRhYicpOwoKCmlmIChpc3NldCgkcGFyYW1zWydtdWx0aXNlbGVjdCddKSAmJiBpc19hcnJheSgkcGFyYW1zWydtdWx0aXNlbGVjdCddKSAmJiBjb3VudCgkcGFyYW1zWydtdWx0aXNlbGVjdCddKSAmJiBpc3NldCgkcGFyYW1zWydidWxrYWN0aW9uJ10pKSB7CiAgICBmb3IgKCRpID0gMDsgJGkgPCBjb3VudCgkcGFyYW1zWydtdWx0aXNlbGVjdCddKTsgJGkrKykgewogICAgICAgICRwYXJhbXNbJ211bHRpc2VsZWN0J11bJGldID0gKGludCkgJHBhcmFtc1snbXVsdGlzZWxlY3QnXVskaV07CiAgICB9CgogICAgc3dpdGNoICgkcGFyYW1zWydidWxrYWN0aW9uJ10pIHsKICAgICAgICBjYXNlICdkZWxldGUnOgogICAgICAgICAgICBmb3JlYWNoICgkcGFyYW1zWydtdWx0aXNlbGVjdCddIGFzICRpdGVtX2lkKSB7CiAgICAgICAgICAgICAgICAkcmVzID0gZ2VuZXJhdG9yX3Rvb2xzOjpkZXRlbGVfaXRlbSgkbW9kLCAoaW50KSAkaXRlbV9pZCk7CiAgICAgICAgICAgICAgICBAJG1vZC0+U2VuZEV2ZW50KCdJdGVtRGVsZXRlZCcsIGFycmF5KCdpdGVtX2lkJyA9PiAkaXRlbV9pZCkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ3NldGFjdGl2ZSc6IHsKICAgICAgICAgICAgICAgICRxdWVyeSA9ICdVUERBVEUgJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtIFNFVCBhY3RpdmUgPSA/LCBtb2RpZmllZF9kYXRlID0gTk9XKCkgV0hFUkUgaXRlbV9pZCBJTiAoJzsKICAgICAgICAgICAgICAgICRxdWVyeSAuPSBpbXBsb2RlKCcsJywgJHBhcmFtc1snbXVsdGlzZWxlY3QnXSkgLiAnKSc7CiAgICAgICAgICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoMSkpOwogICAgICAgICAgICAgICAgJHNlYXJjaCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnU2VhcmNoJyk7CiAgICAgICAgICAgICAgICBmb3JlYWNoICgkcGFyYW1zWydtdWx0aXNlbGVjdCddIGFzICRpdGVtX2lkKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCRzZWFyY2ggIT0gRkFMU0UpCiAgICAgICAgICAgICAgICAgICAgICAgICRzZWFyY2gtPkFkZFdvcmRzKCRtb2QtPkdldE5hbWUoKSwgJGl0ZW1faWQsICdpdGVtJywgZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfc2VhcmNoYWJsZV90ZXh0KCRtb2QsICRpdGVtX2lkKSwgZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfc2VhcmNoYWJsZV9kYXRlX2VuZCgpKTsKICAgICAgICAgICAgICAgICAgICBAJG1vZC0+U2VuZEV2ZW50KCdJdGVtRWRpdGVkJywgYXJyYXkoJ2l0ZW1faWQnID0+ICRpdGVtX2lkLCAnYWN0aXZlJyA9PiAxKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnc2V0aW5hY3RpdmUnOiB7CiAgICAgICAgICAgICAgICAkcXVlcnkgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaXRlbSBTRVQgYWN0aXZlID0gPywgbW9kaWZpZWRfZGF0ZSA9IE5PVygpIFdIRVJFIGl0ZW1faWQgSU4gKCc7CiAgICAgICAgICAgICAgICAkcXVlcnkgLj0gaW1wbG9kZSgnLCcsICRwYXJhbXNbJ211bHRpc2VsZWN0J10pIC4gJyknOwogICAgICAgICAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KDApKTsKICAgICAgICAgICAgICAgIC8vVXBkYXRlIHNlYXJjaCBpbmRleAogICAgICAgICAgICAgICAgJHNlYXJjaCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnU2VhcmNoJyk7CiAgICAgICAgICAgICAgICBmb3JlYWNoICgkcGFyYW1zWydtdWx0aXNlbGVjdCddIGFzICRpdGVtX2lkKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCRzZWFyY2ggIT0gRkFMU0UpCiAgICAgICAgICAgICAgICAgICAgICAgICRzZWFyY2gtPkRlbGV0ZVdvcmRzKCRtb2QtPkdldE5hbWUoKSwgJGl0ZW1faWQsICdpdGVtJyk7CiAgICAgICAgICAgICAgICAgICAgQCRtb2QtPlNlbmRFdmVudCgnSXRlbUVkaXRlZCcsIGFycmF5KCdpdGVtX2lkJyA9PiAkaXRlbV9pZCwgJ2FjdGl2ZScgPT4gMCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgfQp9CgokbW9kLT5TZXRtZXNzYWdlKCRtb2QtPkxhbmcoJ29wZXJhdGlvbl9jb21wbGV0ZScpKTsKJG1vZC0+UmVkaXJlY3RUb1RhYigkaWQpOwojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/action.admin_deletecategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghaXNzZXQoJGdDbXMpKQogICAgZXhpdDsKCmlmICghJG1vZC0+Q2hlY2tQZXJtaXNzaW9uKCRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19tb2RpZnlfY2F0ZWdvcmllcycpKQogICAgcmV0dXJuOwoKCiRjYXRpZCA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snY2F0aWQnXSkpIHsKICAgICRjYXRpZCA9ICRwYXJhbXNbJ2NhdGlkJ107Cn0KCi8vIEdldCB0aGUgY2F0ZWdvcnkgZGV0YWlscwokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nLiRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19jYXRlZ29yaWVzCiAgICAgICAgICAgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/JzsKJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJGNhdGlkKSk7CgovL1Jlc2V0IGFsbCBjYXRlZ29yaWVzIHVzaW5nIHRoaXMgcGFyZW50IHRvIGhhdmUgbm8gcGFyZW50ICgtMSkKJHF1ZXJ5ID0gJ1VQREFURSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nLiRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19jYXRlZ29yaWVzIFNFVCBwYXJlbnRfaWQ9PywgbW9kaWZpZWRfZGF0ZT0nIC4gJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpIC4gJyBXSEVSRSBwYXJlbnRfaWQ9Pyc7CiRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KC0xLCAkY2F0aWQpKTsKCi8vTm93IHJlbW92ZSB0aGUgY2F0ZWdvcnkKJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlXyIuJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAiX2NhdGVnb3JpZXMgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/IjsKJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGNhdGlkKSk7CgovL0FuZCByZW1vdmUgaXQgZnJvbSBhbnkgYXJ0aWNsZXMKJHF1ZXJ5ID0gIlVQREFURSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV8iLiRtb2QtPl9HZXRNb2R1bGVBbGlhcygpLiJfaXRlbSBTRVQgY2F0ZWdvcnlfaWQgPSAtMSBXSEVSRSBjYXRlZ29yeV9pZCA9ID8iOwokZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY2F0aWQpKTsKCkAkbW9kLT5TZW5kRXZlbnQoJ0NhdGVnb3J5RGVsZXRlZCcsIGFycmF5KCdjYXRlZ29yeV9pZCcgPT4gJGNhdGlkLCAnbmFtZScgPT4gJHJvd1snY2F0ZWdvcnlfbmFtZSddKSk7CgpnZW5lcmF0b3JfdG9vbHM6OnVwZGF0ZV9oaWVyYXJjaHlfcG9zaXRpb25zKCRtb2QpOwoKJG1vZC0+UmVkaXJlY3RUb1RhYigkaWQsICdjYXRlZ29yeXRhYicsICRwYXJhbXMpOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/action.admin_deletefielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYgKCEkbW9kLT5DaGVja1Blcm1pc3Npb24oJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9vcHRpb24nKSkNCiAgICByZXR1cm47DQoNCiRmaWVsZGRlZl9pZCA9ICcnOw0KDQppZiAoaXNzZXQoJHBhcmFtc1snZmllbGRkZWZfaWQnXSkpIHsNCiAgICAkZmllbGRkZWZfaWQgPSAoaW50KSAkcGFyYW1zWydmaWVsZGRlZl9pZCddOw0KfQ0KDQppZiAoZW1wdHkoJGZpZWxkZGVmX2lkKSkgew0KICAgICRtb2QtPlNldEVycm9yKCRtb2QtPkxhbmcoJ2VtcHR5X3BhcmFtJykpOw0KICAgICRtb2QtPlJlZGlyZWN0VG9UYWIoJGlkLCAnJywgYXJyYXkoKSwgJ2FkbWluX2ZpZWxkcycpOw0KfQ0KDQovLyBnZXQgZGV0YWlscw0KJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZGRlZiBXSEVSRSBmaWVsZGRlZl9pZCA9ID8nOw0KJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJGZpZWxkZGVmX2lkKSk7DQoNCi8vIGRlbGV0ZSBmaWVsZCBkZWZpbml0aW9ucw0KJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGRkZWYgV0hFUkUgZmllbGRkZWZfaWQgPSA/JzsNCiRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRmaWVsZGRlZl9pZCkpOw0KDQovLyBkZWxldGUgZmllbGQgdmFsdWVzDQokcXVlcnkgPSAnREVMRVRFIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZHZhbCBXSEVSRSBmaWVsZGRlZl9pZCA9ID8nOw0KJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGZpZWxkZGVmX2lkKSk7DQoNCg0KLy8gYWxsIGRvbmUNCiRtb2QtPlNldG1lc3NhZ2UoJG1vZC0+TGFuZygnZGVsZXRlZCcpKTsNCiRtb2QtPlJlZGlyZWN0VG9UYWIoJGlkLCAkcm93WyJzZWN0aW9uIl0sIGFycmF5KCksICdhZG1pbl9maWVsZHMnKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/action.admin_deleteitem.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYgKCEkbW9kLT5DaGVja1Blcm1pc3Npb24oJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9pdGVtJykpDQogICAgcmV0dXJuOw0KDQokaXRlbV9pZCA9ICcnOw0KDQppZiAoaXNzZXQoJHBhcmFtc1snaXRlbV9pZCddKSkgew0KICAgICRpdGVtX2lkID0gKGludCkgJHBhcmFtc1snaXRlbV9pZCddOw0KfQ0KDQppZiAoZW1wdHkoJGl0ZW1faWQpKSB7DQogICAgJG1vZC0+U2V0RXJyb3IoJG1vZC0+TGFuZygnZW1wdHlfcGFyYW0nKSk7DQogICAgJG1vZC0+UmVkaXJlY3RUb1RhYigkaWQsICdkZWZhdWxhY3Rpb24nLCAkcGFyYW1zKTsNCn0NCg0KZ2VuZXJhdG9yX3Rvb2xzOjpkZXRlbGVfaXRlbSgkbW9kLCAkaXRlbV9pZCk7DQoNCiRtb2QtPlNldG1lc3NhZ2UoJG1vZC0+TGFuZygnZGVsZXRlZCcpKTsNCiRtb2QtPlJlZGlyZWN0VG9UYWIoJGlkLCAnZGVmYXVsdGFkbWluJywgJHBhcmFtcyk7DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/action.admin_deletetemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghJG1vZC0+Q2hlY2tQZXJtaXNzaW9uKCRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19tb2RpZnlfb3B0aW9uJykpIHJldHVybjsNCg0KJHRwbF9pZCA9ICcnOw0KDQppZiAoaXNzZXQoJHBhcmFtc1sndHBsX2lkJ10pKSB7DQoJJHRwbF9pZCA9IChpbnQpJHBhcmFtc1sndHBsX2lkJ107DQp9DQoNCi8vIGdldCBkZXRhaWxzDQokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX3RlbXBsYXRlIFdIRVJFIHRwbF9pZCA9ID8nOw0KJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJHRwbF9pZCkpOw0KDQovLyBkZWxldGUgcmVjb3JkDQokcXVlcnkgPSAnREVMRVRFIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ190ZW1wbGF0ZSBXSEVSRSB0cGxfaWQgPSA/JzsNCiRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCR0cGxfaWQpKTsNCg0KLy8gYWxsIGRvbmUNCiRtb2QtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgYXJyYXkoJ2FjdGl2ZV90YWInID0+ICd0ZW1wbGF0ZXRhYicsICdtZXNzYWdlJyA9PiAnZGVsZXRlZCcpKTsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/action.admin_editcategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghaXNzZXQoJGdDbXMpKQogICAgZXhpdDsKCgppZiAoISRtb2QtPkNoZWNrUGVybWlzc2lvbigkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2NhdGVnb3JpZXMnKSkKICAgIHJldHVybjsKCmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpIHsKICAgICRtb2QtPlJlZGlyZWN0VG9UYWIoJGlkLCAnY2F0ZWdvcnl0YWInKTsKfQoKJGl0ZW1faWQgPSAkY2F0aWQgPSBudWxsOwppZiAoaXNzZXQoJHBhcmFtc1snY2F0aWQnXSkpIHsKICAgICRpdGVtX2lkID0gJGNhdGlkID0gJHBhcmFtc1snY2F0aWQnXTsKfQoKJHBhcmVudGlkID0gJy0xJzsKaWYgKGlzc2V0KCRwYXJhbXNbJ3BhcmVudCddKSkgewogICAgJHBhcmVudGlkID0gJHBhcmFtc1sncGFyZW50J107Cn0KCiRvcmlnbmFtZSA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snb3JpZ25hbWUnXSkpIHsKICAgICRvcmlnbmFtZSA9ICRwYXJhbXNbJ29yaWduYW1lJ107Cn0KCiRhbGlhcyA9ICcnOwppZiAoaXNzZXQoJHBhcmFtc1snYWxpYXMnXSkpIHsKICAgICRhbGlhcyA9IG11bmdlX3N0cmluZ190b191cmwoJHBhcmFtc1snYWxpYXMnXSwgdHJ1ZSk7Cn0KCgokdXNlcmdyb3VwID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWyd1c2VyZ3JvdXAnXSkpIHsKICAgICR1c2VyZ3JvdXAgPSAkcGFyYW1zWyd1c2VyZ3JvdXAnXTsKfQoKLy8gZ2V0IHRoZSBjdXN0b20gZmllbGRzCiRmaWx0ZXJzID0gbmV3IGdlbmVyYXRvcl9maWx0ZXJzKCRpZCwgJG1vZCwgJ2FkbWluJyk7CiR0bXAgPSBnZW5lcmF0b3JfZmllbGRzOjpnZXRfZmllbGRzX2Zvcl9maWx0ZXJzKCRtb2QsIGFycmF5KCksICdjYXRlZ29yaWVzJyk7CiRjdXN0b21fZmxkcyA9ICRmaWx0ZXJzLT5wcm9jZXNzX2N1c3RvbV9maWVsZHMoYXJyYXkoKSwgJHRtcCk7CgoKJG5hbWUgPSAnJzsKJGVycm9ycyA9IGFycmF5KCk7CmlmIChpc3NldCgkcGFyYW1zWyduYW1lJ10pKSB7CiAgICAkbmFtZSA9ICRwYXJhbXNbJ25hbWUnXTsKICAgIGlmICgkbmFtZSA9PSAnJykgewogICAgICAgICRlcnJvcnNbXSA9ICRtb2QtPlNob3dFcnJvcnMoZ2VuZXJhdG9yKCktPkxhbmcoJ25vbmFtZWdpdmVuJykpOwogICAgfQoKICAgIGlmIChpc3NldCgkcGFyYW1zWydjdXN0b21maWVsZCddKSkgewogICAgICAgIGZvcmVhY2ggKCRwYXJhbXNbJ2N1c3RvbWZpZWxkJ10gYXMgJGZsZGlkID0+ICR2YWx1ZSkgewoKICAgICAgICAgICAgaWYgKCR2YWx1ZSA9PSAnc2VsZWN0X2RlZmF1bHQnKSB7CiAgICAgICAgICAgICAgICAkcGFyYW1zWydjdXN0b21maWVsZCddWyRmbGRpZF0gPSAnJzsKICAgICAgICAgICAgICAgICR2YWx1ZSA9ICcnOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyByZXF1aXJlZCBmaWVsZHMKICAgICAgICAgICAgaWYgKCR2YWx1ZSA9PSAnJyAmJiAkY3VzdG9tX2ZsZHNbJGZsZGlkXVsncmVxdWlyZWQnXSAmJiAoJGN1c3RvbV9mbGRzWyRmbGRpZF1bJ2VkaXR2aWV3J10gJiYgaXNTZXQoJHBhcmFtc1siaXRlbV9pZCJdKSkpIHsKICAgICAgICAgICAgICAgICRlcnJvcnNbXSA9IGdlbmVyYXRvcigpLT5MYW5nKCdyZXF1aXJlZF9maWVsZF9lbXB0eScpIC4gJyAoJyAuICRjdXN0b21fZmxkc1skZmxkaWRdWyduYW1lJ10gLiAnKSc7CiAgICAgICAgICAgICAgICBicmVhazsgLy8gb25seSBkaXNwbGF5IG9uZSBlcnJvciBtZXNzYWdlIGF0IGEgdGltZQogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBtYXggbGVuZ3RoCiAgICAgICAgICAgIGlmIChpc3NldCgkY3VzdG9tX2ZsZHNbJGZsZGlkXVsnbWF4X2xlbmd0aCddKSAmJiBtYl9zdHJsZW4oJHZhbHVlKSA+ICRjdXN0b21fZmxkc1skZmxkaWRdWydtYXhfbGVuZ3RoJ10pIHsKICAgICAgICAgICAgICAgICRlcnJvcnNbXSA9IGdlbmVyYXRvcigpLT5MYW5nKCd0b29fbG9uZycpIC4gJyAoJyAuICRjdXN0b21fZmxkc1skZmxkaWRdWyduYW1lJ10gLiAnKSc7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gb3B0aW9ucwogICAgICAgICAgICBpZiAoJHZhbHVlICE9ICcnICYmIGlzc2V0KCRjdXN0b21fZmxkc1skZmxkaWRdWydvcHRpb25zJ10pICYmICFhcnJheV9rZXlfZXhpc3RzKCR2YWx1ZSwgJGN1c3RvbV9mbGRzWyRmbGRpZF1bJ29wdGlvbnMnXSkpIHsKICAgICAgICAgICAgICAgICRlcnJvcnNbXSA9IGdlbmVyYXRvcigpLT5MYW5nKCdpbnZhbGlkJykgLiAnICgnIC4gJGN1c3RvbV9mbGRzWyRmbGRpZF1bJ25hbWUnXSAuICcpJzsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIC8vIGRpc3BsYXkgZXJyb3JzIGlmIHRoZXJlIGFyZSBhbnkKICAgIGlmICghZW1wdHkoJGVycm9ycykpIHsKICAgICAgICBlY2hvICRtb2QtPlNob3dFcnJvcnMoJGVycm9ycyk7CiAgICB9IGVsc2UgewoKICAgICAgICBpZiAoJGNhdGlkICE9IG51bGwpIHsKICAgICAgICAgICAgJHF1ZXJ5ID0gJ1VQREFURSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2NhdGVnb3JpZXMgU0VUIGNhdGVnb3J5X25hbWUgPSA/LGNhdGVnb3J5X2FsaWFzID0gPywgdXNlcmdyb3VwID0gPywgcGFyZW50X2lkID0gPywgbW9kaWZpZWRfZGF0ZSA9ICcgLiAkZGItPkRCVGltZVN0YW1wKHRpbWUoKSkgLiAnIFdIRVJFIGNhdGVnb3J5X2lkID0gPyc7CiAgICAgICAgICAgICRwYXJtcyA9IGFycmF5KCRuYW1lLCAkYWxpYXMsICR1c2VyZ3JvdXAsICRwYXJlbnRpZCk7CiAgICAgICAgICAgICRwYXJtc1tdID0gJGNhdGlkOwogICAgICAgICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCAkcGFybXMpOwogICAgICAgICAgICBAJG1vZC0+U2VuZEV2ZW50KCdDYXRlZ29yeUVkaXRlZCcsIGFycmF5KCdjYXRlZ29yeV9pZCcgPT4gJGNhdGlkLCAnbmFtZScgPT4gJG5hbWUpKTsKICAgICAgICAgICAgJHJwYXJtcyA9IGFycmF5KCd0YWJfbWVzc2FnZScgPT4gJ2NhdGVnb3J5dXBkYXRlZCcpOwogICAgICAgICAgICBnZW5lcmF0b3JfdG9vbHM6OnVwZGF0ZV9oaWVyYXJjaHlfcG9zaXRpb25zKCRtb2QpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICR0aW1lID0gJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpOwogICAgICAgICAgICAkcG9zaXRpb24gPSAkZGItPkdldE9uZSgnU0VMRUNUIE1BWChwb3NpdGlvbikgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2NhdGVnb3JpZXMgV0hFUkUgcGFyZW50X2lkID0gPycsIGFycmF5KGludHZhbCgkcGFyZW50aWQpKSk7ICAgICAgICAgICAgCiAgICAgICAgICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2NhdGVnb3JpZXMgKGNhdGVnb3J5X2lkLCBjYXRlZ29yeV9uYW1lLCBjYXRlZ29yeV9hbGlhcywgdXNlcmdyb3VwLCBwYXJlbnRfaWQsIHBvc2l0aW9uLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSkgVkFMVUVTICg/LD8sPyw/LD8sPywnIC4gJHRpbWUgLiAnLCcgLiAkdGltZSAuICcpJzsKICAgICAgICAgICAgJHBhcm1zID0gYXJyYXkoJGNhdGlkLCAkbmFtZSwgJGFsaWFzLCAkdXNlcmdyb3VwLCBpbnR2YWwoJHBhcmVudGlkKSwgJHBvc2l0aW9uKTsKICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgJHBhcm1zKTsKICAgICAgICAgICAgJGNhdGlkID0gJGl0ZW1faWQgPSAkZGItPkluc2VydF9JRCgpOwogICAgICAgICAgICBAJG1vZC0+U2VuZEV2ZW50KCdDYXRlZ29yeUFkZGVkJywgYXJyYXkoJ2NhdGVnb3J5X2lkJyA9PiAkY2F0aWQsICduYW1lJyA9PiAkbmFtZSkpOwogICAgICAgICAgICAkcnBhcm1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJyA9PiAnY2F0ZWdvcnlhZGRlZCcpOwogICAgICAgICAgICBnZW5lcmF0b3JfdG9vbHM6OnVwZGF0ZV9oaWVyYXJjaHlfcG9zaXRpb25zKCRtb2QpOwogICAgICAgICAgICBnZW5lcmF0b3JfdG9vbHM6OnVwZGF0ZV9oaWVyYXJjaHlfcG9zaXRpb25zKCRtb2QpOwogICAgICAgIH0KICAgICAgICAvLyBoYW5kbGUgdXBsb2FkaW5nIG9mIGZpbGUgZmllbGRzCiAgICAgICAgZm9yZWFjaCAoJGN1c3RvbV9mbGRzIGFzICRjdXN0b21fZmxkKSB7CiAgICAgICAgICAgIGlmICgkY3VzdG9tX2ZsZFsndHlwZSddICE9ICd1cGxvYWRfZmlsZScpCiAgICAgICAgICAgICAgICBjb250aW51ZTsKCiAgICAgICAgICAgICRlbGVtID0gJGlkIC4gJ2N1c3RvbWZpZWxkXycgLiAkY3VzdG9tX2ZsZFsnZmllbGRkZWZfaWQnXTsKICAgICAgICAgICAgLy8gJGVsZW0gbG9va3MgbGlrZSBtMV9jdXN0b21maWVsZF8xCiAgICAgICAgICAgIC8vIGNoZWNrIGlmIGZpbGUgd2FzIHVwbG9hZGVkIGZvciB0aGlzIGZpZWxkCiAgICAgICAgICAgIGlmIChpc3NldCgkX0ZJTEVTWyRlbGVtXSkgJiYgJF9GSUxFU1skZWxlbV1bJ25hbWUnXSAhPSAnJykgewoKICAgICAgICAgICAgICAgIGlmICgkX0ZJTEVTWyRlbGVtXVsnZXJyb3InXSAhPSAwIHx8ICRfRklMRVNbJGVsZW1dWyd0bXBfbmFtZSddID09ICcnKSB7CiAgICAgICAgICAgICAgICAgICAgJGVycm9yc1tdID0gZ2VuZXJhdG9yKCktPkxhbmcoJ2Vycm9yX3VwbG9hZCcpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkdmFsdWUgPSBnZW5lcmF0b3JfdG9vbHM6OmhhbmRsZV91cGxvYWQoJG1vZCwgJGl0ZW1faWQsICRlbGVtLCAkZXJyb3IsICRjdXN0b21fZmxkWydhbGxvdyddLCAkcm93KTsKICAgICAgICAgICAgICAgICAgICBpZiAoJHZhbHVlID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICAgICAkZXJyb3JzW10gPSAkZXJyb3I7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gcG9wdWxhdGUgJHBhcmFtc1snY3VzdG9tZmllbGQnXQogICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHdvdWxkIGhvbGQgdGhlIHVwbG9hZGVkIGZpbGVuYW1lCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgaW5zZXJ0ZWQgaW50byB0aGUgZGF0YWJhc2UgYmVsb3cKICAgICAgICAgICAgICAgICAgICAgICAgJHBhcmFtc1snY3VzdG9tZmllbGQnXVskY3VzdG9tX2ZsZFsnZmllbGRkZWZfaWQnXV0gPSAkdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8vIGhhbmRsZSBpbnNlcnRpbmcgY3VzdG9tIGZpZWxkcyBpbnRvIGRhdGFiYXNlCiAgICAgICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2N1c3RvbWZpZWxkJ10pKSB7CiAgICAgICAgICAgIGZvcmVhY2ggKCRwYXJhbXNbJ2N1c3RvbWZpZWxkJ10gYXMgJGZsZGlkID0+ICR2YWx1ZSkgewoKICAgICAgICAgICAgICAgIGlmIChpc19hcnJheSgkdmFsdWUpKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFlbXB0eSgkdmFsdWUpKQogICAgICAgICAgICAgICAgICAgICAgICAkdmFsdWUgPSBpbXBsb2RlKCcsJywgJHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICR2YWx1ZSA9ICcnOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIGNoZWNrIGlmIHJvdyBleGlzdHMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdG8gaW5zZXJ0IG9yIHVwZGF0ZQogICAgICAgICAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCB2YWx1ZSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGR2YWwgV0hFUkUgaXRlbV9pZCA9ID8gQU5EIGZpZWxkZGVmX2lkID0gPyc7CiAgICAgICAgICAgICAgICAkdG1wID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LCBhcnJheSgkaXRlbV9pZCwgJGZsZGlkKSk7CiAgICAgICAgICAgICAgICAvLyByb3cgZG9lcyBub3QgZXhpc3QKICAgICAgICAgICAgICAgIGlmICgkdG1wID09ICIiKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gb25seSBpbnNlcnQgcm93IGlmIGZpZWxkIHZhbHVlIGlzIG5vdCBlbXB0eQogICAgICAgICAgICAgICAgICAgIGlmICgkdmFsdWUgIT0gIiIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGR2YWwgKGl0ZW1faWQsIGZpZWxkZGVmX2lkLCB2YWx1ZSkgVkFMVUVTICg/LCA/LCA/KSc7CiAgICAgICAgICAgICAgICAgICAgICAgICRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkaXRlbV9pZCwgJGZsZGlkLCAkdmFsdWUpKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgLy8gcm93IGFscmVhZHkgZXhpc3RzCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIC8vIGRlbGV0ZSByb3cgaWYgZmllbGQgdmFsdWUgaXMgZW1wdHkKICAgICAgICAgICAgICAgICAgICBpZiAoJHZhbHVlID09ICIiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkdmFsIFdIRVJFIGl0ZW1faWQgPSA/IEFORCBmaWVsZGRlZl9pZCA9ID8nOwogICAgICAgICAgICAgICAgICAgICAgICAkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGl0ZW1faWQsICRmbGRpZCkpOwogICAgICAgICAgICAgICAgICAgICAgICAvLyB1cGRhdGUgcm93CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHF1ZXJ5ID0gJ1VQREFURSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkdmFsIFNFVCB2YWx1ZSA9ID8gV0hFUkUgaXRlbV9pZCA9ID8gQU5EIGZpZWxkZGVmX2lkID0gPyc7CiAgICAgICAgICAgICAgICAgICAgICAgICRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkdmFsdWUsICRpdGVtX2lkLCAkZmxkaWQpKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8vIGRlbGV0ZSB2YWx1ZSBmcm9tIGZpbGUgZmllbGQKICAgICAgICBpZiAoaXNzZXQoJHBhcmFtc1snZGVsZXRlX2N1c3RvbWZpZWxkJ10pICYmIGlzX2FycmF5KCRwYXJhbXNbJ2RlbGV0ZV9jdXN0b21maWVsZCddKSkgewogICAgICAgICAgICBmb3JlYWNoICgkcGFyYW1zWydkZWxldGVfY3VzdG9tZmllbGQnXSBhcyAkayA9PiAkdikgewogICAgICAgICAgICAgICAgaWYgKCR2ICE9ICdkZWxldGUnKQogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBza2lwIGlmIG5vdCBkZWxldGluZyBhbnl0aGluZwoKICAgICAgICAgICAgICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkdmFsIFdIRVJFIGl0ZW1faWQgPSA/IEFORCBmaWVsZGRlZl9pZCA9ID8nOwogICAgICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGl0ZW1faWQsICRrKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgoKICAgICAgICAkbW9kLT5SZWRpcmVjdFRvVGFiKCRpZCwgJ2NhdGVnb3J5dGFiJywgJHJwYXJtcyk7CiAgICB9Cn0gZWxzZSB7CiAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2NhdGVnb3JpZXMgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/JzsKICAgICRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCRjYXRpZCkpOwoKICAgIGlmICgkcm93KSB7CiAgICAgICAgJG5hbWUgPSAkcm93WydjYXRlZ29yeV9uYW1lJ107CiAgICAgICAgJGFsaWFzID0gJHJvd1snY2F0ZWdvcnlfYWxpYXMnXTsKICAgICAgICAkdXNlcmdyb3VwID0gJHJvd1sndXNlcmdyb3VwJ107CiAgICAgICAgJHBhcmVudGlkID0gJHJvd1sncGFyZW50X2lkJ107CiAgICB9Cn0KCgojRGlzcGxheSB0ZW1wbGF0ZQokbW9kLT5zbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgJG1vZC0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2FkbWluX2VkaXRjYXRlZ29yeScsICRyZXR1cm5pZCwgJ3Bvc3QnLCAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKTsKJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCAkbW9kLT5DcmVhdGVGb3JtRW5kKCkpOwokbW9kLT5zbWFydHktPmFzc2lnbignbmFtZXRleHQnLCBnZW5lcmF0b3IoKS0+TGFuZygnbmFtZScpKTsKJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2FsaWFzdGV4dCcsIGdlbmVyYXRvcigpLT5MYW5nKCdhbGlhcycpKTsKCiRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dG5hbWUnLCAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnbmFtZScsICRuYW1lLCAyMCwgMjU1KSk7CiRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dGFsaWFzJywgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2FsaWFzJywgJGFsaWFzLCAyMCwgMjU1KSk7CgokZ3JvdXBvcHMgPSBjbXNtcygpLT5HZXRHcm91cE9wZXJhdGlvbnMoKTsKJGdyb3VwbGlzdCA9ICRncm91cG9wcy0+TG9hZEdyb3VwcygpOwokdXNlcmdyb3VwcyA9IGV4dGVuZGVkX3Rvb2xzX29wdHM6Om9iamVjdF90b19oYXNoKCRncm91cGxpc3QsICduYW1lJywgJ2lkJyk7CgokdXNlcmdyb3VwcyA9IGFycmF5X21lcmdlKGFycmF5KGxhbmcoJ25vbmUnKSA9PiAnJyksICR1c2VyZ3JvdXBzKTsKJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0dXNlcmdyb3VwJywgJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICd1c2VyZ3JvdXAnLCAkdXNlcmdyb3VwcywgLTEsICR1c2VyZ3JvdXApKTsKCiRtb2QtPnNtYXJ0eS0+YXNzaWduKCdwYXJlbnRkcm9wZG93bicsIGdlbmVyYXRvcl90b29sczo6Y3JlYXRlX3BhcmVudF9kcm9wZG93bigkdGhpcywgJGlkLCAkY2F0aWQsICRwYXJlbnRpZCkpOwokbW9kLT5zbWFydHktPmFzc2lnbignaGlkZGVuJywgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnY2F0aWQnLCAkY2F0aWQpIC4KICAgICAgICAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdvcmlnbmFtZScsICRuYW1lKSk7CiRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLCBsYW5nKCdzdWJtaXQnKSkpOwokbW9kLT5zbWFydHktPmFzc2lnbignY2FuY2VsJywgJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsKJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3BhcmVudHRleHQnLCBsYW5nKCdwYXJlbnQnKSk7CiRtb2QtPnNtYXJ0eS0+YXNzaWduKCd1c2VyZ3JvdXB0ZXh0JywgbGFuZygnZ3JvdXAnKSk7CgokY3VzdG9tX2ZsZHNfb2JqID0gJGZpbHRlcnMtPmdlbmVyYXRlKCRpdGVtX2lkLCAkcGFyYW1zKTsKaWYgKGlzc2V0KCRjdXN0b21fZmxkc19vYmopICYmIGNvdW50KCRjdXN0b21fZmxkc19vYmopID4gMCkgewogICAgJHNtYXJ0eS0+YXNzaWduKCdjdXN0b21fZmllbGRkZWYnLCAkY3VzdG9tX2ZsZHNfb2JqKTsKfQoKCmVjaG8gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0Y2F0ZWdvcnkudHBsJyk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/action.admin_editfielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYgKCEkbW9kLT5DaGVja1Blcm1pc3Npb24oJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9vcHRpb24nKSkNCiAgICByZXR1cm47DQoNCmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpIHsNCiAgICAkcGFyYW1zID0gYXJyYXkoJ2FjdGl2ZV90YWInID0+ICdmaWVsZGRlZnRhYicpOw0KICAgICRtb2QtPlJlZGlyZWN0VG9UYWIoJGlkLCAnZmllbGRkZWZ0YWInKTsNCn0NCg0KJGRiID0gJG1vZC0+R2V0RGIoKTsNCiRmaWVsZGRlZl9pZCA9IG51bGw7DQokbmFtZSA9ICcnOw0KJGFsaWFzID0gJyc7DQokaGVscCA9ICcnOw0KJHR5cGUgPSAnJzsNCiRyZXF1aXJlZCA9IDA7DQokZnJvbnRlbmQgPSAxOw0KJGVkaXR2aWV3ID0gMDsNCiRmaWx0ZXJfZnJvbnRlbmQgPSAwOw0KJGZpbHRlcl9hZG1pbiA9IDA7DQokc2VhcmNoYWJsZSA9IDA7DQokZXh0cmEgPSAnJzsNCiRzZWN0aW9uPSAnaXRlbXMnOw0KJGVycm9ycyA9IGFycmF5KCk7DQoNCi8vIGlmICRwYXJhbXNbJ2ZpZWxkZGVmX2lkJ10gaXMgc3VwcGxpZWQgYW5kIGV4aXN0cywgcG9wdWxhdGUgd2l0aCB2YWx1ZXMgZnJvbSBkYXRhYmFzZQ0KDQppZiAoaXNzZXQoJHBhcmFtc1snZmllbGRkZWZfaWQnXSkpIHsNCiAgICAkZmllbGRkZWZfaWQgPSAoaW50KSAkcGFyYW1zWydmaWVsZGRlZl9pZCddOw0KICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGRkZWYgV0hFUkUgZmllbGRkZWZfaWQgPSA/JzsNCiAgICAkcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSgkZmllbGRkZWZfaWQpKTsNCg0KICAgIGlmICgkcm93KSB7DQogICAgICAgICRuYW1lID0gJHJvd1snbmFtZSddOw0KICAgICAgICAkYWxpYXMgPSAkcm93WydhbGlhcyddOw0KICAgICAgICAkaGVscCA9ICRyb3dbJ2hlbHAnXTsNCiAgICAgICAgJHR5cGUgPSAkcm93Wyd0eXBlJ107DQogICAgICAgICRyZXF1aXJlZCA9ICRyb3dbJ3JlcXVpcmVkJ107DQogICAgICAgICRmcm9udGVuZCA9ICRyb3dbJ2Zyb250ZW5kJ107DQogICAgICAgICRlZGl0dmlldyA9ICRyb3dbJ2VkaXR2aWV3J107DQogICAgICAgICRmaWx0ZXJfZnJvbnRlbmQgPSAkcm93WydmaWx0ZXJfZnJvbnRlbmQnXTsNCiAgICAgICAgJGZpbHRlcl9hZG1pbiA9ICRyb3dbJ2ZpbHRlcl9hZG1pbiddOw0KICAgICAgICAkc2VhcmNoYWJsZSA9ICRyb3dbJ3NlYXJjaGFibGUnXTsNCiAgICAgICAgJGV4dHJhID0gJHJvd1snZXh0cmEnXTsNCiAgICAgICAgJHNlY3Rpb24gPSAkcm93WydzZWN0aW9uJ107DQogICAgfSBlbHNlIHsNCiAgICAgICAgJGZpZWxkZGVmX2lkID0gbnVsbDsNCiAgICB9DQp9DQoNCi8vIGhhbmRsZSBzdWJtaXQgb3IgYXBwbHkNCmlmIChpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgfHwgaXNzZXQoJHBhcmFtc1snYXBwbHknXSkpIHsNCiAgICAkbmFtZSA9ICRwYXJhbXNbJ25hbWUnXTsNCiAgICAkYWxpYXMgPSAkcGFyYW1zWydhbGlhcyddOw0KICAgICRoZWxwID0gJHBhcmFtc1snaGVscCddOw0KICAgICR0eXBlID0gJHBhcmFtc1sndHlwZSddOw0KICAgICRyZXF1aXJlZCA9IChpc3NldCgkcGFyYW1zWydyZXF1aXJlZCddKSA/IDEgOiAwKTsNCiAgICAkZnJvbnRlbmQgPSAoaXNzZXQoJHBhcmFtc1snZnJvbnRlbmQnXSkgPyAxIDogMCk7DQogICAgJGVkaXR2aWV3ID0gKGlzc2V0KCRwYXJhbXNbJ2VkaXR2aWV3J10pID8gMSA6IDApOw0KICAgICRmaWx0ZXJfZnJvbnRlbmQgPSAoaXNzZXQoJHBhcmFtc1snZmlsdGVyX2Zyb250ZW5kJ10pID8gMSA6IDApOw0KICAgICRmaWx0ZXJfYWRtaW4gPSAoaXNzZXQoJHBhcmFtc1snZmlsdGVyX2FkbWluJ10pID8gMSA6IDApOw0KICAgICRzZWFyY2hhYmxlID0gKGlzc2V0KCRwYXJhbXNbJ3NlYXJjaGFibGUnXSkgPyAxIDogMCk7DQogICAgJGV4dHJhID0gJHBhcmFtc1snZXh0cmEnXTsNCiAgICAkc2VjdGlvbiA9ICRwYXJhbXNbJ3NlY3Rpb24nXTsNCg0KICAgIC8vIGNoZWNrIG5hbWUNCiAgICBpZiAoJG5hbWUgPT0gJycpIHsNCiAgICAgICAgJGVycm9yc1tdID0gZ2VuZXJhdG9yKCktPkxhbmcoJ2ZpZWxkZGVmX25hbWVfZW1wdHknKTsNCiAgICB9DQoNCiAgICBpZiAoaXNzZXQoJGZpZWxkZGVmX2lkKSkgew0KICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIGZpZWxkZGVmX2lkIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZGRlZiBXSEVSRSBuYW1lID0gPyBBTkQgZmllbGRkZWZfaWQgIT0gPyc7DQogICAgICAgICRleGlzdHMgPSAkZGItPkdldE9uZSgkcXVlcnksIGFycmF5KCRuYW1lLCAkZmllbGRkZWZfaWQpKTsNCiAgICB9IGVsc2Ugew0KICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIGZpZWxkZGVmX2lkIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZGRlZiBXSEVSRSBuYW1lID0gPyc7DQogICAgICAgICRleGlzdHMgPSAkZGItPkdldE9uZSgkcXVlcnksIGFycmF5KCRuYW1lKSk7DQogICAgfQ0KDQogICAgaWYgKCRleGlzdHMpIHsNCiAgICAgICAgJGVycm9yc1tdID0gZ2VuZXJhdG9yKCktPkxhbmcoJ2ZpZWxkZGVmX25hbWVfZXhpc3RzJyk7DQogICAgfQ0KDQogICAgLy8gZ2VuZXJhdGUgYWxpYXMgaWYgbm90IHN1cHBsaWVkDQogICAgaWYgKCRhbGlhcyA9PSAnJykgew0KICAgICAgICAkYWxpYXMgPSBnZW5lcmF0b3JfdG9vbHM6OmdlbmVyYXRlX2FsaWFzKCRuYW1lKTsNCiAgICB9DQoNCiAgICAvLyBjaGVjayBhbGlhcw0KICAgIGlmICghZ2VuZXJhdG9yX3Rvb2xzOjppc192YWxpZF9hbGlhcygkYWxpYXMpKSB7DQogICAgICAgICRlcnJvcnNbXSA9IGdlbmVyYXRvcigpLT5MYW5nKCdhbGlhc19pbnZhbGlkJyk7DQogICAgfQ0KDQogICAgaWYgKGVtcHR5KCRlcnJvcnMpKSB7DQogICAgICAgIC8vIHVwZGF0ZQ0KICAgICAgICBpZiAoaXNzZXQoJGZpZWxkZGVmX2lkKSkgew0KICAgICAgICAgICAgJHF1ZXJ5ID0gJ1VQREFURSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkZGVmIFNFVCBuYW1lID0gPywgYWxpYXMgPSA/LCBoZWxwID0gPywgdHlwZSA9ID8sIHJlcXVpcmVkID0gPywgZnJvbnRlbmQgPSA/LCBlZGl0dmlldyA9ID8sIGZpbHRlcl9mcm9udGVuZCA9ID8sIGZpbHRlcl9hZG1pbiA9ID8sIHNlYXJjaGFibGUgPSA/LCBleHRyYSA9ID8sIHNlY3Rpb24gPSA/IFdIRVJFIGZpZWxkZGVmX2lkID0gPyc7DQogICAgICAgICAgICAkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJG5hbWUsICRhbGlhcywgJGhlbHAsICR0eXBlLCAkcmVxdWlyZWQsICRmcm9udGVuZCwgJGVkaXR2aWV3LCAkZmlsdGVyX2Zyb250ZW5kLCAkZmlsdGVyX2FkbWluLCAkc2VhcmNoYWJsZSwgJGV4dHJhLCAkc2VjdGlvbiwgJGZpZWxkZGVmX2lkKSk7DQogICAgICAgICAgICBpZiAoISRyZXN1bHQpDQogICAgICAgICAgICAgICAgZGllKCdGQVRBTCBTUUwgRVJST1I6ICcgLiAkZGItPkVycm9yTXNnKCkgLiAnPGJyLz5RVUVSWTogJyAuICRkYi0+c3FsKTsNCg0KICAgICAgICAgICAgLy8gaW5zZXJ0DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkcG9zaXRpb24gPSAkZGItPkdldE9uZSgnU0VMRUNUIG1heChwb3NpdGlvbikgKyAxIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZGRlZicpOw0KDQogICAgICAgICAgICBpZiAoJHBvc2l0aW9uID09IG51bGwpIHsNCiAgICAgICAgICAgICAgICAkcG9zaXRpb24gPSAxOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZGRlZiAobmFtZSwgYWxpYXMsIGhlbHAsIHR5cGUsIHBvc2l0aW9uLCByZXF1aXJlZCwgZnJvbnRlbmQsIGVkaXR2aWV3LCBmaWx0ZXJfZnJvbnRlbmQsIGZpbHRlcl9hZG1pbiwgc2VhcmNoYWJsZSwgZXh0cmEsIHNlY3Rpb24pIFZBTFVFUyAoPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPyknOw0KICAgICAgICAgICAgJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRuYW1lLCAkYWxpYXMsICRoZWxwLCAkdHlwZSwgJHBvc2l0aW9uLCAkcmVxdWlyZWQsICRmcm9udGVuZCwgJGVkaXR2aWV3LCAkZmlsdGVyX2Zyb250ZW5kLCAkYWRtaW5fYWRtaW4sICRzZWFyY2hhYmxlLCAkZXh0cmEsICRzZWN0aW9uKSk7DQogICAgICAgICAgICBpZiAoISRyZXN1bHQpDQogICAgICAgICAgICAgICAgZGllKCdGQVRBTCBTUUwgRVJST1I6ICcgLiAkZGItPkVycm9yTXNnKCkgLiAnPGJyLz5RVUVSWTogJyAuICRkYi0+c3FsKTsNCg0KICAgICAgICAgICAgLy8gcG9wdWxhdGUgJGZpZWxkZGVmX2lkIGZvciBuZXdseSBpbnNlcnRlZCBpdGVtDQogICAgICAgICAgICAkZmllbGRkZWZfaWQgPSAkZGItPkluc2VydF9JRCgpOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYgKCFpc3NldCgkcGFyYW1zWydhcHBseSddKSkgew0KICAgICAgICAgICAgJG1vZC0+UmVkaXJlY3RUb1RhYigkaWQsICRzZWN0aW9uLCBhcnJheSgpLCAnYWRtaW5fZmllbGRzJyk7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBlY2hvICRtb2QtPlNob3dNZXNzYWdlKGdlbmVyYXRvcigpLT5MYW5nKCdjaGFuZ2Vzc2F2ZWQnKSk7DQogICAgICAgIH0NCiAgICB9DQp9DQoNCi8vIGRpc3BsYXkgZXJyb3JzIGlmIHRoZXJlIGFyZSBhbnkNCmlmICghZW1wdHkoJGVycm9ycykpIHsNCiAgICBlY2hvICRtb2QtPlNob3dFcnJvcnMoJGVycm9ycyk7DQp9DQoNCiRzbWFydHktPmFzc2lnbigndGl0bGUnLCAoaXNzZXQoJGZpZWxkZGVmX2lkKSA/IGdlbmVyYXRvcigpLT5MYW5nKCdlZGl0ZmllbGRkZWYnKSA6IGdlbmVyYXRvcigpLT5MYW5nKCdhZGRmaWVsZGRlZicpKSk7DQokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsICRtb2QtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdhZG1pbl9lZGl0ZmllbGRkZWYnLCAkcmV0dXJuaWQpKTsNCiRzbWFydHktPmFzc2lnbignZW5kZm9ybScsICRtb2QtPkNyZWF0ZUZvcm1FbmQoKSk7DQoNCiRzbWFydHktPmFzc2lnbignbmFtZXRleHQnLCBnZW5lcmF0b3IoKS0+TGFuZygnZmllbGRkZWZfbmFtZScpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRuYW1lJywgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ25hbWUnLCAkbmFtZSwgMjAsIDI1NSkpOw0KDQokc21hcnR5LT5hc3NpZ24oJ2FsaWFzJywgZ2VuZXJhdG9yKCktPkxhbmcoJ2FsaWFzJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9hbGlhcycsICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdhbGlhcycsICRhbGlhcywgMjAsIDI1NSkpOw0KDQokc21hcnR5LT5hc3NpZ24oJ2hlbHB0ZXh0JywgZ2VuZXJhdG9yKCktPkxhbmcoJ2ZpZWxkZGVmX2hlbHAnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0aGVscCcsICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdoZWxwJywgJGhlbHAsIDEwMCwgMjU1KSk7DQoNCiRzbWFydHktPmFzc2lnbigndHlwZXRleHQnLCBnZW5lcmF0b3IoKS0+TGFuZygnZmllbGRkZWZfdHlwZScpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXR0eXBlJywgJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICd0eXBlJywgYXJyYXlfZmxpcChnZW5lcmF0b3JfdG9vbHM6OmdldF9maWVsZF90eXBlcygkbW9kKSksIC0xLCAkdHlwZSkpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3VzZXJ2aWV3dGV4dCcsIGdlbmVyYXRvcigpLT5MYW5nKCdmaWVsZGRlZl9yZXF1aXJlZCcpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfdXNlcnZpZXcnLCAkbW9kLT5DcmVhdGVJbnB1dGNoZWNrYm94KCRpZCwgJ3JlcXVpcmVkJywgMSwgJHJlcXVpcmVkKSk7DQoNCiRzbWFydHktPmFzc2lnbignZnJvbnRlbmRfdGV4dCcsIGdlbmVyYXRvcigpLT5MYW5nKCdmaWVsZGRlZl9mcm9udGVuZCcpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfZnJvbnRlbmQnLCAkbW9kLT5DcmVhdGVJbnB1dGNoZWNrYm94KCRpZCwgJ2Zyb250ZW5kJywgMSwgJGZyb250ZW5kKSk7DQoNCiRzbWFydHktPmFzc2lnbignZWRpdHZpZXdfdGV4dCcsIGdlbmVyYXRvcigpLT5MYW5nKCdmaWVsZGRlZl9lZGl0dmlldycpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfZWRpdHZpZXcnLCAkbW9kLT5DcmVhdGVJbnB1dGNoZWNrYm94KCRpZCwgJ2VkaXR2aWV3JywgMSwgJGVkaXR2aWV3KSk7DQoNCiRzbWFydHktPmFzc2lnbignZmlsdGVyX2Zyb250ZW5kX3RleHQnLCBnZW5lcmF0b3IoKS0+TGFuZygnZmllbGRkZWZfZmlsdGVyX2Zyb250ZW5kJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9maWx0ZXJfZnJvbnRlbmQnLCAkbW9kLT5DcmVhdGVJbnB1dGNoZWNrYm94KCRpZCwgJ2ZpbHRlcl9mcm9udGVuZCcsIDEsICRmaWx0ZXJfZnJvbnRlbmQpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdmaWx0ZXJfYWRtaW5fdGV4dCcsIGdlbmVyYXRvcigpLT5MYW5nKCdmaWVsZGRlZl9maWx0ZXJfYWRtaW4nKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2ZpbHRlcl9hZG1pbicsICRtb2QtPkNyZWF0ZUlucHV0Y2hlY2tib3goJGlkLCAnZmlsdGVyX2FkbWluJywgMSwgJGZpbHRlcl9hZG1pbikpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3NlYXJjaGFibGVfdGV4dCcsIGdlbmVyYXRvcigpLT5MYW5nKCdmaWVsZGRlZl9zZWFyY2hhYmxlJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zZWFyY2hhYmxlJywgJG1vZC0+Q3JlYXRlSW5wdXRjaGVja2JveCgkaWQsICdzZWFyY2hhYmxlJywgMSwgJHNlYXJjaGFibGUpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdleHRyYScsIGdlbmVyYXRvcigpLT5MYW5nKCdleHRyYScpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfZXh0cmEnLCAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZXh0cmEnLCAkZXh0cmEsIDEwMCwgMjU1KSk7DQoNCiRzbWFydHktPmFzc2lnbignaW5wdXRfc2VjdGlvbicsICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnc2VjdGlvbicsIGFycmF5X2ZsaXAoZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfZmllbGRfc2VjdGlvbnMoJG1vZCkpLCAtMSwgJHNlY3Rpb24pKTsNCg0KaWYgKGlzc2V0KCRmaWVsZGRlZl9pZCkpIHsNCiAgICAkc21hcnR5LT5hc3NpZ24oJ2ZpZWxkZGVmX2lkJywgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmllbGRkZWZfaWQnLCAkZmllbGRkZWZfaWQpKTsNCn0NCg0KJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLCBsYW5nKCdzdWJtaXQnKSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdhcHBseScsICRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2FwcGx5JywgbGFuZygnYXBwbHknKSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdjYW5jZWwnLCBsYW5nKCdjYW5jZWwnKSkpOw0KDQplY2hvICRtb2QtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdGZpZWxkZGVmLnRwbCcpOw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/action.admin_edititem.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYgKCEkbW9kLT5DaGVja1Blcm1pc3Npb24oJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9pdGVtJykpDQogICAgcmV0dXJuOw0KDQoNCmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpIHsNCiAgICAkcGFyYW1zID0gYXJyYXkoJ2FjdGl2ZV90YWInID0+ICdpdGVtdGFiJyk7DQogICAgJG1vZC0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zKTsNCn0NCg0KJHNtYXJ0eSA9IGNtc21zKCktPkdldFNtYXJ0eSgpOw0KJGRiID0gY21zbXMoKS0+R2V0RGIoKTsNCiRlcnJvcnMgPSBhcnJheSgpOw0KJGl0ZW1faWQgPSBudWxsOw0KJHRpdGxlID0gJyc7DQokYWxpYXMgPSAnJzsNCiR1cmwgPSAnJzsNCiRhY3RpdmUgPSAxOw0KJHVzZWRjYXRlZ29yeSA9ICcnOw0KJGRhdGUgPSB0aW1lKCk7DQokZGF0ZV9lbmQgPSBudWxsOw0KJHJlY3VyX3dlZWtkYXlzID0gYXJyYXkoKTsNCiRyZWN1cl9wZXJpb2QgPSBudWxsOw0KJHJlY3Vyc2l2ZSA9ICcnOw0KDQoNCi8vIGlmICRwYXJhbXNbJ2l0ZW1faWQnXSBpcyBzdXBwbGllZCBhbmQgZXhpc3RzLCBwb3B1bGF0ZSB3aXRoIHZhbHVlcyBmcm9tIGRhdGFiYXNlDQppZiAoaXNzZXQoJHBhcmFtc1snaXRlbV9pZCddKSkgew0KICAgICRpdGVtX2lkID0gKGludCkgJHBhcmFtc1snaXRlbV9pZCddOw0KICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaXRlbSBXSEVSRSBpdGVtX2lkID0gPyc7DQogICAgJHJlc3VsdCA9ICYgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGl0ZW1faWQpKTsNCiAgICBpZiAoISRyZXN1bHQpDQogICAgICAgIGRpZSgnRkFUQUwgU1FMIEVSUk9SOiAnIC4gJGRiLT5FcnJvck1zZygpIC4gJzxici8+UVVFUlk6ICcgLiAkZGItPnNxbCk7DQoNCiAgICBpZiAoJHJlc3VsdC0+UmVjb3JkQ291bnQoKSA9PSAwKSB7DQogICAgICAgICRlcnJvcnNbXSA9IGdlbmVyYXRvcigpLT5MYW5nKCdub3N1Y2hpZCcsIGFycmF5KCRpdGVtX2lkKSk7DQogICAgICAgICRpdGVtX2lkID0gbnVsbDsNCiAgICB9IGVsc2Ugew0KICAgICAgICAkcm93ID0gJHJlc3VsdC0+RmV0Y2hSb3coKTsNCiAgICAgICAgJHRpdGxlID0gJHJvd1sndGl0bGUnXTsNCiAgICAgICAgJGFsaWFzID0gJHJvd1snYWxpYXMnXTsNCiAgICAgICAgJGRhdGUgPSAkZGItPlVuaXhUaW1lU3RhbXAoJHJvd1snaXRlbV9kYXRlJ10pOw0KICAgICAgICAkZGF0ZV9lbmQgPSAkZGItPlVuaXhUaW1lU3RhbXAoJHJvd1snaXRlbV9kYXRlX2VuZCddKTsNCiAgICAgICAgJHVybCA9ICRyb3dbJ3VybCddOw0KICAgICAgICAkcmVjdXJzaXZlID0gJHJvd1sncmVjdXJzaXZlJ107DQogICAgICAgICRhY3RpdmUgPSAkcm93WydhY3RpdmUnXTsNCiAgICAgICAgJHVzZWRjYXRlZ29yeSA9ICRyb3dbJ2NhdGVnb3J5X2lkJ107DQoNCiAgICAgICAgLy9leHRyYSBvcHRpb25zIGxvYWQNCiAgICAgICAgJHJlY3VyX3dlZWtkYXlzID0gJHJlY3Vyc2l2ZV9vcHRpb24gPSAkZGItPkdldENvbCgnU0VMRUNUIHZhbHVlIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtX2V4dHJhIFdIRVJFIGl0ZW1faWQgPSA/JywgYXJyYXkoJGl0ZW1faWQpKTsNCiAgICB9DQp9DQoNCi8vIGdldCBjYXRlZ29yeSBsaXN0DQokd2hlcmUgPSBhcnJheSgpOw0KJHBhcmFtc2FycmF5ID0gYXJyYXkoKTsNCiRjYXRlZ29yeWxvbmduYW1lbGlzdCA9IGdlbmVyYXRvcl90b29sczo6Z2V0X3ByaXZhdGVfY2F0ZWdvcmllcygkbW9kKTsNCmlmIChlbXB0eSgkY2F0ZWdvcnlsb25nbmFtZWxpc3QpID09IGZhbHNlKSB7DQoNCiAgICAkd2hlcmVzdGF0ZW1lbnQgPSBhcnJheSgpOw0KICAgIGZvcmVhY2ggKCRjYXRlZ29yeWxvbmduYW1lbGlzdCBhcyAkbG9ubmFtZSkgew0KICAgICAgICAkd2hlcmVzdGF0ZW1lbnRbXSA9ICdsb25nX25hbWUgTElLRSAgPyc7DQogICAgICAgICRwYXJhbXNhcnJheVtdID0gJGxvbm5hbWUgLiAnJSc7DQogICAgfQ0KICAgICR3aGVyZVtdID0gJygnIC4gaW1wbG9kZSgnIE9SICcsICR3aGVyZXN0YXRlbWVudCkgLiAnKSc7DQp9DQokY2F0ZWdvcnlsaXN0ID0gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfY2F0ZWdvcnlfbGlzdCgkbW9kLCAkd2hlcmUsICRwYXJhbXNhcnJheSwgZmFsc2UpOw0KJGNhdGVnb3J5bGlzdCA9IGFycmF5X3NsaWNlKCRjYXRlZ29yeWxpc3QsIDEpOw0KJGNhdGVnb3J5bGlzdCA9IGV4dGVuZGVkX3Rvb2xzX29wdHM6OnRvX2hhc2goJGNhdGVnb3J5bGlzdCwgJ2NhdGVnb3J5X25hbWUnLCAnY2F0ZWdvcnlfaWQnKTsNCg0KLy8gZ2V0IHRoZSBjdXN0b20gZmllbGRzDQokZmlsdGVycyA9IG5ldyBnZW5lcmF0b3JfZmlsdGVycygkaWQsICRtb2QsICdhZG1pbicpOw0KJGN1c3RvbV9mbGRzID0gJGZpbHRlcnMtPnByb2Nlc3NfY3VzdG9tX2ZpZWxkcygpOw0KDQovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8NCi8vIGhhbmRsZSBzdWJtaXQgb3IgYXBwbHkNCmlmIChpc3NldCgkcGFyYW1zWydwcmV2aWV3J10pKSB7DQogICAgLy8gc2F2ZSBkYXRhIGZvciBwcmV2aWV3Lg0KICAgIHVuc2V0KCRwYXJhbXNbJ2FwcGx5J10pOw0KICAgIHVuc2V0KCRwYXJhbXNbJ3ByZXZpZXcnXSk7DQogICAgdW5zZXQoJHBhcmFtc1snc3VibWl0J10pOw0KICAgIHVuc2V0KCRwYXJhbXNbJ2NhbmNlbCddKTsNCiAgICB1bnNldCgkcGFyYW1zWydhamF4J10pOw0KICAgIHVuc2V0KCRwYXJhbXNbJ2NvcHknXSk7DQoNCiAgICAkdG1wZm5hbWUgPSB0ZW1wbmFtKFRNUF9DQUNIRV9MT0NBVElPTiwgJHRoaXMtPkdldE5hbWUoKSAuICdfcHJldmlldycpOw0KICAgIGZpbGVfcHV0X2NvbnRlbnRzKCR0bXBmbmFtZSwgc2VyaWFsaXplKCRwYXJhbXMpKTsNCg0KICAgICRkZXRhaWxfcmV0dXJuaWQgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaXRlbV9kZXRhaWxfcmV0dXJuaWQnLCAtMSk7DQogICAgaWYgKCRkZXRhaWxfcmV0dXJuaWQgPD0gMCkgew0KICAgICAgICAvLyBub3cgZ2V0IHRoZSBkZWZhdWx0IGNvbnRlbnQgaWQuDQogICAgICAgICRkZXRhaWxfcmV0dXJuaWQgPSBDb250ZW50T3BlcmF0aW9uczo6Z2V0X2luc3RhbmNlKCktPkdldERlZmF1bHRDb250ZW50KCk7DQogICAgfQ0KICAgIGlmIChpc3NldCgkcGFyYW1zWydwcmV2aWV3cGFnZSddKSAmJiAoaW50KSAkcGFyYW1zWydwcmV2aWV3cGFnZSddID4gMCkgew0KICAgICAgICAkZGV0YWlsX3JldHVybmlkID0gKGludCkgJHBhcmFtc1sncHJldmlld3BhZ2UnXTsNCiAgICB9DQoNCiAgICAkX1NFU1NJT05bJ2l0ZW1fcHJldmlldyddID0gYXJyYXkoJ2ZuYW1lJyA9PiBiYXNlbmFtZSgkdG1wZm5hbWUpLCAnY2hlY2tzdW0nID0+IG1kNV9maWxlKCR0bXBmbmFtZSkpOw0KICAgICR0cGFybXMgPSBhcnJheSgncHJldmlldycgPT4gbWQ1KHNlcmlhbGl6ZSgkX1NFU1NJT05bJ2l0ZW1fcHJldmlldyddKSkpOw0KICAgIGlmIChpc3NldCgkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddKSkgew0KICAgICAgICAkdHBhcm1zWydkZXRhaWx0ZW1wbGF0ZSddID0gdHJpbSgkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddKTsNCiAgICB9DQogICAgJHVybCA9ICR0aGlzLT5jcmVhdGVfdXJsKCdfcHJldmlld18nLCAnZGV0YWlsJywgJGRldGFpbF9yZXR1cm5pZCwgJHRwYXJtcywgVFJVRSk7DQoNCiAgICAkcmVzcG9uc2UgPSAnPD94bWwgdmVyc2lvbj0iMS4wIj8+JzsNCiAgICAkcmVzcG9uc2UgLj0gJzxFZGl0QXJ0aWNsZT4nOw0KICAgIGlmIChpc3NldCgkZXJyb3IpICYmICRlcnJvciAhPSAnJykgew0KICAgICAgICAkcmVzcG9uc2UgLj0gJzxSZXNwb25zZT5FcnJvcjwvUmVzcG9uc2U+JzsNCiAgICAgICAgJHJlc3BvbnNlIC49ICc8RGV0YWlscz48IVtDREFUQVsnIC4gJGVycm9yIC4gJ11dPjwvRGV0YWlscz4nOw0KICAgIH0gZWxzZSB7DQogICAgICAgICRyZXNwb25zZSAuPSAnPFJlc3BvbnNlPlN1Y2Nlc3M8L1Jlc3BvbnNlPic7DQogICAgICAgICRyZXNwb25zZSAuPSAnPERldGFpbHM+PCFbQ0RBVEFbJyAuICR1cmwgLiAnXV0+PC9EZXRhaWxzPic7DQogICAgfQ0KICAgICRyZXNwb25zZSAuPSAnPC9FZGl0QXJ0aWNsZT4nOw0KDQogICAgJGhhbmRsZXJzID0gb2JfbGlzdF9oYW5kbGVycygpOw0KICAgIGZvciAoJGNudCA9IDA7ICRjbnQgPCBzaXplb2YoJGhhbmRsZXJzKTsgJGNudCsrKSB7DQogICAgICAgIG9iX2VuZF9jbGVhbigpOw0KICAgIH0NCiAgICBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogdGV4dC94bWwnKTsNCiAgICBlY2hvICRyZXNwb25zZTsNCiAgICBleGl0Ow0KfSBlbHNlIGlmIChpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgfHwgaXNzZXQoJHBhcmFtc1snYXBwbHknXSkgfHwgaXNzZXQoJHBhcmFtc1snY29weSddKSkgew0KDQogICAgaWYgKGlzc2V0KCRwYXJhbXNbImNvcHkiXSkpIHsNCiAgICAgICAgJGl0ZW1faWQgPSBudWxsOw0KICAgIH0NCg0KICAgICR0aXRsZSA9ICRwYXJhbXNbJ3RpdGxlJ107DQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2RhdGVfTW9udGgnXSkpIHsNCiAgICAgICAgJGRhdGUgPSBta3RpbWUoJHBhcmFtc1snZGF0ZV9Ib3VyJ10sICRwYXJhbXNbJ2RhdGVfTWludXRlJ10sICRwYXJhbXNbJ2RhdGVfU2Vjb25kJ10sICRwYXJhbXNbJ2RhdGVfTW9udGgnXSwgJHBhcmFtc1snZGF0ZV9EYXknXSwgJHBhcmFtc1snZGF0ZV9ZZWFyJ10pOw0KICAgIH0NCiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZGF0ZV9lbmRfTW9udGgnXSkpIHsNCiAgICAgICAgJGRhdGVfZW5kID0gbWt0aW1lKCRwYXJhbXNbJ2RhdGVfZW5kX0hvdXInXSwgJHBhcmFtc1snZGF0ZV9lbmRfTWludXRlJ10sICRwYXJhbXNbJ2RhdGVfZW5kX1NlY29uZCddLCAkcGFyYW1zWydkYXRlX2VuZF9Nb250aCddLCAkcGFyYW1zWydkYXRlX2VuZF9EYXknXSwgJHBhcmFtc1snZGF0ZV9lbmRfWWVhciddKTsNCiAgICB9DQoNCg0KICAgIGlmIChpc1NldCgkcGFyYW1zWyJyZWN1cl9wZXJpb2QiXSkpIHsNCiAgICAgICAgJHJlY3Vyc2l2ZSA9ICRwYXJhbXNbInJlY3VyX3BlcmlvZCJdOw0KICAgIH0NCg0KDQogICAgLyogYWxpYXMgY3JlYXRlICovDQogICAgaWYgKCEkaXRlbV9pZCB8fCAoJGl0ZW1faWQgJiYgIWlzc2V0KCRwYXJhbXNbImFsaWFzIl0pKSkNCiAgICAgICAgJGFsaWFzID0gbXVuZ2Vfc3RyaW5nX3RvX3VybCgkcGFyYW1zWyd0aXRsZSddLCB0cnVlKTsNCiAgICBlbHNlaWYgKCFpc1NldCgkcGFyYW1zWyJhbGlhcyJdKSAmJiAkaXRlbV9pZCkNCiAgICAgICAgJGFsaWFzID0gbXVuZ2Vfc3RyaW5nX3RvX3VybCgkcGFyYW1zWyd0aXRsZSddLCB0cnVlKTsNCiAgICBlbHNlaWYgKGlzU2V0KCRwYXJhbXNbImFsaWFzIl0pKQ0KICAgICAgICAkYWxpYXMgPSBtdW5nZV9zdHJpbmdfdG9fdXJsKCRwYXJhbXNbJ2FsaWFzJ10sIHRydWUpOw0KICAgIGVsc2UNCiAgICAgICAgJGFsaWFzID0gbXVuZ2Vfc3RyaW5nX3RvX3VybCgkcGFyYW1zWyd0aXRsZSddLCB0cnVlKTsNCg0KICAgIGlmIChpc1NldCgkcGFyYW1zWyJ1cmwiXSkpDQogICAgICAgICR1cmwgPSAkcGFyYW1zWyJ1cmwiXTsNCg0KDQogICAgJGFjdGl2ZSA9IChpc3NldCgkcGFyYW1zWydhY3RpdmUnXSkgPyAxIDogMCk7DQogICAgJHVzZWRjYXRlZ29yeSA9IChpc1NldCgkcGFyYW1zWydjYXRlZ29yeSddKSA/ICRwYXJhbXNbJ2NhdGVnb3J5J10gOiAnJyk7DQoNCiAgICAvLyBjaGVjayB0aXRsZQ0KICAgIGlmICgkdGl0bGUgPT0gJycgJiYgJG1vZC0+R2V0UHJlZmVyZW5jZSgnaXRlbV90aXRsZV9lZGl0JykpIHsNCiAgICAgICAgJGVycm9yc1tdID0gZ2VuZXJhdG9yKCktPkxhbmcoJ2l0ZW1fdGl0bGVfZW1wdHknKTsNCg0KICAgICAgICAvLyBjaGVjayBjdXN0b20gZmllbGRzLi4uIHRoZXNlIGxvb2sgbGlrZSBtMV9jdXN0b21maWVsZFs1XQ0KICAgIH0gZWxzZWlmIChpc3NldCgkcGFyYW1zWydjdXN0b21maWVsZCddKSkgew0KICAgICAgICBmb3JlYWNoICgkcGFyYW1zWydjdXN0b21maWVsZCddIGFzICRmbGRpZCA9PiAkdmFsdWUpIHsNCg0KICAgICAgICAgICAgaWYgKCR2YWx1ZSA9PSAnc2VsZWN0X2RlZmF1bHQnKSB7DQogICAgICAgICAgICAgICAgJHBhcmFtc1snY3VzdG9tZmllbGQnXVskZmxkaWRdID0gJyc7DQogICAgICAgICAgICAgICAgJHZhbHVlID0gJyc7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIHJlcXVpcmVkIGZpZWxkcw0KICAgICAgICAgICAgaWYgKCR2YWx1ZSA9PSAnJyAmJiAkY3VzdG9tX2ZsZHNbJGZsZGlkXVsncmVxdWlyZWQnXSAmJiAoJGN1c3RvbV9mbGRzWyRmbGRpZF1bJ2VkaXR2aWV3J10gJiYgaXNTZXQoJHBhcmFtc1siaXRlbV9pZCJdKSkpIHsNCiAgICAgICAgICAgICAgICAkZXJyb3JzW10gPSBnZW5lcmF0b3IoKS0+TGFuZygncmVxdWlyZWRfZmllbGRfZW1wdHknKSAuICcgKCcgLiAkY3VzdG9tX2ZsZHNbJGZsZGlkXVsnbmFtZSddIC4gJyknOw0KICAgICAgICAgICAgICAgIGJyZWFrOyAvLyBvbmx5IGRpc3BsYXkgb25lIGVycm9yIG1lc3NhZ2UgYXQgYSB0aW1lDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIG1heCBsZW5ndGgNCiAgICAgICAgICAgIGlmIChpc3NldCgkY3VzdG9tX2ZsZHNbJGZsZGlkXVsnbWF4X2xlbmd0aCddKSAmJiBtYl9zdHJsZW4oJHZhbHVlKSA+ICRjdXN0b21fZmxkc1skZmxkaWRdWydtYXhfbGVuZ3RoJ10pIHsNCiAgICAgICAgICAgICAgICAkZXJyb3JzW10gPSBnZW5lcmF0b3IoKS0+TGFuZygndG9vX2xvbmcnKSAuICcgKCcgLiAkY3VzdG9tX2ZsZHNbJGZsZGlkXVsnbmFtZSddIC4gJyknOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAvLyBvcHRpb25zDQogICAgICAgICAgICBpZiAoJHZhbHVlICE9ICcnICYmIGlzc2V0KCRjdXN0b21fZmxkc1skZmxkaWRdWydvcHRpb25zJ10pICYmICFhcnJheV9rZXlfZXhpc3RzKCR2YWx1ZSwgJGN1c3RvbV9mbGRzWyRmbGRpZF1bJ29wdGlvbnMnXSkpIHsNCiAgICAgICAgICAgICAgICAkZXJyb3JzW10gPSBnZW5lcmF0b3IoKS0+TGFuZygnaW52YWxpZCcpIC4gJyAoJyAuICRjdXN0b21fZmxkc1skZmxkaWRdWyduYW1lJ10gLiAnKSc7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQoNCiAgICBpZiAoZW1wdHkoJGVycm9ycykgJiYgJHVybCAhPSAnJykgew0KICAgICAgICAvLyBjaGVjayBmb3Igc3RhcnRpbmcgb3IgZW5kaW5nIHNsYXNoZXMNCiAgICAgICAgaWYgKHN0YXJ0c3dpdGgoJHVybCwgJy8nKSB8fCBlbmRzd2l0aCgkdXJsLCAnLycpKSB7DQogICAgICAgICAgICAkZXJyb3JzW10gPSBnZW5lcmF0b3IoKS0+TGFuZygnZXJyb3JfaW52YWxpZHVybCcpOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYgKGVtcHR5KCRlcnJvcnMpKSB7DQogICAgICAgICAgICAvLyBjaGVjayBmb3IgaW52YWxpZCBjaGFycy4NCiAgICAgICAgICAgICR0cmFuc2xhdGVkID0gbXVuZ2Vfc3RyaW5nX3RvX3VybCgkdXJsLCBmYWxzZSwgdHJ1ZSk7DQogICAgICAgICAgICBpZiAoc3RydG9sb3dlcigkdHJhbnNsYXRlZCkgIT0gc3RydG9sb3dlcigkdXJsKSkgew0KICAgICAgICAgICAgICAgICRlcnJvcnNbXSA9IGdlbmVyYXRvcigpLT5MYW5nKCdlcnJvcl9pbnZhbGlkdXJsJyk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVtcHR5KCRlcnJvcnMpKSB7DQogICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhpcyB1cmwgaXNuJ3QgdGFrZW4uDQogICAgICAgICAgICAkdXJsID0gdHJpbSgkdXJsLCAiIC9cdFxyXG5cMFx4MDgiKTsNCiAgICAgICAgICAgIGNtc19yb3V0ZV9tYW5hZ2VyOjpsb2FkX3JvdXRlcygpOw0KICAgICAgICAgICAgJHJvdXRlID0gY21zX3JvdXRlX21hbmFnZXI6OmZpbmRfbWF0Y2goJHVybCk7DQogICAgICAgICAgICBpZiAoJHJvdXRlKSB7DQogICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRpdGVtX2lkKSkgew0KICAgICAgICAgICAgICAgICAgICAkZGZsdHMgPSAkcm91dGUtPmdldF9kZWZhdWx0cygpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoJHJvdXRlLT5pc19jb250ZW50KCkgfHwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcm91dGUtPmdldF9kZXN0KCkgIT0gJG1vZC0+R2V0TmFtZSgpIHx8DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIWlzc2V0KCRkZmx0c1snaXRlbV9pZCddKSB8fA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkZmx0c1snaXRlbV9pZCddICE9ICRpdGVtX2lkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSdyZSBhZGRpbmcgYW4gYXJ0aWNsZSwgbm90IGVkaXRpbmcuLi4gYW55IG1hdGNoaW5nIHJvdXRlIGlzIGJhZC4NCiAgICAgICAgICAgICAgICAgICAgICAgICRlcnJvcnNbXSA9IGdlbmVyYXRvcigpLT5MYW5nKCdlcnJvcl9pbnZhbGlkdXJsJyk7DQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAvLyRlcnJvcnNbXSA9IGdlbmVyYXRvcigpLT5MYW5nKCdlcnJvcl9pbnZhbGlkdXJsJyk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQoNCiAgICAvLyB0aXRsZSBhbmQgcmVxdWlyZWQgZmllbGRzIGhhdmUgdmFsdWVzLCBsZXQncyBjb250aW51ZQ0KICAgIGlmIChlbXB0eSgkZXJyb3JzKSkgew0KICAgICAgICAvLyBrIG9yIHVwZGF0ZSB0YWJsZSBpdGVtcw0KICAgICAgICBpZiAoIWlzc2V0KCRpdGVtX2lkKSkgew0KICAgICAgICAgICAgLy8gZmluZCBwb3NpdGlvbiBiZWZvcmUgaW5zZXJ0aW5nIG5ldyBpdGVtDQogICAgICAgICAgICAkcG9zaXRpb24gPSAkZGItPkdldE9uZSgnU0VMRUNUIG1heChwb3NpdGlvbikgKyAxIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtJyk7DQoNCiAgICAgICAgICAgIGlmICgkcG9zaXRpb24gPT0gbnVsbCkgew0KICAgICAgICAgICAgICAgICRwb3NpdGlvbiA9IDE7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIGluc2VydCBpdGVtDQogICAgICAgICAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtICh0aXRsZSwgYWxpYXMsIHVybCwgcmVjdXJzaXZlLCBjYXRlZ29yeV9pZCwgcG9zaXRpb24sIGFjdGl2ZSwgaXRlbV9kYXRlLCBpdGVtX2RhdGVfZW5kLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSApIFZBTFVFUyAoPywgPywgPywgPywgPywgPywgPyAsID8sID8sICBOT1coKSwgTk9XKCkpJzsNCiAgICAgICAgICAgICRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkdGl0bGUsICRhbGlhcywgJHVybCwgJHJlY3Vyc2l2ZSwgJHVzZWRjYXRlZ29yeSwgJHBvc2l0aW9uLCAkYWN0aXZlLCB0cmltKCRkYi0+REJUaW1lU3RhbXAoJGRhdGUpLCAiJyIpLCB0cmltKCRkYi0+REJUaW1lU3RhbXAoJGRhdGVfZW5kKSwgIiciKSkpOw0KICAgICAgICAgICAgaWYgKCEkcmVzdWx0KQ0KICAgICAgICAgICAgICAgIGRpZSgnRkFUQUwgU1FMIEVSUk9SOiAnIC4gJGRiLT5FcnJvck1zZygpIC4gJzxici8+UVVFUlk6ICcgLiAkZGItPnNxbCk7DQoNCiAgICAgICAgICAgIC8vIHBvcHVsYXRlICRpdGVtX2lkIGZvciBuZXdseSBpbnNlcnRlZCBpdGVtDQogICAgICAgICAgICAkaXRlbV9pZCA9ICRkYi0+SW5zZXJ0X0lEKCk7DQogICAgICAgICAgICAkdXBkYXRlID0gZmFsc2U7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAvLyB1cGRhdGUgaXRlbQ0KICAgICAgICAgICAgJHF1ZXJ5ID0gJ1VQREFURSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2l0ZW0gU0VUIHRpdGxlID0gPywgYWxpYXMgPSA/LCB1cmwgPSA/LCByZWN1cnNpdmUgPSA/LCBjYXRlZ29yeV9pZCA9ID8sIGFjdGl2ZSA9ID8sIGl0ZW1fZGF0ZT0gPywgaXRlbV9kYXRlX2VuZD0gPyBXSEVSRSBpdGVtX2lkID0gPyc7DQogICAgICAgICAgICAkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHRpdGxlLCAkYWxpYXMsICR1cmwsICRyZWN1cnNpdmUsICR1c2VkY2F0ZWdvcnksICRhY3RpdmUsIHRyaW0oJGRiLT5EQlRpbWVTdGFtcCgkZGF0ZSksICInIiksIHRyaW0oJGRiLT5EQlRpbWVTdGFtcCgkZGF0ZV9lbmQpLCAiJyIpLCAkaXRlbV9pZCkpOw0KICAgICAgICAgICAgaWYgKCEkcmVzdWx0KQ0KICAgICAgICAgICAgICAgIGRpZSgnRkFUQUwgU1FMIEVSUk9SOiAnIC4gJGRiLT5FcnJvck1zZygpIC4gJzxici8+UVVFUlk6ICcgLiAkZGItPnNxbCk7DQoNCiAgICAgICAgICAgICR1cGRhdGUgPSB0cnVlOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8gY3JlYXRlIHJlY3Vyc2l2ZSBzZXR0aW5ncw0KICAgICAgICBpZiAoJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVjdXJzaXZlJykgJiYgJHJlY3Vyc2l2ZSA9PSAnZGFpbHknKSB7DQogICAgICAgICAgICBpZiAoaXNTZXQoJHBhcmFtc1sicmVjdXJfd2Vla2RheXMiXSkgJiYgaXNfYXJyYXkoJHBhcmFtc1sicmVjdXJfd2Vla2RheXMiXSkpIHsNCiAgICAgICAgICAgICAgICAkcmVjdXJfd2Vla2RheXMgPSAkcGFyYW1zWyJyZWN1cl93ZWVrZGF5cyJdOw0KICAgICAgICAgICAgICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2l0ZW1fZXh0cmEgV0hFUkUgaXRlbV9pZCA9ID8nOw0KICAgICAgICAgICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRpdGVtX2lkKSk7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAoJHJlY3VyX3dlZWtkYXlzIGFzICRkYXkpIHsNCiAgICAgICAgICAgICAgICAgICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaXRlbV9leHRyYSAoaXRlbV9pZCx2YWx1ZSkgVkFMVUVTICg/LD8pJzsNCiAgICAgICAgICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGl0ZW1faWQsICRkYXkpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAvLyBoYW5kbGUgdXBsb2FkaW5nIG9mIGZpbGUgZmllbGRzDQogICAgICAgIGlmIChlbXB0eSgkY3VzdG9tX2ZsZHMpID09IGZhbHNlKSB7DQogICAgICAgICAgICBmb3JlYWNoICgkY3VzdG9tX2ZsZHMgYXMgJGN1c3RvbV9mbGQpIHsNCiAgICAgICAgICAgICAgICBpZiAoJGN1c3RvbV9mbGRbJ3R5cGUnXSAhPSAndXBsb2FkX2ZpbGUnKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KICAgICAgICAgICAgICAgIH0NCg0KDQogICAgICAgICAgICAgICAgJGVsZW0gPSAkaWQgLiAnY3VzdG9tZmllbGRfJyAuICRjdXN0b21fZmxkWydmaWVsZGRlZl9pZCddOw0KICAgICAgICAgICAgICAgIC8vICRlbGVtIGxvb2tzIGxpa2UgbTFfY3VzdG9tZmllbGRfMQ0KICAgICAgICAgICAgICAgIC8vIGNoZWNrIGlmIGZpbGUgd2FzIHVwbG9hZGVkIGZvciB0aGlzIGZpZWxkDQogICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRfRklMRVNbJGVsZW1dKSAmJiAkX0ZJTEVTWyRlbGVtXVsnbmFtZSddICE9ICcnKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRfRklMRVNbJGVsZW1dWydlcnJvciddICE9IDAgfHwgJF9GSUxFU1skZWxlbV1bJ3RtcF9uYW1lJ10gPT0gJycpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRlcnJvcnNbXSA9IGdlbmVyYXRvcigpLT5MYW5nKCdlcnJvcl91cGxvYWQnKTsNCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICR2YWx1ZSA9IGdlbmVyYXRvcl90b29sczo6aGFuZGxlX3VwbG9hZCgkbW9kLCAkaXRlbV9pZCwgJGVsZW0sICRlcnJvciwgJGN1c3RvbV9mbGRbJ2FsbG93J10sICRyb3cpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHZhbHVlID09PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRlcnJvcnNbXSA9ICRlcnJvcjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcG9wdWxhdGUgJHBhcmFtc1snY3VzdG9tZmllbGQnXQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgd291bGQgaG9sZCB0aGUgdXBsb2FkZWQgZmlsZW5hbWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIGluc2VydGVkIGludG8gdGhlIGRhdGFiYXNlIGJlbG93DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhcmFtc1snY3VzdG9tZmllbGQnXVskY3VzdG9tX2ZsZFsnZmllbGRkZWZfaWQnXV0gPSAkdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAvLyBoYW5kbGUgaW5zZXJ0aW5nIGN1c3RvbSBmaWVsZHMgaW50byBkYXRhYmFzZQ0KICAgICAgICBpZiAoaXNzZXQoJHBhcmFtc1snY3VzdG9tZmllbGQnXSkpIHsNCiAgICAgICAgICAgIGZvcmVhY2ggKCRwYXJhbXNbJ2N1c3RvbWZpZWxkJ10gYXMgJGZsZGlkID0+ICR2YWx1ZSkgew0KDQogICAgICAgICAgICAgICAgaWYgKGlzX2FycmF5KCR2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFlbXB0eSgkdmFsdWUpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgJHZhbHVlID0gaW1wbG9kZSgnLCcsICR2YWx1ZSk7DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICR2YWx1ZSA9ICcnOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIC8vIGNoZWNrIGlmIHJvdyBleGlzdHMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdG8gaW5zZXJ0IG9yIHVwZGF0ZQ0KICAgICAgICAgICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgdmFsdWUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkdmFsIFdIRVJFIGl0ZW1faWQgPSA/IEFORCBmaWVsZGRlZl9pZCA9ID8nOw0KICAgICAgICAgICAgICAgICR0bXAgPSAkZGItPkdldE9uZSgkcXVlcnksIGFycmF5KCRpdGVtX2lkLCAkZmxkaWQpKTsNCg0KDQogICAgICAgICAgICAgICAgLy8gcm93IGRvZXMgbm90IGV4aXN0DQogICAgICAgICAgICAgICAgaWYgKCR0bXAgPT0gIiIpIHsNCiAgICAgICAgICAgICAgICAgICAgLy8gb25seSBpbnNlcnQgcm93IGlmIGZpZWxkIHZhbHVlIGlzIG5vdCBlbXB0eQ0KICAgICAgICAgICAgICAgICAgICBpZiAoJHZhbHVlICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZHZhbCAoaXRlbV9pZCwgZmllbGRkZWZfaWQsIHZhbHVlKSBWQUxVRVMgKD8sID8sID8pJzsNCiAgICAgICAgICAgICAgICAgICAgICAgICRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkaXRlbV9pZCwgJGZsZGlkLCAkdmFsdWUpKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIC8vIHJvdyBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIC8vIGRlbGV0ZSByb3cgaWYgZmllbGQgdmFsdWUgaXMgZW1wdHkNCiAgICAgICAgICAgICAgICAgICAgaWYgKCR2YWx1ZSA9PSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGR2YWwgV0hFUkUgaXRlbV9pZCA9ID8gQU5EIGZpZWxkZGVmX2lkID0gPyc7DQogICAgICAgICAgICAgICAgICAgICAgICAkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGl0ZW1faWQsICRmbGRpZCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gdXBkYXRlIHJvdw0KICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgJHF1ZXJ5ID0gJ1VQREFURSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkdmFsIFNFVCB2YWx1ZSA9ID8gV0hFUkUgaXRlbV9pZCA9ID8gQU5EIGZpZWxkZGVmX2lkID0gPyc7DQogICAgICAgICAgICAgICAgICAgICAgICAkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHZhbHVlLCAkaXRlbV9pZCwgJGZsZGlkKSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAoISRyZXN1bHQpDQogICAgICAgICAgICAgICAgICAgIGRpZSgnRkFUQUwgU1FMIEVSUk9SOiAnIC4gJGRiLT5FcnJvck1zZygpIC4gJzxici8+UVVFUlk6ICcgLiAkZGItPnNxbCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgLy8gZGVsZXRlIHZhbHVlIGZyb20gZmlsZSBmaWVsZA0KICAgICAgICBpZiAoaXNzZXQoJHBhcmFtc1snZGVsZXRlX2N1c3RvbWZpZWxkJ10pICYmIGlzX2FycmF5KCRwYXJhbXNbJ2RlbGV0ZV9jdXN0b21maWVsZCddKSkgew0KICAgICAgICAgICAgZm9yZWFjaCAoJHBhcmFtc1snZGVsZXRlX2N1c3RvbWZpZWxkJ10gYXMgJGsgPT4gJHYpIHsNCiAgICAgICAgICAgICAgICBpZiAoJHYgIT0gJ2RlbGV0ZScpDQogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBza2lwIGlmIG5vdCBkZWxldGluZyBhbnl0aGluZw0KDQogICAgICAgICAgICAgICAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGR2YWwgV0hFUkUgaXRlbV9pZCA9ID8gQU5EIGZpZWxkZGVmX2lkID0gPyc7DQogICAgICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGl0ZW1faWQsICRrKSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAvLyBhZGRpdGlvbmFsIGNoZWNrIGlzIG5lZWRlZCBzaW5jZSBmaWxlIHVwbG9hZCBjb3VsZCBoYXZlIHByb2R1Y2VkIGVycm9ycw0KICAgICAgICBpZiAoZW1wdHkoJGVycm9ycykpIHsNCiAgICAgICAgICAgIC8vIHNob3cgc2F2ZWQgbWVzc2FnZQ0KDQogICAgICAgICAgICBpZiAoJHVwZGF0ZSkgew0KICAgICAgICAgICAgICAgIEAkbW9kLT5TZW5kRXZlbnQoJ0l0ZW1FZGl0ZWQnLCBhcnJheSgnaXRlbV9pZCcgPT4gJGl0ZW1faWQsICdjYXRlZ29yeV9pZCcgPT4gJHVzZWRjYXRlZ29yeSwgJ3RpdGxlJyA9PiAkdGl0bGUsICdhY3RpdmUnID0+ICRhY3RpdmUsICdpdGVtX2RhdGUnID0+IHRyaW0oJGRiLT5EQlRpbWVTdGFtcCgkZGF0ZSksICInIiksICdpdGVtX2RhdGVfZW5kJyA9PiB0cmltKCRkYi0+REJUaW1lU3RhbXAoJGRhdGVfZW5kKSksICdyZWN1cnNpdmUnID0+ICRyZWN1cnNpdmUpKTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgQCRtb2QtPlNlbmRFdmVudCgnSXRlbUFkZGVkJywgYXJyYXkoJ2l0ZW1faWQnID0+ICRpdGVtX2lkLCAnY2F0ZWdvcnlfaWQnID0+ICR1c2VkY2F0ZWdvcnksICd0aXRsZScgPT4gJHRpdGxlLCAnYWN0aXZlJyA9PiAkYWN0aXZlLCAnaXRlbV9kYXRlJyA9PiB0cmltKCRkYi0+REJUaW1lU3RhbXAoJGRhdGUpLCAiJyIpLCAnaXRlbV9kYXRlX2VuZCcgPT4gdHJpbSgkZGItPkRCVGltZVN0YW1wKCRkYXRlX2VuZCkpLCAncmVjdXJzaXZlJyA9PiAkcmVjdXJzaXZlKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICghaXNzZXQoJHBhcmFtc1snYXBwbHknXSkpIHsNCiAgICAgICAgICAgICAgICAkbW9kLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGFycmF5KCdhY3RpdmVfdGFiJyA9PiAnaXRlbXRhYicsICdtZXNzYWdlJyA9PiAnY2hhbmdlc3NhdmVkJykpOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICBlY2hvICRtb2QtPlNob3dNZXNzYWdlKGdlbmVyYXRvcigpLT5MYW5nKCdjaGFuZ2Vzc2F2ZWQnKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICRtb2R1bGUgPSBjbXNfdXRpbHM6OmdldF9zZWFyY2hfbW9kdWxlKCk7DQogICAgICAgICAgICBpZiAoaXNfb2JqZWN0KCRtb2R1bGUpKSB7DQogICAgICAgICAgICAgICAgaWYgKCRhY3RpdmUgIT0gMSkgew0KICAgICAgICAgICAgICAgICAgICAkbW9kdWxlLT5EZWxldGVXb3JkcygkbW9kLT5HZXROYW1lKCksICRpdGVtX2lkLCAnaXRlbScpOw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICRtb2R1bGUtPkFkZFdvcmRzKCRtb2QtPkdldE5hbWUoKSwgJGl0ZW1faWQsICdpdGVtJywgZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfc2VhcmNoYWJsZV90ZXh0KCRtb2QsICRpdGVtX2lkKSwgZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfc2VhcmNoYWJsZV9kYXRlX2VuZCgpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9IC8vIGVuZCBzdWJtaXQgb3IgYXBwbHkNCg0KLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQoNCi8vIGRpc3BsYXkgZXJyb3JzIGlmIHRoZXJlIGFyZSBhbnkNCmlmICghZW1wdHkoJGVycm9ycykpIHsNCiAgICBlY2hvICRtb2QtPlNob3dFcnJvcnMoJGVycm9ycyk7DQp9DQoNCi8vIGhpZGRlbiB2YWx1ZSByZXF1aXJlZCB3aGVuIGVkaXRpbmcgYW4gZXhpc3RpbmcgaXRlbQ0KaWYgKGlzc2V0KCRpdGVtX2lkKSkgew0KICAgICRzbWFydHktPmFzc2lnbignaXRlbV9pZCcsICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2l0ZW1faWQnLCAkaXRlbV9pZCkpOw0KfQ0KDQokc21hcnR5LT5hc3NpZ24oJ3RpdGxlJywgKGlzc2V0KCRpdGVtX2lkKSA/IGdlbmVyYXRvcigpLT5MYW5nKCdlZGl0JykgOiBnZW5lcmF0b3IoKS0+TGFuZygnYWRkJykpIC4gJyAnIC4gJG1vZC0+R2V0UHJlZmVyZW5jZSgnaXRlbV9zaW5ndWxhcicsICcnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2Zvcm1pZCcsICRpZCk7DQokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsICRtb2QtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdhZG1pbl9lZGl0aXRlbScsICRyZXR1cm5pZCwgJ3Bvc3QnLCAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKTsNCiRzbWFydHktPmFzc2lnbignZW5kZm9ybScsICRtb2QtPkNyZWF0ZUZvcm1FbmQoKSk7DQoNCiRzbWFydHktPmFzc2lnbigncHJvbXB0X3RpdGxlJywgJG1vZC0+R2V0UHJlZmVyZW5jZSgnaXRlbV90aXRsZScsICcnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3RpdGxlJywgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3RpdGxlJywgJHRpdGxlLCA1MCkpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9hbGlhcycsIGdlbmVyYXRvcigpLT5MYW5nKCdhbGlhcycpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfYWxpYXMnLCAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnYWxpYXMnLCAkYWxpYXMsIDUwKSk7DQoNCiRzbWFydHktPmFzc2lnbigncHJvbXB0X3VybCcsIGdlbmVyYXRvcigpLT5MYW5nKCd1cmwnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3VybCcsICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd1cmwnLCAkdXJsLCA1MCkpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9jYXRlZ29yeScsIGdlbmVyYXRvcigpLT5MYW5nKCdjYXRlZ29yeScpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfY2F0ZWdvcnknLCAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2NhdGVnb3J5JywgJGNhdGVnb3J5bGlzdCwgLTEsICR1c2VkY2F0ZWdvcnkpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfYWN0aXZlJywgZ2VuZXJhdG9yKCktPkxhbmcoJ2FjdGl2ZScpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfYWN0aXZlJywgJG1vZC0+Q3JlYXRlSW5wdXRjaGVja2JveCgkaWQsICdhY3RpdmUnLCAxLCAkYWN0aXZlKSk7DQoNCiRzbWFydHktPmFzc2lnbigncHJvbXB0X2RhdGUnLCBnZW5lcmF0b3IoKS0+TGFuZygnZGF0ZScpKTsNCiRzbWFydHktPmFzc2lnbignZGF0ZScsICRkYXRlKTsNCiRzbWFydHktPmFzc2lnbignZGF0ZXByZWZpeCcsICRpZCAuICdkYXRlXycpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9kYXRlX2VuZCcsIGdlbmVyYXRvcigpLT5MYW5nKCdwcm9tcHRfaXRlbV9kYXRlX2VuZF9lZGl0JykpOw0KJHNtYXJ0eS0+YXNzaWduKCdkYXRlZW5kJywgJGRhdGVfZW5kKTsNCiRzbWFydHktPmFzc2lnbignZGF0ZWVuZHByZWZpeCcsICRpZCAuICdkYXRlX2VuZF8nKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdyZWN1cnNpdmUnLCAkcmVjdXJzaXZlKTsNCiRzbWFydHktPmFzc2lnbigncmVjdXJfb3B0aW9ucycsIGFycmF5KA0KICAgICRtb2QtPkxhbmcoJ25vbmUnKSA9PiAnJywNCiAgICAkbW9kLT5MYW5nKCdkYWlseScpID0+ICdkYWlseScpKTsNCg0KJHdlZWtkYXlzID0gYXJyYXkoJG1vZC0+TGFuZygnc3VuZGF5JykgPT4gJzAnLA0KICAgICRtb2QtPkxhbmcoJ21vbmRheScpID0+ICcxJywNCiAgICAkbW9kLT5MYW5nKCd0dWVzZGF5JykgPT4gJzInLA0KICAgICRtb2QtPkxhbmcoJ3dlZG5lc2RheScpID0+ICczJywNCiAgICAkbW9kLT5MYW5nKCd0aHVyc2RheScpID0+ICc0JywNCiAgICAkbW9kLT5MYW5nKCdmcmlkYXknKSA9PiAnNScsDQogICAgJG1vZC0+TGFuZygnc2F0dXJkYXknKSA9PiAnNicpOw0KDQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3dlZWtkYXlzJywgJG1vZC0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwgJ3JlY3VyX3dlZWtkYXlzW10nLCAkd2Vla2RheXMsIGVtcHR5KCRyZWN1cl93ZWVrZGF5cykgPyBhcnJheSgpIDogJHJlY3VyX3dlZWtkYXlzLCA3KSk7DQoNCg0KDQokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsICRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsIGxhbmcoJ3N1Ym1pdCcpKSk7DQokc21hcnR5LT5hc3NpZ24oJ2FwcGx5JywgJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnYXBwbHknLCBsYW5nKCdhcHBseScpKSk7DQokc21hcnR5LT5hc3NpZ24oJ2NhbmNlbCcsICRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsIGxhbmcoJ2NhbmNlbCcpKSk7DQppZiAoJG1vZC0+R2V0UHJlZmVyZW5jZSgnY29weV9hZG1pbicpKQ0KICAgICRzbWFydHktPmFzc2lnbignY29weScsICRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NvcHknLCBsYW5nKCdjb3B5JyksICcnLCAnJywgJG1vZC0+TGFuZygnYXJleW91c3VyZScpKSk7DQoNCg0KDQokY3VzdG9tX2ZsZHNfb2JqID0gJGZpbHRlcnMtPmdlbmVyYXRlKCRpdGVtX2lkLCAkcGFyYW1zKTsNCg0KaWYgKGlzc2V0KCRjdXN0b21fZmxkc19vYmopICYmIGNvdW50KCRjdXN0b21fZmxkc19vYmopID4gMCkgew0KICAgICRzbWFydHktPmFzc2lnbignY3VzdG9tX2ZpZWxkZGVmJywgJGN1c3RvbV9mbGRzX29iaik7DQp9DQoNCiRzbWFydHktPmFzc2lnbignbW9kJywgJG1vZCk7DQoNCg0KJHNtYXJ0eS0+YXNzaWduKCd0YWJoZWFkZXJfYXJ0aWNsZScsICRtb2QtPlNldFRhYkhlYWRlcignYXJ0aWNsZScsICRtb2QtPkxhbmcoJ2FydGljbGUnKSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdzdGFydF90YWJfaGVhZGVycycsICRtb2QtPlN0YXJ0VGFiSGVhZGVycygpKTsNCiRzbWFydHktPmFzc2lnbignZW5kX3RhYl9oZWFkZXJzJywgJG1vZC0+RW5kVGFiSGVhZGVycygpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdlbmRfdGFiX2NvbnRlbnQnLCAkbW9kLT5FbmRUYWJDb250ZW50KCkpOw0KJHNtYXJ0eS0+YXNzaWduKCdzdGFydF90YWJfY29udGVudCcsICRtb2QtPlN0YXJ0VGFiQ29udGVudCgpKTsNCiRzbWFydHktPmFzc2lnbignc3RhcnRfdGFiX2FydGljbGUnLCAkbW9kLT5TdGFydFRhYignYXJ0aWNsZScsICRwYXJhbXMpKTsNCiRzbWFydHktPmFzc2lnbignZW5kX3RhYl9hcnRpY2xlJywgJG1vZC0+RW5kVGFiKCkpOw0KDQovLyB0YWIgc3R1ZmYuDQppZiAoJG1vZC0+R2V0UHJlZmVyZW5jZSgncHJldmlld19hZG1pbicpKSB7DQogICAgJHNtYXJ0eS0+YXNzaWduKCd0YWJoZWFkZXJfcHJldmlldycsICRtb2QtPlNldFRhYkhlYWRlcigncHJldmlldycsICRtb2QtPkxhbmcoJ3ByZXZpZXcnKSkpOw0KDQogICAgJHNtYXJ0eS0+YXNzaWduKCdzdGFydF90YWJfcHJldmlldycsICRtb2QtPlN0YXJ0VGFiKCdwcmV2aWV3JywgJHBhcmFtcykpOw0KICAgICRzbWFydHktPmFzc2lnbignZW5kX3RhYl9wcmV2aWV3JywgJG1vZC0+RW5kVGFiKCkpOw0KDQogICAgJHNtYXJ0eS0+YXNzaWduKCd3YXJuaW5nX3ByZXZpZXcnLCAkbW9kLT5MYW5nKCd3YXJuaW5nX3ByZXZpZXcnKSk7DQogICAgJGNvbnRlbnRvcHMgPSBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOw0KICAgICRzbWFydHktPmFzc2lnbigncHJldmlld19yZXR1cm5pZCcsICRjb250ZW50b3BzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywgJG1vZC0+R2V0UHJlZmVyZW5jZSgnaXRlbV9kZXRhaWxfcmV0dXJuaWQnLCAtMSksICdwcmV2aWV3X3JldHVybmlkJykpOw0KICAgIHsNCiAgICAgICAgJHRtcCA9ICRtb2QtPkxpc3RUZW1wbGF0ZXMoKTsNCiAgICAgICAgJHRtcDIgPSBhcnJheSgpOw0KICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCBjb3VudCgkdG1wKTsgJGkrKykgew0KICAgICAgICAgICAgaWYgKHN0YXJ0c3dpdGgoJHRtcFskaV0sICdkZXRhaWxfdGVtcGxhdGUnKSkgew0KICAgICAgICAgICAgICAgICR4ID0gc3Vic3RyKCR0bXBbJGldLCAxNSk7DQogICAgICAgICAgICAgICAgJHRtcDJbJHhdID0gJHg7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfZGV0YWlsX3RlbXBsYXRlJywgJG1vZC0+TGFuZygnZGV0YWlsX3RlbXBsYXRlJykpOw0KICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9kZXRhaWxfcGFnZScsICRtb2QtPkxhbmcoJ2RldGFpbF9wYWdlJykpOw0KICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2RldGFpbF90ZW1wbGF0ZXMnLCAkdG1wMik7DQogICAgICAgICRzbWFydHktPmFzc2lnbignY3VyX2RldGFpbF90ZW1wbGF0ZScsICRtb2QtPkdldFByZWZlcmVuY2UoJ2N1cnJlbnRfZGV0YWlsX3RlbXBsYXRlJykpOw0KICAgIH0NCn0NCg0KJGRldGFpbF9yZXR1cm5pZCA9ICRkZWZhdWx0X2RldGFpbHBhZ2UgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaXRlbV9kZXRhaWxfcmV0dXJuaWQnLCAtMSk7DQokZGV0YWlsdGVtcGxhdGUgPSAnJzsNCiR0aGVtZU9iamVjdCA9IGNtc21zKCktPmdldF92YXJpYWJsZSgnYWRtaW50aGVtZScpOw0KaWYgKGVtcHR5KCRyb3dbInVybCJdKSA9PSBmYWxzZSkgew0KICAgICRwcmV0dHl1cmwgPSAkcm93WyJ1cmwiXTsNCn0gZWxzZSB7DQogICAgJHByZXR0eXVybCA9IGdlbmVyYXRvcl90b29sczo6Z2V0X3ByZXR0eV91cmwoJHRoaXMsIGdlbmVyYXRvcl90b29sczo6Z2V0X3ByZWZpeCgkbW9kKSwgJHJvd1snaXRlbV9pZCddLCAkcm93WydhbGlhcyddLCAoJGRlZmF1bHRfZGV0YWlscGFnZSA9PSAtMSAmJiAhaXNTZXQoJHBhcmFtc1siZGV0YWlscGFnZSJdKSA/ICRkZXRhaWxwYWdlIDogKGlzU2V0KCRwYXJhbXNbImRldGFpbHBhZ2UiXSkgPyAkZGV0YWlscGFnZSA6ICcnICkpLCAkZGV0YWlsdGVtcGxhdGUpOw0KfQ0KJHByZXZpZXdfbGluayA9ICRtb2QtPkNyZWF0ZUZyb250ZW5kTGluaygkaWQsICRkZXRhaWxfcmV0dXJuaWQsICdkZXRhaWwnLCAkdGhlbWVPYmplY3QtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3ZpZXcuZ2lmJyksIGFycmF5KCdpdGVtX2lkJyA9PiAkcm93WydpdGVtX2lkJ10sICdkZXRhaWx0ZW1wbGF0ZScgPT4gJGRldGFpbHRlbXBsYXRlKSwgJycsIGZhbHNlLCAkaW5saW5lLCAndGFyZ2V0PSJfYmxhbmsiJywgZmFsc2UsICRwcmV0dHl1cmwpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3ByZXZpZXdfdmlldycsICRwcmV2aWV3X2xpbmspOw0KDQokYWRtaW50aGVtZSA9IGNtc21zKCktPmdldF92YXJpYWJsZSgnYWRtaW50aGVtZScpOw0KDQppZiAoJG1vZC0+R2V0UHJlZmVyZW5jZSgnaGFzX2dhbGxlcnknKSkgew0KICAgICRwID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwgJG1vZC0+X0dldE1vZHVsZUFsaWFzKCksICdpZCcgLiAkaXRlbV9pZCwgJ2dhbGxlcnknKTsNCiAgICBjZ2VfZGlyOjpta2RpcnIoJHApOw0KICAgICRzbWFydHktPmFzc2lnbignZ2FsbGVyeV9wYXRoJywgJHApOw0KICAgICRzbWFydHktPmFzc2lnbigncmVkaXJlY3RfdXJsJywgJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9lZGl0aXRlbScsICRyZXR1cm5pZCwgJycsIGFycmF5KCdjZ19hY3RpdmV0YWInID0+ICdnYWxsZXJ5JywgJ2l0ZW1faWQnID0+ICRpdGVtX2lkKSwgJycsIHRydWUpKTsNCg0KICAgICRpdGVtX2dhbGxlcnkgPSBuZXcgZ2VuZXJhdG9yX2l0ZW1fZ2FsbGVyeSgkbW9kLCAkaXRlbV9pZCk7DQogICAgJGZpbGVzID0gJGl0ZW1fZ2FsbGVyeS0+bG9hZF9maWxlcygpOw0KICAgIGlmIChlbXB0eSgkZmlsZXMpID09IGZhbHNlKSB7DQogICAgICAgIGZvcmVhY2ggKCRmaWxlcyBhcyAka2V5ID0+ICRmaWxlKSB7DQogICAgICAgICAgICAkZmlsZXNbJGtleV1bImltYWdlX2xvY2F0aW9uIl0gPSBnZW5lcmF0b3JfdG9vbHM6OmltYWdlX2xvY2F0aW9uKCRtb2QsICRyb3cpOw0KICAgICAgICAgICAgJGZpbGVzWyRrZXldWyJpbWFnZXBhdGhfbG9jYXRpb24iXSA9IGdlbmVyYXRvcl90b29sczo6aW1hZ2VwYXRoX2xvY2F0aW9uKCRtb2QsICRyb3cpOw0KICAgICAgICAgICAgJGZpbGVzWyRrZXldWyJkZWxldGUiXSA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fZGVsZXRlaW1hZ2UnLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywgZ2VuZXJhdG9yKCktPkxhbmcoJ2RlbGV0ZScpLCAnJywgJycsICdzeXN0ZW1pY29uJyksIGFycmF5KCdpdGVtX2lkJyA9PiAkcm93WydpdGVtX2lkJ10sICdmaWxlbmFtZScgPT4gJHJvd1siZmlsZW5hbWUiXSksIGdlbmVyYXRvcigpLT5MYW5nKCdhcmV5b3VzdXJlJykpOw0KICAgICAgICB9DQogICAgfQ0KICAgICRzbWFydHktPmFzc2lnbignZ2FsbGVyeScsICRmaWxlcyk7DQp9DQoNCmVjaG8gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0aXRlbS50cGwnKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/action.admin_editoption.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYgKCEkbW9kLT5DaGVja1Blcm1pc3Npb24oJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9vcHRpb24nKSkNCiAgICByZXR1cm47DQoNCg0KDQovLyBsYXp5IGxvYWRpbmcNCg0KJGxhenlsb2FkaW5nID0gIDA7DQppZiAoaXNTZXQoJHBhcmFtc1sibGF6eWxvYWRpbmciXSkpIA0KICAgICRsYXp5bG9hZGluZyA9IDE7DQoNCiRsYXp5bG9hZGluZ19vbGQgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdsYXp5bG9hZGluZycpID8gJG1vZC0+R2V0UHJlZmVyZW5jZSgnbGF6eWxvYWRpbmcnKSA6IDA7DQoNCi8vIHNldCAgbGF6eSBsb2FkaW5nLCBjbGVhciBjYWNoZQ0KaWYoJGxhenlsb2FkaW5nX29sZCAhPSAkbGF6eWxvYWRpbmcpIHsNCiAgICAkcXVlcnkgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlcyBTRVQgYWxsb3dfZmVfbGF6eWxvYWQgPSA/IFdIRVJFIG1vZHVsZV9uYW1lID0gPyc7DQogICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGxhenlsb2FkaW5nLCRtb2QtPkdldE5hbWUoKSkpOw0KICAgIGNtc21zKCktPmNsZWFyX2NhY2hlZF9maWxlcygpOw0KfQ0KJG1vZC0+UmVtb3ZlUHJlZmVyZW5jZSgnY3VzdG9tX2ZpZWxkc19kZWZhdWx0Jyk7DQokbW9kLT5TZXRQcmVmZXJlbmNlKCdjdXN0b21fZmllbGRzX2RlZmF1bHQnLGltcGxvZGUoJywnLCAkcGFyYW1zWyJjdXN0b21fZmllbGRzX2RlZmF1bHQiXSkpOw0KDQokcHJlZnMgPSBhcnJheSgpOw0KJHByZWZzW10gPSAiZnJpZW5kbHluYW1lIjsNCiRwcmVmc1tdID0gIml0ZW1fdGl0bGUiOw0KJHByZWZzW10gPSAiaXRlbV9zaW5ndWxhciI7DQokcHJlZnNbXSA9ICJpdGVtX3BsdXJhbCI7DQokcHJlZnNbXSA9ICJ1cmxfcHJlZml4IjsNCiRwcmVmc1tdID0gImRlZmF1bHRfYWN0aW9uX3BhcmFtcyI7DQokcHJlZnNbXSA9ICJkZXRhaWxfYWN0aW9uX3BhcmFtcyI7DQokcHJlZnNbXSA9ICJkZXRhaWxfYWN0aW9uX3BhcmFtcyI7DQokcHJlZnNbXSA9ICJ0aXRsZV9wYXJhbV9mb3JfY2FjaGUiOw0KJHByZWZzW10gPSAiZGlzcGxheV9pbmxpbmUiOw0KJHByZWZzW10gPSAibGF6eWxvYWRpbmciOw0KJHByZWZzW10gPSAidXNlcmdyb3VwX2RlcGVuZGVuY2UiOw0KJHByZWZzW10gPSAiaGFzX2FkbWluIjsNCiRwcmVmc1tdID0gImhhc19nYWxsZXJ5IjsNCiRwcmVmc1tdID0gImdhbGxlcnlfc29ydG9yZGVyIjsNCiRwcmVmc1tdID0gInByZXZpZXdfYWRtaW4iOw0KJHByZWZzW10gPSAiY29weV9hZG1pbiI7DQokcHJlZnNbXSA9ICJpdGVtX3RpdGxlX2VkaXQiOw0KJHByZWZzW10gPSAiaXRlbV9kYXRlX2VkaXQiOw0KJHByZWZzW10gPSAiaXRlbV9kYXRlX2VuZF9lZGl0IjsNCiRwcmVmc1tdID0gIml0ZW1fY2F0ZWdvcnlfZWRpdCI7DQokcHJlZnNbXSA9ICJyZWN1cnNpdmUiOw0KJHByZWZzW10gPSAiZmlsdGVyX2RhdGUiOw0KJHByZWZzW10gPSAiZmlsdGVyX2RhdGUiOw0KJHByZWZzW10gPSAiaXRlbV9hbGlhc19lZGl0IjsNCiRwcmVmc1tdID0gIml0ZW1fdXJsX2VkaXQiOw0KJHByZWZzW10gPSAiaXRlbV9kZXRhaWxfcmV0dXJuaWQiOw0KJHByZWZzW10gPSAiaXRlbV9jYXRlZ29yeV9yZXR1cm5pZCI7DQokcHJlZnNbXSA9ICJzdW1tYXJ5X3BhZ2VsaW1pdCI7DQokcHJlZnNbXSA9ICJtb2RlIjsNCiRwcmVmc1tdID0gInNlYXJjaF9kYXRlX2VuZCI7DQokcHJlZnNbXSA9ICJzZWFyY2hhYmxlIjsNCiRwcmVmc1tdID0gImltYWdlc19zaXplX2FkbWluIjsNCg0KZXh0ZW5kZWRfdG9vbHNfb3B0czo6c2V0X3ByZWZlcmVuY2VzKCRwcmVmcywgJHBhcmFtcywgJG1vZCk7DQoNCg0KJHByZWZzID0gYXJyYXkoKTsNCg0KaWYgKCRwYXJhbXNbJ21vZGUnXSA9PSAnYWR2YW5jZWQnKSB7DQogICAgJHByZWZzW10gPSAic29ydG9yZGVyX2FkdmFuY2VkIjsNCiAgICAkcHJlZnNbXSA9ICJzb3J0YnlfYWR2YW5jZWQiOw0KfQ0KaWYgKCRwYXJhbXNbJ21vZGUnXSA9PSAnc2ltcGxlJykgew0KICAgICRwcmVmc1tdID0gInNvcnRvcmRlcl9zaW1wbGUiOw0KICAgICRwcmVmc1tdID0gInNvcnRieV9zaW1wbGUiOw0KfQ0KDQpleHRlbmRlZF90b29sc19vcHRzOjpzZXRfcHJlZmVyZW5jZXMoJHByZWZzLCAkcGFyYW1zLCAkbW9kKTsNCg0KDQoNCiRtb2QtPlJlZGlyZWN0VG9UYWIoJGlkLCAnb3B0aW9udGFiJyk7DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/action.admin_edittemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghJG1vZC0+Q2hlY2tQZXJtaXNzaW9uKCRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19tb2RpZnlfb3B0aW9uJykpDQoJcmV0dXJuOw0KDQppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKSB7DQoJJHBhcmFtcyA9IGFycmF5KA0KCQknYWN0aXZlX3RhYicgPT4gJ3RlbXBsYXRldGFiJw0KCSk7DQoJJG1vZC0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zKTsNCn0NCg0KJHRwbF9pZCAgICAgICA9IG51bGw7DQokdGVtcGxhdGVuYW1lID0gJyc7DQokdGVtcGxhdGV0ZXh0ID0gJyc7DQokZXJyb3JzICAgICAgID0gYXJyYXkoKTsNCg0KLy8gaWYgJHBhcmFtc1sndHBsX2lkJ10gaXMgc3VwcGxpZWQgYW5kIGV4aXN0cywgcG9wdWxhdGUgd2l0aCB2YWx1ZXMgZnJvbSBkYXRhYmFzZQ0KaWYgKGlzc2V0KCRwYXJhbXNbJ3RwbF9pZCddKSkgew0KCSR0cGxfaWQgPSAoaW50KSAkcGFyYW1zWyd0cGxfaWQnXTsNCgkkcXVlcnkgID0gJ1NFTEVDVCBuYW1lLCBjb250ZW50IEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ190ZW1wbGF0ZSBXSEVSRSB0cGxfaWQgPSA/JzsNCgkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoDQoJCSR0cGxfaWQNCgkpKTsNCgkNCglpZiAoJHJlc3VsdCAmJiAkcm93ID0gJHJlc3VsdC0+RmV0Y2hSb3coKSkgew0KCQkkdGVtcGxhdGVuYW1lID0gJHJvd1snbmFtZSddOw0KCQkkdGVtcGxhdGV0ZXh0ID0gJHJvd1snY29udGVudCddOw0KCX0NCn0NCg0KLy8gaGFuZGxlIHN1Ym1pdCBvciBhcHBseQ0KaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSB8fCBpc3NldCgkcGFyYW1zWydhcHBseSddKSkgew0KCSR0ZW1wbGF0ZW5hbWUgPSAkcGFyYW1zWyd0ZW1wbGF0ZV9uYW1lJ107DQoJJHRlbXBsYXRldGV4dCA9ICRwYXJhbXNbJ3RlbXBsYXRlX3RleHQnXTsNCglpZiAoIWlzc2V0KCR0cGxfaWQpKSB7DQoJCSR0ZW1wbGF0ZXR5cGUgPSAkcGFyYW1zWyd0ZW1wbGF0ZV90eXBlJ107DQoJfQ0KCQ0KCWlmICgkdGVtcGxhdGVuYW1lID09ICcnKSB7DQoJCSRlcnJvcnNbXSA9IGdlbmVyYXRvcigpLT5MYW5nKCd0ZW1wbGF0ZV9uYW1lX2VtcHR5Jyk7DQoJfQ0KCQ0KCWlmIChlbXB0eSgkZXJyb3JzKSkgew0KCQlpZiAoaXNzZXQoJHRwbF9pZCkpIHsNCgkJCSRxdWVyeSAgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfdGVtcGxhdGUgU0VUIG5hbWUgPSA/LCBjb250ZW50PT8gV0hFUkUgdHBsX2lkID0gPyc7DQoJCQkkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoDQoJCQkJJHRlbXBsYXRlbmFtZSwNCgkJCQkkdGVtcGxhdGV0ZXh0LA0KCQkJCSR0cGxfaWQNCgkJCSkpOw0KCQkJaWYgKCEkcmVzdWx0KQ0KCQkJCWRpZSgnRkFUQUwgU1FMIEVSUk9SOiAnIC4gJGRiLT5FcnJvck1zZygpIC4gJzxici8+UVVFUlk6ICcgLiAkZGItPnNxbCk7DQoJCX0gZWxzZSB7DQoJCQkkcXVlcnkgID0gJ0lOU0VSVCBJTlRPICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfdGVtcGxhdGUgKG5hbWUsIGNvbnRlbnQsIHR5cGUpIFZBTFVFUyAoPywgPywgPyknOw0KCQkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KA0KCQkJCSR0ZW1wbGF0ZW5hbWUsDQoJCQkJJHRlbXBsYXRldGV4dCwNCgkJCQkkdGVtcGxhdGV0eXBlDQoJCQkpKTsNCgkJCWlmICghJHJlc3VsdCkNCgkJCQlkaWUoJ0ZBVEFMIFNRTCBFUlJPUjogJyAuICRkYi0+RXJyb3JNc2coKSAuICc8YnIvPlFVRVJZOiAnIC4gJGRiLT5zcWwpOw0KCQkJDQoJCQkvLyBwb3B1bGF0ZSAkdHBsX2lkIGZvciBuZXdseSBpbnNlcnRlZCBpdGVtDQoJCQkkdHBsX2lkID0gJGRiLT5JbnNlcnRfSUQoKTsNCgkJfQ0KCQkNCgkJaWYgKCFpc3NldCgkcGFyYW1zWydhcHBseSddKSkgew0KCQkJJHBhcmFtcyA9IGFycmF5KA0KCQkJCSd0YWJfbWVzc2FnZScgPT4gJ2NoYW5nZXNzYXZlZCcsDQoJCQkJJ2FjdGl2ZV90YWInID0+ICd0ZW1wbGF0ZXRhYicNCgkJCSk7DQoJCQkkbW9kLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQoJCX0gZWxzZSB7DQoJCQllY2hvICRtb2QtPlNob3dNZXNzYWdlKGdlbmVyYXRvcigpLT5MYW5nKCdjaGFuZ2Vzc2F2ZWQnKSk7DQoJCX0NCgl9DQp9DQoNCi8vIGRpc3BsYXkgZXJyb3JzIGlmIHRoZXJlIGFyZSBhbnkNCmlmICghZW1wdHkoJGVycm9ycykpIHsNCgllY2hvICRtb2QtPlNob3dFcnJvcnMoJGVycm9ycyk7DQp9DQoNCmlmIChpc3NldCgkdHBsX2lkKSkgew0KCSRzbWFydHktPmFzc2lnbignaWRmaWVsZCcsICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ3RwbF9pZCcsICR0cGxfaWQpKTsNCn0NCg0KJHNtYXJ0eS0+YXNzaWduKCd0aXRsZScsIChpc3NldCgkdHBsX2lkKSA/IGdlbmVyYXRvcigpLT5MYW5nKCdlZGl0dGVtcGxhdGUnKSA6IHNwcmludGYoZ2VuZXJhdG9yKCktPkxhbmcoJ2FkZHRlbXBsYXRlJyksIHVjZmlyc3QoJHBhcmFtc1sndHlwZSddKSkpKTsNCiRzbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgJG1vZC0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2FkbWluX2VkaXR0ZW1wbGF0ZScsICRyZXR1cm5pZCkpOw0KJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJG1vZC0+Q3JlYXRlRm9ybUVuZCgpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfdGVtcGxhdGUnLCBnZW5lcmF0b3IoKS0+TGFuZygndGVtcGxhdGUnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3RlbXBsYXRlJywgJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRpZCwgJHRlbXBsYXRldGV4dCwgJ3RlbXBsYXRlX3RleHQnKSk7DQoNCiRzbWFydHktPmFzc2lnbigncHJvbXB0X25hbWUnLCBnZW5lcmF0b3IoKS0+TGFuZygndGVtcGxhdGVfbmFtZScpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfbmFtZScsICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICd0ZW1wbGF0ZV9uYW1lJywgJHRlbXBsYXRlbmFtZSwgNDApKTsNCg0KaWYgKCFpc3NldCgkdHBsX2lkKSkgew0KCSRzbWFydHktPmFzc2lnbignaW5wdXRfdHlwZScsICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ3RlbXBsYXRlX3R5cGUnLCAkcGFyYW1zWyd0eXBlJ10pKTsNCn0NCg0KJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLCBsYW5nKCdzdWJtaXQnKSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdhcHBseScsICRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2FwcGx5JywgbGFuZygnYXBwbHknKSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdjYW5jZWwnLCBsYW5nKCdjYW5jZWwnKSkpOw0KDQplY2hvICRtb2QtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdHRlbXBsYXRlLnRwbCcpOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/action.admin_fields.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBVcGxvYWRzIC09IGFsbG93IHVzZXJzIHRvIHVwbG9hZCBzdHVmZiwgYSBwc2V1ZG8gZmlsZSBtYW5hZ2VyIiBtb2R1bGUKIyBBdXRob3I6IFJvYmVydCBDYW1wYmVsbCA8cm9iQHRlY2hjb20uZHluZG5zLm9yZz4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6CS8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKZWNobyAnPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IiBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7IHdpZHRoOiA4MCU7Ij4nIC4KICRtb2QtPkNyZWF0ZUltYWdlTGluaygkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGdlbmVyYXRvcigpLT5MYW5nKCdiYWNrJyksICdpY29ucy9zeXN0ZW0vYmFjay5naWYnLCBhcnJheSgpLCAnJywgJycsIGZhbHNlKSAuICc8L2Rpdj48YnIvPic7CgplY2hvICRtb2QtPlN0YXJ0VGFiSGVhZGVycygpOwppZiAoJG1vZC0+Q2hlY2tQZXJtaXNzaW9uKCRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19tb2RpZnlfb3B0aW9uJykpIHsKICAgIGVjaG8gJG1vZC0+U2V0VGFiSGVhZGVyKCdpdGVtcycsIGdlbmVyYXRvcigpLT5MYW5nKCdpdGVtcycpKTsKICAgIGVjaG8gJG1vZC0+U2V0VGFiSGVhZGVyKCdjYXRlZ29yaWVzJywgZ2VuZXJhdG9yKCktPkxhbmcoJ2NhdGVnb3JpZXMnKSk7Cn0KZWNobyAkbW9kLT5FbmRUYWJIZWFkZXJzKCk7CmVjaG8gJG1vZC0+U3RhcnRUYWJDb250ZW50KCk7CmlmICgkbW9kLT5DaGVja1Blcm1pc3Npb24oJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9vcHRpb24nKSkgewogICAgZWNobyAkbW9kLT5TdGFydFRhYignaXRlbXMnLCAkcGFyYW1zKTsKICAgIGluY2x1ZGUgZGlybmFtZShfX0ZJTEVfXykgLiAnL2Z1bmN0aW9uLmFkbWluX2ZpZWxkZGVmdGFiLnBocCc7CiAgICBlY2hvICRtb2QtPkVuZFRhYigpOwogICAgZWNobyAkbW9kLT5TdGFydFRhYignY2F0ZWdvcmllcycsICRwYXJhbXMpOwogICAgaW5jbHVkZSBkaXJuYW1lKF9fRklMRV9fKSAuICcvZnVuY3Rpb24uYWRtaW5fZmllbGRkZWZ0YWJfY2F0ZWdvcmllcy5waHAnOwogICAgZWNobyAkbW9kLT5FbmRUYWIoKTsKfQplY2hvICRtb2QtPkVuZFRhYkNvbnRlbnQoKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/action.admin_imagesbulkaction.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghaXNzZXQoJGdDbXMpKQogICAgZXhpdDsKCgppZiAoISRtb2QtPkNoZWNrUGVybWlzc2lvbigkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2l0ZW0nKSkKICAgIHJldHVybjsKCiRtb2QtPlNldEN1cnJlbnRUYWIoJ2dhbGxlcnknKTsKCmlmICghaXNTZXQoJHBhcmFtc1siaXRlbV9pZCJdKSkKICAgIHJldHVybjsKCiRpdGVtX2lkID0gJHBhcmFtc1siaXRlbV9pZCJdOwoKJGl0ZW1fZ2FsbGVyeSA9IG5ldyBnZW5lcmF0b3JfaXRlbV9nYWxsZXJ5KCRtb2QsICRpdGVtX2lkKTsKCmlmIChpc3NldCgkcGFyYW1zWydtdWx0aXNlbGVjdCddKSAmJiBpc19hcnJheSgkcGFyYW1zWydtdWx0aXNlbGVjdCddKSAmJiBjb3VudCgkcGFyYW1zWydtdWx0aXNlbGVjdCddKSkgewogICAgZm9yICgkaSA9IDA7ICRpIDwgY291bnQoJHBhcmFtc1snbXVsdGlzZWxlY3QnXSk7ICRpKyspIHsKICAgICAgICAkcGFyYW1zWydtdWx0aXNlbGVjdCddWyRpXSA9IChpbnQpICRwYXJhbXNbJ211bHRpc2VsZWN0J11bJGldOwogICAgfQoKICAgIGZvcmVhY2ggKCRwYXJhbXNbJ211bHRpc2VsZWN0J10gYXMgJGltYWdlX2lkKSB7CiAgICAgICAgJHJlcyA9ICRpdGVtX2dhbGxlcnktPmRlbGV0ZV9pbWFnZSgkaW1hZ2VfaWQpOwogICAgICAgIAogICAgfQp9CiRtb2QtPlNldG1lc3NhZ2UoJG1vZC0+TGFuZygnb3BlcmF0aW9uX2NvbXBsZXRlJykpOwokbW9kLT5SZWRpcmVjdFRvVGFiKCRpZCwgJ2dhbGxlcnknLCBhcnJheSgnaXRlbV9pZCcgPT4gJGl0ZW1faWQpLCAnYWRtaW5fZWRpdGl0ZW0nKTsKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/action.admin_movefielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYgKCEkbW9kLT5DaGVja1Blcm1pc3Npb24oJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9vcHRpb24nKSkNCiAgICByZXR1cm47DQoNCiRkYXRhID0gdHJpbSh0cmltKCRwYXJhbXNbJ3NlcmlhbGRhdGEnXSksICcsJyk7DQokZGF0YSA9IGV4cGxvZGUoJywnLCAkZGF0YSk7DQoNCiRzb3J0aW5nID0gMTsNCmZvciAoJGkgPSAwOyAkaSA8IGNvdW50KCRkYXRhKTsgJGkrKykgew0KICAgICRpdGVtX2lkID0gJGRhdGFbJGldOw0KICAgIGlmICghJGl0ZW1faWQpDQogICAgICAgIGNvbnRpbnVlOw0KICAgICRxdWVyeSA9ICdVUERBVEUgJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZGRlZiBTRVQgcG9zaXRpb24gPSA/IFdIRVJFIGZpZWxkZGVmX2lkID0gPyc7DQogICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHNvcnRpbmcrKywgJGl0ZW1faWQpKTsNCiAgICANCn0NCg0KJG1vZC0+UmVkaXJlY3RUb1RhYigkaWQsICRwYXJhbXNbInNlY3Rpb24iXSwgYXJyYXkoKSwgJ2FkbWluX2ZpZWxkcycpOw0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/action.admin_moveimages.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYgKCEkbW9kLT5DaGVja1Blcm1pc3Npb24oJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9pdGVtJykpDQogICAgcmV0dXJuOw0KDQokZGF0YSA9IHRyaW0odHJpbSgkcGFyYW1zWydzZXJpYWxkYXRhJ10pLCAnLCcpOw0KaWYoJG1vZC0+R2V0UHJlZmVyZW5jZSgnZ2FsbGVyeV9zb3J0b3JkZXInKT09ICdkZXNjJyl7DQokZGF0YSA9IGFycmF5X3JldmVyc2UoZXhwbG9kZSgnLCcsICRkYXRhKSk7DQp9ZWxzZXsNCiRkYXRhID0gKGV4cGxvZGUoJywnLCAkZGF0YSkpOyAgICANCn0NCiRpdGVtcyA9IGFycmF5KCk7DQokc29ydGluZyA9IDA7DQpmb3IgKCRpID0gMDsgJGkgPCBjb3VudCgkZGF0YSk7ICRpKyspIHsNCiAgICAkaW1hZ2VfaWQgPSAkZGF0YVskaV07DQogICAgaWYgKCEkaW1hZ2VfaWQpDQogICAgICAgIGNvbnRpbnVlOw0KDQogICAgJHNvcnRpbmcrKzsNCg0KICAgICRpbWFnZV9pZF9vbGQgPSAkaXRlbXNbJHNvcnRpbmddOw0KDQogICAgaWYgKCRpbWFnZV9pZCA9PSAkaW1hZ2VfaWRfb2xkKQ0KICAgICAgICBjb250aW51ZTsNCg0KICAgICRpdGVtID0gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfaW1hZ2UoJG1vZCwgJGltYWdlX2lkKTsNCiAgICAkaXRlbXNbJGl0ZW1bInBvc2l0aW9uIl1dID0gJGl0ZW1bImltYWdlX2lkIl07DQp9DQoNCmtzb3J0KCRpdGVtcyk7DQokaXRlbXMyID0gYXJyYXkoKTsNCmZvcmVhY2ggKCRpdGVtcyBhcyAka2V5ID0+ICRpdGVtKSB7DQogICAgJGl0ZW1zMltdID0gJGtleTsNCn0NCg0KDQokaW5kZXggPSAwOw0KJG5ld19zb3J0aW5nID0gYXJyYXkoKTsNCmZvcmVhY2ggKCRkYXRhIGFzICRrZXkgPT4gJGQpIHsNCiAgICAkbmV3X3NvcnRpbmdbJGl0ZW1zMlska2V5XV0gPSAkZDsNCn0NCg0KZm9yZWFjaCAoJG5ld19zb3J0aW5nIGFzICRrZXkgPT4gJGltYWdlX2lkKSB7DQogICAgJHF1ZXJ5ID0gJ1VQREFURSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ltYWdlcyBTRVQgcG9zaXRpb24gPSA/IFdIRVJFIGltYWdlX2lkID0gPyc7DQogICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGtleSwgJGltYWdlX2lkKSk7DQp9DQoNCiRtb2QtPlJlZGlyZWN0VG9UYWIoJGlkLCAnZ2FsbGVyeScsIGFycmF5KCdpdGVtX2lkJyA9PiAkcGFyYW1zWyJpdGVtX2lkIl0pLCAnYWRtaW5fZWRpdGl0ZW0nKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/action.admin_moveitem.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYgKCEkbW9kLT5DaGVja1Blcm1pc3Npb24oJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9pdGVtJykpDQogICAgcmV0dXJuOw0KDQokZGF0YSA9IHRyaW0odHJpbSgkcGFyYW1zWydzZXJpYWxkYXRhJ10pLCAnLCcpOw0KaWYgKCRtb2QtPkdldFByZWZlcmVuY2UoJ3NvcnRvcmRlcl9zaW1wbGUnLCAnZGVzYycpID09ICdkZXNjJykgew0KICAgICRkYXRhID0gYXJyYXlfcmV2ZXJzZShleHBsb2RlKCcsJywgJGRhdGEpKTsNCn0gZWxzZSB7DQogICAgJGRhdGEgPSAoZXhwbG9kZSgnLCcsICRkYXRhKSk7DQp9DQoNCg0KDQokaXRlbXMgPSBhcnJheSgpOw0KJHNvcnRpbmcgPSAxOw0KZm9yICgkaSA9IDA7ICRpIDwgY291bnQoJGRhdGEpOyAkaSsrKSB7DQogICAgJGl0ZW1faWQgPSAkZGF0YVskaV07DQogICAgaWYgKCEkaXRlbV9pZCkNCiAgICAgICAgY29udGludWU7DQoNCiAgICAkc29ydGluZysrOw0KDQogICAgJGl0ZW1faWRfb2xkID0gJGl0ZW1zWyRzb3J0aW5nXTsNCg0KICAgIGlmICgkaXRlbV9pZCA9PSAkaXRlbV9pZF9vbGQpDQogICAgICAgIGNvbnRpbnVlOw0KDQogICAgJGl0ZW0gPSBnZW5lcmF0b3JfdG9vbHM6OmdldF9pdGVtKCRtb2QsICRpdGVtX2lkKTsNCiAgICAkaXRlbXNbJGl0ZW1bInBvc2l0aW9uIl1dID0gJGl0ZW1bIml0ZW1faWQiXTsNCn0NCg0Ka3NvcnQoJGl0ZW1zKTsNCiRpdGVtczIgPSBhcnJheSgpOw0KZm9yZWFjaCAoJGl0ZW1zIGFzICRrZXkgPT4gJGl0ZW0pIHsNCiAgICAkaXRlbXMyW10gPSAka2V5Ow0KfQ0KDQoNCiRpbmRleCA9IDA7DQokbmV3X3NvcnRpbmcgPSBhcnJheSgpOw0KZm9yZWFjaCAoJGRhdGEgYXMgJGtleSA9PiAkZCkgew0KICAgICRuZXdfc29ydGluZ1skaXRlbXMyWyRrZXldXSA9ICRkOw0KfQ0KDQpmb3JlYWNoICgkbmV3X3NvcnRpbmcgYXMgJGtleSA9PiAkaXRlbV9pZCkgew0KICAgICRxdWVyeSA9ICdVUERBVEUgJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtIFNFVCBwb3NpdGlvbiA9ID8gV0hFUkUgaXRlbV9pZCA9ID8nOw0KICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRrZXksICRpdGVtX2lkKSk7DQogICAgQCRtb2QtPlNlbmRFdmVudCgnSXRlbUVkaXRlZCcsIGFycmF5KCdpdGVtX2lkJyA9PiAkaXRlbV9pZCkpOw0KfQ0KDQoNCg0KQCRtb2QtPlNlbmRFdmVudCgnSXRlbXNSZW9yZGVyZWQnLCBhcnJheSgpKTsNCiRtb2QtPlJlZGlyZWN0VG9UYWIoJGlkLCAnaXRlbXRhYicpOw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/action.admin_ordercategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBVcGxvYWRzIC09IGFsbG93IHVzZXJzIHRvIHVwbG9hZCBzdHVmZiwgYSBwc2V1ZG8gZmlsZSBtYW5hZ2VyIiBtb2R1bGUKIyBBdXRob3I6IFJvYmVydCBDYW1wYmVsbCA8cm9iQHRlY2hjb20uZHluZG5zLm9yZz4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6CS8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQokbW9kLT5zbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgJG1vZC0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2FkbWluX29yZGVyY2F0ZWdvcnlfZG8nLCAkcmV0dXJuaWQpKTsKJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCAkbW9kLT5DcmVhdGVGb3JtRW5kKCkpOwoKCgokcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV8iIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAiX2NhdGVnb3JpZXMgT1JERVIgQlkgaGllcmFyY2h5X3Bvc2l0aW9uIjsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgoKJHJvd2NsYXNzID0gJ3JvdzEnOwp3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpIHsKICAgICRvbmVyb3cgPSBjZ2VfYXJyYXk6OnRvX29iamVjdCgkcm93KTsKICAgICRlbnRyeWFycmF5W10gPSAkb25lcm93Owp9CiRtb2QtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignaXRlbXMnLCAkZW50cnlhcnJheSk7CiRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpdGVtY291bnQnLCBjb3VudCgkZW50cnlhcnJheSkpOwoKZWNobyAkbW9kLT5Qcm9jZXNzVGVtcGxhdGUoJ29yZGVyY2F0ZWdvcnkudHBsJyk7CiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/action.admin_ordercategory_do.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBVcGxvYWRzIC09IGFsbG93IHVzZXJzIHRvIHVwbG9hZCBzdHVmZiwgYSBwc2V1ZG8gZmlsZSBtYW5hZ2VyIiBtb2R1bGUKIyBBdXRob3I6IFJvYmVydCBDYW1wYmVsbCA8cm9iQHRlY2hjb20uZHluZG5zLm9yZz4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6CS8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYgKCFpc3NldCgkZ0NtcykpCiAgICBleGl0OwppZiAoISRtb2QtPkNoZWNrUGVybWlzc2lvbigkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2NhdGVnb3JpZXMnKSkKICAgIHJldHVybjsKCgoKaWYgKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSB8fCAhaXNTZXQoJF9QT1NUWydkYXRhJ10pKSB7CiAgICAkbW9kLT5SZWRpcmVjdFRvVGFiKCRpZCwgJ2NhdGVnb3J5dGFiJyk7Cn0KCmlmIChpc3NldCgkX1BPU1RbJ2RhdGEnXSkpIHsKCiAgICBmdW5jdGlvbiBvcmRlcmNvbnRlbnRfZ2V0X25vZGVfcmVjKCRzdHIsICRwcmVmaXggPSAnY2F0ZWdvcnlfJykgewogICAgICAgICRnQ21zID0gY21zbXMoKTsKICAgICAgICAkdHJlZSA9ICRnQ21zLT5HZXRIaWVyYXJjaHlNYW5hZ2VyKCk7CgogICAgICAgIGlmICghaXNfbnVtZXJpYygkc3RyKSAmJiBzdGFydHN3aXRoKCRzdHIsICRwcmVmaXgpKSB7CiAgICAgICAgICAgICRzdHIgPSBzdWJzdHIoJHN0ciwgc3RybGVuKCRwcmVmaXgpKTsKICAgICAgICB9CgogICAgICAgICRpZCA9IChpbnQpICRzdHI7CiAgICAgICAgJHRtcCA9ICR0cmVlLT5maW5kX2J5X3RhZygnaWQnLCAkaWQpOwogICAgICAgICRjb250ZW50ID0gJyc7CiAgICAgICAgaWYgKCR0bXApIHsKICAgICAgICAgICAgJGNvbnRlbnQgPSAkdG1wLT5nZXRDb250ZW50KCk7CiAgICAgICAgICAgIGlmICgkY29udGVudCkgewogICAgICAgICAgICAgICAgJHJlYyA9IGFyYXkoKTsKICAgICAgICAgICAgICAgICRyZWNbJ2lkJ10gPSAoaW50KSAkc3RyOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIG9yZGVyY29udGVudF9jcmVhdGVfZmxhdGxpc3QoJHRyZWUsICRwYXJlbnRfaWQgPSAtMSkgewogICAgICAgICRkYXRhID0gYXJyYXkoKTsKICAgICAgICAkb3JkZXIgPSAxOwogICAgICAgIGZvcmVhY2ggKCR0cmVlIGFzICYkbm9kZSkgewogICAgICAgICAgICBpZiAoaXNfYXJyYXkoJG5vZGUpICYmIGNvdW50KCRub2RlKSA9PSAyKSB7CiAgICAgICAgICAgICAgICAkcGlkID0gc3Vic3RyKCRub2RlWzBdLCBzdHJsZW4oJ2NhdGVnb3J5XycpKTsKICAgICAgICAgICAgICAgICRkYXRhW10gPSBhcnJheSgnaWQnID0+ICRwaWQsICdwYXJlbnRfaWQnID0+ICRwYXJlbnRfaWQsICdvcmRlcicgPT4gJG9yZGVyKTsKICAgICAgICAgICAgICAgIGlmIChpc3NldCgkbm9kZVsxXSkgJiYgaXNfYXJyYXkoJG5vZGVbMV0pKSB7CiAgICAgICAgICAgICAgICAgICAgJGRhdGEgPSBhcnJheV9tZXJnZSgkZGF0YSwgb3JkZXJjb250ZW50X2NyZWF0ZV9mbGF0bGlzdCgkbm9kZVsxXSwgJHBpZCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHBpZCA9IHN1YnN0cigkbm9kZSwgc3RybGVuKCdjYXRlZ29yeV8nKSk7CiAgICAgICAgICAgICAgICAkZGF0YVtdID0gYXJyYXkoJ2lkJyA9PiAkcGlkLCAncGFyZW50X2lkJyA9PiAkcGFyZW50X2lkLCAnb3JkZXInID0+ICRvcmRlcik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJG9yZGVyKys7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkZGF0YTsKICAgIH0KCiAgICAkZGF0YSA9IGpzb25fZGVjb2RlKCRfUE9TVFsnZGF0YSddKTsKCgogICAgLy8gc3RlcCAxLCBjcmVhdGUgYSBmbGF0IGxpc3Qgb2YgdGhlIGNvbnRlbnQgaXRlbXMsIGFuZCB0aGVpciBuZXcgb3JkZXJzLCBhbmQgbmV3IHBhcmVudHMuCiAgICAkZGF0YSA9IG9yZGVyY29udGVudF9jcmVhdGVfZmxhdGxpc3QoJGRhdGEpOwoKCgogICAgLy8gc3RlcCAyLiBtZXJnZSBpbiBvbGQgb3JkZXJzLCBhbmQgb2xkIHBhcmVudHMuCiAgICAkZ0NtcyA9IGNtc21zKCk7CiAgICAkZGF0YTIgPSBhcnJheSgpOwoKICAgIC8vIGFsbCBjYXRlZ29yaWVzCiAgICAkcXVlcnkgPSAiU0VMRUNUIGNhdGVnb3J5X2lkLHBhcmVudF9pZCxwb3NpdGlvbiBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlXyIgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICJfY2F0ZWdvcmllcyBPUkRFUiBCWSBoaWVyYXJjaHlfcG9zaXRpb24iOwogICAgJGNhdGVnb3JpZXMgPSAkZGItPkdldEFsbCgkcXVlcnkpOwogICAgJGNhdF9hcnJheSA9IGFycmF5KCk7CiAgICBmb3JlYWNoICgkY2F0ZWdvcmllcyBhcyAkY2F0ZWdvcnkpIHsKICAgICAgICAkY2F0X2FycmF5WyRjYXRlZ29yeVsiY2F0ZWdvcnlfaWQiXV0gPSBhcnJheSgkY2F0ZWdvcnlbInBhcmVudF9pZCJdLCRjYXRlZ29yeVsicG9zaXRpb24iXSk7CiAgICB9CgoKICAgIGZvciAoJGkgPSAwOyAkaSA8IGNvdW50KCRkYXRhKTsgJGkrKykgewogICAgICAgICRyZWMgPSAmICRkYXRhWyRpXTsKICAgICAgICAkb2xkX2NhdGVnb3J5ID0gJGNhdF9hcnJheVskcmVjWydpZCddXTsKICAgICAgICBpZiAoJG9sZF9jYXRlZ29yeSkgewogICAgICAgICAgICAkcmVjWydvbGRfcGFyZW50J10gPSAkb2xkX2NhdGVnb3J5WzBdOwogICAgICAgICAgICAkcmVjWydvbGRfb3JkZXInXSA9ICRvbGRfY2F0ZWdvcnlbMV07CgogICAgICAgICAgICBpZiAoKCRyZWNbJ29sZF9wYXJlbnQnXSAhPSAkcmVjWydwYXJlbnRfaWQnXSkgfHwKICAgICAgICAgICAgICAgICAgICAkcmVjWydvbGRfb3JkZXInXSAhPSAkcmVjWydvcmRlciddKSB7CiAgICAgICAgICAgICAgICAkZGF0YTJbXSA9ICRyZWM7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgCiAgICAvLyBkbyB0aGUgdXBkYXRlcwogICAgaWYgKGNvdW50KCRkYXRhMikgPiAwKSB7CiAgICAgICAgJGRiID0gJGdDbXMtPkdldERiKCk7CiAgICAgICAgJHF1ZXJ5ID0gJ1VQREFURSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2NhdGVnb3JpZXMgY29udGVudCBTRVQgcG9zaXRpb24gPSA/LCBwYXJlbnRfaWQgPSA/IFdIRVJFIGNhdGVnb3J5X2lkID0gPyc7CiAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgY291bnQoJGRhdGEyKTsgJGkrKykgewogICAgICAgICAgICAkcmVjID0gJiAkZGF0YTJbJGldOwogICAgICAgICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcmVjWydvcmRlciddLCAkcmVjWydwYXJlbnRfaWQnXSwgJHJlY1snaWQnXSkpOwogICAgICAgICAgICBAJG1vZC0+U2VuZEV2ZW50KCdDYXRlZ29yeUVkaXRlZCcsIGFycmF5KCdjYXRlZ29yeV9pZCcgPT4gJHJlY1snaWQnXSkpOwogICAgICAgIH0KICAgICAgICBnZW5lcmF0b3JfdG9vbHM6OnVwZGF0ZV9oaWVyYXJjaHlfcG9zaXRpb25zKCRtb2QpOwogICAgICAgIEAkbW9kLT5TZW5kRXZlbnQoJ0NhdGVnb3J5UmVvcmRlcmVkJywgYXJyYXkoKSk7CiAgICB9IGVsc2UgewogICAgICAgIGVjaG8gbGFuZygnbm90aGluZ3RvZG8nKTsKICAgICAgICByZXR1cm47CiAgICB9Cn0KCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/action.admin_search_reindex.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYgKCEkbW9kLT5DaGVja1Blcm1pc3Npb24oJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9vcHRpb24nKSkNCiAgICByZXR1cm47DQoNCiRzZWFyY2ggPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1NlYXJjaCcpOw0KaWYgKCRzZWFyY2ggIT0gRkFMU0UpIHsNCiAgICAkbW9kLT5TZWFyY2hSZWluZGV4KCRzZWFyY2gpOw0KfQ0KDQokbW9kLT5SZWRpcmVjdFRvVGFiKCRpZCwgJ29wdGlvbnRhYicpOw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/action.admin_templates.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBVcGxvYWRzIC09IGFsbG93IHVzZXJzIHRvIHVwbG9hZCBzdHVmZiwgYSBwc2V1ZG8gZmlsZSBtYW5hZ2VyIiBtb2R1bGUKIyBBdXRob3I6IFJvYmVydCBDYW1wYmVsbCA8cm9iQHRlY2hjb20uZHluZG5zLm9yZz4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6CS8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKZWNobyAnPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IiBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7IHdpZHRoOiA4MCU7Ij4nIC4KICRtb2QtPkNyZWF0ZUltYWdlTGluaygkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGdlbmVyYXRvcigpLT5MYW5nKCdiYWNrJyksICdpY29ucy9zeXN0ZW0vYmFjay5naWYnLCBhcnJheSgpLCAnJywgJycsIGZhbHNlKSAuICc8L2Rpdj48YnIvPic7CgplY2hvICRtb2QtPlN0YXJ0VGFiSGVhZGVycygpOwppZiAoJG1vZC0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykpIHsKICAgIGVjaG8gJG1vZC0+U2V0VGFiSGVhZGVyKCdjYXRlZ29yeV90ZW1wbGF0ZScsIGdlbmVyYXRvcigpLT5MYW5nKCdjYXRlZ29yeV90ZW1wbGF0ZScpKTsKICAgIGVjaG8gJG1vZC0+U2V0VGFiSGVhZGVyKCdzdW1tYXJ5X3RlbXBsYXRlJywgZ2VuZXJhdG9yKCktPkxhbmcoJ3N1bW1hcnlfdGVtcGxhdGUnKSk7CiAgICBlY2hvICRtb2QtPlNldFRhYkhlYWRlcignZGV0YWlsX3RlbXBsYXRlJywgZ2VuZXJhdG9yKCktPkxhbmcoJ2RldGFpbF90ZW1wbGF0ZScpKTsKICAgIGVjaG8gJG1vZC0+U2V0VGFiSGVhZGVyKCdmaWx0ZXJfdGVtcGxhdGUnLCBnZW5lcmF0b3IoKS0+TGFuZygnZmlsdGVyX3RlbXBsYXRlJykpOwogICAgLy9lY2hvICRtb2QtPlNldFRhYkhlYWRlcignZGVmYXVsdF90ZW1wbGF0ZXMnLCBnZW5lcmF0b3IoKS0+TGFuZygnZGVmYXVsdF90ZW1wbGF0ZXMnKSk7Cn0KZWNobyAkbW9kLT5FbmRUYWJIZWFkZXJzKCk7CmVjaG8gJG1vZC0+U3RhcnRUYWJDb250ZW50KCk7CmlmICgkbW9kLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSkgewogICAgLy8gdGhlIGNhdGVnb3J5IHRlbXBsYXRlIHRhYgogICAgZWNobyAkbW9kLT5TdGFydFRhYignY2F0ZWdvcnlfdGVtcGxhdGUnKTsKICAgIGVjaG8gJG1vZC0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsICRyZXR1cm5pZCwgJ2NhdGVnb3J5X3RlbXBsYXRlJywgJ2RlZmF1bHRfY2F0ZWdvcnlfdGVtcGxhdGUnLCAnY2F0ZWdvcnlfdGVtcGxhdGUnLCAnY3VycmVudF9jYXRlZ29yeV90ZW1wbGF0ZScsIGdlbmVyYXRvcigpLT5MYW5nKCdhZGRlZGl0X2NhdGVnb3J5X3RlbXBsYXRlJyksICdhZG1pbl90ZW1wbGF0ZXMnLCAnYWRtaW5fdGVtcGxhdGVzJyk7CiAgICBlY2hvICRtb2QtPkVuZFRhYigpOwoKICAgIC8vIHRoZSBzdW1tYXJ5IHRlbXBsYXRlIHRhYgogICAgZWNobyAkbW9kLT5TdGFydFRhYigic3VtbWFyeV90ZW1wbGF0ZSIpOwogICAgZWNobyAkbW9kLT5TaG93VGVtcGxhdGVMaXN0KCRpZCwgJHJldHVybmlkLCAnc3VtbWFyeV90ZW1wbGF0ZScsICdkZWZhdWx0X3N1bW1hcnlfdGVtcGxhdGUnLCAnc3VtbWFyeV90ZW1wbGF0ZScsICdjdXJyZW50X3N1bW1hcnlfdGVtcGxhdGUnLCBnZW5lcmF0b3IoKS0+TGFuZygnYWRkZWRpdF9zdW1tYXJ5X3RlbXBsYXRlJyksICdhZG1pbl90ZW1wbGF0ZXMnLCAnYWRtaW5fdGVtcGxhdGVzJyk7CiAgICBlY2hvICRtb2QtPkVuZFRhYigpOwoKICAgIC8vIHRoZSBkZXRhaWwgdGVtcGxhdGUgdGFiCiAgICBlY2hvICRtb2QtPlN0YXJ0VGFiKCJkZXRhaWxfdGVtcGxhdGUiKTsKICAgIGVjaG8gJG1vZC0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsICRyZXR1cm5pZCwgJ2RldGFpbF90ZW1wbGF0ZScsICdkZWZhdWx0X2RldGFpbF90ZW1wbGF0ZScsICdkZXRhaWxfdGVtcGxhdGUnLCAnY3VycmVudF9kZXRhaWxfdGVtcGxhdGUnLCBnZW5lcmF0b3IoKS0+TGFuZygnYWRkZWRpdF9kZXRhaWxfdGVtcGxhdGUnKSwgJ2FkbWluX3RlbXBsYXRlcycsICdhZG1pbl90ZW1wbGF0ZXMnKTsKICAgIGVjaG8gJG1vZC0+RW5kVGFiKCk7CgogICAgLy8gdGhlIGZpbHRlciB0ZW1wbGF0ZSB0YWIKICAgIGVjaG8gJG1vZC0+U3RhcnRUYWIoImZpbHRlcl90ZW1wbGF0ZSIpOwogICAgZWNobyAkbW9kLT5TaG93VGVtcGxhdGVMaXN0KCRpZCwgJHJldHVybmlkLCAnZmlsdGVyX3RlbXBsYXRlJywgJ2RlZmF1bHRfZmlsdGVyX3RlbXBsYXRlJywgJ2ZpbHRlcl90ZW1wbGF0ZScsICdjdXJyZW50X2ZpbHRlcl90ZW1wbGF0ZScsIGdlbmVyYXRvcigpLT5MYW5nKCdhZGRlZGl0X2ZpbHRlcl90ZW1wbGF0ZScpLCAnYWRtaW5fdGVtcGxhdGVzJywgJ2FkbWluX3RlbXBsYXRlcycpOwogICAgZWNobyAkbW9kLT5FbmRUYWIoKTsKCgogICAgLy8gdGhlIGRlZmF1bHQgdGVtcGxhdGVzIHRhYgogICAgLyogZWNobyAkbW9kLT5TdGFydFRhYignZGVmYXVsdF90ZW1wbGF0ZXMnKTsKCiAgICAgIGVjaG8gJG1vZC0+R2V0RGVmYXVsdFRlbXBsYXRlRm9ybSgkdGhpcywgJGlkLCAkcmV0dXJuaWQsICdjYXRlZ29yeV9zeXNkZWZhdWx0JywgJ2FkbWluX3RlbXBsYXRlcycsICdkZWZhdWx0X3RlbXBsYXRlcycsIGdlbmVyYXRvcigpLT5MYW5nKCd0aXRsZV9jYXRlZ29yeV9zeXNkZWZhdWx0JyksICdvcmlnX2NhdGVnb3J5X3RlbXBsYXRlLnRwbCcsIGdlbmVyYXRvcigpLT5MYW5nKCdpbmZvX3N5c2RlZmF1bHQnKSk7CiAgICAgIGVjaG8gJG1vZC0+R2V0RGVmYXVsdFRlbXBsYXRlRm9ybSgkdGhpcywgJGlkLCAkcmV0dXJuaWQsICdzdW1tYXJ5X3N5c2RlZmF1bHQnLCAnYWRtaW5fdGVtcGxhdGVzJywgJ2RlZmF1bHRfdGVtcGxhdGVzJywgZ2VuZXJhdG9yKCktPkxhbmcoJ3RpdGxlX3N1bW1hcnlfc3lzZGVmYXVsdCcpLCAnb3JpZ19zdW1tYXJ5X3RlbXBsYXRlLnRwbCcsIGdlbmVyYXRvcigpLT5MYW5nKCdpbmZvX3N5c2RlZmF1bHQnKSk7CiAgICAgIGVjaG8gJG1vZC0+R2V0RGVmYXVsdFRlbXBsYXRlRm9ybSgkdGhpcywgJGlkLCAkcmV0dXJuaWQsICdkZXRhaWxfc3lzZGVmYXVsdCcsICdhZG1pbl90ZW1wbGF0ZXMnLCAnZGVmYXVsdF90ZW1wbGF0ZXMnLCBnZW5lcmF0b3IoKS0+TGFuZygndGl0bGVfZGV0YWlsX3N5c2RlZmF1bHQnKSwgJ29yaWdfZGV0YWlsX3RlbXBsYXRlLnRwbCcsIGdlbmVyYXRvcigpLT5MYW5nKCdpbmZvX3N5c2RlZmF1bHQnKSk7CgoKICAgICAgZWNobyAnPGRpdiBzdHlsZT0iYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrOyB3aWR0aDogODAlOyI+PC9kaXY+JzsKCiAgICAgIGVjaG8gJG1vZC0+RW5kVGFiKCk7ICovCn0KZWNobyAkbW9kLT5FbmRUYWJDb250ZW50KCk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/action.categories.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJHNtYXJ0eSA9IGNtc21zKCktPkdldFNtYXJ0eSgpOwoKJGl0ZW1zID0gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfY2F0ZWdvcmllcygkbW9kLCAkaWQsJHBhcmFtcywkcmV0dXJuaWQpOwoKCiNEaXNwbGF5IHRlbXBsYXRlCiRzbWFydHktPmFzc2lnbignY291bnQnLCBjb3VudCgkaXRlbXMpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYXRzJywgJGl0ZW1zKTsKCiAgLy8gdGVtcGxhdGUKJHRoZXRlbXBsYXRlID0gJ2NhdGVnb3J5X3RlbXBsYXRlJyAuICRtb2QtPkdldFByZWZlcmVuY2UoJ2N1cnJlbnRfY2F0ZWdvcnlfdGVtcGxhdGUnKTsKaWYgKGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5dGVtcGxhdGUnXSkpIHsKICAgICR0aGV0ZW1wbGF0ZSA9ICdjYXRlZ29yeV90ZW1wbGF0ZScgLiAkcGFyYW1zWydjYXRlZ29yeXRlbXBsYXRlJ107Cn0KZWNobyAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHRoZXRlbXBsYXRlKTsKCgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KI0JFR0lOX0xJQ0VOU0UNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogICBAa3V6bWFueSAoa3V6bWFueS5iaXopDQojDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQ0KIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZw0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkDQojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQ0KIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TDQojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiANCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4NCiMNCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTA0KIw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiNFTkRfTElDRU5TRQ0KaWYgKCFpc3NldCgkZ0NtcykpDQogICAgZXhpdDsNCg0KDQokZmllbGRkZWZzID0gJyc7DQokdG1wID0gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfZmllbGRzKCRtb2QsIGZhbHNlKTsNCg0KaWYgKGlzX2FycmF5KCR0bXApKSB7DQogICAgJGZpZWxkZGVmcyA9IGFycmF5KCk7DQogICAgZm9yICgkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKyspIHsNCiAgICAgICAgJG9iaiA9IGNnZV9hcnJheTo6dG9fb2JqZWN0KCR0bXBbJGldKTsNCiAgICAgICAgJGZpZWxkZGVmc1skb2JqLT5hbGlhc10gPSAkb2JqOw0KICAgIH0NCn0NCg0KDQokcXVlcnkgPSAnJzsNCiRxdWVyeTIgPSAnJzsNCiRjb3VudCA9ICcnOw0KJHBhZ2UgPSAnJzsNCiRzdGFydGVsZW1lbnQgPSAnJzsNCiRsaW1pdCA9IDk5OTk5Ow0KJGl0ZW1saXN0ID0gJyc7DQokc29ydHR5cGUgPSAnJzsNCiRjb3VudGpvaW5zID0gYXJyYXkoKTsNCiRqb2lucyA9IGFycmF5KCk7DQokc29ydGZpZWxkID0gMTsNCnVuc2V0KCRwYXJhbXNbJ2Fzc2lnbiddKTsNCiRpbmxpbmUgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdkaXNwbGF5X2lubGluZScsIGZhbHNlKTsNCiRkZWZhdWx0X2RldGFpbHBhZ2UgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdpdGVtX2RldGFpbF9yZXR1cm5pZCcsICcnKTsNCiRkZXRhaWxwYWdlID0gJGRlZmF1bHRfZGV0YWlscGFnZTsNCmlmICghaXNTZXQoJHBhcmFtc1siZGV0YWlscGFnZSJdKSAmJiBpc1NldCgkcGFyYW1zWyJyZXR1cm5pZCJdKSkNCiAgICAkcGFyYW1zWyJkZXRhaWxwYWdlIl0gPSAkcGFyYW1zWyJyZXR1cm5pZCJdOw0KJGRldGFpbHBhZ2UgPSBleHRlbmRlZF90b29sc19vcHRzOjpkZXRhaWxwYWdlKCRwYXJhbXMsICRkZXRhaWxwYWdlKTsNCmlmICgkZGV0YWlscGFnZSA9PSAkZGVmYXVsdF9kZXRhaWxwYWdlKQ0KICAgIHVuc2V0KCRwYXJhbXNbImRldGFpbHBhZ2UiXSk7DQoNCg0KJGRldGFpbHRlbXBsYXRlID0gJyc7DQokZmlsdGVycyA9IGFycmF5KCk7DQokZmllbGRzID0gYXJyYXkoKTsNCiRmaWVsZHMyID0gYXJyYXkoKTsNCiRkYXRlX3RvID0gJyc7DQokZGF0ZV9mcm9tID0gJyc7DQokY2F0ZWdvcnlfaWQgPSAtMTsNCiRwYXJhbWFycmF5dG1wID0gYXJyYXkoKTsNCiRncm91cGJ5ID0gJyc7DQoNCg0KLy8gdGVtcGxhdGUNCiR0aGV0ZW1wbGF0ZSA9ICdzdW1tYXJ5X3RlbXBsYXRlJyAuICRtb2QtPkdldFByZWZlcmVuY2UoJ2N1cnJlbnRfc3VtbWFyeV90ZW1wbGF0ZScpOw0KaWYgKGlzc2V0KCRwYXJhbXNbJ3N1bW1hcnl0ZW1wbGF0ZSddKSkgew0KICAgICR0aGV0ZW1wbGF0ZSA9ICdzdW1tYXJ5X3RlbXBsYXRlJyAuICRwYXJhbXNbJ3N1bW1hcnl0ZW1wbGF0ZSddOw0KfQ0KDQovLyB0ZW1wbGF0ZQ0KaWYgKGlzc2V0KCRwYXJhbXNbJ2RldGFpbHRlbXBsYXRlJ10pKSB7DQogICAgJGRldGFpbHRlbXBsYXRlID0gJHBhcmFtc1snZGV0YWlsdGVtcGxhdGUnXTsNCn0NCg0KaWYgKGlzc2V0KCRwYXJhbXNbJ2lubGluZSddKSkgew0KICAgICRpbmxpbmUgPSAkcGFyYW1zWydpbmxpbmUnXTsNCn0NCg0KDQovLyBkYXRlIGZyb20NCmlmIChpc3NldCgkcGFyYW1zWydkYXRlZnJvbSddKSkgew0KICAgICRkYXRlX2Zyb20gPSAkcGFyYW1zWydkYXRlZnJvbSddOw0KfQ0KaWYgKGlzc2V0KCRwYXJhbXNbJ2RhdGVmcm9tTW9udGgnXSkpIHsNCiAgICAkZGF0ZV9mcm9tID0gbWt0aW1lKDAsIDAsIDAsICRwYXJhbXNbJ2RhdGVmcm9tTW9udGgnXSwgJHBhcmFtc1snZGF0ZWZyb21EYXknXSwgJHBhcmFtc1snZGF0ZWZyb21ZZWFyJ10pOw0KfQ0KaWYgKGlzc2V0KCRwYXJhbXNbJ2RhdGV0byddKSkgew0KICAgICRkYXRlX3RvID0gJHBhcmFtc1snZGF0ZXRvJ107DQp9DQppZiAoaXNzZXQoJHBhcmFtc1snZGF0ZXRvTW9udGgnXSkpIHsNCiAgICAkZGF0ZV90byA9IG1rdGltZSgyMywgNTksIDU5LCAkcGFyYW1zWydkYXRldG9Nb250aCddLCAkcGFyYW1zWydkYXRldG9EYXknXSwgJHBhcmFtc1snZGF0ZXRvWWVhciddKTsNCn0NCg0KaWYgKGlzc2V0KCRwYXJhbXNbJ2l0ZW1fZGF0ZV9mcm9tX3RvJ10pKSB7DQogICAgJGRhdGVfZnJvbV90byA9IGV4cGxvZGUoJ3wnLCAkcGFyYW1zWydpdGVtX2RhdGVfZnJvbV90byddKTsNCiAgICBpZiAoY291bnQoJGRhdGVfZnJvbV90bykgPT0gMikgew0KICAgICAgICAkZGF0ZV9mcm9tID0gZ2VuZXJhdG9yX3Rvb2xzOjpwcm9jZXNzX2ZpbHRlcl9kYXRlKCRkYXRlX2Zyb21fdG9bMF0pOw0KICAgICAgICAkZGF0ZV90byA9IGdlbmVyYXRvcl90b29sczo6cHJvY2Vzc19maWx0ZXJfZGF0ZSgkZGF0ZV9mcm9tX3RvWzFdKTsNCiAgICB9DQp9DQoNCi8vY2F0ZWdvcnkgaWQNCmlmIChpc1NldCgkcGFyYW1zWyJjYXRlZ29yeV9pZCJdKSkgew0KICAgICRjYXRlZ29yeV9pZCA9IGludHZhbCgkcGFyYW1zWyJjYXRlZ29yeV9pZCJdKTsNCn0NCg0KDQppZiAoaXNzZXQoJHBhcmFtc1snaXRlbWxpc3QnXSkpIHsNCiAgICAkaXRlbWxpc3QgPSAkcGFyYW1zWydpdGVtbGlzdCddOw0KICAgIHVuc2V0KCRwYXJhbXNbJ2l0ZW1saXN0J10pOw0KICAgIGlmICghaXNfYXJyYXkoJGl0ZW1saXN0KSkgew0KICAgICAgICAkaXRlbWxpc3QgPSBleHBsb2RlKCcsJywgJGl0ZW1saXN0KTsNCiAgICB9DQp9DQppZiAoIShpc19hcnJheSgkaXRlbWxpc3QpICYmIGNvdW50KCRpdGVtbGlzdCkgPiAwKSkgew0KICAgIC8vIHdlIGRvbid0IGhhdmUgYW4gZXhwbGljaXQgcHJvZHVjdCBsaXN0LCBzbyBnb3R0YSBidWlsZCBhIHF1ZXJ5DQogICAgLy8gZnJvbSBvdGhlciBwYXJhbWV0ZXJzDQogICAgJHNvcnRvcmRlciA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ3NvcnRvcmRlcl8nIC4gJG1vZC0+R2V0UHJlZmVyZW5jZSgnbW9kZScpLCAnZGVzYycpOw0KICAgIGlmIChpc3NldCgkcGFyYW1zWydzb3J0b3JkZXInXSkpIHsNCiAgICAgICAgc3dpdGNoIChzdHJ0b2xvd2VyKCRwYXJhbXNbJ3NvcnRvcmRlciddKSkgew0KICAgICAgICAgICAgY2FzZSAnYXNjJzoNCiAgICAgICAgICAgIGNhc2UgJ2Rlc2MnOg0KICAgICAgICAgICAgICAgICRzb3J0b3JkZXIgPSAkcGFyYW1zWydzb3J0b3JkZXInXTsNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgICRzb3J0YnkgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdzb3J0YnlfJyAuICRtb2QtPkdldFByZWZlcmVuY2UoJ21vZGUnKSwgJ3Bvc2l0aW9uJyk7DQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ3NvcnRieSddKSkgew0KICAgICAgICAkdG1wID0gc3RydG9sb3dlcih0cmltKCRwYXJhbXNbJ3NvcnRieSddKSk7DQogICAgfSBlbHNlIHsNCiAgICAgICAgJHRtcCA9ICRzb3J0Ynk7DQogICAgfQ0KICAgIHN3aXRjaCAoJHRtcCkgew0KICAgICAgICBjYXNlICdpZCc6DQogICAgICAgICAgICAkc29ydGJ5ID0gJ2lkJzsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICdpdGVtX2RhdGUnOg0KICAgICAgICAgICAgJHNvcnRieSA9ICdpdGVtX2RhdGUnOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgJ3Bvc2l0aW9uJzoNCiAgICAgICAgICAgICRzb3J0YnkgPSAncG9zaXRpb24nOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgJ3RpdGxlJzoNCiAgICAgICAgICAgICRzb3J0YnkgPSAndGl0bGUnOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgJ2NyZWF0ZWQnOg0KICAgICAgICAgICAgJHNvcnRieSA9ICdjcmVhdGVfZGF0ZSc7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAnbW9kaWZpZWQnOg0KICAgICAgICAgICAgJHNvcnRieSA9ICdtb2RpZmllZF9kYXRlJzsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICdyYW5kb20nOg0KICAgICAgICAgICAgJHNvcnRieSA9ICdSQU5EKCknOw0KICAgICAgICAgICAgJHNvcnRvcmRlciA9ICcnOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZiAoc3RhcnRzd2l0aCgkdG1wLCAnZjonKSkgew0KICAgICAgICAgICAgICAgICRmaWVsZG5hbWUgPSBzdWJzdHIoJHRtcCwgc3RybGVuKCdmOicpKTsNCiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJGZpZWxkZGVmc1skZmllbGRuYW1lXSkpIHsNCiAgICAgICAgICAgICAgICAgICAgJGZpZWxkaWQgPSAkZmllbGRkZWZzWyRmaWVsZG5hbWVdLT5maWVsZGRlZl9pZDsNCiAgICAgICAgICAgICAgICAgICAgJGFzID0gJ0ZWJyAuICRzb3J0ZmllbGQrKzsNCiAgICAgICAgICAgICAgICAgICAgJGpvaW5zW10gPSBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlXyIgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICJfZmllbGR2YWwgeyRhc30gT04gYy5pdGVtX2lkID0geyRhc30uaXRlbV9pZCBBTkQgJGFzLmZpZWxkZGVmX2lkID0gJ3skZmllbGRpZH0nIjsNCiAgICAgICAgICAgICAgICAgICAgJHNvcnRieSA9ICJ7JGFzfS52YWx1ZSI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KDQogICAgaWYgKCRzb3J0YnkgPT0gJ3JhbmRvbScpIHsNCiAgICAgICAgJHNvcnRieSA9ICdSQU5EKCknOw0KICAgICAgICAkc29ydG9yZGVyID0gJyc7DQogICAgfQ0KDQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ3NvcnR0eXBlJ10pKSB7DQogICAgICAgICR0bXAgPSB0cmltKCRwYXJhbXNbJ3NvcnR0eXBlJ10pOw0KICAgICAgICAkdG1wID0gc3RydG91cHBlcigkdG1wKTsNCiAgICAgICAgc3dpdGNoICgkdG1wKSB7DQogICAgICAgICAgICBjYXNlICdTVFJJTkcnOg0KICAgICAgICAgICAgICAgICRzb3J0dHlwZSA9ICcnOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAnU0lHTkVEJzoNCiAgICAgICAgICAgIGNhc2UgJ1VOU0lHTkVEJzoNCiAgICAgICAgICAgICAgICAkc29ydHR5cGUgPSAkdG1wOw0KICAgICAgICB9DQogICAgfQ0KICAgICRsaW1pdCA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ3N1bW1hcnlfcGFnZWxpbWl0XycgLiAkbW9kLT5HZXRQcmVmZXJlbmNlKCdtb2RlJyksIDEwMDAwKTsNCiAgICBpZiAoaXNzZXQoJHBhcmFtc1sncGFnZWxpbWl0J10pICYmICRwYXJhbXNbJ3BhZ2VsaW1pdCddID4gMCkgew0KICAgICAgICAkbGltaXQgPSAoaW50KSAkcGFyYW1zWydwYWdlbGltaXQnXTsNCiAgICB9DQoNCiAgICAkbGltaXQgPSBtYXgoJGxpbWl0LCAxKTsNCiAgICAkbGltaXQgPSBtaW4oJGxpbWl0LCAxMDAwMCk7DQoNCg0KICAgICRwYWdlID0gMTsNCiAgICBpZiAoaXNzZXQoJHBhcmFtc1sncGFnZSddKSkgew0KICAgICAgICAkcGFnZSA9IChpbnQpICRwYXJhbXNbJ3BhZ2UnXTsNCiAgICAgICAgaWYgKCRwYWdlIDwgMSkNCiAgICAgICAgICAgICRwYWdlID0gMTsNCiAgICB9DQogICAgJHN0YXJ0ZWxlbWVudCA9ICgkcGFnZSAtIDEpICogJGxpbWl0Ow0KDQogICAgJGNhdGVnb3J5ID0gJyc7DQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5J10pKSB7DQogICAgICAgICRjYXRlZ29yeSA9IHRyaW0oJHBhcmFtc1snY2F0ZWdvcnknXSk7DQogICAgfQ0KICAgICRjYXRlZ29yeWlkID0gLTEwMDsNCiAgICBpZiAoaXNzZXQoJHBhcmFtc1snY2F0ZWdvcnlpZCddKSkgew0KICAgICAgICAkY2F0ZWdvcnlpZCA9IChpbnQpICRwYXJhbXNbJ2NhdGVnb3J5aWQnXTsNCiAgICB9DQoNCiAgICAkZmllbGRpZCA9IC0xMDA7DQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZpZWxkaWQnXSkpIHsNCiAgICAgICAgJGZpZWxkaWQgPSAoaW50KSAkcGFyYW1zWydmaWVsZGlkJ107DQogICAgfQ0KICAgICRmaWVsZHZhbCA9ICcnOw0KICAgIGlmIChpc3NldCgkcGFyYW1zWydmaWVsZHZhbCddKSkgew0KICAgICAgICAkZmllbGR2YWwgPSB0cmltKCRwYXJhbXNbJ2ZpZWxkdmFsJ10pOw0KICAgIH0NCg0KLy8NCi8vIEJ1aWxkIHRoZSBxdWVyaWVzDQovLw0KICAgICRpdGVtc2FycmF5ID0gYXJyYXkoKTsNCiAgICAkZW50cnlhcnJheSA9IGFycmF5KCk7DQogICAgJHBhcmFtYXJyYXkgPSBhcnJheSgpOw0KICAgICRwYXJhbWFycmF5MiA9IGFycmF5KCk7DQogICAgJHdoZXJlID0gYXJyYXkoKTsNCiAgICAkd2hlcmUyID0gYXJyYXkoKTsNCiAgICAkcXVlcnkgPSAiU0VMRUNUIGMuKiw8RklFTERTPiBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlXyIgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICJfaXRlbSBjIjsNCiAgICAkcXVlcnkyID0gIlNFTEVDVCBjb3VudCgqKSBhcyBjb3VudCw8RklFTERTPiBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlXyIgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICJfaXRlbSBjIjsNCiAgICAkd2hlcmVbXSA9ICdjLmFjdGl2ZSA9ID8nOw0KICAgICRwYXJhbWFycmF5W10gPSAxOw0KDQogICAgJGNvdW50am9pbnNbXSA9IGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19jYXRlZ29yaWVzIGNhIE9OIGNhLmNhdGVnb3J5X2lkID0gYy5jYXRlZ29yeV9pZCc7DQogICAgJGpvaW5zW10gPSBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfY2F0ZWdvcmllcyBjYSBPTiBjYS5jYXRlZ29yeV9pZCA9IGMuY2F0ZWdvcnlfaWQnOw0KICAgICRmaWVsZHNbXSA9ICdjYS5jYXRlZ29yeV9uYW1lJzsNCg0KDQogICAgaWYgKCRjYXRlZ29yeV9pZCA+IDApIHsNCiAgICAgICAgJHdoZXJlW10gPSAnY2EuY2F0ZWdvcnlfaWQgPSA/JzsNCiAgICAgICAgJHBhcmFtYXJyYXlbXSA9ICRjYXRlZ29yeV9pZDsNCiAgICB9IGVsc2UgaWYgKGVtcHR5KCRjYXRlZ29yeSkgPT0gZmFsc2UpIHsNCiAgICAgICAgJGNhdGVnb3J5ID0gY21zX2h0bWxfZW50aXR5X2RlY29kZSgkY2F0ZWdvcnkpOw0KICAgICAgICAkY2F0ZWdvcmllcyA9IGV4cGxvZGUoJywnLCAkY2F0ZWdvcnkpOw0KDQoNCg0KICAgICAgICAkcXVlcnl0bXAgPSAiICgiOw0KICAgICAgICAkY291bnQgPSAwOw0KICAgICAgICBmb3JlYWNoICgkY2F0ZWdvcmllcyBhcyAkb25lY2F0KSB7DQogICAgICAgICAgICBpZiAoJGNvdW50ID4gMCkgew0KICAgICAgICAgICAgICAgICRxdWVyeXRtcCAuPSAnIE9SICc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoc3RycG9zKCRvbmVjYXQsICd8JykgIT09IEZBTFNFIHx8IHN0cnBvcygkb25lY2F0LCAnKicpICE9PSBGQUxTRSkgew0KICAgICAgICAgICAgICAgICR0bXAgPSAkZGItPnFzdHIodHJpbShzdHJfcmVwbGFjZSgnKicsICclJywgc3RyX3JlcGxhY2UoIiciLCAnXycsICRvbmVjYXQpKSkpOw0KICAgICAgICAgICAgICAgICRxdWVyeXRtcCAuPSAidXBwZXIoY2EubG9uZ19uYW1lKSBsaWtlIHVwcGVyKHskdG1wfSkiOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAkdG1wID0gJGRiLT5xc3RyKHRyaW0oc3RyX3JlcGxhY2UoIiciLCAnXycsICRvbmVjYXQpKSk7DQogICAgICAgICAgICAgICAgJHF1ZXJ5dG1wIC49ICJjYS5jYXRlZ29yeV9uYW1lID0geyR0bXB9IjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRjb3VudCsrOw0KICAgICAgICB9DQogICAgICAgICRxdWVyeXRtcCAuPSAiKSI7DQoNCiAgICAgICAgJHdoZXJlW10gPSAkcXVlcnl0bXA7DQogICAgfQ0KDQoNCg0KDQovLyBmaWx0ZXJzDQogICAgZm9yZWFjaCAoJHBhcmFtcyBhcyAka2V5ID0+ICRwYXJhbSkgew0KICAgICAgICBpZiAoc3RhcnRzd2l0aCgka2V5LCAnZmlsdGVyXycpKSB7DQogICAgICAgICAgICAkZmlsdGVyX2tleXMgPSBleHBsb2RlKCdfJywgJGtleSk7DQogICAgICAgICAgICBpZiAoY291bnQoJGZpbHRlcl9rZXlzKSA9PSAzKSB7DQogICAgICAgICAgICAgICAgJGZpZWxkaWQgPSAkZmlsdGVyX2tleXNbMV07DQogICAgICAgICAgICAgICAgJGZpbHRlciA9ICRmaWx0ZXJfa2V5c1syXTsNCiAgICAgICAgICAgICAgICAkZmllbGR2YWwgPSAkcGFyYW07DQogICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRmaWVsZGlkKSAmJiBpc3NldCgkZmllbGR2YWwpICYmICRmaWVsZHZhbCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoaW50dmFsKCRmaWVsZGlkKSA+IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhhbmRsZSBnYXRoZXJpbmcgJy4kbW9kLT5fR2V0TW9kdWxlQWxpYXMoKS4nIHRoYXQgaGF2ZSBhIGNlcnRhaW4gZmllbGQgaWQuDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGZpbHRlciA9PSAnbnVsbCcpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYW5kbGUgYSBjYXNlIHdoZW4gYSBmaWVsZCBpcyBub3Qgc2V0IGZvciBhIHByb2R1Y3QuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvdW50am9pbnNbXSA9IGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZHZhbCBGVkEnIC4gJGZpZWxkaWQgLiAnIE9OIGMuaXRlbV9pZCA9IEZWQScgLiAkZmllbGRpZCAuICcuaXRlbV9pZCBBTkQgRlZBJyAuICRmaWVsZGlkIC4gJy5maWVsZGRlZl9pZCA9ID8nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRqb2luc1tdID0gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkdmFsIEZWQScgLiAkZmllbGRpZCAuICcgT04gYy5pdGVtX2lkID0gRlZBJyAuICRmaWVsZGlkIC4gJy5pdGVtX2lkIEFORCBGVkEnIC4gJGZpZWxkaWQgLiAnLmZpZWxkZGVmX2lkID0gPyc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnKEZWQScgLiAkZmllbGRpZCAuICcudmFsdWUgSVMgTlVMTCknOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5X3Vuc2hpZnQoJHBhcmFtYXJyYXksICRmaWVsZGlkKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyRwYXJhbWFycmF5W10gPSAkZmllbGRpZDsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGZpbHRlciA9PSAnbm90bnVsbCcpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYW5kbGUgYSBjYXNlIHdoZW4gYSBmaWVsZCBpcyBub3Qgc2V0IGZvciBhIHByb2R1Y3QuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvdW50am9pbnNbXSA9IGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZHZhbCBGVkEnIC4gJGZpZWxkaWQgLiAnIE9OIGMuaXRlbV9pZCA9IEZWQScgLiAkZmllbGRpZCAuICcuaXRlbV9pZCBBTkQgRlZBJyAuICRmaWVsZGlkIC4gJy5maWVsZGRlZl9pZCA9ID8nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRqb2luc1tdID0gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkdmFsIEZWQScgLiAkZmllbGRpZCAuICcgT04gYy5pdGVtX2lkID0gRlZBJyAuICRmaWVsZGlkIC4gJy5pdGVtX2lkIEFORCBGVkEnIC4gJGZpZWxkaWQgLiAnLmZpZWxkZGVmX2lkID0gPyc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnKEZWQScgLiAkZmllbGRpZCAuICcudmFsdWUgIT0gXCdcJyknOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5X3Vuc2hpZnQoJHBhcmFtYXJyYXksICRmaWVsZGlkKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGZpbHRlciA9PSAnaW4nKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFuZGxlIGEgY2FzZSB3aGVuIGEgZmllbGQgaXMgbm90IHNldCBmb3IgYSBwcm9kdWN0Lg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjb3VudGpvaW5zW10gPSBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGR2YWwgRlZBJyAuICRmaWVsZGlkIC4gJyBPTiBjLml0ZW1faWQgPSBGVkEnIC4gJGZpZWxkaWQgLiAnLml0ZW1faWQgQU5EIEZWQScgLiAkZmllbGRpZCAuICcuZmllbGRkZWZfaWQgPSA/JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkam9pbnNbXSA9IGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZHZhbCBGVkEnIC4gJGZpZWxkaWQgLiAnIE9OIGMuaXRlbV9pZCA9IEZWQScgLiAkZmllbGRpZCAuICcuaXRlbV9pZCBBTkQgRlZBJyAuICRmaWVsZGlkIC4gJy5maWVsZGRlZl9pZCA9ID8nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICR3aGVyZVtdID0gJ0ZWQScgLiAkZmllbGRpZCAuICcudmFsdWUgSU4gKCcgLiAkZGItPnFzdHIoJGZpZWxkdmFsKSAuICcpJzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1hcnJheVtdID0gJGZpZWxkaWQ7DQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRmaWx0ZXIgPT0gJ2luc2V0Jykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhhbmRsZSBhIGNhc2Ugd2hlbiBhIGZpZWxkIGlzIG5vdCBzZXQgZm9yIGEgcHJvZHVjdC4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY291bnRqb2luc1tdID0gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkdmFsIEZWQScgLiAkZmllbGRpZCAuICcgT04gYy5pdGVtX2lkID0gRlZBJyAuICRmaWVsZGlkIC4gJy5pdGVtX2lkIEFORCBGVkEnIC4gJGZpZWxkaWQgLiAnLmZpZWxkZGVmX2lkID0gPyc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGpvaW5zW10gPSBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGR2YWwgRlZBJyAuICRmaWVsZGlkIC4gJyBPTiBjLml0ZW1faWQgPSBGVkEnIC4gJGZpZWxkaWQgLiAnLml0ZW1faWQgQU5EIEZWQScgLiAkZmllbGRpZCAuICcuZmllbGRkZWZfaWQgPSA/JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkd2hlcmVbXSA9ICcgRklORF9JTl9TRVQoJyAuICRkYi0+cXN0cigkZmllbGR2YWwpIC4gJywgIEZWQScgLiAkZmllbGRpZCAuICcudmFsdWUpID4gMCc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXlfdW5zaGlmdCgkcGFyYW1hcnJheSwgJGZpZWxkaWQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkZmlsdGVyID09ICdsZXNzJykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc19udW1lcmljKCRmaWVsZGlkKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsaW1pdCByZXN1bHRzIHRvIGFsbCBvZiB0aGUgaXRlbXMgdGhhdCBoYXZlIHRoaXMgZmllbGQgdmFsdWUuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjb3VudGpvaW5zW10gPSBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGR2YWwgRlZBJyAuICRmaWVsZGlkIC4gJyBPTiBjLml0ZW1faWQgPSBGVkEnIC4gJGZpZWxkaWQgLiAnLml0ZW1faWQgQU5EIEZWQScgLiAkZmllbGRpZCAuICcuZmllbGRkZWZfaWQgPSA/JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGpvaW5zW10gPSBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGR2YWwgRlZBJyAuICRmaWVsZGlkIC4gJyBPTiBjLml0ZW1faWQgPSBGVkEnIC4gJGZpZWxkaWQgLiAnLml0ZW1faWQgQU5EIEZWQScgLiAkZmllbGRpZCAuICcuZmllbGRkZWZfaWQgPSA/JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnRlZBJyAuICRmaWVsZGlkIC4gJy52YWx1ZSA8ID8nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheV91bnNoaWZ0KCRwYXJhbWFycmF5LCAkZmllbGRpZCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnIGMuJyAuICRmaWVsZGlkIC4gJyAgPCA/JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8kcGFyYW1hcnJheVtdID0gJGZpZWxkaWQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhcmFtYXJyYXlbXSA9ICRmaWVsZHZhbDsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGZpbHRlciA9PSAnbGVzc2VxdWFsJykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxpbWl0IHJlc3VsdHMgdG8gYWxsIG9mIHRoZSBpdGVtcyB0aGF0IGhhdmUgdGhpcyBmaWVsZCB2YWx1ZS4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY291bnRqb2luc1tdID0gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkdmFsIEZWQScgLiAkZmllbGRpZCAuICcgT04gYy5pdGVtX2lkID0gRlZBJyAuICRmaWVsZGlkIC4gJy5pdGVtX2lkIEFORCBGVkEnIC4gJGZpZWxkaWQgLiAnLmZpZWxkZGVmX2lkID0gPyc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGpvaW5zW10gPSBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGR2YWwgRlZBJyAuICRmaWVsZGlkIC4gJyBPTiBjLml0ZW1faWQgPSBGVkEnIC4gJGZpZWxkaWQgLiAnLml0ZW1faWQgQU5EIEZWQScgLiAkZmllbGRpZCAuICcuZmllbGRkZWZfaWQgPSA/JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkd2hlcmVbXSA9ICdGVkEnIC4gJGZpZWxkaWQgLiAnLnZhbHVlIDwgPyc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXlfdW5zaGlmdCgkcGFyYW1hcnJheSwgJGZpZWxkaWQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vJHBhcmFtYXJyYXlbXSA9ICRmaWVsZGlkOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbWFycmF5W10gPSAkZmllbGR2YWw7DQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRmaWx0ZXIgPT0gJ2dyZWF0ZXInKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzX251bWVyaWMoJGZpZWxkaWQpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxpbWl0IHJlc3VsdHMgdG8gYWxsIG9mIHRoZSBpdGVtcyB0aGF0IGhhdmUgdGhpcyBmaWVsZCB2YWx1ZS4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvdW50am9pbnNbXSA9IGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZHZhbCBGVkEnIC4gJGZpZWxkaWQgLiAnIE9OIGMuaXRlbV9pZCA9IEZWQScgLiAkZmllbGRpZCAuICcuaXRlbV9pZCBBTkQgRlZBJyAuICRmaWVsZGlkIC4gJy5maWVsZGRlZl9pZCA9ID8nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkam9pbnNbXSA9IGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZHZhbCBGVkEnIC4gJGZpZWxkaWQgLiAnIE9OIGMuaXRlbV9pZCA9IEZWQScgLiAkZmllbGRpZCAuICcuaXRlbV9pZCBBTkQgRlZBJyAuICRmaWVsZGlkIC4gJy5maWVsZGRlZl9pZCA9ID8nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkd2hlcmVbXSA9ICdGVkEnIC4gJGZpZWxkaWQgLiAnLnZhbHVlIDwgPyc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5X3Vuc2hpZnQoJHBhcmFtYXJyYXksICRmaWVsZGlkKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkd2hlcmVbXSA9ICcgYy4nIC4gJGZpZWxkaWQgLiAnICA+ID8nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyRwYXJhbWFycmF5W10gPSAkZmllbGRpZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1hcnJheVtdID0gJGZpZWxkdmFsOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkZmlsdGVyID09ICdncmVhdGVyZXF1YWwnKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGltaXQgcmVzdWx0cyB0byBhbGwgb2YgdGhlIGl0ZW1zIHRoYXQgaGF2ZSB0aGlzIGZpZWxkIHZhbHVlLg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjb3VudGpvaW5zW10gPSBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGR2YWwgRlZBJyAuICRmaWVsZGlkIC4gJyBPTiBjLml0ZW1faWQgPSBGVkEnIC4gJGZpZWxkaWQgLiAnLml0ZW1faWQgQU5EIEZWQScgLiAkZmllbGRpZCAuICcuZmllbGRkZWZfaWQgPSA/JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkam9pbnNbXSA9IGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZHZhbCBGVkEnIC4gJGZpZWxkaWQgLiAnIE9OIGMuaXRlbV9pZCA9IEZWQScgLiAkZmllbGRpZCAuICcuaXRlbV9pZCBBTkQgRlZBJyAuICRmaWVsZGlkIC4gJy5maWVsZGRlZl9pZCA9ID8nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICR3aGVyZVtdID0gJ0ZWQScgLiAkZmllbGRpZCAuICcudmFsdWUgPCA/JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheV91bnNoaWZ0KCRwYXJhbWFycmF5LCAkZmllbGRpZCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8kcGFyYW1hcnJheVtdID0gJGZpZWxkaWQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhcmFtYXJyYXlbXSA9ICRmaWVsZHZhbDsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGZpbHRlciA9PSAnbGlrZScpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsaW1pdCByZXN1bHRzIHRvIGFsbCBvZiB0aGUgaXRlbXMgdGhhdCBoYXZlIHRoaXMgZmllbGQgdmFsdWUuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvdW50am9pbnNbXSA9IGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZHZhbCBGVkEnIC4gJGZpZWxkaWQgLiAnIE9OIGMuaXRlbV9pZCA9IEZWQScgLiAkZmllbGRpZCAuICcuaXRlbV9pZCBBTkQgRlZBJyAuICRmaWVsZGlkIC4gJy5maWVsZGRlZl9pZCA9ID8nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRqb2luc1tdID0gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkdmFsIEZWQScgLiAkZmllbGRpZCAuICcgT04gYy5pdGVtX2lkID0gRlZBJyAuICRmaWVsZGlkIC4gJy5pdGVtX2lkIEFORCBGVkEnIC4gJGZpZWxkaWQgLiAnLmZpZWxkZGVmX2lkID0gPyc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnRlZBJyAuICRmaWVsZGlkIC4gJy52YWx1ZSBMSUtFID8nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5X3Vuc2hpZnQoJHBhcmFtYXJyYXksICRmaWVsZGlkKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1hcnJheVtdID0gJyUnIC4gJGZpZWxkdmFsIC4gJyUnOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkZmlsdGVyID09ICdub3RlcXVhbCcpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsaW1pdCByZXN1bHRzIHRvIGFsbCBvZiB0aGUgaXRlbXMgdGhhdCBoYXZlIHRoaXMgZmllbGQgdmFsdWUuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvdW50am9pbnNbXSA9IGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZHZhbCBGVkEnIC4gJGZpZWxkaWQgLiAnIE9OIGMuaXRlbV9pZCA9IEZWQScgLiAkZmllbGRpZCAuICcuaXRlbV9pZCBBTkQgRlZBJyAuICRmaWVsZGlkIC4gJy5maWVsZGRlZl9pZCA9ID8nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRqb2luc1tdID0gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkdmFsIEZWQScgLiAkZmllbGRpZCAuICcgT04gYy5pdGVtX2lkID0gRlZBJyAuICRmaWVsZGlkIC4gJy5pdGVtX2lkIEFORCBGVkEnIC4gJGZpZWxkaWQgLiAnLmZpZWxkZGVmX2lkID0gPyc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnRlZBJyAuICRmaWVsZGlkIC4gJy52YWx1ZSAhPSA/JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheV91bnNoaWZ0KCRwYXJhbWFycmF5LCAkZmllbGRpZCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8kcGFyYW1hcnJheVtdID0gJGZpZWxkaWQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhcmFtYXJyYXlbXSA9ICRmaWVsZHZhbDsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGZpbHRlciA9PSAnZXF1YWwnKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGltaXQgcmVzdWx0cyB0byBhbGwgb2YgdGhlIGl0ZW1zIHRoYXQgaGF2ZSB0aGlzIGZpZWxkIHZhbHVlLg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5X3Vuc2hpZnQoJGNvdW50am9pbnMsIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZHZhbCBGVkEnIC4gJGZpZWxkaWQgLiAnIE9OIGMuaXRlbV9pZCA9IEZWQScgLiAkZmllbGRpZCAuICcuaXRlbV9pZCBBTkQgRlZBJyAuICRmaWVsZGlkIC4gJy5maWVsZGRlZl9pZCA9ID8nKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheV91bnNoaWZ0KCRqb2lucywgY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkdmFsIEZWQScgLiAkZmllbGRpZCAuICcgT04gYy5pdGVtX2lkID0gRlZBJyAuICRmaWVsZGlkIC4gJy5pdGVtX2lkIEFORCBGVkEnIC4gJGZpZWxkaWQgLiAnLmZpZWxkZGVmX2lkID0gPycpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICR3aGVyZVtdID0gJ0ZWQScgLiAkZmllbGRpZCAuICcudmFsdWUgPSA/JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheV91bnNoaWZ0KCRwYXJhbWFycmF5LCAkZmllbGRpZCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhcmFtYXJyYXlbXSA9ICRmaWVsZHZhbDsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlaWYgKGlzX3N0cmluZygkZmllbGRpZCkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRmaWVsZGlkID0gc3RyX2lyZXBsYWNlKGFycmF5KCdJZCcsICdEYXRlRW5kJywgJ0RhdGUnKSwgYXJyYXkoJ19pZCcsICdfZGF0ZV9lbmQnLCAnX2RhdGUnKSwgJGZpZWxkaWQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRmaWx0ZXIgPT0gJ251bGwnKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnYy4nIC4gJGZpZWxkaWQgLiAnIElTIE5VTEwpJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGZpbHRlciA9PSAnbm90bnVsbCcpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkd2hlcmVbXSA9ICdjLicgLiAkZmllbGRpZCAuICcgSVMgTlVMTCknOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkZmlsdGVyID09ICdpbicpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRzd2l0aCgkZmllbGR2YWwsICcsJykpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmaWVsZHZhbCA9IHN1YnN0cigkZmllbGR2YWwsIDEpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICR3aGVyZVtdID0gJ2MuJyAuICRmaWVsZGlkIC4gJyBJTiAoJyAuICRmaWVsZHZhbCAuICcpJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGZpbHRlciA9PSAnaW5zZXQnKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0c3dpdGgoJGZpZWxkdmFsLCAnLCcpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZmllbGR2YWwgPSBzdWJzdHIoJGZpZWxkdmFsLCAxKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkd2hlcmVbXSA9ICcgRklORF9JTl9TRVQoJyAuICRkYi0+cXN0cigkZmllbGR2YWwpIC4gJywgYy4nIC4gJGZpZWxkaWQgLiAnKSA+IDAnOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkZmlsdGVyID09ICdsaWtlJykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICR3aGVyZVtdID0gJyBjLicgLiAkZmllbGRpZCAuICcgIExJS0UgIiUnIC4gJGZpZWxkaWQgLiAnJSInOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkZmlsdGVyID09ICdsZXNzJykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICR3aGVyZVtdID0gJ2MuJyAuICRmaWVsZGlkIC4gJyA8ID8nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbWFycmF5W10gPSAkZmllbGR2YWw7DQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRmaWx0ZXIgPT0gJ2xlc3NlcXVhbCcpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkd2hlcmVbXSA9ICdjLicgLiAkZmllbGRpZCAuICcgPD0gID8nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbWFycmF5W10gPSAkZmllbGR2YWw7DQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRmaWx0ZXIgPT0gJ2dyZWF0ZXInKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnYy4nIC4gJGZpZWxkaWQgLiAnID4gID8nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbWFycmF5W10gPSAkZmllbGR2YWw7DQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRmaWx0ZXIgPT0gJ2dyZWF0ZXJlcXVhbCcpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkd2hlcmVbXSA9ICdjLicgLiAkZmllbGRpZCAuICcgPj0gPyc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhcmFtYXJyYXlbXSA9ICRmaWVsZHZhbDsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGZpbHRlciA9PSAnZXF1YWwnKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnYy4nIC4gJGZpZWxkaWQgLiAnID0gPyc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhcmFtYXJyYXlbXSA9ICRmaWVsZHZhbDsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJGZpbHRlciA9PSAnbm90ZXF1YWwnKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnYy4nIC4gJGZpZWxkaWQgLiAnICE9ID8nOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbWFycmF5W10gPSAkZmllbGR2YWw7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQoNCg0KLy8gcmVjdXINCiAgICBpZiAoaXNzZXQoJHBhcmFtc1snaXRlbV9kYXRlX2Zyb21fdG8nXSkpIHsNCg0KICAgICAgICBpZiAoJGRhdGVfZnJvbSAmJiAkZGF0ZV90bykgew0KDQogICAgICAgICAgICAkZGF5cyA9IHJvdW5kKCgkZGF0ZV90byAtICRkYXRlX2Zyb20pIC8gKDM2MDAgKiAyNCkpOw0KDQogICAgICAgICAgICBpZiAoJGRheXMgPiA2KSB7DQogICAgICAgICAgICAgICAgJHdoZXJlW10gPSAiKChjLml0ZW1fZGF0ZSAgPiA/IEFORCBjLml0ZW1fZGF0ZSAgPCA/IEFORCAoYy5yZWN1cnNpdmUgPSAnJyBPUiBjLnJlY3Vyc2l2ZSBJUyBOVUxMKSkNCk9SIChjLnJlY3Vyc2l2ZSA9ICdkYWlseScgKSkiOw0KICAgICAgICAgICAgICAgICRwYXJhbWFycmF5W10gPSB0cmltKCRkYi0+REJUaW1lU3RhbXAoJGRhdGVfZnJvbSksICInIik7DQogICAgICAgICAgICAgICAgJHBhcmFtYXJyYXlbXSA9IHRyaW0oJGRiLT5EQlRpbWVTdGFtcCgkZGF0ZV90byksICInIik7DQogICAgICAgICAgICAgICAgJGZpZWxkc1tdID0gImUudmFsdWUiOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAkd2hlcmVbXSA9ICIoKGMuaXRlbV9kYXRlICA+ID8gQU5EIGMuaXRlbV9kYXRlICA8ID8gQU5EIChjLnJlY3Vyc2l2ZSA9ICcnIE9SIGMucmVjdXJzaXZlIElTIE5VTEwpKQ0KICAgICAgICAgICAgICAgICAgT1IgKGMucmVjdXJzaXZlID0gJ2RhaWx5JyAgDQpBTkQgKCgNCg0KSUYoPz4/LA0KSUYoZS52YWx1ZSA+PSA/IE9SIGUgLnZhbHVlIDw9ID8sMSwwKQ0KLElGKGUudmFsdWUgPj0gPyBBTkQgZSAudmFsdWUgPD0gPywxLDApDQopIA0KDQpBTkQgSUYoZS52YWx1ZSA9ID8sIElGKERBVEVfRk9STUFUKGMuaXRlbV9kYXRlLCclSDolaScpID4gPywxLDApLDEpIA0KQU5EIElGKGUudmFsdWUgPSA/LCBJRihEQVRFX0ZPUk1BVChjLml0ZW1fZGF0ZSwnJUg6JWknKSA8ID8sMSwwKSwxKSkNCikgICAgICAgICAgICAgICAgICANCikpIjsNCiAgICAgICAgICAgICAgICAkcGFyYW1hcnJheVtdID0gdHJpbSgkZGItPkRCVGltZVN0YW1wKCRkYXRlX2Zyb20pLCAiJyIpOw0KICAgICAgICAgICAgICAgICRwYXJhbWFycmF5W10gPSB0cmltKCRkYi0+REJUaW1lU3RhbXAoJGRhdGVfdG8pLCAiJyIpOw0KDQogICAgICAgICAgICAgICAgJHBhcmFtYXJyYXlbXSA9IGRhdGUoJ3cnLCAkZGF0ZV9mcm9tKTsNCiAgICAgICAgICAgICAgICAkcGFyYW1hcnJheVtdID0gZGF0ZSgndycsICRkYXRlX3RvKTsNCiAgICAgICAgICAgICAgICAkcGFyYW1hcnJheVtdID0gZGF0ZSgndycsICRkYXRlX2Zyb20pOw0KICAgICAgICAgICAgICAgICRwYXJhbWFycmF5W10gPSBkYXRlKCd3JywgJGRhdGVfdG8pOw0KICAgICAgICAgICAgICAgICRwYXJhbWFycmF5W10gPSBkYXRlKCd3JywgJGRhdGVfZnJvbSk7DQogICAgICAgICAgICAgICAgJHBhcmFtYXJyYXlbXSA9IGRhdGUoJ3cnLCAkZGF0ZV90byk7DQoNCiAgICAgICAgICAgICAgICAkcGFyYW1hcnJheVtdID0gZGF0ZSgndycsICRkYXRlX2Zyb20pOw0KICAgICAgICAgICAgICAgICRwYXJhbWFycmF5W10gPSBkYXRlKCdIOmknLCAkZGF0ZV9mcm9tKTsNCiAgICAgICAgICAgICAgICAkcGFyYW1hcnJheVtdID0gZGF0ZSgndycsICRkYXRlX3RvKTsNCiAgICAgICAgICAgICAgICAkcGFyYW1hcnJheVtdID0gZGF0ZSgnSDppJywgJGRhdGVfdG8pOw0KICAgICAgICAgICAgfQ0KDQoNCiAgICAgICAgICAgICRqb2luc1tdID0gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2l0ZW1fZXh0cmEgZSBPTiBlLml0ZW1faWQgPSBjLml0ZW1faWQnOw0KICAgICAgICAgICAgJGNvdW50am9pbnNbXSA9IGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtX2V4dHJhIGUgT04gZS5pdGVtX2lkID0gYy5pdGVtX2lkJzsNCg0KICAgICAgICAgICAgLy8kZmllbGRzW10gPSAiSUYoYy5yZWN1cnNpdmUgPSAnJyBPUiBjLnJlY3Vyc2l2ZSBJUyBOVUxMLCBkYXRlX2Zvcm1hdChjLml0ZW1fZGF0ZSwgJyVZLSVtLSVkICVIOiVpJyksIENPTkNBVChkYXRlX2Zvcm1hdChOT1coKSArIElOVEVSVkFMIChlLnZhbHVlLT8pIERBWSwgJyVZLSVtLSVkJyksJyAnLGRhdGVfZm9ybWF0KGMuaXRlbV9kYXRlLCclSDolaScpKSkgQVMgZGF0ZV9vdXQsIGUudmFsdWUiOw0KICAgICAgICAgICAgLy9hcnJheV91bnNoaWZ0KCRwYXJhbWFycmF5LCBkYXRlKCd3JywgdGltZSgpKSk7DQogICAgICAgICAgICAkZmllbGRzW10gPSAiZS52YWx1ZSxDT05DQVQoZGF0ZV9mb3JtYXQoPyArIElOVEVSVkFMIElGKGUudmFsdWUgPCA/LCAoNy0/KSArIGUudmFsdWUsIGUudmFsdWUtPykgREFZLCclWS0lbS0lZCcpLCcgJyxkYXRlX2Zvcm1hdChjLml0ZW1fZGF0ZSwnJUg6JWknKSkgYXMgZGF0ZV9vdXQiOw0KDQogICAgICAgICAgICBhcnJheV91bnNoaWZ0KCRwYXJhbWFycmF5LCBkYXRlKCd3JywgJGRhdGVfZnJvbSkpOw0KICAgICAgICAgICAgYXJyYXlfdW5zaGlmdCgkcGFyYW1hcnJheSwgZGF0ZSgndycsICRkYXRlX2Zyb20pKTsNCiAgICAgICAgICAgIGFycmF5X3Vuc2hpZnQoJHBhcmFtYXJyYXksIGRhdGUoJ3cnLCAkZGF0ZV9mcm9tKSk7DQogICAgICAgICAgICBhcnJheV91bnNoaWZ0KCRwYXJhbWFycmF5LCB0cmltKCRkYi0+REJUaW1lU3RhbXAoJGRhdGVfZnJvbSksICInIikpOw0KDQogICAgICAgICAgICAvKiAkd2hlcmUyW10gPSAnZGF0ZV9vdXQgID4gPyBBTkQgZGF0ZV9vdXQgPCA/JzsNCiAgICAgICAgICAgICAgJHBhcmFtYXJyYXkyW10gPSB0cmltKCRkYi0+REJUaW1lU3RhbXAoJGRhdGVfZnJvbSksICInIik7DQogICAgICAgICAgICAgICRwYXJhbWFycmF5MltdID0gdHJpbSgkZGItPkRCVGltZVN0YW1wKCRkYXRlX3RvKSwgIiciKTsgKi8NCg0KICAgICAgICAgICAgJHNvcnRieSA9ICdkYXRlX291dCc7DQogICAgICAgIH0NCiAgICAgICAgJGdyb3VwYnkgPSAnIEdST1VQIEJZIGMuYWN0aXZlICc7DQogICAgfSBlbHNlIHsNCg0KICAgICAgICBpZiAoJGRhdGVfZnJvbSkgew0KICAgICAgICAgICAgJHdoZXJlW10gPSAiIGMuaXRlbV9kYXRlICA+ID8iOw0KICAgICAgICAgICAgJHBhcmFtYXJyYXlbXSA9IHRyaW0oJGRiLT5EQlRpbWVTdGFtcCgkZGF0ZV9mcm9tKSwgIiciKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmICgkZGF0ZV90bykgew0KICAgICAgICAgICAgJHdoZXJlW10gPSAiIGMuaXRlbV9kYXRlICA8ID8iOw0KICAgICAgICAgICAgJHBhcmFtYXJyYXlbXSA9IHRyaW0oJGRiLT5EQlRpbWVTdGFtcCgkZGF0ZV90byksICInIik7DQogICAgICAgIH0NCiAgICB9DQoNCg0KICAgIGlmIChpc1NldCgkcGFyYW1zWyJkYXRlX3N0YXJ0Il0pKSB7DQoNCiAgICAgICAgJHdoZXJlW10gPSAiIGMuaXRlbV9kYXRlIDwgTk9XKCkiOw0KICAgIH0NCg0KICAgIGlmIChpc1NldCgkcGFyYW1zWyJkYXRlX2VuZCJdKSkgew0KICAgICAgICAkd2hlcmVbXSA9ICIgYy5pdGVtX2RhdGVfZW5kID4gTk9XKCkiOw0KICAgIH0NCg0KDQogICAgJHF1ZXJ5ID0gc3RyX3JlcGxhY2UoJzxGSUVMRFM+JywgaW1wbG9kZSgnLCcsICRmaWVsZHMpLCAkcXVlcnkpOw0KICAgICRxdWVyeTIgPSBzdHJfcmVwbGFjZSgnPEZJRUxEUz4nLCBpbXBsb2RlKCcsJywgJGZpZWxkcyksICRxdWVyeTIpOw0KDQogICAgaWYgKGNvdW50KCRqb2lucykpIHsNCiAgICAgICAgJHF1ZXJ5IC49ICcgTEVGVCBKT0lOICcgLiBpbXBsb2RlKCcgTEVGVCBKT0lOICcsICRqb2lucyk7DQogICAgfQ0KICAgIGlmIChjb3VudCgkY291bnRqb2lucykpIHsNCiAgICAgICAgJHF1ZXJ5MiAuPSAnIExFRlQgSk9JTiAnIC4gaW1wbG9kZSgnIExFRlQgSk9JTiAnLCAkY291bnRqb2lucyk7DQogICAgfQ0KICAgICRxdWVyeSA9ICRxdWVyeSAuICcgV0hFUkUgJyAuIGltcGxvZGUoJyBBTkQgJywgJHdoZXJlKTsNCiAgICAkcXVlcnkyID0gJHF1ZXJ5MiAuICcgV0hFUkUgJyAuIGltcGxvZGUoJyBBTkQgJywgJHdoZXJlKTsNCg0KICAgIGlmICghZW1wdHkoJHdoZXJlMikpIHsNCiAgICAgICAgJHF1ZXJ5ID0gJyBTRUxFQ1QgKiBGUk9NICgnIC4gJHF1ZXJ5IC4gJykgdCc7DQogICAgICAgICRxdWVyeTIgPSAnIFNFTEVDVCAqIEZST00gKCcgLiAkcXVlcnkgLiAnKSB0JzsNCiAgICAgICAgJHF1ZXJ5ID0gJHF1ZXJ5IC4gJyBXSEVSRSAnIC4gaW1wbG9kZSgnIEFORCAnLCAkd2hlcmUyKTsNCiAgICAgICAgJHF1ZXJ5MiA9ICRxdWVyeTIgLiAnIFdIRVJFICcgLiBpbXBsb2RlKCcgQU5EICcsICR3aGVyZTIpOw0KICAgIH0NCg0KICAgICRwYXJhbWFycmF5ID0gYXJyYXlfbWVyZ2UoJHBhcmFtYXJyYXksICRwYXJhbWFycmF5Mik7DQoNCg0KDQoNCiAgICBpZiAoJHNvcnR0eXBlID09ICcnKSB7DQogICAgICAgICRxdWVyeSAuPSAiIE9SREVSIEJZICIgLiAkc29ydGJ5IC4gIiAiIC4gJHNvcnRvcmRlcjsNCiAgICB9IGVsc2Ugew0KICAgICAgICAkcXVlcnkgLj0gJyBPUkRFUiBCWSBDQVNUKCcgLiAkc29ydGJ5IC4gJyBBUyAnIC4gJHNvcnR0eXBlIC4gJykgJyAuICRzb3J0b3JkZXI7DQogICAgfQ0KDQoNCi8vIEV4ZWN1dGUgdGhlIFF1ZXJpZXMNCiAgICAkdG1wX2lkID0gJ2MnIC4gbWQ1KCRtb2QtPkdldE5hbWUoKSAuICRxdWVyeTIgLiBzZXJpYWxpemUoJHBhcmFtcykgLiBzZXJpYWxpemUoJHBhcmFtYXJyYXkpIC4gJHJldHVybmlkKTsNCiAgICAkY291bnQgPSBjbXNfdXRpbHM6OmdldF9hcHBfZGF0YSgkdG1wX2lkKTsNCiAgICBpZiAoISRjb3VudCkgew0KICAgICAgICBpZiAoJGdyb3VwYnkpDQogICAgICAgICAgICAkcXVlcnkyIC49ICRncm91cGJ5Ow0KICAgICAgICAkY291bnQgPSAkZGItPkdldE9uZSgkcXVlcnkyIC4gJyBHUk9VUCBCWSBjYS5jcmVhdGVfZGF0ZScsICRwYXJhbWFycmF5KTsNCiAgICAgICAgLy9lY2hvICRkYi0+c3FsOw0KICAgICAgICAvLyByZXR1cm4gZmlyc3Qgcm93DQogICAgICAgIGlmIChpc1NldCgkcGFyYW1zWyJvbmVjb3VudCJdKSkgew0KICAgICAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCRwYXJhbXNbIm9uZWNvdW50Il0sICRjb3VudCk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCg0KICAgICAgICBjbXNfdXRpbHM6OnNldF9hcHBfZGF0YSgkdG1wX2lkLCAkY291bnQpOw0KICAgIH0NCg0KLy8kdG1wX2lkID0gbWQ1KCRtb2QtPkdldE5hbWUoKSAuIG1kNSgkcXVlcnkpIC4gaW1wbG9kZSgnXycsICRwYXJhbWFycmF5KSAuIGltcGxvZGUoJ18nLCAkcGFyYW1zKSAuICRsaW1pdCAuICRzdGFydGVsZW1lbnQgLiAncmVzdWx0cycpOw0KICAgICR0bXBfaWQgPSAnbScgLiBtZDUoJG1vZC0+R2V0TmFtZSgpIC4gJHF1ZXJ5IC4gc2VyaWFsaXplKCRwYXJhbXMpIC4gc2VyaWFsaXplKCRwYXJhbWFycmF5KSAuICRyZXR1cm5pZCk7DQogICAgJGRicmVzdWx0ID0gY21zX3V0aWxzOjpnZXRfYXBwX2RhdGEoJHRtcF9pZCk7DQogICAgaWYgKCEkZGJyZXN1bHQpIHsNCiAgICAgICAgJHBhcmFtYXJyYXkgPSBhcnJheV9tZXJnZSgkcGFyYW1hcnJheXRtcCwgJHBhcmFtYXJyYXkpOw0KICAgICAgICAkcXVlcnkgLj0gJyBMSU1JVCAnIC4gJHN0YXJ0ZWxlbWVudCAuICcsJyAuICRsaW1pdDsNCiAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5HZXRBbGwoJHF1ZXJ5LCAkcGFyYW1hcnJheSk7DQogICAgICAgIC8vZWNobyAkZGItPnNxbDsNCiAgICAgICAgY21zX3V0aWxzOjpzZXRfYXBwX2RhdGEoJHRtcF9pZCwgJGRicmVzdWx0KTsNCiAgICB9DQp9DQoNCi8vIERldGVybWluZSB0aGUgbnVtYmVyIG9mIHBhZ2VzDQokbnBhZ2VzID0gaW50dmFsKCRjb3VudCAvICRsaW1pdCk7DQppZiAoJGNvdW50ICUgJGxpbWl0ICE9IDApDQogICAgJG5wYWdlcysrOw0KDQokY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQoNCmlmICgkZGJyZXN1bHQpIHsNCiAgICBmb3JlYWNoICgkZGJyZXN1bHQgYXMgJHJvdykgew0KICAgICAgICAkb25lcm93ID0gY2dlX2FycmF5Ojp0b19vYmplY3QoJHJvdyk7DQoNCiAgICAgICAgaWYgKGVtcHR5KCRyb3dbInVybCJdKSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgJHByZXR0eXVybCA9ICRyb3dbInVybCJdOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgJHByZXR0eXVybCA9IGdlbmVyYXRvcl90b29sczo6Z2V0X3ByZXR0eV91cmwoJHRoaXMsIGdlbmVyYXRvcl90b29sczo6Z2V0X3ByZWZpeCgkbW9kKSwgJHJvd1snaXRlbV9pZCddLCAkcm93WydhbGlhcyddLCAoJGRlZmF1bHRfZGV0YWlscGFnZSA9PSAtMSAmJiAhaXNTZXQoJHBhcmFtc1siZGV0YWlscGFnZSJdKSA/ICRkZXRhaWxwYWdlIDogKGlzU2V0KCRwYXJhbXNbImRldGFpbHBhZ2UiXSkgPyAkZGV0YWlscGFnZSA6ICcnICkpLCAkZGV0YWlsdGVtcGxhdGUpOw0KICAgICAgICB9DQoNCiAgICAgICAgJG9uZXJvdy0+dXJsID0gJG9uZXJvdy0+bGluayA9ICRtb2QtPkNyZWF0ZUZyb250ZW5kTGluaygkaWQsICRyZXR1cm5pZCwgJ2RldGFpbCcsICcnLCBhcnJheSgnaXRlbV9pZCcgPT4gJHJvd1snaXRlbV9pZCddLCAnZGV0YWlsdGVtcGxhdGUnID0+ICRkZXRhaWx0ZW1wbGF0ZSksICcnLCB0cnVlLCAkaW5saW5lLCAnJywgZmFsc2UsICRwcmV0dHl1cmwpOw0KICAgICAgICAkb25lcm93LT5maWxlX2xvY2F0aW9uID0gZ2VuZXJhdG9yX3Rvb2xzOjpmaWxlX2xvY2F0aW9uKCR0aGlzLCAkcm93KTsNCg0KICAgICAgICAkaXRlbV9nYWxsZXJ5ID0gbmV3IGdlbmVyYXRvcl9pdGVtX2dhbGxlcnkoJG1vZCwgJHJvd1siaXRlbV9pZCJdKTsNCiAgICAgICAgJGltYWdlcyA9ICRpdGVtX2dhbGxlcnktPmxvYWRfZmlsZXMoKTsNCiAgICAgICAgJG9uZXJvdy0+aW1hZ2VzID0gJGltYWdlczsNCg0KDQogICAgICAgIC8vIGFkZCBjdXN0b20gZmllbGRzDQogICAgICAgICRmaWVsZGRlZnMgPSBnZW5lcmF0b3JfdG9vbHM6OmdldF9jb3N0dW1fZmllbGRfZGVmKCRtb2QsICRyb3dbJ2l0ZW1faWQnXSwgdHJ1ZSk7DQogICAgICAgICRmaWVsZHMgPSBhcnJheSgpOw0KICAgICAgICBmb3JlYWNoICgkZmllbGRkZWZzIGFzICRvbmVkZWYpIHsNCiAgICAgICAgICAgIGlmIChlbXB0eSgkb25lZGVmWyJhbGlhcyJdKSA9PSBmYWxzZSAmJiBpbl9hcnJheSgkb25lZGVmWyJhbGlhcyJdLCBnZW5lcmF0b3JfdG9vbHM6OiRmaWVsZHNfYmxvY2tsaXN0KSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICRvbmVyb3ctPiRvbmVkZWZbImFsaWFzIl0gPSAkb25lZGVmWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgICRvbmVyb3ctPmZpZWxkcyA9ICRmaWVsZGRlZnM7DQogICAgICAgICRlbnRyeWFycmF5W10gPSAkb25lcm93Ow0KICAgICAgICAkaXRlbXNhcnJheVtdID0gJHJvdzsNCiAgICB9DQp9DQoNCg0KDQovLyByZXR1cm4gZmlyc3Qgcm93DQppZiAoaXNTZXQoJHBhcmFtc1sib25lcm93Il0pKSB7DQogICAgJHNtYXJ0eS0+YXNzaWduKCRwYXJhbXNbIm9uZXJvdyJdLCAoaXNzZXQoJGVudHJ5YXJyYXlbMF0pID8gJGVudHJ5YXJyYXlbMF0gOiAnJykpOw0KICAgIHJldHVybjsNCn0NCg0KLy9yZXR1cm4gIGFsbCByZXN1bHRzDQppZiAoaXNTZXQoJHBhcmFtc1siYWxscm93Il0pKSB7DQogICAgJHNtYXJ0eS0+YXNzaWduKCRwYXJhbXNbImFsbHJvdyJdLCAkZW50cnlhcnJheSk7DQogICAgcmV0dXJuOw0KfQ0KDQovLyByZXR1cm4gaXRlbXMgZm9yIG1vZHVsZQ0KaWYgKGlzU2V0KCRwYXJhbXNbIml0ZW1zIl0pICYmICRwYXJhbXNbIml0ZW1zIl0gPT0gdHJ1ZSkgew0KICAgIGdlbmVyYXRvcl90b29sczo6JGl0ZW1zID0gJGVudHJ5YXJyYXk7DQogICAgcmV0dXJuOw0KfQ0KDQovLw0KLy8gR2l2ZSBldmVyeXRoaW5nIHRvIHNtYXJ0eQ0KLy8NCg0KZm9yZWFjaCAoJHBhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSkgew0KICAgIGlmICgka2V5ID09ICdtYWN0JyB8fCAka2V5ID09ICdhY3Rpb24nKQ0KICAgICAgICBjb250aW51ZTsNCiAgICAkc21hcnR5LT5hc3NpZ24oJ3BhcmFtXycgLiAka2V5LCAkdmFsdWUpOw0KfQ0KDQokc21hcnR5LT5hc3NpZ24oJ21vZHVsZXVybCcsICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJ3Rlc3QnLCAkcGFyYW1zLCAnJywgdHJ1ZSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdpdGVtcycsICRlbnRyeWFycmF5KTsNCiRzbWFydHktPmFzc2lnbigndG90YWxjb3VudCcsICRjb3VudCk7DQokc21hcnR5LT5hc3NpZ24oJ2l0ZW1jb3VudCcsIGNvdW50KCRlbnRyeWFycmF5KSk7DQokc21hcnR5LT5hc3NpZ24oJ2l0ZW1vbnBhZ2UnLCAoKCRwYWdlIC0gMSkgKiAkbGltaXQpICsgY291bnQoJGVudHJ5YXJyYXkpKTsNCiRzbWFydHktPmFzc2lnbigncGFnZXRleHQnLCBnZW5lcmF0b3IoKS0+TGFuZygncGFnZScpKTsNCiRzbWFydHktPmFzc2lnbignb2Z0ZXh0JywgZ2VuZXJhdG9yKCktPkxhbmcoJ29mJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdwYWdlY291bnQnLCAkbnBhZ2VzKTsNCiRzbWFydHktPmFzc2lnbignY3VycGFnZScsICRwYWdlKTsNCiRzbWFydHktPmFzc2lnbigncGFnZW51bWJlcicsICRwYWdlKTsNCmlmICgkcGFnZSA9PSAxKSB7DQogICAgJHNtYXJ0eS0+YXNzaWduKCdmaXJzdGxpbmsnLCBnZW5lcmF0b3IoKS0+TGFuZygnZmlyc3RwYWdlJykpOw0KICAgICRzbWFydHktPmFzc2lnbigncHJldmxpbmsnLCBnZW5lcmF0b3IoKS0+TGFuZygncHJldnBhZ2UnKSk7DQp9IGVsc2Ugew0KICAgICRwYXJtcyA9ICRwYXJhbXM7DQogICAgJHBhcm1zWydwYWdlJ10gPSAxOw0KICAgICRzbWFydHktPmFzc2lnbignZmlyc3RsaW5rJywgJG1vZC0+Q3JlYXRlTGluaygkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCBnZW5lcmF0b3IoKS0+TGFuZygnZmlyc3RwYWdlJyksICRwYXJtcywgJycsIGZhbHNlLCAkaW5saW5lKSk7DQogICAgJHNtYXJ0eS0+YXNzaWduKCdmaXJzdHVybCcsICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgZ2VuZXJhdG9yKCktPkxhbmcoJ2ZpcnN0cGFnZScpLCAkcGFybXMsICcnLCB0cnVlLCAkaW5saW5lKSk7DQogICAgJHBhcm1zWydwYWdlJ10gPSAkcGFnZSAtIDE7DQogICAgJHNtYXJ0eS0+YXNzaWduKCdwcmV2bGluaycsICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgZ2VuZXJhdG9yKCktPkxhbmcoJ3ByZXZwYWdlJyksICRwYXJtcywgJycsIGZhbHNlLCAkaW5saW5lKSk7DQogICAgJHNtYXJ0eS0+YXNzaWduKCdwcmV2dXJsJywgJG1vZC0+Q3JlYXRlTGluaygkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCBnZW5lcmF0b3IoKS0+TGFuZygncHJldnBhZ2UnKSwgJHBhcm1zLCAnJywgdHJ1ZSwgJGlubGluZSkpOw0KfQ0KaWYgKCRwYWdlID09ICRucGFnZXMpIHsNCiAgICAkc21hcnR5LT5hc3NpZ24oJ2xhc3RsaW5rJywgZ2VuZXJhdG9yKCktPkxhbmcoJ2xhc3RwYWdlJykpOw0KICAgICRzbWFydHktPmFzc2lnbignbmV4dGxpbmsnLCBnZW5lcmF0b3IoKS0+TGFuZygnbmV4dHBhZ2UnKSk7DQp9IGVsc2Ugew0KICAgICRwYXJtcyA9ICRwYXJhbXM7DQogICAgJHBhcm1zWydwYWdlJ10gPSAkbnBhZ2VzOw0KICAgICRzbWFydHktPmFzc2lnbignbGFzdGxpbmsnLCAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsIGdlbmVyYXRvcigpLT5MYW5nKCdsYXN0cGFnZScpLCAkcGFybXMsICcnLCBmYWxzZSwgJGlubGluZSkpOw0KICAgICRzbWFydHktPmFzc2lnbignbGFzdHVybCcsICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgZ2VuZXJhdG9yKCktPkxhbmcoJ2xhc3RwYWdlJyksICRwYXJtcywgJycsIHRydWUsICRpbmxpbmUpKTsNCiAgICAkcGFybXNbJ3BhZ2UnXSA9ICRwYWdlICsgMTsNCiAgICAkc21hcnR5LT5hc3NpZ24oJ25leHRsaW5rJywgJG1vZC0+Q3JlYXRlTGluaygkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCBnZW5lcmF0b3IoKS0+TGFuZygnbmV4dHBhZ2UnKSwgJHBhcm1zLCAnJywgZmFsc2UsICRpbmxpbmUpKTsNCiAgICAkc21hcnR5LT5hc3NpZ24oJ25leHR1cmwnLCAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsIGdlbmVyYXRvcigpLT5MYW5nKCduZXh0cGFnZScpLCAkcGFybXMsICcnLCB0cnVlLCAkaW5saW5lKSk7DQp9DQoNCi8vDQovLyBQcm9jZXNzIHRoZSB0ZW1wbGF0ZQ0KLy8NCg0KZWNobyAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHRoZXRlbXBsYXRlKTsNCg0KIw0KIyBFT0YNCiMNCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYgKCEkbW9kLT5DaGVja1Blcm1pc3Npb24oJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9pdGVtJykpDQogICAgcmV0dXJuOw0KLy8gdG9wIG5hdg0KaWYgKCRtb2QtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpKSB7DQoNCiAgICBlY2hvICc8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsgZmxvYXQ6cmlnaHQ7IHdpZHRoOiA0MCU7Ij4nOw0KICAgIGVjaG8gJG1vZC0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwgJ2FkbWluX2ZpZWxkcycsICRyZXR1cm5pZCwgZ2VuZXJhdG9yKCktPkxhbmcoJ2ZpZWxkZGVmcycpLCAnaWNvbnMvdG9wZmlsZXMvc2l0ZWFkbWluLmdpZicsIGFycmF5KCksICcnLCAnJywgZmFsc2UpOw0KICAgIGVjaG8gJG1vZC0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwgJ2FkbWluX3RlbXBsYXRlcycsICRyZXR1cm5pZCwgZ2VuZXJhdG9yKCktPkxhbmcoJ3RlbXBsYXRlcycpLCAnaWNvbnMvdG9wZmlsZXMvdGVtcGxhdGUuZ2lmJywgYXJyYXkoKSwgJycsICcnLCBmYWxzZSk7DQogICAgZWNobyAnPC9kaXY+JzsNCn0NCg0KJG1vZHVsZSA9IGdlbmVyYXRvcl9vcHRzOjpnZXRfbW9kdWxlKCRtb2QtPkdldE5hbWUoKSk7DQokYXR0YWNoID0gZ2VuZXJhdG9yX29wdHM6OmdldF9hdHRhY2hfbW9kdWxlcygkbW9kdWxlWyJhdHRhY2giXSk7DQppZiAoJGF0dGFjaCkgew0KICAgICRhdHRhY2htb2R1bGVzID0gZXhwbG9kZSgnLCcsICRhdHRhY2gpOw0KICAgIGVjaG8gJzxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyIgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyBmbG9hdDpsZWZ0OyB3aWR0aDogNTAlOyI+JzsNCiAgICBmb3JlYWNoICgkYXR0YWNobW9kdWxlcyBhcyAkYXR0YWNobW9kdWxlKSB7DQogICAgICAgICRtb2R1bGUgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUodHJpbSgkYXR0YWNobW9kdWxlKSk7DQogICAgICAgIGlmICgkbW9kdWxlKSB7DQogICAgICAgICAgICBlY2hvICRtb2R1bGUtPkNyZWF0ZUltYWdlTGluaygkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsICRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ2ZyaWVuZGx5bmFtZScpLCAnaWNvbnMvdG9wZmlsZXMvc2hvcnRjdXQuZ2lmJywgYXJyYXkoKSwgJycsICcnLCBmYWxzZSk7DQogICAgICAgIH0NCiAgICB9DQogICAgZWNobyAnPC9kaXY+JzsNCn0NCg0KDQplY2hvICc8YnIgc3R5bGU9ImNsZWFyOmJvdGgiIC8+JzsNCg0KDQppZiAoaXNzZXQoJHBhcmFtc1snbWVzc2FnZSddKSkgew0KICAgIGVjaG8gJG1vZC0+U2hvd01lc3NhZ2UoZ2VuZXJhdG9yKCktPkxhbmcoJHBhcmFtc1snbWVzc2FnZSddKSk7DQp9DQoNCmlmIChpc3NldCgkcGFyYW1zWydlcnJvcnMnXSkgJiYgY291bnQoJHBhcmFtc1snZXJyb3JzJ10pKSB7DQogICAgZWNobyAkbW9kLT5TaG93RXJyb3JzKCRwYXJhbXNbJ2Vycm9ycyddKTsNCn0NCg0KDQplY2hvICRtb2QtPlN0YXJ0VGFiSGVhZGVycygpOw0KZWNobyAkbW9kLT5TZXRUYWJIZWFkZXIoJ2l0ZW10YWInLCAkbW9kLT5HZXRQcmVmZXJlbmNlKCdpdGVtX3BsdXJhbCcsICcnKSk7DQoNCmlmICgkbW9kLT5DaGVja1Blcm1pc3Npb24oJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9jYXRlZ29yaWVzJykpIHsNCiAgICBlY2hvICRtb2QtPlNldFRhYkhlYWRlcignY2F0ZWdvcnl0YWInLCBnZW5lcmF0b3IoKS0+TGFuZygnY2F0ZWdvcmllcycpKTsNCn0NCg0KaWYgKCRtb2QtPkNoZWNrUGVybWlzc2lvbigkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X29wdGlvbicpKSB7DQogICAgZWNobyAkbW9kLT5TZXRUYWJIZWFkZXIoJ29wdGlvbnRhYicsIGdlbmVyYXRvcigpLT5MYW5nKCdvcHRpb25zJykpOw0KfQ0KDQplY2hvICRtb2QtPkVuZFRhYkhlYWRlcnMoKTsNCmVjaG8gJG1vZC0+U3RhcnRUYWJDb250ZW50KCk7DQoNCmVjaG8gJG1vZC0+U3RhcnRUYWIoJ2l0ZW10YWInLCAkcGFyYW1zKTsNCmluY2x1ZGUgZGlybmFtZShfX0ZJTEVfXykgLiAnL2Z1bmN0aW9uLmFkbWluX2l0ZW10YWIucGhwJzsNCmVjaG8gJG1vZC0+RW5kVGFiKCk7DQoNCmlmICgkbW9kLT5DaGVja1Blcm1pc3Npb24oJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9jYXRlZ29yaWVzJykpIHsNCiAgICBlY2hvICRtb2QtPlN0YXJ0VGFiKCdjYXRlZ29yeXRhYicsICRwYXJhbXMpOw0KICAgIGluY2x1ZGUgZGlybmFtZShfX0ZJTEVfXykgLiAnL2Z1bmN0aW9uLmFkbWluX2NhdGVnb3J5dGFiLnBocCc7DQogICAgZWNobyAkbW9kLT5FbmRUYWIoKTsNCn0NCg0KaWYgKCRtb2QtPkNoZWNrUGVybWlzc2lvbigkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X29wdGlvbicpKSB7DQoNCiAgICBlY2hvICRtb2QtPlN0YXJ0VGFiKCdvcHRpb250YWInLCAkcGFyYW1zKTsNCiAgICBpbmNsdWRlIGRpcm5hbWUoX19GSUxFX18pIC4gJy9mdW5jdGlvbi5hZG1pbl9vcHRpb250YWIucGhwJzsNCiAgICBlY2hvICRtb2QtPkVuZFRhYigpOw0KfQ0KDQplY2hvICRtb2QtPkVuZFRhYkNvbnRlbnQoKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/action.detail.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KJGRiID0gY21zbXMoKS0+R2V0RGIoKTsNCiRpdGVtID0gJyc7DQokaW5saW5lID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnZGlzcGxheV9pbmxpbmUnLCBmYWxzZSk7DQoNCiRkZWZhdWx0X2RldGFpbHBhZ2UgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdpdGVtX2RldGFpbF9yZXR1cm5pZCcsICcnKTsNCiRkZXRhaWxwYWdlID0gZXh0ZW5kZWRfdG9vbHNfb3B0czo6ZGV0YWlscGFnZSgkcGFyYW1zLCAkZGVmYXVsdF9kZXRhaWxwYWdlKTsNCmlmICgkZGV0YWlscGFnZSA9PSAkZGVmYXVsdF9kZXRhaWxwYWdlKQ0KICAgIHVuc2V0KCRwYXJhbXNbImRldGFpbHBhZ2UiXSk7DQoNCg0KLy8gdGVtcGxhdGUNCiRkZXRhaWx0ZW1wbGF0ZSA9ICR0aGV0ZW1wbGF0ZSA9ICdkZXRhaWxfdGVtcGxhdGUnIC4gJG1vZC0+R2V0UHJlZmVyZW5jZSgnY3VycmVudF9kZXRhaWxfdGVtcGxhdGUnKTsNCmlmIChpc3NldCgkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddKSAmJiAhZW1wdHkoJHBhcmFtc1snZGV0YWlsdGVtcGxhdGUnXSkpIHsNCiAgICAkZGV0YWlsdGVtcGxhdGUgPSAkdGhldGVtcGxhdGUgPSAnZGV0YWlsX3RlbXBsYXRlJyAuICRwYXJhbXNbJ2RldGFpbHRlbXBsYXRlJ107DQp9DQoNCmlmIChpc3NldCgkcGFyYW1zWydpbmxpbmUnXSkpIHsNCiAgICAkaW5saW5lID0gJHBhcmFtc1snaW5saW5lJ107DQp9DQoNCmlmICgkaWQgPT0gJ19wcmV2aWV3XycgJiYgaXNzZXQoJF9TRVNTSU9OWydpdGVtX3ByZXZpZXcnXSkgJiYgaXNzZXQoJHBhcmFtc1sncHJldmlldyddKSkgew0KICAgIC8vIHNlZSBpZiBvdXIgZGF0YSBtYXRjaGVzLg0KICAgIGlmIChtZDUoc2VyaWFsaXplKCRfU0VTU0lPTlsnaXRlbV9wcmV2aWV3J10pKSA9PSAkcGFyYW1zWydwcmV2aWV3J10pIHsNCiAgICAgICAgJGZuYW1lID0gVE1QX0NBQ0hFX0xPQ0FUSU9OIC4gJy8nIC4gJF9TRVNTSU9OWydpdGVtX3ByZXZpZXcnXVsnZm5hbWUnXTsNCiAgICAgICAgaWYgKGZpbGVfZXhpc3RzKCRmbmFtZSkgJiYgKG1kNV9maWxlKCRmbmFtZSkgPT0gJF9TRVNTSU9OWydpdGVtX3ByZXZpZXcnXVsnY2hlY2tzdW0nXSkpIHsNCiAgICAgICAgICAgICRyb3cgPSAkcGFyYW1zID0gdW5zZXJpYWxpemUoZmlsZV9nZXRfY29udGVudHMoJGZuYW1lKSk7DQogICAgICAgICAgICAkdG1wX2lkID0gJ2QnIC4gbWQ1KCRtb2QtPkdldE5hbWUoKSAuIHNlcmlhbGl6ZSgkcGFyYW1zIC4gJHJvdykpOw0KICAgICAgICAgICAgJGl0ZW1zID0gZ2VuZXJhdG9yX29wdHM6OmZpbGxfaXRlbV9mcm9tX2Zvcm1wYXJhbXMoJG1vZCwgJHJvdywgJHBhcmFtcyk7DQogICAgICAgICAgICAkdG1wX2lkMiA9ICR0bXBfaWQgLiAnZCcgLiAkcm93WydpdGVtX2lkJ107DQogICAgICAgICAgICBjbXNfdXRpbHM6OnNldF9hcHBfZGF0YSgkdG1wX2lkMiwgZ2VuZXJhdG9yX29wdHM6OiRmaWVsZGRlZnMpOw0KICAgICAgICB9DQogICAgfQ0KfSBlbHNlIHsNCg0KLy8gU0VMRUNUIEZST00NCiAgICAkcXVlcnkgPSAnU0VMRUNUIEEuKiwgQi5jYXRlZ29yeV9pZCwgQi5jYXRlZ29yeV9uYW1lLCBCLmNhdGVnb3J5X2FsaWFzIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtIEEnOw0KLy8gTEVGVCBKT0lODQogICAgJHF1ZXJ5IC49ICcgTEVGVCBKT0lOICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfY2F0ZWdvcmllcyBCIE9OIEEuY2F0ZWdvcnlfaWQgPSBCLmNhdGVnb3J5X2lkJzsNCi8vIFdIRVJFDQogICAgJHF1ZXJ5IC49ICcgV0hFUkUgQS5hY3RpdmUgPSAxIEFORCBpdGVtX2lkID0gPyBMSU1JVCAxJzsNCiAgICAkdG1wX2lkID0gJ2QnIC4gbWQ1KCRtb2QtPkdldE5hbWUoKSAuICRxdWVyeSAuIHNlcmlhbGl6ZSgkcGFyYW1zKSAuICRyZXR1cm5pZCk7DQogICAgJHJvdyA9IGNtc191dGlsczo6Z2V0X2FwcF9kYXRhKCR0bXBfaWQpOw0KfQ0KDQppZiAoISRyb3cpIHsNCiAgICAkcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSgkcGFyYW1zWydpdGVtX2lkJ10pKTsNCiAgICBjbXNfdXRpbHM6OnNldF9hcHBfZGF0YSgkdG1wX2lkLCAkcm93KTsNCn0NCmlmICghJHJvdykgew0KICAgIGlmIChpc1NldCgkcGFyYW1zWyJvbmVyb3ciXSkpIHsNCiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCRwYXJhbXNbIm9uZXJvdyJdLCAnJyk7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCg0KJGl0ZW0gPSBjZ2VfYXJyYXk6OnRvX29iamVjdCgkcm93KTsNCiRpdGVtLT5maWxlX2xvY2F0aW9uID0gZ2VuZXJhdG9yX3Rvb2xzOjpmaWxlX2xvY2F0aW9uKCRtb2QsICRyb3cpOw0KDQovLyBpdGVtIGZpZWxkcw0KJGZpZWxkZGVmcyA9IGdlbmVyYXRvcl90b29sczo6Z2V0X2Nvc3R1bV9maWVsZF9kZWYoJG1vZCwgJHJvd1snaXRlbV9pZCddLCB0cnVlKTsNCiRmaWVsZHMgPSBhcnJheSgpOw0KZm9yZWFjaCAoJGZpZWxkZGVmcyBhcyAka2V5ID0+ICRvbmVkZWYpIHsNCiAgICBpZiAoZW1wdHkoJG9uZWRlZlsiYWxpYXMiXSkgPT0gZmFsc2UgJiYgaW5fYXJyYXkoJG9uZWRlZlsiYWxpYXMiXSwgZ2VuZXJhdG9yX3Rvb2xzOjokZmllbGRzX2Jsb2NrbGlzdCkgPT0gZmFsc2UpIHsNCiAgICAgICAgJGl0ZW0tPiRvbmVkZWZbImFsaWFzIl0gPSAkb25lZGVmWyJ2YWx1ZSJdOw0KICAgIH0NCn0NCiRpdGVtLT5maWVsZHMgPSAkZmllbGRkZWZzOw0KJGl0ZW0tPmZpZWxkZGVmcyA9ICRmaWVsZGRlZnM7DQoNCi8vIGNhdGVnb3J5IGZpZWxkcw0KJGZpZWxkZGVmcyA9IGdlbmVyYXRvcl90b29sczo6Z2V0X2Nvc3R1bV9maWVsZF9kZWYoJG1vZCwgJHJvd1snaXRlbV9pZCddLCB0cnVlLCAnYWxpYXMnLCAnY2F0ZWdvcnknKTsNCiRmaWVsZHMgPSBhcnJheSgpOw0KZm9yZWFjaCAoJGZpZWxkZGVmcyBhcyAka2V5ID0+ICRvbmVkZWYpIHsNCiAgICBpZiAoZW1wdHkoJG9uZWRlZlsiYWxpYXMiXSkgPT0gZmFsc2UgJiYgaW5fYXJyYXkoJG9uZWRlZlsiYWxpYXMiXSwgZ2VuZXJhdG9yX3Rvb2xzOjokZmllbGRzX2Jsb2NrbGlzdCkgPT0gZmFsc2UpIHsNCiAgICAgICAgJGl0ZW0tPiRvbmVkZWZbImFsaWFzIl0gPSAkb25lZGVmWyJ2YWx1ZSJdOw0KICAgIH0NCn0NCiRpdGVtLT5jYXRlZ29yeWZpZWxkcyA9ICRmaWVsZGRlZnM7DQokaXRlbS0+Y2F0ZWdvcnlmaWVsZGRlZnMgPSAkZmllbGRkZWZzOw0KDQppZiAoZW1wdHkoJHJvd1sidXJsIl0pID09IGZhbHNlKSB7DQogICAgJHByZXR0eXVybCA9ICRyb3dbInVybCJdOw0KfSBlbHNlIHsNCiAgICAkcHJldHR5dXJsID0gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfcHJldHR5X3VybCgkdGhpcywgZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfcHJlZml4KCRtb2QpLCAkcm93WydpdGVtX2lkJ10sICRyb3dbJ2FsaWFzJ10sICgkZGVmYXVsdF9kZXRhaWxwYWdlID09IC0xICYmICFpc1NldCgkcGFyYW1zWyJkZXRhaWxwYWdlIl0pID8gJGRldGFpbHBhZ2UgOiAoaXNTZXQoJHBhcmFtc1siZGV0YWlscGFnZSJdKSA/ICRkZXRhaWxwYWdlIDogJycgKSksICRkZXRhaWx0ZW1wbGF0ZSk7DQp9DQoNCiRpdGVtX2dhbGxlcnkgPSBuZXcgZ2VuZXJhdG9yX2l0ZW1fZ2FsbGVyeSgkbW9kLCAkcm93WyJpdGVtX2lkIl0pOw0KJGltYWdlcyA9ICRpdGVtX2dhbGxlcnktPmxvYWRfZmlsZXMoKTsNCiRpdGVtLT5pbWFnZXMgPSAkaW1hZ2VzOw0KDQoNCiRpdGVtLT51cmwgPSAkaXRlbS0+bGluayA9ICRtb2QtPkNyZWF0ZUZyb250ZW5kTGluaygkaWQsICRyZXR1cm5pZCwgJ2RldGFpbCcsICcnLCBhcnJheSgnaXRlbV9pZCcgPT4gJHJvd1snaXRlbV9pZCddLCAnZGV0YWlsdGVtcGxhdGUnID0+ICRkZXRhaWx0ZW1wbGF0ZSksICcnLCB0cnVlLCAkaW5saW5lLCAnJywgZmFsc2UsICRwcmV0dHl1cmwpOw0KDQokcHJldHR5dXJsID0gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfcHJldHR5X3VybCgkdGhpcywgZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfcHJlZml4KCRtb2QpIC4gJy9jJywgJHJvd1snY2F0ZWdvcnlfaWQnXSwgJHJvd1snY2F0ZWdvcnlfYWxpYXMnXSwgKCRkZWZhdWx0X2RldGFpbHBhZ2UgPT0gLTEgJiYgIWlzU2V0KCRwYXJhbXNbImRldGFpbHBhZ2UiXSkgPyAkZGV0YWlscGFnZSA6ICcnKSwgJGNhdGVnb3J5dGVtcGxhdGUpOw0KJGl0ZW0tPmNhdGVnb3J5X2xpbmsgPSAkaXRlbS0+Y2F0ZWdvcnlfdXJsID0gJG1vZC0+Q3JlYXRlRnJvbnRlbmRMaW5rKCRpZCwgJHJldHVybmlkLCAnZGVmYXVsdCcsICcnLCBhcnJheSgnY2F0ZWdvcnlfaWQnID0+ICRyb3dbJ2NhdGVnb3J5X2lkJ10sICdjYXRlZ29yeXRlbXBsYXRlJyA9PiAkY2F0ZWdvcnl0ZW1wbGF0ZSksICcnLCB0cnVlLCBpc1NldCgkcGFyYW1zWyJpbmxpbmUiXSkgPyAxIDogMCwgJycsIGZhbHNlLCAkcHJldHR5dXJsKTsNCg0KDQppZiAoaXNTZXQoJHBhcmFtc1sib25lcm93Il0pKSB7DQogICAgJHNtYXJ0eS0+YXNzaWduKCRwYXJhbXNbIm9uZXJvdyJdLCAkaXRlbSk7DQogICAgcmV0dXJuOw0KfQ0KDQokc21hcnR5LT5hc3NpZ24oJ2l0ZW0nLCAkaXRlbSk7DQoNCi8vDQovLyBQcm9jZXNzIHRoZSB0ZW1wbGF0ZQ0KLy8NCg0KZWNobyAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHRoZXRlbXBsYXRlKTsNCg0KLyoNCiAqIDwhLS10aXRsZV9wYXJhbTogeyR0aXRsZV9wYXJhbX0tLT4NCiAqLw0KaWYgKCRtb2QtPkdldFByZWZlcmVuY2UoJ3RpdGxlX3BhcmFtX2Zvcl9jYWNoZScpKSB7DQogICAgJHNtYXJ0eV92YXJzID0gJHNtYXJ0eS0+Z2V0X3RlbXBsYXRlX3ZhcnMoKTsNCiAgICAkdGl0bGVzX2FycmF5ID0gZXhwbG9kZSgnLCcsICRtb2QtPkdldFByZWZlcmVuY2UoJ3RpdGxlX3BhcmFtX2Zvcl9jYWNoZScpKTsNCiAgICBmb3JlYWNoICgkdGl0bGVzX2FycmF5IGFzICR0aXRsZSkgew0KICAgICAgICAkdmFsdWUgPSAkc21hcnR5X3ZhcnNbJHRpdGxlXTsNCiAgICAgICAgaWYgKCR2YWx1ZSkgew0KICAgICAgICAgICAgZWNobyAiPCEtLSIgLiAkdGl0bGUgLiAiOiIgLiAkdmFsdWUgLiAiLS0+XG4iOw0KICAgICAgICB9DQogICAgfQ0KfQ0KPz4=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/action.fesubmit.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7Ci8vIG5vdGhpbmcKPz4K]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/action.filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KLy8NCi8vIFNldHVwDQovLw0KJHBhZ2VsaW1pdHMgPSBhcnJheSgnMicgPT4gMiwgJzUnID0+IDUsICcyNScgPT4gMjUsICcxMDAnID0+IDEwMCwgJzUwMCcgPT4gNTAwKTsNCiRzb3J0aXRlbXMgPSBhcnJheSgpOw0KJHNvcnRpdGVtc1tnZW5lcmF0b3IoKS0+TGFuZygnZGF0ZScpXSA9ICdpdGVtX2RhdGUnOw0KJHNvcnRpdGVtc1tnZW5lcmF0b3IoKS0+TGFuZygnY3JlYXRlZGRhdGUnKV0gPSAnY3JlYXRlX2RhdGUnOw0KJHNvcnRpdGVtc1tnZW5lcmF0b3IoKS0+TGFuZygnbW9kaWZpZWRkYXRlJyldID0gJ21vZGlmaWVkX2RhdGUnOw0KJHNvcnRvcmRlcnMgPSBhcnJheSgpOw0KJHNvcnRvcmRlcnNbZ2VuZXJhdG9yKCktPkxhbmcoJ2FzY2VuZGluZycpXSA9ICdhc2MnOw0KJHNvcnRvcmRlcnNbZ2VuZXJhdG9yKCktPkxhbmcoJ2Rlc2NlbmRpbmcnKV0gPSAnZGVzYyc7DQokaW5saW5lID0gaXNTZXQoJHBhcmFtc1siaW5saW5lIl0pID8gJHBhcmFtc1siaW5saW5lIl0gOiAwOw0KDQokaGllcmFyY2h5ID0gZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaGllcmFyY2h5JywgJycpOw0KJGNoaWxkcmVuID0gZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfY2hpbGRyZW4nLCAwKTsNCiRwYWdlbGltaXQgPSBnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19wYWdlbGltaXQnLCAyNSk7DQokc29ydGJ5ID0gZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfc29ydGJ5JywgJ2l0ZW1fZGF0ZScpOw0KJHNvcnRvcmRlciA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywgJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX3NvcnRvcmRlcicsICdkZXNjJyk7DQokZGF0ZV9mcm9tID0gZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZGF0ZV9mcm9tJywgdGltZSgpIC0gKDM2MDAgKiAyNCAqIDcpKTsNCiRkYXRlX3RvID0gZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZGF0ZV90bycsIHRpbWUoKSk7DQoNCg0KJGNhdGVnb3J5bGlzdCA9IGdlbmVyYXRvcl90b29sczo6Z2V0X2NhdGVnb3J5X2xpc3QoJG1vZCk7DQppZiAoJGlubGluZSkgew0KICAgICRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywgJG1vZC0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCAnZmlsdGVyJywgJHJldHVybmlkLCBhcnJheSgpLCAkaW5saW5lLCAnR0VUJykpOw0KfSBlbHNlIHsNCiAgICAkc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsICRtb2QtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsIGFycmF5KCksICRpbmxpbmUsICdHRVQnKSk7DQp9DQokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCAkbW9kLT5DcmVhdGVGb3JtRW5kKCkpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9oaWVyYXJjaHknLCAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2lucHV0X2hpZXJhcmNoeScsICRjYXRlZ29yeWxpc3QsIC0xLCAkaGllcmFyY2h5KSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2NoaWxkcmVuJywgJG1vZC0+Q3JlYXRlSW5wdXRZZXNOb0Ryb3Bkb3duKCRpZCwgJ2lucHV0X2NoaWxkcmVuJywgJGNoaWxkcmVuKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3NvcnRieScsICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnaW5wdXRfc29ydGJ5JywgJHNvcnRpdGVtcywgLTEsICRzb3J0YnkpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfc29ydG9yZGVyJywgJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdpbnB1dF9zb3J0b3JkZXInLCAkc29ydG9yZGVycywgLTEsICRzb3J0b3JkZXIpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfcGFnZWxpbWl0JywgJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdpbnB1dF9wYWdlbGltaXQnLCAkcGFnZWxpbWl0cywgLTEsICRwYWdlbGltaXQpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdkYXRlX2Zyb20nLCAkZGF0ZV9mcm9tKTsNCiRzbWFydHktPmFzc2lnbignZGF0ZV90bycsICRkYXRlX3RvKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zdWJtaXQnLCAkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLCAkbW9kLT5MYW5nKCdzdWJtaXQnKSkpOw0KDQovLyBjdXN0b20gZmllbGRzDQokZmllbGRzX2Zvcl9maWx0ZXIgPSBnZW5lcmF0b3JfdG9vbHM6OmdldF9maWVsZF9kZWZzKCRtb2QsIG51bGwsIDEsIG51bGwpOw0KJGN1c3RvbV9mbGRzID0gYXJyYXkoMSk7DQokY3VzdG9tX2ZpZWxkc192YWx1ZXMgPSBhcnJheSgpOw0KZm9yZWFjaCAoJGZpZWxkc19mb3JfZmlsdGVyIGFzICRyb3cpIHsNCiAgICAkY3VzdG9tX2ZsZHNbJHJvd1snZmllbGRkZWZfaWQnXV0gPSAkcm93Ow0KICAgICRjdXN0b21fZmllbGRzX3ZhbHVlc1skcm93WydmaWVsZGRlZl9pZCddXSA9IGdldF9wcmVmZXJlbmNlKCR1aWQsICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19jdXN0b21maWVsZHMnIC4gJHJvd1snZmllbGRkZWZfaWQnXSwgJycpOw0KfQ0KDQoNCi8vIGdldCB0aGUgY3VzdG9tIGZpZWxkcw0KJGZpbHRlcnMgPSBuZXcgZ2VuZXJhdG9yX2ZpbHRlcnMoJGlkLCAkbW9kLCAnYWRtaW4nKTsNCiRjdXN0b21fZmxkcyA9ICRmaWx0ZXJzLT5wcm9jZXNzX2N1c3RvbV9maWVsZHMoYXJyYXkoKSwgJGN1c3RvbV9mbGRzKTsNCiRjdXN0b21fZmxkc19vYmogPSAkZmlsdGVycy0+Z2VuZXJhdGUoJGl0ZW1faWQsICRwYXJhbXMsICRjdXN0b21fZmllbGRzX3ZhbHVlcywgMSk7DQppZiAoaXNzZXQoJGN1c3RvbV9mbGRzX29iaikgJiYgY291bnQoJGN1c3RvbV9mbGRzX29iaikgPiAwKSB7DQogICAgJHNtYXJ0eS0+YXNzaWduKCdjdXN0b21fZmllbGRkZWYnLCAkY3VzdG9tX2ZsZHNfb2JqKTsNCn0NCg0KLy8gc21hcnR5IHBhcmFtcw0KZm9yZWFjaCAoJHBhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSkgew0KICAgIGlmICgka2V5ID09ICdtYWN0JyB8fCAka2V5ID09ICdhY3Rpb24nKQ0KICAgICAgICBjb250aW51ZTsNCiAgICAkc21hcnR5LT5hc3NpZ24oJ3BhcmFtXycgLiAka2V5LCAkdmFsdWUpOw0KfQ0KDQoNCi8vIHRlbXBsYXRlDQokdGhldGVtcGxhdGUgPSAnZmlsdGVyX3RlbXBsYXRlJyAuICRtb2QtPkdldFByZWZlcmVuY2UoJ2N1cnJlbnRfZmlsdGVyX3RlbXBsYXRlJyk7DQppZiAoaXNzZXQoJHBhcmFtc1snZmlsdGVydGVtcGxhdGUnXSkpIHsNCiAgICAkdGhldGVtcGxhdGUgPSAnZmlsdGVyX3RlbXBsYXRlJyAuICRwYXJhbXNbJ2ZpbHRlcnRlbXBsYXRlJ107DQp9DQoNCi8vDQovLyBQcm9jZXNzIHRoZSB0ZW1wbGF0ZQ0KLy8NCg0Kb2Jfc3RhcnQoKTsNCiRtb2QtPkRvQWN0aW9uKCdkZWZhdWx0JywgJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOw0KJG91dHB1dCA9IG9iX2dldF9jb250ZW50cygpOw0Kb2JfZW5kX2NsZWFuKCk7DQokc21hcnR5LT5hc3NpZ24oJ3Jlc3VsdHMnLCAkb3V0cHV0KTsNCg0KZWNobyAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHRoZXRlbXBsYXRlKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/function.admin_categorytab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghaXNzZXQoJGdDbXMpKQogICAgZXhpdDsKCgojUHV0IHRvZ2V0aGVyIGEgbGlzdCBvZiBjdXJyZW50IGNhdGVnb3JpZXMuLi4KJGVudHJ5YXJyYXkgPSBhcnJheSgpOwoKJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfIiAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gIl9jYXRlZ29yaWVzIE9SREVSIEJZIGhpZXJhcmNoeV9wb3NpdGlvbiI7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoKJHJvd2NsYXNzID0gJ3JvdzEnOwoKd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSB7CiAgICAkb25lcm93ID0gbmV3IHN0ZENsYXNzKCk7CgogICAgJGRlcHRoID0gY291bnQocHJlZ19zcGxpdCgnL1wuLycsICRyb3dbJ2hpZXJhcmNoeSddKSk7CgogICAgJG9uZXJvdy0+aWQgPSAkcm93WydjYXRlZ29yeV9pZCddOwogICAgJG9uZXJvdy0+bmFtZSA9IHN0cl9yZXBlYXQoJyZuYnNwOyZndDsmbmJzcDsnLCAkZGVwdGggLSAxKSAuICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fZWRpdGNhdGVnb3J5JywgJHJldHVybmlkLCAkcm93WydjYXRlZ29yeV9uYW1lJ10sIGFycmF5KCdjYXRpZCcgPT4gJHJvd1snY2F0ZWdvcnlfaWQnXSkpOwoKICAgICRvbmVyb3ctPmVkaXRsaW5rID0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9lZGl0Y2F0ZWdvcnknLCAkcmV0dXJuaWQsIGNtc21zKCktPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsIGdlbmVyYXRvcigpLT5MYW5nKCdlZGl0JyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2NhdGlkJyA9PiAkcm93WydjYXRlZ29yeV9pZCddKSk7CiAgICAkb25lcm93LT5kZWxldGVsaW5rID0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9kZWxldGVjYXRlZ29yeScsICRyZXR1cm5pZCwgY21zbXMoKS0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCBnZW5lcmF0b3IoKS0+TGFuZygnZGVsZXRlJyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2NhdGlkJyA9PiAkcm93WydjYXRlZ29yeV9pZCddKSwgZ2VuZXJhdG9yKCktPkxhbmcoJ2FyZXlvdXN1cmUnKSk7CgogICAgJG9uZXJvdy0+cm93Y2xhc3MgPSAkcm93Y2xhc3M7CgogICAgJGVudHJ5YXJyYXlbXSA9ICRvbmVyb3c7CgogICAgKCRyb3djbGFzcyA9PSAicm93MSIgPyAkcm93Y2xhc3MgPSAicm93MiIgOiAkcm93Y2xhc3MgPSAicm93MSIpOwp9CgokbW9kLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2l0ZW1zJywgJGVudHJ5YXJyYXkpOwokbW9kLT5zbWFydHktPmFzc2lnbignaXRlbWNvdW50JywgY291bnQoJGVudHJ5YXJyYXkpKTsKCiNTZXR1cCBsaW5rcwokbW9kLT5zbWFydHktPmFzc2lnbignYWRkbGluaycsICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fZWRpdGNhdGVnb3J5JywgJHJldHVybmlkLCBnZW5lcmF0b3IoKS0+TGFuZygnYWRkY2F0ZWdvcnknKSwgYXJyYXkoKSwgJycsIGZhbHNlLCBmYWxzZSwgJ2NsYXNzPSJwYWdlb3B0aW9ucyInKSk7CiRtb2QtPnNtYXJ0eS0+YXNzaWduKCdyZW9yZGVyJywgJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9vcmRlcmNhdGVnb3J5JywgJHJldHVybmlkLCBnZW5lcmF0b3IoKS0+TGFuZygncmVvcmRlcicpLCBhcnJheSgpLCAnJywgZmFsc2UsIGZhbHNlLCAnY2xhc3M9InBhZ2VvcHRpb25zIicpKTsKCiRtb2QtPnNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yeXRleHQnLCBnZW5lcmF0b3IoKS0+TGFuZygnY2F0ZWdvcnknKSk7CgojRGlzcGxheSB0ZW1wbGF0ZQplY2hvICRtb2QtPlByb2Nlc3NUZW1wbGF0ZSgnY2F0ZWdvcnlsaXN0LnRwbCcpOwoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/function.admin_fielddeftab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYgKCEkbW9kLT5DaGVja1Blcm1pc3Npb24oJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9vcHRpb24nKSkgcmV0dXJuOw0KJGFkbWludGhlbWUgPSBjbXNtcygpLT5nZXRfdmFyaWFibGUoJ2FkbWludGhlbWUnKTsNCg0KDQovLyBnZXQgZmllbGQgZGVmaW5pdGlvbnMgaW4gdXNlDQokdG1wID0gJGRiLT5HZXRBcnJheSgnU0VMRUNUIERJU1RJTkNUIGZpZWxkZGVmX2lkIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZHZhbCcpOw0KJHVzZWRmaWVsZGRlZnMgPSBhcnJheSgpOw0KDQppZiAoaXNfYXJyYXkoJHRtcCkpIHsNCiAgICBmb3JlYWNoICgkdG1wIGFzICRyb3cpIHsNCiAgICAgICAgJHVzZWRmaWVsZGRlZnNbXSA9ICRyb3dbJ2ZpZWxkZGVmX2lkJ107DQogICAgfQ0KfQ0KDQovLyRwb3NpdGlvbiA9ICRkYi0+R2V0T25lKCdTRUxFQ1QgbWF4KHBvc2l0aW9uKSBhcyBtYXhfcG9zaXRpb24gRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkZGVmJyk7DQokZmllbGRzID0gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfZmllbGRfZGVmcygkbW9kKTsNCiRyb3djbGFzcyA9ICdyb3cxJzsNCiRlbnRyeWFycmF5ID0gYXJyYXkoKTsNCg0KZm9yZWFjaCAoJGZpZWxkcyBhcyAkcm93KSB7DQogICAgJG9uZXJvdyA9IG5ldyBzdGRDbGFzcygpOw0KICAgICRvbmVyb3ctPmlkID0gJHJvd1snZmllbGRkZWZfaWQnXTsNCiAgICAkb25lcm93LT5uYW1lID0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9lZGl0ZmllbGRkZWYnLCAkcmV0dXJuaWQsICRyb3dbJ25hbWUnXSwgYXJyYXkoJ2ZpZWxkZGVmX2lkJyA9PiRyb3dbJ2ZpZWxkZGVmX2lkJ10pKTsNCiAgICAkb25lcm93LT5hbGlhcyA9ICRyb3dbJ2FsaWFzJ107DQogICAgJG9uZXJvdy0+dHlwZSA9IGdlbmVyYXRvcigpLT5MYW5nKCRyb3dbJ3R5cGUnXSk7DQogICAgJG9uZXJvdy0+cmVxdWlyZWQgPSAkcm93WydyZXF1aXJlZCddOw0KICAgICRvbmVyb3ctPmZyb250ZW5kID0gJHJvd1snZnJvbnRlbmQnXTsNCiAgICAkb25lcm93LT5lZGl0dmlldyA9ICRyb3dbJ2VkaXR2aWV3J107DQogICAgJG9uZXJvdy0+ZmlsdGVyX2Zyb250ZW5kID0gJHJvd1snZmlsdGVyX2Zyb250ZW5kJ107DQogICAgJG9uZXJvdy0+ZmlsdGVyX2FkbWluID0gJHJvd1snZmlsdGVyX2FkbWluJ107DQogICAgJG9uZXJvdy0+c2VhcmNoYWJsZSA9ICRyb3dbJ3NlYXJjaGFibGUnXTsNCiAgICAkb25lcm93LT5wb3NpdGlvbiA9ICRyb3dbJ3Bvc2l0aW9uJ107DQoNCiAgICAvLyBtb3ZlIHVwDQogICAgaWYgKCRvbmVyb3ctPnBvc2l0aW9uID4gMSkgew0KICAgICAgICAkb25lcm93LT51cGxpbmsgPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX21vdmVmaWVsZGRlZicsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2Fycm93LXUuZ2lmJywgZ2VuZXJhdG9yKCktPkxhbmcoJ3VwJyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2ZpZWxkZGVmX2lkJyA9PiRyb3dbJ2ZpZWxkZGVmX2lkJ10sICdkaXInID0+J3VwJykpOw0KICAgIH0gZWxzZSB7DQogICAgICAgICRvbmVyb3ctPnVwbGluayA9ICcnOw0KICAgIH0NCg0KICAgIC8vIG1vdmUgZG93bg0KICAgLyogaWYgKCRwb3NpdGlvbiA+ICRvbmVyb3ctPnBvc2l0aW9uKSB7DQogICAgICAgICRvbmVyb3ctPmRvd25saW5rID0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9tb3ZlZmllbGRkZWYnLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9hcnJvdy1kLmdpZicsIGdlbmVyYXRvcigpLT5MYW5nKCdkb3duJyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2ZpZWxkZGVmX2lkJyA9PiRyb3dbJ2ZpZWxkZGVmX2lkJ10sICdkaXInID0+J2Rvd24nKSk7DQogICAgfSBlbHNlIHsNCiAgICAgICAgJG9uZXJvdy0+ZG93bmxpbmsgPSAnJzsNCiAgICB9Ki8NCg0KICAgICRvbmVyb3ctPmVkaXRsaW5rID0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9lZGl0ZmllbGRkZWYnLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsIGdlbmVyYXRvcigpLT5MYW5nKCdlZGl0JyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2ZpZWxkZGVmX2lkJyA9PiRyb3dbJ2ZpZWxkZGVmX2lkJ10pKTsNCg0KICAgIC8vIG9ubHkgZGlzcGxheSBkZWxldGUgZmllbGQgZGVmaW5pdGlvbiBsaW5rIGlmIGZpZWxkIGRlZmluaXRpb24gaXMgbm90IGluIHVzZQ0KICAgICRvbmVyb3ctPmRlbGV0ZWxpbmsgPSAnJzsNCiAgICBpZiAoIWluX2FycmF5KCRyb3dbJ2ZpZWxkZGVmX2lkJ10sICR1c2VkZmllbGRkZWZzKSkgew0KICAgICAgICAkb25lcm93LT5kZWxldGVsaW5rID0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9kZWxldGVmaWVsZGRlZicsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCBnZW5lcmF0b3IoKS0+TGFuZygnZGVsZXRlJyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2ZpZWxkZGVmX2lkJyA9PiRyb3dbJ2ZpZWxkZGVmX2lkJ10pLCBnZW5lcmF0b3IoKS0+TGFuZygnYXJleW91c3VyZScpKTsNCiAgICB9DQoNCiAgICAkZW50cnlhcnJheVtdID0gJG9uZXJvdzsNCiAgICAkcm93Y2xhc3MgPSAoJHJvd2NsYXNzID09ICdyb3cxJyA/ICdyb3cyJyA6ICdyb3cxJyk7DQp9DQoNCiRzbWFydHktPmFzc2lnbl9ieV9yZWYoJ2l0ZW1zJywgICRlbnRyeWFycmF5KTsNCiRzbWFydHktPmFzc2lnbignYWxpYXMnLCAgICAgZ2VuZXJhdG9yKCktPkxhbmcoJ2FsaWFzJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdpdGVtY291bnQnLCAgICAgY291bnQoJGVudHJ5YXJyYXkpKTsNCiRzbWFydHktPmFzc2lnbignYWRkbGluaycsICAgICAgICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fZWRpdGZpZWxkZGVmJywgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZicsIGdlbmVyYXRvcigpLT5MYW5nKCdhZGRmaWVsZGRlZicpLCAnJywgJycsICdzeXN0ZW1pY29uJykgLiAnICcgLiBnZW5lcmF0b3IoKS0+TGFuZygnYWRkZmllbGRkZWYnKSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdmaWVsZHRleHQnLCAgICAgZ2VuZXJhdG9yKCktPkxhbmcoJ2ZpZWxkZGVmJykpOw0KJHNtYXJ0eS0+YXNzaWduKCd0eXBldGV4dCcsICAgICAgZ2VuZXJhdG9yKCktPkxhbmcoJ2ZpZWxkZGVmX3R5cGUnKSk7DQokc21hcnR5LT5hc3NpZ24oJ21heGxlbmd0aHRleHQnLCBnZW5lcmF0b3IoKS0+TGFuZygnZmllbGRkZWZfbWF4X2xlbmd0aCcpKTsNCiRzbWFydHktPmFzc2lnbigncmVxdWlyZWR0ZXh0JywgIGdlbmVyYXRvcigpLT5MYW5nKCdmaWVsZGRlZl9yZXF1aXJlZCcpKTsNCiRzbWFydHktPmFzc2lnbignc2VhcmNoYWJsZXRleHQnLCAgZ2VuZXJhdG9yKCktPkxhbmcoJ2ZpZWxkZGVmX3NlYXJjaGFibGUnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2Zyb250ZW5kdGV4dCcsICBnZW5lcmF0b3IoKS0+TGFuZygnZmllbGRkZWZfZnJvbnRlbmQnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2VkaXR2aWV3dGV4dCcsICBnZW5lcmF0b3IoKS0+TGFuZygnZmllbGRkZWZfZWRpdHZpZXcnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2ZpbHRlcl9mcm9udGVuZHRleHQnLCAgZ2VuZXJhdG9yKCktPkxhbmcoJ2ZpZWxkZGVmX2ZpbHRlcl9mcm9udGVuZCcpKTsNCiRzbWFydHktPmFzc2lnbignZmlsdGVyX2FkbWludGV4dCcsICBnZW5lcmF0b3IoKS0+TGFuZygnZmllbGRkZWZfZmlsdGVyX2FkbWluJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdzZWN0aW9uJywgICdpdGVtcycpOw0KDQplY2hvICRtb2QtPlByb2Nlc3NUZW1wbGF0ZSgnZmllbGRkZWZ0YWIudHBsJyk7DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/function.admin_fielddeftab_categories.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYgKCEkbW9kLT5DaGVja1Blcm1pc3Npb24oJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9vcHRpb24nKSkgcmV0dXJuOw0KJGFkbWludGhlbWUgPSBjbXNtcygpLT5nZXRfdmFyaWFibGUoJ2FkbWludGhlbWUnKTsNCg0KDQovLyBnZXQgZmllbGQgZGVmaW5pdGlvbnMgaW4gdXNlDQokdG1wID0gJGRiLT5HZXRBcnJheSgnU0VMRUNUIERJU1RJTkNUIGZpZWxkZGVmX2lkIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZHZhbCcpOw0KJHVzZWRmaWVsZGRlZnMgPSBhcnJheSgpOw0KDQppZiAoaXNfYXJyYXkoJHRtcCkpIHsNCiAgICBmb3JlYWNoICgkdG1wIGFzICRyb3cpIHsNCiAgICAgICAgJHVzZWRmaWVsZGRlZnNbXSA9ICRyb3dbJ2ZpZWxkZGVmX2lkJ107DQogICAgfQ0KfQ0KDQovLyRwb3NpdGlvbiA9ICRkYi0+R2V0T25lKCdTRUxFQ1QgbWF4KHBvc2l0aW9uKSBhcyBtYXhfcG9zaXRpb24gRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkZGVmJyk7DQokZmllbGRzID0gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfZmllbGRfZGVmcygkbW9kLCBudWxsLCBudWxsLCBudWxsLCAnY2F0ZWdvcmllcycpOw0KJHJvd2NsYXNzID0gJ3JvdzEnOw0KJGVudHJ5YXJyYXkgPSBhcnJheSgpOw0KDQpmb3JlYWNoICgkZmllbGRzIGFzICRyb3cpIHsNCiAgICAkb25lcm93ID0gbmV3IHN0ZENsYXNzKCk7DQogICAgJG9uZXJvdy0+aWQgPSAkcm93WydmaWVsZGRlZl9pZCddOw0KICAgICRvbmVyb3ctPm5hbWUgPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2VkaXRmaWVsZGRlZicsICRyZXR1cm5pZCwgJHJvd1snbmFtZSddLCBhcnJheSgnZmllbGRkZWZfaWQnID0+JHJvd1snZmllbGRkZWZfaWQnXSkpOw0KICAgICRvbmVyb3ctPmFsaWFzID0gJHJvd1snYWxpYXMnXTsNCiAgICAkb25lcm93LT50eXBlID0gZ2VuZXJhdG9yKCktPkxhbmcoJHJvd1sndHlwZSddKTsNCiAgICAkb25lcm93LT5yZXF1aXJlZCA9ICRyb3dbJ3JlcXVpcmVkJ107DQogICAgJG9uZXJvdy0+ZnJvbnRlbmQgPSAkcm93Wydmcm9udGVuZCddOw0KICAgICRvbmVyb3ctPmVkaXR2aWV3ID0gJHJvd1snZWRpdHZpZXcnXTsNCiAgICAkb25lcm93LT5maWx0ZXJfZnJvbnRlbmQgPSAkcm93WydmaWx0ZXJfZnJvbnRlbmQnXTsNCiAgICAkb25lcm93LT5maWx0ZXJfYWRtaW4gPSAkcm93WydmaWx0ZXJfYWRtaW4nXTsNCiAgICAkb25lcm93LT5zZWFyY2hhYmxlID0gJHJvd1snc2VhcmNoYWJsZSddOw0KICAgICRvbmVyb3ctPnBvc2l0aW9uID0gJHJvd1sncG9zaXRpb24nXTsNCg0KICAgIC8vIG1vdmUgdXANCiAgICBpZiAoJG9uZXJvdy0+cG9zaXRpb24gPiAxKSB7DQogICAgICAgICRvbmVyb3ctPnVwbGluayA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fbW92ZWZpZWxkZGVmJywgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vYXJyb3ctdS5naWYnLCBnZW5lcmF0b3IoKS0+TGFuZygndXAnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLCBhcnJheSgnZmllbGRkZWZfaWQnID0+JHJvd1snZmllbGRkZWZfaWQnXSwgJ2RpcicgPT4ndXAnKSk7DQogICAgfSBlbHNlIHsNCiAgICAgICAgJG9uZXJvdy0+dXBsaW5rID0gJyc7DQogICAgfQ0KDQogICAgLy8gbW92ZSBkb3duDQogICAvKiBpZiAoJHBvc2l0aW9uID4gJG9uZXJvdy0+cG9zaXRpb24pIHsNCiAgICAgICAgJG9uZXJvdy0+ZG93bmxpbmsgPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX21vdmVmaWVsZGRlZicsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2Fycm93LWQuZ2lmJywgZ2VuZXJhdG9yKCktPkxhbmcoJ2Rvd24nKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLCBhcnJheSgnZmllbGRkZWZfaWQnID0+JHJvd1snZmllbGRkZWZfaWQnXSwgJ2RpcicgPT4nZG93bicpKTsNCiAgICB9IGVsc2Ugew0KICAgICAgICAkb25lcm93LT5kb3dubGluayA9ICcnOw0KICAgIH0qLw0KDQogICAgJG9uZXJvdy0+ZWRpdGxpbmsgPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2VkaXRmaWVsZGRlZicsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywgZ2VuZXJhdG9yKCktPkxhbmcoJ2VkaXQnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLCBhcnJheSgnZmllbGRkZWZfaWQnID0+JHJvd1snZmllbGRkZWZfaWQnXSkpOw0KDQogICAgLy8gb25seSBkaXNwbGF5IGRlbGV0ZSBmaWVsZCBkZWZpbml0aW9uIGxpbmsgaWYgZmllbGQgZGVmaW5pdGlvbiBpcyBub3QgaW4gdXNlDQogICAgJG9uZXJvdy0+ZGVsZXRlbGluayA9ICcnOw0KICAgIGlmICghaW5fYXJyYXkoJHJvd1snZmllbGRkZWZfaWQnXSwgJHVzZWRmaWVsZGRlZnMpKSB7DQogICAgICAgICRvbmVyb3ctPmRlbGV0ZWxpbmsgPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2RlbGV0ZWZpZWxkZGVmJywgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsIGdlbmVyYXRvcigpLT5MYW5nKCdkZWxldGUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLCBhcnJheSgnZmllbGRkZWZfaWQnID0+JHJvd1snZmllbGRkZWZfaWQnXSksIGdlbmVyYXRvcigpLT5MYW5nKCdhcmV5b3VzdXJlJykpOw0KICAgIH0NCg0KICAgICRlbnRyeWFycmF5W10gPSAkb25lcm93Ow0KICAgICRyb3djbGFzcyA9ICgkcm93Y2xhc3MgPT0gJ3JvdzEnID8gJ3JvdzInIDogJ3JvdzEnKTsNCn0NCg0KJHNtYXJ0eS0+YXNzaWduX2J5X3JlZignaXRlbXMnLCAgJGVudHJ5YXJyYXkpOw0KJHNtYXJ0eS0+YXNzaWduKCdhbGlhcycsICAgICBnZW5lcmF0b3IoKS0+TGFuZygnYWxpYXMnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2l0ZW1jb3VudCcsICAgICBjb3VudCgkZW50cnlhcnJheSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdhZGRsaW5rJywgICAgICAgJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9lZGl0ZmllbGRkZWYnLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJywgZ2VuZXJhdG9yKCktPkxhbmcoJ2FkZGZpZWxkZGVmJyksICcnLCAnJywgJ3N5c3RlbWljb24nKSAuICcgJyAuIGdlbmVyYXRvcigpLT5MYW5nKCdhZGRmaWVsZGRlZicpKSk7DQokc21hcnR5LT5hc3NpZ24oJ2ZpZWxkdGV4dCcsICAgICBnZW5lcmF0b3IoKS0+TGFuZygnZmllbGRkZWYnKSk7DQokc21hcnR5LT5hc3NpZ24oJ3R5cGV0ZXh0JywgICAgICBnZW5lcmF0b3IoKS0+TGFuZygnZmllbGRkZWZfdHlwZScpKTsNCiRzbWFydHktPmFzc2lnbignbWF4bGVuZ3RodGV4dCcsIGdlbmVyYXRvcigpLT5MYW5nKCdmaWVsZGRlZl9tYXhfbGVuZ3RoJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdyZXF1aXJlZHRleHQnLCAgZ2VuZXJhdG9yKCktPkxhbmcoJ2ZpZWxkZGVmX3JlcXVpcmVkJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdzZWFyY2hhYmxldGV4dCcsICBnZW5lcmF0b3IoKS0+TGFuZygnZmllbGRkZWZfc2VhcmNoYWJsZScpKTsNCiRzbWFydHktPmFzc2lnbignZnJvbnRlbmR0ZXh0JywgIGdlbmVyYXRvcigpLT5MYW5nKCdmaWVsZGRlZl9mcm9udGVuZCcpKTsNCiRzbWFydHktPmFzc2lnbignZWRpdHZpZXd0ZXh0JywgIGdlbmVyYXRvcigpLT5MYW5nKCdmaWVsZGRlZl9lZGl0dmlldycpKTsNCiRzbWFydHktPmFzc2lnbignZmlsdGVyX2Zyb250ZW5kdGV4dCcsICBnZW5lcmF0b3IoKS0+TGFuZygnZmllbGRkZWZfZmlsdGVyX2Zyb250ZW5kJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdmaWx0ZXJfYWRtaW50ZXh0JywgIGdlbmVyYXRvcigpLT5MYW5nKCdmaWVsZGRlZl9maWx0ZXJfYWRtaW4nKSk7DQokc21hcnR5LT5hc3NpZ24oJ3NlY3Rpb24nLCAgJ2NhdGVnb3JpZXMnKTsNCg0KZWNobyAkbW9kLT5Qcm9jZXNzVGVtcGxhdGUoJ2ZpZWxkZGVmdGFiLnRwbCcpOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/function.admin_itemtab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYgKCEkbW9kLT5DaGVja1Blcm1pc3Npb24oJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9pdGVtJykpDQogICAgcmV0dXJuOw0KDQokd2hlcmUgPSBhcnJheSgpOw0KJGNhdGVnb3J5bG9uZ25hbWVsaXN0ID0gYXJyYXkoKTsNCiRwYXJhbXNhcnJheSA9IGFycmF5KCk7DQokYWRtaW50aGVtZSA9IGNtc21zKCktPmdldF92YXJpYWJsZSgnYWRtaW50aGVtZScpOw0KDQokc21hcnR5LT5hc3NpZ24oJ21vZHVsZScsICRtb2QpOw0KDQokc3RhcnRfY2F0ZWdvcnkgPSAnJzsNCg0KJGNhdGVnb3J5bG9uZ25hbWVsaXN0ID0gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfcHJpdmF0ZV9jYXRlZ29yaWVzKCRtb2QpOw0KDQovLw0KLy8gU2V0dXANCi8vDQokcGFnZWxpbWl0cyA9IGFycmF5KCcyJyA9PiAyLCAnNScgPT4gNSwgJzI1JyA9PiAyNSwgJzEwMCcgPT4gMTAwLCAnNTAwJyA9PiA1MDApOw0KJHNvcnRpdGVtcyA9IGFycmF5KCk7DQokc29ydGl0ZW1zW2dlbmVyYXRvcigpLT5MYW5nKCdkYXRlJyldID0gJ2l0ZW1fZGF0ZSc7DQokc29ydGl0ZW1zW2dlbmVyYXRvcigpLT5MYW5nKCdjcmVhdGVkZGF0ZScpXSA9ICdjcmVhdGVfZGF0ZSc7DQokc29ydGl0ZW1zW2dlbmVyYXRvcigpLT5MYW5nKCdtb2RpZmllZGRhdGUnKV0gPSAnbW9kaWZpZWRfZGF0ZSc7DQokc29ydG9yZGVycyA9IGFycmF5KCk7DQokc29ydG9yZGVyc1tnZW5lcmF0b3IoKS0+TGFuZygnYXNjZW5kaW5nJyldID0gJ2FzYyc7DQokc29ydG9yZGVyc1tnZW5lcmF0b3IoKS0+TGFuZygnZGVzY2VuZGluZycpXSA9ICdkZXNjJzsNCiR1aWQgPSBnZXRfdXNlcmlkKGZhbHNlKTsNCiRoaWVyYXJjaHkgPSAnJzsNCiRjaGlsZHJlbiA9IDA7DQokcGFnZWxpbWl0ID0gMjU7DQokc29ydGJ5ID0gJ2NyZWF0ZV9kYXRlJzsNCiRzb3J0b3JkZXIgPSAnZGVzYyc7DQokcGFnZW51bWJlciA9IDE7DQokZmllbGRzX3ZpZXdhYmxlID0gYXJyYXkoKTsNCiRmaWVsZF9uYW1lcyA9IGFycmF5KCk7DQokZmllbGRfbW9kdWxlcyA9IGFycmF5KCk7DQokZmllbGRfaW1hZ2VzID0gYXJyYXkoKTsNCiRjdXN0b21fZmllbGRzID0gJyc7DQokZGF0ZV90byA9IHRpbWUoKTsNCg0KaWYgKCEkbW9kLT5HZXRQcmVmZXJlbmNlKCdpdGVtX2RhdGVfZWRpdCcpKQ0KICAgIHVuc2V0KCRzb3J0aXRlbXNbZ2VuZXJhdG9yKCktPkxhbmcoJ2RhdGUnKV0pOw0KDQoNCi8vIGN1c3RvbSBmaWVsZHMNCiRmaWVsZHNfZm9yX2ZpbHRlciA9IGdlbmVyYXRvcl90b29sczo6Z2V0X2ZpZWxkX2RlZnMoJG1vZCwgbnVsbCwgbnVsbCwgbnVsbCk7DQokY3VzdG9tX2ZsZHMgPSBhcnJheSgxKTsNCiRjdXN0b21fZmllbGRzX3ZhbHVlcyA9IGFycmF5KCk7DQokZmllbGRkZWZzID0gYXJyYXkoKTsNCmlmIChlbXB0eSgkZmllbGRzX2Zvcl9maWx0ZXIpID09IGZhbHNlKSB7DQogICAgZm9yZWFjaCAoJGZpZWxkc19mb3JfZmlsdGVyIGFzICRyb3cpIHsNCiAgICAgICAgaWYgKCRyb3dbImZpbHRlcl9hZG1pbiJdKSB7DQogICAgICAgICAgICAkY3VzdG9tX2ZsZHNbJHJvd1snZmllbGRkZWZfaWQnXV0gPSAkcm93Ow0KICAgICAgICAgICAgJGN1c3RvbV9maWVsZHNfdmFsdWVzWyRyb3dbJ2ZpZWxkZGVmX2lkJ11dID0gZ2V0X3ByZWZlcmVuY2UoJHVpZCwgJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2N1c3RvbWZpZWxkcycgLiAkcm93WydmaWVsZGRlZl9pZCddLCAnJyk7DQogICAgICAgIH0NCiAgICAgICAgJGZpZWxkZGVmc1skcm93WydhbGlhcyddXSA9IGNnZV9hcnJheTo6dG9fb2JqZWN0KCRyb3cpOw0KICAgICAgICAkc29ydGl0ZW1zWyRyb3dbJ25hbWUnXV0gPSAnZjonIC4gJHJvd1snYWxpYXMnXTsNCiAgICB9DQp9DQoNCg0KLy8NCi8vIEdldCBwcmVmZXJlbmNlcw0KLy8NCiRoaWVyYXJjaHkgPSBnZXRfcHJlZmVyZW5jZSgkdWlkLCAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaGllcmFyY2h5JywgJycpOw0KJGNoaWxkcmVuID0gZ2V0X3ByZWZlcmVuY2UoJHVpZCwgJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2NoaWxkcmVuJywgMCk7DQokcGFnZWxpbWl0ID0gZ2V0X3ByZWZlcmVuY2UoJHVpZCwgJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX3BhZ2VsaW1pdCcsIDI1KTsNCiRzb3J0YnkgPSBnZXRfcHJlZmVyZW5jZSgkdWlkLCAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfc29ydGJ5JywgJ2l0ZW1fZGF0ZScpOw0KJHNvcnRvcmRlciA9IGdldF9wcmVmZXJlbmNlKCR1aWQsICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19zb3J0b3JkZXInLCAnZGVzYycpOw0KJGRhdGVfZnJvbSA9IGdldF9wcmVmZXJlbmNlKCR1aWQsICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19kYXRlX2Zyb20nLCB0aW1lKCkgLSAoMzYwMCAqIDI0ICogNykpOw0KJGRhdGVfdG8gPSBnZXRfcHJlZmVyZW5jZSgkdWlkLCAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZGF0ZV90bycsIHRpbWUoKSArICgzNjAwICogMjQgKiA3KSk7DQoNCg0KDQppZiAoZW1wdHkoJHRtcCkpDQogICAgJHRtcCA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ2N1c3RvbV9maWVsZHNfZGVmYXVsdCcpOw0KaWYgKCFlbXB0eSgkdG1wKSkNCiAgICAkY3VzdG9tX2ZpZWxkcyA9IGV4cGxvZGUoJywnLCAkdG1wKTsNCg0KLy8NCi8vIEhhbmRsZSBHZXQgcGFyYW1ldGVycw0KLy8NCmlmIChpc3NldCgkcGFyYW1zWydwYWdlbnVtYmVyJ10pKSB7DQogICAgJHBhZ2VudW1iZXIgPSAoaW50KSAkcGFyYW1zWydwYWdlbnVtYmVyJ107DQp9DQoNCg0KLy8NCi8vIEhhbmRsZSBmb3JtIHN1Ym1pdA0KLy8NCmlmIChpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkpIHsNCg0KICAgIGlmICgkbW9kLT5HZXRQcmVmZXJlbmNlKCdtb2RlJykgIT0gInNpbXBsZSIgfHwgaXNzZXQoJHBhcmFtc1snY3VzdG9tZmllbGQnXSkpIHsNCg0KICAgICAgICBpZiAoJG1vZC0+R2V0UHJlZmVyZW5jZSgnbW9kZScpICE9ICJzaW1wbGUiKSB7DQogICAgICAgICAgICAkY2hpbGRyZW4gPSAoaW50KSAkcGFyYW1zWydpbnB1dF9jaGlsZHJlbiddOw0KICAgICAgICAgICAgJHBhZ2VsaW1pdCA9IChpbnQpICRwYXJhbXNbJ2lucHV0X3BhZ2VsaW1pdCddOw0KICAgICAgICAgICAgJHNvcnRieSA9IHRyaW0oJHBhcmFtc1snaW5wdXRfc29ydGJ5J10pOw0KICAgICAgICAgICAgJGhpZXJhcmNoeSA9IHRyaW0oJHBhcmFtc1snaGllcmFyY2h5J10pOw0KICAgICAgICAgICAgJHNvcnRvcmRlciA9IHRyaW0oJHBhcmFtc1snaW5wdXRfc29ydG9yZGVyJ10pOw0KICAgICAgICAgICAgJGRhdGVfZnJvbSA9IG1rdGltZSgwLCAwLCAwLCAkcGFyYW1zWydkYXRlZnJvbU1vbnRoJ10sICRwYXJhbXNbJ2RhdGVmcm9tRGF5J10sICRwYXJhbXNbJ2RhdGVmcm9tWWVhciddKTsNCiAgICAgICAgICAgICRkYXRlX3RvID0gbWt0aW1lKDIzLCA1OSwgNTksICRwYXJhbXNbJ2RhdGV0b01vbnRoJ10sICRwYXJhbXNbJ2RhdGV0b0RheSddLCAkcGFyYW1zWydkYXRldG9ZZWFyJ10pOw0KDQoNCiAgICAgICAgICAgIC8vIHN0b3JlIHRoZW0gYXMgdXNlciBwcmVmZXJlbmNlcw0KICAgICAgICAgICAgc2V0X3ByZWZlcmVuY2UoJHVpZCwgJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2hpZXJhcmNoeScsICRoaWVyYXJjaHkpOw0KICAgICAgICAgICAgc2V0X3ByZWZlcmVuY2UoJHVpZCwgJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2NoaWxkcmVuJywgJGNoaWxkcmVuKTsNCiAgICAgICAgICAgIHNldF9wcmVmZXJlbmNlKCR1aWQsICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19wYWdlbGltaXQnLCAkcGFnZWxpbWl0KTsNCiAgICAgICAgICAgIHNldF9wcmVmZXJlbmNlKCR1aWQsICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19zb3J0YnknLCAkc29ydGJ5KTsNCiAgICAgICAgICAgIHNldF9wcmVmZXJlbmNlKCR1aWQsICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19zb3J0b3JkZXInLCAkc29ydG9yZGVyKTsNCiAgICAgICAgICAgIHNldF9wcmVmZXJlbmNlKCR1aWQsICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19kYXRlX2Zyb20nLCAkZGF0ZV9mcm9tKTsNCiAgICAgICAgICAgIHNldF9wcmVmZXJlbmNlKCR1aWQsICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19kYXRlX3RvJywgJGRhdGVfdG8pOw0KICAgICAgICAgICAgc2V0X3ByZWZlcmVuY2UoJHVpZCwgJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2N1c3RvbV9maWVsZHMnLCBpbXBsb2RlKCcsJywgJGN1c3RvbV9maWVsZHMpKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChpc3NldCgkcGFyYW1zWydjdXN0b21maWVsZCddKSkgew0KICAgICAgICAgICAgZm9yZWFjaCAoJHBhcmFtc1snY3VzdG9tZmllbGQnXSBhcyAkZmxkaWQgPT4gJHZhbHVlKSB7DQogICAgICAgICAgICAgICAgc2V0X3ByZWZlcmVuY2UoJHVpZCwgJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2N1c3RvbWZpZWxkcycgLiAkZmxkaWQsICR2YWx1ZSk7DQogICAgICAgICAgICAgICAgJGN1c3RvbV9maWVsZHNfdmFsdWVzWyRmbGRpZF0gPSAkdmFsdWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9DQoNCg0KLy8gaWYgc2ltcGxlIG1vZGUsIHJlc2V0IGFsbCBwcmVmcw0KaWYgKCRtb2QtPkdldFByZWZlcmVuY2UoJ21vZGUnKSA9PSAic2ltcGxlIikgew0KICAgICRzb3J0b3JkZXIgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdzb3J0b3JkZXJfc2ltcGxlJywgJ2Rlc2MnKTsNCiAgICAkc29ydGJ5ID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnc29ydGJ5X3NpbXBsZScsICdwb3NpdGlvbicpOw0KICAgICRwYWdlbGltaXQgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdwYWdlbGltaXRfc2ltcGxlJywgMTAwMCk7DQp9DQoNCi8vIGdldCBjYXRlZ29yeSBsaXN0DQokd2hlcmUgPSBhcnJheSgpOw0KJHBhcmFtc2FycmF5ID0gYXJyYXkoKTsNCmlmIChlbXB0eSgkY2F0ZWdvcnlsb25nbmFtZWxpc3QpID09IGZhbHNlKSB7DQoNCiAgICAkd2hlcmVzdGF0ZW1lbnQgPSBhcnJheSgpOw0KICAgIGZvcmVhY2ggKCRjYXRlZ29yeWxvbmduYW1lbGlzdCBhcyAkbG9ubmFtZSkgew0KICAgICAgICAkd2hlcmVzdGF0ZW1lbnRbXSA9ICdsb25nX25hbWUgTElLRSAgPyc7DQogICAgICAgICRwYXJhbXNhcnJheVtdID0gJGxvbm5hbWUgLiAnICUnOw0KICAgIH0NCiAgICAkd2hlcmVbXSA9ICcoJyAuIGltcGxvZGUoJyBPUiAnLCAkd2hlcmVzdGF0ZW1lbnQpIC4gJyknOw0KfQ0KJGNhdGVnb3J5bGlzdCA9IGdlbmVyYXRvcl90b29sczo6Z2V0X2NhdGVnb3J5X2xpc3QoJG1vZCwgJHdoZXJlLCAkcGFyYW1zYXJyYXkpOw0KDQovLyBmaWVsZHMgdmlldw0KJGFsbF9maWVsZHMgPSBnZW5lcmF0b3JfdG9vbHM6OmdldF9maWVsZHMoJG1vZCwgZmFsc2UpOw0KDQoNCmlmIChpc19hcnJheSgkYWxsX2ZpZWxkcykpIHsNCiAgICBmb3IgKCRpID0gMDsgJGkgPCBjb3VudCgkYWxsX2ZpZWxkcyk7ICRpKyspIHsNCiAgICAgICAgc3dpdGNoICgkYWxsX2ZpZWxkc1skaV1bJ3R5cGUnXSkgew0KICAgICAgICAgICAgY2FzZSAndGV4dGFyZWEnOg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAnc3RhdGljJzoNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgJ3RhYic6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICRmaWVsZHNfdmlld2FibGVbJGFsbF9maWVsZHNbJGldWydmaWVsZGRlZl9pZCddXSA9ICRhbGxfZmllbGRzWyRpXVsnbmFtZSddOw0KICAgICAgICAgICAgICAgICRmaWVsZF9uYW1lc1skYWxsX2ZpZWxkc1skaV1bJ2ZpZWxkZGVmX2lkJ11dID0gJGFsbF9maWVsZHNbJGldWydhbGlhcyddOw0KDQogICAgICAgICAgICAgICAgLy8gaWYgbW9kdWxlLCBnZXQgbW9kdWxlIGZ1bmMNCiAgICAgICAgICAgICAgICBpZiAoJGFsbF9maWVsZHNbJGldWyd0eXBlJ10gPT0gIm1vZHVsZSIpIHsNCiAgICAgICAgICAgICAgICAgICAgJGluc3RydWN0aW9ucyA9IGdlbmVyYXRvcl90b29sczo6Z2V0X2V4dHJhKCRhbGxfZmllbGRzWyRpXVsnZXh0cmEnXSk7DQogICAgICAgICAgICAgICAgICAgICRjdXN0b21tb2R1bGVwYXJhbXMgPSBnZW5lcmF0b3JfdG9vbHM6OmdldF9leHRyYV9tb2R1bGVwYXJhbXMoJGluc3RydWN0aW9ucyk7DQogICAgICAgICAgICAgICAgICAgIGlmIChpc19hcnJheSgkY3VzdG9tbW9kdWxlcGFyYW1zKSAmJiAhZW1wdHkoJGN1c3RvbW1vZHVsZXBhcmFtcykgJiYgY21zX3V0aWxzOjpnZXRfbW9kdWxlKCRjdXN0b21tb2R1bGVwYXJhbXNbIm1vZHVsZSJdKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgJGZpZWxkX21vZHVsZXNbJGFsbF9maWVsZHNbJGldWydmaWVsZGRlZl9pZCddXSA9ICRjdXN0b21tb2R1bGVwYXJhbXNbIm1vZHVsZSJdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIC8vIGlmIG1vZHVsZSwgZ2V0IG1vZHVsZSBmdW5jDQogICAgICAgICAgICAgICAgaWYgKCRhbGxfZmllbGRzWyRpXVsndHlwZSddID09ICJ1cGxvYWRfZmlsZSIpIHsNCiAgICAgICAgICAgICAgICAgICAgJGZpZWxkX2ltYWdlc1skYWxsX2ZpZWxkc1skaV1bJ2ZpZWxkZGVmX2lkJ11dID0gMTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgaWYgKGNvdW50KCRmaWVsZHNfdmlld2FibGUpICYmIGlzX2FycmF5KCRjdXN0b21fZmllbGRzKSkgew0KICAgICAgICAvLyBub3cgdHJpbSBkb3duIHRoZSBjdXN0b20gZmllbGRzDQogICAgICAgIC8vIHRvIG1ha2Ugc3VyZSB0aGF0IHNvbWV0aGluZyBoYXNuJ3QgYmVlbiBkZWxldGVkLg0KICAgICAgICAkdG1wID0gYXJyYXkoKTsNCiAgICAgICAgZm9yZWFjaCAoJGN1c3RvbV9maWVsZHMgYXMgJGZpZCkgew0KICAgICAgICAgICAgaWYgKGluX2FycmF5KCRmaWQsIGFycmF5X2tleXMoJGZpZWxkc192aWV3YWJsZSkpKSB7DQogICAgICAgICAgICAgICAgJHRtcFtdID0gJGZpZDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICAkY3VzdG9tX2ZpZWxkcyA9ICR0bXA7DQogICAgfSBlbHNlIHsNCiAgICAgICAgJGN1c3RvbV9maWVsZHMgPSBhcnJheSgpOw0KICAgIH0NCn0NCiRhbGxfZmllbGRzID0gY2dlX2FycmF5Ojp0b19oYXNoKCRhbGxfZmllbGRzLCAnbmFtZScpOw0KaWYgKGNvdW50KCRmaWVsZHNfdmlld2FibGUpKSB7DQogICAgJHNtYXJ0eS0+YXNzaWduKCdmaWVsZHNfdmlld2FibGUnLCAkZmllbGRzX3ZpZXdhYmxlKTsNCiAgICAkc21hcnR5LT5hc3NpZ24oJ2ZpZWxkX25hbWVzJywgJGZpZWxkX25hbWVzKTsNCiAgICAkc21hcnR5LT5hc3NpZ24oJ2ZpZWxkX21vZHVsZXMnLCAkZmllbGRfbW9kdWxlcyk7DQogICAgJHNtYXJ0eS0+YXNzaWduKCdmaWVsZF9pbWFnZXMnLCAkZmllbGRfaW1hZ2VzKTsNCn0NCg0KJHNtYXJ0eS0+YXNzaWduKCdjdXN0b21fZmllbGRzJywgJGN1c3RvbV9maWVsZHMpOw0KDQokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsICRtb2QtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdkZWZhdWx0YWRtaW4nKSk7DQokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCAkbW9kLT5DcmVhdGVGb3JtRW5kKCkpOw0KDQoNCg0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9oaWVyYXJjaHknLCAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2hpZXJhcmNoeScsICRjYXRlZ29yeWxpc3QsIC0xLCAkaGllcmFyY2h5KSk7DQoNCiRzbWFydHktPmFzc2lnbignaW5wdXRfY2hpbGRyZW4nLCAkbW9kLT5DcmVhdGVJbnB1dFllc05vRHJvcGRvd24oJGlkLCAnaW5wdXRfY2hpbGRyZW4nLCAkY2hpbGRyZW4pKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfc29ydGJ5JywgJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdpbnB1dF9zb3J0YnknLCAkc29ydGl0ZW1zLCAtMSwgJHNvcnRieSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zb3J0b3JkZXInLCAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2lucHV0X3NvcnRvcmRlcicsICRzb3J0b3JkZXJzLCAtMSwgJHNvcnRvcmRlcikpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9wYWdlbGltaXQnLCAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2lucHV0X3BhZ2VsaW1pdCcsICRwYWdlbGltaXRzLCAtMSwgJHBhZ2VsaW1pdCkpOw0KDQovLw0KLy8gQnVpbGQgdGhlIHF1ZXJ5DQovLw0KJGZpZWxkcyA9IGFycmF5KCk7DQokZmllbGRzW10gPSAnQS4qJzsNCiRmaWVsZHNbXSA9ICdCLmxvbmdfbmFtZSc7DQokcHJlZml4MSA9ICJTRUxFQ1QgPEZJRUxEUz4gRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV8iIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAiX2l0ZW0gQSAiOw0KJHByZWZpeDIgPSAiU0VMRUNUIENPVU5UKEEuaXRlbV9pZCkgRlJPTSAiIC4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV8iIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAiX2l0ZW0gQSAiOw0KJHdoZXJlID0gYXJyYXkoKTsNCiRqb2lucyA9IGFycmF5KCk7DQokcXBhcm1zID0gYXJyYXkoKTsNCg0KaWYgKGlzX2FycmF5KCRjdXN0b21fZmllbGRzKSAmJiBjb3VudCgkY3VzdG9tX2ZpZWxkcykgJiYgY291bnQoJGZpZWxkc192aWV3YWJsZSkpIHsNCiAgICBmb3IgKCRqID0gMDsgJGogPCBjb3VudCgkY3VzdG9tX2ZpZWxkcyk7ICRqKyspIHsNCiAgICAgICAgJGZpZCA9ICRjdXN0b21fZmllbGRzWyRqXTsNCiAgICAgICAgJGZpZWxkc1tdID0gIkZ2eyRqfS52YWx1ZSBBUyAnRmxkX197JGZpZWxkX25hbWVzWyRmaWRdfSciOw0KICAgICAgICAkam9pbnNbXSA9ICdMRUZUIE9VVEVSIEpPSU4gJyAuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfIiAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gIl9maWVsZHZhbCBGdnskan0NCiAgICAgICAgICAgICAgICAgICAgT04gRnZ7JGp9Lml0ZW1faWQgPSBBLml0ZW1faWQgQU5EIEZ2eyRqfS5maWVsZGRlZl9pZCA9ID8iOw0KICAgICAgICAkcXBhcm1zW10gPSAkY3VzdG9tX2ZpZWxkc1skal07DQogICAgfQ0KfQ0KDQoNCiRqb2luc1tdID0gJ0xFRlQgSk9JTiAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2NhdGVnb3JpZXMgQiANCiAgICAgICAgICAgICAgICAgIE9OIEEuY2F0ZWdvcnlfaWQgPSBCLmNhdGVnb3J5X2lkJzsNCg0KaWYgKCFlbXB0eSgkaGllcmFyY2h5KSkgew0KDQogICAgJHdoZXJlW10gPSAnQi5sb25nX25hbWUgTElLRSA/JzsNCiAgICBpZiAoJGNoaWxkcmVuKSB7DQogICAgICAgICRxcGFybXNbXSA9ICRoaWVyYXJjaHkgLiAnJSc7DQogICAgfSBlbHNlIHsNCiAgICAgICAgJHFwYXJtc1tdID0gJGhpZXJhcmNoeTsNCiAgICB9DQp9IGVsc2VpZiAoZW1wdHkoJGNhdGVnb3J5bG9uZ25hbWVsaXN0KSA9PSBmYWxzZSkgew0KICAgIGZvcmVhY2ggKCRjYXRlZ29yeWxvbmduYW1lbGlzdCBhcyAkbG9uZ25hbWUpIHsNCiAgICAgICAgJHdoZXJlW10gPSAnQi5sb25nX25hbWUgTElLRSA/JzsNCiAgICAgICAgJHFwYXJtc1tdID0gJGxvbmduYW1lIC4gJyUnOw0KICAgIH0NCn0NCg0KaWYgKCRtb2QtPkdldFByZWZlcmVuY2UoJ2ZpbHRlcl9kYXRlJykgJiYgJGRhdGVfZnJvbSAmJiAkZGF0ZV90bykgew0KICAgICR3aGVyZVtdID0gIiBBLml0ZW1fZGF0ZSAgPiA/IGFuZCBBLml0ZW1fZGF0ZSAgPCA/ICI7DQogICAgJHFwYXJtc1tdID0gdHJpbSgkZGItPkRCVGltZVN0YW1wKCRkYXRlX2Zyb20pLCAiJyIpOw0KICAgICRxcGFybXNbXSA9IHRyaW0oJGRiLT5EQlRpbWVTdGFtcCgkZGF0ZV90byksICInIik7DQp9DQoNCi8vIHByb2NjZXMgdmFsdWVzIGZyb20gcGFyYW1zDQppZiAoJGN1c3RvbV9maWVsZHNfdmFsdWVzKSB7DQogICAgZm9yZWFjaCAoJGN1c3RvbV9maWVsZHNfdmFsdWVzIGFzICRmbGRpZCA9PiAkdmFsdWUpIHsNCiAgICAgICAgaWYgKGVtcHR5KCR2YWx1ZSkpDQogICAgICAgICAgICBjb250aW51ZTsNCg0KICAgICAgICAkaiA9ICdjJyAuICRmbGRpZDsNCiAgICAgICAgJGpvaW5zW10gPSAnTEVGVCBPVVRFUiBKT0lOICcgLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlXyIgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICJfZmllbGR2YWwgRnZ7JGp9DQogICAgICAgICAgICAgICAgICAgIE9OIEZ2eyRqfS5pdGVtX2lkID0gQS5pdGVtX2lkIEFORCBGdnskan0uZmllbGRkZWZfaWQgPSA/IjsNCiAgICAgICAgLy9hcnJheV91bnNoaWZ0KCRxcGFybXMsICRmbGRpZCk7DQogICAgICAgICRxcGFybXNbXSA9ICRmbGRpZDsNCiAgICAgICAgJHdoZXJlW10gPSAnIEZ2JyAuICRqIC4gJy52YWx1ZSAgPSA/JzsNCiAgICAgICAgJHFwYXJtc1tdID0gJHZhbHVlOw0KICAgIH0NCn0NCg0KDQovLyBoYW5kbGUgZnVua3kgY3VzdG9tIGZpZWxkIHNvcnQgb3JkZXJzDQppZiAoc3RhcnRzd2l0aCgkc29ydGJ5LCAnZjonKSkgew0KICAgICRmaWVsZG5hbWUgPSBzdWJzdHIoJHNvcnRieSwgc3RybGVuKCdmOicpKTsNCiAgICBpZiAoaXNzZXQoJGZpZWxkZGVmc1skZmllbGRuYW1lXSkpIHsNCiAgICAgICAgJGZpZCA9ICRmaWVsZGRlZnNbJGZpZWxkbmFtZV0tPmZpZWxkZGVmX2lkOw0KICAgICAgICAkam9pbnNbXSA9ICdMRUZUIEpPSU4gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZHZhbCBmdg0KICAgICAgICAgICAgICAgICAgT04gZnYuaXRlbV9pZCA9IEEuaXRlbV9pZCc7DQogICAgICAgICR3aGVyZVtdID0gJ2Z2LmZpZWxkZGVmX2lkID0gPyc7DQogICAgICAgICRxcGFybXNbXSA9ICRmaWQ7DQogICAgICAgICRvcmRlciA9ICIgT1JERVIgQlkgZnYudmFsdWUgJHNvcnRvcmRlciI7DQogICAgfQ0KfSBlbHNlIHsNCiAgICAkb3JkZXIgPSAiIE9SREVSIEJZICRzb3J0YnkgJHNvcnRvcmRlciI7DQp9DQoNCiRzdHIgPSBpbXBsb2RlKCcgJywgJGpvaW5zKTsNCmlmIChjb3VudCgkd2hlcmUpKSB7DQogICAgJHN0ciAuPSAnIFdIRVJFICcgLiBpbXBsb2RlKCcgQU5EICcsICR3aGVyZSk7DQp9DQokcXVlcnkxID0gc3RyX3JlcGxhY2UoJzxGSUVMRFM+JywgaW1wbG9kZSgnLCcsICRmaWVsZHMpLCAkcHJlZml4MSkgLiAkc3RyIC4gJG9yZGVyOw0KJHF1ZXJ5MiA9ICRwcmVmaXgyIC4gJHN0cjsNCg0KLy8NCi8vIFNldHVwIHN0YXJ0IGVsZW1lbnQsIGFuZCBjb3VudCBwYWdlcw0KLy8NCiR0b3RhbGNvdW50ID0gJGRiLT5HZXRPbmUoJHF1ZXJ5MiwgJHFwYXJtcyk7DQokcGFnZWNvdW50ID0gKGludCkgKCR0b3RhbGNvdW50IC8gJHBhZ2VsaW1pdCk7DQppZiAoKCR0b3RhbGNvdW50ICUgJHBhZ2VsaW1pdCkgIT0gMCkNCiAgICAkcGFnZWNvdW50Kys7DQokc3RhcnRlbGVtZW50ID0gKCRwYWdlbnVtYmVyIC0gMSkgKiAkcGFnZWxpbWl0Ow0KDQovLw0KLy8gQmVnaW4gdGhlIG91dHB1dA0KLy8NCiRzbWFydHktPmFzc2lnbigncGFnZW51bWJlcicsICRwYWdlbnVtYmVyKTsNCiRzbWFydHktPmFzc2lnbigncGFnZWNvdW50JywgJHBhZ2Vjb3VudCk7DQokc21hcnR5LT5hc3NpZ24oJ3RvdGFscm93cycsICR0b3RhbGNvdW50KTsNCmlmICgkcGFnZW51bWJlciA+IDEpIHsNCiAgICAkcGFybXMgPSBhcnJheSgncGFnZW51bWJlcicgPT4gMSk7DQogICAgJHNtYXJ0eS0+YXNzaWduKCdmaXJzdHBhZ2VfdXJsJywgJG1vZC0+Q3JlYXRlVVJMKCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFybXMpKTsNCiAgICAkcGFybXMgPSBhcnJheSgncGFnZW51bWJlcicgPT4gJHBhZ2VudW1iZXIgLSAxKTsNCiAgICAkc21hcnR5LT5hc3NpZ24oJ3ByZXZwYWdlX3VybCcsICRtb2QtPkNyZWF0ZVVSTCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcm1zKSk7DQp9DQppZiAoJHBhZ2VudW1iZXIgPCAkcGFnZWNvdW50KSB7DQogICAgJHBhcm1zID0gYXJyYXkoJ3BhZ2VudW1iZXInID0+ICRwYWdlbnVtYmVyICsgMSk7DQogICAgJHNtYXJ0eS0+YXNzaWduKCduZXh0cGFnZV91cmwnLCAkbW9kLT5DcmVhdGVVUkwoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJtcykpOw0KICAgICRwYXJtcyA9IGFycmF5KCdwYWdlbnVtYmVyJyA9PiAkcGFnZWNvdW50KTsNCiAgICAkc21hcnR5LT5hc3NpZ24oJ2xhc3RwYWdlX3VybCcsICRtb2QtPkNyZWF0ZVVSTCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcm1zKSk7DQp9DQoNCiRwb3NpdGlvbiA9ICRkYi0+R2V0T25lKCdTRUxFQ1QgbWF4KHBvc2l0aW9uKSBhcyBtYXhfcG9zaXRpb24gRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJHRoaXMtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtJyk7DQoNCiRlbnRyeWFycmF5ID0gYXJyYXkoKTsNCiRkYnJlc3VsdCA9ICRkYi0+U2VsZWN0TGltaXQoJHF1ZXJ5MSwgJHBhZ2VsaW1pdCwgJHN0YXJ0ZWxlbWVudCwgJHFwYXJtcyk7DQovL2VjaG8gJGRiLT5zcWw7DQp3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpIHsNCiAgICAkb25lcm93ID0gY2dlX2FycmF5Ojp0b19vYmplY3QoJHJvdyk7DQoNCiAgICAvLyBtb3ZlIHVwDQogICAgaWYgKCRyb3dbJ3Bvc2l0aW9uJ10gPiAxKSB7DQogICAgICAgICRvbmVyb3ctPnVwbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX21vdmVpdGVtJywgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vYXJyb3ctdS5naWYnLCBnZW5lcmF0b3IoKS0+TGFuZygndXAnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLCBhcnJheSgnaXRlbV9pZCcgPT4gJHJvd1snaXRlbV9pZCddLCAnZGlyJyA9PiAndXAnKSk7DQogICAgfSBlbHNlIHsNCiAgICAgICAgJG9uZXJvdy0+dXBsaW5rID0gJyc7DQogICAgfQ0KDQogICAgLy8gbW92ZSBkb3duDQogICAgaWYgKCRwb3NpdGlvbiA+ICRyb3dbJ3Bvc2l0aW9uJ10pIHsNCiAgICAgICAgJG9uZXJvdy0+ZG93bmxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9tb3ZlaXRlbScsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2Fycm93LWQuZ2lmJywgZ2VuZXJhdG9yKCktPkxhbmcoJ2Rvd24nKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLCBhcnJheSgnaXRlbV9pZCcgPT4gJHJvd1snaXRlbV9pZCddLCAnZGlyJyA9PiAnZG93bicpKTsNCiAgICB9IGVsc2Ugew0KICAgICAgICAkb25lcm93LT5kb3dubGluayA9ICcnOw0KICAgIH0NCg0KICAgIC8vIGFwcHJvdmUNCiAgICBpZiAoJHJvd1snYWN0aXZlJ10pIHsNCiAgICAgICAgJG9uZXJvdy0+YXBwcm92ZSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FwcHJvdmVpdGVtJywgJHJldHVybmlkLCAkYWRtaW50aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vdHJ1ZS5naWYnLCAkdGhpcy0+TGFuZygncmV2ZXJ0JyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2FwcHJvdmUnID0+IDAsICdpdGVtX2lkJyA9PiAkcm93WydpdGVtX2lkJ10pKTsNCiAgICB9IGVsc2Ugew0KICAgICAgICAkb25lcm93LT5hcHByb3ZlID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYXBwcm92ZWl0ZW0nLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9mYWxzZS5naWYnLCAkdGhpcy0+TGFuZygnYXBwcm92ZScpLCAnJywgJycsICdzeXN0ZW1pY29uJyksIGFycmF5KCdhcHByb3ZlJyA9PiAxLCAnaXRlbV9pZCcgPT4gJHJvd1snaXRlbV9pZCddKSk7DQogICAgfQ0KDQogICAgJG9uZXJvdy0+ZWRpdF91cmwgPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2VkaXRpdGVtJywgJHJldHVybmlkLCAkcm93Wyd0aXRsZSddLCBhcnJheSgnaXRlbV9pZCcgPT4gJHJvd1snaXRlbV9pZCddKSwgJycsIHRydWUpOw0KICAgICRvbmVyb3ctPmVkaXRsaW5rID0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9lZGl0aXRlbScsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywgZ2VuZXJhdG9yKCktPkxhbmcoJ2VkaXQnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLCBhcnJheSgnaXRlbV9pZCcgPT4gJHJvd1snaXRlbV9pZCddKSk7DQogICAgJG9uZXJvdy0+ZGVsZXRlbGluayA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fZGVsZXRlaXRlbScsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCBnZW5lcmF0b3IoKS0+TGFuZygnZGVsZXRlJyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2l0ZW1faWQnID0+ICRyb3dbJ2l0ZW1faWQnXSksIGdlbmVyYXRvcigpLT5MYW5nKCdhcmV5b3VzdXJlJykpOw0KICAgICRvbmVyb3ctPmZpbGVfbG9jYXRpb24gPSBnZW5lcmF0b3JfdG9vbHM6OmZpbGVfbG9jYXRpb24oJG1vZCwgJHJvdyk7DQogICAgJG9uZXJvdy0+ZmlsZXBhdGhfbG9jYXRpb24gPSBnZW5lcmF0b3JfdG9vbHM6OmZpbGVwYXRoX2xvY2F0aW9uKCRtb2QsICRyb3cpOw0KDQogICAgJGVudHJ5YXJyYXlbXSA9ICRvbmVyb3c7DQp9DQoNCiRtb2QtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignaXRlbXMnLCAkZW50cnlhcnJheSk7DQokbW9kLT5zbWFydHktPmFzc2lnbignaXRlbWNvdW50JywgY291bnQoJGVudHJ5YXJyYXkpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdkYXRlX2Zyb20nLCAkZGF0ZV9mcm9tKTsNCiRzbWFydHktPmFzc2lnbignZGF0ZV90bycsICRkYXRlX3RvKTsNCg0KDQokbW9kLT5zbWFydHktPmFzc2lnbignYWRkbGluaycsICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fZWRpdGl0ZW0nLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJywgZ2VuZXJhdG9yKCktPkxhbmcoJ2FkZCcpIC4gJyAnIC4gJG1vZC0+R2V0UHJlZmVyZW5jZSgnaXRlbV9zaW5ndWxhcicsICcnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpIC4gJyAnIC4gZ2VuZXJhdG9yKCktPkxhbmcoJ2FkZCcpIC4gJyAnIC4gJG1vZC0+R2V0UHJlZmVyZW5jZSgnaXRlbV9zaW5ndWxhcicsICcnKSkpOw0KJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lkdGV4dCcsIGdlbmVyYXRvcigpLT5MYW5nKCdpZCcpKTsNCg0KDQokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydDInLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2FkbWluX2J1bGthY3Rpb24nLCAkcmV0dXJuaWQpKTsNCiRzbWFydHktPmFzc2lnbignZm9ybWVuZDInLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsNCiRidWxrYWN0aW9ucyA9IGFycmF5KCk7DQokYnVsa2FjdGlvbnNbJ2RlbGV0ZSddID0gJHRoaXMtPkxhbmcoJ2RlbGV0ZScpOw0KJGJ1bGthY3Rpb25zWydzZXRpbmFjdGl2ZSddID0gJHRoaXMtPkxhbmcoJ3NldGRyYWZ0Jyk7DQokYnVsa2FjdGlvbnNbJ3NldGFjdGl2ZSddID0gJHRoaXMtPkxhbmcoJ3NldHB1Ymxpc2hlZCcpOw0KJHNtYXJ0eS0+YXNzaWduKCdidWxrYWN0aW9ucycsICRidWxrYWN0aW9ucyk7DQoNCi8vIGdldCB0aGUgY3VzdG9tIGZpZWxkcw0KJGZpbHRlcnMgPSBuZXcgZ2VuZXJhdG9yX2ZpbHRlcnMoJGlkLCAkbW9kLCAnYWRtaW4nKTsNCiRjdXN0b21fZmxkcyA9ICRmaWx0ZXJzLT5wcm9jZXNzX2N1c3RvbV9maWVsZHMoYXJyYXkoKSwgJGN1c3RvbV9mbGRzKTsNCiRjdXN0b21fZmxkc19vYmogPSAkZmlsdGVycy0+Z2VuZXJhdGUobnVsbCwgJHBhcmFtcywgJGN1c3RvbV9maWVsZHNfdmFsdWVzKTsNCmlmIChpc3NldCgkY3VzdG9tX2ZsZHNfb2JqKSAmJiBjb3VudCgkY3VzdG9tX2ZsZHNfb2JqKSA+IDApIHsNCiAgICAkc21hcnR5LT5hc3NpZ24oJ2N1c3RvbV9maWVsZGRlZicsICRjdXN0b21fZmxkc19vYmopOw0KfQ0KDQplY2hvICRtb2QtPlByb2Nlc3NUZW1wbGF0ZSgnaXRlbXRhYi50cGwnKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/function.admin_optiontab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYgKCEkbW9kLT5DaGVja1Blcm1pc3Npb24oJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9vcHRpb24nKSkNCiAgICByZXR1cm47DQoNCg0KLy8kc29ydGl0ZW1zID0gYXJyYXkoKTsNCiRzb3J0aXRlbXNbJG1vZC0+R2V0UHJlZmVyZW5jZSgnaXRlbV90aXRsZScpXSA9ICd0aXRsZSc7DQovLyRzb3J0aXRlbXNbZ2VuZXJhdG9yKCktPkxhbmcoJ2RhdGUnKV0gPSAnaXRlbV9kYXRlJzsNCi8vJHNvcnRpdGVtc1tnZW5lcmF0b3IoKS0+TGFuZygnY3JlYXRlZGRhdGUnKV0gPSAnY3JlYXRlX2RhdGUnOw0KLy8kc29ydGl0ZW1zW2dlbmVyYXRvcigpLT5MYW5nKCdtb2RpZmllZGRhdGUnKV0gPSAnbW9kaWZpZWRfZGF0ZSc7DQokc29ydG9yZGVycyA9IGFycmF5KCk7DQokc29ydG9yZGVyc1tnZW5lcmF0b3IoKS0+TGFuZygnYXNjZW5kaW5nJyldID0gJ2FzYyc7DQokc29ydG9yZGVyc1tnZW5lcmF0b3IoKS0+TGFuZygnZGVzY2VuZGluZycpXSA9ICdkZXNjJzsNCiRtb2RlcyA9IGFycmF5KCk7DQokbW9kZXNbZ2VuZXJhdG9yKCktPkxhbmcoJ3NpbXBsZScpXSA9ICdzaW1wbGUnOw0KJG1vZGVzW2dlbmVyYXRvcigpLT5MYW5nKCdhZHZhbmNlZCcpXSA9ICdhZHZhbmNlZCc7DQoNCiRzb3J0b3JkZXJfYWR2YW5jZWQgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdzb3J0b3JkZXJfYWR2YW5jZWQnLCAnZGVzYycpOw0KJHNvcnRieV9hZHZhbmNlZCA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ3NvcnRieV9hZHZhbmNlZCcsICdjcmVhdGVfZGF0ZScpOw0KDQokc29ydG9yZGVyX3NpbXBsZSA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ3NvcnRvcmRlcl9zaW1wbGUnLCAnZGVzYycpOw0KJHNvcnRieV9zaW1wbGUgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdzb3J0Ynlfc2ltcGxlJywgJ3Bvc2l0aW9uJyk7DQoNCg0KJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCAkbW9kLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5fZWRpdG9wdGlvbicsICRyZXR1cm5pZCkpOw0KJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJG1vZC0+Q3JlYXRlRm9ybUVuZCgpKTsNCiRzbWFydHktPmFzc2lnbignc3VibWl0JywgJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfc2VhcmNoYWJsZScsIGdlbmVyYXRvcigpLT5MYW5nKCdwcm9tcHRfc2VhcmNoYWJsZScpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfc2VhcmNoYWJsZScsICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnc2VhcmNoYWJsZScsIDEsICRtb2QtPkdldFByZWZlcmVuY2UoJ3NlYXJjaGFibGUnKSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdzZWFyY2hhYmxlJywgJG1vZC0+R2V0UHJlZmVyZW5jZSgnc2VhcmNoYWJsZScpKTsNCiRzbWFydHktPmFzc2lnbignc2VhcmNoYWJsZV9saW5rJywgJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9zZWFyY2hfcmVpbmRleCcsICRyZXR1cm5pZCwgJG1vZC0+TGFuZygncmVpbmRleCcpKSk7DQoNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfc2VhcmNoX2RhdGVfZW5kJywgZ2VuZXJhdG9yKCktPkxhbmcoJ3Byb21wdF9zZWFyY2hfZGF0ZV9lbmQnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3NlYXJjaF9kYXRlX2VuZCcsICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnc2VhcmNoX2RhdGVfZW5kJywgMSwgJG1vZC0+R2V0UHJlZmVyZW5jZSgnc2VhcmNoX2RhdGVfZW5kJykpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfaXRlbV90aXRsZScsIGdlbmVyYXRvcigpLT5MYW5nKCdwcm9tcHRfaXRlbV90aXRsZScpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfaXRlbV90aXRsZScsICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdpdGVtX3RpdGxlJywgJG1vZC0+R2V0UHJlZmVyZW5jZSgnaXRlbV90aXRsZScsICcnKSwgNTApKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfaXRlbV9zaW5ndWxhcicsIGdlbmVyYXRvcigpLT5MYW5nKCdwcm9tcHRfaXRlbV9zaW5ndWxhcicpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfaXRlbV9zaW5ndWxhcicsICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdpdGVtX3Npbmd1bGFyJywgJG1vZC0+R2V0UHJlZmVyZW5jZSgnaXRlbV9zaW5ndWxhcicsICcnKSwgNTApKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfaXRlbV9wbHVyYWwnLCBnZW5lcmF0b3IoKS0+TGFuZygncHJvbXB0X2l0ZW1fcGx1cmFsJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9pdGVtX3BsdXJhbCcsICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdpdGVtX3BsdXJhbCcsICRtb2QtPkdldFByZWZlcmVuY2UoJ2l0ZW1fcGx1cmFsJywgJycpLCA1MCkpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9mcmllbmRseW5hbWUnLCBnZW5lcmF0b3IoKS0+TGFuZygncHJvbXB0X2ZyaWVuZGx5bmFtZScpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfZnJpZW5kbHluYW1lJywgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZyaWVuZGx5bmFtZScsICRtb2QtPkdldFByZWZlcmVuY2UoJ2ZyaWVuZGx5bmFtZScsICcnKSwgNTApKTsNCg0KDQokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF91cmxfcHJlZml4JywgZ2VuZXJhdG9yKCktPkxhbmcoJ3Byb21wdF91cmxfcHJlZml4JykpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF91cmxfcHJlZml4JywgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3VybF9wcmVmaXgnLCAkbW9kLT5HZXRQcmVmZXJlbmNlKCd1cmxfcHJlZml4JywgJycpLCA1MCkpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9kZWZhdWx0X2FjdGlvbl9wYXJhbXMnLCBnZW5lcmF0b3IoKS0+TGFuZygncHJvbXB0X2RlZmF1bHRfYWN0aW9uX3BhcmFtcycpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfZGVmYXVsdF9hY3Rpb25fcGFyYW1zJywgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2RlZmF1bHRfYWN0aW9uX3BhcmFtcycsICRtb2QtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfYWN0aW9uX3BhcmFtcycsICcnKSwgNTApKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfZGV0YWlsX2FjdGlvbl9wYXJhbXMnLCBnZW5lcmF0b3IoKS0+TGFuZygncHJvbXB0X2RldGFpbF9hY3Rpb25fcGFyYW1zJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9kZXRhaWxfYWN0aW9uX3BhcmFtcycsICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdkZXRhaWxfYWN0aW9uX3BhcmFtcycsICRtb2QtPkdldFByZWZlcmVuY2UoJ2RldGFpbF9hY3Rpb25fcGFyYW1zJywgJycpLCA1MCkpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF90aXRsZV9wYXJhbV9mb3JfY2FjaGUnLCBnZW5lcmF0b3IoKS0+TGFuZygncHJvbXB0X3RpdGxlX3BhcmFtX2Zvcl9jYWNoZScpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfdGl0bGVfcGFyYW1fZm9yX2NhY2hlJywgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3RpdGxlX3BhcmFtX2Zvcl9jYWNoZScsICRtb2QtPkdldFByZWZlcmVuY2UoJ3RpdGxlX3BhcmFtX2Zvcl9jYWNoZScsICcnKSwgNTApKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfZGlzcGxheV9pbmxpbmUnLCBnZW5lcmF0b3IoKS0+TGFuZygncHJvbXB0X2Rpc3BsYXlfaW5saW5lJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9kaXNwbGF5X2lubGluZScsICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZGlzcGxheV9pbmxpbmUnLCAxLCAkbW9kLT5HZXRQcmVmZXJlbmNlKCdkaXNwbGF5X2lubGluZScpKSk7DQoNCiRzbWFydHktPmFzc2lnbigncHJvbXB0X2xhenlsb2FkaW5nJywgZ2VuZXJhdG9yKCktPkxhbmcoJ3Byb21wdF9sYXp5bG9hZGluZycpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfbGF6eWxvYWRpbmcnLCAkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2xhenlsb2FkaW5nJywgMSwgJG1vZC0+R2V0UHJlZmVyZW5jZSgnbGF6eWxvYWRpbmcnKSkpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF91c2VyZ3JvdXBfZGVwZW5kZW5jZScsIGdlbmVyYXRvcigpLT5MYW5nKCdwcm9tcHRfdXNlcmdyb3VwX2RlcGVuZGVuY2UnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3VzZXJncm91cF9kZXBlbmRlbmNlJywgJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICd1c2VyZ3JvdXBfZGVwZW5kZW5jZScsIDEsICRtb2QtPkdldFByZWZlcmVuY2UoJ3VzZXJncm91cF9kZXBlbmRlbmNlJykpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfaGFzX2FkbWluJywgZ2VuZXJhdG9yKCktPkxhbmcoJ3Byb21wdF9oYXNfYWRtaW4nKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2hhc19hZG1pbicsICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnaGFzX2FkbWluJywgMSwgJG1vZC0+R2V0UHJlZmVyZW5jZSgnaGFzX2FkbWluJykpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfaGFzX2dhbGxlcnknLCAkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2hhc19nYWxsZXJ5JywgMSwgJG1vZC0+R2V0UHJlZmVyZW5jZSgnaGFzX2dhbGxlcnknKSkpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9nYWxsZXJ5X3NvcnRvcmRlcicsICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZ2FsbGVyeV9zb3J0b3JkZXInLCAkc29ydG9yZGVycywgLTEsICRtb2QtPkdldFByZWZlcmVuY2UoJ2dhbGxlcnlfc29ydG9yZGVyJywnZGVzYycpKSk7DQoNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfaXRlbV90aXRsZV9lZGl0JywgZ2VuZXJhdG9yKCktPkxhbmcoJ3Byb21wdF9pdGVtX3RpdGxlX2VkaXQnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2l0ZW1fdGl0bGVfZWRpdCcsICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnaXRlbV90aXRsZV9lZGl0JywgMSwgJG1vZC0+R2V0UHJlZmVyZW5jZSgnaXRlbV90aXRsZV9lZGl0JykpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfaXRlbV9hbGlhc19lZGl0JywgZ2VuZXJhdG9yKCktPkxhbmcoJ3Byb21wdF9pdGVtX2FsaWFzX2VkaXQnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2l0ZW1fYWxpYXNfZWRpdCcsICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnaXRlbV9hbGlhc19lZGl0JywgMSwgJG1vZC0+R2V0UHJlZmVyZW5jZSgnaXRlbV9hbGlhc19lZGl0JykpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfaXRlbV91cmxfZWRpdCcsIGdlbmVyYXRvcigpLT5MYW5nKCdwcm9tcHRfaXRlbV91cmxfZWRpdCcpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfaXRlbV91cmxfZWRpdCcsICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnaXRlbV91cmxfZWRpdCcsIDEsICRtb2QtPkdldFByZWZlcmVuY2UoJ2l0ZW1fdXJsX2VkaXQnKSkpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9pdGVtX2RhdGVfZWRpdCcsIGdlbmVyYXRvcigpLT5MYW5nKCdwcm9tcHRfaXRlbV9kYXRlX2VkaXQnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2l0ZW1fZGF0ZV9lZGl0JywgJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdpdGVtX2RhdGVfZWRpdCcsIDEsICRtb2QtPkdldFByZWZlcmVuY2UoJ2l0ZW1fZGF0ZV9lZGl0JykpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfaXRlbV9kYXRlX2VuZF9lZGl0JywgZ2VuZXJhdG9yKCktPkxhbmcoJ3Byb21wdF9pdGVtX2RhdGVfZW5kX2VkaXQnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2l0ZW1fZGF0ZV9lbmRfZWRpdCcsICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnaXRlbV9kYXRlX2VuZF9lZGl0JywgMSwgJG1vZC0+R2V0UHJlZmVyZW5jZSgnaXRlbV9kYXRlX2VuZF9lZGl0JykpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfaXRlbV9jYXRlZ29yeV9lZGl0JywgZ2VuZXJhdG9yKCktPkxhbmcoJ3Byb21wdF9pdGVtX2NhdGVnb3J5X2VkaXQnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2l0ZW1fY2F0ZWdvcnlfZWRpdCcsICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnaXRlbV9jYXRlZ29yeV9lZGl0JywgMSwgJG1vZC0+R2V0UHJlZmVyZW5jZSgnaXRlbV9jYXRlZ29yeV9lZGl0JywgMCkpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfcmVjdXJzaXZlJywgZ2VuZXJhdG9yKCktPkxhbmcoJ3Byb21wdF9yZWN1cnNpdmUnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3JlY3Vyc2l2ZScsICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAncmVjdXJzaXZlJywgMSwgJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVjdXJzaXZlJywgMCkpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfZmlsdGVyX2RhdGUnLCBnZW5lcmF0b3IoKS0+TGFuZygncHJvbXB0X2ZpbHRlcl9kYXRlJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9maWx0ZXJfZGF0ZScsICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZmlsdGVyX2RhdGUnLCAxLCAkbW9kLT5HZXRQcmVmZXJlbmNlKCdmaWx0ZXJfZGF0ZScpKSk7DQoNCiRzbWFydHktPmFzc2lnbigncHJvbXB0X21vZGUnLCBnZW5lcmF0b3IoKS0+TGFuZygnbW9kZScpKTsNCiRzbWFydHktPmFzc2lnbigncHJvbXB0X2FkdmFuY2VkJywgZ2VuZXJhdG9yKCktPkxhbmcoJ2FkdmFuY2VkJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfc2ltcGxlJywgZ2VuZXJhdG9yKCktPkxhbmcoJ3NpbXBsZScpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfc3VtbWFyeV9zb3J0aW5nJywgZ2VuZXJhdG9yKCktPkxhbmcoJ3Byb21wdF9zdW1tYXJ5X3NvcnRpbmcnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3N1bW1hcnlfc29ydGluZ19hZHZhbmNlZCcsICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnc29ydGJ5X2FkdmFuY2VkJywgJHNvcnRpdGVtcywgLTEsICRzb3J0YnlfYWR2YW5jZWQpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfc3VtbWFyeV9zb3J0b3JkZXInLCBnZW5lcmF0b3IoKS0+TGFuZygncHJvbXB0X3N1bW1hcnlfc29ydG9yZGVyJykpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zdW1tYXJ5X3NvcnRvcmRlcl9hZHZhbmNlZCcsICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnc29ydG9yZGVyX2FkdmFuY2VkJywgJHNvcnRvcmRlcnMsIC0xLCAkc29ydG9yZGVyX2FkdmFuY2VkKSk7DQoNCiRzbWFydHktPmFzc2lnbigncHJvbXB0X3N1bW1hcnlfcGFnZWxpbWl0JywgZ2VuZXJhdG9yKCktPkxhbmcoJ3Byb21wdF9zdW1tYXJ5X3BhZ2VsaW1pdCcpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfc3VtbWFyeV9wYWdlbGltaXRfYWR2YW5jZWQnLCAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnc3VtbWFyeV9wYWdlbGltaXRfYWR2YW5jZWQnLCAkbW9kLT5HZXRQcmVmZXJlbmNlKCdzdW1tYXJ5X3BhZ2VsaW1pdF9hZHZhbmNlZCcsIDI1KSwgNSwgNSkpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9zdW1tYXJ5X3NvcnRpbmcnLCBnZW5lcmF0b3IoKS0+TGFuZygncHJvbXB0X3N1bW1hcnlfc29ydGluZycpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfc3VtbWFyeV9zb3J0aW5nX3NpbXBsZScsICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdzb3J0Ynlfc2ltcGxlJywgJ3Bvc2l0aW9uJywgNTAsIDI1NSwgJ2Rpc2FibGVkPSJkaXNhYmxlZCInKQ0KKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfc3VtbWFyeV9zb3J0b3JkZXInLCBnZW5lcmF0b3IoKS0+TGFuZygncHJvbXB0X3N1bW1hcnlfc29ydG9yZGVyJykpOw0KDQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3N1bW1hcnlfc29ydG9yZGVyX3NpbXBsZScsICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnc29ydG9yZGVyX3NpbXBsZScsICRzb3J0b3JkZXJzLCAtMSwgJHNvcnRvcmRlcl9zaW1wbGUpKTsNCg0KJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfc3VtbWFyeV9wYWdlbGltaXQnLCBnZW5lcmF0b3IoKS0+TGFuZygncHJvbXB0X3N1bW1hcnlfcGFnZWxpbWl0JykpOw0KJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zdW1tYXJ5X3BhZ2VsaW1pdF9zaW1wbGUnLCAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnc3VtbWFyeV9wYWdlbGltaXRfc2ltcGxlJywgJG1vZC0+R2V0UHJlZmVyZW5jZSgnc3VtbWFyeV9wYWdlbGltaXRfc2ltcGxlJywgMjUpLCA1LCA1LCAnZGlzYWJsZWQ9ImRpc2FibGVkIicpKTsNCg0KJGNvbnRlbnRvcHMgPSBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOw0KDQoNCiRzbWFydHktPmFzc2lnbigncHJvbXB0X2l0ZW1fZGV0YWlsX3JldHVybmlkJywgZ2VuZXJhdG9yKCktPkxhbmcoJ3Byb21wdF9pdGVtX2RldGFpbF9yZXR1cm5pZCcpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfaXRlbV9kZXRhaWxfcmV0dXJuaWQnLCAkY29udGVudG9wcy0+Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oJycsICRtb2QtPkdldFByZWZlcmVuY2UoJ2l0ZW1fZGV0YWlsX3JldHVybmlkJywgLTEpLCAkaWQgLiAnaXRlbV9kZXRhaWxfcmV0dXJuaWQnKSk7DQoNCiRzbWFydHktPmFzc2lnbigncHJvbXB0X2l0ZW1fY2F0ZWdvcnlfcmV0dXJuaWQnLCBnZW5lcmF0b3IoKS0+TGFuZygncHJvbXB0X2l0ZW1fY2F0ZWdvcnlfcmV0dXJuaWQnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2l0ZW1fY2F0ZWdvcnlfcmV0dXJuaWQnLCAkY29udGVudG9wcy0+Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oJycsICRtb2QtPkdldFByZWZlcmVuY2UoJ2l0ZW1fY2F0ZWdvcnlfcmV0dXJuaWQnLCAtMSksICRpZCAuICdpdGVtX2NhdGVnb3J5X3JldHVybmlkJykpOw0KDQokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9jdXN0b21fZmllbGRzX2RlZmF1bHQnLCBnZW5lcmF0b3IoKS0+TGFuZygncHJvbXB0X2N1c3RvbV9maWVsZHNfZGVmYXVsdF9hZG1pbicpKTsNCiRzbWFydHktPmFzc2lnbignY3VzdG9tX2ZpZWxkc19kZWZhdWx0JywgZXhwbG9kZSgnLCcsICRtb2QtPkdldFByZWZlcmVuY2UoJ2N1c3RvbV9maWVsZHNfZGVmYXVsdCcpKSk7DQoNCiRzbWFydHktPmFzc2lnbignaW5wdXRfbW9kZScsICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnbW9kZScsICRtb2RlcywgLTEsICRtb2QtPkdldFByZWZlcmVuY2UoJ21vZGUnLCAnYWR2YW5jZWQnKSkpOw0KDQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3ByZXZpZXdfYWRtaW4nLCAkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ3ByZXZpZXdfYWRtaW4nLCAxLCAkbW9kLT5HZXRQcmVmZXJlbmNlKCdwcmV2aWV3X2FkbWluJykpKTsNCiRzbWFydHktPmFzc2lnbignaW5wdXRfY29weV9hZG1pbicsICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnY29weV9hZG1pbicsIDEsICRtb2QtPkdldFByZWZlcmVuY2UoJ2NvcHlfYWRtaW4nKSkpOw0KDQplY2hvICRtb2QtPlByb2Nlc3NUZW1wbGF0ZSgnb3B0aW9udGFiLnRwbCcpOw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/function.admin_templatetab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaWYgKCEkbW9kLT5DaGVja1Blcm1pc3Npb24oJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9vcHRpb24nKSkNCiAgICByZXR1cm47DQokYWRtaW50aGVtZSA9IGNtc21zKCktPmdldF92YXJpYWJsZSgnYWRtaW50aGVtZScpOw0KDQokcXVlcnkgPSAnU0VMRUNUIHRwbF9pZCwgbmFtZSwgY29udGVudCwgdHlwZSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfdGVtcGxhdGUnOw0KJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOw0KJGl0ZW1zID0gQXJyYXkoKTsNCiRyb3djbGFzcyA9ICdyb3cxJzsNCg0Kd2hpbGUgKCRyZXN1bHQgJiYgJHJvdyA9ICRyZXN1bHQtPkZldGNoUm93KCkpIHsNCiAgICAkdG1wID0gbmV3IFN0ZENsYXNzKCk7DQogICAgJHRtcC0+bGluayA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fZWRpdHRlbXBsYXRlJywgJHJldHVybmlkLCAkcm93WyduYW1lJ10sIGFycmF5KCd0cGxfaWQnID0+ICRyb3dbJ3RwbF9pZCddKSk7DQogICAgJHRtcC0+ZGVsZXRlID0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9kZWxldGV0ZW1wbGF0ZScsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCBnZW5lcmF0b3IoKS0+TGFuZygnZGVsZXRlJyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwgYXJyYXkoJ3RwbF9pZCcgPT4gJHJvd1sndHBsX2lkJ10pLCBnZW5lcmF0b3IoKS0+TGFuZygnYXJleW91c3VyZScpKTsNCiAgICAkdG1wLT5lZGl0ID0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9lZGl0dGVtcGxhdGUnLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsIGdlbmVyYXRvcigpLT5MYW5nKCdlZGl0JyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwgYXJyYXkoJ3RwbF9pZCcgPT4gJHJvd1sndHBsX2lkJ10pKTsNCiAgICAkdG1wLT5yb3djbGFzcyA9ICRyb3djbGFzczsNCg0KICAgICRpID0gaXNzZXQoJGl0ZW1zWyRyb3dbJ3R5cGUnXV0pID8gY291bnQoJGl0ZW1zWyRyb3dbJ3R5cGUnXV0pIDogMDsNCiAgICAkaXRlbXNbJHJvd1sndHlwZSddXVskaV0gPSAkdG1wOw0KDQogICAgJHJvd2NsYXNzID0gKCRyb3djbGFzcyA9PSAncm93MScgPyAncm93MicgOiAncm93MScpOw0KfQ0KDQokc21hcnR5LT5hc3NpZ24oJ2l0ZW1jb3VudCcsIGNvdW50KCRpdGVtcykpOw0KJHNtYXJ0eS0+YXNzaWduKCdpdGVtcycsICRpdGVtcyk7DQokc21hcnR5LT5hc3NpZ24oJ2RldGFpbHRlbXBsYXRlcycsIGdlbmVyYXRvcigpLT5MYW5nKCdkZXRhaWx0ZW1wbGF0ZXMnKSk7DQokc21hcnR5LT5hc3NpZ24oJ3N1bW1hcnl0ZW1wbGF0ZXMnLCBnZW5lcmF0b3IoKS0+TGFuZygnc3VtbWFyeXRlbXBsYXRlcycpKTsNCiRzbWFydHktPmFzc2lnbignaGVhZGVyX25hbWUnLCBnZW5lcmF0b3IoKS0+TGFuZygndGVtcGxhdGUnKSk7DQokc21hcnR5LT5hc3NpZ24oJ2FkZGRldGFpbGxpbmsnLCAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2VkaXR0ZW1wbGF0ZScsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCBnZW5lcmF0b3IoKS0+TGFuZygnYWRkdGVtcGxhdGUnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpIC4gJyAnIC4gc3ByaW50ZihnZW5lcmF0b3IoKS0+TGFuZygnYWRkdGVtcGxhdGUnKSwgJ0RldGFpbCcpLCBhcnJheSgndHlwZScgPT4gJ2RldGFpbCcpKSk7DQokc21hcnR5LT5hc3NpZ24oJ2FkZHN1bW1hcnlsaW5rJywgJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9lZGl0dGVtcGxhdGUnLCAkcmV0dXJuaWQsICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJywgZ2VuZXJhdG9yKCktPkxhbmcoJ2FkZHRlbXBsYXRlJyksICcnLCAnJywgJ3N5c3RlbWljb24nKSAuICcgJyAuIHNwcmludGYoZ2VuZXJhdG9yKCktPkxhbmcoJ2FkZHRlbXBsYXRlJyksICdTdW1tYXJ5JyksIGFycmF5KCd0eXBlJyA9PiAnc3VtbWFyeScpKSk7DQoNCmVjaG8gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlKCd0ZW1wbGF0ZXRhYi50cGwnKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/ModuleLib/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOw0KJGRpciA9IHN0cl9yZXBsYWNlKCdcXCcgLCAnLycsIGRpcm5hbWUoX19GSUxFX18pKTsNCmluY2x1ZGUoc3RyX3JlcGxhY2UoJ01vZHVsZUxpYicuRElSRUNUT1JZX1NFUEFSQVRPUiwnJywgIF9fRklMRV9fKSk7DQoNCiRsYW5nWydwb3N0aW5zdGFsbCddID0gJG1vZHVsZV9uYW1lIC4gJyBoYXMgc3VjY2Vzc2Z1bGx5IGJlZW4gaW5zdGFsbGVkJzsNCiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAkbW9kdWxlX25hbWUuICcgaGFzIHN1Y2Nlc3NmdWxseSBiZWVuIHVuaW5zdGFsbGVkJzsNCiRsYW5nWyRtb2R1bGVfYWxpYXMgLiAnX21vZGlmeV9pdGVtJ10gPSAkbW9kdWxlX25hbWUgLiAnOiBNb2RpZnkgSXRlbXMnOw0KJGxhbmdbJG1vZHVsZV9hbGlhcyAuICdfbW9kaWZ5X2NhdGVnb3JpZXMnXSA9ICRtb2R1bGVfbmFtZSAuICc6IE1vZGlmeSBDYXRlZ29yaWVzJzsNCiRsYW5nWyRtb2R1bGVfYWxpYXMgLiAnX21vZGlmeV9vcHRpb24nXSA9ICRtb2R1bGVfbmFtZSAuICc6IE1vZGlmeSBPcHRpb25zJzsNCiRsYW5nWyRtb2R1bGVfYWxpYXMgLiAnX2FsbF9jYXRlZ29yeV92aXNiaWxlJ10gPSAkbW9kdWxlX25hbWUgLiAnOiBhbGwgY2F0ZWdvcnkgdmlzaWJsZSc7DQokbGFuZ1snY2hhbmdlbG9nJ10gPSAnICAgICc7DQoNCg0KIyMgcGVybXMNCiRsYW5nWydtb2RpZnlfaXRlbSddID0gJG1vZHVsZV9uYW1lLic6IG1vZGlmeSBpdGVtJzsNCiRsYW5nWydtb2RpZnlfb3B0aW9uJ10gPSAkbW9kdWxlX25hbWUuJzogbW9kaWZ5IG9wdGlvbic7DQokbGFuZ1snbW9kaWZ5X2NhdGVnb3JpZXMnXSA9ICRtb2R1bGVfbmFtZS4nOiBtb2RpZnkgY2F0ZWdvcmllcyc7DQokbGFuZ1snYWxsX2NhdGVnb3J5X3Zpc2JpbGUnXSA9ICRtb2R1bGVfbmFtZS4nOiBhbGwgY2F0ZWdvcnkgdmlzaWJsZSc7DQoNCg0KLy8gbW9kdWxlIGhlbHANCiRsYW5nWydoZWxwJ10gPSA8PDxFT1QNCjxkaXYgaWQ9InBhZ2VfdGFicyI+ICAgICANCiAgPGRpdiBpZD0iZ2VuZXJhbCI+DQogICAgR2VuZXJhbCBJbmZvICAgDQogIDwvZGl2PiAgICAgDQogIDxkaXYgaWQ9InVzYWdlIj4NCiAgICBVc2FnZSAgIA0KICA8L2Rpdj4gICAgIA0KICA8ZGl2IGlkPSJwZXJtaXNzaW9ucyI+DQogICAgUGVybWlzc2lvbnMgICANCiAgPC9kaXY+ICAgICANCiAgPGRpdiBpZD0iZmllbGQiPg0KICAgIEZpZWxkIERlZmluaXRpb25zICAgDQogIDwvZGl2PiAgICAgDQogIDxkaXYgaWQ9ImNhdGVnb3JpZXMiPg0KICAgIENhdGVnb3JpZXMgICANCiAgPC9kaXY+ICAgICANCiAgPGRpdiBpZD0iZXhhbXBsZXMiPg0KICAgIEV4YW1wbGVzICAgDQogIDwvZGl2PiAgICAgDQo8L2Rpdj4gICANCjxkaXYgY2xhc3M9ImNsZWFyYiI+ICANCjwvZGl2Pg0KPGRpdiBpZD0icGFnZV9jb250ZW50Ij4gIA0KICA8ZGl2IGlkPSJnZW5lcmFsX2MiPgk8aDM+R2VuZXJhbCBJbmZvPC9oMz4JCQ0KICAgIDxwPlNpbXBseSBwdXQsIExpc3RJdCBhbGxvd3MgeW91IHRvIGNyZWF0ZSBsaXN0cyB0aGF0IHlvdSBjYW4gZGlzcGxheSB0aHJvdWdob3V0IHlvdXIgd2Vic2l0ZS4gWW91IGNvdWxkIG1ha2UgYSBzaW1wbGUgRkFRIG9yIFRlc3RpbW9uaWFscyBmZWF0dXJlIHdpdGggdGhpcyBtb2R1bGUuIFRoZSB3ZWIgZGV2ZWxvcGVyIGRlZmluZXMgZmllbGRzIHRvIGNvbnN0cmFpbiB3aGF0IGRhdGEgdGhlIGNsaWVudCBjYW4gZW50ZXIuIEEgbnVtYmVyIG9mIGZpZWxkIHR5cGVzIGNhbiBiZSBzcGVjaWZpZWQgLSB0ZXh0IGlucHV0LCBjaGVja2JveCwgdGV4dCBhcmVhLCBzZWxlY3QgZGF0ZSwgdXBsb2FkIGZpbGUsIHNlbGVjdCBmaWxlLCBkcm9wZG93biAtIGFuZCBhZGRpdGlvbmFsIGluc3RydWN0aW9ucyBjYW4gYmUgc2V0IGZvciBlYWNoIHR5cGUsIGZvciBleGFtcGxlLCBpbnB1dCBmaWVsZCBzaXplLCBtYXggbGVuZ3RoLCBXWVNJV1lHIGVkaXRvciwgcG9zc2libGUgZHJvcCBkb3duIHZhbHVlcywgcG9zc2libGUgZmlsZSBleHRlbnNpb25zLCBkaXJlY3RvcnkgcGF0aHMgZm9yIGZpbGUgc2VsZWN0aW9ucywgZGF0ZSBmb3JtYXRzLCBldGMuDQogICAgPC9wPg0KICAgIDxwPkFuIGltcG9ydGFudCBub3RlIG9mIHdhcm5pbmcgLSBUaGlzIGlzIG5vdCBhIGNvbnRlbnQgY29uc3RydWN0aW9uIGtpdCwgc3VjaCBhcyBpbiBEcnVwYWwuIEl0IGlzIG1lYW50IGZvciBzbWFsbCBsaXN0aW5ncywgbm90IHRvIHN0b3JlIHRob3VzYW5kcyBvZiByZWNvcmRzLiBUaGlzIGlzIGJlY2F1c2Ugb2YgdGhlIGRhdGFiYXNlIG1vZGVsIHVzZWQgKEVBVikuIEFsc28sIGVhY2ggYml0IG9mIGRhdGEgeW91IGVudGVyIGlzIHN0b3JlZCBhcyBURVhUIGRhdGEgdHlwZSwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGlzIHZhcmNoYXIsIGJvb2xlYW4sIHRpbWVzdGFtcCwgZXRjLiBUaGlzIGlzIGEgcmVzdHJpY3Rpb24gb2YgYSBzaG9ydCBkZXZlbG9wbWVudCB0aW1lIGZyYW1lLg0KICAgIDwvcD4NCg0KPGgzPkRvIHlvdSB3YW50IHNvbWUgZXh0ZW5kZWQgdHV0b3JpYWxzPzwvaDM+DQo8cD48YSBocmVmPSJodHRwOi8vY21zbWFkZXNpbXBsZS5zay9zY3JlZW5jYXN0cy8iIHRhcmdldD0iX2JsYW5rIj5TY3JlZW5jYXN0cyBmb3IgTW9kdWxlIGdlbmVyYXRvcjwvYT48cD4NCiAgPC9kaXY+CQ0KICA8ZGl2IGlkPSJ1c2FnZV9jIj4JCQ0KICAgIDxoMz5Vc2FnZTwvaDM+CQkJDQogICAgICA8cD5Zb3UgY2FuIGNvbmZpZ3VyZSB7JG1vZHVsZV9uYW1lfSBoZXJlOiBDb250ZW50ID4geyRtb2R1bGVfbmFtZX0NCiAgICAgIDwvcD4JCQkNCiAgICA8cD5QbGFjZSB0aGlzIHRhZyBpbiB5b3VyIHBhZ2U6PGJyIC8+CQ0KICAgIHt7JG1vZHVsZV9uYW1lfX0NCiAgICA8L3A+CQkNCiAgICA8ZGl2PgkJCQ0KICAgICAgPGRpdiBzdHlsZT0iZmxvYXQ6bGVmdDsiPg0KICAgICAgICBBZnRlciBpbnN0YWxsaW5nIHRoZSBtb2R1bGUgdGhlIG5leHQgdGhpbmcgdG8gZG8gaXMgc2V0IHRoZSBvcHRpb25zLiAgCQkJCQ0KICAgICAgICA8b2w+CQkJCQkNCiAgICAgICAgICA8bGk+VG8gY2hhbmdlIHRoZSBuYW1lIG9mIHRoZSBtb2R1bGUgaW4gdGhlIG1lbnUgY2hhbmdlIHRoZSAnTW9kdWxlIEZyaWVuZGx5IE5hbWUnLg0KICAgICAgICAgIDwvbGk+CQkJCQkNCiAgICAgICAgICA8bGk+VG8gY2hhbmdlIHRoZSBuYW1lIG9mIHRoZSBpdGVtIHRhYiBjaGFuZ2UgdGhlICdJdGVtIFBsdXJhbCcuDQogICAgICAgICAgPC9saT4JCQkJDQogICAgICAgIDwvb2w+CQkNCiAgICAgIDwvZGl2Pg0KICAgICAgPGJyIHN0eWxlPSJjbGVhcjpib3RoOyIgLz4JCQ0KICAgIDwvZGl2PgkJDQogICAgPGRpdj4NCiAgICAgIDxkaXYgc3R5bGU9ImZsb2F0OmxlZnQ7Ij4NCiAgICAgICAgTmV4dCAtIHNldCB0aGUgRmllbGQgRGVmaW5pdGlvbnMuIA0KICAgICAgICA8b2w+DQogICAgICAgICAgPGxpPkNob29zZSBmcm9tICdUZXh0IElucHV0JywgJ0NoZWNrYm94JywgJ1RleHQgQXJlYScsICdTZWxlY3QgRGF0ZScsICdVcGxvYWQgRmlsZScsICdTZWxlY3QgRmlsZScgJiAnRHJvcGRvd24nLg0KICAgICAgICAgIDwvbGk+DQogICAgICAgICAgPGxpPkZvciBlYWNoIGZpZWxkIGRlZmluaXRpb24sIHlvdSBjYW4gc3BlY2lmeSBhZGRpdGlvbmFsIGluc3RydWN0aW9ucyBpbiB0aGUgJ2V4dHJhJyBmaWVsZC4gU2VlIHRoZSAnRmllbGQgRGVmaW5pdGlvbnMnIHRhYiBmb3IgYSBsaXN0Lg0KICAgICAgICAgIDwvbGk+DQogICAgICAgICAgPGxpPkVhY2ggaXRlbSBpbiBlYWNoIGxpc3QgaGFzIHRocmVlIGRlZmF1bHQgZmllbGRzLiBBbGwgRmllbGQgRGVmaW5pdGlvbnMgc2V0IGhlcmUgYXJlIGFkZGl0aW9uYWwgdG8gdGhlbS4NCiAgICAgICAgICA8L2xpPg0KICAgICAgICA8L29sPg0KICAgICAgPC9kaXY+PGJyIHN0eWxlPSJjbGVhcjpib3RoOyIgLz4NCiAgICA8L2Rpdj4NCiAgICAgICAgPGRpdj4NCiAgICAgIA0KICAgICAgPGRpdiBzdHlsZT0iZmxvYXQ6bGVmdDsiPg0KICAgICAgICBOb3cgd2UgbW92ZSBvbiB0byB0aGUgSXRlbSBsaXN0IGl0c2VsZi4gSW4gdGhpcyBleGFtcGxlIGl0IHNheXMgJ0FkZCBCb3gnLCB0aGlzIHdhcyByZW5hbWVkIGluIHRoZSAnT3B0aW9ucycgdGFiLiANCiAgICAgICAgPG9sPg0KICAgICAgICAgIDxsaT5UaGUgZmlyc3QgZmllbGQgaXMgdGhlIGRlZmF1bHQgJ1RpdGxlJyBmaWVsZC4NCiAgICAgICAgICA8L2xpPg0KICAgICAgICAgIDxsaT5UaGUgJ0NhdGVnb3J5JyBkcm9wZG93biBpcyBhbHNvIGEgZGVmYXVsdCBmaWVsZCwgYW5kIGlmIHVuY2hhbmdlZCwgd2lsbCBiZSBzZXQgdG8gJ0dlbmVyYWwnLg0KICAgICAgICAgIDwvbGk+DQogICAgICAgICAgPGxpPlRoZSB0aGlyZCBkZWZhdWx0IGZpZWxkIGlzIHRoZSBjaGVja2JveCBjYWxsZWQgJ0FjdGl2ZScuIFRoaXMgYWxsb3dzIHlvdSB0byB0b2dnbGUgYSBsaXN0IGVudHJ5IHdpdGhvdXQgZGVsZXRpbmcgaXQuDQogICAgICAgICAgPC9saT4NCiAgICAgICAgPC9vbD4NCiAgICAgIDwvZGl2PjxiciBzdHlsZT0iY2xlYXI6Ym90aDsiIC8+DQogICAgPC9kaXY+DQogICAgPGRpdiBzdHlsZT0iY2xlYXI6Ym90aDsiIC8+DQogICAgPC9kaXY+DQogIDwvZGl2Pg0KICA8ZGl2IGlkPSJwZXJtaXNzaW9uc19jIj48aDM+UGVybWlzc2lvbnM8L2gzPg0KICAgIDxwPllvdSBjYW4gc3BlY2lmeSB0aGUgZm9sbG93aW5nIHBlcm1pc3Npb25zIHVuZGVyIFVzZXJzICYgR3JvdXBzID4gR3JvdXAgUGVybWlzc2lvbnMNCiAgICA8L3A+DQogICAgPHVsPg0KICAgICAgPGxpPnskbW9kdWxlX25hbWV9OiBtb2RpZnkgSXRlbXMNCiAgICAgIDwvbGk+DQogICAgICA8bGk+eyRtb2R1bGVfbmFtZX06IG1vZGlmeSBDYXRlZ29yaWVzDQogICAgICA8L2xpPg0KICAgICAgPGxpPnskbW9kdWxlX25hbWV9OiBtb2RpZnkgT3B0aW9ucw0KICAgICAgPC9saT4NCiAgICAgIDxsaT57JG1vZHVsZV9uYW1lfTogYWxsIGNhdGVnb3J5IHZpc2libGUNCiAgICAgIDwvbGk+DQogICAgPC91bD4NCiAgPC9kaXY+DQogIDxkaXYgaWQ9ImZpZWxkX2MiPjxoMz5GaWVsZCBEZWZpbml0aW9uczwvaDM+DQogICAgPHA+VGhlIGZpcnN0IHRoaW5nIHlvdSBzaG91bGQgY29uZmlndXJlIGFyZSB5b3VyIGZpZWxkIGRlZmluaXRpb25zLg0KICAgIDwvcD4NCiAgICA8cD5Gb3IgZWFjaCBmaWVsZCBkZWZpbml0aW9uLCB5b3UgY2FuIHNwZWNpZnkgYWRkaXRpb25hbCBpbnN0cnVjdGlvbnMgaW4gdGhlICJleHRyYSIgZmllbGQuDQogICAgPC9wPg0KICAgIDx1bD4gICAgDQogICAgICA8bGk+ICAgICAgICANCiAgICAgIDxwPkluc3RydWN0aW9uOiANCiAgICAgICAgPGNvZGU+c2l6ZVsyMF0NCiAgICAgICAgPC9jb2RlPjxiciAvPg0KICAgICAgICBQb3NzaWJsZSB2YWx1ZTogaW50ZWdlcjxiciAvPg0KICAgICAgICBBcHBsaWNhYmxlIHRvOiBUZXh0IElucHV0LCBTZWxlY3QgRGF0ZQ0KICAgICAgPC9wPiAgICANCiAgICAgIDwvbGk+ICAgIA0KICAgICAgPGxpPiAgICAgICAgDQogICAgICA8cD5JbnN0cnVjdGlvbjogDQogICAgICAgIDxjb2RlPm1heF9sZW5ndGhbMjBdDQogICAgICAgIDwvY29kZT48YnIgLz4NCiAgICAgICAgUG9zc2libGUgdmFsdWU6IGludGVnZXI8YnIgLz4NCiAgICAgICAgQXBwbGljYWJsZSB0bzogVGV4dCBJbnB1dCwgVGV4dCBBcmVhLCBTZWxlY3QgRGF0ZQ0KICAgICAgPC9wPiAgICANCiAgICAgIDwvbGk+ICANCiAgICAgIDxsaT4gICAgICAgIA0KICAgICAgPHA+SW5zdHJ1Y3Rpb246IA0KICAgICAgICA8Y29kZT53eXNpd3lnWzFdDQogICAgICAgIDwvY29kZT48YnIgLz4NCiAgICAgICAgUG9zc2libGUgdmFsdWU6IDF8MHx0cnVlfGZhbHNlPGJyIC8+DQogICAgICAgIEFwcGxpY2FibGUgdG86IFRleHQgQXJlYQ0KICAgICAgPC9wPiAgICANCiAgICAgIDwvbGk+ICAgIA0KICAgICAgPGxpPiAgICAgICAgDQogICAgICA8cD5JbnN0cnVjdGlvbjogDQogICAgICAgIDxjb2RlPm9wdGlvbnNbYXBwbGU9QXBwbGUsYmFuYW5hPUJhbmFuYV0NCiAgICAgICAgPC9jb2RlPjxiciAvPg0KICAgICAgICBQb3NzaWJsZSB2YWx1ZToga2V5PXZhbHVlLC4uLiBvciB7Y21zX21vZHVsZX0gdGFnIHdpdGggc2ltaWxhciBvdXRwdXQgZXRjLiB7Y21zX2dhbGxlcnkgbW9kdWxlPUdhbGxlcnkgdGVtcGxhdGU9c2VsZWN0ZWJveH08YnIgLz4NCiAgICAgICAgQXBwbGljYWJsZSB0bzogRHJvcGRvd24NCiAgICAgIDwvcD4gICAgDQogICAgICA8L2xpPiAgICANCiAgICAgIDxsaT4gICAgICAgIA0KICAgICAgPHA+SW5zdHJ1Y3Rpb246IA0KICAgICAgICA8Y29kZT5Nb2R1bGVuYW1lW2FjdGlvbj1kZWZhdWx0LHNvcnRieT10aXRsZSxzb3J0b3JkZXI9ZGVzY10NCiAgICAgICAgPC9jb2RlPjxiciAvPg0KICAgICAgICBQb3NzaWJsZSB2YWx1ZTogZXZlcnl0aGluZyB5b3UgdXNlZCBpbiBtb2R1bGUNCiAgICAgICAgQXBwbGljYWJsZSB0bzogTW9kdWxlDQogICAgICA8L3A+ICAgIA0KICAgICAgPC9saT4gICAgDQogICAgICA8bGk+ICAgICAgICANCiAgICAgIDxwPkluc3RydWN0aW9uOiANCiAgICAgICAgPGNvZGU+bXVsdGlwbGVbNV0NCiAgICAgICAgPC9jb2RlPjxiciAvPg0KICAgICAgICBQb3NzaWJsZSB2YWx1ZTogaW50ZWdlcjxiciAvPg0KICAgICAgICBBcHBsaWNhYmxlIHRvOiBNb2R1bGUNCiAgICAgIDwvcD4gICAgDQogICAgICA8L2xpPiAgDQogICAgICA8bGk+ICAgICAgICANCiAgICAgIDxwPkluc3RydWN0aW9uOiANCiAgICAgICAgPGNvZGU+YWxsb3dbcGRmLGdpZixwbmcsanBlZyxqcGddDQogICAgICAgIDwvY29kZT48YnIgLz4NCiAgICAgICAgUG9zc2libGUgdmFsdWU6IGV4dGVuc2lvbiwuLi4gKGtlZXAgbG93ZXJjYXNlKTxiciAvPg0KICAgICAgICBBcHBsaWNhYmxlIHRvOiBVcGxvYWQgRmlsZSwgU2VsZWN0IEZpbGUNCiAgICAgIDwvcD4gICAgDQogICAgICA8L2xpPiAgICANCiAgICAgIDxsaT4gICAgICAgIA0KICAgICAgPHA+SW5zdHJ1Y3Rpb246IA0KICAgICAgICA8Y29kZT5kaXJbL3BhdGgvdG8vZGlyXQ0KICAgICAgICA8L2NvZGU+PGJyIC8+DQogICAgICAgIFBvc3NpYmxlIHZhbHVlOiBEaXJlY3RvcnkgcGF0aCB0aGF0IHdpbGwgYmUgYXBwZW5kZWQgdG8gDQogICAgICAgIDxjb2RlPlwkY29uZmlnWyd1cGxvYWRzX3BhdGgnXQ0KICAgICAgICA8L2NvZGU+LiBObyBzbGFzaCBhdCB0aGUgZW5kLjxiciAvPg0KICAgICAgICBBcHBsaWNhYmxlIHRvOiBTZWxlY3QgRmlsZQ0KICAgICAgPC9wPiAgICANCiAgICAgIDwvbGk+ICAgIA0KICAgICAgPGxpPiAgICAgICAgDQogICAgICA8cD5JbnN0cnVjdGlvbjogDQogICAgICAgIDxjb2RlPmV4Y2x1ZGVfcHJlZml4W3RodW1iXyxmb29fXQ0KICAgICAgICA8L2NvZGU+PGJyIC8+DQogICAgICAgIFBvc3NpYmxlIHZhbHVlOiBwcmVmaXgsLi4uPGJyIC8+DQogICAgICAgIEFwcGxpY2FibGUgdG86IFNlbGVjdCBGaWxlDQogICAgICA8L3A+ICAgIA0KICAgICAgPC9saT4gICAgDQogICAgICA8bGk+ICAgICAgICANCiAgICAgIDxwPkluc3RydWN0aW9uOiANCiAgICAgICAgPGNvZGU+ZGF0ZWZvcm1hdFtkZC9tbS95eV0NCiAgICAgICAgPC9jb2RlPjxiciAvPg0KICAgICAgICBQb3NzaWJsZSB2YWx1ZTogRGF0ZSBmb3JtYXQgdXNlZCBieSB0aGUganF1ZXJ5IGRhdGVwaWNrZXI8YnIgLz4NCiAgICAgICAgQXBwbGljYWJsZSB0bzogVGV4dCBBcmVhDQogICAgICA8L3A+ICAgIA0KICAgICAgPC9saT4NCiAgICA8L3VsPg0KICAgIDxwPllvdSBjYW4gc3BlY2lmeSBtdWx0aXBsZSBpbnN0cnVjdGlvbnMgc2VwYXJhdGVkIGJ5IGEgc2VtaWNvbG9uICggDQogICAgICA8Y29kZT47DQogICAgICA8L2NvZGU+ICksIGZvciBleGFtcGxlOg0KICAgIDwvcD4NCiAgICA8cD4NCiAgICAgIDxjb2RlPmFsbG93W3BkZl07ZGlyWy9kb2NzL3BkZl0NCiAgICAgIDwvY29kZT4NCiAgICA8L3A+DQogIDwvZGl2Pg0KICA8ZGl2IGlkPSJjYXRlZ29yaWVzX2MiPg0KICAgIDxoMz5DYXRlZ29yaWVzPC9oMz4NCiAgICA8cD5Pbmx5IHNpbmdsZSBsZXZlbCBjYXRlZ29yaWVzIGFyZSBzdXBwb3J0ZWQgYXQgdGhpcyB0aW1lLg0KICAgIDwvcD4NCiAgPC9kaXY+DQogIDxkaXYgaWQ9ImV4YW1wbGVzX2MiPg0KICAgIDxoMz5FeGFtcGxlczwvaDM+DQogICAgPHA+e01vZHVsZU5hbWUgZmlsdGVyXzFfZXF1YWw9MSBkYXRlX3N0YXJ0PTEgZGF0ZV9lbmQ9MX08L3A+DQogICAgPHVsPg0KICAgIDxsaT52YWx1ZSBmcm9tIGN1c3RvbSBmaWVsZGlkIHdpdGggaWQgMSA9IDE8L2xpPg0KICAgIDxsaT5kYXRlIHN0YXJ0ICA8IE5PVzwvbGk+DQogICAgPGxpPmVuZCBkYXRlICA+IE5PVzwvbGk+DQogICAgPC91bD4NCiAgICA8YnIgLz4NCiAgICA8cD57TW9kdWxlTmFtZSBmaWx0ZXJfaXRlbUlkX2luc2V0PScxLDIsMyd9PC9wPg0KICAgIDx1bD4NCiAgICA8bGk+aXRlbSBpZCBpcyBpcyBpbiBzZXQgKDEsMiwzKTwvbGk+DQogICAgPC91bD4NCiAgICA8YnIgLz4NCiAgICA8cD57TW9kdWxlTmFtZSAgYWxscm93PSJpdGVtcyJ9PC9wPg0KICAgIDx1bD4NCiAgICA8bGk+c2V0IGFsbCByZXN1bHQgdG8gc21hcnR5IHZhciBcJGl0ZW1zPC9saT4gICAgDQogICAgPC91bD4NCiAgICA8YnIgLz4NCiAgICA8cD57TW9kdWxlTmFtZSBhY3Rpb249ImRldGFpbCIgaXRlbV9pZD0xICBvbmVyb3c9Iml0ZW0ifTwvcD4NCiAgICA8dWw+DQogICAgPGxpPmRldGFpbCBmcm9tIGl0ZW0gd2l0aCBpZCAxPC9saT4gICAgDQogICAgPGxpPnNldCByZXN1bHQgdG8gc21hcnR5IHZhciBcJGl0ZW08L2xpPiAgICANCiAgICA8L3VsPg0KICA8L2Rpdj4NCjwvZGl2Pg0KRU9UOw0KJGxhbmdbJ2hlbHBfcGFyYW1fYWN0aW9uJ10gPSA8PDxFT1QNCidPdmVycmlkZSB0aGUgZGVmYXVsdCBhY3Rpb24uIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQo8bGk+JnF1b3Q7ZGVmYXVsdCZxdW90OyAtIHRvIGRpc3BsYXkgdGhlIHN1bW1hcnkgdmlldy48L2xpPg0KPGxpPiZxdW90O2RldGFpbCZxdW90OyAtIHRvIGRpc3BsYXkgYSBzcGVjaWZpZWQgZW50cnkgaW4gZGV0YWlsIG1vZGUuPC9saT4NCjxsaT4mcXVvdDtjYXRlZ29yaWVzJnF1b3Q7IC0gdG8gZGlzcGxheSB0aGUgY2F0ZWdvcmllczwvbGk+DQo8bGk+JnF1b3Q7ZmlsdGVyJnF1b3Q7IC0gZmlsdGVyIGZvciBpdGVtczwvbGk+DQo8L3VsPg0KRU9UOw0KJGxhbmdbJ2hlbHBfcGFyYW1fY2F0ZWdvcnlfaWQnXSA9ICdTcGVjaWZ5IHRoZSBjYXRlZ29yeSBpZCB0byBkaXNwbGF5IGl0ZW1zIG9ubHkgZnJvbSB0aGlzIGNhdGVnb3J5Lic7DQokbGFuZ1snaGVscF9wYXJhbV9jYXRlZ29yeSddID0gJ1NwZWNpZnkgdGhlIGNhdGVnb3J5IGFsaWFzIHRvIGRpc3BsYXkgaXRlbXMgb25seSBmcm9tIHRoaXMgY2F0ZWdvcnkuJzsNCiRsYW5nWydoZWxwX3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnVGhlIGRldGFpbCB0ZW1wbGF0ZSB5b3Ugd2lzaCB0byB1c2UuJzsNCiRsYW5nWydoZWxwX3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ1RoZSBzdW1tYXJ5IHRlbXBsYXRlIHlvdSB3aXNoIHRvIHVzZSc7DQokbGFuZ1snaGVscF9wYXJhbV9jYXRlZ29yeXRlbXBsYXRlJ10gPSAnVGhlIGNhdGVnb3J5IHRlbXBsYXRlIHlvdSB3aXNoIHRvIHVzZSc7DQokbGFuZ1snaGVscF9wYXJhbV9maWx0ZXJ0ZW1wbGF0ZSddID0gJ1RoZSBmaWx0ZXIgdGVtcGxhdGUgeW91IHdpc2ggdG8gdXNlJzsNCiRsYW5nWydoZWxwX3BhcmFtX29yZGVyYnknXSA9ICdZb3UgY2FuIG9yZGVyIGJ5IGFueSBvZiB0aGUgZm9sbG93aW5nIGNvbHVtbnM6IGl0ZW1faWQsIHRpdGxlLCBpdGVtX2RhdGUsIG1vZGlmaWVkLCByYW5kb20sIGY6ZmllbGRhbGlhcy4nOw0KJGxhbmdbJ2hlbHBfcGFyYW1fcGFnZWxpbWl0J10gPSAnUGFnZSBsaW1pdCBmb3IgcGFnaW5hdGlvbic7DQokbGFuZ1snaGVscF9wYXJhbV9zb3J0b3JkZXInXSA9ICdPcmRlciBmbyAgZGVmYXVsdCBhY3Rpb24nOw0KJGxhbmdbJ2hlbHBfcGFyYW1faW5saW5lJ10gPSAnSW5saW5lJzsNCiRsYW5nWydoZWxwX3BhcmFtX29uZXJvdyddID0gJ1NldCByZXN1bHQgYXJyYXkgdG8gc21hcnR5LiBGb3IgZGVmYXVsdCBhbmQgZGV0YWlsIGFjdGlvbic7DQokbGFuZ1snaGVscF9wYXJhbV9hbGxyb3cnXSA9ICdTZXQgcmVzdWx0cyBhcnJheSB0byBzbWFydHkuIEZvciBkZWZhdWx0IGFjdGlvbic7DQokbGFuZ1snaGVscF9wYXJhbV9vbmVjb3VudCddID0gJ1NldCBjb3VudCByZXN1bHQgdG8gc21hcnR5LiBGb3IgZGVmYXVsdCBhY3Rpb24nOw0KJGxhbmdbJ2hlbHBfcGFyYW1fZGF0ZV9zdGFydCddID0gJ0FsbG93IHVzaW5nIGRhdGVfZW5kIGZvciBwdWJsaWMgaXRlbXMnOw0KJGxhbmdbJ2hlbHBfcGFyYW1fZGF0ZV9lbmQnXSA9ICdJdGVtcyBleHBpcmF0aW9uJzsNCiRsYW5nWydoZWxwX3BhcmFtX2ZpbHRlciddID0gJ0ZpbHRlciBmb3IgcmVzdWx0cy4gWW91IGNhbiB1c2UgZmlsdGVyX0ZJRUxESURfQ09ORElUSU9OIGZvciBmaWVsZHMgb3IgZmlsdGVyX1BSRUZfQ09ORElUSU9OIGZvciBpdGVtIGNvbHMuPGJyIC8+DQpDb25kaXRpb24gZm9yIEZJRUxEUyAoZXRjOiBmaWVsZF8xX2VxdWFsPVwnYXBwbGVcJyk6PGJyICAvPg0KPHVsPg0KPGxpPm51bGw8L2xpPg0KPGxpPm5vdG51bGw8L2xpPg0KPGxpPmluPC9saT4NCjxsaT5pbnNldDwvbGk+DQo8bGk+aW5zZXQ8L2xpPg0KPGxpPmxlc3M8L2xpPg0KPGxpPmxlc3NlcXVhbDwvbGk+DQo8bGk+Z3JlYXRlcjwvbGk+DQo8bGk+Z3JlYXRlcmVxdWFsPC9saT4NCjxsaT5saWtlPC9saT4NCjxsaT5ub3RlcXVhbDwvbGk+DQo8bGk+ZXF1YWw8L2xpPg0KPC91bD4NCkNvbmRpdGlvbiBmb3IgaXRlbSBjb2xzIC0gaXRlbUlkLCBpdGVtRGF0ZUVuZCwgaXRlbURhdGUsIGFsaWFzLCB1cmwgICAoZXRjOiBmaWVsZF9pdGVtRGF0ZUVuZF9lcXVhbD1cJzIwMTEtMDEtMDEgMDA6MDA6MDBcJyk6PGJyICAvPg0KPHVsPg0KPGxpPm51bGw8L2xpPg0KPGxpPm5vdG51bGw8L2xpPg0KPGxpPmluPC9saT4NCjxsaT5pbnNldDwvbGk+DQo8bGk+bGlrZTwvbGk+DQo8bGk+bGVzczwvbGk+DQo8bGk+bGVzc2VxdWFsPC9saT4NCjxsaT5ncmVhdGVyPC9saT4NCjxsaT5ncmVhdGVyZXF1YWw8L2xpPg0KPGxpPm5vdGVxdWFsPC9saT4NCjxsaT5lcXVhbDwvbGk+DQo8L3VsPg0KJzsNCg0KJGxhbmdbJ2hlbHBfcGFyYW1fZGV0YWlscGFnZSddID0gJ1BhZ2UgdG8gZGlzcGxheSBpdGVtIGRldGFpbHMgaW4uIE11c3QgYmUgYSBwYWdlIGFsaWFzLiBVc2VkIHRvIGFsbG93IGRldGFpbHMgdG8gYmUgZGlzcGxheWVkIGluIGEgZGlmZmVyZW50IHBhZ2UgdGhhbiBzdW1tYXJ5Lic7DQokbGFuZ1snaGVscF9wYXJhbV9pdGVtJ10gPSAnVGhpcyBwYXJhbWV0ZXIgaXMgb25seSBhcHBsaWNhYmxlIHRvIHRoZSBkZXRhaWwgdmlldy4gSXQgYWxsb3dzIHNwZWNpZnlpbmcgd2hpY2ggaXRlbSB0byBkaXNwbGF5IGluIGRldGFpbCBtb2RlLiBNdXN0IGJlIGFuIGl0ZW0gYWxpYXMuJzsNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/lang/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KJGRiID0gY21zbXMoKS0+R2V0RGIoKTsNCiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsNCiR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7DQoNCg0KLy8gY3JlYXRlIGl0ZW0gdGFibGUNCg0KJGZpZWxkcyA9ICcNCiAgICBpdGVtX2lkIEkgS0VZIEFVVE8sDQoJY2F0ZWdvcnlfaWQgSSwNCiAgICB0aXRsZSBDKDI1NSksDQoJYWxpYXMgQygyNTUpLA0KCXVybCBDKDI1NSksDQoJcmVjdXJzaXZlIEMoNTApLA0KICAgIHBvc2l0aW9uIEksDQogICAgYWN0aXZlIEkoMSksDQogICAgaXRlbV9kYXRlICcgLiBDTVNfQURPREJfRFQgLiAnLA0KICAgIGl0ZW1fZGF0ZV9lbmQgJyAuIENNU19BRE9EQl9EVCAuICcsDQogICAgY3JlYXRlX2RhdGUgJyAuIENNU19BRE9EQl9EVCAuICcsDQoJbW9kaWZpZWRfZGF0ZSAnIC4gQ01TX0FET0RCX0RUIC4gJw0KJzsNCg0KJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtJywgJGZpZWxkcywgJHRhYm9wdGFycmF5KTsNCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCg0KJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKGNtc19kYl9wcmVmaXgoKSAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ191cmwnLCBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaXRlbScsICd1cmwnKTsNCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTChjbXNfZGJfcHJlZml4KCkgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfY2F0ZWdvcnlfaWQnLCBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfaXRlbScsICdjYXRlZ29yeV9pZCcpOw0KJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KDQoNCi8vIGNyZWF0ZSBjYXRlZ29yeSB0YWJsZQ0KJGZpZWxkcyA9ICINCgljYXRlZ29yeV9pZCBJIEtFWSBBVVRPLA0KCWNhdGVnb3J5X25hbWUgQygyNTUpLA0KCWNhdGVnb3J5X2FsaWFzIEMoMjU1KSwNCglwYXJlbnRfaWQgSSwNCgloaWVyYXJjaHkgQygyNTUpLA0KICAgICAgICBwb3NpdGlvbiBJLA0KICAgICAgICBoaWVyYXJjaHlfcG9zaXRpb24gQygyNTUpLA0KCWxvbmdfbmFtZSBYLA0KICAgICAgICB1c2VyZ3JvdXAgSSwNCgljcmVhdGVfZGF0ZSBULA0KCW1vZGlmaWVkX2RhdGUgVA0KIjsNCg0KJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19jYXRlZ29yaWVzJywgJGZpZWxkcywgJHRhYm9wdGFycmF5KTsNCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCg0KDQovLyBjcmVhdGUgZmllbGRkZWYgdGFibGUNCg0KJGZpZWxkcyA9ICcNCiAgICBmaWVsZGRlZl9pZCBJIEtFWSBBVVRPLA0KICAgIG5hbWUgQygyNTUpLA0KICAgIGFsaWFzIEMoMjU1KSwNCiAgICBoZWxwIEMoMjU1KSwNCiAgICB0eXBlIEMoNTApLA0KICAgIHNlY3Rpb24gQygxMCksDQogICAgcG9zaXRpb24gSSwNCiAgICByZXF1aXJlZCBJKDEpLA0KICAgIGZyb250ZW5kIEkoMSksDQogICAgZWRpdHZpZXcgSSgxKSwNCiAgICBmaWx0ZXJfZnJvbnRlbmQgSSgxKSwNCiAgICBmaWx0ZXJfYWRtaW4gSSgxKSwNCiAgICBzZWFyY2hhYmxlIEkoMSksDQogICAgZXh0cmEgQygyNTUpDQonOw0KDQokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkZGVmJywgJGZpZWxkcywgJHRhYm9wdGFycmF5KTsNCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCg0KLy8gY3JlYXRlIGZpZWxkdmFsIHRhYmxlDQoNCiRmaWVsZHMgPSAnDQogICAgaXRlbV9pZCBJIEtFWSBOT1QgbnVsbCwNCiAgICBmaWVsZGRlZl9pZCBJIEtFWSBOT1QgbnVsbCwNCiAgICB2YWx1ZSBYDQonOw0KDQokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ZpZWxkdmFsJywgJGZpZWxkcywgJHRhYm9wdGFycmF5KTsNCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCg0KLy8gY3JlYXRlIGl0ZW0gZXh0cmEgdGFibGUNCg0KJGZpZWxkcyA9ICcNCiAgICBpdGVtX2lkIEkgS0VZIE5PVCBudWxsLA0KICAgIHZhbHVlIEkgS0VZIE5PVCBudWxsLA0KJzsNCg0KJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pdGVtX2V4dHJhJywgJGZpZWxkcywgJHRhYm9wdGFycmF5KTsNCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCg0KJGZpZWxkcyA9ICcNCiAgICBgaW1hZ2VfaWRgIGludCgxMCkgSSBLRVkgQVVUTywNCiAgYGl0ZW1faWRgIGludCgxMCkgREVGQVVMVCBOVUxMLA0KICBgZmlsZW5hbWVgIHZhcmNoYXIoMjU1KSBERUZBVUxUIE5VTEwsDQogIGBwb3NpdGlvbmAgaW50KDEwKSBERUZBVUxUIE5VTEwNCic7DQokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2ltYWdlcycsICRmaWVsZHMsICR0YWJvcHRhcnJheSk7DQokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQoNCi8vIGNhdGVnb3J5IHRlbXBsYXRlDQokZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCAndGVtcGxhdGVzJywgJ29yaWdfY2F0ZWdvcnlfdGVtcGxhdGUudHBsJyk7DQppZiAoZmlsZV9leGlzdHMoJGZuKSkgew0KICAgICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7DQogICAgJG1vZC0+U2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9jYXRlZ29yeV90ZW1wbGF0ZScsICR0ZW1wbGF0ZSk7DQogICAgJG1vZC0+U2V0VGVtcGxhdGUoJ2NhdGVnb3J5X3RlbXBsYXRlU2FtcGxlJywgJHRlbXBsYXRlKTsNCiAgICAkbW9kLT5TZXRQcmVmZXJlbmNlKCdjdXJyZW50X2NhdGVnb3J5X3RlbXBsYXRlJywgJ1NhbXBsZScpOw0KfQ0KDQovLyBzdW1tYXJ5IHRlbXBsYXRlDQokZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCAndGVtcGxhdGVzJywgJ29yaWdfc3VtbWFyeV90ZW1wbGF0ZS50cGwnKTsNCmlmIChmaWxlX2V4aXN0cygkZm4pKSB7DQogICAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoJGZuKTsNCiAgICAkbW9kLT5TZXRQcmVmZXJlbmNlKCdkZWZhdWx0X3N1bW1hcnlfdGVtcGxhdGUnLCAkdGVtcGxhdGUpOw0KICAgICRtb2QtPlNldFRlbXBsYXRlKCdzdW1tYXJ5X3RlbXBsYXRlU2FtcGxlJywgJHRlbXBsYXRlKTsNCiAgICAkbW9kLT5TZXRQcmVmZXJlbmNlKCdjdXJyZW50X3N1bW1hcnlfdGVtcGxhdGUnLCAnU2FtcGxlJyk7DQp9DQoNCi8vIGRldGFpbCB0ZW1wbGF0ZQ0KJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwgJ3RlbXBsYXRlcycsICdvcmlnX2RldGFpbF90ZW1wbGF0ZS50cGwnKTsNCmlmIChmaWxlX2V4aXN0cygkZm4pKSB7DQogICAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoJGZuKTsNCiAgICAkbW9kLT5TZXRQcmVmZXJlbmNlKCdkZWZhdWx0X2RldGFpbF90ZW1wbGF0ZScsICR0ZW1wbGF0ZSk7DQogICAgJG1vZC0+U2V0VGVtcGxhdGUoJ2RldGFpbF90ZW1wbGF0ZVNhbXBsZScsICR0ZW1wbGF0ZSk7DQogICAgJG1vZC0+U2V0UHJlZmVyZW5jZSgnY3VycmVudF9kZXRhaWxfdGVtcGxhdGUnLCAnU2FtcGxlJyk7DQp9DQoNCi8vIGZpbHRlciB0ZW1wbGF0ZQ0KJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwgJ3RlbXBsYXRlcycsICdvcmlnX2ZpbHRlcl90ZW1wbGF0ZS50cGwnKTsNCmlmIChmaWxlX2V4aXN0cygkZm4pKSB7DQogICAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoJGZuKTsNCiAgICAkbW9kLT5TZXRQcmVmZXJlbmNlKCdkZWZhdWx0X2ZpbHRlcl90ZW1wbGF0ZScsICR0ZW1wbGF0ZSk7DQogICAgJG1vZC0+U2V0VGVtcGxhdGUoJ2ZpbHRlcl90ZW1wbGF0ZVNhbXBsZScsICR0ZW1wbGF0ZSk7DQogICAgJG1vZC0+U2V0UHJlZmVyZW5jZSgnY3VycmVudF9maWx0ZXJfdGVtcGxhdGUnLCAnU2FtcGxlJyk7DQp9DQoNCg0KLy8gc2V0IHByZWZlcmVuY2VzDQokbW9kLT5TZXRQcmVmZXJlbmNlKCd1cmxfcHJlZml4JywgbXVuZ2Vfc3RyaW5nX3RvX3VybCgkbW9kLT5HZXROYW1lKCksIHRydWUpKTsNCiRtb2QtPlNldFByZWZlcmVuY2UoJ2ZyaWVuZGx5bmFtZScsICRtb2QtPkdldE5hbWUoKSk7DQokbW9kLT5TZXRQcmVmZXJlbmNlKCdpdGVtX3Npbmd1bGFyJywgZ2VuZXJhdG9yKCktPkxhbmcoJ2l0ZW0nKSk7DQokbW9kLT5TZXRQcmVmZXJlbmNlKCdpdGVtX3BsdXJhbCcsIGdlbmVyYXRvcigpLT5MYW5nKCdpdGVtcycpKTsNCiRtb2QtPlNldFByZWZlcmVuY2UoJ2l0ZW1fdGl0bGUnLCBnZW5lcmF0b3IoKS0+TGFuZygnaXRlbV90aXRsZScpKTsNCiRtb2QtPlNldFByZWZlcmVuY2UoJ2l0ZW1fdGl0bGVfZWRpdCcsIDEpOw0KJG1vZC0+U2V0UHJlZmVyZW5jZSgnaXRlbV9jYXRlZ29yeV9lZGl0JywgMSk7DQokbW9kLT5TZXRQcmVmZXJlbmNlKCdyZWN1cnNpdmUnLCAwKTsNCg0KJG1vZC0+U2V0UHJlZmVyZW5jZSgnbW9kZScsICdhZHZhbmNlZCcpOw0KJG1vZC0+U2V0UHJlZmVyZW5jZSgnc29ydG9yZGVyX2FkdmFuY2VkJywgJ2Rlc2MnKTsNCiRtb2QtPlNldFByZWZlcmVuY2UoJ3NvcnRieV9hZHZhbmNlZCcsICdjcmVhdGVfZGF0ZScpOw0KJG1vZC0+U2V0UHJlZmVyZW5jZSgnc3VtbWFyeV9wYWdlbGltaXRfYWR2YW5jZWQnLCAyNSk7DQoNCiRtb2QtPlNldFByZWZlcmVuY2UoJ3NvcnRvcmRlcl9zaW1wbGUnLCAnZGVzYycpOw0KJG1vZC0+U2V0UHJlZmVyZW5jZSgnc29ydGJ5X3NpbXBsZScsICdwb3NpdGlvbicpOw0KJG1vZC0+U2V0UHJlZmVyZW5jZSgnc3VtbWFyeV9wYWdlbGltaXRfc2ltcGxlJywgMTAwMDApOw0KDQokbW9kLT5TZXRQcmVmZXJlbmNlKCdoYXNfYWRtaW4nLCAxKTsNCiRtb2QtPlNldFByZWZlcmVuY2UoJ3NlYXJjaGFibGUnLCAxKTsNCiRtb2QtPlNldFByZWZlcmVuY2UoJ2ltYWdlc19zaXplX2FkbWluJywgJzIwMHgnKTsNCg0KJHRoaXMtPkNyZWF0ZUV2ZW50KCdJdGVtQWRkZWQnKTsNCiR0aGlzLT5DcmVhdGVFdmVudCgnSXRlbUVkaXRlZCcpOw0KJHRoaXMtPkNyZWF0ZUV2ZW50KCdJdGVtRGVsZXRlZCcpOw0KJHRoaXMtPkNyZWF0ZUV2ZW50KCdDYXRlZ29yeUFkZGVkJyk7DQokdGhpcy0+Q3JlYXRlRXZlbnQoJ0NhdGVnb3J5RWRpdGVkJyk7DQokdGhpcy0+Q3JlYXRlRXZlbnQoJ0NhdGVnb3J5RGVsZXRlZCcpOw0KJHRoaXMtPkNyZWF0ZUV2ZW50KCdJdGVtc1Jlb3JkZXJlZCcpOw0KJHRoaXMtPkNyZWF0ZUV2ZW50KCdDYXRlZ29yaWVzUmVvcmRlcmVkJyk7DQoNCi8vIHNldCBwZXJtaXNzaW9ucw0KJG1vZC0+Q3JlYXRlUGVybWlzc2lvbigkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2l0ZW0nLCAkbW9kLT5MYW5nKCdtb2RpZnlfaXRlbScpKTsNCiRtb2QtPkNyZWF0ZVBlcm1pc3Npb24oJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9jYXRlZ29yaWVzJywgJG1vZC0+TGFuZygnbW9kaWZ5X2NhdGVnb3JpZXMnKSk7DQokbW9kLT5DcmVhdGVQZXJtaXNzaW9uKCRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19hbGxfY2F0ZWdvcnlfdmlzYmlsZScsICRtb2QtPkxhbmcoJ2FsbF9jYXRlZ29yeV92aXNiaWxlJykpOw0KJG1vZC0+Q3JlYXRlUGVybWlzc2lvbigkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X29wdGlvbicsICRtb2QtPkxhbmcoJ21vZGlmeV9vcHRpb24nKSk7DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRkYiA9IGNtc21zKCktPkdldERiKCk7DQoNCiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsNCg0KLy8gZHJvcCB0YWJsZXMNCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV8nIC4gJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX2l0ZW0nKTsNCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCg0KJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfZmllbGRkZWYnKTsNCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCg0KJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlXycgLiAkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfY2F0ZWdvcnknKTsgLy8gdGhlIG9ubHkgZ29vZCBjYXQgaXMgYSBkZWFkIGNhdA0KJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KDQokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19maWVsZHZhbCcpOw0KJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOw0KDQokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfJyAuICRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19pbWFnZXMnKTsNCiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCg0KLy8gcmVtb3ZlIHByZWZlcmVuY2VzDQokbW9kLT5SZW1vdmVQcmVmZXJlbmNlKCk7DQoNCi8vIHJlbW92ZSBwZXJtaXNzaW9ucw0KJG1vZC0+UmVtb3ZlUGVybWlzc2lvbigkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X2l0ZW0nKTsNCiRtb2QtPlJlbW92ZVBlcm1pc3Npb24oJG1vZC0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9jYXRlZ29yaWVzJyk7DQokbW9kLT5SZW1vdmVQZXJtaXNzaW9uKCRtb2QtPl9HZXRNb2R1bGVBbGlhcygpIC4gJ19hbGxfY2F0ZWdvcnlfdmlzYmlsZScpOw0KJG1vZC0+UmVtb3ZlUGVybWlzc2lvbigkbW9kLT5fR2V0TW9kdWxlQWxpYXMoKSAuICdfbW9kaWZ5X29wdGlvbicpOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[77u/PD9waHANCiRkYiA9IGNtc21zKCktPkdldERiKCk7DQokdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOw0KJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOw0KDQpzd2l0Y2ggKCRvbGR2ZXJzaW9uKSB7DQogICAgY2FzZSAnMS4wJzoNCn0NCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.admin_addcategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJG1vZCA9ICR0aGlzOwppbmNsdWRlKGdlbmVyYXRvcl90b29sczo6cm91dGUoJHRoaXMsIF9fRklMRV9fKSk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.admin_approveitem.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRtb2QgPSAkdGhpczsNCmluY2x1ZGUoZ2VuZXJhdG9yX3Rvb2xzOjpyb3V0ZSgkdGhpcywgX19GSUxFX18pKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.admin_bulkaction.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJG1vZCA9ICR0aGlzOwppbmNsdWRlKGdlbmVyYXRvcl90b29sczo6cm91dGUoJHRoaXMsIF9fRklMRV9fKSk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.admin_deletecategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJG1vZCA9ICR0aGlzOwppbmNsdWRlKGdlbmVyYXRvcl90b29sczo6cm91dGUoJHRoaXMsIF9fRklMRV9fKSk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.admin_deletefielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRtb2QgPSAkdGhpczsNCmluY2x1ZGUoZ2VuZXJhdG9yX3Rvb2xzOjpyb3V0ZSgkdGhpcywgX19GSUxFX18pKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.admin_deleteitem.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRtb2QgPSAkdGhpczsNCmluY2x1ZGUoZ2VuZXJhdG9yX3Rvb2xzOjpyb3V0ZSgkdGhpcywgX19GSUxFX18pKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.admin_deletetemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRtb2QgPSAkdGhpczsNCmluY2x1ZGUoZ2VuZXJhdG9yX3Rvb2xzOjpyb3V0ZSgkdGhpcywgX19GSUxFX18pKTsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.admin_editcategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJG1vZCA9ICR0aGlzOwppbmNsdWRlKGdlbmVyYXRvcl90b29sczo6cm91dGUoJHRoaXMsIF9fRklMRV9fKSk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.admin_editfielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRtb2QgPSAkdGhpczsNCmluY2x1ZGUoZ2VuZXJhdG9yX3Rvb2xzOjpyb3V0ZSgkdGhpcywgX19GSUxFX18pKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.admin_edititem.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KJG1vZCA9ICR0aGlzOw0KaW5jbHVkZShnZW5lcmF0b3JfdG9vbHM6OnJvdXRlKCR0aGlzLCBfX0ZJTEVfXykpOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.admin_editoption.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRtb2QgPSAkdGhpczsNCmluY2x1ZGUoZ2VuZXJhdG9yX3Rvb2xzOjpyb3V0ZSgkdGhpcywgX19GSUxFX18pKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.admin_edittemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRtb2QgPSAkdGhpczsNCmluY2x1ZGUoZ2VuZXJhdG9yX3Rvb2xzOjpyb3V0ZSgkdGhpcywgX19GSUxFX18pKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.admin_fields.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJG1vZCA9ICR0aGlzOwppbmNsdWRlKGdlbmVyYXRvcl90b29sczo6cm91dGUoJHRoaXMsIF9fRklMRV9fKSk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.admin_imagesbulkaction.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJG1vZCA9ICR0aGlzOwppbmNsdWRlKGdlbmVyYXRvcl90b29sczo6cm91dGUoJHRoaXMsIF9fRklMRV9fKSk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.admin_movecategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRtb2QgPSAkdGhpczsNCmluY2x1ZGUoZ2VuZXJhdG9yX3Rvb2xzOjpyb3V0ZSgkdGhpcywgX19GSUxFX18pKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.admin_movefielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRtb2QgPSAkdGhpczsNCmluY2x1ZGUoZ2VuZXJhdG9yX3Rvb2xzOjpyb3V0ZSgkdGhpcywgX19GSUxFX18pKTsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.admin_moveimages.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRtb2QgPSAkdGhpczsNCmluY2x1ZGUoZ2VuZXJhdG9yX3Rvb2xzOjpyb3V0ZSgkdGhpcywgX19GSUxFX18pKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.admin_moveitem.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRtb2QgPSAkdGhpczsNCmluY2x1ZGUoZ2VuZXJhdG9yX3Rvb2xzOjpyb3V0ZSgkdGhpcywgX19GSUxFX18pKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.admin_ordercategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRtb2QgPSAkdGhpczsNCmluY2x1ZGUoZ2VuZXJhdG9yX3Rvb2xzOjpyb3V0ZSgkdGhpcywgX19GSUxFX18pKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.admin_ordercategory_do.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJG1vZCA9ICR0aGlzOwppbmNsdWRlKGdlbmVyYXRvcl90b29sczo6cm91dGUoJHRoaXMsIF9fRklMRV9fKSk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.admin_search_reindex.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJG1vZCA9ICR0aGlzOwppbmNsdWRlKGdlbmVyYXRvcl90b29sczo6cm91dGUoJHRoaXMsIF9fRklMRV9fKSk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.admin_templates.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJG1vZCA9ICR0aGlzOwppbmNsdWRlKGdlbmVyYXRvcl90b29sczo6cm91dGUoJHRoaXMsIF9fRklMRV9fKSk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.categories.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KJG1vZCA9ICR0aGlzOw0KaW5jbHVkZShnZW5lcmF0b3JfdG9vbHM6OnJvdXRlKCR0aGlzLCBfX0ZJTEVfXykpOw0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KJG1vZCA9ICR0aGlzOw0KaW5jbHVkZShnZW5lcmF0b3JfdG9vbHM6OnJvdXRlKCR0aGlzLCBfX0ZJTEVfXykpOw0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KJG1vZCA9ICR0aGlzOw0KaW5jbHVkZShnZW5lcmF0b3JfdG9vbHM6OnJvdXRlKCR0aGlzLCBfX0ZJTEVfXykpOw0KDQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.detail.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KJG1vZCA9ICR0aGlzOw0KaW5jbHVkZShnZW5lcmF0b3JfdG9vbHM6OnJvdXRlKCR0aGlzLCBfX0ZJTEVfXykpOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/action.filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KJG1vZCA9ICR0aGlzOw0KaW5jbHVkZShnZW5lcmF0b3JfdG9vbHM6OnJvdXRlKCR0aGlzLCBfX0ZJTEVfXykpOw0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/function.admin_categorytab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJG1vZCA9ICR0aGlzOwppbmNsdWRlKGdlbmVyYXRvcl90b29sczo6cm91dGUoJHRoaXMsIF9fRklMRV9fKSk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/function.admin_fielddeftab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmluY2x1ZGUoZ2VuZXJhdG9yX3Rvb2xzOjpyb3V0ZSgkdGhpcywgX19GSUxFX18pKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/function.admin_fielddeftab_categories.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRtb2QgPSAkdGhpczsNCmluY2x1ZGUoZ2VuZXJhdG9yX3Rvb2xzOjpyb3V0ZSgkdGhpcywgX19GSUxFX18pKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/function.admin_itemtab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaW5jbHVkZShnZW5lcmF0b3JfdG9vbHM6OnJvdXRlKCR0aGlzLCBfX0ZJTEVfXykpOw0KDQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/function.admin_optiontab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaW5jbHVkZShnZW5lcmF0b3JfdG9vbHM6OnJvdXRlKCR0aGlzLCBfX0ZJTEVfXykpOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/function.admin_templatetab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KaW5jbHVkZShnZW5lcmF0b3JfdG9vbHM6OnJvdXRlKCR0aGlzLCBfX0ZJTEVfXykpOw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/images/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KLyogLS0tIGRvIG5vdCBlZGl0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLw0KLyogVG8gbWFrZSB0aGlzIG1vZHVsZSBlYXN5IHRvIGR1cGxpY2F0ZSwgdGhlIG1vZHVsZSBuYW1lIGFuZCBtb2R1bGUgYWxpYXMNCiAqIGlzIHRha2VuIGZyb20gdGhlIG1vZHVsZSBkaXJlY3RvcnkgbmFtZSB0aGF0IHRoaXMgbGFuZyBmaWxlIGlzIGNvbnRhaW5lZC4NCiAqIFRoaXMgaXMgcmVxdWlyZWQgYmVjYXVzZSB0aGUgbW9kdWxlIG9iamVjdCBjYW5ub3QgYmUgYWNjZXNzZWQgd2l0aG91dA0KICogVGhpcyBpcyByZXF1aXJlZCBiZWNhdXNlIHRoZSBtb2R1bGUgb2JqZWN0IGNhbm5vdCBiZSBhY2Nlc3NlZCB3aXRob3V0DQogKiBrbm93aW5nIGl0cyBuYW1lLg0KICovDQokY29uZmlnPWNtc21zKCktPkdldENvbmZpZygpOw0KJGRpciA9IHN0cl9yZXBsYWNlKCdcXCcgLCAnLycsIGRpcm5hbWUoX19GSUxFX18pKTsNCnByZWdfbWF0Y2goJy9cL21vZHVsZXNcLyguKylcLy8nLCAkZGlyLCAkbWF0Y2hlcyk7DQokbW9kdWxlX25hbWUgPSAkbWF0Y2hlc1sxXTsNCiRtb2R1bGVfYWxpYXMgPSBzdHJ0b2xvd2VyKCRtYXRjaGVzWzFdKTsNCiRyb290dXJsID0gJGNvbmZpZ1sncm9vdF91cmwnXTsNCmluY2x1ZGUoY21zX2pvaW5fcGF0aCgkY29uZmlnWyJyb290X3BhdGgiXSwnbW9kdWxlcycsJ01vZHVsZUdlbmVyYXRvcicsJ01vZHVsZUxpYicsJ2xhbmcnLCdlbl9VUy5waHAnKSk7DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/lang/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRtb2QgPSAkdGhpczsNCmluY2x1ZGUoZ2VuZXJhdG9yX3Rvb2xzOjpyb3V0ZSgkdGhpcywgX19GSUxFX18pKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRtb2QgPSAkdGhpczsNCmluY2x1ZGUoZ2VuZXJhdG9yX3Rvb2xzOjpyb3V0ZSgkdGhpcywgX19GSUxFX18pKTsNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[77u/PD9waHANCiRtb2QgPSAkdGhpczsNCmluY2x1ZGVfb25jZShnZW5lcmF0b3JfdG9vbHM6OnJvdXRlKCR0aGlzLCBfX0ZJTEVfXykpOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/ModuleExample.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCg0KLyoqDQogKiAgZ2VuZXJhdG9yICAtIHVnbHksIGJ1dCB3b3JrcyA6KQ0KICogQHJldHVybiBvYmplY3QgDQogKi8NCmlmICghZnVuY3Rpb25fZXhpc3RzKCdnZW5lcmF0b3InKSkgew0KDQogICAgZnVuY3Rpb24gZ2VuZXJhdG9yKCkgew0KICAgICAgICByZXR1cm4gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdNb2R1bGVHZW5lcmF0b3InKTsNCiAgICB9DQoNCn0NCg0KLyoNCg0KICBBdXRob3I6IEJlbiBNYWxlbiwgPGJlbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQogIENvLU1haW50YWluZXI6IFNpbW9uIFJhZGZvcmQsIDxzaW1vbkBjb25jZXB0ZmFjdG9yeS5jb20uYXU+DQogIFdlYjogd3d3LmNvbmNlcHRmYWN0b3J5LmNvbS5hdQ0KICBDby1NYWludGFpbmVyOiBKb25hdGhhbiBTY2htaWQsIDxoaUBqb25hdGhhbnNjaG1pZC5kZT4NCg0KICBMaXN0SXQgaXMgYSBDTVMgTWFkZSBTaW1wbGUgbW9kdWxlIHRoYXQgZW5hYmxlcyB0aGUgd2ViIGRldmVsb3BlciB0byBjcmVhdGUNCiAgbXVsdGlwbGUgbGlzdHMgdGhyb3VnaG91dCBhIHNpdGUuIEl0IGNhbiBiZSBkdXBsaWNhdGVkIGFuZCBnaXZlbiBmcmllbmRseQ0KICBuYW1lcyBmb3IgZWFzaWVyIGNsaWVudCBtYWludGVuYW5jZS4NCg0KICBXaGVuIGR1cGxpY2F0aW5nIHRoaXMgbW9kdWxlIGNoYW5nZSB0aGUgJ0xpc3RJdCcgYmVsb3cgdG8gdGhlIG5ldyBtb2R1bGUNCiAgbmFtZSwgZS5nLiBOZXdOYW1lLiBGb2xsb3cgdGhlIENNU01TIG1vZHVsZSBuYW1pbmcgY29udmVudGlvbnMsIGEteiB3aXRoIG5vDQogIHB1bmN0dWF0aW9uIGNoYXJhY3RlcnMgb3Igc3BhY2VzLiBBbHNvIGNoYW5nZSB0aGUgbmFtZSBvZiB0aGlzIGZpbGUgdG8gbWF0Y2gNCiAgLSBOZXdOYW1lLm1vZHVsZS5waHAuIEZpbmFsbHkgY2hhbmdlIHRoZSBuYW1lIG9mIHRoZSBMaXN0SXQgZm9sZGVyIHRvIHRoZQ0KICBzYW1lIE5ld05hbWUNCg0KICovDQoNCiRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsNCiRjZ2V4dGVuc2lvbnMgPSBjbXNfam9pbl9wYXRoKCRjb25maWdbJ3Jvb3RfcGF0aCddLCAnbW9kdWxlcycsICdDR0V4dGVuc2lvbnMnLCAnQ0dFeHRlbnNpb25zLm1vZHVsZS5waHAnKTsNCmlmICghaXNfcmVhZGFibGUoJGNnZXh0ZW5zaW9ucykpIHsNCiAgICBlY2hvICc8aDE+PGZvbnQgY29sb3I9InJlZCI+RVJST1I6IFRoZSBDR0V4dGVuc2lvbnMgbW9kdWxlIGNvdWxkIG5vdCBiZSBmb3VuZC48L2ZvbnQ+PC9oMT4nOw0KICAgIHJldHVybjsNCn0NCnJlcXVpcmVfb25jZSgkY2dleHRlbnNpb25zKTsNCg0KY2xhc3MgTW9kdWxlRXhhbXBsZSBleHRlbmRzIENHRXh0ZW5zaW9ucyB7DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7DQogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoKTsNCiAgICB9DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0TmFtZSgpIHsNCiAgICAgICAgcmV0dXJuIGdldF9jbGFzcygkdGhpcyk7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkgew0KICAgICAgICByZXR1cm4gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ZyaWVuZGx5bmFtZScpOw0KICAgIH0NCg0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRWZXJzaW9uKCkgew0KICAgICAgICByZXR1cm4gJzEuMCc7DQogICAgfQ0KDQogICAgcHVibGljIGZ1bmN0aW9uIEdldEhlbHAoKSB7DQogICAgICAgIHJldHVybiAkdGhpcy0+TGFuZygnaGVscCcpOw0KICAgIH0NCg0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRBdXRob3IoKSB7DQogICAgICAgIHJldHVybiAnQGt1em1hbnknOw0KICAgIH0NCg0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpIHsNCiAgICAgICAgcmV0dXJuICd6ZGVub0BrdXptYW55LmJpeic7DQogICAgfQ0KDQogICAgcHVibGljIGZ1bmN0aW9uIEdldENoYW5nZUxvZygpIHsNCiAgICAgICAgcmV0dXJuICR0aGlzLT5MYW5nKCdjaGFuZ2Vsb2cnKTsNCiAgICB9DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0UGFyYW1ldGVycygpIHsNCg0KICAgICAgICAkdGhpcy0+SW5pdGlhbGl6ZUFkbWluKCk7DQogICAgICAgICR0aGlzLT5Jbml0aWFsaXplRnJvbnRlbmQoKTsNCiAgICB9DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gQWxsb3dBdXRvVXBncmFkZSgpIHsNCiAgICAgICAgcmV0dXJuIEZBTFNFOw0KICAgIH0NCg0KICAgIHB1YmxpYyBmdW5jdGlvbiBJbml0aWFsaXplQWRtaW4oKSB7DQoNCiAgICAgICAgLy8gYXV0byBsb2FkIGZvciBnZW5lcmF0b3Jfb3B0cw0KICAgICAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7DQogICAgICAgICRnZW5lcmF0b3Jfb3B0cyA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sncm9vdF9wYXRoJ10sICdtb2R1bGVzJywgJ01vZHVsZUdlbmVyYXRvcicsICdsaWInLCAnY2xhc3MuZ2VuZXJhdG9yX29wdHMucGhwJyk7DQogICAgICAgIHJlcXVpcmVfb25jZSgkZ2VuZXJhdG9yX29wdHMpOw0KDQogICAgICAgIGdlbmVyYXRvcl9vcHRzOjppbml0X2FkbWluKCR0aGlzKTsNCiAgICB9DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gSW5pdGlhbGl6ZUZyb250ZW5kKCkgew0KDQogICAgICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsNCiAgICAgICAgJGdlbmVyYXRvcl9vcHRzID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWydyb290X3BhdGgnXSwgJ21vZHVsZXMnLCAnTW9kdWxlR2VuZXJhdG9yJywgJ2xpYicsICdjbGFzcy5nZW5lcmF0b3Jfb3B0cy5waHAnKTsNCiAgICAgICAgcmVxdWlyZV9vbmNlKCRnZW5lcmF0b3Jfb3B0cyk7DQoNCiAgICAgICAgZ2VuZXJhdG9yX29wdHM6OmluaXQoJHRoaXMpOw0KICAgIH0NCg0KICAgIHB1YmxpYyBmdW5jdGlvbiBMYXp5TG9hZEZyb250ZW5kKCkgew0KICAgICAgICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2xhenlsb2FkaW5nJykpIHsNCiAgICAgICAgICAgIHJldHVybiBUUlVFOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgcmV0dXJuIEZBTFNFOw0KICAgICAgICB9DQogICAgfQ0KDQogICAgcHVibGljIGZ1bmN0aW9uIEdldEV2ZW50RGVzY3JpcHRpb24oJGV2ZW50bmFtZSkgew0KICAgICAgICByZXR1cm4gJHRoaXMtPmxhbmcoJ2V2ZW50ZGVzYy0nIC4gJGV2ZW50bmFtZSk7DQogICAgfQ0KDQogICAgcHVibGljIGZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkgew0KICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICB9DQoNCiAgICAvKioNCiAgICAgKiBEb0FjdGlvbiAtIGRlZmF1bHQgYWRkIGRlZmF1bHQgcGFyYW1zDQogICAgICogQHBhcmFtIHR5cGUgJG5hbWUNCiAgICAgKiBAcGFyYW0gdHlwZSAkaWQNCiAgICAgKiBAcGFyYW0gdHlwZSAkcGFyYW1zDQogICAgICogQHBhcmFtIHR5cGUgJHJldHVybmlkIA0KICAgICAqLw0KICAgIHB1YmxpYyBmdW5jdGlvbiBEb0FjdGlvbigkbmFtZSwgJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQgPSAnJykgew0KICAgICAgICBzd2l0Y2ggKCRuYW1lKSB7DQogICAgICAgICAgICBjYXNlICJkZWZhdWx0IjoNCiAgICAgICAgICAgIGNhc2UgImRldGFpbCI6DQogICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCRuYW1lIC4gJ19hY3Rpb25fcGFyYW1zJykgIT0gIiIpIHsNCiAgICAgICAgICAgICAgICAgICAgJGRlZmF1bHRfYWN0aW9uX3BhcmFtcyA9IGV4cGxvZGUoIiAiLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgkbmFtZSAuICdfYWN0aW9uX3BhcmFtcycpKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlzX2FycmF5KCRkZWZhdWx0X2FjdGlvbl9wYXJhbXMpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkZGVmYXVsdF9hY3Rpb25fcGFyYW1zIGFzICRkZWZhdWx0X2FjdGlvbl9wYXJhbSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkZWZhdWx0X2FjdGlvbl9wYXJhbV9hcnJheSA9IGV4cGxvZGUoIj0iLCAkZGVmYXVsdF9hY3Rpb25fcGFyYW0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCgkZGVmYXVsdF9hY3Rpb25fcGFyYW1fYXJyYXkpID09IDIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhcmFtc1skZGVmYXVsdF9hY3Rpb25fcGFyYW1fYXJyYXlbMF1dID0gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKHN0cl9yZXBsYWNlKGFycmF5KCciJywgIiciKSwgYXJyYXkoJycsICcnKSwgJGRlZmF1bHRfYWN0aW9uX3BhcmFtX2FycmF5WzFdKSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vZmx1c2gNCiAgICAgICAgb2Jfc3RhcnQoKTsNCiAgICAgICAgcGFyZW50OjpEb0FjdGlvbigkbmFtZSwgJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOw0KICAgICAgICAkb3V0cHV0MiA9IG9iX2dldF9jb250ZW50cygpOw0KICAgICAgICBvYl9lbmRfY2xlYW4oKTsNCg0KICAgICAgICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ3RpdGxlX3BhcmFtX2Zvcl9jYWNoZScpKSB7DQogICAgICAgICAgICAkc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7DQogICAgICAgICAgICBzd2l0Y2ggKCRuYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiZGV0YWlsIjoNCiAgICAgICAgICAgICAgICAgICAgJHRpdGxlc19hcnJheSA9IGV4cGxvZGUoJywnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndGl0bGVfcGFyYW1fZm9yX2NhY2hlJykpOw0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkdGl0bGVzX2FycmF5IGFzICR0aXRsZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZWdfbWF0Y2goJy88IS0tJyAuICR0aXRsZSAuICc6KC4qKS0tPi9pJywgJG91dHB1dDIsICRtYXRjaGVzKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzbWFydHktPmFzc2lnbigkdGl0bGUsICRtYXRjaGVzWzFdKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBiZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgZWNobyAkb3V0cHV0MjsNCiAgICB9DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gSGFzQWRtaW4oKSB7DQogICAgICAgIHJldHVybiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaGFzX2FkbWluJywgZmFsc2UpOw0KICAgIH0NCg0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRBZG1pblNlY3Rpb24oKSB7DQogICAgICAgIHJldHVybiAnY29udGVudCc7DQogICAgfQ0KDQogICAgcHVibGljIGZ1bmN0aW9uIEdldEFkbWluRGVzY3JpcHRpb24oKSB7DQogICAgICAgIHJldHVybiAkdGhpcy0+TGFuZygnbW9kZGVzY3JpcHRpb24nKTsNCiAgICB9DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkgew0KICAgICAgICByZXR1cm4gJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkdGhpcy0+X0dldE1vZHVsZUFsaWFzKCkgLiAnX21vZGlmeV9pdGVtJyk7DQogICAgfQ0KDQogICAgcHVibGljIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpIHsNCiAgICAgICAgcmV0dXJuIGFycmF5KCdDR0V4dGVuc2lvbnMnID0+ICcxLjI2JywgJ01vZHVsZUdlbmVyYXRvcicgPT4gJzEuMCcsICdFeHRlbmRlZFRvb2xzJyA9PiAnMS4wJyk7DQogICAgfQ0KDQogICAgcHVibGljIGZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCkgew0KICAgICAgICByZXR1cm4gJzEuOSc7DQogICAgfQ0KDQogICAgcHVibGljIGZ1bmN0aW9uIE1heGltdW1DTVNWZXJzaW9uKCkgew0KICAgICAgICByZXR1cm4gJzEuMTAuOSc7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkgew0KICAgICAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKSB7DQogICAgICAgIHJldHVybiAkdGhpcy0+TGFuZygncG9zdHVuaW5zdGFsbCcpOw0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqICBnZXQgbW9kdWxlIGFsaWFzDQogICAgICogQHJldHVybiB0eXBlIA0KICAgICAqLw0KICAgIHB1YmxpYyBmdW5jdGlvbiBfR2V0TW9kdWxlQWxpYXMoKSB7DQogICAgICAgICR2YWx1ZSA9IGNtc191dGlsczo6Z2V0X2FwcF9kYXRhKGdldF9jbGFzcygpIC4gX19GVU5DVElPTl9fKTsNCiAgICAgICAgaWYgKCR2YWx1ZSkNCiAgICAgICAgICAgIHJldHVybiAkdmFsdWU7DQoNCiAgICAgICAgJHZhbHVlID0gc3RydG9sb3dlcigkdGhpcy0+R2V0TmFtZSgpKTsNCiAgICAgICAgY21zX3V0aWxzOjpzZXRfYXBwX2RhdGEoZ2V0X2NsYXNzKCkgLiBfX0ZVTkNUSU9OX18sICR2YWx1ZSk7DQogICAgICAgIHJldHVybiAkdmFsdWU7DQogICAgfQ0KDQogICAgLyoqDQogICAgICogIGdldCBjb3N0dW0gZmllbGQgZGVmcw0KICAgICAqIEBwYXJhbSBJTlQgJGl0ZW1faWQNCiAgICAgKiBAcmV0dXJuIGFycmF5DQogICAgICovDQogICAgcHVibGljIGZ1bmN0aW9uIEdldENvc3R1bUZpZWxkRGVmcygkaXRlbV9pZCkgew0KICAgICAgICByZXR1cm4gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfY29zdHVtX2ZpZWxkX2RlZigkdGhpcywgJGl0ZW1faWQpOw0KICAgIH0NCg0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRIZWFkZXJIdG1sKCkgew0KICAgICAgICAkbW9kdWxlID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdNb2R1bGVHZW5lcmF0b3InKTsNCiAgICAgICAkb3V0cHV0ID0gJzxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSInLiRtb2R1bGUtPkdldE1vZHVsZVVSTFBhdGgoKSAuICcvanMvbUNvbG9yUGlja2VyLm1pbi5qcyI+PC9zY3JpcHQ+JzsNCg0KICAgICAgICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2hhc19nYWxsZXJ5JykpIHsNCiAgICAgICAgICAgICRvdXRwdXQgLj0gJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9icC55YWhvb2FwaXMuY29tLzIuNC4yMS9icm93c2VycGx1cy1taW4uanMiPjwvc2NyaXB0Pic7DQogICAgICAgICAgICAkcGx1cGxvYWRfbGlicyA9IGFycmF5KCdwbHVwbG9hZC5qcycsICdwbHVwbG9hZC5nZWFycy5qcycsICdwbHVwbG9hZC5zaWx2ZXJsaWdodC5qcycsICdwbHVwbG9hZC5mbGFzaC5qcycsICdwbHVwbG9hZC5icm93c2VycGx1cy5qcycsICdwbHVwbG9hZC5odG1sNC5qcycsICdwbHVwbG9hZC5odG1sNS5qcycpOw0KICAgICAgICAgICAgZm9yZWFjaCAoJHBsdXBsb2FkX2xpYnMgYXMgJHBsdXBsb2FkX2xpYikgew0KICAgICAgICAgICAgICAgICRmbiA9ICRtb2R1bGUtPkdldE1vZHVsZVVSTFBhdGgoKSAuICcvanMvcGx1cGxvYWQvJyAuICRwbHVwbG9hZF9saWI7DQogICAgICAgICAgICAgICAgJG91dHB1dCAuPSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJyAuICRmbiAuICciPjwvc2NyaXB0PicgLiAiXG4iOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgJG91dHB1dCAuPSAnPCEtLSA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgIHNyYz0iaHR0cDovL2dldGZpcmVidWcuY29tL3JlbGVhc2VzL2xpdGUvMS4yL2ZpcmVidWctbGl0ZS1jb21wcmVzc2VkLmpzIj48L3NjcmlwdD4gLS0+JzsNCiAgICAgICAgfQ0KDQogICAgICAgICRmbiA9ICRtb2R1bGUtPkdldE1vZHVsZVVSTFBhdGgoKSAuICcvanMvanF1ZXJ5LnRhYmxlZG5kXzBfNS5qcyc7DQogICAgICAgICRvdXRwdXQgLj0gJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IicgLiAkZm4gLiAnIj48L3NjcmlwdD4nIC4gIlxuIjsNCg0KICAgICAgICByZXR1cm4gJG91dHB1dDsNCiAgICB9DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gU2VhcmNoUmVzdWx0V2l0aFBhcmFtcygkcmV0dXJuaWQsICRpdGVtX2lkLCAkYXR0ciA9ICcnLCAkcGFyYW1zID0gJycpIHsNCiAgICAgICAgaWYgKCEkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc2VhcmNoYWJsZScpKQ0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICByZXR1cm4gZ2VuZXJhdG9yX3Rvb2xzOjpnZXRfc2VhcmNoX3Jlc3VsdCgkdGhpcywgJHJldHVybmlkLCAkaXRlbV9pZCwgJGF0dHIsICRwYXJhbXMpOw0KICAgIH0NCg0KICAgIHB1YmxpYyBmdW5jdGlvbiBTZWFyY2hSZWluZGV4KCRtb2R1bGUpIHsNCiAgICAgICAgaWYgKCEkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc2VhcmNoYWJsZScpKQ0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICByZXR1cm4gZ2VuZXJhdG9yX3Rvb2xzOjpzZWFyY2hfcmVpbmRleCgkdGhpcywgJG1vZHVsZSk7DQogICAgfQ0KDQp9DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/templates/categorylist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Fzc2lnbiB2YXI9InRlbXBsYXRlX2FycmF5IiB2YWx1ZT0iOyJ8ZXhwbG9kZTokc21hcnR5LnRlbXBsYXRlfQp7Y2FwdHVyZSBhc3NpZ249Iml0ZW1wbGF0ZSJ9eyRnZW5lcmF0b3JfdGVtcGxhdGVzfS97JHRlbXBsYXRlX2FycmF5LjF9ey9jYXB0dXJlfQp7aW5jbHVkZSBmaWxlPSRpdGVtcGxhdGV9]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/templates/categorytab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Fzc2lnbiB2YXI9InRlbXBsYXRlX2FycmF5IiB2YWx1ZT0iOyJ8ZXhwbG9kZTokc21hcnR5LnRlbXBsYXRlfQ0Ke2NhcHR1cmUgYXNzaWduPSJpdGVtcGxhdGUifXskZ2VuZXJhdG9yX3RlbXBsYXRlc30veyR0ZW1wbGF0ZV9hcnJheS4xfXsvY2FwdHVyZX0NCntpbmNsdWRlIGZpbGU9JGl0ZW1wbGF0ZX0=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/templates/editcategory.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Fzc2lnbiB2YXI9InRlbXBsYXRlX2FycmF5IiB2YWx1ZT0iOyJ8ZXhwbG9kZTokc21hcnR5LnRlbXBsYXRlfQp7Y2FwdHVyZSBhc3NpZ249Iml0ZW1wbGF0ZSJ9eyRnZW5lcmF0b3JfdGVtcGxhdGVzfS97JHRlbXBsYXRlX2FycmF5LjF9ey9jYXB0dXJlfQp7aW5jbHVkZSBmaWxlPSRpdGVtcGxhdGV9]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/templates/editcategory_old.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Fzc2lnbiB2YXI9InRlbXBsYXRlX2FycmF5IiB2YWx1ZT0iOyJ8ZXhwbG9kZTokc21hcnR5LnRlbXBsYXRlfQ0Ke2NhcHR1cmUgYXNzaWduPSJpdGVtcGxhdGUifXskZ2VuZXJhdG9yX3RlbXBsYXRlc30veyR0ZW1wbGF0ZV9hcnJheS4xfXsvY2FwdHVyZX0NCntpbmNsdWRlIGZpbGU9JGl0ZW1wbGF0ZX0=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/templates/editfielddef.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Fzc2lnbiB2YXI9InRlbXBsYXRlX2FycmF5IiB2YWx1ZT0iOyJ8ZXhwbG9kZTokc21hcnR5LnRlbXBsYXRlfQ0Ke2NhcHR1cmUgYXNzaWduPSJpdGVtcGxhdGUifXskZ2VuZXJhdG9yX3RlbXBsYXRlc30veyR0ZW1wbGF0ZV9hcnJheS4xfXsvY2FwdHVyZX0NCntpbmNsdWRlIGZpbGU9JGl0ZW1wbGF0ZX0=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/templates/edititem.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Fzc2lnbiB2YXI9InRlbXBsYXRlX2FycmF5IiB2YWx1ZT0iOyJ8ZXhwbG9kZTokc21hcnR5LnRlbXBsYXRlfQ0Ke2NhcHR1cmUgYXNzaWduPSJpdGVtcGxhdGUifXskZ2VuZXJhdG9yX3RlbXBsYXRlc30veyR0ZW1wbGF0ZV9hcnJheS4xfXsvY2FwdHVyZX0NCntpbmNsdWRlIGZpbGU9JGl0ZW1wbGF0ZX0=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/templates/edittemplate.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Fzc2lnbiB2YXI9InRlbXBsYXRlX2FycmF5IiB2YWx1ZT0iOyJ8ZXhwbG9kZTokc21hcnR5LnRlbXBsYXRlfQ0Ke2NhcHR1cmUgYXNzaWduPSJpdGVtcGxhdGUifXskZ2VuZXJhdG9yX3RlbXBsYXRlc30veyR0ZW1wbGF0ZV9hcnJheS4xfXsvY2FwdHVyZX0NCntpbmNsdWRlIGZpbGU9JGl0ZW1wbGF0ZX0=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/templates/fielddeftab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Fzc2lnbiB2YXI9InRlbXBsYXRlX2FycmF5IiB2YWx1ZT0iOyJ8ZXhwbG9kZTokc21hcnR5LnRlbXBsYXRlfQ0Ke2NhcHR1cmUgYXNzaWduPSJpdGVtcGxhdGUifXskZ2VuZXJhdG9yX3RlbXBsYXRlc30veyR0ZW1wbGF0ZV9hcnJheS4xfXsvY2FwdHVyZX0NCntpbmNsdWRlIGZpbGU9JGl0ZW1wbGF0ZX0=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/templates/filter.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Fzc2lnbiB2YXI9InRlbXBsYXRlX2FycmF5IiB2YWx1ZT0iOyJ8ZXhwbG9kZTokc21hcnR5LnRlbXBsYXRlfQ0Ke2NhcHR1cmUgYXNzaWduPSJpdGVtcGxhdGUifXskZ2VuZXJhdG9yX3RlbXBsYXRlc30veyR0ZW1wbGF0ZV9hcnJheS4xfXsvY2FwdHVyZX0NCntpbmNsdWRlIGZpbGU9JGl0ZW1wbGF0ZX0=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/templates/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/templates/itemtab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Fzc2lnbiB2YXI9InRlbXBsYXRlX2FycmF5IiB2YWx1ZT0iOyJ8ZXhwbG9kZTokc21hcnR5LnRlbXBsYXRlfQ0Ke2NhcHR1cmUgYXNzaWduPSJpdGVtcGxhdGUifXskZ2VuZXJhdG9yX3RlbXBsYXRlc30veyR0ZW1wbGF0ZV9hcnJheS4xfXsvY2FwdHVyZX0NCntpbmNsdWRlIGZpbGU9JGl0ZW1wbGF0ZX0=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/templates/optiontab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Fzc2lnbiB2YXI9InRlbXBsYXRlX2FycmF5IiB2YWx1ZT0iOyJ8ZXhwbG9kZTokc21hcnR5LnRlbXBsYXRlfQ0Ke2NhcHR1cmUgYXNzaWduPSJpdGVtcGxhdGUifXskZ2VuZXJhdG9yX3RlbXBsYXRlc30veyR0ZW1wbGF0ZV9hcnJheS4xfXsvY2FwdHVyZX0NCntpbmNsdWRlIGZpbGU9JGl0ZW1wbGF0ZX0=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/templates/ordercategory.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Fzc2lnbiB2YXI9InRlbXBsYXRlX2FycmF5IiB2YWx1ZT0iOyJ8ZXhwbG9kZTokc21hcnR5LnRlbXBsYXRlfQp7Y2FwdHVyZSBhc3NpZ249Iml0ZW1wbGF0ZSJ9eyRnZW5lcmF0b3JfdGVtcGxhdGVzfS97JHRlbXBsYXRlX2FycmF5LjF9ey9jYXB0dXJlfQp7aW5jbHVkZSBmaWxlPSRpdGVtcGxhdGV9]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/templates/orig_category_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Fzc2lnbiB2YXI9InRlbXBsYXRlX2FycmF5IiB2YWx1ZT0iOyJ8ZXhwbG9kZTokc21hcnR5LnRlbXBsYXRlfQ0Ke2NhcHR1cmUgYXNzaWduPSJpdGVtcGxhdGUifXskZ2VuZXJhdG9yX3RlbXBsYXRlc30veyR0ZW1wbGF0ZV9hcnJheS4xfXsvY2FwdHVyZX0NCntpbmNsdWRlIGZpbGU9JGl0ZW1wbGF0ZX0=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/templates/orig_detail_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Fzc2lnbiB2YXI9InRlbXBsYXRlX2FycmF5IiB2YWx1ZT0iOyJ8ZXhwbG9kZTokc21hcnR5LnRlbXBsYXRlfQ0Ke2NhcHR1cmUgYXNzaWduPSJpdGVtcGxhdGUifXskZ2VuZXJhdG9yX3RlbXBsYXRlc30veyR0ZW1wbGF0ZV9hcnJheS4xfXsvY2FwdHVyZX0NCntpbmNsdWRlIGZpbGU9JGl0ZW1wbGF0ZX0=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/templates/orig_filter_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Fzc2lnbiB2YXI9InRlbXBsYXRlX2FycmF5IiB2YWx1ZT0iOyJ8ZXhwbG9kZTokc21hcnR5LnRlbXBsYXRlfQ0Ke2NhcHR1cmUgYXNzaWduPSJpdGVtcGxhdGUifXskZ2VuZXJhdG9yX3RlbXBsYXRlc30veyR0ZW1wbGF0ZV9hcnJheS4xfXsvY2FwdHVyZX0NCntpbmNsdWRlIGZpbGU9JGl0ZW1wbGF0ZX0=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/templates/orig_summary_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Fzc2lnbiB2YXI9InRlbXBsYXRlX2FycmF5IiB2YWx1ZT0iOyJ8ZXhwbG9kZTokc21hcnR5LnRlbXBsYXRlfQ0Ke2NhcHR1cmUgYXNzaWduPSJpdGVtcGxhdGUifXskZ2VuZXJhdG9yX3RlbXBsYXRlc30veyR0ZW1wbGF0ZV9hcnJheS4xfXsvY2FwdHVyZX0NCntpbmNsdWRlIGZpbGU9JGl0ZW1wbGF0ZX0=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/source/ModuleExample/templates/templatetab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Fzc2lnbiB2YXI9InRlbXBsYXRlX2FycmF5IiB2YWx1ZT0iOyJ8ZXhwbG9kZTokc21hcnR5LnRlbXBsYXRlfQ0Ke2NhcHR1cmUgYXNzaWduPSJpdGVtcGxhdGUifXskZ2VuZXJhdG9yX3RlbXBsYXRlc30veyR0ZW1wbGF0ZV9hcnJheS4xfXsvY2FwdHVyZX0NCntpbmNsdWRlIGZpbGU9JGl0ZW1wbGF0ZX0=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/ModuleLib/templates/categorylist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRpdGVtY291bnQgPiAwfQo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoPnskY2F0ZWdvcnl0ZXh0fTwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+Cntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9CgkJPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS0+cm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skZW50cnktPnJvd2NsYXNzfSc7Ij4KCQkJPHRkPnskZW50cnktPm5hbWV9PC90ZD4KCQkJPHRkPnskZW50cnktPmVkaXRsaW5rfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5kZWxldGVsaW5rfTwvdGQ+CgkJPC90cj4Key9mb3JlYWNofQoJPC90Ym9keT4KPC90YWJsZT4Key9pZn0KCjxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIj48cCBjbGFzcz0icGFnZW9wdGlvbnMiPnskYWRkbGlua317aWYgJGl0ZW1jb3VudCA+IDB9IC8geyRyZW9yZGVyfXsvaWZ9PC9wPjwvZGl2Pgo=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/templates/categorytab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRpdGVtY291bnQgPiAwfQ0KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4NCiAgICA8dGhlYWQ+DQogICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0aD57JHRpdGxlfTwvdGg+DQogICAgICAgICAgICA8dGg+eyRhbGlhc308L3RoPg0KICAgICAgICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4NCiAgICAgICAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+DQogICAgICAgICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPg0KICAgICAgICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4NCiAgICAgICAgPC90cj4NCiAgICA8L3RoZWFkPg0KICAgIDx0Ym9keT4NCntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9DQogICAgICAgIDx0ciBjbGFzcz0ieyRlbnRyeS5yb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS5yb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS5yb3djbGFzc30nOyI+DQogICAgICAgICAgICA8dGQ+eyRlbnRyeS5saW5rfTwvdGQ+DQogICAgICAgICAgICA8dGQ+eyRlbnRyeS5hbGlhc308L3RkPg0KICAgICAgICAgICAgPHRkPnskZW50cnkudXBsaW5rfTwvdGQ+DQogICAgICAgICAgICA8dGQ+eyRlbnRyeS5kb3dubGlua308L3RkPg0KICAgICAgICAgICAgPHRkPnskZW50cnkuZWRpdGxpbmt9PC90ZD4NCiAgICAgICAgICAgIDx0ZD57JGVudHJ5LmRlbGV0ZX08L3RkPg0KICAgICAgICA8L3RyPg0Key9mb3JlYWNofQ0KICAgIDwvdGJvZHk+DQo8L3RhYmxlPg0Key9pZn0NCg0KPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPnskYWRkbGlua308L2Rpdj4NCg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/templates/editcategory.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Fzc2lnbiB2YXI9Im1vZHVsZSIgdmFsdWU9JG1vZH0KCnskc3RhcnRmb3JtfQoKeyRtb2R1bGUtPlN0YXJ0VGFiSGVhZGVycygpfQp7JG1vZHVsZS0+U2V0VGFiSGVhZGVyKCdjYXRlZ29yeScsICRtb2R1bGUtPkxhbmcoJ2NhdGVnb3J5JykpfQoKe2lmIGlzc2V0KCRjdXN0b21fZmllbGRkZWYpfQogICAge2ZvcmVhY2ggZnJvbT0kY3VzdG9tX2ZpZWxkZGVmIGl0ZW09J2ZpZWxkJ30KICAgICAgICB7aWYgJGZpZWxkLT50eXBlID09ICd0YWInfQogICAgICAgICAgICB7JG1vZHVsZS0+U2V0VGFiSGVhZGVyKCRmaWVsZC0+YWxpYXMsICRmaWVsZC0+bGFiZWwpfQogICAgICAgIHsvaWZ9ICAgICAgICAgICAgCiAgICB7L2ZvcmVhY2h9ICAgICAgICAgICAgCnsvaWZ9ICAgICAgICAgICAgCnskbW9kdWxlLT5FbmRUYWJIZWFkZXJzKCl9Cgp7JG1vZHVsZS0+U3RhcnRUYWJDb250ZW50KCl9CnskbW9kdWxlLT5TdGFydFRhYignY2F0ZWdvcnknKX0KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPip7JG5hbWV0ZXh0fTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0bmFtZX08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGFsaWFzdGV4dH06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dGFsaWFzfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcGFyZW50dGV4dH06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRwYXJlbnRkcm9wZG93bn08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHVzZXJncm91cHRleHR9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXR1c2VyZ3JvdXB9PC9wPgo8L2Rpdj4KCntpZiBpc3NldCgkY3VzdG9tX2ZpZWxkZGVmKX0KICAgIHtmb3JlYWNoIGZyb209JGN1c3RvbV9maWVsZGRlZiBpdGVtPSdmaWVsZCd9CiAgICAgICAge2lmICRmaWVsZC0+dHlwZSA9PSAndGFiJ30KICAgICAgICAgICAgeyRtb2R1bGUtPkVuZFRhYigpfQogICAgICAgICAgICB7JG1vZHVsZS0+U3RhcnRUYWIoJGZpZWxkLT5hbGlhcyl9IAogICAgICAgIHtlbHNlaWYgKCFpc1NldCgkaXRlbV9pZCkgJiYgISRmaWVsZC0+ZWRpdHZpZXcpIHx8IGlzU2V0KCRpdGVtX2lkKX0KICAgICAgICAgICAge2lmICRmaWVsZC0+ZmllbGR9CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZC0+cHJvbXB0fTo8L3A+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgICAgICAgICAgICAgICAge2lmICFlbXB0eSgkZmllbGQtPmhlbHApfSh7JGZpZWxkLT5oZWxwfSk8YnIgLz57L2lmfQogICAgICAgICAgICAgICAgICAgIHskZmllbGQtPmZpZWxkfQogICAgICAgICAgICAgICAgICAgIHtpZiBpc3NldCgkZmllbGQtPmZpbGVuYW1lKX08YnIgLz4KICAgICAgICAgICAgICAgICAgICB7Y2FwdHVyZSBhc3NpZ249InNyYyJ9eyRmaWVsZC0+ZmlsZV9sb2NhdGlvbn0veyRmaWVsZC0+ZmlsZW5hbWV9ey9jYXB0dXJlfSAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAge2NhcHR1cmUgYXNzaWduPSJzcmNwYXRoIn17JGZpZWxkLT5maWxlcGF0aF9sb2NhdGlvbn0veyRmaWVsZC0+ZmlsZW5hbWV9ey9jYXB0dXJlfSAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAge2lmICRmaWVsZC0+aXNfaW1hZ2V9CiAgICAgICAgICAgICAgICAgICAge2lmICRpbWFnZV9zaXplX2FkbWluX3dpZHRoICYmICRpbWFnZV9zaXplX2FkbWluX2hlaWdodH0KICAgICAgICAgICAgICAgICAgICAgICAge2Ntc19tb2R1bGUgbW9kdWxlPSJDR1NtYXJ0SW1hZ2UiIHNyYz0kc3JjcGF0aHxyZXBsYWNlOiJgJHJvb3RfdXJsYCI6JycgYWx0PSRmaWxlLT5maWxlbmFtZSBmaWx0ZXJfY3JvcHRvZml0PSJgJGltYWdlX3NpemVfYWRtaW5fd2lkdGhgLGAkaW1hZ2Vfc2l6ZV9hZG1pbl9oZWlnaHRgIiBzdHlsZT0ibWFyZ2luOjVweCAwOyJ9ICAgIAogICAgICAgICAgICAgICAgICAgIHtlbHNlaWYgJGltYWdlX3NpemVfYWRtaW5fd2lkdGh9CiAgICAgICAgICAgICAgICAgICAgICAgIHtjbXNfbW9kdWxlIG1vZHVsZT0iQ0dTbWFydEltYWdlIiBzcmM9JHNyY3BhdGh8cmVwbGFjZToiYCRyb290X3VybGAiOicnIGFsdD0kZmlsZS0+ZmlsZW5hbWUgZmlsdGVyX3Jlc2l6ZT0idyxgJGltYWdlX3NpemVfYWRtaW5fd2lkdGhgIiBzdHlsZT0ibWFyZ2luOjVweCAwOyJ9ICAgIAogICAgICAgICAgICAgICAgICAgIHtlbHNlaWYgJGltYWdlX3NpemVfYWRtaW5faGVpZ2h0fQogICAgICAgICAgICAgICAgICAgICAgICB7Y21zX21vZHVsZSBtb2R1bGU9IkNHU21hcnRJbWFnZSIgc3JjPSRzcmNwYXRofHJlcGxhY2U6ImAkcm9vdF91cmxgIjonJyBhbHQ9JGZpbGUtPmZpbGVuYW1lIGZpbHRlcl9yZXNpemU9ImgsYCRpbWFnZV9zaXplX2FkbWluX2hlaWdodGAiIHN0eWxlPSJtYXJnaW46NXB4IDA7In0gICAgCiAgICAgICAgICAgICAgICAgICAgey9pZn0KICAgICAgICAgICAgICAgIHsvaWZ9CiAgICAgICAgICAgICAgICA8YnIgLz4KICAgICAgICAgICAgICAgIHskZmllbGQtPmRlbGV0ZV9maWxlfSB7JGZpZWxkLT5maWxlbmFtZX08YnIgLz4KICAgICAgICAgICAgey9pZn0KICAgICAgICA8L3A+CiAgICA8L2Rpdj4KCntlbHNlfQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGQtPnByb21wdH08L3A+CiAgICAgICAge2lmICRmaWVsZC0+ZXh0cmF9CiAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgeyRmaWVsZC0+ZXh0cmF9CiAgICAgICAgICAgIDwvcD4KICAgICAgICB7L2lmfQogICAgPC9kaXY+CnsvaWZ9CnsvaWZ9CnsvZm9yZWFjaH0Key9pZn0KeyRtb2R1bGUtPkVuZFRhYigpfQoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzdWJtaXR9eyRoaWRkZW59eyRjYW5jZWx9PC9wPgo8L2Rpdj4KeyRlbmRmb3JtfQoK]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/templates/editfielddef.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGV9PC9oMz4NCnskc3RhcnRmb3JtfQ0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICA8cCBjbGFzcz0icGFnZXRleHQiPip7JG5hbWV0ZXh0fTo8L3A+DQogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dG5hbWV9PC9wPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRhbGlhc306PC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfYWxpYXN9PC9wPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRoZWxwdGV4dH06PC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRoZWxwfTwvcD4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskdHlwZXRleHR9OjwvcD4NCiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0dHlwZX08L3A+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHVzZXJ2aWV3dGV4dH06PC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdXNlcnZpZXd9PC9wPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmcm9udGVuZF90ZXh0fTo8L3A+DQogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mcm9udGVuZH08L3A+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGVkaXR2aWV3X3RleHR9OjwvcD4NCiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2VkaXR2aWV3fTwvcD4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmlsdGVyX2Zyb250ZW5kX3RleHR9OjwvcD4NCiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2ZpbHRlcl9mcm9udGVuZH08L3A+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpbHRlcl9hZG1pbl90ZXh0fTo8L3A+DQogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9maWx0ZXJfYWRtaW59PC9wPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRzZWFyY2hhYmxlX3RleHR9OjwvcD4NCiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3NlYXJjaGFibGV9PC9wPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRleHRyYX06PC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZXh0cmF9PC9wPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3NlY3Rpb24nKX06PC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc2VjdGlvbn08L3A+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+DQo8cCBjbGFzcz0icGFnZWlucHV0Ij57aWYgaXNzZXQoJGZpZWxkZGVmX2lkKX17JGZpZWxkZGVmX2lkfXsvaWZ9eyRzdWJtaXR9eyRjYW5jZWx9eyRhcHBseX08L3A+DQo8L2Rpdj4NCnskZW5kZm9ybX0NCg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/templates/edititem.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Fzc2lnbiB2YXI9Im1vZHVsZSIgdmFsdWU9JG1vZH0NCnthc3NpZ24gdmFyPSJvbGRhY3Rpb25pZCIgdmFsdWU9JGFjdGlvbmlkfQ0KDQoNCntsaXRlcmFsfQ0KICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQogICAgICAgIC5zY3JvbGxhYmxlIHsNCiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgICAgICAgICB3aWR0aDogOTAlOw0KICAgICAgICB9DQoNCiAgICA8L3N0eWxlPg0KDQogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7DQoNCiAgICAgICAgICAkKCcjaXRlbWxpc3QnKS50YWJsZURuRCgpOw0KICAgICAgJCgnOnN1Ym1pdC5zYXZlX2l0ZW1zJykuY2xpY2soZnVuY3Rpb24oKXsNCiAgICAgICAgdmFyIGRhdGEgPSBuZXcgQXJyYXk7DQogICAgICAgICQoJ3RhYmxlI2l0ZW1saXN0IHRyJykuZWFjaChmdW5jdGlvbihpLHRyKXsNCiAgICAgICAgICBkYXRhLnB1c2goJCh0cikuYXR0cignaWQnKSk7DQogICAgICAgIH0pOw0KICAgICAgICBkYXRhID0gZGF0YS5qb2luKCcsJyk7DQogICAgICAgICQoJyNzZXJpYWxkYXRhJykudmFsKGRhdGEpOw0KICAgICAgfSk7DQogIA0KICAgIH0pOw0KDQogICAgPC9zY3JpcHQ+DQp7L2xpdGVyYWx9DQoNCg0Ke2xpdGVyYWx9DQogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KICAgIGZ1bmN0aW9uIHRvZ2dsZURpc3BsYXkoZWxlbSkNCiAgICB7DQogICAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtKTsNCiAgICAgIHZhciB0eHQgPSBlbC5zdHlsZS5kaXNwbGF5Ow0KICAgICAgaWYoIHR4dCA9PSAnbm9uZScgKQ0KICAgICAgICB7DQogICAgICAgICAgdHh0ID0gJ2Jsb2NrJzsNCiAgICAgICAgfQ0KICAgICAgZWxzZQ0KICAgICAgICB7DQogICAgICAgICAgdHh0ID0gJ25vbmUnOw0KICAgICAgICB9DQogICAgICBlbC5zdHlsZS5kaXNwbGF5ID0gdHh0Ow0KICAgIH0NCg0KICAgIDwvc2NyaXB0Pg0Key9saXRlcmFsfQ0KDQo8aDM+eyR0aXRsZX08L2gzPg0KeyRzdGFydGZvcm19DQoNCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4NCiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57aWYgaXNzZXQoJGl0ZW1faWQpfXskaXRlbV9pZH17L2lmfXskc3VibWl0fXskY2FuY2VsfXskYXBwbHl9IHtpZiBpc1NldCgkY29weSl9eyRjb3B5fXsvaWZ9e2lmICRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ3ByZXZpZXdfYWRtaW4nKX08c3BhbiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7IHRvcDo1cHg7Ij57JHByZXZpZXdfdmlld308L3NwYW4+ey9pZn08L3A+DQo8L2Rpdj4NCg0KDQp7JG1vZHVsZS0+U3RhcnRUYWJIZWFkZXJzKCl9DQp7JG1vZHVsZS0+U2V0VGFiSGVhZGVyKCdhcnRpY2xlJywgJG1vZHVsZS0+R2V0UHJlZmVyZW5jZSgnaXRlbV9zaW5ndWxhcicpKX0NCntpZiBpc3NldCgkY3VzdG9tX2ZpZWxkZGVmKX0NCiAgICB7Zm9yZWFjaCBmcm9tPSRjdXN0b21fZmllbGRkZWYgaXRlbT0nZmllbGQnfQ0KICAgICAgICB7aWYgJGZpZWxkLT50eXBlID09ICd0YWInfQ0KICAgICAgICAgICAgeyRtb2R1bGUtPlNldFRhYkhlYWRlcigkZmllbGQtPmFsaWFzLCAkZmllbGQtPmxhYmVsKX0NCiAgICAgICAgey9pZn0gICAgICAgICAgICANCiAgICB7L2ZvcmVhY2h9ICAgICAgICAgICAgDQp7L2lmfSAgICAgICANCntpZiAkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCdoYXNfZ2FsbGVyeScpICYmIGlzU2V0KCRpdGVtX2lkKX17JG1vZHVsZS0+U2V0VGFiSGVhZGVyKCdnYWxsZXJ5JywgJG1vZHVsZS0+TGFuZygnZ2FsbGVyeScpKX17L2lmfQ0Ke2lmIGlzc2V0KCR0YWJoZWFkZXJfcHJldmlldyl9eyR0YWJoZWFkZXJfcHJldmlld317L2lmfQ0KeyRtb2R1bGUtPkVuZFRhYkhlYWRlcnMoKX0NCg0KeyRtb2R1bGUtPlN0YXJ0VGFiQ29udGVudCgpfQ0KeyRtb2R1bGUtPlN0YXJ0VGFiKCdhcnRpY2xlJyl9DQoNCg0KDQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfYWN0aXZlfTo8L3A+DQogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9hY3RpdmV9PC9wPg0KPC9kaXY+DQoNCg0Ke2lmICRtb2QtPkdldFByZWZlcmVuY2UoJ2l0ZW1fdGl0bGVfZWRpdCcpfQ0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+KnskcHJvbXB0X3RpdGxlfTo8L3A+DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdGl0bGV9PC9wPg0KICAgIDwvZGl2Pg0Key9pZn0NCg0Ke2lmICRtb2QtPkdldFByZWZlcmVuY2UoJ2l0ZW1fYWxpYXNfZWRpdCcpfQ0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfYWxpYXN9OjwvcD4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9hbGlhc308L3A+DQogICAgPC9kaXY+DQp7L2lmfQ0KDQp7aWYgJG1vZC0+R2V0UHJlZmVyZW5jZSgnaXRlbV91cmxfZWRpdCcpfQ0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfdXJsfTo8L3A+DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdXJsfTwvcD4NCiAgICA8L2Rpdj4NCnsvaWZ9DQoNCntpZiAkbW9kLT5HZXRQcmVmZXJlbmNlKCdpdGVtX2NhdGVnb3J5X2VkaXQnKX0NCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2NhdGVnb3J5fTo8L3A+DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfY2F0ZWdvcnl9PC9wPg0KICAgIDwvZGl2Pg0Key9pZn0NCg0Ke2lmICRtb2QtPkdldFByZWZlcmVuY2UoJ2l0ZW1fZGF0ZV9lZGl0Jyl9DQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9kYXRlfTo8L3A+DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPntodG1sX3NlbGVjdF9kYXRlIHByZWZpeD0kZGF0ZXByZWZpeCB0aW1lPSRkYXRlIHN0YXJ0X3llYXI9Ii0xMCIgZW5kX3llYXI9IisxNSJ9IHtodG1sX3NlbGVjdF90aW1lIHByZWZpeD0kZGF0ZXByZWZpeCB0aW1lPSRkYXRlfTwvcD4NCiAgICA8L2Rpdj4NCnsvaWZ9DQoNCntpZiAkbW9kLT5HZXRQcmVmZXJlbmNlKCdpdGVtX2RhdGVfZW5kX2VkaXQnKX0NCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2RhdGVfZW5kfTo8L3A+DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPntodG1sX3NlbGVjdF9kYXRlIHByZWZpeD0kZGF0ZWVuZHByZWZpeCB0aW1lPSRkYXRlZW5kIHN0YXJ0X3llYXI9Ii0xMCIgZW5kX3llYXI9IisxNSJ9IHtodG1sX3NlbGVjdF90aW1lIHByZWZpeD0kZGF0ZWVuZHByZWZpeCB0aW1lPSRkYXRlZW5kfTwvcD4NCiAgICA8L2Rpdj4NCnsvaWZ9DQoNCntpZiAkbW9kLT5HZXRQcmVmZXJlbmNlKCdyZWN1cnNpdmUnKX0NCg0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3JlY3VyX3BlcmlvZCcpfTo8L3A+DQogICAge2NhcHR1cmUgYXNzaWduPSd0bXAnfXskYWN0aW9uaWR9ZXZlbnRfcmVjdXJfcGVyaW9key9jYXB0dXJlfQ0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPg0KICAgICAgICA8c2VsZWN0IGlkPSJyZWN1cnBlcmlvZCIgc3RhcnRfdGFiX2hlYWRlcnN0YWFjdGl2ZT0ieyRhY3Rpb25pZH1yZWN1cl9wZXJpb2QiIG9uY2xpY2s9ImhhbmRsZURyb3Bkb3duKCk7Ij4NCiAgICAgICAgICAgIHtmb3JlYWNoIGZyb209JHJlY3VyX29wdGlvbnMga2V5PWtleSBpdGVtPXZhbHVlfQ0KICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InskdmFsdWV9IiB7aWYgJHZhbHVlID09ICRyZWN1cnNpdmV9c2VsZWN0ZWQ9InNlbGVjdGVkInsvaWZ9Pnska2V5fTwvb3B0aW9uPiAgIA0KICAgICAgICAgICAgey9mb3JlYWNofQ0KICAgICAgICA8L3NlbGVjdD4NCiAgICA8L3A+DQo8L2Rpdj4NCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IiBpZD0icmVjdXJfd2Vla2x5Ij4gIA0KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3dlZWtkYXlzJyl9OjwvcD4NCiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3dlZWtkYXlzfTwvcD4NCjwvZGl2Pg0KDQp7L2lmfQ0KDQp7aWYgaXNzZXQoJGN1c3RvbV9maWVsZGRlZil9DQogICAge2ZvcmVhY2ggZnJvbT0kY3VzdG9tX2ZpZWxkZGVmIGl0ZW09J2ZpZWxkJ30NCiAgICAgICAge2lmICRmaWVsZC0+dHlwZSA9PSAndGFiJ30NCiAgICAgICAgICAgIHskbW9kdWxlLT5FbmRUYWIoKX0NCiAgICAgICAgICAgIHskbW9kdWxlLT5TdGFydFRhYigkZmllbGQtPmFsaWFzKX0gICAgICAgICAgICAgICAgDQogICAgICAgIHtlbHNlaWYgKCFpc1NldCgkaXRlbV9pZCkgJiYgISRmaWVsZC0+ZWRpdHZpZXcpIHx8IGlzU2V0KCRpdGVtX2lkKX0NCiAgICAgICAgICAgIHtpZiAkZmllbGQtPmZpZWxkfQ0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZC0+cHJvbXB0fTo8L3A+DQogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPg0KICAgICAgICAgICAgICAgICAgICB7aWYgIWVtcHR5KCRmaWVsZC0+aGVscCl9KHskZmllbGQtPmhlbHB9KTxiciAvPnsvaWZ9DQogICAgICAgICAgICAgICAgICAgIHskZmllbGQtPmZpZWxkfQ0KICAgICAgICAgICAgICAgICAgICB7aWYgaXNzZXQoJGZpZWxkLT5maWxlbmFtZSl9PGJyIC8+DQogICAgICAgICAgICAgICAgICAgIHtjYXB0dXJlIGFzc2lnbj0ic3JjIn17JGZpZWxkLT5maWxlX2xvY2F0aW9ufS97JGZpZWxkLT5maWxlbmFtZX17L2NhcHR1cmV9ICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAge2NhcHR1cmUgYXNzaWduPSJzcmNwYXRoIn17JGZpZWxkLT5maWxlcGF0aF9sb2NhdGlvbn0veyRmaWVsZC0+ZmlsZW5hbWV9ey9jYXB0dXJlfSAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIHtpZiAkZmllbGQtPmlzX2ltYWdlfQ0KICAgICAgICAgICAgICAgICAgICB7aWYgJGltYWdlX3NpemVfYWRtaW5fd2lkdGggJiYgJGltYWdlX3NpemVfYWRtaW5faGVpZ2h0fQ0KICAgICAgICAgICAgICAgICAgICAgICAge2Ntc19tb2R1bGUgbW9kdWxlPSJDR1NtYXJ0SW1hZ2UiIHNyYz0kc3JjcGF0aHxyZXBsYWNlOiJgJHJvb3RfdXJsYCI6JycgYWx0PSRmaWxlLT5maWxlbmFtZSBmaWx0ZXJfY3JvcHRvZml0PSJgJGltYWdlX3NpemVfYWRtaW5fd2lkdGhgLGAkaW1hZ2Vfc2l6ZV9hZG1pbl9oZWlnaHRgIiBzdHlsZT0ibWFyZ2luOjVweCAwOyJ9ICAgIA0KICAgICAgICAgICAgICAgICAgICB7ZWxzZWlmICRpbWFnZV9zaXplX2FkbWluX3dpZHRofQ0KICAgICAgICAgICAgICAgICAgICAgICAge2Ntc19tb2R1bGUgbW9kdWxlPSJDR1NtYXJ0SW1hZ2UiIHNyYz0kc3JjcGF0aHxyZXBsYWNlOiJgJHJvb3RfdXJsYCI6JycgYWx0PSRmaWxlLT5maWxlbmFtZSBmaWx0ZXJfcmVzaXplPSJ3LGAkaW1hZ2Vfc2l6ZV9hZG1pbl93aWR0aGAiIHN0eWxlPSJtYXJnaW46NXB4IDA7In0gICAgDQogICAgICAgICAgICAgICAgICAgIHtlbHNlaWYgJGltYWdlX3NpemVfYWRtaW5faGVpZ2h0fQ0KICAgICAgICAgICAgICAgICAgICAgICAge2Ntc19tb2R1bGUgbW9kdWxlPSJDR1NtYXJ0SW1hZ2UiIHNyYz0kc3JjcGF0aHxyZXBsYWNlOiJgJHJvb3RfdXJsYCI6JycgYWx0PSRmaWxlLT5maWxlbmFtZSBmaWx0ZXJfcmVzaXplPSJoLGAkaW1hZ2Vfc2l6ZV9hZG1pbl9oZWlnaHRgIiBzdHlsZT0ibWFyZ2luOjVweCAwOyJ9ICAgIA0KICAgICAgICAgICAgICAgICAgICB7L2lmfQ0KICAgICAgICAgICAgICAgIHsvaWZ9DQogICAgICAgICAgICAgICAgPGJyIC8+DQogICAgICAgICAgICAgICAgeyRmaWVsZC0+ZGVsZXRlX2ZpbGV9IHskZmllbGQtPmZpbGVuYW1lfTxiciAvPg0KICAgICAgICAgICAgey9pZn0NCiAgICAgICAgPC9wPg0KICAgIDwvZGl2Pg0Ke2Vsc2V9DQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpZWxkLT5wcm9tcHR9PC9wPg0KICAgICAgICB7aWYgJGZpZWxkLT5leHRyYX0NCiAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPiAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIHskZmllbGQtPmV4dHJhfQ0KICAgICAgICAgICAgPC9wPg0KICAgICAgICB7L2lmfQ0KICAgIDwvZGl2Pg0Key9pZn0NCnsvaWZ9DQp7L2ZvcmVhY2h9DQp7L2lmfQ0KeyRtb2R1bGUtPkNyZWF0ZUZvcm1FbmQoKX0NCnskbW9kdWxlLT5FbmRUYWIoKX0NCg0Ke2lmIGlzc2V0KCRzdGFydF90YWJfcHJldmlldyl9DQogICAgDQogICAgeyRzdGFydF90YWJfcHJldmlld30NCiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+e2xpdGVyYWx9DQogICAgalF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpew0KICAgIC8qICBqUXVlcnkoJ2lucHV0W25hbWU9bTFfYXBwbHldJykuY2xpY2soZnVuY3Rpb24oKXsNCiAgICAgICAgaWYoIHR5cGVvZiB0aW55TUNFICE9ICd1bmRlZmluZWQnKSB0aW55TUNFLnRyaWdnZXJTYXZlKCk7DQogICAgICAgIHZhciBkYXRhID0galF1ZXJ5KCdmb3JtJykuZmluZCgnaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pLCBzZWxlY3QsIHRleHRhcmVhJykuc2VyaWFsaXplQXJyYXkoKTsNCiAgICAgICAgZGF0YS5wdXNoKHsnbmFtZSc6ICdtMV9hamF4JywgJ3ZhbHVlJzogMX0pOw0KICAgICAgICBkYXRhLnB1c2goeyduYW1lJzogJ20xX2FwcGx5JywgJ3ZhbHVlJzogMX0pOw0KICAgICAgICBkYXRhLnB1c2goeyduYW1lJzogJ3Nob3d0ZW1wbGF0ZScsICd2YWx1ZSc6ICdmYWxzZSd9KTsNCiAgICAgICAgdmFyIHVybCA9IGpRdWVyeSgnZm9ybScpLmF0dHIoJ2FjdGlvbicpOw0KICAgICAgICBqUXVlcnkucG9zdCh1cmwsZGF0YSxmdW5jdGlvbihyZXN1bHRkYXRhLHRleHQpew0KICAgICAgICAgIHZhciByZXNwID0galF1ZXJ5KHJlc3VsdGRhdGEpLmZpbmQoJ1Jlc3BvbnNlJykudGV4dCgpOw0KICAgICAgICAgIHZhciBkZXRhaWxzID0galF1ZXJ5KHJlc3VsdGRhdGEpLmZpbmQoJ0RldGFpbHMnKS50ZXh0KCk7DQogICAgICAgICAgdmFyIGh0bWxTaG93ID0gJyc7DQogICAgICAgICAgaWYoIHJlc3AgPT0gJ1N1Y2Nlc3MnICYmIGRldGFpbHMgIT0gJycgKQ0KICAgICAgICAgIHsNCiAgICAgICAgICAgICBodG1sU2hvdyA9ICc8ZGl2IGNsYXNzPSJwYWdlbWNvbnRhaW5lciI+PHAgY2xhc3M9InBhZ2VtZXNzYWdlIj4nK2RldGFpbHMrJzxcL3A+PFwvZGl2Pic7DQogICAgICAgICAgfQ0KICAgICAgICAgIGVsc2UNCiAgICAgICAgICB7DQogICAgICAgICAgICAgaHRtbFNob3cgPSAnPGRpdiBjbGFzcz0icGFnZWVycm9yY29udGFpbmVyIj48dWwgY2xhc3M9InBhZ2VlcnJvciI+JzsNCiAgICAgICAgICAgICBodG1sU2hvdyArPSBkZXRhaWxzOw0KICAgICAgICAgICAgIGh0bWxTaG93ICs9ICc8XC91bD48XC9kaXY+JzsNCiAgICAgICAgICB9DQogICAgICAgICAgalF1ZXJ5KCcjZWRpdGFydGljbGVfcmVzdWx0JykuaHRtbChodG1sU2hvdyk7DQogICAgICAgIH0sJ3htbCcpOw0KICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICB9KTsqLw0KDQogICAgICBmdW5jdGlvbiBuZXdzX2RvcHJldmlldygpDQogICAgICB7DQogICAgICAgIGlmKCB0eXBlb2YgdGlueU1DRSAhPSAndW5kZWZpbmVkJykgdGlueU1DRS50cmlnZ2VyU2F2ZSgpOw0KICAgICAgICB2YXIgZGF0YSA9IGpRdWVyeSgnZm9ybTpmaXJzdCcpLmZpbmQoJ2lucHV0Om5vdChbdHlwZT1zdWJtaXRdKSwgaW5wdXQ6Y2hlY2tib3gsIGlucHV0OnJhZGlvLCBzZWxlY3QsIHRleHRhcmVhJykuc2VyaWFsaXplQXJyYXkoKTsNCiAgICAgICAgZGF0YS5wdXNoKHsnbmFtZSc6ICdtMV9hamF4JywgJ3ZhbHVlJzogMX0pOw0KICAgICAgICBkYXRhLnB1c2goeyduYW1lJzogJ20xX3ByZXZpZXcnLCAndmFsdWUnOiAxfSk7DQogICAgICAgIGRhdGEucHVzaCh7J25hbWUnOiAnc2hvd3RlbXBsYXRlJywgJ3ZhbHVlJzogJ2ZhbHNlJ30pOw0KICAgICAgICBkYXRhLnB1c2goeyduYW1lJzogJ20xX3ByZXZpZXdwYWdlJywgJ3ZhbHVlJzogalF1ZXJ5KCcjcHJldmlld19yZXR1cm5pZCcpLnZhbCgpfSk7DQogICAgICAgIGRhdGEucHVzaCh7J25hbWUnOiAnbTFfZGV0YWlsdGVtcGxhdGUnLCAndmFsdWUnOiBqUXVlcnkoJyNwcmV2aWV3X3RlbXBsYXRlJykudmFsKCl9KTsNCiAgICAgICAgdmFyIHVybCA9IGpRdWVyeSgnZm9ybScpLmF0dHIoJ2FjdGlvbicpOw0KICAgICAgICBqUXVlcnkucG9zdCh1cmwsZGF0YSxmdW5jdGlvbihyZXN1bHRkYXRhLHRleHQpew0KICAgICAgICAgIHZhciByZXNwID0galF1ZXJ5KHJlc3VsdGRhdGEpLmZpbmQoJ1Jlc3BvbnNlJykudGV4dCgpOw0KICAgICAgICAgIHZhciBkZXRhaWxzID0galF1ZXJ5KHJlc3VsdGRhdGEpLmZpbmQoJ0RldGFpbHMnKS50ZXh0KCk7DQogICAgICAgICAgdmFyIGh0bWxTaG93ID0gJyc7DQogICAgICAgICAgaWYoIHJlc3AgPT0gJ1N1Y2Nlc3MnICYmIGRldGFpbHMgIT0gJycgKQ0KICAgICAgICAgIHsNCiAgICAgICAgICAgICAvLyBwcmV2aWV3IHdvcmtlZC4uLiBub3cgdGhlIGRldGFpbHMgc2hvdWxkIGNvbnRhaW4gdGhlIHVybA0KICAgICAgICAgICAgIGRldGFpbHMgPSBkZXRhaWxzLnJlcGxhY2UoL2FtcDsvZywnJyk7DQogICAgICAgICAgICAgalF1ZXJ5KCcjcHJldmlld2ZyYW1lJykuYXR0cignc3JjJyxkZXRhaWxzKTsNCiAgICAgICAgICB9DQogICAgICAgICAgZWxzZQ0KICAgICAgICAgIHsNCiAgICAgICAgICAgICBpZiggZGV0YWlscyA9PSAnJyApIGRldGFpbHMgPSAnQW4gdW5rbm93biBlcnJvciBvY2N1cnJlZCc7DQoNCiAgICAgICAgICAgICAvLyBwcmV2aWV3IHNhdmUgZGlkIG5vdCB3b3JrLg0KICAgICAgICAgICAgIGh0bWxTaG93ID0gJzxkaXYgY2xhc3M9InBhZ2VlcnJvcmNvbnRhaW5lciI+PHVsIGNsYXNzPSJwYWdlZXJyb3IiPic7DQogICAgICAgICAgICAgaHRtbFNob3cgKz0gZGV0YWlsczsNCiAgICAgICAgICAgICBodG1sU2hvdyArPSAnPFwvdWw+PFwvZGl2Pic7DQogICAgICAgICAgICAgalF1ZXJ5KCcjZWRpdGFydGljbGVfcmVzdWx0JykuaHRtbChodG1sU2hvdyk7DQogICAgICAgICAgfQ0KICAgICAgICB9LCd4bWwnKTsNCiAgICAgIH0NCg0KICAgICAgalF1ZXJ5KCcjcHJldmlldycpLmNsaWNrKGZ1bmN0aW9uKCl7DQogICAgICAgICAgbmV3c19kb3ByZXZpZXcoKQ0KICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICB9KTsNCg0KICAgICAgalF1ZXJ5KCcjcHJldmlld19yZXR1cm5pZCwjcHJldmlld190ZW1wbGF0ZScpLmNoYW5nZShmdW5jdGlvbigpew0KICAgICAgICBuZXdzX2RvcHJldmlldygpOw0KICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICB9KTsNCiAgICB9KTsNCiAgICAgICAgey9saXRlcmFsfTwvc2NyaXB0Pg0KDQogICAgICAgIHsqIGRpc3BsYXkgYSB3YXJuaW5nICp9DQogICAgICAgIDxkaXYgY2xhc3M9InBhZ2V3YXJuaW5nIj57JHdhcm5pbmdfcHJldmlld308L2Rpdj4NCiAgICAgICAgPGZpZWxkc2V0Pg0KDQogICAgICAgICAgICA8bGFiZWwgZm9yPSJwcmV2aWV3X3RlbXBsYXRlIj57JHByb21wdF9kZXRhaWxfdGVtcGxhdGV9OjwvbGFiZWw+Jm5ic3A7DQogICAgICAgICAgICA8c2VsZWN0IGlkPSJwcmV2aWV3X3RlbXBsYXRlIiBuYW1lPSJwcmV2aWV3X3RlbXBsYXRlIj4NCiAgICAgICAgICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGRldGFpbF90ZW1wbGF0ZXMgc2VsZWN0ZWQ9JGN1cl9kZXRhaWxfdGVtcGxhdGV9DQogICAgICAgICAgICA8L3NlbGVjdD4mbmJzcDsNCg0KICAgICAgICAgICAgPGxhYmVsIGZvcj0icHJldmlld19yZXR1cm5pZCI+eyRwcm9tcHRfZGV0YWlsX3BhZ2V9OjwvbGFiZWw+Jm5ic3A7DQogICAgICAgICAgICB7JHByZXZpZXdfcmV0dXJuaWR9DQogICAgICAgIDwvZmllbGRzZXQ+DQogICAgICAgIDxici8+DQogICAgICAgIDxpZnJhbWUgaWQ9InByZXZpZXdmcmFtZSIgc3R5bGU9ImhlaWdodDogODAwcHg7IHdpZHRoOiAxMDAlOyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsgb3ZlcmZsb3c6IGF1dG87IiBzcmM9IiI+PC9pZnJhbWU+DQogICAgICAgIHskZW5kX3RhYl9wcmV2aWV3fQ0KICAgICAgICB7L2lmfQ0KDQogICAgICAgICAgICB7aWYgJG1vZHVsZS0+R2V0UHJlZmVyZW5jZSgnaGFzX2dhbGxlcnknKSAmJiBpc1NldCgkaXRlbV9pZCl9DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgeyRtb2R1bGUtPlN0YXJ0VGFiKCdnYWxsZXJ5Jyl9ICAgICAgICAgICAgICANCg0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImNvbnRhaW5lciI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImZpbGVsaXN0Ij48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGEgaWQ9InBpY2tmaWxlcyIgaHJlZj0iamF2YXNjcmlwdDo7Ij57JG1vZHVsZS0+TGFuZygnYWRkX2ZpbGVzJyl9PC9hPiANCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIHtsaXRlcmFsfQ0KDQogICAgICAgICAgICAgICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCiAgICAgICAgICAgICAgICAgICAkKGZ1bmN0aW9uKCkgew0KICAgICAgICB2YXIgdXBsb2FkZXIgPSBuZXcgcGx1cGxvYWQuVXBsb2FkZXIoew0KICAgICAgICAgICAgICAgIHJ1bnRpbWVzIDogJ2dlYXJzLGh0bWw1LGZsYXNoLHNpbHZlcmxpZ2h0LGJyb3dzZXJwbHVzJywNCiAgICAgICAgICAgICAgICBicm93c2VfYnV0dG9uIDogJ3BpY2tmaWxlcycsDQogICAgICAgICAgICAgICAgY29udGFpbmVyIDogJ2NvbnRhaW5lcicsDQogICAgICAgICAgICAgICAgbWF4X2ZpbGVfc2l6ZSA6ICcxMG1iJywNCiAgICAgICAgICAgICAgICB1cmwgOiAnLi4vbW9kdWxlcy9Nb2R1bGVHZW5lcmF0b3IvanMvcGx1cGxvYWQvdXBsb2FkLnBocD9nYWxsZXJ5X3BhdGg9ey9saXRlcmFsfXskZ2FsbGVyeV9wYXRofHVybGVuY29kZX17bGl0ZXJhbH0nLA0KICAgICAgICAgICAgICAgIGZsYXNoX3N3Zl91cmwgOiAnLi4vbW9kdWxlcy9Nb2R1bGVHZW5lcmF0b3IvanMvcGx1cGxvYWQvcGx1cGxvYWQuZmxhc2guc3dmJywNCiAgICAgICAgICAgICAgICBzaWx2ZXJsaWdodF94YXBfdXJsIDogJy4uL21vZHVsZXMvTW9kdWxlR2VuZXJhdG9yL2pzL3BsdXBsb2FkL3BsdXBsb2FkLnNpbHZlcmxpZ2h0LnhhcCcsDQogICAgICAgICAgICAgICAgZmlsdGVycyA6IFsNCiAgICAgICAgICAgICAgICAgICAgICAgIHt0aXRsZSA6ICJJbWFnZSBmaWxlcyIsIGV4dGVuc2lvbnMgOiAianBnLGdpZixwbmcifQ0KICAgICAgICAgICAgICAgIF0NCiAgICAgICAgfSk7DQoNCiAgICAgICAgdXBsb2FkZXIuYmluZCgnSW5pdCcsIGZ1bmN0aW9uKHVwLCBwYXJhbXMpIHsNCiAgICAgICAgICAgICAgICAvLyQoJyNmaWxlbGlzdCcpLmh0bWwoIjxkaXY+Q3VycmVudCBydW50aW1lOiAiICsgcGFyYW1zLnJ1bnRpbWUgKyAiPC9kaXY+Iik7DQogICAgICAgIH0pOw0KDQogICAgICAgICQoJyN1cGxvYWRmaWxlcycpLmNsaWNrKGZ1bmN0aW9uKGUpIHsNCiAgICAgICAgICAgICAgICB1cGxvYWRlci5zdGFydCgpOw0KICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdXBsb2FkZXIuaW5pdCgpOw0KDQogICAgICAgIHVwbG9hZGVyLmJpbmQoJ0ZpbGVzQWRkZWQnLCBmdW5jdGlvbih1cCwgZmlsZXMpIHsNCiAgICAgICAgICAgICAgICAkLmVhY2goZmlsZXMsIGZ1bmN0aW9uKGksIGZpbGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoJyNmaWxlbGlzdCcpLmFwcGVuZCgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxkaXYgaWQ9IicgKyBmaWxlLmlkICsgJyI+JyArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUubmFtZSArICcgKCcgKyBwbHVwbG9hZC5mb3JtYXRTaXplKGZpbGUuc2l6ZSkgKyAnKSA8Yj48L2I+JyArDQogICAgICAgICAgICAgICAgICAgICAgICAnPC9kaXY+Jyk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIHVwLnJlZnJlc2goKTsgLy8gUmVwb3NpdGlvbiBGbGFzaC9TaWx2ZXJsaWdodA0KICAgICAgICAgICAgICAgICAgICAgIHVwbG9hZGVyLnN0YXJ0KCk7DQogICAgICAgIH0pOw0KDQogICAgICAgIHVwbG9hZGVyLmJpbmQoJ1VwbG9hZFByb2dyZXNzJywgZnVuY3Rpb24odXAsIGZpbGUpIHsNCiAgICAgICAgICAgICAgICAkKCcjJyArIGZpbGUuaWQgKyAiIGIiKS5odG1sKGZpbGUucGVyY2VudCArICIlIik7DQogICAgICAgIH0pOw0KDQogICAgICAgIHVwbG9hZGVyLmJpbmQoJ0Vycm9yJywgZnVuY3Rpb24odXAsIGVycikgew0KICAgICAgICAgICAgICAgICQoJyNmaWxlbGlzdCcpLmFwcGVuZCgiPGRpdj5FcnJvcjogIiArIGVyci5jb2RlICsNCiAgICAgICAgICAgICAgICAgICAgICAgICIsIE1lc3NhZ2U6ICIgKyBlcnIubWVzc2FnZSArDQogICAgICAgICAgICAgICAgICAgICAgICAoZXJyLmZpbGUgPyAiLCBGaWxlOiAiICsgZXJyLmZpbGUubmFtZSA6ICIiKSArDQogICAgICAgICAgICAgICAgICAgICAgICAiPC9kaXY+Ig0KICAgICAgICAgICAgICAgICk7DQoNCiAgICAgICAgICAgICAgICB1cC5yZWZyZXNoKCk7IC8vIFJlcG9zaXRpb24gRmxhc2gvU2lsdmVybGlnaHQNCiAgICAgICAgfSk7DQoNCiAgICAgICAgdXBsb2FkZXIuYmluZCgnRmlsZVVwbG9hZGVkJywgZnVuY3Rpb24odXAsIGZpbGUpIHsNCiAgICAgICAgICAgICAgICAkKCcjJyArIGZpbGUuaWQgKyAiIGIiKS5odG1sKCIxMDAlIik7DQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICBpZiggKHVwbG9hZGVyLnRvdGFsLnVwbG9hZGVkICkgPT0gdXBsb2FkZXIuZmlsZXMubGVuZ3RoKQ0KICAgICAgICAgew0KICAgICAgICB3aW5kb3cubG9jYXRpb24gPSAney9saXRlcmFsfXskcmVkaXJlY3RfdXJsfHJlcGxhY2U6JyZhbXA7JzonJid9e2xpdGVyYWx9JzsNCiAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICAgICAgDQogICAgICAgICAgICANCiAgICAgICAgICAgIA0KfSk7DQogICAgICAgICAgICAgICAgICAgIDwvc2NyaXB0Pg0KICAgICAgICAgICAgICAgIHsvbGl0ZXJhbH0NCiAgICAgICAgICAgICAgICB7JGVuZGZvcm19DQoNCiAgICAgICAgICAgICAgICB7aWYgJGdhbGxlcnl8QGNvdW50fQ0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgeyRtb2R1bGUtPkNyZWF0ZUZvcm1TdGFydCgkb2xkYWN0aW9uaWQsICdhZG1pbl9tb3ZlaW1hZ2VzJyl9DQogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9InNlcmlhbGRhdGEiIHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRvbGRhY3Rpb25pZH1zZXJpYWxkYXRhIiB2YWx1ZT0iIi8+DQogICAgICAgICAgICAgICAgICAgICAgICB7JGl0ZW1faWR9DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9InNhdmVfaXRlbXMiIHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRvbGRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZHVsZS0+TGFuZygnc2F2ZV9vcmRlcicpfSIvPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgeyRtb2R1bGUtPkNyZWF0ZUZvcm1FbmQoKX0NCiAgICAgICAgICAgICAgICAgICAgey9pZn0NCg0KICAgICAgICAgICAgICAgICAgICB7aWYgJGdhbGxlcnl8QGNvdW50fQ0KICAgICAgICAgICAgICAgIHskbW9kdWxlLT5DcmVhdGVGb3JtU3RhcnQoJG9sZGFjdGlvbmlkLCAnYWRtaW5faW1hZ2VzYnVsa2FjdGlvbicpfQ0KICAgICAgICAgICAgICAgIHskaXRlbV9pZH0NCg0KICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyB3aWR0aDogNDAlOyBmbG9hdDogcmlnaHQ7IG1hcmdpbi1ib3R0b206IDFlbTsiPg0KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBpZD0iYnVsa2FjdGlvbl9zdWJtaXQiIG5hbWU9Inskb2xkYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2R1bGUtPkxhbmcoJ2RlbGV0ZV9zZWxlY3RlZCcpfSIvPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSBjbXNfc29ydGFibGUgdGFibGVzb3J0ZXIiIGlkPSJpdGVtbGlzdCI+DQogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj57JG1vZHVsZS0+TGFuZygnZmlsZW5hbWUnKX08L3RoPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0icGFnZWljb24ge2xpdGVyYWx9e3NvcnRlcjogZmFsc2V9ey9saXRlcmFsfSI+Jm5ic3A7PC90aD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9InBhZ2VpY29uIHtsaXRlcmFsfXtzb3J0ZXI6IGZhbHNlfXsvbGl0ZXJhbH0iPiZuYnNwOzwvdGg+DQogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPg0KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAge2ZvcmVhY2ggZnJvbT0kZ2FsbGVyeSBpdGVtPSdnYWwnfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjeWNsZSB2YWx1ZXM9InJvdzEscm93MiIgYXNzaWduPSdyb3djbGFzcyd9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyICBpZD0ieyRnYWwuaW1hZ2VfaWR9IiBjbGFzcz0ieyRyb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRyb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRyb3djbGFzc30nOyI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57JGdhbC5maWxlbmFtZX08L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2NhcHR1cmUgYXNzaWduPSJzcmMifXskZ2FsLmltYWdlX2xvY2F0aW9ufS97JGdhbC5maWxlbmFtZX17L2NhcHR1cmV9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAge2NhcHR1cmUgYXNzaWduPSJzcmNwYXRoIn17JGdhbC5pbWFnZXBhdGhfbG9jYXRpb259L3skZ2FsLmZpbGVuYW1lfXsvY2FwdHVyZX0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aWYgJHNyY3BhdGh8QGdldGltYWdlc2l6ZX0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lmICRpbWFnZV9zaXplX2FkbWluX3dpZHRoICYmICRpbWFnZV9zaXplX2FkbWluX2hlaWdodH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjbXNfbW9kdWxlIG1vZHVsZT0iQ0dTbWFydEltYWdlIiBzcmM9JHNyY3BhdGggIHN0eWxlPSJtYXJnaW46NXB4IDA7IiBmaWx0ZXJfY3JvcHRvZml0PSJgJGltYWdlX3NpemVfYWRtaW5fd2lkdGhgLGAkaW1hZ2Vfc2l6ZV9hZG1pbl9oZWlnaHRgIn0gICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtlbHNlaWYgJGltYWdlX3NpemVfYWRtaW5fd2lkdGh9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y21zX21vZHVsZSBtb2R1bGU9IkNHU21hcnRJbWFnZSIgc3JjPSRzcmNwYXRoICBzdHlsZT0ibWFyZ2luOjVweCAwOyIgZmlsdGVyX3Jlc2l6ZT0idyxgJGltYWdlX3NpemVfYWRtaW5fd2lkdGhgIn0gICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtlbHNlaWYgJGltYWdlX3NpemVfYWRtaW5faGVpZ2h0fQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2Ntc19tb2R1bGUgbW9kdWxlPSJDR1NtYXJ0SW1hZ2UiIHNyYz0kc3JjcGF0aCAgc3R5bGU9Im1hcmdpbjo1cHggMDsiIGZpbHRlcl9yZXNpemU9ImgsYCRpbWFnZV9zaXplX2FkbWluX2hlaWdodGAifSAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey9pZn0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZWxzZX0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0ieyRlbnRyeS0+ZmlsZV9sb2NhdGlvbn0veyRlbnRyeS0+JHRtcH0iPnskZW50cnktPiR0bXB9PC9hPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvaWZ9DQogICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2xhc3M9Im11bHRpc2VsZWN0IiBuYW1lPSJ7JG9sZGFjdGlvbmlkfW11bHRpc2VsZWN0W10iIHZhbHVlPSJ7JGdhbC5pbWFnZV9pZH0iPjwvdGQ+DQogICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgey9mb3JlYWNofSAgICANCiAgICAgICAgICAgIDwvdGJvZHk+DQogICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgICB7JG1vZHVsZS0+Q3JlYXRlRm9ybUVuZCgpfQ0KICAgICAgICAgICAgICAgICAgey9pZn0NCiAgICAgICAgeyRtb2R1bGUtPkVuZFRhYigpfQ0KICAgIHtlbHNlfQ0KDQoNCiAgICB7JG1vZHVsZS0+RW5kVGFiKCl9DQoNCg0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57aWYgaXNzZXQoJGl0ZW1faWQpfXskaXRlbV9pZH17L2lmfXskc3VibWl0fXskY2FuY2VsfXskYXBwbHl9IHtpZiBpc1NldCgkY29weSl9eyRjb3B5fXsvaWZ9e2lmICRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ3ByZXZpZXdfYWRtaW4nKX08c3BhbiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7IHRvcDo1cHg7Ij57JHByZXZpZXdfdmlld308L3NwYW4+ey9pZn08L3A+DQogICAgPC9kaXY+DQoNCiAgICB7L2lmfQ0KDQogICAgeyRtb2R1bGUtPkVuZFRhYkNvbnRlbnQoKX0NCg0KDQoNCg0KDQo=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/templates/edittemplate.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGV9PC9oMz4NCnskc3RhcnRmb3JtfQ0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICA8cCBjbGFzcz0icGFnZXRleHQiPiogeyRwcm9tcHRfbmFtZX06PC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfbmFtZX08L3A+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF90ZW1wbGF0ZX06PC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdGVtcGxhdGV9PC9wPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPntpZiBpc3NldCgkaWRmaWVsZCl9eyRpZGZpZWxkfXsvaWZ9eyRzdWJtaXR9eyRjYW5jZWx9eyRhcHBseX08L3A+DQo8L2Rpdj4NCnskaW5wdXRfdHlwZX0NCnskZW5kZm9ybX0NCg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/templates/fielddeftab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2xpdGVyYWx9DQogICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCiAgICAgICAgLnNjcm9sbGFibGUgew0KICAgICAgICAgICAgZGlzcGxheTogbm9uZTsNCiAgICAgICAgICAgIHdpZHRoOiA5MCU7DQogICAgICAgIH0NCg0KICAgIDwvc3R5bGU+DQoNCiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsNCg0KICAgICAgICAkKCcjZmllbGRsaXN0ey9saXRlcmFsfXskc2VjdGlvbn17bGl0ZXJhbH0nKS50YWJsZURuRCgpOw0KICAgICAgJCgnOnN1Ym1pdC5zYXZlX2ZpZWxkc3svbGl0ZXJhbH17JHNlY3Rpb259e2xpdGVyYWx9JykuY2xpY2soZnVuY3Rpb24oKXsNCiAgICAgICAgdmFyIGRhdGEgPSBuZXcgQXJyYXk7DQogICAgICAgICQoJ3RhYmxlI2ZpZWxkbGlzdHsvbGl0ZXJhbH17JHNlY3Rpb259e2xpdGVyYWx9IHRyJykuZWFjaChmdW5jdGlvbihpLHRyKXsNCiAgICAgICAgICBkYXRhLnB1c2goJCh0cikuYXR0cignaWQnKSk7DQogICAgICAgIH0pOw0KICAgICAgICBkYXRhID0gZGF0YS5qb2luKCcsJyk7DQogICAgICAgICQoJyNmc2VyaWFsZGF0YXsvbGl0ZXJhbH17JHNlY3Rpb259e2xpdGVyYWx9JykudmFsKGRhdGEpOw0KICAgICAgfSk7DQogIA0KICAgIH0pOw0KDQogICAgPC9zY3JpcHQ+DQp7L2xpdGVyYWx9DQoNCg0KDQp7aWYgJGl0ZW1jb3VudCA+IDB9DQogICAgPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIGNtc19zb3J0YWJsZSB0YWJsZXNvcnRlciIgaWQ9ImZpZWxkbGlzdHskc2VjdGlvbn0iPg0KICAgICAgICA8dGhlYWQ+DQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgPHRoPjwvdGg+DQogICAgICAgICAgICAgICAgPHRoPnskZmllbGR0ZXh0fTwvdGg+DQogICAgICAgICAgICAgICAgPHRoPnskYWxpYXN9PC90aD4NCiAgICAgICAgICAgICAgICA8dGg+eyR0eXBldGV4dH08L3RoPg0KICAgICAgICAgICAgICAgIDx0aD57JHJlcXVpcmVkdGV4dH08L3RoPg0KICAgICAgICAgICAgICAgIDx0aD57JHNlYXJjaGFibGV0ZXh0fTwvdGg+DQogICAgICAgICAgICAgICAgPHRoPnskZnJvbnRlbmR0ZXh0fTwvdGg+DQogICAgICAgICAgICAgICAgPHRoPnskZWRpdHZpZXd0ZXh0fTwvdGg+DQogICAgICAgICAgICAgICAgPHRoPnskZmlsdGVyX2Zyb250ZW5kdGV4dH08L3RoPg0KICAgICAgICAgICAgICAgIDx0aD57JGZpbHRlcl9hZG1pbnRleHR9PC90aD4NCiAgICAgICAgICAgICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPg0KICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+DQogICAgICAgICAgICA8L3RyPg0KICAgICAgICA8L3RoZWFkPg0KICAgICAgICA8dGJvZHk+DQogICAgICAgICAgICB7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQ0KICAgICAgICAgICAgICAgIHtjeWNsZSB2YWx1ZXM9InJvdzEscm93MiIgYXNzaWduPSdyb3djbGFzcyd9DQogICAgICAgICAgICAgICAgPHRyIGlkPSJ7JGVudHJ5LT5pZH0iIGNsYXNzPSJ7JHJvd2NsYXNzfSIgb25tb3VzZW92ZXI9InRoaXMuY2xhc3NOYW1lPSd7JHJvd2NsYXNzfWhvdmVyJzsiIG9ubW91c2VvdXQ9InRoaXMuY2xhc3NOYW1lPSd7JHJvd2NsYXNzfSc7Ij4NCiAgICAgICAgICAgICAgICAgICAgPHRkPnskZW50cnktPmlkfTwvdGQ+DQogICAgICAgICAgICAgICAgICAgIDx0ZD57JGVudHJ5LT5uYW1lfTwvdGQ+DQogICAgICAgICAgICAgICAgICAgIDx0ZD57JGVudHJ5LT5hbGlhc308L3RkPg0KICAgICAgICAgICAgICAgICAgICA8dGQ+eyRlbnRyeS0+dHlwZX08L3RkPg0KICAgICAgICAgICAgICAgICAgICA8dGQ+eyRlbnRyeS0+cmVxdWlyZWR8dHJ1ZWZhbHNlfTwvdGQ+DQogICAgICAgICAgICAgICAgICAgIDx0ZD57JGVudHJ5LT5zZWFyY2hhYmxlfHRydWVmYWxzZX08L3RkPg0KICAgICAgICAgICAgICAgICAgICA8dGQ+eyRlbnRyeS0+ZnJvbnRlbmR8dHJ1ZWZhbHNlfTwvdGQ+DQogICAgICAgICAgICAgICAgICAgIDx0ZD57JGVudHJ5LT5lZGl0dmlld3x0cnVlZmFsc2V9PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgPHRkPnskZW50cnktPmZpbHRlcl9mcm9udGVuZHx0cnVlZmFsc2V9PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgPHRkPnskZW50cnktPmZpbHRlcl9hZG1pbnx0cnVlZmFsc2V9PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgPHRkPnskZW50cnktPmVkaXRsaW5rfTwvdGQ+DQogICAgICAgICAgICAgICAgICAgIDx0ZD57JGVudHJ5LT5kZWxldGVsaW5rfTwvdGQ+DQogICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgIHsvZm9yZWFjaH0NCiAgICAgICAgPC90Ym9keT4NCiAgICA8L3RhYmxlPg0KDQogICAgeyRtb2QtPkNyZWF0ZUZvcm1TdGFydCgkYWN0aW9uaWQsICdhZG1pbl9tb3ZlZmllbGRkZWYnKX0NCiAgICA8aW5wdXQgaWQ9ImZzZXJpYWxkYXRheyRzZWN0aW9ufSIgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfXNlcmlhbGRhdGEiIHZhbHVlPSIiLz4NCiAgICA8aW5wdXQgaWQ9InNlY3Rpb24iIHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1zZWN0aW9uIiB2YWx1ZT0ieyRzZWN0aW9ufSIvPg0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4NCiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz0ic2F2ZV9maWVsZHN7JHNlY3Rpb259IiB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3NhdmVfb3JkZXInKX0iLz4NCiAgICAgICAgPC9wPg0KICAgIDwvZGl2PiAgICAgICAgDQogICAgeyRtb2QtPkNyZWF0ZUZvcm1FbmQoKX0NCg0Key9pZn0NCg0KDQo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRhZGRsaW5rfTwvZGl2Pg0K]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/templates/filter.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyo8ZGl2Pg0KeyRmb3Jtc3RhcnR9DQo8ZmllbGRzZXQgc3R5bGU9ImZsb2F0OmxlZnQ7IHdpZHRoOjQ5JTsiPg0KPGxlZ2VuZD57JG1vZC0+TGFuZygnZmlsdGVycycpfTombmJzcDs8L2xlZ2VuZD4NCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2hpZXJhcmNoeScpfTo8L3A+DQogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfaGllcmFyY2h5fSZuYnNwO3skbW9kLT5MYW5nKCdpbmNsdWRlX2NoaWxkcmVuJyl9IHskaW5wdXRfY2hpbGRyZW59PC9wPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfc3VtbWFyeV9zb3J0aW5nJyl9OjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zb3J0Ynl9PC9wPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfc3VtbWFyeV9zb3J0b3JkZXInKX06PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3NvcnRvcmRlcn08L3A+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3BhZ2VfbGltaXQnKX06PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3BhZ2VsaW1pdH08L3A+DQo8L2Rpdj4NCntpZiAkbW9kLT5HZXRQcmVmZXJlbmNlKCdpdGVtX2RhdGVfZWRpdCcpfQ0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnZGF0ZScpfTwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+ICAJDQogIHskbW9kLT5MYW5nKCdmcm9tJyl9DQogIHtjYXB0dXJlIGFzc2lnbj0iaWRmcm9tZGF0ZSJ9eyRtb2QtPkdldEFjdGlvbklkKCl9ZGF0ZWZyb217L2NhcHR1cmV9DQogIHtodG1sX3NlbGVjdF9kYXRlIGZpZWxkX29yZGVyPURNWSBwcmVmaXg9JGlkZnJvbWRhdGUgdGltZT0kZGF0ZV9mcm9tIHN0YXJ0X3llYXI9Ii0xMCIgZW5kX3llYXI9IisxIn0NCiAgJm5ic3A7DQogIHskbW9kLT5MYW5nKCd0bycpfQ0KICB7Y2FwdHVyZSBhc3NpZ249ImlkdG9kYXRlIn17JG1vZC0+R2V0QWN0aW9uSWQoKX1kYXRldG97L2NhcHR1cmV9DQogIHtodG1sX3NlbGVjdF9kYXRlIGZpZWxkX29yZGVyPURNWSBwcmVmaXg9JGlkdG9kYXRlIHRpbWU9JGRhdGVfdG8gc3RhcnRfeWVhcj0iLTEwIiBlbmRfeWVhcj0iKzEifQ0KICA8L3A+DQo8L2Rpdj4NCnsvaWZ9DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JG1vZC0+R2V0QWN0aW9uSWQoKX1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ij48L3A+DQo8L2Rpdj4NCg0KPC9maWVsZHNldD4NCg0KeyRmb3JtZW5kfQ0KPC9kaXY+Kn0NCg0KDQoNCg0KPGRpdiBjbGFzcz0iY29udGVudCBkZXN0aW5hdGlvbnMiPg0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICB7JGZvcm1zdGFydH0NCiAgICAgICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGVnZW5kPkZpbHRlcjwvbGVnZW5kPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRlc3RfY29sdW1uIj48c2VsZWN0PjxvcHRpb24+S3JhamluYTwvb3B0aW9uPjxvcHRpb24+MTwvb3B0aW9uPjxvcHRpb24+Mjwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRlc3RfY29sdW1uIj48c2VsZWN0PjxvcHRpb24+RGVzdGluw6FjaWE8L29wdGlvbj48b3B0aW9uPjE8L29wdGlvbj48b3B0aW9uPjI8L29wdGlvbj48L3NlbGVjdD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXN0X2NvbHVtbiI+PHNlbGVjdD48b3B0aW9uPkNoYXJha3RlcmlzdGlrYTwvb3B0aW9uPjxvcHRpb24+MTwvb3B0aW9uPjxvcHRpb24+Mjwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+DQogICAgICAgICAgICAgICAgICAgIDwvZm9ybT4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaHJfZnVsbCI+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxoMz5ab3puYW0gZGVzdGluw6FjacOtPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGVzdF9jb2x1bW4iPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGg0PkVVUsOTUEE8L2g0Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJsaXN0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIj5BbGlsYSBWaWxsYXMgU29vcmksIEJhbGk8L2E+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIj5BbGlsYSBWaWxsYXMgVGFpd2FuPC9hPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiI+QWxpbGEgVWx1d2F0dSwgQ2F0YW1hcmFuPC9hPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiI+TWFuZ2lzLCBUYWl3YW48L2E+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgICAgICAgICAgICAgICA8aDQ+QUZSSUtBPC9oND4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0ibGlzdCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiI+QWxpbGEgVmlsbGFzLCBUYWl3YW48L2E+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIj5BbGlsYSBVbHV3YXR1LCBDYXRhbWFyYW48L2E+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRlc3RfY29sdW1uIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxoND5BTUVSSUtBPC9oND4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0ibGlzdCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiI+QWxpbGEgVmlsbGFzIFNvb3JpLCBCYWxpPC9hPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiI+QWxpbGEgVmlsbGFzIFRhaXdhbjwvYT48L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIiPkFsaWxhIFVsdXdhdHUsIENhdGFtYXJhbjwvYT48L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIiPk1hbmdpcywgVGFpd2FuPC9hPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiI+QWxpbGEgVmlsbGFzIFRhaXdhbjwvYT48L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIiPkFsaWxhIFVsdXdhdHUsIENhdGFtYXJhbjwvYT48L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIiPk1hbmdpcywgVGFpd2FuPC9hPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiI+QWxpYWxpPC9hPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8L3VsPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXN0X2NvbHVtbiI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aDQ+w4FaSUE8L2g0Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJsaXN0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIj5BbGlsYSBWaWxsYXMgU29vcmksIEJhbGk8L2E+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIj5BbGlsYSBWaWxsYXMgVGFpd2FuPC9hPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiI+QWxpbGEgVWx1d2F0dSwgQ2F0YW1hcmFuPC9hPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8L3VsPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGg0PkFVU1RSw4FMSUE8L2g0Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJsaXN0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIj5BbGlsYSBWaWxsYXMgU29vcmksIEJhbGk8L2E+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIj5BbGlsYSBWaWxsYXMgVGFpd2FuPC9hPjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICA8L3VsPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICB7JGZvcm1lbmR9DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCg==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/templates/frontend_bigmedia1.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e1NuaXBwZXRzIG5hbWU9InZ5aHJhIDEifQ==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/templates/frontend_bigmedia2.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e1NuaXBwZXRzIG5hbWU9InZ5aHJhIDIifQ==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/templates/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/templates/itemtab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Fzc2lnbiB2YXI9Im9sZGFjdGlvbmlkIiB2YWx1ZT0kYWN0aW9uaWR9DQoNCntpZiAkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCdtb2RlJykgPT0gInNpbXBsZSJ9DQogICAge2xpdGVyYWx9DQogICAgICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQogICAgICAgICAgICAuc2Nyb2xsYWJsZSB7DQogICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTsNCiAgICAgICAgICAgICAgICB3aWR0aDogOTAlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgIDwvc3R5bGU+DQoNCiAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KICAgICAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpew0KDQoNCiAgICAgICAgICAgICAgJCgnI2l0ZW1saXN0JykudGFibGVEbkQoKTsNCiAgICAgICAgICAkKCc6c3VibWl0LnNhdmVfaXRlbXMnKS5jbGljayhmdW5jdGlvbigpew0KICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgQXJyYXk7DQogICAgICAgICAgICAkKCd0YWJsZSNpdGVtbGlzdCB0cicpLmVhY2goZnVuY3Rpb24oaSx0cil7DQogICAgICAgICAgICAgIGRhdGEucHVzaCgkKHRyKS5hdHRyKCdpZCcpKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgZGF0YSA9IGRhdGEuam9pbignLCcpOw0KICAgICAgICAgICAgJCgnI3NlcmlhbGRhdGEnKS52YWwoZGF0YSk7DQogICAgICAgICAgfSk7DQogIA0KICAgICAgICB9KTsNCg0KICAgICAgICA8L3NjcmlwdD4NCiAgICB7L2xpdGVyYWx9DQp7L2lmfQ0KDQoNCjxkaXY+DQogICAgeyRmb3Jtc3RhcnR9DQogICAge2lmICRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ21vZGUnKSAhPSAic2ltcGxlIn0NCiAgICAgICAgPGZpZWxkc2V0Pg0KICAgICAgICAgICAgPGxlZ2VuZD57JG1vZHVsZS0+TGFuZygnZmlsdGVycycpfTombmJzcDs8L2xlZ2VuZD4NCiAgICAgICAgICAgIHtpZiAkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCdtb2RlJykgIT0gInNpbXBsZSJ9DQogICAgICAgICAgICAgICAge2lmICRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ2l0ZW1fY2F0ZWdvcnlfZWRpdCcsIDApfQ0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZHVsZS0+TGFuZygnaGllcmFyY2h5Jyl9OjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfaGllcmFyY2h5fSZuYnNwO3skbW9kdWxlLT5MYW5nKCdpbmNsdWRlX2NoaWxkcmVuJyl9IHskaW5wdXRfY2hpbGRyZW59PC9wPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICB7L2lmfQ0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2R1bGUtPkxhbmcoJ3Byb21wdF9zdW1tYXJ5X3NvcnRpbmcnKX06PC9wPg0KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3NvcnRieX08L3A+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZHVsZS0+TGFuZygncHJvbXB0X3N1bW1hcnlfc29ydG9yZGVyJyl9OjwvcD4NCiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zb3J0b3JkZXJ9PC9wPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2R1bGUtPkxhbmcoJ3BhZ2VfbGltaXQnKX06PC9wPg0KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3BhZ2VsaW1pdH08L3A+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAge2lmICRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ2ZpbHRlcl9kYXRlJyl9DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kdWxlLT5MYW5nKCdkYXRlJyl9PC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+ICAJDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeyRtb2R1bGUtPkxhbmcoJ2Zyb20nKX0NCiAgICAgICAgICAgICAgICAgICAgICAgIHtjYXB0dXJlIGFzc2lnbj0iaWRmcm9tZGF0ZSJ9eyRtb2R1bGUtPkdldEFjdGlvbklkKCl9ZGF0ZWZyb217L2NhcHR1cmV9DQogICAgICAgICAgICAgICAgICAgICAgICB7aHRtbF9zZWxlY3RfZGF0ZSBmaWVsZF9vcmRlcj1ETVkgcHJlZml4PSRpZGZyb21kYXRlIHRpbWU9JGRhdGVfZnJvbSBzdGFydF95ZWFyPSItMTAiIGVuZF95ZWFyPSIrMSJ9DQogICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsNCiAgICAgICAgICAgICAgICAgICAgICAgIHskbW9kdWxlLT5MYW5nKCd0bycpfQ0KICAgICAgICAgICAgICAgICAgICB7Y2FwdHVyZSBhc3NpZ249ImlkdG9kYXRlIn17JG1vZHVsZS0+R2V0QWN0aW9uSWQoKX1kYXRldG97L2NhcHR1cmV9DQogICAgICAgICAgICAgICAgICAgIHtodG1sX3NlbGVjdF9kYXRlIGZpZWxkX29yZGVyPURNWSBwcmVmaXg9JGlkdG9kYXRlIHRpbWU9JGRhdGVfdG8gc3RhcnRfeWVhcj0iLTEwIiBlbmRfeWVhcj0iKzEifQ0KICAgICAgICAgICAgICAgIDwvcD4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICB7L2lmfQ0KICAgIHsvaWZ9DQoNCiAgICB7aWYgaXNzZXQoJGN1c3RvbV9maWVsZGRlZil9DQogICAgICAgIHtmb3JlYWNoIGZyb209JGN1c3RvbV9maWVsZGRlZiBpdGVtPSdmaWVsZCd9DQogICAgICAgICAgICB7aWYgJGZpZWxkLT5maWVsZH0NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGQtPnByb21wdH06PC9wPg0KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4NCiAgICAgICAgICAgICAgICAgICAge2lmICFlbXB0eSgkZmllbGQtPmhlbHApfSh7JGZpZWxkLT5oZWxwfSk8YnIgLz57L2lmfQ0KICAgICAgICAgICAgICAgICAgICB7JGZpZWxkLT5maWVsZH0NCiAgICAgICAgICAgICAgICAgICAge2lmIGlzc2V0KCRmaWVsZC0+ZmlsZW5hbWUpfTxiciAvPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGJyIC8+DQogICAgICAgICAgICAgICAgICAgICAgICB7JGZpZWxkLT5kZWxldGVfZmlsZX0geyRmaWVsZC0+ZmlsZW5hbWV9PGJyIC8+DQogICAgICAgICAgICAgICAgICAgIHsvaWZ9DQogICAgICAgICAgICAgICAgPC9wPg0KICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAge2Vsc2V9DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZC0+cHJvbXB0fTwvcD4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICB7L2lmfQ0KICAgIHsvZm9yZWFjaH0NCnsvaWZ9DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+DQogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRtb2R1bGUtPkdldEFjdGlvbklkKCl9c3VibWl0IiB2YWx1ZT0ieyRtb2R1bGUtPkxhbmcoJ3N1Ym1pdCcpfSI+PC9wPg0KPC9kaXY+DQoNCjwvZmllbGRzZXQ+DQp7L2lmfQ0KeyRmb3JtZW5kfQ0KPC9kaXY+DQoNCg0KPGJyIHN0eWxlPSJjbGVhcjpib3RoOyIgLz4NCjxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIj48cCBjbGFzcz0icGFnZW9wdGlvbnMiPnskYWRkbGlua308L3A+PC9kaXY+DQp7aWYgJGl0ZW1jb3VudCA+IDB9DQoNCiAgICA8ZGl2IGlkPSJwcm9kdWN0bGlzdCI+DQogICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij57bGl0ZXJhbH0NCiAgICAgICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsNCiAgICAgICAgICAkKCcjc2VsZWN0X2FsbF9pdGVtcycpLmNsaWNrKGZ1bmN0aW9uKCl7DQogICAgICAgICAgICB2YXIgY2hlY2tlZCA9ICQodGhpcykuYXR0cignY2hlY2tlZCcpOw0KICAgICAgICAgICAgJCgnLm11bHRpc2VsZWN0JykuYXR0cignY2hlY2tlZCcsY2hlY2tlZCA9PSB1bmRlZmluZWQgPyBmYWxzZSA6IGNoZWNrZWQpOyANCiAgICAgICAgICB9KTsNCiAgICAgICAgICAkKCcjYnVsa2FjdGlvbl9zdWJtaXQnKS5jbGljayhmdW5jdGlvbigpew0KICAgICAgICAgICAgdmFyIGxlbiA9ICQoJyNpdGVtbGlzdCB0Ym9keSBpbnB1dDpjaGVja2JveDpjaGVja2VkJykubGVuZ3RoOw0KICAgICAgICAgICAgaWYoIGxlbiA9PSAwICkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgYWxlcnQoJ3svbGl0ZXJhbH17JG1vZHVsZS0+TGFuZygnbm90aGluZ19zZWxlY3RlZCcpfXtsaXRlcmFsfScpOw0KICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICB9KTsNCiAgICAgICAgfSk7DQogICAgICAgICAgICB7L2xpdGVyYWx9PC9zY3JpcHQ+DQogICAgICAgICAgICAgICAgeyRmb3Jtc3RhcnQyfQ0KICAgICAgICAgICAgICAgIHtpZiBpc3NldCgkZmlyc3RwYWdlX3VybCl9DQogICAgICAgICAgICAgICAgPGEgaHJlZj0ieyRmaXJzdHBhZ2VfdXJsfSIgdGl0bGU9InskbW9kdWxlLT5MYW5nKCdmaXJzdHBhZ2UnKX0iPnskbW9kdWxlLT5MYW5nKCdmaXJzdHBhZ2UnKX08L2E+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0ieyRwcmV2cGFnZV91cmx9IiB0aXRsZT0ieyRtb2R1bGUtPkxhbmcoJ3ByZXZwYWdlJyl9Ij57JG1vZHVsZS0+TGFuZygncHJldnBhZ2UnKX08L2E+DQogICAgICAgICAgICB7L2lmfQ0KICAgICAgICAgICAge2lmIGlzc2V0KCRmaXJzdHBhZ2VfdXJsKSB8fCBpc3NldCgkbGFzdHBhZ2VfdXJsKX0NCiAgICAgICAgICAgICAgICB7JG1vZHVsZS0+TGFuZygncGFnZV9vZicsJHBhZ2VudW1iZXIsJHBhZ2Vjb3VudCl9DQogICAgICAgICAgICB7L2lmfQ0KICAgICAgICAgICAge2lmIGlzc2V0KCRsYXN0cGFnZV91cmwpfQ0KICAgICAgICAgICAgICAgIDxhIGhyZWY9InskbmV4dHBhZ2VfdXJsfSIgdGl0bGU9InskbW9kdWxlLT5MYW5nKCduZXh0cGFnZScpfSI+eyRtb2R1bGUtPkxhbmcoJ25leHRwYWdlJyl9PC9hPg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9InskbGFzdHBhZ2VfdXJsfSIgdGl0bGU9InskbW9kdWxlLT5MYW5nKCdsYXN0cGFnZScpfSI+eyRtb2R1bGUtPkxhbmcoJ2xhc3RwYWdlJyl9PC9hPg0KICAgICAgICAgICAgey9pZn0NCg0KDQogICAgICAgICAgICA8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUgY21zX3NvcnRhYmxlIHRhYmxlc29ydGVyIiBpZD0iaXRlbWxpc3QiPg0KICAgICAgICAgICAgICAgIDx0aGVhZD4NCiAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnskaWR0ZXh0fTwvdGg+DQogICAgICAgICAgICAgICAgICAgICAgICB7aWYgJG1vZHVsZS0+R2V0UHJlZmVyZW5jZSgnaXRlbV90aXRsZV9lZGl0Jyl9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnskbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCdpdGVtX3RpdGxlJyl9PC90aD4NCiAgICAgICAgICAgICAgICAgICAgICAgIHsvaWZ9DQogICAgICAgICAgICAgICAgICAgIHtpZiAkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCdpdGVtX2RhdGVfZWRpdCcsIDApfTx0aD57JG1vZHVsZS0+TGFuZygnZGF0ZScpfTwvdGg+ey9pZn0NCiAgICAgICAgICAgICAgICB7aWYgJG1vZHVsZS0+R2V0UHJlZmVyZW5jZSgnaXRlbV9kYXRlX2VuZF9lZGl0JywgMCl9PHRoPnskbW9kdWxlLT5MYW5nKCdkYXRlX2VuZCcpfTwvdGg+ey9pZn0NCiAgICAgICAgICAgIHtpZiAkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCdpdGVtX2NhdGVnb3J5X2VkaXQnLCAwKX08dGg+eyRtb2R1bGUtPkxhbmcoJ2NhdGVnb3J5Jyl9PC90aD57L2lmfQ0KDQogICAgICAgICAgICB7aWYgaXNzZXQoJGN1c3RvbV9maWVsZHMpfQ0KICAgICAgICAgICAgICAgIHtmb3JlYWNoIGZyb209JGN1c3RvbV9maWVsZHMgaXRlbT0nZmlkJ30NCiAgICAgICAgICAgICAgICAgICAgPHRoPnskZmllbGRzX3ZpZXdhYmxlLiRmaWR9PC90aD4NCiAgICAgICAgICAgICAgICB7L2ZvcmVhY2h9DQogICAgICAgICAgICB7L2lmfQ0KDQogICAgICAgICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPg0KDQogICAgICAgICAgICA8dGggY2xhc3M9InBhZ2VpY29uIHtsaXRlcmFsfXtzb3J0ZXI6IGZhbHNlfXsvbGl0ZXJhbH0iPiZuYnNwOzwvdGg+DQogICAgICAgICAgICA8dGggY2xhc3M9InBhZ2VpY29uIHtsaXRlcmFsfXtzb3J0ZXI6IGZhbHNlfXsvbGl0ZXJhbH0iPiZuYnNwOzwvdGg+DQogICAgICAgICAgICA8dGggY2xhc3M9InBhZ2VpY29uIHtsaXRlcmFsfXtzb3J0ZXI6IGZhbHNlfXsvbGl0ZXJhbH0iPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgdGl0bGU9InskbW9kdWxlLT5MYW5nKCdzZWxlY3RfYWxsJyl9IiB2YWx1ZT0iMSIgbmFtZT0ic2VsZWN0X2FsbCIgaWQ9InNlbGVjdF9hbGxfaXRlbXMiPjwvdGg+DQogICAgICAgIDwvdHI+DQogICAgPC90aGVhZD4NCiAgICA8dGJvZHk+DQogICAgICAgIHtmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9DQogICAgICAgICAgICB7Y3ljbGUgdmFsdWVzPSJyb3cxLHJvdzIiIGFzc2lnbj0ncm93Y2xhc3MnfQ0KICAgICAgICAgICAgeyo8dHIgY2xhc3M9Inskcm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9JzsiPip9DQogICAgICAgICAgICA8dHIgaWQ9InskZW50cnktPml0ZW1faWR9Ij4NCiAgICAgICAgICAgICAgICA8dGQ+eyRlbnRyeS0+aXRlbV9pZH08L3RkPg0KICAgICAgICAgICAgICAgIHtpZiAkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCdpdGVtX3RpdGxlX2VkaXQnKX08dGQ+PGEgaHJlZj0ieyRlbnRyeS0+ZWRpdF91cmx9IiB0aXRsZT0ieyRtb2R1bGUtPkxhbmcoJ2VkaXQnKX0iPnskZW50cnktPnRpdGxlfTwvYT48L3RkPg0KICAgICAgICAgICAgICAgIHsvaWZ9DQogICAgICAgICAgICB7aWYgJG1vZHVsZS0+R2V0UHJlZmVyZW5jZSgnaXRlbV9kYXRlX2VkaXQnLCAwKX0JICAgICAgICAgICAgICAgIDx0ZD57JGVudHJ5LT5pdGVtX2RhdGV8Y21zX2RhdGVfZm9ybWF0fTwvdGQ+ey9pZn0NCiAgICAgICAge2lmICRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ2l0ZW1fZGF0ZV9lbmRfZWRpdCcsIDApfQkgICAgICAgICAgICAgICAgPHRkPnskZW50cnktPml0ZW1fZGF0ZV9lbmR8Y21zX2RhdGVfZm9ybWF0fTwvdGQ+ey9pZn0NCiAgICB7aWYgJG1vZHVsZS0+R2V0UHJlZmVyZW5jZSgnaXRlbV9jYXRlZ29yeV9lZGl0JywgMCl9CSAgICAgICAgICAgICAgICA8dGQ+eyRlbnRyeS0+bG9uZ19uYW1lfTwvdGQ+ey9pZn0NCiAgICB7aWYgaXNzZXQoJGN1c3RvbV9maWVsZHMpfQ0KICAgICAgICB7Zm9yZWFjaCBmcm9tPSRjdXN0b21fZmllbGRzIGl0ZW09J2ZpZCd9DQogICAgICAgICAgICA8dGQ+DQogICAgICAgICAgICB7Y2FwdHVyZSBhc3NpZ249J3RtcCd9RmxkX197JGZpZWxkX25hbWVzLiRmaWR9ey9jYXB0dXJlfQ0KICAgICAgICAgICAge2lmICRmaWVsZF9tb2R1bGVzLiRmaWR9DQogICAgICAgICAgICAgICAge2lmICRlbnRyeS0+JHRtcH0NCiAgICAgICAge2NhcHR1cmUgYXNzaWduPSJ0bXBtb2R1bGUifXtsaXRlcmFsfXtjbXNfbW9kdWxley9saXRlcmFsfSBtb2R1bGU9InskZmllbGRfbW9kdWxlcy4kZmlkfSIgIGFsbHJvdz0idG1wcm93cyIgZmlsdGVyX2l0ZW1JZF9pbj0ieyRlbnRyeS0+JHRtcH0ie2xpdGVyYWx9fXsvbGl0ZXJhbH17L2NhcHR1cmV9DQogICAgey9pZn0NCiAgICB7aWYgJHRtcG1vZHVsZX0NCiAgICB7ZXZhbCB2YXI9JHRtcG1vZHVsZX0NCiAgICB7L2lmfQ0KICAgIHtpZiAkdG1wcm93c30NCiAgICAgICAge2ZvcmVhY2ggZnJvbT0kdG1wcm93cyBpdGVtPSd0bXByb3cnIG5hbWU9Im1vZHVsZSJ9DQogICAgICAgIHskdG1wcm93LT50aXRsZX17aWYgJHNtYXJ0eS5mb3JlYWNoLm1vZHVsZS5sYXN0PT1mYWxzZX0sey9pZn0NCiAgICB7L2ZvcmVhY2h9DQp7L2lmfQ0Ke2Fzc2lnbiB2YXI9InRtcHJvd3MiIHZhbHVlPSIifQ0Ke2Fzc2lnbiB2YXI9InRtcG1vZHVsZSIgdmFsdWU9IiJ9DQp7ZWxzZWlmICRmaWVsZF9pbWFnZXMuJGZpZCAmJiAkZW50cnktPiR0bXB9DQp7Y2FwdHVyZSBhc3NpZ249InNyYyJ9eyRlbnRyeS0+ZmlsZV9sb2NhdGlvbn0veyRlbnRyeS0+JHRtcH17L2NhcHR1cmV9DQp7Y2FwdHVyZSBhc3NpZ249InNyY3BhdGgifXskZW50cnktPmZpbGVwYXRoX2xvY2F0aW9ufS97JGVudHJ5LT4kdG1wfXsvY2FwdHVyZX0NCntpZiAkc3JjcGF0aHxAZ2V0aW1hZ2VzaXplfQ0KICAgIHtjbXNfbW9kdWxlIG1vZHVsZT0iQ0dTbWFydEltYWdlIiBzcmM9JHNyY3BhdGggIGZpbHRlcl9yZXNpemU9ImgsNTAiIHN0eWxlPSJtYXJnaW46NXB4IDA7In0gICAgDQp7ZWxzZX0NCiAgICA8YSBocmVmPSJ7JGVudHJ5LT5maWxlX2xvY2F0aW9ufS97JGVudHJ5LT4kdG1wfSI+eyRlbnRyeS0+JHRtcH08L2E+DQp7L2lmfQ0Ke2Vsc2V9DQogICAgeyRlbnRyeS0+JHRtcH0NCnsvaWZ9DQo8L3RkPg0Key9mb3JlYWNofQ0Key9pZn0NCg0KPHRkPnskZW50cnktPmFwcHJvdmV9PC90ZD4NCg0KPHRkPnskZW50cnktPmVkaXRsaW5rfTwvdGQ+DQo8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPg0KPHRkPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2xhc3M9Im11bHRpc2VsZWN0IiBuYW1lPSJ7JG9sZGFjdGlvbmlkfW11bHRpc2VsZWN0W10iIHZhbHVlPSJ7JGVudHJ5LT5pdGVtX2lkfSI+PC90ZD4NCjwvdHI+DQp7L2ZvcmVhY2h9DQo8L3Rib2R5Pg0KPC90YWJsZT4NCg0KDQo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+PHAgY2xhc3M9InBhZ2VvcHRpb25zIj57JGFkZGxpbmt9PC9wPjwvZGl2Pg0Ke2lmICRpdGVtY291bnQgZ3QgMH0NCiAgICA8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsgd2lkdGg6IDQwJTsgZmxvYXQ6IHJpZ2h0OyBtYXJnaW4tdG9wOiAwLjVlbTsiPg0KICAgICAgICB7JG1vZHVsZS0+TGFuZygnd2l0aF9zZWxlY3RlZCcpfToNCiAgICAgICAgPHNlbGVjdCBuYW1lPSJ7JG9sZGFjdGlvbmlkfWJ1bGthY3Rpb24iPntodG1sX29wdGlvbnMgb3B0aW9ucz0kYnVsa2FjdGlvbnN9PC9zZWxlY3Q+DQogICAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIGlkPSJidWxrYWN0aW9uX3N1Ym1pdCIgbmFtZT0ieyRvbGRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZHVsZS0+TGFuZygnZ28nKX0iLz4NCiAgICA8L2Rpdj4NCnsvaWZ9DQp7JGZvcm1lbmQyfTwvZGl2Pg0Key9pZn0NCg0Ke2lmICRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ21vZGUnKSA9PSAic2ltcGxlIn0NCiAgICB7JG1vZHVsZS0+Q3JlYXRlRm9ybVN0YXJ0KCRvbGRhY3Rpb25pZCwgJ2FkbWluX21vdmVpdGVtJyl9DQogICAgPGlucHV0IGlkPSJzZXJpYWxkYXRhIiB0eXBlPSJoaWRkZW4iIG5hbWU9Inskb2xkYWN0aW9uaWR9c2VyaWFsZGF0YSIgdmFsdWU9IiIvPg0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4NCiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz0ic2F2ZV9pdGVtcyIgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JG9sZGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kdWxlLT5MYW5nKCdzYXZlX29yZGVyJyl9Ii8+DQogICAgICAgIDwvcD4NCiAgICA8L2Rpdj4NCiAgICB7JG1vZHVsZS0+Q3JlYXRlRm9ybUVuZCgpfQ0Key9pZn0NCg0KDQo8YnIgc3R5bGU9ImNsZWFyOmJvdGgiIC8+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/templates/optiontab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2xpdGVyYWx9DQogICAgPHNjcmlwdCB0eWxlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7DQogICAgJCgiI2FkdmFuY2VkLCNzaW1wbGUiKS5oaWRlKCk7DQogICAgJCgiIyIrJCgiI21vZGUgc2VsZWN0IikudmFsKCkpLmZhZGVJbigpOzsNCg0KICAgICQoIiNtb2RlIHNlbGVjdCIpLmNoYW5nZShmdW5jdGlvbigpew0KICAgICQoIiNhZHZhbmNlZCwjc2ltcGxlIikuaGlkZSgpOw0KICAgICQoIiMiKyQodGhpcykudmFsKCkpLmZhZGVJbigpOzsNCiAgICB9KQ0KICAgIH0pDQogICAgPC9zY3JpcHQ+DQp7L2xpdGVyYWx9DQoNCu+7v3skc3RhcnRmb3JtfQ0KDQo8ZmllbGRzZXQ+DQogICAgPGgzPnskbW9kLT5MYW5nKCdnbG9iYWwnKX08L2gzPg0KDQoNCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3VybF9wcmVmaXh9OjwvcD4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF91cmxfcHJlZml4fTwvcD4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2RlZmF1bHRfYWN0aW9uX3BhcmFtc306PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2RlZmF1bHRfYWN0aW9uX3BhcmFtc308L3A+DQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9kZXRhaWxfYWN0aW9uX3BhcmFtc306PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2RldGFpbF9hY3Rpb25fcGFyYW1zfTwvcD4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3RpdGxlX3BhcmFtX2Zvcl9jYWNoZX06PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3RpdGxlX3BhcmFtX2Zvcl9jYWNoZX08L3A+DQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9kaXNwbGF5X2lubGluZX06PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Rpc3BsYXlfaW5saW5lfTwvcD4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2xhenlsb2FkaW5nfTo8L3A+DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfbGF6eWxvYWRpbmd9PC9wPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfaXRlbV9kZXRhaWxfcmV0dXJuaWR9OjwvcD4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9pdGVtX2RldGFpbF9yZXR1cm5pZH08L3A+DQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9pdGVtX2NhdGVnb3J5X3JldHVybmlkfTo8L3A+DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfaXRlbV9jYXRlZ29yeV9yZXR1cm5pZH08L3A+DQogICAgPC9kaXY+DQo8L2ZpZWxkc2V0Pg0KPGZpZWxkc2V0Pg0KICAgIDxoMz57JG1vZC0+TGFuZygnYWRtaW5fYXJlYScpfTwvaDM+DQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnaW1hZ2VzX3NpemVfYWRtaW4nKX06PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9InskbW9kLT5HZXRQcmVmZXJlbmNlKCdpbWFnZXNfc2l6ZV9hZG1pbicpfSIgbmFtZT0ieyRhY3Rpb25pZH1pbWFnZXNfc2l6ZV9hZG1pbiIgLz4NCiAgICAgICAgICAgIDxzcGFuPiAqeyRtb2QtPkxhbmcoJ2ltYWdlX3NpemVfYWRtaW5faW5mbycpfTwvc3Bhbj4NCiAgICAgICAgPC9wPg0KDQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9mcmllbmRseW5hbWV9OjwvcD4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mcmllbmRseW5hbWV9PC9wPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfaXRlbV90aXRsZX06PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2l0ZW1fdGl0bGV9PC9wPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfaXRlbV9zaW5ndWxhcn06PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2l0ZW1fc2luZ3VsYXJ9PC9wPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfaXRlbV9wbHVyYWx9OjwvcD4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9pdGVtX3BsdXJhbH08L3A+DQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnY29weV9hZG1pbicpfTo8L3A+DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfY29weV9hZG1pbn08L3A+DQogICAgPC9kaXY+DQoNCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcmV2aWV3X2FkbWluJyl9OjwvcD4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9wcmV2aWV3X2FkbWlufTwvcD4NCiAgICA8L2Rpdj4NCg0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfaGFzX2FkbWlufTo8L3A+DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfaGFzX2FkbWlufTwvcD4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdoYXNfZ2FsbGVyeScpfTo8L3A+DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfaGFzX2dhbGxlcnl9PC9wPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2dhbGxlcnlfc29ydG9yZGVyJyl9OjwvcD4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9nYWxsZXJ5X3NvcnRvcmRlcn08L3A+DQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF91c2VyZ3JvdXBfZGVwZW5kZW5jZX06PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3VzZXJncm91cF9kZXBlbmRlbmNlfTwvcD4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2N1c3RvbV9maWVsZHNfZGVmYXVsdH06PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4NCiAgICAgICAgICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21fZmllbGRzX2RlZmF1bHRbXSIgc2l6ZT0iNiIgbXVsdGlwbGU9Im11bHRpcGxlIj4NCiAgICAgICAgICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGZpZWxkc192aWV3YWJsZSBzZWxlY3RlZD0kY3VzdG9tX2ZpZWxkc19kZWZhdWx0fQ0KICAgICAgICAgICAgPC9zZWxlY3Q+DQogICAgICAgIDwvcD4NCiAgICA8L2Rpdj4NCjwvZmllbGRzZXQ+DQo8YnIgLz4NCjwvZmllbGRzZXQ+DQo8YnIgLz4NCg0KPGZpZWxkc2V0Pg0KICAgIDxoMz57JG1vZC0+TGFuZygnc2VhcmNoJyl9PC9oMz4NCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3NlYXJjaGFibGV9OjwvcD4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zZWFyY2hhYmxlfTwvcD4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3NlYXJjaF9kYXRlX2VuZH06PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3NlYXJjaF9kYXRlX2VuZH08L3A+DQogICAgPC9kaXY+DQogICAge2lmICRzZWFyY2hhYmxlfQ0KICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+DQogICAgICAgICAgICAgICAgPGJyIC8+DQogICAgICAgICAgICAgICAgeyRzZWFyY2hhYmxlX2xpbmt9DQogICAgICAgICAgICA8L3A+DQogICAgICAgIDwvZGl2Pg0KICAgIHsvaWZ9DQo8L2ZpZWxkc2V0Pg0KPGJyIC8+DQo8ZmllbGRzZXQ+DQogICAgPGgzPnskbW9kLT5MYW5nKCdlZGl0Jyl9PC9oMz4NCg0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfZmlsdGVyX2RhdGV9OjwvcD4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9maWx0ZXJfZGF0ZX08L3A+DQogICAgPC9kaXY+ICAgDQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9yZWN1cnNpdmV9OjwvcD4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9yZWN1cnNpdmV9PC9wPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfaXRlbV90aXRsZV9lZGl0fTo8L3A+DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfaXRlbV90aXRsZV9lZGl0fTwvcD4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2l0ZW1fYWxpYXNfZWRpdH06PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2l0ZW1fYWxpYXNfZWRpdH08L3A+DQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9pdGVtX3VybF9lZGl0fTo8L3A+DQogICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfaXRlbV91cmxfZWRpdH08L3A+DQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9pdGVtX2RhdGVfZWRpdH06PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2l0ZW1fZGF0ZV9lZGl0fTwvcD4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2l0ZW1fZGF0ZV9lbmRfZWRpdH06PC9wPg0KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2l0ZW1fZGF0ZV9lbmRfZWRpdH08L3A+DQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9pdGVtX2NhdGVnb3J5X2VkaXR9OjwvcD4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9pdGVtX2NhdGVnb3J5X2VkaXR9PC9wPg0KICAgIDwvZGl2Pg0KPC9maWVsZHNldD4NCjxiciAvPg0KPGZpZWxkc2V0Pg0KICAgIDxoMz57JHByb21wdF9tb2RlfTwvaDM+DQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCIgaWQ9Im1vZGUiPnskaW5wdXRfbW9kZX08L3A+DQogICAgPC9kaXY+DQogICAgPGRpdiBpZD0iYWR2YW5jZWQiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9zdW1tYXJ5X3NvcnRpbmd9OjwvcD4NCiAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc3VtbWFyeV9zb3J0aW5nX2FkdmFuY2VkfTwvcD4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3N1bW1hcnlfc29ydG9yZGVyfTo8L3A+DQogICAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3N1bW1hcnlfc29ydG9yZGVyX2FkdmFuY2VkfTwvcD4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3N1bW1hcnlfcGFnZWxpbWl0fTo8L3A+DQogICAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3N1bW1hcnlfcGFnZWxpbWl0X2FkdmFuY2VkfTwvcD4NCiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogICAgPGRpdiBpZD0ic2ltcGxlIj4NCiAgICAgICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfc3VtbWFyeV9zb3J0aW5nfTo8L3A+DQogICAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3N1bW1hcnlfc29ydGluZ19zaW1wbGV9PC9wPg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfc3VtbWFyeV9zb3J0b3JkZXJ9OjwvcD4NCiAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc3VtbWFyeV9zb3J0b3JkZXJfc2ltcGxlfTwvcD4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3N1bW1hcnlfcGFnZWxpbWl0fTo8L3A+DQogICAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3N1bW1hcnlfcGFnZWxpbWl0X3NpbXBsZX08L3A+DQogICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KPC9maWVsZHNldD4JDQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fTwvcD4NCjwvZGl2Pg0KDQp7JGVuZGZvcm19DQo=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/templates/ordercategory.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZWNvbnRhaW5lciI+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCntsaXRlcmFsfQpmdW5jdGlvbiBwYXJzZVRyZWUodWwpewoJdmFyIHRhZ3MgPSBbXTsKCXVsLmNoaWxkcmVuKCJsaSIpLmVhY2goZnVuY3Rpb24oKXsKCQl2YXIgc3VidHJlZSA9CSQodGhpcykuY2hpbGRyZW4oInVsIik7CgkJaWYoc3VidHJlZS5zaXplKCkgPiAwKQoJCQl0YWdzLnB1c2goWyQodGhpcykuYXR0cigiaWQiKSwgcGFyc2VUcmVlKHN1YnRyZWUpXSk7CgkJZWxzZQoJCQl0YWdzLnB1c2goJCh0aGlzKS5hdHRyKCJpZCIpKTsKCX0pOwoJcmV0dXJuIHRhZ3M7Cn0KCiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7Cgp2YXIgYWpheF91cmwgPSAkKCdmb3JtJykuYXR0cignYWN0aW9uJykrIj8iOwokKCdmb3JtIGlucHV0OmhpZGRlbixmb3JtIGlucHV0OnRleHQsZm9ybSBpbnB1dDpzdWJtaXQ6Zmlyc3QnKS5lYWNoKGZ1bmN0aW9uKCl7CmFqYXhfdXJsKz0iJiIrJCh0aGlzKS5hdHRyKCduYW1lJykrIj0iKyQodGhpcykuYXR0cigndmFsdWUnKTsKfSkKCiQoJ3VsLnNvcnRhYmxlJykubmVzdGVkU29ydGFibGUoewkKCQkJCQlkaXNhYmxlTmVzdGluZzogJ25vLW5lc3QnLAoJCQkJCWZvcmNlUGxhY2Vob2xkZXJTaXplOiB0cnVlLAoJCQkJCWhhbmRsZTogJ2RpdicsCgkJCQkJaXRlbXM6ICdsaScsCgkJCQkJb3BhY2l0eTogLjYsCgkJCQkJcGxhY2Vob2xkZXI6ICdwbGFjZWhvbGRlcicsCgkJCQkJdGFiU2l6ZTogMjUsCgkJCQkJdG9sZXJhbmNlOiAncG9pbnRlcicsCgkJCQkJdG9sZXJhbmNlRWxlbWVudDogJz4gZGl2JwoJCQkJfSk7CgogICAgIAokKCIuc2F2ZSIpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICB2YXIgdHJlZSA9ICQudG9KU09OKHBhcnNlVHJlZSgkKCd1bC5zb3J0YWJsZScpKSk7CiAgICB2YXIgYWpheF9yZXMgPSBmYWxzZTsKICAgICQuYWpheCh7CiAgICAgIHR5cGU6ICdQT1NUJywKICAgICAgdXJsOiAgYWpheF91cmwsCiAgICAgIGRhdGE6IHtkYXRhOiB0cmVlfSwKICAgICAgY2FjaGU6IGZhbHNlLAogICAgICBhc3luYzogZmFsc2UsCiAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlcykgewogICAgICAgICBhamF4X3JlcyA9IHRydWU7CiAgICAgIH0KICAgIH0pOwogICAgcmV0dXJuIGFqYXhfcmVzOwp9KTsvL2VuZCBzYXZlCgp9KTsvL2VuZCByZWFkeQp7L2xpdGVyYWx9Cjwvc2NyaXB0Pgp7JHN0YXJ0Zm9ybX0KPGRpdiBjbGFzcz0icmVvcmRlci1wYWdlcyI+Cjx1bCBjbGFzcz0ic29ydGFibGVMaXN0IHNvcnRhYmxlIj4KCntpZiAkaXRlbWNvdW50ID4gMH0Ke2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeSBuYW1lPSJjYXRlZ29yeWxpc3QifQogICAgCnthc3NpZ24gdmFyPSJoaWVyYXJjaHljb3VudCIgdmFsdWU9Ii4ifGV4cGxvZGU6JGhpZXJhcmNoeX0Ke2Fzc2lnbiB2YXI9ImhpZXJhcmNoeWN1cnJlbnRjb3VudCIgdmFsdWU9Ii4ifGV4cGxvZGU6JGVudHJ5LT5oaWVyYXJjaHlfcG9zaXRpb259CntpZiAkc21hcnR5LmZvcmVhY2guY2F0ZWdvcnlsaXN0LmZpcnN0PT1mYWxzZSAmJiAkcGFyZW50X2lkIT0kZW50cnktPnBhcmVudF9pZCAmJiAkaGllcmFyY2h5Y291bnR8QGNvdW50IDw9ICAkaGllcmFyY2h5Y3VycmVudGNvdW50fEBjb3VudH0KPC9saT48dWw+CntlbHNlaWYgJHNtYXJ0eS5mb3JlYWNoLmNhdGVnb3J5bGlzdC5maXJzdD09ZmFsc2UgJiYgJHBhcmVudF9pZCE9JGVudHJ5LT5wYXJlbnRfaWR9CnttYXRoIGVxdWF0aW9uPSJ4IC0geSIgeD0kaGllcmFyY2h5Y291bnR8QGNvdW50IHk9JGhpZXJhcmNoeWN1cnJlbnRjb3VudHxAY291bnQgYXNzaWduPSJkZXB0aCJ9CntyZXBlYXQgc3RyaW5nPSI8L2xpPjwvdWw+IiB0aW1lcz0kZGVwdGh9e2Vsc2V9PC9saT4Key9pZn0KCgo8bGkgaWQ9ImNhdGVnb3J5X3skZW50cnktPmNhdGVnb3J5X2lkfSI+CjxkaXYgY2xhc3M9ImxhYmVsIj48c3Bhbj4mbmJzcDs8L3NwYW4+eyRlbnRyeS0+Y2F0ZWdvcnlfaWR9OiZuYnNwO3skZW50cnktPmNhdGVnb3J5X25hbWV9PGVtPnskZW50cnktPmhpZXJhcmNoeX08L2VtPjwvZGl2PgoKCgp7YXNzaWduIHZhcj0iaGllcmFyY2h5IiB2YWx1ZT0kZW50cnktPmhpZXJhcmNoeV9wb3NpdGlvbn0Ke2Fzc2lnbiB2YXI9InBhcmVudF9pZCIgdmFsdWU9JGVudHJ5LT5wYXJlbnRfaWR9CnsvZm9yZWFjaH0Key9pZn0KCjwvdWw+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnb2V2ZXJmbG93Ij4KIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiBjbGFzcz0iYnV0dG9uIHNhdmUiIHZhbHVlPSJ7J3N1Ym1pdCd8bGFuZ30iLz4KIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieydjYW5jZWwnfGxhbmd9Ii8+CjwvZGl2Pgp7JGVuZGZvcm19CjwvZGl2Pgo=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/templates/orig_category_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRjb3VudCA+IDB9DQo8dWw+DQp7Zm9yZWFjaCBmcm9tPSRjYXRzIGl0ZW09bm9kZX0NCntpZiAkbm9kZS5kZXB0aCA+ICRub2RlLnByZXZkZXB0aH0NCntyZXBlYXQgc3RyaW5nPSI8dWw+IiB0aW1lcz0kbm9kZS5kZXB0aC0kbm9kZS5wcmV2ZGVwdGh9DQp7ZWxzZWlmICRub2RlLmRlcHRoIDwgJG5vZGUucHJldmRlcHRofQ0Ke3JlcGVhdCBzdHJpbmc9IjwvbGk+PC91bD4iIHRpbWVzPSRub2RlLnByZXZkZXB0aC0kbm9kZS5kZXB0aH0NCjwvbGk+DQp7ZWxzZWlmICRub2RlLmluZGV4ID4gMH08L2xpPg0Key9pZn0NCjxsaT4NCntpZiAkbm9kZS5jb3VudCA+IDB9DQoJPGEgaHJlZj0ieyRub2RlLnVybH0iPnskbm9kZS5jYXRlZ29yeV9uYW1lfTwvYT4gKHskbm9kZS5jb3VudH0pe2Vsc2V9PHNwYW4+eyRub2RlLmNhdGVnb3J5X25hbWV9ICgwKTwvc3Bhbj57L2lmfQ0Key9mb3JlYWNofQ0Ke3JlcGVhdCBzdHJpbmc9IjwvbGk+PC91bD4iIHRpbWVzPSRub2RlLmRlcHRoLTF9PC9saT4NCjwvdWw+DQp7L2lmfQ==]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/templates/orig_detail_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0iaXRlbSI+DQo8aDIgY2xhc3M9Iml0ZW0tdGl0bGUiPnskaXRlbS0+dGl0bGV8Y21zX2VzY2FwZX08L2gyPg0KPGRpdiBjbGFzcz0iaXRlbS1jYXRlZ29yeSI+Q2F0ZWdvcnk6IHskaXRlbS0+Y2F0ZWdvcnlfbmFtZXxjbXNfZXNjYXBlfTwvZGl2Pg0Ke2lmICFlbXB0eSgkaXRlbS0+ZmllbGRkZWZzKX0NCiAgICA8ZGl2IGNsYXNzPSJpdGVtLXByb3BlcnRpZXMiPg0KICAgIHtmb3JlYWNoIGZyb209JGl0ZW0tPmZpZWxkZGVmcyBpdGVtPWZpZWxkZGVmfQ0KICAgICAgICB7aWYgJGZpZWxkZGVmLnR5cGUgPT0gJ3VwbG9hZF9maWxlJyB8fCAkZmllbGRkZWYudHlwZSA9PSAnc2VsZWN0X2ZpbGUnfQ0KICAgICAgICAgICAgeyRmaWVsZGRlZi5uYW1lfGNtc19lc2NhcGV9OiA8YSBocmVmPSJ7JGZpZWxkZGVmLmRpcnxjbXNfZXNjYXBlfS97JGZpZWxkZGVmLnZhbHVlfGNtc19lc2NhcGV9Ij57JGZpZWxkZGVmLnZhbHVlfGNtc19lc2NhcGV9PC9hPjxiciAvPg0KICAgICAgICB7ZWxzZX0NCiAgICAgICAgICAgIHskZmllbGRkZWYubmFtZXxjbXNfZXNjYXBlfTogeyRmaWVsZGRlZi52YWx1ZXxjbXNfZXNjYXBlfTxiciAvPg0KICAgICAgICB7L2lmfQ0KICAgIHsvZm9yZWFjaH0NCiAgICA8L2Rpdj4NCnsvaWZ9DQo8L2Rpdj48IS0tIGl0ZW0gLS0+]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/templates/orig_filter_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0iZmlsdGVyIj4gICAgICAgICAgICAgICAgICAgIA0KICAgIHskZm9ybXN0YXJ0fQ0KICAgIDxmaWVsZHNldD4NCiAgICAgICAgICAge2lmIGlzc2V0KCRjdXN0b21fZmllbGRkZWYpfQ0KICAgICAgICB7Zm9yZWFjaCBmcm9tPSRjdXN0b21fZmllbGRkZWYgaXRlbT0nZmllbGQnfQ0KICAgICAgICAgICAge2lmICRmaWVsZC0+ZmllbGR9DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZpZWxkLT5wcm9tcHR9OjwvcD4NCiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+DQogICAgICAgICAgICAgICAgICAgIHtpZiAhZW1wdHkoJGZpZWxkLT5oZWxwKX0oeyRmaWVsZC0+aGVscH0pPGJyIC8+ey9pZn0NCiAgICAgICAgICAgICAgICAgICAgeyRmaWVsZC0+ZmllbGR9DQogICAgICAgICAgICAgICAgICAgIHtpZiBpc3NldCgkZmllbGQtPmZpbGVuYW1lKX08YnIgLz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxiciAvPg0KICAgICAgICAgICAgICAgICAgICAgICAgeyRmaWVsZC0+ZGVsZXRlX2ZpbGV9IHskZmllbGQtPmZpbGVuYW1lfTxiciAvPg0KICAgICAgICAgICAgICAgICAgICB7L2lmfQ0KICAgICAgICAgICAgICAgIDwvcD4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgIHtlbHNlfQ0KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGQtPnByb21wdH08L3A+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgey9pZn0NCiAgICB7L2ZvcmVhY2h9DQogICAgey9pZn0NCiAgICA8L2ZpZWxkc2V0Pg0KICAgIHskaW5wdXRfc3VibWl0fQ0KICAgIHskZm9ybWVuZH0NCiAgICAgICANCjwvZGl2Pg0KDQp7aWYgaXNTZXQoJHJlc3VsdHMpfQ0KeyRyZXN1bHRzfQ0Key9pZn0=]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/templates/orig_summary_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1pdGVtfQ0KPGgyPnskaXRlbS0+dGl0bGV8Y21zX2VzY2FwZX08L2gyPg0KPHA+eyRpdGVtLT5pdGVtX2RhdGV8Y21zX2RhdGVfZm9ybWF0fTwvcD4NCntpZiAkaXRlbS0+Y2F0ZWdvcnlfbmFtZX08cD57JGl0ZW0tPmNhdGVnb3J5X25hbWV8Y21zX2VzY2FwZX08cD57L2lmfQ0Ke2lmICFlbXB0eSgkaXRlbS0+ZmllbGRzKX0NCiAgICA8ZGl2IGNsYXNzPSJpdGVtLXByb3BlcnRpZXMiPg0KICAgIHtmb3JlYWNoIGZyb209JGl0ZW0tPmZpZWxkcyBpdGVtPWZpZWxkZGVmfQ0KICAgICAgICB7aWYgJGZpZWxkZGVmLnR5cGUgPT0gJ3VwbG9hZF9maWxlJyB8fCAkZmllbGRkZWYudHlwZSA9PSAnc2VsZWN0X2ZpbGUnfQ0KICAgICAgICAgICAgeyRmaWVsZGRlZi5uYW1lfGNtc19lc2NhcGV9OiA8YSBocmVmPSJ7JGZpZWxkZGVmLmRpcnxjbXNfZXNjYXBlfS97JGZpZWxkZGVmLnZhbHVlfGNtc19lc2NhcGV9Ij57JGZpZWxkZGVmLnZhbHVlfGNtc19lc2NhcGV9PC9hPjxiciAvPg0KICAgICAgICB7ZWxzZX0NCiAgICAgICAgICAgIHskZmllbGRkZWYubmFtZXxjbXNfZXNjYXBlfTogeyRmaWVsZGRlZi52YWx1ZX08YnIgLz4NCiAgICAgICAgey9pZn0NCiAgICB7L2ZvcmVhY2h9DQogICAgPC9kaXY+DQp7L2lmfQ0KPGEgaHJlZj0ieyRpdGVtLT5saW5rfSI+eyRpdGVtLT5saW5rfTwvYT4NCnsvZm9yZWFjaH0NCg0Ke2lmIGlzc2V0KCRwYWdlY291bnQpICYmICRwYWdlY291bnQgZ3QgMX0NCjxwPg0KICAgICAgICB7aWYgJHByZXZ1cmx9PGEgaHJlZj0ieyRwcmV2dXJsfSIgY2xhc3M9InByZXYiPsKrPC9hPiZuYnNwO3svaWZ9DQogICAgICAgIDxlbT57JHBhZ2VudW1iZXJ9IC8geyRwYWdlY291bnR9PC9lbT4NCiAgICAgICAge2lmICRuZXh0dXJsfTxhIGhyZWY9InskbmV4dHVybH0iIGNsYXNzPSJuZXh0Ij7CuzwvYT4mbmJzcDt7L2lmfQ0KICAgIDwvcD4NCnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/ModuleLib/templates/templatetab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[77u/e2lmICRpdGVtY291bnQgPiAwfQ0KPGgzPnskc3VtbWFyeXRlbXBsYXRlc308L2gzPg0KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4NCiAgICA8dGhlYWQ+DQogICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0aD57JGhlYWRlcl9uYW1lfTwvdGg+DQogICAgICAgICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPg0KICAgICAgICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4NCiAgICAgICAgPC90cj4NCiAgICA8L3RoZWFkPg0KICAgIDx0Ym9keT4NCntmb3JlYWNoIGZyb209JGl0ZW1zLnN1bW1hcnkgaXRlbT1lbnRyeX0NCiAgICAgICAgPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS0+cm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skZW50cnktPnJvd2NsYXNzfSc7Ij4NCiAgICAgICAgICAgIDx0ZD57JGVudHJ5LT5saW5rfTwvdGQ+DQogICAgICAgICAgICA8dGQ+eyRlbnRyeS0+ZWRpdH08L3RkPg0KICAgICAgICAgICAgPHRkPnskZW50cnktPmRlbGV0ZX08L3RkPg0KICAgICAgICA8L3RyPg0Key9mb3JlYWNofQ0KICAgIDwvdGJvZHk+DQo8L3RhYmxlPg0Key9pZn0NCg0KPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPnskYWRkc3VtbWFyeWxpbmt9PC9kaXY+DQoNCg0Ke2lmICRpdGVtY291bnQgPiAwfQ0KPGgzPnskZGV0YWlsdGVtcGxhdGVzfTwvaDM+DQo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPg0KICAgIDx0aGVhZD4NCiAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRoPnskaGVhZGVyX25hbWV9PC90aD4NCiAgICAgICAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+DQogICAgICAgICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPg0KICAgICAgICA8L3RyPg0KICAgIDwvdGhlYWQ+DQogICAgPHRib2R5Pg0Ke2ZvcmVhY2ggZnJvbT0kaXRlbXMuZGV0YWlsIGl0ZW09ZW50cnl9DQogICAgICAgIDx0ciBjbGFzcz0ieyRlbnRyeS0+cm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skZW50cnktPnJvd2NsYXNzfWhvdmVyJzsiIG9ubW91c2VvdXQ9InRoaXMuY2xhc3NOYW1lPSd7JGVudHJ5LT5yb3djbGFzc30nOyI+DQogICAgICAgICAgICA8dGQ+eyRlbnRyeS0+bGlua308L3RkPg0KICAgICAgICAgICAgPHRkPnskZW50cnktPmVkaXR9PC90ZD4NCiAgICAgICAgICAgIDx0ZD57JGVudHJ5LT5kZWxldGV9PC90ZD4NCiAgICAgICAgPC90cj4NCnsvZm9yZWFjaH0NCiAgICA8L3Rib2R5Pg0KPC90YWJsZT4NCnsvaWZ9DQoNCjxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIj57JGFkZGRldGFpbGxpbmt9PC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/editmodule.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19IA0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICA8ZGl2IGNsYXNzPSJwYWdldGV4dCI+DQo8aDM+eyRtb2R1bGVuYW1lfTwvaDM+DQp7JG1vZC0+TGFuZygnYXR0YWNoJyl9OjwvZGl2Pg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPg0KCXskYXR0YWNofQ0KICAgIDwvcD4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaGlkZGVufXskc3VibWl0fXskY2FuY2VsfTwvcD4NCjwvZGl2Pg0KDQp7JGVuZGZvcm19DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/generator.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRpdGVtY291bnQgPiAwfQ0KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIGNtc19zb3J0YWJsZSB0YWJsZXNvcnRlciI+DQoJPHRoZWFkPg0KCQk8dHI+DQoJCQk8dGg+eyRtb2QtPkxhbmcoJ2lkJyl9PC90aD4NCgkJCTx0aD57JG1vZC0+TGFuZygnbmFtZScpfTwvdGg+DQoJCQk8dGg+eyRtb2QtPkxhbmcoJ2F0dGFjaCcpfTwvdGg+DQoJCQk8dGg+eyRtb2QtPkxhbmcoJ2NyZWF0ZWRhdGUnKX08L3RoPg0KCQkJPHRoPnskbW9kLT5MYW5nKCdtb2RpZmllZGRhdGUnKX08L3RoPg0KDQoJCQk8dGggY2xhc3M9InBhZ2VpY29uIHtsaXRlcmFsfXtzb3J0ZXI6IGZhbHNlfXsvbGl0ZXJhbH0iPiZuYnNwOzwvdGg+DQoJCQk8dGggY2xhc3M9InBhZ2VpY29uIHtsaXRlcmFsfXtzb3J0ZXI6IGZhbHNlfXsvbGl0ZXJhbH0iPiZuYnNwOzwvdGg+DQoJCQk8dGggY2xhc3M9InBhZ2VpY29uIHtsaXRlcmFsfXtzb3J0ZXI6IGZhbHNlfXsvbGl0ZXJhbH0iPiZuYnNwOzwvdGg+DQoJCTwvdHI+DQoJPC90aGVhZD4NCgk8dGJvZHk+DQp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQ0KCXtjeWNsZSB2YWx1ZXM9InJvdzEscm93MiIgYXNzaWduPSdyb3djbGFzcyd9DQoJCXsqPHRyIGNsYXNzPSJ7JHJvd2NsYXNzfSIgb25tb3VzZW92ZXI9InRoaXMuY2xhc3NOYW1lPSd7JHJvd2NsYXNzfWhvdmVyJzsiIG9ubW91c2VvdXQ9InRoaXMuY2xhc3NOYW1lPSd7JHJvd2NsYXNzfSc7Ij4qfQ0KICAgICAgICAgICAgICAgIDx0cj4NCgkJCTx0ZD57JGVudHJ5LT5pZH08L3RkPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPntpZiBpc1NldCgkZW50cnktPm1vZHVsZWxpbmspICYmICRlbnRyeS0+bW9kdWxlbGlua317JGVudHJ5LT5tb2R1bGVsaW5rfXtlbHNlfTxzdHJvbmc+eyRlbnRyeS0+bW9kdWxlX25hbWV9PC9zdHJvbmc+IC0geyRtb2QtPkxhbmcoJ3BsZWFzZV9pbnN0YWxsX2l0Jyl9ey9pZn08L3RkPg0KDQoJCQk8dGQ+eyRlbnRyeS0+YXR0YWNobW9kdWxlc308L3RkPg0KCSAgICAgICAgICAgICAgICA8dGQ+eyRlbnRyeS0+Y3JlYXRlX2RhdGV8Y21zX2RhdGVfZm9ybWF0fTwvdGQ+DQoJICAgICAgICAgICAgICAgIDx0ZD57JGVudHJ5LT5tb2RpZmllZF9kYXRlfGNtc19kYXRlX2Zvcm1hdH08L3RkPg0KCQkJPHRkPnskZW50cnktPmVkaXRsaW5rfTwvdGQ+DQoJCQk8dGQ+eyRlbnRyeS0+cmVnZW5lcmF0ZWxpbmt9PC90ZD4NCgkJCTx0ZD57aWYgaXNTZXQoJGVudHJ5LT5tb2R1bGVsaW5rKSAmJiAkZW50cnktPm1vZHVsZWxpbmt9e2Vsc2V9eyRlbnRyeS0+ZGVsZXRlbGlua317L2lmfTwvdGQ+DQoJCTwvdHI+DQp7L2ZvcmVhY2h9DQoJPC90Ym9keT4NCjwvdGFibGU+DQp7L2lmfQ0KDQoNCg0KeyRzdGFydGZvcm19IA0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICA8aDMgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnY3JlYXRlX21vZHVsZScpfTwvaDM+DQogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnbmFtZScpfTo8L3A+DQogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+DQoJeyRuYW1lfQ0KICAgIDwvcD4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdhdHRhY2gnKX06PC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPg0KCXskYXR0YWNofQ0KICAgIDwvcD4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fTwvcD4NCjwvZGl2Pg0KDQp7JGVuZGZvcm19DQo=]]></data>
	</file>
</module>
