<?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>FEUMailer</name>
	<version>0.9.4</version>
  <mincmsversion>1.9.4.1</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgaXMgYSB2ZXJ5IHNpbXBsZSAiZW1haWwgbW9kdWxlIi48YnIgLz4KSXQgcHJvdmlkZXMgYmFja2VuZCB1c2VycyBhYmlsaXR5IHRvIHNlbmQgZW1haWxzIHRvIHNldmVyYWwgZ3JvdXBzIG9mIHRoZSBGcm9udGVuZFVzZXJzIG1vZHVsZS48YnIgLz4KWW91IGNhbiB1c2Ugc21hcnR5IHN5bnRheCBpbiB0aGUgbWVzc2FnZSB0ZXh0IHRvIGluc2VydCBlLmcuIHVzZXIgcHJvcGVydGllcywgbGlua3MgZXRjLiBpbiB0aGUgbWFpbC48YnIgLz4KU2VudCBtYWlscyBjYW4gYmUgc3RvcmVkIGluIHRoZSBkYXRhYmFzZS48YnIgLz4KPGJyIC8+ClNlbmRpbmcgbWFpbHMgYXJlIHN0b3JlZCB0ZW1wb3JhcnkgaW4gdGhlIGRhdGFiYXNlIGFuZCBkdXJpbmcgc2VuZGluZyBwcm9jZXNzIDxiciAvPgpjb250aW5vdXNseSB1cGRhdGVkIHdpdGggdGhlIGN1cnJlbnRseSBwcm9jZXNzZWQgdXNlcnMgaWQuIDxiciAvPgpTbyBpZiB0aGVyZSBpcyBhIHNlcnZlciB0aW1lb3V0IHRoZSBtb2R1bGUgY2FuIHJlc2VuZCB0aGUgZW1haWxzIGNvbnRpbnVlaW5nIDxiciAvPgpmcm9tIHRoZSBsYXN0IHVzZXIgdGhlIG1haWwgd2FzIHNlbnQgdG8uPGJyIC8+PGJyIC8+ClRvIHByZXZlbnQgYSBzZXJ2ZXIgdGltZW91dCBtYWlscyB3aWxsIGJlIHNlbnQgaW4gImpvYnMiIHVzaW5nIGFuIEFKQVggcmVxdWVzdC48YnIgLz4KPGgzPkhvdyBEbyBJIFVzZSBJdDwvaDM+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IHN1cHBvcnQgZnVuY3Rpb25zIGZvciB0aGUgZnJvbnRlbmQuPC9wPgo8cD5BZnRlciBpbnN0YWxsYXRpb24gZ28gdG8gIlVzZXJzICZhbXA7IEdyb3Vwcy0mZ3Q7RnJvbnRlbmRVc2VycyBNYWlsZXIgTW9kdWxlIiBpbiB0aGUgYmFja2VuZC48YnIgLz4KVG8gc2VuZCBhIG5ldyBtYWlsIGp1c3Qgc2VsZWN0ICJTZW5kIGEgbmV3IG1haWwiLjxiciAvPgpTZWxlY3QgdGhlIGdyb3VwcyBvZiB0aGUgRnJvbnRlbmRVc2VycyBtb2R1bGUgeW91IHdpc2ggdG8gc2VuZCBhbiBlbWFpbCB0by48YnIgLz4KRW50ZXIgYSBzdWJqZWN0IChvcHRpb25hbCkuPGJyIC8+CkVudGVyIGEgbWVzc2FnZSB0ZXh0LjxiciAvPgpTZWxlY3QgIlN1Ym1pdCIgdG8gc2VuZCB0aGUgbWFpbC48YnIgLz48YnIgLz4KVGhlIG1vZHVsZSBub3cgc2VuZHMgYW4gZW1haWwgdG8gYWxsIHVzZXJzIG9mIHRoZSBzcGVjaWZpZWQgZ3JvdXBzIHVzaW5nIHRoZSA8YnIgLz4KQ01TIE1haWxlciBtb2R1bGUuCjwvcD4KPHA+PHN0cm9uZz5TbWFydHkgc3ludGF4Ojwvc3Ryb25nPjxiciAvPgpZb3UgY2FuIHVzZSBnZW5lcmFsIHNtYXJ0eSBzdHVmZiBpbiB0aGUgZW1haWwuPGJyIC8+CkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyBhcmU6PC9wPgo8dWw+CjxsaT48c3Ryb25nPnskdXNlcm5hbWV9OiA8L3N0cm9uZz5QcmludHMgb3V0IHRoZSB1c2VybmFtZSBvZiB0aGUgdXNlciB0aGUgbWFpbCBpcyBzZW50IHRvLjwvbGk+CjxsaT48c3Ryb25nPnskdXNlcnByb3BzfTogPC9zdHJvbmc+SXMgYW4gYXJyYXkgY29udGFpbmluZyBhbGwgdXNlcnByb3BlcnRpZXMgb2YgdGhlIHVzZXIgdGhlIG1haWwgaXMgc2VudCB0by48L2xpPgo8L3VsPgo8YnIgLz4KVXNpbmcgYSB7Zm9yZWFjaH0tbG9vcCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGFjY2VzcyBhbGwgdXNlcnByb3BlcnRpZXMuPGJyIC8+PGJyIC8+CkV4YW1wbGU6PGJyIC8+Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCjxiciAvPjxiciAvPgo8cHJlPgpIZWxsbyB7JHVzZXJuYW1lfSwKCkFyZSB0aGVzZSBlbnRyeXMgc3RpbGwgdXAgdG8gZGF0ZT8KCntmb3JlYWNoIGZyb209JHVzZXJwcm9wcyBpdGVtPXByb3B9CnskcHJvcC5wcm9tcHR9OiB7JHByb3AuZGF0YX0mbHQ7YnIgLyZndDsKey9mb3JlYWNofQoKSWYgbm90LCBzbyBwbGVhc2UgdXBkYXRlIHRoZW0uCgpSZWdhcmRzLCB5b3VyIEFkbWluLgo8L3ByZT4KPGJyIC8+Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCjxiciAvPgo8YnIgLz4KeyRwcm9wLmRhdGF9IGNvbnRhaW5zIHRoZSBkYXRhIG9mIHRoYXQgZmllbGQuPGJyIC8+CnskcHJvcC5wcm9tcHR9IGNvbnRhaW5zIHRoZSBwcm9tcHQgb2YgdGhhdCBmaWVsZC48YnIgLz4KPGJyIC8+PGJyIC8+ClRvIGFjY2VzcyB1c2VycHJvcGVydGllcyBkaXJlY3RseSB1c2UgZG90IHN5bnRheDo8YnIgLz4KPGJyIC8+CkV4YW1wbGU6PGJyIC8+Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCjxiciAvPjxiciAvPgo8cHJlPgpIZWxsbyB7JHVzZXJwcm9wcy5maXJzdF9uYW1lLmRhdGF9LAoKaSd2ZSBqdXN0IHNwYW1tZWQgeW91ciBpbmJveCBhZ2FpbiA7UAo8L3ByZT4KPGJyIC8+Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCjxiciAvPjxiciAvPgp7JHVzZXJwcm9wcy5GSUVMRE5BTUUuZGF0YX0gY29udGFpbnMgdGhlIGRhdGEgb2YgdGhhdCBmaWVsZC48YnIgLz4KeyR1c2VycHJvcHMuRklFTEROQU1FLnByb21wdH0gY29udGFpbnMgdGhlIHByb21wdCBvZiB0aGF0IGZpZWxkLjxiciAvPgo8L3A+CjxoMz5TZXR0aW5nczwvaDM+CjxwPkluIHRoZSBhZG1pbnBhbmVsIHlvdSBjYW4gc2V0dXAgdGhlIGZvbGxvd2luZyBvcHRpb25zOjwvcD4KPHVsPgoJPGxpPgoJCTxzdHJvbmc+QXV0b3NhdmU6PC9zdHJvbmc+CgkJPHVsPgoJCQk8bGk+CgkJCQlVc2UgdGhpcyBvcHRpb24gdG8gc2F2ZSBzZW50IG1lc3NhZ2VzIGluIHlvdXIgbWVzc2FnZSBhcmNoaXZlLgoJCQk8L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGJyID4KCTxsaT48c3Ryb25nPlNhdmUgbG9nczo8L3N0cm9uZz4KCQk8dWw+CgkJCTxsaT4KCQkJCVVzZSB0aGlzIG9wdGlvbiB0byBzYXZlIGxvZyBkYXRhIG9mIGVhY2ggc2VudCBtYWlsLjxiciAvPjxiciAvPgoJCQkJPGVtPk5vdGljZTogdGhlIGFtb3VudCBvZiBsb2cgZGF0YSBkZXBlbmRzIG9uIHRoZSBhbW91bnQgb2YgeW91ciBmcm9udGVuZCB1c2Vycy48YnIgLz4KCQkJCUlmIHlvdSByZWFsaXplIHByb2JsZW1zIHdpdGggbGFyZ2UgbnVtYmVyIG9mIHVzZXJzLCBkaXNhYmxlIHRoaXMgb3B0aW9uLjxiciAvPiAKCQkJCURpc2FibGluZyB0aGlzIG9wdGlvbiB3aWxsIGFsc28gZGlzYWJsZSB0aGUgYWJpbGl0eSB0byByZXNlbmQgYSBzYXZlZCBtYWlsIHRvIHVzZXJzIDxiciAvPgoJCQkJdGhhdCBkaWQgbm90IGhhdmUgYW4gZW1haWwgYWRkcmVzcyB3aGVuIHNlbmRpbmcgdGhpcyBtYWlsIGxhc3QgdGltZS48L2VtPgoJCQkJPGJyIC8+PGJyIC8+CgkJCQlEZWZhdWx0IGlzIG9uLgoJCQk8L2xpPgoJCQk8YnIgLz4KCQkJPGxpPjxzdHJvbmc+U2F2ZSBlcnJvcmxvZ3Mgb25seTo8L3N0cm9uZz4KCQkJCTx1bD4KCQkJCQk8bGk+CgkJCQkJCVRoaXMgd2lsbCBvbmx5IHNhdmUgbG9ncyB3aGVyZSBhIG1haWwgY291bGQgbm90IGJlIHNlbnQuPGJyIC8+CgkJCQkJCVRoaXMgbWF5IGhhcHBlbiB3aGVuIGEgdXNlciBkb2VzIG5vdCBoYXZlIGVudGVyZWQgYW4gZW1haWwgYWRkcmVzcyBpbiBoaXMgcHJvcGVydGllcy48YnIgLz4KCQkJCQkJPGJyIC8+CgkJCQkJCURlZmF1bHQgaXMgb24uCgkJCQkJPC9saT4KCQkJCTwvdWw+CgkJCTwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8YnIgLz4KCTxsaT48c3Ryb25nPkF1dG9tYXRpY2FsbHkgZGVsZXRlIG9sZCBtYWlsczo8L3N0cm9uZz4KCQk8dWw+CgkJCTxsaT4KCQkJCVRoaXMgd2lsbCBhdXRvbWF0aWNhbGx5IGRlbGV0ZSBvbGQgbWFpbHMuCgkJCQk8YnIgLz48YnIgLz4KCQkJCURlZmF1bHQgaXMgb24uPGJyIC8+CgkJCQk8YnIgLz4KCQkJCVNlbGVjdCB0aGUgbGlmZXRpbWUgb2YgYXJjaGl2ZSBvciB0ZW1wb3JhcnkgbWFpbHMgd2l0aCB0aGUgZHJvcGRvd24gaW5wdXQgZmllbGRzLjxiciAvPjxiciAvPgoJCQkJRGVmYXVsdCBpcyAzIG1vbnRocy4KCQkJPC9saT4KCQk8L3VsPgoJPC9saT4KCTxiciAvPgoJPGxpPjxzdHJvbmc+RGVmYXVsdCBncm91cChzKTo8L3N0cm9uZz4KCQk8dWw+CgkJCTxsaT4KCQkJCVRoaXMgd2lsbCBiZSB0aGUgcHJlc2VsZWN0ZWQgZ3JvdXAocykgd2hlbiBzZW5kaW5nIGEgbmV3IG1haWwuPGJyIC8+CgkJCQk8YnIgLz4KCQkJCURlZmF1bHQgaXMgbm9uZS4KCQkJPC9saT4KCQk8L3VsPgoJPC9saT4KCTxiciAvPgoJPGxpPjxzdHJvbmc+U2VuZCBtYWlsIGFzIEhUTUwgdGV4dDo8L3N0cm9uZz4KCQk8dWw+CgkJCTxsaT4KCQkJCUlmIHlvdSBzZWxlY3QgdGhpcyBvcHRpb24geW91IHdpbGwgYmUgYWJsZSB0byB1c2UgeW91ciBpbnN0YWxsZWQgV1lTSVdZRyBlZGl0b3IgdG8gd3JpdGUgdGhlIG1haWwuPGJyIC8+CgkJCQk8YnIgLz4KCQkJCURlZmF1bHQgaXMgb2ZmLgoJCQk8L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGJyIC8+Cgk8bGk+PHN0cm9uZz5NYXguIG51bWJlciBvZiBlbWFpbHMgcGVyIGpvYjo8L3N0cm9uZz4KCQk8dWw+CgkJCTxsaT4KCQkJCVRvIHByZXZlbnQgYSBzZXJ2ZXIgdGltZW91dCBtYWlscyB3aWxsIGJlIHNlbnQgaW4gImpvYnMiIHVzaW5nIGFuIEFKQVggcmVxdWVzdC48YnIgLz4KCQkJCUVudGVyIHRoZSBhbW91bnQgb2YgdXNlcnMgdGhhdCB3aWxsIGJlIHByb2Nlc3NlZCBwZXIgam9iLjxiciAvPgoJCQkJPGJyIC8+CgkJCQlEZWZhdWx0IGlzIDUwCgkJCTwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8YnIgLz4KCTxsaT48c3Ryb25nPkFKQVggcmVxdWVzdCBkZWxheTo8L3N0cm9uZz4KCQk8dWw+CgkJCTxsaT4KCQkJCVNpbmNlIGlmIHlvdSBoYXZlIGEgbGFyZ2UgYW1vdW50IG9mIGZyb250ZW5kIHVzZXJzIGFuZCBhIHNtYWxsIGFtb3VudCBvZiB1c2VycyBwZXIgam9iPGJyIC8+CgkJCQl5b3VyIGJyb3dzZXIgd2lsbCBzZW50IGxvdHMgb2YgaWRlbnRpY2FsIHJlcXVlc3RzIHRvIHRoZSBzZXJ2ZXIgaW4gYSB2ZXJ5IHNob3J0IHRpbWUuPGJyIC8+CgkJCQlTb21lIHNlY3VyaXR5IHNvZnR3YXJlIHByb2JhYmx5IHdpbGwgaW50ZXJwcmV0IHRoaXMgYXMgYW4gaW50cnVzaW9uCgkJCQlhbmQgYnJlYWsgeW91ciByZXF1ZXN0cyBvciBldmVuIGJsb2NrIHlvdXIgSVAgYWRkcmVzcy48YnIgLz4KCQkJCTxiciAvPgoJCQkJVG8gYXZvaWQgdGhpcyB5b3UgY2FuIGVudGVyIGEgZGVsYXkgKGluIG1pbGlzZWNvbmRzKSB0aGUgamF2YXNjcmlwdCB3aWxsIHdhaXQgdW50aWwgc2VuZGluZyBhIG5ldyByZXF1ZXN0LjxiciAvPgoJCQkJPGJyIC8+CgkJCQlEZWZhdWx0IGlzIG5vbmUuCgkJCTwvbGk+CgkJPC91bD4KCTwvbGk+CjwvdWw+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+Cgk8bGk+VGhlIHByb2plY3RzIGhvbWVwYWdlIGlzIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZmV1bWFpbGVyLyI+aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9mZXVtYWlsZXIvPC9hPjwvbGk+Cgk8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjwvdWw+CjxiciAvPgo8cD5QbGVhc2UgcmVwb3J0IGFueSBraW5kIG9mIGVycm9ycyBhbmQgZmVlbCBmcmVlIHRvIHJlcG9ydCBhbnkgaWRlYXMgdG8gaW1wcm92ZSB0aGlzIG1vZHVsZS48L3A+CjxoMz5Lbm93biBpc3N1ZXM8L2gzPgo8cD5JZiB1c2VybmFtZSBpcyB1c2VkIGFzIGVtYWlsYWRkcmVzcyBvbmx5IHRoaXMgYWRkcmVzcyB3aWxsIGJlIHVzZWQuPC9wPgo8cD5JZiB1c2VybmFtZSBpcyA8c3Ryb25nPm5vdDwvc3Ryb25nPiB1c2VkIGFzIGVtYWlsYWRkcmVzcyB0aGUgRmV1TWFpbGVyIE1vZHVsZSBvbmx5IHNlYXJjaGVzIGZvciBhIHVzZXIgcHJvcGVydHkgb2YgPHN0cm9uZz50eXBlICJlbWFpbCI8L3N0cm9uZz4uPC9wPgo8cD5JZiB0aGUgdXNlciBoYXMgZW50ZXJlZCBtb3JlIHRoYW4gb25lIGVtYWlsYWRkcmVzcyBvbmx5IHRoZSBmaXJzdCBmb3VuZCBlbWFpbGFkZHJlc3Mgd2lsbCBiZSB1c2VkLjwvcD4KPHA+CglXaGVuIHVzaW5nIHBpY3R1cmVzIG9yIGFueSBvdGhlciBraW5kIG9mIG1lZGlhIGl0IHdpbGwgbm90IGJlIGF0dGFjaGVkIHRvIHRoZSBtYWlsIGJ1dCBqdXN0IGluc2VydGVkIHdpdGggYSBsaW5rIHRvIHRoYXQgbWVkaWEuPGJyIC8+CglUaGlzIGxpbmsgd2lsbCBiZSBpbnNlcnRlZCBhcyBhIHJlbGF0aXZlIG9uZSAoZS5nLiAmbHQ7aW1nIHNyYz0iL3VwbG9hZHMvaW1hZ2VzL2FfdGlueV9pbWFnZS5qcGciIC8mZ3Q7KS48YnIgLz4KCUZvciBhIHByb3BlciBsaW5rIHlvdSBuZWVkIHRvIGFkYXB0IGl0IHRvIGFuIGFic29sdXRlIG9uZSAoZS5nLiAmbHQ7aW1nIHNyYz0iaHR0cDovL3d3dy55b3VyRG9tYWluL3VwbG9hZHMvaW1hZ2VzL2FfdGlueV9pbWFnZS5qcGciIC8mZ3Q7KS4KPC9wPgo8cD4KCVNvbWUgU21hcnR5IHRhZ3MsIHBsdWdpbnMgb3IgbW9kdWxlcyB3b24ndCB3b3JrIHByb3Blcmx5IGlmIHVzZWQgaW4gYSBtYWlsPGJyIC8+CgliZWNhdXNlIHRoZXkgbmVlZCBzb21lIGRhdGEgb2YgdGhlIHNlcnZlciByZXF1ZXN0IGluIHlvdXIgYnJvd3NlcnMgYWRkcmVzcyBiYXIuPGJyIC8+CglUaGlzIGRhdGEgZG9lcyBvbmx5IGV4aXN0IHdoZW4gYWNjZXNzaW5nIHRoZSBwYWdlIHZpYSBmcm9udGVuZC48YnIgPgoJU2luY2UgdGhlIG1haWwgd2lsbCBiZSBwcm9jZXNzZWQgYnkgdGhlIGJhY2tlbmQgdGhpcyBkYXRhIHdvbid0IGJlIGFjY2Vzc2libGUuPGJyIC8+CglUaGlzIGNhbm5vdCBiZSBjaGFuZ2VkIHVubGVzcyB5b3UgbW9kaWZ5IHRoZSBwbHVnaW5zLgo8L3A+CjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD4KCUFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLjxiciAvPgoJVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsPGJyIC8+CglidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZjxiciAvPgoJTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLjxiciAvPgoJU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLjxiciAvPgoJWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2U8YnIgLz4KCWFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlPGJyIC8+CglGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQTxiciAvPgoJT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTDxiciAvPgoJUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuCjwvcD4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA4LCBHZW9yZyBCdXNjaCAoTmFOKSA8YSBocmVmPSJtYWlsdG86Z2VvcmcuYnVzY2hAZ214Lm5ldCI+Jmx0O2dlb3JnLmJ1c2NoQGdteC5uZXQmZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPgo8aDM+RGVwZW5kZW5jaWVzPC9oMz48dWw+PGxpPkZyb250RW5kVXNlcnMgPSZndDsgMS42PC9saT48bGk+Q01TTWFpbGVyID0mZ3Q7IDEuNzMuMTI8L2xpPjwvdWw+PGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoYXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZC4gTm90IGFsbCBtb2R1bGVzIHN1cHBvcnQgb3IgbmVlZCB0aGlzLjwvbGk+PC91bD4=]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBHZW9yZyBCdXNjaCAoTmFOKSAmbHQ7Z2VvcmcuYnVzY2hAZ214Lm5ldCZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAwLjkuNDxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjxiciAvPgo8dWw+Cgk8bGk+CgkJPHA+PHN0cm9uZz5WZXJzaW9uIDAuOS40IChNYXkgMjAxMSk6PC9zdHJvbmc+PC9wPgoJCTx1bD4KCQkJPGxpPjxwPi0gY29tcGF0aWJpbGl0eSBidWdmaXhlcyBmb3IgQ01TbXMgMS45LjQuMTwvcD48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPgoJCTxwPjxzdHJvbmc+VmVyc2lvbiAwLjkuMyAoSnVuZSAyMDEwKTo8L3N0cm9uZz48L3A+CgkJPHVsPgoJCQk8bGk+PHA+LSBmaXJzdCBzdGFibGUgcmVsZWFzZTwvcD48L2xpPgoJCQk8bGk+PHA+LSBhZGRlZCAid2ViIGJ1ZyIgdG8gdHJhY2sgYmFjayBpZiBtYWlsIGhhcyBiZWVuIHJlYWQgKG9ubHkgd29ya3MgaWYgbWFpbCBpcyBzZW50IGFzIGh0bWwpPC9wPjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+CgkJPHA+PHN0cm9uZz5WZXJzaW9uIDAuOS4yLkJFVEEgKE1heSAyMDA5KTo8L3N0cm9uZz48L3A+CgkJPHVsPgoJCQk8bGk+PHA+c2V2ZXJhbCBtaW5vciBidWdmaXhlczwvcD48L2xpPgoJCQk8bGk+PHA+bW92ZWQgYWxsIGRiIHF1ZXJyaWVzIGludG8gRkVVTWFpbGVyLm1vZHVsZS5waHAgYXMgc2VwYXJhdGUgZnVuY3Rpb25zPC9wPjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+CgkJPHA+PHN0cm9uZz5WZXJzaW9uIDAuOS4xIChBcHJpbCAyMDA5KTo8L3N0cm9uZz48L3A+CgkJPHVsPgoJCQk8bGk+PHA+c2V2ZXJhbCBtaW5vciBidWdmaXhlczwvcD48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPgoJCTxwPjxzdHJvbmc+VmVyc2lvbiAwLjkgKE1hcmNoIDIwMDkpOjwvc3Ryb25nPjwvcD4KCQk8dWw+CgkJCTxsaT48cD5pbXByb3ZlZCBjb21wYXRpYmxpdHkgZm9yIENNU21zIDEuNS54PC9wPjwvbGk+CgkJCTxsaT48cD5hZGRlZCBvd24gbW9kdWxlIGljb248L3A+PC9saT4KCQkJPGxpPjxwPmVubGFyZ2VkIG1vZHVsZSBpY29uczwvcD48L2xpPgoJCQk8bGk+CgkJCQk8cD4KCQkJCQlBZGRlZCBmdW50aW9uIHRvIHNhdmUgbG9nIGRhdGEgb2Ygc2VudCBtYWlscy48YnIgLz4KCQkJCQlXaXRoIHRoYXQgb3B0aW9uIHlvdSBjYW4gcmVzZW5kIG1haWxzIHRvIHVzZXJzIHRoYXQgZGlkIG5vdCBoYXZlIGVudGVyZWQgYSB2YWxpZCBlbWFpbCBhZGRyZXNzIHdoZW4gc2VuZGluZyBhIG1haWwgbGFzdCB0aW1lLgoJCQkJPC9wPgoJCQk8L2xpPgoJCQk8bGk+PHA+U2F2ZWQgbWVzc2FnZXMgZGlzcGxheXMgYW1vdW50IG9mIHJlY2lwaWVudHMsIHByb2Nlc3NlZCB1c2VycyBhbmQgdG90YWwgdXNlcnMgb2YgdGhlIHNlbGVjdGVkIGdyb3VwczwvcD48L2xpPgoJCQk8bGk+PHA+QWRkZWQgY29uZmlybSBtZXNzYWdlcyBiZWZvcmUgYWN0dWFsbHkgc2VuZGluZyBhIG1haWwuPGJyIC8+KGNvbmZpcm0gbWVzc2FnZSBzaG93cyBhbW91bnQgb2YgdG90YWwgdXNlcnMsIHByb2Nlc3NlZCB1c2VycywgcmVjaXBpZW50cyBhbmQgcmVtYWluaW5nIHVzZXJzKTwvcD48L2xpPgoJCQk8bGk+PHA+UmVtb3ZlZCBmdW5jdGlvbiB0byByZXNlbmQgdGVtcG9yYXJ5IG1haWxzIHRvIGFsbCB1c2VycyBvZiBzZWxlY3RlZCBncm91cHM8L3A+PC9saT4KCQkJPGxpPjxwPlJlbW92ZWQgZnVuY3Rpb24gdG8gZWRpdCB0ZW1wb3JhcnkgbWFpbHM8YnIgLz4oam9icyBjYW5ub3QgYmUgY2hhbmdlZCBhbnltb3JlIGJ1dCBqdXN0IGNvbnRpbnVlZCk8L3A+PC9saT4KCQkJPGxpPjxwPlNldmVyYWwgdHJpdmlhbCBidWdmaXhlczwvcD48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPjxwPjxzdHJvbmc+VmVyc2lvbiAwLjggKEp1bHkgMjAwOCwgaW5pdGlhbCByZWxlYXNlKTwvc3Ryb25nPjxwPjwvbGk+Cjx1bD48YnIgLz4=]]></about>
	<description><![CDATA[This module provides a simple mailing function to send emails to several groups of the FrontendUsers Module.]]></description>
	<requires>
	  <requiredname>FrontEndUsers</requiredname>
	  <requiredversion>1.6</requiredversion>
	</requires>
	<requires>
	  <requiredname>CMSMailer</requiredname>
	  <requiredversion>1.73.12</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.clearLogs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEZyb250ZW5kVXNlciBNYWlsZXIgKGMpIDIwMDgtMjAxMCBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkKIyAgICAgICAgICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGJhY2tlbmQgdXNlcnMgYWJpbGl0eSAKIyAgICAgICAgICB0byBlYXNpbHkgc2VuZCBhbiBlbWFpbCB0byBhbGwgZnJvbnRlbmQgdXNlcnMgb3IganVzdCBzcGVjaWZpYyBmcm9udC0KIyAgICAgICAgICBlbmQgdXNlcmdyb3VwcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZCB3ZWJzaXRlLgojIFZlcnNpb246IDAuOS40CiMgRmlsZSAgIDogYWN0aW9uLmNsZWFyTG9ncy5waHAKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA0LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCFpc19vYmplY3QoY21zbXMoKSkpIGV4aXQ7CgppZighJHRoaXMtPkNoZWNrUGVybWlzc2lvbignVXNlIEZFVU1haWxlcicpKSB7CglyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2Vycm9yX3Blcm1pc3Npb25zJykpOwp9CgokYWN0aXZlX3RhYiA9ICdhcmNoaXZlJzsKaWYoaXNzZXQoJHBhcmFtc1snYWN0aXZlX3RhYiddKSkgewoJJGFjdGl2ZV90YWIgPSB0cmltKCRwYXJhbXNbJ2FjdGl2ZV90YWInXSk7Cn0KJHcgPSBhcnJheSgpOwokcXVlcnkgPSAiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVtYWlsZXJfbG9ncyI7CiR3aGVyZSA9IGFycmF5KCk7CmlmKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdF9sb2cnXSkpIHsKCWZvcmVhY2goJHBhcmFtcyBhcyAkbmFtZT0+JHZhbHVlKSB7CgkJaWYoc3RhcnRzd2l0aCgkbmFtZSwgJ2xvZy0nKSAmJiAkdmFsdWUhPScnKSB7CgkJCSR2YWwgPSBleHBsb2RlKCctJyx0cmltKCR2YWx1ZSkpOwoJCQlpZihpc3NldCgkdmFsWzFdKSkgewoJCQkJJHcgPSBhcnJheSgpOwoJCQkJaWYoaW50dmFsKHRyaW0oJHZhbFswXSkpPjApIAoJCQkJCSR3W10gPSAidG1wX2lkPSIuIGludHZhbCh0cmltKCR2YWxbMF0pKTsKCQkJCWlmKGludHZhbCh0cmltKCR2YWxbMV0pKT4wKQoJCQkJCSR3W10gPSAiYXJjaGl2ZV9pZD0iLiBpbnR2YWwodHJpbSgkdmFsWzFdKSk7CgkJCQlpZihjb3VudCgkdykpCgkJCQkJJHdoZXJlW10gPSAiKCIuaW1wbG9kZSgiIEFORCAiLCR3KS4iKSI7CgkJCX0KCQl9Cgl9Cn0gZWxzZSB7CgoJaWYoaXNzZXQoJHBhcmFtc1snYXJjaGl2ZV9pZCddKSAmJiAkcGFyYW1zWydhcmNoaXZlX2lkJ10+MCkKCQkkd1tdID0gImFyY2hpdmVfaWQ9Ii5pbnR2YWwodHJpbSgkcGFyYW1zWydhcmNoaXZlX2lkJ10pKTsKCQkKCWlmKGlzc2V0KCRwYXJhbXNbJ3RtcF9pZCddKSAmJiAkcGFyYW1zWyd0bXBfaWQnXT4wKQoJCSR3W10gPSAidG1wX2lkPSIuaW50dmFsKHRyaW0oJHBhcmFtc1sndG1wX2lkJ10pKTsKCQkKCWlmKGNvdW50KCR3KSkKCQkkd2hlcmVbXSA9ICIoIi5pbXBsb2RlKCIgQU5EICIsJHcpLiIpIjsKfQoKaWYoY291bnQoJHdoZXJlKSkgewoJJHF1ZXJ5IC49ICIgV0hFUkUgIi5pbXBsb2RlKCIgT1IgIiwkd2hlcmUpOwoJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7Cn0KCmlmKCFpc3NldCgkcGFyYW1zWydvdXRwdXQnXSkgfHwgJHBhcmFtc1snb3V0cHV0J10hPWZhbHNlKSB7CgkkcGFybXMgPSBhcnJheSgnYWN0aXZlX3RhYic9PiRhY3RpdmVfdGFiLCdtZXNzYWdlJz0+JHRoaXMtPmxhbmcoJ2xvZ19kZWxldGVkJykpOwoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgJHBhcm1zKTsKfQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEZyb250ZW5kVXNlciBNYWlsZXIgKGMpIDIwMDgtMjAxMCBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkKIyAgICAgICAgICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGJhY2tlbmQgdXNlcnMgYWJpbGl0eSAKIyAgICAgICAgICB0byBlYXNpbHkgc2VuZCBhbiBlbWFpbCB0byBhbGwgZnJvbnRlbmQgdXNlcnMgb3IganVzdCBzcGVjaWZpYyBmcm9udC0KIyAgICAgICAgICBlbmQgdXNlcmdyb3VwcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZCB3ZWJzaXRlLgojIFZlcnNpb246IDAuOS40CiMgRmlsZSAgIDogYWN0aW9uLmRlZmF1bHRhZG1pbi5waHAKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA0LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCFpc19vYmplY3QoY21zbXMoKSkpCglleGl0OwoKJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwoKaWYoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1VzZSBGRVVNYWlsZXInKSkKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsJHJldHVybmlkLAkkdGhpcy0+TGFuZygnZXJyb3JfcGVybWlzc2lvbnMnKSk7CgokZmV1c2VycyA9JiAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKTsKaWYoISRmZXVzZXJzKQoJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwkcmV0dXJuaWQsCSR0aGlzLT5MYW5nKCdlcnJvcl9mZXVzZXJzJykpOwoKaWYoISR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnQ01TTWFpbGVyJykpCglyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2Vycm9yX2Ntc21haWxlcicpKTsKCi8vIHN5c3RlbWljb25zCiMkbmV3ID0gY21zbXMoKS0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCAkdGhpcy0+bGFuZygnbmV3bWFpbCcpLCcnLCcnLCdzeXN0ZW1pY29uJyk7CiRuZXcgPSAnPGltZyBzcmM9IicuJGNvbmZpZ1sncm9vdF91cmwnXS4nL21vZHVsZXMvRkVVTWFpbGVyL2ltYWdlcy9uZXdtYWlsLmdpZiIgYWx0PSIiIHRpdGxlPSInLiR0aGlzLT5sYW5nKCduZXdtYWlsJykuJyIgY2xhc3M9InN5c3RlbWljb24iIC8+JzsKJHJlYWQgPSBjbXNtcygpLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vdmlldy5naWYnLCAkdGhpcy0+bGFuZygncmVhZCcpLCcnLCcnLCdzeXN0ZW1pY29uJyk7CiRlZGl0ID0gY21zbXMoKS0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywgJHRoaXMtPmxhbmcoJ2VkaXQnKSwnJywnJywnc3lzdGVtaWNvbicpOwokZGVsZXRlID0gY21zbXMoKS0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkdGhpcy0+bGFuZygnZGVsZXRlJyksJycsJycsJ3N5c3RlbWljb24nKTsKJHJlc2VuZF9hbGwgPSAnPGltZyBzcmM9IicuJGNvbmZpZ1sncm9vdF91cmwnXS4nL21vZHVsZXMvRkVVTWFpbGVyL2ltYWdlcy9yZXNlbmRfYWxsLmdpZiIgYWx0PSInLiR0aGlzLT5sYW5nKCdyZXNlbmRfYWxsJykuJyIgdGl0bGU9IicuJHRoaXMtPmxhbmcoJ3Jlc2VuZF9hbGwnKS4nIiBjbGFzcz0ic3lzdGVtaWNvbiIgLz4nOwokY29udGludWVfYXJjaGl2ZSA9ICc8aW1nIHNyYz0iJy4kY29uZmlnWydyb290X3VybCddLicvbW9kdWxlcy9GRVVNYWlsZXIvaW1hZ2VzL2NvbnRpbnVlLmdpZiIgYWx0PSInLiR0aGlzLT5sYW5nKCdjb250aW51ZV9hcmNoaXZlJykuJyIgdGl0bGU9IicuJHRoaXMtPmxhbmcoJ2NvbnRpbnVlX2FyY2hpdmUnKS4nIiBjbGFzcz0ic3lzdGVtaWNvbiIgLz4nOwokY29udGludWVfdG1wID0gJzxpbWcgc3JjPSInLiRjb25maWdbJ3Jvb3RfdXJsJ10uJy9tb2R1bGVzL0ZFVU1haWxlci9pbWFnZXMvY29udGludWUuZ2lmIiBhbHQ9IicuJHRoaXMtPmxhbmcoJ2NvbnRpbnVlX3RtcCcpLiciIHRpdGxlPSInLiR0aGlzLT5sYW5nKCdjb250aW51ZV90bXAnKS4nIiBjbGFzcz0ic3lzdGVtaWNvbiIgLz4nOwokcmVzZW5kX2Vycm9ycyA9ICc8aW1nIHNyYz0iJy4kY29uZmlnWydyb290X3VybCddLicvbW9kdWxlcy9GRVVNYWlsZXIvaW1hZ2VzL3Jlc2VuZF9lcnJvcnMuZ2lmIiBhbHQ9IicuJHRoaXMtPmxhbmcoJ3Jlc2VuZF9lcnJvcnMnKS4nIiB0aXRsZT0iJy4kdGhpcy0+bGFuZygncmVzZW5kX2Vycm9ycycpLiciIGNsYXNzPSJzeXN0ZW1pY29uIiAvPic7CiRvayA9IGNtc21zKCktPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9hY2NlcHQuZ2lmJywgJycsJycsJycsJ3N5c3RlbWljb24nKTsKJHZpZXdfZXJyb3Jsb2dzID0gY21zbXMoKS0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvZXh0cmEveWVsbG93LmdpZicsICR0aGlzLT5sYW5nKCd2aWV3X2xvZ3MnKSwnJywnJywnc3lzdGVtaWNvbicpOwokdmlld19sb2dzID0gY21zbXMoKS0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2luZm8uZ2lmJywgJHRoaXMtPmxhbmcoJ3ZpZXdfbG9ncycpLCcnLCcnLCdzeXN0ZW1pY29uJyk7CgokYWN0aXZlX3RhYiA9ICdhcmNoaXZlJzsKaWYoaXNzZXQoJHBhcmFtc1snYWN0aXZlX3RhYiddKSkKCSRhY3RpdmVfdGFiID0gJHBhcmFtc1snYWN0aXZlX3RhYiddOwoKJGVycm9ybWVzc2FnZSA9ICcnOwppZihpc3NldCgkcGFyYW1zWydlcnJvcm1lc3NhZ2UnXSkpCgkkZXJyb3JtZXNzYWdlIC49ICRwYXJhbXNbJ2Vycm9ybWVzc2FnZSddLic8YnIgLz4nOwoKJG1lc3NhZ2UgPSAnJzsKaWYoaXNzZXQoJHBhcmFtc1snbWVzc2FnZSddKSkKCSRtZXNzYWdlIC49ICRwYXJhbXNbJ21lc3NhZ2UnXS4nPGJyIC8+JzsKCi8vIGdldCBwcmVmZXJlbmNlcwokZGVmYXVsdF9ncm91cHMgPSBhcnJheSgpOwokZGVmX2dyb3VwcyA9IGV4cGxvZGUoJzsnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X2dyb3VwcycsJycpKTsKaWYoIWVtcHR5KCRkZWZfZ3JvdXBzWzBdKSkgewoJZm9yZWFjaCgkZGVmX2dyb3VwcyBhcyAkZGVmX2dyb3VwKSB7CgkJJGRnID0gZXhwbG9kZSgnLCcsJGRlZl9ncm91cCk7CgkJaWYoaXNzZXQoJGRnWzFdKSkKCQkJJGRlZmF1bHRfZ3JvdXBzWyRkZ1swXV09JGRnWzFdOwoJfQp9CgokZ3JvdXBzPSR0aGlzLT5HZXRHcm91cHMoKTsKaWYoZW1wdHkoJGdyb3VwcykpCgkkZXJyb3JtZXNzYWdlIC49ICR0aGlzLT5sYW5nKCdlcnJvcl9ncm91cHMnKS4nPGJyIC8+JzsKCiRzZWxlY3RlZF9ncm91cHMgPSBhcnJheSgpOwpmb3JlYWNoKCRncm91cHMgYXMgJGs9PiR2KSB7CgkkZ3JwX3ZhcnMgPSBleHBsb2RlKCcsJywkdik7CglpZihpc3NldCgkZ3JwX3ZhcnNbMl0pICYmIGlzc2V0KCRkZWZhdWx0X2dyb3Vwc1skZ3JwX3ZhcnNbMF1dKSkgewoJCSRzZWxlY3RlZF9ncm91cHNbJGdycF92YXJzWzFdLiIgKCIuJGdycF92YXJzWzJdLiIgIi4kdGhpcy0+bGFuZygidXNlcnMiKS4iKSJdID0gaW1wbG9kZSgiLCIsJGdycF92YXJzKTsKCX0KfQoKLy8gZ2V0IHNlbnQgbWFpbHMKJG9sZF9tYWlscyA9IGFycmF5KCk7CiRhcmNoaXZlX21haWxzPSR0aGlzLT5HZXRBcmNoaXZlTWFpbHMoKTsKZm9yZWFjaCgkYXJjaGl2ZV9tYWlscyBhcyAkbWFpbCkgewoJCWlmKCRtYWlsWydzZW5kX2RhdGUnXTwkZGItPkRCVGltZVN0YW1wKHN0cnRvdGltZSgiLSIuJHRoaXMtPkdldFByZWZlcmVuY2UoImF1dG9jbGVhcl92YWx1ZSIsMykuJyAnLiR0aGlzLT5HZXRQcmVmZXJlbmNlKCJhdXRvY2xlYXJfdGltZSIsJ21vbnRoJykpKSkKCQkJJG9sZF9tYWlsc1skbWFpbFsnaWQnXV09JG1haWxbJ3RtcF9pZCddOwp9CgovLyBnZXQgdGVtcCBtYWlscyAob25seSBleGlzdHMgaWYgdGhlcmUgd2hlcmUgZXJyb3JzIHdoZW4gYSBtYWlsIHdhcyBzZW5kKQokb2xkX3RtcG1haWxzID0gYXJyYXkoKTsKJHRtcF9tYWlscz0kdGhpcy0+R2V0VGVtcE1haWxzKCk7CmZvcmVhY2goJHRtcF9tYWlscyBhcyAkbWFpbCkgewoJCWlmKCRtYWlsWydzZW5kX2RhdGUnXTwkZGItPkRCVGltZVN0YW1wKHN0cnRvdGltZSgiLSIuJHRoaXMtPkdldFByZWZlcmVuY2UoImF1dG9jbGVhcl92YWx1ZSIsMykuJyAnLiR0aGlzLT5HZXRQcmVmZXJlbmNlKCJhdXRvY2xlYXJfdGltZSIsJ21vbnRoJykpKSkKCQkJJG9sZF90bXBtYWlsc1skbWFpbFsnaWQnXV09JG1haWxbJ2xvZ19hcmNoaXZlX2lkJ107Cn0KCi8vIGdldCBsb2dzCiRyb3djbGFzcyA9ICdyb3cxJzsKJGxvZ3M9YXJyYXkoKTsKJGxvZ3NfYXJyYXkgPSAkdGhpcy0+R2V0TG9ncygpOwpmb3JlYWNoKCRsb2dzX2FycmF5IGFzICRyb3cpIHsKCSRvbmVyb3cgPSBuZXcgc3RkQ2xhc3MoKTsKCSRvbmVyb3ctPnNlbGVjdGVkID0gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdsb2ctJy4oJHJvd1sndG1wX2lkJ10+MD8kcm93Wyd0bXBfaWQnXTowKS4nLScuKCRyb3dbJ2FyY2hpdmVfaWQnXT4wPyRyb3dbJ2FyY2hpdmVfaWQnXTowKSwKCQkJCQkJCQkkcm93Wyd0bXBfaWQnXS4nLScuJHJvd1snYXJjaGl2ZV9pZCddLCcnKTsKCQoJJG9uZXJvdy0+dmlldyA9ICcmbmJzcDsnOwoJaWYoJHJvd1snbG9nX2Vycm9yJ109PTApIHsKCQkkb25lcm93LT52aWV3ID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCd2aWV3TG9ncycsJHJldHVybmlkLCR2aWV3X2xvZ3MsCgkJCQkJCQkJCQkJCQkJYXJyYXkoJ2FjdGl2ZV90YWInPT4nbG9nJywndG1wX2lkJz0+JHJvd1sndG1wX2lkJ10sCgkJCQkJCQkJCQkJCQkJCSdhcmNoaXZlX2lkJz0+JHJvd1snYXJjaGl2ZV9pZCddKSk7Cgl9IGVsc2UgewoJCSRvbmVyb3ctPnZpZXcgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ3ZpZXdMb2dzJywkcmV0dXJuaWQsJHZpZXdfZXJyb3Jsb2dzLAoJCQkJCQkJCQkJCQkJCWFycmF5KCdhY3RpdmVfdGFiJz0+J2xvZycsJ3RtcF9pZCc9PiRyb3dbJ3RtcF9pZCddLAoJCQkJCQkJCQkJCQkJCQknYXJjaGl2ZV9pZCc9PiRyb3dbJ2FyY2hpdmVfaWQnXSkpOwoJfQoKCSRvbmVyb3ctPmRlbGV0ZSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnY2xlYXJMb2dzJywkcmV0dXJuaWQsJGRlbGV0ZSwKCQkJCQkJCQkJCQkJCQlhcnJheSgnYWN0aXZlX3RhYic9Pidsb2cnLCd0bXBfaWQnPT4kcm93Wyd0bXBfaWQnXSwKCQkJCQkJCQkJCQkJCQkJJ2FyY2hpdmVfaWQnPT4kcm93WydhcmNoaXZlX2lkJ10pLAoJCQkJCQkJCQkJCQkJCSR0aGlzLT5sYW5nKCdkZWxldGVsb2djb25maXJtJykpOwoJaWYoIWVtcHR5KCRyb3dbJ3N1YmplY3QnXSkpCgkJJG9uZXJvdy0+c3ViamVjdCAJPSAkcm93WydzdWJqZWN0J107CgllbHNlCgkJJG9uZXJvdy0+c3ViamVjdCAJPSAkdGhpcy0+bGFuZygnbm9zdWJqZWN0Jyk7Cgkkb25lcm93LT5zZW50YnkgCT0gJHJvd1sndXNlcm5hbWUnXTsKCSRvbmVyb3ctPnNlbmRfZGF0ZSAJPSAkcm93WydzZW5kX2RhdGUnXTsKCgkkcm93X2dyb3VwcyA9IGFycmF5KCk7CgkkZ3JwcyA9IGV4cGxvZGUoJzsnLCRyb3dbJ3JlY2lwaWVudF9ncm91cHMnXSk7CglpZighZW1wdHkoJGdycHNbMF0pKSB7CgkJZm9yZWFjaCgkZ3JwcyBhcyAkZ3JwKSB7CgkJCSRnID0gZXhwbG9kZSgnLCcsJGdycCk7CgkJCWlmKGlzc2V0KCRnWzFdKSkgewoJCQkJJHJvd19ncm91cHNbJGdbMF1dID0gJGdbMV07CgkJCX0KCQl9Cgl9Cgkkb25lcm93LT5yZWNpcGllbnRfZ3JvdXBzID0gaW1wbG9kZSgiPGJyIC8+Iiwkcm93X2dyb3Vwcyk7CgoJJG9uZXJvdy0+cm93Y2xhc3MgPSAkcm93Y2xhc3M7Cgkkcm93Y2xhc3MgPSAoJHJvd2NsYXNzPT0ncm93MSc/J3JvdzInOidyb3cxJyk7CgkKCSRsb2dzW10gPSAkb25lcm93Owp9CgoKLy8gZGVsZXRlIG9sZCBtYWlscwppZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgiYXV0b2NsZWFyX2FyY2hpdmVtYWlscyIsdHJ1ZSk9PXRydWUpIHsKCgkkcXVlcnkgPSAiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVtYWlsZXJfYXJjaGl2ZSAKCQkJCVdIRVJFIHNlbmRfZGF0ZTwiLiAkZGItPkRCVGltZVN0YW1wKHN0cnRvdGltZSgiLSIuJHRoaXMtPkdldFByZWZlcmVuY2UoImF1dG9jbGVhcl92YWx1ZSIsMykuJyAnLiR0aGlzLT5HZXRQcmVmZXJlbmNlKCJhdXRvY2xlYXJfdGltZSIsJ21vbnRoJykpKTsKCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoKCWlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJhdXRvY2xlYXJfbG9ncyIsZmFsc2UpPT10cnVlKSB7CgkJJHdoZXJlID0gYXJyYXkoKTsKCQkkcXVlcnkgPSAiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVtYWlsZXJfbG9ncyI7CgkJZm9yZWFjaCgkb2xkX21haWxzIGFzICRvbGRfaWQ9PiRvbGRfdG1waWQpIHsKCQkJaWYoIWlzc2V0KCR0bXBfbWFpbHNbJG9sZF90bXBpZF0pKQoJCQkJJHdoZXJlW10gPSAiYXJjaGl2ZV9pZD0iLiAkb2xkX2lkOwoJCQkJdW5zZXQoJGFyY2hpdmVfbWFpbHNbJG9sZF9pZF0pOwoJCX0KCgkJaWYoY291bnQoJHdoZXJlICkpIHsKCQkJJHF1ZXJ5IC49ICIgV0hFUkUgIiAuIGltcGxvZGUoIiBPUiAiLCR3aGVyZSk7CgkJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJCX0KCX0KCglpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgiYXV0b2NsZWFyX3RtcG1haWxzIix0cnVlKT09dHJ1ZSkgewoJCSRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldW1haWxlcl90bXAgCgkJCQkJV0hFUkUgc2VuZF9kYXRlPCIuICRkYi0+REJUaW1lU3RhbXAoc3RydG90aW1lKCItIi4kdGhpcy0+R2V0UHJlZmVyZW5jZSgiYXV0b2NsZWFyX3ZhbHVlIiwzKS4nICcuJHRoaXMtPkdldFByZWZlcmVuY2UoImF1dG9jbGVhcl90aW1lIiwnbW9udGgnKSkpOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoKCQlpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgiYXV0b2NsZWFyX2xvZ3MiLGZhbHNlKT09dHJ1ZSkgewoJCQkkd2hlcmUgPSBhcnJheSgpOwoJCQkkcXVlcnkgPSAiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVtYWlsZXJfbG9ncyI7CgkJCWZvcmVhY2goJG9sZF90bXBtYWlscyBhcyAkb2xkX3RtcGlkPT4kb2xkX2lkKSB7CgkJCQlpZighaXNzZXQoJGFyY2hpdmVfbWFpbHNbJG9sZF9pZF0pKQoJCQkJCSR3aGVyZVtdID0gInRtcF9pZD0iLiAkb2xkX3RtcGlkOwoJCQkJCXVuc2V0KCR0bXBfbWFpbHNbJG9sZF90bXBpZF0pOwoJCQl9CgoJCQlpZihjb3VudCgkd2hlcmUgKSkgewoJCQkJJHF1ZXJ5IC49ICIgV0hFUkUgIiAuIGltcGxvZGUoIiBPUiAiLCR3aGVyZSk7CgkJCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCQkJfQoJCX0KCX0KfQoKLy8gcHJlcGFyZSBhcnJheSBvZiBhcmNoaXZlIG1haWxzIHRvIGFzc2lnbiB0byBzbWFydHkKJGFyY2hpdmVfbWFpbHNfYXJyYXkgPSBhcnJheSgpOwokcm93Y2xhc3MgPSAncm93MSc7CmZvcmVhY2goJGFyY2hpdmVfbWFpbHMgYXMgJGFyY2hpdmVfbWFpbCkgewoKCS8vIGNoZWNrIGlmIGFyY2hpdmVfbWFpbCBzaGFyZXMgbG9nIHdpdGggdG1wX21haWwKCWlmKGlzc2V0KCR0bXBfbWFpbHNbJGFyY2hpdmVfbWFpbFsndG1wX2lkJ11dKSAKCSYmICR0bXBfbWFpbHNbJGFyY2hpdmVfbWFpbFsndG1wX2lkJ11dWydhcmNoaXZlX2lkJ109PSRhcmNoaXZlX21haWxbJ2lkJ10pCgkJJGNsZWFyX2xvZyA9IGZhbHNlOwoJZWxzZQoJCSRjbGVhcl9sb2cgPSB0cnVlOwoJCgkkb25lcm93ID0gbmV3IHN0ZENsYXNzKCk7Cgkkb25lcm93LT5zZWxlY3RlZCA9ICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnbWFpbC0nLiRhcmNoaXZlX21haWxbJ2lkJ10sCgkJCQkJCSRhcmNoaXZlX21haWxbJ2lkJ10uJy0nLiRjbGVhcl9sb2csJycpOwoKCSRvbmVyb3ctPnNlbmRfZGF0ZSA9ICRhcmNoaXZlX21haWxbJ3NlbmRfZGF0ZSddOwoKCWlmKCFlbXB0eSgkYXJjaGl2ZV9tYWlsWydzdWJqZWN0J10pKSB7CgkJJHN1YmplY3QgPSAkYXJjaGl2ZV9tYWlsWydzdWJqZWN0J107Cgl9IGVsc2UgewoJCSRzdWJqZWN0ID0gJHRoaXMtPmxhbmcoJ25vc3ViamVjdCcpOwoJfQoJJG9uZXJvdy0+c3ViamVjdCA9ICAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ3JlYWRNYWlsJywkcmV0dXJuaWQsJHN1YmplY3QsCgkJCQkJCQkJCQkJCWFycmF5KCdtYWlsX3R5cGUnPT4nYXJjaGl2ZScsCgkJCQkJCQkJCQkJCQkJJ21haWxfaWQnPT4kYXJjaGl2ZV9tYWlsWydpZCddLAoJCQkJCQkJCQkJCQkJCSdjbGVhcl9sb2cnPT4kY2xlYXJfbG9nKSwKCQkJCQkJCQkJCScnLGZhbHNlLCcnLAoJCQkJCQkJCQkJJ3RpdGxlPSInLiR0aGlzLT5sYW5nKCdyZWFkJykuJyInKTsKCgkkcm93X2dyb3VwcyA9IGFycmF5KCk7CgkkZ3JwcyA9IGV4cGxvZGUoJzsnLCRhcmNoaXZlX21haWxbJ3JlY2lwaWVudF9ncm91cHMnXSk7CglpZighZW1wdHkoJGdycHNbMF0pKSB7CgkJZm9yZWFjaCgkZ3JwcyBhcyAkZ3JwKSB7CgkJCSRnID0gZXhwbG9kZSgnLCcsJGdycCk7CgkJCWlmKGlzc2V0KCRnWzFdKSkgewoJCQkJJHJvd19ncm91cHNbJGdbMF1dID0gJGdbMV07CgkJCX0KCQl9Cgl9CgkKCSRvbmVyb3ctPnJlY2lwaWVudF9ncm91cHMgPSBpbXBsb2RlKCI8YnIgLz4iLCRyb3dfZ3JvdXBzKTsKCSRncm91cHNfY29uZmlybSA9IHN0cl9yZXBsYWNlKCI8YnIgLz4iLCJcXG4iLCRvbmVyb3ctPnJlY2lwaWVudF9ncm91cHMpOwoJJG9uZXJvdy0+dG90YWxfdXNlcnMgPSBjb3VudCgkdGhpcy0+R2V0VXNlcnMoJHJvd19ncm91cHMpKTsKCSRvbmVyb3ctPnByb2Nlc3NlZF91c2VycyA9ICRhcmNoaXZlX21haWxbJ3Byb2Nlc3NlZF91c2VycyddOwoJJG9uZXJvdy0+cmVjaXBpZW50cyA9ICRhcmNoaXZlX21haWxbJ3JlY2lwaWVudHMnXTsKCQoJJHJlbWFpbmluZyA9ICgkb25lcm93LT50b3RhbF91c2VycyAtICRvbmVyb3ctPnByb2Nlc3NlZF91c2Vycyk7CgkKCWlmKCRyZW1haW5pbmc8MCkKCQkkcmVtYWluaW5nPTA7CgkKCSRvbmVyb3ctPnNlbnRieSA9ICRhcmNoaXZlX21haWxbJ3NlbnRieSddOwoJJG9uZXJvdy0+cmVhZF9tYWlsID0gICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwncmVhZE1haWwnLCRyZXR1cm5pZCwgJHJlYWQsCgkJCQkJCQkJCQkJCQlhcnJheSgnbWFpbF90eXBlJz0+J2FyY2hpdmUnLAoJCQkJCQkJCQkJCQkJCSdjbGVhcl9sb2cnPT4kY2xlYXJfbG9nLAoJCQkJCQkJCQkJCQkJCSdtYWlsX2lkJz0+JGFyY2hpdmVfbWFpbFsnaWQnXSkpOwoKCWlmKCFlbXB0eSgkZ3JvdXBzKSkgewoJCSRvbmVyb3ctPmVkaXQgPSAgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdlZGl0TWFpbCcsJHJldHVybmlkLCAkZWRpdCwKCQkJCQkJCQkJCQkJCWFycmF5KCdtYWlsX3R5cGUnPT4nYXJjaGl2ZScsCgkJCQkJCQkJCQkJCQkJJ2NsZWFyX2xvZyc9PiRjbGVhcl9sb2csCgkJCQkJCQkJCQkJCQkJJ21haWxfaWQnPT4kYXJjaGl2ZV9tYWlsWydpZCddKSk7CgoJCSRvbmVyb3ctPnJlc2VuZF9hbGwgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ3ByZXBhcmVTZW5kTWFpbCcsJHJldHVybmlkLCRyZXNlbmRfYWxsLAoJCQkJCQkJCQkJCQkJCWFycmF5KCd0YXNrJz0+J2FsbCcsCgkJCQkJCQkJCQkJCQkJCSdtYWlsX3R5cGUnPT4nYXJjaGl2ZScsCgkJCQkJCQkJCQkJCQkJCSdjbGVhcl9sb2cnPT4kY2xlYXJfbG9nLAoJCQkJCQkJCQkJCQkJCQknbWFpbF9pZCc9PiRhcmNoaXZlX21haWxbJ2lkJ10pLAoJCQkJCQkJCQkJCQkkdGhpcy0+bGFuZygncmVzZW5kYWxsYXJjaGl2ZWNvbmZpcm1fZnVsbCcsCgkJCQkJCQkJCQkJCQkJCQkkZ3JvdXBzX2NvbmZpcm0sCgkJCQkJCQkJCQkJCQkJCQkkb25lcm93LT50b3RhbF91c2VycyksZmFsc2UsZmFsc2UsJ3RhcmdldD0iX2JsYW5rIicpOwoJCgkJaWYoJHJlbWFpbmluZz4wKSB7IAoJCQkkb25lcm93LT5yZXNlbmRfbmV3ID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdwcmVwYXJlU2VuZE1haWwnLCRyZXR1cm5pZCwkY29udGludWVfYXJjaGl2ZSwKCQkJCQkJCQkJCQkJCQkJYXJyYXkoJ3Rhc2snPT4nY29udGludWUnLAoJCQkJCQkJCQkJCQkJCQkJJ21haWxfdHlwZSc9PidhcmNoaXZlJywKCQkJCQkJCQkJCQkJCQkJCSdjbGVhcl9sb2cnPT4kY2xlYXJfbG9nLAoJCQkJCQkJCQkJCQkJCQkJJ21haWxfaWQnPT4kYXJjaGl2ZV9tYWlsWydpZCddKSwKCQkJCQkJCQkJCQkJCSR0aGlzLT5sYW5nKCdyZXNlbmRuZXdhcmNoaXZlY29uZmlybV9mdWxsJywKCQkJCQkJCQkJCQkJCQkJCSRncm91cHNfY29uZmlybSwKCQkJCQkJCQkJCQkJCQkJCSRvbmVyb3ctPnRvdGFsX3VzZXJzLAoJCQkJCQkJCQkJCQkJCQkJJG9uZXJvdy0+cHJvY2Vzc2VkX3VzZXJzLAoJCQkJCQkJCQkJCQkJCQkJJG9uZXJvdy0+cmVjaXBpZW50cywKCQkJCQkJCQkJCQkJCQkJCSgkb25lcm93LT50b3RhbF91c2VycyAtICRvbmVyb3ctPnByb2Nlc3NlZF91c2VycykpLGZhbHNlLGZhbHNlLCd0YXJnZXQ9Il9ibGFuayInKTsKCQl9Cgl9Cgkkb25lcm93LT5kZWxldGUgPSAgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkZWxldGVNYWlsJywkcmV0dXJuaWQsJGRlbGV0ZSwKCQkJCQkJCQkJCQkJYXJyYXkoJ21haWxfdHlwZSc9PidhcmNoaXZlJywKCQkJCQkJCQkJCQkJCQknbWFpbF9pZCc9PiRhcmNoaXZlX21haWxbJ2lkJ10sCgkJCQkJCQkJCQkJCQkJJ2NsZWFyX2xvZyc9PiRjbGVhcl9sb2cpLAoJCQkJCQkJCQkJCSR0aGlzLT5sYW5nKCdkZWxldGVhcmNoaXZlY29uZmlybScpKTsKCgkkb25lcm93LT52aWV3X2xvZ3MgPSAnJm5ic3A7JzsKCWlmKCRhcmNoaXZlX21haWxbJ2Vycm9yY29kZSddPT0wICYmICRhcmNoaXZlX21haWxbJ2xvZ3MnXT09dHJ1ZSkgewoJCSRvbmVyb3ctPnZpZXdfbG9ncyA9ICAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ3ZpZXdMb2dzJywkcmV0dXJuaWQsJHZpZXdfbG9ncywKCQkJCQkJCQkJCQkJCWFycmF5KCdtYWlsX3R5cGUnPT4nYXJjaGl2ZScsCgkJCQkJCQkJCQkJCQkJJ2NsZWFyX2xvZyc9PiRjbGVhcl9sb2csCgkJCQkJCQkJCQkJCQkJJ2FyY2hpdmVfaWQnPT4kYXJjaGl2ZV9tYWlsWydpZCddKSk7CgoJfSBlbHNlIGlmICgkYXJjaGl2ZV9tYWlsWydlcnJvcmNvZGUnXT09MSAmJiAkYXJjaGl2ZV9tYWlsWydsb2dzJ109PXRydWUpIHsKCQlpZighZW1wdHkoJGdyb3VwcykpIHsKCQkJJG9uZXJvdy0+cmVzZW5kX2Vycm9yID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdwcmVwYXJlU2VuZE1haWwnLCRyZXR1cm5pZCwkcmVzZW5kX2Vycm9ycywKCQkJCQkJCQkJCQkJCWFycmF5KCd0YXNrJz0+J2Vycm9yJywKCQkJCQkJCQkJCQkJCQknbWFpbF90eXBlJz0+J2FyY2hpdmUnLAoJCQkJCQkJCQkJCQkJCSdjbGVhcl9sb2cnPT4kY2xlYXJfbG9nLAoJCQkJCQkJCQkJCQkJCSdtYWlsX2lkJz0+JGFyY2hpdmVfbWFpbFsnaWQnXSksCgkJCQkJCQkJCQkJJHRoaXMtPmxhbmcoJ3Jlc2VuZGVycm9yYXJjaGl2ZWNvbmZpcm1fZnVsbCcsCgkJCQkJCQkJCQkJCQkJJGdyb3Vwc19jb25maXJtLAoJCQkJCQkJCQkJCQkJCSRvbmVyb3ctPnRvdGFsX3VzZXJzLAoJCQkJCQkJCQkJCQkJCSRvbmVyb3ctPnByb2Nlc3NlZF91c2VycywKCQkJCQkJCQkJCQkJCQkkb25lcm93LT5yZWNpcGllbnRzLAoJCQkJCQkJCQkJCQkJCSgkb25lcm93LT5wcm9jZXNzZWRfdXNlcnMgLSBpbnR2YWwoJG9uZXJvdy0+cmVjaXBpZW50cykpKSxmYWxzZSxmYWxzZSwndGFyZ2V0PSJfYmxhbmsiJyk7CgkJfQoJCQoJCSRvbmVyb3ctPnZpZXdfbG9ncyA9ICAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ3ZpZXdMb2dzJywkcmV0dXJuaWQsJHZpZXdfZXJyb3Jsb2dzLAoJCQkJCQkJCQkJCQkJCWFycmF5KCdtYWlsX3R5cGUnPT4nYXJjaGl2ZScsCgkJCQkJCQkJCQkJCQkJCSdjbGVhcl9sb2cnPT4kY2xlYXJfbG9nLAoJCQkJCQkJCQkJCQkJCQknYXJjaGl2ZV9pZCc9PiRhcmNoaXZlX21haWxbJ2lkJ10pKTsKCX0KCgkkb25lcm93LT5yb3djbGFzcyA9ICRyb3djbGFzczsKCSRyb3djbGFzcyA9ICgkcm93Y2xhc3M9PSdyb3cxJz8ncm93Mic6J3JvdzEnKTsKCgkkYXJjaGl2ZV9tYWlsc19hcnJheVtdPSRvbmVyb3c7Cn0KCi8vIHByZXBhcmUgYXJyYXkgb2YgdGVtcCBtYWlscyB0byBhc3NpZ24gdG8gc21hcnR5CiR0bXBfbWFpbHNfYXJyYXk9YXJyYXkoKTsKJHJvd2NsYXNzID0gJ3JvdzEnOwpmb3JlYWNoKCR0bXBfbWFpbHMgYXMgJHRtcF9tYWlsKSB7CgoJLy8gaWYgbWFpbCBzaGFyZXMgbG9nIHdpdGggdG1wLi4uCgkvLyAoc2hvdWxkIG5ldmVyIGhhcHBlbiB1bmxlc3MgdGhlIHNjcmlwdCBpcyBpbnRlcnVwdGVkIGFmdGVyIHNlbmRpbmcKCS8vIHByb2Nlc3MgaXMgY29tcGxldGVkIGJ1dCBiZWZvcmUgdG1wIG1haWwgY291bGQgYmUgZGVsZXRlZCkKCWlmKGlzc2V0KCRhcmNoaXZlX21haWxzWyR0bXBfbWFpbFsnYXJjaGl2ZV9pZCddXSkgCgkmJiAkYXJjaGl2ZV9tYWlsc1skdG1wX21haWxbJ2FyY2hpdmVfaWQnXV1bJ3RtcF9pZCddPT0kdG1wX21haWxbJ2lkJ10pCgkJJGNsZWFyX2xvZyA9IGZhbHNlOwoJZWxzZQoJCSRjbGVhcl9sb2cgPSB0cnVlOwoKCSRvbmVyb3cgPSBuZXcgc3RkQ2xhc3MoKTsKCSRvbmVyb3ctPnNlbGVjdGVkID0gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdtYWlsLScuJHRtcF9tYWlsWydpZCddLAoJCQkJCQkJCSR0bXBfbWFpbFsnaWQnXS4nLScuJGNsZWFyX2xvZywnJyk7CgkJCgkkb25lcm93LT5zZW5kX2RhdGUgPSAkdG1wX21haWxbJ3NlbmRfZGF0ZSddOwoKCWlmKCFlbXB0eSgkdG1wX21haWxbJ3N1YmplY3QnXSkpIHsKCQkkc3ViamVjdCA9ICR0bXBfbWFpbFsnc3ViamVjdCddOwoJfSBlbHNlIHsKCQkkc3ViamVjdCA9ICR0aGlzLT5sYW5nKCdub3N1YmplY3QnKTsKCX0KCSRvbmVyb3ctPnN1YmplY3QgPSAgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdyZWFkTWFpbCcsJHJldHVybmlkLCRzdWJqZWN0LAoJCQkJCQkJCQkJCQkJCWFycmF5KCdtYWlsX3R5cGUnPT4ndG1wJywKCQkJCQkJCQkJCQkJCQknY2xlYXJfbG9nJz0+JGNsZWFyX2xvZywKCQkJCQkJCQkJCQkJCQknbWFpbF9pZCc9PiR0bXBfbWFpbFsnaWQnXSksCgkJCQkJCQkJCQknJyxmYWxzZSwnJywKCQkJCQkJCQkJCSd0aXRsZT0iJy4kdGhpcy0+bGFuZygncmVhZCcpLiciJyk7CgoJJHJvd19ncm91cHMgPSBhcnJheSgpOwoJJGdycHMgPSBleHBsb2RlKCc7JywkdG1wX21haWxbJ3JlY2lwaWVudF9ncm91cHMnXSk7CglpZighZW1wdHkoJGdycHNbMF0pKSB7CgkJZm9yZWFjaCgkZ3JwcyBhcyAkZ3JwKSB7CgkJCSRnID0gZXhwbG9kZSgnLCcsJGdycCk7CgkJCWlmKGlzc2V0KCRnWzFdKSkgewoJCQkJJHJvd19ncm91cHNbJGdbMF1dID0gJGdbMV07CgkJCX0KCQl9Cgl9CgkKCSRvbmVyb3ctPnJlY2lwaWVudF9ncm91cHMgPSBpbXBsb2RlKCI8YnIgLz4iLCRyb3dfZ3JvdXBzKTsKCSRncm91cHNfY29uZmlybSA9IHN0cl9yZXBsYWNlKCI8YnIgLz4iLCJcXG4iLCRvbmVyb3ctPnJlY2lwaWVudF9ncm91cHMpOwoJCglpZigkdG1wX21haWxbJ3Rhc2snXT09J2Vycm9yJykKCQkkb25lcm93LT50b3RhbF91c2VycyA9IGNvdW50KCR0aGlzLT5HZXRVc2Vyc0Vycm9ycygkdG1wX21haWxbJ2FfaWQnXSwwLDAsJz49Jywkcm93X2dyb3VwcykpOwoJZWxzZQoJCSRvbmVyb3ctPnRvdGFsX3VzZXJzID0gY291bnQoJHRoaXMtPkdldFVzZXJzKCRyb3dfZ3JvdXBzKSk7CgoJJG9uZXJvdy0+cHJvY2Vzc2VkX3VzZXJzID0gJHRtcF9tYWlsWydwcm9jZXNzZWRfdXNlcnMnXTsKCSRvbmVyb3ctPnJlY2lwaWVudHMgPSAkdG1wX21haWxbJ3JlY2lwaWVudHMnXTsKCQoJJHJlbWFpbmluZyA9ICgkb25lcm93LT50b3RhbF91c2VycyAtICRvbmVyb3ctPnByb2Nlc3NlZF91c2Vycyk7CglpZigkcmVtYWluaW5nPDApCgkJJHJlbWFpbmluZz0wOwoJCgkkb25lcm93LT5zZW50YnkgPSAkdG1wX21haWxbJ3NlbnRieSddOwoJJG9uZXJvdy0+cmVhZF9tYWlsID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdyZWFkTWFpbCcsJHJldHVybmlkLCRyZWFkLAoJCQkJCQkJCQkJCQkJYXJyYXkoJ21haWxfdHlwZSc9Pid0bXAnLAoJCQkJCQkJCQkJCQkJCSdjbGVhcl9sb2cnPT4kY2xlYXJfbG9nLAoJCQkJCQkJCQkJCQkJCSdtYWlsX2lkJz0+JHRtcF9tYWlsWydpZCddKSk7CgoJaWYoIWVtcHR5KCRncm91cHMpKSB7CgkJCgkJaWYoJHJlbWFpbmluZz4wKSB7CgoJCQkkb25lcm93LT5yZXNlbmRfbmV3ID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdwcmVwYXJlU2VuZE1haWwnLCRyZXR1cm5pZCwkY29udGludWVfdG1wLAoJCQkJCQkJCQkJCQkJCQlhcnJheSgndGFzayc9Pidjb250aW51ZScsCgkJCQkJCQkJCQkJCQkJCQknbWFpbF90eXBlJz0+J3RtcCcsCgkJCQkJCQkJCQkJCQkJCQknY2xlYXJfbG9nJz0+JGNsZWFyX2xvZywKCQkJCQkJCQkJCQkJCQkJCSdtYWlsX2lkJz0+JHRtcF9tYWlsWydpZCddKSwKCQkJCQkJCQkJCQkJCSR0aGlzLT5sYW5nKCdyZXNlbmRuZXd0bXBjb25maXJtX2Z1bGwnLAoJCQkJCQkJCQkJCQkJCQkJJGdyb3Vwc19jb25maXJtLAoJCQkJCQkJCQkJCQkJCQkJJG9uZXJvdy0+dG90YWxfdXNlcnMsCgkJCQkJCQkJCQkJCQkJCQkkb25lcm93LT5wcm9jZXNzZWRfdXNlcnMsCgkJCQkJCQkJCQkJCQkJCQkkb25lcm93LT5yZWNpcGllbnRzLAoJCQkJCQkJCQkJCQkJCQkJKCRvbmVyb3ctPnRvdGFsX3VzZXJzIC0gJG9uZXJvdy0+cHJvY2Vzc2VkX3VzZXJzKSksZmFsc2UsZmFsc2UsJ3RhcmdldD0iX2JsYW5rIicpOwoJCX0KCQkKCX0KCgkkb25lcm93LT5kZWxldGUgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RlbGV0ZU1haWwnLCRyZXR1cm5pZCwJJGRlbGV0ZSwKCQkJCQkJCQkJCQkJYXJyYXkoJ21haWxfdHlwZSc9Pid0bXAnLAoJCQkJCQkJCQkJCQkJCSdtYWlsX2lkJz0+JHRtcF9tYWlsWydpZCddLAoJCQkJCQkJCQkJCQkJCSdjbGVhcl9sb2cnPT4kY2xlYXJfbG9nKSwKCQkJCQkJCQkJCQkJJHRoaXMtPmxhbmcoJ2RlbGV0ZXRlbXBjb25maXJtJykpOwoKCSRvbmVyb3ctPnZpZXdfbG9ncyA9ICcmbmJzcDsnOwoJaWYoJHRtcF9tYWlsWydlcnJvcmNvZGUnXT09MCAmJiAkdG1wX21haWxbJ2xvZ3MnXT09dHJ1ZSkgewoJCSRvbmVyb3ctPnZpZXdfbG9ncyA9ICAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ3ZpZXdMb2dzJywkcmV0dXJuaWQsJHZpZXdfbG9ncywKCQkJCQkJCQkJCQkJCWFycmF5KCdhY3RpdmVfdGFiJz0+J3RtcCcsCgkJCQkJCQkJCQkJCQkJJ21haWxfdHlwZSc9Pid0bXAnLAoJCQkJCQkJCQkJCQkJCSdjbGVhcl9sb2cnPT4kY2xlYXJfbG9nLAoJCQkJCQkJCQkJCQkJCSdhcmNoaXZlX2lkJz0+JHRtcF9tYWlsWydhcmNoaXZlX2lkJ10sCgkJCQkJCQkJCQkJCQkJJ3RtcF9pZCc9PiR0bXBfbWFpbFsnaWQnXSkpOwoJCQkJCQkJCQkJCQkJCQoJfSBlbHNlIGlmKCR0bXBfbWFpbFsnZXJyb3Jjb2RlJ109PTEgJiYgJHRtcF9tYWlsWydsb2dzJ109PXRydWUpewoJCQoJCSRvbmVyb3ctPnZpZXdfbG9ncyA9ICAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ3ZpZXdMb2dzJywkcmV0dXJuaWQsJHZpZXdfZXJyb3Jsb2dzLAoJCQkJCQkJCQkJCQkJYXJyYXkoJ21haWxfdHlwZSc9Pid0bXAnLAoJCQkJCQkJCQkJCQkJCSdjbGVhcl9sb2cnPT4kY2xlYXJfbG9nLAoJCQkJCQkJCQkJCQkJCSdhcmNoaXZlX2lkJz0+JHRtcF9tYWlsWydhcmNoaXZlX2lkJ10sCgkJCQkJCQkJCQkJCQkJJ3RtcF9pZCc9PiR0bXBfbWFpbFsnaWQnXSkpOwoJfQoKCSRvbmVyb3ctPnJvd2NsYXNzID0gJHJvd2NsYXNzOwoJJHJvd2NsYXNzID0gKCRyb3djbGFzcz09J3JvdzEnPydyb3cyJzoncm93MScpOwoKCSR0bXBfbWFpbHNfYXJyYXlbXT0kb25lcm93Owp9CgovLyBpZiB0aGVyZSBhcmUgdGVtcCBtYWlscyBzaG93IGVycm9ybWVzc2FnZQppZighZW1wdHkoJHRtcF9tYWlsc19hcnJheSkpIHsKCSRlcnJvcm1lc3NhZ2UgLj0gJHRoaXMtPmxhbmcoJ2Vycm9yX3RtcG1haWxzJykuJzxiciAvPic7Cn0gZWxzZSBpZigkYWN0aXZlX3RhYj09J3RtcCcpIHsKCSRhY3RpdmVfdGFiPSdhcmNoaXZlJzsKfSBlbHNlIGlmICgkYWN0aXZlX3RhYj09J2xvZycgJiYgZW1wdHkoJGxvZ3MpKSB7CgkkYWN0aXZlX3RhYj0nYXJjaGl2ZSc7Cn0KCgovLyBzbWFydHkgc3R1ZmYKLy8gVGFiSGVhZGVycwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0VGFiSGVhZGVycycsJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlbmRUYWJIZWFkZXJzJywkdGhpcy0+RW5kVGFiSGVhZGVycygpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhcmNoaXZlJywkdGhpcy0+U2V0VGFiSGVhZGVyKCdhcmNoaXZlJywkdGhpcy0+bGFuZygnYXJjaGl2ZScpLAoJCQkJCQkJCQkJCQkJKCRhY3RpdmVfdGFiPT0nYXJjaGl2ZSc/dHJ1ZTonJykpKTsKCQkJCQkJCiR0aGlzLT5zbWFydHktPmFzc2lnbigndGVtcCcsJHRoaXMtPlNldFRhYkhlYWRlcigndGVtcCcsJHRoaXMtPmxhbmcoJ3RlbXAnKSwKCQkJCQkJCQkJCQkJCSgkYWN0aXZlX3RhYj09J3RtcCc/dHJ1ZTonJykpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwcmVmJywkdGhpcy0+U2V0VGFiSGVhZGVyKCdwcmVmJywkdGhpcy0+bGFuZygncHJlZicpLAoJCQkJCQkJCQkJCQkJKCRhY3RpdmVfdGFiPT0ncHJlZic/dHJ1ZTonJykpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdsb2cnLCR0aGlzLT5TZXRUYWJIZWFkZXIoJ2xvZycsJHRoaXMtPmxhbmcoJ2xvZ3MnKSwKCQkJCQkJCQkJCQkJCSgkYWN0aXZlX3RhYj09J2xvZyc/dHJ1ZTonJykpKTsKCi8vIHRoZSB0YWJzCiR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRNYWlsc1RhYicsJHRoaXMtPlN0YXJ0VGFiKCdhcmNoaXZlJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0VGVtcHNUYWInLCR0aGlzLT5TdGFydFRhYigndGVtcCcpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydFByZWZzVGFiJywkdGhpcy0+U3RhcnRUYWIoJ3ByZWYnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRMb2dzVGFiJywkdGhpcy0+U3RhcnRUYWIoJ2xvZycpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydFRhYkNvbnRlbnQnLCR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kVGFiQ29udGVudCcsJHRoaXMtPkVuZFRhYkNvbnRlbnQoKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kVGFiJywkdGhpcy0+RW5kVGFiKCkpOwoKLy8gZm9ybXMgc3R1ZmYKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydE1haWxzRm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsJ211bHRpQWN0aW9uJywKCQkJCQkJCQkJCQkJJHJldHVybmlkLCdwb3N0JywnJywnJywnJywKCQkJCQkJCQkJCQkJYXJyYXkoJ21haWxfdHlwZSc9PidhcmNoaXZlJykpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRUZW1wc0Zvcm0nLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdtdWx0aUFjdGlvbicsCgkJCQkJCQkJCQkJCSRyZXR1cm5pZCwncG9zdCcsJycsJycsJycsCgkJCQkJCQkJCQkJCWFycmF5KCdtYWlsX3R5cGUnPT4ndG1wJykpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRQcmVmc0Zvcm0nLAoJCQkJCQkJJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsJ3NhdmVQcmVmcycsJHJldHVybmlkKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0TG9nc0Zvcm0nLAoJCQkJCQkJJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsJ2NsZWFyTG9ncycsJHJldHVybmlkKSk7CgkJCQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZEZvcm0nLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2RlbGV0ZV9zZWxlY3RlZF9hcmNoaXZlJywKCQkJCQkJCQkJJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnc3VibWl0X2FyY2hpdmUnLAoJCQkJCQkJCQkJCSR0aGlzLT5sYW5nKCdkZWxldGVzZWxlY3RlZCcpLCcnLAoJCQkJCQkJCQkJCScnLCR0aGlzLT5sYW5nKCdkZWxldGVjb25maXJtJykpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignZGVsZXRlX3NlbGVjdGVkX3RtcCcsCgkJCSR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdF90bXAnLCR0aGlzLT5sYW5nKCdkZWxldGVzZWxlY3RlZCcpLAoJCQkJCQkJCQkJCScnLCcnLCR0aGlzLT5sYW5nKCdkZWxldGVjb25maXJtJykpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignZGVsZXRlX3NlbGVjdGVkX2xvZ3MnLAoJCQkkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdzdWJtaXRfbG9nJywkdGhpcy0+bGFuZygnZGVsZXRlc2VsZWN0ZWRsb2cnKSwKCQkJCQkJCQkJCQknJywnJywkdGhpcy0+bGFuZygnZGVsZXRlbG9nY29uZmlybScpKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdF9wcmVmcycsCgkJCSR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdF9wcmVmcycsJHRoaXMtPmxhbmcoJ3N1Ym1pdCcpKSk7CgovLyBnZW5lcmFsIHN0dWZmCiR0aGlzLT5zbWFydHktPmFzc2lnbignZGF0ZV90ZXh0JywkdGhpcy0+bGFuZygnZGF0ZScpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJqZWN0X3RleHQnLCR0aGlzLT5sYW5nKCdzdWJqZWN0JykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2dyb3Vwc190ZXh0JywkdGhpcy0+bGFuZygnZ3JvdXBzJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3JlY2lwaWVudHNfdGV4dCcsJHRoaXMtPmxhbmcoJ3JlY2lwaWVudHMnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigncmVhZG1haWxfdGV4dCcsJHRoaXMtPmxhbmcoJ3JlYWQnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZWRpdF90ZXh0JywkdGhpcy0+bGFuZygnZWRpdCcpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdsb2dzX3RleHQnLCR0aGlzLT5sYW5nKCdsb2dzJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Jlc2VuZF90ZXh0JywkdGhpcy0+bGFuZygncmVzZW5kJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2RlbGV0ZV90ZXh0JywkdGhpcy0+bGFuZygnZGVsZXRlJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Byb2Nlc3NlZHVzZXJzX3RleHQnLCR0aGlzLT5sYW5nKCdwcm9jZXNzZWR1c2VycycpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0b3RhbHVzZXJzX3RleHQnLCR0aGlzLT5sYW5nKCd0b3RhbHVzZXJzJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Jlc2VuZGFsbF90ZXh0JywkdGhpcy0+bGFuZygncmVzZW5kX2FsbCcpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyZXNlbmRuZXdhcmNoaXZlX3RleHQnLCR0aGlzLT5sYW5nKCdjb250aW51ZV9hcmNoaXZlJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Jlc2VuZG5ld3RtcF90ZXh0JywkdGhpcy0+bGFuZygnY29udGludWVfdG1wJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Jlc2VuZGVycm9yc190ZXh0JywkdGhpcy0+bGFuZygncmVzZW5kX2Vycm9ycycpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzZW50YnlfdGV4dCcsJHRoaXMtPmxhbmcoJ3NlbnRieScpKTsKCi8vIG1haWxzVGFiCiR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ21haWxzJywkYXJjaGl2ZV9tYWlsc19hcnJheSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignbWFpbHNjb3VudCcsY291bnQoJGFyY2hpdmVfbWFpbHNfYXJyYXkpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdub21haWxzJywkdGhpcy0+bGFuZygnbm9tYWlscycpKTsKaWYoIWVtcHR5KCRncm91cHMpKSB7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25ld21haWwnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnbmV3TWFpbCcsJHJldHVybmlkLAoJCQkJCQkJCQkJCSRuZXcuJyZuYnNwOycuJHRoaXMtPmxhbmcoJ25ld21haWwnKSkpOwp9CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3NlbGVjdGFsbF9hcmNoaXZlJywKCQkJCQkJCSR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnYXJjaGl2ZScsdHJ1ZSxmYWxzZSwKCQkJCQkJCQkJJ2lkPSJhcmNoaXZlIiBvbmNsaWNrPSJzZWxlY3RBbGwodGhpcykiJykpOwoKLy8gdGVtcG1haWxzVGFiCiR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ3RlbXBtYWlscycsJHRtcF9tYWlsc19hcnJheSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigndGVtcG1haWxzY291bnQnLGNvdW50KCR0bXBfbWFpbHNfYXJyYXkpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdub3RlbXBtYWlscycsJHRoaXMtPmxhbmcoJ25vdGVtcG1haWxzJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3NlbGVjdGFsbF90bXAnLAoJCQkJCQkJJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCd0bXAnLHRydWUsZmFsc2UsCgkJCQkJCQkJCQknaWQ9InRtcCIgb25jbGljaz0ic2VsZWN0QWxsKHRoaXMpIicpKTsKCi8vIHByZWZzVGFiCiR0aGlzLT5zbWFydHktPmFzc2lnbignYXV0b3NhdmVfdGV4dCcsJHRoaXMtPmxhbmcoJ2F1dG9zYXZlJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2F1dG9zYXZlX2lucHV0JywKCSR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2F1dG9zYXZlJywwKSAuIAoJJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdhdXRvc2F2ZScsMSwoJHRoaXMtPkdldFByZWZlcmVuY2UoImF1dG9zYXZlIix0cnVlKT09MT8xOicnKSkpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhdXRvY2xlYXJfYXJjaGl2ZW1haWxzX3RleHQnLCR0aGlzLT5sYW5nKCdhdXRvY2xlYXJfYXJjaGl2ZW1haWxzJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2F1dG9jbGVhcl9hcmNoaXZlbWFpbHNfaW5wdXQnLCAKCSR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2F1dG9jbGVhcl9hcmNoaXZlbWFpbHMnLDApIC4gCgkkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ2F1dG9jbGVhcl9hcmNoaXZlbWFpbHMnLDEsIAoJCQkJCQkJCQkoJHRoaXMtPkdldFByZWZlcmVuY2UoImF1dG9jbGVhcl9hcmNoaXZlbWFpbHMiLHRydWUpPT10cnVlPzE6JycpLAoJCQkJCQkJCQknb25jbGljaz0idG9nZ2xlQWN0aXZlKFwnYXV0b2NsZWFyXCcpIicpKTsKCQkJCQkJCQkJCiR0aGlzLT5zbWFydHktPmFzc2lnbignYXV0b2NsZWFyX3N0eWxlJywoJHRoaXMtPkdldFByZWZlcmVuY2UoImF1dG9jbGVhcl9hcmNoaXZlbWFpbHMiLHRydWUpPT0xPwoJCQkJJ3N0eWxlPSJkaXNwbGF5OmJsb2NrO3Zpc2liaWxpdHk6dmlzaWJsZSInOgoJCQkJJ3N0eWxlPSJkaXNwbGF5Om5vbmU7dmlzaWJpbGl0eTpjb2xsYXBzZSIgZGlzYWJsZWQ9ImRpc2FibGVkIicpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignYXV0b2NsZWFyX2FjdGlvbl90ZXh0JywkdGhpcy0+bGFuZygnYXV0b2NsZWFyX2FjdGlvbicpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhdXRvY2xlYXJfdmFsdWVfaW5wdXQnLCR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLAoJCQkJCQkJCQknYXV0b2NsZWFyX3ZhbHVlJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgiYXV0b2NsZWFyX3ZhbHVlIiwzKSwzLDUpKTsKCiRhdXRvY2xlYXJfdGltZXMgPSBhcnJheSgpOwokYXV0b2NsZWFyX3RpbWVzWyR0aGlzLT5sYW5nKCdkYXlzJyldID0gJ2RheSc7CiRhdXRvY2xlYXJfdGltZXNbJHRoaXMtPmxhbmcoJ3dlZWtzJyldID0gJ3dlZWsnOwokYXV0b2NsZWFyX3RpbWVzWyR0aGlzLT5sYW5nKCdtb250aHMnKV0gPSAnbW9udGgnOwokYXV0b2NsZWFyX3RpbWVzWyR0aGlzLT5sYW5nKCd5ZWFycycpXSA9ICd5ZWFyJzsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhdXRvY2xlYXJfdGltZV9pbnB1dCcsCgkJCQkJCQkkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2F1dG9jbGVhcl90aW1lJywKCQkJCQkJCQkJCSRhdXRvY2xlYXJfdGltZXMsJycsJHRoaXMtPkdldFByZWZlcmVuY2UoImF1dG9jbGVhcl90aW1lIiwnbW9udGgnKSkpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhdXRvY2xlYXJfdG1wbWFpbHNfdGV4dCcsJHRoaXMtPmxhbmcoJ2F1dG9jbGVhcl90bXBtYWlscycpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhdXRvY2xlYXJfdG1wbWFpbHNfaW5wdXQnLAoJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnYXV0b2NsZWFyX3RtcG1haWxzJywwKSAuIAoJJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdhdXRvY2xlYXJfdG1wbWFpbHMnLDEsKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJhdXRvY2xlYXJfdG1wbWFpbHMiLHRydWUpPT10cnVlPzE6JycpKSk7CgovLyBMT0dTCiR0aGlzLT5zbWFydHktPmFzc2lnbignc2F2ZWxvZ3NfdGV4dCcsJHRoaXMtPmxhbmcoJ3NhdmVfbG9ncycpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzYXZlbG9nc19pbnB1dCcsCgkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdzYXZlX2xvZ3MnLDApIC4gCgkkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ3NhdmVfbG9ncycsMSwKCQkJCQkJCQkJKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJzYXZlX2xvZ3MiLHRydWUpPT10cnVlPzE6JycpLAoJCQkJCQkJCQknb25jbGljaz0idG9nZ2xlQWN0aXZlKFwnc2F2ZV9sb2dzXCcpIicpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzYXZlbG9nc19zdHlsZScsKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJzYXZlX2xvZ3MiLHRydWUpPT10cnVlPwoJCQkJCQkJCQkJCQkJJ3N0eWxlPSJkaXNwbGF5OmJsb2NrOwoJCQkJCQkJCQkJCQkJCQl2aXNpYmlsaXR5OnZpc2libGUiJzoKCQkJCQkJCQkJCQkJCSdzdHlsZT0iZGlzcGxheTpub25lOwoJCQkJCQkJCQkJCQkJCQl2aXNpYmlsaXR5OmNvbGxhcHNlIiAKCQkJCQkJCQkJCQkJCQkJZGlzYWJsZWQ9ImRpc2FibGVkIicpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignc2F2ZV9lcnJvcmxvZ3Nfb25seV90ZXh0JywKCQkJCQkJCQkJCQkkdGhpcy0+bGFuZygnc2F2ZV9lcnJvcmxvZ3Nfb25seScpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzYXZlX2Vycm9ybG9nc19vbmx5X2lucHV0JywKCSR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ3NhdmVfZXJyb3Jsb2dzX29ubHknLDApIC4gCgkkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ3NhdmVfZXJyb3Jsb2dzX29ubHknLDEsCgkJKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJzYXZlX2Vycm9ybG9nc19vbmx5Iix0cnVlKT09dHJ1ZT8xOicnKSkpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhdXRvY2xlYXJfbG9nc190ZXh0JywkdGhpcy0+bGFuZygnYXV0b2NsZWFyX2xvZ3MnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignYXV0b2NsZWFyX2xvZ3NfaW5wdXQnLAoJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnYXV0b2NsZWFyX2xvZ3MnLDApIC4gCgkkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ2F1dG9jbGVhcl9sb2dzJywxLAoJCSgkdGhpcy0+R2V0UHJlZmVyZW5jZSgiYXV0b2NsZWFyX2xvZ3MiLGZhbHNlKT09MT8xOicnKSkpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdkZWZhdWx0X2dyb3Vwc190ZXh0JywkdGhpcy0+bGFuZygnZGVmYXVsdF9ncm91cHMnKSk7CgppZighZW1wdHkoJGdyb3VwcykpIHsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignZGVmYXVsdF9ncm91cHNfaW5wdXQnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2RlZmF1bHRfZ3JvdXBzJywnJykgLiAKCQkkdGhpcy0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwnZGVmYXVsdF9ncm91cHNbXScsCgkJCSRncm91cHMsJHNlbGVjdGVkX2dyb3Vwcyxjb3VudCgkZ3JvdXBzKSwnJywxKSk7Cn0gZWxzZSB7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2RlZmF1bHRfZ3JvdXBzX2lucHV0JywkdGhpcy0+bGFuZygnZXJyb3JfZ3JvdXBzJykpOwp9CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lzX2h0bWxfdGV4dCcsJHRoaXMtPmxhbmcoJ2lzX2h0bWwnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignaXNfaHRtbF9pbnB1dCcsCgkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdpc19odG1sJywnJykgLiAKCSR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnaXNfaHRtbCcsMSwKCQkoJHRoaXMtPkdldFByZWZlcmVuY2UoImlzX2h0bWwiLGZhbHNlKSAmJiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgiaXNfaHRtbCIsZmFsc2UpPT10cnVlPzE6JycpKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21heG1haWxzX3RleHQnLCR0aGlzLT5sYW5nKCdtYXhtYWlscycpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtYXhtYWlsc19pbnB1dCcsCgkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnbWF4bWFpbHMnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJtYXhtYWlscyIsNTApLDMsNikpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyZXF1ZXN0X2RlbGF5X3RleHQnLCR0aGlzLT5sYW5nKCdyZXF1ZXN0X2RlbGF5JykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3JlcXVlc3RfZGVsYXlfaW5wdXQnLCR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLAoJJ3JlcXVlc3RfZGVsYXknLCgkdGhpcy0+R2V0UHJlZmVyZW5jZSgicmVxdWVzdF9kZWxheSIsJycpPT0wPycnOiR0aGlzLT5HZXRQcmVmZXJlbmNlKCJyZXF1ZXN0X2RlbGF5IiwnJykpLDUsNSkpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyYW5kb21fZGVsYXlfdGV4dCcsJHRoaXMtPmxhbmcoJ3JhbmRvbV9kZWxheScpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyYW5kb21fZGVsYXlfaW5wdXQnLAoJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwncmFuZG9tX2RlbGF5JywnJykgLiAKCSR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwncmFuZG9tX2RlbGF5JywxLAoJCSgkdGhpcy0+R2V0UHJlZmVyZW5jZSgicmFuZG9tX2RlbGF5IixmYWxzZSkgJiYgJHRoaXMtPkdldFByZWZlcmVuY2UoInJhbmRvbV9kZWxheSIsZmFsc2UpPT10cnVlPzE6JycpKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3NlbGVjdGFsbF9sb2dzJywKCSR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnbG9ncycsdHJ1ZSxmYWxzZSwnaWQ9ImxvZ3MiIG9uY2xpY2s9InNlbGVjdEFsbCh0aGlzKSInKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdsb2dzJywkbG9ncyk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigndmlld190ZXh0JywkdGhpcy0+bGFuZygndmlldycpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdsb2dzX2NvdW50Jyxjb3VudCgkbG9ncykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2hlYWRpbmcnLCR0aGlzLT5sYW5nKCdhZG1pbnBhbmVsJykpOwoKaWYoJGVycm9ybWVzc2FnZSE9JycpCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Vycm9ybWVzc2FnZScsJGVycm9ybWVzc2FnZSk7CgppZigkbWVzc2FnZSE9JycpCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21lc3NhZ2UnLCRvay4nJm5ic3A7Jy4kbWVzc2FnZSk7CgovLyBEaXNwbGF5IHRoZSBwb3B1bGF0ZWQgdGVtcGxhdGUKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbnBhbmVsLnRwbCcpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.deleteMail.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEZyb250ZW5kVXNlciBNYWlsZXIgKGMpIDIwMDgtMjAxMCBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkKIyAgICAgICAgICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGJhY2tlbmQgdXNlcnMgYWJpbGl0eSAKIyAgICAgICAgICB0byBlYXNpbHkgc2VuZCBhbiBlbWFpbCB0byBhbGwgZnJvbnRlbmQgdXNlcnMgb3IganVzdCBzcGVjaWZpYyBmcm9udC0KIyAgICAgICAgICBlbmQgdXNlcmdyb3VwcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZCB3ZWJzaXRlLgojIFZlcnNpb246IDAuOS40CiMgRmlsZSAgIDogYWN0aW9uLmRlbGV0ZU1haWwucGhwCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNC0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgppZighaXNfb2JqZWN0KGNtc21zKCkpKQoJZXhpdDsKCmlmKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdVc2UgRkVVTWFpbGVyJykpIHsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsJHJldHVybmlkLAoJCQkJCSR0aGlzLT5MYW5nKCdlcnJvcl9wZXJtaXNzaW9ucycpKTsKfQoKaWYoaXNzZXQoJHBhcmFtc1snbWFpbF90eXBlJ10pICYmICFlbXB0eSgkcGFyYW1zWydtYWlsX3R5cGUnXSkpIHsKCSRtYWlsX3R5cGUgPSB0cmltKCRwYXJhbXNbJ21haWxfdHlwZSddKTsKfSBlbHNlIHsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsJHJldHVybmlkLAoJCSR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnLCdtYWlsX3R5cGUnLCdkZWxldGVNYWlsJykpOwp9CgokYWN0aXZlX3RhYiA9ICRtYWlsX3R5cGU7CgppZihpc3NldCgkcGFyYW1zWydtYWlsX2lkJ10pKSB7CgkkbWFpbF9pZCA9IGludHZhbCh0cmltKCRwYXJhbXNbJ21haWxfaWQnXSkpOwp9IGVsc2UgewoJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwkcmV0dXJuaWQsCgkJJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycsJ21haWxfaWQnLCdkZWxldGVNYWlsJykpOwp9CgppZighJHRoaXMtPkRlbGV0ZU1haWwoJG1haWxfdHlwZSwkbWFpbF9pZCkgJiYgKCFpc3NldCgkcGFyYW1zWydvdXRwdXQnXSkgfHwgJHBhcmFtc1snb3V0cHV0J10hPWZhbHNlKSkKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsJHJldHVybmlkLAoJCQkJCQkJCQkJJHRoaXMtPmxhbmcoJ2Vycm9yX2RiX2RlbGV0ZW1haWwnLCRxdWVyeSkpOwoKaWYoJHRoaXMtPkdldFByZWZlcmVuY2UoImF1dG9jbGVhcl9sb2dzIixmYWxzZSkpIHsKCWlmKGlzc2V0KCRwYXJhbXNbJ2NsZWFyX2xvZyddKSAmJiAkcGFyYW1zWydjbGVhcl9sb2cnXT09dHJ1ZSkgewoJCWlmKCEkdGhpcy0+RGVsZXRlTG9nKCRtYWlsX3R5cGUsJG1haWxfaWQpICYmICghaXNzZXQoJHBhcmFtc1snb3V0cHV0J10pIHx8ICRwYXJhbXNbJ291dHB1dCddIT1mYWxzZSkpCgkJCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsJHJldHVybmlkLAoJCQkJCQkJCSR0aGlzLT5sYW5nKCdlcnJvcl9kYl9kZWxldGVsb2dzJywkcXVlcnkpKTsKCX0KfQoKaWYoIWlzc2V0KCRwYXJhbXNbJ291dHB1dCddKSB8fCAkcGFyYW1zWydvdXRwdXQnXSE9ZmFsc2UpIHsKCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGFycmF5KCdhY3RpdmVfdGFiJz0+JG1haWxfdHlwZSwKCQkJCQkJCQknbWVzc2FnZSc9PiR0aGlzLT5sYW5nKCRtYWlsX3R5cGUuJ21haWxkZWxldGVkJykpKTsKfSBlbHNlCglyZXR1cm4gVFJVRTsKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.editMail.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEZyb250ZW5kVXNlciBNYWlsZXIgKGMpIDIwMDgtMjAxMCBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkKIyAgICAgICAgICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGJhY2tlbmQgdXNlcnMgYWJpbGl0eSAKIyAgICAgICAgICB0byBlYXNpbHkgc2VuZCBhbiBlbWFpbCB0byBhbGwgZnJvbnRlbmQgdXNlcnMgb3IganVzdCBzcGVjaWZpYyBmcm9udC0KIyAgICAgICAgICBlbmQgdXNlcmdyb3VwcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZCB3ZWJzaXRlLgojIFZlcnNpb246IDAuOS40CiMgRmlsZSAgIDogYWN0aW9uLmVkaXRNYWlsLnBocAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDQtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKaWYoIWlzX29iamVjdChjbXNtcygpKSkKCWV4aXQ7CgppZighJHRoaXMtPkNoZWNrUGVybWlzc2lvbignVXNlIEZFVU1haWxlcicpKSB7CglyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCRyZXR1cm5pZCwKCQkJCQkJCQkJCQkJJHRoaXMtPkxhbmcoJ2Vycm9yX3Blcm1pc3Npb25zJykpOwp9CgppZihpc3NldCgkcGFyYW1zWydzdWJtaXRfZm9ybSddKSkKCSRzdWJtaXQgPSAkcGFyYW1zWydzdWJtaXRfZm9ybSddOwoKIyBUb0RvOiBDaGVjayBpZiB0aGlzIGlzIG5lZWRlZCEKI2lmKGlzc2V0KCRzdWJtaXQpICYmICRzdWJtaXQ9PSdlcnJvcicpCiMJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ3ByZXBhcmVTZW5kTWFpbCcsICRyZXR1cm5pZCwkcGFyYW1zKTsKCmlmKGlzc2V0KCRwYXJhbXNbJ21haWxfaWQnXSkpIHsKCSRtYWlsX2lkID0gaW50dmFsKHRyaW0oJHBhcmFtc1snbWFpbF9pZCddKSk7Cn0gZWxzZSB7CgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkKTsKfQoKaWYoaXNzZXQoJHBhcmFtc1snbWFpbF90eXBlJ10pICYmICFlbXB0eSgkcGFyYW1zWydtYWlsX3R5cGUnXSkpIHsKCSRtYWlsX3R5cGUgPSB0cmltKCRwYXJhbXNbJ21haWxfdHlwZSddKTsKfSBlbHNlIHsKCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQpOwp9CgppZihpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpIHsKCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIAoJCQkJCQkJCQkJCQlhcnJheSgnYWN0aXZlX3RhYic9PiRtYWlsX3R5cGUpKTsKfQoKJGVycm9yIAkJCQk9IGZhbHNlOwokZXJyb3JtZXNzYWdlIAkJPSAnJzsKJHNlbF9ncm91cHMgCQk9IGFycmF5KCk7CiRyZWNfZ3JvdXBzIAkJPSBhcnJheSgpOwokY2hlY2tfZ3JvdXBzIAkJPSBhcnJheSgpOwokc2VsZWN0ZWRfZ3JvdXBzIAk9IGFycmF5KCk7CiRzdWJqZWN0IAkJCT0gJyc7CiRtYWlsYm9keSAJCQk9ICcnOwokc2VudGJ5IAkJCT0gJyc7CiRsYXN0X3VzZXJpZCAJCT0gMDsKJHNlbmRfZGF0ZSAJCQk9ICcnOwokcHJvY2Vzc2VkX3VzZXJzIAk9IDA7CiRyZWNpcGllbnRzIAkJPSAwOwokZXJyb3Jjb2RlIAkJCT0gMDsKCiRjbGVhcl9sb2cgPSBmYWxzZTsKaWYoaXNzZXQoJHBhcmFtc1snY2xlYXJfbG9nJ10pICYmICRwYXJhbXNbJ2NsZWFyX2xvZyddPT10cnVlKSB7CgkkY2xlYXJfbG9nID0gdHJ1ZTsKfQoKLy8gZ2V0IG1haWwgZGF0YQokbWFpbCA9ICR0aGlzLT5HZXRNYWlsKCRtYWlsX2lkLCRtYWlsX3R5cGUpOwppZigkbWFpbCE9ZmFsc2UpIHsKCgkkZ3Jwcz1leHBsb2RlKCc7JywkbWFpbFsncmVjaXBpZW50X2dyb3VwcyddKTsKCWlmKCFlbXB0eSgkZ3JwcykpIHsKCQlmb3JlYWNoKCRncnBzIGFzICRncnApIHsKCQkJaWYoIWVtcHR5KCRncnApKSB7CgkJCQkkZyA9IGV4cGxvZGUoJywnLCRncnApOwoJCQkJaWYoaXNzZXQoJGdbMV0pKSB7CgkJCQkJJHNlbF9ncm91cHNbJGdbMF1dIAkJPSAkZ1sxXTsKCQkJCQkkY2hlY2tfZ3JvdXBzWyRnWzBdXSAJPSAkZ1sxXTsKCQkJCQkkcmVjX2dyb3Vwc1tdIAkJCT0gJGdbMF0uJywnLiRnWzFdOwoJCQkJfQoJCQl9CgkJfQoJfQoJJHN1YmplY3QgCQkJPSAkbWFpbFsnc3ViamVjdCddOwoJJG1haWxib2R5IAkJCT0gJG1haWxbJ21haWxib2R5J107Cgkkc2VudGJ5IAkJCT0gJG1haWxbJ3VzZXJuYW1lJ107CgkkbGFzdF91c2VyaWQgCQk9ICRtYWlsWydsYXN0X3VzZXJpZCddOwoJJHNlbmRfZGF0ZSAJCQk9ICRtYWlsWydzZW5kX2RhdGUnXTsKCSRwcm9jZXNzZWRfdXNlcnMgCT0gJG1haWxbJ3Byb2Nlc3NlZF91c2VycyddOwoJJHJlY2lwaWVudHMgCQk9ICRtYWlsWydyZWNpcGllbnRzJ107CgkKCWlmKCRtYWlsWydyZWNpcGllbnRzJ109PSRtYWlsWydwcm9jZXNzZWRfdXNlcnMnXSkKCQkkZXJyb3Jjb2RlIAk9IDA7CgllbHNlCgkJJGVycm9yY29kZSAJPSAxOwoJCglpZigkbWFpbFsnbG9ncyddPjApCgkJJGxvZ3MgCQkJPSB0cnVlOwoJZWxzZQoJCSRsb2dzIAkJCT0gZmFsc2U7Cn0KCi8vIGdldCBmZXVzZXJncm91cHMKJGdyb3VwcyA9ICR0aGlzLT5HZXRHcm91cHMoKTsKLy8gaWYgbm8gZ3JvdXBzIC0+IGRpc3BsYXkgZXJyb3JtZXNzYWdlCmlmKGVtcHR5KCRncm91cHMpKSB7CgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAKCQkJCQkJCWFycmF5KCdlcnJvcm1lc3NhZ2UnPT4kdGhpcy0+TGFuZygnZXJyb3JfZ3JvdXBzJykpKTsKCn0KCmZvcmVhY2goJGdyb3VwcyBhcyAkaz0+JHYpIHsKCSRncnBfdmFycyA9IGV4cGxvZGUoJywnLCR2KTsKCWlmKGlzc2V0KCRncnBfdmFyc1syXSkgJiYgaXNzZXQoJHNlbF9ncm91cHNbJGdycF92YXJzWzBdXSkpIHsKCQkkc2VsZWN0ZWRfZ3JvdXBzWyRncnBfdmFyc1sxXS4iICgiLiRncnBfdmFyc1syXS4iICIuJHRoaXMtPmxhbmcoInVzZXJzIikuIikiXSA9IGltcGxvZGUoIiwiLCRncnBfdmFycyk7Cgl9Cn0KCmlmKGlzc2V0KCRwYXJhbXNbJ3N1YmplY3QnXSkgJiYgIWVtcHR5KCRwYXJhbXNbJ3N1YmplY3QnXSkpIHsKCSRzdWJqZWN0ID0gdHJpbSgkcGFyYW1zWydzdWJqZWN0J10pOwp9CgppZihpc3NldCgkcGFyYW1zWydtYWlsYm9keSddKSkgewoJJG1haWxib2R5ID0gdHJpbSgkcGFyYW1zWydtYWlsYm9keSddKTsKfQoKJGF1dG9zYXZlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoImF1dG9zYXZlIix0cnVlKTsKaWYoaXNzZXQoJHBhcmFtc1snYXV0b3NhdmUnXSkgJiYgaXNzZXQoJHN1Ym1pdCkpIHsKCSRhdXRvc2F2ZT10cnVlOwp9IGVsc2UgaWYoIWlzc2V0KCRwYXJhbXNbJ2F1dG9zYXZlJ10pICYmIGlzc2V0KCRzdWJtaXQpKSB7CgkkYXV0b3NhdmU9ZmFsc2U7Cn0KCmlmKGlzc2V0KCRwYXJhbXNbJ2dyb3VwcyddKSAmJiAhZW1wdHkoJHBhcmFtc1snZ3JvdXBzJ10pCiAgICYmIGlzX2FycmF5KCRwYXJhbXNbJ2dyb3VwcyddKSkgewoJdW5zZXQoJHNlbGVjdGVkX2dyb3Vwcyk7Cgl1bnNldCgkY2hlY2tfZ3JvdXBzKTsKCXVuc2V0KCRyZWNfZ3JvdXBzKTsKCSRzZWxlY3RlZF9ncm91cHMgPSBhcnJheSgpOwoJJGNoZWNrX2dyb3VwcyA9IGFycmF5KCk7CgkkcmVjX2dyb3VwcyA9IGFycmF5KCk7Cglmb3JlYWNoKCRwYXJhbXNbJ2dyb3VwcyddIGFzICRncm91cCkgewoJCWlmKCFlbXB0eSgkZ3JvdXApKSB7CgkJCSRnID0gZXhwbG9kZSgnLCcsdHJpbSgkZ3JvdXApKTsKCQkJaWYoaXNzZXQoJGdbMl0pKSB7CgkJCQkkc2VsZWN0ZWRfZ3JvdXBzWyRnWzFdLiIgKCIuJGdbJzInXS4iICIuJHRoaXMtPmxhbmcoInVzZXJzIikuIikiXSA9ICRnWzBdLiIsIi4kZ1sxXS4iLCIuJGdbMl07CgkJCQkkY2hlY2tfZ3JvdXBzWyRnWzBdXT0kZ1sxXTsKCQkJCSRyZWNfZ3JvdXBzW10gPSAkZ1swXS4nLCcuJGdbMV07CgkJCX0KCQl9Cgl9Cn0KCmlmKGlzc2V0KCRzdWJtaXQpKSB7CgkkdXNlcnMgPSBjb3VudCgkdGhpcy0+R2V0VXNlcnMoJGNoZWNrX2dyb3VwcykpOwoJaWYoZW1wdHkoJHNlbGVjdGVkX2dyb3VwcykpIHsKCQkkZXJyb3IgPSB0cnVlOwoJCSRlcnJvcm1lc3NhZ2UgLj0gJHRoaXMtPmxhbmcoJ2Vycm9yX3NlbGVjdGVkZ3JvdXBzJykuJzxiciAvPic7Cgl9IGVsc2UgewoJCWlmKCR1c2Vycz09MCkgewoJCQkkZXJyb3IgPSB0cnVlOwoJCQkkZXJyb3JtZXNzYWdlIC49ICR0aGlzLT5sYW5nKCdlcnJvcl9ub3VzZXJzZm91bmQnKS4nPGJyIC8+JzsKCQl9Cgl9CglpZihlbXB0eSgkbWFpbGJvZHkpKSB7CgkJJGVycm9yID0gdHJ1ZTsKCQkkZXJyb3JtZXNzYWdlIC49ICR0aGlzLT5sYW5nKCdlcnJvcl9tYWlsYm9keScpLic8YnIgLz4nOwoJfQoJCiMjIyBkbyBhY3Rpb24gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgoJaWYoJGVycm9yPT1mYWxzZSkgewoJCSRyZWNpcGllbnRfZ3JvdXBzID0gaW1wbG9kZSgiOyIsJHNlbGVjdGVkX2dyb3Vwcyk7CgkJaWYoJHN1Ym1pdCA9PSAnYWxsJykgewoJCQkKCQkJJGxhc3RfdXNlcmlkIAkJCT0gMDsKCQkJJHByb2Nlc3NlZF91c2VycyAJCT0gMDsKCQkJJHJlY2lwaWVudHMgCQkJPSAwOwoJCQkKCQl9CgoJCSRyZXQgPSAkdGhpcy0+Y3JlYXRlVGVtcE1haWwoJHJlY2lwaWVudF9ncm91cHMsCgkJCQkJCQkJCQkkc3ViamVjdCwKCQkJCQkJCQkJCSRtYWlsYm9keSwKCQkJCQkJCQkJCSRsYXN0X3VzZXJpZCwKCQkJCQkJCQkJCSRwcm9jZXNzZWRfdXNlcnMsCgkJCQkJCQkJCQkkcmVjaXBpZW50cywKCQkJCQkJCQkJCSRzdWJtaXQsCgkJCQkJCQkJCQknJywKCQkJCQkJCQkJCSRhdXRvc2F2ZSk7CgkJaWYoISRyZXRbMF0pIHsKCQkJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwkcmV0dXJuaWQsJHJldFsxXSk7CgkJfSBlbHNlIHsKCQkJJHBhcm1zWydtYWlsX2lkJ10gCQk9ICRyZXRbMV07CgkJCSRwYXJtc1snbWFpbF90eXBlJ10gCT0gJ3RtcCc7CgkJCSR0aGlzLT5Eb0FjdGlvbigncHJlcGFyZVNlbmRNYWlsJywkaWQsJHBhcm1zLCRyZXR1cm5pZCk7CgkJCXJldHVybjsKCQl9Cgl9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKfQoKLy8gc21hcnR5IHN0dWZmCiR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRGb3JtJywKCQkkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2VkaXRNYWlsJywgJHJldHVybmlkLCAncG9zdCcsICcnLCBmYWxzZSwgJ215Rm9ybScpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlbmRGb3JtJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignaWQnLCRpZCk7CiRzbWFydHktPmFzc2lnbigndXJsJywgc3RyX3JlcGxhY2UoJyZhbXA7JywgJyYnLCAKCSR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZ2V0VXNlcnMnLCRyZXR1cm5pZCwnJywKCQlhcnJheSgnbWFpbF90eXBlJz0+JG1haWxfdHlwZSwKCQkJJ21haWxfaWQnPT4kbWFpbF9pZCwKCQkJJ2Rpc2FibGVfdGhlbWUnPT50cnVlLAoJCQknYWpheCc9PnRydWUpLCAnJywgdHJ1ZSkpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignZXJyb3JfYWpheCcsJHRoaXMtPmxhbmcoJ2Vycm9yX2FqYXgnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignbm91c2VycycsICR0aGlzLT5sYW5nKCdlcnJvcl9ub3VzZXJzZm91bmQnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignbm9ncm91cHMnLCAkdGhpcy0+bGFuZygnZXJyb3Jfc2VsZWN0ZWRncm91cHMnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignbm9tZXNzYWdlJywgJHRoaXMtPmxhbmcoJ2Vycm9yX21haWxib2R5JykpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyZXNlbmRfYWxsJywkdGhpcy0+bGFuZygncmVzZW5kX2FsbCcpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyZXNlbmRfbmV3JywkdGhpcy0+bGFuZygnY29udGludWVfJy4kbWFpbF90eXBlKSk7CmlmKCRsb2dzPT10cnVlKQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyZXNlbmRfZXJyb3InLCR0aGlzLT5sYW5nKCdyZXNlbmRfZXJyb3JzJykpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyZXNlbmRhbGxfY29uZmlybScsJHRoaXMtPmxhbmcoJ3Jlc2VuZGFsbCcuJG1haWxfdHlwZS4nY29uZmlybScpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyZXNlbmRuZXdfY29uZmlybScsJHRoaXMtPmxhbmcoJ3Jlc2VuZG5ldycuJG1haWxfdHlwZS4nY29uZmlybScpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyZXNlbmRlcnJvcl9jb25maXJtJywkdGhpcy0+bGFuZygncmVzZW5kZXJyb3InLiRtYWlsX3R5cGUuJ2NvbmZpcm0nKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RvdGFsdXNlcnMnLCR0aGlzLT5sYW5nKCd0b3RhbHVzZXJzJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Byb2Nlc3NlZF91c2VycycsJHRoaXMtPmxhbmcoJ3Byb2Nlc3NlZHVzZXJzJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3JlY2lwaWVudHMnLCR0aGlzLT5sYW5nKCdyZWNpcGllbnRzJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3JlbWFpbmluZycsJHRoaXMtPmxhbmcoJ3JlbWFpbmluZycpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdncm91cHNfY2hhbmdlZCcsJHRoaXMtPmxhbmcoJ2dyb3Vwc19jaGFuZ2VkJykpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLAoJCQkJJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnY2FuY2VsJywkdGhpcy0+bGFuZygnY2FuY2VsJykpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignZ3JvdXBzX3RleHQnLCR0aGlzLT5sYW5nKCdncm91cHMnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZ3JvdXBzX2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwnZ3JvdXBzW10nLAoJCQkJCSRncm91cHMsJHNlbGVjdGVkX2dyb3Vwcyxjb3VudCgkZ3JvdXBzKSwnaWQ9Imdyb3VwcyInLHRydWUpKTsKCi8vIHByZWZzCiR0aGlzLT5zbWFydHktPmFzc2lnbignc2F2ZV90ZXh0JywkdGhpcy0+bGFuZygnc2F2ZScpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzYXZlX2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsCgkJCQkJCQkJCQkJJ2F1dG9zYXZlJywxLCgkYXV0b3NhdmU9PXRydWU/MTonJykpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignc3ViamVjdF90ZXh0JywkdGhpcy0+bGFuZygnc3ViamVjdCcpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJqZWN0X2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnc3ViamVjdCcsCgkJCQkJCQkJCQkJCQkJCQkkc3ViamVjdCw2NCwxMjgpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignaGlkZGVuJywkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdtYWlsX2lkJywkbWFpbF9pZCkuCgkJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnbWFpbF90eXBlJywkbWFpbF90eXBlKS4KCQkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnc3VibWl0X2Zvcm0nLCBmYWxzZSwgJ2lkPSJzdWJtaXRfZm9ybSInKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21haWxib2R5X3RleHQnLCR0aGlzLT5sYW5nKCdtZXNzYWdlJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21haWxib2R5X2lucHV0JywKJHRoaXMtPkNyZWF0ZVRleHRBcmVhKCgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaXNfaHRtbCcsZmFsc2UpPT10cnVlP3RydWU6ZmFsc2UpLAoJCQkJCQkkaWQsCgkJCQkJCSRtYWlsYm9keSwKCQkJCQkJJ21haWxib2R5JywKCQkJCQkJJycsCgkJCQkJCSdtZXNzYWdlJykpOwoKaWYoJGVycm9ybWVzc2FnZSE9JycpIHsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignZXJyb3JtZXNzYWdlJywkZXJyb3JtZXNzYWdlKTsKfQoKLy8gRGlzcGxheSB0aGUgcG9wdWxhdGVkIHRlbXBsYXRlCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdE1haWwudHBsJyk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.getUsers.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEZyb250ZW5kVXNlciBNYWlsZXIgKGMpIDIwMDgtMjAxMCBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkKIyAgICAgICAgICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGJhY2tlbmQgdXNlcnMgYWJpbGl0eSAKIyAgICAgICAgICB0byBlYXNpbHkgc2VuZCBhbiBlbWFpbCB0byBhbGwgZnJvbnRlbmQgdXNlcnMgb3IganVzdCBzcGVjaWZpYyBmcm9udC0KIyAgICAgICAgICBlbmQgdXNlcmdyb3VwcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZCB3ZWJzaXRlLgojIFZlcnNpb246IDAuOS40CiMgRmlsZSAgIDogYWN0aW9uLmdldFVzZXJzLnBocAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDQtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKaWYoIWlzX29iamVjdChjbXNtcygpKSkKCWV4aXQ7CgppZighJHRoaXMtPkNoZWNrUGVybWlzc2lvbignVXNlIEZFVU1haWxlcicpKSB7CglleGl0Owp9CgokdG90YWxfdXNlcnMgPSAkcHJvY2Vzc2VkX3VzZXJzID0gJHJlY2lwaWVudHMgPSAwOwokc2VsZWN0ZWRfZ3JvdXBzID0gYXJyYXkoKTsKJHJlY2lwaWVudF9ncm91cHMgPSBhcnJheSgpOwokZ3JvdXBzX2NoYW5nZWQgPSAwOwokbWVzc2FnZSA9ICcnOwokbWFpbF9pZCA9IDA7CgokcmVzZW5kID0gJ2FsbCc7CmlmKGlzc2V0KCRwYXJhbXNbJ3Jlc2VuZCddKSkKCSRyZXNlbmQgPSB0cmltKCRwYXJhbXNbJ3Jlc2VuZCddKTsKCmlmKGlzc2V0KCRwYXJhbXNbJ21haWxfaWQnXSkpCgkkbWFpbF9pZCA9ICRwYXJhbXNbJ21haWxfaWQnXTsKCmZvcmVhY2goJHBhcmFtcyBhcyAkbmFtZT0+JHZhbHVlKSB7CglpZihzdGFydHN3aXRoKCRuYW1lLCAnZ3JvdXBfJykpIHsKCQkkdiA9IGV4cGxvZGUoIiwiLCR2YWx1ZSk7CgkJaWYoaXNzZXQoJHZbMV0pKQoJCQkkc2VsZWN0ZWRfZ3JvdXBzWyR2WzBdXT0kdlsxXTsKCX0KfQoKaWYoJG1haWxfaWQgPiAwKSB7CgkkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldW1haWxlcl9hcmNoaXZlCgkJCQlXSEVSRSBpZD0iLiRtYWlsX2lkLiIgTElNSVQgMSI7CgkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCWlmKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSB7CgkJJGdycHMgPSBleHBsb2RlKCc7Jywkcm93WydyZWNpcGllbnRfZ3JvdXBzJ10pOwoJCWlmKCFlbXB0eSgkZ3Jwc1swXSkpIHsKCQkJZm9yZWFjaCgkZ3JwcyBhcyAkZ3JwKSB7CgkJCQkkZyA9IGV4cGxvZGUoJywnLCRncnApOwoJCQkJaWYoaXNzZXQoJGdbMV0pKSB7CgkJCQkJJHJlY2lwaWVudF9ncm91cHNbJGdbMF1dID0gJGdbMV07CgkJCQl9CgkJCX0KCQl9CgkJJHByb2Nlc3NlZF91c2VycyA9ICRyb3dbJ3Byb2Nlc3NlZF91c2VycyddOwoJCSRyZWNpcGllbnRzID0gJHJvd1sncmVjaXBpZW50cyddOwoJCSRsYXN0X3VzZXJpZCA9ICRyb3dbJ2xhc3RfdXNlcmlkJ107Cgl9Cn0KCi8vIGdldCBudW1iZXIgb2YgdXNlcnMgaW4gc2VsZWN0ZWQgZ3JvdXBzCmlmKGNvdW50KCRzZWxlY3RlZF9ncm91cHMpKSB7CgkKCWlmKGltcGxvZGUoIiIsJHNlbGVjdGVkX2dyb3VwcykgIT0gaW1wbG9kZSgiIiwkcmVjaXBpZW50X2dyb3VwcykpCgkJJGdyb3Vwc19jaGFuZ2VkID0gdHJ1ZTsKCQkKCSR0b3RhbF91c2VycyA9IGNvdW50KCR0aGlzLT5HZXRVc2Vycygkc2VsZWN0ZWRfZ3JvdXBzKSk7CgkKCWlmKCR0b3RhbF91c2VycyA8ICRwcm9jZXNzZWRfdXNlcnMpCgkJJHByb2Nlc3NlZF91c2VycyA9ICR0b3RhbF91c2VyczsKCWlmKCR0b3RhbF91c2VycyA8ICRyZWNpcGllbnRzKQoJCSRyZWNpcGllbnRzID0gJHRvdGFsX3VzZXJzOwoJJG1lc3NhZ2UgPSAiZ3JvdXBzPSIuaW1wbG9kZSgiLCAiLCRzZWxlY3RlZF9ncm91cHMpLiI7dG90YWxfdXNlcnM9Ii4kdG90YWxfdXNlcnMuIjtwcm9jZXNzZWRfdXNlcnM9Ii4kcHJvY2Vzc2VkX3VzZXJzLiI7cmVjaXBpZW50cz0iLiRyZWNpcGllbnRzLiI7Z3JvdXBzX2NoYW5nZWQ9Ii4kZ3JvdXBzX2NoYW5nZWQuIjtyZXNlbmQ9Ii4kcmVzZW5kOwp9CmVjaG8gJGlkLiJyZXNwb25zZToiLiRtZXNzYWdlLiI6Ii4kaWQuImVuZF9yZXNwb25zZSI7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.multiAction.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEZyb250ZW5kVXNlciBNYWlsZXIgKGMpIDIwMDgtMjAxMCBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkKIyAgICAgICAgICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGJhY2tlbmQgdXNlcnMgYWJpbGl0eSAKIyAgICAgICAgICB0byBlYXNpbHkgc2VuZCBhbiBlbWFpbCB0byBhbGwgZnJvbnRlbmQgdXNlcnMgb3IganVzdCBzcGVjaWZpYyBmcm9udC0KIyAgICAgICAgICBlbmQgdXNlcmdyb3VwcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZCB3ZWJzaXRlLgojIFZlcnNpb246IDAuOS40CiMgRmlsZSAgIDogYWN0aW9uLm11bHRpQWN0aW9uLnBocAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDQtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKaWYoIWlzX29iamVjdChjbXNtcygpKSkKCWV4aXQ7CgovLyBzY3JpcHQgd2lsbCBvbmx5IGJlIGV4ZWN1dGVkIHdoZW4gc3VibWl0dGVkIGJ5IHRoZSByaWdodCBmb3JtcwppZighaXNzZXQoJHBhcmFtc1snc3VibWl0X3RtcCddKSAmJiAhaXNzZXQoJHBhcmFtc1snc3VibWl0X2FyY2hpdmUnXSkpCgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkKTsKCmlmKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdVc2UgRkVVTWFpbGVyJykpIHsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsJHJldHVybmlkLAoJCQkJCQkJCQkJCQkkdGhpcy0+TGFuZygnZXJyb3JfcGVybWlzc2lvbnMnKSk7Cn0KCmlmKGlzc2V0KCRwYXJhbXNbJ21haWxfdHlwZSddKSAmJiAhZW1wdHkoJHBhcmFtc1snbWFpbF90eXBlJ10pKSB7CgkkbWFpbF90eXBlID0gdHJpbSgkcGFyYW1zWydtYWlsX3R5cGUnXSk7Cn0gZWxzZSB7CglyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCRyZXR1cm5pZCwkdGhpcy0+TGFuZygnZXJyb3JfbWFpbHR5cGUnKSk7Cn0KCiRtYWlscyA9IGFycmF5KCk7CmZvcmVhY2goJHBhcmFtcyBhcyAkbmFtZT0+JHZhbHVlKSB7CgkJaWYoc3RhcnRzd2l0aCgkbmFtZSwgJ21haWwtJykgJiYgJHZhbHVlIT0nJykgewoJCQkkdmFsID0gZXhwbG9kZSgnLScsdHJpbSgkdmFsdWUpKTsKCQkJJG1haWxzWyR2YWxbMF1dWydpZCddID0gaW50dmFsKHRyaW0oJHZhbFswXSkpOwoJCQkkbWFpbHNbJHZhbFswXV1bJ2NsZWFyX2xvZyddID0gaW50dmFsKHRyaW0oJHZhbFsxXSkpOwoJCX0KfQoKaWYoZW1wdHkoJG1haWxzKSB8fCAhY291bnQoJG1haWxzKSkgewoJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwkcmV0dXJuaWQsCgkJCQkJCQkJJHRoaXMtPkxhbmcoJ2Vycm9yX3NlbGVjdGVkJy4kbWFpbF90eXBlLidtYWlscycpKTsKfQoKJHdoZXJlID0gYXJyYXkoKTsKJHF1ZXJ5MSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldW1haWxlcl8iLiRtYWlsX3R5cGUuIiAKCQkJV0hFUkUgIjsKJHF1ZXJ5MiA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldW1haWxlcl9sb2dzIjsKJGk9MDsKZm9yZWFjaCgkbWFpbHMgYXMgJG1haWwpIHsKCSRpKys7CgkkcXVlcnkxIC49ICJpZCA9ICIuJG1haWxbJ2lkJ107CglpZigkaTxzaXplb2YoJG1haWxzKSkgewoJCSRxdWVyeTEgLj0gIiBPUiAiOwoJfQoJaWYoJG1haWxbJ2NsZWFyX2xvZyddKSB7CgkJJHdoZXJlW10gPSAkbWFpbF90eXBlLiJfaWQ9Ii4kbWFpbFsnaWQnXTsKCX0KCQp9CgokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5MSk7CmlmKCEkZGJyZXN1bHQpIHsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsJHJldHVybmlkLAoJCQkJCQkkdGhpcy0+bGFuZygnZXJyb3JfZGJfZGVsZXRlXycuJG1haWxfdHlwZSwkcXVlcnkxKSk7Cn0KCmlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJhdXRvY2xlYXJfbG9ncyIsZmFsc2UpKSB7CgkvLyBpJ3ZlIHNlZW4gdGhpcyAiJHdoZXJlPWFycmF5KCkgYW5kIGltcGxvZGUiIHN0dWZmIGluIEZFVXNlcnMgTW9kdWxlCgkvLyBncmVhdCBpZGVhCglpZihjb3VudCgkd2hlcmUpKQoJewoJCSRxdWVyeTIgLj0gIiBXSEVSRSAiIC4gaW1wbG9kZSgiIE9SICIsJHdoZXJlKTsgCgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeTIpOwoJCWlmKCEkZGJyZXN1bHQpIHsKCQkJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwkcmV0dXJuaWQsCgkJCQkJCQkkdGhpcy0+bGFuZygnZXJyb3JfZGJfYXV0b2NsZWFybG9nJywkcXVlcnkyKSk7CgkJfQoJfQp9CgokdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCBhcnJheSgnYWN0aXZlX3RhYic9PiRtYWlsX3R5cGUsCgkJCQkJCQknbWVzc2FnZSc9PiR0aGlzLT5sYW5nKCRtYWlsX3R5cGUuJ21haWxkZWxldGVkJykpKTsKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.newFrontendMail.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEZyb250ZW5kVXNlciBNYWlsZXIgKGMpIDIwMDgtMjAxMCBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkKIyAgICAgICAgICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGJhY2tlbmQgdXNlcnMgYWJpbGl0eSAKIyAgICAgICAgICB0byBlYXNpbHkgc2VuZCBhbiBlbWFpbCB0byBhbGwgZnJvbnRlbmQgdXNlcnMgb3IganVzdCBzcGVjaWZpYyBmcm9udC0KIyAgICAgICAgICBlbmQgdXNlcmdyb3VwcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZCB3ZWJzaXRlLgojIFZlcnNpb246IDAuOS40CiMgRmlsZSAgIDogYWN0aW9uLm5ld01haWwucGhwCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNC0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgppZighaXNfb2JqZWN0KGNtc21zKCkpKQoJZXhpdDsKCgoKaWYoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKSB7CgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCBhcnJheSgnYWN0aXZlX3RhYic9PidhcmNoaXZlJykpOwp9CgoKJGNoZWNrX2dyb3VwcyA9IGFycmF5KCk7CiRzZWxlY3RlZF9ncm91cHMgPSBhcnJheSgpOwokcmVjX2dyb3VwcyA9IGFycmF5KCk7CgovLyBwcmVmZXJlbmNlcwokYXV0b3NhdmUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgiYXV0b3NhdmUiLHRydWUpOwokZGVmYXVsdF9ncm91cHMgPSBhcnJheSgpOwokZGVmX2dyb3VwcyA9IGV4cGxvZGUoJzsnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X2dyb3VwcycsJycpKTsKaWYoIWVtcHR5KCRkZWZfZ3JvdXBzWzBdKSkgewoJZm9yZWFjaCgkZGVmX2dyb3VwcyBhcyAkZGVmX2dyb3VwKSB7CgkJJGRnID0gZXhwbG9kZSgnLCcsJGRlZl9ncm91cCk7CgkJaWYoaXNzZXQoJGRnWzFdKSkKCQkJJGRlZmF1bHRfZ3JvdXBzWyRkZ1swXV09JGRnWzFdOwoJfQp9CgovLyBnZXQgZmV1c2VyZ3JvdXBzCiRncm91cHMgPSAkdGhpcy0+R2V0R3JvdXBzKCk7Ci8vIGlmIG5vIGdyb3VwcyAtPiBkaXNwbGF5IGVycm9ybWVzc2FnZQppZihlbXB0eSgkZ3JvdXBzKSkgewoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgCgkJCQkJCQlhcnJheSgnZXJyb3JtZXNzYWdlJz0+JHRoaXMtPkxhbmcoJ2Vycm9yX2dyb3VwcycpKSk7Cgp9Cgpmb3JlYWNoKCRncm91cHMgYXMgJGs9PiR2KSB7CgkkZ3JwX3ZhcnMgPSBleHBsb2RlKCcsJywkdik7CglpZihpc3NldCgkZ3JwX3ZhcnNbMl0pICYmIGlzc2V0KCRkZWZhdWx0X2dyb3Vwc1skZ3JwX3ZhcnNbMF1dKSkgewoJCSRzZWxlY3RlZF9ncm91cHNbJGdycF92YXJzWzFdLiIgKCIuJGdycF92YXJzWzJdLiIgIi4kdGhpcy0+bGFuZygidXNlcnMiKS4iKSJdID0gaW1wbG9kZSgiLCIsJGdycF92YXJzKTsKCX0KfQoKJGVycm9yID0gZmFsc2U7CiRlcnJvcm1lc3NhZ2UgPSAnJzsKCiRzdWJqZWN0ID0gJyc7CmlmKGlzc2V0KCRwYXJhbXNbJ3N1YmplY3QnXSkgJiYgIWVtcHR5KCRwYXJhbXNbJ3N1YmplY3QnXSkpIHsKCSRzdWJqZWN0ID0gdHJpbSgkcGFyYW1zWydzdWJqZWN0J10pOwp9CgokbWFpbGJvZHkgPSAnJzsKaWYoaXNzZXQoJHBhcmFtc1snbWFpbGJvZHknXSkpIHsKCSRtYWlsYm9keSA9IHRyaW0oJHBhcmFtc1snbWFpbGJvZHknXSk7Cn0KCmlmKGlzc2V0KCRwYXJhbXNbJ2F1dG9zYXZlJ10pICYmIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdF9mb3JtJ10pICYmIAokcGFyYW1zWydzdWJtaXRfZm9ybSddPT10cnVlKSB7CgkkYXV0b3NhdmU9dHJ1ZTsKfSBlbHNlIGlmKCFpc3NldCgkcGFyYW1zWydhdXRvc2F2ZSddKSAmJiBpc3NldCgkcGFyYW1zWydzdWJtaXRfZm9ybSddKSAmJiAKJHBhcmFtc1snc3VibWl0X2Zvcm0nXT09dHJ1ZSkgewoJJGF1dG9zYXZlPWZhbHNlOwp9CgovLyBnZXQgc2VsZWN0ZWQgZ3JvdXBzCmlmKGlzc2V0KCRwYXJhbXNbJ2dyb3VwcyddKSAmJiAhZW1wdHkoJHBhcmFtc1snZ3JvdXBzJ10pCiAgICYmIGlzX2FycmF5KCRwYXJhbXNbJ2dyb3VwcyddKSkgewoJdW5zZXQoJHNlbGVjdGVkX2dyb3Vwcyk7Cgl1bnNldCgkY2hlY2tfZ3JvdXBzKTsKCXVuc2V0KCRyZWNfZ3JvdXBzKTsKCSRzZWxlY3RlZF9ncm91cHMgPSBhcnJheSgpOwoJJGNoZWNrX2dyb3VwcyA9IGFycmF5KCk7CgkkcmVjX2dyb3VwcyA9IGFycmF5KCk7Cglmb3JlYWNoKCRwYXJhbXNbJ2dyb3VwcyddIGFzICRncm91cCkgewoJCWlmKCFlbXB0eSgkZ3JvdXApKSB7CgkJCSRnID0gZXhwbG9kZSgnLCcsdHJpbSgkZ3JvdXApKTsKCQkJaWYoaXNzZXQoJGdbMl0pKSB7CgkJCQkkc2VsZWN0ZWRfZ3JvdXBzWyRnWzFdLiIgKCIuJGdbJzInXS4iICIuJHRoaXMtPmxhbmcoInVzZXJzIikuIikiXSA9ICRnWzBdLiIsIi4kZ1sxXS4iLCIuJGdbMl07CgkJCQkkY2hlY2tfZ3JvdXBzWyRnWzBdXT0kZ1sxXTsKCQkJCSRyZWNfZ3JvdXBzW10gPSAkZ1swXS4nLCcuJGdbMV07CgkJCX0KCQl9Cgl9Cn0KCgppZihpc3NldCgkcGFyYW1zWydzdWJtaXRfZm9ybSddKSAmJiAkcGFyYW1zWydzdWJtaXRfZm9ybSddPT10cnVlKSB7CglpZihlbXB0eSgkc2VsZWN0ZWRfZ3JvdXBzKSkgewoJCSRlcnJvciA9IHRydWU7CgkJJGVycm9ybWVzc2FnZSAuPSAkdGhpcy0+bGFuZygnZXJyb3Jfc2VsZWN0ZWRncm91cHMnKS4nPGJyIC8+JzsKCX0gZWxzZSB7CgkJJHVzZXJzID0gY291bnQoJHRoaXMtPkdldFVzZXJzKCRjaGVja19ncm91cHMpKTsKCQlpZigkdXNlcnM9PTApIHsKCQkJJGVycm9yID0gdHJ1ZTsKCQkJJGVycm9ybWVzc2FnZSAuPSAkdGhpcy0+bGFuZygnZXJyb3Jfbm91c2Vyc2ZvdW5kJykuJzxiciAvPic7CgkJfQoJfQoJaWYoZW1wdHkoJG1haWxib2R5KSkgewoJCSRlcnJvciA9IHRydWU7CgkJJGVycm9ybWVzc2FnZSAuPSAkdGhpcy0+bGFuZygnZXJyb3JfbWFpbGJvZHknKS4nPGJyIC8+JzsKCX0KCiMjIyBkbyBhY3Rpb24gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgoJaWYoJGVycm9yPT1mYWxzZSkgewoJCSRwYXJtcyA9IGFycmF5KCk7CgkJJHJlY2lwaWVudF9ncm91cHMgCT0gaW1wbG9kZSgiOyIsJHJlY19ncm91cHMpOwoKCQkkcmV0ID0gJHRoaXMtPmNyZWF0ZVRlbXBNYWlsKCRyZWNpcGllbnRfZ3JvdXBzLAoJCQkJCQkJCQkJJHN1YmplY3QsCgkJCQkJCQkJCQkkbWFpbGJvZHksCgkJCQkJCQkJCQkwLAoJCQkJCQkJCQkJMCwKCQkJCQkJCQkJCTAsCgkJCQkJCQkJCQknYWxsJywKCQkJCQkJCQkJCScnLAoJCQkJCQkJCQkJJGF1dG9zYXZlKTsKCgkJaWYoISRyZXRbMF0pIHsKCQkJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwkcmV0dXJuaWQsJHJldFsxXSk7CgkJfSBlbHNlIHsKCQkJJHBhcm1zWydtYWlsX2lkJ10gPSAkcmV0WzFdOwoJCQkkcGFybXNbJ21haWxfdHlwZSddID0gJ3RtcCc7CgkJCSR0aGlzLT5Eb0FjdGlvbigncHJlcGFyZVNlbmRNYWlsJywkaWQsJHBhcm1zLCRyZXR1cm5pZCk7CgkJCXJldHVybjsKCQl9Cgl9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKfQoKCi8vIHNtYXJ0eSBzdHVmZgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0Rm9ybScsCgkJJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICduZXdNYWlsJywgJHJldHVybmlkLCAncG9zdCcsICcnLCBmYWxzZSwgJ215Rm9ybScpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignaGlkZGVuJywkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnc3VibWl0X2Zvcm0nLCBmYWxzZSwgJ2lkPSJzdWJtaXRfZm9ybSInKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZEZvcm0nLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpZCcsICRpZCk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25vdXNlcnMnLCAkdGhpcy0+bGFuZygnZXJyb3Jfbm91c2Vyc2ZvdW5kJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25vZ3JvdXBzJywgJHRoaXMtPmxhbmcoJ2Vycm9yX3NlbGVjdGVkZ3JvdXBzJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25vbWVzc2FnZScsICR0aGlzLT5sYW5nKCdlcnJvcl9tYWlsYm9keScpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignY29uZmlybXN1Ym1pdCcsCSR0aGlzLT5sYW5nKCdzdWJtaXRjb25maXJtJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJHRoaXMtPmxhbmcoJ3N1Ym1pdCcpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdncm91cHMnLCR0aGlzLT5sYW5nKCdncm91cHMnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignaGVhZGluZycsJHRoaXMtPmxhbmcoJ25ld21haWwnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigndG90YWx1c2VycycsJHRoaXMtPmxhbmcoJ3RvdGFsdXNlcnMnKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhbmNlbCcsCgkJJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnY2FuY2VsJywkdGhpcy0+bGFuZygnY2FuY2VsJykpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignZ3JvdXBzX3RleHQnLCR0aGlzLT5sYW5nKCdncm91cHMnKSk7CiRzbWFydHktPmFzc2lnbigndXJsJywgc3RyX3JlcGxhY2UoJyZhbXA7JywgJyYnLCAKCSR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZ2V0VXNlcnMnLCRyZXR1cm5pZCwnJywKCQlhcnJheSgnZGlzYWJsZV90aGVtZSc9PnRydWUsJ2FqYXgnPT50cnVlKSwgJycsIHRydWUpKSk7CgkJCQkJCQkJCQkJCQkJCQkKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdncm91cHNfaW5wdXQnLCR0aGlzLT5DcmVhdGVJbnB1dFNlbGVjdExpc3QoJGlkLAoJCSdncm91cHNbXScsJGdyb3Vwcywkc2VsZWN0ZWRfZ3JvdXBzLGNvdW50KCRncm91cHMpLCdpZD0iZ3JvdXBzIicsdHJ1ZSkpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlcnJvcl9hamF4JywkdGhpcy0+bGFuZygnZXJyb3JfYWpheCcpKTsKCi8vIHByZWZzCiR0aGlzLT5zbWFydHktPmFzc2lnbignc2F2ZV90ZXh0JywkdGhpcy0+bGFuZygnc2F2ZScpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzYXZlX2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsCgkJCQkJCQkJCQkJJ2F1dG9zYXZlJywxLCgkYXV0b3NhdmU9PXRydWU/MTonJykpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignaXNodG1sX3RleHQnLCR0aGlzLT5sYW5nKCdpc19odG1sJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lzaHRtbF9pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdpc19odG1sJywxLAoJCQkJCQkJCQkJCQkJCSgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaXNfaHRtbCcsZmFsc2UpPT10cnVlPzE6JycpKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1YmplY3RfdGV4dCcsJHRoaXMtPmxhbmcoJ3N1YmplY3QnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignc3ViamVjdF9pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ3N1YmplY3QnLCRzdWJqZWN0LAoJCQkJCQkJCQkJCQkJCQkJCQk2NCwxMjgpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignbWFpbGJvZHlfdGV4dCcsJHRoaXMtPmxhbmcoJ21lc3NhZ2UnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignbWFpbGJvZHlfaW5wdXQnLAokdGhpcy0+Q3JlYXRlVGV4dEFyZWEoKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpc19odG1sJyxmYWxzZSk9PXRydWU/dHJ1ZTpmYWxzZSksCgkJCQkJCSRpZCwKCQkJCQkJJG1haWxib2R5LAoJCQkJCQknbWFpbGJvZHknLAoJCQkJCQknJywKCQkJCQkJJ21lc3NhZ2UnKSk7CgppZigkZXJyb3JtZXNzYWdlIT0nJykgewoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlcnJvcm1lc3NhZ2UnLCRlcnJvcm1lc3NhZ2UpOwp9CgovLyBEaXNwbGF5IHRoZSBwb3B1bGF0ZWQgdGVtcGxhdGUKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCduZXdNYWlsLnRwbCcpOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.newMail.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEZyb250ZW5kVXNlciBNYWlsZXIgKGMpIDIwMDgtMjAxMCBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkKIyAgICAgICAgICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGJhY2tlbmQgdXNlcnMgYWJpbGl0eSAKIyAgICAgICAgICB0byBlYXNpbHkgc2VuZCBhbiBlbWFpbCB0byBhbGwgZnJvbnRlbmQgdXNlcnMgb3IganVzdCBzcGVjaWZpYyBmcm9udC0KIyAgICAgICAgICBlbmQgdXNlcmdyb3VwcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZCB3ZWJzaXRlLgojIFZlcnNpb246IDAuOS40CiMgRmlsZSAgIDogYWN0aW9uLm5ld01haWwucGhwCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNC0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgppZighaXNfb2JqZWN0KGNtc21zKCkpKQoJZXhpdDsKCmlmKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdVc2UgRkVVTWFpbGVyJykpIHsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsJHJldHVybmlkLCAkdGhpcy0+TGFuZygnZXJyb3JfcGVybWlzc2lvbnMnKSk7Cn0KCmlmKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSkgewoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgYXJyYXkoJ2FjdGl2ZV90YWInPT4nYXJjaGl2ZScpKTsKfQoKCiRjaGVja19ncm91cHMgPSBhcnJheSgpOwokc2VsZWN0ZWRfZ3JvdXBzID0gYXJyYXkoKTsKJHJlY19ncm91cHMgPSBhcnJheSgpOwoKLy8gcHJlZmVyZW5jZXMKJGF1dG9zYXZlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoImF1dG9zYXZlIix0cnVlKTsKJGRlZmF1bHRfZ3JvdXBzID0gYXJyYXkoKTsKJGRlZl9ncm91cHMgPSBleHBsb2RlKCc7JywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9ncm91cHMnLCcnKSk7CmlmKCFlbXB0eSgkZGVmX2dyb3Vwc1swXSkpIHsKCWZvcmVhY2goJGRlZl9ncm91cHMgYXMgJGRlZl9ncm91cCkgewoJCSRkZyA9IGV4cGxvZGUoJywnLCRkZWZfZ3JvdXApOwoJCWlmKGlzc2V0KCRkZ1sxXSkpCgkJCSRkZWZhdWx0X2dyb3Vwc1skZGdbMF1dPSRkZ1sxXTsKCX0KfQoKLy8gZ2V0IGZldXNlcmdyb3VwcwokZ3JvdXBzID0gJHRoaXMtPkdldEdyb3VwcygpOwovLyBpZiBubyBncm91cHMgLT4gZGlzcGxheSBlcnJvcm1lc3NhZ2UKaWYoZW1wdHkoJGdyb3VwcykpIHsKCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIAoJCQkJCQkJYXJyYXkoJ2Vycm9ybWVzc2FnZSc9PiR0aGlzLT5MYW5nKCdlcnJvcl9ncm91cHMnKSkpOwoKfQoKZm9yZWFjaCgkZ3JvdXBzIGFzICRrPT4kdikgewoJJGdycF92YXJzID0gZXhwbG9kZSgnLCcsJHYpOwoJaWYoaXNzZXQoJGdycF92YXJzWzJdKSAmJiBpc3NldCgkZGVmYXVsdF9ncm91cHNbJGdycF92YXJzWzBdXSkpIHsKCQkkc2VsZWN0ZWRfZ3JvdXBzWyRncnBfdmFyc1sxXS4iICgiLiRncnBfdmFyc1syXS4iICIuJHRoaXMtPmxhbmcoInVzZXJzIikuIikiXSA9IGltcGxvZGUoIiwiLCRncnBfdmFycyk7Cgl9Cn0KCiRlcnJvciA9IGZhbHNlOwokZXJyb3JtZXNzYWdlID0gJyc7Cgokc3ViamVjdCA9ICcnOwppZihpc3NldCgkcGFyYW1zWydzdWJqZWN0J10pICYmICFlbXB0eSgkcGFyYW1zWydzdWJqZWN0J10pKSB7Cgkkc3ViamVjdCA9IHRyaW0oJHBhcmFtc1snc3ViamVjdCddKTsKfQoKJG1haWxib2R5ID0gJyc7CmlmKGlzc2V0KCRwYXJhbXNbJ21haWxib2R5J10pKSB7CgkkbWFpbGJvZHkgPSB0cmltKCRwYXJhbXNbJ21haWxib2R5J10pOwp9CgppZihpc3NldCgkcGFyYW1zWydhdXRvc2F2ZSddKSAmJiBpc3NldCgkcGFyYW1zWydzdWJtaXRfZm9ybSddKSAmJiAKJHBhcmFtc1snc3VibWl0X2Zvcm0nXT09dHJ1ZSkgewoJJGF1dG9zYXZlPXRydWU7Cn0gZWxzZSBpZighaXNzZXQoJHBhcmFtc1snYXV0b3NhdmUnXSkgJiYgaXNzZXQoJHBhcmFtc1snc3VibWl0X2Zvcm0nXSkgJiYgCiRwYXJhbXNbJ3N1Ym1pdF9mb3JtJ109PXRydWUpIHsKCSRhdXRvc2F2ZT1mYWxzZTsKfQoKLy8gZ2V0IHNlbGVjdGVkIGdyb3VwcwppZihpc3NldCgkcGFyYW1zWydncm91cHMnXSkgJiYgIWVtcHR5KCRwYXJhbXNbJ2dyb3VwcyddKQogICAmJiBpc19hcnJheSgkcGFyYW1zWydncm91cHMnXSkpIHsKCXVuc2V0KCRzZWxlY3RlZF9ncm91cHMpOwoJdW5zZXQoJGNoZWNrX2dyb3Vwcyk7Cgl1bnNldCgkcmVjX2dyb3Vwcyk7Cgkkc2VsZWN0ZWRfZ3JvdXBzID0gYXJyYXkoKTsKCSRjaGVja19ncm91cHMgPSBhcnJheSgpOwoJJHJlY19ncm91cHMgPSBhcnJheSgpOwoJZm9yZWFjaCgkcGFyYW1zWydncm91cHMnXSBhcyAkZ3JvdXApIHsKCQlpZighZW1wdHkoJGdyb3VwKSkgewoJCQkkZyA9IGV4cGxvZGUoJywnLHRyaW0oJGdyb3VwKSk7CgkJCWlmKGlzc2V0KCRnWzJdKSkgewoJCQkJJHNlbGVjdGVkX2dyb3Vwc1skZ1sxXS4iICgiLiRnWycyJ10uIiAiLiR0aGlzLT5sYW5nKCJ1c2VycyIpLiIpIl0gPSAkZ1swXS4iLCIuJGdbMV0uIiwiLiRnWzJdOwoJCQkJJGNoZWNrX2dyb3Vwc1skZ1swXV09JGdbMV07CgkJCQkkcmVjX2dyb3Vwc1tdID0gJGdbMF0uJywnLiRnWzFdOwoJCQl9CgkJfQoJfQp9CgoKaWYoaXNzZXQoJHBhcmFtc1snc3VibWl0X2Zvcm0nXSkgJiYgJHBhcmFtc1snc3VibWl0X2Zvcm0nXT09dHJ1ZSkgewoJaWYoZW1wdHkoJHNlbGVjdGVkX2dyb3VwcykpIHsKCQkkZXJyb3IgPSB0cnVlOwoJCSRlcnJvcm1lc3NhZ2UgLj0gJHRoaXMtPmxhbmcoJ2Vycm9yX3NlbGVjdGVkZ3JvdXBzJykuJzxiciAvPic7Cgl9IGVsc2UgewoJCSR1c2VycyA9IGNvdW50KCR0aGlzLT5HZXRVc2VycygkY2hlY2tfZ3JvdXBzKSk7CgkJaWYoJHVzZXJzPT0wKSB7CgkJCSRlcnJvciA9IHRydWU7CgkJCSRlcnJvcm1lc3NhZ2UgLj0gJHRoaXMtPmxhbmcoJ2Vycm9yX25vdXNlcnNmb3VuZCcpLic8YnIgLz4nOwoJCX0KCX0KCWlmKGVtcHR5KCRtYWlsYm9keSkpIHsKCQkkZXJyb3IgPSB0cnVlOwoJCSRlcnJvcm1lc3NhZ2UgLj0gJHRoaXMtPmxhbmcoJ2Vycm9yX21haWxib2R5JykuJzxiciAvPic7Cgl9CgojIyMgZG8gYWN0aW9uICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKCWlmKCRlcnJvcj09ZmFsc2UpIHsKCQkkcGFybXMgPSBhcnJheSgpOwoJCSRyZWNpcGllbnRfZ3JvdXBzIAk9IGltcGxvZGUoIjsiLCRyZWNfZ3JvdXBzKTsKCgkJJHJldCA9ICR0aGlzLT5jcmVhdGVUZW1wTWFpbCgkcmVjaXBpZW50X2dyb3VwcywKCQkJCQkJCQkJCSRzdWJqZWN0LAoJCQkJCQkJCQkJJG1haWxib2R5LAoJCQkJCQkJCQkJMCwKCQkJCQkJCQkJCTAsCgkJCQkJCQkJCQkwLAoJCQkJCQkJCQkJJ2FsbCcsCgkJCQkJCQkJCQknJywKCQkJCQkJCQkJCSRhdXRvc2F2ZSk7CgoJCWlmKCEkcmV0WzBdKSB7CgkJCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsJHJldHVybmlkLCRyZXRbMV0pOwoJCX0gZWxzZSB7CgkJCSRwYXJtc1snbWFpbF9pZCddID0gJHJldFsxXTsKCQkJJHBhcm1zWydtYWlsX3R5cGUnXSA9ICd0bXAnOwoJCQkkdGhpcy0+RG9BY3Rpb24oJ3ByZXBhcmVTZW5kTWFpbCcsJGlkLCRwYXJtcywkcmV0dXJuaWQpOwoJCQlyZXR1cm47CgkJfQoJfQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCn0KCgovLyBzbWFydHkgc3R1ZmYKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydEZvcm0nLAoJCSR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnbmV3TWFpbCcsICRyZXR1cm5pZCwgJ3Bvc3QnLCAnJywgZmFsc2UsICdteUZvcm0nKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ3N1Ym1pdF9mb3JtJywgZmFsc2UsICdpZD0ic3VibWl0X2Zvcm0iJykpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlbmRGb3JtJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignaWQnLCAkaWQpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdub3VzZXJzJywgJHRoaXMtPmxhbmcoJ2Vycm9yX25vdXNlcnNmb3VuZCcpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdub2dyb3VwcycsICR0aGlzLT5sYW5nKCdlcnJvcl9zZWxlY3RlZGdyb3VwcycpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdub21lc3NhZ2UnLCAkdGhpcy0+bGFuZygnZXJyb3JfbWFpbGJvZHknKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NvbmZpcm1zdWJtaXQnLAkkdGhpcy0+bGFuZygnc3VibWl0Y29uZmlybScpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5sYW5nKCdzdWJtaXQnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZ3JvdXBzJywkdGhpcy0+bGFuZygnZ3JvdXBzJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2hlYWRpbmcnLCR0aGlzLT5sYW5nKCduZXdtYWlsJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RvdGFsdXNlcnMnLCR0aGlzLT5sYW5nKCd0b3RhbHVzZXJzJykpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2NhbmNlbCcsJHRoaXMtPmxhbmcoJ2NhbmNlbCcpKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2dyb3Vwc190ZXh0JywkdGhpcy0+bGFuZygnZ3JvdXBzJykpOwokc21hcnR5LT5hc3NpZ24oJ3VybCcsIHN0cl9yZXBsYWNlKCcmYW1wOycsICcmJywgCgkkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2dldFVzZXJzJywkcmV0dXJuaWQsJycsYXJyYXkoJ2Rpc2FibGVfdGhlbWUnPT50cnVlLCdhamF4Jz0+dHJ1ZSksICcnLCB0cnVlKSkpOwoJCQkJCQkJCQkJCQkJCQkJCiR0aGlzLT5zbWFydHktPmFzc2lnbignZ3JvdXBzX2lucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwKCQknZ3JvdXBzW10nLCRncm91cHMsJHNlbGVjdGVkX2dyb3Vwcyxjb3VudCgkZ3JvdXBzKSwnaWQ9Imdyb3VwcyInLHRydWUpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignZXJyb3JfYWpheCcsJHRoaXMtPmxhbmcoJ2Vycm9yX2FqYXgnKSk7CgovLyBwcmVmcwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3NhdmVfdGV4dCcsJHRoaXMtPmxhbmcoJ3NhdmUnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignc2F2ZV9pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLAoJCQkJCQkJCQkJCSdhdXRvc2F2ZScsMSwoJGF1dG9zYXZlPT10cnVlPzE6JycpKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lzaHRtbF90ZXh0JywkdGhpcy0+bGFuZygnaXNfaHRtbCcpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpc2h0bWxfaW5wdXQnLCR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnaXNfaHRtbCcsMSwKCQkJCQkJCQkJCQkJCQkoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2lzX2h0bWwnLGZhbHNlKT09dHJ1ZT8xOicnKSkpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJqZWN0X3RleHQnLCR0aGlzLT5sYW5nKCdzdWJqZWN0JykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1YmplY3RfaW5wdXQnLCR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdzdWJqZWN0Jywkc3ViamVjdCwKCQkJCQkJCQkJCQkJCQkJCQkJNjQsMTI4KSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21haWxib2R5X3RleHQnLCR0aGlzLT5sYW5nKCdtZXNzYWdlJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21haWxib2R5X2lucHV0JywKJHRoaXMtPkNyZWF0ZVRleHRBcmVhKCgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaXNfaHRtbCcsZmFsc2UpPT10cnVlP3RydWU6ZmFsc2UpLAoJCQkJCQkkaWQsCgkJCQkJCSRtYWlsYm9keSwKCQkJCQkJJ21haWxib2R5JywKCQkJCQkJJycsCgkJCQkJCSdtZXNzYWdlJykpOwoKaWYoJGVycm9ybWVzc2FnZSE9JycpIHsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignZXJyb3JtZXNzYWdlJywkZXJyb3JtZXNzYWdlKTsKfQoKLy8gRGlzcGxheSB0aGUgcG9wdWxhdGVkIHRlbXBsYXRlCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnbmV3TWFpbC50cGwnKTsKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.prepareSendMail.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEZyb250ZW5kVXNlciBNYWlsZXIgKGMpIDIwMDgtMjAxMCBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkKIyAgICAgICAgICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGJhY2tlbmQgdXNlcnMgYWJpbGl0eSAKIyAgICAgICAgICB0byBlYXNpbHkgc2VuZCBhbiBlbWFpbCB0byBhbGwgZnJvbnRlbmQgdXNlcnMgb3IganVzdCBzcGVjaWZpYyBmcm9udC0KIyAgICAgICAgICBlbmQgdXNlcmdyb3VwcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZCB3ZWJzaXRlLgojIFZlcnNpb246IDAuOS40CiMgRmlsZSAgIDogYWN0aW9uLnByZXBhcmVTZW5kTWFpbC5waHAKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA0LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCFpc19vYmplY3QoY21zbXMoKSkpIGV4aXQ7CgokY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CgppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1VzZSBGRVVNYWlsZXInKSkKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRyZXR1cm5pZCwKCQkJCQkJCQkJCQkJJHRoaXMtPkxhbmcoJ2Vycm9yX3Blcm1pc3Npb25zJykpOwoKJGZldXNlcnMgPSYgJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CmlmKCEkZmV1c2VycykKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsJHJldHVybmlkLCR0aGlzLT5MYW5nKCdlcnJvcl9mZXVzZXJzJykpOwoKJGNtc21haWxlciA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnQ01TTWFpbGVyJyk7CmlmKCEkY21zbWFpbGVyKQoJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHJldHVybmlkLAoJCQkJCQkJCQkJCQkkdGhpcy0+TGFuZygnZXJyb3JfY21zbWFpbGVyJykpOwoKJHRhc2s9J2FsbCc7CmlmKGlzc2V0KCRwYXJhbXNbJ3Rhc2snXSkgJiYgIWVtcHR5KCRwYXJhbXNbJ3Rhc2snXSkpIHsKCSR0YXNrPXRyaW0oJHBhcmFtc1sndGFzayddKTsKfQoKJHNlbnRieV9pZCA9IGdldF91c2VyaWQoKTsKCiRhdXRvc2F2ZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJhdXRvc2F2ZSIsdHJ1ZSk7CmlmKGlzc2V0KCRwYXJhbXNbJ2F1dG9zYXZlJ10pKSB7CgkkYXV0b3NhdmU9dHJ1ZTsKfSBlbHNlIGlmKCFpc3NldCgkcGFyYW1zWydhdXRvc2F2ZSddKSAmJiBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkpCgkkYXV0b3NhdmU9ZmFsc2U7CgppZihpc3NldCgkcGFyYW1zWydtYWlsX3R5cGUnXSkgJiYgIWVtcHR5KCRwYXJhbXNbJ21haWxfdHlwZSddKSkgewoJJG1haWxfdHlwZSA9IHRyaW0oJHBhcmFtc1snbWFpbF90eXBlJ10pOwp9IGVsc2UgewoJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHJldHVybmlkLAoJCSR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZ1Y2llbnRwYXJhbXMnLCdtYWlsX3R5cGUnLCdwcmVwYXJlU2VuZE1haWwnKSk7Cn0KCmlmKGlzc2V0KCRwYXJhbXNbJ21haWxfaWQnXSkpIHsKCSRtYWlsX2lkID0gaW50dmFsKHRyaW0oJHBhcmFtc1snbWFpbF9pZCddKSk7Cn0gZWxzZSB7CglyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcmV0dXJuaWQsCgkJJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZnVjaWVudHBhcmFtcycsJ21haWxfaWQnLCdwcmVwYXJlU2VuZE1haWwnKSk7Cn0KCiRsYXN0X3VzZXJpZD0wOwokZ3JvdXBzID0gYXJyYXkoKTsKJHJlY2lwaWVudF9ncm91cHMgPSAnJzsKJHJlY2lwaWVudHNfY291bnQgPSAwOwokc3ViamVjdCA9ICcnOwokbWFpbGJvZHkgPSAnJzsKJG1haWwgPSAkdGhpcy0+R2V0TWFpbCgkbWFpbF9pZCwkbWFpbF90eXBlKTsKaWYoJG1haWwgIT0gZmFsc2UpIHsKCQoJJHJlY2lwaWVudF9ncm91cHM9JG1haWxbJ3JlY2lwaWVudF9ncm91cHMnXTsKCSR0bXBfZ3JvdXBzPWV4cGxvZGUoJzsnLCRtYWlsWydyZWNpcGllbnRfZ3JvdXBzJ10pOwoJaWYoIWVtcHR5KCR0bXBfZ3JvdXBzWzBdKSkgewoJCWZvcmVhY2goJHRtcF9ncm91cHMgYXMgJHRtcF9ncm91cCkgewoJCQlpZighZW1wdHkoJHRtcF9ncm91cCkpIHsKCQkJCSRnID0gZXhwbG9kZSgnLCcsJHRtcF9ncm91cCk7CgkJCQlpZihpc3NldCgkZ1sxXSkpCgkJCQkJJGdyb3Vwc1skZ1swXV09JGdbMV07IC8vIGtleT1pZDt2YWx1ZT1uYW1lCgkJCX0KCQl9Cgl9Cgkkc3ViamVjdAkJPSAkbWFpbFsnc3ViamVjdCddOwoJJG1haWxib2R5CQk9ICRtYWlsWydtYWlsYm9keSddOwoJJGxhc3RfdXNlcmlkCT0gJG1haWxbJ2xhc3RfdXNlcmlkJ107CgkkcmVjaXBpZW50c19jb3VudCA9ICRtYWlsWydyZWNpcGllbnRzJ107CgkkcHJvY2Vzc2VkX3VzZXJzID0gJG1haWxbJ3Byb2Nlc3NlZF91c2VycyddOwoJaWYoJG1haWxfdHlwZT09J3RtcCcpIHsKCQkkdGFzayA9ICRtYWlsWyd0YXNrJ107CgkJJGF1dG9zYXZlID0gJG1haWxbJ3NhdmVfbWVzc2FnZSddOwoJCSRhcmNoaXZlX2lkID0gJG1haWxbJ2FyY2hpdmVfaWQnXTsKCX0KCQp9IGVsc2UgewoJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHJldHVybmlkLAoJCQkkdGhpcy0+TGFuZygnZXJyb3JfZGJfZ2V0XycuJG1haWxfdHlwZS4nbWFpbCcsJG1haWxfaWQsJHF1ZXJ5KSk7Cn0KCiR1c2VycyA9IDA7CiRkZWZhdWx0aWQgPSBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpLT5HZXREZWZhdWx0UGFnZUlEKCk7CgppZigkbWFpbF90eXBlPT0nYXJjaGl2ZScpIHsKCQoJJGFyY2hpdmVfaWQgPSAkbWFpbF9pZDsKCWlmKCR0YXNrPT0ndXNlcicgfHwgJHRhc2s9PSdzZWxlY3RlZCcpIHsKCQoJCSRjdXJyZW50X3VzZXJzID0gYXJyYXkoKTsKCQkkZXJyb3Jjb2RlcyA9IGFycmF5KCk7CgkJaWYoJHRhc2s9PSd1c2VyJyAmJiBpc3NldCgkcGFyYW1zWyd1c2VybmFtZSddKSAmJiAKCQlpc3NldCgkcGFyYW1zWyd1c2VyaWQnXSkgJiYgaXNzZXQoJHBhcmFtc1snZXJyb3Jjb2RlJ10pKSB7CgkJCQoJCQkkY3VycmVudF91c2Vyc1tpbnR2YWwoJHBhcmFtc1sndXNlcmlkJ10pXSA9IHRyaW0oJHBhcmFtc1sndXNlcm5hbWUnXSk7CgkJCSRlcnJvcmNvZGVzW2ludHZhbCgkcGFyYW1zWyd1c2VyaWQnXSldID0gaW50dmFsKCRwYXJhbXNbJ2Vycm9yY29kZSddKTsKCQkJCgkJfSBlbHNlIGlmKCR0YXNrPT0nc2VsZWN0ZWQnKSB7CgkJCQoJCQlmb3JlYWNoKCRwYXJhbXMgYXMgJG5hbWU9PiR2YWx1ZSkgewoJCQkJCgkJCQlpZihzdGFydHN3aXRoKCRuYW1lLCAnbG9nLScpICYmICR2YWx1ZSE9JycpIHsKCQkJCQkKCQkJCQkkdmFsID0gZXhwbG9kZSgnLScsdHJpbSgkdmFsdWUpKTsKCQkJCQkKCQkJCQlpZihpc3NldCgkdmFsWzJdKSkgewoJCQkJCQkkY3VycmVudF91c2Vyc1tpbnR2YWwodHJpbSgkdmFsWzBdKSldID0gdHJpbSgkdmFsWzFdKTsKCQkJCQkJJGVycm9yY29kZXNbaW50dmFsKHRyaW0oJHZhbFswXSkpXSA9IGludHZhbCh0cmltKCR2YWxbMl0pKTsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgkJCgkJaWYoY291bnQoJGN1cnJlbnRfdXNlcnMpPjAgJiYgCgkJKGNvdW50KCRjdXJyZW50X3VzZXJzKTw9JHRoaXMtPkdldFByZWZlcmVuY2UoJ21heG1haWxzJyw1MCkgfHwgCgkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ21heG1haWxzJyw1MCk9PTApKSB7CgkJCQoJCQkvLyBnZXQgZ3JvdXBzCgkJCS8vIGdldCBwcm9wZXJ0aWVzCgkJCS8vIGRvIHNlbmQgbWFpbAoJCQkvLyByZWRpcmVjdCBkZWZhdWx0IGFkbWluIHdpdGggbWVzc2FnZSAiZG9uZSIKCQkJJGdyb3VwcyA9ICR0aGlzLT5HZXRBZGRpdGlvbmFsR3JvdXBzKCRjdXJyZW50X3VzZXJzKTsKCQoJCQkkcHJvcDIgPSBhcnJheSgpOwoJCQlmb3JlYWNoKCRncm91cHMgYXMgJGdyb3VwX2lkPT4kZ3JvdXBfbmFtZSkKCQkJewoJCQkJJHByb3ByZWxhdGlvbnMgPSAkZmV1c2Vycy0+R2V0R3JvdXBQcm9wZXJ0eVJlbGF0aW9ucygkZ3JvdXBfaWQpOwoJCQkJJHByb3AyID0gJHRoaXMtPlJSVXRpbHMoKS0+YXJyYXlfbWVyZ2VfYnlfbmFtZV9yZXF1aXJlZCgkcHJvcDIsICRwcm9wcmVsYXRpb25zKTsKCQkJCXVhc29ydCgkcHJvcDIsIGFycmF5KCR0aGlzLT5SUlV0aWxzKCksJ2NvbXBhcmVfZWxlbWVudHNfYnlfc29ydG9yZGVyX2tleScpKTsKCQkJfQoJCQkKCQkJLy8gbm93IHdlIG1lcmdlIGluIGFsbCBvZiB0aGUgcHJvcGVydHkgZGVmaW5pdGlvbnMKCQkJJGRlZm5zID0gJGZldXNlcnMtPkdldFByb3BlcnR5RGVmbnMoKTsKCQkJJHByb3AzID0gYXJyYXkoKTsKCQkJZm9yZWFjaCgkcHJvcDIgYXMgJG9uZXByb3ApCgkJCXsKCQkJCWZvcmVhY2goJGRlZm5zIGFzICRvbmVkZWZuKQoJCQkJewoJCQkJCWlmKCRvbmVkZWZuWyduYW1lJ10gPT0gJG9uZXByb3BbJ25hbWUnXSkKCQkJCQl7CgkJCQkJCSRvbmVwcm9wWydwcm9tcHQnXSA9ICRvbmVkZWZuWydwcm9tcHQnXTsKCQkJCQkJJG9uZXByb3BbJ3R5cGUnXSA9ICRvbmVkZWZuWyd0eXBlJ107CgkJCQkJCWJyZWFrOwoJCQkJCX0KCQkJCX0KCQkJCSRwcm9wM1tdID0gJG9uZXByb3A7CgkJCX0KCQkJCgkJCS8vIEFuZCBub3cgbWVyZ2UgaW4gdGhlIHZhbHVlcwoJCQkkcHJvcGVydGllcyA9IGFycmF5KCk7CgkJCSRyZWNpcGllbnRzID0gYXJyYXkoKTsKCQkJJHVzZXJuYW1lX2lzX2VtYWlsID0gJGZldXNlcnMtPkdldFByZWZlcmVuY2UoJ3VzZXJuYW1lX2lzX2VtYWlsJyxmYWxzZSk7CgkJCQoJCQlmb3JlYWNoKCRjdXJyZW50X3VzZXJzIGFzICR1c2VyaWQ9PiR1c2VybmFtZSkgewoJCQkJJHVzZXJwcm9wcyA9ICRmZXVzZXJzLT5HZXRVc2VyUHJvcGVydGllcygkdXNlcmlkKTsKCQkJCQoJCQkJJHByb3BlcnRpZXNbJHVzZXJpZF1bJ3VzZXJuYW1lJ10gPSAkdXNlcm5hbWU7CgkJCQkkcHJvcGVydGllc1skdXNlcmlkXVsndXNlcmlkJ10gPSAkdXNlcmlkOwoJCQkJCgkJCQkkcmVjaXBpZW50c1skdXNlcmlkXVsndXNlcm5hbWUnXSA9ICR1c2VybmFtZTsKCQkJCQoJCQkJZm9yZWFjaCgkcHJvcDMgYXMgJG9uZXByb3ApCgkJCQl7CgkJCQkJZm9yZWFjaCgkdXNlcnByb3BzIGFzICRvbmV2YWwpCgkJCQkJewoJCQkJCQlpZigkb25lcHJvcFsnbmFtZSddID09ICRvbmV2YWxbJ3RpdGxlJ10pCgkJCQkJCXsKCQkJCQkJCSRvbmVwcm9wWydkYXRhJ10gPSAkb25ldmFsWydkYXRhJ107CgkJCQkJCQlicmVhazsKCQkJCQkJfQoJCQkJCX0KCQkJCQlpZihpc3NldCgkb25lcHJvcFsnZGF0YSddKSkgewoJCQkJCQkkcHJvcGVydGllc1skdXNlcmlkXVskb25lcHJvcFsnbmFtZSddXVsnZGF0YSddICA9ICRvbmVwcm9wWydkYXRhJ107CgkJCQkJCSRwcm9wZXJ0aWVzWyR1c2VyaWRdWyRvbmVwcm9wWyduYW1lJ11dWydwcm9tcHQnXT0gJG9uZXByb3BbJ3Byb21wdCddOwoJCQkJCQkkcHJvcGVydGllc1skdXNlcmlkXVskb25lcHJvcFsnbmFtZSddXVsndHlwZSddICA9ICRvbmVwcm9wWyd0eXBlJ107CgkJCQkJCSRwcm9wZXJ0aWVzWyR1c2VyaWRdWyRvbmVwcm9wWyduYW1lJ11dWyduYW1lJ10gID0gJG9uZXByb3BbJ25hbWUnXTsKCQkJCQkJaWYoJG9uZXByb3BbJ3R5cGUnXT09MiAmJiAkb25lcHJvcFsnZGF0YSddIT0nJyAmJiAKCQkJCQkJIWlzc2V0KCRyZWNpcGllbnRzWyR1c2VyaWRdWydlbWFpbCddKSkgewoJCQkJCQkJJHJlY2lwaWVudHNbJHVzZXJpZF1bJ2VtYWlsJ10gPSAkb25lcHJvcFsnZGF0YSddOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQkJCgkJCQlpZigkdXNlcm5hbWVfaXNfZW1haWwpIHsKCQkJCQkkcmVjaXBpZW50c1skdXNlcmlkXVsnZW1haWwnXSA9ICR1c2VybmFtZTsKCQkJCX0KCQkJfQoJCQkkcmVjaXBpZW50c19jb3VudCA9IDA7CgkJCWZvcmVhY2goJHJlY2lwaWVudHMgYXMgJHVzZXJpZD0+JGRhdGEpIHsKCQkJCQoJCQkJJGVycm9yY29kZSA9IDE7CgkJCQkKCQkJCWlmKGlzc2V0KCRkYXRhWydlbWFpbCddKSAmJiAkdGhpcy0+SXNWYWxpZEVtYWlsQWRkcmVzcygkZGF0YVsnZW1haWwnXSkpIHsKCQkJCQkKCQkJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3VzZXJuYW1lJywkZGF0YVsndXNlcm5hbWUnXSk7CgkJCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd1c2VycHJvcHMnLCRwcm9wZXJ0aWVzWyR1c2VyaWRdKTsKCQkJCQlpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaXNfaHRtbCcsZmFsc2UpKSB7CgkJCQkJCSRtYWlsX2NvbnRlbnQgPSAiPGh0bWw+PGJvZHk+IjsKCQkJCQkJJG1haWxfY29udGVudCAuPSAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJG1haWxib2R5KTsKCQkJCQkJCgkJCQkJCS8vIGluc2VydCB0cmFja2luZyBidWcgdG8gY2hlY2sgaWYgbWFpbCBoYXMgYmVlbiByZWFkCgkJCQkJCWlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzYXZlX2xvZ3MnKSAmJiAhJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NhdmVfZXJyb3Jsb2dzX29ubHknKSAmJiAKCQkJCQkJJHRhc2shPSdlcnJvcicgJiYgJHRhc2shPSdzZWxlY3RlZCcgJiYgKCRsb2dfaWQgPSAkdGhpcy0+R2V0TG9nSUQoJG1haWxfaWQsICR1c2VyaWQpKSkgewoJCQkJCQkJCgkJCQkJCQkjJHBhZ2VfZXh0ZW5zaW9uID0gJGNvbmZpZ1sncGFnZV9leHRlbnNpb24nXTsKCQkJCQkJCSMkY29uZmlnWydwYWdlX2V4dGVuc2lvbiddID0gJyc7CgkJCQkJCQkkcHJldHR5dXJsID0gbWQ1KCdGRVVNYWlsZXInKS4nLycgLiAkbG9nX2lkIC4gIi9sb2dvLmdpZiI7CgkJCQkJCQkkdHJhY2tCdWcgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsIG1kNSgndHJhY2tCdWcnKSwgJGRlZmF1bHRpZCwgJycsIGFycmF5KG1kNSgnbG9nX2lkJykgPT4gJGxvZ19pZCwnc2hvd3RlbXBsYXRlJyA9PiAnZmFsc2UnKSAsJycsIHRydWUsIGZhbHNlLCAnJywgdHJ1ZSwgJHByZXR0eXVybCk7CgkJCQkJCQlpZigkY29uZmlnWydwYWdlX2V4dGVuc2lvbiddICYmIGVuZHN3aXRoKCR0cmFja0J1ZywgJGNvbmZpZ1sncGFnZV9leHRlbnNpb24nXSkpCgkJCQkJCQl7CgkJCQkJCQkJJHRyYWNrQnVnID0gc3Vic3RyKCAkdHJhY2tCdWcsIHN0cmxlbiggJHRyYWNrQnVnICkgLSBzdHJsZW4oICRjb25maWdbJ3BhZ2VfZXh0ZW5zaW9uJ10gKSApOwoJCQkJCQkJfQoJCQkJCQkJJG1haWxfY29udGVudCAuPSAnPGltZyBzcmM9IicuJHRyYWNrQnVnLiciIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGFsdD0iIiAvPic7CgkJCQkJCQkjJGNvbmZpZ1sncGFnZV9leHRlbnNpb24nXSA9ICRwYWdlX2V4dGVuc2lvbjsKCQkJCQkJfQoJCQkJCQkKCQkJCQkJJG1haWxfY29udGVudCAuPSAiPC9ib2R5PjwvaHRtbD4iOwoJCQkJCX0gZWxzZSB7CgkJCQkJCSRtYWlsX2NvbnRlbnQgPSAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJG1haWxib2R5KTsKCQkJCQl9CgkJCQkJCgkJCQkJJGNtc21haWxlci0+QWRkQWRkcmVzcygkZGF0YVsnZW1haWwnXSk7CgkJCQkJJGNtc21haWxlci0+U2V0Qm9keSgkbWFpbF9jb250ZW50KTsKCQkJCQkkY21zbWFpbGVyLT5Jc0hUTUwoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2lzX2h0bWwnLGZhbHNlKSk7CgkJCQkJJGNtc21haWxlci0+U2V0U3ViamVjdCgkc3ViamVjdCk7CgkJCQkJJGNtc21haWxlci0+U2VuZCgpOwoJCQkJCSRjbXNtYWlsZXItPkNsZWFyQWRkcmVzc2VzKCk7CgkJCQkJCgkJCQkJJGVycm9yY29kZSA9IDA7CgkJCQkJaWYoaXNzZXQoJGVycm9yY29kZXNbJHVzZXJpZF0pICYmICRlcnJvcmNvZGVzWyR1c2VyaWRdPjApCgkJCQkJCSRyZWNpcGllbnRzX2NvdW50Kys7IAoJCQkJfQoJCQkJZWxzZSBpZihpc3NldCgkZGF0YVsnZW1haWwnXSkgJiYgISR0aGlzLT5Jc1ZhbGlkRW1haWxBZGRyZXNzKCRkYXRhWydlbWFpbCddKSkKCQkJCQkkZXJyb3Jjb2RlID0gMjsKCQkJCQoJCQkJaWYoKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzYXZlX2xvZ3MnLHRydWUpICYmIAoJCQkJKCgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc2F2ZV9lcnJvcmxvZ3Nfb25seScsdHJ1ZSkgJiYgJGVycm9yY29kZSAhPTApIAoJCQkJfHwgISR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzYXZlX2Vycm9ybG9nc19vbmx5Jyx0cnVlKSkpKSB7CgkJCQkJCgkJCQkJJHF1ZXJ5ID0gIlVQREFURSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldW1haWxlcl9sb2dzIAoJCQkJCQkJCVNFVCBzZW5kX2RhdGU9Ii4gJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpIC4iLCAKCQkJCQkJCQkJZXJyb3Jjb2RlPSIuICRlcnJvcmNvZGUgLiIsIHNlbnRieV9pZD0iLiRzZW50YnlfaWQuIiAKCQkJCQkJCQlXSEVSRSBhcmNoaXZlX2lkPSIuICRtYWlsX2lkIC4iIAoJCQkJCQkJCQlBTkQgcmVjaXBpZW50X2lkPSIuICR1c2VyaWQ7CgkJCQkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgkJCQkJaWYoISRkYnJlc3VsdCkgewoJCQkJCQkvLyB0b2RvOiBkaXNwbGF5IGVycm9ybWVzc2FnZQoJCQkJCX0KCQkJCX0KCQkJfQoKCQkJLy8gdG9kbzogaWYgdGFzaz1zZWxlY3RlZCAtPiBvbmx5IGFkZCByZWNpcGllbnRzIGlmIG9sZCBlcnJvcmNvZGU+MAoJCQkkcXVlcnkgPSAiU0VMRUNUIGxhc3RfdXNlcmlkLCBwcm9jZXNzZWRfdXNlcnMsIHJlY2lwaWVudHMgCgkJCQkJCUZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVtYWlsZXJfYXJjaGl2ZSAKCQkJCQkJV0hFUkUgaWQ9Ii4kbWFpbF9pZDsKCQkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgkJCWlmKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSB7CgkJCQlpZigoJHJvd1sncmVjaXBpZW50cyddKyRyZWNpcGllbnRzX2NvdW50KTwkcm93Wydwcm9jZXNzZWRfdXNlcnMnXSkgewoJCQkJCSRyZWNpcGllbnRzX2NvdW50ID0gJHJlY2lwaWVudHNfY291bnQgKyAkcm93WydyZWNpcGllbnRzJ107CgkJCQl9IGVsc2UgewoJCQkJCSRyZWNpcGllbnRzX2NvdW50ID0gJHJvd1sncHJvY2Vzc2VkX3VzZXJzJ107CgkJCQl9CgkJCQkkcXVlcnkgPSAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1bWFpbGVyX2FyY2hpdmUgCgkJCQkJCQlTRVQgcmVjaXBpZW50cz0iLiRyZWNpcGllbnRzX2NvdW50LiIgCgkJCQkJCQlXSEVSRSBpZD0iLiRtYWlsX2lkOwoJCQkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgkJCQlpZighJGRicmVzdWx0KSB7CgkJCQkJLy8gdG9kbzogZGlzcGxheSBlcnJvcm1lc3NhZ2UKCQkJCX0KCQkJfQoJCgkJCWlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzYXZlX2xvZ3MnLHRydWUpKSB7CgkKCQkJCWlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzYXZlX2Vycm9ybG9nc19vbmx5Jyx0cnVlKSkgewoJCQkJCSRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldW1haWxlcl9sb2dzIAoJCQkJCQkJV0hFUkUgYXJjaGl2ZV9pZD0iLiAkbWFpbF9pZCAuIiBBTkQgZXJyb3Jjb2RlPTAiOwoJCQkJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJCQkJCWlmKCEkZGJyZXN1bHQpIHsKCQkJCQkJLy8gdG9kbzogZGlzcGxheSBlcnJvcm1lc3NhZ2UKCQkJCQl9CgkJCQl9CgkJCX0KCQkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwKCQkJCWFycmF5KCJhY3RpdmVfdGFiIj0+JGFjdGl2ZV90YWIsCgkJCQkJJ21lc3NhZ2UnPT4kdGhpcy0+bGFuZygnbWFpbHNfc2VudCcpKSk7CgkJCXJldHVybjsKCQl9Cgl9CgkKCWlmKCR0YXNrPT0nYWxsJykgewoJCQoJCSRyZWNpcGllbnRzX2NvdW50ID0gMDsKCQkkcHJvY2Vzc2VkX3VzZXJzID0gMDsKCQkkbGFzdF91c2VyaWQgPSAwOwoJCSRhcmNoaXZlX2lkID0gJyc7CgkJCgl9IGVsc2UgaWYgKCR0YXNrPT0nc2VsZWN0ZWQnKSB7CgkJCgkJJHJlY2lwaWVudHNfY291bnQgPSAwOwoJCSRwcm9jZXNzZWRfdXNlcnMgPSAwOwoJCSRsYXN0X3VzZXJpZCA9IDA7CgoJfSBlbHNlIGlmICgkdGFzaz09J2Vycm9yJykgewoJCQoJCSRjdXJyZW50X3VzZXJzID0gYXJyYXkoKTsKCQkkcmVjaXBpZW50c19jb3VudCA9IDA7CgkJJHByb2Nlc3NlZF91c2VycyA9IDA7CgkJJHUgPSAkdGhpcy0+R2V0VXNlcnNFcnJvcnMoJG1haWxfaWQsMCwwLCc+PScsJGdyb3Vwcyk7CgkJJHVzZXJzID0gY291bnQoJHUpOwoJCWZvcmVhY2goJHUgYXMgJHVzZXJpZD0+JHVzZXJuYW1lKSB7CgkJCWlmKCgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWF4bWFpbHMnLDUwKT4wICYmIAoJCQljb3VudCgkY3VycmVudF91c2Vycyk8JHRoaXMtPkdldFByZWZlcmVuY2UoJ21heG1haWxzJyw1MCkpIHx8IAoJCQkkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWF4bWFpbHMnLDUwKT09MCkgewoJCQkJJGN1cnJlbnRfdXNlcnNbJHVzZXJpZF0gPSAkdXNlcm5hbWU7CgkJCX0KCQl9CgoJCXJlc2V0KCRjdXJyZW50X3VzZXJzKTsKCQkkbGFzdF91c2VyaWQgPSAoa2V5KCRjdXJyZW50X3VzZXJzKS0xKTsKCQkKCX0KCQoJJHJldCA9ICR0aGlzLT5jcmVhdGVUZW1wTWFpbCgkcmVjaXBpZW50X2dyb3VwcywKCQkJCQkJCQkJJHN1YmplY3QsCgkJCQkJCQkJCSRtYWlsYm9keSwKCQkJCQkJCQkJJGxhc3RfdXNlcmlkLAoJCQkJCQkJCQkkcHJvY2Vzc2VkX3VzZXJzLAoJCQkJCQkJCQkkcmVjaXBpZW50c19jb3VudCwKCQkJCQkJCQkJJHRhc2ssCgkJCQkJCQkJCSRhcmNoaXZlX2lkLAoJCQkJCQkJCQkkYXV0b3NhdmUpOwoJaWYoISRyZXRbMF0pIHsKCQlyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCRyZXR1cm5pZCwkcmV0WzFdKTsKCX0KCSRtYWlsX2lkID0gJHJldFsxXTsKCWlmKCR0YXNrPT0nc2VsZWN0ZWQnKSB7CgkJJHVzZXJzID0gY291bnQoJGN1cnJlbnRfdXNlcnMpOwoJCWZvcmVhY2goJGN1cnJlbnRfdXNlcnMgYXMgJHVpZD0+JHVuYW1lKSB7CgkJCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldW1haWxlcl91c2VycyAKCQkJCQkJKGlkLCB1c2VyaWQsIHVzZXJuYW1lLCB0bXBfaWQsIHVzZXJjb3VudCxlcnJvcmNvZGUpCgkJCQkJCVZBTFVFUyAoPyw/LD8sPyw/LD8pIjsKCQkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgCgkJCQlhcnJheSgkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldW1haWxlcl91c2Vyc19zZXEiKSwKCQkJCQkkdWlkLAoJCQkJCSR1bmFtZSwKCQkJCQkkbWFpbF9pZCwKCQkJCQkkdXNlcnMsCgkJCQkJJGVycm9yY29kZXNbJHVpZF0pKTsKCQl9Cgl9Cn0gZWxzZSBpZigkbWFpbF90eXBlPT0ndG1wJykgewoJCglpZiAoJHRhc2s9PSdlcnJvcicpIHsKCQkkdXNlcnMgPSBjb3VudCgkdGhpcy0+R2V0VXNlcnNFcnJvcnMoJGFyY2hpdmVfaWQsMCwwLCc+PScsJGdyb3VwcykpOwoJfQoJZWxzZSBpZiAoJHRhc2s9PSdzZWxlY3RlZCcpIHsKCQkkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldW1haWxlcl91c2VycyAKCQkJCVdIRVJFIHRtcF9pZD0iLiRtYWlsX2lkLiIKCQkJCU9SREVSIEJZIHVzZXJpZCBBU0MgIi4gCgkJCQkoJHRoaXMtPkdldFByZWZlcmVuY2UoJ21heG1haWxzJyw1MCk+MD8iIExJTUlUICIuJHRoaXMtPkdldFByZWZlcmVuY2UoJ21heG1haWxzJyw1MCk6JycpOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJCXdoaWxlKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSB7CgkJCSR1c2VycyA9ICRyb3dbJ3VzZXJjb3VudCddOwoJCQkkY3VycmVudF91c2Vyc1skcm93Wyd1c2VyaWQnXV0gPSAkcm93Wyd1c2VybmFtZSddOwoJCX0KCX0KCS8vIGlmIHdlIHRyeSB0byBjb250aW51ZSB3aXRoIGEgdGVtcCBvciBhcmNoaXZlIG1haWwgLT4gdXBkYXRlIG1haWwKCSRxdWVyeSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVtYWlsZXJfdG1wIAoJCQkJU0VUIHNlbmRfZGF0ZT0iLiAkZGItPkRCVGltZVN0YW1wKHRpbWUoKSkgLiIsIAoJCQkJCXNlbnRieV9pZD0iLiAkc2VudGJ5X2lkIC4iIAoJCQkJV0hFUkUgaWQ9Ii4kbWFpbF9pZDsKCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJaWYoISRkYnJlc3VsdCkKCQlyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcmV0dXJuaWQsCgkJCQkJCQkJJHRoaXMtPkxhbmcoJ2Vycm9yX2RiX3VwZGF0ZV90bXBtYWlsJywkcXVlcnkpKTsKCn0KCmlmKCR0YXNrIT0nZXJyb3InICYmICR0YXNrIT0ndXNlcicgJiYgJHRhc2shPSdzZWxlY3RlZCcpIHsKCSR1c2VycyA9IGNvdW50KCR0aGlzLT5HZXRVc2VycygkZ3JvdXBzKSk7Cn0KCi8vIERpc3BsYXkgdGhlIHBvcHVsYXRlZCB0ZW1wbGF0ZQokaW1nPWNtc21zKCktPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9hY2NlcHQuZ2lmJywKCQkJCQkJCQkJCQkJCQknJywnJywnJywnc3lzdGVtaWNvbicpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21lc3NhZ2UnLCRpbWcuJyZuYnNwOycuJHRoaXMtPmxhbmcoJ21haWxzX3NlbnQnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignaWQnLCRpZCk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZGVsYXknLGludHZhbCgkdGhpcy0+R2V0UHJlZmVyZW5jZSgncmVxdWVzdF9kZWxheScsJycpKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigncmFuZG9tX2RlbGF5JyxpbnR2YWwoJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JhbmRvbV9kZWxheScsZmFsc2UpKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignb2tfbGluaycsCgkkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RlZmF1bHRhZG1pbicsJycsJHRoaXMtPmxhbmcoJ29rJyksYXJyYXkoKSwnJywKCQlmYWxzZSxmYWxzZSwnb25jbGljayJ3aW5kb3cuY2xvc2UoKSInKSk7CgojJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdva19saW5rJywnPGEgaHJlZj0iamF2YXNjcmlwdDpvbmNsaWNrPXdpbmRvdy5jbG9zZSgpIj5PSzwvYT4nKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignZXJyb3JfMScsCgkkdGhpcy0+bGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zX2FqYXgnLCdtYWlsX2lkJywnc2VuZE1haWwnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZXJyb3JfMicsCgkkdGhpcy0+bGFuZygnZXJyb3JfZGJfZ2V0X3RtcG1haWxfYWpheCcsJG1haWxfaWQpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlcnJvcl8zJywkdGhpcy0+bGFuZygnZXJyb3JfZGJfY3JlYXRlX2xvZycpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlcnJvcl80JywkdGhpcy0+bGFuZygnZXJyb3JfZGJfdXBkYXRlX3RtcG1haWxfYWpheCcpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlcnJvcl81JywkdGhpcy0+bGFuZygnZXJyb3JfZGJfc2F2ZW1haWwnLCcnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZXJyb3JfNicsJHRoaXMtPmxhbmcoJ2Vycm9yX2RiX3VwZGF0ZV9hcmNoaXZlJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Vycm9yXzcnLCR0aGlzLT5sYW5nKCdlcnJvcl9kYl9kZWxldGVfdG1wJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Vycm9yXzgnLCR0aGlzLT5sYW5nKCdlcnJvcl9kYl91cGRhdGVfbG9nJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2hlYWRpbmcnLCR0aGlzLT5sYW5nKCdzZW5kbWFpbCcpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlcnJvcl9hamF4JywkdGhpcy0+bGFuZygnZXJyb3JfYWpheCcpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlcnJvcl9yZXF1ZXN0X3N0YXR1cycsCgkJCQkJCQkJCQkkdGhpcy0+bGFuZygnZXJyb3JfcmVxdWVzdF9zdGF0dXMnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZXJyb3JfeG1saHR0cF9pbnN0YW5jZScsCgkJCQkJCQkJCSR0aGlzLT5sYW5nKCdlcnJvcl94bWxodHRwX2luc3RhbmNlJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3NlbmRtZXNzYWdlJywkdGhpcy0+bGFuZygnd2FpdCcpKTsKCmlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtYXhtYWlscycsNTApPjApCgkkcHJvY2Vzc2luZ191c2VycyA9ICRwcm9jZXNzZWRfdXNlcnMrJHRoaXMtPkdldFByZWZlcmVuY2UoJ21heG1haWxzJyw1MCk7CmVsc2UKCSRwcm9jZXNzaW5nX3VzZXJzID0gJHVzZXJzOwoKaWYoJHByb2Nlc3NpbmdfdXNlcnM+JHVzZXJzKQoJJHByb2Nlc3NpbmdfdXNlcnMgPSAkdXNlcnM7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NvdW50ZXInLCR0aGlzLT5sYW5nKCdzZW5kaW5nJykuCgkJCQkJJyZuYnNwOyZuYnNwOzxzcGFuIGlkPSJwcm9jZXNzaW5nIj4nLgoJCQkJCSRwcm9jZXNzZWRfdXNlcnMgLgoJCQkJCScgLSAnLiRwcm9jZXNzaW5nX3VzZXJzLic8L3NwYW4+Jm5ic3A7Jy4gJHRoaXMtPmxhbmcoJ29mJykuCgkJCQkJJyZuYnNwOycuICR1c2Vycyk7CgovLyBjcmVhdGUgYW4gdXJsIGZvciB0aGUgeG1saHR0cCByZXF1ZXN0IChhamF4KQovLyBuZWVkIHRvIHJlcGxhY2UgJmFtcDsgd2l0aCAmIG90aGVyd2lzZSBpdCB3b24ndCB3b3JrIHdpdGggQ01TbXMgPiAxLjUgKD8pCiRwYXJtcyA9IGFycmF5KCdtYWlsX2lkJz0+JG1haWxfaWQsJ21haWxfdHlwZSc9PiRtYWlsX3R5cGUsJ3Rhc2snPT4kdGFzaywKCQkJCSdkaXNhYmxlX3RoZW1lJz0+dHJ1ZSwnYWpheCc9PnRydWUpOwoKJHNtYXJ0eS0+YXNzaWduKCd1cmwnLCBzdHJfcmVwbGFjZSgnJmFtcDsnLCAnJicsIAoJCQkJCQkJCSR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnc2VuZE1haWwnLCRyZXR1cm5pZCwnJywKCQkJCQkJCQkJCQkJCQkJJHBhcm1zLCAnJywgdHJ1ZSkpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnc2VuZE1haWwudHBsJyk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.readMail.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEZyb250ZW5kVXNlciBNYWlsZXIgKGMpIDIwMDgtMjAxMCBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkKIyAgICAgICAgICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGJhY2tlbmQgdXNlcnMgYWJpbGl0eSAKIyAgICAgICAgICB0byBlYXNpbHkgc2VuZCBhbiBlbWFpbCB0byBhbGwgZnJvbnRlbmQgdXNlcnMgb3IganVzdCBzcGVjaWZpYyBmcm9udC0KIyAgICAgICAgICBlbmQgdXNlcmdyb3VwcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZCB3ZWJzaXRlLgojIFZlcnNpb246IDAuOS40CiMgRmlsZSAgIDogYWN0aW9uLnJlYWRNYWlsLnBocAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDQtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKaWYoIWlzX29iamVjdChjbXNtcygpKSkKCWV4aXQ7CgokY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CgppZighJHRoaXMtPkNoZWNrUGVybWlzc2lvbignVXNlIEZFVU1haWxlcicpKSB7CglyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2Vycm9yX3Blcm1pc3Npb25zJykpOwp9CgokbmV3ID0gJzxpbWcgc3JjPSInLiRjb25maWdbJ3Jvb3RfdXJsJ10uJy9tb2R1bGVzL0ZFVU1haWxlci9pbWFnZXMvbmV3bWFpbC5naWYiIGFsdD0iIiB0aXRsZT0iJy4kdGhpcy0+bGFuZygnbmV3bWFpbCcpLiciIGNsYXNzPSJzeXN0ZW1pY29uIiAvPic7CiRlZGl0ID0gY21zbXMoKS0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywgJHRoaXMtPmxhbmcoJ2VkaXQnKSwnJywnJywnc3lzdGVtaWNvbicpOwokYmFjayA9IGNtc21zKCktPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9iYWNrLmdpZicsICR0aGlzLT5sYW5nKCdiYWNrJyksJycsJycsJ3N5c3RlbWljb24nKTsKJGRlbGV0ZSA9IGNtc21zKCktPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywgJHRoaXMtPmxhbmcoJ2RlbGV0ZScpLCcnLCcnLCdzeXN0ZW1pY29uJyk7CiRyZXNlbmRfYWxsID0gJzxpbWcgc3JjPSInLiRjb25maWdbJ3Jvb3RfdXJsJ10uJy9tb2R1bGVzL0ZFVU1haWxlci9pbWFnZXMvcmVzZW5kX2FsbC5naWYiIGFsdD0iJy4kdGhpcy0+bGFuZygncmVzZW5kX2FsbCcpLiciIHRpdGxlPSInLiR0aGlzLT5sYW5nKCdyZXNlbmRfYWxsJykuJyIgY2xhc3M9InN5c3RlbWljb24iIC8+JzsKJHJlc2VuZF9lcnJvcnMgPSAnPGltZyBzcmM9IicuJGNvbmZpZ1sncm9vdF91cmwnXS4nL21vZHVsZXMvRkVVTWFpbGVyL2ltYWdlcy9yZXNlbmRfZXJyb3JzLmdpZiIgYWx0PSInLiR0aGlzLT5sYW5nKCdyZXNlbmRfZXJyb3JzJykuJyIgdGl0bGU9IicuJHRoaXMtPmxhbmcoJ3Jlc2VuZF9lcnJvcnMnKS4nIiBjbGFzcz0ic3lzdGVtaWNvbiIgLz4nOwokZXJyb3Jsb2dzID0gY21zbXMoKS0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvZXh0cmEveWVsbG93LmdpZicsICR0aGlzLT5sYW5nKCd2aWV3X2xvZ3MnKSwnJywnJywnc3lzdGVtaWNvbicpOwokdmlld2xvZ3MgPSBjbXNtcygpLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vaW5mby5naWYnLCAkdGhpcy0+bGFuZygndmlld19sb2dzJyksJycsJycsJ3N5c3RlbWljb24nKTsKCmlmKGlzc2V0KCRwYXJhbXNbJ21haWxfdHlwZSddKSAmJiAhZW1wdHkoJHBhcmFtc1snbWFpbF90eXBlJ10pKSB7CgkkbWFpbF90eXBlID0gdHJpbSgkcGFyYW1zWydtYWlsX3R5cGUnXSk7Cn0gZWxzZSB7CgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkKTsKfQoKJHJlc2VuZF9uZXcgPSAnPGltZyBzcmM9IicuJGNvbmZpZ1sncm9vdF91cmwnXS4nL21vZHVsZXMvRkVVTWFpbGVyL2ltYWdlcy9jb250aW51ZS5naWYiIGFsdD0iJy4kdGhpcy0+bGFuZygnY29udGludWVfJy4kbWFpbF90eXBlKS4nIiB0aXRsZT0iJy4kdGhpcy0+bGFuZygnY29udGludWVfJy4kbWFpbF90eXBlKS4nIiBjbGFzcz0ic3lzdGVtaWNvbiIgLz4nOwojJHJlc2VuZF9uZXdfaW5hY3RpdmUgPSAnPGltZyBzcmM9IicuJGNvbmZpZ1sncm9vdF91cmwnXS4nL21vZHVsZXMvRkVVTWFpbGVyL2ltYWdlcy9yZXNlbmRfbmV3X2luYWN0aXZlLmdpZiIgYWx0PSInLiR0aGlzLT5sYW5nKCdyZXNlbmRfbmV3Jy4kbWFpbF90eXBlKS4nIiB0aXRsZT0iJy4kdGhpcy0+bGFuZygncmVzZW5kX25ldycuJG1haWxfdHlwZSkuJyIgY2xhc3M9InN5c3RlbWljb24iIC8+JzsKIyRyZXNlbmRfZXJyb3JzX2luYWN0aXZlID0gJzxpbWcgc3JjPSInLiRjb25maWdbJ3Jvb3RfdXJsJ10uJy9tb2R1bGVzL0ZFVU1haWxlci9pbWFnZXMvcmVzZW5kX2Vycm9yc19pbmFjdGl2ZS5naWYiIGFsdD0iJy4kdGhpcy0+bGFuZygncmVzZW5kX2Vycm9ycycpLiciIHRpdGxlPSInLiR0aGlzLT5sYW5nKCdyZXNlbmRfZXJyb3JzJykuJyIgY2xhc3M9InN5c3RlbWljb24iIC8+JzsKCgppZihpc3NldCgkcGFyYW1zWydtYWlsX2lkJ10pKSB7CgkkbWFpbF9pZCA9IGludHZhbCh0cmltKCRwYXJhbXNbJ21haWxfaWQnXSkpOwp9IGVsc2UgewoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCk7Cn0KCiRjbGVhcl9sb2cgPSBmYWxzZTsKaWYoaXNzZXQoJHBhcmFtc1snY2xlYXJfbG9nJ10pICYmICRwYXJhbXNbJ2NsZWFyX2xvZyddPT10cnVlKSB7CgkkY2xlYXJfbG9nID0gdHJ1ZTsKfQoKJHN1YmplY3QgCQkJPSAnJzsKJG1haWxib2R5IAkJCT0gJyc7CiRzZW50YnkgCQkJPSAnJzsKJGxhc3RfdXNlcmlkIAkJPSAwOwokc2VuZF9kYXRlIAkJCT0gJyc7CiRwcm9jZXNzZWRfdXNlcnMgCT0gMDsKJHJlY2lwaWVudHMgCQk9IDA7CiRlcnJvcmNvZGUgCQkJPSAwOwokdG90YWxfdXNlcnMJCT0gMDsKJGdyb3VwcyAJCQk9ICcnOwokZ3JvdXBzX2NvbmZpcm0JCT0gJyc7CiRyZWNpcGllbnRfZ3JvdXBzCT0gYXJyYXkoKTsKCi8vIGdldCBtYWlsIGRhdGEKJG1haWwgPSAkdGhpcy0+R2V0TWFpbCgkbWFpbF9pZCwkbWFpbF90eXBlKTsKaWYoJG1haWwhPWZhbHNlKSB7Cgkkc2VudGJ5IAkJCT0gJG1haWxbJ3VzZXJuYW1lJ107Cgkkc2VuZF9kYXRlIAkJCT0gJG1haWxbJ3NlbmRfZGF0ZSddOwoJJGxhc3RfdXNlcmlkIAkJPSAkbWFpbFsnbGFzdF91c2VyaWQnXTsKCSRtYWlsYm9keSAgCQkJPSAkbWFpbFsnbWFpbGJvZHknXTsKCglpZighZW1wdHkoJG1haWxbJ3N1YmplY3QnXSkpIHsKCQkkc3ViamVjdCA9ICRtYWlsWydzdWJqZWN0J107Cgl9IGVsc2UgewoJCSRzdWJqZWN0ID0gJHRoaXMtPmxhbmcoJ25vc3ViamVjdCcpOwoJfQoJCglpZigkbWFpbFsncmVjaXBpZW50cyddPT0kbWFpbFsncHJvY2Vzc2VkX3VzZXJzJ10pCgkJJGVycm9yY29kZSAJPSAwOwoJZWxzZQoJCSRlcnJvcmNvZGUgCT0gMTsKCQoJJHByb2Nlc3NlZF91c2VycyAJPSAkbWFpbFsncHJvY2Vzc2VkX3VzZXJzJ107CgkkcmVjaXBpZW50cyAJCT0gJG1haWxbJ3JlY2lwaWVudHMnXTsKCQoJaWYoJG1haWxbJ2xvZ3MnXT4wKQoJCSRsb2dzIAkJCT0gdHJ1ZTsKCWVsc2UKCQkkbG9ncyAJCQk9IGZhbHNlOwoKCSRncnBzPWV4cGxvZGUoJzsnLCRtYWlsWydyZWNpcGllbnRfZ3JvdXBzJ10pOwoJaWYoIWVtcHR5KCRncnBzWzBdKSkgewoJCWZvcmVhY2goJGdycHMgYXMgJGdycCkgewoJCQlpZighZW1wdHkoJGdycCkpIHsKCQkJCSRnID0gZXhwbG9kZSgnLCcsJGdycCk7CgkJCQlpZihpc3NldCgkZ1sxXSkpCgkJCQkJJHJlY2lwaWVudF9ncm91cHNbJGdbMF1dID0gJGdbMV07CgkJCX0KCQl9Cgl9Cn0KCiR0b3RhbF91c2VycyA9IGNvdW50KCR0aGlzLT5HZXRVc2VycygkcmVjaXBpZW50X2dyb3VwcykpOwokZ3JvdXBzX2NvbmZpcm0gPSBpbXBsb2RlKCJcXG4iLCRyZWNpcGllbnRfZ3JvdXBzKTsKJGdyb3VwcyA9IGltcGxvZGUoIjxiciAvPiIsJHJlY2lwaWVudF9ncm91cHMpOwoKLy8gc21hcnR5IHN0dWZmCiR0aGlzLT5zbWFydHktPmFzc2lnbignZ3JvdXBzX3RleHQnLCR0aGlzLT5sYW5nKCdncm91cHMnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZ3JvdXBzX2lucHV0JywkZ3JvdXBzKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbigndG90YWx1c2Vyc190ZXh0JywkdGhpcy0+bGFuZygndG90YWx1c2VycycpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0b3RhbHVzZXJzX2lucHV0JywkdG90YWxfdXNlcnMpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwcm9jZXNzZWRfdGV4dCcsJHRoaXMtPmxhbmcoJ3Byb2Nlc3NlZHVzZXJzJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Byb2Nlc3NlZF9pbnB1dCcsJHByb2Nlc3NlZF91c2Vycyk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3JlY2lwaWVudHNfdGV4dCcsJHRoaXMtPmxhbmcoJ3JlY2lwaWVudHMnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigncmVjaXBpZW50c19pbnB1dCcsJHJlY2lwaWVudHMpOwoKJHJlbWFpbmluZ19uZXcgPSAkdG90YWxfdXNlcnMgLSAkcHJvY2Vzc2VkX3VzZXJzOwppZigkcmVtYWluaW5nX25ldzwwKSAkcmVtYWluaW5nX25ldyA9IDA7CgokcmVtYWluaW5nX2Vycm9ycyA9ICR0b3RhbF91c2VycyAtICRyZWNpcGllbnRzOwppZigkcmVtYWluaW5nX2Vycm9yczwwKSAkcmVtYWluaW5nX2Vycm9ycyA9IDA7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1YmplY3RfdGV4dCcsJHRoaXMtPmxhbmcoJ3N1YmplY3QnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignc3ViamVjdF9pbnB1dCcsJHN1YmplY3QpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtYWlsYm9keV90ZXh0JywkdGhpcy0+bGFuZygnbWVzc2FnZScpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtYWlsYm9keV9pbnB1dCcsJG1haWxib2R5KTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignYmFja19saW5rJywkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RlZmF1bHRhZG1pbicsJycsCgkJCQkJCQkJCQkkYmFjayxhcnJheSgnYWN0aXZlX3RhYic9PiRtYWlsX3R5cGUpKSk7CgppZigkbWFpbF90eXBlIT0ndG1wJykgewoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlZGl0X2xpbmsnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZWRpdE1haWwnLCcnLCRlZGl0LAoJCQkJCQkJCQkJCQkJYXJyYXkoJ21haWxfdHlwZSc9PiRtYWlsX3R5cGUsCgkJCQkJCQkJCQkJCQkJJ21haWxfaWQnPT4kbWFpbF9pZCwKCQkJCQkJCQkJCQkJCQknY2xlYXJfbG9nJz0+JGNsZWFyX2xvZykpKTsKfQoKLy8gcmVzZW5kX2FsbCwgcmVzZW5kX25ldywgcmVzZW5kX2Vycm9ycwppZigkbWFpbF90eXBlPT0nYXJjaGl2ZScpIHsKCSR0aGlzLT5zbWFydHktPmFzc2lnbigncmVzZW5kX2FsbCcsICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwncHJlcGFyZVNlbmRNYWlsJywkcmV0dXJuaWQsCgkJCQkJCQkJCQkJJHJlc2VuZF9hbGwsCgkJCQkJCQkJCQkJYXJyYXkoJ3Rhc2snPT4nYWxsJywKCQkJCQkJCQkJCQkJCSdtYWlsX3R5cGUnPT4kbWFpbF90eXBlLAoJCQkJCQkJCQkJCQkJJ2NsZWFyX2xvZyc9PiRjbGVhcl9sb2csCgkJCQkJCQkJCQkJCQknbGFzdF91c2VyaWQnPT4wLAoJCQkJCQkJCQkJCQkJJ21haWxfaWQnPT4kbWFpbF9pZCksCgkJCQkJCQkJCQkJJHRoaXMtPmxhbmcoJ3Jlc2VuZGFsbCcuJG1haWxfdHlwZS4nY29uZmlybV9mdWxsJywKCQkJCQkJCQkJCQkJCQkJCSRncm91cHNfY29uZmlybSwKCQkJCQkJCQkJCQkJCQkJCSR0b3RhbF91c2VycykpKTsKfQoKaWYoJHJlbWFpbmluZ19uZXc+MCkgewoJJHBhcm1zID0gYXJyYXkoJ3Rhc2snPT4nY29udGludWUnLCdtYWlsX3R5cGUnPT4kbWFpbF90eXBlLAoJCQkJCQkJCQknY2xlYXJfbG9nJz0+JGNsZWFyX2xvZywnbWFpbF9pZCc9PiRtYWlsX2lkKTsKCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Jlc2VuZF9uZXcnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwncHJlcGFyZVNlbmRNYWlsJywKCQkJCQkJCQkJCSRyZXR1cm5pZCwkcmVzZW5kX25ldywkcGFybXMsCgkJCQkJCQkJCQkkdGhpcy0+bGFuZygncmVzZW5kbmV3Jy4kbWFpbF90eXBlLidjb25maXJtX2Z1bGwnLAoJCQkJCQkJCQkJCQkJCQkJJGdyb3Vwc19jb25maXJtLAoJCQkJCQkJCQkJCQkJCQkJJHRvdGFsX3VzZXJzLAoJCQkJCQkJCQkJCQkJCQkJJHByb2Nlc3NlZF91c2VycywKCQkJCQkJCQkJCQkJCQkJCSRyZWNpcGllbnRzLAoJCQkJCQkJCQkJCQkJCQkJJHJlbWFpbmluZ19uZXcpKSk7Cn0gZWxzZSB7CgkjJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyZXNlbmRfbmV3JywkcmVzZW5kX25ld19pbmFjdGl2ZSk7Cn0KCmlmKCRlcnJvcmNvZGU9PTEgJiYgJGxvZ3M9PXRydWUpIHsKCWlmKCRyZW1haW5pbmdfZXJyb3JzPjAgJiYgJG1haWxfdHlwZT09J2FyY2hpdmUnKSB7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Jlc2VuZF9lcnJvcicsJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdwcmVwYXJlU2VuZE1haWwnLCRyZXR1cm5pZCwKCQkJCQkJCQkJCSRyZXNlbmRfZXJyb3JzLAoJCQkJCQkJCQkJYXJyYXkoJ3Rhc2snPT4nZXJyb3InLAoJCQkJCQkJCQkJCQknbWFpbF90eXBlJz0+JG1haWxfdHlwZSwKCQkJCQkJCQkJCQkJJ2NsZWFyX2xvZyc9PiRjbGVhcl9sb2csCgkJCQkJCQkJCQkJCSdtYWlsX2lkJz0+JG1haWxfaWQpLAoJCQkJCQkJCQkJJHRoaXMtPmxhbmcoJ3Jlc2VuZGVycm9yJy4kbWFpbF90eXBlLidjb25maXJtX2Z1bGwnLAoJCQkJCQkJCQkJCQkJJGdyb3Vwc19jb25maXJtLAoJCQkJCQkJCQkJCQkJJHRvdGFsX3VzZXJzLAoJCQkJCQkJCQkJCQkJJHByb2Nlc3NlZF91c2VycywKCQkJCQkJCQkJCQkJCSRyZWNpcGllbnRzLAoJCQkJCQkJCQkJCQkJJHJlbWFpbmluZ19lcnJvcnMpKSk7Cgl9IGVsc2UgewoJCSMkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Jlc2VuZF9lcnJvcicsJHJlc2VuZF9lcnJvcnNfaW5hY3RpdmUpOwoJfQoKCSR0aGlzLT5zbWFydHktPmFzc2lnbigndmlld19sb2cnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwndmlld0xvZ3MnLCRyZXR1cm5pZCwkZXJyb3Jsb2dzLAoJCQkJCQkJCQkJCQkJCWFycmF5KCdtYWlsX3R5cGUnPT4kbWFpbF90eXBlLAoJCQkJCQkJCQkJCQkJCQkkbWFpbF90eXBlLidfaWQnPT4kbWFpbF9pZCwKCQkJCQkJCQkJCQkJCQkJJ2NsZWFyX2xvZyc9PiRjbGVhcl9sb2cpKSk7Cn0gZWxzZSBpZigkZXJyb3Jjb2RlPT0wICYmICRsb2dzPT10cnVlKSB7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3ZpZXdfbG9nJywkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ3ZpZXdMb2dzJywkcmV0dXJuaWQsJHZpZXdsb2dzLAoJCQkJCQkJCQkJCQkJCWFycmF5KCdtYWlsX3R5cGUnPT4kbWFpbF90eXBlLAoJCQkJCQkJCQkJCQkJCQkkbWFpbF90eXBlLidfaWQnPT4kbWFpbF9pZCwKCQkJCQkJCQkJCQkJCQkJJ2NsZWFyX2xvZyc9PiRjbGVhcl9sb2cpKSk7CgkjJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyZXNlbmRfZXJyb3InLCRyZXNlbmRfZXJyb3JzX2luYWN0aXZlKTsKfQoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdoZWFkaW5nJywkdGhpcy0+bGFuZygncmVhZG1haWwnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZGVsZXRlX2xpbmsnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZGVsZXRlTWFpbCcsJycsJGRlbGV0ZSwKCQkJCQkJCQkJCQkJCWFycmF5KCdtYWlsX3R5cGUnPT4kbWFpbF90eXBlLAoJCQkJCQkJCQkJCQkJCSdjbGVhcl9sb2cnPT4kY2xlYXJfbG9nLAoJCQkJCQkJCQkJCQkJCSdtYWlsX2lkJz0+JG1haWxfaWQpLAoJCQkJCQkJCQkJCQkJJHRoaXMtPmxhbmcoJ2RlbGV0ZWNvbmZpcm0nKSkpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCduZXdfbGluaycsJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCduZXdNYWlsJywnJywJJG5ldykpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCduZXdfbGluaycsJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCduZXdNYWlsJywnJywJJG5ldykpOwoKLy8gRGlzcGxheSB0aGUgcG9wdWxhdGVkIHRlbXBsYXRlCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgncmVhZE1haWwudHBsJyk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.savePrefs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEZyb250ZW5kVXNlciBNYWlsZXIgKGMpIDIwMDgtMjAxMCBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkKIyAgICAgICAgICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGJhY2tlbmQgdXNlcnMgYWJpbGl0eSAKIyAgICAgICAgICB0byBlYXNpbHkgc2VuZCBhbiBlbWFpbCB0byBhbGwgZnJvbnRlbmQgdXNlcnMgb3IganVzdCBzcGVjaWZpYyBmcm9udC0KIyAgICAgICAgICBlbmQgdXNlcmdyb3VwcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZCB3ZWJzaXRlLgojIFZlcnNpb246IDAuOS40CiMgRmlsZSAgIDogYWN0aW9uLnNhdmVQcmVmcy5waHAKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA0LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCFpc19vYmplY3QoY21zbXMoKSkpIGV4aXQ7CgppZihpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgfHwgaXNzZXQoJHBhcmFtc1snc3VibWl0X3ByZWZzJ10pKQp7CglpZihpc3NldCgkcGFyYW1zWydhdXRvc2F2ZSddKSkKCXsKCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgiYXV0b3NhdmUiLCAkcGFyYW1zWydhdXRvc2F2ZSddKTsKCX0KCWlmKGlzc2V0KCRwYXJhbXNbJ3NhdmVfbG9ncyddKSkKCXsKCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgic2F2ZV9sb2dzIiwgJHBhcmFtc1snc2F2ZV9sb2dzJ10pOwoJCWlmKGlzc2V0KCRwYXJhbXNbJ3NhdmVfZXJyb3Jsb2dzX29ubHknXSkpCgkJewoJCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgic2F2ZV9lcnJvcmxvZ3Nfb25seSIsICRwYXJhbXNbJ3NhdmVfZXJyb3Jsb2dzX29ubHknXSk7CgkJfQoJfQoJaWYoaXNzZXQoJHBhcmFtc1snYXV0b2NsZWFyX2xvZ3MnXSkpCgl7CgkJJHRoaXMtPlNldFByZWZlcmVuY2UoImF1dG9jbGVhcl9sb2dzIiwgJHBhcmFtc1snYXV0b2NsZWFyX2xvZ3MnXSk7Cgl9CglpZihpc3NldCgkcGFyYW1zWydhdXRvY2xlYXJfYXJjaGl2ZW1haWxzJ10pKQoJewoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCJhdXRvY2xlYXJfYXJjaGl2ZW1haWxzIiwgJHBhcmFtc1snYXV0b2NsZWFyX2FyY2hpdmVtYWlscyddKTsKCQlpZihpc3NldCgkcGFyYW1zWydhdXRvY2xlYXJfdmFsdWUnXSkgJiYgJHBhcmFtc1snYXV0b2NsZWFyX3ZhbHVlJ10hPScnKQoJCXsKCQkJJHRoaXMtPlNldFByZWZlcmVuY2UoImF1dG9jbGVhcl92YWx1ZSIsIGludHZhbCh0cmltKCRwYXJhbXNbJ2F1dG9jbGVhcl92YWx1ZSddKSkpOwoJCX0KCQlpZihpc3NldCgkcGFyYW1zWydhdXRvY2xlYXJfdGltZSddKSAmJiAkcGFyYW1zWydhdXRvY2xlYXJfdGltZSddIT0nJykKCQl7CgkJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCJhdXRvY2xlYXJfdGltZSIsdHJpbSgkcGFyYW1zWydhdXRvY2xlYXJfdGltZSddKSk7CgkJfQoJCWlmKGlzc2V0KCRwYXJhbXNbJ2F1dG9jbGVhcl90bXBtYWlscyddKSkKCQl7CgkJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCJhdXRvY2xlYXJfdG1wbWFpbHMiLCAkcGFyYW1zWydhdXRvY2xlYXJfdG1wbWFpbHMnXSk7CgkJfQoJfQoJaWYoaXNzZXQoJHBhcmFtc1snaXNfaHRtbCddKSkKCXsKCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgiaXNfaHRtbCIsICRwYXJhbXNbJ2lzX2h0bWwnXSk7Cgl9CglpZihpc3NldCgkcGFyYW1zWydtYXhtYWlscyddKSkKCXsKCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgibWF4bWFpbHMiLCBpbnR2YWwodHJpbSgkcGFyYW1zWydtYXhtYWlscyddKSkpOwoJfQoJaWYoaXNzZXQoJHBhcmFtc1sncmVxdWVzdF9kZWxheSddKSkKCXsKCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgicmVxdWVzdF9kZWxheSIsIGludHZhbCh0cmltKCRwYXJhbXNbJ3JlcXVlc3RfZGVsYXknXSkpKTsKCX0KCWlmKGlzc2V0KCRwYXJhbXNbJ3JhbmRvbV9kZWxheSddKSkKCXsKCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgicmFuZG9tX2RlbGF5IiwgJHBhcmFtc1sncmFuZG9tX2RlbGF5J10pOwoJfQoJaWYoaXNzZXQoJHBhcmFtc1snZGVmYXVsdF9ncm91cHMnXSkpCgl7CgkJJGRlZmF1bHRfZ3JvdXBzID0gJyc7CgkJaWYoaXNfYXJyYXkoJHBhcmFtc1snZGVmYXVsdF9ncm91cHMnXSkgJiYgIWVtcHR5KCRwYXJhbXNbJ2RlZmF1bHRfZ3JvdXBzJ10pKSAKCQl7CgkJCSRkZWZhdWx0X2dyb3VwcyA9IGFycmF5KCk7CgkJCWZvcmVhY2goJHBhcmFtc1snZGVmYXVsdF9ncm91cHMnXSBhcyAkZGVmX2dyb3VwKSAKCQkJewoJCQkJJGRnID0gZXhwbG9kZSgiLCIsJGRlZl9ncm91cCk7CgkJCQlpZihpc3NldCgkZGdbMV0pKQoJCQkJewoJCQkJCSRkZWZhdWx0X2dyb3Vwc1skZGdbMF1dID0gJGRnWzBdLiIsIi4kZGdbMV07CgkJCQl9CgkJCX0KCQkJJGRlZmF1bHRfZ3JvdXBzID0gaW1wbG9kZSgiOyIsJGRlZmF1bHRfZ3JvdXBzKTsKCQl9CgkJJHRoaXMtPlNldFByZWZlcmVuY2UoImRlZmF1bHRfZ3JvdXBzIiwgJGRlZmF1bHRfZ3JvdXBzKTsKCX0KfQppZihpc3NldCgkcGFyYW1zWydhamF4J10pKQp7CgllY2hvICc8ZGl2IGNsYXNzPSJwYWdlbWNvbnRhaW5lciI+PHAgY2xhc3M9InBhZ2VtZXNzYWdlIj4nLiR0aGlzLT5sYW5nKCdwcmVmc3VwZGF0ZWQnKS4nPC9wPjwvZGl2Pic7CglleGl0Owp9CmVsc2UKewoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgYXJyYXkoJ21lc3NhZ2UnID0+ICdwcmVmc191cGRhdGVkJywgJ3N1Ym1pdCcgPT4gdHJ1ZSkpOwp9Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.sendMail.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEZyb250ZW5kVXNlciBNYWlsZXIgKGMpIDIwMDgtMjAxMCBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkKIyAgICAgICAgICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGJhY2tlbmQgdXNlcnMgYWJpbGl0eSAKIyAgICAgICAgICB0byBlYXNpbHkgc2VuZCBhbiBlbWFpbCB0byBhbGwgZnJvbnRlbmQgdXNlcnMgb3IganVzdCBzcGVjaWZpYyBmcm9udC0KIyAgICAgICAgICBlbmQgdXNlcmdyb3VwcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZCB3ZWJzaXRlLgojIFZlcnNpb246IDAuOS40CiMgRmlsZSAgIDogYWN0aW9uLnNlbmRNYWlsLnBocAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDQtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKaWYoIWlzX29iamVjdChjbXNtcygpKSkgZXhpdDsKCmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignVXNlIEZFVU1haWxlcicpKQoJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHJldHVybmlkLCR0aGlzLT5MYW5nKCdlcnJvcl9wZXJtaXNzaW9ucycpKTsKCiRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKCiRmZXVzZXJzID0mICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwppZighJGZldXNlcnMpCglyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCRyZXR1cm5pZCwkdGhpcy0+TGFuZygnZXJyb3JfZmV1c2VycycpKTsKCiRjbXNtYWlsZXIgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NNU01haWxlcicpOwppZighJGNtc21haWxlcikKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRyZXR1cm5pZCwKCQkJCQkJCQkJCQkJJHRoaXMtPkxhbmcoJ2Vycm9yX2Ntc21haWxlcicpKTsKCiRzZW50YnlfaWQgPSBnZXRfdXNlcmlkKCk7CgppZihpc3NldCgkcGFyYW1zWydtYWlsX2lkJ10pKSB7CgkkbWFpbF9pZCA9IGludHZhbCh0cmltKCRwYXJhbXNbJ21haWxfaWQnXSkpOwp9IGVsc2UgewoJZWNobyAkaWQuInJlc3BvbnNlOmVycm9yPTE6Ii4kaWQuImVuZF9yZXNwb25zZSI7CglleGl0Owp9CgokbGFzdF91c2VyaWQ9MDsKJGdyb3VwcyA9IGFycmF5KCk7CiMkZ3JwaWRzID0gYXJyYXkoKTsKJHJlY2lwaWVudF9ncm91cHMgPSAnJzsKJHJlY2lwaWVudHNfY291bnQgPSAwOwokc3ViamVjdCA9ICcnOwokbWFpbGJvZHkgPSAnJzsKJGVycm9yID0gYXJyYXkoKTsKCiRwcmVmcyA9ICR0aGlzLT5HZXRQcmVmcygpOwoKJG1haWwgPSAkdGhpcy0+R2V0TWFpbCgkbWFpbF9pZCwidG1wIik7CmlmKCRtYWlsIT1mYWxzZSkgewoJCgkkcmVjaXBpZW50X2dyb3Vwcz0kbWFpbFsncmVjaXBpZW50X2dyb3VwcyddOwoJJHRtcF9ncm91cHM9ZXhwbG9kZSgnOycsJG1haWxbJ3JlY2lwaWVudF9ncm91cHMnXSk7CglpZighZW1wdHkoJHRtcF9ncm91cHNbMF0pKSB7CgkJZm9yZWFjaCgkdG1wX2dyb3VwcyBhcyAkdG1wX2dyb3VwKSB7CgkJCWlmKCFlbXB0eSgkdG1wX2dyb3VwKSkgewoJCQkJJGcgPSBleHBsb2RlKCcsJywkdG1wX2dyb3VwKTsKCQkJCWlmKGlzc2V0KCRnWzFdKSkKCQkJCQkkZ3JvdXBzWyRnWzBdXT0kZ1sxXTsgLy8ga2V5PWlkO3ZhbHVlPW5hbWUKCQkJCQkjJGdycGlkc1tdID0gJGdbMF07CgkJCX0KCQl9Cgl9Cgkkc3ViamVjdAkJCT0gJG1haWxbJ3N1YmplY3QnXTsKCSRtYWlsYm9keQkJCT0gJG1haWxbJ21haWxib2R5J107CgkkbGFzdF91c2VyaWQJCT0gJG1haWxbJ2xhc3RfdXNlcmlkJ107CgkkcmVjaXBpZW50c19jb3VudCAJPSAkbWFpbFsncmVjaXBpZW50cyddOwoJJHByb2Nlc3NlZF91c2VycyAJPSAkbWFpbFsncHJvY2Vzc2VkX3VzZXJzJ107CgkkdGFzayAJCQkJPSAkbWFpbFsndGFzayddOwoJJGFyY2hpdmVfaWQgCQk9ICRtYWlsWydhcmNoaXZlX2lkJ107CgkkcHJlZnNbJ2F1dG9zYXZlJ10gPSAkbWFpbFsnc2F2ZV9tZXNzYWdlJ107CgkKfSBlbHNlIHsgCgllY2hvICRpZC4icmVzcG9uc2U6ZXJyb3I9MjoiLiRpZC4iZW5kX3Jlc3BvbnNlIjsKCWV4aXQ7Cn0KCiRjdXJyZW50X3VzZXJzPWFycmF5KCk7CiRlcnJvcmNvZGVzID0gYXJyYXkoKTsKaWYoJHRhc2s9PSdlcnJvcicpIHsKCSR1ID0gJHRoaXMtPkdldFVzZXJzRXJyb3JzKCRhcmNoaXZlX2lkLDAsMCwnPj0nLCRncm91cHMpOwoJJHVzZXJzID0gY291bnQoJHUpOwoJZm9yZWFjaCgkdSBhcyAkdXNlcmlkPT4kdXNlcm5hbWUpIHsKCQlpZigkdXNlcmlkID4gJGxhc3RfdXNlcmlkKSB7CgkJCWlmKCgkcHJlZnNbJ21heG1haWxzJ10+MCAmJiBjb3VudCgkY3VycmVudF91c2Vycyk8JHByZWZzWydtYXhtYWlscyddKSB8fCAkcHJlZnNbJ21heG1haWxzJ109PTApIHsKCQkJCSRjdXJyZW50X3VzZXJzWyR1c2VyaWRdID0gJHVzZXJuYW1lOwoJCQl9CgkJfQoJfQp9IGVsc2UgaWYgKCR0YXNrPT0nc2VsZWN0ZWQnKSB7CgkkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldW1haWxlcl91c2VycyAKCQkJCVdIRVJFIHRtcF9pZD0iLiRtYWlsX2lkLiIKCQkJCU9SREVSIEJZIHVzZXJpZCBBU0MgIi4gCgkJCQkoJHByZWZzWydtYXhtYWlscyddPjA/IiBMSU1JVCAiLiRwcmVmc1snbWF4bWFpbHMnXTonJyk7CgkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCXdoaWxlKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSB7CgkJJHVzZXJzID0gJHJvd1sndXNlcmNvdW50J107CgkJJGN1cnJlbnRfdXNlcnNbJHJvd1sndXNlcmlkJ11dID0gJHJvd1sndXNlcm5hbWUnXTsKCQkkZXJyb3Jjb2Rlc1skcm93Wyd1c2VyaWQnXV0gPSAkcm93WydlcnJvcmNvZGUnXTsKCX0KfSBlbHNlIHsKCSR1ID0gJHRoaXMtPkdldFVzZXJzKCRncm91cHMpOwoJIyR1ID0gJHRoaXMtPkdldFVzZXJzRnVsbCgkZ3JwaWRzKTsKCgkkdXNlcnMgPSBjb3VudCgkdSk7Cglmb3JlYWNoKCR1IGFzICR1c2VyaWQ9PiR1c2VybmFtZSkgewoJCWlmKCR1c2VyaWQgPiAkbGFzdF91c2VyaWQpIHsKCQkJaWYoKCRwcmVmc1snbWF4bWFpbHMnXT4wICYmIGNvdW50KCRjdXJyZW50X3VzZXJzKTwkcHJlZnNbJ21heG1haWxzJ10pIHx8ICRwcmVmc1snbWF4bWFpbHMnXT09MCkgewoJCQkJJGN1cnJlbnRfdXNlcnNbJHVzZXJpZF0gPSAkdXNlcm5hbWU7CgkJCX0KCQl9Cgl9Cn0KCi8vIGdldCBhZGRpdGlvbmFsIGdyb3VwcyB0aGUgdXNlcnMgYWxzbyBiZWxvbmdzIHRvCi8vIHRvIGdldCBBTEwgdXNlciBwcm9wZXJ0aWVzIChub3QganVzdCBvZiB0aGlzIG9uZSBzcGVjaWZpZWQgZ3JvdXApIAokZ3JvdXBzID0gJHRoaXMtPkdldEFkZGl0aW9uYWxHcm91cHMoJGN1cnJlbnRfdXNlcnMpOwoKLy8gZ2V0IHVzZXJzIGFuZCB1c2VycHJvcGVydGllcyAoY29kZSBmcm9tIGZldXNlcnMgbW9kdWxlKToKLy8gbm93IHdlIGhhdmUgdGhlIGdyb3Vwcywgd2UgYnVpbGQgYSB1bmlvbiBvZiBhbGwgb2YgdGhlIGdyb3VwcyBwcm9wZXJ0aWVzCiRwcm9wMiA9IGFycmF5KCk7CmZvcmVhY2goJGdyb3VwcyBhcyAkZ3JvdXBfaWQ9PiRncm91cF9uYW1lKQp7CgkkcHJvcHJlbGF0aW9ucyA9ICRmZXVzZXJzLT5HZXRHcm91cFByb3BlcnR5UmVsYXRpb25zKCRncm91cF9pZCk7CgkkcHJvcDIgPSAkdGhpcy0+UlJVdGlscygpLT5hcnJheV9tZXJnZV9ieV9uYW1lX3JlcXVpcmVkKCRwcm9wMiwgJHByb3ByZWxhdGlvbnMpOwoJdWFzb3J0KCRwcm9wMiwgYXJyYXkoJHRoaXMtPlJSVXRpbHMoKSwnY29tcGFyZV9lbGVtZW50c19ieV9zb3J0b3JkZXJfa2V5JykpOwp9CgovLyBub3cgd2UgbWVyZ2UgaW4gYWxsIG9mIHRoZSBwcm9wZXJ0eSBkZWZpbml0aW9ucwokZGVmbnMgPSAkZmV1c2Vycy0+R2V0UHJvcGVydHlEZWZucygpOwokcHJvcDMgPSBhcnJheSgpOwpmb3JlYWNoKCRwcm9wMiBhcyAkb25lcHJvcCkKewoJZm9yZWFjaCgkZGVmbnMgYXMgJG9uZWRlZm4pCgl7CgkJaWYoJG9uZWRlZm5bJ25hbWUnXSA9PSAkb25lcHJvcFsnbmFtZSddKQoJCXsKCQkJJG9uZXByb3BbJ3Byb21wdCddID0gJG9uZWRlZm5bJ3Byb21wdCddOwoJCQkkb25lcHJvcFsndHlwZSddID0gJG9uZWRlZm5bJ3R5cGUnXTsKCQkJYnJlYWs7CgkJfQoJfQoJJHByb3AzW10gPSAkb25lcHJvcDsKfQoKLy8gQW5kIG5vdyBtZXJnZSBpbiB0aGUgdmFsdWVzCiRwcm9wZXJ0aWVzID0gYXJyYXkoKTsKJHJlY2lwaWVudHMgPSBhcnJheSgpOwokdXNlcm5hbWVfaXNfZW1haWwgPSAkZmV1c2Vycy0+R2V0UHJlZmVyZW5jZSgndXNlcm5hbWVfaXNfZW1haWwnLGZhbHNlKTsKCmZvcmVhY2goJGN1cnJlbnRfdXNlcnMgYXMgJHVzZXJpZD0+JHVzZXJuYW1lKSB7CgkkdXNlcnByb3BzID0gJGZldXNlcnMtPkdldFVzZXJQcm9wZXJ0aWVzKCR1c2VyaWQpOwoJCgkkcHJvcGVydGllc1skdXNlcmlkXVsndXNlcm5hbWUnXSA9ICR1c2VybmFtZTsKCSRwcm9wZXJ0aWVzWyR1c2VyaWRdWyd1c2VyaWQnXSA9ICR1c2VyaWQ7CgkKCSRyZWNpcGllbnRzWyR1c2VyaWRdWyd1c2VybmFtZSddID0gJHVzZXJuYW1lOwoJCglmb3JlYWNoKCRwcm9wMyBhcyAkb25lcHJvcCkKCXsKCQlmb3JlYWNoKCR1c2VycHJvcHMgYXMgJG9uZXZhbCkKCQl7CgkJCWlmKCRvbmVwcm9wWyduYW1lJ10gPT0gJG9uZXZhbFsndGl0bGUnXSkKCQkJewoJCQkJJG9uZXByb3BbJ2RhdGEnXSA9ICRvbmV2YWxbJ2RhdGEnXTsKCQkJCWJyZWFrOwoJCQl9CgkJfQoJCWlmKGlzc2V0KCRvbmVwcm9wWydkYXRhJ10pKSB7CgkJCSRwcm9wZXJ0aWVzWyR1c2VyaWRdWyRvbmVwcm9wWyduYW1lJ11dWydkYXRhJ10gID0gJG9uZXByb3BbJ2RhdGEnXTsKCQkJJHByb3BlcnRpZXNbJHVzZXJpZF1bJG9uZXByb3BbJ25hbWUnXV1bJ3Byb21wdCddPSAkb25lcHJvcFsncHJvbXB0J107CgkJCSRwcm9wZXJ0aWVzWyR1c2VyaWRdWyRvbmVwcm9wWyduYW1lJ11dWyd0eXBlJ10gID0gJG9uZXByb3BbJ3R5cGUnXTsKCQkJJHByb3BlcnRpZXNbJHVzZXJpZF1bJG9uZXByb3BbJ25hbWUnXV1bJ25hbWUnXSAgPSAkb25lcHJvcFsnbmFtZSddOwoJCQlpZigkb25lcHJvcFsndHlwZSddPT0yICYmICRvbmVwcm9wWydkYXRhJ10hPScnICYmICFpc3NldCgkcmVjaXBpZW50c1skdXNlcmlkXVsnZW1haWwnXSkpIHsKCQkJCSRyZWNpcGllbnRzWyR1c2VyaWRdWydlbWFpbCddID0gJG9uZXByb3BbJ2RhdGEnXTsKCQkJfQoJCX0KCX0KCQoJaWYoJHVzZXJuYW1lX2lzX2VtYWlsKSB7CgkJJHJlY2lwaWVudHNbJHVzZXJpZF1bJ2VtYWlsJ10gPSAkdXNlcm5hbWU7Cgl9Cn0KCiRkZWZhdWx0aWQgPSBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpLT5HZXREZWZhdWx0UGFnZUlEKCk7Cgpmb3JlYWNoKCRyZWNpcGllbnRzIGFzICR1c2VyaWQ9PiRkYXRhKSB7CgkKCSRlcnJvcmNvZGUgPSAxOwoJJGxvZ19pZCA9ICcnOwoJCglpZihpc3NldCgkZGF0YVsnZW1haWwnXSkgJiYgJHRoaXMtPklzVmFsaWRFbWFpbEFkZHJlc3MoJGRhdGFbJ2VtYWlsJ10pKSB7CgoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndXNlcm5hbWUnLCRkYXRhWyd1c2VybmFtZSddKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3VzZXJwcm9wcycsJHByb3BlcnRpZXNbJHVzZXJpZF0pOwoJCWlmKCRwcmVmc1snaXNfaHRtbCddKSB7CgkJCSRtYWlsX2NvbnRlbnQgPSAiPGh0bWw+PGJvZHk+IjsKCQkJJG1haWxfY29udGVudCAuPSAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJG1haWxib2R5KTsKCgkJCS8vIGluc2VydCB0cmFja2luZyBidWcgdG8gY2hlY2sgaWYgbWFpbCBoYXMgYmVlbiByZWFkCgkJCWlmKCRwcmVmc1snc2F2ZV9sb2dzJ10gJiYgISRwcmVmc1snc2F2ZV9lcnJvcmxvZ3Nfb25seSddICYmIAoJCQkkdGFzayE9J2Vycm9yJyAmJiAkdGFzayE9J3NlbGVjdGVkJykgewoJCQkJCgkJCQkkbG9nX2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVtYWlsZXJfbG9nc19zZXEiKTsKCQkJCSMkcGFnZV9leHRlbnNpb24gPSAkY29uZmlnWydwYWdlX2V4dGVuc2lvbiddOwoJCQkJIyRjb25maWdbJ3BhZ2VfZXh0ZW5zaW9uJ10gPSAnJzsKCQkJCSRwcmV0dHl1cmwgPSBtZDUoJ0ZFVU1haWxlcicpLicvJyAuICRsb2dfaWQgLiAiL2xvZ28uZ2lmIjsKCQkJCSR0cmFja0J1ZyA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgbWQ1KCd0cmFja0J1ZycpLCAkZGVmYXVsdGlkLCAnJywgYXJyYXkobWQ1KCdsb2dfaWQnKSA9PiAkbG9nX2lkLCAnc2hvd3RlbXBsYXRlJyA9PiAnZmFsc2UnKSAsJycsIHRydWUsIGZhbHNlLCAnJywgdHJ1ZSwgJHByZXR0eXVybCk7CgkJCQlpZigkY29uZmlnWydwYWdlX2V4dGVuc2lvbiddICYmIGVuZHN3aXRoKCR0cmFja0J1ZywgJGNvbmZpZ1sncGFnZV9leHRlbnNpb24nXSkpCgkJCQl7CgkJCQkJJHRyYWNrQnVnID0gc3Vic3RyKCAkdHJhY2tCdWcsIHN0cmxlbiggJHRyYWNrQnVnICkgLSBzdHJsZW4oICRjb25maWdbJ3BhZ2VfZXh0ZW5zaW9uJ10gKSApOwoJCQkJfQoJCQkJJG1haWxfY29udGVudCAuPSAnPGltZyBzcmM9IicuJHRyYWNrQnVnLiciIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGFsdD0iIiAvPic7CgkJCQkjJGNvbmZpZ1sncGFnZV9leHRlbnNpb24nXSA9ICRwYWdlX2V4dGVuc2lvbjsKCQkJCQoJCQl9CgkJCQoJCQkkbWFpbF9jb250ZW50IC49ICI8L2JvZHk+PC9odG1sPiI7CgkJfSBlbHNlIHsKCQkJJG1haWxfY29udGVudCA9ICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkbWFpbGJvZHkpOwoJCX0KCQkKCQkkY21zbWFpbGVyLT5BZGRBZGRyZXNzKCRkYXRhWydlbWFpbCddKTsKCQkkY21zbWFpbGVyLT5TZXRCb2R5KCRtYWlsX2NvbnRlbnQpOwoJCSRjbXNtYWlsZXItPklzSFRNTCgkcHJlZnNbJ2lzX2h0bWwnXSk7CgkJJGNtc21haWxlci0+U2V0U3ViamVjdCgkc3ViamVjdCk7CgkJJGNtc21haWxlci0+U2VuZCgpOwoJCSRjbXNtYWlsZXItPkNsZWFyQWRkcmVzc2VzKCk7CgoJCSRlcnJvcmNvZGUgPSAwOwoJCWlmKCgkdGFzaz09J3NlbGVjdGVkJyAmJiBpc3NldCgkZXJyb3Jjb2Rlc1skdXNlcmlkXSkgJiYgJGVycm9yY29kZXNbJHVzZXJpZF0+MCkgCgkJfHwgJHRhc2shPSdzZWxlY3RlZCcpCgkJCSRyZWNpcGllbnRzX2NvdW50Kys7Cgl9CgllbHNlIGlmKGlzc2V0KCRkYXRhWydlbWFpbCddKSAmJiAhJHRoaXMtPklzVmFsaWRFbWFpbEFkZHJlc3MoJGRhdGFbJ2VtYWlsJ10pKQoJCSRlcnJvcmNvZGUgPSAyOwoJCglpZigoJHByZWZzWydzYXZlX2xvZ3MnXSAmJiAoKCRwcmVmc1snc2F2ZV9lcnJvcmxvZ3Nfb25seSddICYmIAoJJGVycm9yY29kZSAhPTApIHx8ICEkcHJlZnNbJ3NhdmVfZXJyb3Jsb2dzX29ubHknXSkpIHx8IAoJKCgkdGFzaz09J2Vycm9yJyB8fCAkdGFzaz09J3NlbGVjdGVkJykgJiYgJHByZWZzWydzYXZlX2xvZ3MnXSkpIHsKCQkKCQlpZigkdGFzaz09J2Vycm9yJyB8fCAkdGFzaz09J3NlbGVjdGVkJykgewoJCQkkcXVlcnkgPSAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1bWFpbGVyX2xvZ3MgCgkJCQkJCVNFVCBzZW5kX2RhdGU9Ii4gJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpIC4iLCAKCQkJCQkJCXRtcF9lcnJvcmNvZGU9Ii4gJGVycm9yY29kZSAuIiwgc2VudGJ5X2lkPSIuJHNlbnRieV9pZC4iIAoJCQkJCQlXSEVSRSBhcmNoaXZlX2lkPSIuICRhcmNoaXZlX2lkIC4iIAoJCQkJCQkJQU5EIHJlY2lwaWVudF9pZD0iLiAkdXNlcmlkOwoJCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCQkJaWYoISRkYnJlc3VsdCkgewoJCQkJJGVycm9yW10gPSA4OwoJCQl9CgkJfSBlbHNlIHsKCQkJLy8gZG8gbG9nIGVudHJ5IChmb3IgdG1wIG1haWxzKQoJCQkkbG9nX3Jlc3VsdCA9ICR0aGlzLT5DcmVhdGVMb2coYXJyYXkoJGxvZ19pZCwKCQkJCQkJCQkkYXJjaGl2ZV9pZCwKCQkJCQkJCQkkbWFpbF9pZCwKCQkJCQkJCQkkc2VudGJ5X2lkLAoJCQkJCQkJCSR1c2VyaWQsCgkJCQkJCQkJJHJlY2lwaWVudF9ncm91cHMsCgkJCQkJCQkJJGVycm9yY29kZSwKCQkJCQkJCQkkc3ViamVjdCwKCQkJCQkJCQkkZXJyb3Jjb2RlLAoJCQkJCQkJCU5VTEwpKTsKCgkJCWlmKCEkbG9nX3Jlc3VsdCkgewoJCQkJJGVycm9yW10gPSAzOwoJCQl9CgkJfQoJfQoJJHByb2Nlc3NlZF91c2VycysrOwoJJGxhc3RfdXNlcmlkID0gJHVzZXJpZDsKCQoJLy8gdXBkYXRlIHRlbXAgbWFpbAoJJHF1ZXJ5ID0gIlVQREFURSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldW1haWxlcl90bXAgCgkJCQlTRVQgbGFzdF91c2VyaWQ9Ii4kdXNlcmlkLiIsIHByb2Nlc3NlZF91c2Vycz0iLiRwcm9jZXNzZWRfdXNlcnMuIiwgCgkJCQkJcmVjaXBpZW50cz0iLiRyZWNpcGllbnRzX2NvdW50LiAiIAoJCQkJV0hFUkUgaWQ9Ii4kbWFpbF9pZDsKCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJaWYoISRkYnJlc3VsdCkgewoJCWVjaG8gJGlkLiJyZXNwb25zZTplcnJvcj00OiIuJGlkLiJlbmRfcmVzcG9uc2UiOwoJCWV4aXQ7Cgl9CgkKCSRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldW1haWxlcl91c2VycyAKCQkJCVdIRVJFIHVzZXJpZD0iLiAkdXNlcmlkIC4iIEFORCB0bXBfaWQ9Ii4kbWFpbF9pZDsKCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJdW5zZXQoJGxvZ19pZCk7Cn0KCiRyZW1haW5pbmcgPSAkdXNlcnMgLSAkcHJvY2Vzc2VkX3VzZXJzOwppZigkcHJlZnNbJ21heG1haWxzJ10+MCkKCSRwcm9jZXNzaW5nX3VzZXJzID0gJHByb2Nlc3NlZF91c2VycyskcHJlZnNbJ21heG1haWxzJ107CmVsc2UKCSRwcm9jZXNzaW5nX3VzZXJzID0gJHVzZXJzOwoKaWYoJHByb2Nlc3NpbmdfdXNlcnM+JHVzZXJzKQoJJHByb2Nlc3NpbmdfdXNlcnMgPSAkdXNlcnM7CgppZigoJHByb2Nlc3NlZF91c2VycyA9PSAkdXNlcnMpIHx8ICgkcmVtYWluaW5nIDw9MCkgKSB7CgkKCWlmKCRwcmVmc1snYXV0b3NhdmUnXT09dHJ1ZSkgewoJCQoJCWlmKCR0YXNrIT0nZXJyb3InICYmICR0YXNrIT0nY29udGludWUnICYmICR0YXNrIT0ndXNlcicgJiYgJHRhc2shPSdzZWxlY3RlZCcpIHsKCQkJCgkJCSRhcmNoaXZlX2lkID0gJHRoaXMtPkNyZWF0ZUFyY2hpdmVNYWlsKCRyZWNpcGllbnRfZ3JvdXBzLAoJCQkJCQkJCQkJCQkJJHN1YmplY3QsCgkJCQkJCQkJCQkJCQkkbWFpbGJvZHksCgkJCQkJCQkJCQkJCQkkbGFzdF91c2VyaWQsCgkJCQkJCQkJCQkJCQkkcHJvY2Vzc2VkX3VzZXJzLAoJCQkJCQkJCQkJCQkJJHJlY2lwaWVudHNfY291bnQpOwoJCQlpZighJGFyY2hpdmVfaWQpIHsKCQkJCSRlcnJvcltdID0gNTsKCQkJfQoJCQlpZigkcHJlZnNbJ3NhdmVfbG9ncyddKSB7CgoJCQkJLy8gdXBkYXRlIGxvZ3Mgd2l0aCBhcmNoaXZlIG1haWxfaWQKCQkJCSRxdWVyeSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVtYWlsZXJfbG9ncyAKCQkJCQkJCVNFVCBhcmNoaXZlX2lkPSIuICRhcmNoaXZlX2lkIC4iIFdIRVJFIHRtcF9pZD0iLiAkbWFpbF9pZDsKCQkJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJCQkJaWYoISRkYnJlc3VsdCkgewoJCQkJCSRlcnJvcltdID0gMzsKCQkJCX0KCQkJfQoKCQl9IGVsc2UgewoKCQkJLy8gdG9kbzogaWYgdGFzaz1zZWxlY3RlZCAtPiBvbmx5IGFkZCByZWNpcGllbnRzIGlmIG9sZCBlcnJvcmNvZGU+MAoJCQlpZigkdGFzaz09J2Vycm9yJyB8fCAkdGFzaz09J3NlbGVjdGVkJykgewoJCQkJJHF1ZXJ5ID0gIlNFTEVDVCBsYXN0X3VzZXJpZCwgcHJvY2Vzc2VkX3VzZXJzLCByZWNpcGllbnRzIAoJCQkJCQkJRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldW1haWxlcl9hcmNoaXZlIAoJCQkJCQkJV0hFUkUgaWQ9Ii4kYXJjaGl2ZV9pZDsKCQkJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJCQkJaWYoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpIHsKCQkJCQkkcHJvY2Vzc2VkX3VzZXJzID0gJHJvd1sncHJvY2Vzc2VkX3VzZXJzJ107CgkJCQkJJGxhc3RfdXNlcmlkID0gJHJvd1snbGFzdF91c2VyaWQnXTsKCQkJCQlpZigoJHJvd1sncmVjaXBpZW50cyddKyRyZWNpcGllbnRzX2NvdW50KTwkcHJvY2Vzc2VkX3VzZXJzKQoJCQkJCQkkcmVjaXBpZW50c19jb3VudCA9ICRyZWNpcGllbnRzX2NvdW50ICsgJHJvd1sncmVjaXBpZW50cyddOwoJCQkJCWVsc2UKCQkJCQkJJHJlY2lwaWVudHNfY291bnQgPSAkcHJvY2Vzc2VkX3VzZXJzOwoJCQkJfSAKCQkJfQoKCQkJJHF1ZXJ5ID0gIlVQREFURSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldW1haWxlcl9hcmNoaXZlIAoJCQkJCQlTRVQgbGFzdF91c2VyaWQ9Ii4kbGFzdF91c2VyaWQuIiwgCgkJCQkJCQlwcm9jZXNzZWRfdXNlcnM9Ii4gJHByb2Nlc3NlZF91c2VycyAuIiwgCgkJCQkJCQlyZWNpcGllbnRzPSIuJHJlY2lwaWVudHNfY291bnQuIiAKCQkJCQkJV0hFUkUgaWQ9Ii4kYXJjaGl2ZV9pZDsKCQkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgkJCWlmKCEkZGJyZXN1bHQpIHsKCQkJCSRlcnJvcltdID0gNjsKCQkJfQoJCQlpZigkcHJlZnNbJ3NhdmVfbG9ncyddKSB7CgoJCQkJaWYoKCR0YXNrPT0nZXJyb3InIHx8ICR0YXNrPT0nc2VsZWN0ZWQnKSAmJiAKCQkJCSRwcmVmc1snc2F2ZV9lcnJvcmxvZ3Nfb25seSddKSB7CgkJCQkJJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1bWFpbGVyX2xvZ3MgCgkJCQkJCQlXSEVSRSBhcmNoaXZlX2lkPSIuICRhcmNoaXZlX2lkIC4iIEFORCB0bXBfZXJyb3Jjb2RlPTAiOwoJCQkJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJCQkJCWlmKCEkZGJyZXN1bHQpIHsKCQkJCQkJJGVycm9yW10gPSAzOwoJCQkJCX0KCQkJCX0KCgkJCQkvLyB1cGRhdGUgbG9ncyB3aXRoIGFyY2hpdmUgbWFpbF9pZAoJCQkJLy8gKG5vdCBuZWVkZWQgaSBndWVzcykKCQkJCSRxdWVyeSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVtYWlsZXJfbG9ncyAKCQkJCQkJCVNFVCB0bXBfaWQ9Ii4gJG1haWxfaWQgLiIgV0hFUkUgYXJjaGl2ZV9pZD0iLiAkYXJjaGl2ZV9pZDsKCQkJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJCQkJaWYoISRkYnJlc3VsdCkgewoJCQkJCSRlcnJvcltdID0gMzsKCQkJCX0KCQkJfQoJCX0KCX0KCS8vIGRlbGV0ZSB0ZW1wb3JhcnkgbWFpbHMKCWlmKCEkdGhpcy0+RGVsZXRlTWFpbCgndG1wJywkbWFpbF9pZCkpCgkJJGVycm9yW10gPSA3OwoJCgkvKgoJJHRoaXMtPkRvQWN0aW9uKCdkZWxldGVNYWlsJywkaWQsYXJyYXkoJ2Rpc2FibGVfdGhlbWUnLCdvdXRwdXQnPT5mYWxzZSwnbWFpbF90eXBlJz0+J3RtcCcsCgkJCQkJCQkJCQkJJ21haWxfaWQnPT4kbWFpbF9pZCksIAoJCQkJCQkJCQkJJHJldHVybmlkKTsKCSovCgoJLy8gdGhlIGphdmFzY3JpcHQgd2lsbCBwcmludCBvdXQgdGhlIG1lc3NhZ2UKCWVjaG8gJGlkLiJyZXNwb25zZTpjb3VudGVyPSIuJHByb2Nlc3NlZF91c2Vycy4iIC0gIi4kcHJvY2Vzc2luZ191c2Vycy4iO3N0YXR1cz1yZWFkeTtlcnJvcj0iLmltcGxvZGUoIiwiLCRlcnJvcikuIjoiLiRpZC4iZW5kX3Jlc3BvbnNlIjsKfQovLyBjYWxsaW5nIGZyb20gcXVldWUKZWxzZSB7CgllY2hvICRpZC4icmVzcG9uc2U6Y291bnRlcj0iLiRwcm9jZXNzZWRfdXNlcnMuIiAtICIuJHByb2Nlc3NpbmdfdXNlcnMuIjtzdGF0dXM9c2VuZGluZztlcnJvcj0iLmltcGxvZGUoIiwiLCRlcnJvcikuIjoiLiRpZC4iZW5kX3Jlc3BvbnNlIjsKfQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.viewLogs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEZyb250ZW5kVXNlciBNYWlsZXIgKGMpIDIwMDgtMjAxMCBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkKIyAgICAgICAgICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGJhY2tlbmQgdXNlcnMgYWJpbGl0eSAKIyAgICAgICAgICB0byBlYXNpbHkgc2VuZCBhbiBlbWFpbCB0byBhbGwgZnJvbnRlbmQgdXNlcnMgb3IganVzdCBzcGVjaWZpYyBmcm9udC0KIyAgICAgICAgICBlbmQgdXNlcmdyb3VwcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZCB3ZWJzaXRlLgojIFZlcnNpb246IDAuOS40CiMgRmlsZSAgIDogYWN0aW9uLnZpZXdMb2dzLnBocAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDQtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKaWYoIWlzX29iamVjdChjbXNtcygpKSkgZXhpdDsKCmlmKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdVc2UgRkVVTWFpbGVyJykpIHsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsJHJldHVybmlkLCR0aGlzLT5MYW5nKCdlcnJvcl9wZXJtaXNzaW9ucycpKTsKfQoKJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwoKaWYoISRmZXVzZXJzID0mICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpKQoJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ2Vycm9yX2ZldXNlcnMnKSk7CgppZighJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdDTVNNYWlsZXInKSkgewoJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ2Vycm9yX2Ntc21haWxlcicpKTsKfQoKJGFjdGl2ZV90YWIgPSAnYXJjaGl2ZSc7CmlmKGlzc2V0KCRwYXJhbXNbJ2FjdGl2ZV90YWInXSkpIHsKCSRhY3RpdmVfdGFiID0gdHJpbSgkcGFyYW1zWydhY3RpdmVfdGFiJ10pOwp9CgppZihpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpCgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLGFycmF5KCJhY3RpdmVfdGFiIj0+JGFjdGl2ZV90YWIpKTsKCmlmKGlzc2V0KCRwYXJhbXNbJ3Jlc2VuZF9hbGwnXSkpCgkkdGFzayA9ICdhbGwnOwppZihpc3NldCgkcGFyYW1zWydyZXNlbmRfbmV3J10pKQoJJHRhc2sgPSAnY29udGludWUnOwppZihpc3NldCgkcGFyYW1zWydyZXNlbmRfZXJyb3JzJ10pKQoJJHRhc2sgPSAnZXJyb3InOwppZihpc3NldCgkcGFyYW1zWydyZXNlbmRfc2VsZWN0ZWQnXSkpCgkkdGFzayA9ICdzZWxlY3RlZCc7CgkKaWYoaXNzZXQoJHRhc2spKSB7CgkkcGFyYW1zWyd0YXNrJ109JHRhc2s7CgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAncHJlcGFyZVNlbmRNYWlsJywgJHJldHVybmlkLCRwYXJhbXMpOwp9CgppZihpc3NldCgkcGFyYW1zWydhcmNoaXZlX2lkJ10pICYmICRwYXJhbXNbJ2FyY2hpdmVfaWQnXT4wKSB7CgkkYXJjaGl2ZV9pZCA9IGludHZhbCh0cmltKCRwYXJhbXNbJ2FyY2hpdmVfaWQnXSkpOwp9CgppZihpc3NldCgkcGFyYW1zWyd0bXBfaWQnXSkgJiYgJHBhcmFtc1sndG1wX2lkJ10+MCkgewoJJHRtcF9pZCA9IGludHZhbCh0cmltKCRwYXJhbXNbJ3RtcF9pZCddKSk7Cn0KJG1haWxfdHlwZSA9ICcnOwppZihpc3NldCgkcGFyYW1zWydtYWlsX3R5cGUnXSkgJiYgJHBhcmFtc1snbWFpbF90eXBlJ10hPScnKSB7CgkkbWFpbF90eXBlID0gdHJpbSgkcGFyYW1zWydtYWlsX3R5cGUnXSk7Cn0KCiMkZGVsZXRlID0gY21zbXMoKS0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkdGhpcy0+bGFuZygnZGVsZXRlJyksJycsJycsJ3N5c3RlbWljb24nKTsKIyRlcnJvcmxvZ3MgPSBjbXNtcygpLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9leHRyYS95ZWxsb3cuZ2lmJywgJHRoaXMtPmxhbmcoJ3ZpZXdfbG9nJyksJycsJycsJ3N5c3RlbWljb24nKTsKIyRsb2dzID0gY21zbXMoKS0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2luZm8uZ2lmJywgJHRoaXMtPmxhbmcoJ3ZpZXdfbG9nJyksJycsJycsJ3N5c3RlbWljb24nKTsKJG9rID0gY21zbXMoKS0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywKCQkJCQkJCQkJCQkJCQkJJycsJycsJycsJ3N5c3RlbWljb24nKTsKJGVycm9yID0gY21zbXMoKS0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2ZhbHNlLmdpZicsCgkJCQkJCQkJCQkJCQkJCScnLCcnLCcnLCdzeXN0ZW1pY29uJyk7CiRyZXNlbmQgPSAnPGltZyBzcmM9IicuJGNvbmZpZ1sncm9vdF91cmwnXS4nL21vZHVsZXMvRkVVTWFpbGVyL2ltYWdlcy9yZXNlbmRfYWxsLmdpZiIgYWx0PSInLiR0aGlzLT5sYW5nKCdyZXNlbmRfdXNlcicpLiciIHRpdGxlPSInLiR0aGlzLT5sYW5nKCdyZXNlbmRfdXNlcicpLiciIGNsYXNzPSJzeXN0ZW1pY29uIiAvPic7CgppZihpc3NldCgkcGFyYW1zWydzYXZlZmlsdGVyJ10pKSB7CgkkdGhpcy0+U2V0UHJlZmVyZW5jZSgic29ydGJ5IiwkcGFyYW1zWydzb3J0X2J5J10pOwoJJHRoaXMtPlNldFByZWZlcmVuY2UoInNvcnRvcmRlciIsJHBhcmFtc1snc29ydF9vcmRlciddKTsKCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCJsaW1pdCIsJHBhcmFtc1snbGltaXQnXSk7CgkkdGhpcy0+U2V0UHJlZmVyZW5jZSgiZXJyb3Jzb25seSIsKGlzc2V0KCRwYXJhbXNbJ2Vycm9yc19vbmx5J10pP3RydWU6ZmFsc2UpKTsKfQoKJGNsZWFyX2xvZyA9IGZhbHNlOwppZihpc3NldCgkcGFyYW1zWydjbGVhcl9sb2cnXSkgJiYgJHBhcmFtc1snY2xlYXJfbG9nJ109PXRydWUpIHsKCSRjbGVhcl9sb2cgPSB0cnVlOwp9CgppZihpc3NldCgkcGFyYW1zWydsaW1pdCddKSkgewoJJGxpbWl0ID0gKHRyaW0oJHBhcmFtc1snbGltaXQnXSkpOwp9IGVsc2UgewoJJGxpbWl0ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoImxpbWl0IiwxMDApOwp9Cgokb2xkX2xpbWl0ID0gJGxpbWl0OwppZihpc3NldCgkcGFyYW1zWydvbGRfbGltaXQnXSkpIHsKCSRvbGRfbGltaXQgPSBpbnR2YWwodHJpbSgkcGFyYW1zWydvbGRfbGltaXQnXSkpOwp9CgppZihpc3NldCgkcGFyYW1zWydzb3J0X2J5J10pKSB7Cgkkc29ydF9ieSA9IHRyaW0oJHBhcmFtc1snc29ydF9ieSddKTsKfSBlbHNlIHsKCSRzb3J0X2J5ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoInNvcnRieSIsIkwuaWQiKTsKfQoKaWYoaXNzZXQoJHBhcmFtc1snc29ydF9vcmRlciddKSkgewoJJHNvcnRfb3JkZXIgPSB0cmltKCRwYXJhbXNbJ3NvcnRfb3JkZXInXSk7Cn0gZWxzZSB7Cgkkc29ydF9vcmRlciA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJzb3J0b3JkZXIiLCJBU0MiKTsKfQoKaWYoaXNzZXQoJHBhcmFtc1snZXJyb3JzX29ubHknXSkgJiYgJHBhcmFtc1snZXJyb3JzX29ubHknXSkgewoJJGVycm9yc19vbmx5ID0gdHJ1ZTsKfSBlbHNlIHsKCSRlcnJvcnNfb25seSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJlcnJvcnNvbmx5IixmYWxzZSk7Cn0KCiRwYWdlID0gMDsKaWYoaXNzZXQoJHBhcmFtc1sncGFnZSddKSkgewoJJHBhZ2UgPSBpbnR2YWwodHJpbSgkcGFyYW1zWydwYWdlJ10pKTsKfQoKaWYoJGxpbWl0PiRvbGRfbGltaXQgJiYgJGxpbWl0PjAgJiYgJG9sZF9saW1pdD4wICYmIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkgewoJJGZhY3RvciA9ICRsaW1pdCAvICRvbGRfbGltaXQ7CgkkcGFnZSA9IGZsb29yKCRwYWdlIC8gJGZhY3Rvcik7Cn0KZWxzZSBpZigkbGltaXQ8JG9sZF9saW1pdCAmJiAkbGltaXQ+MCAmJiBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkpIHsKCSRmYWN0b3IgPSAkb2xkX2xpbWl0IC8gJGxpbWl0OwoJJHBhZ2UgPSBmbG9vcigkcGFnZSAqICRmYWN0b3IpOwp9CgppZihpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgJiYgJGVycm9yc19vbmx5PT10cnVlKSB7CgkkcGFnZT0wOwp9Cgokc3ViamVjdCAgICAgPSAnJzsKJHNlbnRieSAgICAgID0gJyc7CiRsb2dzICAgICAgICA9IGFycmF5KCk7CiRtYXhfaWQgICAgICA9IDA7CiRtaW5faWQgICAgICA9IDA7CiRsb2dzX2NvdW50ICA9IDA7CiRtYWlsX3N0b3JlZCA9IGZhbHNlOwovLyBnZXQgbnVtYmVyIG9mIGxvZyBlbnRyeXMKJHF1ZXJ5ID0gIlNFTEVDVCBDT1VOVChpZCkgQVMgbG9nc19jb3VudCwgTUFYKGlkKSBBUyBtYXhpbXVtLCBNSU4oaWQpIEFTIG1pbmltdW0gCglGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1bWFpbGVyX2xvZ3MiOwokcSA9IGFycmF5KCk7CmlmKGlzc2V0KCRhcmNoaXZlX2lkKSkKCSRxW10gPSAiYXJjaGl2ZV9pZD0iLiRhcmNoaXZlX2lkOwoKaWYoaXNzZXQoJHRtcF9pZCkpCgkkcVtdID0gInRtcF9pZD0iLiR0bXBfaWQ7CgppZigkZXJyb3JzX29ubHk9PXRydWUpCgkkcVtdID0gImVycm9yY29kZT4wIjsKCQppZihjb3VudCgkcSkpCgkkcXVlcnkgLj0gIiBXSEVSRSAiLmltcGxvZGUoIiBBTkQgIiwkcSk7CgokcXVlcnkgLj0gIiBHUk9VUCBCWSB0bXBfaWQgIjsKCiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwppZigkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkgewoJJGxvZ3NfY291bnQgPSAkcm93Wydsb2dzX2NvdW50J107CgkkbWF4X2lkID0gJHJvd1snbWF4aW11bSddOwoJJG1pbl9pZCA9ICRyb3dbJ21pbmltdW0nXTsKfQoKJG1heF9wYWdlcyA9IDA7CmlmKCRsaW1pdCA+IDApCgkkbWF4X3BhZ2VzID0gY2VpbCgkbG9nc19jb3VudC8kbGltaXQpLTE7CgokcGFnZV9saW1pdCA9ICRtaW5faWQgKyAkcGFnZSokbGltaXQ7Cgokb3BlcmF0b3IgPSAnPj0nOwppZigkc29ydF9vcmRlcj09IkRFU0MiKSB7Cgkkb3BlcmF0b3IgPSAnPD0nOwoJJHBhZ2VfbGltaXQgPSAkbWF4X2lkIC0gKCRwYWdlKiRsaW1pdCk7Cn0KCi8vIGdldCBsb2cgZGF0YQokcXVlcnkgPSAiU0VMRUNUIEwuKiwgRkVVLnVzZXJuYW1lLCBVLnVzZXJuYW1lIEFTIHNlbnRieSwgQS5pZCBBUyBhX2lkLCAKCQlBLnJlY2lwaWVudHMgQVMgcmVjaXBpZW50c19hcmNoaXZlLCAKCQlBLnByb2Nlc3NlZF91c2VycyBBUyBwcm9jZXNzZWRfdXNlcnNfYXJjaGl2ZSwKCQlULmlkIEFTIHRfaWQsIFQucmVjaXBpZW50cyBBUyByZWNpcGllbnRzX3RtcCwgCgkJVC5wcm9jZXNzZWRfdXNlcnMgQVMgcHJvY2Vzc2VkX3VzZXJzX3RtcCAKCUZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVtYWlsZXJfbG9ncyBMIAoJTEVGVCBPVVRFUiBKT0lOICIuY21zX2RiX3ByZWZpeCgpLiJ1c2VycyBVIAoJT04gVS51c2VyX2lkPUwuc2VudGJ5X2lkIAoJTEVGVCBPVVRFUiBKT0lOICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1bWFpbGVyX2FyY2hpdmUgQSAKCU9OIEEuaWQ9TC5hcmNoaXZlX2lkCglMRUZUIE9VVEVSIEpPSU4gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVtYWlsZXJfdG1wIFQgCglPTiBULmlkPUwudG1wX2lkCglMRUZUIE9VVEVSIEpPSU4gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX3VzZXJzIEZFVSAKCU9OIEZFVS5pZD1MLnJlY2lwaWVudF9pZCI7CgokcSA9IGFycmF5KCk7CmlmKGlzc2V0KCRhcmNoaXZlX2lkKSkKCSRxW10gPSAiTC5hcmNoaXZlX2lkPSIuICRhcmNoaXZlX2lkOwoKaWYoaXNzZXQoJHRtcF9pZCkpCgkkcVtdID0gIkwudG1wX2lkPSIuJHRtcF9pZDsKCmlmKCRlcnJvcnNfb25seT09dHJ1ZSkKCSRxW10gPSAiTC5lcnJvcmNvZGU+MCI7CgokcVtdID0gIkwuaWQiLiRvcGVyYXRvci4kcGFnZV9saW1pdDsKCmlmKGNvdW50KCRxKSkKCSRxdWVyeSAuPSAiIFdIRVJFICIuaW1wbG9kZSgiIEFORCAiLCRxKTsKCiRxdWVyeSAuPSAiIE9SREVSIEJZICIuICRzb3J0X2J5IC4gIiAkc29ydF9vcmRlciAiIC4gKCRsaW1pdD4wPyIgTElNSVQgIi4kbGltaXQ6IiIpOwoKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiRyb3djbGFzcyA9ICJyb3cxIjsKJHJvd19ncm91cHMgPSBhcnJheSgpOwokdXNlcnMgPSBhcnJheSgpOwokZXJyb3Jsb2dzX2NvdW50ID0gMDsKd2hpbGUoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpIHsKCgkkdXNlcnNbJHJvd1sncmVjaXBpZW50X2lkJ11dWydzZW5kX2RhdGUnXSA9ICRyb3dbJ3NlbmRfZGF0ZSddOwoJJHVzZXJzWyRyb3dbJ3JlY2lwaWVudF9pZCddXVsndXNlcm5hbWUnXSAJPSAkcm93Wyd1c2VybmFtZSddOwoJJHVzZXJzWyRyb3dbJ3JlY2lwaWVudF9pZCddXVsnbG9nX2lkJ10gCT0gJHJvd1snaWQnXTsKCSRzZW50YnkgCQkJCT0gJHJvd1snc2VudGJ5J107CgkkdXNlcnNbJHJvd1sncmVjaXBpZW50X2lkJ11dWydlcnJvcmNvZGUnXSA9ICRyb3dbJ3RtcF9lcnJvcmNvZGUnXTsKCWlmKCRyb3dbJ3RtcF9lcnJvcmNvZGUnXT09MCkgewoJCSR1c2Vyc1skcm93WydyZWNpcGllbnRfaWQnXV1bJ2ltZyddIAkJPSAkb2s7CgkJJHVzZXJzWyRyb3dbJ3JlY2lwaWVudF9pZCddXVsnc3RhdHVzJ10gCT0gJHRoaXMtPmxhbmcoJ29rJyk7Cgl9IGVsc2UgewoJCSRlcnJvcmxvZ3NfY291bnQrKzsKCQkkdXNlcnNbJHJvd1sncmVjaXBpZW50X2lkJ11dWydpbWcnXSA9ICRlcnJvcjsKCQlpZiAoJHJvd1sndG1wX2Vycm9yY29kZSddPT0xKSB7CgkJCSR1c2Vyc1skcm93WydyZWNpcGllbnRfaWQnXV1bJ3N0YXR1cyddID0gJHRoaXMtPmxhbmcoJ25vZW1haWxhZGRyZXNzZm91bmQnKTsKCQl9CgkJaWYgKCRyb3dbJ3RtcF9lcnJvcmNvZGUnXT09MikgewoJCQkkdXNlcnNbJHJvd1sncmVjaXBpZW50X2lkJ11dWydzdGF0dXMnXSA9ICR0aGlzLT5sYW5nKCdpbnZhbGlkZW1haWxhZGRyZXNzJyk7CgkJfQoJfQoJCglpZighZW1wdHkoJHJvd1snc3ViamVjdCddKSkgewoJCSRzdWJqZWN0ID0gJHJvd1snc3ViamVjdCddOwoJfSBlbHNlIHsKCQkkc3ViamVjdCA9ICR0aGlzLT5sYW5nKCdub3N1YmplY3QnKTsKCX0KCQoJJGdycHMgPSBleHBsb2RlKCc7Jywkcm93WydyZWNpcGllbnRfZ3JvdXBzJ10pOwoJaWYoIWVtcHR5KCRncnBzWzBdKSkgewoJCWZvcmVhY2goJGdycHMgYXMgJGdycCkgewoJCQkkZyA9IGV4cGxvZGUoJywnLCRncnApOwoJCQlpZihpc3NldCgkZ1sxXSkpIHsKCQkJCSRyb3dfZ3JvdXBzWyRnWzBdXSA9ICRnWzFdOwoJCQl9CgkJfQoJfQoJCglpZigkcm93Wyd0X2lkJ10hPScnIHx8ICRyb3dbJ2FfaWQnXSE9JycpIHsKCQkkbWFpbF9zdG9yZWQgPSB0cnVlOwoJCWlmKCRyb3dbJ2FfaWQnXSE9JycpIHsKCQkJJG1haWxfaWQgPSAkcm93WydhX2lkJ107CgkJCSRtYWlsX3R5cGUgPSAiYXJjaGl2ZSI7CgkJCQoJCX0gZWxzZSBpZiAoJHJvd1sndF9pZCddIT0nJykgewoJCQkkbWFpbF9pZCA9ICRyb3dbJ3RfaWQnXTsKCQkJJG1haWxfdHlwZSA9ICJ0bXAiOwoJCX0KCQkJCgkJJHByb2Nlc3NlZF91c2VycyA9ICRyb3dbJ3Byb2Nlc3NlZF91c2Vyc18nLiRtYWlsX3R5cGVdOwoJCSRyZWNpcGllbnRzID0gJHJvd1sncmVjaXBpZW50c18nLiRtYWlsX3R5cGVdOwoJfQoKCSR1c2Vyc1skcm93WydyZWNpcGllbnRfaWQnXV1bJ3JlY2lldmVkJ10gPSAkcm93WydyZWNpZXZlZCddOwoJJHVzZXJzWyRyb3dbJ3JlY2lwaWVudF9pZCddXVsncm93Y2xhc3MnXSA9ICRyb3djbGFzczsKCSRyb3djbGFzcyA9ICgkcm93Y2xhc3M9PSdyb3cxJz8ncm93Mic6J3JvdzEnKTsKCn0KCiRncm91cHMgPSAkdGhpcy0+R2V0QWRkaXRpb25hbEdyb3VwcygkdXNlcnMpOwokcHJvcDIgPSBhcnJheSgpOwpmb3JlYWNoKCRncm91cHMgYXMgJGdyb3VwX2lkPT4kZ3JvdXBfbmFtZSkKewoJJHByb3ByZWxhdGlvbnMgPSAkZmV1c2Vycy0+R2V0R3JvdXBQcm9wZXJ0eVJlbGF0aW9ucygkZ3JvdXBfaWQpOwoJJHByb3AyID0gJHRoaXMtPlJSVXRpbHMoKS0+YXJyYXlfbWVyZ2VfYnlfbmFtZV9yZXF1aXJlZCgkcHJvcDIsICRwcm9wcmVsYXRpb25zKTsKCXVhc29ydCgkcHJvcDIsIGFycmF5KCR0aGlzLT5SUlV0aWxzKCksJ2NvbXBhcmVfZWxlbWVudHNfYnlfc29ydG9yZGVyX2tleScpKTsKfQoKLy8gbm93IHdlIG1lcmdlIGluIGFsbCBvZiB0aGUgcHJvcGVydHkgZGVmaW5pdGlvbnMKJGRlZm5zID0gJGZldXNlcnMtPkdldFByb3BlcnR5RGVmbnMoKTsKJHByb3AzID0gYXJyYXkoKTsKZm9yZWFjaCgkcHJvcDIgYXMgJG9uZXByb3ApCnsKCWZvcmVhY2goJGRlZm5zIGFzICRvbmVkZWZuKQoJewoJCWlmKCRvbmVkZWZuWyduYW1lJ10gPT0gJG9uZXByb3BbJ25hbWUnXSkKCQl7CgkJCSRvbmVwcm9wWydwcm9tcHQnXSA9ICRvbmVkZWZuWydwcm9tcHQnXTsKCQkJJG9uZXByb3BbJ3R5cGUnXSA9ICRvbmVkZWZuWyd0eXBlJ107CgkJCWJyZWFrOwoJCX0KCX0KCSRwcm9wM1tdID0gJG9uZXByb3A7Cn0KCi8vIEFuZCBub3cgbWVyZ2UgaW4gdGhlIHZhbHVlcwokdXNlcm5hbWVfaXNfZW1haWwgPSAkZmV1c2Vycy0+R2V0UHJlZmVyZW5jZSgndXNlcm5hbWVfaXNfZW1haWwnLGZhbHNlKTsKCmZvcmVhY2goJHVzZXJzIGFzICR1c2VyaWQ9PiRkYXRhKSB7CgkkdXNlcnByb3BzID0gJGZldXNlcnMtPkdldFVzZXJQcm9wZXJ0aWVzKCR1c2VyaWQpOwoJJGVtYWlscyA9IGFycmF5KCk7Cglmb3JlYWNoKCRwcm9wMyBhcyAkb25lcHJvcCkKCXsKCQlmb3JlYWNoKCR1c2VycHJvcHMgYXMgJG9uZXZhbCkKCQl7CgkJCWlmKCRvbmVwcm9wWyduYW1lJ10gPT0gJG9uZXZhbFsndGl0bGUnXSkKCQkJewoJCQkJJG9uZXByb3BbJ2RhdGEnXSA9ICRvbmV2YWxbJ2RhdGEnXTsKCQkJCWJyZWFrOwoJCQl9CgkJfQoJCWlmKGlzc2V0KCRvbmVwcm9wWydkYXRhJ10pKSB7CgkJCWlmKCRvbmVwcm9wWyd0eXBlJ109PTIgJiYgJG9uZXByb3BbJ2RhdGEnXSE9JycpIHsKCQkJCSRlbWFpbHNbXSA9ICRvbmVwcm9wWydkYXRhJ107CgkJCX0KCQl9Cgl9CgkKCWlmKCR1c2VybmFtZV9pc19lbWFpbCkgewoJCSRlbWFpbHNbXSA9ICRkYXRhWyd1c2VybmFtZSddOwoJfQoJCgkkb25lcm93ICAgICAgICAgICAgPSBuZXcgc3RkQ2xhc3MoKTsKCSRvbmVyb3ctPmVtYWlscyAgICA9ICRlbWFpbHM7Cgkkb25lcm93LT51c2VybmFtZSAgPSAkZGF0YVsndXNlcm5hbWUnXTsKCSRvbmVyb3ctPnNlbmRfZGF0ZSA9ICRkYXRhWydzZW5kX2RhdGUnXTsKCSRvbmVyb3ctPmxvZ19pZCAgICA9ICRkYXRhWydsb2dfaWQnXTsKCSRvbmVyb3ctPmltZyAgICAgICA9ICRkYXRhWydpbWcnXTsKCSRvbmVyb3ctPnN0YXR1cyAgICA9ICRkYXRhWydzdGF0dXMnXTsKCSRvbmVyb3ctPnNlbGVjdGVkICA9ICcmbmJzcDsnOwoJJG9uZXJvdy0+cmVzZW5kICAgID0gJyZuYnNwOyc7Cgkkb25lcm93LT5yZWNpZXZlZCAgPSAoJGRhdGFbJ3JlY2lldmVkJ109PXRydWU/JG9rOicmbmJzcDsnKTsKCWlmKCRtYWlsX3N0b3JlZCAmJiAkbWFpbF90eXBlIT0ndG1wJykgewoJCSRvbmVyb3ctPnJlc2VuZCA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwncHJlcGFyZVNlbmRNYWlsJywkcmV0dXJuaWQsCgkJCSRyZXNlbmQsCgkJCWFycmF5KCdjbGVhcl9sb2cnPT4kY2xlYXJfbG9nLAoJCQkJJ3Rhc2snPT4ndXNlcicsCgkJCQkndXNlcmlkJz0+JHVzZXJpZCwKCQkJCSd1c2VybmFtZSc9PiRkYXRhWyd1c2VybmFtZSddLAoJCQkJJ21haWxfdHlwZSc9PiRtYWlsX3R5cGUsCgkJCQknbWFpbF9pZCc9PiRtYWlsX2lkLAoJCQkJJ2Vycm9yY29kZSc9PiRkYXRhWydlcnJvcmNvZGUnXSksCgkJKCR1c2VybmFtZV9pc19lbWFpbD8kdGhpcy0+bGFuZygncmVzZW5kdXNlcmNvbmZpcm1fMScsJGRhdGFbJ3VzZXJuYW1lJ10pOgoJCQkkdGhpcy0+bGFuZygncmVzZW5kdXNlcmNvbmZpcm1fMicsJGRhdGFbJ3VzZXJuYW1lJ10saW1wbG9kZSgiLCAiLCRlbWFpbHMpKSkpOwoJCSRvbmVyb3ctPnNlbGVjdGVkID0gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdsb2ctJy4kdXNlcmlkLAoJCQkkdXNlcmlkLictJy4kZGF0YVsndXNlcm5hbWUnXS4nLScuJGRhdGFbJ2Vycm9yY29kZSddLAoJCQknJywnY2xhc3M9ImxvZ3MiJyk7Cgl9CgoJJG9uZXJvdy0+cm93Y2xhc3MgPSAkZGF0YVsncm93Y2xhc3MnXTsKCSRsb2dzW109JG9uZXJvdzsKfQoKJGdyb3VwcyA9IGltcGxvZGUoIiwgIiwkcm93X2dyb3Vwcyk7CiRncm91cHNfY29uZmlybSA9IGltcGxvZGUoIlxcbiIsJHJvd19ncm91cHMpOwokdG90YWxfdXNlcnMgPSBjb3VudCgkdGhpcy0+R2V0VXNlcnMoJHJvd19ncm91cHMpKTsKCiRsaW1pdHMgPSBhcnJheSgpOwokbGltaXRzWycxMCddICAgID0gJzEwJzsKJGxpbWl0c1snNTAnXSAgICA9ICc1MCc7CiRsaW1pdHNbJzEwMCddICAgPSAnMTAwJzsKJGxpbWl0c1snMjAwJ10gICA9ICcyMDAnOwokbGltaXRzWyc1MDAnXSAgID0gJzUwMCc7CiRsaW1pdHNbJzEwMDAnXSAgPSAnMTAwMCc7CiRsaW1pdHNbJzIwMDAnXSAgPSAnMjAwMCc7CiRsaW1pdHNbJzUwMDAnXSAgPSAnNTAwMCc7CiRsaW1pdHNbJzEwMDAwJ10gPSAnMTAwMDAnOwokbGltaXRzWyR0aGlzLT5sYW5nKCdub2xpbWl0JyldID0gJzAnOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2xpbWl0JywJJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnbGltaXQnLCAkbGltaXRzLCAnJywgJGxpbWl0KSk7Cgokc29ydHMgPSBhcnJheSgpOwokc29ydHNbJHRoaXMtPmxhbmcoJ3NlbmRfb3JkZXInKV0gCT0gJ0wuaWQnOwokc29ydHNbJHRoaXMtPmxhbmcoJ3VzZXJuYW1lJyldIAk9ICdGRVUudXNlcm5hbWUnOwokc29ydHNbJHRoaXMtPmxhbmcoJ3NlbmRfZGF0ZScpXSAJPSAnTC5zZW5kX2RhdGUnOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3NvcnRfYnknLCAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdzb3J0X2J5JywgJHNvcnRzLCAnJywgJHNvcnRfYnkpKTsKCiRvcmRlcnMgPSBhcnJheSgpOwokb3JkZXJzWyR0aGlzLT5sYW5nKCdhc2MnKV0gCT0gJ0FTQyc7CiRvcmRlcnNbJHRoaXMtPmxhbmcoJ2Rlc2MnKV0gCT0gJ0RFU0MnOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3NvcnRfb3JkZXInLCR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ3NvcnRfb3JkZXInLCAkb3JkZXJzLCAnJywgJHNvcnRfb3JkZXIpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignZmlsdGVyX3RleHQnLCAkdGhpcy0+bGFuZygnZmlsdGVyJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3NvcnRieV90ZXh0JywgJHRoaXMtPmxhbmcoJ3NvcnRieScpKTsKIyR0aGlzLT5zbWFydHktPmFzc2lnbignc29ydG9yZGVyX3RleHQnLCAkdGhpcy0+bGFuZygnc29ydG9yZGVyJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2xpbWl0X3RleHQnLCAkdGhpcy0+bGFuZygnbGltaXQnKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3NhdmVmaWx0ZXInLCAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdzYXZlZmlsdGVyJywxLCcnLCcnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignc2F2ZWZpbHRlcl90ZXh0JywgJHRoaXMtPmxhbmcoJ3NhdmVkZWZhdWx0JykpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlcnJvcnNfb25seScsICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2Vycm9yc19vbmx5JywxLCRlcnJvcnNfb25seSwnJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Vycm9yc29ubHlfdGV4dCcsICR0aGlzLT5sYW5nKCdlcnJvcnNvbmx5JykpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgJHRoaXMtPmxhbmcoJ3N1Ym1pdCcpKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignY2FuY2VsJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsICR0aGlzLT5sYW5nKCdjYW5jZWwnKSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZEZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRGaWx0ZXJGb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCggJGlkLCAndmlld0xvZ3MnLCAKCSRyZXR1cm5pZCwncG9zdCcsJycsZmFsc2UsJycsYXJyYXkoJ2FjdGl2ZV90YWInPT4kYWN0aXZlX3RhYiwKCQkndG1wX2lkJz0+KGlzc2V0KCR0bXBfaWQpPyR0bXBfaWQ6JycpLAoJCSdhcmNoaXZlX2lkJz0+KGlzc2V0KCRhcmNoaXZlX2lkKT8kYXJjaGl2ZV9pZDonJyksCgkJJ3BhZ2UnPT4kcGFnZSwKCQknY2xlYXJfbG9nJz0+JGNsZWFyX2xvZywKCQknb2xkX2xpbWl0Jz0+JGxpbWl0KSkpOwoJCQkJCQkJCQkJCQkJCQkJCQkJCQkKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydExvZ3NGb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCggJGlkLCAndmlld0xvZ3MnLCAKCSRyZXR1cm5pZCwncG9zdCcsJycsZmFsc2UsJycsYXJyYXkoJ2FjdGl2ZV90YWInPT4kYWN0aXZlX3RhYikpKTsKCi8vIHNtYXJ0eSBzdHVmZgokdGhpcy0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdsb2dzJywkbG9ncyk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignY3VycmVudGxvZ3NfY291bnQnLGNvdW50KCRsb2dzKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Vycm9ybG9nc19jb3VudCcsICRlcnJvcmxvZ3NfY291bnQpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RvdGFsbG9nc19jb3VudCcsICRsb2dzX2NvdW50KTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlcnJvcmxvZ3NfdGV4dCcsICR0aGlzLT5sYW5nKCdlcnJvcmxvZ3MnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigndG90YWxsb2dzX3RleHQnLCAkdGhpcy0+bGFuZygndG90YWxsb2dzJykpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdub2xvZ3MnLCR0aGlzLT5sYW5nKCdub2xvZ3MnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignbG9naWRfdGV4dCcsJHRoaXMtPmxhbmcoJ2xvZ2lkJykpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJqZWN0X3RleHQnLCR0aGlzLT5sYW5nKCdzdWJqZWN0JykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1YmplY3QnLCRzdWJqZWN0KTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbigndXNlcm5hbWVfdGV4dCcsJHRoaXMtPmxhbmcoJ3VzZXJuYW1lJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VtYWlsX3RleHQnLCR0aGlzLT5sYW5nKCdlbWFpbGFkZHJlc3MnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignc2VuZF9kYXRlX3RleHQnLCR0aGlzLT5sYW5nKCdzZW5kX2RhdGUnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhdHVzX3RleHQnLCR0aGlzLT5sYW5nKCdzdGF0dXMnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigncmVjaWV2ZWRfdGV4dCcsJHRoaXMtPmxhbmcoJ3JlY2lldmVkJykpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJqZWN0X3RleHQnLCR0aGlzLT5sYW5nKCdzdWJqZWN0JykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1YmplY3RfaW5wdXQnLCRzdWJqZWN0KTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd1c2VybmFtZV9pc19lbWFpbCcsJHVzZXJuYW1lX2lzX2VtYWlsKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignc2VudGJ5X3RleHQnLCR0aGlzLT5sYW5nKCdzZW50YnknKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZ3JvdXBzX3RleHQnLCR0aGlzLT5sYW5nKCdncm91cHMnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZ3JvdXBzJywkZ3JvdXBzKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzZW50YnknLCRzZW50YnkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2hlYWRpbmcnLCR0aGlzLT5sYW5nKCd2aWV3X2xvZ3MnKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3NlbGVjdGFsbCcsJyZuYnNwOycpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Jlc2VuZF90ZXh0JywnJm5ic3A7Jyk7CmlmKCRtYWlsX3N0b3JlZCAmJiAkbWFpbF90eXBlIT0ndG1wJykgewoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzZWxlY3RhbGwnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnbG9ncycsdHJ1ZSxmYWxzZSwKCQkJCSdpZD0ibG9ncyIgb25jbGljaz0ic2VsZWN0QWxsKHRoaXMpIicpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbigncmVzZW5kX3RleHQnLCR0aGlzLT5sYW5nKCdyZXNlbmQnKSk7Cn0KJHBhZ2VzID0gYXJyYXkoKTsKaWYoJGxpbWl0ID4gMCAmJiAkbWF4X3BhZ2VzPjApIHsKCWZvcigkaT0wOyAkaTw9JG1heF9wYWdlczsgJGkrKykgewoJCSRvbmVyb3cgPSBuZXcgc3RkQ2xhc3MoKTsKCQlpZigkaT09JHBhZ2UpIHsKCQkJJG9uZXJvdy0+bnVtYmVyID0gIiZuYnNwOyIuICgkaSsxKSAuIiZuYnNwOyI7CgkJfQoJCWVsc2UgewoJCSRvbmVyb3ctPm51bWJlciA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwndmlld0xvZ3MnLCRyZXR1cm5pZCwKCQkJIiZuYnNwOyIuICgkaSsxKSAuIiZuYnNwOyIsCgkJCWFycmF5KCdjbGVhcl9sb2cnPT4kY2xlYXJfbG9nLAoJCQkJJ3RtcF9pZCc9Pihpc3NldCgkdG1wX2lkKT8kdG1wX2lkOicnKSwKCQkJCSdhcmNoaXZlX2lkJz0+KGlzc2V0KCRhcmNoaXZlX2lkKT8kYXJjaGl2ZV9pZDonJyksCgkJCQkncGFnZSc9PiRpLAoJCQkJJ2xpbWl0Jz0+JGxpbWl0LAoJCQknc29ydF9ieSc9PiRzb3J0X2J5LAoJCQknc29ydF9vcmRlcic9PiRzb3J0X29yZGVyLAoJCQknZXJyb3JzX29ubHknPT4kZXJyb3JzX29ubHkpKTsKCQl9CgkJJHBhZ2VzW10gPSAkb25lcm93OwoJfQp9CiR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ3BhZ2VzJywkcGFnZXMpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwYWdlc190ZXh0JywkdGhpcy0+bGFuZygncGFnZXMnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZmlyc3QnLCcmbmJzcDsnKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwcmV2JywnJm5ic3A7Jyk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignbGFzdCcsJyZuYnNwOycpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25leHQnLCcmbmJzcDsnKTsKCmlmKCRsaW1pdCA+IDAgJiYgKCgkcGFnZSAqICRsaW1pdCkrJGxpbWl0PCRsb2dzX2NvdW50KSAmJiAkbWF4X3BhZ2VzPjApIHsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCduZXh0JywkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ3ZpZXdMb2dzJywkcmV0dXJuaWQsCgkiJm5ic3A7PiZuYnNwOyIsCglhcnJheSgnY2xlYXJfbG9nJz0+JGNsZWFyX2xvZywKCQkndG1wX2lkJz0+KGlzc2V0KCR0bXBfaWQpPyR0bXBfaWQ6JycpLAoJCSdhcmNoaXZlX2lkJz0+KGlzc2V0KCRhcmNoaXZlX2lkKT8kYXJjaGl2ZV9pZDonJyksCgkJJ3BhZ2UnPT4oJHBhZ2UrMSksCgkJJ2xpbWl0Jz0+JGxpbWl0LAoJCSdzb3J0X2J5Jz0+JHNvcnRfYnksCgkJJ3NvcnRfb3JkZXInPT4kc29ydF9vcmRlciwKCQknZXJyb3JzX29ubHknPT4kZXJyb3JzX29ubHkpKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2xhc3QnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwndmlld0xvZ3MnLCRyZXR1cm5pZCwKCSImbmJzcDs+PiZuYnNwOyIsCglhcnJheSgnY2xlYXJfbG9nJz0+JGNsZWFyX2xvZywKCQkndG1wX2lkJz0+KGlzc2V0KCR0bXBfaWQpPyR0bXBfaWQ6JycpLAoJCSdhcmNoaXZlX2lkJz0+KGlzc2V0KCRhcmNoaXZlX2lkKT8kYXJjaGl2ZV9pZDonJyksCgkJJ3BhZ2UnPT4kbWF4X3BhZ2VzLAoJCSdsaW1pdCc9PiRsaW1pdCwKCQknc29ydF9ieSc9PiRzb3J0X2J5LAoJCSdzb3J0X29yZGVyJz0+JHNvcnRfb3JkZXIsCgkJJ2Vycm9yc19vbmx5Jz0+JGVycm9yc19vbmx5KSkpOwp9CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3BhZ2VzX2NvdW50JywkbWF4X3BhZ2VzKTsKCmlmKCRwYWdlPjAgJiYgJG1heF9wYWdlcz4wKSB7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3ByZXYnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwndmlld0xvZ3MnLCRyZXR1cm5pZCwKCQkiJm5ic3A7PCZuYnNwOyIsCgkJYXJyYXkoJ2NsZWFyX2xvZyc9PiRjbGVhcl9sb2csCgkJCSd0bXBfaWQnPT4oaXNzZXQoJHRtcF9pZCk/JHRtcF9pZDonJyksCgkJCSdhcmNoaXZlX2lkJz0+KGlzc2V0KCRhcmNoaXZlX2lkKT8kYXJjaGl2ZV9pZDonJyksCgkJCSdwYWdlJz0+KCRwYWdlLTEpLAoJCQknbGltaXQnPT4kbGltaXQsCgkJCSdzb3J0X2J5Jz0+JHNvcnRfYnksCgkJCSdzb3J0X29yZGVyJz0+JHNvcnRfb3JkZXIsCgkJCSdlcnJvcnNfb25seSc9PiRlcnJvcnNfb25seSkpKTsKCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZpcnN0JywkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ3ZpZXdMb2dzJywkcmV0dXJuaWQsCgkJIiZuYnNwOzw8Jm5ic3A7IiwKCQlhcnJheSgnY2xlYXJfbG9nJz0+JGNsZWFyX2xvZywKCQkJJ3RtcF9pZCc9Pihpc3NldCgkdG1wX2lkKT8kdG1wX2lkOicnKSwKCQkJJ2FyY2hpdmVfaWQnPT4oaXNzZXQoJGFyY2hpdmVfaWQpPyRhcmNoaXZlX2lkOicnKSwKCQkJJ3BhZ2UnPT4wLAoJCQknbGltaXQnPT4kbGltaXQsCgkJCSdzb3J0X2J5Jz0+JHNvcnRfYnksCgkJCSdzb3J0X29yZGVyJz0+JHNvcnRfb3JkZXIsCgkJCSdlcnJvcnNfb25seSc9PiRlcnJvcnNfb25seSkpKTsKCn0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyZXNlbmRfc2VsZWN0ZWQnLCcnKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyZXNlbmRfYWxsJywnJyk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigncmVzZW5kX25ldycsJycpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Jlc2VuZF9lcnJvcnMnLCcnKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdoaWRkZW4nLCcnKTsKaWYoJG1haWxfc3RvcmVkPT10cnVlICYmICRtYWlsX3R5cGUhPSd0bXAnKSB7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Jlc2VuZF9zZWxlY3RlZCcsIAoJCSR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsIAoJCQkncmVzZW5kX3NlbGVjdGVkJywgCgkJCSR0aGlzLT5sYW5nKCdyZXNlbmRfc2VsZWN0ZWQnKSwnJywnJywKCQkJJHRoaXMtPmxhbmcoJ3Jlc2VuZHNlbGVjdGVkY29uZmlybScpKSk7CgkJCQkJCQkJCQkJCQkJCQkJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Jlc2VuZF9hbGwnLCAKCQkkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAncmVzZW5kX2FsbCcsIAoJCQkkdGhpcy0+bGFuZygncmVzZW5kX2FsbCcpLCcnLCcnLAoJCQkkdGhpcy0+bGFuZygncmVzZW5kYWxsJy4kbWFpbF90eXBlLidjb25maXJtX2Z1bGwnLCRncm91cHMsJHRvdGFsX3VzZXJzKSkpOwoKCWlmKCgkdG90YWxfdXNlcnMtJHByb2Nlc3NlZF91c2Vycyk+MCkgewoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigncmVzZW5kX25ldycsIAoJCQkkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAncmVzZW5kX25ldycsIAoJCQkJJHRoaXMtPmxhbmcoJ2NvbnRpbnVlXycuJG1haWxfdHlwZSksJycsJycsCgkJCQkkdGhpcy0+bGFuZygncmVzZW5kbmV3Jy4kbWFpbF90eXBlLidjb25maXJtX2Z1bGwnLAoJCQkJCSRncm91cHMsCgkJCQkJJHRvdGFsX3VzZXJzLAoJCQkJCSRwcm9jZXNzZWRfdXNlcnMsCgkJCQkJJHJlY2lwaWVudHMsCgkJCQkJKCR0b3RhbF91c2Vycy0kcHJvY2Vzc2VkX3VzZXJzKSkpKTsKCX0KCglpZigoJHByb2Nlc3NlZF91c2Vycy0kcmVjaXBpZW50cyk+MCkgewoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigncmVzZW5kX2Vycm9ycycsIAoJCQkkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAncmVzZW5kX2Vycm9ycycsIAoJCQkJJHRoaXMtPmxhbmcoJ3Jlc2VuZF9lcnJvcnMnKSwnJywnJywKCQkJCSR0aGlzLT5sYW5nKCdyZXNlbmRlcnJvcicuJG1haWxfdHlwZS4nY29uZmlybV9mdWxsJywKCQkJCQkkZ3JvdXBzLAoJCQkJCSR0b3RhbF91c2VycywKCQkJCQkkcHJvY2Vzc2VkX3VzZXJzLAoJCQkJCSRyZWNpcGllbnRzLAoJCQkJCSgkcHJvY2Vzc2VkX3VzZXJzLSRyZWNpcGllbnRzKSkpKTsKCX0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignaGlkZGVuJywkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdtYWlsX2lkJywkbWFpbF9pZCkuCgkJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnbWFpbF90eXBlJywkbWFpbF90eXBlKSk7Cn0KCmlmKCFpc3NldCgkYXJjaGl2ZV9pZCkgJiYgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2F1dG9zYXZlJywxKSkgewoJJG1lc3NhZ2VbXSA9ICR0aGlzLT5sYW5nKCd0YXNrX29wZW4nKTsKCWlmKCEkbWFpbF9zdG9yZWQpCgkJJG1lc3NhZ2VbXSA9ICR0aGlzLT5sYW5nKCdjYW5ub3Rjb250aW51ZScpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlcnJvcm1lc3NhZ2UnLGltcGxvZGUoIjxiciAvPiIsJG1lc3NhZ2UpKTsKfSBlbHNlIHsKCSRtZXNzYWdlW10gPSAkdGhpcy0+bGFuZygndGFza19maW5pc2hlZCcpOwoJaWYoISRtYWlsX3N0b3JlZCkKCQkkbWVzc2FnZVtdID0gJHRoaXMtPmxhbmcoJ2Nhbm5vdGNvbnRpbnVlJyk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21lc3NhZ2UnLGltcGxvZGUoIjxiciAvPiIsJG1lc3NhZ2UpKTsKfQovLyBEaXNwbGF5IHRoZSBwb3B1bGF0ZWQgdGVtcGxhdGUKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCd2aWV3TG9ncy50cGwnKTsKPz4K]]></data>
	</file>
	<file>
	  <filename>/docs/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/docs/license.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMywgMjkgSnVuZSAyMDA3CgogQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiA8aHR0cDovL2ZzZi5vcmcvPgogRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCiBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVhbWJsZQoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgYSBmcmVlLCBjb3B5bGVmdCBsaWNlbnNlIGZvcgpzb2Z0d2FyZSBhbmQgb3RoZXIga2luZHMgb2Ygd29ya3MuCgogIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhbmQgb3RoZXIgcHJhY3RpY2FsIHdvcmtzIGFyZSBkZXNpZ25lZAp0byB0YWtlIGF3YXkgeW91ciBmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgdGhlIHdvcmtzLiAgQnkgY29udHJhc3QsCnRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBpbnRlbmRlZCB0byBndWFyYW50ZWUgeW91ciBmcmVlZG9tIHRvCnNoYXJlIGFuZCBjaGFuZ2UgYWxsIHZlcnNpb25zIG9mIGEgcHJvZ3JhbS0tdG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgZnJlZQpzb2Z0d2FyZSBmb3IgYWxsIGl0cyB1c2Vycy4gIFdlLCB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB1c2UgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3N0IG9mIG91ciBzb2Z0d2FyZTsgaXQgYXBwbGllcyBhbHNvIHRvCmFueSBvdGhlciB3b3JrIHJlbGVhc2VkIHRoaXMgd2F5IGJ5IGl0cyBhdXRob3JzLiAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoZW0gaWYgeW91IHdpc2gpLCB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQgaWYgeW91CndhbnQgaXQsIHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQgaW4gbmV3CmZyZWUgcHJvZ3JhbXMsIGFuZCB0aGF0IHlvdSBrbm93IHlvdSBjYW4gZG8gdGhlc2UgdGhpbmdzLgoKICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIHByZXZlbnQgb3RoZXJzIGZyb20gZGVueWluZyB5b3UKdGhlc2UgcmlnaHRzIG9yIGFza2luZyB5b3UgdG8gc3VycmVuZGVyIHRoZSByaWdodHMuICBUaGVyZWZvcmUsIHlvdSBoYXZlCmNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlLCBvciBpZgp5b3UgbW9kaWZ5IGl0OiByZXNwb25zaWJpbGl0aWVzIHRvIHJlc3BlY3QgdGhlIGZyZWVkb20gb2Ygb3RoZXJzLgoKICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyCmdyYXRpcyBvciBmb3IgYSBmZWUsIHlvdSBtdXN0IHBhc3Mgb24gdG8gdGhlIHJlY2lwaWVudHMgdGhlIHNhbWUKZnJlZWRvbXMgdGhhdCB5b3UgcmVjZWl2ZWQuICBZb3UgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGV5LCB0b28sIHJlY2VpdmUKb3IgY2FuIGdldCB0aGUgc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkKa25vdyB0aGVpciByaWdodHMuCgogIERldmVsb3BlcnMgdGhhdCB1c2UgdGhlIEdOVSBHUEwgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIHR3byBzdGVwczoKKDEpIGFzc2VydCBjb3B5cmlnaHQgb24gdGhlIHNvZnR3YXJlLCBhbmQgKDIpIG9mZmVyIHlvdSB0aGlzIExpY2Vuc2UKZ2l2aW5nIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSBpdC4KCiAgRm9yIHRoZSBkZXZlbG9wZXJzJyBhbmQgYXV0aG9ycycgcHJvdGVjdGlvbiwgdGhlIEdQTCBjbGVhcmx5IGV4cGxhaW5zCnRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMgZnJlZSBzb2Z0d2FyZS4gIEZvciBib3RoIHVzZXJzJyBhbmQKYXV0aG9ycycgc2FrZSwgdGhlIEdQTCByZXF1aXJlcyB0aGF0IG1vZGlmaWVkIHZlcnNpb25zIGJlIG1hcmtlZCBhcwpjaGFuZ2VkLCBzbyB0aGF0IHRoZWlyIHByb2JsZW1zIHdpbGwgbm90IGJlIGF0dHJpYnV0ZWQgZXJyb25lb3VzbHkgdG8KYXV0aG9ycyBvZiBwcmV2aW91cyB2ZXJzaW9ucy4KCiAgU29tZSBkZXZpY2VzIGFyZSBkZXNpZ25lZCB0byBkZW55IHVzZXJzIGFjY2VzcyB0byBpbnN0YWxsIG9yIHJ1bgptb2RpZmllZCB2ZXJzaW9ucyBvZiB0aGUgc29mdHdhcmUgaW5zaWRlIHRoZW0sIGFsdGhvdWdoIHRoZSBtYW51ZmFjdHVyZXIKY2FuIGRvIHNvLiAgVGhpcyBpcyBmdW5kYW1lbnRhbGx5IGluY29tcGF0aWJsZSB3aXRoIHRoZSBhaW0gb2YKcHJvdGVjdGluZyB1c2VycycgZnJlZWRvbSB0byBjaGFuZ2UgdGhlIHNvZnR3YXJlLiAgVGhlIHN5c3RlbWF0aWMKcGF0dGVybiBvZiBzdWNoIGFidXNlIG9jY3VycyBpbiB0aGUgYXJlYSBvZiBwcm9kdWN0cyBmb3IgaW5kaXZpZHVhbHMgdG8KdXNlLCB3aGljaCBpcyBwcmVjaXNlbHkgd2hlcmUgaXQgaXMgbW9zdCB1bmFjY2VwdGFibGUuICBUaGVyZWZvcmUsIHdlCmhhdmUgZGVzaWduZWQgdGhpcyB2ZXJzaW9uIG9mIHRoZSBHUEwgdG8gcHJvaGliaXQgdGhlIHByYWN0aWNlIGZvciB0aG9zZQpwcm9kdWN0cy4gIElmIHN1Y2ggcHJvYmxlbXMgYXJpc2Ugc3Vic3RhbnRpYWxseSBpbiBvdGhlciBkb21haW5zLCB3ZQpzdGFuZCByZWFkeSB0byBleHRlbmQgdGhpcyBwcm92aXNpb24gdG8gdGhvc2UgZG9tYWlucyBpbiBmdXR1cmUgdmVyc2lvbnMKb2YgdGhlIEdQTCwgYXMgbmVlZGVkIHRvIHByb3RlY3QgdGhlIGZyZWVkb20gb2YgdXNlcnMuCgogIEZpbmFsbHksIGV2ZXJ5IHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlIHBhdGVudHMuClN0YXRlcyBzaG91bGQgbm90IGFsbG93IHBhdGVudHMgdG8gcmVzdHJpY3QgZGV2ZWxvcG1lbnQgYW5kIHVzZSBvZgpzb2Z0d2FyZSBvbiBnZW5lcmFsLXB1cnBvc2UgY29tcHV0ZXJzLCBidXQgaW4gdGhvc2UgdGhhdCBkbywgd2Ugd2lzaCB0bwphdm9pZCB0aGUgc3BlY2lhbCBkYW5nZXIgdGhhdCBwYXRlbnRzIGFwcGxpZWQgdG8gYSBmcmVlIHByb2dyYW0gY291bGQKbWFrZSBpdCBlZmZlY3RpdmVseSBwcm9wcmlldGFyeS4gIFRvIHByZXZlbnQgdGhpcywgdGhlIEdQTCBhc3N1cmVzIHRoYXQKcGF0ZW50cyBjYW5ub3QgYmUgdXNlZCB0byByZW5kZXIgdGhlIHByb2dyYW0gbm9uLWZyZWUuCgogIFRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kCm1vZGlmaWNhdGlvbiBmb2xsb3cuCgogICAgICAgICAgICAgICAgICAgICAgIFRFUk1TIEFORCBDT05ESVRJT05TCgogIDAuIERlZmluaXRpb25zLgoKICAiVGhpcyBMaWNlbnNlIiByZWZlcnMgdG8gdmVyc2lvbiAzIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KCiAgIkNvcHlyaWdodCIgYWxzbyBtZWFucyBjb3B5cmlnaHQtbGlrZSBsYXdzIHRoYXQgYXBwbHkgdG8gb3RoZXIga2luZHMgb2YKd29ya3MsIHN1Y2ggYXMgc2VtaWNvbmR1Y3RvciBtYXNrcy4KCiAgIlRoZSBQcm9ncmFtIiByZWZlcnMgdG8gYW55IGNvcHlyaWdodGFibGUgd29yayBsaWNlbnNlZCB1bmRlciB0aGlzCkxpY2Vuc2UuICBFYWNoIGxpY2Vuc2VlIGlzIGFkZHJlc3NlZCBhcyAieW91Ii4gICJMaWNlbnNlZXMiIGFuZAoicmVjaXBpZW50cyIgbWF5IGJlIGluZGl2aWR1YWxzIG9yIG9yZ2FuaXphdGlvbnMuCgogIFRvICJtb2RpZnkiIGEgd29yayBtZWFucyB0byBjb3B5IGZyb20gb3IgYWRhcHQgYWxsIG9yIHBhcnQgb2YgdGhlIHdvcmsKaW4gYSBmYXNoaW9uIHJlcXVpcmluZyBjb3B5cmlnaHQgcGVybWlzc2lvbiwgb3RoZXIgdGhhbiB0aGUgbWFraW5nIG9mIGFuCmV4YWN0IGNvcHkuICBUaGUgcmVzdWx0aW5nIHdvcmsgaXMgY2FsbGVkIGEgIm1vZGlmaWVkIHZlcnNpb24iIG9mIHRoZQplYXJsaWVyIHdvcmsgb3IgYSB3b3JrICJiYXNlZCBvbiIgdGhlIGVhcmxpZXIgd29yay4KCiAgQSAiY292ZXJlZCB3b3JrIiBtZWFucyBlaXRoZXIgdGhlIHVubW9kaWZpZWQgUHJvZ3JhbSBvciBhIHdvcmsgYmFzZWQKb24gdGhlIFByb2dyYW0uCgogIFRvICJwcm9wYWdhdGUiIGEgd29yayBtZWFucyB0byBkbyBhbnl0aGluZyB3aXRoIGl0IHRoYXQsIHdpdGhvdXQKcGVybWlzc2lvbiwgd291bGQgbWFrZSB5b3UgZGlyZWN0bHkgb3Igc2Vjb25kYXJpbHkgbGlhYmxlIGZvcgppbmZyaW5nZW1lbnQgdW5kZXIgYXBwbGljYWJsZSBjb3B5cmlnaHQgbGF3LCBleGNlcHQgZXhlY3V0aW5nIGl0IG9uIGEKY29tcHV0ZXIgb3IgbW9kaWZ5aW5nIGEgcHJpdmF0ZSBjb3B5LiAgUHJvcGFnYXRpb24gaW5jbHVkZXMgY29weWluZywKZGlzdHJpYnV0aW9uICh3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uKSwgbWFraW5nIGF2YWlsYWJsZSB0byB0aGUKcHVibGljLCBhbmQgaW4gc29tZSBjb3VudHJpZXMgb3RoZXIgYWN0aXZpdGllcyBhcyB3ZWxsLgoKICBUbyAiY29udmV5IiBhIHdvcmsgbWVhbnMgYW55IGtpbmQgb2YgcHJvcGFnYXRpb24gdGhhdCBlbmFibGVzIG90aGVyCnBhcnRpZXMgdG8gbWFrZSBvciByZWNlaXZlIGNvcGllcy4gIE1lcmUgaW50ZXJhY3Rpb24gd2l0aCBhIHVzZXIgdGhyb3VnaAphIGNvbXB1dGVyIG5ldHdvcmssIHdpdGggbm8gdHJhbnNmZXIgb2YgYSBjb3B5LCBpcyBub3QgY29udmV5aW5nLgoKICBBbiBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZSBkaXNwbGF5cyAiQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcyIKdG8gdGhlIGV4dGVudCB0aGF0IGl0IGluY2x1ZGVzIGEgY29udmVuaWVudCBhbmQgcHJvbWluZW50bHkgdmlzaWJsZQpmZWF0dXJlIHRoYXQgKDEpIGRpc3BsYXlzIGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UsIGFuZCAoMikKdGVsbHMgdGhlIHVzZXIgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhlIHdvcmsgKGV4Y2VwdCB0byB0aGUKZXh0ZW50IHRoYXQgd2FycmFudGllcyBhcmUgcHJvdmlkZWQpLCB0aGF0IGxpY2Vuc2VlcyBtYXkgY29udmV5IHRoZQp3b3JrIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIGhvdyB0byB2aWV3IGEgY29weSBvZiB0aGlzIExpY2Vuc2UuICBJZgp0aGUgaW50ZXJmYWNlIHByZXNlbnRzIGEgbGlzdCBvZiB1c2VyIGNvbW1hbmRzIG9yIG9wdGlvbnMsIHN1Y2ggYXMgYQptZW51LCBhIHByb21pbmVudCBpdGVtIGluIHRoZSBsaXN0IG1lZXRzIHRoaXMgY3JpdGVyaW9uLgoKICAxLiBTb3VyY2UgQ29kZS4KCiAgVGhlICJzb3VyY2UgY29kZSIgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsKZm9yIG1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgIk9iamVjdCBjb2RlIiBtZWFucyBhbnkgbm9uLXNvdXJjZQpmb3JtIG9mIGEgd29yay4KCiAgQSAiU3RhbmRhcmQgSW50ZXJmYWNlIiBtZWFucyBhbiBpbnRlcmZhY2UgdGhhdCBlaXRoZXIgaXMgYW4gb2ZmaWNpYWwKc3RhbmRhcmQgZGVmaW5lZCBieSBhIHJlY29nbml6ZWQgc3RhbmRhcmRzIGJvZHksIG9yLCBpbiB0aGUgY2FzZSBvZgppbnRlcmZhY2VzIHNwZWNpZmllZCBmb3IgYSBwYXJ0aWN1bGFyIHByb2dyYW1taW5nIGxhbmd1YWdlLCBvbmUgdGhhdAppcyB3aWRlbHkgdXNlZCBhbW9uZyBkZXZlbG9wZXJzIHdvcmtpbmcgaW4gdGhhdCBsYW5ndWFnZS4KCiAgVGhlICJTeXN0ZW0gTGlicmFyaWVzIiBvZiBhbiBleGVjdXRhYmxlIHdvcmsgaW5jbHVkZSBhbnl0aGluZywgb3RoZXIKdGhhbiB0aGUgd29yayBhcyBhIHdob2xlLCB0aGF0IChhKSBpcyBpbmNsdWRlZCBpbiB0aGUgbm9ybWFsIGZvcm0gb2YKcGFja2FnaW5nIGEgTWFqb3IgQ29tcG9uZW50LCBidXQgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhhdCBNYWpvcgpDb21wb25lbnQsIGFuZCAoYikgc2VydmVzIG9ubHkgdG8gZW5hYmxlIHVzZSBvZiB0aGUgd29yayB3aXRoIHRoYXQKTWFqb3IgQ29tcG9uZW50LCBvciB0byBpbXBsZW1lbnQgYSBTdGFuZGFyZCBJbnRlcmZhY2UgZm9yIHdoaWNoIGFuCmltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluIHNvdXJjZSBjb2RlIGZvcm0uICBBCiJNYWpvciBDb21wb25lbnQiLCBpbiB0aGlzIGNvbnRleHQsIG1lYW5zIGEgbWFqb3IgZXNzZW50aWFsIGNvbXBvbmVudAooa2VybmVsLCB3aW5kb3cgc3lzdGVtLCBhbmQgc28gb24pIG9mIHRoZSBzcGVjaWZpYyBvcGVyYXRpbmcgc3lzdGVtCihpZiBhbnkpIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHdvcmsgcnVucywgb3IgYSBjb21waWxlciB1c2VkIHRvCnByb2R1Y2UgdGhlIHdvcmssIG9yIGFuIG9iamVjdCBjb2RlIGludGVycHJldGVyIHVzZWQgdG8gcnVuIGl0LgoKICBUaGUgIkNvcnJlc3BvbmRpbmcgU291cmNlIiBmb3IgYSB3b3JrIGluIG9iamVjdCBjb2RlIGZvcm0gbWVhbnMgYWxsCnRoZSBzb3VyY2UgY29kZSBuZWVkZWQgdG8gZ2VuZXJhdGUsIGluc3RhbGwsIGFuZCAoZm9yIGFuIGV4ZWN1dGFibGUKd29yaykgcnVuIHRoZSBvYmplY3QgY29kZSBhbmQgdG8gbW9kaWZ5IHRoZSB3b3JrLCBpbmNsdWRpbmcgc2NyaXB0cyB0bwpjb250cm9sIHRob3NlIGFjdGl2aXRpZXMuICBIb3dldmVyLCBpdCBkb2VzIG5vdCBpbmNsdWRlIHRoZSB3b3JrJ3MKU3lzdGVtIExpYnJhcmllcywgb3IgZ2VuZXJhbC1wdXJwb3NlIHRvb2xzIG9yIGdlbmVyYWxseSBhdmFpbGFibGUgZnJlZQpwcm9ncmFtcyB3aGljaCBhcmUgdXNlZCB1bm1vZGlmaWVkIGluIHBlcmZvcm1pbmcgdGhvc2UgYWN0aXZpdGllcyBidXQKd2hpY2ggYXJlIG5vdCBwYXJ0IG9mIHRoZSB3b3JrLiAgRm9yIGV4YW1wbGUsIENvcnJlc3BvbmRpbmcgU291cmNlCmluY2x1ZGVzIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBzb3VyY2UgZmlsZXMgZm9yCnRoZSB3b3JrLCBhbmQgdGhlIHNvdXJjZSBjb2RlIGZvciBzaGFyZWQgbGlicmFyaWVzIGFuZCBkeW5hbWljYWxseQpsaW5rZWQgc3VicHJvZ3JhbXMgdGhhdCB0aGUgd29yayBpcyBzcGVjaWZpY2FsbHkgZGVzaWduZWQgdG8gcmVxdWlyZSwKc3VjaCBhcyBieSBpbnRpbWF0ZSBkYXRhIGNvbW11bmljYXRpb24gb3IgY29udHJvbCBmbG93IGJldHdlZW4gdGhvc2UKc3VicHJvZ3JhbXMgYW5kIG90aGVyIHBhcnRzIG9mIHRoZSB3b3JrLgoKICBUaGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgbmVlZCBub3QgaW5jbHVkZSBhbnl0aGluZyB0aGF0IHVzZXJzCmNhbiByZWdlbmVyYXRlIGF1dG9tYXRpY2FsbHkgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgQ29ycmVzcG9uZGluZwpTb3VyY2UuCgogIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBmb3IgYSB3b3JrIGluIHNvdXJjZSBjb2RlIGZvcm0gaXMgdGhhdApzYW1lIHdvcmsuCgogIDIuIEJhc2ljIFBlcm1pc3Npb25zLgoKICBBbGwgcmlnaHRzIGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlIGFyZSBncmFudGVkIGZvciB0aGUgdGVybSBvZgpjb3B5cmlnaHQgb24gdGhlIFByb2dyYW0sIGFuZCBhcmUgaXJyZXZvY2FibGUgcHJvdmlkZWQgdGhlIHN0YXRlZApjb25kaXRpb25zIGFyZSBtZXQuICBUaGlzIExpY2Vuc2UgZXhwbGljaXRseSBhZmZpcm1zIHlvdXIgdW5saW1pdGVkCnBlcm1pc3Npb24gdG8gcnVuIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0uICBUaGUgb3V0cHV0IGZyb20gcnVubmluZyBhCmNvdmVyZWQgd29yayBpcyBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZSBvbmx5IGlmIHRoZSBvdXRwdXQsIGdpdmVuIGl0cwpjb250ZW50LCBjb25zdGl0dXRlcyBhIGNvdmVyZWQgd29yay4gIFRoaXMgTGljZW5zZSBhY2tub3dsZWRnZXMgeW91cgpyaWdodHMgb2YgZmFpciB1c2Ugb3Igb3RoZXIgZXF1aXZhbGVudCwgYXMgcHJvdmlkZWQgYnkgY29weXJpZ2h0IGxhdy4KCiAgWW91IG1heSBtYWtlLCBydW4gYW5kIHByb3BhZ2F0ZSBjb3ZlcmVkIHdvcmtzIHRoYXQgeW91IGRvIG5vdApjb252ZXksIHdpdGhvdXQgY29uZGl0aW9ucyBzbyBsb25nIGFzIHlvdXIgbGljZW5zZSBvdGhlcndpc2UgcmVtYWlucwppbiBmb3JjZS4gIFlvdSBtYXkgY29udmV5IGNvdmVyZWQgd29ya3MgdG8gb3RoZXJzIGZvciB0aGUgc29sZSBwdXJwb3NlCm9mIGhhdmluZyB0aGVtIG1ha2UgbW9kaWZpY2F0aW9ucyBleGNsdXNpdmVseSBmb3IgeW91LCBvciBwcm92aWRlIHlvdQp3aXRoIGZhY2lsaXRpZXMgZm9yIHJ1bm5pbmcgdGhvc2Ugd29ya3MsIHByb3ZpZGVkIHRoYXQgeW91IGNvbXBseSB3aXRoCnRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UgaW4gY29udmV5aW5nIGFsbCBtYXRlcmlhbCBmb3Igd2hpY2ggeW91IGRvCm5vdCBjb250cm9sIGNvcHlyaWdodC4gIFRob3NlIHRodXMgbWFraW5nIG9yIHJ1bm5pbmcgdGhlIGNvdmVyZWQgd29ya3MKZm9yIHlvdSBtdXN0IGRvIHNvIGV4Y2x1c2l2ZWx5IG9uIHlvdXIgYmVoYWxmLCB1bmRlciB5b3VyIGRpcmVjdGlvbgphbmQgY29udHJvbCwgb24gdGVybXMgdGhhdCBwcm9oaWJpdCB0aGVtIGZyb20gbWFraW5nIGFueSBjb3BpZXMgb2YKeW91ciBjb3B5cmlnaHRlZCBtYXRlcmlhbCBvdXRzaWRlIHRoZWlyIHJlbGF0aW9uc2hpcCB3aXRoIHlvdS4KCiAgQ29udmV5aW5nIHVuZGVyIGFueSBvdGhlciBjaXJjdW1zdGFuY2VzIGlzIHBlcm1pdHRlZCBzb2xlbHkgdW5kZXIKdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGJlbG93LiAgU3VibGljZW5zaW5nIGlzIG5vdCBhbGxvd2VkOyBzZWN0aW9uIDEwCm1ha2VzIGl0IHVubmVjZXNzYXJ5LgoKICAzLiBQcm90ZWN0aW5nIFVzZXJzJyBMZWdhbCBSaWdodHMgRnJvbSBBbnRpLUNpcmN1bXZlbnRpb24gTGF3LgoKICBObyBjb3ZlcmVkIHdvcmsgc2hhbGwgYmUgZGVlbWVkIHBhcnQgb2YgYW4gZWZmZWN0aXZlIHRlY2hub2xvZ2ljYWwKbWVhc3VyZSB1bmRlciBhbnkgYXBwbGljYWJsZSBsYXcgZnVsZmlsbGluZyBvYmxpZ2F0aW9ucyB1bmRlciBhcnRpY2xlCjExIG9mIHRoZSBXSVBPIGNvcHlyaWdodCB0cmVhdHkgYWRvcHRlZCBvbiAyMCBEZWNlbWJlciAxOTk2LCBvcgpzaW1pbGFyIGxhd3MgcHJvaGliaXRpbmcgb3IgcmVzdHJpY3RpbmcgY2lyY3VtdmVudGlvbiBvZiBzdWNoCm1lYXN1cmVzLgoKICBXaGVuIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIHlvdSB3YWl2ZSBhbnkgbGVnYWwgcG93ZXIgdG8gZm9yYmlkCmNpcmN1bXZlbnRpb24gb2YgdGVjaG5vbG9naWNhbCBtZWFzdXJlcyB0byB0aGUgZXh0ZW50IHN1Y2ggY2lyY3VtdmVudGlvbgppcyBlZmZlY3RlZCBieSBleGVyY2lzaW5nIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2Ugd2l0aCByZXNwZWN0IHRvCnRoZSBjb3ZlcmVkIHdvcmssIGFuZCB5b3UgZGlzY2xhaW0gYW55IGludGVudGlvbiB0byBsaW1pdCBvcGVyYXRpb24gb3IKbW9kaWZpY2F0aW9uIG9mIHRoZSB3b3JrIGFzIGEgbWVhbnMgb2YgZW5mb3JjaW5nLCBhZ2FpbnN0IHRoZSB3b3JrJ3MKdXNlcnMsIHlvdXIgb3IgdGhpcmQgcGFydGllcycgbGVnYWwgcmlnaHRzIHRvIGZvcmJpZCBjaXJjdW12ZW50aW9uIG9mCnRlY2hub2xvZ2ljYWwgbWVhc3VyZXMuCgogIDQuIENvbnZleWluZyBWZXJiYXRpbSBDb3BpZXMuCgogIFlvdSBtYXkgY29udmV5IHZlcmJhdGltIGNvcGllcyBvZiB0aGUgUHJvZ3JhbSdzIHNvdXJjZSBjb2RlIGFzIHlvdQpyZWNlaXZlIGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdSBjb25zcGljdW91c2x5IGFuZAphcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2U7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIHN0YXRpbmcgdGhhdCB0aGlzIExpY2Vuc2UgYW5kIGFueQpub24tcGVybWlzc2l2ZSB0ZXJtcyBhZGRlZCBpbiBhY2NvcmQgd2l0aCBzZWN0aW9uIDcgYXBwbHkgdG8gdGhlIGNvZGU7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIG9mIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsgYW5kIGdpdmUgYWxsCnJlY2lwaWVudHMgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBQcm9ncmFtLgoKICBZb3UgbWF5IGNoYXJnZSBhbnkgcHJpY2Ugb3Igbm8gcHJpY2UgZm9yIGVhY2ggY29weSB0aGF0IHlvdSBjb252ZXksCmFuZCB5b3UgbWF5IG9mZmVyIHN1cHBvcnQgb3Igd2FycmFudHkgcHJvdGVjdGlvbiBmb3IgYSBmZWUuCgogIDUuIENvbnZleWluZyBNb2RpZmllZCBTb3VyY2UgVmVyc2lvbnMuCgogIFlvdSBtYXkgY29udmV5IGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSwgb3IgdGhlIG1vZGlmaWNhdGlvbnMgdG8KcHJvZHVjZSBpdCBmcm9tIHRoZSBQcm9ncmFtLCBpbiB0aGUgZm9ybSBvZiBzb3VyY2UgY29kZSB1bmRlciB0aGUKdGVybXMgb2Ygc2VjdGlvbiA0LCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgeW91IG1vZGlmaWVkCiAgICBpdCwgYW5kIGdpdmluZyBhIHJlbGV2YW50IGRhdGUuCgogICAgYikgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgaXQgaXMKICAgIHJlbGVhc2VkIHVuZGVyIHRoaXMgTGljZW5zZSBhbmQgYW55IGNvbmRpdGlvbnMgYWRkZWQgdW5kZXIgc2VjdGlvbgogICAgNy4gIFRoaXMgcmVxdWlyZW1lbnQgbW9kaWZpZXMgdGhlIHJlcXVpcmVtZW50IGluIHNlY3Rpb24gNCB0bwogICAgImtlZXAgaW50YWN0IGFsbCBub3RpY2VzIi4KCiAgICBjKSBZb3UgbXVzdCBsaWNlbnNlIHRoZSBlbnRpcmUgd29yaywgYXMgYSB3aG9sZSwgdW5kZXIgdGhpcwogICAgTGljZW5zZSB0byBhbnlvbmUgd2hvIGNvbWVzIGludG8gcG9zc2Vzc2lvbiBvZiBhIGNvcHkuICBUaGlzCiAgICBMaWNlbnNlIHdpbGwgdGhlcmVmb3JlIGFwcGx5LCBhbG9uZyB3aXRoIGFueSBhcHBsaWNhYmxlIHNlY3Rpb24gNwogICAgYWRkaXRpb25hbCB0ZXJtcywgdG8gdGhlIHdob2xlIG9mIHRoZSB3b3JrLCBhbmQgYWxsIGl0cyBwYXJ0cywKICAgIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZXkgYXJlIHBhY2thZ2VkLiAgVGhpcyBMaWNlbnNlIGdpdmVzIG5vCiAgICBwZXJtaXNzaW9uIHRvIGxpY2Vuc2UgdGhlIHdvcmsgaW4gYW55IG90aGVyIHdheSwgYnV0IGl0IGRvZXMgbm90CiAgICBpbnZhbGlkYXRlIHN1Y2ggcGVybWlzc2lvbiBpZiB5b3UgaGF2ZSBzZXBhcmF0ZWx5IHJlY2VpdmVkIGl0LgoKICAgIGQpIElmIHRoZSB3b3JrIGhhcyBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZXMsIGVhY2ggbXVzdCBkaXNwbGF5CiAgICBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzOyBob3dldmVyLCBpZiB0aGUgUHJvZ3JhbSBoYXMgaW50ZXJhY3RpdmUKICAgIGludGVyZmFjZXMgdGhhdCBkbyBub3QgZGlzcGxheSBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzLCB5b3VyCiAgICB3b3JrIG5lZWQgbm90IG1ha2UgdGhlbSBkbyBzby4KCiAgQSBjb21waWxhdGlvbiBvZiBhIGNvdmVyZWQgd29yayB3aXRoIG90aGVyIHNlcGFyYXRlIGFuZCBpbmRlcGVuZGVudAp3b3Jrcywgd2hpY2ggYXJlIG5vdCBieSB0aGVpciBuYXR1cmUgZXh0ZW5zaW9ucyBvZiB0aGUgY292ZXJlZCB3b3JrLAphbmQgd2hpY2ggYXJlIG5vdCBjb21iaW5lZCB3aXRoIGl0IHN1Y2ggYXMgdG8gZm9ybSBhIGxhcmdlciBwcm9ncmFtLAppbiBvciBvbiBhIHZvbHVtZSBvZiBhIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSwgaXMgY2FsbGVkIGFuCiJhZ2dyZWdhdGUiIGlmIHRoZSBjb21waWxhdGlvbiBhbmQgaXRzIHJlc3VsdGluZyBjb3B5cmlnaHQgYXJlIG5vdAp1c2VkIHRvIGxpbWl0IHRoZSBhY2Nlc3Mgb3IgbGVnYWwgcmlnaHRzIG9mIHRoZSBjb21waWxhdGlvbidzIHVzZXJzCmJleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsIHdvcmtzIHBlcm1pdC4gIEluY2x1c2lvbiBvZiBhIGNvdmVyZWQgd29yawppbiBhbiBhZ2dyZWdhdGUgZG9lcyBub3QgY2F1c2UgdGhpcyBMaWNlbnNlIHRvIGFwcGx5IHRvIHRoZSBvdGhlcgpwYXJ0cyBvZiB0aGUgYWdncmVnYXRlLgoKICA2LiBDb252ZXlpbmcgTm9uLVNvdXJjZSBGb3Jtcy4KCiAgWW91IG1heSBjb252ZXkgYSBjb3ZlcmVkIHdvcmsgaW4gb2JqZWN0IGNvZGUgZm9ybSB1bmRlciB0aGUgdGVybXMKb2Ygc2VjdGlvbnMgNCBhbmQgNSwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBjb252ZXkgdGhlCm1hY2hpbmUtcmVhZGFibGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSwKaW4gb25lIG9mIHRoZXNlIHdheXM6CgogICAgYSkgQ29udmV5IHRoZSBvYmplY3QgY29kZSBpbiwgb3IgZW1ib2RpZWQgaW4sIGEgcGh5c2ljYWwgcHJvZHVjdAogICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGZpeGVkIG9uIGEgZHVyYWJsZSBwaHlzaWNhbCBtZWRpdW0KICAgIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLgoKICAgIGIpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsIHByb2R1Y3QKICAgIChpbmNsdWRpbmcgYSBwaHlzaWNhbCBkaXN0cmlidXRpb24gbWVkaXVtKSwgYWNjb21wYW5pZWQgYnkgYQogICAgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlIHllYXJzIGFuZCB2YWxpZCBmb3IgYXMKICAgIGxvbmcgYXMgeW91IG9mZmVyIHNwYXJlIHBhcnRzIG9yIGN1c3RvbWVyIHN1cHBvcnQgZm9yIHRoYXQgcHJvZHVjdAogICAgbW9kZWwsIHRvIGdpdmUgYW55b25lIHdobyBwb3NzZXNzZXMgdGhlIG9iamVjdCBjb2RlIGVpdGhlciAoMSkgYQogICAgY29weSBvZiB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgZm9yIGFsbCB0aGUgc29mdHdhcmUgaW4gdGhlCiAgICBwcm9kdWN0IHRoYXQgaXMgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UsIG9uIGEgZHVyYWJsZSBwaHlzaWNhbAogICAgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLCBmb3IgYSBwcmljZSBubwogICAgbW9yZSB0aGFuIHlvdXIgcmVhc29uYWJsZSBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9ybWluZyB0aGlzCiAgICBjb252ZXlpbmcgb2Ygc291cmNlLCBvciAoMikgYWNjZXNzIHRvIGNvcHkgdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBmcm9tIGEgbmV0d29yayBzZXJ2ZXIgYXQgbm8gY2hhcmdlLgoKICAgIGMpIENvbnZleSBpbmRpdmlkdWFsIGNvcGllcyBvZiB0aGUgb2JqZWN0IGNvZGUgd2l0aCBhIGNvcHkgb2YgdGhlCiAgICB3cml0dGVuIG9mZmVyIHRvIHByb3ZpZGUgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhpcwogICAgYWx0ZXJuYXRpdmUgaXMgYWxsb3dlZCBvbmx5IG9jY2FzaW9uYWxseSBhbmQgbm9uY29tbWVyY2lhbGx5LCBhbmQKICAgIG9ubHkgaWYgeW91IHJlY2VpdmVkIHRoZSBvYmplY3QgY29kZSB3aXRoIHN1Y2ggYW4gb2ZmZXIsIGluIGFjY29yZAogICAgd2l0aCBzdWJzZWN0aW9uIDZiLgoKICAgIGQpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgYnkgb2ZmZXJpbmcgYWNjZXNzIGZyb20gYSBkZXNpZ25hdGVkCiAgICBwbGFjZSAoZ3JhdGlzIG9yIGZvciBhIGNoYXJnZSksIGFuZCBvZmZlciBlcXVpdmFsZW50IGFjY2VzcyB0byB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGluIHRoZSBzYW1lIHdheSB0aHJvdWdoIHRoZSBzYW1lIHBsYWNlIGF0IG5vCiAgICBmdXJ0aGVyIGNoYXJnZS4gIFlvdSBuZWVkIG5vdCByZXF1aXJlIHJlY2lwaWVudHMgdG8gY29weSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLiAgSWYgdGhlIHBsYWNlIHRvCiAgICBjb3B5IHRoZSBvYmplY3QgY29kZSBpcyBhIG5ldHdvcmsgc2VydmVyLCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UKICAgIG1heSBiZSBvbiBhIGRpZmZlcmVudCBzZXJ2ZXIgKG9wZXJhdGVkIGJ5IHlvdSBvciBhIHRoaXJkIHBhcnR5KQogICAgdGhhdCBzdXBwb3J0cyBlcXVpdmFsZW50IGNvcHlpbmcgZmFjaWxpdGllcywgcHJvdmlkZWQgeW91IG1haW50YWluCiAgICBjbGVhciBkaXJlY3Rpb25zIG5leHQgdG8gdGhlIG9iamVjdCBjb2RlIHNheWluZyB3aGVyZSB0byBmaW5kIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBSZWdhcmRsZXNzIG9mIHdoYXQgc2VydmVyIGhvc3RzIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UsIHlvdSByZW1haW4gb2JsaWdhdGVkIHRvIGVuc3VyZSB0aGF0IGl0IGlzCiAgICBhdmFpbGFibGUgZm9yIGFzIGxvbmcgYXMgbmVlZGVkIHRvIHNhdGlzZnkgdGhlc2UgcmVxdWlyZW1lbnRzLgoKICAgIGUpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgdXNpbmcgcGVlci10by1wZWVyIHRyYW5zbWlzc2lvbiwgcHJvdmlkZWQKICAgIHlvdSBpbmZvcm0gb3RoZXIgcGVlcnMgd2hlcmUgdGhlIG9iamVjdCBjb2RlIGFuZCBDb3JyZXNwb25kaW5nCiAgICBTb3VyY2Ugb2YgdGhlIHdvcmsgYXJlIGJlaW5nIG9mZmVyZWQgdG8gdGhlIGdlbmVyYWwgcHVibGljIGF0IG5vCiAgICBjaGFyZ2UgdW5kZXIgc3Vic2VjdGlvbiA2ZC4KCiAgQSBzZXBhcmFibGUgcG9ydGlvbiBvZiB0aGUgb2JqZWN0IGNvZGUsIHdob3NlIHNvdXJjZSBjb2RlIGlzIGV4Y2x1ZGVkCmZyb20gdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIGFzIGEgU3lzdGVtIExpYnJhcnksIG5lZWQgbm90IGJlCmluY2x1ZGVkIGluIGNvbnZleWluZyB0aGUgb2JqZWN0IGNvZGUgd29yay4KCiAgQSAiVXNlciBQcm9kdWN0IiBpcyBlaXRoZXIgKDEpIGEgImNvbnN1bWVyIHByb2R1Y3QiLCB3aGljaCBtZWFucyBhbnkKdGFuZ2libGUgcGVyc29uYWwgcHJvcGVydHkgd2hpY2ggaXMgbm9ybWFsbHkgdXNlZCBmb3IgcGVyc29uYWwsIGZhbWlseSwKb3IgaG91c2Vob2xkIHB1cnBvc2VzLCBvciAoMikgYW55dGhpbmcgZGVzaWduZWQgb3Igc29sZCBmb3IgaW5jb3Jwb3JhdGlvbgppbnRvIGEgZHdlbGxpbmcuICBJbiBkZXRlcm1pbmluZyB3aGV0aGVyIGEgcHJvZHVjdCBpcyBhIGNvbnN1bWVyIHByb2R1Y3QsCmRvdWJ0ZnVsIGNhc2VzIHNoYWxsIGJlIHJlc29sdmVkIGluIGZhdm9yIG9mIGNvdmVyYWdlLiAgRm9yIGEgcGFydGljdWxhcgpwcm9kdWN0IHJlY2VpdmVkIGJ5IGEgcGFydGljdWxhciB1c2VyLCAibm9ybWFsbHkgdXNlZCIgcmVmZXJzIHRvIGEKdHlwaWNhbCBvciBjb21tb24gdXNlIG9mIHRoYXQgY2xhc3Mgb2YgcHJvZHVjdCwgcmVnYXJkbGVzcyBvZiB0aGUgc3RhdHVzCm9mIHRoZSBwYXJ0aWN1bGFyIHVzZXIgb3Igb2YgdGhlIHdheSBpbiB3aGljaCB0aGUgcGFydGljdWxhciB1c2VyCmFjdHVhbGx5IHVzZXMsIG9yIGV4cGVjdHMgb3IgaXMgZXhwZWN0ZWQgdG8gdXNlLCB0aGUgcHJvZHVjdC4gIEEgcHJvZHVjdAppcyBhIGNvbnN1bWVyIHByb2R1Y3QgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBwcm9kdWN0IGhhcyBzdWJzdGFudGlhbApjb21tZXJjaWFsLCBpbmR1c3RyaWFsIG9yIG5vbi1jb25zdW1lciB1c2VzLCB1bmxlc3Mgc3VjaCB1c2VzIHJlcHJlc2VudAp0aGUgb25seSBzaWduaWZpY2FudCBtb2RlIG9mIHVzZSBvZiB0aGUgcHJvZHVjdC4KCiAgIkluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiIgZm9yIGEgVXNlciBQcm9kdWN0IG1lYW5zIGFueSBtZXRob2RzLApwcm9jZWR1cmVzLCBhdXRob3JpemF0aW9uIGtleXMsIG9yIG90aGVyIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIGluc3RhbGwKYW5kIGV4ZWN1dGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YgYSBjb3ZlcmVkIHdvcmsgaW4gdGhhdCBVc2VyIFByb2R1Y3QgZnJvbQphIG1vZGlmaWVkIHZlcnNpb24gb2YgaXRzIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhlIGluZm9ybWF0aW9uIG11c3QKc3VmZmljZSB0byBlbnN1cmUgdGhhdCB0aGUgY29udGludWVkIGZ1bmN0aW9uaW5nIG9mIHRoZSBtb2RpZmllZCBvYmplY3QKY29kZSBpcyBpbiBubyBjYXNlIHByZXZlbnRlZCBvciBpbnRlcmZlcmVkIHdpdGggc29sZWx5IGJlY2F1c2UKbW9kaWZpY2F0aW9uIGhhcyBiZWVuIG1hZGUuCgogIElmIHlvdSBjb252ZXkgYW4gb2JqZWN0IGNvZGUgd29yayB1bmRlciB0aGlzIHNlY3Rpb24gaW4sIG9yIHdpdGgsIG9yCnNwZWNpZmljYWxseSBmb3IgdXNlIGluLCBhIFVzZXIgUHJvZHVjdCwgYW5kIHRoZSBjb252ZXlpbmcgb2NjdXJzIGFzCnBhcnQgb2YgYSB0cmFuc2FjdGlvbiBpbiB3aGljaCB0aGUgcmlnaHQgb2YgcG9zc2Vzc2lvbiBhbmQgdXNlIG9mIHRoZQpVc2VyIFByb2R1Y3QgaXMgdHJhbnNmZXJyZWQgdG8gdGhlIHJlY2lwaWVudCBpbiBwZXJwZXR1aXR5IG9yIGZvciBhCmZpeGVkIHRlcm0gKHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSB0cmFuc2FjdGlvbiBpcyBjaGFyYWN0ZXJpemVkKSwgdGhlCkNvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkIHVuZGVyIHRoaXMgc2VjdGlvbiBtdXN0IGJlIGFjY29tcGFuaWVkCmJ5IHRoZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24uICBCdXQgdGhpcyByZXF1aXJlbWVudCBkb2VzIG5vdCBhcHBseQppZiBuZWl0aGVyIHlvdSBub3IgYW55IHRoaXJkIHBhcnR5IHJldGFpbnMgdGhlIGFiaWxpdHkgdG8gaW5zdGFsbAptb2RpZmllZCBvYmplY3QgY29kZSBvbiB0aGUgVXNlciBQcm9kdWN0IChmb3IgZXhhbXBsZSwgdGhlIHdvcmsgaGFzCmJlZW4gaW5zdGFsbGVkIGluIFJPTSkuCgogIFRoZSByZXF1aXJlbWVudCB0byBwcm92aWRlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiBkb2VzIG5vdCBpbmNsdWRlIGEKcmVxdWlyZW1lbnQgdG8gY29udGludWUgdG8gcHJvdmlkZSBzdXBwb3J0IHNlcnZpY2UsIHdhcnJhbnR5LCBvciB1cGRhdGVzCmZvciBhIHdvcmsgdGhhdCBoYXMgYmVlbiBtb2RpZmllZCBvciBpbnN0YWxsZWQgYnkgdGhlIHJlY2lwaWVudCwgb3IgZm9yCnRoZSBVc2VyIFByb2R1Y3QgaW4gd2hpY2ggaXQgaGFzIGJlZW4gbW9kaWZpZWQgb3IgaW5zdGFsbGVkLiAgQWNjZXNzIHRvIGEKbmV0d29yayBtYXkgYmUgZGVuaWVkIHdoZW4gdGhlIG1vZGlmaWNhdGlvbiBpdHNlbGYgbWF0ZXJpYWxseSBhbmQKYWR2ZXJzZWx5IGFmZmVjdHMgdGhlIG9wZXJhdGlvbiBvZiB0aGUgbmV0d29yayBvciB2aW9sYXRlcyB0aGUgcnVsZXMgYW5kCnByb3RvY29scyBmb3IgY29tbXVuaWNhdGlvbiBhY3Jvc3MgdGhlIG5ldHdvcmsuCgogIENvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkLCBhbmQgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uIHByb3ZpZGVkLAppbiBhY2NvcmQgd2l0aCB0aGlzIHNlY3Rpb24gbXVzdCBiZSBpbiBhIGZvcm1hdCB0aGF0IGlzIHB1YmxpY2x5CmRvY3VtZW50ZWQgKGFuZCB3aXRoIGFuIGltcGxlbWVudGF0aW9uIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluCnNvdXJjZSBjb2RlIGZvcm0pLCBhbmQgbXVzdCByZXF1aXJlIG5vIHNwZWNpYWwgcGFzc3dvcmQgb3Iga2V5IGZvcgp1bnBhY2tpbmcsIHJlYWRpbmcgb3IgY29weWluZy4KCiAgNy4gQWRkaXRpb25hbCBUZXJtcy4KCiAgIkFkZGl0aW9uYWwgcGVybWlzc2lvbnMiIGFyZSB0ZXJtcyB0aGF0IHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMKTGljZW5zZSBieSBtYWtpbmcgZXhjZXB0aW9ucyBmcm9tIG9uZSBvciBtb3JlIG9mIGl0cyBjb25kaXRpb25zLgpBZGRpdGlvbmFsIHBlcm1pc3Npb25zIHRoYXQgYXJlIGFwcGxpY2FibGUgdG8gdGhlIGVudGlyZSBQcm9ncmFtIHNoYWxsCmJlIHRyZWF0ZWQgYXMgdGhvdWdoIHRoZXkgd2VyZSBpbmNsdWRlZCBpbiB0aGlzIExpY2Vuc2UsIHRvIHRoZSBleHRlbnQKdGhhdCB0aGV5IGFyZSB2YWxpZCB1bmRlciBhcHBsaWNhYmxlIGxhdy4gIElmIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMKYXBwbHkgb25seSB0byBwYXJ0IG9mIHRoZSBQcm9ncmFtLCB0aGF0IHBhcnQgbWF5IGJlIHVzZWQgc2VwYXJhdGVseQp1bmRlciB0aG9zZSBwZXJtaXNzaW9ucywgYnV0IHRoZSBlbnRpcmUgUHJvZ3JhbSByZW1haW5zIGdvdmVybmVkIGJ5CnRoaXMgTGljZW5zZSB3aXRob3V0IHJlZ2FyZCB0byB0aGUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucy4KCiAgV2hlbiB5b3UgY29udmV5IGEgY29weSBvZiBhIGNvdmVyZWQgd29yaywgeW91IG1heSBhdCB5b3VyIG9wdGlvbgpyZW1vdmUgYW55IGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgZnJvbSB0aGF0IGNvcHksIG9yIGZyb20gYW55IHBhcnQgb2YKaXQuICAoQWRkaXRpb25hbCBwZXJtaXNzaW9ucyBtYXkgYmUgd3JpdHRlbiB0byByZXF1aXJlIHRoZWlyIG93bgpyZW1vdmFsIGluIGNlcnRhaW4gY2FzZXMgd2hlbiB5b3UgbW9kaWZ5IHRoZSB3b3JrLikgIFlvdSBtYXkgcGxhY2UKYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBvbiBtYXRlcmlhbCwgYWRkZWQgYnkgeW91IHRvIGEgY292ZXJlZCB3b3JrLApmb3Igd2hpY2ggeW91IGhhdmUgb3IgY2FuIGdpdmUgYXBwcm9wcmlhdGUgY29weXJpZ2h0IHBlcm1pc3Npb24uCgogIE5vdHdpdGhzdGFuZGluZyBhbnkgb3RoZXIgcHJvdmlzaW9uIG9mIHRoaXMgTGljZW5zZSwgZm9yIG1hdGVyaWFsIHlvdQphZGQgdG8gYSBjb3ZlcmVkIHdvcmssIHlvdSBtYXkgKGlmIGF1dGhvcml6ZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXJzIG9mCnRoYXQgbWF0ZXJpYWwpIHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSB3aXRoIHRlcm1zOgoKICAgIGEpIERpc2NsYWltaW5nIHdhcnJhbnR5IG9yIGxpbWl0aW5nIGxpYWJpbGl0eSBkaWZmZXJlbnRseSBmcm9tIHRoZQogICAgdGVybXMgb2Ygc2VjdGlvbnMgMTUgYW5kIDE2IG9mIHRoaXMgTGljZW5zZTsgb3IKCiAgICBiKSBSZXF1aXJpbmcgcHJlc2VydmF0aW9uIG9mIHNwZWNpZmllZCByZWFzb25hYmxlIGxlZ2FsIG5vdGljZXMgb3IKICAgIGF1dGhvciBhdHRyaWJ1dGlvbnMgaW4gdGhhdCBtYXRlcmlhbCBvciBpbiB0aGUgQXBwcm9wcmlhdGUgTGVnYWwKICAgIE5vdGljZXMgZGlzcGxheWVkIGJ5IHdvcmtzIGNvbnRhaW5pbmcgaXQ7IG9yCgogICAgYykgUHJvaGliaXRpbmcgbWlzcmVwcmVzZW50YXRpb24gb2YgdGhlIG9yaWdpbiBvZiB0aGF0IG1hdGVyaWFsLCBvcgogICAgcmVxdWlyaW5nIHRoYXQgbW9kaWZpZWQgdmVyc2lvbnMgb2Ygc3VjaCBtYXRlcmlhbCBiZSBtYXJrZWQgaW4KICAgIHJlYXNvbmFibGUgd2F5cyBhcyBkaWZmZXJlbnQgZnJvbSB0aGUgb3JpZ2luYWwgdmVyc2lvbjsgb3IKCiAgICBkKSBMaW1pdGluZyB0aGUgdXNlIGZvciBwdWJsaWNpdHkgcHVycG9zZXMgb2YgbmFtZXMgb2YgbGljZW5zb3JzIG9yCiAgICBhdXRob3JzIG9mIHRoZSBtYXRlcmlhbDsgb3IKCiAgICBlKSBEZWNsaW5pbmcgdG8gZ3JhbnQgcmlnaHRzIHVuZGVyIHRyYWRlbWFyayBsYXcgZm9yIHVzZSBvZiBzb21lCiAgICB0cmFkZSBuYW1lcywgdHJhZGVtYXJrcywgb3Igc2VydmljZSBtYXJrczsgb3IKCiAgICBmKSBSZXF1aXJpbmcgaW5kZW1uaWZpY2F0aW9uIG9mIGxpY2Vuc29ycyBhbmQgYXV0aG9ycyBvZiB0aGF0CiAgICBtYXRlcmlhbCBieSBhbnlvbmUgd2hvIGNvbnZleXMgdGhlIG1hdGVyaWFsIChvciBtb2RpZmllZCB2ZXJzaW9ucyBvZgogICAgaXQpIHdpdGggY29udHJhY3R1YWwgYXNzdW1wdGlvbnMgb2YgbGlhYmlsaXR5IHRvIHRoZSByZWNpcGllbnQsIGZvcgogICAgYW55IGxpYWJpbGl0eSB0aGF0IHRoZXNlIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIGRpcmVjdGx5IGltcG9zZSBvbgogICAgdGhvc2UgbGljZW5zb3JzIGFuZCBhdXRob3JzLgoKICBBbGwgb3RoZXIgbm9uLXBlcm1pc3NpdmUgYWRkaXRpb25hbCB0ZXJtcyBhcmUgY29uc2lkZXJlZCAiZnVydGhlcgpyZXN0cmljdGlvbnMiIHdpdGhpbiB0aGUgbWVhbmluZyBvZiBzZWN0aW9uIDEwLiAgSWYgdGhlIFByb2dyYW0gYXMgeW91CnJlY2VpdmVkIGl0LCBvciBhbnkgcGFydCBvZiBpdCwgY29udGFpbnMgYSBub3RpY2Ugc3RhdGluZyB0aGF0IGl0IGlzCmdvdmVybmVkIGJ5IHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIGEgdGVybSB0aGF0IGlzIGEgZnVydGhlcgpyZXN0cmljdGlvbiwgeW91IG1heSByZW1vdmUgdGhhdCB0ZXJtLiAgSWYgYSBsaWNlbnNlIGRvY3VtZW50IGNvbnRhaW5zCmEgZnVydGhlciByZXN0cmljdGlvbiBidXQgcGVybWl0cyByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcgdW5kZXIgdGhpcwpMaWNlbnNlLCB5b3UgbWF5IGFkZCB0byBhIGNvdmVyZWQgd29yayBtYXRlcmlhbCBnb3Zlcm5lZCBieSB0aGUgdGVybXMKb2YgdGhhdCBsaWNlbnNlIGRvY3VtZW50LCBwcm92aWRlZCB0aGF0IHRoZSBmdXJ0aGVyIHJlc3RyaWN0aW9uIGRvZXMKbm90IHN1cnZpdmUgc3VjaCByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcuCgogIElmIHlvdSBhZGQgdGVybXMgdG8gYSBjb3ZlcmVkIHdvcmsgaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uLCB5b3UKbXVzdCBwbGFjZSwgaW4gdGhlIHJlbGV2YW50IHNvdXJjZSBmaWxlcywgYSBzdGF0ZW1lbnQgb2YgdGhlCmFkZGl0aW9uYWwgdGVybXMgdGhhdCBhcHBseSB0byB0aG9zZSBmaWxlcywgb3IgYSBub3RpY2UgaW5kaWNhdGluZwp3aGVyZSB0byBmaW5kIHRoZSBhcHBsaWNhYmxlIHRlcm1zLgoKICBBZGRpdGlvbmFsIHRlcm1zLCBwZXJtaXNzaXZlIG9yIG5vbi1wZXJtaXNzaXZlLCBtYXkgYmUgc3RhdGVkIGluIHRoZQpmb3JtIG9mIGEgc2VwYXJhdGVseSB3cml0dGVuIGxpY2Vuc2UsIG9yIHN0YXRlZCBhcyBleGNlcHRpb25zOwp0aGUgYWJvdmUgcmVxdWlyZW1lbnRzIGFwcGx5IGVpdGhlciB3YXkuCgogIDguIFRlcm1pbmF0aW9uLgoKICBZb3UgbWF5IG5vdCBwcm9wYWdhdGUgb3IgbW9kaWZ5IGEgY292ZXJlZCB3b3JrIGV4Y2VwdCBhcyBleHByZXNzbHkKcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQgb3RoZXJ3aXNlIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgaXQgaXMgdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIKdGhpcyBMaWNlbnNlIChpbmNsdWRpbmcgYW55IHBhdGVudCBsaWNlbnNlcyBncmFudGVkIHVuZGVyIHRoZSB0aGlyZApwYXJhZ3JhcGggb2Ygc2VjdGlvbiAxMSkuCgogIEhvd2V2ZXIsIGlmIHlvdSBjZWFzZSBhbGwgdmlvbGF0aW9uIG9mIHRoaXMgTGljZW5zZSwgdGhlbiB5b3VyCmxpY2Vuc2UgZnJvbSBhIHBhcnRpY3VsYXIgY29weXJpZ2h0IGhvbGRlciBpcyByZWluc3RhdGVkIChhKQpwcm92aXNpb25hbGx5LCB1bmxlc3MgYW5kIHVudGlsIHRoZSBjb3B5cmlnaHQgaG9sZGVyIGV4cGxpY2l0bHkgYW5kCmZpbmFsbHkgdGVybWluYXRlcyB5b3VyIGxpY2Vuc2UsIGFuZCAoYikgcGVybWFuZW50bHksIGlmIHRoZSBjb3B5cmlnaHQKaG9sZGVyIGZhaWxzIHRvIG5vdGlmeSB5b3Ugb2YgdGhlIHZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMKcHJpb3IgdG8gNjAgZGF5cyBhZnRlciB0aGUgY2Vzc2F0aW9uLgoKICBNb3Jlb3ZlciwgeW91ciBsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMKcmVpbnN0YXRlZCBwZXJtYW5lbnRseSBpZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3RpZmllcyB5b3Ugb2YgdGhlCnZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMsIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgeW91IGhhdmUKcmVjZWl2ZWQgbm90aWNlIG9mIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UgKGZvciBhbnkgd29yaykgZnJvbSB0aGF0CmNvcHlyaWdodCBob2xkZXIsIGFuZCB5b3UgY3VyZSB0aGUgdmlvbGF0aW9uIHByaW9yIHRvIDMwIGRheXMgYWZ0ZXIKeW91ciByZWNlaXB0IG9mIHRoZSBub3RpY2UuCgogIFRlcm1pbmF0aW9uIG9mIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgc2VjdGlvbiBkb2VzIG5vdCB0ZXJtaW5hdGUgdGhlCmxpY2Vuc2VzIG9mIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzIG9yIHJpZ2h0cyBmcm9tIHlvdSB1bmRlcgp0aGlzIExpY2Vuc2UuICBJZiB5b3VyIHJpZ2h0cyBoYXZlIGJlZW4gdGVybWluYXRlZCBhbmQgbm90IHBlcm1hbmVudGx5CnJlaW5zdGF0ZWQsIHlvdSBkbyBub3QgcXVhbGlmeSB0byByZWNlaXZlIG5ldyBsaWNlbnNlcyBmb3IgdGhlIHNhbWUKbWF0ZXJpYWwgdW5kZXIgc2VjdGlvbiAxMC4KCiAgOS4gQWNjZXB0YW5jZSBOb3QgUmVxdWlyZWQgZm9yIEhhdmluZyBDb3BpZXMuCgogIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UgaW4gb3JkZXIgdG8gcmVjZWl2ZSBvcgpydW4gYSBjb3B5IG9mIHRoZSBQcm9ncmFtLiAgQW5jaWxsYXJ5IHByb3BhZ2F0aW9uIG9mIGEgY292ZXJlZCB3b3JrCm9jY3VycmluZyBzb2xlbHkgYXMgYSBjb25zZXF1ZW5jZSBvZiB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uCnRvIHJlY2VpdmUgYSBjb3B5IGxpa2V3aXNlIGRvZXMgbm90IHJlcXVpcmUgYWNjZXB0YW5jZS4gIEhvd2V2ZXIsCm5vdGhpbmcgb3RoZXIgdGhhbiB0aGlzIExpY2Vuc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgYW55IGNvdmVyZWQgd29yay4gIFRoZXNlIGFjdGlvbnMgaW5mcmluZ2UgY29weXJpZ2h0IGlmIHlvdSBkbwpub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkgbW9kaWZ5aW5nIG9yIHByb3BhZ2F0aW5nIGEKY292ZXJlZCB3b3JrLCB5b3UgaW5kaWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBzby4KCiAgMTAuIEF1dG9tYXRpYyBMaWNlbnNpbmcgb2YgRG93bnN0cmVhbSBSZWNpcGllbnRzLgoKICBFYWNoIHRpbWUgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5CnJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZSBvcmlnaW5hbCBsaWNlbnNvcnMsIHRvIHJ1biwgbW9kaWZ5IGFuZApwcm9wYWdhdGUgdGhhdCB3b3JrLCBzdWJqZWN0IHRvIHRoaXMgTGljZW5zZS4gIFlvdSBhcmUgbm90IHJlc3BvbnNpYmxlCmZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHdpdGggdGhpcyBMaWNlbnNlLgoKICBBbiAiZW50aXR5IHRyYW5zYWN0aW9uIiBpcyBhIHRyYW5zYWN0aW9uIHRyYW5zZmVycmluZyBjb250cm9sIG9mIGFuCm9yZ2FuaXphdGlvbiwgb3Igc3Vic3RhbnRpYWxseSBhbGwgYXNzZXRzIG9mIG9uZSwgb3Igc3ViZGl2aWRpbmcgYW4Kb3JnYW5pemF0aW9uLCBvciBtZXJnaW5nIG9yZ2FuaXphdGlvbnMuICBJZiBwcm9wYWdhdGlvbiBvZiBhIGNvdmVyZWQKd29yayByZXN1bHRzIGZyb20gYW4gZW50aXR5IHRyYW5zYWN0aW9uLCBlYWNoIHBhcnR5IHRvIHRoYXQKdHJhbnNhY3Rpb24gd2hvIHJlY2VpdmVzIGEgY29weSBvZiB0aGUgd29yayBhbHNvIHJlY2VpdmVzIHdoYXRldmVyCmxpY2Vuc2VzIHRvIHRoZSB3b3JrIHRoZSBwYXJ0eSdzIHByZWRlY2Vzc29yIGluIGludGVyZXN0IGhhZCBvciBjb3VsZApnaXZlIHVuZGVyIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGgsIHBsdXMgYSByaWdodCB0byBwb3NzZXNzaW9uIG9mIHRoZQpDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBmcm9tIHRoZSBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCwgaWYKdGhlIHByZWRlY2Vzc29yIGhhcyBpdCBvciBjYW4gZ2V0IGl0IHdpdGggcmVhc29uYWJsZSBlZmZvcnRzLgoKICBZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIgcmVzdHJpY3Rpb25zIG9uIHRoZSBleGVyY2lzZSBvZiB0aGUKcmlnaHRzIGdyYW50ZWQgb3IgYWZmaXJtZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgRm9yIGV4YW1wbGUsIHlvdSBtYXkKbm90IGltcG9zZSBhIGxpY2Vuc2UgZmVlLCByb3lhbHR5LCBvciBvdGhlciBjaGFyZ2UgZm9yIGV4ZXJjaXNlIG9mCnJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIHlvdSBtYXkgbm90IGluaXRpYXRlIGxpdGlnYXRpb24KKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQKYW55IHBhdGVudCBjbGFpbSBpcyBpbmZyaW5nZWQgYnkgbWFraW5nLCB1c2luZywgc2VsbGluZywgb2ZmZXJpbmcgZm9yCnNhbGUsIG9yIGltcG9ydGluZyB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbiBvZiBpdC4KCiAgMTEuIFBhdGVudHMuCgogIEEgImNvbnRyaWJ1dG9yIiBpcyBhIGNvcHlyaWdodCBob2xkZXIgd2hvIGF1dGhvcml6ZXMgdXNlIHVuZGVyIHRoaXMKTGljZW5zZSBvZiB0aGUgUHJvZ3JhbSBvciBhIHdvcmsgb24gd2hpY2ggdGhlIFByb2dyYW0gaXMgYmFzZWQuICBUaGUKd29yayB0aHVzIGxpY2Vuc2VkIGlzIGNhbGxlZCB0aGUgY29udHJpYnV0b3IncyAiY29udHJpYnV0b3IgdmVyc2lvbiIuCgogIEEgY29udHJpYnV0b3IncyAiZXNzZW50aWFsIHBhdGVudCBjbGFpbXMiIGFyZSBhbGwgcGF0ZW50IGNsYWltcwpvd25lZCBvciBjb250cm9sbGVkIGJ5IHRoZSBjb250cmlidXRvciwgd2hldGhlciBhbHJlYWR5IGFjcXVpcmVkIG9yCmhlcmVhZnRlciBhY3F1aXJlZCwgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgYnkgc29tZSBtYW5uZXIsIHBlcm1pdHRlZApieSB0aGlzIExpY2Vuc2UsIG9mIG1ha2luZywgdXNpbmcsIG9yIHNlbGxpbmcgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24sCmJ1dCBkbyBub3QgaW5jbHVkZSBjbGFpbXMgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgb25seSBhcyBhCmNvbnNlcXVlbmNlIG9mIGZ1cnRoZXIgbW9kaWZpY2F0aW9uIG9mIHRoZSBjb250cmlidXRvciB2ZXJzaW9uLiAgRm9yCnB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgImNvbnRyb2wiIGluY2x1ZGVzIHRoZSByaWdodCB0byBncmFudApwYXRlbnQgc3VibGljZW5zZXMgaW4gYSBtYW5uZXIgY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YKdGhpcyBMaWNlbnNlLgoKICBFYWNoIGNvbnRyaWJ1dG9yIGdyYW50cyB5b3UgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZQpwYXRlbnQgbGljZW5zZSB1bmRlciB0aGUgY29udHJpYnV0b3IncyBlc3NlbnRpYWwgcGF0ZW50IGNsYWltcywgdG8KbWFrZSwgdXNlLCBzZWxsLCBvZmZlciBmb3Igc2FsZSwgaW1wb3J0IGFuZCBvdGhlcndpc2UgcnVuLCBtb2RpZnkgYW5kCnByb3BhZ2F0ZSB0aGUgY29udGVudHMgb2YgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24uCgogIEluIHRoZSBmb2xsb3dpbmcgdGhyZWUgcGFyYWdyYXBocywgYSAicGF0ZW50IGxpY2Vuc2UiIGlzIGFueSBleHByZXNzCmFncmVlbWVudCBvciBjb21taXRtZW50LCBob3dldmVyIGRlbm9taW5hdGVkLCBub3QgdG8gZW5mb3JjZSBhIHBhdGVudAooc3VjaCBhcyBhbiBleHByZXNzIHBlcm1pc3Npb24gdG8gcHJhY3RpY2UgYSBwYXRlbnQgb3IgY292ZW5hbnQgbm90IHRvCnN1ZSBmb3IgcGF0ZW50IGluZnJpbmdlbWVudCkuICBUbyAiZ3JhbnQiIHN1Y2ggYSBwYXRlbnQgbGljZW5zZSB0byBhCnBhcnR5IG1lYW5zIHRvIG1ha2Ugc3VjaCBhbiBhZ3JlZW1lbnQgb3IgY29tbWl0bWVudCBub3QgdG8gZW5mb3JjZSBhCnBhdGVudCBhZ2FpbnN0IHRoZSBwYXJ0eS4KCiAgSWYgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywga25vd2luZ2x5IHJlbHlpbmcgb24gYSBwYXRlbnQgbGljZW5zZSwKYW5kIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBpcyBub3QgYXZhaWxhYmxlIGZvciBhbnlvbmUKdG8gY29weSwgZnJlZSBvZiBjaGFyZ2UgYW5kIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UsIHRocm91Z2ggYQpwdWJsaWNseSBhdmFpbGFibGUgbmV0d29yayBzZXJ2ZXIgb3Igb3RoZXIgcmVhZGlseSBhY2Nlc3NpYmxlIG1lYW5zLAp0aGVuIHlvdSBtdXN0IGVpdGhlciAoMSkgY2F1c2UgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIHRvIGJlIHNvCmF2YWlsYWJsZSwgb3IgKDIpIGFycmFuZ2UgdG8gZGVwcml2ZSB5b3Vyc2VsZiBvZiB0aGUgYmVuZWZpdCBvZiB0aGUKcGF0ZW50IGxpY2Vuc2UgZm9yIHRoaXMgcGFydGljdWxhciB3b3JrLCBvciAoMykgYXJyYW5nZSwgaW4gYSBtYW5uZXIKY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBMaWNlbnNlLCB0byBleHRlbmQgdGhlIHBhdGVudApsaWNlbnNlIHRvIGRvd25zdHJlYW0gcmVjaXBpZW50cy4gICJLbm93aW5nbHkgcmVseWluZyIgbWVhbnMgeW91IGhhdmUKYWN0dWFsIGtub3dsZWRnZSB0aGF0LCBidXQgZm9yIHRoZSBwYXRlbnQgbGljZW5zZSwgeW91ciBjb252ZXlpbmcgdGhlCmNvdmVyZWQgd29yayBpbiBhIGNvdW50cnksIG9yIHlvdXIgcmVjaXBpZW50J3MgdXNlIG9mIHRoZSBjb3ZlcmVkIHdvcmsKaW4gYSBjb3VudHJ5LCB3b3VsZCBpbmZyaW5nZSBvbmUgb3IgbW9yZSBpZGVudGlmaWFibGUgcGF0ZW50cyBpbiB0aGF0CmNvdW50cnkgdGhhdCB5b3UgaGF2ZSByZWFzb24gdG8gYmVsaWV2ZSBhcmUgdmFsaWQuCgogIElmLCBwdXJzdWFudCB0byBvciBpbiBjb25uZWN0aW9uIHdpdGggYSBzaW5nbGUgdHJhbnNhY3Rpb24gb3IKYXJyYW5nZW1lbnQsIHlvdSBjb252ZXksIG9yIHByb3BhZ2F0ZSBieSBwcm9jdXJpbmcgY29udmV5YW5jZSBvZiwgYQpjb3ZlcmVkIHdvcmssIGFuZCBncmFudCBhIHBhdGVudCBsaWNlbnNlIHRvIHNvbWUgb2YgdGhlIHBhcnRpZXMKcmVjZWl2aW5nIHRoZSBjb3ZlcmVkIHdvcmsgYXV0aG9yaXppbmcgdGhlbSB0byB1c2UsIHByb3BhZ2F0ZSwgbW9kaWZ5Cm9yIGNvbnZleSBhIHNwZWNpZmljIGNvcHkgb2YgdGhlIGNvdmVyZWQgd29yaywgdGhlbiB0aGUgcGF0ZW50IGxpY2Vuc2UKeW91IGdyYW50IGlzIGF1dG9tYXRpY2FsbHkgZXh0ZW5kZWQgdG8gYWxsIHJlY2lwaWVudHMgb2YgdGhlIGNvdmVyZWQKd29yayBhbmQgd29ya3MgYmFzZWQgb24gaXQuCgogIEEgcGF0ZW50IGxpY2Vuc2UgaXMgImRpc2NyaW1pbmF0b3J5IiBpZiBpdCBkb2VzIG5vdCBpbmNsdWRlIHdpdGhpbgp0aGUgc2NvcGUgb2YgaXRzIGNvdmVyYWdlLCBwcm9oaWJpdHMgdGhlIGV4ZXJjaXNlIG9mLCBvciBpcwpjb25kaXRpb25lZCBvbiB0aGUgbm9uLWV4ZXJjaXNlIG9mIG9uZSBvciBtb3JlIG9mIHRoZSByaWdodHMgdGhhdCBhcmUKc3BlY2lmaWNhbGx5IGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgWW91IG1heSBub3QgY29udmV5IGEgY292ZXJlZAp3b3JrIGlmIHlvdSBhcmUgYSBwYXJ0eSB0byBhbiBhcnJhbmdlbWVudCB3aXRoIGEgdGhpcmQgcGFydHkgdGhhdCBpcwppbiB0aGUgYnVzaW5lc3Mgb2YgZGlzdHJpYnV0aW5nIHNvZnR3YXJlLCB1bmRlciB3aGljaCB5b3UgbWFrZSBwYXltZW50CnRvIHRoZSB0aGlyZCBwYXJ0eSBiYXNlZCBvbiB0aGUgZXh0ZW50IG9mIHlvdXIgYWN0aXZpdHkgb2YgY29udmV5aW5nCnRoZSB3b3JrLCBhbmQgdW5kZXIgd2hpY2ggdGhlIHRoaXJkIHBhcnR5IGdyYW50cywgdG8gYW55IG9mIHRoZQpwYXJ0aWVzIHdobyB3b3VsZCByZWNlaXZlIHRoZSBjb3ZlcmVkIHdvcmsgZnJvbSB5b3UsIGEgZGlzY3JpbWluYXRvcnkKcGF0ZW50IGxpY2Vuc2UgKGEpIGluIGNvbm5lY3Rpb24gd2l0aCBjb3BpZXMgb2YgdGhlIGNvdmVyZWQgd29yawpjb252ZXllZCBieSB5b3UgKG9yIGNvcGllcyBtYWRlIGZyb20gdGhvc2UgY29waWVzKSwgb3IgKGIpIHByaW1hcmlseQpmb3IgYW5kIGluIGNvbm5lY3Rpb24gd2l0aCBzcGVjaWZpYyBwcm9kdWN0cyBvciBjb21waWxhdGlvbnMgdGhhdApjb250YWluIHRoZSBjb3ZlcmVkIHdvcmssIHVubGVzcyB5b3UgZW50ZXJlZCBpbnRvIHRoYXQgYXJyYW5nZW1lbnQsCm9yIHRoYXQgcGF0ZW50IGxpY2Vuc2Ugd2FzIGdyYW50ZWQsIHByaW9yIHRvIDI4IE1hcmNoIDIwMDcuCgogIE5vdGhpbmcgaW4gdGhpcyBMaWNlbnNlIHNoYWxsIGJlIGNvbnN0cnVlZCBhcyBleGNsdWRpbmcgb3IgbGltaXRpbmcKYW55IGltcGxpZWQgbGljZW5zZSBvciBvdGhlciBkZWZlbnNlcyB0byBpbmZyaW5nZW1lbnQgdGhhdCBtYXkKb3RoZXJ3aXNlIGJlIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYXBwbGljYWJsZSBwYXRlbnQgbGF3LgoKICAxMi4gTm8gU3VycmVuZGVyIG9mIE90aGVycycgRnJlZWRvbS4KCiAgSWYgY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcgpvdGhlcndpc2UpIHRoYXQgY29udHJhZGljdCB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UsIHRoZXkgZG8gbm90CmV4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90IGNvbnZleSBhCmNvdmVyZWQgd29yayBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcwpMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91IG1heQpub3QgY29udmV5IGl0IGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiB5b3UgYWdyZWUgdG8gdGVybXMgdGhhdCBvYmxpZ2F0ZSB5b3UKdG8gY29sbGVjdCBhIHJveWFsdHkgZm9yIGZ1cnRoZXIgY29udmV5aW5nIGZyb20gdGhvc2UgdG8gd2hvbSB5b3UgY29udmV5CnRoZSBQcm9ncmFtLCB0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCB0aG9zZSB0ZXJtcyBhbmQgdGhpcwpMaWNlbnNlIHdvdWxkIGJlIHRvIHJlZnJhaW4gZW50aXJlbHkgZnJvbSBjb252ZXlpbmcgdGhlIFByb2dyYW0uCgogIDEzLiBVc2Ugd2l0aCB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgoKICBOb3R3aXRoc3RhbmRpbmcgYW55IG90aGVyIHByb3Zpc2lvbiBvZiB0aGlzIExpY2Vuc2UsIHlvdSBoYXZlCnBlcm1pc3Npb24gdG8gbGluayBvciBjb21iaW5lIGFueSBjb3ZlcmVkIHdvcmsgd2l0aCBhIHdvcmsgbGljZW5zZWQKdW5kZXIgdmVyc2lvbiAzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW50byBhIHNpbmdsZQpjb21iaW5lZCB3b3JrLCBhbmQgdG8gY29udmV5IHRoZSByZXN1bHRpbmcgd29yay4gIFRoZSB0ZXJtcyBvZiB0aGlzCkxpY2Vuc2Ugd2lsbCBjb250aW51ZSB0byBhcHBseSB0byB0aGUgcGFydCB3aGljaCBpcyB0aGUgY292ZXJlZCB3b3JrLApidXQgdGhlIHNwZWNpYWwgcmVxdWlyZW1lbnRzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCnNlY3Rpb24gMTMsIGNvbmNlcm5pbmcgaW50ZXJhY3Rpb24gdGhyb3VnaCBhIG5ldHdvcmsgd2lsbCBhcHBseSB0byB0aGUKY29tYmluYXRpb24gYXMgc3VjaC4KCiAgMTQuIFJldmlzZWQgVmVyc2lvbnMgb2YgdGhpcyBMaWNlbnNlLgoKICBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucyBvZgp0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCiAgRWFjaCB2ZXJzaW9uIGlzIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuICBJZiB0aGUKUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIGNlcnRhaW4gbnVtYmVyZWQgdmVyc2lvbiBvZiB0aGUgR05VIEdlbmVyYWwKUHVibGljIExpY2Vuc2UgIm9yIGFueSBsYXRlciB2ZXJzaW9uIiBhcHBsaWVzIHRvIGl0LCB5b3UgaGF2ZSB0aGUKb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZWl0aGVyIG9mIHRoYXQgbnVtYmVyZWQKdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4gIElmIHRoZSBQcm9ncmFtIGRvZXMgbm90IHNwZWNpZnkgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkCmJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCgogIElmIHRoZSBQcm9ncmFtIHNwZWNpZmllcyB0aGF0IGEgcHJveHkgY2FuIGRlY2lkZSB3aGljaCBmdXR1cmUKdmVyc2lvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGNhbiBiZSB1c2VkLCB0aGF0IHByb3h5J3MKcHVibGljIHN0YXRlbWVudCBvZiBhY2NlcHRhbmNlIG9mIGEgdmVyc2lvbiBwZXJtYW5lbnRseSBhdXRob3JpemVzIHlvdQp0byBjaG9vc2UgdGhhdCB2ZXJzaW9uIGZvciB0aGUgUHJvZ3JhbS4KCiAgTGF0ZXIgbGljZW5zZSB2ZXJzaW9ucyBtYXkgZ2l2ZSB5b3UgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQKcGVybWlzc2lvbnMuICBIb3dldmVyLCBubyBhZGRpdGlvbmFsIG9ibGlnYXRpb25zIGFyZSBpbXBvc2VkIG9uIGFueQphdXRob3Igb3IgY29weXJpZ2h0IGhvbGRlciBhcyBhIHJlc3VsdCBvZiB5b3VyIGNob29zaW5nIHRvIGZvbGxvdyBhCmxhdGVyIHZlcnNpb24uCgogIDE1LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LgoKICBUSEVSRSBJUyBOTyBXQVJSQU5UWSBGT1IgVEhFIFBST0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZCkFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4gT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQKSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUyBQUk9WSURFIFRIRSBQUk9HUkFNICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWQpPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1NFRCBPUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUgUFJPR1JBTQpJUyBXSVRIIFlPVS4gIFNIT1VMRCBUSEUgUFJPR1JBTSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YKQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLgoKICAxNi4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuCgogIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1PRElGSUVTIEFORC9PUiBDT05WRVlTClRIRSBQUk9HUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywgSU5DTFVESU5HIEFOWQpHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBPRiBUSEUKVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFIFBST0dSQU0gKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gTE9TUyBPRgpEQVRBIE9SIERBVEEgQkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZIFlPVSBPUiBUSElSRApQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJPR1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSIFBST0dSQU1TKSwKRVZFTiBJRiBTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgpTVUNIIERBTUFHRVMuCgogIDE3LiBJbnRlcnByZXRhdGlvbiBvZiBTZWN0aW9ucyAxNSBhbmQgMTYuCgogIElmIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5IGFuZCBsaW1pdGF0aW9uIG9mIGxpYWJpbGl0eSBwcm92aWRlZAphYm92ZSBjYW5ub3QgYmUgZ2l2ZW4gbG9jYWwgbGVnYWwgZWZmZWN0IGFjY29yZGluZyB0byB0aGVpciB0ZXJtcywKcmV2aWV3aW5nIGNvdXJ0cyBzaGFsbCBhcHBseSBsb2NhbCBsYXcgdGhhdCBtb3N0IGNsb3NlbHkgYXBwcm94aW1hdGVzCmFuIGFic29sdXRlIHdhaXZlciBvZiBhbGwgY2l2aWwgbGlhYmlsaXR5IGluIGNvbm5lY3Rpb24gd2l0aCB0aGUKUHJvZ3JhbSwgdW5sZXNzIGEgd2FycmFudHkgb3IgYXNzdW1wdGlvbiBvZiBsaWFiaWxpdHkgYWNjb21wYW5pZXMgYQpjb3B5IG9mIHRoZSBQcm9ncmFtIGluIHJldHVybiBmb3IgYSBmZWUuCgogICAgICAgICAgICAgICAgICAgICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKCiAgICAgICAgICAgIEhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9ncmFtcwoKICBJZiB5b3UgZGV2ZWxvcCBhIG5ldyBwcm9ncmFtLCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2YgdGhlIGdyZWF0ZXN0CnBvc3NpYmxlIHVzZSB0byB0aGUgcHVibGljLCB0aGUgYmVzdCB3YXkgdG8gYWNoaWV2ZSB0aGlzIGlzIHRvIG1ha2UgaXQKZnJlZSBzb2Z0d2FyZSB3aGljaCBldmVyeW9uZSBjYW4gcmVkaXN0cmlidXRlIGFuZCBjaGFuZ2UgdW5kZXIgdGhlc2UgdGVybXMuCgogIFRvIGRvIHNvLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBwcm9ncmFtLiAgSXQgaXMgc2FmZXN0CnRvIGF0dGFjaCB0aGVtIHRvIHRoZSBzdGFydCBvZiBlYWNoIHNvdXJjZSBmaWxlIHRvIG1vc3QgZWZmZWN0aXZlbHkKc3RhdGUgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdAp0aGUgImNvcHlyaWdodCIgbGluZSBhbmQgYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3VuZC4KCiAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgogICAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgogICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKQWxzbyBhZGQgaW5mb3JtYXRpb24gb24gaG93IHRvIGNvbnRhY3QgeW91IGJ5IGVsZWN0cm9uaWMgYW5kIHBhcGVyIG1haWwuCgogIElmIHRoZSBwcm9ncmFtIGRvZXMgdGVybWluYWwgaW50ZXJhY3Rpb24sIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQKbm90aWNlIGxpa2UgdGhpcyB3aGVuIGl0IHN0YXJ0cyBpbiBhbiBpbnRlcmFjdGl2ZSBtb2RlOgoKICAgIDxwcm9ncmFtPiAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KICAgIFRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFk7IGZvciBkZXRhaWxzIHR5cGUgYHNob3cgdycuCiAgICBUaGlzIGlzIGZyZWUgc29mdHdhcmUsIGFuZCB5b3UgYXJlIHdlbGNvbWUgdG8gcmVkaXN0cmlidXRlIGl0CiAgICB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnM7IHR5cGUgYHNob3cgYycgZm9yIGRldGFpbHMuCgpUaGUgaHlwb3RoZXRpY2FsIGNvbW1hbmRzIGBzaG93IHcnIGFuZCBgc2hvdyBjJyBzaG91bGQgc2hvdyB0aGUgYXBwcm9wcmlhdGUKcGFydHMgb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBPZiBjb3Vyc2UsIHlvdXIgcHJvZ3JhbSdzIGNvbW1hbmRzCm1pZ2h0IGJlIGRpZmZlcmVudDsgZm9yIGEgR1VJIGludGVyZmFjZSwgeW91IHdvdWxkIHVzZSBhbiAiYWJvdXQgYm94Ii4KCiAgWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHNjaG9vbCwKaWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIHByb2dyYW0sIGlmIG5lY2Vzc2FyeS4KRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcywgYW5kIGhvdyB0byBhcHBseSBhbmQgZm9sbG93IHRoZSBHTlUgR1BMLCBzZWUKPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtCmludG8gcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdQptYXkgY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGgKdGhlIGxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLiAgQnV0IGZpcnN0LCBwbGVhc2UgcmVhZAo8aHR0cDovL3d3dy5nbnUub3JnL3BoaWxvc29waHkvd2h5LW5vdC1sZ3BsLmh0bWw+Lgo=]]></data>
	</file>
	<file>
	  <filename>/FEUMailer.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEZyb250ZW5kVXNlciBNYWlsZXIgKGMpIDIwMDgtMjAxMCBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkKIyAgICAgICAgICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGJhY2tlbmQgdXNlcnMgYWJpbGl0eSAKIyAgICAgICAgICB0byBlYXNpbHkgc2VuZCBhbiBlbWFpbCB0byBhbGwgZnJvbnRlbmQgdXNlcnMgb3IganVzdCBzcGVjaWZpYyBmcm9udC0KIyAgICAgICAgICBlbmQgdXNlcmdyb3VwcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZCB3ZWJzaXRlLgojIFZlcnNpb246IDAuOS40CiMgRmlsZSAgIDogRkVVTWFpbGVyLm1vZHVsZS5waHAKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA0LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIEZFVU1haWxlciBleHRlbmRzIENNU01vZHVsZSB7CgoJdmFyICRSUlV0aWxzOwoJCglmdW5jdGlvbiBGRVVNYWlsZXIoKQoJewoJCXBhcmVudDo6Q01TTW9kdWxlKCk7Cgl9CgkKCWZ1bmN0aW9uICZSUlV0aWxzKCkKCXsKCQlpZighJHRoaXMtPlJSVXRpbHMpCgkJewoJCQkkZmV1ID0mICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwoJCQkkdGhpcy0+UlJVdGlscyA9IG5ldyBSUlV0aWxzKCk7CgkJfQoJCXJldHVybiAkdGhpcy0+UlJVdGlsczsKCX0KCQoJZnVuY3Rpb24gR2V0TmFtZSgpIHsKCQlyZXR1cm4gJ0ZFVU1haWxlcic7Cgl9CgoJZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkgewoJCXJldHVybiAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyk7Cgl9CgoJZnVuY3Rpb24gR2V0VmVyc2lvbigpIHsKCQlyZXR1cm4gJzAuOS40JzsKCX0KCglmdW5jdGlvbiBHZXRIZWxwKCkgewoJCXJldHVybiAkdGhpcy0+TGFuZygnaGVscCcpOwoJfQoKCWZ1bmN0aW9uIEdldEF1dGhvcigpIHsKCQlyZXR1cm4gJ0dlb3JnIEJ1c2NoIChOYU4pJzsKCX0KCglmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpIHsKCQlyZXR1cm4gJ2dlb3JnLmJ1c2NoQGdteC5uZXQnOwoJfQoKCWZ1bmN0aW9uIEdldENoYW5nZUxvZygpIHsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2NoYW5nZWxvZycpOwoJfQoKCWZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkgewoJCXJldHVybiBmYWxzZTsKCX0KCglmdW5jdGlvbiBIYXNBZG1pbigpIHsgCgkJcmV0dXJuIHRydWU7Cgl9CgoJZnVuY3Rpb24gR2V0QWRtaW5TZWN0aW9uKCkgewoJCXJldHVybiAndXNlcnNncm91cHMnOwoJfQoKCWZ1bmN0aW9uIEdldEFkbWluRGVzY3JpcHRpb24oKSB7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdtb2RkZXNjcmlwdGlvbicpOwoJfQoKCWZ1bmN0aW9uIFZpc2libGVUb0FkbWluVXNlcigpIHsKCQlyZXR1cm4gJHRoaXMtPkNoZWNrUGVybWlzc2lvbignVXNlIEZFVU1haWxlcicpOwoJfQoKCWZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpIHsKCQlyZXR1cm4gYXJyYXkoJ0Zyb250RW5kVXNlcnMnID0+ICcxLjYnLCdDTVNNYWlsZXInPT4nMS43My4xMicpOwoJfQoKCWZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCkgewoJCXJldHVybiAiMS45LjQuMSI7Cgl9CgoJZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkgewoJCXJldHVybiAkdGhpcy0+TGFuZygncG9zdGluc3RhbGwnKTsKCX0KCglmdW5jdGlvbiBVbmluc3RhbGxQb3N0TWVzc2FnZSgpIHsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsKCX0KCglmdW5jdGlvbiBVbmluc3RhbGxQcmVNZXNzYWdlKCkgewoJCXJldHVybiAkdGhpcy0+TGFuZygncmVhbGx5X3VuaW5zdGFsbCcpOwoJfQoKCWZ1bmN0aW9uIERvQWN0aW9uKCRhY3Rpb24sICRpZCwgJHBhcmFtcywgJHJldHVybmlkID0gLTEpIHsKCQlzd2l0Y2goJGFjdGlvbikgewoJCQljYXNlICdjbGVhckxvZ3MnOgoJCQljYXNlICdkZWZhdWx0YWRtaW4nOgoJCQljYXNlICdkZWxldGVNYWlsJzoKCQkJY2FzZSAnZWRpdE1haWwnOgoJCQljYXNlICdnZXRVc2Vycyc6CgkJCWNhc2UgJ211bHRpQWN0aW9uJzoKCQkJY2FzZSAnbmV3TWFpbCc6CgkJCWNhc2UgJ3ByZXBhcmVTZW5kTWFpbCc6CgkJCWNhc2UgJ3JlYWRNYWlsJzoKCQkJY2FzZSAnc2F2ZVByZWZzJzoKCQkJY2FzZSAnc2VuZE1haWwnOgoJCQljYXNlICd2aWV3TG9ncyc6CgkJCQlwYXJlbnQ6OkRvQWN0aW9uKCRhY3Rpb24sJGlkLCRwYXJhbXMsJHJldHVybmlkKTticmVhazsKCQkJY2FzZSBtZDUoJ3RyYWNrQnVnJyk6CgkJCQkkdGhpcy0+VHJhY2tCdWcoJHBhcmFtc1ttZDUoJ2xvZ19pZCcpXSk7YnJlYWs7CgkJCWRlZmF1bHQ6IGJyZWFrOwoJCX0KCX0KCglmdW5jdGlvbiBTZXRQYXJhbWV0ZXJzKCkgewoJCSR0aGlzLT5SZXN0cmljdFVua25vd25QYXJhbXMoKTsKCQkKCQkkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnLycubWQ1KCdGRVVNYWlsZXInKS4nXC8oP1A8bG9nX2lkPlswLTldKylcLyg/UDxqdW5rPi4qPykkLycsIGFycmF5KCdhY3Rpb24nPT5tZDUoJ3RyYWNrQnVnJyksJ3Nob3d0ZW1wbGF0ZScgPT4gJ2ZhbHNlJykpOwoJCQoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdhY3RpdmVfdGFiJyxDTEVBTl9TVFJJTkcpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzdWJtaXRfbG9nJyxDTEVBTl9TVFJJTkcpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdlcnJvcm1lc3NhZ2UnLENMRUFOX1NUUklORyk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ21lc3NhZ2UnLENMRUFOX1NUUklORyk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ21haWxfdHlwZScsQ0xFQU5fU1RSSU5HKTsKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnY2FuY2VsJyxDTEVBTl9TVFJJTkcpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzdWJtaXQnLENMRUFOX1NUUklORyk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3N1YmplY3QnLENMRUFOX1NUUklORyk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ21haWxib2R5JyxDTEVBTl9TVFJJTkcpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdncm91cHMnLENMRUFOX1NUUklORyk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3Rhc2snLENMRUFOX1NUUklORyk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3VzZXJuYW1lJyxDTEVBTl9TVFJJTkcpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzdWJtaXRfcHJlZnMnLENMRUFOX1NUUklORyk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2F1dG9jbGVhcl90aW1lJyxDTEVBTl9TVFJJTkcpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdkZWZhdWx0X2dyb3VwcycsQ0xFQU5fU1RSSU5HKTsKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncmVzZW5kX2FsbCcsQ0xFQU5fU1RSSU5HKTsKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncmVzZW5kX25ldycsQ0xFQU5fU1RSSU5HKTsKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncmVzZW5kX2Vycm9ycycsQ0xFQU5fU1RSSU5HKTsKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncmVzZW5kX3NlbGVjdGVkJyxDTEVBTl9TVFJJTkcpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzb3J0X2J5JyxDTEVBTl9TVFJJTkcpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzb3J0X29yZGVyJyxDTEVBTl9TVFJJTkcpOwoKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncmFuZG9tX2RlbGF5JyxDTEVBTl9JTlQpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzYXZlX2xvZ3MnLENMRUFOX0lOVCk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3NhdmVfZXJyb3Jsb2dzX29ubHknLENMRUFOX0lOVCk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2F1dG9jbGVhcl9sb2dzJyxDTEVBTl9JTlQpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdhdXRvY2xlYXJfYXJjaGl2ZW1haWxzJyxDTEVBTl9JTlQpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdhdXRvY2xlYXJfdG1wbWFpbHMnLENMRUFOX0lOVCk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2lzX2h0bWwnLENMRUFOX0lOVCk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ21heG1haWxzJyxDTEVBTl9JTlQpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdyZXF1ZXN0X2RlbGF5JyxDTEVBTl9JTlQpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdhdXRvY2xlYXJfdmFsdWUnLENMRUFOX0lOVCk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2xpbWl0JyxDTEVBTl9JTlQpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdvbGRfbGltaXQnLENMRUFOX0lOVCk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2Vycm9yc19vbmx5JyxDTEVBTl9JTlQpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdwYWdlJyxDTEVBTl9JTlQpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCd1c2VyaWQnLENMRUFOX0lOVCk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2Vycm9yY29kZScsQ0xFQU5fSU5UKTsKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbWFpbF9pZCcsQ0xFQU5fSU5UKTsKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnYXJjaGl2ZV9pZCcsQ0xFQU5fSU5UKTsKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgndG1wX2lkJyxDTEVBTl9JTlQpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdvdXRwdXQnLENMRUFOX0lOVCk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NsZWFyX2xvZycsQ0xFQU5fSU5UKTsKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnYXV0b3NhdmUnLENMRUFOX0lOVCk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3N1Ym1pdF9mb3JtJyxDTEVBTl9JTlQpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzYXZlZmlsdGVyJyxDTEVBTl9JTlQpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKG1kNSgnbG9nX2lkJyksQ0xFQU5fSU5UKTsKCX0KCQovKioKICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogQ3VzdG9tIG1vZHVsZSBmdW5jdGlvbnMKICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICovCgkKCS8qKgoJICogZnVuY3Rpb24gR2V0UHJlZnMoKQoJICogbm90IHBhcnQgb2YgdGhlIG1vZHVsZSBhcGkKCSAqIGdldHMgYWxsIHByZWZlcmVuY2VzIG9mIEZFVW1haWxlcgoJICoKCSAqIEByZXR1cm4gYXJyYXkgKCAkcHJlZmVyZW5jZV9uYW1lID0+ICRwcmVmZXJlbmNlX3ZhbHVlICkKCSAqLwoJZnVuY3Rpb24gR2V0UHJlZnMoKSAKCXsKCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7CgkJJG1vZHVsZW5hbWUgPSAkdGhpcy0+R2V0TmFtZSgpOwoJCSRwcmVmcyA9IGFycmF5KCk7CgkJJHF1ZXJ5ID0gIlNFTEVDVCBzaXRlcHJlZl92YWx1ZSwgc2l0ZXByZWZfbmFtZSAKCQkJCQlGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJzaXRlcHJlZnMgV0hFUkUgCgkJCQkJc2l0ZXByZWZfbmFtZSBMSUtFICciLiRtb2R1bGVuYW1lLiJfbWFwaV9wcmVmJSciOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJCXdoaWxlKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSAKCQl7CgkJCSRwcmVmbmFtZSA9IHN0cl9yZXBsYWNlKCRtb2R1bGVuYW1lLiJfbWFwaV9wcmVmXyIsICIiLCAKCQkJCSRyb3dbJ3NpdGVwcmVmX25hbWUnXSk7CgkJCSRwcmVmc1skcHJlZm5hbWVdPSRyb3dbJ3NpdGVwcmVmX3ZhbHVlJ107CgkJfQoJCXJldHVybiAkcHJlZnM7Cgl9CgkKCQoJLyoqCgkgKiBmdW5jdGlvbiBHZXRQcmVmKCRwcmVmbmFtZSwkZGVmYXVsdD0nJykKCSAqIG5vdCBwYXJ0IG9mIHRoZSBtb2R1bGUgYXBpCgkgKiBnZXRzIGEgc3BlY2lmaWMgcHJlZmVyZW5jZSBvZiBGRVVtYWlsZXIKCSAqCgkgKiBAcGFyYW0gc3RyaW5nICRwcmVmbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBwcmVmZXJlbmNlIHRvIGdldAoJICogQHBhcmFtIHN0cmluZyAkZGVmYXVsdCAob3B0aW9uYWwpIC0gVGhlIGRlZmF1bHQgdmFsdWUgdG8gcmV0dXJuIGlmIG5vdGhpbmcgZm91bmQKCSAqIEByZXR1cm4gc3RyaW5nIC0gVGhlIHByZWZlcmVuY2UgdmFsdWUKCSAqLwoJZnVuY3Rpb24gR2V0UHJlZigkcHJlZm5hbWUsJGRlZmF1bHQ9JycpIAoJewoJCWlmKGVtcHR5KCR0aGlzLT5wcmVmcykpCgkJCSR0aGlzLT5wcmVmcyA9ICR0aGlzLT5HZXRQcmVmcygpOwoJCWlmKGlzc2V0KCR0aGlzLT5wcmVmc1skcHJlZm5hbWVdKSkKCQkJcmV0dXJuICR0aGlzLT5wcmVmc1skcHJlZm5hbWVdOwoJCWVsc2UKCQkJcmV0dXJuICRkZWZhdWx0OwoJfQoJCgkvKioKCSAqIGZ1bmN0aW9uIERpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcmV0dXJuaWQsICRlcnJvcm1lc3NhZ2U9JycpCgkgKiBub3QgcGFydCBvZiB0aGUgbW9kdWxlIGFwaQoJICogRGlzcGxheXMgYW4gZXJyb3JtZXNzYWdlIHdpdGhpbiBhIHNlcGFyYXRlIGJhY2tlbmQgcGFnZQoJICoKCSAqIEBwYXJhbSBzdHJpbmcgJGlkIC0gVGhlIGlkIGdpdmVuIHRvIHRoZSBtb2R1bGUgb24gZXhlY3V0aW9uCgkgKiBAcGFyYW0gc3RyaW5nICRyZXR1cm5pZCAtIFRoZSBpZCB0byBldmVudHVhbGx5IHJldHVybiB0byB3aGVuIHRoZSBtb2R1bGUgaXMgZmluaXNoZWQgaXQncyB0YXNrCgkgKiBAcGFyYW0gc3RyaW5nICRlcnJvcm1lc3NhZ2UgKG9wdGlvbmFsKSAtIFRoZSBlcnJvcm1lc3NhZ2UgdG8gZGlzcGxheQoJICovCglmdW5jdGlvbiBEaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHJldHVybmlkLCAkZXJyb3JtZXNzYWdlPScnKSB7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlcnJvcicsICR0aGlzLT5MYW5nKCdlcnJvcicpKTsKCQlpZigkZXJyb3JtZXNzYWdlICE9ICcnKSB7CgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZXJyb3JtZXNzYWdlJywgJGVycm9ybWVzc2FnZSk7CgkJfQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignb2tfbGluaycsJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLAoJCQkkdGhpcy0+bGFuZygnb2snKSkpOwoJCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZXJyb3IudHBsJyk7Cgl9CgkKCQoJLyoqCgkgKiBmdW5jdGlvbiBHZXRVc2VycygkZ3JvdXBzPWFycmF5KCksJHVpZD0wLCRsaW1pdD0wLCRvcGVyYXRvcj0nPj0nKQoJICogbm90IHBhcnQgb2YgdGhlIG1vZHVsZSBhcGkKCSAqIGdldHMgYWxsIHVzZXJzIG9mIHNwZWNpZmllZCBncm91cHMKCSAqCgkgKiBAcGFyYW0gYXJyYXkgJGdyb3VwcyAtIEFuIGFycmF5IG9mIHVzZXIgZ3JvdXBzIHRoZSBkZXNpcmVkIHVzZXIgc2hvdWxkIGJlbG9uZyB0byAoICRncm91cF9pZCA9PiAkZ3JvdXBfbmFtZSApCgkgKiBAcGFyYW0gaW50ZWdlciAkdWlkIChvcHRpb25hbCkgLSBBbiBpZCBvZiBhIHVzZXI7IGZ1bmN0aW9uIHdpbGwgZ2V0IG9ubHkgdGhvc2UgdXNlcnMgd2hlcmUgdGhlIHVzZXIgaWQgaXMgaGlnaGVyL2xvd2VyL2VxdWFsIHRoYW4gJHVpZCAoZGVwZW5kcyBvbiAkb3BlcmF0b3IpCgkgKiBAcGFyYW0gaW50ZWdlciAkbGltaXQgKG9wdGlvbmFsKSAtIFRoZSBtYXhpbXVtIGFtb3VudCBvZiB1c2VycyB0byBnZXQKCSAqIEBwYXJhbSBzdHJpbmcgJG9wZXJhdG9yIChvcHRpb25hbCkgLSBMb2dpY2FsIG9wZXJhdG9ycyBzdWNoIGFzICc+JywnPCcsJz0nLCc+PScsJzw9JywnIT0nCgkgKiBAcmV0dXJuIGFycmF5ICggJHVzZXJpZCA9PiAkdXNlcm5hbWUgKQoJICovCglmdW5jdGlvbiBHZXRVc2VycygkZ3JvdXBzPWFycmF5KCksJHVpZD0wLCRsaW1pdD0wLCRvcGVyYXRvcj0nPj0nKSB7CgkJCgkJJGRiID0mICR0aGlzLT5HZXREYigpOwoJCQoJCSRmZXVzZXJzID0mICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwoJCWlmKCEkZmV1c2VycykKCQkJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwkcmV0dXJuaWQsCSR0aGlzLT5MYW5nKCdlcnJvcl9mZXVzZXJzJykpOwoJCQoJCSR1c2VycyA9IGFycmF5KCk7CgkJJHdoZXJlID0gYXJyYXkoKTsKCQkkd2hlcmUyPSBhcnJheSgpOwoJCSRxdWVyeSA9ICJTRUxFQ1QgRkVVLmlkLEZFVS51c2VybmFtZSAKCQkJCQlGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc191c2VycyBGRVUgCgkJCQkJTEVGVCBKT0lOICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19iZWxvbmdzIEIKCQkJCQkJT04gQi51c2VyaWQgPSBGRVUuaWQiOwoJCSR3aGVyZVtdID0gIkZFVS5pZCIuICRvcGVyYXRvciAuICR1aWQ7CgkJCgkJZm9yZWFjaCgkZ3JvdXBzIGFzICRncm91cF9pZD0+JGdyb3VwX25hbWUpIHsKCQkJJHdoZXJlMltdID0gIiBCLmdyb3VwaWQgPSAiLiRncm91cF9pZDsKCQl9CgkJJHEgPSAnJzsKCQlpZihjb3VudCgkd2hlcmUyKSkgewoJCQkkcSAuPSAiIEFORCAoIi5pbXBsb2RlKCIgT1IgIiwgJHdoZXJlMikuIikgIjsKCQl9CgkJJHF1ZXJ5IC49ICIgV0hFUkUgIi5pbXBsb2RlKCIgQU5EICIsJHdoZXJlKS4kcTsKCQkkcXVlcnkgLj0gIiBHUk9VUCBCWSBGRVUuaWQgT1JERVIgQlkgRkVVLmlkIEFTQyAiLigkbGltaXQ+MD8iIExJTUlUICIuICRsaW1pdDoiIik7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgkJd2hpbGUoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpIHsKCQkJJHVzZXJzWyRyb3dbJ2lkJ11dPSRyb3dbJ3VzZXJuYW1lJ107CgkJfQoJCXJldHVybiAkdXNlcnM7Cgl9CgkKCQoJLyoqCgkgKiBmdW5jdGlvbiBHZXRVc2Vyc0Vycm9ycygkbWFpbF9pZD0wLCAkdWlkPTAsICRsaW1pdD0wLCRvcGVyYXRvcj0nPj0nLCAkZ3JvdXBzPWFycmF5KCkpCgkgKiBub3QgcGFydCBvZiB0aGUgbW9kdWxlIGFwaQoJICogZ2V0cyBhbGwgdXNlcnMgb2YgbWFpbCBsb2cgd2hlcmUgbWFpbCBjb3VsZCBub3QgYmUgc2VudCB0bwoJICoKCSAqIEBwYXJhbSBpbnRlZ2VyICRtYWlsX2lkIC0gVGhlIGlkIG9mIHRoZSBtYWlsCgkgKiBAcGFyYW0gaW50ZWdlciAkdWlkIChvcHRpb25hbCkgLSBBbiBpZCBvZiBhIHVzZXI7IGZ1bmN0aW9uIHdpbGwgZ2V0IG9ubHkgdGhvc2UgdXNlcnMgd2hlcmUgdGhlIHVzZXIgaWQgaXMgaGlnaGVyL2xvd2VyL2VxdWFsIHRoYW4gJHVpZCAoZGVwZW5kcyBvbiAkb3BlcmF0b3IpCgkgKiBAcGFyYW0gaW50ZWdlciAkbGltaXQgKG9wdGlvbmFsKSAtIFRoZSBtYXhpbXVtIGFtb3VudCBvZiB1c2VycyB0byBnZXQKCSAqIEBwYXJhbSBzdHJpbmcgJG9wZXJhdG9yIChvcHRpb25hbCkgLSBMb2dpY2FsIG9wZXJhdG9ycyBzdWNoIGFzICc+JywnPCcsJz0nLCc+PScsJzw9JywnIT0nCgkgKiBAcGFyYW0gYXJyYXkgJGdyb3VwcyAob3B0aW9uYWwpIC0gQW4gYXJyYXkgb2YgdXNlciBncm91cHMgdGhlIGRlc2lyZWQgdXNlciBzaG91bGQgYmVsb25nIHRvICggJGdyb3VwX2lkID0+ICRncm91cF9uYW1lICkKCSAqIEByZXR1cm4gYXJyYXkgKCAkdXNlcmlkID0+ICR1c2VybmFtZSApCgkgKi8KCWZ1bmN0aW9uIEdldFVzZXJzRXJyb3JzKCRtYWlsX2lkPTAsICR1aWQ9MCwgJGxpbWl0PTAsJG9wZXJhdG9yPSc+PScsICRncm91cHM9YXJyYXkoKSkgewoJCQoJCSRmZXVzZXJzID0mICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwoJCWlmKCEkZmV1c2VycykKCQkJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwkcmV0dXJuaWQsCSR0aGlzLT5MYW5nKCdlcnJvcl9mZXVzZXJzJykpOwoJCQoJCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKCQkKCQkkdXNlcnMgPSBhcnJheSgpOwoJCSR3aGVyZSA9IGFycmF5KCk7CgkJJHdoZXJlMj0gYXJyYXkoKTsKCQkkcXVlcnkgPSAiU0VMRUNUIEZFVS5pZCwgRkVVLnVzZXJuYW1lIAoJCQkJCUZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX3VzZXJzIEZFVSAKCQkJCQlMRUZUIE9VVEVSIEpPSU4gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVtYWlsZXJfbG9ncyBMCgkJCQkJCU9OIEZFVS5pZCA9IEwucmVjaXBpZW50X2lkCgkJCQkJTEVGVCBPVVRFUiBKT0lOICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19iZWxvbmdzIEIgCgkJCQkJCU9OIEZFVS5pZCA9IEIudXNlcmlkIjsKCQkkd2hlcmVbXSA9ICJMLmVycm9yY29kZT4wIAoJCQkJCUFORCBMLmFyY2hpdmVfaWQ9Ii4gJG1haWxfaWQgLiIKCQkJCQlBTkQgRkVVLmlkIi4kb3BlcmF0b3IuICR1aWQ7CgkJCgkJZm9yZWFjaCgkZ3JvdXBzIGFzICRncm91cF9pZD0+JGdyb3VwX25hbWUpIHsKCQkJJHdoZXJlMltdID0gIiBCLmdyb3VwaWQgPSAiLiRncm91cF9pZDsKCQl9CgkJJHEgPSAnJzsKCQlpZihjb3VudCgkd2hlcmUyKSkgewoJCQkkcSAuPSAiIEFORCAoIi5pbXBsb2RlKCIgT1IgIiwkd2hlcmUyKS4iKSI7CgkJfQoJCSRxdWVyeSAuPSAiIFdIRVJFICIuaW1wbG9kZSgiIEFORCAiLCR3aGVyZSkuJHE7CgkJJHF1ZXJ5IC49ICIgR1JPVVAgQlkgRkVVLmlkIE9SREVSIEJZIEZFVS5pZCBBU0MgIi4oJGxpbWl0PjA/IiBMSU1JVCAiLiAkbGltaXQ6IiIpOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJCXdoaWxlKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSB7CgkJCSR1c2Vyc1skcm93WydpZCddXT0kcm93Wyd1c2VybmFtZSddOwoJCX0KCQlyZXR1cm4gJHVzZXJzOwoJfQoJCgkKCS8qKgoJICogZnVuY3Rpb24gR2V0QWRkaXRpb25hbEdyb3VwcygkdXNlcnM9YXJyYXkoKSkKCSAqIG5vdCBwYXJ0IG9mIHRoZSBtb2R1bGUgYXBpCgkgKiBnZXRzIGFsbCBncm91cHMgb25lIG9yIG1vcmUgdXNlcnMgYmVsb25ncyB0bwoJICoKCSAqIEBwYXJhbSBhcnJheSAkdXNlcnMgLSBBbiBhcnJheSBvZiB1c2VycyAoICR1c2VyaWQgPT4gdXNlcm5hbWUgKQoJICogQHJldHVybiBhcnJheSAtICggJGdyb3VwX2lkID0+ICRncm91cG5hbWUgKQoJICovCglmdW5jdGlvbiBHZXRBZGRpdGlvbmFsR3JvdXBzKCR1c2Vycz1hcnJheSgpKSB7CgkJCgkJJGZldXNlcnMgPSYgJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CgkJaWYoISRmZXVzZXJzKQoJCQlyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCRyZXR1cm5pZCwJJHRoaXMtPkxhbmcoJ2Vycm9yX2ZldXNlcnMnKSk7CgkJCgkJJGRiID0mICR0aGlzLT5HZXREYigpOwoJCQoJCSRncm91cHMgPSBhcnJheSgpOwoJCSRxdWVyeSA9ICJTRUxFQ1QgRy5pZCxHLmdyb3VwbmFtZSAKCQkJCQlGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19ncm91cHMgRwoJCQkJCUxFRlQgSk9JTiAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfYmVsb25ncyBCCgkJCQkJCU9OIEIuZ3JvdXBpZCA9IEcuaWQiOwoJCSR3aGVyZT1hcnJheSgpOwoJCWZvcmVhY2goJHVzZXJzIGFzICR1c2VyaWQ9PiR1c2VybmFtZSkgewoJCQkkd2hlcmVbXSA9ICIgQi51c2VyaWQgPSAiLiR1c2VyaWQ7CgkJfQoJCWlmKGNvdW50KCR3aGVyZSkpCgkJCSRxdWVyeSAuPSAiIFdIRVJFICgiLmltcGxvZGUoIiBPUiAiLCR3aGVyZSkuIikgIjsKCQkKCQkkcXVlcnkgLj0gIiBPUkRFUiBCWSBHLmlkIEFTQyI7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgkJd2hpbGUoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpIHsKCQkJJGdyb3Vwc1skcm93WydpZCddXT0kcm93Wydncm91cG5hbWUnXTsKCQl9CgkJcmV0dXJuICRncm91cHM7Cgl9CgkKCQoJLyoqCgkgKiBmdW5jdGlvbiBDcmVhdGVUZW1wTWFpbCgkcmVjaXBpZW50X2dyb3Vwcz0nJywkc3ViamVjdD0nJywkbWFpbGJvZHk9JycsJGxhc3RfdXNlcmlkPTAsJHByb2Nlc3NlZF91c2Vycz0wLCRyZWNpcGllbnRzPTAsJHRhc2s9J2FsbCcsJGFyY2hpdmVfaWQ9JycsJGF1dG9zYXZlPS0xKQoJICogbm90IHBhcnQgb2YgdGhlIG1vZHVsZSBhcGkKCSAqIHN0b3JlcyBtYWlsIGRhdGEgdGVtcG9yYXJ5IGluIHRoZSBkYgoJICoKCSAqIEBwYXJhbSBzdHJpbmcgJHJlY2lwaWVudF9ncm91cHMgKG9wdGlvbmFsKSAtIEEgc3RyaW5nIG9mIGdyb3VwcyB0byBzZW5kIGEgbWFpIHRvICggJGdyb3VwX2lkLCRncm91cG5hbWU7IC4uLiApCgkgKiBAcGFyYW0gc3RyaW5nICRzdWJqZWN0IChvcHRpb25hbCkgLSBUaGUgbWFpbCBzdWJqZWN0CgkgKiBAcGFyYW0gc3RyaW5nICRtYWlsYm9keSAob3B0aW9uYWwpIC0gVGhlIG1lc3NhZ2UgdGV4dAoJICogQHBhcmFtIGludGVnZXIgJGxhc3RfdXNlcmlkIChvcHRpb25hbCkgLSBUaGUgSUQgb2YgdGhlIGxhc3QgdXNlciB0aGUgbWFpbCB3YXMgc2VudCB0bwoJICogQHBhcmFtIGludGVnZXIgJHByb2Nlc3NlZF91c2VycyAob3B0aW9uYWwpIC0gTnVtYmVyIG9mIHByb2Nlc3NlZCB1c2VycyBpbiBnZW5lcmFsCgkgKiBAcGFyYW0gaW50ZWdlciAkcmVjaXBpZW50cyAob3B0aW9uYWwpIC0gTnVtYmVyIG9mIHJlY2lwaWVudHMgKHVzZXJzIHRoYXQgaGF2ZSBhIHZhbGlkIGVtYWlsIGFkZHJlc3MpCgkgKiBAcGFyYW0gc3RyaW5nICR0YXNrIChvcHRpb25hbCkgLSAiYWxsIiA9IHNlbmQgbWFpbHMgdG8gYWxsIHVzZXJzIG9mIHRoZSBzZWxlY3RlZCBncm91cHM7ICJ1c2VyIiA9IG9ubHkgdG8gYSBzcGVjaWZpZWQgdXNlcjsgInNlbGVjdGVkIiA9IG9ubHkgdG8gYSBidW5jaCBvZiBzZWxlY3RlZCB1c2VyczsgImVycm9yIiA9IG9ubHkgdG8gdXNlcnMgd2hvIGhhZCBubyB2YWxpZCBlbWFpbCBhZGRyZXNzCgkgKiBAcGFyYW0gaW50ZWdlciAkYXJjaGl2ZV9pZCAob3B0aW9uYWwpIC0gVGhlIElEIG9mIHRoZSBhcmNoaXZlIG1haWwgKGlmIHRoaXMgbWFpbCBoYXMgYmVlbiBzZW50IGJlZm9yZSkKCSAqIEBwYXJhbSBib29sZWFuICRhdXRvc2F2ZSAob3B0aW9uYWwpIC0gdHJ1ZXxmYWxzZSBzYXZlIG1lc3NhZ2UgYWZ0ZXIgbWFpbCB3YXMgc2VudCBvciBub3QKCSAqIEByZXR1cm4gYXJyYXkgLSAoIHRydWV8ZmFsc2UsICR0bXBfbWFpbF9pZHxlcnJvcm1lc3NhZ2UgKQoJICovCglmdW5jdGlvbiBDcmVhdGVUZW1wTWFpbCgkcmVjaXBpZW50X2dyb3Vwcz0nJywkc3ViamVjdD0nJywkbWFpbGJvZHk9JycsJGxhc3RfdXNlcmlkPTAsJHByb2Nlc3NlZF91c2Vycz0wLCRyZWNpcGllbnRzPTAsJHRhc2s9J2FsbCcsJGFyY2hpdmVfaWQ9JycsJGF1dG9zYXZlPS0xKSB7CgkJCgkJJGRiID0mICR0aGlzLT5HZXREYigpOwoJCQoJCWlmKGVtcHR5KCRyZWNpcGllbnRfZ3JvdXBzKSkKCQkJJHJlY2lwaWVudF9ncm91cHMgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgiZGVmYXVsdF9ncm91cHMiKTsKCQlpZihlbXB0eSgkcmVjaXBpZW50X2dyb3Vwcyl8fCBlbXB0eSgkbWFpbGJvZHkpKQoJCQlyZXR1cm4gYXJyYXkoRkFMU0UsJHRoaXMtPmxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycsCgkJCQkncmVjaXBpZW50X2dyb3VwcyAvIG1haWxib2R5JywnY3JlYXRlVGVtcE1haWwnKSk7CgkJCgkJJHBhcm1zID0gYXJyYXkoKTsKCQkkcGFybXNbXSA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1bWFpbGVyX3RtcF9zZXEiKTsKCQkkcGFybXNbXSA9IGdldF91c2VyaWQoKTsKCQkkcGFybXNbXSA9ICRyZWNpcGllbnRfZ3JvdXBzOwoJCSRwYXJtc1tdID0gJHN1YmplY3Q7CgkJJHBhcm1zW10gPSAkbWFpbGJvZHk7CgkJJHBhcm1zW10gPSAkbGFzdF91c2VyaWQ7CgkJJHBhcm1zW10gPSAkcHJvY2Vzc2VkX3VzZXJzOwoJCSRwYXJtc1tdID0gJHJlY2lwaWVudHM7CgkJJHBhcm1zW10gPSAkdGFzazsKCQkkcGFybXNbXSA9ICRhcmNoaXZlX2lkOwoJCSRwYXJtc1tdID0gKCRhdXRvc2F2ZSE9LTE/JGF1dG9zYXZlOiR0aGlzLT5HZXRQcmVmZXJlbmNlKCJhdXRvc2F2ZSIsdHJ1ZSkpOwoJCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldW1haWxlcl90bXAgCgkJCQkJCShpZCwKCQkJCQkJc2VudGJ5X2lkLAoJCQkJCQlyZWNpcGllbnRfZ3JvdXBzLAoJCQkJCQlzZW5kX2RhdGUsCgkJCQkJCXN1YmplY3QsCgkJCQkJCW1haWxib2R5LAoJCQkJCQlsYXN0X3VzZXJpZCwKCQkJCQkJcHJvY2Vzc2VkX3VzZXJzLAoJCQkJCQlyZWNpcGllbnRzLAoJCQkJCQl0YXNrLAoJCQkJCQlhcmNoaXZlX2lkLAoJCQkJCQlzYXZlX21lc3NhZ2UpCgkJCQkJVkFMVUVTICg/LD8sPywiLiRkYi0+REJUaW1lU3RhbXAodGltZSgpKS4iLD8sPyw/LD8sPyw/LD8sPykiOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksJHBhcm1zKTsKCQlpZighJGRicmVzdWx0KQoJCQlyZXR1cm4gYXJyYXkoRkFMU0UsJHRoaXMtPkxhbmcoJ2Vycm9yX2RiX2NyZWF0ZV90bXBtYWlsJywkcXVlcnkpKTsKCQllbHNlCgkJCXJldHVybiBhcnJheShUUlVFLCRwYXJtc1swXSk7Cgl9CgkKCQoJLyoqCgkgKiBmdW5jdGlvbiBDcmVhdGVBcmNoaXZlTWFpbCgkcmVjaXBpZW50X2dyb3Vwcz0nJywkc3ViamVjdD0nJywkbWFpbGJvZHk9JycsJGxhc3RfdXNlcmlkPTAsJHByb2Nlc3NlZF91c2Vycz0wLCRyZWNpcGllbnRzPTApCgkgKiBub3QgcGFydCBvZiB0aGUgbW9kdWxlIGFwaQoJICogc3RvcmVzIG1haWwgZGF0YSB0ZW1wb3JhcnkgaW4gdGhlIGRiCgkgKgoJICogQHBhcmFtIHN0cmluZyAkcmVjaXBpZW50X2dyb3VwcyAob3B0aW9uYWwpIC0gQSBzdHJpbmcgb2YgZ3JvdXBzIHRvIHNlbmQgYSBtYWkgdG8gKCAkZ3JvdXBfaWQsJGdyb3VwbmFtZTsgLi4uICkKCSAqIEBwYXJhbSBzdHJpbmcgJHN1YmplY3QgKG9wdGlvbmFsKSAtIFRoZSBtYWlsIHN1YmplY3QKCSAqIEBwYXJhbSBzdHJpbmcgJG1haWxib2R5IChvcHRpb25hbCkgLSBUaGUgbWVzc2FnZSB0ZXh0CgkgKiBAcGFyYW0gaW50ZWdlciAkbGFzdF91c2VyaWQgKG9wdGlvbmFsKSAtIFRoZSBJRCBvZiB0aGUgbGFzdCB1c2VyIHRoZSBtYWlsIHdhcyBzZW50IHRvCgkgKiBAcGFyYW0gaW50ZWdlciAkcHJvY2Vzc2VkX3VzZXJzIChvcHRpb25hbCkgLSBOdW1iZXIgb2YgcHJvY2Vzc2VkIHVzZXJzIGluIGdlbmVyYWwKCSAqIEBwYXJhbSBpbnRlZ2VyICRyZWNpcGllbnRzIChvcHRpb25hbCkgLSBOdW1iZXIgb2YgcmVjaXBpZW50cyAodXNlcnMgdGhhdCBoYXZlIGEgdmFsaWQgZW1haWwgYWRkcmVzcykKCSAqIEByZXR1cm4gaW50ZWdlcnxmYWxzZSAtIFRoZSBtYWlsIElEIG9yIGZhbHNlIGlmIGZhaWwKCSAqLwoJZnVuY3Rpb24gQ3JlYXRlQXJjaGl2ZU1haWwoJHJlY2lwaWVudF9ncm91cHM9JycsJHN1YmplY3Q9JycsJG1haWxib2R5PScnLCRsYXN0X3VzZXJpZD0wLCRwcm9jZXNzZWRfdXNlcnM9MCwkcmVjaXBpZW50cz0wKSB7CgkJCgkJJGRiID0mICR0aGlzLT5HZXREYigpOwoJCQoJCWlmKGVtcHR5KCRyZWNpcGllbnRfZ3JvdXBzKSkKCQkJJHJlY2lwaWVudF9ncm91cHMgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgiZGVmYXVsdF9ncm91cHMiKTsKCQlpZihlbXB0eSgkcmVjaXBpZW50X2dyb3Vwcyl8fCBlbXB0eSgkbWFpbGJvZHkpKSB7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJCgkJJHBhcm1zID0gYXJyYXkoKTsKCQkkcGFybXNbXSA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1bWFpbGVyX2FyY2hpdmVfc2VxIik7CgkJJHBhcm1zW10gPSBnZXRfdXNlcmlkKCk7CgkJJHBhcm1zW10gPSAkcmVjaXBpZW50X2dyb3VwczsKCQkkcGFybXNbXSA9ICRzdWJqZWN0OwoJCSRwYXJtc1tdID0gJG1haWxib2R5OwoJCSRwYXJtc1tdID0gJGxhc3RfdXNlcmlkOwoJCSRwYXJtc1tdID0gJHByb2Nlc3NlZF91c2VyczsKCQkkcGFybXNbXSA9ICRyZWNpcGllbnRzOwoJCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldW1haWxlcl9hcmNoaXZlIAoJCQkJCQkoaWQsCgkJCQkJCXNlbnRieV9pZCwKCQkJCQkJcmVjaXBpZW50X2dyb3VwcywKCQkJCQkJc2VuZF9kYXRlLAoJCQkJCQlzdWJqZWN0LAoJCQkJCQltYWlsYm9keSwKCQkJCQkJbGFzdF91c2VyaWQsCgkJCQkJCXByb2Nlc3NlZF91c2VycywKCQkJCQkJcmVjaXBpZW50cykKCQkJCQlWQUxVRVMgKD8sPyw/LCIuJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLiIsPyw/LD8sPyw/KSI7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwkcGFybXMpOwoJCWlmKCEkZGJyZXN1bHQpIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQkJCgkJZWxzZSB7CgkJCXJldHVybiAkcGFybXNbMF07CgkJfQoJfQoJCgkKCS8qKgoJICogZnVuY3Rpb24gR2V0R3JvdXBzKCkKCSAqIG5vdCBwYXJ0IG9mIHRoZSBtb2R1bGUgYXBpCgkgKiBnZXRzIGFsbCBmcm9udGVuZCB1c2VyIGdyb3VwcwoJICoKCSAqIEByZXR1cm4gYXJyYXkgLSAoJGdyb3VwbmFtZSAuICR1c2VyY291bnQgPT4gJGdyb3VwX2lkIC4gJGdyb3VwbmFtZSAuICR1c2VyY291bnQgKQoJICovCglmdW5jdGlvbiBHZXRHcm91cHMoKSB7CgkJCgkJJGZldXNlcnMgPSYgJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CgkJaWYoISRmZXVzZXJzKQoJCQlyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCRyZXR1cm5pZCwJJHRoaXMtPkxhbmcoJ2Vycm9yX2ZldXNlcnMnKSk7CgkJCgkJJGRlZmF1bHRfZ3JvdXBzID0gYXJyYXkoKTsKCQkkZGVmX2dyb3VwcyA9IGV4cGxvZGUoJzsnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X2dyb3VwcycsJycpKTsKCQlpZighZW1wdHkoJGRlZl9ncm91cHNbMF0pKSB7CgkJCWZvcmVhY2goJGRlZl9ncm91cHMgYXMgJGRlZl9ncm91cCkgewoJCQkJJGRnID0gZXhwbG9kZSgnLCcsJGRlZl9ncm91cCk7CgkJCQlpZihpc3NldCgkZGdbMV0pKQoJCQkJCSRkZWZhdWx0X2dyb3Vwc1skZGdbMF1dPSRkZ1sxXTsKCQkJfQoJCX0KCQkKCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7CgkJJGdyb3Vwcz1hcnJheSgpOwoJCSRxdWVyeSA9ICJTRUxFQ1QgQ09VTlQoVS5pZCkgQVMgdXNlcmNvdW50LCBHLmlkIEFTIGdyb3VwX2lkLCBHLmdyb3VwbmFtZQoJCQkJCUZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX3VzZXJzIFUgCgkJCQkJTEVGVCBKT0lOICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19iZWxvbmdzIEIKCQkJCQlPTiBCLnVzZXJpZCA9IFUuaWQKCQkJCQlMRUZUIEpPSU4gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX2dyb3VwcyBHIAoJCQkJCU9OIEcuaWQgPSBCLmdyb3VwaWQKCQkJCQlHUk9VUCBCWSBHLmlkIAoJCQkJCU9SREVSIEJZIEcuaWQgQVNDIjsKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCQl3aGlsZSgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkgewoJCQkkZ3JvdXBzWyRyb3dbJ2dyb3VwbmFtZSddLiIgKCIuJHJvd1sndXNlcmNvdW50J10uIiAiLiR0aGlzLT5sYW5nKCJ1c2VycyIpLiIpIl09JHJvd1snZ3JvdXBfaWQnXS4nLCcuJHJvd1snZ3JvdXBuYW1lJ10uJywnLiRyb3dbJ3VzZXJjb3VudCddOwoJCX0KCQlyZXR1cm4gJGdyb3VwczsKCX0KCQoJCgkvKioKCSAqIGZ1bmN0aW9uIEdldEFyY2hpdmVNYWlscygpCgkgKiBub3QgcGFydCBvZiB0aGUgbW9kdWxlIGFwaQoJICogZ2V0cyBhbGwgYXJjaGl2ZSBtYWlscwoJICoKCSAqIEByZXR1cm4gYXJyYXkgLSAoICRtYWlsX2lkID0+IGFycmF5ICgpICkKCSAqLwoJZnVuY3Rpb24gR2V0QXJjaGl2ZU1haWxzKCkgewoJCQoJCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKCQkKCQkkYXJjaGl2ZV9tYWlscyA9IGFycmF5KCk7CgkJJHF1ZXJ5ID0gIlNFTEVDVCBDT1VOVChMLmlkKSBBUyBsb2dzLCBBLiosIEwudG1wX2lkLCBVLnVzZXJuYW1lIAoJCQlGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1bWFpbGVyX2FyY2hpdmUgQSAKCQkJTEVGVCBPVVRFUiBKT0lOICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1bWFpbGVyX2xvZ3MgTAoJCQlPTiBMLmFyY2hpdmVfaWQgPSBBLmlkIAoJCQlMRUZUIE9VVEVSIEpPSU4gIi5jbXNfZGJfcHJlZml4KCkuInVzZXJzIFUKCQkJT04gVS51c2VyX2lkID0gQS5zZW50YnlfaWQgCgkJCUdST1VQIEJZIEEuaWQKCQkJT1JERVIgQlkgQS5zZW5kX2RhdGUgREVTQyI7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgkJd2hpbGUoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpIHsKCQkJCSRhcmNoaXZlX21haWxzWyRyb3dbJ2lkJ11dWydpZCddIAkJCQk9ICRyb3dbJ2lkJ107CgkJCQkkYXJjaGl2ZV9tYWlsc1skcm93WydpZCddXVsnc2VudGJ5J10gCQkJPSAkcm93Wyd1c2VybmFtZSddOwoJCQkJJGFyY2hpdmVfbWFpbHNbJHJvd1snaWQnXV1bJ3JlY2lwaWVudF9ncm91cHMnXSA9ICRyb3dbJ3JlY2lwaWVudF9ncm91cHMnXTsKCQkJCSRhcmNoaXZlX21haWxzWyRyb3dbJ2lkJ11dWydzZW5kX2RhdGUnXSAJCT0gJHJvd1snc2VuZF9kYXRlJ107CgkJCQkkYXJjaGl2ZV9tYWlsc1skcm93WydpZCddXVsnc3ViamVjdCddIAkJCT0gJHJvd1snc3ViamVjdCddOwoJCQkJJGFyY2hpdmVfbWFpbHNbJHJvd1snaWQnXV1bJ2xhc3RfdXNlcmlkJ10gCT0gJHJvd1snbGFzdF91c2VyaWQnXTsKCQkJCSRhcmNoaXZlX21haWxzWyRyb3dbJ2lkJ11dWyd0bXBfaWQnXSAJCQk9ICRyb3dbJ3RtcF9pZCddOwoJCQkJCgkJCQlpZigkcm93WydyZWNpcGllbnRzJ109PSRyb3dbJ3Byb2Nlc3NlZF91c2VycyddKQoJCQkJCSRhcmNoaXZlX21haWxzWyRyb3dbJ2lkJ11dWydlcnJvcmNvZGUnXSAJPSAwOwoJCQkJZWxzZQoJCQkJCSRhcmNoaXZlX21haWxzWyRyb3dbJ2lkJ11dWydlcnJvcmNvZGUnXSAJPSAxOwoJCQkJCgkJCQkkYXJjaGl2ZV9tYWlsc1skcm93WydpZCddXVsncHJvY2Vzc2VkX3VzZXJzJ10gPSAkcm93Wydwcm9jZXNzZWRfdXNlcnMnXTsKCQkJCSRhcmNoaXZlX21haWxzWyRyb3dbJ2lkJ11dWydyZWNpcGllbnRzJ10gCQk9ICRyb3dbJ3JlY2lwaWVudHMnXTsKCQkJCQoJCQkJaWYoJHJvd1snbG9ncyddPjApCgkJCQkJJGFyY2hpdmVfbWFpbHNbJHJvd1snaWQnXV1bJ2xvZ3MnXSAJCT0gdHJ1ZTsKCQkJCWVsc2UKCQkJCQkkYXJjaGl2ZV9tYWlsc1skcm93WydpZCddXVsnbG9ncyddIAkJPSBmYWxzZTsKCQl9CgkJcmV0dXJuICRhcmNoaXZlX21haWxzOwoJfQoJCgkKCS8qKgoJICogZnVuY3Rpb24gR2V0VGVtcE1haWxzKCkKCSAqIG5vdCBwYXJ0IG9mIHRoZSBtb2R1bGUgYXBpCgkgKiBnZXRzIGFsbCB0ZW1wb3JhcnkgbWFpbHMKCSAqCgkgKiBAcmV0dXJuIGFycmF5IC0gKCAkbWFpbF9pZCA9PiBhcnJheSAoKSApCgkgKi8KCWZ1bmN0aW9uIEdldFRlbXBNYWlscygpIHsKCQkKCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7CgkJCgkJJHRtcF9tYWlscz1hcnJheSgpOwoJCSRxdWVyeSA9ICJTRUxFQ1QgQ09VTlQoTC5pZCkgQVMgbG9ncywgVC4qLCBMLmFyY2hpdmVfaWQgQVMgbG9nX2FyY2hpdmVfaWQsIFUudXNlcm5hbWUgCgkJCQkJRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldW1haWxlcl90bXAgVCAKCQkJCQlMRUZUIE9VVEVSIEpPSU4gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVtYWlsZXJfbG9ncyBMCgkJCQkJT04gTC50bXBfaWQgPSBULmlkIAoJCQkJCUxFRlQgT1VURVIgSk9JTiAiLmNtc19kYl9wcmVmaXgoKS4idXNlcnMgVQoJCQkJCU9OIFUudXNlcl9pZCA9IFQuc2VudGJ5X2lkIAoJCQkJCUdST1VQIEJZIFQuaWQgCgkJCQkJT1JERVIgQlkgVC5zZW5kX2RhdGUgREVTQyI7CgkJCgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgkJd2hpbGUoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpIHsKCQkJJHRtcF9tYWlsc1skcm93WydpZCddXVsnaWQnXSAJCQkJPSAkcm93WydpZCddOwoJCQkkdG1wX21haWxzWyRyb3dbJ2lkJ11dWydzZW50YnknXSAJCQk9ICRyb3dbJ3VzZXJuYW1lJ107CgkJCSR0bXBfbWFpbHNbJHJvd1snaWQnXV1bJ3JlY2lwaWVudF9ncm91cHMnXT0gJHJvd1sncmVjaXBpZW50X2dyb3VwcyddOwoJCQkkdG1wX21haWxzWyRyb3dbJ2lkJ11dWydzZW5kX2RhdGUnXSAJCT0gJHJvd1snc2VuZF9kYXRlJ107CgkJCSR0bXBfbWFpbHNbJHJvd1snaWQnXV1bJ3N1YmplY3QnXSAJCQk9ICRyb3dbJ3N1YmplY3QnXTsKCQkJJHRtcF9tYWlsc1skcm93WydpZCddXVsnbGFzdF91c2VyaWQnXSAJCT0gJHJvd1snbGFzdF91c2VyaWQnXTsKCQkJJHRtcF9tYWlsc1skcm93WydpZCddXVsnYXJjaGl2ZV9pZCddIAkJPSAkcm93Wydsb2dfYXJjaGl2ZV9pZCddOwoJCQkkdG1wX21haWxzWyRyb3dbJ2lkJ11dWydhX2lkJ10gCQkJPSAkcm93WydhcmNoaXZlX2lkJ107CgkJCSR0bXBfbWFpbHNbJHJvd1snaWQnXV1bJ3Rhc2snXSAJCQk9ICRyb3dbJ3Rhc2snXTsKCQkJJHRtcF9tYWlsc1skcm93WydpZCddXVsnYXV0b3NhdmUnXSAJCT0gJHJvd1snc2F2ZV9tZXNzYWdlJ107CgkJCQoJCQlpZigkcm93WydyZWNpcGllbnRzJ109PSRyb3dbJ3Byb2Nlc3NlZF91c2VycyddKQoJCQkJJHRtcF9tYWlsc1skcm93WydpZCddXVsnZXJyb3Jjb2RlJ10gCT0gMDsKCQkJZWxzZQoJCQkJJHRtcF9tYWlsc1skcm93WydpZCddXVsnZXJyb3Jjb2RlJ10gCT0gMTsKCQkJCgkJCSR0bXBfbWFpbHNbJHJvd1snaWQnXV1bJ3Byb2Nlc3NlZF91c2VycyddID0gJHJvd1sncHJvY2Vzc2VkX3VzZXJzJ107CgkJCSR0bXBfbWFpbHNbJHJvd1snaWQnXV1bJ3JlY2lwaWVudHMnXSAJCT0gJHJvd1sncmVjaXBpZW50cyddOwoJCQkKCQkJaWYoJHJvd1snbG9ncyddPjApCgkJCQkkdG1wX21haWxzWyRyb3dbJ2lkJ11dWydsb2dzJ10gCQk9IHRydWU7CgkJCWVsc2UKCQkJCSR0bXBfbWFpbHNbJHJvd1snaWQnXV1bJ2xvZ3MnXSAJCT0gZmFsc2U7CgkJfQoJCXJldHVybiAkdG1wX21haWxzOwoJCQoJfQoJCgkKCS8qKgoJICogZnVuY3Rpb24gR2V0R3JvdXBzKCRtYWlsX2lkLCRtYWlsX3R5cGUpCgkgKiBub3QgcGFydCBvZiB0aGUgbW9kdWxlIGFwaQoJICogZ2V0cyBhbGwgZGF0YSBvZiBvbmUgc3BlaWNpZmVkIG1haWwKCSAqCgkgKiBAcGFyYW0gaW50ZWdlciAkbWFpbF9pZCAtIFRoZSBJRCBvZiB0aGUgbWFpbAoJICogQHBhcmFtIHN0cmluZyAkbWFpbF90eXBlIChvcHRpb25hbCkgLSAidG1wIiBvciAiYXJjaGl2ZSIgKGRlZmF1bHQgaXMgImFyY2hpdmUiKQoJICogQHJldHVybiBhcnJheXxmYWxzZQoJICovCglmdW5jdGlvbiBHZXRNYWlsKCRtYWlsX2lkLCRtYWlsX3R5cGU9ImFyY2hpdmUiKSB7CgkJCgkJJGRiID0mICR0aGlzLT5HZXREYigpOwoJCQoJCSRxdWVyeSA9ICJTRUxFQ1QgQ09VTlQoTC5pZCkgQVMgbG9ncywgTS4qLCBMLiIuJG1haWxfdHlwZS4iX2lkLCBVLnVzZXJuYW1lIAoJCQkJCUZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVtYWlsZXJfIi4kbWFpbF90eXBlLiIgTSAKCQkJCQlMRUZUIE9VVEVSIEpPSU4gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVtYWlsZXJfbG9ncyBMCgkJCQkJT04gTC4iLiRtYWlsX3R5cGUuIl9pZCA9IE0uaWQgCgkJCQkJTEVGVCBPVVRFUiBKT0lOICIuY21zX2RiX3ByZWZpeCgpLiJ1c2VycyBVCgkJCQkJT04gVS51c2VyX2lkID0gTS5zZW50YnlfaWQgCgkJCQkJV0hFUkUgTS5pZD0iLiRtYWlsX2lkLiIKCQkJCQlHUk9VUCBCWSBNLmlkIjsKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCQlpZigkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKCQkJcmV0dXJuICRyb3c7CgkJZWxzZQoJCQlyZXR1cm4gZmFsc2U7Cgl9CgkKCQoJLyoqCgkgKiBmdW5jdGlvbiBDcmVhdGVMb2coJHBhcmFtcykKCSAqIG5vdCBwYXJ0IG9mIHRoZSBtb2R1bGUgYXBpCgkgKiBjcmVhdGUgYSBsb2cgZW50cnkKCSAqCgkgKiBAcGFyYW0gYXJyYXkgJHBhcmFtcwoJICogQHJldHVybiBpbnRlZ2VyfGZhbHNlIC0gVGhlIGxvZyBJRCBvciBmYWxzZSBpZiBmYWlsCgkgKi8KCWZ1bmN0aW9uIENyZWF0ZUxvZygkcGFyYW1zKSB7CgkJCgkJJGRiID0mICR0aGlzLT5HZXREYigpOwoJCQoJCWlmKCRwYXJhbXNbMF09PScnKQoJCQkkcGFyYW1zWzBdID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVtYWlsZXJfbG9nc19zZXEiKTsKCQkKCQkkcXVlcnkgPSAiSU5TRVJUIElOVE8gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVtYWlsZXJfbG9ncyAKCQkJCQkJKGlkLAoJCQkJCQlhcmNoaXZlX2lkLAoJCQkJCQl0bXBfaWQsCgkJCQkJCXNlbnRieV9pZCwKCQkJCQkJcmVjaXBpZW50X2lkLAoJCQkJCQlyZWNpcGllbnRfZ3JvdXBzLAoJCQkJCQlzZW5kX2RhdGUsCgkJCQkJCWVycm9yY29kZSwKCQkJCQkJc3ViamVjdCwKCQkJCQkJdG1wX2Vycm9yY29kZSwKCQkJCQkJcmVjaWV2ZWQpCgkJCQkJVkFMVUVTICg/LD8sPyw/LD8sPywiLiRkYi0+REJUaW1lU3RhbXAodGltZSgpKS4iLD8sPyw/LD8pIjsKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCAkcGFyYW1zKTsKCQlpZighJGRicmVzdWx0KSB7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJcmV0dXJuICRwYXJhbXNbMF07CgkgfQoJCgkKCS8qKgoJICogZnVuY3Rpb24gVXBkYXRlTG9nKCRwYXJhbXMpCgkgKiBub3QgcGFydCBvZiB0aGUgbW9kdWxlIGFwaQoJICogY3JlYXRlIGEgbG9nIGVudHJ5CgkgKgoJICogQHBhcmFtIGFycmF5ICRwYXJhbXMKCSAqIEByZXR1cm4gYm9vbGVhbgoJICovCgkgLyogTm90IHVzZWQgeWV0CglmdW5jdGlvbiBVcGRhdGVMb2coJHBhcmFtcykgewoJCQoJCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKCQkKCQkkcXVlcnkgPSAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1bWFpbGVyX2xvZ3MgCgkJCQkJU0VUIHNlbmRfZGF0ZT0iLiAkZGItPkRCVGltZVN0YW1wKHRpbWUoKSkgLiIsIHRtcF9lcnJvcmNvZGU9Pywgc2VudGJ5X2lkPT8gCgkJCQkJV0hFUkUgYXJjaGl2ZV9pZD0/IEFORCByZWNpcGllbnRfaWQ9PyI7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwkcGFyYW1zKTsKCQlpZighJGRicmVzdWx0KSB7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJcmV0dXJuIHRydWU7Cgl9CgkqLwoJCgkKCS8qKgoJICogZnVuY3Rpb24gR2V0TG9ncygpCgkgKiBub3QgcGFydCBvZiB0aGUgbW9kdWxlIGFwaQoJICogZ2V0cyBhbGwgbG9ncwoJICoKCSAqIEByZXR1cm4gYXJyYXkKCSAqLwoJZnVuY3Rpb24gR2V0TG9ncygpIHsKCQkKCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7CgkJCgkJJHF1ZXJ5ID0gIlNFTEVDVCBNQVgoTC50bXBfZXJyb3Jjb2RlKSBBUyBsb2dfZXJyb3IsIEwuKiwgVS51c2VybmFtZSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1bWFpbGVyX2xvZ3MgTCAKCQkJCQlMRUZUIE9VVEVSIEpPSU4gIi5jbXNfZGJfcHJlZml4KCkuInVzZXJzIFUgCgkJCQkJT04gVS51c2VyX2lkPUwuc2VudGJ5X2lkIAoJCQkJCUdST1VQIEJZIEwudG1wX2lkIAoJCQkJCU9SREVSIEJZIEwuc2VuZF9kYXRlIERFU0MiOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJCSRyZXN1bHQgPSBhcnJheSgpOwoJCXdoaWxlKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSB7CgkJCQoJCQkkcmVzdWx0W10gPSAkcm93OwoJCQkKCQl9CgkJcmV0dXJuICRyZXN1bHQ7Cgl9CgkKCQoJLyoqCgkgKiBmdW5jdGlvbiBHZXRMb2dJRCgkbWFpbF9pZCwgJHVzZXJpZCkKCSAqIG5vdCBwYXJ0IG9mIHRoZSBtb2R1bGUgYXBpCgkgKiBnZXRzIHRoZSBJRCBvZiBhIGxvZyBlbnRyeQoJICoKCSAqIEBwYXJhbSBpbnRlZ2VyICRtYWlsX2lkCgkgKiBAcGFyYW0gaW50ZWdlciAkdXNlcmlkCgkgKiBAcmV0dXJuIGludGVnZXIKCSAqLwoJZnVuY3Rpb24gR2V0TG9nSUQoJG1haWxfaWQsICR1c2VyaWQpIHsKCQkKCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7CgkJCgkJJHF1ZXJ5ID0gIlNFTEVDVCBpZCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1bWFpbGVyX2xvZ3MgCgkJCVdIRVJFIGFyY2hpdmVfaWQ9PyBBTkQgcmVjaXBpZW50X2lkPT8iOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRtYWlsX2lkLCAkdXNlcmlkKSk7CgkJaWYoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCgkJCXJldHVybiAkcm93WydpZCddOwoJCQoJCXJldHVybiBmYWxzZTsKCQkKCX0KCQoJCgkvKioKCSAqIGZ1bmN0aW9uIFRyYWNrQnVnKCRsb2dfaWQpCgkgKiBub3QgcGFydCBvZiB0aGUgbW9kdWxlIGFwaQoJICogY2hlY2sgaWYgYSBtYWlsIGhhcyBiZWVuIHJlYWQKCSAqCgkgKiBAcGFyYW0gaW50ZWdlciAkbG9nX2lkCgkgKiBAcmV0dXJuIGZpbGUKCSAqLwoJZnVuY3Rpb24gVHJhY2tCdWcoJGxvZ19pZCkgewoJCQoJCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKCQkKCQkkcXVlcnkgPSAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1bWFpbGVyX2xvZ3MgCgkJCQkJU0VUIHJlY2lldmVkID0gPyBXSEVSRSBpZD0/IjsKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KHRydWUsJGxvZ19pZCkpOwoJCQoJCSRpbWdfZmlsZSA9IGRpcm5hbWUoX19GSUxFX18pLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4naW1hZ2VzJy4gRElSRUNUT1JZX1NFUEFSQVRPUiAuJ3RyYWNrQnVnLmdpZic7CgoJCWlmKGZpbGVfZXhpc3RzKCRpbWdfZmlsZSkgJiYgaXNfcmVhZGFibGUoJGltZ19maWxlKSkgewoJCQkKCQkJb2JfZW5kX2NsZWFuKCk7CgkJCW9iX3N0YXJ0KCk7CgkJCQoJCQloZWFkZXIoIkNvbnRlbnQtVHlwZTogaW1hZ2UvZ2lmIik7CgkJCWhlYWRlcignQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lOyBmaWxlbmFtZT1sb2dvLmdpZicpOwoJCQloZWFkZXIoIkNhY2hlLUNvbnRyb2w6IG5vLXN0b3JlLCBuby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRlIik7CgkJCWhlYWRlcigiQ2FjaGUtQ29udHJvbDogcG9zdC1jaGVjaz0wLCBwcmUtY2hlY2s9MCIsIGZhbHNlKTsKCQkJaGVhZGVyKCJQcmFnbWE6IG5vLWNhY2hlIik7CgkJCXJlYWRmaWxlKCRpbWdfZmlsZSk7CgkJCQoJCQlvYl9lbmRfZmx1c2goKTsKCQl9CgkJCgkJZXhpdDsKCX0KCQoJCglmdW5jdGlvbiBEZWxldGVNYWlsKCRtYWlsX3R5cGUsJG1haWxfaWQpIHsKCQkKCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7CgkJCgkJJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1bWFpbGVyXyIuJG1haWxfdHlwZS4iIAoJCQkJCVdIRVJFIGlkPSIuJG1haWxfaWQuIiBMSU1JVCAxIjsKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCQlyZXR1cm4gJGRicmVzdWx0OwoJfQoJCgkKCWZ1bmN0aW9uIERlbGV0ZUxvZygkbWFpbF90eXBlLCAkbWFpbF9pZCkgewoJCQoJCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKCgkJJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1bWFpbGVyX2xvZ3MgCgkJCQlXSEVSRSAiLiRtYWlsX3R5cGUuIl9pZD0iLiRtYWlsX2lkOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJCXJldHVybiAkZGJyZXN1bHQ7Cgl9CgkKCQoJLyoqCgkgKiBmdW5jdGlvbiBJc1ZhbGlkRW1haWxBZGRyZXNzKCRlbWFpbCkKCSAqIG5vdCBwYXJ0IG9mIHRoZSBtb2R1bGUgYXBpCgkgKiBjaGVja3MgaWYgYW4gZW1haWwgYWRkcmVzcyBpcyB2YWxpZCBvciBub3QKCSAqCgkgKiBAcGFyYW0gc3RyaW5nICRlbWFpbCAtIHRoZSBlbWFpbCBhZGRyZXNzIHRvIGNoZWNrCgkgKiBAcmV0dXJuIGJvb2xlYW4KCSAqLwoJZnVuY3Rpb24gSXNWYWxpZEVtYWlsQWRkcmVzcyggJGVtYWlsICkgewoJCWlmKCBlcmVnaSgiXltfYS16MC05LV0rKFwuW19hLXowLTktXSspKkBbYS16MC05LV0rKFwuW2EtejAtOS1dKykqKFwuW2EtejAtOV17Miw0fSkkIiwgJGVtYWlsICkgKSAKCQkJcmV0dXJuIHRydWU7CgkJZWxzZQoJCQlyZXR1cm4gZmFsc2U7Cgl9Cgp9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/ajax-loader.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhIAAgAPMAAMzMzAAAAJ+fn2pqapKSknt7eysrK0VFRa2trbe3t5aWlhgYGAMDAwAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ/V/nmOM82XiHRLYKhKP1oZmADdEAAAh+QQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY/CZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB+A4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6+Ho7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq+B6QDtuetcaBPnW6+O7wDHpIiK9SaVK5GgV543tzjgGcghAgAh+QQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK++G+w48edZPK+M6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE+G+cD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm+FNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk+aV+oJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0/VNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc+XiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30/iI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE/jiuL04RGEBgwWhShRgQExHBAAh+QQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR+ipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY+Yip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd+MFCN6HAAIKgNggY0KtEBAAh+QQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1+vsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d+jYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg+ygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0+bm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h+Kr0SJ8MFihpNbx+4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX+BP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA==]]></data>
	</file>
	<file>
	  <filename>/images/continue.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFwAUAMQfAP/mcP72yM/P0P7wr//rkPz89rK2tWdnaZW1zuevUYaLh6NmUCQkJOfm45Wwu/763mWRvM21pFFuhtjatdqSLbyDX4edrdrb15+aj+Xepu/x8cLCwKu+2KSfrNfIZf///yH5BAEAAB8ALAAAAAAXABQAAAX/4KchZGk6aOog2idyRfw8QT0MRA7sgGe1rMJsZrvhCLwd5gdxaIa1gDGH5HkUkg6iYYEWj9SewiNRIAoXSyNqvNVok02vjJilv4PAo9C4XJ4DGRIYCFETFnluaAcMjQwHFw8OhFEBh4oGjQoGBgqNGw0bhUYTBhYZDwKPDRobEQ0NjAIXCKQGBBkwjH4YFb4RqgcaDjelOHkXDAocvQkJFAsIGAwNCASlVAQBqgK9FTvPFRsMBg4Zt9mpDBsWBwsJANAd4wYQGzpI2skYAhELC9DETbtQZkcVAAM0MNLQIIK/A8AeFTBQMIm2YE8KKIAkq4AGAwckiBzpJBO5AtM+JMUQAXKjSwWgBBw4oNHRgQ4FXGgQsKGnz1kagjI00KHoBg0hAAA7]]></data>
	</file>
	<file>
	  <filename>/images/continue_inactive.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFwAUALMAANbW1vT09Obm5uvr6+Hh4f///6CgoNLS0ra2tnFxccvLy/v7+8LCwv39/d3d3f///yH5BAEAAA8ALAAAAAAXABQAAAT/8LVDq1U4q9OedEW4LEE5DEQKrADDdFwxjuaJEuzqNojSzKWALYVjMRAGBSDAANZuxBaCYUAcCgNGUGgblEgER6t6GGWf3kWB+0MZGIcggeE9BbCGhD5hGCwUcFtzdgUAelYACHoOAQ5xQy0ECwJ8AQ1iJXkCAweQKSB5J0cICACUBg0KJzgodQkIDkcMCkgtCQEHKkQEAZQCozqkDgkACgS5u5MJsVUMiVMExLC6ALwDCQwCAFVIsAwJA1UrRQADDXkNASsGBg6nheI5vKcNDQVI4QkCBQ3b7P9J+ukBUODbohAPFmzrxo2RAHb39iQp4KGBAAcYM26qV09dBgcNAiIAADs=]]></data>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhQABAAPf/AP/53f/64DNEUf/20tnm8yczPf/2yf/996Wssv/qtf/ws5pzNQBIm7OjeP/52f/2zJaWlv/ox//51RMXGoKfvf/UKv/1xGhIHC4jEwCYO+qsVd3j6f/YPZF1Uv/40UQ0Jv/WMv/xuv/gZf/75MmugwdNIzY3N//dVv/ojRA4R//kef/qmP/hav/icf/vrv/nhWlpabOHP//97BYqNjA/Sv/86f/lfWNPNP/fXGyZxEovD//mgf/pkVpKN//ibf/tpf/aRv/eWQABAwB2K3R0dCizV6yIWv/soherJv/zwv/bSRghJ//kdv/1wf/sn//oif/cUf/qlcPT4v/uqf/ZQv/wxf/gYf/85uLs9v/yvv/66G1dSf/98CUmJv/31//bTAQMEwCHI//rm//cTf/niP/jdf/XOf/4zv/fYP/1vgEnO3fnVmh3gv/0ux04KP/fu//47//69f/drCEqMv/etf/pvv/Yq//Xpf/PlP/WnoX0G0vEJFOFCP/36O/v7yw5RP/Jhf///9/f3yO0MtbW1ubm5kJUYf/Devf39//NjAKlOoCMlA0HBP/Aa1JRUVpaWrW/xf/MZvr27v/NeUlcaUlJSlNibsjP08zMzNLPyu/q5NTX23WEjv/Ec7e3t0RSWvnw5IyMjNaaOX5jQPa9YqKiov/Uf//bjRIQD//hnL29vdyjTevk3f/Jaqu1vL7DycTExYODg/bs2f+7WMzd7NebScTazPvVlOO/kkFBP//77vr8/tGTQY+CXgRmtXV8NCgxLOjPsv/dlMWcb//v3hw1PgBUopeep+fv9/H0902nbNuydv/ohbZ/MquNZmKNOL3P4PGlRO/x/zTJQAEZJgGdL5mlrjtUFKL/M+3LcJy401tiTjdMMu3KlUqTbv+3Q1OmW7vErcvZ5iYbDW2Ve1+ODAItFVJZX+61aKXXt4eXqf/dcciNMODn8DacYf/lp9eYRP/76/LbwAA2fe3Bhv/0x0yJvSVdlQBAiIteHs3W4cCWXdHd6WaZzDNmmf///yH5BAEAAP8ALAAAAABAAEAAAAj/AP8JHEiwoMGD/wpBMMFICCMTEAohnEixosWBnmB0ATNhiccJYLrA8BTKUaVHsQRdXMnyH6ZKQpZ84oQA0itICDh9WiJkQoE/YEyobEkUIQRUMtksWsqUKZtPAgRMgFG0qsFQQgpQ2mqoq1evXGkICWW17L9SQv5EXcu27do/QkqZLZoJ1RwBf/Lq3cs3r4A5qDLNbelowp8CiBMrXqz4zwRHg1eqYjSnsuXLmOcsKYCZkarIFmGA0eyxdOkZM4rNoGZi1JLUHueAoQqaYpeOpl+nTlEsBTUwuZadGgUG9ccutScS6tlxRorn0H+D+WAk0Z08iUYJ4ThhghBCyQ1C/+gORoj589tRYdgyDE+CBHby5Dm170ND7nLDCzzagAQjDDp88EEPW3TgDC52JFDHgnTQcQceeJjSCS8XCEFCA6hAoB8hEwzDjCiMwNPKJMKk8s57dUSg4hssvhEfHoB00kotjIjCzDATgJdcLB+08o0oGKzSyCGJ4HGHHA3W0WKLcuQBYyeN1IKBKN+08kEs4T1yQSSzaKCDkIcAYiSSSy4px4OAHNJIM+M0xMg4lQjkx1BzxaLDLJMAskAtQ4p5JIsLBloHHXbYAWMHH3RhwjkwnGPCEo8QUUkuJnxmFiGoLBBJKvRE06eRdySp4oou5rHMBzJxYo0rrFrDyV80LP9BhERzhcJIPqKI4mmYeORhR4N0CMqiHSRgoJUlllACFrKWCICKjoNBAAwjjGzJax5HylGmi7h0UUBUNIQr7rgCFAAMrYMVgomtq+RZ5B1HAgusHT0sQcNPjC0W6yPhmbBlIkViG++8JIzGWWZzFOPRwQWAgUlysDDSjCkQCizHxRhvgZtpqKkGRg8dUDPDR7TVFgoqvJhyR6F2YIwxBrg595wav03QwS2pEEdNd8j1K3Erd2wbjMblbQcGGOr10Es3CTQpjBEYUDuVH6AhYEIXn1hihAad3JFiBPIojeEFo4xiIAnd1FFFFSw+eEonMaDSQC+QzeXHI6hYok5OnKj/QoIGpDTSyAI3qMCODpGYIsyJa5NaKiCTRKIDO2XcoGFZhZhgwjGuIIDAMYvoQ8smrMSSwhyaUkgKkb5uW2oih5ByAS+RLFB3VZk74gokvPN+DCSIIELBPPioccE6t2zNuh2uxwe7Bkbcss4FRJT1SCUbvPLKJdxf8goCyRRyDwPG4DPBAtmQMsvySQZKaB4xzkJKNgt8QCdRnkwgSCGXbOL//5h4BSG04YsCqsMEAIJHnsZEBzOhaRK10IEOTPAwivTjghjMoAY3iEFtGOOD2tAEAmBwgUkE7FfyehHkqFdBCx6AC/HQQgAAMIAB1CMJIVCAC37ghBXw4Ak7sEEL/1ggAhz0g3wMyMEB5tSFGAgDQvBy2XXmE4MuUK0i/XihDLQgQwd44QE3zOEOe/jDHahgiEU8gT+MkcRA7GIXnviABlLBMpddLBUa+IClXMgFGF5hhl4YABizIEYeRoEHZDAjGnFwgjGs0R6BiCQiKhEkU7SPQYBYBQbiZJF++EMXMRwBALwoyCRkQQEKmMIPxBAFFLxAkSywQhDU6A81zMARjjABKkpQAnLgAh2AwBgg0IELcvASGAjAYjz8oYURAFKQYdThFI4gBh640gZMaIEI0BAEf3zBH+gxxxAyEAZ3SIMVwfiFOoPBCmm4IwwZGII5HFGKUsDiIP1opj8AAP+AQA7AABYgpA556EMUBJEJPtimP6CgBH/AIhzbKIEiMkDRMKQjEN4Y5xC8EYh0wDMDEy3BNsJxT4P0AwAz9Ic/wYhDVE6TlYiEpQj8cQIoAMEfmYCAG4qgiJ4qohpFUEYYfBoGZRShGj5VRBHcAAHBmHSUXvQHNHFYSDJeM5ss8Acjx3BTQeQCHNMYhFjFigQkjJWsZj3rNMCRi/sNpB/+FKQ/bihQF7z0kIm0QRl84A9uQoGr/vAEN9awh8Ia9rCITewauOEJfAryAWCshz/qqkqrvsAGZ/RHGhlKBX8Q4RnY0INoR0va0poWG8+onkkNUI96WMCUIfCHNHnIShT/JFIFTNCsLE/wBSB09hHXKAcfhkvc4hr3uOW4Br9MmgRTEjKHCvBHZWH6hMvmloiMZCgQOOCPXKDnu+AN73mWW5B+hOC80HVBP6bgDydQ97Iq8IcP+rFbrlKBu9wjBCEyAQtb2EIQoCBGH/oAhwETAxQb8C8mrjiRfqASlS5Q7w+O4AR/+MOar7SwD2LZj5oqYbtm8ActCBDJSO5XFgSGQxxWDIcCyyIT0LJghO06hX5QWAwrOKSFLYzVIgahH/blAAhE3I4S+4EQKG6xkpfcB2LEuME/iPIP+uHeHFuTDK/UKxrRgAMoQKEf9zXDkGmBDDciAskpXrKa+yCLJ+PT/wlw7geOD2lNIJqxx1z2MBD6IeYhEyAZu/BDIViRZhWvmMVK7gMr0IWQfqxgBf2gMwpsm2UVlAGNVshub+/bDxBUwB8EmJMgAJzmQ5s60aAYtVsJ0g8etHrST8ByELG5VyLmGQqb5oCY+/HpdghCEwVOsakPQOxTBxsOmmA0QfzRDzI4+5WztvQQiZjpmua6zxXw5AY0oYs4gELYcSC2uIsdhxb3ARRx0IUmGFwQf+wgiEHE7aU3LIIiZncMSggzCDz9aUH7QReSALahxz3uQ7dYE5LQhR/Y3W55Z7MFaNwmI63tW13vuwKfXrEk/HCAja943IEgOLnj4AdJLLEi/taAuA/oLfFZevnD+ua3P4gd8mQgguSSQETOg0fzkBd848G7yI6HTvSiD10/FYGGBDzAdA+c4QyQNYDUAWoBCzShCWlIQxvaAA2kI0QKEnCABMZOdqY/PepSr7rVsZ4FKXi9IFLgp9wdQHe6l93sUJ+62pvg9rf/QxwECIAznRmAws+97mNvOtTRTgBx+L0dNYD8FSZ/hRFYnvAzPLzYl870dniAH37HggxkIPrRy6AGqKf85TF/eCx4cQN+R0YfuSD7PsqAC6aPB+pTX3nLFx4Zhm+HfgICADs=]]></data>
	</file>
	<file>
	  <filename>/images/newmail.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFwAUAMQfAP/lb/Pz7f7xsP73zpa2z05qgf/og//sl2uKlZmidZGSjHN0d5Swu//dSK63sv/iWd3brf/dO5ehkNzIT7nDpNnPdOrcdeDj3Ly9iIOes8K9csTExAAzZv///8zMzP///yH5BAEAAB8ALAAAAAAXABQAAAXm4BcQZGkyaMoQwScSXTzMg2Afh2EAz1NlLZYsQLMJcDoAr5EAZhhE2syI3PE0iIKDcAF2irfqNTEpKGBdcDgJ0CQa5fOsK5iud5hEL06gQTJUVQYaMR5wZn01A39hOQZ5HRyGfEYCEA4SEFV5FJEeEZQ2l5YIEhgYpQAVnqBmDKIORzgYEhIWPA+sZQgEB5c4jjoxw57EDL/BVpEczM3OCBQ60lYAHtbXktceZmxKuD0N4Z5lBRIOZt483+EREZ4F5RcB5/D19vbvChcu8wv+/wD/eZKwz4UIDxsQKky4gWEHawU/hAAAOw==]]></data>
	</file>
	<file>
	  <filename>/images/resend_all.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFwAUAMQfAP72y//wr87Ozv/qkvz79bO3tWVlZv/mdJa2z4eLh/764Ofp6CQkJNnZtpWwu1yBoE9shdvOauvck//mV//fWdrb14KetefhqZujb/Dx8cLEv4ygoZqZmce/cNfNWf///yH5BAEAAB8ALAAAAAAXABQAAAX/4JchZGk6aOog2SciRKwoABDcQ34c0xRZLRZhRqvZcIPdgTLBAC2OzLB4DOSSu0knASkgKpaZ8Ya8HjoYDyQBAxurg8C7ojmo2TR3Va4gLCoVCzQSEBwIRg0WF0cABBUGDJEMBhUEDoZvFxsXcgQFkQkFBQmRGgteZAENBZsKApMLBBl9C5ACFQhkqwEXBQSQCwu8GgMKC5MZDje7OQoVDBwEATwRBQMEHAwLCAOrV8WvGgoDFEweGgAaDAUOvd8DAOHj5UsSp+sPxAdY8M/RSaokFMtWYY0SJQEyQJolJ4EBBRkmeYKw4eC+eLBiOHzEQICsAgYgiBT5IMqnddgkJWmI8eGUw5cGQi0QYMAAAVKRDERzkUGDz58CbkmJdYpDAQ4rQwAAOw==]]></data>
	</file>
	<file>
	  <filename>/images/resend_errors.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFwAUAMQfAMjIyP7wrvb29f/rlLS4tl1dXZa2zv/0w/751v787P/ndo+Sj296genq6tjatSYmJperu1BshNTKZdrb1//1R4KeteXeppujb/Dx8YygoZ6enf//JP//AAAAAP///////yH5BAEAAB8ALAAAAAAXABQAAAX/4IcZZFlChqeuBvaJqZckCHIcQTB4Xd95koqrNaPZbrldh8P5US7CCgRjPOZ0POZPwogQDJNKrYZMZpueiySyMCTCjVs5d/4p1u2aozIPHBB1HgcWbAZje345B2+BEwkQGgZyBw4Zih4ED4EPBA1fODgOBBkWbw8FgQUPExMGV6IBFgQCqg08Ph4NpyM5sAMDCBMPCyvFCQsPDQYDor+/CAAPAIA+PwiZX7LOCsDR0zwbFD+enAwE3ArpAwfCCwm3PTIaqxEZ6fcKAbQPGCsLqBgeMMBAgA0+btB2zfg3gYE0AQQLRJg4kcGUTJw8zHvASYAHEQQYiBy5gAAGAAVQFy3wUUCDgBcnAcicCWBCPwwCPBHYOSsEADs=]]></data>
	</file>
	<file>
	  <filename>/images/resend_errors_inactive.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFwAUALMAAODg4Orq6v///9TU1JeXl/Hx8ff399fX17q6unJycsvLy8LCwq6urlhYWP///////yH5BAEAAA8ALAAAAAAXABQAAAT58JlBa1XD6T3Ee0LmCIJhFEUQAE7jNs6yGM9gkOWJqmzDMLAFYiFYKEgmnWrV+gUZBEpgltzxmkAHQ0FAdKY6qwoLOywIC5sBsBAHCgayowDoqteLt6ogCMgDAgoYKCgACHsOAwlyCTYUKSkAAwsAfQkEcgQJKgNLkisdmnEvMAaXITydAAAGAQkIG7ECCAkTqwOrq2sJrC0vDhONuLirB6wAvKMICqWKAwwDxgfTACmvAr4uIwubaNPfB4Ca2BoImAIJDAYHXeDGuwQ45gEMvCQDBARQ+lvBjTEJAnZwAOLZDygMvAiogwnBCzQeJOSaCAAQsBIWOkQAADs=]]></data>
	</file>
	<file>
	  <filename>/images/trackBug.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEZyb250ZW5kVXNlciBNYWlsZXIgKGMpIDIwMDgtMjAxMCBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkKIyAgICAgICAgICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGJhY2tlbmQgdXNlcnMgYWJpbGl0eSAKIyAgICAgICAgICB0byBlYXNpbHkgc2VuZCBhbiBlbWFpbCB0byBhbGwgZnJvbnRlbmQgdXNlcnMgb3IganVzdCBzcGVjaWZpYyBmcm9udC0KIyAgICAgICAgICBlbmQgdXNlcmdyb3VwcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZCB3ZWJzaXRlLgojIFZlcnNpb246IDAuOS40CiMgRmlsZSAgIDogZGVfREUucGhwIChnZXJtYW4gbGFuZ3VhZ2UgZmlsZSkKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA0LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gCiMgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCi8vIGdlbmVyYWwgc3R1ZmYKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zyb250ZW5kVXNlcnMgTWFpbGVyIE1vZHVsJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnSW5zdGFsbGF0aW9uIGRlcyBGcm9udGVuZFVzZXJzIE1haWxlciBNb2R1bCBiZWVuZGV0LiA8YnIgLz5TdGVsbGVuIFNpZSBzaWNoZXIsIGRhc3MgQmVudXR6ZXIsIGRpZSBOYWNocmljaHRlbiBhbiBCZW51dHplciBkZXMgRnJvbnRlbmRVc2VycyBNb2R1bHMgc2VuZGVuIGQmdXVtbDtyZmVuLCBkaWUgQmVyZWNodGlndW5nICJVc2UgRkVVTWFpbGVyIiBoYWJlbi4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0Zyb250ZW5kVXNlcnMgTWFpbGVyIE1vZHVsIGRlaW5zdGFsbGllcnQuJzsKJGxhbmdbJ3JlYWxseV91bmluc3RhbGwnXSA9ICdTaW5kIFNpZSBzaWNoZXIsIGRhc3MgU2llIGRhcyBGcm9udGVuZFVzZXJzIE1haWxlciBNb2R1bCBkZWluc3RhbGxpZXJlbiB3b2xsZW4/XFxuRGFiZWkgd2VyZGVuIGFsbGUgZ2VzcGVpY2hlcnRlbiBOYWNocmljaHRlbiBlYmVuZmFsbHMgZ2Vsb2VzY2h0Lic7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsIGRlaW5zdGFsbGllcnQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsIFZlcnNpb24gJXMgaW5zdGFsbGllcnQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnRGllc2VzIE1vZHVsIGJpZXRldCBCZW51dHplcm4gZGVzIEJhY2tlbmRzIGVpbmUgZWluZmFjaGUgTSZvdW1sO2dsaWNoa2VpdCBFbWFpbHMgYW4gQmVudXR6ZXIgZGVzIEZyb250ZW5kVXNlcnMgTW9kdWxzIHp1IHNlbmRlbi4nOwokbGFuZ1snY2Fubm90Y29udGludWUnXSA9ICdLZWluZSBhcmNoaXZpZXJ0ZSBNYWlsIGdlZnVuZGVuLiBEaWVzZXIgVm9yZ2FuZyBrYW5uIG5pY2h0IGZvcnRnZXNldHp0IG9kZXIgd2llZGVyaG9sdCB3ZXJkZW4uJzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2FzIG1hY2h0IGRpZXNlcyBNb2R1bD88L2gzPgo8cD5EaWVzIGlzdCBlaW4gZWluZmFjaGVzICJFbWFpbCBNb2R1bCIuPGJyIC8+CkVzIGJpZXRldCBCZW51dHplcm4gZGVzIEJhY2tlbmRzIGRpZSBNJm91bWw7Z2xjaGtlaXQgRW1haWxzIGFuIHZlcnNjaGllZGVuZSBCZW51dHplcmdydXBwZW4gZGVzIEZyb250ZW5kVXNlcnMgTW9kdWxzIHp1IHNlbmRlbi48YnIgLz4KSW4gZGVuIEVtYWlscyBrYW5uIFNtYXJ0eS1TeW50YXggdmVyd2VuZGVuIHdlcmRlbiwgdW0gei5CLiBCZW51dHplcmVpZ2Vuc2NoYWZ0ZW4gb2RlciBMaW5rcyBldGMuIGVpbnp1ZiZ1dW1sO2dlbi48YnIgLz4KR2VzZW5kZXRlIE5hY2hyaWNodGVuIGsmb3VtbDtubmVuIGluIGRlciBEYXRlbmJhbmsgZ2VzcGVpY2hlcnQgd2VyZGVuLjxiciAvPgo8YnIgLz4KWnUgc2VuZGVuZGUgTmFjaHJpY2h0ZW4gd2VyZGVuIGluIGRlciBEYXRlbmJhbmsgdGVtcG9yJmF1bWw7ciB6d2lzY2hlbmdlc3BlaWNoZXJ0IHVuZCB3JmF1bWw7aHJlbmQgZGVzIFNlbmRlbnMgc3QmYXVtbDtuZGlnIG1pdCBkZXIgSUQgZGVzIGxldHp0ZW4gYmVhcmJlaXRldGVuIEJlbnV0emVycyBha3R1YWxpc2llcnQuPGJyIC8+ClNvbGx0ZSBlcyB3JmF1bWw7aHJlbmQgZGVzIFNlbmRldm9yZ2FuZ3MgenUgVW50ZXJicmVjaHVuZ2VuIGtvbW1lbiwga2FubiBkYXMgTW9kdWwgZGVuIFNlbmRldm9yZ2FuZyBzb21pdCB2b20gbGV0enRlbiBiZWFyYmVpdGV0ZW4gQmVudXR6ZXIgYW4gZm9ydHNldHplbi4KPGJyIC8+PGJyIC8+ClVtIGVpbmUgWmVpdCZ1dW1sO2JlcnNjaHJlaXR1bmcgc2VpdGVucyBkZXMgU2VydmVycyB6dSB2ZXJtZWlkZW4sIHdlcmRlbiBkaWUgRW1haWxzIG1pdCBIaWxmZSB2b24gQUpBWCBpbiBlaW56ZWxuZW4gIkpvYnMiIGdlc2VuZGV0Lgo8YnIgLz4KPGgzPldpZSB3aXJkIGVzIGVpbmdlc2V0enQ/PC9oMz4KPHA+RGllc2VzIE1vZHVsIGJpZXRldCBrZWluZSBGdW5rdGlvbmVuIGYmdXVtbDtyIGRhcyBGcm9udGVuZC48L3A+CjxwPk5hY2ggZGVyIEluc3RhbGxhdGlvbiB3aXJkIGltIEJhY2tlbmQgZGVtIE1lbiZ1dW1sO3B1bmt0ICJCZW51dHplcnZlcndhbHR1bmciIGVpbiB3ZWl0ZXJlciBQdW5rdCAiRnJvbnRlbmRVc2VycyBNYWlsZXIgTW9kdWwiIGhpbnp1Z2VmJnV1bWw7Z3QuPGJyIC8+ClVtIGVpbmUgTmFjaHJpY2h0IHp1IHNlbmRlbiwgdyZhdW1sO2hsZW4gU2llIGRvcnQgZWluZmFjaCBkZW4gTGluayAiTmV1ZSBOYWNocmljaHQgc2VuZGVuIi48YnIgLz4KVyZhdW1sO2hlbiBTaWUgaGllciBkaWUgZ2V3JnV1bWw7bnNjaHRlbiBHcnVwcGVuIGRlcyBGcm9udGVuZFVzZXJzIE1vZHVscyBhdXMsIGRlbmVuIFNpZSBlaW5lIE5hY2hyaWNodCBzZW5kZW4gbSZvdW1sO2NodGVuLjxiciAvPgpHZWJlbiBTaWUgZWluZW4gQmV0cmVmZiBlaW4gKG9wdGlvbmFsKS48YnIgLz4KU2NocmVpYmVuIFNpZSBlaW5lIE5hY2hyaWNodC48YnIgLz4KVyZhdW1sO2hsZW4gU2llICJBYnNlbmRlbiIgdW0gZGllIE5hY2hyaWNodCB6dSBzZW5kZW4uPGJyIC8+PGJyIC8+CkRhcyBNb2R1bCBzZW5kZXQgbnVuIG1pdCBIaWxmZSBkZXMgQ01TbWFpbGVyIE1vZHVscyBlaW5lIEVtYWlsIGFuIGFsbGUgQmVudXR6ZXIgZGVyIGF1c2dldyZhdW1sO2hsdGVuIEdydXBwZW4uCjwvcD4KPHA+PHN0cm9uZz5TbWFydHktU3ludGF4Ojwvc3Ryb25nPjxiciAvPgpTaWUgayZvdW1sO25uZW4gYWxsZ2VtZWluZW4gU21hcnR5LVN5bnRheCBpbiBlaW5lciBFbWFpbCB2ZXJ3ZW5kZW4uPGJyIC8+Clp1cyZhdW1sO3R6bGljaGUgU21hcnR5LVZhcmlhYmxlbiBzaW5kOjwvcD4KPHVsPgo8bGk+PHN0cm9uZz57JHVzZXJuYW1lfTogPC9zdHJvbmc+R2lidCBkZW4gQmVudXR6ZXJuYW1lbiBkZXMgQmVudXR6ZXJzIGF1cywgZGVtIGRpZSBOYWNocmljaHQgZ2VyYWRlIGdlc2VuZGV0IHdpcmQuPC9saT4KPGxpPjxzdHJvbmc+eyR1c2VycHJvcHN9OiA8L3N0cm9uZz5Jc3QgZWluIEFycmF5KCksIGRhcyBhbGxlIEJlbnV0emVyZWlnZW5zY2hhZnRlbiBkZXMgQmVudXR6ZXJzIGVudGgmYXVtbDtsdCwgZGVtIGRpZSBOYWNocmljaHQgZ2VyYWRlIGdlc2VuZGV0IHdpcmQuPC9saT4KPC91bD4KPGJyIC8+Ck1pdCBIaWxmZSBlaW5lciB7Zm9yZWFjaH0tU2NobGVpZmUga2FubiBtYW4gYWxsZSBCZW51dHplcmVpZ2Vuc2NoYWZ0ZW4gYXVzZ2ViZW4gbGFzc2VuLjxiciAvPjxiciAvPgpCZWlzcGllbDo8YnIgLz4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPGJyIC8+PGJyIC8+CjxwcmU+CkhhbGxvIHskdXNlcm5hbWV9LAoKU2luZCBkaWVzZSBBbmdhYmVuIGF1ZiBkZW0gbmV1ZXN0ZW4gU3RhbmQ/Cgp7Zm9yZWFjaCBmcm9tPSR1c2VycHJvcHMgaXRlbT1wcm9wfQp7JHByb3AucHJvbXB0fTogeyRwcm9wLmRhdGF9Jmx0O2JyIC8mZ3Q7CnsvZm9yZWFjaH0KCkZhbGxzIG5pY2h0LCBha3R1YWxpc2llcmVuIFNpZSBzaWUgYml0dGUuCgpNZmcsIElociBBZG1pbi4KPC9wcmU+CjxiciAvPgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo8YnIgLz4KPGJyIC8+CnskcHJvcC5kYXRhfSBlbnRoJmF1bWw7bHQgZGllIERhdGVuIGRpZXNlcyBGZWxkZXMuPGJyIC8+CnskcHJvcC5wcm9tcHR9IGVudGgmYXVtbDtsdCBkaWUgRWluZ2FiZWF1ZmZvcmRlcnVuZyBmJnV1bWw7ciBkaWVzZXMgRmVsZC4KPGJyIC8+PGJyIC8+CkVpbnplbG5lIEJlbnV0emVyZWlnZW5zY2hhZnRlbiBrJm91bWw7bm5lbiBhdWNoIGRpcmVrdCBtaXQgSGlsZmUgZGVzIFB1bmt0c3ludGF4IGF1c2dlZ2ViZW4gd2VyZGVuOgo8YnIgLz48YnIgLz4KQmVzcGllbDo8YnIgLz4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPGJyIC8+PGJyIC8+CjxwcmU+CkhhbGxvIHskdXNlcnByb3BzLnZvcm5hbWUuZGF0YX0sCgouLi4KPC9wcmU+CjxiciAvPgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo8YnIgLz48YnIgLz4KeyR1c2VycHJvcHMuRkVMRE5BTUUuZGF0YX0gZW50aCZhdW1sO2x0IGRpZSBEYXRlbiBkaWVzZXMgRmVsZGVzLjxiciAvPgp7JHVzZXJwcm9wcy5GRUxETkFNRS5wcm9tcHR9IGVudGgmYXVtbDtsdCBkaWUgRWluZ2FiZWF1ZmZvcmRlcnVuZyBmJnV1bWw7ciBkaWVzZXMgRmVsZC4KPGJyIC8+CjwvcD4KPGgzPkVpbnN0ZWxsdW5nZW48L2gzPgo8cD5JbSBCYWNrZW5kIGsmb3VtbDtubmVuIGZvbGdlbmRlIEVpbnN0ZWxsdW5nZW4gdm9yZ2Vub21tZW4gd2VyZGVuOjwvcD4KPHVsPgoJPGxpPgoJCTxzdHJvbmc+R2VzZW5kZXRlIE5hY2hyaWNodGVuIGF1dG9tYXRpc2NoIHNwZWljaGVybjo8L3N0cm9uZz4KCQk8dWw+CgkJCTxsaT4KCQkJCVZlcndlbmRlbiBTaWUgZGllc2UgT3B0aW9uLCB1bSBnZXNlbmRldGUgTmFjaHJpY2h0ZW4gaW0gQXJjaGl2IHp1IHNwZWljaGVybi48YnIgLz4KCQkJCTxiciAvPgoJCQkJVm9yZWluc3RlbGx1bmcgaXN0ICJha3RpdmllcnQiLgoJCQk8L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGJyID4KCTxsaT48c3Ryb25nPkxvZy1EYXRlbiBzcGVpY2hlcm46PC9zdHJvbmc+CgkJPHVsPgoJCQk8bGk+CgkJCQlWZXJ3ZW5kZW4gU2llIGRpZXNlIE9wdGlvbiB1bSBMb2ctRGF0ZW4genUgZ2VzZW5kZXRlbiBOYWNocmljaHRlbiB6dSBzcGVpY2hlcm4uPGJyIC8+PGJyIC8+CgkJCQk8ZW0+SGlud2VpczogRGllIEFuemFobCB2b24gTG9nLURhdGVuIGgmYXVtbDtuZ3Qgdm9uIGRlciBBbnphaGwgZGVyIEJlbnV0emVyIGFiLjxiciAvPgoJCQkJU29sbHRlbiBTaWUgUGVyZm9ybWFuY2UtUHJvYmxlbWVuIGJlaSBlaW5lciBncm8mc3psaWc7ZW4gQW56YWhsIHZvbiBCZW51dHplcm4gZmVzdHN0ZWxsZW4sIGRlYWt0aXZpZXJlbiBTaWUgZGllc2UgT3B0aW9uLjxiciAvPgoJCQkJV2VubiBkaWVzZSBPcHRpb24gZGVha3RpdmllcnQgaXN0LCBnZWh0IGxlaWRlciBhdXRvbWF0aXNjaCBhdWNoIGRpZSBGdW5rdGlvbiB6dW0gZXJuZXV0ZW4gVmVyc2VuZGVuIGVpbmVyIE5hY2hyaWNodCBhbiBCZW51dHplciwgZGllIHp1bSBaZWl0cHVua3QgZGVzIHZvcmhlcmdlaGVuZGVuIFNlbmRldm9yZ2FuZ3Mga2VpbmUgZyZ1dW1sO2x0aWdlIEVtYWlsYWRkcmVzc2UgYW5nZWdlYmVuIGhhdHRlbiwgdmVybG9yZW4uPC9lbT4KCQkJCTxiciAvPjxiciAvPgoJCQkJVm9yZWluc3RlbGx1bmcgaXN0ICJha3RpdmllcnQiLgoJCQk8L2xpPgoJCQk8YnIgLz4KCQkJPGxpPjxzdHJvbmc+TnVyIEZlaGxlciBzcGVpY2hlcm46PC9zdHJvbmc+CgkJCQk8dWw+CgkJCQkJPGxpPgoJCQkJCQlNaXQgZGllc2VyIE9wdGlvbiB3ZXJkZW4gbnVyIExvZy1EYXRlbiBnZXNwZWljaGVydCwgd2VubiBlaW5lIEVtYWlsIG5pY2h0IGFuIGVpbmVuIEJlbnV0emVyIGdlc2VuZGV0IHdlcmRlbiBrb25udGUuPGJyIC8+CgkJCQkJCURhcyBrYW5uIHouQi4gZGFubiBkZXIgRmFsbCBzZWluLCB3ZW5uIGVpbiBCZW51dHplciBrZWluZSBnJnV1bWw7bHRpZ2UgRW1haWxhZGRyZXNzZSBhbmdlZ2ViZW4gaGF0LjxiciAvPgoJCQkJCQk8YnIgLz4KCQkJCQkJVm9yZWluc3RlbGx1bmcgaXN0ICJha3RpdmllcnQiLgoJCQkJCTwvbGk+CgkJCQk8L3VsPgoJCQk8L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGJyIC8+Cgk8bGk+PHN0cm9uZz5BbHRlIE5hY2hyaWNodGVuIGF1dG9tYXRpc2NoIGwmb3VtbDtzY2hlbjo8L3N0cm9uZz4KCQk8dWw+CgkJCTxsaT4KCQkJCU1pdCBkaWVzZXIgT3B0aW9uIHdlcmRlbiAmYXVtbDtsdGVyZSBOYWNocmljaHRlbiBhdXMgZGVtIEFyY2hpdiBhdXRvbWF0aXNjaCBnZWwmb3VtbDtzY2h0LgoJCQkJPGJyIC8+PGJyIC8+CgkJCQlWb3JlaW5zdGVsbHVuZyBpc3QgImFrdGl2aWVydCIuPGJyIC8+CgkJCQk8YnIgLz4KCQkJCVcmYXVtbDtobGVuIFNpZSBpbSBMaXN0ZW5hdXN3YWhsZmVsZCBkaWUgWmVpdGRhdWVyIGF1cyBuYWNoIGRlciBhbHRlIE5hY2hyaWNodGVuIGdlbCZvdW1sO3NjaHQgd2VyZGVuLjxiciAvPjxiciAvPgoJCQkJVm9yZWluc3RlbGx1bmcgaXN0IDMgTW9uYXRlLgoJCQk8L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGJyIC8+Cgk8bGk+PHN0cm9uZz5TdGFuZGFyZCBHcnVwcGUobik6PC9zdHJvbmc+CgkJPHVsPgoJCQk8bGk+CgkJCQlXJmF1bWw7aGxlbiBTaWUgaGllciBlaW4gb2RlciBtZWhyZXJlIEdydXBwZShuKSBhdXMsIGRpZSBiZWltIFNlbmRlbiBlaW5lciBuZXVlbiBOYWNocmljaHQgYXV0b21hdGlzY2ggYXVzZ2V3JmF1bWw7aGx0IHNpbmQuPGJyIC8+CgkJCQk8YnIgLz4KCQkJCVZvcmVpbnN0ZWxsdW5nIGlzdCBrZWluZS4KCQkJPC9saT4KCQk8L3VsPgoJPC9saT4KCTxiciAvPgoJPGxpPjxzdHJvbmc+TmFjaHJpY2h0IGFscyBIVE1MIHRleHQgc2VuZGVuOjwvc3Ryb25nPgoJCTx1bD4KCQkJPGxpPgoJCQkJV2VubiBTaWUgZGllc2UgT3B0aW9uIHcmYXVtbDtobGVuLCBrYW5uIHp1bSBTY2hyZWliZW4gZWluZXIgTmFjaHJpY2h0IGRlciBXWVNJV1lHLUVkaXRvciB2ZXJ3ZW5kZXQgd2VyZGVuLjxiciAvPgoJCQkJPGJyIC8+CgkJCQlWb3JlaW5zdGVsbHVuZyBpc3QgImRlYWt0aXZpZXJ0Ii4KCQkJPC9saT4KCQk8L3VsPgoJPC9saT4KCTxiciAvPgoJPGxpPjxzdHJvbmc+TWF4LiBBbnphaGwgdm9uIEVtYWlscyBwcm8gSm9iOjwvc3Ryb25nPgoJCTx1bD4KCQkJPGxpPgoJCQkJVW0gZWluZSBaZWl0JnV1bWw7YmVyc2NocmVpdHVuZyBzZWl0ZW5zIGRlcyBTZXJ2ZXJzIHp1IHZlcm1laWRlbiwgd2VyZGVuIGRpZSBFbWFpbHMgbWl0IEhpbGZlIHZvbiBBSkFYIGluIGVpbnplbG5lbiAiSm9icyIgZ2VzZW5kZXQuPGJyIC8+CgkJCQlHZWJlbiBTaWUgaGllciBkaWUgQW56YWhsIHZvbiBFbWFpbHMgYW4sIGRpZSBwcm8gSm9iIGdlc2VuZGV0IHdlcmRlbiBzb2xsZW4uPGJyIC8+CgkJCQk8YnIgLz4KCQkJCVZvcmVpbnN0ZWxsdW5nIGlzdCAiNTAiCgkJCTwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8YnIgLz4KCTxsaT48c3Ryb25nPkFKQVggQW5mcmFnZS1WZXJ6Jm91bWw7Z2VydW5nOjwvc3Ryb25nPgoJCTx1bD4KCQkJPGxpPgoJCQkJV2VubiBTaWUgZWluZSBncm8mc3psaWc7ZSBBbnphaGwgdm9uIEJlbnV0emVybiB1bmQgZWluZSBrbGVpbmUgQW56YWhsIHZvbiBFbWFpbHMgcHJvIEpvYiBoYWJlbiwgZiZ1dW1sO2hydCBkYXMgZGF6dSwgZGFzcyBkZXIgQnJvd3NlciBpbm5lcmhhbGIgc2VociBrdXJ6ZXIgWmVpdGFzdCZhdW1sO25kZSBlaW5lIGdybyZzemxpZztlIEFuemFobCB2b24gaWRlbnRpc2NoZW4gQW5mcmFnZW4gYW4gZGVuIFNlcnZlciBzZW5kZXQuPGJyIC8+CgkJCQlFaW5pZ2UgU2ljaGVyaGVpdHNwcm9ncmFtbWUgayZvdW1sO25udGVuIGRpZXMgbSZvdW1sO2dsaWNoZXJ3ZWlzZSBhbHMgQW5ncmlmZnN2ZXJzdWNoIGRldXRlbiB1bmQgZGllIEFuZnJhZ2VuIGFiYnJlY2hlbiBvZGVyIHNvZ2FyIElocmUgSVAtQWRyZXNzZSBibG9ja2llcmVuLjxiciAvPgoJCQkJPGJyIC8+CgkJCQlVbSBkaWVzIHp1IHZlcm1laWRlbiBrJm91bWw7bm5lbiBTaWUgZWluZSBWZXJ6Jm91bWw7Z2VydW5nc2RhdWVyIChpbiBNaWxsaXNla3VuZGVuKSBhbmdlYmVuLCBkaWUgZGFzIEphdmFzY3JpcHQgd2FydGVuLCBiZXZvciBlaW5lIG5ldWUgQW5mcmFnZSBhbiBkZW4gU2VydmVyIGdlc2VuZGV0IHdpcmQuPGJyIC8+CgkJCQk8YnIgLz4KCQkJCVZvcmVpbnN0ZWxsdW5nIGlzdCAia2VpbmUgVmVyeiZvdW1sO2dlcnVuZyIuCgkJCTwvbGk+CgkJPC91bD4KCTwvbGk+CjwvdWw+CjxoMz5TdXBwb3J0PC9oMz4KPHA+RGllc2VzIE1vZHVsIGJpZXRldCBrZWluZSBrb21tZXJ6aWVsbGUgVW50ZXJzdCZ1dW1sO3R6dW5nLjwvcD4KPHVsPgoJPGxpPlByb2plY3QgSG9tZXBhZ2U6IDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZmV1bWFpbGVyLyI+aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9mZXVtYWlsZXIvPC9hPjwvbGk+Cgk8bGk+Rm9ydW06IDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4KPC91bD4KPGJyIC8+CjxwPkJpdHRlIG1lbGRlbiBTaWUgRmVobGVyIG9kZXIgVmVyYmVzc2VydW5nc3ZvcnNjaGwmYXVtbDtnZSBhdWYgZGVyIFByb2plY3QgSG9tZXBhZ2UuPC9wPgo8aDM+QmVrYW5udGUgUHJvYmxlbWU6PC9oMz4KCQoJPHA+V2VubiBkZXIgQmVudXR6ZXJuYW1lIGFscyBFbWFpbGFkZHJlc3NlIGdpbHQsIHdpcmQgbnVyIGRpZXNlIEFkZHJlc3NlIHZlcndlbmRldC48L3A+Cgk8cD5BbmRlcmVuZmFsbHMgc3VjaHQgZGFzIEZyb250ZW5kVXNlcnMgTWFpbGVyIE1vZHVsIGF1c3NjaGxpZSZzemxpZztsaWNoIG5hY2ggZWluZXIgQmVudXR6ZXJlaWdlbnNjaGFmdCB2b20gPHN0cm9uZz5UeXAgImVtYWlsIjwvc3Ryb25nPi48L3A+Cgk8cD5XZW5uIGRlciBCZW51dHplciBtZWhyZXJlIEVtYWlsYWRkcmVzc2VuIGFuZ2VnZWJlbiBoYXQsIHdpcmQgbnVyIGRpZSBlcnN0ZSBnZWZ1bmRlbmUgQWRkcmVzc2UgdmVyd2VuZGV0LjwvcD4KCTxwPgoJCVdlbm4gQmlsZGVyIG9kZXIgYW5kZXJlIE1lZGllbiBtaXQgZGVtIFdZU0lXWUctRWRpdG9yIGVpbmdlZiZ1dW1sO2d0IHdlcmRlbiwgd2VyZGVuIGRpZXNlIG5pY2h0IGFuIGRpZSBFbWFpbCBhbmdlaCZhdW1sO25ndCwgc29uZGVybiB2ZXJ3ZWlzZW4gYXVmIGRhcyBNZWRpdW0gYXVmIGRlbSBTZXJ2ZXIuPGJyIC8+CgkJRGllc2UgVmVyd2Vpc2Ugd2VyZGVuIG1laXN0IGluIEZvcm0gdm9uIHJlbGF0aXZlbiBQZmFkYW5nYWJlbiBlaW5nZWYmdXVtbDtndCAoei5CLiAmbHQ7aW1nIHNyYz0iL3VwbG9hZHMvaW1hZ2VzL2FfdGlueV9pbWFnZS5qcGciIC8mZ3Q7KS48YnIgLz4KCQlGJnV1bWw7ciBlaW5lIGtvcnJla3RlIERhcnN0ZWxsdW5nIG0mdXVtbDtzc2VuIHNvbGNoZSBWZXJ3ZWlzZSBpbiBhYnNvbHV0ZSBWZXJ3ZWlzZSBnZSZhdW1sO25kZXJ0IHdlcmRlbiA8YnIgLz4oei5CLiAmbHQ7aW1nIHNyYz0iaHR0cDovL3d3dy5paHJlRG9tYWluL3VwbG9hZHMvaW1hZ2VzL2FfdGlueV9pbWFnZS5qcGciIC8mZ3Q7KS4KCTwvcD4KCTxwPgoJCUVpbmlnZSBTbWFydHktVGFncywgUGx1Z2lucyBvZGVyIE1vZHVsZSBmdW5rdG9pbmllcmVuIG5pY2h0IGtvcnJla3QsIGRhIHNpZSB1bnRlciBVbXN0JmF1bWw7bmRlbiBEYXRlbiBhdXMgZGVyIFNlcnZlcmFuZnJhZ2UgaW4gZGVyIEFkcmVzc2xlaXN0ZSBkZXMgQnJvd3NlciBiZW4mb3VtbDt0aWdlbi48YnIgLz4KCQlEaWVzZSBEYXRlbiBleGlzdGllcmVuIG51ciBkYW5uLCB3ZW5uIGRpZSBTZWl0ZSB2b20gRnJvbnRlbmQgYXVzIGF1ZmdlcnVmZW4gd2lyZC48YnIgLz4KCQlEYSBkaWUgRW1haWwgYWJlciB2b20gQmFja2VuZCBhdXMgdmVyYXJiZWl0ZXQgd2lyZCwgZmVobGVuIGRlcmFydGlnZSBEYXRlbi48YnIgLz4KCQlTb2xjaGUgRmVobGVyIGxhc3NlbiBzaWNoIGxlaWRlciBuaWNodCBiencuIG51ciBtaXQgZWluZXIgTW9kaWZpa2F0aW9uIGRlciBiZXRyZWZmZW5kZW4gRnVua3Rpb25lbiBiZWhlYmVuLgoJPC9wPgo8aDM+Q29weXJpZ2h0IHVuZCBMaXplbno8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIEdlb3JnIEJ1c2NoIChOYU4pIDxhIGhyZWY9Im1haWx0bzpnZW9yZy5idXNjaEBnbXgubmV0Ij4mbHQ7Z2VvcmcuYnVzY2hAZ214Lm5ldCZndDs8L2E+LiBBbGxlIFJlY2h0ZSB2b3JiZWhhbHRlbi48L3A+CjxwPkRpZXNlcyBNb2R1bCB3dXJkZSB1bnRlciBkZXIgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+IHZlciZvdW1sO2ZmZW50bGljaHQuIFNpZSBtJnV1bWw7c3NlbiBkaWVzZXIgTGl6ZW56IHp1c3RpbW1lbiwgYmV2b3IgU2llIGRhcyBNb2R1bCB2ZXJ3ZW5kZW4uPC9wPgo8cD4KCUxhdXQgZGVuIExpemVuemJlZGluZ3VuZ2VuIGRlciBHUEwgd2lyZCBkaWVzZSBTb2Z0d2FyZSBzbyB2ZXImb3VtbDtmZmVudGxpY2h0IHdpZSBzaWUgaXN0LjxiciAvPgoJU2llIGVyaGVidCBrZWluZXJsZWkgQW5zcHJ1Y2ggYXVmIGVpbndhbmRmcmVpZSBGdW5rdGlvbi48YnIgLz4KCURhcyBNb2R1bCB3dXJkZSBlcnN0ZWxsdCwgaW4gZGVyIEhvZmZudW5nIG4mdXVtbDt0emxpY2ggenUgc2Vpbi48YnIgLz4KCUVzIGJlc3RlaHQga2VpbmVybGVpIEdhcmFudGllIGF1ZiBlaW5lbiBlaW53YW5kZnJlaWVuIE51dHplbi48YnIgLz4KCUJpdHRlIGxlc2VuIFNpZSBkaWUgTnV0enVuZ3NiZWRpbmd1bmdlbiBmJnV1bWw7ciBhdXNmJnV1bWw7aHJsaWNoZSBJbmZvcm1hdGlvbmVuLgo8L3A+Cic7CgovLyBFcnJvciBtZXNzYWdlcwokbGFuZ1snZXJyb3InXSA9ICdGZWhsZXIhJzsKJGxhbmdbJ2Vycm9yX3VwZ3JhZGUnXSA9ICJGJnV1bWw7ciBkaWVzZSBWZXJzaW9uIGlzdCBsZWlkZXIga2VpbiBVcGdyYWRlIHZlcmYmdXVtbDtnYmFyLiA8YnIgLz5TaWUgbSZ1dW1sO3NzZW4gZGFzIE1vZHVsIG5ldSBpbnN0YWxsaWVyZW4uIjsKJGxhbmdbJ2Vycm9yX3Blcm1pc3Npb25zJ10gPSAnWnVncmlmZiB2ZXJ3ZWlnZXJ0LiBQciZ1dW1sO2ZlbiBTaWUgSWhyZSBCZXJlY2h0aWd1bmdlbi4nOwokbGFuZ1snZXJyb3JfZmV1c2VycyddID0gJ0RhcyBGcm9udGVuZFVzZXJzIE1vZHVsIGlzdCBuaWNodCBpbnN0YWxsaWVydC4gVW0gZGFzIEZyb250ZW5kVXNlcnMgTWFpbGVyIE1vZHVsIHZlcndlbmRlbiB6dSBrJm91bWw7bm5lbiBtdXNzIGRhcyBGcm9udGVuZFVzZXJzIE1vZHVsIGluc3RhbGxpZXJ0IHNlaW4uJzsKJGxhbmdbJ2Vycm9yX2Ntc21haWxlciddID0gJ0RhcyBDTVMgTWFpbGVyIE1vZHVsIGlzdCBuaWNodCBpbnN0YWxsaWVydC4gVW0gZGFzIEZyb250ZW5kVXNlcnMgTWFpbGVyIE1vZHVsIHZlcndlbmRlbiB6dSBrJm91bWw7bm5lbiBtdXNzIGRhcyBDTVMgTWFpbGVyIE1vZHVsIGluc3RhbGxpZXJ0IHNlaW4uJzsKJGxhbmdbJ2Vycm9yX3RtcG1haWxzJ10gPSAnRXMgc2luZCB0ZW1wb3ImYXVtbDtyZSBFbWFpbHMgaW4gZGVyIERhdGVuYmFuay48YnIgLz5EaWVzIGthbm4gcGFzc2llcmVuLCB3ZW5uIGVpbiBTZW5kZXZvcmdhbmcgYWJnZWJyb2NoZW4gd3VyZGUuPGJyIC8+U2llIGsmb3VtbDtubmVuIHZlcnN1Y2hlbiBkZW4gU2VuZGV2b3JnYW5nIG1pdCBIaWxmZSBkZXMgTGlua3MgIlNlbmRldm9yZ2FuZyBmb3J0c2V0emVuIiBpbSBUYWIgIlRlbXBvciZhdW1sO3JlIEVtYWlscyIgenUgYmVlbmRlbi4nOwokbGFuZ1snZXJyb3JfZ3JvdXBzJ10gPSAnS2VpbmUgR3J1cHBlbiBkZXMgRnJvbnRlbmRVc2VycyBNb2R1bHMgZ2VmdW5kZW4uPGJyIC8+UHImdXVtbDtmZW4gU2llLCBvYiBpbSBGcm9udGVuZFVzZXJzIE1vZHVsIG1pbmRlc3RlbnMgZWluZSBCZW51dHplcmdydXBwZSBhbmdlbGVndCB3dXJkZS4nOwokbGFuZ1snZXJyb3Jfc2VsZWN0ZWRncm91cHMnXSA9ICdCaXR0ZSB3YWVobGVuIFNpZSBtaW5kZXN0ZW5zIGVpbmUgQmVudXR6ZXJncnVwcGUgYXVzLic7CiRsYW5nWydlcnJvcl9tYWlsYm9keSddID0gJ0JpdHRlIGdlYmVuIFNpZSBlaW5lbiBUZXh0IGZ1ZXIgSWhyZSBOYWNocmljaHQgZWluLic7CiRsYW5nWydlcnJvcl9yZXF1ZXN0X3N0YXR1cyddID0gIkRpZSBBSkFYIEFuZnJhZ2Ugd3VyZGUgZXJmb2xncmVpY2ggZ2VzZW5kZXQgYWJlciBlcyBzaW5kIEZlaGxlciBhdWZnZXRyZXRlbi4gUmVxdWVzdCBTdGF0dXM6IjsKJGxhbmdbJ2Vycm9yX3htbGh0dHBfaW5zdGFuY2UnXSA9ICJLYW5uIGtlaW5lIFhNTEh0dHAgSW5zdGFueiBlcnpldWdlbiEiOwokbGFuZ1snZXJyb3Jfc2VsZWN0ZWRhcmNoaXZlbWFpbHMnXSA9ICdLZWluZSBOYWNocmljaHRlbiBhdXNnZXcmYXVtbDtobHQuPGJyIC8+S2VpbmUgTmFjaHJpY2h0ZW4gZ2VsJm91bWw7c2NodC4nOwokbGFuZ1snZXJyb3Jfc2VsZWN0ZWR0bXBtYWlscyddID0gJ0tlaW5lIE5hY2hyaWNodGVuIGF1c2dldyZhdW1sO2hsdC48YnIgLz5LZWluZSBOYWNocmljaHRlbiBnZWwmb3VtbDtzY2h0Lic7CiRsYW5nWydlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnXSA9ICdVbnp1cmVpY2hlbmRlIFBhcmFtZXRlci48YnIgLz5GYWxzY2hlciBvZGVyIGZlaGxlbmRlciBXZXJ0IGYmdXVtbDtyIFBhcmFtZXRlciAlcyBpbiBtb2R1bGVzL0ZFVU1haWxlci9hY3Rpb24uJXMucGhwLic7CiRsYW5nWydlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXNfYWpheCddID0gJ1ZvcmdhbmcgYWJnZWJyb2NoZW4uIFVuenVyZWljaGVuZGUgUGFyYW1ldGVyLjxiciAvPkZhbHNjaGVyIG9kZXIgZmVobGVuZGVyIFdlcnQgZiZ1dW1sO3IgUGFyYW1ldGVyICVzIGluIG1vZHVsZXMvRkVVTWFpbGVyL2FjdGlvbi4lcy5waHAuJzsKJGxhbmdbJ2Vycm9yX25vdXNlcnNmb3VuZCddID0gJ0tlaW5lIEJlbnV0emVyIGdlZnVuZGVuLic7CiRsYW5nWydlcnJvcl9hamF4J10gPSAiRXMgaXN0IGVpbiBGZWhsZXIgYXVmZ2V0cmV0ZW4uXFxuRGllIEFudHdvcnQgZGVzIFNlcnZlcnMga29ubnRlIG5pY2h0IGludGVycHJldGllcnQgd2VyZGVuLlxcblZvcmdhbmcgYWJnZWJyb2NoZW4uXFxuQml0dGUgdmVyc3VjaGVuIFNpZSBlcyBzcCZhdW1sO3RlciBub2NoZWlubWFsLlxcblxcblNlcnZlci1BbnR3b3J0OlxcblxcbiI7CgovLyBkYiBlcnJvcnMKJGxhbmdbJ2Vycm9yX2RiX2RlbGV0ZW1haWwnXSA9ICdOYWNocmljaHQoZW4pIG5pY2h0IGdlbCZvdW1sO3NjaHQuPGJyIC8+RGllIERhdGVuYmFua2FuZnJhZ2Uga29ubnRlIG5pY2h0IGF1c2dlZiZ1dW1sO2hydCB3ZXJkZW46PGJyIC8+JXMnOwokbGFuZ1snZXJyb3JfZGJfc2F2ZW1haWwnXSA9ICdOYWNocmljaHQga29ubnRlIG5pY2h0IGdlc3BlaWNoZXJ0IHdlcmRlbi48YnIgLz5EaWUgRGF0ZW5iYW5rYW5mcmFnZSBrb25udGUgbmljaHQgYXVzZ2VmJnV1bWw7aHJ0IHdlcmRlbjo8YnIgLz4lcyc7CiRsYW5nWydlcnJvcl9kYl9zYXZlbWFpbF9hamF4J10gPSAnTmFjaHJpY2h0IGtvbm50ZSBuaWNodCBnZXNwZWljaGVydCB3ZXJkZW4uJzsKJGxhbmdbJ2Vycm9yX2RiX2dldF90bXBtYWlsJ10gPSAnS2VpbmUgdGVtcG9yJmF1bWw7cmUgTmFjaHJpY2h0IG1pdCBkZXIgSUQgJXMgZ2VmdW5kZW4uPGJyIC8+RGllIERhdGVuYmFua2FuZnJhZ2Uga29ubnRlIG5pY2h0IGF1c2dlZiZ1dW1sO2hydCB3ZXJkZW4gb2RlciBsaWVmZXJ0ZSBlaW4gbGVlcmVzIFJlc3VsdGF0OjxiciAvPlF1ZXJ5OjxiciAvPiVzJzsKJGxhbmdbJ2Vycm9yX2RiX2dldF90bXBtYWlsX2FqYXgnXSA9ICdWb3JnYW5nIGFiZ2Vicm9jaGVuLiBLZWluZSB0ZW1wb3ImYXVtbDtyZSBOYWNocmljaHQgbWl0IGRlciBJRCAlcyBnZWZ1bmRlbi4nOwokbGFuZ1snZXJyb3JfZGJfZ2V0X2FyY2hpdmVtYWlsJ10gPSAnS2VpbmUgdGVtcG9yJmF1bWw7cmUgTmFjaHJpY2h0IG1pdCBkZXIgSUQgJXMgZ2VmdW5kZW4uPGJyIC8+RGllIERhdGVuYmFua2FuZnJhZ2Uga29ubnRlIG5pY2h0IGF1c2dlZiZ1dW1sO2hydCB3ZXJkZW4gb2RlciBsaWVmZXJ0ZSBlaW4gbGVlcmVzIFJlc3VsdGF0LjxiciAvPlF1ZXJ5OjxiciAvPiVzJzsKJGxhbmdbJ2Vycm9yX2RiX2NyZWF0ZV90bXBtYWlsJ10gPSAiVm9yZ2FuZyBhYmdlYnJvY2hlbi4gS29ubnRlIHRlbXBvciZhdW1sO3JlIE5hY2hyaWNodCBuaWNodCBlcnN0ZWxsZW4uPGJyIC8+RGllIERhdGVuYmFua2FuZnJhZ2Uga29ubnRlIG5pY2h0IGF1c2dlZiZ1dW1sO2hydCB3ZXJkZW46PGJyIC8+JXMiOwokbGFuZ1snZXJyb3JfZGJfYXV0b2NsZWFybG9nJ10gPSAnTG9nLURhdGVuIGdlbCZvdW1sO3NjaHRlciBOYWNocmljaHQoZW4pIGtvbm50ZShuKSBuaWNodCBnZWwmb3VtbDtzY2h0IHdlcmRlbi48YnIgLz5EaWUgRGF0ZW5iYW5rYW5mcmFnZSBrb25udGUgbmljaHQgYXVzZ2VmJnV1bWw7aHJ0IHdlcmRlbjo8YnIgLz4lcyc7CiRsYW5nWydlcnJvcl9kYl91cGRhdGVfdG1wbWFpbCddID0gJ1ZvcmdhbmcgYWJnZWJyb2NoZW4uPGJyIC8+S29ubnRlIHRlbXBvciZhdW1sO3JlIE5hY2hyaWNodCBuaWNodCBha3R1YWxpc2llcmVuLjxiciAvPkRpZSBEYXRlbmJhbmthbmZyYWdlIGtvbm50ZSBuaWNodCBhdXNnZWYmdXVtbDtocnQgd2VyZGVuOjxiciAvPiVzJzsKJGxhbmdbJ2Vycm9yX2RiX3VwZGF0ZV90bXBtYWlsX2FqYXgnXSA9ICdWb3JnYW5nIGFiZ2Vicm9jaGVuLiBLb25udGUgdGVtcG9yJmF1bWw7cmUgTmFjaHJpY2h0IG5pY2h0IGFrdHVhbGlzaWVyZW4uJzsKCiRsYW5nWydlcnJvcl9kYl9jcmVhdGVfbG9nJ10gPSAnTG9nLUVpbnRyYWcga29ubnRlIG5pY2h0IGVyc3RlbGx0IHdlcmRlbi4nOwokbGFuZ1snZXJyb3JfZGJfdXBkYXRlX2FyY2hpdmUnXSA9ICdOYWNocmljaHQga29ubnRlIG5pY2h0IGFrdHVhbGlzaWVydCB3ZXJkZW4uIERhcyBrYW5uIHp1ciBBbnplaWdlIGVpbmVyIGZhbHNjaGVuIEFuemFobCB2b24gRW1wJmF1bWw7bmdlcm4gdW5kL29kZXIgYmVhcmJlaXRldGVuIEJlbnV0emVybiBmJnV1bWw7aHJlbi4nOwokbGFuZ1snZXJyb3JfZGJfZGVsZXRlX3RtcCddID0gJ1RlbXBvciZhdW1sO3JlIE5hY2hyaWNodCBrb25udGUgbmljaHQgZ2VsJm91bWw7c2NodCB3ZXJkZW4uIFNpZSBtJnV1bWw7c3NlbiBkaWUgdGVtcG9yJmF1bWw7cmUgTmFjaHJpY2h0IG1hbnVlbGwgbCZvdW1sO3NjaGVuLic7CiRsYW5nWydlcnJvcl9kYl91cGRhdGVfbG9nJ10gPSAnTG9nLURhdGVuIGtvbm50ZW4gbmljaHQgYWt0dWFsaXNlcnQgd2VyZGVuLiBEaWVzIGthbm4genVyIGZhbHNjaGVuIEFuemVpZ2UgZGVzIFNlbmRlc3RhdHVzIGYmdXVtbDtocmVuLic7CgovLyBtb2R1bGUgc3R1ZmYKJGxhbmdbJ2FkbWlucGFuZWwnXSA9ICdNb2R1bC1BZG1pbmlzdHJhdGlvbic7CiRsYW5nWydzZW5kbWFpbCddID0gJ1NlbmRlIE5hY2hyaWNodC4uLic7CiRsYW5nWydlbWFpbGFkZHJlc3MnXSA9ICdFbWFpbC1BZHJlc3NlJzsKJGxhbmdbJ25vbWFpbHMnXSA9ICdLZWluZSBOYWNocmljaHRlbiBnZWZ1bmRlbi4nOwokbGFuZ1snbm90ZW1wbWFpbHMnXSA9ICdLZWluZSB0ZW1wb3ImYXVtbDtyZW4gTmFjaHJpY2h0ZW4gZ2VmdW5kZW4uJzsKJGxhbmdbJ2FyY2hpdmUnXSA9ICdBcmNoaXZpZXJ0ZSBOYWNocmljaHRlbic7CiRsYW5nWyduZXdtYWlsJ10gPSAnRWluZSBuZXVlIE5hY2hyaWNodCBzZW5kZW4nOwokbGFuZ1sndGVtcCddID0gJ1RlbXBvciZhdW1sO3JlIE5hY2hyaWNodGVuJzsKJGxhbmdbJ3ByZWYnXSA9ICdFaW5zdGVsbHVuZ2VuJzsKJGxhbmdbJ3ByZWZzX3VwZGF0ZWQnXSA9ICdFaW5zdGVsbHVuZ2VuIGFrdHVhbGlzaWVydC4nOwokbGFuZ1sndXNlcnMnXSA9ICdCZW51dHplcic7CiRsYW5nWydyZXF1ZXN0X2RlbGF5J10gPSAnQUpBWCBBbmZyYWdlLVZlcnomb3VtbDtnZXJ1bmcnOwokbGFuZ1snZ3JvdXBzJ10gPSAnQmVudXR6ZXJncnVwcGVuJzsKJGxhbmdbJ3N1YmplY3QnXSA9ICdCZXRyZWZmJzsKJGxhbmdbJ2RhdGUnXSA9ICdTZW5kZWRhdHVtJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdFbXBmJmF1bWw7bmdlcic7CiRsYW5nWydyZWFkJ10gPSAnTGVzZW4nOwokbGFuZ1sncmVhZG1haWwnXSA9ICdOYWNocmljaHQgbGVzZW4nOwokbGFuZ1snZWRpdCddID0gJ0JlYXJiZWl0ZW4nOwokbGFuZ1sncmVzZW5kJ10gPSAnRXJuZXV0IHNlbmRlbic7CiRsYW5nWydkZWxldGUnXSA9ICdMJm91bWw7c2NoZW4nOwokbGFuZ1snc2F2ZV9sb2dzJ10gPSAnTG9nLURhdGVuIHNwZWljaGVybic7CiRsYW5nWydzYXZlX2Vycm9ybG9nc19vbmx5J10gPSAnTnVyIEZlaGxlciBzcGVpY2hlcm4nOwokbGFuZ1snbG9naWQnXSA9ICdMb2cgSUQnOwokbGFuZ1snc3RhdHVzJ10gPSAnU3RhdHVzJzsKJGxhbmdbJ3JlY2lldmVkJ10gPSAnR2VsZXNlbic7CiRsYW5nWydub2VtYWlsYWRkcmVzc2ZvdW5kJ10gPSAnS2VpbmUgRW1haWwtQWRyZXNzZSBnZWZ1bmRlbic7CiRsYW5nWydpbnZhbGlkZW1haWxhZGRyZXNzJ10gPSAnVW5nJnV1bWw7bHRpZ2UgRW1haWwtQWRyZXNzZSc7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0ZXInOwokbGFuZ1snYXNjJ10gPSAnYXVmc3RlaWdlbmQnOwokbGFuZ1snZGVzYyddID0gJ2Fic3RlaWdlbmQnOwokbGFuZ1snc29ydGJ5J10gPSAnU29ydGllcmUgbmFjaCc7CiRsYW5nWydzb3J0J10gPSAnc29ydCc7CiRsYW5nWydsaW1pdCddID0gICdCZWdyZW56dW5nJzsKJGxhbmdbJ2Vycm9yc29ubHknXSA9ICdaZWlnZSBudXIgRmVobGVyJzsKJGxhbmdbJ3NhdmVkZWZhdWx0J10gPSAnRmlsdGVyIHNwZWljaGVybic7CiRsYW5nWydzZW5kX29yZGVyJ10gPSAnU2VuZGVyZWloZW5mb2xnZSc7CiRsYW5nWydzb3J0b3JkZXInXSA9ICdTb3J0IG9yZGVyJzsKJGxhbmdbJ3NlbmRfZGF0ZSddID0gJ1NlbmRlZGF0dW0nOwokbGFuZ1sndXNlcm5hbWUnXSA9ICdCZW51dHplcm5hbWUnOwokbGFuZ1snbm9saW1pdCddID0gJ2tlaW5lIEJlZ3Jlbnp1bmcnOwokbGFuZ1sncGFnZXMnXSA9ICdTZWl0ZW4nOwokbGFuZ1snYXV0b3NhdmUnXSA9ICdHZXNlbmRldGUgTmFjaHJpY2h0ZW4gYXV0b21hdGlzY2ggc3BlaWNoZXJuJzsKJGxhbmdbJ2F1dG9jbGVhcl9hcmNoaXZlbWFpbHMnXSA9ICdBbHRlIE5hY2hyaWNodGVuIGF1dG9tYXRpc2NoIGwmb3VtbDtzY2hlbic7CiRsYW5nWydhdXRvY2xlYXJfYWN0aW9uJ10gPSAnTCZvdW1sO3NjaGUgTmFjaHJpY2h0ZW4sIGRpZSAmYXVtbDtsdGVyIHNpbmQgYWxzJzsKJGxhbmdbJ3NlY29uZHMnXSA9ICdTZWt1bmRlKG4pJzsKJGxhbmdbJ21pbnV0ZXMnXSA9ICdNaW51dGUobiknOwokbGFuZ1snaG91cnMnXSA9ICdTdHVuZGUobiknOwokbGFuZ1snZGF5cyddID0gJ1RhZyhlKSc7CiRsYW5nWyd3ZWVrcyddID0gJ1dvY2hlKG4pJzsKJGxhbmdbJ21vbnRocyddID0gJ01vbmF0KGUpJzsKJGxhbmdbJ3llYXJzJ10gPSAnSmFocihlKSc7CiRsYW5nWydhdXRvY2xlYXJfdG1wbWFpbHMnXSA9ICdlaW5zY2hsaWUmc3psaWc7bGllY2ggdGVtcG9yJmF1bWw7cmVyIE5hY2hyaWNodGVuICc7CiRsYW5nWydkZWZhdWx0X2dyb3VwcyddID0gJ1N0YW5kYXJkIEVtcGYmYXVtbDtuZ2VyLUdydXBwZW4nOwokbGFuZ1snaXNfaHRtbCddID0gJ05hY2hyaWNodCBhbHMgSFRNTC1UZXh0IFNlbmRlbic7CiRsYW5nWydzdWJtaXQnXSA9ICdBYnNlbmRlbic7CiRsYW5nWydjYW5jZWwnXSA9ICdBYmJyZWNoZW4nOwokbGFuZ1snbWVzc2FnZSddID0gJ05hY2hyaWNodCc7CiRsYW5nWydzYXZlJ10gPSAnR2VzZW5kZXRlIE5hY2hyaWNodCBzcGVpY2hlcm4nOwokbGFuZ1snbWF4bWFpbHMnXSA9ICdNYXguIEFuemFobCB2b24gRW1haWxzIHBybyBKb2InOwoKJGxhbmdbJ25vc3ViamVjdCddID0gJ0tlaW4gQmV0cmVmZic7CiRsYW5nWydsb2dzJ10gPSAnTG9nLURhdGVuJzsKJGxhbmdbJ3RtcG1haWxkZWxldGVkJ10gPSAnVGVtcG9yJmF1bWw7cmUgTmFjaHJpY2h0KGVuKSBnZWwmb3VtbDtzY2h0JzsKJGxhbmdbJ2FyY2hpdmVtYWlsZGVsZXRlZCddID0gJ05hY2hyaWNodChlbikgZ2VsJm91bWw7c2NodCc7CgokbGFuZ1sndGFza19maW5pc2hlZCddID0gJ0RpZXNlciBTZW5kZXZvcmdhbmcgaXN0IGJlcmVpdHMgYmVlbmRldC4nOwokbGFuZ1sndGFza19vcGVuJ10gPSAnRGllc2VyIFNlbmRldm9yZ2FuZyBpc3Qgbm9jaHQgbmljaHQgYmVlbmRldCEnOwokbGFuZ1snbWFpbHNfc2VudCddID0gJ1NlbmRldm9yZ2FuZyBlZm9sZ3JlaWNoIGJlZW5kZXQnOwokbGFuZ1snb2snXSA9ICdPayc7CiRsYW5nWydiYWNrJ10gPSAnWnVyJnV1bWw7Y2snOwokbGFuZ1snb2YnXSA9ICd2b24nOwokbGFuZ1snd2FpdCddID0gJ0JpdHRlIHdhcnRlbi4uLic7CiRsYW5nWydzZW5kaW5nJ10gPSAnU2VuZGUgTmFjaHJpY2h0JzsKJGxhbmdbJ2RlbGV0ZXNlbGVjdGVkJ10gPSAnQXVzZ2V3JmF1bWw7aGx0ZSBOYWNocmljaHQoZW4pIGwmb3VtbDtzY2hlbic7CiRsYW5nWydkZWxldGVzZWxlY3RlZGxvZyddID0gJ0F1c2dldyZhdW1sO2hsdGUgTG9nLURhdGVuIGwmb3VtbDtzY2hlbic7CgokbGFuZ1sndG90YWxsb2dzJ10gPSAnRWludHImYXVtbDtnZSBpbnNnZXNhbXQnOwokbGFuZ1snZXJyb3Jsb2dzJ10gPSAnRmVobGVyJzsKCiRsYW5nWydsb2dfZGVsZXRlZCddID0gJ0xvZy1FaW50cmFnL0VpbnRyJmF1bWw7Z2UgZ2VsJm91bWw7c2NodC4nOwokbGFuZ1snYXV0b2NsZWFyX2xvZ3MnXSA9ICdMb2ctRGF0ZW4gYXV0b21hdGlzY2ggbCZvdW1sO3NjaGVuLCB3ZW5uIHp1Z2VoJm91bWw7cmlnZSBOYWNocmljaHRlbiBnZWwmb3VtbDtzY2h0IHdlcmRlbi4nOwokbGFuZ1sndmlld19sb2dzJ10gPSAnTG9nLURhdGVuIGFuc2VoZW4nOwokbGFuZ1sndmlldyddID0gJ0RldGFpbHMnOwokbGFuZ1snbm9sb2dzJ10gPSAnS2VpbmUgTG9nLURhdGVuIGdlZnVuZGVuJzsKJGxhbmdbJ3Byb2Nlc3NlZHVzZXJzJ10gPSAnQmVhcmJlaXRldGUgQmVudXR6ZXInOwokbGFuZ1sndG90YWx1c2VycyddID0gJ0JlbnV0emVyIGluc2dlc2FtdCc7CiRsYW5nWydyZW1haW5pbmcnXSA9ICdWZXJibGVpYmVuZGUgQmVudXR6ZXInOwokbGFuZ1snc2VudGJ5J10gPSAnR2VzZW5kZXQgdm9uJzsKJGxhbmdbJ3Jlc2VuZF9hbGwnXSA9ICdOYWNocmljaHQgZXJuZXV0IGFuIGFsbGUgQmVudXR6ZXIgc2VuZGVuJzsKJGxhbmdbJ2NvbnRpbnVlX2FyY2hpdmUnXSA9ICdOYWNocmljaHQgbnVyIGFuIG5ldWUgQmVudXR6ZXIgc2VuZGVuJzsKJGxhbmdbJ2NvbnRpbnVlX3RtcCddID0gJ0ZvcnRzZXR6ZW4gKHZvbSBsZXR6dGVuIGJlYXJiZWl0ZXRlbiBCZW51dHplciknOwokbGFuZ1sncmVzZW5kX2Vycm9ycyddID0gJ051ciBhbiBGZWhsZXIgZXJuZXV0IHNlbmRlbic7CiRsYW5nWydyZXNlbmRfdXNlciddID0gJ0VybmV1dCBhbiBkaWVzZW4gQmVudXR6ZXIgc2VuZGVuJzsKJGxhbmdbJ3Jlc2VuZF9zZWxlY3RlZCddID0gJ0VybmV1dCBhbiBhdXNnZXcmYXVtbDtobHRlIEJlbnV0emVyIHNlbmRlbic7CiRsYW5nWydyYW5kb21fZGVsYXknXSA9ICdadWZhbGxzd2VydCBmJnV1bWw7ciBkaWUgVmVyeiZvdW1sO2dlcnVuZyB2ZXJ3ZW5kZW4uJzsKCi8vIGNvbmZpcm0gbWVzc2FnZXMKJGxhbmdbJ2dyb3Vwc19jaGFuZ2VkJ10gPSAnU2llIGhhYmVuIGRpZSBFbXBmYWVuZ2VyLUd1cHBlbiBnZWFlbmRlcnQuXFxuV29sbGVuIFNpZSBmb3J0ZmFocmVuPyc7CiRsYW5nWydkZWxldGVjb25maXJtJ10gPSAnV29sbGVuIFNpZSBkaWUgYXVzZ2V3YWVobHRlbiBOYWNocmljaHRlbiB3aXJrbGljaCBsb2VzY2hlbj8nOwokbGFuZ1snZGVsZXRlYXJjaGl2ZWNvbmZpcm0nXSA9ICdXb2xsZW4gU2llIGRpZXNlIE5hY2hyaWNodCB3aXJrbGljaCBsb2VzY2hlbj8nOwokbGFuZ1snZGVsZXRldGVtcGNvbmZpcm0nXSA9ICdXb2xsZW4gU2llIGRpZXNlIHRlbXBvcmFlcmUgTmFjaHJpY2h0IHdpcmtsaWNoIGxvZXNjaGVuPyc7CiRsYW5nWydkZWxldGVsb2djb25maXJtJ10gPSAnV29sbGVuIFNpZSBkaWUgYXVzZ2V3YWVobHRlbiBMb2ctRGF0ZW4gd2lya2xpY2ggbG9lc2NoZW4/JzsKCiRsYW5nWydzdWJtaXRjb25maXJtJ10gPSAiTW9lY2h0ZW4gU2llIGRpZXNlIE5hY2hyaWNodCB3aXJrbGljaCBhbiBhbGxlIEJlbnV0emVyIGRlciBhdXNnZXdhZWhsdGVuIEdydXBwZShuKSBzZW5kZW4/IjsKJGxhbmdbJ3Jlc2VuZHNlbGVjdGVkY29uZmlybSddID0gJ01vZWNodGVuIFNpZSBkaWVzZSBOYWNocmljaHQgd2lya2xpY2ggTk9DSEVJTk1BTCBhbiBhbGxlIGF1c2dld2FlaGx0ZW4gQmVudXR6ZXIgc2VuZGVuPyc7CiRsYW5nWydyZXNlbmRhbGxhcmNoaXZlY29uZmlybSddID0gIk1vZWNodGVuIFNpZSBkaWVzZSBOYWNocmljaHQgd2lya2xpY2ggTk9DSEVJTk1BTCBhbiBhbGxlIEJlbnV0emVyIGRlciBhdXNnZXdhZWhsdGVuIEdydXBwZShuKSBzZW5kZW4/IjsKJGxhbmdbJ3Jlc2VuZG5ld2FyY2hpdmVjb25maXJtJ10gPSAiTW9lY2h0ZW4gU2llIGRpZXNlIE5hY2hyaWNodCB3aXJrbGljaCBhbiBhbGxlIE5FVUVOIEJlbnV0emVyIGRlciBhdXNnZXdhZWhsdGVuIEdydXBwZShuKSBzZW5kZW4/XFxuKGZvcnRzZXR6ZW4gdm9tIGxldHp0ZW4gYmVhcmJlaXRldGVuIEJlbnV0emVyKSI7CiRsYW5nWydyZXNlbmRlcnJvcmFyY2hpdmVjb25maXJtJ10gPSAiTW9lY2h0ZW4gU2llIGRpZXNlIE5hY2hyaWNodCB3aXJrbGljaCBhbiBhbGxlIEJlbnV0emVyIGRlciBhdXNnZXdhZWhsdGVuIEdydXBwZShuKSBzZW5kZW4sIGRpZSBiZWltIGxldHp0ZW4gU2VuZGV2b3JnYW5nIGtlaW5lIG9kZXIgZWluZSB1bmd1ZWx0aWdlIEVtYWlsLUFkcmVzc2UgaGF0dGVuPyI7CiRsYW5nWydyZXNlbmR1c2VyY29uZmlybV8xJ10gPSAnTW9lY2h0ZW4gU2llIGRpZXNlIE5hY2hyaWNodCB3aXJrbGljaCBOT0NIRUlOTUFMIGFuIGRpZXNlbiBCZW51dHplciBzZW5kZW4/XFxuQmVudXR6ZXJuYW1lL0VtYWlsOiAlcyc7CiRsYW5nWydyZXNlbmR1c2VyY29uZmlybV8yJ10gPSAnTW9lY2h0ZW4gU2llIGRpZXNlIE5hY2hyaWNodCB3aXJrbGljaCBOT0NIRUlOTUFMIGFuIGRpZXNlbiBCZW51dHplciBzZW5kZW4/XFxuQmVudXR6ZXJuYW1lOiAlc1xcbkVtYWlsOiAlcyc7CgokbGFuZ1snc3VibWl0Y29uZmlybV9mdWxsJ10gPSAiTW9lY2h0ZW4gU2llIGRpZXNlIE5hY2hyaWNodCB3aXJrbGljaCBhbiBhbGxlIEJlbnV0emVyIGRlciBhdXNnZXdhZWhsdGVuIEdydXBwZShuKSBzZW5kZW4/XFxuXFxuR3J1cHBlbjpcXG4lc1xcblxcbkJlbnV0emVyOlxcbiVzIjsKJGxhbmdbJ3Jlc2VuZGFsbHRtcGNvbmZpcm1fZnVsbCddID0gIk1vZWNodGVuIFNpZSBkaWVzZSBOYWNocmljaHQgd2lya2xpY2ggTk9DSEVJTk1BTCBhbiBhbGxlIEJlbnV0emVyIGRlciBhdXNnZXdhZWhsdGVuIEdydXBwZShuKSBzZW5kZW4/XFxuXFxuR3J1cHBlbjpcXG4lc1xcblxcbkJlbnV0emVyOlxcbiVzIjsKJGxhbmdbJ3Jlc2VuZG5ld3RtcGNvbmZpcm1fZnVsbCddID0gIk1vZWNodGVuIFNpZSBkaWVzZSB0ZW1wb3JhZXJlIE5hY2hyaWNodCB3aXJrbGljaCBhbiBhbGxlIEJlbnV0emVyIGRlciBhdXNnZXdhZWhsdGVuIEdydXBwZShuKSBzZW5kZW4/IChmb3J0c2V0emVuIHZvbSBsZXR6dGVuIGJlYXJiZWl0ZXRlbiBCZW51dHplcilcXG5cXG5HcnVwcGVuOlxcbiVzXFxuXFxuQmVudXR6ZXIgaW5zZ2VzYW10OlxcbiVzXFxuXFxuQmVhcmJlaXRldGUgQmVudXR6ZXI6ICVzXFxuXFxuRW1wZmFlbmdlcjogJXNcXG5cXG5WZXJibGVpYmVuZGUgQmVudXR6ZXI6XFxuJXMiOwokbGFuZ1sncmVzZW5kYWxsYXJjaGl2ZWNvbmZpcm1fZnVsbCddID0gIk1vZWNodGVuIFNpZSBkaWVzZSBOYWNocmljaHQgd2lya2xpY2ggTk9DSEVJTk1BTCBhbiBhbGxlIEJlbnV0emVyIGRlciBhdXNnZXdhZWhsdGVuIEdydXBwZShuKSBzZW5kZW4/XFxuXFxuR3J1cHBlbjpcXG4lc1xcblxcbkJlbnV0emVyOlxcbiVzIjsKJGxhbmdbJ3Jlc2VuZG5ld2FyY2hpdmVjb25maXJtX2Z1bGwnXSA9ICJNb2VjaHRlbiBTaWUgZGllc2UgTmFjaHJpY2h0IHdpcmtsaWNoIGFuIGFsbGUgTkVVRU4gQmVudXR6ZXIgZGVyIGF1c2dld2FlaGx0ZW4gR3J1cHBlKG4pIHNlbmRlbj9cXG4oZm9ydHNldHplbiB2b20gbGV0enRlbiBiZWFyYmVpdGV0ZW4gQmVudXR6ZXIpXFxuXFxuR3J1cHBlbjpcXG4lc1xcblxcbkJlbnV0emVyIGluc2dlc2FtdDpcXG4lc1xcblxcbkJlYXJiZWl0ZXRlIEJlbnV0emVyOlxcbiVzXFxuXFxuRW1wZmFlbmdlcjpcXG4lc1xcblxcblZlcmJsZWliZW5kZSBCZW51dHplcjpcXG4lcyI7CiRsYW5nWydyZXNlbmRlcnJvcmFyY2hpdmVjb25maXJtX2Z1bGwnXSA9ICJNb2VjaHRlbiBTaWUgZGllc2UgTmFjaHJpY2h0IHdpcmtsaWNoIGFuIGFsbGUgQmVudXR6ZXIgZGVyIGF1c2dld2FlaGx0ZW4gR3J1cHBlKG4pIHNlbmRlbiwgZGllIGJlaW0gbGV0enRlbiBTZW5kZXZvcmdhbmcga2VpbmUgb2RlciBlaW5lIHVuZ3VlbHRpZ2UgRW1haWwtQWRyZXNzZSBoYXR0ZW4/XFxuXFxuR3J1cHBlbjpcXG4lc1xcblxcbkJlbnV0emVyIGluc2dlc2FtdDpcXG4lc1xcblxcbkJlYXJiZWl0ZXRlIEJlbnV0emVyOlxcbiVzXFxuXFxuRW1wZmFlbmdlcjpcXG4lc1xcblxcblZlcmJsZWliZW5kZSBCZW51dHplcjpcXG4lcyI7Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEZyb250ZW5kVXNlciBNYWlsZXIgKGMpIDIwMDgtMjAxMCBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkKIyAgICAgICAgICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGJhY2tlbmQgdXNlcnMgYWJpbGl0eSAKIyAgICAgICAgICB0byBlYXNpbHkgc2VuZCBhbiBlbWFpbCB0byBhbGwgZnJvbnRlbmQgdXNlcnMgb3IganVzdCBzcGVjaWZpYyBmcm9udC0KIyAgICAgICAgICBlbmQgdXNlcmdyb3VwcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZCB3ZWJzaXRlLgojIFZlcnNpb246IDAuOS40CiMgRmlsZSAgIDogZW5fVVMucGhwIChsYW5ndWFnZSBmaWxlKQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDQtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAKIyBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKLy8gZ2VuZXJhbCBzdHVmZgokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnRnJvbnRlbmRVc2VycyBNYWlsZXIgTW9kdWxlJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnRnJvbnRlbmRVc2VycyBNYWlsZXIgTW9kdWxlIGluc3RhbGxlZC48YnIgLz5CZSBzdXJlIHRvIHNldCAiVXNlIEZFVU1haWxlcnMiIHBlcm1pc3Npb25zIHRvIHVzZSB0aGlzIG1vZHVsZSEnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0Zyb250ZW5kVXNlcnMgTWFpbGVyIE1vZHVsZSB1bmluc3RhbGxlZC4nOwokbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddID0gJ0RvIHlvdSByZWFsbHkgd2FudCB0byB1bmluc3RhbGwgRnJvbnRlbmRVc2VycyBNYWlsZXIgTW9kdWxlPyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSBVbmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ1RoaXMgbW9kdWxlIHByb3ZpZGVzIGEgc2ltcGxlIG1haWxpbmcgZnVuY3Rpb24gdG8gc2VuZCBlbWFpbHMgdG8gc2V2ZXJhbCBncm91cHMgb2YgdGhlIEZyb250ZW5kVXNlcnMgTW9kdWxlLic7CiRsYW5nWydjYW5ub3Rjb250aW51ZSddID0gJ05vIGFyY2hpdmUgbWFpbCBmb3VuZC4gQ2FuIG5vdCBjb25pbnVlIG9yIHJlcGVhdCB0aGlzIGpvYi4nOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPGJyIC8+Cjx1bD4KCTxsaT4KCQk8cD48c3Ryb25nPlZlcnNpb24gMC45LjQgKE1heSAyMDExKTo8L3N0cm9uZz48L3A+CgkJPHVsPgoJCQk8bGk+PHA+LSBjb21wYXRpYmlsaXR5IGJ1Z2ZpeGVzIGZvciBDTVNtcyAxLjkuNC4xPC9wPjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+CgkJPHA+PHN0cm9uZz5WZXJzaW9uIDAuOS4zIChKdW5lIDIwMTApOjwvc3Ryb25nPjwvcD4KCQk8dWw+CgkJCTxsaT48cD4tIGZpcnN0IHN0YWJsZSByZWxlYXNlPC9wPjwvbGk+CgkJCTxsaT48cD4tIGFkZGVkICJ3ZWIgYnVnIiB0byB0cmFjayBiYWNrIGlmIG1haWwgaGFzIGJlZW4gcmVhZCAob25seSB3b3JrcyBpZiBtYWlsIGlzIHNlbnQgYXMgaHRtbCk8L3A+PC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT4KCQk8cD48c3Ryb25nPlZlcnNpb24gMC45LjIuQkVUQSAoTWF5IDIwMDkpOjwvc3Ryb25nPjwvcD4KCQk8dWw+CgkJCTxsaT48cD5zZXZlcmFsIG1pbm9yIGJ1Z2ZpeGVzPC9wPjwvbGk+CgkJCTxsaT48cD5tb3ZlZCBhbGwgZGIgcXVlcnJpZXMgaW50byBGRVVNYWlsZXIubW9kdWxlLnBocCBhcyBzZXBhcmF0ZSBmdW5jdGlvbnM8L3A+PC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT4KCQk8cD48c3Ryb25nPlZlcnNpb24gMC45LjEgKEFwcmlsIDIwMDkpOjwvc3Ryb25nPjwvcD4KCQk8dWw+CgkJCTxsaT48cD5zZXZlcmFsIG1pbm9yIGJ1Z2ZpeGVzPC9wPjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+CgkJPHA+PHN0cm9uZz5WZXJzaW9uIDAuOSAoTWFyY2ggMjAwOSk6PC9zdHJvbmc+PC9wPgoJCTx1bD4KCQkJPGxpPjxwPmltcHJvdmVkIGNvbXBhdGlibGl0eSBmb3IgQ01TbXMgMS41Lng8L3A+PC9saT4KCQkJPGxpPjxwPmFkZGVkIG93biBtb2R1bGUgaWNvbjwvcD48L2xpPgoJCQk8bGk+PHA+ZW5sYXJnZWQgbW9kdWxlIGljb25zPC9wPjwvbGk+CgkJCTxsaT4KCQkJCTxwPgoJCQkJCUFkZGVkIGZ1bnRpb24gdG8gc2F2ZSBsb2cgZGF0YSBvZiBzZW50IG1haWxzLjxiciAvPgoJCQkJCVdpdGggdGhhdCBvcHRpb24geW91IGNhbiByZXNlbmQgbWFpbHMgdG8gdXNlcnMgdGhhdCBkaWQgbm90IGhhdmUgZW50ZXJlZCBhIHZhbGlkIGVtYWlsIGFkZHJlc3Mgd2hlbiBzZW5kaW5nIGEgbWFpbCBsYXN0IHRpbWUuCgkJCQk8L3A+CgkJCTwvbGk+CgkJCTxsaT48cD5TYXZlZCBtZXNzYWdlcyBkaXNwbGF5cyBhbW91bnQgb2YgcmVjaXBpZW50cywgcHJvY2Vzc2VkIHVzZXJzIGFuZCB0b3RhbCB1c2VycyBvZiB0aGUgc2VsZWN0ZWQgZ3JvdXBzPC9wPjwvbGk+CgkJCTxsaT48cD5BZGRlZCBjb25maXJtIG1lc3NhZ2VzIGJlZm9yZSBhY3R1YWxseSBzZW5kaW5nIGEgbWFpbC48YnIgLz4oY29uZmlybSBtZXNzYWdlIHNob3dzIGFtb3VudCBvZiB0b3RhbCB1c2VycywgcHJvY2Vzc2VkIHVzZXJzLCByZWNpcGllbnRzIGFuZCByZW1haW5pbmcgdXNlcnMpPC9wPjwvbGk+CgkJCTxsaT48cD5SZW1vdmVkIGZ1bmN0aW9uIHRvIHJlc2VuZCB0ZW1wb3JhcnkgbWFpbHMgdG8gYWxsIHVzZXJzIG9mIHNlbGVjdGVkIGdyb3VwczwvcD48L2xpPgoJCQk8bGk+PHA+UmVtb3ZlZCBmdW5jdGlvbiB0byBlZGl0IHRlbXBvcmFyeSBtYWlsczxiciAvPihqb2JzIGNhbm5vdCBiZSBjaGFuZ2VkIGFueW1vcmUgYnV0IGp1c3QgY29udGludWVkKTwvcD48L2xpPgoJCQk8bGk+PHA+U2V2ZXJhbCB0cml2aWFsIGJ1Z2ZpeGVzPC9wPjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+PHA+PHN0cm9uZz5WZXJzaW9uIDAuOCAoSnVseSAyMDA4LCBpbml0aWFsIHJlbGVhc2UpPC9zdHJvbmc+PHA+PC9saT4KPHVsPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgaXMgYSB2ZXJ5IHNpbXBsZSAiZW1haWwgbW9kdWxlIi48YnIgLz4KSXQgcHJvdmlkZXMgYmFja2VuZCB1c2VycyBhYmlsaXR5IHRvIHNlbmQgZW1haWxzIHRvIHNldmVyYWwgZ3JvdXBzIG9mIHRoZSBGcm9udGVuZFVzZXJzIG1vZHVsZS48YnIgLz4KWW91IGNhbiB1c2Ugc21hcnR5IHN5bnRheCBpbiB0aGUgbWVzc2FnZSB0ZXh0IHRvIGluc2VydCBlLmcuIHVzZXIgcHJvcGVydGllcywgbGlua3MgZXRjLiBpbiB0aGUgbWFpbC48YnIgLz4KU2VudCBtYWlscyBjYW4gYmUgc3RvcmVkIGluIHRoZSBkYXRhYmFzZS48YnIgLz4KPGJyIC8+ClNlbmRpbmcgbWFpbHMgYXJlIHN0b3JlZCB0ZW1wb3JhcnkgaW4gdGhlIGRhdGFiYXNlIGFuZCBkdXJpbmcgc2VuZGluZyBwcm9jZXNzIDxiciAvPgpjb250aW5vdXNseSB1cGRhdGVkIHdpdGggdGhlIGN1cnJlbnRseSBwcm9jZXNzZWQgdXNlcnMgaWQuIDxiciAvPgpTbyBpZiB0aGVyZSBpcyBhIHNlcnZlciB0aW1lb3V0IHRoZSBtb2R1bGUgY2FuIHJlc2VuZCB0aGUgZW1haWxzIGNvbnRpbnVlaW5nIDxiciAvPgpmcm9tIHRoZSBsYXN0IHVzZXIgdGhlIG1haWwgd2FzIHNlbnQgdG8uPGJyIC8+PGJyIC8+ClRvIHByZXZlbnQgYSBzZXJ2ZXIgdGltZW91dCBtYWlscyB3aWxsIGJlIHNlbnQgaW4gImpvYnMiIHVzaW5nIGFuIEFKQVggcmVxdWVzdC48YnIgLz4KPGgzPkhvdyBEbyBJIFVzZSBJdDwvaDM+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IHN1cHBvcnQgZnVuY3Rpb25zIGZvciB0aGUgZnJvbnRlbmQuPC9wPgo8cD5BZnRlciBpbnN0YWxsYXRpb24gZ28gdG8gIlVzZXJzICZhbXA7IEdyb3Vwcy0mZ3Q7RnJvbnRlbmRVc2VycyBNYWlsZXIgTW9kdWxlIiBpbiB0aGUgYmFja2VuZC48YnIgLz4KVG8gc2VuZCBhIG5ldyBtYWlsIGp1c3Qgc2VsZWN0ICJTZW5kIGEgbmV3IG1haWwiLjxiciAvPgpTZWxlY3QgdGhlIGdyb3VwcyBvZiB0aGUgRnJvbnRlbmRVc2VycyBtb2R1bGUgeW91IHdpc2ggdG8gc2VuZCBhbiBlbWFpbCB0by48YnIgLz4KRW50ZXIgYSBzdWJqZWN0IChvcHRpb25hbCkuPGJyIC8+CkVudGVyIGEgbWVzc2FnZSB0ZXh0LjxiciAvPgpTZWxlY3QgIlN1Ym1pdCIgdG8gc2VuZCB0aGUgbWFpbC48YnIgLz48YnIgLz4KVGhlIG1vZHVsZSBub3cgc2VuZHMgYW4gZW1haWwgdG8gYWxsIHVzZXJzIG9mIHRoZSBzcGVjaWZpZWQgZ3JvdXBzIHVzaW5nIHRoZSA8YnIgLz4KQ01TIE1haWxlciBtb2R1bGUuCjwvcD4KPHA+PHN0cm9uZz5TbWFydHkgc3ludGF4Ojwvc3Ryb25nPjxiciAvPgpZb3UgY2FuIHVzZSBnZW5lcmFsIHNtYXJ0eSBzdHVmZiBpbiB0aGUgZW1haWwuPGJyIC8+CkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyBhcmU6PC9wPgo8dWw+CjxsaT48c3Ryb25nPnskdXNlcm5hbWV9OiA8L3N0cm9uZz5QcmludHMgb3V0IHRoZSB1c2VybmFtZSBvZiB0aGUgdXNlciB0aGUgbWFpbCBpcyBzZW50IHRvLjwvbGk+CjxsaT48c3Ryb25nPnskdXNlcnByb3BzfTogPC9zdHJvbmc+SXMgYW4gYXJyYXkgY29udGFpbmluZyBhbGwgdXNlcnByb3BlcnRpZXMgb2YgdGhlIHVzZXIgdGhlIG1haWwgaXMgc2VudCB0by48L2xpPgo8L3VsPgo8YnIgLz4KVXNpbmcgYSB7Zm9yZWFjaH0tbG9vcCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGFjY2VzcyBhbGwgdXNlcnByb3BlcnRpZXMuPGJyIC8+PGJyIC8+CkV4YW1wbGU6PGJyIC8+Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCjxiciAvPjxiciAvPgo8cHJlPgpIZWxsbyB7JHVzZXJuYW1lfSwKCkFyZSB0aGVzZSBlbnRyeXMgc3RpbGwgdXAgdG8gZGF0ZT8KCntmb3JlYWNoIGZyb209JHVzZXJwcm9wcyBpdGVtPXByb3B9CnskcHJvcC5wcm9tcHR9OiB7JHByb3AuZGF0YX0mbHQ7YnIgLyZndDsKey9mb3JlYWNofQoKSWYgbm90LCBzbyBwbGVhc2UgdXBkYXRlIHRoZW0uCgpSZWdhcmRzLCB5b3VyIEFkbWluLgo8L3ByZT4KPGJyIC8+Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCjxiciAvPgo8YnIgLz4KeyRwcm9wLmRhdGF9IGNvbnRhaW5zIHRoZSBkYXRhIG9mIHRoYXQgZmllbGQuPGJyIC8+CnskcHJvcC5wcm9tcHR9IGNvbnRhaW5zIHRoZSBwcm9tcHQgb2YgdGhhdCBmaWVsZC48YnIgLz4KPGJyIC8+PGJyIC8+ClRvIGFjY2VzcyB1c2VycHJvcGVydGllcyBkaXJlY3RseSB1c2UgZG90IHN5bnRheDo8YnIgLz4KPGJyIC8+CkV4YW1wbGU6PGJyIC8+Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCjxiciAvPjxiciAvPgo8cHJlPgpIZWxsbyB7JHVzZXJwcm9wcy5maXJzdF9uYW1lLmRhdGF9LAoKaVwndmUganVzdCBzcGFtbWVkIHlvdXIgaW5ib3ggYWdhaW4gO1AKPC9wcmU+CjxiciAvPgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo8YnIgLz48YnIgLz4KeyR1c2VycHJvcHMuRklFTEROQU1FLmRhdGF9IGNvbnRhaW5zIHRoZSBkYXRhIG9mIHRoYXQgZmllbGQuPGJyIC8+CnskdXNlcnByb3BzLkZJRUxETkFNRS5wcm9tcHR9IGNvbnRhaW5zIHRoZSBwcm9tcHQgb2YgdGhhdCBmaWVsZC48YnIgLz4KPC9wPgo8aDM+U2V0dGluZ3M8L2gzPgo8cD5JbiB0aGUgYWRtaW5wYW5lbCB5b3UgY2FuIHNldHVwIHRoZSBmb2xsb3dpbmcgb3B0aW9uczo8L3A+Cjx1bD4KCTxsaT4KCQk8c3Ryb25nPkF1dG9zYXZlOjwvc3Ryb25nPgoJCTx1bD4KCQkJPGxpPgoJCQkJVXNlIHRoaXMgb3B0aW9uIHRvIHNhdmUgc2VudCBtZXNzYWdlcyBpbiB5b3VyIG1lc3NhZ2UgYXJjaGl2ZS4KCQkJPC9saT4KCQk8L3VsPgoJPC9saT4KCTxiciA+Cgk8bGk+PHN0cm9uZz5TYXZlIGxvZ3M6PC9zdHJvbmc+CgkJPHVsPgoJCQk8bGk+CgkJCQlVc2UgdGhpcyBvcHRpb24gdG8gc2F2ZSBsb2cgZGF0YSBvZiBlYWNoIHNlbnQgbWFpbC48YnIgLz48YnIgLz4KCQkJCTxlbT5Ob3RpY2U6IHRoZSBhbW91bnQgb2YgbG9nIGRhdGEgZGVwZW5kcyBvbiB0aGUgYW1vdW50IG9mIHlvdXIgZnJvbnRlbmQgdXNlcnMuPGJyIC8+CgkJCQlJZiB5b3UgcmVhbGl6ZSBwcm9ibGVtcyB3aXRoIGxhcmdlIG51bWJlciBvZiB1c2VycywgZGlzYWJsZSB0aGlzIG9wdGlvbi48YnIgLz4gCgkJCQlEaXNhYmxpbmcgdGhpcyBvcHRpb24gd2lsbCBhbHNvIGRpc2FibGUgdGhlIGFiaWxpdHkgdG8gcmVzZW5kIGEgc2F2ZWQgbWFpbCB0byB1c2VycyA8YnIgLz4KCQkJCXRoYXQgZGlkIG5vdCBoYXZlIGFuIGVtYWlsIGFkZHJlc3Mgd2hlbiBzZW5kaW5nIHRoaXMgbWFpbCBsYXN0IHRpbWUuPC9lbT4KCQkJCTxiciAvPjxiciAvPgoJCQkJRGVmYXVsdCBpcyBvbi4KCQkJPC9saT4KCQkJPGJyIC8+CgkJCTxsaT48c3Ryb25nPlNhdmUgZXJyb3Jsb2dzIG9ubHk6PC9zdHJvbmc+CgkJCQk8dWw+CgkJCQkJPGxpPgoJCQkJCQlUaGlzIHdpbGwgb25seSBzYXZlIGxvZ3Mgd2hlcmUgYSBtYWlsIGNvdWxkIG5vdCBiZSBzZW50LjxiciAvPgoJCQkJCQlUaGlzIG1heSBoYXBwZW4gd2hlbiBhIHVzZXIgZG9lcyBub3QgaGF2ZSBlbnRlcmVkIGFuIGVtYWlsIGFkZHJlc3MgaW4gaGlzIHByb3BlcnRpZXMuPGJyIC8+CgkJCQkJCTxiciAvPgoJCQkJCQlEZWZhdWx0IGlzIG9uLgoJCQkJCTwvbGk+CgkJCQk8L3VsPgoJCQk8L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGJyIC8+Cgk8bGk+PHN0cm9uZz5BdXRvbWF0aWNhbGx5IGRlbGV0ZSBvbGQgbWFpbHM6PC9zdHJvbmc+CgkJPHVsPgoJCQk8bGk+CgkJCQlUaGlzIHdpbGwgYXV0b21hdGljYWxseSBkZWxldGUgb2xkIG1haWxzLgoJCQkJPGJyIC8+PGJyIC8+CgkJCQlEZWZhdWx0IGlzIG9uLjxiciAvPgoJCQkJPGJyIC8+CgkJCQlTZWxlY3QgdGhlIGxpZmV0aW1lIG9mIGFyY2hpdmUgb3IgdGVtcG9yYXJ5IG1haWxzIHdpdGggdGhlIGRyb3Bkb3duIGlucHV0IGZpZWxkcy48YnIgLz48YnIgLz4KCQkJCURlZmF1bHQgaXMgMyBtb250aHMuCgkJCTwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8YnIgLz4KCTxsaT48c3Ryb25nPkRlZmF1bHQgZ3JvdXAocyk6PC9zdHJvbmc+CgkJPHVsPgoJCQk8bGk+CgkJCQlUaGlzIHdpbGwgYmUgdGhlIHByZXNlbGVjdGVkIGdyb3VwKHMpIHdoZW4gc2VuZGluZyBhIG5ldyBtYWlsLjxiciAvPgoJCQkJPGJyIC8+CgkJCQlEZWZhdWx0IGlzIG5vbmUuCgkJCTwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8YnIgLz4KCTxsaT48c3Ryb25nPlNlbmQgbWFpbCBhcyBIVE1MIHRleHQ6PC9zdHJvbmc+CgkJPHVsPgoJCQk8bGk+CgkJCQlJZiB5b3Ugc2VsZWN0IHRoaXMgb3B0aW9uIHlvdSB3aWxsIGJlIGFibGUgdG8gdXNlIHlvdXIgaW5zdGFsbGVkIFdZU0lXWUcgZWRpdG9yIHRvIHdyaXRlIHRoZSBtYWlsLjxiciAvPgoJCQkJPGJyIC8+CgkJCQlEZWZhdWx0IGlzIG9mZi4KCQkJPC9saT4KCQk8L3VsPgoJPC9saT4KCTxiciAvPgoJPGxpPjxzdHJvbmc+TWF4LiBudW1iZXIgb2YgZW1haWxzIHBlciBqb2I6PC9zdHJvbmc+CgkJPHVsPgoJCQk8bGk+CgkJCQlUbyBwcmV2ZW50IGEgc2VydmVyIHRpbWVvdXQgbWFpbHMgd2lsbCBiZSBzZW50IGluICJqb2JzIiB1c2luZyBhbiBBSkFYIHJlcXVlc3QuPGJyIC8+CgkJCQlFbnRlciB0aGUgYW1vdW50IG9mIHVzZXJzIHRoYXQgd2lsbCBiZSBwcm9jZXNzZWQgcGVyIGpvYi48YnIgLz4KCQkJCTxiciAvPgoJCQkJRGVmYXVsdCBpcyA1MAoJCQk8L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGJyIC8+Cgk8bGk+PHN0cm9uZz5BSkFYIHJlcXVlc3QgZGVsYXk6PC9zdHJvbmc+CgkJPHVsPgoJCQk8bGk+CgkJCQlTaW5jZSBpZiB5b3UgaGF2ZSBhIGxhcmdlIGFtb3VudCBvZiBmcm9udGVuZCB1c2VycyBhbmQgYSBzbWFsbCBhbW91bnQgb2YgdXNlcnMgcGVyIGpvYjxiciAvPgoJCQkJeW91ciBicm93c2VyIHdpbGwgc2VudCBsb3RzIG9mIGlkZW50aWNhbCByZXF1ZXN0cyB0byB0aGUgc2VydmVyIGluIGEgdmVyeSBzaG9ydCB0aW1lLjxiciAvPgoJCQkJU29tZSBzZWN1cml0eSBzb2Z0d2FyZSBwcm9iYWJseSB3aWxsIGludGVycHJldCB0aGlzIGFzIGFuIGludHJ1c2lvbgoJCQkJYW5kIGJyZWFrIHlvdXIgcmVxdWVzdHMgb3IgZXZlbiBibG9jayB5b3VyIElQIGFkZHJlc3MuPGJyIC8+CgkJCQk8YnIgLz4KCQkJCVRvIGF2b2lkIHRoaXMgeW91IGNhbiBlbnRlciBhIGRlbGF5IChpbiBtaWxpc2Vjb25kcykgdGhlIGphdmFzY3JpcHQgd2lsbCB3YWl0IHVudGlsIHNlbmRpbmcgYSBuZXcgcmVxdWVzdC48YnIgLz4KCQkJCTxiciAvPgoJCQkJRGVmYXVsdCBpcyBub25lLgoJCQk8L2xpPgoJCTwvdWw+Cgk8L2xpPgo8L3VsPgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgoJPGxpPlRoZSBwcm9qZWN0cyBob21lcGFnZSBpcyA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2ZldW1haWxlci8iPmh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZmV1bWFpbGVyLzwvYT48L2xpPgoJPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPgo8L3VsPgo8YnIgLz4KPHA+UGxlYXNlIHJlcG9ydCBhbnkga2luZCBvZiBlcnJvcnMgYW5kIGZlZWwgZnJlZSB0byByZXBvcnQgYW55IGlkZWFzIHRvIGltcHJvdmUgdGhpcyBtb2R1bGUuPC9wPgo8aDM+S25vd24gaXNzdWVzPC9oMz4KPHA+SWYgdXNlcm5hbWUgaXMgdXNlZCBhcyBlbWFpbGFkZHJlc3Mgb25seSB0aGlzIGFkZHJlc3Mgd2lsbCBiZSB1c2VkLjwvcD4KPHA+SWYgdXNlcm5hbWUgaXMgPHN0cm9uZz5ub3Q8L3N0cm9uZz4gdXNlZCBhcyBlbWFpbGFkZHJlc3MgdGhlIEZldU1haWxlciBNb2R1bGUgb25seSBzZWFyY2hlcyBmb3IgYSB1c2VyIHByb3BlcnR5IG9mIDxzdHJvbmc+dHlwZSAiZW1haWwiPC9zdHJvbmc+LjwvcD4KPHA+SWYgdGhlIHVzZXIgaGFzIGVudGVyZWQgbW9yZSB0aGFuIG9uZSBlbWFpbGFkZHJlc3Mgb25seSB0aGUgZmlyc3QgZm91bmQgZW1haWxhZGRyZXNzIHdpbGwgYmUgdXNlZC48L3A+CjxwPgoJV2hlbiB1c2luZyBwaWN0dXJlcyBvciBhbnkgb3RoZXIga2luZCBvZiBtZWRpYSBpdCB3aWxsIG5vdCBiZSBhdHRhY2hlZCB0byB0aGUgbWFpbCBidXQganVzdCBpbnNlcnRlZCB3aXRoIGEgbGluayB0byB0aGF0IG1lZGlhLjxiciAvPgoJVGhpcyBsaW5rIHdpbGwgYmUgaW5zZXJ0ZWQgYXMgYSByZWxhdGl2ZSBvbmUgKGUuZy4gJmx0O2ltZyBzcmM9Ii91cGxvYWRzL2ltYWdlcy9hX3RpbnlfaW1hZ2UuanBnIiAvJmd0OykuPGJyIC8+CglGb3IgYSBwcm9wZXIgbGluayB5b3UgbmVlZCB0byBhZGFwdCBpdCB0byBhbiBhYnNvbHV0ZSBvbmUgKGUuZy4gJmx0O2ltZyBzcmM9Imh0dHA6Ly93d3cueW91ckRvbWFpbi91cGxvYWRzL2ltYWdlcy9hX3RpbnlfaW1hZ2UuanBnIiAvJmd0OykuCjwvcD4KPHA+CglTb21lIFNtYXJ0eSB0YWdzLCBwbHVnaW5zIG9yIG1vZHVsZXMgd29uXCd0IHdvcmsgcHJvcGVybHkgaWYgdXNlZCBpbiBhIG1haWw8YnIgLz4KCWJlY2F1c2UgdGhleSBuZWVkIHNvbWUgZGF0YSBvZiB0aGUgc2VydmVyIHJlcXVlc3QgaW4geW91ciBicm93c2VycyBhZGRyZXNzIGJhci48YnIgLz4KCVRoaXMgZGF0YSBkb2VzIG9ubHkgZXhpc3Qgd2hlbiBhY2Nlc3NpbmcgdGhlIHBhZ2UgdmlhIGZyb250ZW5kLjxiciA+CglTaW5jZSB0aGUgbWFpbCB3aWxsIGJlIHByb2Nlc3NlZCBieSB0aGUgYmFja2VuZCB0aGlzIGRhdGEgd29uXCd0IGJlIGFjY2Vzc2libGUuPGJyIC8+CglUaGlzIGNhbm5vdCBiZSBjaGFuZ2VkIHVubGVzcyB5b3UgbW9kaWZ5IHRoZSBwbHVnaW5zLgo8L3A+CjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD4KCUFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLjxiciAvPgoJVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsPGJyIC8+CglidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZjxiciAvPgoJTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLjxiciAvPgoJU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLjxiciAvPgoJWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2U8YnIgLz4KCWFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlPGJyIC8+CglGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQTxiciAvPgoJT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTDxiciAvPgoJUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuCjwvcD4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA4LCBHZW9yZyBCdXNjaCAoTmFOKSA8YSBocmVmPSJtYWlsdG86Z2VvcmcuYnVzY2hAZ214Lm5ldCI+Jmx0O2dlb3JnLmJ1c2NoQGdteC5uZXQmZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPgonOwoKLy8gRXJyb3IgbWVzc2FnZXMKJGxhbmdbJ2Vycm9yJ10gPSAnRXJyb3IhJzsKJGxhbmdbJ2Vycm9yX3VwZ3JhZGUnXSA9ICJTb3JyeSBidXQgdGhlcmUgaXMgbm8gdXBncmFkZSBhdmFpbGFibGUuIDxiciAvPllvdSBuZWVkIHRvIHJlaW5zdGFsbCB0aGUgbW9kdWxlLiI7CiRsYW5nWydlcnJvcl9wZXJtaXNzaW9ucyddID0gJ0FjY2VzcyBEZW5pZWQuIFBsZWFzZSBjaGVjayB5b3VyIHBlcm1pc3Npb25zLic7CiRsYW5nWydlcnJvcl9mZXVzZXJzJ10gPSAnTm8gRnJvbnRlbmRVc2VycyBtb2R1bGUgZm91bmQuIFRvIHVzZSB0aGUgRnJvbnRlbmRVc2VycyBNYWlsZXIgbW9kdWxlIHlvdSBuZWVkIHRvIGluc3RhbGwgdGhlIEZyb250ZW5kVXNlcnMgbW9kdWxlLic7CiRsYW5nWydlcnJvcl9jbXNtYWlsZXInXSA9ICdObyBDTVMgTWFpbGVyIG1vZHVsZSBmb3VuZC4gVG8gdXNlIHRoZSBGcm9udGVuZFVzZXJzIE1haWxlciBtb2R1bGUgeW91IG5lZWQgdG8gaW5zdGFsbCB0aGUgQ01TIE1haWxlciBtb2R1bGUuJzsKJGxhbmdbJ2Vycm9yX3RtcG1haWxzJ10gPSAnVGhlcmUgYXJlIHRlbXBvcmFyeSBlbWFpbHMgaW4gdGhlIGRhdGFiYXNlLjxiciAvPlRlbXBvcmFyeSBlbWFpbHMgY291bGQgbm90IGJlIHNlbnQgdG8gYWxsIHVzZXJzIG9mIHRoZSBzZWxlY3RlZCBncm91cHMuPGJyIC8+WW91IGNhbiB0cnkgdG8gc2VuZCB0aGUgZW1haWwgdG8gYWxsIHVzZXJzIHRoYXQgZGlkIG5vdCByZWNpZXZlIHRoZSBtYWlsIHVzaW5nIHRoZSAicmVzZW5kIiBidXR0b24uPGJyIC8+VGhlIG1vZHVsZSB3aWxsIHNlbmQgdGhlIG1haWwgYWdhaW4gY29udGludWVpbmcgZnJvbSB0aGUgbGFzdCB1c2VyIHRoYXQgbWFpbCB3YXMgc2VudCB0by4nOwokbGFuZ1snZXJyb3JfZ3JvdXBzJ10gPSAnTm8gRnJvbnRlbmRVc2VycyBncm91cHMgZGVmaW5lZC4gQ2hlY2sgdGhlIEZyb250ZW5kVXNlcnMgTW9kdWxlIGZvciBhdCBsZWFzdCBvbmUgdXNlcmdyb3VwLic7CiRsYW5nWydlcnJvcl9zZWxlY3RlZGdyb3VwcyddID0gJ1BsZWFzZSBzZWxlY3QgYXQgbGVhc3Qgb25lIHVzZXJncm91cC4nOwokbGFuZ1snZXJyb3JfbWFpbGJvZHknXSA9ICdQbGVhc2UgZW50ZXIgYSBtZXNzYWdlIHRleHQuJzsKJGxhbmdbJ2Vycm9yX3JlcXVlc3Rfc3RhdHVzJ10gPSAiVGhlIEFKQVggcmVxdWVzdCBoYXMgYmVlbiBzdWNjZXNmdWxseSBzZW50IGJ1dCB0aGVyZSB3aGVyZSBlcnJvcnMuIFJlcXVlc3QgU3RhdHVzOiI7CiRsYW5nWydlcnJvcl94bWxodHRwX2luc3RhbmNlJ10gPSAiQ2Fubm90IGNyZWF0ZSBYTUxIdHRwIGluc3RhbmNlISI7CiRsYW5nWydlcnJvcl9zZWxlY3RlZGFyY2hpdmVtYWlscyddID0gJ05vIG1haWxzIHNlbGVjdGVkLjxiciAvPk5vIG1haWxzIGRlbGV0ZWQuPGJyIC8+VGhhdFwncyB0aGUgZGVhbC4nOwokbGFuZ1snZXJyb3Jfc2VsZWN0ZWR0bXBtYWlscyddID0gJ05vIHRlbXBvcmFyeSBtYWlscyBzZWxlY3RlZC48YnIgLz5ObyB0ZW1wb3JhcnkgbWFpbHMgZGVsZXRlZC48YnIgLz5UaGF0XCdzIHRoZSBkZWFsLic7CiRsYW5nWydlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnXSA9ICdJbnN1ZmZpY2llbnQgcGFyYW1zLjxiciAvPkluY29ycmVjdCBvciBtaXNzaW5nIHZhbHVlIG9mIHBhcmFtICVzIGluIG1vZHVsZXMvRkVVTWFpbGVyL2FjdGlvbi4lcy5waHAuJzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtc19hamF4J10gPSAnT3BlcmF0aW9uIGNhbmNlbGVkLiBJbnN1ZmZpY2llbnQgcGFyYW1zLjxiciAvPkluY29ycmVjdCBvciBtaXNzaW5nIHZhbHVlIG9mIHBhcmFtICVzIGluIG1vZHVsZXMvRkVVTWFpbGVyL2FjdGlvbi4lcy5waHAuJzsKJGxhbmdbJ2Vycm9yX25vdXNlcnNmb3VuZCddID0gJ05vIHVzZXJzIGZvdW5kLic7CiRsYW5nWydlcnJvcl9hamF4J10gPSAiQW4gZXJyb3Igb2NjdXJlZC5cXG5PcGVyYXRpb24gY2FuY2VsZWQuXFxuUGxlYXNlIHRyeSBhZ2Fpbi5cXG5cXG5TZXJ2ZXIgcmVzcG9uc2U6XFxuXFxuIjsKCi8vIGRiIGVycm9ycwokbGFuZ1snZXJyb3JfZGJfZGVsZXRlbWFpbCddID0gJ01haWwocykgY291bGQgbm90IGJlIGRlbGV0ZWQuIFRoZSBxdWVyeSBjb3VsZCBub3QgYmUgZXhlY3V0ZWQ6PGJyIC8+JXMnOwokbGFuZ1snZXJyb3JfZGJfc2F2ZW1haWwnXSA9ICdNYWlsIGNvdWxkIG5vdCBiZSBzdG9yZWQuIFRoZSBxdWVyeSBjb3VsZCBub3QgYmUgZXhlY3V0ZWQ6PGJyIC8+JXMnOwokbGFuZ1snZXJyb3JfZGJfc2F2ZW1haWxfYWpheCddID0gJ01haWwgY291bGQgbm90IGJlIHN0b3JlZC4nOwokbGFuZ1snZXJyb3JfZGJfZ2V0X3RtcG1haWwnXSA9ICdDb3VsZCBub3QgZ2V0IHRlbXBvcmFyeSBtYWlsIHdpdGggaWQgJXMuIFRoZSBxdWVyeSBjb3VsZCBub3QgYmUgZXhlY3V0ZWQgb3IgcmV0dXJuZWQgYW4gZW1wdHkgcmVzdWx0LjxiciAvPlF1ZXJ5OjxiciAvPiVzJzsKJGxhbmdbJ2Vycm9yX2RiX2dldF90bXBtYWlsX2FqYXgnXSA9ICdPcGVyYXRpb24gY2FuY2VsZWQuIENvdWxkIG5vdCBnZXQgdGVtcG9yYXJ5IG1haWwgd2l0aCBpZCAlcy4nOwokbGFuZ1snZXJyb3JfZGJfZ2V0X2FyY2hpdmVtYWlsJ10gPSAnQ291bGQgbm90IGdldCBhcmNoaXZlIG1haWwuIFRoZSBxdWVyeSBjb3VsZCBub3QgYmUgZXhlY3V0ZWQgb3IgcmV0dXJuZWQgYW4gZW1wdHkgcmVzdWx0LjxiciAvPlF1ZXJ5OjxiciAvPiVzJzsKJGxhbmdbJ2Vycm9yX2RiX2NyZWF0ZV90bXBtYWlsJ10gPSAiT3BlcmF0aW9uIGNhbmNlbGVkLiBDb3VsZCBub3QgY3JlYXRlIHRlbXAgbWFpbC48YnIgLz5UaGUgcXVlcnkgY291bGQgbm90IGJlIGV4ZWN1dGVkOjxiciAvPiVzIjsKJGxhbmdbJ2Vycm9yX2RiX2F1dG9jbGVhcmxvZyddID0gJ0NvdWxkIG5vdCBkZWxldGUgbG9nKHMpIG9mIGRlbGV0ZWQgbWFpbChzKS4gVGhlIHF1ZXJ5IGNvdWxkIG5vdCBiZSBleGVjdXRlZDo8YnIgLz4lcyc7CiRsYW5nWydlcnJvcl9kYl91cGRhdGVfdG1wbWFpbCddID0gJ09wZXJhdGlvbiBjYW5jZWxlZC4gQ291bGQgbm90IHVwZGF0ZSB0ZW1wb3JhcnkgbWFpbC4gVGhlIHF1ZXJ5IGNvdWxkIG5vdCBiZSBleGVjdXRlZDo8YnIgLz4lcyc7CiRsYW5nWydlcnJvcl9kYl91cGRhdGVfdG1wbWFpbF9hamF4J10gPSAnT3BlcmF0aW9uIGNhbmNlbGVkLiBDb3VsZCBub3QgdXBkYXRlIHRlbXBvcmFyeSBtYWlsLic7CgokbGFuZ1snZXJyb3JfZGJfY3JlYXRlX2xvZyddID0gJ0NvdWxkIG5vdCBjcmVhdGUgbG9nIGVudHJ5KHMpLic7CiRsYW5nWydlcnJvcl9kYl91cGRhdGVfYXJjaGl2ZSddID0gJ0NvdWxkIG5vdCB1cGRhdGUgYXJjaGl2ZSBtYWlsLiBUaXMgbWF5IHJlc3VsdCBpbiBkaXNwbGF5aW5nIGluY29ycmVjdCBudW1iZXIgb2YgcmVjaXBpZW50cyBhbmQvb3IgcHJvY2Vzc2VkIHVzZXJzLic7CiRsYW5nWydlcnJvcl9kYl9kZWxldGVfdG1wJ10gPSAnQ291bGQgbm90IGRlbGV0ZSB0ZW1wIG1haWwuIFlvdSBuZWVkIHRvIGRlbGV0ZSB0ZW1wIG1haWwgbWFudWFsbHkuJzsKJGxhbmdbJ2Vycm9yX2RiX3VwZGF0ZV9sb2cnXSA9ICdDb3VsZCBub3QgdXBkYXRlIGxvZyBlbnRyeShzKS4gVGhpcyBtYXkgcmVzdWx0IGluIGRpc3BsYXlpbmcgaW5jb3JyZWN0IHNlbmQgc3RhdHVzLic7CgovLyBtb2R1bGUgc3R1ZmYKJGxhbmdbJ2FkbWlucGFuZWwnXSA9ICdBZG1pbnBhbmVsJzsKJGxhbmdbJ3NlbmRtYWlsJ10gPSAnU2VuZCBtYWlsLi4uJzsKJGxhbmdbJ2VtYWlsYWRkcmVzcyddID0gJ0VtYWlsYWRkcmVzcyc7CiRsYW5nWydub21haWxzJ10gPSAnTm8gc2VudCBtYWlscyBpbiB5b3VyIG1haWxzIGFyY2hpdmUuJzsKJGxhbmdbJ25vdGVtcG1haWxzJ10gPSAnTm8gdGVtcG9yYXJ5IG1haWxzIGZvdW5kLic7CiRsYW5nWydhcmNoaXZlJ10gPSAnQXJjaGl2ZSBtYWlscyc7CiRsYW5nWyduZXdtYWlsJ10gPSAnU2VuZCBhIG5ldyBtYWlsJzsKJGxhbmdbJ3RlbXAnXSA9ICdUZW1wb3JhcnkgbWFpbHMnOwokbGFuZ1sncHJlZiddID0gJ1ByZWZlcmVuY2VzJzsKJGxhbmdbJ3ByZWZzX3VwZGF0ZWQnXSA9ICdQcmVmZXJlbmNlcyB1cGRhdGVkLic7CiRsYW5nWyd1c2VycyddID0gJ1VzZXJzJzsKJGxhbmdbJ3JlcXVlc3RfZGVsYXknXSA9ICdBSkFYIHJlcXVlc3QgZGVsYXknOwokbGFuZ1snZ3JvdXBzJ10gPSAnVXNlcmdyb3Vwcyc7CiRsYW5nWydzdWJqZWN0J10gPSAnU3ViamVjdCc7CiRsYW5nWydkYXRlJ10gPSAnU2VuZCBkYXRlJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdSZWNpcGllbnRzJzsKJGxhbmdbJ3JlYWQnXSA9ICdSZWFkJzsKJGxhbmdbJ3JlYWRtYWlsJ10gPSAnUmVhZCBtYWlsJzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0JzsKJGxhbmdbJ3Jlc2VuZCddID0gJ1Jlc2VuZCc7CiRsYW5nWydkZWxldGUnXSA9ICdEZWxldGUnOwokbGFuZ1snc2F2ZV9sb2dzJ10gPSAnU2F2ZSBsb2dzJzsKJGxhbmdbJ3NhdmVfZXJyb3Jsb2dzX29ubHknXSA9ICdTYXZlIGVycm9ybG9ncyBvbmx5JzsKJGxhbmdbJ2xvZ2lkJ10gPSAnTG9nIElEJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyc7CiRsYW5nWydyZWNpZXZlZCddID0gJ1JlY2lldmVkJzsKJGxhbmdbJ25vZW1haWxhZGRyZXNzZm91bmQnXSA9ICdObyBlbWFpbCBhZGRyZXNzIGZvdW5kJzsKJGxhbmdbJ2ludmFsaWRlbWFpbGFkZHJlc3MnXSA9ICdJbnZhbGlkIGVtYWlsIGFkZHJlc3MnOwokbGFuZ1snZmlsdGVyJ10gPSAnRmlsdGVyJzsKJGxhbmdbJ2FzYyddID0gJ2FzY2VuZGluZyc7CiRsYW5nWydkZXNjJ10gPSAnZGVzY2VuZGluZyc7CiRsYW5nWydzb3J0YnknXSA9ICdTb3J0IGJ5JzsKJGxhbmdbJ3NvcnQnXSA9ICdzb3J0JzsKJGxhbmdbJ2xpbWl0J10gPSAgJ0xpbWl0JzsKJGxhbmdbJ3BhZ2VzJ10gPSAnUGFnZXMnOwokbGFuZ1snZXJyb3Jzb25seSddID0gJ1Nob3cgZXJyb3JzIG9ubHknOwokbGFuZ1snc2F2ZWRlZmF1bHQnXSA9ICdTYXZlIGZpbHRlcic7CiRsYW5nWydzZW5kX29yZGVyJ10gPSAnU2VuZCBvcmRlcic7CiRsYW5nWydzb3J0b3JkZXInXSA9ICdTb3J0IG9yZGVyJzsKJGxhbmdbJ3NlbmRfZGF0ZSddID0gJ1NlbmQgZGF0ZSc7CiRsYW5nWyd1c2VybmFtZSddID0gJ1VzZXJuYW1lJzsKJGxhbmdbJ25vbGltaXQnXSA9ICdubyBsaW1pdCc7CgokbGFuZ1snYXV0b3NhdmUnXSA9ICdBdXRvbWF0aWNhbGx5IHNhdmUgc2VudCBtZXNzYWdlcyc7CiRsYW5nWydhdXRvY2xlYXJfYXJjaGl2ZW1haWxzJ10gPSAnQXV0b21hdGljYWxseSBkZWxldGUgb2xkIG1haWxzJzsKJGxhbmdbJ2F1dG9jbGVhcl9hY3Rpb24nXSA9ICdEZWxldGUgbWFpbHMgdGhhdCBhcmUgb2xkZXIgdGhhbic7CiRsYW5nWydzZWNvbmRzJ10gPSAnc2Vjb25kcyc7CiRsYW5nWydtaW51dGVzJ10gPSAnbWludXRlcyc7CiRsYW5nWydob3VycyddID0gJ2hvdXJzJzsKJGxhbmdbJ2RheXMnXSA9ICdkYXlzJzsKJGxhbmdbJ3dlZWtzJ10gPSAnd2Vla3MnOwokbGFuZ1snbW9udGhzJ10gPSAnbW9udGhzJzsKJGxhbmdbJ3llYXJzJ10gPSAneWVhcnMnOwokbGFuZ1snYXV0b2NsZWFyX3RtcG1haWxzJ10gPSAnaW5jbHVkZSB0ZW1wb3JhcnkgbWFpbHMnOwokbGFuZ1snZGVmYXVsdF9ncm91cHMnXSA9ICdEZWZhdWx0IHJlY2lwaWVudCBncm91cHMnOwokbGFuZ1snaXNfaHRtbCddID0gJ1NlbmQgbWFpbCBhcyBIVE1MIHRleHQnOwokbGFuZ1snc3VibWl0J10gPSAnU3VibWl0JzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbCc7CiRsYW5nWydtZXNzYWdlJ10gPSAnTWVzc2FnZSc7CiRsYW5nWydzYXZlJ10gPSAnU2F2ZSBzZW50IG1lc3NhZ2UnOwokbGFuZ1snbWF4bWFpbHMnXSA9ICdNYXguIG51bWJlciBvZiBlbWFpbHMgcGVyIGpvYic7CgokbGFuZ1snbm9zdWJqZWN0J10gPSAnTm8gc3ViamVjdCc7CiRsYW5nWydsb2dzJ10gPSAnTG9ncyc7CiRsYW5nWyd0bXBtYWlsZGVsZXRlZCddID0gJ1RlbXBvcmFyeSBtYWlsKHMpIGRlbGV0ZXRkJzsKJGxhbmdbJ2FyY2hpdmVtYWlsZGVsZXRlZCddID0gJ01haWwocykgZGVsZXRlZCc7CgokbGFuZ1sndGFza19maW5pc2hlZCddID0gJ1RoaXMgdGFzayBpcyBmaW5pc2hlZCc7CiRsYW5nWyd0YXNrX29wZW4nXSA9ICdUaGlzIHRhc2sgaXMgbm90IGZpbmlzaGVkISc7CiRsYW5nWydtYWlsc19zZW50J10gPSAnQWxsIG1haWxzIHN1Y2Nlc2Z1bGx5IHNlbnQnOwokbGFuZ1snb2snXSA9ICdPayc7CiRsYW5nWydiYWNrJ10gPSAnQmFjayc7CiRsYW5nWydvZiddID0gJ29mJzsKJGxhbmdbJ3dhaXQnXSA9ICdQbGVhc2Ugd2FpdC4uLic7CiRsYW5nWydzZW5kaW5nJ10gPSAnU2VuZGluZyBtYWlsJzsKJGxhbmdbJ2RlbGV0ZXNlbGVjdGVkJ10gPSAnRGVsZXRlIHNlbGVjdGVkIG1haWxzJzsKJGxhbmdbJ2RlbGV0ZXNlbGVjdGVkbG9nJ10gPSAnRGVsZXRlIHNlbGVjdGVkIGxvZ3MnOwoKJGxhbmdbJ3RvdGFsbG9ncyddID0gJ1RvdGFsIGVudHJ5cyc7CiRsYW5nWydlcnJvcmxvZ3MnXSA9ICdFcnJvcnMnOwoKJGxhbmdbJ2xvZ19kZWxldGVkJ10gPSAnTG9nIGVudHJ5KHMpIGRlbGV0ZWQuJzsKJGxhbmdbJ2F1dG9jbGVhcl9sb2dzJ10gPSAnQXV0b21hdGljYWxseSBkZWxldGUgbG9ncyBvZiBtYWlscyB0aGF0IHdpbGwgYmUgZGVsZXRlZCc7CiRsYW5nWyd2aWV3X2xvZ3MnXSA9ICdWaWV3IGxvZ3MnOwokbGFuZ1sndmlldyddID0gJ0RldGFpbHMnOwokbGFuZ1snbm9sb2dzJ10gPSAnTm8gbG9ncyBmb3VuZCc7CiRsYW5nWydwcm9jZXNzZWR1c2VycyddID0gJ1Byb2Nlc3NlZCB1c2Vycyc7CiRsYW5nWyd0b3RhbHVzZXJzJ10gPSAnVG90YWwgdXNlcnMnOwokbGFuZ1sncmVtYWluaW5nJ10gPSAnUmVtYWluaW5nIHVzZXJzJzsKJGxhbmdbJ3NlbnRieSddID0gJ1NlbnQgYnknOwokbGFuZ1sncmVzZW5kX2FsbCddID0gJ1Jlc2VuZCB0byBhbGwgdXNlcnMnOwokbGFuZ1snY29udGludWVfYXJjaGl2ZSddID0gJ1Jlc2VuZCB0byBuZXcgdXNlcnMgb25seSc7CiRsYW5nWydjb250aW51ZV90bXAnXSA9ICdDb250aW51ZSBmcm9tIGxhc3QgcHJvY2Vzc2VkIHVzZXInOwokbGFuZ1sncmVzZW5kX2Vycm9ycyddID0gJ1Jlc2VuZCBlcnJvcnMgb25seSc7CiRsYW5nWydyZXNlbmRfdXNlciddID0gJ1Jlc2VuZCB0byB0aGlzIHVzZXInOwokbGFuZ1sncmVzZW5kX3NlbGVjdGVkJ10gPSAnUmVzZW5kIHNlbGVjdGVkJzsKJGxhbmdbJ3JhbmRvbV9kZWxheSddID0gJ1VzZSByYW5kb20gZGVsYXknOwoKLy8gY29uZmlybSBtZXNzYWdlcwokbGFuZ1snZ3JvdXBzX2NoYW5nZWQnXSA9ICdZb3UgaGF2ZSBjaGFuZ2VkIHRoZSByZWNpcGllbnQgZ3JvdXBzLlxcbkRvIHlvdSByZWFsbHkgeW91IHdhbnQgdG8gY29udGludWU/JzsKJGxhbmdbJ2RlbGV0ZWNvbmZpcm0nXSA9ICdEbyB5b3UgcmVhbHkgd2FudCB0byBkZWxldGUgdGhlIHNlbGVjdGVkIG1haWxzPyc7CiRsYW5nWydkZWxldGVhcmNoaXZlY29uZmlybSddID0gJ0RvIHlvdSByZWFseSB3YW50IHRvIGRlbGV0ZSB0aGlzIG1haWw/JzsKJGxhbmdbJ2RlbGV0ZXRlbXBjb25maXJtJ10gPSAnRG8geW91IHJlYWx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgdGVtcG9yYXJ5IG1haWw/JzsKJGxhbmdbJ2RlbGV0ZWxvZ2NvbmZpcm0nXSA9ICdEbyB5b3UgcmVhbHkgd2FudCB0byBkZWxldGUgdGhlIHNlbGVjdGVkIGxvZ3M/JzsKCiRsYW5nWydzdWJtaXRjb25maXJtJ10gPSAiRG8geW91IHJlYWxseSB3YW50IHRvIHNlbmQgdGhpcyBtYWlsIHRvIGFsbCB1c2VycyBvZiB0aGUgc2VsZWN0ZWQgZ3JvdXAocyk/IjsKJGxhbmdbJ3Jlc2VuZHNlbGVjdGVkY29uZmlybSddID0gJ0RvIHlvdSByZWFsbHkgd2FudCB0byBzZW5kIHRoaXMgbWFpbCBBR0FJTiB0byB0aGUgc2VsZWN0ZWQgdXNlcnM/JzsKJGxhbmdbJ3Jlc2VuZGFsbHRtcGNvbmZpcm0nXSA9ICJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gc2VuZCB0aGlzIHRlbXBvcmFyeSBtYWlsIEFHQUlOIHRvIGFsbCB1c2VycyBvZiB0aGUgc2VsZWN0ZWQgZ3JvdXAocyk/IjsKJGxhbmdbJ3Jlc2VuZG5ld3RtcGNvbmZpcm0nXSA9ICJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gc2VuZCB0aGlzIHRlbXBvcmFyeSBtYWlsIHRvIGFsbCB1c2VycyBvZiB0aGUgc2VsZWN0ZWQgZ3JvdXAocykgY29uaW51ZWluZyBmcm9tIHRoZSBsYXN0IHByb2Nlc3NlZCB1c2VyPyI7CiRsYW5nWydyZXNlbmRlcnJvcnRtcGNvbmZpcm0nXSA9ICJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gc2VuZCB0aGlzIHRlbXBvcmFyeSBtYWlsIHRvIGFsbCB1c2VycyBvZiB0aGUgc2VsZWN0ZWQgZ3JvdXAocykgd2hvIHdoZXJlIGFscmVhZHkgcHJvY2Vzc2VkIGJ1dCBkaWQgbm90IGhhdmUgYW4gZW1haWwgYWRkcmVzcyBsYXN0IHRpbWU/IjsKJGxhbmdbJ3Jlc2VuZGFsbGFyY2hpdmVjb25maXJtJ10gPSAiRG8geW91IHJlYWxseSB3YW50IHRvIHNlbmQgdGhpcyBtYWlsIEFHQUlOIHRvIGFsbCB1c2VycyBvZiB0aGUgc2VsZWN0ZWQgZ3JvdXAocyk/IjsKJGxhbmdbJ3Jlc2VuZG5ld2FyY2hpdmVjb25maXJtJ10gPSAiRG8geW91IHJlYWxseSB3YW50IHRvIHNlbmQgdGhpcyBtYWlsIHRvIGFsbCBORVcgdXNlcnMgb2YgdGhlIHNlbGVjdGVkIGdyb3VwKHMpP1xcbihjb25pbnVlaW5nIGZyb20gdGhlIGxhc3QgcHJvY2Vzc2VkIHVzZXIpIjsKJGxhbmdbJ3Jlc2VuZGVycm9yYXJjaGl2ZWNvbmZpcm0nXSA9ICJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gc2VuZCB0aGlzIG1haWwgdG8gYWxsIHVzZXJzIG9mIHRoZSBzZWxlY3RlZCBncm91cChzKSB3aG8gd2hlcmUgYWxyZWFkeSBwcm9jZXNzZWQgYnV0IGRpZCBub3QgaGF2ZSBhbiBlbWFpbCBhZGRyZXNzIGxhc3QgdGltZT8iOwokbGFuZ1sncmVzZW5kdXNlcmNvbmZpcm1fMSddID0gJ0RvIHlvdSByZWFsbHkgd2FudCB0byBzZW5kIHRoaXMgbWFpbCBBR0FJTiB0byB0aGlzIHVzZXI/XFxuVXNlcm5hbWUgLyBFbWFpbDogJXMnOwokbGFuZ1sncmVzZW5kdXNlcmNvbmZpcm1fMiddID0gJ0RvIHlvdSByZWFsbHkgd2FudCB0byBzZW5kIHRoaXMgbWFpbCBBR0FJTiB0byB0aGlzIHVzZXI/XFxuVXNlcm5hbWU6ICVzXFxuRW1haWw6ICVzJzsKCiRsYW5nWydzdWJtaXRjb25maXJtX2Z1bGwnXSA9ICJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gc2VuZCB0aGlzIG1haWwgdG8gYWxsIHVzZXJzIG9mIHRoZSBzZWxlY3RlZCBncm91cChzKT9cXG5cXG5Hcm91cHM6XFxuJXNcXG5cXG5Vc2VyczpcXG4lcyI7CiRsYW5nWydyZXNlbmRhbGx0bXBjb25maXJtX2Z1bGwnXSA9ICJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gc2VuZCB0aGlzIHRlbXBvcmFyeSBtYWlsIEFHQUlOIHRvIGFsbCB1c2VycyBvZiB0aGUgc2VsZWN0ZWQgZ3JvdXAocyk/IFxcblxcbkdyb3VwczpcXG4lc1xcblxcblVzZXJzOlxcbiVzIjsKJGxhbmdbJ3Jlc2VuZG5ld3RtcGNvbmZpcm1fZnVsbCddID0gIkRvIHlvdSByZWFsbHkgd2FudCB0byBzZW5kIHRoaXMgdGVtcG9yYXJ5IG1haWwgdG8gYWxsIHVzZXJzIG9mIHRoZSBzZWxlY3RlZCBncm91cChzKSBjb25pbnVlaW5nIGZyb20gdGhlIGxhc3QgcHJvY2Vzc2VkIHVzZXI/XFxuXFxuR3JvdXBzOlxcbiVzXFxuXFxuVG90YWwgdXNlcnM6XFxuJXNcXG5cXG5Qcm9jZXNzZWQgdXNlcnM6ICVzXFxuXFxuUmVjaXBpZW50czogJXNcXG5cXG5SZW1haW5pbmcgdXNlcnM6XFxuJXMiOwokbGFuZ1sncmVzZW5kZXJyb3J0bXBjb25maXJtX2Z1bGwnXSA9ICJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gc2VuZCB0aGlzIHRlbXBvcmFyeSBtYWlsIHRvIGFsbCB1c2VycyBvZiB0aGUgc2VsZWN0ZWQgZ3JvdXAocykgd2hvIHdoZXJlIGFscmVhZHkgcHJvY2Vzc2VkIGJ1dCBkaWQgbm90IGhhdmUgYW4gZW1haWwgYWRkcmVzcyBsYXN0IHRpbWU/XFxuXFxuR3JvdXBzOlxcbiVzXFxuXFxuVG90YWwgdXNlcnM6XFxuJXNcXG5cXG5Qcm9jZXNzZWQgdXNlcnM6XFxuJXNcXG5cXG5SZWNpcGllbnRzOlxcbiVzXFxuXFxuUmVtYWluaW5nIHVzZXJzOlxcbiVzIjsKJGxhbmdbJ3Jlc2VuZGFsbGFyY2hpdmVjb25maXJtX2Z1bGwnXSA9ICJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gc2VuZCB0aGlzIG1haWwgQUdBSU4gdG8gYWxsIHVzZXJzIG9mIHRoZSBzZWxlY3RlZCBncm91cChzKT9cXG5cXG5Hcm91cHM6XFxuJXNcXG5cXG5Vc2VyczpcXG4lcyI7CiRsYW5nWydyZXNlbmRuZXdhcmNoaXZlY29uZmlybV9mdWxsJ10gPSAiRG8geW91IHJlYWxseSB3YW50IHRvIHNlbmQgdGhpcyBtYWlsIHRvIGFsbCBORVcgdXNlcnMgb2YgdGhlIHNlbGVjdGVkIGdyb3VwKHMpP1xcbihjb25pbnVlaW5nIGZyb20gdGhlIGxhc3QgcHJvY2Vzc2VkIHVzZXIpXFxuXFxuR3JvdXBzOlxcbiVzXFxuXFxuVG90YWwgdXNlcnM6XFxuJXNcXG5cXG5Qcm9jZXNzZWQgdXNlcnM6XFxuJXNcXG5cXG5SZWNpcGllbnRzOlxcbiVzXFxuXFxuUmVtYWluaW5nIHVzZXJzOlxcbiVzIjsKJGxhbmdbJ3Jlc2VuZGVycm9yYXJjaGl2ZWNvbmZpcm1fZnVsbCddID0gIkRvIHlvdSByZWFsbHkgd2FudCB0byBzZW5kIHRoaXMgbWFpbCB0byBhbGwgdXNlcnMgb2YgdGhlIHNlbGVjdGVkIGdyb3VwKHMpIHdobyB3aGVyZSBhbHJlYWR5IHByb2Nlc3NlZCBidXQgZGlkIGhhdmUgbm8gb3IgYW4gaW52YWxpZCBlbWFpbCBhZGRyZXNzIGxhc3QgdGltZT9cXG5cXG5Hcm91cHM6XFxuJXNcXG5cXG5Ub3RhbCB1c2VyczpcXG4lc1xcblxcblByb2Nlc3NlZCB1c2VyczpcXG4lc1xcblxcblJlY2lwaWVudHM6XFxuJXNcXG5cXG5SZW1haW5pbmcgdXNlcnM6XFxuJXMiOwoKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zyb250ZW5kVXNlcnMgTWFpbGVyJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTGUgbW9kdWxlIEZyb250ZW5kVXNlcnMgTWFpbGVyIGVzdCBpbnN0YWxsJmVhY3V0ZTsuPGJyIC8+QXNzdXJleiB2b3VzIGRlIGQmZWFjdXRlO2ZpbmlyIGxlcyBwZXJtaXNzaW9ucyAmcXVvdDtVc2UgRkVVTWFpbGVycyZxdW90OyBwb3VyIGxlcyB1dGlsaXNhdGV1cnMgZHUgbW9kdWxlICEnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0xlIG1vZHVsZSBGcm9udGVuZFVzZXJzIE1haWxlciBhICZlYWN1dGU7dCZlYWN1dGU7IGQmZWFjdXRlO3NpbnN0YWxsJmVhY3V0ZTsuJzsKJGxhbmdbJ3JlYWxseV91bmluc3RhbGwnXSA9ICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gdW5pbnN0YWxsIEZyb250ZW5kVXNlcnMgTWFpbGVyIE1vZHVsZT8nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgZCZlYWN1dGU7c2luc3RhbGwmZWFjdXRlOy4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSBtaXMgJmFncmF2ZTsgbml2ZWF1ICZhZ3JhdmU7IGxhIHZlcnNpb24gJXMuJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnQ2UgbW9kdWxlIGZvdXJuaXQgdW5lIGZvbmN0aW9uIGJhc2lxdWUgZCYjMDM5O2Vudm9pIGRlIGNvdXJyaWVscyAmYWdyYXZlOyBkaWZmJmVhY3V0ZTtyZW50cyBncm91cGVzIGQmIzAzOTt1dGlsaXNhdGV1cnMgZHUgbW9kdWxlIEZyb250RW5kVXNlcnMgKEZFVSkuJzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzxiciAvPg0KPHVsPg0KCTxsaT4NCgkJPHA+PHN0cm9uZz5WZXJzaW9uIDAuOS4zIChKdWluIDIwMTApOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPi0gcHJlbWkmZWdyYXZlO3JlIHZlcnNpb24gc3RhYmxlPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCAmcXVvdDt3ZWIgYnVnJnF1b3Q7IHRvIHRyYWNrIGJhY2sgaWYgbWFpbCBoYXMgYmVlbiByZWFkIChvbmx5IHdvcmtzIGlmIG1haWwgaXMgc2VudCBhcyBodG1sKTwvcD48L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPg0KCQk8cD48c3Ryb25nPlZlcnNpb24gMC45LjIuQkVUQSAoTWF5IDIwMDkpOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPnNldmVyYWwgbWlub3IgYnVnZml4ZXM8L3A+PC9saT4NCgkJCTxsaT48cD5tb3ZlZCBhbGwgZGIgcXVlcnJpZXMgaW50byBGRVVNYWlsZXIubW9kdWxlLnBocCBhcyBzZXBhcmF0ZSBmdW5jdGlvbnM8L3A+PC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT4NCgkJPHA+PHN0cm9uZz5WZXJzaW9uIDAuOS4xIChBcHJpbCAyMDA5KTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD5zZXZlcmFsIG1pbm9yIGJ1Z2ZpeGVzPC9wPjwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8bGk+DQoJCTxwPjxzdHJvbmc+VmVyc2lvbiAwLjkgKE1hcmNoIDIwMDkpOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPmltcHJvdmVkIGNvbXBhdGlibGl0eSBmb3IgQ01TbXMgMS41Lng8L3A+PC9saT4NCgkJCTxsaT48cD5hZGRlZCBvd24gbW9kdWxlIGljb248L3A+PC9saT4NCgkJCTxsaT48cD5lbmxhcmdlZCBtb2R1bGUgaWNvbnM8L3A+PC9saT4NCgkJCTxsaT4NCgkJCQk8cD4NCgkJCQkJQWRkZWQgZnVudGlvbiB0byBzYXZlIGxvZyBkYXRhIG9mIHNlbnQgbWFpbHMuPGJyIC8+DQoJCQkJCVdpdGggdGhhdCBvcHRpb24geW91IGNhbiByZXNlbmQgbWFpbHMgdG8gdXNlcnMgdGhhdCBkaWQgbm90IGhhdmUgZW50ZXJlZCBhIHZhbGlkIGVtYWlsIGFkZHJlc3Mgd2hlbiBzZW5kaW5nIGEgbWFpbCBsYXN0IHRpbWUuDQoJCQkJPC9wPg0KCQkJPC9saT4NCgkJCTxsaT48cD5TYXZlZCBtZXNzYWdlcyBkaXNwbGF5cyBhbW91bnQgb2YgcmVjaXBpZW50cywgcHJvY2Vzc2VkIHVzZXJzIGFuZCB0b3RhbCB1c2VycyBvZiB0aGUgc2VsZWN0ZWQgZ3JvdXBzPC9wPjwvbGk+DQoJCQk8bGk+PHA+QWRkZWQgY29uZmlybSBtZXNzYWdlcyBiZWZvcmUgYWN0dWFsbHkgc2VuZGluZyBhIG1haWwuPGJyIC8+KGNvbmZpcm0gbWVzc2FnZSBzaG93cyBhbW91bnQgb2YgdG90YWwgdXNlcnMsIHByb2Nlc3NlZCB1c2VycywgcmVjaXBpZW50cyBhbmQgcmVtYWluaW5nIHVzZXJzKTwvcD48L2xpPg0KCQkJPGxpPjxwPlJlbW92ZWQgZnVuY3Rpb24gdG8gcmVzZW5kIHRlbXBvcmFyeSBtYWlscyB0byBhbGwgdXNlcnMgb2Ygc2VsZWN0ZWQgZ3JvdXBzPC9wPjwvbGk+DQoJCQk8bGk+PHA+UmVtb3ZlZCBmdW5jdGlvbiB0byBlZGl0IHRlbXBvcmFyeSBtYWlsczxiciAvPihqb2JzIGNhbm5vdCBiZSBjaGFuZ2VkIGFueW1vcmUgYnV0IGp1c3QgY29udGludWVkKTwvcD48L2xpPg0KCQkJPGxpPjxwPlNldmVyYWwgdHJpdmlhbCBidWdmaXhlczwvcD48L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPjxwPjxzdHJvbmc+VmVyc2lvbiAwLjggKEp1bHkgMjAwOCwgaW5pdGlhbCByZWxlYXNlKTwvc3Ryb25nPjxwPjwvbGk+DQo8dWw+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+UXVlIGZhaXQgY2UgbW9kdWxlID88L2gzPg0KPHA+QyYjMDM5O2VzdCB1biAmcXVvdDttb2R1bGUgZGUgY291cnJpZWwmcXVvdDsgdHImZWdyYXZlO3Mgc2ltcGxlLjxiciAvPg0KSWwgcGVybWV0IGF1eCB1dGlsaXNhdGV1cnMgZGUgbGEgcGFydGllIGFkbWluaXN0cmF0aW9uIGQmIzAzOTtlbnZveWVyIGRlcyBjb3VycmllbHMgYXV4IGRpZmYmZWFjdXRlO3JlbnRzIGdyb3VwZXMgZHUgbW9kdWxlIEZyb250RW5kVXNlcnMuPGJyIC8+DQpWb3VzIHBvdXZleiB1dGlsaXNlciBsYSBzeW50YXhlIHNtYXJ0eSBkYW5zIHZvcyBtZXNzYWdlIHBvdXIgaW5zJmVhY3V0ZTtyZXIgZGVzIHByb3ByaSZlYWN1dGU7dCZlYWN1dGU7cyB1dGlsaXNhdGV1cnMsIGRlcyBsaWVucyBldGMuLi4gZGFucyBsZSBjb250ZW51IGRlIHZvcyBtZXNzYWdlcy48YnIgLz4NCkxlcyBtZXNzYWdlcyBlbnZveSZlYWN1dGU7cyBwZXV2ZW50ICZlY2lyYzt0cmUgc3RvY2smZWFjdXRlO3MgZGFucyBsYSBiYXNlIGRlIGRvbm4mZWFjdXRlO2VzLjxiciAvPg0KPGJyIC8+DQpTZW5kaW5nIG1haWxzIGFyZSBzdG9yZWQgdGVtcG9yYXJ5IGluIHRoZSBkYXRhYmFzZSBhbmQgZHVyaW5nIHNlbmRpbmcgcHJvY2VzcyA8YnIgLz4NCmNvbnRpbm91c2x5IHVwZGF0ZWQgd2l0aCB0aGUgY3VycmVudGx5IHByb2Nlc3NlZCB1c2VycyBpZC4gPGJyIC8+DQpTbyBpZiB0aGVyZSBpcyBhIHNlcnZlciB0aW1lb3V0IHRoZSBtb2R1bGUgY2FuIHJlc2VuZCB0aGUgZW1haWxzIGNvbnRpbnVlaW5nIDxiciAvPg0KZnJvbSB0aGUgbGFzdCB1c2VyIHRoZSBtYWlsIHdhcyBzZW50IHRvLjxiciAvPjxiciAvPg0KVG8gcHJldmVudCBhIHNlcnZlciB0aW1lb3V0IG1haWxzIHdpbGwgYmUgc2VudCBpbiAmcXVvdDtqb2JzJnF1b3Q7IHVzaW5nIGFuIEFKQVggcmVxdWVzdC48YnIgLz4NCjxoMz5Db21tZW50ICZjY2VkaWw7YSBtYXJjaGUgPzwvaDM+DQo8cD5DZSBtb2R1bGUgbmUgZm9uY3Rpb25uZSBwYXMgZGVwdWlzIGxlIGZyb250ZW5kLjwvcD4NCjxwPkFwciZlZ3JhdmU7cyBsJiMwMzk7aW5zdGFsbGF0aW9uLCBhbGxleiBkYW5zICZxdW90O1V0aWxpc2F0ZXVycyAmYW1wOyBHcm91cGVzLT5Gcm9udGVuZFVzZXJzIE1haWxlciBNb2R1bGUmcXVvdDsgZGFucyBsZSBiYWNrZW5kLjxiciAvPg0KDQpQb3VyIGVudm95ZXIgdW4gY291cnJpZWwsIGNsaXF1ZXogc3VyICZxdW90O2Vudm95ZXIgdW4gbm91dmVhdSBjb3VycmllbCZxdW90Oy48YnIgLz4NClMmZWFjdXRlO2xlY3Rpb25uZXogbGVzIHV0aWxpc2F0ZXVycyBvdSBsZXMgZ3JvdXBlcyBkdSBGRVUgYXV4cXVlbHMgdm91cyBzb3VoYWl0ZXogZW52b3llciBsZSBjb3VycmllbC48YnIgLz4NCg0KRW50cmV6IGxlIHN1amV0IChvcHRpb25uZWwpLjxiciAvPg0KRW50cmV6IGxlIG1lc3NhZ2UuPGJyIC8+DQpDbGlxdWV6IHN1ciBsZSBib3V0b24gJnF1b3Q7c291bWV0dHJlJnF1b3Q7PGJyIC8+PGJyIC8+DQpMZSBtb2R1bGUgZW52b2kgJmFncmF2ZTsgcHImZWFjdXRlO3NlbnQgdW4gY291cnJpZWwgJmFncmF2ZTsgdG91cyBsZXMgdXRpbGlzYXRldXJzIGRlcyBncm91cGVzIHMmZWFjdXRlO2xlY3Rpb25uJmVhY3V0ZTtzLCBlbiB1dGlsaXNhbnQgPGJyIC8+bGUgbW9kdWxlIENNUyBNYWlsZXI8L3A+DQoNCjxwPjxzdHJvbmc+U3ludGF4ZSBTbWFydHk8L3N0cm9uZz48YnIgLz4NCllvdSBjYW4gdXNlIGdlbmVyYWwgc21hcnR5IHN0dWZmIGluIHRoZSBlbWFpbC48YnIgLz4NCkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyBhcmUgOjwvcD4NCjx1bD4NCjxsaT48c3Ryb25nPnskdXNlcm5hbWV9IDogPC9zdHJvbmc+bm9tIGRlIGwmIzAzOTt1dGlsaXNhdGV1ciAmYWdyYXZlOyBxdWkgZXN0IGVudm95JmVhY3V0ZTsgbGUgY291cnJpZWwuPC9saT4NCjxsaT48c3Ryb25nPnskdXNlcnByb3BzfTogPC9zdHJvbmc+SXMgYW4gYXJyYXkgY29udGFpbmluZyBhbGwgdXNlcnByb3BlcnRpZXMgb2YgdGhlIHVzZXIgdGhlIG1haWwgaXMgc2VudCB0by48L2xpPg0KPC91bD4NCjxiciAvPg0KVXNpbmcgYSB7Zm9yZWFjaH0tbG9vcCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGFjY2VzcyBhbGwgdXNlcnByb3BlcnRpZXMuPGJyIC8+PGJyIC8+DQpFeGVtcGxlIDo8YnIgLz4NCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo8YnIgLz48YnIgLz4NCjxwcmU+DQpCb25qb3VyIHskdXNlcm5hbWV9LA0KDQpDZXMgZG9ubiZlYWN1dGU7ZXMgc29udC1lbGxlcyB0b3Vqb3VycyAmYWdyYXZlOyBqb3VyID8NCg0Ke2ZvcmVhY2ggZnJvbT0kdXNlcnByb3BzIGl0ZW09cHJvcH0NCnskcHJvcC5wcm9tcHR9IDogeyRwcm9wLmRhdGF9PGJyIC8+DQp7L2ZvcmVhY2h9DQoNClNpIGNlIG4mIzAzOTtlc3QgcGFzIGxlIGNhcywgdmV1aWxsZXogbGVzIG1ldHRyZSAmYWdyYXZlOyBqb3VyLg0KDQpWb3RyZSBhZG1pbmlzdHJhdGV1ci4NCjwvcHJlPg0KPGJyIC8+DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPGJyIC8+DQo8YnIgLz4NCnskcHJvcC5kYXRhfSBjb250YWlucyB0aGUgZGF0YSBvZiB0aGF0IGZpZWxkLjxiciAvPg0KeyRwcm9wLnByb21wdH0gY29udGFpbnMgdGhlIHByb21wdCBvZiB0aGF0IGZpZWxkLjxiciAvPg0KPGJyIC8+PGJyIC8+DQpUbyBhY2Nlc3MgdXNlcnByb3BlcnRpZXMgZGlyZWN0bHkgdXNlIGRvdCBzeW50YXg6PGJyIC8+DQo8YnIgLz4NCkV4YW1wbGU6PGJyIC8+DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPGJyIC8+PGJyIC8+DQo8cHJlPg0KSGVsbG8geyR1c2VycHJvcHMuZmlyc3RfbmFtZS5kYXRhfSwNCg0KaSYjMDM5O3ZlIGp1c3Qgc3BhbW1lZCB5b3VyIGluYm94IGFnYWluIDtQDQo8L3ByZT4NCjxiciAvPg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCjxiciAvPjxiciAvPg0KeyR1c2VycHJvcHMuRklFTEROQU1FLmRhdGF9IGNvbnRhaW5zIHRoZSBkYXRhIG9mIHRoYXQgZmllbGQuPGJyIC8+DQp7JHVzZXJwcm9wcy5GSUVMRE5BTUUucHJvbXB0fSBjb250YWlucyB0aGUgcHJvbXB0IG9mIHRoYXQgZmllbGQuPGJyIC8+DQo8L3A+DQo8aDM+U2V0dGluZ3M8L2gzPg0KPHA+SW4gdGhlIGFkbWlucGFuZWwgeW91IGNhbiBzZXR1cCB0aGUgZm9sbG93aW5nIG9wdGlvbnM6PC9wPg0KPHVsPg0KCTxsaT4NCgkJPHN0cm9uZz5BdXRvc2F2ZTo8L3N0cm9uZz4NCgkJPHVsPg0KCQkJPGxpPg0KCQkJCVVzZSB0aGlzIG9wdGlvbiB0byBzYXZlIHNlbnQgbWVzc2FnZXMgaW4geW91ciBtZXNzYWdlIGFyY2hpdmUuDQoJCQk8L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGJyID4NCgk8bGk+PHN0cm9uZz5TYXZlIGxvZ3M6PC9zdHJvbmc+DQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlVc2UgdGhpcyBvcHRpb24gdG8gc2F2ZSBsb2cgZGF0YSBvZiBlYWNoIHNlbnQgbWFpbC48YnIgLz48YnIgLz4NCgkJCQk8ZW0+Tm90aWNlOiB0aGUgYW1vdW50IG9mIGxvZyBkYXRhIGRlcGVuZHMgb24gdGhlIGFtb3VudCBvZiB5b3VyIGZyb250ZW5kIHVzZXJzLjxiciAvPg0KCQkJCUlmIHlvdSByZWFsaXplIHByb2JsZW1zIHdpdGggbGFyZ2UgbnVtYmVyIG9mIHVzZXJzLCBkaXNhYmxlIHRoaXMgb3B0aW9uLjxiciAvPiANCgkJCQlEaXNhYmxpbmcgdGhpcyBvcHRpb24gd2lsbCBhbHNvIGRpc2FibGUgdGhlIGFiaWxpdHkgdG8gcmVzZW5kIGEgc2F2ZWQgbWFpbCB0byB1c2VycyA8YnIgLz4NCgkJCQl0aGF0IGRpZCBub3QgaGF2ZSBhbiBlbWFpbCBhZGRyZXNzIHdoZW4gc2VuZGluZyB0aGlzIG1haWwgbGFzdCB0aW1lLjwvZW0+DQoJCQkJPGJyIC8+PGJyIC8+DQoJCQkJRGVmYXVsdCBpcyBvbi4NCgkJCTwvbGk+DQoJCQk8YnIgLz4NCgkJCTxsaT48c3Ryb25nPlNhdmUgZXJyb3Jsb2dzIG9ubHk6PC9zdHJvbmc+DQoJCQkJPHVsPg0KCQkJCQk8bGk+DQoJCQkJCQlUaGlzIHdpbGwgb25seSBzYXZlIGxvZ3Mgd2hlcmUgYSBtYWlsIGNvdWxkIG5vdCBiZSBzZW50LjxiciAvPg0KCQkJCQkJVGhpcyBtYXkgaGFwcGVuIHdoZW4gYSB1c2VyIGRvZXMgbm90IGhhdmUgZW50ZXJlZCBhbiBlbWFpbCBhZGRyZXNzIGluIGhpcyBwcm9wZXJ0aWVzLjxiciAvPg0KCQkJCQkJPGJyIC8+DQoJCQkJCQlEZWZhdWx0IGlzIG9uLg0KCQkJCQk8L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGJyIC8+DQoJPGxpPjxzdHJvbmc+QXV0b21hdGljYWxseSBkZWxldGUgb2xkIG1haWxzOjwvc3Ryb25nPg0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJVGhpcyB3aWxsIGF1dG9tYXRpY2FsbHkgZGVsZXRlIG9sZCBtYWlscy4NCgkJCQk8YnIgLz48YnIgLz4NCgkJCQlEZWZhdWx0IGlzIG9uLjxiciAvPg0KCQkJCTxiciAvPg0KCQkJCVNlbGVjdCB0aGUgbGlmZXRpbWUgb2YgYXJjaGl2ZSBvciB0ZW1wb3JhcnkgbWFpbHMgd2l0aCB0aGUgZHJvcGRvd24gaW5wdXQgZmllbGRzLjxiciAvPjxiciAvPg0KCQkJCURlZmF1bHQgaXMgMyBtb250aHMuDQoJCQk8L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGJyIC8+DQoJPGxpPjxzdHJvbmc+RGVmYXVsdCBncm91cChzKTo8L3N0cm9uZz4NCgkJPHVsPg0KCQkJPGxpPg0KCQkJCVRoaXMgd2lsbCBiZSB0aGUgcHJlc2VsZWN0ZWQgZ3JvdXAocykgd2hlbiBzZW5kaW5nIGEgbmV3IG1haWwuPGJyIC8+DQoJCQkJPGJyIC8+DQoJCQkJRGVmYXVsdCBpcyBub25lLg0KCQkJPC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxiciAvPg0KCTxsaT48c3Ryb25nPlNlbmQgbWFpbCBhcyBIVE1MIHRleHQ6PC9zdHJvbmc+DQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlJZiB5b3Ugc2VsZWN0IHRoaXMgb3B0aW9uIHlvdSB3aWxsIGJlIGFibGUgdG8gdXNlIHlvdXIgaW5zdGFsbGVkIFdZU0lXWUcgZWRpdG9yIHRvIHdyaXRlIHRoZSBtYWlsLjxiciAvPg0KCQkJCTxiciAvPg0KCQkJCURlZmF1bHQgaXMgb2ZmLg0KCQkJPC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxiciAvPg0KCTxsaT48c3Ryb25nPk1heC4gbnVtYmVyIG9mIGVtYWlscyBwZXIgam9iOjwvc3Ryb25nPg0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJVG8gcHJldmVudCBhIHNlcnZlciB0aW1lb3V0IG1haWxzIHdpbGwgYmUgc2VudCBpbiAmcXVvdDtqb2JzJnF1b3Q7IHVzaW5nIGFuIEFKQVggcmVxdWVzdC48YnIgLz4NCgkJCQlFbnRlciB0aGUgYW1vdW50IG9mIHVzZXJzIHRoYXQgd2lsbCBiZSBwcm9jZXNzZWQgcGVyIGpvYi48YnIgLz4NCgkJCQk8YnIgLz4NCgkJCQlEZWZhdWx0IGlzIDUwDQoJCQk8L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGJyIC8+DQoJPGxpPjxzdHJvbmc+QUpBWCByZXF1ZXN0IGRlbGF5Ojwvc3Ryb25nPg0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJU2luY2UgaWYgeW91IGhhdmUgYSBsYXJnZSBhbW91bnQgb2YgZnJvbnRlbmQgdXNlcnMgYW5kIGEgc21hbGwgYW1vdW50IG9mIHVzZXJzIHBlciBqb2I8YnIgLz4NCgkJCQl5b3VyIGJyb3dzZXIgd2lsbCBzZW50IGxvdHMgb2YgaWRlbnRpY2FsIHJlcXVlc3RzIHRvIHRoZSBzZXJ2ZXIgaW4gYSB2ZXJ5IHNob3J0IHRpbWUuPGJyIC8+DQoJCQkJU29tZSBzZWN1cml0eSBzb2Z0d2FyZSBwcm9iYWJseSB3aWxsIGludGVycHJldCB0aGlzIGFzIGFuIGludHJ1c2lvbg0KCQkJCWFuZCBicmVhayB5b3VyIHJlcXVlc3RzIG9yIGV2ZW4gYmxvY2sgeW91ciBJUCBhZGRyZXNzLjxiciAvPg0KCQkJCTxiciAvPg0KCQkJCVRvIGF2b2lkIHRoaXMgeW91IGNhbiBlbnRlciBhIGRlbGF5IChpbiBtaWxpc2Vjb25kcykgdGhlIGphdmFzY3JpcHQgd2lsbCB3YWl0IHVudGlsIHNlbmRpbmcgYSBuZXcgcmVxdWVzdC48YnIgLz4NCgkJCQk8YnIgLz4NCgkJCQlEZWZhdWx0IGlzIG5vbmUuDQoJCQk8L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQo8L3VsPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KCTxsaT5UaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXMgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9mZXVtYWlsZXIvIj5odHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2ZldW1haWxlci88L2E+PC9saT4NCgk8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8L3VsPg0KPGJyIC8+DQo8cD5QbGVhc2UgcmVwb3J0IGFueSBraW5kIG9mIGVycm9ycyBhbmQgZmVlbCBmcmVlIHRvIHJlcG9ydCBhbnkgaWRlYXMgdG8gaW1wcm92ZSB0aGlzIG1vZHVsZS48L3A+DQo8aDM+S25vd24gaXNzdWVzPC9oMz4NCjxwPklmIHVzZXJuYW1lIGlzIHVzZWQgYXMgZW1haWxhZGRyZXNzIG9ubHkgdGhpcyBhZGRyZXNzIHdpbGwgYmUgdXNlZC48L3A+DQo8cD5JZiB1c2VybmFtZSBpcyA8c3Ryb25nPm5vdDwvc3Ryb25nPiB1c2VkIGFzIGVtYWlsYWRkcmVzcyB0aGUgRmV1TWFpbGVyIE1vZHVsZSBvbmx5IHNlYXJjaGVzIGZvciBhIHVzZXIgcHJvcGVydHkgb2YgPHN0cm9uZz50eXBlICZxdW90O2VtYWlsJnF1b3Q7PC9zdHJvbmc+LjwvcD4NCjxwPklmIHRoZSB1c2VyIGhhcyBlbnRlcmVkIG1vcmUgdGhhbiBvbmUgZW1haWxhZGRyZXNzIG9ubHkgdGhlIGZpcnN0IGZvdW5kIGVtYWlsYWRkcmVzcyB3aWxsIGJlIHVzZWQuPC9wPg0KPHA+DQoJV2hlbiB1c2luZyBwaWN0dXJlcyBvciBhbnkgb3RoZXIga2luZCBvZiBtZWRpYSBpdCB3aWxsIG5vdCBiZSBhdHRhY2hlZCB0byB0aGUgbWFpbCBidXQganVzdCBpbnNlcnRlZCB3aXRoIGEgbGluayB0byB0aGF0IG1lZGlhLjxiciAvPg0KCVRoaXMgbGluayB3aWxsIGJlIGluc2VydGVkIGFzIGEgcmVsYXRpdmUgb25lIChlLmcuIDxpbWcgc3JjPSZxdW90Oy91cGxvYWRzL2ltYWdlcy9hX3RpbnlfaW1hZ2UuanBnJnF1b3Q7IC8+KS48YnIgLz4NCglGb3IgYSBwcm9wZXIgbGluayB5b3UgbmVlZCB0byBhZGFwdCBpdCB0byBhbiBhYnNvbHV0ZSBvbmUgKGUuZy4gPGltZyBzcmM9JnF1b3Q7aHR0cDovL3d3dy55b3VyRG9tYWluL3VwbG9hZHMvaW1hZ2VzL2FfdGlueV9pbWFnZS5qcGcmcXVvdDsgLz4pLg0KPC9wPg0KPHA+DQoJU29tZSBTbWFydHkgdGFncywgcGx1Z2lucyBvciBtb2R1bGVzIHdvbiYjMDM5O3Qgd29yayBwcm9wZXJseSBpZiB1c2VkIGluIGEgbWFpbDxiciAvPg0KCWJlY2F1c2UgdGhleSBuZWVkIHNvbWUgZGF0YSBvZiB0aGUgc2VydmVyIHJlcXVlc3QgaW4geW91ciBicm93c2VycyBhZGRyZXNzIGJhci48YnIgLz4NCglUaGlzIGRhdGEgZG9lcyBvbmx5IGV4aXN0IHdoZW4gYWNjZXNzaW5nIHRoZSBwYWdlIHZpYSBmcm9udGVuZC48YnIgPg0KCVNpbmNlIHRoZSBtYWlsIHdpbGwgYmUgcHJvY2Vzc2VkIGJ5IHRoZSBiYWNrZW5kIHRoaXMgZGF0YSB3b24mIzAzOTt0IGJlIGFjY2Vzc2libGUuPGJyIC8+DQoJVGhpcyBjYW5ub3QgYmUgY2hhbmdlZCB1bmxlc3MgeW91IG1vZGlmeSB0aGUgcGx1Z2lucy4NCjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+DQoJQXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuPGJyIC8+DQoJVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsPGJyIC8+DQoJYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Y8YnIgLz4NCglNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuPGJyIC8+DQoJU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLjxiciAvPg0KCVlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlPGJyIC8+DQoJYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmU8YnIgLz4NCglGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQTxiciAvPg0KCU9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEw8YnIgLz4NCglQbGVhc2UgcmVhZCB0aGUgdGV4dCBvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci4NCjwvcD4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwOCwgR2VvcmcgQnVzY2ggKE5hTikgPGEgaHJlZj0ibWFpbHRvOmdlb3JnLmJ1c2NoQGdteC5uZXQiPjxnZW9yZy5idXNjaEBnbXgubmV0PjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+DQonOwokbGFuZ1snZXJyb3InXSA9ICdFcnJldXIgISc7CiRsYW5nWydlcnJvcl91cGdyYWRlJ10gPSAnU29ycnkgYnV0IHRoZXJlIGlzIG5vIHVwZ3JhZGUgYXZhaWxhYmxlLiA8YnIgLz5Zb3UgbmVlZCB0byByZWluc3RhbGwgdGhlIG1vZHVsZS4nOwokbGFuZ1snZXJyb3JfcGVybWlzc2lvbnMnXSA9ICdBY2MmZWdyYXZlO3MgcmVmdXMmZWFjdXRlOy4gVmV1aWxsZXogdiZlYWN1dGU7cmlmaWVyIGxlcyBwZXJtaXNzaW9ucy4nOwokbGFuZ1snZXJyb3JfZmV1c2VycyddID0gJ05vIEZyb250ZW5kVXNlcnMgbW9kdWxlIGZvdW5kLiBUbyB1c2UgdGhlIEZyb250ZW5kVXNlcnMgTWFpbGVyIG1vZHVsZSB5b3UgbmVlZCB0byBpbnN0YWxsIHRoZSBGcm9udGVuZFVzZXJzIG1vZHVsZS4nOwokbGFuZ1snZXJyb3JfY21zbWFpbGVyJ10gPSAnTm8gQ01TIE1haWxlciBtb2R1bGUgZm91bmQuIFRvIHVzZSB0aGUgRnJvbnRlbmRVc2VycyBNYWlsZXIgbW9kdWxlIHlvdSBuZWVkIHRvIGluc3RhbGwgdGhlIENNUyBNYWlsZXIgbW9kdWxlLic7CiRsYW5nWydlcnJvcl90bXBtYWlscyddID0gJ1RoZXJlIGFyZSB0ZW1wb3JhcnkgZW1haWxzIGluIHRoZSBkYXRhYmFzZS48YnIgLz5UZW1wb3JhcnkgZW1haWxzIGNvdWxkIG5vdCBiZSBzZW50IHRvIGFsbCB1c2VycyBvZiB0aGUgc2VsZWN0ZWQgZ3JvdXBzLjxiciAvPllvdSBjYW4gdHJ5IHRvIHNlbmQgdGhlIGVtYWlsIHRvIGFsbCB1c2VycyB0aGF0IGRpZCBub3QgcmVjaWV2ZSB0aGUgbWFpbCB1c2luZyB0aGUgJnF1b3Q7cmVzZW5kJnF1b3Q7IGJ1dHRvbi48YnIgLz5UaGUgbW9kdWxlIHdpbGwgc2VuZCB0aGUgbWFpbCBhZ2FpbiBjb250aW51ZWluZyBmcm9tIHRoZSBsYXN0IHVzZXIgdGhhdCBtYWlsIHdhcyBzZW50IHRvLic7CiRsYW5nWydlcnJvcl9ncm91cHMnXSA9ICdObyBGcm9udGVuZFVzZXJzIGdyb3VwcyBkZWZpbmVkLiBDaGVjayB0aGUgRnJvbnRlbmRVc2VycyBNb2R1bGUgZm9yIGF0IGxlYXN0IG9uZSB1c2VyZ3JvdXAuJzsKJGxhbmdbJ2Vycm9yX3NlbGVjdGVkZ3JvdXBzJ10gPSAnVmV1aWxsZXogY2hvaXNpciBhdSBtb2lucyB1biBncm91cGUgZCYjMDM5O3V0aWxpc2F0ZXVycy4nOwokbGFuZ1snZXJyb3JfbWFpbGJvZHknXSA9ICdWZXVpbGxleiBlbnRyZXIgdW4gbWVzc2FnZS4nOwokbGFuZ1snZXJyb3JfcmVxdWVzdF9zdGF0dXMnXSA9ICdUaGUgQUpBWCByZXF1ZXN0IGhhcyBiZWVuIHN1Y2Nlc2Z1bGx5IHNlbnQgYnV0IHRoZXJlIHdoZXJlIGVycm9ycy4gUmVxdWVzdCBTdGF0dXM6JzsKJGxhbmdbJ2Vycm9yX3htbGh0dHBfaW5zdGFuY2UnXSA9ICdDYW5ub3QgY3JlYXRlIFhNTEh0dHAgaW5zdGFuY2UhJzsKJGxhbmdbJ2Vycm9yX3NlbGVjdGVkYXJjaGl2ZW1haWxzJ10gPSAnTm8gbWFpbHMgc2VsZWN0ZWQuPGJyIC8+Tm8gbWFpbHMgZGVsZXRlZC48YnIgLz5UaGF0JiMwMzk7cyB0aGUgZGVhbC4nOwokbGFuZ1snZXJyb3Jfc2VsZWN0ZWR0bXBtYWlscyddID0gJ05vIHRlbXBvcmFyeSBtYWlscyBzZWxlY3RlZC48YnIgLz5ObyB0ZW1wb3JhcnkgbWFpbHMgZGVsZXRlZC48YnIgLz5UaGF0JiMwMzk7cyB0aGUgZGVhbC4nOwokbGFuZ1snZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJ10gPSAnSW5zdWZmaWNpZW50IHBhcmFtcy48YnIgLz5JbmNvcnJlY3Qgb3IgbWlzc2luZyB2YWx1ZSBvZiBwYXJhbSAlcyBpbiBtb2R1bGVzL0ZFVU1haWxlci9hY3Rpb24uJXMucGhwLic7CiRsYW5nWydlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXNfYWpheCddID0gJ09wZXJhdGlvbiBjYW5jZWxlZC4gSW5zdWZmaWNpZW50IHBhcmFtcy48YnIgLz5JbmNvcnJlY3Qgb3IgbWlzc2luZyB2YWx1ZSBvZiBwYXJhbSAlcyBpbiBtb2R1bGVzL0ZFVU1haWxlci9hY3Rpb24uJXMucGhwLic7CiRsYW5nWydlcnJvcl9ub3VzZXJzZm91bmQnXSA9ICdBdWN1biB1dGlsaXNhdGV1ciB0cm91diZlYWN1dGU7Lic7CiRsYW5nWydlcnJvcl9hamF4J10gPSAnVW5lIGVycmV1ciBzJiMwMzk7ZXN0IHByb2R1aXRlLlxuT3AmZWFjdXRlO3JhdGlvbiBhbm51bCZlYWN1dGU7ZS5cblZldWlsbGV6IHImZWFjdXRlO2Vzc2F5ZXIuXG5cblImZWFjdXRlO3BvbnNlIGR1IHNlcnZldXIgOlxuXG4nOwokbGFuZ1snZXJyb3JfZGJfZGVsZXRlbWFpbCddID0gJ0xlcyBjb3VycmllbHMgbiYjMDM5O29udCBwdSAmZWNpcmM7dHJlIGVmZmFjJmVhY3V0ZTtzLiAgTGEgcmVxdSZlY2lyYzt0ZSBuJiMwMzk7YSBwdSAmZWNpcmM7dHJlIGV4JmVhY3V0ZTtjdXQmZWFjdXRlO2UgOjxiciAvPiVzJzsKJGxhbmdbJ2Vycm9yX2RiX3NhdmVtYWlsJ10gPSAnTGUgY291cnJpZWwgbiYjMDM5O2EgcHUgJmVjaXJjO3RyZSBhcmNoaXYmZWFjdXRlOy4gTGEgcmVxdSZlY2lyYzt0ZSBuJiMwMzk7YSBwdSAmZWNpcmM7dHJlIGV4JmVhY3V0ZTtjdXQmZWFjdXRlO2UgOjxiciAvPiVzJzsKJGxhbmdbJ2Vycm9yX2RiX3NhdmVtYWlsX2FqYXgnXSA9ICdMZSBjb3VycmllbCBuJiMwMzk7YSBwdSAmZWNpcmM7dHJlIGFyY2hpdiZlYWN1dGU7Lic7CiRsYW5nWydlcnJvcl9kYl9nZXRfdG1wbWFpbCddID0gJ0NvdWxkIG5vdCBnZXQgdGVtcG9yYXJ5IG1haWwgd2l0aCBpZCAlcy4gVGhlIHF1ZXJ5IGNvdWxkIG5vdCBiZSBleGVjdXRlZCBvciByZXR1cm5lZCBhbiBlbXB0eSByZXN1bHQuPGJyIC8+UXVlcnk6PGJyIC8+JXMnOwokbGFuZ1snZXJyb3JfZGJfZ2V0X3RtcG1haWxfYWpheCddID0gJ09wZXJhdGlvbiBjYW5jZWxlZC4gQ291bGQgbm90IGdldCB0ZW1wb3JhcnkgbWFpbCB3aXRoIGlkICVzLic7CiRsYW5nWydlcnJvcl9kYl9nZXRfYXJjaGl2ZW1haWwnXSA9ICdDb3VsZCBub3QgZ2V0IGFyY2hpdmUgbWFpbC4gVGhlIHF1ZXJ5IGNvdWxkIG5vdCBiZSBleGVjdXRlZCBvciByZXR1cm5lZCBhbiBlbXB0eSByZXN1bHQuPGJyIC8+UXVlcnk6PGJyIC8+JXMnOwokbGFuZ1snZXJyb3JfZGJfY3JlYXRlX3RtcG1haWwnXSA9ICdPcGVyYXRpb24gY2FuY2VsZWQuIENvdWxkIG5vdCBjcmVhdGUgdGVtcCBtYWlsLjxiciAvPlRoZSBxdWVyeSBjb3VsZCBub3QgYmUgZXhlY3V0ZWQ6PGJyIC8+JXMnOwokbGFuZ1snZXJyb3JfZGJfYXV0b2NsZWFybG9nJ10gPSAnQ291bGQgbm90IGRlbGV0ZSBsb2cocykgb2YgZGVsZXRlZCBtYWlsKHMpLiBUaGUgcXVlcnkgY291bGQgbm90IGJlIGV4ZWN1dGVkOjxiciAvPiVzJzsKJGxhbmdbJ2Vycm9yX2RiX3VwZGF0ZV90bXBtYWlsJ10gPSAnT3BlcmF0aW9uIGNhbmNlbGVkLiBDb3VsZCBub3QgdXBkYXRlIHRlbXBvcmFyeSBtYWlsLiBUaGUgcXVlcnkgY291bGQgbm90IGJlIGV4ZWN1dGVkOjxiciAvPiVzJzsKJGxhbmdbJ2Vycm9yX2RiX3VwZGF0ZV90bXBtYWlsX2FqYXgnXSA9ICdPcGVyYXRpb24gY2FuY2VsZWQuIENvdWxkIG5vdCB1cGRhdGUgdGVtcG9yYXJ5IG1haWwuJzsKJGxhbmdbJ2Vycm9yX2RiX2NyZWF0ZV9sb2cnXSA9ICdDb3VsZCBub3QgY3JlYXRlIGxvZyBlbnRyeShzKS4nOwokbGFuZ1snZXJyb3JfZGJfdXBkYXRlX2FyY2hpdmUnXSA9ICdDb3VsZCBub3QgdXBkYXRlIGFyY2hpdmUgbWFpbC4gVGlzIG1heSByZXN1bHQgaW4gZGlzcGxheWluZyBpbmNvcnJlY3QgbnVtYmVyIG9mIHJlY2lwaWVudHMgYW5kL29yIHByb2Nlc3NlZCB1c2Vycy4nOwokbGFuZ1snZXJyb3JfZGJfZGVsZXRlX3RtcCddID0gJ0NvdWxkIG5vdCBkZWxldGUgdGVtcCBtYWlsLiBZb3UgbmVlZCB0byBkZWxldGUgdGVtcCBtYWlsIG1hbnVhbGx5Lic7CiRsYW5nWydlcnJvcl9kYl91cGRhdGVfbG9nJ10gPSAnQ291bGQgbm90IHVwZGF0ZSBsb2cgZW50cnkocykuIFRoaXMgbWF5IHJlc3VsdCBpbiBkaXNwbGF5aW5nIGluY29ycmVjdCBzZW5kIHN0YXR1cy4nOwokbGFuZ1snYWRtaW5wYW5lbCddID0gJ1Bhbm5lYXUgZCYjMDM5O2FkbWluaXN0cmF0aW9uJzsKJGxhbmdbJ3NlbmRtYWlsJ10gPSAnU2VuZCBtYWlsLi4uJzsKJGxhbmdbJ2VtYWlsYWRkcmVzcyddID0gJ0FkcmVzc2VzIGRlIGNvdXJyaWVsJzsKJGxhbmdbJ25vbWFpbHMnXSA9ICdObyBzZW50IG1haWxzIGluIHlvdXIgbWFpbHMgYXJjaGl2ZS4nOwokbGFuZ1snbm90ZW1wbWFpbHMnXSA9ICdObyB0ZW1wb3JhcnkgbWFpbHMgZm91bmQuJzsKJGxhbmdbJ2FyY2hpdmUnXSA9ICdBcmNoaXZlIG1haWxzJzsKJGxhbmdbJ25ld21haWwnXSA9ICdFbnZveWVyIHVuIG5vdXZlYXUgY291cnJpZWwnOwokbGFuZ1sndGVtcCddID0gJ0NvdXJyaWVscyB0ZW1wb3JhaXJlcyc7CiRsYW5nWydwcmVmJ10gPSAnUiZlYWN1dGU7Z2xhZ2VzJzsKJGxhbmdbJ3ByZWZzX3VwZGF0ZWQnXSA9ICdSJmVhY3V0ZTtnbGFnZXMgbWlzICZhZ3JhdmU7IGpvdXIuJzsKJGxhbmdbJ3VzZXJzJ10gPSAnVXRpbGlzYXRldXJzJzsKJGxhbmdbJ3JlcXVlc3RfZGVsYXknXSA9ICdEJmVhY3V0ZTtsYWkgZGUgcmVxdSZlY2lyYzt0ZSBBSkFYJzsKJGxhbmdbJ2dyb3VwcyddID0gJ0dyb3VwZShzKSBkJiMwMzk7dXRpbGlzYXRldXJzJm5ic3A7JzsKJGxhbmdbJ3N1YmplY3QnXSA9ICdTdWpldCZuYnNwOyc7CiRsYW5nWydkYXRlJ10gPSAnRGF0ZSBkJiMwMzk7ZW52b2knOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ1JlY2lwaWVudHMnOwokbGFuZ1sncmVhZCddID0gJ1ZvaXInOwokbGFuZ1sncmVhZG1haWwnXSA9ICdSZWFkIG1haWwnOwokbGFuZ1snZWRpdCddID0gJ0VkaXRlcic7CiRsYW5nWydyZXNlbmQnXSA9ICdSJmVhY3V0ZTstZW52b3llcic7CiRsYW5nWydkZWxldGUnXSA9ICdFZmZhY2VyJzsKJGxhbmdbJ3NhdmVfbG9ncyddID0gJ1NhdmUgbG9ncyc7CiRsYW5nWydzYXZlX2Vycm9ybG9nc19vbmx5J10gPSAnU2F2ZSBlcnJvcmxvZ3Mgb25seSc7CiRsYW5nWydsb2dpZCddID0gJ0xvZyBJRCc7CiRsYW5nWydzdGF0dXMnXSA9ICdFdGF0JzsKJGxhbmdbJ3JlY2lldmVkJ10gPSAnUmUmY2NlZGlsO3VzJzsKJGxhbmdbJ25vZW1haWxhZGRyZXNzZm91bmQnXSA9ICdBdWN1bmUgYWRyZXNzZSBkZSBjb3VycmllbCB0cm91diZlYWN1dGU7JzsKJGxhbmdbJ2ludmFsaWRlbWFpbGFkZHJlc3MnXSA9ICdBZHJlc3NlIGRlIGNvdXJyaWVsIGludmFsaWRlJzsKJGxhbmdbJ2ZpbHRlciddID0gJ0ZpbHRyZSc7CiRsYW5nWydhc2MnXSA9ICdjcm9pc3NhbnQnOwokbGFuZ1snZGVzYyddID0gJ2Rlc2Nyb2lzc2FudCc7CiRsYW5nWydzb3J0YnknXSA9ICdSYW5nZXIgcGFyJzsKJGxhbmdbJ3NvcnQnXSA9ICdyYW5nZXInOwokbGFuZ1snbGltaXQnXSA9ICdMaW1pdGUnOwokbGFuZ1sncGFnZXMnXSA9ICdQYWdlcyAnOwokbGFuZ1snZXJyb3Jzb25seSddID0gJ05lIG1vbnRyZXIgcXVlIGxlcyBlcnJldXJzJzsKJGxhbmdbJ3NhdmVkZWZhdWx0J10gPSAnU2F2ZSBmaWx0ZXInOwokbGFuZ1snc2VuZF9vcmRlciddID0gJ1NlbmQgb3JkZXInOwokbGFuZ1snc29ydG9yZGVyJ10gPSAnU29ydCBvcmRlcic7CiRsYW5nWydzZW5kX2RhdGUnXSA9ICdEYXRlIGQmIzAzOTtlbnZvaSc7CiRsYW5nWyd1c2VybmFtZSddID0gJ05vbSBkJiMwMzk7dXRpbGlzYXRldXInOwokbGFuZ1snbm9saW1pdCddID0gJ25vIGxpbWl0JzsKJGxhbmdbJ2F1dG9zYXZlJ10gPSAnQXV0b21hdGljYWxseSBzYXZlIHNlbnQgbWVzc2FnZXMnOwokbGFuZ1snYXV0b2NsZWFyX2FyY2hpdmVtYWlscyddID0gJ0F1dG9tYXRpY2FsbHkgZGVsZXRlIG9sZCBtYWlscyc7CiRsYW5nWydhdXRvY2xlYXJfYWN0aW9uJ10gPSAnRWZmYWNlciBsZXMgY291cnJpZWxzIHBsdXMgdmlldXggcXVlJzsKJGxhbmdbJ3NlY29uZHMnXSA9ICdzZWNvbmRlcyc7CiRsYW5nWydtaW51dGVzJ10gPSAnbWludXRlcyAnOwokbGFuZ1snaG91cnMnXSA9ICdoZXVyZXMnOwokbGFuZ1snZGF5cyddID0gJ2pvdXJzJzsKJGxhbmdbJ3dlZWtzJ10gPSAnc2VtYWluZSc7CiRsYW5nWydtb250aHMnXSA9ICdtb2lzJzsKJGxhbmdbJ3llYXJzJ10gPSAnYW5uJmVhY3V0ZTtlcyc7CiRsYW5nWydhdXRvY2xlYXJfdG1wbWFpbHMnXSA9ICdpbmNsdXJlIGxlcyBjb3VycmllbHMgdGVtcG9yYWlyZXMnOwokbGFuZ1snZGVmYXVsdF9ncm91cHMnXSA9ICdEZWZhdWx0IHJlY2lwaWVudCBncm91cHMnOwokbGFuZ1snaXNfaHRtbCddID0gJ0Vudm95ZXIgYXUgZm9ybWF0IEhUTUwnOwokbGFuZ1snc3VibWl0J10gPSAnU291bWV0dHJlJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0FubnVsZXInOwokbGFuZ1snbWVzc2FnZSddID0gJ01lc3NhZ2UgJzsKJGxhbmdbJ3NhdmUnXSA9ICdFbnJlZ2lzdHJlciBsZSBtZXNzYWdlIGVudm95JmVhY3V0ZTsnOwokbGFuZ1snbWF4bWFpbHMnXSA9ICdOb21icmUgbWF4aW1hbCBkZSBjb3VycmllbCBwYXIgdCZhY2lyYztjaGUnOwokbGFuZ1snbm9zdWJqZWN0J10gPSAnQXVjdW4gc3VqZXQnOwokbGFuZ1snbG9ncyddID0gJ0xvZ3MnOwokbGFuZ1sndG1wbWFpbGRlbGV0ZWQnXSA9ICdDb3VycmllbChzKSB0ZW1wb3JhaXJlKHMpIGVmZmFjJmVhY3V0ZTsocyknOwokbGFuZ1snYXJjaGl2ZW1haWxkZWxldGVkJ10gPSAnQ291cnJpZWwocykgZWZmYWMmZWFjdXRlOyhzKSc7CiRsYW5nWyd0YXNrX2ZpbmlzaGVkJ10gPSAnQ2V0dGUgdCZhY2lyYztjaGUgZXN0IHRlcm1pbiZlYWN1dGU7ZSc7CiRsYW5nWyd0YXNrX29wZW4nXSA9ICdDZXR0ZSB0JmFjaXJjO2NoZSBuJiMwMzk7ZXN0IHBhcyB0ZXJtaW4mZWFjdXRlO2UnOwokbGFuZ1snbWFpbHNfc2VudCddID0gJ1RvdXMgbGVzIGNvdXJyaWVscyBvbnQgJmVhY3V0ZTt0JmVhY3V0ZTsgZW52b3kmZWFjdXRlO3MgYXZlYyBzdWNjJmVncmF2ZTtzJzsKJGxhbmdbJ29rJ10gPSAnT2sgJzsKJGxhbmdbJ2JhY2snXSA9ICdSZXRvdXInOwokbGFuZ1snb2YnXSA9ICdkZSc7CiRsYW5nWyd3YWl0J10gPSAnVmV1aWxsZXogcGF0aWVudGVyLi4uJzsKJGxhbmdbJ3NlbmRpbmcnXSA9ICdTZW5kaW5nIG1haWwnOwokbGFuZ1snZGVsZXRlc2VsZWN0ZWQnXSA9ICdEZWxldGUgc2VsZWN0ZWQgbWFpbHMnOwokbGFuZ1snZGVsZXRlc2VsZWN0ZWRsb2cnXSA9ICdEZWxldGUgc2VsZWN0ZWQgbG9ncyc7CiRsYW5nWyd0b3RhbGxvZ3MnXSA9ICdUb3RhbCBlbnRyeXMnOwokbGFuZ1snZXJyb3Jsb2dzJ10gPSAnRXJyZXVycyc7CiRsYW5nWydsb2dfZGVsZXRlZCddID0gJ0xvZyBlbnRyeShzKSBkZWxldGVkLic7CiRsYW5nWydhdXRvY2xlYXJfbG9ncyddID0gJ0F1dG9tYXRpY2FsbHkgZGVsZXRlIGxvZ3Mgb2YgbWFpbHMgdGhhdCB3aWxsIGJlIGRlbGV0ZWQnOwokbGFuZ1sndmlld19sb2dzJ10gPSAnVmlldyBsb2dzJzsKJGxhbmdbJ3ZpZXcnXSA9ICdEJmVhY3V0ZTt0YWlscyc7CiRsYW5nWydub2xvZ3MnXSA9ICdObyBsb2dzIGZvdW5kJzsKJGxhbmdbJ3Byb2Nlc3NlZHVzZXJzJ10gPSAnVXRpbGlzYXRldXJzIHRyYWl0JmVhY3V0ZTtzJzsKJGxhbmdbJ3RvdGFsdXNlcnMnXSA9ICdUb3RhbCBkJiMwMzk7dXRpbGlzYXRldXJzJzsKJGxhbmdbJ3JlbWFpbmluZyddID0gJ1V0aWxpc2F0ZXVycyByZXN0YW50JzsKJGxhbmdbJ3NlbnRieSddID0gJ0Vudm95JmVhY3V0ZTsgcGFyJzsKJGxhbmdbJ3Jlc2VuZF9hbGwnXSA9ICdSJmVhY3V0ZTstZW52b3llciAmYWdyYXZlOyB0b3VzIGxlcyB1dGlsaXNhdGV1cnMnOwokbGFuZ1snY29udGludWVfYXJjaGl2ZSddID0gJ1ImZWFjdXRlOy1lbnZveWVyIGF1eCBub3V2ZWF1eCB1dGlsaXNhdGV1cnMgc2V1bGVtZW50JzsKJGxhbmdbJ2NvbnRpbnVlX3RtcCddID0gJ0NvbnRpbnVlciAmYWdyYXZlOyBwYXJ0aXIgZHUgZGVybmllciB1dGlsaXNhdGV1ciB0cmFpdCZlYWN1dGU7JzsKJGxhbmdbJ3Jlc2VuZF9lcnJvcnMnXSA9ICdSJmVhY3V0ZTstZW52b3llciAmYWdyYXZlOyBjZXV4IGF5YW50IGV1IHVuZSBlcnJldXIgc2V1bGVtZW50JzsKJGxhbmdbJ3Jlc2VuZF91c2VyJ10gPSAnUiZlYWN1dGU7LWVudm95ZXIgJmFncmF2ZTsgY2V0IHV0aWxpc2F0ZXVyJzsKJGxhbmdbJ3Jlc2VuZF9zZWxlY3RlZCddID0gJ1ImZWFjdXRlOy1lbnZveWVyICZhZ3JhdmU7IGNldXggcyZlYWN1dGU7bGVjdGlvbm4mZWFjdXRlO3MnOwokbGFuZ1sncmFuZG9tX2RlbGF5J10gPSAnVXNlIHJhbmRvbSBkZWxheSc7CiRsYW5nWydncm91cHNfY2hhbmdlZCddID0gJ1lvdSBoYXZlIGNoYW5nZWQgdGhlIHJlY2lwaWVudCBncm91cHMuXG5EbyB5b3UgcmVhbGx5IHlvdSB3YW50IHRvIGNvbnRpbnVlPyc7CiRsYW5nWydkZWxldGVjb25maXJtJ10gPSAnRXRlcyB2b3VzIHMmdWNpcmM7cihlKSBkZSB2b3Vsb2lyIGVmZmFjZXIgbGVzIGNvdXJyaWVscyBzJmVhY3V0ZTtsZWN0aW9ubiZlYWN1dGU7cyA/JzsKJGxhbmdbJ2RlbGV0ZWFyY2hpdmVjb25maXJtJ10gPSAnRXRlcyB2b3VzIHMmdWNpcmM7cihlKSBkZSB2b3Vsb2lyIGVmZmFjZXIgY2UgY291cnJpZWwgPyc7CiRsYW5nWydkZWxldGV0ZW1wY29uZmlybSddID0gJ0V0ZXMgdm91cyBzJnVjaXJjO3IoZSkgZGUgdm91bG9pciBlZmZhY2VyIGNlIGNvdXJyaWVsIHRlbXBvcmFpcmUgPyc7CiRsYW5nWydkZWxldGVsb2djb25maXJtJ10gPSAnRG8geW91IHJlYWx5IHdhbnQgdG8gZGVsZXRlIHRoZSBzZWxlY3RlZCBsb2dzPyc7CiRsYW5nWydzdWJtaXRjb25maXJtJ10gPSAnRG8geW91IHJlYWxseSB3YW50IHRvIHNlbmQgdGhpcyBtYWlsIHRvIGFsbCB1c2VycyBvZiB0aGUgc2VsZWN0ZWQgZ3JvdXAocyk/JzsKJGxhbmdbJ3Jlc2VuZHNlbGVjdGVkY29uZmlybSddID0gJ0V0ZXMgdm91cyBzJnVjaXJjO3IoZSkgZGUgdm91bG9pciBSRS1FTlZPWUVSIGNlIGNvdXJyaWVsIGF1eCB1dGlsaXNhdGV1cnMgcyZlYWN1dGU7bGVjdGlvbm4mZWFjdXRlO3MgPyc7CiRsYW5nWydyZXNlbmRhbGx0bXBjb25maXJtJ10gPSAnRG8geW91IHJlYWxseSB3YW50IHRvIHNlbmQgdGhpcyB0ZW1wb3JhcnkgbWFpbCBBR0FJTiB0byBhbGwgdXNlcnMgb2YgdGhlIHNlbGVjdGVkIGdyb3VwKHMpPyc7CiRsYW5nWydyZXNlbmRuZXd0bXBjb25maXJtJ10gPSAnRG8geW91IHJlYWxseSB3YW50IHRvIHNlbmQgdGhpcyB0ZW1wb3JhcnkgbWFpbCB0byBhbGwgdXNlcnMgb2YgdGhlIHNlbGVjdGVkIGdyb3VwKHMpIGNvbmludWVpbmcgZnJvbSB0aGUgbGFzdCBwcm9jZXNzZWQgdXNlcj8nOwokbGFuZ1sncmVzZW5kZXJyb3J0bXBjb25maXJtJ10gPSAnRG8geW91IHJlYWxseSB3YW50IHRvIHNlbmQgdGhpcyB0ZW1wb3JhcnkgbWFpbCB0byBhbGwgdXNlcnMgb2YgdGhlIHNlbGVjdGVkIGdyb3VwKHMpIHdobyB3aGVyZSBhbHJlYWR5IHByb2Nlc3NlZCBidXQgZGlkIG5vdCBoYXZlIGFuIGVtYWlsIGFkZHJlc3MgbGFzdCB0aW1lPyc7CiRsYW5nWydyZXNlbmRhbGxhcmNoaXZlY29uZmlybSddID0gJ0V0ZXMgdm91cyBzJnVjaXJjO3IoZSkgZGUgdm91bG9pciBSRS1FTlZPWUVSIGNlIGNvdXJyaWVsIHBvdXIgdG91cyBsZXMgbm91dmVhdXggdXRpbGlzYXRldXJzIGR1IG91IGRlcyBncm91cGVzIHMmZWFjdXRlO2xlY3Rpb25uJmVhY3V0ZTtzID8nOwokbGFuZ1sncmVzZW5kbmV3YXJjaGl2ZWNvbmZpcm0nXSA9ICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gc2VuZCB0aGlzIG1haWwgdG8gYWxsIE5FVyB1c2VycyBvZiB0aGUgc2VsZWN0ZWQgZ3JvdXAocyk/XG4oY29uaW51ZWluZyBmcm9tIHRoZSBsYXN0IHByb2Nlc3NlZCB1c2VyKSc7CiRsYW5nWydyZXNlbmRlcnJvcmFyY2hpdmVjb25maXJtJ10gPSAnRG8geW91IHJlYWxseSB3YW50IHRvIHNlbmQgdGhpcyBtYWlsIHRvIGFsbCB1c2VycyBvZiB0aGUgc2VsZWN0ZWQgZ3JvdXAocykgd2hvIHdoZXJlIGFscmVhZHkgcHJvY2Vzc2VkIGJ1dCBkaWQgbm90IGhhdmUgYW4gZW1haWwgYWRkcmVzcyBsYXN0IHRpbWU/JzsKJGxhbmdbJ3Jlc2VuZHVzZXJjb25maXJtXzEnXSA9ICdFdGVzIHZvdXMgcyZ1Y2lyYztyKGUpIGRlIHZvdWxvaXIgUkUtRU5WT1lFUiBjZSBjb3VycmllbCAmYWdyYXZlOyBjZXQgdXRpbGlzYXRldXIgP1xuVXRpbGlzYXRldXIgLyBDb3VycmllbCA6ICVzJzsKJGxhbmdbJ3Jlc2VuZHVzZXJjb25maXJtXzInXSA9ICdFdGVzIHZvdXMgcyZ1Y2lyYztyKGUpIGRlIHZvdWxvaXIgUkUtRU5WT1lFUiBjZSBjb3VycmllbCAmYWdyYXZlOyBjZXQgdXRpbGlzYXRldXIgP1xuVXRpbGlzYXRldXIgOiAlc1xuQ291cnJpZWwgOiAlcyc7CiRsYW5nWydzdWJtaXRjb25maXJtX2Z1bGwnXSA9ICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gc2VuZCB0aGlzIG1haWwgdG8gYWxsIHVzZXJzIG9mIHRoZSBzZWxlY3RlZCBncm91cChzKT9cblxuR3JvdXBzOlxuJXNcblxuVXNlcnM6XG4lcyc7CiRsYW5nWydyZXNlbmRhbGx0bXBjb25maXJtX2Z1bGwnXSA9ICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gc2VuZCB0aGlzIHRlbXBvcmFyeSBtYWlsIEFHQUlOIHRvIGFsbCB1c2VycyBvZiB0aGUgc2VsZWN0ZWQgZ3JvdXAocyk/IFxuXG5Hcm91cHM6XG4lc1xuXG5Vc2VyczpcbiVzJzsKJGxhbmdbJ3Jlc2VuZG5ld3RtcGNvbmZpcm1fZnVsbCddID0gJ0RvIHlvdSByZWFsbHkgd2FudCB0byBzZW5kIHRoaXMgdGVtcG9yYXJ5IG1haWwgdG8gYWxsIHVzZXJzIG9mIHRoZSBzZWxlY3RlZCBncm91cChzKSBjb25pbnVlaW5nIGZyb20gdGhlIGxhc3QgcHJvY2Vzc2VkIHVzZXI/XG5cbkdyb3VwczpcbiVzXG5cblRvdGFsIHVzZXJzOlxuJXNcblxuUHJvY2Vzc2VkIHVzZXJzOiAlc1xuXG5SZWNpcGllbnRzOiAlc1xuXG5SZW1haW5pbmcgdXNlcnM6XG4lcyc7CiRsYW5nWydyZXNlbmRlcnJvcnRtcGNvbmZpcm1fZnVsbCddID0gJ0RvIHlvdSByZWFsbHkgd2FudCB0byBzZW5kIHRoaXMgdGVtcG9yYXJ5IG1haWwgdG8gYWxsIHVzZXJzIG9mIHRoZSBzZWxlY3RlZCBncm91cChzKSB3aG8gd2hlcmUgYWxyZWFkeSBwcm9jZXNzZWQgYnV0IGRpZCBub3QgaGF2ZSBhbiBlbWFpbCBhZGRyZXNzIGxhc3QgdGltZT9cblxuR3JvdXBzOlxuJXNcblxuVG90YWwgdXNlcnM6XG4lc1xuXG5Qcm9jZXNzZWQgdXNlcnM6XG4lc1xuXG5SZWNpcGllbnRzOlxuJXNcblxuUmVtYWluaW5nIHVzZXJzOlxuJXMnOwokbGFuZ1sncmVzZW5kYWxsYXJjaGl2ZWNvbmZpcm1fZnVsbCddID0gJ0RvIHlvdSByZWFsbHkgd2FudCB0byBzZW5kIHRoaXMgbWFpbCBBR0FJTiB0byBhbGwgdXNlcnMgb2YgdGhlIHNlbGVjdGVkIGdyb3VwKHMpP1xuXG5Hcm91cHM6XG4lc1xuXG5Vc2VyczpcbiVzJzsKJGxhbmdbJ3Jlc2VuZG5ld2FyY2hpdmVjb25maXJtX2Z1bGwnXSA9ICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gc2VuZCB0aGlzIG1haWwgdG8gYWxsIE5FVyB1c2VycyBvZiB0aGUgc2VsZWN0ZWQgZ3JvdXAocyk/XG4oY29uaW51ZWluZyBmcm9tIHRoZSBsYXN0IHByb2Nlc3NlZCB1c2VyKVxuXG5Hcm91cHM6XG4lc1xuXG5Ub3RhbCB1c2VyczpcbiVzXG5cblByb2Nlc3NlZCB1c2VyczpcbiVzXG5cblJlY2lwaWVudHM6XG4lc1xuXG5SZW1haW5pbmcgdXNlcnM6XG4lcyc7CiRsYW5nWydyZXNlbmRlcnJvcmFyY2hpdmVjb25maXJtX2Z1bGwnXSA9ICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gc2VuZCB0aGlzIG1haWwgdG8gYWxsIHVzZXJzIG9mIHRoZSBzZWxlY3RlZCBncm91cChzKSB3aG8gd2hlcmUgYWxyZWFkeSBwcm9jZXNzZWQgYnV0IGRpZCBoYXZlIG5vIG9yIGFuIGludmFsaWQgZW1haWwgYWRkcmVzcyBsYXN0IHRpbWU/XG5cbkdyb3VwczpcbiVzXG5cblRvdGFsIHVzZXJzOlxuJXNcblxuUHJvY2Vzc2VkIHVzZXJzOlxuJXNcblxuUmVjaXBpZW50czpcbiVzXG5cblJlbWFpbmluZyB1c2VyczpcbiVzJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMjAwMzg2NjkxMC4xMjQ1NjUyODU5LjEyODM3MjMxOTEuMTI4Mzg4NjU5NS4xOTInOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjgzODg2NTk1LjE5Mi4xNzYudXRtY3NyPWdvb2dsZXx1dG1jY249KG9yZ2FuaWMpfHV0bWNtZD1vcmdhbmljfHV0bWN0cj1jbXNtcyc7CiRsYW5nWydxY2EnXSA9ICc0YTNkMWI0MS01ZWIzNi1jOTU3MC1mNDllYSc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzLjEuMTAuMTI4Mzg4NjU5NSc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zyb250ZW5kVXNlcnMgTWFpbGVyIE1vZHVsZSc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0Zyb250ZW5kVXNlcnMgTWFpbGVyIE1vZHVsZSBpbnN0YWxsZWQuPGJyIC8+QmUgc3VyZSB0byBzZXQgJnF1b3Q7VXNlIEZFVU1haWxlcnMmcXVvdDsgcGVybWlzc2lvbnMgdG8gdXNlIHRoaXMgbW9kdWxlISc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnRnJvbnRlbmRVc2VycyBNYWlsZXIgTW9kdWxlIHVuaW5zdGFsbGVkLic7CiRsYW5nWydyZWFsbHlfdW5pbnN0YWxsJ10gPSAnRG8geW91IHJlYWxseSB3YW50IHRvIHVuaW5zdGFsbCBGcm9udGVuZFVzZXJzIE1haWxlciBNb2R1bGU/JzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIFVuaW5zdGFsbGVkLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bGUgdmVyc2lvbiAlcyBpbnN0YWxsZWQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnVGhpcyBtb2R1bGUgcHJvdmlkZXMgYSBzaW1wbGUgbWFpbGluZyBmdW5jdGlvbiB0byBzZW5kIGVtYWlscyB0byBzZXZlcmFsIGdyb3VwcyBvZiB0aGUgRnJvbnRlbmRVc2VycyBNb2R1bGUuJzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzxiciAvPg0KPHVsPg0KCTxsaT4NCgkJPHA+PHN0cm9uZz5WZXJzaW9uIDAuOS4zIChKdW5lIDIwMTApOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPi0gZmlyc3Qgc3RhYmxlIHJlbGVhc2U8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkICZxdW90O3dlYiBidWcmcXVvdDsgdG8gdHJhY2sgYmFjayBpZiBtYWlsIGhhcyBiZWVuIHJlYWQgKG9ubHkgd29ya3MgaWYgbWFpbCBpcyBzZW50IGFzIGh0bWwpPC9wPjwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8bGk+DQoJCTxwPjxzdHJvbmc+VmVyc2lvbiAwLjkuMi5CRVRBIChNYXkgMjAwOSk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+c2V2ZXJhbCBtaW5vciBidWdmaXhlczwvcD48L2xpPg0KCQkJPGxpPjxwPm1vdmVkIGFsbCBkYiBxdWVycmllcyBpbnRvIEZFVU1haWxlci5tb2R1bGUucGhwIGFzIHNlcGFyYXRlIGZ1bmN0aW9uczwvcD48L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPg0KCQk8cD48c3Ryb25nPlZlcnNpb24gMC45LjEgKEFwcmlsIDIwMDkpOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPnNldmVyYWwgbWlub3IgYnVnZml4ZXM8L3A+PC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT4NCgkJPHA+PHN0cm9uZz5WZXJzaW9uIDAuOSAoTWFyY2ggMjAwOSk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+aW1wcm92ZWQgY29tcGF0aWJsaXR5IGZvciBDTVNtcyAxLjUueDwvcD48L2xpPg0KCQkJPGxpPjxwPmFkZGVkIG93biBtb2R1bGUgaWNvbjwvcD48L2xpPg0KCQkJPGxpPjxwPmVubGFyZ2VkIG1vZHVsZSBpY29uczwvcD48L2xpPg0KCQkJPGxpPg0KCQkJCTxwPg0KCQkJCQlBZGRlZCBmdW50aW9uIHRvIHNhdmUgbG9nIGRhdGEgb2Ygc2VudCBtYWlscy48YnIgLz4NCgkJCQkJV2l0aCB0aGF0IG9wdGlvbiB5b3UgY2FuIHJlc2VuZCBtYWlscyB0byB1c2VycyB0aGF0IGRpZCBub3QgaGF2ZSBlbnRlcmVkIGEgdmFsaWQgZW1haWwgYWRkcmVzcyB3aGVuIHNlbmRpbmcgYSBtYWlsIGxhc3QgdGltZS4NCgkJCQk8L3A+DQoJCQk8L2xpPg0KCQkJPGxpPjxwPlNhdmVkIG1lc3NhZ2VzIGRpc3BsYXlzIGFtb3VudCBvZiByZWNpcGllbnRzLCBwcm9jZXNzZWQgdXNlcnMgYW5kIHRvdGFsIHVzZXJzIG9mIHRoZSBzZWxlY3RlZCBncm91cHM8L3A+PC9saT4NCgkJCTxsaT48cD5BZGRlZCBjb25maXJtIG1lc3NhZ2VzIGJlZm9yZSBhY3R1YWxseSBzZW5kaW5nIGEgbWFpbC48YnIgLz4oY29uZmlybSBtZXNzYWdlIHNob3dzIGFtb3VudCBvZiB0b3RhbCB1c2VycywgcHJvY2Vzc2VkIHVzZXJzLCByZWNpcGllbnRzIGFuZCByZW1haW5pbmcgdXNlcnMpPC9wPjwvbGk+DQoJCQk8bGk+PHA+UmVtb3ZlZCBmdW5jdGlvbiB0byByZXNlbmQgdGVtcG9yYXJ5IG1haWxzIHRvIGFsbCB1c2VycyBvZiBzZWxlY3RlZCBncm91cHM8L3A+PC9saT4NCgkJCTxsaT48cD5SZW1vdmVkIGZ1bmN0aW9uIHRvIGVkaXQgdGVtcG9yYXJ5IG1haWxzPGJyIC8+KGpvYnMgY2Fubm90IGJlIGNoYW5nZWQgYW55bW9yZSBidXQganVzdCBjb250aW51ZWQpPC9wPjwvbGk+DQoJCQk8bGk+PHA+U2V2ZXJhbCB0cml2aWFsIGJ1Z2ZpeGVzPC9wPjwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8bGk+PHA+PHN0cm9uZz5WZXJzaW9uIDAuOCAoSnVseSAyMDA4LCBpbml0aWFsIHJlbGVhc2UpPC9zdHJvbmc+PHA+PC9saT4NCjx1bD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+VGhpcyBpcyBhIHZlcnkgc2ltcGxlICZxdW90O2VtYWlsIG1vZHVsZSZxdW90Oy48YnIgLz4NCkl0IHByb3ZpZGVzIGJhY2tlbmQgdXNlcnMgYWJpbGl0eSB0byBzZW5kIGVtYWlscyB0byBzZXZlcmFsIGdyb3VwcyBvZiB0aGUgRnJvbnRlbmRVc2VycyBtb2R1bGUuPGJyIC8+DQpZb3UgY2FuIHVzZSBzbWFydHkgc3ludGF4IGluIHRoZSBtZXNzYWdlIHRleHQgdG8gaW5zZXJ0IGUuZy4gdXNlciBwcm9wZXJ0aWVzLCBsaW5rcyBldGMuIGluIHRoZSBtYWlsLjxiciAvPg0KU2VudCBtYWlscyBjYW4gYmUgc3RvcmVkIGluIHRoZSBkYXRhYmFzZS48YnIgLz4NCjxiciAvPg0KU2VuZGluZyBtYWlscyBhcmUgc3RvcmVkIHRlbXBvcmFyeSBpbiB0aGUgZGF0YWJhc2UgYW5kIGR1cmluZyBzZW5kaW5nIHByb2Nlc3MgPGJyIC8+DQpjb250aW5vdXNseSB1cGRhdGVkIHdpdGggdGhlIGN1cnJlbnRseSBwcm9jZXNzZWQgdXNlcnMgaWQuIDxiciAvPg0KU28gaWYgdGhlcmUgaXMgYSBzZXJ2ZXIgdGltZW91dCB0aGUgbW9kdWxlIGNhbiByZXNlbmQgdGhlIGVtYWlscyBjb250aW51ZWluZyA8YnIgLz4NCmZyb20gdGhlIGxhc3QgdXNlciB0aGUgbWFpbCB3YXMgc2VudCB0by48YnIgLz48YnIgLz4NClRvIHByZXZlbnQgYSBzZXJ2ZXIgdGltZW91dCBtYWlscyB3aWxsIGJlIHNlbnQgaW4gJnF1b3Q7am9icyZxdW90OyB1c2luZyBhbiBBSkFYIHJlcXVlc3QuPGJyIC8+DQo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IHN1cHBvcnQgZnVuY3Rpb25zIGZvciB0aGUgZnJvbnRlbmQuPC9wPg0KPHA+QWZ0ZXIgaW5zdGFsbGF0aW9uIGdvIHRvICZxdW90O1VzZXJzICZhbXA7IEdyb3Vwcy0+RnJvbnRlbmRVc2VycyBNYWlsZXIgTW9kdWxlJnF1b3Q7IGluIHRoZSBiYWNrZW5kLjxiciAvPg0KVG8gc2VuZCBhIG5ldyBtYWlsIGp1c3Qgc2VsZWN0ICZxdW90O1NlbmQgYSBuZXcgbWFpbCZxdW90Oy48YnIgLz4NClNlbGVjdCB0aGUgZ3JvdXBzIG9mIHRoZSBGcm9udGVuZFVzZXJzIG1vZHVsZSB5b3Ugd2lzaCB0byBzZW5kIGFuIGVtYWlsIHRvLjxiciAvPg0KRW50ZXIgYSBzdWJqZWN0IChvcHRpb25hbCkuPGJyIC8+DQpFbnRlciBhIG1lc3NhZ2UgdGV4dC48YnIgLz4NClNlbGVjdCAmcXVvdDtTdWJtaXQmcXVvdDsgdG8gc2VuZCB0aGUgbWFpbC48YnIgLz48YnIgLz4NClRoZSBtb2R1bGUgbm93IHNlbmRzIGFuIGVtYWlsIHRvIGFsbCB1c2VycyBvZiB0aGUgc3BlY2lmaWVkIGdyb3VwcyB1c2luZyB0aGUgPGJyIC8+DQpDTVMgTWFpbGVyIG1vZHVsZS4NCjwvcD4NCjxwPjxzdHJvbmc+U21hcnR5IHN5bnRheDo8L3N0cm9uZz48YnIgLz4NCllvdSBjYW4gdXNlIGdlbmVyYWwgc21hcnR5IHN0dWZmIGluIHRoZSBlbWFpbC48YnIgLz4NCkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyBhcmU6PC9wPg0KPHVsPg0KPGxpPjxzdHJvbmc+eyR1c2VybmFtZX06IDwvc3Ryb25nPlByaW50cyBvdXQgdGhlIHVzZXJuYW1lIG9mIHRoZSB1c2VyIHRoZSBtYWlsIGlzIHNlbnQgdG8uPC9saT4NCjxsaT48c3Ryb25nPnskdXNlcnByb3BzfTogPC9zdHJvbmc+SXMgYW4gYXJyYXkgY29udGFpbmluZyBhbGwgdXNlcnByb3BlcnRpZXMgb2YgdGhlIHVzZXIgdGhlIG1haWwgaXMgc2VudCB0by48L2xpPg0KPC91bD4NCjxiciAvPg0KVXNpbmcgYSB7Zm9yZWFjaH0tbG9vcCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGFjY2VzcyBhbGwgdXNlcnByb3BlcnRpZXMuPGJyIC8+PGJyIC8+DQpFeGFtcGxlOjxiciAvPg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCjxiciAvPjxiciAvPg0KPHByZT4NCkhlbGxvIHskdXNlcm5hbWV9LA0KDQpBcmUgdGhlc2UgZW50cnlzIHN0aWxsIHVwIHRvIGRhdGU/DQoNCntmb3JlYWNoIGZyb209JHVzZXJwcm9wcyBpdGVtPXByb3B9DQp7JHByb3AucHJvbXB0fTogeyRwcm9wLmRhdGF9PGJyIC8+DQp7L2ZvcmVhY2h9DQoNCklmIG5vdCwgc28gcGxlYXNlIHVwZGF0ZSB0aGVtLg0KDQpSZWdhcmRzLCB5b3VyIEFkbWluLg0KPC9wcmU+DQo8YnIgLz4NCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo8YnIgLz4NCjxiciAvPg0KeyRwcm9wLmRhdGF9IGNvbnRhaW5zIHRoZSBkYXRhIG9mIHRoYXQgZmllbGQuPGJyIC8+DQp7JHByb3AucHJvbXB0fSBjb250YWlucyB0aGUgcHJvbXB0IG9mIHRoYXQgZmllbGQuPGJyIC8+DQo8YnIgLz48YnIgLz4NClRvIGFjY2VzcyB1c2VycHJvcGVydGllcyBkaXJlY3RseSB1c2UgZG90IHN5bnRheDo8YnIgLz4NCjxiciAvPg0KRXhhbXBsZTo8YnIgLz4NCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo8YnIgLz48YnIgLz4NCjxwcmU+DQpIZWxsbyB7JHVzZXJwcm9wcy5maXJzdF9uYW1lLmRhdGF9LA0KDQppJiMwMzk7dmUganVzdCBzcGFtbWVkIHlvdXIgaW5ib3ggYWdhaW4gO1ANCjwvcHJlPg0KPGJyIC8+DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPGJyIC8+PGJyIC8+DQp7JHVzZXJwcm9wcy5GSUVMRE5BTUUuZGF0YX0gY29udGFpbnMgdGhlIGRhdGEgb2YgdGhhdCBmaWVsZC48YnIgLz4NCnskdXNlcnByb3BzLkZJRUxETkFNRS5wcm9tcHR9IGNvbnRhaW5zIHRoZSBwcm9tcHQgb2YgdGhhdCBmaWVsZC48YnIgLz4NCjwvcD4NCjxoMz5TZXR0aW5nczwvaDM+DQo8cD5JbiB0aGUgYWRtaW5wYW5lbCB5b3UgY2FuIHNldHVwIHRoZSBmb2xsb3dpbmcgb3B0aW9uczo8L3A+DQo8dWw+DQoJPGxpPg0KCQk8c3Ryb25nPkF1dG9zYXZlOjwvc3Ryb25nPg0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJVXNlIHRoaXMgb3B0aW9uIHRvIHNhdmUgc2VudCBtZXNzYWdlcyBpbiB5b3VyIG1lc3NhZ2UgYXJjaGl2ZS4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8YnIgPg0KCTxsaT48c3Ryb25nPlNhdmUgbG9nczo8L3N0cm9uZz4NCgkJPHVsPg0KCQkJPGxpPg0KCQkJCVVzZSB0aGlzIG9wdGlvbiB0byBzYXZlIGxvZyBkYXRhIG9mIGVhY2ggc2VudCBtYWlsLjxiciAvPjxiciAvPg0KCQkJCTxlbT5Ob3RpY2U6IHRoZSBhbW91bnQgb2YgbG9nIGRhdGEgZGVwZW5kcyBvbiB0aGUgYW1vdW50IG9mIHlvdXIgZnJvbnRlbmQgdXNlcnMuPGJyIC8+DQoJCQkJSWYgeW91IHJlYWxpemUgcHJvYmxlbXMgd2l0aCBsYXJnZSBudW1iZXIgb2YgdXNlcnMsIGRpc2FibGUgdGhpcyBvcHRpb24uPGJyIC8+IA0KCQkJCURpc2FibGluZyB0aGlzIG9wdGlvbiB3aWxsIGFsc28gZGlzYWJsZSB0aGUgYWJpbGl0eSB0byByZXNlbmQgYSBzYXZlZCBtYWlsIHRvIHVzZXJzIDxiciAvPg0KCQkJCXRoYXQgZGlkIG5vdCBoYXZlIGFuIGVtYWlsIGFkZHJlc3Mgd2hlbiBzZW5kaW5nIHRoaXMgbWFpbCBsYXN0IHRpbWUuPC9lbT4NCgkJCQk8YnIgLz48YnIgLz4NCgkJCQlEZWZhdWx0IGlzIG9uLg0KCQkJPC9saT4NCgkJCTxiciAvPg0KCQkJPGxpPjxzdHJvbmc+U2F2ZSBlcnJvcmxvZ3Mgb25seTo8L3N0cm9uZz4NCgkJCQk8dWw+DQoJCQkJCTxsaT4NCgkJCQkJCVRoaXMgd2lsbCBvbmx5IHNhdmUgbG9ncyB3aGVyZSBhIG1haWwgY291bGQgbm90IGJlIHNlbnQuPGJyIC8+DQoJCQkJCQlUaGlzIG1heSBoYXBwZW4gd2hlbiBhIHVzZXIgZG9lcyBub3QgaGF2ZSBlbnRlcmVkIGFuIGVtYWlsIGFkZHJlc3MgaW4gaGlzIHByb3BlcnRpZXMuPGJyIC8+DQoJCQkJCQk8YnIgLz4NCgkJCQkJCURlZmF1bHQgaXMgb24uDQoJCQkJCTwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8YnIgLz4NCgk8bGk+PHN0cm9uZz5BdXRvbWF0aWNhbGx5IGRlbGV0ZSBvbGQgbWFpbHM6PC9zdHJvbmc+DQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlUaGlzIHdpbGwgYXV0b21hdGljYWxseSBkZWxldGUgb2xkIG1haWxzLg0KCQkJCTxiciAvPjxiciAvPg0KCQkJCURlZmF1bHQgaXMgb24uPGJyIC8+DQoJCQkJPGJyIC8+DQoJCQkJU2VsZWN0IHRoZSBsaWZldGltZSBvZiBhcmNoaXZlIG9yIHRlbXBvcmFyeSBtYWlscyB3aXRoIHRoZSBkcm9wZG93biBpbnB1dCBmaWVsZHMuPGJyIC8+PGJyIC8+DQoJCQkJRGVmYXVsdCBpcyAzIG1vbnRocy4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8YnIgLz4NCgk8bGk+PHN0cm9uZz5EZWZhdWx0IGdyb3VwKHMpOjwvc3Ryb25nPg0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJVGhpcyB3aWxsIGJlIHRoZSBwcmVzZWxlY3RlZCBncm91cChzKSB3aGVuIHNlbmRpbmcgYSBuZXcgbWFpbC48YnIgLz4NCgkJCQk8YnIgLz4NCgkJCQlEZWZhdWx0IGlzIG5vbmUuDQoJCQk8L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGJyIC8+DQoJPGxpPjxzdHJvbmc+U2VuZCBtYWlsIGFzIEhUTUwgdGV4dDo8L3N0cm9uZz4NCgkJPHVsPg0KCQkJPGxpPg0KCQkJCUlmIHlvdSBzZWxlY3QgdGhpcyBvcHRpb24geW91IHdpbGwgYmUgYWJsZSB0byB1c2UgeW91ciBpbnN0YWxsZWQgV1lTSVdZRyBlZGl0b3IgdG8gd3JpdGUgdGhlIG1haWwuPGJyIC8+DQoJCQkJPGJyIC8+DQoJCQkJRGVmYXVsdCBpcyBvZmYuDQoJCQk8L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGJyIC8+DQoJPGxpPjxzdHJvbmc+TWF4LiBudW1iZXIgb2YgZW1haWxzIHBlciBqb2I6PC9zdHJvbmc+DQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlUbyBwcmV2ZW50IGEgc2VydmVyIHRpbWVvdXQgbWFpbHMgd2lsbCBiZSBzZW50IGluICZxdW90O2pvYnMmcXVvdDsgdXNpbmcgYW4gQUpBWCByZXF1ZXN0LjxiciAvPg0KCQkJCUVudGVyIHRoZSBhbW91bnQgb2YgdXNlcnMgdGhhdCB3aWxsIGJlIHByb2Nlc3NlZCBwZXIgam9iLjxiciAvPg0KCQkJCTxiciAvPg0KCQkJCURlZmF1bHQgaXMgNTANCgkJCTwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8YnIgLz4NCgk8bGk+PHN0cm9uZz5BSkFYIHJlcXVlc3QgZGVsYXk6PC9zdHJvbmc+DQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlTaW5jZSBpZiB5b3UgaGF2ZSBhIGxhcmdlIGFtb3VudCBvZiBmcm9udGVuZCB1c2VycyBhbmQgYSBzbWFsbCBhbW91bnQgb2YgdXNlcnMgcGVyIGpvYjxiciAvPg0KCQkJCXlvdXIgYnJvd3NlciB3aWxsIHNlbnQgbG90cyBvZiBpZGVudGljYWwgcmVxdWVzdHMgdG8gdGhlIHNlcnZlciBpbiBhIHZlcnkgc2hvcnQgdGltZS48YnIgLz4NCgkJCQlTb21lIHNlY3VyaXR5IHNvZnR3YXJlIHByb2JhYmx5IHdpbGwgaW50ZXJwcmV0IHRoaXMgYXMgYW4gaW50cnVzaW9uDQoJCQkJYW5kIGJyZWFrIHlvdXIgcmVxdWVzdHMgb3IgZXZlbiBibG9jayB5b3VyIElQIGFkZHJlc3MuPGJyIC8+DQoJCQkJPGJyIC8+DQoJCQkJVG8gYXZvaWQgdGhpcyB5b3UgY2FuIGVudGVyIGEgZGVsYXkgKGluIG1pbGlzZWNvbmRzKSB0aGUgamF2YXNjcmlwdCB3aWxsIHdhaXQgdW50aWwgc2VuZGluZyBhIG5ldyByZXF1ZXN0LjxiciAvPg0KCQkJCTxiciAvPg0KCQkJCURlZmF1bHQgaXMgbm9uZS4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCjwvdWw+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQoJPGxpPlRoZSBwcm9qZWN0cyBob21lcGFnZSBpcyA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2ZldW1haWxlci8iPmh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZmV1bWFpbGVyLzwvYT48L2xpPg0KCTxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjwvdWw+DQo8YnIgLz4NCjxwPlBsZWFzZSByZXBvcnQgYW55IGtpbmQgb2YgZXJyb3JzIGFuZCBmZWVsIGZyZWUgdG8gcmVwb3J0IGFueSBpZGVhcyB0byBpbXByb3ZlIHRoaXMgbW9kdWxlLjwvcD4NCjxoMz5Lbm93biBpc3N1ZXM8L2gzPg0KPHA+SWYgdXNlcm5hbWUgaXMgdXNlZCBhcyBlbWFpbGFkZHJlc3Mgb25seSB0aGlzIGFkZHJlc3Mgd2lsbCBiZSB1c2VkLjwvcD4NCjxwPklmIHVzZXJuYW1lIGlzIDxzdHJvbmc+bm90PC9zdHJvbmc+IHVzZWQgYXMgZW1haWxhZGRyZXNzIHRoZSBGZXVNYWlsZXIgTW9kdWxlIG9ubHkgc2VhcmNoZXMgZm9yIGEgdXNlciBwcm9wZXJ0eSBvZiA8c3Ryb25nPnR5cGUgJnF1b3Q7ZW1haWwmcXVvdDs8L3N0cm9uZz4uPC9wPg0KPHA+SWYgdGhlIHVzZXIgaGFzIGVudGVyZWQgbW9yZSB0aGFuIG9uZSBlbWFpbGFkZHJlc3Mgb25seSB0aGUgZmlyc3QgZm91bmQgZW1haWxhZGRyZXNzIHdpbGwgYmUgdXNlZC48L3A+DQo8cD4NCglXaGVuIHVzaW5nIHBpY3R1cmVzIG9yIGFueSBvdGhlciBraW5kIG9mIG1lZGlhIGl0IHdpbGwgbm90IGJlIGF0dGFjaGVkIHRvIHRoZSBtYWlsIGJ1dCBqdXN0IGluc2VydGVkIHdpdGggYSBsaW5rIHRvIHRoYXQgbWVkaWEuPGJyIC8+DQoJVGhpcyBsaW5rIHdpbGwgYmUgaW5zZXJ0ZWQgYXMgYSByZWxhdGl2ZSBvbmUgKGUuZy4gPGltZyBzcmM9JnF1b3Q7L3VwbG9hZHMvaW1hZ2VzL2FfdGlueV9pbWFnZS5qcGcmcXVvdDsgLz4pLjxiciAvPg0KCUZvciBhIHByb3BlciBsaW5rIHlvdSBuZWVkIHRvIGFkYXB0IGl0IHRvIGFuIGFic29sdXRlIG9uZSAoZS5nLiA8aW1nIHNyYz0mcXVvdDtodHRwOi8vd3d3LnlvdXJEb21haW4vdXBsb2Fkcy9pbWFnZXMvYV90aW55X2ltYWdlLmpwZyZxdW90OyAvPikuDQo8L3A+DQo8cD4NCglTb21lIFNtYXJ0eSB0YWdzLCBwbHVnaW5zIG9yIG1vZHVsZXMgd29uJiMwMzk7dCB3b3JrIHByb3Blcmx5IGlmIHVzZWQgaW4gYSBtYWlsPGJyIC8+DQoJYmVjYXVzZSB0aGV5IG5lZWQgc29tZSBkYXRhIG9mIHRoZSBzZXJ2ZXIgcmVxdWVzdCBpbiB5b3VyIGJyb3dzZXJzIGFkZHJlc3MgYmFyLjxiciAvPg0KCVRoaXMgZGF0YSBkb2VzIG9ubHkgZXhpc3Qgd2hlbiBhY2Nlc3NpbmcgdGhlIHBhZ2UgdmlhIGZyb250ZW5kLjxiciA+DQoJU2luY2UgdGhlIG1haWwgd2lsbCBiZSBwcm9jZXNzZWQgYnkgdGhlIGJhY2tlbmQgdGhpcyBkYXRhIHdvbiYjMDM5O3QgYmUgYWNjZXNzaWJsZS48YnIgLz4NCglUaGlzIGNhbm5vdCBiZSBjaGFuZ2VkIHVubGVzcyB5b3UgbW9kaWZ5IHRoZSBwbHVnaW5zLg0KPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD4NCglBcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy48YnIgLz4NCglUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCw8YnIgLz4NCglidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZjxiciAvPg0KCU1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS48YnIgLz4NCglTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuPGJyIC8+DQoJWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2U8YnIgLz4NCglhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZTxiciAvPg0KCUZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBPGJyIC8+DQoJT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTDxiciAvPg0KCVBsZWFzZSByZWFkIHRoZSB0ZXh0IG9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLg0KPC9wPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA4LCBHZW9yZyBCdXNjaCAoTmFOKSA8YSBocmVmPSJtYWlsdG86Z2VvcmcuYnVzY2hAZ214Lm5ldCI+PGdlb3JnLmJ1c2NoQGdteC5uZXQ+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4NCic7CiRsYW5nWydlcnJvciddID0gJ0Vycm9yISc7CiRsYW5nWydlcnJvcl91cGdyYWRlJ10gPSAnU29ycnkgYnV0IHRoZXJlIGlzIG5vIHVwZ3JhZGUgYXZhaWxhYmxlLiA8YnIgLz5Zb3UgbmVlZCB0byByZWluc3RhbGwgdGhlIG1vZHVsZS4nOwokbGFuZ1snZXJyb3JfcGVybWlzc2lvbnMnXSA9ICdBY2Nlc3MgRGVuaWVkLiBQbGVhc2UgY2hlY2sgeW91ciBwZXJtaXNzaW9ucy4nOwokbGFuZ1snZXJyb3JfZmV1c2VycyddID0gJ05vIEZyb250ZW5kVXNlcnMgbW9kdWxlIGZvdW5kLiBUbyB1c2UgdGhlIEZyb250ZW5kVXNlcnMgTWFpbGVyIG1vZHVsZSB5b3UgbmVlZCB0byBpbnN0YWxsIHRoZSBGcm9udGVuZFVzZXJzIG1vZHVsZS4nOwokbGFuZ1snZXJyb3JfY21zbWFpbGVyJ10gPSAnTm8gQ01TIE1haWxlciBtb2R1bGUgZm91bmQuIFRvIHVzZSB0aGUgRnJvbnRlbmRVc2VycyBNYWlsZXIgbW9kdWxlIHlvdSBuZWVkIHRvIGluc3RhbGwgdGhlIENNUyBNYWlsZXIgbW9kdWxlLic7CiRsYW5nWydlcnJvcl90bXBtYWlscyddID0gJ1RoZXJlIGFyZSB0ZW1wb3JhcnkgZW1haWxzIGluIHRoZSBkYXRhYmFzZS48YnIgLz5UZW1wb3JhcnkgZW1haWxzIGNvdWxkIG5vdCBiZSBzZW50IHRvIGFsbCB1c2VycyBvZiB0aGUgc2VsZWN0ZWQgZ3JvdXBzLjxiciAvPllvdSBjYW4gdHJ5IHRvIHNlbmQgdGhlIGVtYWlsIHRvIGFsbCB1c2VycyB0aGF0IGRpZCBub3QgcmVjaWV2ZSB0aGUgbWFpbCB1c2luZyB0aGUgJnF1b3Q7cmVzZW5kJnF1b3Q7IGJ1dHRvbi48YnIgLz5UaGUgbW9kdWxlIHdpbGwgc2VuZCB0aGUgbWFpbCBhZ2FpbiBjb250aW51ZWluZyBmcm9tIHRoZSBsYXN0IHVzZXIgdGhhdCBtYWlsIHdhcyBzZW50IHRvLic7CiRsYW5nWydlcnJvcl9ncm91cHMnXSA9ICdObyBGcm9udGVuZFVzZXJzIGdyb3VwcyBkZWZpbmVkLiBDaGVjayB0aGUgRnJvbnRlbmRVc2VycyBNb2R1bGUgZm9yIGF0IGxlYXN0IG9uZSB1c2VyZ3JvdXAuJzsKJGxhbmdbJ2Vycm9yX3NlbGVjdGVkZ3JvdXBzJ10gPSAnUGxlYXNlIHNlbGVjdCBhdCBsZWFzdCBvbmUgdXNlcmdyb3VwLic7CiRsYW5nWydlcnJvcl9tYWlsYm9keSddID0gJ1BsZWFzZSBlbnRlciBhIG1lc3NhZ2UgdGV4dC4nOwokbGFuZ1snZXJyb3JfcmVxdWVzdF9zdGF0dXMnXSA9ICdUaGUgQUpBWCByZXF1ZXN0IGhhcyBiZWVuIHN1Y2Nlc2Z1bGx5IHNlbnQgYnV0IHRoZXJlIHdoZXJlIGVycm9ycy4gUmVxdWVzdCBTdGF0dXM6JzsKJGxhbmdbJ2Vycm9yX3htbGh0dHBfaW5zdGFuY2UnXSA9ICdDYW5ub3QgY3JlYXRlIFhNTEh0dHAgaW5zdGFuY2UhJzsKJGxhbmdbJ2Vycm9yX3NlbGVjdGVkYXJjaGl2ZW1haWxzJ10gPSAnTm8gbWFpbHMgc2VsZWN0ZWQuPGJyIC8+Tm8gbWFpbHMgZGVsZXRlZC48YnIgLz5UaGF0JiMwMzk7cyB0aGUgZGVhbC4nOwokbGFuZ1snZXJyb3Jfc2VsZWN0ZWR0bXBtYWlscyddID0gJ05vIHRlbXBvcmFyeSBtYWlscyBzZWxlY3RlZC48YnIgLz5ObyB0ZW1wb3JhcnkgbWFpbHMgZGVsZXRlZC48YnIgLz5UaGF0JiMwMzk7cyB0aGUgZGVhbC4nOwokbGFuZ1snZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJ10gPSAnSW5zdWZmaWNpZW50IHBhcmFtcy48YnIgLz5JbmNvcnJlY3Qgb3IgbWlzc2luZyB2YWx1ZSBvZiBwYXJhbSAlcyBpbiBtb2R1bGVzL0ZFVU1haWxlci9hY3Rpb24uJXMucGhwLic7CiRsYW5nWydlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXNfYWpheCddID0gJ09wZXJhdGlvbiBjYW5jZWxlZC4gSW5zdWZmaWNpZW50IHBhcmFtcy48YnIgLz5JbmNvcnJlY3Qgb3IgbWlzc2luZyB2YWx1ZSBvZiBwYXJhbSAlcyBpbiBtb2R1bGVzL0ZFVU1haWxlci9hY3Rpb24uJXMucGhwLic7CiRsYW5nWydlcnJvcl9ub3VzZXJzZm91bmQnXSA9ICdObyB1c2VycyBmb3VuZC4nOwokbGFuZ1snZXJyb3JfYWpheCddID0gJ0FuIGVycm9yIG9jY3VyZWQuXG5PcGVyYXRpb24gY2FuY2VsZWQuXG5QbGVhc2UgdHJ5IGFnYWluLlxuXG5TZXJ2ZXIgcmVzcG9uc2U6XG5cbic7CiRsYW5nWydlcnJvcl9kYl9kZWxldGVtYWlsJ10gPSAnTWFpbChzKSBjb3VsZCBub3QgYmUgZGVsZXRlZC4gVGhlIHF1ZXJ5IGNvdWxkIG5vdCBiZSBleGVjdXRlZDo8YnIgLz4lcyc7CiRsYW5nWydlcnJvcl9kYl9zYXZlbWFpbCddID0gJ01haWwgY291bGQgbm90IGJlIHN0b3JlZC4gVGhlIHF1ZXJ5IGNvdWxkIG5vdCBiZSBleGVjdXRlZDo8YnIgLz4lcyc7CiRsYW5nWydlcnJvcl9kYl9zYXZlbWFpbF9hamF4J10gPSAnTWFpbCBjb3VsZCBub3QgYmUgc3RvcmVkLic7CiRsYW5nWydlcnJvcl9kYl9nZXRfdG1wbWFpbCddID0gJ0NvdWxkIG5vdCBnZXQgdGVtcG9yYXJ5IG1haWwgd2l0aCBpZCAlcy4gVGhlIHF1ZXJ5IGNvdWxkIG5vdCBiZSBleGVjdXRlZCBvciByZXR1cm5lZCBhbiBlbXB0eSByZXN1bHQuPGJyIC8+UXVlcnk6PGJyIC8+JXMnOwokbGFuZ1snZXJyb3JfZGJfZ2V0X3RtcG1haWxfYWpheCddID0gJ09wZXJhdGlvbiBjYW5jZWxlZC4gQ291bGQgbm90IGdldCB0ZW1wb3JhcnkgbWFpbCB3aXRoIGlkICVzLic7CiRsYW5nWydlcnJvcl9kYl9nZXRfYXJjaGl2ZW1haWwnXSA9ICdDb3VsZCBub3QgZ2V0IGFyY2hpdmUgbWFpbC4gVGhlIHF1ZXJ5IGNvdWxkIG5vdCBiZSBleGVjdXRlZCBvciByZXR1cm5lZCBhbiBlbXB0eSByZXN1bHQuPGJyIC8+UXVlcnk6PGJyIC8+JXMnOwokbGFuZ1snZXJyb3JfZGJfY3JlYXRlX3RtcG1haWwnXSA9ICdPcGVyYXRpb24gY2FuY2VsZWQuIENvdWxkIG5vdCBjcmVhdGUgdGVtcCBtYWlsLjxiciAvPlRoZSBxdWVyeSBjb3VsZCBub3QgYmUgZXhlY3V0ZWQ6PGJyIC8+JXMnOwokbGFuZ1snZXJyb3JfZGJfYXV0b2NsZWFybG9nJ10gPSAnQ291bGQgbm90IGRlbGV0ZSBsb2cocykgb2YgZGVsZXRlZCBtYWlsKHMpLiBUaGUgcXVlcnkgY291bGQgbm90IGJlIGV4ZWN1dGVkOjxiciAvPiVzJzsKJGxhbmdbJ2Vycm9yX2RiX3VwZGF0ZV90bXBtYWlsJ10gPSAnT3BlcmF0aW9uIGNhbmNlbGVkLiBDb3VsZCBub3QgdXBkYXRlIHRlbXBvcmFyeSBtYWlsLiBUaGUgcXVlcnkgY291bGQgbm90IGJlIGV4ZWN1dGVkOjxiciAvPiVzJzsKJGxhbmdbJ2Vycm9yX2RiX3VwZGF0ZV90bXBtYWlsX2FqYXgnXSA9ICdPcGVyYXRpb24gY2FuY2VsZWQuIENvdWxkIG5vdCB1cGRhdGUgdGVtcG9yYXJ5IG1haWwuJzsKJGxhbmdbJ2Vycm9yX2RiX2NyZWF0ZV9sb2cnXSA9ICdDb3VsZCBub3QgY3JlYXRlIGxvZyBlbnRyeShzKS4nOwokbGFuZ1snZXJyb3JfZGJfdXBkYXRlX2FyY2hpdmUnXSA9ICdDb3VsZCBub3QgdXBkYXRlIGFyY2hpdmUgbWFpbC4gVGlzIG1heSByZXN1bHQgaW4gZGlzcGxheWluZyBpbmNvcnJlY3QgbnVtYmVyIG9mIHJlY2lwaWVudHMgYW5kL29yIHByb2Nlc3NlZCB1c2Vycy4nOwokbGFuZ1snZXJyb3JfZGJfZGVsZXRlX3RtcCddID0gJ0NvdWxkIG5vdCBkZWxldGUgdGVtcCBtYWlsLiBZb3UgbmVlZCB0byBkZWxldGUgdGVtcCBtYWlsIG1hbnVhbGx5Lic7CiRsYW5nWydlcnJvcl9kYl91cGRhdGVfbG9nJ10gPSAnQ291bGQgbm90IHVwZGF0ZSBsb2cgZW50cnkocykuIFRoaXMgbWF5IHJlc3VsdCBpbiBkaXNwbGF5aW5nIGluY29ycmVjdCBzZW5kIHN0YXR1cy4nOwokbGFuZ1snYWRtaW5wYW5lbCddID0gJ0FkbWlucGFuZWwnOwokbGFuZ1snc2VuZG1haWwnXSA9ICdTZW5kIG1haWwuLi4nOwokbGFuZ1snZW1haWxhZGRyZXNzJ10gPSAnRW1haWxhZGRyZXNzJzsKJGxhbmdbJ25vbWFpbHMnXSA9ICdObyBzZW50IG1haWxzIGluIHlvdXIgbWFpbHMgYXJjaGl2ZS4nOwokbGFuZ1snbm90ZW1wbWFpbHMnXSA9ICdObyB0ZW1wb3JhcnkgbWFpbHMgZm91bmQuJzsKJGxhbmdbJ2FyY2hpdmUnXSA9ICdBcmNoaXZlIG1haWxzJzsKJGxhbmdbJ25ld21haWwnXSA9ICdTZW5kIGEgbmV3IG1haWwnOwokbGFuZ1sndGVtcCddID0gJ1RlbXBvcmFyeSBtYWlscyc7CiRsYW5nWydwcmVmJ10gPSAnUHJlZmVyZW5jZXMnOwokbGFuZ1sncHJlZnNfdXBkYXRlZCddID0gJ1ByZWZlcmVuY2VzIHVwZGF0ZWQuJzsKJGxhbmdbJ3VzZXJzJ10gPSAnVXNlcnMnOwokbGFuZ1sncmVxdWVzdF9kZWxheSddID0gJ0FKQVggcmVxdWVzdCBkZWxheSc7CiRsYW5nWydncm91cHMnXSA9ICdVc2VyZ3JvdXBzJzsKJGxhbmdbJ3N1YmplY3QnXSA9ICdTdWJqZWN0JzsKJGxhbmdbJ2RhdGUnXSA9ICdTZW5kIGRhdGUnOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ1JlY2lwaWVudHMnOwokbGFuZ1sncmVhZCddID0gJ1JlYWQnOwokbGFuZ1sncmVhZG1haWwnXSA9ICdSZWFkIG1haWwnOwokbGFuZ1snZWRpdCddID0gJ0VkaXQnOwokbGFuZ1sncmVzZW5kJ10gPSAnUmVzZW5kJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0RlbGV0ZSc7CiRsYW5nWydzYXZlX2xvZ3MnXSA9ICdTYXZlIGxvZ3MnOwokbGFuZ1snc2F2ZV9lcnJvcmxvZ3Nfb25seSddID0gJ1NhdmUgZXJyb3Jsb2dzIG9ubHknOwokbGFuZ1snbG9naWQnXSA9ICdMb2cgSUQnOwokbGFuZ1snc3RhdHVzJ10gPSAnU3RhdHVzJzsKJGxhbmdbJ3JlY2lldmVkJ10gPSAnUmVjaWV2ZWQnOwokbGFuZ1snbm9lbWFpbGFkZHJlc3Nmb3VuZCddID0gJ05vIGVtYWlsIGFkZHJlc3MgZm91bmQnOwokbGFuZ1snaW52YWxpZGVtYWlsYWRkcmVzcyddID0gJ0ludmFsaWQgZW1haWwgYWRkcmVzcyc7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0ZXInOwokbGFuZ1snYXNjJ10gPSAnYXNjZW5kaW5nJzsKJGxhbmdbJ2Rlc2MnXSA9ICdkZXNjZW5kaW5nJzsKJGxhbmdbJ3NvcnRieSddID0gJ1NvcnQgYnknOwokbGFuZ1snc29ydCddID0gJ3NvcnQnOwokbGFuZ1snbGltaXQnXSA9ICdMaW1pdCc7CiRsYW5nWydwYWdlcyddID0gJ1BhZ2VzJzsKJGxhbmdbJ2Vycm9yc29ubHknXSA9ICdTaG93IGVycm9ycyBvbmx5JzsKJGxhbmdbJ3NhdmVkZWZhdWx0J10gPSAnU2F2ZSBmaWx0ZXInOwokbGFuZ1snc2VuZF9vcmRlciddID0gJ1NlbmQgb3JkZXInOwokbGFuZ1snc29ydG9yZGVyJ10gPSAnU29ydCBvcmRlcic7CiRsYW5nWydzZW5kX2RhdGUnXSA9ICdTZW5kIGRhdGUnOwokbGFuZ1sndXNlcm5hbWUnXSA9ICdVc2VybmFtZSc7CiRsYW5nWydub2xpbWl0J10gPSAnbm8gbGltaXQnOwokbGFuZ1snYXV0b3NhdmUnXSA9ICdBdXRvbWF0aWNhbGx5IHNhdmUgc2VudCBtZXNzYWdlcyc7CiRsYW5nWydhdXRvY2xlYXJfYXJjaGl2ZW1haWxzJ10gPSAnQXV0b21hdGljYWxseSBkZWxldGUgb2xkIG1haWxzJzsKJGxhbmdbJ2F1dG9jbGVhcl9hY3Rpb24nXSA9ICdEZWxldGUgbWFpbHMgdGhhdCBhcmUgb2xkZXIgdGhhbic7CiRsYW5nWydzZWNvbmRzJ10gPSAnc2Vjb25kcyc7CiRsYW5nWydtaW51dGVzJ10gPSAnbWludXRlcyc7CiRsYW5nWydob3VycyddID0gJ2hvdXJzJzsKJGxhbmdbJ2RheXMnXSA9ICdkYXlzJzsKJGxhbmdbJ3dlZWtzJ10gPSAnd2Vla3MnOwokbGFuZ1snbW9udGhzJ10gPSAnbW9udGhzJzsKJGxhbmdbJ3llYXJzJ10gPSAneWVhcnMnOwokbGFuZ1snYXV0b2NsZWFyX3RtcG1haWxzJ10gPSAnaW5jbHVkZSB0ZW1wb3JhcnkgbWFpbHMnOwokbGFuZ1snZGVmYXVsdF9ncm91cHMnXSA9ICdEZWZhdWx0IHJlY2lwaWVudCBncm91cHMnOwokbGFuZ1snaXNfaHRtbCddID0gJ1NlbmQgbWFpbCBhcyBIVE1MIHRleHQnOwokbGFuZ1snc3VibWl0J10gPSAnU3VibWl0JzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbCc7CiRsYW5nWydtZXNzYWdlJ10gPSAnTWVzc2FnZSc7CiRsYW5nWydzYXZlJ10gPSAnU2F2ZSBzZW50IG1lc3NhZ2UnOwokbGFuZ1snbWF4bWFpbHMnXSA9ICdNYXguIG51bWJlciBvZiBlbWFpbHMgcGVyIGpvYic7CiRsYW5nWydub3N1YmplY3QnXSA9ICdObyBzdWJqZWN0JzsKJGxhbmdbJ2xvZ3MnXSA9ICdMb2dzJzsKJGxhbmdbJ3RtcG1haWxkZWxldGVkJ10gPSAnVGVtcG9yYXJ5IG1haWwocykgZGVsZXRldGQnOwokbGFuZ1snYXJjaGl2ZW1haWxkZWxldGVkJ10gPSAnTWFpbChzKSBkZWxldGVkJzsKJGxhbmdbJ3Rhc2tfZmluaXNoZWQnXSA9ICdUaGlzIHRhc2sgaXMgZmluaXNoZWQnOwokbGFuZ1sndGFza19vcGVuJ10gPSAnVGhpcyB0YXNrIGlzIG5vdCBmaW5pc2hlZCEnOwokbGFuZ1snbWFpbHNfc2VudCddID0gJ0FsbCBtYWlscyBzdWNjZXNmdWxseSBzZW50JzsKJGxhbmdbJ29rJ10gPSAnT2snOwokbGFuZ1snYmFjayddID0gJ0JhY2snOwokbGFuZ1snb2YnXSA9ICdvZic7CiRsYW5nWyd3YWl0J10gPSAnUGxlYXNlIHdhaXQuLi4nOwokbGFuZ1snc2VuZGluZyddID0gJ1NlbmRpbmcgbWFpbCc7CiRsYW5nWydkZWxldGVzZWxlY3RlZCddID0gJ0RlbGV0ZSBzZWxlY3RlZCBtYWlscyc7CiRsYW5nWydkZWxldGVzZWxlY3RlZGxvZyddID0gJ0RlbGV0ZSBzZWxlY3RlZCBsb2dzJzsKJGxhbmdbJ3RvdGFsbG9ncyddID0gJ1RvdGFsIGVudHJ5cyc7CiRsYW5nWydlcnJvcmxvZ3MnXSA9ICdFcnJvcnMnOwokbGFuZ1snbG9nX2RlbGV0ZWQnXSA9ICdMb2cgZW50cnkocykgZGVsZXRlZC4nOwokbGFuZ1snYXV0b2NsZWFyX2xvZ3MnXSA9ICdBdXRvbWF0aWNhbGx5IGRlbGV0ZSBsb2dzIG9mIG1haWxzIHRoYXQgd2lsbCBiZSBkZWxldGVkJzsKJGxhbmdbJ3ZpZXdfbG9ncyddID0gJ1ZpZXcgbG9ncyc7CiRsYW5nWyd2aWV3J10gPSAnRGV0YWlscyc7CiRsYW5nWydub2xvZ3MnXSA9ICdObyBsb2dzIGZvdW5kJzsKJGxhbmdbJ3Byb2Nlc3NlZHVzZXJzJ10gPSAnUHJvY2Vzc2VkIHVzZXJzJzsKJGxhbmdbJ3RvdGFsdXNlcnMnXSA9ICdUb3RhbCB1c2Vycyc7CiRsYW5nWydyZW1haW5pbmcnXSA9ICdSZW1haW5pbmcgdXNlcnMnOwokbGFuZ1snc2VudGJ5J10gPSAnU2VudCBieSc7CiRsYW5nWydyZXNlbmRfYWxsJ10gPSAnUmVzZW5kIHRvIGFsbCB1c2Vycyc7CiRsYW5nWydjb250aW51ZV9hcmNoaXZlJ10gPSAnUmVzZW5kIHRvIG5ldyB1c2VycyBvbmx5JzsKJGxhbmdbJ2NvbnRpbnVlX3RtcCddID0gJ0NvbnRpbnVlIGZyb20gbGFzdCBwcm9jZXNzZWQgdXNlcic7CiRsYW5nWydyZXNlbmRfZXJyb3JzJ10gPSAnUmVzZW5kIGVycm9ycyBvbmx5JzsKJGxhbmdbJ3Jlc2VuZF91c2VyJ10gPSAnUmVzZW5kIHRvIHRoaXMgdXNlcic7CiRsYW5nWydyZXNlbmRfc2VsZWN0ZWQnXSA9ICdSZXNlbmQgc2VsZWN0ZWQnOwokbGFuZ1sncmFuZG9tX2RlbGF5J10gPSAnVXNlIHJhbmRvbSBkZWxheSc7CiRsYW5nWydncm91cHNfY2hhbmdlZCddID0gJ1lvdSBoYXZlIGNoYW5nZWQgdGhlIHJlY2lwaWVudCBncm91cHMuXG5EbyB5b3UgcmVhbGx5IHlvdSB3YW50IHRvIGNvbnRpbnVlPyc7CiRsYW5nWydkZWxldGVjb25maXJtJ10gPSAnRG8geW91IHJlYWx5IHdhbnQgdG8gZGVsZXRlIHRoZSBzZWxlY3RlZCBtYWlscz8nOwokbGFuZ1snZGVsZXRlYXJjaGl2ZWNvbmZpcm0nXSA9ICdEbyB5b3UgcmVhbHkgd2FudCB0byBkZWxldGUgdGhpcyBtYWlsPyc7CiRsYW5nWydkZWxldGV0ZW1wY29uZmlybSddID0gJ0RvIHlvdSByZWFseSB3YW50IHRvIGRlbGV0ZSB0aGlzIHRlbXBvcmFyeSBtYWlsPyc7CiRsYW5nWydkZWxldGVsb2djb25maXJtJ10gPSAnRG8geW91IHJlYWx5IHdhbnQgdG8gZGVsZXRlIHRoZSBzZWxlY3RlZCBsb2dzPyc7CiRsYW5nWydzdWJtaXRjb25maXJtJ10gPSAnRG8geW91IHJlYWxseSB3YW50IHRvIHNlbmQgdGhpcyBtYWlsIHRvIGFsbCB1c2VycyBvZiB0aGUgc2VsZWN0ZWQgZ3JvdXAocyk/JzsKJGxhbmdbJ3Jlc2VuZHNlbGVjdGVkY29uZmlybSddID0gJ0RvIHlvdSByZWFsbHkgd2FudCB0byBzZW5kIHRoaXMgbWFpbCBBR0FJTiB0byB0aGUgc2VsZWN0ZWQgdXNlcnM/JzsKJGxhbmdbJ3Jlc2VuZGFsbHRtcGNvbmZpcm0nXSA9ICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gc2VuZCB0aGlzIHRlbXBvcmFyeSBtYWlsIEFHQUlOIHRvIGFsbCB1c2VycyBvZiB0aGUgc2VsZWN0ZWQgZ3JvdXAocyk/JzsKJGxhbmdbJ3Jlc2VuZG5ld3RtcGNvbmZpcm0nXSA9ICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gc2VuZCB0aGlzIHRlbXBvcmFyeSBtYWlsIHRvIGFsbCB1c2VycyBvZiB0aGUgc2VsZWN0ZWQgZ3JvdXAocykgY29uaW51ZWluZyBmcm9tIHRoZSBsYXN0IHByb2Nlc3NlZCB1c2VyPyc7CiRsYW5nWydyZXNlbmRlcnJvcnRtcGNvbmZpcm0nXSA9ICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gc2VuZCB0aGlzIHRlbXBvcmFyeSBtYWlsIHRvIGFsbCB1c2VycyBvZiB0aGUgc2VsZWN0ZWQgZ3JvdXAocykgd2hvIHdoZXJlIGFscmVhZHkgcHJvY2Vzc2VkIGJ1dCBkaWQgbm90IGhhdmUgYW4gZW1haWwgYWRkcmVzcyBsYXN0IHRpbWU/JzsKJGxhbmdbJ3Jlc2VuZGFsbGFyY2hpdmVjb25maXJtJ10gPSAnRG8geW91IHJlYWxseSB3YW50IHRvIHNlbmQgdGhpcyBtYWlsIEFHQUlOIHRvIGFsbCB1c2VycyBvZiB0aGUgc2VsZWN0ZWQgZ3JvdXAocyk/JzsKJGxhbmdbJ3Jlc2VuZG5ld2FyY2hpdmVjb25maXJtJ10gPSAnRG8geW91IHJlYWxseSB3YW50IHRvIHNlbmQgdGhpcyBtYWlsIHRvIGFsbCBORVcgdXNlcnMgb2YgdGhlIHNlbGVjdGVkIGdyb3VwKHMpP1xuKGNvbmludWVpbmcgZnJvbSB0aGUgbGFzdCBwcm9jZXNzZWQgdXNlciknOwokbGFuZ1sncmVzZW5kZXJyb3JhcmNoaXZlY29uZmlybSddID0gJ0RvIHlvdSByZWFsbHkgd2FudCB0byBzZW5kIHRoaXMgbWFpbCB0byBhbGwgdXNlcnMgb2YgdGhlIHNlbGVjdGVkIGdyb3VwKHMpIHdobyB3aGVyZSBhbHJlYWR5IHByb2Nlc3NlZCBidXQgZGlkIG5vdCBoYXZlIGFuIGVtYWlsIGFkZHJlc3MgbGFzdCB0aW1lPyc7CiRsYW5nWydyZXNlbmR1c2VyY29uZmlybV8xJ10gPSAnRG8geW91IHJlYWxseSB3YW50IHRvIHNlbmQgdGhpcyBtYWlsIEFHQUlOIHRvIHRoaXMgdXNlcj9cblVzZXJuYW1lIC8gRW1haWw6ICVzJzsKJGxhbmdbJ3Jlc2VuZHVzZXJjb25maXJtXzInXSA9ICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gc2VuZCB0aGlzIG1haWwgQUdBSU4gdG8gdGhpcyB1c2VyP1xuVXNlcm5hbWU6ICVzXG5FbWFpbDogJXMnOwokbGFuZ1snc3VibWl0Y29uZmlybV9mdWxsJ10gPSAnRG8geW91IHJlYWxseSB3YW50IHRvIHNlbmQgdGhpcyBtYWlsIHRvIGFsbCB1c2VycyBvZiB0aGUgc2VsZWN0ZWQgZ3JvdXAocyk/XG5cbkdyb3VwczpcbiVzXG5cblVzZXJzOlxuJXMnOwokbGFuZ1sncmVzZW5kYWxsdG1wY29uZmlybV9mdWxsJ10gPSAnRG8geW91IHJlYWxseSB3YW50IHRvIHNlbmQgdGhpcyB0ZW1wb3JhcnkgbWFpbCBBR0FJTiB0byBhbGwgdXNlcnMgb2YgdGhlIHNlbGVjdGVkIGdyb3VwKHMpPyBcblxuR3JvdXBzOlxuJXNcblxuVXNlcnM6XG4lcyc7CiRsYW5nWydyZXNlbmRuZXd0bXBjb25maXJtX2Z1bGwnXSA9ICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gc2VuZCB0aGlzIHRlbXBvcmFyeSBtYWlsIHRvIGFsbCB1c2VycyBvZiB0aGUgc2VsZWN0ZWQgZ3JvdXAocykgY29uaW51ZWluZyBmcm9tIHRoZSBsYXN0IHByb2Nlc3NlZCB1c2VyP1xuXG5Hcm91cHM6XG4lc1xuXG5Ub3RhbCB1c2VyczpcbiVzXG5cblByb2Nlc3NlZCB1c2VyczogJXNcblxuUmVjaXBpZW50czogJXNcblxuUmVtYWluaW5nIHVzZXJzOlxuJXMnOwokbGFuZ1sncmVzZW5kZXJyb3J0bXBjb25maXJtX2Z1bGwnXSA9ICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gc2VuZCB0aGlzIHRlbXBvcmFyeSBtYWlsIHRvIGFsbCB1c2VycyBvZiB0aGUgc2VsZWN0ZWQgZ3JvdXAocykgd2hvIHdoZXJlIGFscmVhZHkgcHJvY2Vzc2VkIGJ1dCBkaWQgbm90IGhhdmUgYW4gZW1haWwgYWRkcmVzcyBsYXN0IHRpbWU/XG5cbkdyb3VwczpcbiVzXG5cblRvdGFsIHVzZXJzOlxuJXNcblxuUHJvY2Vzc2VkIHVzZXJzOlxuJXNcblxuUmVjaXBpZW50czpcbiVzXG5cblJlbWFpbmluZyB1c2VyczpcbiVzJzsKJGxhbmdbJ3Jlc2VuZGFsbGFyY2hpdmVjb25maXJtX2Z1bGwnXSA9ICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gc2VuZCB0aGlzIG1haWwgQUdBSU4gdG8gYWxsIHVzZXJzIG9mIHRoZSBzZWxlY3RlZCBncm91cChzKT9cblxuR3JvdXBzOlxuJXNcblxuVXNlcnM6XG4lcyc7CiRsYW5nWydyZXNlbmRuZXdhcmNoaXZlY29uZmlybV9mdWxsJ10gPSAnRG8geW91IHJlYWxseSB3YW50IHRvIHNlbmQgdGhpcyBtYWlsIHRvIGFsbCBORVcgdXNlcnMgb2YgdGhlIHNlbGVjdGVkIGdyb3VwKHMpP1xuKGNvbmludWVpbmcgZnJvbSB0aGUgbGFzdCBwcm9jZXNzZWQgdXNlcilcblxuR3JvdXBzOlxuJXNcblxuVG90YWwgdXNlcnM6XG4lc1xuXG5Qcm9jZXNzZWQgdXNlcnM6XG4lc1xuXG5SZWNpcGllbnRzOlxuJXNcblxuUmVtYWluaW5nIHVzZXJzOlxuJXMnOwokbGFuZ1sncmVzZW5kZXJyb3JhcmNoaXZlY29uZmlybV9mdWxsJ10gPSAnRG8geW91IHJlYWxseSB3YW50IHRvIHNlbmQgdGhpcyBtYWlsIHRvIGFsbCB1c2VycyBvZiB0aGUgc2VsZWN0ZWQgZ3JvdXAocykgd2hvIHdoZXJlIGFscmVhZHkgcHJvY2Vzc2VkIGJ1dCBkaWQgaGF2ZSBubyBvciBhbiBpbnZhbGlkIGVtYWlsIGFkZHJlc3MgbGFzdCB0aW1lP1xuXG5Hcm91cHM6XG4lc1xuXG5Ub3RhbCB1c2VyczpcbiVzXG5cblByb2Nlc3NlZCB1c2VyczpcbiVzXG5cblJlY2lwaWVudHM6XG4lc1xuXG5SZW1haW5pbmcgdXNlcnM6XG4lcyc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyODEyMDQwMTQuMzExMi43MS51dG1jc3I9Zm9ydW0uY21zbWFkZXNpbXBsZS5vcmd8dXRtY2NuPShyZWZlcnJhbCl8dXRtY21kPXJlZmVycmFsfHV0bWNjdD0vaW5kZXgucGhwJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTc5MDUyNjIzMDg0MTEwMTAwLjEyMTA0MjM1NzcuMTI4MTQ3NTUwMy4xMjgxNTU2Nzg0LjMxMjknOwokbGFuZ1sncWNhJ10gPSAnMTIxMDk3MTY5MC0yNzMwODA3My04MTk1MjgzMic7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMuNi4xMC4xMjgxNTU2Nzg0JzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zyb250ZW5kVXNlcnMgTWFpbGVyIE1vZHVsZSAnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdGcm9udGVuZFVzZXJzIE1haWxlciBNb2R1bGUgaW5zdGFsbGVkLjxiciAvPkJlIHN1cmUgdG8gc2V0ICZxdW90O1VzZSBGRVVNYWlsZXJzJnF1b3Q7IHBlcm1pc3Npb25zIHRvIHVzZSB0aGlzIG1vZHVsZSEnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0Zyb250ZW5kVXNlcnMgTWFpbGVyIE1vZHVsZSBpcyBnZWRlJml1bWw7bnN0YWxsZWVyZC4nOwokbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddID0gJ1dlZXQgdSB6ZWtlciBkYXQgdSBkZXplIG1vZHVsZSB3aWx0IHZlcndpamRlcmVuPyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSBnZWRlJml1bWw7bnN0YWxsZWVyZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpZSAlcyBnZWRlJml1bWw7bnN0YWxsZWVyZC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgYmlqZ2V3ZXJrdCBuYWFyIHZlcnNpZSAlcy4nOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdEZXplIG1vZHVsZSB6b3JndCB2b29yIGVlbiBzaW1wZWxlIG1haWxmdW5jdGllIG9tIHpvIGUtbWFpbHMgdGUgdmVyemVuZGVuIG5hYXIgdmVyc2NoaWxsZW5kZSBncm9lcGVuIHZhbiBkZSBGcm9udEVuZFVzZXJzLW1vZHVsZS4nOwokbGFuZ1snY2Fubm90Y29udGludWUnXSA9ICdHZWVuIGdlYXJjaGl2ZWVyZGUgbWFpbCBnZXZvbmRlbi4gS2FuIGRlemUgdGFhayBuaWV0IHVpdHZvZXJlbiBvZiBoZXJoYWxlbi4nOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPGJyIC8+DQo8dWw+DQoJPGxpPg0KCQk8cD48c3Ryb25nPlZlcnNpb24gMC45LjMgKEp1bmUgMjAxMCk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+LSBmaXJzdCBzdGFibGUgcmVsZWFzZTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgJnF1b3Q7d2ViIGJ1ZyZxdW90OyB0byB0cmFjayBiYWNrIGlmIG1haWwgaGFzIGJlZW4gcmVhZCAob25seSB3b3JrcyBpZiBtYWlsIGlzIHNlbnQgYXMgaHRtbCk8L3A+PC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT4NCgkJPHA+PHN0cm9uZz5WZXJzaW9uIDAuOS4yLkJFVEEgKE1heSAyMDA5KTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD5zZXZlcmFsIG1pbm9yIGJ1Z2ZpeGVzPC9wPjwvbGk+DQoJCQk8bGk+PHA+bW92ZWQgYWxsIGRiIHF1ZXJyaWVzIGludG8gRkVVTWFpbGVyLm1vZHVsZS5waHAgYXMgc2VwYXJhdGUgZnVuY3Rpb25zPC9wPjwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8bGk+DQoJCTxwPjxzdHJvbmc+VmVyc2lvbiAwLjkuMSAoQXByaWwgMjAwOSk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+c2V2ZXJhbCBtaW5vciBidWdmaXhlczwvcD48L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPg0KCQk8cD48c3Ryb25nPlZlcnNpb24gMC45IChNYXJjaCAyMDA5KTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD5pbXByb3ZlZCBjb21wYXRpYmxpdHkgZm9yIENNU21zIDEuNS54PC9wPjwvbGk+DQoJCQk8bGk+PHA+YWRkZWQgb3duIG1vZHVsZSBpY29uPC9wPjwvbGk+DQoJCQk8bGk+PHA+ZW5sYXJnZWQgbW9kdWxlIGljb25zPC9wPjwvbGk+DQoJCQk8bGk+DQoJCQkJPHA+DQoJCQkJCUFkZGVkIGZ1bnRpb24gdG8gc2F2ZSBsb2cgZGF0YSBvZiBzZW50IG1haWxzLjxiciAvPg0KCQkJCQlXaXRoIHRoYXQgb3B0aW9uIHlvdSBjYW4gcmVzZW5kIG1haWxzIHRvIHVzZXJzIHRoYXQgZGlkIG5vdCBoYXZlIGVudGVyZWQgYSB2YWxpZCBlbWFpbCBhZGRyZXNzIHdoZW4gc2VuZGluZyBhIG1haWwgbGFzdCB0aW1lLg0KCQkJCTwvcD4NCgkJCTwvbGk+DQoJCQk8bGk+PHA+U2F2ZWQgbWVzc2FnZXMgZGlzcGxheXMgYW1vdW50IG9mIHJlY2lwaWVudHMsIHByb2Nlc3NlZCB1c2VycyBhbmQgdG90YWwgdXNlcnMgb2YgdGhlIHNlbGVjdGVkIGdyb3VwczwvcD48L2xpPg0KCQkJPGxpPjxwPkFkZGVkIGNvbmZpcm0gbWVzc2FnZXMgYmVmb3JlIGFjdHVhbGx5IHNlbmRpbmcgYSBtYWlsLjxiciAvPihjb25maXJtIG1lc3NhZ2Ugc2hvd3MgYW1vdW50IG9mIHRvdGFsIHVzZXJzLCBwcm9jZXNzZWQgdXNlcnMsIHJlY2lwaWVudHMgYW5kIHJlbWFpbmluZyB1c2Vycyk8L3A+PC9saT4NCgkJCTxsaT48cD5SZW1vdmVkIGZ1bmN0aW9uIHRvIHJlc2VuZCB0ZW1wb3JhcnkgbWFpbHMgdG8gYWxsIHVzZXJzIG9mIHNlbGVjdGVkIGdyb3VwczwvcD48L2xpPg0KCQkJPGxpPjxwPlJlbW92ZWQgZnVuY3Rpb24gdG8gZWRpdCB0ZW1wb3JhcnkgbWFpbHM8YnIgLz4oam9icyBjYW5ub3QgYmUgY2hhbmdlZCBhbnltb3JlIGJ1dCBqdXN0IGNvbnRpbnVlZCk8L3A+PC9saT4NCgkJCTxsaT48cD5TZXZlcmFsIHRyaXZpYWwgYnVnZml4ZXM8L3A+PC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT48cD48c3Ryb25nPlZlcnNpb24gMC44IChKdWx5IDIwMDgsIGluaXRpYWwgcmVsZWFzZSk8L3N0cm9uZz48cD48L2xpPg0KPHVsPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGlzIGlzIGEgdmVyeSBzaW1wbGUgJnF1b3Q7ZW1haWwgbW9kdWxlJnF1b3Q7LjxiciAvPg0KSXQgcHJvdmlkZXMgYmFja2VuZCB1c2VycyBhYmlsaXR5IHRvIHNlbmQgZW1haWxzIHRvIHNldmVyYWwgZ3JvdXBzIG9mIHRoZSBGcm9udGVuZFVzZXJzIG1vZHVsZS48YnIgLz4NCllvdSBjYW4gdXNlIHNtYXJ0eSBzeW50YXggaW4gdGhlIG1lc3NhZ2UgdGV4dCB0byBpbnNlcnQgZS5nLiB1c2VyIHByb3BlcnRpZXMsIGxpbmtzIGV0Yy4gaW4gdGhlIG1haWwuPGJyIC8+DQpTZW50IG1haWxzIGNhbiBiZSBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlLjxiciAvPg0KPGJyIC8+DQpTZW5kaW5nIG1haWxzIGFyZSBzdG9yZWQgdGVtcG9yYXJ5IGluIHRoZSBkYXRhYmFzZSBhbmQgZHVyaW5nIHNlbmRpbmcgcHJvY2VzcyA8YnIgLz4NCmNvbnRpbm91c2x5IHVwZGF0ZWQgd2l0aCB0aGUgY3VycmVudGx5IHByb2Nlc3NlZCB1c2VycyBpZC4gPGJyIC8+DQpTbyBpZiB0aGVyZSBpcyBhIHNlcnZlciB0aW1lb3V0IHRoZSBtb2R1bGUgY2FuIHJlc2VuZCB0aGUgZW1haWxzIGNvbnRpbnVlaW5nIDxiciAvPg0KZnJvbSB0aGUgbGFzdCB1c2VyIHRoZSBtYWlsIHdhcyBzZW50IHRvLjxiciAvPjxiciAvPg0KVG8gcHJldmVudCBhIHNlcnZlciB0aW1lb3V0IG1haWxzIHdpbGwgYmUgc2VudCBpbiAmcXVvdDtqb2JzJnF1b3Q7IHVzaW5nIGFuIEFKQVggcmVxdWVzdC48YnIgLz4NCjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3Qgc3VwcG9ydCBmdW5jdGlvbnMgZm9yIHRoZSBmcm9udGVuZC48L3A+DQo8cD5BZnRlciBpbnN0YWxsYXRpb24gZ28gdG8gJnF1b3Q7VXNlcnMgJmFtcDsgR3JvdXBzLT5Gcm9udGVuZFVzZXJzIE1haWxlciBNb2R1bGUmcXVvdDsgaW4gdGhlIGJhY2tlbmQuPGJyIC8+DQpUbyBzZW5kIGEgbmV3IG1haWwganVzdCBzZWxlY3QgJnF1b3Q7U2VuZCBhIG5ldyBtYWlsJnF1b3Q7LjxiciAvPg0KU2VsZWN0IHRoZSBncm91cHMgb2YgdGhlIEZyb250ZW5kVXNlcnMgbW9kdWxlIHlvdSB3aXNoIHRvIHNlbmQgYW4gZW1haWwgdG8uPGJyIC8+DQpFbnRlciBhIHN1YmplY3QgKG9wdGlvbmFsKS48YnIgLz4NCkVudGVyIGEgbWVzc2FnZSB0ZXh0LjxiciAvPg0KU2VsZWN0ICZxdW90O1N1Ym1pdCZxdW90OyB0byBzZW5kIHRoZSBtYWlsLjxiciAvPjxiciAvPg0KVGhlIG1vZHVsZSBub3cgc2VuZHMgYW4gZW1haWwgdG8gYWxsIHVzZXJzIG9mIHRoZSBzcGVjaWZpZWQgZ3JvdXBzIHVzaW5nIHRoZSA8YnIgLz4NCkNNUyBNYWlsZXIgbW9kdWxlLg0KPC9wPg0KPHA+PHN0cm9uZz5TbWFydHkgc3ludGF4Ojwvc3Ryb25nPjxiciAvPg0KWW91IGNhbiB1c2UgZ2VuZXJhbCBzbWFydHkgc3R1ZmYgaW4gdGhlIGVtYWlsLjxiciAvPg0KQWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIGFyZTo8L3A+DQo8dWw+DQo8bGk+PHN0cm9uZz57JHVzZXJuYW1lfTogPC9zdHJvbmc+UHJpbnRzIG91dCB0aGUgdXNlcm5hbWUgb2YgdGhlIHVzZXIgdGhlIG1haWwgaXMgc2VudCB0by48L2xpPg0KPGxpPjxzdHJvbmc+eyR1c2VycHJvcHN9OiA8L3N0cm9uZz5JcyBhbiBhcnJheSBjb250YWluaW5nIGFsbCB1c2VycHJvcGVydGllcyBvZiB0aGUgdXNlciB0aGUgbWFpbCBpcyBzZW50IHRvLjwvbGk+DQo8L3VsPg0KPGJyIC8+DQpVc2luZyBhIHtmb3JlYWNofS1sb29wIHlvdSB3aWxsIGJlIGFibGUgdG8gYWNjZXNzIGFsbCB1c2VycHJvcGVydGllcy48YnIgLz48YnIgLz4NCkV4YW1wbGU6PGJyIC8+DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPGJyIC8+PGJyIC8+DQo8cHJlPg0KSGVsbG8geyR1c2VybmFtZX0sDQoNCkFyZSB0aGVzZSBlbnRyeXMgc3RpbGwgdXAgdG8gZGF0ZT8NCg0Ke2ZvcmVhY2ggZnJvbT0kdXNlcnByb3BzIGl0ZW09cHJvcH0NCnskcHJvcC5wcm9tcHR9OiB7JHByb3AuZGF0YX08YnIgLz4NCnsvZm9yZWFjaH0NCg0KSWYgbm90LCBzbyBwbGVhc2UgdXBkYXRlIHRoZW0uDQoNClJlZ2FyZHMsIHlvdXIgQWRtaW4uDQo8L3ByZT4NCjxiciAvPg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCjxiciAvPg0KPGJyIC8+DQp7JHByb3AuZGF0YX0gY29udGFpbnMgdGhlIGRhdGEgb2YgdGhhdCBmaWVsZC48YnIgLz4NCnskcHJvcC5wcm9tcHR9IGNvbnRhaW5zIHRoZSBwcm9tcHQgb2YgdGhhdCBmaWVsZC48YnIgLz4NCjxiciAvPjxiciAvPg0KVG8gYWNjZXNzIHVzZXJwcm9wZXJ0aWVzIGRpcmVjdGx5IHVzZSBkb3Qgc3ludGF4OjxiciAvPg0KPGJyIC8+DQpFeGFtcGxlOjxiciAvPg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCjxiciAvPjxiciAvPg0KPHByZT4NCkhlbGxvIHskdXNlcnByb3BzLmZpcnN0X25hbWUuZGF0YX0sDQoNCmkmIzAzOTt2ZSBqdXN0IHNwYW1tZWQgeW91ciBpbmJveCBhZ2FpbiA7UA0KPC9wcmU+DQo8YnIgLz4NCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo8YnIgLz48YnIgLz4NCnskdXNlcnByb3BzLkZJRUxETkFNRS5kYXRhfSBjb250YWlucyB0aGUgZGF0YSBvZiB0aGF0IGZpZWxkLjxiciAvPg0KeyR1c2VycHJvcHMuRklFTEROQU1FLnByb21wdH0gY29udGFpbnMgdGhlIHByb21wdCBvZiB0aGF0IGZpZWxkLjxiciAvPg0KPC9wPg0KPGgzPlNldHRpbmdzPC9oMz4NCjxwPkluIHRoZSBhZG1pbnBhbmVsIHlvdSBjYW4gc2V0dXAgdGhlIGZvbGxvd2luZyBvcHRpb25zOjwvcD4NCjx1bD4NCgk8bGk+DQoJCTxzdHJvbmc+QXV0b3NhdmU6PC9zdHJvbmc+DQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlVc2UgdGhpcyBvcHRpb24gdG8gc2F2ZSBzZW50IG1lc3NhZ2VzIGluIHlvdXIgbWVzc2FnZSBhcmNoaXZlLg0KCQkJPC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxiciA+DQoJPGxpPjxzdHJvbmc+U2F2ZSBsb2dzOjwvc3Ryb25nPg0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJVXNlIHRoaXMgb3B0aW9uIHRvIHNhdmUgbG9nIGRhdGEgb2YgZWFjaCBzZW50IG1haWwuPGJyIC8+PGJyIC8+DQoJCQkJPGVtPk5vdGljZTogdGhlIGFtb3VudCBvZiBsb2cgZGF0YSBkZXBlbmRzIG9uIHRoZSBhbW91bnQgb2YgeW91ciBmcm9udGVuZCB1c2Vycy48YnIgLz4NCgkJCQlJZiB5b3UgcmVhbGl6ZSBwcm9ibGVtcyB3aXRoIGxhcmdlIG51bWJlciBvZiB1c2VycywgZGlzYWJsZSB0aGlzIG9wdGlvbi48YnIgLz4gDQoJCQkJRGlzYWJsaW5nIHRoaXMgb3B0aW9uIHdpbGwgYWxzbyBkaXNhYmxlIHRoZSBhYmlsaXR5IHRvIHJlc2VuZCBhIHNhdmVkIG1haWwgdG8gdXNlcnMgPGJyIC8+DQoJCQkJdGhhdCBkaWQgbm90IGhhdmUgYW4gZW1haWwgYWRkcmVzcyB3aGVuIHNlbmRpbmcgdGhpcyBtYWlsIGxhc3QgdGltZS48L2VtPg0KCQkJCTxiciAvPjxiciAvPg0KCQkJCURlZmF1bHQgaXMgb24uDQoJCQk8L2xpPg0KCQkJPGJyIC8+DQoJCQk8bGk+PHN0cm9uZz5TYXZlIGVycm9ybG9ncyBvbmx5Ojwvc3Ryb25nPg0KCQkJCTx1bD4NCgkJCQkJPGxpPg0KCQkJCQkJVGhpcyB3aWxsIG9ubHkgc2F2ZSBsb2dzIHdoZXJlIGEgbWFpbCBjb3VsZCBub3QgYmUgc2VudC48YnIgLz4NCgkJCQkJCVRoaXMgbWF5IGhhcHBlbiB3aGVuIGEgdXNlciBkb2VzIG5vdCBoYXZlIGVudGVyZWQgYW4gZW1haWwgYWRkcmVzcyBpbiBoaXMgcHJvcGVydGllcy48YnIgLz4NCgkJCQkJCTxiciAvPg0KCQkJCQkJRGVmYXVsdCBpcyBvbi4NCgkJCQkJPC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxiciAvPg0KCTxsaT48c3Ryb25nPkF1dG9tYXRpY2FsbHkgZGVsZXRlIG9sZCBtYWlsczo8L3N0cm9uZz4NCgkJPHVsPg0KCQkJPGxpPg0KCQkJCVRoaXMgd2lsbCBhdXRvbWF0aWNhbGx5IGRlbGV0ZSBvbGQgbWFpbHMuDQoJCQkJPGJyIC8+PGJyIC8+DQoJCQkJRGVmYXVsdCBpcyBvbi48YnIgLz4NCgkJCQk8YnIgLz4NCgkJCQlTZWxlY3QgdGhlIGxpZmV0aW1lIG9mIGFyY2hpdmUgb3IgdGVtcG9yYXJ5IG1haWxzIHdpdGggdGhlIGRyb3Bkb3duIGlucHV0IGZpZWxkcy48YnIgLz48YnIgLz4NCgkJCQlEZWZhdWx0IGlzIDMgbW9udGhzLg0KCQkJPC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxiciAvPg0KCTxsaT48c3Ryb25nPkRlZmF1bHQgZ3JvdXAocyk6PC9zdHJvbmc+DQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlUaGlzIHdpbGwgYmUgdGhlIHByZXNlbGVjdGVkIGdyb3VwKHMpIHdoZW4gc2VuZGluZyBhIG5ldyBtYWlsLjxiciAvPg0KCQkJCTxiciAvPg0KCQkJCURlZmF1bHQgaXMgbm9uZS4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8YnIgLz4NCgk8bGk+PHN0cm9uZz5TZW5kIG1haWwgYXMgSFRNTCB0ZXh0Ojwvc3Ryb25nPg0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJSWYgeW91IHNlbGVjdCB0aGlzIG9wdGlvbiB5b3Ugd2lsbCBiZSBhYmxlIHRvIHVzZSB5b3VyIGluc3RhbGxlZCBXWVNJV1lHIGVkaXRvciB0byB3cml0ZSB0aGUgbWFpbC48YnIgLz4NCgkJCQk8YnIgLz4NCgkJCQlEZWZhdWx0IGlzIG9mZi4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8YnIgLz4NCgk8bGk+PHN0cm9uZz5NYXguIG51bWJlciBvZiBlbWFpbHMgcGVyIGpvYjo8L3N0cm9uZz4NCgkJPHVsPg0KCQkJPGxpPg0KCQkJCVRvIHByZXZlbnQgYSBzZXJ2ZXIgdGltZW91dCBtYWlscyB3aWxsIGJlIHNlbnQgaW4gJnF1b3Q7am9icyZxdW90OyB1c2luZyBhbiBBSkFYIHJlcXVlc3QuPGJyIC8+DQoJCQkJRW50ZXIgdGhlIGFtb3VudCBvZiB1c2VycyB0aGF0IHdpbGwgYmUgcHJvY2Vzc2VkIHBlciBqb2IuPGJyIC8+DQoJCQkJPGJyIC8+DQoJCQkJRGVmYXVsdCBpcyA1MA0KCQkJPC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxiciAvPg0KCTxsaT48c3Ryb25nPkFKQVggcmVxdWVzdCBkZWxheTo8L3N0cm9uZz4NCgkJPHVsPg0KCQkJPGxpPg0KCQkJCVNpbmNlIGlmIHlvdSBoYXZlIGEgbGFyZ2UgYW1vdW50IG9mIGZyb250ZW5kIHVzZXJzIGFuZCBhIHNtYWxsIGFtb3VudCBvZiB1c2VycyBwZXIgam9iPGJyIC8+DQoJCQkJeW91ciBicm93c2VyIHdpbGwgc2VudCBsb3RzIG9mIGlkZW50aWNhbCByZXF1ZXN0cyB0byB0aGUgc2VydmVyIGluIGEgdmVyeSBzaG9ydCB0aW1lLjxiciAvPg0KCQkJCVNvbWUgc2VjdXJpdHkgc29mdHdhcmUgcHJvYmFibHkgd2lsbCBpbnRlcnByZXQgdGhpcyBhcyBhbiBpbnRydXNpb24NCgkJCQlhbmQgYnJlYWsgeW91ciByZXF1ZXN0cyBvciBldmVuIGJsb2NrIHlvdXIgSVAgYWRkcmVzcy48YnIgLz4NCgkJCQk8YnIgLz4NCgkJCQlUbyBhdm9pZCB0aGlzIHlvdSBjYW4gZW50ZXIgYSBkZWxheSAoaW4gbWlsaXNlY29uZHMpIHRoZSBqYXZhc2NyaXB0IHdpbGwgd2FpdCB1bnRpbCBzZW5kaW5nIGEgbmV3IHJlcXVlc3QuPGJyIC8+DQoJCQkJPGJyIC8+DQoJCQkJRGVmYXVsdCBpcyBub25lLg0KCQkJPC9saT4NCgkJPC91bD4NCgk8L2xpPg0KPC91bD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCgk8bGk+VGhlIHByb2plY3RzIGhvbWVwYWdlIGlzIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZmV1bWFpbGVyLyI+aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9mZXVtYWlsZXIvPC9hPjwvbGk+DQoJPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPC91bD4NCjxiciAvPg0KPHA+UGxlYXNlIHJlcG9ydCBhbnkga2luZCBvZiBlcnJvcnMgYW5kIGZlZWwgZnJlZSB0byByZXBvcnQgYW55IGlkZWFzIHRvIGltcHJvdmUgdGhpcyBtb2R1bGUuPC9wPg0KPGgzPktub3duIGlzc3VlczwvaDM+DQo8cD5JZiB1c2VybmFtZSBpcyB1c2VkIGFzIGVtYWlsYWRkcmVzcyBvbmx5IHRoaXMgYWRkcmVzcyB3aWxsIGJlIHVzZWQuPC9wPg0KPHA+SWYgdXNlcm5hbWUgaXMgPHN0cm9uZz5ub3Q8L3N0cm9uZz4gdXNlZCBhcyBlbWFpbGFkZHJlc3MgdGhlIEZldU1haWxlciBNb2R1bGUgb25seSBzZWFyY2hlcyBmb3IgYSB1c2VyIHByb3BlcnR5IG9mIDxzdHJvbmc+dHlwZSAmcXVvdDtlbWFpbCZxdW90Ozwvc3Ryb25nPi48L3A+DQo8cD5JZiB0aGUgdXNlciBoYXMgZW50ZXJlZCBtb3JlIHRoYW4gb25lIGVtYWlsYWRkcmVzcyBvbmx5IHRoZSBmaXJzdCBmb3VuZCBlbWFpbGFkZHJlc3Mgd2lsbCBiZSB1c2VkLjwvcD4NCjxwPg0KCVdoZW4gdXNpbmcgcGljdHVyZXMgb3IgYW55IG90aGVyIGtpbmQgb2YgbWVkaWEgaXQgd2lsbCBub3QgYmUgYXR0YWNoZWQgdG8gdGhlIG1haWwgYnV0IGp1c3QgaW5zZXJ0ZWQgd2l0aCBhIGxpbmsgdG8gdGhhdCBtZWRpYS48YnIgLz4NCglUaGlzIGxpbmsgd2lsbCBiZSBpbnNlcnRlZCBhcyBhIHJlbGF0aXZlIG9uZSAoZS5nLiA8aW1nIHNyYz0mcXVvdDsvdXBsb2Fkcy9pbWFnZXMvYV90aW55X2ltYWdlLmpwZyZxdW90OyAvPikuPGJyIC8+DQoJRm9yIGEgcHJvcGVyIGxpbmsgeW91IG5lZWQgdG8gYWRhcHQgaXQgdG8gYW4gYWJzb2x1dGUgb25lIChlLmcuIDxpbWcgc3JjPSZxdW90O2h0dHA6Ly93d3cueW91ckRvbWFpbi91cGxvYWRzL2ltYWdlcy9hX3RpbnlfaW1hZ2UuanBnJnF1b3Q7IC8+KS4NCjwvcD4NCjxwPg0KCVNvbWUgU21hcnR5IHRhZ3MsIHBsdWdpbnMgb3IgbW9kdWxlcyB3b24mIzAzOTt0IHdvcmsgcHJvcGVybHkgaWYgdXNlZCBpbiBhIG1haWw8YnIgLz4NCgliZWNhdXNlIHRoZXkgbmVlZCBzb21lIGRhdGEgb2YgdGhlIHNlcnZlciByZXF1ZXN0IGluIHlvdXIgYnJvd3NlcnMgYWRkcmVzcyBiYXIuPGJyIC8+DQoJVGhpcyBkYXRhIGRvZXMgb25seSBleGlzdCB3aGVuIGFjY2Vzc2luZyB0aGUgcGFnZSB2aWEgZnJvbnRlbmQuPGJyID4NCglTaW5jZSB0aGUgbWFpbCB3aWxsIGJlIHByb2Nlc3NlZCBieSB0aGUgYmFja2VuZCB0aGlzIGRhdGEgd29uJiMwMzk7dCBiZSBhY2Nlc3NpYmxlLjxiciAvPg0KCVRoaXMgY2Fubm90IGJlIGNoYW5nZWQgdW5sZXNzIHlvdSBtb2RpZnkgdGhlIHBsdWdpbnMuDQo8L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPg0KCUFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLjxiciAvPg0KCVRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLDxiciAvPg0KCWJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mPGJyIC8+DQoJTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLjxiciAvPg0KCVNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy48YnIgLz4NCglZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZTxiciAvPg0KCWFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlPGJyIC8+DQoJRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0E8YnIgLz4NCglPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMPGJyIC8+DQoJUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuDQo8L3A+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIEdlb3JnIEJ1c2NoIChOYU4pIDxhIGhyZWY9Im1haWx0bzpnZW9yZy5idXNjaEBnbXgubmV0Ij48Z2VvcmcuYnVzY2hAZ214Lm5ldD48L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPg0KJzsKJGxhbmdbJ2Vycm9yJ10gPSAnRm91dCEnOwokbGFuZ1snZXJyb3JfdXBncmFkZSddID0gJ0VyIGlzIGdlZW4gdXBncmFkZSBiZXNjaGlrYmFhci4gPGJyIC8+VSBtb2V0IGRlIG1vZHVsZSBvcG5pZXV3IGluc3RhbGxlcmVuLic7CiRsYW5nWydlcnJvcl9wZXJtaXNzaW9ucyddID0gJ1RvZWdhbmcgZ2V3ZWlnZXJkLiBDb250cm9sZWVyIHV3IHJlY2h0ZW4uJzsKJGxhbmdbJ2Vycm9yX2ZldXNlcnMnXSA9ICdEZSBGcm9udEVuZFVzZXIgbW9kdWxlIGlzIG5pZXQgZ2V2b25kZW4uIE9tIGRlIEZyb250RW5kVXNlciBNYWlsZXIgbW9kdWxlIHRlIGdlYnJ1aWtlbiBtb2V0IHUgZGUgRnJvbnRFbmRVc2VyIG1vZHVsZSBpbnN0YWxsZXJlbi4nOwokbGFuZ1snZXJyb3JfY21zbWFpbGVyJ10gPSAnRGUgQ01TIE1haWxlciBtb2R1bGUgaXMgbmlldCBnZXZvbmRlbi4gT20gZGUgRnJvbnRFbmRVc2VyIE1haWxlciBtb2R1bGUgdGUgZ2VicnVpa2VuIG1vZXQgdSBkZSBDTVMgTWFpbGVyIG1vZHVsZSBpbnN0YWxsZXJlbi4nOwokbGFuZ1snZXJyb3JfdG1wbWFpbHMnXSA9ICdUaGVyZSBhcmUgdGVtcG9yYXJ5IGVtYWlscyBpbiB0aGUgZGF0YWJhc2UuPGJyIC8+VGVtcG9yYXJ5IGVtYWlscyBjb3VsZCBub3QgYmUgc2VudCB0byBhbGwgdXNlcnMgb2YgdGhlIHNlbGVjdGVkIGdyb3Vwcy48YnIgLz5Zb3UgY2FuIHRyeSB0byBzZW5kIHRoZSBlbWFpbCB0byBhbGwgdXNlcnMgdGhhdCBkaWQgbm90IHJlY2lldmUgdGhlIG1haWwgdXNpbmcgdGhlICZxdW90O3Jlc2VuZCZxdW90OyBidXR0b24uPGJyIC8+VGhlIG1vZHVsZSB3aWxsIHNlbmQgdGhlIG1haWwgYWdhaW4gY29udGludWVpbmcgZnJvbSB0aGUgbGFzdCB1c2VyIHRoYXQgbWFpbCB3YXMgc2VudCB0by4nOwokbGFuZ1snZXJyb3JfZ3JvdXBzJ10gPSAnR2VlbiBGcm9udEVuZFVzZXIgZ3JvZXBlbiBnZWRlZmluaWVlcmQuIE1hYWsgaW4gZGUgRnJvbnRFbmRVc2VyIG1vZHVsZSBtaW5zdGVucyBlZW4gZ2VicnVpa2Vyc2dyb2VwLic7CiRsYW5nWydlcnJvcl9zZWxlY3RlZGdyb3VwcyddID0gJ1NlbGVjdGVlciBtaW5zdGVucyBlZW4gZ2VicnVpa2Vyc2dyb2VwLic7CiRsYW5nWydlcnJvcl9tYWlsYm9keSddID0gJ1ZvZXIgYWxzdHVibGllZnQgZWVuIGJlcmljaHR0ZWtzdCBpbi4nOwokbGFuZ1snZXJyb3JfcmVxdWVzdF9zdGF0dXMnXSA9ICdEZSBBSkFYIGFhbnZyYWFnIGlzIHN1Y2Nlc3ZvbCB2ZXJ6b25kZW4gbWFhciBlciB3YXJlbiBlbmtlbGUgZm91dG1lbGRpbmdlbi4gQWFudnJhYWcgc3RhdHVzOic7CiRsYW5nWydlcnJvcl94bWxodHRwX2luc3RhbmNlJ10gPSAnWE1MSHR0cCBpbnN0YW5jZSBrYW4gbmlldCB3b3JkZW4gYWFuZ2VtYWFrdCEnOwokbGFuZ1snZXJyb3Jfc2VsZWN0ZWRhcmNoaXZlbWFpbHMnXSA9ICdHZWVuIG1haWxzIGdlc2VsZWN0ZWVyZC48YnIgLz5HZWVuIG1haWxzIHZlcndpamRlcmQuPGJyIC8+RGF0IGlzIGRlIGFmc3ByYWFrISc7CiRsYW5nWydlcnJvcl9zZWxlY3RlZHRtcG1haWxzJ10gPSAnTm8gdGVtcG9yYXJ5IG1haWxzIHNlbGVjdGVkLjxiciAvPk5vIHRlbXBvcmFyeSBtYWlscyBkZWxldGVkLjxiciAvPlRoYXQmIzAzOTtzIHRoZSBkZWFsLic7CiRsYW5nWydlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnXSA9ICdPbnZvbGRvZW5kZSBwYXJhbWV0ZXJzLjxiciAvPkluY29ycmVjdGUgb2YgbWlzc2VuZGUgd2FhcmRlIGluIGRlIHBhcmFtZXRlciAlcyBpbiBtb2R1bGVzL0ZFVU1haWxlci9hY3Rpb24uJXMucGhwLic7CiRsYW5nWydlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXNfYWpheCddID0gJ0FjdGllIGdlYW5udWxlZXJkLiBPbnZvbGRvZW5kZSBwYXJhbWV0ZXJzLjxiciAvPkluY29ycmVjdGUgb2YgbWlzc2VuZGUgd2FhcmRlIGluIGRlIHBhcmFtZXRlciAlcyBpbiBtb2R1bGVzL0ZFVU1haWxlci9hY3Rpb24uJXMucGhwLic7CiRsYW5nWydlcnJvcl9ub3VzZXJzZm91bmQnXSA9ICdHZWVuIGdlYnJ1aWtlcnMgZ2V2b25kZW4uJzsKJGxhbmdbJ2Vycm9yX2FqYXgnXSA9ICdFZW4gZm91dCBpcyBvcGdldHJlZGVuLlxuQWN0aWUgZ2Vhbm51bGVlcmQuXG5Qcm9iZWVyIGFsc3VibGllZnQgb3BuaWV1dy5cblxuUmVhY3RpZSB2YW4gc2VydmVyOlxuXG4nOwokbGFuZ1snZXJyb3JfZGJfZGVsZXRlbWFpbCddID0gJ01haWwocykga3VubmVuIG5pZXQgd29yZGVuIHZlcndpamRlcmQuIERlIHF1ZXJ5IGthbiBuaWV0IHdvcmRlbiB1aXRnZXZvZXJkOjxiciAvPiVzJzsKJGxhbmdbJ2Vycm9yX2RiX3NhdmVtYWlsJ10gPSAnTWFpbCBrYW4gbmlldCB3b3JkZW4gb3BnZXNsYWdlbi4gRGUgcXVlcnkga2FuIG5pZXQgd29yZGVuIHVpdGdldm9lcmQ6PGJyIC8+JXMnOwokbGFuZ1snZXJyb3JfZGJfc2F2ZW1haWxfYWpheCddID0gJ01haWwga2FuIG5pZXQgd29yZGVuIG9wZ2VzbGFnZW4uJzsKJGxhbmdbJ2Vycm9yX2RiX2dldF90bXBtYWlsJ10gPSAnS2FuIHRpamRlbGlqa2UgbWFpbCBtZXQgaGV0IGlkICVzIG5pZXQgbGV6ZW4uIERlIHF1ZXJ5IGthbiBuaWV0IHdvcmRlbiB1aXRnZXZvZXJkIG9mIGlzIGJlYW50d29vcmQgem9uZGVyIHJlc3VsdGFhdC48YnIgLz5RdWVyeTo8YnIgLz4lcyc7CiRsYW5nWydlcnJvcl9kYl9nZXRfdG1wbWFpbF9hamF4J10gPSAnQWN0aWUgZ2Vhbm51bGVlcmQuIEthbiBkZSB0aWpkZWxpamtlIG1haWwgbWV0IGlkICVzIG5pZXQgdmluZGVuLic7CiRsYW5nWydlcnJvcl9kYl9nZXRfYXJjaGl2ZW1haWwnXSA9ICdLYW4gZGUgZ2VhcmNoaXZlZXJkZSBtYWlsIG5pZXQgbGV6ZW4uIERlIHF1ZXJ5IGthbiBuaWV0IHdvcmRlbiB1aXRnZXZvZXJkIG9mIGlzIGJlYW50d29vcmQgem9uZGVyIHJlc3VsdGFhdC48YnIgLz5RdWVyeTo8YnIgLz4lcyc7CiRsYW5nWydlcnJvcl9kYl9jcmVhdGVfdG1wbWFpbCddID0gJ0FjdGllIGdlYW5udWxlZXJkLiBLYW4gZ2VlbiB0aWpkZWxpamtlIG1haWwgY3JlJmV1bWw7cmVuLjxiciAvPkRlIHF1ZXJ5IGthbiBuaWV0IHdvcmRlbiB1aXRnZXZvZXJkOjxiciAvPiVzJzsKJGxhbmdbJ2Vycm9yX2RiX2F1dG9jbGVhcmxvZyddID0gJ0thbiBsb2cocykgb2YgdmVyd2lqZGVyZGUgYmVyaWNodGVuIG5pZXQgdmVyd2lqZGVyZW4uIERlIHF1ZXJ5IGthbiBuaWV0IHdvcmRlbiB1aXRnZXZvZXJkOjxiciAvPiVzJzsKJGxhbmdbJ2Vycm9yX2RiX3VwZGF0ZV90bXBtYWlsJ10gPSAnQWN0aWUgZ2Vhbm51bGVlcmQuIEthbiB0aWpkZWxpamtlIG1haWwgbmlldCBiaWp3ZXJrZW4uIERlIHF1ZXJ5IGthbiBuaWV0IHdvcmRlbiB1aXRnZXZvZXJkOjxiciAvPiVzJzsKJGxhbmdbJ2Vycm9yX2RiX3VwZGF0ZV90bXBtYWlsX2FqYXgnXSA9ICdBY3RpZSBnZWFubnVsZWVyZC4gS2FuIHRpamRlbGlqa2UgbWFpbCBuaWV0IGJpandlcmtlbi4nOwokbGFuZ1snZXJyb3JfZGJfY3JlYXRlX2xvZyddID0gJ0thbiBnZWVuIGxvZ2dlYmV1cnRlbmlzc2VuIGFhbm1ha2VuLic7CiRsYW5nWydlcnJvcl9kYl91cGRhdGVfYXJjaGl2ZSddID0gJ0thbiBnZWFyY2hpdmVlcmRlIG1haWwgbmlldCBiaWp3ZXJrZW4uIERpdCBrYW4gbGVpZGVuIHRvdCBlZW4gaW5jb3JyZWN0IG51bW1lciB2YW4gb250dmFuZ2VycyBlbi9vZiBub2cgdGUgdmVyemVuZGVuIG9udHZhbmdlcnMuJzsKJGxhbmdbJ2Vycm9yX2RiX2RlbGV0ZV90bXAnXSA9ICdLYW4gdGlqZGVsaWprZSBlLW1haWwgbmlldCB2ZXJ3aWpkZXJlbi4gVSBtb2V0IGRlemUgdGlqZGVsaWprZSBtYWlsIHplbGYgdmVyd2lqZGVyZW4uJzsKJGxhbmdbJ2Vycm9yX2RiX3VwZGF0ZV9sb2cnXSA9ICdLYW4gbG9nYmVyaWNodChlbikgbmlldCBiaWp3ZXJrZW4uIERlIGthbiBsZWlkZW4gdG90IGhldCB3ZWVyZ2V2ZW4gdmFuIGVlbiBpbmNvcnJlY3RlIHZlcnplbmRzdGF0dXMuJzsKJGxhbmdbJ2FkbWlucGFuZWwnXSA9ICdCZWhlZXJwYW5lZWwnOwokbGFuZ1snc2VuZG1haWwnXSA9ICdWZXJzdHV1ciBlLW1haWwuLi4nOwokbGFuZ1snZW1haWxhZGRyZXNzJ10gPSAnRS1tYWlsIGFkcmVzJzsKJGxhbmdbJ25vbWFpbHMnXSA9ICdHZWVuIHZlcnpvbmRlbiBlLW1haWxzIGluIHV3IGFyY2hpZWYnOwokbGFuZ1snbm90ZW1wbWFpbHMnXSA9ICdHZWVuIHRpamRlbGlqa2UgZS1tYWlscyBnZXZvbmRlbi4nOwokbGFuZ1snYXJjaGl2ZSddID0gJ0UtbWFpbGFyY2hpZWYnOwokbGFuZ1snbmV3bWFpbCddID0gJ1ZlcnN0dXVyIGVlbiBuaWV1d2UgZS1tYWlsJzsKJGxhbmdbJ3RlbXAnXSA9ICdUaWpkZWxpamtlIGUtbWFpbHMnOwokbGFuZ1sncHJlZiddID0gJ0luc3RlbGxpbmdlbic7CiRsYW5nWydwcmVmc191cGRhdGVkJ10gPSAnSW5zdGVsbGluZ2VuIGJpamdld2Vya3QuJzsKJGxhbmdbJ3VzZXJzJ10gPSAnR2VicnVpa2Vycyc7CiRsYW5nWydyZXF1ZXN0X2RlbGF5J10gPSAnQUpBWCByZXF1ZXN0IHZlcnRyYWdpbmcnOwokbGFuZ1snZ3JvdXBzJ10gPSAnR2VicnVpa2Vyc2dyb2VwJzsKJGxhbmdbJ3N1YmplY3QnXSA9ICdPbmRlcndlcnAnOwokbGFuZ1snZGF0ZSddID0gJ1ZlcnplbmQgZGF0dW0nOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ09udHZhbmdlcnMnOwokbGFuZ1sncmVhZCddID0gJ0xlZXMnOwokbGFuZ1sncmVhZG1haWwnXSA9ICdMZWVzIGUtbWFpbCc7CiRsYW5nWydlZGl0J10gPSAnV2lqemlnZW4nOwokbGFuZ1sncmVzZW5kJ10gPSAnT3BuaWV1dyB2ZXJ6ZW5kZW4nOwokbGFuZ1snZGVsZXRlJ10gPSAnVmVyd2lqZGVyJzsKJGxhbmdbJ3NhdmVfbG9ncyddID0gJ0xvZ3Mgb3BzbGFhbic7CiRsYW5nWydzYXZlX2Vycm9ybG9nc19vbmx5J10gPSAnQWxsZWVuIGZvdXRlbmxvZ3Mgb3BzbGFhbic7CiRsYW5nWydsb2dpZCddID0gJ0xvZyBJZCc7CiRsYW5nWydzdGF0dXMnXSA9ICdTdGF0dXMgJzsKJGxhbmdbJ3JlY2lldmVkJ10gPSAnT250dmFuZ2VuJzsKJGxhbmdbJ25vZW1haWxhZGRyZXNzZm91bmQnXSA9ICdHZWVuIEUtbWFpbCBhZHJlcyBnZXZvbmRlbic7CiRsYW5nWydpbnZhbGlkZW1haWxhZGRyZXNzJ10gPSAnVmVya2VlcmQgRS1tYWlsIGFkcmVzJzsKJGxhbmdbJ2ZpbHRlciddID0gJ0ZpbHRlciAnOwokbGFuZ1snYXNjJ10gPSAnYWZsb3BlbmQnOwokbGFuZ1snZGVzYyddID0gJ29wbG9wZW5kJzsKJGxhbmdbJ3NvcnRieSddID0gJ1NvcnRlZXIgbWV0JzsKJGxhbmdbJ3NvcnQnXSA9ICdzb3J0ZWVyJzsKJGxhbmdbJ2xpbWl0J10gPSAnTGltaWV0JzsKJGxhbmdbJ3BhZ2VzJ10gPSAnUGFnaW5hJiMwMzk7cyc7CiRsYW5nWydlcnJvcnNvbmx5J10gPSAnQWxsZWVuIGZvdXRlbiB0b25lbic7CiRsYW5nWydzYXZlZGVmYXVsdCddID0gJ0ZpbHRlciBvcHNsYWFuJzsKJGxhbmdbJ3NlbmRfb3JkZXInXSA9ICdWZXJzdHV1ciBvcmRlcic7CiRsYW5nWydzb3J0b3JkZXInXSA9ICdTb3J0ZWVyIG9yZGVyJzsKJGxhbmdbJ3NlbmRfZGF0ZSddID0gJ1ZlcnplbmQgZGF0dW0nOwokbGFuZ1sndXNlcm5hbWUnXSA9ICdHZWJydWlrZXJzbmFhbSc7CiRsYW5nWydub2xpbWl0J10gPSAnZ2VlbiBsaW1pZXQnOwokbGFuZ1snYXV0b3NhdmUnXSA9ICdTbGEgYXV0b21hdGlzY2ggdmVyem9uZGVuIGJlcmljaHRlbiBvcCc7CiRsYW5nWydhdXRvY2xlYXJfYXJjaGl2ZW1haWxzJ10gPSAnVmVyd2lqZGVyIGF1dG9tYXRpc2NoIG91ZGUgYmVyaWNodGVuJzsKJGxhbmdbJ2F1dG9jbGVhcl9hY3Rpb24nXSA9ICdWZXJ3aWpkZXIgYmVyaWNodGVuIG91ZGVyIGRhbic7CiRsYW5nWydzZWNvbmRzJ10gPSAnc2Vjb25kZW4nOwokbGFuZ1snbWludXRlcyddID0gJ21pbnV0ZW4nOwokbGFuZ1snaG91cnMnXSA9ICd1cmVuJzsKJGxhbmdbJ2RheXMnXSA9ICdkYWdlbic7CiRsYW5nWyd3ZWVrcyddID0gJ3dla2VuJzsKJGxhbmdbJ21vbnRocyddID0gJ21hYW5kZW4nOwokbGFuZ1sneWVhcnMnXSA9ICdqYXJlbic7CiRsYW5nWydhdXRvY2xlYXJfdG1wbWFpbHMnXSA9ICdpbmNsdXNpZWYgdGlqZGVsaWprZSBtYWlscyc7CiRsYW5nWydkZWZhdWx0X2dyb3VwcyddID0gJ1N0YW5kYWFyZCBvbnR2YW5nZXJzZ3JvZXAnOwokbGFuZ1snaXNfaHRtbCddID0gJ1ZlcnplbmQgZS1tYWlsIGFscyBIVE1MIHRla3N0JzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1ZlcnN0dXJlbic7CiRsYW5nWydjYW5jZWwnXSA9ICdBbm51bGVlcic7CiRsYW5nWydtZXNzYWdlJ10gPSAnQmVyaWNodCc7CiRsYW5nWydzYXZlJ10gPSAnQmVyaWNodCBvcHNsYWFuIG5hIHZlcnplbmRlbic7CiRsYW5nWydtYXhtYWlscyddID0gJ01heGltYWFsIGFhbnRhbCBiZXJpY2h0ZW4gcGVyIGpvYic7CiRsYW5nWydub3N1YmplY3QnXSA9ICdHZWVuIG9uZGVyd2VycCc7CiRsYW5nWydsb2dzJ10gPSAnTG9ncyAnOwokbGFuZ1sndG1wbWFpbGRlbGV0ZWQnXSA9ICdUaWpkZWxpamtlIGUtbWFpbChzKSB2ZXJ3aWpkZXJkJzsKJGxhbmdbJ2FyY2hpdmVtYWlsZGVsZXRlZCddID0gJ0UtbWFpbChzKSB2ZXJ3aWpkZXJkJzsKJGxhbmdbJ3Rhc2tfZmluaXNoZWQnXSA9ICdEZSB0YWFrIGlzIGFmZ2Vyb25kJzsKJGxhbmdbJ3Rhc2tfb3BlbiddID0gJ0RlemUgdGFhayBpcyBuaWV0IGFmZ2Vyb25kISc7CiRsYW5nWydtYWlsc19zZW50J10gPSAnQWxsZSBlLW1haWxzIHppam4gdmVyem9uZGVuJzsKJGxhbmdbJ29rJ10gPSAnT2smZWFjdXRlOyc7CiRsYW5nWydiYWNrJ10gPSAnVGVydWcnOwokbGFuZ1snb2YnXSA9ICd2YW4nOwokbGFuZ1snd2FpdCddID0gJ05vZyBldmVuIHdhY2h0ZW4uLi4nOwokbGFuZ1snc2VuZGluZyddID0gJ0UtbWFpbCB2ZXJzdHVyZW4nOwokbGFuZ1snZGVsZXRlc2VsZWN0ZWQnXSA9ICdWZXJ3aWpkZXIgZ2VzZWxlY3RlZXJkZSBiZXJpY2h0ZW4nOwokbGFuZ1snZGVsZXRlc2VsZWN0ZWRsb2cnXSA9ICdWZXJ3aWpkZXIgZ2VzZWxlY3RlZXJkZSBsb2dzJzsKJGxhbmdbJ3RvdGFsbG9ncyddID0gJ1RvdGFhbCBhYW50YWwgYmVyaWNodGVuJzsKJGxhbmdbJ2Vycm9ybG9ncyddID0gJ0ZvdXRlbic7CiRsYW5nWydsb2dfZGVsZXRlZCddID0gJ0xvZ2JlcmljaHRlbiB2ZXJ3aWpkZXJkJzsKJGxhbmdbJ2F1dG9jbGVhcl9sb2dzJ10gPSAnQXV0b21hdGlzY2ggbG9ncyB2ZXJ3aWpkZXJlbiB2YW4gbWFpbHMgZGllIHppam4gdmVyd2lqZGVyZCc7CiRsYW5nWyd2aWV3X2xvZ3MnXSA9ICdCZWtpamsgbG9ncyc7CiRsYW5nWyd2aWV3J10gPSAnRGV0YWlscyAnOwokbGFuZ1snbm9sb2dzJ10gPSAnR2VlbiBsb2dzIGdldm9uZGVuJzsKJGxhbmdbJ3Byb2Nlc3NlZHVzZXJzJ10gPSAnQWN0aWV2ZSBnZWJydWlrZXJzJzsKJGxhbmdbJ3RvdGFsdXNlcnMnXSA9ICdUb3RhYWwgZ2VicnVpa2Vycyc7CiRsYW5nWydyZW1haW5pbmcnXSA9ICdPdmVyZ2VibGV2ZW4gZ2VicnVpa2Vycyc7CiRsYW5nWydzZW50YnknXSA9ICdWZXJzdHV1cmQgZG9vcic7CiRsYW5nWydyZXNlbmRfYWxsJ10gPSAnT3BuaWV1dyB2ZXJ6ZW5kZW4gbmFhciBhbGxlIGdlYnJ1aWtlcnMnOwokbGFuZ1snY29udGludWVfYXJjaGl2ZSddID0gJ09wbmlldXcgdmVyemVuZGVuIG5hYXIgbmlldXdlIGdlYnJ1aWtlcnMnOwokbGFuZ1snY29udGludWVfdG1wJ10gPSAnR2EgdmVyZGVyIHZhbmFmIGxhYXRzdCB1aXRnZXZvZXJkZSBnZWJydWlrZXInOwokbGFuZ1sncmVzZW5kX2Vycm9ycyddID0gJ1ZlcnplbmQgYmVyaWNodGVuIG1ldCBmb3V0ZW4gb3BuaWV1dyc7CiRsYW5nWydyZXNlbmRfdXNlciddID0gJ1ZlcnplbmQgb3BuaWV1dyBuYWFyIGRlemUgZ2VicnVpa2VyJzsKJGxhbmdbJ3Jlc2VuZF9zZWxlY3RlZCddID0gJ1ZlcnplbmQgb3BuaWV1dyBuYWFyIGdlc2VsZWN0ZWVyZGVuJzsKJGxhbmdbJ3JhbmRvbV9kZWxheSddID0gJ0dlYnJ1aWsgcmFuZG9tIHZlcnRyYWdpbmcnOwokbGFuZ1snZ3JvdXBzX2NoYW5nZWQnXSA9ICdVIGhlZWZ0IGRlIG9udHZhbmdlcnNncm9lcCBnZXdpanppZ2QuXG5XZWV0IHUgemVrZXIgZGF0IHUgZG9vciB3aWx0IGdhYW4/JzsKJGxhbmdbJ2RlbGV0ZWNvbmZpcm0nXSA9ICdXZWV0IHUgemVrZXIgZGF0IHUgZGUgZ2VzZWxlY3RlZXJkZSBlLW1haWxzIHdpbHQgdmVyd2lqZGVyZW4/JzsKJGxhbmdbJ2RlbGV0ZWFyY2hpdmVjb25maXJtJ10gPSAnV2VldCB1IHpla2VyIGRhdCB1IGRlemUgZS1tYWlsIHdpbHQgdmVyd2lqZGVyZW4/JzsKJGxhbmdbJ2RlbGV0ZXRlbXBjb25maXJtJ10gPSAnV2VldCB1IHpla2VyIGRhdCB1IGRlemUgdGlqZGVsaWprZSBlLW1haWwgd2lsdCB2ZXJ3aWpkZXJlbj8nOwokbGFuZ1snZGVsZXRlbG9nY29uZmlybSddID0gJ1dlZXQgdSB6ZWtlciBkYXQgdSBkZSBnZXNlbGVjdGVlcmRlIGxvZ3Mgd2lsdCB2ZXJ3aWpkZXJlbj8nOwokbGFuZ1snc3VibWl0Y29uZmlybSddID0gJ1dlZXQgdSB6ZWtlciBkYXQgdSBkZXplIG1haWwgd2lsdCB2ZXJ6ZW5kZW4gbmFhciBkZSBnZWJydWlrZXJzIHZhbiBkZSBnZXNlbGVjdGVlcmRlIGdyb2VwKGVuKT8nOwokbGFuZ1sncmVzZW5kc2VsZWN0ZWRjb25maXJtJ10gPSAnV2VldCB1IHpla2VyIGRhdCB1IGRlemUgbWFpbCBPUE5JRVVXIHdpbHQgdmVyemVuZGVuIG5hYXIgZGUgZ2VzZWxlY3RlZXJkZSBnZWJydWlrZXJzPyc7CiRsYW5nWydyZXNlbmRhbGx0bXBjb25maXJtJ10gPSAnV2VldCB1IHpla2VyIGRhdCB1IGRlemUgdGlqZGVsaWprZSBtYWlsIE9QTklFVVcgd2lsdCB2ZXJ6ZW5kZW4gbmFhciBhbGxlIGdlYnJ1aWtlcnMgdmFuIGRlIGdlc2VsZWN0ZWVyZGUgZ3JvZXAoZW4pPyc7CiRsYW5nWydyZXNlbmRuZXd0bXBjb25maXJtJ10gPSAnV2VldCB1IHpla2VyIGRhdCB1IGRlemUgdm9vcmxvcGlnZSBlLW1haWwgd2lsdCB2ZXJ6ZW5kZW4gbmFhciBhbGxlIGdlYnJ1aWtlcnMgdmFuIGRlIGdlc2VsZWN0ZWVyZGUgZ3JvZXAoZW4pIHZlcmRlcmdhYW5kIGJpaiBkZSBsYWF0c3QgdWl0Z2V2b2VyZGUgZ2VicnVpa2VyPyc7CiRsYW5nWydyZXNlbmRlcnJvcnRtcGNvbmZpcm0nXSA9ICdXZWV0IHUgemVrZXIgZGF0IHUgZGV6ZSB2b29ybG9waWdlIGUtbWFpbCB3aWx0IHZlcnplbmRlbiBuYWFyIGFsbGUgZ2VicnVpa2VycyB2YW4gZGUgZ2VzZWxlY3RlZXJkZSBncm9lcChlbikgZGllIGFsIHVpdGdldm9lcmQgd2FyZW4gbWFhciBnZWVuIGUtbWFpbGFkcmVzIGhhZGRlbiBkZSBsYWF0c3RlIGtlZXI/JzsKJGxhbmdbJ3Jlc2VuZGFsbGFyY2hpdmVjb25maXJtJ10gPSAnV2VldCB1IHpla2VyIGRhdCB1IGRlemUgbWFpbCBPUE5JRVVXIHdpbHQgdmVyemVuZGVuIG5hYXIgYWxsZSBnZWJydWlrZXJzIHZhbiBkZSBnZXNlbGVjdGVlcmRlIGdyb2VwKGVuKT8nOwokbGFuZ1sncmVzZW5kbmV3YXJjaGl2ZWNvbmZpcm0nXSA9ICdXZWV0IHUgemVrZXIgZGF0IHUgZGV6ZSBtYWlsIG9wbmlldXcgd2lsdCB2ZXJ6ZW5kZW4gbmFhciBhbGxlIE5JRVVXRSBnZWJydWlrZXJzIGluIGRlIGdlc2VsZWN0ZWVyZGUgZ3JvZXAoZW4pP1xuKHZlcmRlcmdhYW5kIHZhbmFmIGRlIGxhYXRzdCB1aXRnZXZvZXJkZSBnZWJydWlrZXIpJzsKJGxhbmdbJ3Jlc2VuZGVycm9yYXJjaGl2ZWNvbmZpcm0nXSA9ICdXZWV0IHUgemVrZXIgZGF0IHUgZGV6ZSBlLW1haWwgd2lsdCB2ZXJ6ZW5kZW4gbmFhciBhbGxlIGdlYnJ1aWtlcnMgdmFuIGRlIGdlc2VsZWN0ZWVyZGUgZ3JvZXAoZW4pIGRpZSBhbCB1aXRnZXZvZXJkIHdhcmVuIG1hYXIgZ2VlbiBlLW1haWxhZHJlcyBoYWRkZW4gZGUgbGFhdHN0ZSBrZWVyPyc7CiRsYW5nWydyZXNlbmR1c2VyY29uZmlybV8xJ10gPSAnV2VldCB1IHpla2VyIGRhdCB1IGRlemUgbWFpbCBPUE5JRVVXIHdpbHQgdmVyemVuZGVuIG5hYXIgZGV6ZSBnZWJydWlrZXI/XG5HZWJydWlrZXJzbmFhbSAvIEUtbWFpbDogJXMnOwokbGFuZ1sncmVzZW5kdXNlcmNvbmZpcm1fMiddID0gJ1dlZXQgdSB6ZWtlciBkYXQgdSBkZXplIG1haWwgT1BOSUVVVyB3aWx0IHZlcnplbmRlbiBuYWFyIGRlemUgZ2VicnVpa2VyP1xuR2VicnVpa2Vyc25hYW06ICVzXG5FLW1haWw6ICVzJzsKJGxhbmdbJ3N1Ym1pdGNvbmZpcm1fZnVsbCddID0gJ1dlZXQgdSB6ZWtlciBkYXQgdSBkZXplIG1haWwgd2lsdCB2ZXJ6ZW5kZW4gbmFhciBhbGxlIGdlYnJ1aWtlcnMgdmFuIGRlIGdlc2VsZWN0ZWVyZGUgZ3JvZXAoZW4pP1xuXG5Hcm9lcGVuOlxuJXNcblxuR2VicnVpa2VyczpcbiVzJzsKJGxhbmdbJ3Jlc2VuZGFsbHRtcGNvbmZpcm1fZnVsbCddID0gJ1dlZXQgdSB6ZWtlciBkYXQgdSBkZXplIG1haWwgT1BOSUVVVyB3aWx0IHZlcnplbmRlbiBuYWFyIGFsbGUgZ2VicnVpa2VycyB2YW4gZGUgZ2VzZWxlY3RlZXJkZSBncm9lcChlbik/IFxuXG5Hcm9lcGVuOlxuJXNcblxuR2VicnVpa2VyczpcbiVzJzsKJGxhbmdbJ3Jlc2VuZG5ld3RtcGNvbmZpcm1fZnVsbCddID0gJ1dlZXQgdSB6ZWtlciBkYXQgdSBkZXplIHRpamRlbGlqa2UgbWFpbCB3aWx0IHZlcnplbmRlbiBuYWFyIGFsbGUgZ2VicnVpa2VycyB2YW4gZGUgZ2VzZWxlY3RlZXJkZSBncm9lcChlbiksIHZlcmRlcmdhYW5kIGJpaiBkZSBsYWF0c3QgdWl0Z2V2b2VyZGUgZ2VicnVpa2VyP1xuXG5Hcm9lcGVuOlxuJXNcblxuVG90YWFsIGFhbnRhbCBnZWJydWlrZXJzOlxuJXNcblxuVWl0Z2V2b2VyZGUgZ2VicnVpa2VyczogJXNcblxuT250dmFuZ2VyczogJXNcblxuUmVzdHJlcmVuZGUgZ2VicnVpa2VyczpcbiVzJzsKJGxhbmdbJ3Jlc2VuZGVycm9ydG1wY29uZmlybV9mdWxsJ10gPSAnV2VldCB1IHpla2VyIGRhdCB1IGRlemUgdGlqZGVsaWprZSBtYWlsIHdpbHQgdmVyemVuZGVuIG5hYXIgYWxsZSBnZWJydWlrZXJzIGluIGRlIGdlc2VsZWN0ZWVyZGUgZ3JvZXAoZW4pIGRpZSBhbCByZWVkcyB1aXRnZXZvZXJkIHppam4sIG1hYXIgZGUgdm9yaWdlIGtlZXIgbm9nIGdlZW4gZS1tYWlsYWRyZXMgaGFkZGVuP1xuXG5Hcm9lcGVuOlxuJXNcblxuVG90YWFsIGFhbnRhbCBnZWJydWlrZXJzOlxuJXNcblxuVWl0Z2V2b2VyZGUgZ2VuYnJ1aWtlcnM6XG4lc1xuXG5PbnR2YW5nZXJzOlxuJXNcblxuUmVzdHJlcmVuZGUgZ2VicnVpa2VyczpcbiVzJzsKJGxhbmdbJ3Jlc2VuZGFsbGFyY2hpdmVjb25maXJtX2Z1bGwnXSA9ICdXZWV0IHUgemVrZXIgZGF0IHUgZGV6ZSBtYWlsIE9QTklFVVcgd2lsdCB2ZXJ6ZW5kZW4gbmFhciBhbGxlIGdlYnJ1aWtlcnMgdmFuIGRlIGdlc2VsZWN0ZWVyZGUgZ3JvZXAoZW4pP1xuXG5Hcm9lcGVuOlxuJXNcblxuR2VicnVpa2VyczpcbiVzJzsKJGxhbmdbJ3Jlc2VuZG5ld2FyY2hpdmVjb25maXJtX2Z1bGwnXSA9ICdXZWV0IHUgemVrZXIgZGF0IHUgZGV6ZSBtYWlsIHdpbHQgdmVyemVuZGVuIG5hYXIgYWxsZSBOSUVVV0UgZ2VicnVpa2VycyB2YW4gZGUgZ2VzZWxlY3RlZXJkZSBncm9lcChlbik/XG4oc3RhcnRlbmQgYmlqIGRlIGxhYXRzdCB1aXRnZXZvZXJkZSBnZWJydWlrZXIpXG5cbkdyb2VwZW46XG4lc1xuXG5Ub3RhYWwgYWFudGFsIGdlYnJ1aWtlcnM6XG4lc1xuXG5VaXRnZXZvZXJkZSBnZWJydWlrZXJzOlxuJXNcblxuT250dmFuZ2VyczpcbiVzXG5cblJlc3RyZW5kZSBnZWJydWlrZXJzOlxuJXMnOwokbGFuZ1sncmVzZW5kZXJyb3JhcmNoaXZlY29uZmlybV9mdWxsJ10gPSAnV2VldCB1IHpla2VyIGRhdCB1IGRlemUgbWFpbCB3aWx0IHZlcnplbmRlbiBuYWFyIGFsbGUgZ2VicnVpa2VycyB2YW4gZGUgZ2VzZWxlY3RlZXJkZSBncm9lcChlbikgZGllIGFsIHJlZWRzIHVpdGdldm9lcmQgd2FyZW4gbWFhciBnZWVuIG9mIGVlbiBvbmdlbGRpZyBlLW1haWwgYWRyZXMgaGFkZGVuIGRlIGxhYXRzdGUga2Vlcj9cblxuR3JvZXBlbjpcbiVzXG5cblRvdGFhbCBhYW50YWwgZ2VicnVpa2VyczpcbiVzXG5cblVpdGdldm9lcmRlIGdlYnJ1aWtlcnM6XG4lc1xuXG5PbnR2YW5nZXJzOlxuJXNcblxuUmVzdHJlcmVuZGUgZ2VicnVpa2VyczpcbiVzJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTg1MjIyMTI3MS4xMjg3NDc5MDkyLjEzMDQ0MjI4MDguMTMwNDUyMzc5MC4xNDInOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMzA0NTIzNzkwLjE0Mi44OC51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9ZGV2LmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWydxY2EnXSA9ICdQMC0xNjEwMzE4OTctMTI4NzQ3OTA5MjE3MSc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEZyb250ZW5kVXNlciBNYWlsZXIgKGMpIDIwMDgtMjAxMCBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkKIyAgICAgICAgICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGJhY2tlbmQgdXNlcnMgYWJpbGl0eSAKIyAgICAgICAgICB0byBlYXNpbHkgc2VuZCBhbiBlbWFpbCB0byBhbGwgZnJvbnRlbmQgdXNlcnMgb3IganVzdCBzcGVjaWZpYyBmcm9udC0KIyAgICAgICAgICBlbmQgdXNlcmdyb3VwcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZCB3ZWJzaXRlLgojIFZlcnNpb246IDAuOS40CiMgRmlsZSAgIDogbWV0aG9kLmluc3RhbGwucGhwCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNC0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgppZighaXNfb2JqZWN0KGNtc21zKCkpKSBleGl0OwoKJGRiID0mICR0aGlzLT5HZXREYigpOwoKJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoKLy9jcmVhdGUgdGFibGVzCi8vIGFyY2hpdmUKJGZsZHMgPSAiaWQgSSBLRVksIHNlbnRieV9pZCBJLCByZWNpcGllbnRfZ3JvdXBzIFgsIHNlbmRfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIiwKCXN1YmplY3QgQygxMjgpLCBtYWlsYm9keSBYLCBsYXN0X3VzZXJpZCBJLCBwcm9jZXNzZWRfdXNlcnMgSSwgcmVjaXBpZW50cyBJIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldW1haWxlcl9hcmNoaXZlIiwgCgkJCQkJCQkJCQkJCQkJCSRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1bWFpbGVyX2FyY2hpdmVfc2VxIik7CgovLyB0ZW1wCiRmbGRzID0gImlkIEkgS0VZLCBzZW50YnlfaWQgSSwgcmVjaXBpZW50X2dyb3VwcyBYLCAKCXNlbmRfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIiwgc3ViamVjdCBDKDEyOCksIG1haWxib2R5IFgsIGxhc3RfdXNlcmlkIEksIAoJcHJvY2Vzc2VkX3VzZXJzIEksIHJlY2lwaWVudHMgSSwgdGFzayBDKDgpLCBhcmNoaXZlX2lkIEksIHNhdmVfbWVzc2FnZSBJIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldW1haWxlcl90bXAiLCAkZmxkcywKCQkJCQkJCQkJCQkJCQkJCQkkdGFib3B0YXJyYXkpOwoKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldW1haWxlcl90bXBfc2VxIik7CgovLyBsb2dzCiRmbGRzID0gImlkIEkgS0VZLCBhcmNoaXZlX2lkIEksIHRtcF9pZCBJLCBzZW50YnlfaWQgSSwgcmVjaXBpZW50X2lkIEksIHJlY2lwaWVudF9ncm91cHMgWCwgCgkJCQlzZW5kX2RhdGUgIiAuIENNU19BRE9EQl9EVCAuICIsIGVycm9yY29kZSBJLCBzdWJqZWN0IEMoMTI4KSx0bXBfZXJyb3Jjb2RlIEksIHJlY2lldmVkIEkiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1bWFpbGVyX2xvZ3MiLCAKCQkJCQkJCQkJCQkJCQkJJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVtYWlsZXJfbG9nc19zZXEiKTsKCi8vIHNlbGVjdGVkIHVzZXJzCiRmbGRzID0gImlkIEkgS0VZLCB1c2VyaWQgSSwgdXNlcm5hbWUgWCwgdG1wX2lkIEksIHVzZXJjb3VudCBJLCBlcnJvcmNvZGUgSSI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVtYWlsZXJfdXNlcnMiLCAKCQkJCQkJCQkJCQkJCQkJJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVtYWlsZXJfdXNlcnNfc2VxIik7CgovLyBjcmVhdGUgcGVybWlzc2lvbgokdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignVXNlIEZFVU1haWxlcicsICdVc2UgRkVVTWFpbGVyJyk7CgovL3ByZWZlcmVuY2VzCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCJhdXRvc2F2ZSIsIHRydWUpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgiYXV0b2NsZWFyX2FyY2hpdmVtYWlscyIsdHJ1ZSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCJhdXRvY2xlYXJfdmFsdWUiLCAzKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoImF1dG9jbGVhcl90aW1lIiwgJ21vbnRoJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCJhdXRvY2xlYXJfdG1wbWFpbHMiLCB0cnVlKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoImlzX2h0bWwiLCBmYWxzZSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCJtYXhtYWlscyIsIDUwKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoInNhdmVfbG9ncyIsIHRydWUpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgic2F2ZV9lcnJvcmxvZ3Nfb25seSIsIHRydWUpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgiYXV0b2NsZWFyX2xvZ3MiLCBmYWxzZSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCJkZWZhdWx0X2dyb3VwcyIsICcnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoInJlcXVlc3RfZGVsYXkiLCAnJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCJyYW5kb21fZGVsYXkiLCBmYWxzZSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCJsaW1pdCIsIDEwMCk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCJzb3J0b3JkZXIiLCAiQVNDIik7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCJzb3J0YnkiLCAiTC5pZCIpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgiZXJyb3Jzb25seSIsIGZhbHNlKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEZyb250ZW5kVXNlciBNYWlsZXIgKGMpIDIwMDgtMjAxMCBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkKIyAgICAgICAgICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGJhY2tlbmQgdXNlcnMgYWJpbGl0eSAKIyAgICAgICAgICB0byBlYXNpbHkgc2VuZCBhbiBlbWFpbCB0byBhbGwgZnJvbnRlbmQgdXNlcnMgb3IganVzdCBzcGVjaWZpYyBmcm9udC0KIyAgICAgICAgICBlbmQgdXNlcmdyb3VwcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZCB3ZWJzaXRlLgojIFZlcnNpb246IDAuOS40CiMgRmlsZSAgIDogbWV0aG9kLnVuaXN0YWxsLnBocAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDQtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKaWYoIWlzX29iamVjdChjbXNtcygpKSkgZXhpdDsKCi8vIHJlbW92ZSBkYXRhYmFzZSB0YWJsZXMKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSggJGRiICk7CiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldW1haWxlcl9hcmNoaXZlIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVtYWlsZXJfdG1wIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVtYWlsZXJfbG9ncyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1bWFpbGVyX3VzZXJzIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgovLyByZW1vdmUgc2VxdWVuY2VzCiRkYi0+RHJvcFNlcXVlbmNlKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVtYWlsZXJfYXJjaGl2ZV9zZXEiICk7CiRkYi0+RHJvcFNlcXVlbmNlKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVtYWlsZXJfdG1wX3NlcSIgKTsKJGRiLT5Ecm9wU2VxdWVuY2UoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldW1haWxlcl9sb2dzX3NlcSIgKTsKJGRiLT5Ecm9wU2VxdWVuY2UoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldW1haWxlcl91c2Vyc19zZXEiICk7CgovLyByZW1vdmUgdGhlIHBlcm1pc3Npb25zCiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdVc2UgRkVVTWFpbGVyJyk7CgovL3ByZWZlcmVuY2VzCiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCJhdXRvc2F2ZSIpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgiYXV0b2NsZWFyX2FyY2hpdmVtYWlscyIpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgiYXV0b2NsZWFyX3ZhbHVlIik7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCJhdXRvY2xlYXJfdGltZSIpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgiYXV0b2NsZWFyX3RtcG1haWxzIik7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCJpc19odG1sIik7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCJtYXhtYWlscyIpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgic2F2ZV9sb2dzIik7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCJzYXZlX2Vycm9ybG9nc19vbmx5Iik7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCJhdXRvY2xlYXJfbG9ncyIpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgiZGVmYXVsdF9ncm91cHMiKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoInJlcXVlc3RfZGVsYXkiKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoInJhbmRvbV9kZWxheSIsIGZhbHNlKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoImxpbWl0Iik7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCJzb3J0b3JkZXIiKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoInNvcnRieSIpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgiZXJyb3Jzb25seSIpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEZyb250ZW5kVXNlciBNYWlsZXIgKGMpIDIwMDgtMjAxMCBieSBHZW9yZyBCdXNjaCAoZ2VvcmcuYnVzY2hAZ214Lm5ldCkKIyAgICAgICAgICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGJhY2tlbmQgdXNlcnMgYWJpbGl0eSAKIyAgICAgICAgICB0byBlYXNpbHkgc2VuZCBhbiBlbWFpbCB0byBhbGwgZnJvbnRlbmQgdXNlcnMgb3IganVzdCBzcGVjaWZpYyBmcm9udC0KIyAgICAgICAgICBlbmQgdXNlcmdyb3VwcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZCB3ZWJzaXRlLgojIFZlcnNpb246IDAuOS40CiMgRmlsZSAgIDogbWV0aG9kLnVwZ3JhZGUucGhwCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNC0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgppZighaXNfb2JqZWN0KGNtc21zKCkpKSBleGl0OwoKJGN1cnJlbnRfdmVyc2lvbiA9ICRvbGRfdmVyc2lvbjsKc3dpdGNoKCRjdXJyZW50X3ZlcnNpb24pIHsKCWNhc2UgIjAuOC1iZXRhIjoKCWNhc2UgIjAuOSI6CgljYXNlICIwLjkuMSI6CgkJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdlcnJvcl91cGdyYWRlJykpOwoJCWJyZWFrOwoJY2FzZSAiMC45LjIuQkVUQSI6CgkJJGRiID0mICR0aGlzLT5HZXREYigpOwoJCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCQkkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldW1haWxlcl9sb2dzIiwgInJlY2lldmVkIEkiKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CglkZWZhdWx0OiBicmVhazsKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/adminpanel.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2xpdGVyYWx9CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLy88IVtDREFUQVsKZnVuY3Rpb24gc2VsZWN0QWxsKG9iaikgewoJaWYgKG9iai52YWx1ZSA9PSAxKSB7CgkJalF1ZXJ5KCcjJyArIG9iai5pZCArICdfdGFibGUgdGQuY2hlY2tib3ggaW5wdXQ6Y2hlY2tib3gnKS5hdHRyKCdjaGVja2VkJywnY2hlY2tlZCcpOwoJCW9iai52YWx1ZSA9IDA7Cgl9CgllbHNlIHsKCQlqUXVlcnkoJyMnICsgb2JqLmlkICsgJ190YWJsZSB0ZC5jaGVja2JveCBpbnB1dDpjaGVja2JveCcpLnJlbW92ZUF0dHIoJ2NoZWNrZWQnKTsKCQlvYmoudmFsdWUgPSAxOwoJfQp9CgpmdW5jdGlvbiB0b2dnbGVBY3RpdmUoaWQpIHsKCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID09ICJibG9jayIpID8gIm5vbmUiIDogImJsb2NrIjsKCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS52aXNpYmlsaXR5ID0gKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS52aXNpYmlsaXR5ID09ICJ2aXNpYmxlIikgPyAiY29sbGFwc2UiIDogInZpc2libGUiOwp9Ci8vXV0+Cjwvc2NyaXB0Pgp7L2xpdGVyYWx9CjxoMz57JGhlYWRpbmd9PC9oMz4Ke2lmIGlzc2V0KCRlcnJvcm1lc3NhZ2UpICYmICRlcnJvcm1lc3NhZ2UhPScnfQo8ZGl2IGNsYXNzPSJwYWdlZXJyb3Jjb250YWluZXIiPgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8dWwgY2xhc3M9InBhZ2VlcnJvciI+PGxpPnskZXJyb3JtZXNzYWdlfTwvbGk+PC91bD4KCTwvZGl2Pgo8L2Rpdj4Key9pZn0Ke2lmIGlzc2V0KCRtZXNzYWdlKSAmJiAkbWVzc2FnZSE9Jyd9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8ZGl2IGNsYXNzPSJwYWdlbWNvbnRhaW5lciI+CgkJPHA+eyRtZXNzYWdlfTwvcD4KCTwvZGl2Pgo8L2Rpdj4Key9pZn0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwPiZuYnNwO3skbmV3bWFpbH0mbmJzcDs8L3A+CjwvZGl2Pgp7JHN0YXJ0VGFiSGVhZGVyc30KCXskYXJjaGl2ZX0KCXtpZiAkdGVtcG1haWxzY291bnQ+MH0KCXskdGVtcH0KCXsvaWZ9Cgl7JHByZWZ9Cgl7aWYgJGxvZ3NfY291bnQ+MH0KCXskbG9nfQoJey9pZn0KeyRlbmRUYWJIZWFkZXJzfQp7JHN0YXJ0VGFiQ29udGVudH0KCXskc3RhcnRNYWlsc1RhYn0KCQk8YnIgLz4KCQl7aWYgJG1haWxzY291bnQ+MH0KCQl7JHN0YXJ0TWFpbHNGb3JtfQoJCTx0YWJsZSBpZD0iYXJjaGl2ZV90YWJsZSIgY2xhc3M9InBhZ2V0YWJsZSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIzIj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aCBjbGFzcz0icGFnZWljb24iPnskc2VsZWN0YWxsX2FyY2hpdmV9PC90aD4KCQkJCQk8dGg+eyRzdWJqZWN0X3RleHR9PC90aD4KCQkJCQk8dGg+eyRncm91cHNfdGV4dH08L3RoPgoJCQkJCTx0aD57JGRhdGVfdGV4dH08L3RoPgoJCQkJCTx0aD57JHNlbnRieV90ZXh0fTwvdGg+CgkJCQkJPHRoPnskcmVjaXBpZW50c190ZXh0fTwvdGg+CgkJCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+eyRyZWFkbWFpbF90ZXh0fTwvdGg+CgkJCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+eyRlZGl0X3RleHR9PC90aD4KCQkJCQk8dGg+eyRyZXNlbmRfdGV4dH08L3RoPgoJCQkJCTx0aCBjbGFzcz0icGFnZWljb24iPnskbG9nc190ZXh0fTwvdGg+CgkJCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+eyRkZWxldGVfdGV4dH08L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5PgoJCQl7Zm9yZWFjaCBmcm9tPSRtYWlscyBpdGVtPW1haWx9CgkJCQk8dHIgY2xhc3M9InskbWFpbC0+cm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skbWFpbC0+cm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skbWFpbC0+cm93Y2xhc3N9JzsiPgoJCQkJCTx0ZCBjbGFzcz0iY2hlY2tib3giPnskbWFpbC0+c2VsZWN0ZWR9PC90ZD4KCQkJCQk8dGQ+eyRtYWlsLT5zdWJqZWN0fTwvdGQ+CgkJCQkJPHRkPnskbWFpbC0+cmVjaXBpZW50X2dyb3Vwc308L3RkPgoJCQkJCTx0ZD57JG1haWwtPnNlbmRfZGF0ZX08L3RkPgoJCQkJCTx0ZD57JG1haWwtPnNlbnRieX08L3RkPgoJCQkJCTx0ZD4KCQkJCQkJPHNwYW4gdGl0bGU9InskcmVjaXBpZW50c190ZXh0fSIgc3R5bGU9ImN1cnNvcjpwb2ludGVyIj4KCQkJCQkJCXskbWFpbC0+cmVjaXBpZW50c30KCQkJCQkJPC9zcGFuPgoJCQkJCQkmbmJzcDt8Jm5ic3A7CgkJCQkJCTxzcGFuIHRpdGxlPSJ7JHRvdGFsdXNlcnNfdGV4dH0iIHN0eWxlPSJjdXJzb3I6cG9pbnRlciI+CgkJCQkJCQl7JG1haWwtPnRvdGFsX3VzZXJzfQoJCQkJCQk8L3NwYW4+CgkJCQkJPC90ZD4KCQkJCQk8dGQ+eyRtYWlsLT5yZWFkX21haWx9PC90ZD4KCQkJCQk8dGQ+eyRtYWlsLT5lZGl0fTwvdGQ+CgkJCQkJPHRkPnskbWFpbC0+cmVzZW5kX2FsbH0KCQkJCQkJe2lmIGlzc2V0KCRtYWlsLT5yZXNlbmRfbmV3KX0mbmJzcDt8Jm5ic3A7IHskbWFpbC0+cmVzZW5kX25ld317L2lmfQoJCQkJCQl7aWYgaXNzZXQoJG1haWwtPnJlc2VuZF9lcnJvcil9Jm5ic3A7fCZuYnNwOyB7JG1haWwtPnJlc2VuZF9lcnJvcn17L2lmfQoJCQkJCTwvdGQ+CgkJCQkJPHRkPnskbWFpbC0+dmlld19sb2dzfTwvdGQ+CgkJCQkJPHRkPnskbWFpbC0+ZGVsZXRlfTwvdGQ+CgkJCQk8L3RyPgoJCQl7L2ZvcmVhY2h9CgkJCTwvdGJvZHk+CgkJPC90YWJsZT4KCQk8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyIgc3R5bGU9Im1hcmdpbjogMWVtIDMlIDAgMDsiID4KCQkJPGRpdiBzdHlsZT0ibWFyZ2luOiAwIDAgMWVtIDA7IGZsb2F0OiByaWdodDsgdGV4dC1hbGlnbjogcmlnaHQiPgoJCQkJeyRkZWxldGVfc2VsZWN0ZWRfYXJjaGl2ZX0KCQkJPC9kaXY+CgkJCXskbmV3bWFpbH0KCQkJPGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4KCQk8L2Rpdj4KCQl7JGVuZEZvcm19CgkJe2Vsc2V9CgkJPHA+eyRub21haWxzfTwvcD4KCQl7L2lmfQoJeyRlbmRUYWJ9Cgl7aWYgJHRlbXBtYWlsc2NvdW50PjB9Cgl7JHN0YXJ0VGVtcHNUYWJ9CgkJPGJyIC8+CgkJeyRzdGFydFRlbXBzRm9ybX0KCQk8dGFibGUgaWQ9InRtcF90YWJsZSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIzIiBjbGFzcz0icGFnZXRhYmxlIj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aCBjbGFzcz0iY2hlY2tib3giPnskc2VsZWN0YWxsX3RtcH08L3RoPgoJCQkJCTx0aD57JHN1YmplY3RfdGV4dH08L3RoPgoJCQkJCTx0aD57JGdyb3Vwc190ZXh0fTwvdGg+CgkJCQkJPHRoPnskZGF0ZV90ZXh0fTwvdGg+CgkJCQkJPHRoPnskc2VudGJ5X3RleHR9PC90aD4KCQkJCQk8dGg+eyRyZWNpcGllbnRzX3RleHR9PC90aD4KCQkJCQk8dGggY2xhc3M9InBhZ2VpY29uIj57JHJlYWRtYWlsX3RleHR9PC90aD4KCQkJCQk8IS0tIDx0aCBjbGFzcz0icGFnZWljb24iPnskZWRpdF90ZXh0fTwvdGg+IC0tPgoJCQkJCTx0aD57JHJlc2VuZF90ZXh0fTwvdGg+CgkJCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+eyRsb2dzX3RleHR9PC90aD4KCQkJCQk8dGggY2xhc3M9InBhZ2VpY29uIj57JGRlbGV0ZV90ZXh0fTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHk+CgkJCXtmb3JlYWNoIGZyb209JHRlbXBtYWlscyBpdGVtPXRtcG1haWx9CgkJCQk8dHIgY2xhc3M9InskdG1wbWFpbC0+cm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skdG1wbWFpbC0+cm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skdG1wbWFpbC0+cm93Y2xhc3N9JzsiPgoJCQkJCTx0ZD57JHRtcG1haWwtPnNlbGVjdGVkfTwvdGQ+CgkJCQkJPHRkPnskdG1wbWFpbC0+c3ViamVjdH08L3RkPgoJCQkJCTx0ZD57JHRtcG1haWwtPnJlY2lwaWVudF9ncm91cHN9PC90ZD4KCQkJCQk8dGQ+eyR0bXBtYWlsLT5zZW5kX2RhdGV9PC90ZD4KCQkJCQk8dGQ+eyR0bXBtYWlsLT5zZW50Ynl9PC90ZD4KCQkJCQk8dGQ+CgkJCQkJCTxzcGFuIHRpdGxlPSJ7JHJlY2lwaWVudHNfdGV4dH0iIHN0eWxlPSJjdXJzb3I6cG9pbnRlciI+CgkJCQkJCQl7JHRtcG1haWwtPnJlY2lwaWVudHN9CgkJCQkJCTwvc3Bhbj4KCQkJCQkJJm5ic3A7fCZuYnNwOwoJCQkJCQk8c3BhbiB0aXRsZT0ieyRwcm9jZXNzZWR1c2Vyc190ZXh0fSIgc3R5bGU9ImN1cnNvcjpwb2ludGVyIj4KCQkJCQkJCXskdG1wbWFpbC0+cHJvY2Vzc2VkX3VzZXJzfQoJCQkJCQk8L3NwYW4+CgkJCQkJCSZuYnNwO3wmbmJzcDsKCQkJCQkJPHNwYW4gdGl0bGU9InskdG90YWx1c2Vyc190ZXh0fSIgc3R5bGU9ImN1cnNvcjpwb2ludGVyIj4KCQkJCQkJCXskdG1wbWFpbC0+dG90YWxfdXNlcnN9CgkJCQkJCTwvc3Bhbj4KCQkJCQk8L3RkPgoJCQkJCTx0ZD57JHRtcG1haWwtPnJlYWRfbWFpbH08L3RkPgoJCQkJCTx0ZD57JHRtcG1haWwtPnJlc2VuZF9uZXd9PC90ZD4KCQkJCQk8dGQ+eyR0bXBtYWlsLT52aWV3X2xvZ3N9PC90ZD4KCQkJCQk8dGQ+eyR0bXBtYWlsLT5kZWxldGV9PC90ZD4KCQkJCTwvdHI+CgkJCXsvZm9yZWFjaH0KCQkJPC90Ym9keT4KCQk8L3RhYmxlPgoJCTxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIiBzdHlsZT0ibWFyZ2luOiAxZW0gMyUgMCAwOyIgPgoJCQk8ZGl2IHN0eWxlPSJtYXJnaW46IDAgMCAxZW0gMDsgZmxvYXQ6IHJpZ2h0OyB0ZXh0LWFsaWduOiByaWdodCI+CgkJCQl7JGRlbGV0ZV9zZWxlY3RlZF90bXB9CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJjbGVhcmIiPjwvZGl2PgoJCTwvZGl2PgoJCXskZW5kRm9ybX0KCXskZW5kVGFifQoJey9pZn0KCXskc3RhcnRQcmVmc1RhYn0KCXskc3RhcnRQcmVmc0Zvcm19CgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGF1dG9zYXZlX3RleHR9OjwvcD4KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRhdXRvc2F2ZV9pbnB1dH08L3A+CgkJPC9kaXY+CgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHNhdmVsb2dzX3RleHR9OjwvcD4KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzYXZlbG9nc19pbnB1dH08L3A+CgkJPC9kaXY+CgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IiBpZD0ic2F2ZV9sb2dzIiB7JHNhdmVsb2dzX3N0eWxlfT4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHNhdmVfZXJyb3Jsb2dzX29ubHlfdGV4dH06PC9wPgoJCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHNhdmVfZXJyb3Jsb2dzX29ubHlfaW5wdXR9PC9wPgoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRhdXRvY2xlYXJfbG9nc190ZXh0fTo8L3A+CgkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskYXV0b2NsZWFyX2xvZ3NfaW5wdXR9PC9wPgoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRhdXRvY2xlYXJfYXJjaGl2ZW1haWxzX3RleHR9OjwvcD4KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRhdXRvY2xlYXJfYXJjaGl2ZW1haWxzX2lucHV0fTwvcD4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciIGlkPSJhdXRvY2xlYXIiIHskYXV0b2NsZWFyX3N0eWxlfT4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGF1dG9jbGVhcl9hY3Rpb25fdGV4dH06PC9wPgoJCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGF1dG9jbGVhcl92YWx1ZV9pbnB1dH0mbmJzcDt7JGF1dG9jbGVhcl90aW1lX2lucHV0fSZuYnNwOyZuYnNwOyZuYnNwO3skYXV0b2NsZWFyX3RtcG1haWxzX2lucHV0fSZuYnNwO3skYXV0b2NsZWFyX3RtcG1haWxzX3RleHR9PC9wPgoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRkZWZhdWx0X2dyb3Vwc190ZXh0fTo8L3A+CgkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZGVmYXVsdF9ncm91cHNfaW5wdXR9PC9wPgoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRpc19odG1sX3RleHR9OjwvcD4KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpc19odG1sX2lucHV0fTwvcD4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZXRleHQiPnskbWF4bWFpbHNfdGV4dH06PC9wPgoJCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JG1heG1haWxzX2lucHV0fTwvcD4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZXRleHQiPnskcmVxdWVzdF9kZWxheV90ZXh0fTo8L3A+CgkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcmVxdWVzdF9kZWxheV9pbnB1dH1tcyZuYnNwOyZuYnNwOyZuYnNwOzwvcD4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHJhbmRvbV9kZWxheV90ZXh0fTo8L3A+CgkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcmFuZG9tX2RlbGF5X2lucHV0fTwvcD4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzdWJtaXRfcHJlZnN9PC9wPgoJCTwvZGl2PgoJeyRlbmRGb3JtfQoJeyRlbmRUYWJ9Cgl7aWYgJGxvZ3NfY291bnQ+MH0KCXskc3RhcnRMb2dzVGFifQoJCTxiciAvPgoJCXskc3RhcnRMb2dzRm9ybX0KCQk8dGFibGUgaWQ9ImxvZ3NfdGFibGUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMyIgY2xhc3M9InBhZ2V0YWJsZSI+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGggY2xhc3M9InBhZ2VpY29uIj57JHNlbGVjdGFsbF9sb2dzfTwvdGg+CgkJCQkJPHRoPnskZGF0ZV90ZXh0fTwvdGg+CgkJCQkJPHRoPnskc3ViamVjdF90ZXh0fTwvdGg+CgkJCQkJPHRoPnskZ3JvdXBzX3RleHR9PC90aD4KCQkJCQk8dGg+eyRzZW50YnlfdGV4dH08L3RoPgoJCQkJCTx0aCBjbGFzcz0icGFnZWljb24iPnskdmlld190ZXh0fTwvdGg+CgkJCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+eyRkZWxldGVfdGV4dH08L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5PgoJCQl7Zm9yZWFjaCBmcm9tPSRsb2dzIGl0ZW09bG9nfQoJCQkJPHRyIGNsYXNzPSJ7JGxvZy0+cm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skbG9nLT5yb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRsb2ctPnJvd2NsYXNzfSc7Ij4KCQkJCQk8dGQgY2xhc3M9ImNoZWNrYm94Ij57JGxvZy0+c2VsZWN0ZWR9PC90ZD4KCQkJCQk8dGQ+eyRsb2ctPnNlbmRfZGF0ZX08L3RkPgoJCQkJCTx0ZD57JGxvZy0+c3ViamVjdH08L3RkPgoJCQkJCTx0ZD57JGxvZy0+cmVjaXBpZW50X2dyb3Vwc308L3RkPgoJCQkJCTx0ZD57JGxvZy0+c2VudGJ5fTwvdGQ+CgkJCQkJPHRkPnskbG9nLT52aWV3fTwvdGQ+CgkJCQkJPHRkPnskbG9nLT5kZWxldGV9PC90ZD4KCQkJCTwvdHI+CgkJCXsvZm9yZWFjaH0KCQkJPC90Ym9keT4KCQk8L3RhYmxlPgoJCTxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIiBzdHlsZT0ibWFyZ2luOiAxZW0gMyUgMCAwOyIgPgoJCQk8ZGl2IHN0eWxlPSJtYXJnaW46IDAgMCAxZW0gMDsgZmxvYXQ6IHJpZ2h0OyB0ZXh0LWFsaWduOiByaWdodCI+CgkJCQl7JGRlbGV0ZV9zZWxlY3RlZF9sb2dzfQoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4KCQk8L2Rpdj4KCQl7JGVuZEZvcm19Cgl7JGVuZFRhYn0KCXsvaWZ9CnskZW5kVGFiQ29udGVudH0=]]></data>
	</file>
	<file>
	  <filename>/templates/editMail.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2xpdGVyYWx9CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLy88IVtDREFUQVsKdmFyIHJlcXVlc3QgPSBmYWxzZTsKCi8vIHNldHVwIHRoZSByZXF1ZXN0CmZ1bmN0aW9uIHNldFJlcXVlc3QocXVlcnlfc3RyaW5nKSB7CgkvLyBjcmVhdGUgcmVxdWVzdAoJaWYgKHdpbmRvdy5YTUxIdHRwUmVxdWVzdCkgewoJCXJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsgLy8gTW96aWxsYSwgU2FmYXJpLCBPcGVyYQoJfSBlbHNlIGlmICh3aW5kb3cuQWN0aXZlWE9iamVjdCkgewoJCXRyeSB7CgkJCXJlcXVlc3QgPSBuZXcgQWN0aXZlWE9iamVjdCgnTXN4bWwyLlhNTEhUVFAnKTsgLy8gSUUgNQoJCX0gY2F0Y2ggKGUpIHsKCQkJdHJ5IHsKCQkJCXJlcXVlc3QgPSBuZXcgQWN0aXZlWE9iamVjdCgnTWljcm9zb2Z0LlhNTEhUVFAnKTsgLy8gSUUgNgoJCQl9IGNhdGNoIChlKSB7fQoJCX0KCX0KCgkvLyBjaGVjayBmb3IgcmVxdWVzdAoJaWYgKCFyZXF1ZXN0KSB7CgkJYWxlcnQoInsvbGl0ZXJhbH17JGVycm9yX3htbGh0dHBfaW5zdGFuY2V9e2xpdGVyYWx9Iik7CgkJcmV0dXJuIGZhbHNlOwoJfSBlbHNlIHsKCQkvLyBvcGVuIHJlcXVlc3QKCQlyZXF1ZXN0Lm9wZW4oJ3Bvc3QnLCB7L2xpdGVyYWx9J3skdXJsfSd7bGl0ZXJhbH0rcXVlcnlfc3RyaW5nLCB0cnVlKTsKCQkvLyBzZW5kIHJlcXVlc3QgaGVhZGVyCgkJcmVxdWVzdC5zZXRSZXF1ZXN0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyk7CgkJLy8gc2VuZCByZXF1ZXN0CgkJcmVxdWVzdC5zZW5kKG51bGwpOwoJCS8vIGV2YWwgcmVxdWVzdAoJCXJlcXVlc3Qub25yZWFkeXN0YXRlY2hhbmdlID0gaW50ZXJwcmV0UmVxdWVzdDsKCX0KfQoKLy8gZXZhbCByZXF1ZXN0CmZ1bmN0aW9uIGludGVycHJldFJlcXVlc3QoKSB7Cglzd2l0Y2ggKHJlcXVlc3QucmVhZHlTdGF0ZSkgewoJCWNhc2UgNDoKCQkJaWYgKHJlcXVlc3Quc3RhdHVzICE9IDIwMCkgewoJCQkJYWxlcnQoInsvbGl0ZXJhbH17JGVycm9yX3JlcXVlc3Rfc3RhdHVzfXtsaXRlcmFsfVxuIityZXF1ZXN0LnN0YXR1cyk7CgkJCX0gZWxzZSB7CgkJCQl2YXIgY2hrIAkJCQk9IGZhbHNlOwoJCQkJdmFyIGVycm9yX3VzZXJzIAkJPSAiey9saXRlcmFsfXskbm91c2Vyc317bGl0ZXJhbH0iOwoJCQkJdmFyIHJlc3BvbnNlIAkJCT0gcmVxdWVzdC5yZXNwb25zZVRleHQ7CgkJCQl2YXIgbXlSZWdFeHAgCQkJPSAvey9saXRlcmFsfXskaWR9e2xpdGVyYWx9cmVzcG9uc2U6Z3JvdXBzPSguKlteO10pO3RvdGFsX3VzZXJzPShcZCspO3Byb2Nlc3NlZF91c2Vycz0oXGQrKTtyZWNpcGllbnRzPShcZCspO2dyb3Vwc19jaGFuZ2VkPSgxfDApO3Jlc2VuZD0oW2EtekEtWl17Myw1fSk6ey9saXRlcmFsfXskaWR9e2xpdGVyYWx9ZW5kX3Jlc3BvbnNlLzsKCQkJCXZhciBteVJlc3BvbnNlIAkJCT0gbXlSZWdFeHAuZXhlYyhyZXNwb25zZSk7CgkJCQlpZihteVJlc3BvbnNlIT1udWxsKSB7CgkJCQkJdmFyIGdyb3VwcyAJCQkJPSBteVJlc3BvbnNlWzFdOwoJCQkJCXZhciB0b3RhbF91c2VycyAJCT0gZXZhbChteVJlc3BvbnNlWzJdKTsKCQkJCQl2YXIgcHJvY2Vzc2VkX3VzZXJzIAk9IGV2YWwobXlSZXNwb25zZVszXSk7CgkJCQkJdmFyIHJlY2lwaWVudHMgCQkJPSBldmFsKG15UmVzcG9uc2VbNF0pOwoJCQkJCXZhciBncm91cHNfY2hhbmdlZCAJCT0gZXZhbChteVJlc3BvbnNlWzVdKTsKCQkJCQl2YXIgcmVzZW5kIAkJCQk9IG15UmVzcG9uc2VbNl07CgkJCQkJdmFyIHJlbWFpbmluZyAJCQk9IGV2YWwoMCk7CgkJCQkJdmFyIHByb2NlZWQgCQkJPSB0cnVlOwoJCQkJCWlmKHRvdGFsX3VzZXJzPjApIHsKCQkJCQkJdmFyIGNvbmZpcm1NZXNzYWdlID0gIiI7CgkJCQkJCWlmKGdyb3Vwc19jaGFuZ2VkPT0xKSB7CgkJCQkJCQljb25maXJtUHJlTWVzc2FnZSA9ICJ7L2xpdGVyYWx9eyRncm91cHNfY2hhbmdlZH17bGl0ZXJhbH0iOwoJCQkJCQkJcHJvY2VlZCA9IENvbmZpcm1TdWJtaXQoY29uZmlybVByZU1lc3NhZ2UpOwoJCQkJCQl9CgkJCQkJCWlmKHByb2NlZWQ9PXRydWUpIHsKCQkJCQkJCWlmKHJlc2VuZD09ImFsbCIpIHsKCQkJCQkJCQljb25maXJtTWVzc2FnZSA9ICJ7L2xpdGVyYWx9eyRyZXNlbmRhbGxfY29uZmlybX17bGl0ZXJhbH1cblxuey9saXRlcmFsfXskZ3JvdXBzX3RleHR9e2xpdGVyYWx9OlxuIisgZ3JvdXBzICsiXG5cbnsvbGl0ZXJhbH17JHRvdGFsdXNlcnN9e2xpdGVyYWx9OlxuIisgdG90YWxfdXNlcnM7CgkJCQkJCQl9CgkJCQkJCQllbHNlIGlmKHJlc2VuZD09Im5ldyIpIHsKCQkJCQkJCQlyZW1haW5pbmcgCQk9IGV2YWwodG90YWxfdXNlcnMtcHJvY2Vzc2VkX3VzZXJzKTsKCQkJCQkJCQlpZihyZW1haW5pbmcgPiAwKQoJCQkJCQkJCQljb25maXJtTWVzc2FnZSA9ICJ7L2xpdGVyYWx9eyRyZXNlbmRuZXdfY29uZmlybX17bGl0ZXJhbH1cblxuey9saXRlcmFsfXskZ3JvdXBzX3RleHR9e2xpdGVyYWx9OlxuIisgZ3JvdXBzICsiXG5cbnsvbGl0ZXJhbH17JHRvdGFsdXNlcnN9e2xpdGVyYWx9OlxuIisgdG90YWxfdXNlcnMgKyJcblxuey9saXRlcmFsfXskcHJvY2Vzc2VkX3VzZXJzfXtsaXRlcmFsfTpcbiIrIHByb2Nlc3NlZF91c2VycysiXG5cbnsvbGl0ZXJhbH17JHJlY2lwaWVudHN9e2xpdGVyYWx9OlxuIiArIHJlY2lwaWVudHMgKyJcblxuey9saXRlcmFsfXskcmVtYWluaW5nfXtsaXRlcmFsfTpcbiIrIHJlbWFpbmluZzsKCQkJCQkJCQllbHNlIHsKCQkJCQkJCQkJYWxlcnQoZXJyb3JfdXNlcnMpOwoJCQkJCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQkJCQkJfQoJCQkJCQkJfQoJCQkJCQkJZWxzZSBpZihyZXNlbmQ9PSJlcnJvciIpIHsKCQkJCQkJCQlyZW1haW5pbmcgCQk9IGV2YWwodG90YWxfdXNlcnMtcmVjaXBpZW50cyk7CgkJCQkJCQkJaWYocmVtYWluaW5nID4gMCkKCQkJCQkJCQkJY29uZmlybU1lc3NhZ2UgPSAiey9saXRlcmFsfXskcmVzZW5kZXJyb3JfY29uZmlybX17bGl0ZXJhbH1cblxuey9saXRlcmFsfXskZ3JvdXBzX3RleHR9e2xpdGVyYWx9OlxuIisgZ3JvdXBzICsiXG5cbnsvbGl0ZXJhbH17JHRvdGFsdXNlcnN9e2xpdGVyYWx9OlxuIisgdG90YWxfdXNlcnMgKyJcblxuey9saXRlcmFsfXskcHJvY2Vzc2VkX3VzZXJzfXtsaXRlcmFsfTpcbiIrIHByb2Nlc3NlZF91c2VycysiXG5cbnsvbGl0ZXJhbH17JHJlY2lwaWVudHN9e2xpdGVyYWx9OlxuIiArIHJlY2lwaWVudHMgKyJcblxuey9saXRlcmFsfXskcmVtYWluaW5nfXtsaXRlcmFsfTpcbiIrIHJlbWFpbmluZzsKCQkJCQkJCQllbHNlIHsKCQkJCQkJCQkJYWxlcnQoZXJyb3JfdXNlcnMpOwoJCQkJCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQkJCQkJfQoJCQkJCQkJfQoJCQkJCQkJY2hrID0gQ29uZmlybVN1Ym1pdChjb25maXJtTWVzc2FnZSk7IAoJCQkJCQkJaWYoY2hrPT10cnVlKSB7CgkJCQkJCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInsvbGl0ZXJhbH17JGlkfXtsaXRlcmFsfXN1Ym1pdF9mb3JtIikudmFsdWUgPSByZXNlbmQ7CgkJCQkJCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInsvbGl0ZXJhbH17JGlkfXtsaXRlcmFsfW1vZHVsZWZvcm1fbXlGb3JtIikuc3VibWl0KCk7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9IGVsc2UgewoJCQkJCQlhbGVydChlcnJvcl91c2Vycyk7CgkJCQkJfQoJCQkJfSBlbHNlIHsKCQkJCQlhbGVydCgiey9saXRlcmFsfXskZXJyb3JfYWpheH17bGl0ZXJhbH0iK3Jlc3BvbnNlKTsKCQkJCX0KCQkJfQoJCQlicmVhazsKCQlkZWZhdWx0OmJyZWFrOwoJfQp9CgpmdW5jdGlvbiBDb25maXJtU3VibWl0KGNvbmZpcm1NZXNzYWdlKSB7Cgl2YXIgY2hrID0gd2luZG93LmNvbmZpcm0oY29uZmlybU1lc3NhZ2UpOwoJcmV0dXJuIChjaGspOwp9CgpmdW5jdGlvbiBjaGVja1RoaXNPdXQoc3VibWl0VHlwZSkgewoJdmFyIHNlbGVjdGVkX2dyb3VwcyA9IDA7Cgl2YXIgZ3JvdXBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyb3VwcyIpOwoJaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1lc3NhZ2UiKSkKCQl2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtZXNzYWdlIikudmFsdWU7Cgl2YXIgY3VycmVudF9ncm91cCA9ICcnOwoJdmFyIGdyb3VwX2lkcyA9ICcnOwoJdmFyIGVycm9yID0gZmFsc2U7Cgl2YXIgZXJyb3JfbWVzc2FnZSA9ICcnOwoJCglmb3IoaT0wOyBpPGdyb3Vwcy5sZW5ndGg7IGkrKykgewoJCWlmKGdyb3Vwc1tpXS5zZWxlY3RlZD09dHJ1ZSkgewoJCQlzZWxlY3RlZF9ncm91cHMrKzsKCQkJY3VycmVudF9ncm91cCA9IGdyb3Vwc1tpXS52YWx1ZS5zcGxpdCgiLCIpOwoJCQlncm91cF9pZHMgPSBncm91cF9pZHMgKyAiJnsvbGl0ZXJhbH17JGlkfXtsaXRlcmFsfWdyb3VwXyIgKyBpICsgIj0iICsgY3VycmVudF9ncm91cFswXSArICIsIiArIGN1cnJlbnRfZ3JvdXBbMV07CgkJfQoJfQoJaWYoc2VsZWN0ZWRfZ3JvdXBzID09IDApIHsKCQllcnJvciA9IHRydWU7CgkJZXJyb3JfbWVzc2FnZSA9IGVycm9yX21lc3NhZ2UgKyAiey9saXRlcmFsfXskbm9ncm91cHN9e2xpdGVyYWx9XG4iOwoJfQoJaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1lc3NhZ2UiKSAmJiBtZXNzYWdlID09ICcnKSB7CgkJZXJyb3IgPSB0cnVlOwoJCWVycm9yX21lc3NhZ2UgPSBlcnJvcl9tZXNzYWdlICsgInsvbGl0ZXJhbH17JG5vbWVzc2FnZX17bGl0ZXJhbH1cbiI7Cgl9CglpZihlcnJvciA9PSBmYWxzZSkgewoJCWdyb3VwX2lkcyA9IGdyb3VwX2lkcyArICImey9saXRlcmFsfXskaWR9e2xpdGVyYWx9cmVzZW5kPSIgKyBzdWJtaXRUeXBlOwoJCXNldFJlcXVlc3QoZ3JvdXBfaWRzKTsKCX0gZWxzZSB7CgkJYWxlcnQoZXJyb3JfbWVzc2FnZSk7Cgl9Cn0KLy9dXT4KPC9zY3JpcHQ+CnsvbGl0ZXJhbH0Ke2lmIGlzc2V0KCRlcnJvcm1lc3NhZ2UpICYmICRlcnJvcm1lc3NhZ2UhPScnfQo8ZGl2IGNsYXNzPSJwYWdlZXJyb3Jjb250YWluZXIiPgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8dWwgY2xhc3M9InBhZ2VlcnJvciI+PGxpPnskZXJyb3JtZXNzYWdlfTwvbGk+PC91bD4KCTwvZGl2Pgo8L2Rpdj4Key9pZn0Ke2lmIGlzc2V0KCRtZXNzYWdlKSAmJiAkbWVzc2FnZSE9Jyd9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cD57JG1lc3NhZ2V9PC9wPgo8L2Rpdj4Key9pZn0KeyRzdGFydEZvcm19CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskZ3JvdXBzX3RleHR9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZ3JvdXBzX2lucHV0fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskc3ViamVjdF90ZXh0fTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1YmplY3RfaW5wdXR9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRtYWlsYm9keV90ZXh0fSo6PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRtYWlsYm9keV9pbnB1dH08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHNhdmVfdGV4dH06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzYXZlX2lucHV0fTwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGNhbmNlbH0mbmJzcDsKCQk8aW5wdXQgbmFtZT0ieyRpZH1zdWJtaXRfYWxsIiBpZD0iYWxsIiB2YWx1ZT0ieyRyZXNlbmRfYWxsfSIgdHlwZT0iYnV0dG9uIiBvbkNsaWNrPSJjaGVja1RoaXNPdXQodGhpcy5pZCk7IiAvPgoJCXtpZiBpc3NldCgkcmVzZW5kX25ldyl9CgkJJm5ic3A7PGlucHV0IG5hbWU9InskaWR9c3VibWl0X25ldyIgaWQ9Im5ldyIgdmFsdWU9InskcmVzZW5kX25ld30iIHR5cGU9ImJ1dHRvbiIgb25DbGljaz0iY2hlY2tUaGlzT3V0KHRoaXMuaWQpOyIgLz4KCQl7L2lmfQoJCXtpZiBpc3NldCgkcmVzZW5kX2Vycm9yKX0KCQkmbmJzcDs8aW5wdXQgbmFtZT0ieyRpZH1zdWJtaXRfZXJyb3IiIGlkPSJlcnJvciIgdmFsdWU9InskcmVzZW5kX2Vycm9yfSIgdHlwZT0iYnV0dG9uIiBvbkNsaWNrPSJjaGVja1RoaXNPdXQodGhpcy5pZCk7IiAvPgoJCXsvaWZ9Cgk8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJoaWRkZW4iPnskaGlkZGVufTwvZGl2Pgp7JGVuZEZvcm19Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/error.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZWVycm9yY29udGFpbmVyIj4KPGgzPnskZXJyb3J9PC9oMz4Ke2lmIGlzc2V0KCRlcnJvcm1lc3NhZ2UpICYmICRlcnJvcm1lc3NhZ2UhPScnfQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8dWwgY2xhc3M9InBhZ2VlcnJvciI+PGxpPnskZXJyb3JtZXNzYWdlfTwvbGk+PC91bD4KCTwvZGl2Pgp7L2lmfQoJeyRva19saW5rfQo8L2Rpdj4K]]></data>
	</file>
	<file>
	  <filename>/templates/newMail.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2xpdGVyYWx9CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLy88IVtDREFUQVsKdmFyIHJlcXVlc3QgPSBmYWxzZTsKCi8vIHNldHVwIHRoZSByZXF1ZXN0CmZ1bmN0aW9uIHNldFJlcXVlc3QocXVlcnlfc3RyaW5nKSB7CgkvLyBjcmVhdGUgcmVxdWVzdAoJaWYgKHdpbmRvdy5YTUxIdHRwUmVxdWVzdCkgewoJCXJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsgLy8gTW96aWxsYSwgU2FmYXJpLCBPcGVyYQoJfSBlbHNlIGlmICh3aW5kb3cuQWN0aXZlWE9iamVjdCkgewoJCXRyeSB7CgkJCXJlcXVlc3QgPSBuZXcgQWN0aXZlWE9iamVjdCgnTXN4bWwyLlhNTEhUVFAnKTsgLy8gSUUgNQoJCX0gY2F0Y2ggKGUpIHsKCQkJdHJ5IHsKCQkJCXJlcXVlc3QgPSBuZXcgQWN0aXZlWE9iamVjdCgnTWljcm9zb2Z0LlhNTEhUVFAnKTsgLy8gSUUgNgoJCQl9IGNhdGNoIChlKSB7fQoJCX0KCX0KCgkvLyBjaGVjayBmb3IgcmVxdWVzdAoJaWYgKCFyZXF1ZXN0KSB7CgkJYWxlcnQoInsvbGl0ZXJhbH17JGVycm9yX3htbGh0dHBfaW5zdGFuY2V9e2xpdGVyYWx9Iik7CgkJcmV0dXJuIGZhbHNlOwoJfSBlbHNlIHsKCQkvLyBvcGVuIHJlcXVlc3QKCQlyZXF1ZXN0Lm9wZW4oJ3Bvc3QnLCB7L2xpdGVyYWx9J3skdXJsfSd7bGl0ZXJhbH0rcXVlcnlfc3RyaW5nLCB0cnVlKTsKCQkvLyBzZW5kIHJlcXVlc3QgaGVhZGVyCgkJcmVxdWVzdC5zZXRSZXF1ZXN0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyk7CgkJLy8gc2VuZCByZXF1ZXN0CgkJcmVxdWVzdC5zZW5kKG51bGwpOwoJCS8vIGV2YWwgcmVxdWVzdAoJCXJlcXVlc3Qub25yZWFkeXN0YXRlY2hhbmdlID0gaW50ZXJwcmV0UmVxdWVzdDsKCX0KfQoKLy8gZXZhbCByZXF1ZXN0CmZ1bmN0aW9uIGludGVycHJldFJlcXVlc3QoKSB7Cglzd2l0Y2ggKHJlcXVlc3QucmVhZHlTdGF0ZSkgewoJCWNhc2UgNDoKCQkJaWYgKHJlcXVlc3Quc3RhdHVzICE9IDIwMCkgewoJCQkJYWxlcnQoInsvbGl0ZXJhbH17JGVycm9yX3JlcXVlc3Rfc3RhdHVzfXtsaXRlcmFsfVxuIityZXF1ZXN0LnN0YXR1cyk7CgkJCX0gZWxzZSB7CgkJCQl2YXIgY2hrIAkJCT0gZmFsc2U7CgkJCQl2YXIgY29uZmlybU1lc3NhZ2UgPSAiey9saXRlcmFsfXskY29uZmlybXN1Ym1pdH17bGl0ZXJhbH0iOwoJCQkJdmFyIGVycm9yX3VzZXJzIAk9ICJ7L2xpdGVyYWx9eyRub3VzZXJzfXtsaXRlcmFsfSI7CgkJCQl2YXIgcmVzcG9uc2UgCQk9IHJlcXVlc3QucmVzcG9uc2VUZXh0OwoJCQkJdmFyIG15UmVnRXhwIAkJPSAvey9saXRlcmFsfXskaWR9e2xpdGVyYWx9cmVzcG9uc2U6Z3JvdXBzPSguKlteO10pO3RvdGFsX3VzZXJzPShcZCspO3Byb2Nlc3NlZF91c2Vycz0oXGQrKTtyZWNpcGllbnRzPShcZCspO2dyb3Vwc19jaGFuZ2VkPTE7cmVzZW5kPWFsbDp7L2xpdGVyYWx9eyRpZH17bGl0ZXJhbH1lbmRfcmVzcG9uc2UvOwoJCQkJdmFyIG15UmVzcG9uc2UgCQk9IG15UmVnRXhwLmV4ZWMocmVzcG9uc2UpOwoJCQkJaWYobXlSZXNwb25zZSE9bnVsbCkgewoJCQkJCXZhciBncm91cHMgCQkJPSBteVJlc3BvbnNlWzFdOwoJCQkJCXZhciB0b3RhbF91c2VycyAJPSBteVJlc3BvbnNlWzJdOwoJCQkJCWlmKHRvdGFsX3VzZXJzPjApIHsKCQkJCQkJY2hrID0gQ29uZmlybVN1Ym1pdChjb25maXJtTWVzc2FnZSArICJcblxuIiArICJ7L2xpdGVyYWx9eyRncm91cHNfdGV4dH17bGl0ZXJhbH06XG4iKyBncm91cHMgKyJcblxuey9saXRlcmFsfXskdG90YWx1c2Vyc317bGl0ZXJhbH06XG4iKyB0b3RhbF91c2Vycyk7CgkJCQkJCWlmKGNoaz09dHJ1ZSkgewoJCQkJCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInsvbGl0ZXJhbH17JGlkfXtsaXRlcmFsfXN1Ym1pdF9mb3JtIikudmFsdWUgPSB0cnVlOwoJCQkJCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInsvbGl0ZXJhbH17JGlkfXtsaXRlcmFsfW1vZHVsZWZvcm1fbXlGb3JtIikuc3VibWl0KCk7CgkJCQkJCX0KCQkJCQl9IGVsc2UgewoJCQkJCQlhbGVydChlcnJvcl91c2Vycyk7CgkJCQkJfQoJCQkJfSBlbHNlIHsKCQkJCQlhbGVydCgiey9saXRlcmFsfXskZXJyb3JfYWpheH17bGl0ZXJhbH0iK3Jlc3BvbnNlKTsKCQkJCX0KCQkJfQoJCQlicmVhazsKCQlkZWZhdWx0OmJyZWFrOwoJfQp9CgpmdW5jdGlvbiBDb25maXJtU3VibWl0KGNvbmZpcm1NZXNzYWdlKSB7Cgl2YXIgY2hrID0gd2luZG93LmNvbmZpcm0oY29uZmlybU1lc3NhZ2UpOwoJcmV0dXJuIChjaGspOwp9CgpmdW5jdGlvbiBjaGVja1RoaXNPdXQoKSB7Cgl2YXIgc2VsZWN0ZWRfZ3JvdXBzID0gMDsKCXZhciBncm91cHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JvdXBzIik7CglpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWVzc2FnZSIpKQoJCXZhciBtZXNzYWdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1lc3NhZ2UiKS52YWx1ZTsKCXZhciBjdXJyZW50X2dyb3VwID0gJyc7Cgl2YXIgZ3JvdXBfaWRzID0gJyc7Cgl2YXIgZXJyb3IgPSBmYWxzZTsKCXZhciBlcnJvcl9tZXNzYWdlID0gJyc7CgkKCWZvcihpPTA7IGk8Z3JvdXBzLmxlbmd0aDsgaSsrKSB7CgkJaWYoZ3JvdXBzW2ldLnNlbGVjdGVkPT10cnVlKSB7CgkJCXNlbGVjdGVkX2dyb3VwcysrOwoJCQljdXJyZW50X2dyb3VwID0gZ3JvdXBzW2ldLnZhbHVlLnNwbGl0KCIsIik7CgkJCWdyb3VwX2lkcyA9IGdyb3VwX2lkcyArICImey9saXRlcmFsfXskaWR9e2xpdGVyYWx9Z3JvdXBfIiArIGkgKyAiPSIgKyBjdXJyZW50X2dyb3VwWzBdICsgIiwiICsgY3VycmVudF9ncm91cFsxXTsKCQl9Cgl9CglpZihzZWxlY3RlZF9ncm91cHMgPT0gMCkgewoJCWVycm9yID0gdHJ1ZTsKCQllcnJvcl9tZXNzYWdlID0gZXJyb3JfbWVzc2FnZSArICJ7L2xpdGVyYWx9eyRub2dyb3Vwc317bGl0ZXJhbH1cbiI7Cgl9CglpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWVzc2FnZSIpICYmIG1lc3NhZ2UgPT0gJycpIHsKCQllcnJvciA9IHRydWU7CgkJZXJyb3JfbWVzc2FnZSA9IGVycm9yX21lc3NhZ2UgKyAiey9saXRlcmFsfXskbm9tZXNzYWdlfXtsaXRlcmFsfVxuIjsKCX0KCWlmKGVycm9yID09IGZhbHNlKSB7CgkJc2V0UmVxdWVzdChncm91cF9pZHMpOwoJfSBlbHNlIHsKCQlhbGVydChlcnJvcl9tZXNzYWdlKTsKCX0KfQovL11dPgo8L3NjcmlwdD4Key9saXRlcmFsfQo8aDM+eyRoZWFkaW5nfTwvaDM+CntpZiBpc3NldCgkZXJyb3JtZXNzYWdlKSAmJiAkZXJyb3JtZXNzYWdlIT0nJ30KPGRpdiBjbGFzcz0icGFnZWVycm9yY29udGFpbmVyIj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHVsIGNsYXNzPSJwYWdlZXJyb3IiPjxsaT57JGVycm9ybWVzc2FnZX08L2xpPjwvdWw+Cgk8L2Rpdj4KPC9kaXY+CnsvaWZ9CntpZiBpc3NldCgkbWVzc2FnZSkgJiYgJG1lc3NhZ2UhPScnfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHA+eyRtZXNzYWdlfTwvcD4KPC9kaXY+CnsvaWZ9Cnskc3RhcnRGb3JtfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGdyb3Vwc190ZXh0fTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGdyb3Vwc19pbnB1dH08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHN1YmplY3RfdGV4dH06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzdWJqZWN0X2lucHV0fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskbWFpbGJvZHlfdGV4dH0qOjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskbWFpbGJvZHlfaW5wdXR9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRzYXZlX3RleHR9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc2F2ZV9pbnB1dH08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij4KCQl7JGNhbmNlbH0mbmJzcDsKCQk8aW5wdXQgbmFtZT0ieyRpZH1zdWJtaXQiIGlkPSJ7JGlkfXN1Ym1pdCIgdmFsdWU9Inskc3VibWl0fSIgdHlwZT0iYnV0dG9uIiBvbkNsaWNrPSJjaGVja1RoaXNPdXQoKTsiIC8+Cgk8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJoaWRkZW4iPnskaGlkZGVufTwvZGl2Pgp7JGVuZEZvcm19Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/readMail.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskaGVhZGluZ308L2gzPgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJeyRiYWNrX2xpbmt9Jm5ic3A7Jm5ic3A7Jm5ic3A7fCZuYnNwOyZuYnNwOyZuYnNwOwoJCXskbmV3X2xpbmt9Jm5ic3A7Jm5ic3A7Jm5ic3A7fCZuYnNwOyZuYnNwOyZuYnNwOwoJCXtpZiBpc3NldCgkZWRpdF9saW5rKX17JGVkaXRfbGlua30mbmJzcDsmbmJzcDsmbmJzcDt8Jm5ic3A7Jm5ic3A7Jm5ic3A7ey9pZn0KCQl7JHJlc2VuZF9hbGx9Jm5ic3A7Jm5ic3A7Jm5ic3A7fCZuYnNwOyZuYnNwOyZuYnNwOwoJCXtpZiBpc3NldCgkcmVzZW5kX25ldyl9CgkJeyRyZXNlbmRfbmV3fSZuYnNwOyZuYnNwOyZuYnNwO3wmbmJzcDsmbmJzcDsmbmJzcDsKCQl7L2lmfQoJCXtpZiBpc3NldCgkcmVzZW5kX2Vycm9yKX0KCQl7JHJlc2VuZF9lcnJvcn0mbmJzcDsmbmJzcDsmbmJzcDt8Jm5ic3A7Jm5ic3A7Jm5ic3A7CgkJey9pZn0KCQl7aWYgaXNzZXQoJHZpZXdfbG9nKX0KCQl7JHZpZXdfbG9nfSZuYnNwOyZuYnNwOyZuYnNwO3wmbmJzcDsmbmJzcDsmbmJzcDsKCQl7L2lmfQoJCXskZGVsZXRlX2xpbmt9CgkJPGJyIC8+Cgk8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGdyb3Vwc190ZXh0fTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGdyb3Vwc19pbnB1dH08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHN1YmplY3RfdGV4dH06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzdWJqZWN0X2lucHV0fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskbWFpbGJvZHlfdGV4dH0qOjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskbWFpbGJvZHlfaW5wdXR9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPgoJCXskYmFja19saW5rfSZuYnNwOyZuYnNwOyZuYnNwO3wmbmJzcDsmbmJzcDsmbmJzcDsKCQl7JG5ld19saW5rfSZuYnNwOyZuYnNwOyZuYnNwO3wmbmJzcDsmbmJzcDsmbmJzcDsKCQl7aWYgaXNzZXQoJGVkaXRfbGluayl9eyRlZGl0X2xpbmt9Jm5ic3A7Jm5ic3A7Jm5ic3A7fCZuYnNwOyZuYnNwOyZuYnNwO3svaWZ9CgkJeyRyZXNlbmRfYWxsfSZuYnNwOyZuYnNwOyZuYnNwO3wmbmJzcDsmbmJzcDsmbmJzcDsKCQl7aWYgaXNzZXQoJHJlc2VuZF9uZXcpfQoJCXskcmVzZW5kX25ld30mbmJzcDsmbmJzcDsmbmJzcDt8Jm5ic3A7Jm5ic3A7Jm5ic3A7CgkJey9pZn0KCQl7aWYgaXNzZXQoJHJlc2VuZF9lcnJvcil9CgkJeyRyZXNlbmRfZXJyb3J9Jm5ic3A7Jm5ic3A7Jm5ic3A7fCZuYnNwOyZuYnNwOyZuYnNwOwoJCXsvaWZ9CgkJe2lmIGlzc2V0KCR2aWV3X2xvZyl9CgkJeyR2aWV3X2xvZ30mbmJzcDsmbmJzcDsmbmJzcDt8Jm5ic3A7Jm5ic3A7Jm5ic3A7CgkJey9pZn0KCQl7JGRlbGV0ZV9saW5rfQoJCTxiciAvPgoJPC9wPgo8L2Rpdj4K]]></data>
	</file>
	<file>
	  <filename>/templates/sendMail.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2xpdGVyYWx9CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPCEtLQp2YXIgcmVxdWVzdCA9IGZhbHNlOwp2YXIgZGVsYXkgPSB7L2xpdGVyYWx9eyRkZWxheX17bGl0ZXJhbH07CnZhciByYW5kb21fZGVsYXkgPSB7L2xpdGVyYWx9eyRyYW5kb21fZGVsYXl9e2xpdGVyYWx9Ci8vIHNldHVwIHRoZSByZXF1ZXN0CmZ1bmN0aW9uIHNldFJlcXVlc3QodmFsdWUpIHsKCS8vIGNyZWF0ZSByZXF1ZXN0CglpZiAod2luZG93LlhNTEh0dHBSZXF1ZXN0KSB7CgkJcmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOyAvLyBNb3ppbGxhLCBTYWZhcmksIE9wZXJhCgl9IGVsc2UgaWYgKHdpbmRvdy5BY3RpdmVYT2JqZWN0KSB7CgkJdHJ5IHsKCQkJcmVxdWVzdCA9IG5ldyBBY3RpdmVYT2JqZWN0KCdNc3htbDIuWE1MSFRUUCcpOyAvLyBJRSA1CgkJfSBjYXRjaCAoZSkgewoJCQl0cnkgewoJCQkJcmVxdWVzdCA9IG5ldyBBY3RpdmVYT2JqZWN0KCdNaWNyb3NvZnQuWE1MSFRUUCcpOyAvLyBJRSA2CgkJCX0gY2F0Y2ggKGUpIHt9CgkJfQoJfQoKCS8vIGNoZWNrIGZvciByZXF1ZXN0CglpZiAoIXJlcXVlc3QpIHsKCQlhbGVydCgiey9saXRlcmFsfXskZXJyb3JfeG1saHR0cF9pbnN0YW5jZX17bGl0ZXJhbH0iKTsKCQlyZXR1cm4gZmFsc2U7Cgl9IGVsc2UgewoJCS8vIG9wZW4gcmVxdWVzdAoJCXJlcXVlc3Qub3BlbignZ2V0Jywgey9saXRlcmFsfSd7JHVybH0ne2xpdGVyYWx9LCB0cnVlKTsKCQkvLyBzZW5kIHJlcXVlc3QgaGVhZGVyCgkJcmVxdWVzdC5zZXRSZXF1ZXN0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyk7CgkJLy8gc2VuZCByZXF1ZXN0CgkJcmVxdWVzdC5zZW5kKG51bGwpOwoJCS8vIGV2YWwgcmVxdWVzdAoJCXJlcXVlc3Qub25yZWFkeXN0YXRlY2hhbmdlID0gaW50ZXJwcmV0UmVxdWVzdDsKCX0KfQoKLy8gZXZhbCByZXF1ZXN0CmZ1bmN0aW9uIGludGVycHJldFJlcXVlc3QoKSB7Cglzd2l0Y2ggKHJlcXVlc3QucmVhZHlTdGF0ZSkgewoJCWNhc2UgNDoKCQkJaWYgKHJlcXVlc3Quc3RhdHVzICE9IDIwMCkgewoJCQkJYWxlcnQoInsvbGl0ZXJhbH17JGVycm9yX3JlcXVlc3Rfc3RhdHVzfXtsaXRlcmFsfVxuIityZXF1ZXN0LnN0YXR1cyk7CgkJCX0gZWxzZSB7CgkJCQl2YXIgcmVzcG9uc2UgPSByZXF1ZXN0LnJlc3BvbnNlVGV4dDsKCQkJCXZhciBteVJlZ0V4cCA9IC97L2xpdGVyYWx9eyRpZH17bGl0ZXJhbH1yZXNwb25zZTooY291bnRlcj0oXGQqKFxzLVxzXGQqKSk7c3RhdHVzPShbYS16XXs1LDd9KSl7MCwxfTt7MCwxfWVycm9yPShbLFxkXXswLDE2fSk6ey9saXRlcmFsfXskaWR9e2xpdGVyYWx9ZW5kX3Jlc3BvbnNlLzsKCQkJCXZhciBteVJlc3BvbnNlID0gbXlSZWdFeHAuZXhlYyhyZXNwb25zZSk7CgkJCQlpZihteVJlc3BvbnNlIT1udWxsKSB7CgkJCQkJdmFyIGNvdW50ZXIgPSBteVJlc3BvbnNlWzJdOwoJCQkJCXZhciBzdGF0dXMgPSBteVJlc3BvbnNlWzRdOwoJCQkJCXZhciBlcnJvcnMgPSBteVJlc3BvbnNlWzVdLnNwbGl0KCIsIik7CgkJCQkJdmFyIGVycm9yX21lc3NhZ2UgPSAnJzsKCQkJCQlpZihlcnJvcnMubGVuZ3RoPjApIHsKCQkJCQkJZm9yKGk9MDtpPGVycm9ycy5sZW5ndGg7aSsrKSB7CgkJCQkJCQlpZihldmFsKGVycm9yc1tpXSk9PTEpCgkJCQkJCQkJYWxlcnQoInsvbGl0ZXJhbH17JGVycm9yXzF9e2xpdGVyYWx9Iik7CgkJCQkJCQllbHNlIGlmKGV2YWwoZXJyb3JzW2ldKT09MikKCQkJCQkJCQlhbGVydCgiey9saXRlcmFsfXskZXJyb3JfMn17bGl0ZXJhbH0iKTsKCQkJCQkJCWVsc2UgaWYoZXZhbChlcnJvcnNbaV0pPT00KQoJCQkJCQkJCWFsZXJ0KCJ7L2xpdGVyYWx9eyRlcnJvcl80fXtsaXRlcmFsfSIpOwoJCQkJCQkJZWxzZSB7CgkJCQkJCQkJaWYoZXZhbChlcnJvcnNbaV0pPT0zKQoJCQkJCQkJCQllcnJvcl9tZXNzYWdlID0gZXJyb3JfbWVzc2FnZSArICc8YnIgLz57L2xpdGVyYWx9eyRlcnJvcl8zfXtsaXRlcmFsfSc7CgkJCQkJCQkJaWYoZXZhbChlcnJvcnNbaV0pPT01KQoJCQkJCQkJCQllcnJvcl9tZXNzYWdlID0gZXJyb3JfbWVzc2FnZSArICc8YnIgLz57L2xpdGVyYWx9eyRlcnJvcl81fXtsaXRlcmFsfSc7CgkJCQkJCQkJaWYoZXZhbChlcnJvcnNbaV0pPT02KQoJCQkJCQkJCQllcnJvcl9tZXNzYWdlID0gZXJyb3JfbWVzc2FnZSArICc8YnIgLz57L2xpdGVyYWx9eyRlcnJvcl82fXtsaXRlcmFsfSc7CgkJCQkJCQkJaWYoZXZhbChlcnJvcnNbaV0pPT03KQoJCQkJCQkJCQllcnJvcl9tZXNzYWdlID0gZXJyb3JfbWVzc2FnZSArICc8YnIgLz57L2xpdGVyYWx9eyRlcnJvcl83fXtsaXRlcmFsfSc7CgkJCQkJCQkJaWYoZXZhbChlcnJvcnNbaV0pPT04KQoJCQkJCQkJCQllcnJvcl9tZXNzYWdlID0gZXJyb3JfbWVzc2FnZSArICc8YnIgLz57L2xpdGVyYWx9eyRlcnJvcl84fXtsaXRlcmFsfSc7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQkJaWYoZXJyb3JfbWVzc2FnZSAhPSAnJykgewoJCQkJCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Vycm9ycycpLmlubmVySFRNTCA9IGVycm9yX21lc3NhZ2U7CgkJCQkJCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFnZWVycm9yY29udGFpbmVyJykuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CgkJCQkJCX0KCQkJCQl9CgkJCQkJCgkJCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2Nlc3NpbmcnKS5pbm5lckhUTUwgPSBjb3VudGVyOwoJCQkJCWlmKHN0YXR1cz09J3NlbmRpbmcnKSB7CgkJCQkJCWlmKGRlbGF5ID4gMCkKCQkJCQkJCXdpbmRvdy5zZXRUaW1lb3V0KCJzZXRSZXF1ZXN0KCkiLCAocmFuZG9tX2RlbGF5PT10cnVlP3BhcnNlSW50KGV2YWwoTWF0aC5yYW5kb20oKSAqIGRlbGF5KSk6ZGVsYXkpKTsKCQkJCQkJZWxzZQoJCQkJCQkJc2V0UmVxdWVzdCgpOwoJCQkJCX0gZWxzZSBpZiAoc3RhdHVzPT0icmVhZHkiKSB7CgkJCQkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZW5kaW1nJykuaW5uZXJIVE1MID0gJyc7CgkJCQkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZXNzYWdlJykuaW5uZXJIVE1MID0gJ3svbGl0ZXJhbH17JG1lc3NhZ2V9e2xpdGVyYWx9JzsKCQkJCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvdW50ZXInKS5pbm5lckhUTUwgPSAney9saXRlcmFsfXskb2tfbGlua317bGl0ZXJhbH0nOwoJCQkJCX0KCQkJCX0gZWxzZSB7CgkJCQkJYWxlcnQoInsvbGl0ZXJhbH17JGVycm9yX2FqYXh9e2xpdGVyYWx9IityZXNwb25zZSk7CgkJCQl9CgkJCX0KCQkJYnJlYWs7CgkJZGVmYXVsdDpicmVhazsKCX0KfQpkb2N1bWVudC5vbmxvYWQ9d2luZG93LnNldFRpbWVvdXQoInNldFJlcXVlc3QoKSIsIChyYW5kb21fZGVsYXk9PXRydWU/cGFyc2VJbnQoZXZhbChNYXRoLnJhbmRvbSgpICogZGVsYXkpKTpkZWxheSkpOwovLy0tPgo8L3NjcmlwdD4Key9saXRlcmFsfQo8aDM+eyRoZWFkaW5nfTwvaDM+CjxkaXYgY2xhc3M9InBhZ2VlcnJvcmNvbnRhaW5lciIgaWQ9InBhZ2VlcnJvcmNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTx1bCBjbGFzcz0icGFnZWVycm9yIj48bGkgaWQ9ImVycm9ycyI+PC9saT48L3VsPgoJPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPGRpdiBjbGFzcz0icGFnZW1jb250YWluZXIiPgoJCTxwIGNsYXNzPSJwYWdlbWVzc2FnZSIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyIj4KCQkJPGJyIC8+CgkJCTxzcGFuIGlkPSJzZW5kaW1nIj48aW1nIHNyYz0iLi4vbW9kdWxlcy9GRVVNYWlsZXIvaW1hZ2VzL2FqYXgtbG9hZGVyLmdpZiIgLz48YnIgLz48YnIgLz48L3NwYW4+CgkJCTxzcGFuIGlkPSJtZXNzYWdlIj57JHNlbmRtZXNzYWdlfTwvc3Bhbj48YnIgLz48YnIgLz4KCQkJPHNwYW4gaWQ9ImNvdW50ZXIiPnskY291bnRlcn08L3NwYW4+CgkJCTxiciAvPgoJCTwvcD4KCTwvZGl2Pgo8L2Rpdj4KCgo=]]></data>
	</file>
	<file>
	  <filename>/templates/viewLogs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2xpdGVyYWx9CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLy88IVtDREFUQVsKZnVuY3Rpb24gc2VsZWN0QWxsKG9iaikgewoJY2hlY2tib3hlcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImxvZ3MiKTsKCWlmIChvYmoudmFsdWUgPT0gMSkgewoJCWNoZWNrID0gdHJ1ZTsKCQlvYmoudmFsdWUgPSAwOwoJfQoJZWxzZSB7CgkJY2hlY2sgPSBmYWxzZTsKCQlvYmoudmFsdWUgPSAxOwoJfQoJZm9yIChpPTA7IGk8Y2hlY2tib3hlcy5sZW5ndGggOyBpKyspIHsKCQlpZiAoY2hlY2tib3hlc1tpXS50eXBlID09ICJjaGVja2JveCIpCgkJCWNoZWNrYm94ZXNbaV0uY2hlY2tlZD1jaGVjazsKCX0KfQoKZnVuY3Rpb24gdG9nZ2xlQWN0aXZlKGlkKSB7Cglkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9IChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9PSAiYmxvY2siKSA/ICJub25lIiA6ICJibG9jayI7Cglkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUudmlzaWJpbGl0eSA9IChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUudmlzaWJpbGl0eSA9PSAidmlzaWJsZSIpID8gImNvbGxhcHNlIiA6ICJ2aXNpYmxlIjsKfQovL11dPgo8L3NjcmlwdD4KCnsvbGl0ZXJhbH0KPGgzPnskaGVhZGluZ308L2gzPgp7aWYgaXNzZXQoJGVycm9ybWVzc2FnZSkgJiYgJGVycm9ybWVzc2FnZSE9Jyd9CjxkaXYgY2xhc3M9InBhZ2VlcnJvcmNvbnRhaW5lciI+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTx1bCBjbGFzcz0icGFnZWVycm9yIj48bGk+eyRlcnJvcm1lc3NhZ2V9PC9saT48L3VsPgoJPC9kaXY+CjwvZGl2Pgp7L2lmfQp7aWYgaXNzZXQoJG1lc3NhZ2UpICYmICRtZXNzYWdlIT0nJ30KPGRpdiBjbGFzcz0icGFnZW1jb250YWluZXIiPgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cD57JG1lc3NhZ2V9PC9wPgoJPC9kaXY+CjwvZGl2Pgp7L2lmfQoKPGZpZWxkc2V0Pgo8bGVnZW5kPnskZmlsdGVyX3RleHR9OjwvbGVnZW5kPgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPgoJCXskc3RhcnRGaWx0ZXJGb3JtfQoJCTxwPnskc29ydGJ5X3RleHR9OiB7JHNvcnRfYnl9IHwgeyRzb3J0X29yZGVyfSB8IHskbGltaXRfdGV4dH06IHskbGltaXR9IHwgeyRlcnJvcnNvbmx5X3RleHR9OiB7JGVycm9yc19vbmx5fSB8IHskc2F2ZWZpbHRlcl90ZXh0fTogeyRzYXZlZmlsdGVyfSB8IHskc3VibWl0fTwvcD4KCQl7JGVuZEZvcm19CgoJPC9kaXY+CjwvZGl2Pgo8L2ZpZWxkc2V0Pgo8YnIgLz4Ke2lmICRjdXJyZW50bG9nc19jb3VudD4wfQp7JHN0YXJ0TG9nc0Zvcm19CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPgoJCTxwPnskY2FuY2VsfSZuYnNwO3skcmVzZW5kX2FsbH17aWYgaXNzZXQoJHJlc2VuZF9uZXcpfSZuYnNwO3skcmVzZW5kX25ld317L2lmfXtpZiBpc3NldCgkcmVzZW5kX2Vycm9ycyl9Jm5ic3A7eyRyZXNlbmRfZXJyb3JzfXsvaWZ9Jm5ic3A7eyRyZXNlbmRfc2VsZWN0ZWR9PC9wPgoJPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHN1YmplY3RfdGV4dH06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzdWJqZWN0fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskc2VudGJ5X3RleHR9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc2VudGJ5fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskZ3JvdXBzX3RleHR9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZ3JvdXBzfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskdG90YWxsb2dzX3RleHR9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskdG90YWxsb2dzX2NvdW50fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskZXJyb3Jsb2dzX3RleHR9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZXJyb3Jsb2dzX2NvdW50fTwvcD4KPC9kaXY+CntpZiAkcGFnZXNfY291bnQ+MH0KPGJyIC8+Cjx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjMiPgoJPHRib2R5PgoJCTx0cj4KCQkJPHRkPnskcGFnZXNfdGV4dH06PC90ZD4KCQkJPHRkPnskZmlyc3R9PC90ZD4KCQkJPHRkPnskcHJldn08L3RkPgoJCQk8dGQ+e2ZvcmVhY2ggZnJvbT0kcGFnZXMgaXRlbT1wYWdlfSB7JHBhZ2UtPm51bWJlcn0gey9mb3JlYWNofTwvdGQ+CgkJCTx0ZD57JG5leHR9PC90ZD4KCQkJPHRkPnskbGFzdH08L3RkPgoJCTwvdHI+Cgk8L3Rib2R5Pgo8L3RhYmxlPgp7L2lmfQo8YnIgLz4KPHRhYmxlIGNsYXNzPSJwYWdldGFibGUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMyI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGggY2xhc3M9InBhZ2VpY29uIj57JHNlbGVjdGFsbH08L3RoPgoJCQk8dGg+eyRsb2dpZF90ZXh0fTwvdGg+CgkJCTx0aD57JHNlbmRfZGF0ZV90ZXh0fTwvdGg+CgkJCTx0aD57JHVzZXJuYW1lX3RleHR9e2lmICgkdXNlcm5hbWVfaXNfZW1haWwpfSAvIHskZW1haWxfdGV4dH17L2lmfTwvdGg+CgkJCXtpZiAoISR1c2VybmFtZV9pc19lbWFpbCl9CgkJCTx0aD57JGVtYWlsX3RleHR9PC90aD4KCQkJey9pZn0KCQkJPHRoPnskc3RhdHVzX3RleHR9PC90aD4KCQkJPHRoPnskcmVjaWV2ZWRfdGV4dH08L3RoPgoJCQk8dGggY2xhc3M9InBhZ2VpY29uIj57JHJlc2VuZF90ZXh0fTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+Cgl7Zm9yZWFjaCBmcm9tPSRsb2dzIGl0ZW09bG9nfQoJCTx0ciBjbGFzcz0ieyRsb2ctPnJvd2NsYXNzfSIgb25tb3VzZW92ZXI9InRoaXMuY2xhc3NOYW1lPSd7JGxvZy0+cm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skbG9nLT5yb3djbGFzc30nOyI+CgkJCTx0ZD57JGxvZy0+c2VsZWN0ZWR9PC90ZD4KCQkJPHRkPnskbG9nLT5sb2dfaWR9PC90ZD4KCQkJPHRkPnskbG9nLT5zZW5kX2RhdGV9PC90ZD4KCQkJPHRkPnskbG9nLT51c2VybmFtZX08L3RkPgoJCQl7aWYgKCEkdXNlcm5hbWVfaXNfZW1haWwpfQoJCQk8dGQ+e2ZvcmVhY2ggZnJvbT0kbG9nLT5lbWFpbHMgaXRlbT1lbWFpbH17JGVtYWlsfTxiciAvPnsvZm9yZWFjaH08L3RkPgoJCQl7L2lmfQoJCQk8dGQ+eyRsb2ctPmltZ30mbmJzcDt7JGxvZy0+c3RhdHVzfTwvdGQ+CgkJCTx0ZD57JGxvZy0+cmVjaWV2ZWR9PC90ZD4KCQkJPHRkPnskbG9nLT5yZXNlbmR9PC90ZD4KCQk8L3RyPgoJey9mb3JlYWNofQoJPC90Ym9keT4KPC90YWJsZT4KPGJyIC8+CntpZiAkcGFnZXNfY291bnQ+MH0KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMyI+Cgk8dGJvZHk+CgkJPHRyPgoJCQk8dGQ+eyRwYWdlc190ZXh0fTo8L3RkPgoJCQk8dGQ+eyRmaXJzdH08L3RkPgoJCQk8dGQ+eyRwcmV2fTwvdGQ+CgkJCTx0ZD57Zm9yZWFjaCBmcm9tPSRwYWdlcyBpdGVtPXBhZ2V9IHskcGFnZS0+bnVtYmVyfSB7L2ZvcmVhY2h9PC90ZD4KCQkJPHRkPnskbmV4dH08L3RkPgoJCQk8dGQ+eyRsYXN0fTwvdGQ+CgkJPC90cj4KCTwvdGJvZHk+CjwvdGFibGU+CjxiciAvPgp7L2lmfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPGRpdiBjbGFzcz0icGFnZWlucHV0Ij4KCQk8cD57JGNhbmNlbH0mbmJzcDt7JHJlc2VuZF9hbGx9e2lmIGlzc2V0KCRyZXNlbmRfbmV3KX0mbmJzcDt7JHJlc2VuZF9uZXd9ey9pZn17aWYgaXNzZXQoJHJlc2VuZF9lcnJvcnMpfSZuYnNwO3skcmVzZW5kX2Vycm9yc317L2lmfSZuYnNwO3skcmVzZW5kX3NlbGVjdGVkfTwvcD4KCTwvZGl2Pgo8L2Rpdj4KeyRoaWRkZW59CnskZW5kRm9ybX0Ke2Vsc2V9CjxwPnskbm9sb2dzfTwvcD4Key9pZn0KCg==]]></data>
	</file>
</module>
