<?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_comparison</name>
	<version>1.0</version>
  <mincmsversion>1.11.7</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoZSBHcm91cERvY3MgQ29tcGFyaXNvbiBwbHVnaW4gZm9yIENNU01TIGFsbG93cyB5b3UgdG8gZW1iZWQgYW5kIGNvbXBhcmUgdHdvIFdvcmQgZG9jdW1lbnRzLCBhcyB3ZWxsIGFzIFBERiBmaWxlcyBhbmQgRXhjZWwgc3ByZWFkc2hlZXRzLCBmcm9tIHdpdGhpbiB5b3VyIHdlYnNpdGUuPC9wPgo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4KPHA+QWRkIG5ldyBkb2N1bWVudC4gRmlsbCBhbGwgZmllbGRzLiBZb3UgY291bGQgZmluZCBHdWlkIEVtYmVkIGFuZCBHdWlkIFJlZGxpbmUgd2hlbiB2aWV3aW5nIGRvY3VtZW50IGZyb20geW91ciBHcm91cERvY3MgYWNjb3VudC48L3A+CjxoMz5XaGF0IFBhcmFtZXRlcnMgRG9lcyBJdCBUYWtlPC9oMz4KPHA+V2lkdGggYW5kIEhlaWdodCBhcmUgZm9yIHNpemUgb2YgaWZyYW1lIG9uIHBhZ2UuPC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48dWw+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGFuZz0iZW5fVVMiIC0gUGFyYW1ldGVyIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGF0IGxhbmd1YWdlIHRvIHVzZSBmb3IgZGlzcGxheSBvbiB0aGUgZnJvbnRlbmQuIE5vdCBhbGwgbW9kdWxlcyBzdXBwb3J0IG9yIG5lZWQgdGhpcy48L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBHcm91cERvY3MgVGVhbSAmbHQ7c3VwcG9ydEBncm91cGRvY3MuY29tJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDEuMDxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjx1bD4KPGxpPlZlcnNpb24gMS4wIC0gNCBPY3RvYmVyIDIwMTIuIEluaXRpYWwgUmVsZWFzZS48L2xpPgo8L3VsPjxiciAvPg==]]></about>
	<description><![CDATA[Admin Description]]></description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgovKiAtPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LQoKICAgQ29kZSBmb3IgZ3JvdXBkb2NzX2NvbXBhcmlzb24gImRlZmF1bHQiIGFjdGlvbgoKICAgLT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS0KICAgCiAgIFR5cGljYWxseSwgdGhpcyB3aWxsIGRpc3BsYXkgc29tZXRoaW5nIGZyb20gYSB0ZW1wbGF0ZQogICBvciBkbyBzb21lIG90aGVyIHRhc2suCiAgIAoqLwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3BhcmFtcycsJHBhcmFtcyk7ICMg0YLQtdCzINC00LvRjyDQt9Cw0LrRgNGL0YLQuNGPINGE0L7RgNC80YsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZGlzcGxheS50cGwnKTsgIyDQstGL0LfQvtCyINGI0LDQsdC70L7QvdCwIAo/Pgo=]]></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+UmVkaXJlY3QoJGlkLCAiZGVmYXVsdGFkbWluIiwgJHJldHVybmlkLCAkbmV3cGFyYW1zKTsNCn0NCg0KJGRiID0mICR0aGlzLT5HZXREYigpOw0KDQovLyBDSEVDSyBJRiBUSEUgRk9STSBJUyBCRUlORyBTVUJNSVRURUQgOg0KLy8gKHdlIG11c3QgZGV0ZWN0IGFsbCBraW5kcyBvZiBzdWJtaXQgYnV0dG9ucywgaW5jbHVkaW5nIGZpbGVzLCBzaW5jZSBpbmZvcm1hdGlvbiBtdXN0IGJlIHNhdmVkIGJlZm9yZSB3ZSBnbyB0byBmaWxlIHN1Ym1pc3Npb24pDQppZiAoaXNzZXQoJHBhcmFtc1sic3VibWl0Il0pIHx8IA0KCWlzc2V0KCRwYXJhbXNbImFwcGx5Il0pIA0KCSkNCnsNCgkNCgkNCglkZWJ1Z19idWZmZXIoIkVkaXQgRm9ybSBoYXMgYmVlbiBzdWJtaXR0ZWQiLl9fTElORV9fKTsNCg0KCS8vIFJFVFJJRVZJTkcgVEhFIEZPUk0gVkFMVUVTIChhbmQgZXNjYXBpbmcgaXQsIGlmIG5lZWRlZCkNCglpZighaXNzZXQoJGl0ZW0pKSAkaXRlbSA9IG5ldyBzdGRDbGFzcygpOw0KCQ0KCSRpdGVtLT53aWR0aCA9ICRwYXJhbXNbIndpZHRoIl07DQoJJGl0ZW0tPmhlaWdodCA9ICRwYXJhbXNbImhlaWdodCJdOw0KCSRpdGVtLT5ndWlkX2VtYmVkID0gJHBhcmFtc1siZ3VpZF9lbWJlZCJdOw0KCSRpdGVtLT5ndWlkX3JlZGxpbmUgPSAkcGFyYW1zWyJndWlkX3JlZGxpbmUiXTsNCgkkaXRlbS0+bmFtZSA9ICRwYXJhbXNbIm5hbWUiXTsNCgkNCgkNCgkvLyBGSUVMRFMgVE8gVVBEQVRFDQoJJHF1ZXJ5ID0gKGlzc2V0KCRpdGVtLT5pZCk/IlVQREFURSAiOiJJTlNFUlQgSU5UTyAiKS5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9ncm91cGRvY3NfY29tcGFyaXNvbl9kb2NzIFNFVCANCgkJCXdpZHRoPT8sDQoJCQloZWlnaHQ9PywNCgkJCWd1aWRfZW1iZWQ9PywNCgkJCWd1aWRfcmVkbGluZT0/LA0KCQkJbmFtZT0/IjsNCgkJCQ0KCS8vIFZBTFVFUw0KCSR2YWx1ZXMgPSBhcnJheShhZGRzbGFzaGVzKCRpdGVtLT53aWR0aCksDQoJCQlhZGRzbGFzaGVzKCRpdGVtLT5oZWlnaHQpLA0KCQkJYWRkc2xhc2hlcygkaXRlbS0+Z3VpZF9lbWJlZCksDQoJCQlhZGRzbGFzaGVzKCRpdGVtLT5ndWlkX3JlZGxpbmUpLA0KCQkJYWRkc2xhc2hlcygkaXRlbS0+bmFtZSksDQoJCQkpOw0KDQoJCWlmKGlzc2V0KCRpdGVtLT5pZCkpew0KCQkJJHF1ZXJ5IC49ICIgV0hFUkUgaWQ9PzsiOw0KCQkJYXJyYXlfcHVzaCgkdmFsdWVzLCRpdGVtLT5pZCk7DQoJCX0gZWxzZSB7DQoJCQkvLyBORVcgSVRFTQ0KCQkJDQoJCQkvLyBnZXQgYSBuZXcgaWQgZnJvbSB0aGUgc2VxdWVuY2UgdGFibGUNCgkJCSRpdGVtLT5pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ3JvdXBkb2NzX2NvbXBhcmlzb25fZG9jc19zZXEiKTsNCgkJDQoJCQkkcXVlcnkgLj0gIiwgaWQ9Ii4kaXRlbS0+aWQ7DQoNCgkJfQ0KCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LCAkdmFsdWVzKTsJDQoJCQ0KCQkkcmVkaXJlY3QgPSB0cnVlOw0KCQkvL2lmKG15c3FsX2FmZmVjdGVkX3Jvd3MoKSl7CS8vIG15c3FsLW9ubHkNCgkJaWYoJGRiLT5BZmZlY3RlZF9Sb3dzKCkpew0KCQkJDQoJCX1lbHNlaWYobXlzcWxfZXJyb3IoKSl7DQoJCQkvLyBkbyBub3QgcmVkaXJlY3QgOg0KCQkJJHJlZGlyZWN0ID0gZmFsc2U7DQoJCQllY2hvICR0aGlzLT5TaG93RXJyb3JzKG15c3FsX2Vycm9yKCkpOw0KCQl9DQoNCgkJLy8gUkVESVJFQ1RJTkcuLi4NCgkJCWlmKCRyZWRpcmVjdCA9PSBmYWxzZSl7DQoJCQl9ZWxzZWlmKGlzc2V0KCRwYXJhbXNbImFwcGx5Il0pKXsNCgkJCQllY2hvICR0aGlzLT5TaG93TWVzc2FnZSgkdGhpcy0+TGFuZygibWVzc2FnZV9tb2RpZmllZCIpKTsNCgkJCX1lbHNlew0KCQkJCSRwYXJhbXMgPSBhcnJheSgibW9kdWxlX21lc3NhZ2UiID0+ICR0aGlzLT5MYW5nKCJtZXNzYWdlX21vZGlmaWVkIikpOw0KCQkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICJkZWZhdWx0YWRtaW4iLCAkcmV0dXJuaWQsICRwYXJhbXMpOwkNCgkJCX0JDQoJDQoJLy8gRU5EIE9GIEZPUk0gU1VCTUlTU0lPTg0KfQ0KDQoNCg0KLyogIyMgUFJFUEFSSU5HIFNNQVJUWSBFTEVNRU5UUw0KQ3JlYXRlSW5wdXRUZXh0IDogKGlkLG5hbWUsdmFsdWUsc2l6ZSxtYXhsZW5ndGgpDQpDcmVhdGVUZXh0QXJlYSA6ICh3eXNpd3lnLGlkLHRleHQsbmFtZSkNCkNyZWF0ZUlucHV0U2VsZWN0TGlzdCA6IChpZCxuYW1lLGl0ZW1zLHNlbGVjdGVkaXRlbXMsc2l6ZSkNCkNyZWF0ZUlucHV0RHJvcGRvd24gOiAoaWQsbmFtZSxpdGVtcyxzaW5kZXgsc3ZhbHVlKQ0KKi8NCg0KDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oIndpZHRoX2xhYmVsIiwgJHRoaXMtPkxhbmcoImdyb3VwZG9jc193aWR0aCIpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigid2lkdGhfaW5wdXQiLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwid2lkdGgiLGlzc2V0KCRpdGVtKT8kaXRlbS0+d2lkdGg6IiIsMzAsMTApKTsNCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJoZWlnaHRfbGFiZWwiLCAkdGhpcy0+TGFuZygiZ3JvdXBkb2NzX2hlaWdodCIpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigiaGVpZ2h0X2lucHV0IiwgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsImhlaWdodCIsaXNzZXQoJGl0ZW0pPyRpdGVtLT5oZWlnaHQ6IiIsMzAsMTApKTsNCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJndWlkX2VtYmVkX2xhYmVsIiwgJHRoaXMtPkxhbmcoImdyb3VwZG9jc19ndWlkX2VtYmVkIikpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJndWlkX2VtYmVkX2lucHV0IiwgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsImd1aWRfZW1iZWQiLGlzc2V0KCRpdGVtKT8kaXRlbS0+Z3VpZF9lbWJlZDoiIiw3NSwyMDAwKSk7DQoNCiR0aGlzLT5zbWFydHktPmFzc2lnbigiZ3VpZF9yZWRsaW5lX2xhYmVsIiwgJHRoaXMtPkxhbmcoImdyb3VwZG9jc19ndWlkX3JlZGxpbmUiKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oImd1aWRfcmVkbGluZV9pbnB1dCIsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCJndWlkX3JlZGxpbmUiLGlzc2V0KCRpdGVtKT8kaXRlbS0+Z3VpZF9yZWRsaW5lOiIiLDc1LDIwMDApKTsNCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJuYW1lX2xhYmVsIiwgJHRoaXMtPkxhbmcoImdyb3VwZG9jc19uYW1lIikpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJuYW1lX2lucHV0IiwgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsIm5hbWUiLGlzc2V0KCRpdGVtKT8kaXRlbS0+Z3VpZDoiIiw3NSwyMDAwKSk7DQoNCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJzdWJtaXQiLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAic3VibWl0IiwgbGFuZygic3VibWl0IikpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigiYXBwbHkiLCAoaXNzZXQoJGl0ZW0pICYmIGlzc2V0KCRpdGVtLT5pZCkpPyR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICJhcHBseSIsIGxhbmcoImFwcGx5IikpOiIiKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbigiY2FuY2VsIiwgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgImNhbmNlbCIsIGxhbmcoImNhbmNlbCIpKSk7DQoNCg0KLy8gRElTUExBWUlORw0KaWYoaXNzZXQoJGl0ZW0pICYmIGlzc2V0KCRpdGVtLT5pZCkpew0KCQllY2hvICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAiZWRpdEEiLCAkcmV0dXJuaWQpOw0KCQllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoImVkaXRBLnRwbCIpOw0KCQllY2hvICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICJBaWQiLCAkaXRlbS0+aWQpOw0KCQlpZihpc3NldCgkaXRlbSkgJiYgaXNzZXQoJGl0ZW0tPnBhcmVudCkpIGVjaG8gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgIm9sZHBhcmVudCIsICRpdGVtLT5wYXJlbnQpOw0KCQllY2hvICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICJBaXRlbV9vcmRlciIsICRpdGVtLT5pdGVtX29yZGVyKTsNCgkJZWNobyAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOw0KCQ0KDQp9ZWxzZXsNCgllY2hvICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAiZWRpdEEiLCAkcmV0dXJuaWQpOw0KCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgiZWRpdEEudHBsIik7DQoJZWNobyAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOw0KfQ0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/groupdocs_comparison.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IGdyb3VwZG9jc19jb21wYXJpc29uIC0gV2hldGhlciB5b3UgbmVlZCB0byBjb21wYXJlIHR3byB3b3JkIGRvY3VtZW50cywgZXhjZWwgc3ByZWFkc2hlZXRzIG9yIFBERiBmaWxlcyDigJMgR3JvdXBEb2NzIENvbXBhcmlzb24gaXMgaGVyZSB0byBoZWxwIHlvdS4gVXNlIGl0IHRvIGNvbXBhcmUgZG9jdW1lbnRzIG9ubGluZSwgZnJvbSB3aXRoaW4geW91ciB3ZWIgYnJvd3Nlci4KIyBWZXJzaW9uOiAxLjAsIEdyb3VwRG9jcyBUZWFtCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMTIgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIyBUaGlzIGZpbGUgb3JpZ2luYWxseSBjcmVhdGVkIGJ5IE1vZHVsZU1ha2VyIG1vZHVsZSwgdmVyc2lvbiAwLjMuMgojIENvcHlyaWdodCAoYykgMjAxMiBieSBTYW11ZWwgR29sZHN0ZWluIChzamdAY21zbWFkZXNpbXBsZS5vcmcpIAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgRm9yIEhlbHAgYnVpbGRpbmcgbW9kdWxlczoKIyAtIFJlYWQgdGhlIERvY3VtZW50YXRpb24gYXMgaXQgYmVjb21lcyBhdmFpbGFibGUgYXQKIyAgIGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvCiMgLSBDaGVjayBvdXQgdGhlIFNrZWxldG9uIE1vZHVsZSBmb3IgYSBjb21tZW50ZWQgZXhhbXBsZQojIC0gTG9vayBhdCBvdGhlciBtb2R1bGVzLCBhbmQgbGVhcm4gZnJvbSB0aGUgc291cmNlCiMgLSBDaGVjayBvdXQgdGhlIGZvcnVtcyBhdCBodHRwOi8vZm9ydW1zLmNtc21hZGVzaW1wbGUub3JnCiMgLSBDaGF0IHdpdGggZGV2ZWxvcGVycyBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpjbGFzcyBncm91cGRvY3NfY29tcGFyaXNvbiBleHRlbmRzIENNU01vZHVsZQp7CgoJZnVuY3Rpb24gR2V0TmFtZSgpCgl7CgkJcmV0dXJuICdncm91cGRvY3NfY29tcGFyaXNvbic7Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldEZyaWVuZGx5TmFtZSgpCgkgICBUaGlzIGNhbiByZXR1cm4gYW55IHN0cmluZywgcHJlZmVyYWJseSBhIGxvY2FsaXplZCBuYW1lCgkgICBvZiB0aGUgbW9kdWxlLiBUaGlzIGlzIHRoZSBuYW1lIHRoYXQncyBzaG93biBpbiB0aGUKCSAgIEFkbWluIE1lbnVzIGFuZCBzZWN0aW9uIHBhZ2VzIChpZiB0aGUgbW9kdWxlIGhhcyBhbiBhZG1pbgoJICAgY29tcG9uZW50KS4KCSAgIAoJICAgU2VlIHRoZSBub3RlIG9uIGxvY2FsaXphdGlvbiBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTsKCX0KCgkKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRWZXJzaW9uKCkKCSAgIFRoaXMgY2FuIHJldHVybiBhbnkgc3RyaW5nLCBwcmVmZXJhYmx5IGEgbnVtYmVyIG9yCgkgICBzb21ldGhpbmcgdGhhdCBtYWtlcyBzZW5zZSBmb3IgZGVzaWduYXRpbmcgYSB2ZXJzaW9uLgoJICAgVGhlIENNUyB3aWxsIHVzZSB0aGlzIHRvIGlkZW50aWZ5IHdoZXRoZXIgb3Igbm90CgkgICB0aGUgaW5zdGFsbGVkIHZlcnNpb24gb2YgdGhlIG1vZHVsZSBpcyBjdXJyZW50LCBhbmQKCSAgIHRoZSBtb2R1bGUgd2lsbCB1c2UgaXQgdG8gZmlndXJlIG91dCBob3cgdG8gdXBncmFkZQoJICAgaXRzZWxmIGlmIHJlcXVlc3RlZC4JICAgCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBHZXRWZXJzaW9uKCkKCXsKCQlyZXR1cm4gJzEuMCc7Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldEhlbHAoKQoJICAgVGhpcyByZXR1cm5zIEhUTUwgaW5mb3JtYXRpb24gb24gdGhlIG1vZHVsZS4KCSAgIFR5cGljYWxseSwgeW91J2xsIHdhbnQgdG8gaW5jbHVkZSBpbmZvcm1hdGlvbiBvbiBob3cgdG8KCSAgIHVzZSB0aGUgbW9kdWxlLgoJICAgCgkgICBTZWUgdGhlIG5vdGUgb24gbG9jYWxpemF0aW9uIGF0IHRoZSB0b3Agb2YgdGhpcyBmaWxlLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0SGVscCgpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdoZWxwJyk7Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldEF1dGhvcigpCgkgICBUaGlzIHJldHVybnMgYSBzdHJpbmcgdGhhdCBpcyBwcmVzZW50ZWQgaW4gdGhlIE1vZHVsZQoJICAgQWRtaW4gaWYgeW91IGNsaWNrIG9uIHRoZSAiQWJvdXQiIGxpbmsuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBHZXRBdXRob3IoKQoJewoJCXJldHVybiAnR3JvdXBEb2NzIFRlYW0nOwoJfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRBdXRob3JFbWFpbCgpCgkgICBUaGlzIHJldHVybnMgYSBzdHJpbmcgdGhhdCBpcyBwcmVzZW50ZWQgaW4gdGhlIE1vZHVsZQoJICAgQWRtaW4gaWYgeW91IGNsaWNrIG9uIHRoZSAiQWJvdXQiIGxpbmsuIEl0IGhlbHBzIHVzZXJzCgkgICBvZiB5b3VyIG1vZHVsZSBnZXQgaW4gdG91Y2ggd2l0aCB5b3UgdG8gc2VuZCBidWcgcmVwb3J0cywKCSAgIHF1ZXN0aW9ucywgY2FzZXMgb2YgYmVlciwgYW5kL29yIGxhcmdlIHN1bXMgb2YgbW9uZXkuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpCgl7CgkJcmV0dXJuICdzdXBwb3J0QGdyb3VwZG9jcy5jb20nOwoJfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRDaGFuZ2VMb2coKQoJICAgVGhpcyByZXR1cm5zIGEgc3RyaW5nIHRoYXQgaXMgcHJlc2VudGVkIGluIHRoZSBtb2R1bGUKCSAgIEFkbWluIGlmIHlvdSBjbGljayBvbiB0aGUgQWJvdXQgbGluay4gSXQgaGVscHMgdXNlcnMKCSAgIGZpZ3VyZSBvdXQgd2hhdCdzIGNoYW5nZWQgYmV0d2VlbiByZWxlYXNlcy4KCSAgIFNlZSB0aGUgbm90ZSBvbiBsb2NhbGl6YXRpb24gYXQgdGhlIHRvcCBvZiB0aGlzIGZpbGUuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBHZXRDaGFuZ2VMb2coKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygnY2hhbmdlbG9nJyk7Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIElzUGx1Z2luTW9kdWxlKCkKCSAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0cnVlIG9yIGZhbHNlLCBkZXBlbmRpbmcgdXBvbgoJICAgd2hldGhlciB1c2VycyBjYW4gaW5jbHVkZSB0aGUgbW9kdWxlIGluIGEgcGFnZSBvcgoJICAgdGVtcGxhdGUgdXNpbmcgYSBzbWFydHkgdGFnIG9mIHRoZSBmb3JtCgkgICB7Y21zX21vZHVsZSBtb2R1bGU9J2dyb3VwZG9jc19jb21wYXJpc29uJyBwYXJhbTE9dmFsIHBhcmFtMj12YWwuLi59CgkgICAKCSAgIElmIHlvdXIgbW9kdWxlIGRvZXMgbm90IGdldCBpbmNsdWRlZCBpbiBwYWdlcyBvcgoJICAgdGVtcGxhdGVzLCByZXR1cm4gImZhbHNlIiBoZXJlLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKQoJewoJCXJldHVybiB0cnVlOwoJfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBIYXNBZG1pbigpCgkgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYSBib29sZWFuIHZhbHVlLCBkZXBlbmRpbmcgb24KCSAgIHdoZXRoZXIgeW91ciBtb2R1bGUgYWRkcyBhbnl0aGluZyB0byB0aGUgQWRtaW4gYXJlYSBvZgoJICAgdGhlIHNpdGUuIEZvciB0aGUgcmVzdCBvZiB0aGVzZSBjb21tZW50cywgSSdsbCBiZSBjYWxsaW5nCgkgICB0aGUgYWRtaW4gcGFydCBvZiB5b3VyIG1vZHVsZSB0aGUgIkFkbWluIFBhbmVsIiBmb3IKCSAgIHdhbnQgb2YgYSBiZXR0ZXIgdGVybS4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIEhhc0FkbWluKCkKCXsKCQlyZXR1cm4gdHJ1ZTsKCX0KCgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldEFkbWluU2VjdGlvbigpCgkgICBJZiB5b3VyIG1vZHVsZSBoYXMgYW4gQWRtaW4gUGFuZWwsIHlvdSBjYW4gc3BlY2lmeQoJICAgd2hpY2ggQWRtaW4gU2VjdGlvbiAob3IgdG9wLWxldmVsIEFkbWluIE1lbnUpIGl0IHNob3dzCgkgICB1cCBpbi4gVGhpcyBtZXRob2QgcmV0dXJucyBhIHN0cmluZyB0byBzcGVjaWZ5IHRoYXQKCSAgIHNlY3Rpb24uIFZhbGlkIHJldHVybiB2YWx1ZXMgYXJlOgoKCSAgIG1haW4gICAgICAgIC0gdGhlIE1haW4gbWVudSB0YWIuCgkgICBjb250ZW50ICAgICAtIHRoZSBDb250ZW50IG1lbnUKCSAgIGxheW91dCAgICAgIC0gdGhlIExheW91dCBtZW51CgkgICB1c2Vyc2dyb3VwcyAtIHRoZSBVc2VycyBhbmQgR3JvdXBzIG1lbnUKCSAgIGV4dGVuc2lvbnMgIC0gdGhlIEV4dGVuc2lvbnMgbWVudSAodGhpcyBpcyB0aGUgZGVmYXVsdCkKCSAgIHNpdGVhZG1pbiAgIC0gdGhlIFNpdGUgQWRtaW4gbWVudQoJICAgdmlld3NpdGUgICAgLSB0aGUgVmlldyBTaXRlIG1lbnUgdGFiCgkgICBsb2dvdXQgICAgICAtIHRoZSBMb2dvdXQgbWVudSB0YWIKCSAgIAoJICAgTm90ZSB0aGF0IGlmIHlvdSBwbGFjZSB5b3VyIG1vZHVsZSBpbiB0aGUgbWFpbiwKCSAgIHZpZXdzaXRlLCBvciBsb2dvdXQgc2VjdGlvbnMsIGl0IHdpbGwgc2hvdyB1cCBpbiB0aGUKCSAgIG1lbnVzLCBidXQgd2lsbCBub3QgYmUgdmlzaWJsZSBpbiBhbnkgdG9wLWxldmVsCgkgICBzZWN0aW9uIHBhZ2VzLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0QWRtaW5TZWN0aW9uKCkKCXsKCQlyZXR1cm4gJ2NvbnRlbnQnOwoJfQoKCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0QWRtaW5EZXNjcmlwdGlvbigpCgkgICBJZiB5b3VyIG1vZHVsZSBkb2VzIGhhdmUgYW4gQWRtaW4gUGFuZWwsIHlvdQoJICAgY2FuIGhhdmUgaXQgcmV0dXJuIGEgZGVzY3JpcHRpb24gc3RyaW5nIHRoYXQgZ2V0cyBzaG93bgoJICAgaW4gdGhlIEFkbWluIFNlY3Rpb24gcGFnZSB0aGF0IGNvbnRhaW5zIHRoZSBtb2R1bGUuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2FkbWluZGVzY3JpcHRpb24nKTsKCX0KCgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIFZpc2libGVUb0FkbWluVXNlcigpCgkgICBJZiB5b3VyIG1vZHVsZSBkb2VzIGhhdmUgYW4gQWRtaW4gUGFuZWwsIHlvdQoJICAgY2FuIGNvbnRyb2wgd2hldGhlciBvciBub3QgaXQncyBkaXNwbGF5ZWQgYnkgdGhlIGJvb2xlYW4KCSAgIHRoYXQgaXMgcmV0dXJuZWQgYnkgdGhpcyBtZXRob2QuIFRoaXMgaXMgcHJpbWFyaWx5IHVzZWQKCSAgIHRvIGhpZGUgbW9kdWxlcyBmcm9tIGFkbWlucyB3aG8gbGFjayBwZXJtaXNzaW9uIHRvIHVzZQoJICAgdGhlbS4KCSAgIAoJICAgVHlwaWNhbGx5LCB5b3UnbGwgdXNlIHNvbWUgcGVybWlzc2lvbiB0byBzZXQgdGhpcwoJICAgKGUuZy4sICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1NvbWUgUGVybWlzc2lvbicpOyApCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKQoJewogICAgICAgIHJldHVybiB0cnVlOwoJfQoJCgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIENoZWNrQWNjZXNzKCkKCSAgIFRoaXMgd3JhcHBlciBmdW5jdGlvbiB3aWxsIGNoZWNrIGFnYWluc3QgdGhlIHNwZWNpZmllZCBwZXJtaXNzaW9uLAoJICAgYW5kIGRpc3BsYXkgYW4gZXJyb3IgcGFnZSBpZiB0aGUgdXNlciBkb2Vzbid0IGhhdmUgYWRlcXVhdGUgcGVybWlzc2lvbnMuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBDaGVja0FjY2VzcygkcGVybSA9ICdNb2RpZnlHcm91RG9jc0NvbXBhcmlzb24nKQoJCXsKCQlyZXR1cm4gJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkcGVybSk7CgkJfQoJCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgRGlzcGxheUVycm9yUGFnZSgpCgkgICBUaGlzIGlzIGEgc2ltcGxlIGZ1bmN0aW9uIGZvciBnZW5lcmF0aW5nIGVycm9yIHBhZ2VzLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogICAgZnVuY3Rpb24gRGlzcGxheUVycm9yUGFnZSgkaWQsICYkcGFyYW1zLCAkcmV0dXJuX2lkLCAkbWVzc2FnZT0nJykKICAgIHsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Vycm9yJywgJHRoaXMtPkxhbmcoJ2Vycm9yJykpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ21lc3NhZ2UnLCAkbWVzc2FnZSk7CgogICAgICAgIC8vIERpc3BsYXkgdGhlIHBvcHVsYXRlZCB0ZW1wbGF0ZQogICAgICAgIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZXJyb3IudHBsJyk7CiAgICB9CgkKCgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldERlcGVuZGVuY2llcygpCgkgICBZb3VyIG1vZHVsZSBtYXkgbmVlZCBhbm90aGVyIG1vZHVsZSB0byBhbHJlYWR5IGJlIGluc3RhbGxlZAoJICAgYmVmb3JlIHlvdSBjYW4gaW5zdGFsbCBpdC4KCSAgIFRoaXMgbWV0aG9kIHJldHVybnMgYSBsaXN0IG9mIHRob3NlIGRlcGVuZGVuY2llcyBhbmQKCSAgIG1pbmltdW0gdmVyc2lvbiBudW1iZXJzIHRoYXQgdGhpcyBtb2R1bGUgcmVxdWlyZXMuCgkgICAKCSAgIEl0IHNob3VsZCByZXR1cm4gYW4gaGFzaCwgZWcuCgkgICByZXR1cm4gYXJyYXkoJ3NvbWVtb2R1bGUnPT4nMS4wJywgJ290aGVybW9kdWxlJz0+JzEuMScpOwoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkKCXsKCQlyZXR1cm4gYXJyYXkoKTsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgSW5zdGFsbFBvc3RNZXNzYWdlKCkKCSAgIEFmdGVyIGluc3RhbGxhdGlvbiwgdGhlcmUgbWF5IGJlIHRoaW5ncyB5b3Ugd2FudCB0bwoJICAgY29tbXVuaWNhdGUgdG8geW91ciBhZG1pbi4gVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEKCSAgIHN0cmluZyB3aGljaCB3aWxsIGJlIGRpc3BsYXllZC4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbCcpOwoJfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBVbmluc3RhbGxQb3N0TWVzc2FnZSgpCgkgICBBZnRlciByZW1vdmluZyBhIG1vZHVsZSwgdGhlcmUgbWF5IGJlIHRoaW5ncyB5b3Ugd2FudCB0bwoJICAgY29tbXVuaWNhdGUgdG8geW91ciBhZG1pbi4gVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEKCSAgIHN0cmluZyB3aGljaCB3aWxsIGJlIGRpc3BsYXllZC4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsKCX0KCgoKCgkvKioKCSAqIFVuaW5zdGFsbFByZU1lc3NhZ2UoKQoJICogVGhpcyBhbGxvd3MgeW91IHRvIGRpc3BsYXkgYSBtZXNzYWdlIGFsb25nIHdpdGggYSBZZXMvTm8gZGlhbG9nIGJveC4gSWYgdGhlIHVzZXIgcmVzcG9uZHMKCSAqIGluIHRoZSBhZmZpcm1hdGl2ZSB0byB5b3VyIG1lc3NhZ2UsIHRoZSB1bmluc3RhbGwgd2lsbCBwcm9jZWVkLiBJZiB0aGV5IHJlc3BvbmQgaW4gdGhlCgkgKiBuZWdhdGl2ZSwgdGhlIHVuaW5zdGFsbCB3aWxsIGJlIGNhbmNlbGVkLiBUaHVzLCB5b3VyIG1lc3NhZ2Ugc2hvdWxkIGJlIG9mIHRoZSBmb3JtCgkgKiAiQWxsIG1vZHVsZSBkYXRhIHdpbGwgYmUgZGVsZXRlZC4gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHVuaW5zdGFsbCB0aGlzIG1vZHVsZT8iCgkgKgoJICogSWYgeW91IGRvbid0IHdhbnQgdGhlIGRpYWxvZywgaGF2ZSB0aGlzIG1ldGhvZCByZXR1cm4gYSBGQUxTRSwgd2hpY2ggd2lsbCBjYXVzZSB0aGUKCSAqIG1vZHVsZSB0byB1bmluc3RhbGwgaW1tZWRpYXRlbHkgaWYgdGhlIHVzZXIgY2xpY2tzIHRoZSAidW5pbnN0YWxsIiBsaW5rLgoJICovCglmdW5jdGlvbiBVbmluc3RhbGxQcmVNZXNzYWdlKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ3JlYWxseV91bmluc3RhbGwnKTsKCX0KCQoJZnVuY3Rpb24gY291bnRzb21ldGhpbmcoJHRhYmxlbmFtZSwkd2hhdD0iaWQiLCR3aGVyZT1hcnJheSgpLCR3aGVyZXN0cmluZz1mYWxzZSwkd2hlcmV2YWx1ZXM9YXJyYXkoKSwkcGFyZW50PWZhbHNlKXsKCQkvLyByZXR1cm5zIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gYSB0YWJsZSBjb3JyZXNwb25kaW5nIHRvIGNyaXRlcmlhcwoJCWlmKCEkcGFyZW50ICYmIGlzc2V0KCR3aGVyZVsicGFyZW50Il0pKQl1bnNldCgkd2hlcmVbInBhcmVudCJdKTsKCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7CgkJaWYoJHdoZXJlc3RyaW5nKXsKCQkJJHdoZXJlc3RyaW5nID0gIiBXSEVSRSAiLiR3aGVyZXN0cmluZzsKCQl9ZWxzZXsKCQkJJHdoZXJlc3RyaW5nID0gIiI7CgkJCSR3aGVyZXZhbHVlcyA9IGFycmF5KCk7CgkJCWZvcmVhY2goJHdoZXJlIGFzICRrZXk9PiR2YWx1ZSl7CgkJCQlpZigka2V5ID09ICJwYXJlbnQiKXsKCQkJCQkkd2hlcmVzdHJpbmcgLj0gKCR3aGVyZXN0cmluZyA9PSAiIj8iIFdIRVJFICI6IiBBTkQgIikuIkEucGFyZW50PUIuaWQgQU5EIEIuYWxpYXM9PyI7CgkJCQl9ZWxzZXsKCQkJCQkkd2hlcmVzdHJpbmcgLj0gKCR3aGVyZXN0cmluZyA9PSAiIj8iIFdIRVJFICI6IiBBTkQgIikuIkEuIi4ka2V5LiI9PyI7CgkJCQl9CgkJCQkkd2hlcmV2YWx1ZXNbXSA9ICR2YWx1ZTsKCQkJfQoJCX0KCQkkcXVlcnkgPSAiU0VMRUNUIENPVU5UKEEuJHdoYXQpIG91cmNvdW50IEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV8iLiR0aGlzLT5HZXROYW1lKCkuIl8iLiR0YWJsZW5hbWUuIiBBIjsKCQlpZigkcGFyZW50ICYmIGlzc2V0KCR3aGF0WyJwYXJlbnQiXSkpCSRxdWVyeSAuPSAiLCAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlXyIuJHRoaXMtPkdldE5hbWUoKS4iXyIuJHBhcmVudC4iIEIiOwoJCSRxdWVyeSAuPSAkd2hlcmVzdHJpbmc7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwkd2hlcmV2YWx1ZXMpOwoJCWlmICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSl7CgkJCXJldHVybiAkcm93WyJvdXJjb3VudCJdOwoJCX1lbHNlewoJCQlyZXR1cm4gMDsKCQl9Cgl9CgoJZnVuY3Rpb24gZ2V0X2RvY3NfbGlzdCgkd2hlcmU9YXJyYXkoKSwkYWRtaW49ZmFsc2UsJGlkPSIiLCRyZXR1cm5pZD0iIiwkb3JkZXI9ZmFsc2UsJGxpbWl0PTAsJGN1c3RvbXdoZXJlPWZhbHNlLCRjdXN0b212YWx1ZXM9YXJyYXkoKSwkY3VzdG9tb3JkZXI9ZmFsc2UpewoJCWdsb2JhbCAkZ0NtczsKCQkkbG9hZF9uYmNoaWxkcmVuID0gJHRoaXMtPkdldFByZWZlcmVuY2UoImxvYWRfbmJjaGlsZHJlbiIsdHJ1ZSk7CgkJaWYoJGFkbWluKQkkYWRtaW50aGVtZSA9ICRnQ21zLT52YXJpYWJsZXNbImFkbWludGhlbWUiXTsKCQlpZighJG9yZGVyKQkkb3JkZXIgPSAiIjsKCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7CgkJJGZpZWxkcyA9IGFycmF5KCJ3aWR0aCIsImhlaWdodCIsImd1aWRfZW1iZWQiLCJndWlkX3JlZGxpbmUiLCJuYW1lIik7CgkJCgkJJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9ncm91cGRvY3NfY29tcGFyaXNvbl9kb2NzIEE7IjsKCgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgkJCQkKCQkkaXRlbWxpc3QgPSBhcnJheSgpOwoJCSRpZGxpc3QgPSAiIjsKCQl3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpewoJCQkkaXRlbSA9IG5ldyBzdGRDbGFzcygpOwoJCQkkaXRlbS0+X193aGF0ID0gImRvY3MiOwoJCQlmb3JlYWNoKCRyb3cgYXMgJGtleT0+JHZhbHVlKXsKCQkJCSRpdGVtLT4ka2V5ID0gJHZhbHVlOwoJCQl9CgkJCSRpdGVtLT53aWR0aCA9IHN0cmlwc2xhc2hlcygkaXRlbS0+d2lkdGgpOwoJCQkkaXRlbS0+aGVpZ2h0ID0gc3RyaXBzbGFzaGVzKCRpdGVtLT5oZWlnaHQpOwoJCQkkaXRlbS0+Z3VpZF9lbWJlZCA9IHN0cmlwc2xhc2hlcygkaXRlbS0+Z3VpZF9lbWJlZCk7CgkJCSRpdGVtLT5ndWlkX3JlZGxpbmUgPSBzdHJpcHNsYXNoZXMoJGl0ZW0tPmd1aWRfcmVkbGluZSk7CgkJCSRpdGVtLT5uYW1lID0gc3RyaXBzbGFzaGVzKCRpdGVtLT5uYW1lKTsKCQkJJGl0ZW0tPmluc2VydFRhZyA9ICd7Y21zX21vZHVsZSBtb2R1bGU9Imdyb3VwZG9jc19jb21wYXJpc29uIiB3aWR0aD0iJyAuICRpdGVtLT53aWR0aCAuICciIGhlaWdodD0iJyAuICRpdGVtLT5oZWlnaHQgLiAnIiBndWlkX2VtYmVkPSInIC4gJGl0ZW0tPmd1aWRfZW1iZWQgLiAnIiBndWlkX3JlZGxpbmU9IicgLiAkaXRlbS0+Z3VpZF9yZWRsaW5lIC4gJyIgfSc7CiAgICAgICAgICAgICAvL2VjaG8gdmFyX2R1bXAoJGRicmVzdWx0KTtleGl0OwoJCQlhcnJheV9wdXNoKCRpdGVtbGlzdCwkaXRlbSk7CgkJfQoKCQlyZXR1cm4gJGl0ZW1saXN0OwoJfQoJCgkKCQp9Cgo/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[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0dyb3VwRG9jcyBDb21wYXJpc29uJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnUG9zdCBJbnN0YWxsIE1lc3NhZ2UuJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdQb3N0IFVuaW5zdGFsbCBNZXNzYWdlLCBlLmcuLCAiQ3Vyc2VzISBGb2lsZWQgQWdhaW4hIic7CiRsYW5nWydyZWFsbHlfdW5pbnN0YWxsJ10gPSAnUmVhbGx5PyBBcmUgeW91IHN1cmUKeW91IHdhbnQgdG8gdW5zaW5zdGFsbCB0aGlzIGZpbmUgbW9kdWxlPyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSBVbmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ1RoZSBHcm91cERvY3MgQ29tcGFyaXNvbiBwbHVnaW4gZm9yIENNU01TIGFsbG93cyB5b3UgdG8gZW1iZWQgYW5kIGNvbXBhcmUgdHdvIFdvcmQgZG9jdW1lbnRzLCBhcyB3ZWxsIGFzIFBERiBmaWxlcyBhbmQgRXhjZWwgc3ByZWFkc2hlZXRzLCBmcm9tIHdpdGhpbiB5b3VyIHdlYnNpdGUuJzsKCiRsYW5nWydlcnJvciddID0gJ0Vycm9yISc7CiRsYW5kWydhZG1pbl90aXRsZSddID0gJ0dyb3VwRG9jcyBDb21wYXJpc29uIEFkbWluIFBhbmVsJzsKJGxhbmdbJ2FkbWluZGVzY3JpcHRpb24nXSA9ICdBZG1pbiBEZXNjcmlwdGlvbic7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdBY2Nlc3MgRGVuaWVkLiBQbGVhc2UgY2hlY2sgeW91ciBwZXJtaXNzaW9ucy4nOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdQb3N0IEluc3RhbGwgTWVzc2FnZSwgKGUuZy4sIEJlIHN1cmUgdG8gc2V0ICJNb2RpZnlHcm91RG9jc0NvbXBhcmlzb24iIHBlcm1pc3Npb25zIHRvIHVzZSB0aGlzIG1vZHVsZSEpJzsKCgokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPgo8bGk+VmVyc2lvbiAxLjAgLSA0IE9jdG9iZXIgMjAxMi4gSW5pdGlhbCBSZWxlYXNlLjwvbGk+CjwvdWw+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KPHA+VGhlIEdyb3VwRG9jcyBDb21wYXJpc29uIHBsdWdpbiBmb3IgQ01TTVMgYWxsb3dzIHlvdSB0byBlbWJlZCBhbmQgY29tcGFyZSB0d28gV29yZCBkb2N1bWVudHMsIGFzIHdlbGwgYXMgUERGIGZpbGVzIGFuZCBFeGNlbCBzcHJlYWRzaGVldHMsIGZyb20gd2l0aGluIHlvdXIgd2Vic2l0ZS48L3A+CjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgo8cD5BZGQgbmV3IGRvY3VtZW50LiBGaWxsIGFsbCBmaWVsZHMuIFlvdSBjb3VsZCBmaW5kIEd1aWQgRW1iZWQgYW5kIEd1aWQgUmVkbGluZSB3aGVuIHZpZXdpbmcgZG9jdW1lbnQgZnJvbSB5b3VyIEdyb3VwRG9jcyBhY2NvdW50LjwvcD4KPGgzPldoYXQgUGFyYW1ldGVycyBEb2VzIEl0IFRha2U8L2gzPgo8cD5XaWR0aCBhbmQgSGVpZ2h0IGFyZSBmb3Igc2l6ZSBvZiBpZnJhbWUgb24gcGFnZS48L3A+JzsKCiRsYW5nWydhZGRfZG9jJ10gPSAnQWRkIERvY3VtZW50JzsKCiRsYW5nWydncm91cGRvY3Nfd2lkdGgnXSA9ICdXaWR0aCc7CiRsYW5nWydncm91cGRvY3NfaGVpZ2h0J10gPSAnSGVpZ2h0JzsKJGxhbmdbJ2dyb3VwZG9jc19ndWlkX2VtYmVkJ10gPSAnR3VpZCBFbWJlZCc7CiRsYW5nWydncm91cGRvY3NfZ3VpZF9yZWRsaW5lJ10gPSAnR3VpZCBSZWRsaW5lJzsKJGxhbmdbJ2dyb3VwZG9jc19uYW1lJ10gPSAnTmFtZSc7CgoKPz4K]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEluc3RhbGwoKQoJICAgV2hlbiB5b3VyIG1vZHVsZSBpcyBpbnN0YWxsZWQsIHlvdSBtYXkgbmVlZCB0byBkbyBzb21lCgkgICBzZXR1cC4gVHlwaWNhbCB0aGluZ3MgdGhhdCBoYXBwZW4gaGVyZSBhcmUgdGhlIGNyZWF0aW9uCgkgICBhbmQgcHJlcG9wdWxhdGlvbiBvZiBkYXRhYmFzZSB0YWJsZXMsIGRhdGFiYXNlIHNlcXVlbmNlcywKCSAgIHBlcm1pc3Npb25zLCBwcmVmZXJlbmNlcywgZXRjLgoJICAgCSAgIAoJICAgRm9yIGluZm9ybWF0aW9uIG9uIHRoZSBjcmVhdGlvbiBvZiBkYXRhYmFzZSB0YWJsZXMsCgkgICBjaGVjayBvdXQgdGhlIEFET0RCIERhdGEgRGljdGlvbmFyeSBwYWdlIGF0CgkgICBodHRwOi8vcGhwbGVucy5jb20vbGVucy9hZG9kYi9kb2NzLWRhdGFkaWN0Lmh0bQoJICAgCgkgICBUaGlzIGZ1bmN0aW9uIGNhbiByZXR1cm4gYSBzdHJpbmcgaW4gY2FzZSBvZiBhbnkgZXJyb3IsCgkgICBhbmQgQ01TIHdpbGwgbm90IGNvbnNpZGVyIHRoZSBtb2R1bGUgaW5zdGFsbGVkLgoJICAgU3VjY2Vzc2Z1bCBpbnN0YWxscyBzaG91bGQgcmV0dXJuIEZBTFNFIG9yIG5vdGhpbmcgYXQgYWxsLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJCS8qCgkJLy8gVHlwaWNhbCBEYXRhYmFzZSBJbml0aWFsaXphdGlvbgoJCSRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsKCQkKCQkvLyBteXNxbC1zcGVjaWZpYywgYnV0IGlnbm9yZWQgYnkgb3RoZXIgZGF0YWJhc2UKCQkkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoJCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCQkKICAgICAgICAvLyB0YWJsZSBzY2hlbWEgZGVzY3JpcHRpb24KICAgICAgICAkZmxkcyA9ICIKCQkJaWQgSSBLRVksCgkJCWRlc2NyaXB0aW9uIEMoODApCgkJCSI7CgoJCS8vIGNyZWF0ZSBpdC4gVGhpcyBzaG91bGQgZG8gZXJyb3IgY2hlY2tpbmcsIGJ1dCBJJ20gYSBsYXp5IHNvZC4KCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ3JvdXBkb2NzX2NvbXBhcmlzb24iLAoJCQkJJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkvLyBjcmVhdGUgYSBzZXF1ZW5jZQoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ3JvdXBkb2NzX2NvbXBhcmlzb25fc2VxIik7CgkJKi8KCQkKCQkvLyBwZXJtaXNzaW9ucwoJCSR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdNb2RpZnkgR3JvdURvY3NDb21wYXJpc29uJywnTW9kaWZ5IEdyb3VEb2NzQ29tcGFyaXNvbicpOwoKCQkKCQkvLyBUeXBpY2FsIERhdGFiYXNlIEluaXRpYWxpemF0aW9uCiRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKCiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCQkKLy8gbXlzcWwtc3BlY2lmaWMsIGJ1dCBpZ25vcmVkIGJ5IG90aGVyIGRhdGFiYXNlCiR0YWJvcHRhcnJheSA9IGFycmF5KCJteXNxbCIgPT4gIlRZUEU9TXlJU0FNIik7CgkJCgovLyBDcmVhdGVzIHRoZSBwbGF5ZXIgdGFibGUKJGZsZHMgPSAiCglndWlkX2VtYmVkIEMoMzIpLAoJZ3VpZF9yZWRsaW5lIEMoNjQpLAoJd2lkdGggQygxMCksCgloZWlnaHQgQygxMCksCglpZCBJIEtFWSwKCW5hbWUgQyg2NCkKCSI7Cgokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ3JvdXBkb2NzX2NvbXBhcmlzb25fZG9jcyIsICRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ3JvdXBkb2NzX2NvbXBhcmlzb25fZG9jc19zZXEiKTsKCQkKCQkKPz4K]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIFVuaW5zdGFsbCgpCgkgICBTb21ldGltZXMsIGFuIGV4Y2VwdGlvbmFsbHkgdW5lbmxpZ2h0ZW5lZCBvciBpZ25vcmFudAoJICAgYWRtaW4gd2lsbCB3aXNoIHRvIHVuaW5zdGFsbCB5b3VyIG1vZHVsZS4gV2hpbGUgaXQKCSAgIHdvdWxkIGJlIGJlc3QgdG8gbGF5IGludG8gdGhlc2UgaWRpb3RzIHdpdGggYSBjbHVlc3RpY2ssCgkgICB3ZSB3aWxsIGRvIHRoZSBtYWduYW5pbW91cyB0aGluZyBhbmQgcmVtb3ZlIHRoZSBtb2R1bGUKCSAgIGFuZCBjbGVhbiB1cCB0aGUgZGF0YWJhc2UsIHBlcm1pc3Npb25zLCBhbmQgcHJlZmVyZW5jZXMKCSAgIHRoYXQgYXJlIHNwZWNpZmljIHRvIGl0LgoJICAgVGhpcyBpcyB0aGUgbWV0aG9kIHdoZXJlIHdlIGRvIHRoaXMuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoJCS8qCgkJLy8gVHlwaWNhbCBEYXRhYmFzZSBSZW1vdmFsCgkJJGRiID0mICRnQ21zLT5HZXREYigpOwoJCQoJCS8vIHJlbW92ZSB0aGUgZGF0YWJhc2UgdGFibGUKCQkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCAkZGIgKTsKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9ncm91cGRvY3NfY29tcGFyaXNvbiIgKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCS8vIHJlbW92ZSB0aGUgc2VxdWVuY2UKCQkkZGItPkRyb3BTZXF1ZW5jZSggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZ3JvdXBkb2NzX2NvbXBhcmlzb25fc2VxIiApOwoJCSovCgkJCgkJLy8gcmVtb3ZlIHRoZSBwZXJtaXNzaW9ucwoJCSR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdNb2RpZnlHcm91RG9jc0NvbXBhcmlzb24nKTsKCgkJCgkJLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nCgkJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1bmluc3RhbGxlZCcpKTsKCiRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoKCgoJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9ncm91cGRvY3NfY29tcGFyaXNvbl9kb2NzIik7CgkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkkZGItPkRyb3BTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9ncm91cGRvY3NfY29tcGFyaXNvbl9kb2NzX3NlcSIpOwo/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+PHRyPgoJPHRoPklEPC90aD4KCTx0aD5OYW1lPC90aD4KCTx0aD5HVUlEPC90aD4KCTx0aD5TaG9ydGNvZGU8L3RoPgo8L3RyPjwvdGhlYWQ+Cjx0Ym9keT4KCntjeWNsZSB2YWx1ZXM9InJvdzIscm93MSIgYXNzaWduPXJvd2NsYXNzIHJlc2V0PXRydWV9Cgl7Zm9yZWFjaCBmcm9tPSRpdGVtbGlzdCBpdGVtPW9uZWl0ZW19CntjeWNsZSB2YWx1ZXM9InJvdzIscm93MSIgYXNzaWduPXJvd2NsYXNzfQoJPHRyIGNsYXNzPSJ7JHJvd2NsYXNzfSIgIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRyb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRyb3djbGFzc30nOyI+CgkJPHRkPnskb25laXRlbS0+aWR9PC90ZD4KCQk8dGQ+eyRvbmVpdGVtLT5uYW1lfTwvdGQ+CgkJPHRkPnskb25laXRlbS0+Z3VpZH08L3RkPgoJCTx0ZD57JG9uZWl0ZW0tPmluc2VydFRhZ308L3RkPgoJPC90cj4KCXsvZm9yZWFjaH0KCgoKPC90Ym9keT4KPC90YWJsZT4KPC9kaXY+CjxwPnskYWRkbmV3fTwvcD4Key9pZn0K]]></data>
	</file>
	<file>
	  <filename>/templates/display.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CjxpZnJhbWUgc3JjPSJodHRwOi8vYXBwcy5ncm91cGRvY3MuY29tL2RvY3VtZW50LWNvbXBhcmlzb24vZW1iZWQveyRwYXJhbXNbJ2d1aWRfZW1iZWQnXX0veyRwYXJhbXNbJ2d1aWRfcmVkbGluZSddfT9yZWZlcmVyPWNtc21zLzEuMTEuMSIgZnJhbWVib3JkZXI9IjAiIHdpZHRoPSJ7JHBhcmFtc1snd2lkdGgnXX0iIGhlaWdodD0ieyRwYXJhbXNbJ2hlaWdodCddfSI+PC9pZnJhbWU+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/editA.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJyLz48YnIvPg0KDQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHdpZHRoX2xhYmVsfSA6PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHdpZHRoX2lucHV0fTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskaGVpZ2h0X2xhYmVsfSA6PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGhlaWdodF9pbnB1dH08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGd1aWRfcmVkbGluZV9sYWJlbH0gOjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRndWlkX3JlZGxpbmVfaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRndWlkX2VtYmVkX2xhYmVsfSA6PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGd1aWRfZW1iZWRfaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRuYW1lX2xhYmVsfSA6PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JG5hbWVfaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCQ0KPGJyLz4NCjxwPnskc3VibWl0fSB7JGFwcGx5fSB7JGNhbmNlbH08L3A+DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/error.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfZXJyb3J9PC9oMz4Ke2lmICRtZXNzYWdlIT0nJ308cD57JG1lc3NhZ2V9PC9wPnsvaWZ9]]></data>
	</file>
</module>
