<?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>CGExtensions</name>
	<version>1.9</version>
  <mincmsversion>1.3</mincmsversion>
	<help>PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIG1lcmVseSBwcm92aWRlcyBjb252ZW5pZW5jZSBhcGkncywgcmUtdXNhYmxlIGZvcm1zLCBhbmQgc21hcnR5IHRhZ3MgZm9yIHVzZSBpbiBvdGhlciBtb2R1bGVzLiAgSXQgaXMgbWVhbnQgc29sZWx5IGZyb20gd2hpY2ggdG8gYnVpbGQgb3RoZXIgbW9kdWxlcy4gSWYgeW91IGFyZSBub3QgYSBwcm9ncmFtbWVyIHlvdSBwcm9iYWJseSB3b24ndCBuZWVkIHRvIGRvIGFueXRoaW5nIHdpdGggdGhpcyBtb2R1bGUgYmVzaWRlcyBhZGp1c3Qgc29tZSBwcmVmZXJlbmNlcy48L3A+CjxoMyBzdHlsZT0iY29sb3I6ICNmMDA7Ij5Ob3RlczwvaDM+CjxwPk1hbnkgbW9kdWxlcyB0YWtlIGFkdmFudGFnZXMgb2YgdGhlIGZvcm1zIHRoYXQgYXJlIHByb3ZpZGVkIGJ5IHRoZSBDR0V4dGVuc2lvbnMgbW9kdWxlIHRvIGFzc2lzdCBpbiBtYW5hZ2luZyB0ZW1wbGF0ZXMuICBXaGVuIHRoZXkgZG8sIHRoZSBDR0V4dGVuc2lvbnMgbW9kdWxlIGluZm9ybWF0aW9uIGlzIGRpc3BsYXllZCBwcm9taW5lbnRseS4gIEhvd2V2ZXIgd2hlbiB5b3Ugc3VibWl0LCBvciBjYW5jZWwgZnJvbSB0aGVzZSBmb3JtcyB5b3Ugd2lsbCBiZSByZXR1cm5lZCB0byB0aGUgb3JpZ2luYWwgbW9kdWxlLjwvcD4KPGgzPkhvdyBEbyBJIFVzZSBJdDwvaDM+CjxwPldlbGwsIHlvdSBzdGFydCB5b3VyIG93biBtb2R1bGUgKEkgc3VnZ2VzdCBzdGFydGluZyB3aXRoIHRoZSBTa2VsZXRvbiBtb2R1bGUpLCBhbmQgdGhlbiB3aGVuIHlvdSBuZWVkIHRvIHVzZSBhbiBhZHZhbmNlZCBmb3JtIG9iamVjdCBmcm9tIHRoaXMgbGlicmFyeSwgc2ltcGx5IG1ha2UgeW91ciBtb2R1bGUgZGVwZW5kYW50IHVwb24gRm9ybU9iamVjdHMsIGFuZCB0aGVuIGluc3RhbnRpYXRlIGFuIG9iamVjdCBvZiB0aGUgYXBwcm9wcmlhdGUgdHlwZS4gIFNlZSB0aGUgY29kZSBpbnNpZGUgdGhlIEZvcm1PYmplY3RzIGRpcmVjdG9yeSBmb3IgdXNhZ2UgaW5zdHJ1Y3Rpb25zLjwvcD4KPGgzPlNtYXJ0eSBBZGRvbnM8L2gzPgo8cD5UaGlzIG1vZHVsZSBhZGRzIGEgZmV3IHNtYXJ0eSBjb252ZW5pZW5jZXMgZm9yIHVzZSB3aXRoIG90aGVyIG1vZHVsZXMuIFRoZXkgYXJlIGxpc3RlZCBhbmQgZGVzY3JpYmVkIGhlcmU6PC9wPgo8dWw+CjxsaT5jZ2Vycm9yIC0gPGVtPmJsb2NrPC9lbT4gcGx1Z2luCjxwPmkuZTogPGNvZGU+e2NnZXJyb3J9VGhpcyBpcyBlcnJvciB0ZXh0ey9jZ2Vycm9yfTwvY29kZT48YnIvPgogICAgb3I6IDxjb2RlPntjZ2Vycm9yfXskZXJyb3J0ZXh0dmFyfXsvY2dlcnJvcn08L2JyPgo8L3A+CjxwPm9wdGlvbmFsIHBhcmFtZXRlcnM6ICdlcnJvcmNsYXNzJyA9IG92ZXJyaWRlIHRoZSBkZWZhdWx0IGNsYXNzIG5hbWUgaW4gdGhlIHRlbXBsYXRlLgo8L3A+CjxwPkRlc2NyaXB0aW9uOiBUaGlzIGJsb2NrIHBsdWdpbiB1c2VzIHRoZSBlcnJvciB0ZW1wbGF0ZSAoY29uZmlndXJhYmxlIGZyb20gdGhlIENHRXh0ZW5zaW9ucyBhZG1pbiBpbnRlcmZhY2UpIHRvIGRpc3BsYXkgYW4gZXJyb3IgbWVzc2FnZS48L3A+CjwvdWw+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCBvciBidXkgY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIGNtcyBkZXZlbG9wbWVudCBmb3JnZSBhdCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5kZXYuY21zbWFkZXNpbXBsZS5vcmc8L2E+LjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4KPGxpPlRoZSBhdXRob3IocyksIGNhbGd1eSBldCBhbGwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yKHMpIGRpcmVjdGx5LjwvbGk+ICAKPC91bD4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0Cm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIFJvYmVydCBDYW1wYmVsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj4mbHQ7Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPgo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIApzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+CjxoMz5QYXJhbWV0ZXJzPC9oMz48dWw+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGFuZz0iZW5fVVMiIC0gUGFyYW1ldGVyIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGF0IGxhbmd1YWdlIHRvIHVzZSBmb3IgZGlzcGxheSBvbiB0aGUgZnJvbnRlbmQuIE5vdCBhbGwgbW9kdWxlcyBzdXBwb3J0IG9yIG5lZWQgdGhpcy48L2xpPjwvdWw+</help>
	<about>PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDEuOTxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjx1bD4KPGxpPlZlcnNpb24gMS4wLjAuIE1hcmNoIDIwMDcuICBJbml0aWFsIFJlbGVhc2UuPC9saT4KPGxpPlZlcnNpb24gMS4wLjEuIEFwcmlsIDIwMDcuICBGaXhlcyB0byBDcmVhdGVJbWFnZUxpbms8L2xpPgo8bGk+VmVyc2lvbiAxLjAuMi4gQXByaWwgMjAwNy4gIENyZWF0ZUltYWdlTGluayB3aWxsIG5vdyB3b3JrIG9uIHRoZSBmcm9udGVuZC48L2xpPgo8bGk+VmVyc2lvbiAxLjAuMy4gU2VwdGVtYmVyIDIwMDcuICBBZGRzIGFwcGx5IGJ1dHRvbnMgdG8gbmV3IHRlbXBsYXRlcy48L2xpPgo8bGk+VmVyc2lvbiAxLjEuICAgU2VwdGVtYmVyIDIwMDcuICBBZGRzIGRlZmF1bHQgZnJvbnRlbmQgZXJyb3IgaGFuZGxpbmcgcGx1Z2luLjwvbGk+CjxsaT5WZXJzaW9uIDEuMi4gICBOb3ZlbWJlciAgMjAwNywgIEFkZHMgbW9yZSBjb252ZW5pZW5jZSBmdW5jdGlvbnM8L2xpPgo8bGk+VmVyc2lvbiAxLjMuICAgTm92ZW1iZXIgIDIwMDcuICBBZGRzIGV2ZW4gbW9yZSBjb252ZW5pZW5jZSBmdW5jdGlvbnM8L2xpPgo8bGk+VmVyc2lvbiAxLjQuICAgRGVjZW1iZXIgIDIwMDcuICBBZGRzIENyZWF0ZUltYWdlRHJvcGRvd24gbWV0aG9kLCBtZXRob2RzIGZvciBzdGF0ZSBhbmQgY291bnRyeSBkcm9wZG93bnMgYW5kIGEgYnVuY2ggb2Ygb3RoZXIgdGhpbmdzLjwvbGk+CjxsaT5WZXJzaW9uIDEuNS4gICBKYW51YXJ5ICAgMjAwOC4gIEZpeGVzIHRvIGh0bWxfZW50aXRpZXNfZGVjb2RlIGluIHV0Zjg8L2xpPgo8bGk+VmVyc2lvbiAxLjYuICAgRmVicnVhcnkgIDIwMDgsICBBZGRzIHRoZSBDR0ZpbGVVcGxvYWRIYW5kbGVyIGNsYXNzPC9saT4KPGxpPlZlcnNpb24gMS42LjEuICAgRmVicnVhcnkgIDIwMDgsICBNaW5vciBmaXggdG8gcmVjdXJzaXZlX2NoYW5nZV9kaXJlY3Rvcnk8L2xpPgo8bGk+VmVyc2lvbiAxLjguIEZlYnJ1YXJ5IDIwMDgKICA8dWw+CiAgICA8bGk+QWRkIGEgYnVuY2ggbW9yZSB1dGlsaXR5IGFuZCBjb252ZW5pZW5jZSBtZXRob2RzPC9saT4KICAgIDxsaT5Nb3ZlIGNvdW50cmllcyBhbmQgc3RhdGVzIGludG8gYSB0YWJsZSBzbyB0aGF0IHRoZXkgY2FuIGJlIHVzZWQgd2l0aCBqb2lucyBldGMuPC9saT4KICAgIDxsaT5BZGQgdGhlIGFiaWxpdHkgdG8gcHJpb3JpdGl6ZSBjZXJ0YWluIGNvdW50cmllcyBieSBuYW1lPC9saT4KICAgIDxsaT5BZGRzIHRoZSBHZXRTaW5nbGVUZW1wbGF0ZUZvcm0gbWV0aG9kIHRvIG1ha2UgaXQgY29udmVuaWVudCB0byBlZGl0IGFuZCByZXN0b3JlIHRvIGRlZmF1bHQgYSBzaW5nbGUgdGVtcGxhdGUuPC9saT4KICAgIDxsaT5GaXhlcyBpc3N1ZXMgd2l0aCB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIGVkaXRpbmcgdGVtcGxhdGVzLjwvbGk+CiAgICA8bGk+VXBkYXRlIHRoZSBsaWNlbnNlLjwvbGk+CiAgICA8bGk+VXBkYXRlcyB0byB0aGUgZmlsZSB1cGxvYWQgY2FwYWJpbGl0aWVzPC9saT4KICAgIDxsaT5UaGUgbW9kdWxlIGlzIGF1dG9tYXRpY2FsbHkgZXhwb3J0ZWQgdG8gc21hcnR5PC9saT4KICAgIDxsaT5BZGQgdGhlIGdldF9hY3Rpb25faWQgYW5kIHNldF9hY3Rpb25faWQgdmlydHVhbCBtZXRob2RzIHRoYXQgc2hvdWxkIGJlIG92ZXJyaWRkZW4gYnkgYW55IG1vZHVsZSBkZXJpdmVkIGZyb20gQ0dFeHRlbnNpb25zLjwvbGk+CiAgPC91bD4KICA8L2xpPgo8bGk+VmVyc2lvbiAxLjguIE1heSAyMDA4CiAgPHVsPgogICAgPGxpPk1pbm9yIGNoYW5nZSBhbmQgYWRkaXRpb24gdG8gUmVkaXJlY3RUb1RhYjwvbGk+CiAgPC91bD4KPC91bD48YnIgLz4=</about>
	<description>This module is a library of php classes used to build advanced forms</description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRXh0ZW5zaW9ucyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSB1c2VmdWwgZnVuY3Rpb25zCiMgIGFuZCBjb21tb25seSB1c2VkIGd1aSBjYXBhYmlsaXRpZXMgdG8gb3RoZXIgbW9kdWxlcy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmICghaXNzZXQoJGdDbXMpKSBleGl0KCk7CmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSkgcmV0dXJuIGZhbHNlOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdF90ZW1wbGF0ZSddKSApCiAgewogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2Vycm9yX3RlbXBsYXRlJ10gKSApCiAgICAgICR0aGlzLT5TZXRFcnJvclRlbXBsYXRlKHRyaW0oJHBhcmFtc1snZXJyb3JfdGVtcGxhdGUnXSkpOwoKICB9CmVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ3Jlc2V0dG9mYWN0b3J5J10pICkKICB7CiAgICAkdGhpcy0+UmVzZXRFcnJvclRlbXBsYXRlKCk7CiAgfQplbHNlIGlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKQogIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCd0aHVtYm5haWxzaXplJywoaW50KSRwYXJhbXNbJ3RodW1ibmFpbHNpemUnXSk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1hZ2VleHRlbnNpb25zJyx0cmltKCRwYXJhbXNbJ2ltYWdlZXh0ZW5zaW9ucyddKSk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgncHJpb3JpdHljb3VudHJpZXMnLHRyaW0oJHBhcmFtc1sncHJpb3JpdHljb3VudHJpZXMnXSkpOwogICAgJHByaXMgPSBleHBsb2RlKCcsJyx0cmltKCRwYXJhbXNbJ3ByaW9yaXR5Y291bnRyaWVzJ10pKTsKICAgICRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKCiAgICAkcXVlcnkgPSAnVVBEQVRFICcuQ0dFWFRFTlNJT05TX1RBQkxFX0NPVU5UUklFUy4nIFNFVCBzb3J0aW5nID0gMCc7CiAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCiAgICAkcXVlcnkgPSAnVVBEQVRFICcuQ0dFWFRFTlNJT05TX1RBQkxFX0NPVU5UUklFUy4nIFNFVCBzb3J0aW5nID0gPyBXSEVSRSBuYW1lID0gPyc7CiAgICAkaSA9IDk5OTsKICAgIGZvcmVhY2goICRwcmlzIGFzICRvbmUgKQogICAgICB7CgkkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRpLHRyaW0oJG9uZSkpKTsKCSRpLS07CiAgICAgIH0KICB9CgokZXJyb3JfdGVtcGxhdGUgPSAkdGhpcy0+R2V0RXJyb3JUZW1wbGF0ZSgpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsJ2RlZmF1bHRhZG1pbicsJHJldHVybmlkKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignc3VibWl0JywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdzdWJtaXQnLCR0aGlzLT5MYW5nKCdzdWJtaXQnKSkpOwokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdF90ZW1wbGF0ZScsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnc3VibWl0X3RlbXBsYXRlJywkdGhpcy0+TGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdyZXNldCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwncmVzZXR0b2ZhY3RvcnknLAoJCQkJCQkgJHRoaXMtPkxhbmcoJ3Jlc2V0dG9mYWN0b3J5JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfdGVtcGxhdGUnLCR0aGlzLT5MYW5nKCdlcnJvcl90ZW1wbGF0ZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF90ZW1wbGF0ZScsCgkJJHRoaXMtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCRpZCwKCQkJCSAgICAgICRlcnJvcl90ZW1wbGF0ZSwnZXJyb3JfdGVtcGxhdGUnKSk7CiRzbWFydHktPmFzc2lnbigncHJvbXB0X2ltYWdlZXh0ZW5zaW9ucycsCgkJJHRoaXMtPkxhbmcoJ2ltYWdlX2V4dGVuc2lvbnMnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfaW1hZ2VleHRlbnNpb25zJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnaW1hZ2VleHRlbnNpb25zJywKCQkJCSAgICAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VleHRlbnNpb25zJywnJyksMjUsMjU1KSk7Cgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9wcmlvcml0eWNvdW50cmllcycsCgkJJHRoaXMtPkxhbmcoJ3ByaW9yaXR5X2NvdW50cmllcycpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9wcmlvcml0eWNvdW50cmllcycsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ3ByaW9yaXR5Y291bnRyaWVzJywKCQkJCSAgICAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHJpb3JpdHljb3VudHJpZXMnLCcnKSwyNSwyNTUpKTsKCiRzbWFydHktPmFzc2lnbignaW5wdXRfdGh1bWJuYWlsc2l6ZScsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ3RodW1ibmFpbHNpemUnLAoJCQkJICAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd0aHVtYm5haWxzaXplJyksMywzKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWlucGFuZWwudHBsJyk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.deletetemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRXh0ZW5zaW9ucyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSB1c2VmdWwgZnVuY3Rpb25zCiMgIGFuZCBjb21tb25seSB1c2VkIGd1aSBjYXBhYmlsaXRpZXMgdG8gb3RoZXIgbW9kdWxlcy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCAhICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSApCiAgewogICAgLy8gdG9kbywgcGVybWlzc2lvbnMgbWVzc2FnZSBoZXJlCiAgICByZXR1cm47CiAgfQoKaWYoICFpc3NldCggJHBhcmFtc1snbW9kbmFtZSddICkgKQogIHsKICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpOwogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJywkcmV0dXJuaWQsJHBhcmFtcyk7CiAgICByZXR1cm47CiAgfQokbW9kdWxlID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCRwYXJhbXNbJ21vZG5hbWUnXSk7CmlmKCAhJG1vZHVsZSApCiAgewogICAgJHBhcmFtc1snZXJyb3JzJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJyk7CiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCRyZXR1cm5pZCwkcGFyYW1zKTsKICAgIHJldHVybjsKICB9CgoKaWYoICEoaXNzZXQoJHBhcmFtc1sndGVtcGxhdGUnXSkpICkKICB7CiAgICAkcGFyYW1zWydlcnJvcnMnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKTsKICAgICRtb2R1bGUtPlJlZGlyZWN0VG9UYWIoJGlkLCAkcGFyYW1zWydjZ19hY3RpdmV0YWInXSk7CiAgICByZXR1cm47CiAgfQoKJG1vZHVsZS0+RGVsZXRlVGVtcGxhdGUoJHBhcmFtc1sndGVtcGxhdGUnXSk7CiRtb2R1bGUtPlJlZGlyZWN0VG9UYWIoJGlkLCR0aGlzLT5fY3VycmVudF90YWIsJycsJHBhcmFtcyk7CgoKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.do_addtemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRXh0ZW5zaW9ucyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSB1c2VmdWwgZnVuY3Rpb25zCiMgIGFuZCBjb21tb25seSB1c2VkIGd1aSBjYXBhYmlsaXRpZXMgdG8gb3RoZXIgbW9kdWxlcy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICEkZ0NtcyApIGV4aXQoKTsKCi8vIGlmKCAhICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSApCi8vICAgewovLyAgICAgLy8gdG9kbywgcGVybWlzc2lvbnMgbWVzc2FnZSBoZXJlCi8vICAgICByZXR1cm47Ci8vICAgfQoKaWYoICFpc3NldCggJHBhcmFtc1snbW9kbmFtZSddICkgKQogIHsKICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpOwogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJywkcmV0dXJuaWQsJHBhcmFtcyk7CiAgICByZXR1cm47CiAgfQokbW9kdWxlID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCRwYXJhbXNbJ21vZG5hbWUnXSk7CmlmKCAhJG1vZHVsZSApCiAgewogICAgJHBhcmFtc1snZXJyb3JzJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJyk7CiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCRyZXR1cm5pZCwkcGFyYW1zKTsKICAgIHJldHVybjsKICB9CgoKaWYoIGlzc2V0KCAkcGFyYW1zWydjYW5jZWwnXSApICkKICB7CiAgICAkbW9kdWxlLT5fY3VycmVudF90YWIgPSAkdGhpcy0+X2N1cnJlbnRfdGFiOwogICAgJG1vZHVsZS0+UmVkaXJlY3RUb1RhYigkaWQpOwogIH0KCgokdGVtcGxhdGUgPSAiIjsKaWYoIGlzc2V0KCAkcGFyYW1zWyd0ZW1wbGF0ZSddICkgKQogIHsKICAgICR0ZW1wbGF0ZSA9IHRyaW0oJHBhcmFtc1sndGVtcGxhdGUnXSk7CiAgfQogIAokcHJlZml4ID0gIiI7CmlmKCBpc3NldCggJHBhcmFtc1sncHJlZml4J10gKSApCiAgewogICAgJHByZWZpeCA9IHRyaW0oJHBhcmFtc1sncHJlZml4J10pOwogIH0KCmlmKCAhaXNzZXQoICRwYXJhbXNbJ3RlbXBsYXRlY29udGVudCddICkgKQogIHsKICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpOwogICAgJG1vZHVsZS0+UmVkaXJlY3QoJGlkLCRwYXJhbXNbJ29yaWdhY3Rpb24nXSwnJywkcGFyYW1zKTsKICAgIHJldHVybjsKICB9CgppZiggJHRlbXBsYXRlID09ICIiIHx8ICRwcmVmaXggPT0gIiIgKQogIHsKICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpOwogICAgJG1vZHVsZS0+UmVkaXJlY3QoJGlkLCRwYXJhbXNbJ29yaWdhY3Rpb24nXSwnJywkcGFyYW1zKTsKICAgIHJldHVybjsKICB9CgoKJG5ld3RlbXBsYXRlID0gJHByZWZpeCAuICR0ZW1wbGF0ZTsKCi8vIGNoZWNrIGlmIHRoaXMgdGVtcGxhdGUgYWxyZWFkeSBleGlzdHMKJHR4dCA9IHRyaW0oJG1vZHVsZS0+R2V0VGVtcGxhdGUoJG5ld3RlbXBsYXRlKSk7CmlmKCAkdHh0ICE9ICIiICkKICB7CiAgICAkcGFyYW1zWydlcnJvcnMnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl90ZW1wbGF0ZW5hbWVleGlzdHMnKTsKICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJHBhcmFtc1snb3JpZ2FjdGlvbiddLCcnLCRwYXJhbXMpOwogICAgcmV0dXJuOwogIH0KCi8vIHdlJ3JlIHJlYWR5IHRvIHNldCBpdAokdHh0ID0gY21zX2h0bWxfZW50aXR5X2RlY29kZSgkcGFyYW1zWyd0ZW1wbGF0ZWNvbnRlbnQnXSxFTlRfUVVPVEVTLGdldF9lbmNvZGluZygpKTsKJG1vZHVsZS0+U2V0VGVtcGxhdGUoJG5ld3RlbXBsYXRlLCR0eHQpOwoKaWYoICR0aGlzLT5fY3VycmVudF90YWIgIT0gJycgKQogIHsKICAgICRtb2R1bGUtPl9jdXJyZW50X3RhYiA9ICR0aGlzLT5fY3VycmVudF90YWI7CiAgICAkbW9kdWxlLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgICByZXR1cm47CiAgfQokbW9kdWxlLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.do_edittemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRXh0ZW5zaW9ucyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSB1c2VmdWwgZnVuY3Rpb25zCiMgIGFuZCBjb21tb25seSB1c2VkIGd1aSBjYXBhYmlsaXRpZXMgdG8gb3RoZXIgbW9kdWxlcy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCAhaXNzZXQoICRnQ21zICkgKSBleGl0KCk7CgovLyBpZiggISAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykgKQovLyAgIHsKLy8gICAgIC8vIHRvZG8sIHBlcm1pc3Npb25zIG1lc3NhZ2UgaGVyZQovLyAgICAgcmV0dXJuOwovLyAgIH0KCmlmKCAhaXNzZXQoICRwYXJhbXNbJ21vZG5hbWUnXSApICkKICB7CiAgICAkcGFyYW1zWydlcnJvcnMnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKTsKICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJHJldHVybmlkLCRwYXJhbXMpOwogICAgcmV0dXJuOwogIH0KJG1vZHVsZSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgkcGFyYW1zWydtb2RuYW1lJ10pOwppZiggISRtb2R1bGUgKQogIHsKICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpOwogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJywkcmV0dXJuaWQsJHBhcmFtcyk7CiAgICByZXR1cm47CiAgfQoKaWYoIGlzc2V0KCAkcGFyYW1zWydjYW5jZWwnXSApICkKICB7CiAgICAkbW9kdWxlLT5fY3VycmVudF90YWIgPSAkdGhpcy0+X2N1cnJlbnRfdGFiOwogICAgJG1vZHVsZS0+UmVkaXJlY3RUb1RhYigkaWQpOwogIH0KCmlmKCAhaXNzZXQoICRwYXJhbXNbJ3RlbXBsYXRlY29udGVudCddICkgKQogIHsKICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpOwogICAgJG1vZHVsZS0+UmVkaXJlY3QoJGlkLCRwYXJhbXNbJ29yaWdhY3Rpb24nXSwnJywkcGFyYW1zKTsKICAgIHJldHVybjsKICB9CgppZiggIWlzc2V0KCAkcGFyYW1zWyd0ZW1wbGF0ZSddICkgKQogIHsKICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpOwogICAgJG1vZHVsZS0+UmVkaXJlY3QoJGlkLCRwYXJhbXNbJ29yaWdhY3Rpb24nXSwnJywkcGFyYW1zKTsKICAgIHJldHVybjsKICB9CiRtb2R1bGUtPlNldFRlbXBsYXRlKCAkcGFyYW1zWydwcmVmaXgnXS4kcGFyYW1zWyd0ZW1wbGF0ZSddLCAKCQkgICAgICBjbXNfaHRtbF9lbnRpdHlfZGVjb2RlKCRwYXJhbXNbJ3RlbXBsYXRlY29udGVudCddLEVOVF9RVU9URVMsZ2V0X2VuY29kaW5nKCkpKTsKCmlmKCBpc3NldCgkcGFyYW1zWydhcHBseWJ1dHRvbiddKSApCiAgewogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwnZWRpdHRlbXBsYXRlJywkcmV0dXJuaWQsJHBhcmFtcyk7CiAgfQoKaWYoICR0aGlzLT5fY3VycmVudF90YWIgIT0gJycgKQogIHsKICAgICRtb2R1bGUtPl9jdXJyZW50X3RhYiA9ICR0aGlzLT5fY3VycmVudF90YWI7CiAgICAkbW9kdWxlLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgICByZXR1cm47CiAgfQokbW9kdWxlLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.edittemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRXh0ZW5zaW9ucyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSB1c2VmdWwgZnVuY3Rpb25zCiMgIGFuZCBjb21tb25seSB1c2VkIGd1aSBjYXBhYmlsaXRpZXMgdG8gb3RoZXIgbW9kdWxlcy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCAhJGdDbXMgKSBleGl0KCk7CgovLyBpZiggISAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykgKQovLyAgIHsKLy8gICAgIC8vIHRvZG8sIHBlcm1pc3Npb25zIG1lc3NhZ2UgaGVyZQovLyAgICAgcmV0dXJuOwovLyAgIH0KCmlmKCAhaXNzZXQoICRwYXJhbXNbJ21vZG5hbWUnXSApICkKICB7CiAgICAkcGFyYW1zWydlcnJvcnMnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKTsKICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJHJldHVybmlkLCRwYXJhbXMpOwogICAgcmV0dXJuOwogIH0KJG1vZHVsZSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgkcGFyYW1zWydtb2RuYW1lJ10pOwppZiggISRtb2R1bGUgKQogIHsKICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpOwogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJywkcmV0dXJuaWQsJHBhcmFtcyk7CiAgICByZXR1cm47CiAgfQoKCi8vIGNoZWNrIGlmIHdlIGhhdmUgYSB0ZW1wbGF0ZSBuYW1lCmlmKCAhKGlzc2V0KCRwYXJhbXNbJ3RlbXBsYXRlJ10pIHx8IGlzc2V0KCRwYXJhbXNbJ3ByZWZpeCddKSkgKQogIHsKICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpOwogICAgJG1vZHVsZS0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLCRwYXJhbXMpOwogICAgcmV0dXJuOwogIH0KaWYoICFpc3NldCgkcGFyYW1zWydtb2RlJ10pIHx8ICFpc3NldCgkcGFyYW1zWyd0aXRsZSddKSApCiAgewogICAgJHBhcmFtc1snZXJyb3JzJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJyk7CiAgICAkbW9kdWxlLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJycsJHBhcmFtcyk7CiAgICByZXR1cm47CiAgfQoKLy8gaGFuZGxlIGVycm9ycy4KaWYoIGlzc2V0KCRwYXJhbXNbJ2Vycm9ycyddKSApCiAgewogICAgZWNobyAkbW9kdWxlLT5TaG93RXJyb3JzKCRwYXJhbXNbJ2Vycm9ycyddKTsKICB9CgoKJHBhcmFtc1snb3JpZ2FjdGlvbiddID0gJHBhcmFtc1snYWN0aW9uJ107CiRjb250ZW50cyA9ICIiOwppZiggJHBhcmFtc1snbW9kZSddID09ICdhZGQnICkKICB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsCgkJICAgICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQgKCRpZCwgJ2RvX2FkZHRlbXBsYXRlJywkcmV0dXJuaWQsJ3Bvc3QnLCcnLAoJCQkJCSAgICBmYWxzZSwgJycsICRwYXJhbXMpKTsKICAgICRzbWFydHktPmFzc2lnbigndGVtcGxhdGVuYW1lJywKCQkgICAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAndGVtcGxhdGUnLCAiIiwgNDAsIDIwMCApKTsKICAgICRzbWFydHktPmFzc2lnbignaGlkZGVuJywKCQkgICAgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ3ByZWZpeCcsICRwYXJhbXNbJ3ByZWZpeCddKS4KCQkgICAgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2NnX2FjdGl2ZXRhYicsCgkJCQkJICAgICAkdGhpcy0+X2N1cnJlbnRfdGFiKSk7CiAgICBpZiggaXNzZXQoJHBhcmFtc1snZGVmYXVsdHRlbXBsYXRlcHJlZiddKSAmJiAkcGFyYW1zWydkZWZhdWx0dGVtcGxhdGVwcmVmJ10gIT0gJycgKQogICAgICB7CgkkY29udGVudHMgPSAkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSk7CiAgICAgIH0KICB9CiBlbHNlIAogICB7CiAgICAgJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLAoJCSAgICAgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCAoJGlkLCAnZG9fZWRpdHRlbXBsYXRlJywkcmV0dXJuaWQsJ3Bvc3QnLCcnLAoJCQkJCQkgICAgZmFsc2UsICcnLCAkcGFyYW1zKSk7CiAgICAgJHNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZW5hbWUnLCRwYXJhbXNbJ3RlbXBsYXRlJ10pOwogICAgICRzbWFydHktPmFzc2lnbignaGlkZGVuJywKCQkgICAgICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICd0ZW1wbGF0ZScsICRwYXJhbXNbJ3RlbXBsYXRlJ10gKS4KCQkgICAgICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdjZ19hY3RpdmV0YWInLAoJCQkJCSAgICAgICR0aGlzLT5fY3VycmVudF90YWIpKTsKICAgICAkY29udGVudHMgPSAkbW9kdWxlLT5HZXRUZW1wbGF0ZSgkcGFyYW1zWydwcmVmaXgnXS4kcGFyYW1zWyd0ZW1wbGF0ZSddKTsKICAgICAkc21hcnR5LT5hc3NpZ24oJ2FwcGx5JywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ2FwcGx5YnV0dG9uJywKCQkJCQkJICAgJHRoaXMtPkxhbmcoJ2FwcGx5JykpKTsKICAgfQoKaWYoIG1ldGhvZF9leGlzdHMoJG1vZHVsZSwgJ0dldEVkaXRUZW1wbGF0ZU1lc3NhZ2UnKSApCiAgewogICAgICR0eHQgPSAkbW9kdWxlLT5HZXRFZGl0VGVtcGxhdGVNZXNzYWdlKCRwYXJhbXNbJ3ByZWZpeCddKTsKICAgICAkc21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlX2luZm8nLCR0eHQpOwogIH0KZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snaW5mbyddKSAmJiAhZW1wdHkoJHBhcmFtc1snaW5mbyddKSApCiAgewogICAgJHNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZV9pbmZvJyx0cmltKCRwYXJhbXNbJ2luZm8nXSkpOwogIH0KJHNtYXJ0eS0+YXNzaWduKCd0aXRsZScsY21zX2h0bWxfZW50aXR5X2RlY29kZSgkcGFyYW1zWyd0aXRsZSddKSk7CiRzbWFydHktPmFzc2lnbigncHJvbXB0X3RlbXBsYXRlbmFtZScsJHRoaXMtPkxhbmcoJ3Byb21wdF90ZW1wbGF0ZW5hbWUnKSk7CiRzbWFydHktPmFzc2lnbigncHJvbXB0X3RlbXBsYXRlJywkdGhpcy0+TGFuZygncHJvbXB0X3RlbXBsYXRlJykpOwokc21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlJywKCQkkdGhpcy0+Q3JlYXRlVGV4dEFyZWEgKGZhbHNlLCAkaWQsCgkJCQkgICAgICAgJGNvbnRlbnRzLCAndGVtcGxhdGVjb250ZW50JywgJycpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCAoJGlkLCAnc3VibWl0YnV0dG9uJywKCQkJCQkJICAgJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7CiRzbWFydHktPmFzc2lnbignY2FuY2VsJywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ2NhbmNlbCcsIAoJCQkJCQkgICAkdGhpcy0+TGFuZygnY2FuY2VsJykpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0dGVtcGxhdGUudHBsJyk7Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.makedefaulttemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRXh0ZW5zaW9ucyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSB1c2VmdWwgZnVuY3Rpb25zCiMgIGFuZCBjb21tb25seSB1c2VkIGd1aSBjYXBhYmlsaXRpZXMgdG8gb3RoZXIgbW9kdWxlcy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCAhaXNzZXQoICRnQ21zICkgKSBleGl0KCk7CgovLyBpZiggISAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykgKQovLyAgIHsKLy8gICAgIC8vIHRvZG8sIHBlcm1pc3Npb25zIG1lc3NhZ2UgaGVyZQovLyAgICAgcmV0dXJuOwovLyAgIH0KCmlmKCAhaXNzZXQoICRwYXJhbXNbJ21vZG5hbWUnXSApICkKICB7CiAgICAkcGFyYW1zWydlcnJvcnMnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKTsKICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJHJldHVybmlkLCRwYXJhbXMpOwogICAgcmV0dXJuOwogIH0KJG1vZHVsZSA9JiAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJHBhcmFtc1snbW9kbmFtZSddKTsKaWYoICEkbW9kdWxlICkKICB7CiAgICAkcGFyYW1zWydlcnJvcnMnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKTsKICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJHJldHVybmlkLCRwYXJhbXMpOwogICAgcmV0dXJuOwogIH0KCmlmKCAhaXNzZXQoICRwYXJhbXNbJ3RlbXBsYXRlJ10gKSApCiAgewogICAgJHBhcmFtc1snZXJyb3JzJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJyk7CiAgICAkbW9kdWxlLT5SZWRpcmVjdFRvVGFiKCRpZCwkdGhpcy0+X2N1cnJlbnRfdGFiLCcnLCRwYXJhbXMpOwogICAgcmV0dXJuOwogIH0KCmlmKCAhaXNzZXQoICRwYXJhbXNbJ2RlZmF1bHRwcmVmbmFtZSddICkgKQogIHsKICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpOwogICAgJG1vZHVsZS0+UmVkaXJlY3RUb1RhYigkaWQsJHRoaXMtPl9jdXJyZW50X3RhYiwnJywkcGFyYW1zKTsKICAgIHJldHVybjsKICB9CiRtb2R1bGUtPlNldFByZWZlcmVuY2UoJHBhcmFtc1snZGVmYXVsdHByZWZuYW1lJ10sJHBhcmFtc1sndGVtcGxhdGUnXSk7CgokbW9kdWxlLT5SZWRpcmVjdFRvVGFiKCRpZCwkdGhpcy0+X2N1cnJlbnRfdGFiKTsKLy8gRU9GCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.setdefaulttemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRXh0ZW5zaW9ucyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSB1c2VmdWwgZnVuY3Rpb25zCiMgIGFuZCBjb21tb25seSB1c2VkIGd1aSBjYXBhYmlsaXRpZXMgdG8gb3RoZXIgbW9kdWxlcy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCiR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKTsgLy9Eb24ndCBhY3R1YWxseSBjYXJlLiAgSnVzdCBmb3JjZSBhIGxvZ2luLgoKaWYoICFpc3NldCgkcGFyYW1zWydkZXN0bW9kdWxlJ10pICkKewogICAgc3RhY2tfdHJhY2UoKTsKICAgIGRpZSgnPGJyLz5EZXN0aW5hdGlvbiBtb2R1bGUgbm90IHNldCcpOwp9CiRtb2R1bGUgPSYgJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCRwYXJhbXNbJ2Rlc3Rtb2R1bGUnXSk7CmlmKCAhaXNfb2JqZWN0KCRtb2R1bGUpICkKewogICAgc3RhY2tfdHJhY2UoKTsKICAgIGRpZSgnPGJyLz5Db3VsZCBub3QgZmluZCBkZXN0aW5hdGlvbiBtb2R1bGUnKTsgCn0KCmlmKCBpc3NldCgkcGFyYW1zWydyZXNldHRvZGVmYXVsdCddKSAmJgogICAgaXNzZXQoJHBhcmFtc1sncHJlZm5hbWUnXSkgJiYKICAgIGlzc2V0KCRwYXJhbXNbJ2ZpbGVuYW1lJ10pICkKICB7CiAgICAkZm4gPSBkaXJuYW1lKGRpcm5hbWUoX19GSUxFX18pKS5ESVJFQ1RPUllfU0VQQVJBVE9SLiRtb2R1bGUtPkdldE5hbWUoKS5ESVJFQ1RPUllfU0VQQVJBVE9SLgogICAgICAndGVtcGxhdGVzJy5ESVJFQ1RPUllfU0VQQVJBVE9SLiRwYXJhbXNbJ2ZpbGVuYW1lJ107CiAgICBpZiggZmlsZV9leGlzdHMoICRmbiApICkKICAgICAgewoJJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CglpZiggaXNzZXQoJHBhcmFtc1sndXNldGVtcGxhdGUnXSkgKQoJICB7CgkgICAgJG1vZHVsZS0+U2V0VGVtcGxhdGUoJHBhcmFtc1sncHJlZm5hbWUnXSwkdGVtcGxhdGUpOwoJICB9CgllbHNlCgkgIHsKCSAgICAkbW9kdWxlLT5TZXRQcmVmZXJlbmNlKCRwYXJhbXNbJ3ByZWZuYW1lJ10sJHRlbXBsYXRlKTsKCSAgfQogICAgICB9CiAgfQogZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICYmCgkgIGlzc2V0KCRwYXJhbXNbJ3ByZWZuYW1lJ10pICkKICAgewogICAgIGlmKCBpc3NldCgkcGFyYW1zWyd1c2V0ZW1wbGF0ZSddKSApCiAgICAgICB7CgkgJG1vZHVsZS0+U2V0VGVtcGxhdGUoJHBhcmFtc1sncHJlZm5hbWUnXSwkcGFyYW1zWydpbnB1dF90ZW1wbGF0ZSddKTsKICAgICAgIH0KICAgICBlbHNlCiAgICAgICB7CgkgJG1vZHVsZS0+U2V0UHJlZmVyZW5jZSgkcGFyYW1zWydwcmVmbmFtZSddLCRwYXJhbXNbJ2lucHV0X3RlbXBsYXRlJ10pOwogICAgICAgfQogICB9CgokbW9kdWxlLT5TZXRDdXJyZW50VGFiKCR0aGlzLT5fY3VycmVudF90YWIpOwokbW9kdWxlLT5SZWRpcmVjdFRvVGFiKCRpZCk7Ci8vaWYoIGlzc2V0KCAkcGFyYW1zWydhY3RpdmVfdGFiJ10gKSApCi8vICB7Ci8vICAgICRtb2R1bGUtPm15UmVkaXJlY3RUb1RhYigkaWQsJHBhcmFtc1snYWN0aXZlX3RhYiddKTsKLy8gICAgcmV0dXJuOwovLyAgfQovLyRtb2R1bGUtPm15UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nKTsKCi8vIEVPRgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/CGExtensions.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRXh0ZW5zaW9ucyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSB1c2VmdWwgZnVuY3Rpb25zCiMgIGFuZCBjb21tb25seSB1c2VkIGd1aSBjYXBhYmlsaXRpZXMgdG8gb3RoZXIgbW9kdWxlcy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCAhY2xhc3NfZXhpc3RzKCdDR0V4dGVuc2lvbnMnKSApCiAgewoKZGVmaW5lKCdDR0VYVEVOU0lPTlNfVEFCTEVfQ09VTlRSSUVTJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ2VfY291bnRyaWVzJyk7CmRlZmluZSgnQ0dFWFRFTlNJT05TX1RBQkxFX1NUQVRFUycsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY2dlX3N0YXRlcycpOwoKY2xhc3MgQ0dFeHRlbnNpb25zIGV4dGVuZHMgQ01TTW9kdWxlCnsKICB2YXIgJF9vYmo7CiAgdmFyICRfYWN0aW9uaWQ7CiAgdmFyICRfaW1hZ2VfZGlyZWN0b3JpZXM7CiAgdmFyICRfY3VycmVudF90YWI7CiAgdmFyICRfZXJyb3Jtc2c7CiAgdmFyICRfcmV0dXJuaWQ7CgogIC8qCiAgICogQSBzbWFydHkgZnVuY3Rpb24gZm9yIGRpc3BsYXlpbmcgYW4gaW1hZ2UKICAgKi8KICBmdW5jdGlvbiBzbWFydHlfZnVuY3Rpb25fY2dpbWFnZSgkcGFyYW1zLCAmJHNtYXJ0eSkKICB7CiAgICBnbG9iYWwgJGdDbXM7CiAgICAkb2JqID0mICRnQ21zLT5tb2R1bGVzWydDR0V4dGVuc2lvbnMnXVsnb2JqZWN0J107CiAgICAKICAgIGlmKCAhaXNzZXQoJHBhcmFtc1snaW1hZ2UnXSkgKSByZXR1cm47CiAgICAKICAgICRhbHQgPSAnJzsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydhbHQnXSkgKQogICAgICB7CgkkYWx0ID0gdHJpbSgkcGFyYW1zWydhbHQnXSk7CiAgICAgIH0KICAgIGlmKCBpc3NldCgkcGFyYW1zWydjbGFzcyddKSApCiAgICAgIHsKCSRjbGFzcyA9IHRyaW0oJHBhcmFtc1snY2xhc3MnXSk7CiAgICAgIH0KICAgIGlmKCBpc3NldCgkcGFyYW1zWyd3aWR0aCddKSApCiAgICAgIHsKCSR3aWR0aCA9IHRyaW0oJHBhcmFtc1snd2lkdGgnXSk7CiAgICAgIH0KICAgIGlmKCBpc3NldCgkcGFyYW1zWydoZWlnaHQnXSkgKQogICAgICB7CgkkaGVpZ2h0ID0gdHJpbSgkcGFyYW1zWydoZWlnaHQnXSk7CiAgICAgIH0KICAgICRvYmotPkxvYWQoKTsKICAgICR0eHQgPSAkb2JqLT5EaXNwbGF5SW1hZ2UodHJpbSgkcGFyYW1zWydpbWFnZSddKSwkYWx0LCRjbGFzcywkd2lkdGgsJGhlaWdodCk7CgogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2Fzc2lnbiddKSApCiAgICAgIHsKCSRzbWFydHktPmFzc2lnbih0cmltKCRwYXJhbXNbJ2Fzc2lnbiddKSwkdHh0KTsKICAgICAgfQogICAgZWxzZQogICAgICB7CglyZXR1cm4gJHR4dDsKICAgICAgfQogIH0KCiAgLyoKICAgKiBBIHNtYXJ0eSBibG9jayBwbHVnaW4gZm9yIGRpc3BsYXlpbmcgYW4gZXJyb3IgdXNpbmcKICAgKiBhIHRlbXBsYXRlLiAgaS5lIHtlcnJvcn1ibGFoIGJsYWggYmxhaHsvZXJyb3J9CiAgICoKICAgKi8KICBmdW5jdGlvbiBibG9ja0Rpc3BsYXlFcnJvcigkcGFyYW1zLCRjb250ZW50LCYkc21hcnR5LCRyZXBlYXQpCiAgewogICAgZ2xvYmFsICRnQ21zOwogICAgJHR4dCA9ICcnOwogICAgaWYoIHRyaW0oJGNvbnRlbnQpICE9ICcnICkKICAgICAgewoJJGVycm9yY2xhc3MgPSAnZXJyb3InOwoJaWYoIGlzc2V0KCAkcGFyYW1zWydlcnJvcmNsYXNzJ10gKSApCgkgIHsKCSAgICAkZXJyb3JjbGFzcyA9IHRyaW0oJHBhcmFtc1snZXJyb3JjbGFzcyddKTsKCSAgfQoJJG9iaiA9JiAkZ0Ntcy0+bW9kdWxlc1snQ0dFeHRlbnNpb25zJ11bJ29iamVjdCddOwoJJG9iai0+TG9hZCgpOwoJJHR4dCA9ICRvYmotPkRpc3BsYXlFcnJvck1lc3NhZ2UoJGNvbnRlbnQsJGVycm9yY2xhc3MpOwogICAgICB9CiAgICAKICAgIGlmKCBpc3NldCggJHBhcmFtc1snYXNzaWduJ10gKSApCiAgICAgIHsKCSRzbWFydHktPmFzc2lnbigkcGFyYW1zWydhc3NpZ24nXSwkdHh0KTsKCXJldHVybiAnJzsKICAgICAgfQogICAgcmV0dXJuICR0eHQ7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgQ29uc3RydWN0b3I6CiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gQ0dFeHRlbnNpb25zKCkKICB7CiAgICBwYXJlbnQ6OkNNU01vZHVsZSgpOwoKICAgICR0aGlzLT5fb2JqID0gZmFsc2U7CiAgICAkdGhpcy0+X2FjdGlvbmlkID0gJyc7CiAgICAKICAgIGdsb2JhbCAkZ0NtczsKICAgICRzbWFydHkgPSYgJGdDbXMtPkdldFNtYXJ0eSgpOwoKICAgICRzbWFydHktPnJlZ2lzdGVyX2Jsb2NrKCdjZ2Vycm9yJywKCQkJICAgIGFycmF5KCdDR0V4dGVuc2lvbnMnLCdibG9ja0Rpc3BsYXlFcnJvcicpKTsKICAgICRzbWFydHktPnJlZ2lzdGVyX2Z1bmN0aW9uKCdjZ2ltYWdlJywKCQkJICAgICAgIGFycmF5KCdDR0V4dGVuc2lvbnMnLCdzbWFydHlfZnVuY3Rpb25fY2dpbWFnZScpKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBMb2FkKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBMb2FkKCkKICB7CiAgICBpZiggaXNfb2JqZWN0KCR0aGlzLT5fb2JqKSApIHJldHVybjsKICAgIHJlcXVpcmVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nL2NsYXNzLkNHRmlsZVVwbG9hZEhhbmRsZXIucGhwJyk7CiAgICByZXF1aXJlX29uY2UoZGlybmFtZShfX0ZJTEVfXykuJy9jbGFzcy5jZ2V4dGVuc2lvbnMudG9vbHMucGhwJyk7CiAgICAkdGhpcy0+X29iaiA9IG5ldyBjZ2V4dGVuc2lvbnNfdG9vbHMoJHRoaXMpOwogIH0KCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0TmFtZSgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0TmFtZSgpCiAgewogICAgcmV0dXJuICdDR0V4dGVuc2lvbnMnOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldEZyaWVuZGx5TmFtZSgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpOwogIH0KCgkKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRWZXJzaW9uKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRWZXJzaW9uKCkKICB7CiAgICByZXR1cm4gJzEuOSc7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0SGVscCgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0SGVscCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdoZWxwJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0QXV0aG9yKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRBdXRob3IoKQogIHsKICAgIHJldHVybiAnY2FsZ3V5MTAwMCc7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0QXV0aG9yRW1haWwoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkKICB7CiAgICByZXR1cm4gJ2NhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcnOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldENoYW5nZUxvZygpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2NoYW5nZWxvZycpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIElzUGx1Z2luTW9kdWxlKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpCiAgewogICAgcmV0dXJuIGZhbHNlOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEhhc0FkbWluKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBIYXNBZG1pbigpCiAgewogICAgcmV0dXJuIHRydWU7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0QWRtaW5TZWN0aW9uKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRBZG1pblNlY3Rpb24oKQogIHsKICAgIHJldHVybiAnZXh0ZW5zaW9ucyc7IC8vIE5lZWRlZCBmb3Igd2lraSBoZWxwIGxpbmsgdG8gd29yawogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldEFkbWluRGVzY3JpcHRpb24oKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldEFkbWluRGVzY3JpcHRpb24oKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygnbW9kZGVzY3JpcHRpb24nKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBWaXNpYmxlVG9BZG1pblVzZXIoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIFZpc2libGVUb0FkbWluVXNlcigpCiAgewogICAgcmV0dXJuICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0RGVwZW5kZW5jaWVzKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKQogIHsKICAgIHJldHVybiBhcnJheSgpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEluc3RhbGxQb3N0TWVzc2FnZSgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgTWluaW11bUNNU1ZlcnNpb24oKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCkKICB7CiAgICByZXR1cm4gIjEuMyI7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsKICB9CgoKICAvKgogICAqIEEgcmVwbGFjZW1lbnQgZm9yIHRoZSBidWlsdCBpbiBEb0FjdGlvbiBtZXRob2QKICAgKi8KICBmdW5jdGlvbiBEb0FjdGlvbigkbmFtZSwkaWQsJHBhcmFtcywkcmV0dXJuaWQ9JycpCiAgewogICAgaWYoICFtZXRob2RfZXhpc3RzKCR0aGlzLCdzZXRfYWN0aW9uX2lkJykgJiYgJHRoaXMtPkdldE5hbWUoKSAhPSAnQ0dFeHRlbnNpb25zJyApCiAgICAgIHsKCWRpZSgnRkFUQUwgRVJST1I6IEEgbW9kdWxlIGRlcml2ZWQgZnJvbSBDR0V4dGVuc2lvbnMgaXMgbm90IGhhbmRsaW5nIHRoZSBzZXRfYWN0aW9uX2lkIG1ldGhvZCcpOwogICAgICB9CiAgICAkdGhpcy0+c2V0X2FjdGlvbl9pZCgkaWQpOwoKICAgIGdsb2JhbCAkZ0NtczsKICAgICRzbWFydHkgPSYgJGdDbXMtPkdldFNtYXJ0eSgpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdhY3Rpb25pZCcsJGlkKTsKICAgICRzbWFydHktPmFzc2lnbignYWN0aW9ucGFyYW1zJywkcGFyYW1zKTsKICAgICRzbWFydHktPmFzc2lnbigncmV0dXJuaWQnLCRyZXR1cm5pZCk7CiAgICAkc21hcnR5LT5hc3NpZ25fYnlfcmVmKCdtb2QnLCR0aGlzKTsKCiAgICAkdGhpcy0+bW9kdWxlLT5fcmV0dXJuaWQgPSAkcmV0dXJuaWQ7CiAgICBpZiggJHJldHVybmlkID09ICcnICkKICAgICAgewoJaWYoIGlzc2V0KCRwYXJhbXNbJ2NnX2FjdGl2ZXRhYiddKSApCgkgIHsKCSAgICAkdGhpcy0+X2N1cnJlbnRfdGFiID0gdHJpbSgkcGFyYW1zWydjZ19hY3RpdmV0YWInXSk7CgkgICAgdW5zZXQoJHBhcmFtc1snY2dfYWN0aXZldGFiJ10pOwoJICB9CglpZiggaXNzZXQoJHBhcmFtc1snY2dfZXJyb3InXSkgKQoJICB7CgkgICAgJHRoaXMtPl9lcnJvcm1zZyA9IGV4cGxvZGUoJzplcnI6JywkcGFyYW1zWydjZ19lcnJvciddKTsKCSAgICB1bnNldCgkcGFyYW1zWydjZ19lcnJvciddKTsKCSAgfQogICAgICB9CiAgICBwYXJlbnQ6OkRvQWN0aW9uKCRuYW1lLCRpZCwkcGFyYW1zLCRyZXR1cm5pZCk7CiAgfQoKICAvKioqCiAgICogQSBtZXRob2QgdG8gaW5zZXJ0IG9ubHkgdW5pcXVlIGl0ZW1zIGludG8gYW4gYXJyYXkKICAgKi8KICBmdW5jdGlvbiBhcnJheV9pbnNlcnRfdW5pcXVlKCAmJGFyciwgJHN0ciApCiAgewogICAgJHRoaXMtPkxvYWQoKTsKICAgIHJldHVybiAkdGhpcy0+X29iai0+YXJyYXlfaW5zc2VydF91bmlxdWUoJGFyciwkc3RyKTsKICB9CgogIGZ1bmN0aW9uIGFycmF5X2tleV9leGlzdHNfc3Vic3RyKCAkYXJyLCAkZXhwciApCiAgewogICAgJHRoaXMtPkxvYWQoKTsKICAgIHJldHVybiAkdGhpcy0+X29iai0+YXJyYXlfa2V5X2V4aXN0c19zdWJzdHIoJGFyciwgJGV4cHIpOwogIH0KCiAgZnVuY3Rpb24gYXJyYXlfZmluZF9rZXlfcmVnZXhwKCAkYXJyLCAkZXhwciApCiAgewogICAgJHRoaXMtPkxvYWQoKTsKICAgIHJldHVybiAkdGhpcy0+X29iai0+YXJyYXlfZmluZF9rZXlfcmVnZXhwKCRhcnIsJGV4cHIpOwogIH0KCiAgZnVuY3Rpb24gYXJyYXlfbWVyZ2VfYnlfa2V5cyggJGFycjEsICRhcnIyLCAka2V5MSA9ICduYW1lJywgJGtleTIgPSAnbmFtZScgKQogIHsKICAgICR0aGlzLT5Mb2FkKCk7CiAgICByZXR1cm4gJHRoaXMtPl9vYmotPmFycmF5X21lcmdlX2J5X2tleXMoJGFycjEsJGFycjIsJGtleTEsJGtleTIpOwogIH0KCiAgZnVuY3Rpb24gYXJyYXlfdG9faGFzaCgkaW5wdXQsJGtleSkKICB7CiAgICAkdGhpcy0+TG9hZCgpOwogICAgcmV0dXJuICR0aGlzLT5fb2JqLT5hcnJheV90b19oYXNoKCRpbnB1dCwka2V5KTsKICB9CgogIGZ1bmN0aW9uIGFycmF5X2V4dHJhY3RfZmllbGQoJGlucHV0LCRrZXkpCiAgewogICAgJHRoaXMtPkxvYWQoKTsKICAgIHJldHVybiAkdGhpcy0+X29iai0+YXJyYXlfZXh0cmFjdF9maWVsZCgkaW5wdXQsJGtleSk7CiAgfQoKICBmdW5jdGlvbiBjb21wYXJlX2VsZW1lbnRzX2J5X3NvcnRvcmRlcl9rZXkoICRlMSwgJGUyICkKICB7CiAgICAkdGhpcy0+TG9hZCgpOwogICAgcmV0dXJuICR0aGlzLT5fb2JqLT5jb21wYXJlX2VsZW1lbnRzX2J5X3NvcnRvcmRlcl9rZXkoICRlMSwgJGUyICk7CiAgfQoKICBmdW5jdGlvbiBleHBsb2RlX3dpdGhfa2V5KCRzdHIsICRpbmdsdWU9Jz0nLCAkb3V0Z2x1ZT0nJicpCiAgewogICAgJHRoaXMtPkxvYWQoKTsKICAgIHJldHVybiAkdGhpcy0+X29iai0+ZXhwbG9kZV93aXRoX2tleSgkc3RyLCRpbmdsdWUsJG91dGdsdWUpOwogIH0KCiAgZnVuY3Rpb24gZmluZF9pbmRleF9vZl92YWx1ZSgkZGF0YSwkdmFsdWUsJGRmbHQpCiAgewogICAgJHRoaXMtPkxvYWQoKTsKICAgIHJldHVybiAkdGhpcy0+X29iai0+ZmluZF9pbmRleF9vZl92YWx1ZSgkZGF0YSwkdmFsdWUsJGRmbHQpOwogIH0KCiAgZnVuY3Rpb24gbmVzdGVkX2FycmF5X3NlYXJjaF9ieV9rZXkoICYkaW5wdXQsICRrZXksICR2YWx1ZSApCiAgewogICAgJHRoaXMtPkxvYWQoKTsKICAgIHJldHVybiAkdGhpcy0+X29iai0+bmVzdGVkX2FycmF5X3NlYXJjaF9ieV9rZXkoJGlucHV0LCRrZXksJHZhbHVlKTsKICB9CgoKICBmdW5jdGlvbiBpbXBsb2RlX3dpdGhfa2V5KCRhc3NvYywkaW5nbHVlPSc9Jywkb3V0Z2x1ZT0nJicpCiAgewogICAgJHRoaXMtPkxvYWQoKTsKICAgIHJldHVybiAkdGhpcy0+X29iai0+aW1wbG9kZV93aXRoX2tleSgkYXNzb2MsJGluZ2x1ZSwkb3V0Z2x1ZSk7CiAgfQoKICAvKgogICAqIEEgY29udmVuaWVuY2UgZnVuY3Rpb24gdG8gY3JlYXRlIGEgdXJsCiAgICovCiAgZnVuY3Rpb24gQ3JlYXRlVVJMKCRpZCwkYWN0aW9uLCRyZXR1cm5pZCwkcGFyYW1zPWFycmF5KCksJGlubGluZT1mYWxzZSkKICB7CiAgICAkdGhpcy0+TG9hZCgpOwogICAgcmV0dXJuICR0aGlzLT5fb2JqLT5fX0NyZWF0ZVByZXR0eUxpbmsoJGlkLCRhY3Rpb24sJHJldHVybmlkLCcnLCRwYXJhbXMsJycsdHJ1ZSwkaW5saW5lKTsKICB9CgogIGZ1bmN0aW9uIENyZWF0ZUlucHV0WWVzTm9Ecm9wZG93bigkaWQsJG5hbWUsJHNlbGVjdGVkdmFsdWU9JycsJGFkZHRleHQ9JycpCiAgewogICAgJHRoaXMtPkxvYWQoKTsKICAgIHJldHVybiAkdGhpcy0+X29iai0+Q3JlYXRlSW5wdXRZZXNOb0Ryb3Bkb3duKCRpZCwkbmFtZSwkc2VsZWN0ZWR2YWx1ZSwkYWRkdGV4dCk7CiAgfQoKICBmdW5jdGlvbiBDR0NyZWF0ZUlucHV0U3VibWl0KCRpZCwkbmFtZSwkdmFsdWU9JycsJGFkZHRleHQ9JycsJGltYWdlPScnLAoJCQkgICAgICRjb25maXJtdGV4dD0nJywkY2xhc3M9JycpCiAgewogICAgJHRoaXMtPkxvYWQoKTsKICAgIHJldHVybiAkdGhpcy0+X29iai0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCRuYW1lLCR2YWx1ZSwkYWRkdGV4dCwkaW1hZ2UsJGNvbmZpcm10ZXh0LCRjbGFzcyk7CiAgfQoKCiAgZnVuY3Rpb24gQ3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJG5hbWUsJHZhbHVlPScnLCRzZWxlY3RlZHZhbHVlPScnLAoJCQkgICAgICAgJGFkZHRleHQ9JycpCiAgewogICAgJHRoaXMtPkxvYWQoKTsKICAgIHJldHVybiAkdGhpcy0+X29iai0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJG5hbWUsJHZhbHVlLCRzZWxlY3RlZHZhbHVlLCRhZGR0ZXh0KTsKICB9CgogIC8qCiAgICogQSBDb252ZW5pZW5jZSBmdW5jdGlvbiBmb3IgY3JlYXRpbmcgZm9ybXMKICAgKi8KICBmdW5jdGlvbiBDR0NyZWF0ZUZvcm1TdGFydCgkaWQsJGFjdGlvbj0nZGVmYXVsdCcsJHJldHVybmlkPScnLCRwYXJhbXM9YXJyYXkoKSwkaW5saW5lPWZhbHNlLCRtZXRob2Q9J3Bvc3QnLCRlbmN0eXBlPScnLCRpZHN1ZmZpeD0nJywkZXh0cmE9JycpCiAgewogICAgaWYoICFlbXB0eSgkdGhpcy0+X2N1cnJlbnRfdGFiKSApCiAgICAgIHsKCSRwYXJhbXNbJ2NnX2FjdGl2ZXRhYiddID0gJHRoaXMtPl9jdXJyZW50X3RhYjsKICAgICAgfQogICAgcmV0dXJuICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCRhY3Rpb24sJHJldHVybmlkLCRtZXRob2QsJGVuY3R5cGUsJGlubGluZSwkaWRzdWZmaXgsJHBhcmFtcywkZXh0cmEpOwogIH0KCgogIC8qCiAgICogQSBjb252ZW5pZW5jZSBmdW5jdGlvbiBmb3IgY3JlYXRpbmcgYSBmcm9udGVuZCBmb3JtCiAgICovCiAgZnVuY3Rpb24gQ0dDcmVhdGVGcm9udGVuZEZvcm1TdGFydCgkaWQsJGFjdGlvbj0nZGVmYXVsdCcsJHJldHVybmlkPScnLCRwYXJhbXM9YXJyYXkoKSwkaW5saW5lPXRydWUsJG1ldGhvZD0ncG9zdCcsJGVuY3R5cGU9JycsJGlkc3VmZml4PScnLCRleHRyYT0nJykKICB7CiAgICAkdGhpcy0+TG9hZCgpOwogICAgcmV0dXJuICR0aGlzLT5DcmVhdGVGcm9udGVuZEZvcm1TdGFydCgkaWQsJHJldHVybmlkLCRhY3Rpb24sJG1ldGhvZCwkZW5jdHlwZSwkaW5saW5lLCRpZHN1ZmZpeCwkcGFyYW1zLCRleHRyYSk7CiAgfQoKCiAgZnVuY3Rpb24gUmVkaXJlY3RUb1RhYiggJGlkLCAkdGFiID0gJycsICRwYXJhbXMgPSAnJywgJGFjdGlvbiA9ICcnICkKICB7CiAgICAkdGhpcy0+TG9hZCgpOwogICAgcmV0dXJuICR0aGlzLT5fb2JqLT5SZWRpcmVjdFRvVGFiKCRpZCwkdGFiLCRwYXJhbXMsJGFjdGlvbik7CiAgfQoKICAKICBmdW5jdGlvbiBDcmVhdGVJbnB1dEhpZGRlbigkaWQsJG5hbWUsJHZhbHVlPScnLCRhZGR0ZXh0PScnLCRkZWxpbT0nLCcpCiAgewogICAgJHRoaXMtPkxvYWQoKTsKICAgIHJldHVybiAkdGhpcy0+X29iai0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCRuYW1lLCR2YWx1ZSwkYWRkdGV4dCwkZGVsaW0pOwogIH0KCiAgZnVuY3Rpb24gVHJhbnNmb3JtSW1hZ2UoJHNyY1NwZWMsJGRlc3RTcGVjLCRzaXplPScnKQogIHsKICAgICR0aGlzLT5Mb2FkKCk7CiAgICByZXR1cm4gJHRoaXMtPl9vYmotPlRyYW5zZm9ybUltYWdlKCRzcmNTcGVjLCRkZXN0U3BlYywkc2l6ZSk7CiAgfQoKICAvKgogICAqIFRlc3QgaWYgdGhlIGN1cnJlbnQgY29kZSBpcyBoYW5kbGluZyBhbiBhZG1pbiBhY3Rpb24gb3IKICAgKiBhIGZyb250ZW5kIGFjdGlvbgogICAqLwogIGZ1bmN0aW9uIElzQWRtaW5BY3Rpb24oKQogIHsKICAgIHJldHVybiAoJHRoaXMtPl9yZXR1cm5pZCA9PSAnJyk7CiAgfQoKCiAgLyoKICAgKiBTZXQgYW4gZXJyb3IKICAgKi8KICBmdW5jdGlvbiBTZXRFcnJvcigkc3RyKQogIHsKICAgIGlmKCAhaXNfYXJyYXkoICR0aGlzLT5fZXJyb3Jtc2cgKSApCiAgICAgICR0aGlzLT5fZXJyb3Jtc2cgPSBhcnJheSgpOwogICAgJHRoaXMtPl9lcnJvcm1zZ1tdID0gJHN0cjsKICB9CgoKICAvKgogICAqIERpc3BsYXkgZXJyb3JzIHVzaW5nIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUKICAgKi8KICBmdW5jdGlvbiBEaXNwbGF5RXJyb3JzKCkKICB7CiAgICBpZiggaXNfYXJyYXkoJHRoaXMtPl9lcnJvcm1zZykgJiYgY291bnQoJHRoaXMtPl9lcnJvcm1zZykgKQogICAgICB7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5fZXJyb3Jtc2cpOwoJJHRoaXMtPl9lcnJvcm1zZyA9IGFycmF5KCk7CiAgICAgIH0KICB9CgoKICAvKgogICAqIFNldCB0aGUgY3VycmVudCBhZG1pbiB0YWIKICAgKiBTZWUgQWxzbzogIFJlZGlyZWN0IFRvIFRhYgogICAqLwogIGZ1bmN0aW9uIFNldEN1cnJlbnRUYWIoJHRhYm5hbWUpCiAgewogICAgJHRoaXMtPl9jdXJyZW50X3RhYiA9ICR0YWJuYW1lOwogIH0KCgogIC8qCiAgICogQSByZXBsYWNlbWVudCBmb3IgdGhlIGJ1aWx0IGluIFNldFRhYkhlYWRlcgogICAqLwogIGZ1bmN0aW9uIFNldFRhYkhlYWRlcigkbmFtZSwkc3RyLCRzdGF0ZSA9ICd1bmtub3duJykKICB7CiAgICBpZiggJHN0YXRlID09ICd1bmtub3duJyApCiAgICAgIHsKCSRzdGF0ZSA9ICgkbmFtZSA9PSAkdGhpcy0+X2N1cnJlbnRfdGFiKTsKICAgICAgfQogICAgcmV0dXJuIHBhcmVudDo6U2V0VGFiSGVhZGVyKCRuYW1lLCRzdHIsJHN0YXRlKTsKICB9CgoKICBmdW5jdGlvbiBDcmVhdGVJbWFnZVRhZygkaWQsJGFsdD0nJywkd2lkdGg9JycsJGhlaWdodD0nJywkY2xhc3M9JycsCgkJCSAgJGFkZHRleHQ9JycpCiAgewogICAgJHRoaXMtPkxvYWQoKTsKICAgIHJldHVybiAkdGhpcy0+X29iai0+Q3JlYXRlSW1hZ2VUYWcoJGlkLCRhbHQsJHdpZHRoLCRoZWlnaHQsJGNsYXNzLCRhZGR0ZXh0KTsKICB9CgoKICBmdW5jdGlvbiBEaXNwbGF5SW1hZ2UoJGltYWdlLCRhbHQ9JycsJGNsYXNzPScnLCR3aWR0aD0nJywkaGVpZ2h0PScnKQogIHsKICAgICR0aGlzLT5Mb2FkKCk7CiAgICByZXR1cm4gJHRoaXMtPl9vYmotPkRpc3BsYXlJbWFnZSgkaW1hZ2UsJGFsdCwkY2xhc3MsJHdpZHRoLCRoZWlnaHQpOwogIH0KCgogIGZ1bmN0aW9uIENyZWF0ZUltYWdlTGluaygkaWQsJGFjdGlvbiwkcmV0dXJuaWQsJGNvbnRlbnRzLCRpbWFnZSwKCQkJICAgJHBhcmFtcz1hcnJheSgpLCRjbGFzc25hbWU9JycsCgkJCSAgICR3YXJuX21lc3NhZ2U9JycsJGltYWdlb25seT10cnVlLAoJCQkgICAkaW5saW5lPWZhbHNlLAoJCQkgICAkYWRkdGV4dD0nJywkdGFyZ2V0Y29udGVudG9ubHk9ZmFsc2UsJHByZXR0eXVybD0nJykKICB7CiAgICAkdGhpcy0+TG9hZCgpOwogICAgcmV0dXJuICR0aGlzLT5fb2JqLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCRhY3Rpb24sJHJldHVybmlkLCRjb250ZW50cywkaW1hZ2UsCgkJCQkgJHBhcmFtcywkY2xhc3NuYW1lLCR3YXJuX21lc3NhZ2UsCgkJCQkgJGltYWdlb25seSwkaW5saW5lLCRhZGR0ZXh0LAoJCQkJICR0YXJnZXRjb250ZW50b25seSwkcHJldHR5dXJsKTsKICB9CgoKCiAgLyoKICAgKiBBIGZ1bmN0aW9uIGZvciB1c2luZyBhIHRlbXBsYXRlIHRvIGRpc3BsYXkgYW4gZXJyb3IgbWVzc2FnZQogICAqLwogIGZ1bmN0aW9uIERpc3BsYXlFcnJvck1lc3NhZ2UoJHR4dCwkY2xhc3MgPSAnZXJyb3InKQogIHsKICAgIGdsb2JhbCAkZ0NtczsKICAgICRzbWFydHkgPSYgJGdDbXMtPkdldFNtYXJ0eSgpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdjZ19lcnJvcmNsYXNzJywkY2xhc3MpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdjZ19lcnJvcm1zZycsJHR4dCk7CiAgICAkcmVzID0gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgnY2dfZXJyb3Jtc2cnLCcnLHRydWUsJ0NHRXh0ZW5zaW9ucycpOwogICAgcmV0dXJuICRyZXM7CiAgfQoKCiAgLyoKICAgKiBBIGNvbnZlbmllbmNlIGZ1bmN0aW9uIGZvciByZXRyaWV2aW5nIHRoZSBjdXJyZW50IGVycm9yIHRlbXBsYXRlCiAgICovCiAgZnVuY3Rpb24gR2V0RXJyb3JUZW1wbGF0ZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5HZXRUZW1wbGF0ZSgnY2dfZXJyb3Jtc2cnLCdDR0V4dGVuc2lvbnMnKTsKICB9CgoKICAvKgogICAqIFJlc2V0IHRoZSBlcnJvciB0ZW1wbGF0ZSB0byBmYWN0b3J5IGRlZmF1bHRzCiAgICovCiAgZnVuY3Rpb24gUmVzZXRFcnJvclRlbXBsYXRlKCkKICB7CiAgICAkZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX2Vycm9yX3RlbXBsYXRlLnRwbCcpOwogICAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApCiAgICAgIHsKCSR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOwoJJHRoaXMtPlNldFRlbXBsYXRlKCAnY2dfZXJyb3Jtc2cnLCAkdGVtcGxhdGUsJ0NHRXh0ZW5zaW9ucycgKTsKICAgICAgfQogIH0KCgogIC8qCiAgICogU2V0IHRoZSBlcnJvciB0ZW1wbGF0ZQogICAqLwogIGZ1bmN0aW9uIFNldEVycm9yVGVtcGxhdGUoJHRtcGwpCiAgewogICAgcmV0dXJuICR0aGlzLT5TZXRUZW1wbGF0ZSgnY2dfZXJyb3Jtc2cnLCR0bXBsLCdDR0V4dGVuc2lvbnMnKTsKICB9CgoKICAvKgogICAqIEFkZCBhIGRpcmVjdG9yeSB0byB0aGUgbGlzdCBvZiBzZWFyY2hhYmxlIGRpcmVjdG9yaWVzCiAgICovCiAgZnVuY3Rpb24gQWRkSW1hZ2VEaXIoJGRpcikKICB7CiAgICBpZiggc3RycG9zKCcvJywkZGlyKSAhPT0gMCApCiAgICAgIHsKCSRkaXIgPSAibW9kdWxlcy8iLiR0aGlzLT5HZXROYW1lKCkuJy8nLiRkaXI7CiAgICAgIH0KICAgICR0aGlzLT5faW1hZ2VfZGlyZWN0b3JpZXNbXSA9ICRkaXI7CiAgfQoKICBmdW5jdGlvbiAmR2V0RmlsZVVwbG9hZEhhbmRsZXIoJGlkLCRkZXN0ZGlyKQogIHsKICAgICR0aGlzLT5Mb2FkKCk7CiAgICAkaGFuZGxlciA9IG5ldyBDR0ZpbGVVcGxvYWRIYW5kbGVyKCRpZCwkZGVzdGRpcik7CiAgICByZXR1cm4gJGhhbmRsZXI7CiAgfQoKICBmdW5jdGlvbiBMaXN0VGVtcGxhdGVzV2l0aFByZWZpeCgkcHJlZml4PScnLCR0cmltID0gZmFsc2UgKQogIHsKICAgICR0aGlzLT5Mb2FkKCk7CiAgICByZXR1cm4gJHRoaXMtPl9vYmotPkxpc3RUZW1wbGF0ZXNXaXRoUHJlZml4KCRwcmVmaXgsJHRyaW0pOwogIH0KCiAgZnVuY3Rpb24gQ3JlYXRlVGVtcGxhdGVEcm9wZG93bigkaWQsJG5hbWUsJHByZWZpeD0nJywkc2VsZWN0ZWR2YWx1ZT0tMSwkYWRkdGV4dD0nJykKICB7CiAgICAkdGhpcy0+TG9hZCgpOwogICAgcmV0dXJuICR0aGlzLT5fb2JqLT5DcmVhdGVUZW1wbGF0ZURyb3Bkb3duKCRpZCwkbmFtZSwkcHJlZml4LCRzZWxlY3RlZHZhbHVlLCRhZGR0ZXh0KTsKICB9CgogIC8qCiAgICogUGFydCBvZiB0aGUgbXVsdGlwbGUgZGF0YWJhc2UgdGVtcGxhdGUgZnVuY3Rpb25hbGl0eQogICAqIHRoaXMgZnVuY3Rpb24gcHJvdmlkZXMgYW4gaW50ZXJmYWNlIGZvciBhZGRpbmcsIGVkaXRpbmcsCiAgICogZGVsZXRpbmcgYW5kIG1hcmtpbmcgYWN0aXZlIGFsbCB0ZW1wbGF0ZXMgdGhhdCBtYXRjaAogICAqIGEgcHJlZml4LgogICAqLwogIGZ1bmN0aW9uIFNob3dUZW1wbGF0ZUxpc3QoJGlkLCRyZXR1cm5pZCwkcHJlZml4LAoJCQkgICAgJGRlZmF1bHR0ZW1wbGF0ZXByZWYsJGFjdGl2ZV90YWIsCgkJCSAgICAkZGVmYXVsdHByZWZuYW1lLAoJCQkgICAgJHRpdGxlLCRpbmZvID0gJycpCiAgewogICAgJGNnZXh0ZW5zaW9ucyA9JiAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NHRXh0ZW5zaW9ucycpOwogICAgcmV0dXJuICRjZ2V4dGVuc2lvbnMtPl9EaXNwbGF5VGVtcGxhdGVMaXN0KCR0aGlzLCRpZCwkcmV0dXJuaWQsJHByZWZpeCwKCQkJCSAgICAgICRkZWZhdWx0dGVtcGxhdGVwcmVmLCRhY3RpdmVfdGFiLAoJCQkgICAgICAgICAgICAgICRkZWZhdWx0cHJlZm5hbWUsJHRpdGxlLCRpbmZvKTsKICB9CgoKICBmdW5jdGlvbiBfRGlzcGxheVRlbXBsYXRlTGlzdCgmJG1vZHVsZSwkaWQsJHJldHVybmlkLCRwcmVmaXgsCgkJCQkkZGVmYXVsdHRlbXBsYXRlcHJlZiwkYWN0aXZlX3RhYiwKCQkJCSRkZWZhdWx0cHJlZm5hbWUsCgkJCQkkdGl0bGUsICRpbmZvID0gJycpCiAgewogICAgJHRoaXMtPkxvYWQoKTsKICAgIHJldHVybiAkdGhpcy0+X29iai0+X0Rpc3BsYXlUZW1wbGF0ZUxpc3QoJG1vZHVsZSwkaWQsJHJldHVybmlkLCRwcmVmaXgsCgkJCQkJICAgICAkZGVmYXVsdHRlbXBsYXRlcHJlZiwkYWN0aXZlX3RhYiwKCQkJCQkgICAgICRkZWZhdWx0cHJlZm5hbWUsJHRpdGxlLCRpbmZvKTsKICB9CgoKICAvLyAtLS0tLS0tLS0tLS0gbGl4bHBpeGVsIHJlY3Vyc2l2ZSBQSFAgZnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0KICAvLyByZWN1cnNpdmVfcmVtb3ZlX2RpcmVjdG9yeSggZGlyZWN0b3J5IHRvIGRlbGV0ZSwgZW1wdHkgKQogIC8vIGV4cGVjdHMgcGF0aCB0byBkaXJlY3RvcnkgYW5kIG9wdGlvbmFsIFRSVUUgLyBGQUxTRSB0byBlbXB0eQogIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGZ1bmN0aW9uIHJlY3Vyc2l2ZV9yZW1vdmVfZGlyZWN0b3J5KCRkaXJlY3RvcnksICRlbXB0eT1GQUxTRSkKICB7CiAgICBpZihzdWJzdHIoJGRpcmVjdG9yeSwtMSkgPT0gJy8nKQogICAgICB7CiAgICAgICAgJGRpcmVjdG9yeSA9IHN1YnN0cigkZGlyZWN0b3J5LDAsLTEpOwogICAgICB9CiAgICBpZighZmlsZV9leGlzdHMoJGRpcmVjdG9yeSkgfHwgIWlzX2RpcigkZGlyZWN0b3J5KSkKICAgICAgewogICAgICAgIHJldHVybiBGQUxTRTsKICAgICAgfQogICAgZWxzZWlmKGlzX3JlYWRhYmxlKCRkaXJlY3RvcnkpKQogICAgICB7CgkkaGFuZGxlID0gb3BlbmRpcigkZGlyZWN0b3J5KTsKCXdoaWxlIChGQUxTRSAhPT0gKCRpdGVtID0gcmVhZGRpcigkaGFuZGxlKSkpCgkgIHsKCSAgICBpZigkaXRlbSAhPSAnLicgJiYgJGl0ZW0gIT0gJy4uJykKCSAgICAgIHsKCQkkcGF0aCA9ICRkaXJlY3RvcnkuJy8nLiRpdGVtOwoJCWlmKGlzX2RpcigkcGF0aCkpIAoJCSAgewoJCSAgICAkdGhpcy0+cmVjdXJzaXZlX3JlbW92ZV9kaXJlY3RvcnkoJHBhdGgpOwoJCSAgfWVsc2V7CgkJICB1bmxpbmsoJHBhdGgpOwoJCX0KCSAgICAgIH0KCSAgfQoJY2xvc2VkaXIoJGhhbmRsZSk7CglpZigkZW1wdHkgPT0gRkFMU0UpCgkgIHsKCSAgICBpZighcm1kaXIoJGRpcmVjdG9yeSkpCgkgICAgICB7CgkJcmV0dXJuIEZBTFNFOwoJICAgICAgfQoJICB9CiAgICAgIH0KICAgIHJldHVybiBUUlVFOwogIH0KCgogIC8qCiAgICogQSBmdW5jdGlvbiB0byByZXRyaWV2ZSBhIGxpc3Qgb2YgZmlsZXMgbWF0Y2hpbmcgYSByZWdleHAKICAgKi8KICBmdW5jdGlvbiBnZXRfcmVnZXhwX2ZpbGVfbGlzdCgkZGlyLCRyZWdleHAsJGxpbWl0PTEwMDAwMDApCiAgewogICAgaWYoIGVtcHR5KCRkaXIpICkgcmV0dXJuIGZhbHNlOwogICAgaWYoICFpc19kaXIoJGRpcikgKSByZXR1cm4gZmFsc2U7CgogICAgJGRoID0gb3BlbmRpcigkZGlyKTsKICAgIGlmKCAhJGRoICkgcmV0dXJuIGZhbHNlOwoKICAgICRyZXN1bHRzID0gYXJyYXkoKTsKICAgIHdoaWxlKCAoJGZpbGUgPSByZWFkZGlyKCRkaCkpICE9PSBmYWxzZSAmJiBjb3VudCgkcmVzdWx0cykgPCAkbGltaXQgICkKICAgICAgewoJaWYoICRmaWxlID09ICcuJyB8fCAkZmlsZSA9PSAnLi4nICkgY29udGludWU7CglpZiggcHJlZ19tYXRjaCggJy8nLiRyZWdleHAuJy8nLCAkZmlsZSApICkKCSAgewoJICAgICRyZXN1bHRzW10gPSAkZmlsZTsKCSAgfQogICAgICB9CiAgICBjbG9zZWRpcigkZGgpOwoKICAgIGlmKCBjb3VudCgkcmVzdWx0cykgPT0gMCApIHJldHVybiBmYWxzZTsKICAgIHJldHVybiAkcmVzdWx0czsKICB9CgoKICAvKgogICAqIEEgY29udmVuaWVuY2UgZnVuY3Rpb24gdG8gY3JlYXRlIGEgc3RhdGUgZHJvcGRvd24gbGlzdAogICAqLwogIGZ1bmN0aW9uIENyZWF0ZUlucHV0U3RhdGVEcm9wZG93bigkaWQsJG5hbWUsJHZhbHVlPSdBTCcsJHNlbGVjdG9uZT1mYWxzZSwkYWRkdGV4dD0nJykKICB7CiAgICAkZGIgPSYgJHRoaXMtPkdldERiKCk7CiAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLkNHRVhURU5TSU9OU19UQUJMRV9TVEFURVMuJyBPUkRFUiBCWSBzb3J0aW5nIERFU0MsbmFtZSBBU0MnOwogICAgJHRtcCA9ICRkYi0+R2V0QWxsKCRxdWVyeSk7CiAgICAKICAgICRzdGF0ZXMgPSBhcnJheSgpOwogICAgaWYoICRzZWxlY3RvbmUgIT09IGZhbHNlICkKICAgICAgewoJJHN0YXRlc1skdGhpcy0+TGFuZygnc2VsZWN0X29uZScpXSA9ICcnOwogICAgICB9CiAgICBmb3JlYWNoKCR0bXAgYXMgJHJvdykKICAgICAgewoJJHN0YXRlc1skcm93WyduYW1lJ11dID0gJHJvd1snY29kZSddOwogICAgICB9CiAgICByZXR1cm4gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCRuYW1lLCRzdGF0ZXMsLTEsCgkJCQkgICAgICBzdHJ0b3VwcGVyKCR2YWx1ZSksJGFkZHRleHQpOwogIH0KCiAgLyoKICAgKiBBIGNvbnZlbmllbmNlIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIGNvdW50cnkgZHJvcGRvd24gbGlzdAogICAqLwogIGZ1bmN0aW9uIENyZWF0ZUlucHV0Q291bnRyeURyb3Bkb3duKCRpZCwkbmFtZSwkdmFsdWU9J1VTJywkc2VsZWN0b25lPWZhbHNlLCRhZGR0ZXh0PScnKQogIHsKICAgICRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuQ0dFWFRFTlNJT05TX1RBQkxFX0NPVU5UUklFUy4nIE9SREVSIEJZIHNvcnRpbmcgREVTQyxuYW1lIEFTQyc7CiAgICAkdG1wID0gJGRiLT5HZXRBbGwoJHF1ZXJ5KTsKICAgIAogICAgJGNvdW50cmllcyA9IGFycmF5KCk7CiAgICBpZiggJHNlbGVjdG9uZSAhPT0gZmFsc2UgKQogICAgICB7CgkkY291bnRyaWVzWyR0aGlzLT5MYW5nKCdzZWxlY3Rfb25lJyldID0gJyc7CiAgICAgIH0KICAgIGZvcmVhY2goJHRtcCBhcyAkcm93KQogICAgICB7CgkkY291bnRyaWVzWyRyb3dbJ25hbWUnXV0gPSAkcm93Wydjb2RlJ107CiAgICAgIH0KICAgIHJldHVybiAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJG5hbWUsJGNvdW50cmllcywtMSwKCQkJCSAgICAgIHN0cnRvdXBwZXIoJHZhbHVlKSwkYWRkdGV4dCk7CiAgfQoKICAvKgogICAqIEEgY29udmVuaWVuY2UgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjb3VudHJ5IG5hbWUgZ2l2ZW4gdGhlIGFjcm9ueW0KICAgKi8KICBmdW5jdGlvbiBHZXRDb3VudHJ5KCR0aGVfYWNyb255bSkKICB7CiAgICAkZGIgPSYgJHRoaXMtPkdldERiKCk7CiAgICAkcXVlcnkgPSAnU0VMRUNUIG5hbWUgRlJPTSAnLkNHRVhURU5TSU9OU19UQUJMRV9DT1VOVFJJRVMuJwogICAgICAgICAgICAgICBXSEVSRSBjb2RlID0gPyc7CiAgICAkbmFtZSA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkdGhlX2Fjcm9ueW0pKTsKICAgIHJldHVybiAkbmFtZTsKICB9CgoKICAvKgogICAqIEEgY29udmVuaWVuY2UgZnVuY3Rpb24gdG8gZ2V0IHRoZSBzdGF0ZSBuYW1lIGdpdmVuIHRoZSBhY3JvbnltCiAgICovCiAgZnVuY3Rpb24gR2V0U3RhdGUoJHRoZV9hY3JvbnltKQogIHsKICAgICRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKICAgICRxdWVyeSA9ICdTRUxFQ1QgbmFtZSBGUk9NICcuQ0dFWFRFTlNJT05TX1RBQkxFX1NUQVRFUy4nCiAgICAgICAgICAgICAgIFdIRVJFIGNvZGUgPSA/JzsKICAgICRuYW1lID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCR0aGVfYWNyb255bSkpOwogICAgcmV0dXJuICRuYW1lOwogIH0KCiAgLyoKICAgKiBBIGNvbnZlbmllbmNlIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIGZpbGUgbGlzdAogICAqLwogIGZ1bmN0aW9uIEdldEZpbGVMaXN0KCRkaXIsJGZpbGV0eXBlcykKICB7CiAgICBnbG9iYWwgJGdDbXM7CiAgICAkY29uZmlnID0mICRnQ21zLT5HZXRDb25maWcoKTsKCiAgICAkZmlsZXR5cGVzYSA9IGFycmF5KCk7CiAgICBpZiggIWVtcHR5KCRmaWxldHlwZXMpICkKICAgICAgewoJJGZpbGV0eXBlc2EgPSBleHBsb2RlKCcsJyxzdHJ0b2xvd2VyKCRmaWxldHlwZXMpKTsKICAgICAgfQoKICAgICRmaWxlcyA9IGFycmF5KCk7CiAgICAkZGggPSBvcGVuZGlyKCAkZGlyICk7CiAgICBpZiggJGRoICkKICAgICAgewoJd2hpbGUgKGZhbHNlICE9PSAoJGZpbGUgPSByZWFkZGlyKCRkaCkpKSB7CgkgIGlmKCAkZmlsZSA9PSAnLicgfHwgJGZpbGUgPT0gJy4uJyApIGNvbnRpbnVlOwoJICAKCSAgJGZ1bGxwYXRoID0gY21zX2pvaW5fcGF0aCgkZGlyLCRmaWxlKTsKCSAgaWYoIGlzX2RpciggJGZ1bGxwYXRoICkgKSBjb250aW51ZTsKCgkgICRleHQgPSBzdWJzdHIoc3RycmNocigkZmlsZSwgJy4nKSwgMSk7CgkgIGlmKCBjb3VudCgkZmlsZXR5cGVzYSkgPiAwICYmICFpbl9hcnJheSggJGV4dCwgJGZpbGV0eXBlc2EgKSApIGNvbnRpbnVlOwoKCSAgJGZpbGVzWyRmaWxlXSA9ICRmaWxlOwoJfQoJY2xvc2VkaXIoJGRoKTsKICAgICAgfQoKICAgIHJldHVybiAkZmlsZXM7CiAgfQoKICAKICAvKgogICAqIEEgY29udmVuaWVuY2UgZnVuY3Rpb24gdG8gY3JlYXRlIGEgZmlsZSBkcm9wZG93bgogICAqLwogIGZ1bmN0aW9uIENyZWF0ZUltYWdlRHJvcGRvd24oJGlkLCRuYW1lLCRzZWxlY3RlZGZpbGUsJGRpciA9ICcnKQogIHsKICAgIGdsb2JhbCAkZ0NtczsKICAgICRjb25maWcgPSYgJGdDbXMtPkdldENvbmZpZygpOwoKICAgIGlmKCAkZGlyID09ICcnICkKICAgICAgewoJJGRpciA9ICRjb25maWdbJ2ltYWdlX3VwbG9hZHNfcGF0aCddOwogICAgICB9CiAgICAkZXh0ZW5zaW9ucyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbWFnZWV4dGVuc2lvbnMnKTsKCiAgICAkZmlsZWxpc3QgPSAkdGhpcy0+R2V0RmlsZUxpc3QoJGRpciwkZXh0ZW5zaW9ucyk7CiAgICByZXR1cm4gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCRuYW1lLCRmaWxlbGlzdCwtMSwkc2VsZWN0ZWRmaWxlKTsKICB9CgogIC8qCiAgICogQSBjb252ZW5pZW5jZSBmdW5jdGlvbiB0byBjcmVhdGUgYSBmaWxlIGRyb3Bkb3duCiAgICovCiAgZnVuY3Rpb24gQ3JlYXRlRmlsZURyb3Bkb3duKCRpZCwkbmFtZSwkc2VsZWN0ZWRmaWxlLCRkaXIgPSAnJykKICB7CiAgICBnbG9iYWwgJGdDbXM7CiAgICAkY29uZmlnID0mICRnQ21zLT5HZXRDb25maWcoKTsKICAgIAogICAgaWYoICRkaXIgPT0gJycgKSAkZGlyID0gJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ107CiAgICAkZXh0ZW5zaW9ucyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmaWxlZXh0ZW5zaW9ucycsJycpOwoKICAgICRmaWxlbGlzdCA9ICR0aGlzLT5HZXRGaWxlTGlzdCgkZGlyLCRleHRlbnNpb25zKTsKICAgIHJldHVybiAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJG5hbWUsJGZpbGVsaXN0LC0xLCRzZWxlY3RlZGZpbGUpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldERlZmF1bHRUZW1wbGF0ZUZvcm0KICAgTk9UIFBBUlQgT0YgVEhFIE1PRFVMRSBBUEkKCiAgIEEgZnVuY3Rpb24gdGhhdCBwcm92aWRlcyBhIGZvcm0gZm9yIGVkaXRpbmcgYSBkZWZhdWx0IHRlbXBsYXRlCiAgIGFuZC9vciByZXR1cm5pbmcgaXQgdG8gc3lzdGVtIGRlZmF1bHRzLgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldERlZmF1bHRUZW1wbGF0ZUZvcm0oJiRtb2R1bGUsJGlkLCRyZXR1cm5pZCwkcHJlZm5hbWUsCgkJCQkgICRhY3RpdmVfdGFiLCR0aXRsZSwkZmlsZW5hbWUsCgkJCQkgICRpbmZvKQogIHsKICAgICRjZ2V4dGVuc2lvbnMgPSYgJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdDR0V4dGVuc2lvbnMnKTsKICAgICRzbWFydHkgPSYgJHRoaXMtPnNtYXJ0eTsKICAgICRzbWFydHktPmFzc2lnbignZGVmYXVsdHRlbXBsYXRlZm9ybV90aXRsZScsJHRpdGxlKTsKICAgICRzbWFydHktPmFzc2lnbignaW5mb190aXRsZScsJGluZm8pOwogICAgJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLAkKCSAgICAkY2dleHRlbnNpb25zLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdzZXRkZWZhdWx0dGVtcGxhdGUnLCRyZXR1cm5pZCwncG9zdCcsJycsZmFsc2UsJycsCgkJCQkJICAgYXJyYXkoJ3ByZWZuYW1lJz0+JHByZWZuYW1lLAoJCQkJCQkgJ2Rlc3Rtb2R1bGUnPT4kbW9kdWxlLT5HZXROYW1lKCksCgkJCQkJCSAnY2dfYWN0aXZldGFiJz0+JGFjdGl2ZV90YWIsCgkJCQkJCSAnZmlsZW5hbWUnPT4kZmlsZW5hbWUpKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3Byb21wdF90ZW1wbGF0ZScsJGNnZXh0ZW5zaW9ucy0+TGFuZygndGVtcGxhdGUnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X3RlbXBsYXRlJywkY2dleHRlbnNpb25zLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwkaWQsCgkJCQkJCQkgICAkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCRwcmVmbmFtZSksCgkJCQkJCQkgICAnaW5wdXRfdGVtcGxhdGUnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJGNnZXh0ZW5zaW9ucy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdzdWJtaXQnLCRjZ2V4dGVuc2lvbnMtPkxhbmcoJ3N1Ym1pdCcpKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3Jlc2V0JywkY2dleHRlbnNpb25zLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3Jlc2V0dG9kZWZhdWx0JywKCQkJCQkJICAgICAkY2dleHRlbnNpb25zLT5MYW5nKCdyZXNldHRvZmFjdG9yeScpKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLAoJCSAgICAkY2dleHRlbnNpb25zLT5DcmVhdGVGb3JtRW5kKCkpOwogICAgcmV0dXJuICRjZ2V4dGVuc2lvbnMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdGRlZmF1bHR0ZW1wbGF0ZS50cGwnKTsKICB9CgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEVkaXREZWZhdWx0VGVtcGxhdGVGb3JtCiAgIE5PVCBQQVJUIE9GIFRIRSBNT0RVTEUgQVBJCgogICBBIGZ1bmN0aW9uIHRoYXQgcHJvdmlkZXMgYSBmb3JtIGZvciBlZGl0aW5nIGEgZGVmYXVsdCB0ZW1wbGF0ZQogICBhbmQvb3IgcmV0dXJuaW5nIGl0IHRvIHN5c3RlbSBkZWZhdWx0cy4KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBFZGl0RGVmYXVsdFRlbXBsYXRlRm9ybSgmJG1vZHVsZSwkaWQsJHJldHVybmlkLCRwcmVmbmFtZSwkYWN0aXZlX3RhYiwkdGl0bGUsCgkJCQkgICAkZmlsZW5hbWUsJGluZm8pCiAgewogICAgJGNnZXh0ZW5zaW9ucyA9JiAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NHRXh0ZW5zaW9ucycpOwogICAgZWNobyAkY2dleHRlbnNpb25zLT5HZXREZWZhdWx0VGVtcGxhdGVGb3JtKCRtb2R1bGUsJGlkLCRyZXR1cm5pZCwKCQkJCQkgICAgICAgJHByZWZuYW1lLCRhY3RpdmVfdGFiLAoJCQkJCSAgICAgICAkdGl0bGUsJGZpbGVuYW1lLCRpbmZvKTsKICB9CgoKICBmdW5jdGlvbiAmQXJyYXlUb09iamVjdCgkYXJyYXkpCiAgewogICAgJG9iaiA9IG5ldyBTdGRDbGFzcygpOwogICAgZm9yZWFjaCggJGFycmF5IGFzICRrZXkgPT4gJHZhbHVlICkKICAgICAgewoJJG9iai0+JGtleSA9ICR2YWx1ZTsKICAgICAgfQogICAgcmV0dXJuICRvYmo7CiAgfQoKICAvKgogICAqIEEgY29udmVuaWVuY2UgZnVuY3Rpb24gdG8gY3JlYXRlIGEgdXJsIHRvIGEgY2VydGFpbiBDTVMgcGFnZQogICAqLwogIGZ1bmN0aW9uIENyZWF0ZUNvbnRlbnRVUkwoJHBhZ2VpZCkKICB7CglnbG9iYWwgJGdDbXM7CgkkY29uZmlnID0mICRnQ21zLT5HZXRDb25maWcoKTsKCgkkY29udGVudG9wcyA9JiAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKCSRhbGlhcyA9ICRjb250ZW50b3BzLT5HZXRQYWdlQWxpYXNGcm9tSUQoICRwYWdlaWQgKTsKCgkkdGV4dCA9ICcnOwogICAgICAgIGlmICgkY29uZmlnWyJhc3N1bWVfbW9kX3Jld3JpdGUiXSkKCXsKCQkjIG1vZF9yZXdyaXRlCgkJaWYoICRhbGlhcyA9PSBmYWxzZSApCgkJewoJCQlyZXR1cm4gJzwhLS0gRVJST1I6IGNvdWxkIG5vdCBnZXQgYW4gYWxpYXMgZm9yIHBhZ2VpZD0nLiRwYWdlaWQuJy0tPic7CgkJfQoJCWVsc2UKCQl7CgkJCSR0ZXh0IC49ICRjb25maWdbInJvb3RfdXJsIl0uIi8iLiRhbGlhcy4KCQkJKGlzc2V0KCRjb25maWdbJ3BhZ2VfZXh0ZW5zaW9uJ10pPyRjb25maWdbJ3BhZ2VfZXh0ZW5zaW9uJ106Jy5zaHRtbCcpOwoJCX0KCX0KCWVsc2UKCXsKCQkjIG1vZCByZXdyaXRlCgkJJHRleHQgLj0gJGNvbmZpZ1sicm9vdF91cmwiXS4iL2luZGV4LnBocD8iLiRjb25maWdbInF1ZXJ5X3ZhciJdLiI9Ii4kcGFnZWlkOwoJCXJldHVybiAkdGV4dDsKCX0KICB9CgoKICBmdW5jdGlvbiBHZXRNaW1lVHlwZSgkZmlsZW5hbWUpCiAgewogICAgJG1pbWVfdHlwZSA9ICd1bmtub3duJzsKICAgIGlmKCBmdW5jdGlvbl9leGlzdHMoJ2ZpbmZvX29wZW4nKSApCiAgICAgIHsKCSRmaCA9IGZpbmZvX29wZW4oRklMRUlORk9fQ09NUFJFU1MpOwoJJG1pbWVfdHlwZSA9IGZpbmZvX2ZpbGUoJGZoLCRmaWxlbmFtZSk7CiAgICAgIH0KICAgIGVsc2UgaWYoIGZ1bmN0aW9uX2V4aXN0cygnbWltZV9jb250ZW50X3R5cGUnKSApCiAgICAgIHsKCSRtaW1lX3R5cGUgPSBtaW1lX2NvbnRlbnRfdHlwZSgkZmlsZW5hbWUpOwogICAgICB9CgogICAgcmV0dXJuICRtaW1lX3R5cGU7CiAgfQoKCiAgZnVuY3Rpb24gU2VuZERhdGFBbmRFeGl0KCRkYXRhLCRjb250ZW50X3R5cGUgPSAndGV4dC9wbGFpbicsJGZpbGVuYW1lID0gJ3JlcG9ydC50eHQnKQogIHsKICAgICRoYW5kbGVycyA9IG9iX2xpc3RfaGFuZGxlcnMoKTsgCiAgICBmb3IgKCRjbnQgPSAwOyAkY250IDwgc2l6ZW9mKCRoYW5kbGVycyk7ICRjbnQrKykgeyBvYl9lbmRfY2xlYW4oKTsgfQoKICAgIGhlYWRlcignUHJhZ21hOiBwdWJsaWMnKTsKICAgIGhlYWRlcignRXhwaXJlczogMCcpOwogICAgaGVhZGVyKCdDYWNoZS1Db250cm9sOiBtdXN0LXJldmFsaWRhdGUsIHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAnKTsKICAgIGhlYWRlcignQ2FjaGUtQ29udHJvbDogcHJpdmF0ZScsZmFsc2UpOwogICAgaGVhZGVyKCdDb250ZW50LURlc2NyaXB0aW9uOiBGaWxlIFRyYW5zZmVyJyk7CiAgICBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogJy4kY29udGVudF90eXBlKTsKICAgIGhlYWRlcigiQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9XCIkZmlsZW5hbWVcIiIgKTsKICAgIGhlYWRlcignQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmluYXJ5Jyk7CiAgICBoZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoOiAnIC4gY291bnQoJGRhdGEpKTsKCiAgICAvLyBzZW5kIHRoZSBkYXRhCiAgICBwcmludCgkZGF0YSk7CgogICAgLy8gZG9uJ3QgYWxsb3cgYW55IGZ1cnRoZXIgcHJvY2Vzc2luZy4KICAgIGV4aXQoKTsKICB9CgoKICBmdW5jdGlvbiBTZW5kRmlsZUFuZEV4aXQoJGZpbGUpCiAgewogICAgaWYoICFmaWxlX2V4aXN0cygkZmlsZSkgKQogICAgICB7CglyZXR1cm4gZmFsc2U7CiAgICAgIH0KCiAgICAkbWltZV90eXBlID0gJHRoaXMtPkdldE1pbWVUeXBlKCRmaWxlKTsKICAgIGlmKCAkbWltZV90eXBlID09ICd1bmtub3duJyApCiAgICAgIHsKCSRtaW1lX3R5cGUgPSAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJzsKICAgICAgfQoKICAgICRibiA9IGJhc2VuYW1lKCRmaWxlKTsKICAgICRoYW5kbGVycyA9IG9iX2xpc3RfaGFuZGxlcnMoKTsgCiAgICBmb3IgKCRjbnQgPSAwOyAkY250IDwgc2l6ZW9mKCRoYW5kbGVycyk7ICRjbnQrKykgeyBvYl9lbmRfY2xlYW4oKTsgfQoKICAgIGhlYWRlcignUHJhZ21hOiBwdWJsaWMnKTsKICAgIGhlYWRlcignRXhwaXJlczogMCcpOwogICAgaGVhZGVyKCdDYWNoZS1Db250cm9sOiBtdXN0LXJldmFsaWRhdGUsIHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAnKTsKICAgIGhlYWRlcignQ2FjaGUtQ29udHJvbDogcHJpdmF0ZScsZmFsc2UpOwogICAgaGVhZGVyKCdDb250ZW50LURlc2NyaXB0aW9uOiBGaWxlIFRyYW5zZmVyJyk7CiAgICBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogJy4kbWltZV90eXBlKTsKICAgIGhlYWRlcigiQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9XCIkYm5cIiIgKTsKICAgIGhlYWRlcignQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmluYXJ5Jyk7CiAgICBoZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoOiAnIC4gZmlsZXNpemUoJGZpbGUpKTsKCiAgICAkaGFuZGxlPWZvcGVuKCRmaWxlLCdyYicpOwogICAgJGNvbnRlbnRzID0gJyc7CiAgICBkbyB7CiAgICAgICRkYXRhID0gZnJlYWQoJGhhbmRsZSwkY2h1bmtzaXplKTsKICAgICAgaWYoIHN0cmxlbigkZGF0YSkgPT0gMCApIGJyZWFrOwogICAgICBwcmludCgkZGF0YSk7IAogICAgfSB3aGlsZSh0cnVlKTsKICAgIGZjbG9zZSgkaGFuZGxlKTsKICAgIAogICAgLy8gZG9uJ3QgYWxsb3cgYW55IG1vcmUgcHJvY2Vzc2luZwogICAgZXhpdCgpOwogIH0KCgogIGZ1bmN0aW9uIEdldEFkbWluVXNlcm5hbWUoJHVpZCkKICB7CiAgICAkdXNlciA9IFVzZXJPcGVyYXRpb25zOjpMb2FkVXNlckJ5SUQoJHVpZCk7CiAgICByZXR1cm4gJHVzZXItPnVzZXJuYW1lOwogIH0KCiAgZnVuY3Rpb24gQ3JlYXRlVXNlck11bHRpc2VsZWN0KCRpZCwgJHNlbGVjdGVkID0gJycsICRuYW1lPSdvd25lcmlkJywgCgkJCQkgJGdyb3VwcyA9IHRydWUsICRzaXplPTUpCiAgewogICAgZ2xvYmFsICRnQ21zOwogICAgJHJlc3VsdCA9ICcnOwogICAgCiAgICAkcmVzdWx0IC49ICc8c2VsZWN0IG11bHRpcGxlIHNpemU9IicuJHNpemUuJyIgbmFtZT0iJy4kaWQuJG5hbWUuJ1tdIj4nOwogICAgaWYoICRncm91cHMgKQogICAgICB7CgkkZ3JvdXBvcHMgPSYgJGdDbXMtPkdldEdyb3VwT3BlcmF0aW9ucygpOwoJJGFsbGdyb3VwcyA9ICRncm91cG9wcy0+TG9hZEdyb3VwcygpOwoJZm9yZWFjaCggJGFsbGdyb3VwcyBhcyAkb25lZ3JvdXAgKQoJICB7CgkgICAgJHJlc3VsdCAuPSAnPG9wdGlvbiB2YWx1ZT0iLScuJG9uZWdyb3VwLT5pZC4nIic7CgkgICAgaWYoIGlzX2FycmF5KCRzZWxlY3RlZCkgJiYgaW5fYXJyYXkoJG9uZWdyb3VwLT5pZCAqIC0xLCAkc2VsZWN0ZWQpICkKCSAgICAgIHsKCQkkcmVzdWx0IC49ICcgc2VsZWN0ZWQ9InNlbGVjdGVkIic7CgkgICAgICB9CgkgICAgZWxzZSBpZiggKCRvbmVncm91cC0+aWQgKiAtMSkgPT0gJHNlbGVjdGVkICkKCSAgICAgIHsKCQkkcmVzdWx0IC49ICcgc2VsZWN0ZWQ9InNlbGVjdGVkIic7CgkgICAgICB9CgkgICAgJHJlc3VsdCAuPSAnPicubGFuZygnZ3JvdXAnKS4nOiAnLiRvbmVncm91cC0+bmFtZS4nPC9vcHRpb24+JzsKCSAgfQogICAgICB9CgogICAgJGFsbHVzZXJzID0gVXNlck9wZXJhdGlvbnM6OkxvYWRVc2VycygpOwogICAgaWYgKGNvdW50KCRhbGx1c2VycykgPiAwKQogICAgICB7Cglmb3JlYWNoICgkYWxsdXNlcnMgYXMgJG9uZXVzZXIpCgkgIHsKCSAgICAkcmVzdWx0IC49ICc8b3B0aW9uIHZhbHVlPSInLiRvbmV1c2VyLT5pZC4nIic7CgkgICAgaWYoIGlzX2FycmF5KCRzZWxlY3RlZCkgJiYgaW5fYXJyYXkoJG9uZXVzZXItPmlkLCAkc2VsZWN0ZWQpICkKCSAgICAgIHsKCQkkcmVzdWx0IC49ICcgc2VsZWN0ZWQ9InNlbGVjdGVkIic7CgkgICAgICB9CgkgICAgZWxzZSBpZiggJG9uZXVzZXItPmlkID09ICRzZWxlY3RlZCApCgkgICAgICB7CgkJJHJlc3VsdCAuPSAnIHNlbGVjdGVkPSJzZWxlY3RlZCInOwoJICAgICAgfQoJICAgICRyZXN1bHQgLj0gJz4nLiRvbmV1c2VyLT51c2VybmFtZS4nPC9vcHRpb24+JzsKCSAgfQogICAgICB9CiAgICAkcmVzdWx0IC49ICc8L3NlbGVjdD4nOwogICAgCiAgICByZXR1cm4gJHJlc3VsdDsKICB9CgogIAogIGZ1bmN0aW9uIEV4cGFuZFNlbGVjdGVkVXNlcnMoJHVzZXJpZGxpc3QpCiAgewogICAgZ2xvYmFsICRnQ21zOwogICAgJHVzZXJvcHMgPSYgJGdDbXMtPkdldFVzZXJPcGVyYXRpb25zKCk7CgogICAgJHVzZXJzID0gYXJyYXkoKTsKICAgIGZvcmVhY2goICR1c2VyaWRsaXN0IGFzICRvbmV1aWQgKQogICAgICB7CglpZiggJG9uZXVpZCA8IDAgKQoJICB7CgkgICAgLy8gYXNzdW1lIGl0cyBhIGdyb3VwIGlkCgkgICAgLy8gYW5kIGdldCBhbGwgdGhlIHVpZHMgZm9yIHRoYXQgZ3JvdXAKCSAgICAkZ3JvdXB1c2VycyA9ICR1c2Vyb3BzLT5Mb2FkVXNlcnNJbkdyb3VwKCRvbmV1aWQgKiAtMSk7CgkgICAgZm9yZWFjaCggJGdyb3VwdXNlcnMgYXMgJG9uZXVzZXIgKQoJICAgICAgewoJCSR1c2Vyc1tdID0gJG9uZXVzZXItPmlkOwoJICAgICAgfQoJICB9CgllbHNlCgkgIHsKCSAgICAkdXNlcnNbXSA9ICRvbmV1aWQ7CgkgIH0KICAgICAgfQoKICAgICR1c2VycyA9IGFycmF5X3VuaXF1ZSgkdXNlcnMpOwogICAgcmV0dXJuICR1c2VyczsKICB9CgogIGZ1bmN0aW9uIEdldFVwbG9hZEVycm9yTWVzc2FnZSgkY29kZSkKICB7CiAgICAkY2dleHRlbnNpb25zID0mICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnQ0dFeHRlbnNpb25zJyk7CiAgICByZXR1cm4gJGNnZXh0ZW5zaW9ucy0+TGFuZygkY29kZSk7CiAgfQoKICBmdW5jdGlvbiBpc19hbGlhcygkc3RyKQogIHsKICAgIGlmKCAhcHJlZ19tYXRjaCgnL15bXC1cX1x3XSskLycsICRzdHIpICkKICAgICAgcmV0dXJuIGZhbHNlOwogICAgcmV0dXJuIHRydWU7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgbWtkaXJyKCAkcGF0aG5hbWUsICRtb2RlICkKICAgTk9UIFBBUlQgT0YgVEhFIE1PRFVMRSBBUEkKCiAgIE1ha2UgYSBkaXJlY3RvcnkgcmVjdXJzaXZlbHkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBta2RpcnIgKCRwYXRobmFtZSwgJG1vZGUgPSAwNzc3KQogIHsKICAgIC8vIENoZWNrIGlmIGRpcmVjdG9yeSBhbHJlYWR5IGV4aXN0cwogICAgaWYgKGlzX2RpciAoJHBhdGhuYW1lKSB8fCBlbXB0eSAoJHBhdGhuYW1lKSkKICAgICAgewoJcmV0dXJuIHRydWU7CiAgICAgIH0KCiAgICAvLyBFbnN1cmUgYSBmaWxlIGRvZXMgbm90IGFscmVhZHkgZXhpc3Qgd2l0aCB0aGUgc2FtZSBuYW1lCiAgICBpZiAoaXNfZmlsZSAoJHBhdGhuYW1lKSkKICAgICAgewoJLy8gUkM6IE1vZGlmaWNhdGlvbiBzdWNoIHRoYXQgdGhpcyBpc24ndCBhbiBlcnJvcgoJcmV0dXJuIHRydWU7CiAgICAgIH0KCiAgICAvLyBDcmF3bCB1cCB0aGUgZGlyZWN0b3J5IHRyZWUKICAgICRuZXh0X3BhdGhuYW1lID0KICAgICAgc3Vic3RyICgkcGF0aG5hbWUsIDAsIHN0cnJwb3MgKCRwYXRobmFtZSwgRElSRUNUT1JZX1NFUEFSQVRPUikpOwogICAgaWYgKCR0aGlzLT5ta2RpcnIgKCRuZXh0X3BhdGhuYW1lLCAkbW9kZSkpCiAgICAgIHsKCWlmICghZmlsZV9leGlzdHMgKCRwYXRobmFtZSkpCgkgIHsKCSAgICByZXR1cm4gbWtkaXIgKCRwYXRobmFtZSwgJG1vZGUpOwoJICB9CiAgICAgIH0KCiAgICByZXR1cm4gZmFsc2U7CiAgfQoKCiAgZnVuY3Rpb24gc2V0X2FjdGlvbl9pZCgkaWQpCiAgewogICAgJHRoaXMtPl9hY3Rpb25pZCA9ICRpZDsKICB9CgogIGZ1bmN0aW9uIGdldF9hY3Rpb25faWQoKQogIHsKICAgIHJldHVybiAkdGhpcy0+X2FjdGlvbmlkOwogIH0KCiAgZnVuY3Rpb24gR2V0QWN0aW9uSWQoKQogIHsKICAgIGlmKCAhbWV0aG9kX2V4aXN0cygkdGhpcywnZ2V0X2FjdGlvbl9pZCcpICYmICR0aGlzLT5HZXROYW1lKCkgIT0gJ0NHRXh0ZW5zaW9ucycgKQogICAgICB7CglkaWUoJ0ZBVEFMIEVSUk9SOiBBIG1vZHVsZSBkZXJpdmVkIGZyb20gQ0dFeHRlbnNpb25zIGlzIG5vdCBoYW5kbGluZyB0aGUgZ2V0X2FjdGlvbl9pZCBtZXRob2QnKTsKICAgICAgfQogICAgcmV0dXJuICR0aGlzLT5nZXRfYWN0aW9uX2lkKCk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0U2luZ2xlVGVtcGxhdGVGb3JtCiAgIE5PVCBQQVJUIE9GIFRIRSBNT0RVTEUgQVBJCgogICBBIGZ1bmN0aW9uIHRoYXQgcHJvdmlkZXMgYSBmb3JtIGZvciBlZGl0aW5nIGEgc2luZ2xlIHRlbXBsYXRlCiAgIGFuZC9vciByZXR1cm5pbmcgaXQgdG8gc3lzdGVtIGRlZmF1bHRzLgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldFNpbmdsZVRlbXBsYXRlRm9ybSgmJG1vZHVsZSwkaWQsJHJldHVybmlkLCR0bXBsbmFtZSwKCQkJCSAgJGFjdGl2ZV90YWIsJHRpdGxlLCRmaWxlbmFtZSwKCQkJCSAgJGluZm8gPSAnJykKICB7CiAgICAkY2dleHRlbnNpb25zID0mICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnQ0dFeHRlbnNpb25zJyk7CiAgICAkc21hcnR5ID0mICR0aGlzLT5zbWFydHk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2RlZmF1bHR0ZW1wbGF0ZWZvcm1fdGl0bGUnLCR0aXRsZSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2luZm9fdGl0bGUnLCRpbmZvKTsKICAgICRzbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywJCgkgICAgJGNnZXh0ZW5zaW9ucy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwnc2V0ZGVmYXVsdHRlbXBsYXRlJywkcmV0dXJuaWQsJ3Bvc3QnLCcnLGZhbHNlLCcnLAoJCQkJCSAgIGFycmF5KCdwcmVmbmFtZSc9PiR0bXBsbmFtZSwKCQkJCQkJICd1c2V0ZW1wbGF0ZSc9PicxJywKCQkJCQkJICdkZXN0bW9kdWxlJz0+JG1vZHVsZS0+R2V0TmFtZSgpLAoJCQkJCQkgJ2NnX2FjdGl2ZXRhYic9PiRhY3RpdmVfdGFiLAoJCQkJCQkgJ2ZpbGVuYW1lJz0+JGZpbGVuYW1lKSkpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfdGVtcGxhdGUnLCRjZ2V4dGVuc2lvbnMtPkxhbmcoJ3RlbXBsYXRlJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF90ZW1wbGF0ZScsJGNnZXh0ZW5zaW9ucy0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsJGlkLAoJCQkJCQkJICAgJG1vZHVsZS0+R2V0VGVtcGxhdGUoJHRtcGxuYW1lKSwKCQkJCQkJCSAgICdpbnB1dF90ZW1wbGF0ZScpKTsKICAgICRzbWFydHktPmFzc2lnbignc3VibWl0JywkY2dleHRlbnNpb25zLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdCcsJGNnZXh0ZW5zaW9ucy0+TGFuZygnc3VibWl0JykpKTsKICAgICRzbWFydHktPmFzc2lnbigncmVzZXQnLCRjZ2V4dGVuc2lvbnMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwncmVzZXR0b2RlZmF1bHQnLAoJCQkJCQkgICAgICRjZ2V4dGVuc2lvbnMtPkxhbmcoJ3Jlc2V0dG9mYWN0b3J5JykpKTsKICAgICRzbWFydHktPmFzc2lnbignZW5kZm9ybScsCgkJICAgICRjZ2V4dGVuc2lvbnMtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICByZXR1cm4gJGNnZXh0ZW5zaW9ucy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0ZGVmYXVsdHRlbXBsYXRlLnRwbCcpOwogIH0KCgoKfSAvLyBjbGFzcwoKICB9IC8vIGlmCgovLyBFT0YKPz4K]]></data>
	</file>
	<file>
	  <filename>/class.cgextensions.tools.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIGNnZXh0ZW5zaW9uc190b29scwp7CiAgdmFyICRfbW9kdWxlOwoKICBmdW5jdGlvbiBjZ2V4dGVuc2lvbnNfdG9vbHMoJiRtb2QpCiAgewogICAgJHRoaXMtPl9tb2R1bGUgPSYgJG1vZDsKICB9CgogIGZ1bmN0aW9uIGFycmF5X2luc2VydF91bmlxdWUoJiRhcnIsICRzdHIpCiAgewogICAgaWYoICFpbl9hcnJheSgkc3RyLCRhcnIpICkKICAgICAgewoJJGFycltdID0gJHN0cjsKICAgICAgfQogIH0KCgogIC8qKioKICAgKiBBIG1ldGhvZCB0byB0ZXN0IGlmIGFuIGFycmF5IGVsZW1lbnQgZXhpc3RzIGJ5IHRlc3RpbmcKICAgKiBhIHN1YnNldCBvZiBpdCdzIGtleQogICAqCiAgICogQHBhcmFtIGFycmF5ICBUaGUgYXJyYXkgdG8gdGVzdAogICAqIEBwYXJhbSBzdHJpbmcgVGhlIHN1YnN0cmluZyBleHByZXNzaW9uIHRvIHRlc3QgZm9yCiAgICovCiAgZnVuY3Rpb24gYXJyYXlfa2V5X2V4aXN0c19zdWJzdHIoICRhcnIsICRleHByICkKICB7CiAgICAka2V5cyA9IGFycmF5X2tleXMoICRhcnIgKTsKICAgIGZvcmVhY2goICRrZXlzIGFzICRrICkKICAgICAgewoJaWYoIHN0cnN0ciggJGssICRleHByICkgKSByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgcmV0dXJuIGZhbHNlOwogIH0KCgogIC8qKgogICAqIFRlc3QgaWYgYW4gYXJyYXkga2V5IGV4aXN0cywgZ2l2ZW4gYSByZWd1bGFyIGV4cHJlc3Npb24KICAgKgogICAqIEBwYXJhbSBhcnJheSAgVGhlIGFycmF5IHRvIHNlYXJjaAogICAqIEBwYXJhbSBzdHJpbmcgVGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byB1c2UgaW4gdGhlIHNlYXJjaAogICAqLwogIGZ1bmN0aW9uIGFycmF5X2ZpbmRfa2V5X3JlZ2V4cCggJGFyciwgJGV4cHIgKQogIHsKICAgICRrZXlzID0gYXJyYXlfa2V5cyggJGFyciApOwogICAgZm9yZWFjaCggJGtleXMgYXMgJGsgKQogICAgICB7CglpZiggcHJlZ19tYXRjaCggJGV4cHIsICRrICkgKSByZXR1cm4gJGs7CiAgICAgIH0KICAgIHJldHVybiBmYWxzZTsKICB9CgoKICAvKioKICAgKiBNZXJnZSB0d28gYXJyYXlzIG9mIGhhc2hlcyBiYXNlZCBvbiBjZXJ0YWluIGtleXMKICAgKgogICAqIEBwYXJhbSBhcnJheSBhcnJheTEgIFRoZSBwcmltYXJ5IGFycmF5CiAgICogQHBhcmFtIGFycmF5IGFycmF5MiAgVGhlIGFycmF5IHRvIGJlIG1lcmdlZAogICAqIEBwYXJhbSBzdHJpbmcga2V5MSAgIFRoZSBrZXkgZmllbGQgaW4gdGhlIGZpcnN0IGFycmF5CiAgICogQHBhcmFtIHN0cmluZyBrZXkyICAgVGhlIGtleSBmaWVsZCBpbiB0aGUgc2Vjb25kIGFycmF5CiAgICovCiAgZnVuY3Rpb24gYXJyYXlfbWVyZ2VfYnlfa2V5cyggJGFycjEsICRhcnIyLCAka2V5MSA9ICduYW1lJywgJGtleTIgPSAnbmFtZScgKQogIHsKICAgIGlmKCAhaXNfYXJyYXkoICRhcnIxICkgfHwgIWlzX2FycmF5KCAkYXJyMiApICkKICAgICAgewoJcmV0dXJuOwogICAgICB9CgogICAgJHh4cmVzdWx0ID0gYXJyYXkoKTsKICAgIGZvcmVhY2goICRhcnIxIGFzICRhMSApCiAgICAgIHsKCSRrZXkxdmFsID0gJGExWyRrZXkxXTsKCSRmb3VuZCA9IGZhbHNlOwoJZm9yZWFjaCggJGFycjIgYXMgJGEyICkKCSAgewoJICAgIGlmKCAkYTJbJGtleTJdID09ICRrZXkxdmFsICkKCSAgICAgIHsKCQkvLyBmb3VuZCBhbiBpdGVtIHRvIG1lcmdlCgkJJHh4cmVzdWx0W10gPSBhcnJheV9tZXJnZSgkYTEsJGEyKTsKCQkkZm91bmQgPSB0cnVlOwoJCWJyZWFrOwoJICAgICAgfQoJICB9CgoJaWYoICEkZm91bmQgKQoJICB7CgkgICAgJHh4cmVzdWx0W10gPSAkYTE7CgkgIH0KICAgICAgfQoKICAgIHJldHVybiAkeHhyZXN1bHQ7CiAgfQoKCiAgLyoKICAgKiByZS1hcnJhbmdlIGFuIGFycmF5IG9mIGFycmF5cyBpbnRvIGEgaGFzaCBvZiBhcnJheXMKICAgKi8KICBmdW5jdGlvbiBhcnJheV90b19oYXNoKCRpbnB1dCwka2V5KQogIHsKICAgICR0bXAgPSBhcnJheSgpOwogICAgZm9yZWFjaCggJGlucHV0IGFzICRvbmUgKQogICAgICB7CglpZiggIWlzc2V0KCRvbmVbJGtleV0pICkgY29udGludWU7CgkkdG1wWyRvbmVbJGtleV1dID0gJG9uZTsKICAgICAgfQogICAgcmV0dXJuICR0bXA7CiAgfQoKCiAgLyoKICAgKiBFeHRyYWN0IG9uZSBmaWVsZCBmcm9tIGFuIGFycmF5IG9mIGhhc2hlcyBpbnRvIGEgZmxhdCBhcnJheQogICAqLwogIGZ1bmN0aW9uIGFycmF5X2V4dHJhY3RfZmllbGQoJGlucHV0LCRrZXkpCiAgewogICAgJHRtcCA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCAkaW5wdXQgYXMgJG9uZSApCiAgICAgIHsKCWlmKCAhaXNzZXQoJG9uZVska2V5XSkgKSBjb250aW51ZTsKCSR0bXBbXSA9ICRvbmVbJGtleV07CiAgICAgIH0KICAgIHJldHVybiAkdG1wOwogIH0KCgogIC8qCiAgICogQ29tcGFyZSB0d28gaGFzaGVzIGJ5IHRoZSBrZXkgJ3NvcnRfa2V5JwogICAqLwogIGZ1bmN0aW9uIGNvbXBhcmVfZWxlbWVudHNfYnlfc29ydG9yZGVyX2tleSggJGUxLCAkZTIgKQogIHsKICAgIGlmKCAkZTFbJ3NvcnRfa2V5J10gPCAkZTJbJ3NvcnRfa2V5J10gKQogICAgICB7CglyZXR1cm4gLTE7CiAgICAgIH0KICAgIGVsc2UgaWYoICRlMVsnc29ydF9rZXknXSA+ICRlMlsnc29ydF9rZXknXSApCiAgICAgIHsKCXJldHVybiAxOwogICAgICB9CiAgICByZXR1cm4gMDsKICB9CgoKICAvKgogICAqIEV4cGxvZGUgYW4gYXJyYXkgaW50byBhIGhhc2gKICAgKi8KICBmdW5jdGlvbiBleHBsb2RlX3dpdGhfa2V5KCRzdHIsICRpbmdsdWU9Jz0nLCAkb3V0Z2x1ZT0nJicpCiAgewogICAgJHJldCA9IGFycmF5KCk7CiAgICAkYTEgPSBzcGxpdCgkb3V0Z2x1ZSwkc3RyKTsKICAgIGZvcmVhY2goICRhMSBhcyAkYTIgKQogICAgICB7CglsaXN0KCAkaywgJHYgKSA9IHNwbGl0KCAkaW5nbHVlLCAkYTIgKTsKCSRyZXRbICRrIF0gPSAkdjsKICAgICAgfQogICAgcmV0dXJuICRyZXQ7CiAgfQoKCiAgLyoKICAgKiBGaW5kIHRoZSBpbmRleCB0aGF0IHN0b3JlcyBhIHZhbHVlIGluIGFuIGFycmF5CiAgICovCiAgZnVuY3Rpb24gZmluZF9pbmRleF9vZl92YWx1ZSggJGRhdGEsICR2YWx1ZSwgJGRmbHQgKQogIHsKICAgICRpID0gMDsKICAgIGZvcmVhY2goICRkYXRhIGFzICRrPT4kdiApCiAgICAgIHsKCWlmKCAkdiA9PSAkdmFsdWUgKQoJICB7CgkgICAgcmV0dXJuICRpOwoJICB9CgkkaSsrOwogICAgICB9CiAgICByZXR1cm4gJGRmbHQ7CiAgfQoKCiAgLyoKICAgKiBzZWFyY2ggYW4gYXJyYXkgb2YgaGFzaGVzIGZvciBhIHBhcnRpY3VsYXIga2V5IHZhbHVlCiAgICovCiAgZnVuY3Rpb24gbmVzdGVkX2FycmF5X3NlYXJjaF9ieV9rZXkoICYkaW5wdXQsICRrZXksICR2YWx1ZSApCiAgewogICAgZm9yZWFjaCggJGlucHV0IGFzICRvbmVlbGVtICkKICAgICAgewoJaWYoIGlzc2V0KCRvbmVlbGVtWyRrZXldKSApCgkgIHsKCSAgICBpZiggJG9uZWVsZW1bJGtleV0gPT0gJHZhdWUgKQoJICAgICAgewoJCXJldHVybiB0cnVlOwoJICAgICAgfQoJICB9CiAgICAgIH0KICAgIHJldHVybiBmYWxzZTsKICB9CgoKICAvKgogICAqIEltcGxvZGUgYSBoYXNoIGludG8gYW4gYXJyYXkKICAgKi8KICBmdW5jdGlvbiBpbXBsb2RlX3dpdGhfa2V5KCRhc3NvYywgJGluZ2x1ZSA9ICc9JywgJG91dGdsdWUgPSAnJicpCiAgewogICAgJHJldHVybiA9IG51bGw7CiAgICBmb3JlYWNoICgkYXNzb2MgYXMgJHRrID0+ICR0dikgJHJldHVybiAuPSAkb3V0Z2x1ZS4kdGsuJGluZ2x1ZS4kdHY7CiAgICByZXR1cm4gc3Vic3RyKCRyZXR1cm4sc3RybGVuKCRvdXRnbHVlKSk7CiAgfQoKCiAgLyoKICAgKiBDcmVhdGUgYSB5ZXMvbm8gZHJvcGRvd24KICAgKi8KICBmdW5jdGlvbiBDcmVhdGVJbnB1dFllc05vRHJvcGRvd24oJGlkLCRuYW1lLCRzZWxlY3RlZHZhbHVlPScnLCRhZGR0ZXh0PScnKQogIHsKICAgICRjZ2V4dGVuc2lvbnMgPSYgJHRoaXMtPl9tb2R1bGUtPkdldE1vZHVsZUluc3RhbmNlKCdDR0V4dGVuc2lvbnMnKTsKICAgICRpdGVtcyA9IGFycmF5KCRjZ2V4dGVuc2lvbnMtPkxhbmcoJ3llcycpPT4xLAoJCSAgICRjZ2V4dGVuc2lvbnMtPkxhbmcoJ25vJyk9PjApOwogICAgcmV0dXJuICR0aGlzLT5fbW9kdWxlLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwkbmFtZSwkaXRlbXMsLTEsJHNlbGVjdGVkdmFsdWUsJGFkZHRleHQpOwogIH0KCgogIGZ1bmN0aW9uIENHQ3JlYXRlSW5wdXRTdWJtaXQoJGlkLCRuYW1lLCR2YWx1ZT0nJywkYWRkdGV4dD0nJywkaW1hZ2U9JycsCgkJCSAgICAgJGNvbmZpcm10ZXh0PScnLCRjbGFzcz0nJykKICB7CiAgICAkcmVhbF9pbWFnZSA9ICcnOwogICAgaWYoICFlbXB0eSgkaW1hZ2UpICkKICAgICAgewoJZ2xvYmFsICRnQ21zOwoJJGNvbmZpZyA9JiAkZ0Ntcy0+R2V0Q29uZmlnKCk7CgoJLy8gY2hlY2sgaW1hZ2VfZGlyZWN0b3JpZXMgZmlyc3QKCWlmKCBpc3NldCgkdGhpcy0+X21vZHVsZS0+X2ltYWdlX2RpcmVjdG9yaWVzKSAmJiAKCSAgICAhZW1wdHkoJHRoaXMtPl9tb2R1bGUtPl9pbWFnZV9kaXJlY3RvcmllcykpCgkgIHsKCSAgICBmb3JlYWNoKCAkdGhpcy0+X21vZHVsZS0+X2ltYWdlX2RpcmVjdG9yaWVzIGFzICRkaXIgKQoJICAgICAgewoJCSR1cmwgPSBjbXNfam9pbl9wYXRoKCRkaXIsJGltYWdlKTsKCQkkcGF0aCA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sncm9vdF9wYXRoJ10sJHVybCk7CgoJCWlmKCBpc19yZWFkYWJsZSgkcGF0aCkgKQoJCSAgewovLyAJCSAgICBpZiggJHRoaXMtPklzQWRtaW5BY3Rpb24oKSApCi8vIAkJICAgICAgJHVybCA9IGNtc19qb2luX3BhdGgoJy4uJywkdXJsKTsKCQkgICAgJHJlYWxfaW1hZ2UgPSAkdXJsOwoJCSAgfQoJICAgICAgfQoJICB9CgoJaWYoIGVtcHR5KCRyZWFsX2ltYWdlKSApCgkgIHsKCSAgICAkdGhlbWUgPSYgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddOwoJICAgIGlmKCBpc19vYmplY3QoJHRoZW1lKSApIAoJICAgICAgewoJCS8vIHdlJ3JlIGluIHRoZSBhZG1pbgoJCSR0eHQgPSAkdGhlbWUtPkRpc3BsYXlJbWFnZSgkaW1hZ2UsJGFsdCwkd2lkdGgsJGhlaWdodCwkY2xhc3MpOwoJCSRyZWFsX2ltYWdlID0gJHRoZW1lLT5pbWFnZUxpbmtbJGltYWdlXTsKCSAgICAgIH0KCSAgfQoKCSRhZGR0ZXh0IC49ICcgdGl0bGU9IicuJHZhbHVlLiciJzsKICAgICAgfQoKICAgIGlmKCAhZW1wdHkoJGNsYXNzKSApCiAgICAgIHsKCSRhZGR0ZXh0IC49ICcgY2xhc3M9IicuJGNsYXNzLiciJzsKICAgICAgfQogICAgcmV0dXJuICR0aGlzLT5fbW9kdWxlLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJG5hbWUsJHZhbHVlLCRhZGR0ZXh0LCRyZWFsX2ltYWdlLCRjb25maXJtdGV4dCk7CiAgfQoKCiAgLyoKICAgKiBBIGNvbnZlbmllbmNlIG1ldGhvZCB0byBjcmVhdGUgYSBjaGVja2JveAogICAqLwogIGZ1bmN0aW9uIENyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAkbmFtZSwgJHZhbHVlPScnLCAkc2VsZWN0ZWR2YWx1ZT0nJywgCgkJCSAgICAgICAkYWRkdHRleHQ9JycpCiAgewogICAgJHRleHQgPSAnPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSInLiRpZC4kbmFtZS4nIiB2YWx1ZT0iJy4kdmFsdWUuJyInOwogICAgJGFyciA9IHNwbGl0KCIsIiwkc2VsZWN0ZWR2YWx1ZSk7CiAgICBmb3JlYWNoKCAkYXJyIGFzICRhICkKICAgICAgewoJaWYgKCRhID09ICR2YWx1ZSkKCSAgewoJICAgICR0ZXh0IC49ICcgJyAuICdjaGVja2VkPSJjaGVja2VkIic7CgkgIH0KICAgICAgfQogICAgaWYgKCRhZGR0dGV4dCAhPSAnJykKICAgICAgewoJJHRleHQgLj0gJyAnLiRhZGR0dGV4dDsKICAgICAgfQogICAgJHRleHQgLj0gIiAvPlxuIjsKICAgIHJldHVybiAkdGV4dDsKICB9CgoKICAvKgogICAqIEEgQ29udmVuaWVuY2UgZnVuY3Rpb24gdG8gcmVkaXJlY3QgdG8gYW4gYWRtaW4gdGFiIGluIHRoZQogICAqIGRlZmF1bHRhZG1pbiBhY3Rpb24KICAgKgogICAqIFNlZSBBbHNvOiAgU2V0Q3VycmVudFRhYgogICAqLwogIGZ1bmN0aW9uIFJlZGlyZWN0VG9UYWIoICRpZCwgJHRhYiA9ICcnLCAkcGFyYW1zID0gJycsICRhY3Rpb24gPSAnJyApCiAgewogICAgJHBhcm1zID0gYXJyYXkoKTsKICAgIGlmKCBpc19hcnJheSggJHBhcmFtcyApICkKICAgICAgewoJJHBhcm1zID0gJHBhcmFtczsKICAgICAgfQogICAgaWYoICR0YWIgPT0gJycgKQogICAgICB7CglpZiggJHRoaXMtPl9tb2R1bGUtPl9jdXJyZW50X3RhYiApCgkgIHsKCSAgICAkdGFiID0gJHRoaXMtPl9tb2R1bGUtPl9jdXJyZW50X3RhYjsKCSAgfQogICAgICB9CiAgICBpZiggJHRhYiAhPSAnJyApCiAgICAgIHsKCSRwYXJtc1snY2dfYWN0aXZldGFiJ10gPSAkdGFiOwogICAgICB9CiAgICBpZiggaXNfYXJyYXkoJHRoaXMtPl9tb2R1bGUtPl9lcnJvcm1zZykgJiYgY291bnQoJHRoaXMtPl9tb2R1bGUtPl9lcnJvcm1zZykgKQogICAgICB7CgkkcGFybXNbJ2NnX2Vycm9yJ10gPSBpbXBsb2RlKCc6ZXJyOicsJHRoaXMtPl9tb2R1bGUtPl9lcnJvcm1zZyk7CiAgICAgIH0KCiAgICBpZiggZW1wdHkoJGFjdGlvbikgKSAkYWN0aW9uID0gJ2RlZmF1bHRhZG1pbic7CiAgICAkdGhpcy0+X21vZHVsZS0+UmVkaXJlY3QoICRpZCwgJGFjdGlvbiwgJycsICRwYXJtcywgdHJ1ZSApOwogIH0KCgogIC8qCiAgICogQSBjb252ZW5pZW5jZSBmdW5jdGlvbiBmb3IgY3JlYXRpbmcgYSBoaWRkZW4gZm9ybSBlbGVtZW50CiAgICovCiAgZnVuY3Rpb24gQ3JlYXRlSW5wdXRIaWRkZW4oICRpZCwgJG5hbWUsICR2YWx1ZT0nJywgJGFkZHRleHQ9JycsICRkZWxpbT0nLCcpCiAgewogICAgaWYoIGlzX2FycmF5KCAkdmFsdWUgKSApCiAgICAgIHsKCSR2YWwgPSBpbXBsb2RlX3dpdGhfa2V5KCAkdmFsdWUgKTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkdmFsID0gJHZhbHVlOwogICAgICB9CiAgICAkdmFsID0gc3RyX3JlcGxhY2UoJyInLCAnJnF1b3Q7JywgJHZhbCk7CiAgICAkdGV4dCA9ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSInLiRpZC4kbmFtZS4nIiB2YWx1ZT0iJy4kdmFsLiciJzsKICAgIGlmICgkYWRkdGV4dCAhPSAnJykKICAgICAgewoJJHRleHQgLj0gJyAnLiRhZGR0ZXh0OwogICAgICB9CiAgICAkdGV4dCAuPSAiIC8+XG4iOwogICAgcmV0dXJuICR0ZXh0OwogIH0KCiAgLyoKICAgKiBBIGNvbnZlbmllbmNlIGZ1bmN0aW9uIGZvciBjcmVhdGluZyBhbiA8aW1nPiB0YWcuCiAgICovCiAgZnVuY3Rpb24gQ3JlYXRlSW1hZ2VUYWcoJGltYWdlLCRhbHQ9JycsJHdpZHRoPScnLCRoZWlnaHQ9JycsJGNsYXNzPScnLCRhZGR0ZXh0PScnKQogIHsKICAgICR0eHQgPSAiPGltZyBzcmM9XCIkaW1hZ2VcIiI7CiAgICBpZiggJGFsdCAhPSAnJyApCiAgICAgIHsKCSR0eHQgLj0gIiBhbHQ9XCIkYWx0XCIiOwoJJHR4dCAuPSAiIHRpdGxlPVwiJGFsdFwiIjsKICAgICAgfQogICAgaWYoICR3aWR0aCAhPSAnJyApCiAgICAgIHsKCSR0eHQgLj0gIiB3aWR0aD1cIiR3aWR0aFwiIjsKICAgICAgfQogICAgaWYoICRoZWlnaHQgIT0gJycgKQogICAgICB7CgkkdHh0IC49ICIgaGVpZ2h0PVwiJGhlaWdodFwiIjsKICAgICAgfQogICAgaWYoICRjbGFzcyAhPSAnJyApCiAgICAgIHsKCSR0eHQgLj0gIiBjbGFzcz1cIiRjbGFzc1wiIjsKICAgICAgfQogICAgaWYoICRhZGR0ZXh0ICE9ICcnICkKICAgICAgewoJJHR4dCAuPSAiICRhZGR0ZXh0IjsKICAgICAgfQogICAgJHR4dCAuPSAiIC8+IjsKICAgIHJldHVybiAkdHh0OwogIH0KCgogIC8qCiAgICogQSBjb252ZW5pZW5jZSBmdW5jdGlvbiB0byBzZWFyY2ggZm9yIGFuIGltYWdlIGluIGNlcnRhaW4gcHJlc2V0IAogICAqIGRpcmVjdG9yaWVzCiAgICovCiAgZnVuY3Rpb24gRGlzcGxheUltYWdlKCRpbWFnZSwkYWx0PScnLCRjbGFzcz0nJywkd2lkdGg9JycsJGhlaWdodD0nJykKICB7CiAgICBnbG9iYWwgJGdDbXM7CiAgICAkY29uZmlnID0mICRnQ21zLT5HZXRDb25maWcoKTsKCiAgICAvLyBjaGVjayBpbWFnZV9kaXJlY3RvcmllcyBmaXJzdAogICAgaWYoIGlzc2V0KCR0aGlzLT5fbW9kdWxlLT5faW1hZ2VfZGlyZWN0b3JpZXMpICYmIAoJIWVtcHR5KCR0aGlzLT5fbW9kdWxlLT5faW1hZ2VfZGlyZWN0b3JpZXMpKQogICAgICB7Cglmb3JlYWNoKCAkdGhpcy0+X21vZHVsZS0+X2ltYWdlX2RpcmVjdG9yaWVzIGFzICRkaXIgKQoJICB7CgkgICAgJHVybCA9IGNtc19qb2luX3BhdGgoJGRpciwkaW1hZ2UpOwoJICAgICRwYXRoID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWydyb290X3BhdGgnXSwkdXJsKTsKCgkgICAgaWYoIGlzX3JlYWRhYmxlKCRwYXRoKSApCgkgICAgICB7CgkJaWYoICR0aGlzLT5fbW9kdWxlLT5Jc0FkbWluQWN0aW9uKCkgKQoJCSAgJHVybCA9IGNtc19qb2luX3BhdGgoJy4uJywkdXJsKTsKCQlyZXR1cm4gJHRoaXMtPl9tb2R1bGUtPkNyZWF0ZUltYWdlVGFnKCR1cmwsJGFsdCwkd2lkdGgsJGhlaWdodCwkY2xhc3MpOwoJICAgICAgfQoJICB9CiAgICAgIH0KCiAgICAkdGhlbWUgPSYgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddOwogICAgaWYoIGlzX29iamVjdCgkdGhlbWUpICkgCiAgICAgIHsKCS8vIHdlJ3JlIGluIHRoZSBhZG1pbgoJJHR4dCA9ICR0aGVtZS0+RGlzcGxheUltYWdlKCRpbWFnZSwkYWx0LCR3aWR0aCwkaGVpZ2h0LCRjbGFzcyk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJLy8gZnJvbnRlbmQKCSR0eHQgPSAkdGhpcy0+Q3JlYXRlSW1hZ2VUYWcoJGltYWdlLCRhbHQsJHdpZHRoLCRoZWlnaHQsJGNsYXNzKTsKICAgICAgfQogICAgcmV0dXJuICR0eHQ7CiAgfQoKCiAgLyoKICAgKiBBIGNvbnZlbmllbmNlIGZ1bmN0aW9uIGZvciBjcmVhdGluZyBhIGxpbmsgd2l0aCBhbiBpbWFnZQogICAqLwogIGZ1bmN0aW9uIENyZWF0ZUltYWdlTGluaygkaWQsJGFjdGlvbiwkcmV0dXJuaWQsJGNvbnRlbnRzLCRpbWFnZSwKCQkJICAgJHBhcmFtcz1hcnJheSgpLCRjbGFzc25hbWU9JycsCgkJCSAgICR3YXJuX21lc3NhZ2U9JycsJGltYWdlb25seT10cnVlLAoJCQkgICAkaW5saW5lPWZhbHNlLAoJCQkgICAkYWRkdGV4dD0nJywkdGFyZ2V0Y29udGVudG9ubHk9ZmFsc2UsJHByZXR0eXVybD0nJykKICB7CiAgICBpZiggJGNsYXNzbmFtZSA9PSAnJyApICRjbGFzc25hbWUgPSAnc3lzdGVtaWNvbic7CgogICAgJHR4dCA9ICR0aGlzLT5fX0NyZWF0ZVByZXR0eUxpbmsoJGlkLCRhY3Rpb24sJHJldHVybmlkLAoJCQkJICAgICR0aGlzLT5EaXNwbGF5SW1hZ2UoJGltYWdlLCRjb250ZW50cywkY2xhc3NuYW1lKSwgCgkJCQkgICAgJHBhcmFtcywgJHdhcm5fbWVzc2FnZSwgZmFsc2UsICRpbmxpbmUsIAoJCQkJICAgICRhZGR0ZXh0LCAkdGFyZ2V0Y29udGVudG9ubHksICRwcmV0dHl1cmwgKTsKICAgIGlmKCAkaW1hZ2Vvbmx5ICE9PSB0cnVlICkKICAgICAgewoJJHR4dCAuPSAnJm5ic3A7JzsKCSR0eHQgLj0gJHRoaXMtPl9tb2R1bGUtPkNyZWF0ZUxpbmsKCSAgKCRpZCwgJGFjdGlvbiwgJHJldHVybmlkLAoJICAgJGNvbnRlbnRzLCAkcGFyYW1zLCAkd2Fybl9tZXNzYWdlLCBmYWxzZSwgCgkgICAkaW5saW5lLCAkYWRkdGV4dCwgJHRhcmdldGNvbnRlbnRvbmx5LCAKCSAgICRwcmV0dHl1cmwgKTsKICAgICAgfQogICAgcmV0dXJuICR0eHQ7CiAgfQogIAoKICAvKgogICAqIEFuIG92ZXJyaWRhYmxlIGZ1bmN0aW9uIGZvciBjcmVhdGluZyBhIHByZXR0eSBsaW5rCiAgICovCiAgZnVuY3Rpb24gX19DcmVhdGVQcmV0dHlMaW5rKCRpZCwgJGFjdGlvbiwgJHJldHVybmlkPScnLCAkY29udGVudHM9JycsIAoJCQkgICAgICAkcGFyYW1zPWFycmF5KCksICR3YXJuX21lc3NhZ2U9JycsIAoJCQkgICAgICAkb25seWhyZWY9ZmFsc2UsICRpbmxpbmU9ZmFsc2UsICRhZGR0ZXh0PScnLCAKCQkJICAgICAgJHRhcmdldGNvbnRlbnRvbmx5PWZhbHNlLCAkcHJldHR5dXJsPScnKQogIHsKICAgIGdsb2JhbCAkZ0NtczsKICAgICRjb25maWcgPSYgJGdDbXMtPkdldENvbmZpZygpOwoKICAgICRwcmV0dHkgPSBmYWxzZTsKICAgIGlmKCAkY29uZmlnWydhc3N1bWVfbW9kX3Jld3JpdGUnXSA9PT0gdHJ1ZSB8fAoJJGNvbmZpZ1snaW50ZXJuYWxfcHJldHR5X3VybHMnXSA9PT0gdHJ1ZSApCiAgICAgIHsKCSRwcmV0dHkgPSB0cnVlOwogICAgICB9CgogICAgJG1ldGhvZF9leGlzdHMgPSBtZXRob2RfZXhpc3RzKCR0aGlzLT5fbW9kdWxlLCdDcmVhdGVQcmV0dHlMaW5rJyk7CiAgICBpZiggJHByZXR0eSAmJiAoJHJldHVybmlkICE9ICcnKSAmJiAkbWV0aG9kX2V4aXN0cyApCiAgICAgIHsKCS8vIHByZXR0eSB1cmxzIGFyZSBjb25maWd1cmVkLCB3ZSdyZSBub3QgaW4gYW4gYWRtaW4gYWN0aW9uCgkvLyBhbmQgdGhlIENyZWF0ZVByZXR0eUxpbmsgbWV0aG9kIGhhcyBiZWVuIGZvdW5kLgoJcmV0dXJuICR0aGlzLT5fbW9kdWxlLT5DcmVhdGVQcmV0dHlMaW5rKCRpZCwkYWN0aW9uLCRyZXR1cm5pZCwKCQkJCQkJJGNvbnRlbnRzLCRwYXJhbXMsCgkJCQkJCSR3YXJuX21lc3NhZ2UsCgkJCQkJCSRvbmx5aHJlZiwkaW5saW5lLCRhZGR0ZXh0LAoJCQkJCQkkdGFyZ2V0Y29udGVudG9ubHksJHByZXR0eXVybCk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJcmV0dXJuICR0aGlzLT5fbW9kdWxlLT5DcmVhdGVMaW5rKCRpZCwkYWN0aW9uLCRyZXR1cm5pZCwkY29udGVudHMsJHBhcmFtcywkd2Fybl9tZXNzYWdlLAoJCQkJICRvbmx5aHJlZiwkaW5saW5lLCRhZGR0ZXh0LCR0YXJnZXRjb250ZW50b25seSwkcHJldHR5dXJsKTsKICAgICAgfQogIH0KCgogIGZ1bmN0aW9uIFRyYW5zZm9ybUltYWdlKCRzcmNTcGVjLCAkZGVzdFNwZWMsICRzaXplID0gJycpCiAgewogICAgcmVxdWlyZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pLicvLi4vLi4vbGliL2ZpbGVtYW5hZ2VyL0ltYWdlTWFuYWdlci9DbGFzc2VzL1RyYW5zZm9ybS5waHAnKTsKCiAgICBnbG9iYWwgJGdDbXM7CiAgICAkY29uZmlnID0mICRnQ21zLT5HZXRDb25maWcoKTsKICAgIGlmKCAkc2l6ZSA9PSAnJyApCiAgICAgIHsKCSRjZ2UgPSYgJHRoaXMtPl9tb2R1bGUtPkdldE1vZHVsZUluc3RhbmNlKCdDR0V4dGVuc2lvbnMnKTsKCSRzaXplID0gJGNnZS0+R2V0UHJlZmVyZW5jZSgndGh1bWJuYWlsc2l6ZScpOwogICAgICB9CgogICAgJGl0ID0gbmV3IEltYWdlX1RyYW5zZm9ybTsKICAgICRpbWcgPSAkaXQtPmZhY3RvcnkoJGNvbmZpZ1snaW1hZ2VfbWFuaXB1bGF0aW9uX3Byb2cnXSk7CiAgICAkaW1nLT5sb2FkKCRzcmNTcGVjKTsKICAgIGlmICgkaW1nLT5pbWdfeCA8ICRpbWctPmltZ195KQogICAgICB7CgkkbG9uZ19heGlzID0gJGltZy0+aW1nX3k7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJGxvbmdfYXhpcyA9ICRpbWctPmltZ194OwogICAgICB9CiAgICAgCiAgICBpZiAoJGxvbmdfYXhpcyA+ICRzaXplKQogICAgICB7CgkkaW1nLT5zY2FsZUJ5TGVuZ3RoKCRzaXplKTsKCSRpbWctPnNhdmUoJGRlc3RTcGVjLCAnanBlZycpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRpbWctPnNhdmUoJGRlc3RTcGVjLCAnanBlZycpOwogICAgICB9CiAgICAkaW1nLT5mcmVlKCk7CiAgfQoKICAvKgogICAqIFBhcnQgb2YgdGhlIG11bHRpcGxlIGRhdGFiYXNlIHRlbXBsYXRlIGZ1bmN0aW9uYWxpdHksCiAgICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgbGlzdCBvZiB0ZW1wbGF0ZXMgZm9yIHRoZSBjdXJyZW50IG1vZHVsZQogICAqIHRoYXQgYWxsIHN0YXJ0IHdpdGggdGhlIHNwZWNpZmllZCBwcmVmaXguCiAgICovCiAgZnVuY3Rpb24gTGlzdFRlbXBsYXRlc1dpdGhQcmVmaXgoJHByZWZpeCA9ICcnLCR0cmltID0gZmFsc2UpCiAgewogICAgJHRlbXBsYXRlcyA9ICR0aGlzLT5fbW9kdWxlLT5MaXN0VGVtcGxhdGVzKCk7CiAgICBpZiggJHByZWZpeCA9PSAnJyApIHJldHVybiAkdGVtcGxhdGVzOwoKICAgICRpdGVtcyA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCAkdGVtcGxhdGVzIGFzICRvbmVuYW1lICkKICAgICAgewoJaWYoIHByZWdfbWF0Y2goJy9eJy4kcHJlZml4LicvJywkb25lbmFtZSkgKQoJICB7CgkgICAgaWYoICR0cmltICkKCSAgICAgIHsKCQkkaXRlbXNbXSA9IHN1YnN0cigkb25lbmFtZSxzdHJsZW4oJHByZWZpeCkpOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkaXRlbXNbXSA9ICRvbmVuYW1lOwoJICAgICAgfQoJICB9CiAgICAgIH0KICAgIHJldHVybiAkaXRlbXM7CiAgfQoKICAvKgogICAqIFBhcnQgb2YgdGhlIG11bHRpcGxlIGRhdGFiYXNlIHRlbXBsYXRlIGZ1bmN0aW9uYWxpdHksCiAgICogVGhpcyBmdW5jdGlvbiBnZW5lcmF0ZXMgYSBkcm9wZG93biBsaXN0IHRvIGFsbG93IHNlbGVjdGluZwogICAqIGEgdGVtcGxhdGUgZnJvbSB0aGUgbW9kdWxlcyB0ZW1wbGF0ZSBsaXN0LCAKICAgKi8KICBmdW5jdGlvbiBDcmVhdGVUZW1wbGF0ZURyb3Bkb3duKCRpZCwkbmFtZSwkcHJlZml4ID0gJycsJHNlbGVjdGVkdmFsdWUgPSAtMSwKCQkJCSAgJGFkZHRleHQgPSAnJykKICB7CiAgICAkdGVtcGxhdGVzID0gJHRoaXMtPkxpc3RUZW1wbGF0ZXNXaXRoUHJlZml4KCRwcmVmaXgpOwogICAgJGl0ZW1zID0gYXJyYXkoKTsKICAgIGZvcmVhY2goICR0ZW1wbGF0ZXMgYXMgJG9uZW5hbWUgKQogICAgICB7CgkkdG1wID0gc3Vic3RyKCRvbmVuYW1lLHN0cmxlbigkcHJlZml4KSk7CgkkaXRlbXNbJHRtcF0gPSAkb25lbmFtZTsKICAgICAgfQogICAgCiAgICByZXR1cm4gJHRoaXMtPl9tb2R1bGUtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCRuYW1lLCRpdGVtcywtMSwkc2VsZWN0ZWR2YWx1ZSwkYWRkdGV4dCk7CiAgfQoKCiAgZnVuY3Rpb24gX0Rpc3BsYXlUZW1wbGF0ZUxpc3QoICYkbW9kdWxlLCAkaWQsICRyZXR1cm5pZCwgJHByZWZpeCwgCgkJCQkgJGRlZmF1bHR0ZW1wbGF0ZXByZWYsIAoJCQkJICRhY3RpdmVfdGFiLCAkZGVmYXVsdHByZWZuYW1lLAoJCQkJICR0aXRsZSwgJGluZm8gPSAnJykKICB7CiAgICAvLyB3ZSdyZSBnb25uYSBhbGxvdyBtdWx0aXBsZSB0ZW1wbGF0ZXMgaGVyZQogICAgLy8gYnV0IHdlJ3JlIGdvbm5hIHByZWZpeCB0aGVtIGFsbCB3aXRoIHNvbWV0aGluZwogICAgZ2xvYmFsICRnQ21zOwogICAgJHNtYXJ0eSA9JiAkZ0Ntcy0+R2V0U21hcnR5KCk7CiAgICAKICAgICRmYWxzZWltYWdlMSA9ICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywnbWFrZSBkZWZhdWx0JywnJywnJywnc3lzdGVtaWNvbicpOwogICAgJHRydWVpbWFnZTEgPSAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywnZGVmYXVsdCcsJycsJycsJ3N5c3RlbWljb24nKTsKICAgICRhbGx0ZW1wbGF0ZXMgPSAkbW9kdWxlLT5MaXN0VGVtcGxhdGVzKCk7CiAgICAkcm93YXJyYXkgPSBhcnJheSgpOwogICAgJHJvd2NsYXNzID0gJ3JvdzEnOwoKICAgIGZvcmVhY2goICRhbGx0ZW1wbGF0ZXMgYXMgJG9uZXRlbXBsYXRlICkKICAgICAgewoJaWYoICFwcmVnX21hdGNoKCIvXiRwcmVmaXgvIiwgJG9uZXRlbXBsYXRlICkgKQoJICB7CgkgICAgY29udGludWU7CgkgIH0KCQoJJHRtcCA9IHN1YnN0cigkb25ldGVtcGxhdGUsc3RybGVuKCRwcmVmaXgpKTsKCSRyb3cgPSBuZXcgU3RkQ2xhc3MoKTsKCSRyb3ctPm5hbWUgPSAkdGhpcy0+X21vZHVsZS0+Q3JlYXRlTGluayggJGlkLCAnZWRpdHRlbXBsYXRlJywgJHJldHVybmlkLAoJCQkJCQkgJHRtcCwgYXJyYXkoJ3RlbXBsYXRlJyA9PiAkdG1wLAoJCQkJCQkJICAgICAnY2dfYWN0aXZldGFiJyA9PiAkYWN0aXZlX3RhYiwKCQkJCQkJCSAgICAgJ3RpdGxlJz0+JHRpdGxlLAoJCQkJCQkJICAgICAnaW5mbyc9PiRpbmZvLAoJCQkJCQkJICAgICAncHJlZml4Jz0+JHByZWZpeCwKCQkJCQkJCSAgICAgJ21vZG5hbWUnPT4kbW9kdWxlLT5HZXROYW1lKCksCgkJCQkJCQkgICAgICdtb2RlJz0+J2VkaXQnKSk7Cgkkcm93LT5yb3djbGFzcyA9ICRyb3djbGFzczsKCgkkZGVmYXVsdCA9ICgkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCRkZWZhdWx0cHJlZm5hbWUpID09ICR0bXApID8gdHJ1ZSA6IGZhbHNlOwoJaWYoICRkZWZhdWx0ICkKCSAgewoJICAgICRyb3ctPmRlZmF1bHQgPSAkdHJ1ZWltYWdlMTsKCSAgfQoJZWxzZQoJICB7CgkgICAgJHJvdy0+ZGVmYXVsdCA9ICR0aGlzLT5fbW9kdWxlLT5DcmVhdGVMaW5rKCAkaWQsICdtYWtlZGVmYXVsdHRlbXBsYXRlJywgJHJldHVybmlkLAoJCQkJCSAgICAgICAkZmFsc2VpbWFnZTEsCgkJCQkJICAgICAgIGFycmF5KCd0ZW1wbGF0ZSc9PiR0bXAsCgkJCQkJCSAgICAgJ2RlZmF1bHRwcmVmbmFtZSc9PiRkZWZhdWx0cHJlZm5hbWUsCgkJCQkJCSAgICAgJ21vZG5hbWUnPT4kbW9kdWxlLT5HZXROYW1lKCksCgkJCQkJCSAgICAgJ2NnX2FjdGl2ZXRhYicgPT4gJGFjdGl2ZV90YWIpKTsKCSAgfQoKCSRyb3ctPmVkaXRsaW5rID0gJHRoaXMtPl9tb2R1bGUtPkNyZWF0ZUltYWdlTGluayggJGlkLCdlZGl0dGVtcGxhdGUnLCRyZXR1cm5pZCwKCQkJCQkJICR0aGlzLT5fbW9kdWxlLT5MYW5nKCdwcm9tcHRfZWRpdHRlbXBsYXRlJyksCgkJCQkJCSAnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywKCQkJCQkJIGFycmF5ICgndGVtcGxhdGUnID0+ICR0bXAsCgkJCQkJCQknY2dfYWN0aXZldGFiJyA9PiAkYWN0aXZlX3RhYiwKCQkJCQkJCSdwcmVmaXgnPT4kcHJlZml4LAoJCQkJCQkJJ3RpdGxlJz0+JHRpdGxlLAoJCQkJCQkJJ2luZm8nPT4kaW5mbywKCQkJCQkJCSdtb2RuYW1lJz0+JG1vZHVsZS0+R2V0TmFtZSgpLAoJCQkJCQkJJ21vZGUnPT4nZWRpdCcpKTsKCQoJaWYoICRkZWZhdWx0ICkKCSAgewoJICAgICRyb3ctPmRlbGV0ZWxpbmsgPSAnJm5ic3A7JzsKCSAgfQoJZWxzZQoJICB7CgkgICAgJHJvdy0+ZGVsZXRlbGluayA9ICR0aGlzLT5fbW9kdWxlLT5DcmVhdGVJbWFnZUxpbmsoICRpZCwgJ2RlbGV0ZXRlbXBsYXRlJywgJHJldHVybmlkLAoJCQkJCQkgICAgICAgJHRoaXMtPl9tb2R1bGUtPkxhbmcoJ3Byb21wdF9kZWxldGV0ZW1wbGF0ZScpLAoJCQkJCQkgICAgICAgJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywKCQkJCQkJICAgICAgIGFycmF5ICgndGVtcGxhdGUnID0+ICRvbmV0ZW1wbGF0ZSwKCQkJCQkJCSAgICAgICdtb2RuYW1lJz0+JG1vZHVsZS0+R2V0TmFtZSgpLAoJCQkJCQkJICAgICAgJ2NnX2FjdGl2ZXRhYicgPT4gJGFjdGl2ZV90YWIpLAoJCQkJCQkgICAgICAgJycsCgkJCQkJCSAgICAgICAkdGhpcy0+X21vZHVsZS0+TGFuZygnYXJleW91c3VyZScpKTsKCSAgfQoJCglhcnJheV9wdXNoICgkcm93YXJyYXksICRyb3cpOwoJKCRyb3djbGFzcyA9PSAicm93MSIgPyAkcm93Y2xhc3MgPSAicm93MiIgOiAkcm93Y2xhc3MgPSAicm93MSIpOwogICAgICB9CiAgICAKICAgICRzbWFydHktPmFzc2lnbignaXRlbXMnLCAkcm93YXJyYXkgKTsKICAgICRzbWFydHktPmFzc2lnbignbmFtZXByb21wdCcsICR0aGlzLT5fbW9kdWxlLT5MYW5nKCdwcm9tcHRfbmFtZScpKTsKICAgICRzbWFydHktPmFzc2lnbignZGVmYXVsdHByb21wdCcsICR0aGlzLT5fbW9kdWxlLT5MYW5nKCdwcm9tcHRfZGVmYXVsdCcpKTsKICAgICRzbWFydHktPmFzc2lnbignbmV3dGVtcGxhdGVsaW5rJywKCQkJICAkdGhpcy0+X21vZHVsZS0+Q3JlYXRlSW1hZ2VMaW5rKCAkaWQsICdlZGl0dGVtcGxhdGUnLCAkcmV0dXJuaWQsCgkJCQkJCSAgJHRoaXMtPl9tb2R1bGUtPkxhbmcoJ3Byb21wdF9uZXd0ZW1wbGF0ZScpLAoJCQkJCQkgICdpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZicsCgkJCQkJCSAgYXJyYXkoJ3ByZWZpeCcgPT4gJHByZWZpeCwKCQkJCQkJCSdjZ19hY3RpdmV0YWInID0+ICRhY3RpdmVfdGFiLAoJCQkJCQkJJ21vZG5hbWUnID0+ICRtb2R1bGUtPkdldE5hbWUoKSwKCQkJCQkJCSd0aXRsZSc9PiR0aXRsZSwKCQkJCQkJCSdpbmZvJz0+JGluZm8sCgkJCQkJCQknbW9kZScgPT4gJ2FkZCcsCgkJCQkJCQknZGVmYXVsdHRlbXBsYXRlcHJlZicgPT4gJGRlZmF1bHR0ZW1wbGF0ZXByZWYKCQkJCQkJCSksJycsJycsZmFsc2UpKTsKICAgICRzbWFydHktPmFzc2lnbigkdGhpcy0+X21vZHVsZS0+Q3JlYXRlRm9ybUVuZCgpKTsKICAgIHJldHVybiAkdGhpcy0+X21vZHVsZS0+UHJvY2Vzc1RlbXBsYXRlKCdsaXN0dGVtcGxhdGVzLnRwbCcpOwogIH0KCgp9Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/class.CGFileUploadHandler.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRXh0ZW5zaW9ucyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSB1c2VmdWwgZnVuY3Rpb25zCiMgIGFuZCBjb21tb25seSB1c2VkIGd1aSBjYXBhYmlsaXRpZXMgdG8gb3RoZXIgbW9kdWxlcy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmRlZmluZSgnQ0dGSUxFVVBMT0FEX05PRklMRScsJ0NHRklMRVVQTE9BRF9OT0ZJTEUnKTsKZGVmaW5lKCdDR0ZJTEVVUExPQURfRklMRVNJWkUnLCdDR0ZJTEVVUExPQURfRklMRVNJWkUnKTsKZGVmaW5lKCdDR0ZJTEVVUExPQURfRklMRVRZUEUnLCdDR0ZJTEVVUExPQURfRklMRVRZUEUnKTsKZGVmaW5lKCdDR0ZJTEVVUExPQURfRklMRUVYSVNUUycsJ0NHRklMRVVQTE9BRF9GSUxFRVhJU1RTJyk7CmRlZmluZSgnQ0dGSUxFVVBMT0FEX0JBRERFU1RESVInLCdDR0ZJTEVVUExPQURfQkFEREVTVERJUicpOwpkZWZpbmUoJ0NHRklMRVVQTE9BRF9CQURQRVJNUycsJ0NHRklMRVVQTE9BRF9CQURQRVJNUycpOwpkZWZpbmUoJ0NHRklMRVVQTE9BRF9NT1ZFRkFJTEVEJywnQ0dGSUxFVVBMT0FEX01PVkVGQUlMRUQnKTsKCmNsYXNzIENHRmlsZVVwbG9hZEhhbmRsZXIKewogIHZhciAkX21heGZpbGVzaXplOwogIHZhciAkX2Vycm9yOwogIHZhciAkX3ByZWZpeDsKICB2YXIgJF9kZXN0ZGlyOwogIHZhciAkX2ZpbGV0eXBlczsKICB2YXIgJF9hbGxvd19vdmVyd3JpdGU7CiAgdmFyICRfZGVzdG5hbWU7CiAgdmFyICRfZmlsZXM7CgoKICBmdW5jdGlvbiBDR0ZpbGVVcGxvYWRIYW5kbGVyKCRwcmVmaXgsJGRlc3RkaXIpCiAgewogICAgJHRoaXMtPl9lcnJvciA9IGZhbHNlOwogICAgJHRoaXMtPl9hbGxvd19vdmVyd3JpdGUgPSBmYWxzZTsKICAgICR0aGlzLT5fcHJlZml4ID0gJHByZWZpeDsKICAgICR0aGlzLT5fZGVzdGRpciA9ICRkZXN0ZGlyOwogICAgJHRoaXMtPl9maWxlcyA9ICRfRklMRVM7CgogICAgZ2xvYmFsICRnQ21zOwogICAgJGNvbmZpZyA9JiAkZ0Ntcy0+R2V0Q29uZmlnKCk7CiAgICAkdGhpcy0+X21heGZpbGVzaXplID0gJGNvbmZpZ1snbWF4X3VwbG9hZF9zaXplJ107CgogIH0KCgogIGZ1bmN0aW9uIFNldEFjY2VwdGVkRmlsZXR5cGVzKCRmaWxldHlwZXMpCiAgewogICAgaWYoIGlzX2FycmF5KCAkZmlsZXR5cGVzICkgKQogICAgICB7CgkkdGhpcy0+X2ZpbGV0eXBlcyA9ICRmaWxldHlwZXM7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJaWYoIGVtcHR5KCRmaWxldHlwZXMpICkKCSAgewoJICAgICR0aGlzLT5fZmlsZXR5cGVzID0gZmFsc2U7CgkgIH0KCWVsc2UKCSAgewoJICAgICR0aGlzLT5fZmlsZXR5cGVzID0gZXhwbG9kZSgnLCcsJGZpbGV0eXBlcyk7CgkgIH0KICAgICAgfQogIH0KCgogIGZ1bmN0aW9uIFNldE1heEZpbGVTaXplS2IoJHNpemUpCiAgewogICAgJHRoaXMtPl9tYXhmaWxlc2l6ZSA9ICRzaXplICogMTAyNDsKICB9CgoKICBmdW5jdGlvbiBBbGxvd092ZXJ3cml0ZSgkZmxhZyA9IHRydWUpCiAgewogICAgJHRoaXMtPl9hbGxvd19vdmVyd3JpdGUgPSAkZmxhZzsKICB9CgoKICBmdW5jdGlvbiBHZXRFcnJvcigpCiAgewogICAgcmV0dXJuICR0aGlzLT5fZXJyb3I7CiAgfQoKCiAgZnVuY3Rpb24gR2V0RGVzdGluYXRpb25GaWxlbmFtZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5fZGVzdG5hbWU7CiAgfQoKCiAgZnVuY3Rpb24gSGFuZGxlVXBsb2FkZWRGaWxlKCRuYW1lLCRkZXN0ZmlsZW5hbWU9JycsJHN1YmZpZWxkID0gZmFsc2UpCiAgewogICAgJGZsZG5hbWUgPSAkdGhpcy0+X3ByZWZpeC4kbmFtZTsKICAgIGlmKCAhaXNzZXQoJHRoaXMtPl9maWxlcykgfHwgIWlzc2V0KCR0aGlzLT5fZmlsZXNbJGZsZG5hbWVdKSApCiAgICAgIHsKCSR0aGlzLT5fZXJyb3IgPSBDR0ZJTEVVUExPQURfTk9GSUxFOwoJcmV0dXJuIGZhbHNlOwogICAgICB9CgogICAgJGZpbGUgPSAnJzsKICAgIGlmKCBlbXB0eSgkc3ViZmllbGQpICkKICAgICAgewoJaWYoICFpc19hcnJheSgkdGhpcy0+X2ZpbGVzWyRmbGRuYW1lXSkgfHwgIWlzc2V0KCR0aGlzLT5fZmlsZXNbJGZsZG5hbWVdWyduYW1lJ10pIHx8CgllbXB0eSgkdGhpcy0+X2ZpbGVzWyRmbGRuYW1lXVsnbmFtZSddKSApCgkgIHsKCSAgICAvLyB0aGVyZSdzIG5vdGhpbmcgdG8gaGFuZGxlCgkgICAgJHRoaXMtPl9lcnJvciA9IENHRklMRVVQTE9BRF9OT0ZJTEU7CgkgICAgcmV0dXJuIGZhbHNlOwoJICB9CgllbHNlCgkgIHsKCSAgICAkZmlsZSA9ICR0aGlzLT5fZmlsZXNbJGZsZG5hbWVdOwoJICB9CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJLy8gdGhlIGZpbGVzIGFyZSBhbiBhcnJheSwgc28gZWFjaCBlbGVtZW50IGlzIGFuIGFycmF5CgkvLyB3ZSBnb3R0YSBidWlsZCAkZmlsZSBmcm9tIHRoZSAkX0ZJTEVTIG9uZSBzdGVwIGF0IGEgdGltZQoJJHRtcCA9IGFycmF5KCk7Cglmb3JlYWNoKCAkdGhpcy0+X2ZpbGVzWyRmbGRuYW1lXSBhcyAka2V5ID0+ICR2YWx1ZSApCgkgIHsKCSAgICBpZiggaXNzZXQoJHZhbHVlWyRzdWJmaWVsZF0pICkKCSAgICAgIHsKCQkkdG1wWyRrZXldID0gJHZhbHVlWyRzdWJmaWVsZF07CgkgICAgICB9CgkgIH0KCSRmaWxlID0gJHRtcDsKCglpZiggIWlzX2FycmF5KCRmaWxlKSB8fCAKCSAgICAhaXNzZXQoJGZpbGVbJ25hbWUnXSkgfHwgCgkgICAgZW1wdHkoJGZpbGVbJ25hbWUnXSkgKQoJICB7CgkgICAgJHRoaXMtPl9lcnJvciA9IENHRklMRVVQTE9BRF9OT0ZJTEU7CgkgICAgcmV0dXJuIGZhbHNlOwoJICB9CiAgICAgIH0KCiAgICAvLyBOb3JtYWxpemUgdGhlIGZpbGUgdmFyaWFibGVzCiAgICBpZiAoIWlzc2V0ICgkZmlsZVsndHlwZSddKSkKICAgICAgJGZpbGVbJ3R5cGUnXSA9ICcnOwogICAgaWYgKCFpc3NldCAoJGZpbGVbJ3NpemUnXSkpCiAgICAgICRmaWxlWydzaXplJ10gPSAnJzsKICAgIGlmICghaXNzZXQgKCRmaWxlWyd0bXBfbmFtZSddKSkKICAgICAgJGZpbGVbJ3RtcF9uYW1lJ10gPSAnJzsKICAgICRmaWxlWyduYW1lJ10gPQogICAgICBwcmVnX3JlcGxhY2UoJy9bXmEtekEtWjAtOVwuXCRcJVwnXGBcLVxAXHtcfVx+XCFcI1woXClcJlxfXF5dLycsICcnLAoJCSAgIHN0cl9yZXBsYWNlKGFycmF5KCcgJywgJyUyMCcpLGFycmF5ICgnXycsICdfJyksJGZpbGVbJ25hbWUnXSkpOwoKICAgIC8vIENoZWNrIHRoZSBmaWxlIHNpemUKICAgIGlmKCAoJHRoaXMtPl9tYXhmaWxlc2l6ZSA+IDApICYmIAoJKCRmaWxlWydzaXplJ10gPiAkdGhpcy0+X21heGZpbGVzaXplKSApCiAgICAgIHsKCSR0aGlzLT5fZXJyb3IgPSBDR0ZJTEVVUExPQURfRklMRVNJWkU7CglyZXR1cm4gZmFsc2U7CiAgICAgIH0KCiAgICAvLyBDaGVjayB0aGUgZmlsZSBleHRlbnNpb24KICAgICRleHRlbnNpb24gPSBzdHJyY2hyKCRmaWxlWyduYW1lJ10sIi4iKTsKICAgICRmb3VuZCA9IGZhbHNlOwogICAgZm9yZWFjaCggJHRoaXMtPl9maWxldHlwZXMgYXMgJHR5cGUgKQogICAgICB7CglpZiggIi4iLnN0cnRvbG93ZXIoJHR5cGUpID09IHN0cnRvbG93ZXIoJGV4dGVuc2lvbikgKQoJICB7CgkgICAgJGZvdW5kID0gdHJ1ZTsKCSAgICBicmVhazsKCSAgfQogICAgICB9CiAgICBpZiggY291bnQoJHRoaXMtPl9maWxldHlwZXMpICYmICRmb3VuZCA9PT0gZmFsc2UgKQogICAgICB7CgkkdGhpcy0+X2Vycm9yID0gQ0dGSUxFVVBMT0FEX0ZJTEVUWVBFOwoJcmV0dXJuIGZhbHNlOwogICAgICB9CgogICAgLy8gY2hlY2sgdGhlIGRlc3RpbmF0aW9uIGRpcmVjdG9yeQogICAgaWYoICFpc19kaXIoJHRoaXMtPl9kZXN0ZGlyKSApCiAgICAgIHsKCSR0aGlzLT5fZXJyb3IgPSBDR0ZJTEVVUExPQURfQkFEREVTVERJUjsKCXJldHVybiBmYWxzZTsKICAgICAgfQoKICAgIGlmKCAhaXNfd3JpdGFibGUoJHRoaXMtPl9kZXN0ZGlyKSApCiAgICAgIHsKCSR0aGlzLT5fZXJyb3IgPSBDR0ZJTEVVUExPQURfQkFEUEVSTVM7CglyZXR1cm4gZmFsc2U7CiAgICAgIH0KCiAgICAkdG1wID0gc3Vic3RyKCRmaWxlWyduYW1lJ10sMCxzdHJsZW4oJGZpbGVbJ25hbWUnXSktc3RybGVuKCRleHRlbnNpb24pLTEpOwogICAgJG5ld25hbWUgPSAkZmlsZVsnbmFtZSddOwogICAgaWYoICFlbXB0eSgkZGVzdGZpbGVuYW1lKSApCiAgICAgIHsKCSRuZXduYW1lID0gJGRlc3RmaWxlbmFtZS4kZXh0ZW5zaW9uOwogICAgICB9CiAgICAkZGVzdG5hbWUgPSBjbXNfam9pbl9wYXRoKCR0aGlzLT5fZGVzdGRpciwkbmV3bmFtZSk7CiAgICBpZiggZmlsZV9leGlzdHMoJGRlc3RuYW1lKSApCiAgICAgIHsKCWlmKCAhJHRoaXMtPl9hbGxvd19vdmVyd3JpdGUgKQoJICB7CgkgICAgJHRoaXMtPl9lcnJvciA9IENHRklMRVVQTE9BRF9GSUxFRVhJU1RTOwoJICAgIHJldHVybiBmYWxzZTsKCSAgfQoJZWxzZSBpZiggIWlzX3dyaXRhYmxlKCRkZXN0bmFtZSkgKQoJICB7CgkgICAgJHRoaXMtPl9lcnJvciA9IENHRklMRVVQTE9BRF9CQURQRVJNUzsKCSAgICByZXR1cm4gZmFsc2U7CgkgIH0KICAgICAgfQoKICAgIC8vIEFuZCBBdHRlbXB0IHRoZSBjb3B5CiAgICAkdGhpcy0+X2Rlc3RuYW1lID0gJGRlc3RuYW1lOwogICAgJHJlcyA9IGNtc19tb3ZlX3VwbG9hZGVkX2ZpbGUoICRmaWxlWyd0bXBfbmFtZSddLCAkZGVzdG5hbWUgKTsKICAgIGlmKCAhJHJlcyApCiAgICAgIHsKCSR0aGlzLT5fZXJyb3IgPSBDR0ZJTEVVUExPQURfTU9WRUZBSUxFRDsKCXJldHVybiBmYWxzZTsKICAgICAgfQoKICAgIHJldHVybiAkbmV3bmFtZTsKICB9CgogIGZ1bmN0aW9uIFNldEZpbGVzKCYkbmV3ZmlsZXMpCiAgewogICAgJHRoaXMtPl9maWxlcyA9ICRuZXdmaWxlczsKICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/countries.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[QUYsQWZnaGFuaXN0YW4KQUwsQWxiYW5pYQpEWixBbGdlcmlhCkFTLEFtZXJpY2FuIFNhbW9hCkFELEFuZG9ycmEKQU8sQW5nb2xhCkFJLEFuZ3VpbGxhCkFRLEFudGFyY3RpY2EKQUcsQW50aWd1YSBBbmQgQmFyYnVkYQpBUixBcmdlbnRpbmEKQU0sQXJtZW5pYQpBVyxBcnViYQpBVSxBdXN0cmFsaWEKQVQsQXVzdHJpYQpBWixBemVyYmFpamFuCkJTLEJhaGFtYXMKQkgsQmFocmFpbgpCRCxCYW5nbGFkZXNoCkJCLEJhcmJhZG9zCkJZLEJlbGFydXMKQkUsQmVsZ2l1bQpCWixCZWxpemUKQkosQmVuaW4KQk0sQmVybXVkYQpCVCxCaHV0YW4KQk8sQm9saXZpYQpCQSxCb3NuaWEgQW5kIEhlcnplZ293aW5hCkJXLEJvdHN3YW5hCkJWLEJvdXZldCBJc2xhbmQKQlIsQnJhemlsCklPLEJyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeQpCTixCcnVuZWkgRGFydXNzYWxhbQpCRyxCdWxnYXJpYQpCRixCdXJraW5hIEZhc28KQkksQnVydW5kaQpLSCxDYW1ib2RpYQpDTSxDYW1lcm9vbgpDQSxDYW5hZGEKQ1YsQ2FwZSBWZXJkZQpLWSxDYXltYW4gSXNsYW5kcwpDRixDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMKVEQsQ2hhZApDTCxDaGlsZQpDTixDaGluYQpDWCxDaHJpc3RtYXMgSXNsYW5kCkNDLENvY29zIChLZWVsaW5nKSBJc2xhbmRzCkNPLENvbG9tYmlhCktNLENvbW9yb3MKQ0csQ29uZ28KQ0ssQ29vayBJc2xhbmRzCkNSLENvc3RhIFJpY2EKQ0ksQ290ZSBEJ0l2b2lyZQpIUixDcm9hdGlhIChMb2NhbCBOYW1lOiBIcnZhdHNrYSkKQ1UsQ3ViYQpDWSxDeXBydXMKQ1osQ3plY2ggUmVwdWJsaWMKREssRGVubWFyawpESixEamlib3V0aQpETSxEb21pbmljYQpETyxEb21pbmljYW4gUmVwdWJsaWMKVFAsRWFzdCBUaW1vcgpFQyxFY3VhZG9yCkVHLEVneXB0ClNWLEVsIFNhbHZhZG9yCkdRLEVxdWF0b3JpYWwgR3VpbmVhCkVSLEVyaXRyZWEKRUUsRXN0b25pYQpFVCxFdGhpb3BpYQpGSyxGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcykKRk8sRmFyb2UgSXNsYW5kcwpGSixGaWppCkZJLEZpbmxhbmQKRlIsRnJhbmNlCkdGLEZyZW5jaCBHdWlhbmEKUEYsRnJlbmNoIFBvbHluZXNpYQpURixGcmVuY2ggU291dGhlcm4gVGVycml0b3JpZXMKR0EsR2Fib24KR00sR2FtYmlhCkdFLEdlb3JnaWEKREUsR2VybWFueQpHSCxHaGFuYQpHSSxHaWJyYWx0YXIKR1IsR3JlZWNlCkdMLEdyZWVubGFuZApHRCxHcmVuYWRhCkdQLEd1YWRlbG91cGUKR1UsR3VhbQpHVCxHdWF0ZW1hbGEKR04sR3VpbmVhCkdXLEd1aW5lYS1CaXNzYXUKR1ksR3V5YW5hCkhULEhhaXRpCkhNLEhlYXJkIEFuZCBNYyBEb25hbGQgSXNsYW5kcwpWQSxIb2x5IFNlZSAoVmF0aWNhbiBDaXR5IFN0YXRlKQpITixIb25kdXJhcwpISyxIb25nIEtvbmcKSFUsSHVuZ2FyeQpJUyxJY2VsIEFuZApJTixJbmRpYQpJRCxJbmRvbmVzaWEKSVIsSXJhbiAoSXNsYW1pYyBSZXB1YmxpYyBPZikKSVEsSXJhcQpJRSxJcmVsYW5kCklMLElzcmFlbApJVCxJdGFseQpKTSxKYW1haWNhCkpQLEphcGFuCkpPLEpvcmRhbgpLWixLYXpha2hzdGFuCktFLEtlbnlhCktJLEtpcmliYXRpCktQLEtvcmVhLCBEZW0gUGVvcGxlJ1MgUmVwdWJsaWMKS1IsS29yZWEsIFJlcHVibGljIE9mCktXLEt1d2FpdApLRyxLeXJneXpzdGFuCkxBLExhbyBQZW9wbGUnUyBEZW0gUmVwdWJsaWMKTFYsTGF0dmlhCkxCLExlYmFub24KTFMsTGVzb3RobwpMUixMaWJlcmlhCkxZLExpYnlhbiBBcmFiIEphbWFoaXJpeWEKTEksTGllY2h0ZW5zdGVpbgpMVCxMaXRodWFuaWEKTFUsTHV4ZW1ib3VyZwpNTyxNYWNhdQpNSyxNYWNlZG9uaWEKTUcsTWFkYWdhc2NhcgpNVyxNYWxhd2kKTVksTWFsYXlzaWEKTVYsTWFsZGl2ZXMKTUwsTWFsaQpNVCxNYWx0YQpNSCxNYXJzaGFsbCBJc2xhbmRzCk1RLE1hcnRpbmlxdWUKTVIsTWF1cml0YW5pYQpNVSxNYXVyaXRpdXMKWVQsTWF5b3R0ZQpNWCxNZXhpY28KRk0sTWljcm9uZXNpYSwgRmVkZXJhdGVkIFN0YXRlcwpNRCxNb2xkb3ZhLCBSZXB1YmxpYyBPZgpNQyxNb25hY28KTU4sTW9uZ29saWEKTVMsTW9udHNlcnJhdApNQSxNb3JvY2NvCk1aLE1vemFtYmlxdWUKTU0sTXlhbm1hcgpOQSxOYW1pYmlhCk5SLE5hdXJ1Ck5QLE5lcGFsCk5MLE5ldGhlcmxhbmRzCkFOLE5ldGhlcmxhbmRzIEFudCBJbGxlcwpOQyxOZXcgQ2FsZWRvbmlhCk5aLE5ldyBaZWFsYW5kCk5JLE5pY2FyYWd1YQpORSxOaWdlcgpORyxOaWdlcmlhCk5VLE5pdWUKTkYsTm9yZm9sayBJc2xhbmQKTVAsTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzCk5PLE5vcndheQpPTSxPbWFuClBLLFBha2lzdGFuClBXLFBhbGF1ClBBLFBhbmFtYQpQRyxQYXB1YSBOZXcgR3VpbmVhClBZLFBhcmFndWF5ClBFLFBlcnUKUEgsUGhpbGlwcGluZXMKUE4sUGl0Y2Fpcm4KUEwsUG9sYW5kClBULFBvcnR1Z2FsClBSLFB1ZXJ0byBSaWNvClFBLFFhdGFyClJFLFJldW5pb24KUk8sUm9tYW5pYQpSVSxSdXNzaWFuIEZlZGVyYXRpb24KUlcsUndhbmRhCktOLFNhaW50IEsgSXR0cyBBbmQgTmV2aXMKTEMsU2FpbnQgTHVjaWEKVkMsU2FpbnQgVmluY2VudCwgVGhlIEdyZW5hZGluZXMKV1MsU2Ftb2EKU00sU2FuIE1hcmlubwpTVCxTYW8gVG9tZSBBbmQgUHJpbmNpcGUKU0EsU2F1ZGkgQXJhYmlhClNOLFNlbmVnYWwKU0MsU2V5Y2hlbGxlcwpTTCxTaWVycmEgTGVvbmUKU0csU2luZ2Fwb3JlClNLLFNsb3Zha2lhIChTbG92YWsgUmVwdWJsaWMpClNJLFNsb3ZlbmlhClNCLFNvbG9tb24gSXNsYW5kcwpTTyxTb21hbGlhClpBLFNvdXRoIEFmcmljYQpHUyxTb3V0aCBHZW9yZ2lhICwgUyBTYW5kd2ljaCBJcy4KRVMsU3BhaW4KTEssU3JpIExhbmthClNILFN0LiBIZWxlbmEKUE0sU3QuIFBpZXJyZSBBbmQgTWlxdWVsb24KU0QsU3VkYW4KU1IsU3VyaW5hbWUKU0osU3ZhbGJhcmQsIEphbiBNYXllbiBJc2xhbmRzClNaLFN3IEF6aWxhbmQKU0UsU3dlZGVuCkNILFN3aXR6ZXJsYW5kClNZLFN5cmlhbiBBcmFiIFJlcHVibGljClRXLFRhaXdhbgpUSixUYWppa2lzdGFuClRaLFRhbnphbmlhLCBVbml0ZWQgUmVwdWJsaWMgT2YKVEgsVGhhaWxhbmQKVEcsVG9nbwpUSyxUb2tlbGF1ClRPLFRvbmdhClRULFRyaW5pZGFkIEFuZCBUb2JhZ28KVE4sVHVuaXNpYQpUUixUdXJrZXkKVE0sVHVya21lbmlzdGFuClRDLFR1cmtzIEFuZCBDYWljb3MgSXNsYW5kcwpUVixUdXZhbHUKVUcsVWdhbmRhClVBLFVrcmFpbmUKQUUsVW5pdGVkIEFyYWIgRW1pcmF0ZXMKR0IsVW5pdGVkIEtpbmdkb20KVVMsVW5pdGVkIFN0YXRlcwpVTSxVbml0ZWQgU3RhdGVzIE1pbm9yIElzLgpVWSxVcnVndWF5ClVaLFV6YmVraXN0YW4KVlUsVmFudWF0dQpWRSxWZW5lenVlbGEKVk4sVmlldCBOYW0KVkcsVmlyZ2luIElzbGFuZHMgKEJyaXRpc2gpClZJLFZpcmdpbiBJc2xhbmRzIChVLlMuKQpXRixXYWxsaXMgQW5kIEZ1dHVuYSBJc2xhbmRzCkVILFdlc3Rlcm4gU2FoYXJhCllFLFllbWVuCllVLFl1Z29zbGF2aWEKWlIsWmFpcmUKWk0sWmFtYmlhClpXLFppbWJhYndlIA==]]></data>
	</file>
	<file>
	  <filename>/currencies.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[QURQLEFuZG9ycmFuIFBlc2V0YQpBRUQsVUFFIERpcmhhbQpBRkEsQWZnaGFuaQpBTEwsTGVrCkFNRCxBcm1lbmlhbiBEcmFtCkFORyxOZXRoZXJsYW5kcyBBbnRpbGxpYW4gR3VpbGRlcgpBT0EsS3dhbnphCkFSUyxBcmdlbnRpbmUgUGVzbwpBVFMsU2NoaWxsaW5nCkFVRCxBdXN0cmFsaWFuIERvbGxhcgpBV0csQXJ1YmFuIEd1aWxkZXIKQVpNLEF6ZXJiYWlqYW5pYW4gTWFuYXQKQkFNLENvbnZlcnRpYmxlIE1hcmtzCkJCRCxCYXJiYWRvcyBEb2xsYXIKQkRULFRha2EKQkVGLEJlbGdpYW4gRnJhbmMKQkdMLExldgpCR04sTGV2CkJIRCxCYWhyYWluaSBEaW5hcgpCSUYsQnVydW5kaSBGcmFuYwpCTUQsQmVybXVkaWFuIERvbGxhciAoY3VzdG9tYXJpbHkga25vd24gYXMgQmVybXVkYSBEb2xsYXIpCkJORCxCcnVuZWkgRG9sbGFyCkJPQixCb2xpdmlhbm8KQk9WLE12ZG9sCkJSTCxCcmF6aWxpYW4gUmVhbApCU0QsQmFoYW1pYW4gRG9sbGFyCkJUTixOZ3VsdHJ1bQpCV1AsUHVsYQpCWUIsQmVsYXJ1c3NpYW4gUnVibGUKQllSLEJlbGFydXNzaWFuIFJ1YmxlCkJaRCxCZWxpemUgRG9sbGFyCkNBRCxDYW5hZGlhbiBEb2xsYXIKQ0hGLFN3aXNzIEZyYW5jCkNMRixVbmlkYWRlcyBkZSBmb21lbnRvCkNMUCxDaGlsZWFuIFBlc28KQ05ZLFl1YW4gUmVubWluYmkKQ09QLENvbG9tYmlhbiBQZXNvCkNSQyxDb3N0YSBSaWNhbiBDb2xvbgpDVVAsQ3ViYW4gUGVzbwpDVkUsQ2FwZSBWZXJkZSBFc2N1ZG8KQ1lQLEN5cHJ1cyBQb3VuZApDWkssQ3plY2ggS29ydW5hCkRFTSxEZXV0c2NoZSBNYXJrCkRKRixEamlib3V0aSBGcmFuYwpES0ssRGFuaXNoIEtyb25lCkRPUCxEb21pbmljYW4gUGVzbwpEWkQsQWxnZXJpYW4gRGluYXIKRUVLLEtyb29uCkVHUCxFZ3lwdGlhbiBQb3VuZApFUk4sTmFrZmEKRVNQLEZyZW5jaCBGcmFuYwpFU1AsU3BhbmlzaCBQZXNldGEKRVRCLEV0aGlvcGlhbiBCaXJyCkVVUixFdXJvCkZJTSxNYXJra2EKRkpELEZpamkgRG9sbGFyCkZLUCxGYWxrbGFuZCBJc2xhbmRzIFBvdW5kCkZSRixGcmVuY2ggRnJhbmMKR0JQLFBvdW5kIFN0ZXJsaW5nCkdFTCxMYXJpCkdIQyxDZWRpCkdJUCxHaWJyYWx0YXIgUG91bmQKR01ELERhbGFzaQpHTkYsR3VpbmVhIEZyYW5jCkdSRCxEcmFjaG1hCkdUUSxRdWV0emFsCkdXUCxHdWluZWEtQmlzc2F1IFBlc28KR1lELEd1eWFuYSBEb2xsYXIKSEtELEhvbmcgS29uZyBEb2xsYXIKSE5MLExlbXBpcmEKSFJLLENyb2F0aWFuIGt1bmEKSFRHLEdvdXJkZQpIVUYsRm9yaW50CklEUixSdXBpYWgKSUVQLElyaXNoIFBvdW5kCklMUyxOZXcgSXNyYWVsaSBTaGVxZWwKSU5SLEluZGlhbiBSdXBlZQpJUUQsSXJhcWkgRGluYXIKSVJSLElyYW5pYW4gUmlhbApJU0ssSWNlbGFuZCBLcm9uYQpJVEwsSXRhbGlhbiBMaXJhCkpNRCxKYW1haWNhbiBEb2xsYXIKSk9ELEpvcmRhbmlhbiBEaW5hcgpKUFksWWVuCktFUyxLZW55YW4gU2hpbGxpbmcKS0dTLFNvbQpLSFIsUmllbApLTUYsQ29tb3JvIEZyYW5jCktXRCxLdXdhaXRpIERpbmFyCktZRCxDYXltYW4gSXNsYW5kcyBEb2xsYXIKS1pULFRlbmdlCkxBSyxLaXAKTEJQLExlYmFuZXNlIFBvdW5kCkxLUixTcmkgTGFua2EgUnVwZWUKTFJELExpYmVyaWFuIERvbGxhcgpMU0wsTG90aQpMVEwsTGl0aHVhbmlhbiBMaXR1cwpMVUYsTHV4ZW1ib3VyZyBGcmFuYwpMVkwsTGF0dmlhbiBMYXRzCkxZRCxMaWJ5YW4gRGluYXIKTUFELE1vcm9jY2FuIERpcmhhbQpNR0YsTWFsYWdhc3kgRnJhbmMKTU1LLEt5YXQKTU5ULFR1Z3JpawpNT1AsUGF0YWNhCk1STyxPdWd1aXlhCk1UTCxNYWx0ZXNlIExpcmEKTVVSLE1hdXJpdGl1cyBSdXBlZQpNVlIsUnVmaXlhYQpNV0ssS3dhY2hhCk1YTixNZXhpY2FuIFBlc28KTVhWLE1leGljYW4gVW5pZGFkIGRlIEludmVyc2lvbiAoVURJKQpNWVIsTWFsYXlzaWFuIFJpbmdnaXQKTVpNLE1ldGljYWwKTkFELE5hbWliaWEgRG9sbGFyCk5HTixOYWlyYQpOSU8sQ29yZG9iYSBPcm8KTkxHLE5ldGhlcmxhbmRzIEd1aWxkZXIKTk9LLE5vcndlZ2lhbiBLcm9uZQpOUFIsTmVwYWxlc2UgUnVwZWUKTlpELE5ldyBaZWFsYW5kIERvbGxhcgpPTVIsUmlhbCBPbWFuaQpQQUIsQmFsYm9hClBFTixOdWV2byBTb2wKUEdLLEtpbmEKUEhQLFBoaWxpcHBpbmUgUGVzbwpQS1IsUGFraXN0YW4gUnVwZWUKUExOLFpsb3R5ClBURSxQb3J0dWd1ZXNlIEVzY3VkbwpQWUcsR3VhcmFuaQpRQVIsUWF0YXJpIFJpYWwKUk9MLExldQpSVUIsUnVzc2lhbiBSdWJsZQpSV0YsUndhbmRhIEZyYW5jClNBUixTYXVkaSBSaXlhbApTQkQsU29sb21vbiBJc2xhbmRzIERvbGxhcgpTQ1IsU2V5Y2hlbGxlcyBSdXBlZQpTREQsU3VkYW5lc2UgRGluYXIKU0VLLFN3ZWRpc2ggS3JvbmEKU0dELFNpbmdhcG9yZSBEb2xsYXIKU0hQLFNhaW50IEhlbGVuYSBQb3VuZApTSVQsVG9sYXIKU0tLLFNsb3ZhayBLb3J1bmEKU0xMLExlb25lClNPUyxTb21hbGkgU2hpbGxpbmcKU1JHLFN1cmluYW1lIEd1aWxkZXIKU1RELERvYnJhClNWQyxFbCBTYWx2YWRvciBDb2xvbgpTWVAsU3lyaWFuIFBvdW5kClNaTCxMaWxhbmdlbmkKVEhCLEJhaHQKVEpSLFRhamlrIFJ1YmxlClRNTSxNYW5hdApUTkQsVHVuaXNpYW4gRGluYXIKVE9QLFBh776SYW5nYQpUUEUsVGltb3IgRXNjdWRvClRSTCxUdXJraXNoIExpcmEKVFRELFRyaW5pZGFkIGFuZCBUb2JhZ28gRG9sbGFyClVBSCxIcnl2bmlhClVHWCxVZ2FuZGEgU2hpbGxpbmcKVVNELFVTIERvbGxhcgpVWVUsUGVzbyBVcnVndWF5bwpVWlMsVXpiZWtpc3RhbiBTdW0KVkVCLEJvbGl2YXIKVk5ELERvbmcKVlVWLFZhdHUKV1NULFRhbGEKWEFGLENGQSBGcmFuYyBCRUFDClhDRCxFYXN0IENhcmliYmVhbiBEb2xsYXIKWERSLFNEUgpYT0YsQ0ZBIEZyYW5jIEJDRUFPClhQRixDRlAgRnJhbmMKWUVSLFllbWVuaSBSaWFsCllVTSxZdWdvc2xhdmlhbiBEaW5hcgpaQVIsUmFuZApaTUssS3dhY2hhClpXRCxaaW1iYWJ3ZSBEb2xsYXIK]]></data>
	</file>
	<file>
	  <filename>/docs/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/docs/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMywgMjkgSnVuZSAyMDA3CgogQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiA8aHR0cDovL2ZzZi5vcmcvPgogRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCiBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVhbWJsZQoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgYSBmcmVlLCBjb3B5bGVmdCBsaWNlbnNlIGZvcgpzb2Z0d2FyZSBhbmQgb3RoZXIga2luZHMgb2Ygd29ya3MuCgogIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhbmQgb3RoZXIgcHJhY3RpY2FsIHdvcmtzIGFyZSBkZXNpZ25lZAp0byB0YWtlIGF3YXkgeW91ciBmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgdGhlIHdvcmtzLiAgQnkgY29udHJhc3QsCnRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBpbnRlbmRlZCB0byBndWFyYW50ZWUgeW91ciBmcmVlZG9tIHRvCnNoYXJlIGFuZCBjaGFuZ2UgYWxsIHZlcnNpb25zIG9mIGEgcHJvZ3JhbS0tdG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgZnJlZQpzb2Z0d2FyZSBmb3IgYWxsIGl0cyB1c2Vycy4gIFdlLCB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB1c2UgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3N0IG9mIG91ciBzb2Z0d2FyZTsgaXQgYXBwbGllcyBhbHNvIHRvCmFueSBvdGhlciB3b3JrIHJlbGVhc2VkIHRoaXMgd2F5IGJ5IGl0cyBhdXRob3JzLiAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoZW0gaWYgeW91IHdpc2gpLCB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQgaWYgeW91CndhbnQgaXQsIHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQgaW4gbmV3CmZyZWUgcHJvZ3JhbXMsIGFuZCB0aGF0IHlvdSBrbm93IHlvdSBjYW4gZG8gdGhlc2UgdGhpbmdzLgoKICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIHByZXZlbnQgb3RoZXJzIGZyb20gZGVueWluZyB5b3UKdGhlc2UgcmlnaHRzIG9yIGFza2luZyB5b3UgdG8gc3VycmVuZGVyIHRoZSByaWdodHMuICBUaGVyZWZvcmUsIHlvdSBoYXZlCmNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlLCBvciBpZgp5b3UgbW9kaWZ5IGl0OiByZXNwb25zaWJpbGl0aWVzIHRvIHJlc3BlY3QgdGhlIGZyZWVkb20gb2Ygb3RoZXJzLgoKICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyCmdyYXRpcyBvciBmb3IgYSBmZWUsIHlvdSBtdXN0IHBhc3Mgb24gdG8gdGhlIHJlY2lwaWVudHMgdGhlIHNhbWUKZnJlZWRvbXMgdGhhdCB5b3UgcmVjZWl2ZWQuICBZb3UgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGV5LCB0b28sIHJlY2VpdmUKb3IgY2FuIGdldCB0aGUgc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkKa25vdyB0aGVpciByaWdodHMuCgogIERldmVsb3BlcnMgdGhhdCB1c2UgdGhlIEdOVSBHUEwgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIHR3byBzdGVwczoKKDEpIGFzc2VydCBjb3B5cmlnaHQgb24gdGhlIHNvZnR3YXJlLCBhbmQgKDIpIG9mZmVyIHlvdSB0aGlzIExpY2Vuc2UKZ2l2aW5nIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSBpdC4KCiAgRm9yIHRoZSBkZXZlbG9wZXJzJyBhbmQgYXV0aG9ycycgcHJvdGVjdGlvbiwgdGhlIEdQTCBjbGVhcmx5IGV4cGxhaW5zCnRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMgZnJlZSBzb2Z0d2FyZS4gIEZvciBib3RoIHVzZXJzJyBhbmQKYXV0aG9ycycgc2FrZSwgdGhlIEdQTCByZXF1aXJlcyB0aGF0IG1vZGlmaWVkIHZlcnNpb25zIGJlIG1hcmtlZCBhcwpjaGFuZ2VkLCBzbyB0aGF0IHRoZWlyIHByb2JsZW1zIHdpbGwgbm90IGJlIGF0dHJpYnV0ZWQgZXJyb25lb3VzbHkgdG8KYXV0aG9ycyBvZiBwcmV2aW91cyB2ZXJzaW9ucy4KCiAgU29tZSBkZXZpY2VzIGFyZSBkZXNpZ25lZCB0byBkZW55IHVzZXJzIGFjY2VzcyB0byBpbnN0YWxsIG9yIHJ1bgptb2RpZmllZCB2ZXJzaW9ucyBvZiB0aGUgc29mdHdhcmUgaW5zaWRlIHRoZW0sIGFsdGhvdWdoIHRoZSBtYW51ZmFjdHVyZXIKY2FuIGRvIHNvLiAgVGhpcyBpcyBmdW5kYW1lbnRhbGx5IGluY29tcGF0aWJsZSB3aXRoIHRoZSBhaW0gb2YKcHJvdGVjdGluZyB1c2VycycgZnJlZWRvbSB0byBjaGFuZ2UgdGhlIHNvZnR3YXJlLiAgVGhlIHN5c3RlbWF0aWMKcGF0dGVybiBvZiBzdWNoIGFidXNlIG9jY3VycyBpbiB0aGUgYXJlYSBvZiBwcm9kdWN0cyBmb3IgaW5kaXZpZHVhbHMgdG8KdXNlLCB3aGljaCBpcyBwcmVjaXNlbHkgd2hlcmUgaXQgaXMgbW9zdCB1bmFjY2VwdGFibGUuICBUaGVyZWZvcmUsIHdlCmhhdmUgZGVzaWduZWQgdGhpcyB2ZXJzaW9uIG9mIHRoZSBHUEwgdG8gcHJvaGliaXQgdGhlIHByYWN0aWNlIGZvciB0aG9zZQpwcm9kdWN0cy4gIElmIHN1Y2ggcHJvYmxlbXMgYXJpc2Ugc3Vic3RhbnRpYWxseSBpbiBvdGhlciBkb21haW5zLCB3ZQpzdGFuZCByZWFkeSB0byBleHRlbmQgdGhpcyBwcm92aXNpb24gdG8gdGhvc2UgZG9tYWlucyBpbiBmdXR1cmUgdmVyc2lvbnMKb2YgdGhlIEdQTCwgYXMgbmVlZGVkIHRvIHByb3RlY3QgdGhlIGZyZWVkb20gb2YgdXNlcnMuCgogIEZpbmFsbHksIGV2ZXJ5IHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlIHBhdGVudHMuClN0YXRlcyBzaG91bGQgbm90IGFsbG93IHBhdGVudHMgdG8gcmVzdHJpY3QgZGV2ZWxvcG1lbnQgYW5kIHVzZSBvZgpzb2Z0d2FyZSBvbiBnZW5lcmFsLXB1cnBvc2UgY29tcHV0ZXJzLCBidXQgaW4gdGhvc2UgdGhhdCBkbywgd2Ugd2lzaCB0bwphdm9pZCB0aGUgc3BlY2lhbCBkYW5nZXIgdGhhdCBwYXRlbnRzIGFwcGxpZWQgdG8gYSBmcmVlIHByb2dyYW0gY291bGQKbWFrZSBpdCBlZmZlY3RpdmVseSBwcm9wcmlldGFyeS4gIFRvIHByZXZlbnQgdGhpcywgdGhlIEdQTCBhc3N1cmVzIHRoYXQKcGF0ZW50cyBjYW5ub3QgYmUgdXNlZCB0byByZW5kZXIgdGhlIHByb2dyYW0gbm9uLWZyZWUuCgogIFRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kCm1vZGlmaWNhdGlvbiBmb2xsb3cuCgogICAgICAgICAgICAgICAgICAgICAgIFRFUk1TIEFORCBDT05ESVRJT05TCgogIDAuIERlZmluaXRpb25zLgoKICAiVGhpcyBMaWNlbnNlIiByZWZlcnMgdG8gdmVyc2lvbiAzIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KCiAgIkNvcHlyaWdodCIgYWxzbyBtZWFucyBjb3B5cmlnaHQtbGlrZSBsYXdzIHRoYXQgYXBwbHkgdG8gb3RoZXIga2luZHMgb2YKd29ya3MsIHN1Y2ggYXMgc2VtaWNvbmR1Y3RvciBtYXNrcy4KCiAgIlRoZSBQcm9ncmFtIiByZWZlcnMgdG8gYW55IGNvcHlyaWdodGFibGUgd29yayBsaWNlbnNlZCB1bmRlciB0aGlzCkxpY2Vuc2UuICBFYWNoIGxpY2Vuc2VlIGlzIGFkZHJlc3NlZCBhcyAieW91Ii4gICJMaWNlbnNlZXMiIGFuZAoicmVjaXBpZW50cyIgbWF5IGJlIGluZGl2aWR1YWxzIG9yIG9yZ2FuaXphdGlvbnMuCgogIFRvICJtb2RpZnkiIGEgd29yayBtZWFucyB0byBjb3B5IGZyb20gb3IgYWRhcHQgYWxsIG9yIHBhcnQgb2YgdGhlIHdvcmsKaW4gYSBmYXNoaW9uIHJlcXVpcmluZyBjb3B5cmlnaHQgcGVybWlzc2lvbiwgb3RoZXIgdGhhbiB0aGUgbWFraW5nIG9mIGFuCmV4YWN0IGNvcHkuICBUaGUgcmVzdWx0aW5nIHdvcmsgaXMgY2FsbGVkIGEgIm1vZGlmaWVkIHZlcnNpb24iIG9mIHRoZQplYXJsaWVyIHdvcmsgb3IgYSB3b3JrICJiYXNlZCBvbiIgdGhlIGVhcmxpZXIgd29yay4KCiAgQSAiY292ZXJlZCB3b3JrIiBtZWFucyBlaXRoZXIgdGhlIHVubW9kaWZpZWQgUHJvZ3JhbSBvciBhIHdvcmsgYmFzZWQKb24gdGhlIFByb2dyYW0uCgogIFRvICJwcm9wYWdhdGUiIGEgd29yayBtZWFucyB0byBkbyBhbnl0aGluZyB3aXRoIGl0IHRoYXQsIHdpdGhvdXQKcGVybWlzc2lvbiwgd291bGQgbWFrZSB5b3UgZGlyZWN0bHkgb3Igc2Vjb25kYXJpbHkgbGlhYmxlIGZvcgppbmZyaW5nZW1lbnQgdW5kZXIgYXBwbGljYWJsZSBjb3B5cmlnaHQgbGF3LCBleGNlcHQgZXhlY3V0aW5nIGl0IG9uIGEKY29tcHV0ZXIgb3IgbW9kaWZ5aW5nIGEgcHJpdmF0ZSBjb3B5LiAgUHJvcGFnYXRpb24gaW5jbHVkZXMgY29weWluZywKZGlzdHJpYnV0aW9uICh3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uKSwgbWFraW5nIGF2YWlsYWJsZSB0byB0aGUKcHVibGljLCBhbmQgaW4gc29tZSBjb3VudHJpZXMgb3RoZXIgYWN0aXZpdGllcyBhcyB3ZWxsLgoKICBUbyAiY29udmV5IiBhIHdvcmsgbWVhbnMgYW55IGtpbmQgb2YgcHJvcGFnYXRpb24gdGhhdCBlbmFibGVzIG90aGVyCnBhcnRpZXMgdG8gbWFrZSBvciByZWNlaXZlIGNvcGllcy4gIE1lcmUgaW50ZXJhY3Rpb24gd2l0aCBhIHVzZXIgdGhyb3VnaAphIGNvbXB1dGVyIG5ldHdvcmssIHdpdGggbm8gdHJhbnNmZXIgb2YgYSBjb3B5LCBpcyBub3QgY29udmV5aW5nLgoKICBBbiBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZSBkaXNwbGF5cyAiQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcyIKdG8gdGhlIGV4dGVudCB0aGF0IGl0IGluY2x1ZGVzIGEgY29udmVuaWVudCBhbmQgcHJvbWluZW50bHkgdmlzaWJsZQpmZWF0dXJlIHRoYXQgKDEpIGRpc3BsYXlzIGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UsIGFuZCAoMikKdGVsbHMgdGhlIHVzZXIgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhlIHdvcmsgKGV4Y2VwdCB0byB0aGUKZXh0ZW50IHRoYXQgd2FycmFudGllcyBhcmUgcHJvdmlkZWQpLCB0aGF0IGxpY2Vuc2VlcyBtYXkgY29udmV5IHRoZQp3b3JrIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIGhvdyB0byB2aWV3IGEgY29weSBvZiB0aGlzIExpY2Vuc2UuICBJZgp0aGUgaW50ZXJmYWNlIHByZXNlbnRzIGEgbGlzdCBvZiB1c2VyIGNvbW1hbmRzIG9yIG9wdGlvbnMsIHN1Y2ggYXMgYQptZW51LCBhIHByb21pbmVudCBpdGVtIGluIHRoZSBsaXN0IG1lZXRzIHRoaXMgY3JpdGVyaW9uLgoKICAxLiBTb3VyY2UgQ29kZS4KCiAgVGhlICJzb3VyY2UgY29kZSIgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsKZm9yIG1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgIk9iamVjdCBjb2RlIiBtZWFucyBhbnkgbm9uLXNvdXJjZQpmb3JtIG9mIGEgd29yay4KCiAgQSAiU3RhbmRhcmQgSW50ZXJmYWNlIiBtZWFucyBhbiBpbnRlcmZhY2UgdGhhdCBlaXRoZXIgaXMgYW4gb2ZmaWNpYWwKc3RhbmRhcmQgZGVmaW5lZCBieSBhIHJlY29nbml6ZWQgc3RhbmRhcmRzIGJvZHksIG9yLCBpbiB0aGUgY2FzZSBvZgppbnRlcmZhY2VzIHNwZWNpZmllZCBmb3IgYSBwYXJ0aWN1bGFyIHByb2dyYW1taW5nIGxhbmd1YWdlLCBvbmUgdGhhdAppcyB3aWRlbHkgdXNlZCBhbW9uZyBkZXZlbG9wZXJzIHdvcmtpbmcgaW4gdGhhdCBsYW5ndWFnZS4KCiAgVGhlICJTeXN0ZW0gTGlicmFyaWVzIiBvZiBhbiBleGVjdXRhYmxlIHdvcmsgaW5jbHVkZSBhbnl0aGluZywgb3RoZXIKdGhhbiB0aGUgd29yayBhcyBhIHdob2xlLCB0aGF0IChhKSBpcyBpbmNsdWRlZCBpbiB0aGUgbm9ybWFsIGZvcm0gb2YKcGFja2FnaW5nIGEgTWFqb3IgQ29tcG9uZW50LCBidXQgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhhdCBNYWpvcgpDb21wb25lbnQsIGFuZCAoYikgc2VydmVzIG9ubHkgdG8gZW5hYmxlIHVzZSBvZiB0aGUgd29yayB3aXRoIHRoYXQKTWFqb3IgQ29tcG9uZW50LCBvciB0byBpbXBsZW1lbnQgYSBTdGFuZGFyZCBJbnRlcmZhY2UgZm9yIHdoaWNoIGFuCmltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluIHNvdXJjZSBjb2RlIGZvcm0uICBBCiJNYWpvciBDb21wb25lbnQiLCBpbiB0aGlzIGNvbnRleHQsIG1lYW5zIGEgbWFqb3IgZXNzZW50aWFsIGNvbXBvbmVudAooa2VybmVsLCB3aW5kb3cgc3lzdGVtLCBhbmQgc28gb24pIG9mIHRoZSBzcGVjaWZpYyBvcGVyYXRpbmcgc3lzdGVtCihpZiBhbnkpIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHdvcmsgcnVucywgb3IgYSBjb21waWxlciB1c2VkIHRvCnByb2R1Y2UgdGhlIHdvcmssIG9yIGFuIG9iamVjdCBjb2RlIGludGVycHJldGVyIHVzZWQgdG8gcnVuIGl0LgoKICBUaGUgIkNvcnJlc3BvbmRpbmcgU291cmNlIiBmb3IgYSB3b3JrIGluIG9iamVjdCBjb2RlIGZvcm0gbWVhbnMgYWxsCnRoZSBzb3VyY2UgY29kZSBuZWVkZWQgdG8gZ2VuZXJhdGUsIGluc3RhbGwsIGFuZCAoZm9yIGFuIGV4ZWN1dGFibGUKd29yaykgcnVuIHRoZSBvYmplY3QgY29kZSBhbmQgdG8gbW9kaWZ5IHRoZSB3b3JrLCBpbmNsdWRpbmcgc2NyaXB0cyB0bwpjb250cm9sIHRob3NlIGFjdGl2aXRpZXMuICBIb3dldmVyLCBpdCBkb2VzIG5vdCBpbmNsdWRlIHRoZSB3b3JrJ3MKU3lzdGVtIExpYnJhcmllcywgb3IgZ2VuZXJhbC1wdXJwb3NlIHRvb2xzIG9yIGdlbmVyYWxseSBhdmFpbGFibGUgZnJlZQpwcm9ncmFtcyB3aGljaCBhcmUgdXNlZCB1bm1vZGlmaWVkIGluIHBlcmZvcm1pbmcgdGhvc2UgYWN0aXZpdGllcyBidXQKd2hpY2ggYXJlIG5vdCBwYXJ0IG9mIHRoZSB3b3JrLiAgRm9yIGV4YW1wbGUsIENvcnJlc3BvbmRpbmcgU291cmNlCmluY2x1ZGVzIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBzb3VyY2UgZmlsZXMgZm9yCnRoZSB3b3JrLCBhbmQgdGhlIHNvdXJjZSBjb2RlIGZvciBzaGFyZWQgbGlicmFyaWVzIGFuZCBkeW5hbWljYWxseQpsaW5rZWQgc3VicHJvZ3JhbXMgdGhhdCB0aGUgd29yayBpcyBzcGVjaWZpY2FsbHkgZGVzaWduZWQgdG8gcmVxdWlyZSwKc3VjaCBhcyBieSBpbnRpbWF0ZSBkYXRhIGNvbW11bmljYXRpb24gb3IgY29udHJvbCBmbG93IGJldHdlZW4gdGhvc2UKc3VicHJvZ3JhbXMgYW5kIG90aGVyIHBhcnRzIG9mIHRoZSB3b3JrLgoKICBUaGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgbmVlZCBub3QgaW5jbHVkZSBhbnl0aGluZyB0aGF0IHVzZXJzCmNhbiByZWdlbmVyYXRlIGF1dG9tYXRpY2FsbHkgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgQ29ycmVzcG9uZGluZwpTb3VyY2UuCgogIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBmb3IgYSB3b3JrIGluIHNvdXJjZSBjb2RlIGZvcm0gaXMgdGhhdApzYW1lIHdvcmsuCgogIDIuIEJhc2ljIFBlcm1pc3Npb25zLgoKICBBbGwgcmlnaHRzIGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlIGFyZSBncmFudGVkIGZvciB0aGUgdGVybSBvZgpjb3B5cmlnaHQgb24gdGhlIFByb2dyYW0sIGFuZCBhcmUgaXJyZXZvY2FibGUgcHJvdmlkZWQgdGhlIHN0YXRlZApjb25kaXRpb25zIGFyZSBtZXQuICBUaGlzIExpY2Vuc2UgZXhwbGljaXRseSBhZmZpcm1zIHlvdXIgdW5saW1pdGVkCnBlcm1pc3Npb24gdG8gcnVuIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0uICBUaGUgb3V0cHV0IGZyb20gcnVubmluZyBhCmNvdmVyZWQgd29yayBpcyBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZSBvbmx5IGlmIHRoZSBvdXRwdXQsIGdpdmVuIGl0cwpjb250ZW50LCBjb25zdGl0dXRlcyBhIGNvdmVyZWQgd29yay4gIFRoaXMgTGljZW5zZSBhY2tub3dsZWRnZXMgeW91cgpyaWdodHMgb2YgZmFpciB1c2Ugb3Igb3RoZXIgZXF1aXZhbGVudCwgYXMgcHJvdmlkZWQgYnkgY29weXJpZ2h0IGxhdy4KCiAgWW91IG1heSBtYWtlLCBydW4gYW5kIHByb3BhZ2F0ZSBjb3ZlcmVkIHdvcmtzIHRoYXQgeW91IGRvIG5vdApjb252ZXksIHdpdGhvdXQgY29uZGl0aW9ucyBzbyBsb25nIGFzIHlvdXIgbGljZW5zZSBvdGhlcndpc2UgcmVtYWlucwppbiBmb3JjZS4gIFlvdSBtYXkgY29udmV5IGNvdmVyZWQgd29ya3MgdG8gb3RoZXJzIGZvciB0aGUgc29sZSBwdXJwb3NlCm9mIGhhdmluZyB0aGVtIG1ha2UgbW9kaWZpY2F0aW9ucyBleGNsdXNpdmVseSBmb3IgeW91LCBvciBwcm92aWRlIHlvdQp3aXRoIGZhY2lsaXRpZXMgZm9yIHJ1bm5pbmcgdGhvc2Ugd29ya3MsIHByb3ZpZGVkIHRoYXQgeW91IGNvbXBseSB3aXRoCnRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UgaW4gY29udmV5aW5nIGFsbCBtYXRlcmlhbCBmb3Igd2hpY2ggeW91IGRvCm5vdCBjb250cm9sIGNvcHlyaWdodC4gIFRob3NlIHRodXMgbWFraW5nIG9yIHJ1bm5pbmcgdGhlIGNvdmVyZWQgd29ya3MKZm9yIHlvdSBtdXN0IGRvIHNvIGV4Y2x1c2l2ZWx5IG9uIHlvdXIgYmVoYWxmLCB1bmRlciB5b3VyIGRpcmVjdGlvbgphbmQgY29udHJvbCwgb24gdGVybXMgdGhhdCBwcm9oaWJpdCB0aGVtIGZyb20gbWFraW5nIGFueSBjb3BpZXMgb2YKeW91ciBjb3B5cmlnaHRlZCBtYXRlcmlhbCBvdXRzaWRlIHRoZWlyIHJlbGF0aW9uc2hpcCB3aXRoIHlvdS4KCiAgQ29udmV5aW5nIHVuZGVyIGFueSBvdGhlciBjaXJjdW1zdGFuY2VzIGlzIHBlcm1pdHRlZCBzb2xlbHkgdW5kZXIKdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGJlbG93LiAgU3VibGljZW5zaW5nIGlzIG5vdCBhbGxvd2VkOyBzZWN0aW9uIDEwCm1ha2VzIGl0IHVubmVjZXNzYXJ5LgoKICAzLiBQcm90ZWN0aW5nIFVzZXJzJyBMZWdhbCBSaWdodHMgRnJvbSBBbnRpLUNpcmN1bXZlbnRpb24gTGF3LgoKICBObyBjb3ZlcmVkIHdvcmsgc2hhbGwgYmUgZGVlbWVkIHBhcnQgb2YgYW4gZWZmZWN0aXZlIHRlY2hub2xvZ2ljYWwKbWVhc3VyZSB1bmRlciBhbnkgYXBwbGljYWJsZSBsYXcgZnVsZmlsbGluZyBvYmxpZ2F0aW9ucyB1bmRlciBhcnRpY2xlCjExIG9mIHRoZSBXSVBPIGNvcHlyaWdodCB0cmVhdHkgYWRvcHRlZCBvbiAyMCBEZWNlbWJlciAxOTk2LCBvcgpzaW1pbGFyIGxhd3MgcHJvaGliaXRpbmcgb3IgcmVzdHJpY3RpbmcgY2lyY3VtdmVudGlvbiBvZiBzdWNoCm1lYXN1cmVzLgoKICBXaGVuIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIHlvdSB3YWl2ZSBhbnkgbGVnYWwgcG93ZXIgdG8gZm9yYmlkCmNpcmN1bXZlbnRpb24gb2YgdGVjaG5vbG9naWNhbCBtZWFzdXJlcyB0byB0aGUgZXh0ZW50IHN1Y2ggY2lyY3VtdmVudGlvbgppcyBlZmZlY3RlZCBieSBleGVyY2lzaW5nIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2Ugd2l0aCByZXNwZWN0IHRvCnRoZSBjb3ZlcmVkIHdvcmssIGFuZCB5b3UgZGlzY2xhaW0gYW55IGludGVudGlvbiB0byBsaW1pdCBvcGVyYXRpb24gb3IKbW9kaWZpY2F0aW9uIG9mIHRoZSB3b3JrIGFzIGEgbWVhbnMgb2YgZW5mb3JjaW5nLCBhZ2FpbnN0IHRoZSB3b3JrJ3MKdXNlcnMsIHlvdXIgb3IgdGhpcmQgcGFydGllcycgbGVnYWwgcmlnaHRzIHRvIGZvcmJpZCBjaXJjdW12ZW50aW9uIG9mCnRlY2hub2xvZ2ljYWwgbWVhc3VyZXMuCgogIDQuIENvbnZleWluZyBWZXJiYXRpbSBDb3BpZXMuCgogIFlvdSBtYXkgY29udmV5IHZlcmJhdGltIGNvcGllcyBvZiB0aGUgUHJvZ3JhbSdzIHNvdXJjZSBjb2RlIGFzIHlvdQpyZWNlaXZlIGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdSBjb25zcGljdW91c2x5IGFuZAphcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2U7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIHN0YXRpbmcgdGhhdCB0aGlzIExpY2Vuc2UgYW5kIGFueQpub24tcGVybWlzc2l2ZSB0ZXJtcyBhZGRlZCBpbiBhY2NvcmQgd2l0aCBzZWN0aW9uIDcgYXBwbHkgdG8gdGhlIGNvZGU7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIG9mIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsgYW5kIGdpdmUgYWxsCnJlY2lwaWVudHMgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBQcm9ncmFtLgoKICBZb3UgbWF5IGNoYXJnZSBhbnkgcHJpY2Ugb3Igbm8gcHJpY2UgZm9yIGVhY2ggY29weSB0aGF0IHlvdSBjb252ZXksCmFuZCB5b3UgbWF5IG9mZmVyIHN1cHBvcnQgb3Igd2FycmFudHkgcHJvdGVjdGlvbiBmb3IgYSBmZWUuCgogIDUuIENvbnZleWluZyBNb2RpZmllZCBTb3VyY2UgVmVyc2lvbnMuCgogIFlvdSBtYXkgY29udmV5IGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSwgb3IgdGhlIG1vZGlmaWNhdGlvbnMgdG8KcHJvZHVjZSBpdCBmcm9tIHRoZSBQcm9ncmFtLCBpbiB0aGUgZm9ybSBvZiBzb3VyY2UgY29kZSB1bmRlciB0aGUKdGVybXMgb2Ygc2VjdGlvbiA0LCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgeW91IG1vZGlmaWVkCiAgICBpdCwgYW5kIGdpdmluZyBhIHJlbGV2YW50IGRhdGUuCgogICAgYikgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgaXQgaXMKICAgIHJlbGVhc2VkIHVuZGVyIHRoaXMgTGljZW5zZSBhbmQgYW55IGNvbmRpdGlvbnMgYWRkZWQgdW5kZXIgc2VjdGlvbgogICAgNy4gIFRoaXMgcmVxdWlyZW1lbnQgbW9kaWZpZXMgdGhlIHJlcXVpcmVtZW50IGluIHNlY3Rpb24gNCB0bwogICAgImtlZXAgaW50YWN0IGFsbCBub3RpY2VzIi4KCiAgICBjKSBZb3UgbXVzdCBsaWNlbnNlIHRoZSBlbnRpcmUgd29yaywgYXMgYSB3aG9sZSwgdW5kZXIgdGhpcwogICAgTGljZW5zZSB0byBhbnlvbmUgd2hvIGNvbWVzIGludG8gcG9zc2Vzc2lvbiBvZiBhIGNvcHkuICBUaGlzCiAgICBMaWNlbnNlIHdpbGwgdGhlcmVmb3JlIGFwcGx5LCBhbG9uZyB3aXRoIGFueSBhcHBsaWNhYmxlIHNlY3Rpb24gNwogICAgYWRkaXRpb25hbCB0ZXJtcywgdG8gdGhlIHdob2xlIG9mIHRoZSB3b3JrLCBhbmQgYWxsIGl0cyBwYXJ0cywKICAgIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZXkgYXJlIHBhY2thZ2VkLiAgVGhpcyBMaWNlbnNlIGdpdmVzIG5vCiAgICBwZXJtaXNzaW9uIHRvIGxpY2Vuc2UgdGhlIHdvcmsgaW4gYW55IG90aGVyIHdheSwgYnV0IGl0IGRvZXMgbm90CiAgICBpbnZhbGlkYXRlIHN1Y2ggcGVybWlzc2lvbiBpZiB5b3UgaGF2ZSBzZXBhcmF0ZWx5IHJlY2VpdmVkIGl0LgoKICAgIGQpIElmIHRoZSB3b3JrIGhhcyBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZXMsIGVhY2ggbXVzdCBkaXNwbGF5CiAgICBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzOyBob3dldmVyLCBpZiB0aGUgUHJvZ3JhbSBoYXMgaW50ZXJhY3RpdmUKICAgIGludGVyZmFjZXMgdGhhdCBkbyBub3QgZGlzcGxheSBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzLCB5b3VyCiAgICB3b3JrIG5lZWQgbm90IG1ha2UgdGhlbSBkbyBzby4KCiAgQSBjb21waWxhdGlvbiBvZiBhIGNvdmVyZWQgd29yayB3aXRoIG90aGVyIHNlcGFyYXRlIGFuZCBpbmRlcGVuZGVudAp3b3Jrcywgd2hpY2ggYXJlIG5vdCBieSB0aGVpciBuYXR1cmUgZXh0ZW5zaW9ucyBvZiB0aGUgY292ZXJlZCB3b3JrLAphbmQgd2hpY2ggYXJlIG5vdCBjb21iaW5lZCB3aXRoIGl0IHN1Y2ggYXMgdG8gZm9ybSBhIGxhcmdlciBwcm9ncmFtLAppbiBvciBvbiBhIHZvbHVtZSBvZiBhIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSwgaXMgY2FsbGVkIGFuCiJhZ2dyZWdhdGUiIGlmIHRoZSBjb21waWxhdGlvbiBhbmQgaXRzIHJlc3VsdGluZyBjb3B5cmlnaHQgYXJlIG5vdAp1c2VkIHRvIGxpbWl0IHRoZSBhY2Nlc3Mgb3IgbGVnYWwgcmlnaHRzIG9mIHRoZSBjb21waWxhdGlvbidzIHVzZXJzCmJleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsIHdvcmtzIHBlcm1pdC4gIEluY2x1c2lvbiBvZiBhIGNvdmVyZWQgd29yawppbiBhbiBhZ2dyZWdhdGUgZG9lcyBub3QgY2F1c2UgdGhpcyBMaWNlbnNlIHRvIGFwcGx5IHRvIHRoZSBvdGhlcgpwYXJ0cyBvZiB0aGUgYWdncmVnYXRlLgoKICA2LiBDb252ZXlpbmcgTm9uLVNvdXJjZSBGb3Jtcy4KCiAgWW91IG1heSBjb252ZXkgYSBjb3ZlcmVkIHdvcmsgaW4gb2JqZWN0IGNvZGUgZm9ybSB1bmRlciB0aGUgdGVybXMKb2Ygc2VjdGlvbnMgNCBhbmQgNSwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBjb252ZXkgdGhlCm1hY2hpbmUtcmVhZGFibGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSwKaW4gb25lIG9mIHRoZXNlIHdheXM6CgogICAgYSkgQ29udmV5IHRoZSBvYmplY3QgY29kZSBpbiwgb3IgZW1ib2RpZWQgaW4sIGEgcGh5c2ljYWwgcHJvZHVjdAogICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGZpeGVkIG9uIGEgZHVyYWJsZSBwaHlzaWNhbCBtZWRpdW0KICAgIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLgoKICAgIGIpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsIHByb2R1Y3QKICAgIChpbmNsdWRpbmcgYSBwaHlzaWNhbCBkaXN0cmlidXRpb24gbWVkaXVtKSwgYWNjb21wYW5pZWQgYnkgYQogICAgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlIHllYXJzIGFuZCB2YWxpZCBmb3IgYXMKICAgIGxvbmcgYXMgeW91IG9mZmVyIHNwYXJlIHBhcnRzIG9yIGN1c3RvbWVyIHN1cHBvcnQgZm9yIHRoYXQgcHJvZHVjdAogICAgbW9kZWwsIHRvIGdpdmUgYW55b25lIHdobyBwb3NzZXNzZXMgdGhlIG9iamVjdCBjb2RlIGVpdGhlciAoMSkgYQogICAgY29weSBvZiB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgZm9yIGFsbCB0aGUgc29mdHdhcmUgaW4gdGhlCiAgICBwcm9kdWN0IHRoYXQgaXMgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UsIG9uIGEgZHVyYWJsZSBwaHlzaWNhbAogICAgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLCBmb3IgYSBwcmljZSBubwogICAgbW9yZSB0aGFuIHlvdXIgcmVhc29uYWJsZSBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9ybWluZyB0aGlzCiAgICBjb252ZXlpbmcgb2Ygc291cmNlLCBvciAoMikgYWNjZXNzIHRvIGNvcHkgdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBmcm9tIGEgbmV0d29yayBzZXJ2ZXIgYXQgbm8gY2hhcmdlLgoKICAgIGMpIENvbnZleSBpbmRpdmlkdWFsIGNvcGllcyBvZiB0aGUgb2JqZWN0IGNvZGUgd2l0aCBhIGNvcHkgb2YgdGhlCiAgICB3cml0dGVuIG9mZmVyIHRvIHByb3ZpZGUgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhpcwogICAgYWx0ZXJuYXRpdmUgaXMgYWxsb3dlZCBvbmx5IG9jY2FzaW9uYWxseSBhbmQgbm9uY29tbWVyY2lhbGx5LCBhbmQKICAgIG9ubHkgaWYgeW91IHJlY2VpdmVkIHRoZSBvYmplY3QgY29kZSB3aXRoIHN1Y2ggYW4gb2ZmZXIsIGluIGFjY29yZAogICAgd2l0aCBzdWJzZWN0aW9uIDZiLgoKICAgIGQpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgYnkgb2ZmZXJpbmcgYWNjZXNzIGZyb20gYSBkZXNpZ25hdGVkCiAgICBwbGFjZSAoZ3JhdGlzIG9yIGZvciBhIGNoYXJnZSksIGFuZCBvZmZlciBlcXVpdmFsZW50IGFjY2VzcyB0byB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGluIHRoZSBzYW1lIHdheSB0aHJvdWdoIHRoZSBzYW1lIHBsYWNlIGF0IG5vCiAgICBmdXJ0aGVyIGNoYXJnZS4gIFlvdSBuZWVkIG5vdCByZXF1aXJlIHJlY2lwaWVudHMgdG8gY29weSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLiAgSWYgdGhlIHBsYWNlIHRvCiAgICBjb3B5IHRoZSBvYmplY3QgY29kZSBpcyBhIG5ldHdvcmsgc2VydmVyLCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UKICAgIG1heSBiZSBvbiBhIGRpZmZlcmVudCBzZXJ2ZXIgKG9wZXJhdGVkIGJ5IHlvdSBvciBhIHRoaXJkIHBhcnR5KQogICAgdGhhdCBzdXBwb3J0cyBlcXVpdmFsZW50IGNvcHlpbmcgZmFjaWxpdGllcywgcHJvdmlkZWQgeW91IG1haW50YWluCiAgICBjbGVhciBkaXJlY3Rpb25zIG5leHQgdG8gdGhlIG9iamVjdCBjb2RlIHNheWluZyB3aGVyZSB0byBmaW5kIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBSZWdhcmRsZXNzIG9mIHdoYXQgc2VydmVyIGhvc3RzIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UsIHlvdSByZW1haW4gb2JsaWdhdGVkIHRvIGVuc3VyZSB0aGF0IGl0IGlzCiAgICBhdmFpbGFibGUgZm9yIGFzIGxvbmcgYXMgbmVlZGVkIHRvIHNhdGlzZnkgdGhlc2UgcmVxdWlyZW1lbnRzLgoKICAgIGUpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgdXNpbmcgcGVlci10by1wZWVyIHRyYW5zbWlzc2lvbiwgcHJvdmlkZWQKICAgIHlvdSBpbmZvcm0gb3RoZXIgcGVlcnMgd2hlcmUgdGhlIG9iamVjdCBjb2RlIGFuZCBDb3JyZXNwb25kaW5nCiAgICBTb3VyY2Ugb2YgdGhlIHdvcmsgYXJlIGJlaW5nIG9mZmVyZWQgdG8gdGhlIGdlbmVyYWwgcHVibGljIGF0IG5vCiAgICBjaGFyZ2UgdW5kZXIgc3Vic2VjdGlvbiA2ZC4KCiAgQSBzZXBhcmFibGUgcG9ydGlvbiBvZiB0aGUgb2JqZWN0IGNvZGUsIHdob3NlIHNvdXJjZSBjb2RlIGlzIGV4Y2x1ZGVkCmZyb20gdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIGFzIGEgU3lzdGVtIExpYnJhcnksIG5lZWQgbm90IGJlCmluY2x1ZGVkIGluIGNvbnZleWluZyB0aGUgb2JqZWN0IGNvZGUgd29yay4KCiAgQSAiVXNlciBQcm9kdWN0IiBpcyBlaXRoZXIgKDEpIGEgImNvbnN1bWVyIHByb2R1Y3QiLCB3aGljaCBtZWFucyBhbnkKdGFuZ2libGUgcGVyc29uYWwgcHJvcGVydHkgd2hpY2ggaXMgbm9ybWFsbHkgdXNlZCBmb3IgcGVyc29uYWwsIGZhbWlseSwKb3IgaG91c2Vob2xkIHB1cnBvc2VzLCBvciAoMikgYW55dGhpbmcgZGVzaWduZWQgb3Igc29sZCBmb3IgaW5jb3Jwb3JhdGlvbgppbnRvIGEgZHdlbGxpbmcuICBJbiBkZXRlcm1pbmluZyB3aGV0aGVyIGEgcHJvZHVjdCBpcyBhIGNvbnN1bWVyIHByb2R1Y3QsCmRvdWJ0ZnVsIGNhc2VzIHNoYWxsIGJlIHJlc29sdmVkIGluIGZhdm9yIG9mIGNvdmVyYWdlLiAgRm9yIGEgcGFydGljdWxhcgpwcm9kdWN0IHJlY2VpdmVkIGJ5IGEgcGFydGljdWxhciB1c2VyLCAibm9ybWFsbHkgdXNlZCIgcmVmZXJzIHRvIGEKdHlwaWNhbCBvciBjb21tb24gdXNlIG9mIHRoYXQgY2xhc3Mgb2YgcHJvZHVjdCwgcmVnYXJkbGVzcyBvZiB0aGUgc3RhdHVzCm9mIHRoZSBwYXJ0aWN1bGFyIHVzZXIgb3Igb2YgdGhlIHdheSBpbiB3aGljaCB0aGUgcGFydGljdWxhciB1c2VyCmFjdHVhbGx5IHVzZXMsIG9yIGV4cGVjdHMgb3IgaXMgZXhwZWN0ZWQgdG8gdXNlLCB0aGUgcHJvZHVjdC4gIEEgcHJvZHVjdAppcyBhIGNvbnN1bWVyIHByb2R1Y3QgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBwcm9kdWN0IGhhcyBzdWJzdGFudGlhbApjb21tZXJjaWFsLCBpbmR1c3RyaWFsIG9yIG5vbi1jb25zdW1lciB1c2VzLCB1bmxlc3Mgc3VjaCB1c2VzIHJlcHJlc2VudAp0aGUgb25seSBzaWduaWZpY2FudCBtb2RlIG9mIHVzZSBvZiB0aGUgcHJvZHVjdC4KCiAgIkluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiIgZm9yIGEgVXNlciBQcm9kdWN0IG1lYW5zIGFueSBtZXRob2RzLApwcm9jZWR1cmVzLCBhdXRob3JpemF0aW9uIGtleXMsIG9yIG90aGVyIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIGluc3RhbGwKYW5kIGV4ZWN1dGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YgYSBjb3ZlcmVkIHdvcmsgaW4gdGhhdCBVc2VyIFByb2R1Y3QgZnJvbQphIG1vZGlmaWVkIHZlcnNpb24gb2YgaXRzIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhlIGluZm9ybWF0aW9uIG11c3QKc3VmZmljZSB0byBlbnN1cmUgdGhhdCB0aGUgY29udGludWVkIGZ1bmN0aW9uaW5nIG9mIHRoZSBtb2RpZmllZCBvYmplY3QKY29kZSBpcyBpbiBubyBjYXNlIHByZXZlbnRlZCBvciBpbnRlcmZlcmVkIHdpdGggc29sZWx5IGJlY2F1c2UKbW9kaWZpY2F0aW9uIGhhcyBiZWVuIG1hZGUuCgogIElmIHlvdSBjb252ZXkgYW4gb2JqZWN0IGNvZGUgd29yayB1bmRlciB0aGlzIHNlY3Rpb24gaW4sIG9yIHdpdGgsIG9yCnNwZWNpZmljYWxseSBmb3IgdXNlIGluLCBhIFVzZXIgUHJvZHVjdCwgYW5kIHRoZSBjb252ZXlpbmcgb2NjdXJzIGFzCnBhcnQgb2YgYSB0cmFuc2FjdGlvbiBpbiB3aGljaCB0aGUgcmlnaHQgb2YgcG9zc2Vzc2lvbiBhbmQgdXNlIG9mIHRoZQpVc2VyIFByb2R1Y3QgaXMgdHJhbnNmZXJyZWQgdG8gdGhlIHJlY2lwaWVudCBpbiBwZXJwZXR1aXR5IG9yIGZvciBhCmZpeGVkIHRlcm0gKHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSB0cmFuc2FjdGlvbiBpcyBjaGFyYWN0ZXJpemVkKSwgdGhlCkNvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkIHVuZGVyIHRoaXMgc2VjdGlvbiBtdXN0IGJlIGFjY29tcGFuaWVkCmJ5IHRoZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24uICBCdXQgdGhpcyByZXF1aXJlbWVudCBkb2VzIG5vdCBhcHBseQppZiBuZWl0aGVyIHlvdSBub3IgYW55IHRoaXJkIHBhcnR5IHJldGFpbnMgdGhlIGFiaWxpdHkgdG8gaW5zdGFsbAptb2RpZmllZCBvYmplY3QgY29kZSBvbiB0aGUgVXNlciBQcm9kdWN0IChmb3IgZXhhbXBsZSwgdGhlIHdvcmsgaGFzCmJlZW4gaW5zdGFsbGVkIGluIFJPTSkuCgogIFRoZSByZXF1aXJlbWVudCB0byBwcm92aWRlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiBkb2VzIG5vdCBpbmNsdWRlIGEKcmVxdWlyZW1lbnQgdG8gY29udGludWUgdG8gcHJvdmlkZSBzdXBwb3J0IHNlcnZpY2UsIHdhcnJhbnR5LCBvciB1cGRhdGVzCmZvciBhIHdvcmsgdGhhdCBoYXMgYmVlbiBtb2RpZmllZCBvciBpbnN0YWxsZWQgYnkgdGhlIHJlY2lwaWVudCwgb3IgZm9yCnRoZSBVc2VyIFByb2R1Y3QgaW4gd2hpY2ggaXQgaGFzIGJlZW4gbW9kaWZpZWQgb3IgaW5zdGFsbGVkLiAgQWNjZXNzIHRvIGEKbmV0d29yayBtYXkgYmUgZGVuaWVkIHdoZW4gdGhlIG1vZGlmaWNhdGlvbiBpdHNlbGYgbWF0ZXJpYWxseSBhbmQKYWR2ZXJzZWx5IGFmZmVjdHMgdGhlIG9wZXJhdGlvbiBvZiB0aGUgbmV0d29yayBvciB2aW9sYXRlcyB0aGUgcnVsZXMgYW5kCnByb3RvY29scyBmb3IgY29tbXVuaWNhdGlvbiBhY3Jvc3MgdGhlIG5ldHdvcmsuCgogIENvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkLCBhbmQgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uIHByb3ZpZGVkLAppbiBhY2NvcmQgd2l0aCB0aGlzIHNlY3Rpb24gbXVzdCBiZSBpbiBhIGZvcm1hdCB0aGF0IGlzIHB1YmxpY2x5CmRvY3VtZW50ZWQgKGFuZCB3aXRoIGFuIGltcGxlbWVudGF0aW9uIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluCnNvdXJjZSBjb2RlIGZvcm0pLCBhbmQgbXVzdCByZXF1aXJlIG5vIHNwZWNpYWwgcGFzc3dvcmQgb3Iga2V5IGZvcgp1bnBhY2tpbmcsIHJlYWRpbmcgb3IgY29weWluZy4KCiAgNy4gQWRkaXRpb25hbCBUZXJtcy4KCiAgIkFkZGl0aW9uYWwgcGVybWlzc2lvbnMiIGFyZSB0ZXJtcyB0aGF0IHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMKTGljZW5zZSBieSBtYWtpbmcgZXhjZXB0aW9ucyBmcm9tIG9uZSBvciBtb3JlIG9mIGl0cyBjb25kaXRpb25zLgpBZGRpdGlvbmFsIHBlcm1pc3Npb25zIHRoYXQgYXJlIGFwcGxpY2FibGUgdG8gdGhlIGVudGlyZSBQcm9ncmFtIHNoYWxsCmJlIHRyZWF0ZWQgYXMgdGhvdWdoIHRoZXkgd2VyZSBpbmNsdWRlZCBpbiB0aGlzIExpY2Vuc2UsIHRvIHRoZSBleHRlbnQKdGhhdCB0aGV5IGFyZSB2YWxpZCB1bmRlciBhcHBsaWNhYmxlIGxhdy4gIElmIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMKYXBwbHkgb25seSB0byBwYXJ0IG9mIHRoZSBQcm9ncmFtLCB0aGF0IHBhcnQgbWF5IGJlIHVzZWQgc2VwYXJhdGVseQp1bmRlciB0aG9zZSBwZXJtaXNzaW9ucywgYnV0IHRoZSBlbnRpcmUgUHJvZ3JhbSByZW1haW5zIGdvdmVybmVkIGJ5CnRoaXMgTGljZW5zZSB3aXRob3V0IHJlZ2FyZCB0byB0aGUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucy4KCiAgV2hlbiB5b3UgY29udmV5IGEgY29weSBvZiBhIGNvdmVyZWQgd29yaywgeW91IG1heSBhdCB5b3VyIG9wdGlvbgpyZW1vdmUgYW55IGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgZnJvbSB0aGF0IGNvcHksIG9yIGZyb20gYW55IHBhcnQgb2YKaXQuICAoQWRkaXRpb25hbCBwZXJtaXNzaW9ucyBtYXkgYmUgd3JpdHRlbiB0byByZXF1aXJlIHRoZWlyIG93bgpyZW1vdmFsIGluIGNlcnRhaW4gY2FzZXMgd2hlbiB5b3UgbW9kaWZ5IHRoZSB3b3JrLikgIFlvdSBtYXkgcGxhY2UKYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBvbiBtYXRlcmlhbCwgYWRkZWQgYnkgeW91IHRvIGEgY292ZXJlZCB3b3JrLApmb3Igd2hpY2ggeW91IGhhdmUgb3IgY2FuIGdpdmUgYXBwcm9wcmlhdGUgY29weXJpZ2h0IHBlcm1pc3Npb24uCgogIE5vdHdpdGhzdGFuZGluZyBhbnkgb3RoZXIgcHJvdmlzaW9uIG9mIHRoaXMgTGljZW5zZSwgZm9yIG1hdGVyaWFsIHlvdQphZGQgdG8gYSBjb3ZlcmVkIHdvcmssIHlvdSBtYXkgKGlmIGF1dGhvcml6ZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXJzIG9mCnRoYXQgbWF0ZXJpYWwpIHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSB3aXRoIHRlcm1zOgoKICAgIGEpIERpc2NsYWltaW5nIHdhcnJhbnR5IG9yIGxpbWl0aW5nIGxpYWJpbGl0eSBkaWZmZXJlbnRseSBmcm9tIHRoZQogICAgdGVybXMgb2Ygc2VjdGlvbnMgMTUgYW5kIDE2IG9mIHRoaXMgTGljZW5zZTsgb3IKCiAgICBiKSBSZXF1aXJpbmcgcHJlc2VydmF0aW9uIG9mIHNwZWNpZmllZCByZWFzb25hYmxlIGxlZ2FsIG5vdGljZXMgb3IKICAgIGF1dGhvciBhdHRyaWJ1dGlvbnMgaW4gdGhhdCBtYXRlcmlhbCBvciBpbiB0aGUgQXBwcm9wcmlhdGUgTGVnYWwKICAgIE5vdGljZXMgZGlzcGxheWVkIGJ5IHdvcmtzIGNvbnRhaW5pbmcgaXQ7IG9yCgogICAgYykgUHJvaGliaXRpbmcgbWlzcmVwcmVzZW50YXRpb24gb2YgdGhlIG9yaWdpbiBvZiB0aGF0IG1hdGVyaWFsLCBvcgogICAgcmVxdWlyaW5nIHRoYXQgbW9kaWZpZWQgdmVyc2lvbnMgb2Ygc3VjaCBtYXRlcmlhbCBiZSBtYXJrZWQgaW4KICAgIHJlYXNvbmFibGUgd2F5cyBhcyBkaWZmZXJlbnQgZnJvbSB0aGUgb3JpZ2luYWwgdmVyc2lvbjsgb3IKCiAgICBkKSBMaW1pdGluZyB0aGUgdXNlIGZvciBwdWJsaWNpdHkgcHVycG9zZXMgb2YgbmFtZXMgb2YgbGljZW5zb3JzIG9yCiAgICBhdXRob3JzIG9mIHRoZSBtYXRlcmlhbDsgb3IKCiAgICBlKSBEZWNsaW5pbmcgdG8gZ3JhbnQgcmlnaHRzIHVuZGVyIHRyYWRlbWFyayBsYXcgZm9yIHVzZSBvZiBzb21lCiAgICB0cmFkZSBuYW1lcywgdHJhZGVtYXJrcywgb3Igc2VydmljZSBtYXJrczsgb3IKCiAgICBmKSBSZXF1aXJpbmcgaW5kZW1uaWZpY2F0aW9uIG9mIGxpY2Vuc29ycyBhbmQgYXV0aG9ycyBvZiB0aGF0CiAgICBtYXRlcmlhbCBieSBhbnlvbmUgd2hvIGNvbnZleXMgdGhlIG1hdGVyaWFsIChvciBtb2RpZmllZCB2ZXJzaW9ucyBvZgogICAgaXQpIHdpdGggY29udHJhY3R1YWwgYXNzdW1wdGlvbnMgb2YgbGlhYmlsaXR5IHRvIHRoZSByZWNpcGllbnQsIGZvcgogICAgYW55IGxpYWJpbGl0eSB0aGF0IHRoZXNlIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIGRpcmVjdGx5IGltcG9zZSBvbgogICAgdGhvc2UgbGljZW5zb3JzIGFuZCBhdXRob3JzLgoKICBBbGwgb3RoZXIgbm9uLXBlcm1pc3NpdmUgYWRkaXRpb25hbCB0ZXJtcyBhcmUgY29uc2lkZXJlZCAiZnVydGhlcgpyZXN0cmljdGlvbnMiIHdpdGhpbiB0aGUgbWVhbmluZyBvZiBzZWN0aW9uIDEwLiAgSWYgdGhlIFByb2dyYW0gYXMgeW91CnJlY2VpdmVkIGl0LCBvciBhbnkgcGFydCBvZiBpdCwgY29udGFpbnMgYSBub3RpY2Ugc3RhdGluZyB0aGF0IGl0IGlzCmdvdmVybmVkIGJ5IHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIGEgdGVybSB0aGF0IGlzIGEgZnVydGhlcgpyZXN0cmljdGlvbiwgeW91IG1heSByZW1vdmUgdGhhdCB0ZXJtLiAgSWYgYSBsaWNlbnNlIGRvY3VtZW50IGNvbnRhaW5zCmEgZnVydGhlciByZXN0cmljdGlvbiBidXQgcGVybWl0cyByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcgdW5kZXIgdGhpcwpMaWNlbnNlLCB5b3UgbWF5IGFkZCB0byBhIGNvdmVyZWQgd29yayBtYXRlcmlhbCBnb3Zlcm5lZCBieSB0aGUgdGVybXMKb2YgdGhhdCBsaWNlbnNlIGRvY3VtZW50LCBwcm92aWRlZCB0aGF0IHRoZSBmdXJ0aGVyIHJlc3RyaWN0aW9uIGRvZXMKbm90IHN1cnZpdmUgc3VjaCByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcuCgogIElmIHlvdSBhZGQgdGVybXMgdG8gYSBjb3ZlcmVkIHdvcmsgaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uLCB5b3UKbXVzdCBwbGFjZSwgaW4gdGhlIHJlbGV2YW50IHNvdXJjZSBmaWxlcywgYSBzdGF0ZW1lbnQgb2YgdGhlCmFkZGl0aW9uYWwgdGVybXMgdGhhdCBhcHBseSB0byB0aG9zZSBmaWxlcywgb3IgYSBub3RpY2UgaW5kaWNhdGluZwp3aGVyZSB0byBmaW5kIHRoZSBhcHBsaWNhYmxlIHRlcm1zLgoKICBBZGRpdGlvbmFsIHRlcm1zLCBwZXJtaXNzaXZlIG9yIG5vbi1wZXJtaXNzaXZlLCBtYXkgYmUgc3RhdGVkIGluIHRoZQpmb3JtIG9mIGEgc2VwYXJhdGVseSB3cml0dGVuIGxpY2Vuc2UsIG9yIHN0YXRlZCBhcyBleGNlcHRpb25zOwp0aGUgYWJvdmUgcmVxdWlyZW1lbnRzIGFwcGx5IGVpdGhlciB3YXkuCgogIDguIFRlcm1pbmF0aW9uLgoKICBZb3UgbWF5IG5vdCBwcm9wYWdhdGUgb3IgbW9kaWZ5IGEgY292ZXJlZCB3b3JrIGV4Y2VwdCBhcyBleHByZXNzbHkKcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQgb3RoZXJ3aXNlIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgaXQgaXMgdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIKdGhpcyBMaWNlbnNlIChpbmNsdWRpbmcgYW55IHBhdGVudCBsaWNlbnNlcyBncmFudGVkIHVuZGVyIHRoZSB0aGlyZApwYXJhZ3JhcGggb2Ygc2VjdGlvbiAxMSkuCgogIEhvd2V2ZXIsIGlmIHlvdSBjZWFzZSBhbGwgdmlvbGF0aW9uIG9mIHRoaXMgTGljZW5zZSwgdGhlbiB5b3VyCmxpY2Vuc2UgZnJvbSBhIHBhcnRpY3VsYXIgY29weXJpZ2h0IGhvbGRlciBpcyByZWluc3RhdGVkIChhKQpwcm92aXNpb25hbGx5LCB1bmxlc3MgYW5kIHVudGlsIHRoZSBjb3B5cmlnaHQgaG9sZGVyIGV4cGxpY2l0bHkgYW5kCmZpbmFsbHkgdGVybWluYXRlcyB5b3VyIGxpY2Vuc2UsIGFuZCAoYikgcGVybWFuZW50bHksIGlmIHRoZSBjb3B5cmlnaHQKaG9sZGVyIGZhaWxzIHRvIG5vdGlmeSB5b3Ugb2YgdGhlIHZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMKcHJpb3IgdG8gNjAgZGF5cyBhZnRlciB0aGUgY2Vzc2F0aW9uLgoKICBNb3Jlb3ZlciwgeW91ciBsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMKcmVpbnN0YXRlZCBwZXJtYW5lbnRseSBpZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3RpZmllcyB5b3Ugb2YgdGhlCnZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMsIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgeW91IGhhdmUKcmVjZWl2ZWQgbm90aWNlIG9mIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UgKGZvciBhbnkgd29yaykgZnJvbSB0aGF0CmNvcHlyaWdodCBob2xkZXIsIGFuZCB5b3UgY3VyZSB0aGUgdmlvbGF0aW9uIHByaW9yIHRvIDMwIGRheXMgYWZ0ZXIKeW91ciByZWNlaXB0IG9mIHRoZSBub3RpY2UuCgogIFRlcm1pbmF0aW9uIG9mIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgc2VjdGlvbiBkb2VzIG5vdCB0ZXJtaW5hdGUgdGhlCmxpY2Vuc2VzIG9mIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzIG9yIHJpZ2h0cyBmcm9tIHlvdSB1bmRlcgp0aGlzIExpY2Vuc2UuICBJZiB5b3VyIHJpZ2h0cyBoYXZlIGJlZW4gdGVybWluYXRlZCBhbmQgbm90IHBlcm1hbmVudGx5CnJlaW5zdGF0ZWQsIHlvdSBkbyBub3QgcXVhbGlmeSB0byByZWNlaXZlIG5ldyBsaWNlbnNlcyBmb3IgdGhlIHNhbWUKbWF0ZXJpYWwgdW5kZXIgc2VjdGlvbiAxMC4KCiAgOS4gQWNjZXB0YW5jZSBOb3QgUmVxdWlyZWQgZm9yIEhhdmluZyBDb3BpZXMuCgogIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UgaW4gb3JkZXIgdG8gcmVjZWl2ZSBvcgpydW4gYSBjb3B5IG9mIHRoZSBQcm9ncmFtLiAgQW5jaWxsYXJ5IHByb3BhZ2F0aW9uIG9mIGEgY292ZXJlZCB3b3JrCm9jY3VycmluZyBzb2xlbHkgYXMgYSBjb25zZXF1ZW5jZSBvZiB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uCnRvIHJlY2VpdmUgYSBjb3B5IGxpa2V3aXNlIGRvZXMgbm90IHJlcXVpcmUgYWNjZXB0YW5jZS4gIEhvd2V2ZXIsCm5vdGhpbmcgb3RoZXIgdGhhbiB0aGlzIExpY2Vuc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgYW55IGNvdmVyZWQgd29yay4gIFRoZXNlIGFjdGlvbnMgaW5mcmluZ2UgY29weXJpZ2h0IGlmIHlvdSBkbwpub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkgbW9kaWZ5aW5nIG9yIHByb3BhZ2F0aW5nIGEKY292ZXJlZCB3b3JrLCB5b3UgaW5kaWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBzby4KCiAgMTAuIEF1dG9tYXRpYyBMaWNlbnNpbmcgb2YgRG93bnN0cmVhbSBSZWNpcGllbnRzLgoKICBFYWNoIHRpbWUgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5CnJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZSBvcmlnaW5hbCBsaWNlbnNvcnMsIHRvIHJ1biwgbW9kaWZ5IGFuZApwcm9wYWdhdGUgdGhhdCB3b3JrLCBzdWJqZWN0IHRvIHRoaXMgTGljZW5zZS4gIFlvdSBhcmUgbm90IHJlc3BvbnNpYmxlCmZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHdpdGggdGhpcyBMaWNlbnNlLgoKICBBbiAiZW50aXR5IHRyYW5zYWN0aW9uIiBpcyBhIHRyYW5zYWN0aW9uIHRyYW5zZmVycmluZyBjb250cm9sIG9mIGFuCm9yZ2FuaXphdGlvbiwgb3Igc3Vic3RhbnRpYWxseSBhbGwgYXNzZXRzIG9mIG9uZSwgb3Igc3ViZGl2aWRpbmcgYW4Kb3JnYW5pemF0aW9uLCBvciBtZXJnaW5nIG9yZ2FuaXphdGlvbnMuICBJZiBwcm9wYWdhdGlvbiBvZiBhIGNvdmVyZWQKd29yayByZXN1bHRzIGZyb20gYW4gZW50aXR5IHRyYW5zYWN0aW9uLCBlYWNoIHBhcnR5IHRvIHRoYXQKdHJhbnNhY3Rpb24gd2hvIHJlY2VpdmVzIGEgY29weSBvZiB0aGUgd29yayBhbHNvIHJlY2VpdmVzIHdoYXRldmVyCmxpY2Vuc2VzIHRvIHRoZSB3b3JrIHRoZSBwYXJ0eSdzIHByZWRlY2Vzc29yIGluIGludGVyZXN0IGhhZCBvciBjb3VsZApnaXZlIHVuZGVyIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGgsIHBsdXMgYSByaWdodCB0byBwb3NzZXNzaW9uIG9mIHRoZQpDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBmcm9tIHRoZSBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCwgaWYKdGhlIHByZWRlY2Vzc29yIGhhcyBpdCBvciBjYW4gZ2V0IGl0IHdpdGggcmVhc29uYWJsZSBlZmZvcnRzLgoKICBZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIgcmVzdHJpY3Rpb25zIG9uIHRoZSBleGVyY2lzZSBvZiB0aGUKcmlnaHRzIGdyYW50ZWQgb3IgYWZmaXJtZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgRm9yIGV4YW1wbGUsIHlvdSBtYXkKbm90IGltcG9zZSBhIGxpY2Vuc2UgZmVlLCByb3lhbHR5LCBvciBvdGhlciBjaGFyZ2UgZm9yIGV4ZXJjaXNlIG9mCnJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIHlvdSBtYXkgbm90IGluaXRpYXRlIGxpdGlnYXRpb24KKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQKYW55IHBhdGVudCBjbGFpbSBpcyBpbmZyaW5nZWQgYnkgbWFraW5nLCB1c2luZywgc2VsbGluZywgb2ZmZXJpbmcgZm9yCnNhbGUsIG9yIGltcG9ydGluZyB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbiBvZiBpdC4KCiAgMTEuIFBhdGVudHMuCgogIEEgImNvbnRyaWJ1dG9yIiBpcyBhIGNvcHlyaWdodCBob2xkZXIgd2hvIGF1dGhvcml6ZXMgdXNlIHVuZGVyIHRoaXMKTGljZW5zZSBvZiB0aGUgUHJvZ3JhbSBvciBhIHdvcmsgb24gd2hpY2ggdGhlIFByb2dyYW0gaXMgYmFzZWQuICBUaGUKd29yayB0aHVzIGxpY2Vuc2VkIGlzIGNhbGxlZCB0aGUgY29udHJpYnV0b3IncyAiY29udHJpYnV0b3IgdmVyc2lvbiIuCgogIEEgY29udHJpYnV0b3IncyAiZXNzZW50aWFsIHBhdGVudCBjbGFpbXMiIGFyZSBhbGwgcGF0ZW50IGNsYWltcwpvd25lZCBvciBjb250cm9sbGVkIGJ5IHRoZSBjb250cmlidXRvciwgd2hldGhlciBhbHJlYWR5IGFjcXVpcmVkIG9yCmhlcmVhZnRlciBhY3F1aXJlZCwgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgYnkgc29tZSBtYW5uZXIsIHBlcm1pdHRlZApieSB0aGlzIExpY2Vuc2UsIG9mIG1ha2luZywgdXNpbmcsIG9yIHNlbGxpbmcgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24sCmJ1dCBkbyBub3QgaW5jbHVkZSBjbGFpbXMgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgb25seSBhcyBhCmNvbnNlcXVlbmNlIG9mIGZ1cnRoZXIgbW9kaWZpY2F0aW9uIG9mIHRoZSBjb250cmlidXRvciB2ZXJzaW9uLiAgRm9yCnB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgImNvbnRyb2wiIGluY2x1ZGVzIHRoZSByaWdodCB0byBncmFudApwYXRlbnQgc3VibGljZW5zZXMgaW4gYSBtYW5uZXIgY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YKdGhpcyBMaWNlbnNlLgoKICBFYWNoIGNvbnRyaWJ1dG9yIGdyYW50cyB5b3UgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZQpwYXRlbnQgbGljZW5zZSB1bmRlciB0aGUgY29udHJpYnV0b3IncyBlc3NlbnRpYWwgcGF0ZW50IGNsYWltcywgdG8KbWFrZSwgdXNlLCBzZWxsLCBvZmZlciBmb3Igc2FsZSwgaW1wb3J0IGFuZCBvdGhlcndpc2UgcnVuLCBtb2RpZnkgYW5kCnByb3BhZ2F0ZSB0aGUgY29udGVudHMgb2YgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24uCgogIEluIHRoZSBmb2xsb3dpbmcgdGhyZWUgcGFyYWdyYXBocywgYSAicGF0ZW50IGxpY2Vuc2UiIGlzIGFueSBleHByZXNzCmFncmVlbWVudCBvciBjb21taXRtZW50LCBob3dldmVyIGRlbm9taW5hdGVkLCBub3QgdG8gZW5mb3JjZSBhIHBhdGVudAooc3VjaCBhcyBhbiBleHByZXNzIHBlcm1pc3Npb24gdG8gcHJhY3RpY2UgYSBwYXRlbnQgb3IgY292ZW5hbnQgbm90IHRvCnN1ZSBmb3IgcGF0ZW50IGluZnJpbmdlbWVudCkuICBUbyAiZ3JhbnQiIHN1Y2ggYSBwYXRlbnQgbGljZW5zZSB0byBhCnBhcnR5IG1lYW5zIHRvIG1ha2Ugc3VjaCBhbiBhZ3JlZW1lbnQgb3IgY29tbWl0bWVudCBub3QgdG8gZW5mb3JjZSBhCnBhdGVudCBhZ2FpbnN0IHRoZSBwYXJ0eS4KCiAgSWYgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywga25vd2luZ2x5IHJlbHlpbmcgb24gYSBwYXRlbnQgbGljZW5zZSwKYW5kIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBpcyBub3QgYXZhaWxhYmxlIGZvciBhbnlvbmUKdG8gY29weSwgZnJlZSBvZiBjaGFyZ2UgYW5kIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UsIHRocm91Z2ggYQpwdWJsaWNseSBhdmFpbGFibGUgbmV0d29yayBzZXJ2ZXIgb3Igb3RoZXIgcmVhZGlseSBhY2Nlc3NpYmxlIG1lYW5zLAp0aGVuIHlvdSBtdXN0IGVpdGhlciAoMSkgY2F1c2UgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIHRvIGJlIHNvCmF2YWlsYWJsZSwgb3IgKDIpIGFycmFuZ2UgdG8gZGVwcml2ZSB5b3Vyc2VsZiBvZiB0aGUgYmVuZWZpdCBvZiB0aGUKcGF0ZW50IGxpY2Vuc2UgZm9yIHRoaXMgcGFydGljdWxhciB3b3JrLCBvciAoMykgYXJyYW5nZSwgaW4gYSBtYW5uZXIKY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBMaWNlbnNlLCB0byBleHRlbmQgdGhlIHBhdGVudApsaWNlbnNlIHRvIGRvd25zdHJlYW0gcmVjaXBpZW50cy4gICJLbm93aW5nbHkgcmVseWluZyIgbWVhbnMgeW91IGhhdmUKYWN0dWFsIGtub3dsZWRnZSB0aGF0LCBidXQgZm9yIHRoZSBwYXRlbnQgbGljZW5zZSwgeW91ciBjb252ZXlpbmcgdGhlCmNvdmVyZWQgd29yayBpbiBhIGNvdW50cnksIG9yIHlvdXIgcmVjaXBpZW50J3MgdXNlIG9mIHRoZSBjb3ZlcmVkIHdvcmsKaW4gYSBjb3VudHJ5LCB3b3VsZCBpbmZyaW5nZSBvbmUgb3IgbW9yZSBpZGVudGlmaWFibGUgcGF0ZW50cyBpbiB0aGF0CmNvdW50cnkgdGhhdCB5b3UgaGF2ZSByZWFzb24gdG8gYmVsaWV2ZSBhcmUgdmFsaWQuCgogIElmLCBwdXJzdWFudCB0byBvciBpbiBjb25uZWN0aW9uIHdpdGggYSBzaW5nbGUgdHJhbnNhY3Rpb24gb3IKYXJyYW5nZW1lbnQsIHlvdSBjb252ZXksIG9yIHByb3BhZ2F0ZSBieSBwcm9jdXJpbmcgY29udmV5YW5jZSBvZiwgYQpjb3ZlcmVkIHdvcmssIGFuZCBncmFudCBhIHBhdGVudCBsaWNlbnNlIHRvIHNvbWUgb2YgdGhlIHBhcnRpZXMKcmVjZWl2aW5nIHRoZSBjb3ZlcmVkIHdvcmsgYXV0aG9yaXppbmcgdGhlbSB0byB1c2UsIHByb3BhZ2F0ZSwgbW9kaWZ5Cm9yIGNvbnZleSBhIHNwZWNpZmljIGNvcHkgb2YgdGhlIGNvdmVyZWQgd29yaywgdGhlbiB0aGUgcGF0ZW50IGxpY2Vuc2UKeW91IGdyYW50IGlzIGF1dG9tYXRpY2FsbHkgZXh0ZW5kZWQgdG8gYWxsIHJlY2lwaWVudHMgb2YgdGhlIGNvdmVyZWQKd29yayBhbmQgd29ya3MgYmFzZWQgb24gaXQuCgogIEEgcGF0ZW50IGxpY2Vuc2UgaXMgImRpc2NyaW1pbmF0b3J5IiBpZiBpdCBkb2VzIG5vdCBpbmNsdWRlIHdpdGhpbgp0aGUgc2NvcGUgb2YgaXRzIGNvdmVyYWdlLCBwcm9oaWJpdHMgdGhlIGV4ZXJjaXNlIG9mLCBvciBpcwpjb25kaXRpb25lZCBvbiB0aGUgbm9uLWV4ZXJjaXNlIG9mIG9uZSBvciBtb3JlIG9mIHRoZSByaWdodHMgdGhhdCBhcmUKc3BlY2lmaWNhbGx5IGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgWW91IG1heSBub3QgY29udmV5IGEgY292ZXJlZAp3b3JrIGlmIHlvdSBhcmUgYSBwYXJ0eSB0byBhbiBhcnJhbmdlbWVudCB3aXRoIGEgdGhpcmQgcGFydHkgdGhhdCBpcwppbiB0aGUgYnVzaW5lc3Mgb2YgZGlzdHJpYnV0aW5nIHNvZnR3YXJlLCB1bmRlciB3aGljaCB5b3UgbWFrZSBwYXltZW50CnRvIHRoZSB0aGlyZCBwYXJ0eSBiYXNlZCBvbiB0aGUgZXh0ZW50IG9mIHlvdXIgYWN0aXZpdHkgb2YgY29udmV5aW5nCnRoZSB3b3JrLCBhbmQgdW5kZXIgd2hpY2ggdGhlIHRoaXJkIHBhcnR5IGdyYW50cywgdG8gYW55IG9mIHRoZQpwYXJ0aWVzIHdobyB3b3VsZCByZWNlaXZlIHRoZSBjb3ZlcmVkIHdvcmsgZnJvbSB5b3UsIGEgZGlzY3JpbWluYXRvcnkKcGF0ZW50IGxpY2Vuc2UgKGEpIGluIGNvbm5lY3Rpb24gd2l0aCBjb3BpZXMgb2YgdGhlIGNvdmVyZWQgd29yawpjb252ZXllZCBieSB5b3UgKG9yIGNvcGllcyBtYWRlIGZyb20gdGhvc2UgY29waWVzKSwgb3IgKGIpIHByaW1hcmlseQpmb3IgYW5kIGluIGNvbm5lY3Rpb24gd2l0aCBzcGVjaWZpYyBwcm9kdWN0cyBvciBjb21waWxhdGlvbnMgdGhhdApjb250YWluIHRoZSBjb3ZlcmVkIHdvcmssIHVubGVzcyB5b3UgZW50ZXJlZCBpbnRvIHRoYXQgYXJyYW5nZW1lbnQsCm9yIHRoYXQgcGF0ZW50IGxpY2Vuc2Ugd2FzIGdyYW50ZWQsIHByaW9yIHRvIDI4IE1hcmNoIDIwMDcuCgogIE5vdGhpbmcgaW4gdGhpcyBMaWNlbnNlIHNoYWxsIGJlIGNvbnN0cnVlZCBhcyBleGNsdWRpbmcgb3IgbGltaXRpbmcKYW55IGltcGxpZWQgbGljZW5zZSBvciBvdGhlciBkZWZlbnNlcyB0byBpbmZyaW5nZW1lbnQgdGhhdCBtYXkKb3RoZXJ3aXNlIGJlIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYXBwbGljYWJsZSBwYXRlbnQgbGF3LgoKICAxMi4gTm8gU3VycmVuZGVyIG9mIE90aGVycycgRnJlZWRvbS4KCiAgSWYgY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcgpvdGhlcndpc2UpIHRoYXQgY29udHJhZGljdCB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UsIHRoZXkgZG8gbm90CmV4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90IGNvbnZleSBhCmNvdmVyZWQgd29yayBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcwpMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91IG1heQpub3QgY29udmV5IGl0IGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiB5b3UgYWdyZWUgdG8gdGVybXMgdGhhdCBvYmxpZ2F0ZSB5b3UKdG8gY29sbGVjdCBhIHJveWFsdHkgZm9yIGZ1cnRoZXIgY29udmV5aW5nIGZyb20gdGhvc2UgdG8gd2hvbSB5b3UgY29udmV5CnRoZSBQcm9ncmFtLCB0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCB0aG9zZSB0ZXJtcyBhbmQgdGhpcwpMaWNlbnNlIHdvdWxkIGJlIHRvIHJlZnJhaW4gZW50aXJlbHkgZnJvbSBjb252ZXlpbmcgdGhlIFByb2dyYW0uCgogIDEzLiBVc2Ugd2l0aCB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgoKICBOb3R3aXRoc3RhbmRpbmcgYW55IG90aGVyIHByb3Zpc2lvbiBvZiB0aGlzIExpY2Vuc2UsIHlvdSBoYXZlCnBlcm1pc3Npb24gdG8gbGluayBvciBjb21iaW5lIGFueSBjb3ZlcmVkIHdvcmsgd2l0aCBhIHdvcmsgbGljZW5zZWQKdW5kZXIgdmVyc2lvbiAzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW50byBhIHNpbmdsZQpjb21iaW5lZCB3b3JrLCBhbmQgdG8gY29udmV5IHRoZSByZXN1bHRpbmcgd29yay4gIFRoZSB0ZXJtcyBvZiB0aGlzCkxpY2Vuc2Ugd2lsbCBjb250aW51ZSB0byBhcHBseSB0byB0aGUgcGFydCB3aGljaCBpcyB0aGUgY292ZXJlZCB3b3JrLApidXQgdGhlIHNwZWNpYWwgcmVxdWlyZW1lbnRzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCnNlY3Rpb24gMTMsIGNvbmNlcm5pbmcgaW50ZXJhY3Rpb24gdGhyb3VnaCBhIG5ldHdvcmsgd2lsbCBhcHBseSB0byB0aGUKY29tYmluYXRpb24gYXMgc3VjaC4KCiAgMTQuIFJldmlzZWQgVmVyc2lvbnMgb2YgdGhpcyBMaWNlbnNlLgoKICBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucyBvZgp0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCiAgRWFjaCB2ZXJzaW9uIGlzIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuICBJZiB0aGUKUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIGNlcnRhaW4gbnVtYmVyZWQgdmVyc2lvbiBvZiB0aGUgR05VIEdlbmVyYWwKUHVibGljIExpY2Vuc2UgIm9yIGFueSBsYXRlciB2ZXJzaW9uIiBhcHBsaWVzIHRvIGl0LCB5b3UgaGF2ZSB0aGUKb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZWl0aGVyIG9mIHRoYXQgbnVtYmVyZWQKdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4gIElmIHRoZSBQcm9ncmFtIGRvZXMgbm90IHNwZWNpZnkgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkCmJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCgogIElmIHRoZSBQcm9ncmFtIHNwZWNpZmllcyB0aGF0IGEgcHJveHkgY2FuIGRlY2lkZSB3aGljaCBmdXR1cmUKdmVyc2lvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGNhbiBiZSB1c2VkLCB0aGF0IHByb3h5J3MKcHVibGljIHN0YXRlbWVudCBvZiBhY2NlcHRhbmNlIG9mIGEgdmVyc2lvbiBwZXJtYW5lbnRseSBhdXRob3JpemVzIHlvdQp0byBjaG9vc2UgdGhhdCB2ZXJzaW9uIGZvciB0aGUgUHJvZ3JhbS4KCiAgTGF0ZXIgbGljZW5zZSB2ZXJzaW9ucyBtYXkgZ2l2ZSB5b3UgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQKcGVybWlzc2lvbnMuICBIb3dldmVyLCBubyBhZGRpdGlvbmFsIG9ibGlnYXRpb25zIGFyZSBpbXBvc2VkIG9uIGFueQphdXRob3Igb3IgY29weXJpZ2h0IGhvbGRlciBhcyBhIHJlc3VsdCBvZiB5b3VyIGNob29zaW5nIHRvIGZvbGxvdyBhCmxhdGVyIHZlcnNpb24uCgogIDE1LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LgoKICBUSEVSRSBJUyBOTyBXQVJSQU5UWSBGT1IgVEhFIFBST0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZCkFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4gT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQKSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUyBQUk9WSURFIFRIRSBQUk9HUkFNICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWQpPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1NFRCBPUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUgUFJPR1JBTQpJUyBXSVRIIFlPVS4gIFNIT1VMRCBUSEUgUFJPR1JBTSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YKQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLgoKICAxNi4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuCgogIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1PRElGSUVTIEFORC9PUiBDT05WRVlTClRIRSBQUk9HUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywgSU5DTFVESU5HIEFOWQpHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBPRiBUSEUKVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFIFBST0dSQU0gKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gTE9TUyBPRgpEQVRBIE9SIERBVEEgQkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZIFlPVSBPUiBUSElSRApQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJPR1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSIFBST0dSQU1TKSwKRVZFTiBJRiBTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgpTVUNIIERBTUFHRVMuCgogIDE3LiBJbnRlcnByZXRhdGlvbiBvZiBTZWN0aW9ucyAxNSBhbmQgMTYuCgogIElmIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5IGFuZCBsaW1pdGF0aW9uIG9mIGxpYWJpbGl0eSBwcm92aWRlZAphYm92ZSBjYW5ub3QgYmUgZ2l2ZW4gbG9jYWwgbGVnYWwgZWZmZWN0IGFjY29yZGluZyB0byB0aGVpciB0ZXJtcywKcmV2aWV3aW5nIGNvdXJ0cyBzaGFsbCBhcHBseSBsb2NhbCBsYXcgdGhhdCBtb3N0IGNsb3NlbHkgYXBwcm94aW1hdGVzCmFuIGFic29sdXRlIHdhaXZlciBvZiBhbGwgY2l2aWwgbGlhYmlsaXR5IGluIGNvbm5lY3Rpb24gd2l0aCB0aGUKUHJvZ3JhbSwgdW5sZXNzIGEgd2FycmFudHkgb3IgYXNzdW1wdGlvbiBvZiBsaWFiaWxpdHkgYWNjb21wYW5pZXMgYQpjb3B5IG9mIHRoZSBQcm9ncmFtIGluIHJldHVybiBmb3IgYSBmZWUuCgogICAgICAgICAgICAgICAgICAgICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKCiAgICAgICAgICAgIEhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9ncmFtcwoKICBJZiB5b3UgZGV2ZWxvcCBhIG5ldyBwcm9ncmFtLCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2YgdGhlIGdyZWF0ZXN0CnBvc3NpYmxlIHVzZSB0byB0aGUgcHVibGljLCB0aGUgYmVzdCB3YXkgdG8gYWNoaWV2ZSB0aGlzIGlzIHRvIG1ha2UgaXQKZnJlZSBzb2Z0d2FyZSB3aGljaCBldmVyeW9uZSBjYW4gcmVkaXN0cmlidXRlIGFuZCBjaGFuZ2UgdW5kZXIgdGhlc2UgdGVybXMuCgogIFRvIGRvIHNvLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBwcm9ncmFtLiAgSXQgaXMgc2FmZXN0CnRvIGF0dGFjaCB0aGVtIHRvIHRoZSBzdGFydCBvZiBlYWNoIHNvdXJjZSBmaWxlIHRvIG1vc3QgZWZmZWN0aXZlbHkKc3RhdGUgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdAp0aGUgImNvcHlyaWdodCIgbGluZSBhbmQgYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3VuZC4KCiAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgogICAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgogICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKQWxzbyBhZGQgaW5mb3JtYXRpb24gb24gaG93IHRvIGNvbnRhY3QgeW91IGJ5IGVsZWN0cm9uaWMgYW5kIHBhcGVyIG1haWwuCgogIElmIHRoZSBwcm9ncmFtIGRvZXMgdGVybWluYWwgaW50ZXJhY3Rpb24sIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQKbm90aWNlIGxpa2UgdGhpcyB3aGVuIGl0IHN0YXJ0cyBpbiBhbiBpbnRlcmFjdGl2ZSBtb2RlOgoKICAgIDxwcm9ncmFtPiAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KICAgIFRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFk7IGZvciBkZXRhaWxzIHR5cGUgYHNob3cgdycuCiAgICBUaGlzIGlzIGZyZWUgc29mdHdhcmUsIGFuZCB5b3UgYXJlIHdlbGNvbWUgdG8gcmVkaXN0cmlidXRlIGl0CiAgICB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnM7IHR5cGUgYHNob3cgYycgZm9yIGRldGFpbHMuCgpUaGUgaHlwb3RoZXRpY2FsIGNvbW1hbmRzIGBzaG93IHcnIGFuZCBgc2hvdyBjJyBzaG91bGQgc2hvdyB0aGUgYXBwcm9wcmlhdGUKcGFydHMgb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBPZiBjb3Vyc2UsIHlvdXIgcHJvZ3JhbSdzIGNvbW1hbmRzCm1pZ2h0IGJlIGRpZmZlcmVudDsgZm9yIGEgR1VJIGludGVyZmFjZSwgeW91IHdvdWxkIHVzZSBhbiAiYWJvdXQgYm94Ii4KCiAgWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHNjaG9vbCwKaWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIHByb2dyYW0sIGlmIG5lY2Vzc2FyeS4KRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcywgYW5kIGhvdyB0byBhcHBseSBhbmQgZm9sbG93IHRoZSBHTlUgR1BMLCBzZWUKPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtCmludG8gcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdQptYXkgY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGgKdGhlIGxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLiAgQnV0IGZpcnN0LCBwbGVhc2UgcmVhZAo8aHR0cDovL3d3dy5nbnUub3JnL3BoaWxvc29waHkvd2h5LW5vdC1sZ3BsLmh0bWw+Lgo=]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ0NHRklMRVVQTE9BRF9OT0ZJTEUnXSA9ICdObyBmaWxlIHVwbG9hZGVkIG1hdGNoaW5nIHRoZSBzcGVjaWZpY2F0aW9ucyc7CiRsYW5nWydDR0ZJTEVVUExPQURfRklMRVNJWkUnXSA9ICdUaGUgc2l6ZSBvZiB0aGUgdXBsb2FkZWQgZmlsZSBleGNlZWRlZCB0aGUgbWF4aW11bSBhbGxvd2VkJzsKJGxhbmdbJ0NHRklMRVVQTE9BRF9GSUxFVFlQRSddID0gJ0ZpbGVzIG9mIHRoaXMgdHlwZSBjYW5ub3QgYmUgdXBsb2FkZWQnOwokbGFuZ1snQ0dGSUxFVVBMT0FEX0ZJTEVFWElTVFMnXSA9ICdBIGZpbGUgd2l0aCB0aGUgc2FtZSBuYW1lIGFscmVhZHkgZXhpc3RzJzsKJGxhbmdbJ0NHRklMRVVQTE9BRF9CQURERVNURElSJ10gPSAnVGhlIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSBzcGVjaWZpZWQgZm9yIHVwbG9hZGVkIGZpbGVzIGRvZXMgbm90IGV4aXN0JzsKJGxhbmdbJ0NHRklMRVVQTE9BRF9CQURQRVJNUyddID0gJ0ZpbGUgcGVybWlzc2lvbnMgZG8gbm90IGFsbG93IHdyaXRpbmcgdGhlIHVwbG9hZGVkIGZpbGUgaW4gaXRzIGRlc3RpbmF0aW9uIGxvY2F0aW9uJzsKJGxhbmdbJ0NHRklMRVVQTE9BRF9NT1ZFRkFJTEVEJ10gPSAnQXR0ZW1wdGluZyB0byBtb3ZlIHRoZSB1cGxvYWRlZCBmaWxlIHRvIGl0cyBmaW5hbCBkZXN0aW5hdGlvbiBmYWlsZWQnOwoKJGxhbmdbJ3RodW1ibmFpbF9zaXplJ10gPSAnU2l6ZSBvZiB0aHVtYm5haWxzJzsKJGxhbmdbJ2ltYWdlX2V4dGVuc2lvbnMnXSA9ICdJbWFnZSBGaWxlIEV4dGVuc2lvbnMnOwokbGFuZ1snZ3JvdXAnXSA9ICdHcm91cCc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ1RlbXBsYXRlJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZWxlY3QgT25lJzsKJGxhbmdbJ3ByaW9yaXR5X2NvdW50cmllcyddID0gJ1ByaW9yaXR5IENvdW50cmllcyc7CiRsYW5nWydwcm9tcHRfZWRpdHRlbXBsYXRlJ10gPSAnRWRpdCBUZW1wbGF0ZSc7CiRsYW5nWydwcm9tcHRfZGVsZXRldGVtcGxhdGUnXSA9ICdEZWxldGUgVGVtcGxhdGUnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlbmFtZSddID0gJ1RlbXBsYXRlIE5hbWUnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgVGV4dCc7CiRsYW5nWydwcm9tcHRfbmFtZSddID0gJ1RlbXBsYXRlIE5hbWUnOwokbGFuZ1sncHJvbXB0X25ld3RlbXBsYXRlJ10gPSAnTmV3IFRlbXBsYXRlJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0J10gPSAnRGVmYXVsdCc7CgokbGFuZ1sneWVzJ10gPSAnWWVzJzsKJGxhbmdbJ25vJ10gPSAnTm8nOwokbGFuZ1snc3VibWl0J10gPSAnU3VibWl0JzsKJGxhbmdbJ2FwcGx5J10gPSAnQXBwbHknOwokbGFuZ1snY2FuY2VsJ10gPSAnQ2FuY2VsJzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0JzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdBcmUgeW91IHN1cmU/JzsKCiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ1Jlc2V0IHRvIGZhY3RvcnkgZGVmYXVsdHMnOwokbGFuZ1snZXJyb3JfdGVtcGxhdGUnXSA9ICdFcnJvciBUZW1wbGF0ZSc7CiRsYW5nWydlcnJvcl90ZW1wbGF0ZW5hbWVleGlzdHMnXSA9ICdBIFRlbXBsYXRlIGJ5IHRoYXQgTmFtZSBBbHJlYWR5IEV4aXN0cyc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdDYWxndXlzIE1vZHVsZSBFeHRlbnNpb25zJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnVGhpcyBtb2R1bGUgaXMgcmVhZHkgdG8gdXNlLiAgQ29kZSBhd2F5ISc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnU2VlIHlvdSBhZ2FpbiBzb21lIGRheSc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSBVbmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdNb2R1bGUgcHJlZmVyZW5jZXMgdXBkYXRlZC4nOwokbGFuZ1snYWNjZXNzZGVuaWVkJ10gPSAnQWNjZXNzIERlbmllZC4gUGxlYXNlIGNoZWNrIHlvdXIgcGVybWlzc2lvbnMuJzsKJGxhbmdbJ2Vycm9yJ10gPSAnRXJyb3IhJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnVGhpcyBtb2R1bGUgaXMgYSBsaWJyYXJ5IG9mIHBocCBjbGFzc2VzIHVzZWQgdG8gYnVpbGQgYWR2YW5jZWQgZm9ybXMnOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPgo8bGk+VmVyc2lvbiAxLjAuMC4gTWFyY2ggMjAwNy4gIEluaXRpYWwgUmVsZWFzZS48L2xpPgo8bGk+VmVyc2lvbiAxLjAuMS4gQXByaWwgMjAwNy4gIEZpeGVzIHRvIENyZWF0ZUltYWdlTGluazwvbGk+CjxsaT5WZXJzaW9uIDEuMC4yLiBBcHJpbCAyMDA3LiAgQ3JlYXRlSW1hZ2VMaW5rIHdpbGwgbm93IHdvcmsgb24gdGhlIGZyb250ZW5kLjwvbGk+CjxsaT5WZXJzaW9uIDEuMC4zLiBTZXB0ZW1iZXIgMjAwNy4gIEFkZHMgYXBwbHkgYnV0dG9ucyB0byBuZXcgdGVtcGxhdGVzLjwvbGk+CjxsaT5WZXJzaW9uIDEuMS4gICBTZXB0ZW1iZXIgMjAwNy4gIEFkZHMgZGVmYXVsdCBmcm9udGVuZCBlcnJvciBoYW5kbGluZyBwbHVnaW4uPC9saT4KPGxpPlZlcnNpb24gMS4yLiAgIE5vdmVtYmVyICAyMDA3LCAgQWRkcyBtb3JlIGNvbnZlbmllbmNlIGZ1bmN0aW9uczwvbGk+CjxsaT5WZXJzaW9uIDEuMy4gICBOb3ZlbWJlciAgMjAwNy4gIEFkZHMgZXZlbiBtb3JlIGNvbnZlbmllbmNlIGZ1bmN0aW9uczwvbGk+CjxsaT5WZXJzaW9uIDEuNC4gICBEZWNlbWJlciAgMjAwNy4gIEFkZHMgQ3JlYXRlSW1hZ2VEcm9wZG93biBtZXRob2QsIG1ldGhvZHMgZm9yIHN0YXRlIGFuZCBjb3VudHJ5IGRyb3Bkb3ducyBhbmQgYSBidW5jaCBvZiBvdGhlciB0aGluZ3MuPC9saT4KPGxpPlZlcnNpb24gMS41LiAgIEphbnVhcnkgICAyMDA4LiAgRml4ZXMgdG8gaHRtbF9lbnRpdGllc19kZWNvZGUgaW4gdXRmODwvbGk+CjxsaT5WZXJzaW9uIDEuNi4gICBGZWJydWFyeSAgMjAwOCwgIEFkZHMgdGhlIENHRmlsZVVwbG9hZEhhbmRsZXIgY2xhc3M8L2xpPgo8bGk+VmVyc2lvbiAxLjYuMS4gICBGZWJydWFyeSAgMjAwOCwgIE1pbm9yIGZpeCB0byByZWN1cnNpdmVfY2hhbmdlX2RpcmVjdG9yeTwvbGk+CjxsaT5WZXJzaW9uIDEuOC4gRmVicnVhcnkgMjAwOAogIDx1bD4KICAgIDxsaT5BZGQgYSBidW5jaCBtb3JlIHV0aWxpdHkgYW5kIGNvbnZlbmllbmNlIG1ldGhvZHM8L2xpPgogICAgPGxpPk1vdmUgY291bnRyaWVzIGFuZCBzdGF0ZXMgaW50byBhIHRhYmxlIHNvIHRoYXQgdGhleSBjYW4gYmUgdXNlZCB3aXRoIGpvaW5zIGV0Yy48L2xpPgogICAgPGxpPkFkZCB0aGUgYWJpbGl0eSB0byBwcmlvcml0aXplIGNlcnRhaW4gY291bnRyaWVzIGJ5IG5hbWU8L2xpPgogICAgPGxpPkFkZHMgdGhlIEdldFNpbmdsZVRlbXBsYXRlRm9ybSBtZXRob2QgdG8gbWFrZSBpdCBjb252ZW5pZW50IHRvIGVkaXQgYW5kIHJlc3RvcmUgdG8gZGVmYXVsdCBhIHNpbmdsZSB0ZW1wbGF0ZS48L2xpPgogICAgPGxpPkZpeGVzIGlzc3VlcyB3aXRoIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gZWRpdGluZyB0ZW1wbGF0ZXMuPC9saT4KICAgIDxsaT5VcGRhdGUgdGhlIGxpY2Vuc2UuPC9saT4KICAgIDxsaT5VcGRhdGVzIHRvIHRoZSBmaWxlIHVwbG9hZCBjYXBhYmlsaXRpZXM8L2xpPgogICAgPGxpPlRoZSBtb2R1bGUgaXMgYXV0b21hdGljYWxseSBleHBvcnRlZCB0byBzbWFydHk8L2xpPgogICAgPGxpPkFkZCB0aGUgZ2V0X2FjdGlvbl9pZCBhbmQgc2V0X2FjdGlvbl9pZCB2aXJ0dWFsIG1ldGhvZHMgdGhhdCBzaG91bGQgYmUgb3ZlcnJpZGRlbiBieSBhbnkgbW9kdWxlIGRlcml2ZWQgZnJvbSBDR0V4dGVuc2lvbnMuPC9saT4KICA8L3VsPgogIDwvbGk+CjxsaT5WZXJzaW9uIDEuOC4gTWF5IDIwMDgKICA8dWw+CiAgICA8bGk+TWlub3IgY2hhbmdlIGFuZCBhZGRpdGlvbiB0byBSZWRpcmVjdFRvVGFiPC9saT4KICA8L3VsPgo8L3VsPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIG1lcmVseSBwcm92aWRlcyBjb252ZW5pZW5jZSBhcGlcJ3MsIHJlLXVzYWJsZSBmb3JtcywgYW5kIHNtYXJ0eSB0YWdzIGZvciB1c2UgaW4gb3RoZXIgbW9kdWxlcy4gIEl0IGlzIG1lYW50IHNvbGVseSBmcm9tIHdoaWNoIHRvIGJ1aWxkIG90aGVyIG1vZHVsZXMuIElmIHlvdSBhcmUgbm90IGEgcHJvZ3JhbW1lciB5b3UgcHJvYmFibHkgd29uXCd0IG5lZWQgdG8gZG8gYW55dGhpbmcgd2l0aCB0aGlzIG1vZHVsZSBiZXNpZGVzIGFkanVzdCBzb21lIHByZWZlcmVuY2VzLjwvcD4KPGgzIHN0eWxlPSJjb2xvcjogI2YwMDsiPk5vdGVzPC9oMz4KPHA+TWFueSBtb2R1bGVzIHRha2UgYWR2YW50YWdlcyBvZiB0aGUgZm9ybXMgdGhhdCBhcmUgcHJvdmlkZWQgYnkgdGhlIENHRXh0ZW5zaW9ucyBtb2R1bGUgdG8gYXNzaXN0IGluIG1hbmFnaW5nIHRlbXBsYXRlcy4gIFdoZW4gdGhleSBkbywgdGhlIENHRXh0ZW5zaW9ucyBtb2R1bGUgaW5mb3JtYXRpb24gaXMgZGlzcGxheWVkIHByb21pbmVudGx5LiAgSG93ZXZlciB3aGVuIHlvdSBzdWJtaXQsIG9yIGNhbmNlbCBmcm9tIHRoZXNlIGZvcm1zIHlvdSB3aWxsIGJlIHJldHVybmVkIHRvIHRoZSBvcmlnaW5hbCBtb2R1bGUuPC9wPgo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4KPHA+V2VsbCwgeW91IHN0YXJ0IHlvdXIgb3duIG1vZHVsZSAoSSBzdWdnZXN0IHN0YXJ0aW5nIHdpdGggdGhlIFNrZWxldG9uIG1vZHVsZSksIGFuZCB0aGVuIHdoZW4geW91IG5lZWQgdG8gdXNlIGFuIGFkdmFuY2VkIGZvcm0gb2JqZWN0IGZyb20gdGhpcyBsaWJyYXJ5LCBzaW1wbHkgbWFrZSB5b3VyIG1vZHVsZSBkZXBlbmRhbnQgdXBvbiBGb3JtT2JqZWN0cywgYW5kIHRoZW4gaW5zdGFudGlhdGUgYW4gb2JqZWN0IG9mIHRoZSBhcHByb3ByaWF0ZSB0eXBlLiAgU2VlIHRoZSBjb2RlIGluc2lkZSB0aGUgRm9ybU9iamVjdHMgZGlyZWN0b3J5IGZvciB1c2FnZSBpbnN0cnVjdGlvbnMuPC9wPgo8aDM+U21hcnR5IEFkZG9uczwvaDM+CjxwPlRoaXMgbW9kdWxlIGFkZHMgYSBmZXcgc21hcnR5IGNvbnZlbmllbmNlcyBmb3IgdXNlIHdpdGggb3RoZXIgbW9kdWxlcy4gVGhleSBhcmUgbGlzdGVkIGFuZCBkZXNjcmliZWQgaGVyZTo8L3A+Cjx1bD4KPGxpPmNnZXJyb3IgLSA8ZW0+YmxvY2s8L2VtPiBwbHVnaW4KPHA+aS5lOiA8Y29kZT57Y2dlcnJvcn1UaGlzIGlzIGVycm9yIHRleHR7L2NnZXJyb3J9PC9jb2RlPjxici8+CiAgICBvcjogPGNvZGU+e2NnZXJyb3J9eyRlcnJvcnRleHR2YXJ9ey9jZ2Vycm9yfTwvYnI+CjwvcD4KPHA+b3B0aW9uYWwgcGFyYW1ldGVyczogXCdlcnJvcmNsYXNzXCcgPSBvdmVycmlkZSB0aGUgZGVmYXVsdCBjbGFzcyBuYW1lIGluIHRoZSB0ZW1wbGF0ZS4KPC9wPgo8cD5EZXNjcmlwdGlvbjogVGhpcyBibG9jayBwbHVnaW4gdXNlcyB0aGUgZXJyb3IgdGVtcGxhdGUgKGNvbmZpZ3VyYWJsZSBmcm9tIHRoZSBDR0V4dGVuc2lvbnMgYWRtaW4gaW50ZXJmYWNlKSB0byBkaXNwbGF5IGFuIGVycm9yIG1lc3NhZ2UuPC9wPgo8L3VsPgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQgb3IgYnV5IGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBjbXMgZGV2ZWxvcG1lbnQgZm9yZ2UgYXQgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyI+ZGV2LmNtc21hZGVzaW1wbGUub3JnPC9hPi48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjxsaT5UaGUgYXV0aG9yKHMpLCBjYWxndXkgZXQgYWxsIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvcihzKSBkaXJlY3RseS48L2xpPiAgCjwvdWw+CjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dApvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+Cgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA4LCBSb2JlcnQgQ2FtcGJlbCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+Jmx0O2NhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcmZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQppdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQp0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgooYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjwvcD4KPHA+SG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCmFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQppbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCk1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLApidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgpNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCmFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCk9yIHJlYWQgaXQgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5vbmxpbmU8L2E+PC9wPgonOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/cs_CZ.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2dyb3VwJ10gPSAnU2t1cGluYSc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJyZTY2Fyb247YWJsb25hJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdWeWJyYXQgamVkbnUnOwokbGFuZ1sncHJvbXB0X2VkaXR0ZW1wbGF0ZSddID0gJ1VwcmF2aXQgJnNjYXJvbjthYmxvbnUnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXRlbXBsYXRlJ10gPSAnU21hemF0ICZzY2Fyb247YWJsb251JzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZW5hbWUnXSA9ICdKbSZlYWN1dGU7bm8gJnNjYXJvbjthYmxvbnknOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnVGV4dCAmc2Nhcm9uO2FibG9ueSc7CiRsYW5nWydwcm9tcHRfbmFtZSddID0gJ0ptJmVhY3V0ZTtubyAmc2Nhcm9uO2FibG9ueSc7CiRsYW5nWydwcm9tcHRfbmV3dGVtcGxhdGUnXSA9ICdOb3YmYWFjdXRlOyAmc2Nhcm9uO2FibG9uYSc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdCddID0gJ1YmeWFjdXRlO2Nob3omaWFjdXRlOyc7CiRsYW5nWyd5ZXMnXSA9ICdBbm8nOwokbGFuZ1snbm8nXSA9ICdOZSc7CiRsYW5nWydzdWJtaXQnXSA9ICdWbG/Fvml0JzsKJGxhbmdbJ2FwcGx5J10gPSAnQXBsaWtvdmF0JzsKJGxhbmdbJ2NhbmNlbCddID0gJ1N0b3Jubyc7CiRsYW5nWydlZGl0J10gPSAnVXByYXZpdCc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnT3ByYXZkdT8nOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdPYm5vdml0IHDFr3ZvZG4maWFjdXRlOyBob2Rub3R5JzsKJGxhbmdbJ2Vycm9yX3RlbXBsYXRlJ10gPSAnQ2h5Ym4mYWFjdXRlOyAmc2Nhcm9uO2FibG9uYSc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdDYWxndXlvdmEgcm96JnNjYXJvbjsmaWFjdXRlO8WZZW4maWFjdXRlOyBtb2R1bMWvJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTW9kdWwgamUgcMWZaXByYXZlbiBrIHBvdcW+aXQmaWFjdXRlOy4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1TEmyZzY2Fyb247JmlhY3V0ZTttZSBzZSBuYXNobGVkYW5vdSc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsIG9kaW5zdGFsb3YmYWFjdXRlO24uJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsIHZlcnplIGJ5bCAlcyBuYWluc3RhbG92JmFhY3V0ZTtuLic7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdOYXN0YXZlbiZpYWN1dGU7IG1vZHVsdSBieWxhIGFrdHVhbGl6b3YmYWFjdXRlO25hLic7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdQxZkmaWFjdXRlO3N0dXAgemFrJmFhY3V0ZTt6JmFhY3V0ZTtuLiBQcm9zJmlhY3V0ZTttIHprb250cm9sdWp0ZSBzdiZhYWN1dGU7IG9wciZhYWN1dGU7dm7Em24maWFjdXRlOy4nOwokbGFuZ1snZXJyb3InXSA9ICdDaHliYSEnOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bCBieWwgcG92JnlhY3V0ZTsmc2Nhcm9uO2VuIG5hIHZlcnppICVzLic7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ1RlbnRvIG1vZHVsIGplIGtuaWhvdm5hIHBocCBmdW5rYyZpYWN1dGU7IHBvdcW+JmlhY3V0ZTt2YW4meWFjdXRlO2NoIGsgdnl0diZhYWN1dGU7xZllbiZpYWN1dGU7IHBva3JvxI1pbCZ5YWN1dGU7Y2ggZm9ybXVsJmFhY3V0ZTvFmcWvJzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIDEuMC4wLiBNYXJjaCAyMDA3LiAgSW5pdGlhbCBSZWxlYXNlLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjAuMS4gQXByaWwgMjAwNy4gIEZpeGVzIHRvIENyZWF0ZUltYWdlTGluazwvbGk+DQo8bGk+VmVyc2lvbiAxLjAuMi4gQXByaWwgMjAwNy4gIENyZWF0ZUltYWdlTGluayB3aWxsIG5vdyB3b3JrIG9uIHRoZSBmcm9udGVuZC48L2xpPg0KPGxpPlZlcnNpb24gMS4wLjMuIFNlcHRlbWJlciAyMDA3LiAgQWRkcyBhcHBseSBidXR0b25zIHRvIG5ldyB0ZW1wbGF0ZXMuPC9saT4NCjxsaT5WZXJzaW9uIDEuMS4gICBTZXB0ZW1iZXIgMjAwNy4gIEFkZHMgZGVmYXVsdCBmcm9udGVuZCBlcnJvciBoYW5kbGluZyBwbHVnaW4uPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+Q28gZMSbbCZhYWN1dGU7IHRlbnRvIG1vZHVsPzwvaDM+DQo8cD5UZW50byBtb2R1bCBwb3NreXR1amUgQVBJIGEgU21hcnR5IHRhZ3kgcHJvIHBvdcW+aXQmaWFjdXRlOyB2IG9zdGF0biZpYWN1dGU7Y2ggbW9kdWxlY2guIFMmYWFjdXRlO20gbyBzb2LEmyBwcm90byBuZW0mYWFjdXRlOyDFviZhYWN1dGU7ZG4meWFjdXRlOyBzbXlzbC48L3A+DQo8aDM+SmFrIGhvIHBvdcW+JmlhY3V0ZTt2YXQ/PC9oMz4NCjxwPlBva3VkIG0mYWFjdXRlOyBwcm8gViZhYWN1dGU7cyB0ZW50byBtb2R1bCBzbXlzbCwgamlzdMSbIGRvayZhYWN1dGU7xb5ldGUgcMWZZcSNJmlhY3V0ZTtzdCBuJmFhY3V0ZTtzbGVkdWomaWFjdXRlO2MmaWFjdXRlOyB0ZXh0IHNhbWkgOi0pPC9wPg0KPHA+V2VsbCwgeW91IHN0YXJ0IHlvdXIgb3duIG1vZHVsZSAoSSBzdWdnZXN0IHN0YXJ0aW5nIHdpdGggdGhlIFNrZWxldG9uIG1vZHVsZSksIGFuZCB0aGVuIHdoZW4geW91IG5lZWQgdG8gdXNlIGFuIGFkdmFuY2VkIGZvcm0gb2JqZWN0IGZyb20gdGhpcyBsaWJyYXJ5LCBzaW1wbHkgbWFrZSB5b3VyIG1vZHVsZSBkZXBlbmRhbnQgdXBvbiBGb3JtT2JqZWN0cywgYW5kIHRoZW4gaW5zdGFudGlhdGUgYW4gb2JqZWN0IG9mIHRoZSBhcHByb3ByaWF0ZSB0eXBlLiAgU2VlIHRoZSBjb2RlIGluc2lkZSB0aGUgRm9ybU9iamVjdHMgZGlyZWN0b3J5IGZvciB1c2FnZSBpbnN0cnVjdGlvbnMuPC9wPg0KPGgzPlNtYXJ0eSBBZGRvbnM8L2gzPg0KPHA+VGhpcyBtb2R1bGUgYWRkcyBhIGZldyBzbWFydHkgY29udmVuaWVuY2VzIGZvciB1c2Ugd2l0aCBvdGhlciBtb2R1bGVzLiBUaGV5IGFyZSBsaXN0ZWQgYW5kIGRlc2NyaWJlZCBoZXJlOjwvcD4NCjx1bD4NCjxsaT5jZ2Vycm9yIC0gPGVtPmJsb2NrPC9lbT4gcGx1Z2luDQo8cD5pLmU6IDxjb2RlPntjZ2Vycm9yfVRoaXMgaXMgZXJyb3IgdGV4dHsvY2dlcnJvcn08L2NvZGU+PGJyLz4NCiAgICBvcjogPGNvZGU+e2NnZXJyb3J9eyRlcnJvcnRleHR2YXJ9ey9jZ2Vycm9yfTwvYnI+DQo8L3A+DQo8cD5vcHRpb25hbCBwYXJhbWV0ZXJzOiAmIzAzOTtlcnJvcmNsYXNzJiMwMzk7ID0gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgY2xhc3MgbmFtZSBpbiB0aGUgdGVtcGxhdGUuDQo8L3A+DQo8cD5EZXNjcmlwdGlvbjogVGhpcyBibG9jayBwbHVnaW4gdXNlcyB0aGUgZXJyb3IgdGVtcGxhdGUgKGNvbmZpZ3VyYWJsZSBmcm9tIHRoZSBDR0V4dGVuc2lvbnMgYWRtaW4gaW50ZXJmYWNlKSB0byBkaXNwbGF5IGFuIGVycm9yIG1lc3NhZ2UuPC9wPg0KPC91bD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCBvciBidXkgY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIGNtcyBkZXZlbG9wbWVudCBmb3JnZSBhdCA8YSBocmVmPSZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+ZGV2LmNtc21hZGVzaW1wbGUub3JnPC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yKHMpLCBjYWxndXkgZXQgYWxsIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMmcXVvdDs+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yKHMpIGRpcmVjdGx5LjwvbGk+ICANCjwvdWw+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDcsIFJvYmVydCBDYW1wYmVsbCA8YSBocmVmPSZxdW90O21haWx0bzpjYWxndXkxMDAwQGhvdG1haWwuY29tJnF1b3Q7PjxjYWxndXkxMDAwQGhvdG1haWwuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCZxdW90Oz5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPg0KJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuODgwMjY3ODM3LjExODA5OTE2NjkuMTE5NjQzNjEyMS4xMTk2NDk3MTAyLjI0Myc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjExOTY0MTM1NjQuMjM4LjQ4LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L2luZGV4LnBocC9ib2FyZCw3LjAuaHRtbHx1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ0NHRklMRVVQTE9BRF9OT0ZJTEUnXSA9ICdFcyB3dXJkZSBrZWluZSBEYXRlaSBtaXQgZGVuIHZvcmdlZ2ViZW5lbiBTcGV6aWZpa2F0aW9uZW4gaG9jaGdlbGFkZW4nOwokbGFuZ1snQ0dGSUxFVVBMT0FEX0ZJTEVTSVpFJ10gPSAnRGllIEdyJm91bWw7JnN6bGlnO2UgZGVyIGhvY2hnZWxhZGVuZW4gRGF0ZWkgJnV1bWw7YmVyc3RlaWd0IGRhcyBlcmxhdWJ0ZSBNYXhpbXVtJzsKJGxhbmdbJ0NHRklMRVVQTE9BRF9GSUxFVFlQRSddID0gJ0RhdGVpZW4gZGllc2VzIFR5cHMgayZvdW1sO25uZW4gbmljaHQgaG9jaGdlbGFkZW4gd2VyZGVuJzsKJGxhbmdbJ0NHRklMRVVQTE9BRF9GSUxFRVhJU1RTJ10gPSAnRWluZSBEYXRlaSBtaXQgZGllc2VtIE5hbWVuIGV4aXN0aWVydCBiZXJlaXRzJzsKJGxhbmdbJ0NHRklMRVVQTE9BRF9CQURERVNURElSJ10gPSAnRGFzIHZvcmdlZ2ViZW5lIFppZWx2ZXJ6ZWljaG5pcyBmJnV1bWw7ciBkaWUgaG9jaGdlbGFkZW5lbiBEYXRlaWVuIGV4aXN0aWVydCBuaWNodCc7CiRsYW5nWydDR0ZJTEVVUExPQURfQkFEUEVSTVMnXSA9ICdBdWZncnVuZCBkZXIgdmVyZ2ViZW5lbiBEYXRlaS1CZXJlY2h0aWd1bmdlbiBrYW5uIGRpZSBob2NoZ2VsYWRlbmUgRGF0ZWkgbmljaHQgYW4gZGVuIFppZWxvcnQga29waWVydCB3ZXJkZW4nOwokbGFuZ1snQ0dGSUxFVVBMT0FEX01PVkVGQUlMRUQnXSA9ICdCZWltIFZlcnNjaGllYmVuIGRlciBob2NoZ2VsYWRlbmVuIERhdGVpIGluIGRhcyBnZXcmdXVtbDtuc2NodGUgWmllbHZlcnplaWNobmlzIGlzdCBlaW4gRmVobGVyIGF1ZmdldHJldGVuJzsKJGxhbmdbJ3RodW1ibmFpbF9zaXplJ10gPSAnR3Imb3VtbDsmc3psaWc7ZSBkZXIgVm9yc2NoYXViaWxkZXInOwokbGFuZ1snaW1hZ2VfZXh0ZW5zaW9ucyddID0gJ0VuZHVuZyBkZXIgQmlsZGF0ZWknOwokbGFuZ1snZ3JvdXAnXSA9ICdHcnVwcGUnOwokbGFuZ1sndGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnVyZhdW1sO2hsZW4gU2llIGVpbnMgYXVzJzsKJGxhbmdbJ3ByaW9yaXR5X2NvdW50cmllcyddID0gJ0Jldm9yenVndGUgTCZhdW1sO25kZXInOwokbGFuZ1sncHJvbXB0X2VkaXR0ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGJlYXJiZWl0ZW4nOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXRlbXBsYXRlJ10gPSAnVGVtcGxhdGUgbCZvdW1sO3NjaGVuJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZW5hbWUnXSA9ICdUZW1wbGF0ZS1OYW1lJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlLVRleHQnOwokbGFuZ1sncHJvbXB0X25hbWUnXSA9ICdUZW1wbGF0ZS1OYW1lJzsKJGxhbmdbJ3Byb21wdF9uZXd0ZW1wbGF0ZSddID0gJ05ldWVzIFRlbXBsYXRlJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0J10gPSAnU3RhbmRhcmQnOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1snbm8nXSA9ICdOZWluJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ0Fic2VuZGVuJzsKJGxhbmdbJ2FwcGx5J10gPSAnQW53ZW5kZW4nOwokbGFuZ1snY2FuY2VsJ10gPSAnQWJicmVjaGVuJzsKJGxhbmdbJ2VkaXQnXSA9ICdCZWFyYmVpdGVuJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdXb2xsZW4gU2llIGRhcyB3aXJrbGljaD8nOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdBdWYgZGllIHByb2dyYW1tc2VpdGlnZW4gVm9yZWluc3RlbGx1bmdlbiB6dXImdXVtbDtja3NldHplbic7CiRsYW5nWydlcnJvcl90ZW1wbGF0ZSddID0gJ0ZlaGxlci1UZW1wbGF0ZSc7CiRsYW5nWydlcnJvcl90ZW1wbGF0ZW5hbWVleGlzdHMnXSA9ICdFaW4gVGVtcGxhdGUgbWl0IGRpZXNlbSBOYW1lbiBleGlzdGllcnQgYmVyZWl0cyc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdDYWxndXlzIE1vZHVsLUVyd2VpdGVydW5nZW4nOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdEaWVzZXMgTW9kdWwgaXN0IGVpbnNhdHpiZXJlaXQuIFZpZWwgU3Bhc3MgYmVpbSBQcm9ncmFtbWllcmVuISc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnQmlzIHNwJmF1bWw7dGVyIGRhbm4gLi4uJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWwgZGVpbnN0YWxsaWVydC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWx2ZXJzaW9uICVzIGluc3RhbGxpZXJ0Lic7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdNb2R1bGVpbnN0ZWxsdW5nZW4gYWt0dWFsaXNpZXJ0Lic7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdadWdyaWZmIHZlcndlaWdlcnQuIEJpdHRlIHByJnV1bWw7ZmVuIFNpZSBJaHJlIEJlcmVjaHRpZ3VuZ2VuLic7CiRsYW5nWydlcnJvciddID0gJ0ZlaGxlciEnOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bCBhdWYgVmVyc2lvbiAlcyBha3R1YWxpc2llcnQuJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnRGllc2VzIE1vZHVsIGlzdCBlaW5lIFBIUC1LbGFzc2VuLUJpYmxpb3RoZWsgZiZ1dW1sO3IgZGllIEVyemV1Z3VuZyBrb21wbGV4ZXIgRm9ybXVsYXJlLic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQo8bGk+VmVyc2lvbiAxLjAuMC4gTWFyY2ggMjAwNy4gIEluaXRpYWwgUmVsZWFzZS48L2xpPg0KPGxpPlZlcnNpb24gMS4wLjEuIEFwcmlsIDIwMDcuICBGaXhlcyB0byBDcmVhdGVJbWFnZUxpbms8L2xpPg0KPGxpPlZlcnNpb24gMS4wLjIuIEFwcmlsIDIwMDcuICBDcmVhdGVJbWFnZUxpbmsgd2lsbCBub3cgd29yayBvbiB0aGUgZnJvbnRlbmQuPC9saT4NCjxsaT5WZXJzaW9uIDEuMC4zLiBTZXB0ZW1iZXIgMjAwNy4gIEFkZHMgYXBwbHkgYnV0dG9ucyB0byBuZXcgdGVtcGxhdGVzLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjEuICAgU2VwdGVtYmVyIDIwMDcuICBBZGRzIGRlZmF1bHQgZnJvbnRlbmQgZXJyb3IgaGFuZGxpbmcgcGx1Z2luLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjIuICAgTm92ZW1iZXIgIDIwMDcsICBBZGRzIG1vcmUgY29udmVuaWVuY2UgZnVuY3Rpb25zPC9saT4NCjxsaT5WZXJzaW9uIDEuMy4gICBOb3ZlbWJlciAgMjAwNy4gIEFkZHMgZXZlbiBtb3JlIGNvbnZlbmllbmNlIGZ1bmN0aW9uczwvbGk+DQo8bGk+VmVyc2lvbiAxLjQuICAgRGVjZW1iZXIgIDIwMDcuICBBZGRzIENyZWF0ZUltYWdlRHJvcGRvd24gbWV0aG9kLCBtZXRob2RzIGZvciBzdGF0ZSBhbmQgY291bnRyeSBkcm9wZG93bnMgYW5kIGEgYnVuY2ggb2Ygb3RoZXIgdGhpbmdzLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjUuICAgSmFudWFyeSAgIDIwMDcuICBGaXhlcyB0byBodG1sX2VudGl0aWVzX2RlY29kZSBpbiB1dGY4PC9saT4NCjxsaT5WZXJzaW9uIDEuNi4gICBGZWJydWFyeSAgMjAwOCwgIEFkZHMgdGhlIENHRmlsZVVwbG9hZEhhbmRsZXIgY2xhc3M8L2xpPg0KPGxpPlZlcnNpb24gMS42LjEuICAgRmVicnVhcnkgIDIwMDgsICBNaW5vciBmaXggdG8gcmVjdXJzaXZlX2NoYW5nZV9kaXJlY3Rvcnk8L2xpPg0KPGxpPlZlcnNpb24gMS43LiBGZWJydWFyeSAyMDA4DQogIDx1bD4NCiAgICA8bGk+QWRkIGEgYnVuY2ggbW9yZSB1dGlsaXR5IGFuZCBjb252ZW5pZW5jZSBtZXRob2RzPC9saT4NCiAgICA8bGk+TW92ZSBjb3VudHJpZXMgYW5kIHN0YXRlcyBpbnRvIGEgdGFibGUgc28gdGhhdCB0aGV5IGNhbiBiZSB1c2VkIHdpdGggam9pbnMgZXRjLjwvbGk+DQogICAgPGxpPkFkZCB0aGUgYWJpbGl0eSB0byBwcmlvcml0aXplIGNlcnRhaW4gY291bnRyaWVzIGJ5IG5hbWU8L2xpPg0KICAgIDxsaT5BZGRzIHRoZSBHZXRTaW5nbGVUZW1wbGF0ZUZvcm0gbWV0aG9kIHRvIG1ha2UgaXQgY29udmVuaWVudCB0byBlZGl0IGFuZCByZXN0b3JlIHRvIGRlZmF1bHQgYSBzaW5nbGUgdGVtcGxhdGUuPC9saT4NCiAgICA8bGk+Rml4ZXMgaXNzdWVzIHdpdGggdGhlIGNhbmNlbCBidXR0b24gd2hlbiBlZGl0aW5nIHRlbXBsYXRlcy48L2xpPg0KICAgIDxsaT5VcGRhdGUgdGhlIGxpY2Vuc2UuPC9saT4NCiAgICA8bGk+VXBkYXRlcyB0byB0aGUgZmlsZSB1cGxvYWQgY2FwYWJpbGl0aWVzPC9saT4NCiAgICA8bGk+VGhlIG1vZHVsZSBpcyBhdXRvbWF0aWNhbGx5IGV4cG9ydGVkIHRvIHNtYXJ0eTwvbGk+DQogICAgPGxpPkFkZCB0aGUgZ2V0X2FjdGlvbl9pZCBhbmQgc2V0X2FjdGlvbl9pZCB2aXJ0dWFsIG1ldGhvZHMgdGhhdCBzaG91bGQgYmUgb3ZlcnJpZGRlbiBieSBhbnkgbW9kdWxlIGRlcml2ZWQgZnJvbSBDR0V4dGVuc2lvbnMuPC9saT4NCiAgPC91bD4NCiAgPC9saT4NCjxsaT5WZXJzaW9uIDEuOC4gTWF5IDIwMDgNCiAgPHVsPg0KICAgIDxsaT5NaW5vciBjaGFuZ2UgYW5kIGFkZGl0aW9uIHRvIFJlZGlyZWN0VG9UYWI8L2xpPg0KICA8L3VsPg0KPC91bD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XYXMgbWFjaHQgZGllc2VzIE1vZHVsPzwvaDM+DQo8cD5EaWVzZXMgTW9kdWwgc3RlbGx0IGVpbmUgQVBJLCB3aWVkZXJ2ZXJ3ZW5kYmFyZSBGb3JtdWxhcmUgdW5kIFNtYXJ0eS1UYWdzIHp1ciBWZXJ3ZW5kdW5nIGluIGFuZGVyZW4gTW9kdWxlbiBiZXJlaXQuIERhcyBoZWlzc3QsIGVzIGlzdCBhdXNzY2hsaWUmc3psaWc7bGljaCBlaW5lIEJhc2lzLUtsYXNzZSB1bmQgV2Vya3pldWctS2xhc3NlIGYmdXVtbDtyIGFuZGVyZSBNb2R1bGUuIFdlbm4gU2llIGtlaW4gUHJvZ3JhbW1pZXJlciBzaW5kLCBzb2xsdGVuIFNpZSBrYXVtIG1pdCBkZW0gTW9kdWwgenUgdHVuIGhhYmVuIChhdSZzemxpZztlciB2aWVsbGVpY2h0IGVpbiBwYWFyIEVpc250ZWxsdW5nZW4gdm9ybmVobWVuKS48L3A+DQo8aDMgc3R5bGU9JnF1b3Q7Y29sb3I6ICNmMDA7JnF1b3Q7PkhpbndlaXNlPC9oMz4NCjxwPkVpbmlnZSBNb2R1bGUgdmVyd2VuZGVuIGYmdXVtbDtyIGRpZSBWZXJ3YWx0dW5nIHZvbiBUZW1wbGF0ZXMgRm9ybXVsYXJlLCBkaWUgdm9tIENHRXh0ZW5zaW9ucy1Nb2R1bCBiZXJlaXQgZ2VzdGVsbHQgd2VyZGVuLiBJbiBkaWVzZW0gRmFsbCB3aXJkIGRhcyBDR0V4dGVuc2lvbnMtTW9kdWwgYW5nZXplaWd0LiBXZW5uIFNpZSBkYW5uIGluIGRpZXNlbiBGb3JtdWxhcmVuIGF1ZiAmIzAzOTtBYnNlbmRlbiYjMDM5OyBvZGVyICYjMDM5O0FiYnJlY2hlbiYjMDM5OyBrbGlja2VuLCBrZWhyZW4gU2llIHdpZWRlciB6dSBkZW0gdXJzcHImdXVtbDtuZ2xpY2hlbiBNb2R1bCB6dXImdXVtbDtjay48L3A+DQo8aDM+V2llIHdpcmQgZXMgZWluZ2VzZXR6dD88L2gzPg0KPHA+T0ssIFNpZSBtJm91bWw7Y2h0ZW4gZWluIGVpZ2VuZXMgTW9kdWwgcHJvZ3JhbW1pZXJlbiAoaWNoIGVtZmVobGUgSWhuZW4sIG1pdCBkZW0gU2tlbGV0b24tTW9kdWwgenUgYmVnaW5uZW4pLiBXZW5uIFNpZSBlaW4gRm9ybXVsYXItT2JqZWt0IGF1cyBkaWVzZXIgQmlibGlvdGhlayBiZW4mb3VtbDt0aWdlbiwgbSZ1dW1sO3NzZW4gU2llIElociBNb2R1bCBudXIgdm9uIEZvcm1PYmplY3RzIGFiaCZhdW1sO25naWcgbWFjaGVuIHVuZCBkYW5uIGVpbiBPYmpla3QgZGVzIGVudHNwcmVjaGVuZGVuIFR5cHMgaW5zdGFuemlpZXJlbi4gRiZ1dW1sO3Igd2VpdGVyZSBJbmZvcm1hdGlvbmVuIHNlaGVuIFNpZSBzaWNoIGJpdHRlIGRlbiBDb2RlIGltIFZlcnplaWNobmlzIEZvcm1PYmplY3RzIGFuLjwvcD4NCjxoMz5TbWFydHktRXJ3ZWl0ZXJ1bmdlbjwvaDM+DQo8cD5EaWVzZXMgTW9kdWwgc3RlbGx0IGVpbmUgcGFhciBTbWFydHktRXJ3ZWl0ZXJ1bmdlbiB6dXIgVmVyd2VuZHVuZyBpbiBhbmRlcmVuIE1vZHVsZW4gYmVyZWl0LCBkaWUgaW0gZm9sZ2VuZGVuIGJlc2NocmllYmVuIHdlcmRlbjo8L3A+DQo8dWw+DQo8bGk+Y2dlcnJvciAtIDxlbT5ibG9jazwvZW0+IHBsdWdpbg0KPHA+QmVpc3BpZWw6IDxjb2RlPntjZ2Vycm9yfURpZXMgaXN0IGVpbiBGZWhsZXJ0ZXh0ey9jZ2Vycm9yfTwvY29kZT48YnIvPg0KICAgIG9kZXI6IDxjb2RlPntjZ2Vycm9yfXskZXJyb3J0ZXh0dmFyfXsvY2dlcnJvcn08L2JyPg0KPC9wPg0KPHA+b3B0aW9uYWxlIFBhcmFtZXRlcjogJiMwMzk7ZXJyb3JjbGFzcyYjMDM5OyA9ICZ1dW1sO2JlcnNjaHJlaWJ0IGRlbiB2b3JnZWdlYmVuZW4gS2xhc3Nlbm5hbWVuIGRlcyBUZW1wbGF0ZXMuDQo8L3A+DQo8cD5CZXNjaHJlaWJ1bmc6IERpZXNlcyBibG9jay1QbHVnaW4gdmVyd2VuZGV0IGRhcyBlcnJvci1UZW1wbGF0ZSwgdW0gZWluZSBGZWhsZXJuYWNocmljaHQgYW56dXplaWdlbi4gRGFzIFRlbXBsYXRlIGthbm4gaW4gZGVyIEFkbWluaXN0cmF0aW9uIGRlcyBDR0V4dGVuc2lvbnMtTW9kdWxzIGtvbmZpZ3VyaWVydCB3ZXJkZW4uPC9wPg0KPC91bD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPkRpZXNlcyBNb2R1bCBiZWluaGFsdGV0IGtlaW5lbiBrb21tZXJ6aWVsbGVuIFN1cHBvcnQuIFNpZSBrJm91bWw7bm5lbiBqZWRvY2ggJnV1bWw7YmVyIGZvbGdlbmRlIE0mb3VtbDtnbGljaGtlaXRlbiBIaWxmZSB6dSBkZW0gTW9kdWwgZXJoYWx0ZW46PC9wPg0KPHVsPg0KPGxpPkYmdXVtbDtyIGRpZSBsZXR6dGUgVmVyc2lvbiBkaWVzZXMgTW9kdWxzLCBGQVFzLCBkZW0gVmVyc2FuZCBlaW5lcyBGZWhsZXJyZXBvcnRzIG9kZXIgZGVtIEthdWYga29tbWVyemllbGxlbiBTdXBwb3J0IGJlc3VjaGVuIHNpZSBiaXR0ZSBkaWUgUHJvamVrdHNlaXRlIHVudGVyIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5kZXYuY21zbWFkZXNpbXBsZS5vcmc8L2E+LjwvbGk+DQo8bGk+RWluZSB3ZWl0ZXJlIERpc2t1c3Npb24genUgZGllc2VtIE1vZHVsIGlzdCBhdWNoIGluIGRlbiBGb3JlbiB2b24gPGEgaHJlZj0mcXVvdDtodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+Q01TIE1hZGUgU2ltcGxlPC9hPiB6dSBmaW5kZW4uPC9saT4NCjxsaT5EZXIgQXV0b3IgY2FsZ3V5MTAwMCwgaXN0IGgmYXVtbDt1ZmlnIGltIDxhIGhyZWY9JnF1b3Q7aXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zJnF1b3Q7PkNNUyBJUkMgQ2hhbm5lbDwvYT4genUgZmluZGVuLjwvbGk+DQo8bGk+TGV0enRsaWNoIGVycmVpY2hlbiBzaWUgZGVuIEF1dG9yIGF1Y2ggJnV1bWw7YmVyIGVpbmUgZGlyZWt0ZSBFbWFpbC48L2xpPiAgDQo8L3VsPg0KPHA+TmFjaCBkZXIgR1BMIHdpcmQgZGllc2UgU29mdHdhcmUgc28gdmVyJm91bWw7ZmZlbnRsaWNodCwgd2llIHNpZSBpc3QuIEJpdHRlIGxlc2VuIFNpZSBkZW4gTGl6ZW56dGV4dCBmJnV1bWw7ciBkZW4gdm9sbGVuIEhhZnR1bmdzYXVzc2NobHVzcy48L3A+DQoNCjxoMz5Db3B5cmlnaHQgdW5kIExpemVuejwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIFJvYmVydCBDYW1wYmVsbCA8YSBocmVmPSZxdW90O21haWx0bzpjYWxndXkxMDAwQGhvdG1haWwuY29tJnF1b3Q7PmNhbGd1eTEwMDBAaG90bWFpbC5jb208L2E+LiBBbGxlIFJlY2h0ZSB2b3JiZWhhbHRlbi48L3A+DQo8cD5EaWVzZXMgTW9kdWwgd3VyZGUgdW50ZXIgZGVyIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7PkdOVSBQdWJsaWMgTGljZW5zZTwvYT4gdmVyJm91bWw7ZmZlbnRsaWNodC4gU2llIG0mdXVtbDtzc2VuIGRpZXNlciBMaXplbnogenVzdGltbWVuLCBiZXZvciBTaWUgZGFzIE1vZHVsIHZlcndlbmRlbi48L3A+DQo8cD5UaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQooYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjwvcD4NCjxwPkhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZA0KYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlDQppbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TDQpNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gDQpzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4NCjxwPlRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCkZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQpPciByZWFkIGl0IDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7Pm9ubGluZTwvYT48L3A+JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuNzE3NDYyNzM2LjExNDc1MTE4NTYuMTIxMzc4MDYyMC4xMjEzNzgyNzY0LjMyMCc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMTI5MDY1MzUuMzE4LjEudXRtY2NuPShkaXJlY3QpfHV0bWNzcj0oZGlyZWN0KXx1dG1jbWQ9KG5vbmUpJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/es_ES.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ltYWdlX2V4dGVuc2lvbnMnXSA9ICdFeHRlbnNpb25lcyBkZSBBcmNoaXZvcyBkZSBJbWFnZW5lcyc7CiRsYW5nWydncm91cCddID0gJ0dydXBvJzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnUGxhbnRpbGxhJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZWxlY2Npb25hciBVbm8nOwokbGFuZ1sncHJvbXB0X2VkaXR0ZW1wbGF0ZSddID0gJ0VkaXRhciBQbGFudGlsbGEnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXRlbXBsYXRlJ10gPSAnQm9ycmFyIFBsYW50aWxsYSc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGVuYW1lJ10gPSAnTm9tYnJlIGRlIFBsYW50aWxsYSc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdUZXh0byBkZSBQbGFudGlsbGEnOwokbGFuZ1sncHJvbXB0X25hbWUnXSA9ICdOb21icmUgZGUgUGxhbnRpbGxhJzsKJGxhbmdbJ3Byb21wdF9uZXd0ZW1wbGF0ZSddID0gJ051ZXZhIFBsYW50aWxsYSc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdCddID0gJ1BvciBEZWZlY3RvJzsKJGxhbmdbJ3llcyddID0gJ1NpJzsKJGxhbmdbJ25vJ10gPSAnTm8gJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ0Vudmlhcic7CiRsYW5nWydhcHBseSddID0gJ0FwbGljYXInOwokbGFuZ1snY2FuY2VsJ10gPSAnQ2FuY2VsYXInOwokbGFuZ1snZWRpdCddID0gJ0VkaXRhcic7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnRXN0JmFhY3V0ZTsgc2VndXJvPyc7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ1Jlc3RhdXJhciBhIHZhbG9yZXMgcG9yIGRlZmVjdG8nOwokbGFuZ1snZXJyb3JfdGVtcGxhdGUnXSA9ICdQbGFudGlsbGEgZGUgRXJyb3InOwokbGFuZ1snZXJyb3JfdGVtcGxhdGVuYW1lZXhpc3RzJ10gPSAnWWEgZXhpc3RlIHVuYSBQbGFudGlsbGEgY29uIGVzZSBub21icmUnOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnRXh0ZW5zaW9uZXMgTW9kdWxhcmVzIGRlIENhbGd1eSc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0VzdGUgbSZvYWN1dGU7ZHVsbyBlc3QmYWFjdXRlOyBsaXN0byBwYXJhIHNlciB1dGlsaXphZG8uJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdOb3MgdmVtb3Mgb3RybyBkJmlhY3V0ZTthLic7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ00mb2FjdXRlO2R1bG8gRGVzaW5zdGFsYWRvLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdWZXJzaW9uIGRlIGVzdGUgbSZvYWN1dGU7ZHVsbyBpbnN0YWxhZGE6ICVzJzsKJGxhbmdbJ3ByZWZzdXBkYXRlZCddID0gJ1ByZWZlcmVuY2lhcyBBY3R1YWxpemFkYXMuJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ0FjY2VzbyBEZW5lZ2Fkby4gUG9yIGZhdm9yIHJldmlzZSBzdXMgcGVybWlzb3MuJzsKJGxhbmdbJ2Vycm9yJ10gPSAnJmlleGNsO0Vycm9yISc7CiRsYW5nWyd1cGdyYWRlZCddID0gJ00mb2FjdXRlO2R1bG8gYWN0dWFsaXphZG8gYSB2ZXJzaW9uICVzLic7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ0VzdGUgbSZvYWN1dGU7ZHVsbyBlcyB1bmEgbGlicmVyaWEgZGUgY2xhc2VzIHBocCB1c2FkYXMgcGFyYSBjb25zdHJ1aXIgZm9ybXVsYXJpb3MgYXZhbnphZG9zJzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIDEuMC4wLiBNYXJjaCAyMDA3LiAgSW5pdGlhbCBSZWxlYXNlLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjAuMS4gQXByaWwgMjAwNy4gIEZpeGVzIHRvIENyZWF0ZUltYWdlTGluazwvbGk+DQo8bGk+VmVyc2lvbiAxLjAuMi4gQXByaWwgMjAwNy4gIENyZWF0ZUltYWdlTGluayB3aWxsIG5vdyB3b3JrIG9uIHRoZSBmcm9udGVuZC48L2xpPg0KPGxpPlZlcnNpb24gMS4wLjMuIFNlcHRlbWJlciAyMDA3LiAgQWRkcyBhcHBseSBidXR0b25zIHRvIG5ldyB0ZW1wbGF0ZXMuPC9saT4NCjxsaT5WZXJzaW9uIDEuMS4gICBTZXB0ZW1iZXIgMjAwNy4gIEFkZHMgZGVmYXVsdCBmcm9udGVuZCBlcnJvciBoYW5kbGluZyBwbHVnaW4uPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+JmlxdWVzdDtRdSZlYWN1dGU7IEhhY2UgRXN0bz88L2gzPg0KPHA+RXN0ZSBtJm9hY3V0ZTtkdWxvIHByb3ZlZSB0YWdzIGFwaSB5IHNtYXJ0eSBkZSBjb252ZW5pZW5jaWEgZW4gZWwgdXNvIGRlIG90cm9zIG0mb2FjdXRlO2R1bG9zLiAgVGllbmUgZWwgcyZvYWN1dGU7bG8gc2VudGlkbyBkZSBzZXIgdW5hIGNsYXNlIGRlIGJhc2UgeSB1bmEgY2xhc2UgZGUgdXRpbGlkYWQgcGFyYSBvdHJvcyBtJm9hY3V0ZTtkdWxvcy48L3A+DQo8aDM+QyZvYWN1dGU7bW8gVXNvIGEgRXN0bzwvaDM+DQo8cD5CdWVubywgdXN0ZWQgY29taWVuemEgZWwgZGVzYXJyb2xsbyBkZSBzdSBwcm9waW8gbSZvYWN1dGU7ZHVsbyAoeW8gc3VnaWVybyBoYWNlcmxvIGNvbiBlbCBtJm9hY3V0ZTtkdWxvIFNrZWxldG9uKSwgeSBlbnRvbmNlcyBjdWFuZG8gdXN0ZWQgbmVjZXNpdGUgdXNhciB1biBvYmpldG8gZm9ybXVsYXJpbyBhdmFuemFkbyBkZSBlc3RhIGxpYnJlciZpYWN1dGU7YSwgc2ltcGxlbWVudGUgZGViZSBoYWNlciBxdWUgc3UgbSZvYWN1dGU7ZHVsbyBzZWEgZGVwZW5kaWVudGUgZGVsIEZvcm1PYmplY3RzLCB5IGx1ZWdvIGluc3RhbmNpYXIgdW4gb2JqZXRvIGRlbCB0aXBvIGFwcm9waWFkby4gIFZlYSBlbCBjJm9hY3V0ZTtkaWdvIGRlbnRybyBkZWwgZGlyZWN0b3JpbyBkZSBGb3JtT2JqZWN0cyBwb3IgaW5zdHJ1Y2Npb25lcyBkZSB1c28uPC9wPg0KPGgzPkFncmVnYWRvcyBTbWFydHk8L2gzPg0KPHA+RXN0ZSBtJm9hY3V0ZTtkdWxvIGFncmVnYSB1bmFzIHBvY2FzIGV0aXF1ZXRhcyBzbWFydHkgcGFyYSBzZXIgdXNhZGFzIGVuIG90cm9zIG0mb2FjdXRlO2R1bG9zLiBTZSBsaXN0YW4geSBkZXNjcmliZW4gYSBjb250aW51YWNpJm9hY3V0ZTtuOjwvcD4NCjx1bD4NCjxsaT5jZ2Vycm9yIC0gPGVtPmJsb2NrPC9lbT4gcGx1Z2luDQo8cD5pLmU6IDxjb2RlPntjZ2Vycm9yfUVzdGUgZXMgdGV4dG8gZGUgZXJyb3J7L2NnZXJyb3J9PC9jb2RlPjxici8+DQogICAgb3I6IDxjb2RlPntjZ2Vycm9yfXskZXJyb3J0ZXh0dmFyfXsvY2dlcnJvcn08L2JyPg0KPC9wPg0KPHA+b3B0aW9uYWwgcGFyYW1ldGVyczogJiMwMzk7ZXJyb3JjbGFzcyYjMDM5OyA9IHJlZW1wbGF6YSBlbCBub21icmUgZGUgbGEgY2xhc2UgcG9yIGRlZmVjdG8gZW4gbGEgcGxhbnRpbGxhLg0KPC9wPg0KPHA+RGVzY3JpcGNpJm9hY3V0ZTtuOiBFc3RlIHBsdWdpbiBibG9jayB1c2EgbGEgcGxhbnRpbGxhIGRlIGVycm9yIChjb25maWd1cmFibGUgZGVzZGUgbGEgaW50ZXJmYXNlIGRlIGFkbWluaXN0cmFjaSZvYWN1dGU7biBkZSBDR0V4dGVuc2lvbnMpIHBhcmEgbW9zdHJhciB1biBtZW5zYWplIGRlIGVycm9yLjwvcD4NCjwvdWw+DQo8aDM+U29wb3J0ZTwvaDM+DQo8cD5Fc3RlIG0mb2FjdXRlO2R1bG8gbm8gaW5jbHV5ZSBzb3BvcnRlIGNvbWVyY2lhbC4gU2luIGVtYmFyZ28sIGhheSB1biBzaW4gbiZ1YWN1dGU7bWVybyBkZSByZWN1cnNvcyBkaXNwb25pYmxlcyBwYXJhIGF5dWRhciBhIHVzdGVkIGNvbiAmZWFjdXRlO2w6PC9wPg0KPHVsPg0KPGxpPlBvciBsYSB2ZXJzaSZvYWN1dGU7biAmdWFjdXRlO2x0aW1hIGRlIGVzdGUgbSZvYWN1dGU7ZHVsbywgRkFRcywgcGFyYSBwcmVzZW50YXIgdW4gYXJjaGl2byBkZSBJbmZvcm1lIGRlIEJ1ZyBvIGNvbXByYXIgc29wb3J0ZSBjb21lcmNpYWwsIHBvciBmYXZvciB2aXNpdGUgZWwgc2l0aW8gd2ViIGRlbCBtJm9hY3V0ZTtkdWxvIGVuIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5kZXYuY21zbWFkZXNpbXBsZS5vcmc8L2E+LjwvbGk+DQo8bGk+QWRlbSZhYWN1dGU7cyBlbCBpbnRlcmNhbWJpbyBkZSBpZGVhcyByZXNwZWN0byBhIGVzdGUgbSZvYWN1dGU7ZHVsbyBzZSBwdWVkZSByZWFsaXphciB2aXNpdGFuZG8gYSA8YSBocmVmPSZxdW90O2h0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5Gb3JvIGRlIENNUyBNYWRlIFNpbXBsZTwvYT4uPC9saT4NCjxsaT5FbCBhdXRvciwgY2FsZ3V5MTAwMCwgY29uIGZyZWN1ZW5jaWEgcHVlZGUgZW5jb250cmFybG8gZW4gZWwgPGEgaHJlZj0mcXVvdDtpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMmcXVvdDs+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkZpbmFsbWVudGUsIHB1ZWRlIHRlbmVyIGFsZyZ1YWN1dGU7biAmZWFjdXRlO3hpdG8gZW52aWFuZG8gdW4gZW1haWwgYWwgYXV0b3IgZW4gZm9ybWEgZGlyZWN0YS48L2xpPg0KPC91bD4NCjxwPkRlIGFjdWVyZG8gY29uIGxhIEdQTCwgZXN0ZSBzb2Z0d2FyZSBzZSBwcm92ZWUgY29tbyBlcy4gUG9yIGZhdm9yIGxlYSBlbCB0ZXh0byBkZSBsYSBsaWNlbmNpYSBwb3IgY29tcGxldG8gcGFyYSBjb25vY2VyIHN1cyBhZmlybWFjaW9uZXMuPC9wPg0KPGgzPkNvcHlyaWdodCB5IExpY2VuY2lhPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwNywgUm9iZXJ0IENhbXBiZWxsIDxhIGhyZWY9JnF1b3Q7bWFpbHRvOmNhbGd1eTEwMDBAaG90bWFpbC5jb20mcXVvdDs+PGNhbGd1eTEwMDBAaG90bWFpbC5jb20+PC9hPi4gVG9kb3MgbG9zIERlcmVjaG9zIFJlc2VydmFkb3MuPC9wPg0KPHA+RXN0ZSBtJm9hY3V0ZTtkdWxvIHNlIGhhIHJlYWxpemFkbyBiYWpvIGxhIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7PkxpY2VuY2lhIFAmdWFjdXRlO2JsaWNhIEdOVTwvYT4uIFVzdGVkIGRlYmUgZXN0YXIgZGUgYWN1ZXJkbyBjb24gbGEgbGljZW5jaWEgYW50ZXMgZGUgdXNhciBlbCBtJm9hY3V0ZTtkdWxvLjwvcD4NCic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjExOTkzODI3NzYuMjc1LjY2LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L2luZGV4LnBocC90b3BpYywxODI3NC4wL3RvcGljc2Vlbi5odG1sfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjEyODMxOTAxNzcuMTE5MjU3MjgwOS4xMTk5NTA0NTU4LjExOTk1NzYzMTYuMjc3JzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fi_FI.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ0NHRklMRVVQTE9BRF9OT0ZJTEUnXSA9ICdObyBmaWxlIHVwbG9hZGVkIG1hdGNoaW5nIHRoZSBzcGVjaWZpY2F0aW9ucyc7CiRsYW5nWydDR0ZJTEVVUExPQURfRklMRVNJWkUnXSA9ICdTaWlycmV0dCZhdW1sO3YmYXVtbDtuIHRpZWRvc3RvbiBrb2tvIHlyaXR0JmF1bWw7JmF1bWw7IHNhbGxpdHVuIG1ha3NpbWlhcnZvbic7CiRsYW5nWydDR0ZJTEVVUExPQURfRklMRVRZUEUnXSA9ICdUJmF1bWw7dCZhdW1sOyB0eXlwcGkmYXVtbDsgb2xldmlhIHRpZWRvc3RvamEgZWkgdm9pIHNpaXJ0JmF1bWw7JmF1bWw7JzsKJGxhbmdbJ0NHRklMRVVQTE9BRF9GSUxFRVhJU1RTJ10gPSAnU2FtYW5uaW1pbmVuIHRpZWRvc3RvIG9uIGpvIG9sZW1hc3NhJzsKJGxhbmdbJ0NHRklMRVVQTE9BRF9CQURERVNURElSJ10gPSAnU2lpcnJldHQmYXVtbDt2aWxsZSB0aWVkb3N0b2lsbGUgbSZhdW1sOyZhdW1sO3JpdGV0dHkmYXVtbDsga29oZGVoYWtlbWlzdG9hIGVpIG9sZSBvbGVtYXNzYSc7CiRsYW5nWydDR0ZJTEVVUExPQURfQkFEUEVSTVMnXSA9ICdLb2hkZWhha2VtaXN0b24gdGllZG9zdG8tb2lrZXVkZXQgZXN0JmF1bWw7diZhdW1sO3Qgc2lpcnJldHluIHRpZWRvc3RvbiB0YWxsZW50YW1pc2VuJzsKJGxhbmdbJ0NHRklMRVVQTE9BRF9NT1ZFRkFJTEVEJ10gPSAnWXJpdHlzIHNpaXJ0JmF1bWw7JmF1bWw7IHRpZWRvc3RvIGxvcHVsbGlzZWVuIGtvaGRlaGFrZW1pc3Rvb24gZXAmYXVtbDtvbm5pc3R1aS4nOwokbGFuZ1sndGh1bWJuYWlsX3NpemUnXSA9ICdQaWVub2lza3V2aWVuIGtva28nOwokbGFuZ1snaW1hZ2VfZXh0ZW5zaW9ucyddID0gJ0t1dmF0aWVkb3N0b2plbiB0aWVkb3N0b3AmYXVtbDsmYXVtbDt0dGVldCc7CiRsYW5nWydncm91cCddID0gJ1J5aG0mYXVtbDsnOwokbGFuZ1sndGVtcGxhdGUnXSA9ICdQb2hqYSc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnVmFsaXRzZSB5a3NpJzsKJGxhbmdbJ3ByaW9yaXR5X2NvdW50cmllcyddID0gJ1ByaW9yaXR5IENvdW50cmllcyc7CiRsYW5nWydwcm9tcHRfZWRpdHRlbXBsYXRlJ10gPSAnTXVva2thYSBwb2hqYWEnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXRlbXBsYXRlJ10gPSAnUG9pc3RhIHBvaGphJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZW5hbWUnXSA9ICdQb2hqYW4gbmltaSc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdQb2hqYW4ga29vZGknOwokbGFuZ1sncHJvbXB0X25hbWUnXSA9ICdQb2hqYW4gbmltaSc7CiRsYW5nWydwcm9tcHRfbmV3dGVtcGxhdGUnXSA9ICdVdXNpIHBvaGphJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0J10gPSAnT2xldHVzJzsKJGxhbmdbJ3llcyddID0gJ0t5bGwmYXVtbDsnOwokbGFuZ1snbm8nXSA9ICdFaSc7CiRsYW5nWydzdWJtaXQnXSA9ICdMJmF1bWw7aGV0JmF1bWw7JzsKJGxhbmdbJ2FwcGx5J10gPSAnT3RhIGsmYXVtbDt5dHQmb3VtbDsmb3VtbDtuJzsKJGxhbmdbJ2NhbmNlbCddID0gJ1BlcnUnOwokbGFuZ1snZWRpdCddID0gJ011b2trYWEnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ09sZXRrbyB2YXJtYT8nOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdOb2xsYWEgb2xldHVzIHBvaGpha3NpJzsKJGxhbmdbJ2Vycm9yX3RlbXBsYXRlJ10gPSAnVmlyaGUgcG9oamEnOwokbGFuZ1snZXJyb3JfdGVtcGxhdGVuYW1lZXhpc3RzJ10gPSAnU2FtYWxsYSBuaW1lbGwmYXVtbDsgb24gam8gb2xlbWFzc2EgcG9oamEnOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnQ2FsZ3V5cyBNb2R1bGUgRXh0ZW5zaW9ucyc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ01vZHVsaSBvbiB2YWxtaXMgayZhdW1sO3l0ZXR0JmF1bWw7diZhdW1sO2tzaS4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ04mYXVtbDtoZCZhdW1sOyZhdW1sO24gdGFhcyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHV1bGkgcG9pc3RldHR1JzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHV1bGluIHZlcnNpbyAlcyBhc2VubmV0dHUuJzsKJGxhbmdbJ3ByZWZzdXBkYXRlZCddID0gJ01vZHVsaW4gYXNldHVrc2V0IHAmYXVtbDtpdml0ZXR0eS4nOwokbGFuZ1snYWNjZXNzZGVuaWVkJ10gPSAnSyZhdW1sO3l0dCZvdW1sO29pa2V1c3ZpcmhlISBUYXJraXN0YSBvaWtldXRlc2kuJzsKJGxhbmdbJ2Vycm9yJ10gPSAnVmlyaGUhJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdXVsaSBwJmF1bWw7aXZpdGV0dHkgdmVyc2lvb24gJXMuJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnVCZhdW1sO20mYXVtbDsgbW9kdWxpIG9uIHBocC1rb29kaWtpcmphc3RvIGVkaXN0eW55dHQmYXVtbDsgbG9tYWtrZWlkZW4gcmFrZW50YW1pc3RhIHZhcnRlbic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQo8bGk+VmVyc2lvbiAxLjAuMC4gTWFyY2ggMjAwNy4gIEluaXRpYWwgUmVsZWFzZS48L2xpPg0KPGxpPlZlcnNpb24gMS4wLjEuIEFwcmlsIDIwMDcuICBGaXhlcyB0byBDcmVhdGVJbWFnZUxpbms8L2xpPg0KPGxpPlZlcnNpb24gMS4wLjIuIEFwcmlsIDIwMDcuICBDcmVhdGVJbWFnZUxpbmsgd2lsbCBub3cgd29yayBvbiB0aGUgZnJvbnRlbmQuPC9saT4NCjxsaT5WZXJzaW9uIDEuMC4zLiBTZXB0ZW1iZXIgMjAwNy4gIEFkZHMgYXBwbHkgYnV0dG9ucyB0byBuZXcgdGVtcGxhdGVzLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjEuICAgU2VwdGVtYmVyIDIwMDcuICBBZGRzIGRlZmF1bHQgZnJvbnRlbmQgZXJyb3IgaGFuZGxpbmcgcGx1Z2luLjwvbGk+DQo8L3VsPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGlzIG1vZHVsZSBtZXJlbHkgcHJvdmlkZXMgY29udmVuaWVuY2UgYXBpJiMwMzk7cyBhbmQgc21hcnR5IHRhZ3MgZm9yIHVzZSBpbiBvdGhlciBtb2R1bGVzLiAgSXQgaXMgbWVhbnQgc29sZWx5IGFzIGEgYmFzZSBjbGFzcyBhbmQgdXRpbGl0eSBjbGFzcyBmb3Igb3RoZXIgbW9kdWxlcy48L3A+DQo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4NCjxwPldlbGwsIHlvdSBzdGFydCB5b3VyIG93biBtb2R1bGUgKEkgc3VnZ2VzdCBzdGFydGluZyB3aXRoIHRoZSBTa2VsZXRvbiBtb2R1bGUpLCBhbmQgdGhlbiB3aGVuIHlvdSBuZWVkIHRvIHVzZSBhbiBhZHZhbmNlZCBmb3JtIG9iamVjdCBmcm9tIHRoaXMgbGlicmFyeSwgc2ltcGx5IG1ha2UgeW91ciBtb2R1bGUgZGVwZW5kYW50IHVwb24gRm9ybU9iamVjdHMsIGFuZCB0aGVuIGluc3RhbnRpYXRlIGFuIG9iamVjdCBvZiB0aGUgYXBwcm9wcmlhdGUgdHlwZS4gIFNlZSB0aGUgY29kZSBpbnNpZGUgdGhlIEZvcm1PYmplY3RzIGRpcmVjdG9yeSBmb3IgdXNhZ2UgaW5zdHJ1Y3Rpb25zLjwvcD4NCjxoMz5TbWFydHkgQWRkb25zPC9oMz4NCjxwPlRoaXMgbW9kdWxlIGFkZHMgYSBmZXcgc21hcnR5IGNvbnZlbmllbmNlcyBmb3IgdXNlIHdpdGggb3RoZXIgbW9kdWxlcy4gVGhleSBhcmUgbGlzdGVkIGFuZCBkZXNjcmliZWQgaGVyZTo8L3A+DQo8dWw+DQo8bGk+Y2dlcnJvciAtIDxlbT5ibG9jazwvZW0+IHBsdWdpbg0KPHA+aS5lOiA8Y29kZT57Y2dlcnJvcn1UaGlzIGlzIGVycm9yIHRleHR7L2NnZXJyb3J9PC9jb2RlPjxici8+DQogICAgb3I6IDxjb2RlPntjZ2Vycm9yfXskZXJyb3J0ZXh0dmFyfXsvY2dlcnJvcn08L2JyPg0KPC9wPg0KPHA+b3B0aW9uYWwgcGFyYW1ldGVyczogJiMwMzk7ZXJyb3JjbGFzcyYjMDM5OyA9IG92ZXJyaWRlIHRoZSBkZWZhdWx0IGNsYXNzIG5hbWUgaW4gdGhlIHRlbXBsYXRlLg0KPC9wPg0KPHA+RGVzY3JpcHRpb246IFRoaXMgYmxvY2sgcGx1Z2luIHVzZXMgdGhlIGVycm9yIHRlbXBsYXRlIChjb25maWd1cmFibGUgZnJvbSB0aGUgQ0dFeHRlbnNpb25zIGFkbWluIGludGVyZmFjZSkgdG8gZGlzcGxheSBhbiBlcnJvciBtZXNzYWdlLjwvcD4NCjwvdWw+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQgb3IgYnV5IGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBjbXMgZGV2ZWxvcG1lbnQgZm9yZ2UgYXQgPGEgaHJlZj0mcXVvdDtodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PmRldi5jbXNtYWRlc2ltcGxlLm9yZzwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvcihzKSwgY2FsZ3V5IGV0IGFsbCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zJnF1b3Q7PkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvcihzKSBkaXJlY3RseS48L2xpPiAgDQo8L3VsPg0KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0DQpvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQoNCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA3LCBSb2JlcnQgQ2FtcGJlbGwgPGEgaHJlZj0mcXVvdDttYWlsdG86Y2FsZ3V5MTAwMEBob3RtYWlsLmNvbSZxdW90Oz48Y2FsZ3V5MTAwMEBob3RtYWlsLmNvbT48L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwmcXVvdDs+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4NCic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjE5NTk1NDcxOTMuMTIxMzg2NTc4My4xMjE0MjkxNjg5LjEyMTQyOTY1NDMuMjEnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjE0MDU2MzQ1LjEwLjQudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWRldi5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L2ZvcnVtL2ZvcnVtLnBocHx1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ0NHRklMRVVQTE9BRF9OT0ZJTEUnXSA9ICdBdWN1biBmaWNoaWVyIHVwbG9hZCZlYWN1dGU7IHImZWFjdXRlO3BvbmRhbnQgYXV4IHNwJmVhY3V0ZTtjaWZpY2F0aW9ucyc7CiRsYW5nWydDR0ZJTEVVUExPQURfRklMRVNJWkUnXSA9ICdMYSB0YWlsbGUgZHUgZmljaGllciB1cGxvYWRlciBleCZlZ3JhdmU7ZGUgbGUgbWF4aW11biBhdXRvcmlzJmVhY3V0ZTsnOwokbGFuZ1snQ0dGSUxFVVBMT0FEX0ZJTEVUWVBFJ10gPSAnTGVzIGZpY2hpZXJzIGRlIGNlIHR5cGUgbmUgcGV1dmVudCAmZWNpcmM7dHJlIHVwbG9hZCZlYWN1dGU7JzsKJGxhbmdbJ0NHRklMRVVQTE9BRF9GSUxFRVhJU1RTJ10gPSAnVW4gZmljaGllciBkdSBtJmVjaXJjO21lIG5vbSBleGlzdGUgZCZlYWN1dGU7aiZhZ3JhdmU7JzsKJGxhbmdbJ0NHRklMRVVQTE9BRF9CQURERVNURElSJ10gPSAnTGUgZG9zc2llciBkZSBkZXN0aW5hdGlvbiBzcCZlYWN1dGU7Y2lmaSZlYWN1dGU7IHBvdXIgbCYjMDM5O3VwbG9hZCBuJiMwMzk7ZXhpc3RlIHBhcyc7CiRsYW5nWydDR0ZJTEVVUExPQURfQkFEUEVSTVMnXSA9ICdMZXMgcGVybWlzc2lvbnMgc3VyIGxlcyBmaWNoaWVycyBuJiMwMzk7YXV0b3Jpc2VudCBwYXMgbCYjMDM5O3VwbG9hZCB2ZXJzIGxlIGRvc3NpZXIgZGUgZGVzdGluYXRpb24nOwokbGFuZ1snQ0dGSUxFVVBMT0FEX01PVkVGQUlMRUQnXSA9ICdJbXBvc3NpYmxlIGRlIGQmZWFjdXRlO3BsYWNlciBsZSBmaWNoaWVyIHZlcnMgc2EgZGVzdGluYXRpb24nOwokbGFuZ1sndGh1bWJuYWlsX3NpemUnXSA9ICdUYWlsbGUgZGVzIHZpZ25ldHRlcyZuYnNwOyc7CiRsYW5nWydpbWFnZV9leHRlbnNpb25zJ10gPSAnRXh0ZW5zaW9ucyBkZXMgZmljaGllcnMgaW1hZ2UmbmJzcDsnOwokbGFuZ1snZ3JvdXAnXSA9ICdHcm91cGUnOwokbGFuZ1sndGVtcGxhdGUnXSA9ICdHYWJhcml0JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTJmVhY3V0ZTtsZWN0aW9ubmVyIHVuJzsKJGxhbmdbJ3ByaW9yaXR5X2NvdW50cmllcyddID0gJ1ByaXJvcml0JmVhY3V0ZTsgZHUgcGF5cyZuYnNwOyc7CiRsYW5nWydwcm9tcHRfZWRpdHRlbXBsYXRlJ10gPSAnJkVhY3V0ZTtkaXRlciBsZSBnYWJhcml0JzsKJGxhbmdbJ3Byb21wdF9kZWxldGV0ZW1wbGF0ZSddID0gJ1N1cHByaW1lciBsZSBnYWJhcml0JzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZW5hbWUnXSA9ICdOb20gZHUgZ2FiYXJpdCZuYnNwOyc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdUZXh0ZSBkdSBnYWJhcml0Jm5ic3A7JzsKJGxhbmdbJ3Byb21wdF9uYW1lJ10gPSAnTm9tIGR1IGdhYmFyaXQnOwokbGFuZ1sncHJvbXB0X25ld3RlbXBsYXRlJ10gPSAnTm91dmVhdSBnYWJhcml0JzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0J10gPSAnUGFyIGQmZWFjdXRlO2ZhdXQnOwokbGFuZ1sneWVzJ10gPSAnT3VpJzsKJGxhbmdbJ25vJ10gPSAnTm9uJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1NvdW1ldHRyZSc7CiRsYW5nWydhcHBseSddID0gJ0FwcGxpcXVlcic7CiRsYW5nWydjYW5jZWwnXSA9ICdBbm51bGVyJzsKJGxhbmdbJ2VkaXQnXSA9ICcmRWFjdXRlO2RpdGVyJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICcmRWNpcmM7dGVzLXZvdXMgcyZ1Y2lyYztyID8nOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdSJmVhY3V0ZTtpbml0aWFsaXNlciBhdXggdmFsZXVycyBwYXIgZCZlYWN1dGU7ZmF1dCc7CiRsYW5nWydlcnJvcl90ZW1wbGF0ZSddID0gJ0dhYmFyaXQgIGQmIzAzOTtlcnJldXImbmJzcDsnOwokbGFuZ1snZXJyb3JfdGVtcGxhdGVuYW1lZXhpc3RzJ10gPSAnSWwgeSBhIGQmZWFjdXRlO2omYWdyYXZlOyB1biBnYWJhcml0IGR1IG0mZWNpcmM7bWUgbm9tJzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0NhbGd1eXMgTW9kdWxlIEV4dGVuc2lvbnMnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdDZSBtb2R1bGUgZXN0IHByJmVjaXJjO3QgJmFncmF2ZTsgbCYjMDM5O2VtcGxvaS4gQ29kZXogISc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnQSBiaWVudCZvY2lyYzt0JzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIGQmZWFjdXRlO3NpbnN0YWxsJmVhY3V0ZTsuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ0xhIHZlcnNpb24gJXMgYSAmZWFjdXRlO3QmZWFjdXRlOyBpbnN0YWxsJmVhY3V0ZTtlLic7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdMZXMgcHImZWFjdXRlO2YmZWFjdXRlO3JlbmNlcyBkdSBtb2R1bGUgb250ICZlYWN1dGU7dCZlYWN1dGU7IG1pc2VzICZhZ3JhdmU7IGpvdXIuJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ0FjYyZlZ3JhdmU7cyByZWZ1cyZlYWN1dGU7LiBWZXVpbGxleiB2JmVhY3V0ZTtyaWZpZXIgdm9zIHBlcm1pc3Npb25zLic7CiRsYW5nWydlcnJvciddID0gJ0VycmV1ciAhJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTGUgbW9kdWxlIGEgJmVhY3V0ZTt0JmVhY3V0ZTsgbWlzICZhZ3JhdmU7IGpvdXIgJmFncmF2ZTsgbGEgdmVyc2lvbiAlcy4nOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdDZSBtb2R1bGUgZXN0IHVuZSBsaWJyYXJpZSBkZSBjbGFzc2VzIHBocCB1dGlsaXMmZWFjdXRlO2VzIHBvdXIgY3ImZWFjdXRlO2VyIGRlcyBmb3JtdWxhaXJlcyBjb21wbGV4ZXMnOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPg0KPGxpPlZlcnNpb24gMS4wLjAuIE1hcnMgMjAwNy4gIFByZW1pJmVncmF2ZTtyZSB2ZXJzaW9uLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjAuMS4gQXZyaWwgMjAwNy4gIENvcnJlY3Rpb24gJmFncmF2ZTsgbGEgZm9uY3Rpb24gQ3JlYXRlSW1hZ2VMaW5rPC9saT4NCjxsaT5WZXJzaW9uIDEuMC4yLiBBdnJpbCAyMDA3LiAgTGEgZm9uY3Rpb24gQ3JlYXRlSW1hZ2VMaW5rIGZvbmN0aW9ubmUgbWFpbnRlbmFudCBlbiBmcm9udC1lbmQuPC9saT4NCjxsaT5WZXJzaW9uIDEuMC4zLiBTZXB0ZW1icmUgMjAwNy4gIEFqb3V0IGRlIGJvdXRvbnMgQXBwbGlxdWVyIGF1eCBub3V2ZWF1eCBnYWJhcnRpcy48L2xpPg0KPGxpPlZlcnNpb24gMS4xLiAgIFNlcHRlbWJyZSAyMDA3LiAgQWpvdXQgZCYjMDM5O3VuIHBsdWdpbiBxdWkgZyZlZ3JhdmU7cmUgbGVzIGVycmV1cnMgZnJvbnQtZW5kLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjIuICAgTm92ZW1icmUgMjAwNywgIEFqb3V0ZSBwbHVzIGRlIGZvbmN0aW9ucyBwcmF0aXF1ZXM8L2xpPg0KPGxpPlZlcnNpb24gMS4zLiAgIE5vdmVtYnJlIDIwMDcuICBBam91dGUgZW5jb3JlIHBsdXMgZGUgZm9uY3Rpb25zIHByYXRpcXVlc3M8L2xpPg0KPGxpPlZlcnNpb24gMS40LiAgIEQmZWFjdXRlO2NlbWJyZSAyMDA3LiAgQWpvdXQgZCYjMDM5O3VuZSBtJmVhY3V0ZTt0aG9kZSBDcmVhdGVJbWFnZURyb3Bkb3duPC9saT4NCjxsaT5WZXJzaW9uIDEuNS4gICBKYW51YXJ5ICAgMjAwOC4gIEZpeGVzIHRvIGh0bWxfZW50aXRpZXNfZGVjb2RlIGluIHV0Zjg8L2xpPg0KPGxpPlZlcnNpb24gMS42LiAgIEZlYnJ1YXJ5ICAyMDA4LCAgQWRkcyB0aGUgQ0dGaWxlVXBsb2FkSGFuZGxlciBjbGFzczwvbGk+DQo8bGk+VmVyc2lvbiAxLjYuMS4gICBGZWJydWFyeSAgMjAwOCwgIE1pbm9yIGZpeCB0byByZWN1cnNpdmVfY2hhbmdlX2RpcmVjdG9yeTwvbGk+DQo8bGk+VmVyc2lvbiAxLjguIEZlYnJ1YXJ5IDIwMDgNCiAgPHVsPg0KICAgIDxsaT5BZGQgYSBidW5jaCBtb3JlIHV0aWxpdHkgYW5kIGNvbnZlbmllbmNlIG1ldGhvZHM8L2xpPg0KICAgIDxsaT5Nb3ZlIGNvdW50cmllcyBhbmQgc3RhdGVzIGludG8gYSB0YWJsZSBzbyB0aGF0IHRoZXkgY2FuIGJlIHVzZWQgd2l0aCBqb2lucyBldGMuPC9saT4NCiAgICA8bGk+QWRkIHRoZSBhYmlsaXR5IHRvIHByaW9yaXRpemUgY2VydGFpbiBjb3VudHJpZXMgYnkgbmFtZTwvbGk+DQogICAgPGxpPkFkZHMgdGhlIEdldFNpbmdsZVRlbXBsYXRlRm9ybSBtZXRob2QgdG8gbWFrZSBpdCBjb252ZW5pZW50IHRvIGVkaXQgYW5kIHJlc3RvcmUgdG8gZGVmYXVsdCBhIHNpbmdsZSB0ZW1wbGF0ZS48L2xpPg0KICAgIDxsaT5GaXhlcyBpc3N1ZXMgd2l0aCB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIGVkaXRpbmcgdGVtcGxhdGVzLjwvbGk+DQogICAgPGxpPlVwZGF0ZSB0aGUgbGljZW5zZS48L2xpPg0KICAgIDxsaT5VcGRhdGVzIHRvIHRoZSBmaWxlIHVwbG9hZCBjYXBhYmlsaXRpZXM8L2xpPg0KICAgIDxsaT5UaGUgbW9kdWxlIGlzIGF1dG9tYXRpY2FsbHkgZXhwb3J0ZWQgdG8gc21hcnR5PC9saT4NCiAgICA8bGk+QWRkIHRoZSBnZXRfYWN0aW9uX2lkIGFuZCBzZXRfYWN0aW9uX2lkIHZpcnR1YWwgbWV0aG9kcyB0aGF0IHNob3VsZCBiZSBvdmVycmlkZGVuIGJ5IGFueSBtb2R1bGUgZGVyaXZlZCBmcm9tIENHRXh0ZW5zaW9ucy48L2xpPg0KICA8L3VsPg0KICA8L2xpPg0KPGxpPlZlcnNpb24gMS44LiBNYXkgMjAwOA0KICA8dWw+DQogICAgPGxpPk1pbm9yIGNoYW5nZSBhbmQgYWRkaXRpb24gdG8gUmVkaXJlY3RUb1RhYjwvbGk+DQogIDwvdWw+DQo8L3VsPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPlF1ZSBmYWl0IGNlIG1vZHVsZSA/PC9oMz4NCjxwPlRoaXMgbW9kdWxlIG1lcmVseSBwcm92aWRlcyBjb252ZW5pZW5jZSBhcGkmIzAzOTtzIGFuZCBzbWFydHkgdGFncyBmb3IgdXNlIGluIG90aGVyIG1vZHVsZXMuICBJdCBpcyBtZWFudCBzb2xlbHkgYXMgYSBiYXNlIGNsYXNzIGFuZCB1dGlsaXR5IGNsYXNzIGZvciBvdGhlciBtb2R1bGVzLjwvcD4NCjxoMz5Db21tZW50IGwmIzAzOTt1dGlsaXNlciA/PC9oMz4NCjxwPldlbGwsIHlvdSBzdGFydCB5b3VyIG93biBtb2R1bGUgKEkgc3VnZ2VzdCBzdGFydGluZyB3aXRoIHRoZSBTa2VsZXRvbiBtb2R1bGUpLCBhbmQgdGhlbiB3aGVuIHlvdSBuZWVkIHRvIHVzZSBhbiBhZHZhbmNlZCBmb3JtIG9iamVjdCBmcm9tIHRoaXMgbGlicmFyeSwgc2ltcGx5IG1ha2UgeW91ciBtb2R1bGUgZGVwZW5kYW50IHVwb24gRm9ybU9iamVjdHMsIGFuZCB0aGVuIGluc3RhbnRpYXRlIGFuIG9iamVjdCBvZiB0aGUgYXBwcm9wcmlhdGUgdHlwZS4gIFNlZSB0aGUgY29kZSBpbnNpZGUgdGhlIEZvcm1PYmplY3RzIGRpcmVjdG9yeSBmb3IgdXNhZ2UgaW5zdHJ1Y3Rpb25zLjwvcD4NCjxoMz5TbWFydHkgQWRkb25zPC9oMz4NCjxwPlRoaXMgbW9kdWxlIGFkZHMgYSBmZXcgc21hcnR5IGNvbnZlbmllbmNlcyBmb3IgdXNlIHdpdGggb3RoZXIgbW9kdWxlcy4gVGhleSBhcmUgbGlzdGVkIGFuZCBkZXNjcmliZWQgaGVyZTo8L3A+DQo8dWw+DQo8bGk+Y2dlcnJvciAtIDxlbT5ibG9jazwvZW0+IHBsdWdpbg0KPHA+aS5lOiA8Y29kZT57Y2dlcnJvcn1UaGlzIGlzIGVycm9yIHRleHR7L2NnZXJyb3J9PC9jb2RlPjxici8+DQogICAgb3I6IDxjb2RlPntjZ2Vycm9yfXskZXJyb3J0ZXh0dmFyfXsvY2dlcnJvcn08L2JyPg0KPC9wPg0KPHA+b3B0aW9uYWwgcGFyYW1ldGVyczogJiMwMzk7ZXJyb3JjbGFzcyYjMDM5OyA9IG92ZXJyaWRlIHRoZSBkZWZhdWx0IGNsYXNzIG5hbWUgaW4gdGhlIHRlbXBsYXRlLg0KPC9wPg0KPHA+RGVzY3JpcHRpb246IFRoaXMgYmxvY2sgcGx1Z2luIHVzZXMgdGhlIGVycm9yIHRlbXBsYXRlIChjb25maWd1cmFibGUgZnJvbSB0aGUgQ0dFeHRlbnNpb25zIGFkbWluIGludGVyZmFjZSkgdG8gZGlzcGxheSBhbiBlcnJvciBtZXNzYWdlLjwvcD4NCjwvdWw+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQgb3IgYnV5IGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBjbXMgZGV2ZWxvcG1lbnQgZm9yZ2UgYXQgPGEgaHJlZj0mcXVvdDtodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PmRldi5jbXNtYWRlc2ltcGxlLm9yZzwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvcihzKSwgY2FsZ3V5IGV0IGFsbCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zJnF1b3Q7PkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvcihzKSBkaXJlY3RseS48L2xpPiAgDQo8L3VsPg0KPHA+Q29uZm9ybSZlYWN1dGU7bWVudCAmYWdyYXZlOyBsYSBsaWNlbmNlIEdQTCwgY2UgbW9kdWxlIGVzdCBkaXN0cmlidSZlYWN1dGU7IHRlbCBxdWVsLiBWZXVpbGxleiB2b3VzIHImZWFjdXRlO2YmZWFjdXRlO3JlciBkaXJlY3RlbWVudCAmYWdyYXZlOyBsYSBsaWNlbmNlIHBvdXIgdG91dCBhdmlzIGRlIG5vbiByZXNwb25zYWJpbGl0JmVhY3V0ZTsuPC9wPg0KDQo8aDM+Q29weXJpZ2h0IGV0IExpY2VuY2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA3LCBSb2JlcnQgQ2FtcGJlbGwgPGEgaHJlZj0mcXVvdDttYWlsdG86Y2FsZ3V5MTAwMEBob3RtYWlsLmNvbSZxdW90Oz48Y2FsZ3V5MTAwMEBob3RtYWlsLmNvbT48L2E+LlRvdXMgZHJvaXRzIHImZWFjdXRlO3NlcnYmZWFjdXRlO3MuPC9wPg0KPHA+Q2UgbW9kdWxlIGVzdCBkaXN0cmlidSZlYWN1dGU7IHNvdXMgbGEgbGljZW5jZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCZxdW90Oz5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBWb3VzIGRldmV6IGFnciZlYWN1dGU7ZXIgYXV4IHRlcm1lcyBkZSBjZXR0ZSBsaWNlbmNlIHBvdXIgcG91dm9pciB1dGlsaXNlciBjZSBtb2R1bGUuPC9wPg0KJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTIxMTg3ODM0Ny4xLjEudXRtY2NuPShkaXJlY3QpfHV0bWNzcj0oZGlyZWN0KXx1dG1jbWQ9KG5vbmUpJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuODk0NTY0NzAzLjEyMTE4NzgzNDcuMTIxMTg4NzIyNC4xMjExOTA4OTQ2LjQnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/it_IT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ0NHRklMRVVQTE9BRF9OT0ZJTEUnXSA9ICdOZXNzdW4gZmlsZSBjYXJpY2F0byBjaGUgY29ycmlzcG9uZGEgYWxsZSBzcGVjaWZpY2hlJzsKJGxhbmdbJ0NHRklMRVVQTE9BRF9GSUxFU0laRSddID0gJ0xhIGRpbWVuc2lvbmUgZGVsIGZpbGUgY2FyaWNhdG8gc3VwZXJhIGlsIGxpbWl0ZSBtYXNzaW1vIGNvbnNlbnRpdG8nOwokbGFuZ1snQ0dGSUxFVVBMT0FEX0ZJTEVUWVBFJ10gPSAnSSBmaWxlIGRpIHF1ZXN0byB0aXBvIG5vbiBwb3Nzb25vIGVzc2VyZSBjYXJpY2F0aSc7CiRsYW5nWydDR0ZJTEVVUExPQURfRklMRUVYSVNUUyddID0gJ0VzaXN0ZSBnaSZhZ3JhdmU7IHVuIGZpbGUgY29uIGxvIHN0ZXNzbyBub21lJzsKJGxhbmdbJ0NHRklMRVVQTE9BRF9CQURERVNURElSJ10gPSAnTGEgY2FydGVsbGEgZGkgZGVzdGluYXppb25lIHNwZWNpZmljYXRhIHBlciBpbCBjYXJpY2FtZW50byBkZWkgZmlsZSBub24gZXNpc3RlJzsKJGxhbmdbJ0NHRklMRVVQTE9BRF9CQURQRVJNUyddID0gJ0kgcGVybWVzc2kgZGVsIGZpbGUgbm9uIHBlcm1ldHRvbm8gbGEgc2NyaXR0dXJhIGRlbCBmaWxlIGNhcmljYXRvIG5lbGxhIHBvc2l6aW9uZSBkaSBkZXN0aW5hemlvbmUnOwokbGFuZ1snQ0dGSUxFVVBMT0FEX01PVkVGQUlMRUQnXSA9ICdUZW50YXRpdm8gZGkgc3Bvc3RhcmUgaWwgZmlsZSBjYXJpY2F0byBuZWxsYSBzdWEgcG9zaXppb25lIGZpbmFsZSBmYWxsaXRvJzsKJGxhbmdbJ3RodW1ibmFpbF9zaXplJ10gPSAnRGltZW5zaW9uZSBkZWxsYSBtaW5pYXR1cmEnOwokbGFuZ1snaW1hZ2VfZXh0ZW5zaW9ucyddID0gJ0VzdGVuc2lvbmkgZGVpIGZpbGUgaW1tYWdpbmUnOwokbGFuZ1snZ3JvdXAnXSA9ICdHcnVwcG8nOwokbGFuZ1sndGVtcGxhdGUnXSA9ICdNb2RlbGxvJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZWxlemlvbmEgVW5vJzsKJGxhbmdbJ3ByaW9yaXR5X2NvdW50cmllcyddID0gJ05hemlvbmkgUHJpb3JpdGFyaWUnOwokbGFuZ1sncHJvbXB0X2VkaXR0ZW1wbGF0ZSddID0gJ01vZGlmaWNhIE1vZGVsbG8nOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXRlbXBsYXRlJ10gPSAnQ2FuY2VsbGEgTW9kZWxsbyc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGVuYW1lJ10gPSAnTm9tZSBNb2RlbGxvJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ1Rlc3RvIE1vZGVsbG8nOwokbGFuZ1sncHJvbXB0X25hbWUnXSA9ICdOb21lIE1vZGVsbG8nOwokbGFuZ1sncHJvbXB0X25ld3RlbXBsYXRlJ10gPSAnTnVvdm8gTW9kZWxsbyc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdCddID0gJ1ByZWRlZmluaXRvJzsKJGxhbmdbJ3llcyddID0gJ1MmaWdyYXZlOyc7CiRsYW5nWydubyddID0gJ05vJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ0ludmlhJzsKJGxhbmdbJ2FwcGx5J10gPSAnQXBwbGljYSc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWxsYSc7CiRsYW5nWydlZGl0J10gPSAnTW9kaWZpY2EnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ1NpZXRlIHNpY3VyaT8nOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdSZWltcG9zdGEgYWkgdmFsb3JpIHByZWRlZmluaXRpJzsKJGxhbmdbJ2Vycm9yX3RlbXBsYXRlJ10gPSAnRXJyb3JlIE1vZGVsbG8nOwokbGFuZ1snZXJyb3JfdGVtcGxhdGVuYW1lZXhpc3RzJ10gPSAnVW4gTW9kZWxsbyBjb24gcXVlbCBub21lIGVzaXN0ZSBnaSZhZ3JhdmU7JzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0NhbGd1eXMgTW9kdWxlIEV4dGVuc2lvbnMnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdRdWVzdG8gbW9kdWxvICZlZ3JhdmU7IHByb250byBhbGwmIzAzOTt1c28uIFBhcnRlbnphISc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnVmVkaSBkaSBudW92byBmcmEgcXVhbGNoZSBnaW9ybm8nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bG8gZGlzaW5zdGFsbGF0by4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnVmVzcmlvbmUgZGVsIG1vZHVsbyAlcyBpbnN0YWxsYXRvLic7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdQcmVmZXJlbnplIG1vZHVsbyBhZ2dpb3JuYXRlLic7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdBY2Nlc3NvIG5lZ2F0by4gU2kgcHJlZ2EgZGkgY29udG9sbGFyZSBpIHZvc3RyaSBwZXJtZXNzaS4nOwokbGFuZ1snZXJyb3InXSA9ICdFcnJvcmUhJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxvIGFnZ2lvcm5hdG8gYWxsYSB2ZXJzaW9uZSAlcy4nOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdRdWVzdG8gbW9kdWxvICZlZ3JhdmU7IHVuYSBsaWJyZXJpYSBkaSBjbGFzc2kgcGhwIHVzYXRlIHBlciBjb3N0cnVpcmUgZm9ybSBhdmFuemF0aSc7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQo8bGk+VmVyc2lvbiAxLjAuMC4gTWFyY2ggMjAwNy4gIEluaXRpYWwgUmVsZWFzZS48L2xpPg0KPGxpPlZlcnNpb24gMS4wLjEuIEFwcmlsIDIwMDcuICBGaXhlcyB0byBDcmVhdGVJbWFnZUxpbms8L2xpPg0KPGxpPlZlcnNpb24gMS4wLjIuIEFwcmlsIDIwMDcuICBDcmVhdGVJbWFnZUxpbmsgd2lsbCBub3cgd29yayBvbiB0aGUgZnJvbnRlbmQuPC9saT4NCjxsaT5WZXJzaW9uIDEuMC4zLiBTZXB0ZW1iZXIgMjAwNy4gIEFkZHMgYXBwbHkgYnV0dG9ucyB0byBuZXcgdGVtcGxhdGVzLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjEuICAgU2VwdGVtYmVyIDIwMDcuICBBZGRzIGRlZmF1bHQgZnJvbnRlbmQgZXJyb3IgaGFuZGxpbmcgcGx1Z2luLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjIuICAgTm92ZW1iZXIgIDIwMDcsICBBZGRzIG1vcmUgY29udmVuaWVuY2UgZnVuY3Rpb25zPC9saT4NCjxsaT5WZXJzaW9uIDEuMy4gICBOb3ZlbWJlciAgMjAwNy4gIEFkZHMgZXZlbiBtb3JlIGNvbnZlbmllbmNlIGZ1bmN0aW9uczwvbGk+DQo8bGk+VmVyc2lvbiAxLjQuICAgRGVjZW1iZXIgIDIwMDcuICBBZGRzIENyZWF0ZUltYWdlRHJvcGRvd24gbWV0aG9kLCBtZXRob2RzIGZvciBzdGF0ZSBhbmQgY291bnRyeSBkcm9wZG93bnMgYW5kIGEgYnVuY2ggb2Ygb3RoZXIgdGhpbmdzLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjUuICAgSmFudWFyeSAgIDIwMDguICBGaXhlcyB0byBodG1sX2VudGl0aWVzX2RlY29kZSBpbiB1dGY4PC9saT4NCjxsaT5WZXJzaW9uIDEuNi4gICBGZWJydWFyeSAgMjAwOCwgIEFkZHMgdGhlIENHRmlsZVVwbG9hZEhhbmRsZXIgY2xhc3M8L2xpPg0KPGxpPlZlcnNpb24gMS42LjEuICAgRmVicnVhcnkgIDIwMDgsICBNaW5vciBmaXggdG8gcmVjdXJzaXZlX2NoYW5nZV9kaXJlY3Rvcnk8L2xpPg0KPGxpPlZlcnNpb24gMS44LiBGZWJydWFyeSAyMDA4DQogIDx1bD4NCiAgICA8bGk+QWRkIGEgYnVuY2ggbW9yZSB1dGlsaXR5IGFuZCBjb252ZW5pZW5jZSBtZXRob2RzPC9saT4NCiAgICA8bGk+TW92ZSBjb3VudHJpZXMgYW5kIHN0YXRlcyBpbnRvIGEgdGFibGUgc28gdGhhdCB0aGV5IGNhbiBiZSB1c2VkIHdpdGggam9pbnMgZXRjLjwvbGk+DQogICAgPGxpPkFkZCB0aGUgYWJpbGl0eSB0byBwcmlvcml0aXplIGNlcnRhaW4gY291bnRyaWVzIGJ5IG5hbWU8L2xpPg0KICAgIDxsaT5BZGRzIHRoZSBHZXRTaW5nbGVUZW1wbGF0ZUZvcm0gbWV0aG9kIHRvIG1ha2UgaXQgY29udmVuaWVudCB0byBlZGl0IGFuZCByZXN0b3JlIHRvIGRlZmF1bHQgYSBzaW5nbGUgdGVtcGxhdGUuPC9saT4NCiAgICA8bGk+Rml4ZXMgaXNzdWVzIHdpdGggdGhlIGNhbmNlbCBidXR0b24gd2hlbiBlZGl0aW5nIHRlbXBsYXRlcy48L2xpPg0KICAgIDxsaT5VcGRhdGUgdGhlIGxpY2Vuc2UuPC9saT4NCiAgICA8bGk+VXBkYXRlcyB0byB0aGUgZmlsZSB1cGxvYWQgY2FwYWJpbGl0aWVzPC9saT4NCiAgICA8bGk+VGhlIG1vZHVsZSBpcyBhdXRvbWF0aWNhbGx5IGV4cG9ydGVkIHRvIHNtYXJ0eTwvbGk+DQogICAgPGxpPkFkZCB0aGUgZ2V0X2FjdGlvbl9pZCBhbmQgc2V0X2FjdGlvbl9pZCB2aXJ0dWFsIG1ldGhvZHMgdGhhdCBzaG91bGQgYmUgb3ZlcnJpZGRlbiBieSBhbnkgbW9kdWxlIGRlcml2ZWQgZnJvbSBDR0V4dGVuc2lvbnMuPC9saT4NCiAgPC91bD4NCiAgPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoaXMgbW9kdWxlIG1lcmVseSBwcm92aWRlcyBjb252ZW5pZW5jZSBhcGkmIzAzOTtzLCByZS11c2FibGUgZm9ybXMsIGFuZCBzbWFydHkgdGFncyBmb3IgdXNlIGluIG90aGVyIG1vZHVsZXMuICBJdCBpcyBtZWFudCBzb2xlbHkgZnJvbSB3aGljaCB0byBidWlsZCBvdGhlciBtb2R1bGVzLiBJZiB5b3UgYXJlIG5vdCBhIHByb2dyYW1tZXIgeW91IHByb2JhYmx5IHdvbiYjMDM5O3QgbmVlZCB0byBkbyBhbnl0aGluZyB3aXRoIHRoaXMgbW9kdWxlIGJlc2lkZXMgYWRqdXN0IHNvbWUgcHJlZmVyZW5jZXMuPC9wPg0KPGgzIHN0eWxlPSZxdW90O2NvbG9yOiAjZjAwOyZxdW90Oz5Ob3RlczwvaDM+DQo8cD5NYW55IG1vZHVsZXMgdGFrZSBhZHZhbnRhZ2VzIG9mIHRoZSBmb3JtcyB0aGF0IGFyZSBwcm92aWRlZCBieSB0aGUgQ0dFeHRlbnNpb25zIG1vZHVsZSB0byBhc3Npc3QgaW4gbWFuYWdpbmcgdGVtcGxhdGVzLiAgV2hlbiB0aGV5IGRvLCB0aGUgQ0dFeHRlbnNpb25zIG1vZHVsZSBpbmZvcm1hdGlvbiBpcyBkaXNwbGF5ZWQgcHJvbWluZW50bHkuICBIb3dldmVyIHdoZW4geW91IHN1Ym1pdCwgb3IgY2FuY2VsIGZyb20gdGhlc2UgZm9ybXMgeW91IHdpbGwgYmUgcmV0dXJuZWQgdG8gdGhlIG9yaWdpbmFsIG1vZHVsZS48L3A+DQo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4NCjxwPldlbGwsIHlvdSBzdGFydCB5b3VyIG93biBtb2R1bGUgKEkgc3VnZ2VzdCBzdGFydGluZyB3aXRoIHRoZSBTa2VsZXRvbiBtb2R1bGUpLCBhbmQgdGhlbiB3aGVuIHlvdSBuZWVkIHRvIHVzZSBhbiBhZHZhbmNlZCBmb3JtIG9iamVjdCBmcm9tIHRoaXMgbGlicmFyeSwgc2ltcGx5IG1ha2UgeW91ciBtb2R1bGUgZGVwZW5kYW50IHVwb24gRm9ybU9iamVjdHMsIGFuZCB0aGVuIGluc3RhbnRpYXRlIGFuIG9iamVjdCBvZiB0aGUgYXBwcm9wcmlhdGUgdHlwZS4gIFNlZSB0aGUgY29kZSBpbnNpZGUgdGhlIEZvcm1PYmplY3RzIGRpcmVjdG9yeSBmb3IgdXNhZ2UgaW5zdHJ1Y3Rpb25zLjwvcD4NCjxoMz5TbWFydHkgQWRkb25zPC9oMz4NCjxwPlRoaXMgbW9kdWxlIGFkZHMgYSBmZXcgc21hcnR5IGNvbnZlbmllbmNlcyBmb3IgdXNlIHdpdGggb3RoZXIgbW9kdWxlcy4gVGhleSBhcmUgbGlzdGVkIGFuZCBkZXNjcmliZWQgaGVyZTo8L3A+DQo8dWw+DQo8bGk+Y2dlcnJvciAtIDxlbT5ibG9jazwvZW0+IHBsdWdpbg0KPHA+aS5lOiA8Y29kZT57Y2dlcnJvcn1UaGlzIGlzIGVycm9yIHRleHR7L2NnZXJyb3J9PC9jb2RlPjxici8+DQogICAgb3I6IDxjb2RlPntjZ2Vycm9yfXskZXJyb3J0ZXh0dmFyfXsvY2dlcnJvcn08L2JyPg0KPC9wPg0KPHA+b3B0aW9uYWwgcGFyYW1ldGVyczogJiMwMzk7ZXJyb3JjbGFzcyYjMDM5OyA9IG92ZXJyaWRlIHRoZSBkZWZhdWx0IGNsYXNzIG5hbWUgaW4gdGhlIHRlbXBsYXRlLg0KPC9wPg0KPHA+RGVzY3JpcHRpb246IFRoaXMgYmxvY2sgcGx1Z2luIHVzZXMgdGhlIGVycm9yIHRlbXBsYXRlIChjb25maWd1cmFibGUgZnJvbSB0aGUgQ0dFeHRlbnNpb25zIGFkbWluIGludGVyZmFjZSkgdG8gZGlzcGxheSBhbiBlcnJvciBtZXNzYWdlLjwvcD4NCjwvdWw+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQgb3IgYnV5IGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBjbXMgZGV2ZWxvcG1lbnQgZm9yZ2UgYXQgPGEgaHJlZj0mcXVvdDtodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PmRldi5jbXNtYWRlc2ltcGxlLm9yZzwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvcihzKSwgY2FsZ3V5IGV0IGFsbCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zJnF1b3Q7PkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvcihzKSBkaXJlY3RseS48L2xpPiAgDQo8L3VsPg0KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0DQpvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQoNCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZhbXA7Y29weTsgMjAwOCwgUm9iZXJ0IENhbXBiZWwgPGEgaHJlZj0mcXVvdDttYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz4mYW1wO2x0O2NhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcmYW1wO2d0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQppdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPg0KPHA+SG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkDQphcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUNCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMNCk1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiANCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPg0KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQpidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCk9yIHJlYWQgaXQgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwmcXVvdDs+b25saW5lPC9hPjwvcD4nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xODA3MTUxNjQwLjExODI5NjA0NTYuMTIwODk4NDY4Ni4xMjA5MDI0NDk4LjQ2Nic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMDg5ODQ2ODYuNDY1LjM3LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L2luZGV4LnBocC90b3BpYywyMDM5NC4zMC5odG1sfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ0NHRklMRVVQTE9BRF9OT0ZJTEUnXSA9ICdJbmdlbiBhdiBkZSBvcHBsYXN0ZWRlIGZpbGVuZSBwYXNzZXIgdGlsIGtyaXRlcmllbmUnOwokbGFuZ1snQ0dGSUxFVVBMT0FEX0ZJTEVTSVpFJ10gPSAnU3Qmb3NsYXNoO3JyZWxzZW4gcCZhcmluZzsgZGVuIG9wcGxhc3RlZGUgZmlsZW4gb3ZlcnN0aWdlciBkZXQgc29tIGVyIHRpbGxhdHQnOwokbGFuZ1snQ0dGSUxFVVBMT0FEX0ZJTEVUWVBFJ10gPSAnRmlsZXIgYXYgZGVubmUgdHlwZSBrYW4gaWtrZSBsYXN0ZXMgb3BwJzsKJGxhbmdbJ0NHRklMRVVQTE9BRF9GSUxFRVhJU1RTJ10gPSAnRW4gZmlsIG1lZCBzYW1tZSBuYXZuIGVrc2lzdGVyZXIgYWxsZXJlZGUnOwokbGFuZ1snQ0dGSUxFVVBMT0FEX0JBRERFU1RESVInXSA9ICdEZXN0aW5hc2pvbnNrYXRhbG9nZW4gc29tIGVyIHNwZXNpZmlzZXJ0IGZvciBvcHBsYXN0ZWRlIGZpbGVyIGVrc2lzdGVyZXIgaWtrZSc7CiRsYW5nWydDR0ZJTEVVUExPQURfQkFEUEVSTVMnXSA9ICdGaWx0aWxsYXRlbHNlbmUgdGlsbGF0ZXIgaWtrZSAmYXJpbmc7IHNrcml2ZSBkZW4gb3BwbGFzdGVkZSBmaWxhIHRpbCBkZW5zIGRlc3RpbmFzam9uJzsKJGxhbmdbJ0NHRklMRVVQTE9BRF9NT1ZFRkFJTEVEJ10gPSAnRm9ycyZvc2xhc2g7a2V0IHAmYXJpbmc7ICZhcmluZzsgZmx5dHRlIGRlbiBvcHBsYXN0ZWRlIGZpbGEgdGlsIGRlbnMgZW5kZWxpZ2UgZGVzdGluYXNqb24gZmVpbGV0JzsKJGxhbmdbJ3RodW1ibmFpbF9zaXplJ10gPSAnU3Qmb3NsYXNoO3JyZWxzZSBwJmFyaW5nOyBtaW5pYXR5cmJpbGRlcih0aHVtYm5haWxzKSc7CiRsYW5nWydpbWFnZV9leHRlbnNpb25zJ10gPSAnQmlsZGUgZmlsZW5kZWxzZXInOwokbGFuZ1snZ3JvdXAnXSA9ICdHcnVwcGUnOwokbGFuZ1sndGVtcGxhdGUnXSA9ICdNYWwnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1ZlbGcgZW4nOwokbGFuZ1sncHJpb3JpdHlfY291bnRyaWVzJ10gPSAnUHJpb3JpdGVydGUgbGFuZCc7CiRsYW5nWydwcm9tcHRfZWRpdHRlbXBsYXRlJ10gPSAnUmVkaWdlciBtYWwnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXRlbXBsYXRlJ10gPSAnU2xldHQgbWFsJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZW5hbWUnXSA9ICdNYWwgbmF2bic7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdNYWwgdGVrc3QnOwokbGFuZ1sncHJvbXB0X25hbWUnXSA9ICdNYWwgbmF2bic7CiRsYW5nWydwcm9tcHRfbmV3dGVtcGxhdGUnXSA9ICdOeSBtYWwnOwokbGFuZ1sncHJvbXB0X2RlZmF1bHQnXSA9ICdTdGFuZGFyZCc7CiRsYW5nWyd5ZXMnXSA9ICdKYSc7CiRsYW5nWydubyddID0gJ05laSc7CiRsYW5nWydzdWJtaXQnXSA9ICdTZW5kJzsKJGxhbmdbJ2FwcGx5J10gPSAnVXRmJm9zbGFzaDtyJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0F2YnJ5dCc7CiRsYW5nWydlZGl0J10gPSAnUmVkaWdlcic7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnRXIgZHUgc2lra2VyPyc7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ1RpbGJha2VzdGlsbCB0aWwgZmFicmlra3N0YW5kYXJkJzsKJGxhbmdbJ2Vycm9yX3RlbXBsYXRlJ10gPSAnRmVpbG1hbCc7CiRsYW5nWydlcnJvcl90ZW1wbGF0ZW5hbWVleGlzdHMnXSA9ICdFbiBtYWwgbWVkIGRldCBuYXZuZXQgZWtzaXN0ZXJlciBhbGxlcmVkZSc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdDYWxndXlzIE1vZHVsZSBFeHRlbnNpb25zICc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0Rlbm5lIG1vZHVsZW4gZXIgZmVyZGlnIHRpbCBicnVrLiBLb2QgaSB2ZWkhJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdTZXIgZGVnIGlnamVuIGVuIGFubmVuIGRhZyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsIGF2aW5zdGFsbGVydCc7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bCB2ZXJzam9uICVzIGluc3RhbGxlcnQnOwokbGFuZ1sncHJlZnN1cGRhdGVkJ10gPSAnTW9kdWwgaW5uc3RpbGxpbmdlciBvcHBkYXRlcnQuJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ0FkZ2FuZyBuZWt0ZXQuIFZlbm5saWdzdCBzamVrayBkaW5lIHJldHRpZ2hldGVyLic7CiRsYW5nWydlcnJvciddID0gJ0ZlaWwhJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWwgb3BwZ3JhZGVydCB0aWwgdmVyc2pvbiAlcy4nOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdEZW5uZSBtb2R1bGVuIGVyIGV0IGJpYmxpb3RlayBhdiBwaHAga2xhc3NlciBicnVrdCB0aWwgJmFyaW5nOyBieWdnZSBhdmFuc2VydGUgc2tqZW1hZXInOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPg0KPGxpPlZlcnNpb24gMS4wLjAuIE1hcmNoIDIwMDcuICBJbml0aWFsIFJlbGVhc2UuPC9saT4NCjxsaT5WZXJzaW9uIDEuMC4xLiBBcHJpbCAyMDA3LiAgRml4ZXMgdG8gQ3JlYXRlSW1hZ2VMaW5rPC9saT4NCjxsaT5WZXJzaW9uIDEuMC4yLiBBcHJpbCAyMDA3LiAgQ3JlYXRlSW1hZ2VMaW5rIHdpbGwgbm93IHdvcmsgb24gdGhlIGZyb250ZW5kLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjAuMy4gU2VwdGVtYmVyIDIwMDcuICBBZGRzIGFwcGx5IGJ1dHRvbnMgdG8gbmV3IHRlbXBsYXRlcy48L2xpPg0KPGxpPlZlcnNpb24gMS4xLiAgIFNlcHRlbWJlciAyMDA3LiAgQWRkcyBkZWZhdWx0IGZyb250ZW5kIGVycm9yIGhhbmRsaW5nIHBsdWdpbi48L2xpPg0KPGxpPlZlcnNpb24gMS4yLiAgIE5vdmVtYmVyICAyMDA3LCAgQWRkcyBtb3JlIGNvbnZlbmllbmNlIGZ1bmN0aW9uczwvbGk+DQo8bGk+VmVyc2lvbiAxLjMuICAgTm92ZW1iZXIgIDIwMDcuICBBZGRzIGV2ZW4gbW9yZSBjb252ZW5pZW5jZSBmdW5jdGlvbnM8L2xpPg0KPGxpPlZlcnNpb24gMS40LiAgIERlY2VtYmVyICAyMDA3LiAgQWRkcyBDcmVhdGVJbWFnZURyb3Bkb3duIG1ldGhvZCwgbWV0aG9kcyBmb3Igc3RhdGUgYW5kIGNvdW50cnkgZHJvcGRvd25zIGFuZCBhIGJ1bmNoIG9mIG90aGVyIHRoaW5ncy48L2xpPg0KPGxpPlZlcnNpb24gMS41LiAgIEphbnVhcnkgICAyMDA4LiAgRml4ZXMgdG8gaHRtbF9lbnRpdGllc19kZWNvZGUgaW4gdXRmODwvbGk+DQo8bGk+VmVyc2lvbiAxLjYuICAgRmVicnVhcnkgIDIwMDgsICBBZGRzIHRoZSBDR0ZpbGVVcGxvYWRIYW5kbGVyIGNsYXNzPC9saT4NCjxsaT5WZXJzaW9uIDEuNi4xLiAgIEZlYnJ1YXJ5ICAyMDA4LCAgTWlub3IgZml4IHRvIHJlY3Vyc2l2ZV9jaGFuZ2VfZGlyZWN0b3J5PC9saT4NCjxsaT5WZXJzaW9uIDEuOC4gRmVicnVhcnkgMjAwOA0KICA8dWw+DQogICAgPGxpPkFkZCBhIGJ1bmNoIG1vcmUgdXRpbGl0eSBhbmQgY29udmVuaWVuY2UgbWV0aG9kczwvbGk+DQogICAgPGxpPk1vdmUgY291bnRyaWVzIGFuZCBzdGF0ZXMgaW50byBhIHRhYmxlIHNvIHRoYXQgdGhleSBjYW4gYmUgdXNlZCB3aXRoIGpvaW5zIGV0Yy48L2xpPg0KICAgIDxsaT5BZGQgdGhlIGFiaWxpdHkgdG8gcHJpb3JpdGl6ZSBjZXJ0YWluIGNvdW50cmllcyBieSBuYW1lPC9saT4NCiAgICA8bGk+QWRkcyB0aGUgR2V0U2luZ2xlVGVtcGxhdGVGb3JtIG1ldGhvZCB0byBtYWtlIGl0IGNvbnZlbmllbnQgdG8gZWRpdCBhbmQgcmVzdG9yZSB0byBkZWZhdWx0IGEgc2luZ2xlIHRlbXBsYXRlLjwvbGk+DQogICAgPGxpPkZpeGVzIGlzc3VlcyB3aXRoIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gZWRpdGluZyB0ZW1wbGF0ZXMuPC9saT4NCiAgICA8bGk+VXBkYXRlIHRoZSBsaWNlbnNlLjwvbGk+DQogICAgPGxpPlVwZGF0ZXMgdG8gdGhlIGZpbGUgdXBsb2FkIGNhcGFiaWxpdGllczwvbGk+DQogICAgPGxpPlRoZSBtb2R1bGUgaXMgYXV0b21hdGljYWxseSBleHBvcnRlZCB0byBzbWFydHk8L2xpPg0KICAgIDxsaT5BZGQgdGhlIGdldF9hY3Rpb25faWQgYW5kIHNldF9hY3Rpb25faWQgdmlydHVhbCBtZXRob2RzIHRoYXQgc2hvdWxkIGJlIG92ZXJyaWRkZW4gYnkgYW55IG1vZHVsZSBkZXJpdmVkIGZyb20gQ0dFeHRlbnNpb25zLjwvbGk+DQogIDwvdWw+DQogIDwvbGk+DQo8bGk+VmVyc2lvbiAxLjguIE1heSAyMDA4DQogIDx1bD4NCiAgICA8bGk+TWlub3IgY2hhbmdlIGFuZCBhZGRpdGlvbiB0byBSZWRpcmVjdFRvVGFiPC9saT4NCiAgPC91bD4NCjwvdWw+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoaXMgbW9kdWxlIG1lcmVseSBwcm92aWRlcyBjb252ZW5pZW5jZSBhcGkmIzAzOTtzLCByZS11c2FibGUgZm9ybXMsIGFuZCBzbWFydHkgdGFncyBmb3IgdXNlIGluIG90aGVyIG1vZHVsZXMuICBJdCBpcyBtZWFudCBzb2xlbHkgZnJvbSB3aGljaCB0byBidWlsZCBvdGhlciBtb2R1bGVzLiBJZiB5b3UgYXJlIG5vdCBhIHByb2dyYW1tZXIgeW91IHByb2JhYmx5IHdvbiYjMDM5O3QgbmVlZCB0byBkbyBhbnl0aGluZyB3aXRoIHRoaXMgbW9kdWxlIGJlc2lkZXMgYWRqdXN0IHNvbWUgcHJlZmVyZW5jZXMuPC9wPg0KPGgzIHN0eWxlPSZxdW90O2NvbG9yOiAjZjAwOyZxdW90Oz5Ob3RlczwvaDM+DQo8cD5NYW55IG1vZHVsZXMgdGFrZSBhZHZhbnRhZ2VzIG9mIHRoZSBmb3JtcyB0aGF0IGFyZSBwcm92aWRlZCBieSB0aGUgQ0dFeHRlbnNpb25zIG1vZHVsZSB0byBhc3Npc3QgaW4gbWFuYWdpbmcgdGVtcGxhdGVzLiAgV2hlbiB0aGV5IGRvLCB0aGUgQ0dFeHRlbnNpb25zIG1vZHVsZSBpbmZvcm1hdGlvbiBpcyBkaXNwbGF5ZWQgcHJvbWluZW50bHkuICBIb3dldmVyIHdoZW4geW91IHN1Ym1pdCwgb3IgY2FuY2VsIGZyb20gdGhlc2UgZm9ybXMgeW91IHdpbGwgYmUgcmV0dXJuZWQgdG8gdGhlIG9yaWdpbmFsIG1vZHVsZS48L3A+DQo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4NCjxwPldlbGwsIHlvdSBzdGFydCB5b3VyIG93biBtb2R1bGUgKEkgc3VnZ2VzdCBzdGFydGluZyB3aXRoIHRoZSBTa2VsZXRvbiBtb2R1bGUpLCBhbmQgdGhlbiB3aGVuIHlvdSBuZWVkIHRvIHVzZSBhbiBhZHZhbmNlZCBmb3JtIG9iamVjdCBmcm9tIHRoaXMgbGlicmFyeSwgc2ltcGx5IG1ha2UgeW91ciBtb2R1bGUgZGVwZW5kYW50IHVwb24gRm9ybU9iamVjdHMsIGFuZCB0aGVuIGluc3RhbnRpYXRlIGFuIG9iamVjdCBvZiB0aGUgYXBwcm9wcmlhdGUgdHlwZS4gIFNlZSB0aGUgY29kZSBpbnNpZGUgdGhlIEZvcm1PYmplY3RzIGRpcmVjdG9yeSBmb3IgdXNhZ2UgaW5zdHJ1Y3Rpb25zLjwvcD4NCjxoMz5TbWFydHkgQWRkb25zPC9oMz4NCjxwPlRoaXMgbW9kdWxlIGFkZHMgYSBmZXcgc21hcnR5IGNvbnZlbmllbmNlcyBmb3IgdXNlIHdpdGggb3RoZXIgbW9kdWxlcy4gVGhleSBhcmUgbGlzdGVkIGFuZCBkZXNjcmliZWQgaGVyZTo8L3A+DQo8dWw+DQo8bGk+Y2dlcnJvciAtIDxlbT5ibG9jazwvZW0+IHBsdWdpbg0KPHA+aS5lOiA8Y29kZT57Y2dlcnJvcn1UaGlzIGlzIGVycm9yIHRleHR7L2NnZXJyb3J9PC9jb2RlPjxici8+DQogICAgb3I6IDxjb2RlPntjZ2Vycm9yfXskZXJyb3J0ZXh0dmFyfXsvY2dlcnJvcn08L2JyPg0KPC9wPg0KPHA+b3B0aW9uYWwgcGFyYW1ldGVyczogJiMwMzk7ZXJyb3JjbGFzcyYjMDM5OyA9IG92ZXJyaWRlIHRoZSBkZWZhdWx0IGNsYXNzIG5hbWUgaW4gdGhlIHRlbXBsYXRlLg0KPC9wPg0KPHA+RGVzY3JpcHRpb246IFRoaXMgYmxvY2sgcGx1Z2luIHVzZXMgdGhlIGVycm9yIHRlbXBsYXRlIChjb25maWd1cmFibGUgZnJvbSB0aGUgQ0dFeHRlbnNpb25zIGFkbWluIGludGVyZmFjZSkgdG8gZGlzcGxheSBhbiBlcnJvciBtZXNzYWdlLjwvcD4NCjwvdWw+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQgb3IgYnV5IGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBjbXMgZGV2ZWxvcG1lbnQgZm9yZ2UgYXQgPGEgaHJlZj0mcXVvdDtodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PmRldi5jbXNtYWRlc2ltcGxlLm9yZzwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvcihzKSwgY2FsZ3V5IGV0IGFsbCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zJnF1b3Q7PkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvcihzKSBkaXJlY3RseS48L2xpPiAgDQo8L3VsPg0KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0DQpvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQoNCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZhbXA7Y29weTsgMjAwOCwgUm9iZXJ0IENhbXBiZWwgPGEgaHJlZj0mcXVvdDttYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz4mYW1wO2x0O2NhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcmYW1wO2d0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQppdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPg0KPHA+SG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkDQphcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUNCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMNCk1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiANCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPg0KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQpidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCk9yIHJlYWQgaXQgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwmcXVvdDs+b25saW5lPC9hPjwvcD4nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xNzkwNTI2MjMwODQxMTAxMDAuMTIxMDQyMzU3Ny4xMjEzODA1Njk1LjEyMTM4MDc2MTIuMTQzJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTIxMzYyOTg4Mi4xMzcuNy51dG1jc3I9YmxvZy5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY249KHJlZmVycmFsKXx1dG1jbWQ9cmVmZXJyYWx8dXRtY2N0PS8yMDA4LzA2LzE2L3VwY29taW5nLWRvd250aW1lLTIxLWp1bi0yMDA4Lyc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ0NHRklMRVVQTE9BRF9OT0ZJTEUnXSA9ICdHZWVuIGJlc3RhbmQgbWV0IGRlemUgc3BlY2lmaWNhdGllcyBnZXZvbmRlbic7CiRsYW5nWydDR0ZJTEVVUExPQURfRklMRVNJWkUnXSA9ICdHcm9vdHRlIHZhbiBoZXQgb3BnZWdldmVuIGJlc3RhbmQgaXMgZ3JvdGVyIGRhbiBoZXQgbWF4aW11bSB0b2VnZXN0YW5lJzsKJGxhbmdbJ0NHRklMRVVQTE9BRF9GSUxFVFlQRSddID0gJ0RpdCBiZXN0YW5kc3R5cGUga2FuIG5pZXQgd29yZGVuIGdldXBsb2FkJzsKJGxhbmdbJ0NHRklMRVVQTE9BRF9GSUxFRVhJU1RTJ10gPSAnRWVuIGJlc3RhbmQgbWV0IGRlemUgbmFhbSBiZXN0YWF0IHJlZWRzJzsKJGxhbmdbJ0NHRklMRVVQTE9BRF9CQURERVNURElSJ10gPSAnRGUgb3BnZWdldmVuIGZvbGRlciBiZXN0YWF0IG5pZXQnOwokbGFuZ1snQ0dGSUxFVVBMT0FEX0JBRFBFUk1TJ10gPSAnUGVybWlzc2llcyBzdGFhdCBzY2hyaWp2ZW4gaW4gZGV6ZSBmb2xkZXIgbmlldCB0b2UnOwokbGFuZ1snQ0dGSUxFVVBMT0FEX01PVkVGQUlMRUQnXSA9ICdQb2dpbmcgb20gaGV0IGJlc3RhbmQgbmFhciB6aWpuIGRlZmluaXRpZXZlIGZvbGRlciB0ZSB2ZXJwbGFhdHNlbiBpcyBtaXNsdWt0JzsKJGxhbmdbJ3RodW1ibmFpbF9zaXplJ10gPSAnR3Jvb3R0ZSB2YW4gZGUgdGh1bWJuYWlscyc7CiRsYW5nWydpbWFnZV9leHRlbnNpb25zJ10gPSAnQWZiZWVsZGluZ3NiZXN0YW5kZXh0ZW50aWVzJzsKJGxhbmdbJ2dyb3VwJ10gPSAnR3JvZXAnOwokbGFuZ1sndGVtcGxhdGUnXSA9ICdTamFibG9vbic7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnU2VsZWN0ZWVyICZlYWN1dGU7JmVhY3V0ZTtuJzsKJGxhbmdbJ3ByaW9yaXR5X2NvdW50cmllcyddID0gJ0JlbGFuZ3JpamtlIExhbmRlbic7CiRsYW5nWydwcm9tcHRfZWRpdHRlbXBsYXRlJ10gPSAnQmV3ZXJrIHNqYWJsb29uJzsKJGxhbmdbJ3Byb21wdF9kZWxldGV0ZW1wbGF0ZSddID0gJ1ZlcndpamRlciBzamFibG9vbic7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGVuYW1lJ10gPSAnU2phYmxvb25uYWFtJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ1NqYWJsb29udGVrc3QnOwokbGFuZ1sncHJvbXB0X25hbWUnXSA9ICdTamFibG9vbm5hYW0nOwokbGFuZ1sncHJvbXB0X25ld3RlbXBsYXRlJ10gPSAnTmlldXcgc2phYmxvb24nOwokbGFuZ1sncHJvbXB0X2RlZmF1bHQnXSA9ICdTdGFuZGFhcmQnOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1snbm8nXSA9ICdOZWUnOwokbGFuZ1snc3VibWl0J10gPSAnVmVyc3R1dXInOwokbGFuZ1snYXBwbHknXSA9ICdUb2VwYXNzZW4nOwokbGFuZ1snY2FuY2VsJ10gPSAnQW5udWxlZXInOwokbGFuZ1snZWRpdCddID0gJ0Jld2Vyayc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnV2VldCB1IGhldCB6ZWtlcj8nOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdIZXJzdGVsIG5hYXIgZmFicmlla3NzdGFuZGFhcmQnOwokbGFuZ1snZXJyb3JfdGVtcGxhdGUnXSA9ICdGb3V0ZW5zamFibG9vbic7CiRsYW5nWydlcnJvcl90ZW1wbGF0ZW5hbWVleGlzdHMnXSA9ICdFZW4gc2phYmxvb24gbWV0IGRpZSBuYWFtIGJlc3RhYXQgYWwnOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnQ00gRXh0ZW5zaW9ucyc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0RlemUgbW9kdWxlIGlzIGdlcmVlZCB2b29yIGdlYnJ1aWsuJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdUb3QgemllbnMnOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgZ2VkZWluc3RhbGVlcmQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZXZlcnNpZSAlcyBnZSZpdW1sO25zdGFsbGVlcmQuJzsKJGxhbmdbJ3ByZWZzdXBkYXRlZCddID0gJ01vZHVsZSB2b29ya2V1cmVuIGJpamdld2Vya3QuJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ1RvZWdhbmcgZ2V3ZWlnZXJkLiBDb250cm9sZWVyIGRlIHJlY2h0ZW4uJzsKJGxhbmdbJ2Vycm9yJ10gPSAnRm91dCEnOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgYmlqZ2V3ZXJrdCBuYWFyIHZlcnNpZSAlcy4nOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdEZSBtb2R1bGUgaXMgZWVuIGJpYmxpb3RoZWVrIG1ldCBwaHAtY2xhc3NlcyB2b29yIGhldCBib3V3ZW4gdmFuIHVpdGdlYnJlaWRlIGZvcm11bGllcmVuJzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIDEuMC4wLiBNYXJjaCAyMDA3LiAgSW5pdGlhbCBSZWxlYXNlLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjAuMS4gQXByaWwgMjAwNy4gIEZpeGVzIHRvIENyZWF0ZUltYWdlTGluazwvbGk+DQo8bGk+VmVyc2lvbiAxLjAuMi4gQXByaWwgMjAwNy4gIENyZWF0ZUltYWdlTGluayB3aWxsIG5vdyB3b3JrIG9uIHRoZSBmcm9udGVuZC48L2xpPg0KPGxpPlZlcnNpb24gMS4wLjMuIFNlcHRlbWJlciAyMDA3LiAgQWRkcyBhcHBseSBidXR0b25zIHRvIG5ldyB0ZW1wbGF0ZXMuPC9saT4NCjxsaT5WZXJzaW9uIDEuMS4gICBTZXB0ZW1iZXIgMjAwNy4gIEFkZHMgZGVmYXVsdCBmcm9udGVuZCBlcnJvciBoYW5kbGluZyBwbHVnaW4uPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2F0IGRvZXQgaGV0PzwvaDM+DQo8cD5EZXplIG1vZHVsZSBsZXZlcnQgc2xlY2h0cyBoYW5kaWdlIEFQSSYjMDM5O3MgZW4gc21hcnR5IHRhZ3Mgb20gdGUgZ2VicnVpa2VuIGluIGFuZGVyZSBtb2R1bGVzLiAgSGV0IGlzIHVpdHNsdWl0ZW5kIGJlZG9lbGQgYWxzIGJhc2lzLWNsYXNzIGVuIHV0aWxpdHktY2xhc3Mgdm9vciBhbmRlcmUgbW9kdWxlcy48L3A+DQo8aDM+SG9lIGdlYnJ1aWt0IHUgaGV0PzwvaDM+DQo8cD5VIGJlZ2ludCBtZXQgdXcgZWlnZW4gbW9kdWxlIChpayBzdGVsIHZvb3Igb20gdGUgYmVnaW5uZW4gbWV0IGRlIFNrZWxldG9uLW1vZHVsZSkgZW4gYWxzIHUgZWVuIHVpdGdlYnJlaWQgZm9ybXVsaWVyb2JqZWN0IHVpdCBkZXplIGJpYmxpb3RoZWVrIG5vZGlnIGhlZWZ0LCBkYW4gbWFha3QgdSB1dyBtb2R1bGUgYWZoYW5rZWxpamsgdmFuIEZvcm1PYmplY3RzLCB2ZXJ2b2xnZW5zIGluc3RhbnRpZWVydCB1IGVlbiBvYmplY3QgdmFuIGhldCBqdWlzdGUgdHlwZS4gWmllIGRlIGNvZGUgaW4gZGUgRm9ybU9iamVjdHMtbWFwIHZvb3IgZ2VicnVpa3NpbnN0cnVjdGllcy48L3A+DQo8aDM+U21hcnR5IEFkZG9uczwvaDM+DQo8cD5EZXplIG1vZHVsZSB2b2VndCBlbmtlbGUgc21hcnR5IGhhbmRpZ2hlZGVuIHRvZSB2b29yIGhldCBnZWJydWlrIG1ldCBhbmRlcmUgbW9kdWxlcy4gWmUgemlqbiBoaWVyb25kZXIgb3BnZXNvbWQgZW4gYmVzY2hyZXZlbjo8L3A+DQo8dWw+DQo8bGk+Y2dlcnJvciAtIDxlbT5ibG9jazwvZW0+IHBsdWdpbg0KPHA+ZHVzOiA8Y29kZT57Y2dlcnJvcn1EaXQgaXMgZWVuIGZvdXRtZWxkaW5ney9jZ2Vycm9yfTwvY29kZT48YnIvPg0KICAgIG9mOiA8Y29kZT57Y2dlcnJvcn17JGVycm9ydGV4dHZhcn17L2NnZXJyb3J9PC9icj4NCjwvcD4NCjxwPm9wdGlvbmVsZSBwYXJhbWV0ZXJzOiAmIzAzOTtlcnJvcmNsYXNzJiMwMzk7ID0gb3ZlcnNjaHJpamYgZGUgc3RhbmRhYXJkIGNsYXNzLW5hYW0gaW4gaGV0IHNqYWJsb29uLg0KPC9wPg0KPHA+QmVzY2hyaWp2aW5nOiBEZXplIGJsb2NrIHBsdWdpbiBnZWJydWlrdCBkZSBmb3V0ZW5zamFibG9vbiAoY29uZmlndXJlZXJiYWFyIHZpYSBoZXQgQ0dFeHRlbnNpb25zLWJlaGVlcnBhbmVlbCkgb20gZWVuIGZvdXRtZWxkaW5nIHRlIHRvbmVuLjwvcD4NCjwvdWw+DQo8aDM+T25kZXJzdGV1bmluZzwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQgb3IgYnV5IGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBjbXMgZGV2ZWxvcG1lbnQgZm9yZ2UgYXQgPGEgaHJlZj0mcXVvdDtodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PmRldi5jbXNtYWRlc2ltcGxlLm9yZzwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvcihzKSwgY2FsZ3V5IGV0IGFsbCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zJnF1b3Q7PkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvcihzKSBkaXJlY3RseS48L2xpPiAgDQo8L3VsPg0KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0DQpvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQoNCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA3LCBSb2JlcnQgQ2FtcGJlbGwgPGEgaHJlZj0mcXVvdDttYWlsdG86Y2FsZ3V5MTAwMEBob3RtYWlsLmNvbSZxdW90Oz48Y2FsZ3V5MTAwMEBob3RtYWlsLmNvbT48L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwmcXVvdDs+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4NCic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjE0NzY1OTYyODQuMTIwNTY4ODkwNC4xMjA2MDM5MDAzLjEyMDYwMzk5MjYuNCc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMDU2OTY2MjEuMi4yLnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L2luZGV4LnBocHx1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pt_PT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ0NHRklMRVVQTE9BRF9OT0ZJTEUnXSA9ICdOZW5odW0gYXJxdWl2byBmb2kgY2FycmVnYWRvLCBlbGFzIG4mYXRpbGRlO28gY29tYmluYW0gY29tIGVzdGFzIGVzcGVjaWZpY2EmY2NlZGlsOyZvdGlsZGU7ZXMnOwokbGFuZ1snQ0dGSUxFVVBMT0FEX0ZJTEVTSVpFJ10gPSAnTyB0YW1hbmhvIGRvIGFycXVpdm8gZXhjZWRldSBvIGxpbWl0ZSBtJmFhY3V0ZTt4aW1vIHBlcm1pdGlkbyc7CiRsYW5nWydDR0ZJTEVVUExPQURfRklMRVRZUEUnXSA9ICdPcyBhcnF1aXZvcyBkZXN0ZSB0aXBvIG4mYXRpbGRlO28gcG9kZW0gc2VyIGNhcnJlZ2Fkb3MnOwokbGFuZ1snQ0dGSUxFVVBMT0FEX0ZJTEVFWElTVFMnXSA9ICdVbSBhcnF1aXZvIGNvbSBvIG1lc21vIG5vbWUgaiZhYWN1dGU7IGV4aXN0ZSc7CiRsYW5nWydDR0ZJTEVVUExPQURfQkFEREVTVERJUiddID0gJ08gZGVzdGlubyBkb3MgYXJxdWl2b3MgY2FycmVnYWRvcyBwYXJhIG8gZGlyZXQmb2FjdXRlO3JpbyBlc3BlY2lmaWNhZG8gbiZhdGlsZGU7byBleGlzdGUnOwokbGFuZ1snQ0dGSUxFVVBMT0FEX0JBRFBFUk1TJ10gPSAnQXJxdWl2byBwZXJtaXNzJm90aWxkZTtlcyBuJmF0aWxkZTtvIHBlcm1pdGVtIGdyYXZhciBvIGFycXVpdm8gbm8gc2V1IGRlc3Rpbm8nOwokbGFuZ1snQ0dGSUxFVVBMT0FEX01PVkVGQUlMRUQnXSA9ICdUZW50YXIgbW92ZXIgbyBhcnF1aXZvIGVudmlhZG8gcGFyYSBvIHNldSBkZXN0aW5vIGZpbmFsIGZhbGhvdSc7CiRsYW5nWyd0aHVtYm5haWxfc2l6ZSddID0gJ1RhbWFuaG8gZGFzIE1pbmlhdHVyYXMnOwokbGFuZ1snaW1hZ2VfZXh0ZW5zaW9ucyddID0gJ0V4dGVuJmNjZWRpbDsmb3RpbGRlO2VzIGRlIGltYWdlbnMnOwokbGFuZ1snZ3JvdXAnXSA9ICdHcnVwbyc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ1RlbXBsYXRlcyc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnU2VsZWNjaW9uYXIgVW0nOwokbGFuZ1sncHJpb3JpdHlfY291bnRyaWVzJ10gPSAnUGEmaWFjdXRlO3NlcyBwcmlvcml0JmFhY3V0ZTtyaW9zJzsKJGxhbmdbJ3Byb21wdF9lZGl0dGVtcGxhdGUnXSA9ICdFZGl0YXIgVGVtcGxhdGUnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXRlbXBsYXRlJ10gPSAnRWxpbWluYXIgVGVtcGxhdGUnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlbmFtZSddID0gJ1RlbXBsYXRlIE5vbWUnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgVGV4dG8nOwokbGFuZ1sncHJvbXB0X25hbWUnXSA9ICdUZW1wbGF0ZSBOb21lJzsKJGxhbmdbJ3Byb21wdF9uZXd0ZW1wbGF0ZSddID0gJ05vdm8gVGVtcGxhdGUnOwokbGFuZ1sncHJvbXB0X2RlZmF1bHQnXSA9ICdQYWQmYXRpbGRlO28nOwokbGFuZ1sneWVzJ10gPSAnU2ltJzsKJGxhbmdbJ25vJ10gPSAnTiZhdGlsZGU7byc7CiRsYW5nWydzdWJtaXQnXSA9ICdQcm9jZXNzYXInOwokbGFuZ1snYXBwbHknXSA9ICdBcGxpY2FyJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbGFyJzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0YXInOwokbGFuZ1snYXJleW91c3VyZSddID0gJ1RlbSBhIENlcnRlemE/JzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnUmVkZWZpbmlyIHBhZHImYXRpbGRlO28nOwokbGFuZ1snZXJyb3JfdGVtcGxhdGUnXSA9ICdFcnJvIG5vIFRlbXBsYXRlJzsKJGxhbmdbJ2Vycm9yX3RlbXBsYXRlbmFtZWV4aXN0cyddID0gJ1VtIFRlbXBsYXRlIGNvbSAgZXNzZSBub21lIGomYWFjdXRlOyBleGlzdGUnOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnQ2FsZ3V5cyBNJm9hY3V0ZTtkdWxvIEV4dGVucyZvdGlsZGU7ZXMnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdFc3RlIG0mb2FjdXRlO2R1bG8gZXN0JmFhY3V0ZTsgcHJvbnRvIHBhcmEgbyB1c28uJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdWZWpvLW8gbm92YW1lbnRlIGVtIGFsZ3VtIGRpYSc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSBEZXNpbnN0YWxhZG8uJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ1ZlcnMmYXRpbGRlO28gZG8gTSZvYWN1dGU7ZHVsbyAlcyBpbnN0YWxhZG8uJzsKJGxhbmdbJ3ByZWZzdXBkYXRlZCddID0gJ1ByZWZlciZlY2lyYztuY2lhcyBkbyBNJm9hY3V0ZTtkdWxvICBBY3R1YWxpemFkYXMuJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ0FjZXNzbyBOZWdhZG8uIFJldmVqYSBhcyBzdWFzIFBlcm1pc3Mmb3RpbGRlO2VzLic7CiRsYW5nWydlcnJvciddID0gJ0Vycm8hJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTSZvYWN1dGU7ZHVsbyBBY3R1YWxpemFkbyBwYXJhIGEgVmVycyZhdGlsZGU7byAlcy4nOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdFc3RlIG0mb2FjdXRlO2R1bG8gJmVhY3V0ZTsgdW1hIGJpYmxpb3RlY2EgZGUgY2xhc3NlcyBlbSBwaHAsIHV0aWxpemFkbyBwYXJhIGNvbnN0cnVpciBmb3JtcyBhdmFuJmNjZWRpbDthZG9zJzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIDEuMC4wLiBNYXJjaCAyMDA3LiAgSW5pdGlhbCBSZWxlYXNlLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjAuMS4gQXByaWwgMjAwNy4gIEZpeGVzIHRvIENyZWF0ZUltYWdlTGluazwvbGk+DQo8bGk+VmVyc2lvbiAxLjAuMi4gQXByaWwgMjAwNy4gIENyZWF0ZUltYWdlTGluayB3aWxsIG5vdyB3b3JrIG9uIHRoZSBmcm9udGVuZC48L2xpPg0KPGxpPlZlcnNpb24gMS4wLjMuIFNlcHRlbWJlciAyMDA3LiAgQWRkcyBhcHBseSBidXR0b25zIHRvIG5ldyB0ZW1wbGF0ZXMuPC9saT4NCjxsaT5WZXJzaW9uIDEuMS4gICBTZXB0ZW1iZXIgMjAwNy4gIEFkZHMgZGVmYXVsdCBmcm9udGVuZCBlcnJvciBoYW5kbGluZyBwbHVnaW4uPC9saT4NCjxsaT5WZXJzaW9uIDEuMi4gICBOb3ZlbWJlciAgMjAwNywgIEFkZHMgbW9yZSBjb252ZW5pZW5jZSBmdW5jdGlvbnM8L2xpPg0KPGxpPlZlcnNpb24gMS4zLiAgIE5vdmVtYmVyICAyMDA3LiAgQWRkcyBldmVuIG1vcmUgY29udmVuaWVuY2UgZnVuY3Rpb25zPC9saT4NCjxsaT5WZXJzaW9uIDEuNC4gICBEZWNlbWJlciAgMjAwNy4gIEFkZHMgQ3JlYXRlSW1hZ2VEcm9wZG93biBtZXRob2QsIG1ldGhvZHMgZm9yIHN0YXRlIGFuZCBjb3VudHJ5IGRyb3Bkb3ducyBhbmQgYSBidW5jaCBvZiBvdGhlciB0aGluZ3MuPC9saT4NCjxsaT5WZXJzaW9uIDEuNS4gICBKYW51YXJ5ICAgMjAwOC4gIEZpeGVzIHRvIGh0bWxfZW50aXRpZXNfZGVjb2RlIGluIHV0Zjg8L2xpPg0KPGxpPlZlcnNpb24gMS42LiAgIEZlYnJ1YXJ5ICAyMDA4LCAgQWRkcyB0aGUgQ0dGaWxlVXBsb2FkSGFuZGxlciBjbGFzczwvbGk+DQo8bGk+VmVyc2lvbiAxLjYuMS4gICBGZWJydWFyeSAgMjAwOCwgIE1pbm9yIGZpeCB0byByZWN1cnNpdmVfY2hhbmdlX2RpcmVjdG9yeTwvbGk+DQo8bGk+VmVyc2lvbiAxLjguIEZlYnJ1YXJ5IDIwMDgNCiAgPHVsPg0KICAgIDxsaT5BZGQgYSBidW5jaCBtb3JlIHV0aWxpdHkgYW5kIGNvbnZlbmllbmNlIG1ldGhvZHM8L2xpPg0KICAgIDxsaT5Nb3ZlIGNvdW50cmllcyBhbmQgc3RhdGVzIGludG8gYSB0YWJsZSBzbyB0aGF0IHRoZXkgY2FuIGJlIHVzZWQgd2l0aCBqb2lucyBldGMuPC9saT4NCiAgICA8bGk+QWRkIHRoZSBhYmlsaXR5IHRvIHByaW9yaXRpemUgY2VydGFpbiBjb3VudHJpZXMgYnkgbmFtZTwvbGk+DQogICAgPGxpPkFkZHMgdGhlIEdldFNpbmdsZVRlbXBsYXRlRm9ybSBtZXRob2QgdG8gbWFrZSBpdCBjb252ZW5pZW50IHRvIGVkaXQgYW5kIHJlc3RvcmUgdG8gZGVmYXVsdCBhIHNpbmdsZSB0ZW1wbGF0ZS48L2xpPg0KICAgIDxsaT5GaXhlcyBpc3N1ZXMgd2l0aCB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIGVkaXRpbmcgdGVtcGxhdGVzLjwvbGk+DQogICAgPGxpPlVwZGF0ZSB0aGUgbGljZW5zZS48L2xpPg0KICAgIDxsaT5VcGRhdGVzIHRvIHRoZSBmaWxlIHVwbG9hZCBjYXBhYmlsaXRpZXM8L2xpPg0KICAgIDxsaT5UaGUgbW9kdWxlIGlzIGF1dG9tYXRpY2FsbHkgZXhwb3J0ZWQgdG8gc21hcnR5PC9saT4NCiAgICA8bGk+QWRkIHRoZSBnZXRfYWN0aW9uX2lkIGFuZCBzZXRfYWN0aW9uX2lkIHZpcnR1YWwgbWV0aG9kcyB0aGF0IHNob3VsZCBiZSBvdmVycmlkZGVuIGJ5IGFueSBtb2R1bGUgZGVyaXZlZCBmcm9tIENHRXh0ZW5zaW9ucy48L2xpPg0KICA8L3VsPg0KICA8L2xpPg0KPGxpPlZlcnNpb24gMS44LiBNYXkgMjAwOA0KICA8dWw+DQogICAgPGxpPk1pbm9yIGNoYW5nZSBhbmQgYWRkaXRpb24gdG8gUmVkaXJlY3RUb1RhYjwvbGk+DQogIDwvdWw+DQo8L3VsPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGlzIG1vZHVsZSBtZXJlbHkgcHJvdmlkZXMgY29udmVuaWVuY2UgYXBpJiMwMzk7cywgcmUtdXNhYmxlIGZvcm1zLCBhbmQgc21hcnR5IHRhZ3MgZm9yIHVzZSBpbiBvdGhlciBtb2R1bGVzLiAgSXQgaXMgbWVhbnQgc29sZWx5IGZyb20gd2hpY2ggdG8gYnVpbGQgb3RoZXIgbW9kdWxlcy4gSWYgeW91IGFyZSBub3QgYSBwcm9ncmFtbWVyIHlvdSBwcm9iYWJseSB3b24mIzAzOTt0IG5lZWQgdG8gZG8gYW55dGhpbmcgd2l0aCB0aGlzIG1vZHVsZSBiZXNpZGVzIGFkanVzdCBzb21lIHByZWZlcmVuY2VzLjwvcD4NCjxoMyBzdHlsZT0mcXVvdDtjb2xvcjogI2YwMDsmcXVvdDs+Tm90ZXM8L2gzPg0KPHA+TWFueSBtb2R1bGVzIHRha2UgYWR2YW50YWdlcyBvZiB0aGUgZm9ybXMgdGhhdCBhcmUgcHJvdmlkZWQgYnkgdGhlIENHRXh0ZW5zaW9ucyBtb2R1bGUgdG8gYXNzaXN0IGluIG1hbmFnaW5nIHRlbXBsYXRlcy4gIFdoZW4gdGhleSBkbywgdGhlIENHRXh0ZW5zaW9ucyBtb2R1bGUgaW5mb3JtYXRpb24gaXMgZGlzcGxheWVkIHByb21pbmVudGx5LiAgSG93ZXZlciB3aGVuIHlvdSBzdWJtaXQsIG9yIGNhbmNlbCBmcm9tIHRoZXNlIGZvcm1zIHlvdSB3aWxsIGJlIHJldHVybmVkIHRvIHRoZSBvcmlnaW5hbCBtb2R1bGUuPC9wPg0KPGgzPkhvdyBEbyBJIFVzZSBJdDwvaDM+DQo8cD5XZWxsLCB5b3Ugc3RhcnQgeW91ciBvd24gbW9kdWxlIChJIHN1Z2dlc3Qgc3RhcnRpbmcgd2l0aCB0aGUgU2tlbGV0b24gbW9kdWxlKSwgYW5kIHRoZW4gd2hlbiB5b3UgbmVlZCB0byB1c2UgYW4gYWR2YW5jZWQgZm9ybSBvYmplY3QgZnJvbSB0aGlzIGxpYnJhcnksIHNpbXBseSBtYWtlIHlvdXIgbW9kdWxlIGRlcGVuZGFudCB1cG9uIEZvcm1PYmplY3RzLCBhbmQgdGhlbiBpbnN0YW50aWF0ZSBhbiBvYmplY3Qgb2YgdGhlIGFwcHJvcHJpYXRlIHR5cGUuICBTZWUgdGhlIGNvZGUgaW5zaWRlIHRoZSBGb3JtT2JqZWN0cyBkaXJlY3RvcnkgZm9yIHVzYWdlIGluc3RydWN0aW9ucy48L3A+DQo8aDM+U21hcnR5IEFkZG9uczwvaDM+DQo8cD5UaGlzIG1vZHVsZSBhZGRzIGEgZmV3IHNtYXJ0eSBjb252ZW5pZW5jZXMgZm9yIHVzZSB3aXRoIG90aGVyIG1vZHVsZXMuIFRoZXkgYXJlIGxpc3RlZCBhbmQgZGVzY3JpYmVkIGhlcmU6PC9wPg0KPHVsPg0KPGxpPmNnZXJyb3IgLSA8ZW0+YmxvY2s8L2VtPiBwbHVnaW4NCjxwPmkuZTogPGNvZGU+e2NnZXJyb3J9VGhpcyBpcyBlcnJvciB0ZXh0ey9jZ2Vycm9yfTwvY29kZT48YnIvPg0KICAgIG9yOiA8Y29kZT57Y2dlcnJvcn17JGVycm9ydGV4dHZhcn17L2NnZXJyb3J9PC9icj4NCjwvcD4NCjxwPm9wdGlvbmFsIHBhcmFtZXRlcnM6ICYjMDM5O2Vycm9yY2xhc3MmIzAzOTsgPSBvdmVycmlkZSB0aGUgZGVmYXVsdCBjbGFzcyBuYW1lIGluIHRoZSB0ZW1wbGF0ZS4NCjwvcD4NCjxwPkRlc2NyaXB0aW9uOiBUaGlzIGJsb2NrIHBsdWdpbiB1c2VzIHRoZSBlcnJvciB0ZW1wbGF0ZSAoY29uZmlndXJhYmxlIGZyb20gdGhlIENHRXh0ZW5zaW9ucyBhZG1pbiBpbnRlcmZhY2UpIHRvIGRpc3BsYXkgYW4gZXJyb3IgbWVzc2FnZS48L3A+DQo8L3VsPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0IG9yIGJ1eSBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgY21zIGRldmVsb3BtZW50IGZvcmdlIGF0IDxhIGhyZWY9JnF1b3Q7aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5kZXYuY21zbWFkZXNpbXBsZS5vcmc8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IocyksIGNhbGd1eSBldCBhbGwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2lyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyZxdW90Oz5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IocykgZGlyZWN0bHkuPC9saT4gIA0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KDQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmYW1wO2NvcHk7IDIwMDgsIFJvYmVydCBDYW1wYmVsIDxhIGhyZWY9JnF1b3Q7bWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+JmFtcDtsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmFtcDtndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQooYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjwvcD4NCjxwPkhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZA0KYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlDQppbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TDQpNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gDQpzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4NCjxwPlRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCkZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQpPciByZWFkIGl0IDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7Pm9ubGluZTwvYT48L3A+DQoNCjxoMz5UcmFkdSZjY2VkaWw7JmF0aWxkZTtvIFBvcnR1Z3Vlc2E8L2gzPg0KPHA+TnVubyBjb3N0YSBudW5vLm1mY29zdGFAc2Fwby5wdC4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjEwMzM0NjU0OTQ5NzAwOTE4MDAuMTIxMzE4MTc1Ny4xMjEzMzQxNDY2LjEyMTMzNDgzNjAuMTUnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjEzMzEyNDkzLjEzLjgudXRtY3NyPWZvcnVtLmNtc21hZGVzaW1wbGUub3JnfHV0bWNjbj0ocmVmZXJyYWwpfHV0bWNtZD1yZWZlcnJhbHx1dG1jY3Q9L2luZGV4LnBocC90b3BpYywxNzYzOC5tc2cxMTA4NTcuaHRtbCc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ro_RO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ0NHRklMRVVQTE9BRF9OT0ZJTEUnXSA9ICdOaWNpIHVuIGZpc2llciBpbmNhcmNhdCBwb3RyaXZpdCBzcGVmaWNhdGlpbG9yJzsKJGxhbmdbJ0NHRklMRVVQTE9BRF9GSUxFU0laRSddID0gJ01hcmltZWEgZmlzaWVydWx1aSBpbmNhcmNhdCBhIGFqdW5zIGxhIG1heGltdWwgcGVybWlzJzsKJGxhbmdbJ0NHRklMRVVQTE9BRF9GSUxFVFlQRSddID0gJ0Zpc2llciBkZSBhY2VzdCBnZW4gbnUgcG9hdGUgZmkgaW5jYXJjYXQnOwokbGFuZ1snQ0dGSUxFVVBMT0FEX0ZJTEVFWElTVFMnXSA9ICdVbiBmaXNpZXIgY3UgYWNlc3QgbnVtZSBleGl0YSBkZWphJzsKJGxhbmdbJ0NHRklMRVVQTE9BRF9CQURERVNURElSJ10gPSAnRGVzdGluYXRpYSBkaXJlY3RvcnVsdWkgc3BlY2lmaWNhdCBwZW50cnUgaW5jYXJjYXJlIG51IGV4aXN0YSc7CiRsYW5nWydDR0ZJTEVVUExPQURfQkFEUEVSTVMnXSA9ICdGaXNpZXJlbGUgcGVybWlzZSBudSBwZXJtaXQgc2NyaWVyZSBwZSBmaXNpZXJ1bCBpbmNhcmNhdCBpbiBsb2NhdGlhIGRlc3RpbmF0aWVpJzsKJGxhbmdbJ0NHRklMRVVQTE9BRF9NT1ZFRkFJTEVEJ10gPSAnSW5jZXJjYXJlYSBkZSBtdXRhIGZpc2llcnVsIGluY2FyY2F0IGxhIGRlc3RpYW50aWEgZmluYWxhIG51IGEgZm9zdCByZXVzaXRhJzsKJGxhbmdbJ3RodW1ibmFpbF9zaXplJ10gPSAnTWFyaW1lYSBwb3plaSBtaWNpICh0aHVtYm5haWxzKSc7CiRsYW5nWydpbWFnZV9leHRlbnNpb25zJ10gPSAnRXh0ZW5zaWEgRmlzaWVyIEltYWdpbmUnOwokbGFuZ1snZ3JvdXAnXSA9ICdHcnVwJzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnU2FibG9uJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdBbGVnZXRpIHVudWwoYSknOwokbGFuZ1sncHJpb3JpdHlfY291bnRyaWVzJ10gPSAnVGFyaSBQcmlvcml0YXJlJzsKJGxhbmdbJ3Byb21wdF9lZGl0dGVtcGxhdGUnXSA9ICdFZGl0ZWF6YSBzYWJsb24nOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXRlbXBsYXRlJ10gPSAnU3RlcmdlIHNhYmxvbic7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGVuYW1lJ10gPSAnTnVtZSBzYWJsb24nOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnVGVzdCBzYWJsb24nOwokbGFuZ1sncHJvbXB0X25hbWUnXSA9ICdOdW1lIHNhYmxvbic7CiRsYW5nWydwcm9tcHRfbmV3dGVtcGxhdGUnXSA9ICdTYWJsb24gbm91JzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0J10gPSAnSW1wbGljaXQnOwokbGFuZ1sneWVzJ10gPSAnRGEnOwokbGFuZ1snbm8nXSA9ICdOdSc7CiRsYW5nWydzdWJtaXQnXSA9ICdUcmltaXRlJzsKJGxhbmdbJ2FwcGx5J10gPSAnQXBsaWNhJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0FudWxlYXphJzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0ZWF6YSc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnU3VudGV0aSBzaWd1cihhKT8nOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdSZXN0YWJpbGlyZSB2YWxvcmkgZGUgZmFicmljYXJlJzsKJGxhbmdbJ2Vycm9yX3RlbXBsYXRlJ10gPSAnU2FibG9uIGVyb2FyZSc7CiRsYW5nWydlcnJvcl90ZW1wbGF0ZW5hbWVleGlzdHMnXSA9ICdVbiBzYWJsb24gY3UgY3UgYWNlc3QgTnVtZSBleGlzdGEgZGVqYSc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdFeHRlbnNpaSBtb2R1bCBDYWxndXlzJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnQWNlc3QgbW9kdWwgZXN0ZSBwcmVnYXRpdCBwZW50cnUgZm9sb3NpcmUuICBDb2RhcmUgdXNvYXJhISc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnTGEgcmV2ZWRlcmUnOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bCBkZXppbnN0YWxhdC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnVmVyc2l1bmVhICVzIGEgbW9kdWx1aSBhIGZvc3QgaW5zdGFsYXRhLic7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdQcmVmZXJpbnRlIG1vZHVsIGFjdHVhbGl6YXRlLic7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdBY2NlcyBpbnRlcnppcy4gVmVyaWZpY2F0aS12YSBwZXJtaXNpdW5pbGUgdmEgcm9nLic7CiRsYW5nWydlcnJvciddID0gJ0Vyb2FyZSEnOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bCBhY3R1YWxpemF0IGxhIHZlcnNpdW5lYSAlcy4nOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdBY2VzdCBtb2R1bCBlc3RlIG8gYmlibGlvdGVjYSBkZSBjbGFzZSBwaHAgZm9sb3NpdGUgcGVudHJ1IGNvbnN0cnVpcmVhIGRlIGZvcm11bGFyZSBhdmFuc2F0ZS4nOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPg0KPGxpPlZlcnNpb24gMS4wLjAuIE1hcmNoIDIwMDcuICBJbml0aWFsIFJlbGVhc2UuPC9saT4NCjxsaT5WZXJzaW9uIDEuMC4xLiBBcHJpbCAyMDA3LiAgRml4ZXMgdG8gQ3JlYXRlSW1hZ2VMaW5rPC9saT4NCjxsaT5WZXJzaW9uIDEuMC4yLiBBcHJpbCAyMDA3LiAgQ3JlYXRlSW1hZ2VMaW5rIHdpbGwgbm93IHdvcmsgb24gdGhlIGZyb250ZW5kLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjAuMy4gU2VwdGVtYmVyIDIwMDcuICBBZGRzIGFwcGx5IGJ1dHRvbnMgdG8gbmV3IHRlbXBsYXRlcy48L2xpPg0KPGxpPlZlcnNpb24gMS4xLiAgIFNlcHRlbWJlciAyMDA3LiAgQWRkcyBkZWZhdWx0IGZyb250ZW5kIGVycm9yIGhhbmRsaW5nIHBsdWdpbi48L2xpPg0KPC91bD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5DZSByZWFsaXplYXphIGFjZXN0IG1vZHVsPzwvaDM+DQo8cD5BY2VzdCBtb2R1bCBvZmVyYSBpbiBwcmluY2lwYWwgaW50ZXJmZXRlIGFwbGljYXRpZSBzaSBldGljaGV0ZSBzbWFydHkgcGVudHJ1IGZvbG9zaXJlYSBsb3IgaW4gYWx0ZSBtb2R1bGUuIEVzdGUgY29uc3RpdHVpdCBkaW4gY2xhc2UgZGUgYmF6YSBzaSBjbGFzZSB1dGlsaXRhcmUgZGlzcG9uaWJpbGUgcGVudHJ1IGFsdGUgbW9kdWxlLjwvcD4NCjxoMz5DdW0gaWwgZm9sb3Nlc2M8L2gzPg0KPHA+RWkgYmluZSwgaW5jZXBldGkgbW9kdWx1bCBkdW1uZWF2b2FzdHJhIChzdWdlcmV6IHNhIGluY2VwZXRpIGN1IG1vZHVsdWwgU2tlbGV0b24pLCBzaSBhcG9pIGNhbmQgZG9yaXRpIHNhIGZvbG9zaXRpIHVuIG9iaWVjdCBmb3JtdWxhciBhdmFuc2F0IGRpbiBhY2Vhc3RhIGJpYmxpb3RlY2EsIHRyZWJ1aWUgZG9hciBzYSBmYWNldGkgbW9kdWx1bCBkdW1uZWF2b2FzdHJhIGRlcGVuZGVudCBkaW4gRm9ybU9iamVjdHMsIHNpIHNhIGluc3RhbnRpYXRpIHVuIG9iaWVjdCBkZSB0aXB1bCBjb3Jlc3B1bnphdG9yLiAgVmV6aSBjb2R1bCBkaW4gZGlyZWN0b3J1bCBGb3JtT2JqZWN0cyBwZW50cnUgaW5zdHJ1Y3RpdW5pIGRlIHV0aWxpemFyZS48L3A+DQo8aDM+QWRkb24tdXJpIFNtYXJ0eTwvaDM+DQo8cD5BY2VzdCBtb2R1bCBvZmVyYSBpbiBwbHVzIGNhdGV2YSBjb252ZW5pZW50ZSBzbWFydHkgcGVudHJ1IGZvbG9zaXJlYSBpbiBhbHRlIG1vZHVsZS4gQWNlc3RlYSBzdW50IGxpc3RhdGUgc2kgZGVzY3Jpc2UgYWljaTo8L3A+DQo8dWw+DQo8bGk+Y2dlcnJvciAtIDxlbT5ibG9jPC9lbT4gcGx1Z2luDQo8cD5pLmU6IDxjb2RlPntjZ2Vycm9yfUFjZXN0YSBlc3RlIHRleHR1bCBlcm9yaWl7L2NnZXJyb3J9PC9jb2RlPjxici8+DQogICAgb3I6IDxjb2RlPntjZ2Vycm9yfXskZXJyb3J0ZXh0dmFyfXsvY2dlcnJvcn08L2JyPg0KPC9wPg0KPHA+cGFyYW1ldHJpIG9wdGlvbmFsaTogJiMwMzk7ZXJyb3JjbGFzcyYjMDM5OyA9IHN1cHJhc2NyaWUgbnVtZWxlIGNsYXNlaSBpbXBsaWNpdGUgaW4gc2FibG9uLg0KPC9wPg0KPHA+RGVzY3JpZXJlOiBBY2VzdCBwbHVnaW4gYmxvYyBmb2xvc2VzdGUgc2FibG9udWwgZXJvYXJlIChjb25maWd1cmFiaWwgZGluIGludGVyZmF0YSBkZSBhZG1pbmlzdHJhcmUgQ0dFeHRlbnNpb25zKSBwZW50cnUgYWZpc2VhcmVhIHVudWkgbWVzYWogZGUgZXJvYXJlLjwvcD4NCjwvdWw+DQo8aDM+U3Vwb3J0PC9oMz4NCjxwPkFjZXN0IG1vZHVsIG51IG9mZXJhIHN1cG9ydCBjb21lcmNpYWwuIFRvdHVzaSwgZXhpc3RhIHVuIG51bWFyIGRpc3BvbmliaWwgZGUgcmVzdXJzZSBjYXJlIHZhIHBvdCBhanV0YTo8L3A+DQo8dWw+DQo8bGk+UGVudHJ1IHVsdGltYSB2ZXJzaXVuZSBhIGFjZXN0dWkgbW9kdWwsIEZBUS11cmksIHJhcG9ydGFyZWEgdW51aSBCdWcgc2F1IGFjaGl6aXRpYSBkZSBzdXBvcnQgY29tZXJjaWFsLCB2YSByb2cgc2Egdml6aXRhdGkgY21zIGRldmVsb3BtZW50IGZvcmdlIGxhIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5kZXYuY21zbWFkZXNpbXBsZS5vcmc8L2E+LjwvbGk+DQo8bGk+RGlzY3V0aWkgcmVmZXJpdG9hcmUgbGEgYWNlc3QgbW9kdWwgcG90IGZpIGdhc2l0ZSBsYSA8YSBocmVmPSZxdW90O2h0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPkF1dG9ydWwsIGNhbGd1eSBzaSBhbHRpaSBwb3QgZmkgYWRlc2VhIGdhc2l0aSBsYSA8YSBocmVmPSZxdW90O2lyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyZxdW90Oz5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+SW4gZmluYWwsIGF0aSBwdXRlYSBhdmVhIHN1Y2NlcyBwcmluIHRyaW1pdGVyZWEgdW51aSBlLW1haWwgZGlyZWN0IGF1dG9ydWx1aS48L2xpPiAgDQo8L3VsPg0KPHA+UmVmZXJpdG9yIGxhIEdQTCwgYWNlc3Qgc29mdCBlc3RlIG9mZXJpdCBhc2EgY3VtIGVzdGUuIFZhIHJvZyBzYSBjaXRpdGkgdGV4dHVsIGxpY2VudGVpIHBlbnRydSBkaXNjdWxwYSB0b3RhbGEuPC9wPg0KDQo8aDM+Q29weXJpZ2h0IHNpIExpY2VudGE8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA3LCBSb2JlcnQgQ2FtcGJlbGwgPGEgaHJlZj0mcXVvdDttYWlsdG86Y2FsZ3V5MTAwMEBob3RtYWlsLmNvbSZxdW90Oz48Y2FsZ3V5MTAwMEBob3RtYWlsLmNvbT48L2E+LiBUb2F0ZSBkcmVwdHVyaWxlIHJlemVydmF0ZS48L3A+DQo8cD5BY2VzdCBtb2R1bCBhIGZvc3QgbGl2cmF0IHN1YiA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCZxdW90Oz5MaWNlbnRhIHB1YmxpY2EgR05VPC9hPi4gVHJlYnVpZSBzYSBmaXRpIGRlIGFjb3JkIGN1IGFjZWFzdGEgaW5haW50ZSBzYSBmb2xvc2l0aSBtb2R1bHVsLjwvcD4NCic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMTE1MzI2OTIuNi4zLnV0bWNjbj0ob3JnYW5pYyl8dXRtY3NyPWdvb2dsZXx1dG1jdHI9aHR0cDovL3RyYW5zbGF0aW9ucy5jbXNtYWRlc2ltcGxlLm9yZy98dXRtY21kPW9yZ2FuaWMnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xODUzMDkzMC4xMjA3MTI5NDUzLjEyMTE0NTI0ODEuMTIxMTUzMjMwNi42JzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMuMi4xMC4xMjExNTMyMzA2JzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ru_RU.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ltYWdlX2V4dGVuc2lvbnMnXSA9ICdJbWFnZSBGaWxlIEV4dGVuc2lvbnMnOwokbGFuZ1snZ3JvdXAnXSA9ICfQk9GA0YPQv9C/0LAnOwokbGFuZ1sndGVtcGxhdGUnXSA9ICfQqNCw0LHQu9C+0L0nOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ9CS0YvQsdGA0LDRgtGMINC+0LTQuNC9JzsKJGxhbmdbJ3Byb21wdF9lZGl0dGVtcGxhdGUnXSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDRiNCw0LHQu9C+0L0nOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXRlbXBsYXRlJ10gPSAn0KPQtNCw0LvQuNGC0Ywg0YjQsNCx0LvQvtC9JzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZW5hbWUnXSA9ICfQndCw0LfQstCw0L3QuNC1INGI0LDQsdC70L7QvdCwJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ9Ci0LXQutGB0YIg0YjQsNCx0LvQvtC90LAnOwokbGFuZ1sncHJvbXB0X25hbWUnXSA9ICfQndCw0LfQstCw0L3QuNC1INGI0LDQsdC70L7QvdCwJzsKJGxhbmdbJ3Byb21wdF9uZXd0ZW1wbGF0ZSddID0gJ9Cd0L7QstGL0Lkg0YjQsNCx0LvQvtC9JzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0J10gPSAn0J/QviDRg9C80L7Qu9GH0LDQvdC40Y4nOwokbGFuZ1sneWVzJ10gPSAn0JTQsCc7CiRsYW5nWydubyddID0gJ9Cd0LXRgic7CiRsYW5nWydzdWJtaXQnXSA9ICfQntGC0L/RgNCw0LLQuNGC0YwnOwokbGFuZ1snYXBwbHknXSA9ICdBcHBseSc7CiRsYW5nWydjYW5jZWwnXSA9ICfQntGC0LzQtdC90LAnOwokbGFuZ1snZWRpdCddID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDQvdC40LUnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ9CS0Ysg0YPQstC10YDQtdC90Ys/JzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnUmVzZXQgdG8gZmFjdG9yeSBkZWZhdWx0cyc7CiRsYW5nWydlcnJvcl90ZW1wbGF0ZSddID0gJ9Ce0YjQuNCx0LrQsCDRiNCw0LHQu9C+0L3QsCc7CiRsYW5nWydlcnJvcl90ZW1wbGF0ZW5hbWVleGlzdHMnXSA9ICfQotCw0LrQvtC1INC90LDQt9Cy0LDQvdC40LUg0YjQsNCx0LvQvtC90LAg0YPQttC1INGB0YPRidC10YHRgtCy0YPQtdGCJzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0NhbGd1eXMgTW9kdWxlIEV4dGVuc2lvbnMnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdUaGlzIG1vZHVsZSBpcyByZWFkeSB0byB1c2UuICBDb2RlIGF3YXkhJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdTZWUgeW91IGFnYWluIHNvbWUgZGF5JzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAn0JzQvtC00YPQu9GMINC00LXQuNC90YHRgtCw0LvQu9C40YDQvtCy0LDQvS4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAn0JzQvtC00YPQu9GMINCy0LXRgNGB0LjQuCAlcyDRg9GB0YLQsNC90L7QstC70LXQvS4nOwokbGFuZ1sncHJlZnN1cGRhdGVkJ10gPSAn0J3QsNGB0YLRgNC+0LnQutC4INC80L7QtNGD0LvRjyDQvtCx0L3QvtCy0LvQtdC90YsuJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ0FjY2VzcyBEZW5pZWQuIFBsZWFzZSBjaGVjayB5b3VyIHBlcm1pc3Npb25zLic7CiRsYW5nWydlcnJvciddID0gJ9Ce0YjQuNCx0LrQsCEnOwokbGFuZ1sndXBncmFkZWQnXSA9ICfQnNC+0LTRg9C70Ywg0L7QsdC90L7QstC70LXQvSDQtNC+INCy0LXRgNGB0LjQuCAlcy4nOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdUaGlzIG1vZHVsZSBpcyBhIGxpYnJhcnkgb2YgcGhwIGNsYXNzZXMgdXNlZCB0byBidWlsZCBhZHZhbmNlZCBmb3Jtcyc7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQo8bGk+VmVyc2lvbiAxLjAuMC4gTWFyY2ggMjAwNy4gIEluaXRpYWwgUmVsZWFzZS48L2xpPg0KPGxpPlZlcnNpb24gMS4wLjEuIEFwcmlsIDIwMDcuICBGaXhlcyB0byBDcmVhdGVJbWFnZUxpbms8L2xpPg0KPGxpPlZlcnNpb24gMS4wLjIuIEFwcmlsIDIwMDcuICBDcmVhdGVJbWFnZUxpbmsgd2lsbCBub3cgd29yayBvbiB0aGUgZnJvbnRlbmQuPC9saT4NCjxsaT5WZXJzaW9uIDEuMC4zLiBTZXB0ZW1iZXIgMjAwNy4gIEFkZHMgYXBwbHkgYnV0dG9ucyB0byBuZXcgdGVtcGxhdGVzLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjEuICAgU2VwdGVtYmVyIDIwMDcuICBBZGRzIGRlZmF1bHQgZnJvbnRlbmQgZXJyb3IgaGFuZGxpbmcgcGx1Z2luLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjIuICAgTm92ZW1iZXIgIDIwMDcsICBBZGRzIG1vcmUgY29udmVuaWVuY2UgZnVuY3Rpb25zPC9saT4NCjxsaT5WZXJzaW9uIDEuMy4gICBOb3ZlbWJlciAgMjAwNy4gIEFkZHMgZXZlbiBtb3JlIGNvbnZlbmllbmNlIGZ1bmN0aW9uczwvbGk+DQo8bGk+VmVyc2lvbiAxLjQuICAgRGVjZW1iZXIgIDIwMDcuICBBZGRzIENyZWF0ZUltYWdlRHJvcGRvd24gbWV0aG9kPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoaXMgbW9kdWxlIG1lcmVseSBwcm92aWRlcyBjb252ZW5pZW5jZSBhcGlcJ3MgYW5kIHNtYXJ0eSB0YWdzIGZvciB1c2UgaW4gb3RoZXIgbW9kdWxlcy4gIEl0IGlzIG1lYW50IHNvbGVseSBhcyBhIGJhc2UgY2xhc3MgYW5kIHV0aWxpdHkgY2xhc3MgZm9yIG90aGVyIG1vZHVsZXMuPC9wPg0KPGgzPkhvdyBEbyBJIFVzZSBJdDwvaDM+DQo8cD5XZWxsLCB5b3Ugc3RhcnQgeW91ciBvd24gbW9kdWxlIChJIHN1Z2dlc3Qgc3RhcnRpbmcgd2l0aCB0aGUgU2tlbGV0b24gbW9kdWxlKSwgYW5kIHRoZW4gd2hlbiB5b3UgbmVlZCB0byB1c2UgYW4gYWR2YW5jZWQgZm9ybSBvYmplY3QgZnJvbSB0aGlzIGxpYnJhcnksIHNpbXBseSBtYWtlIHlvdXIgbW9kdWxlIGRlcGVuZGFudCB1cG9uIEZvcm1PYmplY3RzLCBhbmQgdGhlbiBpbnN0YW50aWF0ZSBhbiBvYmplY3Qgb2YgdGhlIGFwcHJvcHJpYXRlIHR5cGUuICBTZWUgdGhlIGNvZGUgaW5zaWRlIHRoZSBGb3JtT2JqZWN0cyBkaXJlY3RvcnkgZm9yIHVzYWdlIGluc3RydWN0aW9ucy48L3A+DQo8aDM+U21hcnR5IEFkZG9uczwvaDM+DQo8cD5UaGlzIG1vZHVsZSBhZGRzIGEgZmV3IHNtYXJ0eSBjb252ZW5pZW5jZXMgZm9yIHVzZSB3aXRoIG90aGVyIG1vZHVsZXMuIFRoZXkgYXJlIGxpc3RlZCBhbmQgZGVzY3JpYmVkIGhlcmU6PC9wPg0KPHVsPg0KPGxpPmNnZXJyb3IgLSA8ZW0+YmxvY2s8L2VtPiBwbHVnaW4NCjxwPmkuZTogPGNvZGU+e2NnZXJyb3J9VGhpcyBpcyBlcnJvciB0ZXh0ey9jZ2Vycm9yfTwvY29kZT48YnIvPg0KICAgIG9yOiA8Y29kZT57Y2dlcnJvcn17JGVycm9ydGV4dHZhcn17L2NnZXJyb3J9PC9icj4NCjwvcD4NCjxwPm9wdGlvbmFsIHBhcmFtZXRlcnM6IFwnZXJyb3JjbGFzc1wnID0gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgY2xhc3MgbmFtZSBpbiB0aGUgdGVtcGxhdGUuDQo8L3A+DQo8cD5EZXNjcmlwdGlvbjogVGhpcyBibG9jayBwbHVnaW4gdXNlcyB0aGUgZXJyb3IgdGVtcGxhdGUgKGNvbmZpZ3VyYWJsZSBmcm9tIHRoZSBDR0V4dGVuc2lvbnMgYWRtaW4gaW50ZXJmYWNlKSB0byBkaXNwbGF5IGFuIGVycm9yIG1lc3NhZ2UuPC9wPg0KPC91bD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCBvciBidXkgY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIGNtcyBkZXZlbG9wbWVudCBmb3JnZSBhdCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5kZXYuY21zbWFkZXNpbXBsZS5vcmc8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvcihzKSwgY2FsZ3V5IGV0IGFsbCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yKHMpIGRpcmVjdGx5LjwvbGk+ICANCjwvdWw+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgwqkgMjAwNywgUm9iZXJ0IENhbXBiZWxsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGhvdG1haWwuY29tIj48Y2FsZ3V5MTAwMEBob3RtYWlsLmNvbT48L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPg0KJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTA0NTU2NjYwMC4xMTkzMTY0NDQwLjExOTkzMzYzODguMTE5OTQyMzk2OS4yNCc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjExOTkyNzM2OTEuMjAuNy51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9ZGV2LmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vZm9ydW0vZm9ydW0ucGhwfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sv_SE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ0NHRklMRVVQTE9BRF9OT0ZJTEUnXSA9ICdJbmdlbiB1cHBsYWRkYWQgZmlsIG1hdGNoYXIgYmVza3Jpdm5pbmdhcm5hJzsKJGxhbmdbJ0NHRklMRVVQTE9BRF9GSUxFU0laRSddID0gJ1N0b3JsZWtlbiBwJmFyaW5nOyBkZW4gdXBwbGFkYWRlIGZpbGVuICZvdW1sO3ZlcnNrcmVkIGRlbiBtYXhpbWFsdCB0aWxsJmFyaW5nO3RuYSc7CiRsYW5nWydDR0ZJTEVVUExPQURfRklMRVRZUEUnXSA9ICdGaWxlciBhdiBkZW4gaCZhdW1sO3IgdHlwZW4ga2FuIGludGUgbGFkZGFzIHVwcCc7CiRsYW5nWydDR0ZJTEVVUExPQURfRklMRUVYSVNUUyddID0gJ0VuIGZpbCBtZWQgZGV0IG5hbW5ldCBmaW5ucyByZWRhbic7CiRsYW5nWydDR0ZJTEVVUExPQURfQkFEREVTVERJUiddID0gJ00mYXJpbmc7bG1hcHBlbiBzb20gYW5nYXZzIGYmb3VtbDtyIHVwcGxhZGFkZSBmaWxlciBmaW5ucyBpbnRlJzsKJGxhbmdbJ0NHRklMRVVQTE9BRF9CQURQRVJNUyddID0gJ0RldCBmaW5ucyBpbnRlIHNrcml2ciZhdW1sO3R0aWdoZXRlciBmJm91bWw7ciBmaWxlciBzb20gbGFkZGFzIHVwcCB0aWxsIHNpbiBtJmFyaW5nO2xtYXBwLic7CiRsYW5nWydDR0ZJTEVVUExPQURfTU9WRUZBSUxFRCddID0gJ01pc3NseWNrYWRlcyBtZWQgYXR0IGZseXR0YSBkZW4gdXBwbGFkZGFkZSBmaWxlbiB0aWxsIGRlc3Mgc2x1dGdpbHRpZ2EgZGVzdGluYXRpb24uJzsKJGxhbmdbJ3RodW1ibmFpbF9zaXplJ10gPSAnU3RvcmxlayBwJmFyaW5nOyBtaW5pYXR5cmJpbGRlcic7CiRsYW5nWydpbWFnZV9leHRlbnNpb25zJ10gPSAnRmlsJmF1bWw7bmRlbHNlciBmJm91bWw7ciBiaWxkZmlsZXInOwokbGFuZ1snZ3JvdXAnXSA9ICdHcnVwcCc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ01hbGwnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1YmYXVtbDtsaiBlbic7CiRsYW5nWydwcmlvcml0eV9jb3VudHJpZXMnXSA9ICdQcmlvcml0ZXJhZGUgbCZhdW1sO25kZXInOwokbGFuZ1sncHJvbXB0X2VkaXR0ZW1wbGF0ZSddID0gJ1JlZGlnZXJhIG1hbGwnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXRlbXBsYXRlJ10gPSAnVGEgYm9ydCBtYWxsJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZW5hbWUnXSA9ICdNYWxsbmFtbic7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdNYWxsdGV4dCc7CiRsYW5nWydwcm9tcHRfbmFtZSddID0gJ01hbGxuYW1uJzsKJGxhbmdbJ3Byb21wdF9uZXd0ZW1wbGF0ZSddID0gJ055IG1hbGwnOwokbGFuZ1sncHJvbXB0X2RlZmF1bHQnXSA9ICdTdGFuZGFyZCc7CiRsYW5nWyd5ZXMnXSA9ICdKYSc7CiRsYW5nWydubyddID0gJ05laic7CiRsYW5nWydzdWJtaXQnXSA9ICdTa2lja2EnOwokbGFuZ1snYXBwbHknXSA9ICdWZXJrc3QmYXVtbDtsbCc7CiRsYW5nWydjYW5jZWwnXSA9ICcmQXJpbmc7bmdyYSc7CiRsYW5nWydlZGl0J10gPSAnUmVkaWdlcmEnOwokbGFuZ1snYXJleW91c3VyZSddID0gJyZBdW1sO3IgZHUgcyZhdW1sO2tlcj8nOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICcmQXJpbmc7dGVyc3QmYXVtbDtsbCB0aWxsIHN0YW5kYXJkaW5zdCZhdW1sO2xsbmluZ2FybmEnOwokbGFuZ1snZXJyb3JfdGVtcGxhdGUnXSA9ICdGZWxtYWxsJzsKJGxhbmdbJ2Vycm9yX3RlbXBsYXRlbmFtZWV4aXN0cyddID0gJ0VuIG1hbGwgbWVkIGRldCBuYW1uZXQgZmlubnMgcmVkYW4nOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnQ2FsZ3V5cyBtb2R1bHRpbGwmYXVtbDtnZyc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0RlbiBoJmF1bWw7ciBtb2R1bGVuICZhdW1sO3IgZiZhdW1sO3JkaWcgYXR0IGFudiZhdW1sO25kYXMuIEtvZGEgcCZhcmluZzshJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdWaSBzZXMgbiZhcmluZztuIGRhZyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZW4gJmF1bWw7ciBhdmluc3RhbGxlcmFkLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bHZlcnNpb24gJXMgaW5zdGFsbGVyYWQuJzsKJGxhbmdbJ3ByZWZzdXBkYXRlZCddID0gJ01vZHVsaW5zdCZhdW1sO2xsbmluZ2FybmEgdXBwZGF0ZXJhZGVzLic7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICcmQXJpbmc7dGtvbXN0IG5la2FkLiBWJmF1bWw7bmxpZyBrb250cm9sbGVyYSBkaW5hIHImYXVtbDt0dGlnaGV0ZXIuJzsKJGxhbmdbJ2Vycm9yJ10gPSAnRmVsISc7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZW4gdXBwZ3JhZGVyYWRlcyB0aWxsIHZlcnNpb24gJXMuJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnRGVuIGgmYXVtbDtyIG1vZHVsZW4gJmF1bWw7ciBldHQgYmlibGlvdGVrIG1lZCBwaHAta2xhc3NlciBzb20gYW52JmF1bWw7bmRzIGYmb3VtbDtyIGF0dCBieWdnYSBhdmFuY2VyYWRlIGZvcm11bCZhdW1sO3InOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPg0KPGxpPlZlcnNpb24gMS4wLjAuIE1hcmNoIDIwMDcuICBJbml0aWFsIFJlbGVhc2UuPC9saT4NCjxsaT5WZXJzaW9uIDEuMC4xLiBBcHJpbCAyMDA3LiAgRml4ZXMgdG8gQ3JlYXRlSW1hZ2VMaW5rPC9saT4NCjxsaT5WZXJzaW9uIDEuMC4yLiBBcHJpbCAyMDA3LiAgQ3JlYXRlSW1hZ2VMaW5rIHdpbGwgbm93IHdvcmsgb24gdGhlIGZyb250ZW5kLjwvbGk+DQo8bGk+VmVyc2lvbiAxLjAuMy4gU2VwdGVtYmVyIDIwMDcuICBBZGRzIGFwcGx5IGJ1dHRvbnMgdG8gbmV3IHRlbXBsYXRlcy48L2xpPg0KPGxpPlZlcnNpb24gMS4xLiAgIFNlcHRlbWJlciAyMDA3LiAgQWRkcyBkZWZhdWx0IGZyb250ZW5kIGVycm9yIGhhbmRsaW5nIHBsdWdpbi48L2xpPg0KPGxpPlZlcnNpb24gMS4yLiAgIE5vdmVtYmVyICAyMDA3LCAgQWRkcyBtb3JlIGNvbnZlbmllbmNlIGZ1bmN0aW9uczwvbGk+DQo8bGk+VmVyc2lvbiAxLjMuICAgTm92ZW1iZXIgIDIwMDcuICBBZGRzIGV2ZW4gbW9yZSBjb252ZW5pZW5jZSBmdW5jdGlvbnM8L2xpPg0KPGxpPlZlcnNpb24gMS40LiAgIERlY2VtYmVyICAyMDA3LiAgQWRkcyBDcmVhdGVJbWFnZURyb3Bkb3duIG1ldGhvZCwgbWV0aG9kcyBmb3Igc3RhdGUgYW5kIGNvdW50cnkgZHJvcGRvd25zIGFuZCBhIGJ1bmNoIG9mIG90aGVyIHRoaW5ncy48L2xpPg0KPGxpPlZlcnNpb24gMS41LiAgIEphbnVhcnkgICAyMDA4LiAgRml4ZXMgdG8gaHRtbF9lbnRpdGllc19kZWNvZGUgaW4gdXRmODwvbGk+DQo8bGk+VmVyc2lvbiAxLjYuICAgRmVicnVhcnkgIDIwMDgsICBBZGRzIHRoZSBDR0ZpbGVVcGxvYWRIYW5kbGVyIGNsYXNzPC9saT4NCjxsaT5WZXJzaW9uIDEuNi4xLiAgIEZlYnJ1YXJ5ICAyMDA4LCAgTWlub3IgZml4IHRvIHJlY3Vyc2l2ZV9jaGFuZ2VfZGlyZWN0b3J5PC9saT4NCjwvdWw+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoaXMgbW9kdWxlIG1lcmVseSBwcm92aWRlcyBjb252ZW5pZW5jZSBhcGkmIzAzOTtzIGFuZCBzbWFydHkgdGFncyBmb3IgdXNlIGluIG90aGVyIG1vZHVsZXMuICBJdCBpcyBtZWFudCBzb2xlbHkgYXMgYSBiYXNlIGNsYXNzIGFuZCB1dGlsaXR5IGNsYXNzIGZvciBvdGhlciBtb2R1bGVzLjwvcD4NCjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPg0KPHA+V2VsbCwgeW91IHN0YXJ0IHlvdXIgb3duIG1vZHVsZSAoSSBzdWdnZXN0IHN0YXJ0aW5nIHdpdGggdGhlIFNrZWxldG9uIG1vZHVsZSksIGFuZCB0aGVuIHdoZW4geW91IG5lZWQgdG8gdXNlIGFuIGFkdmFuY2VkIGZvcm0gb2JqZWN0IGZyb20gdGhpcyBsaWJyYXJ5LCBzaW1wbHkgbWFrZSB5b3VyIG1vZHVsZSBkZXBlbmRhbnQgdXBvbiBGb3JtT2JqZWN0cywgYW5kIHRoZW4gaW5zdGFudGlhdGUgYW4gb2JqZWN0IG9mIHRoZSBhcHByb3ByaWF0ZSB0eXBlLiAgU2VlIHRoZSBjb2RlIGluc2lkZSB0aGUgRm9ybU9iamVjdHMgZGlyZWN0b3J5IGZvciB1c2FnZSBpbnN0cnVjdGlvbnMuPC9wPg0KPGgzPlNtYXJ0eSBBZGRvbnM8L2gzPg0KPHA+VGhpcyBtb2R1bGUgYWRkcyBhIGZldyBzbWFydHkgY29udmVuaWVuY2VzIGZvciB1c2Ugd2l0aCBvdGhlciBtb2R1bGVzLiBUaGV5IGFyZSBsaXN0ZWQgYW5kIGRlc2NyaWJlZCBoZXJlOjwvcD4NCjx1bD4NCjxsaT5jZ2Vycm9yIC0gPGVtPmJsb2NrPC9lbT4gcGx1Z2luDQo8cD5pLmU6IDxjb2RlPntjZ2Vycm9yfVRoaXMgaXMgZXJyb3IgdGV4dHsvY2dlcnJvcn08L2NvZGU+PGJyLz4NCiAgICBvcjogPGNvZGU+e2NnZXJyb3J9eyRlcnJvcnRleHR2YXJ9ey9jZ2Vycm9yfTwvYnI+DQo8L3A+DQo8cD5vcHRpb25hbCBwYXJhbWV0ZXJzOiAmIzAzOTtlcnJvcmNsYXNzJiMwMzk7ID0gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgY2xhc3MgbmFtZSBpbiB0aGUgdGVtcGxhdGUuDQo8L3A+DQo8cD5EZXNjcmlwdGlvbjogVGhpcyBibG9jayBwbHVnaW4gdXNlcyB0aGUgZXJyb3IgdGVtcGxhdGUgKGNvbmZpZ3VyYWJsZSBmcm9tIHRoZSBDR0V4dGVuc2lvbnMgYWRtaW4gaW50ZXJmYWNlKSB0byBkaXNwbGF5IGFuIGVycm9yIG1lc3NhZ2UuPC9wPg0KPC91bD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCBvciBidXkgY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIGNtcyBkZXZlbG9wbWVudCBmb3JnZSBhdCA8YSBocmVmPSZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+ZGV2LmNtc21hZGVzaW1wbGUub3JnPC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yKHMpLCBjYWxndXkgZXQgYWxsIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMmcXVvdDs+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yKHMpIGRpcmVjdGx5LjwvbGk+ICANCjwvdWw+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmFtcDtjb3B5OyAyMDA3LCBSb2JlcnQgQ2FtcGJlbGwgPGEgaHJlZj0mcXVvdDttYWlsdG86Y2FsZ3V5MTAwMEBob3RtYWlsLmNvbSZxdW90Oz4mYW1wO2x0O2NhbGd1eTEwMDBAaG90bWFpbC5jb20mYW1wO2d0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCZxdW90Oz5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPg0KJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTIxNDQxNTcwOC4xLjEudXRtY3NyPShkaXJlY3QpfHV0bWNjbj0oZGlyZWN0KXx1dG1jbWQ9KG5vbmUpJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMzYxMTU5ODMxODQ2OTI1NDAwMC4xMjE0NDE1NzA4LjEyMTQ1MDY0ODYuMTIxNDUxNTc1MC4zJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMuMi4xMC4xMjE0NTE1NzUwJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/Progress2_Lite.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qKg0KICogQ29weXJpZ2h0IChjKSAyMDA1LTIwMDcsIExhdXJlbnQgTGF2aWxsZSA8cGVhckBsYXVyZW50LWxhdmlsbGUub3JnPg0KICoNCiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQogKg0KICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQogKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCiAqIGFyZSBtZXQ6DQogKg0KICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCiAqICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCiAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQogKiAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlDQogKiAgICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgYXV0aG9ycyBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMNCiAqICAgICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQ0KICogICAgICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uDQogKg0KICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiDQogKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFDQogKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQ0KICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTDQogKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SDQogKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRg0KICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTDQogKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTg0KICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkNCiAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFDQogKiBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4NCiAqDQogKiBAY2F0ZWdvcnkgICBIVE1MDQogKiBAcGFja2FnZSAgICBIVE1MX1Byb2dyZXNzMg0KICogQGF1dGhvciAgICAgTGF1cmVudCBMYXZpbGxlIDxwZWFyQGxhdXJlbnQtbGF2aWxsZS5vcmc+DQogKiBAY29weXJpZ2h0ICAyMDA1LTIwMDcgTGF1cmVudCBMYXZpbGxlDQogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocCAgTmV3IEJTRCBMaWNlbnNlDQogKiBAdmVyc2lvbiAgICBDVlM6ICRJZDogUHJvZ3Jlc3MyX0xpdGUucGhwLHYgMS45IDIwMDcvMDQvMDggMTQ6NTU6NTYgZmFyZWxsIEV4cCAkDQogKiBAbGluayAgICAgICBodHRwOi8vcGVhci5waHAubmV0L3BhY2thZ2UvSFRNTF9Qcm9ncmVzczINCiAqIEBzaW5jZSAgICAgIEZpbGUgYXZhaWxhYmxlIHNpbmNlIFJlbGVhc2UgMi4wLjBSQzENCiAqLw0KDQppZiAoIWZ1bmN0aW9uX2V4aXN0cygnb2JfZ2V0X2NsZWFuJykpIHsNCiAgICBmdW5jdGlvbiBvYl9nZXRfY2xlYW4oKQ0KICAgIHsNCiAgICAgICAgJGNvbnRlbnRzID0gb2JfZ2V0X2NvbnRlbnRzKCk7DQoNCiAgICAgICAgaWYgKCRjb250ZW50cyAhPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIG9iX2VuZF9jbGVhbigpOw0KICAgICAgICB9DQoNCiAgICAgICAgcmV0dXJuICRjb250ZW50czsNCiAgICB9DQp9DQoNCmlmICghZGVmaW5lZCgnUEhQX0VPTCcpKSB7DQogICAgc3dpdGNoIChzdHJ0b3VwcGVyKHN1YnN0cihQSFBfT1MsIDAsIDMpKSkgew0KICAgICAgICAvLyBXaW5kb3dzDQogICAgICAgIGNhc2UgJ1dJTic6DQogICAgICAgICAgICBkZWZpbmUoJ1BIUF9FT0wnLCAiXHJcbiIpOw0KICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgLy8gTWFjDQogICAgICAgIGNhc2UgJ0RBUic6DQogICAgICAgICAgICBkZWZpbmUoJ1BIUF9FT0wnLCAiXHIiKTsNCiAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgIC8vIFVuaXgNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGRlZmluZSgnUEhQX0VPTCcsICJcbiIpOw0KICAgIH0NCn0NCg0KLyoqDQogKiBTdGFuZGFsb25lIEhUTUwgbG9hZGluZyBiYXIgd2l0aCBvbmx5IFBIUCBhbmQgSlMgaW50ZXJmYWNlLg0KICoNCiAqIFRoZSBIVE1MX1Byb2dyZXNzMl9MaXRlIGNsYXNzIGFsbG93IHlvdSB0byBhZGQgYSBxdWljaw0KICogaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbCBsb2FkaW5nIGJhciB0byBhbnkgb2YgeW91ciB4aHRtbCBkb2N1bWVudC4NCiAqIFlvdSBzaG91bGQgaGF2ZSBhIGJyb3dzZXIgdGhhdCBhY2NlcHQgREhUTUwgZmVhdHVyZS4NCiAqDQogKiBUaGlzIGNsYXNzIGhhcyBubyBkZXBlbmRlbmN5IGFuZCBjYW4gYmUgdXNlZCBjb21wbGV0ZWx5IG91dHNpZGUNCiAqIHRoZSBQRUFSIGluZnJhc3RydWN0dXJlLg0KICoNCiAqIEhlcmUgaXMgYSBiYXNpYyBleGFtcGxlOg0KICogPGNvZGU+DQogKiA8aHRtbD4NCiAqIDxib2R5Pg0KICogPD9waHANCiAqIHJlcXVpcmVfb25jZSAnSFRNTC9Qcm9ncmVzczJfTGl0ZS5waHAnOw0KICoNCiAqIGZ1bmN0aW9uIG15UHJvY2VzcygpDQogKiB7DQogKiAgICAgZm9yICgkaT0wOyAkaTwxMDAwMDA7ICRpKyspIHsgfQ0KICogfQ0KICoNCiAqICRwYmwgPSBuZXcgSFRNTF9Qcm9ncmVzczJfTGl0ZSgpOw0KICogJHBibC0+YWRkTGFiZWwoJ3RleHQnLCd0eHQxJywnUHJvZ3Jlc3MyIExpdGUgLSBCYXNpYyBFeGFtcGxlJyk7DQogKiAkcGJsLT5kaXNwbGF5KCk7DQogKg0KICogZm9yKCRpPTE7ICRpPD0xMDA7ICRpKyspIHsNCiAqICAgICAkcGJsLT5tb3ZlU3RlcCgkaSk7DQogKiAgICAgbXlQcm9jZXNzKCk7DQogKiB9DQogKiA/Pg0KICogPC9ib2R5Pg0KICogPC9odG1sPg0KICogPC9jb2RlPg0KICoNCiAqIEBjYXRlZ29yeSAgIEhUTUwNCiAqIEBwYWNrYWdlICAgIEhUTUxfUHJvZ3Jlc3MyDQogKiBAYXV0aG9yICAgICBMYXVyZW50IExhdmlsbGUgPHBlYXJAbGF1cmVudC1sYXZpbGxlLm9yZz4NCiAqIEBhdXRob3IgICAgIE1pa2EgVHVyaW4gPHR1cmluQGluYm94Lmx2Pg0KICogQGF1dGhvciAgICAgR2VyZCBXZWl0ZW5iZXJnIDxoYWhuZWJ1ZWNoZW5Ad2ViLmRlPg0KICogQGNvcHlyaWdodCAgMjAwNS0yMDA3IExhdXJlbnQgTGF2aWxsZQ0KICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHAgIE5ldyBCU0QgTGljZW5zZQ0KICogQHZlcnNpb24gICAgUmVsZWFzZTogMi4zLjANCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9wZWFyLnBocC5uZXQvcGFja2FnZS9IVE1MX1Byb2dyZXNzMg0KICogQGxpbmsgICAgICAgaHR0cDovL3d3dy5waHBjbGFzc2VzLm9yZy9icm93c2UvcGFja2FnZS8xMjIyLmh0bWwNCiAqICAgICAgICAgICAgIEZyb20gYW4gb3JpZ2luYWwgaWRlYSBvZiBNaWtlIFR1cmluDQogKiBAbGluayAgICAgICBodHRwOi8vd3d3LnBocGNsYXNzZXMub3JnL2Jyb3dzZS9wYWNrYWdlLzE5NjQuaHRtbA0KICogICAgICAgICAgICAgSW1wcm92ZSB2ZXJzaW9uIG9mIEdlcmQgV2VpdGVuYmVyZw0KICogQHNpbmNlICAgICAgQ2xhc3MgYXZhaWxhYmxlIHNpbmNlIFJlbGVhc2UgMi4wLjBSQzENCiAqLw0KDQpjbGFzcyBIVE1MX1Byb2dyZXNzMl9MaXRlDQp7DQogICAgLyoqDQogICAgICogTGFiZWwgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBwcm9ncmVzcyBiYXIuDQogICAgICoNCiAgICAgKiBAdmFyICAgICAgICBzdHJpbmcNCiAgICAgKiBAc2luY2UgICAgICAyLjAuMA0KICAgICAqIEBhY2Nlc3MgICAgIHByaXZhdGUNCiAgICAgKi8NCiAgICB2YXIgJF9pZGVudDsNCg0KICAgIC8qKg0KICAgICAqIFN0YXR1cyBvZiB0aGUgcHJvZ3Jlc3MgYmFyIChuZXcsIHNob3csIGhpZGUpLg0KICAgICAqDQogICAgICogQHZhciAgICAgICAgc3RyaW5nDQogICAgICogQHNpbmNlICAgICAgMi4wLjANCiAgICAgKiBAYWNjZXNzICAgICBwcml2YXRlDQogICAgICovDQogICAgdmFyICRfc3RhdHVzID0gJ25ldyc7DQoNCiAgICAvKioNCiAgICAgKiBTdGVwcyBvZiB0aGUgcHJvZ3Jlc3MgYmFyLg0KICAgICAqDQogICAgICogQHZhciAgICAgICAgaW50ZWdlcg0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHJpdmF0ZQ0KICAgICAqLw0KICAgIHZhciAkX3N0ZXAgPSAwOw0KDQogICAgLyoqDQogICAgICogTWluaW11bSBzdGVwcyBvZiB0aGUgcHJvZ3Jlc3MgYmFyLg0KICAgICAqDQogICAgICogQHZhciAgICAgICAgaW50ZWdlcg0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHVibGljDQogICAgICovDQogICAgdmFyICRtaW47DQoNCiAgICAvKioNCiAgICAgKiBNYXhpbXVtIHN0ZXBzIG9mIHRoZSBwcm9ncmVzcyBiYXIuDQogICAgICoNCiAgICAgKiBAdmFyICAgICAgICBpbnRlZ2VyDQogICAgICogQHNpbmNlICAgICAgMi4wLjANCiAgICAgKiBAYWNjZXNzICAgICBwdWJsaWMNCiAgICAgKi8NCiAgICB2YXIgJG1heDsNCg0KICAgIC8qKg0KICAgICAqIFByb2dyZXNzIGJhciBwb3NpdGlvbiAoYWJzb2x1dGUsIHJlbGF0aXZlKS4NCiAgICAgKg0KICAgICAqIEB2YXIgICAgICAgIHN0cmluZw0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHVibGljDQogICAgICovDQogICAgdmFyICRwb3NpdGlvbjsNCg0KICAgIC8qKg0KICAgICAqIFByb2dyZXNzIGJhciBwb3NpdGlvbiBmcm9tIGxlZnQuDQogICAgICoNCiAgICAgKiBAdmFyICAgICAgICBpbnRlZ2VyDQogICAgICogQHNpbmNlICAgICAgMi4wLjANCiAgICAgKiBAYWNjZXNzICAgICBwdWJsaWMNCiAgICAgKi8NCiAgICB2YXIgJGxlZnQ7DQoNCiAgICAvKioNCiAgICAgKiBQcm9ncmVzcyBiYXIgcG9zaXRpb24gZnJvbSB0b3AuDQogICAgICoNCiAgICAgKiBAdmFyICAgICAgICBpbnRlZ2VyDQogICAgICogQHNpbmNlICAgICAgMi4wLjANCiAgICAgKiBAYWNjZXNzICAgICBwdWJsaWMNCiAgICAgKi8NCiAgICB2YXIgJHRvcDsNCg0KICAgIC8qKg0KICAgICAqIFByb2dyZXNzIGJhciB3aWR0aCBpbiBwaXhlbC4NCiAgICAgKg0KICAgICAqIEB2YXIgICAgICAgIGludGVnZXINCiAgICAgKiBAc2luY2UgICAgICAyLjAuMA0KICAgICAqIEBhY2Nlc3MgICAgIHB1YmxpYw0KICAgICAqLw0KICAgIHZhciAkd2lkdGg7DQoNCiAgICAvKioNCiAgICAgKiBQcm9ncmVzcyBiYXIgaGVpZ2h0IGluIHBpeGVsLg0KICAgICAqDQogICAgICogQHZhciAgICAgICAgaW50ZWdlcg0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHVibGljDQogICAgICovDQogICAgdmFyICRoZWlnaHQ7DQoNCiAgICAvKioNCiAgICAgKiBQcm9ncmVzcyBiYXIgcGFkZGluZyBpbiBwaXhlbC4NCiAgICAgKg0KICAgICAqIEB2YXIgICAgICAgIGludGVnZXINCiAgICAgKiBAc2luY2UgICAgICAyLjAuMA0KICAgICAqIEBhY2Nlc3MgICAgIHB1YmxpYw0KICAgICAqLw0KICAgIHZhciAkcGFkZGluZzsNCg0KICAgIC8qKg0KICAgICAqIFByb2dyZXNzIGJhciBmb3JlZ3JvdW5kIGNvbG9yLg0KICAgICAqDQogICAgICogQHZhciAgICAgICAgc3RyaW5nDQogICAgICogQHNpbmNlICAgICAgMi4wLjANCiAgICAgKiBAYWNjZXNzICAgICBwdWJsaWMNCiAgICAgKi8NCiAgICB2YXIgJGZvcmVncm91bmRfY29sb3IgPSAnIzAwMzNGRic7DQoNCiAgICAvKioNCiAgICAgKiBQcm9ncmVzcyBiYXIgZm9yZWdyb3VuZCBjb2xvci4NCiAgICAgKg0KICAgICAqIEB2YXIgICAgICAgIHN0cmluZw0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHVibGljDQogICAgICovDQogICAgdmFyICRiYWNrZ3JvdW5kX2NvbG9yID0gJyNDMEMwQzAnOw0KDQogICAgLyoqDQogICAgICogUHJvZ3Jlc3MgYmFyIGJvcmRlciBwcm9wZXJ0aWVzDQogICAgICoNCiAgICAgKiA8Y29kZT4NCiAgICAgKiAkYm9yZGVyID0gYXJyYXkoDQogICAgICogICAgJ3dpZHRoJyA9PiAxICAgICAgICAgICMgd2lkdGggc2l6ZSBpbiBwaXhlbA0KICAgICAqICAgICdzdHlsZScgPT4gJ3NvbGlkJyAgICAjIHN0eWxlIChzb2xpZCwgZGFzaGVkLCBkb3R0ZWQgLi4uKQ0KICAgICAqICAgICdjb2xvcicgPT4gJyMwMDAwMDAnICAjIGNvbG9yDQogICAgICogKTsNCiAgICAgKiA8L2NvZGU+DQogICAgICoNCiAgICAgKiBAdmFyICAgICAgICBhcnJheQ0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHVibGljDQogICAgICovDQogICAgdmFyICRib3JkZXIgPSBhcnJheSgnd2lkdGgnID0+IDEsICdzdHlsZScgPT4gJ3NvbGlkJywgJ2NvbG9yJyA9PiAnIzAwMDAwMCcpOw0KDQogICAgLyoqDQogICAgICogRGlyZWN0aW9uIG9mIG1vdGlvbiAocmlnaHQsIGxlZnQsIHVwLCBkb3duKS4NCiAgICAgKg0KICAgICAqIEB2YXIgICAgICAgIHN0cmluZw0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHVibGljDQogICAgICovDQogICAgdmFyICRkaXJlY3Rpb24gPSAncmlnaHQnOw0KDQogICAgLyoqDQogICAgICogUHJvZ3Jlc3MgYmFyIGZyYW1lIHByb3BlcnRpZXMNCiAgICAgKg0KICAgICAqIDxjb2RlPg0KICAgICAqICRmcmFtZSA9IGFycmF5KA0KICAgICAqICAgICdzaG93JyA9PiBmYWxzZSwgICAgICAjIGZyYW1lIHNob3cgKHRydWUvZmFsc2UpDQogICAgICogICAgJ2xlZnQnID0+IDIwMCwgICAgICAgICMgZnJhbWUgcG9zaXRpb24gZnJvbSBsZWZ0DQogICAgICogICAgJ3RvcCcgPT4gMTAwLCAgICAgICAgICMgZnJhbWUgcG9zaXRpb24gZnJvbSB0b3ANCiAgICAgKiAgICAnd2lkdGgnID0+IDMyMCwgICAgICAgIyBmcmFtZSB3aWR0aA0KICAgICAqICAgICdoZWlnaHQnID0+IDkwLCAgICAgICAjIGZyYW1lIGhlaWdodA0KICAgICAqICAgICdjb2xvcicgPT4gJyNDMEMwQzAnLCAjIGZyYW1lIGNvbG9yDQogICAgICogICAgJ2JvcmRlci13aWR0aCcgPT4gMiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZnJhbWUgYm9yZGVyIHdpZHRoDQogICAgICogICAgJ2JvcmRlci1zdHlsZScgPT4gJ3NvbGlkJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZnJhbWUgYm9yZGVyIHN0eWxlIChzb2xpZCwNCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBkYXNoZWQsIGRvdHRlZCwgaW5zZXQgLi4uKQ0KICAgICAqICAgICdib3JkZXItY29sb3InID0+ICcjREZERkRGICM0MDQwNDAgIzQwNDA0MCAjREZERkRGJyAgICAjIGZyYW1lIGJvcmRlciBjb2xvciAoM2RmeCkNCiAgICAgKiApOw0KICAgICAqIDwvY29kZT4NCiAgICAgKg0KICAgICAqIEB2YXIgICAgICAgIGFycmF5DQogICAgICogQHNpbmNlICAgICAgMi4wLjANCiAgICAgKiBAYWNjZXNzICAgICBwdWJsaWMNCiAgICAgKiBAc2VlICAgICAgICBzZXRGcmFtZUF0dHJpYnV0ZXMoKQ0KICAgICAqLw0KICAgIHZhciAkZnJhbWUgPSBhcnJheSgnc2hvdycgPT4gZmFsc2UpOw0KDQogICAgLyoqDQogICAgICogUHJvZ3Jlc3MgYmFyIGxhYmVscyBwcm9wZXJ0aWVzDQogICAgICoNCiAgICAgKiA8Y29kZT4NCiAgICAgKiAkbGFiZWwgPSBhcnJheSgNCiAgICAgKiAgICAnbmFtZScgPT4gYXJyYXkoICAgICAgICAgICAgICAgICAgIyBsYWJlbCBuYW1lDQogICAgICogICAgICAndHlwZScgPT4gJ3RleHQnLCAgICAgICAgICAgICAgICMgbGFiZWwgdHlwZQ0KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICh0ZXh0LGJ1dHRvbixzdGVwLHBlcmNlbnQsY3Jvc3NiYXIpDQogICAgICogICAgICAndmFsdWUnID0+ICcmbmJzcDsnLCAgICAgICAgICAgICMgbGFiZWwgdmFsdWUNCiAgICAgKiAgICAgICdsZWZ0JyA9PiAoJGxlZnQpLCAgICAgICAgICAgICAgIyBsYWJlbCBwb3NpdGlvbiBmcm9tIGxlZnQNCiAgICAgKiAgICAgICd0b3AnID0+ICgkdG9wIC0gMTYpLCAgICAgICAgICAgIyBsYWJlbCBwb3NpdGlvbiBmcm9tIHRvcA0KICAgICAqICAgICAgJ3dpZHRoJyA9PiAwLCAgICAgICAgICAgICAgICAgICAjIGxhYmVsIHdpZHRoDQogICAgICogICAgICAnaGVpZ2h0JyA9PiAwLCAgICAgICAgICAgICAgICAgICMgbGFiZWwgaGVpZ2h0DQogICAgICogICAgICAnYWxpZ24nID0+ICdsZWZ0JywgICAgICAgICAgICAgICMgbGFiZWwgYWxpZ24NCiAgICAgKiAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJyA9PiAndHJhbnNwYXJlbnQnLCAgICAgICAgICAjIGxhYmVsIGJhY2tncm91bmQgY29sb3INCiAgICAgKiAgICAgICdmb250LWZhbWlseScgPT4gJ1ZlcmRhbmEsIFRhaG9tYSwgQXJpYWwnLCAgICAjIGxhYmVsIGZvbnQgZmFtaWx5DQogICAgICogICAgICAnZm9udC1zaXplJyA9PiAxMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBsYWJlbCBmb250IHNpemUNCiAgICAgKiAgICAgICdmb250LXdlaWdodCcgPT4gJ25vcm1hbCcsICAgICAgICAgICAgICAgICAgICAjIGxhYmVsIGZvbnQgd2VpZ2h0DQogICAgICogICAgICAnZm9udC1zdHlsZScgPT4gJ25vcm1hbCcsICAgICAgICAgICAgICAgICAgICAgIyBsYWJlbCBmb250IHN0eWxlDQogICAgICogICAgICAnY29sb3InID0+ICcjMDAwMDAwJyAgICAgICAgICAgICAgICAgICAgICAgICAgIyBsYWJlbCBmb250IGNvbG9yDQogICAgICogKTsNCiAgICAgKiA8L2NvZGU+DQogICAgICoNCiAgICAgKiBAdmFyICAgICAgICBhcnJheQ0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHVibGljDQogICAgICogQHNlZSAgICAgICAgYWRkTGFiZWwoKSwgc2V0TGFiZWxBdHRyaWJ1dGVzKCkNCiAgICAgKi8NCiAgICB2YXIgJGxhYmVsID0gYXJyYXkoKTsNCg0KICAgIC8qKg0KICAgICAqIENvbnN0cnVjdG9yIChaRTEpDQogICAgICoNCiAgICAgKiBAc2luY2UgICAgICAyLjAuMA0KICAgICAqIEBhY2Nlc3MgICAgIHB1YmxpYw0KICAgICAqLw0KICAgIGZ1bmN0aW9uIEhUTUxfUHJvZ3Jlc3MyX0xpdGUoJG9wdGlvbnMgPSBhcnJheSgpLCAkaWQgPSBudWxsKQ0KICAgIHsNCiAgICAgICAgJHRoaXMtPl9fY29uc3RydWN0KCRvcHRpb25zLCAkaWQpOw0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIENvbnN0cnVjdG9yIChaRTIpIFN1bW1hcnkuDQogICAgICoNCiAgICAgKiBAcGFyYW0gICAgICBhcnJheSAgICAgJG9wdGlvbnMgICAgICAgKG9wdGlvbmFsKSBoYXMgb2Ygc3R5bGUgcGFyYW1ldGVycw0KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGUgcHJvZ3Jlc3MgYmFyDQogICAgICogQHBhcmFtICAgICAgc3RyaW5nICAgICRpZCAgICAgICAgICAgIChvcHRpb25hbCkgcHJvZ3Jlc3MgYmFyIHVuaXF1ZSBpZGVudGlmaWVyDQogICAgICoNCiAgICAgKiBAcmV0dXJuICAgICBvYmplY3QNCiAgICAgKiBAc2luY2UgICAgICAyLjAuMA0KICAgICAqIEBhY2Nlc3MgICAgIHByb3RlY3RlZA0KICAgICAqLw0KICAgIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRvcHRpb25zID0gYXJyYXkoKSwgJGlkID0gbnVsbCkNCiAgICB7DQogICAgICAgIGlmIChpc19udWxsKCRpZCkpIHsNCiAgICAgICAgICAgICR0aGlzLT5faWRlbnQgPSBzdWJzdHIobWQ1KG1pY3JvdGltZSgpKSwgMCwgNik7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkdGhpcy0+X2lkZW50ID0gJGlkOw0KICAgIH0NCg0KICAgICAgICAkZGVmYXVsdF9vcHRpb25zID0gYXJyYXkoDQogICAgICAgICAgICAncG9zaXRpb24nID0+ICdhYnNvbHV0ZScsDQogICAgICAgICAgICAnbGVmdCcgPT4gMTAsDQogICAgICAgICAgICAndG9wJyA9PiAyNSwNCiAgICAgICAgICAgICd3aWR0aCcgPT4gMzAwLA0KICAgICAgICAgICAgJ2hlaWdodCcgPT4gMjUsDQogICAgICAgICAgICAncGFkZGluZycgPT4gMCwNCiAgICAgICAgICAgICdtaW4nID0+IDAsDQogICAgICAgICAgICAnbWF4JyA9PiAxMDANCiAgICAgICAgKTsNCiAgICAgICAgJGFsbG93ZWRfb3B0aW9ucyA9IGFycmF5X2tleXMoJGRlZmF1bHRfb3B0aW9ucyk7DQoNCiAgICAgICAgJG9wdGlvbnMgPSBhcnJheV9tZXJnZSgkZGVmYXVsdF9vcHRpb25zLCAkb3B0aW9ucyk7DQoNCiAgICAgICAgZm9yZWFjaCgkb3B0aW9ucyBhcyAkcHJvcCA9PiAkdmFsKSB7DQogICAgICAgICAgICBpZiAoaW5fYXJyYXkoJHByb3AsICRhbGxvd2VkX29wdGlvbnMpKSB7DQogICAgICAgICAgICAgICAgJHRoaXMtPnskcHJvcH0gPSAkdmFsOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICB0cmlnZ2VyX2Vycm9yKCJvcHRpb24gJyRwcm9wJyBpcyBub3QgYWxsb3dlZCIsIEVfVVNFUl9XQVJOSU5HKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICAkdGhpcy0+X3NldFN0ZXAoMCk7DQoNCiAgICAgICAgb2JfaW1wbGljaXRfZmx1c2goMSk7DQogICAgfQ0KDQogICAgLyoqDQogICAgICogTW92ZXMgdGhlIHByb2dyZXNzIGJhciBpbiBhbGwgZGlyZWN0aW9ucyAobGVmdCwgcmlnaHQsIHVwICwgZG93bikuDQogICAgICoNCiAgICAgKiBAcGFyYW0gICAgICBzdHJpbmcgICAgJGRpcmVjdGlvbiAgICAgZmlsbCB3YXkgb2YgdGhlIHByb2dyZXNzIGJhcg0KICAgICAqDQogICAgICogQHJldHVybiAgICAgdm9pZA0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHVibGljDQogICAgICovDQogICAgZnVuY3Rpb24gc2V0RGlyZWN0aW9uKCRkaXJlY3Rpb24pDQogICAgew0KICAgICAgICAkdGhpcy0+ZGlyZWN0aW9uID0gJGRpcmVjdGlvbjsNCg0KICAgICAgICBpZiAoJHRoaXMtPl9zdGF0dXMgIT0gJ25ldycpIHsNCiAgICAgICAgICAgICRiYXIgPSBvYl9nZXRfY2xlYW4oKTsNCiAgICAgICAgICAgICRwb3NpdGlvbiA9ICR0aGlzLT5fY29tcHV0ZVBvc2l0aW9uKCk7DQoNCiAgICAgICAgICAgICRjc3NUZXh0ICA9ICdsZWZ0OicgLiAkcG9zaXRpb25bJ2xlZnQnXSAuICdweDsnOw0KICAgICAgICAgICAgJGNzc1RleHQgLj0gJ3RvcDonIC4gJHBvc2l0aW9uWyd0b3AnXSAuICdweDsnOw0KICAgICAgICAgICAgJGNzc1RleHQgLj0gJ3dpZHRoOicgLiAkcG9zaXRpb25bJ3dpZHRoJ10gLiAncHg7JzsNCiAgICAgICAgICAgICRjc3NUZXh0IC49ICdoZWlnaHQ6JyAuICRwb3NpdGlvblsnaGVpZ2h0J10gLiAncHg7JzsNCg0KICAgICAgICAgICAgJGJhciAuPSAkdGhpcy0+X2NoYW5nZUVsZW1lbnRTdHlsZSgncGJhcicsICcnLCAkY3NzVGV4dCk7DQoNCiAgICAgICAgICAgIGVjaG8gJGJhciAuIFBIUF9FT0w7DQogICAgICAgICAgICBvYl9zdGFydCgpOw0KICAgICAgICB9DQogICAgfQ0KDQogICAgLyoqDQogICAgICogQWRkIGEgbmV3IGxhYmVsIHRvIHRoZSBwcm9ncmVzcyBiYXIuDQogICAgICoNCiAgICAgKiBAcGFyYW0gICAgICBzdHJpbmcgICAgJHR5cGUgICAgICAgICAgTGFiZWwgdHlwZSAodGV4dCxidXR0b24sc3RlcCxwZXJjZW50LGNyb3NzYmFyKQ0KICAgICAqIEBwYXJhbSAgICAgIHN0cmluZyAgICAkbmFtZSAgICAgICAgICBMYWJlbCBuYW1lDQogICAgICogQHBhcmFtICAgICAgc3RyaW5nICAgICR2YWx1ZSAgICAgICAgIChvcHRpb25hbCkgZGVmYXVsdCBsYWJlbCB2YWx1ZQ0KICAgICAqDQogICAgICogQHJldHVybiAgICAgdm9pZA0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHVibGljDQogICAgICogQHNlZSAgICAgICAgc2V0TGFiZWxBdHRyaWJ1dGVzKCksIHJlbW92ZUxhYmVsKCkNCiAgICAgKi8NCiAgICBmdW5jdGlvbiBhZGRMYWJlbCgkdHlwZSwgJG5hbWUsICR2YWx1ZSA9ICcmbmJzcDsnKQ0KICAgIHsNCiAgICAgICAgc3dpdGNoKCR0eXBlKSB7DQogICAgICAgIGNhc2UgJ3RleHQnOg0KICAgICAgICAgICAgJHRoaXMtPmxhYmVsWyRuYW1lXSA9IGFycmF5KA0KICAgICAgICAgICAgICAgICd0eXBlJyA9PiAkdHlwZSwNCiAgICAgICAgICAgICAgICAndmFsdWUnID0+ICR2YWx1ZSwNCiAgICAgICAgICAgICAgICAnbGVmdCcgPT4gJHRoaXMtPmxlZnQsDQogICAgICAgICAgICAgICAgJ3RvcCcgPT4gJHRoaXMtPnRvcCAtIDE2LA0KICAgICAgICAgICAgICAgICd3aWR0aCcgPT4gMCwNCiAgICAgICAgICAgICAgICAnaGVpZ2h0JyA9PiAwLA0KICAgICAgICAgICAgICAgICdhbGlnbicgPT4gJ2xlZnQnLA0KICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJyA9PiAndHJhbnNwYXJlbnQnLA0KICAgICAgICAgICAgICAgICdmb250LXNpemUnID0+IDExLA0KICAgICAgICAgICAgICAgICdmb250LWZhbWlseScgPT4gJ1ZlcmRhbmEsIFRhaG9tYSwgQXJpYWwnLA0KICAgICAgICAgICAgICAgICdmb250LXdlaWdodCcgPT4gJ25vcm1hbCcsDQogICAgICAgICAgICAgICAgJ2ZvbnQtc3R5bGUnID0+ICdub3JtYWwnLA0KICAgICAgICAgICAgICAgICdjb2xvcicgPT4gJyMwMDAwMDAnDQogICAgICAgICAgICApOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgJ2J1dHRvbic6DQogICAgICAgICAgICAkdGhpcy0+bGFiZWxbJG5hbWVdID0gYXJyYXkoDQogICAgICAgICAgICAgICAgJ3R5cGUnID0+ICR0eXBlLA0KICAgICAgICAgICAgICAgICd2YWx1ZScgPT4gJHZhbHVlLA0KICAgICAgICAgICAgICAgICdhY3Rpb24nID0+ICcnLA0KICAgICAgICAgICAgICAgICd0YXJnZXQnID0+ICdzZWxmJywNCiAgICAgICAgICAgICAgICAnbGVmdCcgPT4gJHRoaXMtPmxlZnQsDQogICAgICAgICAgICAgICAgJ3RvcCcgPT4gJHRoaXMtPnRvcCArICR0aGlzLT5oZWlnaHQgKyAxMCwNCiAgICAgICAgICAgICAgICAnd2lkdGgnID0+IDAsDQogICAgICAgICAgICAgICAgJ2hlaWdodCcgPT4gMCwNCiAgICAgICAgICAgICAgICAnYWxpZ24nID0+ICdjZW50ZXInLA0KICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJyA9PiAndHJhbnNwYXJlbnQnLA0KICAgICAgICAgICAgICAgICdmb250LXNpemUnID0+IDExLA0KICAgICAgICAgICAgICAgICdmb250LWZhbWlseScgPT4gJ1ZlcmRhbmEsIFRhaG9tYSwgQXJpYWwnLA0KICAgICAgICAgICAgICAgICdmb250LXdlaWdodCcgPT4gJ25vcm1hbCcsDQogICAgICAgICAgICAgICAgJ2ZvbnQtc3R5bGUnID0+ICdub3JtYWwnLA0KICAgICAgICAgICAgICAgICdjb2xvcicgPT4gJyMwMDAwMDAnDQogICAgICAgICAgICApOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgJ3N0ZXAnOg0KICAgICAgICAgICAgJHRoaXMtPmxhYmVsWyRuYW1lXSA9IGFycmF5KA0KICAgICAgICAgICAgICAgICd0eXBlJyA9PiAkdHlwZSwNCiAgICAgICAgICAgICAgICAndmFsdWUnID0+ICR2YWx1ZSwNCiAgICAgICAgICAgICAgICAnbGVmdCcgPT4gJHRoaXMtPmxlZnQgKyA1LA0KICAgICAgICAgICAgICAgICd0b3AnID0+ICR0aGlzLT50b3AgKyA1LA0KICAgICAgICAgICAgICAgICd3aWR0aCcgPT4gMTAsDQogICAgICAgICAgICAgICAgJ2hlaWdodCcgPT4gMCwNCiAgICAgICAgICAgICAgICAnYWxpZ24nID0+ICdyaWdodCcsDQogICAgICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InID0+ICd0cmFuc3BhcmVudCcsDQogICAgICAgICAgICAgICAgJ2ZvbnQtc2l6ZScgPT4gMTEsDQogICAgICAgICAgICAgICAgJ2ZvbnQtZmFtaWx5JyA9PiAnVmVyZGFuYSwgVGFob21hLCBBcmlhbCcsDQogICAgICAgICAgICAgICAgJ2ZvbnQtd2VpZ2h0JyA9PiAnbm9ybWFsJywNCiAgICAgICAgICAgICAgICAnZm9udC1zdHlsZScgPT4gJ25vcm1hbCcsDQogICAgICAgICAgICAgICAgJ2NvbG9yJyA9PiAnIzAwMDAwMCcNCiAgICAgICAgICAgICk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAncGVyY2VudCc6DQogICAgICAgICAgICAkdGhpcy0+bGFiZWxbJG5hbWVdID0gYXJyYXkoDQogICAgICAgICAgICAgICAgJ3R5cGUnID0+ICR0eXBlLA0KICAgICAgICAgICAgICAgICd2YWx1ZScgPT4gJHZhbHVlLA0KICAgICAgICAgICAgICAgICdsZWZ0JyA9PiAkdGhpcy0+bGVmdCArICR0aGlzLT53aWR0aCAtIDUwLA0KICAgICAgICAgICAgICAgICd0b3AnID0+ICR0aGlzLT50b3AgLSAxNiwNCiAgICAgICAgICAgICAgICAnd2lkdGgnID0+IDUwLA0KICAgICAgICAgICAgICAgICdoZWlnaHQnID0+IDAsDQogICAgICAgICAgICAgICAgJ2FsaWduJyA9PiAncmlnaHQnLA0KICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJyA9PiAndHJhbnNwYXJlbnQnLA0KICAgICAgICAgICAgICAgICdmb250LXNpemUnID0+IDExLA0KICAgICAgICAgICAgICAgICdmb250LWZhbWlseScgPT4gJ1ZlcmRhbmEsIFRhaG9tYSwgQXJpYWwnLA0KICAgICAgICAgICAgICAgICdmb250LXdlaWdodCcgPT4gJ25vcm1hbCcsDQogICAgICAgICAgICAgICAgJ2ZvbnQtc3R5bGUnID0+ICdub3JtYWwnLA0KICAgICAgICAgICAgICAgICdjb2xvcicgPT4gJyMwMDAwMDAnDQogICAgICAgICAgICApOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgJ2Nyb3NzYmFyJzoNCiAgICAgICAgICAgICR0aGlzLT5sYWJlbFskbmFtZV0gPSBhcnJheSgNCiAgICAgICAgICAgICAgICAndHlwZScgPT4gJHR5cGUsDQogICAgICAgICAgICAgICAgJ3ZhbHVlJyA9PiAkdmFsdWUsDQogICAgICAgICAgICAgICAgJ2xlZnQnID0+ICR0aGlzLT5sZWZ0ICsgKCR0aGlzLT53aWR0aCAvIDIpLA0KICAgICAgICAgICAgICAgICd0b3AnID0+ICR0aGlzLT50b3AgLSAxNiwNCiAgICAgICAgICAgICAgICAnd2lkdGgnID0+IDEwLA0KICAgICAgICAgICAgICAgICdoZWlnaHQnID0+IDAsDQogICAgICAgICAgICAgICAgJ2FsaWduJyA9PiAnY2VudGVyJywNCiAgICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcicgPT4gJ3RyYW5zcGFyZW50JywNCiAgICAgICAgICAgICAgICAnZm9udC1zaXplJyA9PiAxMSwNCiAgICAgICAgICAgICAgICAnZm9udC1mYW1pbHknID0+ICdWZXJkYW5hLCBUYWhvbWEsIEFyaWFsJywNCiAgICAgICAgICAgICAgICAnZm9udC13ZWlnaHQnID0+ICdub3JtYWwnLA0KICAgICAgICAgICAgICAgICdmb250LXN0eWxlJyA9PiAnbm9ybWFsJywNCiAgICAgICAgICAgICAgICAnY29sb3InID0+ICcjMDAwMDAwJw0KICAgICAgICAgICAgKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KDQogICAgLyoqDQogICAgICogUmVtb3ZlcyBhIGxhYmVsIHRvIHRoZSBwcm9ncmVzcyBiYXIuDQogICAgICoNCiAgICAgKiBAcGFyYW0gICAgICBzdHJpbmcgICAgJG5hbWUgICAgICAgICAgTGFiZWwgbmFtZQ0KICAgICAqDQogICAgICogQHJldHVybiAgICAgdm9pZA0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHVibGljDQogICAgICogQHNlZSAgICAgICAgYWRkTGFiZWwoKQ0KICAgICAqLw0KICAgIGZ1bmN0aW9uIHJlbW92ZUxhYmVsKCRuYW1lKQ0KICAgIHsNCiAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5sYWJlbFskbmFtZV0pICYmICR0aGlzLT5sYWJlbFskbmFtZV1bJ3R5cGUnXSAhPSAnYnV0dG9uJykgew0KICAgICAgICAgICAgdW5zZXQoJHRoaXMtPmxhYmVsWyRuYW1lXSk7DQogICAgICAgIH0NCiAgICB9DQoNCiAgICAvKioNCiAgICAgKiBBZGQgYSBuZXcgYnV0dG9uIHdpdGggdGhlIHByb2dyZXNzIGJhci4NCiAgICAgKg0KICAgICAqIEBwYXJhbSAgICAgIHN0cmluZyAgICAkbmFtZSAgICAgICAgICBCdXR0b24gbmFtZQ0KICAgICAqIEBwYXJhbSAgICAgIHN0cmluZyAgICAkdmFsdWUgICAgICAgICBMYWJlbCB2YWx1ZQ0KICAgICAqIEBwYXJhbSAgICAgIHN0cmluZyAgICAkYWN0aW9uICAgICAgICBBY3Rpb24gdG8gZG8gKHNlZSBRVUVSWV9TVFJJTkcpDQogICAgICogQHBhcmFtICAgICAgc3RyaW5nICAgICR0YXJnZXQgICAgICAgIChvcHRpb25hbCkgRnJhbWUgdGFyZ2V0IChkZWZhdWx0IGlzIHNlbGYpDQogICAgICoNCiAgICAgKiBAcmV0dXJuICAgICB2b2lkDQogICAgICogQHNpbmNlICAgICAgMi4wLjANCiAgICAgKiBAYWNjZXNzICAgICBwdWJsaWMNCiAgICAgKiBAc2VlICAgICAgICByZW1vdmVCdXR0b24oKSwgYWRkTGFiZWwoKQ0KICAgICAqLw0KICAgIGZ1bmN0aW9uIGFkZEJ1dHRvbigkbmFtZSwgJHZhbHVlLCAkYWN0aW9uLCAkdGFyZ2V0ID0gJ3NlbGYnKQ0KICAgIHsNCiAgICAgICAgJHRoaXMtPmFkZExhYmVsKCdidXR0b24nLCAkbmFtZSwgJHZhbHVlKTsNCiAgICAgICAgJHRoaXMtPmxhYmVsWyRuYW1lXVsnYWN0aW9uJ10gPSAkYWN0aW9uOw0KICAgICAgICAkdGhpcy0+bGFiZWxbJG5hbWVdWyd0YXJnZXQnXSA9ICR0YXJnZXQ7DQogICAgfQ0KDQogICAgLyoqDQogICAgICogUmVtb3ZlcyBhIGJ1dHRvbiB0byB0aGUgcHJvZ3Jlc3MgYmFyLg0KICAgICAqDQogICAgICogQHBhcmFtICAgICAgc3RyaW5nICAgICRuYW1lICAgICAgICAgIExhYmVsIG5hbWUNCiAgICAgKg0KICAgICAqIEByZXR1cm4gICAgIHZvaWQNCiAgICAgKiBAc2luY2UgICAgICAyLjAuMA0KICAgICAqIEBhY2Nlc3MgICAgIHB1YmxpYw0KICAgICAqIEBzZWUgICAgICAgIGFkZEJ1dHRvbigpDQogICAgICovDQogICAgZnVuY3Rpb24gcmVtb3ZlQnV0dG9uKCRuYW1lKQ0KICAgIHsNCiAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5sYWJlbFskbmFtZV0pICYmICR0aGlzLT5sYWJlbFskbmFtZV1bJ3R5cGUnXSA9PSAnYnV0dG9uJykgew0KICAgICAgICAgICAgdW5zZXQoJHRoaXMtPmxhYmVsWyRuYW1lXSk7DQogICAgICAgIH0NCiAgICB9DQoNCiAgICAvKioNCiAgICAgKiBCdWlsZCBhIGZyYW1lIGFyb3VuZCB0aGUgcHJvZ3Jlc3MgYmFyLg0KICAgICAqDQogICAgICogQHBhcmFtICAgICAgYXJyYXkgICAgICRhdHRyaWJ1dGVzICAgIChvcHRpb25hbCkgaGFzaCBvZiBzdHlsZSBwYXJhbWV0ZXJzDQogICAgICoNCiAgICAgKiBAcmV0dXJuICAgICB2b2lkDQogICAgICogQHNpbmNlICAgICAgMi4wLjANCiAgICAgKiBAYWNjZXNzICAgICBwdWJsaWMNCiAgICAgKi8NCiAgICBmdW5jdGlvbiBzZXRGcmFtZUF0dHJpYnV0ZXMoJGF0dHJpYnV0ZXMgPSBhcnJheSgpKQ0KICAgIHsNCiAgICAgICAgJGRlZmF1bHQgPSBhcnJheSgNCiAgICAgICAgICAgICdzaG93JyA9PiB0cnVlLA0KICAgICAgICAgICAgJ2xlZnQnID0+IDIwMCwNCiAgICAgICAgICAgICd0b3AnID0+IDEwMCwNCiAgICAgICAgICAgICd3aWR0aCcgPT4gMzIwLA0KICAgICAgICAgICAgJ2hlaWdodCcgPT4gOTAsDQogICAgICAgICAgICAnY29sb3InID0+ICcjQzBDMEMwJywNCiAgICAgICAgICAgICdib3JkZXItd2lkdGgnID0+IDIsDQogICAgICAgICAgICAnYm9yZGVyLXN0eWxlJyA9PiAnc29saWQnLA0KICAgICAgICAgICAgJ2JvcmRlci1jb2xvcicgPT4gJyNERkRGREYgIzQwNDA0MCAjNDA0MDQwICNERkRGREYnDQogICAgICAgICk7DQogICAgICAgICRhbGxvd2VkX29wdGlvbnMgPSBhcnJheV9rZXlzKCRkZWZhdWx0KTsNCg0KICAgICAgICAkb3B0aW9ucyA9IGFycmF5X21lcmdlKCRkZWZhdWx0LCAkYXR0cmlidXRlcyk7DQoNCiAgICAgICAgZm9yZWFjaCgkb3B0aW9ucyBhcyAkcHJvcCA9PiAkdmFsKSB7DQogICAgICAgICAgICBpZiAoaW5fYXJyYXkoJHByb3AsICRhbGxvd2VkX29wdGlvbnMpKSB7DQogICAgICAgICAgICAgICAgJHRoaXMtPmZyYW1lWyRwcm9wXSA9ICR2YWw7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIHRyaWdnZXJfZXJyb3IoImZyYW1lIG9wdGlvbiAnJHByb3AnIGlzIG5vdCBhbGxvd2VkIiwgRV9VU0VSX1dBUk5JTkcpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KDQogICAgLyoqDQogICAgICogRGVmaW5lcyBtYWluIHN0eWxlIG9mIGEgcHJvZ3Jlc3MgYmFyLg0KICAgICAqDQogICAgICogQHBhcmFtICAgICAgYXJyYXkgICAgICRhdHRyaWJ1dGVzICAgIChvcHRpb25hbCkgaGFzaCBvZiBzdHlsZSBwYXJhbWV0ZXJzDQogICAgICoNCiAgICAgKiBAcmV0dXJuICAgICB2b2lkDQogICAgICogQHNpbmNlICAgICAgMi4wLjANCiAgICAgKiBAYWNjZXNzICAgICBwdWJsaWMNCiAgICAgKi8NCiAgICBmdW5jdGlvbiBzZXRCYXJBdHRyaWJ1dGVzKCRhdHRyaWJ1dGVzID0gYXJyYXkoKSkNCiAgICB7DQogICAgICAgICRjc3NUZXh0ID0gJGNzc1RleHRfYm9yZGVyID0gJyc7DQogICAgICAgICRiYXIgID0gb2JfZ2V0X2NsZWFuKCk7DQoNCiAgICAgICAgZm9yZWFjaCAoJGF0dHJpYnV0ZXMgYXMgJGF0dHJOYW1lID0+ICRhdHRyVmFsKSB7DQogICAgICAgICAgICBpZiAoJGF0dHJOYW1lID09ICdib3JkZXItc3R5bGUnKSB7DQogICAgICAgICAgICAgICAgJHRoaXMtPmJvcmRlclsnc3R5bGUnXSA9ICRhdHRyVmFsOw0KICAgICAgICAgICAgICAgICRjc3NUZXh0X2JvcmRlciAuPSAnYm9yZGVyU3R5bGU6JyAuICR0aGlzLT5ib3JkZXJbJ3N0eWxlJ10gLiAnOyc7DQoNCiAgICAgICAgICAgIH0gZWxzZWlmICgkYXR0ck5hbWUgPT0gJ2JvcmRlci13aWR0aCcpIHsNCiAgICAgICAgICAgICAgICAkdGhpcy0+Ym9yZGVyWyd3aWR0aCddID0gJGF0dHJWYWw7DQogICAgICAgICAgICAgICAgJGNzc1RleHRfYm9yZGVyIC49ICdib3JkZXJXaWR0aDonIC4gJHRoaXMtPmJvcmRlclsnd2lkdGgnXSAuICdweDsnOw0KDQogICAgICAgICAgICB9IGVsc2VpZiAoJGF0dHJOYW1lID09ICdib3JkZXItY29sb3InKSB7DQogICAgICAgICAgICAgICAgJHRoaXMtPmJvcmRlclsnY29sb3InXSA9ICRhdHRyVmFsOw0KICAgICAgICAgICAgICAgICRjc3NUZXh0X2JvcmRlciAuPSAnYm9yZGVyQ29sb3I6JyAuICR0aGlzLT5ib3JkZXJbJ2NvbG9yJ10gLiAnOyc7DQoNCiAgICAgICAgICAgIH0gZWxzZWlmICgkYXR0ck5hbWUgPT0gJ2JhY2tncm91bmQtY29sb3InKSB7DQogICAgICAgICAgICAgICAgJHRoaXMtPmJhY2tncm91bmRfY29sb3IgPSAkYXR0clZhbDsNCiAgICAgICAgICAgICAgICAkY3NzVGV4dF9ib3JkZXIgLj0gJ2JhY2tncm91bmRDb2xvcjonIC4gJHRoaXMtPmJhY2tncm91bmRfY29sb3IgLiAnOyc7DQoNCiAgICAgICAgICAgIH0gZWxzZWlmICgkYXR0ck5hbWUgPT0gJ2NvbG9yJykgew0KICAgICAgICAgICAgICAgICR0aGlzLT5mb3JlZ3JvdW5kX2NvbG9yID0gJGF0dHJWYWw7DQogICAgICAgICAgICAgICAgJGNzc1RleHQgLj0gJ2JhY2tncm91bmRDb2xvcjonIC4gJHRoaXMtPmZvcmVncm91bmRfY29sb3IgLiAnOyc7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoJHRoaXMtPl9zdGF0dXMgIT0gJ25ldycpIHsNCiAgICAgICAgICAgIGlmICghZW1wdHkoJGNzc1RleHRfYm9yZGVyKSkgew0KICAgICAgICAgICAgICAgICRiYXIgLj0gJHRoaXMtPl9jaGFuZ2VFbGVtZW50U3R5bGUoJ3BicmQnLCAnJywgJGNzc1RleHRfYm9yZGVyKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmICghZW1wdHkoJGNzc1RleHQpKSB7DQogICAgICAgICAgICAgICAgJGJhciAuPSAkdGhpcy0+X2NoYW5nZUVsZW1lbnRTdHlsZSgncGJhcicsICcnLCAkY3NzVGV4dCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBlY2hvICRiYXIgLiBQSFBfRU9MOw0KICAgICAgICBvYl9zdGFydCgpOw0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIERlZmluZXMgc3R5bGUgb2YgYSBwcm9ncmVzcyBiYXIgbGFiZWwuDQogICAgICoNCiAgICAgKiBAcGFyYW0gICAgICBzdHJpbmcgICAgJG5hbWUgICAgICAgICAgTGFiZWwgaWRlbnRpZmllcg0KICAgICAqIEBwYXJhbSAgICAgIGFycmF5ICAgICAkYXR0cmlidXRlcyAgICAob3B0aW9uYWwpIGhhc2ggb2Ygc3R5bGUgcGFyYW1ldGVycw0KICAgICAqDQogICAgICogQHJldHVybiAgICAgdm9pZA0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHVibGljDQogICAgICogQHNlZSAgICAgICAgYWRkTGFiZWwoKQ0KICAgICAqLw0KICAgIGZ1bmN0aW9uIHNldExhYmVsQXR0cmlidXRlcygkbmFtZSwgJGF0dHJpYnV0ZXMgPSBhcnJheSgpKQ0KICAgIHsNCiAgICAgICAgJGZvbnRmYW1pbHkgPSAkZm9udHdlaWdodCA9ICcnOw0KDQogICAgICAgICRiYXIgPSBvYl9nZXRfY2xlYW4oKTsNCg0KICAgICAgICBmb3JlYWNoICgkYXR0cmlidXRlcyBhcyAkYXR0ck5hbWUgPT4gJGF0dHJWYWwpIHsNCiAgICAgICAgICAgIGlmICgkYXR0ck5hbWUgPT0gJ2NvbG9yJykgew0KICAgICAgICAgICAgICAgICR0aGlzLT5sYWJlbFskbmFtZV1bJ2NvbG9yJ10gPSAkYXR0clZhbDsNCiAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPl9zdGF0dXMgIT0gJ25ldycpIHsNCiAgICAgICAgICAgICAgICAgICAgJGNzc1RleHQgPSAnY29sb3I6JyAuICR0aGlzLT5sYWJlbFskbmFtZV1bJ2NvbG9yJ10gLiAnOyc7DQogICAgICAgICAgICAgICAgICAgICRiYXIgLj0gJHRoaXMtPl9jaGFuZ2VFbGVtZW50U3R5bGUoJ3BsYmwnLCAkbmFtZSwgJGNzc1RleHQpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgfSBlbHNlaWYgKCRhdHRyTmFtZSA9PSAnYmFja2dyb3VuZC1jb2xvcicpIHsNCiAgICAgICAgICAgICAgICAkdGhpcy0+bGFiZWxbJG5hbWVdWydiYWNrZ3JvdW5kLWNvbG9yJ10gPSAkYXR0clZhbDsNCiAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPl9zdGF0dXMgIT0gJ25ldycpIHsNCiAgICAgICAgICAgICAgICAgICAgJGNzc1RleHQgPSAnYmFja2dyb3VuZENvbG9yOicgLiAkdGhpcy0+bGFiZWxbJG5hbWVdWydiYWNrZ3JvdW5kLWNvbG9yJ10gLiAnOyc7DQogICAgICAgICAgICAgICAgICAgICRiYXIgLj0gJHRoaXMtPl9jaGFuZ2VFbGVtZW50U3R5bGUoJ3BsYmwnLCAkbmFtZSwgJGNzc1RleHQpOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgfSBlbHNlaWYgKCRhdHRyTmFtZSA9PSAnZm9udC1zaXplJykgew0KICAgICAgICAgICAgICAgICR0aGlzLT5sYWJlbFskbmFtZV1bJ2ZvbnQtc2l6ZSddID0gJGZvbnQgPSAkYXR0clZhbDsNCiAgICAgICAgICAgIH0gZWxzZWlmICgkYXR0ck5hbWUgPT0gJ2ZvbnQtZmFtaWx5Jykgew0KICAgICAgICAgICAgICAgICR0aGlzLT5sYWJlbFskbmFtZV1bJ2ZvbnQtZmFtaWx5J10gPSAkZm9udCA9ICRhdHRyVmFsOw0KICAgICAgICAgICAgfSBlbHNlaWYgKCRhdHRyTmFtZSA9PSAnZm9udC13ZWlnaHQnKSB7DQogICAgICAgICAgICAgICAgJHRoaXMtPmxhYmVsWyRuYW1lXVsnZm9udC13ZWlnaHQnXSA9ICRmb250ID0gJGF0dHJWYWw7DQogICAgICAgICAgICB9IGVsc2VpZiAoJGF0dHJOYW1lID09ICdmb250LXN0eWxlJykgew0KICAgICAgICAgICAgICAgICR0aGlzLT5sYWJlbFskbmFtZV1bJ2ZvbnQtc3R5bGUnXSA9ICRmb250ID0gJGF0dHJWYWw7DQoNCiAgICAgICAgICAgIH0gZWxzZWlmICgkYXR0ck5hbWUgPT0gJ3ZhbHVlJykgew0KICAgICAgICAgICAgICAgICR0aGlzLT5sYWJlbFskbmFtZV1bJ3ZhbHVlJ10gPSAkYXR0clZhbDsNCiAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPl9zdGF0dXMgIT0gJ25ldycpIHsNCiAgICAgICAgICAgICAgICAgICAgJGJhciAuPSAkdGhpcy0+X2NoYW5nZUxhYmVsVGV4dCgkbmFtZSwgJHRoaXMtPmxhYmVsWyRuYW1lXVsndmFsdWUnXSk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICB9IGVsc2VpZiAoJGF0dHJOYW1lID09ICdsZWZ0Jykgew0KICAgICAgICAgICAgICAgICR0aGlzLT5sYWJlbFskbmFtZV1bJ2xlZnQnXSA9ICRhdHRyVmFsOw0KICAgICAgICAgICAgfSBlbHNlaWYgKCRhdHRyTmFtZSA9PSAndG9wJykgew0KICAgICAgICAgICAgICAgICR0aGlzLT5sYWJlbFskbmFtZV1bJ3RvcCddID0gJGF0dHJWYWw7DQogICAgICAgICAgICB9IGVsc2VpZiAoJGF0dHJOYW1lID09ICd3aWR0aCcpIHsNCiAgICAgICAgICAgICAgICAkdGhpcy0+bGFiZWxbJG5hbWVdWyd3aWR0aCddID0gJGF0dHJWYWw7DQogICAgICAgICAgICB9IGVsc2VpZiAoJGF0dHJOYW1lID09ICdoZWlnaHQnKSB7DQogICAgICAgICAgICAgICAgJHRoaXMtPmxhYmVsWyRuYW1lXVsnaGVpZ2h0J10gPSAkYXR0clZhbDsNCiAgICAgICAgICAgIH0gZWxzZWlmICgkYXR0ck5hbWUgPT0gJ2FsaWduJykgew0KICAgICAgICAgICAgICAgICR0aGlzLT5sYWJlbFskbmFtZV1bJ2FsaWduJ10gPSAkYXR0clZhbDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBpZiAoaXNzZXQoJGZvbnQpKSB7DQogICAgICAgICAgICBpZiAoJHRoaXMtPl9zdGF0dXMgIT0gJ25ldycpIHsNCiAgICAgICAgICAgICAgICAkY3NzVGV4dCA9ICdmb250U2l6ZTonIC4gJHRoaXMtPmxhYmVsWyRuYW1lXVsnZm9udC1zaXplJ10gLiAncHg7Jw0KICAgICAgICAgICAgICAgICAgICAgICAgIC4gJ2ZvbnRGYW1pbHk6JyAuICR0aGlzLT5sYWJlbFskbmFtZV1bJ2ZvbnQtZmFtaWx5J10gLiAnOycNCiAgICAgICAgICAgICAgICAgICAgICAgICAuICdmb250V2VpZ2h0OicgLiAkdGhpcy0+bGFiZWxbJG5hbWVdWydmb250LXdlaWdodCddIC4gJzsnDQogICAgICAgICAgICAgICAgICAgICAgICAgLiAnZm9udFN0eWxlOicgLiAkdGhpcy0+bGFiZWxbJG5hbWVdWydmb250LXN0eWxlJ10gLiAnOyc7DQoNCiAgICAgICAgICAgICAgICAkYmFyIC49ICR0aGlzLT5fY2hhbmdlRWxlbWVudFN0eWxlKCdwbGJsJywgJG5hbWUsICRjc3NUZXh0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIGlmICgkdGhpcy0+X3N0YXR1cyAhPSAnbmV3Jykgew0KICAgICAgICAgICAgJGNzc1RleHQgPSAndG9wOicgLiAkdGhpcy0+bGFiZWxbJG5hbWVdWyd0b3AnXSAuICdweDsnDQogICAgICAgICAgICAgICAgICAgICAuICdsZWZ0OicgLiAkdGhpcy0+bGFiZWxbJG5hbWVdWydsZWZ0J10gLiAncHg7JzsNCg0KICAgICAgICAgICAgaWYoJHRoaXMtPmxhYmVsWyRuYW1lXVsnd2lkdGgnXSA+IDApIHsNCiAgICAgICAgICAgICAgICAkY3NzVGV4dCAuPSAnd2lkdGg6JyAuICR0aGlzLT5sYWJlbFskbmFtZV1bJ3dpZHRoJ10gLiAncHg7JzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmKCR0aGlzLT5sYWJlbFskbmFtZV1bJ2hlaWdodCddID4gMCkgew0KICAgICAgICAgICAgICAgICRjc3NUZXh0IC49ICdoZWlnaHQ6JyAuICR0aGlzLT5sYWJlbFskbmFtZV1bJ2hlaWdodCddIC4gJ3B4Oyc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAkY3NzVGV4dCAuPSAndGV4dEFsaWduOicgLiAkdGhpcy0+bGFiZWxbJG5hbWVdWydhbGlnbiddIC4nOyc7DQoNCiAgICAgICAgICAgICRiYXIgLj0gJHRoaXMtPl9jaGFuZ2VFbGVtZW50U3R5bGUoJ3BsYmwnLCAkbmFtZSwgJGNzc1RleHQpOw0KICAgICAgICB9DQoNCiAgICAgICAgZWNobyAkYmFyIC4gUEhQX0VPTDsNCiAgICAgICAgb2Jfc3RhcnQoKTsNCiAgICB9DQoNCiAgICAvKioNCiAgICAgKiBDaGFuZ2VzIG5ldyBzdGVwIHZhbHVlIG9mIHRoZSBwcm9ncmVzcyBiYXIuDQogICAgICoNCiAgICAgKiBAcGFyYW0gICAgICBpbnRlZ2VyICAgJHN0ZXAgICAgICAgICAgbmV3IHN0ZXAgdmFsdWUNCiAgICAgKg0KICAgICAqIEByZXR1cm4gICAgIHZvaWQNCiAgICAgKiBAc2luY2UgICAgICAyLjAuMA0KICAgICAqIEBhY2Nlc3MgICAgIHB1YmxpYw0KICAgICAqLw0KICAgIGZ1bmN0aW9uIG1vdmVTdGVwKCRzdGVwKQ0KICAgIHsNCiAgICAgICAgJHRoaXMtPl9zZXRTdGVwKCRzdGVwKTsNCiAgICAgICAgJHBvc2l0aW9uID0gJHRoaXMtPl9jb21wdXRlUG9zaXRpb24oKTsNCiAgICAgICAgJGJhciA9IG9iX2dldF9jbGVhbigpOw0KDQogICAgICAgICRjc3NUZXh0ID0gJyc7DQogICAgICAgIGlmICgkdGhpcy0+ZGlyZWN0aW9uID09ICdyaWdodCcgfHwgJHRoaXMtPmRpcmVjdGlvbiA9PSAnbGVmdCcpIHsNCiAgICAgICAgICAgIGlmICgkdGhpcy0+ZGlyZWN0aW9uID09ICdsZWZ0Jykgew0KICAgICAgICAgICAgICAgICRjc3NUZXh0IC49ICdsZWZ0OicgLiAkcG9zaXRpb25bJ2xlZnQnXSAuICdweDsnOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgJGNzc1RleHQgLj0gJ3dpZHRoOicgLiAkcG9zaXRpb25bJ3dpZHRoJ10gLiAncHg7JzsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoJHRoaXMtPmRpcmVjdGlvbiA9PSAndXAnIHx8ICR0aGlzLT5kaXJlY3Rpb24gPT0gJ2Rvd24nKSB7DQogICAgICAgICAgICBpZiAoJHRoaXMtPmRpcmVjdGlvbiA9PSAndXAnKSB7DQogICAgICAgICAgICAgICAgJGNzc1RleHQgLj0gJ3RvcDonIC4gJHBvc2l0aW9uWyd0b3AnXSAuICdweDsnOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgJGNzc1RleHQgLj0gJ2hlaWdodDonIC4gJHBvc2l0aW9uWydoZWlnaHQnXSAuICdweDsnOw0KICAgICAgICB9DQogICAgICAgICRiYXIgLj0gJHRoaXMtPl9jaGFuZ2VFbGVtZW50U3R5bGUoJ3BiYXInLCAnJywgJGNzc1RleHQpOw0KDQogICAgICAgIGZvcmVhY2goJHRoaXMtPmxhYmVsIGFzICRuYW1lID0+ICRkYXRhKSB7DQogICAgICAgICAgICBzd2l0Y2goJGRhdGFbJ3R5cGUnXSkgew0KICAgICAgICAgICAgY2FzZSAnc3RlcCc6DQogICAgICAgICAgICAgICAgJGJhciAuPSAkdGhpcy0+X2NoYW5nZUxhYmVsVGV4dCgkbmFtZSwgJHRoaXMtPl9zdGVwLicvJy4kdGhpcy0+bWF4KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgJ3BlcmNlbnQnOg0KICAgICAgICAgICAgICAgICRiYXIgLj0gJHRoaXMtPl9jaGFuZ2VMYWJlbFRleHQoJG5hbWUsICR0aGlzLT5fY29tcHV0ZVBlcmNlbnQoKSAuICclJyk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICdjcm9zc2Jhcic6DQogICAgICAgICAgICAgICAgJGJhciAuPSAkdGhpcy0+X2NoYW5nZUNyb3NzSXRlbSgkbmFtZSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBlY2hvICRiYXIgLiBQSFBfRU9MOw0KICAgICAgICBvYl9zdGFydCgpOw0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIENoYW5nZXMgdmFsdWUgb2YgdGhlIHByb2dyZXNzIGJhciB0byB0aGUgbmV4dCBzdGVwLg0KICAgICAqDQogICAgICogQHJldHVybiAgICAgdm9pZA0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHVibGljDQogICAgICogQHNlZSAgICAgICAgbW92ZVN0ZXAoKQ0KICAgICAqLw0KICAgIGZ1bmN0aW9uIG1vdmVOZXh0KCkNCiAgICB7DQogICAgICAgICR0aGlzLT5tb3ZlU3RlcCgkdGhpcy0+X3N0ZXAgKyAxKTsNCiAgICB9DQoNCiAgICAvKioNCiAgICAgKiBDaGFuZ2VzIHZhbHVlIG9mIHRoZSBwcm9ncmVzcyBiYXIgdG8gdGhlIG1pbmltdW0gc3RlcC4NCiAgICAgKg0KICAgICAqIEByZXR1cm4gICAgIHZvaWQNCiAgICAgKiBAc2luY2UgICAgICAyLjAuMA0KICAgICAqIEBhY2Nlc3MgICAgIHB1YmxpYw0KICAgICAqIEBzZWUgICAgICAgIG1vdmVTdGVwKCkNCiAgICAgKi8NCiAgICBmdW5jdGlvbiBtb3ZlTWluKCkNCiAgICB7DQogICAgICAgICR0aGlzLT5tb3ZlU3RlcCgkdGhpcy0+bWluKTsNCiAgICB9DQoNCiAgICAvKioNCiAgICAgKiBSZXR1cm5zIHRoZSBwcm9ncmVzcyBiYXIgc3RydWN0dXJlIGFzIEhUTUwuDQogICAgICoNCiAgICAgKiBAcmV0dXJuICAgICBzdHJpbmcNCiAgICAgKiBAc2luY2UgICAgICAyLjAuMA0KICAgICAqIEBhY2Nlc3MgICAgIHB1YmxpYw0KICAgICAqIEBzZWUgICAgICAgIGRpc3BsYXkoKQ0KICAgICAqLw0KICAgIGZ1bmN0aW9uIHRvSHRtbCgpDQogICAgew0KICAgICAgICAkaHRtbCA9ICcnOw0KICAgICAgICAkanMgPSAnJzsNCg0KICAgICAgICAvLyR0aGlzLT5fc2V0U3RlcCgkdGhpcy0+X3N0ZXApOw0KICAgICAgICAkcG9zaXRpb24gPSAkdGhpcy0+X2NvbXB1dGVQb3NpdGlvbigpOw0KDQogICAgICAgICRzdHlsZV9icmQgPSAncG9zaXRpb246YWJzb2x1dGU7Jw0KICAgICAgICAgICAgICAgICAgIC4gJ3RvcDonIC4gJHRoaXMtPnRvcCAuICdweDsnDQogICAgICAgICAgICAgICAgICAgLiAnbGVmdDonIC4gJHRoaXMtPmxlZnQgLiAncHg7Jw0KICAgICAgICAgICAgICAgICAgIC4gJ3dpZHRoOicgLiAkdGhpcy0+d2lkdGggLiAncHg7Jw0KICAgICAgICAgICAgICAgICAgIC4gJ2hlaWdodDonIC4gJHRoaXMtPmhlaWdodCAuICdweDsnDQogICAgICAgICAgICAgICAgICAgLiAnYmFja2dyb3VuZC1jb2xvcjonIC4gJHRoaXMtPmJhY2tncm91bmRfY29sb3IgLiAnOyc7DQoNCiAgICAgICAgaWYgKCR0aGlzLT5ib3JkZXJbJ3dpZHRoJ10gPiAwICkgew0KICAgICAgICAgICAgJHN0eWxlX2JyZCAuPSAnYm9yZGVyLXdpZHRoOicgLiAkdGhpcy0+Ym9yZGVyWyd3aWR0aCddIC4gJ3B4OycNCiAgICAgICAgICAgICAgICAgICAgICAgLiAgJ2JvcmRlci1zdHlsZTonIC4gJHRoaXMtPmJvcmRlclsnc3R5bGUnXSAuICc7Jw0KICAgICAgICAgICAgICAgICAgICAgICAuICAnYm9yZGVyLWNvbG9yOicgLiAkdGhpcy0+Ym9yZGVyWydjb2xvciddIC4gJzsnOw0KICAgICAgICB9DQogICAgICAgICRzdHlsZV9iYXIgPSAncG9zaXRpb246YWJzb2x1dGU7Jw0KICAgICAgICAgICAgICAgICAgIC4gJ3RvcDonIC4gJHBvc2l0aW9uWyd0b3AnXSAuICdweDsnDQogICAgICAgICAgICAgICAgICAgLiAnbGVmdDonIC4gJHBvc2l0aW9uWydsZWZ0J10gLiAncHg7Jw0KICAgICAgICAgICAgICAgICAgIC4gJ3dpZHRoOicgLiAkcG9zaXRpb25bJ3dpZHRoJ10gLiAncHg7Jw0KICAgICAgICAgICAgICAgICAgIC4gJ2hlaWdodDonIC4gJHBvc2l0aW9uWydoZWlnaHQnXSAuICdweDsnDQogICAgICAgICAgICAgICAgICAgLiAnYmFja2dyb3VuZC1jb2xvcjonIC4gJHRoaXMtPmZvcmVncm91bmRfY29sb3IgLiAnOyc7DQoNCiAgICAgICAgaWYgKCR0aGlzLT5mcmFtZVsnc2hvdyddKSB7DQogICAgICAgICAgICBpZiAoJHRoaXMtPmZyYW1lWydib3JkZXItd2lkdGgnXSA+IDApIHsNCiAgICAgICAgICAgICAgICAkYm9yZGVyID0gJ2JvcmRlci13aWR0aDonIC4gJHRoaXMtPmZyYW1lWydib3JkZXItd2lkdGgnXSAuICdweDsnDQogICAgICAgICAgICAgICAgICAgICAgICAuICdib3JkZXItc3R5bGU6JyAuICR0aGlzLT5mcmFtZVsnYm9yZGVyLXN0eWxlJ10gLiAnOycNCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJ2JvcmRlci1jb2xvcjonIC4gJHRoaXMtPmZyYW1lWydib3JkZXItY29sb3InXSAuICc7JzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmICgkdGhpcy0+cG9zaXRpb24gPT0gJ3JlbGF0aXZlJykgew0KICAgICAgICAgICAgICAgICRodG1sID0gJzxkaXYgaWQ9InRmcm0nIC4gJHRoaXMtPl9pZGVudCAuICciJw0KICAgICAgICAgICAgICAgICAgICAgIC4gJyBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7dG9wOjA7bGVmdDowOyI+Jw0KICAgICAgICAgICAgICAgICAgICAgIC4gUEhQX0VPTDsNCiAgICAgICAgICAgICAgICAkdG9wID0gJGxlZnQgPSAwOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAkdG9wID0gJHRoaXMtPmZyYW1lWyd0b3AnXTsNCiAgICAgICAgICAgICAgICAkbGVmdCA9ICR0aGlzLT5mcmFtZVsnbGVmdCddOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgJGh0bWwgLj0gJzxkaXYgaWQ9InBmcm0nIC4gJHRoaXMtPl9pZGVudCAuJyIgc3R5bGU9IicNCiAgICAgICAgICAgICAgICAgIC4gICdwb3NpdGlvbjphYnNvbHV0ZTsnDQogICAgICAgICAgICAgICAgICAuICAndG9wOicgLiAkdG9wIC4gJ3B4OycNCiAgICAgICAgICAgICAgICAgIC4gICdsZWZ0OicgLiAkbGVmdCAuICdweDsnDQogICAgICAgICAgICAgICAgICAuICAnd2lkdGg6JyAuICR0aGlzLT5mcmFtZVsnd2lkdGgnXSAuICdweDsnDQogICAgICAgICAgICAgICAgICAuICAnaGVpZ2h0OicgLiAkdGhpcy0+ZnJhbWVbJ2hlaWdodCddIC4gJ3B4OycNCiAgICAgICAgICAgICAgICAgIC4gICRib3JkZXINCiAgICAgICAgICAgICAgICAgIC4gICdiYWNrZ3JvdW5kLWNvbG9yOicgLiAkdGhpcy0+ZnJhbWVbJ2NvbG9yJ10gLiAnOyI+Jw0KICAgICAgICAgICAgICAgICAgLiAgUEhQX0VPTDsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIGlmICgkdGhpcy0+cG9zaXRpb24gPT0gJ3JlbGF0aXZlJykgew0KICAgICAgICAgICAgICAgICRodG1sID0gJzxkaXYgaWQ9InRmcm0nIC4gJHRoaXMtPl9pZGVudCAuICciJw0KICAgICAgICAgICAgICAgICAgICAgIC4gJyBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7dG9wOjA7bGVmdDowOyI+Jw0KICAgICAgICAgICAgICAgICAgICAgIC4gUEhQX0VPTDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgICRodG1sIC49ICc8ZGl2IGlkPSJwYnJkJy4kdGhpcy0+X2lkZW50LiciIHN0eWxlPSInLiRzdHlsZV9icmQuJyI+Jy5QSFBfRU9MOw0KICAgICAgICAkaHRtbCAuPSAnPGRpdiBpZD0icGJhcicuJHRoaXMtPl9pZGVudC4nIiBzdHlsZT0iJy4kc3R5bGVfYmFyLiciPjwvZGl2PjwvZGl2PicuUEhQX0VPTDsNCg0KICAgICAgICBmb3JlYWNoICgkdGhpcy0+bGFiZWwgYXMgJG5hbWUgPT4gJGRhdGEpIHsNCiAgICAgICAgICAgICRzdHlsZV9sYmwgPSAncG9zaXRpb246YWJzb2x1dGU7Jw0KICAgICAgICAgICAgICAgICAgICAgICAuICd0b3A6JyAuICRkYXRhWyd0b3AnXSAuICdweDsnDQogICAgICAgICAgICAgICAgICAgICAgIC4gJ2xlZnQ6JyAuICRkYXRhWydsZWZ0J10gLiAncHg7Jw0KICAgICAgICAgICAgICAgICAgICAgICAuICd0ZXh0LWFsaWduOicgLiAkZGF0YVsnYWxpZ24nXSAuICc7JzsNCg0KICAgICAgICAgICAgaWYgKCRkYXRhWyd3aWR0aCddID4gMCkgew0KICAgICAgICAgICAgICAgICRzdHlsZV9sYmwgLj0gJ3dpZHRoOicgLiAkZGF0YVsnd2lkdGgnXSAuICdweDsnOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCRkYXRhWydoZWlnaHQnXSA+IDApIHsNCiAgICAgICAgICAgICAgICAkc3R5bGVfbGJsIC49ICdoZWlnaHQ6JyAuICRkYXRhWydoZWlnaHQnXSAuICdweDsnOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgJHN0eWxlX2xibCAuPSAnY29sb3I6JyAuICRkYXRhWydjb2xvciddIC4nOycNCiAgICAgICAgICAgICAgICAgICAgICAgLiAgJ2ZvbnQtc2l6ZTonIC4gJGRhdGFbJ2ZvbnQtc2l6ZSddIC4gJ3B4OycNCiAgICAgICAgICAgICAgICAgICAgICAgLiAgJ2ZvbnQtZmFtaWx5OicgLiAkZGF0YVsnZm9udC1mYW1pbHknXSAuICc7Jw0KICAgICAgICAgICAgICAgICAgICAgICAuICAnZm9udC13ZWlnaHQ6JyAuICRkYXRhWydmb250LXdlaWdodCddIC4gJzsnOw0KDQogICAgICAgICAgICBpZiAoJGRhdGFbJ2JhY2tncm91bmQtY29sb3InXSAhPSAnJykgew0KICAgICAgICAgICAgICAgICRzdHlsZV9sYmwgLj0gJ2JhY2tncm91bmQtY29sb3I6JyAuICRkYXRhWydiYWNrZ3JvdW5kLWNvbG9yJ10gLiAnOyc7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHN3aXRjaCgkZGF0YVsndHlwZSddKSB7DQogICAgICAgICAgICBjYXNlICdidXR0b24nOg0KICAgICAgICAgICAgICAgICRodG1sIC49ICc8ZGl2PjxpbnB1dCBpZD0icGxibCcgLiAkbmFtZSAuICR0aGlzLT5faWRlbnQNCiAgICAgICAgICAgICAgICAgICAgICAuICAnIiB0eXBlPSJidXR0b24iIHZhbHVlPSInIC4gJGRhdGFbJ3ZhbHVlJ10NCiAgICAgICAgICAgICAgICAgICAgICAuICAnIiBzdHlsZT0iJyAuICRzdHlsZV9sYmwNCiAgICAgICAgICAgICAgICAgICAgICAuICAnIiBvbmNsaWNrPSInIC4gJGRhdGFbJ3RhcmdldCddDQogICAgICAgICAgICAgICAgICAgICAgLiAgJy5sb2NhdGlvbi5ocmVmPVwnJyAuICRkYXRhWydhY3Rpb24nXSAuICdcJyIgLz48L2Rpdj4nDQogICAgICAgICAgICAgICAgICAgICAgLiAgUEhQX0VPTDsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgJ3N0ZXAnOg0KICAgICAgICAgICAgICAgICRodG1sIC49ICc8ZGl2IGlkPSJwbGJsJyAuICRuYW1lIC4gJHRoaXMtPl9pZGVudA0KICAgICAgICAgICAgICAgICAgICAgIC4gICciIHN0eWxlPSInIC4gJHN0eWxlX2xibCAuICciPicNCiAgICAgICAgICAgICAgICAgICAgICAuICAkdGhpcy0+X3N0ZXANCiAgICAgICAgICAgICAgICAgICAgICAuICAnPC9kaXY+Jw0KICAgICAgICAgICAgICAgICAgICAgIC4gIFBIUF9FT0w7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICdwZXJjZW50JzoNCiAgICAgICAgICAgICAgICAkaHRtbCAuPSAnPGRpdiBpZD0icGxibCcgLiAkbmFtZSAuICR0aGlzLT5faWRlbnQNCiAgICAgICAgICAgICAgICAgICAgICAuICAnIiBzdHlsZT0iJyAuICRzdHlsZV9sYmwgLiAnIj4nDQogICAgICAgICAgICAgICAgICAgICAgLiAgJHRoaXMtPl9jb21wdXRlUGVyY2VudCgpIC4gJyUnDQogICAgICAgICAgICAgICAgICAgICAgLiAgJzwvZGl2PicNCiAgICAgICAgICAgICAgICAgICAgICAuICBQSFBfRU9MOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAndGV4dCc6DQogICAgICAgICAgICBjYXNlICdjcm9zc2Jhcic6DQogICAgICAgICAgICAgICAgJGh0bWwgLj0gJzxkaXYgaWQ9InBsYmwnIC4gJG5hbWUgLiAkdGhpcy0+X2lkZW50DQogICAgICAgICAgICAgICAgICAgICAgLiAgJyIgc3R5bGU9IicgLiAkc3R5bGVfbGJsIC4gJyI+Jw0KICAgICAgICAgICAgICAgICAgICAgIC4gICRkYXRhWyd2YWx1ZSddDQogICAgICAgICAgICAgICAgICAgICAgLiAgJzwvZGl2PicNCiAgICAgICAgICAgICAgICAgICAgICAuICBQSFBfRU9MOw0KICAgICAgICAgICAgICAgIGlmICgkZGF0YVsndHlwZSddID09ICdjcm9zc2JhcicpIHsNCiAgICAgICAgICAgICAgICAgICAgJGpzIC49ICdmdW5jdGlvbiBzZXRSb3RhcnlDcm9zcycuJG5hbWUuJHRoaXMtPl9pZGVudC4nKCkgeycuUEhQX0VPTDsNCiAgICAgICAgICAgICAgICAgICAgJGpzIC49ICcgY3Jvc3MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGxibCcuJG5hbWUuJHRoaXMtPl9pZGVudC4nIikuZmlyc3RDaGlsZC5ub2RlVmFsdWU7Jy5QSFBfRU9MOw0KICAgICAgICAgICAgICAgICAgICAkanMgLj0gJyBzd2l0Y2goY3Jvc3MpIHsnLlBIUF9FT0w7DQogICAgICAgICAgICAgICAgICAgICRqcyAuPSAnICBjYXNlICItLSI6IGNyb3NzID0gIlxcXFwiOyBicmVhazsnLlBIUF9FT0w7DQogICAgICAgICAgICAgICAgICAgICRqcyAuPSAnICBjYXNlICJcXFxcIjogY3Jvc3MgPSAifCI7IGJyZWFrOycuUEhQX0VPTDsNCiAgICAgICAgICAgICAgICAgICAgJGpzIC49ICcgIGNhc2UgInwiOiBjcm9zcyA9ICIvIjsgYnJlYWs7Jy5QSFBfRU9MOw0KICAgICAgICAgICAgICAgICAgICAkanMgLj0gJyAgZGVmYXVsdDogY3Jvc3MgPSAiLS0iOyBicmVhazsnLlBIUF9FT0w7DQogICAgICAgICAgICAgICAgICAgICRqcyAuPSAnIH0nLlBIUF9FT0w7DQogICAgICAgICAgICAgICAgICAgICRqcyAuPSAnIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwbGJsJy4kbmFtZS4kdGhpcy0+X2lkZW50LiciKS5maXJzdENoaWxkLm5vZGVWYWx1ZSA9IGNyb3NzOycuUEhQX0VPTDsNCiAgICAgICAgICAgICAgICAgICAgJGpzIC49ICd9Jy5QSFBfRU9MOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChjb3VudCgkdGhpcy0+bGFiZWwpID4gMCkgew0KICAgICAgICAgICAgJGpzIC49ICdmdW5jdGlvbiBzZXRMYWJlbFRleHQnLiR0aGlzLT5faWRlbnQuJyhuYW1lLHRleHQpIHsnLlBIUF9FT0w7DQogICAgICAgICAgICAkanMgLj0gJyBuYW1lID0gInBsYmwiICsgbmFtZSArICInLiR0aGlzLT5faWRlbnQuJyI7Jy5QSFBfRU9MOw0KICAgICAgICAgICAgJGpzIC49ICcgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobmFtZSkuZmlyc3RDaGlsZC5ub2RlVmFsdWU9dGV4dDsnLlBIUF9FT0w7DQogICAgICAgICAgICAkanMgLj0gJ30nLlBIUF9FT0w7DQogICAgICAgIH0NCg0KICAgICAgICAkanMgLj0gJ2Z1bmN0aW9uIHNldEVsZW1lbnRTdHlsZScuJHRoaXMtPl9pZGVudC4nKHByZWZpeCxuYW1lLHN0eWxlcykgeycuUEhQX0VPTDsNCiAgICAgICAgJGpzIC49ICcgbmFtZSA9IHByZWZpeCArIG5hbWUgKyAiJy4kdGhpcy0+X2lkZW50LiciOycuUEhQX0VPTDsNCiAgICAgICAgJGpzIC49ICcgc3R5bGVzID0gc3R5bGVzLnNwbGl0KCI7Iik7Jy5QSFBfRU9MOw0KICAgICAgICAkanMgLj0gJyBzdHlsZXMucG9wKCk7Jy5QSFBfRU9MOw0KICAgICAgICAkanMgLj0gJyBmb3IodmFyIGk9MDsgaTxzdHlsZXMubGVuZ3RoOyBpKyspJy5QSFBfRU9MOw0KICAgICAgICAkanMgLj0gJyB7Jy5QSFBfRU9MOw0KICAgICAgICAkanMgLj0gJyAgIHMgPSBzdHlsZXNbaV0uc3BsaXQoIjoiKTsnLlBIUF9FT0w7DQogICAgICAgICRqcyAuPSAnICAgYyA9ICJkb2N1bWVudC5nZXRFbGVtZW50QnlJZChuYW1lKS5zdHlsZS4iK3NbMF0rIj1cIiIrc1sxXSsiXCIiOycuUEhQX0VPTDsNCiAgICAgICAgJGpzIC49ICcgICBldmFsKGMpOycuUEhQX0VPTDsNCiAgICAgICAgJGpzIC49ICcgfScuUEhQX0VPTDsNCiAgICAgICAgJGpzIC49ICd9Jy5QSFBfRU9MOw0KDQogICAgICAgIGlmICgkdGhpcy0+ZnJhbWVbJ3Nob3cnXSkgew0KICAgICAgICAgICAgJGh0bWwgLj0gJzwvZGl2PicuUEhQX0VPTDsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoJHRoaXMtPnBvc2l0aW9uID09ICdyZWxhdGl2ZScpIHsNCiAgICAgICAgICAgICRodG1sIC49ICc8L2Rpdj4nLlBIUF9FT0w7DQogICAgICAgIH0NCg0KICAgICAgICAkaHRtbCAuPSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L0phdmFTY3JpcHQiPicuUEhQX0VPTDsNCiAgICAgICAgJGh0bWwgLj0gJGpzOw0KICAgICAgICAkaHRtbCAuPSAnPC9zY3JpcHQ+Jy5QSFBfRU9MOw0KDQogICAgICAgIHJldHVybiAkaHRtbDsNCiAgICB9DQoNCiAgICAvKioNCiAgICAgKiBTaG93IHRoZSByZW5kZXJzIG9mIHRoZSBwcm9ncmVzcyBiYXIuDQogICAgICoNCiAgICAgKiBAcmV0dXJuICAgICB2b2lkDQogICAgICogQHNpbmNlICAgICAgMi4wLjANCiAgICAgKiBAYWNjZXNzICAgICBwdWJsaWMNCiAgICAgKiBAc2VlICAgICAgICB0b0h0bWwoKQ0KICAgICAqLw0KICAgIGZ1bmN0aW9uIGRpc3BsYXkoKQ0KICAgIHsNCiAgICAgICAgJHRoaXMtPl9zdGF0dXMgPSAnc2hvdyc7DQogICAgICAgIGVjaG8gJHRoaXMtPnRvSHRtbCgpOw0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIEhpZGVzIHRoZSBwcm9ncmVzcyBiYXIuDQogICAgICoNCiAgICAgKiBAcmV0dXJuICAgICB2b2lkDQogICAgICogQHNpbmNlICAgICAgMi4wLjANCiAgICAgKiBAYWNjZXNzICAgICBwdWJsaWMNCiAgICAgKi8NCiAgICBmdW5jdGlvbiBoaWRlKCkNCiAgICB7DQogICAgICAgIGlmICgkdGhpcy0+X3N0YXR1cz09J3Nob3cnKSB7DQogICAgICAgICAgICAkdGhpcy0+X3N0YXR1cyA9ICdoaWRlJzsNCiAgICAgICAgICAgICR0aGlzLT5faGlkZSgpOw0KICAgICAgICB9DQogICAgfQ0KDQogICAgLyoqDQogICAgICogU2hvd3MgYSBwcm9ncmVzcyBiYXIgaGlkZGVuLg0KICAgICAqDQogICAgICogQHJldHVybiAgICAgdm9pZA0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHVibGljDQogICAgICovDQogICAgZnVuY3Rpb24gc2hvdygpDQogICAgew0KICAgICAgICBpZiAoJHRoaXMtPl9zdGF0dXM9PSdoaWRlJykgew0KICAgICAgICAgICAgJHRoaXMtPl9zdGF0dXMgPSAnc2hvdyc7DQogICAgICAgICAgICAkdGhpcy0+X2hpZGUoKTsNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIFNob3cgb3IgSGlkZSBhIHByb2dyZXNzIGJhciBkZXBlbmRpbmcgb2YgaXRzIGN1cnJlbnQgc3RhdHVzLg0KICAgICAqDQogICAgICogQHJldHVybiAgICAgdm9pZA0KICAgICAqIEBzaW5jZSAgICAgIDIuMC4wDQogICAgICogQGFjY2VzcyAgICAgcHJpdmF0ZQ0KICAgICAqLw0KICAgIGZ1bmN0aW9uIF9oaWRlKCkNCiAgICB7DQogICAgICAgIGlmICgkdGhpcy0+X3N0YXR1cyA9PSAnaGlkZScpIHsNCiAgICAgICAgICAgICRjc3NUZXh0ID0gJ3Zpc2liaWxpdHk6aGlkZGVuOyc7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkY3NzVGV4dCA9ICd2aXNpYmlsaXR5OnZpc2libGU7JzsNCiAgICB9DQogICAgICAgICRiYXIgID0gb2JfZ2V0X2NsZWFuKCk7DQoNCiAgICAgICAgJGJhciAuPSAkdGhpcy0+X2NoYW5nZUVsZW1lbnRTdHlsZSgncGJyZCcsICcnLCAkY3NzVGV4dCk7DQogICAgICAgICRiYXIgLj0gJHRoaXMtPl9jaGFuZ2VFbGVtZW50U3R5bGUoJ3BiYXInLCAnJywgJGNzc1RleHQpOw0KDQogICAgICAgIGlmICgkdGhpcy0+ZnJhbWVbJ3Nob3cnXSkgew0KICAgICAgICAgICAgJGJhciAuPSAkdGhpcy0+X2NoYW5nZUVsZW1lbnRTdHlsZSgncGZybScsICcnLCAkY3NzVGV4dCk7DQogICAgICAgIH0NCiAgICAgICAgZm9yZWFjaCgkdGhpcy0+bGFiZWwgYXMgJG5hbWUgPT4gJGRhdGEpIHsNCiAgICAgICAgICAgICRiYXIgLj0gJHRoaXMtPl9jaGFuZ2VFbGVtZW50U3R5bGUoJ3BsYmwnLCAkbmFtZSwgJGNzc1RleHQpOw0KICAgICAgICB9DQoNCiAgICAgICAgZWNobyAkYmFyIC4gUEhQX0VPTDsNCiAgICAgICAgb2Jfc3RhcnQoKTsNCiAgICB9DQoNCiAgICAvKioNCiAgICAgKiBDYWxjdWxhdGUgdGhlIGN1cnJlbnQgcGVyY2VudCBvZiBwcm9ncmVzcy4NCiAgICAgKg0KICAgICAqIEByZXR1cm4gICAgIGludGVnZXINCiAgICAgKiBAc2luY2UgICAgICAyLjAuMA0KICAgICAqIEBhY2Nlc3MgICAgIHByaXZhdGUNCiAgICAgKi8NCiAgICBmdW5jdGlvbiBfY29tcHV0ZVBlcmNlbnQoKQ0KICAgIHsNCiAgICAgICAgJHBlcmNlbnQgPSByb3VuZCgoJHRoaXMtPl9zdGVwIC0gJHRoaXMtPm1pbikgLyAoJHRoaXMtPm1heCAtICR0aGlzLT5taW4pICogMTAwKTsNCiAgICAgICAgaWYgKCRwZXJjZW50ID4gMTAwKSB7DQogICAgICAgICAgICAkcGVyY2VudCA9IDEwMDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gJHBlcmNlbnQ7DQogICAgfQ0KDQogICAgLyoqDQogICAgICogQ2FsY3VsYXRlIHRoZSBuZXcgcG9zaXRpb24gaW4gcGl4ZWwgb2YgdGhlIHByb2dyZXNzIGJhciB2YWx1ZS4NCiAgICAgKg0KICAgICAqIEByZXR1cm4gICAgIHZvaWQNCiAgICAgKiBAc2luY2UgICAgICAyLjAuMA0KICAgICAqIEBhY2Nlc3MgICAgIHByaXZhdGUNCiAgICAgKi8NCiAgICBmdW5jdGlvbiBfY29tcHV0ZVBvc2l0aW9uKCkNCiAgICB7DQogICAgICAgIHN3aXRjaCAoJHRoaXMtPmRpcmVjdGlvbikgew0KICAgICAgICBjYXNlICdyaWdodCc6DQogICAgICAgIGNhc2UgJ2xlZnQnOg0KICAgICAgICAgICAgJGJhciA9ICR0aGlzLT53aWR0aDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICdkb3duJzoNCiAgICAgICAgY2FzZSAndXAnOg0KICAgICAgICAgICAgJGJhciA9ICR0aGlzLT5oZWlnaHQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAkcGl4ZWwgPSByb3VuZCggICgkdGhpcy0+X3N0ZXAgLSAkdGhpcy0+bWluKSAqICgkYmFyIC0gKCR0aGlzLT5wYWRkaW5nICogMikpDQogICAgICAgICAgICAgICAgICAgICAgIC8gKCR0aGlzLT5tYXggLSAkdGhpcy0+bWluKSApOw0KICAgICAgICBpZiAoJHRoaXMtPl9zdGVwIDw9ICR0aGlzLT5taW4pIHsNCiAgICAgICAgICAgICRwaXhlbCA9IDA7DQogICAgICAgIH0NCiAgICAgICAgaWYgKCR0aGlzLT5fc3RlcCA+PSAkdGhpcy0+bWF4KSB7DQogICAgICAgICAgICAkcGl4ZWwgPSAkYmFyIC0gKCR0aGlzLT5wYWRkaW5nICogMik7DQogICAgICAgIH0NCg0KICAgICAgICBzd2l0Y2ggKCR0aGlzLT5kaXJlY3Rpb24pIHsNCiAgICAgICAgY2FzZSAncmlnaHQnOg0KICAgICAgICAgICAgJHBvc2l0aW9uWydsZWZ0J10gPSAkdGhpcy0+cGFkZGluZzsNCiAgICAgICAgICAgICRwb3NpdGlvblsndG9wJ10gPSAkdGhpcy0+cGFkZGluZzsNCiAgICAgICAgICAgICRwb3NpdGlvblsnd2lkdGgnXSA9ICRwaXhlbDsNCiAgICAgICAgICAgICRwb3NpdGlvblsnaGVpZ2h0J10gPSAkdGhpcy0+aGVpZ2h0IC0gKCR0aGlzLT5wYWRkaW5nICogMik7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAnbGVmdCc6DQogICAgICAgICAgICAkcG9zaXRpb25bJ2xlZnQnXSA9ICR0aGlzLT53aWR0aCAtICR0aGlzLT5wYWRkaW5nIC0gJHBpeGVsOw0KICAgICAgICAgICAgJHBvc2l0aW9uWyd0b3AnXSA9ICR0aGlzLT5wYWRkaW5nOw0KICAgICAgICAgICAgJHBvc2l0aW9uWyd3aWR0aCddID0gJHBpeGVsOw0KICAgICAgICAgICAgJHBvc2l0aW9uWydoZWlnaHQnXSA9ICR0aGlzLT5oZWlnaHQgLSAoJHRoaXMtPnBhZGRpbmcgKiAyKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICdkb3duJzoNCiAgICAgICAgICAgICRwb3NpdGlvblsnbGVmdCddID0gJHRoaXMtPnBhZGRpbmc7DQogICAgICAgICAgICAkcG9zaXRpb25bJ3RvcCddID0gJHRoaXMtPnBhZGRpbmc7DQogICAgICAgICAgICAkcG9zaXRpb25bJ3dpZHRoJ10gPSAkdGhpcy0+d2lkdGggLSAoJHRoaXMtPnBhZGRpbmcgKiAyKTsNCiAgICAgICAgICAgICRwb3NpdGlvblsnaGVpZ2h0J10gPSAkcGl4ZWw7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAndXAnOg0KICAgICAgICAgICAgJHBvc2l0aW9uWydsZWZ0J10gPSAkdGhpcy0+cGFkZGluZzsNCiAgICAgICAgICAgICRwb3NpdGlvblsndG9wJ10gPSAkdGhpcy0+aGVpZ2h0IC0gJHRoaXMtPnBhZGRpbmcgLSAkcGl4ZWw7DQogICAgICAgICAgICAkcG9zaXRpb25bJ3dpZHRoJ10gPSAkdGhpcy0+d2lkdGggLSAoJHRoaXMtPnBhZGRpbmcgKiAyKTsNCiAgICAgICAgICAgICRwb3NpdGlvblsnaGVpZ2h0J10gPSAkcGl4ZWw7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gJHBvc2l0aW9uOw0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIFNldHMgdGhlIG5ldyBzdGVwIHZhbHVlIG9mIHRoZSBwcm9ncmVzcyBiYXIuDQogICAgICoNCiAgICAgKiBAcGFyYW0gICAgICBpbnRlZ2VyICAgJHN0ZXAgICAgICAgICAgbmV3IHN0ZXAgdmFsdWUNCiAgICAgKg0KICAgICAqIEByZXR1cm4gICAgIHZvaWQNCiAgICAgKiBAc2luY2UgICAgICAyLjAuMA0KICAgICAqIEBhY2Nlc3MgICAgIHByaXZhdGUNCiAgICAgKi8NCiAgICBmdW5jdGlvbiBfc2V0U3RlcCgkc3RlcCkNCiAgICB7DQogICAgICAgIGlmKCRzdGVwID4gJHRoaXMtPm1heCkgew0KICAgICAgICAgICAgJHN0ZXAgPSAkdGhpcy0+bWF4Ow0KICAgICAgICB9DQogICAgICAgIGlmKCRzdGVwIDwgJHRoaXMtPm1pbikgew0KICAgICAgICAgICAgJHN0ZXAgPSAkdGhpcy0+bWluOw0KICAgICAgICB9DQogICAgICAgICR0aGlzLT5fc3RlcCA9ICRzdGVwOw0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIFNlbmRzIGEgRE9NIGNvbW1hbmQgKGVtdWxhdGUgY3NzVGV4dCBhdHRyaWJ1dGUpIHRocm91Z2ggYSBqYXZhc2NyaXB0IGZ1bmN0aW9uDQogICAgICogdG8gY2hhbmdlIHN0eWxlcyBvZiBhIHByb2dyZXNzIGJhcidzIGVsZW1lbnQuDQogICAgICoNCiAgICAgKiBAcGFyYW0gICAgICBzdHJpbmcgICAgJHByZWZpeCAgICAgICAgcHJlZml4IGlkZW50aWZpZXIgb2YgdGhlIGVsZW1lbnQNCiAgICAgKiBAcGFyYW0gICAgICBzdHJpbmcgICAgJGVsZW1lbnQgICAgICAgZWxlbWVudCBuYW1lIChsYWJlbCBpZC4pDQogICAgICogQHBhcmFtICAgICAgc3RyaW5nICAgICRzdHlsZXMgICAgICAgIHN0eWxlcyBvZiBhIERPTSBlbGVtZW50DQogICAgICoNCiAgICAgKiBAcmV0dXJuICAgICBzdHJpbmcNCiAgICAgKiBAc2luY2UgICAgICAyLjAuMA0KICAgICAqIEBhY2Nlc3MgICAgIHByaXZhdGUNCiAgICAgKi8NCiAgICBmdW5jdGlvbiBfY2hhbmdlRWxlbWVudFN0eWxlKCRwcmVmaXgsICRlbGVtZW50LCAkc3R5bGVzKQ0KICAgIHsNCiAgICAgICAgJGNtZCA9ICc8c2NyaXB0IHR5cGU9InRleHQvSmF2YVNjcmlwdCI+Jw0KICAgICAgICAgICAgIC4gJ3NldEVsZW1lbnRTdHlsZScgLiAkdGhpcy0+X2lkZW50DQogICAgICAgICAgICAgLiAnKCInIC4gJHByZWZpeCAuICciLCInIC4gJGVsZW1lbnQgLiAnIiwiJyAuICRzdHlsZXMgLiAnIik7Jw0KICAgICAgICAgICAgIC4gJzwvc2NyaXB0Pic7DQoNCiAgICAgICAgcmV0dXJuICRjbWQ7DQogICAgfQ0KDQogICAgLyoqDQogICAgICogU2VuZHMgYSBET00gY29tbWFuZCAoZW11bGF0ZSBmaXJzdENoaWxkLm5vZGVWYWx1ZSkgdGhyb3VnaCBhIGphdmFzY3JpcHQgZnVuY3Rpb24NCiAgICAgKiB0byBjaGFuZ2UgbGFiZWwgdmFsdWUgb2YgYSBwcm9ncmVzcyBiYXIncyBlbGVtZW50Lg0KICAgICAqDQogICAgICogQHBhcmFtICAgICAgc3RyaW5nICAgICRlbGVtZW50ICAgICAgIGVsZW1lbnQgbmFtZSAobGFiZWwgaWQuKQ0KICAgICAqIEBwYXJhbSAgICAgIHN0cmluZyAgICAkdGV4dCAgICAgICAgICBlbGVtZW50IHZhbHVlIChsYWJlbCBjb250ZW50KQ0KICAgICAqDQogICAgICogQHJldHVybiAgICAgc3RyaW5nDQogICAgICogQHNpbmNlICAgICAgMi4wLjANCiAgICAgKiBAYWNjZXNzICAgICBwcml2YXRlDQogICAgICovDQogICAgZnVuY3Rpb24gX2NoYW5nZUxhYmVsVGV4dCgkZWxlbWVudCwgJHRleHQpDQogICAgew0KICAgICAgICAkY21kID0gJzxzY3JpcHQgdHlwZT0idGV4dC9KYXZhU2NyaXB0Ij4nDQogICAgICAgICAgICAgLiAnc2V0TGFiZWxUZXh0JyAuICR0aGlzLT5faWRlbnQNCiAgICAgICAgICAgICAuICcoIicgLiAkZWxlbWVudCAuICciLCInIC4gJHRleHQgLiAnIik7Jw0KICAgICAgICAgICAgIC4gJzwvc2NyaXB0Pic7DQoNCiAgICAgICAgcmV0dXJuICRjbWQ7DQogICAgfQ0KDQogICAgLyoqDQogICAgICogU2VuZHMgYSBET00gY29tbWFuZCB0aHJvdWdoIGEgamF2YXNjcmlwdCBmdW5jdGlvbg0KICAgICAqIHRvIGNoYW5nZSB0aGUgbmV4dCBmcmFtZSBhbmltYXRpb24gb2YgYSBjcm9zcyBiYXIncyBlbGVtZW50Lg0KICAgICAqDQogICAgICogQHBhcmFtICAgICAgc3RyaW5nICAgICRlbGVtZW50ICAgICAgIGVsZW1lbnQgbmFtZSAoY3Jvc3MgaWQuKQ0KICAgICAqDQogICAgICogQHJldHVybiAgICAgc3RyaW5nDQogICAgICogQHNpbmNlICAgICAgMi4wLjANCiAgICAgKiBAYWNjZXNzICAgICBwcml2YXRlDQogICAgICovDQogICAgZnVuY3Rpb24gX2NoYW5nZUNyb3NzSXRlbSgkZWxlbWVudCkNCiAgICB7DQogICAgICAgICRjbWQgPSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L0phdmFTY3JpcHQiPicNCiAgICAgICAgICAgICAuICdzZXRSb3RhcnlDcm9zcycgLiAkZWxlbWVudCAuICR0aGlzLT5faWRlbnQgLiAnKCk7Jw0KICAgICAgICAgICAgIC4gJzwvc2NyaXB0Pic7DQoNCiAgICAgICAgcmV0dXJuICRjbWQ7DQogICAgfQ0KfQ0KPz4=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRXh0ZW5zaW9ucyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSB1c2VmdWwgZnVuY3Rpb25zCiMgIGFuZCBjb21tb25seSB1c2VkIGd1aSBjYXBhYmlsaXRpZXMgdG8gb3RoZXIgbW9kdWxlcy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCiRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKJHRhYm9wdGFycmF5ID0gYXJyYXkoICdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyApOwokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgoKLy8gdGFibGVzCiRmbGRzID0gImlkICAgSSBLRVkgQVVUTywKICAgICAgICAgY29kZSBDKDIpIEtFWSwKICAgICAgICAgbmFtZSBDKDUwKSwKICAgICAgICAgc29ydGluZyBJIERFRkFVTFQgMCI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChDR0VYVEVOU0lPTlNfVEFCTEVfQ09VTlRSSUVTLCRmbGRzLCR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKENHRVhURU5TSU9OU19UQUJMRV9TVEFURVMsJGZsZHMsJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCi8vIGRlZmF1bHQgY29udGVudAokZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCdjb3VudHJpZXMudHh0Jyk7CiRyYXdfY291bnRyaWVzID0gQGZpbGUoJGZuKTsKJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuQ0dFWFRFTlNJT05TX1RBQkxFX0NPVU5UUklFUy4nIChjb2RlLG5hbWUsc29ydGluZykgVkFMVUVTICg/LD8sMCknOwpmb3JlYWNoKCRyYXdfY291bnRyaWVzIGFzICRvbmUpCnsKICBsaXN0KCRhY3JvbnltLCRjb3VudHJ5X25hbWUpID0gc3BsaXQoJywnLCRvbmUpOwogICRhY3JvbnltID0gdHJpbSgkYWNyb255bSk7CiAgJGNvdW50cnlfbmFtZSA9IHRyaW0oJGNvdW50cnlfbmFtZSk7CiAgJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkYWNyb255bSwkY291bnRyeV9uYW1lKSk7Cn0KCiRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3N0YXRlcy50eHQnKTsKJHJhd19zdGF0ZXMgPSBAZmlsZSgkZm4pOwokcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5DR0VYVEVOU0lPTlNfVEFCTEVfU1RBVEVTLicgKGNvZGUsbmFtZSxzb3J0aW5nKSBWQUxVRVMgKD8sPywwKSc7CmZvcmVhY2goJHJhd19zdGF0ZXMgYXMgJG9uZSkKewogIGxpc3QoJGFjcm9ueW0sJHN0YXRlX25hbWUpID0gc3BsaXQoJywnLCRvbmUpOwogICRhY3JvbnltID0gdHJpbSgkYWNyb255bSk7CiAgJHN0YXRlX25hbWUgPSB0cmltKCRzdGF0ZV9uYW1lKTsKICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRhY3JvbnltLCRzdGF0ZV9uYW1lKSk7Cn0KCgovLyBQcmVmZXJlbmNlcwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1hZ2VleHRlbnNpb25zJywnanBnLHBuZyxnaWYnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3RodW1ibmFpbHNpemUnLDc1KTsKCgovLyB0ZW1wbGF0ZXMKJHRoaXMtPlJlc2V0RXJyb3JUZW1wbGF0ZSgpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRXh0ZW5zaW9ucyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSB1c2VmdWwgZnVuY3Rpb25zCiMgIGFuZCBjb21tb25seSB1c2VkIGd1aSBjYXBhYmlsaXRpZXMgdG8gb3RoZXIgbW9kdWxlcy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sJzEuOCcpIDwgMCApCiAgewogICAgJGRiID0mICR0aGlzLT5HZXREYigpOwogICAgJHRhYm9wb3RhcnJheSA9IGFycmF5KCAnbXlzcWwnID0+ICdUWVBFPU15SVNBTScgKTsKICAgICRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKICAgIAogICAgCiAgICAvLyB0YWJsZXMKICAgICRmbGRzID0gImlkICAgSSBLRVkgQVVUTywKICAgICAgICAgICAgIGNvZGUgQygyKSBLRVksCiAgICAgICAgICAgICBuYW1lIEMoNTApLAogICAgICAgICAgICAgc29ydGluZyBJIERFRkFVTFQgMCI7CiAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoQ0dFWFRFTlNJT05TX1RBQkxFX0NPVU5UUklFUywkZmxkcywkdGFib3B0YXJyYXkpOwogICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKENHRVhURU5TSU9OU19UQUJMRV9TVEFURVMsJGZsZHMsJHRhYm9wdGFycmF5KTsKICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKICAgIAogICAgCiAgICAvLyBkZWZhdWx0IGNvbnRlbnQKICAgICRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ2NvdW50cmllcy50eHQnKTsKICAgICRyYXdfY291bnRyaWVzID0gQGZpbGUoJGZuKTsKICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLkNHRVhURU5TSU9OU19UQUJMRV9DT1VOVFJJRVMuJyAoY29kZSxuYW1lLHNvcnRpbmcpIFZBTFVFUyAoPyw/LDApJzsKICAgIGZvcmVhY2goJHJhd19jb3VudHJpZXMgYXMgJG9uZSkKICAgICAgewoJbGlzdCgkYWNyb255bSwkY291bnRyeV9uYW1lKSA9IHNwbGl0KCcsJywkb25lKTsKCSRhY3JvbnltID0gc3RydG91cHBlcih0cmltKCRhY3JvbnltKSk7CgkkY291bnRyeV9uYW1lID0gdHJpbSgkY291bnRyeV9uYW1lKTsKCSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGFjcm9ueW0sJGNvdW50cnlfbmFtZSkpOwogICAgICB9CiAgICAKICAgICRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3N0YXRlcy50eHQnKTsKICAgICRyYXdfc3RhdGVzID0gQGZpbGUoJGZuKTsKICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLkNHRVhURU5TSU9OU19UQUJMRV9TVEFURVMuJyAoY29kZSxuYW1lLHNvcnRpbmcpIFZBTFVFUyAoPyw/LDApJzsKICAgIGZvcmVhY2goJHJhd19zdGF0ZXMgYXMgJG9uZSkKICAgICAgewoJbGlzdCgkYWNyb255bSwkc3RhdGVfbmFtZSkgPSBzcGxpdCgnLCcsJG9uZSk7CgkkYWNyb255bSA9IHN0cnRvdXBwZXIodHJpbSgkYWNyb255bSkpOwoJJHN0YXRlX25hbWUgPSB0cmltKCRzdGF0ZV9uYW1lKTsKCSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGFjcm9ueW0sJHN0YXRlX25hbWUpKTsKICAgICAgfQoKICB9IC8vIHZlcnNpb25fY29tcGFyZQoKCj8+]]></data>
	</file>
	<file>
	  <filename>/states.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[QUwsQWxhYmFtYQpBSyxBbGFza2EKQVMsQW1lcmljYW4gU2Ftb2EKQVosQXJpem9uYQpBUixBcmthbnNhcwpDQSxDYWxpZm9ybmlhCkNPLENvbG9yYWRvCkNULENvbm5lY3RpY3V0CkRFLERlbGF3YXJlCkRDLERpc3RyaWN0IG9mIENvbHVtYmlhCkZNLEZlZC4gU3RhdGVzIG9mIE1pY3JvbmVzaWEKRkwsRmxvcmlkYQpHQSxHZW9yZ2lhCkdVLEd1YW0KSEksSGF3YWlpCklELElkYWhvCklMLElsbGlub2lzCklOLEluZGlhbmEKSUEsSW93YQpLUyxLYW5zYXMKS1ksS2VudHVja3kKTEEsTG91aXNpYW5hCk1FLE1haW5lCk1ILE1hcnNoYWxsIElzbGFuZHMKTUQsTWFyeWxhbmQKTUEsTWFzc2FjaHVzZXR0cwpNSSxNaWNoaWdhbgpNTixNaW5uZXNvdGEKTVMsTWlzc2lzc2lwcGkKTU8sTWlzc291cmkKTVQsTW9udGFuYQpORSxOZWJyYXNrYQpOVixOZXZhZGEKTkgsTmV3IEhhbXBzaGlyZQpOSixOZXcgSmVyc2V5Ck5NLE5ldyBNZXhpY28KTlksTmV3IFlvcmsKTkMsTm9ydGggQ2Fyb2xpbmEKTkQsTm9ydGggRGFrb3RhCk1QLE5vcnRoZXJuIE1hcmlhbmEgSXMuCk9ILE9oaW8KT0ssT2tsYWhvbWEKT1IsT3JlZ29uClBXLFBhbGF1ClBBLFBlbm5zeWx2YW5pYQpQUixQdWVydG8gUmljbwpSSSxSaG9kZSBJc2xhbmQKU0MsU291dGggQ2Fyb2xpbmEKU0QsU291dGggRGFrb3RhClROLFRlbm5lc3NlZQpUWCxUZXhhcwpVVCxVdGFoClZULFZlcm1vbnQKVkEsVmlyZ2luaWEKVkksVmlyZ2luIElzbGFuZHMKV0EsV2FzaGluZ3RvbgpXVixXZXN0IFZpcmdpbmlhCldJLFdpc2NvbnNpbgpXWSxXeW9taW5nCkFCLEFsYmVydGEKQkMsQnJpdGlzaCBDb2x1bWJpYQpNQixNYW5pdG9iYQpOQixOZXcgQnJ1bnN3aWNrCk5GLE5ld2ZvdW5kbGFuZApOVCxOb3J0aHdlc3QgVGVycml0b3JpZXMKTlMsTm92YSBTY290aWEKT04sT250YXJpbwpQRSxQcmluY2UgRWR3YXJkIElzbGFuZApRQyxRdWViZWMKU0ssU2Fza2F0Y2hld2FuCllULFl1a29u]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/adminpanel.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogYWRtaW4gcGFuZWwgdGVtcGxhdGUgKn0KeyRmb3Jtc3RhcnR9CjxmaWVsZHNldD4KPGxlZ2VuZD57JHByb21wdF90ZW1wbGF0ZX08L2xlZ2VuZD4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3RlbXBsYXRlfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF90ZW1wbGF0ZX08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0X3RlbXBsYXRlfSZuYnNwO3skcmVzZXR9PC9wPgo8L2Rpdj4KPC9maWVsZHNldD4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9pbWFnZWV4dGVuc2lvbnN9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2ltYWdlZXh0ZW5zaW9uc308L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfcHJpb3JpdHljb3VudHJpZXN9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3ByaW9yaXR5Y291bnRyaWVzfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygndGh1bWJuYWlsX3NpemUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdGh1bWJuYWlsc2l6ZX08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fTwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/dflt_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF90ZW1wbGF0ZX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF90ZW1wbGF0ZX08L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzdWJtaXR9Jm5ic3A7eyRyZXNldH08L3A+CiAgPC9kaXY+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/editdefaulttemplate.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19Cgk8aDQ+eyRkZWZhdWx0dGVtcGxhdGVmb3JtX3RpdGxlfTwvaDQ+CiAgICAgICAgPGVtPnskaW5mb190aXRsZX08L2VtPjxici8+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfdGVtcGxhdGV9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3RlbXBsYXRlfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH17JHJlc2V0fTwvcD4KCTwvZGl2Pgp7JGVuZGZvcm19Cjxici8+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/edittemplate.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KPGgzPnskdGl0bGV9PC9oMz4KPC9kaXY+CnskZm9ybXN0YXJ0fXskaGlkZGVufQp7aWYgaXNzZXQoJHRlbXBsYXRlX2luZm8pfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIHskdGVtcGxhdGVfaW5mb30KPC9kaXY+CnsvaWZ9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF90ZW1wbGF0ZW5hbWV9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHRlbXBsYXRlbmFtZX08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfdGVtcGxhdGV9OjwvcD4KICA8cCBjbGFzcz0icGFnZW9wdGlvbnMiPnskdGVtcGxhdGV9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KICA8cCBjbGFzcz0icGFnZW9wdGlvbnMiPnskc3VibWl0fXskY2FuY2VsfXskYXBwbHl9PC9wPgo8L2Rpdj4KeyRmb3JtZW5kfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/templates/listtemplates.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aCB3aWR0aD0iNzUlIj57JG5hbWVwcm9tcHR9PC90aD4KICAgICAgPHRoPnskZGVmYXVsdHByb21wdH08L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQogICB7Y3ljbGUgdmFsdWVzPSJyb3cxLHJvdzIiIGFzc2lnbj0ncm93Y2xhc3MnfQogICA8dHIgY2xhc3M9Inskcm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9JzsiPgogICAgIDx0ZD57JGVudHJ5LT5uYW1lfTwvdGQ+CiAgICAgPHRkPnskZW50cnktPmRlZmF1bHR9PC90ZD4KICAgICA8dGQ+eyRlbnRyeS0+ZWRpdGxpbmt9PC90ZD4KICAgICA8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPgogICA8L3RyPgp7L2ZvcmVhY2h9CjwvdGFibGU+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRuZXd0ZW1wbGF0ZWxpbmt9PC9wPgo8L2Rpdj4K]]></data>
	</file>
	<file>
	  <filename>/templates/orig_error_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogb3JpZ2luYWwgdGVtcGxhdGUgZm9yIGRpc3BsYXlpbmcgZnJvbnRlbmQgZXJyb3JzICp9CjxkaXYgY2xhc3M9InskY2dfZXJyb3JjbGFzc30iPnskY2dfZXJyb3Jtc2d9PC9kaXY+]]></data>
	</file>
</module>
