<?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>groupdocs_viewer_java</name>
	<version>1.0</version>
  <mincmsversion>1.11.7</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPkdyb3VwRG9jcyBXb3JkLCBFeGNlbCwgUG93ZXJwb2ludCwgUERGIFZpZXdlciBmb3IgSmF2YSBsZXRzIHlvdSBlbWJlZCBzZXZlcmFsIHR5cGVzIG9mIGZpbGVzIGludG8geW91ciBwYWdlLjwvcD4KPGgzPkhvdyBEbyBJIFVzZSBJdDwvaDM+CjxwPkFkZCBncm91cGRvY3Mudmlld2VyIGZvciBqYXZhLiBGaWxsIGFsbCBmaWVsZHMuIFlvdSBjb3VsZCBmaW5kIFNlcnZlciB1cmwgd2hlcmUgaW5zdGFsbGVkIHlvdXIgSmF2YSB2aWV3ZXIuPC9wPgo8aDM+V2hhdCBQYXJhbWV0ZXJzIERvZXMgSXQgVGFrZTwvaDM+CjxwPldpZHRoIGFuZCBIZWlnaHQgYXJlIGZvciBzaXplIG9mIGlmcmFtZSBvbiBwYWdlLjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHVsPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGxhbmc9ImVuX1VTIiAtIFBhcmFtZXRlciBpcyB1c2VkIHRvIHNwZWNpZnkgd2hhdCBsYW5ndWFnZSB0byB1c2UgZm9yIGRpc3BsYXkgb24gdGhlIGZyb250ZW5kLiBOb3QgYWxsIG1vZHVsZXMgc3VwcG9ydCBvciBuZWVkIHRoaXMuPC9saT48L3VsPg==]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBHcm91cERvY3MgVGVhbSAmbHQ7c3VwcG9ydEBncm91cGRvY3MuY29tJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDEuMDxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjx1bD4KPGxpPlZlcnNpb24gMS4wIC0gMTEgQXByaWwgMjAxNC4gSW5pdGlhbCBSZWxlYXNlLjwvbGk+CjwvdWw+PGJyIC8+]]></about>
	<description><![CDATA[This plugin is developed based on the GroupDocs HTML5 document viewer for Java library, which enables you to display over 45 different types of documents right on your CMSMS website.]]></description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgovKiAtPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LQoKICAgQ29kZSBmb3IgZ3JvdXBkb2NzX3ZpZXdlcl9qYXZhICJkZWZhdWx0IiBhY3Rpb24KCiAgIC09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tCiAgIAogICBUeXBpY2FsbHksIHRoaXMgd2lsbCBkaXNwbGF5IHNvbWV0aGluZyBmcm9tIGEgdGVtcGxhdGUKICAgb3IgZG8gc29tZSBvdGhlciB0YXNrLgogICAKKi8KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwYXJhbXMnLCRwYXJhbXMpOyAjINGC0LXQsyDQtNC70Y8g0LfQsNC60YDRi9GC0LjRjyDRhNC+0YDQvNGLCgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2Rpc3BsYXkudHBsJyk7ICMg0LLRi9C30L7QsiDRiNCw0LHQu9C+0L3QsCAKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkKCXsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwoJfQoKJGFkbWludGhlbWUgPSAkZ0Ntcy0+dmFyaWFibGVzWyJhZG1pbnRoZW1lIl07Cgokd2hlcmVjbGF1c2UgPSBhcnJheSgpOwoJCQkJCQkKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJhZGRuZXciLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICJlZGl0QSIsICRyZXR1cm5pZCwgJGFkbWludGhlbWUtPkRpc3BsYXlJbWFnZSgiaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYiLCAiIiwiIiwiIiwic3lzdGVtaWNvbiIpLiIgIi4kdGhpcy0+TGFuZygiYWRkX2RvYyIpKSk7CgkJCiRpdGVtbGlzdCA9ICR0aGlzLT5nZXRfZG9jc19saXN0KGlzc2V0KCR3aGVyZWNsYXVzZSk/JHdoZXJlY2xhdXNlOmFycmF5KCksdHJ1ZSwgJGlkLCAkcmV0dXJuaWQsIGZhbHNlKTsKCQkJCiR0aGlzLT5zbWFydHktPmFzc2lnbigiaXRlbWxpc3QiLCAkaXRlbWxpc3QpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoImFkbWlucGFuZWwudHBsIik7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.editA.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KDQppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkNCgl7DQoJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKSk7DQoJfQ0KDQokYWRtaW50aGVtZSA9ICRnQ21zLT52YXJpYWJsZXNbImFkbWludGhlbWUiXTsNCg0KaWYoaXNzZXQoJHBhcmFtc1siY2FuY2VsIl0pKXsNCgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkLCAkbmV3cGFyYW1zKTsNCn0NCg0KJGRiID0mICR0aGlzLT5HZXREYigpOw0KDQovLyBDSEVDSyBJRiBUSEUgRk9STSBJUyBCRUlORyBTVUJNSVRURUQgOg0KLy8gKHdlIG11c3QgZGV0ZWN0IGFsbCBraW5kcyBvZiBzdWJtaXQgYnV0dG9ucywgaW5jbHVkaW5nIGZpbGVzLCBzaW5jZSBpbmZvcm1hdGlvbiBtdXN0IGJlIHNhdmVkIGJlZm9yZSB3ZSBnbyB0byBmaWxlIHN1Ym1pc3Npb24pDQppZiAoaXNzZXQoJHBhcmFtc1sic3VibWl0Il0pIHx8IA0KCWlzc2V0KCRwYXJhbXNbImFwcGx5Il0pIA0KCSkNCnsNCgkNCgkNCglkZWJ1Z19idWZmZXIoIkVkaXQgRm9ybSBoYXMgYmVlbiBzdWJtaXR0ZWQiLl9fTElORV9fKTsNCg0KCS8vIFJFVFJJRVZJTkcgVEhFIEZPUk0gVkFMVUVTIChhbmQgZXNjYXBpbmcgaXQsIGlmIG5lZWRlZCkNCglpZighaXNzZXQoJGl0ZW0pKSAkaXRlbSA9IG5ldyBzdGRDbGFzcygpOw0KDQogICAgaWYgKHN1YnN0cigkcGFyYW1zWyJzZXJ2ZXJfdXJsIl0sIC0xKSAhPSAiLyIpIHsNCiAgICAgICAgJHVybCA9ICRwYXJhbXNbInNlcnZlcl91cmwiXSAuICIvIjsNCiAgICB9DQoJJGl0ZW0tPndpZHRoID0gJHBhcmFtc1sid2lkdGgiXTsNCgkkaXRlbS0+aGVpZ2h0ID0gJHBhcmFtc1siaGVpZ2h0Il07DQoJJGl0ZW0tPnNlcnZlcl91cmwgPSAkdXJsOw0KCSRpdGVtLT5uYW1lID0gJHBhcmFtc1sibmFtZSJdOw0KDQoJDQoJLy8gRklFTERTIFRPIFVQREFURQ0KCSRxdWVyeSA9IChpc3NldCgkaXRlbS0+aWQpPyJVUERBVEUgIjoiSU5TRVJUIElOVE8gIikuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ3JvdXBkb2NzX3ZpZXdlcl9qYXZhX2RvY3MgU0VUIA0KCQkJd2lkdGg9PywNCgkJCWhlaWdodD0/LA0KCQkJc2VydmVyX3VybD0/LA0KCQkJbmFtZT0/IjsNCgkJCQ0KCS8vIFZBTFVFUw0KCSR2YWx1ZXMgPSBhcnJheShhZGRzbGFzaGVzKCRpdGVtLT53aWR0aCksDQoJCQlhZGRzbGFzaGVzKCRpdGVtLT5oZWlnaHQpLA0KCQkJYWRkc2xhc2hlcygkaXRlbS0+c2VydmVyX3VybCksDQoJCQlhZGRzbGFzaGVzKCRpdGVtLT5uYW1lKSwNCgkJCSk7DQoNCgkJaWYoaXNzZXQoJGl0ZW0tPmlkKSl7DQoJCQkkcXVlcnkgLj0gIiBXSEVSRSBpZD0/OyI7DQoJCQlhcnJheV9wdXNoKCR2YWx1ZXMsJGl0ZW0tPmlkKTsNCgkJfSBlbHNlIHsNCgkJCS8vIE5FVyBJVEVNDQoJCQkNCgkJCS8vIGdldCBhIG5ldyBpZCBmcm9tIHRoZSBzZXF1ZW5jZSB0YWJsZQ0KCQkJJGl0ZW0tPmlkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9ncm91cGRvY3Nfdmlld2VyX2phdmFfZG9jc19zZXEiKTsNCgkJDQoJCQkkcXVlcnkgLj0gIiwgaWQ9Ii4kaXRlbS0+aWQ7DQoNCgkJfQ0KCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCAkdmFsdWVzKTsJDQoJCQ0KCQkkcmVkaXJlY3QgPSB0cnVlOw0KCQkvL2lmKG15c3FsX2FmZmVjdGVkX3Jvd3MoKSl7CS8vIG15c3FsLW9ubHkNCgkJaWYoJGRiLT5BZmZlY3RlZF9Sb3dzKCkpew0KCQkJDQoJCX1lbHNlaWYobXlzcWxfZXJyb3IoKSl7DQoJCQkvLyBkbyBub3QgcmVkaXJlY3QgOg0KCQkJJHJlZGlyZWN0ID0gZmFsc2U7DQoJCQllY2hvICR0aGlzLT5TaG93RXJyb3JzKG15c3FsX2Vycm9yKCkpOw0KCQl9DQoNCgkJLy8gUkVESVJFQ1RJTkcuLi4NCgkJCWlmKCRyZWRpcmVjdCA9PSBmYWxzZSl7DQoJCQl9ZWxzZWlmKGlzc2V0KCRwYXJhbXNbImFwcGx5Il0pKXsNCgkJCQllY2hvICR0aGlzLT5TaG93TWVzc2FnZSgkdGhpcy0+TGFuZygibWVzc2FnZV9tb2RpZmllZCIpKTsNCgkJCX1lbHNlew0KCQkJCSRwYXJhbXMgPSBhcnJheSgibW9kdWxlX21lc3NhZ2UiID0+ICR0aGlzLT5MYW5nKCJtZXNzYWdlX21vZGlmaWVkIikpOw0KCQkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICJkZWZhdWx0YWRtaW4iLCAkcmV0dXJuaWQsICRwYXJhbXMpOwkNCgkJCX0JDQoJDQoJLy8gRU5EIE9GIEZPUk0gU1VCTUlTU0lPTg0KfQ0KDQoNCg0KLyogIyMgUFJFUEFSSU5HIFNNQVJUWSBFTEVNRU5UUw0KQ3JlYXRlSW5wdXRUZXh0IDogKGlkLG5hbWUsdmFsdWUsc2l6ZSxtYXhsZW5ndGgpDQpDcmVhdGVUZXh0QXJlYSA6ICh3eXNpd3lnLGlkLHRleHQsbmFtZSkNCkNyZWF0ZUlucHV0U2VsZWN0TGlzdCA6IChpZCxuYW1lLGl0ZW1zLHNlbGVjdGVkaXRlbXMsc2l6ZSkNCkNyZWF0ZUlucHV0RHJvcGRvd24gOiAoaWQsbmFtZSxpdGVtcyxzaW5kZXgsc3ZhbHVlKQ0KKi8NCg0KDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oIndpZHRoX2xhYmVsIiwgJHRoaXMtPkxhbmcoImdyb3VwZG9jc193aWR0aCIpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigid2lkdGhfaW5wdXQiLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwid2lkdGgiLGlzc2V0KCRpdGVtKT8kaXRlbS0+d2lkdGg6IiIsMzAsMTApKTsNCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJoZWlnaHRfbGFiZWwiLCAkdGhpcy0+TGFuZygiZ3JvdXBkb2NzX2hlaWdodCIpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigiaGVpZ2h0X2lucHV0IiwgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsImhlaWdodCIsaXNzZXQoJGl0ZW0pPyRpdGVtLT5oZWlnaHQ6IiIsMzAsMTApKTsNCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJzZXJ2ZXJfdXJsX2xhYmVsIiwgJHRoaXMtPkxhbmcoImdyb3VwZG9jc19zZXJ2ZXJfdXJsIikpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJzZXJ2ZXJfdXJsX2lucHV0IiwgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsInNlcnZlcl91cmwiLGlzc2V0KCRpdGVtKT8kaXRlbS0+c2VydmVyX3VybDoiIiw3NSwyMDAwKSk7DQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbigibmFtZV9sYWJlbCIsICR0aGlzLT5MYW5nKCJncm91cGRvY3NfbmFtZSIpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigibmFtZV9pbnB1dCIsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCJuYW1lIixpc3NldCgkaXRlbSk/JGl0ZW0tPmd1aWQ6IiIsNzUsMjAwMCkpOw0KDQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbigic3VibWl0IiwgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgInN1Ym1pdCIsIGxhbmcoInN1Ym1pdCIpKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oImFwcGx5IiwgKGlzc2V0KCRpdGVtKSAmJiBpc3NldCgkaXRlbS0+aWQpKT8kdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAiYXBwbHkiLCBsYW5nKCJhcHBseSIpKToiIik7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oImNhbmNlbCIsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICJjYW5jZWwiLCBsYW5nKCJjYW5jZWwiKSkpOw0KDQoNCi8vIERJU1BMQVlJTkcNCmlmKGlzc2V0KCRpdGVtKSAmJiBpc3NldCgkaXRlbS0+aWQpKXsNCgkJZWNobyAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgImVkaXRBIiwgJHJldHVybmlkKTsNCgkJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCJlZGl0QS50cGwiKTsNCgkJZWNobyAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAiQWlkIiwgJGl0ZW0tPmlkKTsNCgkJaWYoaXNzZXQoJGl0ZW0pICYmIGlzc2V0KCRpdGVtLT5wYXJlbnQpKSBlY2hvICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICJvbGRwYXJlbnQiLCAkaXRlbS0+cGFyZW50KTsNCgkJZWNobyAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAiQWl0ZW1fb3JkZXIiLCAkaXRlbS0+aXRlbV9vcmRlcik7DQoJCWVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKTsNCgkNCg0KfWVsc2V7DQoJZWNobyAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgImVkaXRBIiwgJHJldHVybmlkKTsNCgllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoImVkaXRBLnRwbCIpOw0KCWVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKTsNCn0NCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/groupdocs_viewer_java.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IGdyb3VwZG9jc192aWV3ZXJfamF2YSAtIEdyb3VwRG9jcyBXb3JkLCBFeGNlbCwgUG93ZXJwb2ludCwgUERGIFZpZXdlciBFbWJlZGRlciBsZXRzIHlvdSBlbWJlZCBzZXZlcmFsIHR5cGVzIG9mIGZpbGVzIGludG8geW91ciBwYWdlLgojIFZlcnNpb246IDEuMCwgR3JvdXBEb2NzIFRlYW0KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAxMiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojIFRoaXMgZmlsZSBvcmlnaW5hbGx5IGNyZWF0ZWQgYnkgTW9kdWxlTWFrZXIgbW9kdWxlLCB2ZXJzaW9uIDAuMy4yCiMgQ29weXJpZ2h0IChjKSAyMDEyIGJ5IFNhbXVlbCBHb2xkc3RlaW4gKHNqZ0BjbXNtYWRlc2ltcGxlLm9yZykgCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBGb3IgSGVscCBidWlsZGluZyBtb2R1bGVzOgojIC0gUmVhZCB0aGUgRG9jdW1lbnRhdGlvbiBhcyBpdCBiZWNvbWVzIGF2YWlsYWJsZSBhdAojICAgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy8KIyAtIENoZWNrIG91dCB0aGUgU2tlbGV0b24gTW9kdWxlIGZvciBhIGNvbW1lbnRlZCBleGFtcGxlCiMgLSBMb29rIGF0IG90aGVyIG1vZHVsZXMsIGFuZCBsZWFybiBmcm9tIHRoZSBzb3VyY2UKIyAtIENoZWNrIG91dCB0aGUgZm9ydW1zIGF0IGh0dHA6Ly9mb3J1bXMuY21zbWFkZXNpbXBsZS5vcmcKIyAtIENoYXQgd2l0aCBkZXZlbG9wZXJzIG9uIHRoZSAjY21zIElSQyBjaGFubmVsCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmNsYXNzIGdyb3VwZG9jc192aWV3ZXJfamF2YSBleHRlbmRzIENNU01vZHVsZQp7CgoJZnVuY3Rpb24gR2V0TmFtZSgpCgl7CgkJcmV0dXJuICdncm91cGRvY3Nfdmlld2VyX2phdmEnOwoJfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRGcmllbmRseU5hbWUoKQoJICAgVGhpcyBjYW4gcmV0dXJuIGFueSBzdHJpbmcsIHByZWZlcmFibHkgYSBsb2NhbGl6ZWQgbmFtZQoJICAgb2YgdGhlIG1vZHVsZS4gVGhpcyBpcyB0aGUgbmFtZSB0aGF0J3Mgc2hvd24gaW4gdGhlCgkgICBBZG1pbiBNZW51cyBhbmQgc2VjdGlvbiBwYWdlcyAoaWYgdGhlIG1vZHVsZSBoYXMgYW4gYWRtaW4KCSAgIGNvbXBvbmVudCkuCgkgICAKCSAgIFNlZSB0aGUgbm90ZSBvbiBsb2NhbGl6YXRpb24gYXQgdGhlIHRvcCBvZiB0aGlzIGZpbGUuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyk7Cgl9CgoJCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0VmVyc2lvbigpCgkgICBUaGlzIGNhbiByZXR1cm4gYW55IHN0cmluZywgcHJlZmVyYWJseSBhIG51bWJlciBvcgoJICAgc29tZXRoaW5nIHRoYXQgbWFrZXMgc2Vuc2UgZm9yIGRlc2lnbmF0aW5nIGEgdmVyc2lvbi4KCSAgIFRoZSBDTVMgd2lsbCB1c2UgdGhpcyB0byBpZGVudGlmeSB3aGV0aGVyIG9yIG5vdAoJICAgdGhlIGluc3RhbGxlZCB2ZXJzaW9uIG9mIHRoZSBtb2R1bGUgaXMgY3VycmVudCwgYW5kCgkgICB0aGUgbW9kdWxlIHdpbGwgdXNlIGl0IHRvIGZpZ3VyZSBvdXQgaG93IHRvIHVwZ3JhZGUKCSAgIGl0c2VsZiBpZiByZXF1ZXN0ZWQuCSAgIAoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0VmVyc2lvbigpCgl7CgkJcmV0dXJuICcxLjAnOwoJfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRIZWxwKCkKCSAgIFRoaXMgcmV0dXJucyBIVE1MIGluZm9ybWF0aW9uIG9uIHRoZSBtb2R1bGUuCgkgICBUeXBpY2FsbHksIHlvdSdsbCB3YW50IHRvIGluY2x1ZGUgaW5mb3JtYXRpb24gb24gaG93IHRvCgkgICB1c2UgdGhlIG1vZHVsZS4KCSAgIAoJICAgU2VlIHRoZSBub3RlIG9uIGxvY2FsaXphdGlvbiBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIEdldEhlbHAoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygnaGVscCcpOwoJfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRBdXRob3IoKQoJICAgVGhpcyByZXR1cm5zIGEgc3RyaW5nIHRoYXQgaXMgcHJlc2VudGVkIGluIHRoZSBNb2R1bGUKCSAgIEFkbWluIGlmIHlvdSBjbGljayBvbiB0aGUgIkFib3V0IiBsaW5rLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0QXV0aG9yKCkKCXsKCQlyZXR1cm4gJ0dyb3VwRG9jcyBUZWFtJzsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0QXV0aG9yRW1haWwoKQoJICAgVGhpcyByZXR1cm5zIGEgc3RyaW5nIHRoYXQgaXMgcHJlc2VudGVkIGluIHRoZSBNb2R1bGUKCSAgIEFkbWluIGlmIHlvdSBjbGljayBvbiB0aGUgIkFib3V0IiBsaW5rLiBJdCBoZWxwcyB1c2VycwoJICAgb2YgeW91ciBtb2R1bGUgZ2V0IGluIHRvdWNoIHdpdGggeW91IHRvIHNlbmQgYnVnIHJlcG9ydHMsCgkgICBxdWVzdGlvbnMsIGNhc2VzIG9mIGJlZXIsIGFuZC9vciBsYXJnZSBzdW1zIG9mIG1vbmV5LgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKQoJewoJCXJldHVybiAnc3VwcG9ydEBncm91cGRvY3MuY29tJzsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0Q2hhbmdlTG9nKCkKCSAgIFRoaXMgcmV0dXJucyBhIHN0cmluZyB0aGF0IGlzIHByZXNlbnRlZCBpbiB0aGUgbW9kdWxlCgkgICBBZG1pbiBpZiB5b3UgY2xpY2sgb24gdGhlIEFib3V0IGxpbmsuIEl0IGhlbHBzIHVzZXJzCgkgICBmaWd1cmUgb3V0IHdoYXQncyBjaGFuZ2VkIGJldHdlZW4gcmVsZWFzZXMuCgkgICBTZWUgdGhlIG5vdGUgb24gbG9jYWxpemF0aW9uIGF0IHRoZSB0b3Agb2YgdGhpcyBmaWxlLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2NoYW5nZWxvZycpOwoJfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBJc1BsdWdpbk1vZHVsZSgpCgkgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSBvciBmYWxzZSwgZGVwZW5kaW5nIHVwb24KCSAgIHdoZXRoZXIgdXNlcnMgY2FuIGluY2x1ZGUgdGhlIG1vZHVsZSBpbiBhIHBhZ2Ugb3IKCSAgIHRlbXBsYXRlIHVzaW5nIGEgc21hcnR5IHRhZyBvZiB0aGUgZm9ybQoJICAge2Ntc19tb2R1bGUgbW9kdWxlPSdncm91cGRvY3Nfdmlld2VyJyBwYXJhbTE9dmFsIHBhcmFtMj12YWwuLi59CgkgICAKCSAgIElmIHlvdXIgbW9kdWxlIGRvZXMgbm90IGdldCBpbmNsdWRlZCBpbiBwYWdlcyBvcgoJICAgdGVtcGxhdGVzLCByZXR1cm4gImZhbHNlIiBoZXJlLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKQoJewoJCXJldHVybiB0cnVlOwoJfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBIYXNBZG1pbigpCgkgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYSBib29sZWFuIHZhbHVlLCBkZXBlbmRpbmcgb24KCSAgIHdoZXRoZXIgeW91ciBtb2R1bGUgYWRkcyBhbnl0aGluZyB0byB0aGUgQWRtaW4gYXJlYSBvZgoJICAgdGhlIHNpdGUuIEZvciB0aGUgcmVzdCBvZiB0aGVzZSBjb21tZW50cywgSSdsbCBiZSBjYWxsaW5nCgkgICB0aGUgYWRtaW4gcGFydCBvZiB5b3VyIG1vZHVsZSB0aGUgIkFkbWluIFBhbmVsIiBmb3IKCSAgIHdhbnQgb2YgYSBiZXR0ZXIgdGVybS4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIEhhc0FkbWluKCkKCXsKCQlyZXR1cm4gdHJ1ZTsKCX0KCgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldEFkbWluU2VjdGlvbigpCgkgICBJZiB5b3VyIG1vZHVsZSBoYXMgYW4gQWRtaW4gUGFuZWwsIHlvdSBjYW4gc3BlY2lmeQoJICAgd2hpY2ggQWRtaW4gU2VjdGlvbiAob3IgdG9wLWxldmVsIEFkbWluIE1lbnUpIGl0IHNob3dzCgkgICB1cCBpbi4gVGhpcyBtZXRob2QgcmV0dXJucyBhIHN0cmluZyB0byBzcGVjaWZ5IHRoYXQKCSAgIHNlY3Rpb24uIFZhbGlkIHJldHVybiB2YWx1ZXMgYXJlOgoKCSAgIG1haW4gICAgICAgIC0gdGhlIE1haW4gbWVudSB0YWIuCgkgICBjb250ZW50ICAgICAtIHRoZSBDb250ZW50IG1lbnUKCSAgIGxheW91dCAgICAgIC0gdGhlIExheW91dCBtZW51CgkgICB1c2Vyc2dyb3VwcyAtIHRoZSBVc2VycyBhbmQgR3JvdXBzIG1lbnUKCSAgIGV4dGVuc2lvbnMgIC0gdGhlIEV4dGVuc2lvbnMgbWVudSAodGhpcyBpcyB0aGUgZGVmYXVsdCkKCSAgIHNpdGVhZG1pbiAgIC0gdGhlIFNpdGUgQWRtaW4gbWVudQoJICAgdmlld3NpdGUgICAgLSB0aGUgVmlldyBTaXRlIG1lbnUgdGFiCgkgICBsb2dvdXQgICAgICAtIHRoZSBMb2dvdXQgbWVudSB0YWIKCSAgIAoJICAgTm90ZSB0aGF0IGlmIHlvdSBwbGFjZSB5b3VyIG1vZHVsZSBpbiB0aGUgbWFpbiwKCSAgIHZpZXdzaXRlLCBvciBsb2dvdXQgc2VjdGlvbnMsIGl0IHdpbGwgc2hvdyB1cCBpbiB0aGUKCSAgIG1lbnVzLCBidXQgd2lsbCBub3QgYmUgdmlzaWJsZSBpbiBhbnkgdG9wLWxldmVsCgkgICBzZWN0aW9uIHBhZ2VzLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0QWRtaW5TZWN0aW9uKCkKCXsKCQlyZXR1cm4gJ2NvbnRlbnQnOwoJfQoKCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0QWRtaW5EZXNjcmlwdGlvbigpCgkgICBJZiB5b3VyIG1vZHVsZSBkb2VzIGhhdmUgYW4gQWRtaW4gUGFuZWwsIHlvdQoJICAgY2FuIGhhdmUgaXQgcmV0dXJuIGEgZGVzY3JpcHRpb24gc3RyaW5nIHRoYXQgZ2V0cyBzaG93bgoJICAgaW4gdGhlIEFkbWluIFNlY3Rpb24gcGFnZSB0aGF0IGNvbnRhaW5zIHRoZSBtb2R1bGUuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2FkbWluZGVzY3JpcHRpb24nKTsKCX0KCgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIFZpc2libGVUb0FkbWluVXNlcigpCgkgICBJZiB5b3VyIG1vZHVsZSBkb2VzIGhhdmUgYW4gQWRtaW4gUGFuZWwsIHlvdQoJICAgY2FuIGNvbnRyb2wgd2hldGhlciBvciBub3QgaXQncyBkaXNwbGF5ZWQgYnkgdGhlIGJvb2xlYW4KCSAgIHRoYXQgaXMgcmV0dXJuZWQgYnkgdGhpcyBtZXRob2QuIFRoaXMgaXMgcHJpbWFyaWx5IHVzZWQKCSAgIHRvIGhpZGUgbW9kdWxlcyBmcm9tIGFkbWlucyB3aG8gbGFjayBwZXJtaXNzaW9uIHRvIHVzZQoJICAgdGhlbS4KCSAgIAoJICAgVHlwaWNhbGx5LCB5b3UnbGwgdXNlIHNvbWUgcGVybWlzc2lvbiB0byBzZXQgdGhpcwoJICAgKGUuZy4sICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1NvbWUgUGVybWlzc2lvbicpOyApCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKQoJewogICAgICAgIHJldHVybiB0cnVlOwoJfQoJCgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIENoZWNrQWNjZXNzKCkKCSAgIFRoaXMgd3JhcHBlciBmdW5jdGlvbiB3aWxsIGNoZWNrIGFnYWluc3QgdGhlIHNwZWNpZmllZCBwZXJtaXNzaW9uLAoJICAgYW5kIGRpc3BsYXkgYW4gZXJyb3IgcGFnZSBpZiB0aGUgdXNlciBkb2Vzbid0IGhhdmUgYWRlcXVhdGUgcGVybWlzc2lvbnMuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBDaGVja0FjY2VzcygkcGVybSA9ICdNb2RpZnlHcm91RG9jc1ZpZXdlckphdmEnKQoJCXsKCQlyZXR1cm4gJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkcGVybSk7CgkJfQoJCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgRGlzcGxheUVycm9yUGFnZSgpCgkgICBUaGlzIGlzIGEgc2ltcGxlIGZ1bmN0aW9uIGZvciBnZW5lcmF0aW5nIGVycm9yIHBhZ2VzLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogICAgZnVuY3Rpb24gRGlzcGxheUVycm9yUGFnZSgkaWQsICYkcGFyYW1zLCAkcmV0dXJuX2lkLCAkbWVzc2FnZT0nJykKICAgIHsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Vycm9yJywgJHRoaXMtPkxhbmcoJ2Vycm9yJykpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ21lc3NhZ2UnLCAkbWVzc2FnZSk7CgogICAgICAgIC8vIERpc3BsYXkgdGhlIHBvcHVsYXRlZCB0ZW1wbGF0ZQogICAgICAgIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZXJyb3IudHBsJyk7CiAgICB9CgkKCgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldERlcGVuZGVuY2llcygpCgkgICBZb3VyIG1vZHVsZSBtYXkgbmVlZCBhbm90aGVyIG1vZHVsZSB0byBhbHJlYWR5IGJlIGluc3RhbGxlZAoJICAgYmVmb3JlIHlvdSBjYW4gaW5zdGFsbCBpdC4KCSAgIFRoaXMgbWV0aG9kIHJldHVybnMgYSBsaXN0IG9mIHRob3NlIGRlcGVuZGVuY2llcyBhbmQKCSAgIG1pbmltdW0gdmVyc2lvbiBudW1iZXJzIHRoYXQgdGhpcyBtb2R1bGUgcmVxdWlyZXMuCgkgICAKCSAgIEl0IHNob3VsZCByZXR1cm4gYW4gaGFzaCwgZWcuCgkgICByZXR1cm4gYXJyYXkoJ3NvbWVtb2R1bGUnPT4nMS4wJywgJ290aGVybW9kdWxlJz0+JzEuMScpOwoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkKCXsKCQlyZXR1cm4gYXJyYXkoKTsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgSW5zdGFsbFBvc3RNZXNzYWdlKCkKCSAgIEFmdGVyIGluc3RhbGxhdGlvbiwgdGhlcmUgbWF5IGJlIHRoaW5ncyB5b3Ugd2FudCB0bwoJICAgY29tbXVuaWNhdGUgdG8geW91ciBhZG1pbi4gVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEKCSAgIHN0cmluZyB3aGljaCB3aWxsIGJlIGRpc3BsYXllZC4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbCcpOwoJfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBVbmluc3RhbGxQb3N0TWVzc2FnZSgpCgkgICBBZnRlciByZW1vdmluZyBhIG1vZHVsZSwgdGhlcmUgbWF5IGJlIHRoaW5ncyB5b3Ugd2FudCB0bwoJICAgY29tbXVuaWNhdGUgdG8geW91ciBhZG1pbi4gVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEKCSAgIHN0cmluZyB3aGljaCB3aWxsIGJlIGRpc3BsYXllZC4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsKCX0KCgoKCgkvKioKCSAqIFVuaW5zdGFsbFByZU1lc3NhZ2UoKQoJICogVGhpcyBhbGxvd3MgeW91IHRvIGRpc3BsYXkgYSBtZXNzYWdlIGFsb25nIHdpdGggYSBZZXMvTm8gZGlhbG9nIGJveC4gSWYgdGhlIHVzZXIgcmVzcG9uZHMKCSAqIGluIHRoZSBhZmZpcm1hdGl2ZSB0byB5b3VyIG1lc3NhZ2UsIHRoZSB1bmluc3RhbGwgd2lsbCBwcm9jZWVkLiBJZiB0aGV5IHJlc3BvbmQgaW4gdGhlCgkgKiBuZWdhdGl2ZSwgdGhlIHVuaW5zdGFsbCB3aWxsIGJlIGNhbmNlbGVkLiBUaHVzLCB5b3VyIG1lc3NhZ2Ugc2hvdWxkIGJlIG9mIHRoZSBmb3JtCgkgKiAiQWxsIG1vZHVsZSBkYXRhIHdpbGwgYmUgZGVsZXRlZC4gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHVuaW5zdGFsbCB0aGlzIG1vZHVsZT8iCgkgKgoJICogSWYgeW91IGRvbid0IHdhbnQgdGhlIGRpYWxvZywgaGF2ZSB0aGlzIG1ldGhvZCByZXR1cm4gYSBGQUxTRSwgd2hpY2ggd2lsbCBjYXVzZSB0aGUKCSAqIG1vZHVsZSB0byB1bmluc3RhbGwgaW1tZWRpYXRlbHkgaWYgdGhlIHVzZXIgY2xpY2tzIHRoZSAidW5pbnN0YWxsIiBsaW5rLgoJICovCglmdW5jdGlvbiBVbmluc3RhbGxQcmVNZXNzYWdlKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ3JlYWxseV91bmluc3RhbGwnKTsKCX0KCQoJZnVuY3Rpb24gY291bnRzb21ldGhpbmcoJHRhYmxlbmFtZSwkd2hhdD0iaWQiLCR3aGVyZT1hcnJheSgpLCR3aGVyZXN0cmluZz1mYWxzZSwkd2hlcmV2YWx1ZXM9YXJyYXkoKSwkcGFyZW50PWZhbHNlKXsKCQkvLyByZXR1cm5zIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gYSB0YWJsZSBjb3JyZXNwb25kaW5nIHRvIGNyaXRlcmlhcwoJCWlmKCEkcGFyZW50ICYmIGlzc2V0KCR3aGVyZVsicGFyZW50Il0pKQl1bnNldCgkd2hlcmVbInBhcmVudCJdKTsKCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7CgkJaWYoJHdoZXJlc3RyaW5nKXsKCQkJJHdoZXJlc3RyaW5nID0gIiBXSEVSRSAiLiR3aGVyZXN0cmluZzsKCQl9ZWxzZXsKCQkJJHdoZXJlc3RyaW5nID0gIiI7CgkJCSR3aGVyZXZhbHVlcyA9IGFycmF5KCk7CgkJCWZvcmVhY2goJHdoZXJlIGFzICRrZXk9PiR2YWx1ZSl7CgkJCQlpZigka2V5ID09ICJwYXJlbnQiKXsKCQkJCQkkd2hlcmVzdHJpbmcgLj0gKCR3aGVyZXN0cmluZyA9PSAiIj8iIFdIRVJFICI6IiBBTkQgIikuIkEucGFyZW50PUIuaWQgQU5EIEIuYWxpYXM9PyI7CgkJCQl9ZWxzZXsKCQkJCQkkd2hlcmVzdHJpbmcgLj0gKCR3aGVyZXN0cmluZyA9PSAiIj8iIFdIRVJFICI6IiBBTkQgIikuIkEuIi4ka2V5LiI9PyI7CgkJCQl9CgkJCQkkd2hlcmV2YWx1ZXNbXSA9ICR2YWx1ZTsKCQkJfQoJCX0KCQkkcXVlcnkgPSAiU0VMRUNUIENPVU5UKEEuJHdoYXQpIG91cmNvdW50IEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV8iLiR0aGlzLT5HZXROYW1lKCkuIl8iLiR0YWJsZW5hbWUuIiBBIjsKCQlpZigkcGFyZW50ICYmIGlzc2V0KCR3aGF0WyJwYXJlbnQiXSkpCSRxdWVyeSAuPSAiLCAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlXyIuJHRoaXMtPkdldE5hbWUoKS4iXyIuJHBhcmVudC4iIEIiOwoJCSRxdWVyeSAuPSAkd2hlcmVzdHJpbmc7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwkd2hlcmV2YWx1ZXMpOwoJCWlmICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSl7CgkJCXJldHVybiAkcm93WyJvdXJjb3VudCJdOwoJCX1lbHNlewoJCQlyZXR1cm4gMDsKCQl9Cgl9CgoJZnVuY3Rpb24gZ2V0X2RvY3NfbGlzdCgkd2hlcmU9YXJyYXkoKSwkYWRtaW49ZmFsc2UsJGlkPSIiLCRyZXR1cm5pZD0iIiwkb3JkZXI9ZmFsc2UsJGxpbWl0PTAsJGN1c3RvbXdoZXJlPWZhbHNlLCRjdXN0b212YWx1ZXM9YXJyYXkoKSwkY3VzdG9tb3JkZXI9ZmFsc2UpewoJCWdsb2JhbCAkZ0NtczsKCQkkbG9hZF9uYmNoaWxkcmVuID0gJHRoaXMtPkdldFByZWZlcmVuY2UoImxvYWRfbmJjaGlsZHJlbiIsdHJ1ZSk7CgkJaWYoJGFkbWluKQkkYWRtaW50aGVtZSA9ICRnQ21zLT52YXJpYWJsZXNbImFkbWludGhlbWUiXTsKCQlpZighJG9yZGVyKQkkb3JkZXIgPSAiIjsKCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7CgkJJGZpZWxkcyA9IGFycmF5KCJ3aWR0aCIsImhlaWdodCIsInNlcnZlcl91cmwiLCJuYW1lIik7CgkJCgkJJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9ncm91cGRvY3Nfdmlld2VyX2phdmFfZG9jcyBBOyI7CgoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJCQkJCgkJJGl0ZW1saXN0ID0gYXJyYXkoKTsKCQkkaWRsaXN0ID0gIiI7CgkJd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKXsKCQkJJGl0ZW0gPSBuZXcgc3RkQ2xhc3MoKTsKCQkJJGl0ZW0tPl9fd2hhdCA9ICJkb2NzIjsKCQkJZm9yZWFjaCgkcm93IGFzICRrZXk9PiR2YWx1ZSl7CgkJCQkkaXRlbS0+JGtleSA9ICR2YWx1ZTsKCQkJfQoJCQkkaXRlbS0+d2lkdGggPSBzdHJpcHNsYXNoZXMoJGl0ZW0tPndpZHRoKTsKCQkJJGl0ZW0tPmhlaWdodCA9IHN0cmlwc2xhc2hlcygkaXRlbS0+aGVpZ2h0KTsKCQkJJGl0ZW0tPnNlcnZlcl91cmwgPSBzdHJpcHNsYXNoZXMoJGl0ZW0tPnNlcnZlcl91cmwpOwoJCQkkaXRlbS0+bmFtZSA9IHN0cmlwc2xhc2hlcygkaXRlbS0+bmFtZSk7CgkJCSRpdGVtLT5pbnNlcnRUYWcgPSAne2Ntc19tb2R1bGUgbW9kdWxlPSJncm91cGRvY3Nfdmlld2VyX2phdmEiIHdpZHRoPSInIC4gJGl0ZW0tPndpZHRoIC4gJyIgaGVpZ2h0PSInIC4gJGl0ZW0tPmhlaWdodCAuICciIHNlcnZlcl91cmw9IicgLiAkaXRlbS0+c2VydmVyX3VybCAuICcifSc7CgoJCQlhcnJheV9wdXNoKCRpdGVtbGlzdCwkaXRlbSk7CgkJfQoKCQlyZXR1cm4gJGl0ZW1saXN0OwoJfQoJCgkKCQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0dyb3VwRG9jcy5WaWV3ZXIgZm9yIEphdmEgdi4xLjguMCc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1Bvc3QgSW5zdGFsbCBNZXNzYWdlLic7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnUG9zdCBVbmluc3RhbGwgTWVzc2FnZSwgZS5nLiwgIkN1cnNlcyEgRm9pbGVkIEFnYWluISInOwokbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddID0gJ1JlYWxseT8gQXJlIHlvdSBzdXJlCnlvdSB3YW50IHRvIHVuc2luc3RhbGwgdGhpcyBmaW5lIG1vZHVsZT8nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgVW5pbnN0YWxsZWQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGxlZC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgdXBncmFkZWQgdG8gdmVyc2lvbiAlcy4nOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdHcm91cERvY3MgV29yZCwgRXhjZWwsIFBvd2VycG9pbnQsIFBERiBWaWV3ZXIgZm9yIEphdmEgbGV0cyB5b3UgZW1iZWQgc2V2ZXJhbCB0eXBlcyBvZiBmaWxlcyBpbnRvIHlvdXIgcGFnZS4nOwoKJGxhbmdbJ2Vycm9yJ10gPSAnRXJyb3IhJzsKJGxhbmRbJ2FkbWluX3RpdGxlJ10gPSAnR3JvdXBEb2NzLlZpZXdlciBmb3IgSmF2YSBBZG1pbiBQYW5lbCc7CiRsYW5nWydhZG1pbmRlc2NyaXB0aW9uJ10gPSAnVGhpcyBwbHVnaW4gaXMgZGV2ZWxvcGVkIGJhc2VkIG9uIHRoZSBHcm91cERvY3MgSFRNTDUgZG9jdW1lbnQgdmlld2VyIGZvciBKYXZhIGxpYnJhcnksIHdoaWNoIGVuYWJsZXMgeW91IHRvIGRpc3BsYXkgb3ZlciA0NSBkaWZmZXJlbnQgdHlwZXMgb2YgZG9jdW1lbnRzIHJpZ2h0IG9uIHlvdXIgQ01TTVMgd2Vic2l0ZS4nOwokbGFuZ1snYWNjZXNzZGVuaWVkJ10gPSAnQWNjZXNzIERlbmllZC4gUGxlYXNlIGNoZWNrIHlvdXIgcGVybWlzc2lvbnMuJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnUG9zdCBJbnN0YWxsIE1lc3NhZ2UsIChlLmcuLCBCZSBzdXJlIHRvIHNldCAiTW9kaWZ5R3JvdURvY3NWaWV3ZXJKYXZhIiBwZXJtaXNzaW9ucyB0byB1c2UgdGhpcyBtb2R1bGUhKSc7CgoKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4KPGxpPlZlcnNpb24gMS4wIC0gMTEgQXByaWwgMjAxNC4gSW5pdGlhbCBSZWxlYXNlLjwvbGk+CjwvdWw+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KPHA+R3JvdXBEb2NzIFdvcmQsIEV4Y2VsLCBQb3dlcnBvaW50LCBQREYgVmlld2VyIGZvciBKYXZhIGxldHMgeW91IGVtYmVkIHNldmVyYWwgdHlwZXMgb2YgZmlsZXMgaW50byB5b3VyIHBhZ2UuPC9wPgo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4KPHA+QWRkIGdyb3VwZG9jcy52aWV3ZXIgZm9yIGphdmEuIEZpbGwgYWxsIGZpZWxkcy4gWW91IGNvdWxkIGZpbmQgU2VydmVyIHVybCB3aGVyZSBpbnN0YWxsZWQgeW91ciBKYXZhIHZpZXdlci48L3A+CjxoMz5XaGF0IFBhcmFtZXRlcnMgRG9lcyBJdCBUYWtlPC9oMz4KPHA+V2lkdGggYW5kIEhlaWdodCBhcmUgZm9yIHNpemUgb2YgaWZyYW1lIG9uIHBhZ2UuPC9wPic7CgokbGFuZ1snYWRkX2RvYyddID0gJ0FkZCBEb2N1bWVudCc7CgokbGFuZ1snZ3JvdXBkb2NzX3dpZHRoJ10gPSAnV2lkdGgnOwokbGFuZ1snZ3JvdXBkb2NzX2hlaWdodCddID0gJ0hlaWdodCc7CiRsYW5nWydncm91cGRvY3Nfc2VydmVyX3VybCddID0gJ1NlcnZlciB1cmwnOwokbGFuZ1snZ3JvdXBkb2NzX25hbWUnXSA9ICdOYW1lJzsKCgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEluc3RhbGwoKQoJICAgV2hlbiB5b3VyIG1vZHVsZSBpcyBpbnN0YWxsZWQsIHlvdSBtYXkgbmVlZCB0byBkbyBzb21lCgkgICBzZXR1cC4gVHlwaWNhbCB0aGluZ3MgdGhhdCBoYXBwZW4gaGVyZSBhcmUgdGhlIGNyZWF0aW9uCgkgICBhbmQgcHJlcG9wdWxhdGlvbiBvZiBkYXRhYmFzZSB0YWJsZXMsIGRhdGFiYXNlIHNlcXVlbmNlcywKCSAgIHBlcm1pc3Npb25zLCBwcmVmZXJlbmNlcywgZXRjLgoJICAgCSAgIAoJICAgRm9yIGluZm9ybWF0aW9uIG9uIHRoZSBjcmVhdGlvbiBvZiBkYXRhYmFzZSB0YWJsZXMsCgkgICBjaGVjayBvdXQgdGhlIEFET0RCIERhdGEgRGljdGlvbmFyeSBwYWdlIGF0CgkgICBodHRwOi8vcGhwbGVucy5jb20vbGVucy9hZG9kYi9kb2NzLWRhdGFkaWN0Lmh0bQoJICAgCgkgICBUaGlzIGZ1bmN0aW9uIGNhbiByZXR1cm4gYSBzdHJpbmcgaW4gY2FzZSBvZiBhbnkgZXJyb3IsCgkgICBhbmQgQ01TIHdpbGwgbm90IGNvbnNpZGVyIHRoZSBtb2R1bGUgaW5zdGFsbGVkLgoJICAgU3VjY2Vzc2Z1bCBpbnN0YWxscyBzaG91bGQgcmV0dXJuIEZBTFNFIG9yIG5vdGhpbmcgYXQgYWxsLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKCgkJLy8gcGVybWlzc2lvbnMKCQkkdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignTW9kaWZ5IEdyb3VEb2NzVmlld2VySmF2YScsJ01vZGlmeSBHcm91RG9jc1ZpZXdlckphdmEnKTsKCgkJCgkJLy8gVHlwaWNhbCBEYXRhYmFzZSBJbml0aWFsaXphdGlvbgokZGIgPSYgJHRoaXMtPkdldERiKCk7CgokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgkJCi8vIG15c3FsLXNwZWNpZmljLCBidXQgaWdub3JlZCBieSBvdGhlciBkYXRhYmFzZQokdGFib3B0YXJyYXkgPSBhcnJheSgibXlzcWwiID0+ICJUWVBFPU15SVNBTSIpOwoJCQoKLy8gQ3JlYXRlcyB0aGUgcGxheWVyIHRhYmxlCiRmbGRzID0gIgoJc2VydmVyX3VybCBDKDY0KSwKCXdpZHRoIEMoMTApLAoJaGVpZ2h0IEMoMTApLAoJaWQgSSBLRVksCgluYW1lIEMoNjQpCgkiOwoKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2dyb3VwZG9jc192aWV3ZXJfamF2YV9kb2NzIiwgJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9ncm91cGRvY3Nfdmlld2VyX2phdmFfZG9jc19zZXEiKTsKCQkKCQkKPz4K]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIFVuaW5zdGFsbCgpCgkgICBTb21ldGltZXMsIGFuIGV4Y2VwdGlvbmFsbHkgdW5lbmxpZ2h0ZW5lZCBvciBpZ25vcmFudAoJICAgYWRtaW4gd2lsbCB3aXNoIHRvIHVuaW5zdGFsbCB5b3VyIG1vZHVsZS4gV2hpbGUgaXQKCSAgIHdvdWxkIGJlIGJlc3QgdG8gbGF5IGludG8gdGhlc2UgaWRpb3RzIHdpdGggYSBjbHVlc3RpY2ssCgkgICB3ZSB3aWxsIGRvIHRoZSBtYWduYW5pbW91cyB0aGluZyBhbmQgcmVtb3ZlIHRoZSBtb2R1bGUKCSAgIGFuZCBjbGVhbiB1cCB0aGUgZGF0YWJhc2UsIHBlcm1pc3Npb25zLCBhbmQgcHJlZmVyZW5jZXMKCSAgIHRoYXQgYXJlIHNwZWNpZmljIHRvIGl0LgoJICAgVGhpcyBpcyB0aGUgbWV0aG9kIHdoZXJlIHdlIGRvIHRoaXMuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoJCS8qCgkJLy8gVHlwaWNhbCBEYXRhYmFzZSBSZW1vdmFsCgkJJGRiID0mICRnQ21zLT5HZXREYigpOwoJCQoJCS8vIHJlbW92ZSB0aGUgZGF0YWJhc2UgdGFibGUKCQkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCAkZGIgKTsKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9ncm91cGRvY3Nfdmlld2VyIiApOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJLy8gcmVtb3ZlIHRoZSBzZXF1ZW5jZQoJCSRkYi0+RHJvcFNlcXVlbmNlKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9ncm91cGRvY3Nfdmlld2VyX3NlcSIgKTsKCQkqLwoJCQoJCS8vIHJlbW92ZSB0aGUgcGVybWlzc2lvbnMKCQkkdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignTW9kaWZ5R3JvdURvY3NWaWV3ZXJKYXZhJyk7CgoJCQoJCS8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZwoJCSR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygndW5pbnN0YWxsZWQnKSk7CgokZGIgPSYgJHRoaXMtPkdldERiKCk7CiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCgoKCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ3JvdXBkb2NzX3ZpZXdlcl9qYXZhX2RvY3MiKTsKCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCSRkYi0+RHJvcFNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2dyb3VwZG9jc192aWV3ZXJfamF2YV9kb2NzX3NlcSIpOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIFVwZ3JhZGUoKQoJICAgSWYgeW91ciBtb2R1bGUgdmVyc2lvbiBudW1iZXIgZG9lcyBub3QgbWF0Y2ggdGhlIHZlcnNpb24KCSAgIG51bWJlciBvZiB0aGUgaW5zdGFsbGVkIG1vZHVsZSwgdGhlIENNUyBBZG1pbiB3aWxsIGdpdmUKCSAgIHlvdSBhIGNoYW5jZSB0byB1cGdyYWRlIHRoZSBtb2R1bGUuIFRoaXMgaXMgdGhlIGZ1bmN0aW9uCgkgICB0aGF0IGFjdHVhbGx5IGhhbmRsZXMgdGhlIHVwZ3JhZGUuCgkgICBJZGVhbGx5LCB0aGlzIGZ1bmN0aW9uIHNob3VsZCBoYW5kbGUgdXBncmFkZXMgaW5jcmVtZW50YWxseSwKCSAgIHNvIHlvdSBjb3VsZCB1cGdyYWRlIGZyb20gdmVyc2lvbiAwLjAuMSB0byAxMC41Ljcgd2l0aAoJICAgYSBzaW5nbGUgY2FsbC4gRm9yIGEgZ3JlYXQgZXhhbXBsZSBvZiB0aGlzLCBzZWUgdGhlIE5ld3MKCSAgIG1vZHVsZSBpbiB0aGUgc3RhbmRhcmQgQ01TIGluc3RhbGwuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgkJJGN1cnJlbnRfdmVyc2lvbiA9ICRvbGR2ZXJzaW9uOwoJCXN3aXRjaCgkY3VycmVudF92ZXJzaW9uKQoJCXsKCQkJY2FzZSAiMS4wIjoKCQkJICAgICBicmVhazsKCQkJY2FzZSAiMS4xIjoKCQkJICAgICBicmVhazsKCQl9CgkJCgkJLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nCgkJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1cGdyYWRlZCcsJHRoaXMtPkdldFZlcnNpb24oKSkpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/adminpanel.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHA+eyRhZGRuZXd9PC9wPgp7aWYgY291bnQoJGl0ZW1saXN0KSA+IDB9CjxkaXYgc3R5bGU9ImNsZWFyOiByaWdodDsiPgo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPgo8dGhlYWQ+PHRyPgoJPHRoPklEPC90aD4KCTx0aD5OYW1lPC90aD4KCTx0aD5TZXJ2ZXIgdXJsPC90aD4KCTx0aD5TaG9ydGNvZGU8L3RoPgo8L3RyPjwvdGhlYWQ+Cjx0Ym9keT4KCntjeWNsZSB2YWx1ZXM9InJvdzIscm93MSIgYXNzaWduPXJvd2NsYXNzIHJlc2V0PXRydWV9Cgl7Zm9yZWFjaCBmcm9tPSRpdGVtbGlzdCBpdGVtPW9uZWl0ZW19CntjeWNsZSB2YWx1ZXM9InJvdzIscm93MSIgYXNzaWduPXJvd2NsYXNzfQoJPHRyIGNsYXNzPSJ7JHJvd2NsYXNzfSIgIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRyb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRyb3djbGFzc30nOyI+CgkJPHRkPnskb25laXRlbS0+aWR9PC90ZD4KCQk8dGQ+eyRvbmVpdGVtLT5uYW1lfTwvdGQ+CgkJPHRkPnskb25laXRlbS0+c2V2ZXJfdXJsfTwvdGQ+CgkJPHRkPnskb25laXRlbS0+aW5zZXJ0VGFnfTwvdGQ+Cgk8L3RyPgoJey9mb3JlYWNofQoKCgo8L3Rib2R5Pgo8L3RhYmxlPgo8L2Rpdj4KPHA+eyRhZGRuZXd9PC9wPgp7L2lmfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/display.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGhlYWQ+DQoNCiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCINCiAgICAgICAgICAgIHNyYz0ie3RyaW0oJHBhcmFtc1snc2VydmVyX3VybCddKX0vR2V0SnNIYW5kbGVyP3NjcmlwdD1saWJzL2pxdWVyeS0xLjkuMS5taW4uanMiPjwvc2NyaXB0Pg0KDQogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiDQogICAgICAgICAgICBzcmM9Int0cmltKCRwYXJhbXNbJ3NlcnZlcl91cmwnXSl9L0dldEpzSGFuZGxlcj9zY3JpcHQ9bGlicy9qcXVlcnktdWktMS4xMC4zLm1pbi5qcyI+PC9zY3JpcHQ+DQoNCiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCINCiAgICAgICAgICAgIHNyYz0ie3RyaW0oJHBhcmFtc1snc2VydmVyX3VybCddKX0vR2V0SnNIYW5kbGVyP3NjcmlwdD1saWJzL2tub2Nrb3V0LTIuMi4xLmpzIj48L3NjcmlwdD4NCg0KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Int0cmltKCRwYXJhbXNbJ3NlcnZlcl91cmwnXSl9L0dldEpzSGFuZGxlcj9zY3JpcHQ9bGlicy90dXJuLm1pbi5qcyI+PC9zY3JpcHQ+DQoNCiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCINCiAgICAgICAgICAgIHNyYz0ie3RyaW0oJHBhcmFtc1snc2VydmVyX3VybCddKX0vR2V0SnNIYW5kbGVyP3NjcmlwdD1saWJzL21vZGVybml6ci4yLjYuMi5UcmFuc2Zvcm0yZC5taW4uanMiPjwvc2NyaXB0Pg0KDQogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KICAgICAgICBpZiAoIXdpbmRvdy5Nb2Rlcm5penIuY3NzdHJhbnNmb3Jtcykgew0KICAgICAgICAgICAgdmFyIHNjcmlwdExvYWQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsNCiAgICAgICAgICAgIHNjcmlwdExvYWQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgInRleHQvamF2YXNjcmlwdCIpOw0KICAgICAgICAgICAgc2NyaXB0TG9hZC5zZXRBdHRyaWJ1dGUoInNyYyIsICJ7dHJpbSgkcGFyYW1zWydzZXJ2ZXJfdXJsJ10pfS9HZXRKc0hhbmRsZXI/c2NyaXB0PWxpYnMvdHVybi5odG1sNC5taW4uanMiKTsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoc2NyaXB0TG9hZCk7DQogICAgICAgIH0NCiAgICA8L3NjcmlwdD4NCg0KDQogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiDQogICAgICAgICAgICBzcmM9Int0cmltKCRwYXJhbXNbJ3NlcnZlcl91cmwnXSl9L0dldEpzSGFuZGxlcj9zY3JpcHQ9aW5zdGFsbGFibGVWaWV3ZXIubWluLmpzIj48L3NjcmlwdD4NCg0KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4kLnVpLmdyb3VwZG9jc1ZpZXdlci5wcm90b3R5cGUuYXBwbGljYXRpb25QYXRoID0gJ3t0cmltKCRwYXJhbXNbJ3NlcnZlcl91cmwnXSl9Lyc7PC9zY3JpcHQ+DQoNCiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+JC51aS5ncm91cGRvY3NWaWV3ZXIucHJvdG90eXBlLnVzZUh0dHBIYW5kbGVycyA9IHRydWU7PC9zY3JpcHQ+DQoNCiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCINCiAgICAgICAgICAgIHNyYz0ie3RyaW0oJHBhcmFtc1snc2VydmVyX3VybCddKX0vR2V0SnNIYW5kbGVyP3NjcmlwdD1Hcm91cGRvY3NWaWV3ZXIuYWxsLm1pbi5qcyI+PC9zY3JpcHQ+DQoNCiAgICB7Y21zX3N0eWxlc2hlZXR9DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0ie3RyaW0oJHBhcmFtc1snc2VydmVyX3VybCddKX0vR2V0Q3NzSGFuZGxlcj9zY3JpcHQ9Ym9vdHN0cmFwLmNzcyI+DQoNCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIg0KICAgICAgICAgIGhyZWY9Int0cmltKCRwYXJhbXNbJ3NlcnZlcl91cmwnXSl9L0dldENzc0hhbmRsZXI/c2NyaXB0PUdyb3VwZG9jc1ZpZXdlci5hbGwubWluLmNzcyI+DQoNCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIg0KICAgICAgICAgIGhyZWY9Int0cmltKCRwYXJhbXNbJ3NlcnZlcl91cmwnXSl9L0dldENzc0hhbmRsZXI/c2NyaXB0PWpxdWVyeS11aS0xLjEwLjMuZGlhbG9nLm1pbi5jc3MiPg0KPC9oZWFkPg0KPGJvZHk+DQo8aDE+R3JvdXBEb2NzLlZpZXdlciBmb3IgSmF2YTwvaDE+DQo8ZGl2IGlkPSJjb250ZW50Ij4NCjxkaXYgaWQ9InRlc3QiDQogICAgIHN0eWxlPSJ3aWR0aDp7dHJpbSgkcGFyYW1zWyd3aWR0aCddKX1weDtoZWlnaHQ6e3RyaW0oJHBhcmFtc1snaGVpZ2h0J10pfXB4O292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW4tYm90dG9tOjIwcHg7YmFja2dyb3VuZC1jb2xvcjpncmF5O2JvcmRlcjoxcHggc29saWQgI2NjYzsiPjwvZGl2Pg0KPC9kaXY+DQo8c2NyaXB0Pg0KICAgICQoZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgbG9jYWxpemVkU3RyaW5ncyA9IG51bGw7DQogICAgICAgIHZhciB0aHVtYnNJbWFnZUJhc2U2NEVuY29kZWQgPSBudWxsOw0KICAgICAgICAkKCcjdGVzdCcpLmdyb3VwZG9jc1ZpZXdlcih7IGZpbGVQYXRoOiAnJywNCiAgICAgICAgICAgIGRvY1ZpZXdlcklkOiAnZG9jX3ZpZXdlcjEnLA0KICAgICAgICAgICAgcXVhbGl0eTogMTAwLA0KICAgICAgICAgICAgc2hvd1RodW1ibmFpbHM6IHRydWUsDQogICAgICAgICAgICBvcGVuVGh1bWJuYWlsczogdHJ1ZSwNCiAgICAgICAgICAgIGluaXRpYWxab29tOiAxMDAsDQogICAgICAgICAgICB6b29tVG9GaXRXaWR0aDogdHJ1ZSwNCiAgICAgICAgICAgIHpvb21Ub0ZpdEhlaWdodDogZmFsc2UsDQogICAgICAgICAgICB3aWR0aDogMTAwMCwNCiAgICAgICAgICAgIGhlaWdodDogNTAwLA0KICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnJywNCiAgICAgICAgICAgIHNob3dGb2xkZXJCcm93c2VyOiB0cnVlLA0KICAgICAgICAgICAgc2hvd1ByaW50OiB0cnVlLA0KICAgICAgICAgICAgc2hvd0Rvd25sb2FkOiB0cnVlLA0KICAgICAgICAgICAgc2hvd1pvb206IHRydWUsDQogICAgICAgICAgICBzaG93UGFnaW5nOiB0cnVlLA0KICAgICAgICAgICAgc2hvd1ZpZXdlclN0eWxlQ29udHJvbDogdHJ1ZSwNCiAgICAgICAgICAgIHNob3dTZWFyY2g6IHRydWUsDQogICAgICAgICAgICBwcmVsb2FkUGFnZXNDb3VudDogMCwNCiAgICAgICAgICAgIHZpZXdlclN0eWxlOiAxLA0KICAgICAgICAgICAgc3VwcG9ydFRleHRTZWxlY3Rpb246IHRydWUsDQogICAgICAgICAgICB1c2VQZGZQcmludGluZzogZmFsc2UsDQogICAgICAgICAgICBsb2NhbGl6ZWRTdHJpbmdzOiBsb2NhbGl6ZWRTdHJpbmdzLA0KICAgICAgICAgICAgdGh1bWJzSW1hZ2VCYXNlNjRFbmNvZGVkOiB0aHVtYnNJbWFnZUJhc2U2NEVuY29kZWQsDQogICAgICAgICAgICB0b29sYmFyQnV0dG9uc0JveFNoYWRvd1N0eWxlOiAnJywNCiAgICAgICAgICAgIHRvb2xiYXJCdXR0b25zQm94U2hhZG93SG92ZXJTdHlsZTogJycsDQogICAgICAgICAgICB0aHVtYm5haWxzQ29udGFpbmVyQmFja2dyb3VuZENvbG9yOiAnJywNCiAgICAgICAgICAgIHRodW1ibmFpbHNDb250YWluZXJCb3JkZXJSaWdodENvbG9yOiAnJywNCiAgICAgICAgICAgIHRvb2xiYXJCb3JkZXJCb3R0b21Db2xvcjogJycsDQogICAgICAgICAgICB0b29sYmFySW5wdXRGaWVsZEJvcmRlckNvbG9yOiAnJywNCiAgICAgICAgICAgIHRvb2xiYXJCdXR0b25Cb3JkZXJDb2xvcjogJycsDQogICAgICAgICAgICB0b29sYmFyQnV0dG9uQm9yZGVySG92ZXJDb2xvcjogJycsDQogICAgICAgICAgICB0aHVtYm5haWxzQ29udGFpbmVyV2lkdGg6IDAsDQogICAgICAgICAgICBqcXVlcnlGaWxlRG93bmxvYWRDb29raWVOYW1lOiAnanF1ZXJ5RmlsZURvd25sb2FkSlNGb3JHRCcsDQogICAgICAgICAgICBzaG93RG93bmxvYWRFcnJvcnNJblBvcHVwOiB0cnVlLA0KICAgICAgICAgICAgc2hvd0ltYWdlV2lkdGg6IGZhbHNlLA0KICAgICAgICAgICAgc2hvd0hlYWRlcjogdHJ1ZSwNCiAgICAgICAgICAgIG1pbmltdW1JbWFnZVdpZHRoOiAwLA0KICAgICAgICAgICAgZW5hYmxlU3RhbmRhcmRFcnJvckhhbmRsaW5nOiB0cnVlDQoNCiAgICAgICAgfSk7DQogICAgfSk7DQo8L3NjcmlwdD4NCjwvYm9keT4=]]></data>
	</file>
	<file>
	  <filename>/templates/editA.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJyLz48YnIvPg0KDQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHdpZHRoX2xhYmVsfSA6PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHdpZHRoX2lucHV0fTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskaGVpZ2h0X2xhYmVsfSA6PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGhlaWdodF9pbnB1dH08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHNlcnZlcl91cmxfbGFiZWx9IDo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc2VydmVyX3VybF9pbnB1dH08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG5hbWVfbGFiZWx9IDo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskbmFtZV9pbnB1dH08L3A+DQoJPC9kaXY+DQoJDQo8YnIvPg0KPHA+eyRzdWJtaXR9IHskYXBwbHl9IHskY2FuY2VsfTwvcD4NCg==]]></data>
	</file>
	<file>
	  <filename>/templates/error.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfZXJyb3J9PC9oMz4Ke2lmICRtZXNzYWdlIT0nJ308cD57JG1lc3NhZ2V9PC9wPnsvaWZ9]]></data>
	</file>
</module>
