<?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>HitCounter</name>
	<version>1.0.4-beta1</version>
  <mincmsversion>1.0-svn</mincmsversion>
	<help>PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIHNpbXBseSBjb3VudHMgaGl0cyBvbiBhIHBhZ2UsIHRoYXRzIGl0LCBub3RoaW5nIG1vcmUuICBXZWxsLCB0aGVyZSBpcyBhIGxpdHRsZSBtb3JlLCBpdCBpcyBjYXBhYmxlIG9mIGV4Y2x1ZGluZyBjZXJ0YWluIHN1Ym5ldHMgZnJvbSB0aGUgY291bnRpbmcsIGFuZCBoYXMgYSB0aW1lb3V0IHNvIHRoYXQgeW91IGNhbiBzZXQgdGhlIGludGVydmFsIGJldHdlZW4gdmlzaXRzIGZvciB0aGUgc2FtZSBpcCBhZGRyZXNzIChpbiBtaW51dGVzKTwvcD4KPGgzPkhvdyBEbyBJIFVzZSBJdDwvaDM+CjxwPkl0IGlzIHJlYWxseSBzaW1wbGUsIGp1c3QgcGxhY2UgdGhpcyBzdHJpbmcgc29tZXdoZXJlIGluIHlvdXIgdGVtcGxhdGUgb3IgcGFnZToge2Ntc19tb2R1bGUgbW9kdWxlPUhpdENvdW50ZXJ9PC9wPgo8cD5IZXJlIGlzIGhvdyBJIHVzZSBpdDogICImbHQ7cCZndDtUaGlzIHBhZ2UgaGFzIGJlZW4gdmlld2VkIHtjbXNfbW9kdWxlIG1vZHVsZT1IaXRDb3VudGVyfSB0aW1lcyZsdDsvcCZndDsiLiAgT3B0aW9uYWxseSwgeW91IGNhbiB2aWV3IHRoZSBudW1iZXIgb2YgdW5pcXVlIGhvc3RzIHRoYXQgaGF2ZSB2aXNpdGVkIHlvdXIgcGFnZSBieSBhZGRpbmcgdGhlICJvcHQ9aG9zdHMiIHBhcmFtZXRlciB0byB5b3VyIHRhZy4gIGkuZToge2Ntc19tb2R1bGUgbW9kdWxlPUhpdENvdW50ZXIgb3B0PWhvc3RzfS48L3A+CjxwPklmIHlvdSBvcHRpb25hbGx5IHN1cHBseSB0aGUgInNpbGVudCIgcGFyYW1ldGVyIHRvIHRoZSBtb2R1bGUsIHRoZW4gaW5zdGVhZCBvZiBhbnkgb3V0cHV0LCB0aGUgaGl0Y291bnRlciBtb2R1bGUgd2lsbCBleHBvcnQgc21hcnR5IHZhcmlhYmxlcyAicGFnZWhpdHMiIGFuZCAicGFnZWhvc3RzIiBmaWxsZWQgd2l0aCB0aGUgcHJvcGVyIHZhbHVlLiAgcGFnZWhpdHMgaXMgZXhwb3J0ZWQgaWYgb3B0PSJoaXRzIiAob3IgZGVmYXVsdCksIHBhZ2Vob3N0cyBpcyBleHBvcnRlZCBpZiBvcHQ9Imhvc3RzIiBpLmUuOiB7Y21zX21vZHVsZSBtb2R1bGU9SGl0Q291bnRlciBzaWxlbnQ9MX0uPC9wPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA1LCBSb2JlcnQgQ2FtcGJlbGwgPGEgaHJlZj0ibWFpbHRvOnJvYkB0ZWNoY29tLmR5bmRucy5vcmcuIj4mbHQ7cm9iQHRlY2hjb20uZHluZG5zLm9yZyZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+CjxoMz5QYXJhbWV0ZXJzPC9oMz48dWw+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGFuZz0iZW5fVVMiIC0gUGFyYW1ldGVyIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGF0IGxhbmd1YWdlIHRvIHVzZSBmb3IgZGlzcGxheSBvbiB0aGUgZnJvbnRlbmQuIE5vdCBhbGwgbW9kdWxlcyBzdXBwb3J0IG9yIG5lZWQgdGhpcy48L2xpPjwvdWw+</help>
	<about>PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtjYWxndXkxMDAwQGhvdG1haWwuY29tJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDEuMC40LWJldGExPGJyIC8+PGJyIC8+Q2hhbmdlIEhpc3Rvcnk6PGJyIC8+PHVsPgo8bGk+VmVyc2lvbiAxLjAuIFNlcHRlbWJlciwgMjAwNS4gSW5pdGlhbCBSZWxlYXNlLjwvbGk+CjxsaT5WZXJzaW9uIDEuMC4xLiBTZXB0ZW1iZXIsIDIwMDUuIEFkZGVkIGhvc3RzIHRhZywgYW5kIGNvbmZpcm1hdGlvbiB0byB0aGUgcmVzZXQgYnV0dG9uPC9saT4KPGxpPlZlcnNpb24gMS4wLjIuIE9jdG9iZXIsIDIwMDUuIEFkZGVkIHVzZXIgYWdlbnQgZXhjbHVzaW9uIGFuZCB0cmFja2luZzwvbGk+CjxsaT5WZXJzaW9uIDEuMC40LiAtIEZpeCBhIHdhcm5pbmcgbWVzc2FnZSwgYW5kIGZpeGVzIGZvciBhZG9kYi1wcm9wZXIuICBBbHNvIHR3ZWFrZWQgdGhlIHBvc3QgaW5zdGFsbCBhbmQgdW5pbnN0YWxsIG1lc3NhZ2VzPC9saT4KPC91bD48YnIgLz4=</about>
	<description>An extremely simple hit counter module.</description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/formcontent.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFJvcm1Db250ZW50CiMgQXV0aG9yOiBSb2JlcnQgQ2FtcGJlbGwgPHJvYkB0ZWNoY29tLmR5bmRucy5vcmc+CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOgkvL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKLy8gYSBkdW1iIGNsYXNzIHRvIGFsbG93IG1lIHRvIG1haW50YWluIGEgbGlzdCBvZiBzdHJpbmdzCmNsYXNzIFN0cmluZ0xpc3QKewogIHZhciAkZGF0YTsKICB2YXIgJGlkOwogIHZhciAkYWRkOwogIHZhciAkcmVtb3ZlOwogIHZhciAkbmFtZTsKICB2YXIgJHNpemU7CiAgdmFyICRtYXhsZW5ndGg7CgogIGZ1bmN0aW9uIFN0cmluZ0xpc3QoICRpZCwgJG5hbWUgKQogIHsKICAgICR0aGlzLT5pZCA9ICRpZDsKICAgICR0aGlzLT5uYW1lID0gJG5hbWU7CiAgfQoKICBmdW5jdGlvbiBzZXRBZGQoICRhZGQgKQogIHsKICAgICR0aGlzLT5hZGQgPSAkYWRkOwogIH0KCiAgZnVuY3Rpb24gc2V0RGF0YSggJGFycmF5ICkKICB7CiAgICAkdGhpcy0+ZGF0YSA9ICRhcnJheTsKICB9CgogIGZ1bmN0aW9uIHNldE1heGxlbmd0aCggJG1heGxlbmd0aCApCiAgewogICAgJHRoaXMtPm1heGxlbmd0aCA9ICRtYXhsZW5ndGg7CiAgfQoKICBmdW5jdGlvbiBzZXRSZW1vdmUoICRyZW1vdmUgKQogIHsKICAgICR0aGlzLT5yZW1vdmUgPSAkcmVtb3ZlOwogIH0KCiAgZnVuY3Rpb24gc2V0U2l6ZSggJHNpemUgKQogIHsKICAgICR0aGlzLT5zaXplID0gJHNpemU7CiAgfQoKICBmdW5jdGlvbiBkaXNwbGF5KCkKICB7CiAgICAkc3RyID0gIiI7CiAgICBpZiggY291bnQoJHRoaXMtPmRhdGEgKSApCiAgICAgIHsKCSRzdHIuPSAiPHRhYmxlPiI7Cglmb3JlYWNoKCAkdGhpcy0+ZGF0YSBhcyAkZWxlbSApCgl7CgkgIGlmKCAkZWxlbSA9PSAnJyApIGNvbnRpbnVlOwoJICAkc3RyLj0iPHRyPjx0ZD4iOwoJICAkc3RyLj0gJGVsZW0uJyZuYnNwOzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IicuJHRoaXMtPmlkLiR0aGlzLT5uYW1lLidfaGlkZGVuXycuJGVsZW0uJyIgdmFsdWU9IicuJGVsZW0uJyIgLz4nOwoJICAkc3RyLj0iPC90ZD48dGQ+IjsKCSAgJHN0ci49JzxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9IicuJHRoaXMtPmlkLiR0aGlzLT5uYW1lLidfcmVtb3ZlXycuJGVsZW0uJyIgdmFsdWU9IicuJHRoaXMtPnJlbW92ZS4nIiAvPic7CgkgICRzdHIuPSI8L3RkPjwvdHI+IjsKCX0KICAgICAgfQogICAgJHN0ciAuPSAnPHRyPjx0ZCBjb2xzcGFuPSIyIj4nOwogICAgJHN0ciAuPSAnPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IicuJHRoaXMtPmlkLiR0aGlzLT5uYW1lLidfdGV4dCIgdmFsdWU9IiIgc2l6ZT0iJy4kdGhpcy0+c2l6ZS4nIiBtYXhsZW5ndGg9IicuJHRoaXMtPm1heGxlbmd0aC4nIiAvPic7CiAgICAkc3RyIC49ICc8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSInLiR0aGlzLT5pZC4kdGhpcy0+bmFtZS4nX2FkZCIgdmFsdWU9IicuJHRoaXMtPmFkZC4nIiAvPic7Cgkkc3RyLj0iPC90ZD48L3RyPjwvdGFibGU+IjsKICAgIHJldHVybiAkc3RyOwogIH0KCiAgZnVuY3Rpb24gZ2V0RGF0YSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5kYXRhOwogIH0KCiAgZnVuY3Rpb24gaGFuZGxlciggJHBhcmFtcyApCiAgewogICAgLy8gc2V0dXAgdGhlIGRhdGEKICAgICR0aGlzLT5kYXRhID0gYXJyYXkoKTsKICAgIGZvcmVhY2goICRwYXJhbXMgYXMgJGtleSA9PiAkdmFsdWUgKQogICAgewogICAgICBpZiggcHJlZ19tYXRjaCggJy8nLiR0aGlzLT5uYW1lLidfaGlkZGVuXy8nLCAka2V5ICkgKQoJewoJICBhcnJheV9wdXNoKCAkdGhpcy0+ZGF0YSwgJHZhbHVlICk7Cgl9CiAgICB9CiAgICAKICAgIC8vIGhhbmRsZSBhbiBhZGQKICAgIGlmKCBpc3NldCggJHBhcmFtc1skdGhpcy0+bmFtZS4nX2FkZCddICkgKQogICAgICB7CglhcnJheV9wdXNoKCAkdGhpcy0+ZGF0YSwgJHBhcmFtc1skdGhpcy0+bmFtZS4nX3RleHQnXSApOwogICAgICB9CgogICAgZm9yZWFjaCggJHBhcmFtcyBhcyAka2V5ID0+ICR2YWwgKQogICAgewogICAgICBpZiggcHJlZ19tYXRjaCggJy8nLiR0aGlzLT5uYW1lLidfcmVtb3ZlXy8nLCAka2V5ICkgKQoJewoJICAkaXRtID0gc3Vic3RyKCAka2V5LCBzdHJsZW4oJHRoaXMtPm5hbWUuJ19yZW1vdmVfJykgKTsKCSAgLy8gd2UncmUgcmVtb3Zpbmcgc29tZXRoaW5nCgkgIHVuc2V0KCR0aGlzLT5kYXRhW2FycmF5X3NlYXJjaCgkaXRtLCR0aGlzLT5kYXRhKV0pOwoJfQogICAgfQogIH0KfQoKPz4=]]></data>
	</file>
	<file>
	  <filename>/HitCounter.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEhpdENvdW50ZXIgLSBBIEhpdENvdW50ZXIgYWRtaW5pc3RyYXRpb24gbW9kdWxlCiMgVmVyc2lvbjogMi4wLjcsIFJvYmVydCBDYW1wYmVsbCA8cm9iQHRlY2hjb20uZHluZG5zLm9yZz4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCi8qCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8qIFlvdXIgaW5pdGlhbCBDbGFzcyBkZWNsYXJhdGlvbi4gVGhpcyBmaWxlJ3MgbmFtZSBtdXN0CiAgIGJlICJbY2xhc3MncyBuYW1lXS5tb2R1bGUucGhwIiwgb3IsIGluIHRoaXMgY2FzZSwKICAgSGl0Q291bnRlci5tb2R1bGUucGhwCiovIAoKcmVxdWlyZV9vbmNlKCJmb3JtY29udGVudC5waHAiKTsKCmNsYXNzIEhpdENvdW50ZXIgZXh0ZW5kcyBDTVNNb2R1bGUKewoKCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRBZG1pbkRlc2NyaXB0aW9uKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ21vZGRlc2NyaXB0aW9uJyk7CiAgfQogICAKCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRBZG1pblNlY3Rpb24oKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpCiAgewogICAgcmV0dXJuICdzaXRlYWRtaW4nOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldEF1dGhvcigpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0QXV0aG9yKCkKICB7CiAgICByZXR1cm4gJ2NhbGd1eTEwMDAnOwogIH0KCiAgCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRBdXRob3JFbWFpbCgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKQogIHsKICAgIHJldHVybiAnY2FsZ3V5MTAwMEBob3RtYWlsLmNvbSc7CiAgfQogIAoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRDaGFuZ2VMb2coKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldENoYW5nZUxvZygpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdjaGFuZ2Vsb2cnKTsKICB9CiAKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0RGVwZW5kZW5jaWVzKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKQogIHsKICAgIHJldHVybiBhcnJheSgpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldEZyaWVuZGx5TmFtZSgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldEhlbHAoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldEhlbHAoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygnaGVscCcpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldE5hbWUoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldE5hbWUoKQogIHsKICAgIHJldHVybiAnSGl0Q291bnRlcic7CiAgfQoKCQogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldFZlcnNpb24oKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldFZlcnNpb24oKQogIHsKICAgIHJldHVybiAnMS4wLjQtYmV0YTEnOwogIH0KCiAgCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgSGFzQWRtaW4oKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEhhc0FkbWluKCkKICB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CgogCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgTWluaW11bUNNU1ZlcnNpb24oKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uICgpCiAgewogICAgcmV0dXJuICcxLjAtc3ZuJzsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBJbnN0YWxsKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBJbnN0YWxsKCkKICB7CiAgICAkZGIgPSAkdGhpcy0+Y21zLT5kYjsKICAgICR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CiAgICAkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgogICAgJGZsZHMgPSAiaWQgSSBLRVksCiAgICAgICAgICAgICBwYWdlX2lkIEksCiAgICAgICAgICAgICBpcF9hZGRyZXNzIEMoMjU1KSwKICAgICAgICAgICAgIGRhdGUgRFQsCiAgICAgICAgICAgICBhZ2VudCBDKDI1NSkKICAgICAgICAgICAgIjsKICAgIC8vIGNyZWF0ZSBpdC4gVGhpcyBzaG91bGQgZG8gZXJyb3IgY2hlY2tpbmcsIGJ1dCBJJ20gYSBsYXp5IHNvZC4KICAgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9oaXRjb3VudGVyIiwKCQkJCSAgICAgICRmbGRzLCAkdGFib3B0YXJyYXkpOwogICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAgIC8vIGMkcmVhdGUgYSBzZXF1ZW5jZQogICAgJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9oaXRjb3VudGVyX3NlcSIpOwoKICAgIC8vIGNyZWF0ZSBhIHBlcm1pc3Npb24KICAgICR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdNYW5hZ2UgSGl0Q291bnRlcicsICdNYW5hZ2UgSGl0Q291bnRlcicpOwogICAgICAgIAogICAgLy8gY3JlYXRlIGEgcHJlZmVyZW5jZSBvciB0d28KICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCJzdWJuZXRfZXhjbHVzaW9ucyIsICIxOTIuMTY4LjAuMC8xNiwxMC4wLjAuMC84Iik7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgidmlzaXRfdGltZW91dCIsIjMwIik7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgiYWdlbnRfZXhjbHVzaW9ucyIsICIiKTsKCiAgICAvLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cKICAgICR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygnaW5zdGFsbGVkJywkdGhpcy0+R2V0VmVyc2lvbigpKSk7CiAgfQogICAKCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBJc1BsdWdpbk1vZHVsZSgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKQogIHsKICAgIHJldHVybiB0cnVlOwogIH0KIAoKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEluc3RhbGxQb3N0TWVzc2FnZSgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBVbmluc3RhbGwoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIFVuaW5zdGFsbCgpCiAgewogICAgJGRiID0gJHRoaXMtPmNtcy0+ZGI7CgogICAgJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSggJGRiICk7CiAgICAkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9oaXRjb3VudGVyIiApOwogICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAgJGRiLT5Ecm9wU2VxdWVuY2UoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2hpdGNvdW50ZXJfc2VxIiApOwoKICAgIC8vIHJlbW92ZSB0aGUgcGVybWlzc2lvbnMKICAgICR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdNYW5hZ2UgSGl0Q291bnRlcicpOwoKICAgIC8vIGFuZCB0aGUgcHJlZmVyZW5jZXMKICAgICR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdzdWJuZXRfZXhjbHVzaW9ucycpOwogICAgJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ3Zpc2l0X3RpbWVvdXQnKTsKCiAgICAvLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cKICAgICR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygndW5pbnN0YWxsZWQnKSk7CiAgfQoKICAKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBVcGdyYWRlKCRvbGR2ZXJzaW9uLCAkbmV3dmVyc2lvbikKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBVcGdyYWRlKCRvbGR2ZXJzaW9uLCAkbmV3dmVyc2lvbikKICB7CiAgICAkZmxkcyA9ICJpZCBJIEtFWSwKICAgICAgICAgICAgIHBhZ2VfaWQgSSwKICAgICAgICAgICAgIGlwX2FkZHJlc3MgQygyNTUpLAogICAgICAgICAgICAgZGF0ZSBUCiAgICAgICAgICAgICBhZ2VudCBDKDI1NSksCiAgICAgICAgICAgICI7CgogICAgJGRiID0gJHRoaXMtPkdldERiKCk7CgogICAgJGN1cnJlbnRfdmVyc2lvbiA9ICRvbGR2ZXJzaW9uOwogICAgc3dpdGNoKCRjdXJyZW50X3ZlcnNpb24pCiAgICAgIHsKICAgICAgY2FzZSAiMS4wIjoKICAgICAgY2FzZSAiMS4wLjEiOgoJJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoJJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfaGl0Y291bnRlciIsICJhZ2VudCBDKDI1NSkiKTsKICAgICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CglicmVhazsKICAgICAgfQoJCQogICAgLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nCiAgICAkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ3VwZ3JhZGVkJywkdGhpcy0+R2V0VmVyc2lvbigpKSk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgVmlzaWJsZVRvQWRtaW5Vc2VyKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKQogIHsKICAgIHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNYW5hZ2UgSGl0Q291bnRlcicpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIERvQWN0aW9uKCRhY3Rpb24sICRpZCwgJHBhcmFtcywgJHJldHVybl9pZD0tMSkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBEb0FjdGlvbigkYWN0aW9uLCAkaWQsICRwYXJhbXMsICRyZXR1cm5faWQ9LTEpCiAgewogICAgc3dpdGNoICgkYWN0aW9uKQogICAgICB7CiAgICAgIGNhc2UgJ2RlZmF1bHQnOgoJewoJICAvLyB0aGlzIGlzIHRoZSBwbHVnLWluIHNpZGUsIGkuZS4sIG5vbi1BZG1pbgoJICAkdGhpcy0+X0Rpc3BsYXlNb2R1bGVPdXRwdXQoJGlkLCAkcGFyYW1zLCAkcmV0dXJuX2lkKTsKCSAgYnJlYWs7Cgl9CiAgICAgIGNhc2UgJ2RlZmF1bHRhZG1pbic6Cgl7CiAgICAgICAgICAKCSAgLy8gb25seSBsZXQgcGVvcGxlIGFjY2VzcyBtb2R1bGUgcHJlZmVyZW5jZXMgaWYgdGhleSBoYXZlIHBlcm1pc3Npb24KCSAgaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBIaXRDb3VudGVyJykpCiAgICAgICAJICAgIHsKCSAgICAgICR0aGlzLT5fRGlzcGxheUFkbWluUGFuZWwoJGlkLCAkcGFyYW1zLCAkcmV0dXJuX2lkKTsKCSAgICB9CgkgIGVsc2UJICAKCSAgICB7CgkgICAgICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuX2lkLAoJCQkJICAgICAgJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsKCSAgICB9CgkgIGJyZWFrOwoJfQogICAgICBjYXNlICdzYXZlX2FkbWlucHJlZnMnOgoJewoJICBpZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTWFuYWdlIEhpdENvdW50ZXInKSkKCSAgICB7CgkgICAgICAkdGhpcy0+X1NhdmVBZG1pblByZWZzKCRpZCwgJHBhcmFtcywgJHJldHVybl9pZCk7CgkgICAgfQoJICBicmVhazsKCX0KICAgICAgfQoKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBfRGlzcGxheUFkbWluUGFuZWwoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICRtZXNzYWdlPScnKQogICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIF9EaXNwbGF5QWRtaW5QYW5lbCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQsICRtZXNzYWdlPScnKQogIHsKICAgICRkYiA9ICR0aGlzLT5jbXMtPmRiOwoKICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpOwogICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdwcmVmZXJlbmNlcycsJHRoaXMtPkxhbmcoJ3ByZWZlcmVuY2VzJykpOwogICAgZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOwoKICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpOwogICAgCiAgICAvLwogICAgLy8gVGhlIHN0YXRpc3RpY3MgdGFiIHRvZG8KICAgIC8vCgoKICAgIC8vCiAgICAvLyBUaGUgcHJlZmVyZW5jZXMgdGFiCiAgICAvLwogICAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3ByZWZlcmVuY2VzJyk7CiAgICAvLyBhbGxvdyB0aGUgdXNlciB0byBzZXQgdGhlIHByZWZlcmVuY2VzLCBhbmQgdG8gcmVzZXQKICAgIC8vIGFsbCBzdGF0aXN0aWNzCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsCgkJCQkgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCggJGlkLCAKCQkJCQkJCSAnc2F2ZV9hZG1pbnByZWZzJywKCQkJCQkJCSAkcmV0dXJuaWQpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kZm9ybScsCgkJCQkgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsCgkJCQkgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCAoJGlkLCAnc3VibWl0JywKCQkJCQkJCSAgICAnU3VibWl0JykpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyZXNldGNvdW50cycsCgkJCQkgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0ICgkaWQsJ3Jlc2V0Y291bnRzJywKCQkJCQkJCSAgICR0aGlzLT5MYW5nKCdyZXNldGhpdGNvdW50cycpLCAnb25DbGljaz0icmV0dXJuIGNvbmZpcm0oXCcnLiR0aGlzLT5MYW5nKCdhcmV5b3VzdXJlJykuJ1wnKTsiJykpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfc3VibmV0ZXhjbHVkZScsCgkJCSAgJHRoaXMtPkxhbmcoJ3Byb21wdF9zdWJuZXRleGNsdWRlJykpOwogICAgJG1hbmlwMCA9IG5ldyBTdHJpbmdMaXN0KCAkaWQsICdpbnB1dF9zdWJuZXRsaXN0JyApOwogICAgJG1hbmlwMC0+U2V0QWRkKCR0aGlzLT5MYW5nKCdhZGQnKSk7CiAgICAkbWFuaXAwLT5TZXRSZW1vdmUoJHRoaXMtPkxhbmcoJ3JlbW92ZScpKTsKICAgICRtYW5pcDAtPnNldERhdGEoIGV4cGxvZGUoICIsIiwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3N1Ym5ldF9leGNsdXNpb25zJykgKSApOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCJpbnB1dF9zdWJuZXRleGNsdWRlIiwkbWFuaXAwLT5kaXNwbGF5KCkpOwoKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigncHJvbXB0X3RpbWVvdXQnLAoJCQkgICR0aGlzLT5MYW5nKCd0aW1lb3V0JykpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF90aW1lb3V0JywKCQkJICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdpbnB1dF90aW1lb3V0JywKCQkJCQkJICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndmlzaXRfdGltZW91dCcsJzMwJyksMywzKSk7CgogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfYWdlbnRleGNsdWRlJywKCQkJICAkdGhpcy0+TGFuZygncHJvbXB0X2FnZW50ZXhjbHVkZScpKTsKICAgICRtYW5pcCA9IG5ldyBTdHJpbmdMaXN0KCAkaWQsICdpbnB1dF9hZ2VudGxpc3QnICk7CiAgICAkbWFuaXAtPlNldEFkZCgkdGhpcy0+TGFuZygnYWRkJykpOwogICAgJG1hbmlwLT5TZXRSZW1vdmUoJHRoaXMtPkxhbmcoJ3JlbW92ZScpKTsKICAgICRtYW5pcC0+c2V0RGF0YSggZXhwbG9kZSggIiwiLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWdlbnRfZXhjbHVzaW9ucycpICkgKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigiaW5wdXRfYWdlbnRleGNsdWRlIiwkbWFuaXAtPmRpc3BsYXkoKSk7CiAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWlucHJlZnMudHBsJyk7CiAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKICAgIGVjaG8gJHRoaXMtPkVuZFRhYkNvbnRlbnQoKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBfRGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJG1lc3NhZ2U9JycpCiAgIE5PVCBQQVJUIE9GIFRIRSBNT0RVTEUgQVBJCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gX0Rpc3BsYXlFcnJvclBhZ2UoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkLCAkbWVzc2FnZT0nJykKICB7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24gKCd0aXRsZV9lcnJvcicsICR0aGlzLT5MYW5nICgnZXJyb3InKSk7CiAgICBpZiAoJG1lc3NhZ2UgIT0gJycpCiAgICAgIHsKCSR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ21lc3NhZ2UnLCAkbWVzc2FnZSk7CiAgICAgIH0KICAgIAogICAgLy8gRGlzcGxheSB0aGUgcG9wdWxhdGVkIHRlbXBsYXRlCiAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUgKCdlcnJvci50cGwnKTsKICB9CiAgCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgX0Rpc3BsYXlNb2R1bGVPdXRwdXQoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpCiAgIE5PVCBQQVJUIE9GIFRIRSBNT0RVTEUgQVBJCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gX0Rpc3BsYXlNb2R1bGVPdXRwdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgICRkYiA9ICR0aGlzLT5jbXMtPmRiOwoKICAgIGlmKCAhJHRoaXMtPl9IYW5kbGVIaXQoICRpZCwgJHBhcmFtcywgJHJldHVybmlkICkgKQogICAgICB7CglyZXR1cm47CiAgICAgIH0KICAgIC8vIG5vdyBkbyBzb21ldGhpbmcgYmFzZWQgb24gd2hpY2ggb3B0aW9uIHdlJ3JlIGdpdmVuCiAgICAkbW9kZSA9ICdoaXRzJzsKICAgICRxID0gJyc7CiAgICBpZiggaXNzZXQoICRwYXJhbXNbJ29wdCddICkgKQogICAgICB7CgkkbW9kZSA9ICRwYXJhbXNbJ29wdCddOwogICAgICB9CiAgICBzd2l0Y2goICRtb2RlICkKICAgICAgewogICAgICBjYXNlICdoaXRzJzoKCXsKCSAgLy8gbm93IGVjaG8gdGhlIHRvdGFsIG51bWJlciBvZiBoaXRzIGZvciB0aGlzIHBhZ2UKCSAgJGNvdW50ID0gMDsKCSAgJHEgPSAiU0VMRUNUIENPVU5UKGlkKSBhcyB0b3RhbCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfaGl0Y291bnRlcgogICAgICAgICAgV0hFUkUgcGFnZV9pZCA9ID8iOwoJICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxLCBhcnJheSggJHJldHVybmlkICkgKTsKCSAgaWYoICRkYnJlc3VsdCAmJiAkZGJyZXN1bHQtPlJlY29yZENvdW50KCkgPiAwICkKCSAgICB7CgkgICAgICAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpOwoJICAgICAgJGNvdW50ID0gJHJvd1sndG90YWwnXTsKCSAgICB9CgkgIGlmKCBpc3NldCgkcGFyYW1zWydzaWxlbnQnXSkgKQoJICAgIHsKCSAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigncGFnZWhpdHMnLCRjb3VudCk7CgkgICAgfQoJICBlbHNlCgkgICAgewoJICAgICAgZWNobyAkY291bnQ7CgkgICAgfQoJICBicmVhazsKCX0KCiAgICAgIGNhc2UgJ2hvc3RzJzoKCXsKCSAgJGNvdW50ID0gMDsKCSAgJHEgPSAiU0VMRUNUIGNvdW50KCBkaXN0aW5jdCBpcF9hZGRyZXNzKSBhcyB0b3RhbCBGUk9NICIuCiAgICAgICAgICAgICAgIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2hpdGNvdW50ZXIKICAgICAgICAgICAgICAgV0hFUkUgcGFnZV9pZCA9ID8iOwoJICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxLCBhcnJheSggJHJldHVybmlkICkgKTsKCSAgaWYoICRkYnJlc3VsdCAmJiAkZGJyZXN1bHQtPlJlY29yZENvdW50KCkgPiAwICkKCSAgICB7CgkgICAgICAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpOwoJICAgICAgJGNvdW50ID0gJHJvd1sndG90YWwnXTsKCSAgICB9CgkgIGlmKCBpc3NldCgkcGFyYW1zWydzaWxlbnQnXSkgKQoJICAgIHsKCSAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigncGFnZWhvc3RzJywkY291bnQpOwoJICAgIH0KCSAgZWxzZQoJICAgIHsKCSAgICAgIGVjaG8gJGNvdW50OwoJICAgIH0KCSAgYnJlYWs7Cgl9CiAgICAgIH0KICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgIAogICBfSGFuZGxlSGl0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBfSGFuZGxlSGl0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKICB7CiAgICAkZGIgPSAkdGhpcy0+Y21zLT5kYjsKICAgICRpcCA9IGdldGVudigiUkVNT1RFX0FERFIiKTsKCiAgICAvLyBtYWtlIHN1cmUgd2UncmUgbm90IGluIHRoZSBleGNsdWRlZCBpcCByYW5nZQogICAgJHN1Ym5ldF9leGNsdXNpb25zID0gdHJpbSgkdGhpcy0+R2V0UHJlZmVyZW5jZSgiYWdlbnRfZXhjbHVzaW9ucyIpKTsKICAgIGlmKCRzdWJuZXRfZXhjbHVzaW9ucyAhPSAiIil7CiAgICAgICRzdWJuZXRzID0gc3BsaXQoIiwiLCAkc3VibmV0X2V4Y2x1c2lvbnMpOwogICAgICAkdGVzdCA9IDA7CiAgICAgIGZvcmVhY2goJHN1Ym5ldHMgYXMgJHN1Ym5ldCkKCXsKCSAgJHRlc3QgPSAkdGhpcy0+X3Rlc3RpcCggJHN1Ym5ldCwgJGlwICk7CgkgIGlmKCAkdGVzdCApCgkgICAgewoJICAgICAgLy8gZG9uJ3QgYWxsb3cgYW55IG1vcmUgcHJvY2Vzc2luZwoJICAgICAgcmV0dXJuIHRydWU7CgkgICAgfQoJfQogICAgfQoKICAgIC8vIG9yIGFuIGV4Y2x1ZGVkIHVzZXIgYWdlbnQKICAgICRhZ2VudF9leGNsdXNpb25zID0gdHJpbSgkdGhpcy0+R2V0UHJlZmVyZW5jZSgiYWdlbnRfZXhjbHVzaW9ucyIpKTsKICAgIGlmKCBpc3NldCggJF9TRVJWRVJbIkhUVFBfVVNFUl9BR0VOVCJdICkgJiYgJGFnZW50X2V4Y2x1c2lvbnMgIT0gIiIpCiAgICAgIHsKCSRhZ2VudHMgPSBzcGxpdCgiLCIsICRhZ2VudF9leGNsdXNpb25zKTsKCSR0ZXN0ID0gMDsKCWZvcmVhY2goJGFnZW50cyBhcyAkYWdlbnQpCgkgIHsKCSAgICBpZiggcHJlZ19tYXRjaCggIi8iLiRhZ2VudC4iLyIsICRfU0VSVkVSWyJIVFRQX1VTRVJfQUdFTlQiXSApICkKCSAgICAgIHsKCQkvLyBkb24ndCBhbGxvdyBhbnkgbW9yZSBwcm9jZXNzaW5nCgkJcmV0dXJuIHRydWU7CgkgICAgICB9CgkgIH0KICAgICAgfQoKICAgIC8vIHRoZW4gY2hlY2sgdG8gbWFrZSBzdXJlIHdlIGhhdmVuJ3Qgc2V0IGEgaGl0IGZyb20gdGhpcyBwZXJzb24KICAgIC8vIHdpdGhpbiB0aGUgbGFzdCBOIG1pbnV0ZXMKICAgICR0aW1lb3V0ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoInZpc2l0X3RpbWVvdXQiKTsKICAgICRleHByID0gc3ByaW50ZigiJWQgbWludXRlcyBhZ28iLCR0aW1lb3V0KTsKICAgICRkYXRlMSA9IHN0cnRvdGltZSgkZXhwciwgdGltZSgpKTsKICAgICRxID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9oaXRjb3VudGVyIFdIRVJFCiAgICAgIHBhZ2VfaWQgPSAkcmV0dXJuaWQgQU5EIGlwX2FkZHJlc3MgPSBcIiRpcFwiIEFORCBkYXRlID4gIi4kZGItPkRCVGltZVN0YW1wKCRkYXRlMSk7CiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxICk7CiAgICBpZiggISRkYnJlc3VsdCApIAogICAgICB7CgkkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UgKCRpZCwgJHBhcmFtcywgJHJldHVybl9pZCwKCQkJCSAgJHRoaXMtPkxhbmcgKCdlcnJvcl9kYmVycm9yJykpOwoJcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpOwogICAgaWYoICRyb3cgKSAKICAgICAgewoJLy8gdGhlcmUgd2FzIGEgaGl0IHdpdGhpbiB0aGUgdGltZW91dCBwZXJpb2QKCXJldHVybiB0cnVlOwogICAgICB9CiAgICAKICAgIC8vIHRoZW4gYWRkIGFuIGVudHJ5IGludG8gdGhlIGRhdGFiYXNlCiAgICAkbmV3aWQgPSAkZGItPkdlbklEKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9oaXRjb3VudGVyX3NlcSIgKTsKICAgICRhZ2VudCA9ICRfU0VSVkVSWyJIVFRQX1VTRVJfQUdFTlQiXTsKCiAgICAkcSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2hpdGNvdW50ZXIgVkFMVUVTICg/LD8sPyw/LD8pIjsKICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHEsIGFycmF5KCAkbmV3aWQsICRyZXR1cm5pZCwgJGlwLCAKCQkJCQkgdHJpbSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSksIiciKSwKCQkJCQkgJGFnZW50KSk7CiAgICBpZiggISRkYnJlc3VsdCApCiAgICAgIHsKCSR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSAoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsCgkJCQkgICR0aGlzLT5MYW5nICgnZXJyb3JfZGJlcnJvcicpKTsKCXJldHVybiBmYWxzZTsKICAgICAgfQoKICAgIHJldHVybiB0cnVlOwogIH0KICAKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgX1NhdmVBZG1pblByZWZzKCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCAKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBfU2F2ZUFkbWluUHJlZnMoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkICkKICB7CiAgICAkZGIgPSAkdGhpcy0+Y21zLT5kYjsKICAgIGlmKCBpc3NldCggJHBhcmFtc1sncmVzZXRjb3VudHMnXSApICkKICAgICAgewoJJHEgPSAiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9oaXRjb3VudGVyIjsKCSRkYi0+RXhlY3V0ZSggJHEgKTsKICAgICAgfQogICAgZWxzZSB7CiAgICAgICRtYW5pcDEgPSBuZXcgU3RyaW5nTGlzdCggJGlkLCAnaW5wdXRfc3VibmV0bGlzdCcpOwogICAgICAkbWFuaXAxLT5oYW5kbGVyKCAkcGFyYW1zICk7CiAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzdWJuZXRfZXhjbHVzaW9ucycsaW1wbG9kZSgiLCIsJG1hbmlwMS0+Z2V0RGF0YSgpKSk7CgogICAgICAkdGltZW91dCA9ICczMCc7CiAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydpbnB1dF90aW1lb3V0J10pICkKCXsKCSAgJHRpbWVvdXQgPSAkcGFyYW1zWydpbnB1dF90aW1lb3V0J107Cgl9CiAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCd2aXNpdF90aW1lb3V0JywkdGltZW91dCk7CgogICAgICAkbWFuaXAyID0gbmV3IFN0cmluZ0xpc3QoICRpZCwgJ2lucHV0X2FnZW50bGlzdCcgKTsKICAgICAgJG1hbmlwMi0+aGFuZGxlciggJHBhcmFtcyApOwogICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWdlbnRfZXhjbHVzaW9ucycsaW1wbG9kZSgiLCIsJG1hbmlwMi0+Z2V0RGF0YSgpKSk7CiAgICB9CgogICAgJHRoaXMtPlJlZGlyZWN0ICgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQpOwogIH0KCiAgCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgX3Rlc3RpcCgkcmFuZ2UsJGlwKQogICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQoKICAgVGhpcyBpcyBhIGZ1bmN0aW9uIHRvIG1hdGNoIGFuIElQIGFkZHJlc3MgYWdhaW5zdCBhbiAKICAgYWRkcmVzcyByYW5nZSBzcGVjaWZpY2F0aW9uLgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIF90ZXN0aXAoJHJhbmdlLCRpcCkgCiAgewogICAgJHJlc3VsdCA9IDE7CgogICAgIyBJUCBQYXR0ZXJuIE1hdGNoZXIKICAgICMgSi5BZGFtcyA8am5hQHJldGluYS5uZXQ+CiAgICAjCiAgICAjIE1hdGNoZXM6CiAgICAjCiAgICAjIHh4eC54eHgueHh4Lnh4eCAgICAgICAgKGV4YWN0KQogICAgIyB4eHgueHh4Lnh4eC5beXl5LXp6el0gIChyYW5nZSkKICAgICMgeHh4Lnh4eC54eHgueHh4L25uICAgIChubiA9ICMgYml0cywgY2lzY28gc3R5bGUgLS0gaS5lLiAvMjQgPSBjbGFzcyBDKQogICAgIwogICAgIyBEb2VzIG5vdCBtYXRjaDoKICAgICMgeHh4Lnh4eC54eHgueHhbeXl5LXp6el0gIChyYW5nZSwgcGFydGlhbCBvY3RldHMgbm90IHN1cHBvcnRlZCkKCiAgICBpZiAoZXJlZygiKFswLTldKylcLihbMC05XSspXC4oWzAtOV0rKVwuKFswLTldKykvKFswLTldKykiLCRyYW5nZSwkcmVncykpIHsKCiAgICAgICMgcGVyZm9ybSBhIG1hc2sgbWF0Y2gKICAgICAgJGlwbCA9IGlwMmxvbmcoJGlwKTsKICAgICAgJHJhbmdlbCA9IGlwMmxvbmcoJHJlZ3NbMV0gLiAiLiIgLiAkcmVnc1syXSAuICIuIiAuICRyZWdzWzNdIC4gIi4iIC4gJHJlZ3NbNF0pOwogICAgICAKICAgICAgJG1hc2tsID0gMDsKICAgICAgCiAgICAgIGZvciAoJGkgPSAwOyAkaTwgMzE7ICRpKyspIHsKCWlmICgkaSA8ICRyZWdzWzVdLTEpIHsKCSAgJG1hc2tsID0gJG1hc2tsICsgcG93KDIsKDMwLSRpKSk7Cgl9CiAgICAgIH0KICAgICAgCiAgICAgIGlmICgoJG1hc2tsICYgJHJhbmdlbCkgPT0gKCRtYXNrbCAmICRpcGwpKSB7CglyZXR1cm4gMTsKICAgICAgfSBlbHNlIHsKCXJldHVybiAwOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICAKICAgICAgIyByYW5nZSBiYXNlZAogICAgICAkbWFza29jdHMgPSBzcGxpdCgiXC4iLCRyYW5nZSk7CiAgICAgICRpcG9jdHMgPSBzcGxpdCgiXC4iLCRpcCk7CiAgICAgIAogICAgICAjIHBlcmZvcm0gYSByYW5nZSBtYXRjaAogICAgICBmb3IgKCRpPTA7ICRpPDQ7ICRpKyspIHsKCWlmIChlcmVnKCJcWyhbMC05XSspXC0oWzAtOV0rKVxdIiwkbWFza29jdHNbJGldLCRyZWdzKSkgewoJICBpZiAoICgkaXBvY3RzWyRpXSA+ICRyZWdzWzJdKSB8fCAoJGlwb2N0c1skaV0gPCAkcmVnc1sxXSkpIHsKCSAgICAkcmVzdWx0ID0gMDsKCSAgfQoJfQoJZWxzZQoJICB7CgkgICAgaWYgKCRtYXNrb2N0c1skaV0gPD4gJGlwb2N0c1skaV0pIHsKCSAgICAgICRyZXN1bHQgPSAwOwoJICAgIH0KCSAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gJHJlc3VsdDsKICB9Cgp9IC8vIGNsYXNzCgo/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[PD9waHAKJGxhbmdbJ3N0YXRpc3RpY3MnXSA9ICdTdGF0aXN0aWNzJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnUHJlZmVyZW5jZXMnOwokbGFuZ1sncmVtb3ZlJ10gPSAnUmVtb3ZlJzsKJGxhbmdbJ3Byb21wdF9hZ2VudGV4Y2x1ZGUnXSA9ICdFeGNsdWRlIHRoZXNlIHVzZXIgYWdlbnRzIGZyb20gY291bnRpbmcgKHJlZ2V4cCknOwokbGFuZ1sncHJvbXB0X3N1Ym5ldGV4Y2x1ZGUnXSA9ICdFeGNsdWRlIHRoZXNlIHN1Ym5ldHMgZnJvbSBjb3VudGluZyc7CiRsYW5nWyd0aW1lb3V0J10gPSAnV2FpdCB0aGlzIG1hbnkgbWludXRlcyBiZWZvcmUgY291bnRpbmcgYSBoaXQgZnJvbSB0aGUgc2FtZSBob3N0JzsKJGxhbmdbJ3Jlc2V0aGl0Y291bnRzJ10gPSAnUmVzZXQgSGl0IENvdW50cyc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnQXJlIHlvdSBzdXJlPyc7CiRsYW5nWyduYW1lJ10gPSAnTmFtZSc7CiRsYW5nWydhZGQnXSA9ICdBZGQnOwokbGFuZ1snc3VibWl0J10gPSAnU3VibWl0JzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbCc7CiRsYW5nWydlcnJvcl9kYmVycm9yJ10gPSAnRGF0YWJhc2UgRXJyb3InOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnSGl0Q291bnRlcic7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0JlIHN1cmUgdG8gc2V0ICJNYW5hZ2UgSGl0Q291bnRlciIgcGVybWlzc2lvbnMgdG8gYWRtaW5pc3RlciB0aGlzIG1vZHVsZSEnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1RoZSBIaXRDb3VudGVyIG1vZHVsZSBoYXMgYmVlbiB1bmluc3RhbGxlZCc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSBVbmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdNb2R1bGUgcHJlZmVyZW5jZXMgdXBkYXRlZC4nOwokbGFuZ1snZXJyb3InXSA9ICdFcnJvciEnOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgdXBncmFkZWQgdG8gdmVyc2lvbiAlcy4nOwokbGFuZ1sndGl0bGVfbW9kX3ByZWZzJ10gPSAnTW9kdWxlIFByZWZlcmVuY2VzJzsKJGxhbmdbJ3RpdGxlX21vZF9hZG1pbiddID0gJ01vZHVsZSBBZG1pbiBQYW5lbCc7CiRsYW5nWyd0aXRsZV9hZG1pbl9wYW5lbCddID0gJ0hpdENvdW50ZXIgTW9kdWxlJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnQW4gZXh0cmVtZWx5IHNpbXBsZSBoaXQgY291bnRlciBtb2R1bGUuJzsKJGxhbmdbJ3dlbGNvbWVfdGV4dCddID0gJzxwPldlbGNvbWUgdG8gdGhlIEhpdENvdW50ZXIgTW9kdWxlIGFkbWluIHNlY3Rpb24uJzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4KPGxpPlZlcnNpb24gMS4wLiBTZXB0ZW1iZXIsIDIwMDUuIEluaXRpYWwgUmVsZWFzZS48L2xpPgo8bGk+VmVyc2lvbiAxLjAuMS4gU2VwdGVtYmVyLCAyMDA1LiBBZGRlZCBob3N0cyB0YWcsIGFuZCBjb25maXJtYXRpb24gdG8gdGhlIHJlc2V0IGJ1dHRvbjwvbGk+CjxsaT5WZXJzaW9uIDEuMC4yLiBPY3RvYmVyLCAyMDA1LiBBZGRlZCB1c2VyIGFnZW50IGV4Y2x1c2lvbiBhbmQgdHJhY2tpbmc8L2xpPgo8bGk+VmVyc2lvbiAxLjAuNC4gLSBGaXggYSB3YXJuaW5nIG1lc3NhZ2UsIGFuZCBmaXhlcyBmb3IgYWRvZGItcHJvcGVyLiAgQWxzbyB0d2Vha2VkIHRoZSBwb3N0IGluc3RhbGwgYW5kIHVuaW5zdGFsbCBtZXNzYWdlczwvbGk+CjwvdWw+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KPHA+VGhpcyBtb2R1bGUgc2ltcGx5IGNvdW50cyBoaXRzIG9uIGEgcGFnZSwgdGhhdHMgaXQsIG5vdGhpbmcgbW9yZS4gIFdlbGwsIHRoZXJlIGlzIGEgbGl0dGxlIG1vcmUsIGl0IGlzIGNhcGFibGUgb2YgZXhjbHVkaW5nIGNlcnRhaW4gc3VibmV0cyBmcm9tIHRoZSBjb3VudGluZywgYW5kIGhhcyBhIHRpbWVvdXQgc28gdGhhdCB5b3UgY2FuIHNldCB0aGUgaW50ZXJ2YWwgYmV0d2VlbiB2aXNpdHMgZm9yIHRoZSBzYW1lIGlwIGFkZHJlc3MgKGluIG1pbnV0ZXMpPC9wPgo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4KPHA+SXQgaXMgcmVhbGx5IHNpbXBsZSwganVzdCBwbGFjZSB0aGlzIHN0cmluZyBzb21ld2hlcmUgaW4geW91ciB0ZW1wbGF0ZSBvciBwYWdlOiB7Y21zX21vZHVsZSBtb2R1bGU9SGl0Q291bnRlcn08L3A+CjxwPkhlcmUgaXMgaG93IEkgdXNlIGl0OiAgIiZsdDtwJmd0O1RoaXMgcGFnZSBoYXMgYmVlbiB2aWV3ZWQge2Ntc19tb2R1bGUgbW9kdWxlPUhpdENvdW50ZXJ9IHRpbWVzJmx0Oy9wJmd0OyIuICBPcHRpb25hbGx5LCB5b3UgY2FuIHZpZXcgdGhlIG51bWJlciBvZiB1bmlxdWUgaG9zdHMgdGhhdCBoYXZlIHZpc2l0ZWQgeW91ciBwYWdlIGJ5IGFkZGluZyB0aGUgIm9wdD1ob3N0cyIgcGFyYW1ldGVyIHRvIHlvdXIgdGFnLiAgaS5lOiB7Y21zX21vZHVsZSBtb2R1bGU9SGl0Q291bnRlciBvcHQ9aG9zdHN9LjwvcD4KPHA+SWYgeW91IG9wdGlvbmFsbHkgc3VwcGx5IHRoZSAic2lsZW50IiBwYXJhbWV0ZXIgdG8gdGhlIG1vZHVsZSwgdGhlbiBpbnN0ZWFkIG9mIGFueSBvdXRwdXQsIHRoZSBoaXRjb3VudGVyIG1vZHVsZSB3aWxsIGV4cG9ydCBzbWFydHkgdmFyaWFibGVzICJwYWdlaGl0cyIgYW5kICJwYWdlaG9zdHMiIGZpbGxlZCB3aXRoIHRoZSBwcm9wZXIgdmFsdWUuICBwYWdlaGl0cyBpcyBleHBvcnRlZCBpZiBvcHQ9ImhpdHMiIChvciBkZWZhdWx0KSwgcGFnZWhvc3RzIGlzIGV4cG9ydGVkIGlmIG9wdD0iaG9zdHMiIGkuZS46IHtjbXNfbW9kdWxlIG1vZHVsZT1IaXRDb3VudGVyIHNpbGVudD0xfS48L3A+CjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDUsIFJvYmVydCBDYW1wYmVsbCA8YSBocmVmPSJtYWlsdG86cm9iQHRlY2hjb20uZHluZG5zLm9yZy4iPiZsdDtyb2JAdGVjaGNvbS5keW5kbnMub3JnJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4KJzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRsYW5nWydzdGF0aXN0aWNzJ10gPSAnU3RhdGlzdGljcyc7DQokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdWb3JlaW5zdGVsbHVuZ2VuJzsNCiRsYW5nWydyZW1vdmUnXSA9ICdFbnRmZXJuZW4nOw0KJGxhbmdbJ3Byb21wdF9hZ2VudGV4Y2x1ZGUnXSA9ICdEaWVzZSBCcm93c2VyIHZvbiBkZXIgWiZhdW1sO2hsdW5nIGF1c3NjaGxpZSZzemxpZztlbiAocmVnZXhwKSc7DQokbGFuZ1sncHJvbXB0X3N1Ym5ldGV4Y2x1ZGUnXSA9ICdEaWVzZSBTdWJuZXRzIHZvbiBkZXIgWiZhdW1sO2hsdW5nIGF1c3NjaGxpZSZzemxpZztlbic7DQokbGFuZ1sndGltZW91dCddID0gJ1plaXQsIGRpZSB2ZXJnYW5nZW4gc2VpbiBtdXNzLCBiZXZvciBlaW4gZXJuZXV0ZXIgWnVncmlmZiB2b20gZ2xlaWNoZW4gSG9zdCBnZXomYXVtbDtobHQgd2lyZCAoaW4gTWludXRlbiknOw0KJGxhbmdbJ3Jlc2V0aGl0Y291bnRzJ10gPSAnWnVncmlmZnN6JmF1bWw7aGxlciB6dXImdXVtbDtja3NldHplbic7DQokbGFuZ1snYXJleW91c3VyZSddID0gJ1NpbmQgc2llIHNpY2hlcj8nOw0KJGxhbmdbJ25hbWUnXSA9ICdOYW1lJzsNCiRsYW5nWydhZGQnXSA9ICdIaW56dWYmdXVtbDtnZW4nOw0KJGxhbmdbJ3N1Ym1pdCddID0gJ0Fic2VuZGVuJzsNCiRsYW5nWydjYW5jZWwnXSA9ICdBYmJyZWNoZW4nOw0KJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICdEYXRlbmJhbmtmZWhsZXInOw0KJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0hpdENvdW50ZXInOw0KJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnU3RlbGxlbiBzaWUgc2ljaGVyLCBkYXNzIGRpZSBCZW51dHplciwgZGllIG1pdCBkZW0gSGl0Y291bnRlci1Nb2R1bCBhcmJlaXRlbiBzb2xsZW4sIGRpZSBCZXJlY2h0aWd1bmcgIk1hbmFnZSBIaXRDb3VudGVycyIgaGFiZW4hJzsNCiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnU28gZWluIE1pc3QhIFdpZWRlciBuaWNodHMhIic7DQokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bCBkZWluc3RhbGxpZXJ0Lic7DQokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWx2ZXJzaW9uICVzIGluc3RhbGxpZXJ0Lic7DQokbGFuZ1sncHJlZnN1cGRhdGVkJ10gPSAnTW9kdWxlaW5zdGVsbHVuZ2VuIGFrdHVhbGlzaWVydC4nOw0KJGxhbmdbJ2Vycm9yJ10gPSAnRmVobGVyISc7DQokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bCBhdWYgVmVyc2lvbiAlcyBha3R1YWxpc2llcnQuJzsNCiRsYW5nWyd0aXRsZV9tb2RfcHJlZnMnXSA9ICdNb2R1bGVpbnN0ZWxsdW5nZW4nOw0KJGxhbmdbJ3RpdGxlX21vZF9hZG1pbiddID0gJ01vZHVsYWRtaW5pc3RyYXRpb24nOw0KJGxhbmdbJ3RpdGxlX2FkbWluX3BhbmVsJ10gPSAnSGl0Q291bnRlci1Nb2R1bCc7DQokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdFaW4gc2VociBlaW5mYWNoZXMgTW9kdWwgZiZ1dW1sO3IgWnVncmlmZnN6JmF1bWw7aGx1bmdlbi4nOw0KJGxhbmdbJ3dlbGNvbWVfdGV4dCddID0gJzxwPldpbGxrb21tZW4gaW4gZGVyIEFkbWluaXN0cmF0aW9uIGRlcyBIaXRDb3VudGVyLU1vZHVscy4nOw0KJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIDEuMC4gU2VwdGVtYmVyLCAyMDA1LiBJbml0aWFsIFJlbGVhc2UuPC9saT4NCjxsaT5WZXJzaW9uIDEuMC4xLiBTZXB0ZW1iZXIsIDIwMDUuIEFkZGVkIGhvc3RzIHRhZywgYW5kIGNvbmZpcm1hdGlvbiB0byB0aGUgcmVzZXQgYnV0dG9uPC9saT4NCjxsaT5WZXJzaW9uIDEuMC4yLiBPY3RvYmVyLCAyMDA1LiBBZGRlZCB1c2VyIGFnZW50IGV4Y2x1c2lvbiBhbmQgdHJhY2tpbmc8L2xpPg0KPGxpPlZlcnNpb24gMS4wLjMuIEphbnVhcnksIDIwMDYuIFBIUDUgRml4ZXMsIGFuZCBvdGhlciBtaW5vciB0d2Vha3M8bGk+DQo8L3VsPic7DQokbGFuZ1snaGVscCddID0gJzxoMz5XYXMgbWFjaHQgZGllc2VzIE1vZHVsPzwvaDM+DQo8cD5EaWVzZXMgTW9kdWwgeiZhdW1sO2hsdCBlaW5mYWNoIGRpZSBadWdyaWZmZSBhdWYgZWluZSBTZWl0ZSwgbmljaHQgbWVociB1bmQgbmljaHQgd2VuaWdlci4gR3V0LCBlcyBrYW5uIGVpbiBiaSZzemxpZztjaGVuIG1laHIuIFp1bSBCZWlzcGllbCBrJm91bWw7bm5lbiBiZXN0aW1tdGUgU3VibmV0cyB2b24gZGVyIFomYXVtbDtobHVuZyBhdXNnZXNjaGxvc3NlbiB3ZXJkZW4gdW5kIGVzIGthbm4gZWluZSBaZWl0ZGF1ZXIgZmVzdGdlbGVndCB3ZXJkZW4sIG5hY2ggZWluIFp1Z3JpZmYgdm9uIGRlciBnbGVpY2hlbiBJUC1BZHJlc3NlIHdpZWRlciBhbHMgWnVncmlmZiBnZXomYXVtbDtobHQgd2lyZCAoaW4gTWludXRlbikuPC9wPg0KPGgzPldpZSB3aXJkIGVzIGVpbmdlc2V0enQgPzwvaDM+DQo8cD5EYXMgaXN0IGdhbnogZWluZmFjaCwgZiZ1dW1sO2dlbiBzaWUgaXJnZW5kd28gaW4gaWhyZW0gVGVtcGxhdGUgb2RlciBpbiBpaHJlciBTZWl0ZSBkZW4gVGFnIHtjbXNfbW9kdWxlIG1vZHVsZT1IaXRDb3VudGVyfSBlaW4uPC9wPg0KPHA+SGllciBpc3QgZWluIEJlaXNwaWVsLCB3aWUgaWNoIGRhcyBNb2R1bCB2ZXJ3ZW5kZTogICImbHQ7cCZndDtEaWVzZSBTZWl0ZSB3dXJkZSB7Y21zX21vZHVsZSBtb2R1bGU9SGl0Q291bnRlcn0gTWFsIGFuZ2VzZWhlbiZsdDsvcCZndDsiLiBXZW5uIHNpZSBkZW0gVGFnIGRlbiBQYXJhbWV0ZXIgIm9wdD1ob3N0cyIgaGluenVmJnV1bWw7Z2VuLCBrJm91bWw7bm5lbiBzaWUgYXVjaCBkaWUgQW56YWhsIGRlciBIb3N0cyBhbnplaWdlbiBsYXNzZW4sIGRpZSBpaHJlIFNlaXRlIGJlc3VjaHQgaGFiZW4sIHp1bSBCZWlzcGllbCBzbzoge2Ntc19tb2R1bGUgbW9kdWxlPUhpdENvdW50ZXIgb3B0PWhvc3RzfS48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaXplbno8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA1LCBSb2JlcnQgQ2FtcGJlbGwgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAaG90bWFpbC5jb20iPiZsdDtjYWxndXkxMDAwQGhvdG1haWwuY29tJmd0OzwvYT4uIEFsbGUgUmVjaHRlIHZvcmJlaGFsdGVuLjwvcD4NCjxwPkRpZXNlcyBNb2R1bCB3dXJkZSB1bnRlciBkZXIgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+IHZlciZvdW1sO2ZmZW50bGljaHQuIFNpZSBtJnV1bWw7c3NlbiBkaWVzZXIgTGl6ZW56IHp1c3RpbW1lbiwgYmV2b3IgU2llIGRhcyBNb2R1bCB2ZXJ3ZW5kZW4uPC9wPg0KJzsNCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ3N0YXRpc3RpY3MnXSA9ICdTdGF0aXN0aXF1ZXMnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQciZlYWN1dGU7ZiZlYWN1dGU7cmVuY2VzJzsKJGxhbmdbJ3JlbW92ZSddID0gJ0VubGV2ZXInOwokbGFuZ1sncHJvbXB0X2FnZW50ZXhjbHVkZSddID0gJ0V4Y2x1cmUgY2VzIGFnZW50cyBkdSBjb21wdGV1ciAocmVnZXhwKSc7CiRsYW5nWydwcm9tcHRfc3VibmV0ZXhjbHVkZSddID0gJ0V4Y2x1cmUgY2VzIHNvdXMtciZlYWN1dGU7c2VhdXggZHUgY29tcHRldXInOwokbGFuZ1sndGltZW91dCddID0gJ01pbnV0ZXMgZCYjMDM5O2F0dGVudGUgYXZhbnQgZGUgcmVjb21wdGVyIHVuIGhpdCBkdSBtJmVjaXJjO21lIGhvc3QnOwokbGFuZ1sncmVzZXRoaXRjb3VudHMnXSA9ICdSJmVhY3V0ZTtpbml0aWFsaXNlciBsZSBjb21wdGUgZGVzIEhpdHMnOwokbGFuZ1snYXJleW91c3VyZSddID0gJyZFY2lyYzt0ZXMtdm91cyBzJnVjaXJjO3I/JzsKJGxhbmdbJ25hbWUnXSA9ICdOb20nOwokbGFuZ1snYWRkJ10gPSAnQWpvdXQnOwokbGFuZ1snc3VibWl0J10gPSAnRW52b3llcic7CiRsYW5nWydjYW5jZWwnXSA9ICdBbm51bGVyJzsKJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICdFcnJldXIgZGUgYmFzZSBkZSBkb25uJmVhY3V0ZTtlcyc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdIaXRDb3VudGVyJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnQXNzdXJlei12b3VzIGRlIGQmZWFjdXRlO2ZpbmlyIGxhIHBlcm1pc3Npb24gJnF1b3Q7TWFuYWdlIEhpdENvdW50ZXJzJnF1b3Q7IHBvdXIgdXRpbGlzZXIgY2UgbW9kdWxlISc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnJnF1b3Q7Q2FyYW1iYSEmcXVvdDsnOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgZCZlYWN1dGU7c2luc3RhbGwmZWFjdXRlOy4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTGEgdmVyc2lvbiAlcyBkdSBtb2R1bGUgYSAmZWFjdXRlO3QmZWFjdXRlOyBpbnN0YWxsJmVhY3V0ZTtlLic7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdMZXMgcHImZWFjdXRlO2YmZWFjdXRlO3JlbmNlcyBkdSBtb2R1bGUgb250ICZlYWN1dGU7dCZlYWN1dGU7IG1pc2VzICZhZ3JhdmU7IGpvdXIuJzsKJGxhbmdbJ2Vycm9yJ10gPSAnRXJyZXVyISc7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSBtaXMgJmFncmF2ZTsgam91ciAmYWdyYXZlOyBsYSB2ZXJzaW9uICVzLic7CiRsYW5nWyd0aXRsZV9tb2RfcHJlZnMnXSA9ICdQciZlYWN1dGU7ZiZlYWN1dGU7cmVuY2VzIGR1IG1vZHVsZXMnOwokbGFuZ1sndGl0bGVfbW9kX2FkbWluJ10gPSAnUGFubmVhdSBkJiMwMzk7YWRtaW5pc3RyYXRpb24gZHUgbW9kdWxlJzsKJGxhbmdbJ3RpdGxlX2FkbWluX3BhbmVsJ10gPSAnSGl0Q291bnRlciBNb2R1bGUnOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdVbiBtb2R1bGUgSGl0Q291bnRlciBleHRyJmVjaXJjO21lbWVudCBzaW1wbGUuJzsKJGxhbmdbJ3dlbGNvbWVfdGV4dCddID0gJzxwPkJpZW52ZW51ZSBkYW5zIGwmIzAzOTthZG1pbmlzdHJhdGlvbiBkdSBtb2R1bGUgSGl0Q291bnRlci4nOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPg0KPGxpPlZlcnNpb24gMS4wLiBTZXB0ZW1icmUgMjAwNS4gVmVyc2lvbiBpbml0aWFsZS48L2xpPg0KPGxpPlZlcnNpb24gMS4wLjEuIFNlcHRlbWJyZSAyMDA1LiBBam91dCBkZXMgdGFnIGhvc3RzLCBldCBjb25maXJtYXRpb24gZGUgbGEgciZlYWN1dGU7aW5pdGlhbGlzYXRpb248L2xpPg0KPGxpPlZlcnNpb24gMS4wLjIuIE9jdG9icmUgMjAwNS4gQWpvdXQgZGUgbCYjMDM5O2V4Y2x1c2lvbiBldCB0cmEmY2NlZGlsO2FnZSBkZSBsJiMwMzk7YWdlbnQgdXRpbGlzYXRldXIgKG5hdmlnYXRldXIpPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoaXMgbW9kdWxlIHNpbXBseSBjb3VudHMgaGl0cyBvbiBhIHBhZ2UsIHRoYXRzIGl0LCBub3RoaW5nIG1vcmUuICBXZWxsLCB0aGVyZSBpcyBhIGxpdHRsZSBtb3JlLCBpdCBpcyBjYXBhYmxlIG9mIGV4Y2x1ZGluZyBjZXJ0YWluIHN1Ym5ldHMgZnJvbSB0aGUgY291bnRpbmcsIGFuZCBoYXMgYSB0aW1lb3V0IHNvIHRoYXQgeW91IGNhbiBzZXQgdGhlIGludGVydmFsIGJldHdlZW4gdmlzaXRzIGZvciB0aGUgc2FtZSBpcCBhZGRyZXNzIChpbiBtaW51dGVzKTwvcD4NCjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPg0KPHA+SXQgaXMgcmVhbGx5IHNpbXBsZSwganVzdCBwbGFjZSB0aGlzIHN0cmluZyBzb21ld2hlcmUgaW4geW91ciB0ZW1wbGF0ZSBvciBwYWdlOiB7Y21zX21vZHVsZSBtb2R1bGU9SGl0Q291bnRlcn08L3A+DQo8cD5IZXJlIGlzIGhvdyBJIHVzZSBpdDogICZxdW90OzxwPlRoaXMgcGFnZSBoYXMgYmVlbiB2aWV3ZWQge2Ntc19tb2R1bGUgbW9kdWxlPUhpdENvdW50ZXJ9IHRpbWVzPC9wPiZxdW90Oy4gIE9wdGlvbmFsbHksIHlvdSBjYW4gdmlldyB0aGUgbnVtYmVyIG9mIHVuaXF1ZSBob3N0cyB0aGF0IGhhdmUgdmlzaXRlZCB5b3VyIHBhZ2UgYnkgYWRkaW5nIHRoZSAmcXVvdDtvcHQ9aG9zdHMmcXVvdDsgcGFyYW1ldGVyIHRvIHlvdXIgdGFnLiAgaS5lOiB7Y21zX21vZHVsZSBtb2R1bGU9SGl0Q291bnRlciBvcHQ9aG9zdHN9LjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA1LCBSb2JlcnQgQ2FtcGJlbGwgPGEgaHJlZj0mcXVvdDttYWlsdG86cm9iQHRlY2hjb20uZHluZG5zLm9yZy4mcXVvdDs+PHJvYkB0ZWNoY29tLmR5bmRucy5vcmc+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7PkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+DQonOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ3N0YXRpc3RpY3MnXSA9ICdTdGF0aXN0aWtrJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnUHJlZmVyZW5jZXMnOwokbGFuZ1sncmVtb3ZlJ10gPSAnRmplcm4nOwokbGFuZ1sncHJvbXB0X2FnZW50ZXhjbHVkZSddID0gJ0V4Y2x1ZGUgdGhlc2UgdXNlciBhZ2VudHMgZnJvbSBjb3VudGluZyAocmVnZXhwKSc7CiRsYW5nWydwcm9tcHRfc3VibmV0ZXhjbHVkZSddID0gJ0V4Y2x1ZGUgdGhlc2Ugc3VibmV0cyBmcm9tIGNvdW50aW5nJzsKJGxhbmdbJ3RpbWVvdXQnXSA9ICdBbnRhbGwgbWludXR0ZXIgJmFyaW5nOyB2ZW50ZSBmJm9zbGFzaDtyIHRlbGxpbmcgYXYgc2FtbWUgYnJ1a2VyLic7CiRsYW5nWydyZXNldGhpdGNvdW50cyddID0gJ051bGxzdGlsbCBIaXQgbWV0ZXInOwokbGFuZ1snYXJleW91c3VyZSddID0gJ0VyIGR1IHNpa2tlcj8nOwokbGFuZ1snbmFtZSddID0gJ05hdm4nOwokbGFuZ1snYWRkJ10gPSAnTGVnZyB0aWwnOwokbGFuZ1snc3VibWl0J10gPSAnT2snOwokbGFuZ1snY2FuY2VsJ10gPSAnQXZicnl0JzsKJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICdEYXRhYmFzZSBGZWlsJzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0hpdENvdW50ZXInOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdQb3N0IEluc3RhbGwgTWVzc2FnZSwgZS5nLiwgQmUgc3VyZSB0byBzZXQgJnF1b3Q7TWFuYWdlIEhpdENvdW50ZXJzJnF1b3Q7IHBlcm1pc3Npb25zIHRvIHVzZSB0aGlzIG1vZHVsZSEnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1Bvc3QgVW5pbnN0YWxsIE1lc3NhZ2UsIGUuZy4sICZxdW90O0N1cnNlcyEgRm9pbGVkIEFnYWluISZxdW90Oyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ0F2aW5zdGFsbGVyIG1vZHVsLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bCB2ZXJzam9uICVzIGluc3RhbGxlcnQuJzsKJGxhbmdbJ3ByZWZzdXBkYXRlZCddID0gJ01vZHVsIGlubnN0aWxsaW5nZXIgb3BwZGF0ZXJ0Lic7CiRsYW5nWydlcnJvciddID0gJ0Vycm9yISc7CiRsYW5nWyd1cGdyYWRlZCddID0gJ09wcGdyYWRlciBtb2R1bCB0aWwgdmVyc2pvbiAlcy4nOwokbGFuZ1sndGl0bGVfbW9kX3ByZWZzJ10gPSAnTW9kdWwgaW5zdGlsbGluZ2VyJzsKJGxhbmdbJ3RpdGxlX21vZF9hZG1pbiddID0gJ01vZHVsIEFkbWluIFBhbmVsJzsKJGxhbmdbJ3RpdGxlX2FkbWluX3BhbmVsJ10gPSAnSGl0Q291bnRlciBNb2R1bCc7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ0VuIGVrc3RyZW0gc2ltcGVsIEhpdG1ldGVyIG1vZHVsJzsKJGxhbmdbJ3dlbGNvbWVfdGV4dCddID0gJzxwPlZlbGtvbW1lbiB0aWwgIEhpdENvdW50ZXIgTW9kdWxlIGFkbWluIHNla3Rvci4nOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPg0KPGxpPlZlcnNpb24gMS4wLiBTZXB0ZW1iZXIsIDIwMDUuIEluaXRpYWwgUmVsZWFzZS48L2xpPg0KPGxpPlZlcnNpb24gMS4wLjEuIFNlcHRlbWJlciwgMjAwNS4gQWRkZWQgaG9zdHMgdGFnLCBhbmQgY29uZmlybWF0aW9uIHRvIHRoZSByZXNldCBidXR0b248L2xpPg0KPGxpPlZlcnNpb24gMS4wLjIuIE9jdG9iZXIsIDIwMDUuIEFkZGVkIHVzZXIgYWdlbnQgZXhjbHVzaW9uIGFuZCB0cmFja2luZzwvbGk+DQo8L3VsPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGlzIG1vZHVsZSBzaW1wbHkgY291bnRzIGhpdHMgb24gYSBwYWdlLCB0aGF0cyBpdCwgbm90aGluZyBtb3JlLiAgV2VsbCwgdGhlcmUgaXMgYSBsaXR0bGUgbW9yZSwgaXQgaXMgY2FwYWJsZSBvZiBleGNsdWRpbmcgY2VydGFpbiBzdWJuZXRzIGZyb20gdGhlIGNvdW50aW5nLCBhbmQgaGFzIGEgdGltZW91dCBzbyB0aGF0IHlvdSBjYW4gc2V0IHRoZSBpbnRlcnZhbCBiZXR3ZWVuIHZpc2l0cyBmb3IgdGhlIHNhbWUgaXAgYWRkcmVzcyAoaW4gbWludXRlcyk8L3A+DQo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4NCjxwPkl0IGlzIHJlYWxseSBzaW1wbGUsIGp1c3QgcGxhY2UgdGhpcyBzdHJpbmcgc29tZXdoZXJlIGluIHlvdXIgdGVtcGxhdGUgb3IgcGFnZToge2Ntc19tb2R1bGUgbW9kdWxlPUhpdENvdW50ZXJ9PC9wPg0KPHA+SGVyZSBpcyBob3cgSSB1c2UgaXQ6ICAmcXVvdDs8cD5UaGlzIHBhZ2UgaGFzIGJlZW4gdmlld2VkIHtjbXNfbW9kdWxlIG1vZHVsZT1IaXRDb3VudGVyfSB0aW1lczwvcD4mcXVvdDsuICBPcHRpb25hbGx5LCB5b3UgY2FuIHZpZXcgdGhlIG51bWJlciBvZiB1bmlxdWUgaG9zdHMgdGhhdCBoYXZlIHZpc2l0ZWQgeW91ciBwYWdlIGJ5IGFkZGluZyB0aGUgJnF1b3Q7b3B0PWhvc3RzJnF1b3Q7IHBhcmFtZXRlciB0byB5b3VyIHRhZy4gIGkuZToge2Ntc19tb2R1bGUgbW9kdWxlPUhpdENvdW50ZXIgb3B0PWhvc3RzfS48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwNSwgUm9iZXJ0IENhbXBiZWxsIDxhIGhyZWY9JmFtcDtxdW90O21haWx0bzpyb2JAdGVjaGNvbS5keW5kbnMub3JnLiZhbXA7cXVvdDs+PHJvYkB0ZWNoY29tLmR5bmRucy5vcmc+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9JmFtcDtxdW90O2h0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCZhbXA7cXVvdDs+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4NCic7Cj8+]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/adminprefs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfc2VjdGlvbn08L2gzPgo8cD57JGFkbWluX25hdn08L3A+CntpZiAkbWVzc2FnZSE9Jyd9PHA+eyRtZXNzYWdlfTwvcD57L2lmfQp7JHN0YXJ0Zm9ybX0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9hZ2VudGV4Y2x1ZGV9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2FnZW50ZXhjbHVkZX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9zdWJuZXRleGNsdWRlfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zdWJuZXRleGNsdWRlfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3RpbWVvdXR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3RpbWVvdXR9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcmVzZXRjb3VudHN9eyRzdWJtaXR9PC9wPgoJPC9kaXY+CnskZW5kZm9ybX0K]]></data>
	</file>
	<file>
	  <filename>/templates/error.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfZXJyb3J9PC9oMz4KPHA+eyRhZG1pbl9uYXZ9PC9wPgp7aWYgJG1lc3NhZ2UhPScnfTxwPnskbWVzc2FnZX08L3A+ey9pZn0=]]></data>
	</file>
</module>
