<?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>FeuCalendar</name>
	<version>0.1</version>
  <mincmsversion>1.0</mincmsversion>
	<help>PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIGFsbG93cyB2aXNpdG9ycyB3aXRob3V0IGFkbWluIGFjY2VzcyB0byBhZGQgZXZlbnRzIHRvIHRoZSBDYWxlbmRhciAKbW9kdWxlLiA8L3A+Cgo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4KWW91IG11c3QgaGF2ZSB0aGUgIk1vZGlmeSBDYWxlbmRhciIgcGVybWlzc2lvbiB0byBhY2Nlc3MgdGhlIGFkbWluIHBhbmVsIGZvciB0aGlzIG1vZHVsZS4KCjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlIG9yIHRvIGZpbGUgYSBidWcgcmVwb3J0IHZpc2l0IDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZmV1Y2FsZW5kYXIiPnRoZSBDTVMgRm9yZ2U8L2E+LjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4KPC91bD4KCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDYsIFRhbWx5biBSaG9kZXMgJmx0OzxhIGhyZWY9Imh0dHA6Ly90YW1seW4ub3JnIj50YW1seW4ub3JnPC9hPiZndDsgQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPjxoMz5EZXBlbmRlbmNpZXM8L2gzPjx1bD48bGk+RnJvbnRFbmRVc2VycyA9Jmd0OyAxLjEuMTwvbGk+PGxpPkNhbGVuZGFyID0mZ3Q7IDAuNy4zPC9saT48L3VsPjxoMz5QYXJhbWV0ZXJzPC9oMz48dWw+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGFuZz0iZW5fVVMiIC0gUGFyYW1ldGVyIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGF0IGxhbmd1YWdlIHRvIHVzZSBmb3IgZGlzcGxheSBvbiB0aGUgZnJvbnRlbmQuIE5vdCBhbGwgbW9kdWxlcyBzdXBwb3J0IG9yIG5lZWQgdGhpcy48L2xpPjwvdWw+</help>
	<about>PGJyIC8+QXV0aG9yOiB0YW1seW4gJmx0O3RhbUB6ZW5vbG9neS5jby51ayZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAwLjE8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz4KPHVsPgogIDxsaT5WZXJzaW9uIDAuMSBBbHBoYSByZWxlYXNlLjwvbGk+CjwvdWw+PGJyIC8+</about>
	<description>Allows FrontEndUsers to submit events to the Calendar module.</description>
	<requires>
	  <requiredname>FrontEndUsers</requiredname>
	  <requiredversion>1.1.1</requiredversion>
	</requires>
	<requires>
	  <requiredname>Calendar</requiredname>
	  <requiredversion>0.7.3</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/FeuCalendar.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBGZXVDYWxlbmRhciAtIEZyb250IEVuZCBVc2VycyB0byBDYWxlbmRhciBicmlkZ2UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2ZldWNhbGVuZGFyLwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpjbGFzcyBGZXVDYWxlbmRhciBleHRlbmRzIENNU01vZHVsZQp7CgogIGZ1bmN0aW9uIEdldE5hbWUoKQogIHsKICAgIHJldHVybiBnZXRfY2xhc3MoJHRoaXMpOwogIH0KCiAgZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpOwogIH0KCiAgZnVuY3Rpb24gR2V0VmVyc2lvbigpCiAgewogICAgcmV0dXJuICcwLjEnOwogIH0KCiAgZnVuY3Rpb24gR2V0SGVscCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdoZWxwJyk7CiAgfQoKICBmdW5jdGlvbiBHZXRBdXRob3IoKQogIHsKICAgIHJldHVybiAndGFtbHluJzsKICB9CgogIGZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkKICB7CiAgICByZXR1cm4gJ3RhbUB6ZW5vbG9neS5jby51ayc7CiAgfQoKICBmdW5jdGlvbiBHZXRDaGFuZ2VMb2coKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygnY2hhbmdlbG9nJyk7CiAgfQoKICBmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpCiAgewogICAgcmV0dXJuIHRydWU7CiAgfQoKICBmdW5jdGlvbiBIYXNBZG1pbigpCiAgewogICAgcmV0dXJuIHRydWU7CiAgfQoKICBmdW5jdGlvbiBHZXRBZG1pblNlY3Rpb24oKQogIHsKICAgIHJldHVybiAnZXh0ZW5zaW9ucyc7CiAgfQoKICBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ21vZGRlc2NyaXB0aW9uJyk7CiAgfQoKICBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKQogIHsKICAgIHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgQ2FsZW5kYXInKTsKICB9CgogIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpCiAgewogICAgcmV0dXJuIGFycmF5KCdGcm9udEVuZFVzZXJzJyA9PiAnMS4xLjEnLCAnQ2FsZW5kYXInID0+ICcwLjcuMycpOwogIH0KCiAgZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKQogIHsKICAgIHJldHVybiAiMS4wIjsKICB9CgogIGZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbCcpOwogIH0KCiAgZnVuY3Rpb24gVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygncG9zdHVuaW5zdGFsbCcpOwogIH0KCiAgZnVuY3Rpb24gVW5pbnN0YWxsUHJlTWVzc2FnZSgpCiAgewogICAgcmV0dXJuIGZhbHNlOy8vJHRoaXMtPkxhbmcoJ3JlYWxseV91bmluc3RhbGwnKTsKICB9CgogIGZ1bmN0aW9uIERvQWN0aW9uKCRhY3Rpb24sICRpZCwgJHBhcmFtcywgJHJldHVybmlkPS0xKQogIHsKICAgIHN3aXRjaCAoJGFjdGlvbikKICAgIHsKICAgICAgY2FzZSAnZGVmYXVsdCcgOgogICAgICBjYXNlICdzaG93Zm9ybScgOgogICAgICAgIC8vc2hvdyB0aGUgZm9ybSBmb3IgYWRkaW5nIG5ldyBldmVudHMKICAgICAgICBpZigkdGhpcy0+Q2hlY2tVc2VyKCkpCiAgICAgICAgICAkdGhpcy0+QWRkRXZlbnRGb3JtKCRpZCwgJHBhcmFtcywgJHJldHVybmlkKTsKICAgICAgICBlbHNlCiAgICAgICAgICAkdGhpcy0+RGlzcGxheU1lc3NhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdkZW5pZWRfdGl0bGUnKSwgJHRoaXMtPkxhbmcoJ2RlbmllZF9tZXNzYWdlJykpOwogICAgICAgIGJyZWFrOwogICAgICAgIAogICAgICBjYXNlICdhZGRfZXZlbnQnIDoKICAgICAgICAvL2FkZCB0aGUgZXZlbnQgc3VibWl0dGVkIGZyb20gdGhlIGV2ZW50IGZvcm0KICAgICAgICBpZigkdGhpcy0+Q2hlY2tVc2VyKCkpCiAgICAgICAgICAkdGhpcy0+QWRkRXZlbnQoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOwogICAgICAgIGVsc2UKICAgICAgICAgICR0aGlzLT5EaXNwbGF5TWVzc2FnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2FjY2Vzc19kZW5pZWQnKSk7CiAgICAgICAgYnJlYWs7CgogICAgICBjYXNlICdkZWZhdWx0YWRtaW4nIDoKICAgICAgY2FzZSAnYWRtaW5fcHJlZnMnIDoKICAgICAgICAvLyBvbmx5IGxldCBwZW9wbGUgYWNjZXNzIG1vZHVsZSBwcmVmZXJlbmNlcyBpZiB0aGV5IGhhdmUgcGVybWlzc2lvbgogICAgICAgIGlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgQ2FsZW5kYXInKSkKICAgICAgICAgICR0aGlzLT5EaXNwbGF5QWRtaW5QcmVmcygkaWQsICRwYXJhbXMsICRyZXR1cm5pZCk7CiAgICAgICAgZWxzZQogICAgICAgICAgJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsCiAgICAgICAgICAgICAgJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsKICAgICAgICBicmVhazsKICAgICAgICAKICAgICAgY2FzZSAnc2F2ZV9hZG1pbl9wcmVmcyc6CiAgICAgICAgLy8gb25seSBsZXQgcGVvcGxlIHNhdmUgbW9kdWxlIHByZWZlcmVuY2VzIGlmIHRoZXkgaGF2ZSBwZXJtaXNzaW9uCiAgICAgICAgaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDYWxlbmRhcicpKQogICAgICAgICAgJHRoaXMtPlNhdmVBZG1pblByZWZzKCRpZCwgJHBhcmFtcywgJHJldHVybmlkKTsKCiAgICAgICAgYnJlYWs7CiAgICB9CgogIH0KCgogIGZ1bmN0aW9uIEFkZEV2ZW50Rm9ybSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCkKICB7CiAgICAkY2FsZW5kYXIgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NhbGVuZGFyJyk7CiAgICAkZXZlbnRfaWQgPSAtMTsKICAgIAogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX3N0YXJ0JywgCiAgICAgICAgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdhZGRfZXZlbnQnLCAkcmV0dXJuaWQsICRtZXRob2Q9J3Bvc3QnLCAkZW5jdHlwZT0nJykgLgogICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdldmVudF9pZCcsICRldmVudF9pZCkKICAgICAgKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybV9lbmQnLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKICAgIAogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX3N1Ym1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICcnLCAkY2FsZW5kYXItPkxhbmcoJ2NhbF9hZGRfZXZlbnQnKSkpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX2NhbmNlbCcsICc8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iJy4kdGhpcy0+TGFuZygnZm9ybV9jYW5jZWwnKS4nIiBvbmNsaWNrPSJqYXZhc2NyaXB0OndpbmRvdy5oaXN0b3J5LmdvKC0xKSIgLz4nKTsKICAgIAogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF9sYWJlbCcsICRjYWxlbmRhci0+TGFuZygnY2FsX2Zyb21kYXRlJykpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlbmRfbGFiZWwnLCAkY2FsZW5kYXItPkxhbmcoJ2NhbF90b2RhdGUnKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2xhYmVsJywgJGNhbGVuZGFyLT5MYW5nKCdjYWxfdGl0bGUnKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1bW1hcnlfbGFiZWwnLCAkY2FsZW5kYXItPkxhbmcoJ2NhbF9zdW1tYXJ5JykpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdkZXRhaWxzX2xhYmVsJywgJGNhbGVuZGFyLT5MYW5nKCdjYWxfZGV0YWlscycpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignY2F0ZWdvcmllc19sYWJlbCcsICRjYWxlbmRhci0+TGFuZygnY2FsX2NhdGVnb3JpZXMnKSk7CiAgICAKICAgICRjdXJyZW50X3llYXIgPSBkYXRlKCdZJyk7CiAgICAkc3RhcnQgPSAkY3VycmVudF95ZWFyIC0gMjsKICAgICRlbmQgPSAkY3VycmVudF95ZWFyICsgMTA7CiAgICAKICAgICR5ZWFyX2FycmF5ID0gYXJyYXkoKTsKICAgIGZvcigkaSA9ICRzdGFydDsgJGkgPCAkZW5kOyAkaSsrKSB7CiAgICAgICR5ZWFyX2FycmF5WyRpXSA9ICRpOwogICAgfQogICAgCiAgICAkbW9udGhfYXJyYXkgPSBhcnJheSgpOwogICAgZm9yKCRpID0gMDsgJGkgPCAxMjsgJGkrKykgewogICAgICAkbW9udGhfbmFtZSA9IHN0cmZ0aW1lKCclYicsIG1rdGltZSgxMiwwLDAsJGkrMSwxKSk7CiAgICAgICRtb250aF9udW1iZXIgPSBzcHJpbnRmKCclMDJkJywgJGkrMSk7CiAgICAgICRtb250aF9hcnJheVskbW9udGhfbmFtZV0gPSAkbW9udGhfbnVtYmVyOwogICAgfQogICAgCiAgICAkZGF5X2FycmF5ID0gYXJyYXkoKTsKICAgIGZvcigkaT0xOyAkaSA8IDMyOyAkaSsrKSB7CiAgICAgICRkYXkgPSBzcHJpbnRmKCclMDJkJywgJGkpOwogICAgICAkZGF5X2FycmF5WyRpXSA9ICRkYXk7CiAgICB9CiAgICAKICAgICRob3VyX2FycmF5ID0gYXJyYXkoKTsKICAgIGZvcigkaT0wOyAkaSA8IDI0OyAkaSsrKSB7CiAgICAgICRob3VyID0gc3ByaW50ZignJTAyZCcsICRpKTsKICAgICAgaWYgKDEgPT0gJGNhbGVuZGFyLT5HZXRQcmVmZXJlbmNlKCd1c2VfdHdlbHZlX2hvdXJfY2xvY2snKSkgewogICAgICAgIGlmICgkaSA+PSAxMikgewogICAgICAgICAgaWYgKCRpID09IDEyKSB7CiAgICAgICAgICAgICRob3VyX2FycmF5WyRpLicgbm9vbiddID0gJGhvdXI7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkcG1faG91ciA9ICRpIC0gMTI7CiAgICAgICAgICAgICRob3VyX2FycmF5WyRwbV9ob3VyLicgcC5tLiddID0gJGhvdXI7CiAgICAgICAgICB9CiAgICAgIAogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZiAoJGkgPT0gMCkKICAgICAgICAgICAgJGhvdXJfYXJyYXlbJzEyIG1pZG5pZ2h0J10gPSAkaG91cjsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgJGhvdXJfYXJyYXlbJGkuJyBhLm0uJ10gPSAkaG91cjsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgJGhvdXJfYXJyYXlbJGhvdXJdID0gJGhvdXI7CiAgICAgIH0KICAgIH0KCiAgICAkbWludXRlX2FycmF5ID0gYXJyYXkoKTsKICAgIGZvcigkaT0wOyAkaSA8IDYwOyAkaSsrKSB7CiAgICAgICRtaW51dGUgPSBzcHJpbnRmKCclMDJkJywgJGkpOwogICAgICAkbWludXRlX2FycmF5WyRtaW51dGVdID0gJG1pbnV0ZTsKICAgIH0KICAgIAogICAgLyppZihpc3NldCgkZXZlbnRbJ2V2ZW50X2RhdGVfc3RhcnQnXSkpIHsKICAgICAgJGV2ZW50X2RhdGVfc3RhcnRfdGltZSA9IHN0cnRvdGltZSgkZXZlbnRbJ2V2ZW50X2RhdGVfc3RhcnQnXSk7CiAgICAgICRldmVudF9kYXRlX3N0YXJ0X21pbnV0ZSA9IGRhdGUoJ2knLCAkZXZlbnRfZGF0ZV9zdGFydF90aW1lKTsKICAgICAgJGV2ZW50X2RhdGVfc3RhcnRfaG91ciA9IGRhdGUoJ0gnLCAkZXZlbnRfZGF0ZV9zdGFydF90aW1lKTsKICAgICAgJGV2ZW50X2RhdGVfc3RhcnRfZGF5ID0gZGF0ZSgnZCcsICRldmVudF9kYXRlX3N0YXJ0X3RpbWUpOwogICAgICAkZXZlbnRfZGF0ZV9zdGFydF9tb250aCA9IGRhdGUoJ20nLCAkZXZlbnRfZGF0ZV9zdGFydF90aW1lKTsKICAgICAgJGV2ZW50X2RhdGVfc3RhcnRfeWVhciA9IGRhdGUoJ1knLCAkZXZlbnRfZGF0ZV9zdGFydF90aW1lKTsKICAgIH0gZWxzZSB7CiAgICAqLwogICAgICAkZXZlbnRfZGF0ZV9zdGFydF9taW51dGUgPSAwOyAvL2RhdGUoJ2knKTsKICAgICAgJGV2ZW50X2RhdGVfc3RhcnRfaG91ciA9IDA7IC8vZGF0ZSgnSCcpOwogICAgICAkZXZlbnRfZGF0ZV9zdGFydF9kYXkgPSBkYXRlKCdkJyk7CiAgICAgICRldmVudF9kYXRlX3N0YXJ0X21vbnRoID0gZGF0ZSgnbicpOwogICAgICAkZXZlbnRfZGF0ZV9zdGFydF95ZWFyID0gJGN1cnJlbnRfeWVhcjsKICAgIC8vfQogICAgCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2lucHV0JywgCiAgICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZXZlbnRfZGF0ZV9zdGFydF9kYXknLCAkZGF5X2FycmF5LCAtMSwgJGV2ZW50X2RhdGVfc3RhcnRfZGF5KSAuCiAgICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZXZlbnRfZGF0ZV9zdGFydF9tb250aCcsICRtb250aF9hcnJheSwgLTEsICRldmVudF9kYXRlX3N0YXJ0X21vbnRoKSAuCiAgICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZXZlbnRfZGF0ZV9zdGFydF95ZWFyJywgJHllYXJfYXJyYXksIC0xLCAkZXZlbnRfZGF0ZV9zdGFydF95ZWFyKSAuCiAgICAgICAgJHRoaXMtPkxhbmcoJ2RhdGVfdGltZV9zZXBhcmF0b3InKSAuCiAgICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZXZlbnRfZGF0ZV9zdGFydF9ob3VyJywgJGhvdXJfYXJyYXksIC0xLCAkZXZlbnRfZGF0ZV9zdGFydF9ob3VyKSAuCiAgICAgICAgJHRoaXMtPkxhbmcoJ2hvdXJfbWludXRlX3NlcGFyYXRvcicpIC4KICAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdldmVudF9kYXRlX3N0YXJ0X21pbnV0ZScsICRtaW51dGVfYXJyYXksIC0xLCAkZXZlbnRfZGF0ZV9zdGFydF9taW51dGUpCiAgICAgICk7CiAgICAKICAgIC8qaWYoaXNzZXQoJGV2ZW50WydldmVudF9kYXRlX2VuZCddKSkgewogICAgICAkZXZlbnRfZGF0ZV9lbmRfdGltZSA9IHN0cnRvdGltZSgkZXZlbnRbJ2V2ZW50X2RhdGVfZW5kJ10pOwogICAgICAkZXZlbnRfZGF0ZV9lbmRfbWludXRlID0gZGF0ZSgnaScsICRldmVudF9kYXRlX2VuZF90aW1lKTsKICAgICAgJGV2ZW50X2RhdGVfZW5kX2hvdXIgPSBkYXRlKCdIJywgJGV2ZW50X2RhdGVfZW5kX3RpbWUpOwogICAgICAkZXZlbnRfZGF0ZV9lbmRfZGF5ID0gZGF0ZSgnZCcsICRldmVudF9kYXRlX2VuZF90aW1lKTsKICAgICAgJGV2ZW50X2RhdGVfZW5kX21vbnRoID0gZGF0ZSgnbScsICRldmVudF9kYXRlX2VuZF90aW1lKTsKICAgICAgJGV2ZW50X2RhdGVfZW5kX3llYXIgPSBkYXRlKCdZJywgJGV2ZW50X2RhdGVfZW5kX3RpbWUpOwogICAgfSBlbHNlIHsKICAgICovCiAgICAgICRldmVudF9kYXRlX2VuZF9taW51dGUgPSAwOwogICAgICAkZXZlbnRfZGF0ZV9lbmRfaG91ciA9IDA7CiAgICAgICRldmVudF9kYXRlX2VuZF9kYXkgPSAwOwogICAgICAkZXZlbnRfZGF0ZV9lbmRfbW9udGggPSAwOwogICAgICAkZXZlbnRfZGF0ZV9lbmRfeWVhciA9IDA7CiAgICAvL30KICAgIAogICAgJGRheV9hcnJheVsnJ10gPSAwOwogICAgJG1vbnRoX2FycmF5WycnXSA9IDA7CiAgICAkeWVhcl9hcnJheVsnJ10gPSAwOwogICAgYXNvcnQoJGRheV9hcnJheSk7CiAgICBhc29ydCgkbW9udGhfYXJyYXkpOwogICAgYXNvcnQoJHllYXJfYXJyYXkpOwogICAgCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZF9pbnB1dCcsIAogICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2V2ZW50X2RhdGVfZW5kX2RheScsICRkYXlfYXJyYXksIC0xLCAkZXZlbnRfZGF0ZV9lbmRfZGF5KSAuCiAgICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZXZlbnRfZGF0ZV9lbmRfbW9udGgnLCAkbW9udGhfYXJyYXksIC0xLCAkZXZlbnRfZGF0ZV9lbmRfbW9udGgpIC4KICAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdldmVudF9kYXRlX2VuZF95ZWFyJywgJHllYXJfYXJyYXksIC0xLCAkZXZlbnRfZGF0ZV9lbmRfeWVhcikgLgogICAgICAgICR0aGlzLT5MYW5nKCdkYXRlX3RpbWVfc2VwYXJhdG9yJykgLgogICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2V2ZW50X2RhdGVfZW5kX2hvdXInLCAkaG91cl9hcnJheSwgLTEsICRldmVudF9kYXRlX2VuZF9ob3VyKSAuCiAgICAgICAgJHRoaXMtPkxhbmcoJ2hvdXJfbWludXRlX3NlcGFyYXRvcicpIC4KICAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdldmVudF9kYXRlX2VuZF9taW51dGUnLCAkbWludXRlX2FycmF5LCAtMSwgJGV2ZW50X2RhdGVfZW5kX21pbnV0ZSkKICAgICAgKTsKICAgICAgCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2lucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdldmVudF90aXRsZScsICRldmVudFsnZXZlbnRfdGl0bGUnXSwgNTAsIDUwKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1bW1hcnlfaW5wdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2V2ZW50X3N1bW1hcnknLCAkZXZlbnRbJ2V2ZW50X3N1bW1hcnknXSwgNTAsIDEwMCkpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdkZXRhaWxzX2lucHV0JywgJHRoaXMtPkNyZWF0ZVRleHRBcmVhKHRydWUsICRpZCwgJGV2ZW50WydldmVudF9kZXRhaWxzJ10sICdldmVudF9kZXRhaWxzJywgJ2NvbnRlbnQnLCAkaWQsICcnLCAnJywgNDAsIDEwKSk7CiAgICAKICAgICRjYXRlZ29yaWVzID0gJGNhbGVuZGFyLT5HZXRDYXRlZ29yaWVzKCk7CgogICAgJG51bV9jYXRzID0gY291bnQoJGNhdGVnb3JpZXMpOwogICAgJG51bV9jb2xzID0gMjsKICAgICRyb3dzX3Blcl9jb2wgPSBpbnR2YWwoJG51bV9jYXRzIC8gJG51bV9jb2xzKTsKICAgICRjb3VudCA9IDA7CiAgICAkY2F0X2NvZGUgPSAiIjsKICAgIGZvcigkaSA9IDA7ICRpIDwgJG51bV9jYXRzOyAkaSsrLCRjb3VudCArKykgewogICAgICBpZigkY291bnQgPj0gJHJvd3NfcGVyX2NvbCAmJiAkcm93c19wZXJfY29sICE9IDApIHsKICAgICAgICAkY291bnQgPSAwOwogICAgICAgICRjYXRfY29kZSAuPSAiPC90ZD48dGQgdmFsaWduPSd0b3AnIHN0eWxlPSdwYWRkaW5nLWxlZnQ6IDQwcHg7JyA+XG4iOwogICAgICAgICRwYWRkaW5nID0gMDsKICAgICAgfQogICAgCiAgICAgIGlmKCRpIDwgJG51bV9jYXRzKSB7CiAgICAgICAgJGNhdGVnb3J5ID0gJGNhdGVnb3JpZXNbJGldOwogICAgICAgICRjYXRfaWQgPSAkY2F0ZWdvcnlbJ2NhdGVnb3J5X2lkJ107CiAgICAgICAgJGNhdF9uYW1lID0gJGNhdGVnb3J5WydjYXRlZ29yeV9uYW1lJ107CiAgICAgICAgJGNoZWNrZWQgPSAnJzsKICAgICAgICAvL2lmKGluX2FycmF5KCRjYXRfaWQsICRldmVudFsnY2F0ZWdvcmllcyddKSkKICAgICAgICAvLyAgJGNoZWNrZWQgPSAkY2F0X2lkOwogICAgICAgICRjYXRfY29kZSAuPSAiPGRpdj48bGFiZWw+IjsKICAgICAgICAkY2F0X2NvZGUgLj0gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZXZlbnRfY2F0ZWdvcmllc1tdJywgJGNhdF9pZCwgJGNoZWNrZWQpOwogICAgICAgICRjYXRfY29kZSAuPSAkY2F0X25hbWU7CiAgICAgICAgJGNhdF9jb2RlIC49ICI8L2xhYmVsPjwvZGl2PlxuIjsKICAgICAgfQogICAgfQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yaWVzX2lucHV0JywgJGNhdF9jb2RlKTsKICAgIAogICAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCJhZGRfZXZlbnQudHBsIik7CiAgfQoKICBmdW5jdGlvbiBDcmVhdGVUZXh0QXJlYSgkZW5hYmxld3lzaXd5ZywgJGlkLCAkdGV4dCwgJG5hbWUsICRjbGFzc25hbWU9JycsICRodG1saWQ9JycsICRlbmNvZGluZz0nJywgJHN0eWxlc2hlZXQ9JycsICR3aWR0aD0nODAnLCAkY29scz0nMTUnLCRmb3JjZXd5c2l3eWc9IiIpCiAgewogICAgcmV0dXJuIGNyZWF0ZV90ZXh0YXJlYSgkZW5hYmxld3lzaXd5ZywgJHRleHQsICRpZC4kbmFtZSwgJGNsYXNzbmFtZSwgJGh0bWxpZCwgJGVuY29kaW5nLCAkc3R5bGVzaGVldCwgJHdpZHRoLCAkY29scywkZm9yY2V3eXNpd3lnKTsKICB9CgogIC8qKgogICAqIFNhdmUgdGhlIHN1Ym1pdHRlZCBldmVudCBpbmZvIGJ5IHBhc3NpbmcgaXQgdG8gdGhlIGNhbGVuZGFyIG1vZHVsZQogICAqLwogIGZ1bmN0aW9uIEFkZEV2ZW50KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkgCiAgewogICAgJGNhbGVuZGFyID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdDYWxlbmRhcicpOwogICAgCiAgICAvL3NldCB1c2VyX2lkIHRvIDAgc2luY2Ugbm90IGFuIGFkbWluIHVzZXIKICAgICR0bXAgPSAkdGhpcy0+Y21zLT52YXJpYWJsZXNbJ3VzZXJfaWQnXTsKICAgICR0aGlzLT5jbXMtPnZhcmlhYmxlc1sndXNlcl9pZCddID0gMDsKICAgIAogICAgLy9hZGQgdGhlIGV2ZW50IHRocm91Z2ggdGhlIGNhbGVuZGFyIG1vZHVsZQogICAgJGNhbGVuZGFyLT5BZG1pblVwZGF0ZUV2ZW50KCRpZCwgJHBhcmFtcywgJHJldHVybmlkKTsKICAgIAogICAgLy9zZXQgdXNlcl9pZCBiYWNrIHRvIHdoYXRldmVyIGl0IHdhcwogICAgJHRoaXMtPmNtcy0+dmFyaWFibGVzWyd1c2VyX2lkJ10gPSAkdG1wOwogICAgCiAgICAkdGhpcy0+RGlzcGxheU1lc3NhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdzdWNjZXNzX3RpdGxlJyksICR0aGlzLT5MYW5nKCdzdWNjZXNzX21lc3NhZ2UnKSk7CiAgfQoKICBmdW5jdGlvbiBEaXNwbGF5QWRtaW5QcmVmcygkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQsICRtZXNzYWdlPScnKQogIHsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignbW9kX3ByZWZzX3RpdGxlJywgJHRoaXMtPkxhbmcoJ21vZF9wcmVmc190aXRsZScpKTsKICAgIAogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX3N0YXJ0JywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdzYXZlX2FkbWluX3ByZWZzJywgJHJldHVybmlkKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fZW5kJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fc3VibWl0JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2Zvcm1fc3VibWl0JywgJHRoaXMtPkxhbmcoJ2Zvcm1fc3VibWl0JykpKTsKCiAgICAvLyB5b3UnbGwgb2Z0ZW4gd2FudCB0byBkbyB0aGluZ3MgbGlrZSB0aGlzIHRvIHByb3ZpZGUgZmVlZGJhY2s6CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21lc3NhZ2UnLCAoaXNzZXQoJHBhcmFtc1snbWVzc2FnZSddKT8kcGFyYW1zWydtZXNzYWdlJ106JycpKTsKICAgIAogICAgLy8kd3lzaXd5Z3MgPSAkdGhpcy0+R2V0V1lTSVdZR3MoKTsKICAgICRmZXUgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKTsKICAgICRncm91cHMgPSAkZmV1LT5HZXRHcm91cExpc3QoKTsKICAgIAogCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FsbG93X2d1ZXN0X2xhYmVsJywgJHRoaXMtPkxhbmcoJ2FsbG93X2d1ZXN0X2xhYmVsJykpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhbGxvd19ndWVzdF9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2FsbG93X2d1ZXN0JywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93X2d1ZXN0JywgJzAnKSkpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdncm91cF9sYWJlbCcsICR0aGlzLT5MYW5nKCdncm91cF9sYWJlbCcpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZ3JvdXBfaW5wdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdncm91cCcsICRncm91cHMsIC0xLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZ3JvdXAnLCAnJykpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignd3lzaXd5Z19sYWJlbCcsICR0aGlzLT5MYW5nKCd3eXNpd3lnX2xhYmVsJykpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd3eXNpd3lnX2lucHV0JywgJ05vbmUnKTsvLyR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ3d5c2l3eWdfaW5wdXQnLCAkZGF5X2FycmF5LCAtMSwgJGV2ZW50X2RhdGVfZW5kX2RheSkpOwogICAgCiAgICAKICAgIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW4udHBsJyk7CiAgfQogIAogIC8qKgogICAqIEdldCBhbiBhcnJheSBvZiBhbGwgYWN0aXZlIHd5c2l3eWcgbW9kdWxlcwogICAqLwogIGZ1bmN0aW9uIEdldFdZU0lXWUdBcnJheSgpCiAgewogICAgZ2xvYmFsICRnQ21zOwogICAgJG1vZHVsZV9saXN0ID0gYXJyYXkoKTsKICAgIGZvcmVhY2goJGdDbXMtPm1vZHVsZXMgYXMgJGtleSA9PiAkbW9kdWxlKQogICAgICBpZigkbW9kdWxlWydpbnN0YWxsZWQnXSAmJiAkbW9kdWxlWydhY3RpdmUnXSAmJiAkbW9kdWxlWydvYmplY3QnXS0+SXNXWVNJV1lHKCkpCiAgICAgICAgJG1vZHVsZV9saXN0W10gPSYgJGdDbXMtPm1vZHVsZXNbJGtleV1bJ29iamVjdCddOyAvL3NldCByZWZlcmVuY2UgdG8gbW9kdWxlIG9iamVjdAogICAgCiAgICByZXR1cm4gJG1vZHVsZV9saXN0OwogIH0KCiAgZnVuY3Rpb24gU2F2ZUFkbWluUHJlZnMoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdncm91cCcsICRwYXJhbXNbJ2dyb3VwJ10pOwogICAgLy8kdGhpcy0+U2V0UHJlZmVyZW5jZSgnd3lzaXd5ZycsICRwYXJhbXNbJ3d5c2l3eWcnXSk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWxsb3dfZ3Vlc3QnLCBpc3NldCgkcGFyYW1zWydhbGxvd19ndWVzdCddKT8kcGFyYW1zWydhbGxvd19ndWVzdCddOicwJyk7CgogICAgLy8gdG8gY2FsbCBhbm90aGVyIG1ldGhvZCBvZiB0aGUgbW9kdWxlLCB5b3UgaGF2ZSB0byBiZSBjYXJlZnVsIG5vdyB0aGF0CiAgICAvLyBtZXRob2RzIGNhbiBiZSBzcGxpdCBpbnRvIG90aGVyIGZpbGVzLiBIZXJlJ3MgdGhlIHByZWZlcmVkIGFwcHJvYWNoOgogICAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ3ByZWZzdXBkYXRlZCcpOwogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCk7CiAgfQogIAogIC8qKgogICAqIERpc3BsYXkgYSBzaW1wbGUgbWVzc2FnZQogICAqLwogIGZ1bmN0aW9uIERpc3BsYXlNZXNzYWdlKCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCwgJHRpdGxlLCAkbWVzc2FnZSkKICB7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlJywgJHRpdGxlKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignbWVzc2FnZScsICRtZXNzYWdlKTsKCiAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ21lc3NhZ2UudHBsJyk7CiAgfQogIAogIC8qKgogICAqIENoZWNrIGlmIGN1cnJlbnQgdXNlciBpcyBhbGxvd2VkIHRvIHBvc3QKICAgKi8KICBmdW5jdGlvbiBDaGVja1VzZXIoKQogIHsKICAgICRmZXUgPSYgJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CiAgICAKICAgIGlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dfZ3Vlc3QnKSB8fAogICAgICAgICRmZXUtPkxvZ2dlZEluKCkgJiYKICAgICAgICAkZmV1LT5NZW1iZXJPZkdyb3VwKCRmZXUtPkxvZ2dlZEluSWQoKSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2dyb3VwJykpKQogICAgICByZXR1cm4gdHJ1ZTsKICAgIGVsc2UgewogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</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[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0ZldSBDYWxlbmRhcic7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJyc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnJzsKJGxhbmdbJ3JlYWxseV91bmluc3RhbGwnXSA9ICdVbmluc3RhbGxpbmcgdGhpcyBtb2R1bGUgd2lsbCBub3QgYWZmZWN0IGFueSBldmVudCBkYXRhIGJ1dCBldmVudCBtb2RlcmF0aW9uIGRhdGEgd2lsbCBiZSBsb3N0LiBEbyB5b3Ugd2lzaCB0byBjb250aW51ZT8nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgVW5pbnN0YWxsZWQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGxlZC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgdXBncmFkZWQgdG8gdmVyc2lvbiAlcy4nOwoKJGxhbmdbJ2RlbmllZF90aXRsZSddID0gJ0FjY2VzcyBEZW5pZWQnOwokbGFuZ1snZGVuaWVkX21lc3NhZ2UnXSA9ICdZb3UgZG8gbm90IGhhdmUgcGVybWlzc2lvbnMgdG8gYWNjZXNzIHRoaXMgcGFnZS4nOwokbGFuZ1snc3VjY2Vzc190aXRsZSddID0gJ0V2ZW50IEFkZGVkJzsKJGxhbmdbJ3N1Y2Nlc3NfbWVzc2FnZSddID0gJ1lvdXIgZXZlbnQgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGFkZGVkIHRvIHRoZSBjYWxlbmRhci4nOwoKJGxhbmdbJ21vZF9wcmVmc190aXRsZSddID0gJ01vZHVsZSBQcmVmZXJlbmNlcyc7CiRsYW5nWydmb3JtX3N1Ym1pdCddID0gJ1NhdmUgUHJlZmVyZW5jZXMnOwokbGFuZ1sncHJlZnN1cGRhdGVkJ10gPSAnTW9kdWxlIHByZWZlcmVuY2VzIHVwZGF0ZWQuJzsKCiRsYW5nWydhbGxvd19ndWVzdF9sYWJlbCddID0gJ0FsbG93IGd1ZXN0IHVzYWdlJzsKJGxhbmdbJ2dyb3VwX2xhYmVsJ10gPSAnRnJvbnRFbmRVc2VycyBncm91cCBuYW1lJzsKJGxhbmdbJ3d5c2l3eWdfbGFiZWwnXSA9ICdXWVNJV1lHIGVkaXRvcic7CgokbGFuZ1snZGF0ZV90aW1lX3NlcGFyYXRvciddID0gJyBhdCAnOwokbGFuZ1snaG91cl9taW51dGVfc2VwYXJhdG9yJ10gPSAnOic7CgokbGFuZ1snZm9ybV9jYW5jZWwnXSA9ICdDYW5jZWwnOwoKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnQWxsb3dzIEZyb250RW5kVXNlcnMgdG8gc3VibWl0IGV2ZW50cyB0byB0aGUgQ2FsZW5kYXIgbW9kdWxlLic7CiRsYW5nWyd3ZWxjb21lX3RleHQnXSA9ICc8cD5IZWxsbyE8L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJwo8dWw+CiAgPGxpPlZlcnNpb24gMC4xIEFscGhhIHJlbGVhc2UuPC9saT4KPC91bD4nOwokbGFuZ1snaGVscCddID0gPDw8RU9UCjxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPgo8cD5UaGlzIG1vZHVsZSBhbGxvd3MgdmlzaXRvcnMgd2l0aG91dCBhZG1pbiBhY2Nlc3MgdG8gYWRkIGV2ZW50cyB0byB0aGUgQ2FsZW5kYXIgCm1vZHVsZS4gPC9wPgoKPGgzPkhvdyBEbyBJIFVzZSBJdDwvaDM+CllvdSBtdXN0IGhhdmUgdGhlICJNb2RpZnkgQ2FsZW5kYXIiIHBlcm1pc3Npb24gdG8gYWNjZXNzIHRoZSBhZG1pbiBwYW5lbCBmb3IgdGhpcyBtb2R1bGUuCgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSBvciB0byBmaWxlIGEgYnVnIHJlcG9ydCB2aXNpdCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2ZldWNhbGVuZGFyIj50aGUgQ01TIEZvcmdlPC9hPi48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjwvdWw+Cgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA2LCBUYW1seW4gUmhvZGVzICZsdDs8YSBocmVmPSJodHRwOi8vdGFtbHluLm9yZyI+dGFtbHluLm9yZzwvYT4mZ3Q7IEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4KRU9UOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZldUNhbGVuZGFyIC0gRnJvbnQgRW5kIFVzZXJzIHRvIENhbGVuZGFyIGJyaWRnZQojIE1ldGhvZDogSW5zdGFsbAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZmV1Y2FsZW5kYXIvCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCi8qCiRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsKCi8vIG15c3FsLXNwZWNpZmljLCBidXQgaWdub3JlZCBieSBvdGhlciBkYXRhYmFzZQokdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoKLy8gdGFibGUgc2NoZW1hIGRlc2NyaXB0aW9uCiRmbGRzID0gIgpza2VsZXRvbl9pZCBJIEtFWSwKZGVzY3JpcHRpb24gQyg4MCkKIjsKCi8vIGNyZWF0ZSBpdC4gVGhpcyBzaG91bGQgZG8gZXJyb3IgY2hlY2tpbmcsIGJ1dCBJJ20gYSBsYXp5IHNvZC4KJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3NrZWxldG9uIiwgJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCi8vIGNyZWF0ZSBhIHNlcXVlbmNlCiRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfc2tlbGV0b25fc2VxIik7Ci8vKi8KICAgICAgCi8vIGNyZWF0ZSBkZWZhdWx0IHByZWZlcmVuY2VzCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdncm91cF9uYW1lJywgJycpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnd3lzaXd5ZycsICcnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FsbG93X2d1ZXN0JywgZmFsc2UpOwoKLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nCiR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygnaW5zdGFsbGVkJywkdGhpcy0+R2V0VmVyc2lvbigpKSk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZldUNhbGVuZGFyIC0gRnJvbnQgRW5kIFVzZXJzIHRvIENhbGVuZGFyIGJyaWRnZQojIE1ldGhvZDogVW5pbnN0YWxsCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9mZXVjYWxlbmRhci8KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi8qCiAgICBGb3Igc2VwYXJhdGVkIG1ldGhvZHMsIHlvdSdsbCBhbHdheXMgd2FudCB0byBzdGFydCB3aXRoIHRoZSBmb2xsb3dpbmcKICAgIGxpbmUgd2hpY2ggY2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgbWV0aG9kIHdhcyBjYWxsZWQgZnJvbSB0aGUgbW9kdWxlCiAgICBBUEksIGFuZCB0aGF0IGV2ZXJ5dGhpbmcncyBzYWZlIHRvIGNvbnRpbnVlOgoqLyAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoKCQkvLyByZW1vdmUgdGhlIHByZWZlcmVuY2VzCgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoImdyb3VwIik7CgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoInd5c2l3eWciKTsKCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgiYWxsb3dfZ3Vlc3QiKTsKCQkKCQkvLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cKCQkkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ3VuaW5zdGFsbGVkJykpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZldUNhbGVuZGFyIC0gRnJvbnQgRW5kIFVzZXJzIHRvIENhbGVuZGFyIGJyaWRnZQojIE1ldGhvZDogVXBncmFkZQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZmV1Y2FsZW5kYXIvCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgovKgogICAgRm9yIHNlcGFyYXRlZCBtZXRob2RzLCB5b3UnbGwgYWx3YXlzIHdhbnQgdG8gc3RhcnQgd2l0aCB0aGUgZm9sbG93aW5nCiAgICBsaW5lIHdoaWNoIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IG1ldGhvZCB3YXMgY2FsbGVkIGZyb20gdGhlIG1vZHVsZQogICAgQVBJLCBhbmQgdGhhdCBldmVyeXRoaW5nJ3Mgc2FmZSB0byBjb250aW51ZToKKi8gCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKCi8qIEFmdGVyIHRoaXMsIHRoZSBjb2RlIGlzIGlkZW50aWNhbCB0byB0aGUgY29kZSB0aGF0IHdvdWxkIG90aGVyd2lzZSBiZQogICAgd3JhcHBlZCBpbiB0aGUgVXBncmFkZSgpIG1ldGhvZCBpbiB0aGUgbW9kdWxlIGJvZHkuCiovCgoJCSRjdXJyZW50X3ZlcnNpb24gPSAkb2xkdmVyc2lvbjsKCQlzd2l0Y2goJGN1cnJlbnRfdmVyc2lvbikKCQl7CgkJCWNhc2UgIjAuMSI6CgkJCSAgICAgYnJlYWs7CgkJfQoJCQoJCS8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZwoJCSR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygndXBncmFkZWQnLCR0aGlzLT5HZXRWZXJzaW9uKCkpKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/add_event.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3JtX3N0YXJ0fQo8dGFibGUgaWQ9ImZldWNhbGVuZGFyLWFkZGV2ZW50IiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iNSI+CiAgPHRyPgogICAgPHRkIGFsaWduPSJyaWdodCI+eyRzdGFydF9sYWJlbH06PC90ZD4gCiAgICA8dGQ+eyRzdGFydF9pbnB1dH08L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkIGFsaWduPSJyaWdodCI+eyRlbmRfbGFiZWx9OjwvdGQ+CiAgICA8dGQ+eyRlbmRfaW5wdXR9PC90ZD4KICA8L3RyPgogIDx0cj4KICAgIDx0ZCBhbGlnbj0icmlnaHQiPnskdGl0bGVfbGFiZWx9OjwvdGQ+CiAgICA8dGQ+eyR0aXRsZV9pbnB1dH08L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkIGFsaWduPSJyaWdodCI+eyRzdW1tYXJ5X2xhYmVsfTo8L3RkPgogICAgPHRkPnskc3VtbWFyeV9pbnB1dH08L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkIGFsaWduPSJyaWdodCI+eyRkZXRhaWxzX2xhYmVsfTo8L3RkPgogICAgPHRkPnskZGV0YWlsc19pbnB1dH08L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkIGFsaWduPSJyaWdodCI+eyRjYXRlZ29yaWVzX2xhYmVsfTo8L3RkPgogICAgPHRkPnskY2F0ZWdvcmllc19pbnB1dH08L3RkPgogIDwvdHI+CiAgCiAgPHRyPgogICAgPHRkPjwvdGQ+CiAgICA8dGQgYWxpZ249ImxlZnQiPgogICAgICB7JGZvcm1fc3VibWl0fQogICAgICB7JGZvcm1fY2FuY2VsfQogICAgPC90ZD4KICA8L3RyPgo8L3RhYmxlPgp7JGZvcm1fZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kX3ByZWZzX3RpdGxlfTwvaDM+Cgp7aWYgJG1lc3NhZ2UhPScnfTxwPnskbWVzc2FnZX08L3A+ey9pZn0KeyRmb3JtX3N0YXJ0fQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskYWxsb3dfZ3Vlc3RfbGFiZWx9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGFsbG93X2d1ZXN0X2lucHV0fTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZ3JvdXBfbGFiZWx9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGdyb3VwX2lucHV0fTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskd3lzaXd5Z19sYWJlbH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskd3lzaXd5Z19pbnB1dH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRmb3JtX3N1Ym1pdH08L3A+Cgk8L2Rpdj4KeyRmb3JtX2VuZH0K]]></data>
	</file>
	<file>
	  <filename>/templates/message.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGV9PC9oMz4KPHA+eyRtZXNzYWdlfTwvcD4=]]></data>
	</file>
</module>
