<?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>CGml</name>
	<version>1.4.2</version>
    <mincmsversion>2.1.5</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgaXMgYSBzaW1wbGUgbW9kdWxlIGludGVuZGVkIHRvIHByb3ZpZGUgZm9yIGEgcXVpY2sgYW5kIGVhc3kgd2F5IHRvIG1hbmFnZSB0cmFuc2xhdGlvbiBvZiBzaW1wbGUgc3RyaW5ncy4gIElkZWFsIGZvciB1c2UgaW4gZm9ybXMgb3IgcmVwb3J0cywgb3Igb3RoZXIgdGVtcGxhdGUgZmlsZXMsIHRoaXMgbW9kdWxlIGFsbG93cyB5b3UgdG8gYXV0b21hdGljYWxseSBhcHBseSB0aGUgY29ycmVjdCBsYW5ndWFnZSBzdHJpbmcgaW4gdGhlIHByb3BlciBsb2NhdGlvbiBvZiB5b3VyIHRlbXBsYXRlLjwvaDM+CjxwPlRoaXMgbW9kdWxlIGlzIGlkZWFsbHkgc3VpdGVkIGZvciBzb2x2aW5nIGNhc2VzIHdoZXJlIHlvdSB3b3VsZCBub3JtYWxseSBoYXZlIG11bHRpcGxlICdpZicgc3RhdGVtZW50cyB0byBvdXRwdXQgZGlmZmVyZW50IHRleHQgZm9yIGRpZmZlcmVudCBsYW5ndWFnZXMuICAgUGFydGljdWxhcmx5IHdoZW4gdGhlIHRleHQgb3V0cHV0IGRvZXMgbm90IG5lZWQgdG8gYmUgbWFuYWdlZCBieSBhbiBlZGl0b3IsIGFuZCB3b3VsZCBjaGFuZ2UgaW5mcmVxdWVudGx5LjwvcD4KCjxoMz5GZWF0dXJlczo8L2gzPgo8dWw+CiAgPGxpPlN1cHBvcnRzIGtlZXBpbmcgdHJhbnNsYXRpb25zIGluIGZpbGVzLiAgUGFydGljdWxhcmx5IHVzZWZ1bCBmb3Igc21hbGwgc3RyaW5ncyB0aGF0IGRvIG5vdCBjaGFuZ2Ugb2Z0ZW4sIGFuZCBjYW4gYmUgdHJhY2tlZCB3aXRoIHZlcnNpb24gY29udHJvbCBzeXN0ZW1zLjwvbGk+CiAgPGxpPlN1cHBvcnRzIG9yZ2FuaXppbmcgbGFuZ3VhZ2UgZmlsZXMgaW50byBkaWZmZXJlbnQgcmVhbG1zLiAgVGhpcyBpcyB1c2VmdWwgZm9yIG9yZ2FuaXppbmcgdHJhbnNsYXRpb25zIGZvciBkaWZmZXJlbnQgZm9ybXMsIG9yIHJlcG9ydHMuPC9saT4KICA8bGk+VXNlcyB0aGUgY3VycmVudCBsYW5ndWFnZSBmb3IgdGhlIHJlcXVlc3QsIHVzaW5nIENNU01TIHB1Ymxpc2hlZCBBUEknczwvbGk+CjwvdWw+Cgo8aDM+SG93IERvIEkgVXNlIEl0OjwvaDM+Cjx1bD4KICA8bGk+QTogSW5zdGFsbCB0aGUgbW9kdWxlLCBhcyBvZiB0aGlzIHdyaXRpbmcgdGhlIG1vZHVsZSBoYXMgbm8gYWRtaW4gcGFuZWwgb3B0aW9ucy48L2xpPgogIDxsaT5COiBDcmVhdGUgeW91ciB0cmFuc2xhdGlvbihzKS4KICAgICA8cD5Zb3Ugc2hvdWxkIGNyZWF0ZSBhdCBsZWFzdCB0aGUgZGVmYXVsdCByZWFsbSBmaWxlLCB3aXRoIHRyYW5zbGF0aW9uIG9mIG51bWVyb3VzIHN0cmluZ3MgdG8gZGlmZmVyZW50IGxhbmd1YWdlcy4gIFNlZSBiZWxvdyBmb3IgaW5mb3JtYXRpb24gb24gdGhlIGZvcm1hdCBvZiBsYW5nIGZpbGVzLjwvcD4KICA8L2xpPgogIDxsaT5DOiBDaGFuZ2UgaGFyZCBjb2RlZCBzdHJpbmdzIHRvIG1vZHVsZSBjYWxscyB0aGF0IHdpbGwgdXRpbGl6ZSBsYW5ndWFnZSBzdHJpbmcga2V5cy4gaS5lOjwvbGk+CiAgICAgIDxwcmU+PGNvZGU+e0NHbWwga2V5PSdoZWxsbyd9PC9jb2RlPjwvcHJlPgogIDwvbGk+CjwvdWw+Cgo8aDM+U21hcnR5IHBsdWdpbnM8L2gzPgo8cD5UaGlzIG1vZHVsZSByZWdpc3RlcnMgYSBmZXcgYWRkaXRpb25hbCBzbWFydHkgcGx1Z2lucyB0byBhaWRlIGluIHRyYW5zbGF0aW9uLCBhbmQgaW4gb3JnYW5pemluZyB0cmFuc2xhdGlvbnMuPC9wPgo8dWw+CiAgIDxsaT48Y29kZT57Y2dfXyBrZXk9c3RyaW5nIFtkZmx0PXN0cmluZ10gW2Fzc2lnbj1zdHJpbmddIFtfKj1zdHJpbmddfTwvY29kZT4KICAgICAgPHA+VGhpcyBwbHVnaW4gd2lsbCByZXR1cm4gdGhlIHRyYW5zbGF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGtleSwgaW4gdGhlIGN1cnJlbnQgcmVhbG0sIGZvciB0aGUgY3VycmVudCBsYW5ndWFnZSwgaWYgb24gZXhpc3RzLjwvcD4KICAgICAgPHA+QXJndW1lbnRzOjwvcD4KICAgICAgPHVsPgogICAgICAgIDxsaT48Y29kZT5rfGtleT1zdHJpbmc8L2NvZGU+IDxzdHJvbmc+KHJlcXVpcmVkKTwvc3Ryb25nPiAtIFRoZSBsYW5ndWFnZSBzdHJpbmcga2V5LiAgTm90ZSBlaXRoZXIgJnF1b3Q7ayZxdW90OyBvciAmcXVvdDtrZXkmcXVvdDsgYXJlIGFjY2VwdGFibGUuPC9saT4KCTxsaT48Y29kZT5kZmx0PXN0cmluZzwvY29kZT4gPGVtPihvcHRpb25hbCk8L2VtPiAtIElmIHRoZXJlIGlzIG5vIHZhbHVlIGZvciB0aGUgc3BlY2lmaWVkIGtleSwgcmV0dXJuIHRoZSBzdHJpbmcgc3BlY2lmaWVkLjwvcD4KCTxsaT48Y29kZT5hc3NpZ249c3RyaW5nPC9jb2RlPiA8ZW0+KG9wdGlvbmFsKTwvZW0+IC0gT3B0aW9uYWxseSBhc3NpZ24gdGhlIG91dHB1dCBvZiB0aGlzIGZ1bmN0aW9uIHRvIHRoZSBuYW1lZCBzbWFydHkgdmFyaWFibGUuPC9wPgogICAgICA8L3VsPgogICAgICA8cHJlPjxjb2RlPntjZ19fIGs9aGVsbG8gZGZsdD0nSGVsbG8nfTwvY29kZT48L3ByZT4KICAgICAgPGg0PlZhcmlhYmxlIHN1YnN0aXR1dGlvbjwvaDQ+CiAgICAgIDxwPlRoaXMgcGx1Z2luIGFsc28gc3VwcG9ydHMgc3RyaW5nIHN1YnN0aXR1dGlvbiBieSBwcm92aWRpbmcgb25lIG9yIG1vcmUgdmFyaWFibGVzIHRvIHRoZSB7Q0dtbCB0YWd9LjwvcD4KICAgICAgPHA+SWYgdGhlIHRyYW5zbGF0aW9uIHN0cmluZyBpbiB0aGUgbGFuZyBmaWxlIGlzIG9mIHRoZSBmb3JtIDxjb2RlPnNvbWVrZXk9IlRoZSBjb2xvciBvZiB0aGUgIyNvYmogaXMgIyNjb2xvciI8L2NvZGU+IDxlbT4oYWxvbmcgd2l0aCBpdCdzIHZhcmlvdXMgdHJhbnNsYXRpb25zKS48L2VtPiAgVGhlbiBjYWxsaW5nIHRoZSBwbHVnaW4gbGlrZSB0aGlzIDxjb2RlPntDR21sIGtleT1zb21la2V5IF9vYmo9YXBwbGUgX2NvbG9yPXJlZH08L2NvZGU+IHdpbGwgcGVyZm9ybSB2YXJpYWJsZSBzdWJzdGl0dXRpb24uPC9wPgogICAgICA8cD5UaGUgZWZmZWN0IGNhbiBiZSBjb21iaW5lZCB1c2luZyB0aGUgY2FsbCB0byB0aGlzIG1vZHVsZSBtdWx0aXBsZSB0aW1lczo8L3A+CiAgICAgIDxwcmU+PGNvZGU+e0NHbWwga2V5PWFwcGxlIGFzc2lnbj1vYmp9PGJyLz57Q0dtbCBrZXk9cmVkIGFzc2lnbj1yZWR9PGJyLz57Q0dtbCBrZXk9c29tZWtleSBfb2JqPSRvYmogX2NvbG9yPSRyZWR9PC9jb2RlPjwvcHJlPgogICA8L2xpPgoKICAgPGxpPjxjb2RlPntDR21sIGtleT1zdHJpbmcgW2Fzc2lnbj1zdHJpbmddfTwvY29kZT4KICAgICAgPHA+VGhpcyBwbHVnaW4gPGVtPihhY3R1YWxseSB0aGUgZGVmYXVsdCBhY3Rpb24gZm9yIHRoaXMgbW9kdWxlKTwvZW0+IFdpbGwgcmV0dXJuIHRoZSB0cmFuc2xhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBrZXksIGluIHRoZSBjdXJyZW50IHJlYWxtLCBmb3IgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UuPC9wPgogICAgICA8cD5Bcmd1bWVudHM6PC9wPgogICAgICA8dWw+CiAgICAgICAgPGxpPjxjb2RlPmt8a2V5PXN0cmluZzwvY29kZT4gPHN0cm9uZz4ocmVxdWlyZWQpPC9zdHJvbmc+IC0gVGhlIGxhbmd1YWdlIHN0cmluZyBrZXkuICBOb3RlIGVpdGhlciAmcXVvdDtrJnF1b3Q7IG9yICZxdW90O2tleSZxdW90OyBhcmUgYWNjZXB0YWJsZS48L2xpPgoJPGxpPjxjb2RlPmFzc2lnbj1zdHJpbmc8L2NvZGU+IDxlbT4ob3B0aW9uYWwpPC9lbT4gLSBPcHRpb25hbGx5IGFzc2lnbiB0aGUgb3V0cHV0IG9mIHRoaXMgZnVuY3Rpb24gdG8gdGhlIG5hbWVkIHNtYXJ0eSB2YXJpYWJsZS48L3A+CiAgICAgIDwvdWw+CiAgICAgIDxwcmU+PGNvZGU+e0NHbWwga2V5PWhlbGxvfTwvY29kZT48L3JwZT4KICAgICAgPGg0PlZhcmlhYmxlIHN1YnN0aXR1dGlvbjwvaDQ+CiAgICAgIDxwPlRoaXMgcGx1Z2luIGFsc28gc3VwcG9ydHMgc3RyaW5nIHN1YnN0aXR1dGlvbiBhcyBkZXNjcmliZWQgaW4gdGhlIHtjZ19ffSBwbHVnaW4uPC9wPgogICA8L2xpPgoKICAgPGxpPjxjb2RlPntjZ21sX2dldGFsbCBhc3NpZ249c3RyaW5nfTwvY29kZT4KICAgICAgPHA+VGhpcyBwbHVnaW4gd2lsbCBnZXQgYWxsIG9mIHRoZSBhdmFpbGFibGUgbGFuZ3VhZ2Ugc3RyaW5ncyBvZiB0aGUgY3VycmVudCByZWFsbSBhcyBhbiBhc3NvY2lhdGl2ZSBhcnJheSwgYW5kIGFzc2lnbiB0aGVtIHRvIGEgc21hcnR5IHZhcmlhYmxlLjwvcD4KICAgICAgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGUgYXNzaWduIGFyZ3VtZW50IGlzIHJlcXVpcmVkIGZvciB0aGlzIHBsdWdpbi4gIGkuZTo8L3A+CiAgICAgIDxwcmU+PGNvZGU+e2NnbWxfZ2V0YWxsIGFzc2lnbj0nbGFuZ3N0cmluZ3MnfSAuLi4geyRsYW5nc3RyaW5ncy5oZWxsb308L2NvZGU+PC9wcmU+CiAgIDwvbGk+CgogICA8bGk+PGNvZGU+e2NnbWxfc2V0cmVhbG0gW3JlYWxtPXN0cmluZ10gW2Fzc2lnbj1zdHJpbmddfTwvY29kZT4KICAgICAgPHA+VGhpcyBwbHVnaW4gd2lsbCBzZXQgdGhlIGN1cnJlbnQgbGFuZ3VhZ2Ugc3RyaW5nIHJlYWxtIHRvIGEgZGlmZmVyZW50IHJlYWxtLCBhbmQgb3B0aW9uYWxseSBhc3NpZ24gYWxsIG9mIHRoZSB0cmFuc2xhdGVkIHN0cmluZ3MgdG8gYW4gYXNzb2NpYXRpdmUgYXJyYXkuIGkuZTo8L3A+CiAgICAgIDxwPkFyZ3VtZW50czo8L3A+CiAgICAgIDx1bD4KCTxsaT48Y29kZT5yZWFsbT1zdHJpbmc8L2NvZGU+IDxlbT4ob3B0aW9uYWwpPC9lbT4gLSBBbiBvcHRpb25hbCBhbHRlcm5hdGl2ZSByZWFsbSBuYW1lLiAgSWYgbm9uZSBzcGVjaWZpZWQsIHRoZSBkZWZhdWx0IHJlYWxtIGlzIGFzc3VtZWQuPC9saT4KCTxsaT48Y29kZT5hc3NpZ249c3RyaW5nPC9jb2RlPiA8ZW0+KG9wdGlvbmFsKTwvZW0+IC0gT3B0aW9uYWxseSBhc3NpZ24gYWxsIG9mIHRoZSB0cmFuc2xhdGlvbnMgZm9yIHRoaXMgcmVhbG0gYXMgYW4gYXNzb2NpYXRpdmUgYXJyYXkgdG8gdGhlIG5hbWVkIHNtYXJ0eSB2YXJpYWJsZS48L2xpPgogICAgICA8L3VsPgogICAgICA8cHJlPjxjb2RlPntjZ21sX3NldHJlYWxtIHJlYWxtPSdmb3Jtc3RyaW5ncycgYXNzaWduPSdmb3Jtc3RyaW5ncyd9IC4uLiB7JGZvcm10cmluZ3Muc3VibWl0fTwvY29kZT48L3ByZT4KICAgPC9saT4KCiAgIDxsaT48Y29kZT57Y2dtbF9vcHRpb25zIHJlYWxtPXN0cmluZyBbc2VsZWN0ZWQ9c3RyaW5nXX08L2NvZGU+CiAgICAgIDxwPlRoaXMgcGx1Z2luIGlzIHVzZWZ1bCBpbiBzZWxlY3Qgc3RhdGVtZW50cy4gIEl0IHdpbGwgbG9hZCBhbGwgc3RyaW5ncyBmb3IgdGhlIHNwZWNpZmllZCByZWFsbSwgY29udmVydCB0aGVtIHRvIEhUTUwgb3B0aW9uIHRhZ3MsIGFuZCBtYXJrdCBoZSBpbmRpY2F0ZWQgb3B0aW9uIGFzIHNlbGVjdGVkLjwvcD4KICAgICAgPHA+QXJndW1lbnRzOjwvcD4KICAgICAgPHVsPgoJPGxpPjxjb2RlPnJlYWxtPXN0cmluZzwvY29kZT4gPGVtPihyZXF1aXJlZCk8L2VtPiAtIFRoZSByZWFsbSB0byBsb2FkLjwvbGk+Cgk8bGk+PGNvZGU+c2VsZWN0ZWQ9c3RyaW5nPC9jb2RlPiA8ZW0+KG9wdGlvbmFsKTwvZW0+IC0gT3B0aW9uYWxseSBzcGVjaWZ5IHRoZSBvcHRpb24gdGhhdCBzaG91bGQgYmUgc2VsZWN0ZWQsIGJ5IGl0J3Mga2V5LjwvbGk+CiAgICAgIDwvdWw+CiAgICAgIDxwcmU+PGNvZGU+Jmx0O3NlbGVjdCZndDt7Y2dtbF9vcHRpb25zIHJlYWxtPWNvdW50cmllcyBzZWxlY3RlZD1DQX0mbHQ7c2VsZWN0Jmd0OzwvY29kZT48L3ByZT4KICAgPC9saT4KCjwvdWw+Cgo8aDM+TG9jYXRpb24gYW5kIG5hbWluZyBvZiBGaWxlczwvaDM+CjxwPlRoaXMgbW9kdWxlIHdpbGwgZmlyc3QgbG9vayBmb3IgZmlsZXMgaW4gYSBkaXJlY3RvcnkgPGNvZGU+X0NHbWw8L2NvZGU+IGJlbG93IHlvdXIgQ01TTVMgcm9vdCBkaXJlY3RvcnkuICBGb3IgdmVyc2lvbnMgb2YgQ01TTVMgMi4yIGFuZCBhYm92ZSwgdGhpcyBtb2R1bGUgd2lsbCBsb29rIGZvciBhIGRpcmVjdG9yeSBuYW1lZCBhc3NldHMvQ0dtbCBiZWxvdyB5b3VyIENNU01TIHJvb3QgZGlyZWN0b3J5LiAgIE5vdGUsIGlmIGJvdGggZGlyZWN0b3JpZXMgZXhpc3QsIG9ubHkgdGhlIGZpcnN0IG9uZSB3aWxsIGJlIGZvdW5kLjwvcD4KPHA+WW91IGNhbiBvdmVycmlkZSB0aGUgcGF0aCBmb3IgdHJhbnNsYXRpb25zIHVzaW5nIHRoZSAnQ0dtbF9wYXRoJyBjb25maWcgZW50cnkgaW4geW91ciBjb25maWcucGhwIGZpbGUuIGkuZTo8L3A+CjxwcmU+PGNvZGU+JGNvbmZpZ1snQ0dtbF9wYXRoJ10gPSAkY29uZmlnWydyb290X3BhdGgnXS4nL3RyYW5zbGF0aW9ucyc7PC9jb2RlPjwvcHJlPgo8cD5BbGwgZmlsZXMgbmFtZXMgbXVzdCBiZSBpbiB0aGUgZm9ybWF0IDxjb2RlPmxhbmcuPHN0cm9uZz5yZWFsbV9uYW1lPC9zdHJvbmc+LmluaTwvY29kZT48L3A+CjxwPlRoZSBuYW1lIG9mIHRoZSBkZWZhdWx0IHJlYWxtIGlzICZxdW90O2RlZmF1bHQmcXVvdDsgc28sIGJ5IGRlZmF1bHQgdGhpcyBtb2R1bGUgd2lsbCBsb29rIGZvciB0aGUgZGVmYXVsdCByZWFsbSBmaWxlIGluIDxjb2RlPiZsdDtyb290X3BhdGgmZ3Q7L19DR21sL2xhbmcuPHN0cm9uZz5kZWZhdWx0PC9zdHJvbmc+LmluaTwvY29kZT48L3A+Cgo8aDM+Rm9ybWF0IG9mIEZpbGVzPC9oMz4KPHA+VGhpcyBtb2R1bGUgdXNlcyBJTkkgZmlsZSBmb3JtYXQgZm9yIHRyYW5zbGF0aW9uLiAgU2VjdGlvbiBlbnRyaWVzIHNlcGFyYXRlIGxhbmd1YWdlcywgYW5kIGluZGl2aWR1YWwgZW50cmllcyBjb250YWluIHRoZSB0cmFuc2xhdGlvbnMuICBBIHNpbXBsZSBsYW5ndWFnZSBmaWxlIGZvciBlbmdsaXNoIGFuZCBmcmVuY2ggbWF5IGxvb2sgc29tZXRoaW5nIGxpa2U6PC9wPgo8cHJlPgpbZW5fVVNdCmhlbGxvPUhlbGxvCmJ5ZT1Hb29kIEJ5ZQoKW2ZyX0ZSXQpoZWxsbz1Cb25qb3VyCmJ5ZT1BdSBSZXZvaXIKPC9wcmU+Cgo8cD5NdWx0aSBsaW5lIGVudHJpZXMgYXJlIHBlcm1pc3NpYmxlLCBidXQgbXVzdCBiZSBxdW90ZWQuICBpLmU6PC9wPgo8cHJlPgpbZW5fVVNdCnRlcm1zX29mX3VzZT0iVGhpcyBpcyBhIHZlcnkgbG9uZyB0ZXh0IHVzaW5nCm11bHRpcGxlIGxpbmVzIGRlc2NyaWJpbmcgdGhlIHRlcm1zIG9mIHVzZQpmb3IgbXkgd2Vic2l0ZS4iCjwvcHJlPgoKPGgzPkRlZmF1bHQgbGFuZ3VhZ2UsIGFuZCBtaXNzaW5nIGxhbmd1YWdlIHN0cmluZ3M8L2gzPgo8cD5UaGlzIG1vZHVsZSBhc3N1bWVzIHRoYXQgdGhlIGRlZmF1bHQgbGFuZ3VhZ2UgaXMgZW5fVVMuIDxlbT4odGhpcyBtYXkgY2hhbmdlIGF0IGEgbGF0ZXIgZGF0ZSk8L2VtPi4gIFNvIGlmIGEgc3RyaW5nIGV4aXN0cyBmb3IgZW5fVVMsIGJ1dCBub3QgZm9yIHRoZSBjdXJyZW50IGxhbmd1YWdlLCB0aGVuIHRoZSBlbmdsaXNoIHN0cmluZyB3aWxsIGJlIHVzZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSB3aWxsIG5vdCByZXR1cm4gYW55IHZhbHVlIGlmIGEgdHJhbnNsYXRpb24gZm9yIGEgcmVxdWVzdGVkIGtleSBkb2VzIG5vdCBleGlzdCBpbiBlaXRoZXIgdGhlIGN1cnJlbnQgbGFuZ3VhZ2Ugb3IgdGhlIGRlZmF1bHQgbGFuZ3VhZ2UuICBIb3dldmVyLCBhIGRlYnVnIGVudHJ5IHdpbGwgYmUgcGxhY2VkIGludG8gdGhlIHRtcC9jYWNoZS9kZWJ1Zy5sb2cgZmlsZSB0byBhbGxvdyB5b3UgdG8gZmluZCBpbnN0YW5jZXMgd2hlcmUgYSB0cmFuc2xhdGlvbiBpcyB1c2VkLCBidXQgaXMgbm90IGN1cnJlbnRseSB0cmFuc2xhdGVkLjwvcD4KCjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhlIG1vZHVsZSBhdXRob3IgaXMgaW4gbm8gd2F5IG9ibGlnYXRlZCB0byBwcm92aWRlIHN1cHBvcnQgZm9yIHRoaXMgY29kZSBpbiBhbnkgZmFzaGlvbi4gIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5BIGJ1ZyB0cmFja2luZyBhbmQgZmVhdHVyZSByZXF1ZXN0IHN5c3RlbSBoYXMgYmVlbiBjcmVhdGVkIGZvciB0aGlzIG1vZHVsZSA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Nnc2ltcGxlc21hcnR5Ij5oZXJlPC9hPi4gIFBsZWFzZSBiZSB2ZXJib3NlIGFuZCBkZXNjcmlwdGl2ZSB3aGVuIHN1Ym1pdHRpbmcgYnVnIHJlcG9ydHMgYW5kIGZlYXR1cmUgcmVxdWVzdHMsIGFuZCBmb3IgYnVnIHJlcG9ydHMgZW5zdXJlIHRoYXQgeW91IGhhdmUgcHJvdmlkZWQgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byByZWxpYWJseSByZXByb2R1Y2UgdGhlIGlzc3VlLjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uICBXaGVuIGRlc2NyaWJpbmcgYW4gaXNzdWUgcGxlYXNlIG1ha2UgYW4gZWZmb3J0IHRvIHByaXZpZGUgYWxsIHJlbGF2YW50IGluZm9ybWF0aW9uLCBhIHRob3JvdWdoIGRlc2NyaXB0aW9uIG9mIHlvdXIgaXNzdWUsIGFuZCBzdGVwcyB0byByZXByb2R1Y2UgaXQgb3IgeW91ciBkaXNjdXNzaW9uIG1heSBiZSBpZ25vcmVkLjwvbGk+CjxsaT5UaGUgYXV0aG9yLCBjYWxndXkxMDAwLCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkuICBIb3dldmVyLCBwbGVhc2UgdXNlIHRoaXMgYXMgYSBsYXN0IHJlc29ydCwgYW5kIGVuc3VyZSB0aGF0IHlvdSBoYXZlIGZvbGxvd2VkIGFsbCBhcHBsaWNhYmxlIGluc3RydWN0aW9ucyBvbiB0aGUgZm9yZ2UsIGluIHRoZSBmb3J1bXMsIGV0Yy48L2xpPgo8L3VsPgoKPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAxOCwgUm9iZXJ0IENhbXBiZWwgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPiZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+CjxwPkhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAphcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwpNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4Kc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLApidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgpNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCmFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCk9yIHJlYWQgaXQgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5vbmxpbmU8L2E+PC9wPgo8aDM+RGVwZW5kZW5jaWVzPC9oMz48dWw+PGxpPkNHRXh0ZW5zaW9ucyA9Jmd0OyAxLjUzLjEzPC9saT48L3VsPg==]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDEuNC4yPGJyIC8+PGJyIC8+Q2hhbmdlIEhpc3Rvcnk6PGJyIC8+PHVsPgoJPGxpPlZlcnNpb24gMS4yCgkgICA8cD5BZGRzIHRoZSB7Y2dfX30gdGFnLjwvcD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAxLjMKCTxwPi0gQWRkcyB0aGUge2NnbWxfb3B0aW9uc30gdGFnLjwvcD4KCTxwPi0gUmVnaXN0ZXIgc21hcnR5IHBsdWdpbnMgaW4gdGhlIGNvbnN0cnVjdG9yLjwvcD4KCTwvbGk+CjwvdWw+CjxiciAvPg==]]></about>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.53.13</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHbWwgKGMpIDIwMTcgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWlkZSBpbiBidWlsZGluZyBtdWx0aS1sYW5ndWFnZQojICB3ZWJzaXRlcyBhbmQgYXBwcy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVmlzaXQgdGhlIENNU01TIEhvbWVwYWdlIGF0OiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQpuYW1lc3BhY2UgQ0dtbDsKCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiRrZXkgPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2snKTsKJGtleSA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywna2V5Jywka2V5KTsKJHBhcm1zID0gW107CmZvcmVhY2goICRwYXJhbXMgYXMgJHhrZXkgPT4gJHZhbCApIHsKICAgIGlmKCAhc3RhcnRzd2l0aCggJHhrZXksICdfJykgKSBjb250aW51ZTsKICAgICR4a2V5ID0gc3Vic3RyKCR4a2V5LDEpOwogICAgJHBhcm1zWyR4a2V5XSA9ICR2YWw7Cn0KJHN0ciA9ICR0aGlzLT50cmFuc2xhdG9yLT50cmFuc2xhdGUoICRrZXksICRwYXJtcyApOwplY2hvICRzdHI7]]></data>
	</file>
	<file>
	  <filename>/CGml.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHbWwgKGMpIDIwMTcgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWlkZSBpbiBidWlsZGluZyBtdWx0aS1sYW5ndWFnZQojICB3ZWJzaXRlcyBhbmQgYXBwcy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVmlzaXQgdGhlIENNU01TIEhvbWVwYWdlIGF0OiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKLyoKICB7Q0dtbF9zZXRyZWFsbSByZWFsbT1zb21ldGhpbmd9IHsqIHNldCBjdXJyZW50IHJlYWxtLCBhbmQgbG9hZHMgaXQgKn0KICB7Q0dtbCBbcmVhbG09c29tZXRoaW5nZWxzZV0gaz1mb28gW2Fzc2lnbj1mb29dfSB7KiBhdXRvbWF0aWNhbGx5IGxvYWQgdGhlIHJlYWxtLCBhbmQgdHJhbnNsYXRlIHRoZSBzdHJpbmcgKn0KICovCmZpbmFsIGNsYXNzIENHbWwgZXh0ZW5kcyBcQ0dFeHRlbnNpb25zCnsKICAgIHByb3RlY3RlZCAkZGFvOwogICAgcHJvdGVjdGVkICR0cmFuc2xhdG9yOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgICB7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgpOwoKCXN0YXRpYyAkX2xvYWRlZDsKCWlmKCAkX2xvYWRlZCApIHJldHVybjsKCSRfbG9hZGVkID0gIDE7CgogICAgICAgICR0aGlzLT5kYW8gPSBuZXcgXENHbWxcTGFuZ0RBTygpOwogICAgICAgICR0aGlzLT50cmFuc2xhdG9yID0gbmV3IFxDR21sXFRyYW5zbGF0b3IoJHRoaXMtPmRhbyk7CgogICAgICAgICRzbWFydHkgPSBcQ21zQXBwOjpnZXRfaW5zdGFuY2UoKS0+R2V0U21hcnR5KCk7CiAgICAgICAgaWYoICEkc21hcnR5ICkgcmV0dXJuOwogICAgICAgICRzbWFydHktPnJlZ2lzdGVyX2Z1bmN0aW9uKCdjZ21sX3NldHJlYWxtJywgJ1xcQ0dtbFxzbWFydHlfcGx1Z2luczo6Y2dtbF9zZXRyZWFsbScpOwogICAgICAgICRzbWFydHktPnJlZ2lzdGVyX2Z1bmN0aW9uKCdjZ21sX2dldGFsbCcsICdcXENHbWxcc21hcnR5X3BsdWdpbnM6OmNnbWxfZ2V0YWxsJyk7CiAgICAgICAgJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ2NnbWxfb3B0aW9ucycsICdcXENHbWxcc21hcnR5X3BsdWdpbnM6OmNnbWxfb3B0aW9ucycpOwogICAgICAgICRzbWFydHktPnJlZ2lzdGVyX2Z1bmN0aW9uKCdjZ19fJywgJ1xcQ0dtbFxzbWFydHlfcGx1Z2luczo6Y2dtbF90cmFuc2xhdGUnKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0RGVzY3JpcHRpb24oKSB7IHJldHVybiAkdGhpcy0+TGFuZygnbW9kZGVzY3JpcHRpb24nKTsgfQogICAgcHVibGljIGZ1bmN0aW9uIEdldFZlcnNpb24oKSB7IHJldHVybiAnMS40LjInOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKSB7IHJldHVybiBUUlVFOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gSGFzQWRtaW4oKSB7IHJldHVybiBGQUxTRTsgfQogICAgcHVibGljIGZ1bmN0aW9uIE1pbmltdW1DbXNWZXJzaW9uKCkgeyByZXR1cm4gJzIuMS41JzsgfQogICAgcHVibGljIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpIHsgcmV0dXJuIFsgJ0NHRXh0ZW5zaW9ucycgPT4gJzEuNTMuMTMnIF07IH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3RyYW5zbGF0b3IoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+dHJhbnNsYXRvcjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2xhbmd1YWdlX3N0b3JhZ2UoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+ZGFvOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBJbml0aWFsaXplRnJvbnRlbmQoKQogICAgewogICAgICAgICR0aGlzLT5SZWdpc3Rlck1vZHVsZVBsdWdpbigpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdrJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdrZXknLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoQ0xFQU5fUkVHRVhQLicvXy4qLycsQ0xFQU5fU1RSSU5HKTsKICAgIH0KCn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/doc/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/doc/changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgoJPGxpPlZlcnNpb24gMS4yCgkgICA8cD5BZGRzIHRoZSB7Y2dfX30gdGFnLjwvcD4KCTwvbGk+Cgk8bGk+VmVyc2lvbiAxLjMKCTxwPi0gQWRkcyB0aGUge2NnbWxfb3B0aW9uc30gdGFnLjwvcD4KCTxwPi0gUmVnaXN0ZXIgc21hcnR5IHBsdWdpbnMgaW4gdGhlIGNvbnN0cnVjdG9yLjwvcD4KCTwvbGk+CjwvdWw+Cg==]]></data>
	</file>
	<file>
	  <filename>/doc/help.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgaXMgYSBzaW1wbGUgbW9kdWxlIGludGVuZGVkIHRvIHByb3ZpZGUgZm9yIGEgcXVpY2sgYW5kIGVhc3kgd2F5IHRvIG1hbmFnZSB0cmFuc2xhdGlvbiBvZiBzaW1wbGUgc3RyaW5ncy4gIElkZWFsIGZvciB1c2UgaW4gZm9ybXMgb3IgcmVwb3J0cywgb3Igb3RoZXIgdGVtcGxhdGUgZmlsZXMsIHRoaXMgbW9kdWxlIGFsbG93cyB5b3UgdG8gYXV0b21hdGljYWxseSBhcHBseSB0aGUgY29ycmVjdCBsYW5ndWFnZSBzdHJpbmcgaW4gdGhlIHByb3BlciBsb2NhdGlvbiBvZiB5b3VyIHRlbXBsYXRlLjwvaDM+CjxwPlRoaXMgbW9kdWxlIGlzIGlkZWFsbHkgc3VpdGVkIGZvciBzb2x2aW5nIGNhc2VzIHdoZXJlIHlvdSB3b3VsZCBub3JtYWxseSBoYXZlIG11bHRpcGxlICdpZicgc3RhdGVtZW50cyB0byBvdXRwdXQgZGlmZmVyZW50IHRleHQgZm9yIGRpZmZlcmVudCBsYW5ndWFnZXMuICAgUGFydGljdWxhcmx5IHdoZW4gdGhlIHRleHQgb3V0cHV0IGRvZXMgbm90IG5lZWQgdG8gYmUgbWFuYWdlZCBieSBhbiBlZGl0b3IsIGFuZCB3b3VsZCBjaGFuZ2UgaW5mcmVxdWVudGx5LjwvcD4KCjxoMz5GZWF0dXJlczo8L2gzPgo8dWw+CiAgPGxpPlN1cHBvcnRzIGtlZXBpbmcgdHJhbnNsYXRpb25zIGluIGZpbGVzLiAgUGFydGljdWxhcmx5IHVzZWZ1bCBmb3Igc21hbGwgc3RyaW5ncyB0aGF0IGRvIG5vdCBjaGFuZ2Ugb2Z0ZW4sIGFuZCBjYW4gYmUgdHJhY2tlZCB3aXRoIHZlcnNpb24gY29udHJvbCBzeXN0ZW1zLjwvbGk+CiAgPGxpPlN1cHBvcnRzIG9yZ2FuaXppbmcgbGFuZ3VhZ2UgZmlsZXMgaW50byBkaWZmZXJlbnQgcmVhbG1zLiAgVGhpcyBpcyB1c2VmdWwgZm9yIG9yZ2FuaXppbmcgdHJhbnNsYXRpb25zIGZvciBkaWZmZXJlbnQgZm9ybXMsIG9yIHJlcG9ydHMuPC9saT4KICA8bGk+VXNlcyB0aGUgY3VycmVudCBsYW5ndWFnZSBmb3IgdGhlIHJlcXVlc3QsIHVzaW5nIENNU01TIHB1Ymxpc2hlZCBBUEknczwvbGk+CjwvdWw+Cgo8aDM+SG93IERvIEkgVXNlIEl0OjwvaDM+Cjx1bD4KICA8bGk+QTogSW5zdGFsbCB0aGUgbW9kdWxlLCBhcyBvZiB0aGlzIHdyaXRpbmcgdGhlIG1vZHVsZSBoYXMgbm8gYWRtaW4gcGFuZWwgb3B0aW9ucy48L2xpPgogIDxsaT5COiBDcmVhdGUgeW91ciB0cmFuc2xhdGlvbihzKS4KICAgICA8cD5Zb3Ugc2hvdWxkIGNyZWF0ZSBhdCBsZWFzdCB0aGUgZGVmYXVsdCByZWFsbSBmaWxlLCB3aXRoIHRyYW5zbGF0aW9uIG9mIG51bWVyb3VzIHN0cmluZ3MgdG8gZGlmZmVyZW50IGxhbmd1YWdlcy4gIFNlZSBiZWxvdyBmb3IgaW5mb3JtYXRpb24gb24gdGhlIGZvcm1hdCBvZiBsYW5nIGZpbGVzLjwvcD4KICA8L2xpPgogIDxsaT5DOiBDaGFuZ2UgaGFyZCBjb2RlZCBzdHJpbmdzIHRvIG1vZHVsZSBjYWxscyB0aGF0IHdpbGwgdXRpbGl6ZSBsYW5ndWFnZSBzdHJpbmcga2V5cy4gaS5lOjwvbGk+CiAgICAgIDxwcmU+PGNvZGU+e0NHbWwga2V5PSdoZWxsbyd9PC9jb2RlPjwvcHJlPgogIDwvbGk+CjwvdWw+Cgo8aDM+U21hcnR5IHBsdWdpbnM8L2gzPgo8cD5UaGlzIG1vZHVsZSByZWdpc3RlcnMgYSBmZXcgYWRkaXRpb25hbCBzbWFydHkgcGx1Z2lucyB0byBhaWRlIGluIHRyYW5zbGF0aW9uLCBhbmQgaW4gb3JnYW5pemluZyB0cmFuc2xhdGlvbnMuPC9wPgo8dWw+CiAgIDxsaT48Y29kZT57Y2dfXyBrZXk9c3RyaW5nIFtkZmx0PXN0cmluZ10gW2Fzc2lnbj1zdHJpbmddIFtfKj1zdHJpbmddfTwvY29kZT4KICAgICAgPHA+VGhpcyBwbHVnaW4gd2lsbCByZXR1cm4gdGhlIHRyYW5zbGF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGtleSwgaW4gdGhlIGN1cnJlbnQgcmVhbG0sIGZvciB0aGUgY3VycmVudCBsYW5ndWFnZSwgaWYgb24gZXhpc3RzLjwvcD4KICAgICAgPHA+QXJndW1lbnRzOjwvcD4KICAgICAgPHVsPgogICAgICAgIDxsaT48Y29kZT5rfGtleT1zdHJpbmc8L2NvZGU+IDxzdHJvbmc+KHJlcXVpcmVkKTwvc3Ryb25nPiAtIFRoZSBsYW5ndWFnZSBzdHJpbmcga2V5LiAgTm90ZSBlaXRoZXIgJnF1b3Q7ayZxdW90OyBvciAmcXVvdDtrZXkmcXVvdDsgYXJlIGFjY2VwdGFibGUuPC9saT4KCTxsaT48Y29kZT5kZmx0PXN0cmluZzwvY29kZT4gPGVtPihvcHRpb25hbCk8L2VtPiAtIElmIHRoZXJlIGlzIG5vIHZhbHVlIGZvciB0aGUgc3BlY2lmaWVkIGtleSwgcmV0dXJuIHRoZSBzdHJpbmcgc3BlY2lmaWVkLjwvcD4KCTxsaT48Y29kZT5hc3NpZ249c3RyaW5nPC9jb2RlPiA8ZW0+KG9wdGlvbmFsKTwvZW0+IC0gT3B0aW9uYWxseSBhc3NpZ24gdGhlIG91dHB1dCBvZiB0aGlzIGZ1bmN0aW9uIHRvIHRoZSBuYW1lZCBzbWFydHkgdmFyaWFibGUuPC9wPgogICAgICA8L3VsPgogICAgICA8cHJlPjxjb2RlPntjZ19fIGs9aGVsbG8gZGZsdD0nSGVsbG8nfTwvY29kZT48L3ByZT4KICAgICAgPGg0PlZhcmlhYmxlIHN1YnN0aXR1dGlvbjwvaDQ+CiAgICAgIDxwPlRoaXMgcGx1Z2luIGFsc28gc3VwcG9ydHMgc3RyaW5nIHN1YnN0aXR1dGlvbiBieSBwcm92aWRpbmcgb25lIG9yIG1vcmUgdmFyaWFibGVzIHRvIHRoZSB7Q0dtbCB0YWd9LjwvcD4KICAgICAgPHA+SWYgdGhlIHRyYW5zbGF0aW9uIHN0cmluZyBpbiB0aGUgbGFuZyBmaWxlIGlzIG9mIHRoZSBmb3JtIDxjb2RlPnNvbWVrZXk9IlRoZSBjb2xvciBvZiB0aGUgIyNvYmogaXMgIyNjb2xvciI8L2NvZGU+IDxlbT4oYWxvbmcgd2l0aCBpdCdzIHZhcmlvdXMgdHJhbnNsYXRpb25zKS48L2VtPiAgVGhlbiBjYWxsaW5nIHRoZSBwbHVnaW4gbGlrZSB0aGlzIDxjb2RlPntDR21sIGtleT1zb21la2V5IF9vYmo9YXBwbGUgX2NvbG9yPXJlZH08L2NvZGU+IHdpbGwgcGVyZm9ybSB2YXJpYWJsZSBzdWJzdGl0dXRpb24uPC9wPgogICAgICA8cD5UaGUgZWZmZWN0IGNhbiBiZSBjb21iaW5lZCB1c2luZyB0aGUgY2FsbCB0byB0aGlzIG1vZHVsZSBtdWx0aXBsZSB0aW1lczo8L3A+CiAgICAgIDxwcmU+PGNvZGU+e0NHbWwga2V5PWFwcGxlIGFzc2lnbj1vYmp9PGJyLz57Q0dtbCBrZXk9cmVkIGFzc2lnbj1yZWR9PGJyLz57Q0dtbCBrZXk9c29tZWtleSBfb2JqPSRvYmogX2NvbG9yPSRyZWR9PC9jb2RlPjwvcHJlPgogICA8L2xpPgoKICAgPGxpPjxjb2RlPntDR21sIGtleT1zdHJpbmcgW2Fzc2lnbj1zdHJpbmddfTwvY29kZT4KICAgICAgPHA+VGhpcyBwbHVnaW4gPGVtPihhY3R1YWxseSB0aGUgZGVmYXVsdCBhY3Rpb24gZm9yIHRoaXMgbW9kdWxlKTwvZW0+IFdpbGwgcmV0dXJuIHRoZSB0cmFuc2xhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBrZXksIGluIHRoZSBjdXJyZW50IHJlYWxtLCBmb3IgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UuPC9wPgogICAgICA8cD5Bcmd1bWVudHM6PC9wPgogICAgICA8dWw+CiAgICAgICAgPGxpPjxjb2RlPmt8a2V5PXN0cmluZzwvY29kZT4gPHN0cm9uZz4ocmVxdWlyZWQpPC9zdHJvbmc+IC0gVGhlIGxhbmd1YWdlIHN0cmluZyBrZXkuICBOb3RlIGVpdGhlciAmcXVvdDtrJnF1b3Q7IG9yICZxdW90O2tleSZxdW90OyBhcmUgYWNjZXB0YWJsZS48L2xpPgoJPGxpPjxjb2RlPmFzc2lnbj1zdHJpbmc8L2NvZGU+IDxlbT4ob3B0aW9uYWwpPC9lbT4gLSBPcHRpb25hbGx5IGFzc2lnbiB0aGUgb3V0cHV0IG9mIHRoaXMgZnVuY3Rpb24gdG8gdGhlIG5hbWVkIHNtYXJ0eSB2YXJpYWJsZS48L3A+CiAgICAgIDwvdWw+CiAgICAgIDxwcmU+PGNvZGU+e0NHbWwga2V5PWhlbGxvfTwvY29kZT48L3JwZT4KICAgICAgPGg0PlZhcmlhYmxlIHN1YnN0aXR1dGlvbjwvaDQ+CiAgICAgIDxwPlRoaXMgcGx1Z2luIGFsc28gc3VwcG9ydHMgc3RyaW5nIHN1YnN0aXR1dGlvbiBhcyBkZXNjcmliZWQgaW4gdGhlIHtjZ19ffSBwbHVnaW4uPC9wPgogICA8L2xpPgoKICAgPGxpPjxjb2RlPntjZ21sX2dldGFsbCBhc3NpZ249c3RyaW5nfTwvY29kZT4KICAgICAgPHA+VGhpcyBwbHVnaW4gd2lsbCBnZXQgYWxsIG9mIHRoZSBhdmFpbGFibGUgbGFuZ3VhZ2Ugc3RyaW5ncyBvZiB0aGUgY3VycmVudCByZWFsbSBhcyBhbiBhc3NvY2lhdGl2ZSBhcnJheSwgYW5kIGFzc2lnbiB0aGVtIHRvIGEgc21hcnR5IHZhcmlhYmxlLjwvcD4KICAgICAgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGUgYXNzaWduIGFyZ3VtZW50IGlzIHJlcXVpcmVkIGZvciB0aGlzIHBsdWdpbi4gIGkuZTo8L3A+CiAgICAgIDxwcmU+PGNvZGU+e2NnbWxfZ2V0YWxsIGFzc2lnbj0nbGFuZ3N0cmluZ3MnfSAuLi4geyRsYW5nc3RyaW5ncy5oZWxsb308L2NvZGU+PC9wcmU+CiAgIDwvbGk+CgogICA8bGk+PGNvZGU+e2NnbWxfc2V0cmVhbG0gW3JlYWxtPXN0cmluZ10gW2Fzc2lnbj1zdHJpbmddfTwvY29kZT4KICAgICAgPHA+VGhpcyBwbHVnaW4gd2lsbCBzZXQgdGhlIGN1cnJlbnQgbGFuZ3VhZ2Ugc3RyaW5nIHJlYWxtIHRvIGEgZGlmZmVyZW50IHJlYWxtLCBhbmQgb3B0aW9uYWxseSBhc3NpZ24gYWxsIG9mIHRoZSB0cmFuc2xhdGVkIHN0cmluZ3MgdG8gYW4gYXNzb2NpYXRpdmUgYXJyYXkuIGkuZTo8L3A+CiAgICAgIDxwPkFyZ3VtZW50czo8L3A+CiAgICAgIDx1bD4KCTxsaT48Y29kZT5yZWFsbT1zdHJpbmc8L2NvZGU+IDxlbT4ob3B0aW9uYWwpPC9lbT4gLSBBbiBvcHRpb25hbCBhbHRlcm5hdGl2ZSByZWFsbSBuYW1lLiAgSWYgbm9uZSBzcGVjaWZpZWQsIHRoZSBkZWZhdWx0IHJlYWxtIGlzIGFzc3VtZWQuPC9saT4KCTxsaT48Y29kZT5hc3NpZ249c3RyaW5nPC9jb2RlPiA8ZW0+KG9wdGlvbmFsKTwvZW0+IC0gT3B0aW9uYWxseSBhc3NpZ24gYWxsIG9mIHRoZSB0cmFuc2xhdGlvbnMgZm9yIHRoaXMgcmVhbG0gYXMgYW4gYXNzb2NpYXRpdmUgYXJyYXkgdG8gdGhlIG5hbWVkIHNtYXJ0eSB2YXJpYWJsZS48L2xpPgogICAgICA8L3VsPgogICAgICA8cHJlPjxjb2RlPntjZ21sX3NldHJlYWxtIHJlYWxtPSdmb3Jtc3RyaW5ncycgYXNzaWduPSdmb3Jtc3RyaW5ncyd9IC4uLiB7JGZvcm10cmluZ3Muc3VibWl0fTwvY29kZT48L3ByZT4KICAgPC9saT4KCiAgIDxsaT48Y29kZT57Y2dtbF9vcHRpb25zIHJlYWxtPXN0cmluZyBbc2VsZWN0ZWQ9c3RyaW5nXX08L2NvZGU+CiAgICAgIDxwPlRoaXMgcGx1Z2luIGlzIHVzZWZ1bCBpbiBzZWxlY3Qgc3RhdGVtZW50cy4gIEl0IHdpbGwgbG9hZCBhbGwgc3RyaW5ncyBmb3IgdGhlIHNwZWNpZmllZCByZWFsbSwgY29udmVydCB0aGVtIHRvIEhUTUwgb3B0aW9uIHRhZ3MsIGFuZCBtYXJrdCBoZSBpbmRpY2F0ZWQgb3B0aW9uIGFzIHNlbGVjdGVkLjwvcD4KICAgICAgPHA+QXJndW1lbnRzOjwvcD4KICAgICAgPHVsPgoJPGxpPjxjb2RlPnJlYWxtPXN0cmluZzwvY29kZT4gPGVtPihyZXF1aXJlZCk8L2VtPiAtIFRoZSByZWFsbSB0byBsb2FkLjwvbGk+Cgk8bGk+PGNvZGU+c2VsZWN0ZWQ9c3RyaW5nPC9jb2RlPiA8ZW0+KG9wdGlvbmFsKTwvZW0+IC0gT3B0aW9uYWxseSBzcGVjaWZ5IHRoZSBvcHRpb24gdGhhdCBzaG91bGQgYmUgc2VsZWN0ZWQsIGJ5IGl0J3Mga2V5LjwvbGk+CiAgICAgIDwvdWw+CiAgICAgIDxwcmU+PGNvZGU+Jmx0O3NlbGVjdCZndDt7Y2dtbF9vcHRpb25zIHJlYWxtPWNvdW50cmllcyBzZWxlY3RlZD1DQX0mbHQ7c2VsZWN0Jmd0OzwvY29kZT48L3ByZT4KICAgPC9saT4KCjwvdWw+Cgo8aDM+TG9jYXRpb24gYW5kIG5hbWluZyBvZiBGaWxlczwvaDM+CjxwPlRoaXMgbW9kdWxlIHdpbGwgZmlyc3QgbG9vayBmb3IgZmlsZXMgaW4gYSBkaXJlY3RvcnkgPGNvZGU+X0NHbWw8L2NvZGU+IGJlbG93IHlvdXIgQ01TTVMgcm9vdCBkaXJlY3RvcnkuICBGb3IgdmVyc2lvbnMgb2YgQ01TTVMgMi4yIGFuZCBhYm92ZSwgdGhpcyBtb2R1bGUgd2lsbCBsb29rIGZvciBhIGRpcmVjdG9yeSBuYW1lZCBhc3NldHMvQ0dtbCBiZWxvdyB5b3VyIENNU01TIHJvb3QgZGlyZWN0b3J5LiAgIE5vdGUsIGlmIGJvdGggZGlyZWN0b3JpZXMgZXhpc3QsIG9ubHkgdGhlIGZpcnN0IG9uZSB3aWxsIGJlIGZvdW5kLjwvcD4KPHA+WW91IGNhbiBvdmVycmlkZSB0aGUgcGF0aCBmb3IgdHJhbnNsYXRpb25zIHVzaW5nIHRoZSAnQ0dtbF9wYXRoJyBjb25maWcgZW50cnkgaW4geW91ciBjb25maWcucGhwIGZpbGUuIGkuZTo8L3A+CjxwcmU+PGNvZGU+JGNvbmZpZ1snQ0dtbF9wYXRoJ10gPSAkY29uZmlnWydyb290X3BhdGgnXS4nL3RyYW5zbGF0aW9ucyc7PC9jb2RlPjwvcHJlPgo8cD5BbGwgZmlsZXMgbmFtZXMgbXVzdCBiZSBpbiB0aGUgZm9ybWF0IDxjb2RlPmxhbmcuPHN0cm9uZz5yZWFsbV9uYW1lPC9zdHJvbmc+LmluaTwvY29kZT48L3A+CjxwPlRoZSBuYW1lIG9mIHRoZSBkZWZhdWx0IHJlYWxtIGlzICZxdW90O2RlZmF1bHQmcXVvdDsgc28sIGJ5IGRlZmF1bHQgdGhpcyBtb2R1bGUgd2lsbCBsb29rIGZvciB0aGUgZGVmYXVsdCByZWFsbSBmaWxlIGluIDxjb2RlPiZsdDtyb290X3BhdGgmZ3Q7L19DR21sL2xhbmcuPHN0cm9uZz5kZWZhdWx0PC9zdHJvbmc+LmluaTwvY29kZT48L3A+Cgo8aDM+Rm9ybWF0IG9mIEZpbGVzPC9oMz4KPHA+VGhpcyBtb2R1bGUgdXNlcyBJTkkgZmlsZSBmb3JtYXQgZm9yIHRyYW5zbGF0aW9uLiAgU2VjdGlvbiBlbnRyaWVzIHNlcGFyYXRlIGxhbmd1YWdlcywgYW5kIGluZGl2aWR1YWwgZW50cmllcyBjb250YWluIHRoZSB0cmFuc2xhdGlvbnMuICBBIHNpbXBsZSBsYW5ndWFnZSBmaWxlIGZvciBlbmdsaXNoIGFuZCBmcmVuY2ggbWF5IGxvb2sgc29tZXRoaW5nIGxpa2U6PC9wPgo8cHJlPgpbZW5fVVNdCmhlbGxvPUhlbGxvCmJ5ZT1Hb29kIEJ5ZQoKW2ZyX0ZSXQpoZWxsbz1Cb25qb3VyCmJ5ZT1BdSBSZXZvaXIKPC9wcmU+Cgo8cD5NdWx0aSBsaW5lIGVudHJpZXMgYXJlIHBlcm1pc3NpYmxlLCBidXQgbXVzdCBiZSBxdW90ZWQuICBpLmU6PC9wPgo8cHJlPgpbZW5fVVNdCnRlcm1zX29mX3VzZT0iVGhpcyBpcyBhIHZlcnkgbG9uZyB0ZXh0IHVzaW5nCm11bHRpcGxlIGxpbmVzIGRlc2NyaWJpbmcgdGhlIHRlcm1zIG9mIHVzZQpmb3IgbXkgd2Vic2l0ZS4iCjwvcHJlPgoKPGgzPkRlZmF1bHQgbGFuZ3VhZ2UsIGFuZCBtaXNzaW5nIGxhbmd1YWdlIHN0cmluZ3M8L2gzPgo8cD5UaGlzIG1vZHVsZSBhc3N1bWVzIHRoYXQgdGhlIGRlZmF1bHQgbGFuZ3VhZ2UgaXMgZW5fVVMuIDxlbT4odGhpcyBtYXkgY2hhbmdlIGF0IGEgbGF0ZXIgZGF0ZSk8L2VtPi4gIFNvIGlmIGEgc3RyaW5nIGV4aXN0cyBmb3IgZW5fVVMsIGJ1dCBub3QgZm9yIHRoZSBjdXJyZW50IGxhbmd1YWdlLCB0aGVuIHRoZSBlbmdsaXNoIHN0cmluZyB3aWxsIGJlIHVzZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSB3aWxsIG5vdCByZXR1cm4gYW55IHZhbHVlIGlmIGEgdHJhbnNsYXRpb24gZm9yIGEgcmVxdWVzdGVkIGtleSBkb2VzIG5vdCBleGlzdCBpbiBlaXRoZXIgdGhlIGN1cnJlbnQgbGFuZ3VhZ2Ugb3IgdGhlIGRlZmF1bHQgbGFuZ3VhZ2UuICBIb3dldmVyLCBhIGRlYnVnIGVudHJ5IHdpbGwgYmUgcGxhY2VkIGludG8gdGhlIHRtcC9jYWNoZS9kZWJ1Zy5sb2cgZmlsZSB0byBhbGxvdyB5b3UgdG8gZmluZCBpbnN0YW5jZXMgd2hlcmUgYSB0cmFuc2xhdGlvbiBpcyB1c2VkLCBidXQgaXMgbm90IGN1cnJlbnRseSB0cmFuc2xhdGVkLjwvcD4KCjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhlIG1vZHVsZSBhdXRob3IgaXMgaW4gbm8gd2F5IG9ibGlnYXRlZCB0byBwcm92aWRlIHN1cHBvcnQgZm9yIHRoaXMgY29kZSBpbiBhbnkgZmFzaGlvbi4gIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5BIGJ1ZyB0cmFja2luZyBhbmQgZmVhdHVyZSByZXF1ZXN0IHN5c3RlbSBoYXMgYmVlbiBjcmVhdGVkIGZvciB0aGlzIG1vZHVsZSA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Nnc2ltcGxlc21hcnR5Ij5oZXJlPC9hPi4gIFBsZWFzZSBiZSB2ZXJib3NlIGFuZCBkZXNjcmlwdGl2ZSB3aGVuIHN1Ym1pdHRpbmcgYnVnIHJlcG9ydHMgYW5kIGZlYXR1cmUgcmVxdWVzdHMsIGFuZCBmb3IgYnVnIHJlcG9ydHMgZW5zdXJlIHRoYXQgeW91IGhhdmUgcHJvdmlkZWQgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byByZWxpYWJseSByZXByb2R1Y2UgdGhlIGlzc3VlLjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uICBXaGVuIGRlc2NyaWJpbmcgYW4gaXNzdWUgcGxlYXNlIG1ha2UgYW4gZWZmb3J0IHRvIHByaXZpZGUgYWxsIHJlbGF2YW50IGluZm9ybWF0aW9uLCBhIHRob3JvdWdoIGRlc2NyaXB0aW9uIG9mIHlvdXIgaXNzdWUsIGFuZCBzdGVwcyB0byByZXByb2R1Y2UgaXQgb3IgeW91ciBkaXNjdXNzaW9uIG1heSBiZSBpZ25vcmVkLjwvbGk+CjxsaT5UaGUgYXV0aG9yLCBjYWxndXkxMDAwLCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkuICBIb3dldmVyLCBwbGVhc2UgdXNlIHRoaXMgYXMgYSBsYXN0IHJlc29ydCwgYW5kIGVuc3VyZSB0aGF0IHlvdSBoYXZlIGZvbGxvd2VkIGFsbCBhcHBsaWNhYmxlIGluc3RydWN0aW9ucyBvbiB0aGUgZm9yZ2UsIGluIHRoZSBmb3J1bXMsIGV0Yy48L2xpPgo8L3VsPgoKPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAxOCwgUm9iZXJ0IENhbXBiZWwgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPiZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+CjxwPkhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAphcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwpNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4Kc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLApidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgpNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCmFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCk9yIHJlYWQgaXQgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5vbmxpbmU8L2E+PC9wPgo=]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0NHbWwnOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdBIHNpbXBsZSBtb2R1bGUgdG8gYWlkZSBpbiBhdXRvbWF0aWMgdHJhbnNsYXRpb24gb2Ygc2ltcGxlIHN0cmluZ3MgZm9yIGEgbXVsdGktbGFuZ3VhZ2Ugd2Vic2l0ZSc7]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.LangDAO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHbWwgKGMpIDIwMTcgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWlkZSBpbiBidWlsZGluZyBtdWx0aS1sYW5ndWFnZQojICB3ZWJzaXRlcyBhbmQgYXBwcy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVmlzaXQgdGhlIENNU01TIEhvbWVwYWdlIGF0OiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQpuYW1lc3BhY2UgQ0dtbDsKCmNsYXNzIExhbmdEQU8KewogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldF9sYW5ndWFnZV9wYXRoKCkKICAgIHsKICAgICAgICAkY29uZmlnID0gXGNtc19jb25maWc6OmdldF9pbnN0YW5jZSgpOwogICAgICAgIGlmKCBpc3NldCgkY29uZmlnWydDR21sX3BhdGgnXSkgJiYgaXNfZGlyKCRjb25maWdbJ0NHbWxfcGF0aCddKSApIHJldHVybiAkY29uZmlnWydDR21sX3BhdGgnXTsKCiAgICAgICAgJGRpciA9ICRjb25maWdbJ3Jvb3RfcGF0aCddLicvX0NHbWwnOwogICAgICAgIGlmKCB2ZXJzaW9uX2NvbXBhcmUoQ01TX1ZFUlNJT04sJzIuMS45OScpIDwgMCApIHsKICAgICAgICAgICAgLy8gMi4xLngKICAgICAgICAgICAgcmV0dXJuICRkaXI7CiAgICAgICAgfQogICAgICAgIC8vIDIuMi54CiAgICAgICAgaWYoIGlzX2RpcigkZGlyKSApIHJldHVybiAkZGlyOwogICAgICAgIHJldHVybiAkY29uZmlnWydhc3NldHNfcGF0aCddLicvQ0dtbCc7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGZpbmRfcmVhbG1zKCkKICAgIHsKICAgICAgICAkZGlyID0gJHRoaXMtPmdldF9sYW5ndWFnZV9wYXRoKCk7CiAgICAgICAgJHBhdHRlcm4gPSAiJGRpci9sYW5nLiouaW5pIjsKICAgICAgICAkZmlsZXMgPSBnbG9iKCAkcGF0dGVybiApOwogICAgICAgIGlmKCAhaXNfYXJyYXkoJGZpbGVzKSB8fCAhY291bnQoJGZpbGVzKSApIHJldHVybjsKCiAgICAgICAgJG91dCA9IG51bGw7CiAgICAgICAgZm9yZWFjaCggJGZpbGVzIGFzICRvbmVfZmlsZSApIHsKICAgICAgICAgICAgJGJuID0gYmFzZW5hbWUoJG9uZV9maWxlKTsKICAgICAgICAgICAgJHBvczEgPSBzdHJwb3MoICRvbmVfZmlsZSwgJy4nICk7CiAgICAgICAgICAgICRwb3MyID0gc3RycnBvcyggJG9uZV9maWxlLCAnLicgKTsKICAgICAgICAgICAgJHJlYWxtID0gc3Vic3RyKCAkb25lX2ZpbGUsICRwb3MxICsgMSwgJHBvczIgLSAkcG9zMSAtIDEgKTsKICAgICAgICAgICAgJG91dFskcmVhbG1dID0gJG9uZV9maWxlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2xhbmd1YWdlX2ZpbGUoJHJlYWxtKQogICAgewogICAgICAgICRkaXIgPSAkdGhpcy0+Z2V0X2xhbmd1YWdlX3BhdGgoKTsKICAgICAgICByZXR1cm4gIiRkaXIvbGFuZy4kcmVhbG0uaW5pIjsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gbG9hZF9sYW5ndWFnZV9maWxlKCAkZmlsZSApCiAgICB7CiAgICAgICAgaWYoICFpc19maWxlKCRmaWxlKSB8fCAhaXNfcmVhZGFibGUoICRmaWxlICkgKSByZXR1cm47CgogICAgICAgIHNldF9lcnJvcl9oYW5kbGVyKGZ1bmN0aW9uKCRlcnJubywkZXJyc3RyKXsKICAgICAgICAgICAgICAgIGRlYnVnX3RvX2xvZygnQ0dtbCBsYW5nZmlsZSBlcnJvcjonLiRlcnJzdHIpOwogICAgICAgICAgICAgICAgZGVidWdfZGlzcGxheSgkZXJyc3RyKTsKICAgICAgICAgICAgfSxFX1dBUk5JTkcpOwogICAgICAgICRkYXRhID0gcGFyc2VfaW5pX2ZpbGUoJGZpbGUsdHJ1ZSk7CiAgICAgICAgcmVzdG9yZV9lcnJvcl9oYW5kbGVyKCk7CiAgICAgICAgcmV0dXJuICRkYXRhOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2FkX3JlYWxtKCAkcmVhbG0gKQogICAgewogICAgICAgICRmaWxlID0gJHRoaXMtPmdldF9sYW5ndWFnZV9maWxlKCRyZWFsbSk7CiAgICAgICAgJGRhdGEgPSAkdGhpcy0+bG9hZF9sYW5ndWFnZV9maWxlKCAkZmlsZSApOwogICAgICAgIHJldHVybiAkZGF0YTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gc2F2ZV9pbmlfZmlsZSggJGZpbGVuYW1lLCAkZGF0YSApCiAgICB7CiAgICAgICAgJGZoID0gZm9wZW4oICRmaWxlbmFtZSwgJ3cnICk7CiAgICAgICAgaWYoICEkZmggKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJ0NvdWxkIG5vdCBvcGVuICcuJGZpbGVuYW1lLicgZm9yIHdyaXRpbmcgKHBlcm1pc3Npb25zPyknKTsKCiAgICAgICAgZm9yZWFjaCggJGRhdGEgYXMgJGxhbmcgPT4gJGxhbmdkYXRhICkgewogICAgICAgICAgICAkbGFuZyA9IHRyaW0oJGxhbmcpOwogICAgICAgICAgICBmd3JpdGUoICRmaCwgIlskbGFuZ10iLlBIUF9FT0wgKTsKICAgICAgICAgICAgZm9yZWFjaCggJGxhbmdkYXRhIGFzICRrZXkgPT4gJHZhbCApIHsKICAgICAgICAgICAgICAgICRrZXkgPSB0cmltKCRrZXkpOwogICAgICAgICAgICAgICAgJHZhbCA9IHRyaW0oYWRkc2xhc2hlcygkdmFsKSk7CiAgICAgICAgICAgICAgICBpZiggc3RycG9zKCRrZXksJyInKSAhPT0gRkFMU0UgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgIGZ3cml0ZSggJGZoLCAiJGtleT1cIiR2YWxcIiIuUEhQX0VPTCApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ3cml0ZSggJGZoLCBQSFBfRU9MLlBIUF9FT0wgKTsKICAgICAgICB9CiAgICAgICAgZmNsb3NlKCAkZmggKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYmFja3VwX2xhbmd1YWdlX2ZpbGUoICRyZWFsbSApCiAgICB7CiAgICAgICAgJGxhbmdmaWxlID0gJHRoaXMtPmdldF9sYW5ndWFnZV9maWxlKCAkcmVhbG0gKTsKICAgICAgICAkYmFrZmlsZSA9ICRsYW5nZmlsZS4nLmJhayc7CiAgICAgICAgaWYoIGlzX2ZpbGUoJGxhbmdmaWxlKSApIHsKICAgICAgICAgICAgJHJlcyA9IGNvcHkoICRsYW5nZmlsZSwgJGJha2ZpbGUgKTsKICAgICAgICAgICAgaWYoICEkcmVzICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCJjb3VsZCBub3QgY3JlYXRlICRiYWtmaWxlLi4uIChwZXJtaXNzaW9ucz8pIik7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzYXZlX3JlYWxtKCAkcmVhbG0sICRkYXRhICkKICAgIHsKICAgICAgICAvLyBjaGVjayB0aGUgZGF0YQogICAgICAgIGlmKCAhJGRhdGEgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignbm8gZGF0YSBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICByZXNldCgkZGF0YSk7CiAgICAgICAgJGZpcnN0X2xhbmcgPSBrZXkoJGRhdGEpOwogICAgICAgIGlmKCAkZmlyc3RfbGFuZyAhPSAnZW5fVVMnICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0ludmFsaWQgZGF0YSBwYXNzZWQgdG8gJy5fX01FVEhPRF9fLicgZmlyc3QgbGFuZ3VhZ2UgbXVzdCBiZSBlbmdsaXNoJyk7CiAgICAgICAgaWYoICFpc19hcnJheSgkZGF0YVskZmlyc3RfbGFuZ10pIHx8ICFjb3VudCgkZGF0YVskZmlyc3RfbGFuZ10pICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0ludmFsaWQgZGF0YSBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKCiAgICAgICAgZm9yZWFjaCggJGRhdGEgYXMgJGtleSA9PiAkdmFsdWUgKSB7CiAgICAgICAgICAgIGlmKCAhaXNfYXJyYXkoJHZhbHVlKSApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdtYWxmb3JtZWQgZGF0YSBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICB9CgogICAgICAgICR0aGlzLT5iYWNrdXBfbGFuZ3VhZ2VfZmlsZSggJHJlYWxtICk7CiAgICAgICAgJHRoaXMtPnNhdmVfaW5pX2ZpbGUoICR0aGlzLT5nZXRfbGFuZ3VhZ2VfZmlsZSgkcmVhbG0gKSwgJGRhdGEgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlX3JlYWxtKCAkcmVhbG0gKQogICAgewogICAgICAgICRsYW5nZmlsZSA9ICR0aGlzLT5nZXRfbGFuZ3VhZ2VfZmlsZSggJHJlYWxtICk7CiAgICAgICAgaWYoICFpc19maWxlKCRsYW5nZmlsZSkgKSByZXR1cm4gVFJVRTsKICAgICAgICBpZiggIWlzX3dyaXRhYmxlKCRsYW5nZmlsZSkgKSByZXR1cm47CiAgICAgICAgcmV0dXJuIHVubGluaygkbGFuZ2ZpbGUpOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.smarty_plugins.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHbWwgKGMpIDIwMTcgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWlkZSBpbiBidWlsZGluZyBtdWx0aS1sYW5ndWFnZQojICB3ZWJzaXRlcyBhbmQgYXBwcy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVmlzaXQgdGhlIENNU01TIEhvbWVwYWdlIGF0OiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQpuYW1lc3BhY2UgQ0dtbDsKCmZpbmFsIGNsYXNzIHNtYXJ0eV9wbHVnaW5zCnsKICAgIHByaXZhdGUgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7fQoKICAgIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGdldF9tb2QoKQogICAgewogICAgICAgIHJldHVybiBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9DR01MKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNnbWxfc2V0cmVhbG0oJHBhcmFtcywkdGVtcGxhdGUpCiAgICB7CiAgICAgICAgJHJlYWxtID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdyZWFsbScpOwogICAgICAgICRhc3NpZ24gPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2Fzc2lnbicpOwoKICAgICAgICAkbW9kID0gc2VsZjo6Z2V0X21vZCgpOwogICAgICAgICR0cmFuc2xhdG9yID0gJG1vZC0+Z2V0X3RyYW5zbGF0b3IoKTsKICAgICAgICBpZiggISRyZWFsbSApICRyZWFsbSA9IFRyYW5zbGF0b3I6OkRGTFRfUkVBTE07CiAgICAgICAgJHRyYW5zbGF0b3ItPnNldF9yZWFsbSgkcmVhbG0pOwogICAgICAgIGlmKCAkYXNzaWduICkgewogICAgICAgICAgICAkb3V0ID0gJHRyYW5zbGF0b3ItPmdldF9hbGxfdHJhbnNsYXRpb25zKCk7CiAgICAgICAgICAgICR0ZW1wbGF0ZS0+YXNzaWduKCRhc3NpZ24sJG91dCk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2dtbF9nZXRhbGwoJHBhcmFtcywkdGVtcGxhdGUpCiAgICB7CiAgICAgICAgJG1vZCA9IHNlbGY6OmdldF9tb2QoKTsKICAgICAgICAkdHJhbnNsYXRvciA9ICRtb2QtPmdldF90cmFuc2xhdG9yKCk7CiAgICAgICAgJGFzc2lnbiA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnYXNzaWduJyk7CiAgICAgICAgaWYoICEkYXNzaWduICkgcmV0dXJuOwoKICAgICAgICAkb3V0ID0gJHRyYW5zbGF0b3ItPmdldF9hbGxfdHJhbnNsYXRpb25zKCk7CiAgICAgICAgJHRlbXBsYXRlLT5hc3NpZ24oJGFzc2lnbiwkb3V0KTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNnbWxfdHJhbnNsYXRlKCRwYXJhbXMsJHRlbXBsYXRlKQogICAgewogICAgICAgICRrZXkgPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2snKTsKICAgICAgICAka2V5ID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdrZXknLCRrZXkpOwogICAgICAgICRhc3NpZ24gPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2Fzc2lnbicpOwogICAgICAgICRkZmx0ID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdkZmx0Jyk7CgogICAgICAgICRwYXJtcyA9IFtdOwogICAgICAgIGZvcmVhY2goICRwYXJhbXMgYXMgJHhrZXkgPT4gJHZhbCApIHsKICAgICAgICAgICAgaWYoICFzdGFydHN3aXRoKCAkeGtleSwgJ18nKSApIGNvbnRpbnVlOwogICAgICAgICAgICAkeGtleSA9IHN1YnN0cigkeGtleSwxKTsKICAgICAgICAgICAgJHBhcm1zWyR4a2V5XSA9ICR2YWw7CiAgICAgICAgfQogICAgICAgICRtb2QgPSBzZWxmOjpnZXRfbW9kKCk7CiAgICAgICAgJHRyYW5zbGF0b3IgPSAkbW9kLT5nZXRfdHJhbnNsYXRvcigpOwogICAgICAgICRzdHIgPSAkdHJhbnNsYXRvci0+dHJhbnNsYXRlKCAka2V5LCAkcGFybXMgKTsKICAgICAgICBpZiggISRzdHIgKSAkc3RyID0gJGRmbHQ7IC8vIGNvbXBsZXRlbHkgdW5rbm93biBrZXkgKG5vdCBldmVuIGluIGVuZ2xpc2gpCgogICAgICAgIGlmKCAkYXNzaWduICkgewogICAgICAgICAgICAkdGVtcGxhdGUtPmFzc2lnbiggJGFzc2lnbiwgJHN0ciApOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAkc3RyOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNnbWxfb3B0aW9ucyggJHBhcmFtcywgJHRlbXBsYXRlICkKICAgIHsKICAgICAgICAkcmVhbG0gPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ3JlYWxtJyk7CiAgICAgICAgJHNlbGVjdGVkID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdzZWxlY3RlZCcpOwoKICAgICAgICAkbW9kID0gc2VsZjo6Z2V0X21vZCgpOwogICAgICAgICR0cmFuc2xhdG9yID0gJG1vZC0+Z2V0X3RyYW5zbGF0b3IoKTsKICAgICAgICAkb3JpZ19yZWFsbSA9ICR0cmFuc2xhdG9yLT5nZXRfcmVhbG0oKTsKICAgICAgICAkdHJhbnNsYXRvci0+c2V0X3JlYWxtKCRyZWFsbSk7CiAgICAgICAgJGxpc3QgPSAkdHJhbnNsYXRvci0+Z2V0X2FsbF90cmFuc2xhdGlvbnMoKTsKICAgICAgICAkdHJhbnNsYXRvci0+c2V0X3JlYWxtKCAkb3JpZ19yZWFsbSApOwoKICAgICAgICBpZiggIWNvdW50KCRsaXN0KSkgcmV0dXJuOwogICAgICAgICRvdXQgPSBudWxsOwogICAgICAgIGZvcmVhY2goICRsaXN0IGFzICRrZXkgPT4gJHN0ciApIHsKICAgICAgICAgICAgJG91dCAuPSBcQ21zRm9ybVV0aWxzOjpjcmVhdGVfb3B0aW9uKCBbICd2YWx1ZSc9PiRrZXksICdsYWJlbCc9PiRzdHIgXSwgJHNlbGVjdGVkICk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQp9IC8vIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.Translator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHbWwgKGMpIDIwMTcgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWlkZSBpbiBidWlsZGluZyBtdWx0aS1sYW5ndWFnZQojICB3ZWJzaXRlcyBhbmQgYXBwcy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVmlzaXQgdGhlIENNU01TIEhvbWVwYWdlIGF0OiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQpuYW1lc3BhY2UgQ0dtbDsKCmNsYXNzIFRyYW5zbGF0b3IKewogICAgY29uc3QgREZMVF9MQU5HID0gJ2VuX1VTJzsKICAgIGNvbnN0IERGTFRfUkVBTE0gPSAnZGVmYXVsdCc7CiAgICBwcml2YXRlICRfZGFvOwogICAgcHJpdmF0ZSAkX2RhdGEgPSBbXTsKICAgIHByaXZhdGUgJF9jdXJfcmVhbG07CiAgICBwcml2YXRlICRfY3VyX2xhbmc7CiAgICBwcml2YXRlICRfc3RhcnRlZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoTGFuZ0RBTyAkZGFvKQogICAgewogICAgICAgICR0aGlzLT5fZGFvID0gJGRhbzsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gaW5pdGlhbGl6ZSgpCiAgICB7CiAgICAgICAgaWYoICR0aGlzLT5fc3RhcnRlZCApIHJldHVybjsKICAgICAgICAkdGhpcy0+X3N0YXJ0ZWQgPSAxOwoKICAgICAgICAvLyBnZXQgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UKICAgICAgICAkdGhpcy0+X2N1cl9sYW5nID0gXENtc05sc09wZXJhdGlvbnM6OmdldF9jdXJyZW50X2xhbmd1YWdlKCk7CgogICAgICAgIC8vIGxvYWQgdGhlIGRlZmF1bHQgcmVhbG0sIGFuZCBzZXQgaXQgYXMgdGhlIGRlZmF1bHQuCiAgICAgICAgJHRoaXMtPnNldF9yZWFsbShzZWxmOjpERkxUX1JFQUxNKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gaXNfcmVhbG1fbG9hZGVkKCRyZWFsbSkKICAgIHsKICAgICAgICByZXR1cm4gYXJyYXlfa2V5X2V4aXN0cygkcmVhbG0sJHRoaXMtPl9kYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3JlYWxtKCRyZWFsbSkKICAgIHsKICAgICAgICAkdGhpcy0+aW5pdGlhbGl6ZSgpOwogICAgICAgICR0aGlzLT5fY3VyX3JlYWxtID0gJHJlYWxtOwogICAgICAgIGlmKCAkdGhpcy0+aXNfcmVhbG1fbG9hZGVkKCRyZWFsbSkgKSByZXR1cm47CiAgICAgICAgJGRhdGEgPSAkdGhpcy0+X2Rhby0+bG9hZF9yZWFsbSggJHJlYWxtICk7CiAgICAgICAgaWYoICFpc3NldCgkZGF0YVtzZWxmOjpERkxUX0xBTkddKSApIHJldHVybjsKICAgICAgICAkdGhpcy0+X2RhdGFbJHJlYWxtXVtzZWxmOjpERkxUX0xBTkddID0gJGRhdGFbc2VsZjo6REZMVF9MQU5HXTsKICAgICAgICBpZiggJHRoaXMtPl9jdXJfbGFuZyAhPSBzZWxmOjpERkxUX0xBTkcgJiYgaXNzZXQoJGRhdGFbJHRoaXMtPl9jdXJfbGFuZ10pICkgewogICAgICAgICAgICAkdGhpcy0+X2RhdGFbJHJlYWxtXVskdGhpcy0+X2N1cl9sYW5nXSA9ICRkYXRhWyR0aGlzLT5fY3VyX2xhbmddOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3JlYWxtKCkKICAgIHsKICAgICAgICAkdGhpcy0+aW5pdGlhbGl6ZSgpOwogICAgICAgIHJldHVybiAkdGhpcy0+X2N1cl9yZWFsbTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2xhbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2N1cl9sYW5nOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfbGFuZygkbGFuZykKICAgIHsKICAgICAgICAkdGhpcy0+aW5pdGlhbGl6ZSgpOwogICAgICAgICR0aGlzLT5fY3VyX2xhbmcgPSB0cmltKCRsYW5nKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2FsbF90cmFuc2xhdGlvbnMoKQogICAgewogICAgICAgICR0aGlzLT5pbml0aWFsaXplKCk7CiAgICAgICAgJGxhbmcgPSAkdGhpcy0+X2N1cl9sYW5nOwogICAgICAgICRvdXQgPSAkdGhpcy0+X2RhdGFbJHRoaXMtPl9jdXJfcmVhbG1dW3NlbGY6OkRGTFRfTEFOR107CiAgICAgICAgaWYoICRsYW5nID09IHNlbGY6OkRGTFRfTEFORyApIHJldHVybiAkb3V0OwoKICAgICAgICBmb3JlYWNoKCAkb3V0IGFzICRrZXkgPT4gJiR2YWx1ZSApIHsKICAgICAgICAgICAgJHZhbHVlID0gJHRoaXMtPnRyYW5zbGF0ZSgka2V5KTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHRyYW5zbGF0ZSgka2V5LCBhcnJheSAkcGFybXMgPSBudWxsICkKICAgIHsKICAgICAgICAkZG9fcmVwbGFjZW1lbnRzID0gZnVuY3Rpb24oJHN0cixhcnJheSAkcGFybXMgPSBudWxsKSB7CiAgICAgICAgICAgIGlmKCBpc19hcnJheSgkcGFybXMpICYmIGNvdW50KCRwYXJtcykgKSB7CiAgICAgICAgICAgICAgICBmb3JlYWNoKCAkcGFybXMgYXMgJGtleSA9PiAkdmFsICkgewogICAgICAgICAgICAgICAgICAgICRpbmtleSA9ICcjIycuJGtleTsKICAgICAgICAgICAgICAgICAgICAkc3RyID0gc3RyX3JlcGxhY2UoJGlua2V5LCR2YWwsJHN0cik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuICRzdHI7CiAgICAgICAgfTsKCiAgICAgICAgJHRoaXMtPmluaXRpYWxpemUoKTsKICAgICAgICAkY3VyX3JlYWxtID0gJHRoaXMtPl9jdXJfcmVhbG07CiAgICAgICAgJGxhbmcgPSAkdGhpcy0+X2N1cl9sYW5nOwoKICAgICAgICAkb3V0ID0gbnVsbDsKICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWyRjdXJfcmVhbG1dW3NlbGY6OkRGTFRfTEFOR11bJGtleV0gKSApICRvdXQgPSAkdGhpcy0+X2RhdGFbJGN1cl9yZWFsbV1bc2VsZjo6REZMVF9MQU5HXVska2V5XTsKICAgICAgICBpZiggISRvdXQgKSB7CiAgICAgICAgICAgIGRlYnVnX3RvX2xvZygiQ0dtbCAtLSBNaXNzaW5nIGVuX1VTIGVudHJ5IGZvciBrZXk9JGtleSBpbiByZWFsbT0kY3VyX3JlYWxtIik7CiAgICAgICAgfQogICAgICAgIGlmKCAkbGFuZyA9PSBzZWxmOjpERkxUX0xBTkcgfHwgIWlzc2V0KCR0aGlzLT5fZGF0YVskY3VyX3JlYWxtXVskbGFuZ10pICkgcmV0dXJuICRkb19yZXBsYWNlbWVudHMoJG91dCwkcGFybXMpOwoKICAgICAgICAvLyBub3QgZGVmYXVsdCBsYW5ndWFnZS4uLgogICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJGN1cl9yZWFsbV1bJGxhbmddWyRrZXldICkgKSB7CiAgICAgICAgICAgICRvdXQgPSAkdGhpcy0+X2RhdGFbJGN1cl9yZWFsbV1bJGxhbmddWyRrZXldOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGRlYnVnX3RvX2xvZygiQ0dtbCAtLSBNaXNzaW5nIGxhbmcgZW50cnkgZm9yIGtleT0ka2V5IGluIHJlYWxtPSRjdXJfcmVhbG0gZm9yIGxhbmd1YWdlICRsYW5nIik7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkZG9fcmVwbGFjZW1lbnRzKCRvdXQsJHBhcm1zKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3M=]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9ICJDR21sIgp2ZXJzaW9uID0gIjEuNC4yIgphdXRob3IgPSAiY2FsZ3V5MTAwMCIKYXV0aG9yZW1haWwgPSAiY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyIKbWluY21zdmVyc2lvbiA9ICIyLjEuNSIKbGF6eWxvYWRhZG1pbiA9IDAKbGF6eWxvYWRmcm9udGVuZCA9IDAKW2RlcGVuZHNdCkNHRXh0ZW5zaW9ucyA9ICIxLjUzLjEzIgo=]]></data>
	</file>
</module>
