<?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>CGJobMgr</name>
	<version>1.3.4</version>
  <mincmsversion>1.11.10</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoZXJlIGFyZSBvZnRlbiB0aW1lcyBvbiB3ZWJzaXRlcyB3aGVyZSB0YXNrcyB0aGF0IG1heSB0YWtlIGEgY29uc2lkZXJhYmxlIGFtb3VudCBvZiB0aW1lIG5lZWQgdG8gYmUgYXV0b21hdGVkLiAgRm9yIGV4YW1wbGUsIHNlbmRpbmcgb3V0IGFuIGVtYWlsIG5ld3NsZXR0ZXIsIGltcG9ydGluZyByZWNvcmRzIGZyb20gYSBDU1YgZmlsZSwgb3IgcmVxdWVzdGluZyBsYXJnZSBhbW91bnRzIG9mIGRhdGEgZnJvbSBhIHJlbW90ZSBzZXJ2aWNlLiAgIFBIUCAocGVydGljdWxhcmx5IG9uIGhvc3RlZCB3ZWJzaXRlcykgZG9lcyBub3QgbGlrZSB0byBydW4gZm9yIGxvbmcgcGVyaW9kcyBvZiB0aW1lLiAgVGhpcyBtb2R1bGUgYWxsb3dzIGEgZGV2ZWxvcGVyIHRvIGNyZWF0ZSAmcXVvdDtqb2JzJnF1b3Q7IGNvbnNpc3Rpbmcgb2Ygb25lIG9yIG1vcmUgJnF1b3Q7dGFza3MmcXVvdDsgdGhhdCBhcmUgaGFuZGxlZCBieSBhbiBodHRwIHJlcXVlc3QgdGhhdCBjYW4gYmUgaGFuZGxlZCBpbiB0aGUgYmFja2dyb3VuZCBhdXRvbWF0aWNhbGx5LjxwPgo8aDM+SG93IGRvIEkgdXNlIGl0PC9oMz4KPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgYW4gQVBJIHRoYXQgYWxsb3dzIG90aGVyIG1vZHVsZSBkZXZlbG9wZXJzIHRvIGNyZWF0ZSBqb2JzLiAgRnJvbSBhIHVzZXIgcGVyc3BlY3RpdmUgeW91IG1lcmVseSBuZWVkIHRvIGZvbGxvdyB0d28gc3RlcHM6PC9wPgo8b2w+CiAgPGxpPkluc3RhbGwgYW5kIGNvbmZpZ3VyZSB0aGUgbW9kdWxlLjwvbGk+CiAgPGxpPkNvbmZpZ3VyZSBhIHNjaGVkdWxlZCB0YXNrIHRvIGFjY2VzcyB0aGUgc3VwcGxpZWQgcHJvY2VzcyB1cmwgb24gYSByZWd1bGFyLCBmcmVxdWVudCBiYXNpcyA8ZW0+KGEgY3JvbiBqb2Igd29ya3MgZ3JlYXQgZm9yIHRoaXMpPC9lbT4KPC9vbD4KPGgzPkZlYXR1cmVzPC9oMz4KPHVsPgogIDxsaT5UaGUgQVBJIGFsbG93cyBmb3IgY3JlYXRpbmcgc3RhcnR1cCBhbmQgZmluaXNoIGpvYnMuLi48L2xpPgogIDxsaT5BbiBpdGVyYXRpdmUgdGFzayB0eXBlIHRoYXQgd2lsbCBydW4gc21hbGwgc3RlcHMgKHN1Y2ggYXMgY29udmVydGluZyBvbmUgbGluZSBvZiBhIENTViBmaWxlKSB1bnRpbCB0aGUgYWxsb3dlZCB0aW1lIGlzIG5lYXJseSBleGhhdXN0ZWQ8L2xpPgogIDxsaT5BIFNpbXBsZSB0YXNrIHR5cGUgdGhhdCBydW5zIG9uY2UgYW5kIGlzIGV4cGVjdGVkIHRvIGNvbXBsZXRlLjwvbGk+CiAgPGxpPkV4dGVuc2l2ZSBsb2dnaW5nIHRvIHRoZSBhZG1pbiBsb2c8L2xJPgogIDxsaT5Kb2JzIGFyZSBzdGFydGVkIGJ5IHRoZSBwcm9jZXNzIGFjdGlvbiAoYWNjZXNzZWQgdmlhIHRoZSBwcm9jZXNzIHVybCBwcm92aWRlZCBpbiB0aGUgYWRtaW4gaW50ZXJmYWNlLCBvbmUgam9iIHBlciByZXF1ZXN0KSB0aGVuIGNvbXBsZXRlIHVudGlsIGZpbmlzaGVkZSB2aWEgY29udGludWVkIHJlZGlyZWN0c3cgYmFjayB0byB0aGUgcHJvY2VzcyBhY3Rpb24uICBUaGVyZWZvcmUgam9icyB3aWxsIGNvbXBsZXRlIGZhc3Rlci48L2xpPgogIDxsaT5TbWFsbCBhbW91bnRzIG9mIGRhdGEgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBqb2IsIGFuZCB0byBpbmRpdmlkdWFsIHRhc2tzIHRoYXQgaXMgc2VyaWFsaXplZCBhbmQgc3RvcmVkIHdpdGggdGhlIGpvYiBpbiB0aGUgZGF0YWJhc2UuICBUaGlzIGlzIHVzZWZ1bCBmb3IgcHJvdmlkaW5nIGluZm9ybWF0aW9uIHN1Y2ggYXMgZmlsZW5hbWVzLCB0aW1lIGxpbWl0cywgbm90aWZpY2F0aW9uIGFkZHJlc3NlcyBldGMuIHRvIHRoZSB0YXNrIGZ1bmN0aW9ucy48L2xpPgo8L3VsPgo8aDM+QXV0b21hdGljIFByb2Nlc3Npbmc8L2gzPgo8cD5UaG91Z2ggdGhlIENHSm9iTWdyIG1vZHVsZSBwcm92aWRlcyBhIGxpbmsgaW4gaXRzIGFkbWluIHBhbmVsIHRvIHByb2Nlc3MgdGhlIG5leHQgam9iLCBpdCBpcyBiZXN0IGlmIHRoaXMgaXMgZG9uZSBhdXRvbWF0aWNhbGx5IG9uIGEgZnJlcXVlbnQgYmFzaXMuICBUaGVyZSBhcmUgbnVtZXJvdXMgd2F5cyB0aGF0IHRoaXMgY2FuIGJlIGRvbmUuPC9wPgo8cD5Nb3N0IHdlYmhvc3RzIHByb3ZpZGUgYSBjb250cm9sIHBhbmVsIHRoYXQgaGFzIGFuIG9wdGlvbiBmb3IgY3JlYXRpbmcgYW5kIG1hbmFnaW5nIHNjaGVkdWxlZCB0YXNrcyAoc3R1ZmYgdGhhdCB5b3Ugd2FudCB0byBkbyBvbiBhIHJlZ3VsYXIgYmFzaXMpLiAgSWYgbm90LCBhbmQgeW91IGhhdmUgYWNjZXNzIHRvIGEgdGFzayBtYW5hZ2VyIG9uIGFub3RoZXIgbWFjaGluZSB0aGF0IGlzIGludGVybmV0IGVuYWJsZWQgeW91IGNhbiBjcmVhdGUgYSBzY2hlZHVsZWQgdGFzayB0aGVyZS48L3A+CjxwPkxpbnV4L1VuaXggYmFzZWQgbWFjaGluZXMgaGF2ZSBhIGJ1aWx0IGluIG1lY2hhbmlzbSBjYWxsZWQgJnF1b3Q7Y3JvbiZxdW90OyBCZWxvdyBpcyBhIHNhbXBsZSBqb2IgdGhhdCBpcyBleGVjdXRlZCBldmVyeSAxMCBtaW51dGVzLCBhbmQgdXNlcyB3Z2V0IHRvIHRyaWdnZXIgdGhlIHByb2Nlc3NpbmcgYW5kIGRpc3JlZ2FyZCBpdHMgb3V0cHV0Ljxici8+PGJyLz48L3A+Cjxjb2RlIHN0eWxlPSJtYXJnaW4tbGVmdDogNGVtOyBtYXJnaW4tcmlnaHQ6IDRlbTsgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyBwYWRkaW5nOiAxZW07Ij4KKi8xMCAqICogKiAqIHdnZXQgLU8gL2Rldi9udWxsIGh0dHA6Ly9teXNpdGUuY29tL0NHSm9iTWdyL3Byb2Nlc3MgPi9kZXYvbnVsbCAyPiYxCjwvY29kZT4KPGgzPkFQSTwvaDM+CjxwPk51bWVyb3VzIFBIUCBjbGFzc2VzIGRlZmluZSB0aGUgQVBJIGZvciBjcmVhdGluZyBqb2JzLCB0aGVpciB0YXNrcywgYW5kIHRoZW4gc3VibWl0dGluZyB0aGVtIHRvIHRoZSBqb2IgbWFuYWdlci4gICBUaGUgY2xhc3NlcyBhcmUgZnVsbHkgZG9jdW1lbnRlZCBpbiB0aGVpciBhcHByb3ByaWF0ZSBQSFAgZmlsZXMuICBUaGUgZmlsZXMgYXJlIGFzIGZvbGxvd3M6PC9wPgo8dGFibGUgY2xhc3M9InBhZ2V0YWJsZSIgY2VsbHNwYWNpbmc9IjAiIHN0eWxlPSJtYXJnaW4tbGVmdDogMmVtOyB3aWR0aDogNzUlOyI+CiA8dGhlYWQ+CiAgPHRyPgogICAgPHRoPkNsYXNzPC90aD4KICAgIDx0aD5EZXNjcmlwdGlvbjwvdGg+CiAgICA8dGg+RmlsZW5hbWU8L3RoPgogIDwvdHI+CiA8L3RoZWFkPgogPHRib2R5PgogICA8dHI+CiAgICAgPHRkPmNnam9ibWdyX2pvYjwvdGQ+CiAgICAgPHRkPlRoZSBqb2IgY2xhc3M8L3RkPgogICAgIDx0ZD5saWIvY2xhc3MuY2dqb2JtZ3Jfam9iLnBocDwvdGQ+CiAgIDwvdHI+CiAgIDx0cj4KICAgICA8dGQ+Y2dqb2JtZ3JfdGFzazwvdGQ+CiAgICAgPHRkPkFic3RyYWN0IGJhc2UgY2xhc3M8L3RkPgogICAgIDx0ZD5saWIvY2xhc3MuY2dqb2JtZ3JfdGFzay5waHA8L3RkPgogICA8L3RyPgogICA8dHI+CiAgICAgPHRkPmNnam9ibWdyX3NpbXBsZXRhc2s8L3RkPgogICAgIDx0ZD5BIHNpbXBsZSAmcXVvdDtydW4gb25jZSZxdW90OyB0YXNrPC90ZD4KICAgICA8dGQ+bGliL2NsYXNzLmNnam9ibWdyX3NpbXBsZXRhc2sucGhwPC90ZD4KICAgPC90cj4KICAgPHRyPgogICAgIDx0ZD5jZ2pvYm1ncl9pdGVyYXRpdmV0YXNrPC90ZD4KICAgICA8dGQ+QSB0YXNrIHRoYXQgd2lsbCBydW4gc21hbGwgc3RlcHMgKGkuZTogcHJvY2VzcyBvbmUgbGluZSBvZiBhIENTViBmaWxlKSB1bnRpbCBhbGxvdHRlZCB0aW1lIGlzIGNsb3NlIHRvIGV4cGlyeS48L3RkPgogICAgIDx0ZD5saWIvY2xhc3MuY2dqb2JtZ3JfaXRlcmF0aXZldGFzay5waHA8L3RkPgogICA8L3RyPgogICA8dHI+CiAgICAgPHRkPmNnam9ibWdyX2pvYmhhbmRsZXI8L3RkPgogICAgIDx0ZD5BbiBhYnN0cmFjdCBzaW5nbGV0b24gY2xhc3MgdGhhdCBwcm92aWRlcyB0aGUgaW50ZXJmYWNlIGZvciBkaWZmZXJlbnQgam9iIGhhbmRsZXJzLjwvdGQ+CiAgICAgPHRkPmxpYi9jbGFzcy5jZ2pvYm1ncl9qb2JoYW5kbGVyLnBocDwvdGQ+CiAgIDwvdHI+CiA8L3Rib2R5Pgo8L3RhYmxlPgo8aDM+RXhhbXBsZTo8L2gzPgo8cD5UaGUgZm9sbG93aW5nIGNvZGUgaXMgYSBtYXJrZWQgdXAgY29weSBvZiB0aGUgY29kZSBmcm9tIHRoZSBDR1JhcExlYWYgbW9kdWxlIHRoYXQgc3VibWl0cyB0aGUgam9iLjwvcD4KPHByZSBzdHlsZT0ibWFyZ2luLWxlZnQ6IDRlbTsgbWFyZ2luLXJpZ2h0OiA0ZW07IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsiPjxjb2RlPi8vIENyZWF0ZSBhIG5ldyBqb2IsIGdpdmUgaXQgYSBuYW1lLCBhbmQgc3BlY2lmeSB3aG8gb3ducyBpdAokam9iID0gbmV3IGNnam9ibWdyX2pvYigkdGhpcy0+R2V0TmFtZSgpLicgYnVsayBzdWJtaXNzaW9uJyxnZXRfdXNlcmlkKEZBTFNFKSk7CgovLyBDcmVhdGUgYSBuZXcgJnF1b3Q7aXRlcmF0aXZlJnF1b3Q7IHRhc2sgdGhhdCB3aWxsIHJlcGVhdCBhIHNtYWxsIHN0ZXAgdW50aWwgdGhlcmUgaXMgbm8gdGltZSBsZWZ0CiR0YXNrID0gbmV3IGNnam9ibWdyX2l0ZXJhdGl2ZXRhc2soJ3Byb2Nlc3MgZW1haWwgYWRkcmVzcycpOwoKLy8gU3BlY2lmeSB3aGljaCBmdW5jdGlvbiB0aGlzIHRhc2sgd2lsbCBjYWxsIHRvIGFjdHVhbGx5IGRvIHRoZSB3b3JrCiR0YXNrLT5zZXRfZnVuY3Rpb24oYXJyYXkoJ2NncmFwbGVhZl90YXNrJywncHJvY2Vzc190YXNrJykpOwoKLy8gUHJvdmlkZSBzb21lIGRhdGEgdG8gdGhlIHRhc2sKJHRhc2stPnNldF9wZXJzaXN0ZW50X2RhdGEoJ2lucHV0X2ZpbGUnLCRpbmZpbGUpOwokdGFzay0+c2V0X3BlcnNpc3RlbnRfZGF0YSgnb3V0cHV0X2ZpbGUnLCRvdXRmaWxlKTsKJHRhc2stPnNldF9wZXJzaXN0ZW50X2RhdGEoJ2xvZ2ZpbGUnLCRsb2dmaWxlKTsKJHRhc2stPnNldF9wZXJzaXN0ZW50X2RhdGEoJ2NvbHVtbicsJGNvbHVtbik7CiR0YXNrLT5zZXRfcGVyc2lzdGVudF9kYXRhKCdkZWxpbWV0ZXInLCRkZWxpbWl0ZXIpOwoKLy8gQWRkIHRoZSB0YXNrIHRvIHRoZSBqb2IKJGpvYi0+YWRkX3Rhc2soJHRhc2spOwoKLy8gQ3JlYXRlIGFub3RoZXIgdGFzay4uLiBhIHNpbXBsZSBydW4tb25jZSB0YXNrCiR0YXNrID0gbmV3IGNnam9ibWdyX3NpbXBsZXRhc2soJ3NlbmQgcmVzdWx0Jyk7CiR0YXNrLT5zZXRfZnVuY3Rpb24oYXJyYXkoJ2NncmFwbGVhZl90YXNrJywnbm90aWZ5JykpOwoKLy8gQWRkIHNvbWUgZGF0YSBpbnRvIHRoaXMgdGFzawokdGFzay0+c2V0X3BlcnNpc3RlbnRfZGF0YSgnaW5wdXRfZmlsZScsJGluZmlsZSk7CiR0YXNrLT5zZXRfcGVyc2lzdGVudF9kYXRhKCdvdXRwdXRfZmlsZScsJG91dGZpbGUpOwokdGFzay0+c2V0X3BlcnNpc3RlbnRfZGF0YSgnbG9nZmlsZScsJGxvZ2ZpbGUpOwokdGFzay0+c2V0X3BlcnNpc3RlbnRfZGF0YSgnZGVzdF9lbWFpbCcsJGVtYWlsKTsKCi8vIEFkZCB0aGUgdGFzayB0byB0aGUgam9iCiRqb2ItPmFkZF90YXNrKCR0YXNrKTsKCi8vIFNhdmUgdGhlIGpvYiBpbnRvIHRoZSBkYXRhYmFzZS4uLiBpdCB3aWxsIHJ1biBhdXRvbWF0aWNhbGx5IHRoZSBuZXh0IHRpbWUgdGhlIHByb2Nlc2luZyB1cmwgaXMgYWNjZXNzZWQuCiRqb2ItPnNhdmUoKTsKPC9jb2RlPjwvcHJlPjxici8+CjxoND5UYXNrIGZ1bmN0aW9uczo8L2g0Pgo8cD5UYXNrIGZ1bmN0aW9ucyBtYXkgYmUgc2ltcGxlIFBIUCBmdW5jdGlvbnMsIG9yIHN0YXRpYyBtZW1iZXJzIG9mIGEgcGhwIGNsYXNzLiAgVGhleSBhY2NlcHQgYSBjZ2pvYm1ncl90YXNrIHJlZmVyZW5jZSBhcyB0aGVpciBzaW5nbGUgcGFyYW1ldGVyLiAgVGhleSBhcmUgZXhwZWN0ZWQgdG8gcmV0dXJuIGEgY2dqb2JtZ3JfdGFzayBzdGF0dXMuICBpLmU6PC9wPgo8cHJlIHN0eWxlPSJtYXJnaW4tbGVmdDogNGVtOyBtYXJnaW4tcmlnaHQ6IDRlbTsgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7IGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyI+PGNvZGU+CmNsYXNzIGNncmFwbGVhZl90YXNrCnsKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIG5vdGlmeShjZ2pvYm1ncl90YXNrJiAkdGFzaykKICB7CiAgICAkZGVzdF9lbWFpbCA9ICR0YXNrLT5nZXRfcGVyc2lzdGVudF9kYXRhKCdkZXN0X2VtYWlsJyk7CiAgICAkb3V0ZmlsZSA9ICR0YXNrLT5nZXRfcGVyc2lzdGVudF9kYXRhKCdvdXRwdXRfZmlsZScpOwoKICAgIGlmKCAhJGRlc3RfZW1haWwgKQogICAgICB7CglhdWRpdCgnJywnY2dyYXBsZWFmX3Rhc2snLCdObyBkZXN0aW5hdGlvbiBlbWFpbCBzcGVjaWZpZWQnKTsKCXJldHVybiBjZ2pvYm1ncl90YXNrOjpTVEFUVVNfRVJST1I7CiAgICAgIH0KICAgICR0b19hZGRycyA9IGNnZV9hcnJheTo6c21hcnRfZXhwbG9kZSgkZGVzdF9lbWFpbCk7CiAgICBpZiggIWlzX2FycmF5KCR0b19hZGRycykgfHwgY291bnQoJHRvX2FkZHJzKSA9PSAwICkKICAgICAgewoJYXVkaXQoJycsJ2NncmFwbGVhZl90YXNrJywnQ291bGQgbm90IGZpbmQgYSBkZXN0aW5hdGlvbiBlbWFpbCBhZGRyZXNzJyk7CglyZXR1cm4gY2dqb2JtZ3JfdGFzazo6U1RBVFVTX0VSUk9SOwogICAgICB9CgogICAgaWYoICEkb3V0ZmlsZSB8fCAhZmlsZV9leGlzdHMoJG91dGZpbGUpICkKICAgICAgewoJYXVkaXQoJycsJ2NncmFwbGVhZl90YXNrJywnQ291bGQgbm90IGZpbmQgb3V0cHV0IGZpbGUnKTsKCXJldHVybiBjZ2pvYm1ncl90YXNrOjpTVEFUVVNfRVJST1I7CiAgICAgIH0KICAgICRvdXR0eXBlID0gY2dlX3V0aWxzOjpnZXRfbWltZV90eXBlKCRvdXRmaWxlKTsKICAgICRyYXBsZWFmID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR1JhcExlYWYnKTsKICAgICRjbXNtYWlsZXIgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NNU01haWxlcicpOwogICAgJGNtc21haWxlci0+cmVzZXQoKTsKICAgICRudW1fdG8gPSAwOwogICAgZm9yZWFjaCggJHRvX2FkZHJzIGFzICRvbmUgKQogICAgICB7CglpZiggIWlzX2VtYWlsKCRvbmUpICkgY29udGludWU7CgkkbnVtX3RvKys7CgkkY21zbWFpbGVyLT5BZGRBZGRyZXNzKCRvbmUpOwogICAgICB9CiAgICAkY21zbWFpbGVyLT5TZXRTdWJqZWN0KCRyYXBsZWFmLT5MYW5nKCdidWxrZW1haWxfc3ViamVjdCcpKTsKICAgICRjbXNtYWlsZXItPkFkZEF0dGFjaG1lbnQoICRvdXRmaWxlLCAncmFwbGVhZi5jc3YnLCAnYmFzZTY0JywgJG91dHR5cGUgKTsKICAgIGlmKCAkbG9nZmlsZSAmJiBmaWxlX2V4aXN0cygkbG9nZmlsZSkgKQogICAgICB7CgkkY21zbWFpbGVyLT5BZGRBdHRhY2htZW50KCAkbG9nZmlsZSwgJ3JhcGxlYWYubG9nJywgJ2Jhc2U2NCcsIGNnZV91dGlsczo6Z2V0X21pbWVfdHlwZSgkbG9nZmlsZSkpOwogICAgICB9CiAgICAvLyBub3cgdGhlIGJvZHkuCiAgICAkYm9keSA9ICdZb3VyIENHUmFwTGVhZiBKb2IgaGFzIGNvbXBsZXRlZC4gIFRoZSBvdXRwdXQgZmlsZShzKSBhcmUgYXR0YWNoZWQgdG8gdGhpcyBlbWFpbCc7CiAgICAkY21zbWFpbGVyLT5TZXRCb2R5KCRib2R5KTsKICAgICRjbXNtYWlsZXItPlNlbmQoKTsKCiAgICBhdWRpdCgnJywnY2dyYXBsZWFmX3Rhc2snLHNwcmludGYoJ1NlbnQgZW1haWwgdG8gJWQgYWRkcmVzc2VzJyxjb3VudCgkbnVtX3RvKSkpOwogICAgcmV0dXJuIGNnam9ibWdyX3Rhc2s6OlNUQVRVU19DT01QTEVURTsKCiAgfQp9CjwvY29kZT48L3ByZT4KPGgzPkZ1dHVyZSB2ZXJzaW9uczwvaDM+Cjx1bD4KICA8bGk+Rm9yZWdyb3VuZCBqb2JzIC0gVGhlIGFiaWxpdHkgdG8gcHJvY2VzcyB0aGUgam9iIGluIHRoZSBmb3JlZ3JvdW5kIHdpdGggYSBwcm9ncmVzcyBiYXIgYW5kIGZlZWRiYWNrLjwvbGk+CiAgPGxpPk1vcmUgdGFzayB0eXBlczwvbGk+CiAgPGxpPkJldHRlciByZXBvcnRpbmcgLSBwZXJoYXBzIHNvbWUgZW1haWwgbm90aWZpY2F0aW9uIG9uIGZhaWxlZCBqb2JzLCBldGMuPC9saT4KICA8bGk+SW1wcm92ZWQgYWRtaW4gaW50ZXJmYWNlIC0gVGhlIGFiaWxpdHkgdG8gcmVzdW1lIGEgZmFpbGVkIGpvYiwgc3VzcGVuZCBqb2JzIGZvciBsYXRlci4uLjwvbGk+CiAgPGxpPgo8L3VsPgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQgb3IgYnV5IGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHZpc2l0IGNhbGd1eVwncwptb2R1bGUgaG9tZXBhZ2UgYXQgPGEgaHJlZj0iaHR0cDovL2NhbGd1eTEwMDAuY29tIj5jYWxndXkxMDAwLmNvbTwvYT4uPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPgo8bGk+VGhlIGF1dGhvciwgY2FsZ3V5MTAwMCwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LjwvbGk+ICAKPC91bD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAxMSwgUm9iZXJ0IENhbXBiZWwgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPiZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+CjxwPkhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAphcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwpNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQpGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQpPciByZWFkIGl0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+b25saW5lPC9hPjwvcD4KPGgzPkRlcGVuZGVuY2llczwvaDM+PHVsPjxsaT5DR0V4dGVuc2lvbnMgPSZndDsgMS40NC4yPC9saT48L3VsPg==]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtjYWxndXkxMDAwQGdtYWlsLmNvbSZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAxLjMuNDxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjx1bD4KICA8bGk+VmVyc2lvbiAxLjAgLS0gQXByaWwgMjAxMSAtLSBJbml0aWFsIFJlbGVhc2U8L2xpPgogIDxsaT5WZXJzaW9uIDEuMSAtLSBNYXkgMjAxMQogICAgPHVsPgogICAgICAgPGxpPkFkZGVkIGEgbmV3IHByZWZlcmVuY2UgZm9yIG1heGltdW0gaXRlcmF0aW9ucy48L2xpPgogICAgICAgPGxpPlJlbW92ZWQgcG9zc2liaWxpdHkgb2YgcmVkaXJlY3Rpb24gbG9vcCBlcnJvcnMgd2l0aCBhdXRvbWF0ZWQgdGFza3MuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAxLjIKICAgIDx1bD4KICAgIDxsaT5TaWduaWZpY2FudCBlbmhhbmNlbWVudHMgdG8gam9iIHByb2VjZXNzaW5nLjwvbGk+CiAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBwYXVzZSBhbmQgcmVzdW1lIGpvYnMuPC9saT4KICAgIDxsaT5BZGRzIGV2ZW50cyBhbmQgc2lnbmlmaWNhbnQgYXVkaXRpbmcuPC9saT4KICAgIDxsaT5BZGRzIHByaW1pdGl2ZSBtZXRob2QgZm9yIGhhbmRsaW5nIHN0dWNrIGpvYnMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAxLjMKICAgIDx1bD4KICAgIDxsaT5BZGRzIGEgSm9iRXJyb3IgZXZlbnQuPC9saT4KICAgIDxsaT5VSSBJbXByb3ZlbWVudHMuPC9saT4KICAgIDxsaT5jb2RlIGNsZWFudXAsIGFuZCBiZXR0ZXIgZXJyb3IgaGFuZGxpbmcuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAxLjMuNAogICAgPHVsPgogICAgICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgICAgIDxsaT5Ob3cgUmVxdXByZSBQSFAgNS40LjMrPC9saT4KICAgIDwvdWw+CiAgPC9saT4KPC91bD4KPGJyIC8+]]></about>
	<description><![CDATA[A module for managing jobs that take considerable amounts of time]]></description>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.44.2</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.admin_deletefinished.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHSm9iTWdyIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBtYW5hZ2Ugam9icyB0aGF0IHRha2UgY29uc2lkZXJhYmxlCiMgIGFtb3VudHMgb2YgdGltZSB0byBwcm9jZXNzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTWFuYWdlIEpvYnMnKSApIGV4aXQ7CgokcXVlcnkgPSAnU0VMRUNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ2pvYm1nciBXSEVSRSBzdGF0dXMgPSA/JzsKJGRiciA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5LGFycmF5KGNnam9ibWdyX2pvYjo6U1RBVFVTX0ZJTklTSEVEKSk7CmlmKCBpc19hcnJheSgkZGJyKSAmJiBjb3VudCgkZGJyKSApIHsKICBmb3JlYWNoKCAkZGJyIGFzICRqb2JpZCApIHsKICAgICRqb2IgPSBjZ2pvYm1ncl9qb2I6OmxvYWRfYnlfaWQoJGpvYmlkKTsKICAgICRqb2ItPmRlbGV0ZSgpOwogIH0KfQoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2pvYnMnKTsKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_deletejob.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHSm9iTWdyIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBtYW5hZ2Ugam9icyB0aGF0IHRha2UgY29uc2lkZXJhYmxlCiMgIGFtb3VudHMgb2YgdGltZSB0byBwcm9jZXNzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTWFuYWdlIEpvYnMnKSApIGV4aXQ7CmlmKCAhaXNzZXQoJHBhcmFtc1snam9iaWQnXSkgKSBleGl0OwoKJGpvYmlkID0gKGludCkkcGFyYW1zWydqb2JpZCddOwppZiggJGpvYmlkIDw9IDAgKSBleGl0OwoKJGpvYiA9IGNnam9ibWdyX2pvYjo6bG9hZF9ieV9pZCgkam9iaWQpOwokam9iLT5kZWxldGUoKTsKCgokdGhpcy0+U2V0Q3VycmVudFRhYignam9icycpOwokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_pausejob.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHSm9iTWdyIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBtYW5hZ2Ugam9icyB0aGF0IHRha2UgY29uc2lkZXJhYmxlCiMgIGFtb3VudHMgb2YgdGltZSB0byBwcm9jZXNzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTWFuYWdlIEpvYnMnKSApIGV4aXQ7CgokdGhpcy0+U2V0Q3VycmVudFRhYignam9icycpOwppZiggIWlzc2V0KCRwYXJhbXNbJ2pvYmlkJ10pICkgewogICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtcycpKTsKICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwp9Cgp0cnkgewogICRwYXVzZSA9IDE7CiAgaWYoIGlzc2V0KCRwYXJhbXNbJ3BhdXNlJ10pICkgJHBhdXNlID0gKGludCkkcGFyYW1zWydwYXVzZSddOwogICRqb2JpZCA9IChpbnQpJHBhcmFtc1snam9iaWQnXTsKICAKICAvLyBsb2FkIHRoZSBqb2IKICAkam9iID0gY2dqb2JtZ3Jfam9iOjpsb2FkX2J5X2lkKCRqb2JpZCk7CgogIC8vIGNoZWNrIHRoZSBzdGF0dXMKICBpZiggJHBhdXNlICkgewogICAgaWYoICFpbl9hcnJheSgkam9iLT5nZXRfc3RhdHVzKCksYXJyYXkoY2dqb2JtZ3Jfam9iOjpTVEFUVVNfSU5QUk9HUkVTUyxjZ2pvYm1ncl9qb2I6OlNUQVRVU19DT01QTEVUSU5HKSkgJiYKCSRqb2ItPmdldF9yZWN1cl9pbnRlcnZhbCgpID09IDAgKSB7CiAgICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfcGF1c2VfYmFkc3RhdHVzJykpOwogICAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogICAgfQogICAgJGpvYi0+c2V0X3BlcnNpc3RlbnRfdmFsdWUoJ19fT1JJR19TVEFUVVNfXycsJGpvYi0+Z2V0X3N0YXR1cygpKTsKICAgICRqb2ItPnNldF9zdGF0dXMoY2dqb2JtZ3Jfam9iOjpTVEFUVVNfUEFVU0VEKTsKCiAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdQYXVzZWQgSm9iOiAnLiRqb2ItPm5hbWUpOwogICAgJHRoaXMtPlNlbmRFdmVudCgnSm9iUGF1c2VkJyxhcnJheSgnam9iJz0+JGpvYikpOwogIH0KICBlbHNlIHsKICAgIGlmKCAkam9iLT5nZXRfc3RhdHVzKCkgIT0gY2dqb2JtZ3Jfam9iOjpTVEFUVVNfUEFVU0VEICkgewogICAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX3VucGF1c2VfYmFkc3RhdHVzJykpOwogICAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogICAgfQogICAgJG9yaWdzdGF0dXMgPSAkam9iLT5nZXRfcGVyc2lzdGVudF92YWx1ZSgnX19PUklHX1NUQVRVU19fJywnbm90c2V0Jyk7CiAgICBpZiggJG9yaWdzdGF0dXMgPT0gJ25vdHNldCcgKSB7CiAgICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfdW5wYXVzZV9iYWRzdGF0dXMnKSk7CiAgICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgICB9CiAgICAkam9iLT5zZXRfc3RhdHVzKCRvcmlnc3RhdHVzKTsKICAgICRqb2ItPnVubG9jaygpOwoKICAgIGF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ1Jlc3VtZWQgSm9iOiAnLiRqb2ItPm5hbWUpOwogICAgJHRoaXMtPlNlbmRFdmVudCgnSm9iUmVzdW1lZCcsYXJyYXkoJ2pvYic9PiRqb2IpKTsKICB9CgogIC8vIHNhdmUgaXQKICAkam9iLT5zYXZlKCk7Cn0KY2F0Y2goIEV4Y2VwdGlvbiAkZSApIHsKICAkdGhpcy0+U2V0RXJyb3IoJGUtPmdldE1lc3NhZ2UoKSk7Cn0KJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_savesettings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHSm9iTWdyIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBtYW5hZ2Ugam9icyB0aGF0IHRha2UgY29uc2lkZXJhYmxlCiMgIGFtb3VudHMgb2YgdGltZSB0byBwcm9jZXNzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIGV4aXQ7CgokdGhpcy0+U2V0Q3VycmVudFRhYignc2V0dGluZ3MnKTsKCiR0aW1lb3V0ID0gKGludCkkcGFyYW1zWyd0aW1lb3V0J107CmlmKCAkdGltZW91dCA8PSAwICkKICAkdGltZW91dCA9ICcnOwplbHNlIGlmKCAkdGltZW91dCA8IDEwICkKICAkdGltZW91dCA9IDEwOwokbml0ZXJzID0gKGludCkkcGFyYW1zWydtYXhfYXV0b3Rhc2tfaXRlcmF0aW9ucyddOwokbml0ZXJzID0gbWluKDIwLG1heCgxLCRuaXRlcnMpKTsKCiRuID0gKGludCkkcGFyYW1zWydjcm9uam9iX2ludGVydmFsJ107CiRuID0gbWluKDk5OTksbWF4KDAsJG4pKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2Nyb25qb2JfaW50ZXJ2YWwnLCRuKTsKJG4gPSAoaW50KSRwYXJhbXNbJ2VzY2FsYXRpb25faW50ZXJ2YWxsaW1pdCddOwokbiA9IG1pbigxMDAsbWF4KDAsJG4pKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2VzY2FsYXRpb25faW50ZXJ2YWxsaW1pdCcsJG4pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGZsdF9wYWdlJywkcGFyYW1zWydkZmx0cGFnZSddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Rhc2tfdGltZW91dCcsKGludCkkdGltZW91dCk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtYXhfYXV0b3Rhc2tfaXRlcmF0aW9ucycsKGludCkkbml0ZXJzKTsKCiRzbGFjayA9IChmbG9hdCkkcGFyYW1zWydpdGVyYXRpdmVfc2xhY2snXTsKJHNsYWNrID0gbWluKG1heCgwLjI1LCRzbGFjayksNSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpdGVyYXRpdmVfc2xhY2snLCRzbGFjayk7CgokdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX3ByZWZzdXBkYXRlZCcpKTsKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_set_notifications.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHSm9iTWdyIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBtYW5hZ2Ugam9icyB0aGF0IHRha2UgY29uc2lkZXJhYmxlCiMgIGFtb3VudHMgb2YgdGltZSB0byBwcm9jZXNzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIGV4aXQ7CgokdGhpcy0+U2V0Q3VycmVudFRhYignbm90aWZpY2F0aW9ucycpOwokdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX3ByZWZzdXBkYXRlZCcpKTsKCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdub3RpZmljYXRpb25fZ3JvdXBzJyxzZXJpYWxpemUoJHBhcmFtc1snbm90aWZpY2F0aW9uX2dyb3VwcyddKSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdub3RpZmljYXRpb25fc3RhdHVzJyxzZXJpYWxpemUoJHBhcmFtc1snbm90aWZpY2F0aW9uX3N0YXR1cyddKSk7CgokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHSm9iTWdyIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBtYW5hZ2Ugam9icyB0aGF0IHRha2UgY29uc2lkZXJhYmxlCiMgIGFtb3VudHMgb2YgdGltZSB0byBwcm9jZXNzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgplY2hvICR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKTsKaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBKb2JzJykgKQogIHsKICAgIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignam9icycsJHRoaXMtPkxhbmcoJ2pvYnMnKSk7CiAgfQppZiggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApCiAgewogICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdzZXR0aW5ncycsJHRoaXMtPkxhbmcoJ3NldHRpbmdzJykpOwogICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdub3RpZmljYXRpb25zJywkdGhpcy0+TGFuZygnbm90aWZpY2F0aW9ucycpKTsKICB9CmVjaG8gJHRoaXMtPkVuZFRhYkhlYWRlcnMoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpOwppZiggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTWFuYWdlIEpvYnMnKSApCiAgewogICAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2pvYnMnLCRwYXJhbXMpOwogICAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX2pvYnN0YWIucGhwJyk7CiAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKICB9CmlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkKICB7CiAgICBlY2hvICR0aGlzLT5TdGFydFRhYignc2V0dGluZ3MnLCRwYXJhbXMpOwogICAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX3NldHRpbmdzdGFiLnBocCcpOwogICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CgogICAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ25vdGlmaWNhdGlvbnMnLCRwYXJhbXMpOwogICAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX25vdGlmaWNhdGlvbnNfdGFiLnBocCcpOwogICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CiAgfQplY2hvICR0aGlzLT5FbmRUYWJDb250ZW50KCk7CiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.process.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHSm9iTWdyIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIG1hbmFnZSBqb2JzIHRoYXQgdGFrZSBjb25zaWRlcmFibGUKIyAgYW1vdW50cyBvZiB0aW1lIHRvIHByb2Nlc3MuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCi8vCi8vIHNldHVwCi8vCiRoYW5kbGVycyA9IG9iX2xpc3RfaGFuZGxlcnMoKTsKZm9yICgkY250ID0gMDsgJGNudCA8IHNpemVvZigkaGFuZGxlcnMpOyAkY250KyspIHsgb2JfZW5kX2NsZWFuKCk7IH0KCiRqb2JfdGltZW91dCA9IChpbnQpJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Rhc2tfdGltZW91dCcpOwokam9iX3RpbWVvdXQgPSBtYXgoMzAsbWluKDk5OTksJGpvYl90aW1lb3V0KSk7CnNldF90aW1lX2xpbWl0KCRqb2JfdGltZW91dCk7CgokaXRlcmF0aXZlX3NsYWNrID0gKGZsb2F0KSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpdGVyYXRpdmVfc2xhY2snLDEuNSk7CiRpdGVyYXRpdmVfc2xhY2sgPSBtYXgoMC4yNSxtaW4oNS4wLCRpdGVyYXRpdmVfc2xhY2spKTsKCiRjcm9uam9iX2ludGVydmFsID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Nyb25qb2JfaW50ZXJ2YWwnKTsKJGNyb25qb2JfaW50ZXJ2YWwgPSBtYXgoMSxtaW4oOTk5OSwkY3JvbmpvYl9pbnRlcnZhbCkpOwoKJGVzY2FsYXRpb25faW50ZXJ2YWxsaW1pdCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdlc2NhbGF0aW9uX2ludGVydmFsbGltaXQnLDEwKTsKJGVzY2FsYXRpb25faW50ZXJ2YWxsaW1pdCA9IG1pbigxMDAsbWF4KDEsJGVzY2FsYXRpb25faW50ZXJ2YWxsaW1pdCkpOwoKdHJ5IHsKICBpZiggIWlzc2V0KCRwYXJhbXNbJ2pvYmlkJ10pICkgewoKICAgIC8vIHJlc2V0IGFueSByZWN1cnJpbmcgam9icyB0aGF0IGFyZSBmaW5pc2hlZC4KICAgICR0aW1lID0gJGRiLT5EYlRpbWVTdGFtcCh0aW1lKCktMzApOwogICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2Nnam9ibWdyIFNFVCBzdGF0dXMgPSA/CiAgICAgICAgICAgICAgV0hFUkUgc3RhdHVzID0gPyBBTkQgQ09BTEVTQ0UocmVjdXJfaW50ZXJ2YWwsMCkgPiAwIEFORCBDT0FMRVNDRShsb2NrZWQsMCkgPSAwCiAgICAgICAgICAgICAgQU5EIG1vZGlmaWVkIDwgJHRpbWUiOwogICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoY2dqb2JtZ3Jfam9iOjpTVEFUVVNfVU5TVEFSVEVELGNnam9ibWdyX2pvYjo6U1RBVFVTX0ZJTklTSEVEKSk7CgogICAgaWYoICRjcm9uam9iX2ludGVydmFsID4gMCApIHsKICAgICAgJGVzY2FsYXRlX2Zyb20gPSB0aW1lKCkgLSAkY3JvbmpvYl9pbnRlcnZhbCAqIDYwICogJGVzY2FsYXRpb25faW50ZXJ2YWxsaW1pdDsKICAgICAgJGVzY2FsYXRlX2Zyb20gPSAkZGItPkRiVGltZVN0YW1wKCRlc2NhbGF0ZV9mcm9tKTsKCiAgICAgIC8vIEhlcmUgd2UgdW5sb2NrIGFueSBqb2JzIHRoYXQgaGF2ZSBiZWVuIGxvY2tlZCBmb3IgYSBsb25nIHRpbWUuCiAgICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jZ2pvYm1nciBTRVQgbG9ja2VkID0gMAogICAgICAgICAgICAgICAgV0hFUkUgQ09BTEVTQ0UobG9ja2VkLDApID0gMSBBTkQgKHN0YXR1cyA9ID8gT1Igc3RhdHVzID0gPykKICAgICAgICAgICAgICAgIEFORCBtb2RpZmllZCA8ICRlc2NhbGF0ZV9mcm9tIjsKICAgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheShjZ2pvYm1ncl9qb2I6OlNUQVRVU19JTlBST0dSRVNTLAoJCQkJY2dqb2JtZ3Jfam9iOjpTVEFUVVNfQ09NUExFVElORykpOwoKICAgICAgLy8gaGVyZSB3ZSBhZGp1c3QgdGhlIHByaW9yaXR5IG9mIHRhc2tzIGJhc2VkIG9uIHNvbWUgY3JpdGVyaWEgc28gdGhhdAogICAgICAvLyBsb3dlciBwcmlvcml0eSBqb2JzIGFyZSBub3QgYWx3YXlzIGRyb3duZWQgb3V0IGJ5IGhpZ2hlciBwcmlvcml0eSBqb2JzLgogICAgICAkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY2dqb2JtZ3IgU0VUIHByaW9yaXR5PXByaW9yaXR5KzIKICAgICAgICAgICAgICAgIFdIRVJFIHByaW9yaXR5IDw9ID8gQU5EIHByaW9yaXR5ID4gPyBBTkQgQ09BTEVTQ0UobG9ja2VkLDApID0gMAogICAgICAgICAgICAgICAgQU5EIHN0YXR1cyA9ID8gQU5EIG1vZGlmaWVkIDwgJGVzY2FsYXRlX2Zyb20iOwogICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KGNnam9ibWdyX2pvYjo6UFJJT1JJVFlfTk9STUFMLGNnam9ibWdyX2pvYjo6UFJJT1JJVFlfTE9XLAoJCQkJY2dqb2JtZ3Jfam9iOjpTVEFUVVNfVU5TVEFSVEVEKSk7CgogICAgICAkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY2dqb2JtZ3IgU0VUIHByaW9yaXR5PXByaW9yaXR5KzEKICAgICAgICAgICAgICAgIFdIRVJFIHByaW9yaXR5IDw9ID8gQU5EIENPQUxFU0NFKGxvY2tlZCwwKSA9IDAgQU5EIHN0YXR1cyA9ID8KICAgICAgICAgICAgICAgIEFORCBtb2RpZmllZCA8ICRlc2NhbGF0ZV9mcm9tJzsKICAgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheShjZ2pvYm1ncl9qb2I6OlBSSU9SSVRZX0xPVywJY2dqb2JtZ3Jfam9iOjpTVEFUVVNfVU5TVEFSVEVEKSk7CiAgICB9CiAgfQoKICAvLyBmaW5kIGEgam9iIHdlIGNhbiBzdGFydAogICRrZXlzID0gYXJyYXkoY2dqb2JtZ3Jfam9iOjpTVEFUVVNfUEFVU0VELGNnam9ibWdyX2pvYjo6U1RBVFVTX0ZJTklTSEVELAogICAgICAgICAgICAgICAgY2dqb2JtZ3Jfam9iOjpTVEFUVVNfRVJST1IsY2dqb2JtZ3Jfam9iOjpTVEFUVVNfQUJPUlRFRCxjZ2pvYm1ncl9qb2I6OlNUQVRVU19FUlJPUik7CiAgJHRtcCA9ICcnOwogIGlmKCAhaXNzZXQoJHBhcmFtc1snam9iaWQnXSkgKSB7CiAgICAvLyB0aGlzIGlzIG91ciB0YXNrIHNlbGVjdGlvbiBtZWNoYW5pc20uLi4gdGhpcyBtYXkgbmVlZCB0byBiZSBvcHRpbWl6ZWQKICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY2dqb2JtZ3IgV0hFUkUgQ09BTEVTQ0UobG9ja2VkLDApID0gMAogICAgICAgICAgICAgIEFORCBDT0FMRVNDRShzdGFydF9hdCwwKSA8PSBVTklYX1RJTUVTVEFNUCgpCiAgICAgICAgICAgICAgQU5EIHN0YXR1cyBOT1QgSU4gKCcuY2dlX2FycmF5OjppbXBsb2RlX3F1b3RlZCgka2V5cykuJykKICAgICAgICAgICAgICBPUkRFUiBCWSBwcmlvcml0eSBERVNDLCBtb2RpZmllZCBBU0MnOwogICAgJHRtcCA9ICRkYi0+R2V0Um93KCRxdWVyeSk7CiAgfQogIGVsc2UgewogICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ2pvYm1nciBXSEVSRSBDT0FMRVNDRShsb2NrZWQsMCkgPSAxCiAgICAgICAgICAgICAgQU5EIENPQUxFU0NFKHN0YXJ0X2F0LDApIDw9IFVOSVhfVElNRVNUQU1QKCkKICAgICAgICAgICAgICBBTkQgaWQgPSA/IEFORCBzdGF0dXMgTk9UIElOICgnLmNnZV9hcnJheTo6aW1wbG9kZV9xdW90ZWQoJGtleXMpLicpJzsKICAgICR0bXAgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoKGludCkkcGFyYW1zWydqb2JpZCddKSk7CiAgfQoKICAvLyBkaWQgd2UgZ2V0IGEgam9iPwogIGlmKCAhJHRtcCApIHsKICAgIC8vIGF1ZGl0IGEgcGluZyBzbyB0aGF0IHBlb3BsZSBrbm93IHRoZSB0aGluZyBpc24ndCBkZWFkLgogICAgJHRpbWUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbGFzdF9waW5nX3RpbWUnLDApOwogICAgaWYoICR0aW1lIDwgdGltZSgpIC0gNzIwMCApIHsKICAgICAgYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwnUElORzogTm8gam9icyBmb3VuZCAocGluZ3MgYXQgbGVhc3QgZXZlcnkgMiBob3VycyknKTsKICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2xhc3RfcGluZ190aW1lJyx0aW1lKCkpOwogICAgfQoKICAgIHJldHVybjsKICB9CgogIC8vIHdlIGhhdmUgYSBqb2IgdG8gcGxheSB3aXRoLgogIC8vIGdldCB0aGUgam9iCiAgJGpvYiA9IGNnam9ibWdyX2pvYjo6bG9hZF9mcm9tX2RhdGEoJHRtcCk7CiAgJGpvYi0+bG9jaygpOwoKICBhdWRpdCgkam9iLT5pZCwkdGhpcy0+R2V0TmFtZSgpLCdQcm9jZXNzaW5nIEpvYiAnLiRqb2ItPm5hbWUpOwoKICBpZiggIWlzc2V0KCRwYXJhbXNbJ3J1bmNvdW50J10pICkgJGpvYi0+c2V0X3BlcnNpc3RlbnRfdmFsdWUoJ19fTlVNX0FVVE9UQVNLX0lURVJBVElPTlNfXycsMCk7CgogIC8vIGdldCBvdXIgaGFuZGxlci4KICAkam9ibWdyID0gbmV3IGNnam9ibWdyX2F1dG9oYW5kbGVyKCRqb2IpOwoKICAvLyBzZXQgc29tZSBzdHVmZiBpbnRvIHRoZSBqb2IgbWFuYWdlci4uLiBtYXliZSB0aW1lIGxpbWl0cywgbm90aWZpY2F0aW9uIHJ1bGVzLCBldGMuCiAgJGpvYm1nci0+c2V0X3ZhbHVlKCdpdGVyYXRpdmVfc2xhY2snLCRpdGVyYXRpdmVfc2xhY2spOwogICRqb2JtZ3ItPnNldF92YWx1ZSgnbWF4X3RpbWUnLCRqb2JfdGltZW91dCk7CiAgJGpvYm1nci0+c2V0X3ZhbHVlKCdtYXhfYXV0b3Rhc2tfaXRlcmF0aW9ucycsJHRoaXMtPkdldFByZWZlcmVuY2UoJ21heF9hdXRvdGFza19pdGVyYXRpb25zJywxMCkpOwoKICAvLyB0aGVuIGRvIHRoZSB3b3JrLgogICRzdGF0dXMgPSAkam9ibWdyLT5wcm9jZXNzKCk7CgogIC8vIHRoaXMgd2lsbCBkbyB0aGUgY2hlY2sgdG8gc2VlIGlmIHdlIGNhbiBpdGVyYXRlIHZpYSBhIHJlZGlyZWN0LgogIC8vIHRvIHByZXZlbnQgdGhlIGJyb3dzZXIgY29tcGxhaW5pbmcgYWJvdXQgYSByZWRpcmVjdCBsb29wLgogIC8vIHRoaXMgbnVtYmVyIGNhbiBiZSBsYXJnZXIsIGlmIHRoZSBtYXhpbXVtIHRpbWVvdXQgaXMgbGFyZ2VyLgogICRjYW5faXRlcmF0ZSA9ICRqb2ItPmdldF9pdGVyYXRlX2ZsYWcoKTsKICAkaXRlciA9IDA7CiAgaWYoICRjYW5faXRlcmF0ZSApIHsKICAgICAgJG1heF9hdXRvdGFza19pdGVyYXRpb25zID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ21heF9hdXRvdGFza19pdGVyYXRpb25zJywxMCk7CiAgICAgICRtYXhfYXV0b3Rhc2tfaXRlcmF0aW9ucyA9IG1pbigyMCxtYXgoMCwkbWF4X2F1dG90YXNrX2l0ZXJhdGlvbnMpKTsKICAgICAgaWYoICRtYXhfYXV0b3Rhc2tfaXRlcmF0aW9ucyA+IDAgKSB7CiAgICAgICAgICAkaXRlciA9ICRqb2ItPmdldF9wZXJzaXN0ZW50X3ZhbHVlKCdfX05VTV9BVVRPVEFTS19JVEVSQVRJT05TX18nLDApOwogICAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ3J1bmNvdW50J10pICkgewogICAgICAgICAgICAgIC8vIHdlIGFyZSBoZXJlIHZpYSBhIGl0ZXJhdGlvbiByZWRpcmVjdC4KICAgICAgICAgICAgICAkaXRlcisrOwogICAgICAgICAgICAgIGlmKCAkaXRlciA+PSAkbWF4X2F1dG90YXNrX2l0ZXJhdGlvbnMgKSB7CiAgICAgICAgICAgICAgICAgIGF1ZGl0KCRqb2ItPmdldF9pZCgpLCR0aGlzLT5HZXROYW1lKCksJ3JlYWNoZWQgJy4kaXRlci4nIGl0ZXJhdGlvbnMuLi4gbXVzdCB3YWl0IGZvciBjcm9uIGpvYiB0byByZXN0YXJ0IHRoaXMgam9iJyk7CiAgICAgICAgICAgICAgICAgICRjYW5faXRlcmF0ZSA9IEZBTFNFOwogICAgICAgICAgICAgICAgICAkaXRlciA9IDA7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICRqb2ItPnNldF9wZXJzaXN0ZW50X3ZhbHVlKCdfX05VTV9BVVRPVEFTS19JVEVSQVRJT05TX18nLCRpdGVyKTsKICAgICAgICAgIH0KICAgICAgfQogIH0KCiAgLy8gc2F2ZSB0aGUgam9iCiAgJGpvYi0+c2F2ZSgpOwoKICAvLyBhcmUgd2UgZG9uZSwgb3IgZG8gd2UgaGF2ZSB0byByZWRpcmVjdD8KICBpZiggaW5fYXJyYXkoJGpvYi0+Z2V0X3N0YXR1cygpLCRrZXlzKSB8fCAhJGNhbl9pdGVyYXRlICkgewogICAgLy8gam9iIGlzIGZpbmlzaGVkIChvciBzdG9wcGVkIGZvciBzb21lIHJlYXNvbikKICAgICRqb2ItPnVubG9jaygpOwogIH0KICBlbHNlIHsKICAgIC8vIGlmIHRoZSBqb2IgaXMgbm90IGRvbmUuLi4gd2UgaGF2ZSB0byByZWRpcmVjdCBzb21ld2hlcmUuCiAgICAkY29udGVudG9wcyA9IGNtc21zKCktPkdldENvbnRlbnRPcGVyYXRpb25zKCk7CiAgICAkcmV0dXJuaWQgPSAkY29udGVudG9wcy0+R2V0RGVmYXVsdENvbnRlbnQoKTsgLy8gY2hhbmdlIG1lLCB1c2UgcGFnZSBpbiBwcmVmZXJlbmNlcy4KCiAgICAvLyB0aGUgcmVwZWF0IHByb2Nlc3MuLiBpcyBqdXN0IHNvIHdlIGRvbnQgZ2V0IHRvbyBtYW55IHJlZGlyZWN0cy4KICAgICR1cmwgPSAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ3Byb2Nlc3MnLCRyZXR1cm5pZCxhcnJheSgnc2hvd3RlbXBsYXRlJz0+J2ZhbHNlJywncnVuY291bnQnPT4kaXRlciwnam9iaWQnPT4kam9iLT5nZXRfaWQoKSwndGltZSc9PnRpbWUoKSkpOwogICAgJHVybCA9IHN0cl9yZXBsYWNlKCcmYW1wOycsJyYnLCR1cmwpOwogICAgcmVkaXJlY3QoJHVybCk7CiAgfQp9CmNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CiAgYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwnRXhjZXB0aW9uOiAnLiRlLT5nZXRNZXNzYWdlKCkpOwp9CgpleGl0OwojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/CGJobMgr.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHSm9iTWdyIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIG1hbmFnZSBqb2JzIHRoYXQgdGFrZSBjb25zaWRlcmFibGUKIyAgYW1vdW50cyBvZiB0aW1lIHRvIHByb2Nlc3MuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKJGNnZXh0ZW5zaW9ucyA9IGNtc19qb2luX3BhdGgoJGdDbXMtPmNvbmZpZ1sncm9vdF9wYXRoJ10sJ21vZHVsZXMnLCdDR0V4dGVuc2lvbnMnLCdDR0V4dGVuc2lvbnMubW9kdWxlLnBocCcpOwppZiggIWlzX3JlYWRhYmxlKCAkY2dleHRlbnNpb25zICkgKSB7CiAgZWNobyAnPGgxPjxmb250IGNvbG9yPSJyZWQiPkVSUk9SOiBUaGUgQ0dFeHRlbnNpb25zIG1vZHVsZSBjb3VsZCBub3QgYmUgZm91bmQuPC9mb250PjwvaDE+JzsKICByZXR1cm47Cn0KcmVxdWlyZV9vbmNlKCRjZ2V4dGVuc2lvbnMpOwoKY2xhc3MgQ0dKb2JNZ3IgZXh0ZW5kcyBDR0V4dGVuc2lvbnMKewogIHByaXZhdGUgJF9zdGF0czsKCiAgcHVibGljIGZ1bmN0aW9uIEluaXRpYWxpemVGcm9udGVuZCgpCiAgewogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3RpbWUnLENMRUFOX0lOVCk7IC8vIHVzZWQgdG8gcmFuZG9taXplIFVSTFMuCiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncnVuY291bnQnLENMRUFOX0lOVCk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnam9iaWQnLENMRUFOX0lOVCk7CiAgICAkdGhpcy0+UmVzdHJpY3RVbmtub3duUGFyYW1zKCk7CiAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnLycuJHRoaXMtPkdldE5hbWUoKS4nXC9wcm9jZXNzJC8nLCBhcnJheSgnYWN0aW9uJz0+J3Byb2Nlc3MnLCdzaG93dGVtcGxhdGUnPT4nZmFsc2UnKSk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gSW5pdGlhbGl6ZUFkbWluKCkgeyAkdGhpcy0+QWRkSW1hZ2VEaXIoJ2ljb25zJyk7IH0KICBwdWJsaWMgZnVuY3Rpb24gR2V0TmFtZSgpIHsgcmV0dXJuIGdldF9jbGFzcygkdGhpcyk7IH0KICBwdWJsaWMgZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpOyB9CiAgcHVibGljIGZ1bmN0aW9uIEdldFZlcnNpb24oKSB7IHJldHVybiAnMS4zLjQnOyB9CiAgcHVibGljIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpIHsgcmV0dXJuIGFycmF5KCdDR0V4dGVuc2lvbnMnPT4nMS40NC4yJyk7IH0KICBwdWJsaWMgZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKSB7IHJldHVybiAnMS4xMS4xMCc7IH0KICBwdWJsaWMgZnVuY3Rpb24gR2V0QWRtaW5TZWN0aW9uKCkgeyByZXR1cm4gJ3NpdGVhZG1pbic7IH0KICBwdWJsaWMgZnVuY3Rpb24gTGF6eUxvYWRBZG1pbigpIHsgcmV0dXJuIFRSVUU7IH0KICBwdWJsaWMgZnVuY3Rpb24gR2V0SGVscCgpIHsgcmV0dXJuIEBmaWxlX2dldF9jb250ZW50cyhfX0RJUl9fLicvaGVscC5pbmMnKTsgfQogIHB1YmxpYyBmdW5jdGlvbiBHZXRBdXRob3IoKSB7IHJldHVybiAnY2FsZ3V5MTAwMCc7IH0KICBwdWJsaWMgZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKSB7IHJldHVybiAnY2FsZ3V5MTAwMEBnbWFpbC5jb20nOyB9CiAgcHVibGljIGZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkgeyByZXR1cm4gdHJ1ZTsgfQogIHB1YmxpYyBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ21vZGRlc2NyaXB0aW9uJyk7IH0KICBwdWJsaWMgZnVuY3Rpb24gSGFzQWRtaW4oKSB7IHJldHVybiB0cnVlOyB9CiAgcHVibGljIGZ1bmN0aW9uIEdldENoYW5nZUxvZygpIHsgcmV0dXJuIEBmaWxlX2dldF9jb250ZW50cyhfX0RJUl9fLicvY2hhbmdlbG9nLmluYycpOyB9CiAgcHVibGljIGZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbCcpOyB9CiAgcHVibGljIGZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsgfQogIHB1YmxpYyBmdW5jdGlvbiBHZXRFdmVudEhlbHAoICRldmVudG5hbWUgKSB7IHJldHVybiAkdGhpcy0+TGFuZygnaGVscF9ldmVudF8nLiRldmVudG5hbWUpOyB9CiAgcHVibGljIGZ1bmN0aW9uIEFsbG93QXV0b0luc3RhbGwoKSB7IHJldHVybiBGQUxTRTsgfQogIHB1YmxpYyBmdW5jdGlvbiBBbGxvd0F1dG9VcGdyYWRlKCkgeyByZXR1cm4gRkFMU0U7IH0KCiAgcHVibGljIGZ1bmN0aW9uIFZpc2libGVUb0FkbWluVXNlcigpIHsKICAgIHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNYW5hZ2UgSm9icycpIHx8ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJyk7CiAgfQoKfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgogIDxsaT5WZXJzaW9uIDEuMCAtLSBBcHJpbCAyMDExIC0tIEluaXRpYWwgUmVsZWFzZTwvbGk+CiAgPGxpPlZlcnNpb24gMS4xIC0tIE1heSAyMDExCiAgICA8dWw+CiAgICAgICA8bGk+QWRkZWQgYSBuZXcgcHJlZmVyZW5jZSBmb3IgbWF4aW11bSBpdGVyYXRpb25zLjwvbGk+CiAgICAgICA8bGk+UmVtb3ZlZCBwb3NzaWJpbGl0eSBvZiByZWRpcmVjdGlvbiBsb29wIGVycm9ycyB3aXRoIGF1dG9tYXRlZCB0YXNrcy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuMgogICAgPHVsPgogICAgPGxpPlNpZ25pZmljYW50IGVuaGFuY2VtZW50cyB0byBqb2IgcHJvZWNlc3NpbmcuPC9saT4KICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIHBhdXNlIGFuZCByZXN1bWUgam9icy48L2xpPgogICAgPGxpPkFkZHMgZXZlbnRzIGFuZCBzaWduaWZpY2FudCBhdWRpdGluZy48L2xpPgogICAgPGxpPkFkZHMgcHJpbWl0aXZlIG1ldGhvZCBmb3IgaGFuZGxpbmcgc3R1Y2sgam9icy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuMwogICAgPHVsPgogICAgPGxpPkFkZHMgYSBKb2JFcnJvciBldmVudC48L2xpPgogICAgPGxpPlVJIEltcHJvdmVtZW50cy48L2xpPgogICAgPGxpPmNvZGUgY2xlYW51cCwgYW5kIGJldHRlciBlcnJvciBoYW5kbGluZy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuMy40CiAgICA8dWw+CiAgICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgICAgPGxpPk5vdyBSZXF1cHJlIFBIUCA1LjQuMys8L2xpPgogICAgPC91bD4KICA8L2xpPgo8L3VsPgo=]]></data>
	</file>
	<file>
	  <filename>/doc/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/doc/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMywgMjkgSnVuZSAyMDA3CgogQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiA8aHR0cDovL2ZzZi5vcmcvPgogRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCiBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVhbWJsZQoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgYSBmcmVlLCBjb3B5bGVmdCBsaWNlbnNlIGZvcgpzb2Z0d2FyZSBhbmQgb3RoZXIga2luZHMgb2Ygd29ya3MuCgogIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhbmQgb3RoZXIgcHJhY3RpY2FsIHdvcmtzIGFyZSBkZXNpZ25lZAp0byB0YWtlIGF3YXkgeW91ciBmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgdGhlIHdvcmtzLiAgQnkgY29udHJhc3QsCnRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBpbnRlbmRlZCB0byBndWFyYW50ZWUgeW91ciBmcmVlZG9tIHRvCnNoYXJlIGFuZCBjaGFuZ2UgYWxsIHZlcnNpb25zIG9mIGEgcHJvZ3JhbS0tdG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgZnJlZQpzb2Z0d2FyZSBmb3IgYWxsIGl0cyB1c2Vycy4gIFdlLCB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB1c2UgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3N0IG9mIG91ciBzb2Z0d2FyZTsgaXQgYXBwbGllcyBhbHNvIHRvCmFueSBvdGhlciB3b3JrIHJlbGVhc2VkIHRoaXMgd2F5IGJ5IGl0cyBhdXRob3JzLiAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoZW0gaWYgeW91IHdpc2gpLCB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQgaWYgeW91CndhbnQgaXQsIHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQgaW4gbmV3CmZyZWUgcHJvZ3JhbXMsIGFuZCB0aGF0IHlvdSBrbm93IHlvdSBjYW4gZG8gdGhlc2UgdGhpbmdzLgoKICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIHByZXZlbnQgb3RoZXJzIGZyb20gZGVueWluZyB5b3UKdGhlc2UgcmlnaHRzIG9yIGFza2luZyB5b3UgdG8gc3VycmVuZGVyIHRoZSByaWdodHMuICBUaGVyZWZvcmUsIHlvdSBoYXZlCmNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlLCBvciBpZgp5b3UgbW9kaWZ5IGl0OiByZXNwb25zaWJpbGl0aWVzIHRvIHJlc3BlY3QgdGhlIGZyZWVkb20gb2Ygb3RoZXJzLgoKICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyCmdyYXRpcyBvciBmb3IgYSBmZWUsIHlvdSBtdXN0IHBhc3Mgb24gdG8gdGhlIHJlY2lwaWVudHMgdGhlIHNhbWUKZnJlZWRvbXMgdGhhdCB5b3UgcmVjZWl2ZWQuICBZb3UgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGV5LCB0b28sIHJlY2VpdmUKb3IgY2FuIGdldCB0aGUgc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkKa25vdyB0aGVpciByaWdodHMuCgogIERldmVsb3BlcnMgdGhhdCB1c2UgdGhlIEdOVSBHUEwgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIHR3byBzdGVwczoKKDEpIGFzc2VydCBjb3B5cmlnaHQgb24gdGhlIHNvZnR3YXJlLCBhbmQgKDIpIG9mZmVyIHlvdSB0aGlzIExpY2Vuc2UKZ2l2aW5nIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSBpdC4KCiAgRm9yIHRoZSBkZXZlbG9wZXJzJyBhbmQgYXV0aG9ycycgcHJvdGVjdGlvbiwgdGhlIEdQTCBjbGVhcmx5IGV4cGxhaW5zCnRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMgZnJlZSBzb2Z0d2FyZS4gIEZvciBib3RoIHVzZXJzJyBhbmQKYXV0aG9ycycgc2FrZSwgdGhlIEdQTCByZXF1aXJlcyB0aGF0IG1vZGlmaWVkIHZlcnNpb25zIGJlIG1hcmtlZCBhcwpjaGFuZ2VkLCBzbyB0aGF0IHRoZWlyIHByb2JsZW1zIHdpbGwgbm90IGJlIGF0dHJpYnV0ZWQgZXJyb25lb3VzbHkgdG8KYXV0aG9ycyBvZiBwcmV2aW91cyB2ZXJzaW9ucy4KCiAgU29tZSBkZXZpY2VzIGFyZSBkZXNpZ25lZCB0byBkZW55IHVzZXJzIGFjY2VzcyB0byBpbnN0YWxsIG9yIHJ1bgptb2RpZmllZCB2ZXJzaW9ucyBvZiB0aGUgc29mdHdhcmUgaW5zaWRlIHRoZW0sIGFsdGhvdWdoIHRoZSBtYW51ZmFjdHVyZXIKY2FuIGRvIHNvLiAgVGhpcyBpcyBmdW5kYW1lbnRhbGx5IGluY29tcGF0aWJsZSB3aXRoIHRoZSBhaW0gb2YKcHJvdGVjdGluZyB1c2VycycgZnJlZWRvbSB0byBjaGFuZ2UgdGhlIHNvZnR3YXJlLiAgVGhlIHN5c3RlbWF0aWMKcGF0dGVybiBvZiBzdWNoIGFidXNlIG9jY3VycyBpbiB0aGUgYXJlYSBvZiBwcm9kdWN0cyBmb3IgaW5kaXZpZHVhbHMgdG8KdXNlLCB3aGljaCBpcyBwcmVjaXNlbHkgd2hlcmUgaXQgaXMgbW9zdCB1bmFjY2VwdGFibGUuICBUaGVyZWZvcmUsIHdlCmhhdmUgZGVzaWduZWQgdGhpcyB2ZXJzaW9uIG9mIHRoZSBHUEwgdG8gcHJvaGliaXQgdGhlIHByYWN0aWNlIGZvciB0aG9zZQpwcm9kdWN0cy4gIElmIHN1Y2ggcHJvYmxlbXMgYXJpc2Ugc3Vic3RhbnRpYWxseSBpbiBvdGhlciBkb21haW5zLCB3ZQpzdGFuZCByZWFkeSB0byBleHRlbmQgdGhpcyBwcm92aXNpb24gdG8gdGhvc2UgZG9tYWlucyBpbiBmdXR1cmUgdmVyc2lvbnMKb2YgdGhlIEdQTCwgYXMgbmVlZGVkIHRvIHByb3RlY3QgdGhlIGZyZWVkb20gb2YgdXNlcnMuCgogIEZpbmFsbHksIGV2ZXJ5IHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlIHBhdGVudHMuClN0YXRlcyBzaG91bGQgbm90IGFsbG93IHBhdGVudHMgdG8gcmVzdHJpY3QgZGV2ZWxvcG1lbnQgYW5kIHVzZSBvZgpzb2Z0d2FyZSBvbiBnZW5lcmFsLXB1cnBvc2UgY29tcHV0ZXJzLCBidXQgaW4gdGhvc2UgdGhhdCBkbywgd2Ugd2lzaCB0bwphdm9pZCB0aGUgc3BlY2lhbCBkYW5nZXIgdGhhdCBwYXRlbnRzIGFwcGxpZWQgdG8gYSBmcmVlIHByb2dyYW0gY291bGQKbWFrZSBpdCBlZmZlY3RpdmVseSBwcm9wcmlldGFyeS4gIFRvIHByZXZlbnQgdGhpcywgdGhlIEdQTCBhc3N1cmVzIHRoYXQKcGF0ZW50cyBjYW5ub3QgYmUgdXNlZCB0byByZW5kZXIgdGhlIHByb2dyYW0gbm9uLWZyZWUuCgogIFRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kCm1vZGlmaWNhdGlvbiBmb2xsb3cuCgogICAgICAgICAgICAgICAgICAgICAgIFRFUk1TIEFORCBDT05ESVRJT05TCgogIDAuIERlZmluaXRpb25zLgoKICAiVGhpcyBMaWNlbnNlIiByZWZlcnMgdG8gdmVyc2lvbiAzIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KCiAgIkNvcHlyaWdodCIgYWxzbyBtZWFucyBjb3B5cmlnaHQtbGlrZSBsYXdzIHRoYXQgYXBwbHkgdG8gb3RoZXIga2luZHMgb2YKd29ya3MsIHN1Y2ggYXMgc2VtaWNvbmR1Y3RvciBtYXNrcy4KCiAgIlRoZSBQcm9ncmFtIiByZWZlcnMgdG8gYW55IGNvcHlyaWdodGFibGUgd29yayBsaWNlbnNlZCB1bmRlciB0aGlzCkxpY2Vuc2UuICBFYWNoIGxpY2Vuc2VlIGlzIGFkZHJlc3NlZCBhcyAieW91Ii4gICJMaWNlbnNlZXMiIGFuZAoicmVjaXBpZW50cyIgbWF5IGJlIGluZGl2aWR1YWxzIG9yIG9yZ2FuaXphdGlvbnMuCgogIFRvICJtb2RpZnkiIGEgd29yayBtZWFucyB0byBjb3B5IGZyb20gb3IgYWRhcHQgYWxsIG9yIHBhcnQgb2YgdGhlIHdvcmsKaW4gYSBmYXNoaW9uIHJlcXVpcmluZyBjb3B5cmlnaHQgcGVybWlzc2lvbiwgb3RoZXIgdGhhbiB0aGUgbWFraW5nIG9mIGFuCmV4YWN0IGNvcHkuICBUaGUgcmVzdWx0aW5nIHdvcmsgaXMgY2FsbGVkIGEgIm1vZGlmaWVkIHZlcnNpb24iIG9mIHRoZQplYXJsaWVyIHdvcmsgb3IgYSB3b3JrICJiYXNlZCBvbiIgdGhlIGVhcmxpZXIgd29yay4KCiAgQSAiY292ZXJlZCB3b3JrIiBtZWFucyBlaXRoZXIgdGhlIHVubW9kaWZpZWQgUHJvZ3JhbSBvciBhIHdvcmsgYmFzZWQKb24gdGhlIFByb2dyYW0uCgogIFRvICJwcm9wYWdhdGUiIGEgd29yayBtZWFucyB0byBkbyBhbnl0aGluZyB3aXRoIGl0IHRoYXQsIHdpdGhvdXQKcGVybWlzc2lvbiwgd291bGQgbWFrZSB5b3UgZGlyZWN0bHkgb3Igc2Vjb25kYXJpbHkgbGlhYmxlIGZvcgppbmZyaW5nZW1lbnQgdW5kZXIgYXBwbGljYWJsZSBjb3B5cmlnaHQgbGF3LCBleGNlcHQgZXhlY3V0aW5nIGl0IG9uIGEKY29tcHV0ZXIgb3IgbW9kaWZ5aW5nIGEgcHJpdmF0ZSBjb3B5LiAgUHJvcGFnYXRpb24gaW5jbHVkZXMgY29weWluZywKZGlzdHJpYnV0aW9uICh3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uKSwgbWFraW5nIGF2YWlsYWJsZSB0byB0aGUKcHVibGljLCBhbmQgaW4gc29tZSBjb3VudHJpZXMgb3RoZXIgYWN0aXZpdGllcyBhcyB3ZWxsLgoKICBUbyAiY29udmV5IiBhIHdvcmsgbWVhbnMgYW55IGtpbmQgb2YgcHJvcGFnYXRpb24gdGhhdCBlbmFibGVzIG90aGVyCnBhcnRpZXMgdG8gbWFrZSBvciByZWNlaXZlIGNvcGllcy4gIE1lcmUgaW50ZXJhY3Rpb24gd2l0aCBhIHVzZXIgdGhyb3VnaAphIGNvbXB1dGVyIG5ldHdvcmssIHdpdGggbm8gdHJhbnNmZXIgb2YgYSBjb3B5LCBpcyBub3QgY29udmV5aW5nLgoKICBBbiBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZSBkaXNwbGF5cyAiQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcyIKdG8gdGhlIGV4dGVudCB0aGF0IGl0IGluY2x1ZGVzIGEgY29udmVuaWVudCBhbmQgcHJvbWluZW50bHkgdmlzaWJsZQpmZWF0dXJlIHRoYXQgKDEpIGRpc3BsYXlzIGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UsIGFuZCAoMikKdGVsbHMgdGhlIHVzZXIgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhlIHdvcmsgKGV4Y2VwdCB0byB0aGUKZXh0ZW50IHRoYXQgd2FycmFudGllcyBhcmUgcHJvdmlkZWQpLCB0aGF0IGxpY2Vuc2VlcyBtYXkgY29udmV5IHRoZQp3b3JrIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIGhvdyB0byB2aWV3IGEgY29weSBvZiB0aGlzIExpY2Vuc2UuICBJZgp0aGUgaW50ZXJmYWNlIHByZXNlbnRzIGEgbGlzdCBvZiB1c2VyIGNvbW1hbmRzIG9yIG9wdGlvbnMsIHN1Y2ggYXMgYQptZW51LCBhIHByb21pbmVudCBpdGVtIGluIHRoZSBsaXN0IG1lZXRzIHRoaXMgY3JpdGVyaW9uLgoKICAxLiBTb3VyY2UgQ29kZS4KCiAgVGhlICJzb3VyY2UgY29kZSIgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsKZm9yIG1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgIk9iamVjdCBjb2RlIiBtZWFucyBhbnkgbm9uLXNvdXJjZQpmb3JtIG9mIGEgd29yay4KCiAgQSAiU3RhbmRhcmQgSW50ZXJmYWNlIiBtZWFucyBhbiBpbnRlcmZhY2UgdGhhdCBlaXRoZXIgaXMgYW4gb2ZmaWNpYWwKc3RhbmRhcmQgZGVmaW5lZCBieSBhIHJlY29nbml6ZWQgc3RhbmRhcmRzIGJvZHksIG9yLCBpbiB0aGUgY2FzZSBvZgppbnRlcmZhY2VzIHNwZWNpZmllZCBmb3IgYSBwYXJ0aWN1bGFyIHByb2dyYW1taW5nIGxhbmd1YWdlLCBvbmUgdGhhdAppcyB3aWRlbHkgdXNlZCBhbW9uZyBkZXZlbG9wZXJzIHdvcmtpbmcgaW4gdGhhdCBsYW5ndWFnZS4KCiAgVGhlICJTeXN0ZW0gTGlicmFyaWVzIiBvZiBhbiBleGVjdXRhYmxlIHdvcmsgaW5jbHVkZSBhbnl0aGluZywgb3RoZXIKdGhhbiB0aGUgd29yayBhcyBhIHdob2xlLCB0aGF0IChhKSBpcyBpbmNsdWRlZCBpbiB0aGUgbm9ybWFsIGZvcm0gb2YKcGFja2FnaW5nIGEgTWFqb3IgQ29tcG9uZW50LCBidXQgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhhdCBNYWpvcgpDb21wb25lbnQsIGFuZCAoYikgc2VydmVzIG9ubHkgdG8gZW5hYmxlIHVzZSBvZiB0aGUgd29yayB3aXRoIHRoYXQKTWFqb3IgQ29tcG9uZW50LCBvciB0byBpbXBsZW1lbnQgYSBTdGFuZGFyZCBJbnRlcmZhY2UgZm9yIHdoaWNoIGFuCmltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluIHNvdXJjZSBjb2RlIGZvcm0uICBBCiJNYWpvciBDb21wb25lbnQiLCBpbiB0aGlzIGNvbnRleHQsIG1lYW5zIGEgbWFqb3IgZXNzZW50aWFsIGNvbXBvbmVudAooa2VybmVsLCB3aW5kb3cgc3lzdGVtLCBhbmQgc28gb24pIG9mIHRoZSBzcGVjaWZpYyBvcGVyYXRpbmcgc3lzdGVtCihpZiBhbnkpIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHdvcmsgcnVucywgb3IgYSBjb21waWxlciB1c2VkIHRvCnByb2R1Y2UgdGhlIHdvcmssIG9yIGFuIG9iamVjdCBjb2RlIGludGVycHJldGVyIHVzZWQgdG8gcnVuIGl0LgoKICBUaGUgIkNvcnJlc3BvbmRpbmcgU291cmNlIiBmb3IgYSB3b3JrIGluIG9iamVjdCBjb2RlIGZvcm0gbWVhbnMgYWxsCnRoZSBzb3VyY2UgY29kZSBuZWVkZWQgdG8gZ2VuZXJhdGUsIGluc3RhbGwsIGFuZCAoZm9yIGFuIGV4ZWN1dGFibGUKd29yaykgcnVuIHRoZSBvYmplY3QgY29kZSBhbmQgdG8gbW9kaWZ5IHRoZSB3b3JrLCBpbmNsdWRpbmcgc2NyaXB0cyB0bwpjb250cm9sIHRob3NlIGFjdGl2aXRpZXMuICBIb3dldmVyLCBpdCBkb2VzIG5vdCBpbmNsdWRlIHRoZSB3b3JrJ3MKU3lzdGVtIExpYnJhcmllcywgb3IgZ2VuZXJhbC1wdXJwb3NlIHRvb2xzIG9yIGdlbmVyYWxseSBhdmFpbGFibGUgZnJlZQpwcm9ncmFtcyB3aGljaCBhcmUgdXNlZCB1bm1vZGlmaWVkIGluIHBlcmZvcm1pbmcgdGhvc2UgYWN0aXZpdGllcyBidXQKd2hpY2ggYXJlIG5vdCBwYXJ0IG9mIHRoZSB3b3JrLiAgRm9yIGV4YW1wbGUsIENvcnJlc3BvbmRpbmcgU291cmNlCmluY2x1ZGVzIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBzb3VyY2UgZmlsZXMgZm9yCnRoZSB3b3JrLCBhbmQgdGhlIHNvdXJjZSBjb2RlIGZvciBzaGFyZWQgbGlicmFyaWVzIGFuZCBkeW5hbWljYWxseQpsaW5rZWQgc3VicHJvZ3JhbXMgdGhhdCB0aGUgd29yayBpcyBzcGVjaWZpY2FsbHkgZGVzaWduZWQgdG8gcmVxdWlyZSwKc3VjaCBhcyBieSBpbnRpbWF0ZSBkYXRhIGNvbW11bmljYXRpb24gb3IgY29udHJvbCBmbG93IGJldHdlZW4gdGhvc2UKc3VicHJvZ3JhbXMgYW5kIG90aGVyIHBhcnRzIG9mIHRoZSB3b3JrLgoKICBUaGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgbmVlZCBub3QgaW5jbHVkZSBhbnl0aGluZyB0aGF0IHVzZXJzCmNhbiByZWdlbmVyYXRlIGF1dG9tYXRpY2FsbHkgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgQ29ycmVzcG9uZGluZwpTb3VyY2UuCgogIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBmb3IgYSB3b3JrIGluIHNvdXJjZSBjb2RlIGZvcm0gaXMgdGhhdApzYW1lIHdvcmsuCgogIDIuIEJhc2ljIFBlcm1pc3Npb25zLgoKICBBbGwgcmlnaHRzIGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlIGFyZSBncmFudGVkIGZvciB0aGUgdGVybSBvZgpjb3B5cmlnaHQgb24gdGhlIFByb2dyYW0sIGFuZCBhcmUgaXJyZXZvY2FibGUgcHJvdmlkZWQgdGhlIHN0YXRlZApjb25kaXRpb25zIGFyZSBtZXQuICBUaGlzIExpY2Vuc2UgZXhwbGljaXRseSBhZmZpcm1zIHlvdXIgdW5saW1pdGVkCnBlcm1pc3Npb24gdG8gcnVuIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0uICBUaGUgb3V0cHV0IGZyb20gcnVubmluZyBhCmNvdmVyZWQgd29yayBpcyBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZSBvbmx5IGlmIHRoZSBvdXRwdXQsIGdpdmVuIGl0cwpjb250ZW50LCBjb25zdGl0dXRlcyBhIGNvdmVyZWQgd29yay4gIFRoaXMgTGljZW5zZSBhY2tub3dsZWRnZXMgeW91cgpyaWdodHMgb2YgZmFpciB1c2Ugb3Igb3RoZXIgZXF1aXZhbGVudCwgYXMgcHJvdmlkZWQgYnkgY29weXJpZ2h0IGxhdy4KCiAgWW91IG1heSBtYWtlLCBydW4gYW5kIHByb3BhZ2F0ZSBjb3ZlcmVkIHdvcmtzIHRoYXQgeW91IGRvIG5vdApjb252ZXksIHdpdGhvdXQgY29uZGl0aW9ucyBzbyBsb25nIGFzIHlvdXIgbGljZW5zZSBvdGhlcndpc2UgcmVtYWlucwppbiBmb3JjZS4gIFlvdSBtYXkgY29udmV5IGNvdmVyZWQgd29ya3MgdG8gb3RoZXJzIGZvciB0aGUgc29sZSBwdXJwb3NlCm9mIGhhdmluZyB0aGVtIG1ha2UgbW9kaWZpY2F0aW9ucyBleGNsdXNpdmVseSBmb3IgeW91LCBvciBwcm92aWRlIHlvdQp3aXRoIGZhY2lsaXRpZXMgZm9yIHJ1bm5pbmcgdGhvc2Ugd29ya3MsIHByb3ZpZGVkIHRoYXQgeW91IGNvbXBseSB3aXRoCnRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UgaW4gY29udmV5aW5nIGFsbCBtYXRlcmlhbCBmb3Igd2hpY2ggeW91IGRvCm5vdCBjb250cm9sIGNvcHlyaWdodC4gIFRob3NlIHRodXMgbWFraW5nIG9yIHJ1bm5pbmcgdGhlIGNvdmVyZWQgd29ya3MKZm9yIHlvdSBtdXN0IGRvIHNvIGV4Y2x1c2l2ZWx5IG9uIHlvdXIgYmVoYWxmLCB1bmRlciB5b3VyIGRpcmVjdGlvbgphbmQgY29udHJvbCwgb24gdGVybXMgdGhhdCBwcm9oaWJpdCB0aGVtIGZyb20gbWFraW5nIGFueSBjb3BpZXMgb2YKeW91ciBjb3B5cmlnaHRlZCBtYXRlcmlhbCBvdXRzaWRlIHRoZWlyIHJlbGF0aW9uc2hpcCB3aXRoIHlvdS4KCiAgQ29udmV5aW5nIHVuZGVyIGFueSBvdGhlciBjaXJjdW1zdGFuY2VzIGlzIHBlcm1pdHRlZCBzb2xlbHkgdW5kZXIKdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGJlbG93LiAgU3VibGljZW5zaW5nIGlzIG5vdCBhbGxvd2VkOyBzZWN0aW9uIDEwCm1ha2VzIGl0IHVubmVjZXNzYXJ5LgoKICAzLiBQcm90ZWN0aW5nIFVzZXJzJyBMZWdhbCBSaWdodHMgRnJvbSBBbnRpLUNpcmN1bXZlbnRpb24gTGF3LgoKICBObyBjb3ZlcmVkIHdvcmsgc2hhbGwgYmUgZGVlbWVkIHBhcnQgb2YgYW4gZWZmZWN0aXZlIHRlY2hub2xvZ2ljYWwKbWVhc3VyZSB1bmRlciBhbnkgYXBwbGljYWJsZSBsYXcgZnVsZmlsbGluZyBvYmxpZ2F0aW9ucyB1bmRlciBhcnRpY2xlCjExIG9mIHRoZSBXSVBPIGNvcHlyaWdodCB0cmVhdHkgYWRvcHRlZCBvbiAyMCBEZWNlbWJlciAxOTk2LCBvcgpzaW1pbGFyIGxhd3MgcHJvaGliaXRpbmcgb3IgcmVzdHJpY3RpbmcgY2lyY3VtdmVudGlvbiBvZiBzdWNoCm1lYXN1cmVzLgoKICBXaGVuIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIHlvdSB3YWl2ZSBhbnkgbGVnYWwgcG93ZXIgdG8gZm9yYmlkCmNpcmN1bXZlbnRpb24gb2YgdGVjaG5vbG9naWNhbCBtZWFzdXJlcyB0byB0aGUgZXh0ZW50IHN1Y2ggY2lyY3VtdmVudGlvbgppcyBlZmZlY3RlZCBieSBleGVyY2lzaW5nIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2Ugd2l0aCByZXNwZWN0IHRvCnRoZSBjb3ZlcmVkIHdvcmssIGFuZCB5b3UgZGlzY2xhaW0gYW55IGludGVudGlvbiB0byBsaW1pdCBvcGVyYXRpb24gb3IKbW9kaWZpY2F0aW9uIG9mIHRoZSB3b3JrIGFzIGEgbWVhbnMgb2YgZW5mb3JjaW5nLCBhZ2FpbnN0IHRoZSB3b3JrJ3MKdXNlcnMsIHlvdXIgb3IgdGhpcmQgcGFydGllcycgbGVnYWwgcmlnaHRzIHRvIGZvcmJpZCBjaXJjdW12ZW50aW9uIG9mCnRlY2hub2xvZ2ljYWwgbWVhc3VyZXMuCgogIDQuIENvbnZleWluZyBWZXJiYXRpbSBDb3BpZXMuCgogIFlvdSBtYXkgY29udmV5IHZlcmJhdGltIGNvcGllcyBvZiB0aGUgUHJvZ3JhbSdzIHNvdXJjZSBjb2RlIGFzIHlvdQpyZWNlaXZlIGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdSBjb25zcGljdW91c2x5IGFuZAphcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2U7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIHN0YXRpbmcgdGhhdCB0aGlzIExpY2Vuc2UgYW5kIGFueQpub24tcGVybWlzc2l2ZSB0ZXJtcyBhZGRlZCBpbiBhY2NvcmQgd2l0aCBzZWN0aW9uIDcgYXBwbHkgdG8gdGhlIGNvZGU7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIG9mIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsgYW5kIGdpdmUgYWxsCnJlY2lwaWVudHMgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBQcm9ncmFtLgoKICBZb3UgbWF5IGNoYXJnZSBhbnkgcHJpY2Ugb3Igbm8gcHJpY2UgZm9yIGVhY2ggY29weSB0aGF0IHlvdSBjb252ZXksCmFuZCB5b3UgbWF5IG9mZmVyIHN1cHBvcnQgb3Igd2FycmFudHkgcHJvdGVjdGlvbiBmb3IgYSBmZWUuCgogIDUuIENvbnZleWluZyBNb2RpZmllZCBTb3VyY2UgVmVyc2lvbnMuCgogIFlvdSBtYXkgY29udmV5IGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSwgb3IgdGhlIG1vZGlmaWNhdGlvbnMgdG8KcHJvZHVjZSBpdCBmcm9tIHRoZSBQcm9ncmFtLCBpbiB0aGUgZm9ybSBvZiBzb3VyY2UgY29kZSB1bmRlciB0aGUKdGVybXMgb2Ygc2VjdGlvbiA0LCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgeW91IG1vZGlmaWVkCiAgICBpdCwgYW5kIGdpdmluZyBhIHJlbGV2YW50IGRhdGUuCgogICAgYikgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgaXQgaXMKICAgIHJlbGVhc2VkIHVuZGVyIHRoaXMgTGljZW5zZSBhbmQgYW55IGNvbmRpdGlvbnMgYWRkZWQgdW5kZXIgc2VjdGlvbgogICAgNy4gIFRoaXMgcmVxdWlyZW1lbnQgbW9kaWZpZXMgdGhlIHJlcXVpcmVtZW50IGluIHNlY3Rpb24gNCB0bwogICAgImtlZXAgaW50YWN0IGFsbCBub3RpY2VzIi4KCiAgICBjKSBZb3UgbXVzdCBsaWNlbnNlIHRoZSBlbnRpcmUgd29yaywgYXMgYSB3aG9sZSwgdW5kZXIgdGhpcwogICAgTGljZW5zZSB0byBhbnlvbmUgd2hvIGNvbWVzIGludG8gcG9zc2Vzc2lvbiBvZiBhIGNvcHkuICBUaGlzCiAgICBMaWNlbnNlIHdpbGwgdGhlcmVmb3JlIGFwcGx5LCBhbG9uZyB3aXRoIGFueSBhcHBsaWNhYmxlIHNlY3Rpb24gNwogICAgYWRkaXRpb25hbCB0ZXJtcywgdG8gdGhlIHdob2xlIG9mIHRoZSB3b3JrLCBhbmQgYWxsIGl0cyBwYXJ0cywKICAgIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZXkgYXJlIHBhY2thZ2VkLiAgVGhpcyBMaWNlbnNlIGdpdmVzIG5vCiAgICBwZXJtaXNzaW9uIHRvIGxpY2Vuc2UgdGhlIHdvcmsgaW4gYW55IG90aGVyIHdheSwgYnV0IGl0IGRvZXMgbm90CiAgICBpbnZhbGlkYXRlIHN1Y2ggcGVybWlzc2lvbiBpZiB5b3UgaGF2ZSBzZXBhcmF0ZWx5IHJlY2VpdmVkIGl0LgoKICAgIGQpIElmIHRoZSB3b3JrIGhhcyBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZXMsIGVhY2ggbXVzdCBkaXNwbGF5CiAgICBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzOyBob3dldmVyLCBpZiB0aGUgUHJvZ3JhbSBoYXMgaW50ZXJhY3RpdmUKICAgIGludGVyZmFjZXMgdGhhdCBkbyBub3QgZGlzcGxheSBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzLCB5b3VyCiAgICB3b3JrIG5lZWQgbm90IG1ha2UgdGhlbSBkbyBzby4KCiAgQSBjb21waWxhdGlvbiBvZiBhIGNvdmVyZWQgd29yayB3aXRoIG90aGVyIHNlcGFyYXRlIGFuZCBpbmRlcGVuZGVudAp3b3Jrcywgd2hpY2ggYXJlIG5vdCBieSB0aGVpciBuYXR1cmUgZXh0ZW5zaW9ucyBvZiB0aGUgY292ZXJlZCB3b3JrLAphbmQgd2hpY2ggYXJlIG5vdCBjb21iaW5lZCB3aXRoIGl0IHN1Y2ggYXMgdG8gZm9ybSBhIGxhcmdlciBwcm9ncmFtLAppbiBvciBvbiBhIHZvbHVtZSBvZiBhIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSwgaXMgY2FsbGVkIGFuCiJhZ2dyZWdhdGUiIGlmIHRoZSBjb21waWxhdGlvbiBhbmQgaXRzIHJlc3VsdGluZyBjb3B5cmlnaHQgYXJlIG5vdAp1c2VkIHRvIGxpbWl0IHRoZSBhY2Nlc3Mgb3IgbGVnYWwgcmlnaHRzIG9mIHRoZSBjb21waWxhdGlvbidzIHVzZXJzCmJleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsIHdvcmtzIHBlcm1pdC4gIEluY2x1c2lvbiBvZiBhIGNvdmVyZWQgd29yawppbiBhbiBhZ2dyZWdhdGUgZG9lcyBub3QgY2F1c2UgdGhpcyBMaWNlbnNlIHRvIGFwcGx5IHRvIHRoZSBvdGhlcgpwYXJ0cyBvZiB0aGUgYWdncmVnYXRlLgoKICA2LiBDb252ZXlpbmcgTm9uLVNvdXJjZSBGb3Jtcy4KCiAgWW91IG1heSBjb252ZXkgYSBjb3ZlcmVkIHdvcmsgaW4gb2JqZWN0IGNvZGUgZm9ybSB1bmRlciB0aGUgdGVybXMKb2Ygc2VjdGlvbnMgNCBhbmQgNSwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBjb252ZXkgdGhlCm1hY2hpbmUtcmVhZGFibGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSwKaW4gb25lIG9mIHRoZXNlIHdheXM6CgogICAgYSkgQ29udmV5IHRoZSBvYmplY3QgY29kZSBpbiwgb3IgZW1ib2RpZWQgaW4sIGEgcGh5c2ljYWwgcHJvZHVjdAogICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGZpeGVkIG9uIGEgZHVyYWJsZSBwaHlzaWNhbCBtZWRpdW0KICAgIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLgoKICAgIGIpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsIHByb2R1Y3QKICAgIChpbmNsdWRpbmcgYSBwaHlzaWNhbCBkaXN0cmlidXRpb24gbWVkaXVtKSwgYWNjb21wYW5pZWQgYnkgYQogICAgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlIHllYXJzIGFuZCB2YWxpZCBmb3IgYXMKICAgIGxvbmcgYXMgeW91IG9mZmVyIHNwYXJlIHBhcnRzIG9yIGN1c3RvbWVyIHN1cHBvcnQgZm9yIHRoYXQgcHJvZHVjdAogICAgbW9kZWwsIHRvIGdpdmUgYW55b25lIHdobyBwb3NzZXNzZXMgdGhlIG9iamVjdCBjb2RlIGVpdGhlciAoMSkgYQogICAgY29weSBvZiB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgZm9yIGFsbCB0aGUgc29mdHdhcmUgaW4gdGhlCiAgICBwcm9kdWN0IHRoYXQgaXMgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UsIG9uIGEgZHVyYWJsZSBwaHlzaWNhbAogICAgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLCBmb3IgYSBwcmljZSBubwogICAgbW9yZSB0aGFuIHlvdXIgcmVhc29uYWJsZSBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9ybWluZyB0aGlzCiAgICBjb252ZXlpbmcgb2Ygc291cmNlLCBvciAoMikgYWNjZXNzIHRvIGNvcHkgdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBmcm9tIGEgbmV0d29yayBzZXJ2ZXIgYXQgbm8gY2hhcmdlLgoKICAgIGMpIENvbnZleSBpbmRpdmlkdWFsIGNvcGllcyBvZiB0aGUgb2JqZWN0IGNvZGUgd2l0aCBhIGNvcHkgb2YgdGhlCiAgICB3cml0dGVuIG9mZmVyIHRvIHByb3ZpZGUgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhpcwogICAgYWx0ZXJuYXRpdmUgaXMgYWxsb3dlZCBvbmx5IG9jY2FzaW9uYWxseSBhbmQgbm9uY29tbWVyY2lhbGx5LCBhbmQKICAgIG9ubHkgaWYgeW91IHJlY2VpdmVkIHRoZSBvYmplY3QgY29kZSB3aXRoIHN1Y2ggYW4gb2ZmZXIsIGluIGFjY29yZAogICAgd2l0aCBzdWJzZWN0aW9uIDZiLgoKICAgIGQpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgYnkgb2ZmZXJpbmcgYWNjZXNzIGZyb20gYSBkZXNpZ25hdGVkCiAgICBwbGFjZSAoZ3JhdGlzIG9yIGZvciBhIGNoYXJnZSksIGFuZCBvZmZlciBlcXVpdmFsZW50IGFjY2VzcyB0byB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGluIHRoZSBzYW1lIHdheSB0aHJvdWdoIHRoZSBzYW1lIHBsYWNlIGF0IG5vCiAgICBmdXJ0aGVyIGNoYXJnZS4gIFlvdSBuZWVkIG5vdCByZXF1aXJlIHJlY2lwaWVudHMgdG8gY29weSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLiAgSWYgdGhlIHBsYWNlIHRvCiAgICBjb3B5IHRoZSBvYmplY3QgY29kZSBpcyBhIG5ldHdvcmsgc2VydmVyLCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UKICAgIG1heSBiZSBvbiBhIGRpZmZlcmVudCBzZXJ2ZXIgKG9wZXJhdGVkIGJ5IHlvdSBvciBhIHRoaXJkIHBhcnR5KQogICAgdGhhdCBzdXBwb3J0cyBlcXVpdmFsZW50IGNvcHlpbmcgZmFjaWxpdGllcywgcHJvdmlkZWQgeW91IG1haW50YWluCiAgICBjbGVhciBkaXJlY3Rpb25zIG5leHQgdG8gdGhlIG9iamVjdCBjb2RlIHNheWluZyB3aGVyZSB0byBmaW5kIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBSZWdhcmRsZXNzIG9mIHdoYXQgc2VydmVyIGhvc3RzIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UsIHlvdSByZW1haW4gb2JsaWdhdGVkIHRvIGVuc3VyZSB0aGF0IGl0IGlzCiAgICBhdmFpbGFibGUgZm9yIGFzIGxvbmcgYXMgbmVlZGVkIHRvIHNhdGlzZnkgdGhlc2UgcmVxdWlyZW1lbnRzLgoKICAgIGUpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgdXNpbmcgcGVlci10by1wZWVyIHRyYW5zbWlzc2lvbiwgcHJvdmlkZWQKICAgIHlvdSBpbmZvcm0gb3RoZXIgcGVlcnMgd2hlcmUgdGhlIG9iamVjdCBjb2RlIGFuZCBDb3JyZXNwb25kaW5nCiAgICBTb3VyY2Ugb2YgdGhlIHdvcmsgYXJlIGJlaW5nIG9mZmVyZWQgdG8gdGhlIGdlbmVyYWwgcHVibGljIGF0IG5vCiAgICBjaGFyZ2UgdW5kZXIgc3Vic2VjdGlvbiA2ZC4KCiAgQSBzZXBhcmFibGUgcG9ydGlvbiBvZiB0aGUgb2JqZWN0IGNvZGUsIHdob3NlIHNvdXJjZSBjb2RlIGlzIGV4Y2x1ZGVkCmZyb20gdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIGFzIGEgU3lzdGVtIExpYnJhcnksIG5lZWQgbm90IGJlCmluY2x1ZGVkIGluIGNvbnZleWluZyB0aGUgb2JqZWN0IGNvZGUgd29yay4KCiAgQSAiVXNlciBQcm9kdWN0IiBpcyBlaXRoZXIgKDEpIGEgImNvbnN1bWVyIHByb2R1Y3QiLCB3aGljaCBtZWFucyBhbnkKdGFuZ2libGUgcGVyc29uYWwgcHJvcGVydHkgd2hpY2ggaXMgbm9ybWFsbHkgdXNlZCBmb3IgcGVyc29uYWwsIGZhbWlseSwKb3IgaG91c2Vob2xkIHB1cnBvc2VzLCBvciAoMikgYW55dGhpbmcgZGVzaWduZWQgb3Igc29sZCBmb3IgaW5jb3Jwb3JhdGlvbgppbnRvIGEgZHdlbGxpbmcuICBJbiBkZXRlcm1pbmluZyB3aGV0aGVyIGEgcHJvZHVjdCBpcyBhIGNvbnN1bWVyIHByb2R1Y3QsCmRvdWJ0ZnVsIGNhc2VzIHNoYWxsIGJlIHJlc29sdmVkIGluIGZhdm9yIG9mIGNvdmVyYWdlLiAgRm9yIGEgcGFydGljdWxhcgpwcm9kdWN0IHJlY2VpdmVkIGJ5IGEgcGFydGljdWxhciB1c2VyLCAibm9ybWFsbHkgdXNlZCIgcmVmZXJzIHRvIGEKdHlwaWNhbCBvciBjb21tb24gdXNlIG9mIHRoYXQgY2xhc3Mgb2YgcHJvZHVjdCwgcmVnYXJkbGVzcyBvZiB0aGUgc3RhdHVzCm9mIHRoZSBwYXJ0aWN1bGFyIHVzZXIgb3Igb2YgdGhlIHdheSBpbiB3aGljaCB0aGUgcGFydGljdWxhciB1c2VyCmFjdHVhbGx5IHVzZXMsIG9yIGV4cGVjdHMgb3IgaXMgZXhwZWN0ZWQgdG8gdXNlLCB0aGUgcHJvZHVjdC4gIEEgcHJvZHVjdAppcyBhIGNvbnN1bWVyIHByb2R1Y3QgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBwcm9kdWN0IGhhcyBzdWJzdGFudGlhbApjb21tZXJjaWFsLCBpbmR1c3RyaWFsIG9yIG5vbi1jb25zdW1lciB1c2VzLCB1bmxlc3Mgc3VjaCB1c2VzIHJlcHJlc2VudAp0aGUgb25seSBzaWduaWZpY2FudCBtb2RlIG9mIHVzZSBvZiB0aGUgcHJvZHVjdC4KCiAgIkluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiIgZm9yIGEgVXNlciBQcm9kdWN0IG1lYW5zIGFueSBtZXRob2RzLApwcm9jZWR1cmVzLCBhdXRob3JpemF0aW9uIGtleXMsIG9yIG90aGVyIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIGluc3RhbGwKYW5kIGV4ZWN1dGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YgYSBjb3ZlcmVkIHdvcmsgaW4gdGhhdCBVc2VyIFByb2R1Y3QgZnJvbQphIG1vZGlmaWVkIHZlcnNpb24gb2YgaXRzIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhlIGluZm9ybWF0aW9uIG11c3QKc3VmZmljZSB0byBlbnN1cmUgdGhhdCB0aGUgY29udGludWVkIGZ1bmN0aW9uaW5nIG9mIHRoZSBtb2RpZmllZCBvYmplY3QKY29kZSBpcyBpbiBubyBjYXNlIHByZXZlbnRlZCBvciBpbnRlcmZlcmVkIHdpdGggc29sZWx5IGJlY2F1c2UKbW9kaWZpY2F0aW9uIGhhcyBiZWVuIG1hZGUuCgogIElmIHlvdSBjb252ZXkgYW4gb2JqZWN0IGNvZGUgd29yayB1bmRlciB0aGlzIHNlY3Rpb24gaW4sIG9yIHdpdGgsIG9yCnNwZWNpZmljYWxseSBmb3IgdXNlIGluLCBhIFVzZXIgUHJvZHVjdCwgYW5kIHRoZSBjb252ZXlpbmcgb2NjdXJzIGFzCnBhcnQgb2YgYSB0cmFuc2FjdGlvbiBpbiB3aGljaCB0aGUgcmlnaHQgb2YgcG9zc2Vzc2lvbiBhbmQgdXNlIG9mIHRoZQpVc2VyIFByb2R1Y3QgaXMgdHJhbnNmZXJyZWQgdG8gdGhlIHJlY2lwaWVudCBpbiBwZXJwZXR1aXR5IG9yIGZvciBhCmZpeGVkIHRlcm0gKHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSB0cmFuc2FjdGlvbiBpcyBjaGFyYWN0ZXJpemVkKSwgdGhlCkNvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkIHVuZGVyIHRoaXMgc2VjdGlvbiBtdXN0IGJlIGFjY29tcGFuaWVkCmJ5IHRoZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24uICBCdXQgdGhpcyByZXF1aXJlbWVudCBkb2VzIG5vdCBhcHBseQppZiBuZWl0aGVyIHlvdSBub3IgYW55IHRoaXJkIHBhcnR5IHJldGFpbnMgdGhlIGFiaWxpdHkgdG8gaW5zdGFsbAptb2RpZmllZCBvYmplY3QgY29kZSBvbiB0aGUgVXNlciBQcm9kdWN0IChmb3IgZXhhbXBsZSwgdGhlIHdvcmsgaGFzCmJlZW4gaW5zdGFsbGVkIGluIFJPTSkuCgogIFRoZSByZXF1aXJlbWVudCB0byBwcm92aWRlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiBkb2VzIG5vdCBpbmNsdWRlIGEKcmVxdWlyZW1lbnQgdG8gY29udGludWUgdG8gcHJvdmlkZSBzdXBwb3J0IHNlcnZpY2UsIHdhcnJhbnR5LCBvciB1cGRhdGVzCmZvciBhIHdvcmsgdGhhdCBoYXMgYmVlbiBtb2RpZmllZCBvciBpbnN0YWxsZWQgYnkgdGhlIHJlY2lwaWVudCwgb3IgZm9yCnRoZSBVc2VyIFByb2R1Y3QgaW4gd2hpY2ggaXQgaGFzIGJlZW4gbW9kaWZpZWQgb3IgaW5zdGFsbGVkLiAgQWNjZXNzIHRvIGEKbmV0d29yayBtYXkgYmUgZGVuaWVkIHdoZW4gdGhlIG1vZGlmaWNhdGlvbiBpdHNlbGYgbWF0ZXJpYWxseSBhbmQKYWR2ZXJzZWx5IGFmZmVjdHMgdGhlIG9wZXJhdGlvbiBvZiB0aGUgbmV0d29yayBvciB2aW9sYXRlcyB0aGUgcnVsZXMgYW5kCnByb3RvY29scyBmb3IgY29tbXVuaWNhdGlvbiBhY3Jvc3MgdGhlIG5ldHdvcmsuCgogIENvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkLCBhbmQgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uIHByb3ZpZGVkLAppbiBhY2NvcmQgd2l0aCB0aGlzIHNlY3Rpb24gbXVzdCBiZSBpbiBhIGZvcm1hdCB0aGF0IGlzIHB1YmxpY2x5CmRvY3VtZW50ZWQgKGFuZCB3aXRoIGFuIGltcGxlbWVudGF0aW9uIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluCnNvdXJjZSBjb2RlIGZvcm0pLCBhbmQgbXVzdCByZXF1aXJlIG5vIHNwZWNpYWwgcGFzc3dvcmQgb3Iga2V5IGZvcgp1bnBhY2tpbmcsIHJlYWRpbmcgb3IgY29weWluZy4KCiAgNy4gQWRkaXRpb25hbCBUZXJtcy4KCiAgIkFkZGl0aW9uYWwgcGVybWlzc2lvbnMiIGFyZSB0ZXJtcyB0aGF0IHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMKTGljZW5zZSBieSBtYWtpbmcgZXhjZXB0aW9ucyBmcm9tIG9uZSBvciBtb3JlIG9mIGl0cyBjb25kaXRpb25zLgpBZGRpdGlvbmFsIHBlcm1pc3Npb25zIHRoYXQgYXJlIGFwcGxpY2FibGUgdG8gdGhlIGVudGlyZSBQcm9ncmFtIHNoYWxsCmJlIHRyZWF0ZWQgYXMgdGhvdWdoIHRoZXkgd2VyZSBpbmNsdWRlZCBpbiB0aGlzIExpY2Vuc2UsIHRvIHRoZSBleHRlbnQKdGhhdCB0aGV5IGFyZSB2YWxpZCB1bmRlciBhcHBsaWNhYmxlIGxhdy4gIElmIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMKYXBwbHkgb25seSB0byBwYXJ0IG9mIHRoZSBQcm9ncmFtLCB0aGF0IHBhcnQgbWF5IGJlIHVzZWQgc2VwYXJhdGVseQp1bmRlciB0aG9zZSBwZXJtaXNzaW9ucywgYnV0IHRoZSBlbnRpcmUgUHJvZ3JhbSByZW1haW5zIGdvdmVybmVkIGJ5CnRoaXMgTGljZW5zZSB3aXRob3V0IHJlZ2FyZCB0byB0aGUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucy4KCiAgV2hlbiB5b3UgY29udmV5IGEgY29weSBvZiBhIGNvdmVyZWQgd29yaywgeW91IG1heSBhdCB5b3VyIG9wdGlvbgpyZW1vdmUgYW55IGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgZnJvbSB0aGF0IGNvcHksIG9yIGZyb20gYW55IHBhcnQgb2YKaXQuICAoQWRkaXRpb25hbCBwZXJtaXNzaW9ucyBtYXkgYmUgd3JpdHRlbiB0byByZXF1aXJlIHRoZWlyIG93bgpyZW1vdmFsIGluIGNlcnRhaW4gY2FzZXMgd2hlbiB5b3UgbW9kaWZ5IHRoZSB3b3JrLikgIFlvdSBtYXkgcGxhY2UKYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBvbiBtYXRlcmlhbCwgYWRkZWQgYnkgeW91IHRvIGEgY292ZXJlZCB3b3JrLApmb3Igd2hpY2ggeW91IGhhdmUgb3IgY2FuIGdpdmUgYXBwcm9wcmlhdGUgY29weXJpZ2h0IHBlcm1pc3Npb24uCgogIE5vdHdpdGhzdGFuZGluZyBhbnkgb3RoZXIgcHJvdmlzaW9uIG9mIHRoaXMgTGljZW5zZSwgZm9yIG1hdGVyaWFsIHlvdQphZGQgdG8gYSBjb3ZlcmVkIHdvcmssIHlvdSBtYXkgKGlmIGF1dGhvcml6ZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXJzIG9mCnRoYXQgbWF0ZXJpYWwpIHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSB3aXRoIHRlcm1zOgoKICAgIGEpIERpc2NsYWltaW5nIHdhcnJhbnR5IG9yIGxpbWl0aW5nIGxpYWJpbGl0eSBkaWZmZXJlbnRseSBmcm9tIHRoZQogICAgdGVybXMgb2Ygc2VjdGlvbnMgMTUgYW5kIDE2IG9mIHRoaXMgTGljZW5zZTsgb3IKCiAgICBiKSBSZXF1aXJpbmcgcHJlc2VydmF0aW9uIG9mIHNwZWNpZmllZCByZWFzb25hYmxlIGxlZ2FsIG5vdGljZXMgb3IKICAgIGF1dGhvciBhdHRyaWJ1dGlvbnMgaW4gdGhhdCBtYXRlcmlhbCBvciBpbiB0aGUgQXBwcm9wcmlhdGUgTGVnYWwKICAgIE5vdGljZXMgZGlzcGxheWVkIGJ5IHdvcmtzIGNvbnRhaW5pbmcgaXQ7IG9yCgogICAgYykgUHJvaGliaXRpbmcgbWlzcmVwcmVzZW50YXRpb24gb2YgdGhlIG9yaWdpbiBvZiB0aGF0IG1hdGVyaWFsLCBvcgogICAgcmVxdWlyaW5nIHRoYXQgbW9kaWZpZWQgdmVyc2lvbnMgb2Ygc3VjaCBtYXRlcmlhbCBiZSBtYXJrZWQgaW4KICAgIHJlYXNvbmFibGUgd2F5cyBhcyBkaWZmZXJlbnQgZnJvbSB0aGUgb3JpZ2luYWwgdmVyc2lvbjsgb3IKCiAgICBkKSBMaW1pdGluZyB0aGUgdXNlIGZvciBwdWJsaWNpdHkgcHVycG9zZXMgb2YgbmFtZXMgb2YgbGljZW5zb3JzIG9yCiAgICBhdXRob3JzIG9mIHRoZSBtYXRlcmlhbDsgb3IKCiAgICBlKSBEZWNsaW5pbmcgdG8gZ3JhbnQgcmlnaHRzIHVuZGVyIHRyYWRlbWFyayBsYXcgZm9yIHVzZSBvZiBzb21lCiAgICB0cmFkZSBuYW1lcywgdHJhZGVtYXJrcywgb3Igc2VydmljZSBtYXJrczsgb3IKCiAgICBmKSBSZXF1aXJpbmcgaW5kZW1uaWZpY2F0aW9uIG9mIGxpY2Vuc29ycyBhbmQgYXV0aG9ycyBvZiB0aGF0CiAgICBtYXRlcmlhbCBieSBhbnlvbmUgd2hvIGNvbnZleXMgdGhlIG1hdGVyaWFsIChvciBtb2RpZmllZCB2ZXJzaW9ucyBvZgogICAgaXQpIHdpdGggY29udHJhY3R1YWwgYXNzdW1wdGlvbnMgb2YgbGlhYmlsaXR5IHRvIHRoZSByZWNpcGllbnQsIGZvcgogICAgYW55IGxpYWJpbGl0eSB0aGF0IHRoZXNlIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIGRpcmVjdGx5IGltcG9zZSBvbgogICAgdGhvc2UgbGljZW5zb3JzIGFuZCBhdXRob3JzLgoKICBBbGwgb3RoZXIgbm9uLXBlcm1pc3NpdmUgYWRkaXRpb25hbCB0ZXJtcyBhcmUgY29uc2lkZXJlZCAiZnVydGhlcgpyZXN0cmljdGlvbnMiIHdpdGhpbiB0aGUgbWVhbmluZyBvZiBzZWN0aW9uIDEwLiAgSWYgdGhlIFByb2dyYW0gYXMgeW91CnJlY2VpdmVkIGl0LCBvciBhbnkgcGFydCBvZiBpdCwgY29udGFpbnMgYSBub3RpY2Ugc3RhdGluZyB0aGF0IGl0IGlzCmdvdmVybmVkIGJ5IHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIGEgdGVybSB0aGF0IGlzIGEgZnVydGhlcgpyZXN0cmljdGlvbiwgeW91IG1heSByZW1vdmUgdGhhdCB0ZXJtLiAgSWYgYSBsaWNlbnNlIGRvY3VtZW50IGNvbnRhaW5zCmEgZnVydGhlciByZXN0cmljdGlvbiBidXQgcGVybWl0cyByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcgdW5kZXIgdGhpcwpMaWNlbnNlLCB5b3UgbWF5IGFkZCB0byBhIGNvdmVyZWQgd29yayBtYXRlcmlhbCBnb3Zlcm5lZCBieSB0aGUgdGVybXMKb2YgdGhhdCBsaWNlbnNlIGRvY3VtZW50LCBwcm92aWRlZCB0aGF0IHRoZSBmdXJ0aGVyIHJlc3RyaWN0aW9uIGRvZXMKbm90IHN1cnZpdmUgc3VjaCByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcuCgogIElmIHlvdSBhZGQgdGVybXMgdG8gYSBjb3ZlcmVkIHdvcmsgaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uLCB5b3UKbXVzdCBwbGFjZSwgaW4gdGhlIHJlbGV2YW50IHNvdXJjZSBmaWxlcywgYSBzdGF0ZW1lbnQgb2YgdGhlCmFkZGl0aW9uYWwgdGVybXMgdGhhdCBhcHBseSB0byB0aG9zZSBmaWxlcywgb3IgYSBub3RpY2UgaW5kaWNhdGluZwp3aGVyZSB0byBmaW5kIHRoZSBhcHBsaWNhYmxlIHRlcm1zLgoKICBBZGRpdGlvbmFsIHRlcm1zLCBwZXJtaXNzaXZlIG9yIG5vbi1wZXJtaXNzaXZlLCBtYXkgYmUgc3RhdGVkIGluIHRoZQpmb3JtIG9mIGEgc2VwYXJhdGVseSB3cml0dGVuIGxpY2Vuc2UsIG9yIHN0YXRlZCBhcyBleGNlcHRpb25zOwp0aGUgYWJvdmUgcmVxdWlyZW1lbnRzIGFwcGx5IGVpdGhlciB3YXkuCgogIDguIFRlcm1pbmF0aW9uLgoKICBZb3UgbWF5IG5vdCBwcm9wYWdhdGUgb3IgbW9kaWZ5IGEgY292ZXJlZCB3b3JrIGV4Y2VwdCBhcyBleHByZXNzbHkKcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQgb3RoZXJ3aXNlIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgaXQgaXMgdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIKdGhpcyBMaWNlbnNlIChpbmNsdWRpbmcgYW55IHBhdGVudCBsaWNlbnNlcyBncmFudGVkIHVuZGVyIHRoZSB0aGlyZApwYXJhZ3JhcGggb2Ygc2VjdGlvbiAxMSkuCgogIEhvd2V2ZXIsIGlmIHlvdSBjZWFzZSBhbGwgdmlvbGF0aW9uIG9mIHRoaXMgTGljZW5zZSwgdGhlbiB5b3VyCmxpY2Vuc2UgZnJvbSBhIHBhcnRpY3VsYXIgY29weXJpZ2h0IGhvbGRlciBpcyByZWluc3RhdGVkIChhKQpwcm92aXNpb25hbGx5LCB1bmxlc3MgYW5kIHVudGlsIHRoZSBjb3B5cmlnaHQgaG9sZGVyIGV4cGxpY2l0bHkgYW5kCmZpbmFsbHkgdGVybWluYXRlcyB5b3VyIGxpY2Vuc2UsIGFuZCAoYikgcGVybWFuZW50bHksIGlmIHRoZSBjb3B5cmlnaHQKaG9sZGVyIGZhaWxzIHRvIG5vdGlmeSB5b3Ugb2YgdGhlIHZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMKcHJpb3IgdG8gNjAgZGF5cyBhZnRlciB0aGUgY2Vzc2F0aW9uLgoKICBNb3Jlb3ZlciwgeW91ciBsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMKcmVpbnN0YXRlZCBwZXJtYW5lbnRseSBpZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3RpZmllcyB5b3Ugb2YgdGhlCnZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMsIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgeW91IGhhdmUKcmVjZWl2ZWQgbm90aWNlIG9mIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UgKGZvciBhbnkgd29yaykgZnJvbSB0aGF0CmNvcHlyaWdodCBob2xkZXIsIGFuZCB5b3UgY3VyZSB0aGUgdmlvbGF0aW9uIHByaW9yIHRvIDMwIGRheXMgYWZ0ZXIKeW91ciByZWNlaXB0IG9mIHRoZSBub3RpY2UuCgogIFRlcm1pbmF0aW9uIG9mIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgc2VjdGlvbiBkb2VzIG5vdCB0ZXJtaW5hdGUgdGhlCmxpY2Vuc2VzIG9mIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzIG9yIHJpZ2h0cyBmcm9tIHlvdSB1bmRlcgp0aGlzIExpY2Vuc2UuICBJZiB5b3VyIHJpZ2h0cyBoYXZlIGJlZW4gdGVybWluYXRlZCBhbmQgbm90IHBlcm1hbmVudGx5CnJlaW5zdGF0ZWQsIHlvdSBkbyBub3QgcXVhbGlmeSB0byByZWNlaXZlIG5ldyBsaWNlbnNlcyBmb3IgdGhlIHNhbWUKbWF0ZXJpYWwgdW5kZXIgc2VjdGlvbiAxMC4KCiAgOS4gQWNjZXB0YW5jZSBOb3QgUmVxdWlyZWQgZm9yIEhhdmluZyBDb3BpZXMuCgogIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UgaW4gb3JkZXIgdG8gcmVjZWl2ZSBvcgpydW4gYSBjb3B5IG9mIHRoZSBQcm9ncmFtLiAgQW5jaWxsYXJ5IHByb3BhZ2F0aW9uIG9mIGEgY292ZXJlZCB3b3JrCm9jY3VycmluZyBzb2xlbHkgYXMgYSBjb25zZXF1ZW5jZSBvZiB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uCnRvIHJlY2VpdmUgYSBjb3B5IGxpa2V3aXNlIGRvZXMgbm90IHJlcXVpcmUgYWNjZXB0YW5jZS4gIEhvd2V2ZXIsCm5vdGhpbmcgb3RoZXIgdGhhbiB0aGlzIExpY2Vuc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgYW55IGNvdmVyZWQgd29yay4gIFRoZXNlIGFjdGlvbnMgaW5mcmluZ2UgY29weXJpZ2h0IGlmIHlvdSBkbwpub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkgbW9kaWZ5aW5nIG9yIHByb3BhZ2F0aW5nIGEKY292ZXJlZCB3b3JrLCB5b3UgaW5kaWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBzby4KCiAgMTAuIEF1dG9tYXRpYyBMaWNlbnNpbmcgb2YgRG93bnN0cmVhbSBSZWNpcGllbnRzLgoKICBFYWNoIHRpbWUgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5CnJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZSBvcmlnaW5hbCBsaWNlbnNvcnMsIHRvIHJ1biwgbW9kaWZ5IGFuZApwcm9wYWdhdGUgdGhhdCB3b3JrLCBzdWJqZWN0IHRvIHRoaXMgTGljZW5zZS4gIFlvdSBhcmUgbm90IHJlc3BvbnNpYmxlCmZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHdpdGggdGhpcyBMaWNlbnNlLgoKICBBbiAiZW50aXR5IHRyYW5zYWN0aW9uIiBpcyBhIHRyYW5zYWN0aW9uIHRyYW5zZmVycmluZyBjb250cm9sIG9mIGFuCm9yZ2FuaXphdGlvbiwgb3Igc3Vic3RhbnRpYWxseSBhbGwgYXNzZXRzIG9mIG9uZSwgb3Igc3ViZGl2aWRpbmcgYW4Kb3JnYW5pemF0aW9uLCBvciBtZXJnaW5nIG9yZ2FuaXphdGlvbnMuICBJZiBwcm9wYWdhdGlvbiBvZiBhIGNvdmVyZWQKd29yayByZXN1bHRzIGZyb20gYW4gZW50aXR5IHRyYW5zYWN0aW9uLCBlYWNoIHBhcnR5IHRvIHRoYXQKdHJhbnNhY3Rpb24gd2hvIHJlY2VpdmVzIGEgY29weSBvZiB0aGUgd29yayBhbHNvIHJlY2VpdmVzIHdoYXRldmVyCmxpY2Vuc2VzIHRvIHRoZSB3b3JrIHRoZSBwYXJ0eSdzIHByZWRlY2Vzc29yIGluIGludGVyZXN0IGhhZCBvciBjb3VsZApnaXZlIHVuZGVyIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGgsIHBsdXMgYSByaWdodCB0byBwb3NzZXNzaW9uIG9mIHRoZQpDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBmcm9tIHRoZSBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCwgaWYKdGhlIHByZWRlY2Vzc29yIGhhcyBpdCBvciBjYW4gZ2V0IGl0IHdpdGggcmVhc29uYWJsZSBlZmZvcnRzLgoKICBZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIgcmVzdHJpY3Rpb25zIG9uIHRoZSBleGVyY2lzZSBvZiB0aGUKcmlnaHRzIGdyYW50ZWQgb3IgYWZmaXJtZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgRm9yIGV4YW1wbGUsIHlvdSBtYXkKbm90IGltcG9zZSBhIGxpY2Vuc2UgZmVlLCByb3lhbHR5LCBvciBvdGhlciBjaGFyZ2UgZm9yIGV4ZXJjaXNlIG9mCnJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIHlvdSBtYXkgbm90IGluaXRpYXRlIGxpdGlnYXRpb24KKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQKYW55IHBhdGVudCBjbGFpbSBpcyBpbmZyaW5nZWQgYnkgbWFraW5nLCB1c2luZywgc2VsbGluZywgb2ZmZXJpbmcgZm9yCnNhbGUsIG9yIGltcG9ydGluZyB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbiBvZiBpdC4KCiAgMTEuIFBhdGVudHMuCgogIEEgImNvbnRyaWJ1dG9yIiBpcyBhIGNvcHlyaWdodCBob2xkZXIgd2hvIGF1dGhvcml6ZXMgdXNlIHVuZGVyIHRoaXMKTGljZW5zZSBvZiB0aGUgUHJvZ3JhbSBvciBhIHdvcmsgb24gd2hpY2ggdGhlIFByb2dyYW0gaXMgYmFzZWQuICBUaGUKd29yayB0aHVzIGxpY2Vuc2VkIGlzIGNhbGxlZCB0aGUgY29udHJpYnV0b3IncyAiY29udHJpYnV0b3IgdmVyc2lvbiIuCgogIEEgY29udHJpYnV0b3IncyAiZXNzZW50aWFsIHBhdGVudCBjbGFpbXMiIGFyZSBhbGwgcGF0ZW50IGNsYWltcwpvd25lZCBvciBjb250cm9sbGVkIGJ5IHRoZSBjb250cmlidXRvciwgd2hldGhlciBhbHJlYWR5IGFjcXVpcmVkIG9yCmhlcmVhZnRlciBhY3F1aXJlZCwgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgYnkgc29tZSBtYW5uZXIsIHBlcm1pdHRlZApieSB0aGlzIExpY2Vuc2UsIG9mIG1ha2luZywgdXNpbmcsIG9yIHNlbGxpbmcgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24sCmJ1dCBkbyBub3QgaW5jbHVkZSBjbGFpbXMgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgb25seSBhcyBhCmNvbnNlcXVlbmNlIG9mIGZ1cnRoZXIgbW9kaWZpY2F0aW9uIG9mIHRoZSBjb250cmlidXRvciB2ZXJzaW9uLiAgRm9yCnB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgImNvbnRyb2wiIGluY2x1ZGVzIHRoZSByaWdodCB0byBncmFudApwYXRlbnQgc3VibGljZW5zZXMgaW4gYSBtYW5uZXIgY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YKdGhpcyBMaWNlbnNlLgoKICBFYWNoIGNvbnRyaWJ1dG9yIGdyYW50cyB5b3UgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZQpwYXRlbnQgbGljZW5zZSB1bmRlciB0aGUgY29udHJpYnV0b3IncyBlc3NlbnRpYWwgcGF0ZW50IGNsYWltcywgdG8KbWFrZSwgdXNlLCBzZWxsLCBvZmZlciBmb3Igc2FsZSwgaW1wb3J0IGFuZCBvdGhlcndpc2UgcnVuLCBtb2RpZnkgYW5kCnByb3BhZ2F0ZSB0aGUgY29udGVudHMgb2YgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24uCgogIEluIHRoZSBmb2xsb3dpbmcgdGhyZWUgcGFyYWdyYXBocywgYSAicGF0ZW50IGxpY2Vuc2UiIGlzIGFueSBleHByZXNzCmFncmVlbWVudCBvciBjb21taXRtZW50LCBob3dldmVyIGRlbm9taW5hdGVkLCBub3QgdG8gZW5mb3JjZSBhIHBhdGVudAooc3VjaCBhcyBhbiBleHByZXNzIHBlcm1pc3Npb24gdG8gcHJhY3RpY2UgYSBwYXRlbnQgb3IgY292ZW5hbnQgbm90IHRvCnN1ZSBmb3IgcGF0ZW50IGluZnJpbmdlbWVudCkuICBUbyAiZ3JhbnQiIHN1Y2ggYSBwYXRlbnQgbGljZW5zZSB0byBhCnBhcnR5IG1lYW5zIHRvIG1ha2Ugc3VjaCBhbiBhZ3JlZW1lbnQgb3IgY29tbWl0bWVudCBub3QgdG8gZW5mb3JjZSBhCnBhdGVudCBhZ2FpbnN0IHRoZSBwYXJ0eS4KCiAgSWYgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywga25vd2luZ2x5IHJlbHlpbmcgb24gYSBwYXRlbnQgbGljZW5zZSwKYW5kIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBpcyBub3QgYXZhaWxhYmxlIGZvciBhbnlvbmUKdG8gY29weSwgZnJlZSBvZiBjaGFyZ2UgYW5kIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UsIHRocm91Z2ggYQpwdWJsaWNseSBhdmFpbGFibGUgbmV0d29yayBzZXJ2ZXIgb3Igb3RoZXIgcmVhZGlseSBhY2Nlc3NpYmxlIG1lYW5zLAp0aGVuIHlvdSBtdXN0IGVpdGhlciAoMSkgY2F1c2UgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIHRvIGJlIHNvCmF2YWlsYWJsZSwgb3IgKDIpIGFycmFuZ2UgdG8gZGVwcml2ZSB5b3Vyc2VsZiBvZiB0aGUgYmVuZWZpdCBvZiB0aGUKcGF0ZW50IGxpY2Vuc2UgZm9yIHRoaXMgcGFydGljdWxhciB3b3JrLCBvciAoMykgYXJyYW5nZSwgaW4gYSBtYW5uZXIKY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBMaWNlbnNlLCB0byBleHRlbmQgdGhlIHBhdGVudApsaWNlbnNlIHRvIGRvd25zdHJlYW0gcmVjaXBpZW50cy4gICJLbm93aW5nbHkgcmVseWluZyIgbWVhbnMgeW91IGhhdmUKYWN0dWFsIGtub3dsZWRnZSB0aGF0LCBidXQgZm9yIHRoZSBwYXRlbnQgbGljZW5zZSwgeW91ciBjb252ZXlpbmcgdGhlCmNvdmVyZWQgd29yayBpbiBhIGNvdW50cnksIG9yIHlvdXIgcmVjaXBpZW50J3MgdXNlIG9mIHRoZSBjb3ZlcmVkIHdvcmsKaW4gYSBjb3VudHJ5LCB3b3VsZCBpbmZyaW5nZSBvbmUgb3IgbW9yZSBpZGVudGlmaWFibGUgcGF0ZW50cyBpbiB0aGF0CmNvdW50cnkgdGhhdCB5b3UgaGF2ZSByZWFzb24gdG8gYmVsaWV2ZSBhcmUgdmFsaWQuCgogIElmLCBwdXJzdWFudCB0byBvciBpbiBjb25uZWN0aW9uIHdpdGggYSBzaW5nbGUgdHJhbnNhY3Rpb24gb3IKYXJyYW5nZW1lbnQsIHlvdSBjb252ZXksIG9yIHByb3BhZ2F0ZSBieSBwcm9jdXJpbmcgY29udmV5YW5jZSBvZiwgYQpjb3ZlcmVkIHdvcmssIGFuZCBncmFudCBhIHBhdGVudCBsaWNlbnNlIHRvIHNvbWUgb2YgdGhlIHBhcnRpZXMKcmVjZWl2aW5nIHRoZSBjb3ZlcmVkIHdvcmsgYXV0aG9yaXppbmcgdGhlbSB0byB1c2UsIHByb3BhZ2F0ZSwgbW9kaWZ5Cm9yIGNvbnZleSBhIHNwZWNpZmljIGNvcHkgb2YgdGhlIGNvdmVyZWQgd29yaywgdGhlbiB0aGUgcGF0ZW50IGxpY2Vuc2UKeW91IGdyYW50IGlzIGF1dG9tYXRpY2FsbHkgZXh0ZW5kZWQgdG8gYWxsIHJlY2lwaWVudHMgb2YgdGhlIGNvdmVyZWQKd29yayBhbmQgd29ya3MgYmFzZWQgb24gaXQuCgogIEEgcGF0ZW50IGxpY2Vuc2UgaXMgImRpc2NyaW1pbmF0b3J5IiBpZiBpdCBkb2VzIG5vdCBpbmNsdWRlIHdpdGhpbgp0aGUgc2NvcGUgb2YgaXRzIGNvdmVyYWdlLCBwcm9oaWJpdHMgdGhlIGV4ZXJjaXNlIG9mLCBvciBpcwpjb25kaXRpb25lZCBvbiB0aGUgbm9uLWV4ZXJjaXNlIG9mIG9uZSBvciBtb3JlIG9mIHRoZSByaWdodHMgdGhhdCBhcmUKc3BlY2lmaWNhbGx5IGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgWW91IG1heSBub3QgY29udmV5IGEgY292ZXJlZAp3b3JrIGlmIHlvdSBhcmUgYSBwYXJ0eSB0byBhbiBhcnJhbmdlbWVudCB3aXRoIGEgdGhpcmQgcGFydHkgdGhhdCBpcwppbiB0aGUgYnVzaW5lc3Mgb2YgZGlzdHJpYnV0aW5nIHNvZnR3YXJlLCB1bmRlciB3aGljaCB5b3UgbWFrZSBwYXltZW50CnRvIHRoZSB0aGlyZCBwYXJ0eSBiYXNlZCBvbiB0aGUgZXh0ZW50IG9mIHlvdXIgYWN0aXZpdHkgb2YgY29udmV5aW5nCnRoZSB3b3JrLCBhbmQgdW5kZXIgd2hpY2ggdGhlIHRoaXJkIHBhcnR5IGdyYW50cywgdG8gYW55IG9mIHRoZQpwYXJ0aWVzIHdobyB3b3VsZCByZWNlaXZlIHRoZSBjb3ZlcmVkIHdvcmsgZnJvbSB5b3UsIGEgZGlzY3JpbWluYXRvcnkKcGF0ZW50IGxpY2Vuc2UgKGEpIGluIGNvbm5lY3Rpb24gd2l0aCBjb3BpZXMgb2YgdGhlIGNvdmVyZWQgd29yawpjb252ZXllZCBieSB5b3UgKG9yIGNvcGllcyBtYWRlIGZyb20gdGhvc2UgY29waWVzKSwgb3IgKGIpIHByaW1hcmlseQpmb3IgYW5kIGluIGNvbm5lY3Rpb24gd2l0aCBzcGVjaWZpYyBwcm9kdWN0cyBvciBjb21waWxhdGlvbnMgdGhhdApjb250YWluIHRoZSBjb3ZlcmVkIHdvcmssIHVubGVzcyB5b3UgZW50ZXJlZCBpbnRvIHRoYXQgYXJyYW5nZW1lbnQsCm9yIHRoYXQgcGF0ZW50IGxpY2Vuc2Ugd2FzIGdyYW50ZWQsIHByaW9yIHRvIDI4IE1hcmNoIDIwMDcuCgogIE5vdGhpbmcgaW4gdGhpcyBMaWNlbnNlIHNoYWxsIGJlIGNvbnN0cnVlZCBhcyBleGNsdWRpbmcgb3IgbGltaXRpbmcKYW55IGltcGxpZWQgbGljZW5zZSBvciBvdGhlciBkZWZlbnNlcyB0byBpbmZyaW5nZW1lbnQgdGhhdCBtYXkKb3RoZXJ3aXNlIGJlIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYXBwbGljYWJsZSBwYXRlbnQgbGF3LgoKICAxMi4gTm8gU3VycmVuZGVyIG9mIE90aGVycycgRnJlZWRvbS4KCiAgSWYgY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcgpvdGhlcndpc2UpIHRoYXQgY29udHJhZGljdCB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UsIHRoZXkgZG8gbm90CmV4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90IGNvbnZleSBhCmNvdmVyZWQgd29yayBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcwpMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91IG1heQpub3QgY29udmV5IGl0IGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiB5b3UgYWdyZWUgdG8gdGVybXMgdGhhdCBvYmxpZ2F0ZSB5b3UKdG8gY29sbGVjdCBhIHJveWFsdHkgZm9yIGZ1cnRoZXIgY29udmV5aW5nIGZyb20gdGhvc2UgdG8gd2hvbSB5b3UgY29udmV5CnRoZSBQcm9ncmFtLCB0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCB0aG9zZSB0ZXJtcyBhbmQgdGhpcwpMaWNlbnNlIHdvdWxkIGJlIHRvIHJlZnJhaW4gZW50aXJlbHkgZnJvbSBjb252ZXlpbmcgdGhlIFByb2dyYW0uCgogIDEzLiBVc2Ugd2l0aCB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgoKICBOb3R3aXRoc3RhbmRpbmcgYW55IG90aGVyIHByb3Zpc2lvbiBvZiB0aGlzIExpY2Vuc2UsIHlvdSBoYXZlCnBlcm1pc3Npb24gdG8gbGluayBvciBjb21iaW5lIGFueSBjb3ZlcmVkIHdvcmsgd2l0aCBhIHdvcmsgbGljZW5zZWQKdW5kZXIgdmVyc2lvbiAzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW50byBhIHNpbmdsZQpjb21iaW5lZCB3b3JrLCBhbmQgdG8gY29udmV5IHRoZSByZXN1bHRpbmcgd29yay4gIFRoZSB0ZXJtcyBvZiB0aGlzCkxpY2Vuc2Ugd2lsbCBjb250aW51ZSB0byBhcHBseSB0byB0aGUgcGFydCB3aGljaCBpcyB0aGUgY292ZXJlZCB3b3JrLApidXQgdGhlIHNwZWNpYWwgcmVxdWlyZW1lbnRzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCnNlY3Rpb24gMTMsIGNvbmNlcm5pbmcgaW50ZXJhY3Rpb24gdGhyb3VnaCBhIG5ldHdvcmsgd2lsbCBhcHBseSB0byB0aGUKY29tYmluYXRpb24gYXMgc3VjaC4KCiAgMTQuIFJldmlzZWQgVmVyc2lvbnMgb2YgdGhpcyBMaWNlbnNlLgoKICBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucyBvZgp0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCiAgRWFjaCB2ZXJzaW9uIGlzIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuICBJZiB0aGUKUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIGNlcnRhaW4gbnVtYmVyZWQgdmVyc2lvbiBvZiB0aGUgR05VIEdlbmVyYWwKUHVibGljIExpY2Vuc2UgIm9yIGFueSBsYXRlciB2ZXJzaW9uIiBhcHBsaWVzIHRvIGl0LCB5b3UgaGF2ZSB0aGUKb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZWl0aGVyIG9mIHRoYXQgbnVtYmVyZWQKdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4gIElmIHRoZSBQcm9ncmFtIGRvZXMgbm90IHNwZWNpZnkgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkCmJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCgogIElmIHRoZSBQcm9ncmFtIHNwZWNpZmllcyB0aGF0IGEgcHJveHkgY2FuIGRlY2lkZSB3aGljaCBmdXR1cmUKdmVyc2lvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGNhbiBiZSB1c2VkLCB0aGF0IHByb3h5J3MKcHVibGljIHN0YXRlbWVudCBvZiBhY2NlcHRhbmNlIG9mIGEgdmVyc2lvbiBwZXJtYW5lbnRseSBhdXRob3JpemVzIHlvdQp0byBjaG9vc2UgdGhhdCB2ZXJzaW9uIGZvciB0aGUgUHJvZ3JhbS4KCiAgTGF0ZXIgbGljZW5zZSB2ZXJzaW9ucyBtYXkgZ2l2ZSB5b3UgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQKcGVybWlzc2lvbnMuICBIb3dldmVyLCBubyBhZGRpdGlvbmFsIG9ibGlnYXRpb25zIGFyZSBpbXBvc2VkIG9uIGFueQphdXRob3Igb3IgY29weXJpZ2h0IGhvbGRlciBhcyBhIHJlc3VsdCBvZiB5b3VyIGNob29zaW5nIHRvIGZvbGxvdyBhCmxhdGVyIHZlcnNpb24uCgogIDE1LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LgoKICBUSEVSRSBJUyBOTyBXQVJSQU5UWSBGT1IgVEhFIFBST0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZCkFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4gT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQKSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUyBQUk9WSURFIFRIRSBQUk9HUkFNICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWQpPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1NFRCBPUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUgUFJPR1JBTQpJUyBXSVRIIFlPVS4gIFNIT1VMRCBUSEUgUFJPR1JBTSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YKQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLgoKICAxNi4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuCgogIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1PRElGSUVTIEFORC9PUiBDT05WRVlTClRIRSBQUk9HUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywgSU5DTFVESU5HIEFOWQpHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBPRiBUSEUKVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFIFBST0dSQU0gKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gTE9TUyBPRgpEQVRBIE9SIERBVEEgQkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZIFlPVSBPUiBUSElSRApQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJPR1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSIFBST0dSQU1TKSwKRVZFTiBJRiBTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgpTVUNIIERBTUFHRVMuCgogIDE3LiBJbnRlcnByZXRhdGlvbiBvZiBTZWN0aW9ucyAxNSBhbmQgMTYuCgogIElmIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5IGFuZCBsaW1pdGF0aW9uIG9mIGxpYWJpbGl0eSBwcm92aWRlZAphYm92ZSBjYW5ub3QgYmUgZ2l2ZW4gbG9jYWwgbGVnYWwgZWZmZWN0IGFjY29yZGluZyB0byB0aGVpciB0ZXJtcywKcmV2aWV3aW5nIGNvdXJ0cyBzaGFsbCBhcHBseSBsb2NhbCBsYXcgdGhhdCBtb3N0IGNsb3NlbHkgYXBwcm94aW1hdGVzCmFuIGFic29sdXRlIHdhaXZlciBvZiBhbGwgY2l2aWwgbGlhYmlsaXR5IGluIGNvbm5lY3Rpb24gd2l0aCB0aGUKUHJvZ3JhbSwgdW5sZXNzIGEgd2FycmFudHkgb3IgYXNzdW1wdGlvbiBvZiBsaWFiaWxpdHkgYWNjb21wYW5pZXMgYQpjb3B5IG9mIHRoZSBQcm9ncmFtIGluIHJldHVybiBmb3IgYSBmZWUuCgogICAgICAgICAgICAgICAgICAgICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKCiAgICAgICAgICAgIEhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9ncmFtcwoKICBJZiB5b3UgZGV2ZWxvcCBhIG5ldyBwcm9ncmFtLCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2YgdGhlIGdyZWF0ZXN0CnBvc3NpYmxlIHVzZSB0byB0aGUgcHVibGljLCB0aGUgYmVzdCB3YXkgdG8gYWNoaWV2ZSB0aGlzIGlzIHRvIG1ha2UgaXQKZnJlZSBzb2Z0d2FyZSB3aGljaCBldmVyeW9uZSBjYW4gcmVkaXN0cmlidXRlIGFuZCBjaGFuZ2UgdW5kZXIgdGhlc2UgdGVybXMuCgogIFRvIGRvIHNvLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBwcm9ncmFtLiAgSXQgaXMgc2FmZXN0CnRvIGF0dGFjaCB0aGVtIHRvIHRoZSBzdGFydCBvZiBlYWNoIHNvdXJjZSBmaWxlIHRvIG1vc3QgZWZmZWN0aXZlbHkKc3RhdGUgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdAp0aGUgImNvcHlyaWdodCIgbGluZSBhbmQgYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3VuZC4KCiAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgogICAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgogICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKQWxzbyBhZGQgaW5mb3JtYXRpb24gb24gaG93IHRvIGNvbnRhY3QgeW91IGJ5IGVsZWN0cm9uaWMgYW5kIHBhcGVyIG1haWwuCgogIElmIHRoZSBwcm9ncmFtIGRvZXMgdGVybWluYWwgaW50ZXJhY3Rpb24sIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQKbm90aWNlIGxpa2UgdGhpcyB3aGVuIGl0IHN0YXJ0cyBpbiBhbiBpbnRlcmFjdGl2ZSBtb2RlOgoKICAgIDxwcm9ncmFtPiAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KICAgIFRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFk7IGZvciBkZXRhaWxzIHR5cGUgYHNob3cgdycuCiAgICBUaGlzIGlzIGZyZWUgc29mdHdhcmUsIGFuZCB5b3UgYXJlIHdlbGNvbWUgdG8gcmVkaXN0cmlidXRlIGl0CiAgICB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnM7IHR5cGUgYHNob3cgYycgZm9yIGRldGFpbHMuCgpUaGUgaHlwb3RoZXRpY2FsIGNvbW1hbmRzIGBzaG93IHcnIGFuZCBgc2hvdyBjJyBzaG91bGQgc2hvdyB0aGUgYXBwcm9wcmlhdGUKcGFydHMgb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBPZiBjb3Vyc2UsIHlvdXIgcHJvZ3JhbSdzIGNvbW1hbmRzCm1pZ2h0IGJlIGRpZmZlcmVudDsgZm9yIGEgR1VJIGludGVyZmFjZSwgeW91IHdvdWxkIHVzZSBhbiAiYWJvdXQgYm94Ii4KCiAgWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHNjaG9vbCwKaWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIHByb2dyYW0sIGlmIG5lY2Vzc2FyeS4KRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcywgYW5kIGhvdyB0byBhcHBseSBhbmQgZm9sbG93IHRoZSBHTlUgR1BMLCBzZWUKPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtCmludG8gcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdQptYXkgY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGgKdGhlIGxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLiAgQnV0IGZpcnN0LCBwbGVhc2UgcmVhZAo8aHR0cDovL3d3dy5nbnUub3JnL3BoaWxvc29waHkvd2h5LW5vdC1sZ3BsLmh0bWw+Lgo=]]></data>
	</file>
	<file>
	  <filename>/function.admin_jobstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHSm9iTWdyIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBtYW5hZ2Ugam9icyB0aGF0IHRha2UgY29uc2lkZXJhYmxlCiMgIGFtb3VudHMgb2YgdGltZSB0byBwcm9jZXNzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTWFuYWdlIEpvYnMnKSApIGV4aXQ7CgokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2Nnam9ibWdyIE9SREVSIEJZIG1vZGlmaWVkIERFU0MnOwokam9icyA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKJHVzZXJvcHMgPSBjbXNtcygpLT5HZXRVc2VyT3BlcmF0aW9ucygpOwokdXNlcmNhY2hlID0gYXJyYXkoKTsKCmlmKCAkam9icyApIHsKICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkam9icyk7ICRpKysgKSB7CiAgICBpZiggaXNzZXQoJGpvYnNbJGldWydvd25lciddKSAmJiAkam9ic1skaV1bJ293bmVyJ10gPiAwICkgewogICAgICAkdWlkID0gJGpvYnNbJGldWydvd25lciddOwogICAgICBpZiggIWlzc2V0KCR1c2VyY2FjaGVbJHVpZF0pICkgewoJJHVzZXIgPSAkdXNlcm9wcy0+TG9hZFVzZXJCeUlkKCR1aWQpOwoJaWYoIGlzX29iamVjdCgkdXNlcikgKSAkdXNlcmNhY2hlWyR1aWRdID0gJHVzZXItPnVzZXJuYW1lOwogICAgICB9CiAgICAgIGlmKCBpc3NldCgkdXNlcmNhY2hlWyR1aWRdKSApICRqb2JzWyRpXVsnb3duZXJfbmFtZSddID0gJHVzZXJjYWNoZVskdWlkXTsKICAgIH0KICAgIGlmKCBpbl9hcnJheSgkam9ic1skaV1bJ3N0YXR1cyddLGFycmF5KGNnam9ibWdyX2pvYjo6U1RBVFVTX0lOUFJPR1JFU1MsY2dqb2JtZ3Jfam9iOjpTVEFUVVNfQ09NUExFVElORykpIHx8CgkoJGpvYnNbJGldWydyZWN1cl9pbnRlcnZhbCddID4gMCAmJiAkam9ic1skaV1bJ3N0YXR1cyddICE9IGNnam9ibWdyX2pvYjo6U1RBVFVTX1BBVVNFRCkgKSB7CgogICAgICAkam9ic1skaV1bJ3BhdXNlX2xpbmsnXSA9ICR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdhZG1pbl9wYXVzZWpvYicsJycsCgkJCQkJCSAgICAgICAkdGhpcy0+TGFuZygncGF1c2UnKSwKCQkJCQkJICAgICAgICdjb250cm9sX3BhdXNlX2JsdWUucG5nJywKCQkJCQkJICAgICAgIGFycmF5KCdqb2JpZCc9PiRqb2JzWyRpXVsnaWQnXSwncGF1c2UnPT4xKSwKCQkJCQkJICAgICAgICcnLCR0aGlzLT5MYW5nKCdjb25maXJtX3BhdXNlJykpOwogICAgfQogICAgZWxzZSBpZiggJGpvYnNbJGldWydzdGF0dXMnXSA9PSBjZ2pvYm1ncl9qb2I6OlNUQVRVU19QQVVTRUQgKSB7CiAgICAgICRqb2JzWyRpXVsncGF1c2VfbGluayddID0gJHRoaXMtPkNyZWF0ZUltYWdlTGluaygkaWQsJ2FkbWluX3BhdXNlam9iJywnJywKCQkJCQkJICAgICAgICR0aGlzLT5MYW5nKCdyZXN1bWUnKSwKCQkJCQkJICAgICAgICdjb250cm9sX3BsYXlfYmx1ZS5wbmcnLAoJCQkJCQkgICAgICAgYXJyYXkoJ2pvYmlkJz0+JGpvYnNbJGldWydpZCddLCdwYXVzZSc9PjApLAoJCQkJCQkgICAgICAgJycsJHRoaXMtPkxhbmcoJ2NvbmZpcm1fdW5wYXVzZScpKTsKICAgIH0KICAgIGlmKCAhaW5fYXJyYXkoJGpvYnNbJGldWydzdGF0dXMnXSxhcnJheShjZ2pvYm1ncl9qb2I6OlNUQVRVU19JTlBST0dSRVNTLGNnam9ibWdyX2pvYjo6U1RBVFVTX0NPTVBMRVRJTkcpKSApIHsKICAgICAgJGpvYnNbJGldWydkZWxldGVfbGluayddID0gJHRoaXMtPkNyZWF0ZUltYWdlTGluaygkaWQsJ2FkbWluX2RlbGV0ZWpvYicsJycsCgkJCQkJCQkkdGhpcy0+TGFuZygnZGVsZXRlJyksCgkJCQkJCQknaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLAoJCQkJCQkJYXJyYXkoJ2pvYmlkJz0+JGpvYnNbJGldWydpZCddKSwKCQkJCQkJCScnLCR0aGlzLT5MYW5nKCdjb25maXJtX2RlbGV0ZScpKTsKICAgIH0KICB9CiAgJHNtYXJ0eS0+YXNzaWduKCdqb2JzJywkam9icyk7Cn0KCiRzbWFydHktPmFzc2lnbignbGlua19kZWxldGVmaW5pc2hlZCcsCgkJJHRoaXMtPkNyZWF0ZUltYWdlTGluaygkaWQsJ2FkbWluX2RlbGV0ZWZpbmlzaGVkJywkcmV0dXJuaWQsCgkJCQkgICAgICAgJHRoaXMtPkxhbmcoJ3Byb21wdF9kZWxldGVmaW5pc2hlZCcpLAoJCQkJICAgICAgICdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsCgkJCQkgICAgICAgYXJyYXkoKSwnJywKCQkJCSAgICAgICAkdGhpcy0+TGFuZygnY29uZmlybV9kZWxldGVmaW5pc2hlZCcpLAoJCQkJICAgICAgIGZhbHNlKSk7CgkJCQkgICAgICAgCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fam9ic3RhYi50cGwnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_notifications_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHSm9iTWdyIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBtYW5hZ2Ugam9icyB0aGF0IHRha2UgY29uc2lkZXJhYmxlCiMgIGFtb3VudHMgb2YgdGltZSB0byBwcm9jZXNzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIGV4aXQ7Cgokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRtaW5fc2V0X25vdGlmaWNhdGlvbnMnKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignbm90aWZpY2F0aW9uX2dyb3VwcycsdW5zZXJpYWxpemUoJHRoaXMtPkdldFByZWZlcmVuY2UoJ25vdGlmaWNhdGlvbl9ncm91cHMnKSkpOwokc21hcnR5LT5hc3NpZ24oJ25vdGlmaWNhdGlvbl9zdGF0dXMnLHVuc2VyaWFsaXplKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdub3RpZmljYXRpb25fc3RhdHVzJykpKTsKCiRzdGF0dXNlcyA9IGFycmF5KCk7CiRzdGF0dXNlc1tjZ2pvYm1ncl9qb2I6OlNUQVRVU19FUlJPUl0gPSAkdGhpcy0+TGFuZygnZXJyb3InKTsKJHN0YXR1c2VzW2Nnam9ibWdyX2pvYjo6U1RBVFVTX0ZJTklTSEVEXSA9ICR0aGlzLT5MYW5nKCdmaW5pc2hlZCcpOwokc3RhdHVzZXNbY2dqb2JtZ3Jfam9iOjpTVEFUVVNfQUJPUlRFRF0gPSAkdGhpcy0+TGFuZygnYWJvcnRlZCcpOwokc3RhdHVzZXNbY2dqb2JtZ3Jfam9iOjpTVEFUVVNfUEFVU0VEXSA9ICR0aGlzLT5MYW5nKCdwYXVzZWQnKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGF0dXNlcycsJHN0YXR1c2VzKTsKCiRvcHMgPSBjbXNtcygpLT5HZXRHcm91cE9wZXJhdGlvbnMoKTsKJGdyb3VwcyA9ICRvcHMtPkxvYWRHcm91cHMoKTsKJG91dCA9IGFycmF5KCk7CmZvcmVhY2goICRncm91cHMgYXMgJG9uZWdyb3VwICkgewogIGlmKCAhJG9uZWdyb3VwLT5hY3RpdmUgKSBjb250aW51ZTsKICAkb3V0WyRvbmVncm91cC0+aWRdID0gJG9uZWdyb3VwLT5uYW1lOwp9CiRzbWFydHktPmFzc2lnbignYWRtaW5ncm91cHMnLCRvdXQpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9ub3RpZmljYXRpb25zX3RhYi50cGwnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_settingstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHSm9iTWdyIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBtYW5hZ2Ugam9icyB0aGF0IHRha2UgY29uc2lkZXJhYmxlCiMgIGFtb3VudHMgb2YgdGltZSB0byBwcm9jZXNzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIGV4aXQ7CgokY29udGVudG9wcyA9ICRnQ21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwokZGZsdF9wYWdlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RmbHRfcGFnZScsJGNvbnRlbnRvcHMtPkdldERlZmF1bHRDb250ZW50KCkpOwoKJHVybCA9ICR0aGlzLT5jcmVhdGVfdXJsKCdjbnRudDAxJywncHJvY2VzcycsJGRmbHRfcGFnZSxhcnJheSgpLGZhbHNlLGZhbHNlLCR0aGlzLT5HZXRuYW1lKCkuJy9wcm9jZXNzJyk7CiRzbWFydHktPmFzc2lnbigncHJvY2Vzc191cmwnLCR1cmwpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRtaW5fc2F2ZXNldHRpbmdzJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2RmbHRwYWdlJywkY29udGVudG9wcy0+Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oJycsJGRmbHRfcGFnZSwkaWQuJ2RmbHRwYWdlJykpOwokc21hcnR5LT5hc3NpZ24oJ2Nyb25qb2JfaW50ZXJ2YWwnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjcm9uam9iX2ludGVydmFsJykpOwokc21hcnR5LT5hc3NpZ24oJ2VzY2FsYXRpb25faW50ZXJ2YWxsaW1pdCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2VzY2FsYXRpb25faW50ZXJ2YWxsaW1pdCcsMTApKTsKJHNtYXJ0eS0+YXNzaWduKCd0aW1lb3V0JywkdGhpcy0+R2V0UHJlZmVyZW5jZSgndGFza190aW1lb3V0JykpOwokc21hcnR5LT5hc3NpZ24oJ2l0ZXJhdGl2ZV9zbGFjaycsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2l0ZXJhdGl2ZV9zbGFjaycpKTsKJHNtYXJ0eS0+YXNzaWduKCdtYXhfYXV0b3Rhc2tfaXRlcmF0aW9ucycsJHRoaXMtPkdldFByZWZlcmVuY2UoJ21heF9hdXRvdGFza19pdGVyYXRpb25zJywxMCkpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9zZXR0aW5nc3RhYi50cGwnKTsKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/help.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoZXJlIGFyZSBvZnRlbiB0aW1lcyBvbiB3ZWJzaXRlcyB3aGVyZSB0YXNrcyB0aGF0IG1heSB0YWtlIGEgY29uc2lkZXJhYmxlIGFtb3VudCBvZiB0aW1lIG5lZWQgdG8gYmUgYXV0b21hdGVkLiAgRm9yIGV4YW1wbGUsIHNlbmRpbmcgb3V0IGFuIGVtYWlsIG5ld3NsZXR0ZXIsIGltcG9ydGluZyByZWNvcmRzIGZyb20gYSBDU1YgZmlsZSwgb3IgcmVxdWVzdGluZyBsYXJnZSBhbW91bnRzIG9mIGRhdGEgZnJvbSBhIHJlbW90ZSBzZXJ2aWNlLiAgIFBIUCAocGVydGljdWxhcmx5IG9uIGhvc3RlZCB3ZWJzaXRlcykgZG9lcyBub3QgbGlrZSB0byBydW4gZm9yIGxvbmcgcGVyaW9kcyBvZiB0aW1lLiAgVGhpcyBtb2R1bGUgYWxsb3dzIGEgZGV2ZWxvcGVyIHRvIGNyZWF0ZSAmcXVvdDtqb2JzJnF1b3Q7IGNvbnNpc3Rpbmcgb2Ygb25lIG9yIG1vcmUgJnF1b3Q7dGFza3MmcXVvdDsgdGhhdCBhcmUgaGFuZGxlZCBieSBhbiBodHRwIHJlcXVlc3QgdGhhdCBjYW4gYmUgaGFuZGxlZCBpbiB0aGUgYmFja2dyb3VuZCBhdXRvbWF0aWNhbGx5LjxwPgo8aDM+SG93IGRvIEkgdXNlIGl0PC9oMz4KPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgYW4gQVBJIHRoYXQgYWxsb3dzIG90aGVyIG1vZHVsZSBkZXZlbG9wZXJzIHRvIGNyZWF0ZSBqb2JzLiAgRnJvbSBhIHVzZXIgcGVyc3BlY3RpdmUgeW91IG1lcmVseSBuZWVkIHRvIGZvbGxvdyB0d28gc3RlcHM6PC9wPgo8b2w+CiAgPGxpPkluc3RhbGwgYW5kIGNvbmZpZ3VyZSB0aGUgbW9kdWxlLjwvbGk+CiAgPGxpPkNvbmZpZ3VyZSBhIHNjaGVkdWxlZCB0YXNrIHRvIGFjY2VzcyB0aGUgc3VwcGxpZWQgcHJvY2VzcyB1cmwgb24gYSByZWd1bGFyLCBmcmVxdWVudCBiYXNpcyA8ZW0+KGEgY3JvbiBqb2Igd29ya3MgZ3JlYXQgZm9yIHRoaXMpPC9lbT4KPC9vbD4KPGgzPkZlYXR1cmVzPC9oMz4KPHVsPgogIDxsaT5UaGUgQVBJIGFsbG93cyBmb3IgY3JlYXRpbmcgc3RhcnR1cCBhbmQgZmluaXNoIGpvYnMuLi48L2xpPgogIDxsaT5BbiBpdGVyYXRpdmUgdGFzayB0eXBlIHRoYXQgd2lsbCBydW4gc21hbGwgc3RlcHMgKHN1Y2ggYXMgY29udmVydGluZyBvbmUgbGluZSBvZiBhIENTViBmaWxlKSB1bnRpbCB0aGUgYWxsb3dlZCB0aW1lIGlzIG5lYXJseSBleGhhdXN0ZWQ8L2xpPgogIDxsaT5BIFNpbXBsZSB0YXNrIHR5cGUgdGhhdCBydW5zIG9uY2UgYW5kIGlzIGV4cGVjdGVkIHRvIGNvbXBsZXRlLjwvbGk+CiAgPGxpPkV4dGVuc2l2ZSBsb2dnaW5nIHRvIHRoZSBhZG1pbiBsb2c8L2xJPgogIDxsaT5Kb2JzIGFyZSBzdGFydGVkIGJ5IHRoZSBwcm9jZXNzIGFjdGlvbiAoYWNjZXNzZWQgdmlhIHRoZSBwcm9jZXNzIHVybCBwcm92aWRlZCBpbiB0aGUgYWRtaW4gaW50ZXJmYWNlLCBvbmUgam9iIHBlciByZXF1ZXN0KSB0aGVuIGNvbXBsZXRlIHVudGlsIGZpbmlzaGVkZSB2aWEgY29udGludWVkIHJlZGlyZWN0c3cgYmFjayB0byB0aGUgcHJvY2VzcyBhY3Rpb24uICBUaGVyZWZvcmUgam9icyB3aWxsIGNvbXBsZXRlIGZhc3Rlci48L2xpPgogIDxsaT5TbWFsbCBhbW91bnRzIG9mIGRhdGEgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBqb2IsIGFuZCB0byBpbmRpdmlkdWFsIHRhc2tzIHRoYXQgaXMgc2VyaWFsaXplZCBhbmQgc3RvcmVkIHdpdGggdGhlIGpvYiBpbiB0aGUgZGF0YWJhc2UuICBUaGlzIGlzIHVzZWZ1bCBmb3IgcHJvdmlkaW5nIGluZm9ybWF0aW9uIHN1Y2ggYXMgZmlsZW5hbWVzLCB0aW1lIGxpbWl0cywgbm90aWZpY2F0aW9uIGFkZHJlc3NlcyBldGMuIHRvIHRoZSB0YXNrIGZ1bmN0aW9ucy48L2xpPgo8L3VsPgo8aDM+QXV0b21hdGljIFByb2Nlc3Npbmc8L2gzPgo8cD5UaG91Z2ggdGhlIENHSm9iTWdyIG1vZHVsZSBwcm92aWRlcyBhIGxpbmsgaW4gaXRzIGFkbWluIHBhbmVsIHRvIHByb2Nlc3MgdGhlIG5leHQgam9iLCBpdCBpcyBiZXN0IGlmIHRoaXMgaXMgZG9uZSBhdXRvbWF0aWNhbGx5IG9uIGEgZnJlcXVlbnQgYmFzaXMuICBUaGVyZSBhcmUgbnVtZXJvdXMgd2F5cyB0aGF0IHRoaXMgY2FuIGJlIGRvbmUuPC9wPgo8cD5Nb3N0IHdlYmhvc3RzIHByb3ZpZGUgYSBjb250cm9sIHBhbmVsIHRoYXQgaGFzIGFuIG9wdGlvbiBmb3IgY3JlYXRpbmcgYW5kIG1hbmFnaW5nIHNjaGVkdWxlZCB0YXNrcyAoc3R1ZmYgdGhhdCB5b3Ugd2FudCB0byBkbyBvbiBhIHJlZ3VsYXIgYmFzaXMpLiAgSWYgbm90LCBhbmQgeW91IGhhdmUgYWNjZXNzIHRvIGEgdGFzayBtYW5hZ2VyIG9uIGFub3RoZXIgbWFjaGluZSB0aGF0IGlzIGludGVybmV0IGVuYWJsZWQgeW91IGNhbiBjcmVhdGUgYSBzY2hlZHVsZWQgdGFzayB0aGVyZS48L3A+CjxwPkxpbnV4L1VuaXggYmFzZWQgbWFjaGluZXMgaGF2ZSBhIGJ1aWx0IGluIG1lY2hhbmlzbSBjYWxsZWQgJnF1b3Q7Y3JvbiZxdW90OyBCZWxvdyBpcyBhIHNhbXBsZSBqb2IgdGhhdCBpcyBleGVjdXRlZCBldmVyeSAxMCBtaW51dGVzLCBhbmQgdXNlcyB3Z2V0IHRvIHRyaWdnZXIgdGhlIHByb2Nlc3NpbmcgYW5kIGRpc3JlZ2FyZCBpdHMgb3V0cHV0Ljxici8+PGJyLz48L3A+Cjxjb2RlIHN0eWxlPSJtYXJnaW4tbGVmdDogNGVtOyBtYXJnaW4tcmlnaHQ6IDRlbTsgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyBwYWRkaW5nOiAxZW07Ij4KKi8xMCAqICogKiAqIHdnZXQgLU8gL2Rldi9udWxsIGh0dHA6Ly9teXNpdGUuY29tL0NHSm9iTWdyL3Byb2Nlc3MgPi9kZXYvbnVsbCAyPiYxCjwvY29kZT4KPGgzPkFQSTwvaDM+CjxwPk51bWVyb3VzIFBIUCBjbGFzc2VzIGRlZmluZSB0aGUgQVBJIGZvciBjcmVhdGluZyBqb2JzLCB0aGVpciB0YXNrcywgYW5kIHRoZW4gc3VibWl0dGluZyB0aGVtIHRvIHRoZSBqb2IgbWFuYWdlci4gICBUaGUgY2xhc3NlcyBhcmUgZnVsbHkgZG9jdW1lbnRlZCBpbiB0aGVpciBhcHByb3ByaWF0ZSBQSFAgZmlsZXMuICBUaGUgZmlsZXMgYXJlIGFzIGZvbGxvd3M6PC9wPgo8dGFibGUgY2xhc3M9InBhZ2V0YWJsZSIgY2VsbHNwYWNpbmc9IjAiIHN0eWxlPSJtYXJnaW4tbGVmdDogMmVtOyB3aWR0aDogNzUlOyI+CiA8dGhlYWQ+CiAgPHRyPgogICAgPHRoPkNsYXNzPC90aD4KICAgIDx0aD5EZXNjcmlwdGlvbjwvdGg+CiAgICA8dGg+RmlsZW5hbWU8L3RoPgogIDwvdHI+CiA8L3RoZWFkPgogPHRib2R5PgogICA8dHI+CiAgICAgPHRkPmNnam9ibWdyX2pvYjwvdGQ+CiAgICAgPHRkPlRoZSBqb2IgY2xhc3M8L3RkPgogICAgIDx0ZD5saWIvY2xhc3MuY2dqb2JtZ3Jfam9iLnBocDwvdGQ+CiAgIDwvdHI+CiAgIDx0cj4KICAgICA8dGQ+Y2dqb2JtZ3JfdGFzazwvdGQ+CiAgICAgPHRkPkFic3RyYWN0IGJhc2UgY2xhc3M8L3RkPgogICAgIDx0ZD5saWIvY2xhc3MuY2dqb2JtZ3JfdGFzay5waHA8L3RkPgogICA8L3RyPgogICA8dHI+CiAgICAgPHRkPmNnam9ibWdyX3NpbXBsZXRhc2s8L3RkPgogICAgIDx0ZD5BIHNpbXBsZSAmcXVvdDtydW4gb25jZSZxdW90OyB0YXNrPC90ZD4KICAgICA8dGQ+bGliL2NsYXNzLmNnam9ibWdyX3NpbXBsZXRhc2sucGhwPC90ZD4KICAgPC90cj4KICAgPHRyPgogICAgIDx0ZD5jZ2pvYm1ncl9pdGVyYXRpdmV0YXNrPC90ZD4KICAgICA8dGQ+QSB0YXNrIHRoYXQgd2lsbCBydW4gc21hbGwgc3RlcHMgKGkuZTogcHJvY2VzcyBvbmUgbGluZSBvZiBhIENTViBmaWxlKSB1bnRpbCBhbGxvdHRlZCB0aW1lIGlzIGNsb3NlIHRvIGV4cGlyeS48L3RkPgogICAgIDx0ZD5saWIvY2xhc3MuY2dqb2JtZ3JfaXRlcmF0aXZldGFzay5waHA8L3RkPgogICA8L3RyPgogICA8dHI+CiAgICAgPHRkPmNnam9ibWdyX2pvYmhhbmRsZXI8L3RkPgogICAgIDx0ZD5BbiBhYnN0cmFjdCBzaW5nbGV0b24gY2xhc3MgdGhhdCBwcm92aWRlcyB0aGUgaW50ZXJmYWNlIGZvciBkaWZmZXJlbnQgam9iIGhhbmRsZXJzLjwvdGQ+CiAgICAgPHRkPmxpYi9jbGFzcy5jZ2pvYm1ncl9qb2JoYW5kbGVyLnBocDwvdGQ+CiAgIDwvdHI+CiA8L3Rib2R5Pgo8L3RhYmxlPgo8aDM+RXhhbXBsZTo8L2gzPgo8cD5UaGUgZm9sbG93aW5nIGNvZGUgaXMgYSBtYXJrZWQgdXAgY29weSBvZiB0aGUgY29kZSBmcm9tIHRoZSBDR1JhcExlYWYgbW9kdWxlIHRoYXQgc3VibWl0cyB0aGUgam9iLjwvcD4KPHByZSBzdHlsZT0ibWFyZ2luLWxlZnQ6IDRlbTsgbWFyZ2luLXJpZ2h0OiA0ZW07IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsiPjxjb2RlPi8vIENyZWF0ZSBhIG5ldyBqb2IsIGdpdmUgaXQgYSBuYW1lLCBhbmQgc3BlY2lmeSB3aG8gb3ducyBpdAokam9iID0gbmV3IGNnam9ibWdyX2pvYigkdGhpcy0+R2V0TmFtZSgpLicgYnVsayBzdWJtaXNzaW9uJyxnZXRfdXNlcmlkKEZBTFNFKSk7CgovLyBDcmVhdGUgYSBuZXcgJnF1b3Q7aXRlcmF0aXZlJnF1b3Q7IHRhc2sgdGhhdCB3aWxsIHJlcGVhdCBhIHNtYWxsIHN0ZXAgdW50aWwgdGhlcmUgaXMgbm8gdGltZSBsZWZ0CiR0YXNrID0gbmV3IGNnam9ibWdyX2l0ZXJhdGl2ZXRhc2soJ3Byb2Nlc3MgZW1haWwgYWRkcmVzcycpOwoKLy8gU3BlY2lmeSB3aGljaCBmdW5jdGlvbiB0aGlzIHRhc2sgd2lsbCBjYWxsIHRvIGFjdHVhbGx5IGRvIHRoZSB3b3JrCiR0YXNrLT5zZXRfZnVuY3Rpb24oYXJyYXkoJ2NncmFwbGVhZl90YXNrJywncHJvY2Vzc190YXNrJykpOwoKLy8gUHJvdmlkZSBzb21lIGRhdGEgdG8gdGhlIHRhc2sKJHRhc2stPnNldF9wZXJzaXN0ZW50X2RhdGEoJ2lucHV0X2ZpbGUnLCRpbmZpbGUpOwokdGFzay0+c2V0X3BlcnNpc3RlbnRfZGF0YSgnb3V0cHV0X2ZpbGUnLCRvdXRmaWxlKTsKJHRhc2stPnNldF9wZXJzaXN0ZW50X2RhdGEoJ2xvZ2ZpbGUnLCRsb2dmaWxlKTsKJHRhc2stPnNldF9wZXJzaXN0ZW50X2RhdGEoJ2NvbHVtbicsJGNvbHVtbik7CiR0YXNrLT5zZXRfcGVyc2lzdGVudF9kYXRhKCdkZWxpbWV0ZXInLCRkZWxpbWl0ZXIpOwoKLy8gQWRkIHRoZSB0YXNrIHRvIHRoZSBqb2IKJGpvYi0+YWRkX3Rhc2soJHRhc2spOwoKLy8gQ3JlYXRlIGFub3RoZXIgdGFzay4uLiBhIHNpbXBsZSBydW4tb25jZSB0YXNrCiR0YXNrID0gbmV3IGNnam9ibWdyX3NpbXBsZXRhc2soJ3NlbmQgcmVzdWx0Jyk7CiR0YXNrLT5zZXRfZnVuY3Rpb24oYXJyYXkoJ2NncmFwbGVhZl90YXNrJywnbm90aWZ5JykpOwoKLy8gQWRkIHNvbWUgZGF0YSBpbnRvIHRoaXMgdGFzawokdGFzay0+c2V0X3BlcnNpc3RlbnRfZGF0YSgnaW5wdXRfZmlsZScsJGluZmlsZSk7CiR0YXNrLT5zZXRfcGVyc2lzdGVudF9kYXRhKCdvdXRwdXRfZmlsZScsJG91dGZpbGUpOwokdGFzay0+c2V0X3BlcnNpc3RlbnRfZGF0YSgnbG9nZmlsZScsJGxvZ2ZpbGUpOwokdGFzay0+c2V0X3BlcnNpc3RlbnRfZGF0YSgnZGVzdF9lbWFpbCcsJGVtYWlsKTsKCi8vIEFkZCB0aGUgdGFzayB0byB0aGUgam9iCiRqb2ItPmFkZF90YXNrKCR0YXNrKTsKCi8vIFNhdmUgdGhlIGpvYiBpbnRvIHRoZSBkYXRhYmFzZS4uLiBpdCB3aWxsIHJ1biBhdXRvbWF0aWNhbGx5IHRoZSBuZXh0IHRpbWUgdGhlIHByb2Nlc2luZyB1cmwgaXMgYWNjZXNzZWQuCiRqb2ItPnNhdmUoKTsKPC9jb2RlPjwvcHJlPjxici8+CjxoND5UYXNrIGZ1bmN0aW9uczo8L2g0Pgo8cD5UYXNrIGZ1bmN0aW9ucyBtYXkgYmUgc2ltcGxlIFBIUCBmdW5jdGlvbnMsIG9yIHN0YXRpYyBtZW1iZXJzIG9mIGEgcGhwIGNsYXNzLiAgVGhleSBhY2NlcHQgYSBjZ2pvYm1ncl90YXNrIHJlZmVyZW5jZSBhcyB0aGVpciBzaW5nbGUgcGFyYW1ldGVyLiAgVGhleSBhcmUgZXhwZWN0ZWQgdG8gcmV0dXJuIGEgY2dqb2JtZ3JfdGFzayBzdGF0dXMuICBpLmU6PC9wPgo8cHJlIHN0eWxlPSJtYXJnaW4tbGVmdDogNGVtOyBtYXJnaW4tcmlnaHQ6IDRlbTsgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7IGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyI+PGNvZGU+CmNsYXNzIGNncmFwbGVhZl90YXNrCnsKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIG5vdGlmeShjZ2pvYm1ncl90YXNrJiAkdGFzaykKICB7CiAgICAkZGVzdF9lbWFpbCA9ICR0YXNrLT5nZXRfcGVyc2lzdGVudF9kYXRhKCdkZXN0X2VtYWlsJyk7CiAgICAkb3V0ZmlsZSA9ICR0YXNrLT5nZXRfcGVyc2lzdGVudF9kYXRhKCdvdXRwdXRfZmlsZScpOwoKICAgIGlmKCAhJGRlc3RfZW1haWwgKQogICAgICB7CglhdWRpdCgnJywnY2dyYXBsZWFmX3Rhc2snLCdObyBkZXN0aW5hdGlvbiBlbWFpbCBzcGVjaWZpZWQnKTsKCXJldHVybiBjZ2pvYm1ncl90YXNrOjpTVEFUVVNfRVJST1I7CiAgICAgIH0KICAgICR0b19hZGRycyA9IGNnZV9hcnJheTo6c21hcnRfZXhwbG9kZSgkZGVzdF9lbWFpbCk7CiAgICBpZiggIWlzX2FycmF5KCR0b19hZGRycykgfHwgY291bnQoJHRvX2FkZHJzKSA9PSAwICkKICAgICAgewoJYXVkaXQoJycsJ2NncmFwbGVhZl90YXNrJywnQ291bGQgbm90IGZpbmQgYSBkZXN0aW5hdGlvbiBlbWFpbCBhZGRyZXNzJyk7CglyZXR1cm4gY2dqb2JtZ3JfdGFzazo6U1RBVFVTX0VSUk9SOwogICAgICB9CgogICAgaWYoICEkb3V0ZmlsZSB8fCAhZmlsZV9leGlzdHMoJG91dGZpbGUpICkKICAgICAgewoJYXVkaXQoJycsJ2NncmFwbGVhZl90YXNrJywnQ291bGQgbm90IGZpbmQgb3V0cHV0IGZpbGUnKTsKCXJldHVybiBjZ2pvYm1ncl90YXNrOjpTVEFUVVNfRVJST1I7CiAgICAgIH0KICAgICRvdXR0eXBlID0gY2dlX3V0aWxzOjpnZXRfbWltZV90eXBlKCRvdXRmaWxlKTsKICAgICRyYXBsZWFmID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR1JhcExlYWYnKTsKICAgICRjbXNtYWlsZXIgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NNU01haWxlcicpOwogICAgJGNtc21haWxlci0+cmVzZXQoKTsKICAgICRudW1fdG8gPSAwOwogICAgZm9yZWFjaCggJHRvX2FkZHJzIGFzICRvbmUgKQogICAgICB7CglpZiggIWlzX2VtYWlsKCRvbmUpICkgY29udGludWU7CgkkbnVtX3RvKys7CgkkY21zbWFpbGVyLT5BZGRBZGRyZXNzKCRvbmUpOwogICAgICB9CiAgICAkY21zbWFpbGVyLT5TZXRTdWJqZWN0KCRyYXBsZWFmLT5MYW5nKCdidWxrZW1haWxfc3ViamVjdCcpKTsKICAgICRjbXNtYWlsZXItPkFkZEF0dGFjaG1lbnQoICRvdXRmaWxlLCAncmFwbGVhZi5jc3YnLCAnYmFzZTY0JywgJG91dHR5cGUgKTsKICAgIGlmKCAkbG9nZmlsZSAmJiBmaWxlX2V4aXN0cygkbG9nZmlsZSkgKQogICAgICB7CgkkY21zbWFpbGVyLT5BZGRBdHRhY2htZW50KCAkbG9nZmlsZSwgJ3JhcGxlYWYubG9nJywgJ2Jhc2U2NCcsIGNnZV91dGlsczo6Z2V0X21pbWVfdHlwZSgkbG9nZmlsZSkpOwogICAgICB9CiAgICAvLyBub3cgdGhlIGJvZHkuCiAgICAkYm9keSA9ICdZb3VyIENHUmFwTGVhZiBKb2IgaGFzIGNvbXBsZXRlZC4gIFRoZSBvdXRwdXQgZmlsZShzKSBhcmUgYXR0YWNoZWQgdG8gdGhpcyBlbWFpbCc7CiAgICAkY21zbWFpbGVyLT5TZXRCb2R5KCRib2R5KTsKICAgICRjbXNtYWlsZXItPlNlbmQoKTsKCiAgICBhdWRpdCgnJywnY2dyYXBsZWFmX3Rhc2snLHNwcmludGYoJ1NlbnQgZW1haWwgdG8gJWQgYWRkcmVzc2VzJyxjb3VudCgkbnVtX3RvKSkpOwogICAgcmV0dXJuIGNnam9ibWdyX3Rhc2s6OlNUQVRVU19DT01QTEVURTsKCiAgfQp9CjwvY29kZT48L3ByZT4KPGgzPkZ1dHVyZSB2ZXJzaW9uczwvaDM+Cjx1bD4KICA8bGk+Rm9yZWdyb3VuZCBqb2JzIC0gVGhlIGFiaWxpdHkgdG8gcHJvY2VzcyB0aGUgam9iIGluIHRoZSBmb3JlZ3JvdW5kIHdpdGggYSBwcm9ncmVzcyBiYXIgYW5kIGZlZWRiYWNrLjwvbGk+CiAgPGxpPk1vcmUgdGFzayB0eXBlczwvbGk+CiAgPGxpPkJldHRlciByZXBvcnRpbmcgLSBwZXJoYXBzIHNvbWUgZW1haWwgbm90aWZpY2F0aW9uIG9uIGZhaWxlZCBqb2JzLCBldGMuPC9saT4KICA8bGk+SW1wcm92ZWQgYWRtaW4gaW50ZXJmYWNlIC0gVGhlIGFiaWxpdHkgdG8gcmVzdW1lIGEgZmFpbGVkIGpvYiwgc3VzcGVuZCBqb2JzIGZvciBsYXRlci4uLjwvbGk+CiAgPGxpPgo8L3VsPgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQgb3IgYnV5IGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHZpc2l0IGNhbGd1eVwncwptb2R1bGUgaG9tZXBhZ2UgYXQgPGEgaHJlZj0iaHR0cDovL2NhbGd1eTEwMDAuY29tIj5jYWxndXkxMDAwLmNvbTwvYT4uPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPgo8bGk+VGhlIGF1dGhvciwgY2FsZ3V5MTAwMCwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LjwvbGk+ICAKPC91bD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAxMSwgUm9iZXJ0IENhbXBiZWwgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPiZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+CjxwPkhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAphcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwpNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQpGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQpPciByZWFkIGl0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+b25saW5lPC9hPjwvcD4K]]></data>
	</file>
	<file>
	  <filename>/icons/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/icons/control_end_blue.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJzSURBVDjLpZNLbxJRFMf7AfwEfA5YunTDTnwk3RlfMWFj4qKpKyfV2EVjhMwAUUyb1gYqCdWgQmqkRToFaRoLBcoUEGiB8hoQpgzPcpxzgREfO2/y39yc/++87p0CgKlJXTKCQpJKklrS9Ejq0Z3iz/hJ4wVJyofrda1954Tx78fZg8ghHwpH+e29GPvGk2JmbFUtxmDsb4CR+aLVm6dCh0muUKmDIHahdz4gajQ7kCtWwbcX5hY3khTGjiFjgBLN4dh3odXuAR6x04eq0AVe0lm7T+4EsQPbgaBgdh4hREkA2BeWjZnHZsduCYo/OlCoDZWvtSFXbcuQjU0fd3+1gO0oEKCys8cMlo2nXO/A1SdeeBcoymbNnAfuGiOkGjyx1CnQNj+DXgSofd+OWOwZS0XTlcdeSR5Y9xchy7ckwBYBVBpdqDd7UKqJsLT2nkUvAqaDBxEeh4UBCMCMqOvzfmCcGdBQW3DHECbVnVRa0Omdw6pljUcvAeyHwgSAAdgrmq893SGZDa5juPzIDbeZISBTbklVdGFp+bUMUH/ZjbI1oQ0NsUcyELOUFStKFUUJ8JkAcLC4mXi2BrTZIregsrgTTCZXgcEASAYN5SbmZEEkQvNNOkza6/YHsPk1CpTpozxExQNrWev2Bji+3pI3gcbEaRPi+aa8TjQnpOz6FyvcLVN8uMbxQ6LfhijHJ69QqJ6RSmpnPVJNuiSS9aE5nq2CzmwVZmnnr4c0+ZQXLAFqxebg/MEEZAp1MhPsOZrmweUNwQK9yM3oP/z9lCc/071Xae3cSxfzzLjM0gYT/1zP8PM6MzurszM3mNi/P9P/fOefb4UIeuRftTUAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/icons/control_pause_blue.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJjSURBVDjLpZNLbxJhFIb7A/wF/A5YunTDzuqmO+PdsDFx0dSVpJq4aIyQmUIU06a1gUqCJlXb1Ehb6QhiGgsdKFNAwAIOhWEcBobLUI5zPpgRLzsneRfz5bzPec93mQCAiXGdc4FJk0WTVdPUSNbRmunP+nHjGU3muy8lW+DjMR3ZTzMHiUMhziaF3b0U82InR0/76zaswdrfACPzWV+obI8fZjm+JoGs9EA9HRA1Wl0oVeoQ3mO5hc2sHWt1iA4wo5lNfZXbHRXwU7p9qMs9EDQ1O32yJitd2I3GZM/6EULMBIBzYWzsrJurUhcqP7rAi0OVxQ6U6h0DsrkV5m6v8DiOCQGWAPONxti6+eKDENxyJw3z5OwOXHclSBr8UrnvQPkjNHoRYA1/OWJwZoyKpgv3EZAgXYtCWwNsE0Ct0QOppcKJqMDi6msGvQiYih0kBNwsLEAAdryhAY5rbaJJ+zZcm2dJOvzvqqew4l0V0EsA+3GWALAAu+qRsbhQbcP5e0G4Sg8B+C+1erC49NwAWD98TjKi3IGGog47ksgs5E8UyFUUDfCeAHBj8WTSRREoj9cYweINZuhCqQaDAZAOGBeV5RUiNF+mWDJerz+ArU9JsLvfGptouuOr2oKhKCdIbeMkdKXLLeM40ZzRujufLHNX3OnhMeoXiXoVt6+9C8l8vUmSiE2VpMEx8PjQnC7WweHxyTPU+q+LNH6V57xR+7J/jYvEMlDgJbInOHMyL8BGKA5z1AI37Xzz91Uef0w3n+Vts0836EeuJYaadwuPnbTw0OFhZhwB+hKd+vdj+p/n/BMZPwxzcSL1lgAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/icons/control_play_blue.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJfSURBVDjLpZNNbxJRFIb7A/wF/A5YunTDrpouujNxY8LGxEVTVyU11UVjCmEsUUyb1gYqEWuqtqmRWukUimksH6UMHwIW6FCYwWFgYBjKcc6FGam68ybvZuY87/m4544BwNiobiyCQZVJlVnV5FDm4TfDn/Gj4DVVxgdvBIvv4IwKHafp2MkpF40nuP2jJP1qL0dNeXkLxmDsFYMhfN0TKFujp1mGrQkgSl1QLvtEjZYMpQoPwaM4s7STtWKsZqIZGBGOJ7+L7Y4CeCS5B7zYBU5Vs9Mj30RJhv1wRHRtpdDESAywLywbM2twVZCh8lOGt+EKsHUZyvUOlPiObrKzG2TurbHYjgENTD76B4Vlj8II3noYgI3DCoHPam0iPMncOTi8IQpZNDAHv6Vo7BlLRVDLenN2j+h1iCVwodoGoaXARV2C5fV3NLJoMBmJnXA4rFqjS2DMWOTaKvyZaOJRCPwxDnIViRjJyiWsudc5ZInBcTRODLB8DcZAAs8dwPiMn/zLstKwii4sr7zUDcxfviboutiBhqTovWLgxBx9Bc6ct8jNpIt1cLjcegsmtz9DFUo16PeBgPkLiZQ7PvOJwAimyy1IlVrQ7fVh9zABVucHfYiG+56qxR8IM5wwmDJmQyGsgclSkyTIqNntz1aZO8704Bq1RXJsRK2bHwMiyw8C601FrwaXCTOnizzYXB5x2rH1e5FGV3neHbauejeZUCQDBVYgM8GeE3kOtgNRmHcsMVP293+v8uhjuvsib5l9vk09WVyhHU+d3IKd4h7bXPS0zUfdppL/fkz/85x/AR14FVfMwp4lAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/icons/control_start_blue.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJiSURBVDjLpZNLbxJRFMf7AfwEfA5YunTDwsTuujO+YsLGxEVTV066cdGYQmaAKKZNawOVSE2qltRIW+kI0jQWOlCGh0Bb6FAYcBgYGKAc51wegrrzJv9k5ub8f+dx750CgKlx3bCBTpNBk1HTzEDGwZ7uz/hx4zVN+icbksnz9YwJHiXZ4+iJGOFi4v5hnH2zl2Fm3RUTxmDsBGBgvu7yF6jISZoXyhLIShs6Vz2iWkOFfLECgUOOX9pOUxg7hAwBejRz8R9ys9UBXIrahYrcBlFTvdUle7Kiwn4oLDu2EgjREwD2hWVj5qE5X2lBodoCoaoS4fdGsDiCbO8E+EdrArajQ4DBw54yWDYuzDg9vwcPbNEJ8z2Gg7Nyk8TEMxdAu4MMehFgDHxPsNgzllquIWCXALCSt5r5JnVAALlSE6RGBy6rCiyvv2fRi4CZ8HFUxGGhuSSpME3twn0rB8xWjnyjEJApKqQKtXMFa851Eb0EcBThCADNqFtPfcRg9Z5OANKCMqiiDcsrr0cA45eDGFuVW1BTOlD8iYDPxJC9VPotDQCpiwY5meR5FWiHc9SCwelLMbl8GXo9IIPD4Dt0PyMKq8K9RL4B7W4Pdr7FgLJ/HA1R99hVMvn8IV6UmiRgeHzJQoMIjfiPCVJadsuLVf6uPdk/xuFFot9FqM1Pflmo1Elgtd4h/WIbeLQITp5XwOxwyXP01u+LNH6VF5whatW9yQfDKcgJEpkJ9hzLiuD1R2CBXuJnLR/+vsrjj+nhq6xp/qWXeW5bYWmrXVy0MOIzs4OdM3uY20z834/pf57zL6w/CRKnLd7XAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/icons/control_stop_blue.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJJSURBVDjLpZNNbxJRFIb7A/wF/A5YunRDovsmRk3cmLAxcdG0uiFuXDSmkBlLFNOmtYFKgibUtqlJG6UjiGksU0oZPgQs0KEwMw4Dw8dQjnPuMCNq48abvJub87zn4547BQBTk7q2CDZdDl1OXdNjOcd3tj/jJ8Eruuxzb2RX+NMpHT/MMUfHJwKbSgv7Bxnm9YciPRMSXRiDsb8ZjOGrwWjNzZ4UOL4pg6IOQLsYEbU6fajWRYgdpLilnYIbY00T08COcCrzTen2NMCj9ocgKgMQdLV7Q3KnqH3YTyQV/1YWTezEAPvCsjGzCTfkPtR/9IGXDNWkHlTFnmWysxfj7q/x2I4NDRxh5juNZf8LPm12ifBkimdAheI0smjgjH3NMtgzlmqCNx5tGnq4Abe9LIHLjS7IHQ3OJRWW1zcYZNFgOnl0LOCwmq0BgTEjgqbQoHSuQrGuEqO+dgFrgXUBWWJwyKaIAZaPcEXoWvD1uQjc8rBQ4FUio4oBLK+8sgycH7+kGUnpQUvVrF4xK4KomwuGQf6sQ14mV5GA8gesFhyB3TxdrjZhNAKSwSzXzIpgrtaBbLUDg+EI9j6nwe3btIZoexBsuHajCU6QjSlfBmaqbZIgr2f3Pl/l7vpyxjOai0S9Zd2R91GFF41Aqa1Z1eAyYeZcRQSPP6jMUlu/FmlylecDCfdqKMLFk3ko8zKZCfacLgmwHWVhnlriZrzv/l7lyc9072XJ9fjFNv10cYWhnvmEBS8tPPH4mVlPmL5DZy7/TP/znX8C6zgR9sd1gukAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0EKJGxhbmdbJ2Fib3J0ZWQnXSA9ICdBYm9ydGVkJzsKCiNCCgoKI0MKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIGpvYj8nOwokbGFuZ1snY29uZmlybV9kZWxldGVmaW5pc2hlZCddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgYWxsIGZpbmlzaGVkIGpvYnM/JzsKJGxhbmdbJ2NvbmZpcm1fcGF1c2UnXSA9ICdBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd2FudCB0byBwYXVzZSB0aGlzIGpvYic7CiRsYW5nWydjb25maXJtX3VucGF1c2UnXSA9ICdBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd2FudCB0byB1bnBhdXNlIHRoaXMgam9iJzsKJGxhbmdbJ2NvbXBsZXRpbmcnXSA9ICdDb21wbGV0aW5nJzsKCiNECiRsYW5nWydkZWxldGUnXSA9ICdEZWxldGUnOwoKI0UKJGxhbmdbJ2Vycm9yJ10gPSAnRXJyb3InOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtcyddID0gJ0FjdGlvbiBub3QgY29tcGxldGVkLiBPbmUgb3IgbW9yZSBtaXNzaW5nIHBhcmFtcyc7CiRsYW5nWydlcnJvcl9wYXVzZV9iYWRzdGF0dXMnXSA9ICdDYW5ub250IHBhdXNlIHRoaXMgam9iIChiYWQgb3IgaW52YWxpZCBzdGF0dXMpJzsKJGxhbmdbJ2Vycm9yX3VucGF1c2VfYmFkc3RhdHVzJ10gPSAnQ2Fubm9udCB1bnBhdXNlIHRoaXMgam9iIChiYWQgb3IgaW52YWxpZCBzdGF0dXMpJzsKCiNGCiRsYW5nWydmaW5pc2hlZCddID0gJ0ZpbmlzaGVkJzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0NhbGd1eXMgSm9iIFByb2Nlc3NpbmcgTWFuYWdlcic7CgojRwoKCiNICgoKI0kKJGxhbmdbJ2luZm9fY3JvbmpvYl9pbnRlcnZhbCddID0gJ1NwZWNpZnkgaG93IG9mdGVuIChpbiBtaW51dGVzKSB0aGUgY3JvbiBqb2IgcnVucyAocmVjb21tZW5kIG5vIG1vcmUgdGhhbiAxMCBtaW51dGVzKS4gIFRoaXMgdmFsdWUgaXMgdXNlZCBpbiBwZXJmb3JtaW5nIHByaW9yaXR5IGVzY2FsbGF0aW9ucyBhbmQgb3RoZXIgdGFza3MnOwokbGFuZ1snaW5mb19kZmx0cGFnZSddID0gJ1NwZWNpZnkgdGhlIHBhZ2UgdG8gdXNlIHdoZW4gd2hlbiBoYW5kbGluZyBqb2JzLiAgSXQgaXMgaW1wb3J0YW50IHRoYXQgdGhpcyBwYWdlIG5vdCBiZSBjYWNoYWJsZS4gIFRvIGVuc3VyZSB0aGF0IGFuYWx5dGljcyBhcmUgbm90IHBvbHV0ZWQgd2UgcmVjb21tZW5kIHRoYXQgdGhlIHRlbXBsYXRlIHVzZWQgYnkgdGhpcyBwYWdlIG5vdCBoYXZlIGFueSBzdGF0aXN0Y3MgZ2F0aGVyaW5nLic7CiRsYW5nWydpbmZvX2VzY2FsYXRpb25faW50ZXJ2YWxsaW1pdCddID0gJ1NwZWNpZnkgdGhlIG51bWJlciBvZiBjcm9uam9iIGludGVydmFscyBhIGpvYiBjYW4gYmUgaWdub3JlZCBiZWZvcmUgaXRzIHByaW9yaXR5IHN0YXJ0cyB0byBlc2NhbGFhdGUuICBNYXhpbXVtIG9mIDEwMCc7CiRsYW5nWydpbmZvX21heF9hdXRvdGFza19pdGVyYXRpb25zJ10gPSAnVGhlIG1heGltdW0gbnVtYmVyIG9mIHRpbWVzIGEgdGFzayBjYW4gcmVkaXJlY3QgdG8gcHJvY2VzcyBhbm90aGVyIGNodW5rLCBiZWZvcmUgdGhlIGNyb24gc3lzdGVtIG11c3QgaGFuZGxlIGl0IGFnYWluLiAgVGhpcyB2YWx1ZSBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMjAnOwokbGFuZ1snaW5mb19ub3RpZmljYXRpb25fZ3JvdXBzJ10gPSAnU2VsZWN0IHRoZSBhZG1pbiBncm91cHMgd2hvcyBtZW1iZXJzIHNob3VsZCBiZSBub3RpZmllZCBieSBlbWFpbCB3aGVuIGEgam9ic3RhdHVzIGlzIGNoYW5nZWQnOwokbGFuZ1snaW5mb19ub3RpZmljYXRpb25fc3RhdHVzZXMnXSA9ICdTZWxlY3QgdGhlIGpvYiBzdGF0dXNlcyB0aGF0IHdpbGwgdHJpZ2dlciBlbWFpbCBub3RpZmljYXRpb24nOwokbGFuZ1snaW5mb19wcm9jZXNzdXJsJ10gPSAnVGhpcyBpcyB0aGUgVVJMIHRoYXQgd2hlbiB0cmlnZ2VyZWQgd2lsbCBiZWdpbiBwcm9jZXNzaW5nIG9mIHF1ZXVlZCBqb2JzLiAgIFlvdSBtdXN0IHVzZSBhIHJlZ3VsYXJseSBzY2hlZHVsZWQgKGNyb24pIGpvYiBhbmQgd2dldCB0aGUgc3BlY2lmaWVkIHVybCB0byByZWd1bGFybHkgcmVxdWVzdCB0aGlzIFVSTCc7CiRsYW5nWydpbmZvX3NsYWNrJ10gPSAnVXNlZCB3aXRoICZxdW90O2l0ZXJhdGl2ZSZxdW90OyB0YXNrcyB0aGlzIHZhbHVlIHNwZWNpZmllcyBhIHNsYWNrIGZhY3RvciAoYSBtdWx0aXBsZSBvZiB0aGUgYXZlcmFnZSB0aW1lIGNvbnN1bWVkIGZvciBhbiBpdGVyYXRpb24pIHRvIGFsbG93IGZvciB3aGVuIGNhbGN1bGF0aW5nIHdldGhlciBhbm90aGVyIGl0ZXJhdGlvbiBzaG91bGQgYmUgY29tcGxhdGVkLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgMS41LiAgTWluaW11bSB2YWx1ZSBpcyAwLjI1IGFuZCBNYXhpbXVtIHZhbHVlIGlzIDUuICBTZXR0aW5nIHRoaXMgdmFsdWUgdG9vIGhpZ2ggbWF5IHJlc3VsdCBpbiBhbiBlbmRsZXNzIHByb2Nlc3NpbmcgbG9vcC4gIFNldHRpbmcgdGhpcyB2YWx1ZSB0b28gbG93IG1heSByZXN1bHQgaW4gZXJyb3JzIGluIGpvYnMnOwokbGFuZ1snaW5mb190aW1lb3V0J10gPSAnVGhpcyBzZXR0aW5nIChpbiBzZWNvbmRzKSBzcGVjaWZpZXMgaG93IG11Y2ggdGltZSB0aGUgc3lzdGVtIHNob3VsZCBiZSBhbGxvd2VkIHRvIHByb2Nlc3MgYSBzaW5nbGUgdGFzayBpbiBhIGpvYi4gIFlvdSBtYXkgd2FudCB0byBleHRlbmQgdGhpcyB2YWx1ZSBmb3IgbG9uZyBqb2JzIHRoYXQgYXJlIHRpbWluZyBvdXQgYW5kIGNhdXNpbmcgZXJyb3JzIGhvd2V2ZXIgdGhhdCBtYXkgaGF2ZSBuZWdhdGl2ZSBpbXBsaWNhdGlvbnMgb24geW91ciBzZXJ2ZXIgcGVyZm9ybWFuY2UuICBFYWNoICZxdW90O3NpbXBsZSZxdW90OyBzaG91bGQgYmUgYWJsZSB0byBjb21wbGV0ZSBpdHNlbGYgd2l0aGluIHRoaXMgdGltZSBsaW1pdC4gICZxdW90O2l0ZXJhdGl2ZSZxdW90OyB0YXNrcyB3aWxsIHVzZSB0aGlzIHZhbHVlIChvciB0aGUgc3lzdGVtIHZhbHVlKSBhbmQgdGhlIGFtb3VudCBvZiBlbGFwc2VkIHRpbWUsIHdoZW4gYW5hbHl6aW5nIGlmIHByb2Nlc3NpbmcgY2FuIGNvbnRpbnVlIGJlZm9yZSByZWZyZXNoaW5nLiAgU3BlY2lmeWluZyBhIG5lZ2F0aXZlLCAwIG9yIGVtcHR5IHZhbHVlIHdpbGwgcmVzdWx0IGluIHVzaW5nIHRoZSBzeXN0ZW0gZGVmYXVsdCB0aW1lb3V0LiAgTm90ZSB5b3VyIGhvc3QgbWF5IG5vdCBhbGxvdyBhZGp1c3RpbmcgdGhpcyB2YWx1ZS4gIFlvdSBtYXkgbm90aWNlIGVycm9ycyByZWdhcmRpbmcgdGhpcyBpbiB0aGUgQ01TTVMgYWRtaW4gbG9nLic7CiRsYW5nWydpbl9wcm9ncmVzcyddID0gJ0luIFByb2dyZXNzJzsKCiNKCiRsYW5nWydqb2JzJ10gPSAnSm9icyc7CiRsYW5nWydqb2JfY3JlYXRlZCddID0gJ0NyZWF0ZWQnOwokbGFuZ1snam9iX2ZpbmlzaGVkJ10gPSAnRmluc2hlZCBBdCc7CiRsYW5nWydqb2JfaWQnXSA9ICdJZCc7CiRsYW5nWydqb2JfbG9ja2VkJ10gPSAnTG9ja2VkJzsKJGxhbmdbJ2pvYl9tb2RpZmllZCddID0gJ01vZGlmaWVkJzsKJGxhbmdbJ2pvYl9uYW1lJ10gPSAnTmFtZSc7CiRsYW5nWydqb2Jfb3duZXInXSA9ICdPd25lcic7CiRsYW5nWydqb2JfcHJpb3JpdHknXSA9ICdQcmlvcml0eSc7CiRsYW5nWydqb2JfcmVjdXJzJ10gPSAnUmVjdXJzJzsKJGxhbmdbJ2pvYl9zdGFydHMnXSA9ICdTdGFydHMgQXQnOwokbGFuZ1snam9iX3N0YXR1cyddID0gJ1N0YXR1cyc7CgoKI0sKCgojTAoKCiNNCiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ0EgbW9kdWxlIGZvciBtYW5hZ2luZyBqb2JzIHRoYXQgdGFrZSBjb25zaWRlcmFibGUgYW1vdW50cyBvZiB0aW1lJzsKJGxhbmdbJ21zZ19ub2pvYnMnXSA9ICdUaGVyZSBhcmUgbm8gam9icyBpbiB0aGUgZGF0YWJhc2UnOwokbGFuZ1snbXNnX3ByZWZzdXBkYXRlZCddID0gJ1ByZWZlcmVuY2VzIHVwZGF0ZWQnOwoKI04KJGxhbmdbJ25vdGlmaWNhdGlvbnMnXSA9ICdOb3RpZmljYXRpb25zJzsKCiNPCgoKI1AKJGxhbmdbJ3BhdXNlJ10gPSAnUGF1c2UnOwokbGFuZ1sncGF1c2VkJ10gPSAnUGF1c2VkJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnVGhlIENHSm9iTWdyIG1vZHVsZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW5zdGFsbGVkJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdUaGUgQ0dKb2JNZ3IgbW9kdWxlIGhhcyBiZWVuIHVuaW5zdGFsbGVkLiAgWW91IG1heSBub3cgc2FmZWx5IHJlbW92ZSB0aGlzIG1vZHVsZSc7CiRsYW5nWydwcm9tcHRfY3JvbmpvYl9pbnRlcnZhbCddID0gJ0ludGVydmFsIChpbiBtaW51dGVzKSBiZXR3ZWVuIGNyb24gam9icyc7CiRsYW5nWydwcm9tcHRfZGVsZXRlZmluaXNoZWQnXSA9ICdEZWxldGUgRmluaXNoZWQgSm9icyc7CiRsYW5nWydwcm9tcHRfZGZsdHBhZ2UnXSA9ICdEZWZhdWx0IFBhZ2UgZm9yIFByb2Nlc3NpbmcnOwokbGFuZ1sncHJvbXB0X2VzY2FsYXRpb25faW50ZXJ2YWxsaW1pdCddID0gJ0VzY2FsYXRpb24gSW50ZXJ2YWwgTGltaXQnOwokbGFuZ1sncHJvbXB0X21heF9hdXRvdGFza19pdGVyYXRpb25zJ10gPSAnTWF4aW11bSBudW1iZXIgb2YgcmVkaXJlY3RzJzsKJGxhbmdbJ3Byb21wdF9ub3RpZmljYXRpb25fZ3JvdXBzJ10gPSAnTm90aWZ5IG1lbWJlcnMgb2YgdGhlc2UgYWRtaW4gZ3JvdXBzJzsKJGxhbmdbJ3Byb21wdF9ub3RpZmljYXRpb25fc3RhdHVzZXMnXSA9ICdTZW5kIG5vdGlmaWNhdGlvbiBlbWFpbCB3aGVuIGEgam9iIHN0YXR1cyBzZXQgdG8gb25lIG9mIHRoZXNlJzsKJGxhbmdbJ3Byb21wdF9wcm9jZXNzdXJsJ10gPSAnSm9iIFByb2Nlc3NpbmcgVVJMJzsKJGxhbmdbJ3Byb21wdF9zbGFjayddID0gJ0l0ZXJhdGl2ZSBUYXNrIFNsYWNrJzsKJGxhbmdbJ3Byb21wdF90aW1lb3V0J10gPSAnSXRlcmF0aW9uIFRpbWVvdXQgKHNlY29uZHMpJzsKCiNRCgoKI1IKJGxhbmdbJ3Jlc3VtZSddID0gJ1Jlc3VtZSc7CgojUwokbGFuZ1snc2V0dGluZ3MnXSA9ICdTZXR0aW5ncyc7CiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOwoKI1QKCgojVQokbGFuZ1sndW5zdGFydGVkJ10gPSAnTm90IFN0YXJ0ZWQnOwoKI1YKCgojVwoKCiNYCgoKI1kKCgojWgoKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.cgjobmgr_autohandler.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHSm9iTWdyIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIG1hbmFnZSBqb2JzIHRoYXQgdGFrZSBjb25zaWRlcmFibGUKIyAgYW1vdW50cyBvZiB0aW1lIHRvIHByb2Nlc3MuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBjZ2pvYm1ncl9hdXRvaGFuZGxlciBleHRlbmRzIGNnam9ibWdyX2pvYmhhbmRsZXIKewogICAgcHVibGljIGZ1bmN0aW9uIHByb2Nlc3MoKQogICAgewogICAgICAgICRqb2IgPSYgJHRoaXMtPl9qb2I7CiAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dKb2JNZ3InKTsKCiAgICAgICAgLy8gcHJvY2VzcyBhIHRhc2sKICAgICAgICBzd2l0Y2goICRqb2ItPmdldF9zdGF0dXMoKSApIHsKICAgICAgICBjYXNlIGNnam9ibWdyX2pvYjo6U1RBVFVTX1VOU1RBUlRFRDoKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlIGlzIGEgc3RhcnQgdGFzawogICAgICAgICAgICAgICAgaWYoICgkdGFzayA9ICRqb2ItPmdldF9zdGFydF90YXNrKCkpICkgewogICAgICAgICAgICAgICAgICAgICR0YXNrLT5leGVjdXRlKCk7CiAgICAgICAgICAgICAgICAgICAgYXVkaXQoJGpvYi0+Z2V0X2lkKCksJ0NHSm9iTWdyIC0gQXV0b0pvYkhhbmRsZXIgLS0gRXhlY3V0ZWQgc3RhcnQgdGFzazogJy4kdGFzay0+Z2V0X25hbWUoKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkam9iLT5zZXRfc3RhdHVzKGNnam9ibWdyX2pvYjo6U1RBVFVTX0lOUFJPR1JFU1MpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgICAgICBhdWRpdCgkam9iLT5nZXRfaWQoKSwnQ0dKb2JNZ3InLCdFUlJPUjogJy4kZS0+Z2V0TWVzc2FnZSgpKTsKICAgICAgICAgICAgICAgICRqb2ItPnNldF9zdGF0dXMoY2dqb2JtZ3Jfam9iOjpTVEFUVVNfRVJST1IsJGUtPmdldE1lc3NhZ2UoKSk7CiAgICAgICAgICAgICAgICAkbW9kLT5TZW5kRXZlbnQoJ0pvYkVycm9yJyxhcnJheSgnam9iJz0+JGpvYiwnZXJyb3InPT4kZS0+R2V0TWVzc2FnZSgpLCdleGNlcHRpb24nPT4kZSkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlIGNnam9ibWdyX2pvYjo6U1RBVFVTX0lOUFJPR1JFU1M6CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAvLyBmaXJzdCwgZ2V0IHRoZSBjdXJyZW50IHRhc2suCiAgICAgICAgICAgICAgICAkdGFzayA9ICRqb2ItPmdldF9jdXJyZW50X3Rhc2soKTsKICAgICAgICAgICAgICAgIGlmKCAkdGFzayApIHsKICAgICAgICAgICAgICAgICAgICAkdGFzay0+ZXhlY3V0ZSgpOwogICAgICAgICAgICAgICAgICAgIGlmKCAkam9iLT5yZWN1cl9pbnRlcnZhbCA9PSAwICkgJGpvYi0+c2V0X3ByaW9yaXR5KCRqb2ItPmdldF9wcmlvcml0eSgpLTEpOwogICAgICAgICAgICAgICAgICAgIGF1ZGl0KCRqb2ItPmdldF9pZCgpLCdDR0pvYk1ncicsJ0NHSm9iTWdyIC0gQXV0b0pvYkhhbmRsZXIgLS0gRXhlY3V0ZWQgdGFzazogJy4kdGFzay0+Z2V0X25hbWUoKS4nIC0tIHRhc2sgc3RhdHVzOiAnLiR0YXNrLT5nZXRfc3RhdHVzKCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJGpvYi0+c2V0X3N0YXR1cyhjZ2pvYm1ncl9qb2I6OlNUQVRVU19DT01QTEVUSU5HKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBjYXRjaCggRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAgICAgYXVkaXQoJGpvYi0+Z2V0X2lkKCksJ0NHSm9iTWdyJywnRVJST1I6ICcuJGUtPmdldE1lc3NhZ2UoKSk7CiAgICAgICAgICAgICAgICAkam9iLT5zZXRfc3RhdHVzKGNnam9ibWdyX2pvYjo6U1RBVFVTX0VSUk9SLCRlLT5nZXRNZXNzYWdlKCkpOwogICAgICAgICAgICAgICAgJG1vZC0+U2VuZEV2ZW50KCdKb2JFcnJvcicsYXJyYXkoJ2pvYic9PiRqb2IsJ2Vycm9yJz0+JGUtPkdldE1lc3NhZ2UoKSwnZXhjZXB0aW9uJz0+JGUpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSBjZ2pvYm1ncl9qb2I6OlNUQVRVU19DT01QTEVUSU5HOgogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgYSBlbmQgdGFzawogICAgICAgICAgICAgICAgaWYoICgkdGFzayA9ICRqb2ItPmdldF9lbmRfdGFzaygpKSApIHsKICAgICAgICAgICAgICAgICAgICAkdGFzay0+ZXhlY3V0ZSgpOwogICAgICAgICAgICAgICAgICAgIGF1ZGl0KCRqb2ItPmdldF9pZCgpLCdDR0pvYk1ncicsJ0F1dG9Kb2JIYW5kbGVyIC0tIEV4ZWN1dGVkIGVuZCB0YXNrOiAnLiR0YXNrLT5nZXRfbmFtZSgpKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkam9iLT5zZXRfc3RhdHVzKGNnam9ibWdyX2pvYjo6U1RBVFVTX0ZJTklTSEVEKTsKCiAgICAgICAgICAgICAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0pvYk1ncicpOwogICAgICAgICAgICAgICAgJG1vZC0+U2VuZEV2ZW50KCdKb2JGaW5pc2hlZCcsYXJyYXkoJ2pvYic9PiR0aGlzKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2F0Y2goIEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgICAgIGF1ZGl0KCRqb2ItPmdldF9pZCgpLCdDR0pvYk1ncicsJ0VSUk9SOiAnLiRlLT5nZXRNZXNzYWdlKCkpOwogICAgICAgICAgICAgICAgJGpvYi0+c2V0X3N0YXR1cyhjZ2pvYm1ncl9qb2I6OlNUQVRVU19FUlJPUiwkZS0+Z2V0TWVzc2FnZSgpKTsKICAgICAgICAgICAgICAgICRtb2QtPlNlbmRFdmVudCgnSm9iRXJyb3InLGFycmF5KCdqb2InPT4kdGhpcywnZXJyb3InPT4kZS0+R2V0TWVzc2FnZSgpLCdleGNlcHRpb24nPT4kZSkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAvLyB0aHJvdyBhIG5ldyBleGNlcHRpb24sIHNob3VsZG4ndCBldmVyIGdldCBoZXJlLgogICAgICAgICAgICB0aHJvdyBuZXcgQ0dKb2JNZ3JFeGNlcHRpb24oJ0pvYiB3aXRoIGludmFsaWQgc3RhdHVzIGF0dGVtcHRlZCB0byBwcm9jZXNzJyk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRqb2ItPmdldF9zdGF0dXMoKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgjobmgr_iterativetask.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHSm9iTWdyIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIG1hbmFnZSBqb2JzIHRoYXQgdGFrZSBjb25zaWRlcmFibGUKIyAgYW1vdW50cyBvZiB0aW1lIHRvIHByb2Nlc3MuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpmaW5hbCBjbGFzcyBjZ2pvYm1ncl9pdGVyYXRpdmV0YXNrIGV4dGVuZHMgY2dqb2JtZ3JfdGFzawp7CiAgICAvKioKICAgICAqIFJ1biB0aGUgc3BlY2lmaWVkIGZ1bmN0aW9ucy4KICAgICAqIFRoaXMgdGFzayBjYWxscyB0aGUgc3BlY2lmaWVkIGZ1bmN0aW9uIGFuZCBpbnRlcnByZXRzIHRoZSByZXN1bHQKICAgICAqCiAgICAgKiBJZiB0aGUgc3RhdHVzIHJldHVybmVkIGZyb20gdGhlIGZ1bmN0aW9uIGlzIGludmFsaWQsIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24uCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBfcnVuX3Rhc2soKQogICAgewogICAgICAgICRmbiA9ICR0aGlzLT5nZXRfZnVuY3Rpb24oKTsKICAgICAgICBpZiggIWlzX2NhbGxhYmxlKCRmbikgKSB0aHJvdyBuZXcgQ0dKb2JNZ3JFeGNlcHRpb24oJ0ludmFsaWQgZnVuY3Rpb24gc3BlY2lmaWNhdGlvbicpOwoKICAgICAgICB0cnkgewogICAgICAgICAgICAkcmVzID0gY2FsbF91c2VyX2Z1bmNfYXJyYXkoJGZuLGFycmF5KCYkdGhpcykpOwogICAgICAgICAgICBzd2l0Y2goICRyZXMgKSB7CiAgICAgICAgICAgIGNhc2Ugc2VsZjo6U1RBVFVTX0VSUk9SOgogICAgICAgICAgICBjYXNlIHNlbGY6OlNUQVRVU19JTkNPTVBMRVRFOgogICAgICAgICAgICBjYXNlIHNlbGY6OlNUQVRVU19DT01QTEVURToKICAgICAgICAgICAgICAgICR0aGlzLT5zZXRfc3RhdHVzKCRyZXMpOwogICAgICAgICAgICAgICAgcmV0dXJuICRyZXM7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ0dKb2JNZ3JFeGNlcHRpb24oJ0ludmFsaWQgcmV0dXJuIHZhbHVlIGZyb20gdGFzayBmdW5jdGlvbicpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgICR0aGlzLT5zZXRfc3RhdHVzKHNlbGY6OlNUQVRVU19FUlJPUik7CiAgICAgICAgICAgIHJldHVybiAkcmVzOwogICAgICAgIH0KICAgIH0KCgogICAgLyoqCiAgICAgKiBQZXJmb3JtIHRoZSB0YXNrIG51bWVyb3VzIHRpbWVzIHVudGlsIGFsbG93ZWQgdGltZSBpcyBlbGFwc2VkCiAgICAgKgogICAgICogVGhpcyBtZXRob2QgYXNrcyB0aGUgam9iIG1hbmFnZXIgZm9yIHRoZSBhbW91dCBvZiB0aW1lIHRoYXQgaXQgaXMgYWxsb3dlZCB0byBydW4sIGFuZCBvdGhlciBkYXRhCiAgICAgKiB0aGVuIGV4ZWN1dGVzIHRoZSB0YXNrLCBhbmQgY2FsY3VsYXRlcyBhIHJ1bm5pbmcgYXZlcmFnZSBvZiB0aGUgYW1vdW50IG9mIHRpbWUgcmVxdWlyZWQgdG8gcGVyZm9ybQogICAgICogdGhlIHRhc2suICBUaGUgcnVubmluZyBhdmFlcmFnZSwgYW5kIGEgc2xhY2sgZmFjdG9yIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIHRoZSB0YXNrIGNhbiBiZQogICAgICogZXhlY3V0ZWQgYWdhaW4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGV4ZWN1dGUoKQogICAgewogICAgICAgICRqb2JtZ3IgPSBjZ2pvYm1ncl9qb2JoYW5kbGVyOjpnZXRfaW5zdGFuY2UoKTsKCiAgICAgICAgLy8gZ2V0IHRoZSB0b3RhbCBhbW91bnQgb2YgdGltZSB3ZSdyZSBhbGxvd2VkIHRvIHByb2Nlc3MKICAgICAgICAkb3JpZ190aW1lbGltaXQgPSBpbmlfZ2V0KCdtYXhfZXhlY3V0aW9uX3RpbWUnKTsKICAgICAgICBpZiggJG9yaWdfdGltZWxpbWl0IDw9IDAgKSAkb3JpZ190aW1lbGltaXQgPSAzMDsKICAgICAgICAkbWF4X3RpbWVsaW1pdCA9ICRqb2JtZ3ItPmdldF92YWx1ZSgnbWF4X3RpbWUnLDApOwoKICAgICAgICAkbWF4X3RpbWVsaW1pdCA9IG1heCgkb3JpZ190aW1lbGltaXQsJG1heF90aW1lbGltaXQpOwogICAgICAgIHNldF90aW1lX2xpbWl0KCRtYXhfdGltZWxpbWl0KTsKCiAgICAgICAgLy8gcmVhZHkgdG8gZ28uCiAgICAgICAgJHRvdGFsX3RpbWUgPSAwOwogICAgICAgICRhdmVyYWdlX3RpbWUgPSAwOwogICAgICAgICRudW1faXRlcmF0aW9ucyA9IDA7CiAgICAgICAgd2hpbGUoICgkdG90YWxfdGltZSArICRhdmVyYWdlX3RpbWUpIDwgKCRtYXhfdGltZWxpbWl0ICogMC45NSkgKSB7CiAgICAgICAgICAgICRzdGFydF90aW1lID0gbWljcm90aW1lKHRydWUpOwogICAgICAgICAgICAkc3RhdHVzID0gJHRoaXMtPl9ydW5fdGFzaygpOwogICAgICAgICAgICAkdGQgPSBtaWNyb3RpbWUodHJ1ZSkgLSAkc3RhcnRfdGltZTsKCiAgICAgICAgICAgICR0b3RhbF90aW1lICs9ICR0ZDsKICAgICAgICAgICAgJGF2ZXJhZ2VfdGltZSA9ICgkYXZlcmFnZV90aW1lICogJG51bV9pdGVyYXRpb25zICsgJHRkKS8oJG51bV9pdGVyYXRpb25zICsgMSk7CiAgICAgICAgICAgICRudW1faXRlcmF0aW9ucysrOwoKICAgICAgICAgICAgc3dpdGNoKCAkc3RhdHVzICkgewogICAgICAgICAgICBjYXNlIHNlbGY6OlNUQVRVU19FUlJPUjoKICAgICAgICAgICAgICAgICR0aGlzLT5zZXRfc3RhdHVzKCRzdGF0dXMpOwogICAgICAgICAgICAgICAgdGhyb3cgbmV3IENHSm9iTWdyRXhjZXB0aW9uKCR0aGlzLT5nZXRfbmFtZSgpLicgZmFpbGVkJyk7CgogICAgICAgICAgICBjYXNlIHNlbGY6OlNUQVRVU19DT01QTEVURToKICAgICAgICAgICAgICAgIC8vIGRvbmUKICAgICAgICAgICAgICAgICR0aGlzLT5zZXRfc3RhdHVzKCRzdGF0dXMpOwogICAgICAgICAgICAgICAgcmV0dXJuOwoKICAgICAgICAgICAgY2FzZSBzZWxmOjpTVEFUVVNfSU5DT01QTEVURToKICAgICAgICAgICAgICAgIC8vIGdvIGF0IGl0IGFnYWluCiAgICAgICAgICAgICAgICAkdGhpcy0+c2V0X3N0YXR1cygkc3RhdHVzKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIHRocm93IG5ldyBDR0pvYk1nckV4Y2VwdGlvbignSW52YWxpZCByZXR1cm4gdmFsdWU6ICcuJHN0YXR1cy4nIGZyb20gdGFzayBmdW5jdGlvbicpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgjobmgr_job.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHSm9iTWdyIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIG1hbmFnZSBqb2JzIHRoYXQgdGFrZSBjb25zaWRlcmFibGUKIyAgYW1vdW50cyBvZiB0aW1lIHRvIHByb2Nlc3MuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovKioKICogQSBjbGFzcyBmb3IgbWFuYWdpbmcgYSBqb2IKICovCmNsYXNzIGNnam9ibWdyX2pvYgp7CiAgICBjb25zdCBTVEFUVVNfVU5TVEFSVEVEICAgPSAndW5zdGFydGVkJzsKICAgIGNvbnN0IFNUQVRVU19JTlBST0dSRVNTICA9ICdpbl9wcm9ncmVzcyc7CiAgICBjb25zdCBTVEFUVVNfRVJST1IgICAgICAgPSAnZXJyb3InOwogICAgY29uc3QgU1RBVFVTX0NPTVBMRVRJTkcgID0gJ2NvbXBsZXRpbmcnOwogICAgY29uc3QgU1RBVFVTX0ZJTklTSEVEICAgID0gJ2ZpbmlzaGVkJzsKICAgIGNvbnN0IFNUQVRVU19BQk9SVEVEICAgICA9ICdhYm9ydGVkJzsKICAgIGNvbnN0IFNUQVRVU19QQVVTRUQgICAgICA9ICdwYXVzZWQnOwogICAgY29uc3QgUFJJT1JJVFlfSElHSCAgICAgID0gMzAwOwogICAgY29uc3QgUFJJT1JJVFlfTk9STUFMICAgID0gMjAwOwogICAgY29uc3QgUFJJT1JJVFlfTE9XICAgICAgID0gMTAwOwoKICAgIHByaXZhdGUgJF9pZDsKICAgIHByaXZhdGUgJF9vd25lcjsKICAgIHByaXZhdGUgJF9uYW1lOwogICAgcHJpdmF0ZSAkX3ByaW9yaXR5OwogICAgcHJpdmF0ZSAkX3N0YXR1czsKICAgIHByaXZhdGUgJF9wZXJzaXN0ZW50OwogICAgcHJpdmF0ZSAkX3JlY3VyX2ludGVydmFsID0gMDsKICAgIHByaXZhdGUgJF9zdGFydF9hdDsKICAgIHByaXZhdGUgJF9zdGFydGVkX2F0OwogICAgcHJpdmF0ZSAkX2ZpbmlzaGVkX2F0OwogICAgcHJpdmF0ZSAkX2xvY2tlZDsKCiAgICBwcml2YXRlICRfc3RhcnRfdGFzazsKICAgIHByaXZhdGUgJF90YXNrczsKICAgIHByaXZhdGUgJF9lbmRfdGFzazsKCgogICAgLyoqCiAgICAgKiBDb25zdHJ1Y3RvcgogICAgICoKICAgICAqIEF1dG1hdGljYWxseSBjcmVhdGVzIGEgbmV3IGpvYiB3aXRoIGEgbm9ybWFsIHByaW9yaXR5LCBhbmQgYSBzdGF0dXMgb2YgVU5TVEFSVEVECiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkbmFtZSBUaGUgbmFtZSBmb3IgdGhlIGpvYiAob3B0aW9uYWwpCiAgICAgKiBAcGFyYW0gaW50ZWdlciAkb3duZXIgVGhlIGpvYiBvd25lcidzIHVpZAogICAgICogQHBhcmFtIGludCAkcHJpb3JpdHkgVGhlIGluaXRpYWwgam9iIHByaW9yaXR5CiAgICAgKi8KICAgIGZpbmFsIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkbmFtZSA9ICcnLCRvd25lciA9IC0xLCRwcmlvcml0eSA9IHNlbGY6OlBSSU9SSVRZX05PUk1BTCkKICAgIHsKICAgICAgICAkdGhpcy0+X25hbWUgPSAkbmFtZTsKICAgICAgICAkdGhpcy0+X3ByaW9yaXR5ID0gJHByaW9yaXR5OwogICAgICAgIGlmKCAkb3duZXIgPT0gLTEgKSAkb3duZXIgPSBnZXRfdXNlcmlkKEZBTFNFKTsKICAgICAgICAkdGhpcy0+X293bmVyID0gJG93bmVyOwogICAgICAgICR0aGlzLT5zZXRfc3RhdHVzKHNlbGY6OlNUQVRVU19VTlNUQVJURUQpOwogICAgICAgICR0aGlzLT5zZXRfcGVyc2lzdGVudF92YWx1ZSgnX19PUklHX1BSSU9SSVRZX18nLCRwcmlvcml0eSk7CiAgICAgICAgJHRoaXMtPnNldF9wZXJzaXN0ZW50X3ZhbHVlKCdfX0FMTExPV19JVEVSQVRJVkVfUkVESVJFQ1RfXycsMSk7CiAgICB9CgoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKICAgIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAnaWQnOgogICAgICAgIGNhc2UgJ293bmVyJzoKICAgICAgICBjYXNlICduYW1lJzoKICAgICAgICBjYXNlICdwcmlvcml0eSc6CiAgICAgICAgY2FzZSAnc3RhdHVzJzoKICAgICAgICBjYXNlICdyZWN1cl9pbnRlcnZhbCc6CiAgICAgICAgY2FzZSAnc3RhcnRfYXQnOgogICAgICAgIGNhc2UgJ3N0YXJ0ZWRfYXQnOgogICAgICAgIGNhc2UgJ2ZpbmlzaGVkX2F0JzoKICAgICAgICAgICAgJGtleSA9ICdfJy4ka2V5OwogICAgICAgICAgICByZXR1cm4gJHRoaXMtPiRrZXk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdwZXJzaXN0ZW50JzoKICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZSgkdGhpcy0+X3BlcnNpc3RlbnQpOwoKICAgICAgICBjYXNlICd0YXNrcyc6CiAgICAgICAgICAgIHJldHVybiBzZXJpYWxpemUoJHRoaXMtPl90YXNrcyk7CgogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHRocm93IG5ldyBDR0pvYk1nckV4Y2VwdGlvbignQXR0ZW1wdCB0byByZXRyaWV2ZSBpbnZhbGlkIHByb3BlcnR5OiAnLiRrZXkuJyBmcm9tIGEgam9iJyk7CgogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiB0aGUgam9iIGlkIChpZiB0aGUgam9iIGhhcyBhbHJlYWR5IGJlZW4gc2F2ZWQpCiAgICAgKgogICAgICogQHJldHJ1biBtaXhlZCAgaW50ZWdlciBqb2IgaWQgaWYgdGhlIGpvYiBoYXMgYmVlbiBzYXZlZCwgb3IgbnVsbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2lkKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9pZDsKICAgIH0KCgogICAgLyoqCiAgICAgKiBTZXQgYW4gb3B0aW9uYWwgc3RhcnQgdGFzayAodG8gYmUgZG9uZSBiZWZvcmUgcmVndWxhciB0YXNrcykKICAgICAqCiAgICAgKiBAcGFyYW0gY2dqb2JtZ3JfdGFzayBUaGUgdGFzayBvYmplY3QKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9zdGFydF90YXNrKGNnam9ibWdyX3Rhc2smICRzdGFydF90YXNrKQogICAgewogICAgICAgICR0aGlzLT5fc3RhcnRfdGFzayA9ICRzdGFydF90YXNrOwogICAgfQoKCiAgICAvKioKICAgICAqIFJldHJpZXZlIHRoZSBzdGFydCB0YXNrIChpZiBhbnkpCiAgICAgKgogICAgICogQHJldHVybnMgY2dqb2JtZ3JfdGFzayBvYmplY3QsIG9yIG51bGwKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9zdGFydF90YXNrKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9zdGFydF90YXNrOwogICAgfQoKCiAgICAvKioKICAgICAqIFNldCBhbiBvcHRpb25hbCBlbmQgdGFzayAodG8gYmUgZG9uZSBhZnRlciByZWd1bGFyIHRhc2tzKQogICAgICoKICAgICAqIEBwYXJhbSBjZ2pvYm1ncl90YXNrIFRoZSB0YXNrIG9iamVjdAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2VuZF90YXNrKGNnam9ibWdyX3Rhc2smICRlbmRfdGFzaykKICAgIHsKICAgICAgICAkdGhpcy0+X2VuZF90YXNrID0gJGVuZF90YXNrOwogICAgfQoKCiAgICAvKioKICAgICAqIFJldHJpZXZlIHRoZSBlbmQgdGFzayAoaWYgYW55KQogICAgICoKICAgICAqIEByZXR1cm5zIGNnam9ibWdyX3Rhc2sgb2JqZWN0LCBvciBudWxsCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZW5kX3Rhc2soKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2VuZF90YXNrOwogICAgfQoKCiAgICAvKioKICAgICAqIEFkZCBhIHRhc2sgaW50byB0aGUgcHJvY2Vzc2luZyBsb29wCiAgICAgKgogICAgICoKICAgICAqIEBwYXJhbSBjZ2pvYm1ncl90YXNrIFRoZSB0YXNrIG9iamVjdAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRkX3Rhc2soY2dqb2JtZ3JfdGFzayYgJHRhc2spCiAgICB7CiAgICAgICAgaWYoICFpc19hcnJheSgkdGhpcy0+X3Rhc2tzKSApICR0aGlzLT5fdGFza3MgPSBhcnJheSgpOwogICAgICAgICR0aGlzLT5fdGFza3NbXSA9ICR0YXNrOwogICAgfQoKCiAgICAvKioKICAgICAqIEdldCB0aGUgY3VycmVudCBzdGF0dXMgb2YgdGhlIGpvYgogICAgICoKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9zdGF0dXMoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3N0YXR1czsKICAgIH0KCgogICAgLyoqCiAgICAgKiBTZXQgdGhlIGN1cnJlbnQgc3RhdHVzIG9mIHRoZSBqb2IKICAgICAqIE1vc3QgZGV2ZWxvcGVycyB3aWxsIG5vdCBuZWVkIHRoaXMgbWV0aG9kLgogICAgICoKICAgICAqIEBpbnRlcm5hbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3N0YXR1cygkc3RhdHVzLCRtZXNzYWdlID0gbnVsbCkKICAgIHsKICAgICAgICBzd2l0Y2goICRzdGF0dXMgKSB7CiAgICAgICAgY2FzZSBzZWxmOjpTVEFUVVNfRklOSVNIRUQ6CiAgICAgICAgICAgICR0aGlzLT5fZmluaXNoZWRfYXQgPSB0aW1lKCk7CiAgICAgICAgICAgIGlmKCAkdGhpcy0+X3JlY3VyX2ludGVydmFsID4gMCApIHsKICAgICAgICAgICAgICAgICR0aGlzLT5fc3RhcnRfYXQgPSAkdGhpcy0+X2ZpbmlzaGVkX2F0ICsgJHRoaXMtPl9yZWN1cl9pbnRlcnZhbCAqIDYwOwogICAgICAgICAgICAgICAgLy8gaXRzIGEgcmVjdXJyaW5nIHRhc2ssIG1hcmsgYWxsIG9mIHRoZSB0YXNrcyBhcyBpbmNvbXBsZXRlIG5vdy4KICAgICAgICAgICAgICAgIGZvcmVhY2goICR0aGlzLT5fdGFza3MgYXMgJiRvbmV0YXNrICkgewogICAgICAgICAgICAgICAgICAgICRvbmV0YXNrLT5zZXRfc3RhdHVzKGNnam9ibWdyX3Rhc2s6OlNUQVRVU19OT05FKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAkcnVuY291bnQgPSAkdGhpcy0+Z2V0X3BlcnNpc3RlbnRfdmFsdWUoJ19fUlVOQ09VTlRfXycsMCk7CiAgICAgICAgICAgICRydW5jb3VudCsrOwogICAgICAgICAgICAkdGhpcy0+c2V0X3BlcnNpc3RlbnRfdmFsdWUoJ19fUlVOQ09VTlRfXycsJHJ1bmNvdW50KTsKICAgICAgICAgICAgJHRoaXMtPl9zdGF0dXMgPSAkc3RhdHVzOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSBzZWxmOjpTVEFUVVNfVU5TVEFSVEVEOgogICAgICAgICAgICAkdGhpcy0+X3N0YXJ0ZWRfYXQgPSBudWxsOwogICAgICAgICAgICAkdGhpcy0+X2ZpbmlzaGVkX2F0ID0gbnVsbDsKICAgICAgICAgICAgJHRoaXMtPl9zdGF0dXMgPSAkc3RhdHVzOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSBzZWxmOjpTVEFUVVNfSU5QUk9HUkVTUzoKICAgICAgICAgICAgJHRoaXMtPl9zdGFydGVkX2F0ID0gdGltZSgpOwogICAgICAgICAgICAkdGhpcy0+X3N0YXR1cyA9ICRzdGF0dXM7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlIHNlbGY6OlNUQVRVU19DT01QTEVUSU5HOgogICAgICAgIGNhc2Ugc2VsZjo6U1RBVFVTX0FCT1JURUQ6CiAgICAgICAgY2FzZSBzZWxmOjpTVEFUVVNfRVJST1I6CiAgICAgICAgICAgIGlmKCAkbWVzc2FnZSApICR0aGlzLT5zZXRfcGVyc2lzdGVudF92YWx1ZSgnX19NRVNTQUdFX18nLCRtZXNzYWdlKTsKICAgICAgICAgICAgJHRoaXMtPl9maW5pc2hlZF9hdCA9IHRpbWUoKTsKICAgICAgICBjYXNlIHNlbGY6OlNUQVRVU19QQVVTRUQ6CiAgICAgICAgICAgICR0aGlzLT5fc3RhdHVzID0gJHN0YXR1czsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHRocm93IG5ldyBDR0pvYk1nckV4Y2VwdGlvbignQXR0ZW1wdCB0byBzZXQgam9iIHRvIGludmFsaWQgc3RhdHVzOiAnLiRzdGF0dXMpOwogICAgICAgIH0KICAgIH0KCgogICAgLyoqCiAgICAgKiBTZXQgdGhlIHJlY3VyIGludGVydmFsIChpbiBtaW51dGVzKS4gIG1heSBhbHNvIGFkanVzdCB0aGUgcHJpb3JpdHkuCiAgICAgKgogICAgICogQHBhcmFtIGludGVnZXIgdGhlIHN0YXJ0IGludGVydmFsLCBpbiBtaW51dGVzLCAwIGlzIGEgdmFsaWQgdmFsdWUuCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9yZWN1cl9pbnRlcnZhbCgkbikKICAgIHsKICAgICAgICAkbiA9IG1heCgwLG1pbigkbiwxMDAwMDAwMCkpOwogICAgICAgICR0aGlzLT5fcmVjdXJfaW50ZXJ2YWwgPSAkbjsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiB0aGUgcmVjdXIgaW50ZXJ2YWwgKGlmIGFueSkKICAgICAqCiAgICAgKiBAcmV0dXJuIGludGVnZXIgbWludXRlcyBiZXR3ZWVuIHJlcGV0aXRpb25zLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3JlY3VyX2ludGVydmFsKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9yZWN1cl9pbnRlcnZhbDsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgc3RhcnQgdGltZSBmb3IgdGhpcyBldmVudC4KICAgICAqCiAgICAgKiBAcGFyYW0gaW50ZWdlciBVbml4IHRpbWVzdGFtcCByZXByZXNlbnRpbmcgdGhlIG5lYXJlc3Qgc3RhcnQgdGltZS4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9zdGFydF90aW1lKCR0KQogICAgewogICAgICAgICR0ID0gbWluKHRpbWUoKSwkdCk7CiAgICAgICAgJHRoaXMtPl9zdGFydF9hdCA9ICR0OwogICAgfQoKCiAgICAvKioKICAgICAqIEdldCB0aGUgc3RhcnQgdGltZSBmb3IgdGhpcyBldmVudC4gIGlmIGFueS4KICAgICAqCiAgICAgKiBAcmV0dXJuIGludGVnZXIgVW5peCB0aW1lc3RhbXAgcmVwcmVzZW50aW5nIHRoZSBuZWFyZXN0IHN0YXJ0IHRpbWUuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfc3RhcnRfdGltZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fc3RhcnRfYXQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXRyaWV2ZSB0aGUgdGltZSB0aGF0IHRoaXMgam9iIHdhcyBzdGFydGVkIChpZiBhbnkpCiAgICAgKgogICAgICogQHJldHVybiBpbnRlZ2VyIFVuaXggdGltZXN0YW1wIHJlcHJlc2VudGluZyB0aGUgdGltZSB0aGUgam9iIHdhcyBzdGFydGVkLCBvciBudWxsLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3N0YXJ0ZWRfYXQoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3N0YXJ0ZWRfYXQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXRyaWV2ZSB0aGUgdGltZSB0aGF0IHRoaXMgam9iIHdhcyBmaW5pc2hlZCAoaWYgYW55KQogICAgICoKICAgICAqIEByZXR1cm4gaW50ZWdlciBVbml4IHRpbWVzdGFtcCByZXByZXNlbnRpbmcgdGhlIHRpbWUgdGhlIGpvYiB3YXMgc3RhcnRlZCwgb3IgbnVsbC4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9maW5pc2hlZF9hdCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZmluaXNoZWRfYXQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gdGhlIGN1cnJlbnQgam9iIHByaW9yaXR5CiAgICAgKgogICAgICogQHJldHVybnMgaW50ZWdlcgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ByaW9yaXR5KCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9wcmlvcml0eTsKICAgIH0KCgogICAgLyoqCiAgICAgKiBTZXQgdGhlIGpvYiBwcmlvcml0eQogICAgICoKICAgICAqIEBwYXJhbSBpbnRlZ2VyIHByaW9yaXR5CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfcHJpb3JpdHkoJHByaW9yaXR5KQogICAgewogICAgICAgICRwcmlvcml0eSA9IG1heCgkcHJpb3JpdHksMCk7CiAgICAgICAgJHByaW9yaXR5ID0gbWluKCRwcmlvcml0eSxzZWxmOjpQUklPUklUWV9ISUdIKTsKICAgICAgICAkdGhpcy0+X3ByaW9yaXR5ID0gJHByaW9yaXR5OwogICAgfQoKCiAgICAvKioKICAgICAqIFJldHJpZXZlIGEgcGllY2Ugb2YgZGF0YSBhdHRhY2hlZCB0byB0aGUgam9iCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyBUaGUga2V5IGZvciB0aGUgZGF0YQogICAgICogQHBhcmFtIG1peGVkIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgZGF0YQogICAgICogQHJldHVybnMgbWl4ZWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9wZXJzaXN0ZW50X3ZhbHVlKCRrZXksJGRmbHQgPSAnJykKICAgIHsKICAgICAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5fcGVyc2lzdGVudCkgKSByZXR1cm4gJGRmbHQ7CiAgICAgICAgaWYoICFpc3NldCgkdGhpcy0+X3BlcnNpc3RlbnRbJGtleV0pICkgcmV0dXJuICRkZmx0OwogICAgICAgIHJldHVybiAkdGhpcy0+X3BlcnNpc3RlbnRbJGtleV07CiAgICB9CgoKICAgIC8qKgogICAgICogQXR0YWNoIGEgcGllY2Ugb2YgZGF0YSB0byB0aGUgam9iLgogICAgICogVGhlIGRhdGEgaXMgc2VyaWFsaXplZCBhbmQgc3RvcmVkIHdpdGggdGhlIGpvYiB3aGVuIGl0IGlzIHNhdmVkLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgVGhlIGtleSBmb3IgdGhlIGRhdGEKICAgICAqIEBwYXJhbSBtaXhlZCAgVGhlIGRhdGEgdG8gc2F2ZS4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9wZXJzaXN0ZW50X3ZhbHVlKCRrZXksJHZhbCkKICAgIHsKICAgICAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5fcGVyc2lzdGVudCkgKSAkdGhpcy0+X3BlcnNpc3RlbnQgPSBhcnJheSgpOwogICAgICAgICR0aGlzLT5fcGVyc2lzdGVudFska2V5XSA9ICR2YWw7CiAgICB9CgoKICAgIC8qKgogICAgICogUmV0dXJuIHRoZSBjdXJyZW50IHRhc2sgdGhhdCB0byBwcm9jZXNzCiAgICAgKgogICAgICogQGludGVybmFsCiAgICAgKiBAcmV0dXJucyBjZ2pvYm1ncl90YXNrIGRlcml2ZWQgb2JqZWN0CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiAmZ2V0X2N1cnJlbnRfdGFzaygpCiAgICB7CiAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRoaXMtPl90YXNrcyk7ICRpKysgKSB7CiAgICAgICAgICAgIGlmKCAkdGhpcy0+X3Rhc2tzWyRpXS0+Z2V0X3N0YXR1cygpID09IGNnam9ibWdyX3Rhc2s6OlNUQVRVU19DT01QTEVURSApIGNvbnRpbnVlOwogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl90YXNrc1skaV07CiAgICAgICAgfQogICAgICAgICRyZXMgPSBudWxsOwogICAgICAgIHJldHVybiAkcmVzOwogICAgfQoKCiAgICAvKioKICAgICAqIFJldHJpZXZlIGEgZmxhZyBpbmRpY2F0aW5nIHdldGhlciBvciBub3QgdGhpcyBqb2IgY2FuIHRha2UgYWR2YW50YWdlIG9mIGl0ZXJhdGl2ZSByZWRpcmVjdHMKICAgICAqCiAgICAgKiBAcmV0dXJuIGJvb2xlYW4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9pdGVyYXRlX2ZsYWcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+Z2V0X3BlcnNpc3RlbnRfdmFsdWUoJ19fQUxMT1dfSVRFUkFUSVZFX1JFRElSRUNUX18nLDEpOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IGEgZmxhZyBpbmRpY2F0aW5nIHdldGhlciBvciBub3QgdGhpcyBqb2IgY2FuIHRha2UgYWR2YW50YWdlIG9mIGl0ZXJhdGl2ZSByZWRpcmVjdHMuCiAgICAgKgogICAgICogQHBhcmFtIGJvb2xlYW4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9pdGVyYXRlX2ZsYWcoJGZsYWcgPSBUUlVFKQogICAgewogICAgICAgICRmbGFnID0gMDsKICAgICAgICBpZiggJGZsYWcgKSAkZmxhZyA9IDE7CiAgICAgICAgJHRoaXMtPnNldF9wZXJzaXN0ZW50X3ZhbHVlKCdfX0FMTE9XX0lURVJBVElWRV9SRURJUkVDVF9fJywkZmxhZyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXRyaWV2ZSBhIG1lc3NhZ2UgYXNzb2NpYXRlZCB3aXRoIHRoaXMgam9iLgogICAgICoKICAgICAqIE1lc3NhZ2VzIG1heSBiZSBhc3NvY2lhdGVkIHdpdGggYSBqb2Igd2hlbiBpdCB0ZXJtaW5hdGVzLiAgVGhpcyBtZXRob2QgYWxsb3dzIHJldHJpZXZpbmcgdGhhdCBtZXNzYWdlLgogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nIFRoZSBtZXNzYWdlLCBpZiBhbnkgaGFzIGJlZW4gc2V0LgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X21lc3NhZ2UoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+Z2V0X3BlcnNpc3RlbnRfdmFsdWUoJ19fTUVTU0FHRV9fJyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgYSBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGpvYi4KICAgICAqCiAgICAgKiBUaGlzIG1heSBiZSB1c2VkIHdoZW4gYSBqb2IgdGVybWluYXRlcy4KICAgICAqCiAgICAgKiBAaW50ZXJuYWwKICAgICAqIEBwYXJhbSBzdHJpbmcgVGhlIG1lc3NhZ2UKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9tZXNzYWdlKCRtc2cpCiAgICB7CiAgICAgICAgJHRoaXMtPnNldF9wZXJzaXN0ZW50X3ZhbHVlKCdfX01FU1NBR0VfXycsJG1zZyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGUgYSBqb2Igb2JqZWN0IGZyb20gZGF0YWJhc2UgZGF0YQogICAgICoKICAgICAqIEBpbnRlcm5hbAogICAgICogQHJldHVybnMgY2dqb2JtZ3Jfam9iIG9iamVjdAogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uICZsb2FkX2Zyb21fZGF0YSgkcm93KQogICAgewogICAgICAgICRjbGFzc25hbWUgPSBjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcm93LCdjbGFzc25hbWUnLCdjZ2pvYm1ncl9qb2InKTsKICAgICAgICAkb2JqID0gbmV3ICRjbGFzc25hbWU7CiAgICAgICAgZm9yZWFjaCggJHJvdyBhcyAka2V5ID0+ICR2YWx1ZSApIHsKICAgICAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgICAgICBjYXNlICdjbGFzc25hbWUnOgogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICdpZCc6CiAgICAgICAgICAgIGNhc2UgJ25hbWUnOgogICAgICAgICAgICBjYXNlICdvd25lcic6CiAgICAgICAgICAgIGNhc2UgJ3ByaW9yaXR5JzoKICAgICAgICAgICAgY2FzZSAnc3RhdHVzJzoKICAgICAgICAgICAgY2FzZSAncmVjdXJfaW50ZXJ2YWwnOgogICAgICAgICAgICBjYXNlICdzdGFydF9hdCc6CiAgICAgICAgICAgIGNhc2UgJ3N0YXJ0ZWRfYXQnOgogICAgICAgICAgICBjYXNlICdmaW5pc2hlZF9hdCc6CiAgICAgICAgICAgIGNhc2UgJ2xvY2tlZCc6CiAgICAgICAgICAgICAgICAkZmxkID0gJ18nLiRrZXk7CiAgICAgICAgICAgICAgICAkb2JqLT4kZmxkID0gJHZhbHVlOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICdhc3NvYyc6CiAgICAgICAgICAgICAgICAkb2JqLT5fcGVyc2lzdGVudCA9IHVuc2VyaWFsaXplKCR2YWx1ZSk7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJ3Rhc2tzJzoKICAgICAgICAgICAgICAgICRvYmotPl90YXNrcyA9IHVuc2VyaWFsaXplKCR2YWx1ZSk7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJ2NyZWF0ZWQnOgogICAgICAgICAgICBjYXNlICdtb2RpZmllZCc6CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ0dKb2JNZ3JFeGNlcHRpb24oJ1Vua25vd24gZmllbGQgJy4ka2V5LicgaW4gcm93IGRhdGEnKTsKICAgICAgICAgICAgfQogICAgICAgIH0gLy8gZm9yZWFjaAoKICAgICAgICAkb2JqLT5fYWZ0ZXJfbG9hZCgpOwogICAgICAgIHJldHVybiAkb2JqOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBfYWZ0ZXJfbG9hZCgpCiAgICB7CiAgICAgICAgLy8gbm90aGluZyBoZXJlLgogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gJmxvYWRfYnlfaWQoJGpvYmlkKQogICAgewogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ2pvYm1nciBXSEVSRSBpZCA9ID8nOwogICAgICAgICRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJGpvYmlkKSk7CiAgICAgICAgaWYoIGlzX2FycmF5KCRyb3cpICkgcmV0dXJuIHNlbGY6OmxvYWRfZnJvbV9kYXRhKCRyb3cpOwoKICAgICAgICAkcmVzID0gbnVsbDsKICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gX2luc2VydCgpCiAgICB7CiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jZ2pvYm1ncgogICAgICAgICAgICAgIChuYW1lLG93bmVyLHByaW9yaXR5LHN0YXR1cyxhc3NvYyx0YXNrcyxyZWN1cl9pbnRlcnZhbCxzdGFydF9hdCwKICAgICAgICAgICAgICAgc3RhcnRlZF9hdCxmaW5pc2hlZF9hdCxjcmVhdGVkLG1vZGlmaWVkKQogICAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyw/LD8sPyxOT1coKSxOT1coKSkiOwogICAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkoJHRoaXMtPl9uYW1lLCR0aGlzLT5fb3duZXIsJHRoaXMtPl9wcmlvcml0eSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5fc3RhdHVzLHNlcmlhbGl6ZSgkdGhpcy0+X3BlcnNpc3RlbnQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VyaWFsaXplKCR0aGlzLT5fdGFza3MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9yZWN1cl9pbnRlcnZhbCwkdGhpcy0+X3N0YXJ0X2F0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9zdGFydGVkX2F0LCR0aGlzLT5fZmluaXNoZWRfYXQpKTsKICAgICAgICBpZiggISRkYnIgKSB0aHJvdyBuZXcgQ0dKb2JNZ3JFeGNlcHRpb24oJ0Vycm9yIEluc2VydGluZyBqb2IgcmVjb3JkICcpOwoKICAgICAgICAkdGhpcy0+X2lkID0gJGRiLT5JbnNlcnRfSWQoKTsKICAgICAgICBhdWRpdCgkdGhpcy0+X2lkLCdDR0pvYk1ncicsJ05ldyBqb2IgY3JlYXRlZDogJy4kdGhpcy0+X25hbWUuJyB3aXRoIHByaW9yaXR5ICcuJHRoaXMtPl9wcmlvcml0eSk7CgogICAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHSm9iTWdyJyk7CiAgICAgICAgJG1vZC0+U2VuZEV2ZW50KCdKb2JDcmVhdGVkJyxhcnJheSgnam9iJz0+JHRoaXMpKTsKICAgIH0KCgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIF91cGRhdGUoKQogICAgewogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2Nnam9ibWdyCiAgICAgICAgICAgICAgU0VUIG5hbWUgPSA/LCBvd25lciA9ID8sIHByaW9yaXR5ID0gPywgc3RhdHVzID0gPywKICAgICAgICAgICAgICAgICAgYXNzb2MgPSA/LCB0YXNrcyA9ID8sIHJlY3VyX2ludGVydmFsID0gPywgc3RhcnRfYXQgPSA/LAogICAgICAgICAgICAgICAgICBzdGFydGVkX2F0ID0gPywgZmluaXNoZWRfYXQgPSA/LAogICAgICAgICAgICAgICAgICBtb2RpZmllZCA9IE5PVygpCiAgICAgICAgICAgICAgV0hFUkUgaWQgPSA/IjsKICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5KCR0aGlzLT5fbmFtZSwkdGhpcy0+X293bmVyLCR0aGlzLT5fcHJpb3JpdHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X3N0YXR1cyxzZXJpYWxpemUoJHRoaXMtPl9wZXJzaXN0ZW50KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcmlhbGl6ZSgkdGhpcy0+X3Rhc2tzKSwkdGhpcy0+X3JlY3VyX2ludGVydmFsLCR0aGlzLT5fc3RhcnRfYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X3N0YXJ0ZWRfYXQsJHRoaXMtPl9maW5pc2hlZF9hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5faWQpKTsKICAgICAgICBpZiggISRkYnIgKSB0aHJvdyBuZXcgQ0dKb2JNZ3JFeGNlcHRpb24oJ0Vycm9yIFVwZGF0aW5nIGpvYiByZWNvcmQgJyk7CiAgICB9CgoKICAgIC8qKgogICAgICogRGVsZXRlIHRoZSBjdXJyZW50IG9iamVjdCBmcm9tIHRoZSBkYXRhYmFzZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlKCkKICAgIHsKICAgICAgICBpZiggJHRoaXMtPl9pZCA8PSAwICkgdGhyb3cgbmV3IENHSm9iTWdyRXhjZXB0aW9uKCdDYW5ub3QgZGVsZXRlIGEgam9iIHdpdGggbm8gaWQuJyk7CgogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY2dqb2JtZ3IgV0hFUkUgaWQgPSA/JzsKICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkdGhpcy0+X2lkKSk7CgogICAgICAgICRuYW1lID0gJHRoaXMtPm5hbWU7CiAgICAgICAgJGlkID0gJHRoaXMtPm5hbWU7CiAgICAgICAgJHRoaXMtPl9pZCA9IG51bGw7CgogICAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHSm9iTWdyJyk7CiAgICAgICAgYXVkaXQoJycsJG1vZC0+R2V0TmFtZSgpLCdEZWxldGVkIEpvYjogJy4kbmFtZSk7CiAgICAgICAgJG1vZC0+U2VuZEV2ZW50KCdKb2JEZWxldGVkJyxhcnJheSgnam9iJz0+JHRoaXMpKTsKICAgIH0KCgogICAgLyoqCiAgICAgKiBTYXZlIHRoZSBqb2JzIGN1cnJlbnQgc3RhdGUgdG8gdGhlIGRhdGFiYXNlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzYXZlKCkKICAgIHsKICAgICAgICBpZiggJHRoaXMtPl9pZCA8PSAwICkgewogICAgICAgICAgICAkdGhpcy0+X2luc2VydCgpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPl91cGRhdGUoKTsKICAgICAgICB9CgogICAgICAgIGNnam9ibWdyX3V0aWxzOjpub3RpZmllcigkdGhpcyk7CiAgICB9CgoKICAgIC8qKgogICAgICogTG9jayB0aGUgY3VycmVudCBqb2Igc28gdGhhdCBpdCBjYW5ub3QgYmUgaGFuZGxlZCBieSB0aGUgYXV0b21hdGljIHByb2Nlc3MgaGFuZGxpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGxvY2soKQogICAgewogICAgICAgIGlmKCAhJHRoaXMtPl9pZCApIHRocm93IG5ldyBDR0pvYk1nckV4Y2VwdGlvbignQXR0ZW1wdCB0byBsb2NrIGEgam9iIHRoYXQgaGFzIG5vdCBiZWVuIHNhdmVkJyk7CgogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2Nnam9ibWdyIFNFVCBsb2NrZWQgPSAxIFdIRVJFIGlkID0gPyc7CiAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHRoaXMtPl9pZCkpOwogICAgICAgIGlmKCAkZGItPkVycm9yTXNnKCkgKSB0aHJvdyBuZXcgQ0dKb2JNZ3JFeGNlcHRpb24oJ1Byb2JsZW0gbG9ja2luZyBqb2IgJy4kdGhpcy0+X2lkKTsKICAgIH0KCgogICAgLyoqCiAgICAgKiBVbmxvY2sgdGhlIGN1cnJlbnQgam9iIHRvIGFsbG93IGZvciBhdXRvbWF0aWMgcHJvY2Vzc2luZy4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHVubG9jaygpCiAgICB7CiAgICAgICAgaWYoICEkdGhpcy0+X2lkICkgdGhyb3cgbmV3IENHSm9iTWdyRXhjZXB0aW9uKCdBdHRlbXB0IHRvIHVubG9jayBhIGpvYiB0aGF0IGhhcyBub3QgYmVlbiBzYXZlZCcpOwoKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ2pvYm1nciBTRVQgbG9ja2VkID0gMCBXSEVSRSBpZCA9ID8nOwogICAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR0aGlzLT5faWQpKTsKICAgICAgICBpZiggJGRiLT5FcnJvck1zZygpICkgdGhyb3cgbmV3IENHSm9iTWdyRXhjZXB0aW9uKCdQcm9ibGVtIHVubG9ja2luZyBqb2IgJy4kdGhpcy0+X2lkKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgjobmgr_jobhandler.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHSm9iTWdyIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBtYW5hZ2Ugam9icyB0aGF0IHRha2UgY29uc2lkZXJhYmxlCiMgIGFtb3VudHMgb2YgdGltZSB0byBwcm9jZXNzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKYWJzdHJhY3QgY2xhc3MgY2dqb2JtZ3Jfam9iaGFuZGxlcgp7CiAgcHJvdGVjdGVkICRfam9iOwogIHByaXZhdGUgICAkX3ZhbHVlczsKCiAgc3RhdGljIHByaXZhdGUgJF9pbnN0YW5jZTsKCiAgLyoqCiAgICogSW5pdGlhbGl6ZSB0aGUgam9iIG1hbmFnZXIgd2l0aCBhIGpvYgogICAqCiAgICogQHBhcmFtIGNnam9ibWdyX2pvYiBUaGUgam9iIG9iamVjdC4KICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoY2dqb2JtZ3Jfam9iJiAkam9iKQogIHsKICAgIGlmKCBpc19vYmplY3Qoc2VsZjo6JF9pbnN0YW5jZSkgKQogICAgICB0aHJvdyBuZXcgQ0dKb2JNZ3JFeGNlcHRpb24oJ0F0dGVtcHQgdG8gY3JlYXRlIG11bHRpcGxlIGpvYiBtYW5hZ2VycycpOwoKICAgIHNlbGY6OiRfaW5zdGFuY2UgPSAkdGhpczsKICAgICR0aGlzLT5fam9iID0gJGpvYjsKICB9CgogIC8qKgogICAqIFByb2Nlc3MgdGhlIGpvYiB0byB0aGUgbmV4dCBzdGVwCiAgICovCiAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIHByb2Nlc3MoKTsKCiAgLyoqCiAgICogR2V0IHRoZSBqb2IgaW5zdGFuY2UKICAgKi8KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uICZnZXRfaW5zdGFuY2UoKQogIHsKICAgIHJldHVybiBzZWxmOjokX2luc3RhbmNlOwogIH0KCiAgLyoqCiAgICogQXR0YWNoIGRhdGEgdG8gdGhlIGpvYiBoYW5kbGVyLgogICAqIFRoaXMgZGF0YSBpcyBvbmx5IHZhbGlkIGZvciBvbmUgcmVxdWVzdC4gIEl0IGlzIG5vdCBzZXJpYWxpemVkIG9yIHN0b3JlZC4KICAgKgogICAqIEBwYXJhbSBzdHJpbmcgVGhlIGRhdGEga2V5CiAgICogQHBhcmFtIG1peGVkICBUaGUgdmFsdWUuCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIHNldF92YWx1ZSgka2V5LCR2YWx1ZSkKICB7CiAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5fdmFsdWVzKSApICR0aGlzLT5fdmFsdWVzID0gYXJyYXkoKTsKICAgICR0aGlzLT5fdmFsdWVzWyRrZXldID0gJHZhbHVlOwogIH0KCgogIC8qKgogICAqIFJldHJpZXZlIGRhdGEgYXR0YWNoZWQgdG8gdGhlIGpvYiBoYW5kbGVyCiAgICoKICAgKiBAcGFyYW0gc3RyaW5nIFRoZSBkYXRhIGtleQogICAqIEBwYXJhbSBtaXhlZCAgVGhlIGRlZmF1bHQgZGF0YSBpZiB0aGUgZGF0YSBoYXMgbm90IGJlZW4gc2V0CiAgICogQHJldHVybnMgbWl4ZWQKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ZhbHVlKCRrZXksJGRmbHQgPSAnJykKICB7CiAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5fdmFsdWVzKSApIHJldHVybiAkZGZsdDsKICAgIGlmKCAhaXNzZXQoJHRoaXMtPl92YWx1ZXNbJGtleV0pICkgcmV0dXJuICRkZmx0OwogICAgCiAgICByZXR1cm4gJHRoaXMtPl92YWx1ZXNbJGtleV07CiAgfQoKfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgjobmgr_module_job.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHSm9iTWdyIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIG1hbmFnZSBqb2JzIHRoYXQgdGFrZSBjb25zaWRlcmFibGUKIyAgYW1vdW50cyBvZiB0aW1lIHRvIHByb2Nlc3MuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovKioKICogQSBjbGFzcyBmb3IgbWFuYWdpbmcgYSBqb2IsIGFuZCBlbnN1cmluZyB0aGF0IHRoZSBkZXBlbmRlbnQgbW9kdWxlIGlzIGxvYWRlZAogKgogKi8KY2xhc3MgY2dqb2JtZ3JfbW9kdWxlX2pvYiBleHRlbmRzIGNnam9ibWdyX2pvYgp7CiAgICAvKioKICAgICAqIEEgY2FsbGJhY2sgbWV0aG9kIGFmdGVyIHRoZSBvYmplY3QgaXMgbG9hZGVkIGZyb20gdGhlIGRhdGFiYXNlLgogICAgICoKICAgICAqIEBpbnRlcm5hbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gX2FmdGVyX2xvYWQoKQogICAgewogICAgICAgIC8vIG1ha2Ugc3VyZSB0aGUgbW9kdWxlIGlzIGxvYWRlZAogICAgICAgICRtb2R1bGUgPSAkdGhpcy0+Z2V0X21vZHVsZSgpOwogICAgICAgICRtb2QgPSBcY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCRtb2R1bGUpOwogICAgICAgIGlmKCAhaXNfb2JqZWN0KCRtb2QpICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCdDb3VsZCBub3QgbG9hZCBtb2R1bGUgJy4kbW9kdWxlKTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgZGVwZW5kZW50IG1vZHVsZSBpbnRvIHRoZSBvYmplY3QKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRtb2R1bGUKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9tb2R1bGUoJG1vZHVsZSkKICAgIHsKICAgICAgICAkbW9kdWxlID0gdHJpbSgkbW9kdWxlKTsKICAgICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgkbW9kdWxlKTsKICAgICAgICBpZiggISRtb2QgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJ0NvdWxkIG5vdCBsb2FkIG1vZHVsZSBuYW1lZCAnLiRtb2R1bGUpOwoKICAgICAgICAkdGhpcy0+c2V0X3BlcnNpc3RlbnRfdmFsdWUoX19DTEFTU19fLCRtb2R1bGUpOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBkZXBlbmRlbnQgbW9kdWxlCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9tb2R1bGUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+Z2V0X3BlcnNpc3RlbnRfdmFsdWUoX19DTEFTU19fKTsKICAgIH0KCiAgICAvKioKICAgICAqIFNhdmUgdGhpcyBkZXJpdmVkIG9iamVjdCBpbnRvIHRoZSBkYXRhYmFzZS4KICAgICAqCiAgICAgKiBAaW50ZXJuYWwKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9pbnNlcnQoKQogICAgewogICAgICAgICR0bXAgPSAkdGhpcy0+Z2V0X3BlcnNpc3RlbnRfdmFsdWUoX19DTEFTU19fKTsKICAgICAgICBpZiggISR0bXAgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJ05vIG1vZHVsZSBzcGVjaWZpZWQgZm9yICcuX19DTEFTU19fKTsKCiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICAkY2xhc3NuYW1lID0gYmFzZW5hbWUoZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY2dqb2JtZ3IKICAgICAgICAgICAgICAobmFtZSxvd25lcixwcmlvcml0eSxzdGF0dXMsYXNzb2MsdGFza3MscmVjdXJfaW50ZXJ2YWwsc3RhcnRfYXQsCiAgICAgICAgICAgICAgIHN0YXJ0ZWRfYXQsZmluaXNoZWRfYXQsY2xhc3NuYW1lLGNyZWF0ZWQsbW9kaWZpZWQpCiAgICAgICAgICAgICAgVkFMVUVTICg/LD8sPyw/LD8sPyw/LD8sPyw/LD8sTk9XKCksTk9XKCkpIjsKICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5KCR0aGlzLT5uYW1lLCR0aGlzLT5vd25lciwkdGhpcy0+cHJpb3JpdHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+c3RhdHVzLCR0aGlzLT5wZXJzaXN0ZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnRhc2tzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnJlY3VyX2ludGVydmFsLCR0aGlzLT5zdGFydF9hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5zdGFydGVkX2F0LCR0aGlzLT5maW5pc2hlZF9hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjbGFzc25hbWUpKTsKICAgICAgICBpZiggISRkYnIgKSB0aHJvdyBuZXcgQ0dKb2JNZ3JFeGNlcHRpb24oJ0Vycm9yIEluc2VydGluZyBqb2IgcmVjb3JkICcpOwoKICAgICAgICAkdGhpcy0+X2lkID0gJGRiLT5JbnNlcnRfSWQoKTsKICAgICAgICBhdWRpdCgkdGhpcy0+X2lkLCdDR0pvYk1ncicsJ05ldyBqb2IgY3JlYXRlZDogJy4kdGhpcy0+bmFtZS4nIHdpdGggcHJpb3JpdHkgJy4kdGhpcy0+cHJpb3JpdHkpOwoKICAgICAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0pvYk1ncicpOwogICAgICAgICRtb2QtPlNlbmRFdmVudCgnSm9iQ3JlYXRlZCcsYXJyYXkoJ2pvYic9PiR0aGlzKSk7CiAgICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgjobmgr_simpletask.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHSm9iTWdyIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIG1hbmFnZSBqb2JzIHRoYXQgdGFrZSBjb25zaWRlcmFibGUKIyAgYW1vdW50cyBvZiB0aW1lIHRvIHByb2Nlc3MuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpmaW5hbCBjbGFzcyBjZ2pvYm1ncl9zaW1wbGV0YXNrIGV4dGVuZHMgY2dqb2JtZ3JfdGFzawp7CiAgLyoqCiAgICogUnVuIHRoZSBzcGVjaWZpZWQgZnVuY3Rpb25zLgogICAqIFRoaXMgdGFzayBjYWxscyB0aGUgc3BlY2lmaWVkIGZ1bmN0aW9uIGFuZCBpbnRlcnByZXRzIHRoZSByZXN1bHQKICAgKgogICAqIElmIHRoZSBzdGF0dXMgcmV0dXJuZWQgZnJvbSB0aGUgZnVuY3Rpb24gaXMgaW52YWxpZCwgYW4gZXhjZXB0aW9uIGlzIHRocm93bi4KICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gX3J1bl90YXNrKCkKICB7CiAgICAgICRmbiA9ICR0aGlzLT5nZXRfZnVuY3Rpb24oKTsKICAgICAgaWYoICFpc19jYWxsYWJsZSgkZm4pICkgdGhyb3cgbmV3IENHSm9iTWdyRXhjZXB0aW9uKCdJbnZhbGlkIGZ1bmN0aW9uIHNwZWNpZmljYXRpb24nKTsKICAgICAgLy8gdGhpcyBpcyBhIHJlZ3VsYXIgdGFzay4uLiBpdCBydW5zIG9uY2UgYW5kIHRoZW4gd2UgZ28gb24gdG8gdGhlIHRoZSBuZXh0IG9uZS4KCiAgICAgICRyZXMgPSBjYWxsX3VzZXJfZnVuY19hcnJheSgkZm4sYXJyYXkoJiR0aGlzKSk7CiAgICAgIHN3aXRjaCggJHJlcyApIHsKICAgICAgY2FzZSBzZWxmOjpTVEFUVVNfRVJST1I6CiAgICAgICAgICAkdGhpcy0+c2V0X3N0YXR1cygkcmVzKTsKICAgICAgICAgIHRocm93IG5ldyBDR0pvYk1nckV4Y2VwdGlvbignVGFzazogIicuJHRoaXMtPmdldF9uYW1lKCkuJyIgZmFpbGVkJyk7CgogICAgICBjYXNlIHNlbGY6OlNUQVRVU19DT01QTEVURToKICAgICAgY2FzZSBzZWxmOjpTVEFUVVNfSU5DT01QTEVURToKICAgICAgICAgICR0aGlzLT5zZXRfc3RhdHVzKCRyZXMpOwogICAgICAgICAgcmV0dXJuICRyZXM7CgogICAgICBkZWZhdWx0OgogICAgICAgICAgdGhyb3cgbmV3IENHSm9iTWdyRXhjZXB0aW9uKCdJbnZhbGlkIHJldHVybiB2YWx1ZSAoJy4kcmVzLicpIGZyb20gdGFzayBmdW5jdGlvbicpOwogICAgICB9CiAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgjobmgr_task.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHSm9iTWdyIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIG1hbmFnZSBqb2JzIHRoYXQgdGFrZSBjb25zaWRlcmFibGUKIyAgYW1vdW50cyBvZiB0aW1lIHRvIHByb2Nlc3MuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgphYnN0cmFjdCBjbGFzcyBjZ2pvYm1ncl90YXNrCnsKICAgIGNvbnN0IFNUQVRVU19OT05FID0gJ25vbmUnOwogICAgY29uc3QgU1RBVFVTX0VSUk9SID0gJ2Vycm9yJzsKICAgIGNvbnN0IFNUQVRVU19JTkNPTVBMRVRFID0gJ2luY29tcGxldGUnOwogICAgY29uc3QgU1RBVFVTX0NPTVBMRVRFID0gJ2NvbXBsZXRlJzsKCiAgICBwcml2YXRlICRfbmFtZTsKICAgIHByaXZhdGUgJF9wZXJzaXN0ZW50OwogICAgcHJpdmF0ZSAkX2Z1bmN0aW9uOwoKICAgIC8qKgogICAgICogQ29uc3RydWN0b3IKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nIFRoZSB0YXNrIG5hbWUKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRuYW1lID0gJycpCiAgICB7CiAgICAgICAgJHRoaXMtPnNldF9zdGF0dXMoc2VsZjo6U1RBVFVTX05PTkUpOwogICAgICAgICR0aGlzLT5fbmFtZSA9ICRuYW1lOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSB0YXNrIG5hbWUKICAgICAqCiAgICAgKiBAcmV0dXJucyBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9uYW1lOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHRoZSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgYnkgdGhlIHRhc2sgdG8gYWN0dWFsbHkgZG8gdGhlIHdvcmsKICAgICAqCiAgICAgKiBpLmU6ICAkdGFzay0+c2V0X2Z1bmN0aW9uKCdzb21lX2Z1bmN0aW9uJyk7CiAgICAgKiBpLmU6ICAkdGFzay0+c2V0X2Z1bmN0aW9uKCdzb21lX2NsYXNzOjpzb21lX2Z1bmN0aW9uJyk7IC0tIGNhbGwgYSBzdGF0aWMgbWV0aG9kCiAgICAgKiBpLmU6ICAkdGFzay0+c2V0X2Z1bmN0aW9uKGFycmF5KCdzb21lX2NsYXNzJywnc29tZV9mdW5jdGlvbicpKTsgLS0gY2FsbCBhIHN0YXRpYyBtZXRob2QKICAgICAqCiAgICAgKiBAcGFyYW0gbWl4ZWQgZm4uLi4gbWF5IGJlIGEgc3RyaW5nIGNvbnRhaW5pbmcgYSBmdW5jdGlvbiBuYW1lIChvciBzdGF0aWMgbWV0aG9kIG5hbWUpCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZnVuY3Rpb24oJGZuKQogICAgewogICAgICAgIGlmKCBpc19zdHJpbmcoJGZuKSApIHsKICAgICAgICAgICAgJHRoaXMtPl9mdW5jdGlvbiA9ICRmbjsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggaXNfYXJyYXkoJGZuKSAmJiBjb3VudCgkZm4pID09IDIgJiYgaXNfc3RyaW5nKCRmblswXSkgJiYgaXNfc3RyaW5nKCRmblsxXSkgKSB7CiAgICAgICAgICAgICR0aGlzLT5fZnVuY3Rpb24gPSAkZm47CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIHZhbHVlIHBhc3NlZCB0byBzZXRfZnVuY3Rpb24nKTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXRyaWV2ZSBkYXRhIHN0b3JlZCB3aXRoIHRoZSB0YXNrCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyB0aGUgZGF0YSBrZXkKICAgICAqIEBwYXJhbSBtaXhlZCB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGtleSBpZiBpdCBjYW5ub3QgYmUgZm91bmQKICAgICAqIEByZXR1cm5zIG1peGVkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfcGVyc2lzdGVudF9kYXRhKCRrZXksJGRmbHQgPSAnJykKICAgIHsKICAgICAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5fcGVyc2lzdGVudCkgKSByZXR1cm4gJGRmbHQ7CiAgICAgICAgaWYoICFpc3NldCgkdGhpcy0+X3BlcnNpc3RlbnRbJGtleV0pICkgcmV0dXJuICRkZmx0OwogICAgICAgIHJldHVybiAkdGhpcy0+X3BlcnNpc3RlbnRbJGtleV07CiAgICB9CgogICAgLyoqCiAgICAgKiBBc3NvY2lhdGUgZGF0YSB3aXRoIHRoZSB0YXNrLgogICAgICogVGhlIGRhdGEgaXMgc2VyaWFsaXplZCBiZWZvcmUgYmVpbmcgc2F2ZWQuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyBUaGUgZGF0YSBrZXkKICAgICAqIEBwYXJhbSBtaXhlZCAgVGhlIGRhdGEgdG8gc3RvcmUKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9wZXJzaXN0ZW50X2RhdGEoJGtleSwkdmFsdWUpCiAgICB7CiAgICAgICAgaWYoICFpc19hcnJheSgkdGhpcy0+X3BlcnNpc3RlbnQpICkgJHRoaXMtPl9wZXJzaXN0ZW50ID0gYXJyYXkoKTsKICAgICAgICAkdGhpcy0+X3BlcnNpc3RlbnRbJGtleV0gPSAkdmFsdWU7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXRyaWV2ZXMgdGhlIGZ1bmN0aW9uIHRoYXQgd2lsbCBkbyB0aGUgYWN0dWFsIHdvcmsgZm9yIHRoZSB0YXNrCiAgICAgKgogICAgICogQHJldHVybnMgbWl4ZWQKICAgICAqIEBpbnRlcm5hbAogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2Z1bmN0aW9uKCkKICAgIHsKICAgICAgICBpZiggISR0aGlzLT5fZnVuY3Rpb24gKSB0aHJvdyBuZXcgQ0dKb2JNZ3JFeGNlcHRpb24oJ05vIGZ1bmN0aW9uIGRlZmluZWQgZm9yIHRhc2snKTsKICAgICAgICByZXR1cm4gJHRoaXMtPl9mdW5jdGlvbjsKICAgIH0KCiAgICAvKioKICAgICAqIFByb3RlY3RlZCBtZXRob2QgdGhhdCBhY3R1YWxseSBjYWxscyB0aGUgcHJvY2Vzc2luZyBmdW5jdGlvbgogICAgICoKICAgICAqIEBpbnRlcm5hbAogICAgICogQHJldHVybnMgdGhlIHN0YXR1cyBvZiB0aGUgdGFzawogICAgICovCiAgICBhYnN0cmFjdCBwcm90ZWN0ZWQgZnVuY3Rpb24gX3J1bl90YXNrKCk7CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIHRhc2sgc3RhdHVzCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfc3RhdHVzKCRzdGF0dXMpCiAgICB7CiAgICAgICAgc3dpdGNoKCAkc3RhdHVzICkgewogICAgICAgIGNhc2Ugc2VsZjo6U1RBVFVTX05PTkU6CiAgICAgICAgY2FzZSBzZWxmOjpTVEFUVVNfSU5DT01QTEVURToKICAgICAgICBjYXNlIHNlbGY6OlNUQVRVU19FUlJPUjoKICAgICAgICBjYXNlIHNlbGY6OlNUQVRVU19DT01QTEVURToKICAgICAgICAgICAgJHRoaXMtPnNldF9wZXJzaXN0ZW50X2RhdGEoJ19fc3RhdHVzX18nLCRzdGF0dXMpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgQ0dKb2JNZ3JFeGNlcHRpb24oJ0Nhbm5vdCBzZXQgdGFzayBzdGF0dXMgdG86ICcuJHN0YXR1cyk7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogUmV0cmlldmUgdGhlIHRhc2sgc3RhdHVzCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfc3RhdHVzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmdldF9wZXJzaXN0ZW50X2RhdGEoJ19fc3RhdHVzX18nLHNlbGY6OlNUQVRVU19OT05FKTsKICAgIH0KCiAgICAvKioKICAgICAqIEV4ZWN1dGUgdGhlIHRhc2sKICAgICAqCiAgICAgKiBAcmV0dXJucyB0aGUgc3RhdHVzIG9mIHRoZSB0YXNrCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBleGVjdXRlKCkKICAgIHsKICAgICAgICAkcmVzID0gJHRoaXMtPl9ydW5fdGFzaygpOwogICAgICAgIHJldHVybiAkcmVzOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IENHSm9iTWdyIHJ1biBpbnRlcnZhbC4KICAgICAqCiAgICAgKiBAcmV0dXJuIGludGVnZXIgdGhlIHJ1biBpbnRlcnZhbCAoaW4gbWludXRlcyksIG9yIG51bGwuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfcnVuX2ludGVydmFsKCkKICAgIHsKICAgICAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0pvYk1ncicpOwogICAgICAgICRpbnRlcnZhbCA9IChpbnQpJG1vZC0+R2V0UHJlZmVyZW5jZSgnY3JvbmpvYl9pbnRlcnZhbCcpOwogICAgICAgICRpbnRlcnZhbCA9IG1heCgxLCRpbnRlcnZhbCk7CiAgICAgICAgcmV0dXJuICRpbnRlcnZhbDsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBDR0pvYk1nciBlc2NhbGF0aW9uIGludGVydmFsLgogICAgICoKICAgICAqIEByZXR1cm4gaW50ZWdlciB0aGUgcnVuIGludGVydmFsIChpbiBtaW51dGVzKSwgb3IgbnVsbC4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9lc2NhbGF0aW9uX2ludGVydmFsKCkKICAgIHsKICAgICAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0pvYk1ncicpOwogICAgICAgICRpbnRlcnZhbCA9IChpbnQpJG1vZC0+R2V0UHJlZmVyZW5jZSgnZXNjYWxsYXRpb25faW50ZXJ2YWxsaW1pdCcsMTApOwogICAgICAgICRpbnRlcnZhbCA9IG1pbigxMDAsbWF4KDEsJGludGVydmFsKSk7CiAgICAgICAgcmV0dXJuICRpbnRlcnZhbDsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBDR0pvYk1nciBudW1iZXIgb2YgYXV0b3Rhc2sgaXRlcmF0aW9ucy4KICAgICAqCiAgICAgKiBAcmV0dXJuIGludGVnZXIgdGhlIG51bWJlciBvZiBpdGVyYXRpb25zIGJlZm9yZSB3YWl0aW5nIGZvciB0aGUgbmV4dCBjcm9uIGludGVydmFsLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X21heF9pdGVyYXRpb25zKCkKICAgIHsKICAgICAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0pvYk1ncicpOwogICAgICAgICRpbnRlcnZhbCA9IChpbnQpJG1vZC0+R2V0UHJlZmVyZW5jZSgnbWF4X2F1dG90YXNrX2l0ZXJhdGlvbnMnLDEwKTsKICAgICAgICAkaW50ZXJ2YWwgPSBtYXgoMSwkaW50ZXJ2YWwpOwogICAgICAgIHJldHVybiAkaW50ZXJ2YWw7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgjobmgr_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHSm9iTWdyIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIG1hbmFnZSBqb2JzIHRoYXQgdGFrZSBjb25zaWRlcmFibGUKIyAgYW1vdW50cyBvZiB0aW1lIHRvIHByb2Nlc3MuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpmaW5hbCBjbGFzcyBjZ2pvYm1ncl91dGlscwp7CiAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkge30KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfam9icygkY3JpdGVyaWEgPSBhcnJheSgpKQogIHsKICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ2pvYm1ncic7CiAgICAgICR3aGVyZSA9IGFycmF5KCk7CiAgICAgICRwYXJtcyA9IGFycmF5KCk7CgogICAgICBmb3JlYWNoKCAkY3JpdGVyaWEgYXMgJGtleSA9PiAkcGFyYW1zICkgewogICAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgICAgY2FzZSAnbmFtZSc6CiAgICAgICAgICAgICAgJHBhcmFtcyA9IHN0cl9yZXBsYWNlKCcqJywnJScsJHBhcmFtcyk7CiAgICAgICAgICAgICAgJHdoZXJlW10gPSAnbmFtZSBMSUtFID8nOwogICAgICAgICAgICAgICRwYXJtc1tdID0gJHBhcmFtczsKICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICBjYXNlICdvd25lcic6CiAgICAgICAgICAgICAgJHdoZXJlW10gPSAnb3duZXIgPSA/JzsKICAgICAgICAgICAgICAkcGFybXNbXSA9IChpbnQpJHBhcmFtczsKICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICBjYXNlICdzdGF0dXMnOgogICAgICAgICAgICAgIGlmKCAhaXNfYXJyYXkoJHBhcmFtcykgKSAkcGFyYW1zID0gYXJyYXkoJHBhcmFtcyk7CiAgICAgICAgICAgICAgJHBhcmFtcyA9ICcoJy5jZ2VfYXJyYXk6OmltcGxvZGVfcXVvdGVkKCRwYXJhbXMpLicpJzsKICAgICAgICAgICAgICAkd2hlcmVbXSA9ICdzdGF0dXMgSU4gJy4kcGFyYW1zOwogICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgIGNhc2UgJ3N0YXJ0ZWQnOgogICAgICAgICAgICAgICR3aGVyZVtdID0gJ0NPQUxFU0NFKHN0YXJ0ZWRfYXQsVU5JWF9USU1FU1RBTVAoKSkgPCBVTklYX1RJTUVTVEFNUCgpJzsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgfQoKICAgICAgaWYoIGNvdW50KCR3aGVyZSkgKSAkcXVlcnkgLj0gJyBXSEVSRSAnLmltcGxvZGUoJyBBTkQgJywkd2hlcmUpOwogICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAkZGJyID0gJGRiLT5HZXRBcnJheSgkcXVlcnksJHBhcm1zKTsKCiAgICAgIGlmKCAhaXNfYXJyYXkoJGRicikgfHwgY291bnQoJGRicikgPT0gMCApIHJldHVybjsKCiAgICAgICRvdXQgPSBhcnJheSgpOwogICAgICBmb3JlYWNoKCAkZGJyIGFzICRyb3cgKSB7CiAgICAgICAgICAkb3V0W10gPSBjZ2pvYm1ncl9qb2I6OmxvYWRfZnJvbV9kYXRhKCRyb3cpOwogICAgICB9CiAgICAgIHJldHVybiAkb3V0OwogIH0KCgogIC8qKgogICAqIFRoaXMgc2VuZHMgbm90aWZpY2F0aW9uIGVtYWlscyBvdXQgcmVsYXRlZCB0byB0aGUgc3RhdHVzIG9mIHRoZSBqb2IuCiAgICoKICAgKiBAaW50ZXJuYWwKICAgKiBAaWdub3JlCiAgICogQHBhcmFtIGNnam9ibWdyX2pvYiAgVGhlIGpvYiB3ZSBhcmUgbm90aWZ5aW5nIGFib3V0LgogICAqLwogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gbm90aWZpZXIoY2dqb2JtZ3Jfam9iICRqb2IpCiAgewogICAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0pvYk1ncicpOwogICAgICAkZ3JvdXBzID0gdW5zZXJpYWxpemUoJG1vZC0+R2V0UHJlZmVyZW5jZSgnbm90aWZpY2F0aW9uX2dyb3VwcycpKTsKICAgICAgJHN0YXR1cyA9IHVuc2VyaWFsaXplKCRtb2QtPkdldFByZWZlcmVuY2UoJ25vdGlmaWNhdGlvbl9zdGF0dXMnKSk7CiAgICAgIGlmKCAkZ3JvdXBzID09ICcnIHx8IChpc19hcnJheSgkZ3JvdXBzKSAmJiBjb3VudCgkZ3JvdXBzKSA9PSAwKSApIHJldHVybjsKICAgICAgaWYoICRzdGF0dXMgPT0gJycgfHwgKGlzX2FycmF5KCRzdGF0dXMpICYmIGNvdW50KCRzdGF0dXMpID09IDApICkgcmV0dXJuOwoKICAgICAgLy8gY2hlY2sgaWYgdGhlIGpvYiBzdGF0dXMgaXMgc29tZXRoaW5nIHdlJ3JlIGNvbmNlcm5lZCBhYm91dAogICAgICBpZiggIWluX2FycmF5KCRqb2ItPmdldF9zdGF0dXMoKSwkc3RhdHVzKSApIHJldHVybjsKICAgICAgaWYoICRqb2ItPnJlY3VyX2ludGVydmFsID4gMCApIHJldHVybjsKCiAgICAgIC8vIG5vdyB3ZSBoYXZlIGdyb3VwcywsIHNlZSBpZiB3ZSBjYW4gZmluZCBhbnkgZW1haWwgYWRkZHJlc3Nlcy4KICAgICAgJG9wcyA9IGNtc21zKCktPkdldFVzZXJPcGVyYXRpb25zKCk7CiAgICAgICRlbWFpbGxpc3QgPSBhcnJheSgpOwogICAgICBmb3JlYWNoKCAkZ3JvdXBzIGFzICRncm91cGlkICkgewogICAgICAgICAgJGxpc3QgPSAkb3BzLT5Mb2FkVXNlcnNJbkdyb3VwKCRncm91cGlkKTsKICAgICAgICAgIGlmKCBpc19hcnJheSgkbGlzdCkgJiYgY291bnQoJGxpc3QpICkgewogICAgICAgICAgICAgIGZvcmVhY2goICRsaXN0IGFzICR1c2VyICkgewogICAgICAgICAgICAgICAgICBpZiggJHVzZXItPmVtYWlsICE9ICcnICYmICFpbl9hcnJheSgkdXNlci0+ZW1haWwsJGVtYWlsbGlzdCkgKSAkZW1haWxsaXN0W10gPSAkdXNlci0+ZW1haWw7CiAgICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICB9CiAgICAgIGlmKCAhY291bnQoJGVtYWlsbGlzdCkgKSByZXR1cm47CgogICAgICAkc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7CiAgICAgICRzbWFydHktPmFzc2lnbignam9iJywkam9iKTsKCiAgICAgIC8vIG5vdyB3ZSBnb3R0YSBzZW5kIGFuIGVtYWlsCiAgICAgICRtYWlsZXIgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NNU01haWxlcicpOwogICAgICAkbWFpbGVyLT5yZXNldCgpOwogICAgICAkbWFpbGVyLT5Jc0hUTUwoVFJVRSk7CiAgICAgIGZvcmVhY2goICRlbWFpbGxpc3QgYXMgJG9uZSApIHsKICAgICAgICAgICRtYWlsZXItPkFkZEFkZHJlc3MoJG9uZSk7CiAgICAgIH0KICAgICAgJG1haWxlci0+U2V0U3ViamVjdCgnQWxlcnQ6ICcuJG1vZC0+R2V0TmFtZSgpLicgSm9iIFRlcm1pbmF0ZWQnKTsKICAgICAgJGJvZHkgPSAkbW9kLT5Qcm9jZXNzVGVtcGxhdGUoJ2pvYl9ub3RpZmljYXRpb25zLnRwbCcpOwogICAgICAkbWFpbGVyLT5TZXRCb2R5KCRib2R5KTsKICAgICAgJG1haWxlci0+U2VuZCgpOwoKICAgICAgYXVkaXQoJGpvYi0+aWQsJG1vZC0+R2V0TmFtZSgpLCdOb3RpZmljYXRpb25zIFNlbnQgdG8gJy5jb3VudCgkZW1haWxsaXN0KS4nIHVzZXJzIGJlY2F1c2Ugam9iIHN0YXR1cyBpcyAnLiRqb2ItPmdldF9zdGF0dXMoKSk7CiAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/extraclasses.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHSm9iTWdyIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBtYW5hZ2Ugam9icyB0aGF0IHRha2UgY29uc2lkZXJhYmxlCiMgIGFtb3VudHMgb2YgdGltZSB0byBwcm9jZXNzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgQ0dKb2JNZ3JFeGNlcHRpb24gZXh0ZW5kcyBFeGNlcHRpb24ge30KCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHSm9iTWdyIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIG1hbmFnZSBqb2JzIHRoYXQgdGFrZSBjb25zaWRlcmFibGUKIyAgYW1vdW50cyBvZiB0aW1lIHRvIHByb2Nlc3MuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgokZGIgPSBjbXNtcygpLT5HZXREYigpOwokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CgokZmxkcyA9ICdpZCBJIEFVVE8gS0VZLAogICAgICAgICBuYW1lIEMoMjU1KSwKICAgICAgICAgb3duZXIgSSwKICAgICAgICAgcHJpb3JpdHkgSSwKICAgICAgICAgc3RhdHVzIEMoMjUpLAogICAgICAgICBhc3NvYyAgWCwKICAgICAgICAgdGFza3MgIFgsCiAgICAgICAgIGxvY2tlZCAgSTEsCiAgICAgICAgIHJlY3VyX2ludGVydmFsIEkgREVGQVVMVCAwLAogICAgICAgICBzdGFydF9hdCBJLAogICAgICAgICBzdGFydGVkX2F0IEksCiAgICAgICAgIGZpbmlzaGVkX2F0IEksCiAgICAgICAgIGNsYXNzbmFtZSBDKDI1NSksCiAgICAgICAgIGNyZWF0ZWQgJy5DTVNfQURPREJfRFQuJywKICAgICAgICAgbW9kaWZpZWQgJy5DTVNfQURPREJfRFQ7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ2pvYm1ncicsJGZsZHMsJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ01hbmFnZSBKb2JzJywnTWFuYWdlIEpvYnMnKTsKCiR0aGlzLT5DcmVhdGVFdmVudCgnSm9iRmluaXNoZWQnKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCdKb2JQYXVzZWQnKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCdKb2JSZXN1bWVkJyk7CiR0aGlzLT5DcmVhdGVFdmVudCgnSm9iRGVsZXRlZCcpOwokdGhpcy0+Q3JlYXRlRXZlbnQoJ0pvYkNyZWF0ZWQnKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCdKb2JFcnJvcicpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHSm9iTWdyIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBtYW5hZ2Ugam9icyB0aGF0IHRha2UgY29uc2lkZXJhYmxlCiMgIGFtb3VudHMgb2YgdGltZSB0byBwcm9jZXNzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgokZGIgPSAkdGhpcy0+R2V0RGIoKTsKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSggJGRiICk7CiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2Nnam9ibWdyIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokdGhpcy0+RGVsZXRlVGVtcGxhdGUoKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoKTsKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ01hbmFnZSBKb2JzJyk7CgokdGhpcy0+UmVtb3ZlRXZlbnQoJ0pvYkZpbmlzaGVkJyk7CiR0aGlzLT5SZW1vdmVFdmVudCgnSm9iUGF1c2VkJyk7CiR0aGlzLT5SZW1vdmVFdmVudCgnSm9iUmVzdW1lZCcpOwokdGhpcy0+UmVtb3ZlRXZlbnQoJ0pvYkRlbGV0ZWQnKTsKJHRoaXMtPlJlbW92ZUV2ZW50KCdKb2JDcmVhdGVkJyk7CiR0aGlzLT5SZW1vdmVFdmVudCgnSm9iRXJyb3InKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHSm9iTWdyIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIG1hbmFnZSBqb2JzIHRoYXQgdGFrZSBjb25zaWRlcmFibGUKIyAgYW1vdW50cyBvZiB0aW1lIHRvIHByb2Nlc3MuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiRkYiA9ICR0aGlzLT5HZXREYigpOwokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CgppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcxLjInKSA8IDAgKSB7CiAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2Nnam9ibWdyIiwgInJlY3VyX2ludGVydmFsIEkgREVGQVVMVCAwLHN0YXJ0X2F0IEksc3RhcnRlZF9hdCBJLGZpbmlzaGVkX2F0IEkiKTsKICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKfQoKaWYoIHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwnMS4yLjInKSA8IDAgKSB7CiAgICAkdGhpcy0+Q3JlYXRlRXZlbnQoJ0pvYkZpbmlzaGVkJyk7CiAgICAkdGhpcy0+Q3JlYXRlRXZlbnQoJ0pvYlBhdXNlZCcpOwogICAgJHRoaXMtPkNyZWF0ZUV2ZW50KCdKb2JSZXN1bWVkJyk7CiAgICAkdGhpcy0+Q3JlYXRlRXZlbnQoJ0pvYkRlbGV0ZWQnKTsKICAgICR0aGlzLT5DcmVhdGVFdmVudCgnSm9iQ3JlYXRlZCcpOwp9CgppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcxLjMnKSA8IDAgKSB7CiAgICAkdGhpcy0+Q3JlYXRlRXZlbnQoJ0pvYkVycm9yJyk7Cn0KCmlmKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sJzEuMy40JykgPCAwICkgewogICAgJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jZ2pvYm1nciIsICJjbGFzc25hbWUgQygyNTUpIik7CiAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cn0KIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9IENHSm9iTWdyCnZlcnNpb24gPSAxLjMuNApkZXNjcmlwdGlvbiA9IAphdXRob3IgPSBjYWxndXkxMDAwCmF1dGhvcmVtYWlsID0gY2FsZ3V5MTAwMEBnbWFpbC5jb20KbWluY21zdmVyc2lvbiA9IDEuMTEuMTAKMTFbZGVwZW5kc10KQ0dFeHRlbnNpb25zID0gMS40NC4yCg==]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_jobstab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICFpc3NldCgkam9icyl9CjxwIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiByZWQ7Ij57JG1vZC0+TGFuZygnbXNnX25vam9icycpfTwvcD4Ke2Vsc2V9Cjx0YWJsZSBjbGFzcz0icGFnZXRhYmxlIiBjZWxsc3BhY2luZz0iMCI+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGg+eyRtb2QtPkxhbmcoJ2pvYl9pZCcpfTwvdGg+CiAgICAgIDx0aD57JG1vZC0+TGFuZygnam9iX25hbWUnKX08L3RoPgogICAgICA8dGg+eyRtb2QtPkxhbmcoJ2pvYl9vd25lcicpfTwvdGg+CiAgICAgIDx0aD57JG1vZC0+TGFuZygnam9iX3ByaW9yaXR5Jyl9PC90aD4KICAgICAgPHRoPnskbW9kLT5MYW5nKCdqb2JfcmVjdXJzJyl9PC90aD4KICAgICAgPHRoPnskbW9kLT5MYW5nKCdqb2Jfc3RhdHVzJyl9PC90aD4KICAgICAgPHRoPnskbW9kLT5MYW5nKCdqb2JfbG9ja2VkJyl9PC90aD4KICAgICAgPHRoPnskbW9kLT5MYW5nKCdqb2Jfc3RhcnRzJyl9PC90aD4KICAgICAgPHRoPnskbW9kLT5MYW5nKCdqb2JfZmluaXNoZWQnKX08L3RoPgogICAgICA8dGg+eyRtb2QtPkxhbmcoJ2pvYl9jcmVhdGVkJyl9PC90aD4KICAgICAgPHRoPnskbW9kLT5MYW5nKCdqb2JfbW9kaWZpZWQnKX08L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj57KiBwYXVzZS9yZXN1bWUgKn08L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj57KiBkZWxldGUgKn08L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICB7Zm9yZWFjaCBmcm9tPSRqb2JzIGl0ZW09J2pvYid9CiAgIHtjeWNsZSB2YWx1ZXM9InJvdzEscm93MiIgYXNzaWduPSdyb3djbGFzcyd9CiAgICA8dHIgY2xhc3M9Inskcm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9JzsiPgogICAgICA8dGQ+eyRqb2IuaWR9PC90ZD4KICAgICAgPHRkPnskam9iLm5hbWV9PC90ZD4KICAgICAgPHRkPntpZiBpc3NldCgkam9iLm93bmVyX25hbWUpfXskam9iLm93bmVyX25hbWV9IHsvaWZ9e2lmICRqb2Iub3duZXJ9KHskam9iLm93bmVyfSl7L2lmfTwvdGQ+CiAgICAgIDx0ZD57JGpvYi5wcmlvcml0eX08L3RkPgogICAgICA8dGQ+e2lmICRqb2IucmVjdXJfaW50ZXJ2YWwgPiAwfXskam9iLnJlY3VyX2ludGVydmFsfXsvaWZ9PC9zcGFuPjwvdGQ+CiAgICAgIDx0ZD57JG1vZC0+TGFuZygkam9iLnN0YXR1cyl9PC90ZD4KICAgICAgPHRkPntpZiAkam9iLmxvY2tlZH17J3llcyd8bGFuZ317ZWxzZX17J25vJ3xsYW5nfXsvaWZ9PC90ZD4KICAgICAgPHRkPntpZiAkam9iLnJlY3VyX2ludGVydmFsICYmICRqb2Iuc3RhdHVzID09ICd1bnN0YXJ0ZWQnfXskam9iLnN0YXJ0X2F0fGNtc19kYXRlX2Zvcm1hdH17L2lmfTwvdGQ+CiAgICAgIDx0ZD57aWYgJGpvYi5zdGF0dXMgPT0gJ2ZpbmlzaGVkJ317JGpvYi5maW5pc2hlZF9hdHxjbXNfZGF0ZV9mb3JtYXR9ey9pZn08L3RkPgogICAgICA8dGQ+eyRqb2IuY3JlYXRlZHxjbXNfZGF0ZV9mb3JtYXR9PC90ZD4KICAgICAgPHRkPnskam9iLm1vZGlmaWVkfGNtc19kYXRlX2Zvcm1hdH08L3RkPgogICAgICA8dGQ+eyRqb2IucGF1c2VfbGlua3xkZWZhdWx0OicnfTwvdGQ+CiAgICAgIDx0ZD57JGpvYi5kZWxldGVfbGlua3xkZWZhdWx0OicnfTwvdGQ+CiAgICA8L3RyPgogIHsvZm9yZWFjaH0KICA8L3Rib2R5Pgo8L3RhYmxlPgo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+CnskbGlua19kZWxldGVmaW5pc2hlZH0KPC9kaXY+CnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_notifications_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X25vdGlmaWNhdGlvbl9zdGF0dXNlcycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9bm90aWZpY2F0aW9uX3N0YXR1c1tdIiBtdWx0aXBsZT0ibXVsdGlwbGUiIHNpemU9IjMiLz4KICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRzdGF0dXNlcyBzZWxlY3RlZD0kbm90aWZpY2F0aW9uX3N0YXR1c30KICAgIDwvc2VsZWN0PgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX25vdGlmaWNhdGlvbl9zdGF0dXNlcycpfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X25vdGlmaWNhdGlvbl9ncm91cHMnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfW5vdGlmaWNhdGlvbl9ncm91cHNbXSIgbXVsdGlwbGU9Im11bHRpcGxlIiBzaXplPSIzIi8+CiAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kYWRtaW5ncm91cHMgc2VsZWN0ZWQ9JG5vdGlmaWNhdGlvbl9ncm91cHN9CiAgICA8L3NlbGVjdD4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19ub3RpZmljYXRpb25fZ3JvdXBzJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_settingstab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X3Byb2Nlc3N1cmwnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiBncmVlbjsiIGhyZWY9InskcHJvY2Vzc191cmx9Ij57JHByb2Nlc3NfdXJsfTwvc3Bhbj4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19wcm9jZXNzdXJsJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfY3JvbmpvYl9pbnRlcnZhbCcpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jcm9uam9iX2ludGVydmFsIiBzaXplPSI0IiBtYXhsZW5ndGg9IjQiIHZhbHVlPSJ7JGNyb25qb2JfaW50ZXJ2YWx8ZGVmYXVsdDonJ30iLz4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19jcm9uam9iX2ludGVydmFsJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZXNjYWxhdGlvbl9pbnRlcnZhbGxpbWl0Jyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWVzY2FsYXRpb25faW50ZXJ2YWxsaW1pdCIgc2l6ZT0iNCIgbWF4bGVuZ3RoPSI0IiB2YWx1ZT0ieyRlc2NhbGF0aW9uX2ludGVydmFsbGltaXR8ZGVmYXVsdDonJ30iLz4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19lc2NhbGF0aW9uX2ludGVydmFsbGltaXQnKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9kZmx0cGFnZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7JGlucHV0X2RmbHRwYWdlfQogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2RmbHRwYWdlJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfdGltZW91dCcpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH10aW1lb3V0IiB2YWx1ZT0ieyR0aW1lb3V0fSIgc2l6ZT0iNCIgbWF4bGVuZ3RoPSI0Ii8+CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fdGltZW91dCcpfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X21heF9hdXRvdGFza19pdGVyYXRpb25zJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfW1heF9hdXRvdGFza19pdGVyYXRpb25zIiB2YWx1ZT0ieyRtYXhfYXV0b3Rhc2tfaXRlcmF0aW9uc30iIHNpemU9IjQiIG1heGxlbmd0aD0iNCIvPgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX21heF9hdXRvdGFza19pdGVyYXRpb25zJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfc2xhY2snKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9aXRlcmF0aXZlX3NsYWNrIiB2YWx1ZT0ieyRpdGVyYXRpdmVfc2xhY2t9IiBzaXplPSI2IiBtYXhsZW5ndGg9IjYiLz4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19zbGFjaycpfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8L3A+CjwvZGl2Pgp7JGZvcm1lbmR9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/job_notifications.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPkEgQ0dKb2JNZ3IgSm9iIGhhcyB0ZXJtaW5hdGVkPC9oMz4KCjxwPllvdSBhcmUgcmVjZWl2aW5nIHRoaXMgbm90aWZpY2F0aW9uIHRvIGluZm9ybSB5b3Ugb2YgYSBqb2IgdGhhdCBoYXMgdGVybWluYXRlZCB3aXRoIGFuIGltcG9ydGFudCBzdGF0dXMuPC9wPgoKPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjIiPgogIDx0cj4KICAgIDx0ZD48c3Ryb25nPkpvYiBOYW1lOjwvc3Ryb25nPjwvdGQ+CiAgICA8dGQ+eyRqb2ItPm5hbWV9PC90ZD4KICA8L3RyPgogIDx0cj4KICAgIDx0ZD48c3Ryb25nPkpvYiBJZDo8L3N0cm9uZz48L3RkPgogICAgPHRkPnskam9iLT5pZH08L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxzdHJvbmc+Sm9iIE93bmVyOjwvc3Ryb25nPjwvdGQ+CiAgICA8dGQ+eyRqb2ItPm93bmVyfTwvdGQ+CiAgPC90cj4KICA8dHI+CiAgICA8dGQ+PHN0cm9uZz5Kb2IgU3RhdHVzOjwvc3Ryb25nPjwvdGQ+CiAgICA8dGQ+eyRqb2ItPnN0YXR1c308L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxzdHJvbmc+Sm9iIFN0YXJ0ZWQgQXQ6PC9zdHJvbmc+PC90ZD4KICAgIDx0ZD57JGpvYi0+c3RhcnRlZF9hdHxkYXRlX2Zvcm1hdDonJXggJVgnfTwvdGQ+CiAgPC90cj4KICA8dHI+CiAgICA8dGQ+PHN0cm9uZz5Kb2IgRmluaXNoZWQgQXQ6PC9zdHJvbmc+PC90ZD4KICAgIDx0ZD57JGpvYi0+ZmluaXNoZWRfYXR8ZGF0ZV9mb3JtYXQ6JyV4ICVYJ308L3RkPgogIDwvdHI+CntpZiAkam9iLT5nZXRfbWVzc2FnZSgpICE9ICcnfQogIDx0cj4KICAgIDx0ZD48c3Ryb25nPk1lc3NhZ2U6PC9zdHJvbmc+PC90ZD4KICAgIDx0ZD57JGpvYi0+Z2V0X21lc3NhZ2UoKX08L3RkPgogIDwvdHI+CnsvaWZ9CjwvdGFibGU+Cgo8cD5Zb3UgYXJlIGFkdmlzZWQgdG8gbG9naW4gdG8gdGhlIGFkbWluIGludGVyZmFjZSBvbiB5b3VyIHNpdGUgdG8gcmV2aWV3IHRoZSBlcnJvciBsb2cuPC9wPgo=]]></data>
	</file>
</module>
