<?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>XtendedScripts</name>
	<version>0.0.1</version>
  <mincmsversion>1.0.6</mincmsversion>
	<help>Cgk8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KCTxwPlRoaXMgbW9kdWxlIGFsbG93cyB5b3UgdG8gbG9hZCBhbmQgbWFuYWdlIEphdmFzY3JpcHQgbGlicmFyaWVzPC9wPgoJCgk8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4KCQoJPHA+VG8gaW5jbHVkZSB0aGlzIG1vZHVsZSBvbiBhIHBhZ2UsIHVzZSB0aGUgdGFnIHtjbXNfbW9kdWxlIG1vZHVsZT0iWHRlbmRlZFNjcmlwdHMifTwvcD4KCQoJPGgzPldoYXQgUGFyYW1ldGVycyBEb2VzIEl0IFRha2U8L2gzPgoJCiAgICBObyBwYXJhbWV0ZXJzIGF0IHRoaXMgdGltZQoKCTxoMz5TdXBwb3J0PC9oMz4KCTxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dCBvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+Cgk8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KCTxwPkNvcHlyaWdodCAmY29weTsgMjAwNywgQmVuamFtaW4gTWFnaXRzIDxhIGhyZWY9Im1haWx0bzpiZW5qYW1pbi5tYWdpdHNAZ21haWwuY29tIj4mbHQ7YmVuamFtaW4ubWFnaXRzQGdtYWlsLmNvbSZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+Cgk8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48dWw+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGFuZz0iZW5fVVMiIC0gUGFyYW1ldGVyIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGF0IGxhbmd1YWdlIHRvIHVzZSBmb3IgZGlzcGxheSBvbiB0aGUgZnJvbnRlbmQuIE5vdCBhbGwgbW9kdWxlcyBzdXBwb3J0IG9yIG5lZWQgdGhpcy48L2xpPjwvdWw+</help>
	<about>PGJyIC8+QXV0aG9yOiBCZW5qYW1pbiBNYWdpdHMgJmx0O2JlbmphbWluLm1hZ2l0c0BnbWFpbC5jb20mZ3Q7PGJyIC8+PGJyIC8+VmVyc2lvbjogMC4wLjE8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz4KCTx1bD4KCQk8bGk+VmVyc2lvbiAwLjAuMSAtIDAxIE1hcmNoIDIwMDguIEluaXRpYWwgUmVsZWFzZS4KCQkKCTwvdWw+CjxiciAvPg==</about>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.Active.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7Ci8qCmlmICghICR0aGlzLT5DaGVja0FjY2VzcygiIikpCnsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwp9CiovCgppZiAoaXNzZXQoJHBhcmFtc1snaXRlbV9pZCddKSkKewogICAgCiAgICBpZiggJF9SRVFVRVNUWyRpZC4naXNfYWN0aXZlJ10gPT0gMSkKICAgIHsKICAgICAgICAkc3dpdGNoX3ZhbHVlID0gMDsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICAkc3dpdGNoX3ZhbHVlID0gMTsKICAgIH0KICAgICAgIAogICAgJHF1ZXJ5ID0gIlVQREFURSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3h0ZW5kZXNjcmlwdHMgU0VUIGlzX2FjdGl2ZSA9ID8gV0hFUkUgaWQgPSA/IjsKCQoJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHN3aXRjaF92YWx1ZSwgJHBhcmFtc1snaXRlbV9pZCddKSk7CgkKCSR0aGlzLT5TZW5kRXZlbnQoJ0xpbmtBY3RpdmVkJywgYXJyYXkoJ2lkJyA9PiAkcGFyYW1zWydpdGVtX2lkJ10pKTsKCQoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJHBhcmFtcyk7CgkKfQplbHNlIAp7CgoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbm9pZGZvdW5kJykpOwoKfQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.AddEdit.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgokbW9kdWxleHRlbmRlciA9ICRnQ21zLT5tb2R1bGVzWydNb2R1bGVYdGVuZGVyJ11bJ29iamVjdCddOwovKgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoIiIpKQp7CglyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsKfQoqLwovLyBJZiBjYW5jZWwsIHJldHVybiBob21lLi4uCgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKQp7CgkkcGFyYW1zID0gYXJyYXkoCgkJCgkJJ2FjdGl2ZV90YWInID0+ICdMaW5rcycKCQkKCQkpOwkJCgkKCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsICRwYXJhbXMpOwp9CgovLyBJZiBmb3JtIGlzIHN1Ym1pdHRlZC4uLgoKaWYgKGlzc2V0KCRwYXJhbXNbJ2lucHV0X3N1Ym1pdHRlZCddKSkKewoKCS8qIFdlIGNoZWNrIGZpZWxkcyAqLwoJCglpZihlbXB0eSgkcGFyYW1zWyd0aXRsZSddKSkKCXsKCQkKCQllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl90aXRsZScpKTsKCQkKCQkkZXJyb3JzVHJ1ZT1UcnVlOwoJCQoJfQoJLyoKCWVsc2VpZiggZW1wdHkoJHBhcmFtc1snZmlsZSddKSBvciBzdWJzdHIoJHBhcmFtc1snZmlsZSddLDAsNykgIT0gJ2h0dHA6Ly8nICkKCXsKCQkKCQllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9maWxlJykpOwoJCQoJCSRlcnJvcnNUcnVlPVRydWU7CgkJCgl9CgkqLwoJCgkKCWlmKCEkZXJyb3JzVHJ1ZSkgLyogSWYgdGhlcmUgaXMgbm8gZXJyb3Igd2UgcHJvY2VzcyB0aGUgZm9ybSAqLwoJewoJCQoJCQoJCS8vaWYgKCFpc3NldCgkcGFyYW1zWydpdGVtX2lkJ10pKSAvKiBFZGl0IEl0ZW0gKi8gCgkJaWYgKCRwYXJhbXNbJ2l0ZW1faWQnXSA9PSAnJykKCQl7CQkJCgoJCQkKCQkJJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfeHRlbmRlc2NyaXB0cyBTRVQgaWQgPSA/LCB0aXRsZSA9ID8sIGZpbGUgPSA/LCBkZXNjcmlwdGlvbiA9ID8sIGNvZGUgPSA/ICc7CgkJCQoJCQkKCQkJCgkJCSRkYkRhdGEgPSBhcnJheSgKCQkJCQkJCSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3h0ZW5kZXNjcmlwdHNfc2VxIikKCQkJCQkJCSwkcGFyYW1zWyd0aXRsZSddCgkJCQkJCQksJHBhcmFtc1snZmlsZSddCgkJCQkJCQksJHBhcmFtc1snZGVzY3JpcHRpb24nXQoJCQkJCQkJLCRwYXJhbXNbJ2NvZGUnXQoJCQkJCQkJKTsKCQkJCgkJCS8qCgkJCWVjaG8gJzxwcmU+JzsgcHJpbnRfcigkZGJEYXRhKTsgZWNobyAnPC9wcmU+JzsJCQkJCgkJCQkJCQkKCQkJZGllKCRxdWVyeSk7CgkJCSovCgkJCQkJCQkKCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgJGRiRGF0YSk7CgkJCQoJCQkvL0AkdGhpcy0+U2VuZEV2ZW50KCdOZXdMaW5rQWRkZWQnLCBhcnJheSgnaWQnID0+ICRkYklkLCAnZmlsZScgPT4gJHBhcmFtc1snZmlsZSddKSk7CgkJCQoJCQkkZnV0dXJlcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICdpdGVtYWRkZWQnLCAnYWN0aXZlX3RhYicgPT4gJ0xpbmtzJyk7CgkKCQl9CgkJZWxzZSAvKiBBZGQgSXRlbSAqLwoJCXsKCQkJCgkJCSRpdGVtX2lkID0gJHBhcmFtc1snaXRlbV9pZCddOwoJCQkKCQkJJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3h0ZW5kZXNjcmlwdHMgU0VUIHRpdGxlID0gPywgZmlsZSA9ID8gLCBkZXNjcmlwdGlvbiA9ID8sIGNvZGUgPSA/ICBXSEVSRSBpZCA9ID8nOwoJCgkJCQoJCQkKCQkJJGRiRGF0YSA9IGFycmF5KAoJCQkJCQkJICRwYXJhbXNbJ3RpdGxlJ10KCQkJCQkJCSwkcGFyYW1zWydmaWxlJ10KCQkJCQkJCSwkcGFyYW1zWydkZXNjcmlwdGlvbiddCgkJCQkJCQksJHBhcmFtc1snY29kZSddCgkJCQkJCQksJHBhcmFtc1snaXRlbV9pZCddCgkJCQkJCQkpOwoJCQkvKgoJCQllY2hvICc8cHJlPic7IHByaW50X3IoJGRiRGF0YSk7IGVjaG8gJzwvcHJlPic7CQkJCQoJCQkJCQkJCgkJCWRpZSgkcXVlcnkpOwoJCQkqLwoJCQkKCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgJGRiRGF0YSk7CgkJCQkJCQoJCQkvL0AkdGhpcy0+U2VuZEV2ZW50KCdMaW5rVXBkYXRlZCcsIGFycmF5KCdpZCcgPT4gJGlkLCAnZmlsZScgPT4gJHBhcmFtc1snZmlsZSddKSk7CgkJCgkJCSRmdXR1cmVwYXJhbXMgPSBhcnJheSgndGFiX21lc3NhZ2UnPT4gJ2l0ZW1tb2RpZmllZCcsICdhY3RpdmVfdGFiJyA9PiAnTGlua3MnKTsKCQkJCgkJfQoJCQoJCQoJCWlmIChpc3NldCgkcGFyYW1zWydpbnB1dF9zdWJtaXR0ZWQnXSkpCgkJewkKCQkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJGZ1dHVyZXBhcmFtcyk7CgkJfQoJCQoJCS8vJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJHBhcmFtcyk7Cgl9CgkKfQoKLy9lbHNlCi8vewoJLy8gRGlzcGxheSBGb3JtCgkKCS8qIFdlIGRlZmluZSB2YWx1ZXMgKi8KCWlmIChpc3NldCgkcGFyYW1zWydpbnB1dF9zdWJtaXR0ZWQnXSkpCgl7CgkJJGZvcm1yb3cgPSAmJHBhcmFtczsKCX0KCWVsc2VpZiAoaXNzZXQoJHBhcmFtc1snaXRlbV9pZCddKSkKCXsKCQkkZm9ybXJvdyA9ICR0aGlzLT5HZXRJdGVtSW5mb3MoJHBhcmFtc1snaXRlbV9pZCddKTsKCX0KCWVsc2VpZiAoaXNzZXQoJGl0ZW1faWQpKQoJewoJCSRmb3Jtcm93ID0gJHRoaXMtPkdldEl0ZW1JbmZvcygkaXRlbV9pZCk7Cgl9CgkKCS8vIFN0YXJ0IEZvcm0KCQkKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fc3RhcnQnLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnQWRkRWRpdCcsICRyZXR1cm5pZCkpOwoJCgkJLyoKCQkqKiBGaWVsZHMgKDEuTGFiZWwgLyAyLkZpZWxkKQoJCSovCgoJCQkvLzEuTGFiZWwKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmaWVsZF90aXRsZV9sYWJlbCcsJHRoaXMtPkxhbmcoJ2ZpZWxkX3RpdGxlX2xhYmVsJykpOwoJCQkvLzIuRmllbGQKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmaWVsZF90aXRsZV9uYW1lJywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3RpdGxlJywgJGZvcm1yb3dbJ3RpdGxlJ10sIDUwKSk7CgkJCQoJCQkvLzEuTGFiZWwKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmaWVsZF9maWxlX2xhYmVsJywkdGhpcy0+TGFuZygnZmllbGRfZmlsZV9sYWJlbCcpKTsKCQkJLy8yLkZpZWxkCgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZmllbGRfZmlsZV9uYW1lJywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZpbGUnLCAkZm9ybXJvd1snZmlsZSddLCA1MCkpOwoJCQkKCQkJLy8xLkxhYmVsCgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZmllbGRfZGVzY3JpcHRpb25fbGFiZWwnLCR0aGlzLT5MYW5nKCdmaWVsZF9kZXNjcmlwdGlvbl9sYWJlbCcpKTsKCQkJLy8yLkZpZWxkCgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZmllbGRfZGVzY3JpcHRpb25fbmFtZScsICR0aGlzLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGlkLCAgJGZvcm1yb3dbJ2Rlc2NyaXB0aW9uJ10sICdkZXNjcmlwdGlvbicsICcnLCAnJywgJycsICcnLCA4MCwgNSkpOwoJCQkKCQkJLy8xLkxhYmVsCgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZmllbGRfY29kZV9sYWJlbCcsJHRoaXMtPkxhbmcoJ2ZpZWxkX2NvZGVfbGFiZWwnKSk7CgkJCS8vMi5GaWVsZAoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZpZWxkX2NvZGVfbmFtZScsICR0aGlzLT5DcmVhdGVUZXh0QXJlYSh0cnVlLCAkaWQsICAkZm9ybXJvd1snY29kZSddLCAnY29kZScsICcnLCAnJywgJycsICcnLCA4MCwgNSwnRWRpdEFyZWEnKSk7CgkKCQkvKgoJCSoqIEhpZGRlbiBmaWVsZHMKCQkqLwoJCQoJCQlpZiAoaXNzZXQoJHBhcmFtc1snaXRlbV9pZCddKSkKCQkJewoJCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpdGVtX2lkJywkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnaXRlbV9pZCcsICRwYXJhbXNbJ2l0ZW1faWQnXSkpOwoJCQl9CgkJCQoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3N1Ym1pdHRlZCcsJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2lucHV0X3N1Ym1pdHRlZCcsICcnKSk7CgkJCgkJLyoKCQkqKiBCdXR0b25zCgkJKi8KCQkKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgJHRoaXMtPkxhbmcoJ2FjdGlvbl9jYW5jZWwnKSkpOwoJCQkKCQkJLyoKCQkJaWYoIGlzc2V0KCRwYXJhbXNbJ2l0ZW1faWQnXSkgKQoJCQl7CgkJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FwcGx5X2J1dHRvbicsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2FwcGx5JywgJHRoaXMtPkxhbmcoJ2FjdGlvbl9hcHBseScpKSk7CQoJCQl9CgkJCSovCgkJCQoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdF9idXR0b24nLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLCAkdGhpcy0+TGFuZygnYWN0aW9uX3N1Ym1pdCcpKSk7CgkKCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCS8vRW5kIEZvcm0KCQoJLy9Qcm9jZXNzIHRlbXBsYXRlCgllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluQWRkRWRpdC50cGwnKTsKLy99Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoaXNzZXQoJF9SRVFVRVNUWydtYWN0J10pICYmIHN0cnBvcygkX1JFUVVFU1RbJ21hY3QnXSwgJ1NjcmlwdHMnKSAhPT0gZmFsc2UgJiYgc3RycG9zKCRfUkVRVUVTVFsnbWFjdCddLCAnZGV0YWlscycpICE9PSBmYWxzZSkKewoJCS8vIERvIG5vdGhpbmcKfQplbHNlIAp7CgoJZWNobyAkdGhpcy0+TG9hZE91dHB1dCgpOwoJCn0KCgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7Ci8qCmlmICghICR0aGlzLT5DaGVja0FjY2VzcygpKQoJewoJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKSk7Cgl9CiovCiR0YWJzID0gYXJyYXkgKAoJJ2xpbmtzJyA9PiBmYWxzZSwKKTsKCmlmIChpc3NldCgkcGFyYW1zWydhY3RpdmVfdGFiJ10pKQp7CgkkdGFic1skcGFyYW1zWydhY3RpdmVfdGFiJ11dID0gdHJ1ZTsKfQoJCiR0aGlzLT5zbWFydHktPmFzc2lnbigndGFiX2hlYWRlcnMnLCR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKS4KCSR0aGlzLT5TZXRUYWJIZWFkZXIoJ2xpbmtzJywkdGhpcy0+TGFuZygndGl0bGVfbGlua3MnKSAsICR0YWJzWydsaW5rcyddICkuCgkkdGhpcy0+RW5kVGFiSGVhZGVycygpLiR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kX3RhYicsJHRoaXMtPkVuZFRhYigpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0YWJfZm9vdGVycycsJHRoaXMtPkVuZFRhYkNvbnRlbnQoKSk7CgovLyBTdGFydCBNYWluIFRhYgoKCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfc2VjdGlvbicsJ0xpbmtzJyk7CgkKCS8vVGV4dCBmb3IgdGFibGUgaGVhZGVyCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2hlYWRlcicsICR0aGlzLT5MYW5nKCdoZWFkZXInKSk7CgkKCS8vCgkkZW50cnlhcnJheSA9IGFycmF5KCk7CgkKCSRxdWVyeSA9ICIKCQlTRUxFQ1QgCgkJCSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3h0ZW5kZXNjcmlwdHMuKiAKCQlGUk9NIAoJCQkiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3h0ZW5kZXNjcmlwdHMKCQlPUkRFUiBCWQoJCQkiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3h0ZW5kZXNjcmlwdHMuaWQgREVTQwoJCSI7CgoJCgkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCQoJJHJvd2NsYXNzID0gJ3JvdzEnOwoJCgl3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCgl7CgkJJG9uZXJvdyA9IG5ldyBzdGRDbGFzcygpOwoJCgkJJG9uZXJvdy0+aWQgPSAkcm93WydpZCddOwoJCS8vSXRlbSBuYW1lCgkJaWYoICRyb3dbJ2lzX2VkaXRhYmxlJ10hPTAgKQoJCXsKICAgIAkJJG9uZXJvdy0+bmFtZSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ0FkZEVkaXQnLCAkcmV0dXJuaWQsICRyb3dbJ3RpdGxlJ10sIGFycmF5KCdpdGVtX2lkJz0+JHJvd1snaWQnXSkpOwoJCX0KCQllbHNlCgkJewoKCQkgICAgJG9uZXJvdy0+bmFtZSA9ICRyb3dbJ3RpdGxlJ107CgkJICAgICAKCQl9CgkJCgkJCgkJaWYoICRyb3dbJ2lzX2VkaXRhYmxlJ10hPTAgKQoJCXsKICAgIAkJLy9JdGVtIGVkaXQgbGluawogICAgCQkkb25lcm93LT5lZGl0bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ0FkZEVkaXQnLCAkcmV0dXJuaWQsICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLCAkdGhpcy0+TGFuZygnZWRpdHF1b3RlJyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2l0ZW1faWQnPT4kcm93WydpZCddKSk7CiAgICAJCS8vSXRlbSBkZWxldGUgbGluawogICAgCQkkb25lcm93LT5kZWxldGVsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnRGVsZXRlJywgJHJldHVybmlkLCAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkdGhpcy0+TGFuZygnZGVsZXRlJyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2l0ZW1faWQnPT4kcm93WydpZCddKSwgJHRoaXMtPkxhbmcoJ2NvbmZpcm1fZGVsZXRlJykpOwoJCX0KCQllbHNlCgkJewoKCQkgICAgJG9uZXJvdy0+ZWRpdGxpbmsgPSAnJzsKCQkgICAgIAoJCX0KCQkKCQkkb25lcm93LT5kZXNjcmlwdGlvbiA9ICRyb3dbJ2Rlc2NyaXB0aW9uJ107CgkJCgkJLy9JdGVtIGFjdGl2ZSBsaW5rCgkJaWYoJHJvd1snaXNfYWN0aXZlJ10gPT0gMCApCgkJewoJCSAgICAkYWN0aXZlX2ltZyA9ICdmYWxzZS5naWYnOwoJCX0KCQllbHNlCgkJewoJCSAgICAkYWN0aXZlX2ltZyA9ICd0cnVlLmdpZic7CgkJfQoJCQoJCSRvbmVyb3ctPmFjdGl2ZWxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdBY3RpdmUnLCAkcmV0dXJuaWQsICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vJy4kYWN0aXZlX2ltZywgJHRoaXMtPkxhbmcoJ2FjdGl2ZScpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdpdGVtX2lkJz0+JHJvd1snaWQnXSwnaXNfYWN0aXZlJz0+JHJvd1snaXNfYWN0aXZlJ10pKTsKCQkKCQkvL0l0ZW0gcm93IGNsYXNzCgkJJG9uZXJvdy0+cm93Y2xhc3MgPSAkcm93Y2xhc3M7CgoJCSRlbnRyeWFycmF5W10gPSAkb25lcm93OwoJCgkJKCRyb3djbGFzcz09InJvdzEiPyRyb3djbGFzcz0icm93MiI6JHJvd2NsYXNzPSJyb3cxIik7CgkJCgl9CgkKCSR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2l0ZW1zJywgJGVudHJ5YXJyYXkpOwoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2l0ZW1jb3VudCcsIGNvdW50KCRlbnRyeWFycmF5KSk7CgkKCSR0aGlzLT5zbWFydHktPmFzc2lnbignYWRkaXRlbScsJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdBZGRFZGl0JywgJycsICR0aGlzLT5MYW5nKCdhZGRfbmV3X2l0ZW0nKSxhcnJheSgpKSk7CgkJCQkKCSR0aGlzLT5zbWFydHktPmFzc2lnbignYWRkaXRlbWxpbmsnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnQWRkRWRpdCcsICcnLCRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZicsICR0aGlzLT5MYW5nKCdhZGRfbmV3X3F1b3RlJyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoKSkpOwoJCQkJCQoKLy9FbmQgTWFpbiBUYWIKCgovL0VuZCB0ZW1wbGF0ZXMgVGFiCgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2xpbmtzX3RhYicsJHRoaXMtPlN0YXJ0VGFiKCdsaW5rcycpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF9saXN0X3RlbXBsYXRlX3RhYicsJHRoaXMtPlN0YXJ0VGFiKCdsaXN0X3RlbXBsYXRlJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3NlY3Rpb24nLCdkZWZhdWx0YWRtaW4nKTsKCgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWlucGFuZWwudHBsJyk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.Delete.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7Ci8qCmlmICghICR0aGlzLT5DaGVja0FjY2VzcygiIikpCnsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwp9CiovCgppZiAoaXNzZXQoJHBhcmFtc1snaXRlbV9pZCddKSkKewoKCSRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3h0ZW5kZXNjcmlwdHMgV0hFUkUgaWQgPSA/IjsKCQoJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHBhcmFtc1snaXRlbV9pZCddKSk7CgkKCSR0aGlzLT5TZW5kRXZlbnQoJ0xpbmtEZWxldGVkJywgYXJyYXkoJ2lkJyA9PiAkcGFyYW1zWydpdGVtX2lkJ10pKTsKCQoJJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAncXVvdGVkZWxldGVkJywgJ2FjdGl2ZV90YWInID0+ICdMaW5rcycpOwoJCgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkcGFyYW1zKTsKCQp9CmVsc2UgCnsKCgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdub2lkZm91bmQnKSk7Cgp9Cj8+]]></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[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1h0ZW5kZWQgU2NyaXB0cyc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1Bvc3QgSW5zdGFsbCBNZXNzYWdlLic7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnUG9zdCBVbmluc3RhbGwgTWVzc2FnZSwgZS5nLiwgIkN1cnNlcyEgRm9pbGVkIEFnYWluISInOwokbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddID0gJ1JlYWxseT8gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHVuc2luc3RhbGwgdGhpcyBmaW5lIG1vZHVsZT8nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgVW5pbnN0YWxsZWQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGxlZC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgdXBncmFkZWQgdG8gdmVyc2lvbiAlcy4nOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdMaW5rcyBhbGxvd3MnOwoKJGxhbmdbJ2l0ZW1hZGRlZCddID0gJ1NjcmlwdCBoYXMgYmVlbiBhZGRlZCc7CiRsYW5nWydtb2RpZmllZCddID0gJ1NjcmlwdCB1cGRhdGVkJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdBcmUgeW91IHN1cmU/JzsKCiRsYW5nWydlcnJvciddID0gJ0Vycm9yISc7CiRsYW5kWydhZG1pbl90aXRsZSddID0gJ1h0ZW5kZWRTY3JpcHRzIEFkbWluIFBhbmVsJzsKJGxhbmdbJ2FkbWluZGVzY3JpcHRpb24nXSA9ICcnOwokbGFuZ1snYWNjZXNzZGVuaWVkJ10gPSAnQWNjZXNzIERlbmllZC4gUGxlYXNlIGNoZWNrIHlvdXIgcGVybWlzc2lvbnMuJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnUG9zdCBJbnN0YWxsIE1lc3NhZ2UsIChlLmcuLCBCZSBzdXJlIHRvIHNldCAiIiBwZXJtaXNzaW9ucyB0byB1c2UgdGhpcyBtb2R1bGUhKSc7CiRsYW5nWydMaW5rcyddID0gJ1NjcmlwdHMnOwokbGFuZ1sndGl0bGVfbGlua3MnXSA9ICdTY3JpcHRzIExpYnJhcmllcyc7CgokbGFuZ1snYWRkX25ld19pdGVtJ10gPSAnQWRkIExpYnJhcnknOwoKJGxhbmdbJ2ZpZWxkX3RpdGxlX2xhYmVsJ10gPSAnU2NyaXB0IE5hbWUnOwokbGFuZ1snZmllbGRfZmlsZV9sYWJlbCddID0gJ0ZpbGUnOwokbGFuZ1snZmllbGRfZGVzY3JpcHRpb25fbGFiZWwnXSA9ICdEZXNjcmlwdGlvbic7CiRsYW5nWydmaWVsZF9uYW1lX2xhYmVsJ10gPSAnTmFtZSc7CgokbGFuZ1snZmllbGRfcG9zaXRpb25fbGFiZWwnXSA9ICdQb3NpdGlvbic7CiRsYW5nWydmaWVsZF9jb2RlX2xhYmVsJ10gPSAnQ29kZSc7CgokbGFuZ1snYWN0aW9uX2VkaXQnXSA9ICdFZGl0JzsKJGxhbmdbJ2FjdGlvbl9hZGQnXSA9ICdBZGQnOwokbGFuZ1snYWN0aW9uX3N1Ym1pdCddID0gJ1N1Ym1pdCc7CiRsYW5nWydhY3Rpb25fY2FuY2VsJ10gPSAnQ2FuY2VsJzsKJGxhbmdbJ2FjdGlvbl9hcHBseSddID0gJ0FwcGx5JzsKCiRsYW5nWydjb25maXJtX2RlbGV0ZSddID0gJ0FyZSB5b3Ugc3VyZT8nOwoKJGxhbmdbJ2hlYWRlciddID0gJ1NjcmlwdHMnOwoKJGxhbmdbJ2Vycm9yX3RpdGxlJ10gPSAnVGhlIGZpZWxkICJMaW5rIG5hbWUiIGlzIG5vdCBmaWxsZWQgcHJvcGVybHknOwokbGFuZ1snZXJyb3JfdXJsJ10gPSAnVGhlIGZpZWxkICJVUkwiIGlzIG5vdCBmaWxsZWQgcHJvcGVybHkuIEl0IG11c3QgY29udGFpbnMgImh0dHA6Ly8iICc7CgoKJGxhbmdbJ2NoYW5nZWxvZyddID0gJwoJPHVsPgoJCTxsaT5WZXJzaW9uIDAuMC4xIC0gMDEgTWFyY2ggMjAwOC4gSW5pdGlhbCBSZWxlYXNlLgoJCQoJPC91bD4KJzsKJGxhbmdbJ2hlbHAnXSA9ICcKCTxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPgoJPHA+VGhpcyBtb2R1bGUgYWxsb3dzIHlvdSB0byBsb2FkIGFuZCBtYW5hZ2UgSmF2YXNjcmlwdCBsaWJyYXJpZXM8L3A+CgkKCTxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgoJCgk8cD5UbyBpbmNsdWRlIHRoaXMgbW9kdWxlIG9uIGEgcGFnZSwgdXNlIHRoZSB0YWcge2Ntc19tb2R1bGUgbW9kdWxlPSJYdGVuZGVkU2NyaXB0cyJ9PC9wPgoJCgk8aDM+V2hhdCBQYXJhbWV0ZXJzIERvZXMgSXQgVGFrZTwvaDM+CgkKICAgIE5vIHBhcmFtZXRlcnMgYXQgdGhpcyB0aW1lCgoJPGgzPlN1cHBvcnQ8L2gzPgoJPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0IG9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KCTxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgoJPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA3LCBCZW5qYW1pbiBNYWdpdHMgPGEgaHJlZj0ibWFpbHRvOmJlbmphbWluLm1hZ2l0c0BnbWFpbC5jb20iPiZsdDtiZW5qYW1pbi5tYWdpdHNAZ21haWwuY29tJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KCTxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEluc3RhbGwoKQoJICAgV2hlbiB5b3VyIG1vZHVsZSBpcyBpbnN0YWxsZWQsIHlvdSBtYXkgbmVlZCB0byBkbyBzb21lCgkgICBzZXR1cC4gVHlwaWNhbCB0aGluZ3MgdGhhdCBoYXBwZW4gaGVyZSBhcmUgdGhlIGNyZWF0aW9uCgkgICBhbmQgcHJlcG9wdWxhdGlvbiBvZiBkYXRhYmFzZSB0YWJsZXMsIGRhdGFiYXNlIHNlcXVlbmNlcywKCSAgIHBlcm1pc3Npb25zLCBwcmVmZXJlbmNlcywgZXRjLgoJICAgCSAgIAoJICAgRm9yIGluZm9ybWF0aW9uIG9uIHRoZSBjcmVhdGlvbiBvZiBkYXRhYmFzZSB0YWJsZXMsCgkgICBjaGVjayBvdXQgdGhlIEFET0RCIERhdGEgRGljdGlvbmFyeSBwYWdlIGF0CgkgICBodHRwOi8vcGhwbGVucy5jb20vbGVucy9hZG9kYi9kb2NzLWRhdGFkaWN0Lmh0bQoJICAgCgkgICBUaGlzIGZ1bmN0aW9uIGNhbiByZXR1cm4gYSBzdHJpbmcgaW4gY2FzZSBvZiBhbnkgZXJyb3IsCgkgICBhbmQgQ01TIHdpbGwgbm90IGNvbnNpZGVyIHRoZSBtb2R1bGUgaW5zdGFsbGVkLgoJICAgU3VjY2Vzc2Z1bCBpbnN0YWxscyBzaG91bGQgcmV0dXJuIEZBTFNFIG9yIG5vdGhpbmcgYXQgYWxsLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJCQoJCS8vIFR5cGljYWwgRGF0YWJhc2UgSW5pdGlhbGl6YXRpb24KCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7CgkJCgkJLy8gbXlzcWwtc3BlY2lmaWMsIGJ1dCBpZ25vcmVkIGJ5IG90aGVyIGRhdGFiYXNlCgkJJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKCQkKCQkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgkJCiAgICAgICAgLy8gdGFibGUgc2NoZW1hIGRlc2NyaXB0aW9uCiAgICAgICAgJGZsZHMgPSAiCgkJCWlkIEkgS0VZLAoJCQl0aXRsZSBDKDI1NSksCgkJCWZpbGUgQygyNTUpLAoJCQlkZXNjcmlwdGlvbiBYTCwKCQkJY29kZSBYTCwgCgkJCWlzX2FjdGl2ZSBJIERFRkFVTFQgMCwKCQkJaXNfZWRpdGFibGUgSSBERUZBVUxUIDEKCQkJIjsKCgkJLy8gY3JlYXRlIGl0LiBUaGlzIHNob3VsZCBkbyBlcnJvciBjaGVja2luZywgYnV0IEknbSBhIGxhenkgc29kLgoJCQoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV94dGVuZGVzY3JpcHRzIiwgJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJCgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCQoJCQoJCS8vQWRkIHByZWRlZmluZWQgc2NyaXB0cwoJCQoJCS8vJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV94dGVuZGVzY3JpcHRzX3NlcSIpCgkJCgkJJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfeHRlbmRlc2NyaXB0cyBTRVQgaWQ9ID8sIHRpdGxlID0gPywgZmlsZSA9ID8gLCBkZXNjcmlwdGlvbiA9ID8sIGNvZGUgPSA/LCBpc19hY3RpdmUgPSA/LCBpc19lZGl0YWJsZSA9ID8gJzsKCQoJCSRkYXRhID0gYXJyYXkoCgkJICAvKiBBZGQgc2NyaXB0YWN1bG91cyovCgkJICBhcnJheSgKCQkJCSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3h0ZW5kZXNjcmlwdHNfc2VxIikKCQkgICAgICAgICwnU2NyaXB0YWN1bG91cyBMaWJyYXJ5JwoJCQkJLCcvbGliL3NjcmlwdGFjdWxvdXMvc2NyaXB0YWN1bG91cy5qcycKCQkJCSwnTmF0aXZlIGxpYnJhcnkgZnJvbSBDTVMgTWFkZSBTaW1wbGUuIENhbiBub3QgYmUgcmVtb3ZlZCcKCQkJCSwnJwoJCQkJLDAKCQkJCSwwCgkJCQkpCgkgICAgICAvKiBBZGQgcHJvdG90eXBlKi8KCQkgLGFycmF5KAoJCSAgICAgICAgICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfeHRlbmRlc2NyaXB0c19zZXEiKQoJCQkJLCdQcm90b3R5cGUgTGlicmFyeScKCQkJCSwnL2xpYi9zY3JpcHRhY3Vsb3VzL3Byb3RvdHlwZS5qcycKCQkJCSwnTmF0aXZlIGxpYnJhcnkgZnJvbSBDTVMgTWFkZSBTaW1wbGUuIENhbiBub3QgYmUgcmVtb3ZlZCcKCQkJCSwnJwoJCQkJLDAKCQkJCSwwCgkJCQkpCgkJCQkKCQkpOwoJCQogICAgICAgIGZvcmVhY2ggKCRkYXRhIEFTICRlbnRyeSApCiAgICAgICAgewogICAgICAgICAgICAKICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgJGVudHJ5KTsKICAgICAgICAgICAgCiAgICAgICAgfQogICAgICAgIAoJCQoJCQoJCQoJCS8vIGNyZWF0ZSBhIHNlcXVlbmNlCgkJCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV94dGVuZGVzY3JpcHRzX3NlcSIpOwoJCQoJCS8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZwoJCSR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygnaW5zdGFsbGVkJywkdGhpcy0+R2V0VmVyc2lvbigpKSk7CgkJCgkJCgkJLy9BZGQgTW9kdWxlIFRlbXBsYXRlcwoJCSR0aGlzLT5TZXRUZW1wbGF0ZSgnZGlzcGxheV9saXN0JywgJHRoaXMtPkdldFRlbXBsYXRlRnJvbUZpbGUoJ3RlbXBsYXRlLmxpc3QnKSk7CgkJCgkJJHRoaXMtPlNldFRlbXBsYXRlKCdyZWxhdGVkX2xpc3QnLCAkdGhpcy0+R2V0VGVtcGxhdGVGcm9tRmlsZSgndGVtcGxhdGUubGlzdCcpKTsKCQkKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIFVuaW5zdGFsbCgpCgkgICBTb21ldGltZXMsIGFuIGV4Y2VwdGlvbmFsbHkgdW5lbmxpZ2h0ZW5lZCBvciBpZ25vcmFudAoJICAgYWRtaW4gd2lsbCB3aXNoIHRvIHVuaW5zdGFsbCB5b3VyIG1vZHVsZS4gV2hpbGUgaXQKCSAgIHdvdWxkIGJlIGJlc3QgdG8gbGF5IGludG8gdGhlc2UgaWRpb3RzIHdpdGggYSBjbHVlc3RpY2ssCgkgICB3ZSB3aWxsIGRvIHRoZSBtYWduYW5pbW91cyB0aGluZyBhbmQgcmVtb3ZlIHRoZSBtb2R1bGUKCSAgIGFuZCBjbGVhbiB1cCB0aGUgZGF0YWJhc2UsIHBlcm1pc3Npb25zLCBhbmQgcHJlZmVyZW5jZXMKCSAgIHRoYXQgYXJlIHNwZWNpZmljIHRvIGl0LgoJICAgVGhpcyBpcyB0aGUgbWV0aG9kIHdoZXJlIHdlIGRvIHRoaXMuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoJCQoJCS8vIFR5cGljYWwgRGF0YWJhc2UgUmVtb3ZhbAoJCSRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsKCQkKCQkvLyByZW1vdmUgdGhlIGRhdGFiYXNlIHRhYmxlCgkJJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSggJGRiICk7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfeHRlbmRlc2NyaXB0cyIgKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCS8vIHJlbW92ZSB0aGUgc2VxdWVuY2UKCQkkZGItPkRyb3BTZXF1ZW5jZSggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfeHRlbmRlc2NyaXB0c19zZXEiICk7CgkJCgkJLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nCgkJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1bmluc3RhbGxlZCcpKTsKCQkKCQkKCj8+]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIFVwZ3JhZGUoKQoJICAgSWYgeW91ciBtb2R1bGUgdmVyc2lvbiBudW1iZXIgZG9lcyBub3QgbWF0Y2ggdGhlIHZlcnNpb24KCSAgIG51bWJlciBvZiB0aGUgaW5zdGFsbGVkIG1vZHVsZSwgdGhlIENNUyBBZG1pbiB3aWxsIGdpdmUKCSAgIHlvdSBhIGNoYW5jZSB0byB1cGdyYWRlIHRoZSBtb2R1bGUuIFRoaXMgaXMgdGhlIGZ1bmN0aW9uCgkgICB0aGF0IGFjdHVhbGx5IGhhbmRsZXMgdGhlIHVwZ3JhZGUuCgkgICBJZGVhbGx5LCB0aGlzIGZ1bmN0aW9uIHNob3VsZCBoYW5kbGUgdXBncmFkZXMgaW5jcmVtZW50YWxseSwKCSAgIHNvIHlvdSBjb3VsZCB1cGdyYWRlIGZyb20gdmVyc2lvbiAwLjAuMSB0byAxMC41Ljcgd2l0aAoJICAgYSBzaW5nbGUgY2FsbC4gRm9yIGEgZ3JlYXQgZXhhbXBsZSBvZiB0aGlzLCBzZWUgdGhlIE5ld3MKCSAgIG1vZHVsZSBpbiB0aGUgc3RhbmRhcmQgQ01TIGluc3RhbGwuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgkJJGN1cnJlbnRfdmVyc2lvbiA9ICRvbGR2ZXJzaW9uOwoJCQoJCXN3aXRjaCgkY3VycmVudF92ZXJzaW9uKQoJCXsKCQkJY2FzZSAiMS4wIjoKCQkJICAgICBicmVhazsKCQkJY2FzZSAiMS4xIjoKCQkJICAgICBicmVhazsKCQl9CgkJCgkJLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nCgkJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1cGdyYWRlZCcsJHRoaXMtPkdldFZlcnNpb24oKSkpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/scripts/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/adminAddEdit.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3JtX3N0YXJ0fQoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRfdGl0bGVfbGFiZWx9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGZpZWxkX3RpdGxlX25hbWV9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRfZmlsZV9sYWJlbH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZmllbGRfZmlsZV9uYW1lfTwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmaWVsZF9kZXNjcmlwdGlvbl9sYWJlbH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZmllbGRfZGVzY3JpcHRpb25fbmFtZX08L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZmllbGRfY29kZV9sYWJlbH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZmllbGRfY29kZV9uYW1lfTwvcD4KPC9kaXY+CgoKCgp7JGlucHV0X3N1Ym1pdHRlZH0KCntpZiAkaXRlbV9pZH0KCXskaXRlbV9pZH0Key9pZn0KCjxici8+CjxkaXY+eyR4dGVuZGVkX2Zvcm19PC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0X2J1dHRvbn17JGFwcGx5X2J1dHRvbn17JGNhbmNlbH08L3A+CjwvZGl2Pgp7JGZvcm1fZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/adminpanel.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyR0YWJfaGVhZGVyc30KCgl7JHN0YXJ0X2xpbmtzX3RhYn0KCQkKCQk8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+CgkJCTxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRhZGRpdGVtbGlua30geyRhZGRpdGVtfTwvcD4KCQk8L2Rpdj4KCQkKCQl7aWYgJGl0ZW1jb3VudCA+IDB9CgkJCTx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+CgkJCQk8dGhlYWQ+CgkJCQkJPHRyPgoJCQkJCQk8dGg+eyRoZWFkZXJ9PC90aD4KCQkJCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+QWN0aXZlPC90aD4KCQkJCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KCQkJCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KCQkJCQk8L3RyPgoJCQkJPC90aGVhZD4KCQkJCTx0Ym9keT4KCQkJe2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0KCQkJCQk8dHIgY2xhc3M9InskZW50cnktPnJvd2NsYXNzfSIgb25tb3VzZW92ZXI9InRoaXMuY2xhc3NOYW1lPSd7JGVudHJ5LT5yb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS0+cm93Y2xhc3N9JzsiPgoJCQkJCQk8dGQ+CgkJCQkJCXskZW50cnktPm5hbWV9CgkJCQkJCXtpZiAkZW50cnktPmRlc2NyaXB0aW9uIG5lICcnfQoJCQkJCQkgIDxkaXYgc3R5bGU9InBhZGRpbmc6NXB4IDAgNXB4IDA7IGZvbnQtc3R5bGU6aXRhbGljO2NvbG9yOiM0NDQ0NDQ7Ij57JGVudHJ5LT5kZXNjcmlwdGlvbn08L2Rpdj4KCQkJCQkJey9pZn0KCQkJCQkJPC90ZD4KCQkJCQkJPHRkIHdpZHRoPSI2MCI+eyRlbnRyeS0+YWN0aXZlbGlua308L3RkPgoJCQkJCQk8dGQgd2lkdGg9IjMwIj57JGVudHJ5LT5lZGl0bGlua308L3RkPgoJCQkJCQk8dGQgd2lkdGg9IjMwIj57JGVudHJ5LT5kZWxldGVsaW5rfTwvdGQ+CgkJCQkJPC90cj4KCQkJey9mb3JlYWNofQoJCQkJPC90Ym9keT4KCQkJPC90YWJsZT4KCQl7L2lmfQoJCQoJeyRlbmRfdGFifQoJCgl7JHN0YXJ0X2xpc3RfdGVtcGxhdGVfdGFifQoJCQoJCTxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIj4KCQkJPHAgY2xhc3M9InBhZ2VvcHRpb25zIj57JGFkZHRlbXBsYXRlaWNvbn0geyRhZGR0ZW1wbGF0ZWxpbmt9PC9wPgoJCTwvZGl2PgoJCQoJCXtpZiAkdGVtcGxhdGVzX2NvdW50ID4gMH0KCQk8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPnskdGl0bGVfdGVtcGxhdGV9PC90aD4KCQkJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJCQkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHk+CgkJe2ZvcmVhY2ggZnJvbT0kdGVtcGxhdGVzIGl0ZW09ZW50cnl9CgkJCQk8dHIgY2xhc3M9InskZW50cnktPnJvd2NsYXNzfSIgb25tb3VzZW92ZXI9InRoaXMuY2xhc3NOYW1lPSd7JGVudHJ5LT5yb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS0+cm93Y2xhc3N9JzsiPgoJCQkJCTx0ZD57JGVudHJ5LT5uYW1lfTwvdGQ+CgkJCQkJPHRkPnskZW50cnktPmVkaXRsaW5rfTwvdGQ+CgkJCQkJPHRkPnskZW50cnktPmRlbGV0ZWxpbmt9PC90ZD4KCQkJCTwvdHI+CgkJey9mb3JlYWNofQoJCQk8L3Rib2R5PgoJCTwvdGFibGU+CgkJCgkJPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPgoJCQk8cCBjbGFzcz0icGFnZW9wdGlvbnMiPnskYWRkdGVtcGxhdGVpY29ufSB7JGFkZHRlbXBsYXRlbGlua308L3A+CgkJPC9kaXY+CgkJCgkJey9pZn0KCQkKCXskZW5kX3RhYn0KCnskdGFiX2Zvb3RlcnN9CgoK]]></data>
	</file>
	<file>
	  <filename>/templates/error.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfZXJyb3J9PC9oMz4Ke2lmICRtZXNzYWdlIT0nJ308cD57JG1lc3NhZ2V9PC9wPnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/templates/stylesheet.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKKiBTdHlsZXNoZWV0IGZvciBYdGVuZGVkTGlua3MgTW9kdWxlCiovCgojWHRlbmRlZExpbmtzewogIAp9CgojWHRlbmRlZExpbmtzIC50aXRsZSB7CiAgZm9udC13ZWlnaHQ6Ym9sZDsKICBmb250LXNpemU6MTNweDsKfQoKCiNSZWxhdGVkTGlua3MgLnRpdGxlIHsKICAgIGZvbnQtd2VpZ2h0Om5vcm1hbDsKfQoKI1h0ZW5kZWRMaW5rcyAuc3VtbWFyeSwgI1JlbGF0ZWRMaW5rcyAuc3VtbWFyeXsKICBjb2xvcjojNjY2NjY2Owp9CgojWHRlbmRlZExpbmtzIGEsICNSZWxhdGVkTGlua3MgYXsKICAKfQoKI1h0ZW5kZWRMaW5rcyB1bCwgI1JlbGF0ZWRMaW5rcyB1bHsKICBtYXJnaW46MHB4OwogIHBhZGRpbmc6MHB4Owp9CgojWHRlbmRlZExpbmtzIGxpLCAjUmVsYXRlZExpbmtzIGxpewogIGxpc3Qtc3R5bGU6bm9uZTsKICBtYXJnaW4tYm90dG9tOjVweDsKfQ==]]></data>
	</file>
	<file>
	  <filename>/XtendedScripts.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IExpbmtzIC0gCiMgVmVyc2lvbjogMC4wLjIsIEJlbmphbWluIE1hZ2l0cwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA3IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMgVGhpcyBmaWxlIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBNb2R1bGVNYWtlciBtb2R1bGUsIHZlcnNpb24gMC4zLjEKIyBDb3B5cmlnaHQgKGMpIDIwMDcgYnkgU2FtdWVsIEdvbGRzdGVpbiAoc2pnQGNtc21hZGVzaW1wbGUub3JnKSAKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEZvciBIZWxwIGJ1aWxkaW5nIG1vZHVsZXM6CiMgLSBSZWFkIHRoZSBEb2N1bWVudGF0aW9uIGFzIGl0IGJlY29tZXMgYXZhaWxhYmxlIGF0CiMgICBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnLwojIC0gQ2hlY2sgb3V0IHRoZSBTa2VsZXRvbiBNb2R1bGUgZm9yIGEgY29tbWVudGVkIGV4YW1wbGUKIyAtIExvb2sgYXQgb3RoZXIgbW9kdWxlcywgYW5kIGxlYXJuIGZyb20gdGhlIHNvdXJjZQojIC0gQ2hlY2sgb3V0IHRoZSBmb3J1bXMgYXQgaHR0cDovL2ZvcnVtcy5jbXNtYWRlc2ltcGxlLm9yZwojIC0gQ2hhdCB3aXRoIGRldmVsb3BlcnMgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KY2xhc3MgWHRlbmRlZFNjcmlwdHMgZXh0ZW5kcyBDTVNNb2R1bGUKewoKCWZ1bmN0aW9uIEdldE5hbWUoKQoJewoJCXJldHVybiAnWHRlbmRlZFNjcmlwdHMnOwoJfQoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRGcmllbmRseU5hbWUoKQoJICAgVGhpcyBjYW4gcmV0dXJuIGFueSBzdHJpbmcsIHByZWZlcmFibHkgYSBsb2NhbGl6ZWQgbmFtZQoJICAgb2YgdGhlIG1vZHVsZS4gVGhpcyBpcyB0aGUgbmFtZSB0aGF0J3Mgc2hvd24gaW4gdGhlCgkgICBBZG1pbiBNZW51cyBhbmQgc2VjdGlvbiBwYWdlcyAoaWYgdGhlIG1vZHVsZSBoYXMgYW4gYWRtaW4KCSAgIGNvbXBvbmVudCkuCgkgICAKCSAgIFNlZSB0aGUgbm90ZSBvbiBsb2NhbGl6YXRpb24gYXQgdGhlIHRvcCBvZiB0aGlzIGZpbGUuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyk7Cgl9CgoJCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0VmVyc2lvbigpCgkgICBUaGlzIGNhbiByZXR1cm4gYW55IHN0cmluZywgcHJlZmVyYWJseSBhIG51bWJlciBvcgoJICAgc29tZXRoaW5nIHRoYXQgbWFrZXMgc2Vuc2UgZm9yIGRlc2lnbmF0aW5nIGEgdmVyc2lvbi4KCSAgIFRoZSBDTVMgd2lsbCB1c2UgdGhpcyB0byBpZGVudGlmeSB3aGV0aGVyIG9yIG5vdAoJICAgdGhlIGluc3RhbGxlZCB2ZXJzaW9uIG9mIHRoZSBtb2R1bGUgaXMgY3VycmVudCwgYW5kCgkgICB0aGUgbW9kdWxlIHdpbGwgdXNlIGl0IHRvIGZpZ3VyZSBvdXQgaG93IHRvIHVwZ3JhZGUKCSAgIGl0c2VsZiBpZiByZXF1ZXN0ZWQuCSAgIAoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0VmVyc2lvbigpCgl7CgkJcmV0dXJuICcwLjAuMSc7Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldEhlbHAoKQoJICAgVGhpcyByZXR1cm5zIEhUTUwgaW5mb3JtYXRpb24gb24gdGhlIG1vZHVsZS4KCSAgIFR5cGljYWxseSwgeW91J2xsIHdhbnQgdG8gaW5jbHVkZSBpbmZvcm1hdGlvbiBvbiBob3cgdG8KCSAgIHVzZSB0aGUgbW9kdWxlLgoJICAgCgkgICBTZWUgdGhlIG5vdGUgb24gbG9jYWxpemF0aW9uIGF0IHRoZSB0b3Agb2YgdGhpcyBmaWxlLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0SGVscCgpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdoZWxwJyk7Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldEF1dGhvcigpCgkgICBUaGlzIHJldHVybnMgYSBzdHJpbmcgdGhhdCBpcyBwcmVzZW50ZWQgaW4gdGhlIE1vZHVsZQoJICAgQWRtaW4gaWYgeW91IGNsaWNrIG9uIHRoZSAiQWJvdXQiIGxpbmsuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBHZXRBdXRob3IoKQoJewoJCXJldHVybiAnQmVuamFtaW4gTWFnaXRzJzsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0QXV0aG9yRW1haWwoKQoJICAgVGhpcyByZXR1cm5zIGEgc3RyaW5nIHRoYXQgaXMgcHJlc2VudGVkIGluIHRoZSBNb2R1bGUKCSAgIEFkbWluIGlmIHlvdSBjbGljayBvbiB0aGUgIkFib3V0IiBsaW5rLiBJdCBoZWxwcyB1c2VycwoJICAgb2YgeW91ciBtb2R1bGUgZ2V0IGluIHRvdWNoIHdpdGggeW91IHRvIHNlbmQgYnVnIHJlcG9ydHMsCgkgICBxdWVzdGlvbnMsIGNhc2VzIG9mIGJlZXIsIGFuZC9vciBsYXJnZSBzdW1zIG9mIG1vbmV5LgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKQoJewoJCXJldHVybiAnYmVuamFtaW4ubWFnaXRzQGdtYWlsLmNvbSc7Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldENoYW5nZUxvZygpCgkgICBUaGlzIHJldHVybnMgYSBzdHJpbmcgdGhhdCBpcyBwcmVzZW50ZWQgaW4gdGhlIG1vZHVsZQoJICAgQWRtaW4gaWYgeW91IGNsaWNrIG9uIHRoZSBBYm91dCBsaW5rLiBJdCBoZWxwcyB1c2VycwoJICAgZmlndXJlIG91dCB3aGF0J3MgY2hhbmdlZCBiZXR3ZWVuIHJlbGVhc2VzLgoJICAgU2VlIHRoZSBub3RlIG9uIGxvY2FsaXphdGlvbiBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIEdldENoYW5nZUxvZygpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdjaGFuZ2Vsb2cnKTsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgSXNQbHVnaW5Nb2R1bGUoKQoJICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRydWUgb3IgZmFsc2UsIGRlcGVuZGluZyB1cG9uCgkgICB3aGV0aGVyIHVzZXJzIGNhbiBpbmNsdWRlIHRoZSBtb2R1bGUgaW4gYSBwYWdlIG9yCgkgICB0ZW1wbGF0ZSB1c2luZyBhIHNtYXJ0eSB0YWcgb2YgdGhlIGZvcm0KCSAgIHtjbXNfbW9kdWxlIG1vZHVsZT0nTGlua3MnIHBhcmFtMT12YWwgcGFyYW0yPXZhbC4uLn0KCSAgIAoJICAgSWYgeW91ciBtb2R1bGUgZG9lcyBub3QgZ2V0IGluY2x1ZGVkIGluIHBhZ2VzIG9yCgkgICB0ZW1wbGF0ZXMsIHJldHVybiAiZmFsc2UiIGhlcmUuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpCgl7CgkJcmV0dXJuIHRydWU7Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEhhc0FkbWluKCkKCSAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhIGJvb2xlYW4gdmFsdWUsIGRlcGVuZGluZyBvbgoJICAgd2hldGhlciB5b3VyIG1vZHVsZSBhZGRzIGFueXRoaW5nIHRvIHRoZSBBZG1pbiBhcmVhIG9mCgkgICB0aGUgc2l0ZS4gRm9yIHRoZSByZXN0IG9mIHRoZXNlIGNvbW1lbnRzLCBJJ2xsIGJlIGNhbGxpbmcKCSAgIHRoZSBhZG1pbiBwYXJ0IG9mIHlvdXIgbW9kdWxlIHRoZSAiQWRtaW4gUGFuZWwiIGZvcgoJICAgd2FudCBvZiBhIGJldHRlciB0ZXJtLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gSGFzQWRtaW4oKQoJewoJCXJldHVybiB0cnVlOwoJfQoKCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgR2V0QWRtaW5TZWN0aW9uKCkKCSAgIElmIHlvdXIgbW9kdWxlIGhhcyBhbiBBZG1pbiBQYW5lbCwgeW91IGNhbiBzcGVjaWZ5CgkgICB3aGljaCBBZG1pbiBTZWN0aW9uIChvciB0b3AtbGV2ZWwgQWRtaW4gTWVudSkgaXQgc2hvd3MKCSAgIHVwIGluLiBUaGlzIG1ldGhvZCByZXR1cm5zIGEgc3RyaW5nIHRvIHNwZWNpZnkgdGhhdAoJICAgc2VjdGlvbi4gVmFsaWQgcmV0dXJuIHZhbHVlcyBhcmU6CgoJICAgbWFpbiAgICAgICAgLSB0aGUgTWFpbiBtZW51IHRhYi4KCSAgIGNvbnRlbnQgICAgIC0gdGhlIENvbnRlbnQgbWVudQoJICAgbGF5b3V0ICAgICAgLSB0aGUgTGF5b3V0IG1lbnUKCSAgIHVzZXJzZ3JvdXBzIC0gdGhlIFVzZXJzIGFuZCBHcm91cHMgbWVudQoJICAgZXh0ZW5zaW9ucyAgLSB0aGUgRXh0ZW5zaW9ucyBtZW51ICh0aGlzIGlzIHRoZSBkZWZhdWx0KQoJICAgc2l0ZWFkbWluICAgLSB0aGUgU2l0ZSBBZG1pbiBtZW51CgkgICB2aWV3c2l0ZSAgICAtIHRoZSBWaWV3IFNpdGUgbWVudSB0YWIKCSAgIGxvZ291dCAgICAgIC0gdGhlIExvZ291dCBtZW51IHRhYgoJICAgCgkgICBOb3RlIHRoYXQgaWYgeW91IHBsYWNlIHlvdXIgbW9kdWxlIGluIHRoZSBtYWluLAoJICAgdmlld3NpdGUsIG9yIGxvZ291dCBzZWN0aW9ucywgaXQgd2lsbCBzaG93IHVwIGluIHRoZQoJICAgbWVudXMsIGJ1dCB3aWxsIG5vdCBiZSB2aXNpYmxlIGluIGFueSB0b3AtbGV2ZWwKCSAgIHNlY3Rpb24gcGFnZXMuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBHZXRBZG1pblNlY3Rpb24oKQoJewoJCXJldHVybiAnZXh0ZW5zaW9ucyc7Cgl9CgoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBHZXRBZG1pbkRlc2NyaXB0aW9uKCkKCSAgIElmIHlvdXIgbW9kdWxlIGRvZXMgaGF2ZSBhbiBBZG1pbiBQYW5lbCwgeW91CgkgICBjYW4gaGF2ZSBpdCByZXR1cm4gYSBkZXNjcmlwdGlvbiBzdHJpbmcgdGhhdCBnZXRzIHNob3duCgkgICBpbiB0aGUgQWRtaW4gU2VjdGlvbiBwYWdlIHRoYXQgY29udGFpbnMgdGhlIG1vZHVsZS4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIEdldEFkbWluRGVzY3JpcHRpb24oKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygnYWRtaW5kZXNjcmlwdGlvbicpOwoJfQoKCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgVmlzaWJsZVRvQWRtaW5Vc2VyKCkKCSAgIElmIHlvdXIgbW9kdWxlIGRvZXMgaGF2ZSBhbiBBZG1pbiBQYW5lbCwgeW91CgkgICBjYW4gY29udHJvbCB3aGV0aGVyIG9yIG5vdCBpdCdzIGRpc3BsYXllZCBieSB0aGUgYm9vbGVhbgoJICAgdGhhdCBpcyByZXR1cm5lZCBieSB0aGlzIG1ldGhvZC4gVGhpcyBpcyBwcmltYXJpbHkgdXNlZAoJICAgdG8gaGlkZSBtb2R1bGVzIGZyb20gYWRtaW5zIHdobyBsYWNrIHBlcm1pc3Npb24gdG8gdXNlCgkgICB0aGVtLgoJICAgCgkgICBUeXBpY2FsbHksIHlvdSdsbCB1c2Ugc29tZSBwZXJtaXNzaW9uIHRvIHNldCB0aGlzCgkgICAoZS5nLiwgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignU29tZSBQZXJtaXNzaW9uJyk7ICkKCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIFZpc2libGVUb0FkbWluVXNlcigpCgl7CiAgICAgICAgcmV0dXJuIHRydWU7Cgl9CgkKCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgQ2hlY2tBY2Nlc3MoKQoJICAgVGhpcyB3cmFwcGVyIGZ1bmN0aW9uIHdpbGwgY2hlY2sgYWdhaW5zdCB0aGUgc3BlY2lmaWVkIHBlcm1pc3Npb24sCgkgICBhbmQgZGlzcGxheSBhbiBlcnJvciBwYWdlIGlmIHRoZSB1c2VyIGRvZXNuJ3QgaGF2ZSBhZGVxdWF0ZSBwZXJtaXNzaW9ucy4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIENoZWNrQWNjZXNzKCRwZXJtID0gJycpCgl7CgkJcmV0dXJuICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJHBlcm0pOwoJfQoJCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgRGlzcGxheUVycm9yUGFnZSgpCgkgICBUaGlzIGlzIGEgc2ltcGxlIGZ1bmN0aW9uIGZvciBnZW5lcmF0aW5nIGVycm9yIHBhZ2VzLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogICAgZnVuY3Rpb24gRGlzcGxheUVycm9yUGFnZSgkaWQsICYkcGFyYW1zLCAkcmV0dXJuX2lkLCAkbWVzc2FnZT0nJykKICAgIHsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Vycm9yJywgJHRoaXMtPkxhbmcoJ2Vycm9yJykpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ21lc3NhZ2UnLCAkbWVzc2FnZSk7CgogICAgICAgIC8vIERpc3BsYXkgdGhlIHBvcHVsYXRlZCB0ZW1wbGF0ZQogICAgICAgIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZXJyb3IudHBsJyk7CiAgICB9CgkKCgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIEdldERlcGVuZGVuY2llcygpCgkgICBZb3VyIG1vZHVsZSBtYXkgbmVlZCBhbm90aGVyIG1vZHVsZSB0byBhbHJlYWR5IGJlIGluc3RhbGxlZAoJICAgYmVmb3JlIHlvdSBjYW4gaW5zdGFsbCBpdC4KCSAgIFRoaXMgbWV0aG9kIHJldHVybnMgYSBsaXN0IG9mIHRob3NlIGRlcGVuZGVuY2llcyBhbmQKCSAgIG1pbmltdW0gdmVyc2lvbiBudW1iZXJzIHRoYXQgdGhpcyBtb2R1bGUgcmVxdWlyZXMuCgkgICAKCSAgIEl0IHNob3VsZCByZXR1cm4gYW4gaGFzaCwgZWcuCgkgICByZXR1cm4gYXJyYXkoJ3NvbWVtb2R1bGUnPT4nMS4wJywgJ290aGVybW9kdWxlJz0+JzEuMScpOwoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkKCXsKCQlyZXR1cm4gYXJyYXkoKTsKCX0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgTWluaW11bUNNU1ZlcnNpb24oKQoJICAgWW91ciBtb2R1bGUgbWF5IHJlcXVpcmUgZnVuY3Rpb25zIG9yIG9iamVjdHMgZnJvbQoJICAgYSBzcGVjaWZpYyB2ZXJzaW9uIG9mIENNUyBNYWRlIFNpbXBsZS4KCSAgIEV2ZXIgc2luY2UgdmVyc2lvbiAwLjExLCB5b3UgY2FuIHNwZWNpZnkgd2hpY2ggbWluaW11bQoJICAgQ01TIE1TIHZlcnNpb24gaXMgcmVxdWlyZWQgZm9yIHlvdXIgbW9kdWxlLCB3aGljaCB3aWxsCgkgICBwcmV2ZW50IGl0IGZyb20gYmVpbmcgaW5zdGFsbGVkIGJ5IGEgdmVyc2lvbiBvZiBDTVMgdGhhdAoJICAgY2FuJ3QgcnVuIGl0LgoJICAgCgkgICBUaGlzIG1ldGhvZCByZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUKCSAgIG1pbmltdW0gdmVyc2lvbiB0aGF0IHRoaXMgbW9kdWxlIHJlcXVpcmVzLgoJICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCWZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCkKCXsKCQlyZXR1cm4gIjEuMC42IjsKCX0KCgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIE1heGltdW1DTVNWZXJzaW9uKCkKCSAgIFlvdSBtYXkgd2FudCB0byBwcmV2ZW50IHBlb3BsZSBmcm9tIHVzaW5nIHlvdXIgbW9kdWxlIGluCgkgICBmdXR1cmUgdmVyc2lvbnMgb2YgQ01TIE1hZGUgU2ltcGxlLCBlc3BlY2lhbGx5IGlmIHlvdQoJICAgdGhpbmsgQVBJIGZlYXR1cmVzIHlvdSB1c2UgbWF5IGNoYW5nZSAtLSBhZnRlciBhbGwsIHlvdQoJICAgbmV2ZXIgcmVhbGx5IGtub3cgaG93IHRoZSBDTVMgTVMgQVBJIGNvdWxkIGV2b2x2ZS4KCSAgIAoJICAgU28sIHRvIHByZXZlbnQgcGVvcGxlIGZyb20gZmxvb2RpbmcgeW91IHdpdGggYnVnIHJlcG9ydHMKCSAgIHdoZW4gYSBuZXcgdmVyc2lvbiBvZiBDTVMgTVMgaXMgcmVsZWFzZWQsIHlvdSBjYW4gc2ltcGx5CgkgICByZXN0cmljdCB0aGUgdmVyc2lvbi4gVGhlbiwgb2YgY291cnNlLCB0aGUgb251cyBpcyBvbiB5b3UKCSAgIHRvIHJlbGVhc2UgYSBuZXcgdmVyc2lvbiBvZiB5b3VyIG1vZHVsZSB3aGVuIGEgbmV3IHZlcnNpb24KCSAgIG9mIHRoZSBDTVMgaXMgcmVsZWFzZWQuLi4KCSAgIAoJICAgVGhpcyBtZXRob2QgcmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlCgkgICBtYXhpbXVtIHZlcnNpb24gdGhhdCB0aGlzIG1vZHVsZSBzdXBwb3J0cy4KCSAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCglmdW5jdGlvbiBNYXhpbXVtQ01TVmVyc2lvbigpCgl7CgkJcmV0dXJuICIxLjIuMyI7Cgl9CgoKCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICBJbnN0YWxsUG9zdE1lc3NhZ2UoKQoJICAgQWZ0ZXIgaW5zdGFsbGF0aW9uLCB0aGVyZSBtYXkgYmUgdGhpbmdzIHlvdSB3YW50IHRvCgkgICBjb21tdW5pY2F0ZSB0byB5b3VyIGFkbWluLiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYQoJICAgc3RyaW5nIHdoaWNoIHdpbGwgYmUgZGlzcGxheWVkLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7Cgl9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkKCSAgIEFmdGVyIHJlbW92aW5nIGEgbW9kdWxlLCB0aGVyZSBtYXkgYmUgdGhpbmdzIHlvdSB3YW50IHRvCgkgICBjb21tdW5pY2F0ZSB0byB5b3VyIGFkbWluLiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYQoJICAgc3RyaW5nIHdoaWNoIHdpbGwgYmUgZGlzcGxheWVkLgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJZnVuY3Rpb24gVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygncG9zdHVuaW5zdGFsbCcpOwoJfQoKCgoKCS8qKgoJICogVW5pbnN0YWxsUHJlTWVzc2FnZSgpCgkgKiBUaGlzIGFsbG93cyB5b3UgdG8gZGlzcGxheSBhIG1lc3NhZ2UgYWxvbmcgd2l0aCBhIFllcy9ObyBkaWFsb2cgYm94LiBJZiB0aGUgdXNlciByZXNwb25kcwoJICogaW4gdGhlIGFmZmlybWF0aXZlIHRvIHlvdXIgbWVzc2FnZSwgdGhlIHVuaW5zdGFsbCB3aWxsIHByb2NlZWQuIElmIHRoZXkgcmVzcG9uZCBpbiB0aGUKCSAqIG5lZ2F0aXZlLCB0aGUgdW5pbnN0YWxsIHdpbGwgYmUgY2FuY2VsZWQuIFRodXMsIHlvdXIgbWVzc2FnZSBzaG91bGQgYmUgb2YgdGhlIGZvcm0KCSAqICJBbGwgbW9kdWxlIGRhdGEgd2lsbCBiZSBkZWxldGVkLiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gdW5pbnN0YWxsIHRoaXMgbW9kdWxlPyIKCSAqCgkgKiBJZiB5b3UgZG9uJ3Qgd2FudCB0aGUgZGlhbG9nLCBoYXZlIHRoaXMgbWV0aG9kIHJldHVybiBhIEZBTFNFLCB3aGljaCB3aWxsIGNhdXNlIHRoZQoJICogbW9kdWxlIHRvIHVuaW5zdGFsbCBpbW1lZGlhdGVseSBpZiB0aGUgdXNlciBjbGlja3MgdGhlICJ1bmluc3RhbGwiIGxpbmsuCgkgKi8KCWZ1bmN0aW9uIFVuaW5zdGFsbFByZU1lc3NhZ2UoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygncmVhbGx5X3VuaW5zdGFsbCcpOwoJfQoJCgkvKioKCSAqIEdldExpc3QoKQoJICogUmV0dXJucyBhbiBhcnJheSBjb250YWluaW5nIGl0ZW1zCgkgKgoJICogQHJldHVybiBhcnJheQoJICovCgkKCWZ1bmN0aW9uIEdldExpc3QoICRpZCwgJHJldHVybmlkLCAkcGFyYW1zICkKCXsKCQkKCQlnbG9iYWwgJGdDbXM7CgkJCgkJLy8gVVNFIFBBUkFNUwoKCQkKCQkvLyBFTkQgT0YgUEFSQU1TCgkJCgkJJGRiID0mICR0aGlzLT5HZXREYigpOwoJCQoJCgkJJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV94dGVuZGVzY3JpcHRzIFdIRVJFIGlzX2FjdGl2ZT0xIjsKCQkKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCQkKCQkkbGlzdCA9IGFycmF5KCk7CgkJCgkJd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQoJCXsKCQkJJGl0ZW1PYmplY3QgPSBuZXcgc3RkQ2xhc3MoKTsKCQkJCgkJCSRpdGVtT2JqZWN0LT5pZD0kcm93WydpZCddOwoJCQkKCQkJJGl0ZW1PYmplY3QtPnRpdGxlPSRyb3dbJ3RpdGxlJ107CgkJCQoJCQkkaXRlbU9iamVjdC0+ZmlsZT0kcm93WydmaWxlJ107CgkJCQoJCQkkaXRlbU9iamVjdC0+ZGVzY3JpcHRpb249JHJvd1snZGVzY3JpcHRpb24nXTsKCQkJCgkJCSRpdGVtT2JqZWN0LT5jb2RlPSRyb3dbJ2NvZGUnXTsKCgkJCWlmICgkcm93WydpZCddICE9ICcnKQoJCQl7CgkJCQkkbGlzdFtdID0gJGl0ZW1PYmplY3Q7CgkJCX0KCQl9CgoJCXJldHVybiAkbGlzdDsKCgl9CgkKCS8qKgoJICogTG9hZE91dHB1dAoJICogUmV0dXJucyB0aGUgSFRNTCBjb2RlIGZvciBzY3JpcHRzIGNhbGxpbmcKCSAqIEByZXR1cm4gdW5rbm93bgoJICovCgkKCWZ1bmN0aW9uIExvYWRPdXRwdXQoKQoJewoJICAgIAoJICAgICRodG1sID0gJyc7CgkKICAgIAlmb3JlYWNoICggJHRoaXMtPkdldExpc3QoJGlkLCAkcmV0dXJuaWQsICRwYXJhbXMpIGFzICRzY3JpcHQpCiAgICAJewogICAgCQkKICAgIAkgICAgaWYoIWVtcHR5KCRzY3JpcHQtPmNvZGUpKQogICAgCSAgICB7CiAgICAJICAgICAgICAKICAgIAkgICAgICAgICRodG1sIC49ICcKICAgIAkgICAgICAgIAogICAgCSAgICAgICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCI+CiAgICAJICAgICAgICAKICAgIAkgICAgICAgICAgICcuJHNjcmlwdC0+Y29kZS4nCiAgICAJICAgICAgICAKICAgIAkgICAgICAgIDwvc2NyaXB0PgogICAgCSAgICAgICAgCiAgICAJICAgICAgICAnOwogICAgCSAgICAgICAgCiAgICAJICAgIH0KICAgIAkgICAgZWxzZWlmKCFlbXB0eSgkc2NyaXB0LT5maWxlKSkgCiAgICAJICAgIHsKICAgIAkgICAgICAgIAogICAgCSAgICAgICAgJGh0bWwgLj0gJwogICAgCSAgICAgICAgCiAgICAJICAgICAgICAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiBzcmM9IicuJHNjcmlwdC0+ZmlsZS4nIj48L3NjcmlwdD4KICAgIAkgICAgICAgICAgIAogICAgCSAgICAgICAgJzsKICAgIAkgICAgICAgIAogICAgCSAgICB9CiAgICAJICAgIAogICAgCSAgICAKICAgIAl9CiAgICAJCiAgICAJcmV0dXJuICRodG1sOwoJICAgIAoJfQoJCgkvKioKCSAqIEdldEl0ZW1JbmZvcygpCgkgKiBSZXR1cm5zIERCIGZpZWxkIHZhbHVlCgkgKiAKCSAqIEBwYXJhbSBudW1lcmljICRpZAoJICogQHBhcmFtIGFycmF5ICRzZWxlY3Ryb3cKCSAqIEByZXR1cm4gc3RyaW5nCgkgKi8KCWZ1bmN0aW9uIEdldEl0ZW1JbmZvcyAoJGlkLCAkc2VsZWN0cm93ID0gYXJyYXkoKSkKCXsKCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7CgkJCgkJJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV94dGVuZGVzY3JpcHRzIFdIRVJFIGlkID0gPyI7CgkJCQkKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkaWQpKTsKCQkKCQl3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCgkJewoJCQkKCQkgICAgaWYgKGNvdW50KCRzZWxlY3Ryb3cpID4gMCkKCQkJewoJCQkJCgkJCSAgICBmb3JlYWNoICgkc2VsZWN0cm93IGFzICRjb2wpCgkJCQl7CQoJCQkJCQoJCQkJICAgICRhcnJheVskY29sXSA9ICRyb3dbJGNvbF07CgkJCQkgICAgCgkJCQl9CgkJCQkKCQkJCXJldHVybiAkYXJyYXk7IAoJCQkJCgkJCX0KCQkJZWxzZSAKCQkJewoJCQkJCgkJCSAgICByZXR1cm4gJHJvdzsKCQkJICAgIAoJCQl9CgkJCQoJCX0JCQkKCX0KCQoJLyoqCgkgKiBFbnRlciBkZXNjcmlwdGlvbiBoZXJlLi4uCgkgKgoJICogQHBhcmFtIHVua25vd25fdHlwZSAkc3RyaW5nCgkgKiBAcGFyYW0gdW5rbm93bl90eXBlICR0eXBlCgkgKiBAcmV0dXJuIHVua25vd24KCSAqLwoJZnVuY3Rpb24gYXJyYXlVbnNlcmlhbGlzZSAoJHN0cmluZywgJHR5cGU9JycpCgl7CgkJLy8gVGhpcyBmdW5jdGlvbiB1bnNlcmlhbGlzZSBhbiBhcnJheSBnaXZlbiBsaWtlIGEgc3RyaW5nCgoJCSRhcnJheTEgPSBzcGxpdCgnLCcsICRzdHJpbmcpOwoJCQoJCWlmICgkdHlwZSA9PSAnYXNzb2MnKQoJCXsKCQkJJGFycmF5MiA9IGFycmF5KCk7CgkJCQoJCQlmb3JlYWNoICgkYXJyYXkxIGFzICRzdWJhcnJheSkKCQkJewoJCQkJJHRtcGFycmF5ID0gYXJyYXkoKTsKCQkJCSR0bXBhcnJheSA9IHNwbGl0KCc9PicsICRzdWJhcnJheSk7CgkJCQkkYXJyYXkyW3RyaW0oJHRtcGFycmF5WzBdKV0gPSB0cmltKCR0bXBhcnJheVsxXSk7CgkJCX0KCQl9CgkJZWxzZSAKCQl7CgkJCSRhcnJheTIgPSAkYXJyYXkxOwoJCX0KCQoJCXJldHVybiAkYXJyYXkyOwoJfQoJCgkKCQp9Cgo/Pgo=]]></data>
	</file>
</module>
